Merge 5.15.131 into android13-5.15-lts

Changes in 5.15.131
	erofs: ensure that the post-EOF tails are all zeroed
	ksmbd: fix wrong DataOffset validation of create context
	ksmbd: replace one-element array with flex-array member in struct smb2_ea_info
	ARM: pxa: remove use of symbol_get()
	mmc: au1xmmc: force non-modular build and remove symbol_get usage
	net: enetc: use EXPORT_SYMBOL_GPL for enetc_phc_index
	rtc: ds1685: use EXPORT_SYMBOL_GPL for ds1685_rtc_poweroff
	modules: only allow symbol_get of EXPORT_SYMBOL_GPL modules
	USB: serial: option: add Quectel EM05G variant (0x030e)
	USB: serial: option: add FOXCONN T99W368/T99W373 product
	ALSA: usb-audio: Fix init call orders for UAC1
	usb: dwc3: meson-g12a: do post init to fix broken usb after resumption
	usb: chipidea: imx: improve logic if samsung,picophy-* parameter is 0
	HID: wacom: remove the battery when the EKR is off
	staging: rtl8712: fix race condition
	Bluetooth: btsdio: fix use after free bug in btsdio_remove due to race condition
	wifi: mt76: mt7921: do not support one stream on secondary antenna only
	serial: qcom-geni: fix opp vote on shutdown
	serial: sc16is7xx: fix broken port 0 uart init
	serial: sc16is7xx: fix bug when first setting GPIO direction
	firmware: stratix10-svc: Fix an NULL vs IS_ERR() bug in probe
	fsi: master-ast-cf: Add MODULE_FIRMWARE macro
	tcpm: Avoid soft reset when partner does not support get_status
	nilfs2: fix general protection fault in nilfs_lookup_dirty_data_buffers()
	nilfs2: fix WARNING in mark_buffer_dirty due to discarded buffer reuse
	pinctrl: amd: Don't show `Invalid config param` errors
	usb: typec: tcpci: move tcpci.h to include/linux/usb/
	usb: typec: tcpci: clear the fault status bit
	Linux 5.15.131

Change-Id: If396fd54c8778ca22748eb36b3d16de73c49724a
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
diff --git a/.gitignore b/.gitignore
index 7afd412..2659595 100644
--- a/.gitignore
+++ b/.gitignore
@@ -45,6 +45,7 @@
 *.symversions
 *.tab.[ch]
 *.tar
+*.usyms
 *.xz
 *.zst
 Module.symvers
diff --git a/BUILD.bazel b/BUILD.bazel
new file mode 100644
index 0000000..9848cc3
--- /dev/null
+++ b/BUILD.bazel
@@ -0,0 +1,246 @@
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (C) 2021 The Android Open Source Project
+
+load("//build/kernel/kleaf:constants.bzl", "aarch64_gz_outs")
+load("//build/kernel/kleaf:common_kernels.bzl", "define_common_kernels", "define_db845c")
+
+package(
+    default_visibility = [
+        "//visibility:public",
+    ],
+)
+
+_aarch64_additional_kmi_symbol_lists = [
+    # keep sorted
+    "android/abi_gki_aarch64_amlogic",
+    "android/abi_gki_aarch64_db845c",
+    "android/abi_gki_aarch64_exynos",
+    "android/abi_gki_aarch64_exynos_wear",
+    "android/abi_gki_aarch64_exynosauto",
+    "android/abi_gki_aarch64_fips140",
+    "android/abi_gki_aarch64_galaxy",
+    "android/abi_gki_aarch64_general",
+    "android/abi_gki_aarch64_honor",
+    "android/abi_gki_aarch64_imx",
+    "android/abi_gki_aarch64_lenovo",
+    "android/abi_gki_aarch64_microsoft",
+    "android/abi_gki_aarch64_moto",
+    "android/abi_gki_aarch64_mtk",
+    "android/abi_gki_aarch64_mtktv",
+    "android/abi_gki_aarch64_oplus",
+    "android/abi_gki_aarch64_pasa",
+    "android/abi_gki_aarch64_pixel",
+    "android/abi_gki_aarch64_qcom",
+    "android/abi_gki_aarch64_rtktv",
+    "android/abi_gki_aarch64_sony",
+    "android/abi_gki_aarch64_sunxi",
+    "android/abi_gki_aarch64_tuxera",
+    "android/abi_gki_aarch64_type_visibility",
+    "android/abi_gki_aarch64_unisoc",
+    "android/abi_gki_aarch64_virtual_device",
+    "android/abi_gki_aarch64_virtual_device_removed",
+    "android/abi_gki_aarch64_vivo",
+    "android/abi_gki_aarch64_xiaomi",
+    "android/abi_gki_aarch64_zeku",
+]
+
+define_common_kernels(target_configs = {
+    # Sync with build.config.gki.aarch64
+    "kernel_aarch64": {
+        "module_implicit_outs": [
+            "drivers/block/zram/zram.ko",
+            "mm/zsmalloc.ko",
+        ],
+        "kmi_symbol_list": "android/abi_gki_aarch64",
+        "additional_kmi_symbol_lists": _aarch64_additional_kmi_symbol_lists,
+        "abi_definition": "android/abi_gki_aarch64.xml",
+        "kmi_symbol_list_add_only": True,
+    },
+    "kernel_aarch64_debug": {
+        "module_implicit_outs": [
+            "drivers/block/zram/zram.ko",
+            "mm/zsmalloc.ko",
+        ],
+        "kmi_symbol_list": "android/abi_gki_aarch64",
+        "additional_kmi_symbol_lists": _aarch64_additional_kmi_symbol_lists,
+        "abi_definition": "android/abi_gki_aarch64.xml",
+        "kmi_symbol_list_add_only": True,
+    },
+})
+
+# Sync with build.config.db845c
+define_db845c(
+    name = "db845c",
+    outs = aarch64_gz_outs + [
+        "arch/arm64/boot/dts/qcom/qrb5165-rb5.dtb",
+        "arch/arm64/boot/dts/qcom/sdm845-db845c.dtb",
+    ],
+    module_outs = [
+        # keep sorted
+        "crypto/michael_mic.ko",
+        "drivers/base/regmap/regmap-sdw.ko",
+        "drivers/base/regmap/regmap-slimbus.ko",
+        "drivers/base/regmap/regmap-spmi.ko",
+        # TODO(b/233404531): Remove zram.ko when db845c is a mixed build
+        "drivers/block/zram/zram.ko",
+        "drivers/bus/mhi/host/mhi.ko",
+        "drivers/clk/qcom/clk-qcom.ko",
+        "drivers/clk/qcom/clk-rpmh.ko",
+        "drivers/clk/qcom/clk-spmi-pmic-div.ko",
+        "drivers/clk/qcom/dispcc-sdm845.ko",
+        "drivers/clk/qcom/dispcc-sm8250.ko",
+        "drivers/clk/qcom/gcc-sdm845.ko",
+        "drivers/clk/qcom/gcc-sm8250.ko",
+        "drivers/clk/qcom/gpucc-sdm845.ko",
+        "drivers/clk/qcom/gpucc-sm8250.ko",
+        "drivers/clk/qcom/lpass-gfm-sm8250.ko",
+        "drivers/clk/qcom/videocc-sdm845.ko",
+        "drivers/clk/qcom/videocc-sm8250.ko",
+        "drivers/cpufreq/qcom-cpufreq-hw.ko",
+        "drivers/dma-buf/heaps/system_heap.ko",
+        "drivers/dma/qcom/bam_dma.ko",
+        "drivers/extcon/extcon-usb-gpio.ko",
+        "drivers/firmware/qcom-scm.ko",
+        "drivers/gpio/gpio-wcd934x.ko",
+        "drivers/gpu/drm/bridge/display-connector.ko",
+        "drivers/gpu/drm/bridge/lontium-lt9611.ko",
+        "drivers/gpu/drm/bridge/lontium-lt9611uxc.ko",
+        "drivers/gpu/drm/msm/msm.ko",
+        "drivers/gpu/drm/scheduler/gpu-sched.ko",
+        "drivers/hwspinlock/qcom_hwspinlock.ko",
+        "drivers/i2c/busses/i2c-designware-core.ko",
+        "drivers/i2c/busses/i2c-designware-platform.ko",
+        "drivers/i2c/busses/i2c-qcom-geni.ko",
+        "drivers/i2c/busses/i2c-qup.ko",
+        "drivers/i2c/busses/i2c-rk3x.ko",
+        "drivers/i2c/i2c-dev.ko",
+        "drivers/i2c/i2c-mux.ko",
+        "drivers/i2c/muxes/i2c-mux-pca954x.ko",
+        "drivers/iio/adc/qcom-spmi-adc5.ko",
+        "drivers/iio/adc/qcom-vadc-common.ko",
+        "drivers/input/misc/pm8941-pwrkey.ko",
+        "drivers/interconnect/qcom/icc-bcm-voter.ko",
+        "drivers/interconnect/qcom/icc-osm-l3.ko",
+        "drivers/interconnect/qcom/icc-rpmh.ko",
+        "drivers/interconnect/qcom/qnoc-sdm845.ko",
+        "drivers/interconnect/qcom/qnoc-sm8250.ko",
+        "drivers/iommu/arm/arm-smmu/arm_smmu.ko",
+        "drivers/irqchip/qcom-pdc.ko",
+        "drivers/mailbox/qcom-apcs-ipc-mailbox.ko",
+        "drivers/mailbox/qcom-ipcc.ko",
+        "drivers/mfd/qcom-spmi-pmic.ko",
+        "drivers/mfd/wcd934x.ko",
+        "drivers/misc/fastrpc.ko",
+        "drivers/mmc/host/cqhci.ko",
+        "drivers/mmc/host/sdhci-msm.ko",
+        "drivers/net/can/spi/mcp251xfd/mcp251xfd.ko",
+        "drivers/net/wireless/ath/ath.ko",
+        "drivers/net/wireless/ath/ath10k/ath10k_core.ko",
+        "drivers/net/wireless/ath/ath10k/ath10k_pci.ko",
+        "drivers/net/wireless/ath/ath10k/ath10k_snoc.ko",
+        "drivers/net/wireless/ath/ath11k/ath11k.ko",
+        "drivers/net/wireless/ath/ath11k/ath11k_ahb.ko",
+        "drivers/net/wireless/ath/ath11k/ath11k_pci.ko",
+        "drivers/nvmem/nvmem_qfprom.ko",
+        "drivers/phy/qualcomm/phy-qcom-qmp.ko",
+        "drivers/phy/qualcomm/phy-qcom-qusb2.ko",
+        "drivers/phy/qualcomm/phy-qcom-snps-femto-v2.ko",
+        "drivers/phy/qualcomm/phy-qcom-usb-hs.ko",
+        "drivers/pinctrl/qcom/pinctrl-lpass-lpi.ko",
+        "drivers/pinctrl/qcom/pinctrl-msm.ko",
+        "drivers/pinctrl/qcom/pinctrl-sdm845.ko",
+        "drivers/pinctrl/qcom/pinctrl-sm8250.ko",
+        "drivers/pinctrl/qcom/pinctrl-spmi-gpio.ko",
+        "drivers/pinctrl/qcom/pinctrl-spmi-mpp.ko",
+        "drivers/power/reset/qcom-pon.ko",
+        "drivers/power/reset/reboot-mode.ko",
+        "drivers/power/reset/syscon-reboot-mode.ko",
+        "drivers/regulator/gpio-regulator.ko",
+        "drivers/regulator/qcom-rpmh-regulator.ko",
+        "drivers/regulator/qcom_spmi-regulator.ko",
+        "drivers/regulator/qcom_usb_vbus-regulator.ko",
+        "drivers/remoteproc/qcom_common.ko",
+        "drivers/remoteproc/qcom_pil_info.ko",
+        "drivers/remoteproc/qcom_q6v5.ko",
+        "drivers/remoteproc/qcom_q6v5_adsp.ko",
+        "drivers/remoteproc/qcom_q6v5_mss.ko",
+        "drivers/remoteproc/qcom_q6v5_pas.ko",
+        "drivers/remoteproc/qcom_q6v5_wcss.ko",
+        "drivers/remoteproc/qcom_sysmon.ko",
+        "drivers/reset/reset-qcom-aoss.ko",
+        "drivers/reset/reset-qcom-pdc.ko",
+        "drivers/rpmsg/qcom_glink.ko",
+        "drivers/rpmsg/qcom_glink_rpm.ko",
+        "drivers/rpmsg/qcom_glink_smem.ko",
+        "drivers/rpmsg/qcom_smd.ko",
+        "drivers/rpmsg/rpmsg_ns.ko",
+        "drivers/rtc/rtc-pm8xxx.ko",
+        "drivers/scsi/ufs/ufs_qcom.ko",
+        "drivers/slimbus/slim-qcom-ngd-ctrl.ko",
+        "drivers/slimbus/slimbus.ko",
+        "drivers/soc/qcom/apr.ko",
+        "drivers/soc/qcom/cmd-db.ko",
+        "drivers/soc/qcom/llcc-qcom.ko",
+        "drivers/soc/qcom/mdt_loader.ko",
+        "drivers/soc/qcom/pdr_interface.ko",
+        "drivers/soc/qcom/qcom_aoss.ko",
+        "drivers/soc/qcom/qcom_rpmh.ko",
+        "drivers/soc/qcom/qmi_helpers.ko",
+        "drivers/soc/qcom/rmtfs_mem.ko",
+        "drivers/soc/qcom/rpmhpd.ko",
+        "drivers/soc/qcom/smem.ko",
+        "drivers/soc/qcom/smp2p.ko",
+        "drivers/soc/qcom/smsm.ko",
+        "drivers/soc/qcom/socinfo.ko",
+        "drivers/soundwire/soundwire-bus.ko",
+        "drivers/soundwire/soundwire-qcom.ko",
+        "drivers/spi/spi-geni-qcom.ko",
+        "drivers/spi/spi-pl022.ko",
+        "drivers/spi/spi-qcom-qspi.ko",
+        "drivers/spi/spi-qup.ko",
+        "drivers/spmi/spmi-pmic-arb.ko",
+        "drivers/thermal/qcom/lmh.ko",
+        "drivers/thermal/qcom/qcom-spmi-adc-tm5.ko",
+        "drivers/thermal/qcom/qcom-spmi-temp-alarm.ko",
+        "drivers/thermal/qcom/qcom_tsens.ko",
+        "drivers/tty/serial/msm_serial.ko",
+        "drivers/usb/common/ulpi.ko",
+        "drivers/usb/host/ohci-hcd.ko",
+        "drivers/usb/host/ohci-pci.ko",
+        "drivers/usb/host/ohci-platform.ko",
+        "drivers/usb/typec/qcom-pmic-typec.ko",
+        "drivers/watchdog/pm8916_wdt.ko",
+        "drivers/watchdog/qcom-wdt.ko",
+        # TODO(b/233404531): Remove zsmalloc.ko when db845c is a mixed build
+        "mm/zsmalloc.ko",
+        "net/mac80211/mac80211.ko",
+        "net/qrtr/qrtr.ko",
+        "net/qrtr/qrtr-mhi.ko",
+        "net/qrtr/qrtr-smd.ko",
+        "net/qrtr/qrtr-tun.ko",
+        "net/wireless/cfg80211.ko",
+        "sound/soc/codecs/snd-soc-dmic.ko",
+        "sound/soc/codecs/snd-soc-hdmi-codec.ko",
+        "sound/soc/codecs/snd-soc-lpass-va-macro.ko",
+        "sound/soc/codecs/snd-soc-lpass-wsa-macro.ko",
+        "sound/soc/codecs/snd-soc-max98927.ko",
+        "sound/soc/codecs/snd-soc-rl6231.ko",
+        "sound/soc/codecs/snd-soc-rt5663.ko",
+        "sound/soc/codecs/snd-soc-wcd-mbhc.ko",
+        "sound/soc/codecs/snd-soc-wcd9335.ko",
+        "sound/soc/codecs/snd-soc-wcd934x.ko",
+        "sound/soc/codecs/snd-soc-wsa881x.ko",
+        "sound/soc/qcom/qdsp6/q6adm.ko",
+        "sound/soc/qcom/qdsp6/q6afe.ko",
+        "sound/soc/qcom/qdsp6/q6afe-clocks.ko",
+        "sound/soc/qcom/qdsp6/q6afe-dai.ko",
+        "sound/soc/qcom/qdsp6/q6asm.ko",
+        "sound/soc/qcom/qdsp6/q6asm-dai.ko",
+        "sound/soc/qcom/qdsp6/q6core.ko",
+        "sound/soc/qcom/qdsp6/q6dsp-common.ko",
+        "sound/soc/qcom/qdsp6/q6routing.ko",
+        "sound/soc/qcom/snd-soc-qcom-common.ko",
+        "sound/soc/qcom/snd-soc-sdm845.ko",
+        "sound/soc/qcom/snd-soc-sm8250.ko",
+    ],
+)
diff --git a/Documentation/ABI/stable/sysfs-module b/Documentation/ABI/stable/sysfs-module
index 6272ae5..46bcd2d 100644
--- a/Documentation/ABI/stable/sysfs-module
+++ b/Documentation/ABI/stable/sysfs-module
@@ -32,3 +32,21 @@
 		Note: If the module is built into the kernel, or if the
 		CONFIG_MODULE_UNLOAD kernel configuration value is not enabled,
 		this file will not be present.
+
+What:		/sys/module/MODULENAME/scmversion
+Date:		November 2020
+KernelVersion:	Android Common Kernel -- android12-5.10+
+Contact:	Will McVicker <willmcvicker@google.com>
+Description:	This read-only file will appear if modpost was supplied with an
+		SCM version for the module. It can be enabled with the config
+		MODULE_SCMVERSION. The SCM version is retrieved by
+		scripts/setlocalversion, which means that the presence of this
+		file depends on CONFIG_LOCALVERSION_AUTO=y. When read, the SCM
+		version that the module was compiled with is returned. The SCM
+		version is returned in the following format::
+
+		===
+		Git:		g[a-f0-9]\+(-dirty)\?
+		Mercurial:	hg[a-f0-9]\+(-dirty)\?
+		Subversion:	svn[0-9]\+
+		===
diff --git a/Documentation/ABI/testing/configfs-usb-gadget-uvc b/Documentation/ABI/testing/configfs-usb-gadget-uvc
index 2d5a591..c25cc28 100644
--- a/Documentation/ABI/testing/configfs-usb-gadget-uvc
+++ b/Documentation/ABI/testing/configfs-usb-gadget-uvc
@@ -7,6 +7,7 @@
 		streaming_maxburst	0..15 (ss only)
 		streaming_maxpacket	1..1023 (fs), 1..3072 (hs/ss)
 		streaming_interval	1..16
+		function_name		string [32]
 		===================	=============================
 
 What:		/config/usb-gadget/gadget/functions/uvc.name/control
@@ -196,7 +197,7 @@
 					read-only
 		bmaControls		this format's data for bmaControls in
 					the streaming header
-		bmInterfaceFlags	specifies interlace information,
+		bmInterlaceFlags	specifies interlace information,
 					read-only
 		bAspectRatioY		the X dimension of the picture aspect
 					ratio, read-only
@@ -252,7 +253,7 @@
 					read-only
 		bmaControls		this format's data for bmaControls in
 					the streaming header
-		bmInterfaceFlags	specifies interlace information,
+		bmInterlaceFlags	specifies interlace information,
 					read-only
 		bAspectRatioY		the X dimension of the picture aspect
 					ratio, read-only
diff --git a/Documentation/ABI/testing/dm-bow b/Documentation/ABI/testing/dm-bow
new file mode 100644
index 0000000..d663e81
--- /dev/null
+++ b/Documentation/ABI/testing/dm-bow
@@ -0,0 +1,19 @@
+What:		/sys/block/dm-<num>/bow/free
+Date:		January 2023
+KernelVersion:	5.15
+Contact:	paullawrence@google.com
+Description:	free space
+		Free space on device in bytes. Only valid in state 0
+Users:		Android vold to determine if there is sufficient space for expected size
+		of checksum
+
+What:		/sys/block/dm-<num>/bow/state
+Date:		January 2023
+KernelVersion:	5.15
+Contact:	paullawrence@google.com
+Description:	dm-bow state
+		Read-write string containing 0, 1 or 2
+		0: Trim mode
+		1: Checkpoint mode
+		2: Committed mode
+		See Documentation/device-mapper/dm-bow for details
diff --git a/Documentation/ABI/testing/sysfs-bus-usb b/Documentation/ABI/testing/sysfs-bus-usb
index 73eb23bc..06b758b 100644
--- a/Documentation/ABI/testing/sysfs-bus-usb
+++ b/Documentation/ABI/testing/sysfs-bus-usb
@@ -244,6 +244,17 @@
 		is permitted, "u2" if only u2 is permitted, "u1_u2" if both u1 and
 		u2 are permitted.
 
+What:		/sys/bus/usb/devices/.../<hub_interface>/port<X>/early_stop
+Date:		Sep 2022
+Contact:	Ray Chi <raychi@google.com>
+Description:
+		Some USB hosts have some watchdog mechanisms so that the device
+		may enter ramdump if it takes a long time during port initialization.
+		This attribute allows each port just has two attempts so that the
+		port initialization will be failed quickly. In addition, if a port
+		which is marked with early_stop has failed to initialize, it will ignore
+		all future connections until this attribute is clear.
+
 What:		/sys/bus/usb/devices/.../power/usb2_lpm_l1_timeout
 Date:		May 2013
 Contact:	Mathias Nyman <mathias.nyman@linux.intel.com>
diff --git a/Documentation/ABI/testing/sysfs-fs-erofs b/Documentation/ABI/testing/sysfs-fs-erofs
new file mode 100644
index 0000000..a951259
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-fs-erofs
@@ -0,0 +1,7 @@
+What:		/sys/fs/erofs/features/
+Date:		November 2021
+Contact:	"Huang Jianan" <huangjianan@oppo.com>
+Description:	Shows all enabled kernel features.
+		Supported features:
+		zero_padding, compr_cfgs, big_pcluster, chunked_file,
+		device_table, compr_head2, sb_chksum.
diff --git a/Documentation/ABI/testing/sysfs-fs-f2fs b/Documentation/ABI/testing/sysfs-fs-f2fs
index 48d41b6..9b583dd 100644
--- a/Documentation/ABI/testing/sysfs-fs-f2fs
+++ b/Documentation/ABI/testing/sysfs-fs-f2fs
@@ -55,8 +55,9 @@
 		0x04  F2FS_IPU_UTIL
 		0x08  F2FS_IPU_SSR_UTIL
 		0x10  F2FS_IPU_FSYNC
-		0x20  F2FS_IPU_ASYNC,
+		0x20  F2FS_IPU_ASYNC
 		0x40  F2FS_IPU_NOCACHE
+		0x80  F2FS_IPU_HONOR_OPU_WRITE
 		====  =================
 
 		Refer segment.h for details.
@@ -98,6 +99,33 @@
 		checkpoint is triggered, and issued during the checkpoint.
 		By default, it is disabled with 0.
 
+What:		/sys/fs/f2fs/<disk>/max_discard_request
+Date:		December 2021
+Contact:	"Konstantin Vyshetsky" <vkon@google.com>
+Description:	Controls the number of discards a thread will issue at a time.
+		Higher number will allow the discard thread to finish its work
+		faster, at the cost of higher latency for incomming I/O.
+
+What:		/sys/fs/f2fs/<disk>/min_discard_issue_time
+Date:		December 2021
+Contact:	"Konstantin Vyshetsky" <vkon@google.com>
+Description:	Controls the interval the discard thread will wait between
+		issuing discard requests when there are discards to be issued and
+		no I/O aware interruptions occur.
+
+What:		/sys/fs/f2fs/<disk>/mid_discard_issue_time
+Date:		December 2021
+Contact:	"Konstantin Vyshetsky" <vkon@google.com>
+Description:	Controls the interval the discard thread will wait between
+		issuing discard requests when there are discards to be issued and
+		an I/O aware interruption occurs.
+
+What:		/sys/fs/f2fs/<disk>/max_discard_issue_time
+Date:		December 2021
+Contact:	"Konstantin Vyshetsky" <vkon@google.com>
+Description:	Controls the interval the discard thread will wait when there are
+		no discard operations to be issued.
+
 What:		/sys/fs/f2fs/<disk>/discard_granularity
 Date:		July 2017
 Contact:	"Chao Yu" <yuchao0@huawei.com>
@@ -112,6 +140,11 @@
 Description:	Set timeout to issue discard commands during umount.
 	        Default: 5 secs
 
+What:		/sys/fs/f2fs/<disk>/pending_discard
+Date:		November 2021
+Contact:	"Jaegeuk Kim" <jaegeuk@kernel.org>
+Description:	Shows the number of pending discard commands in the queue.
+
 What:		/sys/fs/f2fs/<disk>/max_victim_search
 Date:		January 2014
 Contact:	"Jaegeuk Kim" <jaegeuk.kim@samsung.com>
@@ -264,11 +297,16 @@
 What:		/sys/fs/f2fs/<disk>/gc_urgent
 Date:		August 2017
 Contact:	"Jaegeuk Kim" <jaegeuk@kernel.org>
-Description:	Do background GC aggressively when set. When gc_urgent = 1,
-		background thread starts to do GC by given gc_urgent_sleep_time
-		interval. When gc_urgent = 2, F2FS will lower the bar of
-		checking idle in order to process outstanding discard commands
-		and GC a little bit aggressively. It is set to 0 by default.
+Description:	Do background GC aggressively when set. Set to 0 by default.
+		gc urgent high(1): does GC forcibly in a period of given
+		gc_urgent_sleep_time and ignores I/O idling check. uses greedy
+		GC approach and turns SSR mode on.
+		gc urgent low(2): lowers the bar of checking I/O idling in
+		order to process outstanding discard commands and GC a
+		little bit aggressively. uses cost benefit GC approach.
+		gc urgent mid(3): does GC forcibly in a period of given
+		gc_urgent_sleep_time and executes a mid level of I/O idling check.
+		uses cost benefit GC approach.
 
 What:		/sys/fs/f2fs/<disk>/gc_urgent_sleep_time
 Date:		August 2017
@@ -499,7 +537,7 @@
 Contact:	"Daeho Jeong" <daehojeong@google.com>
 Description:	Show how many segments have been reclaimed by GC during a specific
 		GC mode (0: GC normal, 1: GC idle CB, 2: GC idle greedy,
-		3: GC idle AT, 4: GC urgent high, 5: GC urgent low)
+		3: GC idle AT, 4: GC urgent high, 5: GC urgent low 6: GC urgent mid)
 		You can re-initialize this value to "0".
 
 What:		/sys/fs/f2fs/<disk>/gc_segment_mode
@@ -513,3 +551,32 @@
 Contact:	"Daeho Jeong" <daehojeong@google.com>
 Description:	You can	control the multiplier value of	bdi device readahead window size
 		between 2 (default) and 256 for POSIX_FADV_SEQUENTIAL advise option.
+
+What:		/sys/fs/f2fs/<disk>/max_fragment_chunk
+Date:		August 2021
+Contact:	"Daeho Jeong" <daehojeong@google.com>
+Description:	With "mode=fragment:block" mount options, we can scatter block allocation.
+		f2fs will allocate 1..<max_fragment_chunk> blocks in a chunk and make a hole
+		in the length of 1..<max_fragment_hole> by turns. This value can be set
+		between 1..512 and the default value is 4.
+
+What:		/sys/fs/f2fs/<disk>/max_fragment_hole
+Date:		August 2021
+Contact:	"Daeho Jeong" <daehojeong@google.com>
+Description:	With "mode=fragment:block" mount options, we can scatter block allocation.
+		f2fs will allocate 1..<max_fragment_chunk> blocks in a chunk and make a hole
+		in the length of 1..<max_fragment_hole> by turns. This value can be set
+		between 1..512 and the default value is 4.
+
+What:		/sys/fs/f2fs/<disk>/gc_urgent_high_remaining
+Date:		December 2021
+Contact:	"Daeho Jeong" <daehojeong@google.com>
+Description:	You can set the trial count limit for GC urgent high mode with this value.
+		If GC thread gets to the limit, the mode will turn back to GC normal mode.
+		By default, the value is zero, which means there is no limit like before.
+
+What:		/sys/fs/f2fs/<disk>/max_roll_forward_node_blocks
+Date:		January 2022
+Contact:	"Jaegeuk Kim" <jaegeuk@kernel.org>
+Description:	Controls max # of node block writes to be used for roll forward
+		recovery. This can limit the roll forward recovery time.
diff --git a/Documentation/ABI/testing/sysfs-fs-fuse b/Documentation/ABI/testing/sysfs-fs-fuse
new file mode 100644
index 0000000..b995684
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-fs-fuse
@@ -0,0 +1,19 @@
+What:		/sys/fs/fuse/features/fuse_bpf
+Date:		December 2022
+Contact:	Paul Lawrence <paullawrence@google.com>
+Description:
+		Read-only file that contains the word 'supported' if fuse-bpf is
+		supported, does not exist otherwise
+
+What:		/sys/fs/fuse/bpf_prog_type_fuse
+Date:		December 2022
+Contact:	Paul Lawrence <paullawrence@google.com>
+Description:
+		bpf_prog_type_fuse defines the program type of bpf programs that
+		may be passed to fuse-bpf. For upstream bpf program types, this
+		is a constant defined in a contiguous array of constants.
+		bpf_prog_type_fuse is appended to the end of the list, so it may
+		change and therefore its value must be read from this file.
+
+		Contents is ASCII decimal representation of bpf_prog_type_fuse
+
diff --git a/Documentation/ABI/testing/sysfs-fs-incfs b/Documentation/ABI/testing/sysfs-fs-incfs
new file mode 100644
index 0000000..e4e05f9
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-fs-incfs
@@ -0,0 +1,70 @@
+What:		/sys/fs/incremental-fs/features/corefs
+Date:		2019
+Contact:	Paul Lawrence <paullawrence@google.com>
+Description:	Reads 'supported'. Always present.
+
+What:		/sys/fs/incremental-fs/features/v2
+Date:		April 2021
+Contact:	Paul Lawrence <paullawrence@google.com>
+Description:	Reads 'supported'. Present if all v2 features of incfs are
+		supported.
+
+What:		/sys/fs/incremental-fs/features/zstd
+Date:		April 2021
+Contact:	Paul Lawrence <paullawrence@google.com>
+Description:	Reads 'supported'. Present if zstd compression is supported
+		for data blocks.
+
+What:		/sys/fs/incremental-fs/features/bugfix_throttling
+Date:		January 2023
+Contact:	Paul Lawrence <paullawrence@google.com>
+Description:	Reads 'supported'. Present if the throttling lock bug is fixed
+		https://android-review.git.corp.google.com/c/kernel/common/+/2381827
+
+What:		/sys/fs/incremental-fs/instances/[name]
+Date:		April 2021
+Contact:	Paul Lawrence <paullawrence@google.com>
+Description:	Folder created when incfs is mounted with the sysfs_name=[name]
+		option. If this option is used, the following values are created
+		in this folder.
+
+What:		/sys/fs/incremental-fs/instances/[name]/reads_delayed_min
+Date:		April 2021
+Contact:	Paul Lawrence <paullawrence@google.com>
+Description:	Returns a count of the number of reads that were delayed as a
+		result of the per UID read timeouts min time setting.
+
+What:		/sys/fs/incremental-fs/instances/[name]/reads_delayed_min_us
+Date:		April 2021
+Contact:	Paul Lawrence <paullawrence@google.com>
+Description:	Returns total delay time for all files since first mount as a
+		result of the per UID read timeouts min time setting.
+
+What:		/sys/fs/incremental-fs/instances/[name]/reads_delayed_pending
+Date:		April 2021
+Contact:	Paul Lawrence <paullawrence@google.com>
+Description:	Returns a count of the number of reads that were delayed as a
+		result of waiting for a pending read.
+
+What:		/sys/fs/incremental-fs/instances/[name]/reads_delayed_pending_us
+Date:		April 2021
+Contact:	Paul Lawrence <paullawrence@google.com>
+Description:	Returns total delay time for all files since first mount as a
+		result of waiting for a pending read.
+
+What:		/sys/fs/incremental-fs/instances/[name]/reads_failed_hash_verification
+Date:		April 2021
+Contact:	Paul Lawrence <paullawrence@google.com>
+Description:	Returns number of reads that failed because of hash verification
+		failures.
+
+What:		/sys/fs/incremental-fs/instances/[name]/reads_failed_other
+Date:		April 2021
+Contact:	Paul Lawrence <paullawrence@google.com>
+Description:	Returns number of reads that failed for reasons other than
+		timing out or hash failures.
+
+What:		/sys/fs/incremental-fs/instances/[name]/reads_failed_timed_out
+Date:		April 2021
+Contact:	Paul Lawrence <paullawrence@google.com>
+Description:	Returns number of reads that timed out.
diff --git a/Documentation/ABI/testing/sysfs-kernel-dmaheap b/Documentation/ABI/testing/sysfs-kernel-dmaheap
new file mode 100644
index 0000000..f496181
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-kernel-dmaheap
@@ -0,0 +1,7 @@
+What:		/sys/kernel/dma_heap/total_pools_kb
+Date:		Feb 2021
+KernelVersion:	5.10
+Contact:	Hridya Valsaraju <hridya@google.com>,
+Description:
+		The total_pools_kb file is read-only and specifies how much
+		memory in Kb is allocated to DMA-BUF heap pools.
diff --git a/Documentation/ABI/testing/sysfs-kernel-wakeup_reasons b/Documentation/ABI/testing/sysfs-kernel-wakeup_reasons
new file mode 100644
index 0000000..acb19b9
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-kernel-wakeup_reasons
@@ -0,0 +1,16 @@
+What:		/sys/kernel/wakeup_reasons/last_resume_reason
+Date:		February 2014
+Contact:	Ruchi Kandoi <kandoiruchi@google.com>
+Description:
+		The /sys/kernel/wakeup_reasons/last_resume_reason is
+		used to report wakeup reasons after system exited suspend.
+
+What:		/sys/kernel/wakeup_reasons/last_suspend_time
+Date:		March 2015
+Contact:	jinqian <jinqian@google.com>
+Description:
+		The /sys/kernel/wakeup_reasons/last_suspend_time is
+		used to report time spent in last suspend cycle. It contains
+		two numbers (in seconds) separated by space. First number is
+		the time spent in suspend and resume processes. Second number
+		is the time spent in sleep state.
\ No newline at end of file
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 2cd4d66..a365cb7 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -957,6 +957,10 @@
 			can be useful when debugging issues that require an SLB
 			miss to occur.
 
+	disable_dma32=	[KNL]
+			Dynamically disable ZONE_DMA32 on kernels compiled with
+			CONFIG_ZONE_DMA32=y.
+
 	stress_slb	[PPC]
 			Limits the number of kernel SLB entries, and flushes
 			them frequently to increase the rate of SLB faults
@@ -1392,6 +1396,10 @@
 			Format: { "fix" }
 			Permit 'security.evm' to be updated regardless of
 			current integrity status.
+	export_pmu_events
+			[KNL,ARM64] Sets the PMU export bit (PMCR_EL0.X), which enables
+			the exporting of events over an IMPLEMENTATION DEFINED PMU event
+			export bus to another device.
 
 	failslab=
 	fail_usercopy=
@@ -1662,6 +1670,10 @@
 				If specified, z/VM IUCV HVC accepts connections
 				from listed z/VM user IDs only.
 
+	hvc_dcc.enable=	[ARM,ARM64]	Enable DCC driver at runtime. For GKI,
+				disabled at runtime by default to prevent
+				crashes in devices which do not support DCC.
+
 	hv_nopvspin	[X86,HYPER_V] Disables the paravirt spinlock optimizations
 				      which allow the hypervisor to 'idle' the
 				      guest on lock contention.
@@ -2072,6 +2084,14 @@
 			  forcing Dual Address Cycle for PCI cards supporting
 			  greater than 32-bit addressing.
 
+	iommu.max_align_shift=
+			[ARM64, X86] Limit the alignment of IOVAs to a maximum
+			PAGE_SIZE order. Larger IOVAs will be aligned to this
+			specified order. The order is expressed as a power of
+			two multiplied by the PAGE_SIZE.
+			Format: { "4" | "5" | "6" | "7" | "8" | "9" }
+			Default: 9
+
 	iommu.strict=	[ARM64, X86] Configure TLB invalidation behaviour
 			Format: { "0" | "1" }
 			0 - Lazy mode.
@@ -2094,6 +2114,9 @@
 			1 - Bypass the IOMMU for DMA.
 			unset - Use value of CONFIG_IOMMU_DEFAULT_PASSTHROUGH.
 
+	ioremap_guard	[ARM64] enable the KVM MMIO guard functionality
+			if available.
+
 	io7=		[HW] IO7 for Marvel-based Alpha systems
 			See comment before marvel_specify_io7 in
 			arch/alpha/kernel/core_marvel.c.
@@ -2416,14 +2439,17 @@
 	kvm-arm.mode=
 			[KVM,ARM] Select one of KVM/arm64's modes of operation.
 
+			none: Forcefully disable KVM.
+
 			nvhe: Standard nVHE-based mode, without support for
 			      protected guests.
 
 			protected: nVHE-based mode with support for guests whose
 				   state is kept private from the host.
-				   Not valid if the kernel is running in EL2.
 
-			Defaults to VHE/nVHE based on hardware support.
+			Defaults to VHE/nVHE based on hardware support. Setting
+			mode to "protected" will disable kexec and hibernation
+			for the host.
 
 	kvm-arm.vgic_v3_group0_trap=
 			[KVM,ARM] Trap guest accesses to GICv3 group-0
diff --git a/Documentation/admin-guide/mm/index.rst b/Documentation/admin-guide/mm/index.rst
index cbd19d5..d42ee3d 100644
--- a/Documentation/admin-guide/mm/index.rst
+++ b/Documentation/admin-guide/mm/index.rst
@@ -32,6 +32,7 @@
    idle_page_tracking
    ksm
    memory-hotplug
+   multigen_lru
    nommu-mmap
    numa_memory_policy
    numaperf
diff --git a/Documentation/admin-guide/mm/multigen_lru.rst b/Documentation/admin-guide/mm/multigen_lru.rst
new file mode 100644
index 0000000..33e0688
--- /dev/null
+++ b/Documentation/admin-guide/mm/multigen_lru.rst
@@ -0,0 +1,162 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+=============
+Multi-Gen LRU
+=============
+The multi-gen LRU is an alternative LRU implementation that optimizes
+page reclaim and improves performance under memory pressure. Page
+reclaim decides the kernel's caching policy and ability to overcommit
+memory. It directly impacts the kswapd CPU usage and RAM efficiency.
+
+Quick start
+===========
+Build the kernel with the following configurations.
+
+* ``CONFIG_LRU_GEN=y``
+* ``CONFIG_LRU_GEN_ENABLED=y``
+
+All set!
+
+Runtime options
+===============
+``/sys/kernel/mm/lru_gen/`` contains stable ABIs described in the
+following subsections.
+
+Kill switch
+-----------
+``enabled`` accepts different values to enable or disable the
+following components. Its default value depends on
+``CONFIG_LRU_GEN_ENABLED``. All the components should be enabled
+unless some of them have unforeseen side effects. Writing to
+``enabled`` has no effect when a component is not supported by the
+hardware, and valid values will be accepted even when the main switch
+is off.
+
+====== ===============================================================
+Values Components
+====== ===============================================================
+0x0001 The main switch for the multi-gen LRU.
+0x0002 Clearing the accessed bit in leaf page table entries in large
+       batches, when MMU sets it (e.g., on x86). This behavior can
+       theoretically worsen lock contention (mmap_lock). If it is
+       disabled, the multi-gen LRU will suffer a minor performance
+       degradation for workloads that contiguously map hot pages,
+       whose accessed bits can be otherwise cleared by fewer larger
+       batches.
+0x0004 Clearing the accessed bit in non-leaf page table entries as
+       well, when MMU sets it (e.g., on x86). This behavior was not
+       verified on x86 varieties other than Intel and AMD. If it is
+       disabled, the multi-gen LRU will suffer a negligible
+       performance degradation.
+[yYnN] Apply to all the components above.
+====== ===============================================================
+
+E.g.,
+::
+
+    echo y >/sys/kernel/mm/lru_gen/enabled
+    cat /sys/kernel/mm/lru_gen/enabled
+    0x0007
+    echo 5 >/sys/kernel/mm/lru_gen/enabled
+    cat /sys/kernel/mm/lru_gen/enabled
+    0x0005
+
+Thrashing prevention
+--------------------
+Personal computers are more sensitive to thrashing because it can
+cause janks (lags when rendering UI) and negatively impact user
+experience. The multi-gen LRU offers thrashing prevention to the
+majority of laptop and desktop users who do not have ``oomd``.
+
+Users can write ``N`` to ``min_ttl_ms`` to prevent the working set of
+``N`` milliseconds from getting evicted. The OOM killer is triggered
+if this working set cannot be kept in memory. In other words, this
+option works as an adjustable pressure relief valve, and when open, it
+terminates applications that are hopefully not being used.
+
+Based on the average human detectable lag (~100ms), ``N=1000`` usually
+eliminates intolerable janks due to thrashing. Larger values like
+``N=3000`` make janks less noticeable at the risk of premature OOM
+kills.
+
+The default value ``0`` means disabled.
+
+Experimental features
+=====================
+``/sys/kernel/debug/lru_gen`` accepts commands described in the
+following subsections. Multiple command lines are supported, so does
+concatenation with delimiters ``,`` and ``;``.
+
+``/sys/kernel/debug/lru_gen_full`` provides additional stats for
+debugging. ``CONFIG_LRU_GEN_STATS=y`` keeps historical stats from
+evicted generations in this file.
+
+Working set estimation
+----------------------
+Working set estimation measures how much memory an application needs
+in a given time interval, and it is usually done with little impact on
+the performance of the application. E.g., data centers want to
+optimize job scheduling (bin packing) to improve memory utilizations.
+When a new job comes in, the job scheduler needs to find out whether
+each server it manages can allocate a certain amount of memory for
+this new job before it can pick a candidate. To do so, the job
+scheduler needs to estimate the working sets of the existing jobs.
+
+When it is read, ``lru_gen`` returns a histogram of numbers of pages
+accessed over different time intervals for each memcg and node.
+``MAX_NR_GENS`` decides the number of bins for each histogram. The
+histograms are noncumulative.
+::
+
+    memcg  memcg_id  memcg_path
+       node  node_id
+           min_gen_nr  age_in_ms  nr_anon_pages  nr_file_pages
+           ...
+           max_gen_nr  age_in_ms  nr_anon_pages  nr_file_pages
+
+Each bin contains an estimated number of pages that have been accessed
+within ``age_in_ms``. E.g., ``min_gen_nr`` contains the coldest pages
+and ``max_gen_nr`` contains the hottest pages, since ``age_in_ms`` of
+the former is the largest and that of the latter is the smallest.
+
+Users can write the following command to ``lru_gen`` to create a new
+generation ``max_gen_nr+1``:
+
+    ``+ memcg_id node_id max_gen_nr [can_swap [force_scan]]``
+
+``can_swap`` defaults to the swap setting and, if it is set to ``1``,
+it forces the scan of anon pages when swap is off, and vice versa.
+``force_scan`` defaults to ``1`` and, if it is set to ``0``, it
+employs heuristics to reduce the overhead, which is likely to reduce
+the coverage as well.
+
+A typical use case is that a job scheduler runs this command at a
+certain time interval to create new generations, and it ranks the
+servers it manages based on the sizes of their cold pages defined by
+this time interval.
+
+Proactive reclaim
+-----------------
+Proactive reclaim induces page reclaim when there is no memory
+pressure. It usually targets cold pages only. E.g., when a new job
+comes in, the job scheduler wants to proactively reclaim cold pages on
+the server it selected, to improve the chance of successfully landing
+this new job.
+
+Users can write the following command to ``lru_gen`` to evict
+generations less than or equal to ``min_gen_nr``.
+
+    ``- memcg_id node_id min_gen_nr [swappiness [nr_to_reclaim]]``
+
+``min_gen_nr`` should be less than ``max_gen_nr-1``, since
+``max_gen_nr`` and ``max_gen_nr-1`` are not fully aged (equivalent to
+the active list) and therefore cannot be evicted. ``swappiness``
+overrides the default value in ``/proc/sys/vm/swappiness``.
+``nr_to_reclaim`` limits the number of pages to evict.
+
+A typical use case is that a job scheduler runs this command before it
+tries to land a new job on a server. If it fails to materialize enough
+cold pages because of the overestimation, it retries on the next
+server according to the ranking result obtained from the working set
+estimation step. This less forceful approach limits the impacts on the
+existing jobs.
diff --git a/Documentation/admin-guide/sysctl/kernel.rst b/Documentation/admin-guide/sysctl/kernel.rst
index 48b91c4..a1994a9 100644
--- a/Documentation/admin-guide/sysctl/kernel.rst
+++ b/Documentation/admin-guide/sysctl/kernel.rst
@@ -267,6 +267,17 @@
 see the ``hostname(1)`` man page.
 
 
+export_pmu_events (arm64 only)
+==============================
+
+Controls the PMU export bit (PMCR_EL0.X), which enables the exporting of
+events over an IMPLEMENTATION DEFINED PMU event export bus to another device.
+
+0: disables exporting of events (default).
+
+1: enables exporting of events.
+
+
 firmware_config
 ===============
 
@@ -915,6 +926,17 @@
 The default value is 8.
 
 
+perf_user_access (arm64 only)
+=================================
+
+Controls user space access for reading perf event counters. When set to 1,
+user space can read performance monitor counter registers directly.
+
+The default value is 0 (access disabled).
+
+See Documentation/arm64/perf.rst for more information.
+
+
 pid_max
 =======
 
diff --git a/Documentation/arm64/elf_hwcaps.rst b/Documentation/arm64/elf_hwcaps.rst
index b72ff17..a8f3096 100644
--- a/Documentation/arm64/elf_hwcaps.rst
+++ b/Documentation/arm64/elf_hwcaps.rst
@@ -259,6 +259,11 @@
 
     Functionality implied by ID_AA64ISAR2_EL1.RPRES == 0b0001.
 
+HWCAP2_MTE3
+
+    Functionality implied by ID_AA64PFR1_EL1.MTE == 0b0011, as described
+    by Documentation/arm64/memory-tagging-extension.rst.
+
 4. Unused AT_HWCAP bits
 -----------------------
 
diff --git a/Documentation/arm64/memory-tagging-extension.rst b/Documentation/arm64/memory-tagging-extension.rst
index 7b99c8f..dbc9dd8 100644
--- a/Documentation/arm64/memory-tagging-extension.rst
+++ b/Documentation/arm64/memory-tagging-extension.rst
@@ -76,6 +76,9 @@
   with ``.si_code = SEGV_MTEAERR`` and ``.si_addr = 0`` (the faulting
   address is unknown).
 
+- *Asymmetric* - Reads are handled as for synchronous mode while writes
+  are handled as for asynchronous mode.
+
 The user can select the above modes, per thread, using the
 ``prctl(PR_SET_TAGGED_ADDR_CTRL, flags, 0, 0, 0)`` system call where ``flags``
 contains any number of the following values in the ``PR_MTE_TCF_MASK``
@@ -139,18 +142,25 @@
 
 The preferred tag checking mode for each CPU is controlled by
 ``/sys/devices/system/cpu/cpu<N>/mte_tcf_preferred``, to which a
-privileged user may write the value ``async`` or ``sync``.  The default
-preferred mode for each CPU is ``async``.
+privileged user may write the value ``async``, ``sync`` or ``asymm``.  The
+default preferred mode for each CPU is ``async``.
 
 To allow a program to potentially run in the CPU's preferred tag
 checking mode, the user program may set multiple tag check fault mode
 bits in the ``flags`` argument to the ``prctl(PR_SET_TAGGED_ADDR_CTRL,
-flags, 0, 0, 0)`` system call. If the CPU's preferred tag checking
-mode is in the task's set of provided tag checking modes (this will
-always be the case at present because the kernel only supports two
-tag checking modes, but future kernels may support more modes), that
-mode will be selected. Otherwise, one of the modes in the task's mode
-set will be selected in a currently unspecified manner.
+flags, 0, 0, 0)`` system call. If both synchronous and asynchronous
+modes are requested then asymmetric mode may also be selected by the
+kernel. If the CPU's preferred tag checking mode is in the task's set
+of provided tag checking modes, that mode will be selected. Otherwise,
+one of the modes in the task's mode will be selected by the kernel
+from the task's mode set using the preference order:
+
+	1. Asynchronous
+	2. Asymmetric
+	3. Synchronous
+
+Note that there is no way for userspace to request multiple modes and
+also disable asymmetric mode.
 
 Initial process state
 ---------------------
@@ -213,6 +223,29 @@
 Documentation/arm64/tagged-address-abi.rst and above. The corresponding
 ``regset`` is 1 element of 8 bytes (``sizeof(long))``).
 
+Core dump support
+-----------------
+
+The allocation tags for user memory mapped with ``PROT_MTE`` are dumped
+in the core file as additional ``PT_AARCH64_MEMTAG_MTE`` segments. The
+program header for such segment is defined as:
+
+:``p_type``: ``PT_AARCH64_MEMTAG_MTE``
+:``p_flags``: 0
+:``p_offset``: segment file offset
+:``p_vaddr``: segment virtual address, same as the corresponding
+  ``PT_LOAD`` segment
+:``p_paddr``: 0
+:``p_filesz``: segment size in file, calculated as ``p_mem_sz / 32``
+  (two 4-bit tags cover 32 bytes of memory)
+:``p_memsz``: segment size in memory, same as the corresponding
+  ``PT_LOAD`` segment
+:``p_align``: 0
+
+The tags are stored in the core file at ``p_offset`` as two 4-bit tags
+in a byte. With the tag granule of 16 bytes, a 4K page requires 128
+bytes in the core file.
+
 Example of correct usage
 ========================
 
diff --git a/Documentation/arm64/silicon-errata.rst b/Documentation/arm64/silicon-errata.rst
index 83a75e1..64669bf 100644
--- a/Documentation/arm64/silicon-errata.rst
+++ b/Documentation/arm64/silicon-errata.rst
@@ -78,14 +78,10 @@
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A57      | #1319537        | ARM64_ERRATUM_1319367       |
 +----------------+-----------------+-----------------+-----------------------------+
-| ARM            | Cortex-A57      | #1742098        | ARM64_ERRATUM_1742098       |
-+----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A72      | #853709         | N/A                         |
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A72      | #1319367        | ARM64_ERRATUM_1319367       |
 +----------------+-----------------+-----------------+-----------------------------+
-| ARM            | Cortex-A72      | #1655431        | ARM64_ERRATUM_1742098       |
-+----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A73      | #858921         | ARM64_ERRATUM_858921        |
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A76      | #1188873,1418040| ARM64_ERRATUM_1418040       |
@@ -100,14 +96,14 @@
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A510     | #2441009        | ARM64_ERRATUM_2441009       |
 +----------------+-----------------+-----------------+-----------------------------+
-| ARM            | Cortex-A510     | #2457168        | ARM64_ERRATUM_2457168       |
-+----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A710     | #2119858        | ARM64_ERRATUM_2119858       |
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A710     | #2054223        | ARM64_ERRATUM_2054223       |
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A710     | #2224489        | ARM64_ERRATUM_2224489       |
 +----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-A510     | #2457168        | ARM64_ERRATUM_2457168       |
++----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Neoverse-N1     | #1188873,1418040| ARM64_ERRATUM_1418040       |
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Neoverse-N1     | #1349291        | N/A                         |
@@ -127,6 +123,9 @@
 | ARM            | MMU-700         | #2268618,2812531| N/A                         |
 +----------------+-----------------+-----------------+-----------------------------+
 +----------------+-----------------+-----------------+-----------------------------+
+| ARM            | GIC-700         | #2941627        | ARM64_ERRATUM_2941627       |
++----------------+-----------------+-----------------+-----------------------------+
++----------------+-----------------+-----------------+-----------------------------+
 | Broadcom       | Brahma-B53      | N/A             | ARM64_ERRATUM_845719        |
 +----------------+-----------------+-----------------+-----------------------------+
 | Broadcom       | Brahma-B53      | N/A             | ARM64_ERRATUM_843419        |
diff --git a/Documentation/block/inline-encryption.rst b/Documentation/block/inline-encryption.rst
index 7f9b40d..2e2a2c6 100644
--- a/Documentation/block/inline-encryption.rst
+++ b/Documentation/block/inline-encryption.rst
@@ -1,5 +1,7 @@
 .. SPDX-License-Identifier: GPL-2.0
 
+.. _inline_encryption:
+
 =================
 Inline Encryption
 =================
diff --git a/Documentation/dev-tools/kasan.rst b/Documentation/dev-tools/kasan.rst
index 21dc03b..7614a1f 100644
--- a/Documentation/dev-tools/kasan.rst
+++ b/Documentation/dev-tools/kasan.rst
@@ -30,7 +30,7 @@
 
 The hardware KASAN mode (#3) relies on hardware to perform the checks but
 still requires a compiler version that supports memory tagging instructions.
-This mode is supported in GCC 10+ and Clang 11+.
+This mode is supported in GCC 10+ and Clang 12+.
 
 Both software KASAN modes work with SLUB and SLAB memory allocators,
 while the hardware tag-based KASAN currently only supports SLUB.
@@ -194,14 +194,20 @@
 
 - ``kasan=off`` or ``=on`` controls whether KASAN is enabled (default: ``on``).
 
-- ``kasan.mode=sync`` or ``=async`` controls whether KASAN is configured in
-  synchronous or asynchronous mode of execution (default: ``sync``).
+- ``kasan.mode=sync``, ``=async`` or ``=asymm`` controls whether KASAN
+  is configured in synchronous, asynchronous or asymmetric mode of
+  execution (default: ``sync``).
   Synchronous mode: a bad access is detected immediately when a tag
   check fault occurs.
   Asynchronous mode: a bad access detection is delayed. When a tag check
   fault occurs, the information is stored in hardware (in the TFSR_EL1
   register for arm64). The kernel periodically checks the hardware and
   only reports tag faults during these checks.
+  Asymmetric mode: a bad access is detected synchronously on reads and
+  asynchronously on writes.
+
+- ``kasan.vmalloc=off`` or ``=on`` disables or enables tagging of vmalloc
+  allocations (default: ``on``).
 
 - ``kasan.stacktrace=off`` or ``=on`` disables or enables alloc and free stack
   traces collection (default: ``on``).
@@ -276,8 +282,8 @@
 pointers with the 0xFF pointer tag are not checked). The value 0xFE is currently
 reserved to tag freed memory regions.
 
-Software tag-based KASAN currently only supports tagging of slab and page_alloc
-memory.
+Software tag-based KASAN currently only supports tagging of slab, page_alloc,
+and vmalloc memory.
 
 Hardware tag-based KASAN
 ~~~~~~~~~~~~~~~~~~~~~~~~
@@ -300,8 +306,8 @@
 pointers with the 0xFF pointer tag are not checked). The value 0xFE is currently
 reserved to tag freed memory regions.
 
-Hardware tag-based KASAN currently only supports tagging of slab and page_alloc
-memory.
+Hardware tag-based KASAN currently only supports tagging of slab, page_alloc,
+and VM_ALLOC-based vmalloc memory.
 
 If the hardware does not support MTE (pre ARMv8.5), hardware tag-based KASAN
 will not be enabled. In this case, all KASAN boot parameters are ignored.
@@ -316,6 +322,8 @@
 Shadow memory
 -------------
 
+The contents of this section are only applicable to software KASAN modes.
+
 The kernel maps memory in several different parts of the address space.
 The range of kernel virtual addresses is large: there is not enough real
 memory to support a real shadow region for every address that could be
@@ -346,7 +354,7 @@
 
 With ``CONFIG_KASAN_VMALLOC``, KASAN can cover vmalloc space at the
 cost of greater memory usage. Currently, this is supported on x86,
-riscv, s390, and powerpc.
+arm64, riscv, s390, and powerpc.
 
 This works by hooking into vmalloc and vmap and dynamically
 allocating real shadow memory to back the mappings.
diff --git a/Documentation/device-mapper/dm-bow.txt b/Documentation/device-mapper/dm-bow.txt
new file mode 100644
index 0000000..e3fc4d2
--- /dev/null
+++ b/Documentation/device-mapper/dm-bow.txt
@@ -0,0 +1,99 @@
+dm_bow (backup on write)
+========================
+
+dm_bow is a device mapper driver that uses the free space on a device to back up
+data that is overwritten. The changes can then be committed by a simple state
+change, or rolled back by removing the dm_bow device and running a command line
+utility over the underlying device.
+
+dm_bow has three states, set by writing ‘1’ or ‘2’ to /sys/block/dm-?/bow/state.
+It is only possible to go from state 0 (initial state) to state 1, and then from
+state 1 to state 2.
+
+State 0: dm_bow collects all trims to the device and assumes that these mark
+free space on the overlying file system that can be safely used. Typically the
+mount code would create the dm_bow device, mount the file system, call the
+FITRIM ioctl on the file system then switch to state 1. These trims are not
+propagated to the underlying device.
+
+State 1: All writes to the device cause the underlying data to be backed up to
+the free (trimmed) area as needed in such a way as they can be restored.
+However, the writes, with one exception, then happen exactly as they would
+without dm_bow, so the device is always in a good final state. The exception is
+that sector 0 is used to keep a log of the latest changes, both to indicate that
+we are in this state and to allow rollback. See below for all details. If there
+isn't enough free space, writes are failed with -ENOSPC.
+
+State 2: The transition to state 2 triggers replacing the special sector 0 with
+the normal sector 0, and the freeing of all state information. dm_bow then
+becomes a pass-through driver, allowing the device to continue to be used with
+minimal performance impact.
+
+Usage
+=====
+dm-bow takes one command line parameter, the name of the underlying device.
+
+dm-bow will typically be used in the following way. dm-bow will be loaded with a
+suitable underlying device and the resultant device will be mounted. A file
+system trim will be issued via the FITRIM ioctl, then the device will be
+switched to state 1. The file system will now be used as normal. At some point,
+the changes can either be committed by switching to state 2, or rolled back by
+unmounting the file system, removing the dm-bow device and running the command
+line utility. Note that rebooting the device will be equivalent to unmounting
+and removing, but the command line utility must still be run
+
+Details of operation in state 1
+===============================
+
+dm_bow maintains a type for all sectors. A sector can be any of:
+
+SECTOR0
+SECTOR0_CURRENT
+UNCHANGED
+FREE
+CHANGED
+BACKUP
+
+SECTOR0 is the first sector on the device, and is used to hold the log of
+changes. This is the one exception.
+
+SECTOR0_CURRENT is a sector picked from the FREE sectors, and is where reads and
+writes from the true sector zero are redirected to. Note that like any backup
+sector, if the sector is written to directly, it must be moved again.
+
+UNCHANGED means that the sector has not been changed since we entered state 1.
+Thus if it is written to or trimmed, the contents must first be backed up.
+
+FREE means that the sector was trimmed in state 0 and has not yet been written
+to or used for backup. On being written to, a FREE sector is changed to CHANGED.
+
+CHANGED means that the sector has been modified, and can be further modified
+without further backup.
+
+BACKUP means that this is a free sector being used as a backup. On being written
+to, the contents must first be backed up again.
+
+All backup operations are logged to the first sector. The log sector has the
+format:
+--------------------------------------------------------
+| Magic | Count | Sequence | Log entry | Log entry | …
+--------------------------------------------------------
+
+Magic is a magic number. Count is the number of log entries. Sequence is 0
+initially. A log entry is
+
+-----------------------------------
+| Source | Dest | Size | Checksum |
+-----------------------------------
+
+When SECTOR0 is full, the log sector is backed up and another empty log sector
+created with sequence number one higher. The first entry in any log entry with
+sequence > 0 therefore must be the log of the backing up of the previous log
+sector. Note that sequence is not strictly needed, but is a useful sanity check
+and potentially limits the time spent trying to restore a corrupted snapshot.
+
+On entering state 1, dm_bow has a list of free sectors. All other sectors are
+unchanged. Sector0_current is selected from the free sectors and the contents of
+sector 0 are copied there. The sector 0 is backed up, which triggers the first
+log entry to be written.
+
diff --git a/Documentation/devicetree/bindings/iommu/google,s2mpu.yaml b/Documentation/devicetree/bindings/iommu/google,s2mpu.yaml
new file mode 100644
index 0000000..18bc100
--- /dev/null
+++ b/Documentation/devicetree/bindings/iommu/google,s2mpu.yaml
@@ -0,0 +1,30 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iommu/google,s2mpu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: S2MPU device tree bindings
+
+maintainers:
+  - David Brazdil <dbrazdil@google.com>
+
+properties:
+  reg:
+    maxItems: 1
+
+  compatible:
+    contains:
+      const: google,s2mpu
+
+  power-domain-id:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      ID of the power domain that the S2MPU belongs to. If not specified,
+      the device is assumed to be always powered.
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: true
diff --git a/Documentation/devicetree/bindings/mmc/mtk-sd.yaml b/Documentation/devicetree/bindings/mmc/mtk-sd.yaml
index e866e98..82768a80 100644
--- a/Documentation/devicetree/bindings/mmc/mtk-sd.yaml
+++ b/Documentation/devicetree/bindings/mmc/mtk-sd.yaml
@@ -119,6 +119,18 @@
       If present, HS400 command responses are sampled on rising edges.
       If not present, HS400 command responses are sampled on falling edges.
 
+  mediatek,hs400-ds-dly3:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Gear of the third delay line for DS for input data latch in data
+      pad macro, there are 32 stages from 0 to 31.
+      For different corner IC, the time is different about one step, it is
+      about 100ps.
+      The value is confirmed by doing scan and calibration to find a best
+      value with corner IC and it is valid only for HS400 mode.
+    minimum: 0
+    maximum: 31
+
   mediatek,latch-ck:
     $ref: /schemas/types.yaml#/definitions/uint32
     description:
diff --git a/Documentation/devicetree/bindings/perf/arm,cmn.yaml b/Documentation/devicetree/bindings/perf/arm,cmn.yaml
index 42424cc..2d4219e 100644
--- a/Documentation/devicetree/bindings/perf/arm,cmn.yaml
+++ b/Documentation/devicetree/bindings/perf/arm,cmn.yaml
@@ -12,12 +12,14 @@
 
 properties:
   compatible:
-    const: arm,cmn-600
+    enum:
+      - arm,cmn-600
+      - arm,ci-700
 
   reg:
     items:
       - description: Physical address of the base (PERIPHBASE) and
-          size (up to 64MB) of the configuration address space.
+          size of the configuration address space.
 
   interrupts:
     minItems: 1
@@ -31,14 +33,23 @@
 
   arm,root-node:
     $ref: /schemas/types.yaml#/definitions/uint32
-    description: Offset from PERIPHBASE of the configuration
-      discovery node (see TRM definition of ROOTNODEBASE).
+    description: Offset from PERIPHBASE of CMN-600's configuration
+      discovery node (see TRM definition of ROOTNODEBASE). Not
+      relevant for newer CMN/CI products.
 
 required:
   - compatible
   - reg
   - interrupts
-  - arm,root-node
+
+if:
+  properties:
+    compatible:
+      contains:
+        const: arm,cmn-600
+then:
+  required:
+    - arm,root-node
 
 additionalProperties: false
 
diff --git a/Documentation/devicetree/bindings/reserved-memory/google,open-dice.yaml b/Documentation/devicetree/bindings/reserved-memory/google,open-dice.yaml
new file mode 100644
index 0000000..257a0b5
--- /dev/null
+++ b/Documentation/devicetree/bindings/reserved-memory/google,open-dice.yaml
@@ -0,0 +1,46 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/reserved-memory/google,open-dice.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Open Profile for DICE Device Tree Bindings
+
+description: |
+  This binding represents a reserved memory region containing data
+  generated by the Open Profile for DICE protocol.
+
+  See https://pigweed.googlesource.com/open-dice/
+
+maintainers:
+  - David Brazdil <dbrazdil@google.com>
+
+allOf:
+  - $ref: "reserved-memory.yaml"
+
+properties:
+  compatible:
+    const: google,open-dice
+
+  reg:
+    description: page-aligned region of memory containing DICE data
+
+required:
+  - compatible
+  - reg
+  - no-map
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    reserved-memory {
+        #address-cells = <2>;
+        #size-cells = <1>;
+
+        dice: dice@12340000 {
+            compatible = "google,open-dice";
+            reg = <0x00 0x12340000 0x2000>;
+            no-map;
+        };
+    };
diff --git a/Documentation/devicetree/bindings/virtio/mmio.yaml b/Documentation/devicetree/bindings/virtio/mmio.yaml
index 4b7a027..160b21b 100644
--- a/Documentation/devicetree/bindings/virtio/mmio.yaml
+++ b/Documentation/devicetree/bindings/virtio/mmio.yaml
@@ -31,6 +31,10 @@
     description: Required for devices making accesses thru an IOMMU.
     maxItems: 1
 
+  wakeup-source:
+    type: boolean
+    description: Required for setting irq of a virtio_mmio device as wakeup source.
+
 required:
   - compatible
   - reg
diff --git a/Documentation/filesystems/erofs.rst b/Documentation/filesystems/erofs.rst
index b97579b..7119aa2 100644
--- a/Documentation/filesystems/erofs.rst
+++ b/Documentation/filesystems/erofs.rst
@@ -19,9 +19,10 @@
    immutable and bit-for-bit identical to the official golden image for
    their releases due to security and other considerations and
 
- - hope to save some extra storage space with guaranteed end-to-end performance
-   by using reduced metadata and transparent file compression, especially
-   for those embedded devices with limited memory (ex, smartphone);
+ - hope to minimize extra storage space with guaranteed end-to-end performance
+   by using compact layout, transparent file compression and direct access,
+   especially for those embedded devices with limited memory and high-density
+   hosts with numerous containers;
 
 Here is the main features of EROFS:
 
@@ -51,7 +52,9 @@
  - Support POSIX.1e ACLs by using xattrs;
 
  - Support transparent data compression as an option:
-   LZ4 algorithm with the fixed-sized output compression for high performance.
+   LZ4 algorithm with the fixed-sized output compression for high performance;
+
+ - Multiple device support for multi-layer container images.
 
 The following git tree provides the file system user-space tools under
 development (ex, formatting tool mkfs.erofs):
@@ -87,8 +90,17 @@
 dax={always,never}     Use direct access (no page cache).  See
                        Documentation/filesystems/dax.rst.
 dax                    A legacy option which is an alias for ``dax=always``.
+device=%s              Specify a path to an extra device to be used together.
 ===================    =========================================================
 
+Sysfs Entries
+=============
+
+Information about mounted erofs file systems can be found in /sys/fs/erofs.
+Each mounted filesystem will have a directory in /sys/fs/erofs based on its
+device name (i.e., /sys/fs/erofs/sda).
+(see also Documentation/ABI/testing/sysfs-fs-erofs)
+
 On-disk details
 ===============
 
diff --git a/Documentation/filesystems/f2fs.rst b/Documentation/filesystems/f2fs.rst
index 7fe50b0..b8cdd1f 100644
--- a/Documentation/filesystems/f2fs.rst
+++ b/Documentation/filesystems/f2fs.rst
@@ -198,10 +198,29 @@
 			 FAULT_WRITE_IO		  0x000004000
 			 FAULT_SLAB_ALLOC	  0x000008000
 			 FAULT_DQUOT_INIT	  0x000010000
+			 FAULT_LOCK_OP		  0x000020000
 			 ===================	  ===========
 mode=%s			 Control block allocation mode which supports "adaptive"
 			 and "lfs". In "lfs" mode, there should be no random
 			 writes towards main area.
+			 "fragment:segment" and "fragment:block" are newly added here.
+			 These are developer options for experiments to simulate filesystem
+			 fragmentation/after-GC situation itself. The developers use these
+			 modes to understand filesystem fragmentation/after-GC condition well,
+			 and eventually get some insights to handle them better.
+			 In "fragment:segment", f2fs allocates a new segment in ramdom
+			 position. With this, we can simulate the after-GC condition.
+			 In "fragment:block", we can scatter block allocation with
+			 "max_fragment_chunk" and "max_fragment_hole" sysfs nodes.
+			 We added some randomness to both chunk and hole size to make
+			 it close to realistic IO pattern. So, in this mode, f2fs will allocate
+			 1..<max_fragment_chunk> blocks in a chunk and make a hole in the
+			 length of 1..<max_fragment_hole> by turns. With this, the newly
+			 allocated blocks will be scattered throughout the whole partition.
+			 Note that "fragment:block" implicitly enables "fragment:segment"
+			 option for more randomness.
+			 Please, use these options for your experiments and we strongly
+			 recommend to re-format the filesystem after using these options.
 io_bits=%u		 Set the bit size of write IO requests. It should be set
 			 with "mode=lfs".
 usrquota		 Enable plain user disk quota accounting.
@@ -323,6 +342,11 @@
 			 default, it is helpful for large sized SMR or ZNS devices to
 			 reduce memory cost by getting rid of fs metadata supports small
 			 discard.
+memory=%s		 Control memory mode. This supports "normal" and "low" modes.
+			 "low" mode is introduced to support low memory devices.
+			 Because of the nature of low memory devices, in this mode, f2fs
+			 will try to save memory sometimes by sacrificing performance.
+			 "normal" mode is the default mode and same as before.
 ======================== ============================================================
 
 Debugfs Entries
diff --git a/Documentation/filesystems/fscrypt.rst b/Documentation/filesystems/fscrypt.rst
index 7940a45..25e7f5b 100644
--- a/Documentation/filesystems/fscrypt.rst
+++ b/Documentation/filesystems/fscrypt.rst
@@ -77,11 +77,11 @@
 
 fscrypt is only resistant to side-channel attacks, such as timing or
 electromagnetic attacks, to the extent that the underlying Linux
-Cryptographic API algorithms are.  If a vulnerable algorithm is used,
-such as a table-based implementation of AES, it may be possible for an
-attacker to mount a side channel attack against the online system.
-Side channel attacks may also be mounted against applications
-consuming decrypted data.
+Cryptographic API algorithms or inline encryption hardware are.  If a
+vulnerable algorithm is used, such as a table-based implementation of
+AES, it may be possible for an attacker to mount a side channel attack
+against the online system.  Side channel attacks may also be mounted
+against applications consuming decrypted data.
 
 Unauthorized file access
 ~~~~~~~~~~~~~~~~~~~~~~~~
@@ -337,6 +337,7 @@
 - AES-256-XTS for contents and AES-256-CTS-CBC for filenames
 - AES-128-CBC for contents and AES-128-CTS-CBC for filenames
 - Adiantum for both contents and filenames
+- AES-256-XTS for contents and AES-256-HCTR2 for filenames (v2 policies only)
 
 If unsure, you should use the (AES-256-XTS, AES-256-CTS-CBC) pair.
 
@@ -357,6 +358,17 @@
 implementations of ChaCha and NHPoly1305 should be enabled, e.g.
 CONFIG_CRYPTO_CHACHA20_NEON and CONFIG_CRYPTO_NHPOLY1305_NEON for ARM.
 
+AES-256-HCTR2 is another true wide-block encryption mode that is intended for
+use on CPUs with dedicated crypto instructions.  AES-256-HCTR2 has the property
+that a bitflip in the plaintext changes the entire ciphertext.  This property
+makes it desirable for filename encryption since initialization vectors are
+reused within a directory.  For more details on AES-256-HCTR2, see the paper
+"Length-preserving encryption with HCTR2"
+(https://eprint.iacr.org/2021/1441.pdf).  To use AES-256-HCTR2,
+CONFIG_CRYPTO_HCTR2 must be enabled.  Also, fast implementations of XCTR and
+POLYVAL should be enabled, e.g. CRYPTO_POLYVAL_ARM64_CE and
+CRYPTO_AES_ARM64_CE_BLK for ARM64.
+
 New encryption modes can be added relatively easily, without changes
 to individual filesystems.  However, authenticated encryption (AE)
 modes are not currently supported because of the difficulty of dealing
@@ -404,11 +416,11 @@
 inode number (for `IV_INO_LBLK_64 policies`_) included in the IVs.
 Thus, IV reuse is limited to within a single directory.
 
-With CTS-CBC, the IV reuse means that when the plaintext filenames
-share a common prefix at least as long as the cipher block size (16
-bytes for AES), the corresponding encrypted filenames will also share
-a common prefix.  This is undesirable.  Adiantum does not have this
-weakness, as it is a wide-block encryption mode.
+With CTS-CBC, the IV reuse means that when the plaintext filenames share a
+common prefix at least as long as the cipher block size (16 bytes for AES), the
+corresponding encrypted filenames will also share a common prefix.  This is
+undesirable.  Adiantum and HCTR2 do not have this weakness, as they are
+wide-block encryption modes.
 
 All supported filenames encryption modes accept any plaintext length
 >= 16 bytes; cipher block alignment is not required.  However,
@@ -1047,8 +1059,8 @@
   may be used to overwrite the source files but isn't guaranteed to be
   effective on all filesystems and storage devices.
 
-- Direct I/O is not supported on encrypted files.  Attempts to use
-  direct I/O on such files will fall back to buffered I/O.
+- Direct I/O is supported on encrypted files only under some
+  circumstances.  For details, see `Direct I/O support`_.
 
 - The fallocate operations FALLOC_FL_COLLAPSE_RANGE and
   FALLOC_FL_INSERT_RANGE are not supported on encrypted files and will
@@ -1135,6 +1147,71 @@
 that systems implementing a form of "verified boot" take advantage of
 this by validating all top-level encryption policies prior to access.
 
+Inline encryption support
+=========================
+
+By default, fscrypt uses the kernel crypto API for all cryptographic
+operations (other than HKDF, which fscrypt partially implements
+itself).  The kernel crypto API supports hardware crypto accelerators,
+but only ones that work in the traditional way where all inputs and
+outputs (e.g. plaintexts and ciphertexts) are in memory.  fscrypt can
+take advantage of such hardware, but the traditional acceleration
+model isn't particularly efficient and fscrypt hasn't been optimized
+for it.
+
+Instead, many newer systems (especially mobile SoCs) have *inline
+encryption hardware* that can encrypt/decrypt data while it is on its
+way to/from the storage device.  Linux supports inline encryption
+through a set of extensions to the block layer called *blk-crypto*.
+blk-crypto allows filesystems to attach encryption contexts to bios
+(I/O requests) to specify how the data will be encrypted or decrypted
+in-line.  For more information about blk-crypto, see
+:ref:`Documentation/block/inline-encryption.rst <inline_encryption>`.
+
+On supported filesystems (currently ext4 and f2fs), fscrypt can use
+blk-crypto instead of the kernel crypto API to encrypt/decrypt file
+contents.  To enable this, set CONFIG_FS_ENCRYPTION_INLINE_CRYPT=y in
+the kernel configuration, and specify the "inlinecrypt" mount option
+when mounting the filesystem.
+
+Note that the "inlinecrypt" mount option just specifies to use inline
+encryption when possible; it doesn't force its use.  fscrypt will
+still fall back to using the kernel crypto API on files where the
+inline encryption hardware doesn't have the needed crypto capabilities
+(e.g. support for the needed encryption algorithm and data unit size)
+and where blk-crypto-fallback is unusable.  (For blk-crypto-fallback
+to be usable, it must be enabled in the kernel configuration with
+CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y.)
+
+Currently fscrypt always uses the filesystem block size (which is
+usually 4096 bytes) as the data unit size.  Therefore, it can only use
+inline encryption hardware that supports that data unit size.
+
+Inline encryption doesn't affect the ciphertext or other aspects of
+the on-disk format, so users may freely switch back and forth between
+using "inlinecrypt" and not using "inlinecrypt".
+
+Direct I/O support
+==================
+
+For direct I/O on an encrypted file to work, the following conditions
+must be met (in addition to the conditions for direct I/O on an
+unencrypted file):
+
+* The file must be using inline encryption.  Usually this means that
+  the filesystem must be mounted with ``-o inlinecrypt`` and inline
+  encryption hardware must be present.  However, a software fallback
+  is also available.  For details, see `Inline encryption support`_.
+
+* The I/O request must be fully aligned to the filesystem block size.
+  This means that the file position the I/O is targeting, the lengths
+  of all I/O segments, and the memory addresses of all I/O buffers
+  must be multiples of this value.  Note that the filesystem block
+  size may be greater than the logical block size of the block device.
+
+If either of the above conditions is not met, then direct I/O on the
+encrypted file will fall back to buffered I/O.
+
 Implementation details
 ======================
 
@@ -1184,6 +1261,13 @@
 Data path changes
 -----------------
 
+When inline encryption is used, filesystems just need to associate
+encryption contexts with bios to specify how the block layer or the
+inline encryption hardware will encrypt/decrypt the file contents.
+
+When inline encryption isn't used, filesystems must encrypt/decrypt
+the file contents themselves, as described below:
+
 For the read path (->readpage()) of regular files, filesystems can
 read the ciphertext into the page cache and decrypt it in-place.  The
 page lock must be held until decryption has finished, to prevent the
@@ -1197,18 +1281,6 @@
 buffers regardless of encryption.  Other filesystems, such as ext4 and
 F2FS, have to allocate bounce pages specially for encryption.
 
-Fscrypt is also able to use inline encryption hardware instead of the
-kernel crypto API for en/decryption of file contents.  When possible,
-and if directed to do so (by specifying the 'inlinecrypt' mount option
-for an ext4/F2FS filesystem), it adds encryption contexts to bios and
-uses blk-crypto to perform the en/decryption instead of making use of
-the above read/write path changes.  Of course, even if directed to
-make use of inline encryption, fscrypt will only be able to do so if
-either hardware inline encryption support is available for the
-selected encryption algorithm or CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK
-is selected.  If neither is the case, fscrypt will fall back to using
-the above mentioned read/write path changes for en/decryption.
-
 Filename hashing and encoding
 -----------------------------
 
diff --git a/Documentation/filesystems/incfs.rst b/Documentation/filesystems/incfs.rst
new file mode 100644
index 0000000..f0fb1d0
--- /dev/null
+++ b/Documentation/filesystems/incfs.rst
@@ -0,0 +1,85 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+=================================================
+incfs: A stacked incremental filesystem for Linux
+=================================================
+
+/sys/fs interface
+=================
+
+Please update Documentation/ABI/testing/sysfs-fs-incfs if you update this
+section.
+
+incfs creates the following files in /sys/fs.
+
+Features
+--------
+
+/sys/fs/incremental-fs/features/corefs
+  Reads 'supported'. Always present.
+
+/sys/fs/incremental-fs/features/v2
+  Reads 'supported'. Present if all v2 features of incfs are supported. These
+  are:
+    fs-verity support
+    inotify support
+    ioclts:
+      INCFS_IOC_SET_READ_TIMEOUTS
+      INCFS_IOC_GET_READ_TIMEOUTS
+      INCFS_IOC_GET_BLOCK_COUNT
+      INCFS_IOC_CREATE_MAPPED_FILE
+    .incomplete folder
+    .blocks_written pseudo file
+    report_uid mount option
+
+/sys/fs/incremental-fs/features/zstd
+  Reads 'supported'. Present if zstd compression is supported for data blocks.
+
+/sys/fs/incremental-fs/features/bugfix_throttling
+  Reads 'supported'. Present if the throttling lock bug is fixed
+
+Optional per mount
+------------------
+
+For each incfs mount, the mount option sysfs_name=[name] creates a /sys/fs
+node called:
+
+/sys/fs/incremental-fs/instances/[name]
+
+This will contain the following files:
+
+/sys/fs/incremental-fs/instances/[name]/reads_delayed_min
+  Returns a count of the number of reads that were delayed as a result of the
+  per UID read timeouts min time setting.
+
+/sys/fs/incremental-fs/instances/[name]/reads_delayed_min_us
+  Returns total delay time for all files since first mount as a result of the
+  per UID read timeouts min time setting.
+
+/sys/fs/incremental-fs/instances/[name]/reads_delayed_pending
+  Returns a count of the number of reads that were delayed as a result of
+  waiting for a pending read.
+
+/sys/fs/incremental-fs/instances/[name]/reads_delayed_pending_us
+  Returns total delay time for all files since first mount as a result of
+  waiting for a pending read.
+
+/sys/fs/incremental-fs/instances/[name]/reads_failed_hash_verification
+  Returns number of reads that failed because of hash verification failures.
+
+/sys/fs/incremental-fs/instances/[name]/reads_failed_other
+  Returns number of reads that failed for reasons other than timing out or
+  hash failures.
+
+/sys/fs/incremental-fs/instances/[name]/reads_failed_timed_out
+  Returns number of reads that timed out.
+
+For reads_delayed_*** settings, note that a file can count for both
+reads_delayed_min and reads_delayed_pending if incfs first waits for a pending
+read then has to wait further for the min time. In that case, the time spent
+waiting is split between reads_delayed_pending_us, which is increased by the
+time spent waiting for the pending read, and reads_delayed_min_us, which is
+increased by the remainder of the time spent waiting.
+
+Reads that timed out are not added to the reads_delayed_pending or the
+reads_delayed_pending_us counters.
diff --git a/Documentation/filesystems/overlayfs.rst b/Documentation/filesystems/overlayfs.rst
index 7da6c30..d7cd403 100644
--- a/Documentation/filesystems/overlayfs.rst
+++ b/Documentation/filesystems/overlayfs.rst
@@ -195,7 +195,7 @@
 
 1. return EXDEV error: this error is returned by rename(2) when trying to
    move a file or directory across filesystem boundaries.  Hence
-   applications are usually prepared to hande this error (mv(1) for example
+   applications are usually prepared to handle this error (mv(1) for example
    recursively copies the directory tree).  This is the default behavior.
 
 2. If the "redirect_dir" feature is enabled, then the directory will be
@@ -324,6 +324,30 @@
 The resulting access permissions should be the same.  The difference is in
 the time of copy (on-demand vs. up-front).
 
+### Non overlapping credentials
+
+As noted above, all access to the upper, lower and work directories is the
+recorded mounter's MAC and DAC credentials.  The incoming accesses are
+checked against the caller's credentials.
+
+In the case where caller MAC or DAC credentials do not overlap the mounter, a
+use case available in older versions of the driver, the override_creds mount
+flag can be turned off.  For when the use pattern has caller with legitimate
+credentials where the mounter does not.  For example init may have been the
+mounter, but the caller would have execute or read MAC permissions where
+init would not.  override_creds off means all access, incoming, upper, lower
+or working, will be tested against the caller.
+
+Several unintended side effects will occur though.  The caller without certain
+key capabilities or lower privilege will not always be able to delete files or
+directories, create nodes, or search some restricted directories.  The ability
+to search and read a directory entry is spotty as a result of the cache
+mechanism not re-testing the credentials because of the assumption, a
+privileged caller can fill cache, then a lower privilege can read the directory
+cache.  The uneven security model where cache, upperdir and workdir are opened
+at privilege, but accessed without creating a form of privilege escalation,
+should only be used with strict understanding of the side effects and of the
+security policies.
 
 Multiple lower layers
 ---------------------
diff --git a/Documentation/filesystems/proc.rst b/Documentation/filesystems/proc.rst
index 042c418..acd6f9ce 100644
--- a/Documentation/filesystems/proc.rst
+++ b/Documentation/filesystems/proc.rst
@@ -426,12 +426,14 @@
 The "pathname" shows the name associated file for this mapping.  If the mapping
 is not associated with a file:
 
- =======                    ====================================
+ =============              ====================================
  [heap]                     the heap of the program
  [stack]                    the stack of the main process
  [vdso]                     the "virtual dynamic shared object",
                             the kernel system call handler
- =======                    ====================================
+ [anon:<name>]              an anonymous mapping that has been
+                            named by userspace
+ =============              ====================================
 
  or if empty, the mapping is anonymous.
 
diff --git a/Documentation/kbuild/kbuild.rst b/Documentation/kbuild/kbuild.rst
index 2d1fc03..ef19b9c 100644
--- a/Documentation/kbuild/kbuild.rst
+++ b/Documentation/kbuild/kbuild.rst
@@ -77,6 +77,17 @@
 ----------
 Additional libraries to link against when building host programs.
 
+.. _userkbuildflags:
+
+USERCFLAGS
+----------
+Additional options used for $(CC) when compiling userprogs.
+
+USERLDFLAGS
+-----------
+Additional options used for $(LD) when linking userprogs. userprogs are linked
+with CC, so $(USERLDFLAGS) should include "-Wl," prefix as applicable.
+
 KBUILD_KCONFIG
 --------------
 Set the top-level Kconfig file to the value of this environment
diff --git a/Documentation/kbuild/makefiles.rst b/Documentation/kbuild/makefiles.rst
index db3af0b..64878c2 100644
--- a/Documentation/kbuild/makefiles.rst
+++ b/Documentation/kbuild/makefiles.rst
@@ -982,6 +982,8 @@
 
 	When linking bpfilter_umh, it will be passed the extra option -static.
 
+	From command line, :ref:`USERCFLAGS and USERLDFLAGS <userkbuildflags>` will also be used.
+
 5.4 When userspace programs are actually built
 ----------------------------------------------
 
diff --git a/Documentation/kbuild/modules.rst b/Documentation/kbuild/modules.rst
index a1f3eb7..e9b6fe2 100644
--- a/Documentation/kbuild/modules.rst
+++ b/Documentation/kbuild/modules.rst
@@ -21,6 +21,7 @@
 	   --- 4.1 Kernel Includes
 	   --- 4.2 Single Subdirectory
 	   --- 4.3 Several Subdirectories
+	   --- 4.4 UAPI Headers Installation
 	=== 5. Module Installation
 	   --- 5.1 INSTALL_MOD_PATH
 	   --- 5.2 INSTALL_MOD_DIR
@@ -131,6 +132,10 @@
 		/lib/modules/<kernel_release>/extra/, but a prefix may
 		be added with INSTALL_MOD_PATH (discussed in section 5).
 
+	headers_install
+		Export headers in a format suitable for userspace. The default
+		location is $PWD/usr. INSTALL_HDR_PATH can change this path.
+
 	clean
 		Remove all generated files in the module directory only.
 
@@ -406,6 +411,17 @@
 	pointing to the directory where the currently executing kbuild
 	file is located.
 
+4.4 UAPI Headers Installation
+-----------------------------
+
+	External modules may export headers to userspace in a similar
+	fashion to the in-tree counterpart drivers. kbuild supports
+	running headers_install target in an out-of-tree. The location
+	where kbuild searches for headers is $(M)/include/uapi and
+	$(M)/arch/$(SRCARCH)/include/uapi.
+
+	See also Documentation/kbuild/headers_install.rst.
+
 
 5. Module Installation
 ======================
diff --git a/Documentation/leds/well-known-leds.txt b/Documentation/leds/well-known-leds.txt
index 4a8b9dc4..2160382 100644
--- a/Documentation/leds/well-known-leds.txt
+++ b/Documentation/leds/well-known-leds.txt
@@ -16,6 +16,20 @@
 
 Notice there's a list of functions in include/dt-bindings/leds/common.h .
 
+* Gamepads and joysticks
+
+Game controllers may feature LEDs to indicate a player number. This is commonly
+used on game consoles in which multiple controllers can be connected to a system.
+The "player LEDs" are then programmed with a pattern to indicate a particular
+player. For example, a game controller with 4 LEDs, may be programmed with "x---"
+to indicate player 1, "-x--" to indicate player 2 etcetera where "x" means on.
+Input drivers can utilize the LED class to expose the individual player LEDs
+of a game controller using the function "player".
+Note: tracking and management of Player IDs is the responsibility of user space,
+though drivers may pick a default value.
+
+Good: "input*:*:player-{1,2,3,4,5}
+
 * Keyboards
   
 Good: "input*:*:capslock"
diff --git a/Documentation/networking/ip-sysctl.rst b/Documentation/networking/ip-sysctl.rst
index 7890b39..d06b40b 100644
--- a/Documentation/networking/ip-sysctl.rst
+++ b/Documentation/networking/ip-sysctl.rst
@@ -1135,6 +1135,19 @@
 
 	Default: Empty
 
+ip_local_unbindable_ports - list of comma separated ranges
+	Specify the ports which are not directly bind()able.
+
+	Usually you would use this to block the use of ports which
+	are invalid due to something outside of the control of the
+	kernel.  For example a port stolen by the nic for serial
+	console, remote power management or debugging.
+
+	There's a relatively high chance you will also want to list
+	these ports in 'ip_local_reserved_ports' to prevent autobinding.
+
+	Default: Empty
+
 ip_unprivileged_port_start - INTEGER
 	This is a per-namespace sysctl.  It defines the first
 	unprivileged port in the network namespace.  Privileged ports
diff --git a/Documentation/scheduler/sched-energy.rst b/Documentation/scheduler/sched-energy.rst
index 8fbce5e..83f1179 100644
--- a/Documentation/scheduler/sched-energy.rst
+++ b/Documentation/scheduler/sched-energy.rst
@@ -402,7 +402,7 @@
 because it is the only one providing some degree of consistency between
 frequency requests and energy predictions.
 
-Using EAS with any other governor than schedutil is not supported.
+Using EAS with any other governor than schedutil is not recommended.
 
 
 6.5 Scale-invariant utilization signals
diff --git a/Documentation/sound/alsa-configuration.rst b/Documentation/sound/alsa-configuration.rst
index 5d093fb..21ab5e6 100644
--- a/Documentation/sound/alsa-configuration.rst
+++ b/Documentation/sound/alsa-configuration.rst
@@ -100,6 +100,15 @@
     MIDI device number maps assigned to the 2st OSS device;
     Default: 1
 
+Module snd-soc-core
+-------------------
+
+The soc core module. It is used by all ALSA card drivers.
+It takes the following options which have global effects.
+
+prealloc_buffer_size_kbytes
+    Specify prealloc buffer size in kbytes (default: 512).
+
 Common parameters for top sound card modules
 --------------------------------------------
 
diff --git a/Documentation/trace/histogram.rst b/Documentation/trace/histogram.rst
index a78350a..69354e1 100644
--- a/Documentation/trace/histogram.rst
+++ b/Documentation/trace/histogram.rst
@@ -1763,6 +1763,21 @@
 
   # echo 'hist:key=pid:wakeupswitch_lat=$wakeup_lat+$switchtime_lat ...' >> event3/trigger
 
+Expressions support the use of addition, subtraction, multiplication and
+division operators (+-\*/).
+
+Note if division by zero cannot be detected at parse time (i.e. the
+divisor is not a constant), the result will be -1.
+
+Numeric constants can also be used directly in an expression::
+
+  # echo 'hist:keys=next_pid:timestamp_secs=common_timestamp/1000000 ...' >> event/trigger
+
+or assigned to a variable and referenced in a subsequent expression::
+
+  # echo 'hist:keys=next_pid:us_per_sec=1000000 ...' >> event/trigger
+  # echo 'hist:keys=next_pid:timestamp_secs=common_timestamp/$us_per_sec ...' >> event/trigger
+
 2.2.2 Synthetic Events
 ----------------------
 
diff --git a/Documentation/usb/gadget-testing.rst b/Documentation/usb/gadget-testing.rst
index c181130..58781a2 100644
--- a/Documentation/usb/gadget-testing.rst
+++ b/Documentation/usb/gadget-testing.rst
@@ -784,6 +784,7 @@
 	streaming_maxpacket maximum packet size this endpoint is capable of
 			    sending or receiving when this configuration is
 			    selected
+	function_name       name of the interface
 	=================== ================================================
 
 There are also "control" and "streaming" subdirectories, each of which contain
diff --git a/Documentation/userspace-api/media/v4l/control.rst b/Documentation/userspace-api/media/v4l/control.rst
index f8d0b92..3eec651 100644
--- a/Documentation/userspace-api/media/v4l/control.rst
+++ b/Documentation/userspace-api/media/v4l/control.rst
@@ -242,8 +242,17 @@
     * - ``V4L2_COLORFX_SET_CBCR``
       - The Cb and Cr chroma components are replaced by fixed coefficients
 	determined by ``V4L2_CID_COLORFX_CBCR`` control.
+    * - ``V4L2_COLORFX_SET_RGB``
+      - The RGB components are replaced by the fixed RGB components determined
+        by ``V4L2_CID_COLORFX_RGB`` control.
 
 
+``V4L2_CID_COLORFX_RGB`` ``(integer)``
+    Determines the Red, Green, and Blue coefficients for
+    ``V4L2_COLORFX_SET_RGB`` color effect.
+    Bits [7:0] of the supplied 32 bit value are interpreted as Blue component,
+    bits [15:8] as Green component, bits [23:16] as Red component, and
+    bits [31:24] must be zero.
 
 ``V4L2_CID_COLORFX_CBCR`` ``(integer)``
     Determines the Cb and Cr coefficients for ``V4L2_COLORFX_SET_CBCR``
diff --git a/Documentation/virt/kvm/api.rst b/Documentation/virt/kvm/api.rst
index ec38299..ceef28c 100644
--- a/Documentation/virt/kvm/api.rst
+++ b/Documentation/virt/kvm/api.rst
@@ -5687,6 +5687,11 @@
    to ignore the request, or to gather VM memory core dump and/or
    reset/shutdown of the VM.
 
+Valid flags are:
+
+ - KVM_SYSTEM_EVENT_RESET_FLAG_PSCI_RESET2 (arm64 only) -- the guest issued
+   a SYSTEM_RESET2 call according to v1.1 of the PSCI specification.
+
 ::
 
 		/* KVM_EXIT_IOAPIC_EOI */
@@ -5788,6 +5793,13 @@
 KVM_EXIT_MMIO, but userspace has to emulate any change to the processing state
 if it decides to decode and emulate the instruction.
 
+This feature isn't available to protected VMs, as userspace does not
+have access to the state that is required to perform the emulation.
+Instead, a data abort exception is directly injected in the guest.
+Note that although KVM_CAP_ARM_NISV_TO_USER will be reported if
+queried outside of a protected VM context, the feature will not be
+exposed if queried on a protected VM file descriptor.
+
 ::
 
 		/* KVM_EXIT_X86_RDMSR / KVM_EXIT_X86_WRMSR */
diff --git a/Documentation/virt/kvm/arm/index.rst b/Documentation/virt/kvm/arm/index.rst
index 78a9b67..e77a0ee 100644
--- a/Documentation/virt/kvm/arm/index.rst
+++ b/Documentation/virt/kvm/arm/index.rst
@@ -11,3 +11,4 @@
    psci
    pvtime
    ptp_kvm
+   mmio-guard
diff --git a/Documentation/virt/kvm/arm/mmio-guard.rst b/Documentation/virt/kvm/arm/mmio-guard.rst
new file mode 100644
index 0000000..8b3c852
--- /dev/null
+++ b/Documentation/virt/kvm/arm/mmio-guard.rst
@@ -0,0 +1,74 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+==============
+KVM MMIO guard
+==============
+
+KVM implements device emulation by handling translation faults to any
+IPA range that is not contained in a memory slot. Such a translation
+fault is in most cases passed on to userspace (or in rare cases to the
+host kernel) with the address, size and possibly data of the access
+for emulation.
+
+Should the guest exit with an address that is not one that corresponds
+to an emulatable device, userspace may take measures that are not the
+most graceful as far as the guest is concerned (such as terminating it
+or delivering a fatal exception).
+
+There is also an element of trust: by forwarding the request to
+userspace, the kernel assumes that the guest trusts userspace to do
+the right thing.
+
+The KVM MMIO guard offers a way to mitigate this last point: a guest
+can request that only certain regions of the IPA space are valid as
+MMIO. Only these regions will be handled as an MMIO, and any other
+will result in an exception being delivered to the guest.
+
+This relies on a set of hypercalls defined in the KVM-specific range,
+using the HVC64 calling convention.
+
+* ARM_SMCCC_KVM_FUNC_MMIO_GUARD_INFO
+
+    ==============    ========    ================================
+    Function ID:      (uint32)    0xC6000002
+    Arguments:        none
+    Return Values:    (int64)     NOT_SUPPORTED(-1) on error, or
+                      (uint64)    Protection Granule (PG) size in
+                                  bytes (r0)
+    ==============    ========    ================================
+
+* ARM_SMCCC_KVM_FUNC_MMIO_GUARD_ENROLL
+
+    ==============    ========    ==============================
+    Function ID:      (uint32)    0xC6000003
+    Arguments:        none
+    Return Values:    (int64)     NOT_SUPPORTED(-1) on error, or
+                                  RET_SUCCESS(0) (r0)
+    ==============    ========    ==============================
+
+* ARM_SMCCC_KVM_FUNC_MMIO_GUARD_MAP
+
+    ==============    ========    ====================================
+    Function ID:      (uint32)    0xC6000004
+    Arguments:        (uint64)    The base of the PG-sized IPA range
+                                  that is allowed to be accessed as
+                                  MMIO. Must be aligned to the PG size
+                                  (r1)
+                      (uint64)    Index in the MAIR_EL1 register
+		                  providing the memory attribute that
+				  is used by the guest (r2)
+    Return Values:    (int64)     NOT_SUPPORTED(-1) on error, or
+                                  RET_SUCCESS(0) (r0)
+    ==============    ========    ====================================
+
+* ARM_SMCCC_KVM_FUNC_MMIO_GUARD_UNMAP
+
+    ==============    ========    ======================================
+    Function ID:      (uint32)    0xC6000005
+    Arguments:        (uint64)    PG-sized IPA range aligned to the PG
+                                  size which has been previously mapped.
+                                  Must be aligned to the PG size and
+                                  have been previously mapped (r1)
+    Return Values:    (int64)     NOT_SUPPORTED(-1) on error, or
+                                  RET_SUCCESS(0) (r0)
+    ==============    ========    ======================================
diff --git a/Documentation/vm/index.rst b/Documentation/vm/index.rst
index b51f0d8..1d1e89a 100644
--- a/Documentation/vm/index.rst
+++ b/Documentation/vm/index.rst
@@ -42,6 +42,7 @@
    ksm
    memory-model
    mmu_notifier
+   multigen_lru
    numa
    overcommit-accounting
    page_migration
diff --git a/Documentation/vm/multigen_lru.rst b/Documentation/vm/multigen_lru.rst
new file mode 100644
index 0000000..d7062c6
--- /dev/null
+++ b/Documentation/vm/multigen_lru.rst
@@ -0,0 +1,159 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+=============
+Multi-Gen LRU
+=============
+The multi-gen LRU is an alternative LRU implementation that optimizes
+page reclaim and improves performance under memory pressure. Page
+reclaim decides the kernel's caching policy and ability to overcommit
+memory. It directly impacts the kswapd CPU usage and RAM efficiency.
+
+Design overview
+===============
+Objectives
+----------
+The design objectives are:
+
+* Good representation of access recency
+* Try to profit from spatial locality
+* Fast paths to make obvious choices
+* Simple self-correcting heuristics
+
+The representation of access recency is at the core of all LRU
+implementations. In the multi-gen LRU, each generation represents a
+group of pages with similar access recency. Generations establish a
+(time-based) common frame of reference and therefore help make better
+choices, e.g., between different memcgs on a computer or different
+computers in a data center (for job scheduling).
+
+Exploiting spatial locality improves efficiency when gathering the
+accessed bit. A rmap walk targets a single page and does not try to
+profit from discovering a young PTE. A page table walk can sweep all
+the young PTEs in an address space, but the address space can be too
+sparse to make a profit. The key is to optimize both methods and use
+them in combination.
+
+Fast paths reduce code complexity and runtime overhead. Unmapped pages
+do not require TLB flushes; clean pages do not require writeback.
+These facts are only helpful when other conditions, e.g., access
+recency, are similar. With generations as a common frame of reference,
+additional factors stand out. But obvious choices might not be good
+choices; thus self-correction is necessary.
+
+The benefits of simple self-correcting heuristics are self-evident.
+Again, with generations as a common frame of reference, this becomes
+attainable. Specifically, pages in the same generation can be
+categorized based on additional factors, and a feedback loop can
+statistically compare the refault percentages across those categories
+and infer which of them are better choices.
+
+Assumptions
+-----------
+The protection of hot pages and the selection of cold pages are based
+on page access channels and patterns. There are two access channels:
+
+* Accesses through page tables
+* Accesses through file descriptors
+
+The protection of the former channel is by design stronger because:
+
+1. The uncertainty in determining the access patterns of the former
+   channel is higher due to the approximation of the accessed bit.
+2. The cost of evicting the former channel is higher due to the TLB
+   flushes required and the likelihood of encountering the dirty bit.
+3. The penalty of underprotecting the former channel is higher because
+   applications usually do not prepare themselves for major page
+   faults like they do for blocked I/O. E.g., GUI applications
+   commonly use dedicated I/O threads to avoid blocking rendering
+   threads.
+
+There are also two access patterns:
+
+* Accesses exhibiting temporal locality
+* Accesses not exhibiting temporal locality
+
+For the reasons listed above, the former channel is assumed to follow
+the former pattern unless ``VM_SEQ_READ`` or ``VM_RAND_READ`` is
+present, and the latter channel is assumed to follow the latter
+pattern unless outlying refaults have been observed.
+
+Workflow overview
+=================
+Evictable pages are divided into multiple generations for each
+``lruvec``. The youngest generation number is stored in
+``lrugen->max_seq`` for both anon and file types as they are aged on
+an equal footing. The oldest generation numbers are stored in
+``lrugen->min_seq[]`` separately for anon and file types as clean file
+pages can be evicted regardless of swap constraints. These three
+variables are monotonically increasing.
+
+Generation numbers are truncated into ``order_base_2(MAX_NR_GENS+1)``
+bits in order to fit into the gen counter in ``folio->flags``. Each
+truncated generation number is an index to ``lrugen->lists[]``. The
+sliding window technique is used to track at least ``MIN_NR_GENS`` and
+at most ``MAX_NR_GENS`` generations. The gen counter stores a value
+within ``[1, MAX_NR_GENS]`` while a page is on one of
+``lrugen->lists[]``; otherwise it stores zero.
+
+Each generation is divided into multiple tiers. A page accessed ``N``
+times through file descriptors is in tier ``order_base_2(N)``. Unlike
+generations, tiers do not have dedicated ``lrugen->lists[]``. In
+contrast to moving across generations, which requires the LRU lock,
+moving across tiers only involves atomic operations on
+``folio->flags`` and therefore has a negligible cost. A feedback loop
+modeled after the PID controller monitors refaults over all the tiers
+from anon and file types and decides which tiers from which types to
+evict or protect.
+
+There are two conceptually independent procedures: the aging and the
+eviction. They form a closed-loop system, i.e., the page reclaim.
+
+Aging
+-----
+The aging produces young generations. Given an ``lruvec``, it
+increments ``max_seq`` when ``max_seq-min_seq+1`` approaches
+``MIN_NR_GENS``. The aging promotes hot pages to the youngest
+generation when it finds them accessed through page tables; the
+demotion of cold pages happens consequently when it increments
+``max_seq``. The aging uses page table walks and rmap walks to find
+young PTEs. For the former, it iterates ``lruvec_memcg()->mm_list``
+and calls ``walk_page_range()`` with each ``mm_struct`` on this list
+to scan PTEs, and after each iteration, it increments ``max_seq``. For
+the latter, when the eviction walks the rmap and finds a young PTE,
+the aging scans the adjacent PTEs. For both, on finding a young PTE,
+the aging clears the accessed bit and updates the gen counter of the
+page mapped by this PTE to ``(max_seq%MAX_NR_GENS)+1``.
+
+Eviction
+--------
+The eviction consumes old generations. Given an ``lruvec``, it
+increments ``min_seq`` when ``lrugen->lists[]`` indexed by
+``min_seq%MAX_NR_GENS`` becomes empty. To select a type and a tier to
+evict from, it first compares ``min_seq[]`` to select the older type.
+If both types are equally old, it selects the one whose first tier has
+a lower refault percentage. The first tier contains single-use
+unmapped clean pages, which are the best bet. The eviction sorts a
+page according to its gen counter if the aging has found this page
+accessed through page tables and updated its gen counter. It also
+moves a page to the next generation, i.e., ``min_seq+1``, if this page
+was accessed multiple times through file descriptors and the feedback
+loop has detected outlying refaults from the tier this page is in. To
+this end, the feedback loop uses the first tier as the baseline, for
+the reason stated earlier.
+
+Summary
+-------
+The multi-gen LRU can be disassembled into the following parts:
+
+* Generations
+* Rmap walks
+* Page table walks
+* Bloom filters
+* PID controller
+
+The aging and the eviction form a producer-consumer model;
+specifically, the latter drives the former by the sliding window over
+generations. Within the aging, rmap walks drive page table walks by
+inserting hot densely populated page tables to the Bloom filters.
+Within the eviction, the PID controller uses refaults as the feedback
+to select types to evict and tiers to protect.
diff --git a/Kconfig b/Kconfig
index 745bc77..57a142d 100644
--- a/Kconfig
+++ b/Kconfig
@@ -30,3 +30,6 @@
 source "lib/Kconfig.debug"
 
 source "Documentation/Kconfig"
+
+# ANDROID: Set KCONFIG_EXT_PREFIX to decend into an external project.
+source "$(KCONFIG_EXT_PREFIX)Kconfig.ext"
diff --git a/Kconfig.ext b/Kconfig.ext
new file mode 100644
index 0000000..48d805f
--- /dev/null
+++ b/Kconfig.ext
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: GPL-2.0
+# This file is intentionally empty. It's used as a placeholder for when
+# KCONFIG_EXT_PREFIX isn't defined.
diff --git a/MAINTAINERS b/MAINTAINERS
index 9216b9c..c9f70d3 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9171,6 +9171,13 @@
 F:	drivers/hwmon/ina2xx.c
 F:	include/linux/platform_data/ina2xx.h
 
+INCREMENTAL FILE SYSTEM
+M:	Paul Lawrence <paullawrence@google.com>
+L:	linux-unionfs@vger.kernel.org
+S:	Supported
+F:	fs/incfs/
+F:	tools/testing/selftests/filesystems/incfs/
+
 INDUSTRY PACK SUBSYSTEM (IPACK)
 M:	Samuel Iglesias Gonsalvez <siglesias@igalia.com>
 M:	Jens Taprogge <jens.taprogge@taprogge.org>
@@ -13269,6 +13276,12 @@
 F:	Documentation/scsi/NinjaSCSI.rst
 F:	drivers/scsi/nsp32*
 
+NINTENDO HID DRIVER
+M:	Daniel J. Ogorchock <djogorchock@gmail.com>
+L:	linux-input@vger.kernel.org
+S:	Maintained
+F:	drivers/hid/hid-nintendo*
+
 NIOS2 ARCHITECTURE
 M:	Dinh Nguyen <dinguyen@kernel.org>
 S:	Maintained
diff --git a/Makefile b/Makefile
index 1f537b7..d0d2d98 100644
--- a/Makefile
+++ b/Makefile
@@ -143,6 +143,24 @@
 
 export KBUILD_EXTMOD
 
+# ANDROID: set up mixed-build support. mixed-build allows device kernel modules
+# to be compiled against a GKI kernel. This approach still uses the headers and
+# Kbuild from device kernel, so care must be taken to ensure that those headers match.
+ifdef KBUILD_MIXED_TREE
+# Need vmlinux.symvers for modpost and System.map for depmod, check whether they exist in KBUILD_MIXED_TREE
+required_mixed_files=vmlinux.symvers System.map
+$(if $(filter-out $(words $(required_mixed_files)), \
+		$(words $(wildcard $(add-prefix $(KBUILD_MIXED_TREE)/,$(required_mixed_files))))),,\
+	$(error KBUILD_MIXED_TREE=$(KBUILD_MIXED_TREE) doesn't contain $(required_mixed_files)))
+endif
+
+mixed-build-prefix = $(if $(KBUILD_MIXED_TREE),$(KBUILD_MIXED_TREE)/)
+export KBUILD_MIXED_TREE
+# This is a hack for kleaf to set mixed-build-prefix within the execution of a make rule, e.g.
+# within __modinst_pre.
+# TODO(b/205893923): Revert this hack once it is properly handled.
+export mixed-build-prefix
+
 # Kbuild will save output files in the current working directory.
 # This does not need to match to the root of the kernel source tree.
 #
@@ -439,11 +457,12 @@
 endif
 HOSTPKG_CONFIG	= pkg-config
 
-export KBUILD_USERCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes \
-			      -O2 -fomit-frame-pointer -std=gnu89
-export KBUILD_USERLDFLAGS :=
+KBUILD_USERHOSTCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes \
+			 -O2 -fomit-frame-pointer -std=gnu89
+KBUILD_USERCFLAGS  := $(KBUILD_USERHOSTCFLAGS) $(USERCFLAGS)
+KBUILD_USERLDFLAGS := $(USERLDFLAGS)
 
-KBUILD_HOSTCFLAGS   := $(KBUILD_USERCFLAGS) $(HOST_LFS_CFLAGS) $(HOSTCFLAGS)
+KBUILD_HOSTCFLAGS   := $(KBUILD_USERHOSTCFLAGS) $(HOST_LFS_CFLAGS) $(HOSTCFLAGS)
 KBUILD_HOSTCXXFLAGS := -Wall -O2 $(HOST_LFS_CFLAGS) $(HOSTCXXFLAGS)
 KBUILD_HOSTLDFLAGS  := $(HOST_LFS_LDFLAGS) $(HOSTLDFLAGS)
 KBUILD_HOSTLDLIBS   := $(HOST_LFS_LIBS) $(HOSTLDLIBS)
@@ -484,7 +503,7 @@
 KBZIP2		= bzip2
 KLZOP		= lzop
 LZMA		= lzma
-LZ4		= lz4c
+LZ4		= lz4
 XZ		= xz
 ZSTD		= zstd
 
@@ -538,6 +557,7 @@
 export PERL PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
 export KGZIP KBZIP2 KLZOP LZMA LZ4 XZ ZSTD
 export KBUILD_HOSTCXXFLAGS KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS LDFLAGS_MODULE
+export KBUILD_USERCFLAGS KBUILD_USERLDFLAGS
 
 export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS KBUILD_LDFLAGS
 export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
@@ -679,11 +699,13 @@
 libs-y		:= lib/
 endif # KBUILD_EXTMOD
 
+ifndef KBUILD_MIXED_TREE
 # The all: target is the default when no target is given on the
 # command line.
 # This allow a user to issue only 'make' to build a kernel including modules
 # Defaults to vmlinux, but the arch makefile usually adds further targets
 all: vmlinux
+endif
 
 CFLAGS_GCOV	:= -fprofile-arcs -ftest-coverage
 ifdef CONFIG_CC_IS_GCC
@@ -963,7 +985,13 @@
 else
 CC_FLAGS_LTO	:= -flto
 endif
+
+ifeq ($(SRCARCH),x86)
+# Workaround for compiler / linker bug
 CC_FLAGS_LTO	+= -fvisibility=hidden
+else
+CC_FLAGS_LTO	+= -fvisibility=default
+endif
 
 # Limit inlining across translation units to reduce binary size
 KBUILD_LDFLAGS += -mllvm -import-instr-limit=5
@@ -1158,6 +1186,40 @@
 export MODORDER := $(extmod_prefix)modules.order
 export MODULES_NSDEPS := $(extmod_prefix)modules.nsdeps
 
+# ---------------------------------------------------------------------------
+# Kernel headers
+
+PHONY += headers
+
+#Default location for installed headers
+ifeq ($(KBUILD_EXTMOD),)
+PHONY += archheaders archscripts
+hdr-inst := -f $(srctree)/scripts/Makefile.headersinst obj
+headers: $(version_h) scripts_unifdef uapi-asm-generic archheaders archscripts
+else
+hdr-prefix = $(KBUILD_EXTMOD)/
+hdr-inst := -f $(srctree)/scripts/Makefile.headersinst dst=$(KBUILD_EXTMOD)/usr/include objtree=$(objtree)/$(KBUILD_EXTMOD) obj
+endif
+
+export INSTALL_HDR_PATH = $(objtree)/$(hdr-prefix)usr
+
+quiet_cmd_headers_install = INSTALL $(INSTALL_HDR_PATH)/include
+      cmd_headers_install = \
+	mkdir -p $(INSTALL_HDR_PATH); \
+	rsync -mrl --include='*/' --include='*\.h' --exclude='*' \
+	$(hdr-prefix)usr/include $(INSTALL_HDR_PATH);
+
+PHONY += headers_install
+headers_install: headers
+	$(call cmd,headers_install)
+
+headers:
+ifeq ($(KBUILD_EXTMOD),)
+	$(if $(filter um, $(SRCARCH)), $(error Headers not exportable for UML))
+endif
+	$(Q)$(MAKE) $(hdr-inst)=$(hdr-prefix)include/uapi
+	$(Q)$(MAKE) $(hdr-inst)=$(hdr-prefix)arch/$(SRCARCH)/include/uapi
+
 ifeq ($(KBUILD_EXTMOD),)
 core-y			+= kernel/ certs/ mm/ fs/ ipc/ security/ crypto/
 core-$(CONFIG_BLOCK)	+= block/
@@ -1223,8 +1285,10 @@
 	$(CONFIG_SHELL) $< "$(LD)" "$(KBUILD_LDFLAGS)" "$(LDFLAGS_vmlinux)";    \
 	$(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true)
 
+ifndef KBUILD_MIXED_TREE
 vmlinux: scripts/link-vmlinux.sh autoksyms_recursive $(vmlinux-deps) FORCE
 	+$(call if_changed_dep,link-vmlinux)
+endif
 
 targets := vmlinux
 
@@ -1233,7 +1297,8 @@
 $(sort $(vmlinux-deps) $(subdir-modorder)): descend ;
 
 filechk_kernel.release = \
-	echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))"
+	echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion \
+		--save-tag $(srctree) $(BRANCH) $(KMI_GENERATION))"
 
 # Store (new) KERNELRELEASE string in include/config/kernel.release
 include/config/kernel.release: FORCE
@@ -1323,32 +1388,6 @@
 	$(Q)find $(srctree)/include/ -name '*.h' | xargs --max-args 1 \
 	$(srctree)/scripts/headerdep.pl -I$(srctree)/include
 
-# ---------------------------------------------------------------------------
-# Kernel headers
-
-#Default location for installed headers
-export INSTALL_HDR_PATH = $(objtree)/usr
-
-quiet_cmd_headers_install = INSTALL $(INSTALL_HDR_PATH)/include
-      cmd_headers_install = \
-	mkdir -p $(INSTALL_HDR_PATH); \
-	rsync -mrl --include='*/' --include='*\.h' --exclude='*' \
-	usr/include $(INSTALL_HDR_PATH)
-
-PHONY += headers_install
-headers_install: headers
-	$(call cmd,headers_install)
-
-PHONY += archheaders archscripts
-
-hdr-inst := -f $(srctree)/scripts/Makefile.headersinst obj
-
-PHONY += headers
-headers: $(version_h) scripts_unifdef uapi-asm-generic archheaders archscripts
-	$(if $(filter um, $(SRCARCH)), $(error Headers not exportable for UML))
-	$(Q)$(MAKE) $(hdr-inst)=include/uapi
-	$(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi
-
 # Deprecated. It is no-op now.
 PHONY += headers_check
 headers_check:
@@ -1434,7 +1473,9 @@
 # Devicetree files
 
 ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/boot/dts/),)
-dtstree := arch/$(SRCARCH)/boot/dts
+# ANDROID: allow this to be overridden by the build environment. This allows
+# one to compile a device tree that is located out-of-tree.
+dtstree ?= arch/$(SRCARCH)/boot/dts
 endif
 
 ifneq ($(dtstree),)
@@ -1500,7 +1541,9 @@
 # using awk while concatenating to the final file.
 
 PHONY += modules
-modules: $(if $(KBUILD_BUILTIN),vmlinux) modules_check modules_prepare
+# if KBUILD_BUILTIN && !KBUILD_MIXED_TREE, depend on vmlinux
+modules: $(if $(KBUILD_BUILTIN), $(if $(KBUILD_MIXED_TREE),,vmlinux))
+modules: modules_check modules_prepare
 
 cmd_modules_order = $(AWK) '!x[$$0]++' $(real-prereqs) > $@
 
@@ -1545,8 +1588,8 @@
 		ln -s $(CURDIR) $(MODLIB)/build ; \
 	fi
 	@sed 's:^:kernel/:' modules.order > $(MODLIB)/modules.order
-	@cp -f modules.builtin $(MODLIB)/
-	@cp -f $(objtree)/modules.builtin.modinfo $(MODLIB)/
+	@cp -f $(mixed-build-prefix)modules.builtin $(MODLIB)/
+	@cp -f $(or $(mixed-build-prefix),$(objtree)/)modules.builtin.modinfo $(MODLIB)/
 
 endif # CONFIG_MODULES
 
@@ -1807,6 +1850,8 @@
 	@echo  ''
 	@echo  '  modules         - default target, build the module(s)'
 	@echo  '  modules_install - install the module'
+	@echo  '  headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH'
+	@echo  '                    (default: $(abspath $(INSTALL_HDR_PATH)))'
 	@echo  '  clean           - remove generated files in module directory only'
 	@echo  ''
 
@@ -1831,7 +1876,7 @@
 
 quiet_cmd_depmod = DEPMOD  $(MODLIB)
       cmd_depmod = $(CONFIG_SHELL) $(srctree)/scripts/depmod.sh $(DEPMOD) \
-                   $(KERNELRELEASE)
+                   $(KERNELRELEASE) $(mixed-build-prefix)
 
 modules_install:
 	$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modinst
@@ -1870,7 +1915,8 @@
 
 # .ko is special because modpost is needed
 single-ko := $(sort $(filter %.ko, $(MAKECMDGOALS)))
-single-no-ko := $(sort $(patsubst %.ko,%.mod, $(MAKECMDGOALS)))
+single-no-ko := $(filter-out $(single-ko), $(MAKECMDGOALS)) \
+		$(foreach x, o mod, $(patsubst %.ko, %.$x, $(single-ko)))
 
 $(single-ko): single_modpost
 	@:
@@ -1904,7 +1950,7 @@
 $(build-dirs): prepare
 	$(Q)$(MAKE) $(build)=$@ \
 	single-build=$(if $(filter-out $@/, $(filter $@/%, $(KBUILD_SINGLE_TARGETS))),1) \
-	need-builtin=1 need-modorder=1
+	$(if $(KBUILD_MIXED_TREE),,need-builtin=1) need-modorder=1
 
 clean-dirs := $(addprefix _clean_, $(clean-dirs))
 PHONY += $(clean-dirs) clean
@@ -1913,12 +1959,14 @@
 
 clean: $(clean-dirs)
 	$(call cmd,rmfiles)
-	@find $(if $(KBUILD_EXTMOD), $(KBUILD_EXTMOD), .) $(RCS_FIND_IGNORE) \
+	@find $(if $(KBUILD_EXTMOD), $(KBUILD_EXTMOD), .) \
+		$(if $(filter-out arch/$(SRCARCH)/boot/dts, $(dtstree)), $(dtstree)) \
+		$(RCS_FIND_IGNORE) \
 		\( -name '*.[aios]' -o -name '*.ko' -o -name '.*.cmd' \
 		-o -name '*.ko.*' \
 		-o -name '*.dtb' -o -name '*.dtbo' -o -name '*.dtb.S' -o -name '*.dt.yaml' \
 		-o -name '*.dwo' -o -name '*.lst' \
-		-o -name '*.su' -o -name '*.mod' \
+		-o -name '*.su' -o -name '*.mod' -o -name '*.usyms' \
 		-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
 		-o -name '*.lex.c' -o -name '*.tab.[ch]' \
 		-o -name '*.asn1.[ch]' \
@@ -1952,7 +2000,7 @@
       cmd_gen_compile_commands = $(PYTHON3) $< -a $(AR) -o $@ $(filter-out $<, $(real-prereqs))
 
 $(extmod_prefix)compile_commands.json: scripts/clang-tools/gen_compile_commands.py \
-	$(if $(KBUILD_EXTMOD),,$(KBUILD_VMLINUX_OBJS) $(KBUILD_VMLINUX_LIBS)) \
+	$(if $(KBUILD_EXTMOD)$(KBUILD_MIXED_TREE),,$(KBUILD_VMLINUX_OBJS) $(KBUILD_VMLINUX_LIBS)) \
 	$(if $(CONFIG_MODULES), $(MODORDER)) FORCE
 	$(call if_changed,gen_compile_commands)
 
@@ -2009,7 +2057,8 @@
 	$(PERL) $(srctree)/scripts/checkstack.pl $(CHECKSTACK_ARCH)
 
 kernelrelease:
-	@echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))"
+	@echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion \
+		$(srctree) $(BRANCH) $(KMI_GENERATION))"
 
 kernelversion:
 	@echo $(KERNELVERSION)
diff --git a/OWNERS b/OWNERS
new file mode 100644
index 0000000..414594e
--- /dev/null
+++ b/OWNERS
@@ -0,0 +1,12 @@
+set noparent
+
+# GKI Dr. No Enforcement is active on this branch. Approval of one of the Dr.
+# No reviewers is required following a regular CodeReview+2 vote of a code
+# reviewer.
+#
+# See the GKI release documentation (go/gki-dr-no) for further details.
+#
+# The expanded list of reviewers can be found at:
+# https://android.googlesource.com/kernel/common/+/android-mainline/OWNERS_DrNo
+
+include kernel/common:android-mainline:/OWNERS_DrNo
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..4a1deb3
--- /dev/null
+++ b/README.md
@@ -0,0 +1,150 @@
+# How do I submit patches to Android Common Kernels
+
+1. BEST: Make all of your changes to upstream Linux. If appropriate, backport to the stable releases.
+   These patches will be merged automatically in the corresponding common kernels. If the patch is already
+   in upstream Linux, post a backport of the patch that conforms to the patch requirements below.
+   - Do not send patches upstream that contain only symbol exports. To be considered for upstream Linux,
+additions of `EXPORT_SYMBOL_GPL()` require an in-tree modular driver that uses the symbol -- so include
+the new driver or changes to an existing driver in the same patchset as the export.
+   - When sending patches upstream, the commit message must contain a clear case for why the patch
+is needed and beneficial to the community. Enabling out-of-tree drivers or functionality is not
+not a persuasive case.
+
+2. LESS GOOD: Develop your patches out-of-tree (from an upstream Linux point-of-view). Unless these are
+   fixing an Android-specific bug, these are very unlikely to be accepted unless they have been
+   coordinated with kernel-team@android.com. If you want to proceed, post a patch that conforms to the
+   patch requirements below.
+
+# Common Kernel patch requirements
+
+- All patches must conform to the Linux kernel coding standards and pass `scripts/checkpatch.pl`
+- Patches shall not break gki_defconfig or allmodconfig builds for arm, arm64, x86, x86_64 architectures
+(see  https://source.android.com/setup/build/building-kernels)
+- If the patch is not merged from an upstream branch, the subject must be tagged with the type of patch:
+`UPSTREAM:`, `BACKPORT:`, `FROMGIT:`, `FROMLIST:`, or `ANDROID:`.
+- All patches must have a `Change-Id:` tag (see https://gerrit-review.googlesource.com/Documentation/user-changeid.html)
+- If an Android bug has been assigned, there must be a `Bug:` tag.
+- All patches must have a `Signed-off-by:` tag by the author and the submitter
+
+Additional requirements are listed below based on patch type
+
+## Requirements for backports from mainline Linux: `UPSTREAM:`, `BACKPORT:`
+
+- If the patch is a cherry-pick from Linux mainline with no changes at all
+    - tag the patch subject with `UPSTREAM:`.
+    - add upstream commit information with a `(cherry picked from commit ...)` line
+    - Example:
+        - if the upstream commit message is
+```
+        important patch from upstream
+
+        This is the detailed description of the important patch
+
+        Signed-off-by: Fred Jones <fred.jones@foo.org>
+```
+>- then Joe Smith would upload the patch for the common kernel as
+```
+        UPSTREAM: important patch from upstream
+
+        This is the detailed description of the important patch
+
+        Signed-off-by: Fred Jones <fred.jones@foo.org>
+
+        Bug: 135791357
+        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
+        (cherry picked from commit c31e73121f4c1ec41143423ac6ce3ce6dafdcec1)
+        Signed-off-by: Joe Smith <joe.smith@foo.org>
+```
+
+- If the patch requires any changes from the upstream version, tag the patch with `BACKPORT:`
+instead of `UPSTREAM:`.
+    - use the same tags as `UPSTREAM:`
+    - add comments about the changes under the `(cherry picked from commit ...)` line
+    - Example:
+```
+        BACKPORT: important patch from upstream
+
+        This is the detailed description of the important patch
+
+        Signed-off-by: Fred Jones <fred.jones@foo.org>
+
+        Bug: 135791357
+        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
+        (cherry picked from commit c31e73121f4c1ec41143423ac6ce3ce6dafdcec1)
+        [joe: Resolved minor conflict in drivers/foo/bar.c ]
+        Signed-off-by: Joe Smith <joe.smith@foo.org>
+```
+
+## Requirements for other backports: `FROMGIT:`, `FROMLIST:`,
+
+- If the patch has been merged into an upstream maintainer tree, but has not yet
+been merged into Linux mainline
+    - tag the patch subject with `FROMGIT:`
+    - add info on where the patch came from as `(cherry picked from commit <sha1> <repo> <branch>)`. This
+must be a stable maintainer branch (not rebased, so don't use `linux-next` for example).
+    - if changes were required, use `BACKPORT: FROMGIT:`
+    - Example:
+        - if the commit message in the maintainer tree is
+```
+        important patch from upstream
+
+        This is the detailed description of the important patch
+
+        Signed-off-by: Fred Jones <fred.jones@foo.org>
+```
+>- then Joe Smith would upload the patch for the common kernel as
+```
+        FROMGIT: important patch from upstream
+
+        This is the detailed description of the important patch
+
+        Signed-off-by: Fred Jones <fred.jones@foo.org>
+
+        Bug: 135791357
+        (cherry picked from commit 878a2fd9de10b03d11d2f622250285c7e63deace
+         https://git.kernel.org/pub/scm/linux/kernel/git/foo/bar.git test-branch)
+        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
+        Signed-off-by: Joe Smith <joe.smith@foo.org>
+```
+
+
+- If the patch has been submitted to LKML, but not accepted into any maintainer tree
+    - tag the patch subject with `FROMLIST:`
+    - add a `Link:` tag with a link to the submittal on lore.kernel.org
+    - add a `Bug:` tag with the Android bug (required for patches not accepted into
+a maintainer tree)
+    - if changes were required, use `BACKPORT: FROMLIST:`
+    - Example:
+```
+        FROMLIST: important patch from upstream
+
+        This is the detailed description of the important patch
+
+        Signed-off-by: Fred Jones <fred.jones@foo.org>
+
+        Bug: 135791357
+        Link: https://lore.kernel.org/lkml/20190619171517.GA17557@someone.com/
+        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
+        Signed-off-by: Joe Smith <joe.smith@foo.org>
+```
+
+## Requirements for Android-specific patches: `ANDROID:`
+
+- If the patch is fixing a bug to Android-specific code
+    - tag the patch subject with `ANDROID:`
+    - add a `Fixes:` tag that cites the patch with the bug
+    - Example:
+```
+        ANDROID: fix android-specific bug in foobar.c
+
+        This is the detailed description of the important fix
+
+        Fixes: 1234abcd2468 ("foobar: add cool feature")
+        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
+        Signed-off-by: Joe Smith <joe.smith@foo.org>
+```
+
+- If the patch is a new feature
+    - tag the patch subject with `ANDROID:`
+    - add a `Bug:` tag with the Android bug (required for android-specific features)
+
diff --git a/android/abi_gki_aarch64 b/android/abi_gki_aarch64
new file mode 100644
index 0000000..90bf4ed
--- /dev/null
+++ b/android/abi_gki_aarch64
@@ -0,0 +1,144 @@
+[abi_symbol_list]
+# commonly used symbols
+  arm64_const_caps_ready
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  cpu_hwcap_keys
+  kasan_flag_enabled
+  kfree
+  kmalloc_caches
+  kmem_cache_alloc_trace
+  memcpy
+  module_layout
+  __per_cpu_offset
+  preempt_schedule
+  _printk
+  __put_task_struct
+  __stack_chk_fail
+  __ubsan_handle_cfi_check_fail_abort
+
+# required by zram.ko
+  __alloc_percpu
+  android_kmalloc_64_create
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_start_io_acct
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  __class_register
+  class_unregister
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  cpumask_next
+  __cpu_possible_mask
+  crypto_alloc_base
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_destroy_tfm
+  crypto_has_alg
+  del_gendisk
+  device_add_disk
+  disk_end_io_acct
+  disk_start_io_acct
+  down_read
+  down_write
+  flush_dcache_page
+  free_pages
+  free_percpu
+  fsync_bdev
+  __get_free_pages
+  idr_alloc
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_remove
+  __init_rwsem
+  kstrtoint
+  kstrtou16
+  kstrtoull
+  memparse
+  memset64
+  mutex_is_locked
+  mutex_lock
+  mutex_unlock
+  nr_cpu_ids
+  __num_online_cpus
+  page_endio
+  param_ops_uint
+  __register_blkdev
+  scnprintf
+  set_capacity
+  set_capacity_and_notify
+  snprintf
+  strcmp
+  strcpy
+  strlcpy
+  strlen
+  sysfs_streq
+  unregister_blkdev
+  up_read
+  up_write
+  vfree
+  vzalloc
+  zs_compact
+  zs_create_pool
+  zs_destroy_pool
+  zs_free
+  zs_get_total_pages
+  zs_huge_class_size
+  zs_malloc
+  zs_map_object
+  zs_pool_stats
+  zs_unmap_object
+
+# required by zsmalloc.ko
+  alloc_anon_inode
+  __alloc_pages
+  __ClearPageMovable
+  contig_page_data
+  dec_zone_page_state
+  finish_wait
+  flush_work
+  __free_pages
+  inc_zone_page_state
+  init_pseudo
+  init_wait_entry
+  __init_waitqueue_head
+  iput
+  kern_mount
+  kern_unmount
+  kill_anon_super
+  kmem_cache_alloc
+  kmem_cache_create
+  kmem_cache_destroy
+  kmem_cache_free
+  kstrdup
+  __list_add_valid
+  __list_del_entry_valid
+  memstart_addr
+  page_mapping
+  prepare_to_wait_event
+  __put_page
+  queue_work_on
+  _raw_read_lock
+  _raw_read_unlock
+  _raw_spin_lock
+  _raw_spin_unlock
+  _raw_write_lock
+  _raw_write_unlock
+  register_shrinker
+  schedule
+  __SetPageMovable
+  system_wq
+  unlock_page
+  unregister_shrinker
+  wait_on_page_bit
+  __wake_up
diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml
new file mode 100644
index 0000000..28d8a8e
--- /dev/null
+++ b/android/abi_gki_aarch64.xml
@@ -0,0 +1,165212 @@
+<abi-corpus-group version='2.1' architecture='elf-arm-aarch64'>
+  <abi-corpus version='2.1' path='vmlinux' architecture='elf-arm-aarch64'>
+    <elf-function-symbols>
+      <elf-symbol name='I_BDEV' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8163ad5'/>
+      <elf-symbol name='LZ4_compress_HC' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xddf86133'/>
+      <elf-symbol name='LZ4_compress_default' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f4d78c5'/>
+      <elf-symbol name='LZ4_decompress_safe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7c1107a'/>
+      <elf-symbol name='LZ4_decompress_safe_partial' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15bed7a5'/>
+      <elf-symbol name='PDE_DATA' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5927f85f'/>
+      <elf-symbol name='ZSTD_CStreamWorkspaceBound' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbaffff96'/>
+      <elf-symbol name='ZSTD_DStreamWorkspaceBound' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3737d9a9'/>
+      <elf-symbol name='ZSTD_compressStream' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb0aed408'/>
+      <elf-symbol name='ZSTD_decompressStream' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x878469bd'/>
+      <elf-symbol name='ZSTD_endStream' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49ed86a0'/>
+      <elf-symbol name='ZSTD_getParams' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe41476d9'/>
+      <elf-symbol name='ZSTD_initCStream' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x30af45a1'/>
+      <elf-symbol name='ZSTD_initDStream' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x37746fde'/>
+      <elf-symbol name='ZSTD_maxCLevel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa4c8127c'/>
+      <elf-symbol name='__ClearPageMovable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf30e6b61'/>
+      <elf-symbol name='__SetPageMovable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b0c217a'/>
+      <elf-symbol name='___pskb_trim' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ed4446a'/>
+      <elf-symbol name='___ratelimit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1d24c881'/>
+      <elf-symbol name='___update_load_avg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc8b1b72f'/>
+      <elf-symbol name='___update_load_sum' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd667f721'/>
+      <elf-symbol name='__alloc_disk_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d6ef1b5'/>
+      <elf-symbol name='__alloc_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x58b04525'/>
+      <elf-symbol name='__alloc_percpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x949f7342'/>
+      <elf-symbol name='__alloc_percpu_gfp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf793668'/>
+      <elf-symbol name='__alloc_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9b1f28d'/>
+      <elf-symbol name='__arch_clear_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6fff261f'/>
+      <elf-symbol name='__arch_copy_from_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x12a4e128'/>
+      <elf-symbol name='__arch_copy_to_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6cbbfc54'/>
+      <elf-symbol name='__arm_smccc_hvc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x50f85302'/>
+      <elf-symbol name='__arm_smccc_smc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf93aae46'/>
+      <elf-symbol name='__arm_smccc_sve_check' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3d93c7c2'/>
+      <elf-symbol name='__balance_callbacks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1cbc558d'/>
+      <elf-symbol name='__bforget' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5126d49'/>
+      <elf-symbol name='__bio_crypt_clone' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15ea6ecc'/>
+      <elf-symbol name='__bitmap_and' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x39b52d19'/>
+      <elf-symbol name='__bitmap_andnot' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xadfdfcef'/>
+      <elf-symbol name='__bitmap_clear' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x922f45a6'/>
+      <elf-symbol name='__bitmap_complement' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c173634'/>
+      <elf-symbol name='__bitmap_equal' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3e6402e'/>
+      <elf-symbol name='__bitmap_or' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa084749a'/>
+      <elf-symbol name='__bitmap_replace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x18345b8e'/>
+      <elf-symbol name='__bitmap_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x615911d7'/>
+      <elf-symbol name='__bitmap_shift_left' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b644591'/>
+      <elf-symbol name='__bitmap_shift_right' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaad0ae78'/>
+      <elf-symbol name='__bitmap_subset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd61eeee'/>
+      <elf-symbol name='__bitmap_weight' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63c4d61f'/>
+      <elf-symbol name='__bitmap_xor' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6fc8791'/>
+      <elf-symbol name='__blk_alloc_disk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d65eb42'/>
+      <elf-symbol name='__blk_mq_alloc_disk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7615fff'/>
+      <elf-symbol name='__blk_mq_debugfs_rq_show' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x767fd264'/>
+      <elf-symbol name='__blk_mq_end_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeab34e0c'/>
+      <elf-symbol name='__blk_rq_map_sg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4930ff59'/>
+      <elf-symbol name='__blkdev_issue_discard' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff3fe611'/>
+      <elf-symbol name='__blkg_prfill_rwstat' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3452868'/>
+      <elf-symbol name='__blkg_prfill_u64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a3cd729'/>
+      <elf-symbol name='__blockdev_direct_IO' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ef2c900'/>
+      <elf-symbol name='__bread_gfp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8cb12e3b'/>
+      <elf-symbol name='__breadahead' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae5ef6cb'/>
+      <elf-symbol name='__brelse' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2004a910'/>
+      <elf-symbol name='__cancel_dirty_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf817fb7'/>
+      <elf-symbol name='__cfi_slowpath_diag' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4411a445'/>
+      <elf-symbol name='__check_object_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88db9f48'/>
+      <elf-symbol name='__class_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c4cffba'/>
+      <elf-symbol name='__class_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e212945'/>
+      <elf-symbol name='__cleancache_get_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2d3d03'/>
+      <elf-symbol name='__cleancache_invalidate_inode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9d6310b'/>
+      <elf-symbol name='__clk_determine_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7623e624'/>
+      <elf-symbol name='__clk_get_hw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b08f0ee'/>
+      <elf-symbol name='__clk_get_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc569d8ce'/>
+      <elf-symbol name='__clk_hw_register_divider' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4629c251'/>
+      <elf-symbol name='__clk_hw_register_fixed_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9473e02f'/>
+      <elf-symbol name='__clk_hw_register_gate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34ce82ab'/>
+      <elf-symbol name='__clk_hw_register_mux' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b53169b'/>
+      <elf-symbol name='__clk_is_enabled' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc6a4a872'/>
+      <elf-symbol name='__clk_mux_determine_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3b16f89'/>
+      <elf-symbol name='__clk_mux_determine_rate_closest' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x58d8951f'/>
+      <elf-symbol name='__clocksource_register_scale' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ac3c3aa'/>
+      <elf-symbol name='__const_udelay' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeae3dfd6'/>
+      <elf-symbol name='__cpufreq_driver_target' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe43e2cff'/>
+      <elf-symbol name='__cpuhp_remove_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa071bc3'/>
+      <elf-symbol name='__cpuhp_setup_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80446745'/>
+      <elf-symbol name='__cpuhp_setup_state_cpuslocked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7dd98ec4'/>
+      <elf-symbol name='__cpuhp_state_add_instance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd298f619'/>
+      <elf-symbol name='__cpuhp_state_remove_instance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc60c809e'/>
+      <elf-symbol name='__crypto_memneq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5a44f8cb'/>
+      <elf-symbol name='__crypto_xor' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3f12f69'/>
+      <elf-symbol name='__dev_change_net_namespace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf5f3343'/>
+      <elf-symbol name='__dev_get_by_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8543eb6'/>
+      <elf-symbol name='__dev_get_by_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32fef7e9'/>
+      <elf-symbol name='__dev_kfree_skb_any' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2a3dc045'/>
+      <elf-symbol name='__dev_kfree_skb_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf148b5a'/>
+      <elf-symbol name='__device_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcbf9a756'/>
+      <elf-symbol name='__devm_alloc_percpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbb10d145'/>
+      <elf-symbol name='__devm_clk_hw_register_divider' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf93f2336'/>
+      <elf-symbol name='__devm_clk_hw_register_mux' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb26cf7c1'/>
+      <elf-symbol name='__devm_drm_dev_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67c889bc'/>
+      <elf-symbol name='__devm_iio_device_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20055eca'/>
+      <elf-symbol name='__devm_irq_alloc_descs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x95f3ee4b'/>
+      <elf-symbol name='__devm_mdiobus_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ca690ac'/>
+      <elf-symbol name='__devm_of_phy_provider_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd251af97'/>
+      <elf-symbol name='__devm_regmap_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3289931e'/>
+      <elf-symbol name='__devm_regmap_init_i2c' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b7ed4e8'/>
+      <elf-symbol name='__devm_regmap_init_mmio_clk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbb01e074'/>
+      <elf-symbol name='__devm_regmap_init_spi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdaf48622'/>
+      <elf-symbol name='__devm_release_region' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x941f3b66'/>
+      <elf-symbol name='__devm_request_region' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdd7669ba'/>
+      <elf-symbol name='__devm_reset_control_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8cf1518f'/>
+      <elf-symbol name='__devm_rtc_register_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x14b3f37c'/>
+      <elf-symbol name='__devm_spi_alloc_controller' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe2ac0f8e'/>
+      <elf-symbol name='__devres_alloc_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8bf931e9'/>
+      <elf-symbol name='__dma_request_channel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x37f3d231'/>
+      <elf-symbol name='__do_once_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33a3c387'/>
+      <elf-symbol name='__do_once_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x18e60984'/>
+      <elf-symbol name='__dquot_alloc_space' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7dee481f'/>
+      <elf-symbol name='__dquot_free_space' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8a60822'/>
+      <elf-symbol name='__dquot_transfer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa4003d77'/>
+      <elf-symbol name='__drm_atomic_helper_connector_destroy_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcb3a10e4'/>
+      <elf-symbol name='__drm_atomic_helper_connector_duplicate_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6f5bc337'/>
+      <elf-symbol name='__drm_atomic_helper_connector_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x456d9e1a'/>
+      <elf-symbol name='__drm_atomic_helper_crtc_destroy_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51733d2a'/>
+      <elf-symbol name='__drm_atomic_helper_crtc_duplicate_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad7cc2a'/>
+      <elf-symbol name='__drm_atomic_helper_crtc_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc5668801'/>
+      <elf-symbol name='__drm_atomic_helper_plane_destroy_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe95a9135'/>
+      <elf-symbol name='__drm_atomic_helper_plane_duplicate_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8eaf34c'/>
+      <elf-symbol name='__drm_atomic_helper_plane_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf13dd00b'/>
+      <elf-symbol name='__drm_atomic_helper_private_obj_duplicate_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x71d1e00b'/>
+      <elf-symbol name='__drm_atomic_state_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9cad492'/>
+      <elf-symbol name='__drm_crtc_commit_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae277372'/>
+      <elf-symbol name='__drm_dbg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xec12af74'/>
+      <elf-symbol name='__drm_err' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb11ac7a7'/>
+      <elf-symbol name='__drm_gem_destroy_shadow_plane_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7313df0d'/>
+      <elf-symbol name='__drm_gem_duplicate_shadow_plane_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5526afef'/>
+      <elf-symbol name='__drm_gem_reset_shadow_plane' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1505b14d'/>
+      <elf-symbol name='__drm_printfn_coredump' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea00fe81'/>
+      <elf-symbol name='__drm_printfn_debug' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf824c7db'/>
+      <elf-symbol name='__drm_printfn_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe317082a'/>
+      <elf-symbol name='__drm_printfn_seq_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfeb953b1'/>
+      <elf-symbol name='__drm_puts_coredump' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b0e5e9c'/>
+      <elf-symbol name='__drm_puts_seq_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x513072fe'/>
+      <elf-symbol name='__drmm_simple_encoder_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6c86c3a'/>
+      <elf-symbol name='__drmm_universal_plane_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe9d96f78'/>
+      <elf-symbol name='__dynamic_dev_dbg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x276689ce'/>
+      <elf-symbol name='__dynamic_netdev_dbg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c82e330'/>
+      <elf-symbol name='__dynamic_pr_debug' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x837b7b09'/>
+      <elf-symbol name='__ethtool_get_link_ksettings' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdb9c2522'/>
+      <elf-symbol name='__fdget' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc1d8cfaf'/>
+      <elf-symbol name='__filemap_set_wb_err' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x22a3a2ef'/>
+      <elf-symbol name='__find_get_block' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdba41715'/>
+      <elf-symbol name='__find_vma' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d1fe95e'/>
+      <elf-symbol name='__free_iova' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbc8a675b'/>
+      <elf-symbol name='__free_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5157c749'/>
+      <elf-symbol name='__fs_parse' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85fc370d'/>
+      <elf-symbol name='__fscrypt_encrypt_symlink' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc57fca8'/>
+      <elf-symbol name='__fscrypt_inode_uses_inline_crypto' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa66b3aa8'/>
+      <elf-symbol name='__fscrypt_prepare_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x21da83ed'/>
+      <elf-symbol name='__fscrypt_prepare_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90d1c34d'/>
+      <elf-symbol name='__fscrypt_prepare_readdir' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49a6876'/>
+      <elf-symbol name='__fscrypt_prepare_rename' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5773bcea'/>
+      <elf-symbol name='__fscrypt_prepare_setattr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe747d917'/>
+      <elf-symbol name='__generic_file_write_iter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x847e9150'/>
+      <elf-symbol name='__genphy_config_aneg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e61b316'/>
+      <elf-symbol name='__get_free_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a5cb5ee'/>
+      <elf-symbol name='__get_task_comm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4428fb5e'/>
+      <elf-symbol name='__getblk_gfp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae7df48f'/>
+      <elf-symbol name='__hci_cmd_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9c729c1'/>
+      <elf-symbol name='__hci_cmd_sync_ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb530aa58'/>
+      <elf-symbol name='__hid_register_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4892c4f9'/>
+      <elf-symbol name='__hid_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbcd84b1b'/>
+      <elf-symbol name='__hrtimer_get_remaining' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed269ad2'/>
+      <elf-symbol name='__hvc_resize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb849fb5'/>
+      <elf-symbol name='__hw_addr_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf28cf0ae'/>
+      <elf-symbol name='__hw_addr_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91f68ea1'/>
+      <elf-symbol name='__hw_addr_sync_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3e373b9'/>
+      <elf-symbol name='__hw_addr_unsync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb71ed69f'/>
+      <elf-symbol name='__hw_addr_unsync_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc29b4b3'/>
+      <elf-symbol name='__hwspin_lock_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b789cf1'/>
+      <elf-symbol name='__hwspin_trylock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5da0dd84'/>
+      <elf-symbol name='__hwspin_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa7bc3c0c'/>
+      <elf-symbol name='__i2c_smbus_xfer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd69ef2ec'/>
+      <elf-symbol name='__i2c_transfer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x571c2f3f'/>
+      <elf-symbol name='__iio_device_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43d0e4c1'/>
+      <elf-symbol name='__iio_trigger_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65696be0'/>
+      <elf-symbol name='__inet6_lookup_established' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdaf3da8e'/>
+      <elf-symbol name='__inet_lookup_established' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa038ab5'/>
+      <elf-symbol name='__init_rwsem' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf5a94b83'/>
+      <elf-symbol name='__init_swait_queue_head' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x608741b5'/>
+      <elf-symbol name='__init_waitqueue_head' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9a5ea54'/>
+      <elf-symbol name='__insert_inode_hash' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2bbfe5b'/>
+      <elf-symbol name='__iomap_dio_rw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1239b05c'/>
+      <elf-symbol name='__ioread32_copy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3801776b'/>
+      <elf-symbol name='__ioremap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b4b2933'/>
+      <elf-symbol name='__iowrite32_copy' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes' crc='0x2dba276a'/>
+      <elf-symbol name='__ip_select_ident' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde02d81'/>
+      <elf-symbol name='__ipv6_addr_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd542439'/>
+      <elf-symbol name='__irq_alloc_descs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5db075d0'/>
+      <elf-symbol name='__irq_alloc_domain_generic_chips' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6c8a7d5'/>
+      <elf-symbol name='__irq_domain_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5467e196'/>
+      <elf-symbol name='__irq_resolve_mapping' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6bf72794'/>
+      <elf-symbol name='__irq_set_handler' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55cde3ef'/>
+      <elf-symbol name='__kfifo_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x139f2189'/>
+      <elf-symbol name='__kfifo_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdb760f52'/>
+      <elf-symbol name='__kfifo_from_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x30a80826'/>
+      <elf-symbol name='__kfifo_from_user_r' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfeebc7c4'/>
+      <elf-symbol name='__kfifo_in' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf23fcb99'/>
+      <elf-symbol name='__kfifo_in_r' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3955fcf6'/>
+      <elf-symbol name='__kfifo_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd462b55'/>
+      <elf-symbol name='__kfifo_out' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x13d0adf7'/>
+      <elf-symbol name='__kfifo_out_peek' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x281823c5'/>
+      <elf-symbol name='__kfifo_out_r' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33fcf44a'/>
+      <elf-symbol name='__kfifo_to_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4578f528'/>
+      <elf-symbol name='__kfifo_to_user_r' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2484adc3'/>
+      <elf-symbol name='__kfree_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1fc54ccb'/>
+      <elf-symbol name='__kmalloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb233a45'/>
+      <elf-symbol name='__kthread_init_worker' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc0117038'/>
+      <elf-symbol name='__list_add_valid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x68f31cbd'/>
+      <elf-symbol name='__list_del_entry_valid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe1537255'/>
+      <elf-symbol name='__local_bh_enable_ip' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c3fce39'/>
+      <elf-symbol name='__lock_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae58f927'/>
+      <elf-symbol name='__lock_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7a59d0e4'/>
+      <elf-symbol name='__mark_inode_dirty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcb5b4ef8'/>
+      <elf-symbol name='__mdiobus_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24a59ae2'/>
+      <elf-symbol name='__mdiobus_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc75f462d'/>
+      <elf-symbol name='__mdiobus_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41182107'/>
+      <elf-symbol name='__media_device_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x93da7b57'/>
+      <elf-symbol name='__media_entity_setup_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc8aeb94'/>
+      <elf-symbol name='__memcat_p' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd64ed259'/>
+      <elf-symbol name='__memcpy_fromio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5d112304'/>
+      <elf-symbol name='__memcpy_toio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf77555cd'/>
+      <elf-symbol name='__memset_io' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x18b48e28'/>
+      <elf-symbol name='__migrate_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x95203075'/>
+      <elf-symbol name='__mmap_lock_do_trace_acquire_returned' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ed3e175'/>
+      <elf-symbol name='__mmap_lock_do_trace_released' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x86832082'/>
+      <elf-symbol name='__mmap_lock_do_trace_start_locking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x583d61bc'/>
+      <elf-symbol name='__mmc_claim_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x83bb45fc'/>
+      <elf-symbol name='__mmc_poll_for_busy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3d447c0'/>
+      <elf-symbol name='__mmdrop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe43db45e'/>
+      <elf-symbol name='__mod_lruvec_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99cf06e1'/>
+      <elf-symbol name='__mod_zone_page_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6d8106c2'/>
+      <elf-symbol name='__module_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2176ae6f'/>
+      <elf-symbol name='__module_put_and_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x640a64b6'/>
+      <elf-symbol name='__msecs_to_jiffies' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f02188f'/>
+      <elf-symbol name='__mutex_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa571f6b0'/>
+      <elf-symbol name='__napi_alloc_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb628992'/>
+      <elf-symbol name='__napi_schedule' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32d96e7b'/>
+      <elf-symbol name='__napi_schedule_irqoff' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe036c4b'/>
+      <elf-symbol name='__ndelay' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf8c695a'/>
+      <elf-symbol name='__netdev_alloc_frag_align' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91a488ac'/>
+      <elf-symbol name='__netdev_alloc_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc4646201'/>
+      <elf-symbol name='__netif_napi_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb393607'/>
+      <elf-symbol name='__netif_set_xps_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8f669be0'/>
+      <elf-symbol name='__netlink_kernel_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x42468dbb'/>
+      <elf-symbol name='__nla_parse' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x420964e3'/>
+      <elf-symbol name='__nla_validate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x431ec3a9'/>
+      <elf-symbol name='__nlmsg_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbeff675b'/>
+      <elf-symbol name='__of_get_address' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e7064e0'/>
+      <elf-symbol name='__of_reset_control_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x743ba884'/>
+      <elf-symbol name='__page_file_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf060968f'/>
+      <elf-symbol name='__page_file_mapping' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x21e0e39d'/>
+      <elf-symbol name='__page_frag_cache_drain' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1faa9680'/>
+      <elf-symbol name='__page_mapcount' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdcafe4e4'/>
+      <elf-symbol name='__page_pinner_failure_detect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a5ac793'/>
+      <elf-symbol name='__page_pinner_put_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe21cdd6c'/>
+      <elf-symbol name='__pagevec_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x524adb03'/>
+      <elf-symbol name='__pci_register_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7bfe59a4'/>
+      <elf-symbol name='__percpu_counter_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20cbb30a'/>
+      <elf-symbol name='__percpu_counter_sum' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x53126ecc'/>
+      <elf-symbol name='__percpu_down_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb7479212'/>
+      <elf-symbol name='__percpu_init_rwsem' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf4a1003'/>
+      <elf-symbol name='__phy_modify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x52dba222'/>
+      <elf-symbol name='__platform_driver_probe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c7af267'/>
+      <elf-symbol name='__platform_driver_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfc45e713'/>
+      <elf-symbol name='__platform_register_drivers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2847aa47'/>
+      <elf-symbol name='__pm_relax' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b6fa98a'/>
+      <elf-symbol name='__pm_runtime_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdad7de90'/>
+      <elf-symbol name='__pm_runtime_idle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfaeb4169'/>
+      <elf-symbol name='__pm_runtime_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61dd786a'/>
+      <elf-symbol name='__pm_runtime_set_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96f6c9fa'/>
+      <elf-symbol name='__pm_runtime_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa7964c48'/>
+      <elf-symbol name='__pm_runtime_use_autosuspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0c225ad'/>
+      <elf-symbol name='__pm_stay_awake' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfea1e7b4'/>
+      <elf-symbol name='__printk_ratelimit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6128b5fc'/>
+      <elf-symbol name='__pskb_copy_fclone' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8afee4'/>
+      <elf-symbol name='__pskb_pull_tail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa76ece10'/>
+      <elf-symbol name='__put_cred' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6d111ee'/>
+      <elf-symbol name='__put_net' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x98662f48'/>
+      <elf-symbol name='__put_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcba94ed2'/>
+      <elf-symbol name='__put_task_struct' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8ebe4'/>
+      <elf-symbol name='__raw_v4_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeef0c4d9'/>
+      <elf-symbol name='__raw_v6_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdaabd9ed'/>
+      <elf-symbol name='__rb_erase_color' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x551bd071'/>
+      <elf-symbol name='__rb_insert_augmented' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x120b336a'/>
+      <elf-symbol name='__rcu_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d522714'/>
+      <elf-symbol name='__rcu_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2469810f'/>
+      <elf-symbol name='__refrigerator' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4482cdb'/>
+      <elf-symbol name='__register_blkdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x720a27a7'/>
+      <elf-symbol name='__register_chrdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8a05008'/>
+      <elf-symbol name='__register_rpmsg_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f639c10'/>
+      <elf-symbol name='__regmap_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e688ddc'/>
+      <elf-symbol name='__regmap_init_i2c' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5570f54'/>
+      <elf-symbol name='__regmap_init_mmio_clk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ef01871'/>
+      <elf-symbol name='__release_region' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1848221d'/>
+      <elf-symbol name='__remove_inode_hash' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xec56416f'/>
+      <elf-symbol name='__request_module' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa24f23d8'/>
+      <elf-symbol name='__request_percpu_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7bb045a7'/>
+      <elf-symbol name='__request_region' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca39ba0'/>
+      <elf-symbol name='__reset_control_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x780bad9b'/>
+      <elf-symbol name='__rht_bucket_nested' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0d156e9'/>
+      <elf-symbol name='__rt_mutex_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4512f79b'/>
+      <elf-symbol name='__rtnl_link_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x87dbed01'/>
+      <elf-symbol name='__sbitmap_queue_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc76f8048'/>
+      <elf-symbol name='__scsi_add_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d636246'/>
+      <elf-symbol name='__scsi_execute' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54dd2b56'/>
+      <elf-symbol name='__scsi_iterate_devices' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba8d52af'/>
+      <elf-symbol name='__scsi_print_sense' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55b208bc'/>
+      <elf-symbol name='__sdhci_add_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a1e740a'/>
+      <elf-symbol name='__sdhci_set_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5a32a947'/>
+      <elf-symbol name='__seq_open_private' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x509066e9'/>
+      <elf-symbol name='__serio_register_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde35a35f'/>
+      <elf-symbol name='__serio_register_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x424f77a9'/>
+      <elf-symbol name='__set_page_dirty_buffers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99138a1e'/>
+      <elf-symbol name='__set_page_dirty_nobuffers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34f0c79d'/>
+      <elf-symbol name='__sg_page_iter_dma_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc445ceb'/>
+      <elf-symbol name='__sg_page_iter_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c9ca58f'/>
+      <elf-symbol name='__sg_page_iter_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xccd4c999'/>
+      <elf-symbol name='__sk_receive_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e1ea1fa'/>
+      <elf-symbol name='__skb_checksum_complete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x363a95c0'/>
+      <elf-symbol name='__skb_ext_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x42e61877'/>
+      <elf-symbol name='__skb_flow_dissect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8b1d354'/>
+      <elf-symbol name='__skb_get_hash' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7e81b517'/>
+      <elf-symbol name='__skb_gso_segment' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1526bb2'/>
+      <elf-symbol name='__skb_pad' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c27a1cf'/>
+      <elf-symbol name='__sock_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa138ffba'/>
+      <elf-symbol name='__spi_alloc_controller' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90a816f8'/>
+      <elf-symbol name='__spi_register_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ba73443'/>
+      <elf-symbol name='__splice_from_pipe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1e30114c'/>
+      <elf-symbol name='__spmi_driver_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7b2f1c5'/>
+      <elf-symbol name='__srcu_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb6e276c'/>
+      <elf-symbol name='__srcu_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x463728ec'/>
+      <elf-symbol name='__stack_chk_fail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2c193d2'/>
+      <elf-symbol name='__sw_hweight16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57674fd7'/>
+      <elf-symbol name='__sw_hweight32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x74c134b9'/>
+      <elf-symbol name='__sw_hweight64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f46ced8'/>
+      <elf-symbol name='__sw_hweight8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdc3fcbc9'/>
+      <elf-symbol name='__symbol_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x868784cb'/>
+      <elf-symbol name='__symbol_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e9dd606'/>
+      <elf-symbol name='__sync_dirty_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd1829c52'/>
+      <elf-symbol name='__sysfs_match_string' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x169938c1'/>
+      <elf-symbol name='__task_pid_nr_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd53bd8'/>
+      <elf-symbol name='__task_rq_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99b20e6f'/>
+      <elf-symbol name='__tasklet_hi_schedule' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3e3bad0a'/>
+      <elf-symbol name='__tasklet_schedule' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9d2ab8ac'/>
+      <elf-symbol name='__test_set_page_writeback' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfaa17a1f'/>
+      <elf-symbol name='__trace_bprintk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa20d01ba'/>
+      <elf-symbol name='__trace_bputs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1e25684'/>
+      <elf-symbol name='__trace_puts' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d41e6f5'/>
+      <elf-symbol name='__traceiter_android_fs_dataread_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d7317b4'/>
+      <elf-symbol name='__traceiter_android_fs_dataread_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ead3887'/>
+      <elf-symbol name='__traceiter_android_fs_datawrite_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d2fbc9e'/>
+      <elf-symbol name='__traceiter_android_fs_datawrite_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x722d590e'/>
+      <elf-symbol name='__traceiter_android_rvh_account_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8b3b9ed2'/>
+      <elf-symbol name='__traceiter_android_rvh_account_irq_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3b8dce7'/>
+      <elf-symbol name='__traceiter_android_rvh_account_irq_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x402e0e29'/>
+      <elf-symbol name='__traceiter_android_rvh_after_dequeue_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c82ee44'/>
+      <elf-symbol name='__traceiter_android_rvh_after_enqueue_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96d0c391'/>
+      <elf-symbol name='__traceiter_android_rvh_arm64_serror_panic' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x655dc568'/>
+      <elf-symbol name='__traceiter_android_rvh_audio_usb_offload_disconnect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa491f0c0'/>
+      <elf-symbol name='__traceiter_android_rvh_build_perf_domains' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4b4a53af'/>
+      <elf-symbol name='__traceiter_android_rvh_can_migrate_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcee26ad1'/>
+      <elf-symbol name='__traceiter_android_rvh_check_preempt_tick' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x48afd9ab'/>
+      <elf-symbol name='__traceiter_android_rvh_check_preempt_wakeup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe62aa03'/>
+      <elf-symbol name='__traceiter_android_rvh_check_preempt_wakeup_ignore' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb79f1834'/>
+      <elf-symbol name='__traceiter_android_rvh_commit_creds' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaff39255'/>
+      <elf-symbol name='__traceiter_android_rvh_cpu_cgroup_attach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51560f32'/>
+      <elf-symbol name='__traceiter_android_rvh_cpu_cgroup_can_attach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbaad6625'/>
+      <elf-symbol name='__traceiter_android_rvh_cpu_cgroup_online' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7858e33'/>
+      <elf-symbol name='__traceiter_android_rvh_cpu_overutilized' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f085466'/>
+      <elf-symbol name='__traceiter_android_rvh_cpufreq_transition' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x53e1fac'/>
+      <elf-symbol name='__traceiter_android_rvh_cpuset_fork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x12dcba07'/>
+      <elf-symbol name='__traceiter_android_rvh_ctl_dirty_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb88d27b3'/>
+      <elf-symbol name='__traceiter_android_rvh_dequeue_entity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1cb584b'/>
+      <elf-symbol name='__traceiter_android_rvh_dequeue_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x42677054'/>
+      <elf-symbol name='__traceiter_android_rvh_dequeue_task_fair' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1482f614'/>
+      <elf-symbol name='__traceiter_android_rvh_die_kernel_fault' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdd3bdf09'/>
+      <elf-symbol name='__traceiter_android_rvh_dma_buf_stats_teardown' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa268c602'/>
+      <elf-symbol name='__traceiter_android_rvh_do_mem_abort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36188649'/>
+      <elf-symbol name='__traceiter_android_rvh_do_ptrauth_fault' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x64d39689'/>
+      <elf-symbol name='__traceiter_android_rvh_do_sched_yield' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0fb88e'/>
+      <elf-symbol name='__traceiter_android_rvh_do_sea' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x898dc270'/>
+      <elf-symbol name='__traceiter_android_rvh_do_serror' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfcc4ef0'/>
+      <elf-symbol name='__traceiter_android_rvh_do_sp_pc_abort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x46a35d0e'/>
+      <elf-symbol name='__traceiter_android_rvh_do_undefinstr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b71f74'/>
+      <elf-symbol name='__traceiter_android_rvh_effective_cpu_util' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa02cdf43'/>
+      <elf-symbol name='__traceiter_android_rvh_enqueue_entity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb0c4e55d'/>
+      <elf-symbol name='__traceiter_android_rvh_enqueue_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8355d81'/>
+      <elf-symbol name='__traceiter_android_rvh_enqueue_task_fair' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc669066'/>
+      <elf-symbol name='__traceiter_android_rvh_entity_tick' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3cf1d3c'/>
+      <elf-symbol name='__traceiter_android_rvh_exit_creds' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe9037b7f'/>
+      <elf-symbol name='__traceiter_android_rvh_find_busiest_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96069d09'/>
+      <elf-symbol name='__traceiter_android_rvh_find_busiest_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbf9f213e'/>
+      <elf-symbol name='__traceiter_android_rvh_find_energy_efficient_cpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85e352e1'/>
+      <elf-symbol name='__traceiter_android_rvh_find_lowest_rq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x82e0b315'/>
+      <elf-symbol name='__traceiter_android_rvh_find_new_ilb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa44cff02'/>
+      <elf-symbol name='__traceiter_android_rvh_finish_prio_fork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7522ec3e'/>
+      <elf-symbol name='__traceiter_android_rvh_flush_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe07f76bd'/>
+      <elf-symbol name='__traceiter_android_rvh_get_nohz_timer_target' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x264a20ab'/>
+      <elf-symbol name='__traceiter_android_rvh_gic_v3_set_affinity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc0b21d95'/>
+      <elf-symbol name='__traceiter_android_rvh_iommu_setup_dma_ops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbb98fc02'/>
+      <elf-symbol name='__traceiter_android_rvh_irqs_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x707d1f10'/>
+      <elf-symbol name='__traceiter_android_rvh_irqs_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7a345722'/>
+      <elf-symbol name='__traceiter_android_rvh_is_cpu_allowed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c79737a'/>
+      <elf-symbol name='__traceiter_android_rvh_memcgv2_calc_decayed_watermark' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1167d3c2'/>
+      <elf-symbol name='__traceiter_android_rvh_memcgv2_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf891c8ce'/>
+      <elf-symbol name='__traceiter_android_rvh_migrate_queued_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66c02c1'/>
+      <elf-symbol name='__traceiter_android_rvh_mmc_cache_card_properties' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcef51983'/>
+      <elf-symbol name='__traceiter_android_rvh_mmc_partition_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4061ba54'/>
+      <elf-symbol name='__traceiter_android_rvh_mmc_sd_cmdline_timing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41c13b5f'/>
+      <elf-symbol name='__traceiter_android_rvh_mmc_sd_dataline_timing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15d35ed6'/>
+      <elf-symbol name='__traceiter_android_rvh_new_task_stats' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb490a76d'/>
+      <elf-symbol name='__traceiter_android_rvh_override_creds' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x216d4bdb'/>
+      <elf-symbol name='__traceiter_android_rvh_panic_unhandled' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28fe1374'/>
+      <elf-symbol name='__traceiter_android_rvh_partial_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8959e27d'/>
+      <elf-symbol name='__traceiter_android_rvh_pick_next_entity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c4b8ada'/>
+      <elf-symbol name='__traceiter_android_rvh_place_entity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ad348e9'/>
+      <elf-symbol name='__traceiter_android_rvh_post_init_entity_util_avg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfcfea98e'/>
+      <elf-symbol name='__traceiter_android_rvh_preempt_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1585c762'/>
+      <elf-symbol name='__traceiter_android_rvh_preempt_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3235e37a'/>
+      <elf-symbol name='__traceiter_android_rvh_prepare_prio_fork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd9fe8f3'/>
+      <elf-symbol name='__traceiter_android_rvh_psci_cpu_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x962f6bd0'/>
+      <elf-symbol name='__traceiter_android_rvh_psci_tos_resident_on' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd872b19a'/>
+      <elf-symbol name='__traceiter_android_rvh_refrigerator' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x811d8704'/>
+      <elf-symbol name='__traceiter_android_rvh_replace_next_task_fair' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2eef6cd4'/>
+      <elf-symbol name='__traceiter_android_rvh_report_bug' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41d4f1c5'/>
+      <elf-symbol name='__traceiter_android_rvh_revert_creds' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x521960d2'/>
+      <elf-symbol name='__traceiter_android_rvh_rmqueue_bulk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x807ed9be'/>
+      <elf-symbol name='__traceiter_android_rvh_rtmutex_force_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe194f468'/>
+      <elf-symbol name='__traceiter_android_rvh_rtmutex_prepare_setprio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1dc47982'/>
+      <elf-symbol name='__traceiter_android_rvh_rto_next_cpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc8030a93'/>
+      <elf-symbol name='__traceiter_android_rvh_sched_cpu_dying' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc40c01e0'/>
+      <elf-symbol name='__traceiter_android_rvh_sched_cpu_starting' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x335e5307'/>
+      <elf-symbol name='__traceiter_android_rvh_sched_exec' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd854f169'/>
+      <elf-symbol name='__traceiter_android_rvh_sched_fork' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd37bb7c3'/>
+      <elf-symbol name='__traceiter_android_rvh_sched_fork_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43d9a3f8'/>
+      <elf-symbol name='__traceiter_android_rvh_sched_getaffinity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2ce60db5'/>
+      <elf-symbol name='__traceiter_android_rvh_sched_newidle_balance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x37a7beb5'/>
+      <elf-symbol name='__traceiter_android_rvh_sched_nohz_balancer_kick' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x871e1429'/>
+      <elf-symbol name='__traceiter_android_rvh_sched_rebalance_domains' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x48cac8f4'/>
+      <elf-symbol name='__traceiter_android_rvh_sched_setaffinity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcdb9a9d5'/>
+      <elf-symbol name='__traceiter_android_rvh_schedule' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2a3af838'/>
+      <elf-symbol name='__traceiter_android_rvh_select_fallback_rq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1d4afdfd'/>
+      <elf-symbol name='__traceiter_android_rvh_select_task_rq_dl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5edff9e4'/>
+      <elf-symbol name='__traceiter_android_rvh_select_task_rq_fair' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8bb0c989'/>
+      <elf-symbol name='__traceiter_android_rvh_select_task_rq_rt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0b96894'/>
+      <elf-symbol name='__traceiter_android_rvh_selinux_avc_insert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7b36fc65'/>
+      <elf-symbol name='__traceiter_android_rvh_selinux_avc_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x11d93a3b'/>
+      <elf-symbol name='__traceiter_android_rvh_selinux_avc_node_delete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe5e515c'/>
+      <elf-symbol name='__traceiter_android_rvh_selinux_avc_node_replace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfaf0424d'/>
+      <elf-symbol name='__traceiter_android_rvh_selinux_is_initialized' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x94da738b'/>
+      <elf-symbol name='__traceiter_android_rvh_set_balance_anon_file_reclaim' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6260c8f6'/>
+      <elf-symbol name='__traceiter_android_rvh_set_cpus_allowed_by_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd5eb1a60'/>
+      <elf-symbol name='__traceiter_android_rvh_set_cpus_allowed_comm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x251e4ad0'/>
+      <elf-symbol name='__traceiter_android_rvh_set_cpus_allowed_ptr_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf73ea53a'/>
+      <elf-symbol name='__traceiter_android_rvh_set_gfp_zone_flags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91cdc04e'/>
+      <elf-symbol name='__traceiter_android_rvh_set_iowait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x360e4c79'/>
+      <elf-symbol name='__traceiter_android_rvh_set_readahead_gfp_mask' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2ef550d'/>
+      <elf-symbol name='__traceiter_android_rvh_set_skip_swapcache_flags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28f23c0'/>
+      <elf-symbol name='__traceiter_android_rvh_set_task_cpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0ba077c'/>
+      <elf-symbol name='__traceiter_android_rvh_set_user_nice' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a7966dd'/>
+      <elf-symbol name='__traceiter_android_rvh_setscheduler' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d7edde4'/>
+      <elf-symbol name='__traceiter_android_rvh_show_max_freq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0cd1480'/>
+      <elf-symbol name='__traceiter_android_rvh_tick_entry' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed5a5fe0'/>
+      <elf-symbol name='__traceiter_android_rvh_tk_based_time_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1178b12e'/>
+      <elf-symbol name='__traceiter_android_rvh_try_to_wake_up' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc1647a15'/>
+      <elf-symbol name='__traceiter_android_rvh_try_to_wake_up_success' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9709c6cc'/>
+      <elf-symbol name='__traceiter_android_rvh_ttwu_cond' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf1935a81'/>
+      <elf-symbol name='__traceiter_android_rvh_uclamp_eff_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28eaab76'/>
+      <elf-symbol name='__traceiter_android_rvh_ufs_complete_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9cae9e9'/>
+      <elf-symbol name='__traceiter_android_rvh_ufs_reprogram_all_keys' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa828dca0'/>
+      <elf-symbol name='__traceiter_android_rvh_update_cpu_capacity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7020ac9'/>
+      <elf-symbol name='__traceiter_android_rvh_update_cpus_allowed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdbff9b91'/>
+      <elf-symbol name='__traceiter_android_rvh_update_misfit_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x535acfde'/>
+      <elf-symbol name='__traceiter_android_rvh_update_readahead_gfp_mask' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4fb31e2c'/>
+      <elf-symbol name='__traceiter_android_rvh_update_rt_rq_load_avg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9003eeb0'/>
+      <elf-symbol name='__traceiter_android_rvh_update_thermal_stats' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b6452c3'/>
+      <elf-symbol name='__traceiter_android_rvh_update_watermark' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf88428f9'/>
+      <elf-symbol name='__traceiter_android_rvh_util_est_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbfdf4bf4'/>
+      <elf-symbol name='__traceiter_android_rvh_wake_up_new_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x784c46a3'/>
+      <elf-symbol name='__traceiter_android_vh_account_task_time' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x946dd74c'/>
+      <elf-symbol name='__traceiter_android_vh_add_page_to_lrulist' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe8fa2b17'/>
+      <elf-symbol name='__traceiter_android_vh_aes_decrypt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa763d897'/>
+      <elf-symbol name='__traceiter_android_vh_aes_encrypt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde7f874e'/>
+      <elf-symbol name='__traceiter_android_vh_aes_expandkey' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb7306389'/>
+      <elf-symbol name='__traceiter_android_vh_alloc_flags_cma_adjust' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ad2b656'/>
+      <elf-symbol name='__traceiter_android_vh_alloc_highpage_movable_gfp_adjust' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5428f40d'/>
+      <elf-symbol name='__traceiter_android_vh_alloc_pages_failure_bypass' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfc6bf2b0'/>
+      <elf-symbol name='__traceiter_android_vh_alloc_pages_reclaim_bypass' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd5c698c'/>
+      <elf-symbol name='__traceiter_android_vh_alloc_pages_slowpath' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7a24d94'/>
+      <elf-symbol name='__traceiter_android_vh_alter_futex_plist_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x16e632ce'/>
+      <elf-symbol name='__traceiter_android_vh_alter_mutex_list_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbda3677a'/>
+      <elf-symbol name='__traceiter_android_vh_alter_rwsem_list_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6aa00699'/>
+      <elf-symbol name='__traceiter_android_vh_anon_gfp_adjust' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x460e08ea'/>
+      <elf-symbol name='__traceiter_android_vh_arch_set_freq_scale' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb98e0e01'/>
+      <elf-symbol name='__traceiter_android_vh_atomic_remove_fb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x406b0260'/>
+      <elf-symbol name='__traceiter_android_vh_audio_usb_offload_connect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8a01486a'/>
+      <elf-symbol name='__traceiter_android_vh_audio_usb_offload_ep_action' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6fa02ef'/>
+      <elf-symbol name='__traceiter_android_vh_audio_usb_offload_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99827837'/>
+      <elf-symbol name='__traceiter_android_vh_audio_usb_offload_synctype' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe2e8b7e4'/>
+      <elf-symbol name='__traceiter_android_vh_binder_alloc_new_buf_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2a27381c'/>
+      <elf-symbol name='__traceiter_android_vh_binder_del_ref' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x475c909a'/>
+      <elf-symbol name='__traceiter_android_vh_binder_free_proc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x37b10c54'/>
+      <elf-symbol name='__traceiter_android_vh_binder_has_work_ilocked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa00c875a'/>
+      <elf-symbol name='__traceiter_android_vh_binder_looper_state_registered' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x75fb3794'/>
+      <elf-symbol name='__traceiter_android_vh_binder_new_ref' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f80a68f'/>
+      <elf-symbol name='__traceiter_android_vh_binder_preset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc172900b'/>
+      <elf-symbol name='__traceiter_android_vh_binder_print_transaction_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6cb66eab'/>
+      <elf-symbol name='__traceiter_android_vh_binder_priority_skip' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b337bd8'/>
+      <elf-symbol name='__traceiter_android_vh_binder_proc_transaction' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15d68904'/>
+      <elf-symbol name='__traceiter_android_vh_binder_proc_transaction_entry' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5298568f'/>
+      <elf-symbol name='__traceiter_android_vh_binder_proc_transaction_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf7a66919'/>
+      <elf-symbol name='__traceiter_android_vh_binder_read_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbe2ed2c'/>
+      <elf-symbol name='__traceiter_android_vh_binder_reply' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcbf7bf6a'/>
+      <elf-symbol name='__traceiter_android_vh_binder_restore_priority' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5f27c8d3'/>
+      <elf-symbol name='__traceiter_android_vh_binder_select_worklist_ilocked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf945db36'/>
+      <elf-symbol name='__traceiter_android_vh_binder_set_priority' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b0602f8'/>
+      <elf-symbol name='__traceiter_android_vh_binder_thread_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa2932880'/>
+      <elf-symbol name='__traceiter_android_vh_binder_thread_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa1cfbd1a'/>
+      <elf-symbol name='__traceiter_android_vh_binder_trans' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c9852b4'/>
+      <elf-symbol name='__traceiter_android_vh_binder_transaction_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x912f365e'/>
+      <elf-symbol name='__traceiter_android_vh_binder_wait_for_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79d2c7d2'/>
+      <elf-symbol name='__traceiter_android_vh_binder_wakeup_ilocked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd64660ac'/>
+      <elf-symbol name='__traceiter_android_vh_blk_account_io_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a67edc4'/>
+      <elf-symbol name='__traceiter_android_vh_blk_alloc_rqs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9143d34c'/>
+      <elf-symbol name='__traceiter_android_vh_blk_rq_ctx_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xecef9a60'/>
+      <elf-symbol name='__traceiter_android_vh_build_sched_domains' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf1522f52'/>
+      <elf-symbol name='__traceiter_android_vh_cache_show' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x744cb9ca'/>
+      <elf-symbol name='__traceiter_android_vh_cgroup_attach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc60e9049'/>
+      <elf-symbol name='__traceiter_android_vh_cgroup_set_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x16d46ba7'/>
+      <elf-symbol name='__traceiter_android_vh_check_bpf_syscall' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90ef8c6'/>
+      <elf-symbol name='__traceiter_android_vh_check_file_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ab34139'/>
+      <elf-symbol name='__traceiter_android_vh_check_hibernation_swap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5aa2e6a6'/>
+      <elf-symbol name='__traceiter_android_vh_check_mmap_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6f3323bc'/>
+      <elf-symbol name='__traceiter_android_vh_check_page_look_around_ref' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1041c62'/>
+      <elf-symbol name='__traceiter_android_vh_check_uninterruptible_tasks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe843c95'/>
+      <elf-symbol name='__traceiter_android_vh_check_uninterruptible_tasks_dn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x886d1e23'/>
+      <elf-symbol name='__traceiter_android_vh_cleanup_old_buffers_bypass' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x221ef9d7'/>
+      <elf-symbol name='__traceiter_android_vh_clear_page_migrating' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xac5a67d8'/>
+      <elf-symbol name='__traceiter_android_vh_cma_alloc_retry' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1921ac58'/>
+      <elf-symbol name='__traceiter_android_vh_cma_drain_all_pages_bypass' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc098c853'/>
+      <elf-symbol name='__traceiter_android_vh_compact_finished' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x585aa39f'/>
+      <elf-symbol name='__traceiter_android_vh_cpu_idle_enter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3d203999'/>
+      <elf-symbol name='__traceiter_android_vh_cpu_idle_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x622adfde'/>
+      <elf-symbol name='__traceiter_android_vh_cpufreq_acct_update_power' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ac8a530'/>
+      <elf-symbol name='__traceiter_android_vh_cpufreq_fast_switch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xecda3718'/>
+      <elf-symbol name='__traceiter_android_vh_cpufreq_offline' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x22254707'/>
+      <elf-symbol name='__traceiter_android_vh_cpufreq_resolve_freq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce27f08e'/>
+      <elf-symbol name='__traceiter_android_vh_cpufreq_target' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e3247eb'/>
+      <elf-symbol name='__traceiter_android_vh_cpuidle_psci_enter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x445ed915'/>
+      <elf-symbol name='__traceiter_android_vh_cpuidle_psci_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x667d7b31'/>
+      <elf-symbol name='__traceiter_android_vh_del_page_from_lrulist' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6848ab7'/>
+      <elf-symbol name='__traceiter_android_vh_direct_io_update_bio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x878e7d42'/>
+      <elf-symbol name='__traceiter_android_vh_disable_thermal_cooling_stats' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa09f4ef0'/>
+      <elf-symbol name='__traceiter_android_vh_dm_bufio_shrink_scan_bypass' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7be804c5'/>
+      <elf-symbol name='__traceiter_android_vh_dm_update_clone_bio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc0db192a'/>
+      <elf-symbol name='__traceiter_android_vh_dma_buf_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc039c759'/>
+      <elf-symbol name='__traceiter_android_vh_dmabuf_heap_flags_validation' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe05cf986'/>
+      <elf-symbol name='__traceiter_android_vh_do_futex' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdee6d8f'/>
+      <elf-symbol name='__traceiter_android_vh_do_page_trylock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa92b8460'/>
+      <elf-symbol name='__traceiter_android_vh_do_send_sig_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c79f023'/>
+      <elf-symbol name='__traceiter_android_vh_do_traversal_lruvec' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5556b9d0'/>
+      <elf-symbol name='__traceiter_android_vh_do_wake_up_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7565179c'/>
+      <elf-symbol name='__traceiter_android_vh_drain_all_pages_bypass' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe9b2635d'/>
+      <elf-symbol name='__traceiter_android_vh_drm_atomic_check_modeset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfda832c1'/>
+      <elf-symbol name='__traceiter_android_vh_dump_throttled_rt_tasks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a34d1a3'/>
+      <elf-symbol name='__traceiter_android_vh_dup_task_struct' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd1d3561a'/>
+      <elf-symbol name='__traceiter_android_vh_enable_thermal_power_throttle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e711538'/>
+      <elf-symbol name='__traceiter_android_vh_encrypt_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x472c69c4'/>
+      <elf-symbol name='__traceiter_android_vh_exit_mm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7b07be57'/>
+      <elf-symbol name='__traceiter_android_vh_exit_signal' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b1b3e7'/>
+      <elf-symbol name='__traceiter_android_vh_free_one_page_bypass' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8026915b'/>
+      <elf-symbol name='__traceiter_android_vh_free_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff390d42'/>
+      <elf-symbol name='__traceiter_android_vh_free_unref_page_bypass' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25995a6'/>
+      <elf-symbol name='__traceiter_android_vh_freq_qos_add_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2337c613'/>
+      <elf-symbol name='__traceiter_android_vh_freq_qos_remove_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x332e571d'/>
+      <elf-symbol name='__traceiter_android_vh_freq_qos_update_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe802443d'/>
+      <elf-symbol name='__traceiter_android_vh_ftrace_dump_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47509209'/>
+      <elf-symbol name='__traceiter_android_vh_ftrace_format_check' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8f89ea93'/>
+      <elf-symbol name='__traceiter_android_vh_ftrace_oops_enter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1f2a1cc1'/>
+      <elf-symbol name='__traceiter_android_vh_ftrace_oops_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x351f4988'/>
+      <elf-symbol name='__traceiter_android_vh_ftrace_size_check' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd210b7ec'/>
+      <elf-symbol name='__traceiter_android_vh_futex_sleep_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33a6b539'/>
+      <elf-symbol name='__traceiter_android_vh_futex_wait_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28d3c668'/>
+      <elf-symbol name='__traceiter_android_vh_futex_wait_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c2035d3'/>
+      <elf-symbol name='__traceiter_android_vh_futex_wake_this' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf12b6f4f'/>
+      <elf-symbol name='__traceiter_android_vh_futex_wake_traverse_plist' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x82b46945'/>
+      <elf-symbol name='__traceiter_android_vh_futex_wake_up_q_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba80ee0'/>
+      <elf-symbol name='__traceiter_android_vh_get_thermal_zone_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x14b02a03'/>
+      <elf-symbol name='__traceiter_android_vh_gic_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54acc7d'/>
+      <elf-symbol name='__traceiter_android_vh_gic_set_affinity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x832846b9'/>
+      <elf-symbol name='__traceiter_android_vh_gic_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdc3c88f3'/>
+      <elf-symbol name='__traceiter_android_vh_gic_v2_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c5bab37'/>
+      <elf-symbol name='__traceiter_android_vh_handle_failed_page_trylock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2df34b95'/>
+      <elf-symbol name='__traceiter_android_vh_handle_tlb_conf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1554e1e6'/>
+      <elf-symbol name='__traceiter_android_vh_init_aes_encrypt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2f55d223'/>
+      <elf-symbol name='__traceiter_android_vh_iommu_iovad_alloc_iova' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9999f3f'/>
+      <elf-symbol name='__traceiter_android_vh_iommu_iovad_free_iova' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32f5c996'/>
+      <elf-symbol name='__traceiter_android_vh_ipi_stop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c5d140'/>
+      <elf-symbol name='__traceiter_android_vh_irqtime_account_process_tick' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbdaa26fa'/>
+      <elf-symbol name='__traceiter_android_vh_is_fpsimd_save' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ac4208c'/>
+      <elf-symbol name='__traceiter_android_vh_jiffies_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67d76d04'/>
+      <elf-symbol name='__traceiter_android_vh_killed_process' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb2c98c2f'/>
+      <elf-symbol name='__traceiter_android_vh_kmalloc_order_alloced' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf7e486e9'/>
+      <elf-symbol name='__traceiter_android_vh_kmalloc_slab' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfba9312e'/>
+      <elf-symbol name='__traceiter_android_vh_kswapd_per_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5f312c0'/>
+      <elf-symbol name='__traceiter_android_vh_kvmalloc_node_use_vmalloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3844ae56'/>
+      <elf-symbol name='__traceiter_android_vh_logbuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3839547f'/>
+      <elf-symbol name='__traceiter_android_vh_logbuf_pr_cont' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57a172b'/>
+      <elf-symbol name='__traceiter_android_vh_look_around' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b12c273'/>
+      <elf-symbol name='__traceiter_android_vh_look_around_migrate_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7af2c470'/>
+      <elf-symbol name='__traceiter_android_vh_loop_prepare_cmd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdb48e69c'/>
+      <elf-symbol name='__traceiter_android_vh_madvise_cold_or_pageout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3768f731'/>
+      <elf-symbol name='__traceiter_android_vh_madvise_cold_or_pageout_abort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf73c8318'/>
+      <elf-symbol name='__traceiter_android_vh_map_util_freq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf7d7ec49'/>
+      <elf-symbol name='__traceiter_android_vh_map_util_freq_new' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9fe962'/>
+      <elf-symbol name='__traceiter_android_vh_mark_page_accessed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1739484d'/>
+      <elf-symbol name='__traceiter_android_vh_mem_cgroup_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x18ae1a82'/>
+      <elf-symbol name='__traceiter_android_vh_mem_cgroup_css_offline' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x821fc5b'/>
+      <elf-symbol name='__traceiter_android_vh_mem_cgroup_css_online' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x82520683'/>
+      <elf-symbol name='__traceiter_android_vh_mem_cgroup_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1549cd2c'/>
+      <elf-symbol name='__traceiter_android_vh_mem_cgroup_id_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80c321bc'/>
+      <elf-symbol name='__traceiter_android_vh_meminfo_proc_show' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa07154b5'/>
+      <elf-symbol name='__traceiter_android_vh_mmap_region' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1386e45f'/>
+      <elf-symbol name='__traceiter_android_vh_mmc_attach_sd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6b16e20'/>
+      <elf-symbol name='__traceiter_android_vh_mmc_blk_mq_rw_recovery' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35f50ddf'/>
+      <elf-symbol name='__traceiter_android_vh_mmc_blk_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5de2fc89'/>
+      <elf-symbol name='__traceiter_android_vh_mmc_check_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91878c5a'/>
+      <elf-symbol name='__traceiter_android_vh_mmc_ffu_update_cid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5729f896'/>
+      <elf-symbol name='__traceiter_android_vh_mmc_gpio_cd_irqt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b24a4bf'/>
+      <elf-symbol name='__traceiter_android_vh_mmc_sd_update_cmdline_timing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7bbaae6'/>
+      <elf-symbol name='__traceiter_android_vh_mmc_sd_update_dataline_timing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa7c82f6f'/>
+      <elf-symbol name='__traceiter_android_vh_mmc_sdio_pm_flag_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x545dccd2'/>
+      <elf-symbol name='__traceiter_android_vh_mmc_update_partition_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69d10cab'/>
+      <elf-symbol name='__traceiter_android_vh_mmput' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x75885655'/>
+      <elf-symbol name='__traceiter_android_vh_modify_thermal_cpu_get_power' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea658355'/>
+      <elf-symbol name='__traceiter_android_vh_modify_thermal_request_freq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35e66620'/>
+      <elf-symbol name='__traceiter_android_vh_modify_thermal_target_freq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xedb4afc8'/>
+      <elf-symbol name='__traceiter_android_vh_modify_thermal_throttle_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96812b4f'/>
+      <elf-symbol name='__traceiter_android_vh_mpam_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8c7db79'/>
+      <elf-symbol name='__traceiter_android_vh_mutex_can_spin_on_owner' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55cc62c7'/>
+      <elf-symbol name='__traceiter_android_vh_mutex_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4ab78cf'/>
+      <elf-symbol name='__traceiter_android_vh_mutex_opt_spin_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x288b14b4'/>
+      <elf-symbol name='__traceiter_android_vh_mutex_opt_spin_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd7dde3'/>
+      <elf-symbol name='__traceiter_android_vh_mutex_unlock_slowpath' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe350fdab'/>
+      <elf-symbol name='__traceiter_android_vh_mutex_wait_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb94345e6'/>
+      <elf-symbol name='__traceiter_android_vh_mutex_wait_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x717d1bd1'/>
+      <elf-symbol name='__traceiter_android_vh_oom_check_panic' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x668465ed'/>
+      <elf-symbol name='__traceiter_android_vh_page_cache_forced_ra' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96e8ee1e'/>
+      <elf-symbol name='__traceiter_android_vh_page_referenced_check_bypass' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf0fb000'/>
+      <elf-symbol name='__traceiter_android_vh_page_should_be_protected' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25ea8d4b'/>
+      <elf-symbol name='__traceiter_android_vh_page_trylock_clear' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a490cb2'/>
+      <elf-symbol name='__traceiter_android_vh_page_trylock_get_result' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x564202b8'/>
+      <elf-symbol name='__traceiter_android_vh_page_trylock_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdfc5ee79'/>
+      <elf-symbol name='__traceiter_android_vh_pcplist_add_cma_pages_bypass' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1e223464'/>
+      <elf-symbol name='__traceiter_android_vh_post_image_save' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x119a769b'/>
+      <elf-symbol name='__traceiter_android_vh_print_slabinfo_header' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x236a0639'/>
+      <elf-symbol name='__traceiter_android_vh_printk_caller' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a30e90e'/>
+      <elf-symbol name='__traceiter_android_vh_printk_caller_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x409ea043'/>
+      <elf-symbol name='__traceiter_android_vh_printk_ext_header' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35d0ca61'/>
+      <elf-symbol name='__traceiter_android_vh_printk_hotplug' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5728d98f'/>
+      <elf-symbol name='__traceiter_android_vh_psi_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10f97d22'/>
+      <elf-symbol name='__traceiter_android_vh_ptype_head' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2c7019c'/>
+      <elf-symbol name='__traceiter_android_vh_ra_tuning_max_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x646f6033'/>
+      <elf-symbol name='__traceiter_android_vh_record_mutex_lock_starttime' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x602544f5'/>
+      <elf-symbol name='__traceiter_android_vh_record_pcpu_rwsem_starttime' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6f509622'/>
+      <elf-symbol name='__traceiter_android_vh_record_rtmutex_lock_starttime' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b9948c1'/>
+      <elf-symbol name='__traceiter_android_vh_record_rwsem_lock_starttime' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa002b185'/>
+      <elf-symbol name='__traceiter_android_vh_regmap_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x21221030'/>
+      <elf-symbol name='__traceiter_android_vh_rmqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x513a0462'/>
+      <elf-symbol name='__traceiter_android_vh_rmqueue_bulk_bypass' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2da15ba2'/>
+      <elf-symbol name='__traceiter_android_vh_rmqueue_cma_fallback' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1574fb9'/>
+      <elf-symbol name='__traceiter_android_vh_rmqueue_smallest_bypass' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb107734c'/>
+      <elf-symbol name='__traceiter_android_vh_rproc_recovery' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x12a1a6c0'/>
+      <elf-symbol name='__traceiter_android_vh_rproc_recovery_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59d30c47'/>
+      <elf-symbol name='__traceiter_android_vh_rtmutex_wait_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3e567f67'/>
+      <elf-symbol name='__traceiter_android_vh_rtmutex_wait_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe2df50a8'/>
+      <elf-symbol name='__traceiter_android_vh_rtmutex_waiter_prio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x23d816a5'/>
+      <elf-symbol name='__traceiter_android_vh_rwsem_can_spin_on_owner' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea47bf87'/>
+      <elf-symbol name='__traceiter_android_vh_rwsem_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce4ae038'/>
+      <elf-symbol name='__traceiter_android_vh_rwsem_opt_spin_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e410cdc'/>
+      <elf-symbol name='__traceiter_android_vh_rwsem_opt_spin_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x901addbf'/>
+      <elf-symbol name='__traceiter_android_vh_rwsem_read_wait_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa305911'/>
+      <elf-symbol name='__traceiter_android_vh_rwsem_read_wait_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x608da8a2'/>
+      <elf-symbol name='__traceiter_android_vh_rwsem_wake' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7a813da7'/>
+      <elf-symbol name='__traceiter_android_vh_rwsem_wake_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd987012'/>
+      <elf-symbol name='__traceiter_android_vh_rwsem_write_finished' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd61e47bf'/>
+      <elf-symbol name='__traceiter_android_vh_rwsem_write_wait_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x86904185'/>
+      <elf-symbol name='__traceiter_android_vh_rwsem_write_wait_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c7a8b6c'/>
+      <elf-symbol name='__traceiter_android_vh_save_cpu_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x442cc2a0'/>
+      <elf-symbol name='__traceiter_android_vh_save_hib_resume_bdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25ea923'/>
+      <elf-symbol name='__traceiter_android_vh_save_track_hash' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9656a86'/>
+      <elf-symbol name='__traceiter_android_vh_sched_pelt_multiplier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb77c8f2d'/>
+      <elf-symbol name='__traceiter_android_vh_sched_setaffinity_early' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc702f38'/>
+      <elf-symbol name='__traceiter_android_vh_sched_show_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f95a557'/>
+      <elf-symbol name='__traceiter_android_vh_sched_stat_runtime_rt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2f5714'/>
+      <elf-symbol name='__traceiter_android_vh_scheduler_tick' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c91de8f'/>
+      <elf-symbol name='__traceiter_android_vh_sd_update_bus_speed_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a484838'/>
+      <elf-symbol name='__traceiter_android_vh_sdhci_get_cd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1bc133cf'/>
+      <elf-symbol name='__traceiter_android_vh_set_memory_nx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6f7d324'/>
+      <elf-symbol name='__traceiter_android_vh_set_memory_rw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb64a947f'/>
+      <elf-symbol name='__traceiter_android_vh_set_module_permit_after_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5163f8b'/>
+      <elf-symbol name='__traceiter_android_vh_set_module_permit_before_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2f977fb'/>
+      <elf-symbol name='__traceiter_android_vh_set_page_migrating' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5dcca724'/>
+      <elf-symbol name='__traceiter_android_vh_set_wake_flags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb592ac11'/>
+      <elf-symbol name='__traceiter_android_vh_setscheduler_uclamp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xab83cfbd'/>
+      <elf-symbol name='__traceiter_android_vh_sha256' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88fe3e25'/>
+      <elf-symbol name='__traceiter_android_vh_should_alloc_pages_retry' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ceb5640'/>
+      <elf-symbol name='__traceiter_android_vh_show_mapcount_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x68acba8b'/>
+      <elf-symbol name='__traceiter_android_vh_show_mem' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1d424b7d'/>
+      <elf-symbol name='__traceiter_android_vh_show_resume_epoch_val' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80932910'/>
+      <elf-symbol name='__traceiter_android_vh_show_suspend_epoch_val' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c84167'/>
+      <elf-symbol name='__traceiter_android_vh_shrink_slab_bypass' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6248128c'/>
+      <elf-symbol name='__traceiter_android_vh_skip_swap_map_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd855a4b'/>
+      <elf-symbol name='__traceiter_android_vh_slab_page_alloced' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb15fec5b'/>
+      <elf-symbol name='__traceiter_android_vh_sync_txn_recvd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x318ab6d3'/>
+      <elf-symbol name='__traceiter_android_vh_syscall_prctl_finished' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef7ee5d2'/>
+      <elf-symbol name='__traceiter_android_vh_sysrq_crash' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40207816'/>
+      <elf-symbol name='__traceiter_android_vh_task_blocks_on_rtmutex' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e6d9dd0'/>
+      <elf-symbol name='__traceiter_android_vh_test_clear_look_around_ref' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0e40b05'/>
+      <elf-symbol name='__traceiter_android_vh_thermal_power_cap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73b88f94'/>
+      <elf-symbol name='__traceiter_android_vh_thermal_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9b6b745'/>
+      <elf-symbol name='__traceiter_android_vh_thermal_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x11150fce'/>
+      <elf-symbol name='__traceiter_android_vh_timer_calc_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x110d6b1e'/>
+      <elf-symbol name='__traceiter_android_vh_try_cma_fallback' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8348fb40'/>
+      <elf-symbol name='__traceiter_android_vh_try_to_freeze_todo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd1146850'/>
+      <elf-symbol name='__traceiter_android_vh_try_to_freeze_todo_logging' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7632c0b1'/>
+      <elf-symbol name='__traceiter_android_vh_try_to_freeze_todo_unfrozen' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc521cf0b'/>
+      <elf-symbol name='__traceiter_android_vh_try_to_unmap_one' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x16a584db'/>
+      <elf-symbol name='__traceiter_android_vh_tune_inactive_ratio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3c873e2'/>
+      <elf-symbol name='__traceiter_android_vh_tune_mmap_readaround' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c25963'/>
+      <elf-symbol name='__traceiter_android_vh_tune_scan_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x842cf72c'/>
+      <elf-symbol name='__traceiter_android_vh_tune_swappiness' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2ac8d57'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_check_int_errors' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x68dcc61c'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_clock_scaling' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47bf7755'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_compl_command' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x812527ff'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_fill_prdt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc1872761'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_mcq_abort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x53cdc598'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_mcq_clear_cmd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x46ddf207'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_mcq_clear_pending' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb324d901'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_mcq_config' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaef7d892'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_mcq_get_outstanding_reqs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb7092c05'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_mcq_handler' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36688f71'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_mcq_has_oustanding_reqs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc21444e6'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_mcq_hba_capabilities' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9f7d227'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_mcq_make_hba_operational' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25396649'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_mcq_map_tag' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90a74e9d'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_mcq_max_tag' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf250e11'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_mcq_print_trs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd96be40d'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_mcq_send_command' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63cc1c7d'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_mcq_set_sqid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9926f4b4'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_prepare_command' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9fd6f7ad'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_send_command' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb106c274'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_send_tm_command' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd60f4ca'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_send_uic_command' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x295221f0'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_update_sdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x604fa0d4'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_update_sysfs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2279f0b'/>
+      <elf-symbol name='__traceiter_android_vh_ufs_use_mcq_hooks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbdd5d2c7'/>
+      <elf-symbol name='__traceiter_android_vh_unreserve_highatomic_bypass' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49085b31'/>
+      <elf-symbol name='__traceiter_android_vh_update_page_mapcount' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee92068c'/>
+      <elf-symbol name='__traceiter_android_vh_update_topology_flags_workfn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9046f81'/>
+      <elf-symbol name='__traceiter_android_vh_usb_new_device_added' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd04e226b'/>
+      <elf-symbol name='__traceiter_android_vh_use_cma_first_check' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x11a420c9'/>
+      <elf-symbol name='__traceiter_android_vh_vmpressure' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x77e74c0b'/>
+      <elf-symbol name='__traceiter_android_vh_watchdog_timer_softlockup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b06e020'/>
+      <elf-symbol name='__traceiter_android_vh_wq_lockup_pool' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62c05483'/>
+      <elf-symbol name='__traceiter_binder_transaction_received' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x361264a8'/>
+      <elf-symbol name='__traceiter_binder_txn_latency_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15bb2b8'/>
+      <elf-symbol name='__traceiter_block_bio_complete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10874e26'/>
+      <elf-symbol name='__traceiter_block_bio_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x648cd13e'/>
+      <elf-symbol name='__traceiter_block_bio_remap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3e2a7cc'/>
+      <elf-symbol name='__traceiter_block_getrq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9faf6b3e'/>
+      <elf-symbol name='__traceiter_block_rq_complete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85dafa97'/>
+      <elf-symbol name='__traceiter_block_rq_insert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x77d5ed52'/>
+      <elf-symbol name='__traceiter_block_rq_issue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24134cd6'/>
+      <elf-symbol name='__traceiter_block_rq_merge' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5f02e91d'/>
+      <elf-symbol name='__traceiter_block_rq_requeue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdaff7426'/>
+      <elf-symbol name='__traceiter_block_split' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6611e00'/>
+      <elf-symbol name='__traceiter_clock_set_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa45eb358'/>
+      <elf-symbol name='__traceiter_cpu_frequency' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xead3e41b'/>
+      <elf-symbol name='__traceiter_cpu_frequency_limits' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbf14b724'/>
+      <elf-symbol name='__traceiter_cpu_idle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x53d7c01e'/>
+      <elf-symbol name='__traceiter_device_pm_callback_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x786925fc'/>
+      <elf-symbol name='__traceiter_device_pm_callback_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25506da0'/>
+      <elf-symbol name='__traceiter_dma_fence_emit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59e1482'/>
+      <elf-symbol name='__traceiter_dwc3_complete_trb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbb3dadef'/>
+      <elf-symbol name='__traceiter_dwc3_ctrl_req' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b8ed47e'/>
+      <elf-symbol name='__traceiter_dwc3_ep_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8aa18d2'/>
+      <elf-symbol name='__traceiter_dwc3_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb550a392'/>
+      <elf-symbol name='__traceiter_dwc3_readl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26871a2b'/>
+      <elf-symbol name='__traceiter_dwc3_writel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcff87172'/>
+      <elf-symbol name='__traceiter_gpu_mem_total' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x448af6f4'/>
+      <elf-symbol name='__traceiter_hrtimer_expire_entry' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1fbe9aad'/>
+      <elf-symbol name='__traceiter_hrtimer_expire_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x444a8c3c'/>
+      <elf-symbol name='__traceiter_ipi_entry' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3411569'/>
+      <elf-symbol name='__traceiter_ipi_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbb7a853b'/>
+      <elf-symbol name='__traceiter_ipi_raise' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb82d26c2'/>
+      <elf-symbol name='__traceiter_irq_handler_entry' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43fd58d1'/>
+      <elf-symbol name='__traceiter_irq_handler_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55dc902f'/>
+      <elf-symbol name='__traceiter_kfree_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28164d30'/>
+      <elf-symbol name='__traceiter_map' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x71c059d8'/>
+      <elf-symbol name='__traceiter_mm_vmscan_direct_reclaim_begin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x803bf202'/>
+      <elf-symbol name='__traceiter_mmap_lock_acquire_returned' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5703b6e'/>
+      <elf-symbol name='__traceiter_mmap_lock_released' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2add379'/>
+      <elf-symbol name='__traceiter_mmap_lock_start_locking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5af911d2'/>
+      <elf-symbol name='__traceiter_net_dev_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe9b36fb3'/>
+      <elf-symbol name='__traceiter_net_dev_xmit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4872fb7'/>
+      <elf-symbol name='__traceiter_netif_receive_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe1463a9c'/>
+      <elf-symbol name='__traceiter_netif_rx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb398eb9'/>
+      <elf-symbol name='__traceiter_pelt_cfs_tp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9f40dd4'/>
+      <elf-symbol name='__traceiter_pelt_dl_tp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcfdc4dba'/>
+      <elf-symbol name='__traceiter_pelt_irq_tp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7668a3e9'/>
+      <elf-symbol name='__traceiter_pelt_rt_tp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdba85139'/>
+      <elf-symbol name='__traceiter_pelt_se_tp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1e501667'/>
+      <elf-symbol name='__traceiter_rwmmio_post_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7257c10'/>
+      <elf-symbol name='__traceiter_rwmmio_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x42dea6f7'/>
+      <elf-symbol name='__traceiter_rwmmio_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x729023fd'/>
+      <elf-symbol name='__traceiter_sched_cpu_capacity_tp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19becbda'/>
+      <elf-symbol name='__traceiter_sched_overutilized_tp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x303e1251'/>
+      <elf-symbol name='__traceiter_sched_stat_blocked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf2962c6'/>
+      <elf-symbol name='__traceiter_sched_stat_iowait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5b117d8'/>
+      <elf-symbol name='__traceiter_sched_stat_runtime' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x868df921'/>
+      <elf-symbol name='__traceiter_sched_stat_sleep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54ea640c'/>
+      <elf-symbol name='__traceiter_sched_stat_wait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84d3ab77'/>
+      <elf-symbol name='__traceiter_sched_switch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe822d9e3'/>
+      <elf-symbol name='__traceiter_sched_update_nr_running_tp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9dcd95dd'/>
+      <elf-symbol name='__traceiter_sched_util_est_cfs_tp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf40e7f62'/>
+      <elf-symbol name='__traceiter_sched_util_est_se_tp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d1c0b8f'/>
+      <elf-symbol name='__traceiter_sched_waking' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca9ac223'/>
+      <elf-symbol name='__traceiter_suspend_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5883efb'/>
+      <elf-symbol name='__traceiter_task_newtask' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1222cb50'/>
+      <elf-symbol name='__traceiter_task_rename' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x199d26ce'/>
+      <elf-symbol name='__traceiter_unmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3ec851c'/>
+      <elf-symbol name='__traceiter_usb_gadget_connect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7563ff8d'/>
+      <elf-symbol name='__traceiter_usb_gadget_disconnect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x437e0a6e'/>
+      <elf-symbol name='__traceiter_wbc_writepage' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x848b6b63'/>
+      <elf-symbol name='__traceiter_workqueue_execute_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd7ca165'/>
+      <elf-symbol name='__traceiter_workqueue_execute_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b629b42'/>
+      <elf-symbol name='__traceiter_xdp_exception' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa43592f6'/>
+      <elf-symbol name='__traceiter_xhci_urb_giveback' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x640c185c'/>
+      <elf-symbol name='__tty_alloc_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe66b186b'/>
+      <elf-symbol name='__tty_insert_flip_char' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc5a003b1'/>
+      <elf-symbol name='__typec_altmode_register_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7aa3fbb7'/>
+      <elf-symbol name='__ubsan_handle_cfi_check_fail_abort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf7a4c69'/>
+      <elf-symbol name='__udelay' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e7d6bd0'/>
+      <elf-symbol name='__udp4_lib_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4f278bb'/>
+      <elf-symbol name='__udp6_lib_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c719302'/>
+      <elf-symbol name='__uio_register_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7ec63ac'/>
+      <elf-symbol name='__unregister_chrdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6bc3fbc0'/>
+      <elf-symbol name='__update_load_avg_blocked_se' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4a9ca297'/>
+      <elf-symbol name='__usb_create_hcd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6470ae92'/>
+      <elf-symbol name='__usb_get_extra_descriptor' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd36760ef'/>
+      <elf-symbol name='__usecs_to_jiffies' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf1969a8e'/>
+      <elf-symbol name='__v4l2_ctrl_modify_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5eba623'/>
+      <elf-symbol name='__v4l2_ctrl_s_ctrl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba0e6683'/>
+      <elf-symbol name='__v4l2_ctrl_s_ctrl_compound' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x165aa2b4'/>
+      <elf-symbol name='__v4l2_ctrl_s_ctrl_int64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1525274'/>
+      <elf-symbol name='__v4l2_device_register_subdev_nodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xacba8781'/>
+      <elf-symbol name='__v4l2_find_nearest_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe2822320'/>
+      <elf-symbol name='__video_register_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x81874570'/>
+      <elf-symbol name='__vlan_find_dev_deep_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20876456'/>
+      <elf-symbol name='__vmalloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae04012c'/>
+      <elf-symbol name='__wait_on_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa2660249'/>
+      <elf-symbol name='__wait_rcu_gp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbfed2cd9'/>
+      <elf-symbol name='__wake_up' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3eeb2322'/>
+      <elf-symbol name='__wake_up_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2773c485'/>
+      <elf-symbol name='__wake_up_locked_key' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9337cd0'/>
+      <elf-symbol name='__wake_up_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8273d0b'/>
+      <elf-symbol name='__wake_up_sync_key' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba220db7'/>
+      <elf-symbol name='__warn_printk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56470118'/>
+      <elf-symbol name='__xa_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9114b616'/>
+      <elf-symbol name='__xa_alloc_cyclic' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb04a43ad'/>
+      <elf-symbol name='__xa_clear_mark' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9af1d0d'/>
+      <elf-symbol name='__xa_erase' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe02c9c92'/>
+      <elf-symbol name='__xa_insert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7dcf4135'/>
+      <elf-symbol name='__xa_store' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca9beaa4'/>
+      <elf-symbol name='__xfrm_state_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x739e4df9'/>
+      <elf-symbol name='_atomic_dec_and_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf4fdd4d'/>
+      <elf-symbol name='_bcd2bin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6936ffe'/>
+      <elf-symbol name='_bin2bcd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80ca5026'/>
+      <elf-symbol name='_copy_from_iter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba4aeb8a'/>
+      <elf-symbol name='_copy_to_iter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff890394'/>
+      <elf-symbol name='_dev_alert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88fc3e37'/>
+      <elf-symbol name='_dev_crit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f6ca275'/>
+      <elf-symbol name='_dev_emerg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x716cbc52'/>
+      <elf-symbol name='_dev_err' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb83a2a6'/>
+      <elf-symbol name='_dev_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6aefebc3'/>
+      <elf-symbol name='_dev_notice' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce82ef75'/>
+      <elf-symbol name='_dev_printk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5dd69ca'/>
+      <elf-symbol name='_dev_warn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf4cff926'/>
+      <elf-symbol name='_find_first_bit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8810754a'/>
+      <elf-symbol name='_find_first_zero_bit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7b37d4a7'/>
+      <elf-symbol name='_find_last_bit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ae47436'/>
+      <elf-symbol name='_find_next_bit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa50a3da7'/>
+      <elf-symbol name='_printk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x92997ed8'/>
+      <elf-symbol name='_printk_deferred' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1e19eb6c'/>
+      <elf-symbol name='_raw_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe8c61f0'/>
+      <elf-symbol name='_raw_read_lock_bh' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8dee722d'/>
+      <elf-symbol name='_raw_read_lock_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x48112d76'/>
+      <elf-symbol name='_raw_read_lock_irqsave' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1342cdb'/>
+      <elf-symbol name='_raw_read_trylock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x889b1370'/>
+      <elf-symbol name='_raw_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdd4d55b6'/>
+      <elf-symbol name='_raw_read_unlock_bh' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaeb082ad'/>
+      <elf-symbol name='_raw_read_unlock_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa58af0a6'/>
+      <elf-symbol name='_raw_read_unlock_irqrestore' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf2ebb87'/>
+      <elf-symbol name='_raw_spin_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba8fbd64'/>
+      <elf-symbol name='_raw_spin_lock_bh' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3690fc'/>
+      <elf-symbol name='_raw_spin_lock_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8427cc7b'/>
+      <elf-symbol name='_raw_spin_lock_irqsave' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34db050b'/>
+      <elf-symbol name='_raw_spin_trylock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfef216eb'/>
+      <elf-symbol name='_raw_spin_trylock_bh' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8518a4a6'/>
+      <elf-symbol name='_raw_spin_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5b54b34'/>
+      <elf-symbol name='_raw_spin_unlock_bh' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe46021ca'/>
+      <elf-symbol name='_raw_spin_unlock_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4b750f53'/>
+      <elf-symbol name='_raw_spin_unlock_irqrestore' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd35cce70'/>
+      <elf-symbol name='_raw_write_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe68efe41'/>
+      <elf-symbol name='_raw_write_lock_bh' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51a511eb'/>
+      <elf-symbol name='_raw_write_lock_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3aca0190'/>
+      <elf-symbol name='_raw_write_lock_irqsave' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5021bd81'/>
+      <elf-symbol name='_raw_write_trylock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x258a2c02'/>
+      <elf-symbol name='_raw_write_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40235c98'/>
+      <elf-symbol name='_raw_write_unlock_bh' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7ab1ecc'/>
+      <elf-symbol name='_raw_write_unlock_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f76baf4'/>
+      <elf-symbol name='_raw_write_unlock_irqrestore' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb078aee'/>
+      <elf-symbol name='_snd_ctl_add_follower' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x178b5c01'/>
+      <elf-symbol name='_snd_pcm_hw_params_any' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x283dfe3'/>
+      <elf-symbol name='_snd_pcm_stream_lock_irqsave' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb0ba4064'/>
+      <elf-symbol name='_trace_android_vh_record_pcpu_rwsem_starttime' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4e9e738'/>
+      <elf-symbol name='_vb2_fop_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f84780'/>
+      <elf-symbol name='access_process_vm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd27285de'/>
+      <elf-symbol name='ack_all_badblocks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd81e41cc'/>
+      <elf-symbol name='activate_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad8332f3'/>
+      <elf-symbol name='add_cpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7eb808d0'/>
+      <elf-symbol name='add_device_randomness' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2fb6de5d'/>
+      <elf-symbol name='add_memory' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd7aaaee'/>
+      <elf-symbol name='add_memory_subsection' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x690b988e'/>
+      <elf-symbol name='add_random_ready_callback' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x74f6e308'/>
+      <elf-symbol name='add_swap_extent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6183201'/>
+      <elf-symbol name='add_timer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65744673'/>
+      <elf-symbol name='add_timer_on' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa83a512'/>
+      <elf-symbol name='add_to_page_cache_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xccb3987f'/>
+      <elf-symbol name='add_to_page_cache_lru' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6fa5bb7a'/>
+      <elf-symbol name='add_uevent_var' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c6febfc'/>
+      <elf-symbol name='add_wait_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4afb2238'/>
+      <elf-symbol name='addrconf_prefix_rcv_add_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3993a'/>
+      <elf-symbol name='address_space_init_once' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d6f9738'/>
+      <elf-symbol name='adjust_managed_page_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3c2b116'/>
+      <elf-symbol name='aead_register_instance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcfb0ec01'/>
+      <elf-symbol name='aes_encrypt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x77e9eb37'/>
+      <elf-symbol name='aes_expandkey' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x558b281d'/>
+      <elf-symbol name='ahash_register_instance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd93ccabf'/>
+      <elf-symbol name='alarm_cancel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x536e1fa7'/>
+      <elf-symbol name='alarm_expires_remaining' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbc0c003'/>
+      <elf-symbol name='alarm_forward' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ebe6d7d'/>
+      <elf-symbol name='alarm_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1fbe3658'/>
+      <elf-symbol name='alarm_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x111d2777'/>
+      <elf-symbol name='alarm_start_relative' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfeb6361a'/>
+      <elf-symbol name='alarm_try_to_cancel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3295ffe'/>
+      <elf-symbol name='alarmtimer_get_rtcdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x98ecebda'/>
+      <elf-symbol name='alg_test' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3bdb5d28'/>
+      <elf-symbol name='all_vm_events' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7278d328'/>
+      <elf-symbol name='alloc_anon_inode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c80e764'/>
+      <elf-symbol name='alloc_can_err_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84eccf0d'/>
+      <elf-symbol name='alloc_can_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x93ad9361'/>
+      <elf-symbol name='alloc_candev_mqs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x182769c5'/>
+      <elf-symbol name='alloc_canfd_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdbec8865'/>
+      <elf-symbol name='alloc_chrdev_region' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe3ec2f2b'/>
+      <elf-symbol name='alloc_contig_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73abb180'/>
+      <elf-symbol name='alloc_etherdev_mqs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8df1e551'/>
+      <elf-symbol name='alloc_io_pgtable_ops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5bdbba72'/>
+      <elf-symbol name='alloc_iova' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd6e713e'/>
+      <elf-symbol name='alloc_netdev_mqs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb2f23b63'/>
+      <elf-symbol name='alloc_page_buffers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24ce50db'/>
+      <elf-symbol name='alloc_pages_exact' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5fc72f0e'/>
+      <elf-symbol name='alloc_skb_with_frags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26674c8f'/>
+      <elf-symbol name='alloc_swapdev_block' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x97a6b964'/>
+      <elf-symbol name='alloc_workqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49cd25ed'/>
+      <elf-symbol name='amba_driver_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9612a27'/>
+      <elf-symbol name='amba_driver_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x27f38456'/>
+      <elf-symbol name='amba_release_regions' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8ce5ac6b'/>
+      <elf-symbol name='amba_request_regions' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd4c8987'/>
+      <elf-symbol name='android_debug_for_each_module' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1840ff6f'/>
+      <elf-symbol name='android_debug_per_cpu_symbol' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8ee3d8d9'/>
+      <elf-symbol name='android_debug_symbol' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd5ade9a'/>
+      <elf-symbol name='android_rvh_probe_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7fbbd0bb'/>
+      <elf-symbol name='anon_inode_getfd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c0f027e'/>
+      <elf-symbol name='anon_inode_getfile' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa2104ae'/>
+      <elf-symbol name='arc4_crypt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd47fcc4'/>
+      <elf-symbol name='arc4_setkey' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2bb32ad1'/>
+      <elf-symbol name='argv_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0b13336'/>
+      <elf-symbol name='argv_split' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7380dffa'/>
+      <elf-symbol name='arm_smccc_1_1_get_conduit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6d467b08'/>
+      <elf-symbol name='arm_smccc_1_2_hvc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea1c3e3a'/>
+      <elf-symbol name='arm_smccc_1_2_smc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3e79fb00'/>
+      <elf-symbol name='arm_smccc_get_version' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe98f55f2'/>
+      <elf-symbol name='arp_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfae37a58'/>
+      <elf-symbol name='async_schedule_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf5f370e0'/>
+      <elf-symbol name='async_schedule_node_domain' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd21b61bd'/>
+      <elf-symbol name='async_synchronize_cookie' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7a81541b'/>
+      <elf-symbol name='async_synchronize_full_domain' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ca4bf88'/>
+      <elf-symbol name='atomic_notifier_call_chain' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3752c27'/>
+      <elf-symbol name='atomic_notifier_chain_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b9997fb'/>
+      <elf-symbol name='atomic_notifier_chain_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7181db30'/>
+      <elf-symbol name='autoremove_wake_function' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad73041f'/>
+      <elf-symbol name='available_idle_cpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2088e082'/>
+      <elf-symbol name='backlight_device_get_by_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ce9ca87'/>
+      <elf-symbol name='backlight_device_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x880085e5'/>
+      <elf-symbol name='backlight_device_set_brightness' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x81d9fe8d'/>
+      <elf-symbol name='backlight_device_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaef2339b'/>
+      <elf-symbol name='badblocks_clear' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8708ac1b'/>
+      <elf-symbol name='badblocks_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x106ecd55'/>
+      <elf-symbol name='badblocks_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x375895f8'/>
+      <elf-symbol name='badblocks_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4df0018f'/>
+      <elf-symbol name='badblocks_show' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54640021'/>
+      <elf-symbol name='badblocks_store' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x86f8c3c2'/>
+      <elf-symbol name='balance_dirty_pages_ratelimited' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa60548ad'/>
+      <elf-symbol name='balloon_page_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x77d5d38b'/>
+      <elf-symbol name='balloon_page_dequeue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51154cfc'/>
+      <elf-symbol name='balloon_page_enqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a70cd76'/>
+      <elf-symbol name='baswap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7b5ce5c3'/>
+      <elf-symbol name='bcmp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x263c3152'/>
+      <elf-symbol name='bd_link_disk_holder' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x719c24ea'/>
+      <elf-symbol name='bd_unlink_disk_holder' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19c86831'/>
+      <elf-symbol name='bdev_check_media_change' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbc15b643'/>
+      <elf-symbol name='bdev_read_only' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe6d8a90'/>
+      <elf-symbol name='bdevname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb9b4334'/>
+      <elf-symbol name='bdi_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x514bad2f'/>
+      <elf-symbol name='bdi_dev_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b01623f'/>
+      <elf-symbol name='bdi_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc23d275e'/>
+      <elf-symbol name='bdi_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6eee1e73'/>
+      <elf-symbol name='bgpio_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59e13f27'/>
+      <elf-symbol name='bin2hex' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd45cc6ca'/>
+      <elf-symbol name='bio_add_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6721887b'/>
+      <elf-symbol name='bio_alloc_bioset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa36427e2'/>
+      <elf-symbol name='bio_associate_blkg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee691d8e'/>
+      <elf-symbol name='bio_associate_blkg_from_css' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc0564c62'/>
+      <elf-symbol name='bio_chain' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85611f9'/>
+      <elf-symbol name='bio_clone_blkg_association' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6dba0dc'/>
+      <elf-symbol name='bio_clone_fast' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e22fbd0'/>
+      <elf-symbol name='bio_crypt_set_ctx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc4caad13'/>
+      <elf-symbol name='bio_end_io_acct_remapped' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf86ce723'/>
+      <elf-symbol name='bio_endio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a124aa0'/>
+      <elf-symbol name='bio_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6f60cbe5'/>
+      <elf-symbol name='bio_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91072e5a'/>
+      <elf-symbol name='bio_split' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbae45c0d'/>
+      <elf-symbol name='bio_start_io_acct' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x16ac31c9'/>
+      <elf-symbol name='bioset_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe62939a1'/>
+      <elf-symbol name='bioset_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8234f8bf'/>
+      <elf-symbol name='bit_wait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x16e297c3'/>
+      <elf-symbol name='bit_wait_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x44bae227'/>
+      <elf-symbol name='bit_waitqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad9901ae'/>
+      <elf-symbol name='bitmap_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20dbf27'/>
+      <elf-symbol name='bitmap_allocate_region' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdac4913a'/>
+      <elf-symbol name='bitmap_find_free_region' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63a7c28c'/>
+      <elf-symbol name='bitmap_find_next_zero_area_off' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x64127b67'/>
+      <elf-symbol name='bitmap_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca21ebd3'/>
+      <elf-symbol name='bitmap_from_arr32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8d07858'/>
+      <elf-symbol name='bitmap_parse' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb97220ff'/>
+      <elf-symbol name='bitmap_parselist' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b015d25'/>
+      <elf-symbol name='bitmap_print_to_pagebuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf474c21c'/>
+      <elf-symbol name='bitmap_release_region' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x574c2e74'/>
+      <elf-symbol name='bitmap_to_arr32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ec54e78'/>
+      <elf-symbol name='bitmap_zalloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2688ec10'/>
+      <elf-symbol name='blk_bio_list_merge' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1eda47cd'/>
+      <elf-symbol name='blk_cleanup_disk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdb409f3d'/>
+      <elf-symbol name='blk_cleanup_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8e554d4'/>
+      <elf-symbol name='blk_execute_rq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb3f5a32'/>
+      <elf-symbol name='blk_execute_rq_nowait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x70693b18'/>
+      <elf-symbol name='blk_finish_plug' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1d3a15c'/>
+      <elf-symbol name='blk_freeze_queue_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfefd7f20'/>
+      <elf-symbol name='blk_get_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8984caf7'/>
+      <elf-symbol name='blk_get_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc4b63204'/>
+      <elf-symbol name='blk_ksm_get_slot_idx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe1c63523'/>
+      <elf-symbol name='blk_ksm_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2592bebf'/>
+      <elf-symbol name='blk_ksm_init_passthrough' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66ab9894'/>
+      <elf-symbol name='blk_ksm_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5dd3da8'/>
+      <elf-symbol name='blk_ksm_reprogram_all_keys' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43ba8cab'/>
+      <elf-symbol name='blk_mark_disk_dead' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc912ccf'/>
+      <elf-symbol name='blk_mq_alloc_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc4733fe9'/>
+      <elf-symbol name='blk_mq_alloc_request_hctx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6e5644a'/>
+      <elf-symbol name='blk_mq_alloc_sq_tag_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbdae63e5'/>
+      <elf-symbol name='blk_mq_alloc_tag_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ac774fb'/>
+      <elf-symbol name='blk_mq_complete_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa2f8774'/>
+      <elf-symbol name='blk_mq_complete_request_remote' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdef55c66'/>
+      <elf-symbol name='blk_mq_debugfs_rq_show' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e33ced5'/>
+      <elf-symbol name='blk_mq_delay_kick_requeue_list' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9a11acd'/>
+      <elf-symbol name='blk_mq_end_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xefd55b5c'/>
+      <elf-symbol name='blk_mq_free_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xabcb62'/>
+      <elf-symbol name='blk_mq_free_tag_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xec2cffa1'/>
+      <elf-symbol name='blk_mq_freeze_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x196f4c41'/>
+      <elf-symbol name='blk_mq_freeze_queue_wait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x896552d9'/>
+      <elf-symbol name='blk_mq_freeze_queue_wait_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x945e0eb4'/>
+      <elf-symbol name='blk_mq_init_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe25d0698'/>
+      <elf-symbol name='blk_mq_map_queues' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d4d7b79'/>
+      <elf-symbol name='blk_mq_pci_map_queues' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x233010e7'/>
+      <elf-symbol name='blk_mq_queue_inflight' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa7682480'/>
+      <elf-symbol name='blk_mq_quiesce_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1aeaea1f'/>
+      <elf-symbol name='blk_mq_requeue_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1c9c997'/>
+      <elf-symbol name='blk_mq_rq_cpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b14ba81'/>
+      <elf-symbol name='blk_mq_run_hw_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb74ff1d3'/>
+      <elf-symbol name='blk_mq_run_hw_queues' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60f51a02'/>
+      <elf-symbol name='blk_mq_sched_try_insert_merge' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x884c0ad4'/>
+      <elf-symbol name='blk_mq_sched_try_merge' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3d41a9df'/>
+      <elf-symbol name='blk_mq_start_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c407485'/>
+      <elf-symbol name='blk_mq_start_stopped_hw_queues' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35ecec9c'/>
+      <elf-symbol name='blk_mq_stop_hw_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2fec1623'/>
+      <elf-symbol name='blk_mq_tag_to_rq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd85487f5'/>
+      <elf-symbol name='blk_mq_tagset_busy_iter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3041fc1'/>
+      <elf-symbol name='blk_mq_tagset_wait_completed_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2453c48'/>
+      <elf-symbol name='blk_mq_unfreeze_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6d084196'/>
+      <elf-symbol name='blk_mq_unquiesce_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x229ca65'/>
+      <elf-symbol name='blk_mq_update_nr_hw_queues' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf036252d'/>
+      <elf-symbol name='blk_mq_virtio_map_queues' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca776ef5'/>
+      <elf-symbol name='blk_op_str' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2211a4c0'/>
+      <elf-symbol name='blk_pm_runtime_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba6f3719'/>
+      <elf-symbol name='blk_put_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f2bf44e'/>
+      <elf-symbol name='blk_put_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x46adeccc'/>
+      <elf-symbol name='blk_queue_alignment_offset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x572f749f'/>
+      <elf-symbol name='blk_queue_bounce_limit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x926f03fd'/>
+      <elf-symbol name='blk_queue_chunk_sectors' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x318380b3'/>
+      <elf-symbol name='blk_queue_dma_alignment' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8fb3fa3b'/>
+      <elf-symbol name='blk_queue_flag_clear' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ebecff6'/>
+      <elf-symbol name='blk_queue_flag_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc56086d'/>
+      <elf-symbol name='blk_queue_flag_test_and_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b713f2d'/>
+      <elf-symbol name='blk_queue_io_min' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f3fea36'/>
+      <elf-symbol name='blk_queue_io_opt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3cac3e9d'/>
+      <elf-symbol name='blk_queue_logical_block_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6d5b6dc'/>
+      <elf-symbol name='blk_queue_max_discard_sectors' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8b6dfdcd'/>
+      <elf-symbol name='blk_queue_max_discard_segments' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba81b23f'/>
+      <elf-symbol name='blk_queue_max_hw_sectors' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41d202fc'/>
+      <elf-symbol name='blk_queue_max_segment_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7bde79dd'/>
+      <elf-symbol name='blk_queue_max_segments' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84e67fc'/>
+      <elf-symbol name='blk_queue_max_write_same_sectors' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2fed3b0a'/>
+      <elf-symbol name='blk_queue_max_write_zeroes_sectors' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b4aecf7'/>
+      <elf-symbol name='blk_queue_physical_block_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbea60fdd'/>
+      <elf-symbol name='blk_queue_rq_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d6f1a4b'/>
+      <elf-symbol name='blk_queue_split' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa5217c4'/>
+      <elf-symbol name='blk_queue_update_dma_alignment' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe3b1d2dd'/>
+      <elf-symbol name='blk_queue_update_dma_pad' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c956b72'/>
+      <elf-symbol name='blk_queue_virt_boundary' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc1de7f64'/>
+      <elf-symbol name='blk_queue_write_cache' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb59a4588'/>
+      <elf-symbol name='blk_rq_map_kern' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe55d25e'/>
+      <elf-symbol name='blk_rq_map_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa683f1f8'/>
+      <elf-symbol name='blk_rq_map_user_iov' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3ebef31'/>
+      <elf-symbol name='blk_rq_unmap_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbafd6e53'/>
+      <elf-symbol name='blk_set_stacking_limits' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xec12dd75'/>
+      <elf-symbol name='blk_start_plug' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79ec8f93'/>
+      <elf-symbol name='blk_stat_enable_accounting' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4cc4165f'/>
+      <elf-symbol name='blk_status_to_errno' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84502a47'/>
+      <elf-symbol name='blk_sync_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3d1a9db9'/>
+      <elf-symbol name='blk_update_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x948c81eb'/>
+      <elf-symbol name='blkcg_activate_policy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65d7499f'/>
+      <elf-symbol name='blkcg_deactivate_policy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8173ed0e'/>
+      <elf-symbol name='blkcg_policy_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73b3f7c6'/>
+      <elf-symbol name='blkcg_policy_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7fff7cc4'/>
+      <elf-symbol name='blkcg_print_blkgs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x411a9213'/>
+      <elf-symbol name='blkdev_compat_ptr_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8520bda'/>
+      <elf-symbol name='blkdev_get_by_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2f9a403c'/>
+      <elf-symbol name='blkdev_get_by_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3fcde105'/>
+      <elf-symbol name='blkdev_issue_discard' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6b23d97'/>
+      <elf-symbol name='blkdev_issue_flush' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7e807449'/>
+      <elf-symbol name='blkdev_issue_zeroout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc4d014d8'/>
+      <elf-symbol name='blkdev_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67a7f125'/>
+      <elf-symbol name='blkg_conf_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7d30ae0'/>
+      <elf-symbol name='blkg_conf_prep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2df33a3'/>
+      <elf-symbol name='blkg_lookup_slowpath' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc6895884'/>
+      <elf-symbol name='blkg_prfill_rwstat' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa2d98337'/>
+      <elf-symbol name='blkg_rwstat_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19edd064'/>
+      <elf-symbol name='blkg_rwstat_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf0b6ba7'/>
+      <elf-symbol name='blkg_rwstat_recursive_sum' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa1151dc5'/>
+      <elf-symbol name='block_invalidatepage' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x334b6464'/>
+      <elf-symbol name='block_is_partially_uptodate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc71c32f5'/>
+      <elf-symbol name='block_truncate_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e97be8a'/>
+      <elf-symbol name='block_write_begin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x384c6d32'/>
+      <elf-symbol name='block_write_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xac6a554c'/>
+      <elf-symbol name='block_write_full_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x17ec1df1'/>
+      <elf-symbol name='blocking_notifier_call_chain' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8317ad7c'/>
+      <elf-symbol name='blocking_notifier_chain_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbb0c86a5'/>
+      <elf-symbol name='blocking_notifier_chain_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x963aa2a9'/>
+      <elf-symbol name='bmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2ae5a3a5'/>
+      <elf-symbol name='bpf_dispatcher_xdp_func' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6f8f674a'/>
+      <elf-symbol name='bpf_prog_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72181bea'/>
+      <elf-symbol name='bpf_prog_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa17628c'/>
+      <elf-symbol name='bpf_prog_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x926dfbfd'/>
+      <elf-symbol name='bpf_prog_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1e86d1cb'/>
+      <elf-symbol name='bpf_prog_sub' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3337941'/>
+      <elf-symbol name='bpf_trace_run1' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc66abdd8'/>
+      <elf-symbol name='bpf_trace_run10' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x186658fd'/>
+      <elf-symbol name='bpf_trace_run11' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb39220e'/>
+      <elf-symbol name='bpf_trace_run12' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x413cae7a'/>
+      <elf-symbol name='bpf_trace_run2' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b75e521'/>
+      <elf-symbol name='bpf_trace_run3' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd3f1d89'/>
+      <elf-symbol name='bpf_trace_run4' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4efc6489'/>
+      <elf-symbol name='bpf_trace_run5' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6cd7cede'/>
+      <elf-symbol name='bpf_trace_run6' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6ca7751'/>
+      <elf-symbol name='bpf_trace_run7' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4f2fe5'/>
+      <elf-symbol name='bpf_trace_run8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96a3087c'/>
+      <elf-symbol name='bpf_trace_run9' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe5fc6f76'/>
+      <elf-symbol name='bpf_warn_invalid_xdp_action' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c2bcd37'/>
+      <elf-symbol name='br_fdb_find_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe1ebd1ed'/>
+      <elf-symbol name='bsearch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1057a279'/>
+      <elf-symbol name='bsg_job_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x949de550'/>
+      <elf-symbol name='bsg_remove_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e33b5b'/>
+      <elf-symbol name='bsg_setup_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2eb134b1'/>
+      <elf-symbol name='bt_err' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7b8c32f1'/>
+      <elf-symbol name='bt_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x718b8b7'/>
+      <elf-symbol name='bt_procfs_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf86d3fcc'/>
+      <elf-symbol name='bt_procfs_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35d4849a'/>
+      <elf-symbol name='bt_sock_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaedaab3b'/>
+      <elf-symbol name='bt_sock_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe3d7941'/>
+      <elf-symbol name='bt_sock_unlink' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd9ec76a'/>
+      <elf-symbol name='bt_sock_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8fea24bd'/>
+      <elf-symbol name='bt_to_errno' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7aad008b'/>
+      <elf-symbol name='bt_warn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x214e4265'/>
+      <elf-symbol name='btbcm_set_bdaddr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x730ab115'/>
+      <elf-symbol name='btbcm_setup_apple' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61f110a7'/>
+      <elf-symbol name='btbcm_setup_patchram' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x393b71ce'/>
+      <elf-symbol name='buffer_migrate_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcdeca50f'/>
+      <elf-symbol name='build_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff5522b'/>
+      <elf-symbol name='bus_find_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x467a1371'/>
+      <elf-symbol name='bus_for_each_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x58f4e904'/>
+      <elf-symbol name='bus_for_each_drv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a57e768'/>
+      <elf-symbol name='bus_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x75aa1e4'/>
+      <elf-symbol name='bus_register_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85f8059c'/>
+      <elf-symbol name='bus_set_iommu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b878ba1'/>
+      <elf-symbol name='bus_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2b8ddef'/>
+      <elf-symbol name='bus_unregister_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca53610b'/>
+      <elf-symbol name='cache_line_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x605d5bfa'/>
+      <elf-symbol name='caches_clean_inval_pou' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2e168ab'/>
+      <elf-symbol name='call_netdevice_notifiers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1fca0e9'/>
+      <elf-symbol name='call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28aa6a67'/>
+      <elf-symbol name='call_rcu_tasks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x959ec5f5'/>
+      <elf-symbol name='call_rcu_tasks_trace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x52c35e83'/>
+      <elf-symbol name='call_srcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa88a0c6f'/>
+      <elf-symbol name='can_bus_off' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3803cf'/>
+      <elf-symbol name='can_change_mtu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5363c92'/>
+      <elf-symbol name='can_change_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe47b3387'/>
+      <elf-symbol name='can_fd_dlc2len' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf12d9387'/>
+      <elf-symbol name='can_fd_len2dlc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6047ede6'/>
+      <elf-symbol name='can_free_echo_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x782af768'/>
+      <elf-symbol name='can_get_echo_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4bae537'/>
+      <elf-symbol name='can_put_echo_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72bb96a0'/>
+      <elf-symbol name='can_rx_offload_add_manual' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb15d16d9'/>
+      <elf-symbol name='can_rx_offload_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x52a8cb0'/>
+      <elf-symbol name='can_rx_offload_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40eba65f'/>
+      <elf-symbol name='can_rx_offload_get_echo_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d329f02'/>
+      <elf-symbol name='can_rx_offload_queue_sorted' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61b131c7'/>
+      <elf-symbol name='can_rx_offload_threaded_irq_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5cc46769'/>
+      <elf-symbol name='can_skb_get_frame_len' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x39243d1e'/>
+      <elf-symbol name='cancel_delayed_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda571594'/>
+      <elf-symbol name='cancel_delayed_work_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8beca97'/>
+      <elf-symbol name='cancel_work_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd969d6f4'/>
+      <elf-symbol name='capable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc6cbbc89'/>
+      <elf-symbol name='capable_wrt_inode_uidgid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e099fb1'/>
+      <elf-symbol name='cdc_ncm_bind_common' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8bf84725'/>
+      <elf-symbol name='cdc_ncm_change_mtu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x21aa4af7'/>
+      <elf-symbol name='cdc_ncm_fill_tx_frame' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8023a24'/>
+      <elf-symbol name='cdc_ncm_rx_verify_ndp16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x68073b15'/>
+      <elf-symbol name='cdc_ncm_rx_verify_nth16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x236c7416'/>
+      <elf-symbol name='cdc_ncm_select_altsetting' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeaf921a4'/>
+      <elf-symbol name='cdc_ncm_unbind' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x87d24e17'/>
+      <elf-symbol name='cdc_parse_cdc_header' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x787e21d6'/>
+      <elf-symbol name='cdev_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9ff6a03'/>
+      <elf-symbol name='cdev_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x508124fc'/>
+      <elf-symbol name='cdev_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb13f0d72'/>
+      <elf-symbol name='cdev_device_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f1950ac'/>
+      <elf-symbol name='cdev_device_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1a2351d'/>
+      <elf-symbol name='cdev_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88a509d5'/>
+      <elf-symbol name='ce_aes_expandkey' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x68f275ad'/>
+      <elf-symbol name='cec_allocate_adapter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b522af2'/>
+      <elf-symbol name='cec_delete_adapter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c3817e9'/>
+      <elf-symbol name='cec_fill_conn_info_from_drm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7a5b94ed'/>
+      <elf-symbol name='cec_notifier_cec_adap_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3bad42e'/>
+      <elf-symbol name='cec_notifier_cec_adap_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd473e7cb'/>
+      <elf-symbol name='cec_notifier_conn_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc13110fc'/>
+      <elf-symbol name='cec_notifier_conn_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaee236c6'/>
+      <elf-symbol name='cec_notifier_set_phys_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa01fbb6b'/>
+      <elf-symbol name='cec_notifier_set_phys_addr_from_edid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67e1dfdc'/>
+      <elf-symbol name='cec_received_msg_ts' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7672af38'/>
+      <elf-symbol name='cec_register_adapter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d391575'/>
+      <elf-symbol name='cec_s_log_addrs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc70f894'/>
+      <elf-symbol name='cec_s_phys_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x38110909'/>
+      <elf-symbol name='cec_s_phys_addr_from_edid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59a7016c'/>
+      <elf-symbol name='cec_transmit_attempt_done_ts' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa9821b0'/>
+      <elf-symbol name='cec_transmit_done_ts' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xefb73b42'/>
+      <elf-symbol name='cec_unregister_adapter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5f18175'/>
+      <elf-symbol name='cgroup_add_dfl_cftypes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a20cc66'/>
+      <elf-symbol name='cgroup_add_legacy_cftypes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb3972323'/>
+      <elf-symbol name='cgroup_path_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xddd0f5a9'/>
+      <elf-symbol name='cgroup_taskset_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa776e0ec'/>
+      <elf-symbol name='cgroup_taskset_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x715260b0'/>
+      <elf-symbol name='check_preempt_curr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x590d4791'/>
+      <elf-symbol name='check_zeroed_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbfc1d1a'/>
+      <elf-symbol name='class_create_file_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x82ac9013'/>
+      <elf-symbol name='class_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7fe2eb19'/>
+      <elf-symbol name='class_find_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x94f212bd'/>
+      <elf-symbol name='class_for_each_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x70ae2e0e'/>
+      <elf-symbol name='class_interface_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63cac4fa'/>
+      <elf-symbol name='class_remove_file_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x93a5e727'/>
+      <elf-symbol name='class_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe182eaef'/>
+      <elf-symbol name='clean_bdev_aliases' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ef7a86c'/>
+      <elf-symbol name='cleancache_register_ops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55f21f69'/>
+      <elf-symbol name='cleanup_srcu_struct' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfc42ca73'/>
+      <elf-symbol name='clear_inode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad7d627a'/>
+      <elf-symbol name='clear_nlink' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xefce29ff'/>
+      <elf-symbol name='clear_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3d9ee9f0'/>
+      <elf-symbol name='clear_page_dirty_for_io' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x30c83023'/>
+      <elf-symbol name='clk_bulk_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x479f7d4b'/>
+      <elf-symbol name='clk_bulk_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7a7e770'/>
+      <elf-symbol name='clk_bulk_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2aadaf3'/>
+      <elf-symbol name='clk_bulk_get_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72bfff50'/>
+      <elf-symbol name='clk_bulk_prepare' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xead5c8e5'/>
+      <elf-symbol name='clk_bulk_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef29fcdd'/>
+      <elf-symbol name='clk_bulk_put_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8caa845'/>
+      <elf-symbol name='clk_bulk_unprepare' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63c08029'/>
+      <elf-symbol name='clk_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6e6d99d'/>
+      <elf-symbol name='clk_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x815588a6'/>
+      <elf-symbol name='clk_gate_is_enabled' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x306aea48'/>
+      <elf-symbol name='clk_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1140fc73'/>
+      <elf-symbol name='clk_get_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63150e06'/>
+      <elf-symbol name='clk_get_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x556e4390'/>
+      <elf-symbol name='clk_get_sys' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xec4d9e3a'/>
+      <elf-symbol name='clk_hw_get_flags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x22413a18'/>
+      <elf-symbol name='clk_hw_get_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x192ad1d2'/>
+      <elf-symbol name='clk_hw_get_num_parents' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x76318081'/>
+      <elf-symbol name='clk_hw_get_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd65fd5db'/>
+      <elf-symbol name='clk_hw_get_parent_by_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33d2190a'/>
+      <elf-symbol name='clk_hw_get_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47fde036'/>
+      <elf-symbol name='clk_hw_is_enabled' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x288df40'/>
+      <elf-symbol name='clk_hw_is_prepared' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd1bbe378'/>
+      <elf-symbol name='clk_hw_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf5dcb517'/>
+      <elf-symbol name='clk_hw_register_composite' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa5b95b1'/>
+      <elf-symbol name='clk_hw_register_fixed_factor' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x989d7ce1'/>
+      <elf-symbol name='clk_hw_round_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x903f1dd1'/>
+      <elf-symbol name='clk_hw_set_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8cd121a0'/>
+      <elf-symbol name='clk_hw_set_rate_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8de11d46'/>
+      <elf-symbol name='clk_hw_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9141e9a6'/>
+      <elf-symbol name='clk_is_match' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8b149c36'/>
+      <elf-symbol name='clk_mux_determine_rate_flags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfdfaeb7a'/>
+      <elf-symbol name='clk_mux_index_to_val' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x14d01690'/>
+      <elf-symbol name='clk_mux_val_to_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c6fae82'/>
+      <elf-symbol name='clk_notifier_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60091316'/>
+      <elf-symbol name='clk_notifier_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x719e17ff'/>
+      <elf-symbol name='clk_prepare' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c9a7371'/>
+      <elf-symbol name='clk_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e1ca751'/>
+      <elf-symbol name='clk_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc087acb5'/>
+      <elf-symbol name='clk_register_clkdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9822234'/>
+      <elf-symbol name='clk_register_composite' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6deff1a8'/>
+      <elf-symbol name='clk_register_divider_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcbe6494b'/>
+      <elf-symbol name='clk_register_fixed_factor' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb47eb7'/>
+      <elf-symbol name='clk_register_fixed_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32393c8d'/>
+      <elf-symbol name='clk_register_gate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x92295424'/>
+      <elf-symbol name='clk_restore_context' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6259d291'/>
+      <elf-symbol name='clk_round_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43f81957'/>
+      <elf-symbol name='clk_save_context' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa531471e'/>
+      <elf-symbol name='clk_set_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2396c7f0'/>
+      <elf-symbol name='clk_set_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x76d9b876'/>
+      <elf-symbol name='clk_sync_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x18f8b3ff'/>
+      <elf-symbol name='clk_unprepare' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb077e70a'/>
+      <elf-symbol name='clk_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7757b51a'/>
+      <elf-symbol name='clk_unregister_fixed_factor' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x45558f56'/>
+      <elf-symbol name='clk_unregister_fixed_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x52252316'/>
+      <elf-symbol name='clk_unregister_gate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8506baa8'/>
+      <elf-symbol name='clkdev_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3b20f84'/>
+      <elf-symbol name='clkdev_drop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84a5c5ce'/>
+      <elf-symbol name='clockevent_delta2ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8d1962'/>
+      <elf-symbol name='clockevents_config_and_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6c905b1'/>
+      <elf-symbol name='clockevents_register_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60326b59'/>
+      <elf-symbol name='clocks_calc_mult_shift' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62bb09bf'/>
+      <elf-symbol name='clocksource_mmio_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f4fc1ef'/>
+      <elf-symbol name='clocksource_mmio_readl_up' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49b9dfb4'/>
+      <elf-symbol name='close_candev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea1d4154'/>
+      <elf-symbol name='close_fd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6fde909'/>
+      <elf-symbol name='cma_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa365776'/>
+      <elf-symbol name='cma_for_each_area' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb64c6ae'/>
+      <elf-symbol name='cma_get_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4fa486ea'/>
+      <elf-symbol name='cma_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34582904'/>
+      <elf-symbol name='compat_ptr_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5063e2ca'/>
+      <elf-symbol name='complete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6257a2f'/>
+      <elf-symbol name='complete_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x93d6dd8c'/>
+      <elf-symbol name='complete_and_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26cc73c3'/>
+      <elf-symbol name='completion_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xddf6ad7a'/>
+      <elf-symbol name='component_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51024b02'/>
+      <elf-symbol name='component_add_typed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2fadd6e8'/>
+      <elf-symbol name='component_bind_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28a279b5'/>
+      <elf-symbol name='component_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa473dcef'/>
+      <elf-symbol name='component_master_add_with_match' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x834c91a3'/>
+      <elf-symbol name='component_master_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c2d9c21'/>
+      <elf-symbol name='component_match_add_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x38780dd9'/>
+      <elf-symbol name='component_match_add_typed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9747c81'/>
+      <elf-symbol name='component_unbind_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc0061170'/>
+      <elf-symbol name='cond_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49e96999'/>
+      <elf-symbol name='config_ep_by_speed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfaf3beb1'/>
+      <elf-symbol name='config_group_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8577968d'/>
+      <elf-symbol name='config_group_init_type_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb323e6f4'/>
+      <elf-symbol name='config_item_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd28e538'/>
+      <elf-symbol name='config_item_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf7bde646'/>
+      <elf-symbol name='config_item_set_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbaf5621e'/>
+      <elf-symbol name='configfs_register_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce60b1d6'/>
+      <elf-symbol name='configfs_register_subsystem' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfea88013'/>
+      <elf-symbol name='configfs_unregister_subsystem' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc406a652'/>
+      <elf-symbol name='congestion_wait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x64999478'/>
+      <elf-symbol name='console_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfbaaf01e'/>
+      <elf-symbol name='console_stop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5a9a25'/>
+      <elf-symbol name='console_trylock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40d04664'/>
+      <elf-symbol name='console_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc631580a'/>
+      <elf-symbol name='console_verbose' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c8aebf'/>
+      <elf-symbol name='consume_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x58d56222'/>
+      <elf-symbol name='cont_write_begin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x398d90d6'/>
+      <elf-symbol name='copy_from_kernel_nofault' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4531ab62'/>
+      <elf-symbol name='copy_from_user_nofault' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7a98f4b4'/>
+      <elf-symbol name='copy_from_user_toio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfffd89db'/>
+      <elf-symbol name='copy_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d0d163d'/>
+      <elf-symbol name='copy_page_from_iter_atomic' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91659864'/>
+      <elf-symbol name='copy_to_user_fromio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x342a2354'/>
+      <elf-symbol name='cpu_have_feature' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41237f71'/>
+      <elf-symbol name='cpu_hotplug_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d0015e2'/>
+      <elf-symbol name='cpu_hotplug_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6c8dc62'/>
+      <elf-symbol name='cpu_is_hotpluggable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2ebe3135'/>
+      <elf-symbol name='cpu_latency_qos_add_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x589e1a22'/>
+      <elf-symbol name='cpu_latency_qos_remove_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3aaa15b2'/>
+      <elf-symbol name='cpu_latency_qos_request_active' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7537226a'/>
+      <elf-symbol name='cpu_latency_qos_update_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdc528096'/>
+      <elf-symbol name='cpu_pm_register_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x444f1735'/>
+      <elf-symbol name='cpu_pm_unregister_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f98d766'/>
+      <elf-symbol name='cpufreq_add_update_util_hook' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1403ad09'/>
+      <elf-symbol name='cpufreq_boost_enabled' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c5541bd'/>
+      <elf-symbol name='cpufreq_cooling_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8949715'/>
+      <elf-symbol name='cpufreq_cooling_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb2d99ebd'/>
+      <elf-symbol name='cpufreq_cpu_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1aa6622'/>
+      <elf-symbol name='cpufreq_cpu_get_raw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x837c4f36'/>
+      <elf-symbol name='cpufreq_cpu_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x12501c79'/>
+      <elf-symbol name='cpufreq_dbs_governor_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x657eb925'/>
+      <elf-symbol name='cpufreq_dbs_governor_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbf5c4c18'/>
+      <elf-symbol name='cpufreq_dbs_governor_limits' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb0a72ec1'/>
+      <elf-symbol name='cpufreq_dbs_governor_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6ae02d7'/>
+      <elf-symbol name='cpufreq_dbs_governor_stop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb96f092d'/>
+      <elf-symbol name='cpufreq_disable_fast_switch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8fe9025d'/>
+      <elf-symbol name='cpufreq_driver_fast_switch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcb587852'/>
+      <elf-symbol name='cpufreq_driver_resolve_freq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3eafb28'/>
+      <elf-symbol name='cpufreq_driver_target' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa74b3b3b'/>
+      <elf-symbol name='cpufreq_enable_boost_support' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf30a5502'/>
+      <elf-symbol name='cpufreq_enable_fast_switch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3e9ccfdb'/>
+      <elf-symbol name='cpufreq_freq_transition_begin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9c83386'/>
+      <elf-symbol name='cpufreq_freq_transition_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b55a036'/>
+      <elf-symbol name='cpufreq_frequency_table_get_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe75bb15d'/>
+      <elf-symbol name='cpufreq_frequency_table_verify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xec774acb'/>
+      <elf-symbol name='cpufreq_generic_frequency_table_verify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc289e46d'/>
+      <elf-symbol name='cpufreq_generic_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba2b7f64'/>
+      <elf-symbol name='cpufreq_generic_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c577efa'/>
+      <elf-symbol name='cpufreq_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9305f8e6'/>
+      <elf-symbol name='cpufreq_get_driver_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x553b49a4'/>
+      <elf-symbol name='cpufreq_get_policy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca4e6042'/>
+      <elf-symbol name='cpufreq_policy_transition_delay_us' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65590e36'/>
+      <elf-symbol name='cpufreq_quick_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c46233a'/>
+      <elf-symbol name='cpufreq_quick_get_max' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33f0768c'/>
+      <elf-symbol name='cpufreq_register_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6db399a6'/>
+      <elf-symbol name='cpufreq_register_governor' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd5db9fc'/>
+      <elf-symbol name='cpufreq_register_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65d9e877'/>
+      <elf-symbol name='cpufreq_remove_update_util_hook' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3192d768'/>
+      <elf-symbol name='cpufreq_table_index_unsorted' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf284590b'/>
+      <elf-symbol name='cpufreq_this_cpu_can_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2df04e8'/>
+      <elf-symbol name='cpufreq_unregister_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20378213'/>
+      <elf-symbol name='cpufreq_unregister_governor' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3d527b39'/>
+      <elf-symbol name='cpufreq_unregister_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6214aef2'/>
+      <elf-symbol name='cpufreq_update_limits' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x816a41ca'/>
+      <elf-symbol name='cpufreq_update_policy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc37f9c6e'/>
+      <elf-symbol name='cpuidle_driver_state_disabled' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d52a114'/>
+      <elf-symbol name='cpuidle_get_cpu_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e2b1d0f'/>
+      <elf-symbol name='cpuidle_get_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9664edf9'/>
+      <elf-symbol name='cpuidle_governor_latency_req' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc319717f'/>
+      <elf-symbol name='cpuidle_pause_and_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf553318d'/>
+      <elf-symbol name='cpuidle_register_governor' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdbe9bf60'/>
+      <elf-symbol name='cpuidle_resume_and_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcabe04de'/>
+      <elf-symbol name='cpumask_any_and_distribute' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x173e23e7'/>
+      <elf-symbol name='cpumask_any_but' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe3140af'/>
+      <elf-symbol name='cpumask_any_distribute' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x13cdcef2'/>
+      <elf-symbol name='cpumask_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3de09123'/>
+      <elf-symbol name='cpumask_next_and' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe9960e23'/>
+      <elf-symbol name='cpumask_next_wrap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x233eb8eb'/>
+      <elf-symbol name='cpupri_find_fitness' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb366b68'/>
+      <elf-symbol name='cpus_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa04f945a'/>
+      <elf-symbol name='cpus_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x18fb2caf'/>
+      <elf-symbol name='cpuset_cpus_allowed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7e173f09'/>
+      <elf-symbol name='crc16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd6841d4'/>
+      <elf-symbol name='crc32_be' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4df02057'/>
+      <elf-symbol name='crc32_le' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69dd3b5b'/>
+      <elf-symbol name='crc8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c5d5b94'/>
+      <elf-symbol name='crc8_populate_msb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa8106bc'/>
+      <elf-symbol name='crc_ccitt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x52ecbc75'/>
+      <elf-symbol name='create_empty_buffers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe134bd1e'/>
+      <elf-symbol name='create_function_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25da359c'/>
+      <elf-symbol name='crypto_aead_decrypt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8015df20'/>
+      <elf-symbol name='crypto_aead_encrypt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb13b7647'/>
+      <elf-symbol name='crypto_aead_setauthsize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xead73e40'/>
+      <elf-symbol name='crypto_aead_setkey' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb3a872a1'/>
+      <elf-symbol name='crypto_ahash_digest' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41db154a'/>
+      <elf-symbol name='crypto_ahash_finup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36cdb2b7'/>
+      <elf-symbol name='crypto_ahash_setkey' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd2e94d'/>
+      <elf-symbol name='crypto_alloc_aead' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9db645a1'/>
+      <elf-symbol name='crypto_alloc_ahash' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x12d64642'/>
+      <elf-symbol name='crypto_alloc_base' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce23f78d'/>
+      <elf-symbol name='crypto_alloc_rng' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1f9cb55b'/>
+      <elf-symbol name='crypto_alloc_shash' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe95a3e03'/>
+      <elf-symbol name='crypto_alloc_skcipher' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2235b050'/>
+      <elf-symbol name='crypto_alloc_sync_skcipher' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28780bb5'/>
+      <elf-symbol name='crypto_attr_alg_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a11a0fc'/>
+      <elf-symbol name='crypto_authenc_extractkeys' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2479193e'/>
+      <elf-symbol name='crypto_check_attr_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4934bdd0'/>
+      <elf-symbol name='crypto_cipher_encrypt_one' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55ef31d7'/>
+      <elf-symbol name='crypto_cipher_setkey' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4a6b4031'/>
+      <elf-symbol name='crypto_comp_compress' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa18110e0'/>
+      <elf-symbol name='crypto_comp_decompress' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41b5f38e'/>
+      <elf-symbol name='crypto_dequeue_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xddac6f20'/>
+      <elf-symbol name='crypto_destroy_tfm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xffaae3c1'/>
+      <elf-symbol name='crypto_drop_spawn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad9f598f'/>
+      <elf-symbol name='crypto_engine_alloc_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe089ba98'/>
+      <elf-symbol name='crypto_engine_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b46a4e8'/>
+      <elf-symbol name='crypto_engine_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b4f1c34'/>
+      <elf-symbol name='crypto_enqueue_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x388f750f'/>
+      <elf-symbol name='crypto_get_default_null_skcipher' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e508e59'/>
+      <elf-symbol name='crypto_grab_aead' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd64de26b'/>
+      <elf-symbol name='crypto_grab_ahash' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb029680'/>
+      <elf-symbol name='crypto_grab_shash' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x247cadad'/>
+      <elf-symbol name='crypto_grab_skcipher' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x263daa6c'/>
+      <elf-symbol name='crypto_grab_spawn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4bf7c76d'/>
+      <elf-symbol name='crypto_has_ahash' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34407691'/>
+      <elf-symbol name='crypto_has_alg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x951a2773'/>
+      <elf-symbol name='crypto_inc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ef051c8'/>
+      <elf-symbol name='crypto_init_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x499043d3'/>
+      <elf-symbol name='crypto_inst_setname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x92ff5028'/>
+      <elf-symbol name='crypto_mod_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f843f2c'/>
+      <elf-symbol name='crypto_put_default_null_skcipher' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x21cd536a'/>
+      <elf-symbol name='crypto_register_aead' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84065b2c'/>
+      <elf-symbol name='crypto_register_aeads' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe027d8e'/>
+      <elf-symbol name='crypto_register_ahash' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff7b3877'/>
+      <elf-symbol name='crypto_register_ahashes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b188166'/>
+      <elf-symbol name='crypto_register_alg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad6740fb'/>
+      <elf-symbol name='crypto_register_algs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf055000f'/>
+      <elf-symbol name='crypto_register_rng' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaadd08e8'/>
+      <elf-symbol name='crypto_register_rngs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9710aad3'/>
+      <elf-symbol name='crypto_register_scomp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32cfc803'/>
+      <elf-symbol name='crypto_register_shash' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55bdf3a0'/>
+      <elf-symbol name='crypto_register_shashes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x78c88021'/>
+      <elf-symbol name='crypto_register_skcipher' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5d8e3d30'/>
+      <elf-symbol name='crypto_register_skciphers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88efb8e7'/>
+      <elf-symbol name='crypto_register_template' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9285d29'/>
+      <elf-symbol name='crypto_register_templates' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8787d725'/>
+      <elf-symbol name='crypto_remove_spawns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x45b1ff29'/>
+      <elf-symbol name='crypto_req_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad562868'/>
+      <elf-symbol name='crypto_rng_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd464251b'/>
+      <elf-symbol name='crypto_sha1_finup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa7b46bdb'/>
+      <elf-symbol name='crypto_sha1_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20daac81'/>
+      <elf-symbol name='crypto_shash_alg_has_setkey' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d91ef5c'/>
+      <elf-symbol name='crypto_shash_digest' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0ddedaf'/>
+      <elf-symbol name='crypto_shash_final' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47da7752'/>
+      <elf-symbol name='crypto_shash_finup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa201dc53'/>
+      <elf-symbol name='crypto_shash_setkey' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6539ea9a'/>
+      <elf-symbol name='crypto_shash_tfm_digest' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc5ebf2e'/>
+      <elf-symbol name='crypto_shash_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5cb277ca'/>
+      <elf-symbol name='crypto_skcipher_decrypt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbb749c17'/>
+      <elf-symbol name='crypto_skcipher_encrypt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbbacb1cc'/>
+      <elf-symbol name='crypto_skcipher_setkey' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d5e67d8'/>
+      <elf-symbol name='crypto_spawn_tfm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5f29ce95'/>
+      <elf-symbol name='crypto_spawn_tfm2' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1428b53'/>
+      <elf-symbol name='crypto_unregister_aead' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe70023c4'/>
+      <elf-symbol name='crypto_unregister_ahash' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde9a1a73'/>
+      <elf-symbol name='crypto_unregister_alg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1937b19'/>
+      <elf-symbol name='crypto_unregister_rng' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x802ac62e'/>
+      <elf-symbol name='crypto_unregister_rngs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26a4bcb1'/>
+      <elf-symbol name='crypto_unregister_scomp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x663db079'/>
+      <elf-symbol name='crypto_unregister_shash' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4a5256a'/>
+      <elf-symbol name='crypto_unregister_shashes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa18c8338'/>
+      <elf-symbol name='crypto_unregister_skcipher' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x557eb2ad'/>
+      <elf-symbol name='crypto_unregister_skciphers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x649671a4'/>
+      <elf-symbol name='crypto_unregister_template' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x336c3a2c'/>
+      <elf-symbol name='crypto_unregister_templates' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4ff98b5'/>
+      <elf-symbol name='css_next_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f0d6b33'/>
+      <elf-symbol name='css_next_descendant_pre' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c16e986'/>
+      <elf-symbol name='csum_ipv6_magic' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d65cbd5'/>
+      <elf-symbol name='csum_partial' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe113bbbc'/>
+      <elf-symbol name='csum_tcpudp_nofold' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd25bc5d4'/>
+      <elf-symbol name='current_time' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdbf81814'/>
+      <elf-symbol name='current_umask' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e95b1cd'/>
+      <elf-symbol name='current_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd75ee543'/>
+      <elf-symbol name='d_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2f9c3209'/>
+      <elf-symbol name='d_add_ci' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6dc1857'/>
+      <elf-symbol name='d_alloc_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa7c5aad8'/>
+      <elf-symbol name='d_delete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x46e5f2bf'/>
+      <elf-symbol name='d_find_alias' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x11c492cb'/>
+      <elf-symbol name='d_instantiate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x329d78c4'/>
+      <elf-symbol name='d_instantiate_new' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd13e15f1'/>
+      <elf-symbol name='d_invalidate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x14a98139'/>
+      <elf-symbol name='d_make_root' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfbc727e5'/>
+      <elf-symbol name='d_move' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x27bbde2f'/>
+      <elf-symbol name='d_obtain_alias' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x329ba1a9'/>
+      <elf-symbol name='d_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdfb814f4'/>
+      <elf-symbol name='d_splice_alias' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa883e256'/>
+      <elf-symbol name='d_tmpfile' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf7dfba3c'/>
+      <elf-symbol name='dapm_clock_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88008cd6'/>
+      <elf-symbol name='dapm_kcontrol_get_value' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15fc3fc'/>
+      <elf-symbol name='dapm_pinctrl_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9835008'/>
+      <elf-symbol name='dapm_regulator_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf1c544d9'/>
+      <elf-symbol name='datagram_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb664b742'/>
+      <elf-symbol name='dbs_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9d06e4'/>
+      <elf-symbol name='deactivate_locked_super' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8291df2c'/>
+      <elf-symbol name='deactivate_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa7794b4a'/>
+      <elf-symbol name='debug_locks_off' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc575c737'/>
+      <elf-symbol name='debugfs_attr_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5842a8f5'/>
+      <elf-symbol name='debugfs_attr_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5a7a30af'/>
+      <elf-symbol name='debugfs_create_atomic_t' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4776ce12'/>
+      <elf-symbol name='debugfs_create_blob' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde6839e1'/>
+      <elf-symbol name='debugfs_create_bool' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1e803989'/>
+      <elf-symbol name='debugfs_create_devm_seqfile' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9cef593f'/>
+      <elf-symbol name='debugfs_create_dir' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeebe12e4'/>
+      <elf-symbol name='debugfs_create_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2ca564a'/>
+      <elf-symbol name='debugfs_create_file_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf185026f'/>
+      <elf-symbol name='debugfs_create_file_unsafe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb7772d0'/>
+      <elf-symbol name='debugfs_create_regset32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73ff6733'/>
+      <elf-symbol name='debugfs_create_size_t' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2520101b'/>
+      <elf-symbol name='debugfs_create_symlink' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf44fdd70'/>
+      <elf-symbol name='debugfs_create_u16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8cd05735'/>
+      <elf-symbol name='debugfs_create_u32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc4c3eec2'/>
+      <elf-symbol name='debugfs_create_u64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x347bfa9'/>
+      <elf-symbol name='debugfs_create_u8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb7b070e'/>
+      <elf-symbol name='debugfs_create_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xefeeb62f'/>
+      <elf-symbol name='debugfs_create_x32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7960cf64'/>
+      <elf-symbol name='debugfs_create_x64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbee49e0f'/>
+      <elf-symbol name='debugfs_create_x8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x39339f9c'/>
+      <elf-symbol name='debugfs_file_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaeba439a'/>
+      <elf-symbol name='debugfs_file_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8b8b9c62'/>
+      <elf-symbol name='debugfs_initialized' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x716265c7'/>
+      <elf-symbol name='debugfs_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde909ad0'/>
+      <elf-symbol name='debugfs_lookup_and_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2956a6d2'/>
+      <elf-symbol name='debugfs_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x402e076a'/>
+      <elf-symbol name='debugfs_rename' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x97e5b1cc'/>
+      <elf-symbol name='dec_node_page_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7940be82'/>
+      <elf-symbol name='dec_zone_page_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xecc26011'/>
+      <elf-symbol name='default_llseek' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdffb3cab'/>
+      <elf-symbol name='default_wake_function' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaad8c7d6'/>
+      <elf-symbol name='deferred_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe730994c'/>
+      <elf-symbol name='del_gendisk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb54fe109'/>
+      <elf-symbol name='del_random_ready_callback' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xddb057ef'/>
+      <elf-symbol name='del_timer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa4008af'/>
+      <elf-symbol name='del_timer_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf15e728e'/>
+      <elf-symbol name='delayed_work_timer_fn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x253af43d'/>
+      <elf-symbol name='delete_from_page_cache' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10027463'/>
+      <elf-symbol name='dentry_path_raw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57cc3277'/>
+      <elf-symbol name='des_expand_key' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8fb743d'/>
+      <elf-symbol name='desc_to_gpio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcbb3092e'/>
+      <elf-symbol name='destroy_workqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c03d20c'/>
+      <elf-symbol name='dev_add_pack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c167ccd'/>
+      <elf-symbol name='dev_alloc_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea763380'/>
+      <elf-symbol name='dev_change_flags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61e9021a'/>
+      <elf-symbol name='dev_close' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x87361a72'/>
+      <elf-symbol name='dev_coredumpm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe06aae8c'/>
+      <elf-symbol name='dev_coredumpv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe4a3a8e'/>
+      <elf-symbol name='dev_driver_string' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x273a8095'/>
+      <elf-symbol name='dev_err_probe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9583d7d5'/>
+      <elf-symbol name='dev_fetch_sw_netstats' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x21ce3ed1'/>
+      <elf-symbol name='dev_fwnode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdbcd27e2'/>
+      <elf-symbol name='dev_get_by_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4d35af2'/>
+      <elf-symbol name='dev_get_by_index_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x750a6a6b'/>
+      <elf-symbol name='dev_get_by_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26959a69'/>
+      <elf-symbol name='dev_get_by_name_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xab565714'/>
+      <elf-symbol name='dev_get_regmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeed7d9a5'/>
+      <elf-symbol name='dev_get_stats' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x237296fe'/>
+      <elf-symbol name='dev_get_tstats64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e2e44b'/>
+      <elf-symbol name='dev_mc_sync_multiple' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x559f462f'/>
+      <elf-symbol name='dev_mc_unsync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9bfb2ce'/>
+      <elf-symbol name='dev_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2a72451f'/>
+      <elf-symbol name='dev_pm_clear_wake_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x39bad507'/>
+      <elf-symbol name='dev_pm_domain_attach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x653ca561'/>
+      <elf-symbol name='dev_pm_domain_attach_by_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1935dea8'/>
+      <elf-symbol name='dev_pm_domain_attach_by_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2611aeb5'/>
+      <elf-symbol name='dev_pm_domain_detach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc0a8c25'/>
+      <elf-symbol name='dev_pm_genpd_add_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3fe9738c'/>
+      <elf-symbol name='dev_pm_genpd_remove_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0df6b56'/>
+      <elf-symbol name='dev_pm_genpd_set_next_wakeup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4858c7d3'/>
+      <elf-symbol name='dev_pm_genpd_set_performance_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd1088695'/>
+      <elf-symbol name='dev_pm_opp_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4879e81'/>
+      <elf-symbol name='dev_pm_opp_adjust_voltage' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c3dc224'/>
+      <elf-symbol name='dev_pm_opp_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1017b536'/>
+      <elf-symbol name='dev_pm_opp_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbaf0fabc'/>
+      <elf-symbol name='dev_pm_opp_find_freq_ceil' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ec508c9'/>
+      <elf-symbol name='dev_pm_opp_find_freq_ceil_by_volt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x70e97a16'/>
+      <elf-symbol name='dev_pm_opp_find_freq_exact' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x106411a1'/>
+      <elf-symbol name='dev_pm_opp_find_freq_floor' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0905d27'/>
+      <elf-symbol name='dev_pm_opp_free_cpufreq_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe1d9d5c3'/>
+      <elf-symbol name='dev_pm_opp_get_freq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7fe4fe5a'/>
+      <elf-symbol name='dev_pm_opp_get_level' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xac372068'/>
+      <elf-symbol name='dev_pm_opp_get_max_transition_latency' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa2a39619'/>
+      <elf-symbol name='dev_pm_opp_get_opp_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8fa7d67b'/>
+      <elf-symbol name='dev_pm_opp_get_opp_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b62d55b'/>
+      <elf-symbol name='dev_pm_opp_get_sharing_cpus' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20de96b8'/>
+      <elf-symbol name='dev_pm_opp_get_suspend_opp_freq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x21300267'/>
+      <elf-symbol name='dev_pm_opp_get_voltage' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd699302a'/>
+      <elf-symbol name='dev_pm_opp_init_cpufreq_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8cb335a4'/>
+      <elf-symbol name='dev_pm_opp_of_add_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea1212ea'/>
+      <elf-symbol name='dev_pm_opp_of_add_table_indexed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x456db069'/>
+      <elf-symbol name='dev_pm_opp_of_cpumask_add_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8cf281e7'/>
+      <elf-symbol name='dev_pm_opp_of_cpumask_remove_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ded56d3'/>
+      <elf-symbol name='dev_pm_opp_of_find_icc_paths' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2db80a25'/>
+      <elf-symbol name='dev_pm_opp_of_get_opp_desc_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5bc2b54e'/>
+      <elf-symbol name='dev_pm_opp_of_get_sharing_cpus' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf50879c8'/>
+      <elf-symbol name='dev_pm_opp_of_register_em' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a31e413'/>
+      <elf-symbol name='dev_pm_opp_of_remove_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa56e0994'/>
+      <elf-symbol name='dev_pm_opp_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfcfac1d3'/>
+      <elf-symbol name='dev_pm_opp_put_clkname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2044ae20'/>
+      <elf-symbol name='dev_pm_opp_put_opp_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xec3efe75'/>
+      <elf-symbol name='dev_pm_opp_put_prop_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61ada75f'/>
+      <elf-symbol name='dev_pm_opp_put_regulators' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25c239b0'/>
+      <elf-symbol name='dev_pm_opp_put_supported_hw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c6d5543'/>
+      <elf-symbol name='dev_pm_opp_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4a84e984'/>
+      <elf-symbol name='dev_pm_opp_remove_all_dynamic' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9d8e4287'/>
+      <elf-symbol name='dev_pm_opp_set_clkname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9eec144e'/>
+      <elf-symbol name='dev_pm_opp_set_opp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x17039c2c'/>
+      <elf-symbol name='dev_pm_opp_set_prop_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfc4c5db5'/>
+      <elf-symbol name='dev_pm_opp_set_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xadfe85bf'/>
+      <elf-symbol name='dev_pm_opp_set_regulators' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x22b163bb'/>
+      <elf-symbol name='dev_pm_opp_set_sharing_cpus' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2a04bf35'/>
+      <elf-symbol name='dev_pm_opp_set_supported_hw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x21eb1558'/>
+      <elf-symbol name='dev_pm_qos_add_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7e35c19'/>
+      <elf-symbol name='dev_pm_qos_add_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x68bc2329'/>
+      <elf-symbol name='dev_pm_qos_expose_latency_tolerance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed4cd032'/>
+      <elf-symbol name='dev_pm_qos_hide_latency_tolerance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8569d78'/>
+      <elf-symbol name='dev_pm_qos_read_value' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7e9fdf73'/>
+      <elf-symbol name='dev_pm_qos_remove_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc5881c17'/>
+      <elf-symbol name='dev_pm_qos_remove_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8bf6c746'/>
+      <elf-symbol name='dev_pm_qos_update_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72294d37'/>
+      <elf-symbol name='dev_pm_qos_update_user_latency_tolerance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x125c2c8f'/>
+      <elf-symbol name='dev_pm_set_dedicated_wake_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4aa99b4b'/>
+      <elf-symbol name='dev_pm_set_wake_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4aedf5f'/>
+      <elf-symbol name='dev_printk_emit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x932cceb0'/>
+      <elf-symbol name='dev_queue_xmit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x173641ac'/>
+      <elf-symbol name='dev_remove_pack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x935af3e0'/>
+      <elf-symbol name='dev_set_mac_address' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85208e36'/>
+      <elf-symbol name='dev_set_mtu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28ed12fc'/>
+      <elf-symbol name='dev_set_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd75566fd'/>
+      <elf-symbol name='dev_set_threaded' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d874a44'/>
+      <elf-symbol name='dev_to_i3cdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x967711c'/>
+      <elf-symbol name='dev_trans_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4be5c018'/>
+      <elf-symbol name='dev_uc_sync_multiple' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae44db0'/>
+      <elf-symbol name='dev_uc_unsync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc077074b'/>
+      <elf-symbol name='dev_valid_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62849ac7'/>
+      <elf-symbol name='dev_vprintk_emit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef050773'/>
+      <elf-symbol name='devfreq_add_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc89bcfcf'/>
+      <elf-symbol name='devfreq_add_governor' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc0472b1d'/>
+      <elf-symbol name='devfreq_cooling_em_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x759793b5'/>
+      <elf-symbol name='devfreq_cooling_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80a6fe5f'/>
+      <elf-symbol name='devfreq_event_disable_edev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1db09c6b'/>
+      <elf-symbol name='devfreq_event_enable_edev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5cd20ff1'/>
+      <elf-symbol name='devfreq_event_get_edev_by_phandle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0761ede'/>
+      <elf-symbol name='devfreq_event_get_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1477130f'/>
+      <elf-symbol name='devfreq_get_devfreq_by_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x830da41'/>
+      <elf-symbol name='devfreq_get_devfreq_by_phandle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb7f0bf6a'/>
+      <elf-symbol name='devfreq_monitor_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9d538655'/>
+      <elf-symbol name='devfreq_monitor_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x189b3ed4'/>
+      <elf-symbol name='devfreq_monitor_stop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa88a830'/>
+      <elf-symbol name='devfreq_monitor_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26b327be'/>
+      <elf-symbol name='devfreq_recommended_opp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7181853b'/>
+      <elf-symbol name='devfreq_register_opp_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0d237d5'/>
+      <elf-symbol name='devfreq_remove_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd59df56b'/>
+      <elf-symbol name='devfreq_remove_governor' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d35f620'/>
+      <elf-symbol name='devfreq_resume_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5f3bb49d'/>
+      <elf-symbol name='devfreq_suspend_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2d1b971'/>
+      <elf-symbol name='devfreq_unregister_opp_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2db59fec'/>
+      <elf-symbol name='devfreq_update_interval' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff500443'/>
+      <elf-symbol name='devfreq_update_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3020353a'/>
+      <elf-symbol name='device_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8c05891'/>
+      <elf-symbol name='device_add_disk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0377d9b'/>
+      <elf-symbol name='device_add_groups' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa7e1c423'/>
+      <elf-symbol name='device_attach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde34e079'/>
+      <elf-symbol name='device_bind_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47efa57d'/>
+      <elf-symbol name='device_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f34d4f1'/>
+      <elf-symbol name='device_create_bin_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd03cfb40'/>
+      <elf-symbol name='device_create_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x367241b6'/>
+      <elf-symbol name='device_create_managed_software_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67f46bca'/>
+      <elf-symbol name='device_create_with_groups' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf65f1f4'/>
+      <elf-symbol name='device_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc4482556'/>
+      <elf-symbol name='device_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40af62cf'/>
+      <elf-symbol name='device_find_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8be5615'/>
+      <elf-symbol name='device_for_each_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd368e105'/>
+      <elf-symbol name='device_for_each_child_reverse' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x430316bf'/>
+      <elf-symbol name='device_get_child_node_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x190a007a'/>
+      <elf-symbol name='device_get_dma_attr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20d3e798'/>
+      <elf-symbol name='device_get_mac_address' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x932726f9'/>
+      <elf-symbol name='device_get_match_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32068f3'/>
+      <elf-symbol name='device_get_named_child_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf1e183ce'/>
+      <elf-symbol name='device_get_next_child_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf06b81b1'/>
+      <elf-symbol name='device_get_phy_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x973a2ac7'/>
+      <elf-symbol name='device_init_wakeup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf5e731f5'/>
+      <elf-symbol name='device_initialize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88150c45'/>
+      <elf-symbol name='device_link_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33a519f2'/>
+      <elf-symbol name='device_link_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x463f676b'/>
+      <elf-symbol name='device_link_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3c6e9a9'/>
+      <elf-symbol name='device_match_any' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32bc8eed'/>
+      <elf-symbol name='device_match_fwnode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6bcff370'/>
+      <elf-symbol name='device_match_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24f929e0'/>
+      <elf-symbol name='device_match_of_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbef4c81b'/>
+      <elf-symbol name='device_move' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x276f8326'/>
+      <elf-symbol name='device_node_to_regmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe2b58ab4'/>
+      <elf-symbol name='device_pm_wait_for_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0973865'/>
+      <elf-symbol name='device_property_present' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2ead6a7c'/>
+      <elf-symbol name='device_property_read_string' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb3244493'/>
+      <elf-symbol name='device_property_read_string_array' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc5618800'/>
+      <elf-symbol name='device_property_read_u16_array' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb2fa45de'/>
+      <elf-symbol name='device_property_read_u32_array' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa15d2592'/>
+      <elf-symbol name='device_property_read_u8_array' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc24d2f3a'/>
+      <elf-symbol name='device_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80f2140f'/>
+      <elf-symbol name='device_release_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4529bfd'/>
+      <elf-symbol name='device_remove_bin_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x52e48b43'/>
+      <elf-symbol name='device_remove_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57489972'/>
+      <elf-symbol name='device_remove_file_self' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1aaefc9'/>
+      <elf-symbol name='device_remove_groups' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x53622930'/>
+      <elf-symbol name='device_rename' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32d489b5'/>
+      <elf-symbol name='device_set_of_node_from_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb704ae68'/>
+      <elf-symbol name='device_set_wakeup_capable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5bb1373a'/>
+      <elf-symbol name='device_set_wakeup_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20dd7448'/>
+      <elf-symbol name='device_show_bool' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa397ae2'/>
+      <elf-symbol name='device_show_int' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa34ca1c8'/>
+      <elf-symbol name='device_store_bool' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8978f769'/>
+      <elf-symbol name='device_store_int' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdebbaf19'/>
+      <elf-symbol name='device_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff2c916f'/>
+      <elf-symbol name='device_wakeup_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x75141b82'/>
+      <elf-symbol name='device_wakeup_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff848339'/>
+      <elf-symbol name='devlink_alloc_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6eab923'/>
+      <elf-symbol name='devlink_flash_update_status_notify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c493c3e'/>
+      <elf-symbol name='devlink_fmsg_binary_pair_nest_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5358864e'/>
+      <elf-symbol name='devlink_fmsg_binary_pair_nest_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x11df0e75'/>
+      <elf-symbol name='devlink_fmsg_binary_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15510a89'/>
+      <elf-symbol name='devlink_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbc87fdd8'/>
+      <elf-symbol name='devlink_health_report' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x93edef07'/>
+      <elf-symbol name='devlink_health_reporter_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcce43801'/>
+      <elf-symbol name='devlink_health_reporter_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x850bb6db'/>
+      <elf-symbol name='devlink_health_reporter_priv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe40bb23e'/>
+      <elf-symbol name='devlink_health_reporter_state_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b4509dd'/>
+      <elf-symbol name='devlink_region_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x64afc809'/>
+      <elf-symbol name='devlink_region_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa410a295'/>
+      <elf-symbol name='devlink_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbca68588'/>
+      <elf-symbol name='devlink_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x998af584'/>
+      <elf-symbol name='devm_add_action' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2ad3e3c3'/>
+      <elf-symbol name='devm_alloc_etherdev_mqs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a966ec9'/>
+      <elf-symbol name='devm_backlight_device_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c7941db'/>
+      <elf-symbol name='devm_backlight_device_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79af553c'/>
+      <elf-symbol name='devm_bitmap_zalloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x247c462'/>
+      <elf-symbol name='devm_blk_ksm_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3621a862'/>
+      <elf-symbol name='devm_clk_bulk_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xac999271'/>
+      <elf-symbol name='devm_clk_bulk_get_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x239c4a55'/>
+      <elf-symbol name='devm_clk_bulk_get_optional' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcda62a71'/>
+      <elf-symbol name='devm_clk_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe220ecdd'/>
+      <elf-symbol name='devm_clk_get_optional' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xec66894d'/>
+      <elf-symbol name='devm_clk_get_optional_enabled' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x141011a9'/>
+      <elf-symbol name='devm_clk_hw_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d9d647a'/>
+      <elf-symbol name='devm_clk_hw_register_clkdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe68d873b'/>
+      <elf-symbol name='devm_clk_hw_register_fixed_factor' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56a35db1'/>
+      <elf-symbol name='devm_clk_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbf00fa59'/>
+      <elf-symbol name='devm_clk_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfad08471'/>
+      <elf-symbol name='devm_devfreq_add_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7d5c9c5'/>
+      <elf-symbol name='devm_devfreq_event_add_edev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf8cd5ff'/>
+      <elf-symbol name='devm_devfreq_register_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd91495d0'/>
+      <elf-symbol name='devm_devfreq_register_opp_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf768610e'/>
+      <elf-symbol name='devm_devfreq_remove_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb20acf35'/>
+      <elf-symbol name='devm_devfreq_unregister_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa4854c42'/>
+      <elf-symbol name='devm_devfreq_unregister_opp_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaeedc504'/>
+      <elf-symbol name='devm_device_add_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x78c50e4e'/>
+      <elf-symbol name='devm_device_add_groups' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7aa3045f'/>
+      <elf-symbol name='devm_device_remove_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4a64f8f'/>
+      <elf-symbol name='devm_drm_panel_bridge_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5361758e'/>
+      <elf-symbol name='devm_drm_panel_bridge_add_typed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41cc8cb5'/>
+      <elf-symbol name='devm_extcon_dev_allocate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5f6196f6'/>
+      <elf-symbol name='devm_extcon_dev_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2cca347f'/>
+      <elf-symbol name='devm_extcon_dev_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x74c523a5'/>
+      <elf-symbol name='devm_extcon_register_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7a7ced9'/>
+      <elf-symbol name='devm_extcon_register_notifier_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe1d01646'/>
+      <elf-symbol name='devm_free_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xab26e14f'/>
+      <elf-symbol name='devm_fwnode_gpiod_get_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e1552b3'/>
+      <elf-symbol name='devm_fwnode_pwm_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1083d05'/>
+      <elf-symbol name='devm_gen_pool_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8200cfb3'/>
+      <elf-symbol name='devm_get_clk_from_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8a93e7e'/>
+      <elf-symbol name='devm_get_free_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8cbb5d44'/>
+      <elf-symbol name='devm_gpio_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72cad94c'/>
+      <elf-symbol name='devm_gpio_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb78ed138'/>
+      <elf-symbol name='devm_gpio_request_one' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32e96165'/>
+      <elf-symbol name='devm_gpiochip_add_data_with_key' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25e33fb5'/>
+      <elf-symbol name='devm_gpiod_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xac78392'/>
+      <elf-symbol name='devm_gpiod_get_array' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb78fa5ad'/>
+      <elf-symbol name='devm_gpiod_get_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47a0d656'/>
+      <elf-symbol name='devm_gpiod_get_index_optional' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8913ff1'/>
+      <elf-symbol name='devm_gpiod_get_optional' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe94205ce'/>
+      <elf-symbol name='devm_gpiod_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf257109'/>
+      <elf-symbol name='devm_gpiod_put_array' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe323c984'/>
+      <elf-symbol name='devm_hwrng_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x16c3c685'/>
+      <elf-symbol name='devm_hwspin_lock_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36334b85'/>
+      <elf-symbol name='devm_hwspin_lock_request_specific' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe683be26'/>
+      <elf-symbol name='devm_hwspin_lock_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd57d05a'/>
+      <elf-symbol name='devm_i2c_new_dummy_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x71184c66'/>
+      <elf-symbol name='devm_iio_channel_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4a80079'/>
+      <elf-symbol name='devm_iio_channel_get_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2bf32454'/>
+      <elf-symbol name='devm_iio_device_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99e72c1c'/>
+      <elf-symbol name='devm_iio_kfifo_buffer_setup_ext' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x95ec2851'/>
+      <elf-symbol name='devm_iio_triggered_buffer_setup_ext' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84093fd3'/>
+      <elf-symbol name='devm_input_allocate_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd940616d'/>
+      <elf-symbol name='devm_ioremap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x31f4adef'/>
+      <elf-symbol name='devm_ioremap_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x30516c87'/>
+      <elf-symbol name='devm_ioremap_wc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63bf8485'/>
+      <elf-symbol name='devm_iounmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x335b044c'/>
+      <elf-symbol name='devm_irq_alloc_generic_chip' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1add69eb'/>
+      <elf-symbol name='devm_irq_setup_generic_chip' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x22f9109e'/>
+      <elf-symbol name='devm_kasprintf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x930f58f8'/>
+      <elf-symbol name='devm_kfree' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x53cc1237'/>
+      <elf-symbol name='devm_kmalloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8dbcad91'/>
+      <elf-symbol name='devm_kmemdup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x140ecd94'/>
+      <elf-symbol name='devm_krealloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf09d9e1d'/>
+      <elf-symbol name='devm_kstrdup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa2bf0dd'/>
+      <elf-symbol name='devm_kstrdup_const' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa63842c8'/>
+      <elf-symbol name='devm_kvasprintf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbdf4e607'/>
+      <elf-symbol name='devm_led_classdev_register_ext' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69a8d917'/>
+      <elf-symbol name='devm_led_classdev_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x53113513'/>
+      <elf-symbol name='devm_mbox_controller_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x163aaaa7'/>
+      <elf-symbol name='devm_mdiobus_alloc_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c2dda4d'/>
+      <elf-symbol name='devm_memremap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x141fa271'/>
+      <elf-symbol name='devm_memunmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xefbaf87d'/>
+      <elf-symbol name='devm_mfd_add_devices' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d59838e'/>
+      <elf-symbol name='devm_nvmem_cell_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x824eae6'/>
+      <elf-symbol name='devm_nvmem_device_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91113400'/>
+      <elf-symbol name='devm_nvmem_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x146a70ae'/>
+      <elf-symbol name='devm_of_clk_add_hw_provider' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2adbfbda'/>
+      <elf-symbol name='devm_of_clk_del_provider' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47624ea'/>
+      <elf-symbol name='devm_of_icc_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe8a79031'/>
+      <elf-symbol name='devm_of_iio_channel_get_by_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc63a2463'/>
+      <elf-symbol name='devm_of_iomap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc789b156'/>
+      <elf-symbol name='devm_of_phy_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66e6f5a4'/>
+      <elf-symbol name='devm_of_phy_get_by_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x853d2753'/>
+      <elf-symbol name='devm_of_platform_populate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe74e115b'/>
+      <elf-symbol name='devm_of_pwm_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c6c580e'/>
+      <elf-symbol name='devm_pci_alloc_host_bridge' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9618c53d'/>
+      <elf-symbol name='devm_pci_remap_cfg_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2a0c1626'/>
+      <elf-symbol name='devm_pci_remap_cfgspace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6cf17398'/>
+      <elf-symbol name='devm_phy_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4976235b'/>
+      <elf-symbol name='devm_phy_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe5a76bd3'/>
+      <elf-symbol name='devm_phy_optional_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa24d9b0'/>
+      <elf-symbol name='devm_phy_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf7be591e'/>
+      <elf-symbol name='devm_pinctrl_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9d7c6324'/>
+      <elf-symbol name='devm_pinctrl_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5f9785d0'/>
+      <elf-symbol name='devm_pinctrl_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc89e6b9f'/>
+      <elf-symbol name='devm_pinctrl_register_and_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x346d9da3'/>
+      <elf-symbol name='devm_platform_get_and_ioremap_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x867e24a6'/>
+      <elf-symbol name='devm_platform_ioremap_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25a0672a'/>
+      <elf-symbol name='devm_platform_ioremap_resource_byname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd89f4caf'/>
+      <elf-symbol name='devm_pm_clk_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb0fa10bc'/>
+      <elf-symbol name='devm_pm_opp_of_add_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5a2049f5'/>
+      <elf-symbol name='devm_pm_opp_set_clkname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ed5f6f5'/>
+      <elf-symbol name='devm_pm_opp_set_regulators' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b9572c'/>
+      <elf-symbol name='devm_pm_opp_set_supported_hw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x50ee07e0'/>
+      <elf-symbol name='devm_pm_runtime_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6440835'/>
+      <elf-symbol name='devm_power_supply_get_by_phandle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x71406826'/>
+      <elf-symbol name='devm_power_supply_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73f6be50'/>
+      <elf-symbol name='devm_pwm_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x795bbc1e'/>
+      <elf-symbol name='devm_pwmchip_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x117d6c4e'/>
+      <elf-symbol name='devm_qcom_smem_state_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa7138795'/>
+      <elf-symbol name='devm_rc_allocate_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x52cee032'/>
+      <elf-symbol name='devm_rc_register_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84ec56fd'/>
+      <elf-symbol name='devm_regmap_add_irq_chip' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40690809'/>
+      <elf-symbol name='devm_regmap_del_irq_chip' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf94d334'/>
+      <elf-symbol name='devm_regmap_field_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x563fe77c'/>
+      <elf-symbol name='devm_regmap_field_bulk_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd53ff9a'/>
+      <elf-symbol name='devm_regulator_bulk_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf7c6525f'/>
+      <elf-symbol name='devm_regulator_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4adae8ee'/>
+      <elf-symbol name='devm_regulator_get_exclusive' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa181745e'/>
+      <elf-symbol name='devm_regulator_get_optional' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf1210e3'/>
+      <elf-symbol name='devm_regulator_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d48abd9'/>
+      <elf-symbol name='devm_regulator_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc151236f'/>
+      <elf-symbol name='devm_regulator_register_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa1f5c258'/>
+      <elf-symbol name='devm_regulator_unregister_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x83bce697'/>
+      <elf-symbol name='devm_release_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb306128'/>
+      <elf-symbol name='devm_remove_action' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e69a909'/>
+      <elf-symbol name='devm_request_any_context_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x366cbccd'/>
+      <elf-symbol name='devm_request_pci_bus_resources' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3b1e0f6'/>
+      <elf-symbol name='devm_request_threaded_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x694339ce'/>
+      <elf-symbol name='devm_reset_control_array_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcba0142e'/>
+      <elf-symbol name='devm_reset_controller_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd80c5d08'/>
+      <elf-symbol name='devm_rtc_allocate_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x909f5ec7'/>
+      <elf-symbol name='devm_rtc_device_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x42490872'/>
+      <elf-symbol name='devm_rtc_nvmem_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4bbcb5a'/>
+      <elf-symbol name='devm_snd_dmaengine_pcm_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8768dc5'/>
+      <elf-symbol name='devm_snd_soc_register_card' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x607df5bd'/>
+      <elf-symbol name='devm_snd_soc_register_component' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf7560d7c'/>
+      <elf-symbol name='devm_spi_mem_dirmap_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb3e42fa7'/>
+      <elf-symbol name='devm_spi_register_controller' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8bd9b405'/>
+      <elf-symbol name='devm_thermal_of_cooling_device_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5a0011d'/>
+      <elf-symbol name='devm_thermal_zone_of_sensor_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2175282e'/>
+      <elf-symbol name='devm_thermal_zone_of_sensor_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde006d67'/>
+      <elf-symbol name='devm_usb_get_phy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c5a30a7'/>
+      <elf-symbol name='devm_usb_get_phy_by_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x93300304'/>
+      <elf-symbol name='devm_usb_get_phy_by_phandle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe58f2424'/>
+      <elf-symbol name='devm_watchdog_register_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3151ecf'/>
+      <elf-symbol name='devres_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee792c9c'/>
+      <elf-symbol name='devres_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9deeea92'/>
+      <elf-symbol name='devres_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe93e49c3'/>
+      <elf-symbol name='devres_open_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e3598c6'/>
+      <elf-symbol name='devres_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x42b30b1d'/>
+      <elf-symbol name='devres_release_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9fb492e7'/>
+      <elf-symbol name='disable_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ce4ca6f'/>
+      <elf-symbol name='disable_irq_nosync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x27bbf221'/>
+      <elf-symbol name='disable_percpu_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf21e1f9b'/>
+      <elf-symbol name='discard_new_inode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae1567fb'/>
+      <elf-symbol name='disk_end_io_acct' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdc9d508b'/>
+      <elf-symbol name='disk_stack_limits' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80b22036'/>
+      <elf-symbol name='disk_start_io_acct' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfaf84ca3'/>
+      <elf-symbol name='display_timings_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b4c240a'/>
+      <elf-symbol name='divider_determine_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x958b70dd'/>
+      <elf-symbol name='divider_get_val' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e798ffb'/>
+      <elf-symbol name='divider_recalc_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaed8e548'/>
+      <elf-symbol name='divider_ro_round_rate_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f8b7fae'/>
+      <elf-symbol name='divider_round_rate_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x904f93ae'/>
+      <elf-symbol name='dma_alloc_attrs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9fcc6d5'/>
+      <elf-symbol name='dma_alloc_noncontiguous' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeda21aff'/>
+      <elf-symbol name='dma_alloc_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa12e830c'/>
+      <elf-symbol name='dma_async_device_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf4ce133d'/>
+      <elf-symbol name='dma_async_device_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5fe2f484'/>
+      <elf-symbol name='dma_async_tx_descriptor_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf93d86e'/>
+      <elf-symbol name='dma_buf_attach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef238a57'/>
+      <elf-symbol name='dma_buf_begin_cpu_access' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xac6a1de'/>
+      <elf-symbol name='dma_buf_begin_cpu_access_partial' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae83ea02'/>
+      <elf-symbol name='dma_buf_detach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfbecc63d'/>
+      <elf-symbol name='dma_buf_dynamic_attach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89bb3332'/>
+      <elf-symbol name='dma_buf_end_cpu_access' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdda3c484'/>
+      <elf-symbol name='dma_buf_end_cpu_access_partial' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x936d886b'/>
+      <elf-symbol name='dma_buf_export' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e0787a2'/>
+      <elf-symbol name='dma_buf_fd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea5123f5'/>
+      <elf-symbol name='dma_buf_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea788350'/>
+      <elf-symbol name='dma_buf_get_flags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7541b7cf'/>
+      <elf-symbol name='dma_buf_map_attachment' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89be51a8'/>
+      <elf-symbol name='dma_buf_mmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56b82cec'/>
+      <elf-symbol name='dma_buf_move_notify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8c72ffe'/>
+      <elf-symbol name='dma_buf_pin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8bbda20'/>
+      <elf-symbol name='dma_buf_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6d21b42e'/>
+      <elf-symbol name='dma_buf_set_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x71b77660'/>
+      <elf-symbol name='dma_buf_unmap_attachment' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc117172c'/>
+      <elf-symbol name='dma_buf_unpin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa38e2e3'/>
+      <elf-symbol name='dma_buf_vmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6bf2aa3'/>
+      <elf-symbol name='dma_buf_vunmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51abb3d7'/>
+      <elf-symbol name='dma_fence_add_callback' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e21c9a1'/>
+      <elf-symbol name='dma_fence_array_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ab45d25'/>
+      <elf-symbol name='dma_fence_chain_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2ea52d3e'/>
+      <elf-symbol name='dma_fence_chain_walk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb290ada'/>
+      <elf-symbol name='dma_fence_context_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x14605535'/>
+      <elf-symbol name='dma_fence_default_wait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x350ea558'/>
+      <elf-symbol name='dma_fence_enable_sw_signaling' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d9ca0e6'/>
+      <elf-symbol name='dma_fence_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdd8166a1'/>
+      <elf-symbol name='dma_fence_get_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e0b1deb'/>
+      <elf-symbol name='dma_fence_get_stub' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x13f26ae'/>
+      <elf-symbol name='dma_fence_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x16dee44d'/>
+      <elf-symbol name='dma_fence_match_context' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xacaa4c72'/>
+      <elf-symbol name='dma_fence_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe123f3d9'/>
+      <elf-symbol name='dma_fence_remove_callback' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b20fb95'/>
+      <elf-symbol name='dma_fence_signal' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x731c4a9c'/>
+      <elf-symbol name='dma_fence_signal_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3d02cd70'/>
+      <elf-symbol name='dma_fence_signal_timestamp_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8455e3a7'/>
+      <elf-symbol name='dma_fence_wait_any_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51d58e8'/>
+      <elf-symbol name='dma_fence_wait_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x98c039dc'/>
+      <elf-symbol name='dma_free_attrs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc0b30a2e'/>
+      <elf-symbol name='dma_free_noncontiguous' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1e9b26b'/>
+      <elf-symbol name='dma_free_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb0cddc1f'/>
+      <elf-symbol name='dma_get_any_slave_channel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x21c97b60'/>
+      <elf-symbol name='dma_get_required_mask' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32e3c051'/>
+      <elf-symbol name='dma_get_sgtable_attrs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5cf884a'/>
+      <elf-symbol name='dma_get_slave_caps' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6db0e65'/>
+      <elf-symbol name='dma_get_slave_channel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51bb5846'/>
+      <elf-symbol name='dma_heap_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56178a4b'/>
+      <elf-symbol name='dma_heap_buffer_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x328c4610'/>
+      <elf-symbol name='dma_heap_buffer_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88f95537'/>
+      <elf-symbol name='dma_heap_bufferfd_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ba677bf'/>
+      <elf-symbol name='dma_heap_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeff75c0b'/>
+      <elf-symbol name='dma_heap_get_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84e7189e'/>
+      <elf-symbol name='dma_heap_get_drvdata' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf39b6569'/>
+      <elf-symbol name='dma_heap_get_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed3a3cb3'/>
+      <elf-symbol name='dma_heap_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67e2f47'/>
+      <elf-symbol name='dma_map_page_attrs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5979ed16'/>
+      <elf-symbol name='dma_map_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54fa6916'/>
+      <elf-symbol name='dma_map_sg_attrs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x30def186'/>
+      <elf-symbol name='dma_map_sgtable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xccda7d97'/>
+      <elf-symbol name='dma_max_mapping_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1e45d2bd'/>
+      <elf-symbol name='dma_mmap_attrs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe79106a'/>
+      <elf-symbol name='dma_pool_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x678b96ec'/>
+      <elf-symbol name='dma_pool_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x92f93fe2'/>
+      <elf-symbol name='dma_pool_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5aa7165'/>
+      <elf-symbol name='dma_pool_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2f7754a8'/>
+      <elf-symbol name='dma_release_channel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a986e86'/>
+      <elf-symbol name='dma_request_chan' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9f495c9'/>
+      <elf-symbol name='dma_resv_add_excl_fence' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf1ee99cc'/>
+      <elf-symbol name='dma_resv_add_shared_fence' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7097656'/>
+      <elf-symbol name='dma_resv_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2aa42925'/>
+      <elf-symbol name='dma_resv_get_fences' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6845b6e2'/>
+      <elf-symbol name='dma_resv_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66841bef'/>
+      <elf-symbol name='dma_resv_reserve_shared' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ac08c03'/>
+      <elf-symbol name='dma_resv_test_signaled' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x726544ce'/>
+      <elf-symbol name='dma_resv_wait_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x98536ab4'/>
+      <elf-symbol name='dma_run_dependencies' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6171de51'/>
+      <elf-symbol name='dma_set_coherent_mask' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54f4396b'/>
+      <elf-symbol name='dma_set_mask' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9347eaf8'/>
+      <elf-symbol name='dma_supported' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe14d2f49'/>
+      <elf-symbol name='dma_sync_sg_for_cpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x938a3b51'/>
+      <elf-symbol name='dma_sync_sg_for_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a602182'/>
+      <elf-symbol name='dma_sync_single_for_cpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9787376'/>
+      <elf-symbol name='dma_sync_single_for_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ae1eec5'/>
+      <elf-symbol name='dma_sync_wait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e65f160'/>
+      <elf-symbol name='dma_unmap_page_attrs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8ac9ba6'/>
+      <elf-symbol name='dma_unmap_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea5a0383'/>
+      <elf-symbol name='dma_unmap_sg_attrs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x288c91fe'/>
+      <elf-symbol name='dma_vmap_noncontiguous' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc490b33c'/>
+      <elf-symbol name='dma_vunmap_noncontiguous' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4766d05f'/>
+      <elf-symbol name='dmabuf_page_pool_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb47aa711'/>
+      <elf-symbol name='dmabuf_page_pool_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcefab871'/>
+      <elf-symbol name='dmabuf_page_pool_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa03f7916'/>
+      <elf-symbol name='dmabuf_page_pool_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7243bd10'/>
+      <elf-symbol name='dmaengine_get_unmap_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56c384ea'/>
+      <elf-symbol name='dmaengine_unmap_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb393aa76'/>
+      <elf-symbol name='dmaenginem_async_device_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf4f4795'/>
+      <elf-symbol name='dmam_alloc_attrs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x659ed1eb'/>
+      <elf-symbol name='dmam_free_coherent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x53062462'/>
+      <elf-symbol name='dmam_pool_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2394ed7d'/>
+      <elf-symbol name='do_SAK' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43e4fe05'/>
+      <elf-symbol name='do_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x952664c5'/>
+      <elf-symbol name='do_trace_netlink_extack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6d2458e'/>
+      <elf-symbol name='do_trace_rcu_torture_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x92db8f68'/>
+      <elf-symbol name='do_traversal_all_lruvec' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2481035a'/>
+      <elf-symbol name='do_wait_intr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b2f27fb'/>
+      <elf-symbol name='do_wait_intr_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5102a30b'/>
+      <elf-symbol name='double_rq_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1519a6aa'/>
+      <elf-symbol name='down' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6626afca'/>
+      <elf-symbol name='down_interruptible' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6bd0e573'/>
+      <elf-symbol name='down_killable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36b6ebbf'/>
+      <elf-symbol name='down_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3355da1c'/>
+      <elf-symbol name='down_read_killable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2604b7c2'/>
+      <elf-symbol name='down_read_trylock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88f5cdef'/>
+      <elf-symbol name='down_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x92e683f5'/>
+      <elf-symbol name='down_trylock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe9ffc063'/>
+      <elf-symbol name='down_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28ed2847'/>
+      <elf-symbol name='down_write_killable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xced2405e'/>
+      <elf-symbol name='down_write_trylock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0e551cc'/>
+      <elf-symbol name='downgrade_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd486fb9c'/>
+      <elf-symbol name='dput' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5898130b'/>
+      <elf-symbol name='dqget' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96cf2bd0'/>
+      <elf-symbol name='dql_completed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa00aca2a'/>
+      <elf-symbol name='dql_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ea25709'/>
+      <elf-symbol name='dqput' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad5718c3'/>
+      <elf-symbol name='dquot_acquire' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd87509ba'/>
+      <elf-symbol name='dquot_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41d3ebef'/>
+      <elf-symbol name='dquot_alloc_inode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66464e1'/>
+      <elf-symbol name='dquot_claim_space_nodirty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8f6a0a39'/>
+      <elf-symbol name='dquot_commit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca80dadf'/>
+      <elf-symbol name='dquot_commit_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6d312214'/>
+      <elf-symbol name='dquot_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5f8ae7ad'/>
+      <elf-symbol name='dquot_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c37137a'/>
+      <elf-symbol name='dquot_drop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a45805c'/>
+      <elf-symbol name='dquot_file_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61127d13'/>
+      <elf-symbol name='dquot_free_inode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb371a37e'/>
+      <elf-symbol name='dquot_get_dqblk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf92031bd'/>
+      <elf-symbol name='dquot_get_next_dqblk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x562c2759'/>
+      <elf-symbol name='dquot_get_next_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x555d0b2'/>
+      <elf-symbol name='dquot_get_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57e67653'/>
+      <elf-symbol name='dquot_initialize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa2962657'/>
+      <elf-symbol name='dquot_initialize_needed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcdd7128'/>
+      <elf-symbol name='dquot_load_quota_inode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x70728594'/>
+      <elf-symbol name='dquot_mark_dquot_dirty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5fefa5bd'/>
+      <elf-symbol name='dquot_quota_off' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ab25dd0'/>
+      <elf-symbol name='dquot_quota_on' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa35ff31e'/>
+      <elf-symbol name='dquot_quota_on_mount' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa2d689a9'/>
+      <elf-symbol name='dquot_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2f17c746'/>
+      <elf-symbol name='dquot_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c14c62e'/>
+      <elf-symbol name='dquot_set_dqblk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x396e8c77'/>
+      <elf-symbol name='dquot_set_dqinfo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79030c21'/>
+      <elf-symbol name='dquot_transfer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89c101c'/>
+      <elf-symbol name='dquot_writeback_dquots' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcabf92e3'/>
+      <elf-symbol name='drain_workqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa38602cd'/>
+      <elf-symbol name='driver_attach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda18d024'/>
+      <elf-symbol name='driver_create_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x98346697'/>
+      <elf-symbol name='driver_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c53419a'/>
+      <elf-symbol name='driver_find_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9bbb581e'/>
+      <elf-symbol name='driver_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x799ad5ad'/>
+      <elf-symbol name='driver_remove_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbacaae90'/>
+      <elf-symbol name='driver_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc281958'/>
+      <elf-symbol name='drm_add_edid_modes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40b5d0e'/>
+      <elf-symbol name='drm_add_modes_noedid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x908350ae'/>
+      <elf-symbol name='drm_any_plane_has_format' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8ffc0a2e'/>
+      <elf-symbol name='drm_aperture_remove_conflicting_pci_framebuffers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5d43525a'/>
+      <elf-symbol name='drm_atomic_add_affected_connectors' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd2b2d2d'/>
+      <elf-symbol name='drm_atomic_add_affected_planes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4b0ea564'/>
+      <elf-symbol name='drm_atomic_bridge_chain_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc4d97a37'/>
+      <elf-symbol name='drm_atomic_bridge_chain_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41f35f28'/>
+      <elf-symbol name='drm_atomic_bridge_chain_pre_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61f1eb3f'/>
+      <elf-symbol name='drm_atomic_commit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ff156d2'/>
+      <elf-symbol name='drm_atomic_get_connector_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x77e8406c'/>
+      <elf-symbol name='drm_atomic_get_crtc_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49669785'/>
+      <elf-symbol name='drm_atomic_get_new_bridge_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff7e86a9'/>
+      <elf-symbol name='drm_atomic_get_new_connector_for_encoder' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x81fc00ee'/>
+      <elf-symbol name='drm_atomic_get_old_connector_for_encoder' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x86d4e7b2'/>
+      <elf-symbol name='drm_atomic_get_plane_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x70492d3a'/>
+      <elf-symbol name='drm_atomic_get_private_obj_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbce6de0b'/>
+      <elf-symbol name='drm_atomic_helper_async_commit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59ec9207'/>
+      <elf-symbol name='drm_atomic_helper_bridge_destroy_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdabb33da'/>
+      <elf-symbol name='drm_atomic_helper_bridge_duplicate_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c368151'/>
+      <elf-symbol name='drm_atomic_helper_bridge_propagate_bus_fmt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x337465fc'/>
+      <elf-symbol name='drm_atomic_helper_bridge_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9844b43'/>
+      <elf-symbol name='drm_atomic_helper_check' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x70d78d7b'/>
+      <elf-symbol name='drm_atomic_helper_check_modeset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x687d3012'/>
+      <elf-symbol name='drm_atomic_helper_check_plane_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x82dfa8a8'/>
+      <elf-symbol name='drm_atomic_helper_check_planes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9d4f0cfd'/>
+      <elf-symbol name='drm_atomic_helper_cleanup_planes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6158226b'/>
+      <elf-symbol name='drm_atomic_helper_commit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x12fa8eff'/>
+      <elf-symbol name='drm_atomic_helper_commit_cleanup_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x600f0a9b'/>
+      <elf-symbol name='drm_atomic_helper_commit_duplicated_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x650bef6a'/>
+      <elf-symbol name='drm_atomic_helper_commit_hw_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65e2e6dd'/>
+      <elf-symbol name='drm_atomic_helper_commit_modeset_disables' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0c00091'/>
+      <elf-symbol name='drm_atomic_helper_commit_modeset_enables' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x74108658'/>
+      <elf-symbol name='drm_atomic_helper_commit_planes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd70c97a9'/>
+      <elf-symbol name='drm_atomic_helper_commit_tail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51556de7'/>
+      <elf-symbol name='drm_atomic_helper_commit_tail_rpm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60197786'/>
+      <elf-symbol name='drm_atomic_helper_connector_destroy_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8a72651'/>
+      <elf-symbol name='drm_atomic_helper_connector_duplicate_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9726cefa'/>
+      <elf-symbol name='drm_atomic_helper_connector_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc031e5b1'/>
+      <elf-symbol name='drm_atomic_helper_crtc_destroy_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd08d70eb'/>
+      <elf-symbol name='drm_atomic_helper_crtc_duplicate_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x937cde46'/>
+      <elf-symbol name='drm_atomic_helper_crtc_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a0e0f26'/>
+      <elf-symbol name='drm_atomic_helper_damage_merged' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdd1d58c7'/>
+      <elf-symbol name='drm_atomic_helper_dirtyfb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61ce3a7d'/>
+      <elf-symbol name='drm_atomic_helper_disable_plane' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8371a783'/>
+      <elf-symbol name='drm_atomic_helper_disable_planes_on_crtc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x22ec948a'/>
+      <elf-symbol name='drm_atomic_helper_duplicate_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9bf60251'/>
+      <elf-symbol name='drm_atomic_helper_fake_vblank' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6286d80e'/>
+      <elf-symbol name='drm_atomic_helper_page_flip' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x743552'/>
+      <elf-symbol name='drm_atomic_helper_plane_destroy_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ce91997'/>
+      <elf-symbol name='drm_atomic_helper_plane_duplicate_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1bb6d590'/>
+      <elf-symbol name='drm_atomic_helper_plane_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf46a4428'/>
+      <elf-symbol name='drm_atomic_helper_prepare_planes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0a99eb4'/>
+      <elf-symbol name='drm_atomic_helper_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef9a5427'/>
+      <elf-symbol name='drm_atomic_helper_set_config' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae9ee200'/>
+      <elf-symbol name='drm_atomic_helper_setup_commit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5a215bed'/>
+      <elf-symbol name='drm_atomic_helper_shutdown' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x313165d4'/>
+      <elf-symbol name='drm_atomic_helper_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63439553'/>
+      <elf-symbol name='drm_atomic_helper_swap_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4471a5f4'/>
+      <elf-symbol name='drm_atomic_helper_update_legacy_modeset_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf53ec9de'/>
+      <elf-symbol name='drm_atomic_helper_update_plane' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x462e17db'/>
+      <elf-symbol name='drm_atomic_helper_wait_for_dependencies' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34ab43a1'/>
+      <elf-symbol name='drm_atomic_helper_wait_for_fences' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4672c2cb'/>
+      <elf-symbol name='drm_atomic_helper_wait_for_flip_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9331749d'/>
+      <elf-symbol name='drm_atomic_helper_wait_for_vblanks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x528e34d6'/>
+      <elf-symbol name='drm_atomic_nonblocking_commit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd5b6860'/>
+      <elf-symbol name='drm_atomic_normalize_zpos' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc04cfd2e'/>
+      <elf-symbol name='drm_atomic_print_new_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa7a9336'/>
+      <elf-symbol name='drm_atomic_private_obj_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8eed34a3'/>
+      <elf-symbol name='drm_atomic_private_obj_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xefb8b3b5'/>
+      <elf-symbol name='drm_atomic_set_crtc_for_connector' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x75f2e902'/>
+      <elf-symbol name='drm_atomic_set_crtc_for_plane' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfff5aeb'/>
+      <elf-symbol name='drm_atomic_set_fb_for_plane' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c999882'/>
+      <elf-symbol name='drm_atomic_set_fence_for_plane' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf993fbb'/>
+      <elf-symbol name='drm_atomic_set_mode_for_crtc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x559d805d'/>
+      <elf-symbol name='drm_atomic_set_mode_prop_for_crtc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x292bab3c'/>
+      <elf-symbol name='drm_atomic_state_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9eb3bb97'/>
+      <elf-symbol name='drm_atomic_state_clear' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ea14526'/>
+      <elf-symbol name='drm_atomic_state_default_clear' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x74d2ce75'/>
+      <elf-symbol name='drm_atomic_state_default_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96ca1898'/>
+      <elf-symbol name='drm_atomic_state_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf457f051'/>
+      <elf-symbol name='drm_bridge_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x629a4a66'/>
+      <elf-symbol name='drm_bridge_attach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee2a9618'/>
+      <elf-symbol name='drm_bridge_chain_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2246963b'/>
+      <elf-symbol name='drm_bridge_chain_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdfe5a882'/>
+      <elf-symbol name='drm_bridge_chain_mode_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x381b7730'/>
+      <elf-symbol name='drm_bridge_chain_post_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4bfc6cde'/>
+      <elf-symbol name='drm_bridge_chain_pre_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x917e400b'/>
+      <elf-symbol name='drm_bridge_connector_disable_hpd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3547592'/>
+      <elf-symbol name='drm_bridge_connector_enable_hpd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdb1ef5f9'/>
+      <elf-symbol name='drm_bridge_connector_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c4558cb'/>
+      <elf-symbol name='drm_bridge_detect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5db0ede5'/>
+      <elf-symbol name='drm_bridge_hpd_notify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b603335'/>
+      <elf-symbol name='drm_bridge_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8bd98bbb'/>
+      <elf-symbol name='drm_bus_flags_from_videomode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad885165'/>
+      <elf-symbol name='drm_calc_timestamping_constants' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x848c75c5'/>
+      <elf-symbol name='drm_client_buffer_vmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x86b01c4d'/>
+      <elf-symbol name='drm_client_framebuffer_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0f0ad5f'/>
+      <elf-symbol name='drm_client_framebuffer_delete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x896a9bfb'/>
+      <elf-symbol name='drm_client_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x691f9bd2'/>
+      <elf-symbol name='drm_client_modeset_commit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb026f660'/>
+      <elf-symbol name='drm_client_modeset_commit_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0cf2404'/>
+      <elf-symbol name='drm_client_modeset_probe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda44744d'/>
+      <elf-symbol name='drm_client_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2506f847'/>
+      <elf-symbol name='drm_compat_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd7316bd'/>
+      <elf-symbol name='drm_connector_atomic_hdr_metadata_equal' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88420604'/>
+      <elf-symbol name='drm_connector_attach_content_protection_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3fdbab4'/>
+      <elf-symbol name='drm_connector_attach_content_type_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2a9c230a'/>
+      <elf-symbol name='drm_connector_attach_dp_subconnector_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ab55cda'/>
+      <elf-symbol name='drm_connector_attach_edid_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x12926fc7'/>
+      <elf-symbol name='drm_connector_attach_encoder' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2fc029bb'/>
+      <elf-symbol name='drm_connector_attach_hdr_output_metadata_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ac2ebbe'/>
+      <elf-symbol name='drm_connector_attach_max_bpc_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36a26de0'/>
+      <elf-symbol name='drm_connector_attach_vrr_capable_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff9cc01a'/>
+      <elf-symbol name='drm_connector_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8aae854'/>
+      <elf-symbol name='drm_connector_has_possible_encoder' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x64f615db'/>
+      <elf-symbol name='drm_connector_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7717512f'/>
+      <elf-symbol name='drm_connector_init_with_ddc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe6d789b'/>
+      <elf-symbol name='drm_connector_list_iter_begin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xada8d962'/>
+      <elf-symbol name='drm_connector_list_iter_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x394911be'/>
+      <elf-symbol name='drm_connector_list_iter_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6570b417'/>
+      <elf-symbol name='drm_connector_list_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd51c5df5'/>
+      <elf-symbol name='drm_connector_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd49d4d54'/>
+      <elf-symbol name='drm_connector_set_panel_orientation' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb925261a'/>
+      <elf-symbol name='drm_connector_set_path_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b664b0e'/>
+      <elf-symbol name='drm_connector_set_vrr_capable_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26711c76'/>
+      <elf-symbol name='drm_connector_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeca7728c'/>
+      <elf-symbol name='drm_connector_update_edid_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3aa4392f'/>
+      <elf-symbol name='drm_crtc_accurate_vblank_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x14255a2'/>
+      <elf-symbol name='drm_crtc_add_crc_entry' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc5e006fe'/>
+      <elf-symbol name='drm_crtc_arm_vblank_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e08fe48'/>
+      <elf-symbol name='drm_crtc_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc36c47b7'/>
+      <elf-symbol name='drm_crtc_enable_color_mgmt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2af445b'/>
+      <elf-symbol name='drm_crtc_from_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbad8586c'/>
+      <elf-symbol name='drm_crtc_handle_vblank' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24397759'/>
+      <elf-symbol name='drm_crtc_helper_set_config' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x38004cce'/>
+      <elf-symbol name='drm_crtc_helper_set_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7b0bb727'/>
+      <elf-symbol name='drm_crtc_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8423f09'/>
+      <elf-symbol name='drm_crtc_init_with_planes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x955330a3'/>
+      <elf-symbol name='drm_crtc_send_vblank_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x241f80f0'/>
+      <elf-symbol name='drm_crtc_set_max_vblank_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6d11da'/>
+      <elf-symbol name='drm_crtc_vblank_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x82a457bc'/>
+      <elf-symbol name='drm_crtc_vblank_count_and_time' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51aa5d71'/>
+      <elf-symbol name='drm_crtc_vblank_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x797c2b8d'/>
+      <elf-symbol name='drm_crtc_vblank_helper_get_vblank_timestamp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x76e2ec9b'/>
+      <elf-symbol name='drm_crtc_vblank_off' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9569d83'/>
+      <elf-symbol name='drm_crtc_vblank_on' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfaebc925'/>
+      <elf-symbol name='drm_crtc_vblank_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c18eb1'/>
+      <elf-symbol name='drm_crtc_vblank_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc06c28c6'/>
+      <elf-symbol name='drm_crtc_vblank_waitqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c03d167'/>
+      <elf-symbol name='drm_crtc_wait_one_vblank' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c19ff8d'/>
+      <elf-symbol name='drm_cvt_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x23e674f6'/>
+      <elf-symbol name='drm_debugfs_create_files' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x855a9734'/>
+      <elf-symbol name='drm_default_rgb_quant_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65702bd6'/>
+      <elf-symbol name='drm_detect_hdmi_monitor' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65e86ac'/>
+      <elf-symbol name='drm_detect_monitor_audio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ffcdfdb'/>
+      <elf-symbol name='drm_dev_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x13c9f56e'/>
+      <elf-symbol name='drm_dev_dbg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcee74e63'/>
+      <elf-symbol name='drm_dev_enter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5551d4bb'/>
+      <elf-symbol name='drm_dev_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe8a034df'/>
+      <elf-symbol name='drm_dev_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd04f587f'/>
+      <elf-symbol name='drm_dev_printk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x92ff2d4b'/>
+      <elf-symbol name='drm_dev_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x770fd07c'/>
+      <elf-symbol name='drm_dev_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6d4adf0d'/>
+      <elf-symbol name='drm_dev_set_unique' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb84d3f30'/>
+      <elf-symbol name='drm_dev_unplug' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96f69224'/>
+      <elf-symbol name='drm_dev_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed956012'/>
+      <elf-symbol name='drm_display_info_set_bus_formats' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x31118ae8'/>
+      <elf-symbol name='drm_display_mode_from_videomode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66cf2f64'/>
+      <elf-symbol name='drm_display_mode_to_videomode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe9f72f3'/>
+      <elf-symbol name='drm_do_get_edid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5fa5de0'/>
+      <elf-symbol name='drm_dp_atomic_find_vcpi_slots' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x29bdc38'/>
+      <elf-symbol name='drm_dp_atomic_release_vcpi_slots' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66828479'/>
+      <elf-symbol name='drm_dp_aux_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x828b34a6'/>
+      <elf-symbol name='drm_dp_aux_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f3ff8c1'/>
+      <elf-symbol name='drm_dp_aux_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x598edd4d'/>
+      <elf-symbol name='drm_dp_bw_code_to_link_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73011db0'/>
+      <elf-symbol name='drm_dp_calc_pbn_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8ca2d9e4'/>
+      <elf-symbol name='drm_dp_channel_eq_ok' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xedcf81ce'/>
+      <elf-symbol name='drm_dp_check_act_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6f60ec'/>
+      <elf-symbol name='drm_dp_clock_recovery_ok' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d701329'/>
+      <elf-symbol name='drm_dp_downstream_debug' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7fd2b4f'/>
+      <elf-symbol name='drm_dp_dpcd_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9d700036'/>
+      <elf-symbol name='drm_dp_dpcd_read_link_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x748aebe1'/>
+      <elf-symbol name='drm_dp_dpcd_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xffa7d9a1'/>
+      <elf-symbol name='drm_dp_dsc_sink_line_buf_depth' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c49551'/>
+      <elf-symbol name='drm_dp_dsc_sink_max_slice_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6615069e'/>
+      <elf-symbol name='drm_dp_find_vcpi_slots' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x17f17861'/>
+      <elf-symbol name='drm_dp_get_adjust_request_pre_emphasis' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x582f248e'/>
+      <elf-symbol name='drm_dp_get_adjust_request_voltage' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc5c99a79'/>
+      <elf-symbol name='drm_dp_link_rate_to_bw_code' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26815dbc'/>
+      <elf-symbol name='drm_dp_link_train_channel_eq_delay' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7b094509'/>
+      <elf-symbol name='drm_dp_link_train_clock_recovery_delay' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ef7af59'/>
+      <elf-symbol name='drm_dp_mst_allocate_vcpi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x561afe77'/>
+      <elf-symbol name='drm_dp_mst_deallocate_vcpi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e892d1f'/>
+      <elf-symbol name='drm_dp_mst_detect_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x23ef06a4'/>
+      <elf-symbol name='drm_dp_mst_dump_topology' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x762196b9'/>
+      <elf-symbol name='drm_dp_mst_get_edid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x320a8a74'/>
+      <elf-symbol name='drm_dp_mst_get_port_malloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1a5871d'/>
+      <elf-symbol name='drm_dp_mst_hpd_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcb20faa'/>
+      <elf-symbol name='drm_dp_mst_put_port_malloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4af28246'/>
+      <elf-symbol name='drm_dp_mst_reset_vcpi_slots' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xddeb485a'/>
+      <elf-symbol name='drm_dp_mst_topology_mgr_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e7e3558'/>
+      <elf-symbol name='drm_dp_mst_topology_mgr_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbb9a6cd9'/>
+      <elf-symbol name='drm_dp_mst_topology_mgr_set_mst' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3dafffb8'/>
+      <elf-symbol name='drm_dp_read_dpcd_caps' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbdaac002'/>
+      <elf-symbol name='drm_dp_read_sink_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9de14208'/>
+      <elf-symbol name='drm_dp_send_power_updown_phy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x13dda18a'/>
+      <elf-symbol name='drm_dp_set_subconnector_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe1b17593'/>
+      <elf-symbol name='drm_dp_update_payload_part1' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x312f9d4b'/>
+      <elf-symbol name='drm_dp_update_payload_part2' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c6a4c8e'/>
+      <elf-symbol name='drm_dsc_compute_rc_parameters' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe12bcb9'/>
+      <elf-symbol name='drm_dsc_pps_payload_pack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x58d8fcaa'/>
+      <elf-symbol name='drm_edid_block_valid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd13f9985'/>
+      <elf-symbol name='drm_edid_duplicate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe8362900'/>
+      <elf-symbol name='drm_edid_get_monitor_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd60baf5a'/>
+      <elf-symbol name='drm_edid_header_is_valid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x81992424'/>
+      <elf-symbol name='drm_edid_is_valid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x599dea05'/>
+      <elf-symbol name='drm_edid_to_sad' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e7e8009'/>
+      <elf-symbol name='drm_edid_to_speaker_allocation' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfecc8840'/>
+      <elf-symbol name='drm_encoder_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe3243960'/>
+      <elf-symbol name='drm_encoder_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5794a2f2'/>
+      <elf-symbol name='drm_event_cancel_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8a5ce09'/>
+      <elf-symbol name='drm_event_reserve_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b305fce'/>
+      <elf-symbol name='drm_event_reserve_init_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbf023861'/>
+      <elf-symbol name='drm_fb_cma_get_gem_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4e6fdcf'/>
+      <elf-symbol name='drm_fb_cma_get_gem_obj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x75aee75b'/>
+      <elf-symbol name='drm_flip_work_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd60ff1c2'/>
+      <elf-symbol name='drm_flip_work_commit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24a2ed2c'/>
+      <elf-symbol name='drm_flip_work_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x737100b1'/>
+      <elf-symbol name='drm_flip_work_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdcb59b84'/>
+      <elf-symbol name='drm_format_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ef2f78e'/>
+      <elf-symbol name='drm_framebuffer_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5b980b1'/>
+      <elf-symbol name='drm_framebuffer_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41266544'/>
+      <elf-symbol name='drm_framebuffer_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd29fffb9'/>
+      <elf-symbol name='drm_framebuffer_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60137b29'/>
+      <elf-symbol name='drm_framebuffer_unregister_private' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84d4abec'/>
+      <elf-symbol name='drm_gem_cleanup_shadow_fb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x53b5f541'/>
+      <elf-symbol name='drm_gem_cma_dumb_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8065dc3c'/>
+      <elf-symbol name='drm_gem_cma_prime_import_sg_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60b630d5'/>
+      <elf-symbol name='drm_gem_cma_vmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28a02259'/>
+      <elf-symbol name='drm_gem_create_mmap_offset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3096b65a'/>
+      <elf-symbol name='drm_gem_dmabuf_mmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x39de8744'/>
+      <elf-symbol name='drm_gem_dmabuf_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1755b11'/>
+      <elf-symbol name='drm_gem_dmabuf_vmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5830b37'/>
+      <elf-symbol name='drm_gem_dmabuf_vunmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5293491'/>
+      <elf-symbol name='drm_gem_fb_begin_cpu_access' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8257085'/>
+      <elf-symbol name='drm_gem_fb_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8785ef32'/>
+      <elf-symbol name='drm_gem_fb_create_handle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9833b3b5'/>
+      <elf-symbol name='drm_gem_fb_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6d312776'/>
+      <elf-symbol name='drm_gem_fb_get_obj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6bee7f12'/>
+      <elf-symbol name='drm_gem_fb_vmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5eaae50'/>
+      <elf-symbol name='drm_gem_fb_vunmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x476605f'/>
+      <elf-symbol name='drm_gem_fence_array_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3e50b109'/>
+      <elf-symbol name='drm_gem_fence_array_add_implicit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee5caf31'/>
+      <elf-symbol name='drm_gem_free_mmap_offset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb30d731e'/>
+      <elf-symbol name='drm_gem_get_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4a37f535'/>
+      <elf-symbol name='drm_gem_handle_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd441e176'/>
+      <elf-symbol name='drm_gem_handle_delete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3cc4b53'/>
+      <elf-symbol name='drm_gem_lock_reservations' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c6e67d6'/>
+      <elf-symbol name='drm_gem_map_attach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x127e87e4'/>
+      <elf-symbol name='drm_gem_map_detach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd20e1ca3'/>
+      <elf-symbol name='drm_gem_map_dma_buf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0bb5ca7'/>
+      <elf-symbol name='drm_gem_mmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x860e733b'/>
+      <elf-symbol name='drm_gem_mmap_obj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x46ae231f'/>
+      <elf-symbol name='drm_gem_object_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd680a377'/>
+      <elf-symbol name='drm_gem_object_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0259986'/>
+      <elf-symbol name='drm_gem_object_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c65d872'/>
+      <elf-symbol name='drm_gem_object_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe9f20383'/>
+      <elf-symbol name='drm_gem_objects_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x721925b4'/>
+      <elf-symbol name='drm_gem_plane_helper_prepare_fb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x682ad9d9'/>
+      <elf-symbol name='drm_gem_prepare_shadow_fb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x569ad14b'/>
+      <elf-symbol name='drm_gem_prime_export' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1d51a57c'/>
+      <elf-symbol name='drm_gem_prime_fd_to_handle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d7dc7ca'/>
+      <elf-symbol name='drm_gem_prime_handle_to_fd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3e25a93'/>
+      <elf-symbol name='drm_gem_prime_import' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6f17ad96'/>
+      <elf-symbol name='drm_gem_prime_import_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x18b6c3a5'/>
+      <elf-symbol name='drm_gem_prime_mmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x296983d7'/>
+      <elf-symbol name='drm_gem_private_object_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x16af01a4'/>
+      <elf-symbol name='drm_gem_put_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbec8a484'/>
+      <elf-symbol name='drm_gem_shmem_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x18e03dec'/>
+      <elf-symbol name='drm_gem_shmem_dumb_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x27fab21'/>
+      <elf-symbol name='drm_gem_shmem_free_object' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf5d22cd5'/>
+      <elf-symbol name='drm_gem_shmem_get_pages_sgt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x508f4890'/>
+      <elf-symbol name='drm_gem_shmem_get_sg_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x796aff5b'/>
+      <elf-symbol name='drm_gem_shmem_madvise' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0beeced'/>
+      <elf-symbol name='drm_gem_shmem_mmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb165c940'/>
+      <elf-symbol name='drm_gem_shmem_pin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdab209c7'/>
+      <elf-symbol name='drm_gem_shmem_prime_import_sg_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa4c88a85'/>
+      <elf-symbol name='drm_gem_shmem_print_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ea7f22c'/>
+      <elf-symbol name='drm_gem_shmem_purge_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xadbb8240'/>
+      <elf-symbol name='drm_gem_shmem_put_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x38faba2c'/>
+      <elf-symbol name='drm_gem_shmem_unpin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1267acdf'/>
+      <elf-symbol name='drm_gem_shmem_vmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa75e73d4'/>
+      <elf-symbol name='drm_gem_shmem_vunmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60c426d2'/>
+      <elf-symbol name='drm_gem_unlock_reservations' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ffba015'/>
+      <elf-symbol name='drm_gem_unmap_dma_buf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7e3b04d'/>
+      <elf-symbol name='drm_gem_vm_close' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1fa65b76'/>
+      <elf-symbol name='drm_gem_vm_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xafc73ec3'/>
+      <elf-symbol name='drm_get_connector_status_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd60df2'/>
+      <elf-symbol name='drm_get_connector_type_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf406e46a'/>
+      <elf-symbol name='drm_get_edid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4d0f15c'/>
+      <elf-symbol name='drm_get_format_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbf3c2664'/>
+      <elf-symbol name='drm_handle_vblank' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x999d3e62'/>
+      <elf-symbol name='drm_hdcp_check_ksvs_revoked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x17c5d0ee'/>
+      <elf-symbol name='drm_hdcp_update_content_protection' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5fe97682'/>
+      <elf-symbol name='drm_hdmi_avi_infoframe_colorspace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4d37eff'/>
+      <elf-symbol name='drm_hdmi_avi_infoframe_from_display_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee482e1f'/>
+      <elf-symbol name='drm_hdmi_avi_infoframe_quant_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5867fc32'/>
+      <elf-symbol name='drm_hdmi_infoframe_set_hdr_metadata' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd238a668'/>
+      <elf-symbol name='drm_hdmi_vendor_infoframe_from_display_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb990d24'/>
+      <elf-symbol name='drm_helper_connector_dpms' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa40b626b'/>
+      <elf-symbol name='drm_helper_disable_unused_functions' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe2f4a7a'/>
+      <elf-symbol name='drm_helper_force_disable_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b8679d3'/>
+      <elf-symbol name='drm_helper_hpd_irq_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2f873716'/>
+      <elf-symbol name='drm_helper_mode_fill_fb_struct' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1278591e'/>
+      <elf-symbol name='drm_helper_probe_detect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc26644a2'/>
+      <elf-symbol name='drm_helper_probe_single_connector_modes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x29b4b697'/>
+      <elf-symbol name='drm_helper_resume_force_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe47215ed'/>
+      <elf-symbol name='drm_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15f94a69'/>
+      <elf-symbol name='drm_ioctl_kernel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6907a894'/>
+      <elf-symbol name='drm_is_current_master' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x629b44e7'/>
+      <elf-symbol name='drm_kms_helper_hotplug_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c1ff423'/>
+      <elf-symbol name='drm_kms_helper_is_poll_worker' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5a4734d1'/>
+      <elf-symbol name='drm_kms_helper_poll_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe83f32d0'/>
+      <elf-symbol name='drm_kms_helper_poll_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ba4614b'/>
+      <elf-symbol name='drm_kms_helper_poll_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c6539d4'/>
+      <elf-symbol name='drm_kms_helper_poll_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6cb3eab3'/>
+      <elf-symbol name='drm_master_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd259e69a'/>
+      <elf-symbol name='drm_master_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x888d4825'/>
+      <elf-symbol name='drm_match_cea_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b285573'/>
+      <elf-symbol name='drm_mm_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0517d7a'/>
+      <elf-symbol name='drm_mm_insert_node_in_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4032484'/>
+      <elf-symbol name='drm_mm_print' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf7acb66'/>
+      <elf-symbol name='drm_mm_remove_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4b7ebf95'/>
+      <elf-symbol name='drm_mm_reserve_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2754dad8'/>
+      <elf-symbol name='drm_mm_takedown' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57698a50'/>
+      <elf-symbol name='drm_mode_config_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3d3bfef'/>
+      <elf-symbol name='drm_mode_config_helper_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56023e42'/>
+      <elf-symbol name='drm_mode_config_helper_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x480416ab'/>
+      <elf-symbol name='drm_mode_config_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2857f44'/>
+      <elf-symbol name='drm_mode_convert_to_umode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4694508f'/>
+      <elf-symbol name='drm_mode_convert_umode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x39877163'/>
+      <elf-symbol name='drm_mode_copy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ce050be'/>
+      <elf-symbol name='drm_mode_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf345e163'/>
+      <elf-symbol name='drm_mode_create_dp_colorspace_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x912eefb5'/>
+      <elf-symbol name='drm_mode_create_hdmi_colorspace_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x558fd00e'/>
+      <elf-symbol name='drm_mode_create_scaling_mode_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ac758be'/>
+      <elf-symbol name='drm_mode_create_tile_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xec7cf1'/>
+      <elf-symbol name='drm_mode_crtc_set_gamma_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4fcd2d36'/>
+      <elf-symbol name='drm_mode_debug_printmodeline' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2ed3c600'/>
+      <elf-symbol name='drm_mode_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5de5bd9'/>
+      <elf-symbol name='drm_mode_duplicate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x711a93af'/>
+      <elf-symbol name='drm_mode_equal' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9b4753'/>
+      <elf-symbol name='drm_mode_equal_no_clocks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ab87110'/>
+      <elf-symbol name='drm_mode_find_dmt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3830071c'/>
+      <elf-symbol name='drm_mode_get_hv_timing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4403a9c3'/>
+      <elf-symbol name='drm_mode_is_420_also' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x703db344'/>
+      <elf-symbol name='drm_mode_is_420_only' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7fa5cad9'/>
+      <elf-symbol name='drm_mode_match' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b95c885'/>
+      <elf-symbol name='drm_mode_object_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x94f476db'/>
+      <elf-symbol name='drm_mode_object_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6d4f458'/>
+      <elf-symbol name='drm_mode_object_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe1fdd1de'/>
+      <elf-symbol name='drm_mode_probed_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5978683d'/>
+      <elf-symbol name='drm_mode_prune_invalid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf5662ed5'/>
+      <elf-symbol name='drm_mode_set_crtcinfo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4575a0ca'/>
+      <elf-symbol name='drm_mode_set_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4a35d30d'/>
+      <elf-symbol name='drm_mode_sort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf1421d13'/>
+      <elf-symbol name='drm_mode_validate_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7a9cf42'/>
+      <elf-symbol name='drm_mode_vrefresh' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf1b5340a'/>
+      <elf-symbol name='drm_modeset_acquire_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe001897a'/>
+      <elf-symbol name='drm_modeset_acquire_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x18319f3d'/>
+      <elf-symbol name='drm_modeset_backoff' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5cc2a627'/>
+      <elf-symbol name='drm_modeset_drop_locks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xffdcfbf8'/>
+      <elf-symbol name='drm_modeset_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4392951b'/>
+      <elf-symbol name='drm_modeset_lock_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5673e4a6'/>
+      <elf-symbol name='drm_modeset_lock_all_ctx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d1cb9b'/>
+      <elf-symbol name='drm_modeset_lock_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef78d7c8'/>
+      <elf-symbol name='drm_modeset_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x742e4fad'/>
+      <elf-symbol name='drm_modeset_unlock_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee45581b'/>
+      <elf-symbol name='drm_object_attach_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90561633'/>
+      <elf-symbol name='drm_object_property_set_value' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xada7a281'/>
+      <elf-symbol name='drm_of_component_match_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x227d5822'/>
+      <elf-symbol name='drm_of_component_probe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc1d9c813'/>
+      <elf-symbol name='drm_of_crtc_port_mask' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67e4a5f4'/>
+      <elf-symbol name='drm_of_encoder_active_endpoint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbeed1f92'/>
+      <elf-symbol name='drm_of_find_panel_or_bridge' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee0e82c9'/>
+      <elf-symbol name='drm_of_find_possible_crtcs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e818a59'/>
+      <elf-symbol name='drm_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9be9fb1e'/>
+      <elf-symbol name='drm_panel_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9218956'/>
+      <elf-symbol name='drm_panel_bridge_add_typed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x11fb7c8e'/>
+      <elf-symbol name='drm_panel_bridge_connector' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdda22b6c'/>
+      <elf-symbol name='drm_panel_bridge_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbb60f2d4'/>
+      <elf-symbol name='drm_panel_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e6c489b'/>
+      <elf-symbol name='drm_panel_dp_aux_backlight' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcb7d9e35'/>
+      <elf-symbol name='drm_panel_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf737bb14'/>
+      <elf-symbol name='drm_panel_get_modes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8c29d1'/>
+      <elf-symbol name='drm_panel_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe25b0de'/>
+      <elf-symbol name='drm_panel_of_backlight' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8bce3a3'/>
+      <elf-symbol name='drm_panel_prepare' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1fb2b511'/>
+      <elf-symbol name='drm_panel_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x860ba323'/>
+      <elf-symbol name='drm_panel_unprepare' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9d8288ac'/>
+      <elf-symbol name='drm_plane_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x217867db'/>
+      <elf-symbol name='drm_plane_create_alpha_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4faec623'/>
+      <elf-symbol name='drm_plane_create_blend_mode_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xab2594e6'/>
+      <elf-symbol name='drm_plane_create_color_properties' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x83168caa'/>
+      <elf-symbol name='drm_plane_create_rotation_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c8212e8'/>
+      <elf-symbol name='drm_plane_create_scaling_filter_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c297d3'/>
+      <elf-symbol name='drm_plane_create_zpos_immutable_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x164a45c6'/>
+      <elf-symbol name='drm_plane_create_zpos_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb3d6df75'/>
+      <elf-symbol name='drm_plane_enable_fb_damage_clips' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c7a837b'/>
+      <elf-symbol name='drm_plane_from_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd84c309'/>
+      <elf-symbol name='drm_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7870f9f'/>
+      <elf-symbol name='drm_prime_gem_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa2f3d9db'/>
+      <elf-symbol name='drm_prime_pages_to_sg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5e889b4'/>
+      <elf-symbol name='drm_prime_sg_to_dma_addr_array' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x44a2cadb'/>
+      <elf-symbol name='drm_prime_sg_to_page_array' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ecb5877'/>
+      <elf-symbol name='drm_print_bits' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32a0cc37'/>
+      <elf-symbol name='drm_printf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28779e52'/>
+      <elf-symbol name='drm_probe_ddc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8a0555b1'/>
+      <elf-symbol name='drm_property_add_enum' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x97a157a1'/>
+      <elf-symbol name='drm_property_blob_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcb475cc3'/>
+      <elf-symbol name='drm_property_blob_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa4e82df4'/>
+      <elf-symbol name='drm_property_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32d9fd43'/>
+      <elf-symbol name='drm_property_create_bitmask' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ec8ee3c'/>
+      <elf-symbol name='drm_property_create_blob' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa1bb9754'/>
+      <elf-symbol name='drm_property_create_bool' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2f752d2'/>
+      <elf-symbol name='drm_property_create_enum' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8208e666'/>
+      <elf-symbol name='drm_property_create_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3fc6a3ba'/>
+      <elf-symbol name='drm_property_create_signed_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe660c605'/>
+      <elf-symbol name='drm_property_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa505393'/>
+      <elf-symbol name='drm_property_lookup_blob' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f9036f7'/>
+      <elf-symbol name='drm_property_replace_blob' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9cbfe190'/>
+      <elf-symbol name='drm_property_replace_global_blob' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6acdd2d5'/>
+      <elf-symbol name='drm_put_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb12bc2c1'/>
+      <elf-symbol name='drm_puts' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x521ad6d0'/>
+      <elf-symbol name='drm_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8b7fb5ab'/>
+      <elf-symbol name='drm_rect_calc_hscale' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d50570f'/>
+      <elf-symbol name='drm_rect_calc_vscale' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91fec1cc'/>
+      <elf-symbol name='drm_rect_clip_scaled' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99fd20aa'/>
+      <elf-symbol name='drm_rect_intersect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x871ab41a'/>
+      <elf-symbol name='drm_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1e94e65'/>
+      <elf-symbol name='drm_rotation_simplify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf666902'/>
+      <elf-symbol name='drm_scdc_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2a4281e'/>
+      <elf-symbol name='drm_scdc_set_high_tmds_clock_ratio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3b0f66f'/>
+      <elf-symbol name='drm_scdc_set_scrambling' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c6653be'/>
+      <elf-symbol name='drm_scdc_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb467dc13'/>
+      <elf-symbol name='drm_self_refresh_helper_alter_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e0dda83'/>
+      <elf-symbol name='drm_self_refresh_helper_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63537436'/>
+      <elf-symbol name='drm_self_refresh_helper_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2b0d0a6'/>
+      <elf-symbol name='drm_self_refresh_helper_update_avg_times' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x429e46e4'/>
+      <elf-symbol name='drm_send_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdd09ddf0'/>
+      <elf-symbol name='drm_send_event_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbb9b835f'/>
+      <elf-symbol name='drm_send_event_timestamp_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x37c7eaa9'/>
+      <elf-symbol name='drm_set_preferred_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ffbe3c3'/>
+      <elf-symbol name='drm_simple_display_pipe_attach_bridge' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdfe2f32a'/>
+      <elf-symbol name='drm_simple_display_pipe_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2fc5cb34'/>
+      <elf-symbol name='drm_simple_encoder_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ef33f5'/>
+      <elf-symbol name='drm_state_dump' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x70869542'/>
+      <elf-symbol name='drm_syncobj_add_point' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc248b61d'/>
+      <elf-symbol name='drm_syncobj_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3d8f9e1'/>
+      <elf-symbol name='drm_syncobj_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbe67552c'/>
+      <elf-symbol name='drm_syncobj_find_fence' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4a1f8ba'/>
+      <elf-symbol name='drm_syncobj_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a411479'/>
+      <elf-symbol name='drm_syncobj_get_fd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8bfcec8d'/>
+      <elf-symbol name='drm_syncobj_get_handle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf72aff9'/>
+      <elf-symbol name='drm_syncobj_replace_fence' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc8686858'/>
+      <elf-symbol name='drm_timeout_abs_to_jiffies' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x50674de7'/>
+      <elf-symbol name='drm_universal_plane_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbab1dfce'/>
+      <elf-symbol name='drm_vblank_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6a4b04a'/>
+      <elf-symbol name='drm_wait_one_vblank' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x44b5c4f5'/>
+      <elf-symbol name='drm_writeback_cleanup_job' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x12796f88'/>
+      <elf-symbol name='drm_writeback_connector_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc21acb7f'/>
+      <elf-symbol name='drm_writeback_queue_job' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf612a2b6'/>
+      <elf-symbol name='drm_writeback_signal_completion' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8120a316'/>
+      <elf-symbol name='drmm_kmalloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9cd6f9f3'/>
+      <elf-symbol name='drmm_mode_config_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7019e933'/>
+      <elf-symbol name='drop_nlink' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7777287b'/>
+      <elf-symbol name='dst_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea7dbe01'/>
+      <elf-symbol name='dump_backtrace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa433ce1d'/>
+      <elf-symbol name='dump_stack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b2dc060'/>
+      <elf-symbol name='dw_handle_msi_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc641115f'/>
+      <elf-symbol name='dw_pcie_ep_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x71044feb'/>
+      <elf-symbol name='dw_pcie_find_capability' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35916809'/>
+      <elf-symbol name='dw_pcie_find_ext_capability' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6c4af39'/>
+      <elf-symbol name='dw_pcie_host_deinit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ddb9773'/>
+      <elf-symbol name='dw_pcie_host_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19a58'/>
+      <elf-symbol name='dw_pcie_link_up' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80137160'/>
+      <elf-symbol name='dw_pcie_own_conf_map_bus' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef6cdee1'/>
+      <elf-symbol name='dw_pcie_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7791e066'/>
+      <elf-symbol name='dw_pcie_read_dbi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe41a113b'/>
+      <elf-symbol name='dw_pcie_setup_rc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b25ebc4'/>
+      <elf-symbol name='dw_pcie_wait_for_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9215089b'/>
+      <elf-symbol name='dw_pcie_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbe9a83d5'/>
+      <elf-symbol name='dw_pcie_write_dbi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa532eef'/>
+      <elf-symbol name='edac_device_add_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4a109507'/>
+      <elf-symbol name='edac_device_alloc_ctl_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf27024b5'/>
+      <elf-symbol name='edac_device_alloc_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e3ff83a'/>
+      <elf-symbol name='edac_device_del_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x793f83ff'/>
+      <elf-symbol name='edac_device_free_ctl_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6fc31518'/>
+      <elf-symbol name='edac_device_handle_ce_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ec45f46'/>
+      <elf-symbol name='edac_device_handle_ue_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d788393'/>
+      <elf-symbol name='ehci_handshake' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9cc60633'/>
+      <elf-symbol name='ehci_hub_control' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ebdf905'/>
+      <elf-symbol name='ehci_init_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7825a9eb'/>
+      <elf-symbol name='ehci_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e1eba22'/>
+      <elf-symbol name='ehci_setup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcdab307f'/>
+      <elf-symbol name='ehci_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1a8b37c'/>
+      <elf-symbol name='elevator_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4b8eff8'/>
+      <elf-symbol name='elv_bio_merge_ok' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6c53675'/>
+      <elf-symbol name='elv_rb_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x344826d2'/>
+      <elf-symbol name='elv_rb_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f314f26'/>
+      <elf-symbol name='elv_rb_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3021ee4c'/>
+      <elf-symbol name='elv_rb_former_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x248ce71e'/>
+      <elf-symbol name='elv_rb_latter_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1e2ed1df'/>
+      <elf-symbol name='elv_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26792a1a'/>
+      <elf-symbol name='elv_rqhash_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x800e1178'/>
+      <elf-symbol name='elv_rqhash_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x593502dc'/>
+      <elf-symbol name='elv_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa479a980'/>
+      <elf-symbol name='em_cpu_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x42c9a04'/>
+      <elf-symbol name='em_dev_register_perf_domain' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfad3ba3a'/>
+      <elf-symbol name='emergency_restart' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0c05159'/>
+      <elf-symbol name='enable_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfcec0987'/>
+      <elf-symbol name='enable_percpu_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x335c570f'/>
+      <elf-symbol name='end_buffer_read_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7de9d722'/>
+      <elf-symbol name='end_buffer_write_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd485fc6'/>
+      <elf-symbol name='end_page_writeback' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x135dadbe'/>
+      <elf-symbol name='errseq_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2ec6bba0'/>
+      <elf-symbol name='eth_commit_mac_addr_change' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x941d6cbe'/>
+      <elf-symbol name='eth_get_headlen' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x490402e4'/>
+      <elf-symbol name='eth_header' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbdb06c8'/>
+      <elf-symbol name='eth_header_cache' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89a09f8e'/>
+      <elf-symbol name='eth_header_cache_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea594c4c'/>
+      <elf-symbol name='eth_header_parse' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd1350262'/>
+      <elf-symbol name='eth_mac_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15ca27c5'/>
+      <elf-symbol name='eth_platform_get_mac_address' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f3f1414'/>
+      <elf-symbol name='eth_prepare_mac_addr_change' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb2a19fdc'/>
+      <elf-symbol name='eth_type_trans' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbcf0a7e0'/>
+      <elf-symbol name='eth_validate_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0e6ea10'/>
+      <elf-symbol name='ether_setup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20d62183'/>
+      <elf-symbol name='ethnl_cable_test_amplitude' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2ee4ea3b'/>
+      <elf-symbol name='ethnl_cable_test_fault_length' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5a59732a'/>
+      <elf-symbol name='ethnl_cable_test_pulse' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1cba079'/>
+      <elf-symbol name='ethnl_cable_test_result' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8cb2c79'/>
+      <elf-symbol name='ethnl_cable_test_step' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x317bde4e'/>
+      <elf-symbol name='ethtool_convert_legacy_u32_to_link_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8f996a30'/>
+      <elf-symbol name='ethtool_convert_link_mode_to_legacy_u32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55e31703'/>
+      <elf-symbol name='ethtool_op_get_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x535e9b9f'/>
+      <elf-symbol name='ethtool_op_get_ts_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x68b7cc47'/>
+      <elf-symbol name='ethtool_sprintf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5338184f'/>
+      <elf-symbol name='ethtool_virtdev_set_link_ksettings' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdccfd77d'/>
+      <elf-symbol name='event_triggers_call' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd5a8a18'/>
+      <elf-symbol name='eventfd_ctx_fdget' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd67364f7'/>
+      <elf-symbol name='eventfd_ctx_fileget' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7959ff5b'/>
+      <elf-symbol name='eventfd_ctx_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x941f2aaa'/>
+      <elf-symbol name='eventfd_ctx_remove_wait_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41ed3cec'/>
+      <elf-symbol name='eventfd_signal' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf0f75c6'/>
+      <elf-symbol name='evict_inodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf6170ed'/>
+      <elf-symbol name='extcon_dev_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2548f6f1'/>
+      <elf-symbol name='extcon_find_edev_by_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7a9c76e9'/>
+      <elf-symbol name='extcon_get_edev_by_phandle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2971dcec'/>
+      <elf-symbol name='extcon_get_edev_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd181b439'/>
+      <elf-symbol name='extcon_get_extcon_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x607135f8'/>
+      <elf-symbol name='extcon_get_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6484e95a'/>
+      <elf-symbol name='extcon_get_property_capability' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73d7994b'/>
+      <elf-symbol name='extcon_get_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa13f3b8f'/>
+      <elf-symbol name='extcon_register_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7af8e0d5'/>
+      <elf-symbol name='extcon_set_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc6a03612'/>
+      <elf-symbol name='extcon_set_property_capability' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8a72470'/>
+      <elf-symbol name='extcon_set_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf9c6104'/>
+      <elf-symbol name='extcon_set_state_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf004c76e'/>
+      <elf-symbol name='extcon_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca2dcf68'/>
+      <elf-symbol name='extcon_unregister_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6c81fc'/>
+      <elf-symbol name='fasync_helper' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb3ac2e2d'/>
+      <elf-symbol name='fault_in_iov_iter_readable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19121ce1'/>
+      <elf-symbol name='fault_in_safe_writeable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb348fea'/>
+      <elf-symbol name='fb_get_options' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xab781570'/>
+      <elf-symbol name='fd_install' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x97f4d63b'/>
+      <elf-symbol name='fget' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a6170cf'/>
+      <elf-symbol name='fiemap_fill_next_extent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x605790dc'/>
+      <elf-symbol name='fiemap_prep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3def8712'/>
+      <elf-symbol name='file_check_and_advance_wb_err' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3768662c'/>
+      <elf-symbol name='file_modified' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d6533c'/>
+      <elf-symbol name='file_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdd88c07a'/>
+      <elf-symbol name='file_ra_state_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf463e6f3'/>
+      <elf-symbol name='file_remove_privs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd41927c0'/>
+      <elf-symbol name='file_update_time' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x53ab1478'/>
+      <elf-symbol name='file_write_and_wait_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6aa047aa'/>
+      <elf-symbol name='fileattr_fill_flags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c86b9ab'/>
+      <elf-symbol name='filemap_check_errors' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfde29ace'/>
+      <elf-symbol name='filemap_fault' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf437b9af'/>
+      <elf-symbol name='filemap_fdatawait_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xec21ab83'/>
+      <elf-symbol name='filemap_fdatawrite' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25cf7c4f'/>
+      <elf-symbol name='filemap_fdatawrite_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67cbec3a'/>
+      <elf-symbol name='filemap_flush' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34f843b7'/>
+      <elf-symbol name='filemap_map_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b65baf'/>
+      <elf-symbol name='filemap_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34555c6b'/>
+      <elf-symbol name='filemap_write_and_wait_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34ee117f'/>
+      <elf-symbol name='filp_close' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e0ddf7e'/>
+      <elf-symbol name='filp_open_block' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4743bf55'/>
+      <elf-symbol name='find_extend_vma' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84bf623a'/>
+      <elf-symbol name='find_get_pid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90b01573'/>
+      <elf-symbol name='find_inode_nowait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ca74f5e'/>
+      <elf-symbol name='find_iova' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3790d7c9'/>
+      <elf-symbol name='find_pid_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9542fd3e'/>
+      <elf-symbol name='find_task_by_vpid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6e07172'/>
+      <elf-symbol name='find_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x508716e5'/>
+      <elf-symbol name='find_vm_area' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce792a29'/>
+      <elf-symbol name='find_vpid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1273c714'/>
+      <elf-symbol name='finish_wait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x92540fbf'/>
+      <elf-symbol name='firmware_request_nowarn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x71952555'/>
+      <elf-symbol name='fixed_size_llseek' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x83d79da2'/>
+      <elf-symbol name='flow_block_cb_setup_simple' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b538956'/>
+      <elf-symbol name='flow_rule_match_basic' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf675c7d9'/>
+      <elf-symbol name='flow_rule_match_eth_addrs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3efafc3'/>
+      <elf-symbol name='flow_rule_match_ipv4_addrs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6a3a3ff'/>
+      <elf-symbol name='flow_rule_match_ports' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28e3722e'/>
+      <elf-symbol name='flow_rule_match_vlan' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5fe9e783'/>
+      <elf-symbol name='flush_dcache_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf19fce59'/>
+      <elf-symbol name='flush_delayed_fput' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55339365'/>
+      <elf-symbol name='flush_delayed_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1148c0ea'/>
+      <elf-symbol name='flush_signals' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8ded7b6a'/>
+      <elf-symbol name='flush_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4735ac17'/>
+      <elf-symbol name='flush_workqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x42160169'/>
+      <elf-symbol name='follow_pfn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c2a10ac'/>
+      <elf-symbol name='for_each_kernel_tracepoint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x58c6377'/>
+      <elf-symbol name='fput' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7610c83f'/>
+      <elf-symbol name='frame_vector_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65246b8'/>
+      <elf-symbol name='frame_vector_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1d5f9555'/>
+      <elf-symbol name='frame_vector_to_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc5e5573a'/>
+      <elf-symbol name='frame_vector_to_pfns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdffb744b'/>
+      <elf-symbol name='free_buffer_head' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1dff10ae'/>
+      <elf-symbol name='free_candev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaaee2714'/>
+      <elf-symbol name='free_contig_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10e6f74a'/>
+      <elf-symbol name='free_io_pgtable_ops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3369057b'/>
+      <elf-symbol name='free_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc1514a3b'/>
+      <elf-symbol name='free_netdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x86dc89c0'/>
+      <elf-symbol name='free_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4302d0eb'/>
+      <elf-symbol name='free_pages_exact' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb44339a'/>
+      <elf-symbol name='free_percpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9ec4e21'/>
+      <elf-symbol name='free_percpu_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbc6bec66'/>
+      <elf-symbol name='free_uid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a4cbb84'/>
+      <elf-symbol name='freeze_bdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x45d55013'/>
+      <elf-symbol name='freeze_super' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x354b5ef7'/>
+      <elf-symbol name='freezing_slow_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x42a3708'/>
+      <elf-symbol name='freq_qos_add_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8959e3df'/>
+      <elf-symbol name='freq_qos_add_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28498a88'/>
+      <elf-symbol name='freq_qos_remove_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6435f6e7'/>
+      <elf-symbol name='freq_qos_remove_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x894967be'/>
+      <elf-symbol name='freq_qos_update_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2eec24ef'/>
+      <elf-symbol name='fs_ftype_to_dtype' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3805cd1'/>
+      <elf-symbol name='fs_param_is_string' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe3db5301'/>
+      <elf-symbol name='fs_param_is_u32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x900ff675'/>
+      <elf-symbol name='fscrypt_decrypt_bio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf570fe4'/>
+      <elf-symbol name='fscrypt_dio_supported' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x431a1d24'/>
+      <elf-symbol name='fscrypt_drop_inode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x92d5a3ab'/>
+      <elf-symbol name='fscrypt_encrypt_pagecache_blocks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x343fc264'/>
+      <elf-symbol name='fscrypt_file_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x14cf946e'/>
+      <elf-symbol name='fscrypt_fname_alloc_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80e5f86f'/>
+      <elf-symbol name='fscrypt_fname_disk_to_usr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc577b0d'/>
+      <elf-symbol name='fscrypt_fname_free_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa263892b'/>
+      <elf-symbol name='fscrypt_fname_siphash' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x53e7fd36'/>
+      <elf-symbol name='fscrypt_free_bounce_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2998ff19'/>
+      <elf-symbol name='fscrypt_free_inode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7fa5831'/>
+      <elf-symbol name='fscrypt_get_symlink' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62d520c7'/>
+      <elf-symbol name='fscrypt_has_permitted_context' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc8cf4326'/>
+      <elf-symbol name='fscrypt_ioctl_add_key' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9f4b791'/>
+      <elf-symbol name='fscrypt_ioctl_get_key_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb38a364'/>
+      <elf-symbol name='fscrypt_ioctl_get_nonce' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef84a10a'/>
+      <elf-symbol name='fscrypt_ioctl_get_policy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7daa37a9'/>
+      <elf-symbol name='fscrypt_ioctl_get_policy_ex' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa59475ec'/>
+      <elf-symbol name='fscrypt_ioctl_remove_key' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb41f1bcc'/>
+      <elf-symbol name='fscrypt_ioctl_remove_key_all_users' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4dcc57f'/>
+      <elf-symbol name='fscrypt_ioctl_set_policy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x44676721'/>
+      <elf-symbol name='fscrypt_limit_io_blocks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb0c2bb7f'/>
+      <elf-symbol name='fscrypt_match_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6a088b7'/>
+      <elf-symbol name='fscrypt_mergeable_bio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda24fde7'/>
+      <elf-symbol name='fscrypt_prepare_new_inode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80cc5d0e'/>
+      <elf-symbol name='fscrypt_prepare_symlink' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x44cc5544'/>
+      <elf-symbol name='fscrypt_put_encryption_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbfc69d97'/>
+      <elf-symbol name='fscrypt_set_bio_crypt_ctx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b230184'/>
+      <elf-symbol name='fscrypt_set_context' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b573239'/>
+      <elf-symbol name='fscrypt_set_test_dummy_encryption' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2436b0f3'/>
+      <elf-symbol name='fscrypt_setup_filename' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd5a96940'/>
+      <elf-symbol name='fscrypt_show_test_dummy_encryption' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7bc0fab3'/>
+      <elf-symbol name='fscrypt_symlink_getattr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa4762be'/>
+      <elf-symbol name='fscrypt_zeroout_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x31c208e3'/>
+      <elf-symbol name='fsg_common_create_luns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd1a3e8e0'/>
+      <elf-symbol name='fsg_common_set_cdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6bbde88'/>
+      <elf-symbol name='fsg_common_set_inquiry_string' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6acb4179'/>
+      <elf-symbol name='fsg_common_set_sysfs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7e26d4a5'/>
+      <elf-symbol name='fsg_config_from_params' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xab6c68ac'/>
+      <elf-symbol name='fsverity_cleanup_inode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c85b2c9'/>
+      <elf-symbol name='fsverity_enqueue_verify_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57244555'/>
+      <elf-symbol name='fsverity_file_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e769ffc'/>
+      <elf-symbol name='fsverity_ioctl_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5a3f9a95'/>
+      <elf-symbol name='fsverity_ioctl_measure' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x511a83d4'/>
+      <elf-symbol name='fsverity_ioctl_read_metadata' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6859c767'/>
+      <elf-symbol name='fsverity_prepare_setattr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd9d06fc'/>
+      <elf-symbol name='fsverity_verify_bio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a0b653c'/>
+      <elf-symbol name='fsverity_verify_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c1cfae6'/>
+      <elf-symbol name='fsync_bdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x587da1a4'/>
+      <elf-symbol name='ftrace_dump' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaaa918c9'/>
+      <elf-symbol name='full_name_hash' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6eaaea1'/>
+      <elf-symbol name='fwnode_connection_find_match' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x798f23ad'/>
+      <elf-symbol name='fwnode_device_is_available' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5cc1f4fe'/>
+      <elf-symbol name='fwnode_find_reference' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa305d3cc'/>
+      <elf-symbol name='fwnode_get_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf62f23a'/>
+      <elf-symbol name='fwnode_get_next_child_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3174f167'/>
+      <elf-symbol name='fwnode_get_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0a40cc3'/>
+      <elf-symbol name='fwnode_gpiod_get_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f8e1b92'/>
+      <elf-symbol name='fwnode_graph_get_next_endpoint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd952c5e4'/>
+      <elf-symbol name='fwnode_graph_get_port_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5a4732cc'/>
+      <elf-symbol name='fwnode_graph_get_remote_endpoint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde5d4d18'/>
+      <elf-symbol name='fwnode_graph_get_remote_port_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x828ee9ad'/>
+      <elf-symbol name='fwnode_graph_parse_endpoint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe619f8d2'/>
+      <elf-symbol name='fwnode_handle_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x644a6a4f'/>
+      <elf-symbol name='fwnode_handle_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6eabe73b'/>
+      <elf-symbol name='fwnode_property_get_reference_args' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdb933a70'/>
+      <elf-symbol name='fwnode_property_present' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb2048a05'/>
+      <elf-symbol name='fwnode_property_read_string' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf5821fcb'/>
+      <elf-symbol name='fwnode_property_read_u16_array' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x74e38ad9'/>
+      <elf-symbol name='fwnode_property_read_u32_array' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa25d5d9d'/>
+      <elf-symbol name='fwnode_property_read_u64_array' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54201afd'/>
+      <elf-symbol name='fwnode_usb_role_switch_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb718e1c3'/>
+      <elf-symbol name='g_audio_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbee99165'/>
+      <elf-symbol name='g_audio_setup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc4047133'/>
+      <elf-symbol name='gcd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea124bd1'/>
+      <elf-symbol name='gen_pool_add_owner' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbefa51a3'/>
+      <elf-symbol name='gen_pool_alloc_algo_owner' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b593aa8'/>
+      <elf-symbol name='gen_pool_avail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0d3f0a4'/>
+      <elf-symbol name='gen_pool_best_fit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb737b185'/>
+      <elf-symbol name='gen_pool_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xced0f4d4'/>
+      <elf-symbol name='gen_pool_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c224cda'/>
+      <elf-symbol name='gen_pool_dma_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x486075c8'/>
+      <elf-symbol name='gen_pool_dma_alloc_align' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xada31e57'/>
+      <elf-symbol name='gen_pool_dma_zalloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee7d7deb'/>
+      <elf-symbol name='gen_pool_dma_zalloc_align' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3d210724'/>
+      <elf-symbol name='gen_pool_first_fit_align' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e855e56'/>
+      <elf-symbol name='gen_pool_first_fit_order_align' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f4bd846'/>
+      <elf-symbol name='gen_pool_fixed_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57900416'/>
+      <elf-symbol name='gen_pool_for_each_chunk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ef6a672'/>
+      <elf-symbol name='gen_pool_free_owner' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60ba97c'/>
+      <elf-symbol name='gen_pool_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x83745fc5'/>
+      <elf-symbol name='gen_pool_has_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1f557414'/>
+      <elf-symbol name='gen_pool_set_algo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96e5d30f'/>
+      <elf-symbol name='gen_pool_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2464da17'/>
+      <elf-symbol name='gen_pool_virt_to_phys' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d0ba682'/>
+      <elf-symbol name='generate_random_uuid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa681fe88'/>
+      <elf-symbol name='generic_block_bmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcb9b4c53'/>
+      <elf-symbol name='generic_cont_expand_simple' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc0d6a9'/>
+      <elf-symbol name='generic_device_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef1ea848'/>
+      <elf-symbol name='generic_error_remove_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x117831d9'/>
+      <elf-symbol name='generic_fadvise' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x64d22207'/>
+      <elf-symbol name='generic_fh_to_dentry' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbfd2db01'/>
+      <elf-symbol name='generic_fh_to_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1fb4a338'/>
+      <elf-symbol name='generic_file_direct_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc280a2aa'/>
+      <elf-symbol name='generic_file_fsync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85d0d172'/>
+      <elf-symbol name='generic_file_llseek' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd05de2b'/>
+      <elf-symbol name='generic_file_llseek_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae349658'/>
+      <elf-symbol name='generic_file_mmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9eb737a'/>
+      <elf-symbol name='generic_file_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc37d217'/>
+      <elf-symbol name='generic_file_read_iter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe835fd6c'/>
+      <elf-symbol name='generic_file_splice_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1fb84c87'/>
+      <elf-symbol name='generic_file_write_iter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0696e01'/>
+      <elf-symbol name='generic_fillattr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa1fd1a60'/>
+      <elf-symbol name='generic_handle_domain_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20913765'/>
+      <elf-symbol name='generic_handle_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ceaf0d5'/>
+      <elf-symbol name='generic_iommu_put_resv_regions' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a0f83fd'/>
+      <elf-symbol name='generic_key_instantiate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x87517341'/>
+      <elf-symbol name='generic_mii_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6185c19'/>
+      <elf-symbol name='generic_perform_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e682b81'/>
+      <elf-symbol name='generic_permission' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6e958d7'/>
+      <elf-symbol name='generic_read_dir' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb87b26f2'/>
+      <elf-symbol name='generic_set_encrypted_ci_d_ops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c66c628'/>
+      <elf-symbol name='generic_shutdown_super' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfcb8ea8a'/>
+      <elf-symbol name='generic_write_checks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa39b6b44'/>
+      <elf-symbol name='generic_write_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa1a61dfd'/>
+      <elf-symbol name='geni_icc_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbbfc10b2'/>
+      <elf-symbol name='geni_icc_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7326076f'/>
+      <elf-symbol name='geni_icc_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc742207c'/>
+      <elf-symbol name='geni_icc_set_bw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x116fb427'/>
+      <elf-symbol name='geni_se_clk_freq_match' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf7ed1da5'/>
+      <elf-symbol name='geni_se_config_packing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x126f5d16'/>
+      <elf-symbol name='geni_se_get_qup_hw_version' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3b5524a'/>
+      <elf-symbol name='geni_se_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35a7020e'/>
+      <elf-symbol name='geni_se_resources_off' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c5c4a9c'/>
+      <elf-symbol name='geni_se_resources_on' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf098952f'/>
+      <elf-symbol name='geni_se_rx_dma_prep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35b9f4c4'/>
+      <elf-symbol name='geni_se_rx_dma_unprep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90249b17'/>
+      <elf-symbol name='geni_se_select_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3268b1ac'/>
+      <elf-symbol name='geni_se_tx_dma_prep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe8bf06c1'/>
+      <elf-symbol name='geni_se_tx_dma_unprep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x366dcbe7'/>
+      <elf-symbol name='genl_notify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x94490e6c'/>
+      <elf-symbol name='genl_register_family' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb04aaa3'/>
+      <elf-symbol name='genl_unregister_family' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8bb69f5e'/>
+      <elf-symbol name='genlmsg_multicast_allns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfcbf01bd'/>
+      <elf-symbol name='genlmsg_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc958e49d'/>
+      <elf-symbol name='genphy_aneg_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x75e372d5'/>
+      <elf-symbol name='genphy_c45_an_config_aneg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x900d4d86'/>
+      <elf-symbol name='genphy_c45_aneg_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2f0d1f'/>
+      <elf-symbol name='genphy_c45_check_and_restart_aneg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f19990a'/>
+      <elf-symbol name='genphy_c45_loopback' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda10c00c'/>
+      <elf-symbol name='genphy_c45_pma_read_abilities' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8558bc6'/>
+      <elf-symbol name='genphy_c45_pma_setup_forced' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3c6c386'/>
+      <elf-symbol name='genphy_c45_read_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62efc471'/>
+      <elf-symbol name='genphy_c45_read_lpa' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x16f3df01'/>
+      <elf-symbol name='genphy_c45_read_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xefb8b074'/>
+      <elf-symbol name='genphy_check_and_restart_aneg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x643dc3b7'/>
+      <elf-symbol name='genphy_handle_interrupt_no_ack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89f6e9fb'/>
+      <elf-symbol name='genphy_read_abilities' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc30cafca'/>
+      <elf-symbol name='genphy_read_lpa' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69b1f1c9'/>
+      <elf-symbol name='genphy_read_mmd_unsupported' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x30757ffc'/>
+      <elf-symbol name='genphy_read_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x903fcde4'/>
+      <elf-symbol name='genphy_read_status_fixed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c4f7f51'/>
+      <elf-symbol name='genphy_restart_aneg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb13ebabd'/>
+      <elf-symbol name='genphy_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8ace21ab'/>
+      <elf-symbol name='genphy_setup_forced' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xec6d11a6'/>
+      <elf-symbol name='genphy_soft_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc53faf1c'/>
+      <elf-symbol name='genphy_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x953da077'/>
+      <elf-symbol name='genphy_update_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x856ef5c9'/>
+      <elf-symbol name='genphy_write_mmd_unsupported' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1dad9778'/>
+      <elf-symbol name='get_cpu_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6907e8da'/>
+      <elf-symbol name='get_cpu_idle_time' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9fe899b7'/>
+      <elf-symbol name='get_cpu_idle_time_us' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7b9793a2'/>
+      <elf-symbol name='get_cpu_iowait_time_us' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1234e483'/>
+      <elf-symbol name='get_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x13fca8b1'/>
+      <elf-symbol name='get_device_system_crosststamp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e5c9224'/>
+      <elf-symbol name='get_each_dmabuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf8e831f'/>
+      <elf-symbol name='get_each_object_track' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ff900e4'/>
+      <elf-symbol name='get_fs_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x393e814f'/>
+      <elf-symbol name='get_governor_parent_kobj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e38d599'/>
+      <elf-symbol name='get_kernel_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd5b51a2'/>
+      <elf-symbol name='get_net_ns_by_fd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8f872c'/>
+      <elf-symbol name='get_net_ns_by_pid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x78a69b54'/>
+      <elf-symbol name='get_next_ino' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe953b21f'/>
+      <elf-symbol name='get_option' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb0e10781'/>
+      <elf-symbol name='get_options' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x868acba5'/>
+      <elf-symbol name='get_page_owner_handle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbdd70345'/>
+      <elf-symbol name='get_pfnblock_flags_mask' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ea4e9c5'/>
+      <elf-symbol name='get_pid_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbc24e309'/>
+      <elf-symbol name='get_random_bytes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79aa04a2'/>
+      <elf-symbol name='get_random_u32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd36dc10c'/>
+      <elf-symbol name='get_random_u64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe3ff2c41'/>
+      <elf-symbol name='get_sg_io_hdr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1de4ccb2'/>
+      <elf-symbol name='get_slabinfo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e689a6d'/>
+      <elf-symbol name='get_state_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3808cb1'/>
+      <elf-symbol name='get_state_synchronize_srcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3bda7ffc'/>
+      <elf-symbol name='get_task_cred' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4d5f34f'/>
+      <elf-symbol name='get_task_mm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c9998cf'/>
+      <elf-symbol name='get_task_pid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x806ce477'/>
+      <elf-symbol name='get_thermal_instance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd99fe99a'/>
+      <elf-symbol name='get_tree_bdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd49bbd04'/>
+      <elf-symbol name='get_tree_single' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67ce2fcf'/>
+      <elf-symbol name='get_unmapped_area' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69dc3863'/>
+      <elf-symbol name='get_unused_fd_flags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa843805a'/>
+      <elf-symbol name='get_user_ifreq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33fc2a31'/>
+      <elf-symbol name='get_user_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x752e9885'/>
+      <elf-symbol name='get_user_pages_fast' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2d02692'/>
+      <elf-symbol name='get_user_pages_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1d35fae'/>
+      <elf-symbol name='get_user_pages_remote' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1d36e9bb'/>
+      <elf-symbol name='get_vaddr_frames' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2d9e090'/>
+      <elf-symbol name='get_wchan' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc38208aa'/>
+      <elf-symbol name='get_zeroed_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf09b5d9a'/>
+      <elf-symbol name='getboottime64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef464c28'/>
+      <elf-symbol name='gether_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8878cfa6'/>
+      <elf-symbol name='gether_connect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2f07b68'/>
+      <elf-symbol name='gether_disconnect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc980b1d8'/>
+      <elf-symbol name='gether_get_dev_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x373cb5ad'/>
+      <elf-symbol name='gether_get_host_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ab69a6c'/>
+      <elf-symbol name='gether_get_host_addr_u8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x753a53ae'/>
+      <elf-symbol name='gether_get_ifname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa37995e6'/>
+      <elf-symbol name='gether_get_qmult' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfeb9bde6'/>
+      <elf-symbol name='gether_register_netdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8070c8d4'/>
+      <elf-symbol name='gether_set_dev_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2a49db6'/>
+      <elf-symbol name='gether_set_gadget' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2ad105a2'/>
+      <elf-symbol name='gether_set_host_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb2b28263'/>
+      <elf-symbol name='gether_set_ifname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6f8a5f1'/>
+      <elf-symbol name='gether_set_qmult' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x559df9de'/>
+      <elf-symbol name='gether_setup_name_default' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15f53cff'/>
+      <elf-symbol name='gf128mul_lle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e13f6f6'/>
+      <elf-symbol name='gic_cpu_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7b1df3a'/>
+      <elf-symbol name='gic_dist_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd866bde1'/>
+      <elf-symbol name='gic_dist_wait_for_rwp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f9d6c73'/>
+      <elf-symbol name='gic_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x14da596c'/>
+      <elf-symbol name='gic_v2_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1edeef7e'/>
+      <elf-symbol name='glob_match' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5009c71d'/>
+      <elf-symbol name='gov_attr_set_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x476b8502'/>
+      <elf-symbol name='gov_attr_set_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7be30d78'/>
+      <elf-symbol name='gov_attr_set_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5a9b4d3a'/>
+      <elf-symbol name='gov_update_cpu_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf696b72'/>
+      <elf-symbol name='gpio_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe990052'/>
+      <elf-symbol name='gpio_free_array' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb0d1656c'/>
+      <elf-symbol name='gpio_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47229b5c'/>
+      <elf-symbol name='gpio_request_array' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ba2bb2b'/>
+      <elf-symbol name='gpio_request_one' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x403f9529'/>
+      <elf-symbol name='gpio_to_desc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb01f1abd'/>
+      <elf-symbol name='gpiochip_add_data_with_key' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x485c381a'/>
+      <elf-symbol name='gpiochip_add_pin_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8f66187'/>
+      <elf-symbol name='gpiochip_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f5faf55'/>
+      <elf-symbol name='gpiochip_generic_config' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x988e0e44'/>
+      <elf-symbol name='gpiochip_generic_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x708012a6'/>
+      <elf-symbol name='gpiochip_generic_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x600a4965'/>
+      <elf-symbol name='gpiochip_get_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa46243f5'/>
+      <elf-symbol name='gpiochip_line_is_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x224ae7dd'/>
+      <elf-symbol name='gpiochip_line_is_valid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf217ffba'/>
+      <elf-symbol name='gpiochip_lock_as_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x723b48ef'/>
+      <elf-symbol name='gpiochip_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x739955b3'/>
+      <elf-symbol name='gpiochip_unlock_as_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa44972cf'/>
+      <elf-symbol name='gpiod_cansleep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x87eeff08'/>
+      <elf-symbol name='gpiod_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5991c5a4'/>
+      <elf-symbol name='gpiod_direction_input' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1a37bd4'/>
+      <elf-symbol name='gpiod_direction_output' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdcba0887'/>
+      <elf-symbol name='gpiod_direction_output_raw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73bca09f'/>
+      <elf-symbol name='gpiod_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc8f1b796'/>
+      <elf-symbol name='gpiod_get_direction' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e5f87e8'/>
+      <elf-symbol name='gpiod_get_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x58a679f5'/>
+      <elf-symbol name='gpiod_get_optional' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x22ba2692'/>
+      <elf-symbol name='gpiod_get_raw_value' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90a8bed2'/>
+      <elf-symbol name='gpiod_get_raw_value_cansleep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9137ab8'/>
+      <elf-symbol name='gpiod_get_value' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8dc4785d'/>
+      <elf-symbol name='gpiod_get_value_cansleep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f68cc42'/>
+      <elf-symbol name='gpiod_is_active_low' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe5bba0a2'/>
+      <elf-symbol name='gpiod_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x341788f9'/>
+      <elf-symbol name='gpiod_set_array_value_cansleep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1f208ea1'/>
+      <elf-symbol name='gpiod_set_consumer_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd03d5ad2'/>
+      <elf-symbol name='gpiod_set_debounce' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa02d90fe'/>
+      <elf-symbol name='gpiod_set_raw_value' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4da82c0'/>
+      <elf-symbol name='gpiod_set_raw_value_cansleep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x882a9510'/>
+      <elf-symbol name='gpiod_set_value' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8a7ed72'/>
+      <elf-symbol name='gpiod_set_value_cansleep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1aa2bbba'/>
+      <elf-symbol name='gpiod_to_chip' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6b12e4c'/>
+      <elf-symbol name='gpiod_to_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5344c6e4'/>
+      <elf-symbol name='grab_cache_page_write_begin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2c978c4'/>
+      <elf-symbol name='gre_add_protocol' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x555468c2'/>
+      <elf-symbol name='gre_del_protocol' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5932f785'/>
+      <elf-symbol name='gro_cells_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f54ead7'/>
+      <elf-symbol name='gro_cells_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f534a5d'/>
+      <elf-symbol name='gro_cells_receive' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf79afb17'/>
+      <elf-symbol name='gs_alloc_req' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43efdaa9'/>
+      <elf-symbol name='gs_free_req' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x29b24be5'/>
+      <elf-symbol name='gserial_alloc_line' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33bfdca2'/>
+      <elf-symbol name='gserial_connect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa24813c0'/>
+      <elf-symbol name='gserial_disconnect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35f72106'/>
+      <elf-symbol name='gserial_free_line' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6652875'/>
+      <elf-symbol name='gserial_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf1849334'/>
+      <elf-symbol name='gserial_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x11ef8e79'/>
+      <elf-symbol name='guid_gen' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c3f70e0'/>
+      <elf-symbol name='handle_bad_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3edea963'/>
+      <elf-symbol name='handle_edge_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xab1d424c'/>
+      <elf-symbol name='handle_fasteoi_ack_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6dde1f50'/>
+      <elf-symbol name='handle_fasteoi_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x569f7b5'/>
+      <elf-symbol name='handle_level_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e90ecbe'/>
+      <elf-symbol name='handle_nested_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x549525ef'/>
+      <elf-symbol name='handle_simple_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8130cda8'/>
+      <elf-symbol name='handle_sysrq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7647726c'/>
+      <elf-symbol name='hashlen_string' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x162893fd'/>
+      <elf-symbol name='have_governor_per_policy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47aad3b9'/>
+      <elf-symbol name='hci_alloc_dev_priv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8a237ac6'/>
+      <elf-symbol name='hci_cmd_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x985a7210'/>
+      <elf-symbol name='hci_free_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a4f1f25'/>
+      <elf-symbol name='hci_recv_diag' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf16efda'/>
+      <elf-symbol name='hci_recv_frame' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1cde103e'/>
+      <elf-symbol name='hci_register_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb7783a80'/>
+      <elf-symbol name='hci_unregister_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5f028890'/>
+      <elf-symbol name='hdmi_audio_infoframe_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb14ab1ef'/>
+      <elf-symbol name='hdmi_audio_infoframe_pack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x29e1e204'/>
+      <elf-symbol name='hdmi_avi_infoframe_check' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x21be37e1'/>
+      <elf-symbol name='hdmi_avi_infoframe_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25e58a09'/>
+      <elf-symbol name='hdmi_avi_infoframe_pack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x809712ff'/>
+      <elf-symbol name='hdmi_drm_infoframe_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea593f6'/>
+      <elf-symbol name='hdmi_drm_infoframe_pack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4bc2c2f'/>
+      <elf-symbol name='hdmi_drm_infoframe_pack_only' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5a290250'/>
+      <elf-symbol name='hdmi_infoframe_pack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x595d8002'/>
+      <elf-symbol name='hdmi_infoframe_unpack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x998cc3c'/>
+      <elf-symbol name='hdmi_spd_infoframe_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d4c773a'/>
+      <elf-symbol name='hdmi_spd_infoframe_pack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfab1ab0'/>
+      <elf-symbol name='hdmi_vendor_infoframe_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6749d53f'/>
+      <elf-symbol name='hdmi_vendor_infoframe_pack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x526eef2c'/>
+      <elf-symbol name='hex2bin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x50cf7585'/>
+      <elf-symbol name='hex_dump_to_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe916dc6'/>
+      <elf-symbol name='hex_to_bin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x11f7ed4c'/>
+      <elf-symbol name='hid_add_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9d163916'/>
+      <elf-symbol name='hid_alloc_report_buf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7479b71a'/>
+      <elf-symbol name='hid_allocate_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49837b62'/>
+      <elf-symbol name='hid_destroy_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x366819ec'/>
+      <elf-symbol name='hid_hw_close' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbfe54862'/>
+      <elf-symbol name='hid_hw_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xafea9852'/>
+      <elf-symbol name='hid_hw_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6cacac54'/>
+      <elf-symbol name='hid_hw_stop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf48a3144'/>
+      <elf-symbol name='hid_input_report' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbab03524'/>
+      <elf-symbol name='hid_open_report' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c70fdf2'/>
+      <elf-symbol name='hid_parse_report' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x64ee6337'/>
+      <elf-symbol name='hid_report_raw_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33647a3d'/>
+      <elf-symbol name='hid_unregister_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b10e633'/>
+      <elf-symbol name='hidinput_calc_abs_res' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1aa35124'/>
+      <elf-symbol name='housekeeping_cpumask' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee49ad1d'/>
+      <elf-symbol name='housekeeping_test_cpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc45e246f'/>
+      <elf-symbol name='hrtimer_active' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xecd991f'/>
+      <elf-symbol name='hrtimer_cancel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc69bd8c'/>
+      <elf-symbol name='hrtimer_forward' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x76c41756'/>
+      <elf-symbol name='hrtimer_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ebd5214'/>
+      <elf-symbol name='hrtimer_init_sleeper' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad7b96e'/>
+      <elf-symbol name='hrtimer_sleeper_start_expires' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x929c651'/>
+      <elf-symbol name='hrtimer_start_range_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x939fc2ef'/>
+      <elf-symbol name='hrtimer_try_to_cancel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef93df4b'/>
+      <elf-symbol name='hvc_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x52023a1d'/>
+      <elf-symbol name='hvc_instantiate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xafab6744'/>
+      <elf-symbol name='hvc_kick' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9833bc0c'/>
+      <elf-symbol name='hvc_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e110824'/>
+      <elf-symbol name='hvc_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x94497a90'/>
+      <elf-symbol name='hwrng_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x617b026c'/>
+      <elf-symbol name='hwrng_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd57fbd31'/>
+      <elf-symbol name='hwspin_lock_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdc7a87d9'/>
+      <elf-symbol name='hwspin_lock_get_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8de91e57'/>
+      <elf-symbol name='hwspin_lock_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdadb81a4'/>
+      <elf-symbol name='hwspin_lock_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbe38966c'/>
+      <elf-symbol name='hwspin_lock_request_specific' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xecddad5d'/>
+      <elf-symbol name='hwspin_lock_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2cf84401'/>
+      <elf-symbol name='i2c_add_adapter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4822f80e'/>
+      <elf-symbol name='i2c_add_numbered_adapter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe2c38118'/>
+      <elf-symbol name='i2c_bit_add_bus' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34cbf088'/>
+      <elf-symbol name='i2c_bit_add_numbered_bus' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2691a6a9'/>
+      <elf-symbol name='i2c_clients_command' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1dfe44b1'/>
+      <elf-symbol name='i2c_del_adapter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb20912ac'/>
+      <elf-symbol name='i2c_del_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2cc98f97'/>
+      <elf-symbol name='i2c_for_each_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d2259f5'/>
+      <elf-symbol name='i2c_generic_scl_recovery' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5d37c9af'/>
+      <elf-symbol name='i2c_get_adapter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8406409d'/>
+      <elf-symbol name='i2c_get_device_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbf525410'/>
+      <elf-symbol name='i2c_get_dma_safe_msg_buf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x42041512'/>
+      <elf-symbol name='i2c_match_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x407f4fc7'/>
+      <elf-symbol name='i2c_new_ancillary_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8362962'/>
+      <elf-symbol name='i2c_new_client_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66b6c3d8'/>
+      <elf-symbol name='i2c_new_dummy_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40691279'/>
+      <elf-symbol name='i2c_new_scanned_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd26fde5d'/>
+      <elf-symbol name='i2c_parse_fw_timings' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x12449d0a'/>
+      <elf-symbol name='i2c_put_adapter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43c190e4'/>
+      <elf-symbol name='i2c_put_dma_safe_msg_buf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4dae16e4'/>
+      <elf-symbol name='i2c_recover_bus' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb51ff310'/>
+      <elf-symbol name='i2c_register_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2194178'/>
+      <elf-symbol name='i2c_smbus_read_byte' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfc10873e'/>
+      <elf-symbol name='i2c_smbus_read_byte_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa1d780f3'/>
+      <elf-symbol name='i2c_smbus_read_i2c_block_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xecadd3b'/>
+      <elf-symbol name='i2c_smbus_read_word_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1bef8bcb'/>
+      <elf-symbol name='i2c_smbus_write_byte' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa028bfd1'/>
+      <elf-symbol name='i2c_smbus_write_byte_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xafc088af'/>
+      <elf-symbol name='i2c_smbus_write_i2c_block_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0f16db8'/>
+      <elf-symbol name='i2c_smbus_write_word_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b744419'/>
+      <elf-symbol name='i2c_smbus_xfer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e7005f1'/>
+      <elf-symbol name='i2c_transfer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3dff1f08'/>
+      <elf-symbol name='i2c_transfer_buffer_flags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f3b2249'/>
+      <elf-symbol name='i2c_unregister_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbf9e8c2e'/>
+      <elf-symbol name='i2c_verify_adapter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9238231d'/>
+      <elf-symbol name='i2c_verify_client' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbfd02761'/>
+      <elf-symbol name='i3c_device_disable_ibi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99a893ad'/>
+      <elf-symbol name='i3c_device_do_priv_xfers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8dd2d9c'/>
+      <elf-symbol name='i3c_device_enable_ibi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19444c10'/>
+      <elf-symbol name='i3c_device_free_ibi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7cb50226'/>
+      <elf-symbol name='i3c_device_get_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33a28724'/>
+      <elf-symbol name='i3c_device_match_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2382e96b'/>
+      <elf-symbol name='i3c_device_request_ibi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf52b64f8'/>
+      <elf-symbol name='i3c_driver_register_with_owner' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ad03da6'/>
+      <elf-symbol name='i3c_driver_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x161bba48'/>
+      <elf-symbol name='i3c_generic_ibi_alloc_pool' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6fc3f85'/>
+      <elf-symbol name='i3c_generic_ibi_free_pool' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x76fe3e05'/>
+      <elf-symbol name='i3c_generic_ibi_get_free_slot' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x48aaf366'/>
+      <elf-symbol name='i3c_generic_ibi_recycle_slot' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5aaa0622'/>
+      <elf-symbol name='i3c_master_add_i3c_dev_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x701abb8b'/>
+      <elf-symbol name='i3c_master_defslvs_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ec533e7'/>
+      <elf-symbol name='i3c_master_disec_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x477a220e'/>
+      <elf-symbol name='i3c_master_do_daa' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd9d564d'/>
+      <elf-symbol name='i3c_master_enec_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1eab31f9'/>
+      <elf-symbol name='i3c_master_entdaa_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36726f40'/>
+      <elf-symbol name='i3c_master_get_free_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9533439'/>
+      <elf-symbol name='i3c_master_queue_ibi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x283f7d3'/>
+      <elf-symbol name='i3c_master_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc45083da'/>
+      <elf-symbol name='i3c_master_set_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3707e022'/>
+      <elf-symbol name='i3c_master_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1dc3867d'/>
+      <elf-symbol name='i3cdev_to_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe3f6c08'/>
+      <elf-symbol name='icc_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x38c93660'/>
+      <elf-symbol name='icc_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e9d83a1'/>
+      <elf-symbol name='icc_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8cd820ea'/>
+      <elf-symbol name='icc_link_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x97668c36'/>
+      <elf-symbol name='icc_node_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x37f80e12'/>
+      <elf-symbol name='icc_node_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c929842'/>
+      <elf-symbol name='icc_node_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbbc55b7d'/>
+      <elf-symbol name='icc_node_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc58a3ee6'/>
+      <elf-symbol name='icc_nodes_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32fd1438'/>
+      <elf-symbol name='icc_provider_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xffe20b93'/>
+      <elf-symbol name='icc_provider_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbeaa9e07'/>
+      <elf-symbol name='icc_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6906f34d'/>
+      <elf-symbol name='icc_set_bw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba911ac2'/>
+      <elf-symbol name='icc_set_tag' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ff6019d'/>
+      <elf-symbol name='icc_std_aggregate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96eed49c'/>
+      <elf-symbol name='icc_sync_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69c47d11'/>
+      <elf-symbol name='icmp6_send' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5a2828f2'/>
+      <elf-symbol name='ida_alloc_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7a02573'/>
+      <elf-symbol name='ida_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa7d5f92e'/>
+      <elf-symbol name='ida_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xffb7c514'/>
+      <elf-symbol name='idr_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8f11603'/>
+      <elf-symbol name='idr_alloc_cyclic' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91f44510'/>
+      <elf-symbol name='idr_alloc_u32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9916c3a'/>
+      <elf-symbol name='idr_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e17b3ae'/>
+      <elf-symbol name='idr_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20978fb9'/>
+      <elf-symbol name='idr_for_each' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1d40b6f3'/>
+      <elf-symbol name='idr_get_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc57c48a3'/>
+      <elf-symbol name='idr_preload' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x954f099c'/>
+      <elf-symbol name='idr_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7665a95b'/>
+      <elf-symbol name='idr_replace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7b82b9a1'/>
+      <elf-symbol name='ieee802154_alloc_hw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69d2d1b0'/>
+      <elf-symbol name='ieee802154_free_hw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2642d4d'/>
+      <elf-symbol name='ieee802154_register_hw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x76ac76d6'/>
+      <elf-symbol name='ieee802154_rx_irqsafe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72be47fa'/>
+      <elf-symbol name='ieee802154_unregister_hw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3db59fba'/>
+      <elf-symbol name='ieee802154_wake_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8dacbfb8'/>
+      <elf-symbol name='ieee802154_xmit_complete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b78dca9'/>
+      <elf-symbol name='iget5_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10de6f91'/>
+      <elf-symbol name='iget_failed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2a48ff4a'/>
+      <elf-symbol name='iget_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4967697d'/>
+      <elf-symbol name='igrab' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8a9fc3c4'/>
+      <elf-symbol name='ihold' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x678b9b50'/>
+      <elf-symbol name='iio_alloc_pollfunc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca99ef43'/>
+      <elf-symbol name='iio_buffer_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x704cf684'/>
+      <elf-symbol name='iio_buffer_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd008be8d'/>
+      <elf-symbol name='iio_channel_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f4022e2'/>
+      <elf-symbol name='iio_channel_get_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1281098c'/>
+      <elf-symbol name='iio_channel_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b7a6504'/>
+      <elf-symbol name='iio_channel_release_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4b877bf'/>
+      <elf-symbol name='iio_dealloc_pollfunc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c27ed80'/>
+      <elf-symbol name='iio_device_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x398bf38f'/>
+      <elf-symbol name='iio_device_attach_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1896d888'/>
+      <elf-symbol name='iio_device_claim_direct_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9d4ce395'/>
+      <elf-symbol name='iio_device_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7237c8fe'/>
+      <elf-symbol name='iio_device_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbc9efe2'/>
+      <elf-symbol name='iio_device_release_direct_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xedeb1c64'/>
+      <elf-symbol name='iio_device_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3438a517'/>
+      <elf-symbol name='iio_get_channel_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43cbc1df'/>
+      <elf-symbol name='iio_get_time_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd587aacb'/>
+      <elf-symbol name='iio_kfifo_allocate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79fbf1f2'/>
+      <elf-symbol name='iio_kfifo_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3213177d'/>
+      <elf-symbol name='iio_pollfunc_store_time' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf76bbeb'/>
+      <elf-symbol name='iio_push_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0bbeac1'/>
+      <elf-symbol name='iio_push_to_buffers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb70d5e3f'/>
+      <elf-symbol name='iio_read_channel_attribute' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2862bed3'/>
+      <elf-symbol name='iio_read_channel_processed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2435705d'/>
+      <elf-symbol name='iio_read_channel_raw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19a2a1e'/>
+      <elf-symbol name='iio_read_channel_scale' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10b8ec94'/>
+      <elf-symbol name='iio_read_const_attr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdbe815e1'/>
+      <elf-symbol name='iio_read_mount_matrix' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90100782'/>
+      <elf-symbol name='iio_show_mount_matrix' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x131e3217'/>
+      <elf-symbol name='iio_trigger_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9597d8'/>
+      <elf-symbol name='iio_trigger_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6cbb2869'/>
+      <elf-symbol name='iio_trigger_generic_data_rdy_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d6bcdcb'/>
+      <elf-symbol name='iio_trigger_notify_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb4a9fd4'/>
+      <elf-symbol name='iio_trigger_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3970d75b'/>
+      <elf-symbol name='iio_trigger_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x433fa49d'/>
+      <elf-symbol name='iio_triggered_buffer_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x83d4b035'/>
+      <elf-symbol name='iio_triggered_buffer_setup_ext' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40f791fb'/>
+      <elf-symbol name='iio_update_buffers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41949c3e'/>
+      <elf-symbol name='iio_validate_scan_mask_onehot' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x483f3668'/>
+      <elf-symbol name='iio_write_channel_attribute' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73f2aa5a'/>
+      <elf-symbol name='iio_write_channel_raw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c01fbfc'/>
+      <elf-symbol name='ilookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa62da3e'/>
+      <elf-symbol name='ilookup5' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaefadd95'/>
+      <elf-symbol name='import_iovec' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51c78693'/>
+      <elf-symbol name='in4_pton' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xac5fcec0'/>
+      <elf-symbol name='in6_dev_finish_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x446a32dd'/>
+      <elf-symbol name='in6_pton' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x609bcd98'/>
+      <elf-symbol name='in_aton' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b6314fd'/>
+      <elf-symbol name='in_egroup_p' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x39461d6a'/>
+      <elf-symbol name='in_group_p' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8b8059bd'/>
+      <elf-symbol name='inc_nlink' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf446ce25'/>
+      <elf-symbol name='inc_node_page_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa86d1ce7'/>
+      <elf-symbol name='inc_zone_page_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a28a410'/>
+      <elf-symbol name='inet6_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbb27f270'/>
+      <elf-symbol name='inet_csk_get_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5f5b580c'/>
+      <elf-symbol name='inet_dev_addr_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66aff2a2'/>
+      <elf-symbol name='inet_diag_bc_sk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72fc97ac'/>
+      <elf-symbol name='inet_diag_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xafb6fbcc'/>
+      <elf-symbol name='inet_diag_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2fd729b4'/>
+      <elf-symbol name='inet_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xabb4473a'/>
+      <elf-symbol name='inet_proto_csum_replace4' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99af5185'/>
+      <elf-symbol name='inet_select_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xec1e10b4'/>
+      <elf-symbol name='inet_sk_diag_fill' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff5e4c2f'/>
+      <elf-symbol name='init_dummy_netdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x114f146'/>
+      <elf-symbol name='init_iova_domain' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6330e4b1'/>
+      <elf-symbol name='init_pseudo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e4f869d'/>
+      <elf-symbol name='init_special_inode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xac8eab48'/>
+      <elf-symbol name='init_srcu_struct' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7df630a'/>
+      <elf-symbol name='init_timer_key' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79cf5987'/>
+      <elf-symbol name='init_wait_entry' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe487975'/>
+      <elf-symbol name='inode_dio_wait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x21404200'/>
+      <elf-symbol name='inode_get_bytes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b1feb67'/>
+      <elf-symbol name='inode_init_once' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x346a07aa'/>
+      <elf-symbol name='inode_init_owner' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8b81b16'/>
+      <elf-symbol name='inode_needs_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x560d29ba'/>
+      <elf-symbol name='inode_newsize_ok' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdc26e977'/>
+      <elf-symbol name='inode_nohighmem' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8ea3124'/>
+      <elf-symbol name='inode_owner_or_capable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd11178b0'/>
+      <elf-symbol name='inode_set_bytes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x82a26805'/>
+      <elf-symbol name='inode_set_flags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xabfe77b7'/>
+      <elf-symbol name='input_alloc_absinfo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d64962b'/>
+      <elf-symbol name='input_allocate_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e3bb8f1'/>
+      <elf-symbol name='input_close_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf9ef4a8'/>
+      <elf-symbol name='input_device_enabled' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x457260a3'/>
+      <elf-symbol name='input_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdd007012'/>
+      <elf-symbol name='input_ff_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8da26c5'/>
+      <elf-symbol name='input_ff_create_memless' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x17dd354a'/>
+      <elf-symbol name='input_ff_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56ae6c9e'/>
+      <elf-symbol name='input_free_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0a627ac'/>
+      <elf-symbol name='input_mt_assign_slots' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfcef6299'/>
+      <elf-symbol name='input_mt_destroy_slots' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56701173'/>
+      <elf-symbol name='input_mt_drop_unused' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf57970e1'/>
+      <elf-symbol name='input_mt_get_slot_by_key' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33d79207'/>
+      <elf-symbol name='input_mt_init_slots' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbf42d638'/>
+      <elf-symbol name='input_mt_report_finger_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb22d4543'/>
+      <elf-symbol name='input_mt_report_pointer_emulation' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x572d0aca'/>
+      <elf-symbol name='input_mt_report_slot_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c51953'/>
+      <elf-symbol name='input_mt_sync_frame' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x83e03fd9'/>
+      <elf-symbol name='input_open_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a2070cd'/>
+      <elf-symbol name='input_register_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeba2a98f'/>
+      <elf-symbol name='input_register_handle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ee14eec'/>
+      <elf-symbol name='input_register_handler' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8a77ddd5'/>
+      <elf-symbol name='input_scancode_to_scalar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c256e1f'/>
+      <elf-symbol name='input_set_abs_params' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x420c430d'/>
+      <elf-symbol name='input_set_capability' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x344f2409'/>
+      <elf-symbol name='input_set_poll_interval' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x71fc88ff'/>
+      <elf-symbol name='input_set_timestamp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8e95ac5'/>
+      <elf-symbol name='input_setup_polling' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ce7c773'/>
+      <elf-symbol name='input_unregister_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b8866fb'/>
+      <elf-symbol name='input_unregister_handle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8246bf52'/>
+      <elf-symbol name='input_unregister_handler' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6523ef7'/>
+      <elf-symbol name='insert_inode_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd5e1e11d'/>
+      <elf-symbol name='int_pow' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1af267f8'/>
+      <elf-symbol name='int_sqrt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb678366f'/>
+      <elf-symbol name='interval_tree_insert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdab5a1eb'/>
+      <elf-symbol name='interval_tree_iter_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa44a1307'/>
+      <elf-symbol name='interval_tree_iter_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd96babb4'/>
+      <elf-symbol name='interval_tree_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b53e14'/>
+      <elf-symbol name='invalidate_bdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x800f6f36'/>
+      <elf-symbol name='invalidate_bh_lrus' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf5a691cd'/>
+      <elf-symbol name='invalidate_inode_buffers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5ce1234'/>
+      <elf-symbol name='invalidate_mapping_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x813bc518'/>
+      <elf-symbol name='io_schedule' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x93a6e0b2'/>
+      <elf-symbol name='io_schedule_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfbc4f89e'/>
+      <elf-symbol name='ioc_lookup_icq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x406089f4'/>
+      <elf-symbol name='iomap_dio_complete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x344a2c84'/>
+      <elf-symbol name='iommu_alloc_resv_region' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf40724'/>
+      <elf-symbol name='iommu_attach_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5939a898'/>
+      <elf-symbol name='iommu_attach_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf47d9b35'/>
+      <elf-symbol name='iommu_aux_attach_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc15aa6e'/>
+      <elf-symbol name='iommu_aux_detach_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73cb86b8'/>
+      <elf-symbol name='iommu_aux_get_pasid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x12076c3c'/>
+      <elf-symbol name='iommu_detach_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66959bde'/>
+      <elf-symbol name='iommu_dev_enable_feature' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1958377f'/>
+      <elf-symbol name='iommu_dev_feature_enabled' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8cc308'/>
+      <elf-symbol name='iommu_device_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3420c37d'/>
+      <elf-symbol name='iommu_device_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe11202e6'/>
+      <elf-symbol name='iommu_device_sysfs_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0d49d48'/>
+      <elf-symbol name='iommu_device_sysfs_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8da6a2c1'/>
+      <elf-symbol name='iommu_device_unlink' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90236d86'/>
+      <elf-symbol name='iommu_device_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc6617388'/>
+      <elf-symbol name='iommu_dma_enable_best_fit_algo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b5c9384'/>
+      <elf-symbol name='iommu_dma_get_resv_regions' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdb7faf5b'/>
+      <elf-symbol name='iommu_domain_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc12d92ce'/>
+      <elf-symbol name='iommu_domain_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34d11aa3'/>
+      <elf-symbol name='iommu_fwspec_add_ids' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x48966d1e'/>
+      <elf-symbol name='iommu_fwspec_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x701b5417'/>
+      <elf-symbol name='iommu_get_dma_cookie' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf81a028'/>
+      <elf-symbol name='iommu_get_domain_for_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a07760b'/>
+      <elf-symbol name='iommu_get_msi_cookie' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4b0f89f7'/>
+      <elf-symbol name='iommu_group_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d22bb58'/>
+      <elf-symbol name='iommu_group_for_each_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6d8acec'/>
+      <elf-symbol name='iommu_group_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c8c0496'/>
+      <elf-symbol name='iommu_group_get_iommudata' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd55ad93b'/>
+      <elf-symbol name='iommu_group_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89485687'/>
+      <elf-symbol name='iommu_group_ref_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d6d0bbc'/>
+      <elf-symbol name='iommu_group_register_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36075bb5'/>
+      <elf-symbol name='iommu_group_remove_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x476b3cf1'/>
+      <elf-symbol name='iommu_group_set_iommudata' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc66b77b1'/>
+      <elf-symbol name='iommu_group_set_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbcdd5b99'/>
+      <elf-symbol name='iommu_iova_to_phys' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ad8cfc9'/>
+      <elf-symbol name='iommu_map' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25984b2e'/>
+      <elf-symbol name='iommu_map_atomic' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e4d6555'/>
+      <elf-symbol name='iommu_map_sg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x627732dd'/>
+      <elf-symbol name='iommu_present' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6bd6fac4'/>
+      <elf-symbol name='iommu_put_dma_cookie' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8813281'/>
+      <elf-symbol name='iommu_register_device_fault_handler' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa4339f1a'/>
+      <elf-symbol name='iommu_report_device_fault' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4b28d0bb'/>
+      <elf-symbol name='iommu_set_fault_handler' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c0de726'/>
+      <elf-symbol name='iommu_set_pgtable_quirks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4fcaaf0'/>
+      <elf-symbol name='iommu_unmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1d06987f'/>
+      <elf-symbol name='iommu_unregister_device_fault_handler' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfc1e4451'/>
+      <elf-symbol name='ioremap_cache' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7698027'/>
+      <elf-symbol name='iounmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xedc03953'/>
+      <elf-symbol name='iov_iter_advance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbffd57bd'/>
+      <elf-symbol name='iov_iter_alignment' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3fe63a4a'/>
+      <elf-symbol name='iov_iter_bvec' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5f694cb5'/>
+      <elf-symbol name='iov_iter_get_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe446fdf3'/>
+      <elf-symbol name='iov_iter_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf4246f5'/>
+      <elf-symbol name='iov_iter_kvec' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9678b9ab'/>
+      <elf-symbol name='iov_iter_revert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xacf7aacd'/>
+      <elf-symbol name='iov_iter_single_seg_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9160b01d'/>
+      <elf-symbol name='iov_iter_zero' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26913ed2'/>
+      <elf-symbol name='iova_cache_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x438d8df2'/>
+      <elf-symbol name='iova_cache_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7061ef3'/>
+      <elf-symbol name='ip6_find_1stfragopt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f0c45ff'/>
+      <elf-symbol name='ip6_local_out' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe10f917c'/>
+      <elf-symbol name='ip6_redirect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ea39e16'/>
+      <elf-symbol name='ip6_route_me_harder' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf1d8376'/>
+      <elf-symbol name='ip6_route_output_flags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25dbfaac'/>
+      <elf-symbol name='ip6_update_pmtu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7335e595'/>
+      <elf-symbol name='ip6t_alloc_initial_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6cac19a'/>
+      <elf-symbol name='ip6t_do_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7a5581ac'/>
+      <elf-symbol name='ip6t_register_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3e6f39bf'/>
+      <elf-symbol name='ip_compute_csum' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20eadeb6'/>
+      <elf-symbol name='ip_local_deliver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61cbc0a2'/>
+      <elf-symbol name='ip_local_out' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc77f2db9'/>
+      <elf-symbol name='ip_route_me_harder' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcbe85365'/>
+      <elf-symbol name='ip_route_output_flow' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5077ac8a'/>
+      <elf-symbol name='ip_send_check' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2124474'/>
+      <elf-symbol name='ipcomp_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb77f7bae'/>
+      <elf-symbol name='ipcomp_init_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd723c937'/>
+      <elf-symbol name='ipcomp_input' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4b104180'/>
+      <elf-symbol name='ipcomp_output' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x18532df3'/>
+      <elf-symbol name='ipi_desc_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5747de7f'/>
+      <elf-symbol name='iput' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5037b044'/>
+      <elf-symbol name='ipv4_redirect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c717736'/>
+      <elf-symbol name='ipv4_update_pmtu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ef078f2'/>
+      <elf-symbol name='ipv6_chk_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb17d5336'/>
+      <elf-symbol name='ipv6_dev_get_saddr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56a236cc'/>
+      <elf-symbol name='ipv6_ext_hdr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x452ba683'/>
+      <elf-symbol name='ipv6_find_hdr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51dd5d3e'/>
+      <elf-symbol name='ipv6_select_ident' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6f40c2b6'/>
+      <elf-symbol name='ipv6_skip_exthdr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3abf63'/>
+      <elf-symbol name='ir_raw_event_handle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca089568'/>
+      <elf-symbol name='ir_raw_event_store' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfcf29c34'/>
+      <elf-symbol name='ir_raw_event_store_edge' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2021164d'/>
+      <elf-symbol name='ir_raw_gen_manchester' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7cf52901'/>
+      <elf-symbol name='ir_raw_gen_pd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e12e343'/>
+      <elf-symbol name='ir_raw_gen_pl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2ad91f6e'/>
+      <elf-symbol name='ir_raw_handler_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5948cca'/>
+      <elf-symbol name='ir_raw_handler_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5055bce2'/>
+      <elf-symbol name='irq_check_status_bit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf47654df'/>
+      <elf-symbol name='irq_chip_ack_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8e1f116'/>
+      <elf-symbol name='irq_chip_disable_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7eafd69d'/>
+      <elf-symbol name='irq_chip_enable_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a1cbdae'/>
+      <elf-symbol name='irq_chip_eoi_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x275cc24e'/>
+      <elf-symbol name='irq_chip_get_parent_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x953ad500'/>
+      <elf-symbol name='irq_chip_mask_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x381ddbc2'/>
+      <elf-symbol name='irq_chip_retrigger_hierarchy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33275d06'/>
+      <elf-symbol name='irq_chip_set_affinity_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4de31f24'/>
+      <elf-symbol name='irq_chip_set_parent_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb42d01ff'/>
+      <elf-symbol name='irq_chip_set_type_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf041284c'/>
+      <elf-symbol name='irq_chip_set_vcpu_affinity_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49ee85fd'/>
+      <elf-symbol name='irq_chip_set_wake_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36fa54be'/>
+      <elf-symbol name='irq_chip_unmask_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x39e2643b'/>
+      <elf-symbol name='irq_create_fwspec_mapping' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb82142e4'/>
+      <elf-symbol name='irq_create_mapping_affinity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5465ea57'/>
+      <elf-symbol name='irq_create_of_mapping' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc1ff2307'/>
+      <elf-symbol name='irq_dispose_mapping' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c7db649'/>
+      <elf-symbol name='irq_do_set_affinity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6339391b'/>
+      <elf-symbol name='irq_domain_add_legacy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x75d8e8dd'/>
+      <elf-symbol name='irq_domain_alloc_irqs_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x245655f7'/>
+      <elf-symbol name='irq_domain_associate_many' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3e95203'/>
+      <elf-symbol name='irq_domain_create_hierarchy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x78cded33'/>
+      <elf-symbol name='irq_domain_disconnect_hierarchy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xacc1fea0'/>
+      <elf-symbol name='irq_domain_free_irqs_common' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1436aef4'/>
+      <elf-symbol name='irq_domain_free_irqs_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2aee73b0'/>
+      <elf-symbol name='irq_domain_get_irq_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x698117ab'/>
+      <elf-symbol name='irq_domain_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1939ec3f'/>
+      <elf-symbol name='irq_domain_set_hwirq_and_chip' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd919894'/>
+      <elf-symbol name='irq_domain_set_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x58a50066'/>
+      <elf-symbol name='irq_domain_update_bus_token' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66f856bc'/>
+      <elf-symbol name='irq_domain_xlate_onecell' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10d0f014'/>
+      <elf-symbol name='irq_domain_xlate_onetwocell' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x819a9e3'/>
+      <elf-symbol name='irq_domain_xlate_twocell' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae4c3af4'/>
+      <elf-symbol name='irq_find_matching_fwspec' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b2366d8'/>
+      <elf-symbol name='irq_force_affinity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1000ff31'/>
+      <elf-symbol name='irq_gc_ack_set_bit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x512d2b2f'/>
+      <elf-symbol name='irq_gc_mask_clr_bit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4a572e9f'/>
+      <elf-symbol name='irq_gc_mask_set_bit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae5c7875'/>
+      <elf-symbol name='irq_get_domain_generic_chip' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36be9464'/>
+      <elf-symbol name='irq_get_irq_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2a9b1ac8'/>
+      <elf-symbol name='irq_get_irqchip_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1d222ced'/>
+      <elf-symbol name='irq_modify_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7522f3ba'/>
+      <elf-symbol name='irq_of_parse_and_map' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x178c2e1f'/>
+      <elf-symbol name='irq_set_affinity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x135e366e'/>
+      <elf-symbol name='irq_set_affinity_hint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2a7b4b03'/>
+      <elf-symbol name='irq_set_affinity_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7082834f'/>
+      <elf-symbol name='irq_set_chained_handler_and_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9502e48f'/>
+      <elf-symbol name='irq_set_chip' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbaa9f45'/>
+      <elf-symbol name='irq_set_chip_and_handler_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde663212'/>
+      <elf-symbol name='irq_set_chip_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20a789ac'/>
+      <elf-symbol name='irq_set_handler_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3dcb88a0'/>
+      <elf-symbol name='irq_set_irq_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbc477a2'/>
+      <elf-symbol name='irq_set_irq_wake' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce2840e7'/>
+      <elf-symbol name='irq_set_irqchip_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb88dbfce'/>
+      <elf-symbol name='irq_set_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdc6596fa'/>
+      <elf-symbol name='irq_setup_alt_chip' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7b398d5b'/>
+      <elf-symbol name='irq_to_desc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x48cd19ad'/>
+      <elf-symbol name='irq_work_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe8874a05'/>
+      <elf-symbol name='irq_work_queue_on' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c490170'/>
+      <elf-symbol name='irq_work_run' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x541bd60a'/>
+      <elf-symbol name='irq_work_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc672a391'/>
+      <elf-symbol name='is_ashmem_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4bef6e5f'/>
+      <elf-symbol name='is_bad_inode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8da8fb9d'/>
+      <elf-symbol name='is_console_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x944a564d'/>
+      <elf-symbol name='is_dma_buf_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb18b0a9d'/>
+      <elf-symbol name='is_virtio_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce1c13ab'/>
+      <elf-symbol name='is_vmalloc_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc31db0ce'/>
+      <elf-symbol name='isolate_and_split_free_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeda66b42'/>
+      <elf-symbol name='isolate_anon_lru_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb1638d4'/>
+      <elf-symbol name='iter_file_splice_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc249b27'/>
+      <elf-symbol name='iterate_dir' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff354035'/>
+      <elf-symbol name='iterate_fd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca27c3a5'/>
+      <elf-symbol name='iterate_supers_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb826dc56'/>
+      <elf-symbol name='iunique' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd5b19234'/>
+      <elf-symbol name='iw_handler_get_spy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda102b47'/>
+      <elf-symbol name='iw_handler_get_thrspy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x141c3bfe'/>
+      <elf-symbol name='iw_handler_set_spy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcb0fa353'/>
+      <elf-symbol name='iw_handler_set_thrspy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x71612ff5'/>
+      <elf-symbol name='iwe_stream_add_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4cba441d'/>
+      <elf-symbol name='iwe_stream_add_point' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8249512'/>
+      <elf-symbol name='iwe_stream_add_value' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc41bc980'/>
+      <elf-symbol name='jiffies64_to_msecs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x92ec510d'/>
+      <elf-symbol name='jiffies64_to_nsecs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee8d74d6'/>
+      <elf-symbol name='jiffies_64_to_clock_t' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1ddf995'/>
+      <elf-symbol name='jiffies_to_msecs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x37befc70'/>
+      <elf-symbol name='jiffies_to_usecs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f24de73'/>
+      <elf-symbol name='kasprintf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb384d37'/>
+      <elf-symbol name='kern_mount' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x98389f55'/>
+      <elf-symbol name='kern_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6d8cbd90'/>
+      <elf-symbol name='kern_unmount' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2048aacb'/>
+      <elf-symbol name='kernel_bind' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6624074f'/>
+      <elf-symbol name='kernel_connect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda37c1cc'/>
+      <elf-symbol name='kernel_getsockname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x318b7ae4'/>
+      <elf-symbol name='kernel_neon_begin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8fd180e7'/>
+      <elf-symbol name='kernel_neon_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8a8110c'/>
+      <elf-symbol name='kernel_param_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56a842c3'/>
+      <elf-symbol name='kernel_param_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x561f5f73'/>
+      <elf-symbol name='kernel_power_off' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf184d189'/>
+      <elf-symbol name='kernel_recvmsg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4cba90e'/>
+      <elf-symbol name='kernel_restart' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1e7bbcb3'/>
+      <elf-symbol name='kernel_sendmsg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ea80216'/>
+      <elf-symbol name='kernel_sigaction' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6df1aaf1'/>
+      <elf-symbol name='kernel_sock_shutdown' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc8f9b45'/>
+      <elf-symbol name='kernfs_find_and_get_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5d87b7c6'/>
+      <elf-symbol name='kernfs_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3466a2f'/>
+      <elf-symbol name='kernfs_notify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x17a89d3a'/>
+      <elf-symbol name='kernfs_path_from_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1f8aa20c'/>
+      <elf-symbol name='kernfs_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff68043b'/>
+      <elf-symbol name='key_create_or_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe1d2e94'/>
+      <elf-symbol name='key_invalidate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x615cff5b'/>
+      <elf-symbol name='key_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x267f45e1'/>
+      <elf-symbol name='key_revoke' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeae3efbe'/>
+      <elf-symbol name='key_validate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf842e072'/>
+      <elf-symbol name='keyring_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfc5471da'/>
+      <elf-symbol name='kfree' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x37a0cba'/>
+      <elf-symbol name='kfree_const' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf474fdcb'/>
+      <elf-symbol name='kfree_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8b043f2'/>
+      <elf-symbol name='kfree_sensitive' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0760fc0'/>
+      <elf-symbol name='kfree_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3387eaf7'/>
+      <elf-symbol name='kfree_skb_list' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3323e7aa'/>
+      <elf-symbol name='kfree_skb_reason' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfbbf66a3'/>
+      <elf-symbol name='kick_all_cpus_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6e1a69d'/>
+      <elf-symbol name='kill_anon_super' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62289ff3'/>
+      <elf-symbol name='kill_block_super' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbcc4f9f4'/>
+      <elf-symbol name='kill_fasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc3c831e'/>
+      <elf-symbol name='kill_litter_super' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x703d7d07'/>
+      <elf-symbol name='kill_pid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b88bc83'/>
+      <elf-symbol name='kmalloc_order' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbbe80fdb'/>
+      <elf-symbol name='kmalloc_order_trace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8b9f817'/>
+      <elf-symbol name='kmem_cache_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa092972e'/>
+      <elf-symbol name='kmem_cache_alloc_bulk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3fcf5646'/>
+      <elf-symbol name='kmem_cache_alloc_trace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5239aaef'/>
+      <elf-symbol name='kmem_cache_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3116c014'/>
+      <elf-symbol name='kmem_cache_create_usercopy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef61a739'/>
+      <elf-symbol name='kmem_cache_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe348b38a'/>
+      <elf-symbol name='kmem_cache_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d011cb1'/>
+      <elf-symbol name='kmem_cache_free_bulk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc93f3e08'/>
+      <elf-symbol name='kmem_cache_shrink' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x12b8e7d3'/>
+      <elf-symbol name='kmemdup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66b4cc41'/>
+      <elf-symbol name='kmemdup_nul' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb3f548ad'/>
+      <elf-symbol name='kmsg_dump_get_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee518148'/>
+      <elf-symbol name='kmsg_dump_get_line' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f2c996d'/>
+      <elf-symbol name='kmsg_dump_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c5ad0cd'/>
+      <elf-symbol name='kmsg_dump_rewind' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x480305ca'/>
+      <elf-symbol name='kmsg_dump_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda0947de'/>
+      <elf-symbol name='kobject_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x77c15e3a'/>
+      <elf-symbol name='kobject_create_and_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe2f2ac01'/>
+      <elf-symbol name='kobject_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdcd7f2d3'/>
+      <elf-symbol name='kobject_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c53e9e1'/>
+      <elf-symbol name='kobject_get_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84f9fe95'/>
+      <elf-symbol name='kobject_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6d584011'/>
+      <elf-symbol name='kobject_init_and_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8ff170bc'/>
+      <elf-symbol name='kobject_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe6b276a'/>
+      <elf-symbol name='kobject_set_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26ffbc17'/>
+      <elf-symbol name='kobject_uevent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9003ee04'/>
+      <elf-symbol name='kobject_uevent_env' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x16a8916e'/>
+      <elf-symbol name='krealloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc8dcc62a'/>
+      <elf-symbol name='kset_create_and_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ad57edb'/>
+      <elf-symbol name='kset_find_obj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91fbc223'/>
+      <elf-symbol name='kset_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59d3e4d6'/>
+      <elf-symbol name='kset_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x74018afa'/>
+      <elf-symbol name='ksize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ea5d10'/>
+      <elf-symbol name='kstat_irqs_cpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6bffb99'/>
+      <elf-symbol name='kstat_irqs_usr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9bb05a3a'/>
+      <elf-symbol name='kstrdup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d39b0a7'/>
+      <elf-symbol name='kstrdup_const' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x365e7911'/>
+      <elf-symbol name='kstrdup_quotable_cmdline' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1313a16d'/>
+      <elf-symbol name='kstrndup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9eacf8a5'/>
+      <elf-symbol name='kstrtobool' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x124bad4d'/>
+      <elf-symbol name='kstrtobool_from_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x248efd3'/>
+      <elf-symbol name='kstrtoint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c8569cb'/>
+      <elf-symbol name='kstrtoint_from_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9ca2eb4'/>
+      <elf-symbol name='kstrtol_from_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2505bf18'/>
+      <elf-symbol name='kstrtoll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3854774b'/>
+      <elf-symbol name='kstrtos16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0419ac4'/>
+      <elf-symbol name='kstrtos8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7429e20c'/>
+      <elf-symbol name='kstrtos8_from_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb3f49446'/>
+      <elf-symbol name='kstrtou16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4af6ddf0'/>
+      <elf-symbol name='kstrtou16_from_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x474edef'/>
+      <elf-symbol name='kstrtou8' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a6e05bf'/>
+      <elf-symbol name='kstrtou8_from_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf256037'/>
+      <elf-symbol name='kstrtouint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b6c41ea'/>
+      <elf-symbol name='kstrtouint_from_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47cfd825'/>
+      <elf-symbol name='kstrtoul_from_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf7d31de9'/>
+      <elf-symbol name='kstrtoull' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c3c7387'/>
+      <elf-symbol name='kstrtoull_from_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d74d522'/>
+      <elf-symbol name='kswapd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6b27bfe'/>
+      <elf-symbol name='ksys_sync_helper' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55c76a23'/>
+      <elf-symbol name='kthread_bind' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ef1f9ed'/>
+      <elf-symbol name='kthread_bind_mask' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5912723'/>
+      <elf-symbol name='kthread_blkcg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b9365f5'/>
+      <elf-symbol name='kthread_cancel_delayed_work_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb39f2607'/>
+      <elf-symbol name='kthread_cancel_work_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcdeb29a1'/>
+      <elf-symbol name='kthread_create_on_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15f9ecee'/>
+      <elf-symbol name='kthread_create_worker' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0bdce21'/>
+      <elf-symbol name='kthread_delayed_work_timer_fn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc1b48cc6'/>
+      <elf-symbol name='kthread_destroy_worker' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9068c1e0'/>
+      <elf-symbol name='kthread_flush_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c2d7968'/>
+      <elf-symbol name='kthread_flush_worker' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6631d171'/>
+      <elf-symbol name='kthread_freezable_should_stop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca7d8764'/>
+      <elf-symbol name='kthread_mod_delayed_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcca76f14'/>
+      <elf-symbol name='kthread_park' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x536af28a'/>
+      <elf-symbol name='kthread_parkme' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf95322f4'/>
+      <elf-symbol name='kthread_queue_delayed_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfec7b06d'/>
+      <elf-symbol name='kthread_queue_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x50d3eb08'/>
+      <elf-symbol name='kthread_should_park' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79defbe1'/>
+      <elf-symbol name='kthread_should_stop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb3f7646e'/>
+      <elf-symbol name='kthread_stop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8c2d95d'/>
+      <elf-symbol name='kthread_unpark' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4066d0b7'/>
+      <elf-symbol name='kthread_worker_fn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x955b0e2e'/>
+      <elf-symbol name='ktime_add_safe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3952887'/>
+      <elf-symbol name='ktime_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb43f9365'/>
+      <elf-symbol name='ktime_get_boot_fast_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ef6b54f'/>
+      <elf-symbol name='ktime_get_coarse_real_ts64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x484f6edf'/>
+      <elf-symbol name='ktime_get_coarse_ts64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf5e7ea40'/>
+      <elf-symbol name='ktime_get_coarse_with_offset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbcc15e75'/>
+      <elf-symbol name='ktime_get_mono_fast_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ebe366f'/>
+      <elf-symbol name='ktime_get_raw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9714e0bb'/>
+      <elf-symbol name='ktime_get_raw_ts64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1edb69d6'/>
+      <elf-symbol name='ktime_get_real_seconds' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x953e1b9e'/>
+      <elf-symbol name='ktime_get_real_ts64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ec6ca96'/>
+      <elf-symbol name='ktime_get_seconds' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa9320d27'/>
+      <elf-symbol name='ktime_get_snapshot' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4cb27100'/>
+      <elf-symbol name='ktime_get_ts64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e515be6'/>
+      <elf-symbol name='ktime_get_with_offset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc4f0da12'/>
+      <elf-symbol name='kvasprintf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x587b0954'/>
+      <elf-symbol name='kvfree' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7aa1756e'/>
+      <elf-symbol name='kvfree_call_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbaf22757'/>
+      <elf-symbol name='kvmalloc_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x599fb41c'/>
+      <elf-symbol name='l2cap_is_socket' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9de85b'/>
+      <elf-symbol name='l2tp_session_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbf2fc730'/>
+      <elf-symbol name='l2tp_session_delete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed0d55fd'/>
+      <elf-symbol name='l2tp_session_get_nth' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa34cacda'/>
+      <elf-symbol name='l2tp_session_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ec53f0e'/>
+      <elf-symbol name='l2tp_session_set_header_len' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6d49d904'/>
+      <elf-symbol name='l2tp_tunnel_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c1944d2'/>
+      <elf-symbol name='l2tp_tunnel_delete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef7368ad'/>
+      <elf-symbol name='l2tp_tunnel_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcca272f3'/>
+      <elf-symbol name='l2tp_tunnel_get_nth' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b17f63c'/>
+      <elf-symbol name='l2tp_tunnel_get_session' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88c469ba'/>
+      <elf-symbol name='l2tp_tunnel_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe188245'/>
+      <elf-symbol name='l2tp_udp_encap_recv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa46a8121'/>
+      <elf-symbol name='l2tp_xmit_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a882b0f'/>
+      <elf-symbol name='led_classdev_flash_register_ext' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xadd47cec'/>
+      <elf-symbol name='led_classdev_flash_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfdcfa2f2'/>
+      <elf-symbol name='led_classdev_register_ext' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x441f36a4'/>
+      <elf-symbol name='led_classdev_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed91f373'/>
+      <elf-symbol name='led_get_default_pattern' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5b4e6d2'/>
+      <elf-symbol name='led_get_flash_fault' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c0fdbc'/>
+      <elf-symbol name='led_init_default_state_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb3acb235'/>
+      <elf-symbol name='led_set_brightness' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x74d94a3a'/>
+      <elf-symbol name='led_set_brightness_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb3c9584f'/>
+      <elf-symbol name='led_set_flash_brightness' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc89d6353'/>
+      <elf-symbol name='led_set_flash_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb645f0b3'/>
+      <elf-symbol name='led_sysfs_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b7bc19d'/>
+      <elf-symbol name='led_sysfs_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33f6ee9b'/>
+      <elf-symbol name='led_trigger_blink_oneshot' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x87880ee2'/>
+      <elf-symbol name='led_trigger_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7cfe9992'/>
+      <elf-symbol name='led_trigger_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a02a2b6'/>
+      <elf-symbol name='led_trigger_register_simple' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3d2a91a'/>
+      <elf-symbol name='led_trigger_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x485c0cfd'/>
+      <elf-symbol name='led_trigger_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28ac610'/>
+      <elf-symbol name='led_trigger_unregister_simple' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xebaf4668'/>
+      <elf-symbol name='led_update_brightness' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce6e4aab'/>
+      <elf-symbol name='led_update_flash_brightness' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9cabccc2'/>
+      <elf-symbol name='linear_range_get_max_value' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd5301b2c'/>
+      <elf-symbol name='linear_range_get_selector_within' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc6e5bcf3'/>
+      <elf-symbol name='linear_range_get_value' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4e6d7e0'/>
+      <elf-symbol name='linkwatch_fire_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x779b2c96'/>
+      <elf-symbol name='list_sort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe091c977'/>
+      <elf-symbol name='ll_rw_block' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c28b352'/>
+      <elf-symbol name='llist_add_batch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7a1840e'/>
+      <elf-symbol name='llist_reverse_order' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xddb1cd7'/>
+      <elf-symbol name='load_nls' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xace228f'/>
+      <elf-symbol name='load_nls_default' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x747ea8d0'/>
+      <elf-symbol name='lock_sock_nested' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f9a0a13'/>
+      <elf-symbol name='lockref_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9b85ef6'/>
+      <elf-symbol name='log_abnormal_wakeup_reason' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6d20fc95'/>
+      <elf-symbol name='log_post_read_mmio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x461806e7'/>
+      <elf-symbol name='log_post_write_mmio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x82bdaa44'/>
+      <elf-symbol name='log_read_mmio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x630c7ed8'/>
+      <elf-symbol name='log_suspend_abort_reason' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7b5f4233'/>
+      <elf-symbol name='log_threaded_irq_wakeup_reason' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34e5628d'/>
+      <elf-symbol name='log_write_mmio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb03b751c'/>
+      <elf-symbol name='logfc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4677ca6'/>
+      <elf-symbol name='lookup_bdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34c7cdbc'/>
+      <elf-symbol name='lookup_page_ext' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9148a42'/>
+      <elf-symbol name='lru_cache_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc5f455a'/>
+      <elf-symbol name='lzo1x_1_compress' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x787c882b'/>
+      <elf-symbol name='lzo1x_decompress_safe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4df8fbc'/>
+      <elf-symbol name='lzorle1x_1_compress' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79f697e4'/>
+      <elf-symbol name='mac_pton' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x652032cb'/>
+      <elf-symbol name='make_bad_inode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a54afd0'/>
+      <elf-symbol name='mangle_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x23b9d6e2'/>
+      <elf-symbol name='mark_buffer_async_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d1215cb'/>
+      <elf-symbol name='mark_buffer_dirty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeadc93bf'/>
+      <elf-symbol name='mark_buffer_write_io_error' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7422f4c'/>
+      <elf-symbol name='mark_page_accessed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b294cb4'/>
+      <elf-symbol name='match_hex' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad0413d4'/>
+      <elf-symbol name='match_int' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e3567f7'/>
+      <elf-symbol name='match_octal' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x815b5dd4'/>
+      <elf-symbol name='match_strdup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xacf4d843'/>
+      <elf-symbol name='match_string' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x81188c30'/>
+      <elf-symbol name='match_token' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x44e9a829'/>
+      <elf-symbol name='mbox_chan_received_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3b96c49'/>
+      <elf-symbol name='mbox_chan_txdone' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9931303b'/>
+      <elf-symbol name='mbox_client_txdone' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0973fff'/>
+      <elf-symbol name='mbox_controller_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x564483cf'/>
+      <elf-symbol name='mbox_controller_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff1fa4ca'/>
+      <elf-symbol name='mbox_free_channel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x767878ac'/>
+      <elf-symbol name='mbox_request_channel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1fb4d43d'/>
+      <elf-symbol name='mbox_request_channel_byname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80d9648c'/>
+      <elf-symbol name='mbox_send_message' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xec55920d'/>
+      <elf-symbol name='mctrl_gpio_disable_ms' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1f449588'/>
+      <elf-symbol name='mctrl_gpio_enable_ms' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xebd4cc11'/>
+      <elf-symbol name='mctrl_gpio_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x48a3d20b'/>
+      <elf-symbol name='mctrl_gpio_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40630ba8'/>
+      <elf-symbol name='mctrl_gpio_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdfcb6c90'/>
+      <elf-symbol name='mdio_device_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90102cc2'/>
+      <elf-symbol name='mdio_device_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d823325'/>
+      <elf-symbol name='mdio_device_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x38290b13'/>
+      <elf-symbol name='mdiobus_alloc_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9fc9e477'/>
+      <elf-symbol name='mdiobus_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24b1501f'/>
+      <elf-symbol name='mdiobus_get_phy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x390d2e6'/>
+      <elf-symbol name='mdiobus_is_registered_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d302716'/>
+      <elf-symbol name='mdiobus_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeaed7bce'/>
+      <elf-symbol name='mdiobus_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96c110af'/>
+      <elf-symbol name='mdiobus_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a0c3075'/>
+      <elf-symbol name='media_create_intf_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8be7387e'/>
+      <elf-symbol name='media_create_pad_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7fc1153e'/>
+      <elf-symbol name='media_create_pad_links' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd92dcb33'/>
+      <elf-symbol name='media_device_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3bf0d4ec'/>
+      <elf-symbol name='media_device_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde5cf34c'/>
+      <elf-symbol name='media_device_register_entity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0fa9d52'/>
+      <elf-symbol name='media_device_register_entity_notify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x95f41528'/>
+      <elf-symbol name='media_device_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb86cca5c'/>
+      <elf-symbol name='media_device_unregister_entity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfde5b0df'/>
+      <elf-symbol name='media_devnode_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80a04a7c'/>
+      <elf-symbol name='media_devnode_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5637b46f'/>
+      <elf-symbol name='media_entity_find_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9902784'/>
+      <elf-symbol name='media_entity_pads_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb7b294d2'/>
+      <elf-symbol name='media_entity_remote_pad' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x545eded3'/>
+      <elf-symbol name='media_entity_remove_links' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7783c3eb'/>
+      <elf-symbol name='media_entity_setup_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7267d331'/>
+      <elf-symbol name='media_get_pad_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x668ac638'/>
+      <elf-symbol name='media_graph_walk_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x676bacba'/>
+      <elf-symbol name='media_graph_walk_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e09c86b'/>
+      <elf-symbol name='media_graph_walk_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdb688a9f'/>
+      <elf-symbol name='media_graph_walk_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a904f01'/>
+      <elf-symbol name='media_pipeline_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc40fab1c'/>
+      <elf-symbol name='media_pipeline_stop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfc0dfa55'/>
+      <elf-symbol name='media_request_get_by_fd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x599bfa6d'/>
+      <elf-symbol name='media_request_object_complete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8cae2666'/>
+      <elf-symbol name='media_request_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3d256a0f'/>
+      <elf-symbol name='mem_cgroup_from_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6da1730'/>
+      <elf-symbol name='mem_cgroup_update_lru_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x98542831'/>
+      <elf-symbol name='mem_dump_obj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcb561441'/>
+      <elf-symbol name='mem_encrypt_active' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8dee0072'/>
+      <elf-symbol name='memblock_end_of_DRAM' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c894766'/>
+      <elf-symbol name='memblock_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f0ec720'/>
+      <elf-symbol name='memchr' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes' crc='0xa07a37f0'/>
+      <elf-symbol name='memchr_inv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8df92f66'/>
+      <elf-symbol name='memcmp' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes' crc='0x449ad0a7'/>
+      <elf-symbol name='memcpy' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes' crc='0x4829a47e'/>
+      <elf-symbol name='memcpy_and_pad' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x697ed5f0'/>
+      <elf-symbol name='memdup_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9291cd3b'/>
+      <elf-symbol name='memdup_user_nul' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1d07e365'/>
+      <elf-symbol name='memmove' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes' crc='0x5a9f1d63'/>
+      <elf-symbol name='memory_block_size_bytes' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes' crc='0xfcc1edd3'/>
+      <elf-symbol name='memory_read_from_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65e0d6d7'/>
+      <elf-symbol name='memparse' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x27864d57'/>
+      <elf-symbol name='mempool_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3762aec'/>
+      <elf-symbol name='mempool_alloc_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x766a0927'/>
+      <elf-symbol name='mempool_alloc_slab' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc972449f'/>
+      <elf-symbol name='mempool_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1953c958'/>
+      <elf-symbol name='mempool_create_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c122bcf'/>
+      <elf-symbol name='mempool_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9034a696'/>
+      <elf-symbol name='mempool_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa897e3e7'/>
+      <elf-symbol name='mempool_free_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd985dc99'/>
+      <elf-symbol name='mempool_free_slab' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8a99a016'/>
+      <elf-symbol name='mempool_kfree' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a037cf1'/>
+      <elf-symbol name='mempool_kmalloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd35a6d31'/>
+      <elf-symbol name='mempool_resize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2aa0843e'/>
+      <elf-symbol name='memremap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d924f20'/>
+      <elf-symbol name='memset' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes' crc='0xdcb764ad'/>
+      <elf-symbol name='memset32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x489eda10'/>
+      <elf-symbol name='memset64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed8a2d95'/>
+      <elf-symbol name='memunmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e9fdd9d'/>
+      <elf-symbol name='mfd_add_devices' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd68a3b1'/>
+      <elf-symbol name='mfd_remove_devices' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35c8a608'/>
+      <elf-symbol name='migrate_page_copy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe97d88f0'/>
+      <elf-symbol name='migrate_page_move_mapping' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb7809eee'/>
+      <elf-symbol name='migrate_page_states' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8caf3272'/>
+      <elf-symbol name='migrate_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90f84eaa'/>
+      <elf-symbol name='migrate_swap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x86c6d1b9'/>
+      <elf-symbol name='mii_check_media' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0eb9154'/>
+      <elf-symbol name='mii_ethtool_get_link_ksettings' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41c03553'/>
+      <elf-symbol name='mii_ethtool_gset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f7ae52c'/>
+      <elf-symbol name='mii_ethtool_set_link_ksettings' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7a354adb'/>
+      <elf-symbol name='mii_link_ok' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x46d6ba5a'/>
+      <elf-symbol name='mii_nway_restart' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5c77054'/>
+      <elf-symbol name='mipi_dsi_attach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x730eefde'/>
+      <elf-symbol name='mipi_dsi_compression_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff5a1846'/>
+      <elf-symbol name='mipi_dsi_create_packet' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x23daa989'/>
+      <elf-symbol name='mipi_dsi_dcs_enter_sleep_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb49a769b'/>
+      <elf-symbol name='mipi_dsi_dcs_exit_sleep_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa55a5104'/>
+      <elf-symbol name='mipi_dsi_dcs_get_display_brightness' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x81415fa0'/>
+      <elf-symbol name='mipi_dsi_dcs_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3531350'/>
+      <elf-symbol name='mipi_dsi_dcs_set_column_address' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x357ce7e9'/>
+      <elf-symbol name='mipi_dsi_dcs_set_display_brightness' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf954f104'/>
+      <elf-symbol name='mipi_dsi_dcs_set_display_off' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0378550'/>
+      <elf-symbol name='mipi_dsi_dcs_set_display_on' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f71cebe'/>
+      <elf-symbol name='mipi_dsi_dcs_set_page_address' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10437851'/>
+      <elf-symbol name='mipi_dsi_dcs_set_pixel_format' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2aa1c290'/>
+      <elf-symbol name='mipi_dsi_dcs_set_tear_off' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8f0abd43'/>
+      <elf-symbol name='mipi_dsi_dcs_set_tear_on' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe5fd6074'/>
+      <elf-symbol name='mipi_dsi_dcs_set_tear_scanline' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3476a123'/>
+      <elf-symbol name='mipi_dsi_dcs_soft_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x74faa6b1'/>
+      <elf-symbol name='mipi_dsi_dcs_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb258ba1c'/>
+      <elf-symbol name='mipi_dsi_dcs_write_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x590af825'/>
+      <elf-symbol name='mipi_dsi_detach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25ddc427'/>
+      <elf-symbol name='mipi_dsi_device_register_full' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb2808eb4'/>
+      <elf-symbol name='mipi_dsi_device_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6316af6'/>
+      <elf-symbol name='mipi_dsi_driver_register_full' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0572174'/>
+      <elf-symbol name='mipi_dsi_driver_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc0bb1a51'/>
+      <elf-symbol name='mipi_dsi_generic_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde7c5096'/>
+      <elf-symbol name='mipi_dsi_generic_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x549e4400'/>
+      <elf-symbol name='mipi_dsi_host_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9edaf0e5'/>
+      <elf-symbol name='mipi_dsi_host_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9638c068'/>
+      <elf-symbol name='mipi_dsi_packet_format_is_long' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xadbeed61'/>
+      <elf-symbol name='mipi_dsi_picture_parameter_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7cc6f02'/>
+      <elf-symbol name='mipi_dsi_set_maximum_return_packet_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9afc3e4d'/>
+      <elf-symbol name='misc_deregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3d51e1b1'/>
+      <elf-symbol name='misc_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f842df6'/>
+      <elf-symbol name='mktime64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb2f8a4'/>
+      <elf-symbol name='mmc_add_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x645c0117'/>
+      <elf-symbol name='mmc_alloc_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6c2d86c'/>
+      <elf-symbol name='mmc_can_gpio_cd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x697397cd'/>
+      <elf-symbol name='mmc_card_is_blockaddr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1702fc82'/>
+      <elf-symbol name='mmc_cmdq_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79f6eb6c'/>
+      <elf-symbol name='mmc_cmdq_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9667925'/>
+      <elf-symbol name='mmc_cqe_post_req' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9205b0f7'/>
+      <elf-symbol name='mmc_cqe_request_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4dd160c4'/>
+      <elf-symbol name='mmc_detect_change' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x486614f3'/>
+      <elf-symbol name='mmc_execute_tuning' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1022c98d'/>
+      <elf-symbol name='mmc_free_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c794bb3'/>
+      <elf-symbol name='mmc_get_card' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x13e5d679'/>
+      <elf-symbol name='mmc_get_ext_csd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3441f555'/>
+      <elf-symbol name='mmc_gpio_get_cd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc6042d93'/>
+      <elf-symbol name='mmc_gpio_get_ro' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x23f1a3bb'/>
+      <elf-symbol name='mmc_gpio_set_cd_wake' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb56b0ab9'/>
+      <elf-symbol name='mmc_gpiod_request_cd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf546b071'/>
+      <elf-symbol name='mmc_gpiod_request_ro' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdec968fe'/>
+      <elf-symbol name='mmc_hs200_tuning' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf990e5e9'/>
+      <elf-symbol name='mmc_hw_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe3cbfaa9'/>
+      <elf-symbol name='mmc_issue_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3e2f887'/>
+      <elf-symbol name='mmc_of_parse' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x27754442'/>
+      <elf-symbol name='mmc_of_parse_voltage' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc37a22cc'/>
+      <elf-symbol name='mmc_prepare_busy_cmd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1031b5e3'/>
+      <elf-symbol name='mmc_put_card' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24716c0b'/>
+      <elf-symbol name='mmc_pwrseq_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6961af60'/>
+      <elf-symbol name='mmc_pwrseq_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6179d040'/>
+      <elf-symbol name='mmc_regulator_get_supply' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b98d903'/>
+      <elf-symbol name='mmc_regulator_set_ocr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7187a93a'/>
+      <elf-symbol name='mmc_regulator_set_vqmmc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd480a37'/>
+      <elf-symbol name='mmc_release_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x48f7a78'/>
+      <elf-symbol name='mmc_remove_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x143a8fc3'/>
+      <elf-symbol name='mmc_request_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe540beb8'/>
+      <elf-symbol name='mmc_retune_hold' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe89f5639'/>
+      <elf-symbol name='mmc_retune_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7bb069de'/>
+      <elf-symbol name='mmc_retune_timer_stop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2f2cc33d'/>
+      <elf-symbol name='mmc_select_bus_width' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfcad1e5d'/>
+      <elf-symbol name='mmc_select_card' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5fd87c39'/>
+      <elf-symbol name='mmc_select_hs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57e369e3'/>
+      <elf-symbol name='mmc_select_hs400' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7da0904'/>
+      <elf-symbol name='mmc_select_hs_ddr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2694a3ec'/>
+      <elf-symbol name='mmc_select_timing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4dd7e1f8'/>
+      <elf-symbol name='mmc_send_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8853f365'/>
+      <elf-symbol name='mmc_send_tuning' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9dec77b5'/>
+      <elf-symbol name='mmc_set_blocklen' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e1b2e6c'/>
+      <elf-symbol name='mmc_set_bus_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c5df88a'/>
+      <elf-symbol name='mmc_set_bus_width' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6debd0b'/>
+      <elf-symbol name='mmc_set_clock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf4547be5'/>
+      <elf-symbol name='mmc_set_data_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8871c413'/>
+      <elf-symbol name='mmc_set_initial_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x761d2c00'/>
+      <elf-symbol name='mmc_set_timing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ac8541a'/>
+      <elf-symbol name='mmc_sw_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe924b87b'/>
+      <elf-symbol name='mmc_switch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x42890ddb'/>
+      <elf-symbol name='mmc_wait_for_cmd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8445e65'/>
+      <elf-symbol name='mmc_wait_for_req' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9fad5067'/>
+      <elf-symbol name='mmput' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe1c11b81'/>
+      <elf-symbol name='mmu_notifier_synchronize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a4f623b'/>
+      <elf-symbol name='mnt_drop_write_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c413ffc'/>
+      <elf-symbol name='mnt_want_write_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34d4bbe6'/>
+      <elf-symbol name='mod_delayed_work_on' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc4f47221'/>
+      <elf-symbol name='mod_node_page_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb91c96fd'/>
+      <elf-symbol name='mod_timer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72cd0f7f'/>
+      <elf-symbol name='mod_timer_pending' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8148b88e'/>
+      <elf-symbol name='module_layout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x222dd63'/>
+      <elf-symbol name='module_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc239ea43'/>
+      <elf-symbol name='mount_bdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda469b99'/>
+      <elf-symbol name='mpage_readahead' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5fda799'/>
+      <elf-symbol name='mpage_readpage' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xccce85bf'/>
+      <elf-symbol name='mpage_writepages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e9a470a'/>
+      <elf-symbol name='mpi_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x98503a63'/>
+      <elf-symbol name='mpi_cmp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae7c231d'/>
+      <elf-symbol name='mpi_cmp_ui' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9bece81b'/>
+      <elf-symbol name='mpi_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80d5e57a'/>
+      <elf-symbol name='mpi_get_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c4f603'/>
+      <elf-symbol name='mpi_get_nbits' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdbf7cb70'/>
+      <elf-symbol name='mpi_powm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9fe939e1'/>
+      <elf-symbol name='mpi_read_raw_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xceb1f126'/>
+      <elf-symbol name='msi_desc_to_pci_sysdata' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7deaa36a'/>
+      <elf-symbol name='msleep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9a482f9'/>
+      <elf-symbol name='msleep_interruptible' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc5005fe'/>
+      <elf-symbol name='mul_u64_u64_div_u64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x495231ea'/>
+      <elf-symbol name='mutex_is_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x819bebd4'/>
+      <elf-symbol name='mutex_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd5977bfb'/>
+      <elf-symbol name='mutex_lock_interruptible' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c2067df'/>
+      <elf-symbol name='mutex_lock_killable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbc532593'/>
+      <elf-symbol name='mutex_trylock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x203392c6'/>
+      <elf-symbol name='mutex_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed55cabd'/>
+      <elf-symbol name='n_tty_ioctl_helper' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4deffc17'/>
+      <elf-symbol name='name_to_dev_t' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc10fddb8'/>
+      <elf-symbol name='napi_build_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2775592'/>
+      <elf-symbol name='napi_complete_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1adcbe59'/>
+      <elf-symbol name='napi_consume_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc181289c'/>
+      <elf-symbol name='napi_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x855c7030'/>
+      <elf-symbol name='napi_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x814ea9e4'/>
+      <elf-symbol name='napi_get_frags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f62e736'/>
+      <elf-symbol name='napi_gro_flush' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x867aca01'/>
+      <elf-symbol name='napi_gro_frags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c856475'/>
+      <elf-symbol name='napi_gro_receive' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x70dc95a8'/>
+      <elf-symbol name='napi_schedule_prep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaea9b9c4'/>
+      <elf-symbol name='ndo_dflt_fdb_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x31de3fb9'/>
+      <elf-symbol name='neigh_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b9af7c0'/>
+      <elf-symbol name='neigh_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd123eda'/>
+      <elf-symbol name='neigh_resolve_output' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x263ad084'/>
+      <elf-symbol name='net_ratelimit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6ebc03b'/>
+      <elf-symbol name='net_selftest' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca8083a2'/>
+      <elf-symbol name='net_selftest_get_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e6b1a9e'/>
+      <elf-symbol name='net_selftest_get_strings' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc090c376'/>
+      <elf-symbol name='netdev_alert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x566d55f6'/>
+      <elf-symbol name='netdev_change_features' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40ff75de'/>
+      <elf-symbol name='netdev_err' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba0644ae'/>
+      <elf-symbol name='netdev_increment_features' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69668826'/>
+      <elf-symbol name='netdev_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20612ead'/>
+      <elf-symbol name='netdev_lower_state_changed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8409b196'/>
+      <elf-symbol name='netdev_master_upper_dev_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7370e40d'/>
+      <elf-symbol name='netdev_notice' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2ea7e52b'/>
+      <elf-symbol name='netdev_notify_peers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ca14329'/>
+      <elf-symbol name='netdev_pick_tx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeedccd78'/>
+      <elf-symbol name='netdev_printk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcdbfec89'/>
+      <elf-symbol name='netdev_rss_key_fill' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x467df16d'/>
+      <elf-symbol name='netdev_rx_handler_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xead7afa1'/>
+      <elf-symbol name='netdev_rx_handler_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb2621b'/>
+      <elf-symbol name='netdev_set_default_ethtool_ops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x635968e1'/>
+      <elf-symbol name='netdev_set_num_tc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4147447f'/>
+      <elf-symbol name='netdev_set_tc_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x558440ef'/>
+      <elf-symbol name='netdev_state_change' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb94dc1c'/>
+      <elf-symbol name='netdev_stats_to_stats64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad995dac'/>
+      <elf-symbol name='netdev_update_features' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e9c0fae'/>
+      <elf-symbol name='netdev_upper_dev_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa418cded'/>
+      <elf-symbol name='netdev_upper_dev_unlink' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf12f1b7b'/>
+      <elf-symbol name='netdev_upper_get_next_dev_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2fa70555'/>
+      <elf-symbol name='netdev_warn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c779fee'/>
+      <elf-symbol name='netif_carrier_off' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x533f4833'/>
+      <elf-symbol name='netif_carrier_on' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10229dce'/>
+      <elf-symbol name='netif_device_attach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x27b8245b'/>
+      <elf-symbol name='netif_device_detach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x273edf0c'/>
+      <elf-symbol name='netif_napi_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6baaaa36'/>
+      <elf-symbol name='netif_receive_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x825a356'/>
+      <elf-symbol name='netif_receive_skb_list' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b8bf149'/>
+      <elf-symbol name='netif_rx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a829981'/>
+      <elf-symbol name='netif_rx_ni' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2880f4f8'/>
+      <elf-symbol name='netif_schedule_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0e523d5'/>
+      <elf-symbol name='netif_set_real_num_rx_queues' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x22cbe5a7'/>
+      <elf-symbol name='netif_set_real_num_tx_queues' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x442a355e'/>
+      <elf-symbol name='netif_set_xps_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe317c11'/>
+      <elf-symbol name='netif_stacked_transfer_operstate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e46d09e'/>
+      <elf-symbol name='netif_tx_stop_all_queues' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x286b665d'/>
+      <elf-symbol name='netif_tx_wake_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6d62a24'/>
+      <elf-symbol name='netlink_ack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4a5663ee'/>
+      <elf-symbol name='netlink_broadcast' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f0f7f81'/>
+      <elf-symbol name='netlink_kernel_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb2f3fd98'/>
+      <elf-symbol name='netlink_net_capable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c819a3d'/>
+      <elf-symbol name='netlink_register_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa599bb2'/>
+      <elf-symbol name='netlink_unicast' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6bf34f33'/>
+      <elf-symbol name='netlink_unregister_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf54a8f7'/>
+      <elf-symbol name='new_inode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa067e572'/>
+      <elf-symbol name='next_arg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa033d747'/>
+      <elf-symbol name='nf_conntrack_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2800691'/>
+      <elf-symbol name='nf_conntrack_find_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9964811'/>
+      <elf-symbol name='nf_conntrack_register_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67b58535'/>
+      <elf-symbol name='nf_ct_attach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5716a77'/>
+      <elf-symbol name='nf_ct_delete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1205dd92'/>
+      <elf-symbol name='nf_ct_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b08a8f0'/>
+      <elf-symbol name='nf_ct_get_tuplepr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9a279c6'/>
+      <elf-symbol name='nf_ct_invert_tuple' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe731af8'/>
+      <elf-symbol name='nf_ct_l4proto_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x27bd37ee'/>
+      <elf-symbol name='nf_register_net_hook' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4796f411'/>
+      <elf-symbol name='nf_register_net_hooks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbba1eb75'/>
+      <elf-symbol name='nf_unregister_net_hook' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2c93e7'/>
+      <elf-symbol name='nf_unregister_net_hooks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf88a58e'/>
+      <elf-symbol name='nla_append' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ef473fe'/>
+      <elf-symbol name='nla_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd279169'/>
+      <elf-symbol name='nla_memcpy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf1db1704'/>
+      <elf-symbol name='nla_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x21844262'/>
+      <elf-symbol name='nla_put_64bit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd30ae381'/>
+      <elf-symbol name='nla_put_nohdr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf468e82'/>
+      <elf-symbol name='nla_reserve' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4fb5570b'/>
+      <elf-symbol name='nla_reserve_64bit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65c4d1a'/>
+      <elf-symbol name='nla_strscpy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84823cf3'/>
+      <elf-symbol name='no_llseek' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x528c8b55'/>
+      <elf-symbol name='nonseekable_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc18e62cb'/>
+      <elf-symbol name='noop_direct_IO' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89b3ccb2'/>
+      <elf-symbol name='noop_llseek' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd1208e05'/>
+      <elf-symbol name='notify_change' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ef55a3e'/>
+      <elf-symbol name='nr_free_buffer_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x27fa66e1'/>
+      <elf-symbol name='nr_ipi_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x215054f8'/>
+      <elf-symbol name='ns_capable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb88f6031'/>
+      <elf-symbol name='ns_to_kernel_old_timeval' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b853d06'/>
+      <elf-symbol name='ns_to_timespec64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1e1e140e'/>
+      <elf-symbol name='nsec_to_clock_t' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0d036a6'/>
+      <elf-symbol name='nsecs_to_jiffies' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xffae8e8b'/>
+      <elf-symbol name='nvdimm_bus_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x70994f88'/>
+      <elf-symbol name='nvdimm_bus_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3472c16b'/>
+      <elf-symbol name='nvdimm_pmem_region_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a2136a9'/>
+      <elf-symbol name='nvmem_cell_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c7aca28'/>
+      <elf-symbol name='nvmem_cell_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85540ebc'/>
+      <elf-symbol name='nvmem_cell_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99f018c4'/>
+      <elf-symbol name='nvmem_cell_read_u32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19f72100'/>
+      <elf-symbol name='nvmem_cell_read_variable_le_u32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x78c9ff27'/>
+      <elf-symbol name='nvmem_cell_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x202d4ed6'/>
+      <elf-symbol name='nvmem_device_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xafc06c69'/>
+      <elf-symbol name='nvmem_device_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8349a895'/>
+      <elf-symbol name='nvmem_device_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc697b0f7'/>
+      <elf-symbol name='nvmem_device_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3866e217'/>
+      <elf-symbol name='nvmem_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x42fb244d'/>
+      <elf-symbol name='nvmem_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc39c03e'/>
+      <elf-symbol name='of_add_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x82e2245d'/>
+      <elf-symbol name='of_address_to_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x761b06be'/>
+      <elf-symbol name='of_alias_get_highest_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x321cdbf'/>
+      <elf-symbol name='of_alias_get_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x31c55242'/>
+      <elf-symbol name='of_clk_add_hw_provider' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x633f28ca'/>
+      <elf-symbol name='of_clk_add_provider' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x77e07944'/>
+      <elf-symbol name='of_clk_del_provider' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32fa370b'/>
+      <elf-symbol name='of_clk_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x856239f8'/>
+      <elf-symbol name='of_clk_get_by_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x31d393dc'/>
+      <elf-symbol name='of_clk_get_from_provider' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7eb4612e'/>
+      <elf-symbol name='of_clk_get_parent_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5af8d6a1'/>
+      <elf-symbol name='of_clk_get_parent_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf85a1b67'/>
+      <elf-symbol name='of_clk_hw_onecell_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x888154a8'/>
+      <elf-symbol name='of_clk_hw_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb587df0c'/>
+      <elf-symbol name='of_clk_hw_simple_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ac78a19'/>
+      <elf-symbol name='of_clk_set_defaults' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaab04775'/>
+      <elf-symbol name='of_clk_src_onecell_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8122a5ae'/>
+      <elf-symbol name='of_clk_src_simple_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbcadf430'/>
+      <elf-symbol name='of_count_phandle_with_args' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbce318c2'/>
+      <elf-symbol name='of_cpu_node_to_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc32add36'/>
+      <elf-symbol name='of_cpufreq_cooling_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce3f75aa'/>
+      <elf-symbol name='of_css' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c34e19c'/>
+      <elf-symbol name='of_devfreq_cooling_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19c9ebda'/>
+      <elf-symbol name='of_devfreq_cooling_register_power' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1fb773b8'/>
+      <elf-symbol name='of_device_get_match_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x14d7a873'/>
+      <elf-symbol name='of_device_is_available' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x695f563a'/>
+      <elf-symbol name='of_device_is_compatible' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb953c4ef'/>
+      <elf-symbol name='of_device_modalias' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5775f3b'/>
+      <elf-symbol name='of_device_request_module' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6d6e2eb'/>
+      <elf-symbol name='of_device_uevent_modalias' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfaa196d3'/>
+      <elf-symbol name='of_dma_configure_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c6da643'/>
+      <elf-symbol name='of_dma_controller_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8203e99d'/>
+      <elf-symbol name='of_dma_controller_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc15fa4af'/>
+      <elf-symbol name='of_dma_is_coherent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe236fef1'/>
+      <elf-symbol name='of_dma_simple_xlate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x38e1640d'/>
+      <elf-symbol name='of_dma_xlate_by_chan_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a591eb3'/>
+      <elf-symbol name='of_drm_find_bridge' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3479c1b'/>
+      <elf-symbol name='of_drm_find_panel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfae89156'/>
+      <elf-symbol name='of_drm_get_panel_orientation' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1441456e'/>
+      <elf-symbol name='of_fdt_unflatten_tree' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed40e68e'/>
+      <elf-symbol name='of_find_all_nodes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x42b16a15'/>
+      <elf-symbol name='of_find_backlight_by_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88193027'/>
+      <elf-symbol name='of_find_compatible_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ab39c72'/>
+      <elf-symbol name='of_find_device_by_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc5776c2'/>
+      <elf-symbol name='of_find_i2c_adapter_by_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6af1c9ec'/>
+      <elf-symbol name='of_find_i2c_device_by_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5d9fe012'/>
+      <elf-symbol name='of_find_matching_node_and_match' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e3271a2'/>
+      <elf-symbol name='of_find_mipi_dsi_host_by_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x298f9619'/>
+      <elf-symbol name='of_find_node_by_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51ae23ec'/>
+      <elf-symbol name='of_find_node_by_phandle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x38996265'/>
+      <elf-symbol name='of_find_node_by_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2c12215'/>
+      <elf-symbol name='of_find_node_opts_by_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x160c9308'/>
+      <elf-symbol name='of_find_node_with_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99a55dda'/>
+      <elf-symbol name='of_find_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba82ac8f'/>
+      <elf-symbol name='of_gen_pool_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x669e4491'/>
+      <elf-symbol name='of_genpd_add_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce60c778'/>
+      <elf-symbol name='of_genpd_add_provider_onecell' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xabee782d'/>
+      <elf-symbol name='of_genpd_add_provider_simple' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdc42d1c9'/>
+      <elf-symbol name='of_genpd_add_subdomain' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3058ccb'/>
+      <elf-symbol name='of_genpd_del_provider' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8106ae3'/>
+      <elf-symbol name='of_get_child_by_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc343c521'/>
+      <elf-symbol name='of_get_compatible_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd764b42c'/>
+      <elf-symbol name='of_get_cpu_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e65314b'/>
+      <elf-symbol name='of_get_display_timing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c99e985'/>
+      <elf-symbol name='of_get_display_timings' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9307511'/>
+      <elf-symbol name='of_get_drm_display_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x249ae9df'/>
+      <elf-symbol name='of_get_i2c_adapter_by_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x625a5e91'/>
+      <elf-symbol name='of_get_mac_address' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5a46f25'/>
+      <elf-symbol name='of_get_named_gpio_flags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf17c4a7d'/>
+      <elf-symbol name='of_get_next_available_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x31a7e68c'/>
+      <elf-symbol name='of_get_next_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x311c9ba7'/>
+      <elf-symbol name='of_get_next_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c8f6dc2'/>
+      <elf-symbol name='of_get_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59e8c429'/>
+      <elf-symbol name='of_get_pci_domain_nr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe275bc2e'/>
+      <elf-symbol name='of_get_phy_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x829474'/>
+      <elf-symbol name='of_get_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x82bb0350'/>
+      <elf-symbol name='of_get_regulator_init_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35b93fad'/>
+      <elf-symbol name='of_get_required_opp_performance_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd89d638d'/>
+      <elf-symbol name='of_get_videomode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x991be2da'/>
+      <elf-symbol name='of_graph_get_endpoint_by_regs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7beb73ed'/>
+      <elf-symbol name='of_graph_get_endpoint_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x13b5f394'/>
+      <elf-symbol name='of_graph_get_next_endpoint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfdc2ef81'/>
+      <elf-symbol name='of_graph_get_port_by_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5fb67d25'/>
+      <elf-symbol name='of_graph_get_port_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8f0dcd93'/>
+      <elf-symbol name='of_graph_get_remote_endpoint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34323252'/>
+      <elf-symbol name='of_graph_get_remote_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x281b55c'/>
+      <elf-symbol name='of_graph_get_remote_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ddfc8d9'/>
+      <elf-symbol name='of_graph_get_remote_port_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbbcde03b'/>
+      <elf-symbol name='of_graph_is_present' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb3da74e4'/>
+      <elf-symbol name='of_graph_parse_endpoint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e00236e'/>
+      <elf-symbol name='of_hwspin_lock_get_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8197c72f'/>
+      <elf-symbol name='of_hwspin_lock_get_id_byname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4b26c76'/>
+      <elf-symbol name='of_icc_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1f9ad66b'/>
+      <elf-symbol name='of_icc_xlate_onecell' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3466b2e'/>
+      <elf-symbol name='of_io_request_and_map' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x94870890'/>
+      <elf-symbol name='of_iomap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe85b2278'/>
+      <elf-symbol name='of_irq_find_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x356ede45'/>
+      <elf-symbol name='of_irq_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa4568a4'/>
+      <elf-symbol name='of_irq_get_byname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x497ddc24'/>
+      <elf-symbol name='of_irq_parse_and_map_pci' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9bfdf90'/>
+      <elf-symbol name='of_irq_parse_one' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ee5c849'/>
+      <elf-symbol name='of_irq_to_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3230b902'/>
+      <elf-symbol name='of_irq_to_resource_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb7236053'/>
+      <elf-symbol name='of_machine_is_compatible' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd31ccb06'/>
+      <elf-symbol name='of_match_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f8f8ffe'/>
+      <elf-symbol name='of_match_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8896326d'/>
+      <elf-symbol name='of_mdio_find_bus' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2273ead'/>
+      <elf-symbol name='of_mdiobus_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d1b1a2a'/>
+      <elf-symbol name='of_modalias_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x86c331a4'/>
+      <elf-symbol name='of_n_addr_cells' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a9d7efb'/>
+      <elf-symbol name='of_n_size_cells' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe745503'/>
+      <elf-symbol name='of_node_name_eq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34f46cda'/>
+      <elf-symbol name='of_nvmem_cell_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x983f06ad'/>
+      <elf-symbol name='of_nvmem_device_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf599e35d'/>
+      <elf-symbol name='of_parse_phandle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59c4f9e1'/>
+      <elf-symbol name='of_parse_phandle_with_args' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x765c77f7'/>
+      <elf-symbol name='of_parse_phandle_with_fixed_args' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89104b27'/>
+      <elf-symbol name='of_pci_get_devfn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90c42d10'/>
+      <elf-symbol name='of_pci_get_max_link_speed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde2e3260'/>
+      <elf-symbol name='of_pci_parse_bus_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9436ac52'/>
+      <elf-symbol name='of_pci_range_parser_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0a25ae9'/>
+      <elf-symbol name='of_pci_range_parser_one' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c3dbb96'/>
+      <elf-symbol name='of_pci_range_to_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6807d714'/>
+      <elf-symbol name='of_phandle_iterator_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe416596'/>
+      <elf-symbol name='of_phandle_iterator_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8b887c3'/>
+      <elf-symbol name='of_phy_connect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe3db2f77'/>
+      <elf-symbol name='of_phy_deregister_fixed_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a875f6c'/>
+      <elf-symbol name='of_phy_find_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x233843e8'/>
+      <elf-symbol name='of_phy_is_fixed_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x906973dc'/>
+      <elf-symbol name='of_phy_register_fixed_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96ada997'/>
+      <elf-symbol name='of_phy_simple_xlate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x44a2ab14'/>
+      <elf-symbol name='of_platform_depopulate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36c7fbb6'/>
+      <elf-symbol name='of_platform_device_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b0800fe'/>
+      <elf-symbol name='of_platform_device_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x76590141'/>
+      <elf-symbol name='of_platform_populate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34498f47'/>
+      <elf-symbol name='of_pm_clk_add_clks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x16fea01d'/>
+      <elf-symbol name='of_prop_next_string' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd6dabf0'/>
+      <elf-symbol name='of_prop_next_u32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba7e7f78'/>
+      <elf-symbol name='of_property_count_elems_of_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ff61c30'/>
+      <elf-symbol name='of_property_match_string' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x986124cd'/>
+      <elf-symbol name='of_property_read_string' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x87326190'/>
+      <elf-symbol name='of_property_read_string_helper' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb97233e8'/>
+      <elf-symbol name='of_property_read_u32_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x13b3fcf3'/>
+      <elf-symbol name='of_property_read_u64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad348830'/>
+      <elf-symbol name='of_property_read_u64_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc00f33fc'/>
+      <elf-symbol name='of_property_read_variable_u16_array' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9217185a'/>
+      <elf-symbol name='of_property_read_variable_u32_array' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3a83f8c'/>
+      <elf-symbol name='of_property_read_variable_u64_array' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84d0d79a'/>
+      <elf-symbol name='of_property_read_variable_u8_array' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5e6c830'/>
+      <elf-symbol name='of_pwm_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7cd312ed'/>
+      <elf-symbol name='of_pwm_xlate_with_flags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x95fe118d'/>
+      <elf-symbol name='of_regulator_match' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7880c1a'/>
+      <elf-symbol name='of_remove_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c9da2e2'/>
+      <elf-symbol name='of_reserved_mem_device_init_by_idx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5431f61f'/>
+      <elf-symbol name='of_reserved_mem_device_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35123436'/>
+      <elf-symbol name='of_reserved_mem_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65825492'/>
+      <elf-symbol name='of_reset_control_array_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x83c76c7f'/>
+      <elf-symbol name='of_thermal_get_ntrips' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x23e1a790'/>
+      <elf-symbol name='of_thermal_get_trip_points' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x77ebb91c'/>
+      <elf-symbol name='of_thermal_is_trip_valid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b8b512f'/>
+      <elf-symbol name='of_translate_address' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x27396b85'/>
+      <elf-symbol name='of_usb_get_phy_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb2297'/>
+      <elf-symbol name='of_usb_host_tpl_support' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2052e69b'/>
+      <elf-symbol name='of_usb_update_otg_caps' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf4cf64b8'/>
+      <elf-symbol name='on_each_cpu_cond_mask' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5f43c059'/>
+      <elf-symbol name='open_candev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x29e53adb'/>
+      <elf-symbol name='orderly_poweroff' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56256e8a'/>
+      <elf-symbol name='out_of_line_wait_on_bit_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb3687850'/>
+      <elf-symbol name='out_of_line_wait_on_bit_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4071b517'/>
+      <elf-symbol name='page_cache_next_miss' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa360b1f'/>
+      <elf-symbol name='page_cache_prev_miss' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7e3e898'/>
+      <elf-symbol name='page_cache_ra_unbounded' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5d28b128'/>
+      <elf-symbol name='page_cache_sync_ra' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x78378187'/>
+      <elf-symbol name='page_endio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4cf99ea5'/>
+      <elf-symbol name='page_frag_alloc_align' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2de125c0'/>
+      <elf-symbol name='page_frag_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88e1d0f0'/>
+      <elf-symbol name='page_get_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef23b4a8'/>
+      <elf-symbol name='page_is_ram' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes' crc='0xfc03d97a'/>
+      <elf-symbol name='page_mapped' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96d46f7b'/>
+      <elf-symbol name='page_mapping' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeaad4c48'/>
+      <elf-symbol name='page_pool_alloc_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4cdacd3a'/>
+      <elf-symbol name='page_pool_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x584746ba'/>
+      <elf-symbol name='page_pool_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdca5f7c1'/>
+      <elf-symbol name='page_pool_put_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49d260f0'/>
+      <elf-symbol name='page_pool_release_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc99abba3'/>
+      <elf-symbol name='page_referenced' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x758704cb'/>
+      <elf-symbol name='page_reporting_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa21693fe'/>
+      <elf-symbol name='page_reporting_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d5b0483'/>
+      <elf-symbol name='page_symlink' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65b02f37'/>
+      <elf-symbol name='page_to_lruvec' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2f3e090'/>
+      <elf-symbol name='page_zero_new_buffers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeee7652'/>
+      <elf-symbol name='pagecache_get_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfdf84393'/>
+      <elf-symbol name='pagecache_write_begin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6eb4fc8a'/>
+      <elf-symbol name='pagecache_write_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa2960405'/>
+      <elf-symbol name='pagevec_lookup_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa72882cf'/>
+      <elf-symbol name='pagevec_lookup_range_tag' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x92c2a288'/>
+      <elf-symbol name='panic' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf1e046cc'/>
+      <elf-symbol name='param_get_bool' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb36e1d11'/>
+      <elf-symbol name='param_get_charp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32fe4128'/>
+      <elf-symbol name='param_get_hexint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f850c27'/>
+      <elf-symbol name='param_get_int' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ff76189'/>
+      <elf-symbol name='param_get_short' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8b7fb414'/>
+      <elf-symbol name='param_get_string' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e3260ca'/>
+      <elf-symbol name='param_get_uint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54f0a683'/>
+      <elf-symbol name='param_get_ullong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59059a2c'/>
+      <elf-symbol name='param_get_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xab5551df'/>
+      <elf-symbol name='param_set_bool' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xead1dee9'/>
+      <elf-symbol name='param_set_charp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7fb7e791'/>
+      <elf-symbol name='param_set_copystring' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf487e0f2'/>
+      <elf-symbol name='param_set_hexint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf036166'/>
+      <elf-symbol name='param_set_int' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x542907dc'/>
+      <elf-symbol name='param_set_uint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c5a0016'/>
+      <elf-symbol name='param_set_uint_minmax' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa1a16042'/>
+      <elf-symbol name='param_set_ulong' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f6844c9'/>
+      <elf-symbol name='passthru_features_check' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x23abe523'/>
+      <elf-symbol name='path_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3b74552'/>
+      <elf-symbol name='pci_add_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x77e07298'/>
+      <elf-symbol name='pci_add_resource_offset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xebdbfccc'/>
+      <elf-symbol name='pci_aer_clear_nonfatal_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x29c59458'/>
+      <elf-symbol name='pci_alloc_irq_vectors_affinity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43faea6d'/>
+      <elf-symbol name='pci_assign_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x518a5e9f'/>
+      <elf-symbol name='pci_assign_unassigned_bus_resources' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa7ee1a4f'/>
+      <elf-symbol name='pci_ats_supported' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe5097d2f'/>
+      <elf-symbol name='pci_bus_add_devices' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf68407'/>
+      <elf-symbol name='pci_bus_assign_resources' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c65a407'/>
+      <elf-symbol name='pci_bus_resource_n' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c51352c'/>
+      <elf-symbol name='pci_bus_size_bridges' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7360aaa5'/>
+      <elf-symbol name='pci_check_and_mask_intx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x461d4c86'/>
+      <elf-symbol name='pci_check_and_unmask_intx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x82a07f55'/>
+      <elf-symbol name='pci_choose_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3532e4f'/>
+      <elf-symbol name='pci_clear_master' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb218eed'/>
+      <elf-symbol name='pci_clear_mwi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb95b9354'/>
+      <elf-symbol name='pci_common_swizzle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x46fc27bc'/>
+      <elf-symbol name='pci_dev_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7bded13e'/>
+      <elf-symbol name='pci_dev_present' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7483dc59'/>
+      <elf-symbol name='pci_dev_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24e336ed'/>
+      <elf-symbol name='pci_device_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72412ebd'/>
+      <elf-symbol name='pci_device_is_present' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9660b71'/>
+      <elf-symbol name='pci_disable_ats' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe381ac22'/>
+      <elf-symbol name='pci_disable_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbade0f65'/>
+      <elf-symbol name='pci_disable_link_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeaf6beca'/>
+      <elf-symbol name='pci_disable_msi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6ae4223'/>
+      <elf-symbol name='pci_disable_msix' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8ca29df0'/>
+      <elf-symbol name='pci_disable_pcie_error_reporting' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd00466f'/>
+      <elf-symbol name='pci_disable_sriov' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaad5808c'/>
+      <elf-symbol name='pci_enable_atomic_ops_to_root' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe725351e'/>
+      <elf-symbol name='pci_enable_ats' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa07c8519'/>
+      <elf-symbol name='pci_enable_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d3142c4'/>
+      <elf-symbol name='pci_enable_device_mem' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65999657'/>
+      <elf-symbol name='pci_enable_msi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c5a5118'/>
+      <elf-symbol name='pci_enable_msix_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf444c2b4'/>
+      <elf-symbol name='pci_enable_pcie_error_reporting' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3c45ee7'/>
+      <elf-symbol name='pci_enable_sriov' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xabfa97a8'/>
+      <elf-symbol name='pci_enable_wake' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa850d55a'/>
+      <elf-symbol name='pci_epc_map_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x92b9162e'/>
+      <elf-symbol name='pci_epc_mem_alloc_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x724ff66'/>
+      <elf-symbol name='pci_epc_mem_free_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e286489'/>
+      <elf-symbol name='pci_epc_set_bar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa00ea353'/>
+      <elf-symbol name='pci_epc_unmap_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa0a51d2'/>
+      <elf-symbol name='pci_find_bus' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x305b64ec'/>
+      <elf-symbol name='pci_find_capability' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9efad36'/>
+      <elf-symbol name='pci_find_ext_capability' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7c0db0d'/>
+      <elf-symbol name='pci_find_next_bus' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85d7bea'/>
+      <elf-symbol name='pci_find_next_capability' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb0af6c66'/>
+      <elf-symbol name='pci_free_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb598f362'/>
+      <elf-symbol name='pci_free_irq_vectors' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9e4bae6'/>
+      <elf-symbol name='pci_free_resource_list' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x38a71b7e'/>
+      <elf-symbol name='pci_generic_config_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x27f8df78'/>
+      <elf-symbol name='pci_generic_config_read32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2edcaee2'/>
+      <elf-symbol name='pci_generic_config_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfadec76b'/>
+      <elf-symbol name='pci_generic_config_write32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8ab56bc'/>
+      <elf-symbol name='pci_get_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4a6077e'/>
+      <elf-symbol name='pci_get_domain_bus_and_slot' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80b4e44a'/>
+      <elf-symbol name='pci_get_slot' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x692ffb11'/>
+      <elf-symbol name='pci_host_probe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xab4195d7'/>
+      <elf-symbol name='pci_intx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x171dd0a8'/>
+      <elf-symbol name='pci_iomap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2dc7fb03'/>
+      <elf-symbol name='pci_iomap_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1f8deda1'/>
+      <elf-symbol name='pci_ioremap_bar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d069a99'/>
+      <elf-symbol name='pci_ioremap_wc_bar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x92f397ed'/>
+      <elf-symbol name='pci_iounmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdd376bfe'/>
+      <elf-symbol name='pci_irq_get_affinity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6eb5a2de'/>
+      <elf-symbol name='pci_irq_vector' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5f4f3278'/>
+      <elf-symbol name='pci_load_and_free_saved_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc6132051'/>
+      <elf-symbol name='pci_load_saved_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91dee915'/>
+      <elf-symbol name='pci_lock_rescan_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xddbeeecc'/>
+      <elf-symbol name='pci_map_rom' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd54f722a'/>
+      <elf-symbol name='pci_match_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3e35f9e0'/>
+      <elf-symbol name='pci_msi_create_irq_domain' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe39a5a17'/>
+      <elf-symbol name='pci_msi_enabled' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x453c8403'/>
+      <elf-symbol name='pci_msi_mask_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdb9d553b'/>
+      <elf-symbol name='pci_msi_unmask_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3bcf2d82'/>
+      <elf-symbol name='pci_msi_vec_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ef18070'/>
+      <elf-symbol name='pci_msix_vec_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x318b655f'/>
+      <elf-symbol name='pci_num_vf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc98e799'/>
+      <elf-symbol name='pci_pio_to_address' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf05fbf09'/>
+      <elf-symbol name='pci_read_config_byte' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc72f8ab'/>
+      <elf-symbol name='pci_read_config_dword' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69797f86'/>
+      <elf-symbol name='pci_read_config_word' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb78d00'/>
+      <elf-symbol name='pci_rebar_get_possible_sizes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd90b8324'/>
+      <elf-symbol name='pci_release_region' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x21017865'/>
+      <elf-symbol name='pci_release_regions' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xded6d68f'/>
+      <elf-symbol name='pci_release_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9feacf12'/>
+      <elf-symbol name='pci_release_selected_regions' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x787e9e05'/>
+      <elf-symbol name='pci_remap_iospace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x321b1fbc'/>
+      <elf-symbol name='pci_remove_root_bus' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89cd1f33'/>
+      <elf-symbol name='pci_request_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88e14160'/>
+      <elf-symbol name='pci_request_region' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3609a512'/>
+      <elf-symbol name='pci_request_regions' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x42c3dd3a'/>
+      <elf-symbol name='pci_request_selected_regions' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa2b1307'/>
+      <elf-symbol name='pci_rescan_bus' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x78a05511'/>
+      <elf-symbol name='pci_reset_function' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73ab4da'/>
+      <elf-symbol name='pci_resize_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4bdbd5dc'/>
+      <elf-symbol name='pci_restore_msi_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9dc6f524'/>
+      <elf-symbol name='pci_restore_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee0ef764'/>
+      <elf-symbol name='pci_save_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5af4b141'/>
+      <elf-symbol name='pci_scan_child_bus' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6238b139'/>
+      <elf-symbol name='pci_scan_root_bus_bridge' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5cfa525'/>
+      <elf-symbol name='pci_select_bars' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x16d08ea'/>
+      <elf-symbol name='pci_set_master' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x11098973'/>
+      <elf-symbol name='pci_set_mwi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0f8719f'/>
+      <elf-symbol name='pci_set_power_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2cf21af6'/>
+      <elf-symbol name='pci_sriov_configure_simple' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe705d80'/>
+      <elf-symbol name='pci_sriov_set_totalvfs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x945d9c87'/>
+      <elf-symbol name='pci_stop_and_remove_bus_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdb6bb05d'/>
+      <elf-symbol name='pci_stop_and_remove_bus_device_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88f91934'/>
+      <elf-symbol name='pci_stop_root_bus' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6428ab08'/>
+      <elf-symbol name='pci_store_saved_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb86452f3'/>
+      <elf-symbol name='pci_unlock_rescan_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5790e7a0'/>
+      <elf-symbol name='pci_unmap_iospace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb35f22d3'/>
+      <elf-symbol name='pci_unmap_rom' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x180c3810'/>
+      <elf-symbol name='pci_unregister_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43fe38e2'/>
+      <elf-symbol name='pci_vfs_assigned' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce8fc56e'/>
+      <elf-symbol name='pci_wait_for_pending_transaction' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa9fa5529'/>
+      <elf-symbol name='pci_wake_from_d3' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc7b0ebc'/>
+      <elf-symbol name='pci_walk_bus' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde66b7e4'/>
+      <elf-symbol name='pci_write_config_byte' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcda3137e'/>
+      <elf-symbol name='pci_write_config_dword' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c8f1b55'/>
+      <elf-symbol name='pci_write_config_word' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2af152d9'/>
+      <elf-symbol name='pcibios_resource_to_bus' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7339f651'/>
+      <elf-symbol name='pcie_aspm_enabled' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x743fe2f7'/>
+      <elf-symbol name='pcie_bus_configure_settings' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c81fd1e'/>
+      <elf-symbol name='pcie_capability_clear_and_set_word' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55b7116d'/>
+      <elf-symbol name='pcie_capability_read_dword' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc79ca687'/>
+      <elf-symbol name='pcie_capability_read_word' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb46db593'/>
+      <elf-symbol name='pcie_capability_write_word' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4459d149'/>
+      <elf-symbol name='pcie_get_mps' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x39c87015'/>
+      <elf-symbol name='pcie_set_mps' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae902bb4'/>
+      <elf-symbol name='pcim_enable_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5a273902'/>
+      <elf-symbol name='pcim_iomap_regions' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59204124'/>
+      <elf-symbol name='pcim_iomap_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5c93cd7'/>
+      <elf-symbol name='pcim_iounmap_regions' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x64911ef'/>
+      <elf-symbol name='pcix_get_mmrbc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc59a67d'/>
+      <elf-symbol name='pcix_set_mmrbc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2de740f'/>
+      <elf-symbol name='pcpu_nr_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7b9a65d'/>
+      <elf-symbol name='per_cpu_ptr_to_phys' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55ffab3b'/>
+      <elf-symbol name='percpu_counter_add_batch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe138fb8c'/>
+      <elf-symbol name='percpu_counter_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xac537ac2'/>
+      <elf-symbol name='percpu_counter_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe5c60bd2'/>
+      <elf-symbol name='percpu_down_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x543da67f'/>
+      <elf-symbol name='percpu_free_rwsem' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf7a5cefc'/>
+      <elf-symbol name='percpu_ref_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x37bf7be3'/>
+      <elf-symbol name='percpu_ref_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x81a7f541'/>
+      <elf-symbol name='percpu_ref_is_zero' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc91fdf58'/>
+      <elf-symbol name='percpu_ref_switch_to_atomic_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf782fb07'/>
+      <elf-symbol name='percpu_ref_switch_to_percpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7283161b'/>
+      <elf-symbol name='percpu_up_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde417419'/>
+      <elf-symbol name='perf_aux_output_begin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa4f30826'/>
+      <elf-symbol name='perf_aux_output_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20abc625'/>
+      <elf-symbol name='perf_aux_output_flag' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x759bc5f3'/>
+      <elf-symbol name='perf_event_addr_filters_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7a56f91'/>
+      <elf-symbol name='perf_event_create_kernel_counter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd6838d6'/>
+      <elf-symbol name='perf_event_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20af329d'/>
+      <elf-symbol name='perf_event_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc4b48c65'/>
+      <elf-symbol name='perf_event_pause' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x950e85cf'/>
+      <elf-symbol name='perf_event_read_local' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce204699'/>
+      <elf-symbol name='perf_event_read_value' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5d7023f'/>
+      <elf-symbol name='perf_event_release_kernel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19295440'/>
+      <elf-symbol name='perf_event_update_userpage' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbda56751'/>
+      <elf-symbol name='perf_get_aux' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbadf6e70'/>
+      <elf-symbol name='perf_pmu_migrate_context' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb73b0cf9'/>
+      <elf-symbol name='perf_pmu_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf7b11eb8'/>
+      <elf-symbol name='perf_pmu_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26cdb52d'/>
+      <elf-symbol name='perf_trace_buf_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d2c902f'/>
+      <elf-symbol name='perf_trace_run_bpf_submit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ff5b9fd'/>
+      <elf-symbol name='pfn_is_map_memory' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6da467cb'/>
+      <elf-symbol name='phy_attached_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf91387f2'/>
+      <elf-symbol name='phy_calibrate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40d87ae5'/>
+      <elf-symbol name='phy_config_aneg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1459203f'/>
+      <elf-symbol name='phy_configure' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x97193103'/>
+      <elf-symbol name='phy_connect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe1fcf7d'/>
+      <elf-symbol name='phy_connect_direct' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9bc0dad5'/>
+      <elf-symbol name='phy_disconnect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b52345f'/>
+      <elf-symbol name='phy_do_ioctl_running' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60a63009'/>
+      <elf-symbol name='phy_drivers_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ff0f85d'/>
+      <elf-symbol name='phy_drivers_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x64b9fe9f'/>
+      <elf-symbol name='phy_error' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4acb0297'/>
+      <elf-symbol name='phy_ethtool_get_eee' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x792b5bd'/>
+      <elf-symbol name='phy_ethtool_get_link_ksettings' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9a7b1f9'/>
+      <elf-symbol name='phy_ethtool_get_wol' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x22db4211'/>
+      <elf-symbol name='phy_ethtool_ksettings_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b283d2a'/>
+      <elf-symbol name='phy_ethtool_ksettings_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa9f99fb0'/>
+      <elf-symbol name='phy_ethtool_nway_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5336f219'/>
+      <elf-symbol name='phy_ethtool_set_eee' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3de7b4cd'/>
+      <elf-symbol name='phy_ethtool_set_link_ksettings' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7daead00'/>
+      <elf-symbol name='phy_ethtool_set_wol' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8b6e65b1'/>
+      <elf-symbol name='phy_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x173136a9'/>
+      <elf-symbol name='phy_find_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26a60681'/>
+      <elf-symbol name='phy_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8fc92ed'/>
+      <elf-symbol name='phy_get_eee_err' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b6c0fa9'/>
+      <elf-symbol name='phy_get_pause' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x375a75a0'/>
+      <elf-symbol name='phy_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb37cdbd'/>
+      <elf-symbol name='phy_init_eee' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc593a230'/>
+      <elf-symbol name='phy_init_hw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6483697c'/>
+      <elf-symbol name='phy_loopback' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5a64a11f'/>
+      <elf-symbol name='phy_mac_interrupt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f6d58db'/>
+      <elf-symbol name='phy_mii_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c57db73'/>
+      <elf-symbol name='phy_mipi_dphy_get_default_config' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4848cfb1'/>
+      <elf-symbol name='phy_modify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7eec90f'/>
+      <elf-symbol name='phy_modify_changed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf36838dc'/>
+      <elf-symbol name='phy_modify_mmd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66761b58'/>
+      <elf-symbol name='phy_modify_mmd_changed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe30a9d04'/>
+      <elf-symbol name='phy_modify_paged' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x21972e3e'/>
+      <elf-symbol name='phy_modify_paged_changed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x381ef2b3'/>
+      <elf-symbol name='phy_pm_runtime_get_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8f43ba0'/>
+      <elf-symbol name='phy_pm_runtime_put_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf0e80ac'/>
+      <elf-symbol name='phy_power_off' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x934d4ad2'/>
+      <elf-symbol name='phy_power_on' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x125d8b14'/>
+      <elf-symbol name='phy_print_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x22b9f2c8'/>
+      <elf-symbol name='phy_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb48ea970'/>
+      <elf-symbol name='phy_read_mmd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x22bf05cd'/>
+      <elf-symbol name='phy_read_paged' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd030564'/>
+      <elf-symbol name='phy_remove_link_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47cb85df'/>
+      <elf-symbol name='phy_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ef22c00'/>
+      <elf-symbol name='phy_reset_after_clk_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda95abbe'/>
+      <elf-symbol name='phy_resolve_aneg_linkmode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x52caeadc'/>
+      <elf-symbol name='phy_resolve_aneg_pause' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x270d182d'/>
+      <elf-symbol name='phy_restore_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe8f5f405'/>
+      <elf-symbol name='phy_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x86345800'/>
+      <elf-symbol name='phy_save_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd31d94f9'/>
+      <elf-symbol name='phy_select_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x58233978'/>
+      <elf-symbol name='phy_set_max_speed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x17d7eb0b'/>
+      <elf-symbol name='phy_set_mode_ext' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa85c497e'/>
+      <elf-symbol name='phy_set_sym_pause' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28e10e27'/>
+      <elf-symbol name='phy_sfp_attach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x394a1e11'/>
+      <elf-symbol name='phy_sfp_detach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6acaa13'/>
+      <elf-symbol name='phy_sfp_probe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x93e44522'/>
+      <elf-symbol name='phy_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91555624'/>
+      <elf-symbol name='phy_start_aneg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x37228954'/>
+      <elf-symbol name='phy_stop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc016f8d4'/>
+      <elf-symbol name='phy_support_sym_pause' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5f662d9c'/>
+      <elf-symbol name='phy_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd435206e'/>
+      <elf-symbol name='phy_trigger_machine' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6a28539'/>
+      <elf-symbol name='phy_validate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x45b93a61'/>
+      <elf-symbol name='phy_write_mmd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3d24ed1'/>
+      <elf-symbol name='phy_write_paged' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x484c5542'/>
+      <elf-symbol name='phylink_connect_phy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5c7aed0'/>
+      <elf-symbol name='phylink_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd50875bf'/>
+      <elf-symbol name='phylink_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3083a1d'/>
+      <elf-symbol name='phylink_disconnect_phy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x983276da'/>
+      <elf-symbol name='phylink_ethtool_get_eee' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c8e28ee'/>
+      <elf-symbol name='phylink_ethtool_get_pauseparam' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8fe5642'/>
+      <elf-symbol name='phylink_ethtool_get_wol' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8213956'/>
+      <elf-symbol name='phylink_ethtool_ksettings_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6831eccf'/>
+      <elf-symbol name='phylink_ethtool_ksettings_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3906c58'/>
+      <elf-symbol name='phylink_ethtool_nway_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6fa426d2'/>
+      <elf-symbol name='phylink_ethtool_set_eee' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57727285'/>
+      <elf-symbol name='phylink_ethtool_set_pauseparam' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15c4e3e2'/>
+      <elf-symbol name='phylink_ethtool_set_wol' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62104126'/>
+      <elf-symbol name='phylink_get_eee_err' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x825c7340'/>
+      <elf-symbol name='phylink_mac_change' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x12135396'/>
+      <elf-symbol name='phylink_mii_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde66f4a7'/>
+      <elf-symbol name='phylink_of_phy_connect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaab3e836'/>
+      <elf-symbol name='phylink_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc0a8f4be'/>
+      <elf-symbol name='phylink_set_pcs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe8c137ed'/>
+      <elf-symbol name='phylink_set_port_modes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc1d15a4c'/>
+      <elf-symbol name='phylink_speed_down' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59e0695d'/>
+      <elf-symbol name='phylink_speed_up' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5d0c4dcc'/>
+      <elf-symbol name='phylink_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x911fcd6c'/>
+      <elf-symbol name='phylink_stop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdcb0a2c0'/>
+      <elf-symbol name='phylink_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x16ca1a8a'/>
+      <elf-symbol name='pick_highest_pushable_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe594de3f'/>
+      <elf-symbol name='pick_migrate_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x52dea06c'/>
+      <elf-symbol name='pid_nr_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x819459cf'/>
+      <elf-symbol name='pid_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x75c08240'/>
+      <elf-symbol name='pid_vnr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x37c3abec'/>
+      <elf-symbol name='pin_get_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa20fa787'/>
+      <elf-symbol name='pin_user_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8fed08ea'/>
+      <elf-symbol name='pin_user_pages_fast' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8e3135e'/>
+      <elf-symbol name='pin_user_pages_remote' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5219ac9f'/>
+      <elf-symbol name='pinconf_generic_dt_free_map' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5aace666'/>
+      <elf-symbol name='pinconf_generic_dt_node_to_map' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c99c39b'/>
+      <elf-symbol name='pinconf_generic_dump_config' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6235dd5'/>
+      <elf-symbol name='pinconf_generic_parse_dt_config' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x81ee8f9d'/>
+      <elf-symbol name='pinctrl_add_gpio_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7b2faf5b'/>
+      <elf-symbol name='pinctrl_count_index_with_args' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1d3ef596'/>
+      <elf-symbol name='pinctrl_dev_get_drvdata' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99894c8f'/>
+      <elf-symbol name='pinctrl_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xedf4eeae'/>
+      <elf-symbol name='pinctrl_force_default' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeac9f01d'/>
+      <elf-symbol name='pinctrl_force_sleep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6543a8dd'/>
+      <elf-symbol name='pinctrl_generic_add_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x394506a'/>
+      <elf-symbol name='pinctrl_generic_get_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x46539dd8'/>
+      <elf-symbol name='pinctrl_generic_get_group_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5f9f6a39'/>
+      <elf-symbol name='pinctrl_generic_get_group_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19ce6066'/>
+      <elf-symbol name='pinctrl_generic_get_group_pins' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d80ecc'/>
+      <elf-symbol name='pinctrl_generic_remove_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa05179b6'/>
+      <elf-symbol name='pinctrl_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5cc52ebd'/>
+      <elf-symbol name='pinctrl_gpio_direction_input' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1bc5eebe'/>
+      <elf-symbol name='pinctrl_gpio_direction_output' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b8822d8'/>
+      <elf-symbol name='pinctrl_gpio_set_config' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b92d16e'/>
+      <elf-symbol name='pinctrl_lookup_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6312796c'/>
+      <elf-symbol name='pinctrl_parse_index_with_args' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe8feb355'/>
+      <elf-symbol name='pinctrl_pm_select_default_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57aca6e2'/>
+      <elf-symbol name='pinctrl_pm_select_idle_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad503fbe'/>
+      <elf-symbol name='pinctrl_pm_select_sleep_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xafddac60'/>
+      <elf-symbol name='pinctrl_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7e5ba19c'/>
+      <elf-symbol name='pinctrl_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd857dc21'/>
+      <elf-symbol name='pinctrl_register_and_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc84d1159'/>
+      <elf-symbol name='pinctrl_remove_gpio_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x175714dd'/>
+      <elf-symbol name='pinctrl_select_default_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25db4834'/>
+      <elf-symbol name='pinctrl_select_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66cabad1'/>
+      <elf-symbol name='pinctrl_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84aec03'/>
+      <elf-symbol name='pinctrl_utils_add_map_configs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4df466d'/>
+      <elf-symbol name='pinctrl_utils_add_map_mux' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x764f11c1'/>
+      <elf-symbol name='pinctrl_utils_free_map' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe8d58dc1'/>
+      <elf-symbol name='pinctrl_utils_reserve_map' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x52044999'/>
+      <elf-symbol name='pinmux_generic_add_function' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3df17dc9'/>
+      <elf-symbol name='pinmux_generic_get_function' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43517464'/>
+      <elf-symbol name='pinmux_generic_get_function_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x753edd84'/>
+      <elf-symbol name='pinmux_generic_get_function_groups' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde6d3e19'/>
+      <elf-symbol name='pinmux_generic_get_function_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc68f4f8'/>
+      <elf-symbol name='pinmux_generic_remove_function' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa9a6826e'/>
+      <elf-symbol name='pipe_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf24495af'/>
+      <elf-symbol name='pipe_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb87ef14a'/>
+      <elf-symbol name='pktgen_xfrm_outer_mode_output' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85e74981'/>
+      <elf-symbol name='pkvm_iommu_finalize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x23d83c25'/>
+      <elf-symbol name='pkvm_iommu_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x781b3cc1'/>
+      <elf-symbol name='pkvm_iommu_s2mpu_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf54563aa'/>
+      <elf-symbol name='pkvm_iommu_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9e9f113'/>
+      <elf-symbol name='pkvm_iommu_sysmmu_sync_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc6946a4f'/>
+      <elf-symbol name='platform_device_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x53024ebd'/>
+      <elf-symbol name='platform_device_add_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5fedd0c6'/>
+      <elf-symbol name='platform_device_add_resources' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c448627'/>
+      <elf-symbol name='platform_device_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa85dce9c'/>
+      <elf-symbol name='platform_device_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb7bb6ea0'/>
+      <elf-symbol name='platform_device_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2cffad1f'/>
+      <elf-symbol name='platform_device_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5aeea149'/>
+      <elf-symbol name='platform_device_register_full' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56b2617'/>
+      <elf-symbol name='platform_device_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51c4270d'/>
+      <elf-symbol name='platform_driver_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb68b66dd'/>
+      <elf-symbol name='platform_find_device_by_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x68a9b455'/>
+      <elf-symbol name='platform_get_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26642b9c'/>
+      <elf-symbol name='platform_get_irq_byname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed801dd7'/>
+      <elf-symbol name='platform_get_irq_byname_optional' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x29686ea9'/>
+      <elf-symbol name='platform_get_irq_optional' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b8a0e08'/>
+      <elf-symbol name='platform_get_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x647bbfd5'/>
+      <elf-symbol name='platform_get_resource_byname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3fc462a'/>
+      <elf-symbol name='platform_irq_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9aae45d'/>
+      <elf-symbol name='platform_irqchip_probe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2242efc4'/>
+      <elf-symbol name='platform_msi_domain_alloc_irqs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25f7a84'/>
+      <elf-symbol name='platform_msi_domain_free_irqs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x949c33e0'/>
+      <elf-symbol name='platform_unregister_drivers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbbc89e2'/>
+      <elf-symbol name='pm_clk_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x78691983'/>
+      <elf-symbol name='pm_clk_add_clk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa3335e0'/>
+      <elf-symbol name='pm_clk_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x11ec5a7c'/>
+      <elf-symbol name='pm_clk_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9edaac0'/>
+      <elf-symbol name='pm_clk_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d9a50df'/>
+      <elf-symbol name='pm_clk_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c9a7f09'/>
+      <elf-symbol name='pm_generic_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f6a3c0f'/>
+      <elf-symbol name='pm_generic_runtime_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd774abdd'/>
+      <elf-symbol name='pm_generic_runtime_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x17aa5037'/>
+      <elf-symbol name='pm_generic_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7fdffd58'/>
+      <elf-symbol name='pm_genpd_add_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd241b20'/>
+      <elf-symbol name='pm_genpd_add_subdomain' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x173ab981'/>
+      <elf-symbol name='pm_genpd_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x71f97c0b'/>
+      <elf-symbol name='pm_genpd_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x37a6b35a'/>
+      <elf-symbol name='pm_genpd_remove_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa5f05b1'/>
+      <elf-symbol name='pm_genpd_remove_subdomain' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5317d612'/>
+      <elf-symbol name='pm_get_active_wakeup_sources' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a8edb31'/>
+      <elf-symbol name='pm_print_active_wakeup_sources' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4065d168'/>
+      <elf-symbol name='pm_relax' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x349d7031'/>
+      <elf-symbol name='pm_runtime_allow' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb36d0d44'/>
+      <elf-symbol name='pm_runtime_autosuspend_expiration' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63632604'/>
+      <elf-symbol name='pm_runtime_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4c6f962'/>
+      <elf-symbol name='pm_runtime_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a6993d1'/>
+      <elf-symbol name='pm_runtime_forbid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa739712c'/>
+      <elf-symbol name='pm_runtime_force_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbe9c518f'/>
+      <elf-symbol name='pm_runtime_force_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1d74a94'/>
+      <elf-symbol name='pm_runtime_get_if_active' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59bc5620'/>
+      <elf-symbol name='pm_runtime_irq_safe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcac4f252'/>
+      <elf-symbol name='pm_runtime_no_callbacks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6430a0d5'/>
+      <elf-symbol name='pm_runtime_set_autosuspend_delay' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcb3136b'/>
+      <elf-symbol name='pm_schedule_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x17acd6e8'/>
+      <elf-symbol name='pm_stay_awake' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56cddc9d'/>
+      <elf-symbol name='pm_suspend_default_s2idle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b555c8c'/>
+      <elf-symbol name='pm_system_wakeup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c0215f2'/>
+      <elf-symbol name='pm_wakeup_dev_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9220c2a'/>
+      <elf-symbol name='pm_wakeup_ws_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd257921'/>
+      <elf-symbol name='policy_has_boost_freq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee7c2ac5'/>
+      <elf-symbol name='poll_state_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x442deaa9'/>
+      <elf-symbol name='poll_state_synchronize_srcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a2f60d6'/>
+      <elf-symbol name='posix_acl_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b496b21'/>
+      <elf-symbol name='posix_acl_chmod' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x160b1919'/>
+      <elf-symbol name='posix_acl_equiv_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4e615'/>
+      <elf-symbol name='posix_acl_from_xattr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbf2d2a86'/>
+      <elf-symbol name='power_supply_changed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19a6e0f2'/>
+      <elf-symbol name='power_supply_find_ocv2cap_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63655dd'/>
+      <elf-symbol name='power_supply_get_battery_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4c3738b'/>
+      <elf-symbol name='power_supply_get_by_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfafc9995'/>
+      <elf-symbol name='power_supply_get_by_phandle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x94e3fd5c'/>
+      <elf-symbol name='power_supply_get_by_phandle_array' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5d6bee7b'/>
+      <elf-symbol name='power_supply_get_drvdata' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1341b492'/>
+      <elf-symbol name='power_supply_get_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91406f94'/>
+      <elf-symbol name='power_supply_is_system_supplied' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c208607'/>
+      <elf-symbol name='power_supply_ocv2cap_simple' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5cad8fc3'/>
+      <elf-symbol name='power_supply_powers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xac5bf125'/>
+      <elf-symbol name='power_supply_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c330032'/>
+      <elf-symbol name='power_supply_put_battery_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ee7ce5a'/>
+      <elf-symbol name='power_supply_reg_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x136209db'/>
+      <elf-symbol name='power_supply_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x230fe579'/>
+      <elf-symbol name='power_supply_set_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9495a81'/>
+      <elf-symbol name='power_supply_temp2resist_simple' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b6150fb'/>
+      <elf-symbol name='power_supply_unreg_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b81c38b'/>
+      <elf-symbol name='power_supply_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x761937dc'/>
+      <elf-symbol name='powercap_register_control_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd53787e1'/>
+      <elf-symbol name='powercap_register_zone' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ea0b721'/>
+      <elf-symbol name='powercap_unregister_control_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc77a1fca'/>
+      <elf-symbol name='powercap_unregister_zone' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda056d07'/>
+      <elf-symbol name='ppp_channel_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c308c62'/>
+      <elf-symbol name='ppp_dev_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb44a57ad'/>
+      <elf-symbol name='ppp_input' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe3f335f'/>
+      <elf-symbol name='ppp_input_error' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x116fc45a'/>
+      <elf-symbol name='ppp_output_wakeup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa602128c'/>
+      <elf-symbol name='ppp_register_channel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c63ef5a'/>
+      <elf-symbol name='ppp_register_compressor' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6cbd7606'/>
+      <elf-symbol name='ppp_register_net_channel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5030a5f2'/>
+      <elf-symbol name='ppp_unit_number' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51392e15'/>
+      <elf-symbol name='ppp_unregister_channel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0589fbd'/>
+      <elf-symbol name='ppp_unregister_compressor' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3346769a'/>
+      <elf-symbol name='pppox_compat_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc30b70e1'/>
+      <elf-symbol name='pppox_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe8e3da50'/>
+      <elf-symbol name='pppox_unbind_sock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5fed979'/>
+      <elf-symbol name='pps_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61916f84'/>
+      <elf-symbol name='pps_register_source' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x513d100b'/>
+      <elf-symbol name='pps_unregister_source' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x376f92c0'/>
+      <elf-symbol name='prandom_bytes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa99b39c2'/>
+      <elf-symbol name='prandom_u32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfda9581f'/>
+      <elf-symbol name='preempt_schedule' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43b0c9c3'/>
+      <elf-symbol name='preempt_schedule_notrace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf70e4a4d'/>
+      <elf-symbol name='prepare_kernel_cred' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6b91cbb'/>
+      <elf-symbol name='prepare_to_wait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd5fd90f1'/>
+      <elf-symbol name='prepare_to_wait_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c26d495'/>
+      <elf-symbol name='prepare_to_wait_exclusive' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc622556f'/>
+      <elf-symbol name='print_hex_dump' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x167c5967'/>
+      <elf-symbol name='printk_timed_ratelimit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7cc4a5d'/>
+      <elf-symbol name='proc_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1453ea4b'/>
+      <elf-symbol name='proc_create_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60480c78'/>
+      <elf-symbol name='proc_create_net_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2216ff1'/>
+      <elf-symbol name='proc_create_seq_private' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x654cc221'/>
+      <elf-symbol name='proc_create_single_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce21a32'/>
+      <elf-symbol name='proc_dointvec' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8181adf'/>
+      <elf-symbol name='proc_dointvec_minmax' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2cdf87a1'/>
+      <elf-symbol name='proc_dostring' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x319d493d'/>
+      <elf-symbol name='proc_douintvec_minmax' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x638aff11'/>
+      <elf-symbol name='proc_get_parent_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeaf2d79b'/>
+      <elf-symbol name='proc_mkdir' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa04709b'/>
+      <elf-symbol name='proc_mkdir_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xccecf37c'/>
+      <elf-symbol name='proc_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe5aaaab6'/>
+      <elf-symbol name='proc_set_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ca19932'/>
+      <elf-symbol name='proc_set_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5abfccc'/>
+      <elf-symbol name='proc_symlink' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x87094f80'/>
+      <elf-symbol name='proto_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59f4dc19'/>
+      <elf-symbol name='proto_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8288424'/>
+      <elf-symbol name='ps2_begin_command' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f24f18c'/>
+      <elf-symbol name='ps2_cmd_aborted' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x838f152b'/>
+      <elf-symbol name='ps2_command' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2998d193'/>
+      <elf-symbol name='ps2_drain' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc555c68f'/>
+      <elf-symbol name='ps2_end_command' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8366695f'/>
+      <elf-symbol name='ps2_handle_ack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6acec58'/>
+      <elf-symbol name='ps2_handle_response' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7246c55'/>
+      <elf-symbol name='ps2_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd80e321'/>
+      <elf-symbol name='ps2_sendbyte' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2eca135b'/>
+      <elf-symbol name='ps2_sliced_command' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51fb843d'/>
+      <elf-symbol name='pskb_expand_head' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f577cb4'/>
+      <elf-symbol name='pskb_trim_rcsum_slow' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f3f9f3'/>
+      <elf-symbol name='pstore_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc16c2411'/>
+      <elf-symbol name='pstore_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26d459cf'/>
+      <elf-symbol name='ptp_clock_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3ba9a3e'/>
+      <elf-symbol name='ptp_clock_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x98fd9c2f'/>
+      <elf-symbol name='ptp_clock_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79a7e01'/>
+      <elf-symbol name='ptp_clock_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca421728'/>
+      <elf-symbol name='ptp_find_pin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28273e24'/>
+      <elf-symbol name='public_key_verify_signature' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4b93f27'/>
+      <elf-symbol name='put_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x313a6dce'/>
+      <elf-symbol name='put_disk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf396544b'/>
+      <elf-symbol name='put_iova_domain' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d26a975'/>
+      <elf-symbol name='put_pages_list' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0009fee'/>
+      <elf-symbol name='put_pid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x16dd6f02'/>
+      <elf-symbol name='put_sg_io_hdr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ec4aee6'/>
+      <elf-symbol name='put_unused_fd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f4547a7'/>
+      <elf-symbol name='put_user_ifreq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x38f48af7'/>
+      <elf-symbol name='put_vaddr_frames' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b700d37'/>
+      <elf-symbol name='putback_movable_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd6f03f7'/>
+      <elf-symbol name='pwm_adjust_config' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x436f3c8d'/>
+      <elf-symbol name='pwm_apply_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x42c24f2f'/>
+      <elf-symbol name='pwm_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x94be0d7d'/>
+      <elf-symbol name='pwm_get_chip_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9bef2cc1'/>
+      <elf-symbol name='pwm_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc26d097c'/>
+      <elf-symbol name='pwm_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x762a43fc'/>
+      <elf-symbol name='pwm_set_chip_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0131605'/>
+      <elf-symbol name='pwmchip_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x27122273'/>
+      <elf-symbol name='pwmchip_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x486a16db'/>
+      <elf-symbol name='qcom_smem_state_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x50d67d4c'/>
+      <elf-symbol name='qcom_smem_state_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54a25da2'/>
+      <elf-symbol name='qcom_smem_state_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf40080db'/>
+      <elf-symbol name='qcom_smem_state_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4561f990'/>
+      <elf-symbol name='qcom_smem_state_update_bits' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf730fb4a'/>
+      <elf-symbol name='queue_delayed_work_on' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbf57e89e'/>
+      <elf-symbol name='queue_work_on' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x732ac580'/>
+      <elf-symbol name='radix_tree_delete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e6e4b41'/>
+      <elf-symbol name='radix_tree_delete_item' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2237016'/>
+      <elf-symbol name='radix_tree_gang_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b27729b'/>
+      <elf-symbol name='radix_tree_gang_lookup_tag' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6185b747'/>
+      <elf-symbol name='radix_tree_insert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6fbc6a00'/>
+      <elf-symbol name='radix_tree_iter_delete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6dc35b25'/>
+      <elf-symbol name='radix_tree_iter_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4967e79f'/>
+      <elf-symbol name='radix_tree_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x70ad75fb'/>
+      <elf-symbol name='radix_tree_lookup_slot' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41efdeaf'/>
+      <elf-symbol name='radix_tree_maybe_preload' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb22e16d5'/>
+      <elf-symbol name='radix_tree_next_chunk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c541e7b'/>
+      <elf-symbol name='radix_tree_preload' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32ce3777'/>
+      <elf-symbol name='radix_tree_replace_slot' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69049cd2'/>
+      <elf-symbol name='radix_tree_tag_clear' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89434b4b'/>
+      <elf-symbol name='radix_tree_tag_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad6ba40e'/>
+      <elf-symbol name='radix_tree_tag_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e20bcf8'/>
+      <elf-symbol name='rational_best_approximation' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb0a0da0c'/>
+      <elf-symbol name='raw_notifier_call_chain' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa851973a'/>
+      <elf-symbol name='raw_notifier_chain_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdc9fa232'/>
+      <elf-symbol name='raw_notifier_chain_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd06524ba'/>
+      <elf-symbol name='raw_spin_rq_lock_nested' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf4bd0ed7'/>
+      <elf-symbol name='raw_spin_rq_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6fe9fe1'/>
+      <elf-symbol name='rb_erase' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d9b652b'/>
+      <elf-symbol name='rb_first' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xece784c2'/>
+      <elf-symbol name='rb_first_postorder' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee91879b'/>
+      <elf-symbol name='rb_insert_color' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5526619'/>
+      <elf-symbol name='rb_last' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf2c2742'/>
+      <elf-symbol name='rb_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca9360b5'/>
+      <elf-symbol name='rb_next_postorder' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e68e9be'/>
+      <elf-symbol name='rb_prev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf82ec573'/>
+      <elf-symbol name='rb_replace_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7fe32873'/>
+      <elf-symbol name='rc_allocate_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe59d95c2'/>
+      <elf-symbol name='rc_free_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee9a13bf'/>
+      <elf-symbol name='rc_keydown' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2fe612ee'/>
+      <elf-symbol name='rc_map_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb960f15c'/>
+      <elf-symbol name='rc_map_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2ed90ced'/>
+      <elf-symbol name='rc_register_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x324fda62'/>
+      <elf-symbol name='rc_repeat' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3e96a6eb'/>
+      <elf-symbol name='rc_unregister_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5df6514a'/>
+      <elf-symbol name='rcu_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60a13e90'/>
+      <elf-symbol name='rcu_barrier_tasks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6f16c56'/>
+      <elf-symbol name='rcu_barrier_tasks_trace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcfc7b4e4'/>
+      <elf-symbol name='rcu_bind_current_to_nocb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f83f8d3'/>
+      <elf-symbol name='rcu_check_boost_fail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c0ed103'/>
+      <elf-symbol name='rcu_expedite_gp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8f0748af'/>
+      <elf-symbol name='rcu_force_quiescent_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8924eb1e'/>
+      <elf-symbol name='rcu_fwd_progress_check' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c1c3725'/>
+      <elf-symbol name='rcu_get_gp_kthreads_prio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x216de4e1'/>
+      <elf-symbol name='rcu_get_gp_seq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6e40502'/>
+      <elf-symbol name='rcu_gp_is_expedited' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc0a96e14'/>
+      <elf-symbol name='rcu_gp_is_normal' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf4af35c2'/>
+      <elf-symbol name='rcu_gp_set_torture_wait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb2c1732e'/>
+      <elf-symbol name='rcu_idle_enter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7a944007'/>
+      <elf-symbol name='rcu_idle_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbfa3a19'/>
+      <elf-symbol name='rcu_inkernel_boot_has_ended' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24da0093'/>
+      <elf-symbol name='rcu_is_watching' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce6db656'/>
+      <elf-symbol name='rcu_jiffies_till_stall_check' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3d510a7b'/>
+      <elf-symbol name='rcu_nocb_cpu_deoffload' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe791df1f'/>
+      <elf-symbol name='rcu_nocb_cpu_offload' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c3e736a'/>
+      <elf-symbol name='rcu_read_unlock_trace_special' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xded1d6d1'/>
+      <elf-symbol name='rcu_unexpedite_gp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5bdbac4e'/>
+      <elf-symbol name='rcutorture_get_gp_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e028ae6'/>
+      <elf-symbol name='rcuwait_wake_up' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x732bd266'/>
+      <elf-symbol name='rdev_get_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8af2a053'/>
+      <elf-symbol name='rdev_get_drvdata' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3300c65'/>
+      <elf-symbol name='rdev_get_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xec1d4dae'/>
+      <elf-symbol name='rdev_get_regmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a580a80'/>
+      <elf-symbol name='read_cache_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdfb1ab04'/>
+      <elf-symbol name='read_cache_page_gfp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfcf3cf08'/>
+      <elf-symbol name='read_sanitised_ftr_reg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3562f983'/>
+      <elf-symbol name='readahead_gfp_mask' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40a3e1bb'/>
+      <elf-symbol name='rebuild_sched_domains' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa65ab83d'/>
+      <elf-symbol name='reciprocal_value' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa965ca81'/>
+      <elf-symbol name='reclaim_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d55e4f4'/>
+      <elf-symbol name='reclaim_shmem_address_space' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf06ed7f'/>
+      <elf-symbol name='redirty_page_for_writepage' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x224fc359'/>
+      <elf-symbol name='refcount_dec_and_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e06bc5c'/>
+      <elf-symbol name='refcount_dec_and_mutex_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x27c95ba3'/>
+      <elf-symbol name='refcount_dec_not_one' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47c20f8a'/>
+      <elf-symbol name='refcount_warn_saturate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x296695f'/>
+      <elf-symbol name='refresh_frequency_limits' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84358279'/>
+      <elf-symbol name='regcache_cache_bypass' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfdc69588'/>
+      <elf-symbol name='regcache_cache_only' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc799d9ed'/>
+      <elf-symbol name='regcache_drop_region' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdad9b458'/>
+      <elf-symbol name='regcache_mark_dirty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x186342fe'/>
+      <elf-symbol name='regcache_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x231da597'/>
+      <elf-symbol name='regcache_sync_region' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf30bf95f'/>
+      <elf-symbol name='register_candev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x38fc5a93'/>
+      <elf-symbol name='register_chrdev_region' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3fd78f3b'/>
+      <elf-symbol name='register_console' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x29e0f0d9'/>
+      <elf-symbol name='register_die_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6261484'/>
+      <elf-symbol name='register_filesystem' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe3b397e7'/>
+      <elf-symbol name='register_ftrace_export' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9593ef31'/>
+      <elf-symbol name='register_inet6addr_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60352082'/>
+      <elf-symbol name='register_inetaddr_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf68285c0'/>
+      <elf-symbol name='register_kernel_break_hook' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x48a17bef'/>
+      <elf-symbol name='register_key_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf1ed30b4'/>
+      <elf-symbol name='register_kprobe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x472cf3b'/>
+      <elf-symbol name='register_kretprobe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79345cb9'/>
+      <elf-symbol name='register_memory_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa770832'/>
+      <elf-symbol name='register_module_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf353a698'/>
+      <elf-symbol name='register_net_sysctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x53e9b342'/>
+      <elf-symbol name='register_netdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96cc121a'/>
+      <elf-symbol name='register_netdevice' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe8772eaf'/>
+      <elf-symbol name='register_netdevice_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2da1048'/>
+      <elf-symbol name='register_netevent_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4761f17c'/>
+      <elf-symbol name='register_oom_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x622c7922'/>
+      <elf-symbol name='register_pernet_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62812e41'/>
+      <elf-symbol name='register_pernet_subsys' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79f1a663'/>
+      <elf-symbol name='register_pm_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9cc4f70a'/>
+      <elf-symbol name='register_pppox_proto' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x157b64f9'/>
+      <elf-symbol name='register_qdisc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d58bdce'/>
+      <elf-symbol name='register_reboot_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3517383e'/>
+      <elf-symbol name='register_restart_handler' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9d8fd16'/>
+      <elf-symbol name='register_shrinker' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b09706'/>
+      <elf-symbol name='register_syscore_ops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9c425de'/>
+      <elf-symbol name='register_sysctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9cd91791'/>
+      <elf-symbol name='register_sysctl_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a449c4f'/>
+      <elf-symbol name='register_tcf_proto_ops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8ec0168'/>
+      <elf-symbol name='register_tracepoint_module_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xefa2c27d'/>
+      <elf-symbol name='register_virtio_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3290b14'/>
+      <elf-symbol name='register_virtio_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5378826e'/>
+      <elf-symbol name='register_vmap_purge_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26ed2186'/>
+      <elf-symbol name='register_wide_hw_breakpoint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbc09d5a3'/>
+      <elf-symbol name='regmap_add_irq_chip' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20f99af'/>
+      <elf-symbol name='regmap_async_complete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe54dbd36'/>
+      <elf-symbol name='regmap_attach_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf095ba89'/>
+      <elf-symbol name='regmap_bulk_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf01e6f2'/>
+      <elf-symbol name='regmap_bulk_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x77a2f325'/>
+      <elf-symbol name='regmap_check_range_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4901618'/>
+      <elf-symbol name='regmap_del_irq_chip' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x131a5ed7'/>
+      <elf-symbol name='regmap_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85d22c8b'/>
+      <elf-symbol name='regmap_field_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e54468c'/>
+      <elf-symbol name='regmap_field_update_bits_base' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf36fb827'/>
+      <elf-symbol name='regmap_get_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c6a695b'/>
+      <elf-symbol name='regmap_get_reg_stride' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2387211a'/>
+      <elf-symbol name='regmap_get_val_bytes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6d15479b'/>
+      <elf-symbol name='regmap_irq_chip_get_base' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e89a560'/>
+      <elf-symbol name='regmap_irq_get_domain' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a9fe178'/>
+      <elf-symbol name='regmap_irq_get_virq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55784228'/>
+      <elf-symbol name='regmap_mmio_detach_clk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c6f790b'/>
+      <elf-symbol name='regmap_multi_reg_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25c5e3c5'/>
+      <elf-symbol name='regmap_multi_reg_write_bypassed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3fc9fc9'/>
+      <elf-symbol name='regmap_noinc_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5908fd2e'/>
+      <elf-symbol name='regmap_noinc_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7ebb445'/>
+      <elf-symbol name='regmap_raw_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x617915e5'/>
+      <elf-symbol name='regmap_raw_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x22cbffea'/>
+      <elf-symbol name='regmap_raw_write_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7591141f'/>
+      <elf-symbol name='regmap_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd58b01d7'/>
+      <elf-symbol name='regmap_register_patch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe99b502b'/>
+      <elf-symbol name='regmap_reinit_cache' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe75b10d'/>
+      <elf-symbol name='regmap_update_bits_base' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7725a34d'/>
+      <elf-symbol name='regmap_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd43025f1'/>
+      <elf-symbol name='regulator_allow_bypass' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f982b86'/>
+      <elf-symbol name='regulator_bulk_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0975d87'/>
+      <elf-symbol name='regulator_bulk_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x621fbe7b'/>
+      <elf-symbol name='regulator_bulk_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2dd4a4ee'/>
+      <elf-symbol name='regulator_bulk_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x46ae5d67'/>
+      <elf-symbol name='regulator_count_voltages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a40ac26'/>
+      <elf-symbol name='regulator_desc_list_voltage_linear_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d4fddaa'/>
+      <elf-symbol name='regulator_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4eec1779'/>
+      <elf-symbol name='regulator_disable_regmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd75b74e7'/>
+      <elf-symbol name='regulator_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa27d944'/>
+      <elf-symbol name='regulator_enable_regmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8a1032da'/>
+      <elf-symbol name='regulator_force_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4a270387'/>
+      <elf-symbol name='regulator_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7e5ef82f'/>
+      <elf-symbol name='regulator_get_current_limit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x92683a79'/>
+      <elf-symbol name='regulator_get_current_limit_regmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8ac9126b'/>
+      <elf-symbol name='regulator_get_drvdata' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2c3d29a'/>
+      <elf-symbol name='regulator_get_linear_step' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x717b64f0'/>
+      <elf-symbol name='regulator_get_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85097f00'/>
+      <elf-symbol name='regulator_get_optional' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xffa7bd99'/>
+      <elf-symbol name='regulator_get_voltage' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x14315d1'/>
+      <elf-symbol name='regulator_get_voltage_rdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9793cc0a'/>
+      <elf-symbol name='regulator_get_voltage_sel_regmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd5e61d97'/>
+      <elf-symbol name='regulator_is_enabled' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x261e7f14'/>
+      <elf-symbol name='regulator_is_enabled_regmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xafec8f0c'/>
+      <elf-symbol name='regulator_is_supported_voltage' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4cf447a'/>
+      <elf-symbol name='regulator_list_voltage' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f65050c'/>
+      <elf-symbol name='regulator_list_voltage_linear' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb165253c'/>
+      <elf-symbol name='regulator_list_voltage_linear_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x404c4c7d'/>
+      <elf-symbol name='regulator_list_voltage_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6d1e1266'/>
+      <elf-symbol name='regulator_map_voltage_ascend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57c76477'/>
+      <elf-symbol name='regulator_map_voltage_iterate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10b34feb'/>
+      <elf-symbol name='regulator_map_voltage_linear' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x992b9d9c'/>
+      <elf-symbol name='regulator_map_voltage_linear_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x606d751d'/>
+      <elf-symbol name='regulator_notifier_call_chain' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6a23e29'/>
+      <elf-symbol name='regulator_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a45b209'/>
+      <elf-symbol name='regulator_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa30176c8'/>
+      <elf-symbol name='regulator_register_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x86be7f5e'/>
+      <elf-symbol name='regulator_set_active_discharge_regmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2317aaca'/>
+      <elf-symbol name='regulator_set_current_limit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd36cd787'/>
+      <elf-symbol name='regulator_set_current_limit_regmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c905e27'/>
+      <elf-symbol name='regulator_set_load' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x694a3645'/>
+      <elf-symbol name='regulator_set_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3648026e'/>
+      <elf-symbol name='regulator_set_ramp_delay_regmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62f2200'/>
+      <elf-symbol name='regulator_set_voltage' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3095dd01'/>
+      <elf-symbol name='regulator_set_voltage_sel_regmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ab826ce'/>
+      <elf-symbol name='regulator_set_voltage_time' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99fe91c'/>
+      <elf-symbol name='regulator_set_voltage_time_sel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdfae5297'/>
+      <elf-symbol name='regulator_sync_voltage' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe5ed8d2f'/>
+      <elf-symbol name='regulator_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2ea63034'/>
+      <elf-symbol name='regulator_unregister_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2124b30'/>
+      <elf-symbol name='relay_close' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f6fac6d'/>
+      <elf-symbol name='relay_flush' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe266f439'/>
+      <elf-symbol name='relay_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6de40b20'/>
+      <elf-symbol name='relay_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa2c6d402'/>
+      <elf-symbol name='relay_subbufs_consumed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x64e293a9'/>
+      <elf-symbol name='relay_switch_subbuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5027d999'/>
+      <elf-symbol name='release_firmware' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc6d09aa9'/>
+      <elf-symbol name='release_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbad31970'/>
+      <elf-symbol name='release_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff795350'/>
+      <elf-symbol name='release_sock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1cab7cf'/>
+      <elf-symbol name='remap_pfn_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8fecce95'/>
+      <elf-symbol name='remap_vmalloc_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x502200a0'/>
+      <elf-symbol name='remove_cpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad4e6259'/>
+      <elf-symbol name='remove_memory_subsection' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x261130e0'/>
+      <elf-symbol name='remove_proc_entry' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7fac5fcb'/>
+      <elf-symbol name='remove_proc_subtree' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9b4eb75'/>
+      <elf-symbol name='remove_wait_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x37110088'/>
+      <elf-symbol name='report_iommu_fault' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbecf97a6'/>
+      <elf-symbol name='request_any_context_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdbdb0e8b'/>
+      <elf-symbol name='request_firmware' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e2682d1'/>
+      <elf-symbol name='request_firmware_direct' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x12a49c27'/>
+      <elf-symbol name='request_firmware_into_buf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc25e2dc5'/>
+      <elf-symbol name='request_firmware_nowait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1fbf690e'/>
+      <elf-symbol name='request_key_tag' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24e78521'/>
+      <elf-symbol name='request_threaded_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x92d5838e'/>
+      <elf-symbol name='resched_curr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xab0c2844'/>
+      <elf-symbol name='reset_control_assert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c4b6684'/>
+      <elf-symbol name='reset_control_deassert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb2210d64'/>
+      <elf-symbol name='reset_control_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40f0683e'/>
+      <elf-symbol name='reset_control_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24f39c39'/>
+      <elf-symbol name='reset_control_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c743fb6'/>
+      <elf-symbol name='reset_controller_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc40f67d7'/>
+      <elf-symbol name='reset_controller_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x94b1590f'/>
+      <elf-symbol name='return_address' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb917b6d7'/>
+      <elf-symbol name='rfkill_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x786e90a7'/>
+      <elf-symbol name='rfkill_blocked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc0763484'/>
+      <elf-symbol name='rfkill_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdb68bbad'/>
+      <elf-symbol name='rfkill_init_sw_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaad6d92f'/>
+      <elf-symbol name='rfkill_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff282521'/>
+      <elf-symbol name='rfkill_resume_polling' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc781bd9f'/>
+      <elf-symbol name='rfkill_set_hw_state_reason' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcdce87c'/>
+      <elf-symbol name='rfkill_set_states' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85b5e625'/>
+      <elf-symbol name='rfkill_set_sw_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8a490c90'/>
+      <elf-symbol name='rfkill_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x83eb21c'/>
+      <elf-symbol name='rhashtable_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x371379a0'/>
+      <elf-symbol name='rhashtable_free_and_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1df13bbf'/>
+      <elf-symbol name='rhashtable_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x938408c'/>
+      <elf-symbol name='rhashtable_insert_slow' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x694ce81c'/>
+      <elf-symbol name='rhltable_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c2573d1'/>
+      <elf-symbol name='rht_bucket_nested' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb7f990e9'/>
+      <elf-symbol name='rht_bucket_nested_insert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xebfbabb3'/>
+      <elf-symbol name='rng_is_initialized' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a4f9d28'/>
+      <elf-symbol name='round_jiffies' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91eb9b4'/>
+      <elf-symbol name='round_jiffies_relative' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1eb9516e'/>
+      <elf-symbol name='round_jiffies_up' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x50fad434'/>
+      <elf-symbol name='rpmsg_chrdev_eptdev_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e29944e'/>
+      <elf-symbol name='rpmsg_chrdev_eptdev_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c9a0db2'/>
+      <elf-symbol name='rpmsg_create_channel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf70b1dbb'/>
+      <elf-symbol name='rpmsg_create_ept' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf486dcd3'/>
+      <elf-symbol name='rpmsg_destroy_ept' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x464c12c7'/>
+      <elf-symbol name='rpmsg_find_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1e6b11fc'/>
+      <elf-symbol name='rpmsg_get_signals' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x650eaf18'/>
+      <elf-symbol name='rpmsg_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf60685b8'/>
+      <elf-symbol name='rpmsg_register_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61978e79'/>
+      <elf-symbol name='rpmsg_release_channel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36dab3db'/>
+      <elf-symbol name='rpmsg_rx_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8624a2fc'/>
+      <elf-symbol name='rpmsg_send' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc4c51d'/>
+      <elf-symbol name='rpmsg_sendto' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfaa7be47'/>
+      <elf-symbol name='rpmsg_set_signals' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4fbe4d23'/>
+      <elf-symbol name='rpmsg_trysend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x763dcdc'/>
+      <elf-symbol name='rpmsg_unregister_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e0b4dc7'/>
+      <elf-symbol name='rproc_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc78d3add'/>
+      <elf-symbol name='rproc_add_carveout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x537f2030'/>
+      <elf-symbol name='rproc_add_subdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x192ad040'/>
+      <elf-symbol name='rproc_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x126d8eed'/>
+      <elf-symbol name='rproc_boot' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4a5b329'/>
+      <elf-symbol name='rproc_coredump' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5b383b'/>
+      <elf-symbol name='rproc_coredump_add_custom_segment' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x838bf24b'/>
+      <elf-symbol name='rproc_coredump_add_segment' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdccd6c68'/>
+      <elf-symbol name='rproc_coredump_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdd2f4d5a'/>
+      <elf-symbol name='rproc_coredump_set_elf_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa91926af'/>
+      <elf-symbol name='rproc_coredump_using_sections' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb0a4e77c'/>
+      <elf-symbol name='rproc_da_to_va' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x727ad0fb'/>
+      <elf-symbol name='rproc_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79266395'/>
+      <elf-symbol name='rproc_del_carveout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6492b9d4'/>
+      <elf-symbol name='rproc_elf_find_loaded_rsc_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a276c08'/>
+      <elf-symbol name='rproc_elf_get_boot_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x83e7da02'/>
+      <elf-symbol name='rproc_elf_load_rsc_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed371fa'/>
+      <elf-symbol name='rproc_elf_load_segments' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x155a4740'/>
+      <elf-symbol name='rproc_elf_sanity_check' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f3601c2'/>
+      <elf-symbol name='rproc_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96b9f73'/>
+      <elf-symbol name='rproc_get_by_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd99245c2'/>
+      <elf-symbol name='rproc_get_by_phandle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf668cd44'/>
+      <elf-symbol name='rproc_mem_entry_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90562af'/>
+      <elf-symbol name='rproc_mem_entry_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xced71159'/>
+      <elf-symbol name='rproc_of_parse_firmware' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x74f197fd'/>
+      <elf-symbol name='rproc_of_resm_mem_entry_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcde0e20b'/>
+      <elf-symbol name='rproc_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c23696b'/>
+      <elf-symbol name='rproc_remove_subdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x48a4fc89'/>
+      <elf-symbol name='rproc_report_crash' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6db814e3'/>
+      <elf-symbol name='rproc_set_firmware' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b33e337'/>
+      <elf-symbol name='rproc_shutdown' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1231e951'/>
+      <elf-symbol name='rproc_vq_interrupt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8a4dce61'/>
+      <elf-symbol name='rq_flush_dcache_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1898a707'/>
+      <elf-symbol name='rt6_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x12536fc7'/>
+      <elf-symbol name='rt_mutex_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3d5bbe1f'/>
+      <elf-symbol name='rt_mutex_trylock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79fabcc3'/>
+      <elf-symbol name='rt_mutex_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6330a1b3'/>
+      <elf-symbol name='rtc_add_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda344195'/>
+      <elf-symbol name='rtc_class_close' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xab9cbcf1'/>
+      <elf-symbol name='rtc_class_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x188b09da'/>
+      <elf-symbol name='rtc_ktime_to_tm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4c2c66c'/>
+      <elf-symbol name='rtc_read_alarm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x529871a4'/>
+      <elf-symbol name='rtc_read_time' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdd276376'/>
+      <elf-symbol name='rtc_set_alarm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8323217e'/>
+      <elf-symbol name='rtc_set_time' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2eb8939d'/>
+      <elf-symbol name='rtc_time64_to_tm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x356461c8'/>
+      <elf-symbol name='rtc_tm_to_ktime' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x23412816'/>
+      <elf-symbol name='rtc_tm_to_time64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f2250ba'/>
+      <elf-symbol name='rtc_update_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6ca50b5'/>
+      <elf-symbol name='rtc_valid_tm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5838f6c9'/>
+      <elf-symbol name='rtnl_is_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85670f1d'/>
+      <elf-symbol name='rtnl_link_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84154d8f'/>
+      <elf-symbol name='rtnl_link_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbbd02329'/>
+      <elf-symbol name='rtnl_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7a4fbed'/>
+      <elf-symbol name='rtnl_trylock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf4f14de6'/>
+      <elf-symbol name='rtnl_unicast' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba7c984c'/>
+      <elf-symbol name='rtnl_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e720ff2'/>
+      <elf-symbol name='sb800_prefetch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc36a424'/>
+      <elf-symbol name='sb_min_blocksize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed5123b4'/>
+      <elf-symbol name='sb_set_blocksize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0e87c0b'/>
+      <elf-symbol name='sbitmap_add_wait_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x399eda0f'/>
+      <elf-symbol name='sbitmap_any_bit_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3db48927'/>
+      <elf-symbol name='sbitmap_del_wait_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe8199ff8'/>
+      <elf-symbol name='sbitmap_init_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdb82f71f'/>
+      <elf-symbol name='sbitmap_queue_clear' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef744bb5'/>
+      <elf-symbol name='sbitmap_queue_init_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6f95bb84'/>
+      <elf-symbol name='sbitmap_queue_min_shallow_depth' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a9754cf'/>
+      <elf-symbol name='sbitmap_queue_resize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40d349b6'/>
+      <elf-symbol name='sbitmap_queue_show' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25c4e4e8'/>
+      <elf-symbol name='scatterwalk_ffwd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5bbdfa26'/>
+      <elf-symbol name='scatterwalk_map_and_copy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x845dbf3b'/>
+      <elf-symbol name='sched_clock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd653b126'/>
+      <elf-symbol name='sched_clock_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x86d43be9'/>
+      <elf-symbol name='sched_set_fifo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35900353'/>
+      <elf-symbol name='sched_set_fifo_low' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcdaba826'/>
+      <elf-symbol name='sched_set_normal' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x655c9e2a'/>
+      <elf-symbol name='sched_setattr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda57cf92'/>
+      <elf-symbol name='sched_setattr_nocheck' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1cc7cbd2'/>
+      <elf-symbol name='sched_setscheduler' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xac32689f'/>
+      <elf-symbol name='sched_setscheduler_nocheck' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2702925'/>
+      <elf-symbol name='sched_show_task' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f5add08'/>
+      <elf-symbol name='sched_trace_cfs_rq_avg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4323cc4b'/>
+      <elf-symbol name='sched_trace_cfs_rq_cpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x452a3ae0'/>
+      <elf-symbol name='sched_trace_cfs_rq_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3dfeff42'/>
+      <elf-symbol name='sched_trace_rd_span' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x14bc868'/>
+      <elf-symbol name='sched_trace_rq_avg_dl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5beabe31'/>
+      <elf-symbol name='sched_trace_rq_avg_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb16e7c55'/>
+      <elf-symbol name='sched_trace_rq_avg_rt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdfe2b53c'/>
+      <elf-symbol name='sched_trace_rq_cpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x68feb9f6'/>
+      <elf-symbol name='schedule' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1000e51'/>
+      <elf-symbol name='schedule_hrtimeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a460dc5'/>
+      <elf-symbol name='schedule_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8ddd8aad'/>
+      <elf-symbol name='schedule_timeout_interruptible' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54496b4'/>
+      <elf-symbol name='schedule_timeout_killable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf09cc34'/>
+      <elf-symbol name='schedule_timeout_uninterruptible' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x151f4898'/>
+      <elf-symbol name='scmi_driver_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2eb8a6e9'/>
+      <elf-symbol name='scmi_driver_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x319cd7ee'/>
+      <elf-symbol name='scmi_protocol_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe8dd99f4'/>
+      <elf-symbol name='scmi_protocol_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd1f9d24c'/>
+      <elf-symbol name='scnprintf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96848186'/>
+      <elf-symbol name='scsi_add_host_with_dma' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x76ccada9'/>
+      <elf-symbol name='scsi_autopm_get_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84551c76'/>
+      <elf-symbol name='scsi_autopm_put_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1bd064ad'/>
+      <elf-symbol name='scsi_block_requests' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x74cff372'/>
+      <elf-symbol name='scsi_block_when_processing_errors' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x16af9b14'/>
+      <elf-symbol name='scsi_change_queue_depth' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf660a6e4'/>
+      <elf-symbol name='scsi_cmd_allowed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc1d5d504'/>
+      <elf-symbol name='scsi_device_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6d7dc655'/>
+      <elf-symbol name='scsi_device_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6558b98c'/>
+      <elf-symbol name='scsi_device_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3cd949cf'/>
+      <elf-symbol name='scsi_device_quiesce' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xabc72136'/>
+      <elf-symbol name='scsi_dma_map' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4843ecd0'/>
+      <elf-symbol name='scsi_dma_unmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf44dc9cb'/>
+      <elf-symbol name='scsi_eh_prep_cmnd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7b295028'/>
+      <elf-symbol name='scsi_eh_ready_devs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ad39452'/>
+      <elf-symbol name='scsi_eh_restore_cmnd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6153d11'/>
+      <elf-symbol name='scsi_get_host_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84b078cf'/>
+      <elf-symbol name='scsi_host_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7a7be746'/>
+      <elf-symbol name='scsi_host_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x37740ca6'/>
+      <elf-symbol name='scsi_host_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x417aaa83'/>
+      <elf-symbol name='scsi_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7610019d'/>
+      <elf-symbol name='scsi_ioctl_block_when_processing_errors' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd5e0e7a'/>
+      <elf-symbol name='scsi_is_host_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x52ca2b99'/>
+      <elf-symbol name='scsi_normalize_sense' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfbad3cf0'/>
+      <elf-symbol name='scsi_print_command' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7b07baf'/>
+      <elf-symbol name='scsi_print_sense_hdr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c9473cc'/>
+      <elf-symbol name='scsi_register_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6ae0c99'/>
+      <elf-symbol name='scsi_register_interface' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51d2ced7'/>
+      <elf-symbol name='scsi_remove_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d935945'/>
+      <elf-symbol name='scsi_remove_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf6952d7'/>
+      <elf-symbol name='scsi_report_bus_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c4b3924'/>
+      <elf-symbol name='scsi_report_device_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c6d44d'/>
+      <elf-symbol name='scsi_scan_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1729bce8'/>
+      <elf-symbol name='scsi_schedule_eh' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69fc8896'/>
+      <elf-symbol name='scsi_sense_desc_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10d9f885'/>
+      <elf-symbol name='scsi_test_unit_ready' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x31e8a7ad'/>
+      <elf-symbol name='scsi_unblock_requests' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4fbfc120'/>
+      <elf-symbol name='sdev_prefix_printk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x23a274a0'/>
+      <elf-symbol name='sdhci_add_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1442b8a'/>
+      <elf-symbol name='sdhci_adma_write_desc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfc7d6d28'/>
+      <elf-symbol name='sdhci_cleanup_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xddf06ad3'/>
+      <elf-symbol name='sdhci_cqe_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa6e8088'/>
+      <elf-symbol name='sdhci_cqe_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc1d66473'/>
+      <elf-symbol name='sdhci_cqe_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a261012'/>
+      <elf-symbol name='sdhci_dumpregs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdc6d7c'/>
+      <elf-symbol name='sdhci_enable_clk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63337f0e'/>
+      <elf-symbol name='sdhci_enable_v4_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9bb9e7d'/>
+      <elf-symbol name='sdhci_execute_tuning' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x86d20e5c'/>
+      <elf-symbol name='sdhci_get_property' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7858ff8c'/>
+      <elf-symbol name='sdhci_pltfm_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x13534885'/>
+      <elf-symbol name='sdhci_pltfm_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2ef620c5'/>
+      <elf-symbol name='sdhci_remove_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7ec7b4b'/>
+      <elf-symbol name='sdhci_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf95522e4'/>
+      <elf-symbol name='sdhci_request_atomic' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd26193b1'/>
+      <elf-symbol name='sdhci_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b47877e'/>
+      <elf-symbol name='sdhci_resume_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb892b864'/>
+      <elf-symbol name='sdhci_runtime_resume_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf1a5264a'/>
+      <elf-symbol name='sdhci_runtime_suspend_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96d36979'/>
+      <elf-symbol name='sdhci_set_bus_width' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd130fba9'/>
+      <elf-symbol name='sdhci_set_power_noreg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80930048'/>
+      <elf-symbol name='sdhci_set_uhs_signaling' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66c0bcd2'/>
+      <elf-symbol name='sdhci_setup_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f95bd19'/>
+      <elf-symbol name='sdhci_suspend_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed1e0f5a'/>
+      <elf-symbol name='sdio_align_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5de62ef'/>
+      <elf-symbol name='sdio_claim_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40d656c2'/>
+      <elf-symbol name='sdio_claim_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c24a992'/>
+      <elf-symbol name='sdio_disable_func' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x42b281c4'/>
+      <elf-symbol name='sdio_enable_func' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e19d712'/>
+      <elf-symbol name='sdio_f0_readb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84ab579f'/>
+      <elf-symbol name='sdio_f0_writeb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbec1dfc9'/>
+      <elf-symbol name='sdio_get_host_pm_caps' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e6e320b'/>
+      <elf-symbol name='sdio_memcpy_fromio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85346311'/>
+      <elf-symbol name='sdio_memcpy_toio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb58cc873'/>
+      <elf-symbol name='sdio_readb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd5f073c'/>
+      <elf-symbol name='sdio_readl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfddd9445'/>
+      <elf-symbol name='sdio_readsb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3338ee77'/>
+      <elf-symbol name='sdio_readw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7122c25'/>
+      <elf-symbol name='sdio_register_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1bc384de'/>
+      <elf-symbol name='sdio_release_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa85166d'/>
+      <elf-symbol name='sdio_release_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x236304ec'/>
+      <elf-symbol name='sdio_retune_crc_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xecdc0ef8'/>
+      <elf-symbol name='sdio_retune_crc_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc8b0cf08'/>
+      <elf-symbol name='sdio_retune_hold_now' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfaf75324'/>
+      <elf-symbol name='sdio_retune_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1742b1ea'/>
+      <elf-symbol name='sdio_set_block_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x655ac0eb'/>
+      <elf-symbol name='sdio_set_host_pm_flags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9503a7ad'/>
+      <elf-symbol name='sdio_signal_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2fa89925'/>
+      <elf-symbol name='sdio_unregister_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10092ff7'/>
+      <elf-symbol name='sdio_writeb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x31c28fc7'/>
+      <elf-symbol name='sdio_writeb_readb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2592f2ae'/>
+      <elf-symbol name='sdio_writel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1cd8de76'/>
+      <elf-symbol name='sdio_writesb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x397f8c61'/>
+      <elf-symbol name='sdio_writew' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd05b76eb'/>
+      <elf-symbol name='security_file_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3df2d584'/>
+      <elf-symbol name='security_inode_init_security' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfc752bfb'/>
+      <elf-symbol name='security_sk_classify_flow' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf59a8fc2'/>
+      <elf-symbol name='select_fallback_rq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5fb655'/>
+      <elf-symbol name='send_sig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc72d3571'/>
+      <elf-symbol name='send_sig_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3cda0ed'/>
+      <elf-symbol name='send_sig_mceerr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c740dad'/>
+      <elf-symbol name='seq_buf_printf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe397caf5'/>
+      <elf-symbol name='seq_escape' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24741e96'/>
+      <elf-symbol name='seq_file_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7bfad20c'/>
+      <elf-symbol name='seq_hex_dump' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x748c3cf7'/>
+      <elf-symbol name='seq_list_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7d4daac'/>
+      <elf-symbol name='seq_list_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff1e9dd8'/>
+      <elf-symbol name='seq_lseek' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9efacf32'/>
+      <elf-symbol name='seq_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7529d847'/>
+      <elf-symbol name='seq_open_private' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad71f639'/>
+      <elf-symbol name='seq_printf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1e42c653'/>
+      <elf-symbol name='seq_putc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x326aea6'/>
+      <elf-symbol name='seq_puts' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf53068cd'/>
+      <elf-symbol name='seq_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d452a34'/>
+      <elf-symbol name='seq_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde2fd419'/>
+      <elf-symbol name='seq_release_private' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x274ebba1'/>
+      <elf-symbol name='seq_vprintf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1d88668'/>
+      <elf-symbol name='seq_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfea11aa0'/>
+      <elf-symbol name='serial8250_do_pm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xecc36793'/>
+      <elf-symbol name='serial8250_do_set_termios' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4ee58ba'/>
+      <elf-symbol name='serial8250_do_shutdown' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc8eee952'/>
+      <elf-symbol name='serial8250_do_startup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x583a1d5f'/>
+      <elf-symbol name='serial8250_get_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x98c203f0'/>
+      <elf-symbol name='serial8250_modem_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8a319b2'/>
+      <elf-symbol name='serial8250_register_8250_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x44724de1'/>
+      <elf-symbol name='serial8250_resume_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7208c3a'/>
+      <elf-symbol name='serial8250_rpm_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeebaf634'/>
+      <elf-symbol name='serial8250_rpm_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc6fe41d6'/>
+      <elf-symbol name='serial8250_rpm_put_tx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32cbe8e0'/>
+      <elf-symbol name='serial8250_rx_chars' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xab3c9eae'/>
+      <elf-symbol name='serial8250_suspend_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc248d26'/>
+      <elf-symbol name='serial8250_tx_chars' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8827233'/>
+      <elf-symbol name='serial8250_unregister_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcefcd99a'/>
+      <elf-symbol name='serio_close' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8b8f1eca'/>
+      <elf-symbol name='serio_interrupt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d6b74e4'/>
+      <elf-symbol name='serio_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7eb111ba'/>
+      <elf-symbol name='serio_reconnect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6eb0941'/>
+      <elf-symbol name='serio_rescan' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbdc9437c'/>
+      <elf-symbol name='serio_unregister_child_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3e095137'/>
+      <elf-symbol name='serio_unregister_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb5705d9'/>
+      <elf-symbol name='serio_unregister_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdfb0a08f'/>
+      <elf-symbol name='set_bh_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57d6288a'/>
+      <elf-symbol name='set_blocksize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7273313c'/>
+      <elf-symbol name='set_cached_acl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x223bb16c'/>
+      <elf-symbol name='set_capacity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f19775a'/>
+      <elf-symbol name='set_capacity_and_notify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4b31b194'/>
+      <elf-symbol name='set_cpus_allowed_ptr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3df3a943'/>
+      <elf-symbol name='set_disk_ro' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20c17f06'/>
+      <elf-symbol name='set_freezable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e61bb05'/>
+      <elf-symbol name='set_next_entity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x70f8b629'/>
+      <elf-symbol name='set_nlink' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ee3bd2b'/>
+      <elf-symbol name='set_normalized_timespec64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x365acda7'/>
+      <elf-symbol name='set_page_dirty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3ce8cdb'/>
+      <elf-symbol name='set_page_dirty_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a293753'/>
+      <elf-symbol name='set_task_cpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb776a20c'/>
+      <elf-symbol name='set_task_ioprio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20530a7d'/>
+      <elf-symbol name='set_user_nice' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d15e761'/>
+      <elf-symbol name='setattr_copy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xac6b6426'/>
+      <elf-symbol name='setattr_prepare' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf1218403'/>
+      <elf-symbol name='sg_alloc_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a2f6702'/>
+      <elf-symbol name='sg_alloc_table_chained' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1bee4974'/>
+      <elf-symbol name='sg_alloc_table_from_pages_segment' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf889f6a'/>
+      <elf-symbol name='sg_copy_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8ac743de'/>
+      <elf-symbol name='sg_copy_from_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x905695ab'/>
+      <elf-symbol name='sg_copy_to_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b8ab42'/>
+      <elf-symbol name='sg_free_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f5b4fe4'/>
+      <elf-symbol name='sg_free_table_chained' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x274dd1a3'/>
+      <elf-symbol name='sg_init_one' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb320cc0e'/>
+      <elf-symbol name='sg_init_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf888ca21'/>
+      <elf-symbol name='sg_last' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc5f7e801'/>
+      <elf-symbol name='sg_miter_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19c03e9f'/>
+      <elf-symbol name='sg_miter_skip' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7c643dc'/>
+      <elf-symbol name='sg_miter_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54ba365f'/>
+      <elf-symbol name='sg_miter_stop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55f23c16'/>
+      <elf-symbol name='sg_nents' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x461d16ca'/>
+      <elf-symbol name='sg_nents_for_len' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4230a8d7'/>
+      <elf-symbol name='sg_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x87b8798d'/>
+      <elf-symbol name='sg_pcopy_from_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0fe8d51'/>
+      <elf-symbol name='sg_pcopy_to_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea778fab'/>
+      <elf-symbol name='sg_zero_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d192c70'/>
+      <elf-symbol name='sget_fc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf74e8135'/>
+      <elf-symbol name='shash_free_singlespawn_instance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49ac4a91'/>
+      <elf-symbol name='shash_register_instance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa4c04000'/>
+      <elf-symbol name='shmem_file_setup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9703ba84'/>
+      <elf-symbol name='shmem_read_mapping_page_gfp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f15837f'/>
+      <elf-symbol name='shmem_truncate_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe43dbbe0'/>
+      <elf-symbol name='show_class_attr_string' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe959b218'/>
+      <elf-symbol name='show_rcu_gp_kthreads' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f6a07fe'/>
+      <elf-symbol name='show_rcu_tasks_classic_gp_kthread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd74e400f'/>
+      <elf-symbol name='show_rcu_tasks_trace_gp_kthread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c291e86'/>
+      <elf-symbol name='show_regs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x707b45a0'/>
+      <elf-symbol name='shrink_dcache_sb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbf4ebc05'/>
+      <elf-symbol name='shrink_slab' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8f1efa7'/>
+      <elf-symbol name='si_mem_available' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x785a93b4'/>
+      <elf-symbol name='si_meminfo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40c7247c'/>
+      <elf-symbol name='si_swapinfo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xec13c83c'/>
+      <elf-symbol name='sigprocmask' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a5fa363'/>
+      <elf-symbol name='simple_attr_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c8e2db2'/>
+      <elf-symbol name='simple_attr_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x730c85fe'/>
+      <elf-symbol name='simple_attr_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf289dbc4'/>
+      <elf-symbol name='simple_attr_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x881b4364'/>
+      <elf-symbol name='simple_get_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x852e19d2'/>
+      <elf-symbol name='simple_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7b9dbc42'/>
+      <elf-symbol name='simple_read_from_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x619cb7dd'/>
+      <elf-symbol name='simple_statfs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc4b2e1d7'/>
+      <elf-symbol name='simple_strtol' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb742fd7'/>
+      <elf-symbol name='simple_strtoll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7e56a4e'/>
+      <elf-symbol name='simple_strtoul' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20000329'/>
+      <elf-symbol name='simple_strtoull' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61b7b126'/>
+      <elf-symbol name='simple_write_to_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbb4f4766'/>
+      <elf-symbol name='single_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x739706ab'/>
+      <elf-symbol name='single_open_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad54611b'/>
+      <elf-symbol name='single_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5dc6186'/>
+      <elf-symbol name='sk_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbfb2c506'/>
+      <elf-symbol name='sk_error_report' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa9ee2e1b'/>
+      <elf-symbol name='sk_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56be23e1'/>
+      <elf-symbol name='sk_setup_caps' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25e2eb58'/>
+      <elf-symbol name='skb_add_rx_frag' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a6d2842'/>
+      <elf-symbol name='skb_append_pagefrags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40f1684f'/>
+      <elf-symbol name='skb_checksum' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7cf442a9'/>
+      <elf-symbol name='skb_checksum_help' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3fdb7a9'/>
+      <elf-symbol name='skb_clone' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x434da991'/>
+      <elf-symbol name='skb_clone_sk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0b5a76d'/>
+      <elf-symbol name='skb_coalesce_rx_frag' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc894f5d2'/>
+      <elf-symbol name='skb_complete_wifi_ack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2a80228'/>
+      <elf-symbol name='skb_copy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x137d9905'/>
+      <elf-symbol name='skb_copy_bits' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9a87a8'/>
+      <elf-symbol name='skb_copy_datagram_from_iter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf40cfcb'/>
+      <elf-symbol name='skb_copy_datagram_iter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe2161436'/>
+      <elf-symbol name='skb_copy_expand' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x50ae741c'/>
+      <elf-symbol name='skb_copy_ubufs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3fe0a135'/>
+      <elf-symbol name='skb_cow_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e4c49d9'/>
+      <elf-symbol name='skb_dequeue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b0b74c7'/>
+      <elf-symbol name='skb_dequeue_tail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x379bda39'/>
+      <elf-symbol name='skb_dump' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdff2136a'/>
+      <elf-symbol name='skb_ensure_writable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x798ed3f9'/>
+      <elf-symbol name='skb_free_datagram' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc56d7559'/>
+      <elf-symbol name='skb_page_frag_refill' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc38d3460'/>
+      <elf-symbol name='skb_partial_csum_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x749b4df6'/>
+      <elf-symbol name='skb_pull' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeddb190e'/>
+      <elf-symbol name='skb_pull_rcsum' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c9c7619'/>
+      <elf-symbol name='skb_push' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6367416f'/>
+      <elf-symbol name='skb_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfddec350'/>
+      <elf-symbol name='skb_queue_head' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c26301d'/>
+      <elf-symbol name='skb_queue_purge' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e60e016'/>
+      <elf-symbol name='skb_queue_tail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e3a5b6a'/>
+      <elf-symbol name='skb_realloc_headroom' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x58a59e92'/>
+      <elf-symbol name='skb_recv_datagram' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c6dc244'/>
+      <elf-symbol name='skb_scrub_packet' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf57ebe92'/>
+      <elf-symbol name='skb_set_owner_w' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x58fb411e'/>
+      <elf-symbol name='skb_split' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde58f748'/>
+      <elf-symbol name='skb_store_bits' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x87132d1c'/>
+      <elf-symbol name='skb_to_sgvec' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x815c2990'/>
+      <elf-symbol name='skb_to_sgvec_nomark' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a2bb392'/>
+      <elf-symbol name='skb_trim' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d82e354'/>
+      <elf-symbol name='skb_tstamp_tx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1f66c42d'/>
+      <elf-symbol name='skb_unlink' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b1d20e2'/>
+      <elf-symbol name='skb_vlan_untag' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x12c8a3e5'/>
+      <elf-symbol name='skcipher_alloc_instance_simple' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca1bd858'/>
+      <elf-symbol name='skcipher_register_instance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x94ff5a19'/>
+      <elf-symbol name='skcipher_walk_aead_decrypt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa76e33a4'/>
+      <elf-symbol name='skcipher_walk_aead_encrypt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d71d1e8'/>
+      <elf-symbol name='skcipher_walk_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4dac3060'/>
+      <elf-symbol name='skcipher_walk_virt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x39104d51'/>
+      <elf-symbol name='skip_spaces' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb71589f0'/>
+      <elf-symbol name='slhc_compress' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c8f2de'/>
+      <elf-symbol name='slhc_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe5bc9a53'/>
+      <elf-symbol name='slhc_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x215a8ec8'/>
+      <elf-symbol name='slhc_remember' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf102033e'/>
+      <elf-symbol name='slhc_toss' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6405dcd3'/>
+      <elf-symbol name='slhc_uncompress' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85fbc931'/>
+      <elf-symbol name='smp_call_function' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0eae826'/>
+      <elf-symbol name='smp_call_function_any' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8efd59ac'/>
+      <elf-symbol name='smp_call_function_many' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe2df8e9a'/>
+      <elf-symbol name='smp_call_function_single' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6228c21f'/>
+      <elf-symbol name='smp_call_function_single_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa080c5e5'/>
+      <elf-symbol name='smp_call_on_cpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x267df662'/>
+      <elf-symbol name='smpboot_register_percpu_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x733d5010'/>
+      <elf-symbol name='smpboot_unregister_percpu_thread' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc157d0f6'/>
+      <elf-symbol name='snapshot_get_image_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8873e715'/>
+      <elf-symbol name='snd_card_add_dev_attr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x222f9a0e'/>
+      <elf-symbol name='snd_card_disconnect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34c018a3'/>
+      <elf-symbol name='snd_card_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x337ed4c8'/>
+      <elf-symbol name='snd_card_new' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf745d0c3'/>
+      <elf-symbol name='snd_card_ref' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6243510f'/>
+      <elf-symbol name='snd_card_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbda8d304'/>
+      <elf-symbol name='snd_card_rw_proc_new' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda6a02c0'/>
+      <elf-symbol name='snd_component_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3215ffba'/>
+      <elf-symbol name='snd_compr_malloc_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7edf0cb'/>
+      <elf-symbol name='snd_compr_stop_error' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x76b4ce64'/>
+      <elf-symbol name='snd_ctl_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9415199'/>
+      <elf-symbol name='snd_ctl_add_vmaster_hook' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6cb53e41'/>
+      <elf-symbol name='snd_ctl_apply_vmaster_followers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d048020'/>
+      <elf-symbol name='snd_ctl_boolean_mono_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x81fe81c8'/>
+      <elf-symbol name='snd_ctl_boolean_stereo_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47f02a77'/>
+      <elf-symbol name='snd_ctl_enum_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc6a729f'/>
+      <elf-symbol name='snd_ctl_find_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ee2ee42'/>
+      <elf-symbol name='snd_ctl_make_virtual_master' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e909364'/>
+      <elf-symbol name='snd_ctl_new1' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb40d3648'/>
+      <elf-symbol name='snd_ctl_notify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e83753d'/>
+      <elf-symbol name='snd_ctl_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce664ef0'/>
+      <elf-symbol name='snd_ctl_sync_vmaster' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe351db0e'/>
+      <elf-symbol name='snd_device_disconnect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x97a3808b'/>
+      <elf-symbol name='snd_device_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x943fc165'/>
+      <elf-symbol name='snd_device_new' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9df7a834'/>
+      <elf-symbol name='snd_devm_card_new' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f53ff9'/>
+      <elf-symbol name='snd_dma_alloc_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4a2ca650'/>
+      <elf-symbol name='snd_dma_free_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54ac9f5d'/>
+      <elf-symbol name='snd_dmaengine_pcm_close_release_chan' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xab99ca02'/>
+      <elf-symbol name='snd_dmaengine_pcm_get_chan' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x75d840c6'/>
+      <elf-symbol name='snd_dmaengine_pcm_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff8fed7b'/>
+      <elf-symbol name='snd_dmaengine_pcm_pointer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0a750c4'/>
+      <elf-symbol name='snd_dmaengine_pcm_prepare_slave_config' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc5ec0ca'/>
+      <elf-symbol name='snd_dmaengine_pcm_refine_runtime_hwparams' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8dad6ea2'/>
+      <elf-symbol name='snd_dmaengine_pcm_set_config_from_dai_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x52dc5014'/>
+      <elf-symbol name='snd_dmaengine_pcm_trigger' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x619e7636'/>
+      <elf-symbol name='snd_hwdep_new' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x103a4cc5'/>
+      <elf-symbol name='snd_hwparams_to_dma_slave_config' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x920a19f9'/>
+      <elf-symbol name='snd_info_create_card_entry' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x827dd4d0'/>
+      <elf-symbol name='snd_info_create_module_entry' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62360a03'/>
+      <elf-symbol name='snd_info_free_entry' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xacf26b8f'/>
+      <elf-symbol name='snd_info_get_line' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24a94b26'/>
+      <elf-symbol name='snd_info_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1fa0a2c6'/>
+      <elf-symbol name='snd_interval_ranges' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x503bd137'/>
+      <elf-symbol name='snd_interval_refine' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4cda566'/>
+      <elf-symbol name='snd_jack_new' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x37e92cf9'/>
+      <elf-symbol name='snd_jack_report' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcdec37b3'/>
+      <elf-symbol name='snd_jack_set_key' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19d2d910'/>
+      <elf-symbol name='snd_pci_quirk_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9f697f6'/>
+      <elf-symbol name='snd_pci_quirk_lookup_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73076315'/>
+      <elf-symbol name='snd_pcm_add_chmap_ctls' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1fe8c9a9'/>
+      <elf-symbol name='snd_pcm_create_iec958_consumer_default' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x649892e8'/>
+      <elf-symbol name='snd_pcm_fill_iec958_consumer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f5e01bd'/>
+      <elf-symbol name='snd_pcm_fill_iec958_consumer_hw_params' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c407196'/>
+      <elf-symbol name='snd_pcm_format_big_endian' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f816e9b'/>
+      <elf-symbol name='snd_pcm_format_linear' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ef8fcd8'/>
+      <elf-symbol name='snd_pcm_format_physical_width' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x68a24153'/>
+      <elf-symbol name='snd_pcm_format_set_silence' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e7f4920'/>
+      <elf-symbol name='snd_pcm_format_unsigned' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa61aa028'/>
+      <elf-symbol name='snd_pcm_format_width' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe56a9336'/>
+      <elf-symbol name='snd_pcm_hw_constraint_eld' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x389a5705'/>
+      <elf-symbol name='snd_pcm_hw_constraint_integer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbc4969b7'/>
+      <elf-symbol name='snd_pcm_hw_constraint_list' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa269ba0c'/>
+      <elf-symbol name='snd_pcm_hw_constraint_mask64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x52f70806'/>
+      <elf-symbol name='snd_pcm_hw_constraint_minmax' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc41e8694'/>
+      <elf-symbol name='snd_pcm_hw_constraint_ratnums' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x829e1bf5'/>
+      <elf-symbol name='snd_pcm_hw_constraint_step' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x135c3388'/>
+      <elf-symbol name='snd_pcm_hw_limit_rates' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69255f54'/>
+      <elf-symbol name='snd_pcm_hw_rule_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa87ea829'/>
+      <elf-symbol name='snd_pcm_kernel_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8c93284'/>
+      <elf-symbol name='snd_pcm_lib_default_mmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73d34e99'/>
+      <elf-symbol name='snd_pcm_lib_free_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x81aef4fe'/>
+      <elf-symbol name='snd_pcm_lib_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x377ae577'/>
+      <elf-symbol name='snd_pcm_lib_malloc_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80925ced'/>
+      <elf-symbol name='snd_pcm_lib_preallocate_free_for_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54c10b19'/>
+      <elf-symbol name='snd_pcm_lib_preallocate_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2a15098'/>
+      <elf-symbol name='snd_pcm_lib_preallocate_pages_for_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3523f809'/>
+      <elf-symbol name='snd_pcm_new' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4114b8bc'/>
+      <elf-symbol name='snd_pcm_period_elapsed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67879d39'/>
+      <elf-symbol name='snd_pcm_rate_bit_to_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff6104d0'/>
+      <elf-symbol name='snd_pcm_rate_range_to_bits' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d864069'/>
+      <elf-symbol name='snd_pcm_rate_to_rate_bit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9638db4'/>
+      <elf-symbol name='snd_pcm_set_managed_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda68d8dd'/>
+      <elf-symbol name='snd_pcm_set_managed_buffer_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3f52f9'/>
+      <elf-symbol name='snd_pcm_set_ops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdb321502'/>
+      <elf-symbol name='snd_pcm_set_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8f384fb0'/>
+      <elf-symbol name='snd_pcm_stop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d88a64e'/>
+      <elf-symbol name='snd_pcm_stop_xrun' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6b5c4df'/>
+      <elf-symbol name='snd_pcm_stream_unlock_irqrestore' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1c3acec'/>
+      <elf-symbol name='snd_pcm_suspend_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c0f4460'/>
+      <elf-symbol name='snd_sgbuf_get_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbbd436d5'/>
+      <elf-symbol name='snd_sgbuf_get_chunk_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9945f183'/>
+      <elf-symbol name='snd_soc_add_card_controls' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9cf958f7'/>
+      <elf-symbol name='snd_soc_add_component' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef492da3'/>
+      <elf-symbol name='snd_soc_add_component_controls' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40703753'/>
+      <elf-symbol name='snd_soc_add_dai_controls' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd171c6c6'/>
+      <elf-symbol name='snd_soc_bytes_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdc1ab5e'/>
+      <elf-symbol name='snd_soc_bytes_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd766825d'/>
+      <elf-symbol name='snd_soc_bytes_info_ext' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x13ac9481'/>
+      <elf-symbol name='snd_soc_bytes_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xacb6a5b1'/>
+      <elf-symbol name='snd_soc_bytes_tlv_callback' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57cb24c0'/>
+      <elf-symbol name='snd_soc_card_get_kcontrol' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe52dd2e'/>
+      <elf-symbol name='snd_soc_card_jack_new' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5fd908c1'/>
+      <elf-symbol name='snd_soc_component_async_complete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe859b592'/>
+      <elf-symbol name='snd_soc_component_disable_pin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8cdf25e'/>
+      <elf-symbol name='snd_soc_component_enable_pin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7b06919'/>
+      <elf-symbol name='snd_soc_component_exit_regmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8b4913a3'/>
+      <elf-symbol name='snd_soc_component_force_enable_pin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa961e90b'/>
+      <elf-symbol name='snd_soc_component_get_pin_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xac1ba80c'/>
+      <elf-symbol name='snd_soc_component_init_regmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x404c5fd5'/>
+      <elf-symbol name='snd_soc_component_initialize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8d7ea1d'/>
+      <elf-symbol name='snd_soc_component_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5d17825d'/>
+      <elf-symbol name='snd_soc_component_read_field' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe3dbb513'/>
+      <elf-symbol name='snd_soc_component_set_jack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe58d0740'/>
+      <elf-symbol name='snd_soc_component_set_pll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47c43139'/>
+      <elf-symbol name='snd_soc_component_set_sysclk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x94ea7b1b'/>
+      <elf-symbol name='snd_soc_component_update_bits' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0ee2a93'/>
+      <elf-symbol name='snd_soc_component_update_bits_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf145889d'/>
+      <elf-symbol name='snd_soc_component_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51cdd827'/>
+      <elf-symbol name='snd_soc_component_write_field' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa943f76d'/>
+      <elf-symbol name='snd_soc_dai_active' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2a1321ac'/>
+      <elf-symbol name='snd_soc_dai_get_channel_map' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdff80000'/>
+      <elf-symbol name='snd_soc_dai_link_set_capabilities' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e4ad3db'/>
+      <elf-symbol name='snd_soc_dai_set_bclk_ratio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfae6d22e'/>
+      <elf-symbol name='snd_soc_dai_set_channel_map' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c51fe19'/>
+      <elf-symbol name='snd_soc_dai_set_clkdiv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x412e191e'/>
+      <elf-symbol name='snd_soc_dai_set_fmt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe8934513'/>
+      <elf-symbol name='snd_soc_dai_set_pll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2fc2995d'/>
+      <elf-symbol name='snd_soc_dai_set_sysclk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd1abd769'/>
+      <elf-symbol name='snd_soc_dai_set_tdm_slot' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x50977e09'/>
+      <elf-symbol name='snd_soc_dai_set_tristate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6038f73'/>
+      <elf-symbol name='snd_soc_daifmt_clock_provider_from_bitmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9622dd1'/>
+      <elf-symbol name='snd_soc_daifmt_parse_clock_provider_raw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d23bcd2'/>
+      <elf-symbol name='snd_soc_daifmt_parse_format' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfc714c6f'/>
+      <elf-symbol name='snd_soc_dapm_add_routes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x78b5a5b0'/>
+      <elf-symbol name='snd_soc_dapm_disable_pin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x602a821'/>
+      <elf-symbol name='snd_soc_dapm_disable_pin_unlocked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54c9292b'/>
+      <elf-symbol name='snd_soc_dapm_enable_pin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x13f9f181'/>
+      <elf-symbol name='snd_soc_dapm_force_bias_level' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6fe2c862'/>
+      <elf-symbol name='snd_soc_dapm_force_enable_pin' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf116436b'/>
+      <elf-symbol name='snd_soc_dapm_force_enable_pin_unlocked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ac908f9'/>
+      <elf-symbol name='snd_soc_dapm_get_enum_double' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbfd95ceb'/>
+      <elf-symbol name='snd_soc_dapm_get_pin_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c71882a'/>
+      <elf-symbol name='snd_soc_dapm_get_pin_switch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2cc0b5af'/>
+      <elf-symbol name='snd_soc_dapm_get_volsw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2b5276'/>
+      <elf-symbol name='snd_soc_dapm_ignore_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea7e66b7'/>
+      <elf-symbol name='snd_soc_dapm_info_pin_switch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd1461352'/>
+      <elf-symbol name='snd_soc_dapm_kcontrol_dapm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeaac040e'/>
+      <elf-symbol name='snd_soc_dapm_kcontrol_widget' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa2c1fa'/>
+      <elf-symbol name='snd_soc_dapm_mixer_update_power' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef5e7921'/>
+      <elf-symbol name='snd_soc_dapm_mux_update_power' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa95c97c9'/>
+      <elf-symbol name='snd_soc_dapm_new_control' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd50119a6'/>
+      <elf-symbol name='snd_soc_dapm_new_controls' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe58d9664'/>
+      <elf-symbol name='snd_soc_dapm_new_widgets' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2217d2e3'/>
+      <elf-symbol name='snd_soc_dapm_put_enum_double' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2730222a'/>
+      <elf-symbol name='snd_soc_dapm_put_pin_switch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x179ec8ed'/>
+      <elf-symbol name='snd_soc_dapm_put_volsw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6f3d2d87'/>
+      <elf-symbol name='snd_soc_dapm_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd16289f'/>
+      <elf-symbol name='snd_soc_dapm_sync_unlocked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x86bf6b5b'/>
+      <elf-symbol name='snd_soc_dapm_weak_routes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaae7ef81'/>
+      <elf-symbol name='snd_soc_dpcm_get_substream' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd841efb8'/>
+      <elf-symbol name='snd_soc_find_dai' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0ec65a7'/>
+      <elf-symbol name='snd_soc_find_dai_with_mutex' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c2e7a78'/>
+      <elf-symbol name='snd_soc_get_dai_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe2c0e10f'/>
+      <elf-symbol name='snd_soc_get_enum_double' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6012eda7'/>
+      <elf-symbol name='snd_soc_get_pcm_runtime' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49a1b376'/>
+      <elf-symbol name='snd_soc_get_volsw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d1f3b35'/>
+      <elf-symbol name='snd_soc_get_volsw_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd9e9266'/>
+      <elf-symbol name='snd_soc_get_volsw_sx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd1bd516'/>
+      <elf-symbol name='snd_soc_get_xr_sx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e47cdf4'/>
+      <elf-symbol name='snd_soc_info_enum_double' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10469bef'/>
+      <elf-symbol name='snd_soc_info_multi_ext' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcaf7db04'/>
+      <elf-symbol name='snd_soc_info_volsw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9fdf64b'/>
+      <elf-symbol name='snd_soc_info_volsw_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e4ef56a'/>
+      <elf-symbol name='snd_soc_info_volsw_sx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ff98ec0'/>
+      <elf-symbol name='snd_soc_info_xr_sx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x87ffcc2c'/>
+      <elf-symbol name='snd_soc_jack_add_gpios' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36db9502'/>
+      <elf-symbol name='snd_soc_jack_free_gpios' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6f9d655a'/>
+      <elf-symbol name='snd_soc_jack_notifier_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20c1ad2c'/>
+      <elf-symbol name='snd_soc_jack_report' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc63c3646'/>
+      <elf-symbol name='snd_soc_limit_volume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfcda79cf'/>
+      <elf-symbol name='snd_soc_lookup_component' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa673e375'/>
+      <elf-symbol name='snd_soc_lookup_component_nolocked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x374d2178'/>
+      <elf-symbol name='snd_soc_new_compress' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6198c7f4'/>
+      <elf-symbol name='snd_soc_of_get_dai_link_codecs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8c486fe'/>
+      <elf-symbol name='snd_soc_of_get_dai_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0495209'/>
+      <elf-symbol name='snd_soc_of_get_slot_mask' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a98b7a3'/>
+      <elf-symbol name='snd_soc_of_parse_audio_routing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96494d86'/>
+      <elf-symbol name='snd_soc_of_parse_audio_simple_widgets' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe258c59c'/>
+      <elf-symbol name='snd_soc_of_parse_aux_devs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd855889'/>
+      <elf-symbol name='snd_soc_of_parse_card_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6444d6c3'/>
+      <elf-symbol name='snd_soc_of_parse_node_prefix' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x253f98bc'/>
+      <elf-symbol name='snd_soc_of_parse_tdm_slot' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c5a16ba'/>
+      <elf-symbol name='snd_soc_of_put_dai_link_codecs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6779ee5a'/>
+      <elf-symbol name='snd_soc_params_to_bclk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb711ae7'/>
+      <elf-symbol name='snd_soc_params_to_frame_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc8269f94'/>
+      <elf-symbol name='snd_soc_poweroff' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x848ea894'/>
+      <elf-symbol name='snd_soc_put_enum_double' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef2f5276'/>
+      <elf-symbol name='snd_soc_put_volsw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb6f8371'/>
+      <elf-symbol name='snd_soc_put_volsw_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72a32db7'/>
+      <elf-symbol name='snd_soc_put_volsw_sx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf691a5f0'/>
+      <elf-symbol name='snd_soc_put_xr_sx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x283775b0'/>
+      <elf-symbol name='snd_soc_register_card' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb47ef625'/>
+      <elf-symbol name='snd_soc_register_component' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61bd6f6b'/>
+      <elf-symbol name='snd_soc_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x53d84054'/>
+      <elf-symbol name='snd_soc_rtdcom_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65296e37'/>
+      <elf-symbol name='snd_soc_runtime_calc_hw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xebcf3db5'/>
+      <elf-symbol name='snd_soc_runtime_set_dai_fmt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x718ce808'/>
+      <elf-symbol name='snd_soc_set_runtime_hwparams' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15fc76f2'/>
+      <elf-symbol name='snd_soc_tplg_component_load' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x681b9323'/>
+      <elf-symbol name='snd_soc_tplg_component_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7e8d6672'/>
+      <elf-symbol name='snd_soc_tplg_widget_bind_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c390ce0'/>
+      <elf-symbol name='snd_soc_unregister_card' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd6bd42f'/>
+      <elf-symbol name='snd_soc_unregister_component' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f38e916'/>
+      <elf-symbol name='snd_timer_close' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8cb9d2d9'/>
+      <elf-symbol name='snd_timer_instance_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66b111'/>
+      <elf-symbol name='snd_timer_instance_new' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x13eceae'/>
+      <elf-symbol name='snd_timer_interrupt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8bf111d5'/>
+      <elf-symbol name='snd_timer_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfffafa9f'/>
+      <elf-symbol name='snd_timer_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa61bff6c'/>
+      <elf-symbol name='snd_timer_stop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a4b929f'/>
+      <elf-symbol name='snd_usb_autoresume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c2edab7'/>
+      <elf-symbol name='snd_usb_autosuspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9fc73a86'/>
+      <elf-symbol name='snd_usb_endpoint_close' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x445aac28'/>
+      <elf-symbol name='snd_usb_endpoint_configure' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a0342b4'/>
+      <elf-symbol name='snd_usb_endpoint_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe350577b'/>
+      <elf-symbol name='snprintf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x656e4a6e'/>
+      <elf-symbol name='soc_device_match' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x87f305d1'/>
+      <elf-symbol name='soc_device_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x87205e6a'/>
+      <elf-symbol name='soc_device_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19c20269'/>
+      <elf-symbol name='sock_alloc_send_pskb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdee15ed8'/>
+      <elf-symbol name='sock_alloc_send_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8a25692'/>
+      <elf-symbol name='sock_create_kern' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x883648f5'/>
+      <elf-symbol name='sock_diag_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5c40777'/>
+      <elf-symbol name='sock_edemux' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f77e71b'/>
+      <elf-symbol name='sock_efree' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b3a59e6'/>
+      <elf-symbol name='sock_gettstamp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72f44f98'/>
+      <elf-symbol name='sock_i_uid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x835202fb'/>
+      <elf-symbol name='sock_init_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1edbf285'/>
+      <elf-symbol name='sock_no_accept' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd34e98b5'/>
+      <elf-symbol name='sock_no_bind' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa53dc7b6'/>
+      <elf-symbol name='sock_no_connect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b3f1b3d'/>
+      <elf-symbol name='sock_no_getname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4a9d3e94'/>
+      <elf-symbol name='sock_no_listen' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x531395cf'/>
+      <elf-symbol name='sock_no_mmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe9c3b020'/>
+      <elf-symbol name='sock_no_recvmsg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x29ceaac1'/>
+      <elf-symbol name='sock_no_sendmsg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40419da4'/>
+      <elf-symbol name='sock_no_sendpage' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6027f5cc'/>
+      <elf-symbol name='sock_no_shutdown' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ae197f1'/>
+      <elf-symbol name='sock_no_socketpair' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf1e2d5f9'/>
+      <elf-symbol name='sock_queue_rcv_skb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0ac0c25'/>
+      <elf-symbol name='sock_recvmsg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6710d3e7'/>
+      <elf-symbol name='sock_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x14e5d945'/>
+      <elf-symbol name='sock_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5228b05b'/>
+      <elf-symbol name='sock_setsockopt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x44bf2051'/>
+      <elf-symbol name='sock_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62737e1d'/>
+      <elf-symbol name='sock_wfree' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8ee213b9'/>
+      <elf-symbol name='sock_wmalloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88281244'/>
+      <elf-symbol name='sockfd_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x904c532c'/>
+      <elf-symbol name='sort' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb7c0f443'/>
+      <elf-symbol name='spi_alloc_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd58da999'/>
+      <elf-symbol name='spi_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf583907'/>
+      <elf-symbol name='spi_bus_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5d4efdfc'/>
+      <elf-symbol name='spi_bus_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda683fb0'/>
+      <elf-symbol name='spi_busnum_to_master' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf1063bea'/>
+      <elf-symbol name='spi_controller_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69ea0b83'/>
+      <elf-symbol name='spi_controller_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd34f31b'/>
+      <elf-symbol name='spi_delay_exec' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a6f208c'/>
+      <elf-symbol name='spi_delay_to_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc0e768b2'/>
+      <elf-symbol name='spi_finalize_current_message' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f9c816d'/>
+      <elf-symbol name='spi_finalize_current_transfer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73cabf94'/>
+      <elf-symbol name='spi_get_device_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6d82c259'/>
+      <elf-symbol name='spi_get_next_queued_message' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x29e94935'/>
+      <elf-symbol name='spi_mem_adjust_op_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8cca8cc4'/>
+      <elf-symbol name='spi_mem_default_supports_op' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a3b2d82'/>
+      <elf-symbol name='spi_mem_dirmap_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf430f245'/>
+      <elf-symbol name='spi_mem_dirmap_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90b4f79b'/>
+      <elf-symbol name='spi_mem_driver_register_with_owner' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c8314ad'/>
+      <elf-symbol name='spi_mem_driver_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a6ce43c'/>
+      <elf-symbol name='spi_mem_dtr_supports_op' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xec1573d0'/>
+      <elf-symbol name='spi_mem_exec_op' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xacdf7439'/>
+      <elf-symbol name='spi_mem_get_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x76933366'/>
+      <elf-symbol name='spi_mem_supports_op' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4dc005bb'/>
+      <elf-symbol name='spi_new_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x29e7493b'/>
+      <elf-symbol name='spi_register_controller' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x376ccbe'/>
+      <elf-symbol name='spi_setup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa7b14d70'/>
+      <elf-symbol name='spi_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47c4cbb4'/>
+      <elf-symbol name='spi_sync_locked' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb233f206'/>
+      <elf-symbol name='spi_unregister_controller' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbbded0c9'/>
+      <elf-symbol name='spi_unregister_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa4e8fc5'/>
+      <elf-symbol name='spi_write_then_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d6b4b8a'/>
+      <elf-symbol name='split_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1184a48'/>
+      <elf-symbol name='spmi_controller_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf7f3c3bd'/>
+      <elf-symbol name='spmi_controller_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x42a12f4c'/>
+      <elf-symbol name='spmi_controller_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xafc99d3f'/>
+      <elf-symbol name='spmi_ext_register_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e2bdf0b'/>
+      <elf-symbol name='spmi_ext_register_readl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff6959f9'/>
+      <elf-symbol name='spmi_ext_register_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbef06ef0'/>
+      <elf-symbol name='spmi_ext_register_writel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c10d497'/>
+      <elf-symbol name='spmi_register_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2218129'/>
+      <elf-symbol name='spmi_register_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x18634676'/>
+      <elf-symbol name='spmi_register_zero_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x857e68f9'/>
+      <elf-symbol name='sprint_symbol' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x661601de'/>
+      <elf-symbol name='sprint_symbol_no_offset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe769232e'/>
+      <elf-symbol name='sprintf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c3ff9fd'/>
+      <elf-symbol name='srcu_barrier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5cc4455a'/>
+      <elf-symbol name='srcu_batches_completed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf7b882ed'/>
+      <elf-symbol name='srcu_init_notifier_head' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa02d239a'/>
+      <elf-symbol name='srcu_notifier_call_chain' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce9884d7'/>
+      <elf-symbol name='srcu_notifier_chain_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c1feec0'/>
+      <elf-symbol name='srcu_notifier_chain_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x75dd14d2'/>
+      <elf-symbol name='srcu_torture_stats_print' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa73bbcc6'/>
+      <elf-symbol name='srcutorture_get_gp_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3fb593c0'/>
+      <elf-symbol name='sscanf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbcab6ee6'/>
+      <elf-symbol name='stack_depot_fetch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51a0bc1'/>
+      <elf-symbol name='stack_depot_save' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x913ebd32'/>
+      <elf-symbol name='stack_trace_print' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa45c7b90'/>
+      <elf-symbol name='stack_trace_save' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6bd1aa56'/>
+      <elf-symbol name='stack_trace_save_regs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2731e15c'/>
+      <elf-symbol name='stack_trace_save_tsk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0b798da'/>
+      <elf-symbol name='start_backtrace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb01f759d'/>
+      <elf-symbol name='start_poll_synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91955a9f'/>
+      <elf-symbol name='start_poll_synchronize_srcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbdc9818d'/>
+      <elf-symbol name='start_tty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xac3f0146'/>
+      <elf-symbol name='static_key_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb912560d'/>
+      <elf-symbol name='static_key_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b2b69f7'/>
+      <elf-symbol name='static_key_slow_dec' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2f4880df'/>
+      <elf-symbol name='static_key_slow_inc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e92f7c4'/>
+      <elf-symbol name='stop_machine' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdfc04014'/>
+      <elf-symbol name='stop_one_cpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9b9f56e'/>
+      <elf-symbol name='stop_one_cpu_nowait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60d1f7de'/>
+      <elf-symbol name='stop_tty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1140190e'/>
+      <elf-symbol name='store_sampling_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7b69a26a'/>
+      <elf-symbol name='stpcpy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf4db35bc'/>
+      <elf-symbol name='strcasecmp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaafdc258'/>
+      <elf-symbol name='strcat' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61651be'/>
+      <elf-symbol name='strchr' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes' crc='0x349cba85'/>
+      <elf-symbol name='strchrnul' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xceab0311'/>
+      <elf-symbol name='strcmp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe2d5255a'/>
+      <elf-symbol name='strcpy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe914e41e'/>
+      <elf-symbol name='strcspn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ac5d3cb'/>
+      <elf-symbol name='stream_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f554891'/>
+      <elf-symbol name='strim' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x77bc13a0'/>
+      <elf-symbol name='string_get_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x48a91171'/>
+      <elf-symbol name='strlcat' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9c0b663'/>
+      <elf-symbol name='strlcpy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5792f848'/>
+      <elf-symbol name='strlen' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes' crc='0x98cf60b3'/>
+      <elf-symbol name='strncasecmp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96b29254'/>
+      <elf-symbol name='strncat' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e2b40d2'/>
+      <elf-symbol name='strnchr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4841bdee'/>
+      <elf-symbol name='strncmp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5a921311'/>
+      <elf-symbol name='strncpy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9166fada'/>
+      <elf-symbol name='strncpy_from_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24428be5'/>
+      <elf-symbol name='strndup_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41482d8b'/>
+      <elf-symbol name='strnlen' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes' crc='0xa916b694'/>
+      <elf-symbol name='strnstr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc310b981'/>
+      <elf-symbol name='strpbrk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a1dfd65'/>
+      <elf-symbol name='strrchr' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes' crc='0x9f984513'/>
+      <elf-symbol name='strreplace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7410aba2'/>
+      <elf-symbol name='strscpy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdd64e639'/>
+      <elf-symbol name='strscpy_pad' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfbb8a761'/>
+      <elf-symbol name='strsep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85df9b6c'/>
+      <elf-symbol name='strspn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc29bf967'/>
+      <elf-symbol name='strstr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1e6d26a8'/>
+      <elf-symbol name='submit_bh' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60f863bb'/>
+      <elf-symbol name='submit_bio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6418d54f'/>
+      <elf-symbol name='submit_bio_noacct' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xedd418aa'/>
+      <elf-symbol name='submit_bio_wait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5fee7772'/>
+      <elf-symbol name='subsys_system_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7e72ee66'/>
+      <elf-symbol name='suspend_set_ops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ab0c7e0'/>
+      <elf-symbol name='symbol_put_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66d87d38'/>
+      <elf-symbol name='sync_blockdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5767ec5d'/>
+      <elf-symbol name='sync_dirty_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf138a34'/>
+      <elf-symbol name='sync_file_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x45f84c42'/>
+      <elf-symbol name='sync_file_get_fence' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4dca08ee'/>
+      <elf-symbol name='sync_filesystem' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d500d88'/>
+      <elf-symbol name='sync_inode_metadata' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d6eea0d'/>
+      <elf-symbol name='sync_inodes_sb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce2ca77f'/>
+      <elf-symbol name='sync_mapping_buffers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x964ec211'/>
+      <elf-symbol name='synchronize_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe523ad75'/>
+      <elf-symbol name='synchronize_net' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x609f1c7e'/>
+      <elf-symbol name='synchronize_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6091797f'/>
+      <elf-symbol name='synchronize_rcu_expedited' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x86f6b99d'/>
+      <elf-symbol name='synchronize_rcu_tasks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1bb9f9'/>
+      <elf-symbol name='synchronize_rcu_tasks_trace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6246a629'/>
+      <elf-symbol name='synchronize_srcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdc642c4c'/>
+      <elf-symbol name='synchronize_srcu_expedited' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2cab6b6d'/>
+      <elf-symbol name='synth_event_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbcdba74c'/>
+      <elf-symbol name='synth_event_delete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x64e27c4f'/>
+      <elf-symbol name='syscon_node_to_regmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc685e4a0'/>
+      <elf-symbol name='syscon_regmap_lookup_by_compatible' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ceb1d0b'/>
+      <elf-symbol name='syscon_regmap_lookup_by_phandle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6f6fe0d9'/>
+      <elf-symbol name='syscon_regmap_lookup_by_phandle_args' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8b4f7ba2'/>
+      <elf-symbol name='syscon_regmap_lookup_by_phandle_optional' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7bd0509'/>
+      <elf-symbol name='sysfb_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x923e42aa'/>
+      <elf-symbol name='sysfs_add_file_to_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff5bc9e3'/>
+      <elf-symbol name='sysfs_add_link_to_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7163190a'/>
+      <elf-symbol name='sysfs_create_bin_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88940688'/>
+      <elf-symbol name='sysfs_create_file_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8f73ef5'/>
+      <elf-symbol name='sysfs_create_files' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xefcb91eb'/>
+      <elf-symbol name='sysfs_create_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1da5bdd1'/>
+      <elf-symbol name='sysfs_create_groups' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3fe314a'/>
+      <elf-symbol name='sysfs_create_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x38677ca'/>
+      <elf-symbol name='sysfs_create_mount_point' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40179c7a'/>
+      <elf-symbol name='sysfs_emit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe783e261'/>
+      <elf-symbol name='sysfs_emit_at' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99f2d00a'/>
+      <elf-symbol name='sysfs_merge_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfdec6bd4'/>
+      <elf-symbol name='sysfs_notify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9304c8a2'/>
+      <elf-symbol name='sysfs_remove_bin_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce2501e7'/>
+      <elf-symbol name='sysfs_remove_file_from_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba009c73'/>
+      <elf-symbol name='sysfs_remove_file_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd1fd9abb'/>
+      <elf-symbol name='sysfs_remove_files' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32805c25'/>
+      <elf-symbol name='sysfs_remove_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c05688'/>
+      <elf-symbol name='sysfs_remove_groups' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x30c19b90'/>
+      <elf-symbol name='sysfs_remove_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b93a483'/>
+      <elf-symbol name='sysfs_remove_link_from_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4402ef19'/>
+      <elf-symbol name='sysfs_remove_mount_point' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28d9d5b9'/>
+      <elf-symbol name='sysfs_streq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x222e7ce2'/>
+      <elf-symbol name='sysfs_unmerge_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc37cfd7f'/>
+      <elf-symbol name='sysfs_update_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x841f2264'/>
+      <elf-symbol name='sysrq_mask' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4a17ed66'/>
+      <elf-symbol name='system_32bit_el0_cpumask' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d43b425'/>
+      <elf-symbol name='tag_pages_for_writeback' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x46184a8d'/>
+      <elf-symbol name='task_active_pid_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e66fc87'/>
+      <elf-symbol name='task_may_not_preempt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x665dc9a6'/>
+      <elf-symbol name='task_rq_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae0453c3'/>
+      <elf-symbol name='task_sched_runtime' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc8814659'/>
+      <elf-symbol name='tasklet_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2364c85a'/>
+      <elf-symbol name='tasklet_kill' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea3c74e'/>
+      <elf-symbol name='tasklet_setup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa07d1b3c'/>
+      <elf-symbol name='tasklet_unlock_wait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x350f6ce5'/>
+      <elf-symbol name='tcf_action_exec' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c1c1a98'/>
+      <elf-symbol name='tcf_exts_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56dfe9f6'/>
+      <elf-symbol name='tcf_exts_dump' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x98392ab9'/>
+      <elf-symbol name='tcf_exts_dump_stats' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x576f4afb'/>
+      <elf-symbol name='tcf_exts_validate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f15665e'/>
+      <elf-symbol name='tcf_queue_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x29063663'/>
+      <elf-symbol name='tcp_register_congestion_control' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c7e3b4f'/>
+      <elf-symbol name='tcp_reno_cong_avoid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c0b7d1e'/>
+      <elf-symbol name='tcp_reno_ssthresh' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x137dcc87'/>
+      <elf-symbol name='tcp_reno_undo_cwnd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa2db83c3'/>
+      <elf-symbol name='tcp_slow_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x983fbc0e'/>
+      <elf-symbol name='tcp_unregister_congestion_control' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf99b2601'/>
+      <elf-symbol name='tcpci_get_tcpm_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbe111953'/>
+      <elf-symbol name='tcpci_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6f497a3c'/>
+      <elf-symbol name='tcpci_register_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x29dbdf7f'/>
+      <elf-symbol name='tcpci_unregister_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc529e32e'/>
+      <elf-symbol name='tcpm_cc_change' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc37b9769'/>
+      <elf-symbol name='tcpm_is_debouncing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6757a42'/>
+      <elf-symbol name='tcpm_pd_hard_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e0bd753'/>
+      <elf-symbol name='tcpm_pd_receive' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb655342c'/>
+      <elf-symbol name='tcpm_pd_transmit_complete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b84657b'/>
+      <elf-symbol name='tcpm_register_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb28dc3bd'/>
+      <elf-symbol name='tcpm_sink_frs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10ec6d2d'/>
+      <elf-symbol name='tcpm_sourcing_vbus' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb779665'/>
+      <elf-symbol name='tcpm_tcpc_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea220941'/>
+      <elf-symbol name='tcpm_unregister_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x76eeda4b'/>
+      <elf-symbol name='tcpm_update_sink_capabilities' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x622a422a'/>
+      <elf-symbol name='tcpm_vbus_change' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xceb50012'/>
+      <elf-symbol name='thaw_bdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7e065cb5'/>
+      <elf-symbol name='thaw_super' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdc6d7d5c'/>
+      <elf-symbol name='thermal_cdev_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba4618ec'/>
+      <elf-symbol name='thermal_cooling_device_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66e8a7'/>
+      <elf-symbol name='thermal_cooling_device_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbe4a6e97'/>
+      <elf-symbol name='thermal_of_cooling_device_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf94cd42'/>
+      <elf-symbol name='thermal_zone_bind_cooling_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x448a1b6a'/>
+      <elf-symbol name='thermal_zone_device_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa866f291'/>
+      <elf-symbol name='thermal_zone_device_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26120924'/>
+      <elf-symbol name='thermal_zone_device_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x359903bc'/>
+      <elf-symbol name='thermal_zone_device_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e8186ce'/>
+      <elf-symbol name='thermal_zone_device_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x45c436a9'/>
+      <elf-symbol name='thermal_zone_get_temp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51bc71de'/>
+      <elf-symbol name='thermal_zone_get_zone_by_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdfa82fb3'/>
+      <elf-symbol name='thermal_zone_of_sensor_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8b27af9'/>
+      <elf-symbol name='thermal_zone_of_sensor_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99f56a3b'/>
+      <elf-symbol name='thermal_zone_unbind_cooling_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xedf37e50'/>
+      <elf-symbol name='thread_group_cputime_adjusted' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x880f871c'/>
+      <elf-symbol name='tick_nohz_get_idle_calls_cpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2943498b'/>
+      <elf-symbol name='tick_nohz_get_sleep_length' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1939cb0f'/>
+      <elf-symbol name='time64_to_tm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfff5afc'/>
+      <elf-symbol name='timecounter_cyc2time' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbc3f2cb0'/>
+      <elf-symbol name='timecounter_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x862258db'/>
+      <elf-symbol name='timecounter_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6f9e763b'/>
+      <elf-symbol name='timer_of_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3381ce53'/>
+      <elf-symbol name='timer_reduce' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x75c21753'/>
+      <elf-symbol name='timespec64_to_jiffies' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf93b9d8'/>
+      <elf-symbol name='timestamp_truncate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd45ea68a'/>
+      <elf-symbol name='topology_clear_scale_freq_source' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a20a41'/>
+      <elf-symbol name='topology_set_thermal_pressure' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea0dce63'/>
+      <elf-symbol name='touch_atime' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf4919c75'/>
+      <elf-symbol name='touch_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed05dccb'/>
+      <elf-symbol name='touch_softlockup_watchdog' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6fcb87a1'/>
+      <elf-symbol name='touchscreen_parse_properties' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a7184d5'/>
+      <elf-symbol name='touchscreen_report_pos' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf625afa4'/>
+      <elf-symbol name='trace_array_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x617b5b09'/>
+      <elf-symbol name='trace_array_get_by_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b278362'/>
+      <elf-symbol name='trace_array_init_printk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x281ca801'/>
+      <elf-symbol name='trace_array_printk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4edd6751'/>
+      <elf-symbol name='trace_array_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25f64216'/>
+      <elf-symbol name='trace_clock_local' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33efc8c8'/>
+      <elf-symbol name='trace_define_field' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x699c9e4e'/>
+      <elf-symbol name='trace_event_buffer_commit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa19d380'/>
+      <elf-symbol name='trace_event_buffer_reserve' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb464157f'/>
+      <elf-symbol name='trace_event_ignore_this_pid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a2762f5'/>
+      <elf-symbol name='trace_event_printf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9df162b8'/>
+      <elf-symbol name='trace_event_raw_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0d03b9a'/>
+      <elf-symbol name='trace_event_reg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa35d7098'/>
+      <elf-symbol name='trace_get_event_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6db1db'/>
+      <elf-symbol name='trace_handle_return' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7381287f'/>
+      <elf-symbol name='trace_output_call' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ce55d3e'/>
+      <elf-symbol name='trace_print_array_seq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3bc72ad'/>
+      <elf-symbol name='trace_print_bitmask_seq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a58dd2d'/>
+      <elf-symbol name='trace_print_flags_seq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99078b39'/>
+      <elf-symbol name='trace_print_hex_dump_seq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x81ac5e33'/>
+      <elf-symbol name='trace_print_hex_seq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe02ba436'/>
+      <elf-symbol name='trace_print_symbols_seq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc5c2df4'/>
+      <elf-symbol name='trace_raw_output_prep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa408db3a'/>
+      <elf-symbol name='trace_seq_printf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x525d0aa3'/>
+      <elf-symbol name='trace_seq_putc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b5f4377'/>
+      <elf-symbol name='trace_set_clr_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd217e9e6'/>
+      <elf-symbol name='tracepoint_probe_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x95e102ab'/>
+      <elf-symbol name='tracepoint_probe_register_prio' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b70c6ff'/>
+      <elf-symbol name='tracepoint_probe_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdbeeece6'/>
+      <elf-symbol name='tracing_off' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7944e0fc'/>
+      <elf-symbol name='truncate_inode_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2201a0a'/>
+      <elf-symbol name='truncate_inode_pages_final' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf5387c48'/>
+      <elf-symbol name='truncate_inode_pages_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b1e67e8'/>
+      <elf-symbol name='truncate_pagecache' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9054146d'/>
+      <elf-symbol name='truncate_pagecache_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbcba0010'/>
+      <elf-symbol name='truncate_setsize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9aba22f9'/>
+      <elf-symbol name='try_module_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55b19677'/>
+      <elf-symbol name='try_to_del_timer_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfaf9e645'/>
+      <elf-symbol name='try_to_free_mem_cgroup_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67f3edc8'/>
+      <elf-symbol name='try_to_release_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x30bb8b62'/>
+      <elf-symbol name='try_to_writeback_inodes_sb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc1b82ff7'/>
+      <elf-symbol name='try_wait_for_completion' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x21ef374c'/>
+      <elf-symbol name='tso_build_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x761164b9'/>
+      <elf-symbol name='tso_build_hdr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb0773f79'/>
+      <elf-symbol name='tso_count_descs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x46c388ba'/>
+      <elf-symbol name='tso_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd539dc61'/>
+      <elf-symbol name='ttm_bo_bulk_move_lru_tail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa4c2c98d'/>
+      <elf-symbol name='ttm_bo_eviction_valuable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x31d68066'/>
+      <elf-symbol name='ttm_bo_init_reserved' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xccffc741'/>
+      <elf-symbol name='ttm_bo_kmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf7290db1'/>
+      <elf-symbol name='ttm_bo_kunmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x71129fd2'/>
+      <elf-symbol name='ttm_bo_lock_delayed_workqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x309f4d6d'/>
+      <elf-symbol name='ttm_bo_mem_space' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d258218'/>
+      <elf-symbol name='ttm_bo_mmap_obj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb355f528'/>
+      <elf-symbol name='ttm_bo_move_accel_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15a69010'/>
+      <elf-symbol name='ttm_bo_move_memcpy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8f53d5c7'/>
+      <elf-symbol name='ttm_bo_move_to_lru_tail' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63ef01bb'/>
+      <elf-symbol name='ttm_bo_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xead5ff93'/>
+      <elf-symbol name='ttm_bo_unlock_delayed_workqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9d29ca43'/>
+      <elf-symbol name='ttm_bo_validate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x11f9eb3b'/>
+      <elf-symbol name='ttm_bo_vm_access' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25797d57'/>
+      <elf-symbol name='ttm_bo_vm_close' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60263e7d'/>
+      <elf-symbol name='ttm_bo_vm_dummy_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdaf47e7b'/>
+      <elf-symbol name='ttm_bo_vm_fault_reserved' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb16d8f5d'/>
+      <elf-symbol name='ttm_bo_vm_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x767fc3e3'/>
+      <elf-symbol name='ttm_bo_vm_reserve' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf4556520'/>
+      <elf-symbol name='ttm_bo_vmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x621ec123'/>
+      <elf-symbol name='ttm_bo_vunmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5487414'/>
+      <elf-symbol name='ttm_bo_wait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc0a038b7'/>
+      <elf-symbol name='ttm_device_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x599f59b'/>
+      <elf-symbol name='ttm_device_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9b882bc'/>
+      <elf-symbol name='ttm_eu_backoff_reservation' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdd675f5'/>
+      <elf-symbol name='ttm_eu_fence_buffer_objects' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19f1ba47'/>
+      <elf-symbol name='ttm_eu_reserve_buffers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc785c14c'/>
+      <elf-symbol name='ttm_pool_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae2c3c82'/>
+      <elf-symbol name='ttm_pool_debugfs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41c2cc87'/>
+      <elf-symbol name='ttm_pool_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdb5d8fa8'/>
+      <elf-symbol name='ttm_range_man_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfde8ce01'/>
+      <elf-symbol name='ttm_range_man_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c0bca81'/>
+      <elf-symbol name='ttm_resource_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c853a4b'/>
+      <elf-symbol name='ttm_resource_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x316871e7'/>
+      <elf-symbol name='ttm_resource_manager_evict_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x70aefdfd'/>
+      <elf-symbol name='ttm_resource_manager_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51060c6b'/>
+      <elf-symbol name='ttm_sg_tt_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef7903db'/>
+      <elf-symbol name='ttm_tt_destroy_common' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9bc1b8be'/>
+      <elf-symbol name='ttm_tt_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0d0bf20'/>
+      <elf-symbol name='tty_chars_in_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5bfcf7fb'/>
+      <elf-symbol name='tty_dev_name_to_number' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb11d9000'/>
+      <elf-symbol name='tty_driver_flush_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x773414b4'/>
+      <elf-symbol name='tty_driver_kref_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef0763e'/>
+      <elf-symbol name='tty_encode_baud_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54cfd2ef'/>
+      <elf-symbol name='tty_flip_buffer_push' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0104123'/>
+      <elf-symbol name='tty_get_char_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf72a65ea'/>
+      <elf-symbol name='tty_hangup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25d8f29c'/>
+      <elf-symbol name='tty_insert_flip_string_fixed_flag' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b69cd4c'/>
+      <elf-symbol name='tty_kclose' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe1b0a3b8'/>
+      <elf-symbol name='tty_kopen_exclusive' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb714e807'/>
+      <elf-symbol name='tty_kref_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9d012abe'/>
+      <elf-symbol name='tty_ldisc_deref' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb057af42'/>
+      <elf-symbol name='tty_ldisc_flush' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7ccf48b'/>
+      <elf-symbol name='tty_ldisc_ref' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea98c40a'/>
+      <elf-symbol name='tty_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x500e7c97'/>
+      <elf-symbol name='tty_mode_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd39877ee'/>
+      <elf-symbol name='tty_port_close' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdcde6714'/>
+      <elf-symbol name='tty_port_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x363d4682'/>
+      <elf-symbol name='tty_port_hangup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c742921'/>
+      <elf-symbol name='tty_port_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59066136'/>
+      <elf-symbol name='tty_port_install' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x562cd8d'/>
+      <elf-symbol name='tty_port_link_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa564851'/>
+      <elf-symbol name='tty_port_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x92be9e3a'/>
+      <elf-symbol name='tty_port_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd1d496'/>
+      <elf-symbol name='tty_port_register_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99594ce1'/>
+      <elf-symbol name='tty_port_tty_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36594a35'/>
+      <elf-symbol name='tty_port_tty_hangup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe1ae909b'/>
+      <elf-symbol name='tty_port_tty_wakeup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6e134e0'/>
+      <elf-symbol name='tty_register_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdc776357'/>
+      <elf-symbol name='tty_register_ldisc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f914690'/>
+      <elf-symbol name='tty_schedule_flip' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce7cfac2'/>
+      <elf-symbol name='tty_set_ldisc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x664b4047'/>
+      <elf-symbol name='tty_set_termios' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c46e2d2'/>
+      <elf-symbol name='tty_standard_install' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6654453'/>
+      <elf-symbol name='tty_termios_baud_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x409873e3'/>
+      <elf-symbol name='tty_termios_copy_hw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x30e74134'/>
+      <elf-symbol name='tty_termios_encode_baud_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5641485b'/>
+      <elf-symbol name='tty_termios_hw_change' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c257ac0'/>
+      <elf-symbol name='tty_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e7ed461'/>
+      <elf-symbol name='tty_unregister_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb0dbc029'/>
+      <elf-symbol name='tty_unregister_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe23c50dc'/>
+      <elf-symbol name='tty_unregister_ldisc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x122079b7'/>
+      <elf-symbol name='tty_unthrottle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x46cd912a'/>
+      <elf-symbol name='tty_vhangup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7af43cbc'/>
+      <elf-symbol name='tty_wakeup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5210bb85'/>
+      <elf-symbol name='tty_write_room' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc126b487'/>
+      <elf-symbol name='typec_altmode2port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2f37115'/>
+      <elf-symbol name='typec_altmode_attention' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x971396e2'/>
+      <elf-symbol name='typec_altmode_enter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb171e01'/>
+      <elf-symbol name='typec_altmode_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2943d45'/>
+      <elf-symbol name='typec_altmode_get_partner' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3cb55238'/>
+      <elf-symbol name='typec_altmode_notify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcdea6a2e'/>
+      <elf-symbol name='typec_altmode_unregister_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc296bbcc'/>
+      <elf-symbol name='typec_altmode_update_active' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f39a3aa'/>
+      <elf-symbol name='typec_altmode_vdm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x983ab011'/>
+      <elf-symbol name='typec_find_port_data_role' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9049491e'/>
+      <elf-symbol name='typec_find_port_power_role' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeafc1eb8'/>
+      <elf-symbol name='typec_find_power_role' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d1e301d'/>
+      <elf-symbol name='typec_get_drvdata' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf4d555ce'/>
+      <elf-symbol name='typec_get_negotiated_svdm_version' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e3f059d'/>
+      <elf-symbol name='typec_match_altmode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5ff0ba0'/>
+      <elf-symbol name='typec_mux_get_drvdata' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfea0a8ca'/>
+      <elf-symbol name='typec_mux_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5212dd4a'/>
+      <elf-symbol name='typec_mux_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c352458'/>
+      <elf-symbol name='typec_mux_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c4a1d07'/>
+      <elf-symbol name='typec_partner_register_altmode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x44ce1c09'/>
+      <elf-symbol name='typec_partner_set_identity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf43ea2f6'/>
+      <elf-symbol name='typec_port_register_altmode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa906705a'/>
+      <elf-symbol name='typec_register_partner' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc734b488'/>
+      <elf-symbol name='typec_register_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe1db87f5'/>
+      <elf-symbol name='typec_set_data_role' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x280c9244'/>
+      <elf-symbol name='typec_set_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x83918f01'/>
+      <elf-symbol name='typec_set_orientation' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd1269118'/>
+      <elf-symbol name='typec_set_pwr_opmode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb3e23c17'/>
+      <elf-symbol name='typec_set_pwr_role' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdc42cbea'/>
+      <elf-symbol name='typec_set_vconn_role' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9e79b4a'/>
+      <elf-symbol name='typec_switch_get_drvdata' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe41cb506'/>
+      <elf-symbol name='typec_switch_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x75e2c948'/>
+      <elf-symbol name='typec_switch_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc26379c'/>
+      <elf-symbol name='typec_unregister_altmode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x22631168'/>
+      <elf-symbol name='typec_unregister_partner' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfde7f61e'/>
+      <elf-symbol name='typec_unregister_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd52a658d'/>
+      <elf-symbol name='u_audio_get_mute' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4707adbf'/>
+      <elf-symbol name='u_audio_get_volume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x71442015'/>
+      <elf-symbol name='u_audio_set_mute' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf4509ac'/>
+      <elf-symbol name='u_audio_set_volume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf4bbe95b'/>
+      <elf-symbol name='u_audio_start_capture' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfbbd6395'/>
+      <elf-symbol name='u_audio_start_playback' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x82b05d70'/>
+      <elf-symbol name='u_audio_stop_capture' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c101f11'/>
+      <elf-symbol name='u_audio_stop_playback' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x68d2b735'/>
+      <elf-symbol name='uart_add_one_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x95e7d2d1'/>
+      <elf-symbol name='uart_console_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x68820676'/>
+      <elf-symbol name='uart_console_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8ee9a93a'/>
+      <elf-symbol name='uart_get_baud_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7a752065'/>
+      <elf-symbol name='uart_get_divisor' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7a48027d'/>
+      <elf-symbol name='uart_get_rs485_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeacc0ab1'/>
+      <elf-symbol name='uart_handle_cts_change' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x188a1e44'/>
+      <elf-symbol name='uart_handle_dcd_change' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x226f95d9'/>
+      <elf-symbol name='uart_insert_char' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xafe128fe'/>
+      <elf-symbol name='uart_parse_options' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f72a987'/>
+      <elf-symbol name='uart_register_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8d42e80'/>
+      <elf-symbol name='uart_remove_one_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c57eefc'/>
+      <elf-symbol name='uart_resume_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9151754d'/>
+      <elf-symbol name='uart_set_options' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5697f75f'/>
+      <elf-symbol name='uart_suspend_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf78e193f'/>
+      <elf-symbol name='uart_try_toggle_sysrq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbc5b923a'/>
+      <elf-symbol name='uart_unregister_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ff5b824'/>
+      <elf-symbol name='uart_update_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbbee11e1'/>
+      <elf-symbol name='uart_write_wakeup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc65f49af'/>
+      <elf-symbol name='uclamp_eff_value' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2215bde5'/>
+      <elf-symbol name='ucsi_connector_change' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7e6b4418'/>
+      <elf-symbol name='ucsi_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1036bce3'/>
+      <elf-symbol name='ucsi_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d37b9c8'/>
+      <elf-symbol name='ucsi_get_drvdata' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63a5db40'/>
+      <elf-symbol name='ucsi_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4b467b65'/>
+      <elf-symbol name='ucsi_send_command' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x58d9e5bb'/>
+      <elf-symbol name='ucsi_set_drvdata' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa0a0f98'/>
+      <elf-symbol name='ucsi_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79f1e621'/>
+      <elf-symbol name='udp4_hwcsum' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad46344f'/>
+      <elf-symbol name='ufshcd_add_command_trace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72ce9c50'/>
+      <elf-symbol name='ufshcd_alloc_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xabed0a72'/>
+      <elf-symbol name='ufshcd_auto_hibern8_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa31272e'/>
+      <elf-symbol name='ufshcd_bkops_ctrl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe654728e'/>
+      <elf-symbol name='ufshcd_clk_scaling_start_busy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8ce6d597'/>
+      <elf-symbol name='ufshcd_clk_scaling_update_busy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc427e94f'/>
+      <elf-symbol name='ufshcd_config_pwr_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63715fb0'/>
+      <elf-symbol name='ufshcd_dealloc_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7b5c5f2'/>
+      <elf-symbol name='ufshcd_delay_us' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x723b1abf'/>
+      <elf-symbol name='ufshcd_dme_configure_adapt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa9434fd4'/>
+      <elf-symbol name='ufshcd_dme_get_attr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5e3087'/>
+      <elf-symbol name='ufshcd_dme_set_attr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1406f1d9'/>
+      <elf-symbol name='ufshcd_dump_regs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x223ced0b'/>
+      <elf-symbol name='ufshcd_fixup_dev_quirks' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72fbd67b'/>
+      <elf-symbol name='ufshcd_get_local_unipro_ver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89eb5948'/>
+      <elf-symbol name='ufshcd_get_pwr_dev_param' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff85cd6b'/>
+      <elf-symbol name='ufshcd_get_vreg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x172dffb6'/>
+      <elf-symbol name='ufshcd_hba_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3271183a'/>
+      <elf-symbol name='ufshcd_hba_stop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb91316ed'/>
+      <elf-symbol name='ufshcd_hold' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x394198c5'/>
+      <elf-symbol name='ufshcd_init_pwr_dev_param' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54c946de'/>
+      <elf-symbol name='ufshcd_link_recovery' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6c7458'/>
+      <elf-symbol name='ufshcd_make_hba_operational' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4a4ed087'/>
+      <elf-symbol name='ufshcd_map_desc_id_to_length' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35df7c3d'/>
+      <elf-symbol name='ufshcd_pltfrm_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6722f00d'/>
+      <elf-symbol name='ufshcd_pltfrm_shutdown' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7739ef94'/>
+      <elf-symbol name='ufshcd_populate_vreg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6409c545'/>
+      <elf-symbol name='ufshcd_query_attr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbb65f144'/>
+      <elf-symbol name='ufshcd_query_attr_retry' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4cc92fb3'/>
+      <elf-symbol name='ufshcd_query_descriptor_retry' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x14503f'/>
+      <elf-symbol name='ufshcd_query_flag' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa66a595e'/>
+      <elf-symbol name='ufshcd_query_flag_retry' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa7e0e216'/>
+      <elf-symbol name='ufshcd_read_desc_param' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb86af508'/>
+      <elf-symbol name='ufshcd_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaeb292b2'/>
+      <elf-symbol name='ufshcd_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x167c772e'/>
+      <elf-symbol name='ufshcd_resume_complete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf616cd54'/>
+      <elf-symbol name='ufshcd_runtime_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf77ae225'/>
+      <elf-symbol name='ufshcd_runtime_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbafed781'/>
+      <elf-symbol name='ufshcd_shutdown' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x684ba32e'/>
+      <elf-symbol name='ufshcd_suspend_prepare' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd3a0a7e'/>
+      <elf-symbol name='ufshcd_system_freeze' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3266acae'/>
+      <elf-symbol name='ufshcd_system_restore' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x98325377'/>
+      <elf-symbol name='ufshcd_system_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa1b3aa03'/>
+      <elf-symbol name='ufshcd_system_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x68a59b34'/>
+      <elf-symbol name='ufshcd_system_thaw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1847e552'/>
+      <elf-symbol name='ufshcd_transfer_rsp_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x992d807e'/>
+      <elf-symbol name='ufshcd_uic_change_pwr_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d553ef2'/>
+      <elf-symbol name='ufshcd_uic_hibern8_enter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x452fcee7'/>
+      <elf-symbol name='ufshcd_uic_hibern8_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbea03bfd'/>
+      <elf-symbol name='ufshcd_update_evt_hist' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6ed6d81'/>
+      <elf-symbol name='uio_unregister_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd3cfb1a'/>
+      <elf-symbol name='unload_nls' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeed93ed6'/>
+      <elf-symbol name='unlock_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x637d771e'/>
+      <elf-symbol name='unlock_new_inode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6201c261'/>
+      <elf-symbol name='unlock_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4466ae63'/>
+      <elf-symbol name='unmap_mapping_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc87cf40f'/>
+      <elf-symbol name='unpin_user_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdd7d0c81'/>
+      <elf-symbol name='unpin_user_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3e025084'/>
+      <elf-symbol name='unpin_user_pages_dirty_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9aa9761'/>
+      <elf-symbol name='unregister_blkdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5a459dc'/>
+      <elf-symbol name='unregister_candev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb0a5fa92'/>
+      <elf-symbol name='unregister_chrdev_region' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6091b333'/>
+      <elf-symbol name='unregister_console' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4307f7af'/>
+      <elf-symbol name='unregister_die_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x121d958a'/>
+      <elf-symbol name='unregister_filesystem' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88e9230d'/>
+      <elf-symbol name='unregister_ftrace_export' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x81f372a2'/>
+      <elf-symbol name='unregister_inet6addr_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2fe252cc'/>
+      <elf-symbol name='unregister_inetaddr_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe029963'/>
+      <elf-symbol name='unregister_key_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x819cd856'/>
+      <elf-symbol name='unregister_kprobe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb78b1ed'/>
+      <elf-symbol name='unregister_kretprobe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce598ef2'/>
+      <elf-symbol name='unregister_memory_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26e298e0'/>
+      <elf-symbol name='unregister_module_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a5ecb18'/>
+      <elf-symbol name='unregister_net_sysctl_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd53c67b3'/>
+      <elf-symbol name='unregister_netdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f8abfa5'/>
+      <elf-symbol name='unregister_netdevice_many' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9fdecc31'/>
+      <elf-symbol name='unregister_netdevice_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9d0d6206'/>
+      <elf-symbol name='unregister_netdevice_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce1cf783'/>
+      <elf-symbol name='unregister_netevent_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4fe1eddf'/>
+      <elf-symbol name='unregister_oom_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc617f82c'/>
+      <elf-symbol name='unregister_pernet_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xffe9e33d'/>
+      <elf-symbol name='unregister_pernet_subsys' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4996b1f'/>
+      <elf-symbol name='unregister_pm_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7681946c'/>
+      <elf-symbol name='unregister_pppox_proto' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0ff7a18'/>
+      <elf-symbol name='unregister_qdisc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a8bcd40'/>
+      <elf-symbol name='unregister_reboot_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xac1a55be'/>
+      <elf-symbol name='unregister_restart_handler' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40d59096'/>
+      <elf-symbol name='unregister_rpmsg_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca9e8c86'/>
+      <elf-symbol name='unregister_shrinker' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe3f5522'/>
+      <elf-symbol name='unregister_syscore_ops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa1eb910'/>
+      <elf-symbol name='unregister_sysctl_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd691c6a9'/>
+      <elf-symbol name='unregister_tcf_proto_ops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c491204'/>
+      <elf-symbol name='unregister_virtio_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd6fbd33'/>
+      <elf-symbol name='unregister_virtio_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x639c332d'/>
+      <elf-symbol name='unregister_vmap_purge_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb7c69a63'/>
+      <elf-symbol name='unregister_wide_hw_breakpoint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3176388a'/>
+      <elf-symbol name='up' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf2a6966'/>
+      <elf-symbol name='up_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b50e951'/>
+      <elf-symbol name='up_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20d81059'/>
+      <elf-symbol name='update_devfreq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff8509c2'/>
+      <elf-symbol name='update_rq_clock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91eb7f1b'/>
+      <elf-symbol name='usb_add_config' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x23bcb64e'/>
+      <elf-symbol name='usb_add_function' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa4f96faf'/>
+      <elf-symbol name='usb_add_gadget' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5a0f7b2'/>
+      <elf-symbol name='usb_add_gadget_udc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43239c8f'/>
+      <elf-symbol name='usb_add_hcd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xacac8bb4'/>
+      <elf-symbol name='usb_add_phy_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c3b0929'/>
+      <elf-symbol name='usb_alloc_coherent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x52e71182'/>
+      <elf-symbol name='usb_alloc_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3e6e0ae5'/>
+      <elf-symbol name='usb_alloc_urb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6cee4e1'/>
+      <elf-symbol name='usb_amd_dev_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9b9df41'/>
+      <elf-symbol name='usb_amd_prefetch_quirk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd87fc0a0'/>
+      <elf-symbol name='usb_amd_quirk_pll_check' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf4014ff'/>
+      <elf-symbol name='usb_amd_quirk_pll_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdc825d6c'/>
+      <elf-symbol name='usb_amd_quirk_pll_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10ecc52c'/>
+      <elf-symbol name='usb_anchor_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7e8d8619'/>
+      <elf-symbol name='usb_anchor_urb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdfb3cae3'/>
+      <elf-symbol name='usb_assign_descriptors' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3600a9e1'/>
+      <elf-symbol name='usb_autopm_get_interface' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x165394b7'/>
+      <elf-symbol name='usb_autopm_get_interface_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x531f4270'/>
+      <elf-symbol name='usb_autopm_get_interface_no_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7400d3f0'/>
+      <elf-symbol name='usb_autopm_put_interface' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb113dae9'/>
+      <elf-symbol name='usb_autopm_put_interface_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc57bde07'/>
+      <elf-symbol name='usb_autopm_put_interface_no_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd1f076a9'/>
+      <elf-symbol name='usb_bulk_msg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8fee3a38'/>
+      <elf-symbol name='usb_calc_bus_time' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7e64181d'/>
+      <elf-symbol name='usb_choose_configuration' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca9f79c6'/>
+      <elf-symbol name='usb_clear_halt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c1a5736'/>
+      <elf-symbol name='usb_composite_probe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf9be368'/>
+      <elf-symbol name='usb_composite_setup_continue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5beda6a9'/>
+      <elf-symbol name='usb_composite_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26f292a6'/>
+      <elf-symbol name='usb_control_msg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x106b77f5'/>
+      <elf-symbol name='usb_control_msg_recv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57fb9b84'/>
+      <elf-symbol name='usb_control_msg_send' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25db13a9'/>
+      <elf-symbol name='usb_copy_descriptors' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e09263f'/>
+      <elf-symbol name='usb_create_hcd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x81853875'/>
+      <elf-symbol name='usb_create_shared_hcd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2eb9c3a5'/>
+      <elf-symbol name='usb_decode_ctrl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4531624f'/>
+      <elf-symbol name='usb_decode_interval' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4c500'/>
+      <elf-symbol name='usb_del_gadget' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd9b514f'/>
+      <elf-symbol name='usb_del_gadget_udc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x94f4e851'/>
+      <elf-symbol name='usb_deregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x992ccc03'/>
+      <elf-symbol name='usb_deregister_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3eb70098'/>
+      <elf-symbol name='usb_disable_autosuspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35d75048'/>
+      <elf-symbol name='usb_disabled' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19a304ba'/>
+      <elf-symbol name='usb_driver_claim_interface' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb23498e3'/>
+      <elf-symbol name='usb_driver_release_interface' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f53d4b6'/>
+      <elf-symbol name='usb_driver_set_configuration' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x86a7aed4'/>
+      <elf-symbol name='usb_enable_autosuspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8208070'/>
+      <elf-symbol name='usb_ep_alloc_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x880d48e4'/>
+      <elf-symbol name='usb_ep_autoconfig' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a36c080'/>
+      <elf-symbol name='usb_ep_clear_halt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9370b708'/>
+      <elf-symbol name='usb_ep_dequeue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbadfaba7'/>
+      <elf-symbol name='usb_ep_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1aec8cdd'/>
+      <elf-symbol name='usb_ep_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2dbea237'/>
+      <elf-symbol name='usb_ep_fifo_flush' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa50158bd'/>
+      <elf-symbol name='usb_ep_free_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1d6766db'/>
+      <elf-symbol name='usb_ep_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4616fc7'/>
+      <elf-symbol name='usb_ep_set_halt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8310b89e'/>
+      <elf-symbol name='usb_ep_set_maxpacket_limit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x77ec757b'/>
+      <elf-symbol name='usb_ep_type_string' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a146ec3'/>
+      <elf-symbol name='usb_find_common_endpoints' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x93c7edeb'/>
+      <elf-symbol name='usb_find_interface' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa25af850'/>
+      <elf-symbol name='usb_free_all_descriptors' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x44695a6a'/>
+      <elf-symbol name='usb_free_coherent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4127c16'/>
+      <elf-symbol name='usb_free_urb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x368e12dd'/>
+      <elf-symbol name='usb_function_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb75c796'/>
+      <elf-symbol name='usb_function_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6cc38979'/>
+      <elf-symbol name='usb_gadget_activate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc681b6f'/>
+      <elf-symbol name='usb_gadget_connect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x18ea8197'/>
+      <elf-symbol name='usb_gadget_deactivate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6cab3442'/>
+      <elf-symbol name='usb_gadget_disconnect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf22b706c'/>
+      <elf-symbol name='usb_gadget_giveback_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3cfd9348'/>
+      <elf-symbol name='usb_gadget_map_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6bf2e6d3'/>
+      <elf-symbol name='usb_gadget_map_request_by_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdba9e3ce'/>
+      <elf-symbol name='usb_gadget_probe_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15230af0'/>
+      <elf-symbol name='usb_gadget_set_selfpowered' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x95612cc9'/>
+      <elf-symbol name='usb_gadget_set_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c8593b'/>
+      <elf-symbol name='usb_gadget_udc_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa2f16b0'/>
+      <elf-symbol name='usb_gadget_unmap_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c8395e3'/>
+      <elf-symbol name='usb_gadget_unmap_request_by_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x53461558'/>
+      <elf-symbol name='usb_gadget_unregister_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb46a6db7'/>
+      <elf-symbol name='usb_gadget_vbus_connect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x53ff5264'/>
+      <elf-symbol name='usb_gadget_vbus_disconnect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8261cf99'/>
+      <elf-symbol name='usb_gadget_wakeup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f2a2646'/>
+      <elf-symbol name='usb_get_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26fd898e'/>
+      <elf-symbol name='usb_get_dr_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e74babc'/>
+      <elf-symbol name='usb_get_from_anchor' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x53fe723e'/>
+      <elf-symbol name='usb_get_function' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf7d89fcf'/>
+      <elf-symbol name='usb_get_function_instance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe00cba8b'/>
+      <elf-symbol name='usb_get_intf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4072e5bd'/>
+      <elf-symbol name='usb_get_maximum_speed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67c7daa6'/>
+      <elf-symbol name='usb_get_maximum_ssp_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ca08ea3'/>
+      <elf-symbol name='usb_get_role_switch_default_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7a26ea74'/>
+      <elf-symbol name='usb_gstrings_attach' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa321212b'/>
+      <elf-symbol name='usb_hc_died' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8b21fcad'/>
+      <elf-symbol name='usb_hcd_check_unlink_urb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9b9c190'/>
+      <elf-symbol name='usb_hcd_end_port_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe5f99e95'/>
+      <elf-symbol name='usb_hcd_giveback_urb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d9d1248'/>
+      <elf-symbol name='usb_hcd_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x70cf032f'/>
+      <elf-symbol name='usb_hcd_is_primary_hcd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe50a8134'/>
+      <elf-symbol name='usb_hcd_link_urb_to_ep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x78d62460'/>
+      <elf-symbol name='usb_hcd_map_urb_for_dma' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x629de377'/>
+      <elf-symbol name='usb_hcd_pci_probe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2d2bc'/>
+      <elf-symbol name='usb_hcd_pci_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa550ea5a'/>
+      <elf-symbol name='usb_hcd_pci_shutdown' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5dee44f8'/>
+      <elf-symbol name='usb_hcd_platform_shutdown' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x75a20066'/>
+      <elf-symbol name='usb_hcd_poll_rh_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe40934e6'/>
+      <elf-symbol name='usb_hcd_resume_root_hub' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc64e98cb'/>
+      <elf-symbol name='usb_hcd_start_port_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe8bb720'/>
+      <elf-symbol name='usb_hcd_unlink_urb_from_ep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe41386b9'/>
+      <elf-symbol name='usb_hcd_unmap_urb_for_dma' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdfcf5305'/>
+      <elf-symbol name='usb_hub_clear_tt_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x686ca8c4'/>
+      <elf-symbol name='usb_hub_find_child' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x643d0996'/>
+      <elf-symbol name='usb_ifnum_to_if' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa871beb2'/>
+      <elf-symbol name='usb_init_urb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa320d9f8'/>
+      <elf-symbol name='usb_initialize_gadget' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8f070c82'/>
+      <elf-symbol name='usb_interface_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1173a32'/>
+      <elf-symbol name='usb_interrupt_msg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa45901fa'/>
+      <elf-symbol name='usb_kill_anchored_urbs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x962c8ae1'/>
+      <elf-symbol name='usb_kill_urb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3746c0b'/>
+      <elf-symbol name='usb_lock_device_for_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4bdccf16'/>
+      <elf-symbol name='usb_match_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdd3f296'/>
+      <elf-symbol name='usb_match_one_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3eaf406'/>
+      <elf-symbol name='usb_mon_deregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfed11ed1'/>
+      <elf-symbol name='usb_mon_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaae56660'/>
+      <elf-symbol name='usb_os_desc_prepare_interf_dir' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f84f82d'/>
+      <elf-symbol name='usb_otg_state_string' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2f0d9053'/>
+      <elf-symbol name='usb_phy_get_charger_current' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc237ca38'/>
+      <elf-symbol name='usb_phy_set_charger_current' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x39ed64e7'/>
+      <elf-symbol name='usb_phy_set_charger_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe605ad27'/>
+      <elf-symbol name='usb_phy_set_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdb633abf'/>
+      <elf-symbol name='usb_pipe_type_check' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd1c494a0'/>
+      <elf-symbol name='usb_poison_anchored_urbs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x842f046d'/>
+      <elf-symbol name='usb_poison_urb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5cb3ba3e'/>
+      <elf-symbol name='usb_put_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56de2a82'/>
+      <elf-symbol name='usb_put_function' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1126c76b'/>
+      <elf-symbol name='usb_put_function_instance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc6b4cf41'/>
+      <elf-symbol name='usb_put_hcd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x881553be'/>
+      <elf-symbol name='usb_put_intf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8584eb49'/>
+      <elf-symbol name='usb_queue_reset_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63adc610'/>
+      <elf-symbol name='usb_register_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc67afa57'/>
+      <elf-symbol name='usb_register_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfebd8090'/>
+      <elf-symbol name='usb_register_notify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89bbafc6'/>
+      <elf-symbol name='usb_remove_function' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f19a3a4'/>
+      <elf-symbol name='usb_remove_hcd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x855b3358'/>
+      <elf-symbol name='usb_remove_phy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc5d795a4'/>
+      <elf-symbol name='usb_reset_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8cc36110'/>
+      <elf-symbol name='usb_reset_endpoint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32614161'/>
+      <elf-symbol name='usb_role_string' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x39aa4888'/>
+      <elf-symbol name='usb_role_switch_find_by_fwnode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc5f12f0a'/>
+      <elf-symbol name='usb_role_switch_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55269a21'/>
+      <elf-symbol name='usb_role_switch_get_drvdata' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1690b503'/>
+      <elf-symbol name='usb_role_switch_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9fd634a'/>
+      <elf-symbol name='usb_role_switch_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x391c7789'/>
+      <elf-symbol name='usb_role_switch_set_role' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd5474690'/>
+      <elf-symbol name='usb_role_switch_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2882d40e'/>
+      <elf-symbol name='usb_root_hub_lost_power' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x771afa89'/>
+      <elf-symbol name='usb_scuttle_anchored_urbs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x807766ea'/>
+      <elf-symbol name='usb_set_device_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbbb4833'/>
+      <elf-symbol name='usb_set_interface' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcfdfd648'/>
+      <elf-symbol name='usb_sg_cancel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf508eef8'/>
+      <elf-symbol name='usb_sg_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe013a2'/>
+      <elf-symbol name='usb_sg_wait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe61a7d23'/>
+      <elf-symbol name='usb_show_dynids' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc17e9946'/>
+      <elf-symbol name='usb_speed_string' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x77ae495d'/>
+      <elf-symbol name='usb_store_new_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd314087b'/>
+      <elf-symbol name='usb_string' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7a144953'/>
+      <elf-symbol name='usb_string_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4790f7'/>
+      <elf-symbol name='usb_submit_urb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61a2317d'/>
+      <elf-symbol name='usb_udc_vbus_handler' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc70005b0'/>
+      <elf-symbol name='usb_unanchor_urb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51452c92'/>
+      <elf-symbol name='usb_unlink_anchored_urbs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x933f75e0'/>
+      <elf-symbol name='usb_unlink_urb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b87422d'/>
+      <elf-symbol name='usb_unpoison_urb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x14516b86'/>
+      <elf-symbol name='usb_unregister_notify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x811dc334'/>
+      <elf-symbol name='usb_wakeup_notification' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa06905fd'/>
+      <elf-symbol name='usbnet_cdc_unbind' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59375107'/>
+      <elf-symbol name='usbnet_change_mtu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc66a110e'/>
+      <elf-symbol name='usbnet_defer_kevent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdfb3ea65'/>
+      <elf-symbol name='usbnet_disconnect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x827def7'/>
+      <elf-symbol name='usbnet_generic_cdc_bind' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f9de791'/>
+      <elf-symbol name='usbnet_get_drvinfo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x381aa5e8'/>
+      <elf-symbol name='usbnet_get_endpoints' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae1963cd'/>
+      <elf-symbol name='usbnet_get_ethernet_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6f103e1'/>
+      <elf-symbol name='usbnet_get_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x76137a5e'/>
+      <elf-symbol name='usbnet_get_link_ksettings_mii' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x509f05e9'/>
+      <elf-symbol name='usbnet_get_msglevel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c8945c8'/>
+      <elf-symbol name='usbnet_link_change' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa01ff08e'/>
+      <elf-symbol name='usbnet_nway_reset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x528ca75f'/>
+      <elf-symbol name='usbnet_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd287e0de'/>
+      <elf-symbol name='usbnet_probe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb05a4a2b'/>
+      <elf-symbol name='usbnet_read_cmd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb72f5cf4'/>
+      <elf-symbol name='usbnet_read_cmd_nopm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbbf6604d'/>
+      <elf-symbol name='usbnet_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xada28dc7'/>
+      <elf-symbol name='usbnet_set_link_ksettings_mii' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ebf2de5'/>
+      <elf-symbol name='usbnet_set_msglevel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a3dff2b'/>
+      <elf-symbol name='usbnet_skb_return' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xedc20b58'/>
+      <elf-symbol name='usbnet_start_xmit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9391a2a'/>
+      <elf-symbol name='usbnet_stop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b571846'/>
+      <elf-symbol name='usbnet_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe35b7631'/>
+      <elf-symbol name='usbnet_tx_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe5ac403'/>
+      <elf-symbol name='usbnet_unlink_rx_urbs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe034820f'/>
+      <elf-symbol name='usbnet_update_max_qlen' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf7131f5f'/>
+      <elf-symbol name='usbnet_write_cmd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4862c859'/>
+      <elf-symbol name='usbnet_write_cmd_async' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x142caba5'/>
+      <elf-symbol name='usbnet_write_cmd_nopm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x58e9bf04'/>
+      <elf-symbol name='user_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43f9a9ef'/>
+      <elf-symbol name='user_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62bec431'/>
+      <elf-symbol name='user_revoke' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x841286f1'/>
+      <elf-symbol name='usleep_range_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3055d20'/>
+      <elf-symbol name='utf16s_to_utf8s' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xabf32f29'/>
+      <elf-symbol name='utf8_casefold' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0955f76'/>
+      <elf-symbol name='utf8_load' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfc399557'/>
+      <elf-symbol name='utf8_strncasecmp_folded' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4c38d4e0'/>
+      <elf-symbol name='utf8_to_utf32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x94bf03ca'/>
+      <elf-symbol name='utf8_unload' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3d56e7b3'/>
+      <elf-symbol name='utf8s_to_utf16s' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x97adb487'/>
+      <elf-symbol name='uuid_gen' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69e683de'/>
+      <elf-symbol name='uuid_parse' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb67fec0e'/>
+      <elf-symbol name='v4l2_compat_ioctl32' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25e6118b'/>
+      <elf-symbol name='v4l2_ctrl_add_handler' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf09e1161'/>
+      <elf-symbol name='v4l2_ctrl_auto_cluster' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x71637514'/>
+      <elf-symbol name='v4l2_ctrl_cluster' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe98b49f5'/>
+      <elf-symbol name='v4l2_ctrl_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x230e396c'/>
+      <elf-symbol name='v4l2_ctrl_g_ctrl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe2cafb73'/>
+      <elf-symbol name='v4l2_ctrl_g_ctrl_int64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4d85469'/>
+      <elf-symbol name='v4l2_ctrl_get_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32d43420'/>
+      <elf-symbol name='v4l2_ctrl_handler_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b369a1a'/>
+      <elf-symbol name='v4l2_ctrl_handler_init_class' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x179cbe5d'/>
+      <elf-symbol name='v4l2_ctrl_handler_setup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x470e7e06'/>
+      <elf-symbol name='v4l2_ctrl_log_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91bea495'/>
+      <elf-symbol name='v4l2_ctrl_new_custom' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4e0b8c7'/>
+      <elf-symbol name='v4l2_ctrl_new_int_menu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa215f964'/>
+      <elf-symbol name='v4l2_ctrl_new_std' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x82976b81'/>
+      <elf-symbol name='v4l2_ctrl_new_std_menu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x23502199'/>
+      <elf-symbol name='v4l2_ctrl_new_std_menu_items' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66970720'/>
+      <elf-symbol name='v4l2_ctrl_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6e0d794'/>
+      <elf-symbol name='v4l2_ctrl_request_complete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa09737e6'/>
+      <elf-symbol name='v4l2_ctrl_request_setup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4369617c'/>
+      <elf-symbol name='v4l2_ctrl_subdev_log_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xffd3b550'/>
+      <elf-symbol name='v4l2_ctrl_subdev_subscribe_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xac49377a'/>
+      <elf-symbol name='v4l2_ctrl_subscribe_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x318fc60c'/>
+      <elf-symbol name='v4l2_device_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfcb065f8'/>
+      <elf-symbol name='v4l2_device_register_subdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32907b2d'/>
+      <elf-symbol name='v4l2_device_set_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x828a67dc'/>
+      <elf-symbol name='v4l2_device_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdfccd4a7'/>
+      <elf-symbol name='v4l2_device_unregister_subdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb3aeb041'/>
+      <elf-symbol name='v4l2_event_dequeue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7063d1d'/>
+      <elf-symbol name='v4l2_event_pending' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41fd06d6'/>
+      <elf-symbol name='v4l2_event_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f8a7d44'/>
+      <elf-symbol name='v4l2_event_queue_fh' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x39ccfb93'/>
+      <elf-symbol name='v4l2_event_subdev_unsubscribe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc253d774'/>
+      <elf-symbol name='v4l2_event_subscribe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8493e123'/>
+      <elf-symbol name='v4l2_event_unsubscribe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b8a8100'/>
+      <elf-symbol name='v4l2_fh_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a6beb12'/>
+      <elf-symbol name='v4l2_fh_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35424a8c'/>
+      <elf-symbol name='v4l2_fh_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2833e2b0'/>
+      <elf-symbol name='v4l2_fh_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd521c4f9'/>
+      <elf-symbol name='v4l2_fh_is_singular' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcefb689'/>
+      <elf-symbol name='v4l2_fh_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1f9aea3a'/>
+      <elf-symbol name='v4l2_fh_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1d10ec54'/>
+      <elf-symbol name='v4l2_format_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28b12cc9'/>
+      <elf-symbol name='v4l2_g_ctrl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc19696cc'/>
+      <elf-symbol name='v4l2_g_parm_cap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65df5f2b'/>
+      <elf-symbol name='v4l2_i2c_new_subdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25303042'/>
+      <elf-symbol name='v4l2_i2c_subdev_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbf7d89aa'/>
+      <elf-symbol name='v4l2_m2m_buf_copy_metadata' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf9aab7c'/>
+      <elf-symbol name='v4l2_m2m_buf_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcdcc3349'/>
+      <elf-symbol name='v4l2_m2m_buf_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56707324'/>
+      <elf-symbol name='v4l2_m2m_ctx_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9cdf506d'/>
+      <elf-symbol name='v4l2_m2m_ctx_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4215b3e1'/>
+      <elf-symbol name='v4l2_m2m_dqbuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6cb8b671'/>
+      <elf-symbol name='v4l2_m2m_fop_mmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x763b5b51'/>
+      <elf-symbol name='v4l2_m2m_fop_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x793e88fb'/>
+      <elf-symbol name='v4l2_m2m_get_curr_priv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x459e133f'/>
+      <elf-symbol name='v4l2_m2m_get_vq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdee8ffb4'/>
+      <elf-symbol name='v4l2_m2m_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x730f2eae'/>
+      <elf-symbol name='v4l2_m2m_ioctl_create_bufs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91cc3e36'/>
+      <elf-symbol name='v4l2_m2m_ioctl_dqbuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x76bcfa23'/>
+      <elf-symbol name='v4l2_m2m_ioctl_expbuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5fbfec64'/>
+      <elf-symbol name='v4l2_m2m_ioctl_prepare_buf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7bc1c91'/>
+      <elf-symbol name='v4l2_m2m_ioctl_qbuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x199f534c'/>
+      <elf-symbol name='v4l2_m2m_ioctl_querybuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19766f72'/>
+      <elf-symbol name='v4l2_m2m_ioctl_reqbufs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x312c1be7'/>
+      <elf-symbol name='v4l2_m2m_ioctl_streamoff' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x344fc06a'/>
+      <elf-symbol name='v4l2_m2m_ioctl_streamon' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8d36107'/>
+      <elf-symbol name='v4l2_m2m_job_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbbf19e6e'/>
+      <elf-symbol name='v4l2_m2m_mmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x745882b5'/>
+      <elf-symbol name='v4l2_m2m_next_buf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54f47d71'/>
+      <elf-symbol name='v4l2_m2m_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1fda7a28'/>
+      <elf-symbol name='v4l2_m2m_qbuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4a0074df'/>
+      <elf-symbol name='v4l2_m2m_querybuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8b71f76e'/>
+      <elf-symbol name='v4l2_m2m_register_media_controller' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x400916df'/>
+      <elf-symbol name='v4l2_m2m_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc6fca5ad'/>
+      <elf-symbol name='v4l2_m2m_reqbufs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcfdfc1c3'/>
+      <elf-symbol name='v4l2_m2m_request_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbdb61a90'/>
+      <elf-symbol name='v4l2_m2m_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5352d022'/>
+      <elf-symbol name='v4l2_m2m_streamoff' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8128c98'/>
+      <elf-symbol name='v4l2_m2m_streamon' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd51ece28'/>
+      <elf-symbol name='v4l2_m2m_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf626dd03'/>
+      <elf-symbol name='v4l2_m2m_try_schedule' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x871d6100'/>
+      <elf-symbol name='v4l2_m2m_unregister_media_controller' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf13ff84d'/>
+      <elf-symbol name='v4l2_match_dv_timings' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd034392d'/>
+      <elf-symbol name='v4l2_pipeline_link_notify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1438b646'/>
+      <elf-symbol name='v4l2_s_ctrl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf1e72563'/>
+      <elf-symbol name='v4l2_s_parm_cap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x76d887ab'/>
+      <elf-symbol name='v4l2_spi_new_subdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc412a8ae'/>
+      <elf-symbol name='v4l2_spi_subdev_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x163bafd2'/>
+      <elf-symbol name='v4l2_src_change_event_subscribe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2cfa33d'/>
+      <elf-symbol name='v4l2_subdev_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1203a42f'/>
+      <elf-symbol name='v4l2_subdev_link_validate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96b6b5cd'/>
+      <elf-symbol name='v4l2_subdev_link_validate_default' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc802323'/>
+      <elf-symbol name='v4l_bound_align_image' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf5ef842e'/>
+      <elf-symbol name='vb2_buffer_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0621179'/>
+      <elf-symbol name='vb2_core_dqbuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c531b90'/>
+      <elf-symbol name='vb2_core_expbuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x978f1d83'/>
+      <elf-symbol name='vb2_core_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f820f47'/>
+      <elf-symbol name='vb2_core_qbuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x645227b0'/>
+      <elf-symbol name='vb2_core_querybuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda44d1ec'/>
+      <elf-symbol name='vb2_core_queue_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdeca496a'/>
+      <elf-symbol name='vb2_core_queue_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x31eed354'/>
+      <elf-symbol name='vb2_core_reqbufs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3d9b7093'/>
+      <elf-symbol name='vb2_core_streamoff' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde9c94cb'/>
+      <elf-symbol name='vb2_core_streamon' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61526aba'/>
+      <elf-symbol name='vb2_create_bufs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x13a8fb51'/>
+      <elf-symbol name='vb2_create_framevec' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa21fa765'/>
+      <elf-symbol name='vb2_destroy_framevec' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xccd197c7'/>
+      <elf-symbol name='vb2_dma_contig_set_max_seg_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde3ab72'/>
+      <elf-symbol name='vb2_dqbuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6d4177bb'/>
+      <elf-symbol name='vb2_expbuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad427db8'/>
+      <elf-symbol name='vb2_fop_mmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88a4f14e'/>
+      <elf-symbol name='vb2_fop_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x139f0d66'/>
+      <elf-symbol name='vb2_fop_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d07f23e'/>
+      <elf-symbol name='vb2_fop_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8b25758d'/>
+      <elf-symbol name='vb2_ioctl_create_bufs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61da7716'/>
+      <elf-symbol name='vb2_ioctl_dqbuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2534172'/>
+      <elf-symbol name='vb2_ioctl_expbuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x528f55da'/>
+      <elf-symbol name='vb2_ioctl_prepare_buf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb32f964'/>
+      <elf-symbol name='vb2_ioctl_qbuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd9a35b0'/>
+      <elf-symbol name='vb2_ioctl_querybuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x438ca3db'/>
+      <elf-symbol name='vb2_ioctl_reqbufs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6cff9b6d'/>
+      <elf-symbol name='vb2_ioctl_streamoff' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34918521'/>
+      <elf-symbol name='vb2_ioctl_streamon' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6962a07'/>
+      <elf-symbol name='vb2_mmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa9cc07e3'/>
+      <elf-symbol name='vb2_ops_wait_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x21c92c96'/>
+      <elf-symbol name='vb2_ops_wait_prepare' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa4ea46e3'/>
+      <elf-symbol name='vb2_plane_cookie' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfbefeb7b'/>
+      <elf-symbol name='vb2_plane_vaddr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c1046b5'/>
+      <elf-symbol name='vb2_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x326ccc22'/>
+      <elf-symbol name='vb2_prepare_buf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xadbb8986'/>
+      <elf-symbol name='vb2_qbuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7372c55e'/>
+      <elf-symbol name='vb2_querybuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe5acb6e4'/>
+      <elf-symbol name='vb2_queue_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9112daeb'/>
+      <elf-symbol name='vb2_queue_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbde9ad39'/>
+      <elf-symbol name='vb2_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x708f1f19'/>
+      <elf-symbol name='vb2_reqbufs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7bd697af'/>
+      <elf-symbol name='vb2_request_object_is_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x214ee07d'/>
+      <elf-symbol name='vb2_request_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26327191'/>
+      <elf-symbol name='vb2_request_validate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc11260da'/>
+      <elf-symbol name='vb2_streamoff' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbe62adeb'/>
+      <elf-symbol name='vb2_streamon' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4029e170'/>
+      <elf-symbol name='vb2_wait_for_all_buffers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca6f36d0'/>
+      <elf-symbol name='vchan_dma_desc_free_list' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca27fb9f'/>
+      <elf-symbol name='vchan_find_desc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xac87e78'/>
+      <elf-symbol name='vchan_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2301f4c6'/>
+      <elf-symbol name='vchan_tx_desc_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x360c5ac5'/>
+      <elf-symbol name='vchan_tx_submit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xecb24fd2'/>
+      <elf-symbol name='verify_pkcs7_signature' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda0ee32f'/>
+      <elf-symbol name='vfree' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x999e8297'/>
+      <elf-symbol name='vfs_fsync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf611430c'/>
+      <elf-symbol name='vfs_fsync_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x539dcc01'/>
+      <elf-symbol name='vfs_llseek' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x12e25174'/>
+      <elf-symbol name='vfs_setpos' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfda15806'/>
+      <elf-symbol name='vhost_add_used_and_signal' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x68d8e308'/>
+      <elf-symbol name='vhost_dev_check_owner' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3ec01f7'/>
+      <elf-symbol name='vhost_dev_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5cb3d5a'/>
+      <elf-symbol name='vhost_dev_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc052dd6e'/>
+      <elf-symbol name='vhost_dev_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7201053f'/>
+      <elf-symbol name='vhost_dev_stop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdbd32123'/>
+      <elf-symbol name='vhost_disable_notify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xec6c310b'/>
+      <elf-symbol name='vhost_enable_notify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6d05a52'/>
+      <elf-symbol name='vhost_get_vq_desc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f76ff65'/>
+      <elf-symbol name='vhost_log_access_ok' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1fd26844'/>
+      <elf-symbol name='vhost_poll_flush' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1d131537'/>
+      <elf-symbol name='vhost_vq_access_ok' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x143a3474'/>
+      <elf-symbol name='vhost_vq_init_access' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe3b60cf'/>
+      <elf-symbol name='vhost_vring_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbfa71cec'/>
+      <elf-symbol name='video_devdata' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf5b8e9b4'/>
+      <elf-symbol name='video_device_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a55b97c'/>
+      <elf-symbol name='video_device_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8f781a31'/>
+      <elf-symbol name='video_device_release_empty' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3f050fc'/>
+      <elf-symbol name='video_ioctl2' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8f44ad68'/>
+      <elf-symbol name='video_unregister_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1f61040d'/>
+      <elf-symbol name='videomode_from_timing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa1d8004a'/>
+      <elf-symbol name='videomode_from_timings' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x414d119a'/>
+      <elf-symbol name='virtio_break_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9d105996'/>
+      <elf-symbol name='virtio_check_driver_offered_feature' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeba2998d'/>
+      <elf-symbol name='virtio_config_changed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6ab8c84'/>
+      <elf-symbol name='virtio_device_freeze' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x101d402'/>
+      <elf-symbol name='virtio_device_restore' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d470457'/>
+      <elf-symbol name='virtio_max_dma_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda42a57f'/>
+      <elf-symbol name='virtio_transport_connect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba032b62'/>
+      <elf-symbol name='virtio_transport_deliver_tap_pkt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd77f43ef'/>
+      <elf-symbol name='virtio_transport_destruct' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3d0ab3c'/>
+      <elf-symbol name='virtio_transport_dgram_allow' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbabd30f5'/>
+      <elf-symbol name='virtio_transport_dgram_bind' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf46e0c05'/>
+      <elf-symbol name='virtio_transport_dgram_dequeue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc16ef0a'/>
+      <elf-symbol name='virtio_transport_dgram_enqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x22c37149'/>
+      <elf-symbol name='virtio_transport_do_socket_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd29419d5'/>
+      <elf-symbol name='virtio_transport_free_pkt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf979a50d'/>
+      <elf-symbol name='virtio_transport_notify_buffer_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf141e5a'/>
+      <elf-symbol name='virtio_transport_notify_poll_in' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa09776e'/>
+      <elf-symbol name='virtio_transport_notify_poll_out' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1de0c805'/>
+      <elf-symbol name='virtio_transport_notify_recv_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe8db2f18'/>
+      <elf-symbol name='virtio_transport_notify_recv_post_dequeue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdffbdcd1'/>
+      <elf-symbol name='virtio_transport_notify_recv_pre_block' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9577249'/>
+      <elf-symbol name='virtio_transport_notify_recv_pre_dequeue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2682cadd'/>
+      <elf-symbol name='virtio_transport_notify_send_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca5da71f'/>
+      <elf-symbol name='virtio_transport_notify_send_post_enqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2901200c'/>
+      <elf-symbol name='virtio_transport_notify_send_pre_block' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaad34c92'/>
+      <elf-symbol name='virtio_transport_notify_send_pre_enqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb3790f50'/>
+      <elf-symbol name='virtio_transport_recv_pkt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x83c62210'/>
+      <elf-symbol name='virtio_transport_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x526e1c46'/>
+      <elf-symbol name='virtio_transport_seqpacket_dequeue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x98443148'/>
+      <elf-symbol name='virtio_transport_seqpacket_enqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd4cf126'/>
+      <elf-symbol name='virtio_transport_seqpacket_has_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfbbd3c06'/>
+      <elf-symbol name='virtio_transport_shutdown' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc070b579'/>
+      <elf-symbol name='virtio_transport_stream_allow' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a81e69'/>
+      <elf-symbol name='virtio_transport_stream_dequeue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb94346a5'/>
+      <elf-symbol name='virtio_transport_stream_enqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c3b7329'/>
+      <elf-symbol name='virtio_transport_stream_has_data' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4dcb192a'/>
+      <elf-symbol name='virtio_transport_stream_has_space' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x32ad2ac2'/>
+      <elf-symbol name='virtio_transport_stream_is_active' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3e4ef4f'/>
+      <elf-symbol name='virtio_transport_stream_rcvhiwat' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe77b0a4f'/>
+      <elf-symbol name='virtqueue_add_inbuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3c9935'/>
+      <elf-symbol name='virtqueue_add_inbuf_ctx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa1f690f6'/>
+      <elf-symbol name='virtqueue_add_outbuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa655024b'/>
+      <elf-symbol name='virtqueue_add_sgs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3adba4e'/>
+      <elf-symbol name='virtqueue_detach_unused_buf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x458b8d32'/>
+      <elf-symbol name='virtqueue_disable_cb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x776a1387'/>
+      <elf-symbol name='virtqueue_enable_cb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb572c518'/>
+      <elf-symbol name='virtqueue_enable_cb_delayed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc5d6e0f3'/>
+      <elf-symbol name='virtqueue_enable_cb_prepare' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x650a5b2'/>
+      <elf-symbol name='virtqueue_get_avail_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63a847e6'/>
+      <elf-symbol name='virtqueue_get_buf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbe9813e7'/>
+      <elf-symbol name='virtqueue_get_buf_ctx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe8cbd4db'/>
+      <elf-symbol name='virtqueue_get_desc_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x786d55fa'/>
+      <elf-symbol name='virtqueue_get_used_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a0730c3'/>
+      <elf-symbol name='virtqueue_get_vring_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf388ed7c'/>
+      <elf-symbol name='virtqueue_is_broken' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x239de5a0'/>
+      <elf-symbol name='virtqueue_kick' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7d2ca79'/>
+      <elf-symbol name='virtqueue_kick_prepare' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9dbad91'/>
+      <elf-symbol name='virtqueue_notify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x731b5109'/>
+      <elf-symbol name='virtqueue_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5356802'/>
+      <elf-symbol name='vlan_uses_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe921cd32'/>
+      <elf-symbol name='vlan_vid_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9dad524c'/>
+      <elf-symbol name='vlan_vid_del' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa29552'/>
+      <elf-symbol name='vlan_vids_add_by_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54390b67'/>
+      <elf-symbol name='vlan_vids_del_by_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69042454'/>
+      <elf-symbol name='vm_get_page_prot' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c91e17c'/>
+      <elf-symbol name='vm_insert_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c293e84'/>
+      <elf-symbol name='vm_iomap_memory' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4cb9ffc2'/>
+      <elf-symbol name='vm_map_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1d2f78e2'/>
+      <elf-symbol name='vm_map_ram' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc796392e'/>
+      <elf-symbol name='vm_memory_committed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26520970'/>
+      <elf-symbol name='vm_mmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x983619c2'/>
+      <elf-symbol name='vm_munmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b56860c'/>
+      <elf-symbol name='vm_unmap_aliases' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc22a3091'/>
+      <elf-symbol name='vm_unmap_ram' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3fd2571'/>
+      <elf-symbol name='vmalloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6ee688f'/>
+      <elf-symbol name='vmalloc_nr_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ccb0ada'/>
+      <elf-symbol name='vmalloc_to_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9fe64cf1'/>
+      <elf-symbol name='vmalloc_to_pfn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3744cf36'/>
+      <elf-symbol name='vmalloc_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5635a60a'/>
+      <elf-symbol name='vmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbfbc2abf'/>
+      <elf-symbol name='vmemdup_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90576ec4'/>
+      <elf-symbol name='vmf_insert_mixed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2cd5c3c'/>
+      <elf-symbol name='vmf_insert_pfn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6838fbe1'/>
+      <elf-symbol name='vmf_insert_pfn_prot' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9d575f9a'/>
+      <elf-symbol name='vprintk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x715a5ed0'/>
+      <elf-symbol name='vprintk_emit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee8c02e9'/>
+      <elf-symbol name='vring_create_virtqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc27fc688'/>
+      <elf-symbol name='vring_del_virtqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2e3e535'/>
+      <elf-symbol name='vring_interrupt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff05fa13'/>
+      <elf-symbol name='vring_new_virtqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8435a79'/>
+      <elf-symbol name='vring_transport_features' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67d53f42'/>
+      <elf-symbol name='vscnprintf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa0c318b'/>
+      <elf-symbol name='vsnprintf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x148653'/>
+      <elf-symbol name='vsock_core_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3416ce16'/>
+      <elf-symbol name='vsock_core_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce82db2c'/>
+      <elf-symbol name='vsock_for_each_connected_socket' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc46fb4f3'/>
+      <elf-symbol name='vsprintf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x78b887ed'/>
+      <elf-symbol name='vsscanf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x50d035c2'/>
+      <elf-symbol name='vunmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x94961283'/>
+      <elf-symbol name='vzalloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40a9b349'/>
+      <elf-symbol name='vzalloc_node' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e0c711d'/>
+      <elf-symbol name='wait_for_completion' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25974000'/>
+      <elf-symbol name='wait_for_completion_interruptible' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e3bcce2'/>
+      <elf-symbol name='wait_for_completion_interruptible_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf02aa937'/>
+      <elf-symbol name='wait_for_completion_io' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x392b1fea'/>
+      <elf-symbol name='wait_for_completion_io_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c26a53b'/>
+      <elf-symbol name='wait_for_completion_killable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20463df4'/>
+      <elf-symbol name='wait_for_completion_killable_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x726bc3c7'/>
+      <elf-symbol name='wait_for_completion_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4a3ad70e'/>
+      <elf-symbol name='wait_for_device_probe' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4484a5a4'/>
+      <elf-symbol name='wait_for_stable_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc93a0e1c'/>
+      <elf-symbol name='wait_on_page_bit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90271046'/>
+      <elf-symbol name='wait_on_page_writeback' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36eb43ae'/>
+      <elf-symbol name='wait_woken' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb308c97d'/>
+      <elf-symbol name='wake_bit_function' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca431c05'/>
+      <elf-symbol name='wake_up_bit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0fbac79'/>
+      <elf-symbol name='wake_up_if_idle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6abaae1'/>
+      <elf-symbol name='wake_up_process' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4addd462'/>
+      <elf-symbol name='wakeup_source_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa61eb541'/>
+      <elf-symbol name='wakeup_source_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x58748c6b'/>
+      <elf-symbol name='wakeup_source_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35f1acc8'/>
+      <elf-symbol name='wakeup_source_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51bd64fa'/>
+      <elf-symbol name='wakeup_source_remove' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8189ca5c'/>
+      <elf-symbol name='wakeup_source_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2baef3ed'/>
+      <elf-symbol name='wakeup_sources_read_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2692173'/>
+      <elf-symbol name='wakeup_sources_read_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24ad11db'/>
+      <elf-symbol name='wakeup_sources_walk_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb58c8204'/>
+      <elf-symbol name='wakeup_sources_walk_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb219bd8e'/>
+      <elf-symbol name='watchdog_init_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c1682c7'/>
+      <elf-symbol name='watchdog_register_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x335b870e'/>
+      <elf-symbol name='watchdog_set_restart_priority' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x943d1a3a'/>
+      <elf-symbol name='watchdog_unregister_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe9a1e11e'/>
+      <elf-symbol name='wbc_account_cgroup_owner' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf3dda37'/>
+      <elf-symbol name='wireless_nlevent_flush' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1e8fac8e'/>
+      <elf-symbol name='wireless_send_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9763921f'/>
+      <elf-symbol name='woken_wake_function' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0654aba'/>
+      <elf-symbol name='work_busy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x86ab091d'/>
+      <elf-symbol name='work_on_cpu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf82f3657'/>
+      <elf-symbol name='wq_worker_comm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb11335fb'/>
+      <elf-symbol name='write_dirty_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xec0a4ce5'/>
+      <elf-symbol name='write_inode_now' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x27207bf5'/>
+      <elf-symbol name='write_one_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b94de'/>
+      <elf-symbol name='ww_mutex_lock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa614f0a4'/>
+      <elf-symbol name='ww_mutex_lock_interruptible' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ee222bf'/>
+      <elf-symbol name='ww_mutex_unlock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd5aabce'/>
+      <elf-symbol name='xa_destroy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9491c14'/>
+      <elf-symbol name='xa_erase' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x745a981'/>
+      <elf-symbol name='xa_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8fa25c24'/>
+      <elf-symbol name='xa_find_after' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf36914b'/>
+      <elf-symbol name='xa_get_mark' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b6865c'/>
+      <elf-symbol name='xa_load' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa85a3e6d'/>
+      <elf-symbol name='xa_store' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b3e282f'/>
+      <elf-symbol name='xas_load' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x64d3cc4e'/>
+      <elf-symbol name='xas_nomem' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x263f039e'/>
+      <elf-symbol name='xas_store' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x75f0e875'/>
+      <elf-symbol name='xdp_convert_zc_to_xdp_frame' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b276688'/>
+      <elf-symbol name='xdp_do_flush' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9681621'/>
+      <elf-symbol name='xdp_do_redirect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x202f26d1'/>
+      <elf-symbol name='xdp_master_redirect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x288d176f'/>
+      <elf-symbol name='xdp_return_frame' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ed692c0'/>
+      <elf-symbol name='xdp_return_frame_rx_napi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5cd8de7f'/>
+      <elf-symbol name='xdp_rxq_info_is_reg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdb401032'/>
+      <elf-symbol name='xdp_rxq_info_reg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99c72a96'/>
+      <elf-symbol name='xdp_rxq_info_reg_mem_model' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca2d069f'/>
+      <elf-symbol name='xdp_rxq_info_unreg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a2fdb0e'/>
+      <elf-symbol name='xdp_rxq_info_unreg_mem_model' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf88dd2c4'/>
+      <elf-symbol name='xdp_warn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbb7195a5'/>
+      <elf-symbol name='xfrm4_protocol_deregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1d96bd84'/>
+      <elf-symbol name='xfrm4_protocol_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8a4a2743'/>
+      <elf-symbol name='xfrm4_rcv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b63bb2'/>
+      <elf-symbol name='xfrm4_tunnel_deregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd12a8a1c'/>
+      <elf-symbol name='xfrm4_tunnel_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb27d6ff5'/>
+      <elf-symbol name='xfrm6_protocol_deregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e652f2a'/>
+      <elf-symbol name='xfrm6_protocol_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41683455'/>
+      <elf-symbol name='xfrm6_rcv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x942a5837'/>
+      <elf-symbol name='xfrm_aalg_get_byname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x37a02412'/>
+      <elf-symbol name='xfrm_init_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc02780c0'/>
+      <elf-symbol name='xfrm_input' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb9d9a1b'/>
+      <elf-symbol name='xfrm_input_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x558a53e1'/>
+      <elf-symbol name='xfrm_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9d232440'/>
+      <elf-symbol name='xfrm_output_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ed63775'/>
+      <elf-symbol name='xfrm_register_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd58142d2'/>
+      <elf-symbol name='xfrm_state_afinfo_get_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6fd478d'/>
+      <elf-symbol name='xfrm_state_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8cb83f0a'/>
+      <elf-symbol name='xfrm_state_insert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca3f2611'/>
+      <elf-symbol name='xfrm_state_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84d0b401'/>
+      <elf-symbol name='xfrm_state_lookup_byspi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3dfca76'/>
+      <elf-symbol name='xfrm_stateonly_find' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ea248d8'/>
+      <elf-symbol name='xfrm_unregister_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x53ed4d73'/>
+      <elf-symbol name='xhci_add_endpoint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40261ae0'/>
+      <elf-symbol name='xhci_alloc_command' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x405fb948'/>
+      <elf-symbol name='xhci_alloc_erst' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9963727'/>
+      <elf-symbol name='xhci_check_bandwidth' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x21f0caf8'/>
+      <elf-symbol name='xhci_drop_endpoint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7dd96c6'/>
+      <elf-symbol name='xhci_free_command' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc1cb2268'/>
+      <elf-symbol name='xhci_free_erst' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb2fd34e2'/>
+      <elf-symbol name='xhci_gen_setup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd3e4d29'/>
+      <elf-symbol name='xhci_get_endpoint_index' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57d4050a'/>
+      <elf-symbol name='xhci_get_ep_ctx' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x202c3e8'/>
+      <elf-symbol name='xhci_init_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf343e476'/>
+      <elf-symbol name='xhci_queue_stop_endpoint' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47802733'/>
+      <elf-symbol name='xhci_reset_bandwidth' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4b13229'/>
+      <elf-symbol name='xhci_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3bae714c'/>
+      <elf-symbol name='xhci_ring_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67f8d49'/>
+      <elf-symbol name='xhci_ring_cmd_db' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x266a7026'/>
+      <elf-symbol name='xhci_ring_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x498e7db'/>
+      <elf-symbol name='xhci_run' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbfa0be83'/>
+      <elf-symbol name='xhci_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2f897687'/>
+      <elf-symbol name='xhci_trb_virt_to_dma' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x83e71096'/>
+      <elf-symbol name='xp_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9bca714'/>
+      <elf-symbol name='xp_dma_map' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x705b0ba8'/>
+      <elf-symbol name='xp_dma_sync_for_cpu_slow' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8de112df'/>
+      <elf-symbol name='xp_dma_sync_for_device_slow' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a6c1ae7'/>
+      <elf-symbol name='xp_dma_unmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x564f54cc'/>
+      <elf-symbol name='xp_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf829ed72'/>
+      <elf-symbol name='xp_raw_get_dma' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xac62af20'/>
+      <elf-symbol name='xp_set_rxq_info' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf928977f'/>
+      <elf-symbol name='xsk_clear_rx_need_wakeup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb100213f'/>
+      <elf-symbol name='xsk_get_pool_from_qid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69acec2b'/>
+      <elf-symbol name='xsk_set_rx_need_wakeup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2912127'/>
+      <elf-symbol name='xsk_set_tx_need_wakeup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x13063190'/>
+      <elf-symbol name='xsk_tx_completed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43f482ee'/>
+      <elf-symbol name='xsk_tx_peek_desc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7b31e057'/>
+      <elf-symbol name='xsk_tx_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb56581ea'/>
+      <elf-symbol name='xsk_uses_need_wakeup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd50e942'/>
+      <elf-symbol name='xt_hook_ops_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5a2baf0'/>
+      <elf-symbol name='xt_register_match' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7cb18a9'/>
+      <elf-symbol name='xt_register_matches' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x93e58c67'/>
+      <elf-symbol name='xt_register_target' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80fef575'/>
+      <elf-symbol name='xt_register_targets' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa7cdd966'/>
+      <elf-symbol name='xt_unregister_match' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb059783e'/>
+      <elf-symbol name='xt_unregister_matches' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c98d4b2'/>
+      <elf-symbol name='xt_unregister_target' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf34cef62'/>
+      <elf-symbol name='xt_unregister_targets' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x518b8265'/>
+      <elf-symbol name='yield' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x760a0f4f'/>
+      <elf-symbol name='zap_vma_ptes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x95e13d4e'/>
+      <elf-symbol name='zlib_deflate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2c43f3f'/>
+      <elf-symbol name='zlib_deflateEnd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc890c008'/>
+      <elf-symbol name='zlib_deflateInit2' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5a0b73d0'/>
+      <elf-symbol name='zlib_deflateReset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6aeefac4'/>
+      <elf-symbol name='zlib_deflate_workspacesize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe9f7149c'/>
+      <elf-symbol name='zlib_inflate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x581f98da'/>
+      <elf-symbol name='zlib_inflateEnd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x107e5878'/>
+      <elf-symbol name='zlib_inflateIncomp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x424d3620'/>
+      <elf-symbol name='zlib_inflateInit2' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35a88f28'/>
+      <elf-symbol name='zlib_inflateReset' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbb0540aa'/>
+      <elf-symbol name='zlib_inflate_workspacesize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce5ac24f'/>
+    </elf-function-symbols>
+    <elf-variable-symbols>
+      <elf-symbol name='GKI_struct_blk_mq_alloc_data' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed3c0f0a'/>
+      <elf-symbol name='GKI_struct_readahead_control' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5bf5bc68'/>
+      <elf-symbol name='GKI_struct_selinux_state' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43ff668a'/>
+      <elf-symbol name='__cpu_active_mask' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15db3b99'/>
+      <elf-symbol name='__cpu_online_mask' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xac594e02'/>
+      <elf-symbol name='__cpu_possible_mask' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde7ece30'/>
+      <elf-symbol name='__cpu_present_mask' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb3055449'/>
+      <elf-symbol name='__drm_debug' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f18a150'/>
+      <elf-symbol name='__num_online_cpus' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc60d0620'/>
+      <elf-symbol name='__per_cpu_offset' size='256' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x280f9f14'/>
+      <elf-symbol name='__tracepoint_android_fs_dataread_end' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe003f1fb'/>
+      <elf-symbol name='__tracepoint_android_fs_dataread_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xab2ff073'/>
+      <elf-symbol name='__tracepoint_android_fs_datawrite_end' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59a3889d'/>
+      <elf-symbol name='__tracepoint_android_fs_datawrite_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1514c6a'/>
+      <elf-symbol name='__tracepoint_android_rvh_account_irq' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0f46523'/>
+      <elf-symbol name='__tracepoint_android_rvh_account_irq_end' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1f7e18cc'/>
+      <elf-symbol name='__tracepoint_android_rvh_account_irq_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe2fef5e6'/>
+      <elf-symbol name='__tracepoint_android_rvh_after_dequeue_task' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ad4f5ba'/>
+      <elf-symbol name='__tracepoint_android_rvh_after_enqueue_task' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36d08831'/>
+      <elf-symbol name='__tracepoint_android_rvh_arm64_serror_panic' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3eeb0795'/>
+      <elf-symbol name='__tracepoint_android_rvh_audio_usb_offload_disconnect' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb46edc7c'/>
+      <elf-symbol name='__tracepoint_android_rvh_build_perf_domains' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ff307b5'/>
+      <elf-symbol name='__tracepoint_android_rvh_can_migrate_task' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89ef9455'/>
+      <elf-symbol name='__tracepoint_android_rvh_check_preempt_tick' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8871c3f'/>
+      <elf-symbol name='__tracepoint_android_rvh_check_preempt_wakeup' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7e34ad6c'/>
+      <elf-symbol name='__tracepoint_android_rvh_check_preempt_wakeup_ignore' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4c0aab3'/>
+      <elf-symbol name='__tracepoint_android_rvh_commit_creds' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3026d92c'/>
+      <elf-symbol name='__tracepoint_android_rvh_cpu_cgroup_attach' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe5107ad0'/>
+      <elf-symbol name='__tracepoint_android_rvh_cpu_cgroup_can_attach' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85cf6bd2'/>
+      <elf-symbol name='__tracepoint_android_rvh_cpu_cgroup_online' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f3039c2'/>
+      <elf-symbol name='__tracepoint_android_rvh_cpu_overutilized' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x29b33046'/>
+      <elf-symbol name='__tracepoint_android_rvh_cpufreq_transition' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda623954'/>
+      <elf-symbol name='__tracepoint_android_rvh_cpuset_fork' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0966112'/>
+      <elf-symbol name='__tracepoint_android_rvh_ctl_dirty_rate' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6deafb40'/>
+      <elf-symbol name='__tracepoint_android_rvh_dequeue_entity' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5f0191c3'/>
+      <elf-symbol name='__tracepoint_android_rvh_dequeue_task' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf992211e'/>
+      <elf-symbol name='__tracepoint_android_rvh_dequeue_task_fair' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34684643'/>
+      <elf-symbol name='__tracepoint_android_rvh_die_kernel_fault' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33c9af1e'/>
+      <elf-symbol name='__tracepoint_android_rvh_dma_buf_stats_teardown' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf7c34cb'/>
+      <elf-symbol name='__tracepoint_android_rvh_do_mem_abort' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xadec6b55'/>
+      <elf-symbol name='__tracepoint_android_rvh_do_ptrauth_fault' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c5c2192'/>
+      <elf-symbol name='__tracepoint_android_rvh_do_sched_yield' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4ee9cad'/>
+      <elf-symbol name='__tracepoint_android_rvh_do_sea' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x23501356'/>
+      <elf-symbol name='__tracepoint_android_rvh_do_serror' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbe5c068f'/>
+      <elf-symbol name='__tracepoint_android_rvh_do_sp_pc_abort' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ed564a9'/>
+      <elf-symbol name='__tracepoint_android_rvh_do_undefinstr' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x48a1e8c'/>
+      <elf-symbol name='__tracepoint_android_rvh_effective_cpu_util' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed9d580e'/>
+      <elf-symbol name='__tracepoint_android_rvh_enqueue_entity' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa9c271c6'/>
+      <elf-symbol name='__tracepoint_android_rvh_enqueue_task' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55965c95'/>
+      <elf-symbol name='__tracepoint_android_rvh_enqueue_task_fair' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6eb0e4b8'/>
+      <elf-symbol name='__tracepoint_android_rvh_entity_tick' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x966e8ae2'/>
+      <elf-symbol name='__tracepoint_android_rvh_exit_creds' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe5dee2f1'/>
+      <elf-symbol name='__tracepoint_android_rvh_find_busiest_group' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49269776'/>
+      <elf-symbol name='__tracepoint_android_rvh_find_busiest_queue' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7681ac90'/>
+      <elf-symbol name='__tracepoint_android_rvh_find_energy_efficient_cpu' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc762e5b3'/>
+      <elf-symbol name='__tracepoint_android_rvh_find_lowest_rq' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd1276946'/>
+      <elf-symbol name='__tracepoint_android_rvh_find_new_ilb' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad8a8a9b'/>
+      <elf-symbol name='__tracepoint_android_rvh_finish_prio_fork' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33e0a813'/>
+      <elf-symbol name='__tracepoint_android_rvh_flush_task' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x97640e4f'/>
+      <elf-symbol name='__tracepoint_android_rvh_get_nohz_timer_target' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x11bfb9a4'/>
+      <elf-symbol name='__tracepoint_android_rvh_gic_v3_set_affinity' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ffd12d7'/>
+      <elf-symbol name='__tracepoint_android_rvh_iommu_setup_dma_ops' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2461d175'/>
+      <elf-symbol name='__tracepoint_android_rvh_irqs_disable' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x44ac9f4b'/>
+      <elf-symbol name='__tracepoint_android_rvh_irqs_enable' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9d53b36'/>
+      <elf-symbol name='__tracepoint_android_rvh_is_cpu_allowed' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe153f7a'/>
+      <elf-symbol name='__tracepoint_android_rvh_memcgv2_calc_decayed_watermark' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x48a59b9a'/>
+      <elf-symbol name='__tracepoint_android_rvh_memcgv2_init' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2bd4eca'/>
+      <elf-symbol name='__tracepoint_android_rvh_migrate_queued_task' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc5d1185'/>
+      <elf-symbol name='__tracepoint_android_rvh_mmc_cache_card_properties' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5112de79'/>
+      <elf-symbol name='__tracepoint_android_rvh_mmc_partition_status' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b4d9639'/>
+      <elf-symbol name='__tracepoint_android_rvh_mmc_sd_cmdline_timing' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91ad4ddb'/>
+      <elf-symbol name='__tracepoint_android_rvh_mmc_sd_dataline_timing' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72330ad3'/>
+      <elf-symbol name='__tracepoint_android_rvh_new_task_stats' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x798d7748'/>
+      <elf-symbol name='__tracepoint_android_rvh_override_creds' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1fb08b1'/>
+      <elf-symbol name='__tracepoint_android_rvh_panic_unhandled' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb51d5c4'/>
+      <elf-symbol name='__tracepoint_android_rvh_partial_init' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6faf3959'/>
+      <elf-symbol name='__tracepoint_android_rvh_pick_next_entity' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99d20b2c'/>
+      <elf-symbol name='__tracepoint_android_rvh_place_entity' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8b5c0688'/>
+      <elf-symbol name='__tracepoint_android_rvh_post_init_entity_util_avg' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa967c441'/>
+      <elf-symbol name='__tracepoint_android_rvh_preempt_disable' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4ec0da4'/>
+      <elf-symbol name='__tracepoint_android_rvh_preempt_enable' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x86d490a6'/>
+      <elf-symbol name='__tracepoint_android_rvh_prepare_prio_fork' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xadd0283e'/>
+      <elf-symbol name='__tracepoint_android_rvh_psci_cpu_suspend' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9b81cca'/>
+      <elf-symbol name='__tracepoint_android_rvh_psci_tos_resident_on' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb163a362'/>
+      <elf-symbol name='__tracepoint_android_rvh_refrigerator' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa020dd1'/>
+      <elf-symbol name='__tracepoint_android_rvh_replace_next_task_fair' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa95004c7'/>
+      <elf-symbol name='__tracepoint_android_rvh_report_bug' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb68447d7'/>
+      <elf-symbol name='__tracepoint_android_rvh_revert_creds' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x31591c5'/>
+      <elf-symbol name='__tracepoint_android_rvh_rmqueue_bulk' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xccdd6840'/>
+      <elf-symbol name='__tracepoint_android_rvh_rtmutex_force_update' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa86a5262'/>
+      <elf-symbol name='__tracepoint_android_rvh_rtmutex_prepare_setprio' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7740c625'/>
+      <elf-symbol name='__tracepoint_android_rvh_rto_next_cpu' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x81a1754b'/>
+      <elf-symbol name='__tracepoint_android_rvh_sched_cpu_dying' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x14e26599'/>
+      <elf-symbol name='__tracepoint_android_rvh_sched_cpu_starting' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdd953146'/>
+      <elf-symbol name='__tracepoint_android_rvh_sched_exec' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x39d63958'/>
+      <elf-symbol name='__tracepoint_android_rvh_sched_fork' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62081353'/>
+      <elf-symbol name='__tracepoint_android_rvh_sched_fork_init' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2071a467'/>
+      <elf-symbol name='__tracepoint_android_rvh_sched_getaffinity' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x945e7963'/>
+      <elf-symbol name='__tracepoint_android_rvh_sched_newidle_balance' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbadefe48'/>
+      <elf-symbol name='__tracepoint_android_rvh_sched_nohz_balancer_kick' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x52e58c76'/>
+      <elf-symbol name='__tracepoint_android_rvh_sched_rebalance_domains' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1149ef27'/>
+      <elf-symbol name='__tracepoint_android_rvh_sched_setaffinity' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b40afe0'/>
+      <elf-symbol name='__tracepoint_android_rvh_schedule' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6bce8f8'/>
+      <elf-symbol name='__tracepoint_android_rvh_select_fallback_rq' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65c25846'/>
+      <elf-symbol name='__tracepoint_android_rvh_select_task_rq_dl' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b414292'/>
+      <elf-symbol name='__tracepoint_android_rvh_select_task_rq_fair' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4bfae7d4'/>
+      <elf-symbol name='__tracepoint_android_rvh_select_task_rq_rt' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa1f10509'/>
+      <elf-symbol name='__tracepoint_android_rvh_selinux_avc_insert' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2891acea'/>
+      <elf-symbol name='__tracepoint_android_rvh_selinux_avc_lookup' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x95198ed9'/>
+      <elf-symbol name='__tracepoint_android_rvh_selinux_avc_node_delete' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80dcc20'/>
+      <elf-symbol name='__tracepoint_android_rvh_selinux_avc_node_replace' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff9e1a23'/>
+      <elf-symbol name='__tracepoint_android_rvh_selinux_is_initialized' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5cee2186'/>
+      <elf-symbol name='__tracepoint_android_rvh_set_balance_anon_file_reclaim' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x996cfb08'/>
+      <elf-symbol name='__tracepoint_android_rvh_set_cpus_allowed_by_task' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9f0b1bc'/>
+      <elf-symbol name='__tracepoint_android_rvh_set_cpus_allowed_comm' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb2badd4a'/>
+      <elf-symbol name='__tracepoint_android_rvh_set_cpus_allowed_ptr_locked' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbae5ee09'/>
+      <elf-symbol name='__tracepoint_android_rvh_set_gfp_zone_flags' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe14bb8a9'/>
+      <elf-symbol name='__tracepoint_android_rvh_set_iowait' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x343470a7'/>
+      <elf-symbol name='__tracepoint_android_rvh_set_readahead_gfp_mask' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf407ff54'/>
+      <elf-symbol name='__tracepoint_android_rvh_set_skip_swapcache_flags' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd034bf5'/>
+      <elf-symbol name='__tracepoint_android_rvh_set_task_cpu' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb7e6c73'/>
+      <elf-symbol name='__tracepoint_android_rvh_set_user_nice' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4529c9f1'/>
+      <elf-symbol name='__tracepoint_android_rvh_setscheduler' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa177030'/>
+      <elf-symbol name='__tracepoint_android_rvh_show_max_freq' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2dce519'/>
+      <elf-symbol name='__tracepoint_android_rvh_tick_entry' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd72419'/>
+      <elf-symbol name='__tracepoint_android_rvh_tk_based_time_sync' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5f32d473'/>
+      <elf-symbol name='__tracepoint_android_rvh_try_to_wake_up' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x82233cc0'/>
+      <elf-symbol name='__tracepoint_android_rvh_try_to_wake_up_success' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbc0d0d45'/>
+      <elf-symbol name='__tracepoint_android_rvh_ttwu_cond' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb96cdd49'/>
+      <elf-symbol name='__tracepoint_android_rvh_uclamp_eff_get' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x76a8e7d1'/>
+      <elf-symbol name='__tracepoint_android_rvh_ufs_complete_init' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x149dd525'/>
+      <elf-symbol name='__tracepoint_android_rvh_ufs_reprogram_all_keys' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8c77d76'/>
+      <elf-symbol name='__tracepoint_android_rvh_update_cpu_capacity' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef03083e'/>
+      <elf-symbol name='__tracepoint_android_rvh_update_cpus_allowed' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9395534'/>
+      <elf-symbol name='__tracepoint_android_rvh_update_misfit_status' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfbbc1cd6'/>
+      <elf-symbol name='__tracepoint_android_rvh_update_readahead_gfp_mask' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcab737f8'/>
+      <elf-symbol name='__tracepoint_android_rvh_update_rt_rq_load_avg' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4bcdd224'/>
+      <elf-symbol name='__tracepoint_android_rvh_update_thermal_stats' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c27bcc8'/>
+      <elf-symbol name='__tracepoint_android_rvh_update_watermark' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdfbfe0ac'/>
+      <elf-symbol name='__tracepoint_android_rvh_util_est_update' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb2c941f9'/>
+      <elf-symbol name='__tracepoint_android_rvh_wake_up_new_task' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b60d8f1'/>
+      <elf-symbol name='__tracepoint_android_vh_account_task_time' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf1afbf0d'/>
+      <elf-symbol name='__tracepoint_android_vh_add_page_to_lrulist' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1e86254b'/>
+      <elf-symbol name='__tracepoint_android_vh_aes_decrypt' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x64eaf879'/>
+      <elf-symbol name='__tracepoint_android_vh_aes_encrypt' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85db9ebb'/>
+      <elf-symbol name='__tracepoint_android_vh_aes_expandkey' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x71396455'/>
+      <elf-symbol name='__tracepoint_android_vh_alloc_flags_cma_adjust' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a999a97'/>
+      <elf-symbol name='__tracepoint_android_vh_alloc_highpage_movable_gfp_adjust' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7666b12'/>
+      <elf-symbol name='__tracepoint_android_vh_alloc_pages_failure_bypass' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24488dce'/>
+      <elf-symbol name='__tracepoint_android_vh_alloc_pages_reclaim_bypass' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x744783d0'/>
+      <elf-symbol name='__tracepoint_android_vh_alloc_pages_slowpath' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e2839b'/>
+      <elf-symbol name='__tracepoint_android_vh_alter_futex_plist_add' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a7f96d0'/>
+      <elf-symbol name='__tracepoint_android_vh_alter_mutex_list_add' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7dbea13a'/>
+      <elf-symbol name='__tracepoint_android_vh_alter_rwsem_list_add' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb65a03d5'/>
+      <elf-symbol name='__tracepoint_android_vh_anon_gfp_adjust' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3e2650a4'/>
+      <elf-symbol name='__tracepoint_android_vh_arch_set_freq_scale' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7600dd62'/>
+      <elf-symbol name='__tracepoint_android_vh_atomic_remove_fb' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6676edb4'/>
+      <elf-symbol name='__tracepoint_android_vh_audio_usb_offload_connect' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33a52dcb'/>
+      <elf-symbol name='__tracepoint_android_vh_audio_usb_offload_ep_action' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0480b53'/>
+      <elf-symbol name='__tracepoint_android_vh_audio_usb_offload_suspend' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43ea6495'/>
+      <elf-symbol name='__tracepoint_android_vh_audio_usb_offload_synctype' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc6e4f0c5'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_alloc_new_buf_locked' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c7faf0'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_del_ref' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xefc746ba'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_free_proc' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e624858'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_has_work_ilocked' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x68da440b'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_looper_state_registered' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb59ca220'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_new_ref' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33d1d092'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_preset' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf03cd6d3'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_print_transaction_info' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0a47773'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_priority_skip' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c25b934'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_proc_transaction' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaab7a316'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_proc_transaction_entry' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd172a0f8'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_proc_transaction_finish' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7fff70e0'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_read_done' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x37a6751'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_reply' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x39132f3d'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_restore_priority' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbf6d3788'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_select_worklist_ilocked' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbc728def'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_set_priority' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b21b81'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_thread_read' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1a799b23'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_thread_release' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ee63788'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_trans' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2bda2355'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_transaction_init' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e7c8a6c'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_wait_for_work' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbac548dc'/>
+      <elf-symbol name='__tracepoint_android_vh_binder_wakeup_ilocked' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x220013f3'/>
+      <elf-symbol name='__tracepoint_android_vh_blk_account_io_done' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf16b4f9c'/>
+      <elf-symbol name='__tracepoint_android_vh_blk_alloc_rqs' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x23957f60'/>
+      <elf-symbol name='__tracepoint_android_vh_blk_rq_ctx_init' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5491a33'/>
+      <elf-symbol name='__tracepoint_android_vh_build_sched_domains' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe9491ecd'/>
+      <elf-symbol name='__tracepoint_android_vh_cache_show' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1459a529'/>
+      <elf-symbol name='__tracepoint_android_vh_cgroup_attach' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde2789e0'/>
+      <elf-symbol name='__tracepoint_android_vh_cgroup_set_task' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe1f9a223'/>
+      <elf-symbol name='__tracepoint_android_vh_check_bpf_syscall' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcbe6df73'/>
+      <elf-symbol name='__tracepoint_android_vh_check_file_open' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x572318b3'/>
+      <elf-symbol name='__tracepoint_android_vh_check_hibernation_swap' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2bf41b73'/>
+      <elf-symbol name='__tracepoint_android_vh_check_mmap_file' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc12a5dbb'/>
+      <elf-symbol name='__tracepoint_android_vh_check_page_look_around_ref' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56051d24'/>
+      <elf-symbol name='__tracepoint_android_vh_check_uninterruptible_tasks' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66dea1b7'/>
+      <elf-symbol name='__tracepoint_android_vh_check_uninterruptible_tasks_dn' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7bbce92e'/>
+      <elf-symbol name='__tracepoint_android_vh_cleanup_old_buffers_bypass' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2ace59c2'/>
+      <elf-symbol name='__tracepoint_android_vh_clear_page_migrating' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2f44002c'/>
+      <elf-symbol name='__tracepoint_android_vh_cma_alloc_retry' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe23e320a'/>
+      <elf-symbol name='__tracepoint_android_vh_cma_drain_all_pages_bypass' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3337fabd'/>
+      <elf-symbol name='__tracepoint_android_vh_compact_finished' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x311ceff4'/>
+      <elf-symbol name='__tracepoint_android_vh_cpu_idle_enter' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x656d334c'/>
+      <elf-symbol name='__tracepoint_android_vh_cpu_idle_exit' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51b29892'/>
+      <elf-symbol name='__tracepoint_android_vh_cpufreq_acct_update_power' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba474b4f'/>
+      <elf-symbol name='__tracepoint_android_vh_cpufreq_fast_switch' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6abcf30a'/>
+      <elf-symbol name='__tracepoint_android_vh_cpufreq_offline' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6d35af23'/>
+      <elf-symbol name='__tracepoint_android_vh_cpufreq_resolve_freq' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5f71ddfa'/>
+      <elf-symbol name='__tracepoint_android_vh_cpufreq_target' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb90693f4'/>
+      <elf-symbol name='__tracepoint_android_vh_cpuidle_psci_enter' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe2b81116'/>
+      <elf-symbol name='__tracepoint_android_vh_cpuidle_psci_exit' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c331003'/>
+      <elf-symbol name='__tracepoint_android_vh_del_page_from_lrulist' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43058362'/>
+      <elf-symbol name='__tracepoint_android_vh_direct_io_update_bio' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6cdbf94a'/>
+      <elf-symbol name='__tracepoint_android_vh_disable_thermal_cooling_stats' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e447fbe'/>
+      <elf-symbol name='__tracepoint_android_vh_dm_bufio_shrink_scan_bypass' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1e1422af'/>
+      <elf-symbol name='__tracepoint_android_vh_dm_update_clone_bio' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x682cea93'/>
+      <elf-symbol name='__tracepoint_android_vh_dma_buf_release' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb605aa17'/>
+      <elf-symbol name='__tracepoint_android_vh_dmabuf_heap_flags_validation' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9f94a498'/>
+      <elf-symbol name='__tracepoint_android_vh_do_futex' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c256c39'/>
+      <elf-symbol name='__tracepoint_android_vh_do_page_trylock' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7e983da1'/>
+      <elf-symbol name='__tracepoint_android_vh_do_send_sig_info' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6db82691'/>
+      <elf-symbol name='__tracepoint_android_vh_do_traversal_lruvec' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5644a85c'/>
+      <elf-symbol name='__tracepoint_android_vh_do_wake_up_sync' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24bef402'/>
+      <elf-symbol name='__tracepoint_android_vh_drain_all_pages_bypass' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x786ed430'/>
+      <elf-symbol name='__tracepoint_android_vh_drm_atomic_check_modeset' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ae4711b'/>
+      <elf-symbol name='__tracepoint_android_vh_dump_throttled_rt_tasks' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd29bebac'/>
+      <elf-symbol name='__tracepoint_android_vh_dup_task_struct' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x14fff0cf'/>
+      <elf-symbol name='__tracepoint_android_vh_enable_thermal_power_throttle' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x13db5a5d'/>
+      <elf-symbol name='__tracepoint_android_vh_encrypt_page' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa94f7016'/>
+      <elf-symbol name='__tracepoint_android_vh_exit_mm' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff76cd99'/>
+      <elf-symbol name='__tracepoint_android_vh_exit_signal' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf144058'/>
+      <elf-symbol name='__tracepoint_android_vh_free_one_page_bypass' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8e1bbb2'/>
+      <elf-symbol name='__tracepoint_android_vh_free_task' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25db8da7'/>
+      <elf-symbol name='__tracepoint_android_vh_free_unref_page_bypass' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf31d0b7d'/>
+      <elf-symbol name='__tracepoint_android_vh_freq_qos_add_request' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa4d7652'/>
+      <elf-symbol name='__tracepoint_android_vh_freq_qos_remove_request' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6fef5880'/>
+      <elf-symbol name='__tracepoint_android_vh_freq_qos_update_request' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e0fffb6'/>
+      <elf-symbol name='__tracepoint_android_vh_ftrace_dump_buffer' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x92d99a98'/>
+      <elf-symbol name='__tracepoint_android_vh_ftrace_format_check' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc057d825'/>
+      <elf-symbol name='__tracepoint_android_vh_ftrace_oops_enter' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c9d9155'/>
+      <elf-symbol name='__tracepoint_android_vh_ftrace_oops_exit' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2b5b494'/>
+      <elf-symbol name='__tracepoint_android_vh_ftrace_size_check' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba7dff6'/>
+      <elf-symbol name='__tracepoint_android_vh_futex_sleep_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1508b3bb'/>
+      <elf-symbol name='__tracepoint_android_vh_futex_wait_end' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43c8f269'/>
+      <elf-symbol name='__tracepoint_android_vh_futex_wait_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4f69147'/>
+      <elf-symbol name='__tracepoint_android_vh_futex_wake_this' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaad61dcc'/>
+      <elf-symbol name='__tracepoint_android_vh_futex_wake_traverse_plist' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57b2dce5'/>
+      <elf-symbol name='__tracepoint_android_vh_futex_wake_up_q_finish' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbe6ff02e'/>
+      <elf-symbol name='__tracepoint_android_vh_get_thermal_zone_device' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf63d5b1a'/>
+      <elf-symbol name='__tracepoint_android_vh_gic_resume' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7eeb6d7'/>
+      <elf-symbol name='__tracepoint_android_vh_gic_set_affinity' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b46dd56'/>
+      <elf-symbol name='__tracepoint_android_vh_gic_suspend' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa29dd83b'/>
+      <elf-symbol name='__tracepoint_android_vh_gic_v2_resume' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc47c11fa'/>
+      <elf-symbol name='__tracepoint_android_vh_handle_failed_page_trylock' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25966033'/>
+      <elf-symbol name='__tracepoint_android_vh_handle_tlb_conf' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e7dc9bc'/>
+      <elf-symbol name='__tracepoint_android_vh_init_aes_encrypt' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbf9217b'/>
+      <elf-symbol name='__tracepoint_android_vh_iommu_iovad_alloc_iova' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7a1fcb87'/>
+      <elf-symbol name='__tracepoint_android_vh_iommu_iovad_free_iova' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c2a9494'/>
+      <elf-symbol name='__tracepoint_android_vh_ipi_stop' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e6c28b2'/>
+      <elf-symbol name='__tracepoint_android_vh_irqtime_account_process_tick' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61bb9d22'/>
+      <elf-symbol name='__tracepoint_android_vh_is_fpsimd_save' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x48eac1a7'/>
+      <elf-symbol name='__tracepoint_android_vh_jiffies_update' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5415675e'/>
+      <elf-symbol name='__tracepoint_android_vh_killed_process' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8f7fac90'/>
+      <elf-symbol name='__tracepoint_android_vh_kmalloc_order_alloced' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e9c7722'/>
+      <elf-symbol name='__tracepoint_android_vh_kmalloc_slab' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb7c5ca17'/>
+      <elf-symbol name='__tracepoint_android_vh_kswapd_per_node' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7839d0d'/>
+      <elf-symbol name='__tracepoint_android_vh_kvmalloc_node_use_vmalloc' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60c70f5b'/>
+      <elf-symbol name='__tracepoint_android_vh_logbuf' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd97de0'/>
+      <elf-symbol name='__tracepoint_android_vh_logbuf_pr_cont' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd281fc1'/>
+      <elf-symbol name='__tracepoint_android_vh_look_around' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x738994e9'/>
+      <elf-symbol name='__tracepoint_android_vh_look_around_migrate_page' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb001575b'/>
+      <elf-symbol name='__tracepoint_android_vh_loop_prepare_cmd' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7296adb9'/>
+      <elf-symbol name='__tracepoint_android_vh_madvise_cold_or_pageout' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef088117'/>
+      <elf-symbol name='__tracepoint_android_vh_madvise_cold_or_pageout_abort' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbcf9e929'/>
+      <elf-symbol name='__tracepoint_android_vh_map_util_freq' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9624317'/>
+      <elf-symbol name='__tracepoint_android_vh_map_util_freq_new' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb88bf122'/>
+      <elf-symbol name='__tracepoint_android_vh_mark_page_accessed' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaecce819'/>
+      <elf-symbol name='__tracepoint_android_vh_mem_cgroup_alloc' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x81f213a3'/>
+      <elf-symbol name='__tracepoint_android_vh_mem_cgroup_css_offline' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf342a420'/>
+      <elf-symbol name='__tracepoint_android_vh_mem_cgroup_css_online' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xacdf3a05'/>
+      <elf-symbol name='__tracepoint_android_vh_mem_cgroup_free' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x71b34ba2'/>
+      <elf-symbol name='__tracepoint_android_vh_mem_cgroup_id_remove' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x76f2ace1'/>
+      <elf-symbol name='__tracepoint_android_vh_meminfo_proc_show' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7997ac2'/>
+      <elf-symbol name='__tracepoint_android_vh_mmap_region' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3771778e'/>
+      <elf-symbol name='__tracepoint_android_vh_mmc_attach_sd' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9398abcc'/>
+      <elf-symbol name='__tracepoint_android_vh_mmc_blk_mq_rw_recovery' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7751460'/>
+      <elf-symbol name='__tracepoint_android_vh_mmc_blk_reset' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x248c70ab'/>
+      <elf-symbol name='__tracepoint_android_vh_mmc_check_status' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c4223df'/>
+      <elf-symbol name='__tracepoint_android_vh_mmc_ffu_update_cid' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x97290bec'/>
+      <elf-symbol name='__tracepoint_android_vh_mmc_gpio_cd_irqt' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b404ecd'/>
+      <elf-symbol name='__tracepoint_android_vh_mmc_sd_update_cmdline_timing' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79995970'/>
+      <elf-symbol name='__tracepoint_android_vh_mmc_sd_update_dataline_timing' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfc394d4a'/>
+      <elf-symbol name='__tracepoint_android_vh_mmc_sdio_pm_flag_set' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80ed5c28'/>
+      <elf-symbol name='__tracepoint_android_vh_mmc_update_partition_status' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x29c9f09c'/>
+      <elf-symbol name='__tracepoint_android_vh_mmput' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xabcddfae'/>
+      <elf-symbol name='__tracepoint_android_vh_modify_thermal_cpu_get_power' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72ac2026'/>
+      <elf-symbol name='__tracepoint_android_vh_modify_thermal_request_freq' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x240f59e0'/>
+      <elf-symbol name='__tracepoint_android_vh_modify_thermal_target_freq' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa965d530'/>
+      <elf-symbol name='__tracepoint_android_vh_modify_thermal_throttle_update' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24a40163'/>
+      <elf-symbol name='__tracepoint_android_vh_mpam_set' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x315217a'/>
+      <elf-symbol name='__tracepoint_android_vh_mutex_can_spin_on_owner' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80558a5f'/>
+      <elf-symbol name='__tracepoint_android_vh_mutex_init' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57f88efe'/>
+      <elf-symbol name='__tracepoint_android_vh_mutex_opt_spin_finish' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0e404b1'/>
+      <elf-symbol name='__tracepoint_android_vh_mutex_opt_spin_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4b26237'/>
+      <elf-symbol name='__tracepoint_android_vh_mutex_unlock_slowpath' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf5dc2012'/>
+      <elf-symbol name='__tracepoint_android_vh_mutex_wait_finish' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf33e17b'/>
+      <elf-symbol name='__tracepoint_android_vh_mutex_wait_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63ae9c7e'/>
+      <elf-symbol name='__tracepoint_android_vh_oom_check_panic' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69be312'/>
+      <elf-symbol name='__tracepoint_android_vh_page_cache_forced_ra' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9550b2f0'/>
+      <elf-symbol name='__tracepoint_android_vh_page_referenced_check_bypass' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c78bb0e'/>
+      <elf-symbol name='__tracepoint_android_vh_page_should_be_protected' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba3a10c'/>
+      <elf-symbol name='__tracepoint_android_vh_page_trylock_clear' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1e2e3a84'/>
+      <elf-symbol name='__tracepoint_android_vh_page_trylock_get_result' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8ace7f6'/>
+      <elf-symbol name='__tracepoint_android_vh_page_trylock_set' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa59470b0'/>
+      <elf-symbol name='__tracepoint_android_vh_pcplist_add_cma_pages_bypass' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd10514'/>
+      <elf-symbol name='__tracepoint_android_vh_post_image_save' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x39a9337'/>
+      <elf-symbol name='__tracepoint_android_vh_print_slabinfo_header' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfadc94a4'/>
+      <elf-symbol name='__tracepoint_android_vh_printk_caller' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5163492a'/>
+      <elf-symbol name='__tracepoint_android_vh_printk_caller_id' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x422dde96'/>
+      <elf-symbol name='__tracepoint_android_vh_printk_ext_header' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf400ae3e'/>
+      <elf-symbol name='__tracepoint_android_vh_printk_hotplug' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f6382dd'/>
+      <elf-symbol name='__tracepoint_android_vh_psi_group' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b54b5dd'/>
+      <elf-symbol name='__tracepoint_android_vh_ptype_head' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40b365e3'/>
+      <elf-symbol name='__tracepoint_android_vh_ra_tuning_max_page' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9744e016'/>
+      <elf-symbol name='__tracepoint_android_vh_record_mutex_lock_starttime' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1deb1eec'/>
+      <elf-symbol name='__tracepoint_android_vh_record_pcpu_rwsem_starttime' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x18111c92'/>
+      <elf-symbol name='__tracepoint_android_vh_record_rtmutex_lock_starttime' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61c36376'/>
+      <elf-symbol name='__tracepoint_android_vh_record_rwsem_lock_starttime' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34f9d483'/>
+      <elf-symbol name='__tracepoint_android_vh_regmap_update' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf37e88a'/>
+      <elf-symbol name='__tracepoint_android_vh_rmqueue' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8168d02'/>
+      <elf-symbol name='__tracepoint_android_vh_rmqueue_bulk_bypass' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1cdf278d'/>
+      <elf-symbol name='__tracepoint_android_vh_rmqueue_cma_fallback' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb80dd16'/>
+      <elf-symbol name='__tracepoint_android_vh_rmqueue_smallest_bypass' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x48db8869'/>
+      <elf-symbol name='__tracepoint_android_vh_rproc_recovery' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2941030b'/>
+      <elf-symbol name='__tracepoint_android_vh_rproc_recovery_set' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3adfa5d'/>
+      <elf-symbol name='__tracepoint_android_vh_rtmutex_wait_finish' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9397e82e'/>
+      <elf-symbol name='__tracepoint_android_vh_rtmutex_wait_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc443185a'/>
+      <elf-symbol name='__tracepoint_android_vh_rtmutex_waiter_prio' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfbb21e2'/>
+      <elf-symbol name='__tracepoint_android_vh_rwsem_can_spin_on_owner' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x17248e7'/>
+      <elf-symbol name='__tracepoint_android_vh_rwsem_init' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x554a1937'/>
+      <elf-symbol name='__tracepoint_android_vh_rwsem_opt_spin_finish' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7dc06ab2'/>
+      <elf-symbol name='__tracepoint_android_vh_rwsem_opt_spin_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9da0a858'/>
+      <elf-symbol name='__tracepoint_android_vh_rwsem_read_wait_finish' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2e8063f'/>
+      <elf-symbol name='__tracepoint_android_vh_rwsem_read_wait_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65ad336b'/>
+      <elf-symbol name='__tracepoint_android_vh_rwsem_wake' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41026d41'/>
+      <elf-symbol name='__tracepoint_android_vh_rwsem_wake_finish' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b369940'/>
+      <elf-symbol name='__tracepoint_android_vh_rwsem_write_finished' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa15e744e'/>
+      <elf-symbol name='__tracepoint_android_vh_rwsem_write_wait_finish' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa8c3dad3'/>
+      <elf-symbol name='__tracepoint_android_vh_rwsem_write_wait_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe512d7a'/>
+      <elf-symbol name='__tracepoint_android_vh_save_cpu_resume' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0da4fe5'/>
+      <elf-symbol name='__tracepoint_android_vh_save_hib_resume_bdev' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x64f2a9a3'/>
+      <elf-symbol name='__tracepoint_android_vh_save_track_hash' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfddb065e'/>
+      <elf-symbol name='__tracepoint_android_vh_sched_pelt_multiplier' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8363715e'/>
+      <elf-symbol name='__tracepoint_android_vh_sched_setaffinity_early' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcec91b82'/>
+      <elf-symbol name='__tracepoint_android_vh_sched_show_task' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66f7b6a4'/>
+      <elf-symbol name='__tracepoint_android_vh_sched_stat_runtime_rt' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdb1b2fe1'/>
+      <elf-symbol name='__tracepoint_android_vh_scheduler_tick' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3e74b24'/>
+      <elf-symbol name='__tracepoint_android_vh_sd_update_bus_speed_mode' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6a78e6b4'/>
+      <elf-symbol name='__tracepoint_android_vh_sdhci_get_cd' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c3d8d01'/>
+      <elf-symbol name='__tracepoint_android_vh_set_memory_nx' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x619a780d'/>
+      <elf-symbol name='__tracepoint_android_vh_set_memory_rw' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2ebcfdd'/>
+      <elf-symbol name='__tracepoint_android_vh_set_module_permit_after_init' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3bb8122d'/>
+      <elf-symbol name='__tracepoint_android_vh_set_module_permit_before_init' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ec0eeb'/>
+      <elf-symbol name='__tracepoint_android_vh_set_page_migrating' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24ccc20c'/>
+      <elf-symbol name='__tracepoint_android_vh_set_wake_flags' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b9fe557'/>
+      <elf-symbol name='__tracepoint_android_vh_setscheduler_uclamp' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ae79b81'/>
+      <elf-symbol name='__tracepoint_android_vh_sha256' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8848ed50'/>
+      <elf-symbol name='__tracepoint_android_vh_should_alloc_pages_retry' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3041380'/>
+      <elf-symbol name='__tracepoint_android_vh_show_mapcount_pages' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed7625f4'/>
+      <elf-symbol name='__tracepoint_android_vh_show_mem' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5d877102'/>
+      <elf-symbol name='__tracepoint_android_vh_show_resume_epoch_val' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8917c5f6'/>
+      <elf-symbol name='__tracepoint_android_vh_show_suspend_epoch_val' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf7f3246'/>
+      <elf-symbol name='__tracepoint_android_vh_shrink_slab_bypass' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55f40be4'/>
+      <elf-symbol name='__tracepoint_android_vh_skip_swap_map_write' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e825196'/>
+      <elf-symbol name='__tracepoint_android_vh_slab_page_alloced' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfadc892e'/>
+      <elf-symbol name='__tracepoint_android_vh_sync_txn_recvd' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc1d8fb74'/>
+      <elf-symbol name='__tracepoint_android_vh_syscall_prctl_finished' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2cf3f0f'/>
+      <elf-symbol name='__tracepoint_android_vh_sysrq_crash' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ce924b5'/>
+      <elf-symbol name='__tracepoint_android_vh_task_blocks_on_rtmutex' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5494b8bf'/>
+      <elf-symbol name='__tracepoint_android_vh_test_clear_look_around_ref' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ffca4ae'/>
+      <elf-symbol name='__tracepoint_android_vh_thermal_power_cap' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf1fd6b34'/>
+      <elf-symbol name='__tracepoint_android_vh_thermal_register' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x52c84ba9'/>
+      <elf-symbol name='__tracepoint_android_vh_thermal_unregister' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ba0a594'/>
+      <elf-symbol name='__tracepoint_android_vh_timer_calc_index' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c419ab6'/>
+      <elf-symbol name='__tracepoint_android_vh_try_cma_fallback' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6fea66e8'/>
+      <elf-symbol name='__tracepoint_android_vh_try_to_freeze_todo' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7736a58d'/>
+      <elf-symbol name='__tracepoint_android_vh_try_to_freeze_todo_logging' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xebf22921'/>
+      <elf-symbol name='__tracepoint_android_vh_try_to_freeze_todo_unfrozen' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x420e27e1'/>
+      <elf-symbol name='__tracepoint_android_vh_try_to_unmap_one' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1ddd7db7'/>
+      <elf-symbol name='__tracepoint_android_vh_tune_inactive_ratio' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x70464427'/>
+      <elf-symbol name='__tracepoint_android_vh_tune_mmap_readaround' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc42ea17f'/>
+      <elf-symbol name='__tracepoint_android_vh_tune_scan_type' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x45da6384'/>
+      <elf-symbol name='__tracepoint_android_vh_tune_swappiness' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x88fcdb6c'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_check_int_errors' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb5efc415'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_clock_scaling' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7310f377'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_compl_command' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e94a500'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_fill_prdt' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x248c91f6'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_mcq_abort' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x591f8398'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_mcq_clear_cmd' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae386742'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_mcq_clear_pending' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49c8346f'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_mcq_config' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x455e3645'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_mcq_get_outstanding_reqs' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcce91ff3'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_mcq_handler' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbbc9c666'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_mcq_has_oustanding_reqs' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2cca4d5'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_mcq_hba_capabilities' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x303d6bbb'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_mcq_make_hba_operational' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84065b3b'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_mcq_map_tag' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbff190c5'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_mcq_max_tag' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8fd350'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_mcq_print_trs' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbff6f1d9'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_mcq_send_command' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ee01501'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_mcq_set_sqid' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4b22c252'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_prepare_command' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x76860bf5'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_send_command' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x847d889'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_send_tm_command' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7dd2b334'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_send_uic_command' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa319f0c8'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_update_sdev' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b2613e0'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_update_sysfs' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x91d4e8dc'/>
+      <elf-symbol name='__tracepoint_android_vh_ufs_use_mcq_hooks' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4b974dd'/>
+      <elf-symbol name='__tracepoint_android_vh_unreserve_highatomic_bypass' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe53f0aff'/>
+      <elf-symbol name='__tracepoint_android_vh_update_page_mapcount' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf481017'/>
+      <elf-symbol name='__tracepoint_android_vh_update_topology_flags_workfn' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb3f82f71'/>
+      <elf-symbol name='__tracepoint_android_vh_usb_new_device_added' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe59e3f8'/>
+      <elf-symbol name='__tracepoint_android_vh_use_cma_first_check' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8ac68978'/>
+      <elf-symbol name='__tracepoint_android_vh_vmpressure' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8f8ac23c'/>
+      <elf-symbol name='__tracepoint_android_vh_watchdog_timer_softlockup' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe631102'/>
+      <elf-symbol name='__tracepoint_android_vh_wq_lockup_pool' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4fd35a54'/>
+      <elf-symbol name='__tracepoint_binder_transaction_received' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xab619a41'/>
+      <elf-symbol name='__tracepoint_binder_txn_latency_free' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf052295c'/>
+      <elf-symbol name='__tracepoint_block_bio_complete' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa65f3c8c'/>
+      <elf-symbol name='__tracepoint_block_bio_queue' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa13ed1a6'/>
+      <elf-symbol name='__tracepoint_block_bio_remap' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae64f1dd'/>
+      <elf-symbol name='__tracepoint_block_getrq' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfc12d508'/>
+      <elf-symbol name='__tracepoint_block_rq_complete' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbb319d4d'/>
+      <elf-symbol name='__tracepoint_block_rq_insert' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf4a00349'/>
+      <elf-symbol name='__tracepoint_block_rq_issue' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x960f8928'/>
+      <elf-symbol name='__tracepoint_block_rq_merge' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4520b967'/>
+      <elf-symbol name='__tracepoint_block_rq_requeue' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa964672d'/>
+      <elf-symbol name='__tracepoint_block_split' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x34fc4ad3'/>
+      <elf-symbol name='__tracepoint_clock_set_rate' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19552c17'/>
+      <elf-symbol name='__tracepoint_cpu_frequency' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9093f5b'/>
+      <elf-symbol name='__tracepoint_cpu_frequency_limits' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe279d62c'/>
+      <elf-symbol name='__tracepoint_cpu_idle' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x774f16ef'/>
+      <elf-symbol name='__tracepoint_device_pm_callback_end' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x52195345'/>
+      <elf-symbol name='__tracepoint_device_pm_callback_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe9b1039b'/>
+      <elf-symbol name='__tracepoint_dma_fence_emit' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc5a3367a'/>
+      <elf-symbol name='__tracepoint_dwc3_complete_trb' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33556798'/>
+      <elf-symbol name='__tracepoint_dwc3_ctrl_req' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef2be621'/>
+      <elf-symbol name='__tracepoint_dwc3_ep_queue' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d6ef4ee'/>
+      <elf-symbol name='__tracepoint_dwc3_event' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf144f29'/>
+      <elf-symbol name='__tracepoint_dwc3_readl' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6691a80'/>
+      <elf-symbol name='__tracepoint_dwc3_writel' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7bad1f23'/>
+      <elf-symbol name='__tracepoint_gpu_mem_total' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x16fa73fe'/>
+      <elf-symbol name='__tracepoint_hrtimer_expire_entry' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55a6686'/>
+      <elf-symbol name='__tracepoint_hrtimer_expire_exit' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x703a9377'/>
+      <elf-symbol name='__tracepoint_ipi_entry' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f573f55'/>
+      <elf-symbol name='__tracepoint_ipi_exit' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc8328e16'/>
+      <elf-symbol name='__tracepoint_ipi_raise' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe612228f'/>
+      <elf-symbol name='__tracepoint_irq_handler_entry' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3314215'/>
+      <elf-symbol name='__tracepoint_irq_handler_exit' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xadab1f32'/>
+      <elf-symbol name='__tracepoint_kfree_skb' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72edf918'/>
+      <elf-symbol name='__tracepoint_map' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x82bbf30b'/>
+      <elf-symbol name='__tracepoint_mm_vmscan_direct_reclaim_begin' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc8744'/>
+      <elf-symbol name='__tracepoint_mmap_lock_acquire_returned' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbe118c52'/>
+      <elf-symbol name='__tracepoint_mmap_lock_released' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5efdd68b'/>
+      <elf-symbol name='__tracepoint_mmap_lock_start_locking' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd628752'/>
+      <elf-symbol name='__tracepoint_net_dev_queue' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf304d20'/>
+      <elf-symbol name='__tracepoint_net_dev_xmit' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1d40474'/>
+      <elf-symbol name='__tracepoint_netif_receive_skb' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8ee83e85'/>
+      <elf-symbol name='__tracepoint_netif_rx' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8aa12be4'/>
+      <elf-symbol name='__tracepoint_pelt_cfs_tp' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x64f74abf'/>
+      <elf-symbol name='__tracepoint_pelt_dl_tp' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15c60a71'/>
+      <elf-symbol name='__tracepoint_pelt_irq_tp' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2200061c'/>
+      <elf-symbol name='__tracepoint_pelt_rt_tp' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90d937b4'/>
+      <elf-symbol name='__tracepoint_pelt_se_tp' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6055a23'/>
+      <elf-symbol name='__tracepoint_rwmmio_post_read' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19ebf04e'/>
+      <elf-symbol name='__tracepoint_rwmmio_read' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa035d76e'/>
+      <elf-symbol name='__tracepoint_rwmmio_write' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x95575c33'/>
+      <elf-symbol name='__tracepoint_sched_cpu_capacity_tp' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b610584'/>
+      <elf-symbol name='__tracepoint_sched_overutilized_tp' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xad25602f'/>
+      <elf-symbol name='__tracepoint_sched_stat_blocked' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc6130e1'/>
+      <elf-symbol name='__tracepoint_sched_stat_iowait' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3dcb44d9'/>
+      <elf-symbol name='__tracepoint_sched_stat_runtime' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe601e892'/>
+      <elf-symbol name='__tracepoint_sched_stat_sleep' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3492e73'/>
+      <elf-symbol name='__tracepoint_sched_stat_wait' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc977be89'/>
+      <elf-symbol name='__tracepoint_sched_switch' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4044ba28'/>
+      <elf-symbol name='__tracepoint_sched_update_nr_running_tp' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x365b45d1'/>
+      <elf-symbol name='__tracepoint_sched_util_est_cfs_tp' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c790d4a'/>
+      <elf-symbol name='__tracepoint_sched_util_est_se_tp' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a74e484'/>
+      <elf-symbol name='__tracepoint_sched_waking' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36772c03'/>
+      <elf-symbol name='__tracepoint_suspend_resume' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfede9222'/>
+      <elf-symbol name='__tracepoint_task_newtask' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6ba3f1e6'/>
+      <elf-symbol name='__tracepoint_task_rename' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x990f1219'/>
+      <elf-symbol name='__tracepoint_unmap' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c36cc85'/>
+      <elf-symbol name='__tracepoint_usb_gadget_connect' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b9cc4fa'/>
+      <elf-symbol name='__tracepoint_usb_gadget_disconnect' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x574ab5a6'/>
+      <elf-symbol name='__tracepoint_wbc_writepage' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e59f821'/>
+      <elf-symbol name='__tracepoint_workqueue_execute_end' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xecbfa711'/>
+      <elf-symbol name='__tracepoint_workqueue_execute_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8db61368'/>
+      <elf-symbol name='__tracepoint_xdp_exception' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8b7a698b'/>
+      <elf-symbol name='__tracepoint_xhci_urb_giveback' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x22847ba7'/>
+      <elf-symbol name='_ctype' size='256' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x11089ac7'/>
+      <elf-symbol name='_totalram_pages' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x944375db'/>
+      <elf-symbol name='amba_bustype' size='208' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd1f5ea4e'/>
+      <elf-symbol name='android_kmalloc_64_create' size='1' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10d71d02'/>
+      <elf-symbol name='arch_freq_scale' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x18e8c440'/>
+      <elf-symbol name='arch_timer_read_counter' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x75fb9062'/>
+      <elf-symbol name='arm64_const_caps_ready' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x14b89635'/>
+      <elf-symbol name='arm64_use_ng_mappings' size='1' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf56600a'/>
+      <elf-symbol name='arp_tbl' size='568' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7634f81e'/>
+      <elf-symbol name='balance_push_callback' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89cc791d'/>
+      <elf-symbol name='balloon_aops' size='208' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf5eb7218'/>
+      <elf-symbol name='blkcg_root' size='352' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2e12824'/>
+      <elf-symbol name='blockdev_superblock' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4cbb69c7'/>
+      <elf-symbol name='bpf_master_redirect_enabled_key' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x146cc88f'/>
+      <elf-symbol name='bpf_stats_enabled_key' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf84bd6ee'/>
+      <elf-symbol name='clk_divider_ops' size='216' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7aee7041'/>
+      <elf-symbol name='clk_divider_ro_ops' size='216' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbed62d95'/>
+      <elf-symbol name='clk_fixed_factor_ops' size='216' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e63a688'/>
+      <elf-symbol name='clk_fixed_rate_ops' size='216' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc46198d7'/>
+      <elf-symbol name='clk_fractional_divider_ops' size='216' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43d1b206'/>
+      <elf-symbol name='clk_gate_ops' size='216' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff304197'/>
+      <elf-symbol name='clk_mux_ops' size='216' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x905d1cf7'/>
+      <elf-symbol name='clk_mux_ro_ops' size='216' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4256940'/>
+      <elf-symbol name='console_drivers' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x13790d49'/>
+      <elf-symbol name='console_printk' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2592fc6c'/>
+      <elf-symbol name='console_set_on_cmdline' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2459bbcc'/>
+      <elf-symbol name='console_suspend_enabled' size='1' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x366307a'/>
+      <elf-symbol name='contig_page_data' size='7040' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee4103ff'/>
+      <elf-symbol name='cpu_all_bits' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd994ecee'/>
+      <elf-symbol name='cpu_bit_bitmap' size='520' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62ad2053'/>
+      <elf-symbol name='cpu_hwcap_keys' size='1056' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd14fef22'/>
+      <elf-symbol name='cpu_hwcaps' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x77c1b75a'/>
+      <elf-symbol name='cpu_irqtime' size='24' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54023c4e'/>
+      <elf-symbol name='cpu_number' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7a2af7b4'/>
+      <elf-symbol name='cpu_scale' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x14e8186'/>
+      <elf-symbol name='cpu_subsys' size='208' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x45a707a2'/>
+      <elf-symbol name='cpu_topology' size='1536' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7281ec27'/>
+      <elf-symbol name='cpufreq_freq_attr_scaling_available_freqs' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89a0601b'/>
+      <elf-symbol name='cpufreq_freq_attr_scaling_boost_freqs' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2de15ffe'/>
+      <elf-symbol name='cpufreq_generic_attr' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xee1fbed'/>
+      <elf-symbol name='cpufreq_update_util_data' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd63eac6a'/>
+      <elf-symbol name='cpuhp_tasks_frozen' size='1' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4507f4a8'/>
+      <elf-symbol name='crc_ccitt_table' size='512' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f03b6a9'/>
+      <elf-symbol name='crypto_aes_inv_sbox' size='256' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa84ce9e0'/>
+      <elf-symbol name='crypto_aes_sbox' size='256' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd9d952d1'/>
+      <elf-symbol name='crypto_alg_list' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x457594fa'/>
+      <elf-symbol name='crypto_alg_sem' size='64' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xedac5f42'/>
+      <elf-symbol name='debug_locks_silent' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x97de2b83'/>
+      <elf-symbol name='dev_base_lock' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5976e4f'/>
+      <elf-symbol name='dma_contiguous_default_area' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4fd950ed'/>
+      <elf-symbol name='dma_fence_array_ops' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe03a689d'/>
+      <elf-symbol name='dma_fence_chain_ops' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2293ac3'/>
+      <elf-symbol name='dotdot_name' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xafc08054'/>
+      <elf-symbol name='drm_gem_cma_vm_ops' size='152' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xec8e7b9e'/>
+      <elf-symbol name='dummy_irq_chip' size='288' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba76b545'/>
+      <elf-symbol name='fb_mode_option' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdaf4dfb3'/>
+      <elf-symbol name='flow_keys_basic_dissector' size='60' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa70fb761'/>
+      <elf-symbol name='font_vga_8x16' size='48' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa01d3df6'/>
+      <elf-symbol name='fpsimd_context_busy' size='1' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8946ea72'/>
+      <elf-symbol name='freezer_cgrp_subsys' size='240' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf59e9304'/>
+      <elf-symbol name='fs_bio_set' size='296' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79cf3bd0'/>
+      <elf-symbol name='fs_kobj' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x31034af0'/>
+      <elf-symbol name='generic_ro_fops' size='288' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e3e28e2'/>
+      <elf-symbol name='gic_nonsecure_priorities' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4b0a3f52'/>
+      <elf-symbol name='governor_sysfs_ops' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xebefc4f4'/>
+      <elf-symbol name='hex_asc' size='17' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7129e5f8'/>
+      <elf-symbol name='hex_asc_upper' size='17' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d73278e'/>
+      <elf-symbol name='hid_debug' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5495392'/>
+      <elf-symbol name='high_memory' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8a7d1c31'/>
+      <elf-symbol name='housekeeping_overridden' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x74e73871'/>
+      <elf-symbol name='hrtimer_resolution' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x406c4cb1'/>
+      <elf-symbol name='hypervisor_kobj' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdfd412ab'/>
+      <elf-symbol name='i2c_adapter_type' size='48' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3b9961f'/>
+      <elf-symbol name='i2c_bus_type' size='208' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfc005cfe'/>
+      <elf-symbol name='i2c_client_type' size='48' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e39ae4c'/>
+      <elf-symbol name='ignore_console_lock_warning' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x98e508ef'/>
+      <elf-symbol name='init_net' size='3904' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49f4e661'/>
+      <elf-symbol name='init_on_free' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6f9d58d'/>
+      <elf-symbol name='init_pid_ns' size='128' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7d87f6c'/>
+      <elf-symbol name='init_task' size='4608' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf60e2d8'/>
+      <elf-symbol name='init_user_ns' size='656' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3e5bcdca'/>
+      <elf-symbol name='init_uts_ns' size='432' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcccbdadf'/>
+      <elf-symbol name='io_cgrp_subsys_on_dfl_key' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7de6cc23'/>
+      <elf-symbol name='iomem_resource' size='96' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7da062f'/>
+      <elf-symbol name='ioport_resource' size='96' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6bbf1b3e'/>
+      <elf-symbol name='ipv6_stub' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4ec6265'/>
+      <elf-symbol name='irq_domain_simple_ops' size='80' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaafa593b'/>
+      <elf-symbol name='irq_generic_chip_ops' size='80' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7fb30f4a'/>
+      <elf-symbol name='irq_stat' size='64' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2391f725'/>
+      <elf-symbol name='irqchip_fwnode_ops' size='144' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5afccbaa'/>
+      <elf-symbol name='jiffies' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15ba50a6'/>
+      <elf-symbol name='jiffies_64' size='8' type='object-type' binding='global-binding' visibility='default-visibility' alias='jiffies' is-defined='yes' crc='0x55e77e8'/>
+      <elf-symbol name='kasan_flag_enabled' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6f6226c'/>
+      <elf-symbol name='kernel_cpustat' size='80' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb58aeaab'/>
+      <elf-symbol name='kernel_kobj' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x38995cd2'/>
+      <elf-symbol name='kimage_vaddr' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb2ead97c'/>
+      <elf-symbol name='kimage_voffset' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4bbc1dd'/>
+      <elf-symbol name='kmalloc_caches' size='336' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea0fd5fe'/>
+      <elf-symbol name='kobj_sysfs_ops' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x74fcfb5a'/>
+      <elf-symbol name='ksoftirqd' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2f4363'/>
+      <elf-symbol name='kstat' size='48' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x38869d88'/>
+      <elf-symbol name='led_colors' size='80' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b198c77'/>
+      <elf-symbol name='loops_per_jiffy' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba497f13'/>
+      <elf-symbol name='mem_section' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3521253'/>
+      <elf-symbol name='memory_cgrp_subsys' size='240' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce3f44e8'/>
+      <elf-symbol name='memory_cgrp_subsys_enabled_key' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf352023f'/>
+      <elf-symbol name='memstart_addr' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9688de8b'/>
+      <elf-symbol name='names_cachep' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3096be16'/>
+      <elf-symbol name='nd_tbl' size='568' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x508008a2'/>
+      <elf-symbol name='net_namespace_list' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6d2fc5a6'/>
+      <elf-symbol name='net_ns_type_operations' size='48' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67a4d996'/>
+      <elf-symbol name='node_states' size='48' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7b7da04'/>
+      <elf-symbol name='noop_backing_dev_info' size='1328' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x38490f7c'/>
+      <elf-symbol name='nr_cpu_ids' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x17de3d5'/>
+      <elf-symbol name='nr_irqs' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcdca3691'/>
+      <elf-symbol name='nr_swap_pages' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0d3456d'/>
+      <elf-symbol name='of_fwnode_ops' size='144' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c9b341c'/>
+      <elf-symbol name='of_root' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc152cbb4'/>
+      <elf-symbol name='oops_in_progress' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1c3a01a'/>
+      <elf-symbol name='overflowgid' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7171121c'/>
+      <elf-symbol name='overflowuid' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8b618d08'/>
+      <elf-symbol name='panic_notifier_list' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ceeac9'/>
+      <elf-symbol name='panic_timeout' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1f8544b8'/>
+      <elf-symbol name='param_array_ops' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x42541bac'/>
+      <elf-symbol name='param_ops_bint' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaeb5af3a'/>
+      <elf-symbol name='param_ops_bool' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8070288'/>
+      <elf-symbol name='param_ops_byte' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbcc4fd13'/>
+      <elf-symbol name='param_ops_charp' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3fa768fd'/>
+      <elf-symbol name='param_ops_hexint' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb64192ef'/>
+      <elf-symbol name='param_ops_int' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65cafe5c'/>
+      <elf-symbol name='param_ops_long' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55010f15'/>
+      <elf-symbol name='param_ops_short' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8c2d851'/>
+      <elf-symbol name='param_ops_string' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x304dd2d6'/>
+      <elf-symbol name='param_ops_uint' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c75e4a8'/>
+      <elf-symbol name='param_ops_ullong' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x46a31125'/>
+      <elf-symbol name='param_ops_ulong' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xefc8860a'/>
+      <elf-symbol name='param_ops_ushort' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35701c2d'/>
+      <elf-symbol name='pci_bus_type' size='208' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ed7d00a'/>
+      <elf-symbol name='pcie_link_speed' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4b064f9'/>
+      <elf-symbol name='percpu_counter_batch' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5240ee7'/>
+      <elf-symbol name='phy_basic_features' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd17d2a22'/>
+      <elf-symbol name='phy_basic_t1_features' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbbf4dfbe'/>
+      <elf-symbol name='phy_gbit_features' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8effb505'/>
+      <elf-symbol name='phy_gbit_fibre_features' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb98bb315'/>
+      <elf-symbol name='platform_bus' size='912' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeacdfb3f'/>
+      <elf-symbol name='platform_bus_type' size='208' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x648ffea5'/>
+      <elf-symbol name='pm_power_off' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60a32ea9'/>
+      <elf-symbol name='pm_power_off_prepare' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1f0cb5bf'/>
+      <elf-symbol name='pm_suspend_global_flags' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x42635d55'/>
+      <elf-symbol name='pm_suspend_target_state' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x377bbcbc'/>
+      <elf-symbol name='pm_wq' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d59dd46'/>
+      <elf-symbol name='posix_acl_access_xattr_handler' size='48' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeed3d289'/>
+      <elf-symbol name='posix_acl_default_xattr_handler' size='48' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6eb58090'/>
+      <elf-symbol name='psi_system' size='760' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbc4a8c2f'/>
+      <elf-symbol name='raw_v4_hashinfo' size='2056' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb510c250'/>
+      <elf-symbol name='raw_v6_hashinfo' size='2056' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed7c7b91'/>
+      <elf-symbol name='rcu_cpu_stall_suppress' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb0747ed2'/>
+      <elf-symbol name='rcu_cpu_stall_suppress_at_boot' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x789c73d9'/>
+      <elf-symbol name='reboot_mode' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x429c3f9c'/>
+      <elf-symbol name='relay_file_operations' size='288' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf4a83683'/>
+      <elf-symbol name='reservation_ww_class' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc328a5c'/>
+      <elf-symbol name='rfs_needed' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xadd139d4'/>
+      <elf-symbol name='root_mem_cgroup' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2e46549f'/>
+      <elf-symbol name='root_task_group' size='512' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x31db44ea'/>
+      <elf-symbol name='rpmsg_class' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa9cdaecb'/>
+      <elf-symbol name='rps_cpu_mask' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56802ae8'/>
+      <elf-symbol name='rps_needed' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8761c87b'/>
+      <elf-symbol name='rps_sock_flow_table' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd62ecd49'/>
+      <elf-symbol name='runqueues' size='4544' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcfbfbb96'/>
+      <elf-symbol name='sched_feat_keys' size='400' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x573cdd6b'/>
+      <elf-symbol name='sched_feat_names' size='200' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36707baf'/>
+      <elf-symbol name='sched_uclamp_used' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56a37c5'/>
+      <elf-symbol name='scsi_command_size_tbl' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x334da4e'/>
+      <elf-symbol name='simple_dir_inode_operations' size='256' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf392a209'/>
+      <elf-symbol name='simple_dir_operations' size='288' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x880cfd6f'/>
+      <elf-symbol name='snd_ecards_limit' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3971b4df'/>
+      <elf-symbol name='snd_pcm_std_chmaps' size='96' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e1b99f'/>
+      <elf-symbol name='snd_soc_pm_ops' size='192' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x198825b6'/>
+      <elf-symbol name='softnet_data' size='704' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xddef9af3'/>
+      <elf-symbol name='spi_bus_type' size='208' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfcbbff48'/>
+      <elf-symbol name='sys_tz' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe5d4bb2'/>
+      <elf-symbol name='sysctl_sched_features' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84da85bb'/>
+      <elf-symbol name='sysctl_sched_latency' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xceee0cb7'/>
+      <elf-symbol name='sysctl_vals' size='12' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc8827b75'/>
+      <elf-symbol name='sysctl_vals_new' size='40' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb025849'/>
+      <elf-symbol name='system_freezable_power_efficient_wq' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd067d3c5'/>
+      <elf-symbol name='system_freezable_wq' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4034828'/>
+      <elf-symbol name='system_freezing_cnt' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7ab88a45'/>
+      <elf-symbol name='system_highpri_wq' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd91b127'/>
+      <elf-symbol name='system_long_wq' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x131db64a'/>
+      <elf-symbol name='system_power_efficient_wq' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47884890'/>
+      <elf-symbol name='system_state' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15af7f4'/>
+      <elf-symbol name='system_unbound_wq' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4c14632'/>
+      <elf-symbol name='system_wq' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d3385d3'/>
+      <elf-symbol name='tasklist_lock' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x673472ea'/>
+      <elf-symbol name='tcp_hashinfo' size='576' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x463219fb'/>
+      <elf-symbol name='thermal_pressure' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9d6f369'/>
+      <elf-symbol name='timer_unstable_counter_workaround' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8f5fb950'/>
+      <elf-symbol name='topology_update_done' size='1' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7b3d143'/>
+      <elf-symbol name='tracepoint_srcu' size='696' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbf6c7e43'/>
+      <elf-symbol name='ttm_glob' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4772c83d'/>
+      <elf-symbol name='tty_std_termios' size='44' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67b27ec1'/>
+      <elf-symbol name='udp_table' size='24' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x95a67b07'/>
+      <elf-symbol name='usb_bus_idr' size='24' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x790be0b9'/>
+      <elf-symbol name='usb_bus_idr_lock' size='48' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x255161f6'/>
+      <elf-symbol name='usb_debug_root' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0f3ee6a'/>
+      <elf-symbol name='usb_hcd_pci_pm_ops' size='192' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47c15291'/>
+      <elf-symbol name='usb_hcds_loaded' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc17515d7'/>
+      <elf-symbol name='usb_hid_driver' size='96' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x911b00a6'/>
+      <elf-symbol name='uuid_null' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6dcf857f'/>
+      <elf-symbol name='v4l2_subdev_call_wrappers' size='64' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5968a6d1'/>
+      <elf-symbol name='vabits_actual' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc56a41e6'/>
+      <elf-symbol name='vb2_common_vm_ops' size='152' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb74b3c21'/>
+      <elf-symbol name='vb2_dma_contig_memops' size='120' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57693bed'/>
+      <elf-symbol name='vb2_dma_sg_memops' size='120' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9542e6ef'/>
+      <elf-symbol name='vb2_vmalloc_memops' size='120' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49fdc732'/>
+      <elf-symbol name='vm_event_states' size='720' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85d767b0'/>
+      <elf-symbol name='vm_node_stat' size='320' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf1a72df'/>
+      <elf-symbol name='vm_zone_stat' size='88' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba0676e2'/>
+      <elf-symbol name='xt_tee_enabled' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3fcc511'/>
+      <elf-symbol name='zero_pfn' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85efc7e0'/>
+    </elf-variable-symbols>
+    <abi-instr address-size='64' language='LANG_C89' path='various'>
+      <class-decl name='mmpin' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/skbuff.h' line='528' column='1' id='0009269e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='user' type-id='273a7d34' visibility='default' filepath='include/linux/skbuff.h' line='529' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_pg' type-id='f0981eeb' visibility='default' filepath='include/linux/skbuff.h' line='530' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b5b8ebc4' size-in-bits='64' id='001b67aa'/>
+      <class-decl name='gro_cell' size-in-bits='3648' is-struct='yes' visibility='default' filepath='net/core/gro_cells.c' line='7' column='1' id='001ff55a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='napi_skbs' type-id='e61c85d0' visibility='default' filepath='net/core/gro_cells.c' line='8' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='napi' type-id='291e3bb5' visibility='default' filepath='net/core/gro_cells.c' line='9' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='static_key' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/jump_label.h' line='87' column='1' id='00205383'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='enabled' type-id='49178f86' visibility='default' filepath='include/linux/jump_label.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab636' visibility='default' filepath='include/linux/jump_label.h' line='102' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fc8b497c' size-in-bits='64' id='0023218e'/>
+      <typedef-decl name='genpool_algo_t' type-id='f54ae583' filepath='include/linux/genalloc.h' line='48' column='1' id='00278b91'/>
+      <array-type-def dimensions='1' type-id='86d70780' size-in-bits='256' id='00286dfe'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='002a7109'>
+        <parameter type-id='404b1300'/>
+        <parameter type-id='7292109c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <type-decl name='unsigned char' size-in-bits='8' id='002ac4a6'/>
+      <pointer-type-def type-id='1c8cc2fd' size-in-bits='64' id='003642fd'/>
+      <array-type-def dimensions='1' type-id='a305d6c9' size-in-bits='4608' id='0036534d'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <enum-decl name='i3c_bus_mode' filepath='include/linux/i3c/master.h' line='265' column='1' id='004389a6'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='I3C_BUS_MODE_PURE' value='0'/>
+        <enumerator name='I3C_BUS_MODE_MIXED_FAST' value='1'/>
+        <enumerator name='I3C_BUS_MODE_MIXED_LIMITED' value='2'/>
+        <enumerator name='I3C_BUS_MODE_MIXED_SLOW' value='3'/>
+      </enum-decl>
+      <class-decl name='ieee80211_sta_he_cap' size-in-bits='440' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='364' column='1' id='0056bfcb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='has_he' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='365' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='he_cap_elem' type-id='4dffc3f2' visibility='default' filepath='include/net/cfg80211.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='he_mcs_nss_supp' type-id='b1f4f4c7' visibility='default' filepath='include/net/cfg80211.h' line='367' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='240'>
+          <var-decl name='ppe_thres' type-id='5030b3c3' visibility='default' filepath='include/net/cfg80211.h' line='368' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='55059246' size-in-bits='64' id='0067e34c'/>
+      <function-type size-in-bits='64' id='006d72ff'>
+        <parameter type-id='f22e4524'/>
+        <parameter type-id='e90f4666'/>
+        <parameter type-id='7c11f655'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a2f068ed' size-in-bits='64' id='0081e2ad'/>
+      <class-decl name='xfrm_mark' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/xfrm.h' line='323' column='1' id='0084df72'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='v' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/xfrm.h' line='324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='m' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/xfrm.h' line='325' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='068d5e4f' size-in-bits='64' id='0084e9cb'/>
+      <function-type size-in-bits='64' id='0086a11a'>
+        <parameter type-id='29af9a71'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='snd_compr_stream' size-in-bits='1920' is-struct='yes' visibility='default' filepath='include/sound/compress_driver.h' line='77' column='1' id='009f0185'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/sound/compress_driver.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ops' type-id='06ca680b' visibility='default' filepath='include/sound/compress_driver.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='runtime' type-id='eb83bf5b' visibility='default' filepath='include/sound/compress_driver.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='device' type-id='dc1e097e' visibility='default' filepath='include/sound/compress_driver.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='error_work' type-id='5ad6e0ef' visibility='default' filepath='include/sound/compress_driver.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='direction' type-id='0e72fd0d' visibility='default' filepath='include/sound/compress_driver.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='metadata_set' type-id='b50a4934' visibility='default' filepath='include/sound/compress_driver.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1384'>
+          <var-decl name='next_track' type-id='b50a4934' visibility='default' filepath='include/sound/compress_driver.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1392'>
+          <var-decl name='partial_drain' type-id='b50a4934' visibility='default' filepath='include/sound/compress_driver.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1400'>
+          <var-decl name='pause_in_draining' type-id='b50a4934' visibility='default' filepath='include/sound/compress_driver.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/compress_driver.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='dma_buffer' type-id='c5addfb4' visibility='default' filepath='include/sound/compress_driver.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/compress_driver.h' line='91' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='00a1b58f'>
+        <parameter type-id='4a3a4f46'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='00a425f2'>
+        <parameter type-id='dd575c43'/>
+        <parameter type-id='3b590e48'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='982f66c8' size-in-bits='64' id='00aa6a0e'/>
+      <pointer-type-def type-id='efb9ba06' size-in-bits='64' id='00abfc0f'/>
+      <array-type-def dimensions='1' type-id='002ac4a6' size-in-bits='1176' id='00bc0376'>
+        <subrange length='147' type-id='7ff19f0f' id='351fcdaf'/>
+      </array-type-def>
+      <pointer-type-def type-id='039b06ea' size-in-bits='64' id='00bc0f0c'/>
+      <function-type size-in-bits='64' id='00c03790'>
+        <parameter type-id='368ed2fb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4816a146' size-in-bits='64' id='00c4cbac'/>
+      <pointer-type-def type-id='fe007c02' size-in-bits='64' id='00c7b870'/>
+      <pointer-type-def type-id='0336f8f2' size-in-bits='64' id='00cf0c80'/>
+      <pointer-type-def type-id='bd8642d8' size-in-bits='64' id='00cfc612'/>
+      <pointer-type-def type-id='160ddb63' size-in-bits='64' id='00d033eb'/>
+      <qualified-type-def type-id='a94a041a' const='yes' id='00d2c7e1'/>
+      <pointer-type-def type-id='78964cd8' size-in-bits='64' id='00dcae0e'/>
+      <qualified-type-def type-id='a8966aec' const='yes' id='00dd00af'/>
+      <pointer-type-def type-id='ed626d0d' size-in-bits='64' id='00e2a7ce'/>
+      <class-decl name='snd_soc_pcm_runtime' size-in-bits='14336' is-struct='yes' visibility='default' filepath='include/sound/soc.h' line='1049' column='1' id='00e3a6d4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/sound/soc.h' line='1050' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='card' type-id='3059cd0b' visibility='default' filepath='include/sound/soc.h' line='1051' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dai_link' type-id='af5a73b0' visibility='default' filepath='include/sound/soc.h' line='1052' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ops' type-id='73803d48' visibility='default' filepath='include/sound/soc.h' line='1053' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='params_select' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='1055' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='dpcm' type-id='39f07796' visibility='default' filepath='include/sound/soc.h' line='1058' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12096'>
+          <var-decl name='pmdown_time' type-id='bd54fe1a' visibility='default' filepath='include/sound/soc.h' line='1060' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12160'>
+          <var-decl name='pcm' type-id='4c9f335b' visibility='default' filepath='include/sound/soc.h' line='1063' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12224'>
+          <var-decl name='compr' type-id='dc1e097e' visibility='default' filepath='include/sound/soc.h' line='1064' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12288'>
+          <var-decl name='dais' type-id='8f157e69' visibility='default' filepath='include/sound/soc.h' line='1073' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12352'>
+          <var-decl name='num_codecs' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='1074' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12384'>
+          <var-decl name='num_cpus' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='1075' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12416'>
+          <var-decl name='playback_widget' type-id='810606ec' visibility='default' filepath='include/sound/soc.h' line='1077' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12480'>
+          <var-decl name='capture_widget' type-id='810606ec' visibility='default' filepath='include/sound/soc.h' line='1078' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12544'>
+          <var-decl name='delayed_work' type-id='5ad6e0ef' visibility='default' filepath='include/sound/soc.h' line='1080' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13632'>
+          <var-decl name='close_delayed_work_func' type-id='d3d046f7' visibility='default' filepath='include/sound/soc.h' line='1081' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13696'>
+          <var-decl name='debugfs_dpcm_root' type-id='27675065' visibility='default' filepath='include/sound/soc.h' line='1083' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13760'>
+          <var-decl name='num' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='1086' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13824'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/sound/soc.h' line='1087' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13952'>
+          <var-decl name='mark_startup' type-id='06b2cd14' visibility='default' filepath='include/sound/soc.h' line='1090' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14016'>
+          <var-decl name='mark_hw_params' type-id='06b2cd14' visibility='default' filepath='include/sound/soc.h' line='1091' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14080'>
+          <var-decl name='mark_trigger' type-id='06b2cd14' visibility='default' filepath='include/sound/soc.h' line='1092' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14144'>
+          <var-decl name='mark_compr_startup' type-id='b7c1d7d5' visibility='default' filepath='include/sound/soc.h' line='1093' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14208'>
+          <var-decl name='pop_wait' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='1096' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14209'>
+          <var-decl name='fe_compr' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='1097' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14240'>
+          <var-decl name='num_components' type-id='95e97e5e' visibility='default' filepath='include/sound/soc.h' line='1099' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14272'>
+          <var-decl name='' type-id='ac5ab6ad' visibility='default' filepath='include/sound/soc.h' line='1111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14336'>
+          <var-decl name='components' type-id='d936a132' visibility='default' filepath='include/sound/soc.h' line='1113' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8cd967bc' size-in-bits='64' id='00e8fe5a'/>
+      <pointer-type-def type-id='4dbb5689' size-in-bits='64' id='00e96299'/>
+      <class-decl name='simple_xattrs' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/xattr.h' line='82' column='1' id='00ed5110'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='head' type-id='72f469ec' visibility='default' filepath='include/linux/xattr.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/xattr.h' line='84' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9e4acc7a' size-in-bits='64' id='00ee50b8'/>
+      <class-decl name='iommu_fault_event' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/iommu.h' line='357' column='1' id='00f37356'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fault' type-id='1f190221' visibility='default' filepath='include/linux/iommu.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/iommu.h' line='359' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='faf4b969' const='yes' id='010b0459'/>
+      <array-type-def dimensions='1' type-id='56798c81' size-in-bits='2304' id='01115b96'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <class-decl name='semaphore' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/semaphore.h' line='15' column='1' id='011244e5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/semaphore.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='count' type-id='f0981eeb' visibility='default' filepath='include/linux/semaphore.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wait_list' type-id='72f469ec' visibility='default' filepath='include/linux/semaphore.h' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='30913582' size-in-bits='64' id='0112fb3c'/>
+      <pointer-type-def type-id='46c85660' size-in-bits='64' id='011c3e5a'/>
+      <class-decl name='param_attribute' size-in-bits='512' is-struct='yes' visibility='default' filepath='kernel/params.c' line='541' column='1' id='0120aad5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mattr' type-id='8f90cd2a' visibility='default' filepath='kernel/params.c' line='543' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='param' type-id='edcbd723' visibility='default' filepath='kernel/params.c' line='544' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e1d380a7' size-in-bits='64' id='0123907b'/>
+      <function-type size-in-bits='64' id='0124a2d0'>
+        <parameter type-id='b88dd945'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4688baa5' size-in-bits='64' id='01307915'/>
+      <pointer-type-def type-id='cf9ec29d' size-in-bits='64' id='0131eb61'/>
+      <pointer-type-def type-id='971452b1' size-in-bits='64' id='013a716d'/>
+      <enum-decl name='mmc_issue_type' filepath='drivers/mmc/core/queue.h' line='18' column='1' id='013ef24c'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='MMC_ISSUE_SYNC' value='0'/>
+        <enumerator name='MMC_ISSUE_DCMD' value='1'/>
+        <enumerator name='MMC_ISSUE_ASYNC' value='2'/>
+        <enumerator name='MMC_ISSUE_MAX' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='38a09a00' size-in-bits='64' id='01443742'/>
+      <pointer-type-def type-id='6c6f1c36' size-in-bits='64' id='01481038'/>
+      <class-decl name='v4l2_audio' size-in-bits='416' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2001' column='1' id='014e0a24'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2002' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='name' type-id='7e67d89d' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2003' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='capability' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2004' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mode' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2005' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='reserved' type-id='839e8989' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2006' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='01d363ff' size-in-bits='64' id='014f3c9b'/>
+      <union-decl name='ehci_shadow' size-in-bits='64' visibility='default' filepath='drivers/usb/host/ehci.h' line='360' column='1' id='014fe25e'>
+        <data-member access='public'>
+          <var-decl name='qh' type-id='8b139582' visibility='default' filepath='drivers/usb/host/ehci.h' line='361' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='itd' type-id='eff2bbc2' visibility='default' filepath='drivers/usb/host/ehci.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='sitd' type-id='bae724d1' visibility='default' filepath='drivers/usb/host/ehci.h' line='363' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='fstn' type-id='7d78884e' visibility='default' filepath='drivers/usb/host/ehci.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='hw_next' type-id='3e77f659' visibility='default' filepath='drivers/usb/host/ehci.h' line='365' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ptr' type-id='eaa32e2f' visibility='default' filepath='drivers/usb/host/ehci.h' line='366' column='1'/>
+        </data-member>
+      </union-decl>
+      <function-type size-in-bits='64' id='0156f9e6'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='a99cde64'/>
+        <parameter type-id='b8b37be2'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='snd_pcm_hw_rule' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/sound/pcm.h' line='231' column='1' id='015799ac'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cond' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='var' type-id='95e97e5e' visibility='default' filepath='include/sound/pcm.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='deps' type-id='e41e1db9' visibility='default' filepath='include/sound/pcm.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='func' type-id='58d3b2a5' visibility='default' filepath='include/sound/pcm.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='private' type-id='eaa32e2f' visibility='default' filepath='include/sound/pcm.h' line='237' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d285082e' size-in-bits='64' id='015a0234'/>
+      <pointer-type-def type-id='e222a326' size-in-bits='64' id='016811bc'/>
+      <function-type size-in-bits='64' id='016b3662'>
+        <parameter type-id='c50361c5'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='fd7e7994' size-in-bits='64' id='016d41e2'/>
+      <function-type size-in-bits='64' id='0174792d'>
+        <parameter type-id='1b0e1d00'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='135a5d4b' size-in-bits='64' id='0177caaf'/>
+      <class-decl name='rtc_timer' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/rtc.h' line='76' column='1' id='01786452'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='fe3acb42' visibility='default' filepath='include/linux/rtc.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='period' type-id='fbc017ef' visibility='default' filepath='include/linux/rtc.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='func' type-id='85dc754e' visibility='default' filepath='include/linux/rtc.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='rtc' type-id='5992ae83' visibility='default' filepath='include/linux/rtc.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='enabled' type-id='95e97e5e' visibility='default' filepath='include/linux/rtc.h' line='81' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='0181b08d'>
+        <parameter type-id='d1feb554'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='dbc7d793' const='yes' id='01863b98'/>
+      <enum-decl name='irqchip_irq_state' filepath='include/linux/interrupt.h' line='464' column='1' id='0187da1b'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='IRQCHIP_STATE_PENDING' value='0'/>
+        <enumerator name='IRQCHIP_STATE_ACTIVE' value='1'/>
+        <enumerator name='IRQCHIP_STATE_MASKED' value='2'/>
+        <enumerator name='IRQCHIP_STATE_LINE_LEVEL' value='3'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='36d13127' size-in-bits='infinite' id='018b53c3'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <typedef-decl name='U16' type-id='149c6638' filepath='lib/zstd/mem.h' line='36' column='1' id='018f3e38'/>
+      <class-decl name='rwsem_waiter' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/rwsem.h' line='77' column='1' id='01985c44'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/rwsem.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='task' type-id='f23e2572' visibility='default' filepath='include/linux/rwsem.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='type' type-id='be969d8e' visibility='default' filepath='include/linux/rwsem.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='timeout' type-id='7359adad' visibility='default' filepath='include/linux/rwsem.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='last_rowner' type-id='7359adad' visibility='default' filepath='include/linux/rwsem.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='handoff_set' type-id='b50a4934' visibility='default' filepath='include/linux/rwsem.h' line='85' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='019f02aa'>
+        <parameter type-id='c0ced320'/>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='snd_usb_iface_ref' size-in-bits='192' is-struct='yes' visibility='default' filepath='sound/usb/endpoint.c' line='33' column='1' id='019f1a7a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='iface' type-id='002ac4a6' visibility='default' filepath='sound/usb/endpoint.c' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='need_setup' type-id='b50a4934' visibility='default' filepath='sound/usb/endpoint.c' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='opened' type-id='95e97e5e' visibility='default' filepath='sound/usb/endpoint.c' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='sound/usb/endpoint.c' line='37' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3f4ad3b4' size-in-bits='64' id='01b27472'/>
+      <pointer-type-def type-id='6d8d26fb' size-in-bits='64' id='01b378ab'/>
+      <pointer-type-def type-id='5547c428' size-in-bits='64' id='01b4845e'/>
+      <pointer-type-def type-id='fdbf7a0f' size-in-bits='64' id='01b75fec'/>
+      <function-type size-in-bits='64' id='01bd77f3'>
+        <parameter type-id='ecb0ce18'/>
+        <parameter type-id='ecb0ce18'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='nf_logger' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_log.h' line='48' column='1' id='01c546da'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/net/netfilter/nf_log.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='type' type-id='26066116' visibility='default' filepath='include/net/netfilter/nf_log.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='logfn' type-id='ac6d3ca6' visibility='default' filepath='include/net/netfilter/nf_log.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='me' type-id='2730d015' visibility='default' filepath='include/net/netfilter/nf_log.h' line='52' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='71f4dca2' size-in-bits='64' id='01c78f24'/>
+      <pointer-type-def type-id='27ebfa24' size-in-bits='64' id='01d310c2'/>
+      <function-type size-in-bits='64' id='01d363ff'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='d504f73d'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7d41fdf4' size-in-bits='64' id='01d543be'/>
+      <pointer-type-def type-id='9babdafa' size-in-bits='64' id='01db3d7c'/>
+      <pointer-type-def type-id='9a6d2bc2' size-in-bits='64' id='01dc1e38'/>
+      <class-decl name='pseudo_fs_context' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/pseudo_fs.h' line='6' column='1' id='01ded187'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='f7c6dcac' visibility='default' filepath='include/linux/pseudo_fs.h' line='7' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='xattr' type-id='cb49d4b8' visibility='default' filepath='include/linux/pseudo_fs.h' line='8' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dops' type-id='1ee57353' visibility='default' filepath='include/linux/pseudo_fs.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='magic' type-id='7359adad' visibility='default' filepath='include/linux/pseudo_fs.h' line='10' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0c2997ce' size-in-bits='64' id='01df4674'/>
+      <qualified-type-def type-id='d36f034a' const='yes' id='01e0721b'/>
+      <function-type size-in-bits='64' id='01e0cc00'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='55c7e5c2'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='01e1f26e'>
+        <parameter type-id='f22e4524'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ifla_vf_stats' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/if_link.h' line='9' column='1' id='01e6a0f2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rx_packets' type-id='d3130597' visibility='default' filepath='include/linux/if_link.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tx_packets' type-id='d3130597' visibility='default' filepath='include/linux/if_link.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rx_bytes' type-id='d3130597' visibility='default' filepath='include/linux/if_link.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tx_bytes' type-id='d3130597' visibility='default' filepath='include/linux/if_link.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='broadcast' type-id='d3130597' visibility='default' filepath='include/linux/if_link.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='multicast' type-id='d3130597' visibility='default' filepath='include/linux/if_link.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='rx_dropped' type-id='d3130597' visibility='default' filepath='include/linux/if_link.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='tx_dropped' type-id='d3130597' visibility='default' filepath='include/linux/if_link.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_soc_dobj' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/sound/soc-topology.h' line='61' column='1' id='01edcafc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='5210afb2' visibility='default' filepath='include/sound/soc-topology.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-topology.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/sound/soc-topology.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ops' type-id='76e6e22f' visibility='default' filepath='include/sound/soc-topology.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='' type-id='ac5ab6ac' visibility='default' filepath='include/sound/soc-topology.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='private' type-id='eaa32e2f' visibility='default' filepath='include/sound/soc-topology.h' line='70' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2ed90d9a' size-in-bits='64' id='01f1d7bc'/>
+      <function-type size-in-bits='64' id='01f5de5c'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='448' id='01f8d131'>
+        <subrange length='56' type-id='7ff19f0f' id='f8137894'/>
+      </array-type-def>
+      <pointer-type-def type-id='ffad938a' size-in-bits='64' id='01ffd89c'/>
+      <pointer-type-def type-id='400ed05a' size-in-bits='64' id='0200a298'/>
+      <class-decl name='bpf_xdp_link' size-in-bits='768' is-struct='yes' visibility='default' filepath='net/core/dev.c' line='9291' column='1' id='0200d321'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='link' type-id='e07e9784' visibility='default' filepath='net/core/dev.c' line='9292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='net/core/dev.c' line='9293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='net/core/dev.c' line='9294' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='64' id='0209ab38'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <typedef-decl name='nvmem_reg_write_t' type-id='3ba5153c' filepath='include/linux/nvmem-provider.h' line='20' column='1' id='020bf95f'/>
+      <function-type size-in-bits='64' id='02138eb3'>
+        <parameter type-id='a2bff676'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <pointer-type-def type-id='dbd58f6e' size-in-bits='64' id='02162584'/>
+      <qualified-type-def type-id='6eadcbe0' const='yes' id='02233ed7'/>
+      <class-decl name='qstr' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/dcache.h' line='49' column='1' id='02244303'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab630' visibility='default' filepath='include/linux/dcache.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='354f7eb9' visibility='default' filepath='include/linux/dcache.h' line='56' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pci_dynids' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/pci.h' line='797' column='1' id='022719b7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/pci.h' line='798' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/pci.h' line='799' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c5ccfee8' size-in-bits='64' id='023b769e'/>
+      <function-type size-in-bits='64' id='024a8f8b'>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='2ae08426'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='pid_namespace' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/pid_namespace.h' line='19' column='1' id='0252e252'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='idr' type-id='37ce495e' visibility='default' filepath='include/linux/pid_namespace.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/pid_namespace.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='pid_allocated' type-id='f0981eeb' visibility='default' filepath='include/linux/pid_namespace.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='child_reaper' type-id='f23e2572' visibility='default' filepath='include/linux/pid_namespace.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pid_cachep' type-id='f3b4aca8' visibility='default' filepath='include/linux/pid_namespace.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='level' type-id='f0981eeb' visibility='default' filepath='include/linux/pid_namespace.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='parent' type-id='b816e1d0' visibility='default' filepath='include/linux/pid_namespace.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='user_ns' type-id='c0ced320' visibility='default' filepath='include/linux/pid_namespace.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='ucounts' type-id='b1d4934a' visibility='default' filepath='include/linux/pid_namespace.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='reboot' type-id='95e97e5e' visibility='default' filepath='include/linux/pid_namespace.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='ns' type-id='99f367f2' visibility='default' filepath='include/linux/pid_namespace.h' line='33' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7dc7ab8f' size-in-bits='64' id='02557527'/>
+      <array-type-def dimensions='1' type-id='1dc6a898' size-in-bits='64' id='02580c2f'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='025c78c3'>
+        <parameter type-id='b47b0d41'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='2' type-id='d315442e' size-in-bits='768' id='025daa6d'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+        <subrange length='24' type-id='7ff19f0f' id='fdd3342b'/>
+      </array-type-def>
+      <pointer-type-def type-id='617b50f4' size-in-bits='64' id='025f347e'/>
+      <pointer-type-def type-id='9bbd94a4' size-in-bits='64' id='02663b56'/>
+      <class-decl name='mbox_controller' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/linux/mailbox_controller.h' line='74' column='1' id='026a169a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/mailbox_controller.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ops' type-id='962b0f84' visibility='default' filepath='include/linux/mailbox_controller.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='chans' type-id='339c87e8' visibility='default' filepath='include/linux/mailbox_controller.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='num_chans' type-id='95e97e5e' visibility='default' filepath='include/linux/mailbox_controller.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='txdone_irq' type-id='b50a4934' visibility='default' filepath='include/linux/mailbox_controller.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='232'>
+          <var-decl name='txdone_poll' type-id='b50a4934' visibility='default' filepath='include/linux/mailbox_controller.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='txpoll_period' type-id='f0981eeb' visibility='default' filepath='include/linux/mailbox_controller.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='of_xlate' type-id='8bdb16d5' visibility='default' filepath='include/linux/mailbox_controller.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='poll_hrt' type-id='b6993efc' visibility='default' filepath='include/linux/mailbox_controller.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/mailbox_controller.h' line='86' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_subdev_ops' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='787' column='1' id='026dac7c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='core' type-id='5317b3cd' visibility='default' filepath='include/media/v4l2-subdev.h' line='788' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tuner' type-id='12d4fd76' visibility='default' filepath='include/media/v4l2-subdev.h' line='789' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='audio' type-id='2d92dd30' visibility='default' filepath='include/media/v4l2-subdev.h' line='790' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='video' type-id='5a7c2847' visibility='default' filepath='include/media/v4l2-subdev.h' line='791' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='vbi' type-id='cc679d2b' visibility='default' filepath='include/media/v4l2-subdev.h' line='792' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ir' type-id='7bd796c9' visibility='default' filepath='include/media/v4l2-subdev.h' line='793' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='sensor' type-id='b2ac7a1e' visibility='default' filepath='include/media/v4l2-subdev.h' line='794' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pad' type-id='475ad931' visibility='default' filepath='include/media/v4l2-subdev.h' line='795' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='49f5fd4d' const='yes' id='02793b54'/>
+      <function-type size-in-bits='64' id='0286989c'>
+        <parameter type-id='328dda6e'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='c76694b7'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='17a13961' size-in-bits='64' id='02913b69'/>
+      <pointer-type-def type-id='b4bfe052' size-in-bits='64' id='0296b670'/>
+      <pointer-type-def type-id='bc6e6178' size-in-bits='64' id='02a757da'/>
+      <qualified-type-def type-id='a722d386' const='yes' id='02ac86a6'/>
+      <enum-decl name='dma_status' filepath='include/linux/dmaengine.h' line='38' column='1' id='02ac9d9d'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DMA_COMPLETE' value='0'/>
+        <enumerator name='DMA_IN_PROGRESS' value='1'/>
+        <enumerator name='DMA_PAUSED' value='2'/>
+        <enumerator name='DMA_ERROR' value='3'/>
+        <enumerator name='DMA_OUT_OF_ORDER' value='4'/>
+      </enum-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/projid.h' line='22' column='1' id='02ad2737' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='val' type-id='6ab42ed1' visibility='default' filepath='include/linux/projid.h' line='23' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d4f2184b' size-in-bits='64' id='02b2042b'/>
+      <class-decl name='uac_rtd_params' size-in-bits='832' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='37' column='1' id='02b25ec4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='uac' type-id='31a99d1f' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ep_enabled' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ss' type-id='06b2cd14' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hw_ptr' type-id='79a0948f' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rbuf' type-id='eaa32e2f' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='pitch' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='max_psize' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='reqs' type-id='ae581837' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='req_fback' type-id='1a494567' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='fb_ep_enabled' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='fu_id' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='snd_kctl_volume' type-id='7a5054b7' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='snd_kctl_mute' type-id='7a5054b7' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='volume_min' type-id='9b7e9486' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='720'>
+          <var-decl name='volume_max' type-id='9b7e9486' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='volume_res' type-id='9b7e9486' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='752'>
+          <var-decl name='volume' type-id='9b7e9486' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='mute' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='64' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='02b70d8e'>
+        <parameter type-id='18881289'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='b53e8dbb'/>
+        <parameter type-id='15d29710'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='ff35cfe1' size-in-bits='64' id='02b857a9'/>
+      <function-type size-in-bits='64' id='02bc074d'>
+        <parameter type-id='d5cbf711'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='82f1f156' size-in-bits='64' id='02bc4f68'/>
+      <qualified-type-def type-id='cd8ce92b' const='yes' id='02bf2a9a'/>
+      <pointer-type-def type-id='b5732d6f' size-in-bits='64' id='02c2e3f3'/>
+      <function-type size-in-bits='64' id='02c44ccf'>
+        <parameter type-id='1c936db9'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <pointer-type-def type-id='cfc17f8f' size-in-bits='64' id='02cea60b'/>
+      <class-decl name='bpf_run_ctx' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='1224' column='1' is-declaration-only='yes' id='02cfdfcf'/>
+      <pointer-type-def type-id='dcf7564a' size-in-bits='64' id='02d37f68'/>
+      <array-type-def dimensions='1' type-id='a21c4412' size-in-bits='16384' id='02d77f24'>
+        <subrange length='64' type-id='7ff19f0f' id='b10be967'/>
+      </array-type-def>
+      <pointer-type-def type-id='9a2d1cbc' size-in-bits='64' id='02da239e'/>
+      <pointer-type-def type-id='3ba81dd0' size-in-bits='64' id='02e48bc6'/>
+      <class-decl name='component' size-in-bits='448' is-struct='yes' visibility='default' filepath='drivers/base/component.c' line='70' column='1' id='02e89848'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='drivers/base/component.c' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='master' type-id='f623d45b' visibility='default' filepath='drivers/base/component.c' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bound' type-id='b50a4934' visibility='default' filepath='drivers/base/component.c' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ops' type-id='14f24806' visibility='default' filepath='drivers/base/component.c' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='subcomponent' type-id='95e97e5e' visibility='default' filepath='drivers/base/component.c' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/base/component.c' line='77' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='02e8b0a1'>
+        <parameter type-id='a47d3467'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9196037e' size-in-bits='64' id='02e9b998'/>
+      <function-type size-in-bits='64' id='02ee425a'>
+        <parameter type-id='7837cd88'/>
+        <return type-id='80f4b756'/>
+      </function-type>
+      <pointer-type-def type-id='02bf2a9a' size-in-bits='64' id='02f03310'/>
+      <pointer-type-def type-id='a25ce1be' size-in-bits='64' id='02f11ed4'/>
+      <function-type size-in-bits='64' id='02f1c4a9'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='810606ec'/>
+        <parameter type-id='32ca7384'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='19c2251e' size-in-bits='480' id='02f7309f'>
+        <subrange length='15' type-id='7ff19f0f' id='8484ba73'/>
+      </array-type-def>
+      <pointer-type-def type-id='2bdce7cd' size-in-bits='64' id='02f90a61'/>
+      <array-type-def dimensions='1' type-id='19c2251e' size-in-bits='512' id='02fdec64'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='0300abda'>
+        <parameter type-id='184ff936'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='ea2ebeac' size-in-bits='64' id='03054cfa'/>
+      <function-type size-in-bits='64' id='0309b80f'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='2bbc3c28'/>
+        <parameter type-id='67ab6f39'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e151255a' size-in-bits='64' id='030d0b18'/>
+      <enum-decl name='iommu_cap' filepath='include/linux/iommu.h' line='116' column='1' id='031224de'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='IOMMU_CAP_CACHE_COHERENCY' value='0'/>
+        <enumerator name='IOMMU_CAP_INTR_REMAP' value='1'/>
+        <enumerator name='IOMMU_CAP_NOEXEC' value='2'/>
+      </enum-decl>
+      <class-decl name='nameidata' size-in-bits='1792' is-struct='yes' visibility='default' filepath='fs/namei.c' line='563' column='1' id='0319fc05'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='path' type-id='b5382ece' visibility='default' filepath='fs/namei.c' line='564' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='last' type-id='02244303' visibility='default' filepath='fs/namei.c' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='root' type-id='b5382ece' visibility='default' filepath='fs/namei.c' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='inode' type-id='7e666abe' visibility='default' filepath='fs/namei.c' line='567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='fs/namei.c' line='568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='state' type-id='f0981eeb' visibility='default' filepath='fs/namei.c' line='568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='seq' type-id='f0981eeb' visibility='default' filepath='fs/namei.c' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='m_seq' type-id='f0981eeb' visibility='default' filepath='fs/namei.c' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='r_seq' type-id='f0981eeb' visibility='default' filepath='fs/namei.c' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='last_type' type-id='95e97e5e' visibility='default' filepath='fs/namei.c' line='570' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='depth' type-id='f0981eeb' visibility='default' filepath='fs/namei.c' line='571' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='total_link_count' type-id='95e97e5e' visibility='default' filepath='fs/namei.c' line='572' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='stack' type-id='8543fa2a' visibility='default' filepath='fs/namei.c' line='578' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='internal' type-id='04b7d390' visibility='default' filepath='fs/namei.c' line='578' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='name' type-id='e9d22a06' visibility='default' filepath='fs/namei.c' line='579' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='saved' type-id='26452515' visibility='default' filepath='fs/namei.c' line='580' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='root_seq' type-id='f0981eeb' visibility='default' filepath='fs/namei.c' line='581' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1696'>
+          <var-decl name='dfd' type-id='95e97e5e' visibility='default' filepath='fs/namei.c' line='582' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='dir_uid' type-id='d80b72e6' visibility='default' filepath='fs/namei.c' line='583' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1760'>
+          <var-decl name='dir_mode' type-id='2594b00f' visibility='default' filepath='fs/namei.c' line='584' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='031a4ff0'>
+        <parameter type-id='c249b570'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='dba58976' size-in-bits='64' id='031b4500'/>
+      <function-type size-in-bits='64' id='031e8b8d'>
+        <parameter type-id='7ac48c21'/>
+        <parameter type-id='ed31fbf8'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='c0ac60c2' size-in-bits='64' id='031fe454'/>
+      <pointer-type-def type-id='e9a8dd3e' size-in-bits='64' id='03237108'/>
+      <enum-decl name='clocksource_ids' filepath='include/linux/clocksource_ids.h' line='6' column='1' id='0325ee16'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='CSID_GENERIC' value='0'/>
+        <enumerator name='CSID_ARM_ARCH_COUNTER' value='1'/>
+        <enumerator name='CSID_MAX' value='2'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='03278979'>
+        <parameter type-id='71a75d5d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='crypto_tfm' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/crypto.h' line='635' column='1' id='0328c8b6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='crt_flags' type-id='19c2251e' visibility='default' filepath='include/linux/crypto.h' line='637' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='node' type-id='95e97e5e' visibility='default' filepath='include/linux/crypto.h' line='639' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='exit' type-id='3ba771a1' visibility='default' filepath='include/linux/crypto.h' line='641' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='__crt_alg' type-id='67f526b5' visibility='default' filepath='include/linux/crypto.h' line='643' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='__crt_ctx' type-id='baf98fd3' visibility='default' filepath='include/linux/crypto.h' line='645' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='09101d01' size-in-bits='64' id='032c0add'/>
+      <typedef-decl name='nf_hookfn' type-id='272e7e29' filepath='include/linux/netfilter.h' line='78' column='1' id='0331c4d6'/>
+      <function-type size-in-bits='64' id='0332edd2'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='033304d4'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='0c0b353f'/>
+        <parameter type-id='61d12d26'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f712e2b7' size-in-bits='64' id='03347643'/>
+      <class-decl name='netns_nexthop' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/net/netns/nexthop.h' line='11' column='1' id='03364088'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rb_root' type-id='dec44472' visibility='default' filepath='include/net/netns/nexthop.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='devhash' type-id='030d0b18' visibility='default' filepath='include/net/netns/nexthop.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='seq' type-id='f0981eeb' visibility='default' filepath='include/net/netns/nexthop.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='last_id_allocated' type-id='19c2251e' visibility='default' filepath='include/net/netns/nexthop.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='notifier_chain' type-id='708c2394' visibility='default' filepath='include/net/netns/nexthop.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pwm_chip' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/pwm.h' line='305' column='1' id='0336f8f2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/pwm.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ops' type-id='e26114df' visibility='default' filepath='include/linux/pwm.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='base' type-id='95e97e5e' visibility='default' filepath='include/linux/pwm.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='npwm' type-id='f0981eeb' visibility='default' filepath='include/linux/pwm.h' line='309' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='of_xlate' type-id='09a20593' visibility='default' filepath='include/linux/pwm.h' line='311' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='of_pwm_n_cells' type-id='f0981eeb' visibility='default' filepath='include/linux/pwm.h' line='313' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/pwm.h' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pwms' type-id='f06adae0' visibility='default' filepath='include/linux/pwm.h' line='317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/pwm.h' line='319' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='0337a003'>
+        <parameter type-id='37175e4d'/>
+        <parameter type-id='5b4284d1'/>
+        <parameter type-id='8bff8096'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7f00154c' size-in-bits='64' id='03385b06'/>
+      <pointer-type-def type-id='2f0a18fa' size-in-bits='64' id='03388cec'/>
+      <qualified-type-def type-id='d5ace205' const='yes' id='03419172'/>
+      <pointer-type-def type-id='23c73eb3' size-in-bits='64' id='0343ce83'/>
+      <pointer-type-def type-id='1883cd3d' size-in-bits='64' id='034d7ded'/>
+      <class-decl name='ttm_resource_manager_func' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='48' column='1' id='034e1b08'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='alloc' type-id='1bf109d7' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='free' type-id='f18a987c' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='debug' type-id='e15671b8' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='97' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='68f8e66d' size-in-bits='64' id='0357a19d'/>
+      <class-decl name='softnet_data' size-in-bits='5632' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='3390' column='1' id='035aa62d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='poll_list' type-id='72f469ec' visibility='default' filepath='include/linux/netdevice.h' line='3391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='process_queue' type-id='e61c85d0' visibility='default' filepath='include/linux/netdevice.h' line='3392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='processed' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='3395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='time_squeeze' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='3396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='received_rps' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='3397' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='rps_ipi_list' type-id='80c9c0cd' visibility='default' filepath='include/linux/netdevice.h' line='3399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='flow_limit' type-id='4c83bbe7' visibility='default' filepath='include/linux/netdevice.h' line='3402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='output_queue' type-id='ee406209' visibility='default' filepath='include/linux/netdevice.h' line='3404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='output_queue_tailp' type-id='325a7d19' visibility='default' filepath='include/linux/netdevice.h' line='3405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='completion_queue' type-id='0fbf3cfd' visibility='default' filepath='include/linux/netdevice.h' line='3406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='xmit' type-id='e7f44049' visibility='default' filepath='include/linux/netdevice.h' line='3414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='input_queue_head' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='3419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='csd' type-id='223a68bd' visibility='default' filepath='include/linux/netdevice.h' line='3422' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='rps_ipi_next' type-id='80c9c0cd' visibility='default' filepath='include/linux/netdevice.h' line='3423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='cpu' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='3424' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1888'>
+          <var-decl name='input_queue_tail' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='3425' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='dropped' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='3427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='input_pkt_queue' type-id='e61c85d0' visibility='default' filepath='include/linux/netdevice.h' line='3428' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='backlog' type-id='291e3bb5' visibility='default' filepath='include/linux/netdevice.h' line='3429' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='netdev_bpf' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='996' column='1' id='0360a184'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='command' type-id='fa64b30d' visibility='default' filepath='include/linux/netdevice.h' line='997' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab671' visibility='default' filepath='include/linux/netdevice.h' line='998' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f2c03b9b' size-in-bits='64' id='03676ee7'/>
+      <class-decl name='can_pkg_stats' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/../net/can/af_can.h' line='66' column='1' id='036e1e80'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='jiffies_init' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rx_frames' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tx_frames' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='matches' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='total_rx_rate' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='total_tx_rate' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='total_rx_match_ratio' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='current_rx_rate' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='current_tx_rate' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='current_rx_match_ratio' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='max_rx_rate' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='max_tx_rate' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='max_rx_match_ratio' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='rx_frames_delta' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='tx_frames_delta' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='matches_delta' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='87' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='714fe898' size-in-bits='64' id='03813572'/>
+      <class-decl name='v4l2_subdev_pad_ops' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='730' column='1' id='0382928e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='init_cfg' type-id='8ee54d33' visibility='default' filepath='include/media/v4l2-subdev.h' line='731' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='enum_mbus_code' type-id='bdf62267' visibility='default' filepath='include/media/v4l2-subdev.h' line='733' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='enum_frame_size' type-id='189b832f' visibility='default' filepath='include/media/v4l2-subdev.h' line='736' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='enum_frame_interval' type-id='7c08f417' visibility='default' filepath='include/media/v4l2-subdev.h' line='739' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='get_fmt' type-id='6adcec63' visibility='default' filepath='include/media/v4l2-subdev.h' line='742' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='set_fmt' type-id='6adcec63' visibility='default' filepath='include/media/v4l2-subdev.h' line='745' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='get_selection' type-id='a609cc6a' visibility='default' filepath='include/media/v4l2-subdev.h' line='748' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='set_selection' type-id='a609cc6a' visibility='default' filepath='include/media/v4l2-subdev.h' line='751' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='get_edid' type-id='1da53a06' visibility='default' filepath='include/media/v4l2-subdev.h' line='754' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='set_edid' type-id='1da53a06' visibility='default' filepath='include/media/v4l2-subdev.h' line='755' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='dv_timings_cap' type-id='2af7cc71' visibility='default' filepath='include/media/v4l2-subdev.h' line='756' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='enum_dv_timings' type-id='d407a0d4' visibility='default' filepath='include/media/v4l2-subdev.h' line='758' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='link_validate' type-id='f73feb66' visibility='default' filepath='include/media/v4l2-subdev.h' line='761' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='get_frame_desc' type-id='f4b0728f' visibility='default' filepath='include/media/v4l2-subdev.h' line='765' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='set_frame_desc' type-id='f4b0728f' visibility='default' filepath='include/media/v4l2-subdev.h' line='767' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='get_mbus_config' type-id='e38d7e58' visibility='default' filepath='include/media/v4l2-subdev.h' line='769' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='set_mbus_config' type-id='e38d7e58' visibility='default' filepath='include/media/v4l2-subdev.h' line='771' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='58e5bb8b' size-in-bits='64' id='03862e5f'/>
+      <class-decl name='dev_pin_info' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/pinctrl/devinfo.h' line='30' column='1' id='038d05bd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='p' type-id='73ea90c5' visibility='default' filepath='include/linux/pinctrl/devinfo.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='default_state' type-id='f418ceb3' visibility='default' filepath='include/linux/pinctrl/devinfo.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='init_state' type-id='f418ceb3' visibility='default' filepath='include/linux/pinctrl/devinfo.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sleep_state' type-id='f418ceb3' visibility='default' filepath='include/linux/pinctrl/devinfo.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='idle_state' type-id='f418ceb3' visibility='default' filepath='include/linux/pinctrl/devinfo.h' line='36' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ec263c6e' size-in-bits='64' id='03935b08'/>
+      <function-type size-in-bits='64' id='0393750b'>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <array-type-def dimensions='2' type-id='b55def60' size-in-bits='1024' id='0399400c'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='039b06ea'>
+        <parameter type-id='944c4ff9'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='453c30fa' size-in-bits='64' id='039c1bc4'/>
+      <class-decl name='blk_mq_queue_data' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/blk-mq.h' line='274' column='1' id='03a1b8ac'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rq' type-id='3dad1a48' visibility='default' filepath='include/linux/blk-mq.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='last' type-id='b50a4934' visibility='default' filepath='include/linux/blk-mq.h' line='276' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8f76da5a' size-in-bits='64' id='03a480ac'/>
+      <class-decl name='hlist_node' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/types.h' line='186' column='1' id='03a4a074'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='08cbad52' visibility='default' filepath='include/linux/types.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pprev' type-id='50a213e8' visibility='default' filepath='include/linux/types.h' line='187' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='msi_msg' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/msi.h' line='38' column='1' id='03ba410a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab5a4' visibility='default' filepath='include/linux/msi.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='' type-id='ac5ab5a5' visibility='default' filepath='include/linux/msi.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab5a6' visibility='default' filepath='include/linux/msi.h' line='47' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='03bca899'>
+        <parameter type-id='15b1f129'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='e61c85d0' size-in-bits='64' id='03c386c6'/>
+      <class-decl name='bpf_local_storage_map' size-in-bits='2560' is-struct='yes' visibility='default' filepath='include/linux/bpf_local_storage.h' line='42' column='1' id='03c3afa4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='map' type-id='9e4acc7a' visibility='default' filepath='include/linux/bpf_local_storage.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='buckets' type-id='3bdbc3eb' visibility='default' filepath='include/linux/bpf_local_storage.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='bucket_log' type-id='19c2251e' visibility='default' filepath='include/linux/bpf_local_storage.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2144'>
+          <var-decl name='elem_size' type-id='1dc6a898' visibility='default' filepath='include/linux/bpf_local_storage.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2160'>
+          <var-decl name='cache_idx' type-id='1dc6a898' visibility='default' filepath='include/linux/bpf_local_storage.h' line='53' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='timens_offsets' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/time_namespace.h' line='14' column='1' id='03ce8d40'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='monotonic' type-id='40a816ad' visibility='default' filepath='include/linux/time_namespace.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='boottime' type-id='40a816ad' visibility='default' filepath='include/linux/time_namespace.h' line='16' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='03d219e2'>
+        <parameter type-id='8cffa561'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='bc3f1924' const='yes' id='03d44987'/>
+      <pointer-type-def type-id='b5ab048f' size-in-bits='64' id='03d48e96'/>
+      <function-type size-in-bits='64' id='03dc20ed'>
+        <parameter type-id='af051c69'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='1b632d0e' size-in-bits='64' id='03e056a8'/>
+      <class-decl name='ipv6_txoptions' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/net/ipv6.h' line='288' column='1' id='03e12711'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/net/ipv6.h' line='289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='tot_len' type-id='95e97e5e' visibility='default' filepath='include/net/ipv6.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='opt_flen' type-id='d315442e' visibility='default' filepath='include/net/ipv6.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='opt_nflen' type-id='d315442e' visibility='default' filepath='include/net/ipv6.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hopopt' type-id='edff578b' visibility='default' filepath='include/net/ipv6.h' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dst0opt' type-id='edff578b' visibility='default' filepath='include/net/ipv6.h' line='299' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='srcrt' type-id='40629354' visibility='default' filepath='include/net/ipv6.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dst1opt' type-id='edff578b' visibility='default' filepath='include/net/ipv6.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/ipv6.h' line='302' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='56ed3a25' const='yes' id='03f3693e'/>
+      <class-decl name='devlink_health_reporter_ops' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='710' column='1' id='0406440a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/net/devlink.h' line='711' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='recover' type-id='c86d3d8c' visibility='default' filepath='include/net/devlink.h' line='712' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dump' type-id='d15254f9' visibility='default' filepath='include/net/devlink.h' line='714' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='diagnose' type-id='fc143737' visibility='default' filepath='include/net/devlink.h' line='717' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='test' type-id='fcc49348' visibility='default' filepath='include/net/devlink.h' line='720' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3a7813d3' size-in-bits='64' id='040770fb'/>
+      <pointer-type-def type-id='800ed759' size-in-bits='64' id='040ef975'/>
+      <pointer-type-def type-id='aa777680' size-in-bits='64' id='040fcd9e'/>
+      <function-type size-in-bits='64' id='0410b02c'>
+        <parameter type-id='aeae13b9'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='lru_list' filepath='include/linux/mmzone.h' line='269' column='1' id='04110eaa'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='LRU_INACTIVE_ANON' value='0'/>
+        <enumerator name='LRU_ACTIVE_ANON' value='1'/>
+        <enumerator name='LRU_INACTIVE_FILE' value='2'/>
+        <enumerator name='LRU_ACTIVE_FILE' value='3'/>
+        <enumerator name='LRU_UNEVICTABLE' value='4'/>
+        <enumerator name='NR_LRU_LISTS' value='5'/>
+      </enum-decl>
+      <typedef-decl name='blk_qc_t' type-id='f0981eeb' filepath='include/linux/blk_types.h' line='513' column='1' id='041bc907'/>
+      <pointer-type-def type-id='e6fe4054' size-in-bits='64' id='041f6b76'/>
+      <pointer-type-def type-id='d5dd5721' size-in-bits='64' id='0424a2d9'/>
+      <pointer-type-def type-id='5a62d00a' size-in-bits='64' id='0424d4dc'/>
+      <array-type-def dimensions='1' type-id='5b4284d1' size-in-bits='16384' id='042b23b6'>
+        <subrange length='256' type-id='7ff19f0f' id='36e5b9fa'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='0430c455'>
+        <parameter type-id='f41a0030'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='f9409001'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='424ad5b6' const='yes' id='04379599'/>
+      <union-decl name='__anonymous_union__' size-in-bits='128' visibility='default' filepath='include/uapi/linux/xfrm.h' line='15' column='1' id='043f0147' is-anonymous='yes'>
+        <data-member access='public'>
+          <var-decl name='a4' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/xfrm.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='a6' type-id='30180d4b' visibility='default' filepath='include/uapi/linux/xfrm.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='in6' type-id='f6ed712a' visibility='default' filepath='include/uapi/linux/xfrm.h' line='18' column='1'/>
+        </data-member>
+      </union-decl>
+      <function-type size-in-bits='64' id='043f578c'>
+        <parameter type-id='5771c601'/>
+        <parameter type-id='fce0537d'/>
+        <return type-id='91ce1af9'/>
+      </function-type>
+      <class-decl name='soc_enum' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/sound/soc.h' line='1186' column='1' id='044208ec'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reg' type-id='95e97e5e' visibility='default' filepath='include/sound/soc.h' line='1187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='shift_l' type-id='002ac4a6' visibility='default' filepath='include/sound/soc.h' line='1188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='shift_r' type-id='002ac4a6' visibility='default' filepath='include/sound/soc.h' line='1189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='items' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='1190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='mask' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='1191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='texts' type-id='13956559' visibility='default' filepath='include/sound/soc.h' line='1192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='values' type-id='5b2fd8e8' visibility='default' filepath='include/sound/soc.h' line='1193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='autodisable' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='1194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dobj' type-id='01edcafc' visibility='default' filepath='include/sound/soc.h' line='1196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/soc.h' line='1199' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='dwc3_ep0_state' filepath='drivers/usb/dwc3/core.h' line='780' column='1' id='045093ad'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='EP0_UNCONNECTED' value='0'/>
+        <enumerator name='EP0_SETUP_PHASE' value='1'/>
+        <enumerator name='EP0_DATA_PHASE' value='2'/>
+        <enumerator name='EP0_STATUS_PHASE' value='3'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='0457ac44'>
+        <parameter type-id='a970a64c'/>
+        <parameter type-id='1dc6a898'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='b2c72f60' size-in-bits='64' id='0459295a'/>
+      <pointer-type-def type-id='2283cf25' size-in-bits='64' id='045e4a95'/>
+      <pointer-type-def type-id='8efd3865' size-in-bits='64' id='0461ecf5'/>
+      <pointer-type-def type-id='11b39afc' size-in-bits='64' id='0462c74a'/>
+      <class-decl name='phy_c45_device_ids' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/linux/phy.h' line='478' column='1' id='0463cbfd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='devices_in_package' type-id='19c2251e' visibility='default' filepath='include/linux/phy.h' line='479' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='mmds_present' type-id='19c2251e' visibility='default' filepath='include/linux/phy.h' line='480' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='device_ids' type-id='6dcfc3c6' visibility='default' filepath='include/linux/phy.h' line='481' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='0467beaf'>
+        <parameter type-id='32efad44'/>
+        <parameter type-id='bbaf3419'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='8bff8096'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='40308fd2' size-in-bits='64' id='0472a368'/>
+      <function-type size-in-bits='64' id='0477141b'>
+        <parameter type-id='87447c2d'/>
+        <parameter type-id='cba1f2de'/>
+        <parameter type-id='30864cdc'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='76b17fea' size-in-bits='64' id='047dcea8'/>
+      <pointer-type-def type-id='274c23aa' size-in-bits='64' id='04898764'/>
+      <pointer-type-def type-id='e45577b8' size-in-bits='64' id='048b3ad6'/>
+      <array-type-def dimensions='1' type-id='26a90f95' size-in-bits='1024' id='04959838'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <pointer-type-def type-id='dcb8e7d6' size-in-bits='64' id='0496a3e0'/>
+      <pointer-type-def type-id='7b596412' size-in-bits='64' id='0499c3f4'/>
+      <pointer-type-def type-id='89f1cbf8' size-in-bits='64' id='04a219de'/>
+      <class-decl name='scmi_event' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/firmware/arm_scmi/notify.h' line='28' column='1' id='04b222a6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='f9b06939' visibility='default' filepath='drivers/firmware/arm_scmi/notify.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max_payld_sz' type-id='b59d7dce' visibility='default' filepath='drivers/firmware/arm_scmi/notify.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='max_report_sz' type-id='b59d7dce' visibility='default' filepath='drivers/firmware/arm_scmi/notify.h' line='31' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='37eec936' size-in-bits='64' id='04b6a8dc'/>
+      <pointer-type-def type-id='f154f192' size-in-bits='64' id='04b7616c'/>
+      <array-type-def dimensions='1' type-id='d3e6437c' size-in-bits='768' id='04b7d390'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <enum-decl name='dma_ctrl_flags' filepath='include/linux/dmaengine.h' line='195' column='1' id='04baee86'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DMA_PREP_INTERRUPT' value='1'/>
+        <enumerator name='DMA_CTRL_ACK' value='2'/>
+        <enumerator name='DMA_PREP_PQ_DISABLE_P' value='4'/>
+        <enumerator name='DMA_PREP_PQ_DISABLE_Q' value='8'/>
+        <enumerator name='DMA_PREP_CONTINUE' value='16'/>
+        <enumerator name='DMA_PREP_FENCE' value='32'/>
+        <enumerator name='DMA_CTRL_REUSE' value='64'/>
+        <enumerator name='DMA_PREP_CMD' value='128'/>
+        <enumerator name='DMA_PREP_REPEAT' value='256'/>
+        <enumerator name='DMA_PREP_LOAD_EOT' value='512'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='04c69dd4'>
+        <parameter type-id='27f3f5d8'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='ad810f54' size-in-bits='64' id='04cc4d9e'/>
+      <pointer-type-def type-id='f7146e24' size-in-bits='64' id='04d17276'/>
+      <pointer-type-def type-id='e5ebb0e4' size-in-bits='64' id='04d2f8d2'/>
+      <pointer-type-def type-id='e4a6917b' size-in-bits='64' id='04d80927'/>
+      <function-type size-in-bits='64' id='04ddf8cd'>
+        <parameter type-id='37175e4d'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='drm_dp_aux_msg' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1852' column='1' id='04e455f8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='address' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1853' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='request' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1854' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='reply' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1855' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='buffer' type-id='eaa32e2f' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1856' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1857' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='display_flags' filepath='include/video/display_timing.h' line='14' column='1' id='04e8607a'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DISPLAY_FLAGS_HSYNC_LOW' value='1'/>
+        <enumerator name='DISPLAY_FLAGS_HSYNC_HIGH' value='2'/>
+        <enumerator name='DISPLAY_FLAGS_VSYNC_LOW' value='4'/>
+        <enumerator name='DISPLAY_FLAGS_VSYNC_HIGH' value='8'/>
+        <enumerator name='DISPLAY_FLAGS_DE_LOW' value='16'/>
+        <enumerator name='DISPLAY_FLAGS_DE_HIGH' value='32'/>
+        <enumerator name='DISPLAY_FLAGS_PIXDATA_POSEDGE' value='64'/>
+        <enumerator name='DISPLAY_FLAGS_PIXDATA_NEGEDGE' value='128'/>
+        <enumerator name='DISPLAY_FLAGS_INTERLACED' value='256'/>
+        <enumerator name='DISPLAY_FLAGS_DOUBLESCAN' value='512'/>
+        <enumerator name='DISPLAY_FLAGS_DOUBLECLK' value='1024'/>
+        <enumerator name='DISPLAY_FLAGS_SYNC_POSEDGE' value='2048'/>
+        <enumerator name='DISPLAY_FLAGS_SYNC_NEGEDGE' value='4096'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='800' id='04f09ed4'>
+        <subrange length='100' type-id='7ff19f0f' id='4196563c'/>
+      </array-type-def>
+      <qualified-type-def type-id='cbbd46cd' const='yes' id='04f1443e'/>
+      <class-decl name='fscrypt_hkdf' size-in-bits='64' is-struct='yes' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='319' column='1' id='05015f68'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hmac_tfm' type-id='247dd85c' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='320' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='0506cdd8'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='bd54fe1a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='79d185ec' size-in-bits='64' id='0508acce'/>
+      <class-decl name='ipv6_fl_socklist' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/ipv6.h' line='338' column='1' id='05198978'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='3a14a5ee' visibility='default' filepath='include/net/ipv6.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fl' type-id='e90fa847' visibility='default' filepath='include/net/ipv6.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/ipv6.h' line='341' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='8ce4ff83' const='yes' id='051f9336'/>
+      <pointer-type-def type-id='75fa2a9d' size-in-bits='64' id='0521abf1'/>
+      <class-decl name='i3c_dev_boardinfo' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/i3c/master.h' line='179' column='1' id='052de971'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/i3c/master.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='init_dyn_addr' type-id='f9b06939' visibility='default' filepath='include/linux/i3c/master.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='static_addr' type-id='f9b06939' visibility='default' filepath='include/linux/i3c/master.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pid' type-id='91ce1af9' visibility='default' filepath='include/linux/i3c/master.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='of_node' type-id='9a537bbe' visibility='default' filepath='include/linux/i3c/master.h' line='184' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='1600' id='0530f1a6'>
+        <subrange length='200' type-id='7ff19f0f' id='53119c2f'/>
+      </array-type-def>
+      <class-decl name='tty_ldisc_ops' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/linux/tty_ldisc.h' line='181' column='1' id='053f72e5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/tty_ldisc.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num' type-id='95e97e5e' visibility='default' filepath='include/linux/tty_ldisc.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/linux/tty_ldisc.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='open' type-id='84d8e9b4' visibility='default' filepath='include/linux/tty_ldisc.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='close' type-id='1ee0b597' visibility='default' filepath='include/linux/tty_ldisc.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='flush_buffer' type-id='1ee0b597' visibility='default' filepath='include/linux/tty_ldisc.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='read' type-id='bb0baf11' visibility='default' filepath='include/linux/tty_ldisc.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='write' type-id='01db3d7c' visibility='default' filepath='include/linux/tty_ldisc.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ioctl' type-id='1f6f58f4' visibility='default' filepath='include/linux/tty_ldisc.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='compat_ioctl' type-id='1f6f58f4' visibility='default' filepath='include/linux/tty_ldisc.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='set_termios' type-id='1779e61d' visibility='default' filepath='include/linux/tty_ldisc.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='poll' type-id='9fe65c08' visibility='default' filepath='include/linux/tty_ldisc.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='hangup' type-id='84d8e9b4' visibility='default' filepath='include/linux/tty_ldisc.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='receive_buf' type-id='4ea99369' visibility='default' filepath='include/linux/tty_ldisc.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='write_wakeup' type-id='1ee0b597' visibility='default' filepath='include/linux/tty_ldisc.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='dcd_change' type-id='aef0224d' visibility='default' filepath='include/linux/tty_ldisc.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='receive_buf2' type-id='11ea832e' visibility='default' filepath='include/linux/tty_ldisc.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/tty_ldisc.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/tty_ldisc.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/tty_ldisc.h' line='219' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a44a15b8' size-in-bits='64' id='0541bcde'/>
+      <class-decl name='posix_acl_entry' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/posix_acl.h' line='20' column='1' id='05438640'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='e_tag' type-id='a2185560' visibility='default' filepath='include/linux/posix_acl.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='e_perm' type-id='8efea9e5' visibility='default' filepath='include/linux/posix_acl.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='' type-id='ac5ab696' visibility='default' filepath='include/linux/posix_acl.h' line='23' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='98553e10' size-in-bits='6528' id='05487c29'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='054882f1'>
+        <parameter type-id='8212a608'/>
+        <parameter type-id='2ae08426'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='2058bc87' size-in-bits='64' id='054b2090'/>
+      <pointer-type-def type-id='23f8b0bd' size-in-bits='64' id='05594c99'/>
+      <class-decl name='scmi_msg' size-in-bits='128' is-struct='yes' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='139' column='1' id='0569c65f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='buf' type-id='eaa32e2f' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='len' type-id='b59d7dce' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='141' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_cdc_mbim_desc' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='197' column='1' id='0570fd5e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bDescriptorSubType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bcdMBIMVersion' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='wMaxControlMessage' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='bNumberFilters' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bMaxFilterSize' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='wMaxSegmentSize' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='bmNetworkCapabilities' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='207' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='057e4bd2'>
+        <parameter type-id='226853d2'/>
+        <parameter type-id='e475ab95'/>
+        <parameter type-id='f74174a4'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <class-decl name='dquot_operations' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/quota.h' line='325' column='1' id='0584e65d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='write_dquot' type-id='24c1e1dc' visibility='default' filepath='include/linux/quota.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='alloc_dquot' type-id='324070f9' visibility='default' filepath='include/linux/quota.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='destroy_dquot' type-id='dbc22931' visibility='default' filepath='include/linux/quota.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='acquire_dquot' type-id='24c1e1dc' visibility='default' filepath='include/linux/quota.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='release_dquot' type-id='24c1e1dc' visibility='default' filepath='include/linux/quota.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mark_dirty' type-id='24c1e1dc' visibility='default' filepath='include/linux/quota.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='write_info' type-id='dcab5203' visibility='default' filepath='include/linux/quota.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='get_reserved_space' type-id='15543b10' visibility='default' filepath='include/linux/quota.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='get_projid' type-id='c23b3cbc' visibility='default' filepath='include/linux/quota.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='get_inode_usage' type-id='6b7539fb' visibility='default' filepath='include/linux/quota.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='get_next_id' type-id='70b08f83' visibility='default' filepath='include/linux/quota.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/quota.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/quota.h' line='343' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='51d715c2' size-in-bits='64' id='0588e2f0'/>
+      <enum-decl name='binder_work_type' filepath='drivers/android/binder_internal.h' line='152' column='1' id='058a7b49'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='BINDER_WORK_TRANSACTION' value='1'/>
+        <enumerator name='BINDER_WORK_TRANSACTION_COMPLETE' value='2'/>
+        <enumerator name='BINDER_WORK_TRANSACTION_ONEWAY_SPAM_SUSPECT' value='3'/>
+        <enumerator name='BINDER_WORK_RETURN_ERROR' value='4'/>
+        <enumerator name='BINDER_WORK_NODE' value='5'/>
+        <enumerator name='BINDER_WORK_DEAD_BINDER' value='6'/>
+        <enumerator name='BINDER_WORK_DEAD_BINDER_AND_CLEAR' value='7'/>
+        <enumerator name='BINDER_WORK_CLEAR_DEATH_NOTIFICATION' value='8'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='058d675d'>
+        <parameter type-id='f41a0030'/>
+        <parameter type-id='8bff8096'/>
+        <parameter type-id='7292109c'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='511fe9eb' const='yes' id='058f39c4'/>
+      <pointer-type-def type-id='99adf786' size-in-bits='64' id='05903717'/>
+      <function-type size-in-bits='64' id='0590d37d'>
+        <parameter type-id='aa9ea333'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='pci_vpd' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/pci.h' line='300' column='1' id='059a2256'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/linux/pci.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='len' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='cap' type-id='f9b06939' visibility='default' filepath='include/linux/pci.h' line='303' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='96bf0a3b' size-in-bits='64' id='05a372cf'/>
+      <typedef-decl name='kprobe_pre_handler_t' type-id='86856550' filepath='include/linux/kprobes.h' line='54' column='1' id='05a47603'/>
+      <class-decl name='audit_tree_refs' is-struct='yes' visibility='default' is-declaration-only='yes' id='05a6e6cc'/>
+      <pointer-type-def type-id='add29d6f' size-in-bits='64' id='05b00b8b'/>
+      <class-decl name='drm_mode_fb_cmd2' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='666' column='1' id='05bdad78'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fb_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='667' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='668' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='669' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='pixel_format' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='670' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='671' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='handles' type-id='3fa29bab' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='697' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='pitches' type-id='3fa29bab' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='698' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='offsets' type-id='3fa29bab' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='699' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='modifier' type-id='ce805d5e' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='700' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='05c1bb1c'>
+        <parameter type-id='67d012a2'/>
+        <parameter type-id='f138581f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4316c9c9' size-in-bits='64' id='05ca8778'/>
+      <function-type size-in-bits='64' id='05cc5338'>
+        <parameter type-id='2661e0d9'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='05cd341e'>
+        <parameter type-id='7efbcaaf'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='05cd795f'>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='edcbd723'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='05cdb97d'>
+        <parameter type-id='75ae4804'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='bpf_xdp_entity' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='991' column='1' id='05d9ea82'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prog' type-id='bdcee7ae' visibility='default' filepath='include/linux/netdevice.h' line='992' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='link' type-id='122b01f9' visibility='default' filepath='include/linux/netdevice.h' line='993' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='96c81365' size-in-bits='64' id='05dc2175'/>
+      <pointer-type-def type-id='65e7c8b8' size-in-bits='64' id='05dc3f6e'/>
+      <pointer-type-def type-id='cab08629' size-in-bits='64' id='05e20081'/>
+      <array-type-def dimensions='1' type-id='5218160d' size-in-bits='1536' id='05e8efcf'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <class-decl name='ufs_dev_fix' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufs_quirks.h' line='26' column='1' id='05f7ed4f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='wmanufacturerid' type-id='1dc6a898' visibility='default' filepath='drivers/scsi/ufs/ufs_quirks.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='model' type-id='8bff8096' visibility='default' filepath='drivers/scsi/ufs/ufs_quirks.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='quirk' type-id='f0981eeb' visibility='default' filepath='drivers/scsi/ufs/ufs_quirks.h' line='29' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='72' id='060772ed'>
+        <subrange length='9' type-id='7ff19f0f' id='12e4273c'/>
+      </array-type-def>
+      <class-decl name='dma_heap' size-in-bits='1600' is-struct='yes' visibility='default' filepath='drivers/dma-buf/dma-heap.c' line='40' column='1' id='060e2e70'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/dma-buf/dma-heap.c' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ops' type-id='cabcb658' visibility='default' filepath='drivers/dma-buf/dma-heap.c' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='drivers/dma-buf/dma-heap.c' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='heap_devt' type-id='8504f260' visibility='default' filepath='drivers/dma-buf/dma-heap.c' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='drivers/dma-buf/dma-heap.c' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='heap_cdev' type-id='22f86351' visibility='default' filepath='drivers/dma-buf/dma-heap.c' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='refcount' type-id='400fb07b' visibility='default' filepath='drivers/dma-buf/dma-heap.c' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='heap_dev' type-id='fa0b179b' visibility='default' filepath='drivers/dma-buf/dma-heap.c' line='48' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='40' id='06106d49'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <typedef-decl name='kprobe_post_handler_t' type-id='c1fce599' filepath='include/linux/kprobes.h' line='55' column='1' id='0614091c'/>
+      <function-type size-in-bits='64' id='06177fb0'>
+        <parameter type-id='b9aa0100'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='9b7dfd9f' size-in-bits='64' id='0617ad2b'/>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='16' id='0618bc0e'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='8' id='061afaa5'>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='0627f2fd'>
+        <parameter type-id='c3a28778'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='6909d288' size-in-bits='64' id='0634414a'/>
+      <function-type size-in-bits='64' id='0639fb3e'>
+        <parameter type-id='43c38462'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='063d849f'>
+        <parameter type-id='85535682'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <pointer-type-def type-id='8f90cd2a' size-in-bits='64' id='063da268'/>
+      <pointer-type-def type-id='a048d0fc' size-in-bits='64' id='06412f4e'/>
+      <pointer-type-def type-id='1b8c67aa' size-in-bits='64' id='0642cb3c'/>
+      <qualified-type-def type-id='205c2e40' const='yes' id='0645931b'/>
+      <class-decl name='dw_pcie_host_ops' size-in-bits='128' is-struct='yes' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='175' column='1' id='0647d262'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='host_init' type-id='0681bc12' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='msi_host_init' type-id='0681bc12' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='177' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='random_ready_callback' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/random.h' line='146' column='1' id='06497f5c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/random.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='func' type-id='5881f803' visibility='default' filepath='include/linux/random.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/random.h' line='149' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='irq_data' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/irq.h' line='179' column='1' id='064acd7a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mask' type-id='19c2251e' visibility='default' filepath='include/linux/irq.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='irq' type-id='f0981eeb' visibility='default' filepath='include/linux/irq.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hwirq' type-id='7359adad' visibility='default' filepath='include/linux/irq.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='common' type-id='a4a39eba' visibility='default' filepath='include/linux/irq.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='chip' type-id='8846a616' visibility='default' filepath='include/linux/irq.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='domain' type-id='7544e824' visibility='default' filepath='include/linux/irq.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='parent_data' type-id='1c475548' visibility='default' filepath='include/linux/irq.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='chip_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/irq.h' line='189' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='iio_event_type' filepath='include/uapi/linux/iio/types.h' line='100' column='1' id='064bebb9'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='IIO_EV_TYPE_THRESH' value='0'/>
+        <enumerator name='IIO_EV_TYPE_MAG' value='1'/>
+        <enumerator name='IIO_EV_TYPE_ROC' value='2'/>
+        <enumerator name='IIO_EV_TYPE_THRESH_ADAPTIVE' value='3'/>
+        <enumerator name='IIO_EV_TYPE_MAG_ADAPTIVE' value='4'/>
+        <enumerator name='IIO_EV_TYPE_CHANGE' value='5'/>
+      </enum-decl>
+      <pointer-type-def type-id='4cf04ec2' size-in-bits='64' id='064c3738'/>
+      <class-decl name='v4l2_m2m_queue_ctx' size-in-bits='7168' is-struct='yes' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='65' column='1' id='0651f1ee'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='q' type-id='6b30321d' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6976'>
+          <var-decl name='rdy_queue' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7104'>
+          <var-decl name='rdy_spinlock' type-id='fb4018a0' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7136'>
+          <var-decl name='num_rdy' type-id='f9b06939' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7144'>
+          <var-decl name='buffered' type-id='b50a4934' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='71' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c56b7883' size-in-bits='64' id='06524697'/>
+      <class-decl name='clk_init_data' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/clk-provider.h' line='299' column='1' id='065eee5b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/clk-provider.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ops' type-id='824ffa73' visibility='default' filepath='include/linux/clk-provider.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='parent_names' type-id='13956559' visibility='default' filepath='include/linux/clk-provider.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='parent_data' type-id='4cdbecf4' visibility='default' filepath='include/linux/clk-provider.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='parent_hws' type-id='ca0dae6c' visibility='default' filepath='include/linux/clk-provider.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='num_parents' type-id='f9b06939' visibility='default' filepath='include/linux/clk-provider.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/clk-provider.h' line='307' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='95762a08' size-in-bits='64' id='066c338e'/>
+      <function-type size-in-bits='64' id='066ca455'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='e835b5d8'/>
+        <parameter type-id='3eb7c31c'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='066f541d'>
+        <parameter type-id='7bf5a5e5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='06706e9d'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='bcd28457'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9defd450' size-in-bits='64' id='0681bc12'/>
+      <class-decl name='function_desc' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/pinctrl/pinmux.h' line='130' column='1' id='0684f34b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/pinctrl/pinmux.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='group_names' type-id='7d3cd834' visibility='default' filepath='drivers/pinctrl/pinmux.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='num_group_names' type-id='95e97e5e' visibility='default' filepath='drivers/pinctrl/pinmux.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='drivers/pinctrl/pinmux.h' line='134' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='712d28ed' size-in-bits='320' id='06883fa0'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='068d5e4f'>
+        <parameter type-id='e324928d'/>
+        <parameter type-id='1d2c2b85'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d7367d73' size-in-bits='64' id='06916b97'/>
+      <pointer-type-def type-id='8316a080' size-in-bits='64' id='069eeb9e'/>
+      <function-type size-in-bits='64' id='06a1c469'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='e84b031a'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='hv_ops' size-in-bits='576' is-struct='yes' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='54' column='1' id='06b0b498'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='get_chars' type-id='b925d171' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='put_chars' type-id='cbcd023c' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flush' type-id='6d72cd27' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='notifier_add' type-id='38ea827b' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='notifier_del' type-id='4b6c509a' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='notifier_hangup' type-id='4b6c509a' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='tiocmget' type-id='6cd5b5fc' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='tiocmset' type-id='7d48d834' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='dtr_rts' type-id='4b6c509a' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='69' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='256a6e6c' size-in-bits='64' id='06b0c85e'/>
+      <pointer-type-def type-id='362eec9e' size-in-bits='64' id='06b2cd14'/>
+      <pointer-type-def type-id='35b31004' size-in-bits='64' id='06b83346'/>
+      <class-decl name='page_frag' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/mm_types_task.h' line='64' column='1' id='06c0432f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='page' type-id='02f11ed4' visibility='default' filepath='include/linux/mm_types_task.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='offset' type-id='3f1a6b60' visibility='default' filepath='include/linux/mm_types_task.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='size' type-id='3f1a6b60' visibility='default' filepath='include/linux/mm_types_task.h' line='68' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='06c207bd'>
+        <parameter type-id='3dad1a48'/>
+        <parameter type-id='f4e2facd'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='066ca455' size-in-bits='64' id='06c31e09'/>
+      <function-type size-in-bits='64' id='06c81b64'>
+        <parameter type-id='e7d2a5fc'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <class-decl name='powercap_zone' size-in-bits='8640' is-struct='yes' visibility='default' filepath='include/linux/powercap.h' line='136' column='1' id='06ca65a1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/powercap.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/powercap.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='control_type_inst' type-id='eaa32e2f' visibility='default' filepath='include/linux/powercap.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ops' type-id='21710b39' visibility='default' filepath='include/linux/powercap.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/powercap.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='const_id_cnt' type-id='95e97e5e' visibility='default' filepath='include/linux/powercap.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='idr' type-id='37ce495e' visibility='default' filepath='include/linux/powercap.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='parent_idr' type-id='301185b4' visibility='default' filepath='include/linux/powercap.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/powercap.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='zone_dev_attrs' type-id='862c676f' visibility='default' filepath='include/linux/powercap.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='zone_attr_count' type-id='95e97e5e' visibility='default' filepath='include/linux/powercap.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='dev_zone_attr_group' type-id='e4af473b' visibility='default' filepath='include/linux/powercap.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8384'>
+          <var-decl name='dev_attr_groups' type-id='9f1f90ee' visibility='default' filepath='include/linux/powercap.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='allocated' type-id='b50a4934' visibility='default' filepath='include/linux/powercap.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8576'>
+          <var-decl name='constraints' type-id='57d188b1' visibility='default' filepath='include/linux/powercap.h' line='151' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='33d73f3b' size-in-bits='64' id='06ca680b'/>
+      <pointer-type-def type-id='de25fc7b' size-in-bits='64' id='06cc3383'/>
+      <function-type size-in-bits='64' id='06cc57e8'>
+        <parameter type-id='eb572b74'/>
+        <parameter type-id='991b8213'/>
+        <return type-id='e6b6d0b6'/>
+      </function-type>
+      <pointer-type-def type-id='a7f054ae' size-in-bits='64' id='06cd5b60'/>
+      <pointer-type-def type-id='91d0de51' size-in-bits='64' id='06ce3ba1'/>
+      <pointer-type-def type-id='6f81c9e7' size-in-bits='64' id='06d9380f'/>
+      <pointer-type-def type-id='2399d05d' size-in-bits='64' id='06d9546d'/>
+      <enum-decl name='android_debug_per_cpu_symbol' filepath='include/linux/android_debug_symbols.h' line='49' column='1' id='06dde89f'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ADS_IRQ_STACK_PTR' value='0'/>
+        <enumerator name='ADS_DEBUG_PER_CPU_END' value='1'/>
+      </enum-decl>
+      <class-decl name='neigh_ops' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/neighbour.h' line='169' column='1' id='06dfa6bb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='family' type-id='95e97e5e' visibility='default' filepath='include/net/neighbour.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='solicit' type-id='8e78f753' visibility='default' filepath='include/net/neighbour.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='error_report' type-id='8e78f753' visibility='default' filepath='include/net/neighbour.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='output' type-id='a57789c2' visibility='default' filepath='include/net/neighbour.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='connected_output' type-id='a57789c2' visibility='default' filepath='include/net/neighbour.h' line='174' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d24e4794' size-in-bits='64' id='06f3ff9e'/>
+      <pointer-type-def type-id='1d663e95' size-in-bits='64' id='06f4c6ad'/>
+      <pointer-type-def type-id='3106563e' size-in-bits='64' id='06f65854'/>
+      <pointer-type-def type-id='78e3e1d2' size-in-bits='64' id='06f723f0'/>
+      <qualified-type-def type-id='e47a5a92' const='yes' id='06f84b1d'/>
+      <function-type size-in-bits='64' id='0706d6e8'>
+        <parameter type-id='ccf3b302'/>
+        <parameter type-id='b11825ce'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='dl_dev_state' filepath='include/linux/device.h' line='338' column='1' id='070abca2'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DL_DEV_NO_DRIVER' value='0'/>
+        <enumerator name='DL_DEV_PROBING' value='1'/>
+        <enumerator name='DL_DEV_DRIVER_BOUND' value='2'/>
+        <enumerator name='DL_DEV_UNBINDING' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='524b1234' size-in-bits='64' id='070ae8d2'/>
+      <pointer-type-def type-id='9bdc8381' size-in-bits='64' id='07234631'/>
+      <function-type size-in-bits='64' id='0734a4f1'>
+        <parameter type-id='bd0b5822'/>
+        <parameter type-id='80f4b756'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='fsg_lun' size-in-bits='8064' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='98' column='1' id='0741cbfb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='filp' type-id='77e79a4b' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='file_length' type-id='69bf7bee' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='num_sectors' type-id='69bf7bee' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='initially_ro' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='193'>
+          <var-decl name='ro' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='194'>
+          <var-decl name='removable' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='195'>
+          <var-decl name='cdrom' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='196'>
+          <var-decl name='prevent_medium_removal' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='197'>
+          <var-decl name='registered' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='198'>
+          <var-decl name='info_valid' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='199'>
+          <var-decl name='nofua' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='sense_data' type-id='19c2251e' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='sense_data_info' type-id='19c2251e' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='unit_attention_data' type-id='19c2251e' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='blkbits' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='blksize' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='name_pfx' type-id='7d3cd834' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='inquiry_string' type-id='aa60f212' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='122' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='platform_driver' size-in-bits='1920' is-struct='yes' visibility='default' filepath='include/linux/platform_device.h' line='210' column='1' id='0742eda5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='probe' type-id='e05ae2cd' visibility='default' filepath='include/linux/platform_device.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='remove' type-id='e05ae2cd' visibility='default' filepath='include/linux/platform_device.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='shutdown' type-id='2cbd236c' visibility='default' filepath='include/linux/platform_device.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='suspend' type-id='5a92c1cc' visibility='default' filepath='include/linux/platform_device.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='resume' type-id='e05ae2cd' visibility='default' filepath='include/linux/platform_device.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/platform_device.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='id_table' type-id='79c2f4f8' visibility='default' filepath='include/linux/platform_device.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='prevent_deferred_probe' type-id='b50a4934' visibility='default' filepath='include/linux/platform_device.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/platform_device.h' line='220' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9423c42a' size-in-bits='64' id='07445d6c'/>
+      <pointer-type-def type-id='d1e950bf' size-in-bits='64' id='0749da8f'/>
+      <function-type size-in-bits='64' id='075176f9'>
+        <parameter type-id='5f8a1ac4'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='i3c_ccc_cmd' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/i3c/ccc.h' line='377' column='1' id='075857e5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rnw' type-id='f9b06939' visibility='default' filepath='include/linux/i3c/ccc.h' line='378' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='id' type-id='f9b06939' visibility='default' filepath='include/linux/i3c/ccc.h' line='379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ndests' type-id='f0981eeb' visibility='default' filepath='include/linux/i3c/ccc.h' line='380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dests' type-id='0067e34c' visibility='default' filepath='include/linux/i3c/ccc.h' line='381' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='err' type-id='f9ac5040' visibility='default' filepath='include/linux/i3c/ccc.h' line='382' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2ee43d37' size-in-bits='64' id='075d8b9f'/>
+      <class-decl name='cec_adapter' size-in-bits='13568' is-struct='yes' visibility='default' filepath='include/media/cec.h' line='208' column='1' id='075e0246'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/media/cec.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/media/cec.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='devnode' type-id='c2b8d3fa' visibility='default' filepath='include/media/cec.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9728'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/media/cec.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10112'>
+          <var-decl name='rc' type-id='75ae4804' visibility='default' filepath='include/media/cec.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10176'>
+          <var-decl name='transmit_queue' type-id='72f469ec' visibility='default' filepath='include/media/cec.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10304'>
+          <var-decl name='transmit_queue_sz' type-id='f0981eeb' visibility='default' filepath='include/media/cec.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10368'>
+          <var-decl name='wait_queue' type-id='72f469ec' visibility='default' filepath='include/media/cec.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10496'>
+          <var-decl name='transmitting' type-id='a588c23f' visibility='default' filepath='include/media/cec.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10560'>
+          <var-decl name='transmit_in_progress' type-id='b50a4934' visibility='default' filepath='include/media/cec.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10624'>
+          <var-decl name='kthread_config' type-id='f23e2572' visibility='default' filepath='include/media/cec.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10688'>
+          <var-decl name='config_completion' type-id='f9fef04f' visibility='default' filepath='include/media/cec.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10944'>
+          <var-decl name='kthread' type-id='f23e2572' visibility='default' filepath='include/media/cec.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11008'>
+          <var-decl name='kthread_waitq' type-id='b5ab048f' visibility='default' filepath='include/media/cec.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11200'>
+          <var-decl name='ops' type-id='4bc4fd45' visibility='default' filepath='include/media/cec.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11264'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/media/cec.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11328'>
+          <var-decl name='capabilities' type-id='19c2251e' visibility='default' filepath='include/media/cec.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11360'>
+          <var-decl name='available_log_addrs' type-id='f9b06939' visibility='default' filepath='include/media/cec.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11376'>
+          <var-decl name='phys_addr' type-id='1dc6a898' visibility='default' filepath='include/media/cec.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11392'>
+          <var-decl name='needs_hpd' type-id='b50a4934' visibility='default' filepath='include/media/cec.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11400'>
+          <var-decl name='is_configuring' type-id='b50a4934' visibility='default' filepath='include/media/cec.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11408'>
+          <var-decl name='is_configured' type-id='b50a4934' visibility='default' filepath='include/media/cec.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11416'>
+          <var-decl name='cec_pin_is_high' type-id='b50a4934' visibility='default' filepath='include/media/cec.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11424'>
+          <var-decl name='adap_controls_phys_addr' type-id='b50a4934' visibility='default' filepath='include/media/cec.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11432'>
+          <var-decl name='last_initiator' type-id='f9b06939' visibility='default' filepath='include/media/cec.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11456'>
+          <var-decl name='monitor_all_cnt' type-id='19c2251e' visibility='default' filepath='include/media/cec.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11488'>
+          <var-decl name='monitor_pin_cnt' type-id='19c2251e' visibility='default' filepath='include/media/cec.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11520'>
+          <var-decl name='follower_cnt' type-id='19c2251e' visibility='default' filepath='include/media/cec.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11584'>
+          <var-decl name='cec_follower' type-id='3ef2bf11' visibility='default' filepath='include/media/cec.h' line='242' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11648'>
+          <var-decl name='cec_initiator' type-id='3ef2bf11' visibility='default' filepath='include/media/cec.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11712'>
+          <var-decl name='passthrough' type-id='b50a4934' visibility='default' filepath='include/media/cec.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11744'>
+          <var-decl name='log_addrs' type-id='c6954120' visibility='default' filepath='include/media/cec.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12480'>
+          <var-decl name='conn_info' type-id='a809e963' visibility='default' filepath='include/media/cec.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13024'>
+          <var-decl name='tx_timeouts' type-id='19c2251e' visibility='default' filepath='include/media/cec.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13056'>
+          <var-decl name='notifier' type-id='33ceb73d' visibility='default' filepath='include/media/cec.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13120'>
+          <var-decl name='pin' type-id='93901aac' visibility='default' filepath='include/media/cec.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13184'>
+          <var-decl name='cec_dir' type-id='27675065' visibility='default' filepath='include/media/cec.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13248'>
+          <var-decl name='sequence' type-id='19c2251e' visibility='default' filepath='include/media/cec.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13280'>
+          <var-decl name='input_phys' type-id='16dc656a' visibility='default' filepath='include/media/cec.h' line='261' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='41588f03' size-in-bits='64' id='07695d8b'/>
+      <class-decl name='fs_parameter_spec' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/fs_parser.h' line='39' column='1' id='077208d0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/fs_parser.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='type' type-id='f11f814d' visibility='default' filepath='include/linux/fs_parser.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='opt' type-id='f9b06939' visibility='default' filepath='include/linux/fs_parser.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='flags' type-id='8efea9e5' visibility='default' filepath='include/linux/fs_parser.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs_parser.h' line='47' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3b326cb5' size-in-bits='64' id='07751825'/>
+      <pointer-type-def type-id='cc519b49' size-in-bits='64' id='07779cd9'/>
+      <function-type size-in-bits='64' id='078589a3'>
+        <parameter type-id='2bf16f59'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='97ca9b12' size-in-bits='64' id='0786894c'/>
+      <class-decl name='ip_options_rcu' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/inet_sock.h' line='58' column='1' id='0786b8b4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/inet_sock.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='opt' type-id='fa35cea9' visibility='default' filepath='include/net/inet_sock.h' line='60' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4d6fc4c7' size-in-bits='64' id='078de3a3'/>
+      <pointer-type-def type-id='0086a11a' size-in-bits='64' id='078f0514'/>
+      <pointer-type-def type-id='91f7d512' size-in-bits='64' id='078f3b94'/>
+      <function-type size-in-bits='64' id='0790750c'>
+        <parameter type-id='a2bff676'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='kernel_ulong_t' type-id='7359adad' filepath='include/linux/mod_devicetable.h' line='14' column='1' id='0791d6c8'/>
+      <function-type size-in-bits='64' id='0795c636'>
+        <parameter type-id='8898134d'/>
+        <parameter type-id='9e99ecc1'/>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='7292109c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4d1587e0' size-in-bits='64' id='07aa12a2'/>
+      <pointer-type-def type-id='45e819d6' size-in-bits='64' id='07af3c3c'/>
+      <pointer-type-def type-id='581d9826' size-in-bits='64' id='07b1f77c'/>
+      <pointer-type-def type-id='90d43746' size-in-bits='64' id='07b25468'/>
+      <function-type size-in-bits='64' id='07b37f3f'>
+        <parameter type-id='ff47b24b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='07b58648'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='8c4c4029'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='d1678a2e' size-in-bits='64' id='07b9ee34'/>
+      <function-type size-in-bits='64' id='07c30a78'>
+        <parameter type-id='cfff5953'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='usb2_lpm_parameters' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='515' column='1' id='07c4f5ca'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='besl' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='timeout' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='525' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='07c62f88'>
+        <parameter type-id='4db02c58'/>
+        <parameter type-id='249ef586'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='blkcg_pol_online_pd_fn' type-id='c8ffa4a2' filepath='include/linux/blk-cgroup.h' line='152' column='1' id='07c80a4b'/>
+      <function-type size-in-bits='64' id='07c93537'>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='3620a178'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='744721d1' size-in-bits='64' id='07cc1779'/>
+      <pointer-type-def type-id='fc87d78f' size-in-bits='64' id='07d0a3e7'/>
+      <class-decl name='swap_cluster_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/swap.h' line='244' column='1' id='07d9955c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='head' type-id='ed00f788' visibility='default' filepath='include/linux/swap.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tail' type-id='ed00f788' visibility='default' filepath='include/linux/swap.h' line='246' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b4a1f53d' size-in-bits='64' id='07da4e39'/>
+      <function-type size-in-bits='64' id='07dc6635'>
+        <parameter type-id='ff47b24b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f8a4685d' size-in-bits='64' id='07df1a3d'/>
+      <class-decl name='pps_source_info' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/pps_kernel.h' line='23' column='1' id='07dfbd23'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/linux/pps_kernel.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='path' type-id='16dc656a' visibility='default' filepath='include/linux/pps_kernel.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='mode' type-id='95e97e5e' visibility='default' filepath='include/linux/pps_kernel.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='echo' type-id='5a1dbcb3' visibility='default' filepath='include/linux/pps_kernel.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/pps_kernel.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/pps_kernel.h' line='32' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6a0fd5a6' size-in-bits='64' id='07e65680'/>
+      <pointer-type-def type-id='56731789' size-in-bits='64' id='07ebb4cd'/>
+      <typedef-decl name='rht_hashfn_t' type-id='bc00c03b' filepath='include/linux/rhashtable-types.h' line='38' column='1' id='07fa0d18'/>
+      <function-type size-in-bits='64' id='080ce95f'>
+        <parameter type-id='b7d8b860'/>
+        <parameter type-id='26a90f95'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='ec50bf48' size-in-bits='64' id='08113f0a'/>
+      <function-type size-in-bits='64' id='081241b5'>
+        <parameter type-id='366d2695'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='5487ffdc' size-in-bits='64' id='0817f042'/>
+      <pointer-type-def type-id='817d10dc' size-in-bits='64' id='081ebe8e'/>
+      <function-type size-in-bits='64' id='081f19f3'>
+        <parameter type-id='e7d2a5fc'/>
+        <parameter type-id='79808846'/>
+        <parameter type-id='fb55efa1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='inet_bind_hashbucket' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/inet_hashtables.h' line='101' column='1' id='082b64be'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/net/inet_hashtables.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='chain' type-id='e151255a' visibility='default' filepath='include/net/inet_hashtables.h' line='103' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='082d8e2c'>
+        <parameter type-id='3f646ae7'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='0834640b'>
+        <parameter type-id='af051c69'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='ae2eaa42' size-in-bits='64' id='0838a534'/>
+      <class-decl name='inet_ehash_bucket' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/inet_hashtables.h' line='38' column='1' id='08400b46'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='chain' type-id='af86905d' visibility='default' filepath='include/net/inet_hashtables.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='pm_message_t' type-id='c120b5da' filepath='include/linux/pm.h' line='52' column='1' id='08496218'/>
+      <pointer-type-def type-id='30f4922c' size-in-bits='64' id='084efa4e'/>
+      <array-type-def dimensions='1' type-id='f51d9e86' size-in-bits='384' id='085421f4'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='08594205'>
+        <parameter type-id='85196e3f'/>
+        <parameter type-id='e153f6de'/>
+        <parameter type-id='acc63fdf'/>
+        <parameter type-id='acc63fdf'/>
+        <parameter type-id='acc63fdf'/>
+        <return type-id='acc63fdf'/>
+      </function-type>
+      <function-type size-in-bits='64' id='08616ba1'>
+        <parameter type-id='2ae08426'/>
+        <return type-id='7359adad'/>
+      </function-type>
+      <function-type size-in-bits='64' id='0863015c'>
+        <parameter type-id='e324928d'/>
+        <parameter type-id='1d2c2b85'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='fb1c0f0a' size-in-bits='64' id='08662768'/>
+      <function-type size-in-bits='64' id='08694484'>
+        <parameter type-id='23d6768c'/>
+        <return type-id='e84b031a'/>
+      </function-type>
+      <pointer-type-def type-id='0d8f8c87' size-in-bits='64' id='086f0793'/>
+      <pointer-type-def type-id='1d6846fa' size-in-bits='64' id='0871ecbc'/>
+      <pointer-type-def type-id='ff1c7c9b' size-in-bits='64' id='087d687b'/>
+      <class-decl name='uclamp_se' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/sched.h' line='701' column='1' id='0888126c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='value' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='702' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11'>
+          <var-decl name='bucket_id' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='703' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='active' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='704' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17'>
+          <var-decl name='user_defined' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='705' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7dc87302' size-in-bits='64' id='08890290'/>
+      <pointer-type-def type-id='33341965' size-in-bits='64' id='0892f7dc'/>
+      <union-decl name='power_supply_propval' size-in-bits='64' visibility='default' filepath='include/linux/power_supply.h' line='216' column='1' id='08942f16'>
+        <data-member access='public'>
+          <var-decl name='intval' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='strval' type-id='80f4b756' visibility='default' filepath='include/linux/power_supply.h' line='218' column='1'/>
+        </data-member>
+      </union-decl>
+      <class-decl name='sched_param' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/sched/types.h' line='7' column='1' id='0897719a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sched_priority' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/sched/types.h' line='8' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='__be64' type-id='d3130597' filepath='include/uapi/linux/types.h' line='34' column='1' id='0899c7ad'/>
+      <qualified-type-def type-id='d3056556' const='yes' id='089a848d'/>
+      <function-type size-in-bits='64' id='089c1984'>
+        <parameter type-id='bd0b5822'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f6898056' size-in-bits='64' id='08a11828'/>
+      <array-type-def dimensions='1' type-id='91ce1af9' size-in-bits='832' id='08a4cc8e'>
+        <subrange length='13' type-id='7ff19f0f' id='487fded1'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='91ce1af9' size-in-bits='640' id='08a70b25'>
+        <subrange length='10' type-id='7ff19f0f' id='487da03a'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='08abca50'>
+        <parameter type-id='328dda6e'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='f9f4b16f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f8137f97' size-in-bits='64' id='08ae2a9f'/>
+      <class-decl name='opp_table' size-in-bits='5376' is-struct='yes' visibility='default' filepath='drivers/opp/opp.h' line='174' column='1' id='08aeec0d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='drivers/opp/opp.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lazy' type-id='72f469ec' visibility='default' filepath='drivers/opp/opp.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='head' type-id='708c2394' visibility='default' filepath='drivers/opp/opp.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='dev_list' type-id='72f469ec' visibility='default' filepath='drivers/opp/opp.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='opp_list' type-id='72f469ec' visibility='default' filepath='drivers/opp/opp.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='drivers/opp/opp.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='drivers/opp/opp.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='np' type-id='9a537bbe' visibility='default' filepath='drivers/opp/opp.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='clock_latency_ns_max' type-id='7359adad' visibility='default' filepath='drivers/opp/opp.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='voltage_tolerance_v1' type-id='f0981eeb' visibility='default' filepath='drivers/opp/opp.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1696'>
+          <var-decl name='parsed_static_opps' type-id='f0981eeb' visibility='default' filepath='drivers/opp/opp.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='shared_opp' type-id='943b03b5' visibility='default' filepath='drivers/opp/opp.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='current_rate' type-id='7359adad' visibility='default' filepath='drivers/opp/opp.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='current_opp' type-id='02e48bc6' visibility='default' filepath='drivers/opp/opp.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='suspend_opp' type-id='02e48bc6' visibility='default' filepath='drivers/opp/opp.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='genpd_virt_dev_lock' type-id='925167dc' visibility='default' filepath='drivers/opp/opp.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='genpd_virt_devs' type-id='50764ba3' visibility='default' filepath='drivers/opp/opp.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='required_opp_tables' type-id='ebb60db5' visibility='default' filepath='drivers/opp/opp.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='required_opp_count' type-id='f0981eeb' visibility='default' filepath='drivers/opp/opp.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='supported_hw' type-id='807869d3' visibility='default' filepath='drivers/opp/opp.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='supported_hw_count' type-id='f0981eeb' visibility='default' filepath='drivers/opp/opp.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='prop_name' type-id='80f4b756' visibility='default' filepath='drivers/opp/opp.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='clk' type-id='7d0bc0eb' visibility='default' filepath='drivers/opp/opp.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='regulators' type-id='4e034354' visibility='default' filepath='drivers/opp/opp.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='regulator_count' type-id='95e97e5e' visibility='default' filepath='drivers/opp/opp.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='paths' type-id='f2bb3a9c' visibility='default' filepath='drivers/opp/opp.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='path_count' type-id='f0981eeb' visibility='default' filepath='drivers/opp/opp.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3040'>
+          <var-decl name='enabled' type-id='b50a4934' visibility='default' filepath='drivers/opp/opp.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3048'>
+          <var-decl name='genpd_performance_state' type-id='b50a4934' visibility='default' filepath='drivers/opp/opp.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3056'>
+          <var-decl name='is_genpd' type-id='b50a4934' visibility='default' filepath='drivers/opp/opp.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='set_opp' type-id='c1433076' visibility='default' filepath='drivers/opp/opp.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='sod_supplies' type-id='614c5efc' visibility='default' filepath='drivers/opp/opp.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='set_opp_data' type-id='7727bbf2' visibility='default' filepath='drivers/opp/opp.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='dentry' type-id='27675065' visibility='default' filepath='drivers/opp/opp.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='dentry_name' type-id='11641789' visibility='default' filepath='drivers/opp/opp.h' line='218' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5bbf1052' size-in-bits='64' id='08b16374'/>
+      <pointer-type-def type-id='7be36c00' size-in-bits='64' id='08b1f4aa'/>
+      <array-type-def dimensions='1' type-id='19c2251e' size-in-bits='1920' id='08b4ad9f'>
+        <subrange length='60' type-id='7ff19f0f' id='b114e3c3'/>
+      </array-type-def>
+      <class-decl name='oom_control' is-struct='yes' visibility='default' is-declaration-only='yes' id='08b65638'/>
+      <function-type size-in-bits='64' id='08bcc9e6'>
+        <parameter type-id='0343ce83'/>
+        <parameter type-id='0343ce83'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='08bd3e89'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d06fe862' size-in-bits='64' id='08bd785c'/>
+      <class-decl name='media_request' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/media/media-request.h' line='62' column='1' id='08c313b5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mdev' type-id='e2929c1c' visibility='default' filepath='include/media/media-request.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='include/media/media-request.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='debug_str' type-id='665c09d8' visibility='default' filepath='include/media/media-request.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='state' type-id='f22f33ac' visibility='default' filepath='include/media/media-request.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='updating_count' type-id='f0981eeb' visibility='default' filepath='include/media/media-request.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='access_count' type-id='f0981eeb' visibility='default' filepath='include/media/media-request.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='objects' type-id='72f469ec' visibility='default' filepath='include/media/media-request.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='num_incomplete_objects' type-id='f0981eeb' visibility='default' filepath='include/media/media-request.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='poll_wait' type-id='b5ab048f' visibility='default' filepath='include/media/media-request.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/media/media-request.h' line='72' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b6993efc' size-in-bits='64' id='08c8d0fa'/>
+      <pointer-type-def type-id='03a4a074' size-in-bits='64' id='08cbad52'/>
+      <function-type size-in-bits='64' id='08cc17f6'>
+        <parameter type-id='108dbc98'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='08cd0705'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='cf29c9b3'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='eea6b025'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='snd_soc_tplg_vendor_string_elem' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='219' column='1' id='08cf731d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='token' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='string' type-id='36cef6bd' visibility='default' filepath='include/uapi/sound/asoc.h' line='221' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='shash_instance' size-in-bits='7168' is-struct='yes' visibility='default' filepath='include/crypto/internal/hash.h' line='43' column='1' id='08d1d960'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='free' type-id='de50c37f' visibility='default' filepath='include/crypto/internal/hash.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='' type-id='ac5ab5b9' visibility='default' filepath='include/crypto/internal/hash.h' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8ef65cd1' size-in-bits='64' id='08d45f21'/>
+      <function-type size-in-bits='64' id='08dd4249'>
+        <parameter type-id='27f3f5d8'/>
+        <parameter type-id='cf29c9b3'/>
+        <parameter type-id='e835b5d8'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='0e3f80d9'/>
+      </function-type>
+      <class-decl name='dma_slave_caps' size-in-bits='288' is-struct='yes' visibility='default' filepath='include/linux/dmaengine.h' line='506' column='1' id='08e15723'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='src_addr_widths' type-id='19c2251e' visibility='default' filepath='include/linux/dmaengine.h' line='507' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='dst_addr_widths' type-id='19c2251e' visibility='default' filepath='include/linux/dmaengine.h' line='508' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='directions' type-id='19c2251e' visibility='default' filepath='include/linux/dmaengine.h' line='509' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='min_burst' type-id='19c2251e' visibility='default' filepath='include/linux/dmaengine.h' line='510' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='max_burst' type-id='19c2251e' visibility='default' filepath='include/linux/dmaengine.h' line='511' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='max_sg_burst' type-id='19c2251e' visibility='default' filepath='include/linux/dmaengine.h' line='512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cmd_pause' type-id='b50a4934' visibility='default' filepath='include/linux/dmaengine.h' line='513' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='cmd_resume' type-id='b50a4934' visibility='default' filepath='include/linux/dmaengine.h' line='514' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='cmd_terminate' type-id='b50a4934' visibility='default' filepath='include/linux/dmaengine.h' line='515' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='residue_granularity' type-id='cad02db3' visibility='default' filepath='include/linux/dmaengine.h' line='516' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='descriptor_reuse' type-id='b50a4934' visibility='default' filepath='include/linux/dmaengine.h' line='517' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ba1f090e' size-in-bits='64' id='08e52268'/>
+      <pointer-type-def type-id='4ca0c298' size-in-bits='64' id='08e531de'/>
+      <pointer-type-def type-id='195ce0ad' size-in-bits='64' id='08ed88d1'/>
+      <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='include/net/bluetooth/hci_core.h' line='69' column='1' id='08f5ca17'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DISCOVERY_STOPPED' value='0'/>
+        <enumerator name='DISCOVERY_STARTING' value='1'/>
+        <enumerator name='DISCOVERY_FINDING' value='2'/>
+        <enumerator name='DISCOVERY_RESOLVING' value='3'/>
+        <enumerator name='DISCOVERY_STOPPING' value='4'/>
+      </enum-decl>
+      <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='include/net/bluetooth/hci_core.h' line='578' column='1' id='08f5ca18'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='INTERLEAVE_SCAN_NONE' value='0'/>
+        <enumerator name='INTERLEAVE_SCAN_NO_FILTER' value='1'/>
+        <enumerator name='INTERLEAVE_SCAN_ALLOWLIST' value='2'/>
+      </enum-decl>
+      <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='include/drm/ttm/ttm_bo_api.h' line='184' column='1' id='08f5ca19'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ttm_bo_map_iomap' value='129'/>
+        <enumerator name='ttm_bo_map_vmap' value='2'/>
+        <enumerator name='ttm_bo_map_kmap' value='3'/>
+        <enumerator name='ttm_bo_map_premapped' value='132'/>
+      </enum-decl>
+      <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='include/linux/phy.h' line='342' column='1' id='08f5ca1a'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='MDIOBUS_ALLOCATED' value='1'/>
+        <enumerator name='MDIOBUS_REGISTERED' value='2'/>
+        <enumerator name='MDIOBUS_UNREGISTERED' value='3'/>
+        <enumerator name='MDIOBUS_RELEASED' value='4'/>
+      </enum-decl>
+      <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='include/linux/phy.h' line='375' column='1' id='08f5ca1b'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='MDIOBUS_NO_CAP' value='0'/>
+        <enumerator name='MDIOBUS_C22' value='1'/>
+        <enumerator name='MDIOBUS_C45' value='2'/>
+        <enumerator name='MDIOBUS_C22_C45' value='3'/>
+      </enum-decl>
+      <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='include/linux/ptp_clock_kernel.h' line='33' column='1' id='08f5ca1c'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PTP_CLK_REQ_EXTTS' value='0'/>
+        <enumerator name='PTP_CLK_REQ_PEROUT' value='1'/>
+        <enumerator name='PTP_CLK_REQ_PPS' value='2'/>
+      </enum-decl>
+      <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='include/linux/netdevice.h' line='2232' column='1' id='08f5ca1d'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NETREG_UNINITIALIZED' value='0'/>
+        <enumerator name='NETREG_REGISTERED' value='1'/>
+        <enumerator name='NETREG_UNREGISTERING' value='2'/>
+        <enumerator name='NETREG_UNREGISTERED' value='3'/>
+        <enumerator name='NETREG_RELEASED' value='4'/>
+        <enumerator name='NETREG_DUMMY' value='5'/>
+      </enum-decl>
+      <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='include/linux/netdevice.h' line='2242' column='1' id='08f5ca1e'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='RTNL_LINK_INITIALIZED' value='0'/>
+        <enumerator name='RTNL_LINK_INITIALIZING' value='1'/>
+      </enum-decl>
+      <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='include/linux/netdevice.h' line='902' column='1' id='08f5ca1f'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEV_PATH_BR_VLAN_KEEP' value='0'/>
+        <enumerator name='DEV_PATH_BR_VLAN_TAG' value='1'/>
+        <enumerator name='DEV_PATH_BR_VLAN_UNTAG' value='2'/>
+        <enumerator name='DEV_PATH_BR_VLAN_UNTAG_HW' value='3'/>
+      </enum-decl>
+      <class-decl name='tcp_options_received' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/tcp.h' line='82' column='1' id='08f80c5d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ts_recent_stamp' type-id='95e97e5e' visibility='default' filepath='include/linux/tcp.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ts_recent' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rcv_tsval' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='rcv_tsecr' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='saw_tstamp' type-id='1dc6a898' visibility='default' filepath='include/linux/tcp.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='129'>
+          <var-decl name='tstamp_ok' type-id='1dc6a898' visibility='default' filepath='include/linux/tcp.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='130'>
+          <var-decl name='dsack' type-id='1dc6a898' visibility='default' filepath='include/linux/tcp.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='131'>
+          <var-decl name='wscale_ok' type-id='1dc6a898' visibility='default' filepath='include/linux/tcp.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='132'>
+          <var-decl name='sack_ok' type-id='1dc6a898' visibility='default' filepath='include/linux/tcp.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='135'>
+          <var-decl name='smc_ok' type-id='1dc6a898' visibility='default' filepath='include/linux/tcp.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='snd_wscale' type-id='1dc6a898' visibility='default' filepath='include/linux/tcp.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='140'>
+          <var-decl name='rcv_wscale' type-id='1dc6a898' visibility='default' filepath='include/linux/tcp.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='saw_unknown' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='145'>
+          <var-decl name='unused' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='num_sacks' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='user_mss' type-id='1dc6a898' visibility='default' filepath='include/linux/tcp.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='mss_clamp' type-id='1dc6a898' visibility='default' filepath='include/linux/tcp.h' line='100' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f9d018aa' size-in-bits='64' id='08fd2ee7'/>
+      <array-type-def dimensions='1' type-id='002ac4a6' size-in-bits='32' id='09001d3c'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='002ac4a6' size-in-bits='24' id='09025bd3'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <pointer-type-def type-id='821e33ee' size-in-bits='64' id='0904d108'/>
+      <array-type-def dimensions='1' type-id='9b45d938' size-in-bits='infinite' id='0904d1cc'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='4448fdd3' size-in-bits='64' id='090503c3'/>
+      <pointer-type-def type-id='e205b6f1' size-in-bits='64' id='0906f5b9'/>
+      <class-decl name='snd_pcm_chmap_elem' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/sound/pcm.h' line='1418' column='1' id='09098b3b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='channels' type-id='002ac4a6' visibility='default' filepath='include/sound/pcm.h' line='1419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='map' type-id='92ab2118' visibility='default' filepath='include/sound/pcm.h' line='1420' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='e094094c' const='yes' id='090a4485'/>
+      <pointer-type-def type-id='edc58e1f' size-in-bits='64' id='090a6ee7'/>
+      <function-type size-in-bits='64' id='09101d01'>
+        <parameter type-id='0dc3586b'/>
+        <parameter type-id='7efbcaaf'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='d61bf978'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='688a5520' size-in-bits='64' id='0923243a'/>
+      <class-decl name='irq_domain_ops' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/irqdomain.h' line='104' column='1' id='0926e4bd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='match' type-id='f1c95c76' visibility='default' filepath='include/linux/irqdomain.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='select' type-id='e1759090' visibility='default' filepath='include/linux/irqdomain.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='map' type-id='8a2b0cc8' visibility='default' filepath='include/linux/irqdomain.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='unmap' type-id='8b74557f' visibility='default' filepath='include/linux/irqdomain.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='xlate' type-id='7881e15c' visibility='default' filepath='include/linux/irqdomain.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='alloc' type-id='0871ecbc' visibility='default' filepath='include/linux/irqdomain.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='free' type-id='644a4b55' visibility='default' filepath='include/linux/irqdomain.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='activate' type-id='7ad47ca2' visibility='default' filepath='include/linux/irqdomain.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='deactivate' type-id='0b8fca52' visibility='default' filepath='include/linux/irqdomain.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='translate' type-id='bbe45043' visibility='default' filepath='include/linux/irqdomain.h' line='122' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='00ee50b8' size-in-bits='64' id='0928d5d6'/>
+      <function-type size-in-bits='64' id='092cdb36'>
+        <parameter type-id='5771c601'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='092ff2b3'>
+        <parameter type-id='9414c4b6'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='flow_rule' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/flow_offload.h' line='384' column='1' id='09337300'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='match' type-id='0e70a5cf' visibility='default' filepath='include/net/flow_offload.h' line='385' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='action' type-id='713fc6cc' visibility='default' filepath='include/net/flow_offload.h' line='386' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='db1c1b36' size-in-bits='64' id='093ead14'/>
+      <function-type size-in-bits='64' id='0943811c'>
+        <parameter type-id='226853d2'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='76fa3c67' size-in-bits='64' id='094635d3'/>
+      <pointer-type-def type-id='ba3e7428' size-in-bits='64' id='0949fa0e'/>
+      <typedef-decl name='kgid_t' type-id='75c89789' filepath='include/linux/uidgid.h' line='28' column='1' id='094d8048'/>
+      <pointer-type-def type-id='d442aa81' size-in-bits='64' id='0954c675'/>
+      <array-type-def dimensions='1' type-id='f0981eeb' size-in-bits='96' id='0955670c'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <class-decl name='ir_raw_timings_manchester' size-in-bits='160' is-struct='yes' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='221' column='1' id='095cd8ee'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='leader_pulse' type-id='f0981eeb' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='leader_space' type-id='f0981eeb' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='clock' type-id='f0981eeb' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='invert' type-id='f0981eeb' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='trailer_space' type-id='f0981eeb' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='226' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='144' id='09617d27'>
+        <subrange length='18' type-id='7ff19f0f' id='489127f2'/>
+      </array-type-def>
+      <class-decl name='bio_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/bio.h' line='536' column='1' id='096280be'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='head' type-id='fb55efa1' visibility='default' filepath='include/linux/bio.h' line='537' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tail' type-id='fb55efa1' visibility='default' filepath='include/linux/bio.h' line='538' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='0965e7f8'>
+        <parameter type-id='e5411c2c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='09672b76'>
+        <parameter type-id='c67366c7'/>
+        <parameter type-id='78815770'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='__anonymous_struct__' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/asm-generic/hardirq.h' line='8' column='1' id='096e41e5' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='__softirq_pending' type-id='f0981eeb' visibility='default' filepath='include/asm-generic/hardirq.h' line='9' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='0971a711'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='80' id='097504df'>
+        <subrange length='10' type-id='7ff19f0f' id='487da03a'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='104' id='097d53a4'>
+        <subrange length='13' type-id='7ff19f0f' id='487fded1'/>
+      </array-type-def>
+      <pointer-type-def type-id='94847817' size-in-bits='64' id='09894807'/>
+      <pointer-type-def type-id='0590d37d' size-in-bits='64' id='098b33c1'/>
+      <pointer-type-def type-id='47f81694' size-in-bits='64' id='098bcd1a'/>
+      <pointer-type-def type-id='88aa5216' size-in-bits='64' id='098bff2c'/>
+      <class-decl name='power_supply_config' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/power_supply.h' line='225' column='1' id='098cab97'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='of_node' type-id='9a537bbe' visibility='default' filepath='include/linux/power_supply.h' line='226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fwnode' type-id='4a935625' visibility='default' filepath='include/linux/power_supply.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='drv_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/power_supply.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='attr_grp' type-id='c97de1ac' visibility='default' filepath='include/linux/power_supply.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='supplied_to' type-id='9b23c9ad' visibility='default' filepath='include/linux/power_supply.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='num_supplicants' type-id='b59d7dce' visibility='default' filepath='include/linux/power_supply.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/power_supply.h' line='238' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1c674f90' size-in-bits='64' id='098d4d92'/>
+      <typedef-decl name='p4d_t' type-id='3f3a2344' filepath='include/asm-generic/pgtable-nop4d.h' line='9' column='1' id='09938fc7'/>
+      <function-type size-in-bits='64' id='09978275'>
+        <parameter type-id='5474f420'/>
+        <parameter type-id='bbaf3419'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='8bff8096'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='des_ctx' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/crypto/des.h' line='19' column='1' id='099df029'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='expkey' type-id='6dcfc3c6' visibility='default' filepath='include/crypto/des.h' line='20' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='10c448af' size-in-bits='64' id='09a20593'/>
+      <function-type size-in-bits='64' id='09a8bd0d'>
+        <parameter type-id='f772df6d'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='91ce1af9' size-in-bits='infinite' id='09b35382'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <class-decl name='crypto_scomp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/crypto/internal/scompress.h' line='15' column='1' id='09bcad51'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='0328c8b6' visibility='default' filepath='include/crypto/internal/scompress.h' line='16' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ba046e9a' size-in-bits='64' id='09c59e98'/>
+      <pointer-type-def type-id='48399df0' size-in-bits='64' id='09c5d446'/>
+      <function-type size-in-bits='64' id='09c8759c'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='27675065'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='09c8f1a3'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='cf29c9b3'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='eea6b025'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='xsk_buff_pool' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/net/xsk_buff_pool.h' line='41' column='1' id='09d53b4a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/net/xsk_buff_pool.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='netdev' type-id='68a2d05b' visibility='default' filepath='include/net/xsk_buff_pool.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='xsk_tx_list' type-id='72f469ec' visibility='default' filepath='include/net/xsk_buff_pool.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='xsk_tx_list_lock' type-id='fb4018a0' visibility='default' filepath='include/net/xsk_buff_pool.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='users' type-id='64615833' visibility='default' filepath='include/net/xsk_buff_pool.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='umem' type-id='577ede06' visibility='default' filepath='include/net/xsk_buff_pool.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/net/xsk_buff_pool.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='free_list' type-id='72f469ec' visibility='default' filepath='include/net/xsk_buff_pool.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='heads_cnt' type-id='19c2251e' visibility='default' filepath='include/net/xsk_buff_pool.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='queue_id' type-id='1dc6a898' visibility='default' filepath='include/net/xsk_buff_pool.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='fq' type-id='9fa25a99' visibility='default' filepath='include/net/xsk_buff_pool.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='cq' type-id='9fa25a99' visibility='default' filepath='include/net/xsk_buff_pool.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='dma_pages' type-id='e835b5d8' visibility='default' filepath='include/net/xsk_buff_pool.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='heads' type-id='2d82dfd6' visibility='default' filepath='include/net/xsk_buff_pool.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='chunk_mask' type-id='91ce1af9' visibility='default' filepath='include/net/xsk_buff_pool.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='addrs_cnt' type-id='91ce1af9' visibility='default' filepath='include/net/xsk_buff_pool.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='free_list_cnt' type-id='19c2251e' visibility='default' filepath='include/net/xsk_buff_pool.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='dma_pages_cnt' type-id='19c2251e' visibility='default' filepath='include/net/xsk_buff_pool.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='free_heads_cnt' type-id='19c2251e' visibility='default' filepath='include/net/xsk_buff_pool.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1504'>
+          <var-decl name='headroom' type-id='19c2251e' visibility='default' filepath='include/net/xsk_buff_pool.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='chunk_size' type-id='19c2251e' visibility='default' filepath='include/net/xsk_buff_pool.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='frame_len' type-id='19c2251e' visibility='default' filepath='include/net/xsk_buff_pool.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='cached_need_wakeup' type-id='f9b06939' visibility='default' filepath='include/net/xsk_buff_pool.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1608'>
+          <var-decl name='uses_need_wakeup' type-id='b50a4934' visibility='default' filepath='include/net/xsk_buff_pool.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1616'>
+          <var-decl name='dma_need_sync' type-id='b50a4934' visibility='default' filepath='include/net/xsk_buff_pool.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1624'>
+          <var-decl name='unaligned' type-id='b50a4934' visibility='default' filepath='include/net/xsk_buff_pool.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='addrs' type-id='eaa32e2f' visibility='default' filepath='include/net/xsk_buff_pool.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='cq_lock' type-id='fb4018a0' visibility='default' filepath='include/net/xsk_buff_pool.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='free_heads' type-id='6950699e' visibility='default' filepath='include/net/xsk_buff_pool.h' line='81' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_crtc_commit' size-in-bits='1152' is-struct='yes' visibility='default' filepath='include/drm/drm_atomic.h' line='72' column='1' id='09d6e909'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='crtc' type-id='b64ad7cb' visibility='default' filepath='include/drm/drm_atomic.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ref' type-id='400fb07b' visibility='default' filepath='include/drm/drm_atomic.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flip_done' type-id='f9fef04f' visibility='default' filepath='include/drm/drm_atomic.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='hw_done' type-id='f9fef04f' visibility='default' filepath='include/drm/drm_atomic.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='cleanup_done' type-id='f9fef04f' visibility='default' filepath='include/drm/drm_atomic.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='commit_entry' type-id='72f469ec' visibility='default' filepath='include/drm/drm_atomic.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='event' type-id='6301fad2' visibility='default' filepath='include/drm/drm_atomic.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='abort_completion' type-id='b50a4934' visibility='default' filepath='include/drm/drm_atomic.h' line='157' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='bpf_prog_aux' size-in-bits='5696' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='909' column='1' id='09d9fab9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='refcnt' type-id='28ee064c' visibility='default' filepath='include/linux/bpf.h' line='910' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='used_map_cnt' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='911' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='used_btf_cnt' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='912' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='max_ctx_offset' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='913' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='max_pkt_offset' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='914' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='max_tp_access' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='915' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='stack_depth' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='916' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='id' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='917' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='func_cnt' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='918' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='func_idx' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='919' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='attach_btf_id' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='920' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ctx_arg_info_size' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='921' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='max_rdonly_access' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='922' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='max_rdwr_access' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='923' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='attach_btf' type-id='a469220f' visibility='default' filepath='include/linux/bpf.h' line='924' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ctx_arg_info' type-id='2dd1b3d2' visibility='default' filepath='include/linux/bpf.h' line='925' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='dst_mutex' type-id='925167dc' visibility='default' filepath='include/linux/bpf.h' line='926' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='dst_prog' type-id='bdcee7ae' visibility='default' filepath='include/linux/bpf.h' line='927' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='dst_trampoline' type-id='3014966f' visibility='default' filepath='include/linux/bpf.h' line='928' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='saved_dst_prog_type' type-id='b80df76a' visibility='default' filepath='include/linux/bpf.h' line='929' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='saved_dst_attach_type' type-id='67ce11ed' visibility='default' filepath='include/linux/bpf.h' line='930' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='verifier_zext' type-id='b50a4934' visibility='default' filepath='include/linux/bpf.h' line='931' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1224'>
+          <var-decl name='offload_requested' type-id='b50a4934' visibility='default' filepath='include/linux/bpf.h' line='932' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1232'>
+          <var-decl name='attach_btf_trace' type-id='b50a4934' visibility='default' filepath='include/linux/bpf.h' line='933' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1240'>
+          <var-decl name='func_proto_unreliable' type-id='b50a4934' visibility='default' filepath='include/linux/bpf.h' line='934' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='sleepable' type-id='b50a4934' visibility='default' filepath='include/linux/bpf.h' line='935' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1256'>
+          <var-decl name='tail_call_reachable' type-id='b50a4934' visibility='default' filepath='include/linux/bpf.h' line='936' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='tramp_hlist' type-id='03a4a074' visibility='default' filepath='include/linux/bpf.h' line='937' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='attach_func_proto' type-id='28379b39' visibility='default' filepath='include/linux/bpf.h' line='939' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='attach_func_name' type-id='80f4b756' visibility='default' filepath='include/linux/bpf.h' line='941' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='func' type-id='50b674cc' visibility='default' filepath='include/linux/bpf.h' line='942' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='jit_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/bpf.h' line='943' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='poke_tab' type-id='02b2042b' visibility='default' filepath='include/linux/bpf.h' line='944' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='kfunc_tab' type-id='5d77c671' visibility='default' filepath='include/linux/bpf.h' line='945' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='size_poke_tab' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='946' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='ksym' type-id='466449bc' visibility='default' filepath='include/linux/bpf.h' line='947' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='ops' type-id='330c0db4' visibility='default' filepath='include/linux/bpf.h' line='948' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='used_maps' type-id='0928d5d6' visibility='default' filepath='include/linux/bpf.h' line='949' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='used_maps_mutex' type-id='925167dc' visibility='default' filepath='include/linux/bpf.h' line='950' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='used_btfs' type-id='63855e35' visibility='default' filepath='include/linux/bpf.h' line='951' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='prog' type-id='bdcee7ae' visibility='default' filepath='include/linux/bpf.h' line='952' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='user' type-id='273a7d34' visibility='default' filepath='include/linux/bpf.h' line='953' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='load_time' type-id='91ce1af9' visibility='default' filepath='include/linux/bpf.h' line='954' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='cgroup_storage' type-id='f57e9a44' visibility='default' filepath='include/linux/bpf.h' line='955' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4480'>
+          <var-decl name='name' type-id='ac1fa8c0' visibility='default' filepath='include/linux/bpf.h' line='956' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4608'>
+          <var-decl name='security' type-id='eaa32e2f' visibility='default' filepath='include/linux/bpf.h' line='958' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4672'>
+          <var-decl name='offload' type-id='11f19dd0' visibility='default' filepath='include/linux/bpf.h' line='960' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='btf' type-id='a469220f' visibility='default' filepath='include/linux/bpf.h' line='961' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='func_info' type-id='368d43d3' visibility='default' filepath='include/linux/bpf.h' line='962' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4864'>
+          <var-decl name='func_info_aux' type-id='9ee77e60' visibility='default' filepath='include/linux/bpf.h' line='963' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4928'>
+          <var-decl name='linfo' type-id='2fcb9b17' visibility='default' filepath='include/linux/bpf.h' line='970' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='jited_linfo' type-id='63e171df' visibility='default' filepath='include/linux/bpf.h' line='978' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5056'>
+          <var-decl name='func_info_cnt' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='979' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5088'>
+          <var-decl name='nr_linfo' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='980' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='linfo_idx' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='985' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5152'>
+          <var-decl name='num_exentries' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='986' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='extable' type-id='7f0eb64c' visibility='default' filepath='include/linux/bpf.h' line='987' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='' type-id='ac5ab66e' visibility='default' filepath='include/linux/bpf.h' line='988' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5632'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/bpf.h' line='992' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='57bfbe05' size-in-bits='64' id='09dbca85'/>
+      <pointer-type-def type-id='85bdf127' size-in-bits='64' id='09dcd1bf'/>
+      <qualified-type-def type-id='b5b9216e' const='yes' id='09f052f7'/>
+      <pointer-type-def type-id='bdb32c88' size-in-bits='64' id='09f0b23a'/>
+      <function-type size-in-bits='64' id='09f0c826'>
+        <parameter type-id='6dca061b'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='4e62b18f' size-in-bits='64' id='09f3a86b'/>
+      <qualified-type-def type-id='06b0b498' const='yes' id='09f4a16d'/>
+      <pointer-type-def type-id='8190a159' size-in-bits='64' id='09f6f8ed'/>
+      <function-type size-in-bits='64' id='09fcb6b1'>
+        <parameter type-id='95dc69d1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='b4b8adeb' const='yes' id='09ffba8a'/>
+      <class-decl name='wpan_phy' size-in-bits='9472' is-struct='yes' visibility='default' filepath='include/net/cfg802154.h' line='176' column='1' id='0a042b05'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='privid' type-id='eaa32e2f' visibility='default' filepath='include/net/cfg802154.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg802154.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='current_channel' type-id='f9b06939' visibility='default' filepath='include/net/cfg802154.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='current_page' type-id='f9b06939' visibility='default' filepath='include/net/cfg802154.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='supported' type-id='7b03c2a4' visibility='default' filepath='include/net/cfg802154.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='transmit_power' type-id='a7832498' visibility='default' filepath='include/net/cfg802154.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1632'>
+          <var-decl name='cca' type-id='51a1cee7' visibility='default' filepath='include/net/cfg802154.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='perm_extended_addr' type-id='a30e8d1f' visibility='default' filepath='include/net/cfg802154.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='cca_ed_level' type-id='a7832498' visibility='default' filepath='include/net/cfg802154.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1824'>
+          <var-decl name='symbol_duration' type-id='f9b06939' visibility='default' filepath='include/net/cfg802154.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1840'>
+          <var-decl name='lifs_period' type-id='1dc6a898' visibility='default' filepath='include/net/cfg802154.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='sifs_period' type-id='1dc6a898' visibility='default' filepath='include/net/cfg802154.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/net/cfg802154.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9216'>
+          <var-decl name='_net' type-id='c9df1e6c' visibility='default' filepath='include/net/cfg802154.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9472'>
+          <var-decl name='priv' type-id='e84913bd' visibility='default' filepath='include/net/cfg802154.h' line='217' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='0a04ae5f'>
+        <parameter type-id='74d89ebd'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='4e8a6f85' size-in-bits='64' id='0a0775b5'/>
+      <pointer-type-def type-id='be9189df' size-in-bits='64' id='0a0aff97'/>
+      <pointer-type-def type-id='fd1f8b7c' size-in-bits='64' id='0a18715a'/>
+      <enum-decl name='typec_port_type' filepath='include/linux/usb/typec.h' line='26' column='1' id='0a19b04e'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='TYPEC_PORT_SRC' value='0'/>
+        <enumerator name='TYPEC_PORT_SNK' value='1'/>
+        <enumerator name='TYPEC_PORT_DRP' value='2'/>
+      </enum-decl>
+      <qualified-type-def type-id='45814d78' const='yes' id='0a26da71'/>
+      <enum-decl name='ethtool_link_ext_substate_autoneg' filepath='include/uapi/linux/ethtool.h' line='609' column='1' id='0a2ee428'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED' value='1'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED' value='2'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED' value='3'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE' value='4'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE' value='5'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD' value='6'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='0a38a8f0'>
+        <parameter type-id='3aaeef89'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='7359adad'/>
+      </function-type>
+      <class-decl name='l2tp_tunnel' size-in-bits='3200' is-struct='yes' visibility='default' filepath='net/l2tp/l2tp_core.h' line='157' column='1' id='0a3ca20a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='magic' type-id='95e97e5e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dead' type-id='7359adad' visibility='default' filepath='net/l2tp/l2tp_core.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='net/l2tp/l2tp_core.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='hlist_lock' type-id='ac16795b' visibility='default' filepath='net/l2tp/l2tp_core.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='acpt_newsess' type-id='b50a4934' visibility='default' filepath='net/l2tp/l2tp_core.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='session_hlist' type-id='ccfd385f' visibility='default' filepath='net/l2tp/l2tp_core.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='tunnel_id' type-id='19c2251e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='peer_tunnel_id' type-id='19c2251e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='version' type-id='95e97e5e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1504'>
+          <var-decl name='name' type-id='664ac0b7' visibility='default' filepath='net/l2tp/l2tp_core.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='encap' type-id='eab21901' visibility='default' filepath='net/l2tp/l2tp_core.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='stats' type-id='33e678c3' visibility='default' filepath='net/l2tp/l2tp_core.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='net/l2tp/l2tp_core.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='l2tp_net' type-id='a2bff676' visibility='default' filepath='net/l2tp/l2tp_core.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='ref_count' type-id='64615833' visibility='default' filepath='net/l2tp/l2tp_core.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='old_sk_destruct' type-id='841969d0' visibility='default' filepath='net/l2tp/l2tp_core.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='sock' type-id='f772df6d' visibility='default' filepath='net/l2tp/l2tp_core.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='fd' type-id='95e97e5e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='del_work' type-id='ef9025d0' visibility='default' filepath='net/l2tp/l2tp_core.h' line='187' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='aa0df914' size-in-bits='64' id='0a3de906'/>
+      <class-decl name='fb_pixmap' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/fb.h' line='186' column='1' id='0a45c8ef'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='8bff8096' visibility='default' filepath='include/linux/fb.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='offset' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='buf_align' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='scan_align' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='access_align' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='blit_x' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='blit_y' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='writeio' type-id='888567bf' visibility='default' filepath='include/linux/fb.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='readio' type-id='888567bf' visibility='default' filepath='include/linux/fb.h' line='200' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7486ad2e' size-in-bits='64' id='0a4e3854'/>
+      <class-decl name='v4l2_format' size-in-bits='1664' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2332' column='1' id='0a5711c9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fmt' type-id='ac5ab601' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2343' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='netns_nf' size-in-bits='1920' is-struct='yes' visibility='default' filepath='include/net/netns/netfilter.h' line='12' column='1' id='0a6298e0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='proc_netfilter' type-id='d077e928' visibility='default' filepath='include/net/netns/netfilter.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nf_loggers' type-id='e521ce61' visibility='default' filepath='include/net/netns/netfilter.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='nf_log_dir_header' type-id='11b101bb' visibility='default' filepath='include/net/netns/netfilter.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='hooks_ipv4' type-id='94310593' visibility='default' filepath='include/net/netns/netfilter.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='hooks_ipv6' type-id='94310593' visibility='default' filepath='include/net/netns/netfilter.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='hooks_arp' type-id='d82cf371' visibility='default' filepath='include/net/netns/netfilter.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='defrag_ipv4_users' type-id='f0981eeb' visibility='default' filepath='include/net/netns/netfilter.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1824'>
+          <var-decl name='defrag_ipv6_users' type-id='f0981eeb' visibility='default' filepath='include/net/netns/netfilter.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/netns/netfilter.h' line='35' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='0a77e414'>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='58dc55d6'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='0a7e93ab'>
+        <parameter type-id='b977ca56'/>
+        <parameter type-id='ad61830a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='0a831e58'>
+        <parameter type-id='226853d2'/>
+        <parameter type-id='f74174a4'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='bd54fe1a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='0a84ab07'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='7b49a935' size-in-bits='64' id='0a95e709'/>
+      <pointer-type-def type-id='e14d461f' size-in-bits='64' id='0a981d27'/>
+      <pointer-type-def type-id='325adc8b' size-in-bits='64' id='0a9b173b'/>
+      <qualified-type-def type-id='486f930e' const='yes' id='0aade30f'/>
+      <enum-decl name='__anonymous_enum__' filepath='include/linux/zstd.h' line='119' column='1' id='0aaee52d' is-anonymous='yes'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ZSTD_fast' value='0'/>
+        <enumerator name='ZSTD_dfast' value='1'/>
+        <enumerator name='ZSTD_greedy' value='2'/>
+        <enumerator name='ZSTD_lazy' value='3'/>
+        <enumerator name='ZSTD_lazy2' value='4'/>
+        <enumerator name='ZSTD_btlazy2' value='5'/>
+        <enumerator name='ZSTD_btopt' value='6'/>
+        <enumerator name='ZSTD_btopt2' value='7'/>
+      </enum-decl>
+      <pointer-type-def type-id='c9365c7b' size-in-bits='64' id='0ab14abf'/>
+      <class-decl name='drm_client_dev' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/drm/drm_client.h' line='71' column='1' id='0ab6a08c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='8898134d' visibility='default' filepath='include/drm/drm_client.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/drm/drm_client.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_client.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='funcs' type-id='67ede465' visibility='default' filepath='include/drm/drm_client.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='file' type-id='9e99ecc1' visibility='default' filepath='include/drm/drm_client.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='modeset_mutex' type-id='925167dc' visibility='default' filepath='include/drm/drm_client.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='modesets' type-id='8106240b' visibility='default' filepath='include/drm/drm_client.h' line='108' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mem_section' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/mmzone.h' line='1532' column='1' id='0ab7f6be'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='section_mem_map' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='1545' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='usage' type-id='34996a40' visibility='default' filepath='include/linux/mmzone.h' line='1547' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='page_ext' type-id='459ae684' visibility='default' filepath='include/linux/mmzone.h' line='1553' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pad' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='1554' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='led_default_state' filepath='include/linux/leds.h' line='36' column='1' id='0abd3de9'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='LEDS_DEFSTATE_OFF' value='0'/>
+        <enumerator name='LEDS_DEFSTATE_ON' value='1'/>
+        <enumerator name='LEDS_DEFSTATE_KEEP' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='170c8692' size-in-bits='64' id='0abee587'/>
+      <function-type size-in-bits='64' id='0ac430cb'>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='cd012107'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='19edf9fe' size-in-bits='64' id='0ac68794'/>
+      <class-decl name='xhci_bw_info' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='875' column='1' id='0acb8a06'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ep_interval' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='877' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='mult' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='879' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_packets' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='880' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='max_packet_size' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='881' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='max_esit_payload' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='882' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='883' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='0ad12489'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='6d120807'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='bpf_cgroup_storage_map' is-struct='yes' visibility='default' is-declaration-only='yes' id='0ad68707'/>
+      <pointer-type-def type-id='255fd689' size-in-bits='64' id='0ad82ef5'/>
+      <pointer-type-def type-id='ac765b39' size-in-bits='64' id='0ad8f865'/>
+      <class-decl name='netns_bpf' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/net/netns/bpf.h' line='14' column='1' id='0adc5858'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='run_array' type-id='26e7af58' visibility='default' filepath='include/net/netns/bpf.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='progs' type-id='aac02b0e' visibility='default' filepath='include/net/netns/bpf.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='links' type-id='e4f16420' visibility='default' filepath='include/net/netns/bpf.h' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e5a91b7f' size-in-bits='64' id='0adcd7cb'/>
+      <function-type size-in-bits='64' id='0ae96173'>
+        <parameter type-id='72bb8c36'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='0b1ae172' size-in-bits='64' id='0aeca82c'/>
+      <class-decl name='nf_conntrack_l4proto' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack_l4proto.h' line='20' column='1' id='0af737ca'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='l4proto' type-id='892641a4' visibility='default' filepath='include/net/netfilter/nf_conntrack_l4proto.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='allow_clash' type-id='b50a4934' visibility='default' filepath='include/net/netfilter/nf_conntrack_l4proto.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='nlattr_size' type-id='1dc6a898' visibility='default' filepath='include/net/netfilter/nf_conntrack_l4proto.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='can_early_drop' type-id='72720131' visibility='default' filepath='include/net/netfilter/nf_conntrack_l4proto.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='to_nlattr' type-id='fe2b49fa' visibility='default' filepath='include/net/netfilter/nf_conntrack_l4proto.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='from_nlattr' type-id='871d04db' visibility='default' filepath='include/net/netfilter/nf_conntrack_l4proto.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='tuple_to_nlattr' type-id='97a14109' visibility='default' filepath='include/net/netfilter/nf_conntrack_l4proto.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='nlattr_tuple_size' type-id='0838a534' visibility='default' filepath='include/net/netfilter/nf_conntrack_l4proto.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='nlattr_to_tuple' type-id='6c2cb475' visibility='default' filepath='include/net/netfilter/nf_conntrack_l4proto.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='nla_policy' type-id='109cdb66' visibility='default' filepath='include/net/netfilter/nf_conntrack_l4proto.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ctnl_timeout' type-id='e7f4406f' visibility='default' filepath='include/net/netfilter/nf_conntrack_l4proto.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='print_conntrack' type-id='cfb1203d' visibility='default' filepath='include/net/netfilter/nf_conntrack_l4proto.h' line='60' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5558489b' size-in-bits='64' id='0afa6ea3'/>
+      <function-type size-in-bits='64' id='0afc6f78'>
+        <parameter type-id='b88dd945'/>
+        <parameter type-id='2665334e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a6222917' size-in-bits='64' id='0b001c1f'/>
+      <function-type size-in-bits='64' id='0b0288d6'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='2352f3ae' size-in-bits='64' id='0b19fc54'/>
+      <function-type size-in-bits='64' id='0b1ae172'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='78627a7e' size-in-bits='64' id='0b1bf018'/>
+      <function-type size-in-bits='64' id='0b1ef2a8'>
+        <parameter type-id='bff05edb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='merkle_tree_params' size-in-bits='960' is-struct='yes' visibility='default' filepath='fs/verity/fsverity_private.h' line='45' column='1' id='0b26224b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hash_alg' type-id='c14ebfd3' visibility='default' filepath='fs/verity/fsverity_private.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hashstate' type-id='bbaf3419' visibility='default' filepath='fs/verity/fsverity_private.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='digest_size' type-id='f0981eeb' visibility='default' filepath='fs/verity/fsverity_private.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='block_size' type-id='f0981eeb' visibility='default' filepath='fs/verity/fsverity_private.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hashes_per_block' type-id='f0981eeb' visibility='default' filepath='fs/verity/fsverity_private.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='log_blocksize' type-id='f0981eeb' visibility='default' filepath='fs/verity/fsverity_private.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='log_arity' type-id='f0981eeb' visibility='default' filepath='fs/verity/fsverity_private.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='num_levels' type-id='f0981eeb' visibility='default' filepath='fs/verity/fsverity_private.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='tree_size' type-id='91ce1af9' visibility='default' filepath='fs/verity/fsverity_private.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='level0_blocks' type-id='7359adad' visibility='default' filepath='fs/verity/fsverity_private.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='level_start' type-id='6094c99c' visibility='default' filepath='fs/verity/fsverity_private.h' line='61' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='0b26778c'>
+        <parameter type-id='c0ced320'/>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='27675065'/>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='27675065'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='frs_typec_current' filepath='drivers/usb/typec/tcpm/tcpm.c' line='238' column='1' id='0b2a97f1'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='FRS_NOT_SUPPORTED' value='0'/>
+        <enumerator name='FRS_DEFAULT_POWER' value='1'/>
+        <enumerator name='FRS_5V_1P5A' value='2'/>
+        <enumerator name='FRS_5V_3A' value='3'/>
+      </enum-decl>
+      <class-decl name='nf_ct_gre' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/netfilter/nf_conntrack_proto_gre.h' line='8' column='1' id='0b2cc27e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='stream_timeout' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/nf_conntrack_proto_gre.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='timeout' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/nf_conntrack_proto_gre.h' line='10' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_subdev_ir_parameters' size-in-bits='352' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='559' column='1' id='0b2fc110'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bytes_per_data_element' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-subdev.h' line='560' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='mode' type-id='562dbe04' visibility='default' filepath='include/media/v4l2-subdev.h' line='561' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='enable' type-id='b50a4934' visibility='default' filepath='include/media/v4l2-subdev.h' line='563' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='interrupt_enable' type-id='b50a4934' visibility='default' filepath='include/media/v4l2-subdev.h' line='564' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='shutdown' type-id='b50a4934' visibility='default' filepath='include/media/v4l2-subdev.h' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='modulation' type-id='b50a4934' visibility='default' filepath='include/media/v4l2-subdev.h' line='567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='max_pulse_width' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-subdev.h' line='568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='carrier_freq' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-subdev.h' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='duty_cycle' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-subdev.h' line='570' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='invert_level' type-id='b50a4934' visibility='default' filepath='include/media/v4l2-subdev.h' line='571' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='invert_carrier_sense' type-id='b50a4934' visibility='default' filepath='include/media/v4l2-subdev.h' line='574' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='noise_filter_min_width' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-subdev.h' line='577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='carrier_range_lower' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-subdev.h' line='578' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='carrier_range_upper' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-subdev.h' line='579' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='resolution' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-subdev.h' line='580' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='135de8a2' size-in-bits='64' id='0b3f2e4c'/>
+      <class-decl name='bt_sock_list' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/bluetooth/bluetooth.h' line='305' column='1' id='0b3fb2b5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='head' type-id='e151255a' visibility='default' filepath='include/net/bluetooth/bluetooth.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='lock' type-id='ac16795b' visibility='default' filepath='include/net/bluetooth/bluetooth.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='custom_seq_show' type-id='0131eb61' visibility='default' filepath='include/net/bluetooth/bluetooth.h' line='309' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7e5de8f5' size-in-bits='64' id='0b475e59'/>
+      <function-type size-in-bits='64' id='0b4fb7b5'>
+        <parameter type-id='fc4f83c1'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='1dc6a898'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a71373a3' size-in-bits='64' id='0b56752f'/>
+      <function-type size-in-bits='64' id='0b57727f'>
+        <parameter type-id='2567e379'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='bd54fe1a'/>
+        <parameter type-id='b53e8dbb'/>
+        <return type-id='bd54fe1a'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='282b2805' size-in-bits='64' id='0b5c2c22'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='0b5c3086'>
+        <parameter type-id='ecb0ce18'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='79a0948f'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='c777e389'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e501fad6' size-in-bits='64' id='0b5e03e0'/>
+      <array-type-def dimensions='1' type-id='282b2805' size-in-bits='32' id='0b5e6ab9'>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+      </array-type-def>
+      <pointer-type-def type-id='05cdb97d' size-in-bits='64' id='0b603cc1'/>
+      <pointer-type-def type-id='3f6ca798' size-in-bits='64' id='0b660ebe'/>
+      <pointer-type-def type-id='5520e014' size-in-bits='64' id='0b6bd27e'/>
+      <function-type size-in-bits='64' id='0b6df38c'>
+        <parameter type-id='70d417ab'/>
+        <parameter type-id='c151d965'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='activate_complete' type-id='1ed1e4cd' filepath='include/scsi/scsi_dh.h' line='47' column='1' id='0b6eba4d'/>
+      <pointer-type-def type-id='0a04ae5f' size-in-bits='64' id='0b72aa63'/>
+      <pointer-type-def type-id='fe7ab802' size-in-bits='64' id='0b8718c0'/>
+      <qualified-type-def type-id='1958bd2a' const='yes' id='0b88199f'/>
+      <pointer-type-def type-id='f1babf06' size-in-bits='64' id='0b8c9d30'/>
+      <pointer-type-def type-id='379be6ec' size-in-bits='64' id='0b8ca8fa'/>
+      <pointer-type-def type-id='b8a3dbd4' size-in-bits='64' id='0b8da5f6'/>
+      <class-decl name='drm_mm' size-in-bits='1920' is-struct='yes' visibility='default' filepath='include/drm/drm_mm.h' line='188' column='1' id='0b8ea949'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='color_adjust' type-id='4bcdfb80' visibility='default' filepath='include/drm/drm_mm.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hole_stack' type-id='72f469ec' visibility='default' filepath='include/drm/drm_mm.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='head_node' type-id='60498a7e' visibility='default' filepath='include/drm/drm_mm.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='interval_tree' type-id='6fe1603d' visibility='default' filepath='include/drm/drm_mm.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='holes_size' type-id='6fe1603d' visibility='default' filepath='include/drm/drm_mm.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='holes_addr' type-id='dec44472' visibility='default' filepath='include/drm/drm_mm.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='scan_active' type-id='7359adad' visibility='default' filepath='include/drm/drm_mm.h' line='213' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='71099d68' size-in-bits='64' id='0b8fca52'/>
+      <enum-decl name='drm_connector_registration_state' filepath='include/drm/drm_connector.h' line='94' column='1' id='0b8fe6b9'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DRM_CONNECTOR_INITIALIZING' value='0'/>
+        <enumerator name='DRM_CONNECTOR_REGISTERED' value='1'/>
+        <enumerator name='DRM_CONNECTOR_UNREGISTERED' value='2'/>
+      </enum-decl>
+      <typedef-decl name='seqcount_spinlock_t' type-id='0f5450f3' filepath='include/linux/seqlock.h' line='277' column='1' id='0b9c5397'/>
+      <class-decl name='hid_report_enum' size-in-bits='16576' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='500' column='1' id='0b9e92f3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='numbered' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='501' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='report_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='502' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='report_id_hash' type-id='042b23b6' visibility='default' filepath='include/linux/hid.h' line='503' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0174792d' size-in-bits='64' id='0ba194b9'/>
+      <function-type size-in-bits='64' id='0bb075d8'>
+        <parameter type-id='7a29ff27'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <class-decl name='std_timing' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/drm/drm_edid.h' line='58' column='1' id='0bb26f49'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hsize' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='vfreq_aspect' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='60' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='20d04fee' size-in-bits='64' id='0bb617a4'/>
+      <pointer-type-def type-id='da1685e2' size-in-bits='64' id='0bb81b50'/>
+      <pointer-type-def type-id='62bd013f' size-in-bits='64' id='0bbc9f87'/>
+      <pointer-type-def type-id='391f1e06' size-in-bits='64' id='0bd06100'/>
+      <function-type size-in-bits='64' id='0bd5d3ee'>
+        <parameter type-id='108dbc98'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='ba7a26c1'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='0bd6c9bd'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='bd3860fe'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='0be333ab'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='input_handler' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/input.h' line='316' column='1' id='0be82508'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='private' type-id='eaa32e2f' visibility='default' filepath='include/linux/input.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='event' type-id='37a787dc' visibility='default' filepath='include/linux/input.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='events' type-id='ddacdfe6' visibility='default' filepath='include/linux/input.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='filter' type-id='95325033' visibility='default' filepath='include/linux/input.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='match' type-id='ff015e22' visibility='default' filepath='include/linux/input.h' line='324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='connect' type-id='5c6fb334' visibility='default' filepath='include/linux/input.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='disconnect' type-id='3e15391d' visibility='default' filepath='include/linux/input.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='start' type-id='3e15391d' visibility='default' filepath='include/linux/input.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='legacy_minors' type-id='b50a4934' visibility='default' filepath='include/linux/input.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='minor' type-id='95e97e5e' visibility='default' filepath='include/linux/input.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/input.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='id_table' type-id='cf2e76b1' visibility='default' filepath='include/linux/input.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='h_list' type-id='72f469ec' visibility='default' filepath='include/linux/input.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/input.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/input.h' line='338' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='1435ffc6' const='yes' id='0c01943f'/>
+      <pointer-type-def type-id='a73e5d15' size-in-bits='64' id='0c025d55'/>
+      <pointer-type-def type-id='c251f90f' size-in-bits='64' id='0c0b353f'/>
+      <pointer-type-def type-id='50801c15' size-in-bits='64' id='0c16aca1'/>
+      <pointer-type-def type-id='86a0b663' size-in-bits='64' id='0c197ddf'/>
+      <pointer-type-def type-id='5e084b85' size-in-bits='64' id='0c1984e5'/>
+      <qualified-type-def type-id='6193579c' const='yes' id='0c1d8f67'/>
+      <pointer-type-def type-id='6e12d1c7' size-in-bits='64' id='0c1f5dab'/>
+      <function-type size-in-bits='64' id='0c227c61'>
+        <parameter type-id='4a935625'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='qcom_smem_state' size-in-bits='384' is-struct='yes' visibility='default' filepath='drivers/soc/qcom/smem_state.c' line='25' column='1' id='0c2997ce'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='refcount' type-id='400fb07b' visibility='default' filepath='drivers/soc/qcom/smem_state.c' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='orphan' type-id='b50a4934' visibility='default' filepath='drivers/soc/qcom/smem_state.c' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='drivers/soc/qcom/smem_state.c' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='of_node' type-id='9a537bbe' visibility='default' filepath='drivers/soc/qcom/smem_state.c' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='drivers/soc/qcom/smem_state.c' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ops' type-id='3419b67d' visibility='default' filepath='drivers/soc/qcom/smem_state.c' line='34' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='67db36ed' size-in-bits='64' id='0c2c419d'/>
+      <enum-decl name='nvmem_type' filepath='include/linux/nvmem-provider.h' line='23' column='1' id='0c30c73e'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NVMEM_TYPE_UNKNOWN' value='0'/>
+        <enumerator name='NVMEM_TYPE_EEPROM' value='1'/>
+        <enumerator name='NVMEM_TYPE_OTP' value='2'/>
+        <enumerator name='NVMEM_TYPE_BATTERY_BACKED' value='3'/>
+        <enumerator name='NVMEM_TYPE_FRAM' value='4'/>
+      </enum-decl>
+      <class-decl name='optimistic_spin_queue' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/osq_lock.h' line='15' column='1' id='0c3105cd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tail' type-id='49178f86' visibility='default' filepath='include/linux/osq_lock.h' line='20' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='0c319a47'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='242fdc5f' size-in-bits='64' id='0c33493b'/>
+      <class-decl name='v4l2_subscribed_event' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/media/v4l2-event.h' line='70' column='1' id='0c33dc69'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-event.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='type' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-event.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='id' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-event.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-event.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='fh' type-id='b7db9582' visibility='default' filepath='include/media/v4l2-event.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-event.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ops' type-id='d66d2cad' visibility='default' filepath='include/media/v4l2-event.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='elems' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-event.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='first' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-event.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='in_use' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-event.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='events' type-id='a892e311' visibility='default' filepath='include/media/v4l2-event.h' line='81' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='0c3d809b'>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='323ed2e5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='5f0d764c' const='yes' id='0c45e0bb'/>
+      <pointer-type-def type-id='a62a5dcb' size-in-bits='64' id='0c4b82c7'/>
+      <pointer-type-def type-id='b8f49971' size-in-bits='64' id='0c65b409'/>
+      <class-decl name='drm_bridge_timings' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/drm/drm_bridge.h' line='657' column='1' id='0c695772'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='input_bus_flags' type-id='19c2251e' visibility='default' filepath='include/drm/drm_bridge.h' line='665' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='setup_time_ps' type-id='19c2251e' visibility='default' filepath='include/drm/drm_bridge.h' line='672' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hold_time_ps' type-id='19c2251e' visibility='default' filepath='include/drm/drm_bridge.h' line='679' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='dual_link' type-id='b50a4934' visibility='default' filepath='include/drm/drm_bridge.h' line='687' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ff_effect' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/uapi/linux/input.h' line='450' column='1' id='0c6ad5d3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='id' type-id='b55def60' visibility='default' filepath='include/uapi/linux/input.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='direction' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='trigger' type-id='bd8e6f06' visibility='default' filepath='include/uapi/linux/input.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='replay' type-id='74a8f9e9' visibility='default' filepath='include/uapi/linux/input.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='u' type-id='ac5ab5e4' visibility='default' filepath='include/uapi/linux/input.h' line='463' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1b04dce5' size-in-bits='64' id='0c6d12d5'/>
+      <pointer-type-def type-id='07c80a4b' size-in-bits='64' id='0c707328'/>
+      <function-type size-in-bits='64' id='0c71d025'>
+        <parameter type-id='f22e4524'/>
+        <parameter type-id='bb7889ed'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='08ae2a9f' size-in-bits='256' id='0c7316af'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <class-decl name='uevent_sock' is-struct='yes' visibility='default' is-declaration-only='yes' id='0c7ab04d'/>
+      <pointer-type-def type-id='65655453' size-in-bits='64' id='0c7d25ff'/>
+      <pointer-type-def type-id='5344bebe' size-in-bits='64' id='0c7d3068'/>
+      <class-decl name='iw_priv_args' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/wireless.h' line='1063' column='1' id='0c842ad9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/wireless.h' line='1064' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='set_args' type-id='d315442e' visibility='default' filepath='include/uapi/linux/wireless.h' line='1065' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='get_args' type-id='d315442e' visibility='default' filepath='include/uapi/linux/wireless.h' line='1066' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/linux/wireless.h' line='1067' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='arch_msi_msg_addr_lo_t' type-id='fda93ff5' filepath='include/linux/msi.h' line='13' column='1' id='0c8751d3'/>
+      <class-decl name='thread_struct' size-in-bits='8704' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='136' column='1' id='0c8a83c7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cpu_context' type-id='6a577ca5' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='uw' type-id='e7f44003' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5312'>
+          <var-decl name='fpsimd_cpu' type-id='f0981eeb' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='sve_state' type-id='eaa32e2f' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5440'>
+          <var-decl name='sve_vl' type-id='f0981eeb' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5472'>
+          <var-decl name='sve_vl_onexec' type-id='f0981eeb' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='fault_address' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='fault_code' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5632'>
+          <var-decl name='debug' type-id='2f821a8d' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='keys_user' type-id='b7ed9e82' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8448'>
+          <var-decl name='keys_kernel' type-id='624236e8' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8576'>
+          <var-decl name='mte_ctrl' type-id='91ce1af9' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='sctlr_user' type-id='91ce1af9' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='168' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='net_device_path_type' filepath='include/linux/netdevice.h' line='884' column='1' id='0c8e3c71'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEV_PATH_ETHERNET' value='0'/>
+        <enumerator name='DEV_PATH_VLAN' value='1'/>
+        <enumerator name='DEV_PATH_BRIDGE' value='2'/>
+        <enumerator name='DEV_PATH_PPPOE' value='3'/>
+        <enumerator name='DEV_PATH_DSA' value='4'/>
+      </enum-decl>
+      <pointer-type-def type-id='51dff603' size-in-bits='64' id='0c90828b'/>
+      <pointer-type-def type-id='36051b76' size-in-bits='64' id='0c90c619'/>
+      <class-decl name='cfg80211_ssid' size-in-bits='264' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2505' column='1' id='0c960fcf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='2506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='2507' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='0c98f83d'>
+        <parameter type-id='28271da3'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='bd54fe1a'/>
+        <return type-id='bd54fe1a'/>
+      </function-type>
+      <pointer-type-def type-id='29e79c3f' size-in-bits='64' id='0c9ab50f'/>
+      <enum-decl name='thermal_trend' filepath='include/linux/thermal.h' line='40' column='1' id='0ca326b7'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='THERMAL_TREND_STABLE' value='0'/>
+        <enumerator name='THERMAL_TREND_RAISING' value='1'/>
+        <enumerator name='THERMAL_TREND_DROPPING' value='2'/>
+        <enumerator name='THERMAL_TREND_RAISE_FULL' value='3'/>
+        <enumerator name='THERMAL_TREND_DROP_FULL' value='4'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='0caa7082'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='b53e8dbb'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='0cac4a12'>
+        <parameter type-id='c0ced320'/>
+        <parameter type-id='27675065'/>
+        <parameter type-id='ab7bbd67'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='38db93a7' size-in-bits='64' id='0cb0b26f'/>
+      <class-decl name='typec_switch_desc' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/usb/typec_mux.h' line='18' column='1' id='0cb588a9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fwnode' type-id='4a935625' visibility='default' filepath='include/linux/usb/typec_mux.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='set' type-id='d08a3e2d' visibility='default' filepath='include/linux/usb/typec_mux.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/usb/typec_mux.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='drvdata' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb/typec_mux.h' line='22' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c7ead0f9' size-in-bits='64' id='0cbbabe1'/>
+      <pointer-type-def type-id='8bf54ce9' size-in-bits='64' id='0cc3e605'/>
+      <class-decl name='sk_msg' size-in-bits='5696' is-struct='yes' visibility='default' filepath='include/linux/skmsg.h' line='44' column='1' id='0cc5a40d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sg' type-id='c13b9e48' visibility='default' filepath='include/linux/skmsg.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/skmsg.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='data_end' type-id='eaa32e2f' visibility='default' filepath='include/linux/skmsg.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='apply_bytes' type-id='19c2251e' visibility='default' filepath='include/linux/skmsg.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5280'>
+          <var-decl name='cork_bytes' type-id='19c2251e' visibility='default' filepath='include/linux/skmsg.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5312'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/linux/skmsg.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='skb' type-id='0fbf3cfd' visibility='default' filepath='include/linux/skmsg.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5440'>
+          <var-decl name='sk_redir' type-id='f772df6d' visibility='default' filepath='include/linux/skmsg.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='sk' type-id='f772df6d' visibility='default' filepath='include/linux/skmsg.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/skmsg.h' line='54' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='0ccb1a26'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='31fdacad' size-in-bits='64' id='0cce9961'/>
+      <pointer-type-def type-id='6d544aa1' size-in-bits='64' id='0cd76695'/>
+      <pointer-type-def type-id='64b77daa' size-in-bits='64' id='0cda9080'/>
+      <function-type size-in-bits='64' id='0cdc58b8'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='7156b317'/>
+      </function-type>
+      <function-type size-in-bits='64' id='0ce23611'>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='5a0af12e'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='02f11ed4'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='sg_dma_page_iter' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/scatterlist.h' line='421' column='1' id='0ce27f37'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='78e3e1d2' visibility='default' filepath='include/linux/scatterlist.h' line='422' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a8a68c63' size-in-bits='64' id='0ce81823'/>
+      <function-type size-in-bits='64' id='0cf2912e'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='69bf7bee'/>
+        <return type-id='bd54fe1a'/>
+      </function-type>
+      <function-type size-in-bits='64' id='0cf765ad'>
+        <parameter type-id='02f11ed4'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='afb1917e' size-in-bits='64' id='0cfacb48'/>
+      <function-type size-in-bits='64' id='0d01392b'>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='pt_regs' size-in-bits='2688' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/ptrace.h' line='178' column='1' id='0d029111'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab595' visibility='default' filepath='arch/arm64/include/asm/ptrace.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='orig_x0' type-id='91ce1af9' visibility='default' filepath='arch/arm64/include/asm/ptrace.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='syscallno' type-id='a7832498' visibility='default' filepath='arch/arm64/include/asm/ptrace.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2272'>
+          <var-decl name='unused2' type-id='19c2251e' visibility='default' filepath='arch/arm64/include/asm/ptrace.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='sdei_ttbr1' type-id='91ce1af9' visibility='default' filepath='arch/arm64/include/asm/ptrace.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='pmr_save' type-id='91ce1af9' visibility='default' filepath='arch/arm64/include/asm/ptrace.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='stackframe' type-id='24a375b2' visibility='default' filepath='arch/arm64/include/asm/ptrace.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='lockdep_hardirqs' type-id='91ce1af9' visibility='default' filepath='arch/arm64/include/asm/ptrace.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='exit_rcu' type-id='91ce1af9' visibility='default' filepath='arch/arm64/include/asm/ptrace.h' line='203' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5198bc0d' size-in-bits='64' id='0d07dca9'/>
+      <pointer-type-def type-id='682b5b84' size-in-bits='64' id='0d08ac62'/>
+      <enum-decl name='rw_hint' filepath='include/linux/fs.h' line='301' column='1' id='0d20c3dd'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='WRITE_LIFE_NOT_SET' value='0'/>
+        <enumerator name='WRITE_LIFE_NONE' value='1'/>
+        <enumerator name='WRITE_LIFE_SHORT' value='2'/>
+        <enumerator name='WRITE_LIFE_MEDIUM' value='3'/>
+        <enumerator name='WRITE_LIFE_LONG' value='4'/>
+        <enumerator name='WRITE_LIFE_EXTREME' value='5'/>
+      </enum-decl>
+      <class-decl name='spmi_controller' size-in-bits='7616' is-struct='yes' visibility='default' filepath='include/linux/spmi.h' line='81' column='1' id='0d22ecf9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/spmi.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='nr' type-id='f0981eeb' visibility='default' filepath='include/linux/spmi.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='cmd' type-id='a93a5fe1' visibility='default' filepath='include/linux/spmi.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='read_cmd' type-id='e12cb9fe' visibility='default' filepath='include/linux/spmi.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='write_cmd' type-id='4496b625' visibility='default' filepath='include/linux/spmi.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/spmi.h' line='89' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='dcf61f1a' size-in-bits='64' id='0d2afef8'/>
+      <pointer-type-def type-id='1f305e7e' size-in-bits='64' id='0d378d14'/>
+      <pointer-type-def type-id='d066d157' size-in-bits='64' id='0d3b0dcf'/>
+      <function-type size-in-bits='64' id='0d3f29fc'>
+        <parameter type-id='260390aa'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='887d0019' size-in-bits='64' id='0d40a3dd'/>
+      <array-type-def dimensions='1' type-id='f0981eeb' size-in-bits='64' id='0d532ec1'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='48d9bab6' size-in-bits='64' id='0d5afeb0'/>
+      <array-type-def dimensions='1' type-id='f0981eeb' size-in-bits='192' id='0d5c291d'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <pointer-type-def type-id='e4068754' size-in-bits='64' id='0d618886'/>
+      <array-type-def dimensions='1' type-id='f0981eeb' size-in-bits='288' id='0d6477e2'>
+        <subrange length='9' type-id='7ff19f0f' id='12e4273c'/>
+      </array-type-def>
+      <pointer-type-def type-id='70923669' size-in-bits='64' id='0d6a59e1'/>
+      <class-decl name='iommu_fwspec' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/iommu.h' line='634' column='1' id='0d6f83ff'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='f1ac64d0' visibility='default' filepath='include/linux/iommu.h' line='635' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='iommu_fwnode' type-id='4a935625' visibility='default' filepath='include/linux/iommu.h' line='636' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/linux/iommu.h' line='637' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='num_ids' type-id='f0981eeb' visibility='default' filepath='include/linux/iommu.h' line='638' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ids' type-id='c165e8b9' visibility='default' filepath='include/linux/iommu.h' line='639' column='1'/>
+        </data-member>
+      </class-decl>
+      <type-decl name='unsigned long long int' size-in-bits='64' id='0d77e947'/>
+      <pointer-type-def type-id='bed67209' size-in-bits='64' id='0d786921'/>
+      <pointer-type-def type-id='3870c7c3' size-in-bits='64' id='0d7f0367'/>
+      <class-decl name='syscall_user_dispatch' is-struct='yes' visibility='default' filepath='include/linux/syscall_user_dispatch.h' line='26' column='1' id='0d8347c7'/>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='128' id='0d8415b5'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <class-decl name='media_intf_devnode' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/media/media-entity.h' line='350' column='1' id='0d853221'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='intf' type-id='5943f90f' visibility='default' filepath='include/media/media-entity.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='major' type-id='19c2251e' visibility='default' filepath='include/media/media-entity.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='minor' type-id='19c2251e' visibility='default' filepath='include/media/media-entity.h' line='355' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f9b748d8' size-in-bits='64' id='0d87d4f6'/>
+      <pointer-type-def type-id='02b70d8e' size-in-bits='64' id='0d8953a0'/>
+      <function-type size-in-bits='64' id='0d8f8c87'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='78e7cf52'/>
+        <parameter type-id='a99cde64'/>
+        <parameter type-id='fea9c20b'/>
+        <return type-id='141b6427'/>
+      </function-type>
+      <pointer-type-def type-id='35f522bc' size-in-bits='64' id='0d97a11a'/>
+      <function-type size-in-bits='64' id='0da72d62'>
+        <parameter type-id='b9aa0100'/>
+        <parameter type-id='26a90f95'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d7b840f9' size-in-bits='64' id='0da78fa5'/>
+      <class-decl name='hh_cache' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='250' column='1' id='0db936dc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hh_len' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='hh_lock' type-id='e6cd5ecf' visibility='default' filepath='include/linux/netdevice.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hh_data' type-id='d2b016f4' visibility='default' filepath='include/linux/netdevice.h' line='260' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pwm_state' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/pwm.h' line='63' column='1' id='0dbd43cd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='period' type-id='91ce1af9' visibility='default' filepath='include/linux/pwm.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='duty_cycle' type-id='91ce1af9' visibility='default' filepath='include/linux/pwm.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='polarity' type-id='c2c81069' visibility='default' filepath='include/linux/pwm.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='enabled' type-id='b50a4934' visibility='default' filepath='include/linux/pwm.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='168'>
+          <var-decl name='usage_power' type-id='b50a4934' visibility='default' filepath='include/linux/pwm.h' line='68' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='41c62dab' size-in-bits='64' id='0dc3586b'/>
+      <class-decl name='dma_device' size-in-bits='3456' is-struct='yes' visibility='default' filepath='include/linux/dmaengine.h' line='861' column='1' id='0dcaa1e4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ref' type-id='400fb07b' visibility='default' filepath='include/linux/dmaengine.h' line='862' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='chancnt' type-id='f0981eeb' visibility='default' filepath='include/linux/dmaengine.h' line='863' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='privatecnt' type-id='f0981eeb' visibility='default' filepath='include/linux/dmaengine.h' line='864' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='channels' type-id='72f469ec' visibility='default' filepath='include/linux/dmaengine.h' line='865' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='global_node' type-id='72f469ec' visibility='default' filepath='include/linux/dmaengine.h' line='866' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='filter' type-id='d914dc7c' visibility='default' filepath='include/linux/dmaengine.h' line='867' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='cap_mask' type-id='3fb29acd' visibility='default' filepath='include/linux/dmaengine.h' line='868' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='desc_metadata_modes' type-id='8ae66bc4' visibility='default' filepath='include/linux/dmaengine.h' line='869' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='max_xor' type-id='8efea9e5' visibility='default' filepath='include/linux/dmaengine.h' line='870' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='688'>
+          <var-decl name='max_pq' type-id='8efea9e5' visibility='default' filepath='include/linux/dmaengine.h' line='871' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='copy_align' type-id='ec506a0a' visibility='default' filepath='include/linux/dmaengine.h' line='872' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='xor_align' type-id='ec506a0a' visibility='default' filepath='include/linux/dmaengine.h' line='873' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='pq_align' type-id='ec506a0a' visibility='default' filepath='include/linux/dmaengine.h' line='874' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='fill_align' type-id='ec506a0a' visibility='default' filepath='include/linux/dmaengine.h' line='875' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='dev_id' type-id='95e97e5e' visibility='default' filepath='include/linux/dmaengine.h' line='878' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/dmaengine.h' line='879' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/dmaengine.h' line='880' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='chan_ida' type-id='46ce60fb' visibility='default' filepath='include/linux/dmaengine.h' line='881' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='chan_mutex' type-id='925167dc' visibility='default' filepath='include/linux/dmaengine.h' line='882' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='src_addr_widths' type-id='19c2251e' visibility='default' filepath='include/linux/dmaengine.h' line='884' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='dst_addr_widths' type-id='19c2251e' visibility='default' filepath='include/linux/dmaengine.h' line='885' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='directions' type-id='19c2251e' visibility='default' filepath='include/linux/dmaengine.h' line='886' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1632'>
+          <var-decl name='min_burst' type-id='19c2251e' visibility='default' filepath='include/linux/dmaengine.h' line='887' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='max_burst' type-id='19c2251e' visibility='default' filepath='include/linux/dmaengine.h' line='888' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1696'>
+          <var-decl name='max_sg_burst' type-id='19c2251e' visibility='default' filepath='include/linux/dmaengine.h' line='889' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='descriptor_reuse' type-id='b50a4934' visibility='default' filepath='include/linux/dmaengine.h' line='890' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1760'>
+          <var-decl name='residue_granularity' type-id='cad02db3' visibility='default' filepath='include/linux/dmaengine.h' line='891' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='device_alloc_chan_resources' type-id='8425c356' visibility='default' filepath='include/linux/dmaengine.h' line='893' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='device_router_config' type-id='8425c356' visibility='default' filepath='include/linux/dmaengine.h' line='894' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='device_free_chan_resources' type-id='42e84365' visibility='default' filepath='include/linux/dmaengine.h' line='895' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='device_prep_dma_memcpy' type-id='16a27d24' visibility='default' filepath='include/linux/dmaengine.h' line='897' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='device_prep_dma_xor' type-id='d37a2705' visibility='default' filepath='include/linux/dmaengine.h' line='900' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='device_prep_dma_xor_val' type-id='187c2c79' visibility='default' filepath='include/linux/dmaengine.h' line='903' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='device_prep_dma_pq' type-id='2fa81f80' visibility='default' filepath='include/linux/dmaengine.h' line='906' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='device_prep_dma_pq_val' type-id='35da6582' visibility='default' filepath='include/linux/dmaengine.h' line='910' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='device_prep_dma_memset' type-id='9c36e869' visibility='default' filepath='include/linux/dmaengine.h' line='914' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='device_prep_dma_memset_sg' type-id='81ec80b0' visibility='default' filepath='include/linux/dmaengine.h' line='917' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='device_prep_dma_interrupt' type-id='37513679' visibility='default' filepath='include/linux/dmaengine.h' line='920' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='device_prep_slave_sg' type-id='3cbeb812' visibility='default' filepath='include/linux/dmaengine.h' line='923' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='device_prep_dma_cyclic' type-id='f166bad0' visibility='default' filepath='include/linux/dmaengine.h' line='927' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='device_prep_interleaved_dma' type-id='3e2efc02' visibility='default' filepath='include/linux/dmaengine.h' line='931' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='device_prep_dma_imm_data' type-id='7be3d1f9' visibility='default' filepath='include/linux/dmaengine.h' line='934' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='device_caps' type-id='a7724059' visibility='default' filepath='include/linux/dmaengine.h' line='938' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='device_config' type-id='81aefe59' visibility='default' filepath='include/linux/dmaengine.h' line='940' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='device_pause' type-id='8425c356' visibility='default' filepath='include/linux/dmaengine.h' line='942' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='device_resume' type-id='8425c356' visibility='default' filepath='include/linux/dmaengine.h' line='943' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='device_terminate_all' type-id='8425c356' visibility='default' filepath='include/linux/dmaengine.h' line='944' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='device_synchronize' type-id='42e84365' visibility='default' filepath='include/linux/dmaengine.h' line='945' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='device_tx_status' type-id='e4038107' visibility='default' filepath='include/linux/dmaengine.h' line='947' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='device_issue_pending' type-id='42e84365' visibility='default' filepath='include/linux/dmaengine.h' line='950' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='device_release' type-id='75adfaf3' visibility='default' filepath='include/linux/dmaengine.h' line='951' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='dbg_summary_show' type-id='4127e705' visibility='default' filepath='include/linux/dmaengine.h' line='953' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='dbg_dev_root' type-id='27675065' visibility='default' filepath='include/linux/dmaengine.h' line='954' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='nl80211_wowlan_tcp_data_token_feature' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5710' column='1' id='0dd56ffa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='min_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5711' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='max_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5711' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bufsize' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5711' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='368' id='0ddb15d8'>
+        <subrange length='46' type-id='7ff19f0f' id='8b86bc1b'/>
+      </array-type-def>
+      <pointer-type-def type-id='a8c11af0' size-in-bits='64' id='0dee990a'/>
+      <class-decl name='minmax' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/win_minmax.h' line='18' column='1' id='0df12a77'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='s' type-id='ddf292bf' visibility='default' filepath='include/linux/win_minmax.h' line='19' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='flow_action_cookie' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/net/flow_offload.h' line='188' column='1' id='0e02cf9b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cookie_len' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='cookie' type-id='29c3368c' visibility='default' filepath='include/net/flow_offload.h' line='190' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9db69fa3' size-in-bits='64' id='0e03258f'/>
+      <qualified-type-def type-id='39b596d4' const='yes' id='0e085d99'/>
+      <pointer-type-def type-id='f16e9b99' size-in-bits='64' id='0e0c1c5d'/>
+      <qualified-type-def type-id='fb6b0a12' const='yes' id='0e143c35'/>
+      <class-decl name='scsi_transport_template' size-in-bits='2816' is-struct='yes' visibility='default' filepath='include/scsi/scsi_transport.h' line='16' column='1' id='0e15337c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='host_attrs' type-id='2af4292a' visibility='default' filepath='include/scsi/scsi_transport.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='target_attrs' type-id='2af4292a' visibility='default' filepath='include/scsi/scsi_transport.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='device_attrs' type-id='2af4292a' visibility='default' filepath='include/scsi/scsi_transport.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='user_scan' type-id='3b3fe200' visibility='default' filepath='include/scsi/scsi_transport.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='device_size' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_transport.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2592'>
+          <var-decl name='device_private_offset' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_transport.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='target_size' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_transport.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2656'>
+          <var-decl name='target_private_offset' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_transport.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='host_size' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_transport.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2720'>
+          <var-decl name='create_work_queue' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_transport.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='eh_strategy_handler' type-id='7fc5dc19' visibility='default' filepath='include/scsi/scsi_transport.h' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4e3cc2a9' size-in-bits='64' id='0e18d3fd'/>
+      <enum-decl name='scsi_target_state' filepath='include/scsi/scsi_device.h' line='292' column='1' id='0e1b99c8'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='STARGET_CREATED' value='1'/>
+        <enumerator name='STARGET_RUNNING' value='2'/>
+        <enumerator name='STARGET_REMOVE' value='3'/>
+        <enumerator name='STARGET_CREATED_REMOVE' value='4'/>
+        <enumerator name='STARGET_DEL' value='5'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='0bb26f49' size-in-bits='96' id='0e1e8cdf'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <class-decl name='core_state' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/mm_types.h' line='442' column='1' id='0e1f7cac'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nr_threads' type-id='49178f86' visibility='default' filepath='include/linux/mm_types.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dumper' type-id='f3d147c3' visibility='default' filepath='include/linux/mm_types.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='startup' type-id='f9fef04f' visibility='default' filepath='include/linux/mm_types.h' line='445' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='25bc1b8d' size-in-bits='64' id='0e1f87e5'/>
+      <array-type-def dimensions='1' type-id='9d532fc5' size-in-bits='128' id='0e22cb9f'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='1b1c4a63' size-in-bits='64' id='0e23c133'/>
+      <class-decl name='mtd_pairing_scheme' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/mtd/mtd.h' line='176' column='1' id='0e2723e7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ngroups' type-id='95e97e5e' visibility='default' filepath='include/linux/mtd/mtd.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='get_info' type-id='355a3725' visibility='default' filepath='include/linux/mtd/mtd.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='get_wunit' type-id='bef02df9' visibility='default' filepath='include/linux/mtd/mtd.h' line='180' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d81ac7f6' size-in-bits='64' id='0e289f54'/>
+      <pointer-type-def type-id='897bd6f1' size-in-bits='64' id='0e291009'/>
+      <pointer-type-def type-id='fbe01570' size-in-bits='64' id='0e299972'/>
+      <pointer-type-def type-id='b50ce591' size-in-bits='64' id='0e3f80d9'/>
+      <pointer-type-def type-id='1119a98f' size-in-bits='64' id='0e587527'/>
+      <class-decl name='icc_provider' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/interconnect-provider.h' line='60' column='1' id='0e59314e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='provider_list' type-id='72f469ec' visibility='default' filepath='include/linux/interconnect-provider.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='nodes' type-id='72f469ec' visibility='default' filepath='include/linux/interconnect-provider.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='set' type-id='13229469' visibility='default' filepath='include/linux/interconnect-provider.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='aggregate' type-id='209ddc8a' visibility='default' filepath='include/linux/interconnect-provider.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='pre_aggregate' type-id='17c9b422' visibility='default' filepath='include/linux/interconnect-provider.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='get_bw' type-id='45f57ae5' visibility='default' filepath='include/linux/interconnect-provider.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='xlate' type-id='baffee98' visibility='default' filepath='include/linux/interconnect-provider.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='xlate_extended' type-id='05b00b8b' visibility='default' filepath='include/linux/interconnect-provider.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/interconnect-provider.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='users' type-id='95e97e5e' visibility='default' filepath='include/linux/interconnect-provider.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='inter_set' type-id='b50a4934' visibility='default' filepath='include/linux/interconnect-provider.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/interconnect-provider.h' line='73' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_cdc_ether_desc' size-in-bits='104' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='135' column='1' id='0e5b8ca7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bDescriptorSubType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='iMACAddress' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bmEthernetStatistics' type-id='2f162548' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wMaxSegmentSize' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='wNumberMCFilters' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='bNumberPowerFilters' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='144' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='hid_ll_driver' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='813' column='1' id='0e5e2ca6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='814' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='stop' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='815' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='open' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='817' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='close' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='818' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='power' type-id='8cefa062' visibility='default' filepath='include/linux/hid.h' line='820' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='parse' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='822' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='request' type-id='8f2ea2db' visibility='default' filepath='include/linux/hid.h' line='824' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='wait' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='827' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='raw_request' type-id='94b60312' visibility='default' filepath='include/linux/hid.h' line='829' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='output_report' type-id='587d2ba7' visibility='default' filepath='include/linux/hid.h' line='833' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='idle' type-id='6fed6bf0' visibility='default' filepath='include/linux/hid.h' line='835' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='may_wakeup' type-id='cfc95081' visibility='default' filepath='include/linux/hid.h' line='836' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='0e61b6d4'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='6dcf57f3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3572f41a' size-in-bits='64' id='0e64a118'/>
+      <array-type-def dimensions='1' type-id='e710f78e' size-in-bits='576' id='0e685653'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <class-decl name='flow_match' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/flow_offload.h' line='9' column='1' id='0e70a5cf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dissector' type-id='0b8ca8fa' visibility='default' filepath='include/net/flow_offload.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mask' type-id='eaa32e2f' visibility='default' filepath='include/net/flow_offload.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='key' type-id='eaa32e2f' visibility='default' filepath='include/net/flow_offload.h' line='12' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8804cbe4' size-in-bits='64' id='0e70db3e'/>
+      <enum-decl name='snd_compr_direction' filepath='include/uapi/sound/compress_offload.h' line='86' column='1' id='0e72fd0d'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SND_COMPRESS_PLAYBACK' value='0'/>
+        <enumerator name='SND_COMPRESS_CAPTURE' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='cf8359c9' size-in-bits='64' id='0e7b22c5'/>
+      <pointer-type-def type-id='34a2420f' size-in-bits='64' id='0e87d404'/>
+      <pointer-type-def type-id='5f5c9d88' size-in-bits='64' id='0e87f9be'/>
+      <class-decl name='ipv6_devstat' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/if_inet6.h' line='162' column='1' id='0e97f526'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='proc_dir_entry' type-id='d077e928' visibility='default' filepath='include/net/if_inet6.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ipv6' type-id='30897c4e' visibility='default' filepath='include/net/if_inet6.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='icmpv6dev' type-id='6551bd60' visibility='default' filepath='include/net/if_inet6.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='icmpv6msgdev' type-id='793f0d19' visibility='default' filepath='include/net/if_inet6.h' line='166' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ipv6_rt_hdr' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/ipv6.h' line='50' column='1' id='0eae882e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nexthdr' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='hdrlen' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='type' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='segments_left' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='54' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='mm_context_t' type-id='46f77458' filepath='arch/arm64/include/asm/mmu.h' line='28' column='1' id='0eb9c3fd'/>
+      <function-type size-in-bits='64' id='0ebe5367'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='51a94113'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='eb76a649' size-in-bits='64' id='0ec7edd9'/>
+      <typedef-decl name='notifier_fn_t' type-id='38a7cb79' filepath='include/linux/notifier.h' line='51' column='1' id='0ec8c658'/>
+      <function-type size-in-bits='64' id='0ed9f201'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='9a537bbe'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='72488e2e' const='yes' id='0edcffa5'/>
+      <class-decl name='reg_default' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/regmap.h' line='58' column='1' id='0ee576bb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reg' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='def' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='60' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0b8ea949' size-in-bits='64' id='0ee978f1'/>
+      <class-decl name='ufs_clk_gating' size-in-bits='2368' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='397' column='1' id='0eeb0815'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='gate_work' type-id='5ad6e0ef' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='ungate_work' type-id='ef9025d0' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='state' type-id='8bfed557' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='delay_ms' type-id='7359adad' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='is_suspended' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='delay_attr' type-id='dbf3947c' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='403' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='enable_attr' type-id='dbf3947c' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='is_enabled' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2184'>
+          <var-decl name='is_initialized' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2208'>
+          <var-decl name='active_reqs' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='407' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='clk_gating_workq' type-id='242e3d19' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='408' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='410' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='0ef3e0fd'>
+        <parameter type-id='bff05edb'/>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='bpf_storage_buffer' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/bpf-cgroup.h' line='99' column='1' id='0ef5c7e0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/bpf-cgroup.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data' type-id='e84913bd' visibility='default' filepath='include/linux/bpf-cgroup.h' line='101' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1646f19a' size-in-bits='64' id='0ef96694'/>
+      <function-type size-in-bits='64' id='0ef969d4'>
+        <parameter type-id='d9863f2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='0efc83de'>
+        <parameter type-id='b88dd945'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='98031623'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='38ef7882' size-in-bits='64' id='0effb5d0'/>
+      <class-decl name='thermal_attr' size-in-bits='448' is-struct='yes' visibility='default' filepath='drivers/thermal/thermal_core.h' line='57' column='1' id='0f035502'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='attr' type-id='dbf3947c' visibility='default' filepath='drivers/thermal/thermal_core.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='name' type-id='664ac0b7' visibility='default' filepath='drivers/thermal/thermal_core.h' line='59' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='iovec' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/uio.h' line='17' column='1' id='0f042891'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='iov_base' type-id='eaa32e2f' visibility='default' filepath='include/uapi/linux/uio.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='iov_len' type-id='9e19ad6e' visibility='default' filepath='include/uapi/linux/uio.h' line='20' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cf3752f1' size-in-bits='64' id='0f176ec1'/>
+      <pointer-type-def type-id='732df9b3' size-in-bits='64' id='0f1b0147'/>
+      <pointer-type-def type-id='676dd99b' size-in-bits='64' id='0f1b379b'/>
+      <function-type size-in-bits='64' id='0f1de308'>
+        <parameter type-id='f57039f0'/>
+        <parameter type-id='02f11ed4'/>
+        <parameter type-id='02f11ed4'/>
+        <parameter type-id='157252dd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3dbb7e50' size-in-bits='64' id='0f294852'/>
+      <pointer-type-def type-id='fc72728d' size-in-bits='64' id='0f2a7ce5'/>
+      <pointer-type-def type-id='960d41bf' size-in-bits='64' id='0f2da0bb'/>
+      <array-type-def dimensions='1' type-id='1dc6a898' size-in-bits='infinite' id='0f300383'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='0f40f777'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='267580ce'/>
+        <parameter type-id='514d4e0e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='u64_stats_t' type-id='4cf12e29' filepath='include/linux/u64_stats_sync.h' line='79' column='1' id='0f413d2a'/>
+      <class-decl name='drm_crtc_crc_entry' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/drm/drm_debugfs_crc.h' line='33' column='1' id='0f47abb9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='has_frame_counter' type-id='b50a4934' visibility='default' filepath='include/drm/drm_debugfs_crc.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='frame' type-id='8f92235e' visibility='default' filepath='include/drm/drm_debugfs_crc.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='crcs' type-id='1e6c0b80' visibility='default' filepath='include/drm/drm_debugfs_crc.h' line='36' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='0f4b4f92'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='02f11ed4'/>
+        <parameter type-id='cf29c9b3'/>
+        <parameter type-id='eea6b025'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='pci_dev_flags_t' type-id='8efea9e5' filepath='include/linux/pci.h' line='213' column='1' id='0f4efb07'/>
+      <enum-decl name='blk_eh_timer_return' filepath='include/linux/blkdev.h' line='270' column='1' id='0f4f6276'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='BLK_EH_DONE' value='0'/>
+        <enumerator name='BLK_EH_RESET_TIMER' value='1'/>
+      </enum-decl>
+      <class-decl name='seqcount_spinlock' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/seqlock.h' line='277' column='1' id='0f5450f3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='seqcount' type-id='e14c3b11' visibility='default' filepath='include/linux/seqlock.h' line='277' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3c95971e' size-in-bits='64' id='0f561784'/>
+      <function-type size-in-bits='64' id='0f590202'>
+        <parameter type-id='572fbdca'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c4d4ddea' size-in-bits='64' id='0f5a7eb8'/>
+      <class-decl name='irq_chip' size-in-bits='2304' is-struct='yes' visibility='default' filepath='include/linux/irq.h' line='507' column='1' id='0f5f7920'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='parent_device' type-id='fa0b179b' visibility='default' filepath='include/linux/irq.h' line='508' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/irq.h' line='509' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='irq_startup' type-id='1cb2627d' visibility='default' filepath='include/linux/irq.h' line='510' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='irq_shutdown' type-id='185ccd91' visibility='default' filepath='include/linux/irq.h' line='511' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='irq_enable' type-id='185ccd91' visibility='default' filepath='include/linux/irq.h' line='512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='irq_disable' type-id='185ccd91' visibility='default' filepath='include/linux/irq.h' line='513' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='irq_ack' type-id='185ccd91' visibility='default' filepath='include/linux/irq.h' line='515' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='irq_mask' type-id='185ccd91' visibility='default' filepath='include/linux/irq.h' line='516' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='irq_mask_ack' type-id='185ccd91' visibility='default' filepath='include/linux/irq.h' line='517' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='irq_unmask' type-id='185ccd91' visibility='default' filepath='include/linux/irq.h' line='518' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='irq_eoi' type-id='185ccd91' visibility='default' filepath='include/linux/irq.h' line='519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='irq_set_affinity' type-id='d72a0292' visibility='default' filepath='include/linux/irq.h' line='521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='irq_retrigger' type-id='ed9f97a6' visibility='default' filepath='include/linux/irq.h' line='522' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='irq_set_type' type-id='f3bd9244' visibility='default' filepath='include/linux/irq.h' line='523' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='irq_set_wake' type-id='f3bd9244' visibility='default' filepath='include/linux/irq.h' line='524' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='irq_bus_lock' type-id='185ccd91' visibility='default' filepath='include/linux/irq.h' line='526' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='irq_bus_sync_unlock' type-id='185ccd91' visibility='default' filepath='include/linux/irq.h' line='527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='irq_cpu_online' type-id='185ccd91' visibility='default' filepath='include/linux/irq.h' line='529' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='irq_cpu_offline' type-id='185ccd91' visibility='default' filepath='include/linux/irq.h' line='530' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='irq_suspend' type-id='185ccd91' visibility='default' filepath='include/linux/irq.h' line='532' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='irq_resume' type-id='185ccd91' visibility='default' filepath='include/linux/irq.h' line='533' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='irq_pm_shutdown' type-id='185ccd91' visibility='default' filepath='include/linux/irq.h' line='534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='irq_calc_mask' type-id='185ccd91' visibility='default' filepath='include/linux/irq.h' line='536' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='irq_print_chip' type-id='9438aa05' visibility='default' filepath='include/linux/irq.h' line='538' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='irq_request_resources' type-id='ed9f97a6' visibility='default' filepath='include/linux/irq.h' line='539' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='irq_release_resources' type-id='185ccd91' visibility='default' filepath='include/linux/irq.h' line='540' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='irq_compose_msi_msg' type-id='3a3e6b6c' visibility='default' filepath='include/linux/irq.h' line='542' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='irq_write_msi_msg' type-id='3a3e6b6c' visibility='default' filepath='include/linux/irq.h' line='543' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='irq_get_irqchip_state' type-id='f12b668c' visibility='default' filepath='include/linux/irq.h' line='545' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='irq_set_irqchip_state' type-id='ecf8d02d' visibility='default' filepath='include/linux/irq.h' line='546' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='irq_set_vcpu_affinity' type-id='cb5b8228' visibility='default' filepath='include/linux/irq.h' line='548' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='ipi_send_single' type-id='19c5fc2b' visibility='default' filepath='include/linux/irq.h' line='550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='ipi_send_mask' type-id='eb0bccd8' visibility='default' filepath='include/linux/irq.h' line='551' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='irq_nmi_setup' type-id='ed9f97a6' visibility='default' filepath='include/linux/irq.h' line='553' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='irq_nmi_teardown' type-id='185ccd91' visibility='default' filepath='include/linux/irq.h' line='554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/irq.h' line='556' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='0f7f118a'>
+        <parameter type-id='2feec21f'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='1d2c2b85'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='49b910cc' size-in-bits='64' id='0f81ed2a'/>
+      <pointer-type-def type-id='c8f5869f' size-in-bits='64' id='0f830eef'/>
+      <qualified-type-def type-id='e7826ffa' const='yes' id='0f840455'/>
+      <pointer-type-def type-id='9a809cc5' size-in-bits='64' id='0f859ff9'/>
+      <function-type size-in-bits='64' id='0f872816'>
+        <parameter type-id='97aff453'/>
+        <parameter type-id='7a29ff27'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='i2c_dev_desc' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/i3c/master.h' line='86' column='1' id='0f87f015'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='common' type-id='e92b32c3' visibility='default' filepath='include/linux/i3c/master.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='boardinfo' type-id='42b5b617' visibility='default' filepath='include/linux/i3c/master.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dev' type-id='3e31633b' visibility='default' filepath='include/linux/i3c/master.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='addr' type-id='1dc6a898' visibility='default' filepath='include/linux/i3c/master.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='400'>
+          <var-decl name='lvr' type-id='f9b06939' visibility='default' filepath='include/linux/i3c/master.h' line='91' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c0065bf0' size-in-bits='64' id='0f8b1896'/>
+      <pointer-type-def type-id='9803cec6' size-in-bits='64' id='0f8df030'/>
+      <pointer-type-def type-id='11fd1392' size-in-bits='64' id='0f8f80b0'/>
+      <enum-decl name='dev_dma_attr' filepath='include/linux/property.h' line='28' column='1' id='0f98306c'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEV_DMA_NOT_SUPPORTED' value='0'/>
+        <enumerator name='DEV_DMA_NON_COHERENT' value='1'/>
+        <enumerator name='DEV_DMA_COHERENT' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='4c9f335b' size-in-bits='64' id='0f9dfae3'/>
+      <function-type size-in-bits='64' id='0fa06c89'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='0fa325e9'>
+        <parameter type-id='feb59272'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='0fae1622'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='7359adad'/>
+      </function-type>
+      <pointer-type-def type-id='cba59087' size-in-bits='64' id='0fb09eeb'/>
+      <pointer-type-def type-id='5257f496' size-in-bits='64' id='0fb373c0'/>
+      <pointer-type-def type-id='c968032b' size-in-bits='64' id='0fbcba93'/>
+      <pointer-type-def type-id='ae8bfcdd' size-in-bits='64' id='0fbf3cfd'/>
+      <pointer-type-def type-id='326108ef' size-in-bits='64' id='0fc51e4b'/>
+      <function-type size-in-bits='64' id='0fd478d2'>
+        <parameter type-id='5dbfcbb1'/>
+        <parameter type-id='f53d5cb2'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='8d64a1ad' size-in-bits='64' id='0fd7b97e'/>
+      <class-decl name='address_space' size-in-bits='2176' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='466' column='1' id='0fd82dc2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='host' type-id='7e666abe' visibility='default' filepath='include/linux/fs.h' line='467' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='i_pages' type-id='d39738ac' visibility='default' filepath='include/linux/fs.h' line='468' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='invalidate_lock' type-id='f19fdb93' visibility='default' filepath='include/linux/fs.h' line='469' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='gfp_mask' type-id='3eb7c31c' visibility='default' filepath='include/linux/fs.h' line='470' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='i_mmap_writable' type-id='49178f86' visibility='default' filepath='include/linux/fs.h' line='471' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='i_mmap' type-id='6fe1603d' visibility='default' filepath='include/linux/fs.h' line='476' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='i_mmap_rwsem' type-id='f19fdb93' visibility='default' filepath='include/linux/fs.h' line='477' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='nrpages' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='478' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='writeback_index' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='479' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='a_ops' type-id='7311f672' visibility='default' filepath='include/linux/fs.h' line='480' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='481' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='wb_err' type-id='1da55f79' visibility='default' filepath='include/linux/fs.h' line='482' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1696'>
+          <var-decl name='private_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/fs.h' line='483' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='private_list' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='484' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs.h' line='485' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='490' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8f138471' size-in-bits='64' id='0fda5689'/>
+      <array-type-def dimensions='1' type-id='f6ed712a' size-in-bits='infinite' id='0fdf6c82'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <class-decl name='ehci_dbg_port' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/linux/usb/ehci-dbgp.h' line='24' column='1' id='0fdf79a2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='control' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci-dbgp.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pids' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci-dbgp.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data03' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci-dbgp.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='data47' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci-dbgp.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='address' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci-dbgp.h' line='42' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c4c7a991' size-in-bits='64' id='0fecf3d5'/>
+      <pointer-type-def type-id='c2e47616' size-in-bits='64' id='0feea528'/>
+      <function-type size-in-bits='64' id='0ff60dc2'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='30864cdc'/>
+        <parameter type-id='30864cdc'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='0ffa0cdd'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='13f343ef'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='0ffd4fb3'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='d8e6b335'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='100ce309'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='b53e8dbb'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='bd4974e4' size-in-bits='64' id='100f2106'/>
+      <qualified-type-def type-id='78e57306' const='yes' id='10117043'/>
+      <class-decl name='trace_subsystem_dir' size-in-bits='384' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='1299' column='1' id='10143522'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='1300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='subsystem' type-id='841939f3' visibility='default' filepath='kernel/trace/trace.h' line='1301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tr' type-id='898c1076' visibility='default' filepath='kernel/trace/trace.h' line='1302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='entry' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='1303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ref_count' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='1304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='nr_events' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='1305' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_frmsize_discrete' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='815' column='1' id='10186cf6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='816' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='817' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='Elf64_Half' type-id='d315442e' filepath='include/uapi/linux/elf.h' line='17' column='1' id='101a70d5'/>
+      <class-decl name='v4l2_event_frame_sync' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2395' column='1' id='101c7fc2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='frame_sequence' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2396' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pcpu_sw_netstats' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='2722' column='1' id='101eeec5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rx_packets' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='2723' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rx_bytes' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='2724' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tx_packets' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='2725' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tx_bytes' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='2726' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='syncp' type-id='e4d85780' visibility='default' filepath='include/linux/netdevice.h' line='2727' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b5990c25' size-in-bits='64' id='10216dc5'/>
+      <function-type size-in-bits='64' id='102202df'>
+        <parameter type-id='7bf5a5e5'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='852a961e' const='yes' id='1027eea9'/>
+      <pointer-type-def type-id='c01f4982' size-in-bits='64' id='102ab76c'/>
+      <pointer-type-def type-id='6e03f2ca' size-in-bits='64' id='103756a0'/>
+      <class-decl name='extcon_cable' size-in-bits='1664' is-struct='yes' visibility='default' filepath='drivers/extcon/extcon.c' line='200' column='1' id='103b4c26'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='edev' type-id='c0d6fada' visibility='default' filepath='drivers/extcon/extcon.c' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cable_index' type-id='95e97e5e' visibility='default' filepath='drivers/extcon/extcon.c' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='attr_g' type-id='e4af473b' visibility='default' filepath='drivers/extcon/extcon.c' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='attr_name' type-id='dbf3947c' visibility='default' filepath='drivers/extcon/extcon.c' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='attr_state' type-id='dbf3947c' visibility='default' filepath='drivers/extcon/extcon.c' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='attrs' type-id='ff62a050' visibility='default' filepath='drivers/extcon/extcon.c' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='usb_propval' type-id='475a4bff' visibility='default' filepath='drivers/extcon/extcon.c' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='chg_propval' type-id='0b5e6ab9' visibility='default' filepath='drivers/extcon/extcon.c' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='jack_propval' type-id='0b5e6ab9' visibility='default' filepath='drivers/extcon/extcon.c' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='disp_propval' type-id='0b5c2c22' visibility='default' filepath='drivers/extcon/extcon.c' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='usb_bits' type-id='f066dd3c' visibility='default' filepath='drivers/extcon/extcon.c' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='chg_bits' type-id='f066dd3c' visibility='default' filepath='drivers/extcon/extcon.c' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='jack_bits' type-id='f066dd3c' visibility='default' filepath='drivers/extcon/extcon.c' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='disp_bits' type-id='f066dd3c' visibility='default' filepath='drivers/extcon/extcon.c' line='218' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='103ba521'>
+        <parameter type-id='74b427eb'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='22d74cfc' size-in-bits='64' id='103da70a'/>
+      <pointer-type-def type-id='1788182f' size-in-bits='64' id='103dcfdf'/>
+      <pointer-type-def type-id='415e4835' size-in-bits='64' id='103ef621'/>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='7424' id='10427e1f'>
+        <subrange length='928' type-id='7ff19f0f' id='87239db2'/>
+      </array-type-def>
+      <pointer-type-def type-id='0f1de308' size-in-bits='64' id='10451dea'/>
+      <pointer-type-def type-id='3c330066' size-in-bits='64' id='104977a4'/>
+      <function-type size-in-bits='64' id='10498fec'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='c28fe484'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f77d4717' size-in-bits='64' id='104fa32f'/>
+      <function-type size-in-bits='64' id='10587c0a'>
+        <parameter type-id='d30bdc51'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='2ef05706' size-in-bits='64' id='10593a44'/>
+      <function-type size-in-bits='64' id='105b52f0'>
+        <parameter type-id='88146159'/>
+        <parameter type-id='d6184118'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='d3860975' const='yes' id='105c9300'/>
+      <array-type-def dimensions='1' type-id='b3ad2c1c' size-in-bits='3072' id='105eff46'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <pointer-type-def type-id='1dad932c' size-in-bits='64' id='1065554a'/>
+      <class-decl name='posix_cputimers' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/posix-timers.h' line='133' column='1' id='1069de27'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bases' type-id='0e685653' visibility='default' filepath='include/linux/posix-timers.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='timers_active' type-id='f0981eeb' visibility='default' filepath='include/linux/posix-timers.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='expiry_active' type-id='f0981eeb' visibility='default' filepath='include/linux/posix-timers.h' line='136' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ff_periodic_effect' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/linux/input.h' line='401' column='1' id='106cd915'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='waveform' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='period' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='403' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='magnitude' type-id='b55def60' visibility='default' filepath='include/uapi/linux/input.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='offset' type-id='b55def60' visibility='default' filepath='include/uapi/linux/input.h' line='405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='phase' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='envelope' type-id='95dfde06' visibility='default' filepath='include/uapi/linux/input.h' line='408' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='custom_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/input.h' line='410' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='custom_data' type-id='54c34bcf' visibility='default' filepath='include/uapi/linux/input.h' line='411' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='7462f12f' const='yes' id='106d717e'/>
+      <function-type size-in-bits='64' id='107219ed'>
+        <parameter type-id='37a6b980'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='a2b406b5' size-in-bits='64' id='107630a5'/>
+      <function-type size-in-bits='64' id='10781bfd'>
+        <parameter type-id='666fb412'/>
+        <parameter type-id='1a09a595'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='10865770'>
+        <parameter type-id='95316552'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='0645931b' size-in-bits='64' id='1086b623'/>
+      <function-type size-in-bits='64' id='1086c08a'>
+        <parameter type-id='4938abae'/>
+        <parameter type-id='74b427eb'/>
+        <parameter type-id='cf2e76b1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7893b96a' size-in-bits='64' id='108c9fc0'/>
+      <pointer-type-def type-id='dc5abf9a' size-in-bits='64' id='108dbc98'/>
+      <pointer-type-def type-id='8e50372c' size-in-bits='64' id='109c1e8e'/>
+      <pointer-type-def type-id='23d6768c' size-in-bits='64' id='109cc752'/>
+      <pointer-type-def type-id='8967eee8' size-in-bits='64' id='109cdb66'/>
+      <class-decl name='usb_cdc_parsed_header' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/linux/usb/cdc.h' line='26' column='1' id='10a51b66'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='usb_cdc_union_desc' type-id='b7f056d4' visibility='default' filepath='include/linux/usb/cdc.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='usb_cdc_header_desc' type-id='015a0234' visibility='default' filepath='include/linux/usb/cdc.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='usb_cdc_call_mgmt_descriptor' type-id='93edac17' visibility='default' filepath='include/linux/usb/cdc.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='usb_cdc_acm_descriptor' type-id='6f7e8184' visibility='default' filepath='include/linux/usb/cdc.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='usb_cdc_country_functional_desc' type-id='1654068f' visibility='default' filepath='include/linux/usb/cdc.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='usb_cdc_network_terminal_desc' type-id='b6bc3316' visibility='default' filepath='include/linux/usb/cdc.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='usb_cdc_ether_desc' type-id='a9c8654f' visibility='default' filepath='include/linux/usb/cdc.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='usb_cdc_dmm_desc' type-id='0c1984e5' visibility='default' filepath='include/linux/usb/cdc.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='usb_cdc_mdlm_desc' type-id='94bfb8eb' visibility='default' filepath='include/linux/usb/cdc.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='usb_cdc_mdlm_detail_desc' type-id='8b42c33d' visibility='default' filepath='include/linux/usb/cdc.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='usb_cdc_obex_desc' type-id='4875dd9d' visibility='default' filepath='include/linux/usb/cdc.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='usb_cdc_ncm_desc' type-id='7041aa49' visibility='default' filepath='include/linux/usb/cdc.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='usb_cdc_mbim_desc' type-id='31efb644' visibility='default' filepath='include/linux/usb/cdc.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='usb_cdc_mbim_extended_desc' type-id='6253b388' visibility='default' filepath='include/linux/usb/cdc.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='phonet_magic_present' type-id='b50a4934' visibility='default' filepath='include/linux/usb/cdc.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='28e89e7e' size-in-bits='64' id='10a7f6b4'/>
+      <enum-decl name='ethtool_link_ext_substate_bad_signal_integrity' filepath='include/uapi/linux/ethtool.h' line='639' column='1' id='10b5a989'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS' value='1'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE' value='2'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_REFERENCE_CLOCK_LOST' value='3'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_ALOS' value='4'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='10b62ab9'>
+        <parameter type-id='2feec21f'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='10b63b7d'>
+        <parameter type-id='339c87e8'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='5e5241e2' size-in-bits='64' id='10b92604'/>
+      <function-type size-in-bits='64' id='10c448af'>
+        <parameter type-id='00cf0c80'/>
+        <parameter type-id='af02a266'/>
+        <return type-id='f06adae0'/>
+      </function-type>
+      <pointer-type-def type-id='fdc939a7' size-in-bits='64' id='10c598f7'/>
+      <pointer-type-def type-id='6739dd09' size-in-bits='64' id='10cfb911'/>
+      <pointer-type-def type-id='b4cb0241' size-in-bits='64' id='10dae4c5'/>
+      <pointer-type-def type-id='395280fe' size-in-bits='64' id='10e0cdbc'/>
+      <function-type size-in-bits='64' id='10e36dc5'>
+        <parameter type-id='d30bdc51'/>
+        <return type-id='47547dee'/>
+      </function-type>
+      <class-decl name='tipc_bearer' size-in-bits='2432' is-struct='yes' visibility='default' filepath='include/../net/tipc/bearer.h' line='156' column='1' id='10ec1ded'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='media_ptr' type-id='eaa32e2f' visibility='default' filepath='include/../net/tipc/bearer.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mtu' type-id='19c2251e' visibility='default' filepath='include/../net/tipc/bearer.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='addr' type-id='9b941952' visibility='default' filepath='include/../net/tipc/bearer.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='368'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/../net/tipc/bearer.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='media' type-id='05dc3f6e' visibility='default' filepath='include/../net/tipc/bearer.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='bcast_addr' type-id='9b941952' visibility='default' filepath='include/../net/tipc/bearer.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='pt' type-id='164a08b2' visibility='default' filepath='include/../net/tipc/bearer.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/../net/tipc/bearer.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='priority' type-id='19c2251e' visibility='default' filepath='include/../net/tipc/bearer.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2016'>
+          <var-decl name='min_win' type-id='19c2251e' visibility='default' filepath='include/../net/tipc/bearer.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='max_win' type-id='19c2251e' visibility='default' filepath='include/../net/tipc/bearer.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2080'>
+          <var-decl name='tolerance' type-id='19c2251e' visibility='default' filepath='include/../net/tipc/bearer.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='domain' type-id='19c2251e' visibility='default' filepath='include/../net/tipc/bearer.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2144'>
+          <var-decl name='identity' type-id='19c2251e' visibility='default' filepath='include/../net/tipc/bearer.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='disc' type-id='d36c1926' visibility='default' filepath='include/../net/tipc/bearer.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='net_plane' type-id='a84c031d' visibility='default' filepath='include/../net/tipc/bearer.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='up' type-id='7359adad' visibility='default' filepath='include/../net/tipc/bearer.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/../net/tipc/bearer.h' line='174' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='iommu_gpasid_bind_data' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/uapi/linux/iommu.h' line='322' column='1' id='10edb5fe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='argsz' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='version' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='format' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='addr_width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='d3130597' visibility='default' filepath='include/uapi/linux/iommu.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='gpgd' type-id='d3130597' visibility='default' filepath='include/uapi/linux/iommu.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='hpasid' type-id='d3130597' visibility='default' filepath='include/uapi/linux/iommu.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='gpasid' type-id='d3130597' visibility='default' filepath='include/uapi/linux/iommu.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='padding' type-id='0209ab38' visibility='default' filepath='include/uapi/linux/iommu.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='vendor' type-id='ac5ab5e9' visibility='default' filepath='include/uapi/linux/iommu.h' line='339' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='10e36dc5' size-in-bits='64' id='10f0a819'/>
+      <pointer-type-def type-id='22ff99bc' size-in-bits='64' id='10f21fe6'/>
+      <pointer-type-def type-id='75144de8' size-in-bits='64' id='10f66866'/>
+      <pointer-type-def type-id='06706e9d' size-in-bits='64' id='10f733f9'/>
+      <class-decl name='proc_ops' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/proc_fs.h' line='29' column='1' id='110c1f72'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='proc_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/proc_fs.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='proc_open' type-id='47800058' visibility='default' filepath='include/linux/proc_fs.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='proc_read' type-id='4d8f5625' visibility='default' filepath='include/linux/proc_fs.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='proc_read_iter' type-id='227e209d' visibility='default' filepath='include/linux/proc_fs.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='proc_write' type-id='5f29549c' visibility='default' filepath='include/linux/proc_fs.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='proc_lseek' type-id='07ebb4cd' visibility='default' filepath='include/linux/proc_fs.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='proc_release' type-id='47800058' visibility='default' filepath='include/linux/proc_fs.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='proc_poll' type-id='4d01ede7' visibility='default' filepath='include/linux/proc_fs.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='proc_ioctl' type-id='fc7daf55' visibility='default' filepath='include/linux/proc_fs.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='proc_compat_ioctl' type-id='fc7daf55' visibility='default' filepath='include/linux/proc_fs.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='proc_mmap' type-id='8ea2626c' visibility='default' filepath='include/linux/proc_fs.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='proc_get_unmapped_area' type-id='d44a8cec' visibility='default' filepath='include/linux/proc_fs.h' line='44' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='81dd332a' size-in-bits='64' id='11124634'/>
+      <class-decl name='trace_event_fields' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/trace_events.h' line='261' column='1' id='1119a98f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='80f4b756' visibility='default' filepath='include/linux/trace_events.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab59d' visibility='default' filepath='include/linux/trace_events.h' line='263' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='111ab5a4'>
+        <parameter type-id='abd62a96'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='5e4f599b'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1120d7bb'>
+        <parameter type-id='3257bfe7'/>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1126278f'>
+        <parameter type-id='1c936db9'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='112801a2'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='fea9c20b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='i3c_ccc_cmd_payload' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/i3c/ccc.h' line='349' column='1' id='112d7604'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='len' type-id='1dc6a898' visibility='default' filepath='include/linux/i3c/ccc.h' line='350' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/i3c/ccc.h' line='351' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d36a5b23' size-in-bits='64' id='112f0343'/>
+      <class-decl name='devfreq_event_dev' size-in-bits='7936' is-struct='yes' visibility='default' filepath='include/linux/devfreq-event.h' line='26' column='1' id='112f2691'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/devfreq-event.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/devfreq-event.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/linux/devfreq-event.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='enable_count' type-id='19c2251e' visibility='default' filepath='include/linux/devfreq-event.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='desc' type-id='dcea1110' visibility='default' filepath='include/linux/devfreq-event.h' line='33' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a249930e' size-in-bits='64' id='113423d8'/>
+      <enum-decl name='i2c_alert_protocol' filepath='include/linux/i2c.h' line='220' column='1' id='113aadc2'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='I2C_PROTOCOL_SMBUS_ALERT' value='0'/>
+        <enumerator name='I2C_PROTOCOL_SMBUS_HOST_NOTIFY' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='e2e8ac4a' size-in-bits='64' id='113f7bd4'/>
+      <pointer-type-def type-id='b00ac915' size-in-bits='64' id='1140bef1'/>
+      <pointer-type-def type-id='9467b853' size-in-bits='64' id='1146dea3'/>
+      <pointer-type-def type-id='2765d8de' size-in-bits='64' id='114d14e4'/>
+      <function-type size-in-bits='64' id='11581816'>
+        <parameter type-id='f66fa7f4'/>
+        <parameter type-id='1d2c2b85'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9a516b13' size-in-bits='64' id='115daa23'/>
+      <function-type size-in-bits='64' id='1161d058'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='c6493bfa'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='2040' id='11641789'>
+        <subrange length='255' type-id='7ff19f0f' id='36e7f891'/>
+      </array-type-def>
+      <pointer-type-def type-id='14617e76' size-in-bits='64' id='117460b0'/>
+      <pointer-type-def type-id='cf396435' size-in-bits='64' id='11777d05'/>
+      <class-decl name='ieee80211_iface_combination' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5083' column='1' id='1179f27e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='limits' type-id='2fde6795' visibility='default' filepath='include/net/cfg80211.h' line='5088' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_different_channels' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5094' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='max_interfaces' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='n_limits' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='beacon_int_infra_match' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='5113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='radar_detect_widths' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='radar_detect_regions' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='beacon_int_min_gcd' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5149' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='117b6b23'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='f8dc9def'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='xdp_mem_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/xdp.h' line='50' column='1' id='1182636e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='19c2251e' visibility='default' filepath='include/net/xdp.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='id' type-id='19c2251e' visibility='default' filepath='include/net/xdp.h' line='52' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='ff298a88' const='yes' id='1182d21f'/>
+      <pointer-type-def type-id='be55725b' size-in-bits='64' id='118327e3'/>
+      <class-decl name='drm_modeset_acquire_ctx' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/drm/drm_modeset_lock.h' line='43' column='1' id='118c2af9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ww_ctx' type-id='2c45f76e' visibility='default' filepath='include/drm/drm_modeset_lock.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='contended' type-id='b4b06bb8' visibility='default' filepath='include/drm/drm_modeset_lock.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='locked' type-id='72f469ec' visibility='default' filepath='include/drm/drm_modeset_lock.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='trylock_only' type-id='b50a4934' visibility='default' filepath='include/drm/drm_modeset_lock.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='392'>
+          <var-decl name='interruptible' type-id='b50a4934' visibility='default' filepath='include/drm/drm_modeset_lock.h' line='65' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='1199c98f'>
+        <parameter type-id='b47c553a'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='ttm_resource' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='168' column='1' id='11a2bfdd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='7359adad' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_pages' type-id='7359adad' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mem_type' type-id='8f92235e' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='placement' type-id='8f92235e' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bus' type-id='e93aa2cd' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='173' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='5b450efb' size-in-bits='1024' id='11a65fb6'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='723114f6' size-in-bits='2048' id='11a8d8e5'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <pointer-type-def type-id='ed51618b' size-in-bits='64' id='11b101bb'/>
+      <class-decl name='ip_sf_list' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/igmp.h' line='58' column='1' id='11b31209'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sf_next' type-id='ab3e7181' visibility='default' filepath='include/linux/igmp.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sf_count' type-id='f05e8e77' visibility='default' filepath='include/linux/igmp.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sf_inaddr' type-id='78a133c2' visibility='default' filepath='include/linux/igmp.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='sf_gsresp' type-id='002ac4a6' visibility='default' filepath='include/linux/igmp.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='232'>
+          <var-decl name='sf_oldin' type-id='002ac4a6' visibility='default' filepath='include/linux/igmp.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='240'>
+          <var-decl name='sf_crcount' type-id='002ac4a6' visibility='default' filepath='include/linux/igmp.h' line='64' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mtd_pairing_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/mtd/mtd.h' line='138' column='1' id='11b39afc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pair' type-id='95e97e5e' visibility='default' filepath='include/linux/mtd/mtd.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='group' type-id='95e97e5e' visibility='default' filepath='include/linux/mtd/mtd.h' line='140' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='19b26952' size-in-bits='64' id='11bff950'/>
+      <function-type size-in-bits='64' id='11c513ae'>
+        <parameter type-id='b4de78ea'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='mem_cgroup' size-in-bits='32256' is-struct='yes' visibility='default' filepath='include/linux/memcontrol.h' line='238' column='1' id='11c8601b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='css' type-id='7f3df443' visibility='default' filepath='include/linux/memcontrol.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='id' type-id='18f7b101' visibility='default' filepath='include/linux/memcontrol.h' line='242' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='memory' type-id='635c3685' visibility='default' filepath='include/linux/memcontrol.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='' type-id='ac5ab661' visibility='default' filepath='include/linux/memcontrol.h' line='247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='kmem' type-id='635c3685' visibility='default' filepath='include/linux/memcontrol.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='tcpmem' type-id='635c3685' visibility='default' filepath='include/linux/memcontrol.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5760'>
+          <var-decl name='high_work' type-id='ef9025d0' visibility='default' filepath='include/linux/memcontrol.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6144'>
+          <var-decl name='soft_limit' type-id='7359adad' visibility='default' filepath='include/linux/memcontrol.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6208'>
+          <var-decl name='vmpressure' type-id='d6294af7' visibility='default' filepath='include/linux/memcontrol.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='oom_group' type-id='b50a4934' visibility='default' filepath='include/linux/memcontrol.h' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7432'>
+          <var-decl name='oom_lock' type-id='b50a4934' visibility='default' filepath='include/linux/memcontrol.h' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7456'>
+          <var-decl name='under_oom' type-id='95e97e5e' visibility='default' filepath='include/linux/memcontrol.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='swappiness' type-id='95e97e5e' visibility='default' filepath='include/linux/memcontrol.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7520'>
+          <var-decl name='oom_kill_disable' type-id='95e97e5e' visibility='default' filepath='include/linux/memcontrol.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='events_file' type-id='37a4ee40' visibility='default' filepath='include/linux/memcontrol.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='events_local_file' type-id='37a4ee40' visibility='default' filepath='include/linux/memcontrol.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='swap_events_file' type-id='37a4ee40' visibility='default' filepath='include/linux/memcontrol.h' line='282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9280'>
+          <var-decl name='thresholds_lock' type-id='925167dc' visibility='default' filepath='include/linux/memcontrol.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9664'>
+          <var-decl name='thresholds' type-id='a38368d4' visibility='default' filepath='include/linux/memcontrol.h' line='288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9792'>
+          <var-decl name='memsw_thresholds' type-id='a38368d4' visibility='default' filepath='include/linux/memcontrol.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9920'>
+          <var-decl name='oom_notify' type-id='72f469ec' visibility='default' filepath='include/linux/memcontrol.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10048'>
+          <var-decl name='move_charge_at_immigrate' type-id='7359adad' visibility='default' filepath='include/linux/memcontrol.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10112'>
+          <var-decl name='move_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/memcontrol.h' line='302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10176'>
+          <var-decl name='move_lock_flags' type-id='7359adad' visibility='default' filepath='include/linux/memcontrol.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10240'>
+          <var-decl name='_pad1_' type-id='4f5a0c96' visibility='default' filepath='include/linux/memcontrol.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10240'>
+          <var-decl name='vmstats' type-id='b2c78807' visibility='default' filepath='include/linux/memcontrol.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27264'>
+          <var-decl name='memory_events' type-id='7698c98a' visibility='default' filepath='include/linux/memcontrol.h' line='311' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27776'>
+          <var-decl name='memory_events_local' type-id='7698c98a' visibility='default' filepath='include/linux/memcontrol.h' line='312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28288'>
+          <var-decl name='socket_pressure' type-id='7359adad' visibility='default' filepath='include/linux/memcontrol.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28352'>
+          <var-decl name='tcpmem_active' type-id='b50a4934' visibility='default' filepath='include/linux/memcontrol.h' line='317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28384'>
+          <var-decl name='tcpmem_pressure' type-id='95e97e5e' visibility='default' filepath='include/linux/memcontrol.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28416'>
+          <var-decl name='kmemcg_id' type-id='95e97e5e' visibility='default' filepath='include/linux/memcontrol.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28448'>
+          <var-decl name='kmem_state' type-id='def0995c' visibility='default' filepath='include/linux/memcontrol.h' line='322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28480'>
+          <var-decl name='objcg' type-id='959f1c77' visibility='default' filepath='include/linux/memcontrol.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28544'>
+          <var-decl name='objcg_list' type-id='72f469ec' visibility='default' filepath='include/linux/memcontrol.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28672'>
+          <var-decl name='_pad2_' type-id='4f5a0c96' visibility='default' filepath='include/linux/memcontrol.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28672'>
+          <var-decl name='moving_account' type-id='49178f86' visibility='default' filepath='include/linux/memcontrol.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28736'>
+          <var-decl name='move_lock_task' type-id='f23e2572' visibility='default' filepath='include/linux/memcontrol.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28800'>
+          <var-decl name='vmstats_percpu' type-id='a0d3a64b' visibility='default' filepath='include/linux/memcontrol.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28864'>
+          <var-decl name='cgwb_list' type-id='72f469ec' visibility='default' filepath='include/linux/memcontrol.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28992'>
+          <var-decl name='cgwb_domain' type-id='960bf1fd' visibility='default' filepath='include/linux/memcontrol.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='30080'>
+          <var-decl name='cgwb_frn' type-id='f53c5bdb' visibility='default' filepath='include/linux/memcontrol.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='31360'>
+          <var-decl name='event_list' type-id='72f469ec' visibility='default' filepath='include/linux/memcontrol.h' line='345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='31488'>
+          <var-decl name='event_list_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/memcontrol.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='31552'>
+          <var-decl name='deferred_split_queue' type-id='d619c1c5' visibility='default' filepath='include/linux/memcontrol.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='31808'>
+          <var-decl name='mm_list' type-id='658995bf' visibility='default' filepath='include/linux/memcontrol.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32000'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/linux/memcontrol.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32064'>
+          <var-decl name='android_oem_data1' type-id='24a375b2' visibility='default' filepath='include/linux/memcontrol.h' line='359' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32192'>
+          <var-decl name='nodeinfo' type-id='687d975e' visibility='default' filepath='include/linux/memcontrol.h' line='361' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cc3a4f0c' size-in-bits='64' id='11c98e9a'/>
+      <function-type size-in-bits='64' id='11ce232b'>
+        <parameter type-id='11f4a000'/>
+        <parameter type-id='64ed5260'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='c505fce2' size-in-bits='64' id='11d0d204'/>
+      <enum-decl name='utf16_endian' filepath='include/linux/nls.h' line='41' column='1' id='11d12470'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='UTF16_HOST_ENDIAN' value='0'/>
+        <enumerator name='UTF16_LITTLE_ENDIAN' value='1'/>
+        <enumerator name='UTF16_BIG_ENDIAN' value='2'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='b65a052d' size-in-bits='infinite' id='11d66d65'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <typedef-decl name='flow_setup_cb_t' type-id='1322ddb6' filepath='include/net/flow_offload.h' line='458' column='1' id='11d6bd91'/>
+      <pointer-type-def type-id='237d35ea' size-in-bits='64' id='11d98c7c'/>
+      <pointer-type-def type-id='55efd1a3' size-in-bits='64' id='11e02f83'/>
+      <pointer-type-def type-id='3eb82749' size-in-bits='64' id='11e11a61'/>
+      <pointer-type-def type-id='7e2e2485' size-in-bits='64' id='11e89fb9'/>
+      <pointer-type-def type-id='dd4fb9e4' size-in-bits='64' id='11ea832e'/>
+      <function-type size-in-bits='64' id='11ecaf45'>
+        <parameter type-id='c149fe34'/>
+        <parameter type-id='182be7cc'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='11ed9d28'>
+        <parameter type-id='226853d2'/>
+        <parameter type-id='f74174a4'/>
+        <parameter type-id='064bebb9'/>
+        <parameter type-id='180bfe06'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='eef53362' size-in-bits='64' id='11f19dd0'/>
+      <pointer-type-def type-id='599ce02a' size-in-bits='64' id='11f4a000'/>
+      <class-decl name='gserial' size-in-bits='2176' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/u_serial.h' line='34' column='1' id='11f6cc62'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='func' type-id='d6a54726' visibility='default' filepath='drivers/usb/gadget/function/u_serial.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='ioport' type-id='c10e36d3' visibility='default' filepath='drivers/usb/gadget/function/u_serial.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='in' type-id='63a08bf7' visibility='default' filepath='drivers/usb/gadget/function/u_serial.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='out' type-id='63a08bf7' visibility='default' filepath='drivers/usb/gadget/function/u_serial.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='port_line_coding' type-id='d4a32434' visibility='default' filepath='drivers/usb/gadget/function/u_serial.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='connect' type-id='cad718c1' visibility='default' filepath='drivers/usb/gadget/function/u_serial.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='disconnect' type-id='cad718c1' visibility='default' filepath='drivers/usb/gadget/function/u_serial.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='send_break' type-id='4980d45f' visibility='default' filepath='drivers/usb/gadget/function/u_serial.h' line='49' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3ba00442' size-in-bits='64' id='11f75c44'/>
+      <class-decl name='blkcg_policy_data' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/blk-cgroup.h' line='104' column='1' id='11fd1392'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='blkcg' type-id='11bff950' visibility='default' filepath='include/linux/blk-cgroup.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='plid' type-id='95e97e5e' visibility='default' filepath='include/linux/blk-cgroup.h' line='107' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2a4a9e01' size-in-bits='64' id='12054f29'/>
+      <class-decl name='srcu_data' size-in-bits='3072' is-struct='yes' visibility='default' filepath='include/linux/srcutree.h' line='24' column='1' id='1207cfa9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='srcu_lock_count' type-id='f05e8e77' visibility='default' filepath='include/linux/srcutree.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='srcu_unlock_count' type-id='f05e8e77' visibility='default' filepath='include/linux/srcutree.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/srcutree.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='srcu_cblist' type-id='541c023a' visibility='default' filepath='include/linux/srcutree.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='srcu_gp_seq_needed' type-id='7359adad' visibility='default' filepath='include/linux/srcutree.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='srcu_gp_seq_needed_exp' type-id='7359adad' visibility='default' filepath='include/linux/srcutree.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='srcu_cblist_invoking' type-id='b50a4934' visibility='default' filepath='include/linux/srcutree.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='delay_work' type-id='abe41e67' visibility='default' filepath='include/linux/srcutree.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/linux/srcutree.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='srcu_barrier_head' type-id='e3d8ce29' visibility='default' filepath='include/linux/srcutree.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='mynode' type-id='8dee6d89' visibility='default' filepath='include/linux/srcutree.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='grpmask' type-id='7359adad' visibility='default' filepath='include/linux/srcutree.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='cpu' type-id='95e97e5e' visibility='default' filepath='include/linux/srcutree.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='ssp' type-id='f7d7131a' visibility='default' filepath='include/linux/srcutree.h' line='42' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='upid' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/pid.h' line='54' column='1' id='120c01b5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nr' type-id='95e97e5e' visibility='default' filepath='include/linux/pid.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ns' type-id='b816e1d0' visibility='default' filepath='include/linux/pid.h' line='56' column='1'/>
+        </data-member>
+      </class-decl>
+      <union-decl name='hdmi_vendor_any_infoframe' size-in-bits='192' visibility='default' filepath='include/linux/hdmi.h' line='398' column='1' id='12153196'>
+        <data-member access='public'>
+          <var-decl name='any' type-id='e7f43fdc' visibility='default' filepath='include/linux/hdmi.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='hdmi' type-id='4db10e5c' visibility='default' filepath='include/linux/hdmi.h' line='405' column='1'/>
+        </data-member>
+      </union-decl>
+      <pointer-type-def type-id='bee590db' size-in-bits='64' id='121b202b'/>
+      <pointer-type-def type-id='5d0f15d4' size-in-bits='64' id='122191b2'/>
+      <pointer-type-def type-id='594ef19f' size-in-bits='64' id='1223555b'/>
+      <pointer-type-def type-id='25e34545' size-in-bits='64' id='12239021'/>
+      <pointer-type-def type-id='ef3b2b52' size-in-bits='64' id='12256de8'/>
+      <class-decl name='cec_fh' size-in-bits='3904' is-struct='yes' visibility='default' filepath='include/media/cec.h' line='90' column='1' id='1227fbe9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/media/cec.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='xfer_list' type-id='72f469ec' visibility='default' filepath='include/media/cec.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='adap' type-id='b94a2f7c' visibility='default' filepath='include/media/cec.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mode_initiator' type-id='f9b06939' visibility='default' filepath='include/media/cec.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='328'>
+          <var-decl name='mode_follower' type-id='f9b06939' visibility='default' filepath='include/media/cec.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='wait' type-id='b5ab048f' visibility='default' filepath='include/media/cec.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/media/cec.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='events' type-id='e8d7d286' visibility='default' filepath='include/media/cec.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='queued_events' type-id='c24d1a13' visibility='default' filepath='include/media/cec.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='total_queued_events' type-id='f0981eeb' visibility='default' filepath='include/media/cec.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='core_events' type-id='379ac606' visibility='default' filepath='include/media/cec.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='msgs' type-id='72f469ec' visibility='default' filepath='include/media/cec.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='queued_msgs' type-id='f0981eeb' visibility='default' filepath='include/media/cec.h' line='105' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0200d321' size-in-bits='64' id='122b01f9'/>
+      <pointer-type-def type-id='59db43b4' size-in-bits='64' id='122b71ba'/>
+      <class-decl name='ttm_device_funcs' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='71' column='1' id='1236501b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ttm_tt_create' type-id='450f3d4f' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ttm_tt_populate' type-id='b7f36c8c' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ttm_tt_unpopulate' type-id='27afa162' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ttm_tt_destroy' type-id='27afa162' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='eviction_valuable' type-id='67ac9797' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='evict_flags' type-id='c8e0f54d' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='move' type-id='6f98a9c4' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='delete_mem_notify' type-id='7c7fffd6' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='swap_notify' type-id='7c7fffd6' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='io_mem_reserve' type-id='6be5a823' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='io_mem_free' type-id='c30336a2' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='io_mem_pfn' type-id='7758a804' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='access_memory' type-id='cd386183' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='del_from_lru_notify' type-id='7c7fffd6' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='release_notify' type-id='7c7fffd6' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='228' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='124bcd53'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='f7b0e1b4'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='vlan_info' size-in-bits='1600' is-struct='yes' visibility='default' filepath='net/8021q/vlan.h' line='29' column='1' id='12504979'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='real_dev' type-id='68a2d05b' visibility='default' filepath='net/8021q/vlan.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='grp' type-id='491493f8' visibility='default' filepath='net/8021q/vlan.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='vid_list' type-id='72f469ec' visibility='default' filepath='net/8021q/vlan.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='nr_vids' type-id='f0981eeb' visibility='default' filepath='net/8021q/vlan.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='net/8021q/vlan.h' line='36' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_self_refresh_data' size-in-bits='1664' is-struct='yes' visibility='default' filepath='drivers/gpu/drm/drm_self_refresh_helper.c' line='58' column='1' id='12506762'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='crtc' type-id='b64ad7cb' visibility='default' filepath='drivers/gpu/drm/drm_self_refresh_helper.c' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='entry_work' type-id='5ad6e0ef' visibility='default' filepath='drivers/gpu/drm/drm_self_refresh_helper.c' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='avg_mutex' type-id='925167dc' visibility='default' filepath='drivers/gpu/drm/drm_self_refresh_helper.c' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='entry_avg_ms' type-id='6e15744f' visibility='default' filepath='drivers/gpu/drm/drm_self_refresh_helper.c' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='exit_avg_ms' type-id='6e15744f' visibility='default' filepath='drivers/gpu/drm/drm_self_refresh_helper.c' line='64' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='inet_bind_bucket' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/net/inet_hashtables.h' line='76' column='1' id='1251126e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ib_net' type-id='c9df1e6c' visibility='default' filepath='include/net/inet_hashtables.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='l3mdev' type-id='95e97e5e' visibility='default' filepath='include/net/inet_hashtables.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='port' type-id='8efea9e5' visibility='default' filepath='include/net/inet_hashtables.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='fastreuse' type-id='28577a57' visibility='default' filepath='include/net/inet_hashtables.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='fastreuseport' type-id='28577a57' visibility='default' filepath='include/net/inet_hashtables.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fastuid' type-id='d80b72e6' visibility='default' filepath='include/net/inet_hashtables.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='fast_v6_rcv_saddr' type-id='f6ed712a' visibility='default' filepath='include/net/inet_hashtables.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='fast_rcv_saddr' type-id='78a133c2' visibility='default' filepath='include/net/inet_hashtables.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='fast_sk_family' type-id='8efea9e5' visibility='default' filepath='include/net/inet_hashtables.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='336'>
+          <var-decl name='fast_ipv6_only' type-id='b50a4934' visibility='default' filepath='include/net/inet_hashtables.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='node' type-id='03a4a074' visibility='default' filepath='include/net/inet_hashtables.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='owners' type-id='e151255a' visibility='default' filepath='include/net/inet_hashtables.h' line='90' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_event_subscription' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2444' column='1' id='1251351e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2447' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='reserved' type-id='83a5454e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2448' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6167e1dd' size-in-bits='64' id='125250b1'/>
+      <pointer-type-def type-id='733b57c3' size-in-bits='64' id='1261411f'/>
+      <class-decl name='pm_subsys_data' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/pm.h' line='538' column='1' id='1269b801'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/pm.h' line='539' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='refcount' type-id='f0981eeb' visibility='default' filepath='include/linux/pm.h' line='540' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='clock_op_might_sleep' type-id='f0981eeb' visibility='default' filepath='include/linux/pm.h' line='542' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='clock_mutex' type-id='925167dc' visibility='default' filepath='include/linux/pm.h' line='543' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='clock_list' type-id='72f469ec' visibility='default' filepath='include/linux/pm.h' line='544' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='domain_data' type-id='53e3a7d6' visibility='default' filepath='include/linux/pm.h' line='547' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='1274f0d2'>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <typedef-decl name='drm_flip_func_t' type-id='5c8b296f' filepath='include/drm/drm_flip_work.h' line='52' column='1' id='12758247'/>
+      <pointer-type-def type-id='88776799' size-in-bits='64' id='127a97dd'/>
+      <function-type size-in-bits='64' id='127ce78a'>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='xfrm_state_walk' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/xfrm.h' line='120' column='1' id='12872440'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='all' type-id='72f469ec' visibility='default' filepath='include/net/xfrm.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='state' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='dying' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='proto' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='seq' type-id='19c2251e' visibility='default' filepath='include/net/xfrm.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='filter' type-id='14a0013e' visibility='default' filepath='include/net/xfrm.h' line='126' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='psi_group' size-in-bits='6080' is-struct='yes' visibility='default' filepath='include/linux/psi_types.h' line='150' column='1' id='12878ab3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='avgs_lock' type-id='925167dc' visibility='default' filepath='include/linux/psi_types.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='pcpu' type-id='9dc40234' visibility='default' filepath='include/linux/psi_types.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='avg_total' type-id='64acd4ce' visibility='default' filepath='include/linux/psi_types.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='avg_last_update' type-id='91ce1af9' visibility='default' filepath='include/linux/psi_types.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='avg_next_update' type-id='91ce1af9' visibility='default' filepath='include/linux/psi_types.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='avgs_work' type-id='5ad6e0ef' visibility='default' filepath='include/linux/psi_types.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='total' type-id='a42717ee' visibility='default' filepath='include/linux/psi_types.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='avg' type-id='a66a9b84' visibility='default' filepath='include/linux/psi_types.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='poll_task' type-id='f23e2572' visibility='default' filepath='include/linux/psi_types.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='poll_timer' type-id='abe41e67' visibility='default' filepath='include/linux/psi_types.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4480'>
+          <var-decl name='poll_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/psi_types.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4672'>
+          <var-decl name='poll_wakeup' type-id='49178f86' visibility='default' filepath='include/linux/psi_types.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='trigger_lock' type-id='925167dc' visibility='default' filepath='include/linux/psi_types.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='triggers' type-id='72f469ec' visibility='default' filepath='include/linux/psi_types.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='nr_triggers' type-id='5867ed7f' visibility='default' filepath='include/linux/psi_types.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5440'>
+          <var-decl name='poll_states' type-id='19c2251e' visibility='default' filepath='include/linux/psi_types.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='poll_min_period' type-id='91ce1af9' visibility='default' filepath='include/linux/psi_types.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='polling_total' type-id='64acd4ce' visibility='default' filepath='include/linux/psi_types.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5952'>
+          <var-decl name='polling_next_update' type-id='91ce1af9' visibility='default' filepath='include/linux/psi_types.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6016'>
+          <var-decl name='polling_until' type-id='91ce1af9' visibility='default' filepath='include/linux/psi_types.h' line='187' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='53f069ac' size-in-bits='64' id='12884b9a'/>
+      <pointer-type-def type-id='7085bcda' size-in-bits='64' id='12886dd0'/>
+      <pointer-type-def type-id='e50f8907' size-in-bits='64' id='128b8ebb'/>
+      <class-decl name='key' size-in-bits='1920' is-struct='yes' visibility='default' filepath='include/linux/key.h' line='189' column='1' id='128d0ac4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='usage' type-id='64615833' visibility='default' filepath='include/linux/key.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='serial' type-id='c84025ab' visibility='default' filepath='include/linux/key.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab639' visibility='default' filepath='include/linux/key.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='sem' type-id='f19fdb93' visibility='default' filepath='include/linux/key.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='user' type-id='23704f74' visibility='default' filepath='include/linux/key.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='security' type-id='eaa32e2f' visibility='default' filepath='include/linux/key.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='' type-id='ac5ab63a' visibility='default' filepath='include/linux/key.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='last_used_at' type-id='1afd27ac' visibility='default' filepath='include/linux/key.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='uid' type-id='d80b72e6' visibility='default' filepath='include/linux/key.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='gid' type-id='094d8048' visibility='default' filepath='include/linux/key.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='perm' type-id='296adac1' visibility='default' filepath='include/linux/key.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='quotalen' type-id='8efea9e5' visibility='default' filepath='include/linux/key.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1136'>
+          <var-decl name='datalen' type-id='8efea9e5' visibility='default' filepath='include/linux/key.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='state' type-id='a2185560' visibility='default' filepath='include/linux/key.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/key.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='' type-id='ac5ab63b' visibility='default' filepath='include/linux/key.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='' type-id='ac5ab63c' visibility='default' filepath='include/linux/key.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='restrict_link' type-id='92daca01' visibility='default' filepath='include/linux/key.h' line='274' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4d855bce' size-in-bits='64' id='12a060a4'/>
+      <class-decl name='cfg80211_sched_scan_request' size-in-bits='2112' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2733' column='1' id='12a2e88f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reqid' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2734' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ssids' type-id='a1fa7fb7' visibility='default' filepath='include/net/cfg80211.h' line='2735' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='n_ssids' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='2736' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='n_channels' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2737' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='scan_width' type-id='95d46034' visibility='default' filepath='include/net/cfg80211.h' line='2738' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ie' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='2739' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ie_len' type-id='b59d7dce' visibility='default' filepath='include/net/cfg80211.h' line='2740' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2741' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='match_sets' type-id='ea00c914' visibility='default' filepath='include/net/cfg80211.h' line='2742' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='n_match_sets' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='2743' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='min_rssi_thold' type-id='a7832498' visibility='default' filepath='include/net/cfg80211.h' line='2744' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='delay' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2745' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='scan_plans' type-id='302e9391' visibility='default' filepath='include/net/cfg80211.h' line='2746' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='n_scan_plans' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='2747' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='mac_addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='2749' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='784'>
+          <var-decl name='mac_addr_mask' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='2750' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='relative_rssi_set' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='2752' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='840'>
+          <var-decl name='relative_rssi' type-id='fdbf7a0f' visibility='default' filepath='include/net/cfg80211.h' line='2753' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='rssi_adjust' type-id='5da08e25' visibility='default' filepath='include/net/cfg80211.h' line='2754' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='wiphy' type-id='666fb412' visibility='default' filepath='include/net/cfg80211.h' line='2757' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/net/cfg80211.h' line='2758' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='scan_start' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='2759' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='report_results' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='2760' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/net/cfg80211.h' line='2761' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='owner_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2762' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='nl_owner_dead' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='2763' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='2764' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2766' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2767' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2768' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2769' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2771' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2772' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2773' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2774' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2776' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='channels' type-id='14cad687' visibility='default' filepath='include/net/cfg80211.h' line='2779' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='pgd_t' type-id='36d456a7' filepath='arch/arm64/include/asm/pgtable-types.h' line='39' column='1' id='12aa8ce4'/>
+      <class-decl name='spi_board_info' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/spi/spi.h' line='1441' column='1' id='12ab03ef'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='modalias' type-id='16dc656a' visibility='default' filepath='include/linux/spi/spi.h' line='1449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='platform_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/spi/spi.h' line='1450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='swnode' type-id='1cc6783c' visibility='default' filepath='include/linux/spi/spi.h' line='1451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='controller_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/spi/spi.h' line='1452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='irq' type-id='95e97e5e' visibility='default' filepath='include/linux/spi/spi.h' line='1453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='max_speed_hz' type-id='19c2251e' visibility='default' filepath='include/linux/spi/spi.h' line='1456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='bus_num' type-id='1dc6a898' visibility='default' filepath='include/linux/spi/spi.h' line='1465' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='528'>
+          <var-decl name='chip_select' type-id='1dc6a898' visibility='default' filepath='include/linux/spi/spi.h' line='1466' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='mode' type-id='19c2251e' visibility='default' filepath='include/linux/spi/spi.h' line='1471' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/spi/spi.h' line='1473' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='db396bce' size-in-bits='64' id='12ad7b84'/>
+      <function-type size-in-bits='64' id='12afeb30'>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='7ca29816'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='22e47c79' size-in-bits='64' id='12c1f7e1'/>
+      <pointer-type-def type-id='7ff67237' size-in-bits='64' id='12c8496b'/>
+      <pointer-type-def type-id='17982ea7' size-in-bits='64' id='12c9f95b'/>
+      <pointer-type-def type-id='ebeb7c64' size-in-bits='64' id='12cb2be6'/>
+      <qualified-type-def type-id='9218f3f6' const='yes' id='12cfd48b'/>
+      <pointer-type-def type-id='eb53191f' size-in-bits='64' id='12d26e9b'/>
+      <pointer-type-def type-id='dc30ce58' size-in-bits='64' id='12d4fd76'/>
+      <pointer-type-def type-id='cf8cfd4f' size-in-bits='64' id='12dffdbb'/>
+      <pointer-type-def type-id='40877b8a' size-in-bits='64' id='12e23e5c'/>
+      <function-type size-in-bits='64' id='12e476c1'>
+        <parameter type-id='b94a2f7c'/>
+        <parameter type-id='f8dc9def'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='296' id='12e4ade3'>
+        <subrange length='37' type-id='7ff19f0f' id='aa6426fb'/>
+      </array-type-def>
+      <pointer-type-def type-id='262d57ae' size-in-bits='64' id='12e56aa0'/>
+      <function-type size-in-bits='64' id='12f09262'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='7292109c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='56cb7858' size-in-bits='64' id='12f0ff82'/>
+      <pointer-type-def type-id='fff56995' size-in-bits='64' id='12f283a5'/>
+      <function-type size-in-bits='64' id='1302297b'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='981420b7'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='130ae6d1'>
+        <parameter type-id='06b2cd14'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='130b5fb5'>
+        <parameter type-id='f23e2572'/>
+        <parameter type-id='5f8a1ac4'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='ee14fd94' size-in-bits='64' id='13103032'/>
+      <pointer-type-def type-id='1a7fa4c7' size-in-bits='64' id='1314e51b'/>
+      <enum-decl name='typec_orientation' filepath='include/linux/usb/typec.h' line='71' column='1' id='131b0a9c'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='TYPEC_ORIENTATION_NONE' value='0'/>
+        <enumerator name='TYPEC_ORIENTATION_NORMAL' value='1'/>
+        <enumerator name='TYPEC_ORIENTATION_REVERSE' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='f3dd5585' size-in-bits='64' id='13229469'/>
+      <function-type size-in-bits='64' id='1322ddb6'>
+        <parameter type-id='b3e12f1c'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='5fa4ba0d' size-in-bits='64' id='133b86a1'/>
+      <pointer-type-def type-id='7ca99f8c' size-in-bits='64' id='1351457a'/>
+      <pointer-type-def type-id='8eb3840c' size-in-bits='64' id='1351523a'/>
+      <class-decl name='cpumask' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/cpumask.h' line='17' column='1' id='1354385d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bits' type-id='f066dd3c' visibility='default' filepath='include/linux/cpumask.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='135a5d4b'>
+        <parameter type-id='5760dcb0'/>
+        <parameter type-id='5760dcb0'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='135de8a2'>
+        <parameter type-id='6f67b38a'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='13606a0e'>
+        <parameter type-id='226853d2'/>
+        <parameter type-id='f74174a4'/>
+        <parameter type-id='064bebb9'/>
+        <parameter type-id='180bfe06'/>
+        <parameter type-id='c67c1129'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='00a425f2' size-in-bits='64' id='13636c34'/>
+      <pointer-type-def type-id='f4398a06' size-in-bits='64' id='13680d10'/>
+      <function-type size-in-bits='64' id='136c624c'>
+        <parameter type-id='74b427eb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='136fe2b5'>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1376efc1'>
+        <parameter type-id='2cb4dc09'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='137e352e'>
+        <parameter type-id='775147d9'/>
+        <parameter type-id='af02a266'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='pm_qos_type' filepath='include/linux/pm_qos.h' line='41' column='1' id='1389f6b6'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PM_QOS_UNITIALIZED' value='0'/>
+        <enumerator name='PM_QOS_MAX' value='1'/>
+        <enumerator name='PM_QOS_MIN' value='2'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='138cdbe0'>
+        <parameter type-id='c67366c7'/>
+        <parameter type-id='4ab96a04'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='drm_syncobj' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/drm/drm_syncobj.h' line='39' column='1' id='138d3c05'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='refcount' type-id='400fb07b' visibility='default' filepath='include/drm/drm_syncobj.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fence' type-id='28271da3' visibility='default' filepath='include/drm/drm_syncobj.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cb_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_syncobj.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/drm/drm_syncobj.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='file' type-id='77e79a4b' visibility='default' filepath='include/drm/drm_syncobj.h' line='63' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='18620c48' size-in-bits='64' id='1391f54a'/>
+      <pointer-type-def type-id='b99c00c9' size-in-bits='64' id='13956559'/>
+      <class-decl name='clock_event_device' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/linux/clockchips.h' line='100' column='1' id='13964735'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='event_handler' type-id='7106dab8' visibility='default' filepath='include/linux/clockchips.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='set_next_event' type-id='1bff60d1' visibility='default' filepath='include/linux/clockchips.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='set_next_ktime' type-id='a4477ecf' visibility='default' filepath='include/linux/clockchips.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='next_event' type-id='fbc017ef' visibility='default' filepath='include/linux/clockchips.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='max_delta_ns' type-id='91ce1af9' visibility='default' filepath='include/linux/clockchips.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='min_delta_ns' type-id='91ce1af9' visibility='default' filepath='include/linux/clockchips.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='mult' type-id='19c2251e' visibility='default' filepath='include/linux/clockchips.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='shift' type-id='19c2251e' visibility='default' filepath='include/linux/clockchips.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='state_use_accessors' type-id='3d8b7ef7' visibility='default' filepath='include/linux/clockchips.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='features' type-id='f0981eeb' visibility='default' filepath='include/linux/clockchips.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='retries' type-id='7359adad' visibility='default' filepath='include/linux/clockchips.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='set_state_periodic' type-id='d6a989c3' visibility='default' filepath='include/linux/clockchips.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='set_state_oneshot' type-id='d6a989c3' visibility='default' filepath='include/linux/clockchips.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='set_state_oneshot_stopped' type-id='d6a989c3' visibility='default' filepath='include/linux/clockchips.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='set_state_shutdown' type-id='d6a989c3' visibility='default' filepath='include/linux/clockchips.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='tick_resume' type-id='d6a989c3' visibility='default' filepath='include/linux/clockchips.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='broadcast' type-id='5858ec15' visibility='default' filepath='include/linux/clockchips.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='suspend' type-id='7106dab8' visibility='default' filepath='include/linux/clockchips.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='resume' type-id='7106dab8' visibility='default' filepath='include/linux/clockchips.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='min_delta_ticks' type-id='7359adad' visibility='default' filepath='include/linux/clockchips.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='max_delta_ticks' type-id='7359adad' visibility='default' filepath='include/linux/clockchips.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/clockchips.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='rating' type-id='95e97e5e' visibility='default' filepath='include/linux/clockchips.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='irq' type-id='95e97e5e' visibility='default' filepath='include/linux/clockchips.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='bound_on' type-id='95e97e5e' visibility='default' filepath='include/linux/clockchips.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='cpumask' type-id='5f8a1ac4' visibility='default' filepath='include/linux/clockchips.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/clockchips.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/clockchips.h' line='131' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d1e608d4' size-in-bits='64' id='139a279e'/>
+      <function-type size-in-bits='64' id='139c5a2c'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='68bb1ec5'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='timeu64_t' type-id='d3130597' filepath='include/linux/time64.h' line='9' column='1' id='13afd1c1'/>
+      <function-type size-in-bits='64' id='13b1c3f8'>
+        <parameter type-id='43c38462'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='75a3ad48' size-in-bits='64' id='13b49faa'/>
+      <function-type size-in-bits='64' id='13bb6c7c'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='d2063c9e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='13be673b'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='f60348b3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='13be8ab4'>
+        <parameter type-id='0e3f80d9'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='hdmi_any_infoframe' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/hdmi.h' line='65' column='1' id='13c06ba8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='c573b339' visibility='default' filepath='include/linux/hdmi.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='version' type-id='002ac4a6' visibility='default' filepath='include/linux/hdmi.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='length' type-id='002ac4a6' visibility='default' filepath='include/linux/hdmi.h' line='68' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b0f558fb' size-in-bits='64' id='13d38dcb'/>
+      <pointer-type-def type-id='d43d82dd' size-in-bits='64' id='13d52ad5'/>
+      <pointer-type-def type-id='ee0fc87b' size-in-bits='64' id='13d85783'/>
+      <pointer-type-def type-id='846120de' size-in-bits='64' id='13daec78'/>
+      <function-type size-in-bits='64' id='13de152d'>
+        <parameter type-id='27f3f5d8'/>
+        <parameter type-id='cf29c9b3'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='0e3f80d9'/>
+      </function-type>
+      <pointer-type-def type-id='27d499b2' size-in-bits='64' id='13e0bcaf'/>
+      <function-type size-in-bits='64' id='13edfabd'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='e9a4c848'/>
+      </function-type>
+      <pointer-type-def type-id='16c50f80' size-in-bits='64' id='13ef4686'/>
+      <pointer-type-def type-id='97ed0ee7' size-in-bits='64' id='13f343ef'/>
+      <array-type-def dimensions='1' type-id='1dc6a898' size-in-bits='2048' id='13faf778'>
+        <subrange length='128' type-id='7ff19f0f' id='1eb1687a'/>
+      </array-type-def>
+      <class-decl name='blk_keyslot_manager' size-in-bits='1600' is-struct='yes' visibility='default' filepath='include/linux/keyslot-manager.h' line='52' column='1' id='13fcfe64'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ksm_ll_ops' type-id='85385c54' visibility='default' filepath='include/linux/keyslot-manager.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='max_dun_bytes_supported' type-id='f0981eeb' visibility='default' filepath='include/linux/keyslot-manager.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='features' type-id='f0981eeb' visibility='default' filepath='include/linux/keyslot-manager.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='crypto_modes_supported' type-id='49580a63' visibility='default' filepath='include/linux/keyslot-manager.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/keyslot-manager.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='num_slots' type-id='f0981eeb' visibility='default' filepath='include/linux/keyslot-manager.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='lock' type-id='f19fdb93' visibility='default' filepath='include/linux/keyslot-manager.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='idle_slots_wait_queue' type-id='b5ab048f' visibility='default' filepath='include/linux/keyslot-manager.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='idle_slots' type-id='72f469ec' visibility='default' filepath='include/linux/keyslot-manager.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='idle_slots_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/keyslot-manager.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='slot_hashtable' type-id='030d0b18' visibility='default' filepath='include/linux/keyslot-manager.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='log_slot_ht_size' type-id='f0981eeb' visibility='default' filepath='include/linux/keyslot-manager.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='slots' type-id='5b559658' visibility='default' filepath='include/linux/keyslot-manager.h' line='105' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='14059615'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='d2524501'/>
+        <parameter type-id='841969d0'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='d61bf978' size-in-bits='64' id='14061e47'/>
+      <pointer-type-def type-id='772a4ddf' size-in-bits='64' id='141b6427'/>
+      <class-decl name='kmap_ctrl' is-struct='yes' visibility='default' filepath='include/linux/sched.h' line='730' column='1' id='14282108'/>
+      <class-decl name='neigh_parms' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/net/neighbour.h' line='71' column='1' id='1429eee4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='net' type-id='c9df1e6c' visibility='default' filepath='include/net/neighbour.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/net/neighbour.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/neighbour.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='neigh_setup' type-id='8eff9c66' visibility='default' filepath='include/net/neighbour.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='tbl' type-id='6bbe39a7' visibility='default' filepath='include/net/neighbour.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='sysctl_table' type-id='eaa32e2f' visibility='default' filepath='include/net/neighbour.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='dead' type-id='95e97e5e' visibility='default' filepath='include/net/neighbour.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/net/neighbour.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/net/neighbour.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='reachable_time' type-id='95e97e5e' visibility='default' filepath='include/net/neighbour.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='data' type-id='77ba73f2' visibility='default' filepath='include/net/neighbour.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='data_state' type-id='f066dd3c' visibility='default' filepath='include/net/neighbour.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/neighbour.h' line='88' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_connector_funcs' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/drm/drm_connector.h' line='804' column='1' id='142d8eca'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dpms' type-id='d379869f' visibility='default' filepath='include/drm/drm_connector.h' line='821' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reset' type-id='a3cb28f1' visibility='default' filepath='include/drm/drm_connector.h' line='833' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='detect' type-id='9f1392b3' visibility='default' filepath='include/drm/drm_connector.h' line='866' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='force' type-id='a3cb28f1' visibility='default' filepath='include/drm/drm_connector.h' line='883' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='fill_modes' type-id='96846df4' visibility='default' filepath='include/drm/drm_connector.h' line='908' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='set_property' type-id='9a2977d1' visibility='default' filepath='include/drm/drm_connector.h' line='924' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='late_register' type-id='0b8c9d30' visibility='default' filepath='include/drm/drm_connector.h' line='943' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='early_unregister' type-id='a3cb28f1' visibility='default' filepath='include/drm/drm_connector.h' line='956' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='destroy' type-id='a3cb28f1' visibility='default' filepath='include/drm/drm_connector.h' line='966' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='atomic_duplicate_state' type-id='be89b2b8' visibility='default' filepath='include/drm/drm_connector.h' line='999' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='atomic_destroy_state' type-id='6e5d37e2' visibility='default' filepath='include/drm/drm_connector.h' line='1009' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='atomic_set_property' type-id='69fbf2a0' visibility='default' filepath='include/drm/drm_connector.h' line='1054' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='atomic_get_property' type-id='456e047e' visibility='default' filepath='include/drm/drm_connector.h' line='1077' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='atomic_print_state' type-id='b01310d2' visibility='default' filepath='include/drm/drm_connector.h' line='1091' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='1432736a'>
+        <parameter type-id='2567e379'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='2ae08426'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='drm_dsc_config' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/drm/drm_dsc.h' line='75' column='1' id='1435ffc6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='line_buf_depth' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bits_per_component' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='convert_rgb' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dsc.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='slice_count' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='slice_width' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_dsc.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='slice_height' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_dsc.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='simple_422' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dsc.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='pic_width' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_dsc.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='pic_height' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_dsc.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='rc_tgt_offset_high' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='rc_tgt_offset_low' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bits_per_pixel' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_dsc.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='rc_edge_factor' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='rc_quant_incr_limit1' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='rc_quant_incr_limit0' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='initial_xmit_delay' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_dsc.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='initial_dec_delay' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_dsc.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='block_pred_enable' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dsc.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='216'>
+          <var-decl name='first_line_bpg_offset' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='initial_offset' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_dsc.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='240'>
+          <var-decl name='rc_buf_thresh' type-id='feca937c' visibility='default' filepath='include/drm/drm_dsc.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='464'>
+          <var-decl name='rc_range_params' type-id='9a1c3c10' visibility='default' filepath='include/drm/drm_dsc.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='rc_model_size' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_dsc.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='848'>
+          <var-decl name='flatness_min_qp' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='856'>
+          <var-decl name='flatness_max_qp' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='initial_scale_value' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='880'>
+          <var-decl name='scale_decrement_interval' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_dsc.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='scale_increment_interval' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_dsc.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='912'>
+          <var-decl name='nfl_bpg_offset' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_dsc.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='slice_bpg_offset' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_dsc.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='944'>
+          <var-decl name='final_offset' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_dsc.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='vbr_enable' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dsc.h' line='226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='968'>
+          <var-decl name='mux_word_size' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='976'>
+          <var-decl name='slice_chunk_size' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_dsc.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='rc_bits' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_dsc.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1008'>
+          <var-decl name='dsc_version_minor' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1016'>
+          <var-decl name='dsc_version_major' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='native_422' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dsc.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1032'>
+          <var-decl name='native_420' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dsc.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1040'>
+          <var-decl name='second_line_bpg_offset' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='nsl_bpg_offset' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_dsc.h' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1072'>
+          <var-decl name='second_line_offset_adj' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_dsc.h' line='272' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='40fcf9ec' size-in-bits='64' id='143d32b2'/>
+      <pointer-type-def type-id='dbc3320a' size-in-bits='64' id='1447e860'/>
+      <pointer-type-def type-id='973f0727' size-in-bits='64' id='144a094f'/>
+      <pointer-type-def type-id='42736e36' size-in-bits='64' id='144a5d4c'/>
+      <class-decl name='pd_message' size-in-bits='240' is-struct='yes' visibility='default' filepath='include/linux/usb/pd.h' line='195' column='1' id='144ab5f9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='header' type-id='23119536' visibility='default' filepath='include/linux/usb/pd.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='' type-id='ac5ab624' visibility='default' filepath='include/linux/usb/pd.h' line='197' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='144e93b2'>
+        <parameter type-id='343c3ae4'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='vb2_fileio_buf' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2531' column='1' id='14582e4a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vaddr' type-id='eaa32e2f' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2532' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='f0981eeb' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2533' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='pos' type-id='f0981eeb' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='queued' type-id='f0981eeb' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2535' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5f7638f8' size-in-bits='64' id='145acfb2'/>
+      <function-type size-in-bits='64' id='14617e76'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='a589466a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='pcpu_tx_sc_stats' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/macsec.h' line='131' column='1' id='146441cf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='stats' type-id='20c96a5d' visibility='default' filepath='include/net/macsec.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='syncp' type-id='e4d85780' visibility='default' filepath='include/net/macsec.h' line='133' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='850096b4' size-in-bits='64' id='146bc842'/>
+      <class-decl name='worker' size-in-bits='1280' is-struct='yes' visibility='default' filepath='kernel/workqueue_internal.h' line='24' column='1' id='146df21f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab68e' visibility='default' filepath='kernel/workqueue_internal.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='current_work' type-id='83c1bde6' visibility='default' filepath='kernel/workqueue_internal.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='current_func' type-id='72666d3f' visibility='default' filepath='kernel/workqueue_internal.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='current_pwq' type-id='a7a31b92' visibility='default' filepath='kernel/workqueue_internal.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='current_color' type-id='f0981eeb' visibility='default' filepath='kernel/workqueue_internal.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='scheduled' type-id='72f469ec' visibility='default' filepath='kernel/workqueue_internal.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='task' type-id='f23e2572' visibility='default' filepath='kernel/workqueue_internal.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='pool' type-id='1ce8c5e4' visibility='default' filepath='kernel/workqueue_internal.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='kernel/workqueue_internal.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='last_active' type-id='7359adad' visibility='default' filepath='kernel/workqueue_internal.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='kernel/workqueue_internal.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='kernel/workqueue_internal.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='sleeping' type-id='95e97e5e' visibility='default' filepath='kernel/workqueue_internal.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='desc' type-id='6653bb13' visibility='default' filepath='kernel/workqueue_internal.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='rescue_wq' type-id='242e3d19' visibility='default' filepath='kernel/workqueue_internal.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='last_func' type-id='72666d3f' visibility='default' filepath='kernel/workqueue_internal.h' line='60' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='55b7e9ac' size-in-bits='64' id='147b8c0a'/>
+      <pointer-type-def type-id='b7b43e53' size-in-bits='64' id='147cd5a7'/>
+      <pointer-type-def type-id='b47ad2f2' size-in-bits='64' id='1483bbe4'/>
+      <pointer-type-def type-id='74fe6eb8' size-in-bits='64' id='1484809a'/>
+      <class-decl name='scsi_target' size-in-bits='8000' is-struct='yes' visibility='default' filepath='include/scsi/scsi_device.h' line='305' column='1' id='148c2b1d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='starget_sdev_user' type-id='eb572b74' visibility='default' filepath='include/scsi/scsi_device.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='siblings' type-id='72f469ec' visibility='default' filepath='include/scsi/scsi_device.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='devices' type-id='72f469ec' visibility='default' filepath='include/scsi/scsi_device.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/scsi/scsi_device.h' line='309' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='reap_ref' type-id='400fb07b' visibility='default' filepath='include/scsi/scsi_device.h' line='310' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7648'>
+          <var-decl name='channel' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='311' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='id' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7712'>
+          <var-decl name='create' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7713'>
+          <var-decl name='single_lun' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7714'>
+          <var-decl name='pdt_1f_for_no_lun' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7715'>
+          <var-decl name='no_report_luns' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7716'>
+          <var-decl name='expecting_lun_change' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='target_busy' type-id='49178f86' visibility='default' filepath='include/scsi/scsi_device.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7776'>
+          <var-decl name='target_blocked' type-id='49178f86' visibility='default' filepath='include/scsi/scsi_device.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='can_queue' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7840'>
+          <var-decl name='max_target_blocked' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='scsi_level' type-id='a84c031d' visibility='default' filepath='include/scsi/scsi_device.h' line='337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7904'>
+          <var-decl name='state' type-id='0e1b99c8' visibility='default' filepath='include/scsi/scsi_device.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='hostdata' type-id='eaa32e2f' visibility='default' filepath='include/scsi/scsi_device.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='starget_data' type-id='c99b5ecd' visibility='default' filepath='include/scsi/scsi_device.h' line='340' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='14946bd8'>
+        <parameter type-id='bf4bdb64'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='bf3ef905'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='3eb7c31c'/>
+        <parameter type-id='78c01427'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='uint16_t' type-id='1dc6a898' filepath='include/linux/types.h' line='103' column='1' id='149c6638'/>
+      <pointer-type-def type-id='1c210187' size-in-bits='64' id='149deb03'/>
+      <pointer-type-def type-id='34072a4b' size-in-bits='64' id='149f0e1f'/>
+      <pointer-type-def type-id='b4a65d38' size-in-bits='64' id='14a0013e'/>
+      <class-decl name='netdev_phys_item_id' size-in-bits='264' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='868' column='1' id='14a30316'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='fc872715' visibility='default' filepath='include/linux/netdevice.h' line='869' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='id_len' type-id='002ac4a6' visibility='default' filepath='include/linux/netdevice.h' line='870' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='14a454b5'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='5a1b3f53'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='5049bff3' size-in-bits='64' id='14a7c87f'/>
+      <pointer-type-def type-id='b2ea0ff9' size-in-bits='64' id='14aa811d'/>
+      <class-decl name='cpuidle_device' size-in-bits='6464' is-struct='yes' visibility='default' filepath='include/linux/cpuidle.h' line='93' column='1' id='14ba1df2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='registered' type-id='f0981eeb' visibility='default' filepath='include/linux/cpuidle.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1'>
+          <var-decl name='enabled' type-id='f0981eeb' visibility='default' filepath='include/linux/cpuidle.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2'>
+          <var-decl name='poll_time_limit' type-id='f0981eeb' visibility='default' filepath='include/linux/cpuidle.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='cpu' type-id='f0981eeb' visibility='default' filepath='include/linux/cpuidle.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='next_hrtimer' type-id='fbc017ef' visibility='default' filepath='include/linux/cpuidle.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='last_state_idx' type-id='95e97e5e' visibility='default' filepath='include/linux/cpuidle.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='last_residency_ns' type-id='91ce1af9' visibility='default' filepath='include/linux/cpuidle.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='poll_limit_ns' type-id='91ce1af9' visibility='default' filepath='include/linux/cpuidle.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='forced_idle_latency_limit_ns' type-id='91ce1af9' visibility='default' filepath='include/linux/cpuidle.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='states_usage' type-id='b25dce46' visibility='default' filepath='include/linux/cpuidle.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='kobjs' type-id='7b1498fd' visibility='default' filepath='include/linux/cpuidle.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6144'>
+          <var-decl name='kobj_driver' type-id='a49b2975' visibility='default' filepath='include/linux/cpuidle.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6208'>
+          <var-decl name='kobj_dev' type-id='d4f9dda1' visibility='default' filepath='include/linux/cpuidle.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6272'>
+          <var-decl name='device_list' type-id='72f469ec' visibility='default' filepath='include/linux/cpuidle.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6400'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/cpuidle.h' line='115' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e1834a73' size-in-bits='64' id='14ba77ef'/>
+      <pointer-type-def type-id='77984907' size-in-bits='64' id='14bde5bf'/>
+      <qualified-type-def type-id='29476915' const='yes' id='14c4c914'/>
+      <class-decl name='cec_event_state_change' size-in-bits='48' is-struct='yes' visibility='default' filepath='include/uapi/linux/cec.h' line='439' column='1' id='14c5637c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='phys_addr' type-id='d315442e' visibility='default' filepath='include/uapi/linux/cec.h' line='440' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='log_addr_mask' type-id='d315442e' visibility='default' filepath='include/uapi/linux/cec.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='have_conn_info' type-id='d315442e' visibility='default' filepath='include/uapi/linux/cec.h' line='442' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='24b7dd0c' size-in-bits='64' id='14c728aa'/>
+      <typedef-decl name='ZSTD_strategy' type-id='0aaee52d' filepath='include/linux/zstd.h' line='128' column='1' id='14c83269'/>
+      <pointer-type-def type-id='fe1697ae' size-in-bits='64' id='14ca5c08'/>
+      <array-type-def dimensions='1' type-id='ec00acfb' size-in-bits='infinite' id='14cad687'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='b1376802' size-in-bits='64' id='14cefd25'/>
+      <qualified-type-def type-id='ea65fb21' const='yes' id='14d2a428'/>
+      <pointer-type-def type-id='3e1ff33b' size-in-bits='64' id='14d3a147'/>
+      <class-decl name='usb_ep_caps' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/usb/gadget.h' line='170' column='1' id='14d94f61'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type_control' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1'>
+          <var-decl name='type_iso' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2'>
+          <var-decl name='type_bulk' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3'>
+          <var-decl name='type_int' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4'>
+          <var-decl name='dir_in' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5'>
+          <var-decl name='dir_out' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='176' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='14db9ec3'>
+        <parameter type-id='108dbc98'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='2522883d'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='c7bd5f5c' size-in-bits='64' id='14dc741a'/>
+      <pointer-type-def type-id='f3def31b' size-in-bits='64' id='14e4adab'/>
+      <function-type size-in-bits='64' id='14eafad2'>
+        <parameter type-id='40735a95'/>
+        <parameter type-id='c0a9211d'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='2b7b3388' size-in-bits='64' id='14f24806'/>
+      <class-decl name='anon_vma' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/linux/rmap.h' line='33' column='1' id='14f332cc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='root' type-id='a8f86cda' visibility='default' filepath='include/linux/rmap.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rwsem' type-id='f19fdb93' visibility='default' filepath='include/linux/rmap.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='refcount' type-id='49178f86' visibility='default' filepath='include/linux/rmap.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='degree' type-id='f0981eeb' visibility='default' filepath='include/linux/rmap.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='parent' type-id='a8f86cda' visibility='default' filepath='include/linux/rmap.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='rb_root' type-id='6fe1603d' visibility='default' filepath='include/linux/rmap.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='num_children' type-id='7359adad' visibility='default' filepath='include/linux/rmap.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='num_active_vmas' type-id='7359adad' visibility='default' filepath='include/linux/rmap.h' line='76' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='031a4ff0' size-in-bits='64' id='1507ee2a'/>
+      <class-decl name='va_format' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/printk.h' line='81' column='1' id='150dc81a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fmt' type-id='80f4b756' visibility='default' filepath='include/linux/printk.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='va' type-id='50bcf651' visibility='default' filepath='include/linux/printk.h' line='83' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='29d79af7' size-in-bits='64' id='150efd3f'/>
+      <pointer-type-def type-id='889a8a64' size-in-bits='64' id='150fd0b2'/>
+      <pointer-type-def type-id='63ecd8bd' size-in-bits='64' id='152c14d9'/>
+      <qualified-type-def type-id='df5f1cc8' const='yes' id='152c9867'/>
+      <class-decl name='wakeup_source' size-in-bits='1664' is-struct='yes' visibility='default' filepath='include/linux/pm_wakeup.h' line='43' column='1' id='152cd1b0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/pm_wakeup.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/pm_wakeup.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='entry' type-id='72f469ec' visibility='default' filepath='include/linux/pm_wakeup.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/pm_wakeup.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='wakeirq' type-id='303e01fa' visibility='default' filepath='include/linux/pm_wakeup.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='timer' type-id='abe41e67' visibility='default' filepath='include/linux/pm_wakeup.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='timer_expires' type-id='7359adad' visibility='default' filepath='include/linux/pm_wakeup.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='total_time' type-id='fbc017ef' visibility='default' filepath='include/linux/pm_wakeup.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='max_time' type-id='fbc017ef' visibility='default' filepath='include/linux/pm_wakeup.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='last_time' type-id='fbc017ef' visibility='default' filepath='include/linux/pm_wakeup.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='start_prevent_time' type-id='fbc017ef' visibility='default' filepath='include/linux/pm_wakeup.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='prevent_sleep_time' type-id='fbc017ef' visibility='default' filepath='include/linux/pm_wakeup.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='event_count' type-id='7359adad' visibility='default' filepath='include/linux/pm_wakeup.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='active_count' type-id='7359adad' visibility='default' filepath='include/linux/pm_wakeup.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='relax_count' type-id='7359adad' visibility='default' filepath='include/linux/pm_wakeup.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='expire_count' type-id='7359adad' visibility='default' filepath='include/linux/pm_wakeup.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='wakeup_count' type-id='7359adad' visibility='default' filepath='include/linux/pm_wakeup.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/pm_wakeup.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='active' type-id='b50a4934' visibility='default' filepath='include/linux/pm_wakeup.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1601'>
+          <var-decl name='autosleep_enabled' type-id='b50a4934' visibility='default' filepath='include/linux/pm_wakeup.h' line='63' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='kernel_stat' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/kernel_stat.h' line='38' column='1' id='153750ef'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='irqs_sum' type-id='7359adad' visibility='default' filepath='include/linux/kernel_stat.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='softirqs' type-id='67c1c82c' visibility='default' filepath='include/linux/kernel_stat.h' line='40' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='netprio_map' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/netprio_cgroup.h' line='16' column='1' id='153d6bdb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/netprio_cgroup.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='priomap_len' type-id='19c2251e' visibility='default' filepath='include/net/netprio_cgroup.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='priomap' type-id='c165e8b9' visibility='default' filepath='include/net/netprio_cgroup.h' line='19' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5a3e162b' size-in-bits='64' id='153e161b'/>
+      <class-decl name='cfg80211_cached_keys' is-struct='yes' visibility='default' is-declaration-only='yes' id='1540019b'/>
+      <pointer-type-def type-id='dd60e4df' size-in-bits='64' id='15436247'/>
+      <class-decl name='tcf_chain' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/net/sch_generic.h' line='440' column='1' id='1546c604'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='filter_chain_lock' type-id='925167dc' visibility='default' filepath='include/net/sch_generic.h' line='442' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='filter_chain' type-id='6dca061b' visibility='default' filepath='include/net/sch_generic.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/sch_generic.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='block' type-id='13ef4686' visibility='default' filepath='include/net/sch_generic.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='index' type-id='19c2251e' visibility='default' filepath='include/net/sch_generic.h' line='446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='refcnt' type-id='f0981eeb' visibility='default' filepath='include/net/sch_generic.h' line='447' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='action_refcnt' type-id='f0981eeb' visibility='default' filepath='include/net/sch_generic.h' line='448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='explicitly_created' type-id='b50a4934' visibility='default' filepath='include/net/sch_generic.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='744'>
+          <var-decl name='flushing' type-id='b50a4934' visibility='default' filepath='include/net/sch_generic.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='tmplt_ops' type-id='e12279e7' visibility='default' filepath='include/net/sch_generic.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='tmplt_priv' type-id='eaa32e2f' visibility='default' filepath='include/net/sch_generic.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/sch_generic.h' line='453' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2707fa43' size-in-bits='64' id='154ec6df'/>
+      <function-type size-in-bits='64' id='154f1323'>
+        <parameter type-id='ca9354d1'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e29df76e' size-in-bits='64' id='15543b10'/>
+      <class-decl name='trace_event_file' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/trace_events.h' line='623' column='1' id='155948e4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/trace_events.h' line='624' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='event_call' type-id='23d6768c' visibility='default' filepath='include/linux/trace_events.h' line='625' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='filter' type-id='26461068' visibility='default' filepath='include/linux/trace_events.h' line='626' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dir' type-id='27675065' visibility='default' filepath='include/linux/trace_events.h' line='627' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='tr' type-id='898c1076' visibility='default' filepath='include/linux/trace_events.h' line='628' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='system' type-id='f4f46ed0' visibility='default' filepath='include/linux/trace_events.h' line='629' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='triggers' type-id='72f469ec' visibility='default' filepath='include/linux/trace_events.h' line='630' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/trace_events.h' line='648' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='sm_ref' type-id='49178f86' visibility='default' filepath='include/linux/trace_events.h' line='649' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='tm_ref' type-id='49178f86' visibility='default' filepath='include/linux/trace_events.h' line='650' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bc51cf2c' size-in-bits='64' id='156433b6'/>
+      <function-type size-in-bits='64' id='156670bc'>
+        <parameter type-id='f621031c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='61a50456' size-in-bits='64' id='156888c8'/>
+      <class-decl name='io_uring_task' is-struct='yes' visibility='default' is-declaration-only='yes' id='156a7d89'/>
+      <function-type size-in-bits='64' id='156e19ea'>
+        <parameter type-id='c151d965'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='migrate_mode' filepath='include/linux/migrate_mode.h' line='15' column='1' id='157252dd'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='MIGRATE_ASYNC' value='0'/>
+        <enumerator name='MIGRATE_SYNC_LIGHT' value='1'/>
+        <enumerator name='MIGRATE_SYNC' value='2'/>
+        <enumerator name='MIGRATE_SYNC_NO_COPY' value='3'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='49178f86' size-in-bits='640' id='157c59dd'>
+        <subrange length='20' type-id='7ff19f0f' id='fdca39cf'/>
+      </array-type-def>
+      <pointer-type-def type-id='80b3d6aa' size-in-bits='64' id='157eca44'/>
+      <pointer-type-def type-id='504ee449' size-in-bits='64' id='1583af75'/>
+      <class-decl name='bpf_cgroup_storage' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/bpf-cgroup.h' line='104' column='1' id='15881542'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab596' visibility='default' filepath='include/linux/bpf-cgroup.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='map' type-id='b6a33eaf' visibility='default' filepath='include/linux/bpf-cgroup.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='key' type-id='d8d7111e' visibility='default' filepath='include/linux/bpf-cgroup.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='list_map' type-id='72f469ec' visibility='default' filepath='include/linux/bpf-cgroup.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='list_cg' type-id='72f469ec' visibility='default' filepath='include/linux/bpf-cgroup.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='node' type-id='2a8a6332' visibility='default' filepath='include/linux/bpf-cgroup.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/bpf-cgroup.h' line='114' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='38b33cba' size-in-bits='64' id='1588722c'/>
+      <class-decl name='clk_bulk_data' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/clk.h' line='87' column='1' id='158c8c35'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='80f4b756' visibility='default' filepath='include/linux/clk.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='clk' type-id='7d0bc0eb' visibility='default' filepath='include/linux/clk.h' line='89' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='15aa5ecd'>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='6fcaf91e'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='bpf_offloaded_map' size-in-bits='2560' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='268' column='1' id='15ac14d5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='map' type-id='9e4acc7a' visibility='default' filepath='include/linux/bpf.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='netdev' type-id='68a2d05b' visibility='default' filepath='include/linux/bpf.h' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='dev_ops' type-id='2ce97450' visibility='default' filepath='include/linux/bpf.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='dev_priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/bpf.h' line='272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='offloads' type-id='72f469ec' visibility='default' filepath='include/linux/bpf.h' line='273' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='325f6f30' size-in-bits='64' id='15adb516'/>
+      <pointer-type-def type-id='3a8363f1' size-in-bits='64' id='15b1f129'/>
+      <enum-decl name='backlight_scale' filepath='include/linux/backlight.h' line='90' column='1' id='15b3610c'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='BACKLIGHT_SCALE_UNKNOWN' value='0'/>
+        <enumerator name='BACKLIGHT_SCALE_LINEAR' value='1'/>
+        <enumerator name='BACKLIGHT_SCALE_NON_LINEAR' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='990cce78' size-in-bits='64' id='15b8a3be'/>
+      <array-type-def dimensions='1' type-id='69ab6968' size-in-bits='1280' id='15b94482'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='15bee3b2'>
+        <parameter type-id='1c936db9'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a8a63667' size-in-bits='64' id='15bfa933'/>
+      <pointer-type-def type-id='e64743d7' size-in-bits='64' id='15c573bb'/>
+      <pointer-type-def type-id='afe3b3de' size-in-bits='64' id='15c7dfa4'/>
+      <pointer-type-def type-id='e70f1c73' size-in-bits='64' id='15c9a01b'/>
+      <pointer-type-def type-id='23cb2797' size-in-bits='64' id='15cf8e87'/>
+      <pointer-type-def type-id='bed94322' size-in-bits='64' id='15d29710'/>
+      <class-decl name='ufs_hba_variant_params' size-in-bits='704' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='720' column='1' id='15d562ba'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='devfreq_profile' type-id='c9196d18' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='721' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ondemand_data' type-id='d21d90ad' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='722' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='hba_enable_delay_us' type-id='1dc6a898' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='723' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='wb_flush_threshold' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='724' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='15d70b96'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='26bebc56'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f9b47a31' size-in-bits='64' id='15dccca9'/>
+      <function-type size-in-bits='64' id='15df0404'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='36b74cb9'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='508a0a73' size-in-bits='64' id='15dfbd93'/>
+      <pointer-type-def type-id='9f2d4ea3' size-in-bits='64' id='15e229a3'/>
+      <pointer-type-def type-id='7591d8fc' size-in-bits='64' id='15f4611e'/>
+      <pointer-type-def type-id='630a7fa4' size-in-bits='64' id='15f6292e'/>
+      <function-type size-in-bits='64' id='15fce913'>
+        <parameter type-id='5e4f599b'/>
+        <parameter type-id='ce092740'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1601b1ab'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='600b2755'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='2aedd95d' size-in-bits='64' id='16052051'/>
+      <qualified-type-def type-id='edbe2ff8' const='yes' id='160ddb63'/>
+      <function-type size-in-bits='64' id='160ef579'>
+        <parameter type-id='6a54ab42'/>
+        <parameter type-id='c0ced320'/>
+        <parameter type-id='27675065'/>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d0f077d9' size-in-bits='64' id='16144ad1'/>
+      <class-decl name='mod_plt_sec' size-in-bits='96' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/module.h' line='11' column='1' id='1615ea0e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='plt_shndx' type-id='95e97e5e' visibility='default' filepath='arch/arm64/include/asm/module.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='plt_num_entries' type-id='95e97e5e' visibility='default' filepath='arch/arm64/include/asm/module.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='plt_max_entries' type-id='95e97e5e' visibility='default' filepath='arch/arm64/include/asm/module.h' line='14' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d9435f47' size-in-bits='64' id='1617c63b'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='361' column='1' id='161a11e8' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='written' type-id='b59d7dce' visibility='default' filepath='include/linux/fs.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='count' type-id='b59d7dce' visibility='default' filepath='include/linux/fs.h' line='363' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='arg' type-id='ac5ab66f' visibility='default' filepath='include/linux/fs.h' line='367' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='error' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='368' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='1621811c'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='77e79a4b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4bda18f8' size-in-bits='64' id='1625ce7a'/>
+      <pointer-type-def type-id='60263890' size-in-bits='64' id='162b4cce'/>
+      <function-type size-in-bits='64' id='162c0977'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='69c138b1' size-in-bits='64' id='162c1c01'/>
+      <enum-decl name='hdmi_spd_sdi' filepath='include/linux/hdmi.h' line='226' column='1' id='163c5ead'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HDMI_SPD_SDI_UNKNOWN' value='0'/>
+        <enumerator name='HDMI_SPD_SDI_DSTB' value='1'/>
+        <enumerator name='HDMI_SPD_SDI_DVDP' value='2'/>
+        <enumerator name='HDMI_SPD_SDI_DVHS' value='3'/>
+        <enumerator name='HDMI_SPD_SDI_HDDVR' value='4'/>
+        <enumerator name='HDMI_SPD_SDI_DVC' value='5'/>
+        <enumerator name='HDMI_SPD_SDI_DSC' value='6'/>
+        <enumerator name='HDMI_SPD_SDI_VCD' value='7'/>
+        <enumerator name='HDMI_SPD_SDI_GAME' value='8'/>
+        <enumerator name='HDMI_SPD_SDI_PC' value='9'/>
+        <enumerator name='HDMI_SPD_SDI_BD' value='10'/>
+        <enumerator name='HDMI_SPD_SDI_SACD' value='11'/>
+        <enumerator name='HDMI_SPD_SDI_HDDVD' value='12'/>
+        <enumerator name='HDMI_SPD_SDI_PMP' value='13'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='b615ca5b' size-in-bits='64' alignment-in-bits='32' id='16449c76'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='1646f19a'>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='packet_type' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='2683' column='1' id='164a08b2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='84a5c3d4' visibility='default' filepath='include/linux/netdevice.h' line='2684' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='ignore_outgoing' type-id='b50a4934' visibility='default' filepath='include/linux/netdevice.h' line='2685' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/linux/netdevice.h' line='2686' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='func' type-id='29242f3e' visibility='default' filepath='include/linux/netdevice.h' line='2687' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='list_func' type-id='af0e0afc' visibility='default' filepath='include/linux/netdevice.h' line='2691' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='id_match' type-id='ca97eb2a' visibility='default' filepath='include/linux/netdevice.h' line='2694' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='af_packet_net' type-id='a2bff676' visibility='default' filepath='include/linux/netdevice.h' line='2696' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='af_packet_priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/netdevice.h' line='2697' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/netdevice.h' line='2698' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='2700' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='2701' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='2702' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='2703' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='ethtool_link_ext_substate_link_logical_mismatch' filepath='include/uapi/linux/ethtool.h' line='629' column='1' id='164f6cd2'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK' value='1'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK' value='2'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS' value='3'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED' value='4'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED' value='5'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='164fa967'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='fe454a75'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='pstore_type_id' filepath='include/linux/pstore.h' line='28' column='1' id='164fc982'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PSTORE_TYPE_DMESG' value='0'/>
+        <enumerator name='PSTORE_TYPE_MCE' value='1'/>
+        <enumerator name='PSTORE_TYPE_CONSOLE' value='2'/>
+        <enumerator name='PSTORE_TYPE_FTRACE' value='3'/>
+        <enumerator name='PSTORE_TYPE_PPC_RTAS' value='4'/>
+        <enumerator name='PSTORE_TYPE_PPC_OF' value='5'/>
+        <enumerator name='PSTORE_TYPE_PPC_COMMON' value='6'/>
+        <enumerator name='PSTORE_TYPE_PMSG' value='7'/>
+        <enumerator name='PSTORE_TYPE_PPC_OPAL' value='8'/>
+        <enumerator name='PSTORE_TYPE_MAX' value='9'/>
+      </enum-decl>
+      <pointer-type-def type-id='8ae2fb1d' size-in-bits='64' id='165146ad'/>
+      <pointer-type-def type-id='62e0e7f7' size-in-bits='64' id='1654068f'/>
+      <pointer-type-def type-id='869f5d80' size-in-bits='64' id='1654d99a'/>
+      <pointer-type-def type-id='4dd76d14' size-in-bits='64' id='16575f26'/>
+      <class-decl name='rq_flags' size-in-bits='128' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='1551' column='1' id='16588ac8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1552' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cookie' type-id='3cb90f9b' visibility='default' filepath='kernel/sched/sched.h' line='1553' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='clock_update_flags' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='1560' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='165b46a0'>
+        <parameter type-id='141b6427'/>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='4da03818' size-in-bits='64' id='1663a26e'/>
+      <class-decl name='perf_callchain_entry' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='62' column='1' id='16650a93'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nr' type-id='d3130597' visibility='default' filepath='include/linux/perf_event.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ip' type-id='52cd3f2c' visibility='default' filepath='include/linux/perf_event.h' line='64' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='77328cce' size-in-bits='64' id='16723420'/>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='infinite' id='167619f6'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <class-decl name='compact_control' size-in-bits='1024' is-struct='yes' visibility='default' filepath='mm/internal.h' line='231' column='1' id='16773614'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='freepages' type-id='72f469ec' visibility='default' filepath='mm/internal.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='migratepages' type-id='72f469ec' visibility='default' filepath='mm/internal.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='nr_freepages' type-id='f0981eeb' visibility='default' filepath='mm/internal.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='nr_migratepages' type-id='f0981eeb' visibility='default' filepath='mm/internal.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='free_pfn' type-id='7359adad' visibility='default' filepath='mm/internal.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='migrate_pfn' type-id='7359adad' visibility='default' filepath='mm/internal.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='fast_start_pfn' type-id='7359adad' visibility='default' filepath='mm/internal.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='zone' type-id='0a0aff97' visibility='default' filepath='mm/internal.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='total_migrate_scanned' type-id='7359adad' visibility='default' filepath='mm/internal.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='total_free_scanned' type-id='7359adad' visibility='default' filepath='mm/internal.h' line='247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='fast_search_fail' type-id='8efea9e5' visibility='default' filepath='mm/internal.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='720'>
+          <var-decl name='search_order' type-id='a2185560' visibility='default' filepath='mm/internal.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='gfp_mask' type-id='96d7cfec' visibility='default' filepath='mm/internal.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='order' type-id='95e97e5e' visibility='default' filepath='mm/internal.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='migratetype' type-id='95e97e5e' visibility='default' filepath='mm/internal.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='alloc_flags' type-id='20f5f452' visibility='default' filepath='mm/internal.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='highest_zoneidx' type-id='2448a865' visibility='default' filepath='mm/internal.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='mode' type-id='157252dd' visibility='default' filepath='mm/internal.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='ignore_skip_hint' type-id='b50a4934' visibility='default' filepath='mm/internal.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='936'>
+          <var-decl name='no_set_skip_hint' type-id='b50a4934' visibility='default' filepath='mm/internal.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='944'>
+          <var-decl name='ignore_block_suitable' type-id='b50a4934' visibility='default' filepath='mm/internal.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='952'>
+          <var-decl name='direct_compaction' type-id='b50a4934' visibility='default' filepath='mm/internal.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='proactive_compaction' type-id='b50a4934' visibility='default' filepath='mm/internal.h' line='260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='968'>
+          <var-decl name='whole_zone' type-id='b50a4934' visibility='default' filepath='mm/internal.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='976'>
+          <var-decl name='contended' type-id='b50a4934' visibility='default' filepath='mm/internal.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='984'>
+          <var-decl name='rescan' type-id='b50a4934' visibility='default' filepath='mm/internal.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='alloc_contig' type-id='b50a4934' visibility='default' filepath='mm/internal.h' line='264' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='59a625dc' size-in-bits='64' id='168dc242'/>
+      <function-type size-in-bits='64' id='1697786f'>
+        <parameter type-id='91d0de51' name='_vq'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='1d86628a' size-in-bits='64' id='16a27d24'/>
+      <pointer-type-def type-id='2aa44dc9' size-in-bits='64' id='16ab0351'/>
+      <class-decl name='keyring_index_key' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/key.h' line='108' column='1' id='16ab8749'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hash' type-id='7359adad' visibility='default' filepath='include/linux/key.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab638' visibility='default' filepath='include/linux/key.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='type' type-id='d0a699d1' visibility='default' filepath='include/linux/key.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='domain_tag' type-id='fce14c5f' visibility='default' filepath='include/linux/key.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='description' type-id='80f4b756' visibility='default' filepath='include/linux/key.h' line='125' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='16b2c11e'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='413f0ce4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='16b69c18'>
+        <parameter type-id='0b8718c0'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <qualified-type-def type-id='6a8fbda3' const='yes' id='16c375b8'/>
+      <class-decl name='tcf_block' size-in-bits='10560' is-struct='yes' visibility='default' filepath='include/net/sch_generic.h' line='456' column='1' id='16c50f80'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/net/sch_generic.h' line='460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='chain_list' type-id='72f469ec' visibility='default' filepath='include/net/sch_generic.h' line='461' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='index' type-id='19c2251e' visibility='default' filepath='include/net/sch_generic.h' line='462' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='classid' type-id='19c2251e' visibility='default' filepath='include/net/sch_generic.h' line='463' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/net/sch_generic.h' line='464' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='net' type-id='a2bff676' visibility='default' filepath='include/net/sch_generic.h' line='465' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='q' type-id='ee406209' visibility='default' filepath='include/net/sch_generic.h' line='466' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='cb_lock' type-id='f19fdb93' visibility='default' filepath='include/net/sch_generic.h' line='467' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='flow_block' type-id='bc545b43' visibility='default' filepath='include/net/sch_generic.h' line='468' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='owner_list' type-id='72f469ec' visibility='default' filepath='include/net/sch_generic.h' line='469' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='keep_dst' type-id='b50a4934' visibility='default' filepath='include/net/sch_generic.h' line='470' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='offloadcnt' type-id='49178f86' visibility='default' filepath='include/net/sch_generic.h' line='471' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='nooffloaddevcnt' type-id='f0981eeb' visibility='default' filepath='include/net/sch_generic.h' line='472' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1632'>
+          <var-decl name='lockeddevcnt' type-id='f0981eeb' visibility='default' filepath='include/net/sch_generic.h' line='473' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='chain0' type-id='e7f4402a' visibility='default' filepath='include/net/sch_generic.h' line='477' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/sch_generic.h' line='478' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='proto_destroy_ht' type-id='64f4baeb' visibility='default' filepath='include/net/sch_generic.h' line='479' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10176'>
+          <var-decl name='proto_destroy_lock' type-id='925167dc' visibility='default' filepath='include/net/sch_generic.h' line='480' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bccdf330' size-in-bits='64' id='16c53416'/>
+      <function-type size-in-bits='64' id='16c9c8d4'>
+        <parameter type-id='1fc888a9'/>
+        <parameter type-id='f8dc9def'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='00d2c7e1' size-in-bits='64' id='16d08491'/>
+      <pointer-type-def type-id='9666e837' size-in-bits='64' id='16d5931b'/>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='256' id='16dc656a'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <pointer-type-def type-id='68227056' size-in-bits='64' id='16e253c0'/>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='288' id='16e6f2c6'>
+        <subrange length='36' type-id='7ff19f0f' id='ae666bde'/>
+      </array-type-def>
+      <class-decl name='ieee80211_ht_cap' size-in-bits='208' is-struct='yes' visibility='default' filepath='include/linux/ieee80211.h' line='1565' column='1' id='16e7829f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cap_info' type-id='23119536' visibility='default' filepath='include/linux/ieee80211.h' line='1566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='ampdu_params_info' type-id='f9b06939' visibility='default' filepath='include/linux/ieee80211.h' line='1567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='mcs' type-id='835fe4c6' visibility='default' filepath='include/linux/ieee80211.h' line='1570' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='extended_ht_cap_info' type-id='23119536' visibility='default' filepath='include/linux/ieee80211.h' line='1572' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='168'>
+          <var-decl name='tx_BF_cap_info' type-id='2f162548' visibility='default' filepath='include/linux/ieee80211.h' line='1573' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='antenna_selection_info' type-id='f9b06939' visibility='default' filepath='include/linux/ieee80211.h' line='1574' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='16eae85b'>
+        <parameter type-id='e5411c2c'/>
+        <parameter type-id='5b4bef1f'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <function-type size-in-bits='64' id='16ebfbba'>
+        <parameter type-id='1c475548'/>
+        <parameter type-id='7f6ae768'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='10a51b66' size-in-bits='64' id='16f45b2c'/>
+      <class-decl name='nvdimm_fw_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/libnvdimm.h' line='240' column='1' id='16f83885'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='activate_state' type-id='87e32b50' visibility='default' filepath='include/linux/libnvdimm.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='activate_result' type-id='5a41d7ba' visibility='default' filepath='include/linux/libnvdimm.h' line='242' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='arm' type-id='c1546a5e' visibility='default' filepath='include/linux/libnvdimm.h' line='243' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='532f030e' size-in-bits='64' id='1701f1ac'/>
+      <pointer-type-def type-id='e636858f' size-in-bits='64' id='17035a6b'/>
+      <class-decl name='sched_domain' size-in-bits='2432' is-struct='yes' visibility='default' filepath='include/linux/sched/topology.h' line='83' column='1' id='1706cf19'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='parent' type-id='e9d32201' visibility='default' filepath='include/linux/sched/topology.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='child' type-id='e9d32201' visibility='default' filepath='include/linux/sched/topology.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='groups' type-id='f3dcd492' visibility='default' filepath='include/linux/sched/topology.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='min_interval' type-id='7359adad' visibility='default' filepath='include/linux/sched/topology.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='max_interval' type-id='7359adad' visibility='default' filepath='include/linux/sched/topology.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='busy_factor' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/topology.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='imbalance_pct' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/topology.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='cache_nice_tries' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/topology.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='nohz_idle' type-id='95e97e5e' visibility='default' filepath='include/linux/sched/topology.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/linux/sched/topology.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='level' type-id='95e97e5e' visibility='default' filepath='include/linux/sched/topology.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='last_balance' type-id='7359adad' visibility='default' filepath='include/linux/sched/topology.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='balance_interval' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/topology.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='nr_balance_failed' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/topology.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='max_newidle_lb_cost' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/topology.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='next_decay_max_lb_cost' type-id='7359adad' visibility='default' filepath='include/linux/sched/topology.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='avg_scan_cost' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/topology.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='lb_count' type-id='0955670c' visibility='default' filepath='include/linux/sched/topology.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='lb_failed' type-id='0955670c' visibility='default' filepath='include/linux/sched/topology.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='lb_balanced' type-id='0955670c' visibility='default' filepath='include/linux/sched/topology.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='lb_imbalance' type-id='0955670c' visibility='default' filepath='include/linux/sched/topology.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='lb_gained' type-id='0955670c' visibility='default' filepath='include/linux/sched/topology.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='lb_hot_gained' type-id='0955670c' visibility='default' filepath='include/linux/sched/topology.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='lb_nobusyg' type-id='0955670c' visibility='default' filepath='include/linux/sched/topology.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1504'>
+          <var-decl name='lb_nobusyq' type-id='0955670c' visibility='default' filepath='include/linux/sched/topology.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='alb_count' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/topology.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1632'>
+          <var-decl name='alb_failed' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/topology.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='alb_pushed' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/topology.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1696'>
+          <var-decl name='sbe_count' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/topology.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='sbe_balanced' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/topology.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1760'>
+          <var-decl name='sbe_pushed' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/topology.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='sbf_count' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/topology.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1824'>
+          <var-decl name='sbf_balanced' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/topology.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='sbf_pushed' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/topology.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1888'>
+          <var-decl name='ttwu_wake_remote' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/topology.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='ttwu_move_affine' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/topology.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1952'>
+          <var-decl name='ttwu_move_balance' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/topology.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/sched/topology.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='' type-id='ac5ab68c' visibility='default' filepath='include/linux/sched/topology.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='shared' type-id='774b23cf' visibility='default' filepath='include/linux/sched/topology.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='span_weight' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/topology.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/topology.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/topology.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='span' type-id='c99b5ecd' visibility='default' filepath='include/linux/sched/topology.h' line='161' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='d9ceb659' const='yes' id='170bab5e'/>
+      <typedef-decl name='probe_opcode_t' type-id='19c2251e' filepath='arch/arm64/include/asm/probes.h' line='12' column='1' id='170c8692'/>
+      <pointer-type-def type-id='e74bcc7b' size-in-bits='64' id='170cc62f'/>
+      <pointer-type-def type-id='4aa2ba58' size-in-bits='64' id='170fcd6a'/>
+      <class-decl name='gen_pool' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/genalloc.h' line='58' column='1' id='171b0f6c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/genalloc.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='chunks' type-id='72f469ec' visibility='default' filepath='include/linux/genalloc.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='min_alloc_order' type-id='95e97e5e' visibility='default' filepath='include/linux/genalloc.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='algo' type-id='00278b91' visibility='default' filepath='include/linux/genalloc.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/genalloc.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/genalloc.h' line='66' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='probe_type' filepath='include/linux/device/driver.h' line='44' column='1' id='171c98b7'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PROBE_DEFAULT_STRATEGY' value='0'/>
+        <enumerator name='PROBE_PREFER_ASYNCHRONOUS' value='1'/>
+        <enumerator name='PROBE_FORCE_SYNCHRONOUS' value='2'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='172997aa'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='80f4b756'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='input_keymap_entry' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/input.h' line='114' column='1' id='1731e728'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/input.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='len' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/input.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='index' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='keycode' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/input.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='scancode' type-id='7e67d89d' visibility='default' filepath='include/uapi/linux/input.h' line='120' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='blkcnt_t' type-id='91ce1af9' filepath='include/linux/types.h' line='126' column='1' id='17345459'/>
+      <pointer-type-def type-id='b911101f' size-in-bits='64' id='1734c68b'/>
+      <function-type size-in-bits='64' id='173ca462'>
+        <parameter type-id='2661e0d9'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='173cc5a0'>
+        <parameter type-id='85196e3f'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <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='1740bab9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='f0981eeb' 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='388a7f2a' 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='d1c62993' 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='b7f9d8e6' visibility='default' filepath='include/linux/moduleparam.h' line='55' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d34384db' size-in-bits='64' id='17451907'/>
+      <function-type size-in-bits='64' id='174aa761'>
+        <parameter type-id='69a866d8'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <enum-decl name='hk_flags' filepath='include/linux/sched/isolation.h' line='8' column='1' id='174b493d'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HK_FLAG_TIMER' value='1'/>
+        <enumerator name='HK_FLAG_RCU' value='2'/>
+        <enumerator name='HK_FLAG_MISC' value='4'/>
+        <enumerator name='HK_FLAG_SCHED' value='8'/>
+        <enumerator name='HK_FLAG_TICK' value='16'/>
+        <enumerator name='HK_FLAG_DOMAIN' value='32'/>
+        <enumerator name='HK_FLAG_WQ' value='64'/>
+        <enumerator name='HK_FLAG_MANAGED_IRQ' value='128'/>
+        <enumerator name='HK_FLAG_KTHREAD' value='256'/>
+      </enum-decl>
+      <pointer-type-def type-id='5f0ccb86' size-in-bits='64' id='174bf37c'/>
+      <class-decl name='cfg80211_wowlan_tcp' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='3453' column='1' id='1752769a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sock' type-id='13103032' visibility='default' filepath='include/net/cfg80211.h' line='3454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='src' type-id='78a133c2' visibility='default' filepath='include/net/cfg80211.h' line='3455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='dst' type-id='78a133c2' visibility='default' filepath='include/net/cfg80211.h' line='3455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='src_port' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='3456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='dst_port' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='3456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='dst_mac' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='3457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='payload_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='payload' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3459' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='payload_seq' type-id='d5a1b375' visibility='default' filepath='include/net/cfg80211.h' line='3460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='data_interval' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='3461' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='wake_len' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='3462' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='wake_data' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3463' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='wake_mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3463' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='tokens_size' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='3464' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='payload_tok' type-id='2868c21b' visibility='default' filepath='include/net/cfg80211.h' line='3466' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='010b0459' size-in-bits='64' id='17580109'/>
+      <class-decl name='xdp_buff' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/xdp.h' line='69' column='1' id='175944cd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/net/xdp.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data_end' type-id='eaa32e2f' visibility='default' filepath='include/net/xdp.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data_meta' type-id='eaa32e2f' visibility='default' filepath='include/net/xdp.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='data_hard_start' type-id='eaa32e2f' visibility='default' filepath='include/net/xdp.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rxq' type-id='8e35a44c' visibility='default' filepath='include/net/xdp.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='txq' type-id='9ac467e6' visibility='default' filepath='include/net/xdp.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='frame_sz' type-id='19c2251e' visibility='default' filepath='include/net/xdp.h' line='76' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='adff6731' size-in-bits='64' id='17642359'/>
+      <qualified-type-def type-id='a240f41d' const='yes' id='17644e8c'/>
+      <pointer-type-def type-id='78719a99' size-in-bits='64' id='1767a135'/>
+      <pointer-type-def type-id='0f7f118a' size-in-bits='64' id='1768bf8c'/>
+      <pointer-type-def type-id='891a6859' size-in-bits='64' id='176d60a1'/>
+      <class-decl name='bpf_map_dev_ops' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='256' column='1' id='1779ab9d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='map_get_next_key' type-id='ef2b6bf5' visibility='default' filepath='include/linux/bpf.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='map_lookup_elem' type-id='ef2b6bf5' visibility='default' filepath='include/linux/bpf.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='map_update_elem' type-id='bedcc9eb' visibility='default' filepath='include/linux/bpf.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='map_delete_elem' type-id='e24c55c9' visibility='default' filepath='include/linux/bpf.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/bpf.h' line='265' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ecd721d1' size-in-bits='64' id='1779e61d'/>
+      <pointer-type-def type-id='aaa166ff' size-in-bits='64' id='177a4437'/>
+      <function-type size-in-bits='64' id='1785a6e2'>
+        <parameter type-id='0e3f80d9'/>
+        <parameter type-id='78c01427'/>
+        <parameter type-id='78c01427'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <enum-decl name='rc_proto' filepath='include/uapi/linux/lirc.h' line='200' column='1' id='17862576'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='RC_PROTO_UNKNOWN' value='0'/>
+        <enumerator name='RC_PROTO_OTHER' value='1'/>
+        <enumerator name='RC_PROTO_RC5' value='2'/>
+        <enumerator name='RC_PROTO_RC5X_20' value='3'/>
+        <enumerator name='RC_PROTO_RC5_SZ' value='4'/>
+        <enumerator name='RC_PROTO_JVC' value='5'/>
+        <enumerator name='RC_PROTO_SONY12' value='6'/>
+        <enumerator name='RC_PROTO_SONY15' value='7'/>
+        <enumerator name='RC_PROTO_SONY20' value='8'/>
+        <enumerator name='RC_PROTO_NEC' value='9'/>
+        <enumerator name='RC_PROTO_NECX' value='10'/>
+        <enumerator name='RC_PROTO_NEC32' value='11'/>
+        <enumerator name='RC_PROTO_SANYO' value='12'/>
+        <enumerator name='RC_PROTO_MCIR2_KBD' value='13'/>
+        <enumerator name='RC_PROTO_MCIR2_MSE' value='14'/>
+        <enumerator name='RC_PROTO_RC6_0' value='15'/>
+        <enumerator name='RC_PROTO_RC6_6A_20' value='16'/>
+        <enumerator name='RC_PROTO_RC6_6A_24' value='17'/>
+        <enumerator name='RC_PROTO_RC6_6A_32' value='18'/>
+        <enumerator name='RC_PROTO_RC6_MCE' value='19'/>
+        <enumerator name='RC_PROTO_SHARP' value='20'/>
+        <enumerator name='RC_PROTO_XMP' value='21'/>
+        <enumerator name='RC_PROTO_CEC' value='22'/>
+        <enumerator name='RC_PROTO_IMON' value='23'/>
+        <enumerator name='RC_PROTO_RCMM12' value='24'/>
+        <enumerator name='RC_PROTO_RCMM24' value='25'/>
+        <enumerator name='RC_PROTO_RCMM32' value='26'/>
+        <enumerator name='RC_PROTO_XBOX_DVD' value='27'/>
+        <enumerator name='RC_PROTO_MAX' value='27'/>
+      </enum-decl>
+      <qualified-type-def type-id='435002d4' const='yes' id='1788182f'/>
+      <pointer-type-def type-id='08694484' size-in-bits='64' id='17898fce'/>
+      <function-type size-in-bits='64' id='17982ea7'>
+        <parameter type-id='00c7b870'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <class-decl name='tcf_proto' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/net/sch_generic.h' line='402' column='1' id='17992e3b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='6dca061b' visibility='default' filepath='include/net/sch_generic.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='root' type-id='eaa32e2f' visibility='default' filepath='include/net/sch_generic.h' line='405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='classify' type-id='624375a3' visibility='default' filepath='include/net/sch_generic.h' line='408' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='protocol' type-id='84a5c3d4' visibility='default' filepath='include/net/sch_generic.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='prio' type-id='19c2251e' visibility='default' filepath='include/net/sch_generic.h' line='414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/net/sch_generic.h' line='415' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ops' type-id='e12279e7' visibility='default' filepath='include/net/sch_generic.h' line='416' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='chain' type-id='45305972' visibility='default' filepath='include/net/sch_generic.h' line='417' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/net/sch_generic.h' line='421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='deleting' type-id='b50a4934' visibility='default' filepath='include/net/sch_generic.h' line='422' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/net/sch_generic.h' line='423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/sch_generic.h' line='424' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='destroy_ht_node' type-id='03a4a074' visibility='default' filepath='include/net/sch_generic.h' line='425' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5a826ce7' size-in-bits='64' id='179fe983'/>
+      <pointer-type-def type-id='bc78c060' size-in-bits='64' id='17a05af6'/>
+      <function-type size-in-bits='64' id='17a0b6f4'>
+        <parameter type-id='2661e0d9'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='typec_altmode' size-in-bits='7616' is-struct='yes' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='24' column='1' id='17a13961'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='svid' type-id='1dc6a898' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7328'>
+          <var-decl name='mode' type-id='95e97e5e' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='vdo' type-id='19c2251e' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7392'>
+          <var-decl name='active' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='desc' type-id='26a90f95' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='ops' type-id='536df0d1' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='33' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='32efe300' size-in-bits='64' id='17a94daa'/>
+      <pointer-type-def type-id='ee10f079' size-in-bits='64' id='17aa52a9'/>
+      <function-type size-in-bits='64' id='17ae78d2'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='e3ba02e6'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='58b67424' size-in-bits='64' id='17b126a2'/>
+      <pointer-type-def type-id='beb5fff3' size-in-bits='64' id='17b1add7'/>
+      <function-type size-in-bits='64' id='17b31231'>
+        <parameter type-id='e1a56841'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='cfa1a37d' size-in-bits='64' id='17b93571'/>
+      <class-decl name='nfs_lock_info' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/nfs_fs_i.h' line='10' column='1' id='17bacae5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='state' type-id='19c2251e' visibility='default' filepath='include/linux/nfs_fs_i.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='owner' type-id='982f8df3' visibility='default' filepath='include/linux/nfs_fs_i.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/nfs_fs_i.h' line='13' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='d70a473a' const='yes' id='17c0f561'/>
+      <pointer-type-def type-id='47b4421d' size-in-bits='64' id='17c43c95'/>
+      <pointer-type-def type-id='609e4600' size-in-bits='64' id='17c9b422'/>
+      <pointer-type-def type-id='20400679' size-in-bits='64' id='17c9f4a9'/>
+      <pointer-type-def type-id='0fa325e9' size-in-bits='64' id='17d22855'/>
+      <function-type size-in-bits='64' id='17d4a823'>
+        <parameter type-id='2661e0d9'/>
+        <parameter type-id='002ac4a6'/>
+        <parameter type-id='8efea9e5'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='29599587' size-in-bits='64' id='17d72e03'/>
+      <function-type size-in-bits='64' id='17dad7c5'>
+        <parameter type-id='ecb0ce18'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='eacd353c' size-in-bits='64' id='17e4a02a'/>
+      <class-decl name='ieee80211_eht_mcs_nss_supp_20mhz_only' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/ieee80211.h' line='1957' column='1' id='17ee5cc6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rx_tx_mcs7_max_nss' type-id='f9b06939' visibility='default' filepath='include/linux/ieee80211.h' line='1958' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='rx_tx_mcs9_max_nss' type-id='f9b06939' visibility='default' filepath='include/linux/ieee80211.h' line='1959' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='rx_tx_mcs11_max_nss' type-id='f9b06939' visibility='default' filepath='include/linux/ieee80211.h' line='1960' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='rx_tx_mcs13_max_nss' type-id='f9b06939' visibility='default' filepath='include/linux/ieee80211.h' line='1961' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='17f2d2f2'>
+        <parameter type-id='8912440a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='17f9ad66'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='9e99ecc1'/>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='3ff5601b'/>
+        <parameter type-id='3ff5601b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='iomap_page_ops' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/iomap.h' line='130' column='1' id='17ffbd3e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='page_prepare' type-id='094635d3' visibility='default' filepath='include/linux/iomap.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='page_done' type-id='c0d70d7f' visibility='default' filepath='include/linux/iomap.h' line='132' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='iio_event_direction' filepath='include/uapi/linux/iio/types.h' line='109' column='1' id='180bfe06'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='IIO_EV_DIR_EITHER' value='0'/>
+        <enumerator name='IIO_EV_DIR_RISING' value='1'/>
+        <enumerator name='IIO_EV_DIR_FALLING' value='2'/>
+        <enumerator name='IIO_EV_DIR_NONE' value='3'/>
+      </enum-decl>
+      <class-decl name='devlink_port_pci_sf_attrs' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='105' column='1' id='180dc228'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='controller' type-id='19c2251e' visibility='default' filepath='include/net/devlink.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='sf' type-id='19c2251e' visibility='default' filepath='include/net/devlink.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pf' type-id='1dc6a898' visibility='default' filepath='include/net/devlink.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='external' type-id='f9b06939' visibility='default' filepath='include/net/devlink.h' line='109' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='snd_kcontrol_info_t' type-id='fa75c86d' filepath='include/sound/control.h' line='17' column='1' id='180e16b0'/>
+      <class-decl name='utp_cmd_rsp' size-in-bits='320' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='484' column='1' id='18119fa5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='residual_transfer_count' type-id='78a133c2' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='485' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='reserved' type-id='30180d4b' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='sense_data_len' type-id='84a5c3d4' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='sense_data' type-id='09617d27' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='488' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='728100fd' size-in-bits='64' id='18145275'/>
+      <function-type size-in-bits='64' id='18188cce'>
+        <parameter type-id='063da268'/>
+        <parameter type-id='47ed147a'/>
+        <parameter type-id='26a90f95'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='2baffd9a' size-in-bits='64' id='1819dec8'/>
+      <pointer-type-def type-id='a24ec55b' size-in-bits='64' id='181cff2f'/>
+      <pointer-type-def type-id='9f77c6d4' size-in-bits='64' id='182096ce'/>
+      <function-type size-in-bits='64' id='182265d5'>
+        <parameter type-id='2661e0d9'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='f9b06939'/>
+      </function-type>
+      <pointer-type-def type-id='be643611' size-in-bits='64' id='1825e6b5'/>
+      <pointer-type-def type-id='b303e1cf' size-in-bits='64' id='1826a86b'/>
+      <pointer-type-def type-id='2fedb035' size-in-bits='64' id='18277869'/>
+      <pointer-type-def type-id='a167c9f6' size-in-bits='64' id='182be7cc'/>
+      <function-type size-in-bits='64' id='182ef894'>
+        <parameter type-id='c5b94c75'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='18359f44'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='3c330066'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9de900c3' size-in-bits='64' id='183d114e'/>
+      <class-decl name='input_handle' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/input.h' line='353' column='1' id='18448baa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='private' type-id='eaa32e2f' visibility='default' filepath='include/linux/input.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='open' type-id='95e97e5e' visibility='default' filepath='include/linux/input.h' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/input.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dev' type-id='74b427eb' visibility='default' filepath='include/linux/input.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='handler' type-id='4938abae' visibility='default' filepath='include/linux/input.h' line='361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='d_node' type-id='72f469ec' visibility='default' filepath='include/linux/input.h' line='363' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='h_node' type-id='72f469ec' visibility='default' filepath='include/linux/input.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/input.h' line='366' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='flowi_common' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/flow.h' line='29' column='1' id='184ee240'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flowic_oif' type-id='95e97e5e' visibility='default' filepath='include/net/flow.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='flowic_iif' type-id='95e97e5e' visibility='default' filepath='include/net/flow.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flowic_mark' type-id='3f1a6b60' visibility='default' filepath='include/net/flow.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flowic_tos' type-id='8f048e17' visibility='default' filepath='include/net/flow.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='flowic_scope' type-id='8f048e17' visibility='default' filepath='include/net/flow.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='flowic_proto' type-id='8f048e17' visibility='default' filepath='include/net/flow.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='flowic_flags' type-id='8f048e17' visibility='default' filepath='include/net/flow.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flowic_secid' type-id='3f1a6b60' visibility='default' filepath='include/net/flow.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='flowic_uid' type-id='d80b72e6' visibility='default' filepath='include/net/flow.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='flowic_tun_key' type-id='46ff7b8b' visibility='default' filepath='include/net/flow.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='flowic_multipath_hash' type-id='3f1a6b60' visibility='default' filepath='include/net/flow.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='01863b98' size-in-bits='64' id='184ff936'/>
+      <class-decl name='hrtimer_clock_base' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/hrtimer.h' line='162' column='1' id='1851ab9f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cpu_base' type-id='75e9503b' visibility='default' filepath='include/linux/hrtimer.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/linux/hrtimer.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='clockid' type-id='a1c3b834' visibility='default' filepath='include/linux/hrtimer.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='seq' type-id='81ffe2ac' visibility='default' filepath='include/linux/hrtimer.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='running' type-id='08c8d0fa' visibility='default' filepath='include/linux/hrtimer.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='active' type-id='ff3c7f20' visibility='default' filepath='include/linux/hrtimer.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='get_time' type-id='7a6c9108' visibility='default' filepath='include/linux/hrtimer.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='offset' type-id='fbc017ef' visibility='default' filepath='include/linux/hrtimer.h' line='170' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='20f0d8ff' size-in-bits='64' id='1852fc77'/>
+      <pointer-type-def type-id='54c5fdf4' size-in-bits='64' id='1854489e'/>
+      <pointer-type-def type-id='019f1a7a' size-in-bits='64' id='185a7728'/>
+      <pointer-type-def type-id='3b7ef195' size-in-bits='64' id='185ccd91'/>
+      <class-decl name='vhost_log' size-in-bits='128' is-struct='yes' visibility='default' filepath='drivers/vhost/vhost.h' line='51' column='1' id='185e274e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='91ce1af9' visibility='default' filepath='drivers/vhost/vhost.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='len' type-id='91ce1af9' visibility='default' filepath='drivers/vhost/vhost.h' line='53' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='18620c48'>
+        <parameter type-id='3059cd0b'/>
+        <parameter type-id='af5a73b0'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='186b315c'>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='363a995e'/>
+        <parameter type-id='4f22192a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='19c2251e' size-in-bits='64' id='1872161b'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='32406f0a' size-in-bits='64' id='187ae308'/>
+      <pointer-type-def type-id='22b04425' size-in-bits='64' id='187c2c79'/>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='8192' id='187c43b2'>
+        <subrange length='128' type-id='7ff19f0f' id='1eb1687a'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='187fa8c7'>
+        <parameter type-id='6dca061b'/>
+        <parameter type-id='4c98e95d'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='41f25325' size-in-bits='64' id='18811e61'/>
+      <class-decl name='ifacaddr6' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/net/if_inet6.h' line='146' column='1' id='1883cd3d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='aca_addr' type-id='f6ed712a' visibility='default' filepath='include/net/if_inet6.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='aca_rt' type-id='fe454a75' visibility='default' filepath='include/net/if_inet6.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='aca_next' type-id='034d7ded' visibility='default' filepath='include/net/if_inet6.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='aca_addr_lst' type-id='03a4a074' visibility='default' filepath='include/net/if_inet6.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='aca_users' type-id='95e97e5e' visibility='default' filepath='include/net/if_inet6.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='aca_refcnt' type-id='64615833' visibility='default' filepath='include/net/if_inet6.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='aca_cstamp' type-id='7359adad' visibility='default' filepath='include/net/if_inet6.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='aca_tstamp' type-id='7359adad' visibility='default' filepath='include/net/if_inet6.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/if_inet6.h' line='155' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='60588bb1' size-in-bits='64' id='18881289'/>
+      <pointer-type-def type-id='d1433343' size-in-bits='64' id='1888d447'/>
+      <pointer-type-def type-id='6081969c' size-in-bits='64' id='18901036'/>
+      <function-type size-in-bits='64' id='189336ea'>
+        <parameter type-id='bf4bdb64'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='2522883d'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='3eb7c31c'/>
+        <parameter type-id='78c01427'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='drm_debug_category' filepath='include/drm/drm_print.h' line='277' column='1' id='189697ba'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DRM_UT_CORE' value='1'/>
+        <enumerator name='DRM_UT_DRIVER' value='2'/>
+        <enumerator name='DRM_UT_KMS' value='4'/>
+        <enumerator name='DRM_UT_PRIME' value='8'/>
+        <enumerator name='DRM_UT_ATOMIC' value='16'/>
+        <enumerator name='DRM_UT_VBL' value='32'/>
+        <enumerator name='DRM_UT_STATE' value='64'/>
+        <enumerator name='DRM_UT_LEASE' value='128'/>
+        <enumerator name='DRM_UT_DP' value='256'/>
+        <enumerator name='DRM_UT_DRMRES' value='512'/>
+      </enum-decl>
+      <pointer-type-def type-id='378c144b' size-in-bits='64' id='189b832f'/>
+      <pointer-type-def type-id='11d6bd91' size-in-bits='64' id='18a1ba64'/>
+      <function-type size-in-bits='64' id='18ab9185'>
+        <parameter type-id='97aff453'/>
+        <parameter type-id='80f4b756'/>
+        <return type-id='97aff453'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='2bf16f59' size-in-bits='1024' id='18b1b6ec'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='18c89148'>
+        <parameter type-id='28271da3'/>
+        <parameter type-id='a47516e5'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='b60126bf' size-in-bits='64' id='18cfbc8f'/>
+      <pointer-type-def type-id='31975058' size-in-bits='64' id='18d7129a'/>
+      <pointer-type-def type-id='c2e5ce3f' size-in-bits='64' id='18d76f87'/>
+      <function-type size-in-bits='64' id='18da11bd'>
+        <parameter type-id='f9b06939'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='18e34d1d'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='f60348b3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='765a8acb' size-in-bits='64' id='18e3d2c7'/>
+      <class-decl name='fib_lookup_arg' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/fib_rules.h' line='49' column='1' id='18f5da66'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lookup_ptr' type-id='eaa32e2f' visibility='default' filepath='include/net/fib_rules.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='lookup_data' type-id='eaa32e2f' visibility='default' filepath='include/net/fib_rules.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='result' type-id='eaa32e2f' visibility='default' filepath='include/net/fib_rules.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rule' type-id='87447c2d' visibility='default' filepath='include/net/fib_rules.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='table' type-id='19c2251e' visibility='default' filepath='include/net/fib_rules.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/net/fib_rules.h' line='55' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='18f5dff0'>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='7924d17e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='mem_cgroup_id' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/memcontrol.h' line='62' column='1' id='18f7b101'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/memcontrol.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ref' type-id='64615833' visibility='default' filepath='include/linux/memcontrol.h' line='64' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='18fcefa9'>
+        <parameter type-id='42c8f564'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='3bb4887b' size-in-bits='64' id='18ff560f'/>
+      <class-decl name='ufs_dev_cmd' size-in-bits='960' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='250' column='1' id='19098804'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='e2ef9cb5' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='complete' type-id='389faaf7' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='query' type-id='913c3f48' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='254' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d20525ea' size-in-bits='64' id='190eee1c'/>
+      <qualified-type-def type-id='f9b06939' const='yes' id='19272f09'/>
+      <class-decl name='ieee80211_he_6ghz_capa' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/linux/ieee80211.h' line='3946' column='1' id='192864a5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='capa' type-id='23119536' visibility='default' filepath='include/linux/ieee80211.h' line='3948' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='192c003a'>
+        <parameter type-id='63a08bf7'/>
+        <parameter type-id='1a494567'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1945ad2d'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='11f4a000'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='194ac023'>
+        <parameter type-id='abd62a96'/>
+        <parameter type-id='2ae08426'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='file_lock_operations' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1083' column='1' id='1958bd2a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fl_copy_lock' type-id='7b9768f0' visibility='default' filepath='include/linux/fs.h' line='1084' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fl_release_private' type-id='c9e2bc02' visibility='default' filepath='include/linux/fs.h' line='1085' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1087' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1088' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='cgroup_taskset' size-in-bits='512' is-struct='yes' visibility='default' filepath='kernel/cgroup/cgroup-internal.h' line='108' column='1' id='19596889'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='src_csets' type-id='72f469ec' visibility='default' filepath='kernel/cgroup/cgroup-internal.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dst_csets' type-id='72f469ec' visibility='default' filepath='kernel/cgroup/cgroup-internal.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='nr_tasks' type-id='95e97e5e' visibility='default' filepath='kernel/cgroup/cgroup-internal.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='ssid' type-id='95e97e5e' visibility='default' filepath='kernel/cgroup/cgroup-internal.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='csets' type-id='e84b031a' visibility='default' filepath='kernel/cgroup/cgroup-internal.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='cur_cset' type-id='85d57723' visibility='default' filepath='kernel/cgroup/cgroup-internal.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='cur_task' type-id='f23e2572' visibility='default' filepath='kernel/cgroup/cgroup-internal.h' line='132' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tcf_t' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/linux/pkt_cls.h' line='164' column='1' id='195c8601'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='install' type-id='d3130597' visibility='default' filepath='include/uapi/linux/pkt_cls.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='lastuse' type-id='d3130597' visibility='default' filepath='include/uapi/linux/pkt_cls.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='expires' type-id='d3130597' visibility='default' filepath='include/uapi/linux/pkt_cls.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='firstuse' type-id='d3130597' visibility='default' filepath='include/uapi/linux/pkt_cls.h' line='168' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='195ce0ad'>
+        <parameter type-id='69a866d8'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='trace_event_functions' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/trace_events.h' line='128' column='1' id='195ea87f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='trace' type-id='8e7f627c' visibility='default' filepath='include/linux/trace_events.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='raw' type-id='8e7f627c' visibility='default' filepath='include/linux/trace_events.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hex' type-id='8e7f627c' visibility='default' filepath='include/linux/trace_events.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='binary' type-id='8e7f627c' visibility='default' filepath='include/linux/trace_events.h' line='132' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='1966792a'>
+        <parameter type-id='f66fa7f4'/>
+        <parameter type-id='f9409001'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7a78fb67' size-in-bits='64' id='19739a37'/>
+      <pointer-type-def type-id='3d709624' size-in-bits='64' id='1976ccf6'/>
+      <class-decl name='vm_operations_struct' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/linux/mm.h' line='599' column='1' id='19795245'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='open' type-id='170cc62f' visibility='default' filepath='include/linux/mm.h' line='600' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='close' type-id='170cc62f' visibility='default' filepath='include/linux/mm.h' line='601' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='may_split' type-id='6910c028' visibility='default' filepath='include/linux/mm.h' line='603' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mremap' type-id='6e731d78' visibility='default' filepath='include/linux/mm.h' line='604' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mprotect' type-id='59db10c8' visibility='default' filepath='include/linux/mm.h' line='610' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='fault' type-id='bb28da1c' visibility='default' filepath='include/linux/mm.h' line='612' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='huge_fault' type-id='5e15576d' visibility='default' filepath='include/linux/mm.h' line='613' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='map_pages' type-id='d04132fc' visibility='default' filepath='include/linux/mm.h' line='615' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='pagesize' type-id='1a17e40d' visibility='default' filepath='include/linux/mm.h' line='617' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='page_mkwrite' type-id='bb28da1c' visibility='default' filepath='include/linux/mm.h' line='621' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='pfn_mkwrite' type-id='bb28da1c' visibility='default' filepath='include/linux/mm.h' line='624' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='access' type-id='6850e780' visibility='default' filepath='include/linux/mm.h' line='630' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='name' type-id='e803acd0' visibility='default' filepath='include/linux/mm.h' line='636' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='find_special_page' type-id='d9e60bb2' visibility='default' filepath='include/linux/mm.h' line='666' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='speculative' type-id='b50a4934' visibility='default' filepath='include/linux/mm.h' line='674' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/mm.h' line='676' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/mm.h' line='677' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/mm.h' line='678' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/mm.h' line='679' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0d6f83ff' size-in-bits='64' id='1979c577'/>
+      <class-decl name='vsock_transport_send_notify_data' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/af_vsock.h' line='89' column='1' id='19810f43'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='data1' type-id='91ce1af9' visibility='default' filepath='include/net/af_vsock.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data2' type-id='91ce1af9' visibility='default' filepath='include/net/af_vsock.h' line='91' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_cdc_network_terminal_desc' size-in-bits='56' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='123' column='1' id='19834fe0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bDescriptorSubType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bEntityId' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='iName' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='bChannelIndex' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='bPhysicalInterface' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='131' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='array_buffer' size-in-bits='320' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='181' column='1' id='1984aef9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tr' type-id='898c1076' visibility='default' filepath='kernel/trace/trace.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='buffer' type-id='573a5ee9' visibility='default' filepath='kernel/trace/trace.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data' type-id='17642359' visibility='default' filepath='kernel/trace/trace.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='time_start' type-id='91ce1af9' visibility='default' filepath='kernel/trace/trace.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='cpu' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='186' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='trace_entry' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/trace_events.h' line='67' column='1' id='1986ca65'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='8efea9e5' visibility='default' filepath='include/linux/trace_events.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='flags' type-id='002ac4a6' visibility='default' filepath='include/linux/trace_events.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='preempt_count' type-id='002ac4a6' visibility='default' filepath='include/linux/trace_events.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pid' type-id='95e97e5e' visibility='default' filepath='include/linux/trace_events.h' line='71' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='24e53f78' size-in-bits='64' id='19880752'/>
+      <function-type size-in-bits='64' id='198938b5'>
+        <parameter type-id='15b1f129'/>
+        <parameter type-id='c2d135ef'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='aa1606dd' size-in-bits='64' id='198dd6d9'/>
+      <qualified-type-def type-id='bec3f688' const='yes' id='199208f7'/>
+      <pointer-type-def type-id='9e6bb89c' size-in-bits='64' id='1993c682'/>
+      <qualified-type-def type-id='fa0eab7f' const='yes' id='19952db6'/>
+      <pointer-type-def type-id='e1f906a3' size-in-bits='64' id='19a26ee3'/>
+      <function-type size-in-bits='64' id='19b22092'>
+        <parameter type-id='b9608bfc'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='69bf7bee'/>
+      </function-type>
+      <class-decl name='blkcg' size-in-bits='2816' is-struct='yes' visibility='default' filepath='include/linux/blk-cgroup.h' line='49' column='1' id='19b26952'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='css' type-id='7f3df443' visibility='default' filepath='include/linux/blk-cgroup.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/blk-cgroup.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1888'>
+          <var-decl name='online_pin' type-id='64615833' visibility='default' filepath='include/linux/blk-cgroup.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='blkg_tree' type-id='d39738ac' visibility='default' filepath='include/linux/blk-cgroup.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='blkg_hint' type-id='1146dea3' visibility='default' filepath='include/linux/blk-cgroup.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='blkg_list' type-id='e151255a' visibility='default' filepath='include/linux/blk-cgroup.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='cpd' type-id='39e8b9c8' visibility='default' filepath='include/linux/blk-cgroup.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='all_blkcgs_node' type-id='72f469ec' visibility='default' filepath='include/linux/blk-cgroup.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='cgwb_list' type-id='72f469ec' visibility='default' filepath='include/linux/blk-cgroup.h' line='65' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='74c76c4a' size-in-bits='64' id='19bc34e4'/>
+      <class-decl name='hid_collection' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='434' column='1' id='19bef197'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='parent_idx' type-id='95e97e5e' visibility='default' filepath='include/linux/hid.h' line='435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='usage' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='level' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='438' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='19bf080d'>
+        <parameter type-id='7837cd88'/>
+        <parameter type-id='80f4b756'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <typedef-decl name='u32' type-id='3f1a6b60' filepath='include/asm-generic/int-ll64.h' line='21' column='1' id='19c2251e'/>
+      <pointer-type-def type-id='e7c67bff' size-in-bits='64' id='19c5fc2b'/>
+      <pointer-type-def type-id='ffd077eb' size-in-bits='64' id='19d36127'/>
+      <pointer-type-def type-id='54f4a585' size-in-bits='64' id='19da32b9'/>
+      <function-type size-in-bits='64' id='19db78f1'>
+        <parameter type-id='00ee50b8'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <pointer-type-def type-id='4536ce10' size-in-bits='64' id='19ddc3a6'/>
+      <pointer-type-def type-id='889856f7' size-in-bits='64' id='19e05b5f'/>
+      <class-decl name='vfsmount' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/mount.h' line='72' column='1' id='19e88833'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mnt_root' type-id='27675065' visibility='default' filepath='include/linux/mount.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mnt_sb' type-id='42c8f564' visibility='default' filepath='include/linux/mount.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mnt_flags' type-id='95e97e5e' visibility='default' filepath='include/linux/mount.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mnt_userns' type-id='c0ced320' visibility='default' filepath='include/linux/mount.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/mount.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/mount.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/mount.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/mount.h' line='81' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='worker_pool' size-in-bits='7168' is-struct='yes' visibility='default' filepath='kernel/workqueue.c' line='152' column='1' id='19ea21fe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='kernel/workqueue.c' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='cpu' type-id='95e97e5e' visibility='default' filepath='kernel/workqueue.c' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='node' type-id='95e97e5e' visibility='default' filepath='kernel/workqueue.c' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='kernel/workqueue.c' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='kernel/workqueue.c' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='watchdog_ts' type-id='7359adad' visibility='default' filepath='kernel/workqueue.c' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='worklist' type-id='72f469ec' visibility='default' filepath='kernel/workqueue.c' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='nr_workers' type-id='95e97e5e' visibility='default' filepath='kernel/workqueue.c' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='nr_idle' type-id='95e97e5e' visibility='default' filepath='kernel/workqueue.c' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='idle_list' type-id='72f469ec' visibility='default' filepath='kernel/workqueue.c' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='idle_timer' type-id='abe41e67' visibility='default' filepath='kernel/workqueue.c' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='mayday_timer' type-id='abe41e67' visibility='default' filepath='kernel/workqueue.c' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='busy_hash' type-id='53b70d6c' visibility='default' filepath='kernel/workqueue.c' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='manager' type-id='50a159c7' visibility='default' filepath='kernel/workqueue.c' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5632'>
+          <var-decl name='workers' type-id='72f469ec' visibility='default' filepath='kernel/workqueue.c' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5760'>
+          <var-decl name='detach_completion' type-id='389faaf7' visibility='default' filepath='kernel/workqueue.c' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5824'>
+          <var-decl name='worker_ida' type-id='46ce60fb' visibility='default' filepath='kernel/workqueue.c' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5952'>
+          <var-decl name='attrs' type-id='cfd15e7e' visibility='default' filepath='kernel/workqueue.c' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6016'>
+          <var-decl name='hash_node' type-id='03a4a074' visibility='default' filepath='kernel/workqueue.c' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6144'>
+          <var-decl name='refcnt' type-id='95e97e5e' visibility='default' filepath='kernel/workqueue.c' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6656'>
+          <var-decl name='nr_running' type-id='49178f86' visibility='default' filepath='kernel/workqueue.c' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6720'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='kernel/workqueue.c' line='195' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='19ebf718'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='b80a6036'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='i3c_master_controller' size-in-bits='18880' is-struct='yes' visibility='default' filepath='include/linux/i3c/master.h' line='483' column='1' id='19edf9fe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/i3c/master.h' line='484' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='this' type-id='e9b5d134' visibility='default' filepath='include/linux/i3c/master.h' line='485' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='i2c' type-id='ec5384d3' visibility='default' filepath='include/linux/i3c/master.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17088'>
+          <var-decl name='ops' type-id='b37211ac' visibility='default' filepath='include/linux/i3c/master.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17152'>
+          <var-decl name='secondary' type-id='f0981eeb' visibility='default' filepath='include/linux/i3c/master.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17153'>
+          <var-decl name='init_done' type-id='f0981eeb' visibility='default' filepath='include/linux/i3c/master.h' line='489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17216'>
+          <var-decl name='boardinfo' type-id='e7f43fb2' visibility='default' filepath='include/linux/i3c/master.h' line='493' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17472'>
+          <var-decl name='bus' type-id='8707bb0f' visibility='default' filepath='include/linux/i3c/master.h' line='494' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18816'>
+          <var-decl name='wq' type-id='242e3d19' visibility='default' filepath='include/linux/i3c/master.h' line='495' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='19f1c953'>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='4bdecfd7'/>
+      </function-type>
+      <class-decl name='v4l2_ext_controls' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1758' column='1' id='1a041cb4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab5fc' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1759' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='count' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1765' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='error_idx' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1766' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='request_fd' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1767' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='reserved' type-id='439be632' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1768' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='controls' type-id='264baaf7' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1769' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='kobj_type' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/kobject.h' line='148' column='1' id='1a08fab8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='release' type-id='aa377a8c' visibility='default' filepath='include/linux/kobject.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sysfs_ops' type-id='ebd313ed' visibility='default' filepath='include/linux/kobject.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='default_attrs' type-id='862c676f' visibility='default' filepath='include/linux/kobject.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='default_groups' type-id='c97de1ac' visibility='default' filepath='include/linux/kobject.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='child_ns_type' type-id='10f0a819' visibility='default' filepath='include/linux/kobject.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='namespace' type-id='9c1150bc' visibility='default' filepath='include/linux/kobject.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='get_ownership' type-id='96b6fff2' visibility='default' filepath='include/linux/kobject.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/kobject.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/kobject.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/kobject.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/kobject.h' line='160' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8c70c365' size-in-bits='64' id='1a09a595'/>
+      <class-decl name='export_operations' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/exportfs.h' line='198' column='1' id='1a0c5572'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='encode_fh' type-id='2cdfbf0a' visibility='default' filepath='include/linux/exportfs.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fh_to_dentry' type-id='9b9ccb86' visibility='default' filepath='include/linux/exportfs.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fh_to_parent' type-id='9b9ccb86' visibility='default' filepath='include/linux/exportfs.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get_name' type-id='cb0ca137' visibility='default' filepath='include/linux/exportfs.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='get_parent' type-id='36ed3b9a' visibility='default' filepath='include/linux/exportfs.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='commit_metadata' type-id='28ba4492' visibility='default' filepath='include/linux/exportfs.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='get_uuid' type-id='547aa7d2' visibility='default' filepath='include/linux/exportfs.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='map_blocks' type-id='35d085ce' visibility='default' filepath='include/linux/exportfs.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='commit_blocks' type-id='30144f27' visibility='default' filepath='include/linux/exportfs.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='fetch_iversion' type-id='aa66a4b1' visibility='default' filepath='include/linux/exportfs.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/exportfs.h' line='226' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='scsi_host_template' size-in-bits='3328' is-struct='yes' visibility='default' filepath='include/scsi/scsi_host.h' line='32' column='1' id='1a0d5389'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd_size' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='queuecommand' type-id='5e9804d5' visibility='default' filepath='include/scsi/scsi_host.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='commit_rqs' type-id='fddad99e' visibility='default' filepath='include/scsi/scsi_host.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='module' type-id='2730d015' visibility='default' filepath='include/scsi/scsi_host.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/scsi/scsi_host.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='info' type-id='91464e34' visibility='default' filepath='include/scsi/scsi_host.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ioctl' type-id='73550cb4' visibility='default' filepath='include/scsi/scsi_host.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='compat_ioctl' type-id='73550cb4' visibility='default' filepath='include/scsi/scsi_host.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='init_cmd_priv' type-id='5e9804d5' visibility='default' filepath='include/scsi/scsi_host.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='exit_cmd_priv' type-id='5e9804d5' visibility='default' filepath='include/scsi/scsi_host.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='eh_abort_handler' type-id='0786894c' visibility='default' filepath='include/scsi/scsi_host.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='eh_device_reset_handler' type-id='0786894c' visibility='default' filepath='include/scsi/scsi_host.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='eh_target_reset_handler' type-id='0786894c' visibility='default' filepath='include/scsi/scsi_host.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='eh_bus_reset_handler' type-id='0786894c' visibility='default' filepath='include/scsi/scsi_host.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='eh_host_reset_handler' type-id='0786894c' visibility='default' filepath='include/scsi/scsi_host.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='slave_alloc' type-id='4fae2c98' visibility='default' filepath='include/scsi/scsi_host.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='slave_configure' type-id='4fae2c98' visibility='default' filepath='include/scsi/scsi_host.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='slave_destroy' type-id='38c41fe1' visibility='default' filepath='include/scsi/scsi_host.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='target_alloc' type-id='55bb6559' visibility='default' filepath='include/scsi/scsi_host.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='target_destroy' type-id='36e7f8ac' visibility='default' filepath='include/scsi/scsi_host.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='scan_finished' type-id='07445d6c' visibility='default' filepath='include/scsi/scsi_host.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='scan_start' type-id='7fc5dc19' visibility='default' filepath='include/scsi/scsi_host.h' line='260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='change_queue_depth' type-id='38313007' visibility='default' filepath='include/scsi/scsi_host.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='map_queues' type-id='1a9d259c' visibility='default' filepath='include/scsi/scsi_host.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='mq_poll' type-id='43788ed6' visibility='default' filepath='include/scsi/scsi_host.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='dma_need_drain' type-id='3c790822' visibility='default' filepath='include/scsi/scsi_host.h' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='bios_param' type-id='4c72f20d' visibility='default' filepath='include/scsi/scsi_host.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='unlock_native_capacity' type-id='38c41fe1' visibility='default' filepath='include/scsi/scsi_host.h' line='317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='show_info' type-id='b9e33ab0' visibility='default' filepath='include/scsi/scsi_host.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='write_info' type-id='ff0f7577' visibility='default' filepath='include/scsi/scsi_host.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='eh_timed_out' type-id='7114e104' visibility='default' filepath='include/scsi/scsi_host.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='eh_should_retry_cmd' type-id='acc92962' visibility='default' filepath='include/scsi/scsi_host.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='host_reset' type-id='203d9a9b' visibility='default' filepath='include/scsi/scsi_host.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='proc_name' type-id='80f4b756' visibility='default' filepath='include/scsi/scsi_host.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='proc_dir' type-id='d077e928' visibility='default' filepath='include/scsi/scsi_host.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='can_queue' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_host.h' line='373' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2272'>
+          <var-decl name='this_id' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_host.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='sg_tablesize' type-id='8efea9e5' visibility='default' filepath='include/scsi/scsi_host.h' line='388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2320'>
+          <var-decl name='sg_prot_tablesize' type-id='8efea9e5' visibility='default' filepath='include/scsi/scsi_host.h' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2336'>
+          <var-decl name='max_sectors' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='394' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='max_segment_size' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='dma_boundary' type-id='7359adad' visibility='default' filepath='include/scsi/scsi_host.h' line='405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='virt_boundary_mask' type-id='7359adad' visibility='default' filepath='include/scsi/scsi_host.h' line='407' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='cmd_per_lun' type-id='a2185560' visibility='default' filepath='include/scsi/scsi_host.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2576'>
+          <var-decl name='present' type-id='002ac4a6' visibility='default' filepath='include/scsi/scsi_host.h' line='432' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2592'>
+          <var-decl name='tag_alloc_policy' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_host.h' line='435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='track_queue_depth' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='440' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2625'>
+          <var-decl name='supported_mode' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2627'>
+          <var-decl name='emulated' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2628'>
+          <var-decl name='skip_settle_delay' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2629'>
+          <var-decl name='no_write_same' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2630'>
+          <var-decl name='host_tagset' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='461' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2656'>
+          <var-decl name='max_host_blocked' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='466' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='shost_attrs' type-id='aa9eb300' visibility='default' filepath='include/scsi/scsi_host.h' line='480' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='sdev_attrs' type-id='aa9eb300' visibility='default' filepath='include/scsi/scsi_host.h' line='485' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='sdev_groups' type-id='c97de1ac' visibility='default' filepath='include/scsi/scsi_host.h' line='491' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='vendor_id' type-id='91ce1af9' visibility='default' filepath='include/scsi/scsi_host.h' line='500' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='cmd_pool' type-id='4783492e' visibility='default' filepath='include/scsi/scsi_host.h' line='502' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='rpm_autosuspend_delay' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_host.h' line='505' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/scsi/scsi_host.h' line='507' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/scsi/scsi_host.h' line='508' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/scsi/scsi_host.h' line='509' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/scsi/scsi_host.h' line='510' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='1a13292a'>
+        <parameter type-id='226853d2'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c7afdfb7' size-in-bits='64' id='1a16368f'/>
+      <pointer-type-def type-id='20c96a5d' size-in-bits='64' id='1a175cbd'/>
+      <pointer-type-def type-id='08616ba1' size-in-bits='64' id='1a17e40d'/>
+      <function-type size-in-bits='64' id='1a196c3e'>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='12c1f7e1'/>
+        <return type-id='35b28c4f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1a1b1987'>
+        <parameter type-id='f41a0030'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='b4c4f641'/>
+        <parameter type-id='f9409001'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='drm_fb_helper_funcs' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/drm/drm_fb_helper.h' line='76' column='1' id='1a200140'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fb_probe' type-id='4a5aa6b9' visibility='default' filepath='include/drm/drm_fb_helper.h' line='91' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e4574076' size-in-bits='64' id='1a240138'/>
+      <qualified-type-def type-id='9cec1ba7' const='yes' id='1a35d82e'/>
+      <pointer-type-def type-id='09a8bd0d' size-in-bits='64' id='1a3c7ef1'/>
+      <function-type size-in-bits='64' id='1a4194ca'>
+        <parameter type-id='8212a608'/>
+        <parameter type-id='f0acc909'/>
+        <return type-id='8f254b08'/>
+      </function-type>
+      <pointer-type-def type-id='43806adf' size-in-bits='64' id='1a494567'/>
+      <function-type size-in-bits='64' id='1a55bf13'>
+        <parameter type-id='5dbae9d1'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='364ef168' const='yes' id='1a56399f'/>
+      <pointer-type-def type-id='c31ae6dd' size-in-bits='64' id='1a5996d5'/>
+      <pointer-type-def type-id='266b9741' size-in-bits='64' id='1a7b1e1d'/>
+      <pointer-type-def type-id='13103032' size-in-bits='64' id='1a7bb5c8'/>
+      <pointer-type-def type-id='5ad6e0ef' size-in-bits='64' id='1a7ee447'/>
+      <function-type size-in-bits='64' id='1a7fa4c7'>
+        <parameter type-id='eefe253e'/>
+        <parameter type-id='b6733265'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='c20dd28d' const='yes' id='1a814584'/>
+      <pointer-type-def type-id='c3b3aa2a' size-in-bits='64' id='1a8bc978'/>
+      <pointer-type-def type-id='590223f8' size-in-bits='64' id='1a8fddbe'/>
+      <union-decl name='i2c_smbus_data' size-in-bits='272' visibility='default' filepath='include/uapi/linux/i2c.h' line='141' column='1' id='1a96c066'>
+        <data-member access='public'>
+          <var-decl name='byte' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/i2c.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='word' type-id='d315442e' visibility='default' filepath='include/uapi/linux/i2c.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='block' type-id='ba592c87' visibility='default' filepath='include/uapi/linux/i2c.h' line='144' column='1'/>
+        </data-member>
+      </union-decl>
+      <pointer-type-def type-id='fb9c833a' size-in-bits='64' id='1a9d259c'/>
+      <pointer-type-def type-id='38cfc416' size-in-bits='64' id='1aa763a8'/>
+      <class-decl name='crypto_shash_spawn' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/crypto/internal/hash.h' line='58' column='1' id='1aafc68e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='58ba85d8' visibility='default' filepath='include/crypto/internal/hash.h' line='59' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_driver' size-in-bits='2688' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1217' column='1' id='1ab3428c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/usb.h' line='1218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='probe' type-id='a324decb' visibility='default' filepath='include/linux/usb.h' line='1220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='disconnect' type-id='b6566954' visibility='default' filepath='include/linux/usb.h' line='1223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='unlocked_ioctl' type-id='52006477' visibility='default' filepath='include/linux/usb.h' line='1225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='suspend' type-id='31eb8cc0' visibility='default' filepath='include/linux/usb.h' line='1228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='resume' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='reset_resume' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pre_reset' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='post_reset' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='id_table' type-id='bc57058f' visibility='default' filepath='include/linux/usb.h' line='1235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='dev_groups' type-id='c97de1ac' visibility='default' filepath='include/linux/usb.h' line='1236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='dynids' type-id='cb08bae1' visibility='default' filepath='include/linux/usb.h' line='1238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='drvwrap' type-id='33780378' visibility='default' filepath='include/linux/usb.h' line='1239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='no_dynamic_id' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2369'>
+          <var-decl name='supports_autosuspend' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2370'>
+          <var-decl name='disable_hub_initiated_lpm' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1242' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2371'>
+          <var-decl name='soft_unbind' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1248' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='cfg80211_sar_freq_ranges' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2115' column='1' id='1abb753c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start_freq' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='end_freq' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2117' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='seqcount_ww_mutex_t' type-id='b7e534b2' filepath='include/linux/seqlock.h' line='280' column='1' id='1abc0b16'/>
+      <enum-decl name='v4l2_buf_type' filepath='include/uapi/linux/videodev2.h' line='141' column='1' id='1abf108f'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='V4L2_BUF_TYPE_VIDEO_CAPTURE' value='1'/>
+        <enumerator name='V4L2_BUF_TYPE_VIDEO_OUTPUT' value='2'/>
+        <enumerator name='V4L2_BUF_TYPE_VIDEO_OVERLAY' value='3'/>
+        <enumerator name='V4L2_BUF_TYPE_VBI_CAPTURE' value='4'/>
+        <enumerator name='V4L2_BUF_TYPE_VBI_OUTPUT' value='5'/>
+        <enumerator name='V4L2_BUF_TYPE_SLICED_VBI_CAPTURE' value='6'/>
+        <enumerator name='V4L2_BUF_TYPE_SLICED_VBI_OUTPUT' value='7'/>
+        <enumerator name='V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY' value='8'/>
+        <enumerator name='V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE' value='9'/>
+        <enumerator name='V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE' value='10'/>
+        <enumerator name='V4L2_BUF_TYPE_SDR_CAPTURE' value='11'/>
+        <enumerator name='V4L2_BUF_TYPE_SDR_OUTPUT' value='12'/>
+        <enumerator name='V4L2_BUF_TYPE_META_CAPTURE' value='13'/>
+        <enumerator name='V4L2_BUF_TYPE_META_OUTPUT' value='14'/>
+        <enumerator name='V4L2_BUF_TYPE_PRIVATE' value='128'/>
+      </enum-decl>
+      <pointer-type-def type-id='83ac033d' size-in-bits='64' id='1ac0dc69'/>
+      <qualified-type-def type-id='1f03d7fe' const='yes' id='1ac45f89'/>
+      <qualified-type-def type-id='9eb0598f' const='yes' id='1ad1186a'/>
+      <pointer-type-def type-id='10865770' size-in-bits='64' id='1ad47772'/>
+      <pointer-type-def type-id='dd695fa4' size-in-bits='64' id='1ae16c8a'/>
+      <qualified-type-def type-id='225726a9' const='yes' id='1af0ab42'/>
+      <function-type size-in-bits='64' id='1af55526'>
+        <parameter type-id='dfeb7f6c'/>
+        <parameter type-id='bbaf3419'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='c067c68a' size-in-bits='2240' id='1afbfcb5'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <typedef-decl name='time64_t' type-id='49659421' filepath='include/linux/time64.h' line='8' column='1' id='1afd27ac'/>
+      <class-decl name='drm_vma_offset_manager' size-in-bits='1984' is-struct='yes' visibility='default' filepath='include/drm/drm_vma_manager.h' line='59' column='1' id='1b04dce5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vm_lock' type-id='ac16795b' visibility='default' filepath='include/drm/drm_vma_manager.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='vm_addr_space_mm' type-id='0b8ea949' visibility='default' filepath='include/drm/drm_vma_manager.h' line='61' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='typec_port' size-in-bits='9024' is-struct='yes' visibility='default' filepath='drivers/usb/typec/class.h' line='42' column='1' id='1b0b5250'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='f0981eeb' visibility='default' filepath='drivers/usb/typec/class.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='drivers/usb/typec/class.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='mode_ids' type-id='46ce60fb' visibility='default' filepath='drivers/usb/typec/class.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='prefer_role' type-id='95e97e5e' visibility='default' filepath='drivers/usb/typec/class.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7520'>
+          <var-decl name='data_role' type-id='e453a0cb' visibility='default' filepath='drivers/usb/typec/class.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='pwr_role' type-id='ad61830a' visibility='default' filepath='drivers/usb/typec/class.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7584'>
+          <var-decl name='vconn_role' type-id='ad61830a' visibility='default' filepath='drivers/usb/typec/class.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='pwr_opmode' type-id='44ea1984' visibility='default' filepath='drivers/usb/typec/class.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7648'>
+          <var-decl name='port_type' type-id='0a19b04e' visibility='default' filepath='drivers/usb/typec/class.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='port_type_lock' type-id='925167dc' visibility='default' filepath='drivers/usb/typec/class.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='orientation' type-id='131b0a9c' visibility='default' filepath='drivers/usb/typec/class.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='sw' type-id='5d33005f' visibility='default' filepath='drivers/usb/typec/class.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='mux' type-id='374b228b' visibility='default' filepath='drivers/usb/typec/class.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='cap' type-id='287e28ea' visibility='default' filepath='drivers/usb/typec/class.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='ops' type-id='ebbbab1e' visibility='default' filepath='drivers/usb/typec/class.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8384'>
+          <var-decl name='port_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/typec/class.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='port_list_lock' type-id='925167dc' visibility='default' filepath='drivers/usb/typec/class.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8896'>
+          <var-decl name='pld' type-id='eaa32e2f' visibility='default' filepath='drivers/usb/typec/class.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8960'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/usb/typec/class.h' line='66' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='1b0dcbb7'>
+        <parameter type-id='366d2695'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='91ce1af9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='14ba1df2' size-in-bits='64' id='1b0e1d00'/>
+      <class-decl name='nvdimm_bus_descriptor' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/libnvdimm.h' line='77' column='1' id='1b1c4a63'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='attr_groups' type-id='c97de1ac' visibility='default' filepath='include/linux/libnvdimm.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cmd_mask' type-id='7359adad' visibility='default' filepath='include/linux/libnvdimm.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dimm_family_mask' type-id='7359adad' visibility='default' filepath='include/linux/libnvdimm.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bus_family_mask' type-id='7359adad' visibility='default' filepath='include/linux/libnvdimm.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='module' type-id='2730d015' visibility='default' filepath='include/linux/libnvdimm.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='provider_name' type-id='26a90f95' visibility='default' filepath='include/linux/libnvdimm.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='of_node' type-id='9a537bbe' visibility='default' filepath='include/linux/libnvdimm.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ndctl' type-id='c87493cc' visibility='default' filepath='include/linux/libnvdimm.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='flush_probe' type-id='4a00a0f7' visibility='default' filepath='include/linux/libnvdimm.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='clear_to_send' type-id='40b285e2' visibility='default' filepath='include/linux/libnvdimm.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='fw_ops' type-id='b5e1be35' visibility='default' filepath='include/linux/libnvdimm.h' line='89' column='1'/>
+        </data-member>
+      </class-decl>
+      <union-decl name='pn' size-in-bits='64' visibility='default' filepath='include/net/macsec.h' line='31' column='1' id='1b1f0e7e'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43f98' visibility='default' filepath='include/net/macsec.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='full64' type-id='91ce1af9' visibility='default' filepath='include/net/macsec.h' line='43' column='1'/>
+        </data-member>
+      </union-decl>
+      <class-decl name='__anonymous_struct__' is-struct='yes' visibility='default' filepath='include/linux/local_lock_internal.h' line='11' column='1' id='1b2343c1' is-anonymous='yes'/>
+      <pointer-type-def type-id='f82c8e47' size-in-bits='64' id='1b243597'/>
+      <pointer-type-def type-id='47248e3d' size-in-bits='64' id='1b27c119'/>
+      <function-type size-in-bits='64' id='1b343ea9'>
+        <parameter type-id='b9aa0100'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='26a90f95'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='3fb29acd' const='yes' id='1b39a1dd'/>
+      <function-type size-in-bits='64' id='1b424123'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='75099793'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1b555b55'>
+        <parameter type-id='442b8d89'/>
+        <parameter type-id='bfc022f4'/>
+        <parameter type-id='bbeb954c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='fsg_state' filepath='drivers/usb/gadget/function/storage_common.h' line='159' column='1' id='1b61257a'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='FSG_STATE_NORMAL' value='0'/>
+        <enumerator name='FSG_STATE_ABORT_BULK_OUT' value='1'/>
+        <enumerator name='FSG_STATE_PROTOCOL_RESET' value='2'/>
+        <enumerator name='FSG_STATE_CONFIG_CHANGE' value='3'/>
+        <enumerator name='FSG_STATE_EXIT' value='4'/>
+        <enumerator name='FSG_STATE_TERMINATED' value='5'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='1b632d0e'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='e835b5d8'/>
+        <parameter type-id='eea6b025'/>
+        <parameter type-id='3eb7c31c'/>
+        <return type-id='02f11ed4'/>
+      </function-type>
+      <pointer-type-def type-id='7e019027' size-in-bits='64' id='1b64445b'/>
+      <pointer-type-def type-id='805f2c4a' size-in-bits='64' id='1b7a05dc'/>
+      <typedef-decl name='blkcg_pol_free_cpd_fn' type-id='6cb73a29' filepath='include/linux/blk-cgroup.h' line='147' column='1' id='1b7bde03'/>
+      <class-decl name='icmpv6_mib_device' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/net/snmp.h' line='75' column='1' id='1b8801b2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mibs' type-id='72bb5580' visibility='default' filepath='include/net/snmp.h' line='76' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='block_device' size-in-bits='8960' is-struct='yes' visibility='default' filepath='include/linux/blk_types.h' line='24' column='1' id='1b893cc5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bd_start_sect' type-id='a42536cd' visibility='default' filepath='include/linux/blk_types.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bd_stats' type-id='70f1634e' visibility='default' filepath='include/linux/blk_types.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bd_stamp' type-id='7359adad' visibility='default' filepath='include/linux/blk_types.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bd_read_only' type-id='b50a4934' visibility='default' filepath='include/linux/blk_types.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='bd_dev' type-id='8504f260' visibility='default' filepath='include/linux/blk_types.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='bd_openers' type-id='95e97e5e' visibility='default' filepath='include/linux/blk_types.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='bd_inode' type-id='7e666abe' visibility='default' filepath='include/linux/blk_types.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='bd_super' type-id='42c8f564' visibility='default' filepath='include/linux/blk_types.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='bd_claiming' type-id='eaa32e2f' visibility='default' filepath='include/linux/blk_types.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='bd_device' type-id='66e487eb' visibility='default' filepath='include/linux/blk_types.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='bd_holder' type-id='eaa32e2f' visibility='default' filepath='include/linux/blk_types.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='bd_holders' type-id='95e97e5e' visibility='default' filepath='include/linux/blk_types.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7904'>
+          <var-decl name='bd_write_holder' type-id='b50a4934' visibility='default' filepath='include/linux/blk_types.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='bd_holder_dir' type-id='d30bdc51' visibility='default' filepath='include/linux/blk_types.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='bd_partno' type-id='f9b06939' visibility='default' filepath='include/linux/blk_types.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8032'>
+          <var-decl name='bd_size_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/blk_types.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='bd_disk' type-id='33c599da' visibility='default' filepath='include/linux/blk_types.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='bd_fsfreeze_count' type-id='95e97e5e' visibility='default' filepath='include/linux/blk_types.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='bd_fsfreeze_mutex' type-id='925167dc' visibility='default' filepath='include/linux/blk_types.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8576'>
+          <var-decl name='bd_fsfreeze_sb' type-id='42c8f564' visibility='default' filepath='include/linux/blk_types.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='bd_meta_info' type-id='d4f2b9b2' visibility='default' filepath='include/linux/blk_types.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/blk_types.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8768'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/blk_types.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8832'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/blk_types.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8896'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/blk_types.h' line='57' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='1b8c67aa'>
+        <parameter type-id='328dda6e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='regulator_consumer_supply' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/regulator/machine.h' line='233' column='1' id='1b8fa461'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev_name' type-id='80f4b756' visibility='default' filepath='include/linux/regulator/machine.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='supply' type-id='80f4b756' visibility='default' filepath='include/linux/regulator/machine.h' line='235' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='1b99a1f1'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='bc5666d5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='compat_robust_list_head' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/compat.h' line='362' column='1' id='1b9c6d35'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='bd51dd4a' visibility='default' filepath='include/linux/compat.h' line='363' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='futex_offset' type-id='abb906de' visibility='default' filepath='include/linux/compat.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='list_op_pending' type-id='782d78af' visibility='default' filepath='include/linux/compat.h' line='365' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='70660701' size-in-bits='64' id='1b9d48b1'/>
+      <pointer-type-def type-id='e5015777' size-in-bits='64' id='1ba30a33'/>
+      <array-type-def dimensions='1' type-id='fdbf7a0f' size-in-bits='320' id='1bab617a'>
+        <subrange length='40' type-id='7ff19f0f' id='8f80b239'/>
+      </array-type-def>
+      <class-decl name='v4l2_vp8_segment' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1694' column='1' id='1bb3a9a2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='quant_update' type-id='87ce7f1e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1695' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='lf_update' type-id='87ce7f1e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1696' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='segment_probs' type-id='c216126b' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1697' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='padding' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1698' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1699' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9d0ae2a2' size-in-bits='64' id='1bd40de0'/>
+      <pointer-type-def type-id='b73dd29b' size-in-bits='64' id='1be0f6ab'/>
+      <enum-decl name='scale_freq_source' filepath='include/linux/arch_topology.h' line='38' column='1' id='1be23a1f'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SCALE_FREQ_SOURCE_CPUFREQ' value='0'/>
+        <enumerator name='SCALE_FREQ_SOURCE_ARCH' value='1'/>
+        <enumerator name='SCALE_FREQ_SOURCE_CPPC' value='2'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='1be94d48'>
+        <parameter type-id='75b9415a'/>
+        <parameter type-id='7f607a84'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='inet_diag_msg' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='117' column='1' id='1bead3e1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='idiag_family' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='idiag_state' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='idiag_timer' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='idiag_retrans' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='id' type-id='b73cf3f5' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='idiag_expires' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='idiag_rqueue' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='idiag_wqueue' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='idiag_uid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='idiag_inode' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='129' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='9399d16b' const='yes' id='1beae906'/>
+      <pointer-type-def type-id='41e9d9ab' size-in-bits='64' id='1bf109d7'/>
+      <pointer-type-def type-id='5919d6b5' size-in-bits='64' id='1bf68965'/>
+      <pointer-type-def type-id='242d8ed5' size-in-bits='64' id='1bff60d1'/>
+      <class-decl name='ethhdr' size-in-bits='112' is-struct='yes' visibility='default' filepath='include/uapi/linux/if_ether.h' line='168' column='1' id='1c00b436'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='h_dest' type-id='4cfa781a' visibility='default' filepath='include/uapi/linux/if_ether.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='h_source' type-id='4cfa781a' visibility='default' filepath='include/uapi/linux/if_ether.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='h_proto' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/if_ether.h' line='171' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='request_sock' size-in-bits='1920' is-struct='yes' visibility='default' filepath='include/net/request_sock.h' line='53' column='1' id='1c03d197'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='__req_common' type-id='5999c5f7' visibility='default' filepath='include/net/request_sock.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='dl_next' type-id='94c948ef' visibility='default' filepath='include/net/request_sock.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='mss' type-id='1dc6a898' visibility='default' filepath='include/net/request_sock.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1168'>
+          <var-decl name='num_retrans' type-id='f9b06939' visibility='default' filepath='include/net/request_sock.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1176'>
+          <var-decl name='syncookie' type-id='f9b06939' visibility='default' filepath='include/net/request_sock.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1177'>
+          <var-decl name='num_timeout' type-id='f9b06939' visibility='default' filepath='include/net/request_sock.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='ts_recent' type-id='19c2251e' visibility='default' filepath='include/net/request_sock.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='rsk_timer' type-id='abe41e67' visibility='default' filepath='include/net/request_sock.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='rsk_ops' type-id='e7c1a985' visibility='default' filepath='include/net/request_sock.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='sk' type-id='f772df6d' visibility='default' filepath='include/net/request_sock.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='saved_syn' type-id='be9aaa19' visibility='default' filepath='include/net/request_sock.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='secid' type-id='19c2251e' visibility='default' filepath='include/net/request_sock.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1888'>
+          <var-decl name='peer_secid' type-id='19c2251e' visibility='default' filepath='include/net/request_sock.h' line='72' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='164a08b2' size-in-bits='64' id='1c079e60'/>
+      <function-type size-in-bits='64' id='1c0d3c63'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='f0acc909'/>
+        <return type-id='8f254b08'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1c0f29cf'>
+        <parameter type-id='f23e2572'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='c4564b21' size-in-bits='64' id='1c12709d'/>
+      <array-type-def dimensions='1' type-id='84fc83c5' size-in-bits='192' id='1c159d57'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='1c171578'>
+        <parameter type-id='a6711537'/>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='9c313c2d'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1c210187'>
+        <parameter type-id='33dc3b1b'/>
+        <return type-id='80f4b756'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1c254730'>
+        <parameter type-id='0343ce83'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1c2e282d'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='fdfb3042'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='e613f28a' size-in-bits='64' id='1c33159c'/>
+      <class-decl name='macsec_ops' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/net/macsec.h' line='264' column='1' id='1c4048ae'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mdo_dev_open' type-id='0fc51e4b' visibility='default' filepath='include/net/macsec.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mdo_dev_stop' type-id='0fc51e4b' visibility='default' filepath='include/net/macsec.h' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mdo_add_secy' type-id='0fc51e4b' visibility='default' filepath='include/net/macsec.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mdo_upd_secy' type-id='0fc51e4b' visibility='default' filepath='include/net/macsec.h' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mdo_del_secy' type-id='0fc51e4b' visibility='default' filepath='include/net/macsec.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mdo_add_rxsc' type-id='0fc51e4b' visibility='default' filepath='include/net/macsec.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='mdo_upd_rxsc' type-id='0fc51e4b' visibility='default' filepath='include/net/macsec.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='mdo_del_rxsc' type-id='0fc51e4b' visibility='default' filepath='include/net/macsec.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='mdo_add_rxsa' type-id='0fc51e4b' visibility='default' filepath='include/net/macsec.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='mdo_upd_rxsa' type-id='0fc51e4b' visibility='default' filepath='include/net/macsec.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='mdo_del_rxsa' type-id='0fc51e4b' visibility='default' filepath='include/net/macsec.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='mdo_add_txsa' type-id='0fc51e4b' visibility='default' filepath='include/net/macsec.h' line='280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='mdo_upd_txsa' type-id='0fc51e4b' visibility='default' filepath='include/net/macsec.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='mdo_del_txsa' type-id='0fc51e4b' visibility='default' filepath='include/net/macsec.h' line='282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='mdo_get_dev_stats' type-id='0fc51e4b' visibility='default' filepath='include/net/macsec.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='mdo_get_tx_sc_stats' type-id='0fc51e4b' visibility='default' filepath='include/net/macsec.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='mdo_get_tx_sa_stats' type-id='0fc51e4b' visibility='default' filepath='include/net/macsec.h' line='286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='mdo_get_rx_sc_stats' type-id='0fc51e4b' visibility='default' filepath='include/net/macsec.h' line='287' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='mdo_get_rx_sa_stats' type-id='0fc51e4b' visibility='default' filepath='include/net/macsec.h' line='288' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='064acd7a' size-in-bits='64' id='1c475548'/>
+      <pointer-type-def type-id='97e3fb6c' size-in-bits='64' id='1c51ec16'/>
+      <class-decl name='pci_sriov' size-in-bits='1280' is-struct='yes' visibility='default' filepath='drivers/pci/controller/dwc/../../pci.h' line='334' column='1' id='1c590219'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pos' type-id='95e97e5e' visibility='default' filepath='drivers/pci/pci.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='nres' type-id='95e97e5e' visibility='default' filepath='drivers/pci/pci.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cap' type-id='19c2251e' visibility='default' filepath='drivers/pci/pci.h' line='337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='ctrl' type-id='1dc6a898' visibility='default' filepath='drivers/pci/pci.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='total_VFs' type-id='1dc6a898' visibility='default' filepath='drivers/pci/pci.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='initial_VFs' type-id='1dc6a898' visibility='default' filepath='drivers/pci/pci.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='num_VFs' type-id='1dc6a898' visibility='default' filepath='drivers/pci/pci.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='offset' type-id='1dc6a898' visibility='default' filepath='drivers/pci/pci.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='stride' type-id='1dc6a898' visibility='default' filepath='drivers/pci/pci.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='vf_device' type-id='1dc6a898' visibility='default' filepath='drivers/pci/pci.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='pgsz' type-id='19c2251e' visibility='default' filepath='drivers/pci/pci.h' line='345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='link' type-id='f9b06939' visibility='default' filepath='drivers/pci/pci.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='264'>
+          <var-decl name='max_VF_buses' type-id='f9b06939' visibility='default' filepath='drivers/pci/pci.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='driver_max_VFs' type-id='1dc6a898' visibility='default' filepath='drivers/pci/pci.h' line='348' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dev' type-id='85196e3f' visibility='default' filepath='drivers/pci/pci.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='self' type-id='85196e3f' visibility='default' filepath='drivers/pci/pci.h' line='350' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='class' type-id='19c2251e' visibility='default' filepath='drivers/pci/pci.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='hdr_type' type-id='f9b06939' visibility='default' filepath='drivers/pci/pci.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='496'>
+          <var-decl name='subsystem_vendor' type-id='1dc6a898' visibility='default' filepath='drivers/pci/pci.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='subsystem_device' type-id='1dc6a898' visibility='default' filepath='drivers/pci/pci.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='barsz' type-id='21e79dbc' visibility='default' filepath='drivers/pci/pci.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='drivers_autoprobe' type-id='b50a4934' visibility='default' filepath='drivers/pci/pci.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/pci/pci.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='drivers/pci/pci.h' line='359' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='drivers/pci/pci.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='drivers/pci/pci.h' line='361' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mipi_dsi_device_info' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='159' column='1' id='1c5d084f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='664ac0b7' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='channel' type-id='19c2251e' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='node' type-id='9a537bbe' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='162' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='1c62d4d4'>
+        <parameter type-id='9e99ecc1'/>
+        <parameter type-id='8898134d'/>
+        <parameter type-id='28cbbf40'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='19c2251e' size-in-bits='256' id='1c6311dd'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='1c63824d'>
+        <parameter type-id='67d012a2'/>
+        <parameter type-id='48d9f490'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='34fc4897' size-in-bits='64' id='1c63cc3f'/>
+      <pointer-type-def type-id='7c7d6006' size-in-bits='64' id='1c66bddc'/>
+      <function-type size-in-bits='64' id='1c674f90'>
+        <parameter type-id='8f4bc7f1'/>
+        <parameter type-id='9693d74a'/>
+        <parameter type-id='28379b39'/>
+        <parameter type-id='28379b39'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='19c2251e' size-in-bits='224' id='1c69cda2'>
+        <subrange length='7' type-id='7ff19f0f' id='16fc326e'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='19c2251e' size-in-bits='128' id='1c6c0c39'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='19c2251e' size-in-bits='96' id='1c745afe'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <class-decl name='fb_chroma' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/fb.h' line='53' column='1' id='1c76a224'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='redx' type-id='3f1a6b60' visibility='default' filepath='include/linux/fb.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='greenx' type-id='3f1a6b60' visibility='default' filepath='include/linux/fb.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bluex' type-id='3f1a6b60' visibility='default' filepath='include/linux/fb.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='whitex' type-id='3f1a6b60' visibility='default' filepath='include/linux/fb.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='redy' type-id='3f1a6b60' visibility='default' filepath='include/linux/fb.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='greeny' type-id='3f1a6b60' visibility='default' filepath='include/linux/fb.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bluey' type-id='3f1a6b60' visibility='default' filepath='include/linux/fb.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='whitey' type-id='3f1a6b60' visibility='default' filepath='include/linux/fb.h' line='61' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='1c800c47'>
+        <parameter type-id='12884b9a'/>
+        <parameter type-id='8bf48c31'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1c806218'>
+        <parameter type-id='c151d965'/>
+        <parameter type-id='70d417ab'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='iw_statistics' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/linux/wireless.h' line='881' column='1' id='1c8cc2fd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='status' type-id='d315442e' visibility='default' filepath='include/uapi/linux/wireless.h' line='882' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='qual' type-id='aa80c027' visibility='default' filepath='include/uapi/linux/wireless.h' line='885' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='discard' type-id='832938ed' visibility='default' filepath='include/uapi/linux/wireless.h' line='887' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='miss' type-id='6a2a3473' visibility='default' filepath='include/uapi/linux/wireless.h' line='888' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2d7051f1' size-in-bits='64' id='1c936db9'/>
+      <pointer-type-def type-id='1c0f29cf' size-in-bits='64' id='1c9e19fb'/>
+      <function-type size-in-bits='64' id='1c9f9836'>
+        <parameter type-id='43c38462'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1ca1bfac'>
+        <parameter type-id='9ad862e7'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='3ea0d50a' const='yes' id='1ca42ff9'/>
+      <pointer-type-def type-id='7addb8a1' size-in-bits='64' id='1cb2627d'/>
+      <pointer-type-def type-id='d4aabc7e' size-in-bits='64' id='1cc6783c'/>
+      <pointer-type-def type-id='b69cad70' size-in-bits='64' id='1cc860f2'/>
+      <enum-decl name='skb_drop_reason' filepath='include/linux/skbuff.h' line='316' column='1' id='1cce8201'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SKB_DROP_REASON_NOT_SPECIFIED' value='0'/>
+        <enumerator name='SKB_DROP_REASON_NO_SOCKET' value='1'/>
+        <enumerator name='SKB_DROP_REASON_PKT_TOO_SMALL' value='2'/>
+        <enumerator name='SKB_DROP_REASON_TCP_CSUM' value='3'/>
+        <enumerator name='SKB_DROP_REASON_SOCKET_FILTER' value='4'/>
+        <enumerator name='SKB_DROP_REASON_UDP_CSUM' value='5'/>
+        <enumerator name='SKB_DROP_REASON_NETFILTER_DROP' value='6'/>
+        <enumerator name='SKB_DROP_REASON_OTHERHOST' value='7'/>
+        <enumerator name='SKB_DROP_REASON_IP_CSUM' value='8'/>
+        <enumerator name='SKB_DROP_REASON_IP_INHDR' value='9'/>
+        <enumerator name='SKB_DROP_REASON_IP_RPFILTER' value='10'/>
+        <enumerator name='SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST' value='11'/>
+        <enumerator name='SKB_DROP_REASON_MAX' value='12'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='1cd99dc1'>
+        <parameter type-id='1c936db9'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='545b687b' size-in-bits='64' id='1ce53783'/>
+      <pointer-type-def type-id='19ea21fe' size-in-bits='64' id='1ce8c5e4'/>
+      <class-decl name='fb_fix_screeninfo' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/uapi/linux/fb.h' line='157' column='1' id='1cead55a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/linux/fb.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='smem_start' type-id='7359adad' visibility='default' filepath='include/uapi/linux/fb.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='smem_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='type_aux' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='visual' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='xpanstep' type-id='d315442e' visibility='default' filepath='include/uapi/linux/fb.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='336'>
+          <var-decl name='ypanstep' type-id='d315442e' visibility='default' filepath='include/uapi/linux/fb.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='ywrapstep' type-id='d315442e' visibility='default' filepath='include/uapi/linux/fb.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='line_length' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='mmio_start' type-id='7359adad' visibility='default' filepath='include/uapi/linux/fb.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='mmio_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='accel' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='capabilities' type-id='d315442e' visibility='default' filepath='include/uapi/linux/fb.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='592'>
+          <var-decl name='reserved' type-id='810b4a17' visibility='default' filepath='include/uapi/linux/fb.h' line='175' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='99690429' size-in-bits='64' id='1cebc84d'/>
+      <pointer-type-def type-id='0f87f015' size-in-bits='64' id='1ced7495'/>
+      <pointer-type-def type-id='8f68aa3b' size-in-bits='64' id='1cf47bfb'/>
+      <class-decl name='if_settings' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/if.h' line='207' column='1' id='1cff49be'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/if.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='size' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/if.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ifs_ifsu' type-id='ac5ab686' visibility='default' filepath='include/uapi/linux/if.h' line='222' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='81795b61' size-in-bits='64' id='1d0ab711'/>
+      <class-decl name='cgroup_subsys' size-in-bits='1920' is-struct='yes' visibility='default' filepath='include/linux/cgroup-defs.h' line='626' column='1' id='1d115fd5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='css_alloc' type-id='a87691ee' visibility='default' filepath='include/linux/cgroup-defs.h' line='627' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='css_online' type-id='8bdbbb63' visibility='default' filepath='include/linux/cgroup-defs.h' line='628' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='css_offline' type-id='f65daff2' visibility='default' filepath='include/linux/cgroup-defs.h' line='629' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='css_released' type-id='f65daff2' visibility='default' filepath='include/linux/cgroup-defs.h' line='630' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='css_free' type-id='f65daff2' visibility='default' filepath='include/linux/cgroup-defs.h' line='631' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='css_reset' type-id='f65daff2' visibility='default' filepath='include/linux/cgroup-defs.h' line='632' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='css_rstat_flush' type-id='fe17c379' visibility='default' filepath='include/linux/cgroup-defs.h' line='633' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='css_extra_stat_show' type-id='f22a42d7' visibility='default' filepath='include/linux/cgroup-defs.h' line='634' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='can_attach' type-id='354bcec3' visibility='default' filepath='include/linux/cgroup-defs.h' line='637' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='cancel_attach' type-id='6484073c' visibility='default' filepath='include/linux/cgroup-defs.h' line='638' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='attach' type-id='6484073c' visibility='default' filepath='include/linux/cgroup-defs.h' line='639' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='post_attach' type-id='953b12f8' visibility='default' filepath='include/linux/cgroup-defs.h' line='640' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='can_fork' type-id='2933f890' visibility='default' filepath='include/linux/cgroup-defs.h' line='641' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='cancel_fork' type-id='3c3edc81' visibility='default' filepath='include/linux/cgroup-defs.h' line='643' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='fork' type-id='1c9e19fb' visibility='default' filepath='include/linux/cgroup-defs.h' line='644' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='exit' type-id='1c9e19fb' visibility='default' filepath='include/linux/cgroup-defs.h' line='645' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='release' type-id='1c9e19fb' visibility='default' filepath='include/linux/cgroup-defs.h' line='646' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='bind' type-id='f65daff2' visibility='default' filepath='include/linux/cgroup-defs.h' line='647' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='early_init' type-id='b50a4934' visibility='default' filepath='include/linux/cgroup-defs.h' line='649' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1153'>
+          <var-decl name='implicit_on_dfl' type-id='b50a4934' visibility='default' filepath='include/linux/cgroup-defs.h' line='662' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1154'>
+          <var-decl name='threaded' type-id='b50a4934' visibility='default' filepath='include/linux/cgroup-defs.h' line='674' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/cgroup-defs.h' line='677' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/cgroup-defs.h' line='678' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='legacy_name' type-id='80f4b756' visibility='default' filepath='include/linux/cgroup-defs.h' line='681' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='root' type-id='aede2cf0' visibility='default' filepath='include/linux/cgroup-defs.h' line='684' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='css_idr' type-id='37ce495e' visibility='default' filepath='include/linux/cgroup-defs.h' line='687' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='cfts' type-id='72f469ec' visibility='default' filepath='include/linux/cgroup-defs.h' line='693' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='dfl_cftypes' type-id='03054cfa' visibility='default' filepath='include/linux/cgroup-defs.h' line='699' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='legacy_cftypes' type-id='03054cfa' visibility='default' filepath='include/linux/cgroup-defs.h' line='700' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='depends_on' type-id='f0981eeb' visibility='default' filepath='include/linux/cgroup-defs.h' line='709' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='blk_flush_queue' size-in-bits='640' is-struct='yes' visibility='default' filepath='block/blk.h' line='20' column='1' id='1d120221'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flush_pending_idx' type-id='f0981eeb' visibility='default' filepath='block/blk.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1'>
+          <var-decl name='flush_running_idx' type-id='f0981eeb' visibility='default' filepath='block/blk.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='rq_status' type-id='f4e2facd' visibility='default' filepath='block/blk.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flush_pending_since' type-id='7359adad' visibility='default' filepath='block/blk.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flush_queue' type-id='e4f16420' visibility='default' filepath='block/blk.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='flush_data_in_flight' type-id='72f469ec' visibility='default' filepath='block/blk.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='flush_rq' type-id='3dad1a48' visibility='default' filepath='block/blk.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='mq_flush_lock' type-id='fb4018a0' visibility='default' filepath='block/blk.h' line='29' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='aa79f31a' size-in-bits='960' id='1d16a23c'>
+        <subrange length='15' type-id='7ff19f0f' id='8484ba73'/>
+      </array-type-def>
+      <pointer-type-def type-id='72a9e98a' size-in-bits='64' id='1d186b8b'/>
+      <qualified-type-def type-id='94e99e8e' const='yes' id='1d1afc2f'/>
+      <function-type size-in-bits='64' id='1d1c42c2'>
+        <parameter type-id='513f51db'/>
+        <parameter type-id='0817f042'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='ff751355' size-in-bits='64' id='1d22b7e5'/>
+      <qualified-type-def type-id='e4992400' const='yes' id='1d22df6b'/>
+      <class-decl name='size_class' size-in-bits='1088' is-struct='yes' visibility='default' filepath='mm/zsmalloc.c' line='200' column='1' id='1d27b1eb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='mm/zsmalloc.c' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fullness_list' type-id='a8e1fb22' visibility='default' filepath='mm/zsmalloc.c' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='size' type-id='95e97e5e' visibility='default' filepath='mm/zsmalloc.c' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='objs_per_zspage' type-id='95e97e5e' visibility='default' filepath='mm/zsmalloc.c' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='pages_per_zspage' type-id='95e97e5e' visibility='default' filepath='mm/zsmalloc.c' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='mm/zsmalloc.c' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='stats' type-id='3097f179' visibility='default' filepath='mm/zsmalloc.c' line='213' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='1d2b3133'>
+        <parameter type-id='74d89ebd'/>
+        <parameter type-id='35078cb9'/>
+        <parameter type-id='249ef586'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='7359adad' size-in-bits='64' id='1d2c2b85'/>
+      <function-type size-in-bits='64' id='1d2f7bf0'>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='watchdog_core_data' size-in-bits='9984' is-struct='yes' visibility='default' filepath='drivers/watchdog/watchdog_core.h' line='40' column='1' id='1d334f81'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='drivers/watchdog/watchdog_core.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='cdev' type-id='22f86351' visibility='default' filepath='drivers/watchdog/watchdog_core.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8384'>
+          <var-decl name='wdd' type-id='7bf5a5e5' visibility='default' filepath='drivers/watchdog/watchdog_core.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8448'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='drivers/watchdog/watchdog_core.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8832'>
+          <var-decl name='last_keepalive' type-id='fbc017ef' visibility='default' filepath='drivers/watchdog/watchdog_core.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8896'>
+          <var-decl name='last_hw_keepalive' type-id='fbc017ef' visibility='default' filepath='drivers/watchdog/watchdog_core.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8960'>
+          <var-decl name='open_deadline' type-id='fbc017ef' visibility='default' filepath='drivers/watchdog/watchdog_core.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9024'>
+          <var-decl name='timer' type-id='b6993efc' visibility='default' filepath='drivers/watchdog/watchdog_core.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='work' type-id='ac165296' visibility='default' filepath='drivers/watchdog/watchdog_core.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9920'>
+          <var-decl name='status' type-id='7359adad' visibility='default' filepath='drivers/watchdog/watchdog_core.h' line='53' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='1d34d2c7'>
+        <parameter type-id='404b1300'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='523f50f8' size-in-bits='64' id='1d36520e'/>
+      <pointer-type-def type-id='bf1e016b' size-in-bits='64' id='1d3bf953'/>
+      <function-type size-in-bits='64' id='1d3d5bb0'>
+        <parameter type-id='eb572b74'/>
+        <parameter type-id='0b6eba4d'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='5be888f0' size-in-bits='64' id='1d4e1b02'/>
+      <function-type size-in-bits='64' id='1d4f5209'>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='72c0e160' const='yes' id='1d663e95'/>
+      <function-type size-in-bits='64' id='1d6846fa'>
+        <parameter type-id='7544e824'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1d6a61e0'>
+        <parameter type-id='70d417ab'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='input_device_id' size-in-bits='1600' is-struct='yes' visibility='default' filepath='include/linux/mod_devicetable.h' line='348' column='1' id='1d6edf8e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='0791d6c8' visibility='default' filepath='include/linux/mod_devicetable.h' line='350' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bustype' type-id='d315442e' visibility='default' filepath='include/linux/mod_devicetable.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='vendor' type-id='d315442e' visibility='default' filepath='include/linux/mod_devicetable.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='product' type-id='d315442e' visibility='default' filepath='include/linux/mod_devicetable.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='version' type-id='d315442e' visibility='default' filepath='include/linux/mod_devicetable.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='evbit' type-id='43f871d4' visibility='default' filepath='include/linux/mod_devicetable.h' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='keybit' type-id='88b5427c' visibility='default' filepath='include/linux/mod_devicetable.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='relbit' type-id='43f871d4' visibility='default' filepath='include/linux/mod_devicetable.h' line='359' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='absbit' type-id='43f871d4' visibility='default' filepath='include/linux/mod_devicetable.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='mscbit' type-id='43f871d4' visibility='default' filepath='include/linux/mod_devicetable.h' line='361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='ledbit' type-id='43f871d4' visibility='default' filepath='include/linux/mod_devicetable.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='sndbit' type-id='43f871d4' visibility='default' filepath='include/linux/mod_devicetable.h' line='363' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='ffbit' type-id='43f0230f' visibility='default' filepath='include/linux/mod_devicetable.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='swbit' type-id='43f871d4' visibility='default' filepath='include/linux/mod_devicetable.h' line='365' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='propbit' type-id='43f871d4' visibility='default' filepath='include/linux/mod_devicetable.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='driver_info' type-id='0791d6c8' visibility='default' filepath='include/linux/mod_devicetable.h' line='368' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='cyclecounter' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/timecounter.h' line='30' column='1' id='1d7ba247'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='read' type-id='57309e07' visibility='default' filepath='include/linux/timecounter.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mask' type-id='91ce1af9' visibility='default' filepath='include/linux/timecounter.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mult' type-id='19c2251e' visibility='default' filepath='include/linux/timecounter.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='shift' type-id='19c2251e' visibility='default' filepath='include/linux/timecounter.h' line='34' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pd_mode_data' size-in-bits='9568' is-struct='yes' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='264' column='1' id='1d816e22'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='svid_index' type-id='95e97e5e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='nsvids' type-id='95e97e5e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='svids' type-id='42c6815a' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='altmodes' type-id='95e97e5e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='altmode_desc' type-id='589abf66' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='269' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='pd_msg_request' filepath='drivers/usb/typec/tcpm/tcpm.c' line='216' column='1' id='1d843e9c'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PD_MSG_NONE' value='0'/>
+        <enumerator name='PD_MSG_CTRL_REJECT' value='1'/>
+        <enumerator name='PD_MSG_CTRL_WAIT' value='2'/>
+        <enumerator name='PD_MSG_CTRL_NOT_SUPP' value='3'/>
+        <enumerator name='PD_MSG_DATA_SINK_CAP' value='4'/>
+        <enumerator name='PD_MSG_DATA_SOURCE_CAP' value='5'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='1d8506ad'>
+        <parameter type-id='cb0dbc3c'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1d86628a'>
+        <parameter type-id='27f3f5d8'/>
+        <parameter type-id='cf29c9b3'/>
+        <parameter type-id='cf29c9b3'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='0e3f80d9'/>
+      </function-type>
+      <qualified-type-def type-id='5a9929eb' const='yes' id='1d8cf482'/>
+      <pointer-type-def type-id='e8300215' size-in-bits='64' id='1d8e5a11'/>
+      <pointer-type-def type-id='4b72b472' size-in-bits='64' id='1d91e688'/>
+      <pointer-type-def type-id='54286388' size-in-bits='64' id='1d94d806'/>
+      <pointer-type-def type-id='f3dc294f' size-in-bits='64' id='1da45ab3'/>
+      <pointer-type-def type-id='f13a9afc' size-in-bits='64' id='1da53a06'/>
+      <typedef-decl name='errseq_t' type-id='19c2251e' filepath='include/linux/errseq.h' line='8' column='1' id='1da55f79'/>
+      <class-decl name='serio_driver' size-in-bits='2112' is-struct='yes' visibility='default' filepath='include/linux/serio.h' line='70' column='1' id='1dad932c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='description' type-id='80f4b756' visibility='default' filepath='include/linux/serio.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='id_table' type-id='3e95668f' visibility='default' filepath='include/linux/serio.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='manual_bind' type-id='b50a4934' visibility='default' filepath='include/linux/serio.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='write_wakeup' type-id='3e5cde94' visibility='default' filepath='include/linux/serio.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='interrupt' type-id='a6d9ffb5' visibility='default' filepath='include/linux/serio.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='connect' type-id='3b070d34' visibility='default' filepath='include/linux/serio.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='reconnect' type-id='88cd8be5' visibility='default' filepath='include/linux/serio.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='fast_reconnect' type-id='88cd8be5' visibility='default' filepath='include/linux/serio.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='disconnect' type-id='3e5cde94' visibility='default' filepath='include/linux/serio.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='cleanup' type-id='3e5cde94' visibility='default' filepath='include/linux/serio.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/serio.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/serio.h' line='86' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='841ff6b5' size-in-bits='64' id='1db22091'/>
+      <pointer-type-def type-id='276427e1' size-in-bits='64' id='1db260e5'/>
+      <class-decl name='v4l2_meta_format' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2315' column='1' id='1db7c88b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dataformat' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='buffersize' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2317' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='u16' type-id='d315442e' filepath='include/asm-generic/int-ll64.h' line='19' column='1' id='1dc6a898'/>
+      <pointer-type-def type-id='c78b7721' size-in-bits='64' id='1dd1747d'/>
+      <pointer-type-def type-id='ff87f3a6' size-in-bits='64' id='1dd33160'/>
+      <function-type size-in-bits='64' id='1de2f9c3'>
+        <parameter type-id='9d57e433'/>
+        <parameter type-id='2e6aa127'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='199208f7' size-in-bits='64' id='1de3f3e7'/>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='488' id='1de7616e'>
+        <subrange length='61' type-id='7ff19f0f' id='b51728a6'/>
+      </array-type-def>
+      <pointer-type-def type-id='476a87f5' size-in-bits='64' id='1df08751'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='82' column='1' id='1df0a5e7' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dce' type-id='8efea9e5' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='modulo' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='window' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='t1' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='t2' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='n2' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='88' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='1df195ce'>
+        <parameter type-id='eeaf504d'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='freq_qos_req_type' filepath='include/linux/pm_qos.h' line='80' column='1' id='1df5cca8'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='FREQ_QOS_MIN' value='1'/>
+        <enumerator name='FREQ_QOS_MAX' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='6ae4638e' size-in-bits='64' id='1e0087b8'/>
+      <class-decl name='thermal_bind_params' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/thermal.h' line='211' column='1' id='1e0c0ad9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cdev' type-id='2feec21f' visibility='default' filepath='include/linux/thermal.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='weight' type-id='95e97e5e' visibility='default' filepath='include/linux/thermal.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='trip_mask' type-id='95e97e5e' visibility='default' filepath='include/linux/thermal.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='binding_limits' type-id='1d2c2b85' visibility='default' filepath='include/linux/thermal.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='match' type-id='911521f6' visibility='default' filepath='include/linux/thermal.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/thermal.h' line='244' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='e5be2360' const='yes' id='1e0de7fb'/>
+      <class-decl name='timekeeper' size-in-bits='2240' is-struct='yes' visibility='default' filepath='include/linux/timekeeper_internal.h' line='92' column='1' id='1e0f9dee'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tkr_mono' type-id='43d797eb' visibility='default' filepath='include/linux/timekeeper_internal.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='tkr_raw' type-id='43d797eb' visibility='default' filepath='include/linux/timekeeper_internal.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='xtime_sec' type-id='91ce1af9' visibility='default' filepath='include/linux/timekeeper_internal.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='ktime_sec' type-id='7359adad' visibility='default' filepath='include/linux/timekeeper_internal.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='wall_to_monotonic' type-id='40a816ad' visibility='default' filepath='include/linux/timekeeper_internal.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='offs_real' type-id='fbc017ef' visibility='default' filepath='include/linux/timekeeper_internal.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='offs_boot' type-id='fbc017ef' visibility='default' filepath='include/linux/timekeeper_internal.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='offs_tai' type-id='fbc017ef' visibility='default' filepath='include/linux/timekeeper_internal.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='tai_offset' type-id='a7832498' visibility='default' filepath='include/linux/timekeeper_internal.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='clock_was_set_seq' type-id='f0981eeb' visibility='default' filepath='include/linux/timekeeper_internal.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='cs_was_changed_seq' type-id='f9b06939' visibility='default' filepath='include/linux/timekeeper_internal.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='next_leap_ktime' type-id='fbc017ef' visibility='default' filepath='include/linux/timekeeper_internal.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='raw_sec' type-id='91ce1af9' visibility='default' filepath='include/linux/timekeeper_internal.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='monotonic_to_boot' type-id='40a816ad' visibility='default' filepath='include/linux/timekeeper_internal.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='cycle_interval' type-id='91ce1af9' visibility='default' filepath='include/linux/timekeeper_internal.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='xtime_interval' type-id='91ce1af9' visibility='default' filepath='include/linux/timekeeper_internal.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='xtime_remainder' type-id='9b7c55ef' visibility='default' filepath='include/linux/timekeeper_internal.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='raw_interval' type-id='91ce1af9' visibility='default' filepath='include/linux/timekeeper_internal.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='ntp_tick' type-id='91ce1af9' visibility='default' filepath='include/linux/timekeeper_internal.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='ntp_error' type-id='9b7c55ef' visibility='default' filepath='include/linux/timekeeper_internal.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='ntp_error_shift' type-id='19c2251e' visibility='default' filepath='include/linux/timekeeper_internal.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2144'>
+          <var-decl name='ntp_err_mult' type-id='19c2251e' visibility='default' filepath='include/linux/timekeeper_internal.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='skip_second_overflow' type-id='19c2251e' visibility='default' filepath='include/linux/timekeeper_internal.h' line='126' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ethtool_link_ksettings' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/ethtool.h' line='121' column='1' id='1e1b3494'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='7aeccae5' visibility='default' filepath='include/linux/ethtool.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='link_modes' type-id='e7f44045' visibility='default' filepath='include/linux/ethtool.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='lanes' type-id='19c2251e' visibility='default' filepath='include/linux/ethtool.h' line='128' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='input_mt_pos' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/input/mt.h' line='119' column='1' id='1e25d1dc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='x' type-id='9b7e9486' visibility='default' filepath='include/linux/input/mt.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='y' type-id='9b7e9486' visibility='default' filepath='include/linux/input/mt.h' line='120' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e8cfb72d' size-in-bits='64' id='1e27a121'/>
+      <array-type-def dimensions='2' type-id='8af57d41' size-in-bits='256' id='1e28c56f'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='1e330b13'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='354f7eb9'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1e37318c'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='78a133c2'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1e447ee0'>
+        <parameter type-id='e9b5d134'/>
+        <parameter type-id='ffef58ec'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1e4a1386'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='2451ca6c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='vb2_ops' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/media/videobuf2-core.h' line='421' column='1' id='1e4ac06a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='queue_setup' type-id='f4ef52eb' visibility='default' filepath='include/media/videobuf2-core.h' line='422' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wait_prepare' type-id='d2e04e44' visibility='default' filepath='include/media/videobuf2-core.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='wait_finish' type-id='d2e04e44' visibility='default' filepath='include/media/videobuf2-core.h' line='427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='buf_out_validate' type-id='85280418' visibility='default' filepath='include/media/videobuf2-core.h' line='429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='buf_init' type-id='85280418' visibility='default' filepath='include/media/videobuf2-core.h' line='430' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='buf_prepare' type-id='85280418' visibility='default' filepath='include/media/videobuf2-core.h' line='431' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='buf_finish' type-id='547e4f07' visibility='default' filepath='include/media/videobuf2-core.h' line='432' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='buf_cleanup' type-id='547e4f07' visibility='default' filepath='include/media/videobuf2-core.h' line='433' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='start_streaming' type-id='15bfa933' visibility='default' filepath='include/media/videobuf2-core.h' line='435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='stop_streaming' type-id='d2e04e44' visibility='default' filepath='include/media/videobuf2-core.h' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='buf_queue' type-id='547e4f07' visibility='default' filepath='include/media/videobuf2-core.h' line='438' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='buf_request_complete' type-id='547e4f07' visibility='default' filepath='include/media/videobuf2-core.h' line='440' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='rfkill_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/rfkill.h' line='61' column='1' id='1e4ae69e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='poll' type-id='d78909c6' visibility='default' filepath='include/linux/rfkill.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='query' type-id='d78909c6' visibility='default' filepath='include/linux/rfkill.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='set_block' type-id='f08d4e50' visibility='default' filepath='include/linux/rfkill.h' line='64' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9eb7236e' size-in-bits='64' id='1e4c840c'/>
+      <qualified-type-def type-id='37ce495e' const='yes' id='1e6236d9'/>
+      <function-type size-in-bits='64' id='1e6604d7'>
+        <parameter type-id='85535682'/>
+        <parameter type-id='5de22dda'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='devlink_trap_action' filepath='include/uapi/linux/devlink.h' line='282' column='1' id='1e6bdea2'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEVLINK_TRAP_ACTION_DROP' value='0'/>
+        <enumerator name='DEVLINK_TRAP_ACTION_TRAP' value='1'/>
+        <enumerator name='DEVLINK_TRAP_ACTION_MIRROR' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='09d9fab9' size-in-bits='64' id='1e6beae1'/>
+      <array-type-def dimensions='1' type-id='8f92235e' size-in-bits='320' id='1e6c0b80'>
+        <subrange length='10' type-id='7ff19f0f' id='487da03a'/>
+      </array-type-def>
+      <pointer-type-def type-id='cf7993c1' size-in-bits='64' id='1e6fe389'/>
+      <function-type size-in-bits='64' id='1e828e67'>
+        <parameter type-id='85196e3f'/>
+        <parameter type-id='92fc8aa5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='6356717b' size-in-bits='64' id='1e82f767'/>
+      <function-type size-in-bits='64' id='1e91d6cd'>
+        <parameter type-id='5dbfcbb1'/>
+        <return type-id='19c2251e'/>
+      </function-type>
+      <pointer-type-def type-id='152cd1b0' size-in-bits='64' id='1ea237a6'/>
+      <pointer-type-def type-id='9441bb37' size-in-bits='64' id='1ea8c5af'/>
+      <qualified-type-def type-id='84ba3262' const='yes' id='1ea91ded'/>
+      <pointer-type-def type-id='7fb4efa5' size-in-bits='64' id='1eac8fa1'/>
+      <pointer-type-def type-id='6ceb7782' size-in-bits='64' id='1ead5d78'/>
+      <pointer-type-def type-id='65833184' size-in-bits='64' id='1eb35fe2'/>
+      <type-decl name='long long int' size-in-bits='64' id='1eb56b1e'/>
+      <class-decl name='drm_prime_file_private' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/drm/drm_prime.h' line='45' column='1' id='1eb5bd59'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/drm/drm_prime.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dmabufs' type-id='dec44472' visibility='default' filepath='include/drm/drm_prime.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='handles' type-id='dec44472' visibility='default' filepath='include/drm/drm_prime.h' line='49' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='76a6d6f8' const='yes' id='1ec04219'/>
+      <qualified-type-def type-id='d334c4a2' const='yes' id='1ec1e54d'/>
+      <pointer-type-def type-id='ed84f24e' size-in-bits='64' id='1ec7f524'/>
+      <pointer-type-def type-id='1beae906' size-in-bits='64' id='1ecd1044'/>
+      <pointer-type-def type-id='2922fb19' size-in-bits='64' id='1ed1e4cd'/>
+      <pointer-type-def type-id='76959226' size-in-bits='64' id='1ed3660c'/>
+      <class-decl name='iphdr' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/ip.h' line='87' column='1' id='1edbefa6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ihl' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4'>
+          <var-decl name='version' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='tos' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='tot_len' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ip.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='id' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ip.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='frag_off' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ip.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ttl' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='protocol' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='check' type-id='7dac1e36' visibility='default' filepath='include/uapi/linux/ip.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='saddr' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ip.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='daddr' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ip.h' line='105' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='1edc0ccb'>
+        <parameter type-id='58ed56f5'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1ee07c27'>
+        <parameter type-id='503ff1ba'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='9f5ca0a3' size-in-bits='64' id='1ee0b597'/>
+      <class-decl name='usb_udc' size-in-bits='7616' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/udc/core.c' line='39' column='1' id='1ee0d0f0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='driver' type-id='9762ede1' visibility='default' filepath='drivers/usb/gadget/udc/core.c' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='gadget' type-id='49a58c0c' visibility='default' filepath='drivers/usb/gadget/udc/core.c' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='drivers/usb/gadget/udc/core.c' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='drivers/usb/gadget/udc/core.c' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='vbus' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/udc/core.c' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7560'>
+          <var-decl name='started' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/udc/core.c' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8e3bf7d2' size-in-bits='64' id='1ee1b664'/>
+      <function-type size-in-bits='64' id='1ee46c97'>
+        <parameter type-id='e7d2a5fc'/>
+        <parameter type-id='3dad1a48'/>
+        <parameter type-id='6bb0a326'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='1d22df6b' size-in-bits='64' id='1ee57353'/>
+      <function-type size-in-bits='64' id='1ee59844'>
+        <parameter type-id='b88dd945'/>
+        <parameter type-id='a42536cd'/>
+        <parameter type-id='02f11ed4'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='devlink_health_reporter_state' filepath='include/net/devlink.h' line='694' column='1' id='1eecc5c0'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEVLINK_HEALTH_REPORTER_STATE_HEALTHY' value='0'/>
+        <enumerator name='DEVLINK_HEALTH_REPORTER_STATE_ERROR' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='f22acab5' size-in-bits='64' id='1f00e9c1'/>
+      <class-decl name='usb_ss_ep_comp_descriptor' size-in-bits='48' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='689' column='1' id='1f03d7fe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='690' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='691' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bMaxBurst' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='693' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bmAttributes' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='694' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='wBytesPerInterval' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='695' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='1e4ac06a' const='yes' id='1f063fe1'/>
+      <class-decl name='dw_pcie' size-in-bits='3392' is-struct='yes' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='261' column='1' id='1f13c53a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dbi_base' type-id='eaa32e2f' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dbi_base2' type-id='eaa32e2f' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='atu_base' type-id='eaa32e2f' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='atu_size' type-id='b59d7dce' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='num_ib_windows' type-id='19c2251e' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='num_ob_windows' type-id='19c2251e' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='pp' type-id='69ba9ebc' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='ep' type-id='6d93aa3a' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='ops' type-id='60824330' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='version' type-id='f0981eeb' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3296'>
+          <var-decl name='num_lanes' type-id='95e97e5e' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='link_gen' type-id='95e97e5e' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3360'>
+          <var-decl name='n_fts' type-id='cf114704' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3376'>
+          <var-decl name='iatu_unroll_enabled' type-id='b50a4934' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3377'>
+          <var-decl name='io_cfg_atu_shared' type-id='b50a4934' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='278' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='skb_free_reason' filepath='include/linux/netdevice.h' line='4016' column='1' id='1f17c6b4'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SKB_REASON_CONSUMED' value='0'/>
+        <enumerator name='SKB_REASON_DROPPED' value='1'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='1f17d624'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='7292109c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='iommu_fault' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/uapi/linux/iommu.h' line='115' column='1' id='1f190221'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='padding' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab5e7' visibility='default' filepath='include/uapi/linux/iommu.h' line='118' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='1008' id='1f1c2468'>
+        <subrange length='126' type-id='7ff19f0f' id='1ad3f470'/>
+      </array-type-def>
+      <pointer-type-def type-id='a286a01c' size-in-bits='64' id='1f1dd1be'/>
+      <function-type size-in-bits='64' id='1f1ec116'>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='91ce1af9'/>
+      </function-type>
+      <pointer-type-def type-id='5d1d7263' size-in-bits='64' id='1f211d93'/>
+      <pointer-type-def type-id='ae89b201' size-in-bits='64' id='1f2a8949'/>
+      <class-decl name='typec_capability' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/usb/typec.h' line='249' column='1' id='1f2b9a61'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='0a19b04e' visibility='default' filepath='include/linux/usb/typec.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='data' type-id='89aae82e' visibility='default' filepath='include/linux/usb/typec.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='revision' type-id='1dc6a898' visibility='default' filepath='include/linux/usb/typec.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='pd_revision' type-id='1dc6a898' visibility='default' filepath='include/linux/usb/typec.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='svdm_version' type-id='664a29a4' visibility='default' filepath='include/linux/usb/typec.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='prefer_role' type-id='95e97e5e' visibility='default' filepath='include/linux/usb/typec.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='accessory' type-id='ee8e0be0' visibility='default' filepath='include/linux/usb/typec.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='orientation_aware' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/typec.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='fwnode' type-id='4a935625' visibility='default' filepath='include/linux/usb/typec.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb/typec.h' line='260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ops' type-id='ebbbab1e' visibility='default' filepath='include/linux/usb/typec.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/typec.h' line='263' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='neigh_hash_table' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/net/neighbour.h' line='192' column='1' id='1f305e7e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hash_buckets' type-id='104977a4' visibility='default' filepath='include/net/neighbour.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hash_shift' type-id='f0981eeb' visibility='default' filepath='include/net/neighbour.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='hash_rnd' type-id='3fa29bab' visibility='default' filepath='include/net/neighbour.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/neighbour.h' line='196' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='1f31ad12'>
+        <parameter type-id='02913b69'/>
+        <parameter type-id='51bb592e'/>
+        <parameter type-id='aded214c'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='13be673b' size-in-bits='64' id='1f370097'/>
+      <pointer-type-def type-id='8bff8096' size-in-bits='64' id='1f37a7f4'/>
+      <qualified-type-def type-id='40980961' const='yes' id='1f3f0f56'/>
+      <union-decl name='nf_conntrack_proto' size-in-bits='512' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='34' column='1' id='1f42e327'>
+        <data-member access='public'>
+          <var-decl name='dccp' type-id='f0e59128' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='sctp' type-id='6bb7a9ad' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='tcp' type-id='3ffb049e' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='udp' type-id='21861431' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='gre' type-id='0b2cc27e' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='tmpl_padto' type-id='f0981eeb' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='41' column='1'/>
+        </data-member>
+      </union-decl>
+      <pointer-type-def type-id='98408d8f' size-in-bits='64' id='1f42ef53'/>
+      <pointer-type-def type-id='7b5435ce' size-in-bits='64' id='1f4b5d14'/>
+      <pointer-type-def type-id='792f7033' size-in-bits='64' id='1f51f8f7'/>
+      <qualified-type-def type-id='c0d13b05' const='yes' id='1f54f780'/>
+      <class-decl name='ufs_query_req' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='546' column='1' id='1f574743'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='query_func' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='547' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='upiu_req' type-id='5fc79e81' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='548' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b17e4f4d' size-in-bits='64' id='1f6324ad'/>
+      <pointer-type-def type-id='b99a3102' size-in-bits='64' id='1f6f58f4'/>
+      <function-type size-in-bits='64' id='1f6f7940'>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='8a1ce1f9' size-in-bits='64' id='1f7349e5'/>
+      <function-type size-in-bits='64' id='1f765c33'>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='363a995e'/>
+        <parameter type-id='1c936db9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='iommu_domain_geometry' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/iommu.h' line='65' column='1' id='1f78af0c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='aperture_start' type-id='cf29c9b3' visibility='default' filepath='include/linux/iommu.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='aperture_end' type-id='cf29c9b3' visibility='default' filepath='include/linux/iommu.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='force_aperture' type-id='b50a4934' visibility='default' filepath='include/linux/iommu.h' line='68' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='53c2644d' size-in-bits='64' id='1f78bfb9'/>
+      <function-type size-in-bits='64' id='1f79c412'>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='1c936db9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='1f79e9b9'>
+        <parameter type-id='226853d2'/>
+        <parameter type-id='af02a266'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='power_supply_usb_type' filepath='include/linux/power_supply.h' line='199' column='1' id='1f7f0095'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='POWER_SUPPLY_USB_TYPE_UNKNOWN' value='0'/>
+        <enumerator name='POWER_SUPPLY_USB_TYPE_SDP' value='1'/>
+        <enumerator name='POWER_SUPPLY_USB_TYPE_DCP' value='2'/>
+        <enumerator name='POWER_SUPPLY_USB_TYPE_CDP' value='3'/>
+        <enumerator name='POWER_SUPPLY_USB_TYPE_ACA' value='4'/>
+        <enumerator name='POWER_SUPPLY_USB_TYPE_C' value='5'/>
+        <enumerator name='POWER_SUPPLY_USB_TYPE_PD' value='6'/>
+        <enumerator name='POWER_SUPPLY_USB_TYPE_PD_DRP' value='7'/>
+        <enumerator name='POWER_SUPPLY_USB_TYPE_PD_PPS' value='8'/>
+        <enumerator name='POWER_SUPPLY_USB_TYPE_APPLE_BRICK_ID' value='9'/>
+      </enum-decl>
+      <pointer-type-def type-id='72790540' size-in-bits='64' id='1f7f0216'/>
+      <class-decl name='v4l2_ctrl_vp8_frame' size-in-bits='9856' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1838' column='1' id='1f8b1638'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='segment' type-id='1bb3a9a2' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1839' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lf' type-id='432f664a' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1840' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='quant' type-id='32f31fe8' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1841' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='entropy' type-id='9f39f18e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1842' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9152'>
+          <var-decl name='coder_state' type-id='e65ce076' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1843' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9184'>
+          <var-decl name='width' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1845' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9200'>
+          <var-decl name='height' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1846' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9216'>
+          <var-decl name='horizontal_scale' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1848' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9224'>
+          <var-decl name='vertical_scale' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1849' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9232'>
+          <var-decl name='version' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1851' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9240'>
+          <var-decl name='prob_skip_false' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1852' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9248'>
+          <var-decl name='prob_intra' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1853' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9256'>
+          <var-decl name='prob_last' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1854' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9264'>
+          <var-decl name='prob_gf' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1855' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9272'>
+          <var-decl name='num_dct_parts' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1856' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9280'>
+          <var-decl name='first_part_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1858' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9312'>
+          <var-decl name='first_part_header_bits' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1859' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='dct_part_sizes' type-id='7f84eb57' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1860' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='last_frame_ts' type-id='d3130597' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1862' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9664'>
+          <var-decl name='golden_frame_ts' type-id='d3130597' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1863' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9728'>
+          <var-decl name='alt_frame_ts' type-id='d3130597' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1864' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9792'>
+          <var-decl name='flags' type-id='d3130597' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1866' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='da58161d' const='yes' id='1f8d2f66'/>
+      <class-decl name='ethtool_flash' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1234' column='1' id='1f90162b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='region' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='e3204322' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1237' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='icmpv6msg_mib' size-in-bits='32768' is-struct='yes' visibility='default' filepath='include/net/snmp.h' line='81' column='1' id='1f91fd06'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mibs' type-id='61cd76ae' visibility='default' filepath='include/net/snmp.h' line='82' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a628efab' size-in-bits='64' id='1f93431f'/>
+      <pointer-type-def type-id='be8f4983' size-in-bits='64' id='1f98c663'/>
+      <class-decl name='gnet_stats_basic_packed' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/gen_stats.h' line='11' column='1' id='1f9b1a31'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bytes' type-id='d3130597' visibility='default' filepath='include/net/gen_stats.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='packets' type-id='d3130597' visibility='default' filepath='include/net/gen_stats.h' line='13' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f23d64e3' size-in-bits='64' id='1fa5a86b'/>
+      <pointer-type-def type-id='98e1bfb4' size-in-bits='64' id='1fba25e2'/>
+      <function-type size-in-bits='64' id='1fbc513b'>
+        <parameter type-id='15b1f129'/>
+        <parameter type-id='741cc96e'/>
+        <parameter type-id='741cc96e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='uio_device' size-in-bits='8320' is-struct='yes' visibility='default' filepath='include/linux/uio_driver.h' line='70' column='1' id='1fbf855f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/uio_driver.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/uio_driver.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='minor' type-id='95e97e5e' visibility='default' filepath='include/linux/uio_driver.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7392'>
+          <var-decl name='event' type-id='49178f86' visibility='default' filepath='include/linux/uio_driver.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='async_queue' type-id='5bb9c75d' visibility='default' filepath='include/linux/uio_driver.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='wait' type-id='b5ab048f' visibility='default' filepath='include/linux/uio_driver.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='info' type-id='fb1092f1' visibility='default' filepath='include/linux/uio_driver.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='info_lock' type-id='925167dc' visibility='default' filepath='include/linux/uio_driver.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='map_dir' type-id='d30bdc51' visibility='default' filepath='include/linux/uio_driver.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='portio_dir' type-id='d30bdc51' visibility='default' filepath='include/linux/uio_driver.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/uio_driver.h' line='82' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='resource_table' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/remoteproc.h' line='73' column='1' id='1fc04c6a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ver' type-id='19c2251e' visibility='default' filepath='include/linux/remoteproc.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='num' type-id='19c2251e' visibility='default' filepath='include/linux/remoteproc.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reserved' type-id='1872161b' visibility='default' filepath='include/linux/remoteproc.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='offset' type-id='c165e8b9' visibility='default' filepath='include/linux/remoteproc.h' line='77' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4dfbfd80' size-in-bits='64' id='1fc306e2'/>
+      <array-type-def dimensions='1' type-id='2448a865' size-in-bits='96' id='1fc64662'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='1fc85394'>
+        <parameter type-id='26deddb9'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c6b3a279' size-in-bits='64' id='1fc888a9'/>
+      <function-type size-in-bits='64' id='1fc93694'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='1eb56b1e' size-in-bits='4096' id='1fd26250'>
+        <subrange length='64' type-id='7ff19f0f' id='b10be967'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='95e97e5e' size-in-bits='infinite' id='1fdc7fa6'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='984b30c5' size-in-bits='64' id='1ff48951'/>
+      <pointer-type-def type-id='18fcefa9' size-in-bits='64' id='1ff54a45'/>
+      <pointer-type-def type-id='d7e67a0f' size-in-bits='64' id='1ff74483'/>
+      <class-decl name='ieee80211_sband_iftype_data' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='430' column='1' id='1ffb3281'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='types_mask' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='431' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='he_cap' type-id='0056bfcb' visibility='default' filepath='include/net/cfg80211.h' line='432' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='456'>
+          <var-decl name='he_6ghz_capa' type-id='192864a5' visibility='default' filepath='include/net/cfg80211.h' line='433' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='472'>
+          <var-decl name='eht_cap' type-id='203c24ad' visibility='default' filepath='include/net/cfg80211.h' line='434' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='vendor_elems' type-id='e7f44074' visibility='default' filepath='include/net/cfg80211.h' line='438' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='440' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='442' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='447' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='448' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='20047fcf'>
+        <parameter type-id='b26c7631'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='200520c4'>
+        <parameter type-id='9f763fd8'/>
+        <parameter type-id='85e33ca3'/>
+        <parameter type-id='dd75e72e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='3490ee41' size-in-bits='64' id='200ffa89'/>
+      <pointer-type-def type-id='a721b4ab' size-in-bits='64' id='20174b1f'/>
+      <function-type size-in-bits='64' id='201ffa8e'>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='1c936db9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='95e97e5e' size-in-bits='128' id='2020bac4'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <pointer-type-def type-id='572fbdca' size-in-bits='64' id='2027e7a0'/>
+      <function-type size-in-bits='64' id='202c5914'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='7b332e1c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='202f00af'>
+        <parameter type-id='13103032'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='7292109c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d921fc28' size-in-bits='64' id='203080e2'/>
+      <function-type size-in-bits='64' id='20332031'>
+        <parameter type-id='419266fd'/>
+        <return type-id='19c2251e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='20396099'>
+        <parameter type-id='1d2c2b85'/>
+        <parameter type-id='1d2c2b85'/>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='203c1d4d'>
+        <parameter type-id='a47d3467'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ieee80211_sta_eht_cap' size-in-bits='424' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='407' column='1' id='203c24ad'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='has_eht' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='408' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='eht_cap_elem' type-id='54db3447' visibility='default' filepath='include/net/cfg80211.h' line='409' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='eht_mcs_nss_supp' type-id='ae96296b' visibility='default' filepath='include/net/cfg80211.h' line='410' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='168'>
+          <var-decl name='eht_ppe_thres' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='411' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d2f6c36f' size-in-bits='64' id='203d9a9b'/>
+      <qualified-type-def type-id='ca8c574c' const='yes' id='20400679'/>
+      <class-decl name='typec_mux' size-in-bits='7424' is-struct='yes' visibility='default' filepath='drivers/usb/typec/mux.h' line='15' column='1' id='20494abb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='drivers/usb/typec/mux.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='set' type-id='43788717' visibility='default' filepath='drivers/usb/typec/mux.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/usb/typec/mux.h' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='128d0ac4' size-in-bits='64' id='204a4632'/>
+      <function-type size-in-bits='64' id='205059e2'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='ab38066e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/dmaengine.h' line='231' column='1' id='20526710' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bits' type-id='f066dd3c' visibility='default' filepath='include/linux/dmaengine.h' line='231' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fc2007cc' size-in-bits='64' id='2058826a'/>
+      <typedef-decl name='vring_desc_t' type-id='f0783229' filepath='include/uapi/linux/virtio_ring.h' line='146' column='1' id='2058bc87'/>
+      <class-decl name='v4l2_ctrl_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/media/v4l2-ctrls.h' line='120' column='1' id='205c2e40'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='g_volatile_ctrl' type-id='4e4de503' visibility='default' filepath='include/media/v4l2-ctrls.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='try_ctrl' type-id='4e4de503' visibility='default' filepath='include/media/v4l2-ctrls.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='s_ctrl' type-id='4e4de503' visibility='default' filepath='include/media/v4l2-ctrls.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/media/v4l2-ctrls.h' line='125' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='20638bb4'>
+        <parameter type-id='74d89ebd'/>
+        <parameter type-id='4db02c58'/>
+        <return type-id='f7b0e1b4'/>
+      </function-type>
+      <pointer-type-def type-id='54544021' size-in-bits='64' id='20644ce5'/>
+      <pointer-type-def type-id='47ebc9bd' size-in-bits='64' id='2064eae9'/>
+      <class-decl name='snd_dmaengine_dai_dma_data' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='73' column='1' id='206899b8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='cf29c9b3' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='addr_width' type-id='270e7659' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='maxburst' type-id='19c2251e' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='slave_id' type-id='f0981eeb' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='filter_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='chan_name' type-id='80f4b756' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='fifo_size' type-id='f0981eeb' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='peripheral_config' type-id='eaa32e2f' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='peripheral_size' type-id='b59d7dce' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='83' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='2078be8d'>
+        <parameter type-id='8582e5ec'/>
+        <parameter type-id='f3b1f9bd'/>
+        <parameter type-id='745b39e8'/>
+        <return type-id='4fb62cb0'/>
+      </function-type>
+      <pointer-type-def type-id='be9adbe3' size-in-bits='64' id='2080bed3'/>
+      <pointer-type-def type-id='64ec45e8' size-in-bits='64' id='2080d6f2'/>
+      <qualified-type-def type-id='bcc5cab3' const='yes' id='208298e3'/>
+      <pointer-type-def type-id='e57536d9' size-in-bits='64' id='20862e61'/>
+      <typedef-decl name='mmc_pm_flag_t' type-id='f0981eeb' filepath='include/linux/mmc/pm.h' line='22' column='1' id='208a5a8d'/>
+      <class-decl name='cipher_alg' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/crypto.h' line='243' column='1' id='208c9717'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cia_min_keysize' type-id='f0981eeb' visibility='default' filepath='include/linux/crypto.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='cia_max_keysize' type-id='f0981eeb' visibility='default' filepath='include/linux/crypto.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cia_setkey' type-id='b201adb8' visibility='default' filepath='include/linux/crypto.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cia_encrypt' type-id='f76f0ea4' visibility='default' filepath='include/linux/crypto.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cia_decrypt' type-id='f76f0ea4' visibility='default' filepath='include/linux/crypto.h' line='249' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='20919507'>
+        <parameter type-id='9f763fd8'/>
+        <parameter type-id='670156c6'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f089a11b' size-in-bits='64' id='20950ec7'/>
+      <pointer-type-def type-id='62f14019' size-in-bits='64' id='20974125'/>
+      <pointer-type-def type-id='6a003ee8' size-in-bits='64' id='209d601e'/>
+      <pointer-type-def type-id='b32e5b88' size-in-bits='64' id='209ddc8a'/>
+      <array-type-def dimensions='1' type-id='eaa32e2f' size-in-bits='256' id='209ef23f'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='91ce1af9' size-in-bits='192' id='20a130cf'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <pointer-type-def type-id='c6077113' size-in-bits='64' id='20a1c8e7'/>
+      <typedef-decl name='perf_overflow_handler_t' type-id='a8564695' filepath='include/linux/perf_event.h' line='579' column='1' id='20a2e4e6'/>
+      <function-type size-in-bits='64' id='20a7e419'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='bd54fe1a'/>
+      </function-type>
+      <function-type size-in-bits='64' id='20affdf3'>
+        <parameter type-id='a970a64c'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='5218160d' const='yes' id='20b17040'/>
+      <function-type size-in-bits='64' id='20b2126a'>
+        <parameter type-id='10216dc5'/>
+        <parameter type-id='e7faa6fb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='91ce1af9' size-in-bits='256' id='20b279f0'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <class-decl name='regmap_config' size-in-bits='2304' is-struct='yes' visibility='default' filepath='include/linux/regmap.h' line='359' column='1' id='20b6fd7c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/regmap.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reg_bits' type-id='95e97e5e' visibility='default' filepath='include/linux/regmap.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='reg_stride' type-id='95e97e5e' visibility='default' filepath='include/linux/regmap.h' line='363' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pad_bits' type-id='95e97e5e' visibility='default' filepath='include/linux/regmap.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='val_bits' type-id='95e97e5e' visibility='default' filepath='include/linux/regmap.h' line='365' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='writeable_reg' type-id='8e565e6d' visibility='default' filepath='include/linux/regmap.h' line='367' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='readable_reg' type-id='8e565e6d' visibility='default' filepath='include/linux/regmap.h' line='368' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='volatile_reg' type-id='8e565e6d' visibility='default' filepath='include/linux/regmap.h' line='369' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='precious_reg' type-id='8e565e6d' visibility='default' filepath='include/linux/regmap.h' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='writeable_noinc_reg' type-id='8e565e6d' visibility='default' filepath='include/linux/regmap.h' line='371' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='readable_noinc_reg' type-id='8e565e6d' visibility='default' filepath='include/linux/regmap.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='disable_locking' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='374' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='lock' type-id='a4d5c862' visibility='default' filepath='include/linux/regmap.h' line='375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='unlock' type-id='cf202c75' visibility='default' filepath='include/linux/regmap.h' line='376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='lock_arg' type-id='eaa32e2f' visibility='default' filepath='include/linux/regmap.h' line='377' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='reg_read' type-id='4893ffdf' visibility='default' filepath='include/linux/regmap.h' line='379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='reg_write' type-id='db7eb22d' visibility='default' filepath='include/linux/regmap.h' line='380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='reg_update_bits' type-id='3a0b4ecf' visibility='default' filepath='include/linux/regmap.h' line='381' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='fast_io' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='384' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='max_register' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='wr_table' type-id='76a7b3fe' visibility='default' filepath='include/linux/regmap.h' line='387' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='rd_table' type-id='76a7b3fe' visibility='default' filepath='include/linux/regmap.h' line='388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='volatile_table' type-id='76a7b3fe' visibility='default' filepath='include/linux/regmap.h' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='precious_table' type-id='76a7b3fe' visibility='default' filepath='include/linux/regmap.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='wr_noinc_table' type-id='76a7b3fe' visibility='default' filepath='include/linux/regmap.h' line='391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='rd_noinc_table' type-id='76a7b3fe' visibility='default' filepath='include/linux/regmap.h' line='392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='reg_defaults' type-id='4825f6ba' visibility='default' filepath='include/linux/regmap.h' line='393' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='num_reg_defaults' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='394' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='cache_type' type-id='6e1356fd' visibility='default' filepath='include/linux/regmap.h' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='reg_defaults_raw' type-id='eaa32e2f' visibility='default' filepath='include/linux/regmap.h' line='396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='num_reg_defaults_raw' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='397' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='read_flag_mask' type-id='7359adad' visibility='default' filepath='include/linux/regmap.h' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='write_flag_mask' type-id='7359adad' visibility='default' filepath='include/linux/regmap.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='zero_flag_mask' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1864'>
+          <var-decl name='use_single_read' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='403' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1872'>
+          <var-decl name='use_single_write' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1880'>
+          <var-decl name='use_relaxed_mmio' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1888'>
+          <var-decl name='can_multi_write' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='reg_format_endian' type-id='e8a9ba7e' visibility='default' filepath='include/linux/regmap.h' line='408' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1952'>
+          <var-decl name='val_format_endian' type-id='e8a9ba7e' visibility='default' filepath='include/linux/regmap.h' line='409' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='ranges' type-id='cf08cac3' visibility='default' filepath='include/linux/regmap.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='num_ranges' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2080'>
+          <var-decl name='use_hwlock' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2088'>
+          <var-decl name='use_raw_spinlock' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='415' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='hwlock_id' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='416' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2144'>
+          <var-decl name='hwlock_mode' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='417' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='can_sleep' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/regmap.h' line='421' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8faea462' size-in-bits='64' id='20b86b00'/>
+      <pointer-type-def type-id='f65c27ec' size-in-bits='64' id='20b881b6'/>
+      <class-decl name='macsec_tx_sc_stats' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/macsec.h' line='84' column='1' id='20c96a5d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='OutPktsProtected' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='OutPktsEncrypted' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='OutOctetsProtected' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='OutOctetsEncrypted' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='88' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2c09b409' size-in-bits='64' id='20cd282d'/>
+      <function-type size-in-bits='64' id='20cd6817'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='3abbb22e' const='yes' id='20ce14f5'/>
+      <class-decl name='v4l2_create_buffers' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2505' column='1' id='20d04fee'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='count' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2507' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='memory' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2508' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='format' type-id='0a5711c9' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2509' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='capabilities' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2510' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1824'>
+          <var-decl name='reserved' type-id='3faaea70' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2511' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='20d6a08a'>
+        <parameter type-id='88a6d23d'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='6f52f27f' size-in-bits='64' id='20da830b'/>
+      <pointer-type-def type-id='1e0de7fb' size-in-bits='64' id='20e3ee03'/>
+      <pointer-type-def type-id='ba9f6db4' size-in-bits='64' id='20e4b16e'/>
+      <class-decl name='ptr_ring' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/linux/ptr_ring.h' line='30' column='1' id='20ea7550'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='producer' type-id='95e97e5e' visibility='default' filepath='include/linux/ptr_ring.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='producer_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/ptr_ring.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='consumer_head' type-id='95e97e5e' visibility='default' filepath='include/linux/ptr_ring.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='consumer_tail' type-id='95e97e5e' visibility='default' filepath='include/linux/ptr_ring.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='consumer_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/ptr_ring.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='size' type-id='95e97e5e' visibility='default' filepath='include/linux/ptr_ring.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='batch' type-id='95e97e5e' visibility='default' filepath='include/linux/ptr_ring.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='queue' type-id='63e171df' visibility='default' filepath='include/linux/ptr_ring.h' line='40' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='utp_transfer_req_desc' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='468' column='1' id='20f0d8ff'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='header' type-id='746bbed6' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='471' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='command_desc_base_addr_lo' type-id='2f162548' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='474' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='command_desc_base_addr_hi' type-id='2f162548' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='475' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='response_upiu_length' type-id='23119536' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='478' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='response_upiu_offset' type-id='23119536' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='479' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='prd_table_length' type-id='23119536' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='482' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='240'>
+          <var-decl name='prd_table_offset' type-id='23119536' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='483' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='20f1cebe'>
+        <parameter type-id='1c475548'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='f0981eeb' const='yes' id='20f5f452'/>
+      <class-decl name='regmap_range' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/regmap.h' line='201' column='1' id='20f6935f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='range_min' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='range_max' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='203' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a2c297ff' size-in-bits='64' id='20f9ae8b'/>
+      <pointer-type-def type-id='63b32204' size-in-bits='64' id='20fece6a'/>
+      <pointer-type-def type-id='c4126d52' size-in-bits='64' id='210253e8'/>
+      <pointer-type-def type-id='31d2e798' size-in-bits='64' id='2102bd36'/>
+      <pointer-type-def type-id='d10f08e3' size-in-bits='64' id='2108b777'/>
+      <qualified-type-def type-id='ec55eb74' const='yes' id='21109a44'/>
+      <function-type size-in-bits='64' id='2112ee6e'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='07751825'/>
+        <parameter type-id='07751825'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='flowi' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/net/flow.h' line='171' column='1' id='2117397c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='u' type-id='ac5ab675' visibility='default' filepath='include/net/flow.h' line='177' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='26527266' size-in-bits='64' id='211c185c'/>
+      <function-type size-in-bits='64' id='2123ae44'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='bf742373'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ieee80211_txrx_stypes' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5153' column='1' id='21301fc9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tx' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='rx' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5154' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ppp_channel_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/ppp_channel.h' line='25' column='1' id='2134e0b8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start_xmit' type-id='7c56bbaf' visibility='default' filepath='include/linux/ppp_channel.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ioctl' type-id='a7844efb' visibility='default' filepath='include/linux/ppp_channel.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fill_forward_path' type-id='33855068' visibility='default' filepath='include/linux/ppp_channel.h' line='31' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2962e9d2' size-in-bits='64' id='213608e4'/>
+      <pointer-type-def type-id='9d9592f7' size-in-bits='64' id='2136470b'/>
+      <pointer-type-def type-id='b5b9216e' size-in-bits='64' id='21370cb4'/>
+      <qualified-type-def type-id='c4ec4353' const='yes' id='213c3202'/>
+      <function-type size-in-bits='64' id='21419694'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='0200a298'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='2008' id='21519ae8'>
+        <subrange length='251' type-id='7ff19f0f' id='76f157ad'/>
+      </array-type-def>
+      <qualified-type-def type-id='ed6c59ba' const='yes' id='2153cf5d'/>
+      <function-type size-in-bits='64' id='2157493d'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='bf3ef905'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='eea6b025'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='ufs_query_res' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='556' column='1' id='21574a69'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='response' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='557' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='upiu_res' type-id='5fc79e81' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='558' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='9f6de273' const='yes' id='215ec542'/>
+      <pointer-type-def type-id='da729081' size-in-bits='64' id='215f8c45'/>
+      <pointer-type-def type-id='c87333bf' size-in-bits='64' id='21641a6b'/>
+      <pointer-type-def type-id='25cf7d45' size-in-bits='64' id='216753a5'/>
+      <pointer-type-def type-id='d80b72e6' size-in-bits='64' id='2168a3eb'/>
+      <pointer-type-def type-id='ea28efa9' size-in-bits='64' id='21710b39'/>
+      <qualified-type-def type-id='3db54816' const='yes' id='2174d0b5'/>
+      <class-decl name='usb_ext_cap_descriptor' size-in-bits='56' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='895' column='1' id='21767af6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='896' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='897' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bDevCapabilityType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='898' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bmAttributes' type-id='2f162548' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='899' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='217933b7'>
+        <parameter type-id='13103032'/>
+        <parameter type-id='02f11ed4'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='a19d369d' size-in-bits='64' id='217d2215'/>
+      <class-decl name='drm_flip_work' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/drm/drm_flip_work.h' line='73' column='1' id='2181e5cc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/drm/drm_flip_work.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='func' type-id='12758247' visibility='default' filepath='include/drm/drm_flip_work.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='worker' type-id='ef9025d0' visibility='default' filepath='include/drm/drm_flip_work.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='queued' type-id='72f469ec' visibility='default' filepath='include/drm/drm_flip_work.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='commited' type-id='72f469ec' visibility='default' filepath='include/drm/drm_flip_work.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/drm/drm_flip_work.h' line='79' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='hid_driver' size-in-bits='2752' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='752' column='1' id='2185483d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/hid.h' line='753' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='id_table' type-id='f499bd02' visibility='default' filepath='include/linux/hid.h' line='754' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dyn_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='756' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dyn_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/hid.h' line='757' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='match' type-id='5b9f5da4' visibility='default' filepath='include/linux/hid.h' line='759' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='probe' type-id='078f3b94' visibility='default' filepath='include/linux/hid.h' line='760' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='remove' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='761' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='report_table' type-id='2c4d0ce6' visibility='default' filepath='include/linux/hid.h' line='763' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='raw_event' type-id='fe3a6ee7' visibility='default' filepath='include/linux/hid.h' line='764' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='usage_table' type-id='b473f54b' visibility='default' filepath='include/linux/hid.h' line='766' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='event' type-id='8181b8c5' visibility='default' filepath='include/linux/hid.h' line='767' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='report' type-id='e23057dc' visibility='default' filepath='include/linux/hid.h' line='769' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='report_fixup' type-id='a4f4a514' visibility='default' filepath='include/linux/hid.h' line='771' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='input_mapping' type-id='d77ebcbf' visibility='default' filepath='include/linux/hid.h' line='774' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='input_mapped' type-id='d77ebcbf' visibility='default' filepath='include/linux/hid.h' line='777' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='input_configured' type-id='3e9b5e67' visibility='default' filepath='include/linux/hid.h' line='780' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='feature_mapping' type-id='2064eae9' visibility='default' filepath='include/linux/hid.h' line='782' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='suspend' type-id='a4c53922' visibility='default' filepath='include/linux/hid.h' line='786' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='resume' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='787' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='reset_resume' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='788' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/hid.h' line='791' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='nf_ct_udp' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='29' column='1' id='21861431'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='stream_ts' type-id='7359adad' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='21872e57'>
+        <parameter type-id='30864cdc'/>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ppp_channel' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/ppp_channel.h' line='36' column='1' id='21893e8b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='private' type-id='eaa32e2f' visibility='default' filepath='include/linux/ppp_channel.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ops' type-id='d65a12b3' visibility='default' filepath='include/linux/ppp_channel.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mtu' type-id='95e97e5e' visibility='default' filepath='include/linux/ppp_channel.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='hdrlen' type-id='95e97e5e' visibility='default' filepath='include/linux/ppp_channel.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ppp' type-id='eaa32e2f' visibility='default' filepath='include/linux/ppp_channel.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='speed' type-id='95e97e5e' visibility='default' filepath='include/linux/ppp_channel.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='latency' type-id='95e97e5e' visibility='default' filepath='include/linux/ppp_channel.h' line='44' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='event_trigger_type' filepath='include/linux/trace_events.h' line='678' column='1' id='21b4096c'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ETT_NONE' value='0'/>
+        <enumerator name='ETT_TRACE_ONOFF' value='1'/>
+        <enumerator name='ETT_SNAPSHOT' value='2'/>
+        <enumerator name='ETT_STACKTRACE' value='4'/>
+        <enumerator name='ETT_EVENT_ENABLE' value='8'/>
+        <enumerator name='ETT_EVENT_HIST' value='16'/>
+        <enumerator name='ETT_HIST_ENABLE' value='32'/>
+        <enumerator name='ETT_EVENT_EPROBE' value='64'/>
+      </enum-decl>
+      <pointer-type-def type-id='74edcdba' size-in-bits='64' id='21b6f944'/>
+      <pointer-type-def type-id='a70ecbd0' size-in-bits='64' id='21c375e6'/>
+      <qualified-type-def type-id='b545ce08' const='yes' id='21c5156b'/>
+      <class-decl name='touchscreen_properties' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/input/touchscreen.h' line='12' column='1' id='21dfe538'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='max_x' type-id='f0981eeb' visibility='default' filepath='include/linux/input/touchscreen.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='max_y' type-id='f0981eeb' visibility='default' filepath='include/linux/input/touchscreen.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='invert_x' type-id='b50a4934' visibility='default' filepath='include/linux/input/touchscreen.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='invert_y' type-id='b50a4934' visibility='default' filepath='include/linux/input/touchscreen.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='swap_x_y' type-id='b50a4934' visibility='default' filepath='include/linux/input/touchscreen.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='21e2c677'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='6e313ad5'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='2b3f252e' size-in-bits='64' id='21e51c00'/>
+      <pointer-type-def type-id='2f5a60be' size-in-bits='64' id='21e53d44'/>
+      <array-type-def dimensions='1' type-id='acc63fdf' size-in-bits='384' id='21e79dbc'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <pointer-type-def type-id='0ef3e0fd' size-in-bits='64' id='21e9ca19'/>
+      <array-type-def dimensions='1' type-id='b31af340' size-in-bits='2048' id='21edd5c3'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='21f3c22e'>
+        <parameter type-id='2661e0d9'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='21f5310d'>
+        <parameter type-id='6dca061b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='d8e6b335'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='xdp_frame' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/xdp.h' line='114' column='1' id='21f83f61'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/net/xdp.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='len' type-id='1dc6a898' visibility='default' filepath='include/net/xdp.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='headroom' type-id='1dc6a898' visibility='default' filepath='include/net/xdp.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='metasize' type-id='19c2251e' visibility='default' filepath='include/net/xdp.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='frame_sz' type-id='19c2251e' visibility='default' filepath='include/net/xdp.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mem' type-id='1182636e' visibility='default' filepath='include/net/xdp.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dev_rx' type-id='68a2d05b' visibility='default' filepath='include/net/xdp.h' line='124' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='i2c_adapter_quirks' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/i2c.h' line='678' column='1' id='21fe2d6b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='91ce1af9' visibility='default' filepath='include/linux/i2c.h' line='679' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max_num_msgs' type-id='95e97e5e' visibility='default' filepath='include/linux/i2c.h' line='680' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='max_write_len' type-id='1dc6a898' visibility='default' filepath='include/linux/i2c.h' line='681' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='max_read_len' type-id='1dc6a898' visibility='default' filepath='include/linux/i2c.h' line='682' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='max_comb_1st_msg_len' type-id='1dc6a898' visibility='default' filepath='include/linux/i2c.h' line='683' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='max_comb_2nd_msg_len' type-id='1dc6a898' visibility='default' filepath='include/linux/i2c.h' line='684' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0afc6f78' size-in-bits='64' id='2207988a'/>
+      <class-decl name='binder_buffer' size-in-bits='832' is-struct='yes' visibility='default' filepath='drivers/android/binder_alloc.h' line='42' column='1' id='220a7484'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='entry' type-id='72f469ec' visibility='default' filepath='drivers/android/binder_alloc.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rb_node' type-id='2a8a6332' visibility='default' filepath='drivers/android/binder_alloc.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='free' type-id='f0981eeb' visibility='default' filepath='drivers/android/binder_alloc.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='321'>
+          <var-decl name='clear_on_free' type-id='f0981eeb' visibility='default' filepath='drivers/android/binder_alloc.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='322'>
+          <var-decl name='allow_user_free' type-id='f0981eeb' visibility='default' filepath='drivers/android/binder_alloc.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='323'>
+          <var-decl name='async_transaction' type-id='f0981eeb' visibility='default' filepath='drivers/android/binder_alloc.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='324'>
+          <var-decl name='oneway_spam_suspect' type-id='f0981eeb' visibility='default' filepath='drivers/android/binder_alloc.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='325'>
+          <var-decl name='debug_id' type-id='f0981eeb' visibility='default' filepath='drivers/android/binder_alloc.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='transaction' type-id='f4c3bb4c' visibility='default' filepath='drivers/android/binder_alloc.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='target_node' type-id='e6eda12c' visibility='default' filepath='drivers/android/binder_alloc.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='data_size' type-id='b59d7dce' visibility='default' filepath='drivers/android/binder_alloc.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='offsets_size' type-id='b59d7dce' visibility='default' filepath='drivers/android/binder_alloc.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='extra_buffers_size' type-id='b59d7dce' visibility='default' filepath='drivers/android/binder_alloc.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='user_data' type-id='eaa32e2f' visibility='default' filepath='drivers/android/binder_alloc.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='pid' type-id='95e97e5e' visibility='default' filepath='drivers/android/binder_alloc.h' line='60' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='a9cdb48b' const='yes' id='220a92c2'/>
+      <qualified-type-def type-id='47692c1a' const='yes' id='2212bd2d'/>
+      <class-decl name='internal_state' is-struct='yes' visibility='default' is-declaration-only='yes' id='221461a6'/>
+      <pointer-type-def type-id='318c65be' size-in-bits='64' id='22159b04'/>
+      <pointer-type-def type-id='cd6fc142' size-in-bits='64' id='221c3010'/>
+      <pointer-type-def type-id='345f1a5f' size-in-bits='64' id='2227a3ab'/>
+      <pointer-type-def type-id='359a7eea' size-in-bits='64' id='22358840'/>
+      <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='2235a2cb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='b6b7435e' visibility='default' filepath='include/linux/mm_types_task.h' line='61' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='11c8601b' size-in-bits='64' id='223696fb'/>
+      <typedef-decl name='call_single_data_t' type-id='bb75ea85' filepath='include/linux/smp.h' line='33' column='1' id='223a68bd'/>
+      <function-type size-in-bits='64' id='22400b6a'>
+        <parameter type-id='419266fd'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='bpf_offload_dev' is-struct='yes' visibility='default' is-declaration-only='yes' id='22474385'/>
+      <class-decl name='ufs_hba_monitor' size-in-bits='1152' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='752' column='1' id='2251b9ac'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='chunk_size' type-id='7359adad' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='753' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nr_sec_rw' type-id='f05e8e77' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='755' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='total_busy' type-id='2e8fe924' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='756' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='nr_req' type-id='f05e8e77' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='758' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='lat_sum' type-id='2e8fe924' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='760' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='lat_max' type-id='2e8fe924' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='761' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='lat_min' type-id='2e8fe924' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='762' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='nr_queued' type-id='1872161b' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='764' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='busy_start_ts' type-id='2e8fe924' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='765' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='enabled_ts' type-id='fbc017ef' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='767' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='enabled' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='768' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='i3c_ibi_setup' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/i3c/device.h' line='322' column='1' id='225726a9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='max_payload_len' type-id='f0981eeb' visibility='default' filepath='include/linux/i3c/device.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='num_slots' type-id='f0981eeb' visibility='default' filepath='include/linux/i3c/device.h' line='324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='handler' type-id='02e9b998' visibility='default' filepath='include/linux/i3c/device.h' line='325' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8c644de4' size-in-bits='64' id='226853d2'/>
+      <function-type size-in-bits='64' id='226cc4c6'>
+        <parameter type-id='7efbcaaf'/>
+        <parameter type-id='fde1bbcb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='226db88f'>
+        <parameter type-id='1351523a'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='d56a4c4b' size-in-bits='64' id='226f205f'/>
+      <function-type size-in-bits='64' id='2275516b'>
+        <parameter type-id='108dbc98'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='2522883d'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='357e5279' size-in-bits='64' id='227e209d'/>
+      <function-type size-in-bits='64' id='22814d90'>
+        <parameter type-id='94c948ef'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='52afe07b' size-in-bits='64' id='2281d68b'/>
+      <class-decl name='xdp_desc' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/if_xdp.h' line='103' column='1' id='2283cf25'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_xdp.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/if_xdp.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='options' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/if_xdp.h' line='106' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='228968a1'>
+        <parameter type-id='8898134d'/>
+        <parameter type-id='9e99ecc1'/>
+        <parameter type-id='92ed24a5'/>
+        <return type-id='7b332e1c'/>
+      </function-type>
+      <class-decl name='drm_display_info' size-in-bits='1344' is-struct='yes' visibility='default' filepath='include/drm/drm_connector.h' line='477' column='1' id='228c7c6c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='width_mm' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='481' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='height_mm' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bpc' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='491' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='subpixel_order' type-id='a93e6dcd' visibility='default' filepath='include/drm/drm_connector.h' line='496' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='panel_orientation' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_connector.h' line='510' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='color_formats' type-id='19c2251e' visibility='default' filepath='include/drm/drm_connector.h' line='518' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bus_formats' type-id='aded214c' visibility='default' filepath='include/drm/drm_connector.h' line='525' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='num_bus_formats' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='529' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='bus_flags' type-id='19c2251e' visibility='default' filepath='include/drm/drm_connector.h' line='536' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='max_tmds_clock' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_connector.h' line='542' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='dvi_dual' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='547' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='360'>
+          <var-decl name='is_hdmi' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='368'>
+          <var-decl name='has_hdmi_infoframe' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='560' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='376'>
+          <var-decl name='rgb_quant_range_selectable' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='edid_hdmi_rgb444_dc_modes' type-id='f9b06939' visibility='default' filepath='include/drm/drm_connector.h' line='572' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='392'>
+          <var-decl name='edid_hdmi_ycbcr444_dc_modes' type-id='f9b06939' visibility='default' filepath='include/drm/drm_connector.h' line='578' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='400'>
+          <var-decl name='cea_rev' type-id='f9b06939' visibility='default' filepath='include/drm/drm_connector.h' line='583' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='hdmi' type-id='452748b2' visibility='default' filepath='include/drm/drm_connector.h' line='588' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='non_desktop' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='593' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1288'>
+          <var-decl name='monitor_range' type-id='bff38166' visibility='default' filepath='include/drm/drm_connector.h' line='598' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e72c7191' size-in-bits='64' id='2291cc15'/>
+      <pointer-type-def type-id='512813dd' size-in-bits='64' id='2293f1dd'/>
+      <pointer-type-def type-id='77e79a4b' size-in-bits='64' id='229806b3'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='lib/zstd/zstd_internal.h' line='169' column='1' id='229ad09b' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='off' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='len' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='171' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='22a55ca6'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='211c185c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='snd_aes_iec958' size-in-bits='1408' is-struct='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='61' column='1' id='22a78e66'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='status' type-id='25108e54' visibility='default' filepath='include/uapi/sound/asound.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='subcode' type-id='00bc0376' visibility='default' filepath='include/uapi/sound/asound.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1368'>
+          <var-decl name='pad' type-id='002ac4a6' visibility='default' filepath='include/uapi/sound/asound.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='dig_subframe' type-id='09001d3c' visibility='default' filepath='include/uapi/sound/asound.h' line='65' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='aec34ed8' size-in-bits='64' id='22a9463e'/>
+      <pointer-type-def type-id='f308a7ce' size-in-bits='64' id='22aa3c54'/>
+      <pointer-type-def type-id='c4369844' size-in-bits='64' id='22ab35e2'/>
+      <pointer-type-def type-id='07dc6635' size-in-bits='64' id='22ad5849'/>
+      <function-type size-in-bits='64' id='22b04425'>
+        <parameter type-id='27f3f5d8'/>
+        <parameter type-id='e835b5d8'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='b0e7dbd3'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='0e3f80d9'/>
+      </function-type>
+      <class-decl name='virtio_transport' size-in-bits='2240' is-struct='yes' visibility='default' filepath='include/linux/virtio_vsock.h' line='67' column='1' id='22bb2e78'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='transport' type-id='7a801157' visibility='default' filepath='include/linux/virtio_vsock.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='send_pkt' type-id='8c4ea251' visibility='default' filepath='include/linux/virtio_vsock.h' line='72' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6e3d524a' size-in-bits='64' id='22be78e8'/>
+      <pointer-type-def type-id='7e4a9bc8' size-in-bits='64' id='22c37a8a'/>
+      <qualified-type-def type-id='0e2723e7' const='yes' id='22c4fd1a'/>
+      <pointer-type-def type-id='a1d0bf0a' size-in-bits='64' id='22c88c44'/>
+      <enum-decl name='drm_scaling_filter' filepath='include/drm/drm_plane.h' line='38' column='1' id='22cc4642'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DRM_SCALING_FILTER_DEFAULT' value='0'/>
+        <enumerator name='DRM_SCALING_FILTER_NEAREST_NEIGHBOR' value='1'/>
+      </enum-decl>
+      <class-decl name='cpuidle_state_kobj' is-struct='yes' visibility='default' is-declaration-only='yes' id='22d74cfc'/>
+      <function-type size-in-bits='64' id='22ddde2b'>
+        <parameter type-id='5771c601'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='9c1f445d' size-in-bits='64' id='22deb949'/>
+      <class-decl name='devlink_region' size-in-bits='576' is-struct='yes' visibility='default' filepath='net/core/devlink.c' line='426' column='1' id='22e2cc39'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='devlink' type-id='e6b84692' visibility='default' filepath='net/core/devlink.c' line='427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='port' type-id='f41a0030' visibility='default' filepath='net/core/devlink.c' line='428' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='net/core/devlink.c' line='429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='' type-id='ac5ab69c' visibility='default' filepath='net/core/devlink.c' line='430' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='snapshot_list' type-id='72f469ec' visibility='default' filepath='net/core/devlink.c' line='434' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='max_snapshots' type-id='19c2251e' visibility='default' filepath='net/core/devlink.c' line='435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='cur_snapshots' type-id='19c2251e' visibility='default' filepath='net/core/devlink.c' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='size' type-id='91ce1af9' visibility='default' filepath='net/core/devlink.c' line='437' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tcmsg' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/rtnetlink.h' line='592' column='1' id='22e47c79'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tcm_family' type-id='002ac4a6' visibility='default' filepath='include/uapi/linux/rtnetlink.h' line='593' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='tcm__pad1' type-id='002ac4a6' visibility='default' filepath='include/uapi/linux/rtnetlink.h' line='594' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='tcm__pad2' type-id='8efea9e5' visibility='default' filepath='include/uapi/linux/rtnetlink.h' line='595' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='tcm_ifindex' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/rtnetlink.h' line='596' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tcm_handle' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/rtnetlink.h' line='597' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='tcm_parent' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/rtnetlink.h' line='598' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tcm_info' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/rtnetlink.h' line='603' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='22ea740f'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='c7cd67fd'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='kernel_siginfo_t' type-id='38ef7882' filepath='include/linux/signal_types.h' line='14' column='1' id='22ec9634'/>
+      <pointer-type-def type-id='c1c2a6af' size-in-bits='64' id='22f2cc9b'/>
+      <pointer-type-def type-id='e29e274e' size-in-bits='64' id='22f8026c'/>
+      <class-decl name='cdev' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/linux/cdev.h' line='14' column='1' id='22f86351'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='include/linux/cdev.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/cdev.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='ops' type-id='61758ee5' visibility='default' filepath='include/linux/cdev.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/cdev.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='dev' type-id='8504f260' visibility='default' filepath='include/linux/cdev.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='count' type-id='f0981eeb' visibility='default' filepath='include/linux/cdev.h' line='20' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='22ff99bc'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='74912a48'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='6ebbc68a' size-in-bits='64' id='2303e664'/>
+      <pointer-type-def type-id='37d25cd5' size-in-bits='64' id='230dd919'/>
+      <typedef-decl name='__le16' type-id='d315442e' filepath='include/uapi/linux/types.h' line='29' column='1' id='23119536'/>
+      <pointer-type-def type-id='08abca50' size-in-bits='64' id='231269da'/>
+      <class-decl name='powercap_zone_ops' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/powercap.h' line='97' column='1' id='2314059a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='get_max_energy_range_uj' type-id='031b4500' visibility='default' filepath='include/linux/powercap.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='get_energy_uj' type-id='031b4500' visibility='default' filepath='include/linux/powercap.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='reset_energy_uj' type-id='6a222ecd' visibility='default' filepath='include/linux/powercap.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get_max_power_range_uw' type-id='031b4500' visibility='default' filepath='include/linux/powercap.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='get_power_uw' type-id='031b4500' visibility='default' filepath='include/linux/powercap.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='set_enable' type-id='bcd24f78' visibility='default' filepath='include/linux/powercap.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='get_enable' type-id='a8037d8f' visibility='default' filepath='include/linux/powercap.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='release' type-id='6a222ecd' visibility='default' filepath='include/linux/powercap.h' line='105' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8eb8eec2' size-in-bits='64' id='231422bf'/>
+      <function-type size-in-bits='64' id='232e3e4e'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='3c28582e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a447f0ac' size-in-bits='64' id='233fa2f2'/>
+      <class-decl name='rpmsg_driver' size-in-bits='1728' is-struct='yes' visibility='default' filepath='include/linux/rpmsg.h' line='127' column='1' id='234005a7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='drv' type-id='fe007c02' visibility='default' filepath='include/linux/rpmsg.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='id_table' type-id='ac456034' visibility='default' filepath='include/linux/rpmsg.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='probe' type-id='f853ae55' visibility='default' filepath='include/linux/rpmsg.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='remove' type-id='170fcd6a' visibility='default' filepath='include/linux/rpmsg.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='callback' type-id='2a873f51' visibility='default' filepath='include/linux/rpmsg.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='signals' type-id='3362870f' visibility='default' filepath='include/linux/rpmsg.h' line='133' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='23420063'>
+        <parameter type-id='63a08bf7'/>
+        <parameter type-id='1a494567'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='228c7c6c' const='yes' id='23446945'/>
+      <pointer-type-def type-id='4ea599f1' size-in-bits='64' id='234d802d'/>
+      <class-decl name='iommu_group' size-in-bits='2432' is-struct='yes' visibility='default' filepath='drivers/iommu/iommu.c' line='37' column='1' id='2352f3ae'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='drivers/iommu/iommu.c' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='devices_kobj' type-id='d30bdc51' visibility='default' filepath='drivers/iommu/iommu.c' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='devices' type-id='72f469ec' visibility='default' filepath='drivers/iommu/iommu.c' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='drivers/iommu/iommu.c' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='notifier' type-id='708c2394' visibility='default' filepath='drivers/iommu/iommu.c' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='iommu_data' type-id='eaa32e2f' visibility='default' filepath='drivers/iommu/iommu.c' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='iommu_data_release' type-id='b7f9d8e6' visibility='default' filepath='drivers/iommu/iommu.c' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='drivers/iommu/iommu.c' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='drivers/iommu/iommu.c' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='default_domain' type-id='bff05edb' visibility='default' filepath='drivers/iommu/iommu.c' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='domain' type-id='bff05edb' visibility='default' filepath='drivers/iommu/iommu.c' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='entry' type-id='72f469ec' visibility='default' filepath='drivers/iommu/iommu.c' line='49' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='c7d5925c' const='yes' id='23610dc7'/>
+      <pointer-type-def type-id='0db936dc' size-in-bits='64' id='236f06da'/>
+      <pointer-type-def type-id='696d238e' size-in-bits='64' id='23704f74'/>
+      <pointer-type-def type-id='c619ce98' size-in-bits='64' id='2371b41a'/>
+      <class-decl name='linux_binprm' size-in-bits='3328' is-struct='yes' visibility='default' filepath='include/linux/binfmts.h' line='17' column='1' id='2376c3ec'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vma' type-id='2ae08426' visibility='default' filepath='include/linux/binfmts.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='vma_pages' type-id='7359adad' visibility='default' filepath='include/linux/binfmts.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mm' type-id='df4b7819' visibility='default' filepath='include/linux/binfmts.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='p' type-id='7359adad' visibility='default' filepath='include/linux/binfmts.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='argmin' type-id='7359adad' visibility='default' filepath='include/linux/binfmts.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='have_execfd' type-id='f0981eeb' visibility='default' filepath='include/linux/binfmts.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='321'>
+          <var-decl name='execfd_creds' type-id='f0981eeb' visibility='default' filepath='include/linux/binfmts.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='322'>
+          <var-decl name='secureexec' type-id='f0981eeb' visibility='default' filepath='include/linux/binfmts.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='323'>
+          <var-decl name='point_of_no_return' type-id='f0981eeb' visibility='default' filepath='include/linux/binfmts.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='executable' type-id='77e79a4b' visibility='default' filepath='include/linux/binfmts.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='interpreter' type-id='77e79a4b' visibility='default' filepath='include/linux/binfmts.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='file' type-id='77e79a4b' visibility='default' filepath='include/linux/binfmts.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='cred' type-id='10cfb911' visibility='default' filepath='include/linux/binfmts.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='unsafe' type-id='95e97e5e' visibility='default' filepath='include/linux/binfmts.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='per_clear' type-id='f0981eeb' visibility='default' filepath='include/linux/binfmts.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='argc' type-id='95e97e5e' visibility='default' filepath='include/linux/binfmts.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='envc' type-id='95e97e5e' visibility='default' filepath='include/linux/binfmts.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='filename' type-id='80f4b756' visibility='default' filepath='include/linux/binfmts.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='interp' type-id='80f4b756' visibility='default' filepath='include/linux/binfmts.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='fdpath' type-id='80f4b756' visibility='default' filepath='include/linux/binfmts.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='interp_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/binfmts.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='execfd' type-id='95e97e5e' visibility='default' filepath='include/linux/binfmts.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='loader' type-id='7359adad' visibility='default' filepath='include/linux/binfmts.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='exec' type-id='7359adad' visibility='default' filepath='include/linux/binfmts.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='rlim_stack' type-id='60dcbf6c' visibility='default' filepath='include/linux/binfmts.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='buf' type-id='d1617432' visibility='default' filepath='include/linux/binfmts.h' line='66' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='arch_timer_erratum_match_type' filepath='arch/arm64/include/asm/arch_timer.h' line='43' column='1' id='2377364c'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ate_match_dt' value='0'/>
+        <enumerator name='ate_match_local_cap_id' value='1'/>
+        <enumerator name='ate_match_acpi_oem_info' value='2'/>
+      </enum-decl>
+      <class-decl name='static_key_false' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/jump_label.h' line='385' column='1' id='237c0d27'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='key' type-id='00205383' visibility='default' filepath='include/linux/jump_label.h' line='386' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='237d35ea'>
+        <parameter type-id='4db02c58'/>
+        <parameter type-id='e3dd029e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='e093b8f6' size-in-bits='64' id='237e46c0'/>
+      <class-decl name='mount' size-in-bits='2816' is-struct='yes' visibility='default' filepath='fs/mount.h' line='39' column='1' id='237ee462'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mnt_hash' type-id='03a4a074' visibility='default' filepath='fs/mount.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mnt_parent' type-id='b749c0b0' visibility='default' filepath='fs/mount.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mnt_mountpoint' type-id='27675065' visibility='default' filepath='fs/mount.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mnt' type-id='19e88833' visibility='default' filepath='fs/mount.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='' type-id='ac5ab629' visibility='default' filepath='fs/mount.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='mnt_pcp' type-id='06f65854' visibility='default' filepath='fs/mount.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='mnt_mounts' type-id='72f469ec' visibility='default' filepath='fs/mount.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='mnt_child' type-id='72f469ec' visibility='default' filepath='fs/mount.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='mnt_instance' type-id='72f469ec' visibility='default' filepath='fs/mount.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='mnt_devname' type-id='80f4b756' visibility='default' filepath='fs/mount.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='mnt_list' type-id='72f469ec' visibility='default' filepath='fs/mount.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='mnt_expire' type-id='72f469ec' visibility='default' filepath='fs/mount.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='mnt_share' type-id='72f469ec' visibility='default' filepath='fs/mount.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='mnt_slave_list' type-id='72f469ec' visibility='default' filepath='fs/mount.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='mnt_slave' type-id='72f469ec' visibility='default' filepath='fs/mount.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='mnt_master' type-id='b749c0b0' visibility='default' filepath='fs/mount.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='mnt_ns' type-id='d60f4f10' visibility='default' filepath='fs/mount.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='mnt_mp' type-id='9dd535f2' visibility='default' filepath='fs/mount.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='' type-id='ac5ab62a' visibility='default' filepath='fs/mount.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='mnt_umounting' type-id='72f469ec' visibility='default' filepath='fs/mount.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='mnt_fsnotify_marks' type-id='994d9d61' visibility='default' filepath='fs/mount.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='mnt_fsnotify_mask' type-id='3f1a6b60' visibility='default' filepath='fs/mount.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2592'>
+          <var-decl name='mnt_id' type-id='95e97e5e' visibility='default' filepath='fs/mount.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='mnt_group_id' type-id='95e97e5e' visibility='default' filepath='fs/mount.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2656'>
+          <var-decl name='mnt_expiry_mark' type-id='95e97e5e' visibility='default' filepath='fs/mount.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='mnt_pins' type-id='e151255a' visibility='default' filepath='fs/mount.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='mnt_stuck_children' type-id='e151255a' visibility='default' filepath='fs/mount.h' line='79' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='2381d398'>
+        <parameter type-id='a9bcccf8'/>
+        <parameter type-id='ccf3b302'/>
+        <return type-id='88370ce9'/>
+      </function-type>
+      <class-decl name='zs_pool' size-in-bits='17920' is-struct='yes' visibility='default' filepath='mm/zsmalloc.c' line='252' column='1' id='2399d05d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='mm/zsmalloc.c' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size_class' type-id='c69c228b' visibility='default' filepath='mm/zsmalloc.c' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16384'>
+          <var-decl name='handle_cachep' type-id='f3b4aca8' visibility='default' filepath='mm/zsmalloc.c' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16448'>
+          <var-decl name='zspage_cachep' type-id='f3b4aca8' visibility='default' filepath='mm/zsmalloc.c' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16512'>
+          <var-decl name='pages_allocated' type-id='f22a8abb' visibility='default' filepath='mm/zsmalloc.c' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16576'>
+          <var-decl name='stats' type-id='7cee8a3d' visibility='default' filepath='mm/zsmalloc.c' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16640'>
+          <var-decl name='shrinker' type-id='27cb404f' visibility='default' filepath='mm/zsmalloc.c' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17152'>
+          <var-decl name='inode' type-id='7e666abe' visibility='default' filepath='mm/zsmalloc.c' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17216'>
+          <var-decl name='free_work' type-id='ef9025d0' visibility='default' filepath='mm/zsmalloc.c' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17600'>
+          <var-decl name='migration_wait' type-id='cff07063' visibility='default' filepath='mm/zsmalloc.c' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17792'>
+          <var-decl name='isolated_pages' type-id='f22a8abb' visibility='default' filepath='mm/zsmalloc.c' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17856'>
+          <var-decl name='destroying' type-id='b50a4934' visibility='default' filepath='mm/zsmalloc.c' line='275' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e9bea70c' size-in-bits='64' id='23a0ad0a'/>
+      <qualified-type-def type-id='f9b9a795' const='yes' id='23a4b33c'/>
+      <class-decl name='file_lock' size-in-bits='1984' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1140' column='1' id='23c73eb3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fl_blocker' type-id='0343ce83' visibility='default' filepath='include/linux/fs.h' line='1141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fl_list' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fl_link' type-id='03a4a074' visibility='default' filepath='include/linux/fs.h' line='1143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='fl_blocked_requests' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='fl_blocked_member' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='fl_owner' type-id='bc5666d5' visibility='default' filepath='include/linux/fs.h' line='1150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='fl_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='1151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='fl_type' type-id='002ac4a6' visibility='default' filepath='include/linux/fs.h' line='1152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='fl_pid' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='1153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='fl_link_cpu' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='fl_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/fs.h' line='1155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='fl_file' type-id='77e79a4b' visibility='default' filepath='include/linux/fs.h' line='1156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='fl_start' type-id='69bf7bee' visibility='default' filepath='include/linux/fs.h' line='1157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='fl_end' type-id='69bf7bee' visibility='default' filepath='include/linux/fs.h' line='1158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='fl_fasync' type-id='5bb9c75d' visibility='default' filepath='include/linux/fs.h' line='1160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='fl_break_time' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='fl_downgrade_time' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='fl_ops' type-id='dc4077ef' visibility='default' filepath='include/linux/fs.h' line='1165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='fl_lmops' type-id='a548fbc8' visibility='default' filepath='include/linux/fs.h' line='1166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='fl_u' type-id='ac5ab633' visibility='default' filepath='include/linux/fs.h' line='1175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='android_reserved1' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1179' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='eb6f9afe' size-in-bits='64' id='23c905e8'/>
+      <qualified-type-def type-id='68597e64' const='yes' id='23cb2797'/>
+      <function-type size-in-bits='64' id='23ce80b7'>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='12c1f7e1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='scmi_msg_hdr' size-in-bits='128' is-struct='yes' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='95' column='1' id='23d1ead2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='f9b06939' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='protocol_id' type-id='f9b06939' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='type' type-id='f9b06939' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='seq' type-id='1dc6a898' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='status' type-id='19c2251e' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='poll_completion' type-id='b50a4934' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='101' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='23d2764a'>
+        <parameter type-id='2a9f6bcb'/>
+        <parameter type-id='c21baddd'/>
+        <parameter type-id='7c3e509a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='fd48a6e6' size-in-bits='64' id='23d6768c'/>
+      <qualified-type-def type-id='349c0cdf' const='yes' id='23de1228'/>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='248' id='23e37060'>
+        <subrange length='31' type-id='7ff19f0f' id='ae5e1d19'/>
+      </array-type-def>
+      <qualified-type-def type-id='20b6fd7c' const='yes' id='23e41d37'/>
+      <function-type size-in-bits='64' id='23f8b0bd'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='v4l2_subdev_format' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='49' column='1' id='23f90633'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='which' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pad' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='format' type-id='87dd7486' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='reserved' type-id='7f84eb57' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='53' column='1'/>
+        </data-member>
+      </class-decl>
+      <union-decl name='perf_sample_weight' size-in-bits='64' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1341' column='1' id='24110953'>
+        <data-member access='public'>
+          <var-decl name='full' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1342' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43f7f' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1344' column='1'/>
+        </data-member>
+      </union-decl>
+      <enum-decl name='rpm_request' filepath='include/linux/pm.h' line='526' column='1' id='2418515b'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='RPM_REQ_NONE' value='0'/>
+        <enumerator name='RPM_REQ_IDLE' value='1'/>
+        <enumerator name='RPM_REQ_SUSPEND' value='2'/>
+        <enumerator name='RPM_REQ_AUTOSUSPEND' value='3'/>
+        <enumerator name='RPM_REQ_RESUME' value='4'/>
+      </enum-decl>
+      <typedef-decl name='tcflag_t' type-id='f0981eeb' filepath='include/uapi/asm-generic/termbits.h' line='9' column='1' id='241ce6f8'/>
+      <pointer-type-def type-id='4a1c795d' size-in-bits='64' id='24213669'/>
+      <function-type size-in-bits='64' id='24254372'>
+        <parameter type-id='bf8a20d2'/>
+        <parameter type-id='9baaf905'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='24255cb2'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='242d8ed5'>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='aff725d5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a5159c01' size-in-bits='64' id='242e3d19'/>
+      <function-type size-in-bits='64' id='242fdc5f'>
+        <parameter type-id='5aa4f86b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9b5be95a' size-in-bits='64' id='2435959c'/>
+      <function-type size-in-bits='64' id='243799e7'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='19c2251e'/>
+      </function-type>
+      <class-decl name='fid' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/linux/exportfs.h' line='118' column='1' id='2437c5c4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab695' visibility='default' filepath='include/linux/exportfs.h' line='119' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5895f71c' size-in-bits='64' id='243d1e96'/>
+      <function-type size-in-bits='64' id='24451821'>
+        <parameter type-id='404b1300'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='478384af'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='95e97e5e' const='yes' id='2448a865'/>
+      <pointer-type-def type-id='29a6df05' size-in-bits='64' id='244b1321'/>
+      <qualified-type-def type-id='391a9024' const='yes' id='244e59bf'/>
+      <pointer-type-def type-id='a2be7826' size-in-bits='64' id='2451ca6c'/>
+      <function-type size-in-bits='64' id='2457cbe5'>
+        <parameter type-id='fc4f83c1'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='cpuhp_state' filepath='include/linux/cpuhotplug.h' line='57' column='1' id='245a0e38'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='CPUHP_INVALID' value='-1'/>
+        <enumerator name='CPUHP_OFFLINE' value='0'/>
+        <enumerator name='CPUHP_CREATE_THREADS' value='1'/>
+        <enumerator name='CPUHP_PERF_PREPARE' value='2'/>
+        <enumerator name='CPUHP_PERF_X86_PREPARE' value='3'/>
+        <enumerator name='CPUHP_PERF_X86_AMD_UNCORE_PREP' value='4'/>
+        <enumerator name='CPUHP_PERF_POWER' value='5'/>
+        <enumerator name='CPUHP_PERF_SUPERH' value='6'/>
+        <enumerator name='CPUHP_X86_HPET_DEAD' value='7'/>
+        <enumerator name='CPUHP_X86_APB_DEAD' value='8'/>
+        <enumerator name='CPUHP_X86_MCE_DEAD' value='9'/>
+        <enumerator name='CPUHP_VIRT_NET_DEAD' value='10'/>
+        <enumerator name='CPUHP_SLUB_DEAD' value='11'/>
+        <enumerator name='CPUHP_DEBUG_OBJ_DEAD' value='12'/>
+        <enumerator name='CPUHP_MM_WRITEBACK_DEAD' value='13'/>
+        <enumerator name='CPUHP_MM_DEMOTION_DEAD' value='14'/>
+        <enumerator name='CPUHP_MM_VMSTAT_DEAD' value='15'/>
+        <enumerator name='CPUHP_SOFTIRQ_DEAD' value='16'/>
+        <enumerator name='CPUHP_NET_MVNETA_DEAD' value='17'/>
+        <enumerator name='CPUHP_CPUIDLE_DEAD' value='18'/>
+        <enumerator name='CPUHP_ARM64_FPSIMD_DEAD' value='19'/>
+        <enumerator name='CPUHP_ARM_OMAP_WAKE_DEAD' value='20'/>
+        <enumerator name='CPUHP_IRQ_POLL_DEAD' value='21'/>
+        <enumerator name='CPUHP_BLOCK_SOFTIRQ_DEAD' value='22'/>
+        <enumerator name='CPUHP_BIO_DEAD' value='23'/>
+        <enumerator name='CPUHP_ACPI_CPUDRV_DEAD' value='24'/>
+        <enumerator name='CPUHP_S390_PFAULT_DEAD' value='25'/>
+        <enumerator name='CPUHP_BLK_MQ_DEAD' value='26'/>
+        <enumerator name='CPUHP_FS_BUFF_DEAD' value='27'/>
+        <enumerator name='CPUHP_PRINTK_DEAD' value='28'/>
+        <enumerator name='CPUHP_MM_MEMCQ_DEAD' value='29'/>
+        <enumerator name='CPUHP_XFS_DEAD' value='30'/>
+        <enumerator name='CPUHP_PERCPU_CNT_DEAD' value='31'/>
+        <enumerator name='CPUHP_RADIX_DEAD' value='32'/>
+        <enumerator name='CPUHP_PAGE_ALLOC' value='33'/>
+        <enumerator name='CPUHP_NET_DEV_DEAD' value='34'/>
+        <enumerator name='CPUHP_PCI_XGENE_DEAD' value='35'/>
+        <enumerator name='CPUHP_IOMMU_IOVA_DEAD' value='36'/>
+        <enumerator name='CPUHP_LUSTRE_CFS_DEAD' value='37'/>
+        <enumerator name='CPUHP_AP_ARM_CACHE_B15_RAC_DEAD' value='38'/>
+        <enumerator name='CPUHP_PADATA_DEAD' value='39'/>
+        <enumerator name='CPUHP_WORKQUEUE_PREP' value='40'/>
+        <enumerator name='CPUHP_POWER_NUMA_PREPARE' value='41'/>
+        <enumerator name='CPUHP_HRTIMERS_PREPARE' value='42'/>
+        <enumerator name='CPUHP_PROFILE_PREPARE' value='43'/>
+        <enumerator name='CPUHP_X2APIC_PREPARE' value='44'/>
+        <enumerator name='CPUHP_SMPCFD_PREPARE' value='45'/>
+        <enumerator name='CPUHP_RELAY_PREPARE' value='46'/>
+        <enumerator name='CPUHP_SLAB_PREPARE' value='47'/>
+        <enumerator name='CPUHP_MD_RAID5_PREPARE' value='48'/>
+        <enumerator name='CPUHP_RCUTREE_PREP' value='49'/>
+        <enumerator name='CPUHP_CPUIDLE_COUPLED_PREPARE' value='50'/>
+        <enumerator name='CPUHP_POWERPC_PMAC_PREPARE' value='51'/>
+        <enumerator name='CPUHP_POWERPC_MMU_CTX_PREPARE' value='52'/>
+        <enumerator name='CPUHP_XEN_PREPARE' value='53'/>
+        <enumerator name='CPUHP_XEN_EVTCHN_PREPARE' value='54'/>
+        <enumerator name='CPUHP_ARM_SHMOBILE_SCU_PREPARE' value='55'/>
+        <enumerator name='CPUHP_SH_SH3X_PREPARE' value='56'/>
+        <enumerator name='CPUHP_NET_FLOW_PREPARE' value='57'/>
+        <enumerator name='CPUHP_TOPOLOGY_PREPARE' value='58'/>
+        <enumerator name='CPUHP_NET_IUCV_PREPARE' value='59'/>
+        <enumerator name='CPUHP_ARM_BL_PREPARE' value='60'/>
+        <enumerator name='CPUHP_TRACE_RB_PREPARE' value='61'/>
+        <enumerator name='CPUHP_MM_ZS_PREPARE' value='62'/>
+        <enumerator name='CPUHP_MM_ZSWP_MEM_PREPARE' value='63'/>
+        <enumerator name='CPUHP_MM_ZSWP_POOL_PREPARE' value='64'/>
+        <enumerator name='CPUHP_KVM_PPC_BOOK3S_PREPARE' value='65'/>
+        <enumerator name='CPUHP_ZCOMP_PREPARE' value='66'/>
+        <enumerator name='CPUHP_TIMERS_PREPARE' value='67'/>
+        <enumerator name='CPUHP_MIPS_SOC_PREPARE' value='68'/>
+        <enumerator name='CPUHP_BP_PREPARE_DYN' value='69'/>
+        <enumerator name='CPUHP_BP_PREPARE_DYN_END' value='89'/>
+        <enumerator name='CPUHP_BRINGUP_CPU' value='90'/>
+        <enumerator name='CPUHP_AP_IDLE_DEAD' value='91'/>
+        <enumerator name='CPUHP_AP_OFFLINE' value='92'/>
+        <enumerator name='CPUHP_AP_SCHED_STARTING' value='93'/>
+        <enumerator name='CPUHP_AP_RCUTREE_DYING' value='94'/>
+        <enumerator name='CPUHP_AP_CPU_PM_STARTING' value='95'/>
+        <enumerator name='CPUHP_AP_IRQ_GIC_STARTING' value='96'/>
+        <enumerator name='CPUHP_AP_IRQ_HIP04_STARTING' value='97'/>
+        <enumerator name='CPUHP_AP_IRQ_APPLE_AIC_STARTING' value='98'/>
+        <enumerator name='CPUHP_AP_IRQ_ARMADA_XP_STARTING' value='99'/>
+        <enumerator name='CPUHP_AP_IRQ_BCM2836_STARTING' value='100'/>
+        <enumerator name='CPUHP_AP_IRQ_MIPS_GIC_STARTING' value='101'/>
+        <enumerator name='CPUHP_AP_IRQ_RISCV_STARTING' value='102'/>
+        <enumerator name='CPUHP_AP_IRQ_SIFIVE_PLIC_STARTING' value='103'/>
+        <enumerator name='CPUHP_AP_ARM_MVEBU_COHERENCY' value='104'/>
+        <enumerator name='CPUHP_AP_MICROCODE_LOADER' value='105'/>
+        <enumerator name='CPUHP_AP_PERF_X86_AMD_UNCORE_STARTING' value='106'/>
+        <enumerator name='CPUHP_AP_PERF_X86_STARTING' value='107'/>
+        <enumerator name='CPUHP_AP_PERF_X86_AMD_IBS_STARTING' value='108'/>
+        <enumerator name='CPUHP_AP_PERF_X86_CQM_STARTING' value='109'/>
+        <enumerator name='CPUHP_AP_PERF_X86_CSTATE_STARTING' value='110'/>
+        <enumerator name='CPUHP_AP_PERF_XTENSA_STARTING' value='111'/>
+        <enumerator name='CPUHP_AP_MIPS_OP_LOONGSON3_STARTING' value='112'/>
+        <enumerator name='CPUHP_AP_ARM_SDEI_STARTING' value='113'/>
+        <enumerator name='CPUHP_AP_ARM_VFP_STARTING' value='114'/>
+        <enumerator name='CPUHP_AP_ARM64_DEBUG_MONITORS_STARTING' value='115'/>
+        <enumerator name='CPUHP_AP_PERF_ARM_HW_BREAKPOINT_STARTING' value='116'/>
+        <enumerator name='CPUHP_AP_PERF_ARM_ACPI_STARTING' value='117'/>
+        <enumerator name='CPUHP_AP_PERF_ARM_STARTING' value='118'/>
+        <enumerator name='CPUHP_AP_ARM_L2X0_STARTING' value='119'/>
+        <enumerator name='CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING' value='120'/>
+        <enumerator name='CPUHP_AP_ARM_ARCH_TIMER_STARTING' value='121'/>
+        <enumerator name='CPUHP_AP_ARM_GLOBAL_TIMER_STARTING' value='122'/>
+        <enumerator name='CPUHP_AP_JCORE_TIMER_STARTING' value='123'/>
+        <enumerator name='CPUHP_AP_ARM_TWD_STARTING' value='124'/>
+        <enumerator name='CPUHP_AP_QCOM_TIMER_STARTING' value='125'/>
+        <enumerator name='CPUHP_AP_TEGRA_TIMER_STARTING' value='126'/>
+        <enumerator name='CPUHP_AP_ARMADA_TIMER_STARTING' value='127'/>
+        <enumerator name='CPUHP_AP_MARCO_TIMER_STARTING' value='128'/>
+        <enumerator name='CPUHP_AP_MIPS_GIC_TIMER_STARTING' value='129'/>
+        <enumerator name='CPUHP_AP_ARC_TIMER_STARTING' value='130'/>
+        <enumerator name='CPUHP_AP_RISCV_TIMER_STARTING' value='131'/>
+        <enumerator name='CPUHP_AP_CLINT_TIMER_STARTING' value='132'/>
+        <enumerator name='CPUHP_AP_CSKY_TIMER_STARTING' value='133'/>
+        <enumerator name='CPUHP_AP_TI_GP_TIMER_STARTING' value='134'/>
+        <enumerator name='CPUHP_AP_HYPERV_TIMER_STARTING' value='135'/>
+        <enumerator name='CPUHP_AP_KVM_STARTING' value='136'/>
+        <enumerator name='CPUHP_AP_KVM_ARM_VGIC_INIT_STARTING' value='137'/>
+        <enumerator name='CPUHP_AP_KVM_ARM_VGIC_STARTING' value='138'/>
+        <enumerator name='CPUHP_AP_KVM_ARM_TIMER_STARTING' value='139'/>
+        <enumerator name='CPUHP_AP_DUMMY_TIMER_STARTING' value='140'/>
+        <enumerator name='CPUHP_AP_ARM_XEN_STARTING' value='141'/>
+        <enumerator name='CPUHP_AP_ARM_CORESIGHT_STARTING' value='142'/>
+        <enumerator name='CPUHP_AP_ARM_CORESIGHT_CTI_STARTING' value='143'/>
+        <enumerator name='CPUHP_AP_ARM64_ISNDEP_STARTING' value='144'/>
+        <enumerator name='CPUHP_AP_SMPCFD_DYING' value='145'/>
+        <enumerator name='CPUHP_AP_X86_TBOOT_DYING' value='146'/>
+        <enumerator name='CPUHP_AP_ARM_CACHE_B15_RAC_DYING' value='147'/>
+        <enumerator name='CPUHP_AP_ONLINE' value='148'/>
+        <enumerator name='CPUHP_TEARDOWN_CPU' value='149'/>
+        <enumerator name='CPUHP_AP_ONLINE_IDLE' value='150'/>
+        <enumerator name='CPUHP_AP_SCHED_WAIT_EMPTY' value='151'/>
+        <enumerator name='CPUHP_AP_SMPBOOT_THREADS' value='152'/>
+        <enumerator name='CPUHP_AP_X86_VDSO_VMA_ONLINE' value='153'/>
+        <enumerator name='CPUHP_AP_IRQ_AFFINITY_ONLINE' value='154'/>
+        <enumerator name='CPUHP_AP_BLK_MQ_ONLINE' value='155'/>
+        <enumerator name='CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS' value='156'/>
+        <enumerator name='CPUHP_AP_X86_INTEL_EPB_ONLINE' value='157'/>
+        <enumerator name='CPUHP_AP_PERF_ONLINE' value='158'/>
+        <enumerator name='CPUHP_AP_PERF_X86_ONLINE' value='159'/>
+        <enumerator name='CPUHP_AP_PERF_X86_UNCORE_ONLINE' value='160'/>
+        <enumerator name='CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE' value='161'/>
+        <enumerator name='CPUHP_AP_PERF_X86_AMD_POWER_ONLINE' value='162'/>
+        <enumerator name='CPUHP_AP_PERF_X86_RAPL_ONLINE' value='163'/>
+        <enumerator name='CPUHP_AP_PERF_X86_CQM_ONLINE' value='164'/>
+        <enumerator name='CPUHP_AP_PERF_X86_CSTATE_ONLINE' value='165'/>
+        <enumerator name='CPUHP_AP_PERF_X86_IDXD_ONLINE' value='166'/>
+        <enumerator name='CPUHP_AP_PERF_S390_CF_ONLINE' value='167'/>
+        <enumerator name='CPUHP_AP_PERF_S390_SF_ONLINE' value='168'/>
+        <enumerator name='CPUHP_AP_PERF_ARM_CCI_ONLINE' value='169'/>
+        <enumerator name='CPUHP_AP_PERF_ARM_CCN_ONLINE' value='170'/>
+        <enumerator name='CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE' value='171'/>
+        <enumerator name='CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE' value='172'/>
+        <enumerator name='CPUHP_AP_PERF_ARM_HISI_L3_ONLINE' value='173'/>
+        <enumerator name='CPUHP_AP_PERF_ARM_HISI_PA_ONLINE' value='174'/>
+        <enumerator name='CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE' value='175'/>
+        <enumerator name='CPUHP_AP_PERF_ARM_L2X0_ONLINE' value='176'/>
+        <enumerator name='CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE' value='177'/>
+        <enumerator name='CPUHP_AP_PERF_ARM_QCOM_L3_ONLINE' value='178'/>
+        <enumerator name='CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE' value='179'/>
+        <enumerator name='CPUHP_AP_PERF_ARM_CAVIUM_TX2_UNCORE_ONLINE' value='180'/>
+        <enumerator name='CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE' value='181'/>
+        <enumerator name='CPUHP_AP_PERF_POWERPC_CORE_IMC_ONLINE' value='182'/>
+        <enumerator name='CPUHP_AP_PERF_POWERPC_THREAD_IMC_ONLINE' value='183'/>
+        <enumerator name='CPUHP_AP_PERF_POWERPC_TRACE_IMC_ONLINE' value='184'/>
+        <enumerator name='CPUHP_AP_PERF_POWERPC_HV_24x7_ONLINE' value='185'/>
+        <enumerator name='CPUHP_AP_PERF_POWERPC_HV_GPCI_ONLINE' value='186'/>
+        <enumerator name='CPUHP_AP_PERF_CSKY_ONLINE' value='187'/>
+        <enumerator name='CPUHP_AP_WATCHDOG_ONLINE' value='188'/>
+        <enumerator name='CPUHP_AP_WORKQUEUE_ONLINE' value='189'/>
+        <enumerator name='CPUHP_AP_RCUTREE_ONLINE' value='190'/>
+        <enumerator name='CPUHP_AP_BASE_CACHEINFO_ONLINE' value='191'/>
+        <enumerator name='CPUHP_AP_ONLINE_DYN' value='192'/>
+        <enumerator name='CPUHP_AP_ONLINE_DYN_END' value='222'/>
+        <enumerator name='CPUHP_AP_MM_DEMOTION_ONLINE' value='223'/>
+        <enumerator name='CPUHP_AP_X86_HPET_ONLINE' value='224'/>
+        <enumerator name='CPUHP_AP_X86_KVM_CLK_ONLINE' value='225'/>
+        <enumerator name='CPUHP_AP_DTPM_CPU_ONLINE' value='226'/>
+        <enumerator name='CPUHP_AP_ACTIVE' value='227'/>
+        <enumerator name='CPUHP_ANDROID_RESERVED_1' value='228'/>
+        <enumerator name='CPUHP_ANDROID_RESERVED_2' value='229'/>
+        <enumerator name='CPUHP_ANDROID_RESERVED_3' value='230'/>
+        <enumerator name='CPUHP_ANDROID_RESERVED_4' value='231'/>
+        <enumerator name='CPUHP_ONLINE' value='232'/>
+      </enum-decl>
+      <class-decl name='i3c_device_id' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/mod_devicetable.h' line='486' column='1' id='2464be13'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='match_flags' type-id='8f048e17' visibility='default' filepath='include/linux/mod_devicetable.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='dcr' type-id='8f048e17' visibility='default' filepath='include/linux/mod_devicetable.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='manuf_id' type-id='d315442e' visibility='default' filepath='include/linux/mod_devicetable.h' line='489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='part_id' type-id='d315442e' visibility='default' filepath='include/linux/mod_devicetable.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='extra_info' type-id='d315442e' visibility='default' filepath='include/linux/mod_devicetable.h' line='491' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/mod_devicetable.h' line='493' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c09fdadb' size-in-bits='64' id='246c18a6'/>
+      <pointer-type-def type-id='3e33342a' size-in-bits='64' id='24725b0c'/>
+      <pointer-type-def type-id='6d54709d' size-in-bits='64' id='247297cd'/>
+      <class-decl name='i2c_timings' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/i2c.h' line='590' column='1' id='24734c8f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bus_freq_hz' type-id='19c2251e' visibility='default' filepath='include/linux/i2c.h' line='591' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='scl_rise_ns' type-id='19c2251e' visibility='default' filepath='include/linux/i2c.h' line='592' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='scl_fall_ns' type-id='19c2251e' visibility='default' filepath='include/linux/i2c.h' line='593' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='scl_int_delay_ns' type-id='19c2251e' visibility='default' filepath='include/linux/i2c.h' line='594' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sda_fall_ns' type-id='19c2251e' visibility='default' filepath='include/linux/i2c.h' line='595' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='sda_hold_ns' type-id='19c2251e' visibility='default' filepath='include/linux/i2c.h' line='596' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='digital_filter_width_ns' type-id='19c2251e' visibility='default' filepath='include/linux/i2c.h' line='597' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='analog_filter_cutoff_freq_hz' type-id='19c2251e' visibility='default' filepath='include/linux/i2c.h' line='598' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='56d268db' size-in-bits='64' id='2473b64b'/>
+      <function-type size-in-bits='64' id='24762397'>
+        <parameter type-id='dd75e72e'/>
+        <parameter type-id='9f763fd8'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='g_audio' size-in-bits='2624' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='51' column='1' id='24767e7f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='func' type-id='d6a54726' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='gadget' type-id='49a58c0c' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='in_ep' type-id='63a08bf7' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='out_ep' type-id='63a08bf7' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='in_ep_fback' type-id='63a08bf7' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='in_ep_maxpsize' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2016'>
+          <var-decl name='out_ep_maxpsize' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='notify' type-id='f33ad58d' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='uac' type-id='31a99d1f' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='params' type-id='f7351f13' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='72' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='68f033c6' size-in-bits='64' id='2476e63c'/>
+      <pointer-type-def type-id='fba20e52' size-in-bits='64' id='247cd24c'/>
+      <class-decl name='blkg_rwstat' size-in-bits='1920' is-struct='yes' visibility='default' filepath='block/blk-cgroup-rwstat.h' line='26' column='1' id='247d0323'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cpu_cnt' type-id='68a92070' visibility='default' filepath='block/blk-cgroup-rwstat.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='aux_cnt' type-id='39e531ac' visibility='default' filepath='block/blk-cgroup-rwstat.h' line='28' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='df5e8716' size-in-bits='64' id='247dd85c'/>
+      <class-decl name='ti_sci_inta_msi_desc' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/linux/msi.h' line='93' column='1' id='248c6527'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev_index' type-id='1dc6a898' visibility='default' filepath='include/linux/msi.h' line='94' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5ad3f0d0' size-in-bits='64' id='249ef586'/>
+      <qualified-type-def type-id='4d1a8c39' const='yes' id='24a174c6'/>
+      <array-type-def dimensions='1' type-id='91ce1af9' size-in-bits='128' id='24a375b2'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='ef276be8' size-in-bits='64' id='24a62f42'/>
+      <function-type size-in-bits='64' id='24a92232'>
+        <parameter type-id='f7f718cb'/>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='crypto_ahash_spawn' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/crypto/internal/hash.h' line='54' column='1' id='24ac9fc4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='58ba85d8' visibility='default' filepath='include/crypto/internal/hash.h' line='55' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='cdc_ncm_ctx' size-in-bits='2880' is-struct='yes' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='96' column='1' id='24ada124'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ncm_parm' type-id='d26727c9' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='tx_timer' type-id='b6993efc' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='bh' type-id='7a7ea727' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='dev' type-id='12884b9a' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='func_desc' type-id='411e6982' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='mbim_desc' type-id='87387369' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='mbim_extended_desc' type-id='a29682fb' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='ether_desc' type-id='ae990d1c' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='control' type-id='8bf48c31' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='data' type-id='8bf48c31' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='tx_curr_skb' type-id='0fbf3cfd' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='tx_rem_skb' type-id='0fbf3cfd' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='tx_rem_sign' type-id='2f162548' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1760'>
+          <var-decl name='mtx' type-id='fb4018a0' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='stop' type-id='49178f86' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1824'>
+          <var-decl name='drvflags' type-id='95e97e5e' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='timer_interval' type-id='19c2251e' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1888'>
+          <var-decl name='max_ndp_size' type-id='19c2251e' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='is_ndp16' type-id='f9b06939' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='' type-id='ac5ab60b' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='tx_timer_pending' type-id='19c2251e' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2080'>
+          <var-decl name='tx_curr_frame_num' type-id='19c2251e' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='rx_max' type-id='19c2251e' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2144'>
+          <var-decl name='tx_max' type-id='19c2251e' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='tx_curr_size' type-id='19c2251e' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2208'>
+          <var-decl name='tx_low_mem_max_cnt' type-id='19c2251e' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='tx_low_mem_val' type-id='19c2251e' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2272'>
+          <var-decl name='max_datagram_size' type-id='19c2251e' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='tx_max_datagrams' type-id='1dc6a898' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2320'>
+          <var-decl name='tx_remainder' type-id='1dc6a898' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2336'>
+          <var-decl name='tx_modulus' type-id='1dc6a898' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2352'>
+          <var-decl name='tx_ndp_modulus' type-id='1dc6a898' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='tx_seq' type-id='1dc6a898' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2384'>
+          <var-decl name='rx_seq' type-id='1dc6a898' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2400'>
+          <var-decl name='min_tx_pkt' type-id='1dc6a898' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='tx_curr_frame_payload' type-id='19c2251e' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2464'>
+          <var-decl name='tx_reason_ntb_full' type-id='19c2251e' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='tx_reason_ndp_full' type-id='19c2251e' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2528'>
+          <var-decl name='tx_reason_timeout' type-id='19c2251e' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='tx_reason_max_datagram' type-id='19c2251e' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='tx_overhead' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='tx_ntbs' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='rx_overhead' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='rx_ntbs' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='152' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='eaa32e2f' size-in-bits='128' id='24ae0315'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='91088608' size-in-bits='64' id='24b0cc5e'/>
+      <class-decl name='stackframe' size-in-bits='320' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/stacktrace.h' line='53' column='1' id='24b7dd0c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fp' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/stacktrace.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pc' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/stacktrace.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='stacks_done' type-id='f066dd3c' visibility='default' filepath='arch/arm64/include/asm/stacktrace.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='prev_fp' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/stacktrace.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='prev_type' type-id='cfa989ad' visibility='default' filepath='arch/arm64/include/asm/stacktrace.h' line='58' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='24bce3cf'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='4ee142e7'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d87d8242' size-in-bits='64' id='24c1e1dc'/>
+      <function-type size-in-bits='64' id='24c24978'>
+        <parameter type-id='33c599da'/>
+        <parameter type-id='c484cc9e'/>
+        <return type-id='26a90f95'/>
+      </function-type>
+      <class-decl name='ptp_pin_desc' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='174' column='1' id='24c8469d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='59daf3ef' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='func' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='chan' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='rsv' type-id='4d5a4f46' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='198' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='vfl_devnode_type' filepath='include/media/v4l2-dev.h' line='36' column='1' id='24df61b5'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='VFL_TYPE_VIDEO' value='0'/>
+        <enumerator name='VFL_TYPE_VBI' value='1'/>
+        <enumerator name='VFL_TYPE_RADIO' value='2'/>
+        <enumerator name='VFL_TYPE_SUBDEV' value='3'/>
+        <enumerator name='VFL_TYPE_SDR' value='4'/>
+        <enumerator name='VFL_TYPE_TOUCH' value='5'/>
+        <enumerator name='VFL_TYPE_MAX' value='6'/>
+      </enum-decl>
+      <enum-decl name='drm_mm_insert_mode' filepath='include/drm/drm_mm.h' line='68' column='1' id='24e1ec7e'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DRM_MM_INSERT_BEST' value='0'/>
+        <enumerator name='DRM_MM_INSERT_LOW' value='1'/>
+        <enumerator name='DRM_MM_INSERT_HIGH' value='2'/>
+        <enumerator name='DRM_MM_INSERT_EVICT' value='3'/>
+        <enumerator name='DRM_MM_INSERT_ONCE' value='2147483648'/>
+        <enumerator name='DRM_MM_INSERT_HIGHEST' value='2147483650'/>
+        <enumerator name='DRM_MM_INSERT_LOWEST' value='2147483649'/>
+      </enum-decl>
+      <pointer-type-def type-id='c0d601be' size-in-bits='64' id='24e47bfc'/>
+      <function-type size-in-bits='64' id='24e53f78'>
+        <parameter type-id='ecb0ce18'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='45982b9d' size-in-bits='64' id='24f0ce5d'/>
+      <function-type size-in-bits='64' id='24f3731d'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='29d28711'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <function-type size-in-bits='64' id='25048781'>
+        <parameter type-id='75ae4804'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='d99208ba' size-in-bits='64' id='250b293b'/>
+      <array-type-def dimensions='1' type-id='e3a91a7c' size-in-bits='infinite' id='250ecbd0'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='002ac4a6' size-in-bits='192' id='25108e54'>
+        <subrange length='24' type-id='7ff19f0f' id='fdd3342b'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='25126efb'>
+        <parameter type-id='b5fb9c17'/>
+        <parameter type-id='236f06da'/>
+        <parameter type-id='84a5c3d4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='devcon_match_fn_t' type-id='6a84c58f' filepath='include/linux/property.h' line='440' column='1' id='2517d133'/>
+      <class-decl name='plt_entry' size-in-bits='96' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/module.h' line='39' column='1' id='2519c394'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='adrp' type-id='2f162548' visibility='default' filepath='arch/arm64/include/asm/module.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='add' type-id='2f162548' visibility='default' filepath='arch/arm64/include/asm/module.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='br' type-id='2f162548' visibility='default' filepath='arch/arm64/include/asm/module.h' line='50' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='50db3e2c' size-in-bits='64' id='251cfe5a'/>
+      <typedef-decl name='phys_addr_t' type-id='91ce1af9' filepath='include/linux/types.h' line='153' column='1' id='2522883d'/>
+      <function-type size-in-bits='64' id='25270794'>
+        <parameter type-id='f41a0030'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='b4c4f641'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='25308a14'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='b3405adf'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a3274c4b' size-in-bits='64' id='253d2bfb'/>
+      <pointer-type-def type-id='cea824ff' size-in-bits='64' id='254733eb'/>
+      <pointer-type-def type-id='ec280828' size-in-bits='64' id='254852de'/>
+      <pointer-type-def type-id='01e0721b' size-in-bits='64' id='2553c323'/>
+      <pointer-type-def type-id='80343f75' size-in-bits='64' id='2555df59'/>
+      <pointer-type-def type-id='faa1424f' size-in-bits='64' id='255e0487'/>
+      <function-type size-in-bits='64' id='255fd689'>
+        <parameter type-id='260390aa'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='aded214c'/>
+        <parameter type-id='d504f73d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='mmc_ext_csd' size-in-bits='1344' is-struct='yes' visibility='default' filepath='include/linux/mmc/card.h' line='46' column='1' id='2561085d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rev' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='erase_group_def' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='sec_feature_support' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='rel_sectors' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='rel_param' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='enhanced_rpmb_supported' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/card.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='part_config' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='cache_ctrl' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rst_n_function' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='max_packed_writes' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='max_packed_reads' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='packed_event_en' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='part_time' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sa_timeout' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='generic_cmd6_time' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='power_off_longtime' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='power_off_notification' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='hs_max_dtr' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='hs200_max_dtr' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='sectors' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='hc_erase_size' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='hc_erase_timeout' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='sec_trim_mult' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='sec_erase_mult' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='trim_timeout' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='partition_setting_completed' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/card.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='enhanced_area_offset' type-id='0d77e947' visibility='default' filepath='include/linux/mmc/card.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='enhanced_area_size' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='cache_size' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='hpi_en' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/card.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='712'>
+          <var-decl name='hpi' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/card.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='hpi_cmd' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='bkops' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/card.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='776'>
+          <var-decl name='man_bkops_en' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/card.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='784'>
+          <var-decl name='auto_bkops_en' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/card.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='data_sector_size' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='data_tag_unit_size' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='boot_ro_lock' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='boot_ro_lockable' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/card.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='904'>
+          <var-decl name='ffu_capable' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/card.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='912'>
+          <var-decl name='cmdq_en' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/card.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='920'>
+          <var-decl name='cmdq_support' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/card.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='cmdq_depth' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='fwrev' type-id='d2f7b56a' visibility='default' filepath='include/linux/mmc/card.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='raw_exception_status' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1032'>
+          <var-decl name='raw_partition_support' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1040'>
+          <var-decl name='raw_rpmb_size_mult' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1048'>
+          <var-decl name='raw_erased_mem_count' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='strobe_support' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1064'>
+          <var-decl name='raw_ext_csd_structure' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1072'>
+          <var-decl name='raw_card_type' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1080'>
+          <var-decl name='raw_driver_strength' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='out_of_int_time' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1096'>
+          <var-decl name='raw_pwr_cl_52_195' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1104'>
+          <var-decl name='raw_pwr_cl_26_195' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1112'>
+          <var-decl name='raw_pwr_cl_52_360' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='raw_pwr_cl_26_360' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1128'>
+          <var-decl name='raw_s_a_timeout' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1136'>
+          <var-decl name='raw_hc_erase_gap_size' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1144'>
+          <var-decl name='raw_erase_timeout_mult' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='raw_hc_erase_grp_size' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1160'>
+          <var-decl name='raw_boot_mult' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1168'>
+          <var-decl name='raw_sec_trim_mult' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1176'>
+          <var-decl name='raw_sec_erase_mult' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='raw_sec_feature_support' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1192'>
+          <var-decl name='raw_trim_mult' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1200'>
+          <var-decl name='raw_pwr_cl_200_195' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1208'>
+          <var-decl name='raw_pwr_cl_200_360' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='raw_pwr_cl_ddr_52_195' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1224'>
+          <var-decl name='raw_pwr_cl_ddr_52_360' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1232'>
+          <var-decl name='raw_pwr_cl_ddr_200_360' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1240'>
+          <var-decl name='raw_bkops_status' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='raw_sectors' type-id='931565be' visibility='default' filepath='include/linux/mmc/card.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='pre_eol_info' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1288'>
+          <var-decl name='device_life_time_est_typ_a' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1296'>
+          <var-decl name='device_life_time_est_typ_b' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='feature_support' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='129' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='sched_entity' size-in-bits='4096' is-struct='yes' visibility='default' filepath='include/linux/sched.h' line='531' column='1' id='2561fcb2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='load' type-id='ad979632' visibility='default' filepath='include/linux/sched.h' line='533' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='run_node' type-id='2a8a6332' visibility='default' filepath='include/linux/sched.h' line='534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='group_node' type-id='72f469ec' visibility='default' filepath='include/linux/sched.h' line='535' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='on_rq' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='536' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='exec_start' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='538' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='sum_exec_runtime' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='539' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='vruntime' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='540' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='prev_sum_exec_runtime' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='541' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='nr_migrations' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='543' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='statistics' type-id='4ebe02b2' visibility='default' filepath='include/linux/sched.h' line='545' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='depth' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='548' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='parent' type-id='ff2b3d10' visibility='default' filepath='include/linux/sched.h' line='549' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='cfs_rq' type-id='a6892387' visibility='default' filepath='include/linux/sched.h' line='551' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='my_q' type-id='a6892387' visibility='default' filepath='include/linux/sched.h' line='553' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='runnable_weight' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='avg' type-id='629c8d83' visibility='default' filepath='include/linux/sched.h' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='570' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='571' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='31b13f91' size-in-bits='64' id='2567e379'/>
+      <function-type size-in-bits='64' id='256a6e6c'>
+        <parameter type-id='2661e0d9'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='19c2251e'/>
+      </function-type>
+      <enum-decl name='iommu_resv_type' filepath='include/linux/iommu.h' line='124' column='1' id='256c2037'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='IOMMU_RESV_DIRECT' value='0'/>
+        <enumerator name='IOMMU_RESV_DIRECT_RELAXABLE' value='1'/>
+        <enumerator name='IOMMU_RESV_RESERVED' value='2'/>
+        <enumerator name='IOMMU_RESV_MSI' value='3'/>
+        <enumerator name='IOMMU_RESV_SW_MSI' value='4'/>
+      </enum-decl>
+      <class-decl name='snd_dec_alac' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/sound/compress_params.h' line='341' column='1' id='256f3ff1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='frame_length' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='compatible_version' type-id='8f048e17' visibility='default' filepath='include/uapi/sound/compress_params.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='pb' type-id='8f048e17' visibility='default' filepath='include/uapi/sound/compress_params.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='mb' type-id='8f048e17' visibility='default' filepath='include/uapi/sound/compress_params.h' line='345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='kb' type-id='8f048e17' visibility='default' filepath='include/uapi/sound/compress_params.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max_run' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='max_frame_bytes' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='348' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='2572f485'>
+        <parameter type-id='e7d2a5fc'/>
+        <parameter type-id='3dad1a48'/>
+        <parameter type-id='3dad1a48'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='rproc_crash_type' filepath='include/linux/remoteproc.h' line='450' column='1' id='25751b8f'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='RPROC_MMUFAULT' value='0'/>
+        <enumerator name='RPROC_WATCHDOG' value='1'/>
+        <enumerator name='RPROC_FATAL_ERROR' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='0795c636' size-in-bits='64' id='2579e5b0'/>
+      <function-type size-in-bits='64' id='257e5168'>
+        <parameter type-id='d30bdc51'/>
+        <parameter type-id='2168a3eb'/>
+        <parameter type-id='acd96ee1'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='258baccc'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='a65dd5e8'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='99c97f55' size-in-bits='64' id='258e7e75'/>
+      <typedef-decl name='umode_t' type-id='8efea9e5' filepath='include/linux/types.h' line='19' column='1' id='2594b00f'/>
+      <array-type-def dimensions='1' type-id='51d84938' size-in-bits='131104' id='25a33d19'>
+        <subrange length='4097' type-id='7ff19f0f' id='8018c0d1'/>
+      </array-type-def>
+      <pointer-type-def type-id='0b26778c' size-in-bits='64' id='25a3fd6e'/>
+      <pointer-type-def type-id='d3581737' size-in-bits='64' id='25b0d1cf'/>
+      <pointer-type-def type-id='1f8b1638' size-in-bits='64' id='25b4f1ae'/>
+      <pointer-type-def type-id='6ae96bbe' size-in-bits='64' id='25b56694'/>
+      <class-decl name='drm_tv_connector_state' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/drm/drm_connector.h' line='645' column='1' id='25b5f0d7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='subconnector' type-id='b590704f' visibility='default' filepath='include/drm/drm_connector.h' line='646' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='margins' type-id='a38825b1' visibility='default' filepath='include/drm/drm_connector.h' line='647' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='mode' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='648' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='brightness' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='649' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='contrast' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='650' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='flicker_reduction' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='651' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='overscan' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='652' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='saturation' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='653' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='hue' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='654' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='25baaf57'>
+        <parameter type-id='414ea452'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='f02c18fa' const='yes' id='25bc1b8d'/>
+      <function-type size-in-bits='64' id='25c33493'>
+        <parameter type-id='8bf48c31'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='117b6b23' size-in-bits='64' id='25c6126f'/>
+      <class-decl name='xhci_ep_ctx' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='707' column='1' id='25cf7d45'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ep_info' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='708' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ep_info2' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='709' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='deq' type-id='a30e8d1f' visibility='default' filepath='drivers/usb/host/xhci.h' line='710' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tx_info' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='711' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='reserved' type-id='e3725386' visibility='default' filepath='drivers/usb/host/xhci.h' line='713' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='25d3f8e9'>
+        <parameter type-id='85196e3f'/>
+        <parameter type-id='7d5a17ad'/>
+        <return type-id='453a795e'/>
+      </function-type>
+      <class-decl name='mtd_info' size-in-bits='12416' is-struct='yes' visibility='default' filepath='include/linux/mtd/mtd.h' line='236' column='1' id='25dc4075'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='b151a3a8' visibility='default' filepath='include/linux/mtd/mtd.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='flags' type-id='8f92235e' visibility='default' filepath='include/linux/mtd/mtd.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='9c313c2d' visibility='default' filepath='include/linux/mtd/mtd.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='erasesize' type-id='8f92235e' visibility='default' filepath='include/linux/mtd/mtd.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='writesize' type-id='8f92235e' visibility='default' filepath='include/linux/mtd/mtd.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='writebufsize' type-id='8f92235e' visibility='default' filepath='include/linux/mtd/mtd.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='oobsize' type-id='8f92235e' visibility='default' filepath='include/linux/mtd/mtd.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='oobavail' type-id='8f92235e' visibility='default' filepath='include/linux/mtd/mtd.h' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='erasesize_shift' type-id='f0981eeb' visibility='default' filepath='include/linux/mtd/mtd.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='writesize_shift' type-id='f0981eeb' visibility='default' filepath='include/linux/mtd/mtd.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='erasesize_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/mtd/mtd.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='writesize_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/mtd/mtd.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='bitflip_threshold' type-id='f0981eeb' visibility='default' filepath='include/linux/mtd/mtd.h' line='286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/mtd/mtd.h' line='289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='index' type-id='95e97e5e' visibility='default' filepath='include/linux/mtd/mtd.h' line='290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ooblayout' type-id='a2ce5275' visibility='default' filepath='include/linux/mtd/mtd.h' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='pairing' type-id='ec1a9290' visibility='default' filepath='include/linux/mtd/mtd.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='ecc_step_size' type-id='f0981eeb' visibility='default' filepath='include/linux/mtd/mtd.h' line='299' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='ecc_strength' type-id='f0981eeb' visibility='default' filepath='include/linux/mtd/mtd.h' line='302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='numeraseregions' type-id='95e97e5e' visibility='default' filepath='include/linux/mtd/mtd.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='eraseregions' type-id='c3b85b9b' visibility='default' filepath='include/linux/mtd/mtd.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='_erase' type-id='6edc5840' visibility='default' filepath='include/linux/mtd/mtd.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='_point' type-id='898f3126' visibility='default' filepath='include/linux/mtd/mtd.h' line='315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='_unpoint' type-id='377cc68f' visibility='default' filepath='include/linux/mtd/mtd.h' line='317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='_read' type-id='215f8c45' visibility='default' filepath='include/linux/mtd/mtd.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='_write' type-id='3a5ed4ca' visibility='default' filepath='include/linux/mtd/mtd.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='_panic_write' type-id='3a5ed4ca' visibility='default' filepath='include/linux/mtd/mtd.h' line='322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='_read_oob' type-id='06524697' visibility='default' filepath='include/linux/mtd/mtd.h' line='324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='_write_oob' type-id='06524697' visibility='default' filepath='include/linux/mtd/mtd.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='_get_fact_prot_info' type-id='c42bce58' visibility='default' filepath='include/linux/mtd/mtd.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='_read_fact_prot_reg' type-id='215f8c45' visibility='default' filepath='include/linux/mtd/mtd.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='_get_user_prot_info' type-id='c42bce58' visibility='default' filepath='include/linux/mtd/mtd.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='_read_user_prot_reg' type-id='215f8c45' visibility='default' filepath='include/linux/mtd/mtd.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='_write_user_prot_reg' type-id='3a5ed4ca' visibility='default' filepath='include/linux/mtd/mtd.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='_lock_user_prot_reg' type-id='377cc68f' visibility='default' filepath='include/linux/mtd/mtd.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='_erase_user_prot_reg' type-id='377cc68f' visibility='default' filepath='include/linux/mtd/mtd.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='_writev' type-id='59376d1e' visibility='default' filepath='include/linux/mtd/mtd.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='_sync' type-id='8093b228' visibility='default' filepath='include/linux/mtd/mtd.h' line='345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='_lock' type-id='bd9e4f1c' visibility='default' filepath='include/linux/mtd/mtd.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='_unlock' type-id='bd9e4f1c' visibility='default' filepath='include/linux/mtd/mtd.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='_is_locked' type-id='bd9e4f1c' visibility='default' filepath='include/linux/mtd/mtd.h' line='348' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='_block_isreserved' type-id='bcea32e0' visibility='default' filepath='include/linux/mtd/mtd.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='_block_isbad' type-id='bcea32e0' visibility='default' filepath='include/linux/mtd/mtd.h' line='350' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='_block_markbad' type-id='bcea32e0' visibility='default' filepath='include/linux/mtd/mtd.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='_max_bad_blocks' type-id='377cc68f' visibility='default' filepath='include/linux/mtd/mtd.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='_suspend' type-id='8371387b' visibility='default' filepath='include/linux/mtd/mtd.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='_resume' type-id='8093b228' visibility='default' filepath='include/linux/mtd/mtd.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='_reboot' type-id='8093b228' visibility='default' filepath='include/linux/mtd/mtd.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='_get_device' type-id='8371387b' visibility='default' filepath='include/linux/mtd/mtd.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='_put_device' type-id='8093b228' visibility='default' filepath='include/linux/mtd/mtd.h' line='361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='oops_panic_write' type-id='b50a4934' visibility='default' filepath='include/linux/mtd/mtd.h' line='367' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='reboot_notifier' type-id='9b08f7cd' visibility='default' filepath='include/linux/mtd/mtd.h' line='369' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='ecc_stats' type-id='7b8d694e' visibility='default' filepath='include/linux/mtd/mtd.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='subpage_sft' type-id='95e97e5e' visibility='default' filepath='include/linux/mtd/mtd.h' line='374' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/mtd/mtd.h' line='376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/mtd/mtd.h' line='378' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/mtd/mtd.h' line='379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10624'>
+          <var-decl name='usecount' type-id='95e97e5e' visibility='default' filepath='include/linux/mtd/mtd.h' line='380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10688'>
+          <var-decl name='dbg' type-id='a26151b5' visibility='default' filepath='include/linux/mtd/mtd.h' line='381' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10880'>
+          <var-decl name='nvmem' type-id='8179bc49' visibility='default' filepath='include/linux/mtd/mtd.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10944'>
+          <var-decl name='otp_user_nvmem' type-id='8179bc49' visibility='default' filepath='include/linux/mtd/mtd.h' line='383' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11008'>
+          <var-decl name='otp_factory_nvmem' type-id='8179bc49' visibility='default' filepath='include/linux/mtd/mtd.h' line='384' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11072'>
+          <var-decl name='parent' type-id='58ed56f5' visibility='default' filepath='include/linux/mtd/mtd.h' line='392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11136'>
+          <var-decl name='partitions' type-id='72f469ec' visibility='default' filepath='include/linux/mtd/mtd.h' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11264'>
+          <var-decl name='part' type-id='f31c3b24' visibility='default' filepath='include/linux/mtd/mtd.h' line='397' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11584'>
+          <var-decl name='master' type-id='dc79bec3' visibility='default' filepath='include/linux/mtd/mtd.h' line='398' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pinctrl_desc' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='130' column='1' id='25e1863f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pins' type-id='caec04a4' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='npins' type-id='f0981eeb' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pctlops' type-id='0ec7edd9' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='pmxops' type-id='6780b0ea' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='confops' type-id='ddf6796c' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='num_custom_params' type-id='f0981eeb' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='custom_params' type-id='5198b4a4' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='custom_conf_items' type-id='67b214d6' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='link_consumers' type-id='b50a4934' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='143' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='25e34545'>
+        <parameter type-id='43c38462'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='39b596d4' size-in-bits='64' id='25e60cb2'/>
+      <pointer-type-def type-id='dac34efa' size-in-bits='64' id='25ea0608'/>
+      <function-type size-in-bits='64' id='25edcf18'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='d8a61886'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='cpuidle_device_kobj' is-struct='yes' visibility='default' is-declaration-only='yes' id='25ee3a49'/>
+      <pointer-type-def type-id='c016a1fc' size-in-bits='64' id='260390aa'/>
+      <enum-decl name='nf_log_type' filepath='include/net/netfilter/nf_log.h' line='14' column='1' id='26066116'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NF_LOG_TYPE_LOG' value='0'/>
+        <enumerator name='NF_LOG_TYPE_ULOG' value='1'/>
+        <enumerator name='NF_LOG_TYPE_MAX' value='2'/>
+      </enum-decl>
+      <class-decl name='mmc_queue' size-in-bits='4352' is-struct='yes' visibility='default' filepath='drivers/mmc/core/queue.h' line='74' column='1' id='260fd734'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='card' type-id='13d38dcb' visibility='default' filepath='drivers/mmc/core/queue.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ctx' type-id='783f5582' visibility='default' filepath='drivers/mmc/core/queue.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tag_set' type-id='651086d7' visibility='default' filepath='drivers/mmc/core/queue.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='blkdata' type-id='59d9c4a9' visibility='default' filepath='drivers/mmc/core/queue.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='queue' type-id='e7d2a5fc' visibility='default' filepath='drivers/mmc/core/queue.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='drivers/mmc/core/queue.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2656'>
+          <var-decl name='in_flight' type-id='e024279b' visibility='default' filepath='drivers/mmc/core/queue.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='cqe_busy' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/core/queue.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2784'>
+          <var-decl name='busy' type-id='b50a4934' visibility='default' filepath='drivers/mmc/core/queue.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2792'>
+          <var-decl name='recovery_needed' type-id='b50a4934' visibility='default' filepath='drivers/mmc/core/queue.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2800'>
+          <var-decl name='in_recovery' type-id='b50a4934' visibility='default' filepath='drivers/mmc/core/queue.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2808'>
+          <var-decl name='rw_wait' type-id='b50a4934' visibility='default' filepath='drivers/mmc/core/queue.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='waiting' type-id='b50a4934' visibility='default' filepath='drivers/mmc/core/queue.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='recovery_work' type-id='ef9025d0' visibility='default' filepath='drivers/mmc/core/queue.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='wait' type-id='b5ab048f' visibility='default' filepath='drivers/mmc/core/queue.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='recovery_req' type-id='3dad1a48' visibility='default' filepath='drivers/mmc/core/queue.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='complete_req' type-id='3dad1a48' visibility='default' filepath='drivers/mmc/core/queue.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='complete_lock' type-id='925167dc' visibility='default' filepath='drivers/mmc/core/queue.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='complete_work' type-id='ef9025d0' visibility='default' filepath='drivers/mmc/core/queue.h' line='94' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='261083fc'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4c8ce8c5' size-in-bits='64' id='2610fb79'/>
+      <array-type-def dimensions='1' type-id='b7481dd4' size-in-bits='infinite' id='26179f78'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='4bb05fb0' size-in-bits='64' id='261a5572'/>
+      <function-type size-in-bits='64' id='261b7c73'>
+        <parameter type-id='27f3f5d8'/>
+        <parameter type-id='6478ea0a'/>
+        <parameter type-id='98d7a132'/>
+        <return type-id='02ac9d9d'/>
+      </function-type>
+      <typedef-decl name='filldir_t' type-id='78efe913' filepath='include/linux/fs.h' line='2000' column='1' id='262124ef'/>
+      <class-decl name='snd_soc_tplg_vendor_value_elem' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='213' column='1' id='26236645'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='token' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='value' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='215' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='a751a5e7' const='yes' id='2623cf64'/>
+      <array-type-def dimensions='1' type-id='5218160d' size-in-bits='13056' id='2629ebcd'>
+        <subrange length='17' type-id='7ff19f0f' id='888ad0ed'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='262a563e'>
+        <parameter type-id='2ae08426'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='262d57ae'>
+        <parameter type-id='4f4f2d55'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='arch_hw_breakpoint_ctrl' size-in-bits='32' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/hw_breakpoint.h' line='13' column='1' id='2633d065'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='__reserved' type-id='19c2251e' visibility='default' filepath='arch/arm64/include/asm/hw_breakpoint.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19'>
+          <var-decl name='len' type-id='19c2251e' visibility='default' filepath='arch/arm64/include/asm/hw_breakpoint.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27'>
+          <var-decl name='type' type-id='19c2251e' visibility='default' filepath='arch/arm64/include/asm/hw_breakpoint.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='29'>
+          <var-decl name='privilege' type-id='19c2251e' visibility='default' filepath='arch/arm64/include/asm/hw_breakpoint.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='31'>
+          <var-decl name='enabled' type-id='19c2251e' visibility='default' filepath='arch/arm64/include/asm/hw_breakpoint.h' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='baab64cf' size-in-bits='64' id='26385187'/>
+      <pointer-type-def type-id='54b8f32e' size-in-bits='64' id='2638ad78'/>
+      <pointer-type-def type-id='34f1eb39' size-in-bits='64' id='263d54b5'/>
+      <pointer-type-def type-id='40db5127' size-in-bits='64' id='26409777'/>
+      <pointer-type-def type-id='0319fc05' size-in-bits='64' id='26452515'/>
+      <pointer-type-def type-id='5ff1273a' size-in-bits='64' id='26461068'/>
+      <pointer-type-def type-id='c2a59aaa' size-in-bits='64' id='26479c18'/>
+      <function-type size-in-bits='64' id='26499861'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='298d29fd'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='99cd308f' size-in-bits='64' id='264baaf7'/>
+      <pointer-type-def type-id='29c8c1c5' size-in-bits='64' id='264d5ec9'/>
+      <class-decl name='regmap_async' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/base/regmap/internal.h' line='43' column='1' id='26527266'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='drivers/base/regmap/internal.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='map' type-id='29af9a71' visibility='default' filepath='drivers/base/regmap/internal.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='work_buf' type-id='eaa32e2f' visibility='default' filepath='drivers/base/regmap/internal.h' line='46' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ee9a0086' size-in-bits='64' id='26560df0'/>
+      <typedef-decl name='usb_role_switch_set_t' type-id='cb5b6deb' filepath='include/linux/usb/role.h' line='16' column='1' id='265b58a4'/>
+      <pointer-type-def type-id='9d22e201' size-in-bits='64' id='2661e0d9'/>
+      <typedef-decl name='fmode_t' type-id='f0981eeb' filepath='include/linux/types.h' line='150' column='1' id='2665334e'/>
+      <pointer-type-def type-id='774cf1e5' size-in-bits='64' id='26692209'/>
+      <class-decl name='of_regulator_match' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/regulator/of_regulator.h' line='12' column='1' id='266b553e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/regulator/of_regulator.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/regulator/of_regulator.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='init_data' type-id='d287fe92' visibility='default' filepath='include/linux/regulator/of_regulator.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='of_node' type-id='9a537bbe' visibility='default' filepath='include/linux/regulator/of_regulator.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='desc' type-id='5629bd41' visibility='default' filepath='include/linux/regulator/of_regulator.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='266b9741'>
+        <parameter type-id='ec77b5b8'/>
+        <parameter type-id='354f7eb9'/>
+        <parameter type-id='354f7eb9'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='26a90f95' restrict='yes' id='266fe297'/>
+      <pointer-type-def type-id='2d58d013' size-in-bits='64' id='267580ce'/>
+      <pointer-type-def type-id='63b74212' size-in-bits='64' id='26760480'/>
+      <class-decl name='v4l2_ctrl_h264_sps' size-in-bits='8384' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1310' column='1' id='26761b9f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='profile_idc' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1311' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='constraint_set_flags' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='level_idc' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1313' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='seq_parameter_set_id' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='chroma_format_idc' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='bit_depth_luma_minus8' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='bit_depth_chroma_minus8' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='log2_max_frame_num_minus4' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pic_order_cnt_type' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='log2_max_pic_order_cnt_lsb_minus4' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='max_num_ref_frames' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='num_ref_frames_in_pic_order_cnt_cycle' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='offset_for_ref_frame' type-id='29cc01cd' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='offset_for_non_ref_pic' type-id='3158a266' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8288'>
+          <var-decl name='offset_for_top_to_bottom_field' type-id='3158a266' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='pic_width_in_mbs_minus1' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8336'>
+          <var-decl name='pic_height_in_map_units_minus1' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8352'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1328' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='267816c1'>
+        <parameter type-id='7544e824'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='ecabee4c' size-in-bits='64' id='268afde6'/>
+      <qualified-type-def type-id='61227238' const='yes' id='268fa5d8'/>
+      <qualified-type-def type-id='61227239' const='yes' id='268fa5d9'/>
+      <pointer-type-def type-id='066f541d' size-in-bits='64' id='26989ff9'/>
+      <pointer-type-def type-id='a547d92e' size-in-bits='64' id='2699ed14'/>
+      <qualified-type-def type-id='16e7829f' const='yes' id='269d8092'/>
+      <function-type size-in-bits='64' id='26a5fedd'>
+        <parameter type-id='7efbcaaf'/>
+        <parameter type-id='b1e844c1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a84c031d' size-in-bits='64' id='26a90f95'/>
+      <class-decl name='v4l2_ctrl_hdr10_mastering_display' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='2006' column='1' id='26ac6d87'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='display_primaries_x' type-id='450d2a3a' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='2007' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='display_primaries_y' type-id='450d2a3a' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='2008' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='white_point_x' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='2009' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='white_point_y' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='2010' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='max_display_mastering_luminance' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='2011' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='min_display_mastering_luminance' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='2012' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='26b6dfe0'>
+        <parameter type-id='5dcd69c3'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='break_hook' size-in-bits='256' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/debug-monitors.h' line='88' column='1' id='26b98d12'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='arch/arm64/include/asm/debug-monitors.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fn' type-id='ae6f24b7' visibility='default' filepath='arch/arm64/include/asm/debug-monitors.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='imm' type-id='1dc6a898' visibility='default' filepath='arch/arm64/include/asm/debug-monitors.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='mask' type-id='1dc6a898' visibility='default' filepath='arch/arm64/include/asm/debug-monitors.h' line='92' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='26bba2ad'>
+        <parameter type-id='0dc3586b'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='02f03310'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='ucsi_connector_status' size-in-bits='72' is-struct='yes' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='233' column='1' id='26bdfeec'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='change' type-id='1dc6a898' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='flags' type-id='1dc6a898' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='request_data_obj' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pwr_status' type-id='f9b06939' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='267' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b1eae038' size-in-bits='64' id='26bebc56'/>
+      <pointer-type-def type-id='33c534fd' size-in-bits='64' id='26bfaed1'/>
+      <function-type size-in-bits='64' id='26c7d506'>
+        <parameter type-id='6ec0fd31'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='f1fbc58e' size-in-bits='64' id='26cad514'/>
+      <pointer-type-def type-id='26b98d12' size-in-bits='64' id='26d099e0'/>
+      <function-type size-in-bits='64' id='26d45b0c'>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='67f526b5'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='1dc6a898' size-in-bits='64' id='26d4d46f'/>
+      <pointer-type-def type-id='e6a2c851' size-in-bits='64' id='26deddb9'/>
+      <typedef-decl name='fr_proto_pvc_info' type-id='efb59b75' filepath='include/uapi/linux/hdlc/ioctl.h' line='75' column='1' id='26e73b36'/>
+      <array-type-def dimensions='1' type-id='380c7edc' size-in-bits='128' id='26e7af58'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='811caa36' size-in-bits='64' id='26ea5d4c'/>
+      <pointer-type-def type-id='ec1aac50' size-in-bits='64' id='26f00576'/>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='192' id='26f0765c'>
+        <subrange length='24' type-id='7ff19f0f' id='fdd3342b'/>
+      </array-type-def>
+      <pointer-type-def type-id='58c82a2b' size-in-bits='64' id='26f734e7'/>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='160' id='26fb03b8'>
+        <subrange length='20' type-id='7ff19f0f' id='fdca39cf'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='2707fa43'>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='a63f3a26'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='270dc7da'>
+        <parameter type-id='32efad44'/>
+        <parameter type-id='bbaf3419'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='dma_slave_buswidth' filepath='include/linux/dmaengine.h' line='374' column='1' id='270e7659'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DMA_SLAVE_BUSWIDTH_UNDEFINED' value='0'/>
+        <enumerator name='DMA_SLAVE_BUSWIDTH_1_BYTE' value='1'/>
+        <enumerator name='DMA_SLAVE_BUSWIDTH_2_BYTES' value='2'/>
+        <enumerator name='DMA_SLAVE_BUSWIDTH_3_BYTES' value='3'/>
+        <enumerator name='DMA_SLAVE_BUSWIDTH_4_BYTES' value='4'/>
+        <enumerator name='DMA_SLAVE_BUSWIDTH_8_BYTES' value='8'/>
+        <enumerator name='DMA_SLAVE_BUSWIDTH_16_BYTES' value='16'/>
+        <enumerator name='DMA_SLAVE_BUSWIDTH_32_BYTES' value='32'/>
+        <enumerator name='DMA_SLAVE_BUSWIDTH_64_BYTES' value='64'/>
+        <enumerator name='DMA_SLAVE_BUSWIDTH_128_BYTES' value='128'/>
+      </enum-decl>
+      <pointer-type-def type-id='63a6e12c' size-in-bits='64' id='2712709a'/>
+      <class-decl name='ucsi_operations' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='48' column='1' id='2716b768'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='read' type-id='86d04516' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sync_write' type-id='86d04516' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='async_write' type-id='86d04516' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='update_altmodes' type-id='f44dbedf' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='55' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pp_alloc_cache' size-in-bits='8256' is-struct='yes' visibility='default' filepath='include/net/page_pool.h' line='70' column='1' id='271cf31a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='19c2251e' visibility='default' filepath='include/net/page_pool.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cache' type-id='b79eda29' visibility='default' filepath='include/net/page_pool.h' line='72' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='272672f5'>
+        <parameter type-id='8898134d'/>
+        <parameter type-id='5e4f599b'/>
+        <return type-id='abd62a96'/>
+      </function-type>
+      <function-type size-in-bits='64' id='272e7e29'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='309a5a26'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <pointer-type-def type-id='29476915' size-in-bits='64' id='2730d015'/>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='5376' id='2731130d'>
+        <subrange length='672' type-id='7ff19f0f' id='f11ba364'/>
+      </array-type-def>
+      <class-decl name='elevator_type' size-in-bits='2752' is-struct='yes' visibility='default' filepath='include/linux/elevator.h' line='72' column='1' id='2731de48'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='icq_cache' type-id='f3b4aca8' visibility='default' filepath='include/linux/elevator.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ops' type-id='386fe521' visibility='default' filepath='include/linux/elevator.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='icq_size' type-id='b59d7dce' visibility='default' filepath='include/linux/elevator.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='icq_align' type-id='b59d7dce' visibility='default' filepath='include/linux/elevator.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='elevator_attrs' type-id='177a4437' visibility='default' filepath='include/linux/elevator.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='elevator_name' type-id='80f4b756' visibility='default' filepath='include/linux/elevator.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='elevator_alias' type-id='80f4b756' visibility='default' filepath='include/linux/elevator.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='elevator_features' type-id='20f5f452' visibility='default' filepath='include/linux/elevator.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='elevator_owner' type-id='2730d015' visibility='default' filepath='include/linux/elevator.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='queue_debugfs_attrs' type-id='e649198d' visibility='default' filepath='include/linux/elevator.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='hctx_debugfs_attrs' type-id='e649198d' visibility='default' filepath='include/linux/elevator.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='icq_cache_name' type-id='aa4fa8f1' visibility='default' filepath='include/linux/elevator.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/elevator.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/elevator.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/elevator.h' line='97' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='nd_cmd_get_config_size' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/ndctl.h' line='23' column='1' id='2733af22'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='status' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ndctl.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='config_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ndctl.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max_xfer' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ndctl.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='0e5b8ca7' const='yes' id='27365fde'/>
+      <pointer-type-def type-id='ddd7cbfe' size-in-bits='64' id='273a7d34'/>
+      <typedef-decl name='mempool_t' type-id='5932767e' filepath='include/linux/mempool.h' line='26' column='1' id='2745fad8'/>
+      <function-type size-in-bits='64' id='274c23aa'>
+        <parameter type-id='944c4ff9'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='d61bf978'/>
+        <parameter type-id='f9b37274'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9a46627e' size-in-bits='64' id='2753ede4'/>
+      <function-type size-in-bits='64' id='276427e1'>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c05e7862' size-in-bits='64' id='27653c4c'/>
+      <class-decl name='dma_chan_dev' size-in-bits='7424' is-struct='yes' visibility='default' filepath='include/linux/dmaengine.h' line='363' column='1' id='2765d8de'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='chan' type-id='27f3f5d8' visibility='default' filepath='include/linux/dmaengine.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='device' type-id='66e487eb' visibility='default' filepath='include/linux/dmaengine.h' line='365' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='dev_id' type-id='95e97e5e' visibility='default' filepath='include/linux/dmaengine.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7392'>
+          <var-decl name='chan_dma_dev' type-id='b50a4934' visibility='default' filepath='include/linux/dmaengine.h' line='367' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d6ebca75' size-in-bits='64' id='27675065'/>
+      <pointer-type-def type-id='f3b4aca8' size-in-bits='64' id='276b90a6'/>
+      <function-type size-in-bits='64' id='277029da'>
+        <parameter type-id='27675065'/>
+        <parameter type-id='c5a4eb7f'/>
+        <return type-id='27675065'/>
+      </function-type>
+      <pointer-type-def type-id='25308a14' size-in-bits='64' id='27708a26'/>
+      <pointer-type-def type-id='ec8469f9' size-in-bits='64' id='27729729'/>
+      <function-type size-in-bits='64' id='277480c7'>
+        <parameter type-id='ca9354d1'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='107219ed' size-in-bits='64' id='277e3361'/>
+      <qualified-type-def type-id='73303b8d' const='yes' id='278041ac'/>
+      <class-decl name='pagevec' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/pagevec.h' line='20' column='1' id='2782a6ec'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nr' type-id='002ac4a6' visibility='default' filepath='include/linux/pagevec.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='percpu_pvec_drained' type-id='b50a4934' visibility='default' filepath='include/linux/pagevec.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pages' type-id='b210041a' visibility='default' filepath='include/linux/pagevec.h' line='23' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='media_pipeline' size-in-bits='2304' is-struct='yes' visibility='default' filepath='include/media/media-entity.h' line='104' column='1' id='2783658a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='streaming_count' type-id='95e97e5e' visibility='default' filepath='include/media/media-entity.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='graph' type-id='32ec86e0' visibility='default' filepath='include/media/media-entity.h' line='106' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='278986d0'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='3b9da04c'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='28e1d9ae' size-in-bits='64' id='278a4544'/>
+      <class-decl name='genl_family' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/net/genetlink.h' line='49' column='1' id='278d8d7c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/net/genetlink.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='hdrsize' type-id='f0981eeb' visibility='default' filepath='include/net/genetlink.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='ac1fa8c0' visibility='default' filepath='include/net/genetlink.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='version' type-id='f0981eeb' visibility='default' filepath='include/net/genetlink.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='maxattr' type-id='f0981eeb' visibility='default' filepath='include/net/genetlink.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mcgrp_offset' type-id='f0981eeb' visibility='default' filepath='include/net/genetlink.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='netnsok' type-id='f9b06939' visibility='default' filepath='include/net/genetlink.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='289'>
+          <var-decl name='parallel_ops' type-id='f9b06939' visibility='default' filepath='include/net/genetlink.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='296'>
+          <var-decl name='n_ops' type-id='f9b06939' visibility='default' filepath='include/net/genetlink.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='304'>
+          <var-decl name='n_small_ops' type-id='f9b06939' visibility='default' filepath='include/net/genetlink.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='312'>
+          <var-decl name='n_mcgrps' type-id='f9b06939' visibility='default' filepath='include/net/genetlink.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='policy' type-id='109cdb66' visibility='default' filepath='include/net/genetlink.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='pre_doit' type-id='a45ad774' visibility='default' filepath='include/net/genetlink.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='post_doit' type-id='14ba77ef' visibility='default' filepath='include/net/genetlink.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ops' type-id='8ba26d85' visibility='default' filepath='include/net/genetlink.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='small_ops' type-id='8e1541f1' visibility='default' filepath='include/net/genetlink.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='mcgrps' type-id='f4bc933f' visibility='default' filepath='include/net/genetlink.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='module' type-id='2730d015' visibility='default' filepath='include/net/genetlink.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/genetlink.h' line='73' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='usb_phy_events' filepath='include/linux/usb/phy.h' line='29' column='1' id='278dd9ca'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='USB_EVENT_NONE' value='0'/>
+        <enumerator name='USB_EVENT_VBUS' value='1'/>
+        <enumerator name='USB_EVENT_ID' value='2'/>
+        <enumerator name='USB_EVENT_CHARGER' value='3'/>
+        <enumerator name='USB_EVENT_ENUMERATED' value='4'/>
+      </enum-decl>
+      <pointer-type-def type-id='b86ed83e' size-in-bits='64' id='27936440'/>
+      <class-decl name='xps_map' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='802' column='1' id='279bdcdf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='len' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='803' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='alloc_len' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='804' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/netdevice.h' line='805' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='queues' type-id='0f300383' visibility='default' filepath='include/linux/netdevice.h' line='806' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='regmap_hw_async_alloc' type-id='68f92bd7' filepath='include/linux/regmap.h' line='483' column='1' id='27a024fd'/>
+      <pointer-type-def type-id='d7231678' size-in-bits='64' id='27afa162'/>
+      <qualified-type-def type-id='4da0249b' const='yes' id='27b6d100'/>
+      <pointer-type-def type-id='6e44244d' size-in-bits='64' id='27b80621'/>
+      <pointer-type-def type-id='f111d4f3' size-in-bits='64' id='27bb8677'/>
+      <pointer-type-def type-id='6a65de43' size-in-bits='64' id='27c3122f'/>
+      <class-decl name='shrinker' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/shrinker.h' line='63' column='1' id='27cb404f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count_objects' type-id='cd2cc9e1' visibility='default' filepath='include/linux/shrinker.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='scan_objects' type-id='cd2cc9e1' visibility='default' filepath='include/linux/shrinker.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='batch' type-id='bd54fe1a' visibility='default' filepath='include/linux/shrinker.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='seeks' type-id='95e97e5e' visibility='default' filepath='include/linux/shrinker.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/shrinker.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/shrinker.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/shrinker.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='nr_deferred' type-id='5403cb36' visibility='default' filepath='include/linux/shrinker.h' line='80' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='f0981eeb' size-in-bits='448' id='27cbf0c8'>
+        <subrange length='14' type-id='7ff19f0f' id='48882d96'/>
+      </array-type-def>
+      <typedef-decl name='dio_submit_t' type-id='6d229cce' filepath='include/linux/fs.h' line='3275' column='1' id='27d499b2'/>
+      <pointer-type-def type-id='af1e6651' size-in-bits='64' id='27db53a1'/>
+      <class-decl name='snd_soc_dapm_wcache' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/sound/soc-dapm.h' line='683' column='1' id='27dc472b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='widget' type-id='810606ec' visibility='default' filepath='include/sound/soc-dapm.h' line='684' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='watchdog_ops' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/watchdog.h' line='43' column='1' id='27dec419'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/watchdog.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='start' type-id='26989ff9' visibility='default' filepath='include/linux/watchdog.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='stop' type-id='26989ff9' visibility='default' filepath='include/linux/watchdog.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ping' type-id='26989ff9' visibility='default' filepath='include/linux/watchdog.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='status' type-id='d601a214' visibility='default' filepath='include/linux/watchdog.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='set_timeout' type-id='b535be93' visibility='default' filepath='include/linux/watchdog.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='set_pretimeout' type-id='b535be93' visibility='default' filepath='include/linux/watchdog.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='get_timeleft' type-id='d601a214' visibility='default' filepath='include/linux/watchdog.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='restart' type-id='8899c21b' visibility='default' filepath='include/linux/watchdog.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ioctl' type-id='07da4e39' visibility='default' filepath='include/linux/watchdog.h' line='55' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='27e3f547'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='0892f7dc'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='inet_peer_base' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/inetpeer.h' line='61' column='1' id='27ebfa24'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rb_root' type-id='dec44472' visibility='default' filepath='include/net/inetpeer.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='lock' type-id='e6cd5ecf' visibility='default' filepath='include/net/inetpeer.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='total' type-id='95e97e5e' visibility='default' filepath='include/net/inetpeer.h' line='64' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='mempool_free_t' type-id='c039af2e' filepath='include/linux/mempool.h' line='14' column='1' id='27f2e0d9'/>
+      <pointer-type-def type-id='5e3b10aa' size-in-bits='64' id='27f3f5d8'/>
+      <function-type size-in-bits='64' id='27fe31c0'>
+        <parameter type-id='4dfe71de'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='28026fe4'>
+        <parameter type-id='b9608bfc'/>
+        <parameter type-id='00aa6a0e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='94ac9155' size-in-bits='64' id='280461d5'/>
+      <typedef-decl name='drm_ioctl_t' type-id='4e407315' filepath='include/drm/drm_ioctl.h' line='54' column='1' id='28063720'/>
+      <function-type size-in-bits='64' id='280730d4'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='a90d9002'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='iio_mount_matrix' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/iio/iio.h' line='124' column='1' id='28073f2a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rotation' type-id='35f7ccb5' visibility='default' filepath='include/linux/iio/iio.h' line='125' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a24a51b3' size-in-bits='64' id='280dcd9f'/>
+      <pointer-type-def type-id='c3a10c20' size-in-bits='64' id='28138af2'/>
+      <class-decl name='v4l2_prio_state' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/media/v4l2-dev.h' line='112' column='1' id='281d3096'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prios' type-id='6ed968f3' visibility='default' filepath='include/media/v4l2-dev.h' line='113' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c41f8fa1' size-in-bits='64' id='281e6c4d'/>
+      <pointer-type-def type-id='ce8c45a3' size-in-bits='64' id='28271da3'/>
+      <union-decl name='extcon_property_value' size-in-bits='32' visibility='default' filepath='include/linux/extcon.h' line='162' column='1' id='282b2805'>
+        <data-member access='public'>
+          <var-decl name='intval' type-id='95e97e5e' visibility='default' filepath='include/linux/extcon.h' line='163' column='1'/>
+        </data-member>
+      </union-decl>
+      <pointer-type-def type-id='708c2394' size-in-bits='64' id='282b7312'/>
+      <class-decl name='vhost_virtqueue' size-in-bits='150848' is-struct='yes' visibility='default' filepath='drivers/vhost/vhost.h' line='69' column='1' id='282c7c32'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='db1a91a3' visibility='default' filepath='drivers/vhost/vhost.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='drivers/vhost/vhost.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='num' type-id='f0981eeb' visibility='default' filepath='drivers/vhost/vhost.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='desc' type-id='054b2090' visibility='default' filepath='drivers/vhost/vhost.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='avail' type-id='d3adb902' visibility='default' filepath='drivers/vhost/vhost.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='used' type-id='8c63346c' visibility='default' filepath='drivers/vhost/vhost.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='meta_iotlb' type-id='4f78a557' visibility='default' filepath='drivers/vhost/vhost.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='kick' type-id='77e79a4b' visibility='default' filepath='drivers/vhost/vhost.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='call_ctx' type-id='8c950be5' visibility='default' filepath='drivers/vhost/vhost.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='error_ctx' type-id='71f2e203' visibility='default' filepath='drivers/vhost/vhost.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='log_ctx' type-id='71f2e203' visibility='default' filepath='drivers/vhost/vhost.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='poll' type-id='95fe2b61' visibility='default' filepath='drivers/vhost/vhost.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='handle_kick' type-id='e6a6a6c6' visibility='default' filepath='drivers/vhost/vhost.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='last_avail_idx' type-id='1dc6a898' visibility='default' filepath='drivers/vhost/vhost.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2576'>
+          <var-decl name='avail_idx' type-id='1dc6a898' visibility='default' filepath='drivers/vhost/vhost.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2592'>
+          <var-decl name='last_used_idx' type-id='1dc6a898' visibility='default' filepath='drivers/vhost/vhost.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2608'>
+          <var-decl name='used_flags' type-id='1dc6a898' visibility='default' filepath='drivers/vhost/vhost.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='signalled_used' type-id='1dc6a898' visibility='default' filepath='drivers/vhost/vhost.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2640'>
+          <var-decl name='signalled_used_valid' type-id='b50a4934' visibility='default' filepath='drivers/vhost/vhost.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2648'>
+          <var-decl name='log_used' type-id='b50a4934' visibility='default' filepath='drivers/vhost/vhost.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='log_addr' type-id='91ce1af9' visibility='default' filepath='drivers/vhost/vhost.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='iov' type-id='edb3766c' visibility='default' filepath='drivers/vhost/vhost.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='133824'>
+          <var-decl name='iotlb_iov' type-id='ac8d2c23' visibility='default' filepath='drivers/vhost/vhost.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='142016'>
+          <var-decl name='indirect' type-id='cc4b1be9' visibility='default' filepath='drivers/vhost/vhost.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='142080'>
+          <var-decl name='heads' type-id='57174d61' visibility='default' filepath='drivers/vhost/vhost.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='142144'>
+          <var-decl name='umem' type-id='c0da0f6c' visibility='default' filepath='drivers/vhost/vhost.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='142208'>
+          <var-decl name='iotlb' type-id='c0da0f6c' visibility='default' filepath='drivers/vhost/vhost.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='142272'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='drivers/vhost/vhost.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='142336'>
+          <var-decl name='acked_features' type-id='91ce1af9' visibility='default' filepath='drivers/vhost/vhost.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='142400'>
+          <var-decl name='acked_backend_features' type-id='91ce1af9' visibility='default' filepath='drivers/vhost/vhost.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='142464'>
+          <var-decl name='log_base' type-id='eaa32e2f' visibility='default' filepath='drivers/vhost/vhost.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='142528'>
+          <var-decl name='log' type-id='caa8cb44' visibility='default' filepath='drivers/vhost/vhost.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='142592'>
+          <var-decl name='log_iov' type-id='ac8d2c23' visibility='default' filepath='drivers/vhost/vhost.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='150784'>
+          <var-decl name='is_le' type-id='b50a4934' visibility='default' filepath='drivers/vhost/vhost.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='150816'>
+          <var-decl name='busyloop_timeout' type-id='19c2251e' visibility='default' filepath='drivers/vhost/vhost.h' line='137' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='28327a10'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='a4cdda22'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='28328cfd'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='58dc55d6'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f56f6c9c' size-in-bits='64' id='2833a0ca'/>
+      <typedef-decl name='drm_magic_t' type-id='f0981eeb' filepath='include/uapi/drm/drm.h' line='85' column='1' id='283696d2'/>
+      <pointer-type-def type-id='d8579536' size-in-bits='64' id='28375890'/>
+      <pointer-type-def type-id='82a21fa9' size-in-bits='64' id='28379b39'/>
+      <pointer-type-def type-id='01f5de5c' size-in-bits='64' id='283b1276'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/zstd.h' line='930' column='1' id='283cac5a' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='frameContentSize' type-id='0d77e947' visibility='default' filepath='include/linux/zstd.h' line='931' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='windowSize' type-id='f0981eeb' visibility='default' filepath='include/linux/zstd.h' line='932' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='dictID' type-id='f0981eeb' visibility='default' filepath='include/linux/zstd.h' line='933' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='checksumFlag' type-id='f0981eeb' visibility='default' filepath='include/linux/zstd.h' line='934' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='822bf95b' const='yes' id='283e536e'/>
+      <class-decl name='fib_rule_hdr' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/fib_rules.h' line='19' column='1' id='284260b8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='family' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/fib_rules.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='dst_len' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/fib_rules.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='src_len' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/fib_rules.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='tos' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/fib_rules.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='table' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/fib_rules.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='res1' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/fib_rules.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='res2' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/fib_rules.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='action' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/fib_rules.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fib_rules.h' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='284cd8d6'>
+        <parameter type-id='8bf48c31'/>
+        <parameter type-id='08496218'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <type-decl name='signed char' size-in-bits='8' id='28577a57'/>
+      <pointer-type-def type-id='334e564a' size-in-bits='64' id='28588d1c'/>
+      <pointer-type-def type-id='2f07c2f4' size-in-bits='64' id='2859cc56'/>
+      <function-type size-in-bits='64' id='285e362f'>
+        <parameter type-id='fc4f83c1'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='io_pgtable_fmt' filepath='include/linux/io-pgtable.h' line='11' column='1' id='28637b68'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ARM_32_LPAE_S1' value='0'/>
+        <enumerator name='ARM_32_LPAE_S2' value='1'/>
+        <enumerator name='ARM_64_LPAE_S1' value='2'/>
+        <enumerator name='ARM_64_LPAE_S2' value='3'/>
+        <enumerator name='ARM_V7S' value='4'/>
+        <enumerator name='ARM_MALI_LPAE' value='5'/>
+        <enumerator name='AMD_IOMMU_V1' value='6'/>
+        <enumerator name='APPLE_DART' value='7'/>
+        <enumerator name='IO_PGTABLE_NUM_FMTS' value='8'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='2f162548' size-in-bits='1024' id='28645bde'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='28678bf9'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='nl80211_wowlan_tcp_data_token' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5699' column='1' id='2868c21b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='offset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5700' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5700' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='token_stream' type-id='167619f6' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5701' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a87c488a' size-in-bits='64' id='2869bb38'/>
+      <pointer-type-def type-id='3bd0350e' size-in-bits='64' id='28714cc4'/>
+      <pointer-type-def type-id='605b61bb' size-in-bits='64' id='2871909b'/>
+      <function-type size-in-bits='64' id='2873dcbb'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='4f1d3179'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a017baf8' size-in-bits='64' id='28773d52'/>
+      <function-type size-in-bits='64' id='287b404f'>
+        <parameter type-id='23d6768c'/>
+        <parameter type-id='7fa6eeb8'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='67d8ed84' size-in-bits='64' id='287e28ea'/>
+      <pointer-type-def type-id='d72e913e' size-in-bits='64' id='287e3e50'/>
+      <typedef-decl name='key_ref_t' type-id='446f28fb' filepath='include/linux/key.h' line='147' column='1' id='28804ffa'/>
+      <union-decl name='key_payload' size-in-bits='256' visibility='default' filepath='include/linux/key.h' line='128' column='1' id='2888d74a'>
+        <data-member access='public'>
+          <var-decl name='rcu_data0' type-id='eaa32e2f' visibility='default' filepath='include/linux/key.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='data' type-id='209ef23f' visibility='default' filepath='include/linux/key.h' line='130' column='1'/>
+        </data-member>
+      </union-decl>
+      <pointer-type-def type-id='30c8d450' size-in-bits='64' id='288a7542'/>
+      <pointer-type-def type-id='859caa73' size-in-bits='64' id='288e0067'/>
+      <pointer-type-def type-id='d2ffa1e8' size-in-bits='64' id='288e890e'/>
+      <pointer-type-def type-id='ce6ad852' size-in-bits='64' id='289e8bdc'/>
+      <function-type size-in-bits='64' id='289e9467'>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='8802968a' const='yes' id='28b68df7'/>
+      <pointer-type-def type-id='cd313b90' size-in-bits='64' id='28ba4492'/>
+      <function-type size-in-bits='64' id='28cb132f'>
+        <parameter type-id='581abdef'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='46d25262' size-in-bits='64' id='28cbbf40'/>
+      <function-type size-in-bits='64' id='28d1931f'>
+        <parameter type-id='8cffa561'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='sbitmap_word' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/linux/sbitmap.h' line='20' column='1' id='28e1d9ae'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='depth' type-id='7359adad' visibility='default' filepath='include/linux/sbitmap.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='word' type-id='7359adad' visibility='default' filepath='include/linux/sbitmap.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='cleared' type-id='7359adad' visibility='default' filepath='include/linux/sbitmap.h' line='34' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='freelist_node' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/freelist.h' line='18' column='1' id='28e309d8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='refs' type-id='49178f86' visibility='default' filepath='include/linux/freelist.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='next' type-id='c872b38e' visibility='default' filepath='include/linux/freelist.h' line='20' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='hd_geometry' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/hdreg.h' line='324' column='1' id='28e89e7e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='heads' type-id='002ac4a6' visibility='default' filepath='include/uapi/linux/hdreg.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='sectors' type-id='002ac4a6' visibility='default' filepath='include/uapi/linux/hdreg.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='cylinders' type-id='8efea9e5' visibility='default' filepath='include/uapi/linux/hdreg.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='start' type-id='7359adad' visibility='default' filepath='include/uapi/linux/hdreg.h' line='328' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='atomic64_t' type-id='2fef71f1' filepath='include/linux/types.h' line='175' column='1' id='28ee064c'/>
+      <class-decl name='thermal_governor' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/thermal.h' line='200' column='1' id='2901941b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='664ac0b7' visibility='default' filepath='include/linux/thermal.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bind_to_tz' type-id='50293ce4' visibility='default' filepath='include/linux/thermal.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='unbind_from_tz' type-id='7a1ba1ed' visibility='default' filepath='include/linux/thermal.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='throttle' type-id='336c2e63' visibility='default' filepath='include/linux/thermal.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='governor_list' type-id='72f469ec' visibility='default' filepath='include/linux/thermal.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/thermal.h' line='207' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='78536370' size-in-bits='64' id='2908e93a'/>
+      <pointer-type-def type-id='9ff1d50f' size-in-bits='64' id='290bf697'/>
+      <function-type size-in-bits='64' id='290d3171'>
+        <parameter type-id='3213e875'/>
+        <parameter type-id='f8dc9def'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <function-type size-in-bits='64' id='2914f7c3'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='77e79a4b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='291d9c02'>
+        <parameter type-id='0b8718c0'/>
+        <return type-id='0f4f6276'/>
+      </function-type>
+      <class-decl name='napi_struct' size-in-bits='3456' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='323' column='1' id='291e3bb5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='poll_list' type-id='72f469ec' visibility='default' filepath='include/linux/netdevice.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='state' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='weight' type-id='95e97e5e' visibility='default' filepath='include/linux/netdevice.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='defer_hard_irqs_count' type-id='95e97e5e' visibility='default' filepath='include/linux/netdevice.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='gro_bitmask' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='poll' type-id='f07d90b4' visibility='default' filepath='include/linux/netdevice.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/linux/netdevice.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='gro_hash' type-id='91671be8' visibility='default' filepath='include/linux/netdevice.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='skb' type-id='0fbf3cfd' visibility='default' filepath='include/linux/netdevice.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='rx_list' type-id='72f469ec' visibility='default' filepath='include/linux/netdevice.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='rx_count' type-id='95e97e5e' visibility='default' filepath='include/linux/netdevice.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='timer' type-id='b6993efc' visibility='default' filepath='include/linux/netdevice.h' line='345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='dev_list' type-id='72f469ec' visibility='default' filepath='include/linux/netdevice.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='napi_hash_node' type-id='03a4a074' visibility='default' filepath='include/linux/netdevice.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='napi_id' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='348' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='thread' type-id='f23e2572' visibility='default' filepath='include/linux/netdevice.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='354' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='2922fb19'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='3a60b114' size-in-bits='64' id='29242f3e'/>
+      <pointer-type-def type-id='9c91a761' size-in-bits='64' id='29244949'/>
+      <class-decl name='spi_driver' size-in-bits='1728' is-struct='yes' visibility='default' filepath='include/linux/spi/spi.h' line='288' column='1' id='29290a00'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id_table' type-id='07695d8b' visibility='default' filepath='include/linux/spi/spi.h' line='289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='probe' type-id='4f312040' visibility='default' filepath='include/linux/spi/spi.h' line='290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='remove' type-id='4f312040' visibility='default' filepath='include/linux/spi/spi.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='shutdown' type-id='c965bc43' visibility='default' filepath='include/linux/spi/spi.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/spi/spi.h' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/spi/spi.h' line='295' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9ecd0e66' size-in-bits='64' id='2933f890'/>
+      <pointer-type-def type-id='4fa40360' size-in-bits='64' id='293b7ad2'/>
+      <pointer-type-def type-id='158c8c35' size-in-bits='64' id='2942e355'/>
+      <pointer-type-def type-id='f14fc18d' size-in-bits='64' id='2944961d'/>
+      <class-decl name='module' size-in-bits='7680' is-struct='yes' visibility='default' filepath='include/linux/module.h' line='365' column='1' id='29476915'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='state' type-id='327e04c6' visibility='default' filepath='include/linux/module.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/module.h' line='369' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='name' type-id='6093ff7c' visibility='default' filepath='include/linux/module.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='mkobj' type-id='7bd9942c' visibility='default' filepath='include/linux/module.h' line='380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='modinfo_attrs' type-id='063da268' visibility='default' filepath='include/linux/module.h' line='381' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='version' type-id='80f4b756' visibility='default' filepath='include/linux/module.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='srcversion' type-id='80f4b756' visibility='default' filepath='include/linux/module.h' line='383' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='scmversion' type-id='80f4b756' visibility='default' filepath='include/linux/module.h' line='384' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='holders_dir' type-id='d30bdc51' visibility='default' filepath='include/linux/module.h' line='385' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='syms' type-id='fcd64690' visibility='default' filepath='include/linux/module.h' line='388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='crcs' type-id='e0a2e3a6' visibility='default' filepath='include/linux/module.h' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='num_syms' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='cfi_check' type-id='d7c6106c' visibility='default' filepath='include/linux/module.h' line='393' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='param_lock' type-id='925167dc' visibility='default' filepath='include/linux/module.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='kp' type-id='a7c6e908' visibility='default' filepath='include/linux/module.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='num_kp' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2720'>
+          <var-decl name='num_gpl_syms' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='gpl_syms' type-id='fcd64690' visibility='default' filepath='include/linux/module.h' line='405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='gpl_crcs' type-id='e0a2e3a6' visibility='default' filepath='include/linux/module.h' line='406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='using_gplonly_symbols' type-id='b50a4934' visibility='default' filepath='include/linux/module.h' line='407' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2888'>
+          <var-decl name='sig_ok' type-id='b50a4934' visibility='default' filepath='include/linux/module.h' line='414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2896'>
+          <var-decl name='async_probe_requested' type-id='b50a4934' visibility='default' filepath='include/linux/module.h' line='416' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2912'>
+          <var-decl name='num_exentries' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='extable' type-id='7f0eb64c' visibility='default' filepath='include/linux/module.h' line='420' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='init' type-id='1db260e5' visibility='default' filepath='include/linux/module.h' line='423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='core_layout' type-id='68b3d9a8' visibility='default' filepath='include/linux/module.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='init_layout' type-id='68b3d9a8' visibility='default' filepath='include/linux/module.h' line='427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='arch' type-id='ea05c185' visibility='default' filepath='include/linux/module.h' line='430' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4608'>
+          <var-decl name='taints' type-id='7359adad' visibility='default' filepath='include/linux/module.h' line='432' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4672'>
+          <var-decl name='num_bugs' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='bug_list' type-id='72f469ec' visibility='default' filepath='include/linux/module.h' line='437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4864'>
+          <var-decl name='bug_table' type-id='c250b0e4' visibility='default' filepath='include/linux/module.h' line='438' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4928'>
+          <var-decl name='kallsyms' type-id='209d601e' visibility='default' filepath='include/linux/module.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='core_kallsyms' type-id='6a003ee8' visibility='default' filepath='include/linux/module.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='sect_attrs' type-id='3f4455c4' visibility='default' filepath='include/linux/module.h' line='447' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5312'>
+          <var-decl name='notes_attrs' type-id='f0cb8b62' visibility='default' filepath='include/linux/module.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='args' type-id='26a90f95' visibility='default' filepath='include/linux/module.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5440'>
+          <var-decl name='percpu' type-id='eaa32e2f' visibility='default' filepath='include/linux/module.h' line='459' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='percpu_size' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='noinstr_text_start' type-id='eaa32e2f' visibility='default' filepath='include/linux/module.h' line='462' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5632'>
+          <var-decl name='noinstr_text_size' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='463' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5664'>
+          <var-decl name='num_tracepoints' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='466' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5696'>
+          <var-decl name='tracepoints_ptrs' type-id='700727c0' visibility='default' filepath='include/linux/module.h' line='467' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5760'>
+          <var-decl name='num_srcu_structs' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='470' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5824'>
+          <var-decl name='srcu_struct_ptrs' type-id='57933490' visibility='default' filepath='include/linux/module.h' line='471' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5888'>
+          <var-decl name='num_bpf_raw_events' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='474' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5952'>
+          <var-decl name='bpf_raw_events' type-id='1f7f0216' visibility='default' filepath='include/linux/module.h' line='475' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6016'>
+          <var-decl name='btf_data_size' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='478' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='btf_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/module.h' line='479' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6144'>
+          <var-decl name='jump_entries' type-id='7a35228c' visibility='default' filepath='include/linux/module.h' line='482' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6208'>
+          <var-decl name='num_jump_entries' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='483' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6240'>
+          <var-decl name='num_trace_bprintk_fmt' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6272'>
+          <var-decl name='trace_bprintk_fmt_start' type-id='7d3cd834' visibility='default' filepath='include/linux/module.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6336'>
+          <var-decl name='trace_events' type-id='109cc752' visibility='default' filepath='include/linux/module.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6400'>
+          <var-decl name='num_trace_events' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='491' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='trace_evals' type-id='69881700' visibility='default' filepath='include/linux/module.h' line='492' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6528'>
+          <var-decl name='num_trace_evals' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='493' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6592'>
+          <var-decl name='kprobes_text_start' type-id='eaa32e2f' visibility='default' filepath='include/linux/module.h' line='500' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6656'>
+          <var-decl name='kprobes_text_size' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='501' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6720'>
+          <var-decl name='kprobe_blacklist' type-id='1d2c2b85' visibility='default' filepath='include/linux/module.h' line='502' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6784'>
+          <var-decl name='num_kprobe_blacklist' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='503' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6848'>
+          <var-decl name='source_list' type-id='72f469ec' visibility='default' filepath='include/linux/module.h' line='525' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6976'>
+          <var-decl name='target_list' type-id='72f469ec' visibility='default' filepath='include/linux/module.h' line='527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7104'>
+          <var-decl name='exit' type-id='953b12f8' visibility='default' filepath='include/linux/module.h' line='530' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7168'>
+          <var-decl name='refcnt' type-id='49178f86' visibility='default' filepath='include/linux/module.h' line='532' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7232'>
+          <var-decl name='ei_funcs' type-id='7f79f20e' visibility='default' filepath='include/linux/module.h' line='542' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='num_ei_funcs' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='543' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/module.h' line='545' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/module.h' line='546' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/module.h' line='547' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/module.h' line='548' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e565fd94' size-in-bits='64' id='2948bd22'/>
+      <function-type size-in-bits='64' id='294a6b21'>
+        <parameter type-id='1c936db9'/>
+        <parameter type-id='807869d3'/>
+        <parameter type-id='807869d3'/>
+        <parameter type-id='807869d3'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='294be38d'>
+        <parameter type-id='d504f73d'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='68a2d05b' size-in-bits='64' id='294e21e3'/>
+      <typedef-decl name='irq_handler_t' type-id='3fefe9b7' filepath='include/linux/interrupt.h' line='100' column='1' id='29591c9a'/>
+      <function-type size-in-bits='64' id='29599587'>
+        <parameter type-id='9f763fd8'/>
+        <parameter type-id='2ae08426'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='dccf0381' size-in-bits='64' id='295a92ed'/>
+      <function-type size-in-bits='64' id='2962e9d2'>
+        <parameter type-id='e68e04c1'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='2966597b'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='b4b886af'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='63b99761' size-in-bits='64' id='2966de59'/>
+      <typedef-decl name='key_perm_t' type-id='8f92235e' filepath='include/linux/key.h' line='31' column='1' id='296adac1'/>
+      <qualified-type-def type-id='17a13961' const='yes' id='2974aa72'/>
+      <pointer-type-def type-id='7a5054b7' size-in-bits='64' id='29753327'/>
+      <function-type size-in-bits='64' id='2976f714'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='sched_rt_entity' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/sched.h' line='574' column='1' id='29843697'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='run_list' type-id='72f469ec' visibility='default' filepath='include/linux/sched.h' line='575' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='timeout' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='576' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='watchdog_stamp' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='time_slice' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='578' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='on_rq' type-id='8efea9e5' visibility='default' filepath='include/linux/sched.h' line='579' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='304'>
+          <var-decl name='on_list' type-id='8efea9e5' visibility='default' filepath='include/linux/sched.h' line='580' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='back' type-id='9eead88f' visibility='default' filepath='include/linux/sched.h' line='582' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='591' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='592' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='593' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='594' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='seccomp' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/seccomp.h' line='35' column='1' id='298af459'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mode' type-id='95e97e5e' visibility='default' filepath='include/linux/seccomp.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='filter_count' type-id='49178f86' visibility='default' filepath='include/linux/seccomp.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='filter' type-id='2a128f5a' visibility='default' filepath='include/linux/seccomp.h' line='38' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a2b0f227' size-in-bits='64' id='298d0a77'/>
+      <typedef-decl name='sockptr_t' type-id='9ea5687a' filepath='include/linux/sockptr.h' line='20' column='1' id='298d29fd'/>
+      <pointer-type-def type-id='d83969a6' size-in-bits='64' id='2993adbc'/>
+      <qualified-type-def type-id='2134e0b8' const='yes' id='2994de4b'/>
+      <function-type size-in-bits='64' id='299608ee'>
+        <parameter type-id='85535682'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='29964e7f'>
+        <parameter type-id='bef1b918'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='ea3de64d' size-in-bits='64' id='29a48d3d'/>
+      <function-type size-in-bits='64' id='29a6df05'>
+        <parameter type-id='5771c601'/>
+        <parameter type-id='9381c60c'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='b11c8367' size-in-bits='64' id='29a9af43'/>
+      <class-decl name='snd_soc_card' size-in-bits='6592' is-struct='yes' visibility='default' filepath='include/sound/soc.h' line='889' column='1' id='29ad938b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/sound/soc.h' line='890' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='long_name' type-id='80f4b756' visibility='default' filepath='include/sound/soc.h' line='891' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='driver_name' type-id='80f4b756' visibility='default' filepath='include/sound/soc.h' line='892' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='components' type-id='80f4b756' visibility='default' filepath='include/sound/soc.h' line='893' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='topology_shortname' type-id='16dc656a' visibility='default' filepath='include/sound/soc.h' line='897' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/sound/soc.h' line='899' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='snd_card' type-id='52704eb7' visibility='default' filepath='include/sound/soc.h' line='900' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/sound/soc.h' line='901' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='include/sound/soc.h' line='903' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='dapm_mutex' type-id='925167dc' visibility='default' filepath='include/sound/soc.h' line='904' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='pcm_mutex' type-id='925167dc' visibility='default' filepath='include/sound/soc.h' line='907' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='pcm_subclass' type-id='8a661f2b' visibility='default' filepath='include/sound/soc.h' line='908' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1888'>
+          <var-decl name='unused' type-id='fb4018a0' visibility='default' filepath='include/sound/soc.h' line='913' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='probe' type-id='edcb70dd' visibility='default' filepath='include/sound/soc.h' line='916' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='late_probe' type-id='edcb70dd' visibility='default' filepath='include/sound/soc.h' line='917' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='remove' type-id='edcb70dd' visibility='default' filepath='include/sound/soc.h' line='918' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='suspend_pre' type-id='edcb70dd' visibility='default' filepath='include/sound/soc.h' line='922' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='suspend_post' type-id='edcb70dd' visibility='default' filepath='include/sound/soc.h' line='923' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='resume_pre' type-id='edcb70dd' visibility='default' filepath='include/sound/soc.h' line='924' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='resume_post' type-id='edcb70dd' visibility='default' filepath='include/sound/soc.h' line='925' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='set_bias_level' type-id='4a944438' visibility='default' filepath='include/sound/soc.h' line='928' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='set_bias_level_post' type-id='4a944438' visibility='default' filepath='include/sound/soc.h' line='931' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='add_dai_link' type-id='1391f54a' visibility='default' filepath='include/sound/soc.h' line='935' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='remove_dai_link' type-id='e3fceddb' visibility='default' filepath='include/sound/soc.h' line='937' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='pmdown_time' type-id='bd54fe1a' visibility='default' filepath='include/sound/soc.h' line='940' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='dai_link' type-id='af5a73b0' visibility='default' filepath='include/sound/soc.h' line='943' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='num_links' type-id='95e97e5e' visibility='default' filepath='include/sound/soc.h' line='944' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='rtd_list' type-id='72f469ec' visibility='default' filepath='include/sound/soc.h' line='946' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='num_rtd' type-id='95e97e5e' visibility='default' filepath='include/sound/soc.h' line='947' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='codec_conf' type-id='f10279fe' visibility='default' filepath='include/sound/soc.h' line='950' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='num_configs' type-id='95e97e5e' visibility='default' filepath='include/sound/soc.h' line='951' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='aux_dev' type-id='8ace4add' visibility='default' filepath='include/sound/soc.h' line='957' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='num_aux_devs' type-id='95e97e5e' visibility='default' filepath='include/sound/soc.h' line='958' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='aux_comp_list' type-id='72f469ec' visibility='default' filepath='include/sound/soc.h' line='959' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='controls' type-id='31e035f7' visibility='default' filepath='include/sound/soc.h' line='961' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='num_controls' type-id='95e97e5e' visibility='default' filepath='include/sound/soc.h' line='962' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='dapm_widgets' type-id='dae78f89' visibility='default' filepath='include/sound/soc.h' line='968' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='num_dapm_widgets' type-id='95e97e5e' visibility='default' filepath='include/sound/soc.h' line='969' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='dapm_routes' type-id='8f3d28b8' visibility='default' filepath='include/sound/soc.h' line='970' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='num_dapm_routes' type-id='95e97e5e' visibility='default' filepath='include/sound/soc.h' line='971' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='of_dapm_widgets' type-id='dae78f89' visibility='default' filepath='include/sound/soc.h' line='972' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='num_of_dapm_widgets' type-id='95e97e5e' visibility='default' filepath='include/sound/soc.h' line='973' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3904'>
+          <var-decl name='of_dapm_routes' type-id='8f3d28b8' visibility='default' filepath='include/sound/soc.h' line='974' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='num_of_dapm_routes' type-id='95e97e5e' visibility='default' filepath='include/sound/soc.h' line='975' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='component_dev_list' type-id='72f469ec' visibility='default' filepath='include/sound/soc.h' line='978' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/sound/soc.h' line='979' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='widgets' type-id='72f469ec' visibility='default' filepath='include/sound/soc.h' line='981' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='paths' type-id='72f469ec' visibility='default' filepath='include/sound/soc.h' line='982' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4544'>
+          <var-decl name='dapm_list' type-id='72f469ec' visibility='default' filepath='include/sound/soc.h' line='983' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4672'>
+          <var-decl name='dapm_dirty' type-id='72f469ec' visibility='default' filepath='include/sound/soc.h' line='984' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='dobj_list' type-id='72f469ec' visibility='default' filepath='include/sound/soc.h' line='987' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4928'>
+          <var-decl name='dapm' type-id='95201ae5' visibility='default' filepath='include/sound/soc.h' line='990' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='dapm_stats' type-id='fef29e19' visibility='default' filepath='include/sound/soc.h' line='991' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5696'>
+          <var-decl name='update' type-id='33146de3' visibility='default' filepath='include/sound/soc.h' line='992' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5760'>
+          <var-decl name='debugfs_card_root' type-id='27675065' visibility='default' filepath='include/sound/soc.h' line='995' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5824'>
+          <var-decl name='deferred_resume_work' type-id='ef9025d0' visibility='default' filepath='include/sound/soc.h' line='998' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6208'>
+          <var-decl name='pop_time' type-id='19c2251e' visibility='default' filepath='include/sound/soc.h' line='1000' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6240'>
+          <var-decl name='instantiated' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='1003' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6241'>
+          <var-decl name='topology_shortname_created' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='1004' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6242'>
+          <var-decl name='fully_routed' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='1005' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6243'>
+          <var-decl name='disable_route_checks' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='1006' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6244'>
+          <var-decl name='probed' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='1007' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6245'>
+          <var-decl name='component_chaining' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='1008' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6272'>
+          <var-decl name='drvdata' type-id='eaa32e2f' visibility='default' filepath='include/sound/soc.h' line='1010' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6336'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/soc.h' line='1012' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6400'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/sound/soc.h' line='1013' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/sound/soc.h' line='1014' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6528'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/sound/soc.h' line='1015' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ddf16879' size-in-bits='64' id='29af9a71'/>
+      <class-decl name='audit_proctitle' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/../kernel/audit.h' line='95' column='1' id='29b11ca5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='len' type-id='95e97e5e' visibility='default' filepath='include/../kernel/audit.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='value' type-id='26a90f95' visibility='default' filepath='include/../kernel/audit.h' line='97' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b44140ca' size-in-bits='64' id='29bf40b4'/>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='infinite' id='29c3368c'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='29c6d348'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='e3ba02e6'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='29c8c1c5'>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='9f763fd8'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='1179f27e' const='yes' id='29c8dc19'/>
+      <function-type size-in-bits='64' id='29ca5ed4'>
+        <parameter type-id='8324c9fb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='3158a266' size-in-bits='8160' id='29cc01cd'>
+        <subrange length='255' type-id='7ff19f0f' id='36e7f891'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='29ce7f43'>
+        <parameter type-id='f23e2572'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <function-type size-in-bits='64' id='29cf1864'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='c2074578'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='iommu_dev_features' filepath='include/linux/iommu.h' line='171' column='1' id='29d28711'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='IOMMU_DEV_FEAT_AUX' value='0'/>
+        <enumerator name='IOMMU_DEV_FEAT_SVA' value='1'/>
+        <enumerator name='IOMMU_DEV_FEAT_IOPF' value='2'/>
+      </enum-decl>
+      <class-decl name='xfrm_lifetime_cur' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/linux/xfrm.h' line='77' column='1' id='29d519c9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bytes' type-id='d3130597' visibility='default' filepath='include/uapi/linux/xfrm.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='packets' type-id='d3130597' visibility='default' filepath='include/uapi/linux/xfrm.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='add_time' type-id='d3130597' visibility='default' filepath='include/uapi/linux/xfrm.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='use_time' type-id='d3130597' visibility='default' filepath='include/uapi/linux/xfrm.h' line='81' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='kernfs_node' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/linux/kernfs.h' line='129' column='1' id='29d79af7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='49178f86' visibility='default' filepath='include/linux/kernfs.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='active' type-id='49178f86' visibility='default' filepath='include/linux/kernfs.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='parent' type-id='150efd3f' visibility='default' filepath='include/linux/kernfs.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/kernfs.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rb' type-id='2a8a6332' visibility='default' filepath='include/linux/kernfs.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ns' type-id='eaa32e2f' visibility='default' filepath='include/linux/kernfs.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='hash' type-id='f0981eeb' visibility='default' filepath='include/linux/kernfs.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='' type-id='ac5ab637' visibility='default' filepath='include/linux/kernfs.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/kernfs.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='id' type-id='91ce1af9' visibility='default' filepath='include/linux/kernfs.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='flags' type-id='8efea9e5' visibility='default' filepath='include/linux/kernfs.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='912'>
+          <var-decl name='mode' type-id='2594b00f' visibility='default' filepath='include/linux/kernfs.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='iattr' type-id='1f4b5d14' visibility='default' filepath='include/linux/kernfs.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/kernfs.h' line='166' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='557c51cd' size-in-bits='64' id='29e425c9'/>
+      <qualified-type-def type-id='3713d87e' const='yes' id='29e79c3f'/>
+      <pointer-type-def type-id='964819d7' size-in-bits='64' id='29f0ac2f'/>
+      <class-decl name='icc_req' size-in-bits='384' is-struct='yes' visibility='default' filepath='drivers/interconnect/internal.h' line='22' column='1' id='29f471c5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='req_node' type-id='03a4a074' visibility='default' filepath='drivers/interconnect/internal.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='node' type-id='18d76f87' visibility='default' filepath='drivers/interconnect/internal.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/interconnect/internal.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='enabled' type-id='b50a4934' visibility='default' filepath='drivers/interconnect/internal.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='tag' type-id='19c2251e' visibility='default' filepath='drivers/interconnect/internal.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='avg_bw' type-id='19c2251e' visibility='default' filepath='drivers/interconnect/internal.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='peak_bw' type-id='19c2251e' visibility='default' filepath='drivers/interconnect/internal.h' line='29' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c7e57ee7' size-in-bits='64' id='29f83363'/>
+      <pointer-type-def type-id='66237bd2' size-in-bits='64' id='29ffcb70'/>
+      <function-type size-in-bits='64' id='2a02b07c'>
+        <parameter type-id='b64ad7cb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='1d2f7bf0' size-in-bits='64' id='2a05538a'/>
+      <function-type size-in-bits='64' id='2a0a5404'>
+        <parameter type-id='74b427eb'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='inet_connection_sock' size-in-bits='12224' is-struct='yes' visibility='default' filepath='include/net/inet_connection_sock.h' line='85' column='1' id='2a0babad'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='icsk_inet' type-id='cec16d30' visibility='default' filepath='include/net/inet_connection_sock.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8576'>
+          <var-decl name='icsk_accept_queue' type-id='a6c77117' visibility='default' filepath='include/net/inet_connection_sock.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9216'>
+          <var-decl name='icsk_bind_hash' type-id='d535b874' visibility='default' filepath='include/net/inet_connection_sock.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9280'>
+          <var-decl name='icsk_timeout' type-id='7359adad' visibility='default' filepath='include/net/inet_connection_sock.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='icsk_retransmit_timer' type-id='abe41e67' visibility='default' filepath='include/net/inet_connection_sock.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9792'>
+          <var-decl name='icsk_delack_timer' type-id='abe41e67' visibility='default' filepath='include/net/inet_connection_sock.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10240'>
+          <var-decl name='icsk_rto' type-id='3f1a6b60' visibility='default' filepath='include/net/inet_connection_sock.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10272'>
+          <var-decl name='icsk_rto_min' type-id='3f1a6b60' visibility='default' filepath='include/net/inet_connection_sock.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10304'>
+          <var-decl name='icsk_delack_max' type-id='3f1a6b60' visibility='default' filepath='include/net/inet_connection_sock.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10336'>
+          <var-decl name='icsk_pmtu_cookie' type-id='3f1a6b60' visibility='default' filepath='include/net/inet_connection_sock.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10368'>
+          <var-decl name='icsk_ca_ops' type-id='b3ef56ee' visibility='default' filepath='include/net/inet_connection_sock.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10432'>
+          <var-decl name='icsk_af_ops' type-id='d23c2125' visibility='default' filepath='include/net/inet_connection_sock.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10496'>
+          <var-decl name='icsk_ulp_ops' type-id='c23fc09a' visibility='default' filepath='include/net/inet_connection_sock.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10560'>
+          <var-decl name='icsk_ulp_data' type-id='eaa32e2f' visibility='default' filepath='include/net/inet_connection_sock.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10624'>
+          <var-decl name='icsk_clean_acked' type-id='815f64bf' visibility='default' filepath='include/net/inet_connection_sock.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10688'>
+          <var-decl name='icsk_listen_portaddr_node' type-id='03a4a074' visibility='default' filepath='include/net/inet_connection_sock.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10816'>
+          <var-decl name='icsk_sync_mss' type-id='de90632b' visibility='default' filepath='include/net/inet_connection_sock.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10880'>
+          <var-decl name='icsk_ca_state' type-id='8f048e17' visibility='default' filepath='include/net/inet_connection_sock.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10885'>
+          <var-decl name='icsk_ca_initialized' type-id='8f048e17' visibility='default' filepath='include/net/inet_connection_sock.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10886'>
+          <var-decl name='icsk_ca_setsockopt' type-id='8f048e17' visibility='default' filepath='include/net/inet_connection_sock.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10887'>
+          <var-decl name='icsk_ca_dst_locked' type-id='8f048e17' visibility='default' filepath='include/net/inet_connection_sock.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10888'>
+          <var-decl name='icsk_retransmits' type-id='8f048e17' visibility='default' filepath='include/net/inet_connection_sock.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10896'>
+          <var-decl name='icsk_pending' type-id='8f048e17' visibility='default' filepath='include/net/inet_connection_sock.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10904'>
+          <var-decl name='icsk_backoff' type-id='8f048e17' visibility='default' filepath='include/net/inet_connection_sock.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10912'>
+          <var-decl name='icsk_syn_retries' type-id='8f048e17' visibility='default' filepath='include/net/inet_connection_sock.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10920'>
+          <var-decl name='icsk_probes_out' type-id='8f048e17' visibility='default' filepath='include/net/inet_connection_sock.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10928'>
+          <var-decl name='icsk_ext_hdr_len' type-id='d315442e' visibility='default' filepath='include/net/inet_connection_sock.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10944'>
+          <var-decl name='icsk_ack' type-id='e7f4406d' visibility='default' filepath='include/net/inet_connection_sock.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11136'>
+          <var-decl name='icsk_mtup' type-id='e7f4406e' visibility='default' filepath='include/net/inet_connection_sock.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11264'>
+          <var-decl name='icsk_probes_tstamp' type-id='19c2251e' visibility='default' filepath='include/net/inet_connection_sock.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11296'>
+          <var-decl name='icsk_user_timeout' type-id='19c2251e' visibility='default' filepath='include/net/inet_connection_sock.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11328'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/inet_connection_sock.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11392'>
+          <var-decl name='icsk_ca_priv' type-id='08a4cc8e' visibility='default' filepath='include/net/inet_connection_sock.h' line='142' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='21893e8b' const='yes' id='2a0e98a8'/>
+      <class-decl name='system_counterval_t' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/timekeeping.h' line='275' column='1' id='2a0f1e3d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cycles' type-id='91ce1af9' visibility='default' filepath='include/linux/timekeeping.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cs' type-id='4dfe71de' visibility='default' filepath='include/linux/timekeeping.h' line='277' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='2a123bf1'>
+        <parameter type-id='7837cd88'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='861f302a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e290c28c' size-in-bits='64' id='2a128f5a'/>
+      <class-decl name='drm_client_buffer' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/drm/drm_client.h' line='123' column='1' id='2a13094b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='client' type-id='cc1804ea' visibility='default' filepath='include/drm/drm_client.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='handle' type-id='19c2251e' visibility='default' filepath='include/drm/drm_client.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='pitch' type-id='19c2251e' visibility='default' filepath='include/drm/drm_client.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='gem' type-id='abd62a96' visibility='default' filepath='include/drm/drm_client.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='map' type-id='5cb8e7e2' visibility='default' filepath='include/drm/drm_client.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='fb' type-id='7b332e1c' visibility='default' filepath='include/drm/drm_client.h' line='152' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='f23e2572' size-in-bits='1024' id='2a143e6f'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <pointer-type-def type-id='2a0f1e3d' size-in-bits='64' id='2a14aacd'/>
+      <pointer-type-def type-id='913f3538' size-in-bits='64' id='2a24760e'/>
+      <function-type size-in-bits='64' id='2a275b06'>
+        <parameter type-id='0906f5b9'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='4cb2ce2a' size-in-bits='64' id='2a3a4aec'/>
+      <qualified-type-def type-id='a42969fa' const='yes' id='2a3ad845'/>
+      <class-decl name='sd_switch_caps' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/linux/mmc/card.h' line='154' column='1' id='2a479001'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hs_max_dtr' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='uhs_max_dtr' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sd3_bus_mode' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='sd3_drv_type' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sd3_curr_limit' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='183' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='media_entity_notify' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/media/media-device.h' line='36' column='1' id='2a4a9e01'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/media/media-device.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='notify_data' type-id='eaa32e2f' visibility='default' filepath='include/media/media-device.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='notify' type-id='d45ffdc0' visibility='default' filepath='include/media/media-device.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ehci_itd' size-in-bits='1536' is-struct='yes' visibility='default' filepath='drivers/usb/host/ehci.h' line='510' column='1' id='2a4c87c4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hw_next' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='hw_transaction' type-id='e389acd5' visibility='default' filepath='drivers/usb/host/ehci.h' line='513' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='hw_bufp' type-id='e369592a' visibility='default' filepath='drivers/usb/host/ehci.h' line='523' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='hw_bufp_hi' type-id='e369592a' visibility='default' filepath='drivers/usb/host/ehci.h' line='524' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='itd_dma' type-id='cf29c9b3' visibility='default' filepath='drivers/usb/host/ehci.h' line='527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='itd_next' type-id='014fe25e' visibility='default' filepath='drivers/usb/host/ehci.h' line='528' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='urb' type-id='ab85b8f2' visibility='default' filepath='drivers/usb/host/ehci.h' line='530' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='stream' type-id='74ad1fb3' visibility='default' filepath='drivers/usb/host/ehci.h' line='531' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='itd_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/ehci.h' line='532' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='frame' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='535' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='pg' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='536' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='index' type-id='496104bf' visibility='default' filepath='drivers/usb/host/ehci.h' line='537' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='38d1cb6d' size-in-bits='64' id='2a5d0ea1'/>
+      <pointer-type-def type-id='1207cfa9' size-in-bits='64' id='2a5ff2f1'/>
+      <pointer-type-def type-id='ecbba9ca' size-in-bits='64' id='2a614134'/>
+      <pointer-type-def type-id='fb2ad8ec' size-in-bits='64' id='2a733fb2'/>
+      <function-type size-in-bits='64' id='2a75d4cb'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='cd91b317'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='78a133c2'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9b734d5e' size-in-bits='64' id='2a82ed9c'/>
+      <class-decl name='netns_ct' size-in-bits='1792' is-struct='yes' visibility='default' filepath='include/net/netns/conntrack.h' line='102' column='1' id='2a831eeb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ecache_dwork_pending' type-id='b50a4934' visibility='default' filepath='include/net/netns/conntrack.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='sysctl_log_invalid' type-id='f9b06939' visibility='default' filepath='include/net/netns/conntrack.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='sysctl_events' type-id='f9b06939' visibility='default' filepath='include/net/netns/conntrack.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='sysctl_acct' type-id='f9b06939' visibility='default' filepath='include/net/netns/conntrack.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='sysctl_auto_assign_helper' type-id='f9b06939' visibility='default' filepath='include/net/netns/conntrack.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='sysctl_tstamp' type-id='f9b06939' visibility='default' filepath='include/net/netns/conntrack.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='sysctl_checksum' type-id='f9b06939' visibility='default' filepath='include/net/netns/conntrack.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pcpu_lists' type-id='b2bcb5d9' visibility='default' filepath='include/net/netns/conntrack.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='stat' type-id='e46089fd' visibility='default' filepath='include/net/netns/conntrack.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='nf_conntrack_event_cb' type-id='2db792b9' visibility='default' filepath='include/net/netns/conntrack.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='nf_ct_proto' type-id='7f3015f3' visibility='default' filepath='include/net/netns/conntrack.h' line='116' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bc545b43' size-in-bits='64' id='2a851303'/>
+      <pointer-type-def type-id='a97c4265' size-in-bits='64' id='2a873f51'/>
+      <pointer-type-def type-id='e9546509' size-in-bits='64' id='2a895c01'/>
+      <class-decl name='rb_node' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/rbtree_types.h' line='5' column='1' id='2a8a6332'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='__rb_parent_color' type-id='7359adad' visibility='default' filepath='include/linux/rbtree_types.h' line='6' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rb_right' type-id='e6532500' visibility='default' filepath='include/linux/rbtree_types.h' line='7' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rb_left' type-id='e6532500' visibility='default' filepath='include/linux/rbtree_types.h' line='8' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tty_port_client_operations' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/tty_port.h' line='47' column='1' id='2a8ca227'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='receive_buf' type-id='1a7b1e1d' visibility='default' filepath='include/linux/tty_port.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='write_wakeup' type-id='7e5b379d' visibility='default' filepath='include/linux/tty_port.h' line='49' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='spi_mem_driver' size-in-bits='1920' is-struct='yes' visibility='default' filepath='include/linux/spi/spi-mem.h' line='304' column='1' id='2a9bc482'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='spidrv' type-id='29290a00' visibility='default' filepath='include/linux/spi/spi-mem.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='probe' type-id='a50949ab' visibility='default' filepath='include/linux/spi/spi-mem.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='remove' type-id='a50949ab' visibility='default' filepath='include/linux/spi/spi-mem.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='shutdown' type-id='a7c79516' visibility='default' filepath='include/linux/spi/spi-mem.h' line='308' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bfde519b' size-in-bits='64' id='2a9f6bcb'/>
+      <pointer-type-def type-id='a5007ad0' size-in-bits='64' id='2aa2e156'/>
+      <class-decl name='drm_pending_event' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/drm/drm_file.h' line='90' column='1' id='2aa44dc9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='completion' type-id='389faaf7' visibility='default' filepath='include/drm/drm_file.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='completion_release' type-id='e3fbbc86' visibility='default' filepath='include/drm/drm_file.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='event' type-id='5b35aab5' visibility='default' filepath='include/drm/drm_file.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fence' type-id='28271da3' visibility='default' filepath='include/drm/drm_file.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='file_priv' type-id='9e99ecc1' visibility='default' filepath='include/drm/drm_file.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='link' type-id='72f469ec' visibility='default' filepath='include/drm/drm_file.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pending_link' type-id='72f469ec' visibility='default' filepath='include/drm/drm_file.h' line='151' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='wait_bit_key' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/wait_bit.h' line='10' column='1' id='2aa6fa74'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='eaa32e2f' visibility='default' filepath='include/linux/wait_bit.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bit_nr' type-id='95e97e5e' visibility='default' filepath='include/linux/wait_bit.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='timeout' type-id='7359adad' visibility='default' filepath='include/linux/wait_bit.h' line='13' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='ino_t' type-id='447da2ae' filepath='include/linux/types.h' line='17' column='1' id='2aa75eef'/>
+      <function-type size-in-bits='64' id='2aa99da6'>
+        <parameter type-id='11777d05'/>
+        <parameter type-id='0817f042'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='blkcg_policy' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/linux/blk-cgroup.h' line='159' column='1' id='2aaa0129'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='plid' type-id='95e97e5e' visibility='default' filepath='include/linux/blk-cgroup.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dfl_cftypes' type-id='03054cfa' visibility='default' filepath='include/linux/blk-cgroup.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='legacy_cftypes' type-id='03054cfa' visibility='default' filepath='include/linux/blk-cgroup.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cpd_alloc_fn' type-id='c50f5163' visibility='default' filepath='include/linux/blk-cgroup.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='cpd_init_fn' type-id='183d114e' visibility='default' filepath='include/linux/blk-cgroup.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='cpd_free_fn' type-id='3f32f1d2' visibility='default' filepath='include/linux/blk-cgroup.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='cpd_bind_fn' type-id='406bf30f' visibility='default' filepath='include/linux/blk-cgroup.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pd_alloc_fn' type-id='d116742c' visibility='default' filepath='include/linux/blk-cgroup.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='pd_init_fn' type-id='71f57b27' visibility='default' filepath='include/linux/blk-cgroup.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='pd_online_fn' type-id='0c707328' visibility='default' filepath='include/linux/blk-cgroup.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='pd_offline_fn' type-id='ec000d8e' visibility='default' filepath='include/linux/blk-cgroup.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='pd_free_fn' type-id='fa4d54c3' visibility='default' filepath='include/linux/blk-cgroup.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='pd_reset_stats_fn' type-id='630307fa' visibility='default' filepath='include/linux/blk-cgroup.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='pd_stat_fn' type-id='e3cc7b73' visibility='default' filepath='include/linux/blk-cgroup.h' line='177' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='2ab93737'>
+        <parameter type-id='43c38462'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='1a56399f' size-in-bits='64' id='2abcd7ef'/>
+      <qualified-type-def type-id='11b39afc' const='yes' id='2ac4ba2d'/>
+      <pointer-type-def type-id='b7481dd4' size-in-bits='64' id='2ac920d2'/>
+      <class-decl name='xhci_interval_bw_table' size-in-bits='5312' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='999' column='1' id='2acb65d8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='interval0_esit_payload' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1000' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='interval_bw' type-id='a234b4c6' visibility='default' filepath='drivers/usb/host/xhci.h' line='1001' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='bw_used' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1003' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5216'>
+          <var-decl name='ss_bw_in' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1004' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='ss_bw_out' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1005' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='51cb7b21' const='yes' id='2acc6e28'/>
+      <array-type-def dimensions='1' type-id='7e480899' size-in-bits='768' id='2acd76fe'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <pointer-type-def type-id='e6af544d' size-in-bits='64' id='2adcf411'/>
+      <pointer-type-def type-id='62c85860' size-in-bits='64' id='2ae08426'/>
+      <class-decl name='platform_msi_desc' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/msi.h' line='76' column='1' id='2ae2d1e2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='msi_priv_data' type-id='1f211d93' visibility='default' filepath='include/linux/msi.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='msi_index' type-id='1dc6a898' visibility='default' filepath='include/linux/msi.h' line='78' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='596b36ac' size-in-bits='64' id='2aeab85a'/>
+      <function-type size-in-bits='64' id='2aedd95d'>
+        <parameter type-id='855e3679'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='va_list' type-id='7f896fb4' filepath='include/linux/stdarg.h' line='5' column='1' id='2aee9912'/>
+      <class-decl name='transport_container' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/transport_class.h' line='56' column='1' id='2af4292a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ac' type-id='52bea74f' visibility='default' filepath='include/linux/transport_class.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='statistics' type-id='8ff9530e' visibility='default' filepath='include/linux/transport_class.h' line='58' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='18e34d1d' size-in-bits='64' id='2af7cc71'/>
+      <pointer-type-def type-id='bccc86df' size-in-bits='64' id='2af873af'/>
+      <qualified-type-def type-id='ac2ed188' const='yes' id='2afe412f'/>
+      <pointer-type-def type-id='969fc316' size-in-bits='64' id='2b0348f0'/>
+      <function-type size-in-bits='64' id='2b0da039'>
+        <parameter type-id='11777d05'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='2b18e57b'>
+        <parameter type-id='af051c69'/>
+        <parameter type-id='a72a4e27'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='usb_endpoint_descriptor' size-in-bits='72' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='407' column='1' id='2b1e6e59'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='408' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='409' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bEndpointAddress' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bmAttributes' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='wMaxPacketSize' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='413' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='bInterval' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='bRefresh' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='418' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bSynchAddress' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='419' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='2b2b01a4'>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='5b74ae4a' size-in-bits='64' id='2b2b8dcb'/>
+      <class-decl name='perf_sample_data' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='989' column='1' id='2b3d4ba2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='994' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='raw' type-id='f4a67529' visibility='default' filepath='include/linux/perf_event.h' line='995' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='br_stack' type-id='070ae8d2' visibility='default' filepath='include/linux/perf_event.h' line='996' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='period' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='997' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='weight' type-id='24110953' visibility='default' filepath='include/linux/perf_event.h' line='998' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='txn' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='999' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='data_src' type-id='2be3cc53' visibility='default' filepath='include/linux/perf_event.h' line='1000' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='type' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1006' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ip' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1007' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='tid_entry' type-id='e7f43f7b' visibility='default' filepath='include/linux/perf_event.h' line='1011' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='time' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1012' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='id' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1013' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='stream_id' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1014' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='cpu_entry' type-id='e7f43f7c' visibility='default' filepath='include/linux/perf_event.h' line='1018' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='callchain' type-id='cd3a82e3' visibility='default' filepath='include/linux/perf_event.h' line='1019' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='aux_size' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1020' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='regs_user' type-id='85b37ab4' visibility='default' filepath='include/linux/perf_event.h' line='1022' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='regs_intr' type-id='85b37ab4' visibility='default' filepath='include/linux/perf_event.h' line='1023' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='stack_user_size' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1024' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='phys_addr' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1026' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='cgroup' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1027' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='data_page_size' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1028' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='code_page_size' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='1029' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f8f2633f' size-in-bits='64' id='2b3f1c33'/>
+      <function-type size-in-bits='64' id='2b3f252e'>
+        <parameter type-id='74d89ebd'/>
+        <parameter type-id='35078cb9'/>
+        <parameter type-id='249ef586'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='1a200140' const='yes' id='2b48c0bb'/>
+      <pointer-type-def type-id='b121377e' size-in-bits='64' id='2b4a193c'/>
+      <function-type size-in-bits='64' id='2b4e6dbe'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='2b8e7a42'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d6130048' size-in-bits='64' id='2b59fa5e'/>
+      <pointer-type-def type-id='b88c11f2' size-in-bits='64' id='2b5fee24'/>
+      <pointer-type-def type-id='2ab93737' size-in-bits='64' id='2b6bf4a3'/>
+      <class-decl name='flow_dissector_key_vlan' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/flow_dissector.h' line='52' column='1' id='2b6f4104'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab69e' visibility='default' filepath='include/net/flow_dissector.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='vlan_tpid' type-id='84a5c3d4' visibility='default' filepath='include/net/flow_dissector.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='vlan_eth_type' type-id='84a5c3d4' visibility='default' filepath='include/net/flow_dissector.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='padding' type-id='1dc6a898' visibility='default' filepath='include/net/flow_dissector.h' line='63' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='89a1ee2b' const='yes' id='2b7b3388'/>
+      <class-decl name='pcie_link_state' size-in-bits='1088' is-struct='yes' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='49' column='1' id='2b7bb54d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pdev' type-id='85196e3f' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='downstream' type-id='85196e3f' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='root' type-id='fe2d9f1d' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='parent' type-id='fe2d9f1d' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='sibling' type-id='72f469ec' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='aspm_support' type-id='19c2251e' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='391'>
+          <var-decl name='aspm_enabled' type-id='19c2251e' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='398'>
+          <var-decl name='aspm_capable' type-id='19c2251e' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='405'>
+          <var-decl name='aspm_default' type-id='19c2251e' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='aspm_disable' type-id='19c2251e' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='423'>
+          <var-decl name='clkpm_capable' type-id='19c2251e' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='424'>
+          <var-decl name='clkpm_enabled' type-id='19c2251e' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='425'>
+          <var-decl name='clkpm_default' type-id='19c2251e' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='426'>
+          <var-decl name='clkpm_disable' type-id='19c2251e' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='latency_up' type-id='d0622163' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='latency_dw' type-id='d0622163' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='acceptable' type-id='fa0d0a7f' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='76' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4399e1b2' size-in-bits='64' id='2b88fa00'/>
+      <array-type-def dimensions='1' type-id='91ce1af9' size-in-bits='2368' id='2b89ba50'>
+        <subrange length='37' type-id='7ff19f0f' id='aa6426fb'/>
+      </array-type-def>
+      <pointer-type-def type-id='b845c559' size-in-bits='64' id='2b8a73bd'/>
+      <pointer-type-def type-id='fa8285d4' size-in-bits='64' id='2b8e7a42'/>
+      <pointer-type-def type-id='53637fcc' size-in-bits='64' id='2ba25712'/>
+      <pointer-type-def type-id='2df0328b' size-in-bits='64' id='2ba3cceb'/>
+      <pointer-type-def type-id='0b5c3086' size-in-bits='64' id='2ba71990'/>
+      <class-decl name='proc_ns_operations' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/proc_ns.h' line='16' column='1' id='2ba71bf0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/proc_ns.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='real_ns_name' type-id='80f4b756' visibility='default' filepath='include/linux/proc_ns.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='type' type-id='95e97e5e' visibility='default' filepath='include/linux/proc_ns.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get' type-id='3e644294' visibility='default' filepath='include/linux/proc_ns.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='put' type-id='277e3361' visibility='default' filepath='include/linux/proc_ns.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='install' type-id='91423b0d' visibility='default' filepath='include/linux/proc_ns.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='owner' type-id='6fa26802' visibility='default' filepath='include/linux/proc_ns.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='get_parent' type-id='e0677422' visibility='default' filepath='include/linux/proc_ns.h' line='24' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e6c6ca12' size-in-bits='64' id='2ba74d04'/>
+      <class-decl name='cfg80211_internal_bss' is-struct='yes' visibility='default' is-declaration-only='yes' id='2baffd9a'/>
+      <function-type size-in-bits='64' id='2bb0168c'>
+        <parameter type-id='7efbcaaf'/>
+        <parameter type-id='33e1dfe4'/>
+        <parameter type-id='3df9fd28'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='gid_t' type-id='b4413cee' filepath='include/linux/types.h' line='33' column='1' id='2bb2b96f'/>
+      <enum-decl name='devlink_reload_action' filepath='include/uapi/linux/devlink.h' line='318' column='1' id='2bbc3c28'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEVLINK_RELOAD_ACTION_UNSPEC' value='0'/>
+        <enumerator name='DEVLINK_RELOAD_ACTION_DRIVER_REINIT' value='1'/>
+        <enumerator name='DEVLINK_RELOAD_ACTION_FW_ACTIVATE' value='2'/>
+        <enumerator name='__DEVLINK_RELOAD_ACTION_MAX' value='3'/>
+        <enumerator name='DEVLINK_RELOAD_ACTION_MAX' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='2275516b' size-in-bits='64' id='2bc0432f'/>
+      <class-decl name='usb_string' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/usb/gadget.h' line='798' column='1' id='2bc124cb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='f9b06939' visibility='default' filepath='include/linux/usb/gadget.h' line='799' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='s' type-id='80f4b756' visibility='default' filepath='include/linux/usb/gadget.h' line='800' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='fc927268' const='yes' id='2bc6669b'/>
+      <typedef-decl name='snd_pcm_subformat_t' type-id='95e97e5e' filepath='include/uapi/sound/asound.h' line='279' column='1' id='2bc87435'/>
+      <pointer-type-def type-id='6b5d85f5' size-in-bits='64' id='2bd70779'/>
+      <class-decl name='typec_mux_state' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/usb/typec_mux.h' line='43' column='1' id='2bd73e91'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='alt' type-id='02913b69' visibility='default' filepath='include/linux/usb/typec_mux.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mode' type-id='7359adad' visibility='default' filepath='include/linux/usb/typec_mux.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb/typec_mux.h' line='46' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='phy_attrs' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/phy/phy.h' line='131' column='1' id='2bd806af'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bus_width' type-id='19c2251e' visibility='default' filepath='include/linux/phy/phy.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='max_link_rate' type-id='19c2251e' visibility='default' filepath='include/linux/phy/phy.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mode' type-id='79ba09b7' visibility='default' filepath='include/linux/phy/phy.h' line='134' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='2bdce7cd'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='27675065'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='27675065'/>
+      </function-type>
+      <union-decl name='perf_mem_data_src' size-in-bits='64' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1201' column='1' id='2be3cc53'>
+        <data-member access='public'>
+          <var-decl name='val' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1202' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43f7e' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1203' column='1'/>
+        </data-member>
+      </union-decl>
+      <pointer-type-def type-id='aa1e7074' size-in-bits='64' id='2beae3fa'/>
+      <class-decl name='regmap_access_table' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/regmap.h' line='221' column='1' id='2bed066b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='yes_ranges' type-id='01dc1e38' visibility='default' filepath='include/linux/regmap.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='n_yes_ranges' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='no_ranges' type-id='01dc1e38' visibility='default' filepath='include/linux/regmap.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='n_no_ranges' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='225' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7263c471' size-in-bits='64' id='2bf16f59'/>
+      <class-decl name='dma_pool' size-in-bits='832' is-struct='yes' visibility='default' filepath='mm/dmapool.c' line='43' column='1' id='2bf33030'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='page_list' type-id='72f469ec' visibility='default' filepath='mm/dmapool.c' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='mm/dmapool.c' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='mm/dmapool.c' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='mm/dmapool.c' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='allocation' type-id='b59d7dce' visibility='default' filepath='mm/dmapool.c' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='boundary' type-id='b59d7dce' visibility='default' filepath='mm/dmapool.c' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='mm/dmapool.c' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='pools' type-id='72f469ec' visibility='default' filepath='mm/dmapool.c' line='51' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='555033d2' size-in-bits='64' id='2bf5f3d0'/>
+      <function-type size-in-bits='64' id='2bf8974d'>
+        <parameter type-id='108dbc98'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='22bb2e78' size-in-bits='64' id='2bfa174e'/>
+      <pointer-type-def type-id='774ee36d' size-in-bits='64' id='2c01b31d'/>
+      <function-type size-in-bits='64' id='2c0608e3'>
+        <parameter type-id='00ee50b8'/>
+        <parameter type-id='2ae08426'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='2c09b409'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='3fc786be'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='26d45b0c' size-in-bits='64' id='2c17fd2e'/>
+      <function-type size-in-bits='64' id='2c1be8c3'>
+        <parameter type-id='52009e4b'/>
+        <parameter type-id='a5c94ccc'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='88ddc59d' size-in-bits='64' id='2c1e3f15'/>
+      <pointer-type-def type-id='a4974438' size-in-bits='64' id='2c202856'/>
+      <pointer-type-def type-id='754249bd' size-in-bits='64' id='2c25e09d'/>
+      <pointer-type-def type-id='a8fc2a93' size-in-bits='64' id='2c3372f7'/>
+      <pointer-type-def type-id='5b4eef8b' size-in-bits='64' id='2c36d3bb'/>
+      <function-type size-in-bits='64' id='2c3b4d9d'>
+        <parameter type-id='ac429605'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='be128' type-id='e8391769' filepath='include/crypto/b128ops.h' line='58' column='1' id='2c3bbc0e'/>
+      <class-decl name='ww_acquire_ctx' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/ww_mutex.h' line='57' column='1' id='2c45f76e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='task' type-id='f23e2572' visibility='default' filepath='include/linux/ww_mutex.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='stamp' type-id='7359adad' visibility='default' filepath='include/linux/ww_mutex.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='acquired' type-id='f0981eeb' visibility='default' filepath='include/linux/ww_mutex.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='wounded' type-id='8efea9e5' visibility='default' filepath='include/linux/ww_mutex.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='is_wait_die' type-id='8efea9e5' visibility='default' filepath='include/linux/ww_mutex.h' line='62' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='07dfbd23' size-in-bits='64' id='2c4b1613'/>
+      <pointer-type-def type-id='c43be768' size-in-bits='64' id='2c4d0ce6'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='68' column='1' id='2c525e88' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dlci' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='69' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fb4943b2' size-in-bits='64' id='2c556848'/>
+      <pointer-type-def type-id='b6caa30a' size-in-bits='64' id='2c5bcc28'/>
+      <pointer-type-def type-id='8d077d91' size-in-bits='64' id='2c5f769d'/>
+      <pointer-type-def type-id='92920004' size-in-bits='64' id='2c6d11fe'/>
+      <union-decl name='phy_configure_opts' size-in-bits='896' visibility='default' filepath='include/linux/phy/phy.h' line='61' column='1' id='2c7a2d9f'>
+        <data-member access='public'>
+          <var-decl name='mipi_dphy' type-id='b277cad4' visibility='default' filepath='include/linux/phy/phy.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='dp' type-id='756c73a7' visibility='default' filepath='include/linux/phy/phy.h' line='63' column='1'/>
+        </data-member>
+      </union-decl>
+      <class-decl name='drm_scdc' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/drm/drm_connector.h' line='163' column='1' id='2c7c7fd8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='supported' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='read_request' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='scrambling' type-id='beea899b' visibility='default' filepath='include/drm/drm_connector.h' line='175' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e1b58b0e' size-in-bits='64' id='2c7f1dc4'/>
+      <function-type size-in-bits='64' id='2c85e41f'>
+        <parameter type-id='17a05af6'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='97488913' size-in-bits='64' id='2c8ff697'/>
+      <pointer-type-def type-id='3a97b64f' size-in-bits='64' id='2c927837'/>
+      <class-decl name='nf_exp_event' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack_ecache.h' line='75' column='1' id='2c98045e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='exp' type-id='b7982cd5' visibility='default' filepath='include/net/netfilter/nf_conntrack_ecache.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='portid' type-id='19c2251e' visibility='default' filepath='include/net/netfilter/nf_conntrack_ecache.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='report' type-id='95e97e5e' visibility='default' filepath='include/net/netfilter/nf_conntrack_ecache.h' line='78' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='2ca9725a'>
+        <parameter type-id='0343ce83'/>
+        <parameter type-id='63e171df'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='2cabe151'>
+        <parameter type-id='1c475548'/>
+        <parameter type-id='0187da1b'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='6cf6468f' size-in-bits='64' id='2cb135bf'/>
+      <class-decl name='devlink_dpipe_header' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='219' column='1' id='2cb22181'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/net/devlink.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='id' type-id='f0981eeb' visibility='default' filepath='include/net/devlink.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fields' type-id='00dcae0e' visibility='default' filepath='include/net/devlink.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fields_count' type-id='f0981eeb' visibility='default' filepath='include/net/devlink.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='global' type-id='b50a4934' visibility='default' filepath='include/net/devlink.h' line='224' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='051f9336' size-in-bits='64' id='2cb49514'/>
+      <pointer-type-def type-id='06ca65a1' size-in-bits='64' id='2cb4dc09'/>
+      <pointer-type-def type-id='cfb839d2' size-in-bits='64' id='2cbd236c'/>
+      <pointer-type-def type-id='83c3a083' size-in-bits='64' id='2cbe71ce'/>
+      <pointer-type-def type-id='455e2261' size-in-bits='64' id='2cc5a575'/>
+      <array-type-def dimensions='1' type-id='a7832498' size-in-bits='192' id='2cccef85'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <qualified-type-def type-id='08942f16' const='yes' id='2cd7c576'/>
+      <qualified-type-def type-id='90bc6bed' const='yes' id='2cd82b3d'/>
+      <pointer-type-def type-id='9b3d9f4d' size-in-bits='64' id='2cd87b91'/>
+      <pointer-type-def type-id='4a06e68e' size-in-bits='64' id='2cdd142c'/>
+      <pointer-type-def type-id='91de15a8' size-in-bits='64' id='2cdfbf0a'/>
+      <pointer-type-def type-id='1d8cf482' size-in-bits='64' id='2ce52478'/>
+      <pointer-type-def type-id='a4feac5a' size-in-bits='64' id='2ce97450'/>
+      <function-type size-in-bits='64' id='2cebef22'>
+        <parameter type-id='af051c69'/>
+        <parameter type-id='e55856e5'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='0b6df38c' size-in-bits='64' id='2cf6bd86'/>
+      <function-type size-in-bits='64' id='2cfafd1c'>
+        <parameter type-id='cfff5953'/>
+        <parameter type-id='03054cfa'/>
+        <parameter type-id='91ce1af9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='crypto_completion_t' type-id='60d662f3' filepath='include/linux/crypto.h' line='171' column='1' id='2cfb2e6f'/>
+      <pointer-type-def type-id='f5a529af' size-in-bits='64' id='2d015d73'/>
+      <class-decl name='ethtool_dump' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1254' column='1' id='2d064c05'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='version' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flag' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data' type-id='167619f6' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1259' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fb_bitfield' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/fb.h' line='188' column='1' id='2d123a1f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='offset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='length' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='msb_right' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='191' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='326f37e2' size-in-bits='64' id='2d14cfd8'/>
+      <class-decl name='dev_links_info' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/device.h' line='368' column='1' id='2d178f63'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='suppliers' type-id='72f469ec' visibility='default' filepath='include/linux/device.h' line='369' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='consumers' type-id='72f469ec' visibility='default' filepath='include/linux/device.h' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='defer_sync' type-id='72f469ec' visibility='default' filepath='include/linux/device.h' line='371' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='status' type-id='070abca2' visibility='default' filepath='include/linux/device.h' line='372' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='b486b770' const='yes' id='2d24e48c'/>
+      <function-type size-in-bits='64' id='2d274c62'>
+        <parameter type-id='2567e379'/>
+        <parameter type-id='67acad02'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='0120aad5' size-in-bits='infinite' id='2d2c12ad'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='2d2d4460'>
+        <parameter type-id='1b0e1d00'/>
+        <parameter type-id='809cdefc'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7bfbb42a' size-in-bits='64' id='2d3c5c00'/>
+      <class-decl name='xattr_handler' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/xattr.h' line='30' column='1' id='2d3dd5e3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/xattr.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='prefix' type-id='80f4b756' visibility='default' filepath='include/linux/xattr.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/linux/xattr.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='list' type-id='439be051' visibility='default' filepath='include/linux/xattr.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='get' type-id='152c14d9' visibility='default' filepath='include/linux/xattr.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='set' type-id='fe9a8a85' visibility='default' filepath='include/linux/xattr.h' line='38' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='2d421ebf'>
+        <parameter type-id='abd62a96'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='65b792e2' size-in-bits='64' id='2d44fb50'/>
+      <class-decl name='sched_dl_entity' size-in-bits='1920' is-struct='yes' visibility='default' filepath='include/linux/sched.h' line='597' column='1' id='2d494b2d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rb_node' type-id='2a8a6332' visibility='default' filepath='include/linux/sched.h' line='598' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dl_runtime' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='605' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dl_deadline' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='606' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dl_period' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='607' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dl_bw' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='608' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='dl_density' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='609' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='runtime' type-id='9b7c55ef' visibility='default' filepath='include/linux/sched.h' line='616' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='deadline' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='617' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='618' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='dl_throttled' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='644' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='673'>
+          <var-decl name='dl_yielded' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='645' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='674'>
+          <var-decl name='dl_non_contending' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='646' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='675'>
+          <var-decl name='dl_overrun' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='647' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='dl_timer' type-id='b6993efc' visibility='default' filepath='include/linux/sched.h' line='653' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='inactive_timer' type-id='b6993efc' visibility='default' filepath='include/linux/sched.h' line='662' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='pi_se' type-id='75eeb81d' visibility='default' filepath='include/linux/sched.h' line='670' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='7ad52504' const='yes' id='2d4ad53b'/>
+      <array-type-def dimensions='2' type-id='b151a3a8' size-in-bits='384' id='2d507faf'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <typedef-decl name='read_descriptor_t' type-id='161a11e8' filepath='include/linux/fs.h' line='369' column='1' id='2d58d013'/>
+      <class-decl name='perf_buffer' size-in-bits='1920' is-struct='yes' visibility='default' filepath='kernel/events/internal.h' line='13' column='1' id='2d5955d9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='refcount' type-id='64615833' visibility='default' filepath='kernel/events/internal.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='kernel/events/internal.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='nr_pages' type-id='95e97e5e' visibility='default' filepath='kernel/events/internal.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='overwrite' type-id='95e97e5e' visibility='default' filepath='kernel/events/internal.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='paused' type-id='95e97e5e' visibility='default' filepath='kernel/events/internal.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='poll' type-id='49178f86' visibility='default' filepath='kernel/events/internal.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='head' type-id='dd91f264' visibility='default' filepath='kernel/events/internal.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='nest' type-id='f0981eeb' visibility='default' filepath='kernel/events/internal.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='events' type-id='dd91f264' visibility='default' filepath='kernel/events/internal.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='wakeup' type-id='dd91f264' visibility='default' filepath='kernel/events/internal.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='lost' type-id='dd91f264' visibility='default' filepath='kernel/events/internal.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='watermark' type-id='bd54fe1a' visibility='default' filepath='kernel/events/internal.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='aux_watermark' type-id='bd54fe1a' visibility='default' filepath='kernel/events/internal.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='event_lock' type-id='fb4018a0' visibility='default' filepath='kernel/events/internal.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='event_list' type-id='72f469ec' visibility='default' filepath='kernel/events/internal.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='mmap_count' type-id='49178f86' visibility='default' filepath='kernel/events/internal.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='mmap_locked' type-id='7359adad' visibility='default' filepath='kernel/events/internal.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='mmap_user' type-id='273a7d34' visibility='default' filepath='kernel/events/internal.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='aux_head' type-id='bd54fe1a' visibility='default' filepath='kernel/events/internal.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='aux_nest' type-id='f0981eeb' visibility='default' filepath='kernel/events/internal.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='aux_wakeup' type-id='bd54fe1a' visibility='default' filepath='kernel/events/internal.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='aux_pgoff' type-id='7359adad' visibility='default' filepath='kernel/events/internal.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='aux_nr_pages' type-id='95e97e5e' visibility='default' filepath='kernel/events/internal.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='aux_overwrite' type-id='95e97e5e' visibility='default' filepath='kernel/events/internal.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='aux_mmap_count' type-id='49178f86' visibility='default' filepath='kernel/events/internal.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='aux_mmap_locked' type-id='7359adad' visibility='default' filepath='kernel/events/internal.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='free_aux' type-id='b7f9d8e6' visibility='default' filepath='kernel/events/internal.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='aux_refcount' type-id='64615833' visibility='default' filepath='kernel/events/internal.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1696'>
+          <var-decl name='aux_in_sampling' type-id='95e97e5e' visibility='default' filepath='kernel/events/internal.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='aux_pages' type-id='63e171df' visibility='default' filepath='kernel/events/internal.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='aux_priv' type-id='eaa32e2f' visibility='default' filepath='kernel/events/internal.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='user_page' type-id='4b860c99' visibility='default' filepath='kernel/events/internal.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='data_pages' type-id='baf98fd3' visibility='default' filepath='kernel/events/internal.h' line='58' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='detailed_data_monitor_range' size-in-bits='104' is-struct='yes' visibility='default' filepath='include/drm/drm_edid.h' line='99' column='1' id='2d6065c1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='min_vfreq' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='max_vfreq' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='min_hfreq_khz' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='max_hfreq_khz' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pixel_clock_mhz' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='formula' type-id='ac5ab5d9' visibility='default' filepath='include/drm/drm_edid.h' line='124' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='aea9050e' size-in-bits='64' id='2d633cf1'/>
+      <pointer-type-def type-id='154f1323' size-in-bits='64' id='2d642297'/>
+      <function-type size-in-bits='64' id='2d672146'>
+        <parameter type-id='478ed79d'/>
+        <parameter type-id='d0835005'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='a27aef61' const='yes' id='2d6d6530'/>
+      <function-type size-in-bits='64' id='2d6f2c74'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='67d1ebff'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='snd_soc_dai' size-in-bits='1280' is-struct='yes' visibility='default' filepath='include/sound/soc-dai.h' line='425' column='1' id='2d7051f1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/sound/soc-dai.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-dai.h' line='427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/sound/soc-dai.h' line='428' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='driver' type-id='763d26a2' visibility='default' filepath='include/sound/soc-dai.h' line='431' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='stream_active' type-id='0d532ec1' visibility='default' filepath='include/sound/soc-dai.h' line='434' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='playback_widget' type-id='810606ec' visibility='default' filepath='include/sound/soc-dai.h' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='capture_widget' type-id='810606ec' visibility='default' filepath='include/sound/soc-dai.h' line='437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='playback_dma_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/soc-dai.h' line='440' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='capture_dma_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/soc-dai.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='rate' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-dai.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='channels' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-dai.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='sample_bits' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-dai.h' line='446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='component' type-id='807b7702' visibility='default' filepath='include/sound/soc-dai.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='tx_mask' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-dai.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='rx_mask' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-dai.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/sound/soc-dai.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='mark_startup' type-id='06b2cd14' visibility='default' filepath='include/sound/soc-dai.h' line='458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='mark_hw_params' type-id='06b2cd14' visibility='default' filepath='include/sound/soc-dai.h' line='459' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='mark_trigger' type-id='06b2cd14' visibility='default' filepath='include/sound/soc-dai.h' line='460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='mark_compr_startup' type-id='b7c1d7d5' visibility='default' filepath='include/sound/soc-dai.h' line='461' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='probed' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-dai.h' line='464' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='60407282' size-in-bits='64' id='2d747e78'/>
+      <pointer-type-def type-id='efdb04f5' size-in-bits='64' id='2d7508a9'/>
+      <function-type size-in-bits='64' id='2d770943'>
+        <parameter type-id='12884b9a'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='dwc3_hwparams' size-in-bits='448' is-struct='yes' visibility='default' filepath='drivers/usb/dwc3/core.h' line='865' column='1' id='2d79d174'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hwparams0' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='866' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='hwparams1' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='867' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hwparams2' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='868' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='hwparams3' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='869' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hwparams4' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='870' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='hwparams5' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='871' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hwparams6' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='872' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='hwparams7' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='873' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='hwparams8' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='874' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='hwparams9' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='875' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/usb/dwc3/core.h' line='877' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='drivers/usb/dwc3/core.h' line='878' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='425bcb9d' size-in-bits='64' id='2d81b115'/>
+      <pointer-type-def type-id='e8107910' size-in-bits='64' id='2d82dfd6'/>
+      <pointer-type-def type-id='0a3ca20a' size-in-bits='64' id='2d83a1b8'/>
+      <function-type size-in-bits='64' id='2d8429ef'>
+        <parameter type-id='85535682'/>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='5e4f599b'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='8af57d41' size-in-bits='128' id='2d85a215'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <class-decl name='task_group' size-in-bits='4096' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='390' column='1' id='2d863538'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='css' type-id='7f3df443' visibility='default' filepath='kernel/sched/sched.h' line='391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='se' type-id='eb11624e' visibility='default' filepath='kernel/sched/sched.h' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='cfs_rq' type-id='d6e32957' visibility='default' filepath='kernel/sched/sched.h' line='397' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='shares' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='idle' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='load_avg' type-id='f22a8abb' visibility='default' filepath='kernel/sched/sched.h' line='409' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='kernel/sched/sched.h' line='420' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='kernel/sched/sched.h' line='421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='parent' type-id='3c32f9de' visibility='default' filepath='kernel/sched/sched.h' line='423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='siblings' type-id='72f469ec' visibility='default' filepath='kernel/sched/sched.h' line='424' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='children' type-id='72f469ec' visibility='default' filepath='kernel/sched/sched.h' line='425' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='cfs_bandwidth' type-id='68e4a3af' visibility='default' filepath='kernel/sched/sched.h' line='431' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='uclamp_pct' type-id='0d532ec1' visibility='default' filepath='kernel/sched/sched.h' line='435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='uclamp_req' type-id='c6e3c250' visibility='default' filepath='kernel/sched/sched.h' line='437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='uclamp' type-id='c6e3c250' visibility='default' filepath='kernel/sched/sched.h' line='439' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='latency_sensitive' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='android_vendor_data1' type-id='20b279f0' visibility='default' filepath='kernel/sched/sched.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='447' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3904'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='449' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='robust_list' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/futex.h' line='60' column='1' id='2d8e2e2d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='3ca5030d' visibility='default' filepath='include/uapi/linux/futex.h' line='61' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='53ecac3a' size-in-bits='64' id='2d92dd30'/>
+      <pointer-type-def type-id='33d9b285' size-in-bits='64' id='2d974d69'/>
+      <pointer-type-def type-id='2da3de52' size-in-bits='64' id='2d9c5390'/>
+      <class-decl name='clk_lookup' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/clkdev.h' line='18' column='1' id='2da3de52'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/clkdev.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dev_id' type-id='80f4b756' visibility='default' filepath='include/linux/clkdev.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='con_id' type-id='80f4b756' visibility='default' filepath='include/linux/clkdev.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='clk' type-id='7d0bc0eb' visibility='default' filepath='include/linux/clkdev.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='clk_hw' type-id='3aaeef89' visibility='default' filepath='include/linux/clkdev.h' line='23' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b68346f7' size-in-bits='64' id='2da88de7'/>
+      <pointer-type-def type-id='a27aef61' size-in-bits='64' id='2db792b9'/>
+      <pointer-type-def type-id='81954c90' size-in-bits='64' id='2dbbe856'/>
+      <qualified-type-def type-id='2e8af226' const='yes' id='2dd0028b'/>
+      <pointer-type-def type-id='7fb3a80c' size-in-bits='64' id='2dd1b3d2'/>
+      <qualified-type-def type-id='81cd3626' const='yes' id='2dd1eb6f'/>
+      <class-decl name='usb_host_config' size-in-bits='5440' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='385' column='1' id='2df0328b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='desc' type-id='372ebfa4' visibility='default' filepath='include/linux/usb.h' line='386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='string' type-id='26a90f95' visibility='default' filepath='include/linux/usb.h' line='388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='intf_assoc' type-id='3e3c9632' visibility='default' filepath='include/linux/usb.h' line='392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='interface' type-id='a2aad346' visibility='default' filepath='include/linux/usb.h' line='396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='intf_cache' type-id='11a8d8e5' visibility='default' filepath='include/linux/usb.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5312'>
+          <var-decl name='extra' type-id='cf536864' visibility='default' filepath='include/linux/usb.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='extralen' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='403' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='192c003a' size-in-bits='64' id='2dfafd2c'/>
+      <class-decl name='hotplug_slot' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/pci_hotplug.h' line='58' column='1' id='2dfcfaf9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='94bc2d77' visibility='default' filepath='include/linux/pci_hotplug.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='slot_list' type-id='72f469ec' visibility='default' filepath='include/linux/pci_hotplug.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pci_slot' type-id='4f146b8a' visibility='default' filepath='include/linux/pci_hotplug.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/pci_hotplug.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mod_name' type-id='80f4b756' visibility='default' filepath='include/linux/pci_hotplug.h' line='65' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='2e07b22a'>
+        <parameter type-id='11777d05'/>
+        <parameter type-id='2665334e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='73956807' size-in-bits='64' id='2e0bb6d4'/>
+      <pointer-type-def type-id='1f765c33' size-in-bits='64' id='2e127687'/>
+      <function-type size-in-bits='64' id='2e17690b'>
+        <parameter type-id='41ebc58b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='32d07fab' size-in-bits='64' id='2e18356f'/>
+      <class-decl name='cpuidle_state_usage' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/cpuidle.h' line='36' column='1' id='2e1b0751'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='disable' type-id='0d77e947' visibility='default' filepath='include/linux/cpuidle.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='usage' type-id='0d77e947' visibility='default' filepath='include/linux/cpuidle.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='time_ns' type-id='91ce1af9' visibility='default' filepath='include/linux/cpuidle.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='above' type-id='0d77e947' visibility='default' filepath='include/linux/cpuidle.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='below' type-id='0d77e947' visibility='default' filepath='include/linux/cpuidle.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='rejected' type-id='0d77e947' visibility='default' filepath='include/linux/cpuidle.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='s2idle_usage' type-id='0d77e947' visibility='default' filepath='include/linux/cpuidle.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='s2idle_time' type-id='0d77e947' visibility='default' filepath='include/linux/cpuidle.h' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bd1d1d08' size-in-bits='64' id='2e2106be'/>
+      <typedef-decl name='pgprot_t' type-id='5a777ec6' filepath='arch/arm64/include/asm/pgtable-types.h' line='43' column='1' id='2e2dcbd3'/>
+      <pointer-type-def type-id='ac28b246' size-in-bits='64' id='2e320710'/>
+      <pointer-type-def type-id='97aa083d' size-in-bits='64' id='2e3e746d'/>
+      <class-decl name='regulator_bulk_data' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/regulator/consumer.h' line='183' column='1' id='2e3fb70e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='supply' type-id='80f4b756' visibility='default' filepath='include/linux/regulator/consumer.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='consumer' type-id='850c13f6' visibility='default' filepath='include/linux/regulator/consumer.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ret' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/consumer.h' line='188' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='2e437a47'>
+        <parameter type-id='0d08ac62'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='input_dev' size-in-bits='12864' is-struct='yes' visibility='default' filepath='include/linux/input.h' line='138' column='1' id='2e443c2b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/input.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='phys' type-id='80f4b756' visibility='default' filepath='include/linux/input.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='uniq' type-id='80f4b756' visibility='default' filepath='include/linux/input.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='id' type-id='d99ed569' visibility='default' filepath='include/linux/input.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='propbit' type-id='f066dd3c' visibility='default' filepath='include/linux/input.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='evbit' type-id='f066dd3c' visibility='default' filepath='include/linux/input.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='keybit' type-id='d2b016f4' visibility='default' filepath='include/linux/input.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='relbit' type-id='f066dd3c' visibility='default' filepath='include/linux/input.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='absbit' type-id='f066dd3c' visibility='default' filepath='include/linux/input.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='mscbit' type-id='f066dd3c' visibility='default' filepath='include/linux/input.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='ledbit' type-id='f066dd3c' visibility='default' filepath='include/linux/input.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='sndbit' type-id='f066dd3c' visibility='default' filepath='include/linux/input.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='ffbit' type-id='f05e8e77' visibility='default' filepath='include/linux/input.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='swbit' type-id='f066dd3c' visibility='default' filepath='include/linux/input.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='hint_events_per_packet' type-id='f0981eeb' visibility='default' filepath='include/linux/input.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1696'>
+          <var-decl name='keycodemax' type-id='f0981eeb' visibility='default' filepath='include/linux/input.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='keycodesize' type-id='f0981eeb' visibility='default' filepath='include/linux/input.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='keycode' type-id='eaa32e2f' visibility='default' filepath='include/linux/input.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='setkeycode' type-id='bc9b7fcd' visibility='default' filepath='include/linux/input.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='getkeycode' type-id='94ce875a' visibility='default' filepath='include/linux/input.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='ff' type-id='4a3a4f46' visibility='default' filepath='include/linux/input.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='poller' type-id='3b8264a8' visibility='default' filepath='include/linux/input.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='repeat_key' type-id='f0981eeb' visibility='default' filepath='include/linux/input.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='timer' type-id='abe41e67' visibility='default' filepath='include/linux/input.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='rep' type-id='e4266c7e' visibility='default' filepath='include/linux/input.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='mt' type-id='bf68c5dd' visibility='default' filepath='include/linux/input.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='absinfo' type-id='5c7f23c6' visibility='default' filepath='include/linux/input.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='key' type-id='d2b016f4' visibility='default' filepath='include/linux/input.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='led' type-id='f066dd3c' visibility='default' filepath='include/linux/input.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='snd' type-id='f066dd3c' visibility='default' filepath='include/linux/input.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='sw' type-id='f066dd3c' visibility='default' filepath='include/linux/input.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='open' type-id='2f59f71f' visibility='default' filepath='include/linux/input.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='close' type-id='b44880ea' visibility='default' filepath='include/linux/input.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3904'>
+          <var-decl name='flush' type-id='3cf704a7' visibility='default' filepath='include/linux/input.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='event' type-id='49091f8e' visibility='default' filepath='include/linux/input.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='grab' type-id='bef1b918' visibility='default' filepath='include/linux/input.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='event_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/input.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='include/linux/input.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4544'>
+          <var-decl name='users' type-id='f0981eeb' visibility='default' filepath='include/linux/input.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4576'>
+          <var-decl name='going_away' type-id='b50a4934' visibility='default' filepath='include/linux/input.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4608'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/input.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11904'>
+          <var-decl name='h_list' type-id='72f469ec' visibility='default' filepath='include/linux/input.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12032'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/input.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12160'>
+          <var-decl name='num_vals' type-id='f0981eeb' visibility='default' filepath='include/linux/input.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12192'>
+          <var-decl name='max_vals' type-id='f0981eeb' visibility='default' filepath='include/linux/input.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12224'>
+          <var-decl name='vals' type-id='d09656fd' visibility='default' filepath='include/linux/input.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12288'>
+          <var-decl name='devres_managed' type-id='b50a4934' visibility='default' filepath='include/linux/input.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12352'>
+          <var-decl name='timestamp' type-id='728c8299' visibility='default' filepath='include/linux/input.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12544'>
+          <var-decl name='inhibited' type-id='b50a4934' visibility='default' filepath='include/linux/input.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12608'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/input.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12672'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/input.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12736'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/input.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12800'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/input.h' line='217' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='08942f16' size-in-bits='64' id='2e53d20f'/>
+      <pointer-type-def type-id='ea5fdc37' size-in-bits='64' id='2e5880fb'/>
+      <pointer-type-def type-id='d315442e' size-in-bits='64' id='2e5e3725'/>
+      <function-type size-in-bits='64' id='2e5f4f0f'>
+        <parameter type-id='3aaeef89'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='fileattr' size-in-bits='224' is-struct='yes' visibility='default' filepath='include/linux/fileattr.h' line='23' column='1' id='2e618224'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/linux/fileattr.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='fsx_xflags' type-id='19c2251e' visibility='default' filepath='include/linux/fileattr.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fsx_extsize' type-id='19c2251e' visibility='default' filepath='include/linux/fileattr.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='fsx_nextents' type-id='19c2251e' visibility='default' filepath='include/linux/fileattr.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fsx_projid' type-id='19c2251e' visibility='default' filepath='include/linux/fileattr.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='fsx_cowextsize' type-id='19c2251e' visibility='default' filepath='include/linux/fileattr.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='flags_valid' type-id='b50a4934' visibility='default' filepath='include/linux/fileattr.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='193'>
+          <var-decl name='fsx_valid' type-id='b50a4934' visibility='default' filepath='include/linux/fileattr.h' line='33' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a631cac2' size-in-bits='64' id='2e6a2f40'/>
+      <pointer-type-def type-id='b421eeb7' size-in-bits='64' id='2e6aa127'/>
+      <pointer-type-def type-id='e2d4c382' size-in-bits='64' id='2e6f075c'/>
+      <class-decl name='mem_cgroup_per_node' size-in-bits='16448' is-struct='yes' visibility='default' filepath='include/linux/memcontrol.h' line='138' column='1' id='2e6f3990'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lruvec' type-id='9e8c0698' visibility='default' filepath='include/linux/memcontrol.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9728'>
+          <var-decl name='lruvec_stats_percpu' type-id='cafc8210' visibility='default' filepath='include/linux/memcontrol.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9792'>
+          <var-decl name='lruvec_stats' type-id='ccefe56c' visibility='default' filepath='include/linux/memcontrol.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14912'>
+          <var-decl name='lru_zone_size' type-id='aa6663dd' visibility='default' filepath='include/linux/memcontrol.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15872'>
+          <var-decl name='iter' type-id='e0324306' visibility='default' filepath='include/linux/memcontrol.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16000'>
+          <var-decl name='shrinker_info' type-id='5eb6827a' visibility='default' filepath='include/linux/memcontrol.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16064'>
+          <var-decl name='tree_node' type-id='2a8a6332' visibility='default' filepath='include/linux/memcontrol.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16256'>
+          <var-decl name='usage_in_excess' type-id='7359adad' visibility='default' filepath='include/linux/memcontrol.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16320'>
+          <var-decl name='on_tree' type-id='b50a4934' visibility='default' filepath='include/linux/memcontrol.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16384'>
+          <var-decl name='memcg' type-id='223696fb' visibility='default' filepath='include/linux/memcontrol.h' line='154' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='cfg80211_cqm_config' is-struct='yes' visibility='default' is-declaration-only='yes' id='2e77eb82'/>
+      <class-decl name='devlink_trap' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='796' column='1' id='2e8af226'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='f7c3b5f0' visibility='default' filepath='include/net/devlink.h' line='797' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='init_action' type-id='1e6bdea2' visibility='default' filepath='include/net/devlink.h' line='798' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='generic' type-id='b50a4934' visibility='default' filepath='include/net/devlink.h' line='799' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='id' type-id='1dc6a898' visibility='default' filepath='include/net/devlink.h' line='800' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/net/devlink.h' line='801' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='init_group_id' type-id='1dc6a898' visibility='default' filepath='include/net/devlink.h' line='802' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='metadata_cap' type-id='19c2251e' visibility='default' filepath='include/net/devlink.h' line='803' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='fbc017ef' size-in-bits='128' id='2e8fe924'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='12aa8ce4' size-in-bits='64' id='2e97ceaf'/>
+      <pointer-type-def type-id='278986d0' size-in-bits='64' id='2e9bdf5a'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/types.h' line='166' column='1' id='2ea91e03' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='counter' type-id='95e97e5e' visibility='default' filepath='include/linux/types.h' line='167' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='2ea97d28'>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <enum-decl name='system_states' filepath='include/linux/kernel.h' line='248' column='1' id='2ead22b4'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SYSTEM_BOOTING' value='0'/>
+        <enumerator name='SYSTEM_SCHEDULING' value='1'/>
+        <enumerator name='SYSTEM_RUNNING' value='2'/>
+        <enumerator name='SYSTEM_HALT' value='3'/>
+        <enumerator name='SYSTEM_POWER_OFF' value='4'/>
+        <enumerator name='SYSTEM_RESTART' value='5'/>
+        <enumerator name='SYSTEM_SUSPEND' value='6'/>
+      </enum-decl>
+      <pointer-type-def type-id='c95d9034' size-in-bits='64' id='2eb7248e'/>
+      <pointer-type-def type-id='e9c67dd2' size-in-bits='64' id='2eb73e9c'/>
+      <qualified-type-def type-id='f45a6a89' const='yes' id='2eb8da02'/>
+      <function-type size-in-bits='64' id='2ebc1c8c'>
+        <parameter type-id='f3496bd3'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='bio_end_io_t' type-id='98617d6e' filepath='include/linux/blk_types.h' line='21' column='1' id='2ec4b2ae'/>
+      <pointer-type-def type-id='b76cd09a' size-in-bits='64' id='2ec7bb58'/>
+      <array-type-def dimensions='1' type-id='02913b69' size-in-bits='1920' id='2ecdc8a0'>
+        <subrange length='30' type-id='7ff19f0f' id='6a6183a4'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='2ece368e'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='e3dd029e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='2ed857dd'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='07b9ee34'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='bdbd4b03'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='2ed90d9a'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='2eda4fae'>
+        <parameter type-id='414ea452'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='scsi_eh_save' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/scsi/scsi_eh.h' line='32' column='1' id='2ee43d37'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='result' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_eh.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='resid_len' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_eh.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='eh_eflags' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_eh.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='data_direction' type-id='eea6b025' visibility='default' filepath='include/scsi/scsi_eh.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='underflow' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_eh.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='cmd_len' type-id='002ac4a6' visibility='default' filepath='include/scsi/scsi_eh.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='168'>
+          <var-decl name='prot_op' type-id='002ac4a6' visibility='default' filepath='include/scsi/scsi_eh.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cmnd' type-id='cf536864' visibility='default' filepath='include/scsi/scsi_eh.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='sdb' type-id='9f8b0d0f' visibility='default' filepath='include/scsi/scsi_eh.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='eh_cmnd' type-id='92a46553' visibility='default' filepath='include/scsi/scsi_eh.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='sense_sgl' type-id='663acc25' visibility='default' filepath='include/scsi/scsi_eh.h' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ieee80211_vht_cap' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/ieee80211.h' line='1783' column='1' id='2eec6999'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vht_cap_info' type-id='2f162548' visibility='default' filepath='include/linux/ieee80211.h' line='1784' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='supp_mcs' type-id='830056b5' visibility='default' filepath='include/linux/ieee80211.h' line='1785' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='8f68aa3b' const='yes' id='2ef05706'/>
+      <pointer-type-def type-id='d6de54c5' size-in-bits='64' id='2effb43d'/>
+      <pointer-type-def type-id='c67e920d' size-in-bits='64' id='2f00283d'/>
+      <qualified-type-def type-id='d7c619db' const='yes' id='2f04a816'/>
+      <function-type size-in-bits='64' id='2f07c2f4'>
+        <parameter type-id='3591079f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='2f0a18fa'>
+        <parameter type-id='63e6cf23'/>
+        <parameter type-id='63e6cf23'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='2f0e8f2a'>
+        <parameter type-id='9d57e433'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='7c3e509a'/>
+        <parameter type-id='c0a9211d'/>
+        <parameter type-id='01b27472'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='__le32' type-id='3f1a6b60' filepath='include/uapi/linux/types.h' line='31' column='1' id='2f162548'/>
+      <function-type size-in-bits='64' id='2f174cbc'>
+        <parameter type-id='b47b0d41'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='ethtool_link_ext_state' filepath='include/uapi/linux/ethtool.h' line='595' column='1' id='2f1b727c'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ETHTOOL_LINK_EXT_STATE_AUTONEG' value='0'/>
+        <enumerator name='ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE' value='1'/>
+        <enumerator name='ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH' value='2'/>
+        <enumerator name='ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY' value='3'/>
+        <enumerator name='ETHTOOL_LINK_EXT_STATE_NO_CABLE' value='4'/>
+        <enumerator name='ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE' value='5'/>
+        <enumerator name='ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE' value='6'/>
+        <enumerator name='ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE' value='7'/>
+        <enumerator name='ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED' value='8'/>
+        <enumerator name='ETHTOOL_LINK_EXT_STATE_OVERHEAT' value='9'/>
+      </enum-decl>
+      <pointer-type-def type-id='63217e72' size-in-bits='64' id='2f28f04c'/>
+      <function-type size-in-bits='64' id='2f2bbf22'>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='de3045e9'/>
+      </function-type>
+      <class-decl name='hci_dev_stats' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/bluetooth/hci_sock.h' line='95' column='1' id='2f3316f3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='err_rx' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_sock.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='err_tx' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_sock.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cmd_tx' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_sock.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='evt_rx' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_sock.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='acl_tx' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_sock.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='acl_rx' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_sock.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sco_tx' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_sock.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='sco_rx' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_sock.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='byte_rx' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_sock.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='byte_tx' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_sock.h' line='105' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tty_buffer' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/tty_buffer.h' line='10' column='1' id='2f351d1f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab66a' visibility='default' filepath='include/linux/tty_buffer.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='used' type-id='95e97e5e' visibility='default' filepath='include/linux/tty_buffer.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='size' type-id='95e97e5e' visibility='default' filepath='include/linux/tty_buffer.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='commit' type-id='95e97e5e' visibility='default' filepath='include/linux/tty_buffer.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='read' type-id='95e97e5e' visibility='default' filepath='include/linux/tty_buffer.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/linux/tty_buffer.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='data' type-id='c99b5ecd' visibility='default' filepath='include/linux/tty_buffer.h' line='21' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='2f3d1886'>
+        <parameter type-id='4ddb6991'/>
+        <parameter type-id='ce94579b'/>
+        <parameter type-id='b6fa14a6'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9502627f' size-in-bits='64' id='2f4077f3'/>
+      <function-type size-in-bits='64' id='2f4352a3'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='fea9c20b'/>
+        <parameter type-id='68a2d05b'/>
+        <return type-id='68a2d05b'/>
+      </function-type>
+      <pointer-type-def type-id='676b848c' size-in-bits='64' id='2f4512ea'/>
+      <pointer-type-def type-id='7364da7b' size-in-bits='64' id='2f59f71f'/>
+      <class-decl name='file_system_type' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2515' column='1' id='2f5a60be'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='2516' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fs_flags' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='2517' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='init_fs_context' type-id='57f0383a' visibility='default' filepath='include/linux/fs.h' line='2526' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='parameters' type-id='8d4f223b' visibility='default' filepath='include/linux/fs.h' line='2527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mount' type-id='d9394db1' visibility='default' filepath='include/linux/fs.h' line='2528' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='kill_sb' type-id='1ff54a45' visibility='default' filepath='include/linux/fs.h' line='2530' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/fs.h' line='2531' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='next' type-id='21e53d44' visibility='default' filepath='include/linux/fs.h' line='2532' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='fs_supers' type-id='e151255a' visibility='default' filepath='include/linux/fs.h' line='2533' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='s_lock_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2535' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='s_umount_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2536' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='s_vfs_rename_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2537' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='s_writers_key' type-id='9c02e2a6' visibility='default' filepath='include/linux/fs.h' line='2538' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='i_lock_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2540' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='i_mutex_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2541' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='invalidate_lock_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2542' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='i_mutex_dir_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2543' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2545' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2546' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2547' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2548' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='skcipher_instance' size-in-bits='6144' is-struct='yes' visibility='default' filepath='include/crypto/internal/skcipher.h' line='20' column='1' id='2f61a822'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='free' type-id='595e6a79' visibility='default' filepath='include/crypto/internal/skcipher.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='' type-id='ac5ab5ba' visibility='default' filepath='include/crypto/internal/skcipher.h' line='22' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3b43e527' size-in-bits='64' id='2f739ebb'/>
+      <array-type-def dimensions='1' type-id='8dee6d89' size-in-bits='192' id='2f7565c6'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='91ce1af9' size-in-bits='1984' id='2f7ab612'>
+        <subrange length='31' type-id='7ff19f0f' id='ae5e1d19'/>
+      </array-type-def>
+      <class-decl name='debug_info' size-in-bits='2176' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='107' column='1' id='2f821a8d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='suspended_step' type-id='95e97e5e' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bps_disabled' type-id='95e97e5e' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wps_disabled' type-id='95e97e5e' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hbp_break' type-id='18b1b6ec' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='hbp_watch' type-id='18b1b6ec' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='116' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ktermios' size-in-bits='352' is-struct='yes' visibility='default' filepath='include/uapi/asm-generic/termbits.h' line='32' column='1' id='2f8662b5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='c_iflag' type-id='241ce6f8' visibility='default' filepath='include/uapi/asm-generic/termbits.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='c_oflag' type-id='241ce6f8' visibility='default' filepath='include/uapi/asm-generic/termbits.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='c_cflag' type-id='241ce6f8' visibility='default' filepath='include/uapi/asm-generic/termbits.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='c_lflag' type-id='241ce6f8' visibility='default' filepath='include/uapi/asm-generic/termbits.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='c_line' type-id='fb7c6451' visibility='default' filepath='include/uapi/asm-generic/termbits.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='c_cc' type-id='8f04ba62' visibility='default' filepath='include/uapi/asm-generic/termbits.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='c_ispeed' type-id='6a8e8a14' visibility='default' filepath='include/uapi/asm-generic/termbits.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='c_ospeed' type-id='6a8e8a14' visibility='default' filepath='include/uapi/asm-generic/termbits.h' line='40' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_streamparm' size-in-bits='1632' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2348' column='1' id='2f896428'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='parm' type-id='ac5ab602' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2354' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9d07f7d6' size-in-bits='64' id='2f8b61b4'/>
+      <qualified-type-def type-id='6f9bf471' const='yes' id='2f8dd5c2'/>
+      <pointer-type-def type-id='e9ef9215' size-in-bits='64' id='2f974a69'/>
+      <pointer-type-def type-id='e8681069' size-in-bits='64' id='2f9b8041'/>
+      <class-decl name='ptp_clock_time' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='81' column='1' id='2f9dd1de'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sec' type-id='49659421' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nsec' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='reserved' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='84' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='2fa2db94'>
+        <parameter type-id='6ed6b432'/>
+        <parameter type-id='f23e2572'/>
+        <parameter type-id='d0163a5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='bbe0df86' size-in-bits='64' id='2fa81f80'/>
+      <pointer-type-def type-id='9f7fd760' size-in-bits='64' id='2facc7e6'/>
+      <class-decl name='i3c_priv_xfer' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/i3c/device.h' line='61' column='1' id='2fc2d296'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rnw' type-id='f9b06939' visibility='default' filepath='include/linux/i3c/device.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='len' type-id='1dc6a898' visibility='default' filepath='include/linux/i3c/device.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='ac5ab5e3' visibility='default' filepath='include/linux/i3c/device.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='err' type-id='f9ac5040' visibility='default' filepath='include/linux/i3c/device.h' line='68' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='281d3096' size-in-bits='64' id='2fc4734c'/>
+      <pointer-type-def type-id='96c5d5bd' size-in-bits='64' id='2fc899e9'/>
+      <pointer-type-def type-id='88565f1f' size-in-bits='64' id='2fcb9b17'/>
+      <typedef-decl name='FSE_CTable' type-id='f0981eeb' filepath='lib/zstd/fse.h' line='122' column='1' id='2fced0dc'/>
+      <pointer-type-def type-id='c012d70e' size-in-bits='64' id='2fd02888'/>
+      <function-type size-in-bits='64' id='2fdc535f'>
+        <parameter type-id='1fc888a9'/>
+        <parameter type-id='176d60a1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='06f84b1d' size-in-bits='64' id='2fde6795'/>
+      <function-type size-in-bits='64' id='2fe02b6b'>
+        <parameter type-id='108dbc98'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='98b07df9'/>
+      </function-type>
+      <class-decl name='workqueue_attrs' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/workqueue.h' line='138' column='1' id='2fe6f208'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nice' type-id='95e97e5e' visibility='default' filepath='include/linux/workqueue.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cpumask' type-id='b16b461b' visibility='default' filepath='include/linux/workqueue.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='no_numa' type-id='b50a4934' visibility='default' filepath='include/linux/workqueue.h' line='156' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='5b3ea0c8' const='yes' id='2fecddf7'/>
+      <pointer-type-def type-id='d0b77cf6' size-in-bits='64' id='2fed99fc'/>
+      <function-type size-in-bits='64' id='2fedb035'>
+        <parameter type-id='0cb0b26f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3ae87f87' size-in-bits='64' id='2feec21f'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/types.h' line='173' column='1' id='2fef71f1' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='counter' type-id='9b7c55ef' visibility='default' filepath='include/linux/types.h' line='174' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='phylink_pcs' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/phylink.h' line='340' column='1' id='2ff052b1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='a6424831' visibility='default' filepath='include/linux/phylink.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='poll' type-id='b50a4934' visibility='default' filepath='include/linux/phylink.h' line='342' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='fc206ed1' const='yes' id='2ffd639c'/>
+      <pointer-type-def type-id='ef65541d' size-in-bits='64' id='2fff15e1'/>
+      <pointer-type-def type-id='5c92ada0' size-in-bits='64' id='30064a72'/>
+      <pointer-type-def type-id='9d4a3248' size-in-bits='64' id='3007e20a'/>
+      <pointer-type-def type-id='820ec76f' size-in-bits='64' id='300d6413'/>
+      <pointer-type-def type-id='37ce495e' size-in-bits='64' id='301185b4'/>
+      <pointer-type-def type-id='91b0693b' size-in-bits='64' id='30144f27'/>
+      <pointer-type-def type-id='ac8c8ac7' size-in-bits='64' id='3014966f'/>
+      <array-type-def dimensions='1' type-id='78a133c2' size-in-bits='96' id='3015ceb4'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='78a133c2' size-in-bits='128' id='30180d4b'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='30247438'>
+        <parameter type-id='07d0a3e7'/>
+        <parameter type-id='26a90f95'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='302b8c85'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='a4ca87c1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='391881a9' size-in-bits='64' id='302e9391'/>
+      <pointer-type-def type-id='845f3205' size-in-bits='64' id='30341fa1'/>
+      <pointer-type-def type-id='4657336c' size-in-bits='64' id='303e01fa'/>
+      <class-decl name='scmi_notify_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/scmi_protocol.h' line='601' column='1' id='3042e3e4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='devm_event_notifier_register' type-id='0ad82ef5' visibility='default' filepath='include/linux/scmi_protocol.h' line='602' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='devm_event_notifier_unregister' type-id='0ad82ef5' visibility='default' filepath='include/linux/scmi_protocol.h' line='606' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='event_notifier_register' type-id='91fe9e22' visibility='default' filepath='include/linux/scmi_protocol.h' line='610' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='event_notifier_unregister' type-id='91fe9e22' visibility='default' filepath='include/linux/scmi_protocol.h' line='614' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='106d717e' size-in-bits='64' id='3049673c'/>
+      <pointer-type-def type-id='0da72d62' size-in-bits='64' id='304a6cc4'/>
+      <function-type size-in-bits='64' id='304ac94e'>
+        <parameter type-id='a6711537'/>
+        <parameter type-id='26ea5d4c'/>
+        <parameter type-id='9c313c2d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='29ad938b' size-in-bits='64' id='3059cd0b'/>
+      <pointer-type-def type-id='643f05a0' size-in-bits='64' id='305a7ffa'/>
+      <pointer-type-def type-id='e9a4c848' size-in-bits='64' id='30677246'/>
+      <pointer-type-def type-id='71fb30e8' size-in-bits='64' id='306dc166'/>
+      <function-type size-in-bits='64' id='306fcd19'>
+        <parameter type-id='6614aa5e'/>
+        <parameter type-id='80f4b756'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='xfrm_algo_aead' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/uapi/linux/xfrm.h' line='115' column='1' id='307587ae'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='alg_name' type-id='59daf3ef' visibility='default' filepath='include/uapi/linux/xfrm.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='alg_key_len' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/xfrm.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='alg_icv_len' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/xfrm.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='alg_key' type-id='e84913bd' visibility='default' filepath='include/uapi/linux/xfrm.h' line='119' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2aa6fa74' size-in-bits='64' id='307d4a12'/>
+      <class-decl name='uclamp_rq' size-in-bits='1344' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='925' column='1' id='30847fcd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='value' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='926' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bucket' type-id='d2f09908' visibility='default' filepath='kernel/sched/sched.h' line='927' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6fcaf91e' size-in-bits='64' id='30864cdc'/>
+      <pointer-type-def type-id='f52a1ce8' size-in-bits='64' id='30897c4e'/>
+      <function-type size-in-bits='64' id='30913582'>
+        <parameter type-id='3aaeef89'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='usb_cdc_mbim_extended_desc' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='211' column='1' id='3093472a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bDescriptorSubType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bcdMBIMExtendedVersion' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='bMaxOutstandingCommandMessages' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='wMTU' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='218' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='309421a5'>
+        <parameter type-id='a585cbc4'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='zs_size_stat' size-in-bits='384' is-struct='yes' visibility='default' filepath='mm/zsmalloc.c' line='171' column='1' id='3097f179'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='objs' type-id='f0691bd3' visibility='default' filepath='mm/zsmalloc.c' line='172' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3098b525'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='af5a73b0'/>
+        <parameter type-id='8665c98e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='1697786f' size-in-bits='64' id='3098d84b'/>
+      <pointer-type-def type-id='3a8ead28' size-in-bits='64' id='309a5a26'/>
+      <pointer-type-def type-id='b4a1ba48' size-in-bits='64' id='309bd9ee'/>
+      <function-type size-in-bits='64' id='309ed22f'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='30a49526'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='45305972'/>
+        <parameter type-id='30864cdc'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <pointer-type-def type-id='c3384bd1' size-in-bits='64' id='30ab2c05'/>
+      <pointer-type-def type-id='d1d0945d' size-in-bits='64' id='30b66f41'/>
+      <class-decl name='snd_shutdown_f_ops' is-struct='yes' visibility='default' is-declaration-only='yes' id='30b9286d'/>
+      <pointer-type-def type-id='8d6f7724' size-in-bits='64' id='30b9fb16'/>
+      <class-decl name='elf64_sym' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/elf.h' line='196' column='1' id='30bf9720'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='st_name' type-id='e57120d4' visibility='default' filepath='include/uapi/linux/elf.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='st_info' type-id='002ac4a6' visibility='default' filepath='include/uapi/linux/elf.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='st_other' type-id='002ac4a6' visibility='default' filepath='include/uapi/linux/elf.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='st_shndx' type-id='101a70d5' visibility='default' filepath='include/uapi/linux/elf.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='st_value' type-id='e14340cf' visibility='default' filepath='include/uapi/linux/elf.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='st_size' type-id='c87c44e4' visibility='default' filepath='include/uapi/linux/elf.h' line='202' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='173ca462' size-in-bits='64' id='30c362fc'/>
+      <pointer-type-def type-id='ab3ad981' size-in-bits='64' id='30c83839'/>
+      <function-type size-in-bits='64' id='30c8d450'>
+        <parameter type-id='a6711537'/>
+        <parameter type-id='e3dd029e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='50f15cd5' size-in-bits='64' id='30c8e7b1'/>
+      <pointer-type-def type-id='c0c93c9e' size-in-bits='64' id='30ca8f5c'/>
+      <qualified-type-def type-id='f809b7c8' const='yes' id='30d151d5'/>
+      <function-type size-in-bits='64' id='30d69cf7'>
+        <parameter type-id='7efbcaaf'/>
+        <parameter type-id='bccad679'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d3130597' size-in-bits='64' id='30dcd536'/>
+      <pointer-type-def type-id='f1415d4d' size-in-bits='64' id='30e60925'/>
+      <pointer-type-def type-id='63e171df' size-in-bits='64' id='30e664af'/>
+      <function-type size-in-bits='64' id='30e75f3e'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b29a990c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='30f4922c'>
+        <parameter type-id='feb59272'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='604bba92' size-in-bits='64' id='30f63774'/>
+      <pointer-type-def type-id='c61b4e0b' size-in-bits='64' id='30f6c897'/>
+      <pointer-type-def type-id='f2e22af7' size-in-bits='64' id='30f9749f'/>
+      <class-decl name='gpio_irq_chip' size-in-bits='2496' is-struct='yes' visibility='default' filepath='include/linux/gpio/driver.h' line='32' column='1' id='31045126'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='chip' type-id='8846a616' visibility='default' filepath='include/linux/gpio/driver.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='domain' type-id='7544e824' visibility='default' filepath='include/linux/gpio/driver.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='domain_ops' type-id='2c202856' visibility='default' filepath='include/linux/gpio/driver.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fwnode' type-id='4a935625' visibility='default' filepath='include/linux/gpio/driver.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='parent_domain' type-id='7544e824' visibility='default' filepath='include/linux/gpio/driver.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='child_to_parent_hwirq' type-id='391871d1' visibility='default' filepath='include/linux/gpio/driver.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='populate_parent_alloc_arg' type-id='2303e664' visibility='default' filepath='include/linux/gpio/driver.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='child_offset_to_irq' type-id='f5b0f2f2' visibility='default' filepath='include/linux/gpio/driver.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='child_irq_domain_ops' type-id='0926e4bd' visibility='default' filepath='include/linux/gpio/driver.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='handler' type-id='cdb741d3' visibility='default' filepath='include/linux/gpio/driver.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='default_type' type-id='f0981eeb' visibility='default' filepath='include/linux/gpio/driver.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='lock_key' type-id='a57283f9' visibility='default' filepath='include/linux/gpio/driver.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='request_key' type-id='a57283f9' visibility='default' filepath='include/linux/gpio/driver.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='parent_handler' type-id='cdb741d3' visibility='default' filepath='include/linux/gpio/driver.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='parent_handler_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/gpio/driver.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='num_parents' type-id='f0981eeb' visibility='default' filepath='include/linux/gpio/driver.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='parents' type-id='807869d3' visibility='default' filepath='include/linux/gpio/driver.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='map' type-id='807869d3' visibility='default' filepath='include/linux/gpio/driver.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='threaded' type-id='b50a4934' visibility='default' filepath='include/linux/gpio/driver.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='init_hw' type-id='26bfaed1' visibility='default' filepath='include/linux/gpio/driver.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='init_valid_mask' type-id='bb3baa4e' visibility='default' filepath='include/linux/gpio/driver.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='initialized' type-id='b50a4934' visibility='default' filepath='include/linux/gpio/driver.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='valid_mask' type-id='1d2c2b85' visibility='default' filepath='include/linux/gpio/driver.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='first' type-id='f0981eeb' visibility='default' filepath='include/linux/gpio/driver.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='irq_enable' type-id='185ccd91' visibility='default' filepath='include/linux/gpio/driver.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='irq_disable' type-id='185ccd91' visibility='default' filepath='include/linux/gpio/driver.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='irq_unmask' type-id='185ccd91' visibility='default' filepath='include/linux/gpio/driver.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='irq_mask' type-id='185ccd91' visibility='default' filepath='include/linux/gpio/driver.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/gpio/driver.h' line='280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/gpio/driver.h' line='281' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mnt_pcp' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/../fs/mount.h' line='27' column='1' id='3106563e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mnt_count' type-id='95e97e5e' visibility='default' filepath='fs/mount.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='mnt_writers' type-id='95e97e5e' visibility='default' filepath='fs/mount.h' line='29' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='082d8e2c' size-in-bits='64' id='3107ecae'/>
+      <pointer-type-def type-id='f12ac4ae' size-in-bits='64' id='31094274'/>
+      <function-type size-in-bits='64' id='310f54fd'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='bf742373'/>
+        <parameter type-id='3df9fd28'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='26a90f95' size-in-bits='4096' id='31147867'>
+        <subrange length='64' type-id='7ff19f0f' id='b10be967'/>
+      </array-type-def>
+      <class-decl name='mm_struct' size-in-bits='7936' is-struct='yes' visibility='default' filepath='include/linux/mm_types.h' line='450' column='1' id='311626f1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='e7f43ff3' visibility='default' filepath='include/linux/mm_types.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='cpu_bitmap' type-id='c99b5ecd' visibility='default' filepath='include/linux/mm_types.h' line='662' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='93df1bf0' size-in-bits='64' id='31163f5a'/>
+      <pointer-type-def type-id='1c2e282d' size-in-bits='64' id='31316b61'/>
+      <class-decl name='tracepoint_func' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/tracepoint-defs.h' line='26' column='1' id='3132e187'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='func' type-id='eaa32e2f' visibility='default' filepath='include/linux/tracepoint-defs.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/tracepoint-defs.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='prio' type-id='95e97e5e' visibility='default' filepath='include/linux/tracepoint-defs.h' line='29' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3beb2af4' size-in-bits='64' id='31347b7a'/>
+      <typedef-decl name='report_zones_cb' type-id='785bacaf' filepath='include/linux/blkdev.h' line='342' column='1' id='313c6196'/>
+      <class-decl name='pci_driver' size-in-bits='2816' is-struct='yes' visibility='default' filepath='include/linux/pci.h' line='906' column='1' id='314e713e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/pci.h' line='907' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/pci.h' line='908' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='id_table' type-id='92fc8aa5' visibility='default' filepath='include/linux/pci.h' line='909' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='probe' type-id='6cc3a8b3' visibility='default' filepath='include/linux/pci.h' line='910' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='remove' type-id='01d543be' visibility='default' filepath='include/linux/pci.h' line='911' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='suspend' type-id='831f84c2' visibility='default' filepath='include/linux/pci.h' line='912' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='resume' type-id='40672f7b' visibility='default' filepath='include/linux/pci.h' line='913' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='shutdown' type-id='01d543be' visibility='default' filepath='include/linux/pci.h' line='914' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='sriov_configure' type-id='ab05e282' visibility='default' filepath='include/linux/pci.h' line='915' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='sriov_set_msix_vec_count' type-id='ab05e282' visibility='default' filepath='include/linux/pci.h' line='916' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='sriov_get_vf_total_msix' type-id='128b8ebb' visibility='default' filepath='include/linux/pci.h' line='917' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='err_handler' type-id='2da88de7' visibility='default' filepath='include/linux/pci.h' line='918' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='groups' type-id='c97de1ac' visibility='default' filepath='include/linux/pci.h' line='919' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='dev_groups' type-id='c97de1ac' visibility='default' filepath='include/linux/pci.h' line='920' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/pci.h' line='921' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='dynids' type-id='022719b7' visibility='default' filepath='include/linux/pci.h' line='922' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/pci.h' line='924' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/pci.h' line='925' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/pci.h' line='926' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/pci.h' line='927' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='__s32' type-id='95e97e5e' filepath='include/uapi/asm-generic/int-ll64.h' line='26' column='1' id='3158a266'/>
+      <pointer-type-def type-id='6ae7a739' size-in-bits='64' id='3168497d'/>
+      <pointer-type-def type-id='12878ab3' size-in-bits='64' id='316cdcd3'/>
+      <class-decl name='key_tag' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/key.h' line='102' column='1' id='3173bc57'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/key.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='usage' type-id='64615833' visibility='default' filepath='include/linux/key.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='removed' type-id='b50a4934' visibility='default' filepath='include/linux/key.h' line='105' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0300abda' size-in-bits='64' id='3177a274'/>
+      <class-decl name='sighand_struct' size-in-bits='16640' is-struct='yes' visibility='default' filepath='include/linux/sched/signal.h' line='21' column='1' id='317e3dc9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='siglock' type-id='fb4018a0' visibility='default' filepath='include/linux/sched/signal.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='count' type-id='64615833' visibility='default' filepath='include/linux/sched/signal.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='signalfd_wqh' type-id='b5ab048f' visibility='default' filepath='include/linux/sched/signal.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='action' type-id='02d77f24' visibility='default' filepath='include/linux/sched/signal.h' line='25' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='47a16dfc' size-in-bits='64' id='317f203e'/>
+      <pointer-type-def type-id='232e3e4e' size-in-bits='64' id='318389e0'/>
+      <pointer-type-def type-id='3ebb2302' size-in-bits='64' id='31859990'/>
+      <class-decl name='iomap_dio' size-in-bits='896' is-struct='yes' visibility='default' filepath='fs/iomap/direct-io.c' line='28' column='1' id='318c65be'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='iocb' type-id='80f25feb' visibility='default' filepath='fs/iomap/direct-io.c' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dops' type-id='79ebba98' visibility='default' filepath='fs/iomap/direct-io.c' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='i_size' type-id='69bf7bee' visibility='default' filepath='fs/iomap/direct-io.c' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='size' type-id='69bf7bee' visibility='default' filepath='fs/iomap/direct-io.c' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ref' type-id='49178f86' visibility='default' filepath='fs/iomap/direct-io.c' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='fs/iomap/direct-io.c' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='error' type-id='95e97e5e' visibility='default' filepath='fs/iomap/direct-io.c' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='done_before' type-id='b59d7dce' visibility='default' filepath='fs/iomap/direct-io.c' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='wait_for_completion' type-id='b50a4934' visibility='default' filepath='fs/iomap/direct-io.c' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='' type-id='ac5ab628' visibility='default' filepath='fs/iomap/direct-io.c' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3191191a'>
+        <parameter type-id='b26c7631'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='31975058'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='ad974450' const='yes' id='319b3a77'/>
+      <class-decl name='qrwlock' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/asm-generic/qrwlock_types.h' line='13' column='1' id='319e0e18'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab62e' visibility='default' filepath='include/asm-generic/qrwlock_types.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='wait_lock' type-id='641c41d1' visibility='default' filepath='include/asm-generic/qrwlock_types.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='2464be13' const='yes' id='319f13b8'/>
+      <pointer-type-def type-id='4f4f9f47' size-in-bits='64' id='31a99d1f'/>
+      <class-decl name='snd_hwdep' size-in-bits='10112' is-struct='yes' visibility='default' filepath='include/sound/hwdep.h' line='42' column='1' id='31b13f91'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='card' type-id='52704eb7' visibility='default' filepath='include/sound/hwdep.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/sound/hwdep.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='device' type-id='95e97e5e' visibility='default' filepath='include/sound/hwdep.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='id' type-id='16dc656a' visibility='default' filepath='include/sound/hwdep.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='name' type-id='aa5ff375' visibility='default' filepath='include/sound/hwdep.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='iface' type-id='95e97e5e' visibility='default' filepath='include/sound/hwdep.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='ops' type-id='5cb0616a' visibility='default' filepath='include/sound/hwdep.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='open_wait' type-id='b5ab048f' visibility='default' filepath='include/sound/hwdep.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/hwdep.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='private_free' type-id='1a240138' visibility='default' filepath='include/sound/hwdep.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/sound/hwdep.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9536'>
+          <var-decl name='open_mutex' type-id='925167dc' visibility='default' filepath='include/sound/hwdep.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9920'>
+          <var-decl name='used' type-id='95e97e5e' visibility='default' filepath='include/sound/hwdep.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9952'>
+          <var-decl name='dsp_loaded' type-id='f0981eeb' visibility='default' filepath='include/sound/hwdep.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9984'>
+          <var-decl name='exclusive' type-id='f0981eeb' visibility='default' filepath='include/sound/hwdep.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10048'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/hwdep.h' line='66' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fbcd72c8' size-in-bits='64' id='31b542ce'/>
+      <function-type size-in-bits='64' id='31b74d85'>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='2ce52478'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='31b9d99e'>
+        <parameter type-id='c149fe34'/>
+        <parameter type-id='001b67aa'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <class-decl name='mctrl_gpios' size-in-bits='704' is-struct='yes' visibility='default' filepath='drivers/tty/serial/serial_mctrl_gpio.c' line='19' column='1' id='31bf052e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='port' type-id='af051c69' visibility='default' filepath='drivers/tty/serial/serial_mctrl_gpio.c' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='gpio' type-id='e83fe618' visibility='default' filepath='drivers/tty/serial/serial_mctrl_gpio.c' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='irq' type-id='e41bdf22' visibility='default' filepath='drivers/tty/serial/serial_mctrl_gpio.c' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='mctrl_prev' type-id='f0981eeb' visibility='default' filepath='drivers/tty/serial/serial_mctrl_gpio.c' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='mctrl_on' type-id='b50a4934' visibility='default' filepath='drivers/tty/serial/serial_mctrl_gpio.c' line='24' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e0d0028a' size-in-bits='64' id='31cc9254'/>
+      <pointer-type-def type-id='cadfefb8' size-in-bits='64' id='31d2664e'/>
+      <qualified-type-def type-id='b151a3a8' const='yes' id='31d2e798'/>
+      <pointer-type-def type-id='c69a48a7' size-in-bits='64' id='31e035f7'/>
+      <class-decl name='usb_cdc_mdlm_detail_desc' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='167' column='1' id='31e0f35d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bDescriptorSubType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bGuidDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bDetailData' type-id='167619f6' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='174' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='31e7d828'>
+        <parameter type-id='02f11ed4'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='284cd8d6' size-in-bits='64' id='31eb8cc0'/>
+      <pointer-type-def type-id='0570fd5e' size-in-bits='64' id='31efb644'/>
+      <array-type-def dimensions='1' type-id='ad98c82f' size-in-bits='infinite' id='31f1649b'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='a96e1a44' size-in-bits='64' id='31f59912'/>
+      <function-type size-in-bits='64' id='31fdacad'>
+        <parameter type-id='7efbcaaf'/>
+        <parameter type-id='8bff8096'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='perf_event_state' filepath='include/linux/perf_event.h' line='567' column='1' id='31fdb95a'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PERF_EVENT_STATE_DEAD' value='-4'/>
+        <enumerator name='PERF_EVENT_STATE_EXIT' value='-3'/>
+        <enumerator name='PERF_EVENT_STATE_ERROR' value='-2'/>
+        <enumerator name='PERF_EVENT_STATE_OFF' value='-1'/>
+        <enumerator name='PERF_EVENT_STATE_INACTIVE' value='0'/>
+        <enumerator name='PERF_EVENT_STATE_ACTIVE' value='1'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='32037540'>
+        <parameter type-id='2080bed3'/>
+        <parameter type-id='9f763fd8'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='47a8f7d6' size-in-bits='64' id='320c9cb0'/>
+      <array-type-def dimensions='2' type-id='7359adad' size-in-bits='512' id='32110b77'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <pointer-type-def type-id='55eaf925' size-in-bits='64' id='3213e875'/>
+      <pointer-type-def type-id='d4db3637' size-in-bits='64' id='32162fa7'/>
+      <pointer-type-def type-id='4469e818' size-in-bits='64' id='3217f9ba'/>
+      <pointer-type-def type-id='2eda4fae' size-in-bits='64' id='32271368'/>
+      <pointer-type-def type-id='ec9f8e99' size-in-bits='64' id='322da3c9'/>
+      <function-type size-in-bits='64' id='322dfcc1'>
+        <parameter type-id='8106240b'/>
+        <parameter type-id='d1499e71'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='drm_color_range' filepath='include/drm/drm_color_mgmt.h' line='84' column='1' id='322e1b47'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DRM_COLOR_YCBCR_LIMITED_RANGE' value='0'/>
+        <enumerator name='DRM_COLOR_YCBCR_FULL_RANGE' value='1'/>
+        <enumerator name='DRM_COLOR_RANGE_MAX' value='2'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='322ff019'>
+        <parameter type-id='bff05edb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='btf_func_model' size-in-bits='112' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='629' column='1' id='323174d0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ret_size' type-id='f9b06939' visibility='default' filepath='include/linux/bpf.h' line='630' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='nr_args' type-id='f9b06939' visibility='default' filepath='include/linux/bpf.h' line='631' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='arg_size' type-id='4d79ed19' visibility='default' filepath='include/linux/bpf.h' line='632' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='dst_ops' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/net/dst_ops.h' line='15' column='1' id='32358857'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='family' type-id='8efea9e5' visibility='default' filepath='include/net/dst_ops.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='gc_thresh' type-id='f0981eeb' visibility='default' filepath='include/net/dst_ops.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='gc' type-id='79efa3b3' visibility='default' filepath='include/net/dst_ops.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='check' type-id='d7c38177' visibility='default' filepath='include/net/dst_ops.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='default_advmss' type-id='34c443b7' visibility='default' filepath='include/net/dst_ops.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mtu' type-id='34c443b7' visibility='default' filepath='include/net/dst_ops.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='cow_metrics' type-id='9917918c' visibility='default' filepath='include/net/dst_ops.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='destroy' type-id='d6965222' visibility='default' filepath='include/net/dst_ops.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ifdown' type-id='ce828d9f' visibility='default' filepath='include/net/dst_ops.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='negative_advice' type-id='3ce3447a' visibility='default' filepath='include/net/dst_ops.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='link_failure' type-id='0ef96694' visibility='default' filepath='include/net/dst_ops.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='update_pmtu' type-id='79b8da5c' visibility='default' filepath='include/net/dst_ops.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='redirect' type-id='9f403612' visibility='default' filepath='include/net/dst_ops.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='local_out' type-id='0023218e' visibility='default' filepath='include/net/dst_ops.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='neigh_lookup' type-id='950eceb8' visibility='default' filepath='include/net/dst_ops.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='confirm_neigh' type-id='7e5b15cf' visibility='default' filepath='include/net/dst_ops.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='kmem_cachep' type-id='f3b4aca8' visibility='default' filepath='include/net/dst_ops.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='pcpuc_entries' type-id='b92c8d0d' visibility='default' filepath='include/net/dst_ops.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='928221d2' size-in-bits='64' id='323d93c1'/>
+      <pointer-type-def type-id='089a848d' size-in-bits='64' id='323ed2e5'/>
+      <class-decl name='blk_mq_queue_map' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/blk-mq.h' line='192' column='1' id='32406f0a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mq_map' type-id='807869d3' visibility='default' filepath='include/linux/blk-mq.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nr_queues' type-id='f0981eeb' visibility='default' filepath='include/linux/blk-mq.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='queue_offset' type-id='f0981eeb' visibility='default' filepath='include/linux/blk-mq.h' line='195' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='13edfabd' size-in-bits='64' id='324070f9'/>
+      <function-type size-in-bits='64' id='3243417f'>
+        <parameter type-id='e90f4666'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='23a4b33c' size-in-bits='64' id='3245eba2'/>
+      <class-decl name='assoc_array_ptr' is-struct='yes' visibility='default' is-declaration-only='yes' id='3249e303'/>
+      <qualified-type-def type-id='3bd0350e' const='yes' id='324de79d'/>
+      <class-decl name='dev_pm_qos_request' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/pm_qos.h' line='108' column='1' id='32536656'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='c47ba023' visibility='default' filepath='include/linux/pm_qos.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='ac5ab59c' visibility='default' filepath='include/linux/pm_qos.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/pm_qos.h' line='115' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='52bea74f' size-in-bits='64' id='3257bfe7'/>
+      <pointer-type-def type-id='ee406209' size-in-bits='64' id='325a7d19'/>
+      <class-decl name='iommu_fault_param' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/iommu.h' line='369' column='1' id='325adc8b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='handler' type-id='a84f5b46' visibility='default' filepath='include/linux/iommu.h' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/iommu.h' line='371' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='faults' type-id='72f469ec' visibility='default' filepath='include/linux/iommu.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/linux/iommu.h' line='373' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='24762397' size-in-bits='64' id='325e877b'/>
+      <class-decl name='snd_enc_real' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/sound/compress_params.h' line='290' column='1' id='325f40b8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='quant_bits' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='start_region' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_regions' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='293' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_host_endpoint' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='68' column='1' id='325f6f30'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='desc' type-id='2b1e6e59' visibility='default' filepath='include/linux/usb.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='ss_ep_comp' type-id='1f03d7fe' visibility='default' filepath='include/linux/usb.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='ssp_isoc_ep_comp' type-id='a7a7a133' visibility='default' filepath='include/linux/usb.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='urb_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='hcpriv' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ep_dev' type-id='7b923743' visibility='default' filepath='include/linux/usb.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='extra' type-id='cf536864' visibility='default' filepath='include/linux/usb.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='extralen' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='enabled' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='streams' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='79' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='326108ef'>
+        <parameter type-id='3837ac61'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='ea86de29' size-in-bits='128' id='32625dbc'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='32672900'>
+        <parameter type-id='a47d3467'/>
+        <parameter type-id='298d0a77'/>
+        <return type-id='f4e2facd'/>
+      </function-type>
+      <pointer-type-def type-id='aa766cf0' size-in-bits='64' id='326d5b2e'/>
+      <qualified-type-def type-id='8eb8eec2' const='yes' id='326f37e2'/>
+      <function-type size-in-bits='64' id='3273164b'>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='a7242c81' size-in-bits='64' id='3275e929'/>
+      <array-type-def dimensions='1' type-id='fbc017ef' size-in-bits='512' id='3276578a'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <pointer-type-def type-id='d1d4db8e' size-in-bits='64' id='32774f90'/>
+      <enum-decl name='module_state' filepath='include/linux/module.h' line='313' column='1' id='327e04c6'>
+        <underlying-type type-id='9cac1fee'/>
+        <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='clk_div_table' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/clk-provider.h' line='565' column='1' id='32858f34'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='val' type-id='f0981eeb' visibility='default' filepath='include/linux/clk-provider.h' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='div' type-id='f0981eeb' visibility='default' filepath='include/linux/clk-provider.h' line='567' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='coredump_params' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/binfmts.h' line='81' column='1' id='3288a0f7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='siginfo' type-id='ffa0418a' visibility='default' filepath='include/linux/binfmts.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='regs' type-id='4616a179' visibility='default' filepath='include/linux/binfmts.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='file' type-id='77e79a4b' visibility='default' filepath='include/linux/binfmts.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='limit' type-id='7359adad' visibility='default' filepath='include/linux/binfmts.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mm_flags' type-id='7359adad' visibility='default' filepath='include/linux/binfmts.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='written' type-id='69bf7bee' visibility='default' filepath='include/linux/binfmts.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='pos' type-id='69bf7bee' visibility='default' filepath='include/linux/binfmts.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='to_skip' type-id='69bf7bee' visibility='default' filepath='include/linux/binfmts.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='vma_count' type-id='95e97e5e' visibility='default' filepath='include/linux/binfmts.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='vma_data_size' type-id='b59d7dce' visibility='default' filepath='include/linux/binfmts.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='vma_meta' type-id='d4a8f133' visibility='default' filepath='include/linux/binfmts.h' line='92' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3c3d4c30' size-in-bits='64' id='3288b9a6'/>
+      <function-type size-in-bits='64' id='328910d8'>
+        <parameter type-id='11c98e9a'/>
+        <return type-id='4ea020ae'/>
+      </function-type>
+      <class-decl name='nf_udp_net' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/netns/conntrack.h' line='42' column='1' id='328aff41'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='timeouts' type-id='0d532ec1' visibility='default' filepath='include/net/netns/conntrack.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cb961c68' size-in-bits='64' id='328dda6e'/>
+      <function-type size-in-bits='64' id='328ded65'>
+        <parameter type-id='00ee50b8'/>
+        <parameter type-id='7fe42640'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='BYTE' type-id='b96825af' filepath='lib/zstd/mem.h' line='35' column='1' id='3293d126'/>
+      <pointer-type-def type-id='6386f568' size-in-bits='64' id='32a663ca'/>
+      <function-type size-in-bits='64' id='32aa9d63'>
+        <parameter type-id='67aca04f'/>
+        <parameter type-id='9cc1ac3e'/>
+        <parameter type-id='26a90f95'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='9c20d241' size-in-bits='64' id='32ab3e71'/>
+      <class-decl name='snd_compr_tstamp' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='68' column='1' id='32b4223a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='byte_offset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='copied_total' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pcm_frames' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='pcm_io_frames' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sampling_rate' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='73' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='lru_gen_mm_walk' size-in-bits='1280' is-struct='yes' visibility='default' filepath='include/linux/mmzone.h' line='454' column='1' id='32b4b752'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lruvec' type-id='71480a3e' visibility='default' filepath='include/linux/mmzone.h' line='456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max_seq' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='next_addr' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bitmap' type-id='f066dd3c' visibility='default' filepath='include/linux/mmzone.h' line='462' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='nr_pages' type-id='5b26e3c1' visibility='default' filepath='include/linux/mmzone.h' line='464' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='mm_stats' type-id='e41bdf22' visibility='default' filepath='include/linux/mmzone.h' line='466' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='batched' type-id='95e97e5e' visibility='default' filepath='include/linux/mmzone.h' line='468' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='can_swap' type-id='b50a4934' visibility='default' filepath='include/linux/mmzone.h' line='469' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1256'>
+          <var-decl name='full_scan' type-id='b50a4934' visibility='default' filepath='include/linux/mmzone.h' line='470' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e931abd6' size-in-bits='64' id='32baba38'/>
+      <pointer-type-def type-id='cb08bae1' size-in-bits='64' id='32c73a29'/>
+      <enum-decl name='desc_idn' filepath='drivers/scsi/ufs/ufs.h' line='167' column='1' id='32c9d5cb'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='QUERY_DESC_IDN_DEVICE' value='0'/>
+        <enumerator name='QUERY_DESC_IDN_CONFIGURATION' value='1'/>
+        <enumerator name='QUERY_DESC_IDN_UNIT' value='2'/>
+        <enumerator name='QUERY_DESC_IDN_RFU_0' value='3'/>
+        <enumerator name='QUERY_DESC_IDN_INTERCONNECT' value='4'/>
+        <enumerator name='QUERY_DESC_IDN_STRING' value='5'/>
+        <enumerator name='QUERY_DESC_IDN_RFU_1' value='6'/>
+        <enumerator name='QUERY_DESC_IDN_GEOMETRY' value='7'/>
+        <enumerator name='QUERY_DESC_IDN_POWER' value='8'/>
+        <enumerator name='QUERY_DESC_IDN_HEALTH' value='9'/>
+        <enumerator name='QUERY_DESC_IDN_MAX' value='10'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='32ca6abb'>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='b1e3bc3e' size-in-bits='64' id='32ca7384'/>
+      <pointer-type-def type-id='317e3dc9' size-in-bits='64' id='32cc1711'/>
+      <function-type size-in-bits='64' id='32d07fab'>
+        <parameter type-id='4db02c58'/>
+        <parameter type-id='e3dd029e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='gov_attr_set' size-in-bits='1344' is-struct='yes' visibility='default' filepath='include/linux/cpufreq.h' line='636' column='1' id='32d20c8c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='include/linux/cpufreq.h' line='637' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='policy_list' type-id='72f469ec' visibility='default' filepath='include/linux/cpufreq.h' line='638' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='update_lock' type-id='925167dc' visibility='default' filepath='include/linux/cpufreq.h' line='639' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='usage_count' type-id='95e97e5e' visibility='default' filepath='include/linux/cpufreq.h' line='640' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='32d6e955'>
+        <parameter type-id='f41a0030'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='5f2e9b8f' size-in-bits='64' id='32db1b87'/>
+      <pointer-type-def type-id='6a4d9641' size-in-bits='64' id='32e774d9'/>
+      <function-type size-in-bits='64' id='32ea5aae'>
+        <parameter type-id='9f763fd8'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d822825d' size-in-bits='64' id='32ea7cc1'/>
+      <class-decl name='media_graph' size-in-bits='2240' is-struct='yes' visibility='default' filepath='include/media/media-entity.h' line='88' column='1' id='32ec86e0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='stack' type-id='4cb10997' visibility='default' filepath='include/media/media-entity.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='ent_enum' type-id='4cd55af5' visibility='default' filepath='include/media/media-entity.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='top' type-id='95e97e5e' visibility='default' filepath='include/media/media-entity.h' line='95' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pci_host_bridge' size-in-bits='8704' is-struct='yes' visibility='default' filepath='include/linux/pci.h' line='550' column='1' id='32ed9316'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/pci.h' line='551' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='bus' type-id='d1feb554' visibility='default' filepath='include/linux/pci.h' line='552' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='ops' type-id='2058826a' visibility='default' filepath='include/linux/pci.h' line='553' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='child_ops' type-id='2058826a' visibility='default' filepath='include/linux/pci.h' line='554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='sysdata' type-id='eaa32e2f' visibility='default' filepath='include/linux/pci.h' line='555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='busnr' type-id='95e97e5e' visibility='default' filepath='include/linux/pci.h' line='556' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7584'>
+          <var-decl name='domain_nr' type-id='95e97e5e' visibility='default' filepath='include/linux/pci.h' line='557' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='windows' type-id='72f469ec' visibility='default' filepath='include/linux/pci.h' line='558' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='dma_ranges' type-id='72f469ec' visibility='default' filepath='include/linux/pci.h' line='559' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='swizzle_irq' type-id='af56cb43' visibility='default' filepath='include/linux/pci.h' line='560' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='map_irq' type-id='fa35bf16' visibility='default' filepath='include/linux/pci.h' line='561' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='release_fn' type-id='53955211' visibility='default' filepath='include/linux/pci.h' line='562' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='release_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/pci.h' line='563' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='ignore_reset_delay' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='564' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8129'>
+          <var-decl name='no_ext_tags' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8130'>
+          <var-decl name='native_aer' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8131'>
+          <var-decl name='native_pcie_hotplug' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8132'>
+          <var-decl name='native_shpc_hotplug' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8133'>
+          <var-decl name='native_pme' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8134'>
+          <var-decl name='native_ltr' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='570' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8135'>
+          <var-decl name='native_dpc' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='571' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8136'>
+          <var-decl name='preserve_config' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='572' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8137'>
+          <var-decl name='size_windows' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='573' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8138'>
+          <var-decl name='msi_domain' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='574' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='align_resource' type-id='482ccc39' visibility='default' filepath='include/linux/pci.h' line='577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/pci.h' line='583' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/pci.h' line='584' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='private' type-id='c99b5ecd' visibility='default' filepath='include/linux/pci.h' line='586' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='32ee1dcb'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='regmap_format' size-in-bits='576' is-struct='yes' visibility='default' filepath='drivers/base/regmap/internal.h' line='30' column='1' id='32ee7e31'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='buf_size' type-id='b59d7dce' visibility='default' filepath='drivers/base/regmap/internal.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reg_bytes' type-id='b59d7dce' visibility='default' filepath='drivers/base/regmap/internal.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pad_bytes' type-id='b59d7dce' visibility='default' filepath='drivers/base/regmap/internal.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='val_bytes' type-id='b59d7dce' visibility='default' filepath='drivers/base/regmap/internal.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='format_write' type-id='d1abd66c' visibility='default' filepath='drivers/base/regmap/internal.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='format_reg' type-id='8052541e' visibility='default' filepath='drivers/base/regmap/internal.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='format_val' type-id='8052541e' visibility='default' filepath='drivers/base/regmap/internal.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='parse_val' type-id='caa804f2' visibility='default' filepath='drivers/base/regmap/internal.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='parse_inplace' type-id='b7f9d8e6' visibility='default' filepath='drivers/base/regmap/internal.h' line='40' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='55bdfa3e' size-in-bits='64' id='32efad44'/>
+      <function-type size-in-bits='64' id='32efe300'>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <class-decl name='v4l2_vp8_quantization' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1746' column='1' id='32f31fe8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='y_ac_qi' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1747' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='y_dc_delta' type-id='8af57d41' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1748' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='y2_dc_delta' type-id='8af57d41' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1749' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='y2_ac_delta' type-id='8af57d41' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1750' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='uv_dc_delta' type-id='8af57d41' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1751' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='uv_ac_delta' type-id='8af57d41' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1752' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='padding' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1753' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='32f8fd62'>
+        <parameter type-id='f23e2572'/>
+        <return type-id='37a6b980'/>
+      </function-type>
+      <pointer-type-def type-id='b9a01bd6' size-in-bits='64' id='330c0db4'/>
+      <pointer-type-def type-id='b6a3f4d3' size-in-bits='64' id='33146de3'/>
+      <typedef-decl name='snd_pcm_state_t' type-id='95e97e5e' filepath='include/uapi/sound/asound.h' line='313' column='1' id='33158de9'/>
+      <pointer-type-def type-id='0a7e93ab' size-in-bits='64' id='331e3ac7'/>
+      <function-type size-in-bits='64' id='332a260c'>
+        <parameter type-id='a6711537'/>
+        <parameter type-id='ed31fbf8'/>
+        <parameter type-id='26ea5d4c'/>
+        <parameter type-id='5d6479ae'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='468f0837' size-in-bits='64' id='3331b9af'/>
+      <typedef-decl name='qsize_t' type-id='1eb56b1e' filepath='include/linux/quota.h' line='66' column='1' id='33341965'/>
+      <pointer-type-def type-id='648adb0a' size-in-bits='64' id='33356d2c'/>
+      <pointer-type-def type-id='9c7c185a' size-in-bits='64' id='3339fe1c'/>
+      <typedef-decl name='usb_role_switch_get_t' type-id='3e950302' filepath='include/linux/usb/role.h' line='18' column='1' id='3341a400'/>
+      <class-decl name='fb_copyarea' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/fb.h' line='342' column='1' id='3345b082'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dx' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='dy' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sx' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='sy' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='348' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fb55efa1' size-in-bits='64' id='334817d1'/>
+      <function-type size-in-bits='64' id='334e564a'>
+        <parameter type-id='19e05b5f'/>
+        <parameter type-id='41b1c13c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='334ebff6'>
+        <parameter type-id='2cb4dc09'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='91ce1af9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='mod_tree_node' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/module.h' line='320' column='1' id='3351dce1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mod' type-id='2730d015' visibility='default' filepath='include/linux/module.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='node' type-id='dc9cc7c7' visibility='default' filepath='include/linux/module.h' line='322' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2e17690b' size-in-bits='64' id='3362870f'/>
+      <pointer-type-def type-id='1d34d2c7' size-in-bits='64' id='336c2e63'/>
+      <function-type size-in-bits='64' id='336dbe3c'>
+        <parameter type-id='68a2d05b'/>
+        <return type-id='68a2d05b'/>
+      </function-type>
+      <class-decl name='usbdrv_wrap' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1146' column='1' id='33780378'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/usb.h' line='1147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='for_devices' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1148' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='337862e8'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='affe0fe2'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a212a715' size-in-bits='64' id='338303f5'/>
+      <pointer-type-def type-id='2f3d1886' size-in-bits='64' id='33855068'/>
+      <pointer-type-def type-id='08bd3e89' size-in-bits='64' id='3385b72d'/>
+      <pointer-type-def type-id='710f82fd' size-in-bits='64' id='338d484d'/>
+      <pointer-type-def type-id='c28e85b0' size-in-bits='64' id='338f9102'/>
+      <qualified-type-def type-id='fdaf7365' const='yes' id='3390cea8'/>
+      <function-type size-in-bits='64' id='339a9d49'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='cbc88d4a' size-in-bits='64' id='339c87e8'/>
+      <function-type size-in-bits='64' id='339cba5e'>
+        <parameter type-id='0c2c419d'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='91015ee2' size-in-bits='64' id='33c348f4'/>
+      <function-type size-in-bits='64' id='33c534fd'>
+        <parameter type-id='e324928d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4f60ffbc' size-in-bits='64' id='33c599da'/>
+      <pointer-type-def type-id='063d849f' size-in-bits='64' id='33c6d87b'/>
+      <function-type size-in-bits='64' id='33c9e15b'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='a00a45e8'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='7940281b' size-in-bits='64' id='33ca4bbb'/>
+      <function-type size-in-bits='64' id='33ca674b'>
+        <parameter type-id='78e7cf52'/>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='ac0bc8bd' size-in-bits='64' id='33ceb73d'/>
+      <array-type-def dimensions='1' type-id='90177497' size-in-bits='4480' id='33d537d2'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <pointer-type-def type-id='cb5a1a3f' size-in-bits='64' id='33d70f0f'/>
+      <class-decl name='ethtool_fec_stat' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/ethtool.h' line='350' column='1' id='33d7279a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='total' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='lanes' type-id='6094c99c' visibility='default' filepath='include/linux/ethtool.h' line='352' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_compr_ops' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/sound/compress_driver.h' line='117' column='1' id='33d73f3b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='open' type-id='be315f37' visibility='default' filepath='include/sound/compress_driver.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='free' type-id='be315f37' visibility='default' filepath='include/sound/compress_driver.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='set_params' type-id='f259b60b' visibility='default' filepath='include/sound/compress_driver.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get_params' type-id='85e4ab0f' visibility='default' filepath='include/sound/compress_driver.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='set_metadata' type-id='a50a69f6' visibility='default' filepath='include/sound/compress_driver.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='get_metadata' type-id='a50a69f6' visibility='default' filepath='include/sound/compress_driver.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='trigger' type-id='59f5b0ce' visibility='default' filepath='include/sound/compress_driver.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pointer' type-id='81b5cbc0' visibility='default' filepath='include/sound/compress_driver.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='copy' type-id='97cb4c9a' visibility='default' filepath='include/sound/compress_driver.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='mmap' type-id='7970d34a' visibility='default' filepath='include/sound/compress_driver.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='ack' type-id='956abcd0' visibility='default' filepath='include/sound/compress_driver.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='get_caps' type-id='67659502' visibility='default' filepath='include/sound/compress_driver.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='get_codec_caps' type-id='cd058347' visibility='default' filepath='include/sound/compress_driver.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/compress_driver.h' line='141' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bbf47576' size-in-bits='64' id='33d93b18'/>
+      <function-type size-in-bits='64' id='33d9b285'>
+        <parameter type-id='74b427eb'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='98b22793'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f8eaf96b' size-in-bits='64' id='33dc3b1b'/>
+      <qualified-type-def type-id='3093472a' const='yes' id='33dff9d3'/>
+      <pointer-type-def type-id='c8d63c6e' size-in-bits='64' id='33e1dfe4'/>
+      <pointer-type-def type-id='656561a5' size-in-bits='64' id='33e2a135'/>
+      <class-decl name='l2tp_stats' size-in-bits='640' is-struct='yes' visibility='default' filepath='net/l2tp/l2tp_core.h' line='32' column='1' id='33e678c3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tx_packets' type-id='f22a8abb' visibility='default' filepath='net/l2tp/l2tp_core.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tx_bytes' type-id='f22a8abb' visibility='default' filepath='net/l2tp/l2tp_core.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tx_errors' type-id='f22a8abb' visibility='default' filepath='net/l2tp/l2tp_core.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rx_packets' type-id='f22a8abb' visibility='default' filepath='net/l2tp/l2tp_core.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rx_bytes' type-id='f22a8abb' visibility='default' filepath='net/l2tp/l2tp_core.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='rx_seq_discards' type-id='f22a8abb' visibility='default' filepath='net/l2tp/l2tp_core.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='rx_oos_packets' type-id='f22a8abb' visibility='default' filepath='net/l2tp/l2tp_core.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='rx_errors' type-id='f22a8abb' visibility='default' filepath='net/l2tp/l2tp_core.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='rx_cookie_discards' type-id='f22a8abb' visibility='default' filepath='net/l2tp/l2tp_core.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='rx_invalid' type-id='f22a8abb' visibility='default' filepath='net/l2tp/l2tp_core.h' line='42' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='fsg_buffer_state' filepath='drivers/usb/gadget/function/storage_common.h' line='136' column='1' id='33e6bdc5'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='BUF_STATE_SENDING' value='-2'/>
+        <enumerator name='BUF_STATE_RECEIVING' value='-1'/>
+        <enumerator name='BUF_STATE_EMPTY' value='0'/>
+        <enumerator name='BUF_STATE_FULL' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='58d69ec2' size-in-bits='64' id='33e7622c'/>
+      <array-type-def dimensions='1' type-id='3158a266' size-in-bits='480' id='33e9f3ff'>
+        <subrange length='15' type-id='7ff19f0f' id='8484ba73'/>
+      </array-type-def>
+      <pointer-type-def type-id='abf99950' size-in-bits='64' id='33ec9b0e'/>
+      <enum-decl name='media_entity_type' filepath='include/media/media-entity.h' line='244' column='1' id='33f4e443'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='MEDIA_ENTITY_TYPE_BASE' value='0'/>
+        <enumerator name='MEDIA_ENTITY_TYPE_VIDEO_DEVICE' value='1'/>
+        <enumerator name='MEDIA_ENTITY_TYPE_V4L2_SUBDEV' value='2'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='33f6a667'>
+        <parameter type-id='1c936db9'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='0f8b1896' size-in-bits='64' id='33f7eff4'/>
+      <pointer-type-def type-id='8504f260' size-in-bits='64' id='33f86a47'/>
+      <pointer-type-def type-id='69df97a3' size-in-bits='64' id='33fb8cab'/>
+      <enum-decl name='audit_state' filepath='include/../kernel/audit.h' line='26' column='1' id='33fc9455'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='AUDIT_STATE_DISABLED' value='0'/>
+        <enumerator name='AUDIT_STATE_BUILD' value='1'/>
+        <enumerator name='AUDIT_STATE_RECORD' value='2'/>
+      </enum-decl>
+      <enum-decl name='devlink_port_flavour' filepath='include/uapi/linux/devlink.h' line='188' column='1' id='33ffd241'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEVLINK_PORT_FLAVOUR_PHYSICAL' value='0'/>
+        <enumerator name='DEVLINK_PORT_FLAVOUR_CPU' value='1'/>
+        <enumerator name='DEVLINK_PORT_FLAVOUR_DSA' value='2'/>
+        <enumerator name='DEVLINK_PORT_FLAVOUR_PCI_PF' value='3'/>
+        <enumerator name='DEVLINK_PORT_FLAVOUR_PCI_VF' value='4'/>
+        <enumerator name='DEVLINK_PORT_FLAVOUR_VIRTUAL' value='5'/>
+        <enumerator name='DEVLINK_PORT_FLAVOUR_UNUSED' value='6'/>
+        <enumerator name='DEVLINK_PORT_FLAVOUR_PCI_SF' value='7'/>
+      </enum-decl>
+      <pointer-type-def type-id='94c01877' size-in-bits='64' id='34066f8f'/>
+      <function-type size-in-bits='64' id='34072a4b'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7f416417' size-in-bits='64' id='34083223'/>
+      <pointer-type-def type-id='d06fbf66' size-in-bits='64' id='340cea9c'/>
+      <pointer-type-def type-id='1120d7bb' size-in-bits='64' id='341171ef'/>
+      <pointer-type-def type-id='8d83bfc9' size-in-bits='64' id='34135071'/>
+      <function-type size-in-bits='64' id='34135eb2'>
+        <parameter type-id='69c138b1'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='qcom_smem_state_ops' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/soc/qcom/smem_state.h' line='10' column='1' id='3419b67d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='update_bits' type-id='2e5880fb' visibility='default' filepath='include/linux/soc/qcom/smem_state.h' line='11' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3419e4c5'>
+        <parameter type-id='0e23c133'/>
+        <parameter type-id='67d012a2'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7292109c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='ead01d34' size-in-bits='64' id='342e75b6'/>
+      <pointer-type-def type-id='2c3bbc0e' size-in-bits='64' id='342f43d1'/>
+      <pointer-type-def type-id='014fe25e' size-in-bits='64' id='3434e051'/>
+      <function-type size-in-bits='64' id='3434ed92'>
+        <parameter type-id='8bf48c31'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='07b58648' size-in-bits='64' id='343c05fa'/>
+      <pointer-type-def type-id='dbcf5bbe' size-in-bits='64' id='343c3ae4'/>
+      <qualified-type-def type-id='9840934c' const='yes' id='34401d0d'/>
+      <array-type-def dimensions='1' type-id='b94e5398' size-in-bits='256' id='3449295e'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <pointer-type-def type-id='3fe3822d' size-in-bits='64' id='345f0501'/>
+      <function-type size-in-bits='64' id='345f1a5f'>
+        <parameter type-id='02913b69'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='192' id='3461381a'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='34670896'>
+        <parameter type-id='13103032'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='298d29fd'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='34684d4f'>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='15dfbd93'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3f1e8582' size-in-bits='64' id='346a127c'/>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='448' id='346bc576'>
+        <subrange length='7' type-id='7ff19f0f' id='16fc326e'/>
+      </array-type-def>
+      <typedef-decl name='blk_mq_req_flags_t' type-id='3f1a6b60' filepath='include/linux/blk_types.h' line='318' column='1' id='346d62be'/>
+      <function-type size-in-bits='64' id='347c1853'>
+        <parameter type-id='d4e0eca9'/>
+        <parameter type-id='2d44fb50'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a5b7e4fd' size-in-bits='64' id='347d8ccd'/>
+      <class-decl name='inet_hashinfo' size-in-bits='4608' is-struct='yes' visibility='default' filepath='include/net/inet_hashtables.h' line='124' column='1' id='3482ac54'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ehash' type-id='77011cbc' visibility='default' filepath='include/net/inet_hashtables.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ehash_locks' type-id='cff2d845' visibility='default' filepath='include/net/inet_hashtables.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ehash_mask' type-id='f0981eeb' visibility='default' filepath='include/net/inet_hashtables.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='ehash_locks_mask' type-id='f0981eeb' visibility='default' filepath='include/net/inet_hashtables.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bind_bucket_cachep' type-id='f3b4aca8' visibility='default' filepath='include/net/inet_hashtables.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='bhash' type-id='fd53db64' visibility='default' filepath='include/net/inet_hashtables.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='bhash_size' type-id='f0981eeb' visibility='default' filepath='include/net/inet_hashtables.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='lhash2_mask' type-id='f0981eeb' visibility='default' filepath='include/net/inet_hashtables.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='lhash2' type-id='e0087b68' visibility='default' filepath='include/net/inet_hashtables.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='listening_hash' type-id='e3638da9' visibility='default' filepath='include/net/inet_hashtables.h' line='159' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fscrypt_key_specifier' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='103' column='1' id='3486f5e5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='__reserved' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='u' type-id='ac5ab627' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='110' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='334ebff6' size-in-bits='64' id='348bf440'/>
+      <class-decl name='perf_addr_filter_range' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='559' column='1' id='3490ee41'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='560' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='561' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ebaa0f87' size-in-bits='64' id='3494e4bb'/>
+      <pointer-type-def type-id='9b5fa592' size-in-bits='64' id='34996a40'/>
+      <class-decl name='regmap_irq_chip' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/linux/regmap.h' line='1494' column='1' id='349c0cdf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/regmap.h' line='1495' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='main_status' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1497' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='num_main_status_bits' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1498' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sub_reg_offsets' type-id='521ebb15' visibility='default' filepath='include/linux/regmap.h' line='1499' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='num_main_regs' type-id='95e97e5e' visibility='default' filepath='include/linux/regmap.h' line='1500' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='status_base' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1502' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mask_base' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1503' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='unmask_base' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1504' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ack_base' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1505' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='wake_base' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='type_base' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1507' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='virt_reg_base' type-id='807869d3' visibility='default' filepath='include/linux/regmap.h' line='1508' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='irq_reg_stride' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1509' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='mask_writeonly' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='1510' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='545'>
+          <var-decl name='init_ack_masked' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='1511' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='546'>
+          <var-decl name='mask_invert' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='1512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='547'>
+          <var-decl name='use_ack' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='1513' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='548'>
+          <var-decl name='ack_invert' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='1514' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='549'>
+          <var-decl name='clear_ack' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='1515' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='550'>
+          <var-decl name='wake_invert' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='1516' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='551'>
+          <var-decl name='runtime_pm' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='1517' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='552'>
+          <var-decl name='type_invert' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='1518' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='553'>
+          <var-decl name='type_in_mask' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='1519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='554'>
+          <var-decl name='clear_on_unmask' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='1520' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='555'>
+          <var-decl name='not_fixed_stride' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='1521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='556'>
+          <var-decl name='status_invert' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='1522' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='num_regs' type-id='95e97e5e' visibility='default' filepath='include/linux/regmap.h' line='1524' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='irqs' type-id='f630e149' visibility='default' filepath='include/linux/regmap.h' line='1526' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='num_irqs' type-id='95e97e5e' visibility='default' filepath='include/linux/regmap.h' line='1527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='num_type_reg' type-id='95e97e5e' visibility='default' filepath='include/linux/regmap.h' line='1529' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='num_virt_regs' type-id='95e97e5e' visibility='default' filepath='include/linux/regmap.h' line='1530' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='type_reg_stride' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1531' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='handle_pre_irq' type-id='b9b212f5' visibility='default' filepath='include/linux/regmap.h' line='1533' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='handle_post_irq' type-id='b9b212f5' visibility='default' filepath='include/linux/regmap.h' line='1534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='set_type_virt' type-id='58b7113a' visibility='default' filepath='include/linux/regmap.h' line='1535' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='irq_drv_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/regmap.h' line='1537' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='34a21b12'>
+        <parameter type-id='3eb7c31c'/>
+        <return type-id='0f8f80b0'/>
+      </function-type>
+      <typedef-decl name='probes_handler_t' type-id='ae26a81a' filepath='arch/arm64/include/asm/probes.h' line='13' column='1' id='34a2420f'/>
+      <qualified-type-def type-id='d6e8a7b8' const='yes' id='34a246ab'/>
+      <pointer-type-def type-id='ee6561a9' size-in-bits='64' id='34aa5735'/>
+      <class-decl name='usb3_lpm_parameters' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='535' column='1' id='34bd0a0b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mel' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='542' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pel' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='548' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sel' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='558' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='timeout' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='564' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6d22a61b' size-in-bits='64' id='34c443b7'/>
+      <function-type size-in-bits='64' id='34c6e216'>
+        <parameter type-id='6ee1a870'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='34c8e7e1'>
+        <parameter type-id='810606ec'/>
+        <parameter type-id='7a5054b7'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='34dda955'>
+        <parameter type-id='78e7cf52'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='94c948ef'/>
+        <parameter type-id='141b6427'/>
+        <parameter type-id='94c948ef'/>
+        <parameter type-id='d8e6b335'/>
+        <return type-id='f772df6d'/>
+      </function-type>
+      <function-type size-in-bits='64' id='34e265cf'>
+        <parameter type-id='7837cd88'/>
+        <parameter type-id='4a935625'/>
+        <return type-id='4a935625'/>
+      </function-type>
+      <pointer-type-def type-id='d9cdd06a' size-in-bits='64' id='34e4f518'/>
+      <class-decl name='in_addr' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/in.h' line='89' column='1' id='34f03654'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='s_addr' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/in.h' line='90' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='34f1eb39'>
+        <parameter type-id='97aff453'/>
+        <parameter type-id='80f4b756'/>
+        <return type-id='7a29ff27'/>
+      </function-type>
+      <function-type size-in-bits='64' id='34f65a0c'>
+        <parameter type-id='54e54fbb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='34f7ad3d'>
+        <parameter type-id='1c936db9'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='807869d3'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='iommu_iotlb_gather' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/iommu.h' line='197' column='1' id='34fc4897'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='7359adad' visibility='default' filepath='include/linux/iommu.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='end' type-id='7359adad' visibility='default' filepath='include/linux/iommu.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pgsize' type-id='b59d7dce' visibility='default' filepath='include/linux/iommu.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='freelist' type-id='02f11ed4' visibility='default' filepath='include/linux/iommu.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='queued' type-id='b50a4934' visibility='default' filepath='include/linux/iommu.h' line='202' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4993d1b5' size-in-bits='64' id='34fd0229'/>
+      <pointer-type-def type-id='eac2b7d9' size-in-bits='64' id='34fdc91d'/>
+      <pointer-type-def type-id='ea65fb21' size-in-bits='64' id='35078cb9'/>
+      <class-decl name='drm_mode_object' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/drm/drm_mode_object.h' line='55' column='1' id='350f4182'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='8f92235e' visibility='default' filepath='include/drm/drm_mode_object.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='8f92235e' visibility='default' filepath='include/drm/drm_mode_object.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='properties' type-id='c353cb3e' visibility='default' filepath='include/drm/drm_mode_object.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='refcount' type-id='400fb07b' visibility='default' filepath='include/drm/drm_mode_object.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='free_cb' type-id='16575f26' visibility='default' filepath='include/drm/drm_mode_object.h' line='60' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='39d99179' size-in-bits='64' id='3511de75'/>
+      <function-type size-in-bits='64' id='3512001c'>
+        <parameter type-id='944c4ff9'/>
+        <parameter type-id='6fd5b1ab'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='seqcount_raw_spinlock' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/seqlock.h' line='276' column='1' id='35126ca4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='seqcount' type-id='e14c3b11' visibility='default' filepath='include/linux/seqlock.h' line='276' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3516ab98'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='35c1cbe3' size-in-bits='64' id='351add77'/>
+      <pointer-type-def type-id='5bee967d' size-in-bits='64' id='352086a1'/>
+      <function-type size-in-bits='64' id='35210e5c'>
+        <parameter type-id='855e3679'/>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='79ba66e0' size-in-bits='64' id='352b95f6'/>
+      <qualified-type-def type-id='ef6b4e3a' const='yes' id='35306a57'/>
+      <pointer-type-def type-id='dc8bbdd5' size-in-bits='64' id='353a4421'/>
+      <pointer-type-def type-id='3f7e2e74' size-in-bits='64' id='35411736'/>
+      <typedef-decl name='uid_t' type-id='70734f24' filepath='include/linux/types.h' line='32' column='1' id='354978ed'/>
+      <function-type size-in-bits='64' id='354af324'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='7bc9606a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='28d1931f' size-in-bits='64' id='354bcec3'/>
+      <pointer-type-def type-id='ea86de29' size-in-bits='64' id='354f7eb9'/>
+      <pointer-type-def type-id='25048781' size-in-bits='64' id='35513fbd'/>
+      <pointer-type-def type-id='e61ec55f' size-in-bits='64' id='355404d0'/>
+      <function-type size-in-bits='64' id='3554a6c7'>
+        <parameter type-id='ac2666b2'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7dc28811' size-in-bits='64' id='355a3725'/>
+      <function-type size-in-bits='64' id='355fab89'>
+        <parameter type-id='dd575c43'/>
+        <parameter type-id='13d38dcb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='ea863425' size-in-bits='64' id='35646c79'/>
+      <pointer-type-def type-id='a79398e0' size-in-bits='64' id='356fd446'/>
+      <pointer-type-def type-id='a2689372' size-in-bits='64' id='3570c570'/>
+      <class-decl name='per_cpu_pages' size-in-bits='2688' is-struct='yes' visibility='default' filepath='include/linux/mmzone.h' line='573' column='1' id='3572f41a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='95e97e5e' visibility='default' filepath='include/linux/mmzone.h' line='574' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='high' type-id='95e97e5e' visibility='default' filepath='include/linux/mmzone.h' line='575' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='batch' type-id='95e97e5e' visibility='default' filepath='include/linux/mmzone.h' line='576' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='free_factor' type-id='a2185560' visibility='default' filepath='include/linux/mmzone.h' line='577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lists' type-id='e832751e' visibility='default' filepath='include/linux/mmzone.h' line='583' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='typec_accessory' filepath='include/linux/usb/typec.h' line='63' column='1' id='357a6a78'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='TYPEC_ACCESSORY_NONE' value='0'/>
+        <enumerator name='TYPEC_ACCESSORY_AUDIO' value='1'/>
+        <enumerator name='TYPEC_ACCESSORY_DEBUG' value='2'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='357e5279'>
+        <parameter type-id='80f25feb'/>
+        <parameter type-id='4fa10f9e'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='2567e379' size-in-bits='64' id='358adba9'/>
+      <pointer-type-def type-id='835b9b57' size-in-bits='64' id='3591079f'/>
+      <qualified-type-def type-id='b07b6d69' const='yes' id='359a7eea'/>
+      <pointer-type-def type-id='64615833' size-in-bits='64' id='35a0b4f8'/>
+      <pointer-type-def type-id='cf9a081c' size-in-bits='64' id='35aeb76e'/>
+      <pointer-type-def type-id='49a7c5a7' size-in-bits='64' id='35b28c4f'/>
+      <function-type size-in-bits='64' id='35b31004'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='b3e12f1c'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='b29581c5' size-in-bits='64' id='35b37061'/>
+      <pointer-type-def type-id='2d5955d9' size-in-bits='64' id='35b814e1'/>
+      <pointer-type-def type-id='c49062e0' size-in-bits='64' id='35b8846a'/>
+      <class-decl name='xhci_interval_bw' size-in-bits='320' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='987' column='1' id='35bbecb3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='num_packets' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='988' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='endpoints' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/xhci.h' line='992' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='overhead' type-id='0955670c' visibility='default' filepath='drivers/usb/host/xhci.h' line='994' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='35c1cbe3'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='6e313ad5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='26760480' size-in-bits='64' id='35c9579e'/>
+      <pointer-type-def type-id='4aa69d9c' size-in-bits='64' id='35cdc1ce'/>
+      <pointer-type-def type-id='7ec379e7' size-in-bits='64' id='35cea26b'/>
+      <pointer-type-def type-id='a48b0884' size-in-bits='64' id='35d085ce'/>
+      <pointer-type-def type-id='81e2e960' size-in-bits='64' id='35da6582'/>
+      <array-type-def dimensions='1' type-id='80f4b756' size-in-bits='128' id='35e20666'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='984972f4' size-in-bits='64' id='35e7a722'/>
+      <pointer-type-def type-id='647d371e' size-in-bits='64' id='35e8c658'/>
+      <class-decl name='tipc_discoverer' is-struct='yes' visibility='default' is-declaration-only='yes' id='35ec5fa0'/>
+      <pointer-type-def type-id='96d7efea' size-in-bits='64' id='35ee6b40'/>
+      <pointer-type-def type-id='2914f7c3' size-in-bits='64' id='35f07b8f'/>
+      <pointer-type-def type-id='4020579d' size-in-bits='64' id='35f4156d'/>
+      <class-decl name='kprobe' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/kprobes.h' line='60' column='1' id='35f522bc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hlist' type-id='03a4a074' visibility='default' filepath='include/linux/kprobes.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/kprobes.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='nmissed' type-id='7359adad' visibility='default' filepath='include/linux/kprobes.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='addr' type-id='66a37d1e' visibility='default' filepath='include/linux/kprobes.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='symbol_name' type-id='80f4b756' visibility='default' filepath='include/linux/kprobes.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='offset' type-id='f0981eeb' visibility='default' filepath='include/linux/kprobes.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='pre_handler' type-id='05a47603' visibility='default' filepath='include/linux/kprobes.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='post_handler' type-id='0614091c' visibility='default' filepath='include/linux/kprobes.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='opcode' type-id='ecf788b7' visibility='default' filepath='include/linux/kprobes.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='ainsn' type-id='a2a4e4a9' visibility='default' filepath='include/linux/kprobes.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/linux/kprobes.h' line='94' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='80f4b756' size-in-bits='576' id='35f7ccb5'>
+        <subrange length='9' type-id='7ff19f0f' id='12e4273c'/>
+      </array-type-def>
+      <class-decl name='scmi_driver' size-in-bits='1664' is-struct='yes' visibility='default' filepath='include/linux/scmi_protocol.h' line='686' column='1' id='35ff1d34'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/scmi_protocol.h' line='687' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='probe' type-id='fa2519a6' visibility='default' filepath='include/linux/scmi_protocol.h' line='688' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='remove' type-id='6219347f' visibility='default' filepath='include/linux/scmi_protocol.h' line='689' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='id_table' type-id='2d81b115' visibility='default' filepath='include/linux/scmi_protocol.h' line='690' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/scmi_protocol.h' line='692' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='48' is-struct='yes' visibility='default' filepath='include/net/bluetooth/bluetooth.h' line='240' column='1' id='35ffa81f' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='b' type-id='c60dc9f2' visibility='default' filepath='include/net/bluetooth/bluetooth.h' line='241' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='cisco_proto' type-id='6f5c1fb1' filepath='include/uapi/linux/hdlc/ioctl.h' line='80' column='1' id='36051b76'/>
+      <pointer-type-def type-id='e3536b30' size-in-bits='64' id='3608d096'/>
+      <pointer-type-def type-id='afd9eb4a' size-in-bits='64' id='3620a178'/>
+      <pointer-type-def type-id='1a0d5389' size-in-bits='64' id='36265581'/>
+      <class-decl name='io_tlb_slot' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/swiotlb.h' line='103' column='1' id='362b94c1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='orig_addr' type-id='2522883d' visibility='default' filepath='include/linux/swiotlb.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='alloc_size' type-id='b59d7dce' visibility='default' filepath='include/linux/swiotlb.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='f0981eeb' visibility='default' filepath='include/linux/swiotlb.h' line='106' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_pcm_substream' size-in-bits='3072' is-struct='yes' visibility='default' filepath='include/sound/pcm.h' line='448' column='1' id='362eec9e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pcm' type-id='4c9f335b' visibility='default' filepath='include/sound/pcm.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pstr' type-id='e5ffb4bb' visibility='default' filepath='include/sound/pcm.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/pcm.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='number' type-id='95e97e5e' visibility='default' filepath='include/sound/pcm.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/sound/pcm.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='stream' type-id='95e97e5e' visibility='default' filepath='include/sound/pcm.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='latency_pm_qos_req' type-id='cd6fc142' visibility='default' filepath='include/sound/pcm.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='buffer_bytes_max' type-id='b59d7dce' visibility='default' filepath='include/sound/pcm.h' line='456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='dma_buffer' type-id='c5addfb4' visibility='default' filepath='include/sound/pcm.h' line='457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='dma_max' type-id='b59d7dce' visibility='default' filepath='include/sound/pcm.h' line='458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='ops' type-id='f63b1a17' visibility='default' filepath='include/sound/pcm.h' line='460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='runtime' type-id='17a05af6' visibility='default' filepath='include/sound/pcm.h' line='462' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='timer' type-id='6ee1a870' visibility='default' filepath='include/sound/pcm.h' line='464' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='timer_running' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='465' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='wait_time' type-id='bd54fe1a' visibility='default' filepath='include/sound/pcm.h' line='466' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='next' type-id='06b2cd14' visibility='default' filepath='include/sound/pcm.h' line='468' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='link_list' type-id='72f469ec' visibility='default' filepath='include/sound/pcm.h' line='470' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='self_group' type-id='5e60e97f' visibility='default' filepath='include/sound/pcm.h' line='471' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='group' type-id='8042a887' visibility='default' filepath='include/sound/pcm.h' line='472' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='ref_count' type-id='95e97e5e' visibility='default' filepath='include/sound/pcm.h' line='474' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2656'>
+          <var-decl name='mmap_count' type-id='49178f86' visibility='default' filepath='include/sound/pcm.h' line='475' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='f_flags' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='476' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='pcm_release' type-id='897d1b6d' visibility='default' filepath='include/sound/pcm.h' line='477' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='pid' type-id='b94e5398' visibility='default' filepath='include/sound/pcm.h' line='478' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='hw_opened' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2881'>
+          <var-decl name='managed_buffer_alloc' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/sound/pcm.h' line='489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/pcm.h' line='490' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7d9421ac' size-in-bits='64' id='3630c5f2'/>
+      <qualified-type-def type-id='f9b37274' const='yes' id='3635993f'/>
+      <function-type size-in-bits='64' id='3636c828'>
+        <parameter type-id='af051c69'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='22ec9634' size-in-bits='64' id='3638c201'/>
+      <pointer-type-def type-id='6c57d4a8' size-in-bits='64' id='363a995e'/>
+      <class-decl name='vhost_iotlb_msg' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/linux/vhost_types.h' line='51' column='1' id='364251ac'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='iova' type-id='d3130597' visibility='default' filepath='include/uapi/linux/vhost_types.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='d3130597' visibility='default' filepath='include/uapi/linux/vhost_types.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='uaddr' type-id='d3130597' visibility='default' filepath='include/uapi/linux/vhost_types.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='perm' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/vhost_types.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='type' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/vhost_types.h' line='74' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3642b004'>
+        <parameter type-id='67f526b5'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <class-decl name='perf_event_groups' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='778' column='1' id='3643bc2a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tree' type-id='dec44472' visibility='default' filepath='include/linux/perf_event.h' line='779' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='index' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='780' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e07298c6' size-in-bits='64' id='364779d0'/>
+      <pointer-type-def type-id='3554a6c7' size-in-bits='64' id='3647f5a3'/>
+      <qualified-type-def type-id='b488fcb9' const='yes' id='364c344e'/>
+      <class-decl name='usb_function_instance' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/linux/usb/composite.h' line='591' column='1' id='364ef168'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='group' type-id='f05eea43' visibility='default' filepath='include/linux/usb/composite.h' line='592' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='cfs_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb/composite.h' line='593' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='fd' type-id='f666bcc1' visibility='default' filepath='include/linux/usb/composite.h' line='594' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='f' type-id='e5411c2c' visibility='default' filepath='include/linux/usb/composite.h' line='595' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='set_inst_name' type-id='f0f4c2cd' visibility='default' filepath='include/linux/usb/composite.h' line='596' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='free_func_inst' type-id='f16bd93b' visibility='default' filepath='include/linux/usb/composite.h' line='598' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='e87e70f3' const='yes' id='3651c762'/>
+      <typedef-decl name='rht_obj_hashfn_t' type-id='bc00c03b' filepath='include/linux/rhashtable-types.h' line='39' column='1' id='365fa902'/>
+      <array-type-def dimensions='1' type-id='7c13c5bf' size-in-bits='12288' id='366d2368'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <pointer-type-def type-id='15ac14d5' size-in-bits='64' id='366d2695'/>
+      <enum-decl name='vfl_devnode_direction' filepath='include/media/v4l2-dev.h' line='56' column='1' id='366ec232'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='VFL_DIR_RX' value='0'/>
+        <enumerator name='VFL_DIR_TX' value='1'/>
+        <enumerator name='VFL_DIR_M2M' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='d84ae668' size-in-bits='64' id='36700cde'/>
+      <class-decl name='dma_buf_sysfs_entry' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/dma-buf.h' line='520' column='1' id='36721cc5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab5ce' visibility='default' filepath='include/linux/dma-buf.h' line='521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='dmabuf' type-id='5e4f599b' visibility='default' filepath='include/linux/dma-buf.h' line='530' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9b58f3d9' size-in-bits='64' id='3673ce4d'/>
+      <function-type size-in-bits='64' id='3683b7e7'>
+        <parameter type-id='33c599da'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='7e369584' size-in-bits='64' id='368a0122'/>
+      <pointer-type-def type-id='8a1373a3' size-in-bits='64' id='368d43d3'/>
+      <pointer-type-def type-id='807869d3' size-in-bits='64' id='368ed2fb'/>
+      <class-decl name='snd_enc_vorbis' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/sound/compress_params.h' line='272' column='1' id='36942ad7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='quality' type-id='3158a266' visibility='default' filepath='include/uapi/sound/compress_params.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='managed' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max_bit_rate' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='min_bit_rate' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='downmix' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='277' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='59efae17' size-in-bits='64' id='369435a4'/>
+      <class-decl name='s3_save' size-in-bits='384' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1695' column='1' id='369534b9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='command' type-id='19c2251e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1696' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='dev_nt' type-id='19c2251e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1697' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dcbaa_ptr' type-id='91ce1af9' visibility='default' filepath='drivers/usb/host/xhci.h' line='1698' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='config_reg' type-id='19c2251e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1699' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='irq_pending' type-id='19c2251e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1700' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='irq_control' type-id='19c2251e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1701' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='erst_size' type-id='19c2251e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1702' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='erst_base' type-id='91ce1af9' visibility='default' filepath='drivers/usb/host/xhci.h' line='1703' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='erst_dequeue' type-id='91ce1af9' visibility='default' filepath='drivers/usb/host/xhci.h' line='1704' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0e02cf9b' size-in-bits='64' id='3695fecb'/>
+      <function-type size-in-bits='64' id='369a41ea'>
+        <parameter type-id='a970a64c'/>
+        <return type-id='80f4b756'/>
+      </function-type>
+      <function-type size-in-bits='64' id='36a439e9'>
+        <parameter type-id='32efad44'/>
+        <parameter type-id='8bff8096'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='36b209ce'>
+        <parameter type-id='b3c6c7b8'/>
+        <parameter type-id='066c338e'/>
+        <parameter type-id='066c338e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='1bead3e1' size-in-bits='64' id='36b74cb9'/>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='320' id='36c46961'>
+        <subrange length='40' type-id='7ff19f0f' id='8f80b239'/>
+      </array-type-def>
+      <qualified-type-def type-id='1ffb3281' const='yes' id='36c71786'/>
+      <pointer-type-def type-id='b053b689' size-in-bits='64' id='36c88299'/>
+      <pointer-type-def type-id='0b1ef2a8' size-in-bits='64' id='36caa4da'/>
+      <pointer-type-def type-id='24767e7f' size-in-bits='64' id='36cb26c7'/>
+      <function-type size-in-bits='64' id='36ccbfa3'>
+        <parameter type-id='5771c601'/>
+        <parameter type-id='fce0537d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='352' id='36cef6bd'>
+        <subrange length='44' type-id='7ff19f0f' id='cf8ba455'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='36cf98aa'>
+        <parameter type-id='0ac68794'/>
+        <parameter type-id='bc155125'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='flow_action_entry' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/net/flow_offload.h' line='198' column='1' id='36d13127'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='94d3b34d' visibility='default' filepath='include/net/flow_offload.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='hw_stats' type-id='f3dc198d' visibility='default' filepath='include/net/flow_offload.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='destructor' type-id='8dad74ff' visibility='default' filepath='include/net/flow_offload.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='destructor_priv' type-id='eaa32e2f' visibility='default' filepath='include/net/flow_offload.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='' type-id='ac5ab6a0' visibility='default' filepath='include/net/flow_offload.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='cookie' type-id='3695fecb' visibility='default' filepath='include/net/flow_offload.h' line='282' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/pgtable-types.h' line='39' column='1' id='36d456a7' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pgd' type-id='df6d7e75' visibility='default' filepath='arch/arm64/include/asm/pgtable-types.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='384' id='36d7f119'>
+        <subrange length='48' type-id='7ff19f0f' id='8f6d2a81'/>
+      </array-type-def>
+      <class-decl name='iio_buffer_setup_ops' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/iio/iio.h' line='479' column='1' id='36e5348a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='preenable' type-id='adb7e86e' visibility='default' filepath='include/linux/iio/iio.h' line='480' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='postenable' type-id='adb7e86e' visibility='default' filepath='include/linux/iio/iio.h' line='481' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='predisable' type-id='adb7e86e' visibility='default' filepath='include/linux/iio/iio.h' line='482' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='postdisable' type-id='adb7e86e' visibility='default' filepath='include/linux/iio/iio.h' line='483' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='validate_scan_mask' type-id='d2b31715' visibility='default' filepath='include/linux/iio/iio.h' line='484' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='787271ea' size-in-bits='64' id='36e7f6dc'/>
+      <pointer-type-def type-id='ed6fc6ea' size-in-bits='64' id='36e7f8ac'/>
+      <class-decl name='amp_assoc' size-in-bits='5440' is-struct='yes' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='300' column='1' id='36e902a9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='len' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='offset' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='rem_len' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='len_so_far' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='2731130d' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='305' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='39d64410' size-in-bits='64' id='36ed3b9a'/>
+      <pointer-type-def type-id='6ad7a215' size-in-bits='64' id='36f91979'/>
+      <pointer-type-def type-id='c4a7b189' size-in-bits='64' id='36fca399'/>
+      <enum-decl name='snd_soc_dpcm_update' filepath='include/sound/soc-dpcm.h' line='21' column='1' id='3708cdec'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SND_SOC_DPCM_UPDATE_NO' value='0'/>
+        <enumerator name='SND_SOC_DPCM_UPDATE_BE' value='1'/>
+        <enumerator name='SND_SOC_DPCM_UPDATE_FE' value='2'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='55f9b227' size-in-bits='65536' id='370ec9f4'>
+        <subrange length='256' type-id='7ff19f0f' id='36e5b9fa'/>
+      </array-type-def>
+      <class-decl name='blkg_rwstat_sample' size-in-bits='320' is-struct='yes' visibility='default' filepath='block/blk-cgroup-rwstat.h' line='31' column='1' id='3713d87e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cnt' type-id='64af1365' visibility='default' filepath='block/blk-cgroup-rwstat.h' line='32' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6703ad9d' size-in-bits='64' id='37175e4d'/>
+      <pointer-type-def type-id='cfe09901' size-in-bits='64' id='37191bbd'/>
+      <function-type size-in-bits='64' id='371f2e98'>
+        <parameter type-id='ee27b7c6'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='device_dma_parameters' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/device.h' line='280' column='1' id='37251e77'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='max_segment_size' type-id='f0981eeb' visibility='default' filepath='include/linux/device.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='min_align_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/device.h' line='286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='segment_boundary_mask' type-id='7359adad' visibility='default' filepath='include/linux/device.h' line='287' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='973b98af' size-in-bits='64' id='37265457'/>
+      <pointer-type-def type-id='c1670ffd' size-in-bits='64' id='372af73d'/>
+      <pointer-type-def type-id='80cb625d' size-in-bits='64' id='372c0155'/>
+      <class-decl name='snd_soc_tplg_private' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='240' column='1' id='372c32b8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='' type-id='ac5ab6af' visibility='default' filepath='include/uapi/sound/asoc.h' line='242' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_config_descriptor' size-in-bits='72' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='349' column='1' id='372ebfa4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='350' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='wTotalLength' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bNumInterfaces' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='bConfigurationValue' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='iConfiguration' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='bmAttributes' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bMaxPower' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='358' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ba17f5a7' size-in-bits='64' id='3735123b'/>
+      <pointer-type-def type-id='6cc49e45' size-in-bits='64' id='373a5a49'/>
+      <pointer-type-def type-id='a8c69bdf' size-in-bits='64' id='374692c7'/>
+      <function-type size-in-bits='64' id='374a88a9'>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='20494abb' size-in-bits='64' id='374b228b'/>
+      <pointer-type-def type-id='e4bb0da5' size-in-bits='64' id='37513679'/>
+      <pointer-type-def type-id='cd4cfe6f' size-in-bits='64' id='37593c93'/>
+      <pointer-type-def type-id='32ec86e0' size-in-bits='64' id='375e0126'/>
+      <pointer-type-def type-id='86bc8898' size-in-bits='64' id='375f8cba'/>
+      <function-type size-in-bits='64' id='37688d8e'>
+        <parameter type-id='65077a4a'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='3c330066'/>
+      </function-type>
+      <typedef-decl name='sa_family_t' type-id='93d679c6' filepath='include/linux/socket.h' line='26' column='1' id='376fda66'/>
+      <pointer-type-def type-id='d31161f1' size-in-bits='64' id='3778bdcd'/>
+      <pointer-type-def type-id='93301493' size-in-bits='64' id='377be647'/>
+      <pointer-type-def type-id='1edc0ccb' size-in-bits='64' id='377cc68f'/>
+      <class-decl name='slabinfo' size-in-bits='512' is-struct='yes' visibility='default' filepath='mm/slab.h' line='196' column='1' id='3780aff9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='active_objs' type-id='7359adad' visibility='default' filepath='mm/slab.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_objs' type-id='7359adad' visibility='default' filepath='mm/slab.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='active_slabs' type-id='7359adad' visibility='default' filepath='mm/slab.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='num_slabs' type-id='7359adad' visibility='default' filepath='mm/slab.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='shared_avail' type-id='7359adad' visibility='default' filepath='mm/slab.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='limit' type-id='f0981eeb' visibility='default' filepath='mm/slab.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='batchcount' type-id='f0981eeb' visibility='default' filepath='mm/slab.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='shared' type-id='f0981eeb' visibility='default' filepath='mm/slab.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='objects_per_slab' type-id='f0981eeb' visibility='default' filepath='mm/slab.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='cache_order' type-id='f0981eeb' visibility='default' filepath='mm/slab.h' line='206' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='wiphy_iftype_ext_capab' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5325' column='1' id='378a6c5a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='iftype' type-id='86505f90' visibility='default' filepath='include/net/cfg80211.h' line='5326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='extended_capabilities' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='extended_capabilities_mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='extended_capabilities_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5329' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='378c144b'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='ae4f2ad5'/>
+        <parameter type-id='86f9d4a5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='3793087b'>
+        <parameter type-id='7efbcaaf'/>
+        <parameter type-id='d8e6b335'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='80b664d7' size-in-bits='896' id='379a2915'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='6e21d41e' size-in-bits='1536' id='379ac606'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <class-decl name='flow_dissector' size-in-bits='480' is-struct='yes' visibility='default' filepath='include/net/flow_dissector.h' line='299' column='1' id='379be6ec'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='used_keys' type-id='f0981eeb' visibility='default' filepath='include/net/flow_dissector.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='offset' type-id='b469d7a7' visibility='default' filepath='include/net/flow_dissector.h' line='301' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='blkg_conf_ctx' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/blk-cgroup.h' line='205' column='1' id='379ef9aa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bdev' type-id='b88dd945' visibility='default' filepath='include/linux/blk-cgroup.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='blkg' type-id='1146dea3' visibility='default' filepath='include/linux/blk-cgroup.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='body' type-id='26a90f95' visibility='default' filepath='include/linux/blk-cgroup.h' line='208' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='cgroup_file' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/cgroup-defs.h' line='128' column='1' id='37a4ee40'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kn' type-id='150efd3f' visibility='default' filepath='include/linux/cgroup-defs.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='notified_at' type-id='7359adad' visibility='default' filepath='include/linux/cgroup-defs.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='notify_timer' type-id='abe41e67' visibility='default' filepath='include/linux/cgroup-defs.h' line='132' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='99f367f2' size-in-bits='64' id='37a6b980'/>
+      <pointer-type-def type-id='d6ad270a' size-in-bits='64' id='37a787dc'/>
+      <class-decl name='io_pgtable_ops' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/io-pgtable.h' line='163' column='1' id='37b2770e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='map' type-id='ec2076dd' visibility='default' filepath='include/linux/io-pgtable.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='map_pages' type-id='8c779dcc' visibility='default' filepath='include/linux/io-pgtable.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='map_sg' type-id='4337d88a' visibility='default' filepath='include/linux/io-pgtable.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='unmap' type-id='7ec53559' visibility='default' filepath='include/linux/io-pgtable.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='unmap_pages' type-id='e316b900' visibility='default' filepath='include/linux/io-pgtable.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='iova_to_phys' type-id='92b191e1' visibility='default' filepath='include/linux/io-pgtable.h' line='177' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='294a6b21' size-in-bits='64' id='37bbabb5'/>
+      <class-decl name='component_match' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/base/component.c' line='55' column='1' id='37c0f586'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='alloc' type-id='b59d7dce' visibility='default' filepath='drivers/base/component.c' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num' type-id='b59d7dce' visibility='default' filepath='drivers/base/component.c' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='compare' type-id='72dd5196' visibility='default' filepath='drivers/base/component.c' line='58' 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='37ce495e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='idr_rt' type-id='d39738ac' 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='f0981eeb' 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='f0981eeb' visibility='default' filepath='include/linux/idr.h' line='22' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b277cad4' size-in-bits='64' id='37cfc122'/>
+      <function-type size-in-bits='64' id='37d25cd5'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='f57039f0'/>
+        <parameter type-id='e84b031a'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='37d6dbea'>
+        <parameter type-id='1ced7495'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='8bf48c31' size-in-bits='1024' id='37d8fbe4'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <pointer-type-def type-id='75971b31' size-in-bits='64' id='37dfab81'/>
+      <pointer-type-def type-id='7fa2fd91' size-in-bits='64' id='37ec0ebd'/>
+      <class-decl name='gether' size-in-bits='2368' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/u_ether.h' line='52' column='1' id='37eec936'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='func' type-id='d6a54726' visibility='default' filepath='drivers/usb/gadget/function/u_ether.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='ioport' type-id='a15a118e' visibility='default' filepath='drivers/usb/gadget/function/u_ether.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='in_ep' type-id='63a08bf7' visibility='default' filepath='drivers/usb/gadget/function/u_ether.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='out_ep' type-id='63a08bf7' visibility='default' filepath='drivers/usb/gadget/function/u_ether.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='is_zlp_ok' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_ether.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1936'>
+          <var-decl name='cdc_filter' type-id='1dc6a898' visibility='default' filepath='drivers/usb/gadget/function/u_ether.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1952'>
+          <var-decl name='header_len' type-id='19c2251e' visibility='default' filepath='drivers/usb/gadget/function/u_ether.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='is_fixed' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_ether.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2016'>
+          <var-decl name='fixed_out_len' type-id='19c2251e' visibility='default' filepath='drivers/usb/gadget/function/u_ether.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='fixed_in_len' type-id='19c2251e' visibility='default' filepath='drivers/usb/gadget/function/u_ether.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2080'>
+          <var-decl name='supports_multi_frame' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_ether.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='wrap' type-id='ade1e67f' visibility='default' filepath='drivers/usb/gadget/function/u_ether.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='unwrap' type-id='125250b1' visibility='default' filepath='drivers/usb/gadget/function/u_ether.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='open' type-id='281e6c4d' visibility='default' filepath='drivers/usb/gadget/function/u_ether.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='close' type-id='281e6c4d' visibility='default' filepath='drivers/usb/gadget/function/u_ether.h' line='81' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='052de971' const='yes' id='37f40156'/>
+      <function-type size-in-bits='64' id='37f6d957'>
+        <parameter type-id='27675065'/>
+        <parameter type-id='7e666abe'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='3802a069'>
+        <parameter type-id='37175e4d'/>
+        <parameter type-id='bd70a631'/>
+        <parameter type-id='d586c6cc'/>
+        <parameter type-id='3158a266'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='380397d5'>
+        <parameter type-id='2661e0d9'/>
+        <parameter type-id='6df3750c'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='c0f05602' size-in-bits='64' id='3805964c'/>
+      <class-decl name='compress_alg' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/crypto.h' line='263' column='1' id='380acddc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='coa_compress' type-id='8801b8af' visibility='default' filepath='include/linux/crypto.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='coa_decompress' type-id='8801b8af' visibility='default' filepath='include/linux/crypto.h' line='266' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c75c7b06' size-in-bits='64' id='380c7edc'/>
+      <class-decl name='ioam6_pernet_data' size-in-bits='3072' is-struct='yes' visibility='default' filepath='include/net/ioam6.h' line='41' column='1' id='38200493'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/net/ioam6.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='namespaces' type-id='9e095f93' visibility='default' filepath='include/net/ioam6.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='schemas' type-id='9e095f93' visibility='default' filepath='include/net/ioam6.h' line='44' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d38255fd' size-in-bits='64' id='382d6fa6'/>
+      <pointer-type-def type-id='686e5e33' size-in-bits='64' id='38313007'/>
+      <pointer-type-def type-id='781993c9' size-in-bits='64' id='383471a1'/>
+      <pointer-type-def type-id='2d83a1b8' size-in-bits='64' id='383758d6'/>
+      <pointer-type-def type-id='35306a57' size-in-bits='64' id='3837a2c7'/>
+      <pointer-type-def type-id='983c2c09' size-in-bits='64' id='3837ac61'/>
+      <pointer-type-def type-id='c1a2f7eb' size-in-bits='64' id='383e66df'/>
+      <class-decl name='rt6_info' size-in-bits='1920' is-struct='yes' visibility='default' filepath='include/net/ip6_fib.h' line='216' column='1' id='384b6d84'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dst' type-id='772a4ddf' visibility='default' filepath='include/net/ip6_fib.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='from' type-id='fe454a75' visibility='default' filepath='include/net/ip6_fib.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='sernum' type-id='95e97e5e' visibility='default' filepath='include/net/ip6_fib.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='rt6i_dst' type-id='d7f36d8e' visibility='default' filepath='include/net/ip6_fib.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='rt6i_src' type-id='d7f36d8e' visibility='default' filepath='include/net/ip6_fib.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='rt6i_gateway' type-id='f6ed712a' visibility='default' filepath='include/net/ip6_fib.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='rt6i_idev' type-id='f026b16b' visibility='default' filepath='include/net/ip6_fib.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='rt6i_flags' type-id='19c2251e' visibility='default' filepath='include/net/ip6_fib.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='rt6i_uncached' type-id='72f469ec' visibility='default' filepath='include/net/ip6_fib.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='rt6i_uncached_list' type-id='e9bf5d35' visibility='default' filepath='include/net/ip6_fib.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='rt6i_nfheader_len' type-id='8efea9e5' visibility='default' filepath='include/net/ip6_fib.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/ip6_fib.h' line='233' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d49e6088' size-in-bits='64' id='38527a92'/>
+      <enum-decl name='irq_domain_bus_token' filepath='include/linux/irqdomain.h' line='75' column='1' id='385b8018'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DOMAIN_BUS_ANY' value='0'/>
+        <enumerator name='DOMAIN_BUS_WIRED' value='1'/>
+        <enumerator name='DOMAIN_BUS_GENERIC_MSI' value='2'/>
+        <enumerator name='DOMAIN_BUS_PCI_MSI' value='3'/>
+        <enumerator name='DOMAIN_BUS_PLATFORM_MSI' value='4'/>
+        <enumerator name='DOMAIN_BUS_NEXUS' value='5'/>
+        <enumerator name='DOMAIN_BUS_IPI' value='6'/>
+        <enumerator name='DOMAIN_BUS_FSL_MC_MSI' value='7'/>
+        <enumerator name='DOMAIN_BUS_TI_SCI_INTA_MSI' value='8'/>
+        <enumerator name='DOMAIN_BUS_WAKEUP' value='9'/>
+        <enumerator name='DOMAIN_BUS_VMD_MSI' value='10'/>
+      </enum-decl>
+      <qualified-type-def type-id='2f8662b5' const='yes' id='38664924'/>
+      <class-decl name='elevator_mq_ops' size-in-bits='1664' is-struct='yes' visibility='default' filepath='include/linux/elevator.h' line='30' column='1' id='386fe521'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='init_sched' type-id='c2889977' visibility='default' filepath='include/linux/elevator.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='exit_sched' type-id='89340c26' visibility='default' filepath='include/linux/elevator.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='init_hctx' type-id='a2abb549' visibility='default' filepath='include/linux/elevator.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='exit_hctx' type-id='66288ae4' visibility='default' filepath='include/linux/elevator.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='depth_updated' type-id='a75080c6' visibility='default' filepath='include/linux/elevator.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='allow_merge' type-id='1734c68b' visibility='default' filepath='include/linux/elevator.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='bio_merge' type-id='3ed0c5ec' visibility='default' filepath='include/linux/elevator.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='request_merge' type-id='f72cc247' visibility='default' filepath='include/linux/elevator.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='request_merged' type-id='b615a053' visibility='default' filepath='include/linux/elevator.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='requests_merged' type-id='40f624e9' visibility='default' filepath='include/linux/elevator.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='limit_depth' type-id='e46f66f3' visibility='default' filepath='include/linux/elevator.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='prepare_request' type-id='bbf015cd' visibility='default' filepath='include/linux/elevator.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='finish_request' type-id='bbf015cd' visibility='default' filepath='include/linux/elevator.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='insert_requests' type-id='60c9df2c' visibility='default' filepath='include/linux/elevator.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='dispatch_request' type-id='a66a8231' visibility='default' filepath='include/linux/elevator.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='has_work' type-id='6ca30b05' visibility='default' filepath='include/linux/elevator.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='completed_request' type-id='300d6413' visibility='default' filepath='include/linux/elevator.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='requeue_request' type-id='bbf015cd' visibility='default' filepath='include/linux/elevator.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='former_request' type-id='27bb8677' visibility='default' filepath='include/linux/elevator.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='next_request' type-id='27bb8677' visibility='default' filepath='include/linux/elevator.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='init_icq' type-id='fedb17fd' visibility='default' filepath='include/linux/elevator.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='exit_icq' type-id='fedb17fd' visibility='default' filepath='include/linux/elevator.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/elevator.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/elevator.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/elevator.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/elevator.h' line='58' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3870c7c3'>
+        <parameter type-id='fc4f83c1'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='d6b43ca8' size-in-bits='864' id='3871823f'>
+        <subrange length='9' type-id='7ff19f0f' id='12e4273c'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='387ddca6'>
+        <parameter type-id='43c38462'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e625eab0' size-in-bits='64' id='388a7f2a'/>
+      <pointer-type-def type-id='22a55ca6' size-in-bits='64' id='38921430'/>
+      <function-type size-in-bits='64' id='389d1e82'>
+        <parameter type-id='328dda6e'/>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f9fef04f' size-in-bits='64' id='389faaf7'/>
+      <qualified-type-def type-id='158c8c35' const='yes' id='38a035e6'/>
+      <function-type size-in-bits='64' id='38a09a00'>
+        <parameter type-id='404b1300'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='7292109c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='38a112d0'>
+        <parameter type-id='3c330066'/>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='294be38d' size-in-bits='64' id='38a7cb79'/>
+      <pointer-type-def type-id='a87d8ed1' size-in-bits='64' id='38a81521'/>
+      <pointer-type-def type-id='dfa886b2' size-in-bits='64' id='38b1e3a0'/>
+      <function-type size-in-bits='64' id='38b33cba'>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='7359adad'/>
+      </function-type>
+      <pointer-type-def type-id='d03bc47e' size-in-bits='64' id='38bf79a4'/>
+      <pointer-type-def type-id='9102a0ad' size-in-bits='64' id='38c41fe1'/>
+      <function-type size-in-bits='64' id='38c67a4b'>
+        <parameter type-id='dfeb7f6c'/>
+        <parameter type-id='bbaf3419'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='8bff8096'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='38cb23df'>
+        <parameter type-id='184ff936'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='3f78e6a9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='3f8b3d98' const='yes' id='38cc1773'/>
+      <qualified-type-def type-id='66fa8ce5' const='yes' id='38ce7f2c'/>
+      <function-type size-in-bits='64' id='38cfc416'>
+        <parameter type-id='b9608bfc'/>
+        <parameter type-id='8efea9e5'/>
+        <parameter type-id='63e171df'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='38d1cb6d'>
+        <parameter type-id='401eb95c'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='gpiod_flags' filepath='include/linux/gpio/consumer.h' line='46' column='1' id='38d4936d'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='GPIOD_ASIS' value='0'/>
+        <enumerator name='GPIOD_IN' value='1'/>
+        <enumerator name='GPIOD_OUT_LOW' value='3'/>
+        <enumerator name='GPIOD_OUT_HIGH' value='7'/>
+        <enumerator name='GPIOD_OUT_LOW_OPEN_DRAIN' value='11'/>
+        <enumerator name='GPIOD_OUT_HIGH_OPEN_DRAIN' value='15'/>
+      </enum-decl>
+      <pointer-type-def type-id='c33808e6' size-in-bits='64' id='38d8fc10'/>
+      <class-decl name='hwspinlock' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/hwspinlock/hwspinlock_internal.h' line='40' column='1' id='38db93a7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bank' type-id='b8cd8f00' visibility='default' filepath='drivers/hwspinlock/hwspinlock_internal.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='drivers/hwspinlock/hwspinlock_internal.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='drivers/hwspinlock/hwspinlock_internal.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_function_driver' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/usb/composite.h' line='583' column='1' id='38df0539'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/usb/composite.h' line='584' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mod' type-id='2730d015' visibility='default' filepath='include/linux/usb/composite.h' line='585' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/usb/composite.h' line='586' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='alloc_inst' type-id='20644ce5' visibility='default' filepath='include/linux/usb/composite.h' line='587' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='alloc_func' type-id='ae795a50' visibility='default' filepath='include/linux/usb/composite.h' line='588' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='6cd62070' const='yes' id='38e0f6d3'/>
+      <function-type size-in-bits='64' id='38e7219e'>
+        <parameter type-id='347d8ccd'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='a0807697' size-in-bits='64' id='38ea827b'/>
+      <pointer-type-def type-id='175944cd' size-in-bits='64' id='38ed603d'/>
+      <class-decl name='kernel_siginfo' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/signal_types.h' line='12' column='1' id='38ef7882'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='e7f4400b' visibility='default' filepath='include/linux/signal_types.h' line='13' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='38f02a1a'>
+        <parameter type-id='db1a91a3'/>
+        <parameter type-id='cbad797a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='drm_shadow_plane_state' size-in-bits='2240' is-struct='yes' visibility='default' filepath='include/drm/drm_gem_atomic_helper.h' line='32' column='1' id='38f18858'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='a1700eb5' visibility='default' filepath='include/drm/drm_gem_atomic_helper.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='map' type-id='6853ab38' visibility='default' filepath='include/drm/drm_gem_atomic_helper.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='data' type-id='6853ab38' visibility='default' filepath='include/drm/drm_gem_atomic_helper.h' line='52' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='be0d5cf5' size-in-bits='64' id='38fe9344'/>
+      <pointer-type-def type-id='5e584ca4' size-in-bits='64' id='390f2646'/>
+      <pointer-type-def type-id='c8c25625' size-in-bits='64' id='390f38a5'/>
+      <pointer-type-def type-id='754a5cbf' size-in-bits='64' id='390fbe8f'/>
+      <pointer-type-def type-id='d35840cd' size-in-bits='64' id='391871d1'/>
+      <class-decl name='cfg80211_sched_scan_plan' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2667' column='1' id='391881a9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='interval' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2668' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='iterations' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2669' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_device_id' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/mod_devicetable.h' line='127' column='1' id='391a9024'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='match_flags' type-id='d315442e' visibility='default' filepath='include/linux/mod_devicetable.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='idVendor' type-id='d315442e' visibility='default' filepath='include/linux/mod_devicetable.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='idProduct' type-id='d315442e' visibility='default' filepath='include/linux/mod_devicetable.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='bcdDevice_lo' type-id='d315442e' visibility='default' filepath='include/linux/mod_devicetable.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bcdDevice_hi' type-id='d315442e' visibility='default' filepath='include/linux/mod_devicetable.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='bDeviceClass' type-id='8f048e17' visibility='default' filepath='include/linux/mod_devicetable.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='bDeviceSubClass' type-id='8f048e17' visibility='default' filepath='include/linux/mod_devicetable.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='bDeviceProtocol' type-id='8f048e17' visibility='default' filepath='include/linux/mod_devicetable.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='bInterfaceClass' type-id='8f048e17' visibility='default' filepath='include/linux/mod_devicetable.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='bInterfaceSubClass' type-id='8f048e17' visibility='default' filepath='include/linux/mod_devicetable.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='bInterfaceProtocol' type-id='8f048e17' visibility='default' filepath='include/linux/mod_devicetable.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bInterfaceNumber' type-id='8f048e17' visibility='default' filepath='include/linux/mod_devicetable.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='driver_info' type-id='0791d6c8' visibility='default' filepath='include/linux/mod_devicetable.h' line='151' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='391f1e06'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='ec167ceb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='snd_usb_stream' size-in-bits='3648' is-struct='yes' visibility='default' filepath='sound/usb/card.h' line='207' column='1' id='3921bd52'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='chip' type-id='d86551c2' visibility='default' filepath='sound/usb/card.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pcm' type-id='4c9f335b' visibility='default' filepath='sound/usb/card.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pcm_index' type-id='95e97e5e' visibility='default' filepath='sound/usb/card.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='fmt_type' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='substream' type-id='ab779f6c' visibility='default' filepath='sound/usb/card.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='sound/usb/card.h' line='213' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='11f6cc62' size-in-bits='64' id='3921c1a0'/>
+      <class-decl name='usb_hcd' size-in-bits='5888' is-struct='yes' visibility='default' filepath='include/linux/usb/hcd.h' line='82' column='1' id='392af4e9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='self' type-id='fa4d7704' visibility='default' filepath='include/linux/usb/hcd.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='include/linux/usb/hcd.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='product_desc' type-id='80f4b756' visibility='default' filepath='include/linux/usb/hcd.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='speed' type-id='95e97e5e' visibility='default' filepath='include/linux/usb/hcd.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1696'>
+          <var-decl name='irq_descr' type-id='6653bb13' visibility='default' filepath='include/linux/usb/hcd.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='rh_timer' type-id='abe41e67' visibility='default' filepath='include/linux/usb/hcd.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='status_urb' type-id='ab85b8f2' visibility='default' filepath='include/linux/usb/hcd.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='wakeup_work' type-id='ef9025d0' visibility='default' filepath='include/linux/usb/hcd.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='died_work' type-id='ef9025d0' visibility='default' filepath='include/linux/usb/hcd.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='driver' type-id='5aa12c86' visibility='default' filepath='include/linux/usb/hcd.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='usb_phy' type-id='ca9354d1' visibility='default' filepath='include/linux/usb/hcd.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='phy_roothub' type-id='7befabdd' visibility='default' filepath='include/linux/usb/hcd.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/usb/hcd.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='dev_policy' type-id='7e6e640d' visibility='default' filepath='include/linux/usb/hcd.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3488'>
+          <var-decl name='rh_registered' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/hcd.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3489'>
+          <var-decl name='rh_pollable' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/hcd.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3490'>
+          <var-decl name='msix_enabled' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/hcd.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3491'>
+          <var-decl name='msi_enabled' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/hcd.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3492'>
+          <var-decl name='skip_phy_initialization' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/hcd.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3493'>
+          <var-decl name='uses_new_polling' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/hcd.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3494'>
+          <var-decl name='wireless' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/hcd.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3495'>
+          <var-decl name='has_tt' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/hcd.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3496'>
+          <var-decl name='amd_resume_bug' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/hcd.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3497'>
+          <var-decl name='can_do_streams' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/hcd.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3498'>
+          <var-decl name='tpl_support' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/hcd.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3499'>
+          <var-decl name='cant_recv_wakeups' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/hcd.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='irq' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/hcd.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='regs' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb/hcd.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='rsrc_start' type-id='acc63fdf' visibility='default' filepath='include/linux/usb/hcd.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='rsrc_len' type-id='acc63fdf' visibility='default' filepath='include/linux/usb/hcd.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='power_budget' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/hcd.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='high_prio_bh' type-id='63972aea' visibility='default' filepath='include/linux/usb/hcd.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='low_prio_bh' type-id='63972aea' visibility='default' filepath='include/linux/usb/hcd.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='address0_mutex' type-id='e0ea832a' visibility='default' filepath='include/linux/usb/hcd.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5056'>
+          <var-decl name='bandwidth_mutex' type-id='e0ea832a' visibility='default' filepath='include/linux/usb/hcd.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='shared_hcd' type-id='fc4f83c1' visibility='default' filepath='include/linux/usb/hcd.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='primary_hcd' type-id='fc4f83c1' visibility='default' filepath='include/linux/usb/hcd.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='pool' type-id='9d8055ec' visibility='default' filepath='include/linux/usb/hcd.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='state' type-id='95e97e5e' visibility='default' filepath='include/linux/usb/hcd.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='localmem_pool' type-id='75b9415a' visibility='default' filepath='include/linux/usb/hcd.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5632'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/hcd.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5696'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/hcd.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5760'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/hcd.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5824'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/hcd.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5888'>
+          <var-decl name='hcd_priv' type-id='c99b5ecd' visibility='default' filepath='include/linux/usb/hcd.h' line='239' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='aef83a98' size-in-bits='64' id='39341f7e'/>
+      <pointer-type-def type-id='8369580f' size-in-bits='64' id='3934844b'/>
+      <qualified-type-def type-id='984972f4' const='yes' id='3944ca69'/>
+      <class-decl name='ir_raw_event' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/media/rc-core.h' line='299' column='1' id='39486498'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab5f0' visibility='default' filepath='include/media/rc-core.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='duty_cycle' type-id='f9b06939' visibility='default' filepath='include/media/rc-core.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='pulse' type-id='f0981eeb' visibility='default' filepath='include/media/rc-core.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41'>
+          <var-decl name='reset' type-id='f0981eeb' visibility='default' filepath='include/media/rc-core.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='42'>
+          <var-decl name='timeout' type-id='f0981eeb' visibility='default' filepath='include/media/rc-core.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='43'>
+          <var-decl name='carrier_report' type-id='f0981eeb' visibility='default' filepath='include/media/rc-core.h' line='309' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='99ef5e11' size-in-bits='64' id='3948ffb9'/>
+      <qualified-type-def type-id='3ede3949' const='yes' id='395280fe'/>
+      <function-type size-in-bits='64' id='395aad7e'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='7f9b4c1b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='d3e31bbb' size-in-bits='64' id='397dd6bb'/>
+      <qualified-type-def type-id='eb7c81d8' const='yes' id='39863601'/>
+      <qualified-type-def type-id='78a133c2' const='yes' id='398c6fd2'/>
+      <pointer-type-def type-id='d79644f2' size-in-bits='64' id='398e6008'/>
+      <pointer-type-def type-id='dd823037' size-in-bits='64' id='3992a90f'/>
+      <pointer-type-def type-id='73b85a24' size-in-bits='64' id='3993d336'/>
+      <pointer-type-def type-id='718a7cd9' size-in-bits='64' id='39944481'/>
+      <class-decl name='ethtool_eth_mac_stats' size-in-bits='1408' is-struct='yes' visibility='default' filepath='include/linux/ethtool.h' line='263' column='1' id='399c9786'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='FramesTransmittedOK' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='SingleCollisionFrames' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='MultipleCollisionFrames' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='FramesReceivedOK' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='FrameCheckSequenceErrors' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='AlignmentErrors' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='OctetsTransmittedOK' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='FramesWithDeferredXmissions' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='LateCollisions' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='FramesAbortedDueToXSColls' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='FramesLostDueToIntMACXmitError' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='CarrierSenseErrors' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='OctetsReceivedOK' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='FramesLostDueToIntMACRcvError' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='MulticastFramesXmittedOK' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='BroadcastFramesXmittedOK' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='FramesWithExcessiveDeferral' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='MulticastFramesReceivedOK' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='BroadcastFramesReceivedOK' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='InRangeLengthErrors' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='OutOfRangeLengthField' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='FrameTooLongErrors' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='285' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='85c08b52' size-in-bits='64' id='39a43b40'/>
+      <pointer-type-def type-id='67a1c23c' size-in-bits='64' id='39a488a2'/>
+      <class-decl name='driver_info' size-in-bits='1280' is-struct='yes' visibility='default' filepath='include/linux/usb/usbnet.h' line='102' column='1' id='39a9bc04'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='description' type-id='26a90f95' visibility='default' filepath='include/linux/usb/usbnet.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/linux/usb/usbnet.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bind' type-id='a4de1198' visibility='default' filepath='include/linux/usb/usbnet.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='unbind' type-id='e8ad2523' visibility='default' filepath='include/linux/usb/usbnet.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='reset' type-id='3b49ed88' visibility='default' filepath='include/linux/usb/usbnet.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='stop' type-id='3b49ed88' visibility='default' filepath='include/linux/usb/usbnet.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='check_connect' type-id='3b49ed88' visibility='default' filepath='include/linux/usb/usbnet.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='manage_power' type-id='984ab777' visibility='default' filepath='include/linux/usb/usbnet.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='status' type-id='1483bbe4' visibility='default' filepath='include/linux/usb/usbnet.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='link_reset' type-id='3b49ed88' visibility='default' filepath='include/linux/usb/usbnet.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='rx_fixup' type-id='f98203c0' visibility='default' filepath='include/linux/usb/usbnet.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='tx_fixup' type-id='fb29201e' visibility='default' filepath='include/linux/usb/usbnet.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='recover' type-id='20f9ae8b' visibility='default' filepath='include/linux/usb/usbnet.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='early_init' type-id='3b49ed88' visibility='default' filepath='include/linux/usb/usbnet.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='indication' type-id='a426551e' visibility='default' filepath='include/linux/usb/usbnet.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='set_rx_mode' type-id='20f9ae8b' visibility='default' filepath='include/linux/usb/usbnet.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='in' type-id='95e97e5e' visibility='default' filepath='include/linux/usb/usbnet.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='out' type-id='95e97e5e' visibility='default' filepath='include/linux/usb/usbnet.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='data' type-id='7359adad' visibility='default' filepath='include/linux/usb/usbnet.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/usbnet.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/usbnet.h' line='185' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mmc_supply' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/mmc/host.h' line='315' column='1' id='39af3b22'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vmmc' type-id='850c13f6' visibility='default' filepath='include/linux/mmc/host.h' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='vqmmc' type-id='850c13f6' visibility='default' filepath='include/linux/mmc/host.h' line='317' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_device' size-in-bits='12672' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='645' column='1' id='39b596d4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='devnum' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='646' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='devpath' type-id='ac1fa8c0' visibility='default' filepath='include/linux/usb.h' line='647' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='route' type-id='19c2251e' visibility='default' filepath='include/linux/usb.h' line='648' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='state' type-id='901a91cb' visibility='default' filepath='include/linux/usb.h' line='649' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='speed' type-id='4e532009' visibility='default' filepath='include/linux/usb.h' line='650' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rx_lanes' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='651' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='tx_lanes' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='652' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ssp_rate' type-id='a9ea967a' visibility='default' filepath='include/linux/usb.h' line='653' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='tt' type-id='bf95a8f0' visibility='default' filepath='include/linux/usb.h' line='655' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ttport' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='656' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='toggle' type-id='0d532ec1' visibility='default' filepath='include/linux/usb.h' line='658' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='parent' type-id='25e60cb2' visibility='default' filepath='include/linux/usb.h' line='660' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='bus' type-id='3ab7d422' visibility='default' filepath='include/linux/usb.h' line='661' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='ep0' type-id='325f6f30' visibility='default' filepath='include/linux/usb.h' line='662' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/usb.h' line='664' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='descriptor' type-id='582de67c' visibility='default' filepath='include/linux/usb.h' line='666' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8832'>
+          <var-decl name='bos' type-id='ea484b4b' visibility='default' filepath='include/linux/usb.h' line='667' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8896'>
+          <var-decl name='config' type-id='2ba3cceb' visibility='default' filepath='include/linux/usb.h' line='668' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8960'>
+          <var-decl name='actconfig' type-id='2ba3cceb' visibility='default' filepath='include/linux/usb.h' line='670' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9024'>
+          <var-decl name='ep_in' type-id='cfc91983' visibility='default' filepath='include/linux/usb.h' line='671' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10048'>
+          <var-decl name='ep_out' type-id='cfc91983' visibility='default' filepath='include/linux/usb.h' line='672' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11072'>
+          <var-decl name='rawdescriptors' type-id='9b23c9ad' visibility='default' filepath='include/linux/usb.h' line='674' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11136'>
+          <var-decl name='bus_mA' type-id='8efea9e5' visibility='default' filepath='include/linux/usb.h' line='676' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11152'>
+          <var-decl name='portnum' type-id='f9b06939' visibility='default' filepath='include/linux/usb.h' line='677' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11160'>
+          <var-decl name='level' type-id='f9b06939' visibility='default' filepath='include/linux/usb.h' line='678' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11168'>
+          <var-decl name='devaddr' type-id='f9b06939' visibility='default' filepath='include/linux/usb.h' line='679' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11176'>
+          <var-decl name='can_submit' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='681' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11177'>
+          <var-decl name='persist_enabled' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='682' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11178'>
+          <var-decl name='have_langid' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='683' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11179'>
+          <var-decl name='authorized' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='684' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11180'>
+          <var-decl name='authenticated' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='685' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11181'>
+          <var-decl name='wusb' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='686' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11182'>
+          <var-decl name='lpm_capable' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='687' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11183'>
+          <var-decl name='usb2_hw_lpm_capable' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='688' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11184'>
+          <var-decl name='usb2_hw_lpm_besl_capable' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='689' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11185'>
+          <var-decl name='usb2_hw_lpm_enabled' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='690' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11186'>
+          <var-decl name='usb2_hw_lpm_allowed' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='691' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11187'>
+          <var-decl name='usb3_lpm_u1_enabled' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='692' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11188'>
+          <var-decl name='usb3_lpm_u2_enabled' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='693' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11200'>
+          <var-decl name='string_langid' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='694' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11264'>
+          <var-decl name='product' type-id='26a90f95' visibility='default' filepath='include/linux/usb.h' line='697' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11328'>
+          <var-decl name='manufacturer' type-id='26a90f95' visibility='default' filepath='include/linux/usb.h' line='698' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11392'>
+          <var-decl name='serial' type-id='26a90f95' visibility='default' filepath='include/linux/usb.h' line='699' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11456'>
+          <var-decl name='filelist' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='701' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11584'>
+          <var-decl name='maxchild' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='703' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11616'>
+          <var-decl name='quirks' type-id='19c2251e' visibility='default' filepath='include/linux/usb.h' line='705' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11648'>
+          <var-decl name='urbnum' type-id='49178f86' visibility='default' filepath='include/linux/usb.h' line='706' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11712'>
+          <var-decl name='active_duration' type-id='7359adad' visibility='default' filepath='include/linux/usb.h' line='708' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11776'>
+          <var-decl name='connect_time' type-id='7359adad' visibility='default' filepath='include/linux/usb.h' line='711' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11840'>
+          <var-decl name='do_remote_wakeup' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='713' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11841'>
+          <var-decl name='reset_resume' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='714' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11842'>
+          <var-decl name='port_is_suspended' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='715' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11904'>
+          <var-decl name='wusb_dev' type-id='ca0a9af6' visibility='default' filepath='include/linux/usb.h' line='717' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11968'>
+          <var-decl name='slot_id' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='718' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12000'>
+          <var-decl name='l1_params' type-id='07c4f5ca' visibility='default' filepath='include/linux/usb.h' line='719' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12064'>
+          <var-decl name='u1_params' type-id='34bd0a0b' visibility='default' filepath='include/linux/usb.h' line='720' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12192'>
+          <var-decl name='u2_params' type-id='34bd0a0b' visibility='default' filepath='include/linux/usb.h' line='721' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12320'>
+          <var-decl name='lpm_disable_count' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='722' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12352'>
+          <var-decl name='hub_delay' type-id='1dc6a898' visibility='default' filepath='include/linux/usb.h' line='724' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12368'>
+          <var-decl name='use_generic_driver' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='725' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12416'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='727' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12480'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='728' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12544'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='729' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12608'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='730' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='36ccbfa3' size-in-bits='64' id='39d0366f'/>
+      <function-type size-in-bits='64' id='39d64410'>
+        <parameter type-id='27675065'/>
+        <return type-id='27675065'/>
+      </function-type>
+      <pointer-type-def type-id='5415f247' size-in-bits='64' id='39d771f3'/>
+      <function-type size-in-bits='64' id='39d99179'>
+        <parameter type-id='c0ced320'/>
+        <parameter type-id='27675065'/>
+        <parameter type-id='526bed22'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='e4dc0de6' const='yes' id='39e12a1b'/>
+      <pointer-type-def type-id='545e9343' size-in-bits='64' id='39e20e4b'/>
+      <class-decl name='ZSTD_CDict_s' size-in-bits='256' is-struct='yes' visibility='default' filepath='lib/zstd/compress.c' line='2838' column='1' id='39e4bf1e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dictBuffer' type-id='eaa32e2f' visibility='default' filepath='lib/zstd/compress.c' line='2839' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dictContent' type-id='eaa32e2f' visibility='default' filepath='lib/zstd/compress.c' line='2840' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dictContentSize' type-id='b59d7dce' visibility='default' filepath='lib/zstd/compress.c' line='2841' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='refContext' type-id='2d633cf1' visibility='default' filepath='lib/zstd/compress.c' line='2842' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bed27c38' size-in-bits='64' id='39e52da2'/>
+      <array-type-def dimensions='1' type-id='28ee064c' size-in-bits='320' id='39e531ac'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='0f8f80b0' size-in-bits='384' id='39e8b9c8'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <class-decl name='free_area' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/mmzone.h' line='102' column='1' id='39ec6fe5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='free_list' type-id='e4e6d6c4' visibility='default' filepath='include/linux/mmzone.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='nr_free' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='104' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='39ed8dbe'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='f0acc909'/>
+        <return type-id='8f254b08'/>
+      </function-type>
+      <function-type size-in-bits='64' id='39ee7de5'>
+        <parameter type-id='2cb4dc09'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='3df9fd28'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='10781bfd' size-in-bits='64' id='39ee8359'/>
+      <array-type-def dimensions='1' type-id='c1c63dde' size-in-bits='10752' id='39f07796'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='39fc1af7'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='59a2e4aa' size-in-bits='64' id='3a0389d8'/>
+      <pointer-type-def type-id='1fc85394' size-in-bits='64' id='3a068a46'/>
+      <array-type-def dimensions='1' type-id='b99c00c9' size-in-bits='1600' id='3a06f3b2'>
+        <subrange length='25' type-id='7ff19f0f' id='41d5ddce'/>
+      </array-type-def>
+      <class-decl name='v4l2_window' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1192' column='1' id='3a0ab346'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='w' type-id='3dbd4e78' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='field' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='chromakey' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='clips' type-id='db634b6a' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='clipcount' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='bitmap' type-id='eaa32e2f' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='global_alpha' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1199' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3a0b2d1e'>
+        <parameter type-id='fc4f83c1'/>
+        <return type-id='4bdecfd7'/>
+      </function-type>
+      <pointer-type-def type-id='9f19269b' size-in-bits='64' id='3a0b4ecf'/>
+      <pointer-type-def type-id='02138eb3' size-in-bits='64' id='3a0c781f'/>
+      <pointer-type-def type-id='4e65adfa' size-in-bits='64' id='3a109e70'/>
+      <pointer-type-def type-id='05198978' size-in-bits='64' id='3a14a5ee'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/asm-generic/local.h' line='22' column='1' id='3a37ffcb' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='a' type-id='f22a8abb' visibility='default' filepath='include/asm-generic/local.h' line='24' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_pcm_mmap_control' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='581' column='1' id='3a3e1b69'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='__pad1' type-id='87567824' visibility='default' filepath='include/uapi/sound/asound.h' line='582' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='appl_ptr' type-id='df412e35' visibility='default' filepath='include/uapi/sound/asound.h' line='583' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='__pad2' type-id='87567824' visibility='default' filepath='include/uapi/sound/asound.h' line='584' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='__pad3' type-id='87567824' visibility='default' filepath='include/uapi/sound/asound.h' line='586' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='avail_min' type-id='df412e35' visibility='default' filepath='include/uapi/sound/asound.h' line='587' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='__pad4' type-id='7e3959e3' visibility='default' filepath='include/uapi/sound/asound.h' line='588' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='16ebfbba' size-in-bits='64' id='3a3e6b6c'/>
+      <class-decl name='ttm_resource_manager' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='118' column='1' id='3a3f2b05'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='use_type' type-id='b50a4934' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='use_tt' type-id='b50a4934' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='9c313c2d' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='func' type-id='52254183' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='move_lock' type-id='fb4018a0' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='lru' type-id='a8e1fb22' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='move' type-id='28271da3' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='137' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='3293d126' size-in-bits='144' id='3a4899d0'>
+        <subrange length='18' type-id='7ff19f0f' id='489127f2'/>
+      </array-type-def>
+      <pointer-type-def type-id='68a2869e' size-in-bits='64' id='3a498c74'/>
+      <pointer-type-def type-id='221461a6' size-in-bits='64' id='3a49ee4c'/>
+      <class-decl name='v4l2_ctrl_h264_scaling_matrix' size-in-bits='3840' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1398' column='1' id='3a58d3ba'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='scaling_list_4x4' type-id='9a59aaef' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='scaling_list_8x8' type-id='a112b67c' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1400' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3a5c2153'>
+        <parameter type-id='13103032'/>
+        <parameter type-id='5c0abad8'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='3a5cf22d'>
+        <parameter type-id='00cf0c80'/>
+        <parameter type-id='f06adae0'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='772264d0' size-in-bits='64' id='3a5ed4ca'/>
+      <function-type size-in-bits='64' id='3a60b114'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='1c079e60'/>
+        <parameter type-id='68a2d05b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='b95a5ed3' size-in-bits='64' id='3a639063'/>
+      <function-type size-in-bits='64' id='3a68020f'>
+        <parameter type-id='2bf16f59'/>
+        <parameter type-id='d3b23a45'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='bd54fe1a'/>
+      </function-type>
+      <pointer-type-def type-id='d45b1fc5' size-in-bits='64' id='3a73453d'/>
+      <class-decl name='seqcount' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/seqlock.h' line='65' column='1' id='3a74ff0b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sequence' type-id='f0981eeb' visibility='default' filepath='include/linux/seqlock.h' line='66' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='026dac7c' const='yes' id='3a7813d3'/>
+      <pointer-type-def type-id='b147ec14' size-in-bits='64' id='3a7e53b2'/>
+      <class-decl name='tcpc_dev' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/linux/usb/tcpm.h' line='126' column='1' id='3a8363f1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fwnode' type-id='4a935625' visibility='default' filepath='include/linux/usb/tcpm.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='init' type-id='f581f1cf' visibility='default' filepath='include/linux/usb/tcpm.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='get_vbus' type-id='f581f1cf' visibility='default' filepath='include/linux/usb/tcpm.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get_current_limit' type-id='f581f1cf' visibility='default' filepath='include/linux/usb/tcpm.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='set_cc' type-id='8a62cb71' visibility='default' filepath='include/linux/usb/tcpm.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='apply_rc' type-id='6d9ef725' visibility='default' filepath='include/linux/usb/tcpm.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='get_cc' type-id='fac661b7' visibility='default' filepath='include/linux/usb/tcpm.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='set_polarity' type-id='0123907b' visibility='default' filepath='include/linux/usb/tcpm.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='set_vconn' type-id='7f6ac72a' visibility='default' filepath='include/linux/usb/tcpm.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='set_vbus' type-id='7a202df3' visibility='default' filepath='include/linux/usb/tcpm.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='set_current_limit' type-id='f24f1c45' visibility='default' filepath='include/linux/usb/tcpm.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='set_pd_rx' type-id='7f6ac72a' visibility='default' filepath='include/linux/usb/tcpm.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='set_roles' type-id='8ca76d9f' visibility='default' filepath='include/linux/usb/tcpm.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='start_toggling' type-id='926bf87a' visibility='default' filepath='include/linux/usb/tcpm.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='try_role' type-id='e5015ca6' visibility='default' filepath='include/linux/usb/tcpm.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='pd_transmit' type-id='8930de61' visibility='default' filepath='include/linux/usb/tcpm.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='set_bist_data' type-id='7f6ac72a' visibility='default' filepath='include/linux/usb/tcpm.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='enable_frs' type-id='7f6ac72a' visibility='default' filepath='include/linux/usb/tcpm.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='frs_sourcing_vbus' type-id='2e6f075c' visibility='default' filepath='include/linux/usb/tcpm.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='enable_auto_vbus_discharge' type-id='7f6ac72a' visibility='default' filepath='include/linux/usb/tcpm.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='set_auto_vbus_discharge_threshold' type-id='53d4e65c' visibility='default' filepath='include/linux/usb/tcpm.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='is_vbus_vsafe0v' type-id='2bd70779' visibility='default' filepath='include/linux/usb/tcpm.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='set_partner_usb_comm_capable' type-id='ab2c5105' visibility='default' filepath='include/linux/usb/tcpm.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='check_contaminant' type-id='f581f1cf' visibility='default' filepath='include/linux/usb/tcpm.h' line='159' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4a3e84b3' size-in-bits='64' id='3a843513'/>
+      <qualified-type-def type-id='89d4ce3f' const='yes' id='3a8ead28'/>
+      <class-decl name='taskstats' size-in-bits='2816' is-struct='yes' visibility='default' filepath='include/uapi/linux/taskstats.h' line='41' column='1' id='3a97b64f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='version' type-id='d315442e' visibility='default' filepath='include/uapi/linux/taskstats.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ac_exitcode' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/taskstats.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ac_flag' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/taskstats.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='ac_nice' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/taskstats.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cpu_count' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cpu_delay_total' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='blkio_count' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='blkio_delay_total' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='swapin_count' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='swapin_delay_total' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='cpu_run_real_total' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='cpu_run_virtual_total' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='ac_comm' type-id='16dc656a' visibility='default' filepath='include/uapi/linux/taskstats.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='ac_sched' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/taskstats.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='904'>
+          <var-decl name='ac_pad' type-id='c216126b' visibility='default' filepath='include/uapi/linux/taskstats.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='ac_uid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/taskstats.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='ac_gid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/taskstats.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='ac_pid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/taskstats.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='ac_ppid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/taskstats.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='ac_btime' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/taskstats.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='ac_etime' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='ac_utime' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='ac_stime' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='ac_minflt' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='ac_majflt' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='coremem' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='virtmem' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='hiwater_rss' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='hiwater_vm' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='read_char' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='write_char' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='read_syscalls' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='write_syscalls' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='read_bytes' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='write_bytes' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='cancelled_write_bytes' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='nvcsw' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='nivcsw' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='ac_utimescaled' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='ac_stimescaled' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='cpu_scaled_run_real_total' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='freepages_count' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='freepages_delay_total' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='thrashing_count' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='thrashing_delay_total' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='ac_btime64' type-id='d3130597' visibility='default' filepath='include/uapi/linux/taskstats.h' line='174' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3aa04234'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='c5f0e96f'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='cc2d5b01' size-in-bits='64' id='3aa8795d'/>
+      <pointer-type-def type-id='cf8d7d81' size-in-bits='64' id='3aaeef89'/>
+      <qualified-type-def type-id='c571b65b' const='yes' id='3ab32f02'/>
+      <pointer-type-def type-id='fa4d7704' size-in-bits='64' id='3ab7d422'/>
+      <pointer-type-def type-id='b19a37ea' size-in-bits='64' id='3ab80864'/>
+      <class-decl name='audioformat' size-in-bits='896' is-struct='yes' visibility='default' filepath='sound/usb/card.h' line='14' column='1' id='3abbb22e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='sound/usb/card.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='formats' type-id='91ce1af9' visibility='default' filepath='sound/usb/card.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='channels' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='fmt_type' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='fmt_bits' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='frame_size' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='iface' type-id='002ac4a6' visibility='default' filepath='sound/usb/card.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='328'>
+          <var-decl name='altsetting' type-id='002ac4a6' visibility='default' filepath='sound/usb/card.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='336'>
+          <var-decl name='ep_idx' type-id='002ac4a6' visibility='default' filepath='sound/usb/card.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='344'>
+          <var-decl name='altset_idx' type-id='002ac4a6' visibility='default' filepath='sound/usb/card.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='attributes' type-id='002ac4a6' visibility='default' filepath='sound/usb/card.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='360'>
+          <var-decl name='endpoint' type-id='002ac4a6' visibility='default' filepath='sound/usb/card.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='368'>
+          <var-decl name='ep_attr' type-id='002ac4a6' visibility='default' filepath='sound/usb/card.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='376'>
+          <var-decl name='implicit_fb' type-id='b50a4934' visibility='default' filepath='sound/usb/card.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='sync_ep' type-id='002ac4a6' visibility='default' filepath='sound/usb/card.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='392'>
+          <var-decl name='sync_iface' type-id='002ac4a6' visibility='default' filepath='sound/usb/card.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='400'>
+          <var-decl name='sync_altsetting' type-id='002ac4a6' visibility='default' filepath='sound/usb/card.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='408'>
+          <var-decl name='sync_ep_idx' type-id='002ac4a6' visibility='default' filepath='sound/usb/card.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='datainterval' type-id='002ac4a6' visibility='default' filepath='sound/usb/card.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='424'>
+          <var-decl name='protocol' type-id='002ac4a6' visibility='default' filepath='sound/usb/card.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='maxpacksize' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='rates' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='rate_min' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='rate_max' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='nr_rates' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='rate_table' type-id='807869d3' visibility='default' filepath='sound/usb/card.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='clock' type-id='002ac4a6' visibility='default' filepath='sound/usb/card.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='chmap' type-id='a149768b' visibility='default' filepath='sound/usb/card.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='dsd_dop' type-id='b50a4934' visibility='default' filepath='sound/usb/card.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='840'>
+          <var-decl name='dsd_bitrev' type-id='b50a4934' visibility='default' filepath='sound/usb/card.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='848'>
+          <var-decl name='dsd_raw' type-id='b50a4934' visibility='default' filepath='sound/usb/card.h' line='44' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b440e872' size-in-bits='64' id='3ac36db0'/>
+      <pointer-type-def type-id='626191ca' size-in-bits='64' id='3ac60b54'/>
+      <class-decl name='rt_prio_array' size-in-bits='12928' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='256' column='1' id='3ac6deac'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bitmap' type-id='f05e8e77' visibility='default' filepath='kernel/sched/sched.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='queue' type-id='6f53db1b' visibility='default' filepath='kernel/sched/sched.h' line='258' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_event_crtc_sequence' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/drm/drm.h' line='1145' column='1' id='3aca1eaa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='9857a465' visibility='default' filepath='include/uapi/drm/drm.h' line='1146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='user_data' type-id='d3130597' visibility='default' filepath='include/uapi/drm/drm.h' line='1147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='time_ns' type-id='49659421' visibility='default' filepath='include/uapi/drm/drm.h' line='1148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sequence' type-id='d3130597' visibility='default' filepath='include/uapi/drm/drm.h' line='1149' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3ad2f92f'>
+        <parameter type-id='87447c2d'/>
+        <return type-id='b59d7dce'/>
+      </function-type>
+      <class-decl name='typec_partner_desc' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/usb/typec.h' line='203' column='1' id='3ad5d94d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='usb_pd' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/typec.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='accessory' type-id='357a6a78' visibility='default' filepath='include/linux/usb/typec.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='identity' type-id='09dbca85' visibility='default' filepath='include/linux/usb/typec.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pd_revision' type-id='1dc6a898' visibility='default' filepath='include/linux/usb/typec.h' line='207' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3adc0db9'>
+        <parameter type-id='30864cdc'/>
+        <parameter type-id='66d2e8f0'/>
+        <parameter type-id='9586cc7b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='3ae10cc4'>
+        <parameter type-id='00cf0c80'/>
+        <parameter type-id='f06adae0'/>
+        <parameter type-id='d5211638'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='drm_panel_funcs' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/drm/drm_panel.h' line='70' column='1' id='3ae2c39f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prepare' type-id='c3a1efbb' visibility='default' filepath='include/drm/drm_panel.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='enable' type-id='c3a1efbb' visibility='default' filepath='include/drm/drm_panel.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='disable' type-id='c3a1efbb' visibility='default' filepath='include/drm/drm_panel.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='unprepare' type-id='c3a1efbb' visibility='default' filepath='include/drm/drm_panel.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='get_modes' type-id='338f9102' visibility='default' filepath='include/drm/drm_panel.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='get_timings' type-id='2a614134' visibility='default' filepath='include/drm/drm_panel.h' line='126' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='87cad984' const='yes' id='3ae4e62d'/>
+      <class-decl name='thermal_cooling_device' size-in-bits='8448' is-struct='yes' visibility='default' filepath='include/linux/thermal.h' line='97' column='1' id='3ae87f87'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/thermal.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='type' type-id='26a90f95' visibility='default' filepath='include/linux/thermal.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='device' type-id='66e487eb' visibility='default' filepath='include/linux/thermal.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='np' type-id='9a537bbe' visibility='default' filepath='include/linux/thermal.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='devdata' type-id='eaa32e2f' visibility='default' filepath='include/linux/thermal.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='stats' type-id='eaa32e2f' visibility='default' filepath='include/linux/thermal.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='ops' type-id='6f4dc085' visibility='default' filepath='include/linux/thermal.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='updated' type-id='b50a4934' visibility='default' filepath='include/linux/thermal.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/linux/thermal.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='thermal_instances' type-id='72f469ec' visibility='default' filepath='include/linux/thermal.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/thermal.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8384'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/thermal.h' line='110' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6428f4eb' size-in-bits='64' id='3af234b7'/>
+      <function-type size-in-bits='64' id='3b03705e'>
+        <parameter type-id='2ae08426'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='8faf705a' size-in-bits='64' id='3b070d34'/>
+      <qualified-type-def type-id='09098b3b' const='yes' id='3b0abfc6'/>
+      <pointer-type-def type-id='bd4fb852' size-in-bits='64' id='3b0c4914'/>
+      <function-type size-in-bits='64' id='3b1012d7'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='kparam_array' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/moduleparam.h' line='92' column='1' id='3b156a69'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='max' type-id='f0981eeb' 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='f0981eeb' 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='807869d3' 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='99beed66' 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='eaa32e2f' visibility='default' filepath='include/linux/moduleparam.h' line='98' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3b22df33'>
+        <parameter type-id='37175e4d'/>
+        <parameter type-id='474e5dcc'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='95fe2b61' size-in-bits='64' id='3b230a09'/>
+      <pointer-type-def type-id='0506cdd8' size-in-bits='64' id='3b25b30a'/>
+      <function-type size-in-bits='64' id='3b28e6a8'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='cf0da35e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='usb_role_switch' size-in-bits='8128' is-struct='yes' visibility='default' filepath='drivers/usb/roles/class.c' line='19' column='1' id='3b2a0df7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='drivers/usb/roles/class.c' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='drivers/usb/roles/class.c' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='role' type-id='c675b073' visibility='default' filepath='drivers/usb/roles/class.c' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='usb2_port' type-id='fa0b179b' visibility='default' filepath='drivers/usb/roles/class.c' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='usb3_port' type-id='fa0b179b' visibility='default' filepath='drivers/usb/roles/class.c' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='udc' type-id='fa0b179b' visibility='default' filepath='drivers/usb/roles/class.c' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='set' type-id='265b58a4' visibility='default' filepath='drivers/usb/roles/class.c' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='get' type-id='3341a400' visibility='default' filepath='drivers/usb/roles/class.c' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='allow_userspace_control' type-id='b50a4934' visibility='default' filepath='drivers/usb/roles/class.c' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3e80a1bc' size-in-bits='64' id='3b2da7a6'/>
+      <class-decl name='iomap' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/iomap.h' line='82' column='1' id='3b326cb5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='91ce1af9' visibility='default' filepath='include/linux/iomap.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='offset' type-id='69bf7bee' visibility='default' filepath='include/linux/iomap.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='length' type-id='91ce1af9' visibility='default' filepath='include/linux/iomap.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='type' type-id='1dc6a898' visibility='default' filepath='include/linux/iomap.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='flags' type-id='1dc6a898' visibility='default' filepath='include/linux/iomap.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='bdev' type-id='b88dd945' visibility='default' filepath='include/linux/iomap.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dax_dev' type-id='75e6c41d' visibility='default' filepath='include/linux/iomap.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='inline_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/iomap.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='private' type-id='eaa32e2f' visibility='default' filepath='include/linux/iomap.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='page_ops' type-id='1fa5a86b' visibility='default' filepath='include/linux/iomap.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/iomap.h' line='94' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ttm_lru_bulk_move_pos' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/drm/ttm/ttm_bo_driver.h' line='56' column='1' id='3b3611a4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='first' type-id='9d57e433' visibility='default' filepath='include/drm/ttm/ttm_bo_driver.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='last' type-id='9d57e433' visibility='default' filepath='include/drm/ttm/ttm_bo_driver.h' line='58' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6831a786' size-in-bits='64' id='3b3fe200'/>
+      <pointer-type-def type-id='a353a0ed' size-in-bits='64' id='3b42a26d'/>
+      <function-type size-in-bits='64' id='3b43e527'>
+        <parameter type-id='29af9a71'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='req_flags_t' type-id='3f1a6b60' filepath='include/linux/blkdev.h' line='63' column='1' id='3b445e53'/>
+      <pointer-type-def type-id='82fca516' size-in-bits='64' id='3b472dd8'/>
+      <class-decl name='ttm_pool' size-in-bits='14912' is-struct='yes' visibility='default' filepath='include/drm/ttm/ttm_pool.h' line='67' column='1' id='3b497a4b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/drm/ttm/ttm_pool.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='use_dma_alloc' type-id='b50a4934' visibility='default' filepath='include/drm/ttm/ttm_pool.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='use_dma32' type-id='b50a4934' visibility='default' filepath='include/drm/ttm/ttm_pool.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='caching' type-id='b7bcaa67' visibility='default' filepath='include/drm/ttm/ttm_pool.h' line='75' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5e0713ae' size-in-bits='64' id='3b49ed88'/>
+      <pointer-type-def type-id='3f80a1ba' size-in-bits='64' id='3b590e48'/>
+      <pointer-type-def type-id='150dc81a' size-in-bits='64' id='3b5c2208'/>
+      <typedef-decl name='__signalfn_t' type-id='f712e2b7' filepath='include/uapi/asm-generic/signal-defs.h' line='82' column='1' id='3b5c61ad'/>
+      <function-type size-in-bits='64' id='3b5e43e5'>
+        <parameter type-id='442b8d89'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='bbeb954c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7c02f62f' size-in-bits='64' id='3b615603'/>
+      <function-type size-in-bits='64' id='3b6188e7'>
+        <parameter type-id='503ff1ba'/>
+        <parameter type-id='79ba09b7'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='899d22e6' size-in-bits='64' id='3b66ebb0'/>
+      <pointer-type-def type-id='6c6e2c82' size-in-bits='64' id='3b71056c'/>
+      <qualified-type-def type-id='0af737ca' const='yes' id='3b79f40f'/>
+      <pointer-type-def type-id='2bc124cb' size-in-bits='64' id='3b7e997b'/>
+      <function-type size-in-bits='64' id='3b7ef195'>
+        <parameter type-id='1c475548'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='pci_bus_addr_t' type-id='91ce1af9' filepath='include/linux/pci.h' line='787' column='1' id='3b8255e6'/>
+      <pointer-type-def type-id='5c32afaa' size-in-bits='64' id='3b8264a8'/>
+      <pointer-type-def type-id='f7f17df9' size-in-bits='64' id='3b8b42e1'/>
+      <class-decl name='ethtool_usrip4_spec' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='895' column='1' id='3b9817d8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ip4src' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ethtool.h' line='896' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ip4dst' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ethtool.h' line='897' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='l4_4_bytes' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ethtool.h' line='898' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='tos' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='899' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='ip_ver' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='900' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='proto' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='901' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cdd8abe6' size-in-bits='64' id='3b9da04c'/>
+      <function-type size-in-bits='64' id='3ba00442'>
+        <parameter type-id='49a58c0c'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='2966597b' size-in-bits='64' id='3ba48c9f'/>
+      <pointer-type-def type-id='dfed847a' size-in-bits='64' id='3ba5153c'/>
+      <pointer-type-def type-id='f54c6661' size-in-bits='64' id='3ba63619'/>
+      <pointer-type-def type-id='420b230d' size-in-bits='64' id='3ba771a1'/>
+      <function-type size-in-bits='64' id='3ba7892a'>
+        <parameter type-id='b9608bfc'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='dev_pm_opp' size-in-bits='896' is-struct='yes' visibility='default' filepath='drivers/opp/opp.h' line='74' column='1' id='3ba81dd0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='drivers/opp/opp.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='drivers/opp/opp.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='available' type-id='b50a4934' visibility='default' filepath='drivers/opp/opp.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='168'>
+          <var-decl name='dynamic' type-id='b50a4934' visibility='default' filepath='drivers/opp/opp.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='turbo' type-id='b50a4934' visibility='default' filepath='drivers/opp/opp.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='184'>
+          <var-decl name='suspend' type-id='b50a4934' visibility='default' filepath='drivers/opp/opp.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='removed' type-id='b50a4934' visibility='default' filepath='drivers/opp/opp.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='pstate' type-id='f0981eeb' visibility='default' filepath='drivers/opp/opp.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rate' type-id='7359adad' visibility='default' filepath='drivers/opp/opp.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='level' type-id='f0981eeb' visibility='default' filepath='drivers/opp/opp.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='supplies' type-id='614c5efc' visibility='default' filepath='drivers/opp/opp.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='bandwidth' type-id='df8629d6' visibility='default' filepath='drivers/opp/opp.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='clock_latency_ns' type-id='7359adad' visibility='default' filepath='drivers/opp/opp.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='required_opps' type-id='79c84484' visibility='default' filepath='drivers/opp/opp.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='opp_table' type-id='e62a60bd' visibility='default' filepath='drivers/opp/opp.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='np' type-id='9a537bbe' visibility='default' filepath='drivers/opp/opp.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='dentry' type-id='27675065' visibility='default' filepath='drivers/opp/opp.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='of_name' type-id='80f4b756' visibility='default' filepath='drivers/opp/opp.h' line='99' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3bb4887b'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='1abf108f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='drm_gem_object' size-in-bits='2752' is-struct='yes' visibility='default' filepath='include/drm/drm_gem.h' line='185' column='1' id='3bc524c0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='refcount' type-id='400fb07b' visibility='default' filepath='include/drm/drm_gem.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='handle_count' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_gem.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='8898134d' visibility='default' filepath='include/drm/drm_gem.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='filp' type-id='77e79a4b' visibility='default' filepath='include/drm/drm_gem.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='vma_node' type-id='743d7e52' visibility='default' filepath='include/drm/drm_gem.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='include/drm/drm_gem.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='name' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_gem.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='dma_buf' type-id='5e4f599b' visibility='default' filepath='include/drm/drm_gem.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='import_attach' type-id='e68e04c1' visibility='default' filepath='include/drm/drm_gem.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='resv' type-id='340cea9c' visibility='default' filepath='include/drm/drm_gem.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='_resv' type-id='d06fbf66' visibility='default' filepath='include/drm/drm_gem.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='funcs' type-id='3a73453d' visibility='default' filepath='include/drm/drm_gem.h' line='314' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_crtc_crc' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/drm/drm_debugfs_crc.h' line='53' column='1' id='3bcab18a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/drm/drm_debugfs_crc.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='source' type-id='80f4b756' visibility='default' filepath='include/drm/drm_debugfs_crc.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='opened' type-id='b50a4934' visibility='default' filepath='include/drm/drm_debugfs_crc.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='overflow' type-id='b50a4934' visibility='default' filepath='include/drm/drm_debugfs_crc.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='entries' type-id='54a031e1' visibility='default' filepath='include/drm/drm_debugfs_crc.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='head' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_debugfs_crc.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='tail' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_debugfs_crc.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='values_cnt' type-id='b59d7dce' visibility='default' filepath='include/drm/drm_debugfs_crc.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='wq' type-id='b5ab048f' visibility='default' filepath='include/drm/drm_debugfs_crc.h' line='60' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='i3c_device_info' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/i3c/device.h' line='118' column='1' id='3bd0350e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pid' type-id='91ce1af9' visibility='default' filepath='include/linux/i3c/device.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bcr' type-id='f9b06939' visibility='default' filepath='include/linux/i3c/device.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='dcr' type-id='f9b06939' visibility='default' filepath='include/linux/i3c/device.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='static_addr' type-id='f9b06939' visibility='default' filepath='include/linux/i3c/device.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='dyn_addr' type-id='f9b06939' visibility='default' filepath='include/linux/i3c/device.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='hdr_cap' type-id='f9b06939' visibility='default' filepath='include/linux/i3c/device.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='max_read_ds' type-id='f9b06939' visibility='default' filepath='include/linux/i3c/device.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='max_write_ds' type-id='f9b06939' visibility='default' filepath='include/linux/i3c/device.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='max_ibi_len' type-id='f9b06939' visibility='default' filepath='include/linux/i3c/device.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='max_read_turnaround' type-id='19c2251e' visibility='default' filepath='include/linux/i3c/device.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='max_read_len' type-id='1dc6a898' visibility='default' filepath='include/linux/i3c/device.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='max_write_len' type-id='1dc6a898' visibility='default' filepath='include/linux/i3c/device.h' line='130' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='dc3653c1' size-in-bits='64' id='3bd39365'/>
+      <function-type size-in-bits='64' id='3bd753d3'>
+        <parameter type-id='e2929c1c'/>
+        <return type-id='ac429605'/>
+      </function-type>
+      <function-type size-in-bits='64' id='3bdb8693'>
+        <parameter type-id='37175e4d'/>
+        <parameter type-id='b548c585'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d38c200b' size-in-bits='64' id='3bdbc3eb'/>
+      <qualified-type-def type-id='8efea9e5' const='yes' id='3beb2af4'/>
+      <pointer-type-def type-id='14bde5bf' size-in-bits='64' id='3bf0698f'/>
+      <class-decl name='pm_domain_data' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/pm_domain.h' line='189' column='1' id='3bf19710'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list_node' type-id='72f469ec' visibility='default' filepath='include/linux/pm_domain.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/pm_domain.h' line='191' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mbox_client' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/mailbox_client.h' line='29' column='1' id='3bf7d5b1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/mailbox_client.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tx_block' type-id='b50a4934' visibility='default' filepath='include/linux/mailbox_client.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tx_tout' type-id='7359adad' visibility='default' filepath='include/linux/mailbox_client.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='knows_txdone' type-id='b50a4934' visibility='default' filepath='include/linux/mailbox_client.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rx_callback' type-id='f0cadde6' visibility='default' filepath='include/linux/mailbox_client.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='tx_prepare' type-id='f0cadde6' visibility='default' filepath='include/linux/mailbox_client.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='tx_done' type-id='a16bb3cd' visibility='default' filepath='include/linux/mailbox_client.h' line='37' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fd66e479' size-in-bits='64' id='3bf96ea9'/>
+      <class-decl name='xfrm_tunnel' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/xfrm.h' line='1443' column='1' id='3c05ad89'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='handler' type-id='d2e00785' visibility='default' filepath='include/net/xfrm.h' line='1444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cb_handler' type-id='0aeca82c' visibility='default' filepath='include/net/xfrm.h' line='1445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='err_handler' type-id='5cacf26c' visibility='default' filepath='include/net/xfrm.h' line='1446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='next' type-id='f68cfba1' visibility='default' filepath='include/net/xfrm.h' line='1448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='priority' type-id='95e97e5e' visibility='default' filepath='include/net/xfrm.h' line='1449' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ufs_dev_params' size-in-bits='384' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshcd-pltfrm.h' line='13' column='1' id='3c0943b2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pwm_rx_gear' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd-pltfrm.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pwm_tx_gear' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd-pltfrm.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hs_rx_gear' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd-pltfrm.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='hs_tx_gear' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd-pltfrm.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rx_lanes' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd-pltfrm.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='tx_lanes' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd-pltfrm.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rx_pwr_pwm' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd-pltfrm.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='tx_pwr_pwm' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd-pltfrm.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rx_pwr_hs' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd-pltfrm.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='tx_pwr_hs' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd-pltfrm.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='hs_rate' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd-pltfrm.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='desired_working_mode' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd-pltfrm.h' line='25' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1161d058' size-in-bits='64' id='3c1aba32'/>
+      <enum-decl name='rpm_status' filepath='include/linux/pm.h' line='504' column='1' id='3c1b7fd8'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='RPM_ACTIVE' value='0'/>
+        <enumerator name='RPM_RESUMING' value='1'/>
+        <enumerator name='RPM_SUSPENDED' value='2'/>
+        <enumerator name='RPM_SUSPENDING' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='01edcafc' size-in-bits='64' id='3c2163ba'/>
+      <class-decl name='ip6t_ip6' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='64' column='1' id='3c253edc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='src' type-id='f6ed712a' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dst' type-id='f6ed712a' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='smsk' type-id='f6ed712a' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dmsk' type-id='f6ed712a' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='iniface' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='outiface' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='iniface_mask' type-id='92a46553' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='outiface_mask' type-id='92a46553' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='proto' type-id='d315442e' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1040'>
+          <var-decl name='tos' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1048'>
+          <var-decl name='flags' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='invflags' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='87' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3c2554e1'>
+        <parameter type-id='366d2695'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='773e8ab8' size-in-bits='64' id='3c269e0e'/>
+      <pointer-type-def type-id='4c772628' size-in-bits='64' id='3c28582e'/>
+      <pointer-type-def type-id='01bd77f3' size-in-bits='64' id='3c29ea97'/>
+      <pointer-type-def type-id='4c843043' size-in-bits='64' id='3c304633'/>
+      <pointer-type-def type-id='23ce80b7' size-in-bits='64' id='3c31c59b'/>
+      <pointer-type-def type-id='2d863538' size-in-bits='64' id='3c32f9de'/>
+      <pointer-type-def type-id='da0e76a0' size-in-bits='64' id='3c330066'/>
+      <class-decl name='ptp_clock_request' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='32' column='1' id='3c3d4c30'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='08f5ca1c' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab611' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='38' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='68f1b7bd' size-in-bits='64' id='3c3edc81'/>
+      <function-type size-in-bits='64' id='3c5fffe9'>
+        <parameter type-id='aeae13b9'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='ee28e0c7' size-in-bits='64' id='3c60c5fb'/>
+      <pointer-type-def type-id='d4a58841' size-in-bits='64' id='3c6ca22d'/>
+      <pointer-type-def type-id='c3f42608' size-in-bits='64' id='3c790822'/>
+      <qualified-type-def type-id='ad95e21b' const='yes' id='3c7ea80a'/>
+      <function-type size-in-bits='64' id='3c813efb'>
+        <parameter type-id='f772df6d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='014e0a24' size-in-bits='64' id='3c8a5f42'/>
+      <class-decl name='cec_adap_ops' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/media/cec.h' line='115' column='1' id='3c91c090'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='adap_enable' type-id='c42cb699' visibility='default' filepath='include/media/cec.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='adap_monitor_all_enable' type-id='c42cb699' visibility='default' filepath='include/media/cec.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='adap_monitor_pin_enable' type-id='c42cb699' visibility='default' filepath='include/media/cec.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='adap_log_addr' type-id='7b15200c' visibility='default' filepath='include/media/cec.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='adap_transmit' type-id='d5951000' visibility='default' filepath='include/media/cec.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='adap_status' type-id='c4365925' visibility='default' filepath='include/media/cec.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='adap_free' type-id='6dbc77f1' visibility='default' filepath='include/media/cec.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='error_inj_show' type-id='025f347e' visibility='default' filepath='include/media/cec.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='error_inj_parse_line' type-id='56c9c562' visibility='default' filepath='include/media/cec.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='received' type-id='6240ec2f' visibility='default' filepath='include/media/cec.h' line='131' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='sysinfo' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/uapi/linux/sysinfo.h' line='8' column='1' id='3c95971e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='uptime' type-id='6a11bd61' visibility='default' filepath='include/uapi/linux/sysinfo.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='loads' type-id='d371d064' visibility='default' filepath='include/uapi/linux/sysinfo.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='totalram' type-id='447da2ae' visibility='default' filepath='include/uapi/linux/sysinfo.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='freeram' type-id='447da2ae' visibility='default' filepath='include/uapi/linux/sysinfo.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='sharedram' type-id='447da2ae' visibility='default' filepath='include/uapi/linux/sysinfo.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='bufferram' type-id='447da2ae' visibility='default' filepath='include/uapi/linux/sysinfo.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='totalswap' type-id='447da2ae' visibility='default' filepath='include/uapi/linux/sysinfo.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='freeswap' type-id='447da2ae' visibility='default' filepath='include/uapi/linux/sysinfo.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='procs' type-id='d315442e' visibility='default' filepath='include/uapi/linux/sysinfo.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='656'>
+          <var-decl name='pad' type-id='d315442e' visibility='default' filepath='include/uapi/linux/sysinfo.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='totalhigh' type-id='447da2ae' visibility='default' filepath='include/uapi/linux/sysinfo.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='freehigh' type-id='447da2ae' visibility='default' filepath='include/uapi/linux/sysinfo.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='mem_unit' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/sysinfo.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='_f' type-id='e84913bd' visibility='default' filepath='include/uapi/linux/sysinfo.h' line='22' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='90bc6bed' size-in-bits='64' id='3ca207ec'/>
+      <pointer-type-def type-id='49dd9ce3' size-in-bits='64' id='3ca21ae3'/>
+      <pointer-type-def type-id='703a35bb' size-in-bits='64' id='3ca25343'/>
+      <pointer-type-def type-id='2d8e2e2d' size-in-bits='64' id='3ca5030d'/>
+      <function-type size-in-bits='64' id='3cab519e'>
+        <parameter type-id='db9d03e3'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='usb_interface_condition' filepath='include/linux/usb.h' line='97' column='1' id='3cabc9fc'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='USB_INTERFACE_UNBOUND' value='0'/>
+        <enumerator name='USB_INTERFACE_BINDING' value='1'/>
+        <enumerator name='USB_INTERFACE_BOUND' value='2'/>
+        <enumerator name='USB_INTERFACE_UNBINDING' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='f7e1259c' size-in-bits='64' id='3cad9e1a'/>
+      <class-decl name='user_fpsimd_state' size-in-bits='4224' is-struct='yes' visibility='default' filepath='arch/arm64/include/uapi/asm/ptrace.h' line='95' column='1' id='3cb82f3a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vregs' type-id='98f84070' visibility='default' filepath='arch/arm64/include/uapi/asm/ptrace.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='fpsr' type-id='3f1a6b60' visibility='default' filepath='arch/arm64/include/uapi/asm/ptrace.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4128'>
+          <var-decl name='fpcr' type-id='3f1a6b60' visibility='default' filepath='arch/arm64/include/uapi/asm/ptrace.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='__reserved' type-id='839e8989' visibility='default' filepath='arch/arm64/include/uapi/asm/ptrace.h' line='99' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pin_cookie' is-struct='yes' visibility='default' filepath='include/linux/lockdep_types.h' line='204' column='1' id='3cb90f9b'/>
+      <class-decl name='ieee802154_hw' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/mac802154.h' line='75' column='1' id='3cbdebaf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='extra_tx_headroom' type-id='95e97e5e' visibility='default' filepath='include/net/mac802154.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/mac802154.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='parent' type-id='fa0b179b' visibility='default' filepath='include/net/mac802154.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/net/mac802154.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='phy' type-id='82398c35' visibility='default' filepath='include/net/mac802154.h' line='83' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c9c16460' size-in-bits='64' id='3cbeb812'/>
+      <qualified-type-def type-id='4c993ea6' const='yes' id='3cc19423'/>
+      <pointer-type-def type-id='015799ac' size-in-bits='64' id='3cc81bea'/>
+      <pointer-type-def type-id='f68e0adc' size-in-bits='64' id='3cc8739a'/>
+      <pointer-type-def type-id='bd54fe1a' size-in-bits='64' id='3ccc2590'/>
+      <pointer-type-def type-id='277029da' size-in-bits='64' id='3cce524c'/>
+      <class-decl name='drm_encoder_helper_funcs' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='509' column='1' id='3cdc7e32'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dpms' type-id='0b72aa63' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='526' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mode_valid' type-id='a3a882dc' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='559' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mode_fixup' type-id='375f8cba' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='602' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='prepare' type-id='ac9d10e4' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='619' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='commit' type-id='ac9d10e4' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='634' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mode_set' type-id='a6426b1c' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='658' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='atomic_mode_set' type-id='e15f707f' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='681' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='detect' type-id='69099556' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='700' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='atomic_disable' type-id='1da45ab3' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='723' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='atomic_enable' type-id='1da45ab3' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='746' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='disable' type-id='ac9d10e4' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='780' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='enable' type-id='ac9d10e4' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='798' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='atomic_check' type-id='21e51c00' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='836' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='46eaf6b3' size-in-bits='64' id='3ce232db'/>
+      <pointer-type-def type-id='c21690c0' size-in-bits='64' id='3ce3447a'/>
+      <class-decl name='wireless_dev' size-in-bits='19072' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='6086' column='1' id='3ce3a3e9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='wiphy' type-id='666fb412' visibility='default' filepath='include/net/cfg80211.h' line='6087' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='iftype' type-id='86505f90' visibility='default' filepath='include/net/cfg80211.h' line='6088' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6091' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='netdev' type-id='68a2d05b' visibility='default' filepath='include/net/cfg80211.h' line='6092' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='identifier' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6094' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='mgmt_registrations' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6096' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='mgmt_registrations_need_update' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6097' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='mtx' type-id='925167dc' visibility='default' filepath='include/net/cfg80211.h' line='6099' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='use_4addr' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='968'>
+          <var-decl name='is_running' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='976'>
+          <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='984'>
+          <var-decl name='registering' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='address' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='conn' type-id='6dbc8e18' visibility='default' filepath='include/net/cfg80211.h' line='6106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='connect_keys' type-id='561a36db' visibility='default' filepath='include/net/cfg80211.h' line='6107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='conn_bss_type' type-id='cb952348' visibility='default' filepath='include/net/cfg80211.h' line='6108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='conn_owner_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='disconnect_wk' type-id='ef9025d0' visibility='default' filepath='include/net/cfg80211.h' line='6111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='disconnect_bssid' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='event_list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='event_lock' type-id='fb4018a0' visibility='default' filepath='include/net/cfg80211.h' line='6115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1888'>
+          <var-decl name='connected' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1896'>
+          <var-decl name='ps' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='ps_timeout' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='6120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1952'>
+          <var-decl name='ap_unexpected_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='owner_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2016'>
+          <var-decl name='nl_owner_dead' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2024'>
+          <var-decl name='cac_started' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='cac_start_time' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='6129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='cac_time_ms' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='6130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='cqm_config' type-id='ee527710' visibility='default' filepath='include/net/cfg80211.h' line='6148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='pmsr_list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='pmsr_lock' type-id='fb4018a0' visibility='default' filepath='include/net/cfg80211.h' line='6151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='pmsr_free_wk' type-id='ef9025d0' visibility='default' filepath='include/net/cfg80211.h' line='6152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='unprot_beacon_reported' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='6154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='u' type-id='ac5ab68a' visibility='default' filepath='include/net/cfg80211.h' line='6184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='links' type-id='4cb7c55c' visibility='default' filepath='include/net/cfg80211.h' line='6197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18240'>
+          <var-decl name='valid_links' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='6198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18304'>
+          <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18368'>
+          <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18432'>
+          <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18496'>
+          <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18560'>
+          <var-decl name='android_backport_reserved5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18624'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18688'>
+          <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18752'>
+          <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18816'>
+          <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18880'>
+          <var-decl name='android_vendor_data5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18944'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19008'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6213' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='coupling_desc' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/regulator/driver.h' line='591' column='1' id='3ce445fe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='coupled_rdevs' type-id='f4c93d58' visibility='default' filepath='include/linux/regulator/driver.h' line='592' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='coupler' type-id='d1347205' visibility='default' filepath='include/linux/regulator/driver.h' line='593' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='n_resolved' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/driver.h' line='594' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='n_coupled' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/driver.h' line='595' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='1a0c5572' const='yes' id='3cea21ed'/>
+      <pointer-type-def type-id='7fdfc457' size-in-bits='64' id='3cf0497b'/>
+      <pointer-type-def type-id='8e3d9a4b' size-in-bits='64' id='3cf704a7'/>
+      <enum-decl name='device_removable' filepath='include/linux/device.h' line='354' column='1' id='3d0327bc'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEVICE_REMOVABLE_NOT_SUPPORTED' value='0'/>
+        <enumerator name='DEVICE_REMOVABLE_UNKNOWN' value='1'/>
+        <enumerator name='DEVICE_FIXED' value='2'/>
+        <enumerator name='DEVICE_REMOVABLE' value='3'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='3d03784e'>
+        <parameter type-id='00ee50b8'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='f0acc909'/>
+        <return type-id='8f254b08'/>
+      </function-type>
+      <class-decl name='klist_node' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/klist.h' line='37' column='1' id='3d045a53'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='n_klist' type-id='eaa32e2f' visibility='default' filepath='include/linux/klist.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='n_node' type-id='72f469ec' visibility='default' filepath='include/linux/klist.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='n_ref' type-id='400fb07b' visibility='default' filepath='include/linux/klist.h' line='40' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c39df2b8' size-in-bits='64' id='3d15880e'/>
+      <pointer-type-def type-id='563595d9' size-in-bits='64' id='3d1f4971'/>
+      <qualified-type-def type-id='469df90e' const='yes' id='3d24528f'/>
+      <pointer-type-def type-id='2e5f4f0f' size-in-bits='64' id='3d287e03'/>
+      <class-decl name='netns_xfrm' size-in-bits='7680' is-struct='yes' visibility='default' filepath='include/net/netns/xfrm.h' line='33' column='1' id='3d2d291b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='state_all' type-id='72f469ec' visibility='default' filepath='include/net/netns/xfrm.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='state_bydst' type-id='030d0b18' visibility='default' filepath='include/net/netns/xfrm.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='state_bysrc' type-id='030d0b18' visibility='default' filepath='include/net/netns/xfrm.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='state_byspi' type-id='030d0b18' visibility='default' filepath='include/net/netns/xfrm.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='state_byseq' type-id='030d0b18' visibility='default' filepath='include/net/netns/xfrm.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='state_hmask' type-id='f0981eeb' visibility='default' filepath='include/net/netns/xfrm.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='state_num' type-id='f0981eeb' visibility='default' filepath='include/net/netns/xfrm.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='state_hash_work' type-id='ef9025d0' visibility='default' filepath='include/net/netns/xfrm.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='policy_all' type-id='72f469ec' visibility='default' filepath='include/net/netns/xfrm.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='policy_byidx' type-id='030d0b18' visibility='default' filepath='include/net/netns/xfrm.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='policy_idx_hmask' type-id='f0981eeb' visibility='default' filepath='include/net/netns/xfrm.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='policy_inexact' type-id='fc293b5f' visibility='default' filepath='include/net/netns/xfrm.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='policy_bydst' type-id='bd1ec77b' visibility='default' filepath='include/net/netns/xfrm.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='policy_count' type-id='0d5c291d' visibility='default' filepath='include/net/netns/xfrm.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='policy_hash_work' type-id='ef9025d0' visibility='default' filepath='include/net/netns/xfrm.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='policy_hthresh' type-id='52aaaba4' visibility='default' filepath='include/net/netns/xfrm.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='inexact_bins' type-id='72f469ec' visibility='default' filepath='include/net/netns/xfrm.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='nlsk' type-id='f772df6d' visibility='default' filepath='include/net/netns/xfrm.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='nlsk_stash' type-id='f772df6d' visibility='default' filepath='include/net/netns/xfrm.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='sysctl_aevent_etime' type-id='19c2251e' visibility='default' filepath='include/net/netns/xfrm.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3040'>
+          <var-decl name='sysctl_aevent_rseqth' type-id='19c2251e' visibility='default' filepath='include/net/netns/xfrm.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='sysctl_larval_drop' type-id='95e97e5e' visibility='default' filepath='include/net/netns/xfrm.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3104'>
+          <var-decl name='sysctl_acq_expires' type-id='19c2251e' visibility='default' filepath='include/net/netns/xfrm.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='policy_default' type-id='930ea9f9' visibility='default' filepath='include/net/netns/xfrm.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='sysctl_hdr' type-id='11b101bb' visibility='default' filepath='include/net/netns/xfrm.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='xfrm4_dst_ops' type-id='32358857' visibility='default' filepath='include/net/netns/xfrm.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='xfrm6_dst_ops' type-id='32358857' visibility='default' filepath='include/net/netns/xfrm.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6656'>
+          <var-decl name='xfrm_state_lock' type-id='fb4018a0' visibility='default' filepath='include/net/netns/xfrm.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6688'>
+          <var-decl name='xfrm_state_hash_generation' type-id='0b9c5397' visibility='default' filepath='include/net/netns/xfrm.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6720'>
+          <var-decl name='xfrm_policy_hash_generation' type-id='0b9c5397' visibility='default' filepath='include/net/netns/xfrm.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6752'>
+          <var-decl name='xfrm_policy_lock' type-id='fb4018a0' visibility='default' filepath='include/net/netns/xfrm.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6784'>
+          <var-decl name='xfrm_cfg_mutex' type-id='925167dc' visibility='default' filepath='include/net/netns/xfrm.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7168'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/netns/xfrm.h' line='87' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='xdp_dev_bulk_queue' is-struct='yes' visibility='default' is-declaration-only='yes' id='3d34ccf8'/>
+      <pointer-type-def type-id='7983eff8' size-in-bits='64' id='3d444e9a'/>
+      <pointer-type-def type-id='155948e4' size-in-bits='64' id='3d4ca6d2'/>
+      <pointer-type-def type-id='84096265' size-in-bits='64' id='3d4f6569'/>
+      <pointer-type-def type-id='3ba7892a' size-in-bits='64' id='3d52c694'/>
+      <pointer-type-def type-id='5d16c291' size-in-bits='64' id='3d5afe0d'/>
+      <function-type size-in-bits='64' id='3d5d0103'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='68a2d05b'/>
+        <return type-id='1dc6a898'/>
+      </function-type>
+      <qualified-type-def type-id='5919d6b5' const='yes' id='3d647412'/>
+      <function-type size-in-bits='64' id='3d684a5a'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='72789b30'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='netns_sysctl_lowpan' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/netns/ieee802154_6lowpan.h' line='11' column='1' id='3d6c0b76'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='frags_hdr' type-id='11b101bb' visibility='default' filepath='include/net/netns/ieee802154_6lowpan.h' line='13' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='972398b7' size-in-bits='64' id='3d6e005b'/>
+      <pointer-type-def type-id='024a8f8b' size-in-bits='64' id='3d7033ef'/>
+      <function-type size-in-bits='64' id='3d709624'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='692d176e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='a25ce1be' const='yes' id='3d71d2d7'/>
+      <function-type size-in-bits='64' id='3d75b067'>
+        <parameter type-id='8898134d'/>
+        <parameter type-id='e3dd029e'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='media_device_ops' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/media/media-device.h' line='65' column='1' id='3d78e975'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='link_notify' type-id='c4d81ddd' visibility='default' filepath='include/media/media-device.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='req_alloc' type-id='58b0d2ef' visibility='default' filepath='include/media/media-device.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='req_free' type-id='5e611ec0' visibility='default' filepath='include/media/media-device.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='req_validate' type-id='82ec1389' visibility='default' filepath='include/media/media-device.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='req_queue' type-id='5e611ec0' visibility='default' filepath='include/media/media-device.h' line='71' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8f725b86' size-in-bits='64' id='3d802c7c'/>
+      <function-type size-in-bits='64' id='3d8098a3'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='cf536864'/>
+        <parameter type-id='cf536864'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='3d84df46'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='745b39e8'/>
+        <return type-id='4fb62cb0'/>
+      </function-type>
+      <enum-decl name='clock_event_state' filepath='include/linux/clockchips.h' line='35' column='1' id='3d8b7ef7'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='CLOCK_EVT_STATE_DETACHED' value='0'/>
+        <enumerator name='CLOCK_EVT_STATE_SHUTDOWN' value='1'/>
+        <enumerator name='CLOCK_EVT_STATE_PERIODIC' value='2'/>
+        <enumerator name='CLOCK_EVT_STATE_ONESHOT' value='3'/>
+        <enumerator name='CLOCK_EVT_STATE_ONESHOT_STOPPED' value='4'/>
+      </enum-decl>
+      <class-decl name='xhci_stream_ctx' size-in-bits='128' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='829' column='1' id='3d90a2b0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='stream_ring' type-id='a30e8d1f' visibility='default' filepath='drivers/usb/host/xhci.h' line='831' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reserved' type-id='df700ea3' visibility='default' filepath='drivers/usb/host/xhci.h' line='833' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8470101c' size-in-bits='64' id='3d95b5f6'/>
+      <typedef-decl name='__kernel_time64_t' type-id='1eb56b1e' filepath='include/uapi/asm-generic/posix_types.h' line='93' column='1' id='3d9e85cc'/>
+      <pointer-type-def type-id='ceee71ca' size-in-bits='64' id='3dad1a48'/>
+      <class-decl name='i2c_device_id' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/mod_devicetable.h' line='464' column='1' id='3db54816'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='664ac0b7' visibility='default' filepath='include/linux/mod_devicetable.h' line='465' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='driver_data' type-id='0791d6c8' visibility='default' filepath='include/linux/mod_devicetable.h' line='466' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='em_data_callback' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/energy_model.h' line='72' column='1' id='3dba7a06'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='active_power' type-id='7d0644b5' visibility='default' filepath='include/linux/energy_model.h' line='92' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3dbb7e50'>
+        <parameter type-id='f8dc9def'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='v4l2_rect' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='412' column='1' id='3dbd4e78'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='left' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='413' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='top' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='415' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='416' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='83c3d80a' size-in-bits='64' id='3dc18b9c'/>
+      <pointer-type-def type-id='d3638b22' size-in-bits='64' id='3dc7db80'/>
+      <pointer-type-def type-id='4bbe36cb' size-in-bits='64' id='3dcc4acf'/>
+      <pointer-type-def type-id='36cf98aa' size-in-bits='64' id='3ddec21c'/>
+      <pointer-type-def type-id='d96066b0' size-in-bits='64' id='3de177aa'/>
+      <pointer-type-def type-id='21872e57' size-in-bits='64' id='3de28d43'/>
+      <function-type size-in-bits='64' id='3de312fc'>
+        <parameter type-id='7544e824'/>
+        <parameter type-id='9a537bbe'/>
+        <parameter type-id='385b8018'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ip6_sf_socklist' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/if_inet6.h' line='86' column='1' id='3df0f7af'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sl_max' type-id='f0981eeb' visibility='default' filepath='include/net/if_inet6.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='sl_count' type-id='f0981eeb' visibility='default' filepath='include/net/if_inet6.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/if_inet6.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sl_addr' type-id='0fdf6c82' visibility='default' filepath='include/net/if_inet6.h' line='90' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='17f9ad66' size-in-bits='64' id='3df34728'/>
+      <pointer-type-def type-id='91ce1af9' size-in-bits='64' id='3df9fd28'/>
+      <class-decl name='drm_property_blob' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/drm/drm_property.h' line='216' column='1' id='3dfb1294'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='350f4182' visibility='default' filepath='include/drm/drm_property.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dev' type-id='8898134d' visibility='default' filepath='include/drm/drm_property.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='head_global' type-id='72f469ec' visibility='default' filepath='include/drm/drm_property.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='head_file' type-id='72f469ec' visibility='default' filepath='include/drm/drm_property.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='length' type-id='b59d7dce' visibility='default' filepath='include/drm/drm_property.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/drm/drm_property.h' line='222' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='xhci_tt_bw_info' size-in-bits='5568' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1058' column='1' id='3e02e52d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tt_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/xhci.h' line='1059' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='slot_id' type-id='95e97e5e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1060' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='ttport' type-id='95e97e5e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1061' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bw_table' type-id='2acb65d8' visibility='default' filepath='drivers/usb/host/xhci.h' line='1062' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='active_eps' type-id='95e97e5e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1063' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3e0660a2'>
+        <parameter type-id='ca9354d1'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='arch_msi_msg_data_t' type-id='a1e62158' filepath='include/linux/msi.h' line='25' column='1' id='3e0ab710'/>
+      <class-decl name='dev_power_governor' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/pm_domain.h' line='84' column='1' id='3e115181'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='power_down_ok' type-id='cb27da0d' visibility='default' filepath='include/linux/pm_domain.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='suspend_ok' type-id='df4bf537' visibility='default' filepath='include/linux/pm_domain.h' line='86' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ff3151a1' size-in-bits='64' id='3e15391d'/>
+      <pointer-type-def type-id='a47d3467' size-in-bits='64' id='3e195537'/>
+      <function-type size-in-bits='64' id='3e1d184a'>
+        <parameter type-id='f1397309'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='3e1ff33b'>
+        <parameter type-id='11777d05'/>
+        <parameter type-id='4151733d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='99e9d9d9' size-in-bits='64' id='3e221989'/>
+      <pointer-type-def type-id='15df0404' size-in-bits='64' id='3e22b2b6'/>
+      <pointer-type-def type-id='abd62a96' size-in-bits='64' id='3e2545f4'/>
+      <function-type size-in-bits='64' id='3e298e69'>
+        <parameter type-id='fc4f83c1'/>
+        <parameter type-id='ab85b8f2'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='12cfd48b' size-in-bits='64' id='3e2bb973'/>
+      <pointer-type-def type-id='d42dfd68' size-in-bits='64' id='3e2efc02'/>
+      <pointer-type-def type-id='a9cdb48b' size-in-bits='64' id='3e31633b'/>
+      <function-type size-in-bits='64' id='3e33342a'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='78932bbc' size-in-bits='64' id='3e34b3ae'/>
+      <array-type-def dimensions='1' type-id='e4a73b37' size-in-bits='1024' id='3e3c9632'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <pointer-type-def type-id='3b2a0df7' size-in-bits='64' id='3e3cd44f'/>
+      <qualified-type-def type-id='caca298d' const='yes' id='3e448446'/>
+      <pointer-type-def type-id='f6667371' size-in-bits='64' id='3e479841'/>
+      <function-type size-in-bits='64' id='3e493f49'>
+        <parameter type-id='9d7e7820'/>
+        <parameter type-id='7efbcaaf'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='3e497762'>
+        <parameter type-id='72bb8c36'/>
+        <parameter type-id='bbaf3419'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='__key_reference_with_attributes' is-struct='yes' visibility='default' is-declaration-only='yes' id='3e4a5ebb'/>
+      <function-type size-in-bits='64' id='3e570d92'>
+        <parameter type-id='17862576'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='4a06e68e'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c315836a' size-in-bits='64' id='3e5cde94'/>
+      <pointer-type-def type-id='e7d8509c' size-in-bits='64' id='3e610606'/>
+      <pointer-type-def type-id='3cab519e' size-in-bits='64' id='3e643710'/>
+      <pointer-type-def type-id='32f8fd62' size-in-bits='64' id='3e644294'/>
+      <class-decl name='snd_soc_tplg_bytes_ext_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/sound/soc-topology.h' line='87' column='1' id='3e689ce7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='19c2251e' visibility='default' filepath='include/sound/soc-topology.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='get' type-id='f0dd4a3b' visibility='default' filepath='include/sound/soc-topology.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='put' type-id='f517dc88' visibility='default' filepath='include/sound/soc-topology.h' line='91' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='200520c4' size-in-bits='64' id='3e6ac796'/>
+      <function-type size-in-bits='64' id='3e6beeda'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='22f86351' size-in-bits='64' id='3e6eb939'/>
+      <pointer-type-def type-id='2f162548' size-in-bits='64' id='3e77f659'/>
+      <function-type size-in-bits='64' id='3e7a7dc5'>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='3e80a1bc'>
+        <parameter type-id='42c8f564'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <class-decl name='compstat' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/ppp_defs.h' line='117' column='1' id='3e92d9e8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='unc_bytes' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ppp_defs.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='unc_packets' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ppp_defs.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='comp_bytes' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ppp_defs.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='comp_packets' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ppp_defs.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='inc_bytes' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ppp_defs.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='inc_packets' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ppp_defs.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='in_count' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ppp_defs.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='bytes_out' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ppp_defs.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ratio' type-id='a0eb0f08' visibility='default' filepath='include/uapi/linux/ppp_defs.h' line='129' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='44583a18' size-in-bits='64' id='3e950302'/>
+      <pointer-type-def type-id='add714bf' size-in-bits='64' id='3e95668f'/>
+      <enum-decl name='nvdimm_fwa_capability' filepath='include/linux/libnvdimm.h' line='216' column='1' id='3e99d2ab'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NVDIMM_FWA_CAP_INVALID' value='0'/>
+        <enumerator name='NVDIMM_FWA_CAP_NONE' value='1'/>
+        <enumerator name='NVDIMM_FWA_CAP_QUIESCE' value='2'/>
+        <enumerator name='NVDIMM_FWA_CAP_LIVE' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='3bdb8693' size-in-bits='64' id='3e9b5e67'/>
+      <pointer-type-def type-id='2cfafd1c' size-in-bits='64' id='3e9fac96'/>
+      <class-decl name='devfreq_event_ops' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/devfreq-event.h' line='65' column='1' id='3ea0d50a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='enable' type-id='17b93571' visibility='default' filepath='include/linux/devfreq-event.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='disable' type-id='17b93571' visibility='default' filepath='include/linux/devfreq-event.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='reset' type-id='17b93571' visibility='default' filepath='include/linux/devfreq-event.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='set_event' type-id='17b93571' visibility='default' filepath='include/linux/devfreq-event.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='get_event' type-id='ae6a6d9a' visibility='default' filepath='include/linux/devfreq-event.h' line='73' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='dev_pm_ops' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/linux/pm.h' line='278' column='1' id='3ea82289'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prepare' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='complete' type-id='dd787f72' visibility='default' filepath='include/linux/pm.h' line='280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='suspend' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='resume' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='freeze' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='thaw' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='poweroff' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='restore' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='suspend_late' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='287' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='resume_early' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='freeze_late' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='thaw_early' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='poweroff_late' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='restore_early' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='suspend_noirq' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='resume_noirq' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='freeze_noirq' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='thaw_noirq' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='poweroff_noirq' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='restore_noirq' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='runtime_suspend' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='299' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='runtime_resume' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='runtime_idle' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/pm.h' line='303' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='nl80211_band' filepath='include/uapi/linux/nl80211.h' line='5295' column='1' id='3eaa0294'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NL80211_BAND_2GHZ' value='0'/>
+        <enumerator name='NL80211_BAND_5GHZ' value='1'/>
+        <enumerator name='NL80211_BAND_60GHZ' value='2'/>
+        <enumerator name='NL80211_BAND_6GHZ' value='3'/>
+        <enumerator name='NL80211_BAND_S1GHZ' value='4'/>
+        <enumerator name='NL80211_BAND_LC' value='5'/>
+        <enumerator name='NUM_NL80211_BANDS' value='6'/>
+      </enum-decl>
+      <pointer-type-def type-id='501579d1' size-in-bits='64' id='3eb4a20d'/>
+      <typedef-decl name='gfp_t' type-id='f0981eeb' filepath='include/linux/types.h' line='148' column='1' id='3eb7c31c'/>
+      <class-decl name='swap_info_struct' size-in-bits='2368' is-struct='yes' visibility='default' filepath='include/linux/swap.h' line='252' column='1' id='3eb82749'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='users' type-id='818799b4' visibility='default' filepath='include/linux/swap.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/swap.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='prio' type-id='a2185560' visibility='default' filepath='include/linux/swap.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='list' type-id='e3a91a7c' visibility='default' filepath='include/linux/swap.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='type' type-id='28577a57' visibility='default' filepath='include/linux/swap.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='max' type-id='f0981eeb' visibility='default' filepath='include/linux/swap.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='swap_map' type-id='cf536864' visibility='default' filepath='include/linux/swap.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='cluster_info' type-id='96ae6b2e' visibility='default' filepath='include/linux/swap.h' line='260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='free_clusters' type-id='07d9955c' visibility='default' filepath='include/linux/swap.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='lowest_bit' type-id='f0981eeb' visibility='default' filepath='include/linux/swap.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='highest_bit' type-id='f0981eeb' visibility='default' filepath='include/linux/swap.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='pages' type-id='f0981eeb' visibility='default' filepath='include/linux/swap.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='inuse_pages' type-id='f0981eeb' visibility='default' filepath='include/linux/swap.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='cluster_next' type-id='f0981eeb' visibility='default' filepath='include/linux/swap.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='cluster_nr' type-id='f0981eeb' visibility='default' filepath='include/linux/swap.h' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='cluster_next_cpu' type-id='807869d3' visibility='default' filepath='include/linux/swap.h' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='percpu_cluster' type-id='5417cc83' visibility='default' filepath='include/linux/swap.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='swap_extent_root' type-id='dec44472' visibility='default' filepath='include/linux/swap.h' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='bdev' type-id='b88dd945' visibility='default' filepath='include/linux/swap.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='swap_file' type-id='77e79a4b' visibility='default' filepath='include/linux/swap.h' line='272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='old_block_size' type-id='f0981eeb' visibility='default' filepath='include/linux/swap.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='comp' type-id='f9fef04f' visibility='default' filepath='include/linux/swap.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/swap.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1760'>
+          <var-decl name='cont_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/swap.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='discard_work' type-id='ef9025d0' visibility='default' filepath='include/linux/swap.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='discard_clusters' type-id='07d9955c' visibility='default' filepath='include/linux/swap.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/linux/swap.h' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='avail_lists' type-id='250ecbd0' visibility='default' filepath='include/linux/swap.h' line='299' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='02cfdfcf' size-in-bits='64' id='3eb84c27'/>
+      <class-decl name='macsec_secy' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/net/macsec.h' line='214' column='1' id='3ebb2302'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='netdev' type-id='68a2d05b' visibility='default' filepath='include/net/macsec.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='n_rx_sc' type-id='f0981eeb' visibility='default' filepath='include/net/macsec.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sci' type-id='8c0f9db2' visibility='default' filepath='include/net/macsec.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='key_len' type-id='1dc6a898' visibility='default' filepath='include/net/macsec.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='icv_len' type-id='1dc6a898' visibility='default' filepath='include/net/macsec.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='validate_frames' type-id='cf33b9c3' visibility='default' filepath='include/net/macsec.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='xpn' type-id='b50a4934' visibility='default' filepath='include/net/macsec.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='264'>
+          <var-decl name='operational' type-id='b50a4934' visibility='default' filepath='include/net/macsec.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='protect_frames' type-id='b50a4934' visibility='default' filepath='include/net/macsec.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='280'>
+          <var-decl name='replay_protect' type-id='b50a4934' visibility='default' filepath='include/net/macsec.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='replay_window' type-id='19c2251e' visibility='default' filepath='include/net/macsec.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='tx_sc' type-id='fa1382bd' visibility='default' filepath='include/net/macsec.h' line='226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='rx_sc' type-id='ec973d27' visibility='default' filepath='include/net/macsec.h' line='227' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3ec9b040'>
+        <parameter type-id='e5411c2c'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='26236645' size-in-bits='infinite' id='3ecd3c6d'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='8b28624a' size-in-bits='64' id='3ed0c5ec'/>
+      <class-decl name='hid_field' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='459' column='1' id='3ede3949'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='physical' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='logical' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='461' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='application' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='462' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='usage' type-id='d586c6cc' visibility='default' filepath='include/linux/hid.h' line='463' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='maxusage' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='464' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='465' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='report_offset' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='466' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='report_size' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='467' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='report_count' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='468' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='report_type' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='469' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='value' type-id='a5f29c61' visibility='default' filepath='include/linux/hid.h' line='470' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='logical_minimum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='471' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='logical_maximum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='472' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='physical_minimum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='473' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='physical_maximum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='474' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='unit_exponent' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='475' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='unit' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='476' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='report' type-id='5b4284d1' visibility='default' filepath='include/linux/hid.h' line='477' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='478' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='hidinput' type-id='b548c585' visibility='default' filepath='include/linux/hid.h' line='480' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='dpad' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='481' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='47308153' size-in-bits='64' id='3eef3bc7'/>
+      <pointer-type-def type-id='1227fbe9' size-in-bits='64' id='3ef2bf11'/>
+      <class-decl name='nh_info' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/net/nexthop.h' line='57' column='1' id='3f017308'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev_hash' type-id='03a4a074' visibility='default' filepath='include/net/nexthop.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='nh_parent' type-id='f32120a7' visibility='default' filepath='include/net/nexthop.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='family' type-id='f9b06939' visibility='default' filepath='include/net/nexthop.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='reject_nh' type-id='b50a4934' visibility='default' filepath='include/net/nexthop.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='fdb_nh' type-id='b50a4934' visibility='default' filepath='include/net/nexthop.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='' type-id='ac5ab5c7' visibility='default' filepath='include/net/nexthop.h' line='65' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3f0a3b53'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='4983ea36'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='3f0e361b'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='02f11ed4'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='9e440830' size-in-bits='64' id='3f18c0ee'/>
+      <typedef-decl name='__u32' type-id='f0981eeb' filepath='include/uapi/asm-generic/int-ll64.h' line='27' column='1' id='3f1a6b60'/>
+      <class-decl name='ieee80211_sta_s1g_cap' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='515' column='1' id='3f1c81a3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='s1g' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='516' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='cap' type-id='097504df' visibility='default' filepath='include/net/cfg80211.h' line='517' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='nss_mcs' type-id='8f1320db' visibility='default' filepath='include/net/cfg80211.h' line='518' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3f1e8582'>
+        <parameter type-id='5264cf1d'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='bf3ef905' size-in-bits='64' id='3f2244fd'/>
+      <pointer-type-def type-id='c3b52303' size-in-bits='64' id='3f26598b'/>
+      <class-decl name='irqtime' size-in-bits='192' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='2836' column='1' id='3f278a28'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='total' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='2837' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tick_delta' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='2838' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='irq_start_time' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='2839' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sync' type-id='e4d85780' visibility='default' filepath='kernel/sched/sched.h' line='2840' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='849373e7' size-in-bits='64' id='3f29b13b'/>
+      <pointer-type-def type-id='889b9d08' size-in-bits='64' id='3f2d9c8e'/>
+      <pointer-type-def type-id='1b7bde03' size-in-bits='64' id='3f32f1d2'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/asm-generic/pgtable-nop4d.h' line='9' column='1' id='3f3a2344' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pgd' type-id='12aa8ce4' visibility='default' filepath='include/asm-generic/pgtable-nop4d.h' line='9' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1236501b' size-in-bits='64' id='3f3e1f0b'/>
+      <pointer-type-def type-id='09d6e909' size-in-bits='64' id='3f40b771'/>
+      <pointer-type-def type-id='b43b0dce' size-in-bits='64' id='3f4455c4'/>
+      <pointer-type-def type-id='b2d67803' size-in-bits='64' id='3f45614f'/>
+      <class-decl name='ttm_place' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/drm/ttm/ttm_placement.h' line='65' column='1' id='3f4ad3b4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fpfn' type-id='f0981eeb' visibility='default' filepath='include/drm/ttm/ttm_placement.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='lpfn' type-id='f0981eeb' visibility='default' filepath='include/drm/ttm/ttm_placement.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mem_type' type-id='8f92235e' visibility='default' filepath='include/drm/ttm/ttm_placement.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='8f92235e' visibility='default' filepath='include/drm/ttm/ttm_placement.h' line='69' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='netlink_range_validation' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/netlink.h' line='189' column='1' id='3f4b2250'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='min' type-id='91ce1af9' visibility='default' filepath='include/net/netlink.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max' type-id='91ce1af9' visibility='default' filepath='include/net/netlink.h' line='190' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3f4fbc09'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='61d12d26'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='59fa7bb0' size-in-bits='64' id='3f50936e'/>
+      <class-decl name='drm_crtc' size-in-bits='13312' is-struct='yes' visibility='default' filepath='include/drm/drm_crtc.h' line='946' column='1' id='3f5f978b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='8898134d' visibility='default' filepath='include/drm/drm_crtc.h' line='948' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='port' type-id='9a537bbe' visibility='default' filepath='include/drm/drm_crtc.h' line='950' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='head' type-id='72f469ec' visibility='default' filepath='include/drm/drm_crtc.h' line='958' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/drm/drm_crtc.h' line='961' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mutex' type-id='ae5fc04a' visibility='default' filepath='include/drm/drm_crtc.h' line='973' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='base' type-id='350f4182' visibility='default' filepath='include/drm/drm_crtc.h' line='976' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='primary' type-id='a6711537' visibility='default' filepath='include/drm/drm_crtc.h' line='985' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='cursor' type-id='a6711537' visibility='default' filepath='include/drm/drm_crtc.h' line='994' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_crtc.h' line='1000' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='cursor_x' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_crtc.h' line='1009' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='cursor_y' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_crtc.h' line='1017' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='enabled' type-id='b50a4934' visibility='default' filepath='include/drm/drm_crtc.h' line='1027' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='mode' type-id='55efd1a3' visibility='default' filepath='include/drm/drm_crtc.h' line='1037' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='hwmode' type-id='55efd1a3' visibility='default' filepath='include/drm/drm_crtc.h' line='1053' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='x' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_crtc.h' line='1062' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3360'>
+          <var-decl name='y' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_crtc.h' line='1070' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='funcs' type-id='7236c5c8' visibility='default' filepath='include/drm/drm_crtc.h' line='1073' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='gamma_size' type-id='8f92235e' visibility='default' filepath='include/drm/drm_crtc.h' line='1079' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='gamma_store' type-id='8a121f49' visibility='default' filepath='include/drm/drm_crtc.h' line='1085' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='helper_private' type-id='423f39eb' visibility='default' filepath='include/drm/drm_crtc.h' line='1088' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='properties' type-id='970d3828' visibility='default' filepath='include/drm/drm_crtc.h' line='1091' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11904'>
+          <var-decl name='scaling_filter_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_crtc.h' line='1097' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11968'>
+          <var-decl name='state' type-id='35078cb9' visibility='default' filepath='include/drm/drm_crtc.h' line='1112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12032'>
+          <var-decl name='commit_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_crtc.h' line='1129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12160'>
+          <var-decl name='commit_lock' type-id='fb4018a0' visibility='default' filepath='include/drm/drm_crtc.h' line='1136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12224'>
+          <var-decl name='debugfs_entry' type-id='27675065' visibility='default' filepath='include/drm/drm_crtc.h' line='1144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12288'>
+          <var-decl name='crc' type-id='3bcab18a' visibility='default' filepath='include/drm/drm_crtc.h' line='1152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12864'>
+          <var-decl name='fence_context' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_crtc.h' line='1159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12896'>
+          <var-decl name='fence_lock' type-id='fb4018a0' visibility='default' filepath='include/drm/drm_crtc.h' line='1166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12928'>
+          <var-decl name='fence_seqno' type-id='7359adad' visibility='default' filepath='include/drm/drm_crtc.h' line='1173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12992'>
+          <var-decl name='timeline_name' type-id='16dc656a' visibility='default' filepath='include/drm/drm_crtc.h' line='1180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13248'>
+          <var-decl name='self_refresh_data' type-id='fa013de0' visibility='default' filepath='include/drm/drm_crtc.h' line='1187' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='kunit_try_catch' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/kunit/try-catch.h' line='46' column='1' id='3f64023a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='test' type-id='ab7389f2' visibility='default' filepath='include/kunit/try-catch.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='try_completion' type-id='389faaf7' visibility='default' filepath='include/kunit/try-catch.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='try_result' type-id='95e97e5e' visibility='default' filepath='include/kunit/try-catch.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='try' type-id='446bd00b' visibility='default' filepath='include/kunit/try-catch.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='catch' type-id='446bd00b' visibility='default' filepath='include/kunit/try-catch.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='context' type-id='eaa32e2f' visibility='default' filepath='include/kunit/try-catch.h' line='53' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8e5ae04f' size-in-bits='64' id='3f646ae7'/>
+      <typedef-decl name='local_lock_t' type-id='1b2343c1' filepath='include/linux/local_lock_internal.h' line='16' column='1' id='3f67630c'/>
+      <class-decl name='devfreq_cooling_power' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/devfreq_cooling.h' line='37' column='1' id='3f6ca798'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='get_real_power' type-id='d4cfedac' visibility='default' filepath='include/linux/devfreq_cooling.h' line='38' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='03a4a074' size-in-bits='512' id='3f6e320a'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <class-decl name='uart_icount' size-in-bits='352' is-struct='yes' visibility='default' filepath='include/linux/serial_core.h' line='93' column='1' id='3f76087c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cts' type-id='3f1a6b60' visibility='default' filepath='include/linux/serial_core.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='dsr' type-id='3f1a6b60' visibility='default' filepath='include/linux/serial_core.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rng' type-id='3f1a6b60' visibility='default' filepath='include/linux/serial_core.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='dcd' type-id='3f1a6b60' visibility='default' filepath='include/linux/serial_core.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rx' type-id='3f1a6b60' visibility='default' filepath='include/linux/serial_core.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='tx' type-id='3f1a6b60' visibility='default' filepath='include/linux/serial_core.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='frame' type-id='3f1a6b60' visibility='default' filepath='include/linux/serial_core.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='overrun' type-id='3f1a6b60' visibility='default' filepath='include/linux/serial_core.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='parity' type-id='3f1a6b60' visibility='default' filepath='include/linux/serial_core.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='brk' type-id='3f1a6b60' visibility='default' filepath='include/linux/serial_core.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='buf_overrun' type-id='3f1a6b60' visibility='default' filepath='include/linux/serial_core.h' line='104' column='1'/>
+        </data-member>
+      </class-decl>
+      <union-decl name='v4l2_ctrl_ptr' size-in-bits='64' visibility='default' filepath='include/media/v4l2-ctrls.h' line='63' column='1' id='3f78e6a9'>
+        <data-member access='public'>
+          <var-decl name='p_s32' type-id='9f2cce4b' visibility='default' filepath='include/media/v4l2-ctrls.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_s64' type-id='842ac8d6' visibility='default' filepath='include/media/v4l2-ctrls.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_u8' type-id='8bff8096' visibility='default' filepath='include/media/v4l2-ctrls.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_u16' type-id='26d4d46f' visibility='default' filepath='include/media/v4l2-ctrls.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_u32' type-id='f9409001' visibility='default' filepath='include/media/v4l2-ctrls.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_char' type-id='26a90f95' visibility='default' filepath='include/media/v4l2-ctrls.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_mpeg2_sequence' type-id='ff9d06eb' visibility='default' filepath='include/media/v4l2-ctrls.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_mpeg2_picture' type-id='9ffa96ee' visibility='default' filepath='include/media/v4l2-ctrls.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_mpeg2_quantisation' type-id='8860b094' visibility='default' filepath='include/media/v4l2-ctrls.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_fwht_params' type-id='efba361c' visibility='default' filepath='include/media/v4l2-ctrls.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_h264_sps' type-id='b9348c47' visibility='default' filepath='include/media/v4l2-ctrls.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_h264_pps' type-id='91e3ab68' visibility='default' filepath='include/media/v4l2-ctrls.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_h264_scaling_matrix' type-id='f7e7b3e8' visibility='default' filepath='include/media/v4l2-ctrls.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_h264_slice_params' type-id='0541bcde' visibility='default' filepath='include/media/v4l2-ctrls.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_h264_decode_params' type-id='47cb2abc' visibility='default' filepath='include/media/v4l2-ctrls.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_h264_pred_weights' type-id='e699de6a' visibility='default' filepath='include/media/v4l2-ctrls.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_vp8_frame' type-id='25b4f1ae' visibility='default' filepath='include/media/v4l2-ctrls.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_hevc_sps' type-id='112f0343' visibility='default' filepath='include/media/v4l2-ctrls.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_hevc_pps' type-id='f9de3b94' visibility='default' filepath='include/media/v4l2-ctrls.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_hevc_slice_params' type-id='2948bd22' visibility='default' filepath='include/media/v4l2-ctrls.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_hdr10_cll' type-id='6f3d9488' visibility='default' filepath='include/media/v4l2-ctrls.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_hdr10_mastering' type-id='48fb164f' visibility='default' filepath='include/media/v4l2-ctrls.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_area' type-id='26385187' visibility='default' filepath='include/media/v4l2-ctrls.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p' type-id='eaa32e2f' visibility='default' filepath='include/media/v4l2-ctrls.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_const' type-id='eaa32e2f' visibility='default' filepath='include/media/v4l2-ctrls.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/media/v4l2-ctrls.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/media/v4l2-ctrls.h' line='91' column='1'/>
+        </data-member>
+      </union-decl>
+      <enum-decl name='device_link_state' filepath='include/linux/device.h' line='299' column='1' id='3f7ac0c9'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DL_STATE_NONE' value='-1'/>
+        <enumerator name='DL_STATE_DORMANT' value='0'/>
+        <enumerator name='DL_STATE_AVAILABLE' value='1'/>
+        <enumerator name='DL_STATE_CONSUMER_PROBE' value='2'/>
+        <enumerator name='DL_STATE_ACTIVE' value='3'/>
+        <enumerator name='DL_STATE_SUPPLIER_UNBIND' value='4'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='3f7bc138'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='20fece6a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='3f7e2e74'>
+        <parameter type-id='0cb0b26f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='mmc_ios' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/linux/mmc/host.h' line='23' column='1' id='3f80a1ba'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='clock' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='vdd' type-id='8efea9e5' visibility='default' filepath='include/linux/mmc/host.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='power_delay_ms' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='bus_mode' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/host.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='chip_select' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/host.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='power_mode' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/host.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='bus_width' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/host.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='timing' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/host.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='signal_voltage' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/host.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='drv_type' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/host.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='enhanced_strobe' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/host.h' line='83' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='f67e137c' size-in-bits='infinite' id='3f814540'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='cff07063' size-in-bits='64' id='3f8b2ed3'/>
+      <class-decl name='dma_buf_ops' size-in-bits='1152' is-struct='yes' visibility='default' filepath='include/linux/dma-buf.h' line='38' column='1' id='3f8b3d98'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cache_sgt_mapping' type-id='b50a4934' visibility='default' filepath='include/linux/dma-buf.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='attach' type-id='b512ba7d' visibility='default' filepath='include/linux/dma-buf.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='detach' type-id='f191792a' visibility='default' filepath='include/linux/dma-buf.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pin' type-id='70828d03' visibility='default' filepath='include/linux/dma-buf.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='unpin' type-id='213608e4' visibility='default' filepath='include/linux/dma-buf.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='map_dma_buf' type-id='2d7508a9' visibility='default' filepath='include/linux/dma-buf.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='unmap_dma_buf' type-id='0b475e59' visibility='default' filepath='include/linux/dma-buf.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='release' type-id='4e7b299a' visibility='default' filepath='include/linux/dma-buf.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='begin_cpu_access' type-id='127a97dd' visibility='default' filepath='include/linux/dma-buf.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='begin_cpu_access_partial' type-id='5299fb35' visibility='default' filepath='include/linux/dma-buf.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='end_cpu_access' type-id='127a97dd' visibility='default' filepath='include/linux/dma-buf.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='end_cpu_access_partial' type-id='5299fb35' visibility='default' filepath='include/linux/dma-buf.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='mmap' type-id='68074686' visibility='default' filepath='include/linux/dma-buf.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='vmap' type-id='94aa3aee' visibility='default' filepath='include/linux/dma-buf.h' line='345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='vunmap' type-id='8319c9c7' visibility='default' filepath='include/linux/dma-buf.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='get_flags' type-id='97a03e57' visibility='default' filepath='include/linux/dma-buf.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/dma-buf.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/dma-buf.h' line='363' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='3f9037c9'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='5e192634' size-in-bits='64' id='3f97013a'/>
+      <pointer-type-def type-id='79a0948f' size-in-bits='64' id='3f9bbdb6'/>
+      <function-type size-in-bits='64' id='3f9db80e'>
+        <parameter type-id='478ed79d'/>
+        <parameter type-id='35078cb9'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='3f1a6b60' size-in-bits='96' id='3fa05d14'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='3f1a6b60' size-in-bits='128' id='3fa29bab'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='3fa9acd9'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='e3dd029e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='power_supply_battery_ocv_table' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/power_supply.h' line='346' column='1' id='3faa6906'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ocv' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='capacity' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='348' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='3f1a6b60' size-in-bits='224' id='3faaea70'>
+        <subrange length='7' type-id='7ff19f0f' id='16fc326e'/>
+      </array-type-def>
+      <pointer-type-def type-id='86af1d10' size-in-bits='64' id='3fab024e'/>
+      <enum-decl name='gro_result' filepath='include/linux/netdevice.h' line='383' column='1' id='3facc5aa'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='GRO_MERGED' value='0'/>
+        <enumerator name='GRO_MERGED_FREE' value='1'/>
+        <enumerator name='GRO_HELD' value='2'/>
+        <enumerator name='GRO_NORMAL' value='3'/>
+        <enumerator name='GRO_CONSUMED' value='4'/>
+      </enum-decl>
+      <pointer-type-def type-id='f508b3a9' size-in-bits='64' id='3fb29739'/>
+      <typedef-decl name='dma_cap_mask_t' type-id='20526710' filepath='include/linux/dmaengine.h' line='231' column='1' id='3fb29acd'/>
+      <pointer-type-def type-id='e4d537fa' size-in-bits='64' id='3fb740ac'/>
+      <class-decl name='range' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/range.h' line='6' column='1' id='3fbb40da'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='91ce1af9' visibility='default' filepath='include/linux/range.h' line='7' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='end' type-id='91ce1af9' visibility='default' filepath='include/linux/range.h' line='8' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ctl_table_set' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/sysctl.h' line='168' column='1' id='3fc3d262'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='is_seen' type-id='35e8c658' visibility='default' filepath='include/linux/sysctl.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dir' type-id='7c7d6006' visibility='default' filepath='include/linux/sysctl.h' line='170' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3e92d9e8' size-in-bits='64' id='3fc786be'/>
+      <class-decl name='fscrypt_master_key_secret' size-in-bits='1152' is-struct='yes' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='446' column='1' id='3fc794fa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hkdf' type-id='05015f68' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='19c2251e' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='459' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='is_hw_wrapped' type-id='b50a4934' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='462' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='raw' type-id='7f475abd' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='469' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6634c3c6' size-in-bits='64' id='3fccea10'/>
+      <function-type size-in-bits='64' id='3fdac390'>
+        <parameter type-id='74b427eb'/>
+        <parameter type-id='df3f4fce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='da4cc8f3' size-in-bits='64' id='3fdf7ca3'/>
+      <function-type size-in-bits='64' id='3fe3822d'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='31f59912'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='hdmi_audio_coding_type' filepath='include/linux/hdmi.h' line='260' column='1' id='3fe6d7c3'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_STREAM' value='0'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_PCM' value='1'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_AC3' value='2'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_MPEG1' value='3'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_MP3' value='4'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_MPEG2' value='5'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_AAC_LC' value='6'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_DTS' value='7'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_ATRAC' value='8'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_DSD' value='9'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_EAC3' value='10'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_DTS_HD' value='11'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_MLP' value='12'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_DST' value='13'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_WMA_PRO' value='14'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_CXT' value='15'/>
+      </enum-decl>
+      <pointer-type-def type-id='380397d5' size-in-bits='64' id='3fec7331'/>
+      <pointer-type-def type-id='19f1c953' size-in-bits='64' id='3fefe9b7'/>
+      <typedef-decl name='int32_t' type-id='a7832498' filepath='include/linux/types.h' line='98' column='1' id='3ff5601b'/>
+      <class-decl name='ip_ct_tcp' size-in-bits='480' is-struct='yes' visibility='default' filepath='include/linux/netfilter/nf_conntrack_tcp.h' line='17' column='1' id='3ffb049e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='seen' type-id='80542108' visibility='default' filepath='include/linux/netfilter/nf_conntrack_tcp.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='state' type-id='892641a4' visibility='default' filepath='include/linux/netfilter/nf_conntrack_tcp.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='328'>
+          <var-decl name='last_dir' type-id='892641a4' visibility='default' filepath='include/linux/netfilter/nf_conntrack_tcp.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='336'>
+          <var-decl name='retrans' type-id='892641a4' visibility='default' filepath='include/linux/netfilter/nf_conntrack_tcp.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='344'>
+          <var-decl name='last_index' type-id='892641a4' visibility='default' filepath='include/linux/netfilter/nf_conntrack_tcp.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='last_seq' type-id='9586cc7b' visibility='default' filepath='include/linux/netfilter/nf_conntrack_tcp.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='last_ack' type-id='9586cc7b' visibility='default' filepath='include/linux/netfilter/nf_conntrack_tcp.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='last_end' type-id='9586cc7b' visibility='default' filepath='include/linux/netfilter/nf_conntrack_tcp.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='last_win' type-id='ea2e3595' visibility='default' filepath='include/linux/netfilter/nf_conntrack_tcp.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='464'>
+          <var-decl name='last_wscale' type-id='892641a4' visibility='default' filepath='include/linux/netfilter/nf_conntrack_tcp.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='472'>
+          <var-decl name='last_flags' type-id='892641a4' visibility='default' filepath='include/linux/netfilter/nf_conntrack_tcp.h' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_frequency_band' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1955' column='1' id='400ed05a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tuner' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1956' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1957' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='index' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1958' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='capability' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1959' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rangelow' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1960' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='rangehigh' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1961' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='modulation' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1962' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='reserved' type-id='43885e7a' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1963' 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='400fb07b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='refcount' type-id='64615833' visibility='default' filepath='include/linux/kref.h' line='20' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ac165296' size-in-bits='64' id='401eb95c'/>
+      <class-decl name='ufs_pa_layer_attr' size-in-bits='224' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='285' column='1' id='4020579d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='gear_rx' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='gear_tx' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='287' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='lane_rx' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='lane_tx' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pwr_rx' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='pwr_tx' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hs_rate' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='292' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bbc46580' size-in-bits='64' id='402c0a9e'/>
+      <qualified-type-def type-id='4fcc4597' const='yes' id='40308fd2'/>
+      <pointer-type-def type-id='4ad5b81b' size-in-bits='64' id='40309edb'/>
+      <function-type size-in-bits='64' id='4033dd6b'>
+        <parameter type-id='b9af02c3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='37f6d957' size-in-bits='64' id='40363cbb'/>
+      <function-type size-in-bits='64' id='403b94d1'>
+        <parameter type-id='9d57e433'/>
+        <parameter type-id='1d36520e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4041f6de'>
+        <parameter type-id='78e7cf52'/>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='ZSTD_dStage' type-id='a6336802' filepath='lib/zstd/decompress.c' line='66' column='1' id='4048b40e'/>
+      <pointer-type-def type-id='82084f52' size-in-bits='64' id='404b1300'/>
+      <pointer-type-def type-id='9a08a831' size-in-bits='64' id='404d559d'/>
+      <function-type size-in-bits='64' id='405001ce'>
+        <parameter type-id='5771c601'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='2f04a816' size-in-bits='64' id='4054d674'/>
+      <pointer-type-def type-id='0eae882e' size-in-bits='64' id='40629354'/>
+      <pointer-type-def type-id='b4db8337' size-in-bits='64' id='40672f7b'/>
+      <pointer-type-def type-id='9c19dcfc' size-in-bits='64' id='406bf30f'/>
+      <qualified-type-def type-id='164a08b2' const='yes' id='406e1a09'/>
+      <pointer-type-def type-id='3a3f2b05' size-in-bits='64' id='40735a95'/>
+      <class-decl name='sdio_func' size-in-bits='7936' is-struct='yes' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='34' column='1' id='4073d265'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='card' type-id='13d38dcb' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='irq_handler' type-id='1d186b8b' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='num' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7456'>
+          <var-decl name='class' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7472'>
+          <var-decl name='vendor' type-id='8efea9e5' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='device' type-id='8efea9e5' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7520'>
+          <var-decl name='max_blksize' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='cur_blksize' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7584'>
+          <var-decl name='enable_timeout' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='state' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='tmpbuf' type-id='8bff8096' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='major_rev' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7752'>
+          <var-decl name='minor_rev' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7776'>
+          <var-decl name='num_info' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='info' type-id='7d3cd834' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='tuples' type-id='e5932b8e' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='59' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9fdb75a6' size-in-bits='64' id='4077272c'/>
+      <pointer-type-def type-id='50e956a4' size-in-bits='64' id='4079d8fe'/>
+      <class-decl name='rproc' size-in-bits='11520' is-struct='yes' visibility='default' filepath='include/linux/remoteproc.h' line='533' column='1' id='40822039'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/remoteproc.h' line='534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='domain' type-id='bff05edb' visibility='default' filepath='include/linux/remoteproc.h' line='535' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/remoteproc.h' line='536' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='firmware' type-id='80f4b756' visibility='default' filepath='include/linux/remoteproc.h' line='537' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/remoteproc.h' line='538' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ops' type-id='c79d9b20' visibility='default' filepath='include/linux/remoteproc.h' line='539' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/remoteproc.h' line='540' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='power' type-id='49178f86' visibility='default' filepath='include/linux/remoteproc.h' line='541' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7776'>
+          <var-decl name='state' type-id='f0981eeb' visibility='default' filepath='include/linux/remoteproc.h' line='542' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='dump_conf' type-id='49d2161f' visibility='default' filepath='include/linux/remoteproc.h' line='543' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/linux/remoteproc.h' line='544' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='dbg_dir' type-id='27675065' visibility='default' filepath='include/linux/remoteproc.h' line='545' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='traces' type-id='72f469ec' visibility='default' filepath='include/linux/remoteproc.h' line='546' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8448'>
+          <var-decl name='num_traces' type-id='95e97e5e' visibility='default' filepath='include/linux/remoteproc.h' line='547' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='carveouts' type-id='72f469ec' visibility='default' filepath='include/linux/remoteproc.h' line='548' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='mappings' type-id='72f469ec' visibility='default' filepath='include/linux/remoteproc.h' line='549' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8768'>
+          <var-decl name='bootaddr' type-id='91ce1af9' visibility='default' filepath='include/linux/remoteproc.h' line='550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8832'>
+          <var-decl name='rvdevs' type-id='72f469ec' visibility='default' filepath='include/linux/remoteproc.h' line='551' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8960'>
+          <var-decl name='subdevs' type-id='72f469ec' visibility='default' filepath='include/linux/remoteproc.h' line='552' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9088'>
+          <var-decl name='notifyids' type-id='37ce495e' visibility='default' filepath='include/linux/remoteproc.h' line='553' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9280'>
+          <var-decl name='index' type-id='95e97e5e' visibility='default' filepath='include/linux/remoteproc.h' line='554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='crash_handler' type-id='ef9025d0' visibility='default' filepath='include/linux/remoteproc.h' line='555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9728'>
+          <var-decl name='crash_cnt' type-id='f0981eeb' visibility='default' filepath='include/linux/remoteproc.h' line='556' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9760'>
+          <var-decl name='recovery_disabled' type-id='b50a4934' visibility='default' filepath='include/linux/remoteproc.h' line='557' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9792'>
+          <var-decl name='max_notifyid' type-id='95e97e5e' visibility='default' filepath='include/linux/remoteproc.h' line='558' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9856'>
+          <var-decl name='table_ptr' type-id='954953c8' visibility='default' filepath='include/linux/remoteproc.h' line='559' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9920'>
+          <var-decl name='clean_table' type-id='954953c8' visibility='default' filepath='include/linux/remoteproc.h' line='560' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9984'>
+          <var-decl name='cached_table' type-id='954953c8' visibility='default' filepath='include/linux/remoteproc.h' line='561' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10048'>
+          <var-decl name='table_sz' type-id='b59d7dce' visibility='default' filepath='include/linux/remoteproc.h' line='562' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10112'>
+          <var-decl name='has_iommu' type-id='b50a4934' visibility='default' filepath='include/linux/remoteproc.h' line='563' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10120'>
+          <var-decl name='auto_boot' type-id='b50a4934' visibility='default' filepath='include/linux/remoteproc.h' line='564' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10176'>
+          <var-decl name='dump_segments' type-id='72f469ec' visibility='default' filepath='include/linux/remoteproc.h' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10304'>
+          <var-decl name='nb_vdev' type-id='95e97e5e' visibility='default' filepath='include/linux/remoteproc.h' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10336'>
+          <var-decl name='elf_class' type-id='f9b06939' visibility='default' filepath='include/linux/remoteproc.h' line='567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10352'>
+          <var-decl name='elf_machine' type-id='1dc6a898' visibility='default' filepath='include/linux/remoteproc.h' line='568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10368'>
+          <var-decl name='cdev' type-id='22f86351' visibility='default' filepath='include/linux/remoteproc.h' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11456'>
+          <var-decl name='cdev_put_on_release' type-id='b50a4934' visibility='default' filepath='include/linux/remoteproc.h' line='570' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='aaa8d90f' size-in-bits='64' id='40825cfb'/>
+      <typedef-decl name='usb_complete_t' type-id='79dbccfb' filepath='include/linux/usb.h' line='1412' column='1' id='4086973b'/>
+      <function-type size-in-bits='64' id='40877b8a'>
+        <parameter type-id='abd62a96'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ip_tunnel_info' is-struct='yes' visibility='default' is-declaration-only='yes' id='4093cbd8'/>
+      <class-decl name='rpmsg_device_id' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/mod_devicetable.h' line='454' column='1' id='40980961'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/linux/mod_devicetable.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='driver_data' type-id='0791d6c8' visibility='default' filepath='include/linux/mod_devicetable.h' line='456' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c9ea62cc' size-in-bits='64' id='409d248a'/>
+      <class-decl name='timespec64' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/time64.h' line='13' column='1' id='40a816ad'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tv_sec' type-id='1afd27ac' visibility='default' filepath='include/linux/time64.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tv_nsec' type-id='bd54fe1a' visibility='default' filepath='include/linux/time64.h' line='15' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d1f16456' size-in-bits='64' id='40a902ec'/>
+      <class-decl name='bio_vec' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/bvec.h' line='32' column='1' id='40af3608'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bv_page' type-id='02f11ed4' visibility='default' filepath='include/linux/bvec.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bv_len' type-id='f0981eeb' visibility='default' filepath='include/linux/bvec.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='bv_offset' type-id='f0981eeb' visibility='default' filepath='include/linux/bvec.h' line='35' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='40afefd0'>
+        <parameter type-id='e324928d'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='411421c8' size-in-bits='64' id='40b285e2'/>
+      <pointer-type-def type-id='423f6b79' size-in-bits='64' id='40b322d1'/>
+      <function-type size-in-bits='64' id='40b5eec5'>
+        <parameter type-id='87447c2d'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='e6f0ce4c'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='82014c8f' size-in-bits='64' id='40b8ad2b'/>
+      <enum-decl name='switch_power_state' filepath='include/drm/drm_device.h' line='33' column='1' id='40bb3c00'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DRM_SWITCH_POWER_ON' value='0'/>
+        <enumerator name='DRM_SWITCH_POWER_OFF' value='1'/>
+        <enumerator name='DRM_SWITCH_POWER_CHANGING' value='2'/>
+        <enumerator name='DRM_SWITCH_POWER_DYNAMIC_OFF' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='868d8193' size-in-bits='64' id='40bc7c47'/>
+      <pointer-type-def type-id='89f717fe' size-in-bits='64' id='40c31434'/>
+      <class-decl name='spi_controller_mem_ops' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/spi/spi-mem.h' line='267' column='1' id='40c992e3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='adjust_op_size' type-id='c1205b1f' visibility='default' filepath='include/linux/spi/spi-mem.h' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='supports_op' type-id='3d444e9a' visibility='default' filepath='include/linux/spi/spi-mem.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='exec_op' type-id='80f1f854' visibility='default' filepath='include/linux/spi/spi-mem.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get_name' type-id='149deb03' visibility='default' filepath='include/linux/spi/spi-mem.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dirmap_create' type-id='dfa456d5' visibility='default' filepath='include/linux/spi/spi-mem.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dirmap_destroy' type-id='12e56aa0' visibility='default' filepath='include/linux/spi/spi-mem.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dirmap_read' type-id='79b4ee7f' visibility='default' filepath='include/linux/spi/spi-mem.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='dirmap_write' type-id='79b4ee7f' visibility='default' filepath='include/linux/spi/spi-mem.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='poll_status' type-id='fca800be' visibility='default' filepath='include/linux/spi/spi-mem.h' line='280' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e2387996' size-in-bits='64' id='40d29418'/>
+      <class-decl name='circ_buf' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/circ_buf.h' line='9' column='1' id='40d6f574'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='buf' type-id='26a90f95' visibility='default' filepath='include/linux/circ_buf.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='head' type-id='95e97e5e' visibility='default' filepath='include/linux/circ_buf.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='tail' type-id='95e97e5e' visibility='default' filepath='include/linux/circ_buf.h' line='12' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='socket_lock_t' type-id='91da6325' filepath='include/net/sock.h' line='111' column='1' id='40d8a3da'/>
+      <function-type size-in-bits='64' id='40d98f1e'>
+        <parameter type-id='c0c93c9e'/>
+        <parameter type-id='5f78aa17'/>
+        <parameter type-id='2e53d20f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='ebe8eb0e' size-in-bits='64' id='40da47a8'/>
+      <qualified-type-def type-id='88ac6962' const='yes' id='40db5127'/>
+      <class-decl name='perf_raw_record' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='88' column='1' id='40ea9ac1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='frag' type-id='a5007ad0' visibility='default' filepath='include/linux/perf_event.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='size' type-id='19c2251e' visibility='default' filepath='include/linux/perf_event.h' line='90' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_subdev_tuner_ops' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='268' column='1' id='40eafb47'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='standby' type-id='a236743f' visibility='default' filepath='include/media/v4l2-subdev.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='s_radio' type-id='a236743f' visibility='default' filepath='include/media/v4l2-subdev.h' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='s_frequency' type-id='8a4f973d' visibility='default' filepath='include/media/v4l2-subdev.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='g_frequency' type-id='d36d46c6' visibility='default' filepath='include/media/v4l2-subdev.h' line='272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='enum_freq_bands' type-id='64144346' visibility='default' filepath='include/media/v4l2-subdev.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='g_tuner' type-id='3ac60b54' visibility='default' filepath='include/media/v4l2-subdev.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='s_tuner' type-id='3ba48c9f' visibility='default' filepath='include/media/v4l2-subdev.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='g_modulator' type-id='e60f1e27' visibility='default' filepath='include/media/v4l2-subdev.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='s_modulator' type-id='c99780b4' visibility='default' filepath='include/media/v4l2-subdev.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='s_type_addr' type-id='0f2da0bb' visibility='default' filepath='include/media/v4l2-subdev.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='s_config' type-id='f8acd34f' visibility='default' filepath='include/media/v4l2-subdev.h' line='279' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2572f485' size-in-bits='64' id='40f624e9'/>
+      <class-decl name='usb_host_bos' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='407' column='1' id='40f66efb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='desc' type-id='d42add34' visibility='default' filepath='include/linux/usb.h' line='408' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ext_cap' type-id='95e6deec' visibility='default' filepath='include/linux/usb.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ss_cap' type-id='653a1605' visibility='default' filepath='include/linux/usb.h' line='412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ssp_cap' type-id='9d8ff465' visibility='default' filepath='include/linux/usb.h' line='413' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ss_id' type-id='4373df76' visibility='default' filepath='include/linux/usb.h' line='414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ptm_cap' type-id='9d94f8e4' visibility='default' filepath='include/linux/usb.h' line='415' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='417' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='418' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='420' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='40fa7c89'>
+        <parameter type-id='85535682'/>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <class-decl name='snd_soc_ops' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/sound/soc.h' line='604' column='1' id='40fc482f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='startup' type-id='ab756384' visibility='default' filepath='include/sound/soc.h' line='605' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='shutdown' type-id='897d1b6d' visibility='default' filepath='include/sound/soc.h' line='606' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hw_params' type-id='2b3f1c33' visibility='default' filepath='include/sound/soc.h' line='607' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hw_free' type-id='ab756384' visibility='default' filepath='include/sound/soc.h' line='608' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='prepare' type-id='ab756384' visibility='default' filepath='include/sound/soc.h' line='609' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='trigger' type-id='898a0783' visibility='default' filepath='include/sound/soc.h' line='610' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='6d84fe29' const='yes' id='40fcf9ec'/>
+      <function-type size-in-bits='64' id='4108533f'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='eeaf504d'/>
+        <parameter type-id='30864cdc'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f1bdbe5e' size-in-bits='64' id='4110d6d4'/>
+      <function-type size-in-bits='64' id='411421c8'>
+        <parameter type-id='0e23c133'/>
+        <parameter type-id='67d012a2'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4115bed7'>
+        <parameter type-id='bd0b5822'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='b6a8699c' size-in-bits='64' id='411e6982'/>
+      <class-decl name='ahash_request' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/crypto/hash.h' line='49' column='1' id='41207a16'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='5e6083f1' visibility='default' filepath='include/crypto/hash.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='nbytes' type-id='f0981eeb' visibility='default' filepath='include/crypto/hash.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='src' type-id='bf3ef905' visibility='default' filepath='include/crypto/hash.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='result' type-id='8bff8096' visibility='default' filepath='include/crypto/hash.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/crypto/hash.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='__ctx' type-id='baf98fd3' visibility='default' filepath='include/crypto/hash.h' line='59' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ed5b2002' size-in-bits='64' id='4120e250'/>
+      <pointer-type-def type-id='67173869' size-in-bits='64' id='4127e705'/>
+      <pointer-type-def type-id='f8c4658e' size-in-bits='64' id='412c012c'/>
+      <function-type size-in-bits='64' id='4130d810'>
+        <parameter type-id='f0f856cb'/>
+        <parameter type-id='c161b868'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4132328d'>
+        <parameter type-id='9d7e7820'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='7a3aa0c8' size-in-bits='64' id='41323fc2'/>
+      <class-decl name='mem_cgroup_threshold_ary' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/memcontrol.h' line='164' column='1' id='413be38e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='current_threshold' type-id='95e97e5e' visibility='default' filepath='include/linux/memcontrol.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='size' type-id='f0981eeb' visibility='default' filepath='include/linux/memcontrol.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='entries' type-id='31f1649b' visibility='default' filepath='include/linux/memcontrol.h' line='170' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5f37256e' size-in-bits='64' id='413f0ce4'/>
+      <class-decl name='sbq_wait_state' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/sbitmap.h' line='84' column='1' id='41425a4b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='wait_cnt' type-id='49178f86' visibility='default' filepath='include/linux/sbitmap.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wait' type-id='b5ab048f' visibility='default' filepath='include/linux/sbitmap.h' line='93' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='9a61119e' const='yes' id='41426935'/>
+      <typedef-decl name='snd_ctl_elem_iface_t' type-id='95e97e5e' filepath='include/uapi/sound/asound.h' line='993' column='1' id='4143fc17'/>
+      <function-type size-in-bits='64' id='4148c66a'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e07e9784' size-in-bits='64' id='414ea452'/>
+      <pointer-type-def type-id='40a816ad' size-in-bits='64' id='4151733d'/>
+      <class-decl name='v4l2_subdev_platform_data' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='857' column='1' id='415476f4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='regulators' type-id='776946b4' visibility='default' filepath='include/media/v4l2-subdev.h' line='858' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_regulators' type-id='95e97e5e' visibility='default' filepath='include/media/v4l2-subdev.h' line='859' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='host_priv' type-id='eaa32e2f' visibility='default' filepath='include/media/v4l2-subdev.h' line='861' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='4157d9cf'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='e2d49ab8' const='yes' id='41588f03'/>
+      <function-type size-in-bits='64' id='415e4835'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='f8dc9def'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='poll_table_struct' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/poll.h' line='43' column='1' id='415eecf1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='_qproc' type-id='650104ba' visibility='default' filepath='include/linux/poll.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='_key' type-id='8f254b08' visibility='default' filepath='include/linux/poll.h' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='fs_context_purpose' filepath='include/linux/fs_context.h' line='29' column='1' id='4171a6be'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='FS_CONTEXT_FOR_MOUNT' value='0'/>
+        <enumerator name='FS_CONTEXT_FOR_SUBMOUNT' value='1'/>
+        <enumerator name='FS_CONTEXT_FOR_RECONFIGURE' value='2'/>
+      </enum-decl>
+      <qualified-type-def type-id='a41950d6' const='yes' id='417f6926'/>
+      <class-decl name='splice_desc' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/splice.h' line='29' column='1' id='41838567'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='total_len' type-id='b59d7dce' visibility='default' filepath='include/linux/splice.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='len' type-id='f0981eeb' visibility='default' filepath='include/linux/splice.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/splice.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='u' type-id='ac5ab62d' visibility='default' filepath='include/linux/splice.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pos' type-id='69bf7bee' visibility='default' filepath='include/linux/splice.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='opos' type-id='b53e8dbb' visibility='default' filepath='include/linux/splice.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='num_spliced' type-id='b59d7dce' visibility='default' filepath='include/linux/splice.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='need_wakeup' type-id='b50a4934' visibility='default' filepath='include/linux/splice.h' line='44' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='41861775'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='48dbb365' size-in-bits='64' id='41865b69'/>
+      <class-decl name='rproc_dump_segment' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/remoteproc.h' line='480' column='1' id='4187a976'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/remoteproc.h' line='481' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='da' type-id='cf29c9b3' visibility='default' filepath='include/linux/remoteproc.h' line='483' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='include/linux/remoteproc.h' line='484' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/remoteproc.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dump' type-id='244b1321' visibility='default' filepath='include/linux/remoteproc.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='offset' type-id='69bf7bee' visibility='default' filepath='include/linux/remoteproc.h' line='489' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='418a6dbd'>
+        <parameter type-id='ecb0ce18'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='efb9ba06' const='yes' id='41903e16'/>
+      <class-decl name='detailed_non_pixel' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/drm/drm_edid.h' line='145' column='1' id='4191437e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pad1' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='type' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='pad2' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='data' type-id='ac5ab5da' visibility='default' filepath='include/drm/drm_edid.h' line='157' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='419202b8'>
+        <parameter type-id='1f98c663'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='c0e44fcd' size-in-bits='64' id='419266fd'/>
+      <pointer-type-def type-id='84a13146' size-in-bits='64' id='41b1c13c'/>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='16384' id='41bf80f3'>
+        <subrange length='2048' type-id='7ff19f0f' id='e5323efb'/>
+      </array-type-def>
+      <pointer-type-def type-id='130b5fb5' size-in-bits='64' id='41c42b69'/>
+      <class-decl name='phylink_config' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/phylink.h' line='71' column='1' id='41c62dab'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/phylink.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='type' type-id='bce2e958' visibility='default' filepath='include/linux/phylink.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='pcs_poll' type-id='b50a4934' visibility='default' filepath='include/linux/phylink.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='poll_fixed_state' type-id='b50a4934' visibility='default' filepath='include/linux/phylink.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='ovr_an_inband' type-id='b50a4934' visibility='default' filepath='include/linux/phylink.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='get_fixed_state' type-id='aefee0d0' visibility='default' filepath='include/linux/phylink.h' line='77' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='41c81272'>
+        <parameter type-id='af051c69'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <class-decl name='media_devnode' size-in-bits='8768' is-struct='yes' visibility='default' filepath='include/media/media-devnode.h' line='75' column='1' id='41cb24b3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='media_dev' type-id='e2929c1c' visibility='default' filepath='include/media/media-devnode.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fops' type-id='1d91e688' visibility='default' filepath='include/media/media-devnode.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/media/media-devnode.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='cdev' type-id='22f86351' visibility='default' filepath='include/media/media-devnode.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='parent' type-id='fa0b179b' visibility='default' filepath='include/media/media-devnode.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8576'>
+          <var-decl name='minor' type-id='95e97e5e' visibility='default' filepath='include/media/media-devnode.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/media/media-devnode.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='release' type-id='baa0730e' visibility='default' filepath='include/media/media-devnode.h' line='91' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='a30f25c8' size-in-bits='3072' id='41cc9498'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='41d01802'>
+        <parameter type-id='9d7e7820'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='6bb8016c' size-in-bits='64' id='41d02516'/>
+      <function-type size-in-bits='64' id='41d25fad'>
+        <parameter type-id='7837cd88'/>
+        <parameter type-id='41b1c13c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='41df3a6f'>
+        <parameter type-id='af051c69'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <pointer-type-def type-id='2ffd639c' size-in-bits='64' id='41e3f782'/>
+      <function-type size-in-bits='64' id='41e9d9ab'>
+        <parameter type-id='40735a95'/>
+        <parameter type-id='9d57e433'/>
+        <parameter type-id='2e6aa127'/>
+        <parameter type-id='813f4995'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='aac7cb3b' size-in-bits='64' id='41ebc58b'/>
+      <qualified-type-def type-id='0cb588a9' const='yes' id='41eec236'/>
+      <function-type size-in-bits='64' id='41f25325'>
+        <parameter type-id='5760dcb0'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='e84913bd' size-in-bits='64' id='4209d6b5'/>
+      <function-type size-in-bits='64' id='420b230d'>
+        <parameter type-id='dfeb7f6c'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='ZSTD_cStreamStage' type-id='bd2ccac1' filepath='lib/zstd/compress.c' line='2948' column='1' id='420ee85d'/>
+      <pointer-type-def type-id='90e882dc' size-in-bits='64' id='42262596'/>
+      <pointer-type-def type-id='904f813f' size-in-bits='64' id='4228340f'/>
+      <class-decl name='in_device' size-in-bits='3072' is-struct='yes' visibility='default' filepath='include/linux/inetdevice.h' line='25' column='1' id='4234e231'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/linux/inetdevice.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/linux/inetdevice.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='dead' type-id='95e97e5e' visibility='default' filepath='include/linux/inetdevice.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ifa_list' type-id='3a639063' visibility='default' filepath='include/linux/inetdevice.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mc_list' type-id='26479c18' visibility='default' filepath='include/linux/inetdevice.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mc_hash' type-id='74bae2b6' visibility='default' filepath='include/linux/inetdevice.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mc_count' type-id='95e97e5e' visibility='default' filepath='include/linux/inetdevice.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='mc_tomb_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/inetdevice.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='mc_tomb' type-id='26479c18' visibility='default' filepath='include/linux/inetdevice.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='mr_v1_seen' type-id='7359adad' visibility='default' filepath='include/linux/inetdevice.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='mr_v2_seen' type-id='7359adad' visibility='default' filepath='include/linux/inetdevice.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='mr_maxdelay' type-id='7359adad' visibility='default' filepath='include/linux/inetdevice.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='mr_qi' type-id='7359adad' visibility='default' filepath='include/linux/inetdevice.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='mr_qri' type-id='7359adad' visibility='default' filepath='include/linux/inetdevice.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='mr_qrv' type-id='002ac4a6' visibility='default' filepath='include/linux/inetdevice.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='776'>
+          <var-decl name='mr_gq_running' type-id='002ac4a6' visibility='default' filepath='include/linux/inetdevice.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='mr_ifc_count' type-id='19c2251e' visibility='default' filepath='include/linux/inetdevice.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='mr_gq_timer' type-id='abe41e67' visibility='default' filepath='include/linux/inetdevice.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='mr_ifc_timer' type-id='abe41e67' visibility='default' filepath='include/linux/inetdevice.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='arp_parms' type-id='affe0fe2' visibility='default' filepath='include/linux/inetdevice.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='cnf' type-id='c2c09950' visibility='default' filepath='include/linux/inetdevice.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/linux/inetdevice.h' line='50' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='423ef8f4'>
+        <parameter type-id='442b8d89'/>
+        <parameter type-id='bbeb954c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d9de7d63' size-in-bits='64' id='423f39eb'/>
+      <class-decl name='vhost_work' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/vhost/vhost.h' line='22' column='1' id='423f6b79'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='c5ccfee8' visibility='default' filepath='drivers/vhost/vhost.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fn' type-id='e6a6a6c6' visibility='default' filepath='drivers/vhost/vhost.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='drivers/vhost/vhost.h' line='25' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='faf4b969' size-in-bits='64' id='42427e0a'/>
+      <pointer-type-def type-id='d3bb804d' size-in-bits='64' id='42454c29'/>
+      <pointer-type-def type-id='4afdce44' size-in-bits='64' id='424a6df6'/>
+      <class-decl name='mmc_bus_ops' size-in-bits='832' is-struct='yes' visibility='default' filepath='drivers/mmc/core/core.h' line='20' column='1' id='424ad5b6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='remove' type-id='fa3ed3a2' visibility='default' filepath='drivers/mmc/core/core.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='detect' type-id='fa3ed3a2' visibility='default' filepath='drivers/mmc/core/core.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pre_suspend' type-id='e2d63f85' visibility='default' filepath='drivers/mmc/core/core.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='suspend' type-id='e2d63f85' visibility='default' filepath='drivers/mmc/core/core.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='resume' type-id='e2d63f85' visibility='default' filepath='drivers/mmc/core/core.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='runtime_suspend' type-id='e2d63f85' visibility='default' filepath='drivers/mmc/core/core.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='runtime_resume' type-id='e2d63f85' visibility='default' filepath='drivers/mmc/core/core.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='alive' type-id='e2d63f85' visibility='default' filepath='drivers/mmc/core/core.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='shutdown' type-id='e2d63f85' visibility='default' filepath='drivers/mmc/core/core.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='hw_reset' type-id='e2d63f85' visibility='default' filepath='drivers/mmc/core/core.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='sw_reset' type-id='e2d63f85' visibility='default' filepath='drivers/mmc/core/core.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='cache_enabled' type-id='9d11a2ef' visibility='default' filepath='drivers/mmc/core/core.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='flush_cache' type-id='e2d63f85' visibility='default' filepath='drivers/mmc/core/core.h' line='33' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='42c7aae7' size-in-bits='64' id='425436e6'>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+      </array-type-def>
+      <qualified-type-def type-id='dbd58b50' const='yes' id='425496d7'/>
+      <qualified-type-def type-id='9aefc15c' const='yes' id='425bcb9d'/>
+      <function-type size-in-bits='64' id='426a0da5'>
+        <parameter type-id='7ca8e198'/>
+        <parameter type-id='af4bd535'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='902061bb' size-in-bits='64' id='426e425b'/>
+      <array-type-def dimensions='1' type-id='fbc017ef' size-in-bits='768' id='4271bfb9'>
+        <subrange length='12' type-id='7ff19f0f' id='84827bdc'/>
+      </array-type-def>
+      <class-decl name='snd_ctl_elem_value' size-in-bits='9792' is-struct='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='1076' column='1' id='42736e36'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='abbbeccc' visibility='default' filepath='include/uapi/sound/asound.h' line='1077' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='indirect' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='1078' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='value' type-id='ac5ab61b' visibility='default' filepath='include/uapi/sound/asound.h' line='1097' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8768'>
+          <var-decl name='reserved' type-id='6f10c3ff' visibility='default' filepath='include/uapi/sound/asound.h' line='1098' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='shrinker_info' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/memcontrol.h' line='113' column='1' id='42772acc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/memcontrol.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='nr_deferred' type-id='5403cb36' visibility='default' filepath='include/linux/memcontrol.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='map' type-id='1d2c2b85' visibility='default' filepath='include/linux/memcontrol.h' line='116' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='25baaf57' size-in-bits='64' id='42861783'/>
+      <pointer-type-def type-id='e03e976a' size-in-bits='64' id='428819c0'/>
+      <function-type size-in-bits='64' id='428b7011'>
+        <return type-id='19c2251e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4292193b'>
+        <parameter type-id='343c3ae4'/>
+        <parameter type-id='26a90f95'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <qualified-type-def type-id='e7869c69' const='yes' id='4294b6d2'/>
+      <pointer-type-def type-id='3fc3d262' size-in-bits='64' id='42988600'/>
+      <function-type size-in-bits='64' id='42a0ecc7'>
+        <parameter type-id='02913b69'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d5f12852' size-in-bits='64' id='42a2b4e8'/>
+      <pointer-type-def type-id='5420d2f9' size-in-bits='64' id='42abe229'/>
+      <class-decl name='dev_pm_opp_icc_bw' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/pm_opp.h' line='52' column='1' id='42adec60'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='avg' type-id='19c2251e' visibility='default' filepath='include/linux/pm_opp.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='peak' type-id='19c2251e' visibility='default' filepath='include/linux/pm_opp.h' line='54' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_cdc_call_mgmt_descriptor' size-in-bits='40' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='72' column='1' id='42b001af'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bDescriptorSubType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bmCapabilities' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bDataInterface' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='81' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='217933b7' size-in-bits='64' id='42b02383'/>
+      <class-decl name='inet_listen_hashbucket' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/inet_hashtables.h' line='112' column='1' id='42b16dba'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/net/inet_hashtables.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='count' type-id='f0981eeb' visibility='default' filepath='include/net/inet_hashtables.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab5c0' visibility='default' filepath='include/net/inet_hashtables.h' line='115' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='61675bc7' size-in-bits='64' id='42b5b617'/>
+      <pointer-type-def type-id='df587ad7' size-in-bits='64' id='42bc911b'/>
+      <pointer-type-def type-id='19ebf718' size-in-bits='64' id='42beb73a'/>
+      <pointer-type-def type-id='21f5310d' size-in-bits='64' id='42c362d1'/>
+      <class-decl name='detailed_pixel_timing' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/drm/drm_edid.h' line='70' column='1' id='42c5f701'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hactive_lo' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='hblank_lo' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='hactive_hblank_hi' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='vactive_lo' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='vblank_lo' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='vactive_vblank_hi' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='hsync_offset_lo' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='hsync_pulse_width_lo' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='vsync_offset_pulse_width_lo' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='hsync_vsync_offset_pulse_width_hi' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='width_mm_lo' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='height_mm_lo' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='width_height_mm_hi' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='hborder' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='vborder' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='misc' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='86' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='42c66597'>
+        <parameter type-id='e1a56841'/>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='707be29c'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='1dc6a898' size-in-bits='256' id='42c6815a'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <pointer-type-def type-id='edac1e8f' size-in-bits='64' id='42c7aae7'/>
+      <pointer-type-def type-id='bc39a8be' size-in-bits='64' id='42c8f564'/>
+      <array-type-def dimensions='1' type-id='84a5c3d4' size-in-bits='240' id='42c95bcb'>
+        <subrange length='15' type-id='7ff19f0f' id='8484ba73'/>
+      </array-type-def>
+      <class-decl name='ip_mc_socklist' is-struct='yes' visibility='default' is-declaration-only='yes' id='42cd489a'/>
+      <pointer-type-def type-id='8e71aea3' size-in-bits='64' id='42dad747'/>
+      <pointer-type-def type-id='a198c269' size-in-bits='64' id='42e84365'/>
+      <pointer-type-def type-id='d869ebff' size-in-bits='64' id='42e9a6db'/>
+      <class-decl name='rchan' size-in-bits='2944' is-struct='yes' visibility='default' filepath='include/linux/relay.h' line='59' column='1' id='42eb83d1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='version' type-id='19c2251e' visibility='default' filepath='include/linux/relay.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='subbuf_size' type-id='b59d7dce' visibility='default' filepath='include/linux/relay.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='n_subbufs' type-id='b59d7dce' visibility='default' filepath='include/linux/relay.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='alloc_size' type-id='b59d7dce' visibility='default' filepath='include/linux/relay.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='cb' type-id='322da3c9' visibility='default' filepath='include/linux/relay.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='include/linux/relay.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/relay.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='last_toobig' type-id='b59d7dce' visibility='default' filepath='include/linux/relay.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='buf' type-id='8c4f312b' visibility='default' filepath='include/linux/relay.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='is_global' type-id='95e97e5e' visibility='default' filepath='include/linux/relay.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/relay.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='parent' type-id='27675065' visibility='default' filepath='include/linux/relay.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='has_base_filename' type-id='95e97e5e' visibility='default' filepath='include/linux/relay.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='base_filename' type-id='11641789' visibility='default' filepath='include/linux/relay.h' line='74' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='42fd5899'>
+        <parameter type-id='3e31633b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='b1837ffb' size-in-bits='64' id='43023603'/>
+      <class-decl name='kernfs_elem_dir' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/kernfs.h' line='92' column='1' id='4303ca40'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='subdirs' type-id='7359adad' visibility='default' filepath='include/linux/kernfs.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='children' type-id='dec44472' visibility='default' filepath='include/linux/kernfs.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='root' type-id='e18defdb' visibility='default' filepath='include/linux/kernfs.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rev' type-id='7359adad' visibility='default' filepath='include/linux/kernfs.h' line='106' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='484541f8' size-in-bits='64' id='4315d79a'/>
+      <typedef-decl name='get_block_t' type-id='45550f94' filepath='include/linux/fs.h' line='95' column='1' id='4316c9c9'/>
+      <function-type size-in-bits='64' id='4322685c'>
+        <parameter type-id='3e31633b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='2a123bf1' size-in-bits='64' id='4324a0e5'/>
+      <pointer-type-def type-id='40fa7c89' size-in-bits='64' id='432697fd'/>
+      <pointer-type-def type-id='15bee3b2' size-in-bits='64' id='432e0bcc'/>
+      <class-decl name='v4l2_vp8_loop_filter' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1721' column='1' id='432f664a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ref_frm_delta' type-id='87ce7f1e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1722' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='mb_mode_delta' type-id='87ce7f1e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1723' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sharpness_level' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1724' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='level' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1725' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='padding' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1726' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1727' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='14946bd8' size-in-bits='64' id='4337d88a'/>
+      <function-type size-in-bits='64' id='433beb58'>
+        <parameter type-id='37175e4d'/>
+        <parameter type-id='08496218'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='cfg80211_conn' is-struct='yes' visibility='default' is-declaration-only='yes' id='43420c6a'/>
+      <pointer-type-def type-id='ce30b5d2' size-in-bits='64' id='4343d470'/>
+      <pointer-type-def type-id='ea4e578a' size-in-bits='64' id='4346d2a4'/>
+      <class-decl name='fsverity_info' size-in-bits='2048' is-struct='yes' visibility='default' filepath='fs/verity/fsverity_private.h' line='73' column='1' id='43489bca'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tree_params' type-id='0b26224b' visibility='default' filepath='fs/verity/fsverity_private.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='root_hash' type-id='47ba3182' visibility='default' filepath='fs/verity/fsverity_private.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='file_digest' type-id='47ba3182' visibility='default' filepath='fs/verity/fsverity_private.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='inode' type-id='c5a4eb7f' visibility='default' filepath='fs/verity/fsverity_private.h' line='77' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d5b6f34c' size-in-bits='64' id='434e45fe'/>
+      <class-decl name='regulator_init_data' size-in-bits='2112' is-struct='yes' visibility='default' filepath='include/linux/regulator/machine.h' line='262' column='1' id='435002d4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='supply_regulator' type-id='80f4b756' visibility='default' filepath='include/linux/regulator/machine.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='constraints' type-id='d0b77cf6' visibility='default' filepath='include/linux/regulator/machine.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='num_consumer_supplies' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/machine.h' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='consumer_supplies' type-id='857611a9' visibility='default' filepath='include/linux/regulator/machine.h' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='regulator_init' type-id='b9b212f5' visibility='default' filepath='include/linux/regulator/machine.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/regulator/machine.h' line='272' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='devlink_port_fn_state' filepath='include/uapi/linux/devlink.h' line='610' column='1' id='435ed9ca'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEVLINK_PORT_FN_STATE_INACTIVE' value='0'/>
+        <enumerator name='DEVLINK_PORT_FN_STATE_ACTIVE' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='4f5dfff0' size-in-bits='64' id='4373df76'/>
+      <typedef-decl name='typec_mux_set_fn_t' type-id='c3044cfb' filepath='include/linux/usb/typec_mux.h' line='49' column='1' id='43788717'/>
+      <pointer-type-def type-id='7426eacc' size-in-bits='64' id='43788ed6'/>
+      <class-decl name='fscrypt_str' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/fscrypt.h' line='27' column='1' id='43795fda'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='cf536864' visibility='default' filepath='include/linux/fscrypt.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='len' type-id='19c2251e' visibility='default' filepath='include/linux/fscrypt.h' line='29' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='437aead6'>
+        <parameter type-id='75ae4804'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='usb_request' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/usb/gadget.h' line='100' column='1' id='43806adf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='buf' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb/gadget.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='length' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dma' type-id='cf29c9b3' visibility='default' filepath='include/linux/usb/gadget.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sg' type-id='bf3ef905' visibility='default' filepath='include/linux/usb/gadget.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='num_sgs' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='num_mapped_sgs' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='stream_id' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='336'>
+          <var-decl name='is_last' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='337'>
+          <var-decl name='no_interrupt' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='338'>
+          <var-decl name='zero' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='339'>
+          <var-decl name='short_not_ok' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='340'>
+          <var-decl name='dma_mapped' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='complete' type-id='2dfafd2c' visibility='default' filepath='include/linux/usb/gadget.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='context' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb/gadget.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/usb/gadget.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='frame_number' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='status' type-id='95e97e5e' visibility='default' filepath='include/linux/usb/gadget.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='actual' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/gadget.h' line='126' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='3f1a6b60' size-in-bits='288' id='43885e7a'>
+        <subrange length='9' type-id='7ff19f0f' id='12e4273c'/>
+      </array-type-def>
+      <pointer-type-def type-id='dfce8aa4' size-in-bits='64' id='43934166'/>
+      <pointer-type-def type-id='7647d8c9' size-in-bits='64' id='4394e2c1'/>
+      <class-decl name='scsi_vpd' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/scsi/scsi_device.h' line='98' column='1' id='4399e1b2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/scsi/scsi_device.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='len' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_device.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='data' type-id='5e6516ee' visibility='default' filepath='include/scsi/scsi_device.h' line='101' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='439a4d86'>
+        <parameter type-id='c2b4b27b'/>
+        <parameter type-id='572fbdca'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='916c4095' size-in-bits='64' id='439be051'/>
+      <array-type-def dimensions='1' type-id='3f1a6b60' size-in-bits='32' id='439be632'>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+      </array-type-def>
+      <pointer-type-def type-id='82c73a4e' size-in-bits='64' id='43a0eb6c'/>
+      <pointer-type-def type-id='11ecaf45' size-in-bits='64' id='43a37dd9'/>
+      <pointer-type-def type-id='e5fd9491' size-in-bits='64' id='43a53075'/>
+      <pointer-type-def type-id='d238557f' size-in-bits='64' id='43ae54cf'/>
+      <typedef-decl name='__virtio32' type-id='3f1a6b60' filepath='include/uapi/linux/virtio_types.h' line='43' column='1' id='43ae9528'/>
+      <class-decl name='selinux_state' size-in-bits='1088' is-struct='yes' visibility='default' filepath='security/selinux/include/security.h' line='90' column='1' id='43af4ec3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='enforcing' type-id='b50a4934' visibility='default' filepath='security/selinux/include/security.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='checkreqprot' type-id='b50a4934' visibility='default' filepath='security/selinux/include/security.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='initialized' type-id='b50a4934' visibility='default' filepath='security/selinux/include/security.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='policycap' type-id='4addcaf9' visibility='default' filepath='security/selinux/include/security.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='android_netlink_route' type-id='b50a4934' visibility='default' filepath='security/selinux/include/security.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='android_netlink_getneigh' type-id='b50a4934' visibility='default' filepath='security/selinux/include/security.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='status_page' type-id='02f11ed4' visibility='default' filepath='security/selinux/include/security.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='status_lock' type-id='925167dc' visibility='default' filepath='security/selinux/include/security.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='avc' type-id='c94d353c' visibility='default' filepath='security/selinux/include/security.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='policy' type-id='62043706' visibility='default' filepath='security/selinux/include/security.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='policy_mutex' type-id='925167dc' visibility='default' filepath='security/selinux/include/security.h' line='108' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_subdev_fh' size-in-bits='1408' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='966' column='1' id='43b269de'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vfh' type-id='53422e64' visibility='default' filepath='include/media/v4l2-subdev.h' line='967' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/media/v4l2-subdev.h' line='968' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='state' type-id='ae4f2ad5' visibility='default' filepath='include/media/v4l2-subdev.h' line='970' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ttm_pool_type' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/drm/ttm/ttm_pool.h' line='49' column='1' id='43c32a14'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pool' type-id='90dad87b' visibility='default' filepath='include/drm/ttm/ttm_pool.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='order' type-id='f0981eeb' visibility='default' filepath='include/drm/ttm/ttm_pool.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='caching' type-id='4aed510d' visibility='default' filepath='include/drm/ttm/ttm_pool.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='shrinker_list' type-id='72f469ec' visibility='default' filepath='include/drm/ttm/ttm_pool.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/drm/ttm/ttm_pool.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='pages' type-id='72f469ec' visibility='default' filepath='include/drm/ttm/ttm_pool.h' line='57' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7dfdcc84' size-in-bits='64' id='43c38462'/>
+      <function-type size-in-bits='64' id='43c8a64c'>
+        <parameter type-id='c0ced320'/>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='2871909b'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='snd_device_type' filepath='include/sound/core.h' line='39' column='1' id='43cb465b'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SNDRV_DEV_LOWLEVEL' value='0'/>
+        <enumerator name='SNDRV_DEV_INFO' value='1'/>
+        <enumerator name='SNDRV_DEV_BUS' value='2'/>
+        <enumerator name='SNDRV_DEV_CODEC' value='3'/>
+        <enumerator name='SNDRV_DEV_PCM' value='4'/>
+        <enumerator name='SNDRV_DEV_COMPRESS' value='5'/>
+        <enumerator name='SNDRV_DEV_RAWMIDI' value='6'/>
+        <enumerator name='SNDRV_DEV_TIMER' value='7'/>
+        <enumerator name='SNDRV_DEV_SEQUENCER' value='8'/>
+        <enumerator name='SNDRV_DEV_HWDEP' value='9'/>
+        <enumerator name='SNDRV_DEV_JACK' value='10'/>
+        <enumerator name='SNDRV_DEV_CONTROL' value='11'/>
+      </enum-decl>
+      <class-decl name='tk_read_base' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/timekeeper_internal.h' line='34' column='1' id='43d797eb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='clock' type-id='4dfe71de' visibility='default' filepath='include/linux/timekeeper_internal.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mask' type-id='91ce1af9' visibility='default' filepath='include/linux/timekeeper_internal.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cycle_last' type-id='91ce1af9' visibility='default' filepath='include/linux/timekeeper_internal.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mult' type-id='19c2251e' visibility='default' filepath='include/linux/timekeeper_internal.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='shift' type-id='19c2251e' visibility='default' filepath='include/linux/timekeeper_internal.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='xtime_nsec' type-id='91ce1af9' visibility='default' filepath='include/linux/timekeeper_internal.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='base' type-id='fbc017ef' visibility='default' filepath='include/linux/timekeeper_internal.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='base_real' type-id='91ce1af9' visibility='default' filepath='include/linux/timekeeper_internal.h' line='42' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='722249f6' size-in-bits='64' id='43dccc40'/>
+      <function-type size-in-bits='64' id='43e7c387'>
+        <parameter type-id='260390aa'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='43e9dd11'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='cf536864'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='cf536864'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='0791d6c8' size-in-bits='128' id='43f0230f'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='e1fc3fb1' size-in-bits='64' id='43f4ef15'/>
+      <array-type-def dimensions='1' type-id='0791d6c8' size-in-bits='64' id='43f871d4'>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='43ffd497'>
+        <parameter type-id='7efbcaaf'/>
+        <parameter type-id='fde1bbcb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='v4l2_decoder_cmd' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2094' column='1' id='440818bd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2095' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2096' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab5ff' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2097' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_hwdep_dsp_image' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='142' column='1' id='4410ddbf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='name' type-id='b1888bf8' visibility='default' filepath='include/uapi/sound/asound.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='image' type-id='cf536864' visibility='default' filepath='include/uapi/sound/asound.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='length' type-id='b59d7dce' visibility='default' filepath='include/uapi/sound/asound.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='driver_data' type-id='7359adad' visibility='default' filepath='include/uapi/sound/asound.h' line='147' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='bsg_timeout_fn' type-id='56710942' filepath='include/linux/bsg-lib.h' line='22' column='1' id='4425ad49'/>
+      <pointer-type-def type-id='c112c396' size-in-bits='64' id='4426dbe0'/>
+      <pointer-type-def type-id='fbedd770' size-in-bits='64' id='442ae2b6'/>
+      <pointer-type-def type-id='bc6d8611' size-in-bits='64' id='442b8d89'/>
+      <pointer-type-def type-id='a6d8bab7' size-in-bits='64' id='442dc527'/>
+      <pointer-type-def type-id='fbc017ef' size-in-bits='64' id='44372936'/>
+      <qualified-type-def type-id='43795fda' const='yes' id='4443d9d9'/>
+      <function-type size-in-bits='64' id='4446be8a'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='1b9d48b1'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <class-decl name='perf_cpu_context' size-in-bits='3584' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='855' column='1' id='4448fdd3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ctx' type-id='9d67acd5' visibility='default' filepath='include/linux/perf_event.h' line='856' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='task_ctx' type-id='b9419dc5' visibility='default' filepath='include/linux/perf_event.h' line='857' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='active_oncpu' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='858' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2336'>
+          <var-decl name='exclusive' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='859' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='hrtimer_lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/perf_event.h' line='861' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='hrtimer' type-id='b6993efc' visibility='default' filepath='include/linux/perf_event.h' line='862' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='hrtimer_interval' type-id='fbc017ef' visibility='default' filepath='include/linux/perf_event.h' line='863' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='hrtimer_active' type-id='f0981eeb' visibility='default' filepath='include/linux/perf_event.h' line='864' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='sched_cb_entry' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='871' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='sched_cb_usage' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='872' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3296'>
+          <var-decl name='online' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='874' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='heap_size' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='879' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='heap' type-id='a0127209' visibility='default' filepath='include/linux/perf_event.h' line='880' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='heap_default' type-id='e0f8c0f3' visibility='default' filepath='include/linux/perf_event.h' line='881' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ee15d052' size-in-bits='64' id='44572ce8'/>
+      <function-type size-in-bits='64' id='44583a18'>
+        <parameter type-id='3e3cd44f'/>
+        <return type-id='c675b073'/>
+      </function-type>
+      <class-decl name='lwtunnel_state' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/net/lwtunnel.h' line='25' column='1' id='44644afc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='d315442e' visibility='default' filepath='include/net/lwtunnel.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='flags' type-id='d315442e' visibility='default' filepath='include/net/lwtunnel.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='headroom' type-id='d315442e' visibility='default' filepath='include/net/lwtunnel.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='refcnt' type-id='49178f86' visibility='default' filepath='include/net/lwtunnel.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='orig_output' type-id='0023218e' visibility='default' filepath='include/net/lwtunnel.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='orig_input' type-id='d2e00785' visibility='default' filepath='include/net/lwtunnel.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/lwtunnel.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='data' type-id='167619f6' visibility='default' filepath='include/net/lwtunnel.h' line='33' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='4469e818'>
+        <parameter type-id='68a2d05b'/>
+        <return type-id='c15eecdf'/>
+      </function-type>
+      <typedef-decl name='kunit_try_catch_func_t' type-id='b7f9d8e6' filepath='include/kunit/try-catch.h' line='15' column='1' id='446bd00b'/>
+      <pointer-type-def type-id='3e4a5ebb' size-in-bits='64' id='446f28fb'/>
+      <typedef-decl name='__kernel_ulong_t' type-id='7359adad' filepath='include/uapi/asm-generic/posix_types.h' line='16' column='1' id='447da2ae'/>
+      <function-type size-in-bits='64' id='44846695'>
+        <parameter type-id='7e666abe'/>
+        <return type-id='91ce1af9'/>
+      </function-type>
+      <pointer-type-def type-id='6430ea09' size-in-bits='64' id='4496b625'/>
+      <function-type size-in-bits='64' id='449a6017'>
+        <parameter type-id='c5491077'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='449f791f'>
+        <parameter type-id='d30bdc51'/>
+        <parameter type-id='c0e2acc9'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='2594b00f'/>
+      </function-type>
+      <class-decl name='netdev_hw_addr_list' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='227' column='1' id='44a1ec32'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/netdevice.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='count' type-id='95e97e5e' visibility='default' filepath='include/linux/netdevice.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tree' type-id='dec44472' visibility='default' filepath='include/linux/netdevice.h' line='232' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='44ab747b'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='925511d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='01e0cc00' size-in-bits='64' id='44aef41a'/>
+      <pointer-type-def type-id='16b2c11e' size-in-bits='64' id='44b18db0'/>
+      <class-decl name='iw_public_data' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/iw_handler.h' line='420' column='1' id='44b3a0ac'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='spy_data' type-id='96efb615' visibility='default' filepath='include/net/iw_handler.h' line='422' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='libipw' type-id='29244949' visibility='default' filepath='include/net/iw_handler.h' line='424' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='44b564e4'>
+        <parameter type-id='a585cbc4'/>
+        <parameter type-id='bbaf3419'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9281c70f' size-in-bits='64' id='44bef697'/>
+      <pointer-type-def type-id='83967635' size-in-bits='64' id='44dbf2cd'/>
+      <function-type size-in-bits='64' id='44dd8636'>
+        <parameter type-id='2ba25712'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='typec_pwr_opmode' filepath='include/linux/usb/typec.h' line='56' column='1' id='44ea1984'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='TYPEC_PWR_MODE_USB' value='0'/>
+        <enumerator name='TYPEC_PWR_MODE_1_5A' value='1'/>
+        <enumerator name='TYPEC_PWR_MODE_3_0A' value='2'/>
+        <enumerator name='TYPEC_PWR_MODE_PD' value='3'/>
+      </enum-decl>
+      <class-decl name='uts_namespace' size-in-bits='3456' is-struct='yes' visibility='default' filepath='include/linux/utsname.h' line='23' column='1' id='44f52e9d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='ee2746d3' visibility='default' filepath='include/linux/utsname.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='user_ns' type-id='c0ced320' visibility='default' filepath='include/linux/utsname.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='ucounts' type-id='b1d4934a' visibility='default' filepath='include/linux/utsname.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='ns' type-id='99f367f2' visibility='default' filepath='include/linux/utsname.h' line='27' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2bb0168c' size-in-bits='64' id='44fd4636'/>
+      <class-decl name='pcpu_dstats' is-struct='yes' visibility='default' is-declaration-only='yes' id='45092453'/>
+      <pointer-type-def type-id='fe9c5daa' size-in-bits='64' id='450b7564'/>
+      <array-type-def dimensions='1' type-id='d315442e' size-in-bits='48' id='450d2a3a'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <pointer-type-def type-id='b8713c6b' size-in-bits='64' id='450f3d4f'/>
+      <class-decl name='xhci_run_regs' size-in-bits='33024' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='537' column='1' id='451804f7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='microframe_index' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='538' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='rsvd' type-id='e369592a' visibility='default' filepath='drivers/usb/host/xhci.h' line='539' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ir_set' type-id='6cdfafe7' visibility='default' filepath='drivers/usb/host/xhci.h' line='540' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e994232a' size-in-bits='64' id='451a0588'/>
+      <qualified-type-def type-id='5da1665b' const='yes' id='45257a94'/>
+      <class-decl name='drm_hdmi_info' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/drm/drm_connector.h' line='225' column='1' id='452748b2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='scdc' type-id='2c7c7fd8' visibility='default' filepath='include/drm/drm_connector.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='y420_vdb_modes' type-id='f46d9f4d' visibility='default' filepath='include/drm/drm_connector.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='y420_cmdb_modes' type-id='f46d9f4d' visibility='default' filepath='include/drm/drm_connector.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='y420_cmdb_map' type-id='91ce1af9' visibility='default' filepath='include/drm/drm_connector.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='y420_dc_modes' type-id='f9b06939' visibility='default' filepath='include/drm/drm_connector.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='648'>
+          <var-decl name='max_frl_rate_per_lane' type-id='f9b06939' visibility='default' filepath='include/drm/drm_connector.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='656'>
+          <var-decl name='max_lanes' type-id='f9b06939' visibility='default' filepath='include/drm/drm_connector.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='dsc_cap' type-id='bdd2ceab' visibility='default' filepath='include/drm/drm_connector.h' line='258' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='470b0e09' size-in-bits='64' id='452b34c2'/>
+      <pointer-type-def type-id='1546c604' size-in-bits='64' id='45305972'/>
+      <class-decl name='ucsi_connector_capability' size-in-bits='16' is-struct='yes' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='195' column='1' id='4531a258'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='op_mode' type-id='f9b06939' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='205' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='hdmi_avi_infoframe' size-in-bits='544' is-struct='yes' visibility='default' filepath='include/linux/hdmi.h' line='169' column='1' id='4536ce10'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='c573b339' visibility='default' filepath='include/linux/hdmi.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='version' type-id='002ac4a6' visibility='default' filepath='include/linux/hdmi.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='length' type-id='002ac4a6' visibility='default' filepath='include/linux/hdmi.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='colorspace' type-id='c86f38e4' visibility='default' filepath='include/linux/hdmi.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='scan_mode' type-id='aaafc218' visibility='default' filepath='include/linux/hdmi.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='colorimetry' type-id='8df1782c' visibility='default' filepath='include/linux/hdmi.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='picture_aspect' type-id='a30ccd44' visibility='default' filepath='include/linux/hdmi.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='active_aspect' type-id='90bbc2e6' visibility='default' filepath='include/linux/hdmi.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='itc' type-id='b50a4934' visibility='default' filepath='include/linux/hdmi.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='extended_colorimetry' type-id='b8a53560' visibility='default' filepath='include/linux/hdmi.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='quantization_range' type-id='5c444b2c' visibility='default' filepath='include/linux/hdmi.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='nups' type-id='a84bbd3b' visibility='default' filepath='include/linux/hdmi.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='video_code' type-id='002ac4a6' visibility='default' filepath='include/linux/hdmi.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ycc_quantization_range' type-id='569eefca' visibility='default' filepath='include/linux/hdmi.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='content_type' type-id='6cedbf81' visibility='default' filepath='include/linux/hdmi.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pixel_repeat' type-id='002ac4a6' visibility='default' filepath='include/linux/hdmi.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='464'>
+          <var-decl name='top_bar' type-id='8efea9e5' visibility='default' filepath='include/linux/hdmi.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='bottom_bar' type-id='8efea9e5' visibility='default' filepath='include/linux/hdmi.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='496'>
+          <var-decl name='left_bar' type-id='8efea9e5' visibility='default' filepath='include/linux/hdmi.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='right_bar' type-id='8efea9e5' visibility='default' filepath='include/linux/hdmi.h' line='189' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='pci_ers_result_t' type-id='f0981eeb' filepath='include/linux/pci.h' line='810' column='1' id='453a795e'/>
+      <function-type size-in-bits='64' id='453c30fa'>
+        <parameter type-id='2ba25712'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='thermal_device_mode' filepath='include/uapi/linux/thermal.h' line='7' column='1' id='45492188'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='THERMAL_DEVICE_DISABLED' value='0'/>
+        <enumerator name='THERMAL_DEVICE_ENABLED' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='5ed2cb86' size-in-bits='64' id='454b4728'/>
+      <pointer-type-def type-id='419202b8' size-in-bits='64' id='454b8f82'/>
+      <function-type size-in-bits='64' id='45550f94'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='a42536cd'/>
+        <parameter type-id='c485c22c'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='455e2261'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='45639e3d'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='84a5c3d4'/>
+        <parameter type-id='1dc6a898'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='45660d72'>
+        <parameter type-id='6ed6b432'/>
+        <parameter type-id='f23e2572'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <pointer-type-def type-id='a2a24eee' size-in-bits='64' id='456a5468'/>
+      <pointer-type-def type-id='6d905adc' size-in-bits='64' id='456e047e'/>
+      <class-decl name='ww_mutex' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/ww_mutex.h' line='49' column='1' id='45793a97'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='925167dc' visibility='default' filepath='include/linux/ww_mutex.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ctx' type-id='c1d02a64' visibility='default' filepath='include/linux/ww_mutex.h' line='51' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='457c9dbc'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='drm_cmdline_mode' size-in-bits='672' is-struct='yes' visibility='default' filepath='include/drm/drm_connector.h' line='1103' column='1' id='458106cb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/drm/drm_connector.h' line='1109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='specified' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='1116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='264'>
+          <var-decl name='refresh_specified' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='1123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='bpp_specified' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='1130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='xres' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_connector.h' line='1137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='yres' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_connector.h' line='1144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='bpp' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_connector.h' line='1151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='refresh' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_connector.h' line='1158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='rb' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='1165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='424'>
+          <var-decl name='interlace' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='1172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='432'>
+          <var-decl name='cvt' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='1180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='440'>
+          <var-decl name='margins' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='1188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='force' type-id='e1a0be31' visibility='default' filepath='include/drm/drm_connector.h' line='1196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='rotation_reflection' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='1206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='panel_orientation' type-id='59f3d325' visibility='default' filepath='include/drm/drm_connector.h' line='1214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='tv_margins' type-id='a38825b1' visibility='default' filepath='include/drm/drm_connector.h' line='1219' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='regulator_desc' size-in-bits='2496' is-struct='yes' visibility='default' filepath='include/linux/regulator/driver.h' line='357' column='1' id='45814d78'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/regulator/driver.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='supply_name' type-id='80f4b756' visibility='default' filepath='include/linux/regulator/driver.h' line='359' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='of_match' type-id='80f4b756' visibility='default' filepath='include/linux/regulator/driver.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='of_match_full_name' type-id='b50a4934' visibility='default' filepath='include/linux/regulator/driver.h' line='361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='regulators_node' type-id='80f4b756' visibility='default' filepath='include/linux/regulator/driver.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='of_parse_cb' type-id='62e9cc9c' visibility='default' filepath='include/linux/regulator/driver.h' line='363' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/driver.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='continuous_voltage_range' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='367' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='n_voltages' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='368' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='n_current_limits' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='369' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ops' type-id='b4605ad2' visibility='default' filepath='include/linux/regulator/driver.h' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='irq' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/driver.h' line='371' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='type' type-id='b9a524a4' visibility='default' filepath='include/linux/regulator/driver.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/regulator/driver.h' line='373' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='min_uV' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='uV_step' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='linear_min_sel' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='377' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='fixed_uV' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/driver.h' line='378' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='ramp_delay' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='min_dropout_uV' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/driver.h' line='380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='linear_ranges' type-id='0c90828b' visibility='default' filepath='include/linux/regulator/driver.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='linear_range_selectors' type-id='5b2fd8e8' visibility='default' filepath='include/linux/regulator/driver.h' line='383' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='n_linear_ranges' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/driver.h' line='385' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='volt_table' type-id='5b2fd8e8' visibility='default' filepath='include/linux/regulator/driver.h' line='387' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='curr_table' type-id='5b2fd8e8' visibility='default' filepath='include/linux/regulator/driver.h' line='388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='vsel_range_reg' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='vsel_range_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='vsel_reg' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='vsel_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='393' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='vsel_step' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='394' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='csel_reg' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='csel_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='apply_reg' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='397' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='apply_bit' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1504'>
+          <var-decl name='enable_reg' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='enable_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='enable_val' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='disable_val' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1632'>
+          <var-decl name='enable_is_inverted' type-id='b50a4934' visibility='default' filepath='include/linux/regulator/driver.h' line='403' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='bypass_reg' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1696'>
+          <var-decl name='bypass_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='bypass_val_on' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1760'>
+          <var-decl name='bypass_val_off' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='407' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='active_discharge_on' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='408' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1824'>
+          <var-decl name='active_discharge_off' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='409' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='active_discharge_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='410' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1888'>
+          <var-decl name='active_discharge_reg' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='soft_start_reg' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1952'>
+          <var-decl name='soft_start_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='413' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='soft_start_val_on' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2016'>
+          <var-decl name='pull_down_reg' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='415' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='pull_down_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='416' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2080'>
+          <var-decl name='pull_down_val_on' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='417' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='ramp_reg' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='418' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2144'>
+          <var-decl name='ramp_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='ramp_delay_table' type-id='5b2fd8e8' visibility='default' filepath='include/linux/regulator/driver.h' line='420' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='n_ramp_values' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2272'>
+          <var-decl name='enable_time' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='off_on_delay' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='425' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2336'>
+          <var-decl name='poll_enabled_time' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='of_map_mode' type-id='17a94daa' visibility='default' filepath='include/linux/regulator/driver.h' line='429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/regulator/driver.h' line='431' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='458c097a'>
+        <parameter type-id='ccc13476'/>
+        <parameter type-id='30864cdc'/>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='354f7eb9'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='84a5c3d4' const='yes' id='4590ffe4'/>
+      <class-decl name='__kernel_old_timeval' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/time_types.h' line='25' column='1' id='4595b96b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tv_sec' type-id='6a11bd61' visibility='default' filepath='include/uapi/linux/time_types.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tv_usec' type-id='6a11bd61' visibility='default' filepath='include/uapi/linux/time_types.h' line='27' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='rt_mutex_base' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/rtmutex.h' line='23' column='1' id='45982b9d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='wait_lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/rtmutex.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='waiters' type-id='6fe1603d' visibility='default' filepath='include/linux/rtmutex.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='owner' type-id='f23e2572' visibility='default' filepath='include/linux/rtmutex.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='44b564e4' size-in-bits='64' id='4598a9be'/>
+      <pointer-type-def type-id='4e267e15' size-in-bits='64' id='4598bd2d'/>
+      <pointer-type-def type-id='5b44f06e' size-in-bits='64' id='459ae684'/>
+      <pointer-type-def type-id='cb8f6de1' size-in-bits='64' id='459bda15'/>
+      <class-decl name='zonelist' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/mmzone.h' line='996' column='1' id='459f31a7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='_zonerefs' type-id='c2eeb70e' visibility='default' filepath='include/linux/mmzone.h' line='997' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='45ae30ea'>
+        <parameter type-id='d02f4143'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='e9265215'/>
+      </function-type>
+      <function-type size-in-bits='64' id='45af6e9d'>
+        <parameter type-id='ac22ee2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='45bd3db7'>
+        <parameter type-id='bff05edb'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='1c63cc3f'/>
+        <return type-id='b59d7dce'/>
+      </function-type>
+      <enum-decl name='sock_shutdown_cmd' filepath='include/linux/net.h' line='91' column='1' id='45c08bac'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SHUT_RD' value='0'/>
+        <enumerator name='SHUT_WR' value='1'/>
+        <enumerator name='SHUT_RDWR' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='18ab9185' size-in-bits='64' id='45c2a1d1'/>
+      <pointer-type-def type-id='a5b2ff47' size-in-bits='64' id='45c81897'/>
+      <qualified-type-def type-id='fe070fe8' const='yes' id='45cc51cf'/>
+      <pointer-type-def type-id='03dc20ed' size-in-bits='64' id='45d07221'/>
+      <pointer-type-def type-id='590183f8' size-in-bits='64' id='45e13c1a'/>
+      <function-type size-in-bits='64' id='45e743e9'>
+        <parameter type-id='3dad1a48'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='restart_block' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/restart_block.h' line='25' column='1' id='45e819d6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='arch_data' type-id='7359adad' visibility='default' filepath='include/linux/restart_block.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fn' type-id='d5b25e9c' visibility='default' filepath='include/linux/restart_block.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='' type-id='ac5ab65b' visibility='default' filepath='include/linux/restart_block.h' line='28' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='58407416' size-in-bits='64' id='45ef3730'/>
+      <function-type size-in-bits='64' id='45f336bf'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='7395da04'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='67409b07' const='yes' id='45f3f04e'/>
+      <pointer-type-def type-id='8a49f2ad' size-in-bits='64' id='45f42df9'/>
+      <class-decl name='__drm_connnectors_state' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/drm/drm_atomic.h' line='183' column='1' id='45f4b23b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ptr' type-id='4db02c58' visibility='default' filepath='include/drm/drm_atomic.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='state' type-id='249ef586' visibility='default' filepath='include/drm/drm_atomic.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='old_state' type-id='249ef586' visibility='default' filepath='include/drm/drm_atomic.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='new_state' type-id='249ef586' visibility='default' filepath='include/drm/drm_atomic.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='out_fence_ptr' type-id='9f2cce4b' visibility='default' filepath='include/drm/drm_atomic.h' line='193' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a61c3661' size-in-bits='64' id='45f57ae5'/>
+      <pointer-type-def type-id='a8f464b7' size-in-bits='64' id='45fc9a43'/>
+      <pointer-type-def type-id='4b11cd33' size-in-bits='64' id='4605de5b'/>
+      <array-type-def dimensions='1' type-id='26a90f95' size-in-bits='512' id='460b55b1'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='46155a72'>
+        <parameter type-id='9a537bbe'/>
+        <parameter type-id='5629bd41'/>
+        <parameter type-id='37265457'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='0d029111' size-in-bits='64' id='4616a179'/>
+      <typedef-decl name='bsg_job_fn' type-id='f6192657' filepath='include/linux/bsg-lib.h' line='21' column='1' id='46181ad5'/>
+      <array-type-def dimensions='1' type-id='26a90f95' size-in-bits='192' id='461c9ed2'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <enum-decl name='bkops_status' filepath='drivers/scsi/ufs/ufs.h' line='384' column='1' id='462d2624'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='BKOPS_STATUS_NO_OP' value='0'/>
+        <enumerator name='BKOPS_STATUS_NON_CRITICAL' value='1'/>
+        <enumerator name='BKOPS_STATUS_PERF_IMPACT' value='2'/>
+        <enumerator name='BKOPS_STATUS_CRITICAL' value='3'/>
+        <enumerator name='BKOPS_STATUS_MAX' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='f4fc11c3' size-in-bits='64' id='46446973'/>
+      <pointer-type-def type-id='25126efb' size-in-bits='64' id='464a4247'/>
+      <class-decl name='xhci_command' size-in-bits='512' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='808' column='1' id='464bcd6b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='in_ctx' type-id='971e404f' visibility='default' filepath='drivers/usb/host/xhci.h' line='810' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='status' type-id='19c2251e' visibility='default' filepath='drivers/usb/host/xhci.h' line='811' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='slot_id' type-id='95e97e5e' visibility='default' filepath='drivers/usb/host/xhci.h' line='812' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='completion' type-id='389faaf7' visibility='default' filepath='drivers/usb/host/xhci.h' line='816' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='command_trb' type-id='2e0bb6d4' visibility='default' filepath='drivers/usb/host/xhci.h' line='817' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='cmd_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/xhci.h' line='818' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/usb/host/xhci.h' line='820' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='drivers/usb/host/xhci.h' line='821' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='855e3679' size-in-bits='64' id='464f84a9'/>
+      <pointer-type-def type-id='80b5c3cd' size-in-bits='64' id='46530b39'/>
+      <class-decl name='wake_irq' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/base/power/power.h' line='31' column='1' id='4657336c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/base/power/power.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='status' type-id='f0981eeb' visibility='default' filepath='drivers/base/power/power.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='irq' type-id='95e97e5e' visibility='default' filepath='drivers/base/power/power.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/base/power/power.h' line='35' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='309421a5' size-in-bits='64' id='465e35b9'/>
+      <class-decl name='bpf_ksym' size-in-bits='1728' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='698' column='1' id='466449bc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='7359adad' visibility='default' filepath='include/linux/bpf.h' line='699' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='end' type-id='7359adad' visibility='default' filepath='include/linux/bpf.h' line='700' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='e3204322' visibility='default' filepath='include/linux/bpf.h' line='701' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='lnode' type-id='72f469ec' visibility='default' filepath='include/linux/bpf.h' line='702' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='tnode' type-id='dc9cc7c7' visibility='default' filepath='include/linux/bpf.h' line='703' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='prog' type-id='b50a4934' visibility='default' filepath='include/linux/bpf.h' line='704' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f9981d75' size-in-bits='64' id='46658f89'/>
+      <function-type size-in-bits='64' id='4666032d'>
+        <parameter type-id='b94a2f7c'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='57109d59' size-in-bits='64' id='466c873d'/>
+      <array-type-def dimensions='1' type-id='b55def60' size-in-bits='512' id='467f4e10'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='46816f8f'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='29d28711'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='flow_dissector_key_basic' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/net/flow_dissector.h' line='42' column='1' id='4688baa5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='n_proto' type-id='84a5c3d4' visibility='default' filepath='include/net/flow_dissector.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='ip_proto' type-id='f9b06939' visibility='default' filepath='include/net/flow_dissector.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='padding' type-id='f9b06939' visibility='default' filepath='include/net/flow_dissector.h' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pps_event_time' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/pps_kernel.h' line='35' column='1' id='468f0837'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ts_real' type-id='40a816ad' visibility='default' filepath='include/linux/pps_kernel.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d093a820' size-in-bits='64' id='469599ea'/>
+      <class-decl name='xt_table' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='223' column='1' id='469df90e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='valid_hooks' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='private' type-id='b6316a7f' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ops' type-id='f7d53868' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='me' type-id='2730d015' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='af' type-id='892641a4' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='priority' type-id='95e97e5e' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='name' type-id='639bec1b' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='242' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9b087887' size-in-bits='64' id='469e947f'/>
+      <class-decl name='dma_fence_chain' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/linux/dma-fence-chain.h' line='25' column='1' id='46a08c7d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='ce8c45a3' visibility='default' filepath='include/linux/dma-fence-chain.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='prev' type-id='28271da3' visibility='default' filepath='include/linux/dma-fence-chain.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='prev_seqno' type-id='91ce1af9' visibility='default' filepath='include/linux/dma-fence-chain.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='fence' type-id='28271da3' visibility='default' filepath='include/linux/dma-fence-chain.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='' type-id='ac5ab5e0' visibility='default' filepath='include/linux/dma-fence-chain.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/dma-fence-chain.h' line='49' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='46a1625d'>
+        <parameter type-id='b7d8b860'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='hdmi_metadata_type' filepath='include/linux/hdmi.h' line='158' column='1' id='46a5cd93'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HDMI_STATIC_METADATA_TYPE1' value='0'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='46adf4c0'>
+        <parameter type-id='6dca061b'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='1ab3428c' size-in-bits='64' id='46ae908a'/>
+      <function-type size-in-bits='64' id='46af63cb'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='a84c031d'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='usb_phy_interface' filepath='include/linux/usb/phy.h' line='20' column='1' id='46b5771e'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='USBPHY_INTERFACE_MODE_UNKNOWN' value='0'/>
+        <enumerator name='USBPHY_INTERFACE_MODE_UTMI' value='1'/>
+        <enumerator name='USBPHY_INTERFACE_MODE_UTMIW' value='2'/>
+        <enumerator name='USBPHY_INTERFACE_MODE_ULPI' value='3'/>
+        <enumerator name='USBPHY_INTERFACE_MODE_SERIAL' value='4'/>
+        <enumerator name='USBPHY_INTERFACE_MODE_HSIC' value='5'/>
+      </enum-decl>
+      <class-decl name='ttm_buffer_object' size-in-bits='3648' is-struct='yes' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='118' column='1' id='46b5bb33'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='3bc524c0' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='bdev' type-id='2a9f6bcb' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='type' type-id='db1f3944' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2848'>
+          <var-decl name='page_alignment' type-id='8f92235e' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='destroy' type-id='7c7fffd6' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='resource' type-id='c0a9211d' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='ttm' type-id='c21baddd' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='deleted' type-id='b50a4934' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='lru' type-id='72f469ec' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='ddestroy' type-id='72f469ec' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='moving' type-id='28271da3' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='priority' type-id='f0981eeb' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3552'>
+          <var-decl name='pin_count' type-id='f0981eeb' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='sg' type-id='4adb0e6a' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='164' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1a35d82e' size-in-bits='64' id='46c30e4c'/>
+      <function-type size-in-bits='64' id='46c85660'>
+        <parameter type-id='fb1092f1'/>
+        <parameter type-id='2ae08426'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ida' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/idr.h' line='244' column='1' id='46ce60fb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='xa' type-id='d39738ac' visibility='default' filepath='include/linux/idr.h' line='245' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='i3c_ibi_payload' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/i3c/device.h' line='298' column='1' id='46cf92da'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='len' type-id='f0981eeb' visibility='default' filepath='include/linux/i3c/device.h' line='299' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/i3c/device.h' line='300' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4b2a0d9d' size-in-bits='64' id='46d1c941'/>
+      <class-decl name='drm_mode_create_dumb' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='977' column='1' id='46d25262'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='978' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='979' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bpp' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='980' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='981' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='handle' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='983' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='pitch' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='984' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='size' type-id='d3130597' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='985' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5ee42ab3' size-in-bits='64' id='46eaf6b3'/>
+      <qualified-type-def type-id='2eec6999' const='yes' id='46f53066'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/mmu.h' line='20' column='1' id='46f77458' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='28ee064c' visibility='default' filepath='arch/arm64/include/asm/mmu.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sigpage' type-id='eaa32e2f' visibility='default' filepath='arch/arm64/include/asm/mmu.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pinned' type-id='64615833' visibility='default' filepath='arch/arm64/include/asm/mmu.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='vdso' type-id='eaa32e2f' visibility='default' filepath='arch/arm64/include/asm/mmu.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/mmu.h' line='27' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='19c2251e' size-in-bits='544' id='46fc18d9'>
+        <subrange length='17' type-id='7ff19f0f' id='888ad0ed'/>
+      </array-type-def>
+      <pointer-type-def type-id='ab9643dd' size-in-bits='64' id='46ff135d'/>
+      <class-decl name='flowi_tunnel' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/flow.h' line='25' column='1' id='46ff7b8b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tun_id' type-id='0899c7ad' visibility='default' filepath='include/net/flow.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='4706793b'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='750dbc1d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='pstate_check_t' type-id='b21b8f21' filepath='arch/arm64/include/asm/insn.h' line='562' column='1' id='470b0e09'/>
+      <pointer-type-def type-id='f8ec0262' size-in-bits='64' id='470be30c'/>
+      <pointer-type-def type-id='c89dc0a4' size-in-bits='64' id='47150d4e'/>
+      <function-type size-in-bits='64' id='471695ce'>
+        <parameter type-id='b9aa0100'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='dql' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/dynamic_queue_limits.h' line='43' column='1' id='471cb386'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='num_queued' type-id='f0981eeb' visibility='default' filepath='include/linux/dynamic_queue_limits.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='adj_limit' type-id='f0981eeb' visibility='default' filepath='include/linux/dynamic_queue_limits.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='last_obj_cnt' type-id='f0981eeb' visibility='default' filepath='include/linux/dynamic_queue_limits.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='limit' type-id='f0981eeb' visibility='default' filepath='include/linux/dynamic_queue_limits.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='num_completed' type-id='f0981eeb' visibility='default' filepath='include/linux/dynamic_queue_limits.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='prev_ovlimit' type-id='f0981eeb' visibility='default' filepath='include/linux/dynamic_queue_limits.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='prev_num_queued' type-id='f0981eeb' visibility='default' filepath='include/linux/dynamic_queue_limits.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='prev_last_obj_cnt' type-id='f0981eeb' visibility='default' filepath='include/linux/dynamic_queue_limits.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='lowest_slack' type-id='f0981eeb' visibility='default' filepath='include/linux/dynamic_queue_limits.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='slack_start_time' type-id='7359adad' visibility='default' filepath='include/linux/dynamic_queue_limits.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='max_limit' type-id='f0981eeb' visibility='default' filepath='include/linux/dynamic_queue_limits.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='min_limit' type-id='f0981eeb' visibility='default' filepath='include/linux/dynamic_queue_limits.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='slack_hold_time' type-id='f0981eeb' visibility='default' filepath='include/linux/dynamic_queue_limits.h' line='64' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='471e0fee'>
+        <parameter type-id='eeaf504d'/>
+        <parameter type-id='a69af780'/>
+        <parameter type-id='26a90f95'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='kernfs_root' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/kernfs.h' line='193' column='1' id='471fc91b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kn' type-id='150efd3f' visibility='default' filepath='include/linux/kernfs.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/kernfs.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ino_idr' type-id='37ce495e' visibility='default' filepath='include/linux/kernfs.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='last_id_lowbits' type-id='19c2251e' visibility='default' filepath='include/linux/kernfs.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='id_highbits' type-id='19c2251e' visibility='default' filepath='include/linux/kernfs.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='syscall_ops' type-id='fefa8c5f' visibility='default' filepath='include/linux/kernfs.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='supers' type-id='72f469ec' visibility='default' filepath='include/linux/kernfs.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='deactivate_waitq' type-id='b5ab048f' visibility='default' filepath='include/linux/kernfs.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/kernfs.h' line='209' column='1'/>
+        </data-member>
+      </class-decl>
+      <union-decl name='ufs_crypto_capabilities' size-in-bits='32' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='303' column='1' id='4721c843'>
+        <data-member access='public'>
+          <var-decl name='reg_val' type-id='2f162548' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fcb' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='305' column='1'/>
+        </data-member>
+      </union-decl>
+      <function-type size-in-bits='64' id='47248e3d'>
+        <parameter type-id='7544e824'/>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='95e97e5e' size-in-bits='640' id='4725c728'>
+        <subrange length='20' type-id='7ff19f0f' id='fdca39cf'/>
+      </array-type-def>
+      <pointer-type-def type-id='13956559' size-in-bits='64' id='472eb409'/>
+      <class-decl name='crypto_aead' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/crypto/aead.h' line='152' column='1' id='472efbee'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='authsize' type-id='f0981eeb' visibility='default' filepath='include/crypto/aead.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='reqsize' type-id='f0981eeb' visibility='default' filepath='include/crypto/aead.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='base' type-id='0328c8b6' visibility='default' filepath='include/crypto/aead.h' line='156' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='47308153'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='13103032'/>
+        <parameter type-id='2ae08426'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='47344208'>
+        <parameter type-id='8bf55d78'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='34670896' size-in-bits='64' id='47365a28'/>
+      <function-type size-in-bits='64' id='473764d9'>
+        <parameter type-id='27675065'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='26a90f95'/>
+      </function-type>
+      <pointer-type-def type-id='96a19766' size-in-bits='64' id='473afbc8'/>
+      <class-decl name='lock_class_key' is-struct='yes' visibility='default' filepath='include/linux/lockdep_types.h' line='197' column='1' id='47479831'/>
+      <pointer-type-def type-id='49d94952' size-in-bits='64' id='47498e6c'/>
+      <pointer-type-def type-id='8f048e17' size-in-bits='64' id='474e5dcc'/>
+      <pointer-type-def type-id='8e4f6a60' size-in-bits='64' id='4753b592'/>
+      <pointer-type-def type-id='f9cce85e' size-in-bits='64' id='47541e34'/>
+      <pointer-type-def type-id='a4a37730' size-in-bits='64' id='47547dee'/>
+      <array-type-def dimensions='1' type-id='282b2805' size-in-bits='96' id='475a4bff'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <pointer-type-def type-id='d48e8481' size-in-bits='64' id='475ad931'/>
+      <array-type-def dimensions='1' type-id='380c7edc' size-in-bits='1472' id='47645c1d'>
+        <subrange length='23' type-id='7ff19f0f' id='fdd0f594'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='47658c9d'>
+        <parameter type-id='00ee50b8'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='Qdisc_ops' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/net/sch_generic.h' line='280' column='1' id='47692c1a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='d6369c88' visibility='default' filepath='include/net/sch_generic.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cl_ops' type-id='bb5ee79c' visibility='default' filepath='include/net/sch_generic.h' line='282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='id' type-id='ac1fa8c0' visibility='default' filepath='include/net/sch_generic.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='priv_size' type-id='95e97e5e' visibility='default' filepath='include/net/sch_generic.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='static_flags' type-id='f0981eeb' visibility='default' filepath='include/net/sch_generic.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='enqueue' type-id='3d6e005b' visibility='default' filepath='include/net/sch_generic.h' line='287' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dequeue' type-id='3d95b5f6' visibility='default' filepath='include/net/sch_generic.h' line='290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='peek' type-id='3d95b5f6' visibility='default' filepath='include/net/sch_generic.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='init' type-id='a84eb241' visibility='default' filepath='include/net/sch_generic.h' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='reset' type-id='5b4e5af0' visibility='default' filepath='include/net/sch_generic.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='destroy' type-id='5b4e5af0' visibility='default' filepath='include/net/sch_generic.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='change' type-id='a84eb241' visibility='default' filepath='include/net/sch_generic.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='attach' type-id='5b4e5af0' visibility='default' filepath='include/net/sch_generic.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='change_tx_queue_len' type-id='a959128b' visibility='default' filepath='include/net/sch_generic.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='change_real_num_tx' type-id='9b71f352' visibility='default' filepath='include/net/sch_generic.h' line='302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='dump' type-id='612567ad' visibility='default' filepath='include/net/sch_generic.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='dump_stats' type-id='edfa28b2' visibility='default' filepath='include/net/sch_generic.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='ingress_block_set' type-id='03862e5f' visibility='default' filepath='include/net/sch_generic.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='egress_block_set' type-id='03862e5f' visibility='default' filepath='include/net/sch_generic.h' line='310' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='ingress_block_get' type-id='c021fd31' visibility='default' filepath='include/net/sch_generic.h' line='312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='egress_block_get' type-id='c021fd31' visibility='default' filepath='include/net/sch_generic.h' line='313' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/net/sch_generic.h' line='315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/sch_generic.h' line='317' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='476a87f5'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='6b9b777a'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='ccbe56f6' size-in-bits='64' id='476eb32c'/>
+      <function-type size-in-bits='64' id='476ef610'>
+        <parameter type-id='e5411c2c'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='6d41ed4e' size-in-bits='64' id='47727520'/>
+      <pointer-type-def type-id='b073751e' size-in-bits='64' id='47800058'/>
+      <pointer-type-def type-id='e90b3b44' size-in-bits='64' id='4780e252'/>
+      <pointer-type-def type-id='94982f58' size-in-bits='64' id='4783492e'/>
+      <pointer-type-def type-id='57e8e954' size-in-bits='64' id='478384af'/>
+      <class-decl name='cpu_itimer' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/sched/signal.h' line='39' column='1' id='47841236'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='expires' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/signal.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='incr' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/signal.h' line='41' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='gs_port' size-in-bits='6016' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='101' column='1' id='4788f063'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='port' type-id='7e1e521a' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='port_lock' type-id='fb4018a0' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='port_usb' type-id='3921c1a0' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='port_num' type-id='f9b06939' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='read_pool' type-id='72f469ec' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='read_started' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3744'>
+          <var-decl name='read_allocated' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='read_queue' type-id='72f469ec' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3904'>
+          <var-decl name='n_read' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='push' type-id='5ad6e0ef' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5056'>
+          <var-decl name='write_pool' type-id='72f469ec' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='write_started' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5216'>
+          <var-decl name='write_allocated' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='port_write_buf' type-id='7664edcc' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5440'>
+          <var-decl name='drain_wait' type-id='b5ab048f' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5632'>
+          <var-decl name='write_busy' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5696'>
+          <var-decl name='close_wait' type-id='b5ab048f' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5888'>
+          <var-decl name='suspended' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5896'>
+          <var-decl name='start_delayed' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5904'>
+          <var-decl name='port_line_coding' type-id='d4a32434' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='130' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5d26fb4d' size-in-bits='64' id='478ed79d'/>
+      <class-decl name='deferred_freelist_item' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/dma-buf/heaps/deferred-free-helper.h' line='37' column='1' id='479592e1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nr_pages' type-id='b59d7dce' visibility='default' filepath='drivers/dma-buf/heaps/deferred-free-helper.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='free' type-id='eddc89a2' visibility='default' filepath='drivers/dma-buf/heaps/deferred-free-helper.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='drivers/dma-buf/heaps/deferred-free-helper.h' line='41' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='blk_ksm_keyslot' size-in-bits='448' is-struct='yes' visibility='default' filepath='block/keyslot-manager.c' line='39' column='1' id='479d017a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='slot_refs' type-id='49178f86' visibility='default' filepath='block/keyslot-manager.c' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='idle_slot_node' type-id='72f469ec' visibility='default' filepath='block/keyslot-manager.c' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hash_node' type-id='03a4a074' visibility='default' filepath='block/keyslot-manager.c' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='key' type-id='9baaf905' visibility='default' filepath='block/keyslot-manager.c' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ksm' type-id='bf8a20d2' visibility='default' filepath='block/keyslot-manager.c' line='44' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='47a16dfc'>
+        <parameter type-id='7a76d041'/>
+        <parameter type-id='9f763fd8'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c210d497' size-in-bits='64' id='47a1c9f4'/>
+      <function-type size-in-bits='64' id='47a8f7d6'>
+        <parameter type-id='4eae5cb0'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='47b43ff6'>
+        <parameter type-id='37175e4d'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='afd9eb4a' const='yes' id='47b4421d'/>
+      <pointer-type-def type-id='8552664d' size-in-bits='64' id='47b73425'/>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='512' id='47ba3182'>
+        <subrange length='64' type-id='7ff19f0f' id='b10be967'/>
+      </array-type-def>
+      <pointer-type-def type-id='399c9786' size-in-bits='64' id='47bc6b9c'/>
+      <typedef-decl name='unicode_t' type-id='19c2251e' filepath='include/linux/nls.h' line='23' column='1' id='47c2d8bc'/>
+      <pointer-type-def type-id='4aef34b6' size-in-bits='64' id='47cb2abc'/>
+      <function-type size-in-bits='64' id='47d2043e'>
+        <parameter type-id='6ed6b432'/>
+        <parameter type-id='f23e2572'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='fb6a0229' size-in-bits='13440' id='47d6ca3f'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <class-decl name='linux_binfmt' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/binfmts.h' line='99' column='1' id='47d6e76e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lh' type-id='72f469ec' visibility='default' filepath='include/linux/binfmts.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='module' type-id='2730d015' visibility='default' filepath='include/linux/binfmts.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='load_binary' type-id='c5c535b4' visibility='default' filepath='include/linux/binfmts.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='load_shlib' type-id='4da4101d' visibility='default' filepath='include/linux/binfmts.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='core_dump' type-id='be2c124b' visibility='default' filepath='include/linux/binfmts.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='min_coredump' type-id='7359adad' visibility='default' filepath='include/linux/binfmts.h' line='105' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='0584e65d' const='yes' id='47d6ff44'/>
+      <qualified-type-def type-id='610abebc' const='yes' id='47de6b15'/>
+      <pointer-type-def type-id='3b5e43e5' size-in-bits='64' id='47e17209'/>
+      <function-type size-in-bits='64' id='47e3b03f'>
+        <parameter type-id='3e3cd44f'/>
+        <parameter type-id='c675b073'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='uic_cmd_dme' filepath='drivers/scsi/ufs/ufshci.h' line='252' column='1' id='47e46889'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='UIC_CMD_DME_GET' value='1'/>
+        <enumerator name='UIC_CMD_DME_SET' value='2'/>
+        <enumerator name='UIC_CMD_DME_PEER_GET' value='3'/>
+        <enumerator name='UIC_CMD_DME_PEER_SET' value='4'/>
+        <enumerator name='UIC_CMD_DME_POWERON' value='16'/>
+        <enumerator name='UIC_CMD_DME_POWEROFF' value='17'/>
+        <enumerator name='UIC_CMD_DME_ENABLE' value='18'/>
+        <enumerator name='UIC_CMD_DME_RESET' value='20'/>
+        <enumerator name='UIC_CMD_DME_END_PT_RST' value='21'/>
+        <enumerator name='UIC_CMD_DME_LINK_STARTUP' value='22'/>
+        <enumerator name='UIC_CMD_DME_HIBER_ENTER' value='23'/>
+        <enumerator name='UIC_CMD_DME_HIBER_EXIT' value='24'/>
+        <enumerator name='UIC_CMD_DME_TEST_MODE' value='26'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='47ebc9bd'>
+        <parameter type-id='37175e4d'/>
+        <parameter type-id='bd70a631'/>
+        <parameter type-id='d586c6cc'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='7bd9942c' size-in-bits='64' id='47ed147a'/>
+      <function-type size-in-bits='64' id='47f058fa'>
+        <parameter type-id='226853d2'/>
+        <parameter type-id='f74174a4'/>
+        <parameter type-id='7292109c'/>
+        <parameter type-id='7292109c'/>
+        <parameter type-id='bd54fe1a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='8bb2c7be' size-in-bits='64' id='47f117d4'/>
+      <pointer-type-def type-id='43ffd497' size-in-bits='64' id='47f66a6b'/>
+      <qualified-type-def type-id='71e87d49' const='yes' id='47f81694'/>
+      <pointer-type-def type-id='b9d8dce4' size-in-bits='64' id='47fc8c26'/>
+      <pointer-type-def type-id='674bdea8' size-in-bits='64' id='4813c4da'/>
+      <pointer-type-def type-id='81c3d1f5' size-in-bits='64' id='4814c3f9'/>
+      <class-decl name='ip_ra_chain' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/ip.h' line='126' column='1' id='4816a146'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='00c4cbac' visibility='default' filepath='include/net/ip.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sk' type-id='f772df6d' visibility='default' filepath='include/net/ip.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='' type-id='ac5ab655' visibility='default' filepath='include/net/ip.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/ip.h' line='133' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d67e1739' size-in-bits='64' id='4817356d'/>
+      <pointer-type-def type-id='ed1a1b22' size-in-bits='64' id='48188d98'/>
+      <pointer-type-def type-id='9fddcab4' size-in-bits='64' id='4825f6ba'/>
+      <pointer-type-def type-id='fc72f170' size-in-bits='64' id='48268ca6'/>
+      <function-type size-in-bits='64' id='4827f223'>
+        <parameter type-id='83c1bde6'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='dwc3_request' size-in-bits='1664' is-struct='yes' visibility='default' filepath='drivers/usb/dwc3/core.h' line='918' column='1' id='48288128'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='request' type-id='43806adf' visibility='default' filepath='drivers/usb/dwc3/core.h' line='919' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='drivers/usb/dwc3/core.h' line='920' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='dep' type-id='b31af340' visibility='default' filepath='drivers/usb/dwc3/core.h' line='921' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='sg' type-id='bf3ef905' visibility='default' filepath='drivers/usb/dwc3/core.h' line='922' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='start_sg' type-id='bf3ef905' visibility='default' filepath='drivers/usb/dwc3/core.h' line='923' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='num_pending_sgs' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='925' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='num_queued_sgs' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='926' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='remaining' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='927' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='status' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='929' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='epnum' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='938' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='trb' type-id='0d6a59e1' visibility='default' filepath='drivers/usb/dwc3/core.h' line='939' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='trb_dma' type-id='cf29c9b3' visibility='default' filepath='drivers/usb/dwc3/core.h' line='940' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='num_trbs' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='942' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1504'>
+          <var-decl name='needs_extra_trb' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='944' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1505'>
+          <var-decl name='direction' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='945' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1506'>
+          <var-decl name='mapped' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='946' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/usb/dwc3/core.h' line='948' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='drivers/usb/dwc3/core.h' line='949' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='08594205' size-in-bits='64' id='482ccc39'/>
+      <class-decl name='fscrypt_dummy_policy' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/fscrypt.h' line='285' column='1' id='48399df0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='policy' type-id='a6223bf6' visibility='default' filepath='include/linux/fscrypt.h' line='286' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cda9f6b0' size-in-bits='64' id='483e8c3a'/>
+      <function-type size-in-bits='64' id='483ecac1'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='484541f8'>
+        <parameter type-id='0d08ac62'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='4151733d'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='3132e187' size-in-bits='64' id='484b400f'/>
+      <qualified-type-def type-id='b0b3cbf9' const='yes' id='484cd8ba'/>
+      <pointer-type-def type-id='03278979' size-in-bits='64' id='484cd9e5'/>
+      <function-type size-in-bits='64' id='4851ce38'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='7359adad'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4852a8ec'>
+        <parameter type-id='1c475548'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='genl_multicast_group' size-in-bits='136' is-struct='yes' visibility='default' filepath='include/net/genetlink.h' line='16' column='1' id='486f930e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='ac1fa8c0' visibility='default' filepath='include/net/genetlink.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/net/genetlink.h' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8ebff3ed' size-in-bits='64' id='4875dd9d'/>
+      <pointer-type-def type-id='23420063' size-in-bits='64' id='487818e7'/>
+      <pointer-type-def type-id='186b315c' size-in-bits='64' id='487dad0e'/>
+      <class-decl name='cec_msg' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/uapi/linux/cec.h' line='57' column='1' id='488c1da8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tx_ts' type-id='d3130597' visibility='default' filepath='include/uapi/linux/cec.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rx_ts' type-id='d3130597' visibility='default' filepath='include/uapi/linux/cec.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/cec.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='timeout' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/cec.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sequence' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/cec.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/cec.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='msg' type-id='9396cabb' visibility='default' filepath='include/uapi/linux/cec.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='reply' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/cec.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='392'>
+          <var-decl name='rx_status' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/cec.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='400'>
+          <var-decl name='tx_status' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/cec.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='408'>
+          <var-decl name='tx_arb_lost_cnt' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/cec.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='tx_nack_cnt' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/cec.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='424'>
+          <var-decl name='tx_low_drive_cnt' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/cec.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='432'>
+          <var-decl name='tx_error_cnt' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/cec.h' line='71' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b4c4ed0b' size-in-bits='64' id='4893ffdf'/>
+      <function-type size-in-bits='64' id='4898cbb1'>
+        <parameter type-id='513f51db'/>
+        <parameter type-id='9b7c55ef'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='snd_info_entry' size-in-bits='1408' is-struct='yes' visibility='default' filepath='include/sound/info.h' line='63' column='1' id='48ad5fc6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/sound/info.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mode' type-id='2594b00f' visibility='default' filepath='include/sound/info.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='size' type-id='bd54fe1a' visibility='default' filepath='include/sound/info.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='content' type-id='8efea9e5' visibility='default' filepath='include/sound/info.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='c' type-id='ac5ab620' visibility='default' filepath='include/sound/info.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='parent' type-id='b9608bfc' visibility='default' filepath='include/sound/info.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='module' type-id='2730d015' visibility='default' filepath='include/sound/info.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/info.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='private_free' type-id='93226281' visibility='default' filepath='include/sound/info.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='p' type-id='d077e928' visibility='default' filepath='include/sound/info.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='access' type-id='925167dc' visibility='default' filepath='include/sound/info.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='children' type-id='72f469ec' visibility='default' filepath='include/sound/info.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/sound/info.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/info.h' line='81' column='1'/>
+        </data-member>
+      </class-decl>
+      <type-decl name='void' id='48b5725f'/>
+      <class-decl name='media_pad' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/media/media-entity.h' line='189' column='1' id='48b94b91'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='graph_obj' type-id='9fdb75a6' visibility='default' filepath='include/media/media-entity.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='entity' type-id='19e05b5f' visibility='default' filepath='include/media/media-entity.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='index' type-id='1dc6a898' visibility='default' filepath='include/media/media-entity.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='sig_type' type-id='ec7f70f4' visibility='default' filepath='include/media/media-entity.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/media/media-entity.h' line='194' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9917f524' size-in-bits='64' id='48cf6abe'/>
+      <function-type size-in-bits='64' id='48d225c1'>
+        <parameter type-id='404b1300'/>
+        <parameter type-id='45492188'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e4960e7f' size-in-bits='64' id='48d231fb'/>
+      <class-decl name='wiphy_backport' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5417' column='1' id='48d5d0d9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='iftype_ext_capab2' type-id='5c74fd13' visibility='default' filepath='include/net/cfg80211.h' line='5418' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_iftype_ext_capab2' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5419' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='48d9bab6'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='61d12d26'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d8ad531a' size-in-bits='64' id='48d9f490'/>
+      <pointer-type-def type-id='0e143c35' size-in-bits='64' id='48daa4cd'/>
+      <function-type size-in-bits='64' id='48dbb365'>
+        <parameter type-id='47f117d4'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='kmsg_dump_reason' filepath='include/linux/kmsg_dump.h' line='23' column='1' id='48f4c0e2'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='KMSG_DUMP_UNDEF' value='0'/>
+        <enumerator name='KMSG_DUMP_PANIC' value='1'/>
+        <enumerator name='KMSG_DUMP_OOPS' value='2'/>
+        <enumerator name='KMSG_DUMP_EMERG' value='3'/>
+        <enumerator name='KMSG_DUMP_SHUTDOWN' value='4'/>
+        <enumerator name='KMSG_DUMP_MAX' value='5'/>
+      </enum-decl>
+      <pointer-type-def type-id='26ac6d87' size-in-bits='64' id='48fb164f'/>
+      <typedef-decl name='dio_iodone_t' type-id='7702511a' filepath='include/linux/fs.h' line='97' column='1' id='4904ecea'/>
+      <pointer-type-def type-id='136c624c' size-in-bits='64' id='49091f8e'/>
+      <class-decl name='ptrauth_key' size-in-bits='128' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/pointer_auth.h' line='21' column='1' id='490938eb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lo' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/pointer_auth.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hi' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/pointer_auth.h' line='22' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='vlan_group' size-in-bits='1216' is-struct='yes' visibility='default' filepath='net/8021q/vlan.h' line='22' column='1' id='491493f8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nr_vlan_devs' type-id='f0981eeb' visibility='default' filepath='net/8021q/vlan.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hlist' type-id='03a4a074' visibility='default' filepath='net/8021q/vlan.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='vlan_devices_arrays' type-id='e3f24c55' visibility='default' filepath='net/8021q/vlan.h' line='25' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='atomic_t' type-id='2ea91e03' filepath='include/linux/types.h' line='168' column='1' id='49178f86'/>
+      <qualified-type-def type-id='71d68b50' const='yes' id='4925ee5b'/>
+      <class-decl name='devfreq_dev_status' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/devfreq.h' line='58' column='1' id='49266711'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='total_time' type-id='7359adad' visibility='default' filepath='include/linux/devfreq.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='busy_time' type-id='7359adad' visibility='default' filepath='include/linux/devfreq.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='current_frequency' type-id='7359adad' visibility='default' filepath='include/linux/devfreq.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/devfreq.h' line='63' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e76f1d29' size-in-bits='64' id='4935400d'/>
+      <pointer-type-def type-id='0be82508' size-in-bits='64' id='4938abae'/>
+      <pointer-type-def type-id='5ae55c68' size-in-bits='64' id='493b1d22'/>
+      <pointer-type-def type-id='9018b878' size-in-bits='64' id='493df672'/>
+      <class-decl name='buffer_head' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/buffer_head.h' line='60' column='1' id='4943c066'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='b_state' type-id='7359adad' visibility='default' filepath='include/linux/buffer_head.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='b_this_page' type-id='c485c22c' visibility='default' filepath='include/linux/buffer_head.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='b_page' type-id='02f11ed4' visibility='default' filepath='include/linux/buffer_head.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='b_blocknr' type-id='a42536cd' visibility='default' filepath='include/linux/buffer_head.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='b_size' type-id='b59d7dce' visibility='default' filepath='include/linux/buffer_head.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='b_data' type-id='26a90f95' visibility='default' filepath='include/linux/buffer_head.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='b_bdev' type-id='b88dd945' visibility='default' filepath='include/linux/buffer_head.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='b_end_io' type-id='7874b245' visibility='default' filepath='include/linux/buffer_head.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='b_private' type-id='eaa32e2f' visibility='default' filepath='include/linux/buffer_head.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='b_assoc_buffers' type-id='72f469ec' visibility='default' filepath='include/linux/buffer_head.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='b_assoc_map' type-id='f57039f0' visibility='default' filepath='include/linux/buffer_head.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='b_count' type-id='49178f86' visibility='default' filepath='include/linux/buffer_head.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='b_uptodate_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/buffer_head.h' line='76' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='494c865e'>
+        <parameter type-id='27f3f5d8'/>
+        <parameter type-id='bf3ef905'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='0e3f80d9'/>
+      </function-type>
+      <qualified-type-def type-id='629c8d83' const='yes' id='4950fd30'/>
+      <pointer-type-def type-id='99fda9f5' size-in-bits='64' id='49526a0d'/>
+      <array-type-def dimensions='1' type-id='f0981eeb' size-in-bits='128' id='49580a63'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <pointer-type-def type-id='a5287adb' size-in-bits='64' id='495e518f'/>
+      <array-type-def dimensions='1' type-id='f0981eeb' size-in-bits='256' id='496104bf'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <typedef-decl name='__s64' type-id='1eb56b1e' filepath='include/uapi/asm-generic/int-ll64.h' line='30' column='1' id='49659421'/>
+      <array-type-def dimensions='1' type-id='f588f6e0' size-in-bits='infinite' id='4967766c'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='d44b2755' size-in-bits='64' id='496df6b5'/>
+      <pointer-type-def type-id='706f3909' size-in-bits='64' id='49728c6d'/>
+      <pointer-type-def type-id='0309b80f' size-in-bits='64' id='4974eb6b'/>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='112' id='497ff6fb'>
+        <subrange length='14' type-id='7ff19f0f' id='48882d96'/>
+      </array-type-def>
+      <pointer-type-def type-id='8b226e8b' size-in-bits='64' id='4980d45f'/>
+      <pointer-type-def type-id='0ca326b7' size-in-bits='64' id='4983ea36'/>
+      <class-decl name='utp_upiu_cmd' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='61' column='1' id='498490b9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='exp_data_transfer_len' type-id='78a133c2' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='cdb' type-id='9396cabb' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='63' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f4c2725e' size-in-bits='64' id='498944b4'/>
+      <pointer-type-def type-id='0e15337c' size-in-bits='64' id='498f47da'/>
+      <function-type size-in-bits='64' id='4993d1b5'>
+        <parameter type-id='4dfe71de'/>
+        <return type-id='91ce1af9'/>
+      </function-type>
+      <pointer-type-def type-id='bfa69bfb' size-in-bits='64' id='4998c99f'/>
+      <qualified-type-def type-id='ae89b201' const='yes' id='499c8dd8'/>
+      <class-decl name='static_key_true' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/jump_label.h' line='381' column='1' id='49a0ad34'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='key' type-id='00205383' visibility='default' filepath='include/linux/jump_label.h' line='382' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='49a390c7'>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='54f638e6' size-in-bits='64' id='49a58c0c'/>
+      <class-decl name='netdev_queue' size-in-bits='3584' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='588' column='1' id='49a7c5a7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/linux/netdevice.h' line='592' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='qdisc' type-id='ee406209' visibility='default' filepath='include/linux/netdevice.h' line='593' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='qdisc_sleeping' type-id='ee406209' visibility='default' filepath='include/linux/netdevice.h' line='594' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='include/linux/netdevice.h' line='596' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='tx_maxrate' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='601' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='trans_timeout' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='606' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='sb_dev' type-id='68a2d05b' visibility='default' filepath='include/linux/netdevice.h' line='609' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='pool' type-id='81e0c1b8' visibility='default' filepath='include/linux/netdevice.h' line='611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='_xmit_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/netdevice.h' line='616' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='xmit_lock_owner' type-id='95e97e5e' visibility='default' filepath='include/linux/netdevice.h' line='617' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='trans_start' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='621' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='state' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='623' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='dql' type-id='471cb386' visibility='default' filepath='include/linux/netdevice.h' line='626' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='629' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='630' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='631' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='632' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='60289ffb' size-in-bits='64' id='49ac960b'/>
+      <class-decl name='ehci_sitd' size-in-bits='768' is-struct='yes' visibility='default' filepath='drivers/usb/host/ehci.h' line='548' column='1' id='49addcd9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hw_next' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='hw_fullspeed_ep' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='552' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hw_uframe' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='553' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='hw_results' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hw_buf' type-id='df700ea3' visibility='default' filepath='drivers/usb/host/ehci.h' line='568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hw_backpointer' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='hw_buf_hi' type-id='df700ea3' visibility='default' filepath='drivers/usb/host/ehci.h' line='570' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='sitd_dma' type-id='cf29c9b3' visibility='default' filepath='drivers/usb/host/ehci.h' line='573' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='sitd_next' type-id='014fe25e' visibility='default' filepath='drivers/usb/host/ehci.h' line='574' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='urb' type-id='ab85b8f2' visibility='default' filepath='drivers/usb/host/ehci.h' line='576' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='stream' type-id='74ad1fb3' visibility='default' filepath='drivers/usb/host/ehci.h' line='577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='sitd_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/ehci.h' line='578' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='frame' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='579' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='580' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='p_log' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/fs_context.h' line='76' column='1' id='49afbfba'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prefix' type-id='80f4b756' visibility='default' filepath='include/linux/fs_context.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='log' type-id='d1a78aeb' visibility='default' filepath='include/linux/fs_context.h' line='78' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='260fd734' size-in-bits='64' id='49b40d32'/>
+      <class-decl name='trace_eval_map' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/tracepoint.h' line='28' column='1' id='49b910cc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='system' type-id='80f4b756' visibility='default' filepath='include/linux/tracepoint.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='eval_string' type-id='80f4b756' visibility='default' filepath='include/linux/tracepoint.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='eval_value' type-id='7359adad' visibility='default' filepath='include/linux/tracepoint.h' line='31' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='cf9b45ac' const='yes' id='49b990e7'/>
+      <typedef-decl name='pci_power_t' type-id='95e97e5e' filepath='include/linux/pci.h' line='162' column='1' id='49c32219'/>
+      <qualified-type-def type-id='91ce1af9' const='yes' id='49c81889'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='58' column='1' id='49ce3838' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='t391' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='t392' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='n391' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='n392' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='n393' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='lmi' type-id='8efea9e5' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='dce' type-id='8efea9e5' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='65' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7e283a70' size-in-bits='64' id='49ceb52d'/>
+      <enum-decl name='rproc_dump_mechanism' filepath='include/linux/remoteproc.h' line='464' column='1' id='49d2161f'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='RPROC_COREDUMP_DISABLED' value='0'/>
+        <enumerator name='RPROC_COREDUMP_ENABLED' value='1'/>
+        <enumerator name='RPROC_COREDUMP_INLINE' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='0430c455' size-in-bits='64' id='49d577e9'/>
+      <class-decl name='netns_packet' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/netns/packet.h' line='11' column='1' id='49d7aa74'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sklist_lock' type-id='925167dc' visibility='default' filepath='include/net/netns/packet.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='sklist' type-id='e151255a' visibility='default' filepath='include/net/netns/packet.h' line='13' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='49d94952'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='11f4a000'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='mutex_waiter' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/../kernel/locking/mutex.h' line='14' column='1' id='49dd9ce3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/../kernel/locking/mutex.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='task' type-id='f23e2572' visibility='default' filepath='include/../kernel/locking/mutex.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ww_ctx' type-id='c1d02a64' visibility='default' filepath='include/../kernel/locking/mutex.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2174d0b5' size-in-bits='64' id='49e46a4d'/>
+      <pointer-type-def type-id='c016e2d6' size-in-bits='64' id='49e4df08'/>
+      <pointer-type-def type-id='7df55081' size-in-bits='64' id='49f5e2e5'/>
+      <class-decl name='iio_info' size-in-bits='1152' is-struct='yes' visibility='default' filepath='include/linux/iio/iio.h' line='394' column='1' id='49f5fd4d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='event_attrs' type-id='8ff9530e' visibility='default' filepath='include/linux/iio/iio.h' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='attrs' type-id='8ff9530e' visibility='default' filepath='include/linux/iio/iio.h' line='396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='read_raw' type-id='933bd96c' visibility='default' filepath='include/linux/iio/iio.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='read_raw_multi' type-id='373a5a49' visibility='default' filepath='include/linux/iio/iio.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='read_avail' type-id='c967fe0a' visibility='default' filepath='include/linux/iio/iio.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='write_raw' type-id='ca9b89b2' visibility='default' filepath='include/linux/iio/iio.h' line='418' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='read_label' type-id='1140bef1' visibility='default' filepath='include/linux/iio/iio.h' line='424' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='write_raw_get_fmt' type-id='763c550c' visibility='default' filepath='include/linux/iio/iio.h' line='428' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='read_event_config' type-id='e6bda83a' visibility='default' filepath='include/linux/iio/iio.h' line='432' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='write_event_config' type-id='6cf6fae1' visibility='default' filepath='include/linux/iio/iio.h' line='437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='read_event_value' type-id='7ef1b01a' visibility='default' filepath='include/linux/iio/iio.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='write_event_value' type-id='fbb36f38' visibility='default' filepath='include/linux/iio/iio.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='validate_trigger' type-id='247cd24c' visibility='default' filepath='include/linux/iio/iio.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='update_scan_mode' type-id='b7f77f1f' visibility='default' filepath='include/linux/iio/iio.h' line='457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='debugfs_reg_access' type-id='f657670c' visibility='default' filepath='include/linux/iio/iio.h' line='459' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='of_xlate' type-id='d3d1201d' visibility='default' filepath='include/linux/iio/iio.h' line='462' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='hwfifo_set_watermark' type-id='9778250c' visibility='default' filepath='include/linux/iio/iio.h' line='464' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='hwfifo_flush_to_buffer' type-id='9778250c' visibility='default' filepath='include/linux/iio/iio.h' line='465' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d8da8ad2' size-in-bits='64' id='49f84764'/>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='48' id='4a008bc3'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <pointer-type-def type-id='f06f451b' size-in-bits='64' id='4a00a0f7'/>
+      <pointer-type-def type-id='64f32e32' size-in-bits='64' id='4a028f44'/>
+      <array-type-def dimensions='2' type-id='19c2251e' size-in-bits='448' id='4a031818'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+        <subrange length='7' type-id='7ff19f0f' id='16fc326e'/>
+      </array-type-def>
+      <pointer-type-def type-id='39486498' size-in-bits='64' id='4a06e68e'/>
+      <class-decl name='hid_device_id' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/mod_devicetable.h' line='172' column='1' id='4a0784fb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bus' type-id='d315442e' visibility='default' filepath='include/linux/mod_devicetable.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='group' type-id='d315442e' visibility='default' filepath='include/linux/mod_devicetable.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='vendor' type-id='3f1a6b60' visibility='default' filepath='include/linux/mod_devicetable.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='product' type-id='3f1a6b60' visibility='default' filepath='include/linux/mod_devicetable.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='driver_data' type-id='0791d6c8' visibility='default' filepath='include/linux/mod_devicetable.h' line='177' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='vb2_buffer' size-in-bits='4096' is-struct='yes' visibility='default' filepath='include/media/videobuf2-core.h' line='249' column='1' id='4a078c54'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vb2_queue' type-id='a05f1ecd' visibility='default' filepath='include/media/videobuf2-core.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='memory' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='num_planes' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='timestamp' type-id='91ce1af9' visibility='default' filepath='include/media/videobuf2-core.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='request' type-id='ac429605' visibility='default' filepath='include/media/videobuf2-core.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='req_obj' type-id='a5b7e4fd' visibility='default' filepath='include/media/videobuf2-core.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='state' type-id='550876cf' visibility='default' filepath='include/media/videobuf2-core.h' line='280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='synced' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='737'>
+          <var-decl name='prepared' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='738'>
+          <var-decl name='copied_timestamp' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='739'>
+          <var-decl name='need_cache_sync_on_prepare' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='740'>
+          <var-decl name='need_cache_sync_on_finish' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='planes' type-id='105eff46' visibility='default' filepath='include/media/videobuf2-core.h' line='287' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='queued_entry' type-id='72f469ec' visibility='default' filepath='include/media/videobuf2-core.h' line='288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='done_entry' type-id='72f469ec' visibility='default' filepath='include/media/videobuf2-core.h' line='289' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='4a164193'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4a1729fc'>
+        <parameter type-id='9d57e433'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='subsys_private' size-in-bits='4608' is-struct='yes' visibility='default' filepath='drivers/base/base.h' line='40' column='1' id='4a19d21e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='subsys' type-id='8cf069a2' visibility='default' filepath='drivers/base/base.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='devices_kset' type-id='89b70200' visibility='default' filepath='drivers/base/base.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='interfaces' type-id='72f469ec' visibility='default' filepath='drivers/base/base.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='drivers/base/base.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='drivers_kset' type-id='89b70200' visibility='default' filepath='drivers/base/base.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='klist_devices' type-id='6160a6ce' visibility='default' filepath='drivers/base/base.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='klist_drivers' type-id='6160a6ce' visibility='default' filepath='drivers/base/base.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='bus_notifier' type-id='708c2394' visibility='default' filepath='drivers/base/base.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='drivers_autoprobe' type-id='f0981eeb' visibility='default' filepath='drivers/base/base.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='bus' type-id='5e2671f8' visibility='default' filepath='drivers/base/base.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='glue_dirs' type-id='8cf069a2' visibility='default' filepath='drivers/base/base.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4544'>
+          <var-decl name='class' type-id='67aca04f' visibility='default' filepath='drivers/base/base.h' line='54' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6334ba8a' size-in-bits='64' id='4a1c3304'/>
+      <function-type size-in-bits='64' id='4a1c795d'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='6f262307'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='6dc73e71' size-in-bits='64' id='4a2371f8'/>
+      <qualified-type-def type-id='a15ecb0c' const='yes' id='4a35e585'/>
+      <pointer-type-def type-id='a9cba835' size-in-bits='64' id='4a390f11'/>
+      <pointer-type-def type-id='bccc4180' size-in-bits='64' id='4a3a4f46'/>
+      <class-decl name='gpio_array' size-in-bits='320' is-struct='yes' visibility='default' filepath='drivers/gpio/gpiolib.h' line='92' column='1' id='4a3a50c4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='desc' type-id='35c9579e' visibility='default' filepath='drivers/gpio/gpiolib.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='f0981eeb' visibility='default' filepath='drivers/gpio/gpiolib.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='chip' type-id='e324928d' visibility='default' filepath='drivers/gpio/gpiolib.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get_mask' type-id='1d2c2b85' visibility='default' filepath='drivers/gpio/gpiolib.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='set_mask' type-id='1d2c2b85' visibility='default' filepath='drivers/gpio/gpiolib.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='invert_mask' type-id='c99b5ecd' visibility='default' filepath='drivers/gpio/gpiolib.h' line='98' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='debugfs_blob_wrapper' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/debugfs.h' line='24' column='1' id='4a3e84b3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/debugfs.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='7359adad' visibility='default' filepath='include/linux/debugfs.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='59969f99' size-in-bits='64' id='4a3f5a61'/>
+      <array-type-def dimensions='1' type-id='eaa32e2f' size-in-bits='1280' id='4a460309'>
+        <subrange length='20' type-id='7ff19f0f' id='fdca39cf'/>
+      </array-type-def>
+      <pointer-type-def type-id='78c7ad97' size-in-bits='64' id='4a4ce85f'/>
+      <pointer-type-def type-id='66412cc1' size-in-bits='64' id='4a508205'/>
+      <function-type size-in-bits='64' id='4a568948'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='38ed603d'/>
+        <return type-id='68a2d05b'/>
+      </function-type>
+      <pointer-type-def type-id='56fa322d' size-in-bits='64' id='4a5aa6b9'/>
+      <array-type-def dimensions='1' type-id='b151a3a8' size-in-bits='64' id='4a744ea1'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <class-decl name='kretprobe_instance' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/kprobes.h' line='159' column='1' id='4a762919'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab66b' visibility='default' filepath='include/linux/kprobes.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='llist' type-id='c5ccfee8' visibility='default' filepath='include/linux/kprobes.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rph' type-id='1eb35fe2' visibility='default' filepath='include/linux/kprobes.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ret_addr' type-id='66a37d1e' visibility='default' filepath='include/linux/kprobes.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='fp' type-id='eaa32e2f' visibility='default' filepath='include/linux/kprobes.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='data' type-id='e84913bd' visibility='default' filepath='include/linux/kprobes.h' line='168' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='dr_match_t' type-id='7e69f315' filepath='include/linux/device.h' line='167' column='1' id='4a798fcf'/>
+      <class-decl name='uio_port' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/uio_driver.h' line='60' column='1' id='4a82abb2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/uio_driver.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='start' type-id='7359adad' visibility='default' filepath='include/linux/uio_driver.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='size' type-id='7359adad' visibility='default' filepath='include/linux/uio_driver.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='porttype' type-id='95e97e5e' visibility='default' filepath='include/linux/uio_driver.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='portio' type-id='e190fb78' visibility='default' filepath='include/linux/uio_driver.h' line='65' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e69c1394' size-in-bits='64' id='4a84e7de'/>
+      <pointer-type-def type-id='2731de48' size-in-bits='64' id='4a89adae'/>
+      <class-decl name='snd_soc_dapm_route' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/sound/soc-dapm.h' line='573' column='1' id='4a91f65b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sink' type-id='80f4b756' visibility='default' filepath='include/sound/soc-dapm.h' line='574' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='control' type-id='80f4b756' visibility='default' filepath='include/sound/soc-dapm.h' line='575' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='source' type-id='80f4b756' visibility='default' filepath='include/sound/soc-dapm.h' line='576' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='connected' type-id='4b433675' visibility='default' filepath='include/sound/soc-dapm.h' line='579' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dobj' type-id='01edcafc' visibility='default' filepath='include/sound/soc-dapm.h' line='582' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d5ace205' size-in-bits='64' id='4a935625'/>
+      <pointer-type-def type-id='fcf647be' size-in-bits='64' id='4a944438'/>
+      <function-type size-in-bits='64' id='4aa2ba58'>
+        <parameter type-id='41ebc58b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4aa54e65'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4aa6929c'>
+        <parameter type-id='ecb0ce18'/>
+        <parameter type-id='79a0948f'/>
+        <parameter type-id='6f074813'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4aa69d9c'>
+        <parameter type-id='2ba25712'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='fbc017ef'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4aaf059d'>
+        <parameter type-id='ec77b5b8'/>
+        <parameter type-id='572fbdca'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='b50a4934' const='yes' id='4ab96a04'/>
+      <array-type-def dimensions='1' type-id='c1880945' size-in-bits='448' id='4abea81e'>
+        <subrange length='7' type-id='7ff19f0f' id='16fc326e'/>
+      </array-type-def>
+      <pointer-type-def type-id='f6d2a7cd' size-in-bits='64' id='4acd4951'/>
+      <class-decl name='pm_qos_constraints' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/pm_qos.h' line='52' column='1' id='4ad5b81b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='57b0eed2' visibility='default' filepath='include/linux/pm_qos.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='target_value' type-id='a7832498' visibility='default' filepath='include/linux/pm_qos.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='default_value' type-id='a7832498' visibility='default' filepath='include/linux/pm_qos.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='no_constraint_value' type-id='a7832498' visibility='default' filepath='include/linux/pm_qos.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='type' type-id='1389f6b6' visibility='default' filepath='include/linux/pm_qos.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='notifiers' type-id='282b7312' visibility='default' filepath='include/linux/pm_qos.h' line='58' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c59e4f4c' size-in-bits='64' id='4adb0e6a'/>
+      <pointer-type-def type-id='7f16b755' size-in-bits='64' id='4add39c5'/>
+      <array-type-def dimensions='1' type-id='b50a4934' size-in-bits='64' id='4addcaf9'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='4ae18970'>
+        <parameter type-id='68a2d05b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='43af4ec3' size-in-bits='64' id='4ae52763'/>
+      <pointer-type-def type-id='c5392ac1' size-in-bits='64' id='4aecccbd'/>
+      <enum-decl name='ttm_caching' filepath='include/drm/ttm/ttm_caching.h' line='30' column='1' id='4aed510d'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ttm_uncached' value='0'/>
+        <enumerator name='ttm_write_combined' value='1'/>
+        <enumerator name='ttm_cached' value='2'/>
+      </enum-decl>
+      <class-decl name='v4l2_ctrl_h264_decode_params' size-in-bits='4480' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1583' column='1' id='4aef34b6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dpb' type-id='eefef0c1' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1584' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='nal_ref_idc' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1585' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4112'>
+          <var-decl name='frame_num' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1586' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4128'>
+          <var-decl name='top_field_order_cnt' type-id='3158a266' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1587' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='bottom_field_order_cnt' type-id='3158a266' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1588' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4192'>
+          <var-decl name='idr_pic_id' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1589' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4208'>
+          <var-decl name='pic_order_cnt_lsb' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1590' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='delta_pic_order_cnt_bottom' type-id='3158a266' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1591' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4256'>
+          <var-decl name='delta_pic_order_cnt0' type-id='3158a266' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1592' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='delta_pic_order_cnt1' type-id='3158a266' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1593' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4320'>
+          <var-decl name='dec_ref_pic_marking_bit_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1594' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='pic_order_cnt_bit_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1595' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4384'>
+          <var-decl name='slice_group_change_cycle' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1596' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='reserved' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1598' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4448'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1599' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1c171578' size-in-bits='64' id='4af717b2'/>
+      <qualified-type-def type-id='a7fa16d9' const='yes' id='4af8a458'/>
+      <function-type size-in-bits='64' id='4afdce44'>
+        <parameter type-id='f22e4524'/>
+        <parameter type-id='bb7889ed'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='snd_enc_generic' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/uapi/sound/compress_params.h' line='320' column='1' id='4afe6201'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bw' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='reserved' type-id='33e9f3ff' visibility='default' filepath='include/uapi/sound/compress_params.h' line='322' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9d5bbaaf' size-in-bits='64' id='4b03dddb'/>
+      <function-type size-in-bits='64' id='4b04075e'>
+        <parameter type-id='bd1c8eb6'/>
+        <parameter type-id='1d2c2b85'/>
+        <parameter type-id='1d2c2b85'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='836381ca' size-in-bits='64' id='4b080d34'/>
+      <qualified-type-def type-id='eacd353c' const='yes' id='4b09229d'/>
+      <pointer-type-def type-id='da3c754a' size-in-bits='64' id='4b0aea04'/>
+      <qualified-type-def type-id='6110442c' const='yes' id='4b11cd33'/>
+      <typedef-decl name='x25_hdlc_proto' type-id='1df0a5e7' filepath='include/uapi/linux/hdlc/ioctl.h' line='89' column='1' id='4b1b543a'/>
+      <qualified-type-def type-id='d2bd1e05' const='yes' id='4b1c1612'/>
+      <typedef-decl name='pte_t' type-id='c50bf92f' filepath='arch/arm64/include/asm/pgtable-types.h' line='23' column='1' id='4b2795fc'/>
+      <function-type size-in-bits='64' id='4b2a0d9d'>
+        <parameter type-id='8bf48c31'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a51c0f4a' size-in-bits='64' id='4b2c3420'/>
+      <pointer-type-def type-id='8634a879' size-in-bits='64' id='4b3074a5'/>
+      <qualified-type-def type-id='69a7508d' const='yes' id='4b349f6a'/>
+      <class-decl name='usb_gadget_strings' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/usb/gadget.h' line='811' column='1' id='4b365417'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='language' type-id='1dc6a898' visibility='default' filepath='include/linux/usb/gadget.h' line='812' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='strings' type-id='3b7e997b' visibility='default' filepath='include/linux/usb/gadget.h' line='813' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='4b3ae594'>
+        <parameter type-id='7727bbf2'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e5cda869' size-in-bits='64' id='4b433675'/>
+      <pointer-type-def type-id='3d045a53' size-in-bits='64' id='4b4b90b3'/>
+      <pointer-type-def type-id='e7176377' size-in-bits='64' id='4b4c62ab'/>
+      <function-type size-in-bits='64' id='4b4e7d36'>
+        <parameter type-id='c3a28778'/>
+        <parameter type-id='3dad1a48'/>
+        <parameter type-id='fb55efa1'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='91ce1af9' size-in-bits='4096' id='4b516a9c'>
+        <subrange length='64' type-id='7ff19f0f' id='b10be967'/>
+      </array-type-def>
+      <class-decl name='power_supply_battery_info' size-in-bits='3392' is-struct='yes' visibility='default' filepath='include/linux/power_supply.h' line='367' column='1' id='4b60a147'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='technology' type-id='f0981eeb' visibility='default' filepath='include/linux/power_supply.h' line='368' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='energy_full_design_uwh' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='369' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='charge_full_design_uah' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='voltage_min_design_uv' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='371' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='voltage_max_design_uv' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='tricklecharge_current_ua' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='373' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='precharge_current_ua' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='374' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='precharge_voltage_max_uv' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='charge_term_current_ua' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='charge_restart_voltage_uv' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='377' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='overvoltage_limit_uv' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='378' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='constant_charge_current_max_ua' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='constant_charge_voltage_max_uv' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='factory_internal_resistance_uohm' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='381' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ocv_temp' type-id='4725c728' visibility='default' filepath='include/linux/power_supply.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='temp_ambient_alert_min' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='383' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='temp_ambient_alert_max' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='384' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='temp_alert_min' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='385' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='temp_alert_max' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='temp_min' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='387' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='temp_max' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='ocv_table' type-id='774ff726' visibility='default' filepath='include/linux/power_supply.h' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='ocv_table_size' type-id='4725c728' visibility='default' filepath='include/linux/power_supply.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='resist_table' type-id='1fba25e2' visibility='default' filepath='include/linux/power_supply.h' line='391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='resist_table_size' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/power_supply.h' line='394' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='task_cputime_atomic' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/sched/signal.h' line='48' column='1' id='4b60fba4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='utime' type-id='28ee064c' visibility='default' filepath='include/linux/sched/signal.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='stime' type-id='28ee064c' visibility='default' filepath='include/linux/sched/signal.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sum_exec_runtime' type-id='28ee064c' visibility='default' filepath='include/linux/sched/signal.h' line='51' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='sdio_cis' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/mmc/card.h' line='226' column='1' id='4b644cf4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vendor' type-id='8efea9e5' visibility='default' filepath='include/linux/mmc/card.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='device' type-id='8efea9e5' visibility='default' filepath='include/linux/mmc/card.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='blksize' type-id='8efea9e5' visibility='default' filepath='include/linux/mmc/card.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max_dtr' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='230' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='4b6b0e29'>
+        <parameter type-id='5c745bb3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='8cfd5cb8' size-in-bits='64' id='4b6c509a'/>
+      <qualified-type-def type-id='f2ce689d' const='yes' id='4b72b472'/>
+      <function-type size-in-bits='64' id='4b7a84f4'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='047dcea8'/>
+        <parameter type-id='047dcea8'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4b7af74a'>
+        <parameter type-id='42c8f564'/>
+        <return type-id='a6223bf7'/>
+      </function-type>
+      <pointer-type-def type-id='025c78c3' size-in-bits='64' id='4b81d8e7'/>
+      <pointer-type-def type-id='a752caf1' size-in-bits='64' id='4b860c99'/>
+      <pointer-type-def type-id='dfe7e6ee' size-in-bits='64' id='4b872e00'/>
+      <pointer-type-def type-id='dbc7d793' size-in-bits='64' id='4b8b2cf3'/>
+      <function-type size-in-bits='64' id='4b8eb833'>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='7d1bac73' size-in-bits='64' id='4b90501b'/>
+      <pointer-type-def type-id='c2623161' size-in-bits='64' id='4b939911'/>
+      <function-type size-in-bits='64' id='4b9cd243'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='ae4f2ad5'/>
+        <parameter type-id='f93f4e09'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='hdr_static_metadata' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/hdmi.h' line='365' column='1' id='4ba022f8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='eotf' type-id='8f048e17' visibility='default' filepath='include/linux/hdmi.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='metadata_type' type-id='8f048e17' visibility='default' filepath='include/linux/hdmi.h' line='367' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='max_cll' type-id='d315442e' visibility='default' filepath='include/linux/hdmi.h' line='368' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='max_fall' type-id='d315442e' visibility='default' filepath='include/linux/hdmi.h' line='369' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='min_cll' type-id='d315442e' visibility='default' filepath='include/linux/hdmi.h' line='370' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cfa9604e' size-in-bits='64' id='4ba2bd6c'/>
+      <qualified-type-def type-id='a588cbed' const='yes' id='4ba7baf2'/>
+      <function-type size-in-bits='64' id='4baf5c00'>
+        <parameter type-id='7a5054b7'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4bb05fb0'>
+        <parameter type-id='e9b5d134'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4bbe36cb'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='89a2612a'/>
+        <parameter type-id='26a90f95'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <class-decl name='timestamp_event_queue' size-in-bits='32896' is-struct='yes' visibility='default' filepath='drivers/ptp/ptp_private.h' line='23' column='1' id='4bbf8a9c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='buf' type-id='8cf38aae' visibility='default' filepath='drivers/ptp/ptp_private.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32768'>
+          <var-decl name='head' type-id='95e97e5e' visibility='default' filepath='drivers/ptp/ptp_private.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32800'>
+          <var-decl name='tail' type-id='95e97e5e' visibility='default' filepath='drivers/ptp/ptp_private.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32832'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='drivers/ptp/ptp_private.h' line='27' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d297aced' size-in-bits='64' id='4bc4fd45'/>
+      <function-type size-in-bits='64' id='4bca7b9d'>
+        <parameter type-id='f23e2572'/>
+        <parameter type-id='6ed6b432'/>
+        <return type-id='6ed6b432'/>
+      </function-type>
+      <pointer-type-def type-id='7dfcb6b6' size-in-bits='64' id='4bcdfb80'/>
+      <function-type size-in-bits='64' id='4bd12e16'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='56ec2114'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4bda18f8'>
+        <parameter type-id='f5438ac7'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='configfs_subsystem' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/linux/configfs.h' line='224' column='1' id='4bdc1a8c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='su_group' type-id='f05eea43' visibility='default' filepath='include/linux/configfs.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='su_mutex' type-id='925167dc' visibility='default' filepath='include/linux/configfs.h' line='226' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='irqreturn_t' type-id='8086ea38' filepath='include/linux/irqreturn.h' line='17' column='1' id='4bdecfd7'/>
+      <pointer-type-def type-id='27cb404f' size-in-bits='64' id='4be14597'/>
+      <function-type size-in-bits='64' id='4be41eb0'>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7bb07bfa' size-in-bits='64' id='4be56288'/>
+      <qualified-type-def type-id='970ecd31' const='yes' id='4bf19232'/>
+      <pointer-type-def type-id='ad4a13f9' size-in-bits='64' id='4bf65d9d'/>
+      <class-decl name='virt_dma_chan' size-in-bits='2048' is-struct='yes' visibility='default' filepath='drivers/dma/virt-dma.h' line='22' column='1' id='4bf6badc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='chan' type-id='5e3b10aa' visibility='default' filepath='drivers/dma/virt-dma.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='task' type-id='7a7ea727' visibility='default' filepath='drivers/dma/virt-dma.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='desc_free' type-id='346a127c' visibility='default' filepath='drivers/dma/virt-dma.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='drivers/dma/virt-dma.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='desc_allocated' type-id='72f469ec' visibility='default' filepath='drivers/dma/virt-dma.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='desc_submitted' type-id='72f469ec' visibility='default' filepath='drivers/dma/virt-dma.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='desc_issued' type-id='72f469ec' visibility='default' filepath='drivers/dma/virt-dma.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='desc_completed' type-id='72f469ec' visibility='default' filepath='drivers/dma/virt-dma.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='desc_terminated' type-id='72f469ec' visibility='default' filepath='drivers/dma/virt-dma.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='cyclic' type-id='5264cf1d' visibility='default' filepath='drivers/dma/virt-dma.h' line='36' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='usb_otg_state' filepath='include/linux/usb/phy.h' line='45' column='1' id='4c0c8157'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='OTG_STATE_UNDEFINED' value='0'/>
+        <enumerator name='OTG_STATE_B_IDLE' value='1'/>
+        <enumerator name='OTG_STATE_B_SRP_INIT' value='2'/>
+        <enumerator name='OTG_STATE_B_PERIPHERAL' value='3'/>
+        <enumerator name='OTG_STATE_B_WAIT_ACON' value='4'/>
+        <enumerator name='OTG_STATE_B_HOST' value='5'/>
+        <enumerator name='OTG_STATE_A_IDLE' value='6'/>
+        <enumerator name='OTG_STATE_A_WAIT_VRISE' value='7'/>
+        <enumerator name='OTG_STATE_A_WAIT_BCON' value='8'/>
+        <enumerator name='OTG_STATE_A_HOST' value='9'/>
+        <enumerator name='OTG_STATE_A_SUSPEND' value='10'/>
+        <enumerator name='OTG_STATE_A_PERIPHERAL' value='11'/>
+        <enumerator name='OTG_STATE_A_WAIT_VFALL' value='12'/>
+        <enumerator name='OTG_STATE_A_VBUS_ERR' value='13'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='4c0e45bc'>
+        <parameter type-id='d1347205'/>
+        <parameter type-id='43c38462'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4c110a85'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='30864cdc'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ehci_qh' size-in-bits='1152' is-struct='yes' visibility='default' filepath='drivers/usb/host/ehci.h' line='406' column='1' id='4c1280d4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hw' type-id='a3740d42' visibility='default' filepath='drivers/usb/host/ehci.h' line='407' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='qh_dma' type-id='cf29c9b3' visibility='default' filepath='drivers/usb/host/ehci.h' line='409' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='qh_next' type-id='014fe25e' visibility='default' filepath='drivers/usb/host/ehci.h' line='410' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='qtd_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/ehci.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='intr_node' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/ehci.h' line='412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='dummy' type-id='251cfe5a' visibility='default' filepath='drivers/usb/host/ehci.h' line='413' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='unlink_node' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/ehci.h' line='414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='ps' type-id='a60134e4' visibility='default' filepath='drivers/usb/host/ehci.h' line='415' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='unlink_cycle' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='417' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='qh_state' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/ehci.h' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1064'>
+          <var-decl name='xacterrs' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/ehci.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1072'>
+          <var-decl name='unlink_reason' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/ehci.h' line='429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1080'>
+          <var-decl name='gap_uf' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/ehci.h' line='437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='is_out' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='439' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1089'>
+          <var-decl name='clearing_tt' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='440' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1090'>
+          <var-decl name='dequeue_during_giveback' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1091'>
+          <var-decl name='should_be_inactive' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='442' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='4c1698f3'>
+        <parameter type-id='ecb0ce18'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='c777e389'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4c16d0cc'>
+        <parameter type-id='7572cb33'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='bd54fe1a'/>
+      </function-type>
+      <pointer-type-def type-id='79b655f7' size-in-bits='64' id='4c257c03'/>
+      <pointer-type-def type-id='03f3693e' size-in-bits='64' id='4c2e6a7c'/>
+      <function-type size-in-bits='64' id='4c42814c'>
+        <parameter type-id='442b8d89'/>
+        <parameter type-id='bbeb954c'/>
+        <parameter type-id='35f4156d'/>
+        <parameter type-id='35f4156d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='da14b6a5' size-in-bits='64' id='4c592849'/>
+      <pointer-type-def type-id='3e6beeda' size-in-bits='64' id='4c59cd5c'/>
+      <function-type size-in-bits='64' id='4c671f3a'>
+        <parameter type-id='141b6427'/>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='ee48a0b3' size-in-bits='64' id='4c6bdb1f'/>
+      <pointer-type-def type-id='8ff31849' size-in-bits='64' id='4c72f20d'/>
+      <pointer-type-def type-id='5a678b43' size-in-bits='64' id='4c74ea47'/>
+      <class-decl name='v4l2_fmtdesc' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='784' column='1' id='4c772628'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='785' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='786' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='787' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='description' type-id='7e67d89d' visibility='default' filepath='include/uapi/linux/videodev2.h' line='788' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='pixelformat' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='789' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='mbus_code' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='790' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='reserved' type-id='3fa05d14' visibility='default' filepath='include/uapi/linux/videodev2.h' line='791' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='4c7af498'>
+        <parameter type-id='a6711537'/>
+        <parameter type-id='d0835005'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='7ba771af' size-in-bits='64' id='4c83bbe7'/>
+      <class-decl name='rhltable' size-in-bits='1344' is-struct='yes' visibility='default' filepath='include/linux/rhashtable-types.h' line='97' column='1' id='4c843043'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ht' type-id='9e095f93' visibility='default' filepath='include/linux/rhashtable-types.h' line='98' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='4c8ce8c5'>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='1c936db9'/>
+        <return type-id='721b74e7'/>
+      </function-type>
+      <class-decl name='tty_struct' size-in-bits='6656' is-struct='yes' visibility='default' filepath='include/linux/tty.h' line='144' column='1' id='4c8d9cac'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='magic' type-id='95e97e5e' visibility='default' filepath='include/linux/tty.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='include/linux/tty.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/tty.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='driver' type-id='c2b4b27b' visibility='default' filepath='include/linux/tty.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ops' type-id='f2c18b44' visibility='default' filepath='include/linux/tty.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='index' type-id='95e97e5e' visibility='default' filepath='include/linux/tty.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ldisc_sem' type-id='d3aa38f0' visibility='default' filepath='include/linux/tty.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='ldisc' type-id='e0bbd59c' visibility='default' filepath='include/linux/tty.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='atomic_write_lock' type-id='925167dc' visibility='default' filepath='include/linux/tty.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='legacy_mutex' type-id='925167dc' visibility='default' filepath='include/linux/tty.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='throttle_mutex' type-id='925167dc' visibility='default' filepath='include/linux/tty.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='termios_rwsem' type-id='f19fdb93' visibility='default' filepath='include/linux/tty.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='winsize_mutex' type-id='925167dc' visibility='default' filepath='include/linux/tty.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='termios' type-id='2f8662b5' visibility='default' filepath='include/linux/tty.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3168'>
+          <var-decl name='termios_locked' type-id='2f8662b5' visibility='default' filepath='include/linux/tty.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='name' type-id='59daf3ef' visibility='default' filepath='include/linux/tty.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/tty.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='count' type-id='95e97e5e' visibility='default' filepath='include/linux/tty.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4128'>
+          <var-decl name='winsize' type-id='a818b7a0' visibility='default' filepath='include/linux/tty.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='flow' type-id='e7f44001' visibility='default' filepath='include/linux/tty.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='ctrl' type-id='e7f44002' visibility='default' filepath='include/linux/tty.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4544'>
+          <var-decl name='hw_stopped' type-id='95e97e5e' visibility='default' filepath='include/linux/tty.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4576'>
+          <var-decl name='receive_room' type-id='f0981eeb' visibility='default' filepath='include/linux/tty.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4608'>
+          <var-decl name='flow_change' type-id='95e97e5e' visibility='default' filepath='include/linux/tty.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4672'>
+          <var-decl name='link' type-id='572fbdca' visibility='default' filepath='include/linux/tty.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='fasync' type-id='5bb9c75d' visibility='default' filepath='include/linux/tty.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='write_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/tty.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='read_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/tty.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='hangup_work' type-id='ef9025d0' visibility='default' filepath='include/linux/tty.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='disc_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/tty.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5632'>
+          <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/tty.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5696'>
+          <var-decl name='files_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/tty.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5760'>
+          <var-decl name='tty_files' type-id='72f469ec' visibility='default' filepath='include/linux/tty.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5888'>
+          <var-decl name='closing' type-id='95e97e5e' visibility='default' filepath='include/linux/tty.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5952'>
+          <var-decl name='write_buf' type-id='cf536864' visibility='default' filepath='include/linux/tty.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6016'>
+          <var-decl name='write_cnt' type-id='95e97e5e' visibility='default' filepath='include/linux/tty.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='SAK_work' type-id='ef9025d0' visibility='default' filepath='include/linux/tty.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='port' type-id='ec77b5b8' visibility='default' filepath='include/linux/tty.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6528'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/tty.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6592'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/tty.h' line='208' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a5dc8838' size-in-bits='64' id='4c9695fa'/>
+      <class-decl name='ethtool_eth_ctrl_stats' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/ethtool.h' line='298' column='1' id='4c98260a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='MACControlFramesTransmitted' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='299' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='MACControlFramesReceived' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='UnsupportedOpcodesReceived' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='301' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9a9d8c1d' size-in-bits='64' id='4c98e95d'/>
+      <class-decl name='genpd_lock_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/base/power/domain.c' line='45' column='1' id='4c993ea6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='cccdf8f0' visibility='default' filepath='drivers/base/power/domain.c' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='lock_nested' type-id='795e6e5f' visibility='default' filepath='drivers/base/power/domain.c' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lock_interruptible' type-id='16052051' visibility='default' filepath='drivers/base/power/domain.c' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='unlock' type-id='cccdf8f0' visibility='default' filepath='drivers/base/power/domain.c' line='49' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='76f8f8bb' size-in-bits='64' id='4c9f335b'/>
+      <class-decl name='scmi_protocol_handle' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='236' column='1' id='4ca01201'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='xops' type-id='5836a47f' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='set_priv' type-id='6c473266' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get_priv' type-id='181cff2f' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='240' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tracepoint' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/tracepoint-defs.h' line='32' column='1' id='4ca0c298'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/tracepoint-defs.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='key' type-id='00205383' visibility='default' filepath='include/linux/tracepoint-defs.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='static_call_key' type-id='f859cd7e' visibility='default' filepath='include/linux/tracepoint-defs.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='static_call_tramp' type-id='eaa32e2f' visibility='default' filepath='include/linux/tracepoint-defs.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='iterator' type-id='eaa32e2f' visibility='default' filepath='include/linux/tracepoint-defs.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='regfunc' type-id='1db260e5' visibility='default' filepath='include/linux/tracepoint-defs.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='unregfunc' type-id='953b12f8' visibility='default' filepath='include/linux/tracepoint-defs.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='funcs' type-id='484b400f' visibility='default' filepath='include/linux/tracepoint-defs.h' line='40' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='xfrm_lifetime_cfg' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/uapi/linux/xfrm.h' line='66' column='1' id='4ca5f2ad'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='soft_byte_limit' type-id='d3130597' visibility='default' filepath='include/uapi/linux/xfrm.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hard_byte_limit' type-id='d3130597' visibility='default' filepath='include/uapi/linux/xfrm.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='soft_packet_limit' type-id='d3130597' visibility='default' filepath='include/uapi/linux/xfrm.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hard_packet_limit' type-id='d3130597' visibility='default' filepath='include/uapi/linux/xfrm.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='soft_add_expires_seconds' type-id='d3130597' visibility='default' filepath='include/uapi/linux/xfrm.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='hard_add_expires_seconds' type-id='d3130597' visibility='default' filepath='include/uapi/linux/xfrm.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='soft_use_expires_seconds' type-id='d3130597' visibility='default' filepath='include/uapi/linux/xfrm.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='hard_use_expires_seconds' type-id='d3130597' visibility='default' filepath='include/uapi/linux/xfrm.h' line='74' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='e7f43fbc' size-in-bits='2048' id='4cb10997'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='4cb2ce2a'>
+        <parameter type-id='00ee50b8'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <pointer-type-def type-id='148c2b1d' size-in-bits='64' id='4cb5819d'/>
+      <array-type-def dimensions='1' type-id='e7f44072' size-in-bits='13440' id='4cb7c55c'>
+        <subrange length='15' type-id='7ff19f0f' id='8484ba73'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='4cbeea4d'>
+        <parameter type-id='e324928d'/>
+        <parameter type-id='1d2c2b85'/>
+        <parameter type-id='1d2c2b85'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4cc265e6'>
+        <parameter type-id='236f06da'/>
+        <parameter type-id='2ce52478'/>
+        <parameter type-id='354f7eb9'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='drm_rect' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/drm/drm_rect.h' line='46' column='1' id='4ccdd8a9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='x1' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_rect.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='y1' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_rect.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='x2' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_rect.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='y2' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_rect.h' line='47' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='media_entity_enum' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/media/media-entity.h' line='72' column='1' id='4cd55af5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bmap' type-id='1d2c2b85' visibility='default' filepath='include/media/media-entity.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='idx_max' type-id='95e97e5e' visibility='default' filepath='include/media/media-entity.h' line='74' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_descriptor_header' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='280' column='1' id='4cd738bd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='282' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='dcc94796' size-in-bits='64' id='4cdbecf4'/>
+      <class-decl name='regulator_coupler' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/regulator/coupler.h' line='41' column='1' id='4ceb5ab5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/regulator/coupler.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='attach_regulator' type-id='55a10ce6' visibility='default' filepath='include/linux/regulator/coupler.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='detach_regulator' type-id='55a10ce6' visibility='default' filepath='include/linux/regulator/coupler.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='balance_voltage' type-id='08b1f4aa' visibility='default' filepath='include/linux/regulator/coupler.h' line='48' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='4cef7edc'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='eced47f6'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='968d5b5b' const='yes' id='4cf04ec2'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/u64_stats_sync.h' line='77' column='1' id='4cf12e29' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='v' type-id='7da7300e' visibility='default' filepath='include/linux/u64_stats_sync.h' line='78' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='ZSTD_customMem' type-id='5844d955' filepath='lib/zstd/zstd_internal.h' line='233' column='1' id='4cf8679c'/>
+      <array-type-def dimensions='1' type-id='002ac4a6' size-in-bits='48' id='4cfa781a'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <pointer-type-def type-id='c4987890' size-in-bits='64' id='4d01b8d2'/>
+      <pointer-type-def type-id='1c0d3c63' size-in-bits='64' id='4d01ede7'/>
+      <pointer-type-def type-id='9aadee6c' size-in-bits='64' id='4d03589b'/>
+      <pointer-type-def type-id='a7f990dc' size-in-bits='64' id='4d0e1dee'/>
+      <function-type size-in-bits='64' id='4d1587e0'>
+        <parameter type-id='aa9ea333'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4d1a6f34'>
+        <parameter type-id='41ebc58b'/>
+        <parameter type-id='cc769659'/>
+        <return type-id='41ebc58b'/>
+      </function-type>
+      <class-decl name='mbox_chan_ops' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/mailbox_controller.h' line='46' column='1' id='4d1a8c39'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='send_data' type-id='9f8ab0a2' visibility='default' filepath='include/linux/mailbox_controller.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flush' type-id='cead4188' visibility='default' filepath='include/linux/mailbox_controller.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='startup' type-id='f7bc2858' visibility='default' filepath='include/linux/mailbox_controller.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='shutdown' type-id='a9035179' visibility='default' filepath='include/linux/mailbox_controller.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='last_tx_done' type-id='921a362a' visibility='default' filepath='include/linux/mailbox_controller.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='peek_data' type-id='921a362a' visibility='default' filepath='include/linux/mailbox_controller.h' line='52' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3191191a' size-in-bits='64' id='4d2e08b4'/>
+      <function-type size-in-bits='64' id='4d3ea3f3'>
+        <parameter type-id='2ce52478'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='bbaf3419'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4d41685b'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='7b332e1c'/>
+        <parameter type-id='6301fad2'/>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='d1499e71'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='bd54fe1a' size-in-bits='2560' id='4d41a616'>
+        <subrange length='40' type-id='7ff19f0f' id='8f80b239'/>
+      </array-type-def>
+      <class-decl name='snd_soc_tplg_ctl_tlv' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='257' column='1' id='4d52b2c7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab6b0' visibility='default' filepath='include/uapi/sound/asoc.h' line='260' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='f0981eeb' size-in-bits='160' id='4d5a4f46'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='4d5c3e51'>
+        <parameter type-id='2661e0d9'/>
+        <parameter type-id='63e171df'/>
+        <parameter type-id='cf29c9b3'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='483ecac1' size-in-bits='64' id='4d6d9805'/>
+      <function-type size-in-bits='64' id='4d6fc4c7'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='8efea9e5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='88' id='4d77ae82'>
+        <subrange length='11' type-id='7ff19f0f' id='847bc017'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='96' id='4d79ed19'>
+        <subrange length='12' type-id='7ff19f0f' id='84827bdc'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='120' id='4d823bde'>
+        <subrange length='15' type-id='7ff19f0f' id='8484ba73'/>
+      </array-type-def>
+      <class-decl name='snd_soc_jack' size-in-bits='1408' is-struct='yes' visibility='default' filepath='include/sound/soc-jack.h' line='82' column='1' id='4d855bce'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='include/sound/soc-jack.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='jack' type-id='0f5a7eb8' visibility='default' filepath='include/sound/soc-jack.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='card' type-id='3059cd0b' visibility='default' filepath='include/sound/soc-jack.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='pins' type-id='72f469ec' visibility='default' filepath='include/sound/soc-jack.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='status' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-jack.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='notifier' type-id='708c2394' visibility='default' filepath='include/sound/soc-jack.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='jack_zones' type-id='72f469ec' visibility='default' filepath='include/sound/soc-jack.h' line='89' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='sync_serial_settings' type-id='c37ef5e1' filepath='include/uapi/linux/hdlc/ioctl.h' line='44' column='1' id='4d8b71ac'/>
+      <pointer-type-def type-id='100ce309' size-in-bits='64' id='4d8f5625'/>
+      <function-type size-in-bits='64' id='4d94804e'>
+        <parameter type-id='40735a95'/>
+        <parameter type-id='7ac48c21'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='dma_buf_export_info' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/dma-buf.h' line='627' column='1' id='4da0249b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='exp_name' type-id='80f4b756' visibility='default' filepath='include/linux/dma-buf.h' line='628' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/dma-buf.h' line='629' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ops' type-id='c248c11b' visibility='default' filepath='include/linux/dma-buf.h' line='630' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='include/linux/dma-buf.h' line='631' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/linux/dma-buf.h' line='632' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='resv' type-id='340cea9c' visibility='default' filepath='include/linux/dma-buf.h' line='633' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/dma-buf.h' line='634' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/dma-buf.h' line='636' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/dma-buf.h' line='637' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='xfrm_algo' size-in-bits='544' is-struct='yes' visibility='default' filepath='include/uapi/linux/xfrm.h' line='102' column='1' id='4da03818'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='alg_name' type-id='59daf3ef' visibility='default' filepath='include/uapi/linux/xfrm.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='alg_key_len' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/xfrm.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='alg_key' type-id='e84913bd' visibility='default' filepath='include/uapi/linux/xfrm.h' line='105' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='02913b69' size-in-bits='64' id='4da04a79'/>
+      <pointer-type-def type-id='d07af849' size-in-bits='64' id='4da4101d'/>
+      <pointer-type-def type-id='0360a184' size-in-bits='64' id='4da45462'/>
+      <function-type size-in-bits='64' id='4da67c03'>
+        <parameter type-id='2cb4dc09'/>
+        <parameter type-id='d8e6b335'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f02c18fa' size-in-bits='64' id='4db02c58'/>
+      <class-decl name='hdmi_vendor_infoframe' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/hdmi.h' line='354' column='1' id='4db10e5c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='c573b339' visibility='default' filepath='include/linux/hdmi.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='version' type-id='002ac4a6' visibility='default' filepath='include/linux/hdmi.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='length' type-id='002ac4a6' visibility='default' filepath='include/linux/hdmi.h' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='oui' type-id='f0981eeb' visibility='default' filepath='include/linux/hdmi.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='vic' type-id='f9b06939' visibility='default' filepath='include/linux/hdmi.h' line='359' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='s3d_struct' type-id='7c6e6e72' visibility='default' filepath='include/linux/hdmi.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='s3d_ext_data' type-id='f0981eeb' visibility='default' filepath='include/linux/hdmi.h' line='361' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='6c57d4a8' const='yes' id='4db19167'/>
+      <pointer-type-def type-id='289e9467' size-in-bits='64' id='4dbb0953'/>
+      <qualified-type-def type-id='bd5f6464' const='yes' id='4dbb5689'/>
+      <pointer-type-def type-id='b01bc938' size-in-bits='64' id='4dbd8756'/>
+      <class-decl name='cpudl_item' size-in-bits='128' is-struct='yes' visibility='default' filepath='kernel/sched/cpudeadline.h' line='5' column='1' id='4dc01f59'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dl' type-id='91ce1af9' visibility='default' filepath='kernel/sched/cpudeadline.h' line='6' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cpu' type-id='95e97e5e' visibility='default' filepath='kernel/sched/cpudeadline.h' line='7' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='idx' type-id='95e97e5e' visibility='default' filepath='kernel/sched/cpudeadline.h' line='8' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='4dd76d14'>
+        <parameter type-id='aa29ecab'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='spi_message' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/linux/spi/spi.h' line='1013' column='1' id='4dd90c3d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='transfers' type-id='72f469ec' visibility='default' filepath='include/linux/spi/spi.h' line='1014' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='spi' type-id='e90f4666' visibility='default' filepath='include/linux/spi/spi.h' line='1016' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='is_dma_mapped' type-id='f0981eeb' visibility='default' filepath='include/linux/spi/spi.h' line='1018' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='complete' type-id='b7f9d8e6' visibility='default' filepath='include/linux/spi/spi.h' line='1032' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='context' type-id='eaa32e2f' visibility='default' filepath='include/linux/spi/spi.h' line='1033' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='frame_length' type-id='f0981eeb' visibility='default' filepath='include/linux/spi/spi.h' line='1034' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='actual_length' type-id='f0981eeb' visibility='default' filepath='include/linux/spi/spi.h' line='1035' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='status' type-id='95e97e5e' visibility='default' filepath='include/linux/spi/spi.h' line='1036' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='queue' type-id='72f469ec' visibility='default' filepath='include/linux/spi/spi.h' line='1042' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='state' type-id='eaa32e2f' visibility='default' filepath='include/linux/spi/spi.h' line='1043' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='resources' type-id='72f469ec' visibility='default' filepath='include/linux/spi/spi.h' line='1046' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/spi/spi.h' line='1048' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='86af1f09' size-in-bits='64' id='4ddb6991'/>
+      <pointer-type-def type-id='d39c42ab' size-in-bits='64' id='4dec003b'/>
+      <function-type size-in-bits='64' id='4dedc1bb'>
+        <parameter type-id='4db02c58'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='16f83885' const='yes' id='4df548b2'/>
+      <class-decl name='iommu_flush_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/io-pgtable.h' line='39' column='1' id='4df659d8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tlb_flush_all' type-id='b7f9d8e6' visibility='default' filepath='include/linux/io-pgtable.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tlb_flush_walk' type-id='cbe8ceae' visibility='default' filepath='include/linux/io-pgtable.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tlb_add_page' type-id='2adcf411' visibility='default' filepath='include/linux/io-pgtable.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='mq_rq_state' filepath='include/linux/blkdev.h' line='108' column='1' id='4df77f20'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='MQ_RQ_IDLE' value='0'/>
+        <enumerator name='MQ_RQ_IN_FLIGHT' value='1'/>
+        <enumerator name='MQ_RQ_COMPLETE' value='2'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='24' id='4df9d64a'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='4dfbfd80'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='6dca061b'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='30864cdc'/>
+        <parameter type-id='63e171df'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='90d08a78' size-in-bits='64' id='4dfe71de'/>
+      <class-decl name='ieee80211_he_cap_elem' size-in-bits='136' is-struct='yes' visibility='default' filepath='include/linux/ieee80211.h' line='1826' column='1' id='4dffc3f2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mac_cap_info' type-id='cf1a4160' visibility='default' filepath='include/linux/ieee80211.h' line='1827' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='phy_cap_info' type-id='4d77ae82' visibility='default' filepath='include/linux/ieee80211.h' line='1828' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='850c13f6' size-in-bits='64' id='4e034354'/>
+      <class-decl name='proto_ops' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/linux/net.h' line='138' column='1' id='4e0399c2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='family' type-id='95e97e5e' visibility='default' filepath='include/linux/net.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/net.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='release' type-id='27936440' visibility='default' filepath='include/linux/net.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bind' type-id='c9664af8' visibility='default' filepath='include/linux/net.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='connect' type-id='be6c7be7' visibility='default' filepath='include/linux/net.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='socketpair' type-id='be3a232b' visibility='default' filepath='include/linux/net.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='accept' type-id='2136470b' visibility='default' filepath='include/linux/net.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='getname' type-id='c9664af8' visibility='default' filepath='include/linux/net.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='poll' type-id='e93ad56e' visibility='default' filepath='include/linux/net.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ioctl' type-id='82a9a11e' visibility='default' filepath='include/linux/net.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='compat_ioctl' type-id='82a9a11e' visibility='default' filepath='include/linux/net.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='gettstamp' type-id='d78dd406' visibility='default' filepath='include/linux/net.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='listen' type-id='6dfd92af' visibility='default' filepath='include/linux/net.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='shutdown' type-id='6dfd92af' visibility='default' filepath='include/linux/net.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='setsockopt' type-id='47365a28' visibility='default' filepath='include/linux/net.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='getsockopt' type-id='a9c0cdab' visibility='default' filepath='include/linux/net.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='show_fdinfo' type-id='1767a135' visibility='default' filepath='include/linux/net.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='sendmsg' type-id='f38728c0' visibility='default' filepath='include/linux/net.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='recvmsg' type-id='93abc02f' visibility='default' filepath='include/linux/net.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='mmap' type-id='3eef3bc7' visibility='default' filepath='include/linux/net.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='sendpage' type-id='42b02383' visibility='default' filepath='include/linux/net.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='splice_read' type-id='21641a6b' visibility='default' filepath='include/linux/net.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='set_peek_off' type-id='95208a5e' visibility='default' filepath='include/linux/net.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='peek_len' type-id='27936440' visibility='default' filepath='include/linux/net.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='read_sock' type-id='8755cc63' visibility='default' filepath='include/linux/net.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='sendpage_locked' type-id='65399e23' visibility='default' filepath='include/linux/net.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='sendmsg_locked' type-id='1df08751' visibility='default' filepath='include/linux/net.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='set_rcvlowat' type-id='95208a5e' visibility='default' filepath='include/linux/net.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/net.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/net.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/net.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/net.h' line='208' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='blkcg_pol_free_pd_fn' type-id='c8ffa4a2' filepath='include/linux/blk-cgroup.h' line='154' column='1' id='4e0b8246'/>
+      <function-type size-in-bits='64' id='4e0e413a'>
+        <parameter type-id='74d89ebd'/>
+        <parameter type-id='745b39e8'/>
+        <return type-id='4fb62cb0'/>
+      </function-type>
+      <class-decl name='ethtool_cmd' size-in-bits='352' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='105' column='1' id='4e13c9d9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='supported' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='advertising' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='speed' type-id='d315442e' visibility='default' filepath='include/uapi/linux/ethtool.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='duplex' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='port' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='phy_address' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='transceiver' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='autoneg' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='mdio_support' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='maxtxpkt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='maxrxpkt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='speed_hi' type-id='d315442e' visibility='default' filepath='include/uapi/linux/ethtool.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='240'>
+          <var-decl name='eth_tp_mdix' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='248'>
+          <var-decl name='eth_tp_mdix_ctrl' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='lp_advertising' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='reserved' type-id='839e8989' visibility='default' filepath='include/uapi/linux/ethtool.h' line='122' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='uart_pm_state' filepath='include/linux/serial_core.h' line='284' column='1' id='4e1a3570'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='UART_PM_STATE_ON' value='0'/>
+        <enumerator name='UART_PM_STATE_OFF' value='3'/>
+        <enumerator name='UART_PM_STATE_UNDEFINED' value='4'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='4e214e97'>
+        <parameter type-id='b977ca56'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='pci_epc_features' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/pci-epc.h' line='167' column='1' id='4e25a330'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='linkup_notifier' type-id='f0981eeb' visibility='default' filepath='include/linux/pci-epc.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1'>
+          <var-decl name='core_init_notifier' type-id='f0981eeb' visibility='default' filepath='include/linux/pci-epc.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2'>
+          <var-decl name='msi_capable' type-id='f0981eeb' visibility='default' filepath='include/linux/pci-epc.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3'>
+          <var-decl name='msix_capable' type-id='f0981eeb' visibility='default' filepath='include/linux/pci-epc.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='reserved_bar' type-id='f9b06939' visibility='default' filepath='include/linux/pci-epc.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bar_fixed_64bit' type-id='f9b06939' visibility='default' filepath='include/linux/pci-epc.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bar_fixed_size' type-id='64acd4ce' visibility='default' filepath='include/linux/pci-epc.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='align' type-id='b59d7dce' visibility='default' filepath='include/linux/pci-epc.h' line='175' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='2ba71bf0' const='yes' id='4e267e15'/>
+      <pointer-type-def type-id='9a165a97' size-in-bits='64' id='4e30d787'/>
+      <pointer-type-def type-id='b992836c' size-in-bits='64' id='4e326e06'/>
+      <function-type size-in-bits='64' id='4e3458ca'>
+        <parameter type-id='352b95f6'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4e3cc2a9'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='1d2c2b85'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4e407315'>
+        <parameter type-id='8898134d'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='9e99ecc1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='5651631f' size-in-bits='64' id='4e4de503'/>
+      <pointer-type-def type-id='5b2fd8e8' size-in-bits='64' id='4e523966'/>
+      <enum-decl name='usb_device_speed' filepath='include/uapi/linux/usb/ch9.h' line='1159' column='1' id='4e532009'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='USB_SPEED_UNKNOWN' value='0'/>
+        <enumerator name='USB_SPEED_LOW' value='1'/>
+        <enumerator name='USB_SPEED_FULL' value='2'/>
+        <enumerator name='USB_SPEED_HIGH' value='3'/>
+        <enumerator name='USB_SPEED_WIRELESS' value='4'/>
+        <enumerator name='USB_SPEED_SUPER' value='5'/>
+        <enumerator name='USB_SPEED_SUPER_PLUS' value='6'/>
+      </enum-decl>
+      <pointer-type-def type-id='a818ea3e' size-in-bits='64' id='4e602d14'/>
+      <function-type size-in-bits='64' id='4e62b18f'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='bd54fe1a'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='90cdb889' const='yes' id='4e65adfa'/>
+      <class-decl name='ptp_extts_request' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='101' column='1' id='4e68721c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rsv' type-id='0d532ec1' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='104' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='devlink_dpipe_headers' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='369' column='1' id='4e6b6ff6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='headers' type-id='72539ff9' visibility='default' filepath='include/net/devlink.h' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='headers_count' type-id='f0981eeb' visibility='default' filepath='include/net/devlink.h' line='371' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='39e12a1b' size-in-bits='64' id='4e756b23'/>
+      <pointer-type-def type-id='ee7b32c5' size-in-bits='64' id='4e786419'/>
+      <pointer-type-def type-id='7908d890' size-in-bits='64' id='4e7b299a'/>
+      <function-type size-in-bits='64' id='4e7ef9a4'>
+        <parameter type-id='a47d3467'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='9819baf4' size-in-bits='64' id='4e812b7a'/>
+      <pointer-type-def type-id='5960e0b1' size-in-bits='64' id='4e819401'/>
+      <class-decl name='scsi_device_handler' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/scsi/scsi_dh.h' line='48' column='1' id='4e8a6f85'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/scsi/scsi_dh.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='module' type-id='2730d015' visibility='default' filepath='include/scsi/scsi_dh.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/scsi/scsi_dh.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='check_sense' type-id='759f8752' visibility='default' filepath='include/scsi/scsi_dh.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='attach' type-id='4fae2c98' visibility='default' filepath='include/scsi/scsi_dh.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='detach' type-id='38c41fe1' visibility='default' filepath='include/scsi/scsi_dh.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='activate' type-id='81d19a12' visibility='default' filepath='include/scsi/scsi_dh.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='prep_fn' type-id='04d17276' visibility='default' filepath='include/scsi/scsi_dh.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='set_params' type-id='b25d7387' visibility='default' filepath='include/scsi/scsi_dh.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='rescan' type-id='38c41fe1' visibility='default' filepath='include/scsi/scsi_dh.h' line='62' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='4e9708ea'>
+        <parameter type-id='354f7eb9'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='323d93c1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='5b653fc9' const='yes' id='4e9f87c2'/>
+      <pointer-type-def type-id='b281e308' size-in-bits='64' id='4ea020ae'/>
+      <function-type size-in-bits='64' id='4ea599f1'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='30864cdc'/>
+        <parameter type-id='30864cdc'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9c7a3b7d' size-in-bits='64' id='4ea99369'/>
+      <pointer-type-def type-id='dc409042' size-in-bits='64' id='4eae5cb0'/>
+      <function-type size-in-bits='64' id='4eb067f4'>
+        <parameter type-id='3c330066'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='cd1955fc' size-in-bits='64' id='4eb95ade'/>
+      <class-decl name='sched_statistics' size-in-bits='1728' is-struct='yes' visibility='default' filepath='include/linux/sched.h' line='495' column='1' id='4ebe02b2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='wait_start' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='497' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wait_max' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='498' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='wait_count' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='499' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='wait_sum' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='500' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='iowait_count' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='501' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='iowait_sum' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='502' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='sleep_start' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='504' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='sleep_max' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='505' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='sum_sleep_runtime' type-id='9b7c55ef' visibility='default' filepath='include/linux/sched.h' line='506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='block_start' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='508' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='block_max' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='509' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='exec_max' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='510' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='slice_max' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='511' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='nr_migrations_cold' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='513' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='nr_failed_migrations_affine' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='514' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='nr_failed_migrations_running' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='515' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='nr_failed_migrations_hot' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='516' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='nr_forced_migrations' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='517' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='nr_wakeups' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='nr_wakeups_sync' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='520' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='nr_wakeups_migrate' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='nr_wakeups_local' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='522' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='nr_wakeups_remote' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='523' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='nr_wakeups_affine' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='524' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='nr_wakeups_affine_attempts' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='525' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='nr_wakeups_passive' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='526' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='nr_wakeups_idle' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='527' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ct_pcpu' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/netns/conntrack.h' line='96' column='1' id='4ec43a31'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/net/netns/conntrack.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='unconfirmed' type-id='af86905d' visibility='default' filepath='include/net/netns/conntrack.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dying' type-id='af86905d' visibility='default' filepath='include/net/netns/conntrack.h' line='99' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='413be38e' size-in-bits='64' id='4ec56f94'/>
+      <pointer-type-def type-id='7d117ac5' size-in-bits='64' id='4ec7a2d9'/>
+      <pointer-type-def type-id='13bb6c7c' size-in-bits='64' id='4ecb1656'/>
+      <function-type size-in-bits='64' id='4ed265d6'>
+        <parameter type-id='f03f21e9'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <pointer-type-def type-id='0c227c61' size-in-bits='64' id='4ed302fd'/>
+      <pointer-type-def type-id='9487d957' size-in-bits='64' id='4edb5fc7'/>
+      <class-decl name='xps_dev_maps' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='823' column='1' id='4edc4180'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/netdevice.h' line='824' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='nr_ids' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='825' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='num_tc' type-id='9b7e9486' visibility='default' filepath='include/linux/netdevice.h' line='826' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='attr_map' type-id='a0955e2b' visibility='default' filepath='include/linux/netdevice.h' line='827' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='rcu_callback_t' type-id='eb839374' filepath='include/linux/types.h' line='226' column='1' id='4edd56e3'/>
+      <function-type size-in-bits='64' id='4ede01e9'>
+        <parameter type-id='6dca061b'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <pointer-type-def type-id='f45624e0' size-in-bits='64' id='4edf040a'/>
+      <pointer-type-def type-id='2fecddf7' size-in-bits='64' id='4ee142e7'/>
+      <class-decl name='irq_bypass_producer' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/irqbypass.h' line='45' column='1' id='4ee52715'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/irqbypass.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='token' type-id='eaa32e2f' visibility='default' filepath='include/linux/irqbypass.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='irq' type-id='95e97e5e' visibility='default' filepath='include/linux/irqbypass.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='add_consumer' type-id='6c08ee43' visibility='default' filepath='include/linux/irqbypass.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='del_consumer' type-id='a223deea' visibility='default' filepath='include/linux/irqbypass.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='stop' type-id='dcfe0974' visibility='default' filepath='include/linux/irqbypass.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='start' type-id='dcfe0974' visibility='default' filepath='include/linux/irqbypass.h' line='54' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/asm-generic/signal.h' line='61' column='1' id='4ee94dc1' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sig' type-id='f066dd3c' visibility='default' filepath='include/uapi/asm-generic/signal.h' line='62' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='bf237056' size-in-bits='128' id='4eed3966'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='4f0614b5'>
+        <parameter type-id='c67366c7'/>
+        <parameter type-id='663995b5'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4f0fdafb'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4f10386b'>
+        <parameter type-id='76a60df1'/>
+        <parameter type-id='fb55efa1'/>
+        <parameter type-id='69bf7bee'/>
+        <return type-id='041bc907'/>
+      </function-type>
+      <pointer-type-def type-id='cce0f0cc' size-in-bits='64' id='4f146b8a'/>
+      <pointer-type-def type-id='49266711' size-in-bits='64' id='4f1d3179'/>
+      <function-type size-in-bits='64' id='4f1e6b9a'>
+        <parameter type-id='a47d3467'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4f21665b'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='7292109c'/>
+        <parameter type-id='26a90f95'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d356829c' size-in-bits='64' id='4f22192a'/>
+      <pointer-type-def type-id='fb73ecde' size-in-bits='64' id='4f312040'/>
+      <type-decl name='unsigned __int128' size-in-bits='128' id='4f340252'/>
+      <pointer-type-def type-id='6c0e4a93' size-in-bits='64' id='4f3d95df'/>
+      <function-type size-in-bits='64' id='4f40b107'>
+        <parameter type-id='b8e94b0b'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4f4445b6'>
+        <parameter type-id='855e3679'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='980b03f6' size-in-bits='64' id='4f46bd9c'/>
+      <pointer-type-def type-id='8df2bc75' size-in-bits='64' id='4f4f2d55'/>
+      <class-decl name='snd_uac_chip' size-in-bits='2048' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='68' column='1' id='4f4f9f47'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='audio_dev' type-id='36cb26c7' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='p_prm' type-id='02b25ec4' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='c_prm' type-id='02b25ec4' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='card' type-id='52704eb7' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='pcm' type-id='4c9f335b' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='p_interval' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1888'>
+          <var-decl name='p_residue' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='p_pktsize' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1952'>
+          <var-decl name='p_pktsize_residue' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='p_framesize' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/u_audio.c' line='84' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fsg_config' size-in-bits='6528' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='96' column='1' id='4f56f8e2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nluns' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='luns' type-id='eab1661f' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6208'>
+          <var-decl name='ops' type-id='b68210c7' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6272'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6336'>
+          <var-decl name='vendor_name' type-id='80f4b756' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6400'>
+          <var-decl name='product_name' type-id='80f4b756' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='can_stall' type-id='a84c031d' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6496'>
+          <var-decl name='fsg_num_buffers' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='109' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='memcg_padding' is-struct='yes' visibility='default' filepath='include/linux/memcontrol.h' line='191' column='1' id='4f5a0c96'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='x' type-id='e84913bd' visibility='default' filepath='include/linux/memcontrol.h' line='192' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_ss_container_id_descriptor' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='940' column='1' id='4f5dfff0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='941' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='942' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bDevCapabilityType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='943' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bReserved' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='944' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ContainerID' type-id='9396cabb' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='945' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='gendisk' size-in-bits='2240' is-struct='yes' visibility='default' filepath='include/linux/genhd.h' line='121' column='1' id='4f60ffbc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='major' type-id='95e97e5e' visibility='default' filepath='include/linux/genhd.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='first_minor' type-id='95e97e5e' visibility='default' filepath='include/linux/genhd.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='minors' type-id='95e97e5e' visibility='default' filepath='include/linux/genhd.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='disk_name' type-id='16dc656a' visibility='default' filepath='include/linux/genhd.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='events' type-id='8efea9e5' visibility='default' filepath='include/linux/genhd.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='368'>
+          <var-decl name='event_flags' type-id='8efea9e5' visibility='default' filepath='include/linux/genhd.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='part_tbl' type-id='d39738ac' visibility='default' filepath='include/linux/genhd.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='part0' type-id='b88dd945' visibility='default' filepath='include/linux/genhd.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='fops' type-id='6829b047' visibility='default' filepath='include/linux/genhd.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='queue' type-id='e7d2a5fc' visibility='default' filepath='include/linux/genhd.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/genhd.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/linux/genhd.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='state' type-id='7359adad' visibility='default' filepath='include/linux/genhd.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='open_mutex' type-id='925167dc' visibility='default' filepath='include/linux/genhd.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='open_partitions' type-id='f0981eeb' visibility='default' filepath='include/linux/genhd.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='bdi' type-id='ef4fae1b' visibility='default' filepath='include/linux/genhd.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='slave_dir' type-id='d30bdc51' visibility='default' filepath='include/linux/genhd.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='slave_bdevs' type-id='72f469ec' visibility='default' filepath='include/linux/genhd.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='random' type-id='22aa3c54' visibility='default' filepath='include/linux/genhd.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='sync_io' type-id='49178f86' visibility='default' filepath='include/linux/genhd.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='ev' type-id='26f00576' visibility='default' filepath='include/linux/genhd.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='node_id' type-id='95e97e5e' visibility='default' filepath='include/linux/genhd.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='bb' type-id='5760652c' visibility='default' filepath='include/linux/genhd.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='lockdep_map' type-id='d34a605e' visibility='default' filepath='include/linux/genhd.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='diskseq' type-id='91ce1af9' visibility='default' filepath='include/linux/genhd.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/genhd.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/genhd.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/genhd.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/genhd.h' line='173' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ttm_lru_bulk_move' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/drm/ttm/ttm_bo_driver.h' line='70' column='1' id='4f61d355'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tt' type-id='e70a051a' visibility='default' filepath='include/drm/ttm/ttm_bo_driver.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='vram' type-id='e70a051a' visibility='default' filepath='include/drm/ttm/ttm_bo_driver.h' line='72' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6dfdbc87' size-in-bits='64' id='4f66dac3'/>
+      <function-type size-in-bits='64' id='4f6af29b'>
+        <parameter type-id='c1547255'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='5ca87d9a' size-in-bits='64' id='4f6dfef4'/>
+      <array-type-def dimensions='1' type-id='ae7831aa' size-in-bits='192' id='4f78a557'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <class-decl name='vmacache' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/mm_types_task.h' line='34' column='1' id='4f79f8f3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='seqnum' type-id='91ce1af9' visibility='default' filepath='include/linux/mm_types_task.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='vmas' type-id='ae25b7bc' visibility='default' filepath='include/linux/mm_types_task.h' line='36' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cf5da15f' size-in-bits='64' id='4f8933db'/>
+      <pointer-type-def type-id='d87e539f' size-in-bits='64' id='4f8fb1b3'/>
+      <class-decl name='clk_duty' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/clk-provider.h' line='70' column='1' id='4f935e80'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='num' type-id='f0981eeb' visibility='default' filepath='include/linux/clk-provider.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='den' type-id='f0981eeb' visibility='default' filepath='include/linux/clk-provider.h' line='72' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f2b4d088' size-in-bits='64' id='4fa10f9e'/>
+      <function-type size-in-bits='64' id='4fa40360'>
+        <parameter type-id='51a94113'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='855e3679'/>
+      </function-type>
+      <function-type size-in-bits='64' id='4fab04f8'>
+        <parameter type-id='2661e0d9'/>
+        <parameter type-id='6de64ec1'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='53efb49e' size-in-bits='64' id='4fae2c98'/>
+      <class-decl name='match_token' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/parser.h' line='14' column='1' id='4fb0e160'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='token' type-id='95e97e5e' visibility='default' filepath='include/linux/parser.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pattern' type-id='80f4b756' visibility='default' filepath='include/linux/parser.h' line='16' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='drm_mode_status' filepath='include/drm/drm_modes.h' line='91' column='1' id='4fb62cb0'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='MODE_OK' value='0'/>
+        <enumerator name='MODE_HSYNC' value='1'/>
+        <enumerator name='MODE_VSYNC' value='2'/>
+        <enumerator name='MODE_H_ILLEGAL' value='3'/>
+        <enumerator name='MODE_V_ILLEGAL' value='4'/>
+        <enumerator name='MODE_BAD_WIDTH' value='5'/>
+        <enumerator name='MODE_NOMODE' value='6'/>
+        <enumerator name='MODE_NO_INTERLACE' value='7'/>
+        <enumerator name='MODE_NO_DBLESCAN' value='8'/>
+        <enumerator name='MODE_NO_VSCAN' value='9'/>
+        <enumerator name='MODE_MEM' value='10'/>
+        <enumerator name='MODE_VIRTUAL_X' value='11'/>
+        <enumerator name='MODE_VIRTUAL_Y' value='12'/>
+        <enumerator name='MODE_MEM_VIRT' value='13'/>
+        <enumerator name='MODE_NOCLOCK' value='14'/>
+        <enumerator name='MODE_CLOCK_HIGH' value='15'/>
+        <enumerator name='MODE_CLOCK_LOW' value='16'/>
+        <enumerator name='MODE_CLOCK_RANGE' value='17'/>
+        <enumerator name='MODE_BAD_HVALUE' value='18'/>
+        <enumerator name='MODE_BAD_VVALUE' value='19'/>
+        <enumerator name='MODE_BAD_VSCAN' value='20'/>
+        <enumerator name='MODE_HSYNC_NARROW' value='21'/>
+        <enumerator name='MODE_HSYNC_WIDE' value='22'/>
+        <enumerator name='MODE_HBLANK_NARROW' value='23'/>
+        <enumerator name='MODE_HBLANK_WIDE' value='24'/>
+        <enumerator name='MODE_VSYNC_NARROW' value='25'/>
+        <enumerator name='MODE_VSYNC_WIDE' value='26'/>
+        <enumerator name='MODE_VBLANK_NARROW' value='27'/>
+        <enumerator name='MODE_VBLANK_WIDE' value='28'/>
+        <enumerator name='MODE_PANEL' value='29'/>
+        <enumerator name='MODE_INTERLACE_WIDTH' value='30'/>
+        <enumerator name='MODE_ONE_WIDTH' value='31'/>
+        <enumerator name='MODE_ONE_HEIGHT' value='32'/>
+        <enumerator name='MODE_ONE_SIZE' value='33'/>
+        <enumerator name='MODE_NO_REDUCED' value='34'/>
+        <enumerator name='MODE_NO_STEREO' value='35'/>
+        <enumerator name='MODE_NO_420' value='36'/>
+        <enumerator name='MODE_STALE' value='-3'/>
+        <enumerator name='MODE_BAD' value='-2'/>
+        <enumerator name='MODE_ERROR' value='-1'/>
+      </enum-decl>
+      <pointer-type-def type-id='22400b6a' size-in-bits='64' id='4fb74714'/>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='1856' id='4fbdefa2'>
+        <subrange length='29' type-id='7ff19f0f' id='01b8f6fa'/>
+      </array-type-def>
+      <class-decl name='reserved_mem' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/of_reserved_mem.h' line='11' column='1' id='4fc2605b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/of_reserved_mem.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fdt_node' type-id='7359adad' visibility='default' filepath='include/linux/of_reserved_mem.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='phandle' type-id='7359adad' visibility='default' filepath='include/linux/of_reserved_mem.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ops' type-id='372c0155' visibility='default' filepath='include/linux/of_reserved_mem.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='base' type-id='2522883d' visibility='default' filepath='include/linux/of_reserved_mem.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='size' type-id='2522883d' visibility='default' filepath='include/linux/of_reserved_mem.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/of_reserved_mem.h' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='322dfcc1' size-in-bits='64' id='4fc3b355'/>
+      <pointer-type-def type-id='45639e3d' size-in-bits='64' id='4fcb4c39'/>
+      <class-decl name='reg_sequence' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/regmap.h' line='73' column='1' id='4fcc4597'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reg' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='def' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='delay_us' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='76' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='hid_report_id' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='702' column='1' id='4fd7026f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='report_type' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='703' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pd_pps_data' size-in-bits='288' is-struct='yes' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='284' column='1' id='4ff0f7bc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='min_volt' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='req_min_volt' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max_volt' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='287' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='req_max_volt' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='max_curr' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='req_max_curr' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='req_out_volt' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='req_op_curr' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='supported' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='264'>
+          <var-decl name='active' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='294' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='002ac4a6' size-in-bits='352' id='4ff588ae'>
+        <subrange length='44' type-id='7ff19f0f' id='cf8ba455'/>
+      </array-type-def>
+      <pointer-type-def type-id='187fa8c7' size-in-bits='64' id='4ffa0523'/>
+      <pointer-type-def type-id='2783658a' size-in-bits='64' id='4ffae8c8'/>
+      <class-decl name='mtd_ooblayout_ops' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/mtd/mtd.h' line='101' column='1' id='50032202'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ecc' type-id='81e2ea51' visibility='default' filepath='include/linux/mtd/mtd.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='free' type-id='81e2ea51' visibility='default' filepath='include/linux/mtd/mtd.h' line='104' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ed9e49a6' size-in-bits='64' id='5005c28c'/>
+      <function-type size-in-bits='64' id='501579d1'>
+        <parameter type-id='7efbcaaf'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='1dc6a898'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='68dd2616' size-in-bits='64' id='50233074'/>
+      <pointer-type-def type-id='dc678892' size-in-bits='64' id='50293ce4'/>
+      <pointer-type-def type-id='c21a2b60' size-in-bits='64' id='502bd26a'/>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='200' id='5030b3c3'>
+        <subrange length='25' type-id='7ff19f0f' id='41d5ddce'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='208' id='50390288'>
+        <subrange length='26' type-id='7ff19f0f' id='41d81c65'/>
+      </array-type-def>
+      <pointer-type-def type-id='da10e34c' size-in-bits='64' id='503ff1ba'/>
+      <qualified-type-def type-id='90b8a0b3' const='yes' id='50409e76'/>
+      <class-decl name='wait_queue_entry' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/wait.h' line='30' column='1' id='504855b3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/wait.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='private' type-id='eaa32e2f' visibility='default' filepath='include/linux/wait.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='func' type-id='67119c17' visibility='default' filepath='include/linux/wait.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='entry' type-id='72f469ec' visibility='default' filepath='include/linux/wait.h' line='34' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5049bff3'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='7e666abe'/>
+      </function-type>
+      <class-decl name='asymmetric_key_id' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/keys/asymmetric-type.h' line='50' column='1' id='504d3c75'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='len' type-id='8efea9e5' visibility='default' filepath='include/keys/asymmetric-type.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='data' type-id='5e6516ee' visibility='default' filepath='include/keys/asymmetric-type.h' line='52' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='504ee449'>
+        <parameter type-id='6dca061b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='4c98e95d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='drm_mode_config' size-in-bits='9856' is-struct='yes' visibility='default' filepath='include/drm/drm_mode_config.h' line='364' column='1' id='5052051f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='include/drm/drm_mode_config.h' line='375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='connection_mutex' type-id='ae5fc04a' visibility='default' filepath='include/drm/drm_mode_config.h' line='385' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='acquire_ctx' type-id='d1499e71' visibility='default' filepath='include/drm/drm_mode_config.h' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='idr_mutex' type-id='925167dc' visibility='default' filepath='include/drm/drm_mode_config.h' line='403' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='object_idr' type-id='37ce495e' visibility='default' filepath='include/drm/drm_mode_config.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='tile_idr' type-id='37ce495e' visibility='default' filepath='include/drm/drm_mode_config.h' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='fb_lock' type-id='925167dc' visibility='default' filepath='include/drm/drm_mode_config.h' line='422' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='num_fb' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_mode_config.h' line='424' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='fb_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_mode_config.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='connector_list_lock' type-id='fb4018a0' visibility='default' filepath='include/drm/drm_mode_config.h' line='432' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2400'>
+          <var-decl name='num_connector' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_mode_config.h' line='437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='connector_ida' type-id='46ce60fb' visibility='default' filepath='include/drm/drm_mode_config.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='connector_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_mode_config.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='connector_free_list' type-id='77df194e' visibility='default' filepath='include/drm/drm_mode_config.h' line='459' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='connector_free_work' type-id='ef9025d0' visibility='default' filepath='include/drm/drm_mode_config.h' line='463' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='num_encoder' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_mode_config.h' line='471' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='encoder_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_mode_config.h' line='479' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='num_total_plane' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_mode_config.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='plane_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_mode_config.h' line='495' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='num_crtc' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_mode_config.h' line='503' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='crtc_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_mode_config.h' line='510' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='property_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_mode_config.h' line='519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='privobj_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_mode_config.h' line='528' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='min_width' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_mode_config.h' line='530' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4000'>
+          <var-decl name='min_height' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_mode_config.h' line='530' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='max_width' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_mode_config.h' line='531' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4064'>
+          <var-decl name='max_height' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_mode_config.h' line='531' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='funcs' type-id='3f50936e' visibility='default' filepath='include/drm/drm_mode_config.h' line='532' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='fb_base' type-id='acc63fdf' visibility='default' filepath='include/drm/drm_mode_config.h' line='533' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='poll_enabled' type-id='b50a4934' visibility='default' filepath='include/drm/drm_mode_config.h' line='536' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4232'>
+          <var-decl name='poll_running' type-id='b50a4934' visibility='default' filepath='include/drm/drm_mode_config.h' line='537' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4240'>
+          <var-decl name='delayed_event' type-id='b50a4934' visibility='default' filepath='include/drm/drm_mode_config.h' line='538' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='output_poll_work' type-id='5ad6e0ef' visibility='default' filepath='include/drm/drm_mode_config.h' line='539' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='blob_lock' type-id='925167dc' visibility='default' filepath='include/drm/drm_mode_config.h' line='547' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5760'>
+          <var-decl name='property_blob_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_mode_config.h' line='555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5888'>
+          <var-decl name='edid_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='563' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5952'>
+          <var-decl name='dpms_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6016'>
+          <var-decl name='path_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='573' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='tile_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='579' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6144'>
+          <var-decl name='link_status_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='584' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6208'>
+          <var-decl name='plane_type_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='589' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6272'>
+          <var-decl name='prop_src_x' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='594' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6336'>
+          <var-decl name='prop_src_y' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='599' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6400'>
+          <var-decl name='prop_src_w' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='604' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='prop_src_h' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='609' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6528'>
+          <var-decl name='prop_crtc_x' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='614' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6592'>
+          <var-decl name='prop_crtc_y' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='619' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6656'>
+          <var-decl name='prop_crtc_w' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='624' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6720'>
+          <var-decl name='prop_crtc_h' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='629' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6784'>
+          <var-decl name='prop_fb_id' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='634' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6848'>
+          <var-decl name='prop_in_fence_fd' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='639' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6912'>
+          <var-decl name='prop_out_fence_ptr' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='645' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6976'>
+          <var-decl name='prop_crtc_id' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='650' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7040'>
+          <var-decl name='prop_fb_damage_clips' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='659' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7104'>
+          <var-decl name='prop_active' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='665' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7168'>
+          <var-decl name='prop_mode_id' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='671' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7232'>
+          <var-decl name='prop_vrr_enabled' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='676' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='dvi_i_subconnector_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='682' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='dvi_i_select_subconnector_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='687' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='dp_subconnector_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='693' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='tv_subconnector_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='699' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='tv_select_subconnector_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='704' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='tv_mode_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='709' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='tv_left_margin_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='714' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='tv_right_margin_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='719' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='tv_top_margin_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='724' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='tv_bottom_margin_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='729' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='tv_brightness_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='734' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='tv_contrast_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='739' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='tv_flicker_reduction_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='744' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='tv_overscan_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='749' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='tv_saturation_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='754' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='tv_hue_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='758' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='scaling_mode_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='764' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8384'>
+          <var-decl name='aspect_ratio_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='769' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8448'>
+          <var-decl name='content_type_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='774' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='degamma_lut_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='779' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8576'>
+          <var-decl name='degamma_lut_size_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='784' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='ctm_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='790' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='gamma_lut_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='796' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8768'>
+          <var-decl name='gamma_lut_size_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='801' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8832'>
+          <var-decl name='suggested_x_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='807' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8896'>
+          <var-decl name='suggested_y_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='812' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8960'>
+          <var-decl name='non_desktop_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='819' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9024'>
+          <var-decl name='panel_orientation_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='826' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9088'>
+          <var-decl name='writeback_fb_id_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='833' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9152'>
+          <var-decl name='writeback_pixel_formats_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='841' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9216'>
+          <var-decl name='writeback_out_fence_ptr_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='849' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9280'>
+          <var-decl name='hdr_output_metadata_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='856' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='content_protection_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='862' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9408'>
+          <var-decl name='hdcp_content_type_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='868' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9472'>
+          <var-decl name='preferred_depth' type-id='8f92235e' visibility='default' filepath='include/drm/drm_mode_config.h' line='871' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9504'>
+          <var-decl name='prefer_shadow' type-id='8f92235e' visibility='default' filepath='include/drm/drm_mode_config.h' line='871' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9536'>
+          <var-decl name='prefer_shadow_fbdev' type-id='b50a4934' visibility='default' filepath='include/drm/drm_mode_config.h' line='878' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9544'>
+          <var-decl name='quirk_addfb_prefer_xbgr_30bpp' type-id='b50a4934' visibility='default' filepath='include/drm/drm_mode_config.h' line='886' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9552'>
+          <var-decl name='quirk_addfb_prefer_host_byte_order' type-id='b50a4934' visibility='default' filepath='include/drm/drm_mode_config.h' line='900' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9560'>
+          <var-decl name='async_page_flip' type-id='b50a4934' visibility='default' filepath='include/drm/drm_mode_config.h' line='906' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9568'>
+          <var-decl name='allow_fb_modifiers' type-id='b50a4934' visibility='default' filepath='include/drm/drm_mode_config.h' line='922' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9576'>
+          <var-decl name='normalize_zpos' type-id='b50a4934' visibility='default' filepath='include/drm/drm_mode_config.h' line='930' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='modifiers_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_mode_config.h' line='936' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9664'>
+          <var-decl name='cursor_width' type-id='8f92235e' visibility='default' filepath='include/drm/drm_mode_config.h' line='939' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9696'>
+          <var-decl name='cursor_height' type-id='8f92235e' visibility='default' filepath='include/drm/drm_mode_config.h' line='939' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9728'>
+          <var-decl name='suspend_state' type-id='e3dd029e' visibility='default' filepath='include/drm/drm_mode_config.h' line='948' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9792'>
+          <var-decl name='helper_private' type-id='dc79526d' visibility='default' filepath='include/drm/drm_mode_config.h' line='950' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='xa_limit' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/xarray.h' line='237' column='1' id='5066733a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='max' type-id='19c2251e' visibility='default' filepath='include/linux/xarray.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='min' type-id='19c2251e' visibility='default' filepath='include/linux/xarray.h' line='239' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='29cf1864' size-in-bits='64' id='50756496'/>
+      <pointer-type-def type-id='fa0b179b' size-in-bits='64' id='50764ba3'/>
+      <array-type-def dimensions='1' type-id='9f089557' size-in-bits='16416' id='507b15a5'>
+        <subrange length='513' type-id='7ff19f0f' id='fd18cde8'/>
+      </array-type-def>
+      <class-decl name='drm_dp_aux_cec' size-in-bits='1600' is-struct='yes' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1871' column='1' id='507e56d0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1872' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='adap' type-id='b94a2f7c' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1873' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='connector' type-id='4db02c58' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1874' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='unregister_work' type-id='5ad6e0ef' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1875' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='50801c15'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='static_key_mod' size-in-bits='192' is-struct='yes' visibility='default' filepath='kernel/jump_label.c' line='521' column='1' id='5081ed08'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='c77a71ce' visibility='default' filepath='kernel/jump_label.c' line='522' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='entries' type-id='7a35228c' visibility='default' filepath='kernel/jump_label.c' line='523' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mod' type-id='2730d015' visibility='default' filepath='kernel/jump_label.c' line='524' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='282b2805' size-in-bits='64' id='50842338'/>
+      <class-decl name='snd_compr_params' size-in-bits='1056' is-struct='yes' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='51' column='1' id='508a0a73'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='buffer' type-id='c51dce37' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='codec' type-id='97e76825' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='no_wake_mode' type-id='8f048e17' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='54' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_ctrl_mpeg2_picture' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1941' column='1' id='5092aa98'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='backward_ref_ts' type-id='d3130597' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1942' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='forward_ref_ts' type-id='d3130597' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1943' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1944' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='f_code' type-id='86be53ee' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1945' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='picture_coding_type' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1946' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='picture_structure' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1947' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='intra_dc_precision' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1948' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='216'>
+          <var-decl name='reserved' type-id='06106d49' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1949' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b6577688' size-in-bits='64' id='50968132'/>
+      <class-decl name='crypto_comp' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/crypto.h' line='648' column='1' id='50982b2a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='0328c8b6' visibility='default' filepath='include/linux/crypto.h' line='649' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='146df21f' size-in-bits='64' id='50a159c7'/>
+      <pointer-type-def type-id='08cbad52' size-in-bits='64' id='50a213e8'/>
+      <pointer-type-def type-id='48b94b91' size-in-bits='64' id='50a51839'/>
+      <pointer-type-def type-id='7552fc26' size-in-bits='64' id='50abd760'/>
+      <function-type size-in-bits='64' id='50acc06b'>
+        <parameter type-id='f772df6d'/>
+        <return type-id='19c2251e'/>
+      </function-type>
+      <pointer-type-def type-id='70007b06' size-in-bits='64' id='50aef520'/>
+      <qualified-type-def type-id='56eae4b3' const='yes' id='50af579e'/>
+      <pointer-type-def type-id='bdcee7ae' size-in-bits='64' id='50b674cc'/>
+      <pointer-type-def type-id='2aee9912' size-in-bits='64' id='50bcf651'/>
+      <function-type size-in-bits='64' id='50bd3cc7'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='89a2612a'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='d04e3bd9' size-in-bits='64' id='50c74428'/>
+      <class-decl name='ehci_qtd' size-in-bits='768' is-struct='yes' visibility='default' filepath='drivers/usb/host/ehci.h' line='289' column='1' id='50db3e2c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hw_next' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='hw_alt_next' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hw_token' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='hw_buf' type-id='9f6d6b4c' visibility='default' filepath='drivers/usb/host/ehci.h' line='312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='hw_buf_hi' type-id='9f6d6b4c' visibility='default' filepath='drivers/usb/host/ehci.h' line='313' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='qtd_dma' type-id='cf29c9b3' visibility='default' filepath='drivers/usb/host/ehci.h' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='qtd_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/ehci.h' line='317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='urb' type-id='ab85b8f2' visibility='default' filepath='drivers/usb/host/ehci.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='length' type-id='b59d7dce' visibility='default' filepath='drivers/usb/host/ehci.h' line='319' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='50e956a4'>
+        <parameter type-id='c0c93c9e'/>
+        <parameter type-id='5f78aa17'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='287b404f' size-in-bits='64' id='50ec573b'/>
+      <function-type size-in-bits='64' id='50f15cd5'>
+        <parameter type-id='8898134d'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='095cd8ee' const='yes' id='50f7224d'/>
+      <function-type size-in-bits='64' id='50f7c736'>
+        <parameter type-id='e90f4666'/>
+        <return type-id='b59d7dce'/>
+      </function-type>
+      <class-decl name='i3c_generic_ibi_pool' size-in-bits='448' is-struct='yes' visibility='default' filepath='drivers/i3c/master.c' line='2276' column='1' id='50fab010'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='drivers/i3c/master.c' line='2277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='num_slots' type-id='f0981eeb' visibility='default' filepath='drivers/i3c/master.c' line='2278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='slots' type-id='07b1f77c' visibility='default' filepath='drivers/i3c/master.c' line='2279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='payload_buf' type-id='eaa32e2f' visibility='default' filepath='drivers/i3c/master.c' line='2280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='free_slots' type-id='72f469ec' visibility='default' filepath='drivers/i3c/master.c' line='2281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='pending' type-id='72f469ec' visibility='default' filepath='drivers/i3c/master.c' line='2282' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d7cfbbe1' size-in-bits='64' id='51119d2d'/>
+      <function-type size-in-bits='64' id='5113b296'>
+        <parameter type-id='80f4b756'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='51192447'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='pinctrl' size-in-bits='576' is-struct='yes' visibility='default' filepath='drivers/pinctrl/core.h' line='77' column='1' id='51195455'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='drivers/pinctrl/core.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/pinctrl/core.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='states' type-id='72f469ec' visibility='default' filepath='drivers/pinctrl/core.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='state' type-id='f418ceb3' visibility='default' filepath='drivers/pinctrl/core.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dt_maps' type-id='72f469ec' visibility='default' filepath='drivers/pinctrl/core.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='users' type-id='400fb07b' visibility='default' filepath='drivers/pinctrl/core.h' line='83' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c463253a' size-in-bits='64' id='511c33f4'/>
+      <class-decl name='vhost_iotlb_map' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/vhost_iotlb.h' line='7' column='1' id='511fe9eb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rb' type-id='2a8a6332' visibility='default' filepath='include/linux/vhost_iotlb.h' line='8' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='link' type-id='72f469ec' visibility='default' filepath='include/linux/vhost_iotlb.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='start' type-id='91ce1af9' visibility='default' filepath='include/linux/vhost_iotlb.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='last' type-id='91ce1af9' visibility='default' filepath='include/linux/vhost_iotlb.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='size' type-id='91ce1af9' visibility='default' filepath='include/linux/vhost_iotlb.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='addr' type-id='91ce1af9' visibility='default' filepath='include/linux/vhost_iotlb.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='perm' type-id='19c2251e' visibility='default' filepath='include/linux/vhost_iotlb.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='flags_padding' type-id='19c2251e' visibility='default' filepath='include/linux/vhost_iotlb.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='__subtree_last' type-id='91ce1af9' visibility='default' filepath='include/linux/vhost_iotlb.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='opaque' type-id='eaa32e2f' visibility='default' filepath='include/linux/vhost_iotlb.h' line='20' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4df548b2' size-in-bits='64' id='51214748'/>
+      <class-decl name='rps_sock_flow_table' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='725' column='1' id='512813dd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mask' type-id='19c2251e' visibility='default' filepath='include/linux/netdevice.h' line='726' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ents' type-id='c165e8b9' visibility='default' filepath='include/linux/netdevice.h' line='728' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='clk_ops' size-in-bits='1728' is-struct='yes' visibility='default' filepath='include/linux/clk-provider.h' line='228' column='1' id='512851e8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prepare' type-id='2d015d73' visibility='default' filepath='include/linux/clk-provider.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='unprepare' type-id='0112fb3c' visibility='default' filepath='include/linux/clk-provider.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='is_prepared' type-id='2d015d73' visibility='default' filepath='include/linux/clk-provider.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='unprepare_unused' type-id='0112fb3c' visibility='default' filepath='include/linux/clk-provider.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='enable' type-id='2d015d73' visibility='default' filepath='include/linux/clk-provider.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='disable' type-id='0112fb3c' visibility='default' filepath='include/linux/clk-provider.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='is_enabled' type-id='2d015d73' visibility='default' filepath='include/linux/clk-provider.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='disable_unused' type-id='0112fb3c' visibility='default' filepath='include/linux/clk-provider.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='save_context' type-id='2d015d73' visibility='default' filepath='include/linux/clk-provider.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='restore_context' type-id='0112fb3c' visibility='default' filepath='include/linux/clk-provider.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='recalc_rate' type-id='93097cd2' visibility='default' filepath='include/linux/clk-provider.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='round_rate' type-id='1eac8fa1' visibility='default' filepath='include/linux/clk-provider.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='determine_rate' type-id='c2c32efe' visibility='default' filepath='include/linux/clk-provider.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='set_parent' type-id='a05e478f' visibility='default' filepath='include/linux/clk-provider.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='get_parent' type-id='38527a92' visibility='default' filepath='include/linux/clk-provider.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='set_rate' type-id='3d287e03' visibility='default' filepath='include/linux/clk-provider.h' line='247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='set_rate_and_parent' type-id='d598c37f' visibility='default' filepath='include/linux/clk-provider.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='recalc_accuracy' type-id='93097cd2' visibility='default' filepath='include/linux/clk-provider.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='get_phase' type-id='2d015d73' visibility='default' filepath='include/linux/clk-provider.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='set_phase' type-id='eeb35eda' visibility='default' filepath='include/linux/clk-provider.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='get_duty_cycle' type-id='3993d336' visibility='default' filepath='include/linux/clk-provider.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='set_duty_cycle' type-id='3993d336' visibility='default' filepath='include/linux/clk-provider.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='init' type-id='2d015d73' visibility='default' filepath='include/linux/clk-provider.h' line='260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='terminate' type-id='0112fb3c' visibility='default' filepath='include/linux/clk-provider.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='debug_init' type-id='c2d2a400' visibility='default' filepath='include/linux/clk-provider.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='pre_rate_change' type-id='3d287e03' visibility='default' filepath='include/linux/clk-provider.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='post_rate_change' type-id='3d287e03' visibility='default' filepath='include/linux/clk-provider.h' line='266' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='d45f2b4f' const='yes' id='512ac7cc'/>
+      <pointer-type-def type-id='8087fc9a' size-in-bits='64' id='5139dd84'/>
+      <function-type size-in-bits='64' id='513ae826'>
+        <parameter type-id='58ed56f5'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='78c01427'/>
+        <parameter type-id='67a981e3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='80fe4e9b' size-in-bits='64' id='513f51db'/>
+      <enum-decl name='ieee80211_edmg_bw_config' filepath='include/net/cfg80211.h' line='472' column='1' id='51403231'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='IEEE80211_EDMG_BW_CONFIG_4' value='4'/>
+        <enumerator name='IEEE80211_EDMG_BW_CONFIG_5' value='5'/>
+        <enumerator name='IEEE80211_EDMG_BW_CONFIG_6' value='6'/>
+        <enumerator name='IEEE80211_EDMG_BW_CONFIG_7' value='7'/>
+        <enumerator name='IEEE80211_EDMG_BW_CONFIG_8' value='8'/>
+        <enumerator name='IEEE80211_EDMG_BW_CONFIG_9' value='9'/>
+        <enumerator name='IEEE80211_EDMG_BW_CONFIG_10' value='10'/>
+        <enumerator name='IEEE80211_EDMG_BW_CONFIG_11' value='11'/>
+        <enumerator name='IEEE80211_EDMG_BW_CONFIG_12' value='12'/>
+        <enumerator name='IEEE80211_EDMG_BW_CONFIG_13' value='13'/>
+        <enumerator name='IEEE80211_EDMG_BW_CONFIG_14' value='14'/>
+        <enumerator name='IEEE80211_EDMG_BW_CONFIG_15' value='15'/>
+      </enum-decl>
+      <typedef-decl name='sk_read_actor_t' type-id='0c197ddf' filepath='include/linux/net.h' line='135' column='1' id='514d4e0e'/>
+      <class-decl name='of_phandle_iterator' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/of.h' line='80' column='1' id='514d8c48'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cells_name' type-id='80f4b756' visibility='default' filepath='include/linux/of.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cell_count' type-id='95e97e5e' visibility='default' filepath='include/linux/of.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='parent' type-id='0afa6ea3' visibility='default' filepath='include/linux/of.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='list_end' type-id='90144368' visibility='default' filepath='include/linux/of.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='phandle_end' type-id='90144368' visibility='default' filepath='include/linux/of.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='cur' type-id='90144368' visibility='default' filepath='include/linux/of.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='cur_count' type-id='8f92235e' visibility='default' filepath='include/linux/of.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='phandle' type-id='6e394fba' visibility='default' filepath='include/linux/of.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='node' type-id='9a537bbe' visibility='default' filepath='include/linux/of.h' line='94' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='crypto_alg' size-in-bits='3072' is-struct='yes' visibility='default' filepath='include/linux/crypto.h' line='470' column='1' id='514fe525'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cra_list' type-id='72f469ec' visibility='default' filepath='include/linux/crypto.h' line='471' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cra_users' type-id='72f469ec' visibility='default' filepath='include/linux/crypto.h' line='472' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='cra_flags' type-id='19c2251e' visibility='default' filepath='include/linux/crypto.h' line='474' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='cra_blocksize' type-id='f0981eeb' visibility='default' filepath='include/linux/crypto.h' line='475' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='cra_ctxsize' type-id='f0981eeb' visibility='default' filepath='include/linux/crypto.h' line='476' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='cra_alignmask' type-id='f0981eeb' visibility='default' filepath='include/linux/crypto.h' line='477' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='cra_priority' type-id='95e97e5e' visibility='default' filepath='include/linux/crypto.h' line='479' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='cra_refcnt' type-id='64615833' visibility='default' filepath='include/linux/crypto.h' line='480' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='cra_name' type-id='e3204322' visibility='default' filepath='include/linux/crypto.h' line='482' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='cra_driver_name' type-id='e3204322' visibility='default' filepath='include/linux/crypto.h' line='483' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='cra_type' type-id='71dc7604' visibility='default' filepath='include/linux/crypto.h' line='485' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='cra_u' type-id='ac5ab626' visibility='default' filepath='include/linux/crypto.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='cra_init' type-id='469599ea' visibility='default' filepath='include/linux/crypto.h' line='492' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='cra_exit' type-id='3ba771a1' visibility='default' filepath='include/linux/crypto.h' line='493' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='cra_destroy' type-id='33e7622c' visibility='default' filepath='include/linux/crypto.h' line='494' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='cra_module' type-id='2730d015' visibility='default' filepath='include/linux/crypto.h' line='496' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6d7d60df' size-in-bits='64' id='515fa1af'/>
+      <pointer-type-def type-id='194ac023' size-in-bits='64' id='516294a7'/>
+      <pointer-type-def type-id='b0471e43' size-in-bits='64' id='5173cfa7'/>
+      <function-type size-in-bits='64' id='5178491e'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='0bb617a4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='28327a10' size-in-bits='64' id='517d0452'/>
+      <class-decl name='ucsi_connector' size-in-bits='7104' is-struct='yes' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='335' column='1' id='517f7da9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='num' type-id='95e97e5e' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ucsi' type-id='2c25e09d' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='complete' type-id='f9fef04f' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='port' type-id='b977ca56' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='partner' type-id='33ca4bbb' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='port_altmode' type-id='2ecdc8a0' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='partner_altmode' type-id='2ecdc8a0' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='typec_cap' type-id='1f2b9a61' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5696'>
+          <var-decl name='unprocessed_changes' type-id='1dc6a898' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5712'>
+          <var-decl name='status' type-id='26bdfeec' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5784'>
+          <var-decl name='cap' type-id='4531a258' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5824'>
+          <var-decl name='psy' type-id='c0c93c9e' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5888'>
+          <var-decl name='psy_desc' type-id='6d39b2d0' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6720'>
+          <var-decl name='rdo' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6752'>
+          <var-decl name='src_pdos' type-id='1c69cda2' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6976'>
+          <var-decl name='num_pdos' type-id='95e97e5e' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7040'>
+          <var-decl name='usb_role_sw' type-id='3e3cd44f' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='360' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_soc_aux_dev' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/sound/soc.h' line='877' column='1' id='5183f61d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dlc' type-id='ed5b2002' visibility='default' filepath='include/sound/soc.h' line='882' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='init' type-id='48cf6abe' visibility='default' filepath='include/sound/soc.h' line='885' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='51942024'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='0c0b353f'/>
+        <parameter type-id='1e6bdea2'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='hc_driver' size-in-bits='3200' is-struct='yes' visibility='default' filepath='include/linux/usb/hcd.h' line='257' column='1' id='519497e3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='description' type-id='80f4b756' visibility='default' filepath='include/linux/usb/hcd.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='product_desc' type-id='80f4b756' visibility='default' filepath='include/linux/usb/hcd.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hcd_priv_size' type-id='b59d7dce' visibility='default' filepath='include/linux/usb/hcd.h' line='260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='irq' type-id='a4e9cbb0' visibility='default' filepath='include/linux/usb/hcd.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/linux/usb/hcd.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='reset' type-id='3d4f6569' visibility='default' filepath='include/linux/usb/hcd.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='start' type-id='3d4f6569' visibility='default' filepath='include/linux/usb/hcd.h' line='280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pci_suspend' type-id='f49825dc' visibility='default' filepath='include/linux/usb/hcd.h' line='286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='pci_resume' type-id='f49825dc' visibility='default' filepath='include/linux/usb/hcd.h' line='289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='stop' type-id='2638ad78' visibility='default' filepath='include/linux/usb/hcd.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='shutdown' type-id='2638ad78' visibility='default' filepath='include/linux/usb/hcd.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='get_frame_number' type-id='3d4f6569' visibility='default' filepath='include/linux/usb/hcd.h' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='urb_enqueue' type-id='26f734e7' visibility='default' filepath='include/linux/usb/hcd.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='urb_dequeue' type-id='909b5775' visibility='default' filepath='include/linux/usb/hcd.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='map_urb_for_dma' type-id='26f734e7' visibility='default' filepath='include/linux/usb/hcd.h' line='315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='unmap_urb_for_dma' type-id='da12244f' visibility='default' filepath='include/linux/usb/hcd.h' line='317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='endpoint_disable' type-id='e1007da7' visibility='default' filepath='include/linux/usb/hcd.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='endpoint_reset' type-id='e1007da7' visibility='default' filepath='include/linux/usb/hcd.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='hub_status_data' type-id='34083223' visibility='default' filepath='include/linux/usb/hcd.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='hub_control' type-id='82a5e0a9' visibility='default' filepath='include/linux/usb/hcd.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='bus_suspend' type-id='3d4f6569' visibility='default' filepath='include/linux/usb/hcd.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='bus_resume' type-id='3d4f6569' visibility='default' filepath='include/linux/usb/hcd.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='start_port_reset' type-id='52f4f223' visibility='default' filepath='include/linux/usb/hcd.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='get_resuming_ports' type-id='3e34b3ae' visibility='default' filepath='include/linux/usb/hcd.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='relinquish_port' type-id='0d7f0367' visibility='default' filepath='include/linux/usb/hcd.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='port_handed_over' type-id='ef2f6230' visibility='default' filepath='include/linux/usb/hcd.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='clear_tt_buffer_complete' type-id='e1007da7' visibility='default' filepath='include/linux/usb/hcd.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='alloc_dev' type-id='530cb308' visibility='default' filepath='include/linux/usb/hcd.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='free_dev' type-id='b48dadb7' visibility='default' filepath='include/linux/usb/hcd.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='alloc_streams' type-id='c1729c2a' visibility='default' filepath='include/linux/usb/hcd.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='free_streams' type-id='473afbc8' visibility='default' filepath='include/linux/usb/hcd.h' line='359' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='add_endpoint' type-id='2c3372f7' visibility='default' filepath='include/linux/usb/hcd.h' line='374' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='drop_endpoint' type-id='2c3372f7' visibility='default' filepath='include/linux/usb/hcd.h' line='377' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='check_bandwidth' type-id='530cb308' visibility='default' filepath='include/linux/usb/hcd.h' line='384' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='reset_bandwidth' type-id='b48dadb7' visibility='default' filepath='include/linux/usb/hcd.h' line='392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='address_device' type-id='530cb308' visibility='default' filepath='include/linux/usb/hcd.h' line='394' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='enable_device' type-id='530cb308' visibility='default' filepath='include/linux/usb/hcd.h' line='396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='update_hub_device' type-id='cf0b24c2' visibility='default' filepath='include/linux/usb/hcd.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='reset_device' type-id='530cb308' visibility='default' filepath='include/linux/usb/hcd.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='update_device' type-id='530cb308' visibility='default' filepath='include/linux/usb/hcd.h' line='406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='set_usb2_hw_lpm' type-id='8ceda7f7' visibility='default' filepath='include/linux/usb/hcd.h' line='407' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='enable_usb3_lpm_timeout' type-id='280dcd9f' visibility='default' filepath='include/linux/usb/hcd.h' line='410' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='disable_usb3_lpm_timeout' type-id='280dcd9f' visibility='default' filepath='include/linux/usb/hcd.h' line='415' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='find_raw_port_number' type-id='ef2f6230' visibility='default' filepath='include/linux/usb/hcd.h' line='417' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='port_power' type-id='57938551' visibility='default' filepath='include/linux/usb/hcd.h' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='submit_single_step_set_feature' type-id='909b5775' visibility='default' filepath='include/linux/usb/hcd.h' line='422' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/hcd.h' line='425' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/hcd.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/hcd.h' line='427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/hcd.h' line='428' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ff60ef66' size-in-bits='64' id='5198b4a4'/>
+      <function-type size-in-bits='64' id='5198bc0d'>
+        <parameter type-id='5771c601'/>
+        <parameter type-id='fce0537d'/>
+        <return type-id='954953c8'/>
+      </function-type>
+      <pointer-type-def type-id='ccd48cf5' size-in-bits='64' id='5199c30d'/>
+      <class-decl name='wpan_phy_cca' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg802154.h' line='145' column='1' id='51a1cee7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mode' type-id='59ec32df' visibility='default' filepath='include/net/cfg802154.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='opt' type-id='ef15418f' visibility='default' filepath='include/net/cfg802154.h' line='147' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6ad2ac02' size-in-bits='64' id='51a502f8'/>
+      <function-type size-in-bits='64' id='51a7e6e2'>
+        <parameter type-id='b99d5f36'/>
+        <parameter type-id='bf3ef905'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='dl_bw' size-in-bits='192' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='301' column='1' id='51a92649'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='kernel/sched/sched.h' line='302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bw' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='total_bw' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='304' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fbff4263' size-in-bits='64' id='51a94113'/>
+      <class-decl name='ehci_caps' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/linux/usb/ehci_def.h' line='28' column='1' id='51afda40'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hc_capbase' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci_def.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='hcs_params' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci_def.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hcc_params' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci_def.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='portroute' type-id='d2f7b56a' visibility='default' filepath='include/linux/usb/ehci_def.h' line='63' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='51b5f0bf'>
+        <parameter type-id='75ae4804'/>
+        <parameter type-id='77da1114'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='19c2251e' const='yes' id='51bb592e'/>
+      <class-decl name='ethtool_tcpip4_spec' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='860' column='1' id='51bf1175'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ip4src' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ethtool.h' line='861' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ip4dst' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ethtool.h' line='862' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='psrc' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ethtool.h' line='863' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='pdst' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ethtool.h' line='864' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='tos' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='865' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='51ca9086'>
+        <parameter type-id='6ee1a870'/>
+        <parameter type-id='1d2c2b85'/>
+        <parameter type-id='1d2c2b85'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='rq_qos_id' filepath='block/blk-rq-qos.h' line='16' column='1' id='51cb492d'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='RQ_QOS_WBT' value='0'/>
+        <enumerator name='RQ_QOS_LATENCY' value='1'/>
+        <enumerator name='RQ_QOS_COST' value='2'/>
+        <enumerator name='RQ_QOS_IOPRIO' value='3'/>
+      </enum-decl>
+      <class-decl name='devlink_trap_policer' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='753' column='1' id='51cb7b21'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='19c2251e' visibility='default' filepath='include/net/devlink.h' line='754' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='init_rate' type-id='91ce1af9' visibility='default' filepath='include/net/devlink.h' line='755' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='init_burst' type-id='91ce1af9' visibility='default' filepath='include/net/devlink.h' line='756' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='max_rate' type-id='91ce1af9' visibility='default' filepath='include/net/devlink.h' line='757' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='min_rate' type-id='91ce1af9' visibility='default' filepath='include/net/devlink.h' line='758' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='max_burst' type-id='91ce1af9' visibility='default' filepath='include/net/devlink.h' line='759' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='min_burst' type-id='91ce1af9' visibility='default' filepath='include/net/devlink.h' line='760' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b9e938be' size-in-bits='64' id='51cd4538'/>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='1984' id='51d2bffa'>
+        <subrange length='248' type-id='7ff19f0f' id='c670fc1b'/>
+      </array-type-def>
+      <class-decl name='ieee802154_ops' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/net/mac802154.h' line='208' column='1' id='51d2c7ae'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/net/mac802154.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='start' type-id='22f2cc9b' visibility='default' filepath='include/net/mac802154.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='stop' type-id='4d0e1dee' visibility='default' filepath='include/net/mac802154.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='xmit_sync' type-id='5aa56dcb' visibility='default' filepath='include/net/mac802154.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='xmit_async' type-id='5aa56dcb' visibility='default' filepath='include/net/mac802154.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ed' type-id='61c8a766' visibility='default' filepath='include/net/mac802154.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='set_channel' type-id='4b03dddb' visibility='default' filepath='include/net/mac802154.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='set_hw_addr_filt' type-id='bcdbe961' visibility='default' filepath='include/net/mac802154.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='set_txpower' type-id='02bc4f68' visibility='default' filepath='include/net/mac802154.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='set_lbt' type-id='bfa2746e' visibility='default' filepath='include/net/mac802154.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='set_cca_mode' type-id='c5538168' visibility='default' filepath='include/net/mac802154.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='set_cca_ed_level' type-id='02bc4f68' visibility='default' filepath='include/net/mac802154.h' line='226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='set_csma_params' type-id='17451907' visibility='default' filepath='include/net/mac802154.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='set_frame_retries' type-id='352086a1' visibility='default' filepath='include/net/mac802154.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='set_promiscuous_mode' type-id='b8afdb72' visibility='default' filepath='include/net/mac802154.h' line='231' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mipi_dsi_driver' size-in-bits='1600' is-struct='yes' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='303' column='1' id='51d715c2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='probe' type-id='289e8bdc' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='remove' type-id='289e8bdc' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='shutdown' type-id='fea4b945' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='307' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='HUF_DTable' type-id='7d89f13e' filepath='lib/zstd/huf.h' line='88' column='1' id='51d84938'/>
+      <class-decl name='net_rate_estimator' is-struct='yes' visibility='default' is-declaration-only='yes' id='51dbeb7e'/>
+      <qualified-type-def type-id='d072f052' const='yes' id='51dff603'/>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='384' id='51dffe12'>
+        <subrange length='48' type-id='7ff19f0f' id='8f6d2a81'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='1920' id='51e647b2'>
+        <subrange length='240' type-id='7ff19f0f' id='065c4623'/>
+      </array-type-def>
+      <pointer-type-def type-id='c05c2969' size-in-bits='64' id='51e74031'/>
+      <class-decl name='ethtool_rxnfc' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1104' column='1' id='51e825b6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='flow_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='d3130597' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fs' type-id='a8ce468c' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='' type-id='ac5ab691' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1504'>
+          <var-decl name='rule_locs' type-id='d5016f6f' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1113' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='51edb62f'>
+        <parameter type-id='f57039f0'/>
+        <parameter type-id='a42536cd'/>
+        <return type-id='a42536cd'/>
+      </function-type>
+      <class-decl name='raw_hashinfo' size-in-bits='16448' is-struct='yes' visibility='default' filepath='include/net/raw.h' line='35' column='1' id='51ee3086'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='ac16795b' visibility='default' filepath='include/net/raw.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ht' type-id='a7c26c7b' visibility='default' filepath='include/net/raw.h' line='37' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='918531c2' size-in-bits='64' id='51f1236c'/>
+      <pointer-type-def type-id='25c33493' size-in-bits='64' id='52006477'/>
+      <pointer-type-def type-id='cd1fc343' size-in-bits='64' id='52009e4b'/>
+      <array-type-def dimensions='1' type-id='555c6201' size-in-bits='13440' id='52012fd7'>
+        <subrange length='15' type-id='7ff19f0f' id='8484ba73'/>
+      </array-type-def>
+      <pointer-type-def type-id='4e9708ea' size-in-bits='64' id='5201f65c'/>
+      <qualified-type-def type-id='72f469ec' const='yes' id='5206896f'/>
+      <enum-decl name='snd_soc_dobj_type' filepath='include/sound/soc-topology.h' line='35' column='1' id='5210afb2'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SND_SOC_DOBJ_NONE' value='0'/>
+        <enumerator name='SND_SOC_DOBJ_MIXER' value='1'/>
+        <enumerator name='SND_SOC_DOBJ_BYTES' value='2'/>
+        <enumerator name='SND_SOC_DOBJ_ENUM' value='3'/>
+        <enumerator name='SND_SOC_DOBJ_GRAPH' value='4'/>
+        <enumerator name='SND_SOC_DOBJ_WIDGET' value='5'/>
+        <enumerator name='SND_SOC_DOBJ_DAI_LINK' value='6'/>
+        <enumerator name='SND_SOC_DOBJ_PCM' value='7'/>
+        <enumerator name='SND_SOC_DOBJ_CODEC_LINK' value='8'/>
+        <enumerator name='SND_SOC_DOBJ_BACKEND_LINK' value='9'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='52126317'>
+        <parameter type-id='343c3ae4'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <enum-decl name='kobj_ns_type' filepath='include/linux/kobject_ns.h' line='26' column='1' id='52127d59'>
+        <underlying-type type-id='9cac1fee'/>
+        <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>
+      <class-decl name='resource' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/ioport.h' line='22' column='1' id='5218160d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='acc63fdf' visibility='default' filepath='include/linux/ioport.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='end' type-id='acc63fdf' visibility='default' filepath='include/linux/ioport.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/ioport.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/ioport.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='desc' type-id='7359adad' visibility='default' filepath='include/linux/ioport.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='parent' type-id='c9d64c0d' visibility='default' filepath='include/linux/ioport.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='sibling' type-id='c9d64c0d' visibility='default' filepath='include/linux/ioport.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='child' type-id='c9d64c0d' visibility='default' filepath='include/linux/ioport.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/ioport.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/ioport.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/ioport.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/ioport.h' line='33' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='0bb26f49' size-in-bits='128' id='521a7abd'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <pointer-type-def type-id='652bbaa5' size-in-bits='64' id='521ebb15'/>
+      <class-decl name='sockaddr' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/socket.h' line='32' column='1' id='5221b18a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sa_family' type-id='376fda66' visibility='default' filepath='include/linux/socket.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='sa_data' type-id='f01a039e' visibility='default' filepath='include/linux/socket.h' line='34' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0c7ab04d' size-in-bits='64' id='5224788d'/>
+      <pointer-type-def type-id='acc9767b' size-in-bits='64' id='52254183'/>
+      <class-decl name='pps_device' size-in-bits='3072' is-struct='yes' visibility='default' filepath='include/linux/pps_kernel.h' line='43' column='1' id='522fb0bd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='info' type-id='07dfbd23' visibility='default' filepath='include/linux/pps_kernel.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='params' type-id='dde39212' visibility='default' filepath='include/linux/pps_kernel.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='assert_sequence' type-id='3f1a6b60' visibility='default' filepath='include/linux/pps_kernel.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='clear_sequence' type-id='3f1a6b60' visibility='default' filepath='include/linux/pps_kernel.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='assert_tu' type-id='c03aaaf5' visibility='default' filepath='include/linux/pps_kernel.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='clear_tu' type-id='c03aaaf5' visibility='default' filepath='include/linux/pps_kernel.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='current_mode' type-id='95e97e5e' visibility='default' filepath='include/linux/pps_kernel.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='last_ev' type-id='f0981eeb' visibility='default' filepath='include/linux/pps_kernel.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='queue' type-id='b5ab048f' visibility='default' filepath='include/linux/pps_kernel.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='id' type-id='f0981eeb' visibility='default' filepath='include/linux/pps_kernel.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='lookup_cookie' type-id='eaa32e2f' visibility='default' filepath='include/linux/pps_kernel.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='cdev' type-id='22f86351' visibility='default' filepath='include/linux/pps_kernel.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/pps_kernel.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='async_queue' type-id='5bb9c75d' visibility='default' filepath='include/linux/pps_kernel.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/pps_kernel.h' line='62' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5c3855b6' size-in-bits='64' id='523228f0'/>
+      <class-decl name='sg_mapping_iter' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/scatterlist.h' line='529' column='1' id='52378ac1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='page' type-id='02f11ed4' visibility='default' filepath='include/linux/scatterlist.h' line='531' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='addr' type-id='eaa32e2f' visibility='default' filepath='include/linux/scatterlist.h' line='532' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='length' type-id='b59d7dce' visibility='default' filepath='include/linux/scatterlist.h' line='533' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='consumed' type-id='b59d7dce' visibility='default' filepath='include/linux/scatterlist.h' line='534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='piter' type-id='78e3e1d2' visibility='default' filepath='include/linux/scatterlist.h' line='535' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='__offset' type-id='f0981eeb' visibility='default' filepath='include/linux/scatterlist.h' line='538' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='__remaining' type-id='f0981eeb' visibility='default' filepath='include/linux/scatterlist.h' line='539' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='__flags' type-id='f0981eeb' visibility='default' filepath='include/linux/scatterlist.h' line='540' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fa255d5a' size-in-bits='64' id='523f0bd4'/>
+      <class-decl name='ttm_placement' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/drm/ttm/ttm_placement.h' line='82' column='1' id='523f50f8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='num_placement' type-id='f0981eeb' visibility='default' filepath='include/drm/ttm/ttm_placement.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='placement' type-id='2e6aa127' visibility='default' filepath='include/drm/ttm/ttm_placement.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='num_busy_placement' type-id='f0981eeb' visibility='default' filepath='include/drm/ttm/ttm_placement.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='busy_placement' type-id='2e6aa127' visibility='default' filepath='include/drm/ttm/ttm_placement.h' line='86' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5243924f'>
+        <parameter type-id='67aca04f'/>
+        <parameter type-id='9cc1ac3e'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <class-decl name='perf_branch_stack' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='113' column='1' id='524b1234'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nr' type-id='d3130597' visibility='default' filepath='include/linux/perf_event.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hw_idx' type-id='d3130597' visibility='default' filepath='include/linux/perf_event.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='entries' type-id='6b9809bc' visibility='default' filepath='include/linux/perf_event.h' line='116' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='b5382ece' const='yes' id='5251a03b'/>
+      <function-type size-in-bits='64' id='5257f496'>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='e5af4d64' size-in-bits='64' id='5260af22'/>
+      <pointer-type-def type-id='a8adbe3d' size-in-bits='64' id='5264cf1d'/>
+      <class-decl name='userfaultfd_ctx' is-struct='yes' visibility='default' is-declaration-only='yes' id='526b1662'/>
+      <pointer-type-def type-id='2e618224' size-in-bits='64' id='526bed22'/>
+      <pointer-type-def type-id='5ef8814f' size-in-bits='64' id='52704eb7'/>
+      <pointer-type-def type-id='616601a4' size-in-bits='64' id='52850a16'/>
+      <pointer-type-def type-id='f28519a1' size-in-bits='64' id='528735d1'/>
+      <pointer-type-def type-id='ba5db8ea' size-in-bits='64' id='52980ce4'/>
+      <class-decl name='uic_command' size-in-bits='448' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='96' column='1' id='52999e5a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='command' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='argument1' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='argument2' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='argument3' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cmd_active' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='done' type-id='f9fef04f' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='102' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c3e60881' size-in-bits='64' id='5299fb35'/>
+      <pointer-type-def type-id='df67c5d0' size-in-bits='64' id='52a50596'/>
+      <class-decl name='xfrm_policy_hthresh' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/net/netns/xfrm.h' line='24' column='1' id='52aaaba4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/net/netns/xfrm.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='lock' type-id='e6cd5ecf' visibility='default' filepath='include/net/netns/xfrm.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='lbits4' type-id='f9b06939' visibility='default' filepath='include/net/netns/xfrm.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='456'>
+          <var-decl name='rbits4' type-id='f9b06939' visibility='default' filepath='include/net/netns/xfrm.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='464'>
+          <var-decl name='lbits6' type-id='f9b06939' visibility='default' filepath='include/net/netns/xfrm.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='472'>
+          <var-decl name='rbits6' type-id='f9b06939' visibility='default' filepath='include/net/netns/xfrm.h' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8d2ce43f' size-in-bits='64' id='52ab0d0f'/>
+      <pointer-type-def type-id='e44b8083' size-in-bits='64' id='52abf1d3'/>
+      <pointer-type-def type-id='72c04684' size-in-bits='64' id='52af43ea'/>
+      <class-decl name='crypto_engine' size-in-bits='1600' is-struct='yes' visibility='default' filepath='include/crypto/engine.h' line='47' column='1' id='52afe07b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='d2e20a8c' visibility='default' filepath='include/crypto/engine.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='240'>
+          <var-decl name='idling' type-id='b50a4934' visibility='default' filepath='include/crypto/engine.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='248'>
+          <var-decl name='busy' type-id='b50a4934' visibility='default' filepath='include/crypto/engine.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='running' type-id='b50a4934' visibility='default' filepath='include/crypto/engine.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='264'>
+          <var-decl name='retry_support' type-id='b50a4934' visibility='default' filepath='include/crypto/engine.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/crypto/engine.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='queue_lock' type-id='fb4018a0' visibility='default' filepath='include/crypto/engine.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='queue' type-id='590223f8' visibility='default' filepath='include/crypto/engine.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/crypto/engine.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='rt' type-id='b50a4934' visibility='default' filepath='include/crypto/engine.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='prepare_crypt_hardware' type-id='4c6bdb1f' visibility='default' filepath='include/crypto/engine.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='unprepare_crypt_hardware' type-id='4c6bdb1f' visibility='default' filepath='include/crypto/engine.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='do_batch_requests' type-id='4c6bdb1f' visibility='default' filepath='include/crypto/engine.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='kworker' type-id='c41f4539' visibility='default' filepath='include/crypto/engine.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='pump_requests' type-id='ac165296' visibility='default' filepath='include/crypto/engine.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='priv_data' type-id='eaa32e2f' visibility='default' filepath='include/crypto/engine.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='cur_req' type-id='af5eeab9' visibility='default' filepath='include/crypto/engine.h' line='71' column='1'/>
+        </data-member>
+      </class-decl>
+      <type-decl name='unnamed-enum-underlying-type-0' is-anonymous='yes' is-declaration-only='yes' id='52ba91e1'/>
+      <pointer-type-def type-id='e09a048e' size-in-bits='64' id='52baee64'/>
+      <class-decl name='attribute_container' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/attribute_container.h' line='16' column='1' id='52bea74f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/attribute_container.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='containers' type-id='6160a6ce' visibility='default' filepath='include/linux/attribute_container.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='class' type-id='67aca04f' visibility='default' filepath='include/linux/attribute_container.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='grp' type-id='8ff9530e' visibility='default' filepath='include/linux/attribute_container.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='attrs' type-id='aa9eb300' visibility='default' filepath='include/linux/attribute_container.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='match' type-id='341171ef' visibility='default' filepath='include/linux/attribute_container.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/attribute_container.h' line='24' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='52c5253d'>
+        <parameter type-id='95316552'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='1731e728' const='yes' id='52c69ba9'/>
+      <function-type size-in-bits='64' id='52c77032'>
+        <parameter type-id='fb1092f1'/>
+        <parameter type-id='a7832498'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='v4l2_priv_tun_config' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/media/v4l2-common.h' line='337' column='1' id='52c7f7a2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tuner' type-id='95e97e5e' visibility='default' filepath='include/media/v4l2-common.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/media/v4l2-common.h' line='339' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='d3130597' size-in-bits='infinite' id='52cd3f2c'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='52d21874'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='35078cb9'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='4706793b' size-in-bits='64' id='52e63b6f'/>
+      <function-type size-in-bits='64' id='52e7eff9'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='b7db9582'/>
+        <parameter type-id='8edac644'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='285e362f' size-in-bits='64' id='52f4f223'/>
+      <pointer-type-def type-id='02e89848' size-in-bits='64' id='52f567fe'/>
+      <pointer-type-def type-id='339cba5e' size-in-bits='64' id='53072f48'/>
+      <pointer-type-def type-id='f8b5874e' size-in-bits='64' id='530cb308'/>
+      <function-type size-in-bits='64' id='5312635f'>
+        <parameter type-id='8582e5ec'/>
+        <parameter type-id='4db02c58'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='53143c97'>
+        <parameter type-id='bff05edb'/>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='9d085135' size-in-bits='64' id='5317b3cd'/>
+      <pointer-type-def type-id='98b2ffae' size-in-bits='64' id='531a7450'/>
+      <pointer-type-def type-id='15881542' size-in-bits='64' id='531c24d0'/>
+      <function-type size-in-bits='64' id='53247dc9'>
+        <parameter type-id='513f51db'/>
+        <parameter type-id='3288b9a6'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='5329c4da'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='2ae08426'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='c20384d9' const='yes' id='532f030e'/>
+      <class-decl name='pwm_args' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/pwm.h' line='42' column='1' id='5331ada5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='period' type-id='91ce1af9' visibility='default' filepath='include/linux/pwm.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='polarity' type-id='c2c81069' visibility='default' filepath='include/linux/pwm.h' line='44' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5332c7dc'>
+        <parameter type-id='cfff5953'/>
+        <return type-id='cfff5953'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='e20d9062' size-in-bits='256' id='53375988'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <pointer-type-def type-id='8f17759b' size-in-bits='64' id='533b348b'/>
+      <class-decl name='v4l2_fh' size-in-bits='1280' is-struct='yes' visibility='default' filepath='include/media/v4l2-fh.h' line='42' column='1' id='53422e64'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-fh.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='vdev' type-id='798c29b7' visibility='default' filepath='include/media/v4l2-fh.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ctrl_handler' type-id='2b59fa5e' visibility='default' filepath='include/media/v4l2-fh.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='prio' type-id='8b60a0b9' visibility='default' filepath='include/media/v4l2-fh.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='wait' type-id='b5ab048f' visibility='default' filepath='include/media/v4l2-fh.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='subscribe_lock' type-id='925167dc' visibility='default' filepath='include/media/v4l2-fh.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='subscribed' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-fh.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='available' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-fh.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='navailable' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-fh.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='sequence' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-fh.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='m2m_ctx' type-id='2c7f1dc4' visibility='default' filepath='include/media/v4l2-fh.h' line='56' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5344bebe'>
+        <parameter type-id='226853d2'/>
+        <parameter type-id='e475ab95'/>
+        <parameter type-id='f74174a4'/>
+        <parameter type-id='26a90f95'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='2fa2db94' size-in-bits='64' id='5346c726'/>
+      <qualified-type-def type-id='4cd738bd' const='yes' id='5352365e'/>
+      <class-decl name='mii_ioctl_data' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/mii.h' line='178' column='1' id='535834b5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='phy_id' type-id='d315442e' visibility='default' filepath='include/uapi/linux/mii.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='reg_num' type-id='d315442e' visibility='default' filepath='include/uapi/linux/mii.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='val_in' type-id='d315442e' visibility='default' filepath='include/uapi/linux/mii.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='val_out' type-id='d315442e' visibility='default' filepath='include/uapi/linux/mii.h' line='182' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='4ca01201' const='yes' id='53637fcc'/>
+      <pointer-type-def type-id='cd9a7e6e' size-in-bits='64' id='536610f0'/>
+      <pointer-type-def type-id='bbe452a1' size-in-bits='64' id='536df0d1'/>
+      <typedef-decl name='__kernel_loff_t' type-id='1eb56b1e' filepath='include/uapi/asm-generic/posix_types.h' line='88' column='1' id='537a730e'/>
+      <typedef-decl name='rq_end_io_fn' type-id='06c207bd' filepath='include/linux/blkdev.h' line='59' column='1' id='537d88b1'/>
+      <pointer-type-def type-id='7a42d02f' size-in-bits='64' id='537ed613'/>
+      <function-type size-in-bits='64' id='53878b76'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='f1c1e0f9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='538b7809'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='aded214c'/>
+        <parameter type-id='bbaf3419'/>
+        <parameter type-id='19272f09'/>
+        <parameter type-id='f9409001'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='538e531b'>
+        <parameter type-id='b7c1d7d5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='2d672146' size-in-bits='64' id='53924d18'/>
+      <qualified-type-def type-id='b4470bcd' const='yes' id='5392630e'/>
+      <pointer-type-def type-id='1d8506ad' size-in-bits='64' id='53955211'/>
+      <pointer-type-def type-id='10216dc5' size-in-bits='64' id='53a00f3d'/>
+      <pointer-type-def type-id='628f102a' size-in-bits='64' id='53a5ad54'/>
+      <array-type-def dimensions='1' type-id='e151255a' size-in-bits='4096' id='53b70d6c'>
+        <subrange length='64' type-id='7ff19f0f' id='b10be967'/>
+      </array-type-def>
+      <pointer-type-def type-id='1edbefa6' size-in-bits='64' id='53be694c'/>
+      <function-type size-in-bits='64' id='53c2644d'>
+        <parameter type-id='67d012a2'/>
+        <parameter type-id='48d9f490'/>
+        <parameter type-id='6f383d17'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='5cf9392d' size-in-bits='64' id='53c91149'/>
+      <class-decl name='dl_rq' size-in-bits='768' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='688' column='1' id='53d038df'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='root' type-id='6fe1603d' visibility='default' filepath='kernel/sched/sched.h' line='690' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dl_nr_running' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='692' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='earliest_dl' type-id='e7f44044' visibility='default' filepath='kernel/sched/sched.h' line='704' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dl_nr_migratory' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='706' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='overloaded' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='707' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='pushable_dl_tasks_root' type-id='6fe1603d' visibility='default' filepath='kernel/sched/sched.h' line='714' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='running_bw' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='723' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='this_bw' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='734' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='extra_bw' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='735' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='bw_ratio' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='741' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='66f5cf2a' size-in-bits='64' id='53d4e65c'/>
+      <pointer-type-def type-id='3bf19710' size-in-bits='64' id='53e3a7d6'/>
+      <function-type size-in-bits='64' id='53e8ab6e'>
+        <parameter type-id='12884b9a'/>
+        <parameter type-id='8bf48c31'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='e3913a59' const='yes' id='53ecac3a'/>
+      <function-type size-in-bits='64' id='53edae20'>
+        <parameter type-id='478ed79d'/>
+        <return type-id='d0835005'/>
+      </function-type>
+      <function-type size-in-bits='64' id='53efb49e'>
+        <parameter type-id='eb572b74'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='26ea5d4c' size-in-bits='4096' id='53f04f9e'>
+        <subrange length='64' type-id='7ff19f0f' id='b10be967'/>
+      </array-type-def>
+      <class-decl name='usbnet' size-in-bits='5568' is-struct='yes' visibility='default' filepath='include/linux/usb/usbnet.h' line='29' column='1' id='53f069ac'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='udev' type-id='25e60cb2' visibility='default' filepath='include/linux/usb/usbnet.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='intf' type-id='8bf48c31' visibility='default' filepath='include/linux/usb/usbnet.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='driver_info' type-id='541453cb' visibility='default' filepath='include/linux/usb/usbnet.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='driver_name' type-id='80f4b756' visibility='default' filepath='include/linux/usb/usbnet.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='driver_priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb/usbnet.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='wait' type-id='b5ab048f' visibility='default' filepath='include/linux/usb/usbnet.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='phy_mutex' type-id='925167dc' visibility='default' filepath='include/linux/usb/usbnet.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='suspend_count' type-id='002ac4a6' visibility='default' filepath='include/linux/usb/usbnet.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='904'>
+          <var-decl name='pkt_cnt' type-id='002ac4a6' visibility='default' filepath='include/linux/usb/usbnet.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='912'>
+          <var-decl name='pkt_err' type-id='002ac4a6' visibility='default' filepath='include/linux/usb/usbnet.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='rx_qlen' type-id='8efea9e5' visibility='default' filepath='include/linux/usb/usbnet.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='944'>
+          <var-decl name='tx_qlen' type-id='8efea9e5' visibility='default' filepath='include/linux/usb/usbnet.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='can_dma_sg' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/usbnet.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='in' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/usbnet.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='out' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/usbnet.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='status' type-id='15adb516' visibility='default' filepath='include/linux/usb/usbnet.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='maxpacket' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/usbnet.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='delay' type-id='abe41e67' visibility='default' filepath='include/linux/usb/usbnet.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='padding_pkt' type-id='80f4b756' visibility='default' filepath='include/linux/usb/usbnet.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='net' type-id='68a2d05b' visibility='default' filepath='include/linux/usb/usbnet.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='msg_enable' type-id='95e97e5e' visibility='default' filepath='include/linux/usb/usbnet.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='data' type-id='f06fd798' visibility='default' filepath='include/linux/usb/usbnet.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='xid' type-id='19c2251e' visibility='default' filepath='include/linux/usb/usbnet.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2208'>
+          <var-decl name='hard_mtu' type-id='19c2251e' visibility='default' filepath='include/linux/usb/usbnet.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='rx_urb_size' type-id='b59d7dce' visibility='default' filepath='include/linux/usb/usbnet.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='mii' type-id='a9918a4d' visibility='default' filepath='include/linux/usb/usbnet.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='rx_speed' type-id='bd54fe1a' visibility='default' filepath='include/linux/usb/usbnet.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='tx_speed' type-id='bd54fe1a' visibility='default' filepath='include/linux/usb/usbnet.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='rxq' type-id='e61c85d0' visibility='default' filepath='include/linux/usb/usbnet.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='txq' type-id='e61c85d0' visibility='default' filepath='include/linux/usb/usbnet.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='done' type-id='e61c85d0' visibility='default' filepath='include/linux/usb/usbnet.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='rxq_pause' type-id='e61c85d0' visibility='default' filepath='include/linux/usb/usbnet.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='interrupt' type-id='ab85b8f2' visibility='default' filepath='include/linux/usb/usbnet.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='interrupt_count' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/usbnet.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='interrupt_mutex' type-id='925167dc' visibility='default' filepath='include/linux/usb/usbnet.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='deferred' type-id='b3bcc053' visibility='default' filepath='include/linux/usb/usbnet.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4544'>
+          <var-decl name='bh' type-id='7a7ea727' visibility='default' filepath='include/linux/usb/usbnet.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4864'>
+          <var-decl name='kevent' type-id='ef9025d0' visibility='default' filepath='include/linux/usb/usbnet.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/usb/usbnet.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5312'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/usbnet.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/usbnet.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5440'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/usbnet.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/usbnet.h' line='93' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fb246cd7' size-in-bits='64' id='53f7c7e3'/>
+      <class-decl name='execute_work' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/workqueue.h' line='169' column='1' id='53f7ea88'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/linux/workqueue.h' line='170' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='spinlock' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/spinlock_types.h' line='17' column='1' id='53fb272e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab65f' visibility='default' filepath='include/linux/spinlock_types.h' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f22a8abb' size-in-bits='64' id='5403cb36'/>
+      <pointer-type-def type-id='6544a7c3' size-in-bits='64' id='541453cb'/>
+      <pointer-type-def type-id='5c166f04' size-in-bits='64' id='541466be'/>
+      <function-type size-in-bits='64' id='5415f247'>
+        <parameter type-id='442b8d89'/>
+        <parameter type-id='cba10b6e'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='723fef03' size-in-bits='64' id='5417cc83'/>
+      <class-decl name='rcu_segcblist' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/linux/rcu_segcblist.h' line='183' column='1' id='541c023a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='head' type-id='69c138b1' visibility='default' filepath='include/linux/rcu_segcblist.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tails' type-id='68694f49' visibility='default' filepath='include/linux/rcu_segcblist.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='gp_seq' type-id='f46d9f4d' visibility='default' filepath='include/linux/rcu_segcblist.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='len' type-id='f22a8abb' visibility='default' filepath='include/linux/rcu_segcblist.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='seglen' type-id='5d4602e8' visibility='default' filepath='include/linux/rcu_segcblist.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/linux/rcu_segcblist.h' line='193' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='a084c932' const='yes' id='5420d2f9'/>
+      <pointer-type-def type-id='fbb00d34' size-in-bits='64' id='5424a63a'/>
+      <qualified-type-def type-id='83cac475' const='yes' id='54286388'/>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='160' id='5429fe4a'>
+        <subrange length='20' type-id='7ff19f0f' id='fdca39cf'/>
+      </array-type-def>
+      <qualified-type-def type-id='1e4ae69e' const='yes' id='5433b7f7'/>
+      <pointer-type-def type-id='c72b9bdc' size-in-bits='64' id='54387d26'/>
+      <class-decl name='dma_interleaved_template' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/dmaengine.h' line='151' column='1' id='543d1e64'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='src_start' type-id='cf29c9b3' visibility='default' filepath='include/linux/dmaengine.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dst_start' type-id='cf29c9b3' visibility='default' filepath='include/linux/dmaengine.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dir' type-id='941ca9e2' visibility='default' filepath='include/linux/dmaengine.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='src_inc' type-id='b50a4934' visibility='default' filepath='include/linux/dmaengine.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='168'>
+          <var-decl name='dst_inc' type-id='b50a4934' visibility='default' filepath='include/linux/dmaengine.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='src_sgl' type-id='b50a4934' visibility='default' filepath='include/linux/dmaengine.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='184'>
+          <var-decl name='dst_sgl' type-id='b50a4934' visibility='default' filepath='include/linux/dmaengine.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='numf' type-id='b59d7dce' visibility='default' filepath='include/linux/dmaengine.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='frame_size' type-id='b59d7dce' visibility='default' filepath='include/linux/dmaengine.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='sgl' type-id='e5c7d3c7' visibility='default' filepath='include/linux/dmaengine.h' line='161' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pglist_data' size-in-bits='56320' is-struct='yes' visibility='default' filepath='include/linux/mmzone.h' line='1023' column='1' id='54406315'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node_zones' type-id='83aedf28' visibility='default' filepath='include/linux/mmzone.h' line='1029' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='38400'>
+          <var-decl name='node_zonelists' type-id='9509a9de' visibility='default' filepath='include/linux/mmzone.h' line='1036' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='38912'>
+          <var-decl name='nr_zones' type-id='95e97e5e' visibility='default' filepath='include/linux/mmzone.h' line='1038' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='38944'>
+          <var-decl name='node_size_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/mmzone.h' line='1058' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='38976'>
+          <var-decl name='node_start_pfn' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='1060' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='39040'>
+          <var-decl name='node_present_pages' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='1061' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='39104'>
+          <var-decl name='node_spanned_pages' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='1062' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='39168'>
+          <var-decl name='node_id' type-id='95e97e5e' visibility='default' filepath='include/linux/mmzone.h' line='1064' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='39232'>
+          <var-decl name='kswapd_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/mmzone.h' line='1065' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='39424'>
+          <var-decl name='pfmemalloc_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/mmzone.h' line='1066' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='39616'>
+          <var-decl name='kswapd' type-id='f23e2572' visibility='default' filepath='include/linux/mmzone.h' line='1067' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='39680'>
+          <var-decl name='mkswapd' type-id='2a143e6f' visibility='default' filepath='include/linux/mmzone.h' line='1069' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40704'>
+          <var-decl name='kswapd_order' type-id='95e97e5e' visibility='default' filepath='include/linux/mmzone.h' line='1070' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40736'>
+          <var-decl name='kswapd_highest_zoneidx' type-id='d278ff03' visibility='default' filepath='include/linux/mmzone.h' line='1071' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40768'>
+          <var-decl name='kswapd_failures' type-id='95e97e5e' visibility='default' filepath='include/linux/mmzone.h' line='1073' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40832'>
+          <var-decl name='android_oem_data1' type-id='91ce1af9' visibility='default' filepath='include/linux/mmzone.h' line='1075' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40896'>
+          <var-decl name='kcompactd_max_order' type-id='95e97e5e' visibility='default' filepath='include/linux/mmzone.h' line='1077' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40928'>
+          <var-decl name='kcompactd_highest_zoneidx' type-id='d278ff03' visibility='default' filepath='include/linux/mmzone.h' line='1078' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40960'>
+          <var-decl name='kcompactd_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/mmzone.h' line='1079' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41152'>
+          <var-decl name='kcompactd' type-id='f23e2572' visibility='default' filepath='include/linux/mmzone.h' line='1080' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41216'>
+          <var-decl name='proactive_compact_trigger' type-id='b50a4934' visibility='default' filepath='include/linux/mmzone.h' line='1081' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41280'>
+          <var-decl name='totalreserve_pages' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='1087' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41472'>
+          <var-decl name='_pad1_' type-id='6041cd25' visibility='default' filepath='include/linux/mmzone.h' line='1098' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41472'>
+          <var-decl name='deferred_split_queue' type-id='d619c1c5' visibility='default' filepath='include/linux/mmzone.h' line='1109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41728'>
+          <var-decl name='__lruvec' type-id='9e8c0698' visibility='default' filepath='include/linux/mmzone.h' line='1119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='51456'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='1121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='51520'>
+          <var-decl name='mm_walk' type-id='32b4b752' visibility='default' filepath='include/linux/mmzone.h' line='1125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='53248'>
+          <var-decl name='_pad2_' type-id='6041cd25' visibility='default' filepath='include/linux/mmzone.h' line='1128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='53248'>
+          <var-decl name='per_cpu_nodestats' type-id='36700cde' visibility='default' filepath='include/linux/mmzone.h' line='1131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='53312'>
+          <var-decl name='vm_stat' type-id='a08a3908' visibility='default' filepath='include/linux/mmzone.h' line='1132' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='834d1a2b' size-in-bits='64' id='5448fdd7'/>
+      <function-type size-in-bits='64' id='5452befe'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='15dfbd93'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='54544021'>
+        <return type-id='6614aa5e'/>
+      </function-type>
+      <qualified-type-def type-id='b6993efc' const='yes' id='545b687b'/>
+      <qualified-type-def type-id='5e0dec46' const='yes' id='545e9343'/>
+      <function-type size-in-bits='64' id='5460fbd3'>
+        <parameter type-id='4f4f2d55'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='5468e006'>
+        <parameter type-id='339c87e8'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='io_pgtable_cfg' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/io-pgtable.h' line='62' column='1' id='5470719c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='quirks' type-id='7359adad' visibility='default' filepath='include/linux/io-pgtable.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pgsize_bitmap' type-id='7359adad' visibility='default' filepath='include/linux/io-pgtable.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ias' type-id='f0981eeb' visibility='default' filepath='include/linux/io-pgtable.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='oas' type-id='f0981eeb' visibility='default' filepath='include/linux/io-pgtable.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='coherent_walk' type-id='b50a4934' visibility='default' filepath='include/linux/io-pgtable.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='tlb' type-id='8e043c8f' visibility='default' filepath='include/linux/io-pgtable.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='iommu_dev' type-id='fa0b179b' visibility='default' filepath='include/linux/io-pgtable.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='' type-id='ac5ab5e6' visibility='default' filepath='include/linux/io-pgtable.h' line='102' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tcp_congestion_ops' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/net/tcp.h' line='1039' column='1' id='54718f09'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ssthresh' type-id='8af06487' visibility='default' filepath='include/net/tcp.h' line='1043' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cong_avoid' type-id='ece3af1e' visibility='default' filepath='include/net/tcp.h' line='1046' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='set_state' type-id='f5feb7a4' visibility='default' filepath='include/net/tcp.h' line='1049' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cwnd_event' type-id='bfacbc7a' visibility='default' filepath='include/net/tcp.h' line='1052' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='in_ack_event' type-id='815f64bf' visibility='default' filepath='include/net/tcp.h' line='1055' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='pkts_acked' type-id='bffb5883' visibility='default' filepath='include/net/tcp.h' line='1058' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='min_tso_segs' type-id='8af06487' visibility='default' filepath='include/net/tcp.h' line='1061' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='cong_control' type-id='636d3a20' visibility='default' filepath='include/net/tcp.h' line='1066' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='undo_cwnd' type-id='8af06487' visibility='default' filepath='include/net/tcp.h' line='1070' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='sndbuf_expand' type-id='8af06487' visibility='default' filepath='include/net/tcp.h' line='1072' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='get_info' type-id='14ca5c08' visibility='default' filepath='include/net/tcp.h' line='1076' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='name' type-id='ac1fa8c0' visibility='default' filepath='include/net/tcp.h' line='1079' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/net/tcp.h' line='1080' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/tcp.h' line='1081' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='key' type-id='19c2251e' visibility='default' filepath='include/net/tcp.h' line='1082' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/tcp.h' line='1083' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='init' type-id='841969d0' visibility='default' filepath='include/net/tcp.h' line='1086' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='release' type-id='841969d0' visibility='default' filepath='include/net/tcp.h' line='1088' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='673937f2' size-in-bits='64' id='5474f420'/>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='8064' id='547691f8'>
+        <subrange length='126' type-id='7ff19f0f' id='1ad3f470'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='5479f5e7'>
+        <parameter type-id='c67366c7'/>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='657fbd80' size-in-bits='64' id='547aa7d2'/>
+      <class-decl name='i2c_algorithm' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/i2c.h' line='533' column='1' id='547b1199'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='master_xfer' type-id='4813c4da' visibility='default' filepath='include/linux/i2c.h' line='543' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='master_xfer_atomic' type-id='4813c4da' visibility='default' filepath='include/linux/i2c.h' line='545' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='smbus_xfer' type-id='99dc8ee7' visibility='default' filepath='include/linux/i2c.h' line='547' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='smbus_xfer_atomic' type-id='99dc8ee7' visibility='default' filepath='include/linux/i2c.h' line='550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='functionality' type-id='d0ff2b97' visibility='default' filepath='include/linux/i2c.h' line='555' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cd68bc93' size-in-bits='64' id='547e4f07'/>
+      <qualified-type-def type-id='40a816ad' const='yes' id='5487ffdc'/>
+      <class-decl name='perf_addr_filters_head' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='553' column='1' id='54885433'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/perf_event.h' line='555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='nr_file_filters' type-id='f0981eeb' visibility='default' filepath='include/linux/perf_event.h' line='556' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4ae18970' size-in-bits='64' id='548eee3a'/>
+      <pointer-type-def type-id='19e88833' size-in-bits='64' id='549da823'/>
+      <class-decl name='rtattr' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/rtnetlink.h' line='202' column='1' id='549dd8f4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rta_len' type-id='8efea9e5' visibility='default' filepath='include/uapi/linux/rtnetlink.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='rta_type' type-id='8efea9e5' visibility='default' filepath='include/uapi/linux/rtnetlink.h' line='204' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0f47abb9' size-in-bits='64' id='54a031e1'/>
+      <pointer-type-def type-id='9ea75344' size-in-bits='64' id='54a1bec6'/>
+      <pointer-type-def type-id='c70cf626' size-in-bits='64' id='54a734c8'/>
+      <function-type size-in-bits='64' id='54b1caeb'>
+        <parameter type-id='93762a0a'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='54b8f32e'>
+        <parameter type-id='fc4f83c1'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='v4l2_edid' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-common.h' line='87' column='1' id='54bf0f36'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pad' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-common.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='start_block' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-common.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='blocks' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-common.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='reserved' type-id='83a5454e' visibility='default' filepath='include/uapi/linux/v4l2-common.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='edid' type-id='474e5dcc' visibility='default' filepath='include/uapi/linux/v4l2-common.h' line='92' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b55def60' size-in-bits='64' id='54c34bcf'/>
+      <class-decl name='dma_fence_cb' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/dma-fence.h' line='116' column='1' id='54c5dd35'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/dma-fence.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='func' type-id='9c175524' visibility='default' filepath='include/linux/dma-fence.h' line='118' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='54c5fdf4'>
+        <parameter type-id='07d0a3e7'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <class-decl name='mfd_cell' size-in-bits='1152' is-struct='yes' visibility='default' filepath='include/linux/mfd/core.h' line='66' column='1' id='54cc740b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/mfd/core.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/mfd/core.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='level' type-id='95e97e5e' visibility='default' filepath='include/linux/mfd/core.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='enable' type-id='e05ae2cd' visibility='default' filepath='include/linux/mfd/core.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='disable' type-id='e05ae2cd' visibility='default' filepath='include/linux/mfd/core.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='suspend' type-id='e05ae2cd' visibility='default' filepath='include/linux/mfd/core.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='resume' type-id='e05ae2cd' visibility='default' filepath='include/linux/mfd/core.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='platform_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/mfd/core.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pdata_size' type-id='b59d7dce' visibility='default' filepath='include/linux/mfd/core.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='swnode' type-id='1cc6783c' visibility='default' filepath='include/linux/mfd/core.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='of_compatible' type-id='80f4b756' visibility='default' filepath='include/linux/mfd/core.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='of_reg' type-id='49c81889' visibility='default' filepath='include/linux/mfd/core.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='use_of_reg' type-id='b50a4934' visibility='default' filepath='include/linux/mfd/core.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='acpi_match' type-id='66421794' visibility='default' filepath='include/linux/mfd/core.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='num_resources' type-id='95e97e5e' visibility='default' filepath='include/linux/mfd/core.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='resources' type-id='e153f6de' visibility='default' filepath='include/linux/mfd/core.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='ignore_resource_conflicts' type-id='b50a4934' visibility='default' filepath='include/linux/mfd/core.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='968'>
+          <var-decl name='pm_runtime_no_callbacks' type-id='b50a4934' visibility='default' filepath='include/linux/mfd/core.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='parent_supplies' type-id='13956559' visibility='default' filepath='include/linux/mfd/core.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='num_parent_supplies' type-id='95e97e5e' visibility='default' filepath='include/linux/mfd/core.h' line='123' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='afb04a62' size-in-bits='64' id='54d4ed50'/>
+      <function-type size-in-bits='64' id='54d4fbda'>
+        <parameter type-id='7a5054b7'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a9237415' size-in-bits='64' id='54d7d559'/>
+      <function-type size-in-bits='64' id='54d829fa'>
+        <parameter type-id='dfeb7f6c'/>
+        <parameter type-id='8bff8096'/>
+        <parameter type-id='bbaf3419'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='ieee80211_eht_cap_elem_fixed' size-in-bits='88' is-struct='yes' visibility='default' filepath='include/linux/ieee80211.h' line='1997' column='1' id='54db3447'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mac_cap_info' type-id='cf114704' visibility='default' filepath='include/linux/ieee80211.h' line='1998' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='phy_cap_info' type-id='cef57087' visibility='default' filepath='include/linux/ieee80211.h' line='1999' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d725da49' size-in-bits='64' id='54df184d'/>
+      <pointer-type-def type-id='f060e03b' size-in-bits='64' id='54e54fbb'/>
+      <pointer-type-def type-id='e7cedc9d' size-in-bits='64' id='54ec2a4d'/>
+      <function-type size-in-bits='64' id='54f4a585'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='7924d17e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='usb_gadget' size-in-bits='8512' is-struct='yes' visibility='default' filepath='include/linux/usb/gadget.h' line='419' column='1' id='54f638e6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/linux/usb/gadget.h' line='420' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='udc' type-id='d872b366' visibility='default' filepath='include/linux/usb/gadget.h' line='421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ops' type-id='1d94d806' visibility='default' filepath='include/linux/usb/gadget.h' line='423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ep0' type-id='63a08bf7' visibility='default' filepath='include/linux/usb/gadget.h' line='424' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ep_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb/gadget.h' line='425' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='speed' type-id='4e532009' visibility='default' filepath='include/linux/usb/gadget.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='max_speed' type-id='4e532009' visibility='default' filepath='include/linux/usb/gadget.h' line='427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='ssp_rate' type-id='a9ea967a' visibility='default' filepath='include/linux/usb/gadget.h' line='430' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='max_ssp_rate' type-id='a9ea967a' visibility='default' filepath='include/linux/usb/gadget.h' line='431' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='state' type-id='901a91cb' visibility='default' filepath='include/linux/usb/gadget.h' line='433' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/usb/gadget.h' line='434' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/usb/gadget.h' line='435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='isoch_delay' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8288'>
+          <var-decl name='out_epnum' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='in_epnum' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='438' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8352'>
+          <var-decl name='mA' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='439' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8384'>
+          <var-decl name='otg_caps' type-id='451a0588' visibility='default' filepath='include/linux/usb/gadget.h' line='440' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8448'>
+          <var-decl name='sg_supported' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='442' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8449'>
+          <var-decl name='is_otg' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8450'>
+          <var-decl name='is_a_peripheral' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8451'>
+          <var-decl name='b_hnp_enable' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8452'>
+          <var-decl name='a_hnp_support' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8453'>
+          <var-decl name='a_alt_hnp_support' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='447' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8454'>
+          <var-decl name='hnp_polling_support' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8455'>
+          <var-decl name='host_request_flag' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8456'>
+          <var-decl name='quirk_ep_out_aligned_size' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8457'>
+          <var-decl name='quirk_altset_not_supp' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8458'>
+          <var-decl name='quirk_stall_not_supp' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8459'>
+          <var-decl name='quirk_zlp_not_supp' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8460'>
+          <var-decl name='quirk_avoids_skb_reserve' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8461'>
+          <var-decl name='is_selfpowered' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8462'>
+          <var-decl name='deactivated' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8463'>
+          <var-decl name='connected' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8464'>
+          <var-decl name='lpm_capable' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8480'>
+          <var-decl name='irq' type-id='95e97e5e' visibility='default' filepath='include/linux/usb/gadget.h' line='459' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='i3c_ccc_cmd_dest' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/i3c/ccc.h' line='361' column='1' id='55059246'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='f9b06939' visibility='default' filepath='include/linux/i3c/ccc.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='payload' type-id='112d7604' visibility='default' filepath='include/linux/i3c/ccc.h' line='363' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='vb2_buffer_state' filepath='include/media/videobuf2-core.h' line='223' column='1' id='550876cf'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='VB2_BUF_STATE_DEQUEUED' value='0'/>
+        <enumerator name='VB2_BUF_STATE_IN_REQUEST' value='1'/>
+        <enumerator name='VB2_BUF_STATE_PREPARING' value='2'/>
+        <enumerator name='VB2_BUF_STATE_QUEUED' value='3'/>
+        <enumerator name='VB2_BUF_STATE_ACTIVE' value='4'/>
+        <enumerator name='VB2_BUF_STATE_DONE' value='5'/>
+        <enumerator name='VB2_BUF_STATE_ERROR' value='6'/>
+      </enum-decl>
+      <pointer-type-def type-id='1e0f9dee' size-in-bits='64' id='5509d4f4'/>
+      <class-decl name='ipv6_opt_hdr' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/uapi/linux/ipv6.h' line='63' column='1' id='5510bbdb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nexthdr' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='hdrlen' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='65' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='typec_cc_polarity' filepath='include/linux/usb/tcpm.h' line='26' column='1' id='551eebc9'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='TYPEC_POLARITY_CC1' value='0'/>
+        <enumerator name='TYPEC_POLARITY_CC2' value='1'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='5520e014'>
+        <parameter type-id='b88dd945'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='55274865'>
+        <parameter type-id='dc1ef2b7'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <function-type size-in-bits='64' id='552bdef7'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='eeaf504d'/>
+        <parameter type-id='a69af780'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4f21665b' size-in-bits='64' id='552c8f87'/>
+      <class-decl name='icc_node_data' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/interconnect-provider.h' line='23' column='1' id='5547c428'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='18d76f87' visibility='default' filepath='include/linux/interconnect-provider.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tag' type-id='19c2251e' visibility='default' filepath='include/linux/interconnect-provider.h' line='25' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c1a65a65' size-in-bits='64' id='554d9945'/>
+      <class-decl name='ethtool_ringparam' size-in-bits='288' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='525' column='1' id='555033d2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='526' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='rx_max_pending' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rx_mini_max_pending' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='528' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='rx_jumbo_max_pending' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='529' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tx_max_pending' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='530' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='rx_pending' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='531' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rx_mini_pending' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='532' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='rx_jumbo_pending' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='533' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='tx_pending' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='534' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3c813efb' size-in-bits='64' id='55530c47'/>
+      <pointer-type-def type-id='73fb632a' size-in-bits='64' id='5553210f'/>
+      <enum-decl name='page_entry_size' filepath='include/linux/mm.h' line='588' column='1' id='5555b4b4'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PE_SIZE_PTE' value='0'/>
+        <enumerator name='PE_SIZE_PMD' value='1'/>
+        <enumerator name='PE_SIZE_PUD' value='2'/>
+      </enum-decl>
+      <qualified-type-def type-id='6661a698' const='yes' id='5558489b'/>
+      <class-decl name='ufs_event_hist' size-in-bits='896' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='469' column='1' id='555c6201'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pos' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='470' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='val' type-id='1c6311dd' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='471' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='tstamp' type-id='3276578a' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='472' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='cnt' type-id='0d77e947' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='473' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='cf29c9b3' size-in-bits='infinite' id='55685a92'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <class-decl name='wiphy_wowlan_tcp_support' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5186' column='1' id='557bca33'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tok' type-id='6a8cbf59' visibility='default' filepath='include/net/cfg80211.h' line='5187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data_payload_max' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='data_interval_max' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='wake_payload_max' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='seq' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='5191' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='557c51cd'>
+        <parameter type-id='94f8595c'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='557ef084'>
+        <parameter type-id='2ba25712'/>
+        <parameter type-id='14bde5bf'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9192bb03' size-in-bits='64' id='55866c73'/>
+      <qualified-type-def type-id='8264b0e6' const='yes' id='558bf6c5'/>
+      <pointer-type-def type-id='7c8b7a6c' size-in-bits='64' id='55917c32'/>
+      <pointer-type-def type-id='dbce337a' size-in-bits='64' id='559ac6f0'/>
+      <qualified-type-def type-id='b8553c6b' const='yes' id='559d6206'/>
+      <pointer-type-def type-id='4c0e45bc' size-in-bits='64' id='55a10ce6'/>
+      <array-type-def dimensions='1' type-id='39486498' size-in-bits='32768' id='55a95556'>
+        <subrange length='512' type-id='7ff19f0f' id='c11630dd'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='a7a31b92' size-in-bits='infinite' id='55b5dc02'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <class-decl name='drm_fb_helper' size-in-bits='3136' is-struct='yes' visibility='default' filepath='include/drm/drm_fb_helper.h' line='113' column='1' id='55b7e9ac'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='client' type-id='0ab6a08c' visibility='default' filepath='include/drm/drm_fb_helper.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='buffer' type-id='b78e1fbb' visibility='default' filepath='include/drm/drm_fb_helper.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='fb' type-id='7b332e1c' visibility='default' filepath='include/drm/drm_fb_helper.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='dev' type-id='8898134d' visibility='default' filepath='include/drm/drm_fb_helper.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='funcs' type-id='b4872443' visibility='default' filepath='include/drm/drm_fb_helper.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='fbdev' type-id='9f763fd8' visibility='default' filepath='include/drm/drm_fb_helper.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='pseudo_palette' type-id='46fc18d9' visibility='default' filepath='include/drm/drm_fb_helper.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1696'>
+          <var-decl name='damage_clip' type-id='ec280828' visibility='default' filepath='include/drm/drm_fb_helper.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1760'>
+          <var-decl name='damage_lock' type-id='fb4018a0' visibility='default' filepath='include/drm/drm_fb_helper.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='damage_work' type-id='ef9025d0' visibility='default' filepath='include/drm/drm_fb_helper.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='resume_work' type-id='ef9025d0' visibility='default' filepath='include/drm/drm_fb_helper.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/drm/drm_fb_helper.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='kernel_fb_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_fb_helper.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='delayed_hotplug' type-id='b50a4934' visibility='default' filepath='include/drm/drm_fb_helper.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3080'>
+          <var-decl name='deferred_setup' type-id='b50a4934' visibility='default' filepath='include/drm/drm_fb_helper.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3104'>
+          <var-decl name='preferred_bpp' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_fb_helper.h' line='187' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='af8a50f5' size-in-bits='64' id='55bb6559'/>
+      <class-decl name='shash_desc' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/crypto/hash.h' line='150' column='1' id='55bdfa3e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tfm' type-id='247dd85c' visibility='default' filepath='include/crypto/hash.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='__ctx' type-id='baf98fd3' visibility='default' filepath='include/crypto/hash.h' line='152' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='952798b4' size-in-bits='64' id='55c7e5c2'/>
+      <pointer-type-def type-id='f3cd5712' size-in-bits='64' id='55cb433c'/>
+      <pointer-type-def type-id='f7b43f0c' size-in-bits='64' id='55cfdcaa'/>
+      <array-type-def dimensions='1' type-id='e878d564' size-in-bits='1344' id='55d1e02d'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <pointer-type-def type-id='42c66597' size-in-bits='64' id='55d37973'/>
+      <pointer-type-def type-id='cfdbff8a' size-in-bits='64' id='55e2a83c'/>
+      <class-decl name='ipv6_devconf' size-in-bits='2240' is-struct='yes' visibility='default' filepath='include/linux/ipv6.h' line='13' column='1' id='55e8af82'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='forwarding' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='hop_limit' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mtu6' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='accept_ra' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='accept_redirects' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='autoconf' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dad_transmits' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='rtr_solicits' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rtr_solicit_interval' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='rtr_solicit_max_interval' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='rtr_solicit_delay' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='force_mld_version' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='mldv1_unsolicited_report_interval' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='mldv2_unsolicited_report_interval' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='use_tempaddr' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='temp_valid_lft' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='temp_prefered_lft' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='regen_max_retry' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='max_desync_factor' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='max_addresses' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='accept_ra_defrtr' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='ra_defrtr_metric' type-id='3f1a6b60' visibility='default' filepath='include/linux/ipv6.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='accept_ra_min_hop_limit' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='accept_ra_pinfo' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='ignore_routes_with_linkdown' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='accept_ra_rtr_pref' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='rtr_probe_interval' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='accept_ra_rt_info_min_plen' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='accept_ra_rt_info_max_plen' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='accept_ra_rt_table' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='proxy_ndp' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='accept_source_route' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='accept_ra_from_local' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='optimistic_dad' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='use_optimistic' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='disable_ipv6' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='drop_unicast_in_l2_multicast' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='accept_dad' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='force_tllao' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='ndisc_notify' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='suppress_frag_ndisc' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='accept_ra_mtu' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='drop_unsolicited_na' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='stable_secret' type-id='b2fc06b3' visibility='default' filepath='include/linux/ipv6.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='use_oif_addrs_only' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='keep_addr_on_down' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='seg6_enabled' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1632'>
+          <var-decl name='enhanced_dad' type-id='3f1a6b60' visibility='default' filepath='include/linux/ipv6.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='addr_gen_mode' type-id='3f1a6b60' visibility='default' filepath='include/linux/ipv6.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1696'>
+          <var-decl name='disable_policy' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='ndisc_tclass' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1760'>
+          <var-decl name='rpl_seg_enabled' type-id='3158a266' visibility='default' filepath='include/linux/ipv6.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='ioam6_id' type-id='3f1a6b60' visibility='default' filepath='include/linux/ipv6.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1824'>
+          <var-decl name='ioam6_id_wide' type-id='3f1a6b60' visibility='default' filepath='include/linux/ipv6.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='ioam6_enabled' type-id='8f048e17' visibility='default' filepath='include/linux/ipv6.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='sysctl_header' type-id='11b101bb' visibility='default' filepath='include/linux/ipv6.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/ipv6.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/ipv6.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/ipv6.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/ipv6.h' line='90' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='blkg_policy_data' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/blk-cgroup.h' line='91' column='1' id='55eaf925'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='blkg' type-id='1146dea3' visibility='default' filepath='include/linux/blk-cgroup.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='plid' type-id='95e97e5e' visibility='default' filepath='include/linux/blk-cgroup.h' line='94' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b1e1f550' size-in-bits='64' id='55ebe352'/>
+      <class-decl name='drm_display_mode' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/drm/drm_modes.h' line='227' column='1' id='55efd1a3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='clock' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_modes.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='hdisplay' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='hsync_start' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hsync_end' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='htotal' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='hskew' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='vdisplay' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='vsync_start' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='vsync_end' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='vtotal' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='242' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='vscan' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/drm/drm_modes.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='crtc_clock' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_modes.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='crtc_hdisplay' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='crtc_hblank_start' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='crtc_hblank_end' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='304'>
+          <var-decl name='crtc_hsync_start' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='299' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='crtc_hsync_end' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='336'>
+          <var-decl name='crtc_htotal' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='crtc_hskew' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='368'>
+          <var-decl name='crtc_vdisplay' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='crtc_vblank_start' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='400'>
+          <var-decl name='crtc_vblank_end' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='crtc_vsync_start' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='432'>
+          <var-decl name='crtc_vsync_end' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='crtc_vtotal' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='464'>
+          <var-decl name='width_mm' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='height_mm' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_modes.h' line='324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='496'>
+          <var-decl name='type' type-id='f9b06939' visibility='default' filepath='include/drm/drm_modes.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='504'>
+          <var-decl name='expose_to_userspace' type-id='b50a4934' visibility='default' filepath='include/drm/drm_modes.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='head' type-id='72f469ec' visibility='default' filepath='include/drm/drm_modes.h' line='371' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/drm/drm_modes.h' line='378' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='status' type-id='4fb62cb0' visibility='default' filepath='include/drm/drm_modes.h' line='386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='picture_aspect_ratio' type-id='a30ccd44' visibility='default' filepath='include/drm/drm_modes.h' line='393' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='dma_filter_fn' type-id='aa8ac136' filepath='include/linux/dmaengine.h' line='538' column='1' id='55f53546'/>
+      <pointer-type-def type-id='1ee59844' size-in-bits='64' id='55f833ce'/>
+      <class-decl name='iova_fq_entry' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/iova.h' line='53' column='1' id='55f9b227'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='iova_pfn' type-id='7359adad' visibility='default' filepath='include/linux/iova.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pages' type-id='7359adad' visibility='default' filepath='include/linux/iova.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data' type-id='7359adad' visibility='default' filepath='include/linux/iova.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='counter' type-id='91ce1af9' visibility='default' filepath='include/linux/iova.h' line='57' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ip6_flowlabel' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/net/ipv6.h' line='313' column='1' id='55fcdb4f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='e90fa847' visibility='default' filepath='include/net/ipv6.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='label' type-id='78a133c2' visibility='default' filepath='include/net/ipv6.h' line='315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='users' type-id='49178f86' visibility='default' filepath='include/net/ipv6.h' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dst' type-id='f6ed712a' visibility='default' filepath='include/net/ipv6.h' line='317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='opt' type-id='d4145729' visibility='default' filepath='include/net/ipv6.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='linger' type-id='7359adad' visibility='default' filepath='include/net/ipv6.h' line='319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/ipv6.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='share' type-id='f9b06939' visibility='default' filepath='include/net/ipv6.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='owner' type-id='ac5ab6a3' visibility='default' filepath='include/net/ipv6.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='lastuse' type-id='7359adad' visibility='default' filepath='include/net/ipv6.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='expires' type-id='7359adad' visibility='default' filepath='include/net/ipv6.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='fl_net' type-id='a2bff676' visibility='default' filepath='include/net/ipv6.h' line='328' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6e051ed1' size-in-bits='64' id='56033689'/>
+      <pointer-type-def type-id='b201a5c2' size-in-bits='64' id='5606e640'/>
+      <qualified-type-def type-id='8347d13f' const='yes' id='56125f66'/>
+      <array-type-def dimensions='1' type-id='ea86de29' size-in-bits='64' id='561570b5'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <pointer-type-def type-id='1540019b' size-in-bits='64' id='561a36db'/>
+      <qualified-type-def type-id='7259b630' const='yes' id='561a74c1'/>
+      <pointer-type-def type-id='c443a9fc' size-in-bits='64' id='5626e636'/>
+      <pointer-type-def type-id='0a26da71' size-in-bits='64' id='5629bd41'/>
+      <enum-decl name='v4l2_subdev_ir_mode' filepath='include/media/v4l2-subdev.h' line='530' column='1' id='562dbe04'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='V4L2_SUBDEV_IR_MODE_PULSE_WIDTH' value='0'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='56310527'>
+        <parameter type-id='aa9ea333'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ring_buffer_iter' is-struct='yes' visibility='default' is-declaration-only='yes' id='563595d9'/>
+      <pointer-type-def type-id='8826ec36' size-in-bits='64' id='563fdf98'/>
+      <pointer-type-def type-id='e25b9229' size-in-bits='64' id='5645550d'/>
+      <pointer-type-def type-id='4425ad49' size-in-bits='64' id='5646df36'/>
+      <array-type-def dimensions='2' type-id='7359adad' size-in-bits='384' id='564ef35c'>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='5651631f'>
+        <parameter type-id='4b8b2cf3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='81a7f511' size-in-bits='64' id='56670be1'/>
+      <array-type-def dimensions='1' type-id='e0cc39f6' size-in-bits='infinite' id='566debc6'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='56710942'>
+        <parameter type-id='3dad1a48'/>
+        <return type-id='0f4f6276'/>
+      </function-type>
+      <function-type size-in-bits='64' id='56731789'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='69bf7bee'/>
+      </function-type>
+      <class-decl name='srcu_node' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/srcutree.h' line='48' column='1' id='56798c81'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/srcutree.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='srcu_have_cbs' type-id='f46d9f4d' visibility='default' filepath='include/linux/srcutree.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='srcu_data_have_cbs' type-id='f46d9f4d' visibility='default' filepath='include/linux/srcutree.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='srcu_gp_seq_needed_exp' type-id='7359adad' visibility='default' filepath='include/linux/srcutree.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='srcu_parent' type-id='8dee6d89' visibility='default' filepath='include/linux/srcutree.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='grplo' type-id='95e97e5e' visibility='default' filepath='include/linux/srcutree.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='grphi' type-id='95e97e5e' visibility='default' filepath='include/linux/srcutree.h' line='58' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='kunit_status' filepath='include/kunit/test.h' line='117' column='1' id='567f93e6'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='KUNIT_SUCCESS' value='0'/>
+        <enumerator name='KUNIT_FAILURE' value='1'/>
+        <enumerator name='KUNIT_SKIPPED' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='04379599' size-in-bits='64' id='5680a8c9'/>
+      <function-type size-in-bits='64' id='5681b685'>
+        <parameter type-id='90144368'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <pointer-type-def type-id='e976b4ca' size-in-bits='64' id='568f594c'/>
+      <pointer-type-def type-id='9bc672dd' size-in-bits='64' id='5694e921'/>
+      <function-type size-in-bits='64' id='56958353'>
+        <parameter type-id='141b6427'/>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='hdmi_ycc_quantization_range' filepath='include/linux/hdmi.h' line='146' column='1' id='569eefca'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HDMI_YCC_QUANTIZATION_RANGE_LIMITED' value='0'/>
+        <enumerator name='HDMI_YCC_QUANTIZATION_RANGE_FULL' value='1'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='56a7b834'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='a47d3467' size-in-bits='192' id='56ac7648'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='56b34f46'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='da9684d0' size-in-bits='64' id='56c9c562'/>
+      <function-type size-in-bits='64' id='56cb7858'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='0343ce83'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='8800ed53' size-in-bits='64' id='56ccc407'/>
+      <class-decl name='trace_option_dentry' size-in-bits='256' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='498' column='1' id='56d268db'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='opt' type-id='a0260edc' visibility='default' filepath='kernel/trace/trace.h' line='499' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='aef13606' visibility='default' filepath='kernel/trace/trace.h' line='500' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tr' type-id='898c1076' visibility='default' filepath='kernel/trace/trace.h' line='501' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='entry' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='502' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='ufs_ref_clk_freq' filepath='drivers/scsi/ufs/ufs.h' line='406' column='1' id='56d5992c'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='REF_CLK_FREQ_19_2_MHZ' value='0'/>
+        <enumerator name='REF_CLK_FREQ_26_MHZ' value='1'/>
+        <enumerator name='REF_CLK_FREQ_38_4_MHZ' value='2'/>
+        <enumerator name='REF_CLK_FREQ_52_MHZ' value='3'/>
+        <enumerator name='REF_CLK_FREQ_INVAL' value='-1'/>
+      </enum-decl>
+      <enum-decl name='dwc3_ep0_next' filepath='drivers/usb/dwc3/core.h' line='773' column='1' id='56e3bcb9'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DWC3_EP0_UNKNOWN' value='0'/>
+        <enumerator name='DWC3_EP0_COMPLETE' value='1'/>
+        <enumerator name='DWC3_EP0_NRDY_DATA' value='2'/>
+        <enumerator name='DWC3_EP0_NRDY_STATUS' value='3'/>
+      </enum-decl>
+      <class-decl name='xhci_segment' size-in-bits='448' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1546' column='1' id='56e9279b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='trbs' type-id='2e0bb6d4' visibility='default' filepath='drivers/usb/host/xhci.h' line='1547' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='next' type-id='9689f21b' visibility='default' filepath='drivers/usb/host/xhci.h' line='1549' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dma' type-id='cf29c9b3' visibility='default' filepath='drivers/usb/host/xhci.h' line='1550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bounce_dma' type-id='cf29c9b3' visibility='default' filepath='drivers/usb/host/xhci.h' line='1552' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='bounce_buf' type-id='eaa32e2f' visibility='default' filepath='drivers/usb/host/xhci.h' line='1553' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='bounce_offs' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='bounce_len' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/usb/host/xhci.h' line='1557' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_prop_enum_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/drm/drm_property.h' line='225' column='1' id='56eae4b3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_property.h' line='226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/drm/drm_property.h' line='227' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='43b269de' size-in-bits='64' id='56ec2114'/>
+      <class-decl name='i2c_msg' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/i2c.h' line='73' column='1' id='56ed3a25'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='d315442e' visibility='default' filepath='include/uapi/linux/i2c.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='flags' type-id='d315442e' visibility='default' filepath='include/uapi/linux/i2c.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='len' type-id='d315442e' visibility='default' filepath='include/uapi/linux/i2c.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='buf' type-id='474e5dcc' visibility='default' filepath='include/uapi/linux/i2c.h' line='86' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6435d2b6' size-in-bits='64' id='56eda57c'/>
+      <array-type-def dimensions='1' type-id='eaa32e2f' size-in-bits='4096' id='56f066f9'>
+        <subrange length='64' type-id='7ff19f0f' id='b10be967'/>
+      </array-type-def>
+      <typedef-decl name='ZSTD_DStream' type-id='79021c6b' filepath='include/linux/zstd.h' line='682' column='1' id='56f3ba90'/>
+      <pointer-type-def type-id='7d5dfb1c' size-in-bits='64' id='56f3c6ca'/>
+      <pointer-type-def type-id='f14efa5e' size-in-bits='64' id='56f81414'/>
+      <function-type size-in-bits='64' id='56fa322d'>
+        <parameter type-id='147b8c0a'/>
+        <parameter type-id='ef68bde2'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4baf5c00' size-in-bits='64' id='56fe8aea'/>
+      <class-decl name='cpufreq_stats' is-struct='yes' visibility='default' is-declaration-only='yes' id='570cf6cf'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/uuid.h' line='16' column='1' id='570f8a01' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='b' type-id='9396cabb' visibility='default' filepath='include/linux/uuid.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='57109d59'>
+        <parameter type-id='0b8718c0'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='d49652d3' size-in-bits='1664' id='57144ac1'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='f1f6cfe9' size-in-bits='64' id='57174d61'/>
+      <pointer-type-def type-id='4c42814c' size-in-bits='64' id='571aaf76'/>
+      <pointer-type-def type-id='944dbe72' size-in-bits='64' id='571ea5c0'/>
+      <pointer-type-def type-id='4c8d9cac' size-in-bits='64' id='572fbdca'/>
+      <pointer-type-def type-id='6fca7363' size-in-bits='64' id='57309e07'/>
+      <pointer-type-def type-id='0b57727f' size-in-bits='64' id='5732f87b'/>
+      <pointer-type-def type-id='b7e0fed2' size-in-bits='64' id='57376310'/>
+      <pointer-type-def type-id='72093c11' size-in-bits='64' id='573a5ee9'/>
+      <pointer-type-def type-id='1621811c' size-in-bits='64' id='574ff926'/>
+      <class-decl name='ttm_tt' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/drm/ttm/ttm_tt.h' line='64' column='1' id='57584f2d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pages' type-id='9f93c9da' visibility='default' filepath='include/drm/ttm/ttm_tt.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='page_flags' type-id='8f92235e' visibility='default' filepath='include/drm/ttm/ttm_tt.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='num_pages' type-id='8f92235e' visibility='default' filepath='include/drm/ttm/ttm_tt.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sg' type-id='4adb0e6a' visibility='default' filepath='include/drm/ttm/ttm_tt.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dma_address' type-id='e835b5d8' visibility='default' filepath='include/drm/ttm/ttm_tt.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='swap_storage' type-id='77e79a4b' visibility='default' filepath='include/drm/ttm/ttm_tt.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='caching' type-id='4aed510d' visibility='default' filepath='include/drm/ttm/ttm_tt.h' line='71' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='thread_info' size-in-bits='320' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/thread_info.h' line='24' column='1' id='575a2c7a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/thread_info.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ttbr0' type-id='91ce1af9' visibility='default' filepath='arch/arm64/include/asm/thread_info.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='' type-id='ac5ab659' visibility='default' filepath='arch/arm64/include/asm/thread_info.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='scs_base' type-id='eaa32e2f' visibility='default' filepath='arch/arm64/include/asm/thread_info.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='scs_sp' type-id='eaa32e2f' visibility='default' filepath='arch/arm64/include/asm/thread_info.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cacf0f56' size-in-bits='64' id='5760652c'/>
+      <pointer-type-def type-id='409d248a' size-in-bits='64' id='5760a7e0'/>
+      <pointer-type-def type-id='8d0295a2' size-in-bits='64' id='5760dcb0'/>
+      <pointer-type-def type-id='40822039' size-in-bits='64' id='5771c601'/>
+      <pointer-type-def type-id='bbbd8970' size-in-bits='64' id='577ede06'/>
+      <pointer-type-def type-id='c35d9e4e' size-in-bits='64' id='57830e10'/>
+      <function-type size-in-bits='64' id='5786af66'>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c64b743f' size-in-bits='64' id='578c706b'/>
+      <function-type size-in-bits='64' id='579042ad'>
+        <parameter type-id='f22e4524'/>
+        <parameter type-id='e90f4666'/>
+        <parameter type-id='7c11f655'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='ae855994' size-in-bits='64' id='57909d12'/>
+      <pointer-type-def type-id='f7d7131a' size-in-bits='64' id='57933490'/>
+      <pointer-type-def type-id='2457cbe5' size-in-bits='64' id='57938551'/>
+      <pointer-type-def type-id='302b8c85' size-in-bits='64' id='5797b7e1'/>
+      <pointer-type-def type-id='852a961e' size-in-bits='64' id='5799dc94'/>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='112' id='579c7c75'>
+        <subrange length='14' type-id='7ff19f0f' id='48882d96'/>
+      </array-type-def>
+      <pointer-type-def type-id='af155e93' size-in-bits='64' id='57a41d3b'/>
+      <class-decl name='plist_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/plist.h' line='79' column='1' id='57b0eed2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node_list' type-id='72f469ec' visibility='default' filepath='include/linux/plist.h' line='80' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fa35cea9' size-in-bits='64' id='57b94931'/>
+      <class-decl name='usb_pd_identity' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/usb/typec.h' line='103' column='1' id='57bfbe05'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id_header' type-id='19c2251e' visibility='default' filepath='include/linux/usb/typec.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='cert_stat' type-id='19c2251e' visibility='default' filepath='include/linux/usb/typec.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='product' type-id='19c2251e' visibility='default' filepath='include/linux/usb/typec.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='vdo' type-id='1c745afe' visibility='default' filepath='include/linux/usb/typec.h' line='107' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='92a295b4' size-in-bits='64' id='57c9915e'/>
+      <pointer-type-def type-id='f2dcb698' size-in-bits='64' id='57ca5882'/>
+      <function-type size-in-bits='64' id='57ca8159'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='9073a8fe'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='2b4e6dbe' size-in-bits='64' id='57d10d30'/>
+      <pointer-type-def type-id='7ac3f749' size-in-bits='64' id='57d188b1'/>
+      <class-decl name='ieee802154_addr' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/cfg802154.h' line='230' column='1' id='57d8dd3d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mode' type-id='f9b06939' visibility='default' filepath='include/net/cfg802154.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='pan_id' type-id='23119536' visibility='default' filepath='include/net/cfg802154.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab6a4' visibility='default' filepath='include/net/cfg802154.h' line='233' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='thermal_trip_type' filepath='include/uapi/linux/thermal.h' line='12' column='1' id='57e8e954'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='THERMAL_TRIP_ACTIVE' value='0'/>
+        <enumerator name='THERMAL_TRIP_PASSIVE' value='1'/>
+        <enumerator name='THERMAL_TRIP_HOT' value='2'/>
+        <enumerator name='THERMAL_TRIP_CRITICAL' value='3'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='950eab2d' size-in-bits='infinite' id='57ecfe8a'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='cb6487f8' size-in-bits='64' id='57f0383a'/>
+      <array-type-def dimensions='1' type-id='91ce1af9' size-in-bits='1728' id='581194db'>
+        <subrange length='27' type-id='7ff19f0f' id='fddb82f0'/>
+      </array-type-def>
+      <pointer-type-def type-id='220a7484' size-in-bits='64' id='5819e862'/>
+      <pointer-type-def type-id='3288a0f7' size-in-bits='64' id='581abdef'/>
+      <class-decl name='i3c_generic_ibi_slot' size-in-bits='704' is-struct='yes' visibility='default' filepath='drivers/i3c/master.c' line='2271' column='1' id='581d9826'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='drivers/i3c/master.c' line='2272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='base' type-id='81e9d700' visibility='default' filepath='drivers/i3c/master.c' line='2273' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='be37740b' size-in-bits='64' id='581e52eb'/>
+      <class-decl name='of_endpoint' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/of_graph.h' line='23' column='1' id='5821ac64'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='port' type-id='f0981eeb' visibility='default' filepath='include/linux/of_graph.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='id' type-id='f0981eeb' visibility='default' filepath='include/linux/of_graph.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='local_node' type-id='0afa6ea3' visibility='default' filepath='include/linux/of_graph.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='14059615' size-in-bits='64' id='58220cf1'/>
+      <function-type size-in-bits='64' id='5824bc76'>
+        <parameter type-id='02f11ed4'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='02f11ed4'/>
+      </function-type>
+      <pointer-type-def type-id='a4fae1a3' size-in-bits='64' id='58251917'/>
+      <class-decl name='usb_device_descriptor' size-in-bits='144' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='289' column='1' id='582de67c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bcdUSB' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bDeviceClass' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='bDeviceSubClass' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='bDeviceProtocol' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='bMaxPacketSize0' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='idVendor' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='idProduct' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='299' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='bcdDevice' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='iManufacturer' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='iProduct' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='iSerialNumber' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='bNumConfigurations' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='304' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='58313606'>
+        <parameter type-id='a6711537'/>
+        <return type-id='d0835005'/>
+      </function-type>
+      <pointer-type-def type-id='752b54cf' size-in-bits='64' id='5836a47f'/>
+      <function-type size-in-bits='64' id='58407416'>
+        <parameter type-id='00ee50b8'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' visibility='default' filepath='lib/zstd/zstd_internal.h' line='229' column='1' id='5844d955' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='customAlloc' type-id='e76c3bdd' visibility='default' filepath='lib/zstd/zstd_internal.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='customFree' type-id='d852bbfe' visibility='default' filepath='lib/zstd/zstd_internal.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='opaque' type-id='eaa32e2f' visibility='default' filepath='lib/zstd/zstd_internal.h' line='232' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_ctrl_hdr10_cll_info' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1986' column='1' id='584a61fa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='max_content_light_level' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1987' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='max_pic_average_light_level' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1988' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5931aad5' size-in-bits='64' id='58505a39'/>
+      <pointer-type-def type-id='075176f9' size-in-bits='64' id='5858ec15'/>
+      <pointer-type-def type-id='96ee24a5' size-in-bits='64' id='585e1de9'/>
+      <enum-decl name='flow_block_binder_type' filepath='include/net/flow_offload.h' line='429' column='1' id='585e2620'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='FLOW_BLOCK_BINDER_TYPE_UNSPEC' value='0'/>
+        <enumerator name='FLOW_BLOCK_BINDER_TYPE_CLSACT_INGRESS' value='1'/>
+        <enumerator name='FLOW_BLOCK_BINDER_TYPE_CLSACT_EGRESS' value='2'/>
+        <enumerator name='FLOW_BLOCK_BINDER_TYPE_RED_EARLY_DROP' value='3'/>
+        <enumerator name='FLOW_BLOCK_BINDER_TYPE_RED_MARK' value='4'/>
+      </enum-decl>
+      <pointer-type-def type-id='2623cf64' size-in-bits='64' id='585f57ca'/>
+      <class-decl name='sdhci_pltfm_data' size-in-bits='128' is-struct='yes' visibility='default' filepath='drivers/mmc/host/sdhci-pltfm.h' line='15' column='1' id='5864e8c1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='4ba2bd6c' visibility='default' filepath='drivers/mmc/host/sdhci-pltfm.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='quirks' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci-pltfm.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='quirks2' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci-pltfm.h' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='19c2251e' size-in-bits='288' id='5865aee8'>
+        <subrange length='9' type-id='7ff19f0f' id='12e4273c'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='19c2251e' size-in-bits='192' id='5867ed7f'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <pointer-type-def type-id='c55ce973' size-in-bits='64' id='586a9713'/>
+      <qualified-type-def type-id='c210d497' const='yes' id='586f31a7'/>
+      <function-type size-in-bits='64' id='58725ef3'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='996ed1e5' size-in-bits='64' id='587448dd'/>
+      <pointer-type-def type-id='522fb0bd' size-in-bits='64' id='587a9d8d'/>
+      <pointer-type-def type-id='61fea883' size-in-bits='64' id='587b4de3'/>
+      <class-decl name='fprop_local_percpu' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/flex_proportions.h' line='76' column='1' id='587caff2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='events' type-id='b92c8d0d' visibility='default' filepath='include/linux/flex_proportions.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='period' type-id='f0981eeb' visibility='default' filepath='include/linux/flex_proportions.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/flex_proportions.h' line='81' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3b22df33' size-in-bits='64' id='587d2ba7'/>
+      <typedef-decl name='pid_t' type-id='63eb2bf2' filepath='include/linux/types.h' line='22' column='1' id='587f89d2'/>
+      <pointer-type-def type-id='1199c98f' size-in-bits='64' id='5881f803'/>
+      <enum-decl name='timespec_type' filepath='include/linux/restart_block.h' line='16' column='1' id='58918b27'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='TT_NONE' value='0'/>
+        <enumerator name='TT_NATIVE' value='1'/>
+        <enumerator name='TT_COMPAT' value='2'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='5895f71c'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='4110d6d4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='968d5b5b' size-in-bits='9216' id='589abf66'>
+        <subrange length='96' type-id='7ff19f0f' id='1df62250'/>
+      </array-type-def>
+      <pointer-type-def type-id='82718bfb' size-in-bits='64' id='589bddbf'/>
+      <pointer-type-def type-id='5a7d7eb3' size-in-bits='64' id='58a5c6a3'/>
+      <pointer-type-def type-id='3bd753d3' size-in-bits='64' id='58b0d2ef'/>
+      <class-decl name='track' size-in-bits='1216' is-struct='yes' visibility='default' filepath='mm/slab.h' line='99' column='1' id='58b67424'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='7359adad' visibility='default' filepath='mm/slab.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='addrs' type-id='d2baa450' visibility='default' filepath='mm/slab.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='cpu' type-id='95e97e5e' visibility='default' filepath='mm/slab.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='pid' type-id='95e97e5e' visibility='default' filepath='mm/slab.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='when' type-id='7359adad' visibility='default' filepath='mm/slab.h' line='106' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='00c03790' size-in-bits='64' id='58b7113a'/>
+      <class-decl name='v4l2_file_operations' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/media/v4l2-dev.h' line='201' column='1' id='58b9b3eb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/media/v4l2-dev.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='read' type-id='4d8f5625' visibility='default' filepath='include/media/v4l2-dev.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='write' type-id='5f29549c' visibility='default' filepath='include/media/v4l2-dev.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='poll' type-id='4d01ede7' visibility='default' filepath='include/media/v4l2-dev.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='unlocked_ioctl' type-id='fc7daf55' visibility='default' filepath='include/media/v4l2-dev.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='compat_ioctl32' type-id='fc7daf55' visibility='default' filepath='include/media/v4l2-dev.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='get_unmapped_area' type-id='d44a8cec' visibility='default' filepath='include/media/v4l2-dev.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='mmap' type-id='8ea2626c' visibility='default' filepath='include/media/v4l2-dev.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='open' type-id='4da4101d' visibility='default' filepath='include/media/v4l2-dev.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='release' type-id='4da4101d' visibility='default' filepath='include/media/v4l2-dev.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/media/v4l2-dev.h' line='216' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='crypto_spawn' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/crypto/algapi.h' line='71' column='1' id='58ba85d8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/crypto/algapi.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='alg' type-id='67f526b5' visibility='default' filepath='include/crypto/algapi.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='' type-id='ac5ab5af' visibility='default' filepath='include/crypto/algapi.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='frontend' type-id='71dc7604' visibility='default' filepath='include/crypto/algapi.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mask' type-id='19c2251e' visibility='default' filepath='include/crypto/algapi.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='dead' type-id='b50a4934' visibility='default' filepath='include/crypto/algapi.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='360'>
+          <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/crypto/algapi.h' line='83' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='58c82a2b'>
+        <parameter type-id='fc4f83c1'/>
+        <parameter type-id='ab85b8f2'/>
+        <parameter type-id='3eb7c31c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='54718f09' size-in-bits='64' id='58c93391'/>
+      <pointer-type-def type-id='514d8c48' size-in-bits='64' id='58cfaa0e'/>
+      <pointer-type-def type-id='e1ee975e' size-in-bits='64' id='58d10a98'/>
+      <typedef-decl name='snd_pcm_hw_rule_func_t' type-id='657a5cf1' filepath='include/sound/pcm.h' line='228' column='1' id='58d3b2a5'/>
+      <pointer-type-def type-id='0965e7f8' size-in-bits='64' id='58d59612'/>
+      <function-type size-in-bits='64' id='58d69ec2'>
+        <parameter type-id='67f526b5'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='async_domain' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/async.h' line='18' column='1' id='58dbb714'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pending' type-id='72f469ec' visibility='default' filepath='include/linux/async.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='registered' type-id='f0981eeb' visibility='default' filepath='include/linux/async.h' line='20' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='92ee9b60' size-in-bits='64' id='58dc55d6'/>
+      <function-type size-in-bits='64' id='58e5bb8b'>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='25dc4075' size-in-bits='64' id='58ed56f5'/>
+      <class-decl name='irq_affinity_notify' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/interrupt.h' line='279' column='1' id='58f5058a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='irq' type-id='f0981eeb' visibility='default' filepath='include/linux/interrupt.h' line='280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='include/linux/interrupt.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/linux/interrupt.h' line='282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='notify' type-id='c1d52f61' visibility='default' filepath='include/linux/interrupt.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='release' type-id='16575f26' visibility='default' filepath='include/linux/interrupt.h' line='284' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c3b2916f' size-in-bits='64' id='58f84083'/>
+      <function-type size-in-bits='64' id='58fba0b6'>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='27675065'/>
+        <parameter type-id='2594b00f'/>
+        <parameter type-id='da363123'/>
+        <parameter type-id='7292109c'/>
+        <return type-id='27675065'/>
+      </function-type>
+      <function-type size-in-bits='64' id='5900d865'>
+        <parameter type-id='e9b5d134'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='590183f8'>
+        <parameter type-id='2ba25712'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='crypto_queue' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/crypto/algapi.h' line='86' column='1' id='590223f8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/crypto/algapi.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='backlog' type-id='e84b031a' visibility='default' filepath='include/crypto/algapi.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='qlen' type-id='f0981eeb' visibility='default' filepath='include/crypto/algapi.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='max_qlen' type-id='f0981eeb' visibility='default' filepath='include/crypto/algapi.h' line='91' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='59145b91'>
+        <parameter type-id='cfff5953'/>
+        <parameter type-id='03054cfa'/>
+        <return type-id='9b7c55ef'/>
+      </function-type>
+      <class-decl name='ndisc_options' size-in-bits='1408' is-struct='yes' visibility='default' filepath='include/net/ndisc.h' line='111' column='1' id='5919d6b5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nd_opt_array' type-id='1d16a23c' visibility='default' filepath='include/net/ndisc.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='nd_opts_ri' type-id='aa79f31a' visibility='default' filepath='include/net/ndisc.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='nd_opts_ri_end' type-id='aa79f31a' visibility='default' filepath='include/net/ndisc.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='nd_useropts' type-id='aa79f31a' visibility='default' filepath='include/net/ndisc.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='nd_useropts_end' type-id='aa79f31a' visibility='default' filepath='include/net/ndisc.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='nd_802154_opt_array' type-id='cc5780c7' visibility='default' filepath='include/net/ndisc.h' line='120' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='8a4504f5' size-in-bits='infinite' id='591a7f7d'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='5c155a71' size-in-bits='64' id='59229509'/>
+      <function-type size-in-bits='64' id='5931aad5'>
+        <parameter type-id='2ce52478'/>
+        <parameter type-id='aa79f31a'/>
+        <parameter type-id='1bf68965'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='mempool_s' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/mempool.h' line='16' column='1' id='5932767e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/mempool.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='min_nr' type-id='95e97e5e' visibility='default' filepath='include/linux/mempool.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='curr_nr' type-id='95e97e5e' visibility='default' filepath='include/linux/mempool.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='elements' type-id='63e171df' visibility='default' filepath='include/linux/mempool.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pool_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/mempool.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='alloc' type-id='8bf6d789' visibility='default' filepath='include/linux/mempool.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='free' type-id='a4c19f22' visibility='default' filepath='include/linux/mempool.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='wait' type-id='b5ab048f' visibility='default' filepath='include/linux/mempool.h' line='25' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='63ac9844' size-in-bits='64' id='59376d1e'/>
+      <function-type size-in-bits='64' id='593d8168'>
+        <parameter type-id='52704eb7'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='593ec809'>
+        <parameter type-id='343c3ae4' name='policy'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='media_interface' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/media/media-entity.h' line='336' column='1' id='5943f90f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='graph_obj' type-id='9fdb75a6' visibility='default' filepath='include/media/media-entity.h' line='337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='links' type-id='72f469ec' visibility='default' filepath='include/media/media-entity.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='type' type-id='19c2251e' visibility='default' filepath='include/media/media-entity.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/media/media-entity.h' line='340' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='util_est' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/sched.h' line='431' column='1' id='594488ba'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='enqueued' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='432' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ewma' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='433' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4cd738bd' size-in-bits='64' id='5948074d'/>
+      <typedef-decl name='regmap_hw_reg_update_bits' type-id='3a0b4ecf' filepath='include/linux/regmap.h' line='481' column='1' id='59483ee8'/>
+      <function-type size-in-bits='64' id='594ef19f'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='c2074578'/>
+        <parameter type-id='1dc6a898'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='drm_bridge_ops' filepath='include/drm/drm_bridge.h' line='693' column='1' id='595d7bc4'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DRM_BRIDGE_OP_DETECT' value='1'/>
+        <enumerator name='DRM_BRIDGE_OP_EDID' value='2'/>
+        <enumerator name='DRM_BRIDGE_OP_HPD' value='4'/>
+        <enumerator name='DRM_BRIDGE_OP_MODES' value='8'/>
+      </enum-decl>
+      <pointer-type-def type-id='e5a6600d' size-in-bits='64' id='595e6a79'/>
+      <qualified-type-def type-id='5c28f25e' const='yes' id='5960e0b1'/>
+      <class-decl name='nl_info' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/netlink.h' line='453' column='1' id='596b36ac'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nlh' type-id='c2074578' visibility='default' filepath='include/net/netlink.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nl_net' type-id='a2bff676' visibility='default' filepath='include/net/netlink.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='portid' type-id='19c2251e' visibility='default' filepath='include/net/netlink.h' line='456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='skip_notify' type-id='f9b06939' visibility='default' filepath='include/net/netlink.h' line='457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='161'>
+          <var-decl name='skip_notify_kernel' type-id='f9b06939' visibility='default' filepath='include/net/netlink.h' line='458' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='596e4a77'>
+        <parameter type-id='184ff936'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='3f78e6a9'/>
+        <parameter type-id='3f78e6a9'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='d88ac15d' size-in-bits='64' id='596e8e55'/>
+      <pointer-type-def type-id='a569b9de' size-in-bits='64' id='596fbb1c'/>
+      <pointer-type-def type-id='8a6b39f6' size-in-bits='64' id='597277ac'/>
+      <qualified-type-def type-id='3e689ce7' const='yes' id='597bfbe2'/>
+      <function-type size-in-bits='64' id='5985c13a'>
+        <parameter type-id='2730d015'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='4bdc1a8c' size-in-bits='64' id='598755ca'/>
+      <pointer-type-def type-id='89ae06e3' size-in-bits='64' id='5992ae83'/>
+      <class-decl name='rq_qos_ops' size-in-bits='704' is-struct='yes' visibility='default' filepath='block/blk-rq-qos.h' line='38' column='1' id='59969f99'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='throttle' type-id='7eeb4265' visibility='default' filepath='block/blk-rq-qos.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='track' type-id='923f12f8' visibility='default' filepath='block/blk-rq-qos.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='merge' type-id='923f12f8' visibility='default' filepath='block/blk-rq-qos.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='issue' type-id='4b080d34' visibility='default' filepath='block/blk-rq-qos.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='requeue' type-id='4b080d34' visibility='default' filepath='block/blk-rq-qos.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='done' type-id='4b080d34' visibility='default' filepath='block/blk-rq-qos.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='done_bio' type-id='7eeb4265' visibility='default' filepath='block/blk-rq-qos.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='cleanup' type-id='7eeb4265' visibility='default' filepath='block/blk-rq-qos.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='queue_depth_changed' type-id='754d9fe1' visibility='default' filepath='block/blk-rq-qos.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='exit' type-id='754d9fe1' visibility='default' filepath='block/blk-rq-qos.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='debugfs_attrs' type-id='e649198d' visibility='default' filepath='block/blk-rq-qos.h' line='49' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='sock_common' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/net/sock.h' line='165' column='1' id='5999c5f7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab678' visibility='default' filepath='include/net/sock.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab679' visibility='default' filepath='include/net/sock.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='' type-id='ac5ab67a' visibility='default' filepath='include/net/sock.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='skc_family' type-id='8efea9e5' visibility='default' filepath='include/net/sock.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='skc_state' type-id='75a392dc' visibility='default' filepath='include/net/sock.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='skc_reuse' type-id='002ac4a6' visibility='default' filepath='include/net/sock.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='156'>
+          <var-decl name='skc_reuseport' type-id='002ac4a6' visibility='default' filepath='include/net/sock.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='157'>
+          <var-decl name='skc_ipv6only' type-id='002ac4a6' visibility='default' filepath='include/net/sock.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='158'>
+          <var-decl name='skc_net_refcnt' type-id='002ac4a6' visibility='default' filepath='include/net/sock.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='skc_bound_dev_if' type-id='95e97e5e' visibility='default' filepath='include/net/sock.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='' type-id='ac5ab67b' visibility='default' filepath='include/net/sock.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='skc_prot' type-id='d2524501' visibility='default' filepath='include/net/sock.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='skc_net' type-id='c9df1e6c' visibility='default' filepath='include/net/sock.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='skc_v6_daddr' type-id='f6ed712a' visibility='default' filepath='include/net/sock.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='skc_v6_rcv_saddr' type-id='f6ed712a' visibility='default' filepath='include/net/sock.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='skc_cookie' type-id='28ee064c' visibility='default' filepath='include/net/sock.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='' type-id='ac5ab67c' visibility='default' filepath='include/net/sock.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='skc_dontcopy_begin' type-id='1fdc7fa6' visibility='default' filepath='include/net/sock.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='' type-id='ac5ab67d' visibility='default' filepath='include/net/sock.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='skc_tx_queue_mapping' type-id='8efea9e5' visibility='default' filepath='include/net/sock.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='976'>
+          <var-decl name='skc_rx_queue_mapping' type-id='8efea9e5' visibility='default' filepath='include/net/sock.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='' type-id='ac5ab67e' visibility='default' filepath='include/net/sock.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='skc_refcnt' type-id='64615833' visibility='default' filepath='include/net/sock.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='skc_dontcopy_end' type-id='1fdc7fa6' visibility='default' filepath='include/net/sock.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='' type-id='ac5ab67f' visibility='default' filepath='include/net/sock.h' line='241' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='599afbc8'>
+        <parameter type-id='37175e4d'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='ae8bfcdd' const='yes' id='599ce02a'/>
+      <class-decl name='printk_info' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='15' column='1' id='599f2dd2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='seq' type-id='91ce1af9' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ts_nsec' type-id='91ce1af9' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='text_len' type-id='1dc6a898' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='facility' type-id='f9b06939' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='157'>
+          <var-decl name='level' type-id='f9b06939' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='caller_id' type-id='19c2251e' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dev_info' type-id='9a61119e' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='24' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='neigh_statistics' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/net/neighbour.h' line='115' column='1' id='59a2e4aa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='allocs' type-id='7359adad' visibility='default' filepath='include/net/neighbour.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='destroys' type-id='7359adad' visibility='default' filepath='include/net/neighbour.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hash_grows' type-id='7359adad' visibility='default' filepath='include/net/neighbour.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='res_failed' type-id='7359adad' visibility='default' filepath='include/net/neighbour.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='lookups' type-id='7359adad' visibility='default' filepath='include/net/neighbour.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='hits' type-id='7359adad' visibility='default' filepath='include/net/neighbour.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='rcv_probes_mcast' type-id='7359adad' visibility='default' filepath='include/net/neighbour.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='rcv_probes_ucast' type-id='7359adad' visibility='default' filepath='include/net/neighbour.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='periodic_gc_runs' type-id='7359adad' visibility='default' filepath='include/net/neighbour.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='forced_gc_runs' type-id='7359adad' visibility='default' filepath='include/net/neighbour.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='unres_discards' type-id='7359adad' visibility='default' filepath='include/net/neighbour.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='table_fulls' type-id='7359adad' visibility='default' filepath='include/net/neighbour.h' line='132' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='5864e8c1' const='yes' id='59a625dc'/>
+      <pointer-type-def type-id='d8484ecd' size-in-bits='64' id='59a76ce1'/>
+      <class-decl name='v4l2_enc_idx_entry' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2033' column='1' id='59b5b331'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='offset' type-id='d3130597' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2034' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pts' type-id='d3130597' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2035' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='length' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2036' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2037' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='reserved' type-id='839e8989' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2038' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bd15af15' size-in-bits='64' id='59b60261'/>
+      <function-type size-in-bits='64' id='59bb6212'>
+        <parameter type-id='3dad1a48'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f59a8358' size-in-bits='64' id='59bb916e'/>
+      <function-type size-in-bits='64' id='59bcd074'>
+        <parameter type-id='67aca04f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='bd561d05' size-in-bits='192' id='59bd9302'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <pointer-type-def type-id='4093cbd8' size-in-bits='64' id='59c68f9e'/>
+      <pointer-type-def type-id='9c08a09a' size-in-bits='64' id='59cc1ae8'/>
+      <pointer-type-def type-id='b5691f14' size-in-bits='64' id='59d4153e'/>
+      <pointer-type-def type-id='705909a1' size-in-bits='64' id='59d9c4a9'/>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='512' id='59daf3ef'>
+        <subrange length='64' type-id='7ff19f0f' id='b10be967'/>
+      </array-type-def>
+      <pointer-type-def type-id='c09c709e' size-in-bits='64' id='59db10c8'/>
+      <qualified-type-def type-id='17992e3b' const='yes' id='59db43b4'/>
+      <class-decl name='sched_info' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/sched.h' line='362' column='1' id='59ddd03d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pcount' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='367' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='run_delay' type-id='0d77e947' visibility='default' filepath='include/linux/sched.h' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='last_arrival' type-id='0d77e947' visibility='default' filepath='include/linux/sched.h' line='375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='last_queued' type-id='0d77e947' visibility='default' filepath='include/linux/sched.h' line='378' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='480' id='59e5814b'>
+        <subrange length='60' type-id='7ff19f0f' id='b114e3c3'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='59e6969a'>
+        <parameter type-id='f41a0030'/>
+        <parameter type-id='bc40b4a3'/>
+        <parameter type-id='5799dc94'/>
+        <parameter type-id='1f37a7f4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='nl802154_cca_modes' filepath='include/net/nl802154.h' line='235' column='1' id='59ec32df'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='__NL802154_CCA_INVALID' value='0'/>
+        <enumerator name='NL802154_CCA_ENERGY' value='1'/>
+        <enumerator name='NL802154_CCA_CARRIER' value='2'/>
+        <enumerator name='NL802154_CCA_ENERGY_CARRIER' value='3'/>
+        <enumerator name='NL802154_CCA_ALOHA' value='4'/>
+        <enumerator name='NL802154_CCA_UWB_SHR' value='5'/>
+        <enumerator name='NL802154_CCA_UWB_MULTIPLEXED' value='6'/>
+        <enumerator name='__NL802154_CCA_ATTR_AFTER_LAST' value='7'/>
+        <enumerator name='NL802154_CCA_ATTR_MAX' value='6'/>
+      </enum-decl>
+      <pointer-type-def type-id='20332031' size-in-bits='64' id='59ec9c15'/>
+      <class-decl name='v4l2_subdev' size-in-bits='2560' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='908' column='1' id='59eccc2f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='entity' type-id='889856f7' visibility='default' filepath='include/media/v4l2-subdev.h' line='910' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-subdev.h' line='912' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/media/v4l2-subdev.h' line='913' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='owner_v4l2_dev' type-id='b50a4934' visibility='default' filepath='include/media/v4l2-subdev.h' line='914' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-subdev.h' line='915' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='v4l2_dev' type-id='ddfb71fa' visibility='default' filepath='include/media/v4l2-subdev.h' line='916' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='ops' type-id='040770fb' visibility='default' filepath='include/media/v4l2-subdev.h' line='917' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='internal_ops' type-id='2553c323' visibility='default' filepath='include/media/v4l2-subdev.h' line='918' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='ctrl_handler' type-id='2b59fa5e' visibility='default' filepath='include/media/v4l2-subdev.h' line='919' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/media/v4l2-subdev.h' line='920' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='grp_id' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-subdev.h' line='921' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='dev_priv' type-id='eaa32e2f' visibility='default' filepath='include/media/v4l2-subdev.h' line='922' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='host_priv' type-id='eaa32e2f' visibility='default' filepath='include/media/v4l2-subdev.h' line='923' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='devnode' type-id='798c29b7' visibility='default' filepath='include/media/v4l2-subdev.h' line='924' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/media/v4l2-subdev.h' line='925' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='fwnode' type-id='4a935625' visibility='default' filepath='include/media/v4l2-subdev.h' line='926' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='async_list' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-subdev.h' line='927' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='asd' type-id='707be29c' visibility='default' filepath='include/media/v4l2-subdev.h' line='928' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='notifier' type-id='e1a56841' visibility='default' filepath='include/media/v4l2-subdev.h' line='929' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='subdev_notifier' type-id='e1a56841' visibility='default' filepath='include/media/v4l2-subdev.h' line='930' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='pdata' type-id='616ec7d2' visibility='default' filepath='include/media/v4l2-subdev.h' line='931' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='z_stream' type-id='d19a2f20' filepath='include/linux/zlib.h' line='101' column='1' id='59efae17'/>
+      <pointer-type-def type-id='7a7ea727' size-in-bits='64' id='59f1923f'/>
+      <enum-decl name='drm_panel_orientation' filepath='include/drm/drm_connector.h' line='298' column='1' id='59f3d325'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DRM_MODE_PANEL_ORIENTATION_UNKNOWN' value='-1'/>
+        <enumerator name='DRM_MODE_PANEL_ORIENTATION_NORMAL' value='0'/>
+        <enumerator name='DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP' value='1'/>
+        <enumerator name='DRM_MODE_PANEL_ORIENTATION_LEFT_UP' value='2'/>
+        <enumerator name='DRM_MODE_PANEL_ORIENTATION_RIGHT_UP' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='2b2b01a4' size-in-bits='64' id='59f5b0ce'/>
+      <pointer-type-def type-id='46adf4c0' size-in-bits='64' id='59f6a07a'/>
+      <function-type size-in-bits='64' id='59f7b4bb'>
+        <parameter type-id='3aaeef89'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='gpio_chip' size-in-bits='4992' is-struct='yes' visibility='default' filepath='include/linux/gpio/driver.h' line='374' column='1' id='59f9f35d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='label' type-id='80f4b756' visibility='default' filepath='include/linux/gpio/driver.h' line='375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='gpiodev' type-id='fb7dc22d' visibility='default' filepath='include/linux/gpio/driver.h' line='376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='parent' type-id='fa0b179b' visibility='default' filepath='include/linux/gpio/driver.h' line='377' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/gpio/driver.h' line='378' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='request' type-id='9f2634eb' visibility='default' filepath='include/linux/gpio/driver.h' line='380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='free' type-id='d2a48436' visibility='default' filepath='include/linux/gpio/driver.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='get_direction' type-id='9f2634eb' visibility='default' filepath='include/linux/gpio/driver.h' line='384' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='direction_input' type-id='9f2634eb' visibility='default' filepath='include/linux/gpio/driver.h' line='386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='direction_output' type-id='9d5147b2' visibility='default' filepath='include/linux/gpio/driver.h' line='388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='get' type-id='9f2634eb' visibility='default' filepath='include/linux/gpio/driver.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='get_multiple' type-id='ea666691' visibility='default' filepath='include/linux/gpio/driver.h' line='392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='set' type-id='7c70f4dd' visibility='default' filepath='include/linux/gpio/driver.h' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='set_multiple' type-id='f471a8cc' visibility='default' filepath='include/linux/gpio/driver.h' line='397' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='set_config' type-id='49728c6d' visibility='default' filepath='include/linux/gpio/driver.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='to_irq' type-id='9f2634eb' visibility='default' filepath='include/linux/gpio/driver.h' line='403' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='dbg_show' type-id='2c6d11fe' visibility='default' filepath='include/linux/gpio/driver.h' line='406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='init_valid_mask' type-id='0084e9cb' visibility='default' filepath='include/linux/gpio/driver.h' line='409' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='add_pin_ranges' type-id='26bfaed1' visibility='default' filepath='include/linux/gpio/driver.h' line='413' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='base' type-id='95e97e5e' visibility='default' filepath='include/linux/gpio/driver.h' line='415' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='ngpio' type-id='1dc6a898' visibility='default' filepath='include/linux/gpio/driver.h' line='416' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1200'>
+          <var-decl name='offset' type-id='1dc6a898' visibility='default' filepath='include/linux/gpio/driver.h' line='417' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='names' type-id='13956559' visibility='default' filepath='include/linux/gpio/driver.h' line='418' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='can_sleep' type-id='b50a4934' visibility='default' filepath='include/linux/gpio/driver.h' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='read_reg' type-id='98073610' visibility='default' filepath='include/linux/gpio/driver.h' line='422' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='write_reg' type-id='f28be472' visibility='default' filepath='include/linux/gpio/driver.h' line='423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='be_bits' type-id='b50a4934' visibility='default' filepath='include/linux/gpio/driver.h' line='424' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='reg_dat' type-id='eaa32e2f' visibility='default' filepath='include/linux/gpio/driver.h' line='425' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='reg_set' type-id='eaa32e2f' visibility='default' filepath='include/linux/gpio/driver.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='reg_clr' type-id='eaa32e2f' visibility='default' filepath='include/linux/gpio/driver.h' line='427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='reg_dir_out' type-id='eaa32e2f' visibility='default' filepath='include/linux/gpio/driver.h' line='428' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='reg_dir_in' type-id='eaa32e2f' visibility='default' filepath='include/linux/gpio/driver.h' line='429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='bgpio_dir_unreadable' type-id='b50a4934' visibility='default' filepath='include/linux/gpio/driver.h' line='430' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1888'>
+          <var-decl name='bgpio_bits' type-id='95e97e5e' visibility='default' filepath='include/linux/gpio/driver.h' line='431' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='bgpio_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/gpio/driver.h' line='432' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='bgpio_data' type-id='7359adad' visibility='default' filepath='include/linux/gpio/driver.h' line='433' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='bgpio_dir' type-id='7359adad' visibility='default' filepath='include/linux/gpio/driver.h' line='434' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='irq' type-id='31045126' visibility='default' filepath='include/linux/gpio/driver.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4608'>
+          <var-decl name='valid_mask' type-id='1d2c2b85' visibility='default' filepath='include/linux/gpio/driver.h' line='458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4672'>
+          <var-decl name='of_node' type-id='9a537bbe' visibility='default' filepath='include/linux/gpio/driver.h' line='471' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='of_gpio_n_cells' type-id='f0981eeb' visibility='default' filepath='include/linux/gpio/driver.h' line='478' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='of_xlate' type-id='fdd04afe' visibility='default' filepath='include/linux/gpio/driver.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4864'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/gpio/driver.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4928'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/gpio/driver.h' line='491' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='b444361f' const='yes' id='59fa7bb0'/>
+      <function-type size-in-bits='64' id='5a03b5e4'>
+        <parameter type-id='abd62a96'/>
+        <parameter type-id='ce092740'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='5a067f4b'>
+        <parameter type-id='b9608bfc'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='69bf7bee'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <class-decl name='cleancache_filekey' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/cleancache.h' line='22' column='1' id='5a0af12e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='u' type-id='ac5ab694' visibility='default' filepath='include/linux/cleancache.h' line='27' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bf8af843' size-in-bits='64' id='5a0e9b53'/>
+      <class-decl name='mmc_cid' size-in-bits='224' is-struct='yes' visibility='default' filepath='include/linux/mmc/card.h' line='14' column='1' id='5a0fc813'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='manfid' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='prod_name' type-id='8e100159' visibility='default' filepath='include/linux/mmc/card.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='prv' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/card.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='serial' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='oemid' type-id='8efea9e5' visibility='default' filepath='include/linux/mmc/card.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='year' type-id='8efea9e5' visibility='default' filepath='include/linux/mmc/card.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hwrev' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/card.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='fwrev' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/card.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='month' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/card.h' line='23' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='46816f8f' size-in-bits='64' id='5a1281ab'/>
+      <pointer-type-def type-id='e9cf70a8' size-in-bits='64' id='5a19a9fe'/>
+      <pointer-type-def type-id='90e5636b' size-in-bits='64' id='5a1b3f53'/>
+      <typedef-decl name='blkcg_pol_init_pd_fn' type-id='c8ffa4a2' filepath='include/linux/blk-cgroup.h' line='151' column='1' id='5a1da206'/>
+      <pointer-type-def type-id='d41547a7' size-in-bits='64' id='5a1dbcb3'/>
+      <pointer-type-def type-id='f0feedf7' size-in-bits='64' id='5a1f42f3'/>
+      <pointer-type-def type-id='fe3f6888' size-in-bits='64' id='5a286c92'/>
+      <enum-decl name='macsec_offload' filepath='include/uapi/linux/if_link.h' line='686' column='1' id='5a305656'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='MACSEC_OFFLOAD_OFF' value='0'/>
+        <enumerator name='MACSEC_OFFLOAD_PHY' value='1'/>
+        <enumerator name='MACSEC_OFFLOAD_MAC' value='2'/>
+        <enumerator name='__MACSEC_OFFLOAD_END' value='3'/>
+        <enumerator name='MACSEC_OFFLOAD_MAX' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='464bcd6b' size-in-bits='64' id='5a32bd4b'/>
+      <class-decl name='nls_table' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/nls.h' line='25' column='1' id='5a3379ab'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='charset' type-id='80f4b756' visibility='default' filepath='include/linux/nls.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='alias' type-id='80f4b756' visibility='default' filepath='include/linux/nls.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='uni2char' type-id='66ebcd54' visibility='default' filepath='include/linux/nls.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='char2uni' type-id='5201f65c' visibility='default' filepath='include/linux/nls.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='charset2lower' type-id='354f7eb9' visibility='default' filepath='include/linux/nls.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='charset2upper' type-id='354f7eb9' visibility='default' filepath='include/linux/nls.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/nls.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='next' type-id='b084f8bb' visibility='default' filepath='include/linux/nls.h' line='34' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tcpci' size-in-bits='1856' is-struct='yes' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.c' line='36' column='1' id='5a3ac168'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.c' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='port' type-id='426e425b' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.c' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='regmap' type-id='29af9a71' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.c' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='controls_vbus' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.c' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='tcpc' type-id='3a8363f1' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.c' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='data' type-id='b6733265' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.c' line='46' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cd2b672f' size-in-bits='64' id='5a3c102b'/>
+      <class-decl name='list_lru_memcg' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/list_lru.h' line='34' column='1' id='5a3e162b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/list_lru.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lru' type-id='b969bd7a' visibility='default' filepath='include/linux/list_lru.h' line='37' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9311ab68' size-in-bits='64' id='5a41d7ba'/>
+      <class-decl name='serial_iso7816' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/serial.h' line='140' column='1' id='5a449113'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/serial.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='tg' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/serial.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sc_fi' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/serial.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='sc_di' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/serial.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='clk' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/serial.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='reserved' type-id='83a5454e' visibility='default' filepath='include/uapi/linux/serial.h' line='149' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='spi_delay' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/spi/spi.h' line='102' column='1' id='5a467bb1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='value' type-id='1dc6a898' visibility='default' filepath='include/linux/spi/spi.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='unit' type-id='f9b06939' visibility='default' filepath='include/linux/spi/spi.h' line='107' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cf8ff924' size-in-bits='64' id='5a472742'/>
+      <function-type size-in-bits='64' id='5a602650'>
+        <parameter type-id='10216dc5'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='4e523966'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='68bc5e16' size-in-bits='64' id='5a60e638'/>
+      <function-type size-in-bits='64' id='5a62d00a'>
+        <parameter type-id='108dbc98'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='v4l2_frmsize_stepwise' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='820' column='1' id='5a62dd2b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='min_width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='821' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='max_width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='822' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='step_width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='823' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='min_height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='824' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='max_height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='825' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='step_height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='826' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5a678b43'>
+        <parameter type-id='a6711537'/>
+        <parameter type-id='d0835005'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='62b4b863' const='yes' id='5a685f5f'/>
+      <function-type size-in-bits='64' id='5a69ad33'>
+        <parameter type-id='4616a179'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='5a6bcaa3'>
+        <parameter type-id='4a935625'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/pgtable-types.h' line='43' column='1' id='5a777ec6' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pgprot' type-id='e044eb0d' visibility='default' filepath='arch/arm64/include/asm/pgtable-types.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fe091efd' size-in-bits='64' id='5a798ea9'/>
+      <pointer-type-def type-id='02233ed7' size-in-bits='64' id='5a7c2847'/>
+      <class-decl name='gpio_descs' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/gpio/consumer.h' line='22' column='1' id='5a7d7eb3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='info' type-id='ae0aa6a2' visibility='default' filepath='include/linux/gpio/consumer.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ndescs' type-id='f0981eeb' visibility='default' filepath='include/linux/gpio/consumer.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='desc' type-id='6b6e2194' visibility='default' filepath='include/linux/gpio/consumer.h' line='25' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='sg_io_hdr' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/scsi/sg.h' line='44' column='1' id='5a7d7f6d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='interface_id' type-id='95e97e5e' visibility='default' filepath='include/scsi/sg.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='dxfer_direction' type-id='95e97e5e' visibility='default' filepath='include/scsi/sg.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cmd_len' type-id='002ac4a6' visibility='default' filepath='include/scsi/sg.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='mx_sb_len' type-id='002ac4a6' visibility='default' filepath='include/scsi/sg.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='iovec_count' type-id='8efea9e5' visibility='default' filepath='include/scsi/sg.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='dxfer_len' type-id='f0981eeb' visibility='default' filepath='include/scsi/sg.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dxferp' type-id='eaa32e2f' visibility='default' filepath='include/scsi/sg.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cmdp' type-id='cf536864' visibility='default' filepath='include/scsi/sg.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='sbp' type-id='eaa32e2f' visibility='default' filepath='include/scsi/sg.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='timeout' type-id='f0981eeb' visibility='default' filepath='include/scsi/sg.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/scsi/sg.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='pack_id' type-id='95e97e5e' visibility='default' filepath='include/scsi/sg.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='usr_ptr' type-id='eaa32e2f' visibility='default' filepath='include/scsi/sg.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='status' type-id='002ac4a6' visibility='default' filepath='include/scsi/sg.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='520'>
+          <var-decl name='masked_status' type-id='002ac4a6' visibility='default' filepath='include/scsi/sg.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='528'>
+          <var-decl name='msg_status' type-id='002ac4a6' visibility='default' filepath='include/scsi/sg.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='536'>
+          <var-decl name='sb_len_wr' type-id='002ac4a6' visibility='default' filepath='include/scsi/sg.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='host_status' type-id='8efea9e5' visibility='default' filepath='include/scsi/sg.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='560'>
+          <var-decl name='driver_status' type-id='8efea9e5' visibility='default' filepath='include/scsi/sg.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='resid' type-id='95e97e5e' visibility='default' filepath='include/scsi/sg.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='duration' type-id='f0981eeb' visibility='default' filepath='include/scsi/sg.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='info' type-id='f0981eeb' visibility='default' filepath='include/scsi/sg.h' line='68' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3793087b' size-in-bits='64' id='5a7e97ef'/>
+      <class-decl name='timecounter' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/timecounter.h' line='55' column='1' id='5a81cef0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cc' type-id='51a502f8' visibility='default' filepath='include/linux/timecounter.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cycle_last' type-id='91ce1af9' visibility='default' filepath='include/linux/timecounter.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='nsec' type-id='91ce1af9' visibility='default' filepath='include/linux/timecounter.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mask' type-id='91ce1af9' visibility='default' filepath='include/linux/timecounter.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='frac' type-id='91ce1af9' visibility='default' filepath='include/linux/timecounter.h' line='60' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5a826ce7'>
+        <parameter type-id='d010d741'/>
+        <parameter type-id='4616a179'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='nl80211_dfs_regions' filepath='include/uapi/linux/nl80211.h' line='4465' column='1' id='5a85c988'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NL80211_DFS_UNSET' value='0'/>
+        <enumerator name='NL80211_DFS_FCC' value='1'/>
+        <enumerator name='NL80211_DFS_ETSI' value='2'/>
+        <enumerator name='NL80211_DFS_JP' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='90220a52' size-in-bits='64' id='5a92c1cc'/>
+      <pointer-type-def type-id='89e92d83' size-in-bits='64' id='5a92dd37'/>
+      <class-decl name='net_device' size-in-bits='20480' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='2000' column='1' id='5a9929eb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='ac1fa8c0' visibility='default' filepath='include/linux/netdevice.h' line='2001' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name_node' type-id='e02e2a9e' visibility='default' filepath='include/linux/netdevice.h' line='2002' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ifalias' type-id='d81cf24c' visibility='default' filepath='include/linux/netdevice.h' line='2003' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mem_end' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='2008' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mem_start' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='2009' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='base_addr' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='2010' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='state' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='2018' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='dev_list' type-id='72f469ec' visibility='default' filepath='include/linux/netdevice.h' line='2020' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='napi_list' type-id='72f469ec' visibility='default' filepath='include/linux/netdevice.h' line='2021' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='unreg_list' type-id='72f469ec' visibility='default' filepath='include/linux/netdevice.h' line='2022' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='close_list' type-id='72f469ec' visibility='default' filepath='include/linux/netdevice.h' line='2023' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='ptype_all' type-id='72f469ec' visibility='default' filepath='include/linux/netdevice.h' line='2024' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='ptype_specific' type-id='72f469ec' visibility='default' filepath='include/linux/netdevice.h' line='2025' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='adj_list' type-id='e7f43fff' visibility='default' filepath='include/linux/netdevice.h' line='2030' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='2033' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='priv_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='2034' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='netdev_ops' type-id='a84ec761' visibility='default' filepath='include/linux/netdevice.h' line='2035' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='ifindex' type-id='95e97e5e' visibility='default' filepath='include/linux/netdevice.h' line='2036' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1696'>
+          <var-decl name='gflags' type-id='8efea9e5' visibility='default' filepath='include/linux/netdevice.h' line='2037' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1712'>
+          <var-decl name='hard_header_len' type-id='8efea9e5' visibility='default' filepath='include/linux/netdevice.h' line='2038' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='mtu' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='2045' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1760'>
+          <var-decl name='needed_headroom' type-id='8efea9e5' visibility='default' filepath='include/linux/netdevice.h' line='2046' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1776'>
+          <var-decl name='needed_tailroom' type-id='8efea9e5' visibility='default' filepath='include/linux/netdevice.h' line='2047' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='features' type-id='f9f4b16f' visibility='default' filepath='include/linux/netdevice.h' line='2049' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='hw_features' type-id='f9f4b16f' visibility='default' filepath='include/linux/netdevice.h' line='2050' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='wanted_features' type-id='f9f4b16f' visibility='default' filepath='include/linux/netdevice.h' line='2051' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='vlan_features' type-id='f9f4b16f' visibility='default' filepath='include/linux/netdevice.h' line='2052' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='hw_enc_features' type-id='f9f4b16f' visibility='default' filepath='include/linux/netdevice.h' line='2053' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='mpls_features' type-id='f9f4b16f' visibility='default' filepath='include/linux/netdevice.h' line='2054' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='gso_partial_features' type-id='f9f4b16f' visibility='default' filepath='include/linux/netdevice.h' line='2055' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='min_mtu' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='2057' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2272'>
+          <var-decl name='max_mtu' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='2058' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='type' type-id='8efea9e5' visibility='default' filepath='include/linux/netdevice.h' line='2059' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2320'>
+          <var-decl name='min_header_len' type-id='002ac4a6' visibility='default' filepath='include/linux/netdevice.h' line='2060' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2328'>
+          <var-decl name='name_assign_type' type-id='002ac4a6' visibility='default' filepath='include/linux/netdevice.h' line='2061' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2336'>
+          <var-decl name='group' type-id='95e97e5e' visibility='default' filepath='include/linux/netdevice.h' line='2063' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='stats' type-id='a3566137' visibility='default' filepath='include/linux/netdevice.h' line='2065' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='rx_dropped' type-id='f22a8abb' visibility='default' filepath='include/linux/netdevice.h' line='2067' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3904'>
+          <var-decl name='tx_dropped' type-id='f22a8abb' visibility='default' filepath='include/linux/netdevice.h' line='2068' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='rx_nohandler' type-id='f22a8abb' visibility='default' filepath='include/linux/netdevice.h' line='2069' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='carrier_up_count' type-id='49178f86' visibility='default' filepath='include/linux/netdevice.h' line='2072' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4064'>
+          <var-decl name='carrier_down_count' type-id='49178f86' visibility='default' filepath='include/linux/netdevice.h' line='2073' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='wireless_handlers' type-id='3e2bb973' visibility='default' filepath='include/linux/netdevice.h' line='2076' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='wireless_data' type-id='e40f7bda' visibility='default' filepath='include/linux/netdevice.h' line='2077' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='ethtool_ops' type-id='bdf901f8' visibility='default' filepath='include/linux/netdevice.h' line='2079' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='ndisc_ops' type-id='a2e418a6' visibility='default' filepath='include/linux/netdevice.h' line='2084' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='header_ops' type-id='2d747e78' visibility='default' filepath='include/linux/netdevice.h' line='2095' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='operstate' type-id='002ac4a6' visibility='default' filepath='include/linux/netdevice.h' line='2097' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4424'>
+          <var-decl name='link_mode' type-id='002ac4a6' visibility='default' filepath='include/linux/netdevice.h' line='2098' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4432'>
+          <var-decl name='if_port' type-id='002ac4a6' visibility='default' filepath='include/linux/netdevice.h' line='2100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4440'>
+          <var-decl name='dma' type-id='002ac4a6' visibility='default' filepath='include/linux/netdevice.h' line='2101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4448'>
+          <var-decl name='perm_addr' type-id='fc872715' visibility='default' filepath='include/linux/netdevice.h' line='2104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4704'>
+          <var-decl name='addr_assign_type' type-id='002ac4a6' visibility='default' filepath='include/linux/netdevice.h' line='2105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4712'>
+          <var-decl name='addr_len' type-id='002ac4a6' visibility='default' filepath='include/linux/netdevice.h' line='2106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4720'>
+          <var-decl name='upper_level' type-id='002ac4a6' visibility='default' filepath='include/linux/netdevice.h' line='2107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4728'>
+          <var-decl name='lower_level' type-id='002ac4a6' visibility='default' filepath='include/linux/netdevice.h' line='2108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='neigh_priv_len' type-id='8efea9e5' visibility='default' filepath='include/linux/netdevice.h' line='2110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4752'>
+          <var-decl name='dev_id' type-id='8efea9e5' visibility='default' filepath='include/linux/netdevice.h' line='2111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4768'>
+          <var-decl name='dev_port' type-id='8efea9e5' visibility='default' filepath='include/linux/netdevice.h' line='2112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4784'>
+          <var-decl name='padded' type-id='8efea9e5' visibility='default' filepath='include/linux/netdevice.h' line='2113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='addr_list_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/netdevice.h' line='2115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4832'>
+          <var-decl name='irq' type-id='95e97e5e' visibility='default' filepath='include/linux/netdevice.h' line='2116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4864'>
+          <var-decl name='uc' type-id='44a1ec32' visibility='default' filepath='include/linux/netdevice.h' line='2118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='mc' type-id='44a1ec32' visibility='default' filepath='include/linux/netdevice.h' line='2119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='dev_addrs' type-id='44a1ec32' visibility='default' filepath='include/linux/netdevice.h' line='2120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5632'>
+          <var-decl name='queues_kset' type-id='89b70200' visibility='default' filepath='include/linux/netdevice.h' line='2123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5696'>
+          <var-decl name='promiscuity' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='2128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5728'>
+          <var-decl name='allmulti' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='2129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5760'>
+          <var-decl name='uc_promisc' type-id='b50a4934' visibility='default' filepath='include/linux/netdevice.h' line='2130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5824'>
+          <var-decl name='vlan_info' type-id='7bd7def1' visibility='default' filepath='include/linux/netdevice.h' line='2139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5888'>
+          <var-decl name='tipc_ptr' type-id='eeaf504d' visibility='default' filepath='include/linux/netdevice.h' line='2145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5952'>
+          <var-decl name='ip_ptr' type-id='fc6f14a9' visibility='default' filepath='include/linux/netdevice.h' line='2150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6016'>
+          <var-decl name='ip6_ptr' type-id='f026b16b' visibility='default' filepath='include/linux/netdevice.h' line='2151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='ieee80211_ptr' type-id='63c7e8e1' visibility='default' filepath='include/linux/netdevice.h' line='2155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6144'>
+          <var-decl name='ieee802154_ptr' type-id='165146ad' visibility='default' filepath='include/linux/netdevice.h' line='2156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6208'>
+          <var-decl name='dev_addr' type-id='cf536864' visibility='default' filepath='include/linux/netdevice.h' line='2168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6272'>
+          <var-decl name='_rx' type-id='31094274' visibility='default' filepath='include/linux/netdevice.h' line='2170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6336'>
+          <var-decl name='num_rx_queues' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='2171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6368'>
+          <var-decl name='real_num_rx_queues' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='2172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6400'>
+          <var-decl name='xdp_prog' type-id='bdcee7ae' visibility='default' filepath='include/linux/netdevice.h' line='2174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='gro_flush_timeout' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='2175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6528'>
+          <var-decl name='napi_defer_hard_irqs' type-id='95e97e5e' visibility='default' filepath='include/linux/netdevice.h' line='2176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6592'>
+          <var-decl name='rx_handler' type-id='da1cb816' visibility='default' filepath='include/linux/netdevice.h' line='2177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6656'>
+          <var-decl name='rx_handler_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/netdevice.h' line='2178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6720'>
+          <var-decl name='miniq_ingress' type-id='b70f37f7' visibility='default' filepath='include/linux/netdevice.h' line='2181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6784'>
+          <var-decl name='ingress_queue' type-id='35b28c4f' visibility='default' filepath='include/linux/netdevice.h' line='2183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6848'>
+          <var-decl name='nf_hooks_ingress' type-id='39a43b40' visibility='default' filepath='include/linux/netdevice.h' line='2185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6912'>
+          <var-decl name='broadcast' type-id='fc872715' visibility='default' filepath='include/linux/netdevice.h' line='2188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7168'>
+          <var-decl name='rx_cpu_rmap' type-id='52baee64' visibility='default' filepath='include/linux/netdevice.h' line='2190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7232'>
+          <var-decl name='index_hlist' type-id='03a4a074' visibility='default' filepath='include/linux/netdevice.h' line='2192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='_tx' type-id='35b28c4f' visibility='default' filepath='include/linux/netdevice.h' line='2197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='num_tx_queues' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='2198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7776'>
+          <var-decl name='real_num_tx_queues' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='2199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='qdisc' type-id='ee406209' visibility='default' filepath='include/linux/netdevice.h' line='2200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='tx_queue_len' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='2201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7904'>
+          <var-decl name='tx_global_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/netdevice.h' line='2202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='xdp_bulkq' type-id='dc52084e' visibility='default' filepath='include/linux/netdevice.h' line='2204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='xps_maps' type-id='4eed3966' visibility='default' filepath='include/linux/netdevice.h' line='2207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='miniq_egress' type-id='b70f37f7' visibility='default' filepath='include/linux/netdevice.h' line='2210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='qdisc_hash' type-id='ccfd385f' visibility='default' filepath='include/linux/netdevice.h' line='2214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9216'>
+          <var-decl name='watchdog_timer' type-id='abe41e67' visibility='default' filepath='include/linux/netdevice.h' line='2217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9664'>
+          <var-decl name='watchdog_timeo' type-id='95e97e5e' visibility='default' filepath='include/linux/netdevice.h' line='2218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9696'>
+          <var-decl name='proto_down_reason' type-id='19c2251e' visibility='default' filepath='include/linux/netdevice.h' line='2220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9728'>
+          <var-decl name='todo_list' type-id='72f469ec' visibility='default' filepath='include/linux/netdevice.h' line='2222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9856'>
+          <var-decl name='pcpu_refcnt' type-id='7292109c' visibility='default' filepath='include/linux/netdevice.h' line='2225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9920'>
+          <var-decl name='link_watch_list' type-id='72f469ec' visibility='default' filepath='include/linux/netdevice.h' line='2230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10048'>
+          <var-decl name='reg_state' type-id='08f5ca1d' visibility='default' filepath='include/linux/netdevice.h' line='2238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10056'>
+          <var-decl name='dismantle' type-id='b50a4934' visibility='default' filepath='include/linux/netdevice.h' line='2240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10064'>
+          <var-decl name='rtnl_link_state' type-id='08f5ca1e' visibility='default' filepath='include/linux/netdevice.h' line='2245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10080'>
+          <var-decl name='needs_free_netdev' type-id='b50a4934' visibility='default' filepath='include/linux/netdevice.h' line='2247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10112'>
+          <var-decl name='priv_destructor' type-id='548eee3a' visibility='default' filepath='include/linux/netdevice.h' line='2248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10176'>
+          <var-decl name='nd_net' type-id='c9df1e6c' visibility='default' filepath='include/linux/netdevice.h' line='2254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10240'>
+          <var-decl name='ml_priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/netdevice.h' line='2257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10304'>
+          <var-decl name='ml_priv_type' type-id='9c6bf017' visibility='default' filepath='include/linux/netdevice.h' line='2258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10368'>
+          <var-decl name='' type-id='ac5ab656' visibility='default' filepath='include/linux/netdevice.h' line='2260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10432'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/netdevice.h' line='2273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17728'>
+          <var-decl name='sysfs_groups' type-id='db1b7234' visibility='default' filepath='include/linux/netdevice.h' line='2274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17984'>
+          <var-decl name='sysfs_rx_queue_group' type-id='8ff9530e' visibility='default' filepath='include/linux/netdevice.h' line='2275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18048'>
+          <var-decl name='rtnl_link_ops' type-id='999c8d90' visibility='default' filepath='include/linux/netdevice.h' line='2277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18112'>
+          <var-decl name='gso_max_size' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='2281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18144'>
+          <var-decl name='gso_max_segs' type-id='1dc6a898' visibility='default' filepath='include/linux/netdevice.h' line='2283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18160'>
+          <var-decl name='num_tc' type-id='9b7e9486' visibility='default' filepath='include/linux/netdevice.h' line='2288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18176'>
+          <var-decl name='tc_to_txq' type-id='b5839634' visibility='default' filepath='include/linux/netdevice.h' line='2289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18688'>
+          <var-decl name='prio_tc_map' type-id='0d8415b5' visibility='default' filepath='include/linux/netdevice.h' line='2290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18816'>
+          <var-decl name='priomap' type-id='ac9d827b' visibility='default' filepath='include/linux/netdevice.h' line='2296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18880'>
+          <var-decl name='phydev' type-id='7efbcaaf' visibility='default' filepath='include/linux/netdevice.h' line='2298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18944'>
+          <var-decl name='sfp_bus' type-id='6daf6abd' visibility='default' filepath='include/linux/netdevice.h' line='2299' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19008'>
+          <var-decl name='qdisc_tx_busylock' type-id='a57283f9' visibility='default' filepath='include/linux/netdevice.h' line='2300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19072'>
+          <var-decl name='qdisc_running_key' type-id='a57283f9' visibility='default' filepath='include/linux/netdevice.h' line='2301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19136'>
+          <var-decl name='proto_down' type-id='b50a4934' visibility='default' filepath='include/linux/netdevice.h' line='2302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19144'>
+          <var-decl name='wol_enabled' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='2303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19145'>
+          <var-decl name='threaded' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='2304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19200'>
+          <var-decl name='net_notifier_list' type-id='72f469ec' visibility='default' filepath='include/linux/netdevice.h' line='2306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19328'>
+          <var-decl name='macsec_ops' type-id='94090a9b' visibility='default' filepath='include/linux/netdevice.h' line='2310' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19392'>
+          <var-decl name='udp_tunnel_nic_info' type-id='6c660a22' visibility='default' filepath='include/linux/netdevice.h' line='2312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19456'>
+          <var-decl name='udp_tunnel_nic' type-id='08662768' visibility='default' filepath='include/linux/netdevice.h' line='2313' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19520'>
+          <var-decl name='xdp_state' type-id='74482e87' visibility='default' filepath='include/linux/netdevice.h' line='2316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19904'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='2318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19968'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='2319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20032'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='2320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20096'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='2321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20160'>
+          <var-decl name='android_kabi_reserved5' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='2322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20224'>
+          <var-decl name='android_kabi_reserved6' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='2323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20288'>
+          <var-decl name='android_kabi_reserved7' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='2324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20352'>
+          <var-decl name='android_kabi_reserved8' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='2325' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5a9e3f68'>
+        <parameter type-id='7e666abe'/>
+        <return type-id='30677246'/>
+      </function-type>
+      <pointer-type-def type-id='8f118d08' size-in-bits='64' id='5aa12c86'/>
+      <pointer-type-def type-id='8ab5a2af' size-in-bits='64' id='5aa1f3eb'/>
+      <pointer-type-def type-id='ffe5737b' size-in-bits='64' id='5aa4f86b'/>
+      <pointer-type-def type-id='5479f5e7' size-in-bits='64' id='5aa56dcb'/>
+      <pointer-type-def type-id='2ac4ba2d' size-in-bits='64' id='5ab0d905'/>
+      <function-type size-in-bits='64' id='5abdb7a8'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='3ccc2590'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='5abe74b4'>
+        <parameter type-id='00ee50b8'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a0ef5328' size-in-bits='64' id='5abfac26'/>
+      <pointer-type-def type-id='80824a72' size-in-bits='64' id='5ac4ba20'/>
+      <pointer-type-def type-id='cd9acaaa' size-in-bits='64' id='5ac7baf4'/>
+      <pointer-type-def type-id='90177497' size-in-bits='64' id='5acb442f'/>
+      <class-decl name='slcompress' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/net/slhc_vj.h' line='143' column='1' id='5accd2c2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tstate' type-id='15436247' visibility='default' filepath='include/net/slhc_vj.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rstate' type-id='15436247' visibility='default' filepath='include/net/slhc_vj.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tslot_limit' type-id='b937765d' visibility='default' filepath='include/net/slhc_vj.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='rslot_limit' type-id='b937765d' visibility='default' filepath='include/net/slhc_vj.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='xmit_oldest' type-id='b937765d' visibility='default' filepath='include/net/slhc_vj.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='xmit_current' type-id='b937765d' visibility='default' filepath='include/net/slhc_vj.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='recv_current' type-id='b937765d' visibility='default' filepath='include/net/slhc_vj.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='168'>
+          <var-decl name='flags' type-id='b937765d' visibility='default' filepath='include/net/slhc_vj.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sls_o_nontcp' type-id='93e3c360' visibility='default' filepath='include/net/slhc_vj.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='sls_o_tcp' type-id='93e3c360' visibility='default' filepath='include/net/slhc_vj.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='sls_o_uncompressed' type-id='93e3c360' visibility='default' filepath='include/net/slhc_vj.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='sls_o_compressed' type-id='93e3c360' visibility='default' filepath='include/net/slhc_vj.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='sls_o_searches' type-id='93e3c360' visibility='default' filepath='include/net/slhc_vj.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='sls_o_misses' type-id='93e3c360' visibility='default' filepath='include/net/slhc_vj.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='sls_i_uncompressed' type-id='93e3c360' visibility='default' filepath='include/net/slhc_vj.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='sls_i_compressed' type-id='93e3c360' visibility='default' filepath='include/net/slhc_vj.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='sls_i_error' type-id='93e3c360' visibility='default' filepath='include/net/slhc_vj.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='sls_i_tossed' type-id='93e3c360' visibility='default' filepath='include/net/slhc_vj.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='sls_i_runt' type-id='93e3c360' visibility='default' filepath='include/net/slhc_vj.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='sls_i_badcheck' type-id='93e3c360' visibility='default' filepath='include/net/slhc_vj.h' line='170' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_connector_state' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/drm/drm_connector.h' line='660' column='1' id='5ad3f0d0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='connector' type-id='4db02c58' visibility='default' filepath='include/drm/drm_connector.h' line='662' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='crtc' type-id='b64ad7cb' visibility='default' filepath='include/drm/drm_connector.h' line='670' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='best_encoder' type-id='74d89ebd' visibility='default' filepath='include/drm/drm_connector.h' line='688' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='link_status' type-id='a28dfadd' visibility='default' filepath='include/drm/drm_connector.h' line='694' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='state' type-id='e3dd029e' visibility='default' filepath='include/drm/drm_connector.h' line='697' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='commit' type-id='3f40b771' visibility='default' filepath='include/drm/drm_connector.h' line='704' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='tv' type-id='25b5f0d7' visibility='default' filepath='include/drm/drm_connector.h' line='707' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='self_refresh_aware' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='721' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='picture_aspect_ratio' type-id='a30ccd44' visibility='default' filepath='include/drm/drm_connector.h' line='730' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='content_type' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='738' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='hdcp_content_type' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='744' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='scaling_mode' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='750' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='content_protection' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='756' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='colorspace' type-id='19c2251e' visibility='default' filepath='include/drm/drm_connector.h' line='763' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='writeback_job' type-id='7b4ee155' visibility='default' filepath='include/drm/drm_connector.h' line='776' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='max_requested_bpc' type-id='f9b06939' visibility='default' filepath='include/drm/drm_connector.h' line='782' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1096'>
+          <var-decl name='max_bpc' type-id='f9b06939' visibility='default' filepath='include/drm/drm_connector.h' line='788' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='hdr_output_metadata' type-id='c4126d52' visibility='default' filepath='include/drm/drm_connector.h' line='794' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='615707ca' size-in-bits='64' id='5ad57c34'/>
+      <class-decl name='delayed_work' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/linux/workqueue.h' line='113' column='1' id='5ad6e0ef'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/linux/workqueue.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='timer' type-id='abe41e67' visibility='default' filepath='include/linux/workqueue.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='wq' type-id='242e3d19' visibility='default' filepath='include/linux/workqueue.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='cpu' type-id='95e97e5e' visibility='default' filepath='include/linux/workqueue.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/workqueue.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/workqueue.h' line='122' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='74f4b006' size-in-bits='64' id='5ae15890'/>
+      <function-type size-in-bits='64' id='5ae55c68'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='86607661' size-in-bits='64' id='5afa70dd'/>
+      <pointer-type-def type-id='bb1a67f7' size-in-bits='64' id='5afbd3c3'/>
+      <pointer-type-def type-id='537d88b1' size-in-bits='64' id='5afdaa66'/>
+      <array-type-def dimensions='1' type-id='7799da43' size-in-bits='256' id='5b02a6fc'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <typedef-decl name='genpd_xlate_t' type-id='293b7ad2' filepath='include/linux/pm_domain.h' line='307' column='1' id='5b046932'/>
+      <array-type-def dimensions='3' type-id='95e97e5e' size-in-bits='768' id='5b26e3c1'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <pointer-type-def type-id='20f5f452' size-in-bits='64' id='5b2fd8e8'/>
+      <pointer-type-def type-id='9857a465' size-in-bits='64' id='5b35aab5'/>
+      <class-decl name='nlmsghdr' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/netlink.h' line='44' column='1' id='5b37df4a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nlmsg_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/netlink.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='nlmsg_type' type-id='d315442e' visibility='default' filepath='include/uapi/linux/netlink.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='nlmsg_flags' type-id='d315442e' visibility='default' filepath='include/uapi/linux/netlink.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nlmsg_seq' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/netlink.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='nlmsg_pid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/netlink.h' line='49' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_audioout' size-in-bits='416' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2016' column='1' id='5b3ea0c8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2017' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='name' type-id='7e67d89d' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2018' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='capability' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2019' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mode' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2020' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='reserved' type-id='839e8989' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2021' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9ea68709' size-in-bits='64' id='5b4284d1'/>
+      <pointer-type-def type-id='3098b525' size-in-bits='64' id='5b44b629'/>
+      <class-decl name='page_ext' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/page_ext.h' line='39' column='1' id='5b44f06e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/page_ext.h' line='40' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0741cbfb' size-in-bits='64' id='5b450efb'/>
+      <array-type-def dimensions='1' type-id='644da7aa' size-in-bits='16384' id='5b466593'>
+        <subrange length='256' type-id='7ff19f0f' id='36e5b9fa'/>
+      </array-type-def>
+      <pointer-type-def type-id='946203ef' size-in-bits='64' id='5b4bef1f'/>
+      <pointer-type-def type-id='3e6eb939' size-in-bits='64' id='5b4d58e9'/>
+      <pointer-type-def type-id='63c3ee86' size-in-bits='64' id='5b4e5af0'/>
+      <class-decl name='gro_cells' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/gro_cells.h' line='11' column='1' id='5b4eef8b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cells' type-id='69646708' visibility='default' filepath='include/net/gro_cells.h' line='12' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='479d017a' size-in-bits='64' id='5b559658'/>
+      <pointer-type-def type-id='80c8acde' size-in-bits='64' id='5b57b9a4'/>
+      <pointer-type-def type-id='3c7ea80a' size-in-bits='64' id='5b62aa60'/>
+      <class-decl name='usb_interface' size-in-bits='8384' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='233' column='1' id='5b653fc9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='altsetting' type-id='2ac920d2' visibility='default' filepath='include/linux/usb.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cur_altsetting' type-id='2ac920d2' visibility='default' filepath='include/linux/usb.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='num_altsetting' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='intf_assoc' type-id='e4a73b37' visibility='default' filepath='include/linux/usb.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='minor' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='condition' type-id='3cabc9fc' visibility='default' filepath='include/linux/usb.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='sysfs_files_created' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='321'>
+          <var-decl name='ep_devs_created' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='322'>
+          <var-decl name='unregistering' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='323'>
+          <var-decl name='needs_remote_wakeup' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='324'>
+          <var-decl name='needs_altsetting0' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='325'>
+          <var-decl name='needs_binding' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='326'>
+          <var-decl name='resetting_device' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='327'>
+          <var-decl name='authorized' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/usb.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='usb_dev' type-id='fa0b179b' visibility='default' filepath='include/linux/usb.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='reset_ws' type-id='ef9025d0' visibility='default' filepath='include/linux/usb.h' line='260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='265' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d26d2ca4' size-in-bits='64' id='5b6d9de6'/>
+      <typedef-decl name='seqDef' type-id='96b3b0dd' filepath='lib/zstd/zstd_internal.h' line='186' column='1' id='5b74ae4a'/>
+      <pointer-type-def type-id='874459e5' size-in-bits='64' id='5b7d6a61'/>
+      <qualified-type-def type-id='7cfcbd14' const='yes' id='5b7f098d'/>
+      <pointer-type-def type-id='febb5b52' size-in-bits='64' id='5b9f5da4'/>
+      <function-type size-in-bits='64' id='5ba85b48'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='d8e6b335'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='70c545cd' size-in-bits='64' id='5bb9c75d'/>
+      <typedef-decl name='uLong' type-id='7359adad' filepath='include/linux/zconf.h' line='54' column='1' id='5bbcce85'/>
+      <class-decl name='wiphy_wowlan_support' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5209' column='1' id='5bbd300b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='n_patterns' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pattern_max_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='pattern_min_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='max_pkt_offset' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='max_nd_match_sets' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tcp' type-id='b3ebc0a8' visibility='default' filepath='include/net/cfg80211.h' line='5216' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5bbf1052'>
+        <parameter type-id='7359adad'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='14a30316' size-in-bits='64' id='5bc7662c'/>
+      <class-decl name='hlist_nulls_node' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/list_nulls.h' line='25' column='1' id='5bd248e7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='6cf6468f' visibility='default' filepath='include/linux/list_nulls.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pprev' type-id='2cb135bf' visibility='default' filepath='include/linux/list_nulls.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='08cc17f6' size-in-bits='64' id='5bd7ff98'/>
+      <function-type size-in-bits='64' id='5be888f0'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='6daf6abd'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='f772df6d' size-in-bits='infinite' id='5be9db8d'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='70bf28f5' size-in-bits='64' id='5bed570d'/>
+      <function-type size-in-bits='64' id='5bee967d'>
+        <parameter type-id='c67366c7'/>
+        <parameter type-id='fdbf7a0f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7680214a' size-in-bits='64' id='5befc19c'/>
+      <pointer-type-def type-id='5d5ff7f6' size-in-bits='64' id='5bfba86c'/>
+      <pointer-type-def type-id='60efdfd3' size-in-bits='64' id='5bfdb453'/>
+      <function-type size-in-bits='64' id='5c07a611'>
+        <parameter type-id='95dc69d1'/>
+        <parameter type-id='002ac4a6'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='4bdecfd7'/>
+      </function-type>
+      <pointer-type-def type-id='1274f0d2' size-in-bits='64' id='5c080b64'/>
+      <pointer-type-def type-id='5221b18a' size-in-bits='64' id='5c0abad8'/>
+      <class-decl name='__kernel_timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/time_types.h' line='7' column='1' id='5c155a71'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tv_sec' type-id='3d9e85cc' visibility='default' filepath='include/uapi/linux/time_types.h' line='8' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tv_nsec' type-id='1eb56b1e' visibility='default' filepath='include/uapi/linux/time_types.h' line='9' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5c166f04'>
+        <parameter type-id='7b332e1c'/>
+        <parameter type-id='9e99ecc1'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='snd_soc_dai_link' size-in-bits='1728' is-struct='yes' visibility='default' filepath='include/sound/soc.h' line='630' column='1' id='5c18a8e2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/sound/soc.h' line='632' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='stream_name' type-id='80f4b756' visibility='default' filepath='include/sound/soc.h' line='633' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cpus' type-id='4120e250' visibility='default' filepath='include/sound/soc.h' line='647' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='num_cpus' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='648' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='codecs' type-id='4120e250' visibility='default' filepath='include/sound/soc.h' line='655' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='num_codecs' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='656' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='platforms' type-id='4120e250' visibility='default' filepath='include/sound/soc.h' line='663' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='num_platforms' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='664' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/sound/soc.h' line='666' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='params' type-id='b0772ded' visibility='default' filepath='include/sound/soc.h' line='668' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='num_params' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='669' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='dai_fmt' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='671' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='trigger' type-id='16449c76' visibility='default' filepath='include/sound/soc.h' line='673' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='init' type-id='1ad47772' visibility='default' filepath='include/sound/soc.h' line='676' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='exit' type-id='d3d046f7' visibility='default' filepath='include/sound/soc.h' line='679' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='be_hw_params_fixup' type-id='59a76ce1' visibility='default' filepath='include/sound/soc.h' line='682' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='ops' type-id='d33d33c6' visibility='default' filepath='include/sound/soc.h' line='686' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='compr_ops' type-id='33ec9b0e' visibility='default' filepath='include/sound/soc.h' line='687' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='nonatomic' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='690' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1025'>
+          <var-decl name='playback_only' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='693' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1026'>
+          <var-decl name='capture_only' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='694' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1027'>
+          <var-decl name='ignore_suspend' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='697' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1028'>
+          <var-decl name='symmetric_rate' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='700' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1029'>
+          <var-decl name='symmetric_channels' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='701' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1030'>
+          <var-decl name='symmetric_sample_bits' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='702' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1031'>
+          <var-decl name='no_pcm' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='705' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1032'>
+          <var-decl name='dynamic' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='708' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1033'>
+          <var-decl name='dpcm_capture' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='711' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1034'>
+          <var-decl name='dpcm_playback' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='712' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1035'>
+          <var-decl name='dpcm_merged_format' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='715' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1036'>
+          <var-decl name='dpcm_merged_chan' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='717' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1037'>
+          <var-decl name='dpcm_merged_rate' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='719' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1038'>
+          <var-decl name='ignore_pmdown_time' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='722' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1039'>
+          <var-decl name='ignore' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='725' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1040'>
+          <var-decl name='stop_dma_first' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='731' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='dobj' type-id='01edcafc' visibility='default' filepath='include/sound/soc.h' line='734' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/sound/soc.h' line='736' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/soc.h' line='737' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='async_func_t' type-id='56ccc407' filepath='include/linux/async.h' line='17' column='1' id='5c19cb0c'/>
+      <typedef-decl name='sk_buff_data_t' type-id='f0981eeb' filepath='include/linux/skbuff.h' line='652' column='1' id='5c1abc34'/>
+      <pointer-type-def type-id='979d5bbb' size-in-bits='64' id='5c218f2b'/>
+      <class-decl name='ieee80211_regdomain' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/regulatory.h' line='226' column='1' id='5c28f25e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/net/regulatory.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='n_reg_rules' type-id='19c2251e' visibility='default' filepath='include/net/regulatory.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='alpha2' type-id='4df9d64a' visibility='default' filepath='include/net/regulatory.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dfs_region' type-id='5a85c988' visibility='default' filepath='include/net/regulatory.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='reg_rules' type-id='9195bab1' visibility='default' filepath='include/net/regulatory.h' line='231' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='input_dev_poller' size-in-bits='1344' is-struct='yes' visibility='default' filepath='drivers/input/input-poller.c' line='15' column='1' id='5c32afaa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='poll' type-id='b44880ea' visibility='default' filepath='drivers/input/input-poller.c' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='poll_interval' type-id='f0981eeb' visibility='default' filepath='drivers/input/input-poller.c' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='poll_interval_max' type-id='f0981eeb' visibility='default' filepath='drivers/input/input-poller.c' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='poll_interval_min' type-id='f0981eeb' visibility='default' filepath='drivers/input/input-poller.c' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='input' type-id='74b427eb' visibility='default' filepath='drivers/input/input-poller.c' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='work' type-id='5ad6e0ef' visibility='default' filepath='drivers/input/input-poller.c' line='23' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ae670bfa' size-in-bits='64' id='5c379870'/>
+      <function-type size-in-bits='64' id='5c3855b6'>
+        <parameter type-id='ca9354d1'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a42536cd' size-in-bits='64' id='5c39fc92'/>
+      <enum-decl name='vdso_clock_mode' filepath='include/vdso/clocksource.h' line='11' column='1' id='5c3b1f01'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='VDSO_CLOCKMODE_NONE' value='0'/>
+        <enumerator name='VDSO_CLOCKMODE_ARCHTIMER' value='1'/>
+        <enumerator name='VDSO_CLOCKMODE_ARCHTIMER_NOCOMPAT' value='2'/>
+        <enumerator name='VDSO_CLOCKMODE_MAX' value='3'/>
+        <enumerator name='VDSO_CLOCKMODE_TIMENS' value='2147483647'/>
+      </enum-decl>
+      <enum-decl name='hdmi_quantization_range' filepath='include/linux/hdmi.h' line='131' column='1' id='5c444b2c'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HDMI_QUANTIZATION_RANGE_DEFAULT' value='0'/>
+        <enumerator name='HDMI_QUANTIZATION_RANGE_LIMITED' value='1'/>
+        <enumerator name='HDMI_QUANTIZATION_RANGE_FULL' value='2'/>
+        <enumerator name='HDMI_QUANTIZATION_RANGE_RESERVED' value='3'/>
+      </enum-decl>
+      <class-decl name='usb_dcd_config_params' size-in-bits='48' is-struct='yes' visibility='default' filepath='include/linux/usb/gadget.h' line='299' column='1' id='5c44a483'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bU1devExitLat' type-id='8f048e17' visibility='default' filepath='include/linux/usb/gadget.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bU2DevExitLat' type-id='23119536' visibility='default' filepath='include/linux/usb/gadget.h' line='302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='besl_baseline' type-id='8f048e17' visibility='default' filepath='include/linux/usb/gadget.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='besl_deep' type-id='8f048e17' visibility='default' filepath='include/linux/usb/gadget.h' line='305' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='regmap_hw_free_context' type-id='b7f9d8e6' filepath='include/linux/regmap.h' line='484' column='1' id='5c459137'/>
+      <pointer-type-def type-id='782095e7' size-in-bits='64' id='5c4b80ab'/>
+      <pointer-type-def type-id='d66ae2ca' size-in-bits='64' id='5c4c6144'/>
+      <pointer-type-def type-id='842232f5' size-in-bits='64' id='5c683561'/>
+      <function-type size-in-bits='64' id='5c6f297d'>
+        <parameter type-id='7b332e1c'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='1086c08a' size-in-bits='64' id='5c6fb334'/>
+      <pointer-type-def type-id='15adb516' size-in-bits='64' id='5c744d74'/>
+      <pointer-type-def type-id='ced794e3' size-in-bits='64' id='5c745bb3'/>
+      <pointer-type-def type-id='34a246ab' size-in-bits='64' id='5c74fd13'/>
+      <pointer-type-def type-id='a7b3c380' size-in-bits='64' id='5c7f23c6'/>
+      <pointer-type-def type-id='32ca6abb' size-in-bits='64' id='5c86fa1f'/>
+      <pointer-type-def type-id='719a30bb' size-in-bits='64' id='5c8b296f'/>
+      <pointer-type-def type-id='f5c3facd' size-in-bits='64' id='5c8e49b9'/>
+      <class-decl name='ip6t_entry' size-in-bits='1344' is-struct='yes' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='110' column='1' id='5c902035'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ipv6' type-id='3c253edc' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='nfcache' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='target_offset' type-id='d315442e' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1136'>
+          <var-decl name='next_offset' type-id='d315442e' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='comefrom' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='counters' type-id='f3def31b' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='elems' type-id='5e6516ee' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='128' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1984aef9' size-in-bits='64' id='5c928f21'/>
+      <function-type size-in-bits='64' id='5c92ada0'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='79a0948f'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='07751825'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='pci_dev' size-in-bits='26240' is-struct='yes' visibility='default' filepath='include/linux/pci.h' line='313' column='1' id='5c93f9a7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bus_list' type-id='72f469ec' visibility='default' filepath='include/linux/pci.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bus' type-id='d1feb554' visibility='default' filepath='include/linux/pci.h' line='315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='subordinate' type-id='d1feb554' visibility='default' filepath='include/linux/pci.h' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='sysdata' type-id='eaa32e2f' visibility='default' filepath='include/linux/pci.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='procent' type-id='d077e928' visibility='default' filepath='include/linux/pci.h' line='319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='slot' type-id='4f146b8a' visibility='default' filepath='include/linux/pci.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='devfn' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='vendor' type-id='8efea9e5' visibility='default' filepath='include/linux/pci.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='496'>
+          <var-decl name='device' type-id='8efea9e5' visibility='default' filepath='include/linux/pci.h' line='324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='subsystem_vendor' type-id='8efea9e5' visibility='default' filepath='include/linux/pci.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='528'>
+          <var-decl name='subsystem_device' type-id='8efea9e5' visibility='default' filepath='include/linux/pci.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='class' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='revision' type-id='f9b06939' visibility='default' filepath='include/linux/pci.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='584'>
+          <var-decl name='hdr_type' type-id='f9b06939' visibility='default' filepath='include/linux/pci.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='592'>
+          <var-decl name='aer_cap' type-id='1dc6a898' visibility='default' filepath='include/linux/pci.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='aer_stats' type-id='290bf697' visibility='default' filepath='include/linux/pci.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='rcec_ea' type-id='9cce6b8d' visibility='default' filepath='include/linux/pci.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='rcec' type-id='85196e3f' visibility='default' filepath='include/linux/pci.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='devcap' type-id='19c2251e' visibility='default' filepath='include/linux/pci.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='pcie_cap' type-id='f9b06939' visibility='default' filepath='include/linux/pci.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='872'>
+          <var-decl name='msi_cap' type-id='f9b06939' visibility='default' filepath='include/linux/pci.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='880'>
+          <var-decl name='msix_cap' type-id='f9b06939' visibility='default' filepath='include/linux/pci.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='888'>
+          <var-decl name='pcie_mpss' type-id='f9b06939' visibility='default' filepath='include/linux/pci.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='rom_base_reg' type-id='f9b06939' visibility='default' filepath='include/linux/pci.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='904'>
+          <var-decl name='pin' type-id='f9b06939' visibility='default' filepath='include/linux/pci.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='912'>
+          <var-decl name='pcie_flags_reg' type-id='1dc6a898' visibility='default' filepath='include/linux/pci.h' line='345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='dma_alias_mask' type-id='1d2c2b85' visibility='default' filepath='include/linux/pci.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='driver' type-id='85b59624' visibility='default' filepath='include/linux/pci.h' line='348' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='dma_mask' type-id='91ce1af9' visibility='default' filepath='include/linux/pci.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='dma_parms' type-id='37251e77' visibility='default' filepath='include/linux/pci.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='current_state' type-id='49c32219' visibility='default' filepath='include/linux/pci.h' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='imm_ready' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1320'>
+          <var-decl name='pm_cap' type-id='f9b06939' visibility='default' filepath='include/linux/pci.h' line='361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1328'>
+          <var-decl name='pme_support' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1333'>
+          <var-decl name='pme_poll' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1334'>
+          <var-decl name='d1_support' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='365' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1335'>
+          <var-decl name='d2_support' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1336'>
+          <var-decl name='no_d1d2' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='367' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1337'>
+          <var-decl name='no_d3cold' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='368' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1338'>
+          <var-decl name='bridge_d3' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='369' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1339'>
+          <var-decl name='d3cold_allowed' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1340'>
+          <var-decl name='mmio_always_on' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='371' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1341'>
+          <var-decl name='wakeup_prepared' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='373' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1342'>
+          <var-decl name='runtime_d3cold' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='374' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1343'>
+          <var-decl name='skip_bus_pm' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='378' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='ignore_hotplug' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1345'>
+          <var-decl name='hotplug_user_indicators' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1346'>
+          <var-decl name='clear_retrain_link' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='383' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='d3hot_delay' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='385' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='d3cold_delay' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='link_state' type-id='fe2d9f1d' visibility='default' filepath='include/linux/pci.h' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='ltr_path' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1552'>
+          <var-decl name='l1ss' type-id='1dc6a898' visibility='default' filepath='include/linux/pci.h' line='392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='pasid_no_tlp' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='394' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1569'>
+          <var-decl name='eetlp_prefix_path' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='error_state' type-id='7d5a17ad' visibility='default' filepath='include/linux/pci.h' line='397' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/pci.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8960'>
+          <var-decl name='cfg_size' type-id='95e97e5e' visibility='default' filepath='include/linux/pci.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8992'>
+          <var-decl name='irq' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9024'>
+          <var-decl name='resource' type-id='2629ebcd' visibility='default' filepath='include/linux/pci.h' line='407' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22080'>
+          <var-decl name='match_driver' type-id='b50a4934' visibility='default' filepath='include/linux/pci.h' line='409' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22088'>
+          <var-decl name='transparent' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22089'>
+          <var-decl name='io_window' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22090'>
+          <var-decl name='pref_window' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='413' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22091'>
+          <var-decl name='pref_64_window' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22092'>
+          <var-decl name='multifunction' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='415' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22093'>
+          <var-decl name='is_busmaster' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='417' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22094'>
+          <var-decl name='no_msi' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='418' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22095'>
+          <var-decl name='no_64bit_msi' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22096'>
+          <var-decl name='block_cfg_access' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='420' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22097'>
+          <var-decl name='broken_parity_status' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22098'>
+          <var-decl name='irq_reroute_variant' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='422' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22100'>
+          <var-decl name='msi_enabled' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22101'>
+          <var-decl name='msix_enabled' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='424' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22102'>
+          <var-decl name='ari_enabled' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='425' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22103'>
+          <var-decl name='ats_enabled' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22104'>
+          <var-decl name='pasid_enabled' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22105'>
+          <var-decl name='pri_enabled' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='428' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22106'>
+          <var-decl name='is_managed' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22107'>
+          <var-decl name='needs_freset' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='430' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22108'>
+          <var-decl name='state_saved' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='431' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22109'>
+          <var-decl name='is_physfn' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='432' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22110'>
+          <var-decl name='is_virtfn' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='433' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22111'>
+          <var-decl name='is_hotplug_bridge' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='434' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22112'>
+          <var-decl name='shpc_managed' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22113'>
+          <var-decl name='is_thunderbolt' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22114'>
+          <var-decl name='untrusted' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22115'>
+          <var-decl name='external_facing' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22116'>
+          <var-decl name='broken_intx_masking' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22117'>
+          <var-decl name='io_window_1k' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22118'>
+          <var-decl name='irq_managed' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22119'>
+          <var-decl name='non_compliant_bars' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22120'>
+          <var-decl name='is_probed' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22121'>
+          <var-decl name='link_active_reporting' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22122'>
+          <var-decl name='no_vf_scan' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22123'>
+          <var-decl name='no_command_memory' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22128'>
+          <var-decl name='dev_flags' type-id='0f4efb07' visibility='default' filepath='include/linux/pci.h' line='459' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22144'>
+          <var-decl name='enable_cnt' type-id='49178f86' visibility='default' filepath='include/linux/pci.h' line='460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22176'>
+          <var-decl name='saved_config_space' type-id='02fdec64' visibility='default' filepath='include/linux/pci.h' line='462' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22720'>
+          <var-decl name='saved_cap_space' type-id='e151255a' visibility='default' filepath='include/linux/pci.h' line='463' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22784'>
+          <var-decl name='rom_attr_enabled' type-id='95e97e5e' visibility='default' filepath='include/linux/pci.h' line='464' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22848'>
+          <var-decl name='res_attr' type-id='f0bfbfd1' visibility='default' filepath='include/linux/pci.h' line='465' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='23936'>
+          <var-decl name='res_attr_wc' type-id='f0bfbfd1' visibility='default' filepath='include/linux/pci.h' line='466' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25024'>
+          <var-decl name='msi_irq_groups' type-id='c97de1ac' visibility='default' filepath='include/linux/pci.h' line='477' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25088'>
+          <var-decl name='vpd' type-id='059a2256' visibility='default' filepath='include/linux/pci.h' line='479' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25536'>
+          <var-decl name='' type-id='ac5ab5aa' visibility='default' filepath='include/linux/pci.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25600'>
+          <var-decl name='ats_cap' type-id='1dc6a898' visibility='default' filepath='include/linux/pci.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25616'>
+          <var-decl name='ats_stu' type-id='f9b06939' visibility='default' filepath='include/linux/pci.h' line='491' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25632'>
+          <var-decl name='acs_cap' type-id='1dc6a898' visibility='default' filepath='include/linux/pci.h' line='505' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25664'>
+          <var-decl name='rom' type-id='2522883d' visibility='default' filepath='include/linux/pci.h' line='506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25728'>
+          <var-decl name='romlen' type-id='b59d7dce' visibility='default' filepath='include/linux/pci.h' line='507' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25792'>
+          <var-decl name='driver_override' type-id='26a90f95' visibility='default' filepath='include/linux/pci.h' line='508' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25856'>
+          <var-decl name='priv_flags' type-id='7359adad' visibility='default' filepath='include/linux/pci.h' line='510' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25920'>
+          <var-decl name='reset_methods' type-id='d3180915' visibility='default' filepath='include/linux/pci.h' line='513' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25984'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/pci.h' line='515' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26048'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/pci.h' line='516' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26112'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/pci.h' line='517' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26176'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/pci.h' line='518' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e4357afb' size-in-bits='64' id='5c9680e7'/>
+      <pointer-type-def type-id='337862e8' size-in-bits='64' id='5c9f2a92'/>
+      <function-type size-in-bits='64' id='5ca87d9a'>
+        <parameter type-id='67d012a2'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='5caab92b'>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='1b243597'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='ef4bec92' size-in-bits='64' id='5cacf26c'/>
+      <pointer-type-def type-id='09978275' size-in-bits='64' id='5cae2f79'/>
+      <class-decl name='snd_hwdep_ops' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/sound/hwdep.h' line='17' column='1' id='5cb0616a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='llseek' type-id='4998c99f' visibility='default' filepath='include/sound/hwdep.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='read' type-id='8aa9d34a' visibility='default' filepath='include/sound/hwdep.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='write' type-id='5732f87b' visibility='default' filepath='include/sound/hwdep.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='open' type-id='51119d2d' visibility='default' filepath='include/sound/hwdep.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='release' type-id='51119d2d' visibility='default' filepath='include/sound/hwdep.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='poll' type-id='377be647' visibility='default' filepath='include/sound/hwdep.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ioctl' type-id='8fb9d791' visibility='default' filepath='include/sound/hwdep.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ioctl_compat' type-id='8fb9d791' visibility='default' filepath='include/sound/hwdep.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='mmap' type-id='80eb3fbc' visibility='default' filepath='include/sound/hwdep.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='dsp_status' type-id='8cc78bbc' visibility='default' filepath='include/sound/hwdep.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='dsp_load' type-id='0ab14abf' visibility='default' filepath='include/sound/hwdep.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/hwdep.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pinctrl_gpio_range' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='58' column='1' id='5cb32b9b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='id' type-id='f0981eeb' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='base' type-id='f0981eeb' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='pin_base' type-id='f0981eeb' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='npins' type-id='f0981eeb' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='pins' type-id='5b2fd8e8' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='gc' type-id='e324928d' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='66' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='dma_buf_map' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/dma-buf-map.h' line='115' column='1' id='5cb8e7e2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab5d8' visibility='default' filepath='include/linux/dma-buf-map.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='is_iomem' type-id='b50a4934' visibility='default' filepath='include/linux/dma-buf-map.h' line='120' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_compr_codec_caps' size-in-bits='89152' is-struct='yes' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='119' column='1' id='5cbc594f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='codec' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='num_descriptors' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='descriptor' type-id='cac20798' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='122' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5cdc243f'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='aa06f721'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a88ecfc8' size-in-bits='64' id='5cebc26e'/>
+      <class-decl name='iio_poll_func' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/iio/trigger_consumer.h' line='30' column='1' id='5cec8edf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='indio_dev' type-id='226853d2' visibility='default' filepath='include/linux/iio/trigger_consumer.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='h' type-id='3fefe9b7' visibility='default' filepath='include/linux/iio/trigger_consumer.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='thread' type-id='3fefe9b7' visibility='default' filepath='include/linux/iio/trigger_consumer.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='type' type-id='95e97e5e' visibility='default' filepath='include/linux/iio/trigger_consumer.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/iio/trigger_consumer.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='irq' type-id='95e97e5e' visibility='default' filepath='include/linux/iio/trigger_consumer.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='timestamp' type-id='9b7c55ef' visibility='default' filepath='include/linux/iio/trigger_consumer.h' line='37' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5cf9392d'>
+        <parameter type-id='442b8d89'/>
+        <parameter type-id='c197ce64'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='kioctx_table' is-struct='yes' visibility='default' is-declaration-only='yes' id='5d0f15d4'/>
+      <function-type size-in-bits='64' id='5d16c291'>
+        <parameter type-id='b9af02c3'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='uprobe_task_state' filepath='include/linux/uprobes.h' line='51' column='1' id='5d1a5bc7'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='UTASK_RUNNING' value='0'/>
+        <enumerator name='UTASK_SSTEP' value='1'/>
+        <enumerator name='UTASK_SSTEP_ACK' value='2'/>
+        <enumerator name='UTASK_SSTEP_TRAPPED' value='3'/>
+      </enum-decl>
+      <typedef-decl name='upf_t' type-id='f0981eeb' filepath='include/linux/serial_core.h' line='107' column='1' id='5d1b117e'/>
+      <class-decl name='platform_msi_priv_data' size-in-bits='640' is-struct='yes' visibility='default' filepath='drivers/base/platform-msi.c' line='23' column='1' id='5d1d7263'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/base/platform-msi.c' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='host_data' type-id='eaa32e2f' visibility='default' filepath='drivers/base/platform-msi.c' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='msi_irq_groups' type-id='c97de1ac' visibility='default' filepath='drivers/base/platform-msi.c' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='arg' type-id='e36320e9' visibility='default' filepath='drivers/base/platform-msi.c' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='write_msg' type-id='c335ba2b' visibility='default' filepath='drivers/base/platform-msi.c' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='devid' type-id='95e97e5e' visibility='default' filepath='drivers/base/platform-msi.c' line='29' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_simple_display_pipe' size-in-bits='24960' is-struct='yes' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='222' column='1' id='5d26fb4d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='crtc' type-id='3f5f978b' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13312'>
+          <var-decl name='plane' type-id='60f2213f' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='23872'>
+          <var-decl name='encoder' type-id='d12f4a1d' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24832'>
+          <var-decl name='connector' type-id='4db02c58' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24896'>
+          <var-decl name='funcs' type-id='c81c0868' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='228' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='macsec_dev_stats' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/net/macsec.h' line='91' column='1' id='5d27c895'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='OutPktsUntagged' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='InPktsUntagged' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='OutPktsTooLong' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='InPktsNoTag' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='InPktsBadTag' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='InPktsUnknownSCI' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='InPktsNoSCI' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='InPktsOverrun' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='99' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='eca93177' size-in-bits='64' id='5d33005f'/>
+      <array-type-def dimensions='1' type-id='bd54fe1a' size-in-bits='192' id='5d34b9c7'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <pointer-type-def type-id='830ee0a7' size-in-bits='64' id='5d3a884e'/>
+      <pointer-type-def type-id='cc4b1be9' size-in-bits='64' id='5d3cb3f9'/>
+      <array-type-def dimensions='1' type-id='bd54fe1a' size-in-bits='256' id='5d4602e8'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='5d58e1d2'>
+        <parameter type-id='b88dd945'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='30d69cf7' size-in-bits='64' id='5d5d13c3'/>
+      <class-decl name='dma_coherent_mem' is-struct='yes' visibility='default' is-declaration-only='yes' id='5d5ff7f6'/>
+      <typedef-decl name='old_time32_t' type-id='a7832498' filepath='include/vdso/time32.h' line='5' column='1' id='5d60da55'/>
+      <class-decl name='snd_pcm_str' size-in-bits='7680' is-struct='yes' visibility='default' filepath='include/sound/pcm.h' line='496' column='1' id='5d633b6b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='stream' type-id='95e97e5e' visibility='default' filepath='include/sound/pcm.h' line='497' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pcm' type-id='4c9f335b' visibility='default' filepath='include/sound/pcm.h' line='498' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='substream_count' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='500' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='substream_opened' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='501' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='substream' type-id='06b2cd14' visibility='default' filepath='include/sound/pcm.h' line='502' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='chmap_kctl' type-id='7a5054b7' visibility='default' filepath='include/sound/pcm.h' line='513' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/sound/pcm.h' line='514' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/pcm.h' line='515' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5d64147c'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='f7d748c2'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='27675065'/>
+      </function-type>
+      <pointer-type-def type-id='9c313c2d' size-in-bits='64' id='5d6479ae'/>
+      <pointer-type-def type-id='aa647859' size-in-bits='64' id='5d77c671'/>
+      <pointer-type-def type-id='09ffba8a' size-in-bits='64' id='5d92c9e0'/>
+      <class-decl name='cfg80211_bss_select_adjust' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2678' column='1' id='5da08e25'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='band' type-id='3eaa0294' visibility='default' filepath='include/net/cfg80211.h' line='2679' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='delta' type-id='fdbf7a0f' visibility='default' filepath='include/net/cfg80211.h' line='2680' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='watchdog_info' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/watchdog.h' line='18' column='1' id='5da1665b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='options' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/watchdog.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='firmware_version' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/watchdog.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='identity' type-id='7e67d89d' visibility='default' filepath='include/uapi/linux/watchdog.h' line='21' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4a19d21e' size-in-bits='64' id='5da77304'/>
+      <pointer-type-def type-id='62313820' size-in-bits='64' id='5db8f742'/>
+      <pointer-type-def type-id='3e115181' size-in-bits='64' id='5db9bd89'/>
+      <pointer-type-def type-id='e8d98129' size-in-bits='64' id='5dbae9d1'/>
+      <pointer-type-def type-id='a23921c9' size-in-bits='64' id='5dbfcbb1'/>
+      <function-type size-in-bits='64' id='5dc99a0e'>
+        <parameter type-id='13103032'/>
+        <parameter type-id='6b9b777a'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='2d4ad53b' size-in-bits='64' id='5dcd69c3'/>
+      <pointer-type-def type-id='90f8cf39' size-in-bits='64' id='5dcd6c6d'/>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='520' id='5ddd38d2'>
+        <subrange length='65' type-id='7ff19f0f' id='b50e2e4a'/>
+      </array-type-def>
+      <pointer-type-def type-id='1b99a1f1' size-in-bits='64' id='5ddef2dd'/>
+      <pointer-type-def type-id='b3ad2c1c' size-in-bits='64' id='5de22dda'/>
+      <pointer-type-def type-id='6c1c578a' size-in-bits='64' id='5deab224'/>
+      <pointer-type-def type-id='1f1ec116' size-in-bits='64' id='5dee5830'/>
+      <class-decl name='time_namespace' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/time_namespace.h' line='19' column='1' id='5deff74c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='user_ns' type-id='c0ced320' visibility='default' filepath='include/linux/time_namespace.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ucounts' type-id='b1d4934a' visibility='default' filepath='include/linux/time_namespace.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ns' type-id='99f367f2' visibility='default' filepath='include/linux/time_namespace.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='offsets' type-id='03ce8d40' visibility='default' filepath='include/linux/time_namespace.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='vvar_page' type-id='02f11ed4' visibility='default' filepath='include/linux/time_namespace.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='frozen_offsets' type-id='b50a4934' visibility='default' filepath='include/linux/time_namespace.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='66bd4388' size-in-bits='64' id='5df17806'/>
+      <function-type size-in-bits='64' id='5df6ba5b'>
+        <parameter type-id='893447fb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='nsset' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/nsproxy.h' line='53' column='1' id='5dfd5d26'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/nsproxy.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nsproxy' type-id='dc5ce118' visibility='default' filepath='include/linux/nsproxy.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fs' type-id='08890290' visibility='default' filepath='include/linux/nsproxy.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cred' type-id='bc33861a' visibility='default' filepath='include/linux/nsproxy.h' line='57' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5e0713ae'>
+        <parameter type-id='12884b9a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='usb_cdc_dmm_desc' size-in-bits='56' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='148' column='1' id='5e084b85'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bFunctionLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bDescriptorSubtype' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bcdVersion' type-id='d315442e' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='wMaxCommand' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='153' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='crypto_cipher' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/crypto/internal/cipher.h' line='16' column='1' id='5e09ca8a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='0328c8b6' visibility='default' filepath='include/crypto/internal/cipher.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_bridge_funcs' size-in-bits='1600' is-struct='yes' visibility='default' filepath='include/drm/drm_bridge.h' line='57' column='1' id='5e0dec46'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='attach' type-id='0d618886' visibility='default' filepath='include/drm/drm_bridge.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='detach' type-id='e1fb15d1' visibility='default' filepath='include/drm/drm_bridge.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mode_valid' type-id='8851df39' visibility='default' filepath='include/drm/drm_bridge.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mode_fixup' type-id='ea44fe69' visibility='default' filepath='include/drm/drm_bridge.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='disable' type-id='e1fb15d1' visibility='default' filepath='include/drm/drm_bridge.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='post_disable' type-id='e1fb15d1' visibility='default' filepath='include/drm/drm_bridge.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='mode_set' type-id='63662edb' visibility='default' filepath='include/drm/drm_bridge.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pre_enable' type-id='e1fb15d1' visibility='default' filepath='include/drm/drm_bridge.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='enable' type-id='e1fb15d1' visibility='default' filepath='include/drm/drm_bridge.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='atomic_pre_enable' type-id='7cb76260' visibility='default' filepath='include/drm/drm_bridge.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='atomic_enable' type-id='7cb76260' visibility='default' filepath='include/drm/drm_bridge.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='atomic_disable' type-id='7cb76260' visibility='default' filepath='include/drm/drm_bridge.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='atomic_post_disable' type-id='7cb76260' visibility='default' filepath='include/drm/drm_bridge.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='atomic_duplicate_state' type-id='e0d3697a' visibility='default' filepath='include/drm/drm_bridge.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='atomic_destroy_state' type-id='7cb76260' visibility='default' filepath='include/drm/drm_bridge.h' line='414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='atomic_get_output_bus_fmts' type-id='76642109' visibility='default' filepath='include/drm/drm_bridge.h' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='atomic_get_input_bus_fmts' type-id='52850a16' visibility='default' filepath='include/drm/drm_bridge.h' line='476' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='atomic_check' type-id='1e0087b8' visibility='default' filepath='include/drm/drm_bridge.h' line='508' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='atomic_reset' type-id='e0d3697a' visibility='default' filepath='include/drm/drm_bridge.h' line='538' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='detect' type-id='4346d2a4' visibility='default' filepath='include/drm/drm_bridge.h' line='554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='get_modes' type-id='c5d380db' visibility='default' filepath='include/drm/drm_bridge.h' line='578' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='get_edid' type-id='1484809a' visibility='default' filepath='include/drm/drm_bridge.h' line='608' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='hpd_notify' type-id='59d4153e' visibility='default' filepath='include/drm/drm_bridge.h' line='621' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='hpd_enable' type-id='e1fb15d1' visibility='default' filepath='include/drm/drm_bridge.h' line='637' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='hpd_disable' type-id='e1fb15d1' visibility='default' filepath='include/drm/drm_bridge.h' line='651' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='af6e35e9' size-in-bits='64' id='5e15576d'/>
+      <pointer-type-def type-id='1cff49be' size-in-bits='64' id='5e180384'/>
+      <pointer-type-def type-id='389d1e82' size-in-bits='64' id='5e185d4c'/>
+      <qualified-type-def type-id='43af4ec3' const='yes' id='5e192634'/>
+      <pointer-type-def type-id='24451821' size-in-bits='64' id='5e1def9d'/>
+      <pointer-type-def type-id='b31bfc8a' size-in-bits='64' id='5e2671f8'/>
+      <array-type-def dimensions='1' type-id='5d633b6b' size-in-bits='15360' id='5e28cc39'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <class-decl name='devlink_region_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='661' column='1' id='5e2a7612'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/net/devlink.h' line='662' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='destructor' type-id='b7f9d8e6' visibility='default' filepath='include/net/devlink.h' line='663' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='snapshot' type-id='91a773cc' visibility='default' filepath='include/net/devlink.h' line='664' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/net/devlink.h' line='668' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_buffer' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1037' column='1' id='5e2fd874'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1038' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1039' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bytesused' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1040' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1041' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='field' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1042' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='timestamp' type-id='d45daad4' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1044' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='timecode' type-id='5f820012' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1048' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='sequence' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1049' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='memory' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1052' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='m' type-id='ac5ab5f7' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1058' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='length' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1059' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='reserved2' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1060' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='' type-id='ac5ab5f8' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1061' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='dma_chan' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/linux/dmaengine.h' line='329' column='1' id='5e3b10aa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='device' type-id='c60ba652' visibility='default' filepath='include/linux/dmaengine.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='slave' type-id='fa0b179b' visibility='default' filepath='include/linux/dmaengine.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cookie' type-id='6478ea0a' visibility='default' filepath='include/linux/dmaengine.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='completed_cookie' type-id='6478ea0a' visibility='default' filepath='include/linux/dmaengine.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='chan_id' type-id='95e97e5e' visibility='default' filepath='include/linux/dmaengine.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dev' type-id='114d14e4' visibility='default' filepath='include/linux/dmaengine.h' line='337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/dmaengine.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dbg_client_name' type-id='26a90f95' visibility='default' filepath='include/linux/dmaengine.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='device_node' type-id='72f469ec' visibility='default' filepath='include/linux/dmaengine.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='local' type-id='f8c8e796' visibility='default' filepath='include/linux/dmaengine.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='client_count' type-id='95e97e5e' visibility='default' filepath='include/linux/dmaengine.h' line='345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='table_count' type-id='95e97e5e' visibility='default' filepath='include/linux/dmaengine.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='router' type-id='70a92833' visibility='default' filepath='include/linux/dmaengine.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='route_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/dmaengine.h' line='350' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='private' type-id='eaa32e2f' visibility='default' filepath='include/linux/dmaengine.h' line='352' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='a7832498' const='yes' id='5e3feda8'/>
+      <class-decl name='mmc_csd' size-in-bits='352' is-struct='yes' visibility='default' filepath='include/linux/mmc/card.h' line='26' column='1' id='5e477b59'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='structure' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/card.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='mmca_vsn' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/card.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='cmdclass' type-id='8efea9e5' visibility='default' filepath='include/linux/mmc/card.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='taac_clks' type-id='8efea9e5' visibility='default' filepath='include/linux/mmc/card.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='taac_ns' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='c_size' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='r2w_factor' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='max_dtr' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='erase_size' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='read_blkbits' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='write_blkbits' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='capacity' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='read_partial' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='321'>
+          <var-decl name='read_misalign' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='322'>
+          <var-decl name='write_partial' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='323'>
+          <var-decl name='write_misalign' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='324'>
+          <var-decl name='dsr_imp' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5e4a0f97'>
+        <parameter type-id='bff05edb'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c201baab' size-in-bits='64' id='5e4f599b'/>
+      <function-type size-in-bits='64' id='5e5241e2'>
+        <parameter type-id='f66fa7f4'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='5e584ca4'>
+        <parameter type-id='7544e824'/>
+        <parameter type-id='a9bcccf8'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='88370ce9'/>
+        <parameter type-id='ccf3b302'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='crypto_async_request' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/crypto.h' line='180' column='1' id='5e6083f1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/crypto.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='complete' type-id='2cfb2e6f' visibility='default' filepath='include/linux/crypto.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/crypto.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='tfm' type-id='dfeb7f6c' visibility='default' filepath='include/linux/crypto.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/linux/crypto.h' line='186' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_pcm_group' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/sound/pcm.h' line='439' column='1' id='5e60e97f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/sound/pcm.h' line='440' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='include/sound/pcm.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='substreams' type-id='72f469ec' visibility='default' filepath='include/sound/pcm.h' line='442' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='refs' type-id='64615833' visibility='default' filepath='include/sound/pcm.h' line='443' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d81a5dde' size-in-bits='64' id='5e611ec0'/>
+      <array-type-def dimensions='1' type-id='002ac4a6' size-in-bits='infinite' id='5e6516ee'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <qualified-type-def type-id='5a7d7f6d' const='yes' id='5e7ca5e6'/>
+      <class-decl name='ethtool_modinfo' size-in-bits='352' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='394' column='1' id='5e7de2a9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='eeprom_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='397' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='reserved' type-id='7f84eb57' visibility='default' filepath='include/uapi/linux/ethtool.h' line='398' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5e80f131'>
+        <parameter type-id='15d29710'/>
+        <parameter type-id='e15f3242'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='11c513ae' size-in-bits='64' id='5e810368'/>
+      <array-type-def dimensions='1' type-id='77e79a4b' size-in-bits='infinite' id='5e8a3097'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <class-decl name='sd_scr' size-in-bits='48' is-struct='yes' visibility='default' filepath='include/linux/mmc/card.h' line='133' column='1' id='5e938df5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sda_vsn' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/card.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='sda_spec3' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/card.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='sda_spec4' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/card.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='sda_specx' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/card.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bus_widths' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/card.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='cmds' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/card.h' line='141' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d15eda11' size-in-bits='64' id='5e9804d5'/>
+      <class-decl name='vsock_transport_recv_notify_data' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/af_vsock.h' line='83' column='1' id='5e9a41e1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='data1' type-id='91ce1af9' visibility='default' filepath='include/net/af_vsock.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data2' type-id='91ce1af9' visibility='default' filepath='include/net/af_vsock.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='notify_on_block' type-id='b50a4934' visibility='default' filepath='include/net/af_vsock.h' line='86' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5ea5a07d'>
+        <parameter type-id='d30bdc51'/>
+        <parameter type-id='0b001c1f'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='2594b00f'/>
+      </function-type>
+      <class-decl name='crypto_authenc_keys' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/crypto/authenc.h' line='21' column='1' id='5ea6264e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='authkey' type-id='bbaf3419' visibility='default' filepath='include/crypto/authenc.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='enckey' type-id='bbaf3419' visibility='default' filepath='include/crypto/authenc.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='authkeylen' type-id='f0981eeb' visibility='default' filepath='include/crypto/authenc.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='enckeylen' type-id='f0981eeb' visibility='default' filepath='include/crypto/authenc.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='42772acc' size-in-bits='64' id='5eb6827a'/>
+      <class-decl name='sd_ssr' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/mmc/card.h' line='148' column='1' id='5eba9d65'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='au' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='erase_timeout' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='erase_offset' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='151' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='virtio_vsock_pkt' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/virtio_vsock.h' line='43' column='1' id='5ebf3387'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hdr' type-id='c96be70a' visibility='default' filepath='include/linux/virtio_vsock.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/virtio_vsock.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='vsk' type-id='ecb0ce18' visibility='default' filepath='include/linux/virtio_vsock.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='buf' type-id='eaa32e2f' visibility='default' filepath='include/linux/virtio_vsock.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='buf_len' type-id='19c2251e' visibility='default' filepath='include/linux/virtio_vsock.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='len' type-id='19c2251e' visibility='default' filepath='include/linux/virtio_vsock.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='off' type-id='19c2251e' visibility='default' filepath='include/linux/virtio_vsock.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='reply' type-id='b50a4934' visibility='default' filepath='include/linux/virtio_vsock.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='744'>
+          <var-decl name='tap_delivered' type-id='b50a4934' visibility='default' filepath='include/linux/virtio_vsock.h' line='53' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5ec4fc8d'>
+        <parameter type-id='363a995e'/>
+        <parameter type-id='3cc81bea'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='6ef54783' size-in-bits='64' id='5ec5a5df'/>
+      <function-type size-in-bits='64' id='5ed2cb86'>
+        <parameter type-id='f41a0030'/>
+        <parameter type-id='94a2b0dd'/>
+        <parameter type-id='246c18a6'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='226db88f' size-in-bits='64' id='5ed4fd63'/>
+      <class-decl name='cea_sad' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/drm/drm_edid.h' line='363' column='1' id='5ee42ab3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='format' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='channels' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='365' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='freq' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='byte2' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='367' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='drm_plane_type' filepath='include/drm/drm_plane.h' line='555' column='1' id='5eed3c85'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DRM_PLANE_TYPE_OVERLAY' value='0'/>
+        <enumerator name='DRM_PLANE_TYPE_PRIMARY' value='1'/>
+        <enumerator name='DRM_PLANE_TYPE_CURSOR' value='2'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='5eee7900'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='8182ca8c' size-in-bits='64' id='5eeecdaa'/>
+      <array-type-def dimensions='1' type-id='e0d59f72' size-in-bits='infinite' id='5ef3b2ba'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <class-decl name='snd_card' size-in-bits='21440' is-struct='yes' visibility='default' filepath='include/sound/core.h' line='85' column='1' id='5ef8814f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='number' type-id='95e97e5e' visibility='default' filepath='include/sound/core.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='id' type-id='ac1fa8c0' visibility='default' filepath='include/sound/core.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='driver' type-id='ac1fa8c0' visibility='default' filepath='include/sound/core.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='shortname' type-id='16dc656a' visibility='default' filepath='include/sound/core.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='longname' type-id='aa5ff375' visibility='default' filepath='include/sound/core.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='irq_descr' type-id='16dc656a' visibility='default' filepath='include/sound/core.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='mixername' type-id='aa5ff375' visibility='default' filepath='include/sound/core.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2080'>
+          <var-decl name='components' type-id='e3204322' visibility='default' filepath='include/sound/core.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='module' type-id='2730d015' visibility='default' filepath='include/sound/core.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/core.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='private_free' type-id='fde42bf2' visibility='default' filepath='include/sound/core.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='devices' type-id='72f469ec' visibility='default' filepath='include/sound/core.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='ctl_dev' type-id='66e487eb' visibility='default' filepath='include/sound/core.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10752'>
+          <var-decl name='last_numid' type-id='f0981eeb' visibility='default' filepath='include/sound/core.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10816'>
+          <var-decl name='controls_rwsem' type-id='f19fdb93' visibility='default' filepath='include/sound/core.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11328'>
+          <var-decl name='ctl_files_rwlock' type-id='ac16795b' visibility='default' filepath='include/sound/core.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11392'>
+          <var-decl name='controls_count' type-id='95e97e5e' visibility='default' filepath='include/sound/core.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11456'>
+          <var-decl name='user_ctl_alloc_size' type-id='b59d7dce' visibility='default' filepath='include/sound/core.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11520'>
+          <var-decl name='controls' type-id='72f469ec' visibility='default' filepath='include/sound/core.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11648'>
+          <var-decl name='ctl_files' type-id='72f469ec' visibility='default' filepath='include/sound/core.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11776'>
+          <var-decl name='ctl_numids' type-id='d39738ac' visibility='default' filepath='include/sound/core.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11904'>
+          <var-decl name='ctl_hash' type-id='d39738ac' visibility='default' filepath='include/sound/core.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12032'>
+          <var-decl name='ctl_hash_collision' type-id='b50a4934' visibility='default' filepath='include/sound/core.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12096'>
+          <var-decl name='proc_root' type-id='b9608bfc' visibility='default' filepath='include/sound/core.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12160'>
+          <var-decl name='proc_root_link' type-id='d077e928' visibility='default' filepath='include/sound/core.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12224'>
+          <var-decl name='files_list' type-id='72f469ec' visibility='default' filepath='include/sound/core.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12352'>
+          <var-decl name='s_f_ops' type-id='df5f3f5d' visibility='default' filepath='include/sound/core.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12416'>
+          <var-decl name='files_lock' type-id='fb4018a0' visibility='default' filepath='include/sound/core.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12448'>
+          <var-decl name='shutdown' type-id='95e97e5e' visibility='default' filepath='include/sound/core.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12480'>
+          <var-decl name='release_completion' type-id='389faaf7' visibility='default' filepath='include/sound/core.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12544'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/sound/core.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12608'>
+          <var-decl name='card_dev' type-id='66e487eb' visibility='default' filepath='include/sound/core.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19904'>
+          <var-decl name='dev_groups' type-id='db1b7234' visibility='default' filepath='include/sound/core.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20160'>
+          <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/sound/core.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20168'>
+          <var-decl name='managed' type-id='b50a4934' visibility='default' filepath='include/sound/core.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20176'>
+          <var-decl name='releasing' type-id='b50a4934' visibility='default' filepath='include/sound/core.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20192'>
+          <var-decl name='sync_irq' type-id='95e97e5e' visibility='default' filepath='include/sound/core.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20224'>
+          <var-decl name='remove_sleep' type-id='b5ab048f' visibility='default' filepath='include/sound/core.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20416'>
+          <var-decl name='total_pcm_alloc_bytes' type-id='b59d7dce' visibility='default' filepath='include/sound/core.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20480'>
+          <var-decl name='memory_mutex' type-id='925167dc' visibility='default' filepath='include/sound/core.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20864'>
+          <var-decl name='power_state' type-id='f0981eeb' visibility='default' filepath='include/sound/core.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20896'>
+          <var-decl name='power_ref' type-id='49178f86' visibility='default' filepath='include/sound/core.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20928'>
+          <var-decl name='power_sleep' type-id='b5ab048f' visibility='default' filepath='include/sound/core.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21120'>
+          <var-decl name='power_ref_sleep' type-id='b5ab048f' visibility='default' filepath='include/sound/core.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21312'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/core.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21376'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/sound/core.h' line='155' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5efd72bb'>
+        <parameter type-id='fa0b179b' name='dev'/>
+        <parameter type-id='51a94113' name='args'/>
+        <return type-id='503ff1ba'/>
+      </function-type>
+      <pointer-type-def type-id='adc533fc' size-in-bits='64' id='5f0a40de'/>
+      <pointer-type-def type-id='d06eb7e7' size-in-bits='64' id='5f0c5b93'/>
+      <class-decl name='gic_chip_data' is-struct='yes' visibility='default' is-declaration-only='yes' id='5f0ccb86'/>
+      <pointer-type-def type-id='538b7809' size-in-bits='64' id='5f0d472d'/>
+      <class-decl name='fsverity_operations' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/fsverity.h' line='18' column='1' id='5f0d764c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='begin_enable_verity' type-id='4da4101d' visibility='default' filepath='include/linux/fsverity.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='end_enable_verity' type-id='f3a5c46a' visibility='default' filepath='include/linux/fsverity.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='get_verity_descriptor' type-id='c60354f3' visibility='default' filepath='include/linux/fsverity.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='read_merkle_tree_page' type-id='68b31938' visibility='default' filepath='include/linux/fsverity.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='write_merkle_tree_block' type-id='c748f227' visibility='default' filepath='include/linux/fsverity.h' line='110' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5f0e1af8'>
+        <parameter type-id='2a9f6bcb'/>
+        <parameter type-id='c0a9211d'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/asm-generic/pgtable-nopud.h' line='16' column='1' id='5f20754d' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='p4d' type-id='09938fc7' visibility='default' filepath='include/asm-generic/pgtable-nopud.h' line='16' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0caa7082' size-in-bits='64' id='5f29549c'/>
+      <class-decl name='configfs_attribute' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/configfs.h' line='115' column='1' id='5f2e9b8f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ca_name' type-id='80f4b756' visibility='default' filepath='include/linux/configfs.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ca_owner' type-id='2730d015' visibility='default' filepath='include/linux/configfs.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ca_mode' type-id='2594b00f' visibility='default' filepath='include/linux/configfs.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='show' type-id='03385b06' visibility='default' filepath='include/linux/configfs.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='store' type-id='f2e3940a' visibility='default' filepath='include/linux/configfs.h' line='120' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='vm_struct' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/vmalloc.h' line='48' column='1' id='5f2f8da4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='d295dab2' visibility='default' filepath='include/linux/vmalloc.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='addr' type-id='eaa32e2f' visibility='default' filepath='include/linux/vmalloc.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='size' type-id='7359adad' visibility='default' filepath='include/linux/vmalloc.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/vmalloc.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='pages' type-id='9f93c9da' visibility='default' filepath='include/linux/vmalloc.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='nr_pages' type-id='f0981eeb' visibility='default' filepath='include/linux/vmalloc.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='phys_addr' type-id='2522883d' visibility='default' filepath='include/linux/vmalloc.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='caller' type-id='eaa32e2f' visibility='default' filepath='include/linux/vmalloc.h' line='59' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_fract' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='419' column='1' id='5f37256e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='numerator' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='420' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='denominator' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='421' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5f4720b2'>
+        <parameter type-id='49a58c0c'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4fb62cb0' size-in-bits='64' id='5f493a9f'/>
+      <enum-decl name='tcp_ca_event' filepath='include/net/tcp.h' line='975' column='1' id='5f51e977'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='CA_EVENT_TX_START' value='0'/>
+        <enumerator name='CA_EVENT_CWND_RESTART' value='1'/>
+        <enumerator name='CA_EVENT_COMPLETE_CWR' value='2'/>
+        <enumerator name='CA_EVENT_LOSS' value='3'/>
+        <enumerator name='CA_EVENT_ECN_NO_CE' value='4'/>
+        <enumerator name='CA_EVENT_ECN_IS_CE' value='5'/>
+      </enum-decl>
+      <pointer-type-def type-id='ebcc73dc' size-in-bits='64' id='5f5506f6'/>
+      <class-decl name='inode_operations' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2104' column='1' id='5f5aa1ff'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lookup' type-id='02f90a61' visibility='default' filepath='include/linux/fs.h' line='2105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='get_link' type-id='76ae8e1d' visibility='default' filepath='include/linux/fs.h' line='2106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='permission' type-id='a210f03c' visibility='default' filepath='include/linux/fs.h' line='2107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get_acl' type-id='4f8933db' visibility='default' filepath='include/linux/fs.h' line='2108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='readlink' type-id='a57bd028' visibility='default' filepath='include/linux/fs.h' line='2110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='create' type-id='873d6532' visibility='default' filepath='include/linux/fs.h' line='2112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='link' type-id='4b872e00' visibility='default' filepath='include/linux/fs.h' line='2114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='unlink' type-id='7f5be7f6' visibility='default' filepath='include/linux/fs.h' line='2115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='symlink' type-id='a749fdca' visibility='default' filepath='include/linux/fs.h' line='2116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='mkdir' type-id='e068a947' visibility='default' filepath='include/linux/fs.h' line='2118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='rmdir' type-id='7f5be7f6' visibility='default' filepath='include/linux/fs.h' line='2120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='mknod' type-id='0496a3e0' visibility='default' filepath='include/linux/fs.h' line='2121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='rename' type-id='25a3fd6e' visibility='default' filepath='include/linux/fs.h' line='2123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='setattr' type-id='bbc2dc04' visibility='default' filepath='include/linux/fs.h' line='2125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='getattr' type-id='d6a129cc' visibility='default' filepath='include/linux/fs.h' line='2127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='listxattr' type-id='3494e4bb' visibility='default' filepath='include/linux/fs.h' line='2129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='fiemap' type-id='0508acce' visibility='default' filepath='include/linux/fs.h' line='2130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='update_time' type-id='64ecf6a5' visibility='default' filepath='include/linux/fs.h' line='2132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='atomic_open' type-id='d3807eb0' visibility='default' filepath='include/linux/fs.h' line='2133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='tmpfile' type-id='e068a947' visibility='default' filepath='include/linux/fs.h' line='2136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='set_acl' type-id='920ffb2e' visibility='default' filepath='include/linux/fs.h' line='2138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='fileattr_set' type-id='3511de75' visibility='default' filepath='include/linux/fs.h' line='2140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='fileattr_get' type-id='4d01b8d2' visibility='default' filepath='include/linux/fs.h' line='2142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2147' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5f5b9bdb'>
+        <parameter type-id='a6711537'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='kstat' size-in-bits='1152' is-struct='yes' visibility='default' filepath='include/linux/stat.h' line='22' column='1' id='5f5c9d88'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='result_mask' type-id='19c2251e' visibility='default' filepath='include/linux/stat.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='mode' type-id='2594b00f' visibility='default' filepath='include/linux/stat.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nlink' type-id='f0981eeb' visibility='default' filepath='include/linux/stat.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='blksize' type-id='8f92235e' visibility='default' filepath='include/linux/stat.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='attributes' type-id='91ce1af9' visibility='default' filepath='include/linux/stat.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='attributes_mask' type-id='91ce1af9' visibility='default' filepath='include/linux/stat.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ino' type-id='91ce1af9' visibility='default' filepath='include/linux/stat.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dev' type-id='8504f260' visibility='default' filepath='include/linux/stat.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='rdev' type-id='8504f260' visibility='default' filepath='include/linux/stat.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='uid' type-id='d80b72e6' visibility='default' filepath='include/linux/stat.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='gid' type-id='094d8048' visibility='default' filepath='include/linux/stat.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='size' type-id='69bf7bee' visibility='default' filepath='include/linux/stat.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='atime' type-id='40a816ad' visibility='default' filepath='include/linux/stat.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='mtime' type-id='40a816ad' visibility='default' filepath='include/linux/stat.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='ctime' type-id='40a816ad' visibility='default' filepath='include/linux/stat.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='btime' type-id='40a816ad' visibility='default' filepath='include/linux/stat.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='blocks' type-id='91ce1af9' visibility='default' filepath='include/linux/stat.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='mnt_id' type-id='91ce1af9' visibility='default' filepath='include/linux/stat.h' line='52' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='310f54fd' size-in-bits='64' id='5f5ca3c1'/>
+      <class-decl name='btf_type' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/btf.h' line='31' column='1' id='5f6b1830'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/btf.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='info' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/btf.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab689' visibility='default' filepath='include/uapi/linux/btf.h' line='49' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='iova_entry_dtor' type-id='08b16374' filepath='include/linux/iova.h' line='44' column='1' id='5f724086'/>
+      <enum-decl name='query_opcode' filepath='drivers/scsi/ufs/ufs.h' line='393' column='1' id='5f757f13'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='UPIU_QUERY_OPCODE_NOP' value='0'/>
+        <enumerator name='UPIU_QUERY_OPCODE_READ_DESC' value='1'/>
+        <enumerator name='UPIU_QUERY_OPCODE_WRITE_DESC' value='2'/>
+        <enumerator name='UPIU_QUERY_OPCODE_READ_ATTR' value='3'/>
+        <enumerator name='UPIU_QUERY_OPCODE_WRITE_ATTR' value='4'/>
+        <enumerator name='UPIU_QUERY_OPCODE_READ_FLAG' value='5'/>
+        <enumerator name='UPIU_QUERY_OPCODE_SET_FLAG' value='6'/>
+        <enumerator name='UPIU_QUERY_OPCODE_CLEAR_FLAG' value='7'/>
+        <enumerator name='UPIU_QUERY_OPCODE_TOGGLE_FLAG' value='8'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='b7a93b96' size-in-bits='infinite' id='5f759053'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='5f7638f8'>
+        <parameter type-id='bff05edb'/>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='b3240f74'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='power_supply_property' filepath='include/linux/power_supply.h' line='103' column='1' id='5f78aa17'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='POWER_SUPPLY_PROP_STATUS' value='0'/>
+        <enumerator name='POWER_SUPPLY_PROP_CHARGE_TYPE' value='1'/>
+        <enumerator name='POWER_SUPPLY_PROP_HEALTH' value='2'/>
+        <enumerator name='POWER_SUPPLY_PROP_PRESENT' value='3'/>
+        <enumerator name='POWER_SUPPLY_PROP_ONLINE' value='4'/>
+        <enumerator name='POWER_SUPPLY_PROP_AUTHENTIC' value='5'/>
+        <enumerator name='POWER_SUPPLY_PROP_TECHNOLOGY' value='6'/>
+        <enumerator name='POWER_SUPPLY_PROP_CYCLE_COUNT' value='7'/>
+        <enumerator name='POWER_SUPPLY_PROP_VOLTAGE_MAX' value='8'/>
+        <enumerator name='POWER_SUPPLY_PROP_VOLTAGE_MIN' value='9'/>
+        <enumerator name='POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN' value='10'/>
+        <enumerator name='POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN' value='11'/>
+        <enumerator name='POWER_SUPPLY_PROP_VOLTAGE_NOW' value='12'/>
+        <enumerator name='POWER_SUPPLY_PROP_VOLTAGE_AVG' value='13'/>
+        <enumerator name='POWER_SUPPLY_PROP_VOLTAGE_OCV' value='14'/>
+        <enumerator name='POWER_SUPPLY_PROP_VOLTAGE_BOOT' value='15'/>
+        <enumerator name='POWER_SUPPLY_PROP_CURRENT_MAX' value='16'/>
+        <enumerator name='POWER_SUPPLY_PROP_CURRENT_NOW' value='17'/>
+        <enumerator name='POWER_SUPPLY_PROP_CURRENT_AVG' value='18'/>
+        <enumerator name='POWER_SUPPLY_PROP_CURRENT_BOOT' value='19'/>
+        <enumerator name='POWER_SUPPLY_PROP_POWER_NOW' value='20'/>
+        <enumerator name='POWER_SUPPLY_PROP_POWER_AVG' value='21'/>
+        <enumerator name='POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN' value='22'/>
+        <enumerator name='POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN' value='23'/>
+        <enumerator name='POWER_SUPPLY_PROP_CHARGE_FULL' value='24'/>
+        <enumerator name='POWER_SUPPLY_PROP_CHARGE_EMPTY' value='25'/>
+        <enumerator name='POWER_SUPPLY_PROP_CHARGE_NOW' value='26'/>
+        <enumerator name='POWER_SUPPLY_PROP_CHARGE_AVG' value='27'/>
+        <enumerator name='POWER_SUPPLY_PROP_CHARGE_COUNTER' value='28'/>
+        <enumerator name='POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT' value='29'/>
+        <enumerator name='POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX' value='30'/>
+        <enumerator name='POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE' value='31'/>
+        <enumerator name='POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX' value='32'/>
+        <enumerator name='POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT' value='33'/>
+        <enumerator name='POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT_MAX' value='34'/>
+        <enumerator name='POWER_SUPPLY_PROP_CHARGE_CONTROL_START_THRESHOLD' value='35'/>
+        <enumerator name='POWER_SUPPLY_PROP_CHARGE_CONTROL_END_THRESHOLD' value='36'/>
+        <enumerator name='POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT' value='37'/>
+        <enumerator name='POWER_SUPPLY_PROP_INPUT_VOLTAGE_LIMIT' value='38'/>
+        <enumerator name='POWER_SUPPLY_PROP_INPUT_POWER_LIMIT' value='39'/>
+        <enumerator name='POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN' value='40'/>
+        <enumerator name='POWER_SUPPLY_PROP_ENERGY_EMPTY_DESIGN' value='41'/>
+        <enumerator name='POWER_SUPPLY_PROP_ENERGY_FULL' value='42'/>
+        <enumerator name='POWER_SUPPLY_PROP_ENERGY_EMPTY' value='43'/>
+        <enumerator name='POWER_SUPPLY_PROP_ENERGY_NOW' value='44'/>
+        <enumerator name='POWER_SUPPLY_PROP_ENERGY_AVG' value='45'/>
+        <enumerator name='POWER_SUPPLY_PROP_CAPACITY' value='46'/>
+        <enumerator name='POWER_SUPPLY_PROP_CAPACITY_ALERT_MIN' value='47'/>
+        <enumerator name='POWER_SUPPLY_PROP_CAPACITY_ALERT_MAX' value='48'/>
+        <enumerator name='POWER_SUPPLY_PROP_CAPACITY_ERROR_MARGIN' value='49'/>
+        <enumerator name='POWER_SUPPLY_PROP_CAPACITY_LEVEL' value='50'/>
+        <enumerator name='POWER_SUPPLY_PROP_TEMP' value='51'/>
+        <enumerator name='POWER_SUPPLY_PROP_TEMP_MAX' value='52'/>
+        <enumerator name='POWER_SUPPLY_PROP_TEMP_MIN' value='53'/>
+        <enumerator name='POWER_SUPPLY_PROP_TEMP_ALERT_MIN' value='54'/>
+        <enumerator name='POWER_SUPPLY_PROP_TEMP_ALERT_MAX' value='55'/>
+        <enumerator name='POWER_SUPPLY_PROP_TEMP_AMBIENT' value='56'/>
+        <enumerator name='POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MIN' value='57'/>
+        <enumerator name='POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MAX' value='58'/>
+        <enumerator name='POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW' value='59'/>
+        <enumerator name='POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG' value='60'/>
+        <enumerator name='POWER_SUPPLY_PROP_TIME_TO_FULL_NOW' value='61'/>
+        <enumerator name='POWER_SUPPLY_PROP_TIME_TO_FULL_AVG' value='62'/>
+        <enumerator name='POWER_SUPPLY_PROP_TYPE' value='63'/>
+        <enumerator name='POWER_SUPPLY_PROP_USB_TYPE' value='64'/>
+        <enumerator name='POWER_SUPPLY_PROP_SCOPE' value='65'/>
+        <enumerator name='POWER_SUPPLY_PROP_PRECHARGE_CURRENT' value='66'/>
+        <enumerator name='POWER_SUPPLY_PROP_CHARGE_TERM_CURRENT' value='67'/>
+        <enumerator name='POWER_SUPPLY_PROP_CALIBRATE' value='68'/>
+        <enumerator name='POWER_SUPPLY_PROP_MANUFACTURE_YEAR' value='69'/>
+        <enumerator name='POWER_SUPPLY_PROP_MANUFACTURE_MONTH' value='70'/>
+        <enumerator name='POWER_SUPPLY_PROP_MANUFACTURE_DAY' value='71'/>
+        <enumerator name='POWER_SUPPLY_PROP_MODEL_NAME' value='72'/>
+        <enumerator name='POWER_SUPPLY_PROP_MANUFACTURER' value='73'/>
+        <enumerator name='POWER_SUPPLY_PROP_SERIAL_NUMBER' value='74'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='ac1c7ae1' size-in-bits='infinite' id='5f7bfbc1'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='5f81edee'>
+        <parameter type-id='63a08bf7'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='v4l2_timecode' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='875' column='1' id='5f820012'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='876' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='877' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='frames' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/videodev2.h' line='878' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='seconds' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/videodev2.h' line='879' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='minutes' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/videodev2.h' line='880' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='hours' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/videodev2.h' line='881' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='userbits' type-id='c213d3d4' visibility='default' filepath='include/uapi/linux/videodev2.h' line='882' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='dma_buf_attach_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/dma-buf.h' line='543' column='1' id='5f8345aa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='allow_peer2peer' type-id='b50a4934' visibility='default' filepath='include/linux/dma-buf.h' line='550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='move_notify' type-id='213608e4' visibility='default' filepath='include/linux/dma-buf.h' line='570' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/dma-buf.h' line='571' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='58ba85d8' size-in-bits='64' id='5f880e0e'/>
+      <pointer-type-def type-id='0c1d8f67' size-in-bits='64' id='5f889637'/>
+      <pointer-type-def type-id='6b2a4486' size-in-bits='64' id='5f8a1ac4'/>
+      <class-decl name='flowi4' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/flow.h' line='69' column='1' id='5f8f2c58'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='__fl_common' type-id='184ee240' visibility='default' filepath='include/net/flow.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='saddr' type-id='78a133c2' visibility='default' filepath='include/net/flow.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='daddr' type-id='78a133c2' visibility='default' filepath='include/net/flow.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='uli' type-id='76355708' visibility='default' filepath='include/net/flow.h' line='87' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__va_list' size-in-bits='256' is-struct='yes' visibility='default' id='5f919c1f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='__stack' type-id='eaa32e2f' visibility='default' filepath='drivers/firmware/efi/libstub/efi-stub-helper.c' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='__gr_top' type-id='eaa32e2f' visibility='default' filepath='drivers/firmware/efi/libstub/efi-stub-helper.c' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='__vr_top' type-id='eaa32e2f' visibility='default' filepath='drivers/firmware/efi/libstub/efi-stub-helper.c' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='__gr_offs' type-id='95e97e5e' visibility='default' filepath='drivers/firmware/efi/libstub/efi-stub-helper.c' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='__vr_offs' type-id='95e97e5e' visibility='default' filepath='drivers/firmware/efi/libstub/efi-stub-helper.c' line='137' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='124bcd53' size-in-bits='64' id='5f9265d7'/>
+      <pointer-type-def type-id='d5c7d653' size-in-bits='64' id='5fa1787f'/>
+      <function-type size-in-bits='64' id='5fa1c03a'>
+        <parameter type-id='af051c69'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <function-type size-in-bits='64' id='5fa4ba0d'>
+        <parameter type-id='abd62a96'/>
+        <parameter type-id='9e99ecc1'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='77784eb9' size-in-bits='64' id='5fb34715'/>
+      <class-decl name='regmap_irq' size-in-bits='288' is-struct='yes' visibility='default' filepath='include/linux/regmap.h' line='1393' column='1' id='5fb55d48'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reg_offset' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1394' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='mask' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='type' type-id='ecdf025d' visibility='default' filepath='include/linux/regmap.h' line='1396' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='5fbbd9b8'>
+        <parameter type-id='19e05b5f'/>
+        <parameter type-id='4ffae8c8'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='utp_upiu_query' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='45' column='1' id='5fc79e81'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='opcode' type-id='8f048e17' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='idn' type-id='8f048e17' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='index' type-id='8f048e17' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='selector' type-id='8f048e17' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='reserved_osf' type-id='84a5c3d4' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='length' type-id='84a5c3d4' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='value' type-id='78a133c2' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='reserved' type-id='f41331a9' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='53' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a07d0491' size-in-bits='64' id='5fce7261'/>
+      <array-type-def dimensions='1' type-id='094d8048' size-in-bits='64' id='5fd0d2fb'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='e5f6c4d2' size-in-bits='64' id='5fe73d20'/>
+      <class-decl name='event_filter' size-in-bits='128' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='1287' column='1' id='5ff1273a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prog' type-id='efd0fdec' visibility='default' filepath='kernel/trace/trace.h' line='1288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='filter_string' type-id='26a90f95' visibility='default' filepath='kernel/trace/trace.h' line='1289' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='458c097a' size-in-bits='64' id='5ffcd66c'/>
+      <function-type size-in-bits='64' id='5fffc559'>
+        <parameter type-id='2ce52478'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='3c330066'/>
+        <parameter type-id='8bff8096'/>
+        <parameter type-id='1f37a7f4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='60023af2'>
+        <parameter type-id='11777d05'/>
+        <parameter type-id='6e160b14'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='d39738ac' size-in-bits='64' id='60075f2a'/>
+      <pointer-type-def type-id='adff645d' size-in-bits='64' id='600b2755'/>
+      <pointer-type-def type-id='a6dcac82' size-in-bits='64' id='601c5a9c'/>
+      <pointer-type-def type-id='aac6e642' size-in-bits='64' id='601d7eac'/>
+      <pointer-type-def type-id='818799b4' size-in-bits='64' id='60219102'/>
+      <qualified-type-def type-id='74191d27' const='yes' id='60263890'/>
+      <class-decl name='xt_target' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='182' column='1' id='60289ffb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='cff94a5f' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='360'>
+          <var-decl name='revision' type-id='892641a4' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='target' type-id='73cc7ee4' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='checkentry' type-id='ef16e31e' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='destroy' type-id='6307fc3e' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='compat_from_user' type-id='debb4ee8' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='compat_to_user' type-id='585e1de9' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='me' type-id='2730d015' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='table' type-id='80f4b756' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='targetsize' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='usersize' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='compatsize' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='hooks' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='proto' type-id='8efea9e5' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='976'>
+          <var-decl name='family' type-id='8efea9e5' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='219' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9cb37f3f' size-in-bits='64' id='602c5ebb'/>
+      <function-type size-in-bits='64' id='603a76bb'>
+        <parameter type-id='33c599da'/>
+        <parameter type-id='a42536cd'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='313c6196'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='cdec0c9c' size-in-bits='64' id='603c345a'/>
+      <pointer-type-def type-id='a60315e1' size-in-bits='64' id='603e39d9'/>
+      <pointer-type-def type-id='df58f5a2' size-in-bits='64' id='60403ce4'/>
+      <qualified-type-def type-id='f6e7855b' const='yes' id='60407282'/>
+      <class-decl name='zone_padding' is-struct='yes' visibility='default' filepath='include/linux/mmzone.h' line='127' column='1' id='6041cd25'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='x' type-id='e84913bd' visibility='default' filepath='include/linux/mmzone.h' line='128' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='47d2043e' size-in-bits='64' id='604374c8'/>
+      <pointer-type-def type-id='616cdd90' size-in-bits='64' id='6045f216'/>
+      <pointer-type-def type-id='dd8f90df' size-in-bits='64' id='6046ed73'/>
+      <pointer-type-def type-id='ee9d520a' size-in-bits='64' id='6047a55c'/>
+      <class-decl name='drm_mm_node' size-in-bits='1344' is-struct='yes' visibility='default' filepath='include/drm/drm_mm.h' line='155' column='1' id='60498a7e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='color' type-id='7359adad' visibility='default' filepath='include/drm/drm_mm.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='start' type-id='91ce1af9' visibility='default' filepath='include/drm/drm_mm.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='size' type-id='91ce1af9' visibility='default' filepath='include/drm/drm_mm.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mm' type-id='0ee978f1' visibility='default' filepath='include/drm/drm_mm.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='node_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_mm.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='hole_stack' type-id='72f469ec' visibility='default' filepath='include/drm/drm_mm.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='rb' type-id='2a8a6332' visibility='default' filepath='include/drm/drm_mm.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='rb_hole_size' type-id='2a8a6332' visibility='default' filepath='include/drm/drm_mm.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='rb_hole_addr' type-id='2a8a6332' visibility='default' filepath='include/drm/drm_mm.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='__subtree_last' type-id='91ce1af9' visibility='default' filepath='include/drm/drm_mm.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='hole_size' type-id='91ce1af9' visibility='default' filepath='include/drm/drm_mm.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='subtree_max_hole' type-id='91ce1af9' visibility='default' filepath='include/drm/drm_mm.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/drm/drm_mm.h' line='172' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_gem_shmem_object' size-in-bits='4032' is-struct='yes' visibility='default' filepath='include/drm/drm_gem_shmem_helper.h' line='23' column='1' id='604ba0d1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='3bc524c0' visibility='default' filepath='include/drm/drm_gem_shmem_helper.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='pages_lock' type-id='925167dc' visibility='default' filepath='include/drm/drm_gem_shmem_helper.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='pages' type-id='9f93c9da' visibility='default' filepath='include/drm/drm_gem_shmem_helper.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='pages_use_count' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_gem_shmem_helper.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3232'>
+          <var-decl name='madv' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_gem_shmem_helper.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='madv_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_gem_shmem_helper.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='pages_mark_dirty_on_put' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_gem_shmem_helper.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3393'>
+          <var-decl name='pages_mark_accessed_on_put' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_gem_shmem_helper.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='sgt' type-id='4adb0e6a' visibility='default' filepath='include/drm/drm_gem_shmem_helper.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='vmap_lock' type-id='925167dc' visibility='default' filepath='include/drm/drm_gem_shmem_helper.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3904'>
+          <var-decl name='vaddr' type-id='eaa32e2f' visibility='default' filepath='include/drm/drm_gem_shmem_helper.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='vmap_use_count' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_gem_shmem_helper.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4000'>
+          <var-decl name='map_wc' type-id='b50a4934' visibility='default' filepath='include/drm/drm_gem_shmem_helper.h' line='103' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='604bba92'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='fac731d6'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='8b0a6709' size-in-bits='64' id='6054c43d'/>
+      <class-decl name='trace_iterator' size-in-bits='67840' is-struct='yes' visibility='default' filepath='include/linux/trace_events.h' line='81' column='1' id='60588bb1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tr' type-id='898c1076' visibility='default' filepath='include/linux/trace_events.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='trace' type-id='0a18715a' visibility='default' filepath='include/linux/trace_events.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='array_buffer' type-id='5c928f21' visibility='default' filepath='include/linux/trace_events.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='private' type-id='eaa32e2f' visibility='default' filepath='include/linux/trace_events.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='cpu_file' type-id='95e97e5e' visibility='default' filepath='include/linux/trace_events.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='include/linux/trace_events.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='buffer_iter' type-id='93407a41' visibility='default' filepath='include/linux/trace_events.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='iter_flags' type-id='7359adad' visibility='default' filepath='include/linux/trace_events.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='temp' type-id='eaa32e2f' visibility='default' filepath='include/linux/trace_events.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='temp_size' type-id='f0981eeb' visibility='default' filepath='include/linux/trace_events.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='fmt' type-id='26a90f95' visibility='default' filepath='include/linux/trace_events.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='fmt_size' type-id='f0981eeb' visibility='default' filepath='include/linux/trace_events.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='tmp_seq' type-id='c5078f42' visibility='default' filepath='include/linux/trace_events.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='34176'>
+          <var-decl name='started' type-id='b16b461b' visibility='default' filepath='include/linux/trace_events.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='34240'>
+          <var-decl name='snapshot' type-id='b50a4934' visibility='default' filepath='include/linux/trace_events.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='34304'>
+          <var-decl name='seq' type-id='c5078f42' visibility='default' filepath='include/linux/trace_events.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='67392'>
+          <var-decl name='ent' type-id='aa4b1eb5' visibility='default' filepath='include/linux/trace_events.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='67456'>
+          <var-decl name='lost_events' type-id='7359adad' visibility='default' filepath='include/linux/trace_events.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='67520'>
+          <var-decl name='leftover' type-id='95e97e5e' visibility='default' filepath='include/linux/trace_events.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='67552'>
+          <var-decl name='ent_size' type-id='95e97e5e' visibility='default' filepath='include/linux/trace_events.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='67584'>
+          <var-decl name='cpu' type-id='95e97e5e' visibility='default' filepath='include/linux/trace_events.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='67648'>
+          <var-decl name='ts' type-id='91ce1af9' visibility='default' filepath='include/linux/trace_events.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='67712'>
+          <var-decl name='pos' type-id='69bf7bee' visibility='default' filepath='include/linux/trace_events.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='67776'>
+          <var-decl name='idx' type-id='bd54fe1a' visibility='default' filepath='include/linux/trace_events.h' line='113' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='posix_acl' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/posix_acl.h' line='29' column='1' id='605b61bb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='a_refcount' type-id='64615833' visibility='default' filepath='include/linux/posix_acl.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='a_rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/posix_acl.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='a_count' type-id='f0981eeb' visibility='default' filepath='include/linux/posix_acl.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='a_entries' type-id='a51f6b3c' visibility='default' filepath='include/linux/posix_acl.h' line='33' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b774cf8c' size-in-bits='64' id='606936f6'/>
+      <function-type size-in-bits='64' id='6071dd22'>
+        <parameter type-id='9ad862e7'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='607834f2'>
+        <parameter type-id='a47d3467'/>
+        <parameter type-id='e84b031a'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='vhost_dev' size-in-bits='1728' is-struct='yes' visibility='default' filepath='drivers/vhost/vhost.h' line='149' column='1' id='607aa943'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mm' type-id='df4b7819' visibility='default' filepath='drivers/vhost/vhost.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='drivers/vhost/vhost.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='vqs' type-id='3f18c0ee' visibility='default' filepath='drivers/vhost/vhost.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='nvqs' type-id='95e97e5e' visibility='default' filepath='drivers/vhost/vhost.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='log_ctx' type-id='71f2e203' visibility='default' filepath='drivers/vhost/vhost.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='work_list' type-id='77df194e' visibility='default' filepath='drivers/vhost/vhost.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='worker' type-id='f23e2572' visibility='default' filepath='drivers/vhost/vhost.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='umem' type-id='c0da0f6c' visibility='default' filepath='drivers/vhost/vhost.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='iotlb' type-id='c0da0f6c' visibility='default' filepath='drivers/vhost/vhost.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='iotlb_lock' type-id='fb4018a0' visibility='default' filepath='drivers/vhost/vhost.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='read_list' type-id='72f469ec' visibility='default' filepath='drivers/vhost/vhost.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='pending_list' type-id='72f469ec' visibility='default' filepath='drivers/vhost/vhost.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='wait' type-id='b5ab048f' visibility='default' filepath='drivers/vhost/vhost.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='iov_limit' type-id='95e97e5e' visibility='default' filepath='drivers/vhost/vhost.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='weight' type-id='95e97e5e' visibility='default' filepath='drivers/vhost/vhost.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='byte_weight' type-id='95e97e5e' visibility='default' filepath='drivers/vhost/vhost.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='kcov_handle' type-id='91ce1af9' visibility='default' filepath='drivers/vhost/vhost.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='use_worker' type-id='b50a4934' visibility='default' filepath='drivers/vhost/vhost.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='msg_handler' type-id='850009e4' visibility='default' filepath='drivers/vhost/vhost.h' line='168' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='6081969c'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='11e02f83'/>
+        <parameter type-id='11e02f83'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='7b332e1c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e9f76e3a' size-in-bits='64' id='60824330'/>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='448' id='6093ff7c'>
+        <subrange length='56' type-id='7ff19f0f' id='f8137894'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='91ce1af9' size-in-bits='512' id='6094c99c'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='609e4600'>
+        <parameter type-id='18d76f87'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='c46c1f27' size-in-bits='64' id='60a257ef'/>
+      <array-type-def dimensions='1' type-id='e7d2a5fc' size-in-bits='infinite' id='60a540a8'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <class-decl name='snd_dec_flac' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/sound/compress_params.h' line='325' column='1' id='60b3851a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sample_size' type-id='d315442e' visibility='default' filepath='include/uapi/sound/compress_params.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='min_blk_size' type-id='d315442e' visibility='default' filepath='include/uapi/sound/compress_params.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='max_blk_size' type-id='d315442e' visibility='default' filepath='include/uapi/sound/compress_params.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='min_frame_size' type-id='d315442e' visibility='default' filepath='include/uapi/sound/compress_params.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max_frame_size' type-id='d315442e' visibility='default' filepath='include/uapi/sound/compress_params.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='reserved' type-id='d315442e' visibility='default' filepath='include/uapi/sound/compress_params.h' line='331' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='regmap_hw_gather_write' type-id='acda35bb' filepath='include/linux/regmap.h' line='467' column='1' id='60be0faa'/>
+      <pointer-type-def type-id='607834f2' size-in-bits='64' id='60c9df2c'/>
+      <class-decl name='hid_input' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='532' column='1' id='60cc85f5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='533' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='report' type-id='5b4284d1' visibility='default' filepath='include/linux/hid.h' line='534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='input' type-id='74b427eb' visibility='default' filepath='include/linux/hid.h' line='535' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/hid.h' line='536' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/linux/hid.h' line='537' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='reports' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='538' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='application' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='539' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='60d50d6a'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='6e39d7a8'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='dcb10fbf' size-in-bits='64' id='60d662f3'/>
+      <function-type size-in-bits='64' id='60d9230d'>
+        <parameter type-id='58ed56f5'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='b70f0c0e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='rlimit' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/resource.h' line='43' column='1' id='60dcbf6c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rlim_cur' type-id='447da2ae' visibility='default' filepath='include/uapi/linux/resource.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rlim_max' type-id='447da2ae' visibility='default' filepath='include/uapi/linux/resource.h' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='80b664d7' size-in-bits='64' id='60eba7df'/>
+      <class-decl name='lockref' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/lockref.h' line='25' column='1' id='60efdfd3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab63d' visibility='default' filepath='include/linux/lockref.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_plane_funcs' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/drm/drm_plane.h' line='271' column='1' id='60eff7ff'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='update_plane' type-id='16723420' visibility='default' filepath='include/drm/drm_plane.h' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='disable_plane' type-id='d58d6a5f' visibility='default' filepath='include/drm/drm_plane.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='destroy' type-id='20e4b16e' visibility='default' filepath='include/drm/drm_plane.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='reset' type-id='20e4b16e' visibility='default' filepath='include/drm/drm_plane.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='set_property' type-id='8f0815d8' visibility='default' filepath='include/drm/drm_plane.h' line='359' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='atomic_duplicate_state' type-id='841501c0' visibility='default' filepath='include/drm/drm_plane.h' line='393' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='atomic_destroy_state' type-id='d196b9c2' visibility='default' filepath='include/drm/drm_plane.h' line='403' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='atomic_set_property' type-id='49e4df08' visibility='default' filepath='include/drm/drm_plane.h' line='448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='atomic_get_property' type-id='a6945abe' visibility='default' filepath='include/drm/drm_plane.h' line='471' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='late_register' type-id='e1ec3697' visibility='default' filepath='include/drm/drm_plane.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='early_unregister' type-id='20e4b16e' visibility='default' filepath='include/drm/drm_plane.h' line='499' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='atomic_print_state' type-id='86c0ad39' visibility='default' filepath='include/drm/drm_plane.h' line='510' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='format_mod_supported' type-id='4af717b2' visibility='default' filepath='include/drm/drm_plane.h' line='529' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_plane' size-in-bits='10560' is-struct='yes' visibility='default' filepath='include/drm/drm_plane.h' line='595' column='1' id='60f2213f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='8898134d' visibility='default' filepath='include/drm/drm_plane.h' line='597' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='head' type-id='72f469ec' visibility='default' filepath='include/drm/drm_plane.h' line='606' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/drm/drm_plane.h' line='609' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mutex' type-id='ae5fc04a' visibility='default' filepath='include/drm/drm_plane.h' line='620' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='base' type-id='350f4182' visibility='default' filepath='include/drm/drm_plane.h' line='623' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='possible_crtcs' type-id='8f92235e' visibility='default' filepath='include/drm/drm_plane.h' line='629' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='format_types' type-id='90421557' visibility='default' filepath='include/drm/drm_plane.h' line='631' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='format_count' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_plane.h' line='633' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='format_default' type-id='b50a4934' visibility='default' filepath='include/drm/drm_plane.h' line='638' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='modifiers' type-id='5d6479ae' visibility='default' filepath='include/drm/drm_plane.h' line='641' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='modifier_count' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_plane.h' line='643' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='crtc' type-id='b64ad7cb' visibility='default' filepath='include/drm/drm_plane.h' line='652' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='fb' type-id='7b332e1c' visibility='default' filepath='include/drm/drm_plane.h' line='661' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='old_fb' type-id='7b332e1c' visibility='default' filepath='include/drm/drm_plane.h' line='669' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='funcs' type-id='cfd5d066' visibility='default' filepath='include/drm/drm_plane.h' line='672' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='properties' type-id='970d3828' visibility='default' filepath='include/drm/drm_plane.h' line='675' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9920'>
+          <var-decl name='type' type-id='5eed3c85' visibility='default' filepath='include/drm/drm_plane.h' line='678' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9952'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_plane.h' line='684' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9984'>
+          <var-decl name='helper_private' type-id='affc31e5' visibility='default' filepath='include/drm/drm_plane.h' line='687' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10048'>
+          <var-decl name='state' type-id='d0835005' visibility='default' filepath='include/drm/drm_plane.h' line='702' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10112'>
+          <var-decl name='alpha_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_plane.h' line='709' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10176'>
+          <var-decl name='zpos_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_plane.h' line='715' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10240'>
+          <var-decl name='rotation_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_plane.h' line='721' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10304'>
+          <var-decl name='blend_mode_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_plane.h' line='729' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10368'>
+          <var-decl name='color_encoding_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_plane.h' line='738' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10432'>
+          <var-decl name='color_range_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_plane.h' line='746' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10496'>
+          <var-decl name='scaling_filter_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_plane.h' line='752' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='0ee978f1' const='yes' id='60f31a4e'/>
+      <pointer-type-def type-id='b83c8287' size-in-bits='64' id='60f4096f'/>
+      <pointer-type-def type-id='484cd8ba' size-in-bits='64' id='60f8eab0'/>
+      <class-decl name='kernfs_open_file' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/linux/kernfs.h' line='212' column='1' id='60fb5bfa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kn' type-id='150efd3f' visibility='default' filepath='include/linux/kernfs.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='file' type-id='77e79a4b' visibility='default' filepath='include/linux/kernfs.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='seq_file' type-id='f8dc9def' visibility='default' filepath='include/linux/kernfs.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/kernfs.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='include/linux/kernfs.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='prealloc_mutex' type-id='925167dc' visibility='default' filepath='include/linux/kernfs.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='event' type-id='95e97e5e' visibility='default' filepath='include/linux/kernfs.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/kernfs.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='prealloc_buf' type-id='26a90f95' visibility='default' filepath='include/linux/kernfs.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='atomic_write_len' type-id='b59d7dce' visibility='default' filepath='include/linux/kernfs.h' line='226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='mmapped' type-id='b50a4934' visibility='default' filepath='include/linux/kernfs.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1345'>
+          <var-decl name='released' type-id='b50a4934' visibility='default' filepath='include/linux/kernfs.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='vm_ops' type-id='9be87662' visibility='default' filepath='include/linux/kernfs.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/kernfs.h' line='231' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e5ceda9f' size-in-bits='64' id='6100aa9b'/>
+      <pointer-type-def type-id='39fc1af7' size-in-bits='64' id='61019833'/>
+      <function-type size-in-bits='64' id='61062930'>
+        <parameter type-id='37a6b980'/>
+        <return type-id='c0ced320'/>
+      </function-type>
+      <class-decl name='avc_node' is-struct='yes' visibility='default' is-declaration-only='yes' id='610abebc'/>
+      <class-decl name='cma' size-in-bits='1024' is-struct='yes' visibility='default' filepath='mm/cma.h' line='13' column='1' id='6110442c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base_pfn' type-id='7359adad' visibility='default' filepath='mm/cma.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='count' type-id='7359adad' visibility='default' filepath='mm/cma.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bitmap' type-id='1d2c2b85' visibility='default' filepath='mm/cma.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='order_per_bit' type-id='f0981eeb' visibility='default' filepath='mm/cma.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='mm/cma.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mem_head' type-id='e151255a' visibility='default' filepath='mm/cma.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mem_head_lock' type-id='fb4018a0' visibility='default' filepath='mm/cma.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dfs_bitmap' type-id='8ea131c0' visibility='default' filepath='mm/cma.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='name' type-id='59daf3ef' visibility='default' filepath='mm/cma.h' line='24' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_private_state_funcs' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/drm/drm_atomic.h' line='209' column='1' id='6110f5ec'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='atomic_duplicate_state' type-id='a20ce8b2' visibility='default' filepath='include/drm/drm_atomic.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='atomic_destroy_state' type-id='dc18a9b0' visibility='default' filepath='include/drm/drm_atomic.h' line='228' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='serio_device_id' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/mod_devicetable.h' line='242' column='1' id='6119d604'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='8f048e17' visibility='default' filepath='include/linux/mod_devicetable.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='extra' type-id='8f048e17' visibility='default' filepath='include/linux/mod_devicetable.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='id' type-id='8f048e17' visibility='default' filepath='include/linux/mod_devicetable.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='proto' type-id='8f048e17' visibility='default' filepath='include/linux/mod_devicetable.h' line='246' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b35335c8' size-in-bits='64' id='611a28de'/>
+      <union-decl name='fscrypt_policy' size-in-bits='192' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='110' column='1' id='61227238'>
+        <data-member access='public'>
+          <var-decl name='version' type-id='f9b06939' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='v1' type-id='74e2c23b' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='v2' type-id='75e2c3ce' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='113' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='fscrypt_policy' visibility='default' is-declaration-only='yes' id='61227239'/>
+      <class-decl name='nvdimm_key_data' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/libnvdimm.h' line='174' column='1' id='61250075'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='data' type-id='e3dc4fdb' visibility='default' filepath='include/linux/libnvdimm.h' line='175' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1d4f5209' size-in-bits='64' id='612567ad'/>
+      <typedef-decl name='depot_stack_handle_t' type-id='19c2251e' filepath='include/linux/stackdepot.h' line='16' column='1' id='613ae993'/>
+      <pointer-type-def type-id='374a88a9' size-in-bits='64' id='613d39f5'/>
+      <pointer-type-def type-id='dd37d315' size-in-bits='64' id='613dff15'/>
+      <array-type-def dimensions='1' type-id='bd54fe1a' size-in-bits='384' id='613ff906'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <pointer-type-def type-id='c1ac25a6' size-in-bits='64' id='614c5efc'/>
+      <function-type size-in-bits='64' id='615707ca'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='7b332e1c'/>
+        <parameter type-id='6301fad2'/>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='d1499e71'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='klist' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/klist.h' line='18' column='1' id='6160a6ce'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='k_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/klist.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='k_list' type-id='72f469ec' visibility='default' filepath='include/linux/klist.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get' type-id='a80942ae' visibility='default' filepath='include/linux/klist.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='put' type-id='a80942ae' visibility='default' filepath='include/linux/klist.h' line='22' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='regmap_irq_chip_data' size-in-bits='3712' is-struct='yes' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='20' column='1' id='6161d888'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='irq_chip' type-id='0f5f7920' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='map' type-id='29af9a71' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='chip' type-id='78965926' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='irq_base' type-id='95e97e5e' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='domain' type-id='7544e824' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='irq' type-id='95e97e5e' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2976'>
+          <var-decl name='wake_count' type-id='95e97e5e' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='status_reg_buf' type-id='eaa32e2f' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='main_status_buf' type-id='807869d3' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='status_buf' type-id='807869d3' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='mask_buf' type-id='807869d3' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='mask_buf_def' type-id='807869d3' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='wake_buf' type-id='807869d3' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='type_buf' type-id='807869d3' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='type_buf_def' type-id='807869d3' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='virt_buf' type-id='368ed2fb' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='irq_reg_stride' type-id='f0981eeb' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3616'>
+          <var-decl name='type_reg_stride' type-id='f0981eeb' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='clear_status' type-id='b50a4934' visibility='default' filepath='drivers/base/regmap/regmap-irq.c' line='46' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='616601a4'>
+        <parameter type-id='8582e5ec'/>
+        <parameter type-id='67bbaeda'/>
+        <parameter type-id='35078cb9'/>
+        <parameter type-id='249ef586'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='f9409001'/>
+      </function-type>
+      <qualified-type-def type-id='edd6cd80' const='yes' id='61675bc7'/>
+      <function-type size-in-bits='64' id='6167e1dd'>
+        <parameter type-id='04b6a8dc'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='03c386c6'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='regulator_enable_gpio' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/regulator/core.c' line='64' column='1' id='616cdd90'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='drivers/regulator/core.c' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='gpiod' type-id='26760480' visibility='default' filepath='drivers/regulator/core.c' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='enable_count' type-id='19c2251e' visibility='default' filepath='drivers/regulator/core.c' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='request_count' type-id='19c2251e' visibility='default' filepath='drivers/regulator/core.c' line='68' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='415476f4' size-in-bits='64' id='616ec7d2'/>
+      <pointer-type-def type-id='b8ae588d' size-in-bits='64' id='61758ee5'/>
+      <function-type size-in-bits='64' id='617b50f4'>
+        <parameter type-id='b94a2f7c'/>
+        <parameter type-id='f8dc9def'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='a86c90a5' size-in-bits='2048' id='61821d52'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <qualified-type-def type-id='8d2c0dd2' const='yes' id='61872327'/>
+      <enum-decl name='tca_id' filepath='include/uapi/linux/pkt_cls.h' line='116' column='1' id='618a2054'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='TCA_ID_UNSPEC' value='0'/>
+        <enumerator name='TCA_ID_POLICE' value='1'/>
+        <enumerator name='TCA_ID_GACT' value='5'/>
+        <enumerator name='TCA_ID_IPT' value='6'/>
+        <enumerator name='TCA_ID_PEDIT' value='7'/>
+        <enumerator name='TCA_ID_MIRRED' value='8'/>
+        <enumerator name='TCA_ID_NAT' value='9'/>
+        <enumerator name='TCA_ID_XT' value='10'/>
+        <enumerator name='TCA_ID_SKBEDIT' value='11'/>
+        <enumerator name='TCA_ID_VLAN' value='12'/>
+        <enumerator name='TCA_ID_BPF' value='13'/>
+        <enumerator name='TCA_ID_CONNMARK' value='14'/>
+        <enumerator name='TCA_ID_SKBMOD' value='15'/>
+        <enumerator name='TCA_ID_CSUM' value='16'/>
+        <enumerator name='TCA_ID_TUNNEL_KEY' value='17'/>
+        <enumerator name='TCA_ID_SIMP' value='22'/>
+        <enumerator name='TCA_ID_IFE' value='25'/>
+        <enumerator name='TCA_ID_SAMPLE' value='26'/>
+        <enumerator name='TCA_ID_CTINFO' value='27'/>
+        <enumerator name='TCA_ID_MPLS' value='28'/>
+        <enumerator name='TCA_ID_CT' value='29'/>
+        <enumerator name='TCA_ID_GATE' value='30'/>
+        <enumerator name='__TCA_ID_MAX' value='255'/>
+      </enum-decl>
+      <class-decl name='flowi6' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/net/flow.h' line='131' column='1' id='618f2f7e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='__fl_common' type-id='184ee240' visibility='default' filepath='include/net/flow.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='daddr' type-id='f6ed712a' visibility='default' filepath='include/net/flow.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='saddr' type-id='f6ed712a' visibility='default' filepath='include/net/flow.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='flowlabel' type-id='78a133c2' visibility='default' filepath='include/net/flow.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='uli' type-id='76355708' visibility='default' filepath='include/net/flow.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='mp_hash' type-id='3f1a6b60' visibility='default' filepath='include/net/flow.h' line='153' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4bd12e16' size-in-bits='64' id='618f91b8'/>
+      <class-decl name='nvdimm_security_ops' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/libnvdimm.h' line='183' column='1' id='6193579c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='get_flags' type-id='1ac0dc69' visibility='default' filepath='include/linux/libnvdimm.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='freeze' type-id='4f6dfef4' visibility='default' filepath='include/linux/libnvdimm.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='change_key' type-id='e63c1e62' visibility='default' filepath='include/linux/libnvdimm.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='unlock' type-id='b5063f39' visibility='default' filepath='include/linux/libnvdimm.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='disable' type-id='b5063f39' visibility='default' filepath='include/linux/libnvdimm.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='erase' type-id='1f78bfb9' visibility='default' filepath='include/linux/libnvdimm.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='overwrite' type-id='b5063f39' visibility='default' filepath='include/linux/libnvdimm.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='query_overwrite' type-id='4f6dfef4' visibility='default' filepath='include/linux/libnvdimm.h' line='200' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='irq_chip_regs' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/irq.h' line='989' column='1' id='6194fd9a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='enable' type-id='7359adad' visibility='default' filepath='include/linux/irq.h' line='990' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='disable' type-id='7359adad' visibility='default' filepath='include/linux/irq.h' line='991' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mask' type-id='7359adad' visibility='default' filepath='include/linux/irq.h' line='992' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ack' type-id='7359adad' visibility='default' filepath='include/linux/irq.h' line='993' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='eoi' type-id='7359adad' visibility='default' filepath='include/linux/irq.h' line='994' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='type' type-id='7359adad' visibility='default' filepath='include/linux/irq.h' line='995' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='polarity' type-id='7359adad' visibility='default' filepath='include/linux/irq.h' line='996' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c81d9871' size-in-bits='64' id='6196d741'/>
+      <pointer-type-def type-id='322ff019' size-in-bits='64' id='619df3fd'/>
+      <function-type size-in-bits='64' id='61a50456'>
+        <parameter type-id='9ad862e7'/>
+        <parameter type-id='c3e18af8'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4aa6929c' size-in-bits='64' id='61ae4386'/>
+      <function-type size-in-bits='64' id='61b18a3b'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='61c46dd8'>
+        <parameter type-id='f03f21e9'/>
+        <parameter type-id='bbaf3419'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='8bff8096'/>
+        <parameter type-id='807869d3'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='ea65a53c' size-in-bits='64' id='61c8a766'/>
+      <array-type-def dimensions='1' type-id='f22a8abb' size-in-bits='32768' id='61cd76ae'>
+        <subrange length='512' type-id='7ff19f0f' id='c11630dd'/>
+      </array-type-def>
+      <pointer-type-def type-id='2acc6e28' size-in-bits='64' id='61d12d26'/>
+      <array-type-def dimensions='1' type-id='2f162548' size-in-bits='7712' id='61d4b112'>
+        <subrange length='241' type-id='7ff19f0f' id='0a5e8b06'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='61ee6b58'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='b7c1d7d5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='system_device_crosststamp' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/timekeeping.h' line='262' column='1' id='61fea883'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='device' type-id='fbc017ef' visibility='default' filepath='include/linux/timekeeping.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sys_realtime' type-id='fbc017ef' visibility='default' filepath='include/linux/timekeeping.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sys_monoraw' type-id='fbc017ef' visibility='default' filepath='include/linux/timekeeping.h' line='265' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='afbb7720' size-in-bits='64' id='62043706'/>
+      <class-decl name='firmware' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/firmware.h' line='12' column='1' id='62049774'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='include/linux/firmware.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='bbaf3419' visibility='default' filepath='include/linux/firmware.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/firmware.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_cdc_ncm_ndp32' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='392' column='1' id='6208060f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dwSignature' type-id='2f162548' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='393' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='wLength' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='394' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='wReserved6' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dwNextNdpIndex' type-id='2f162548' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='dwReserved12' type-id='2f162548' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='397' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dpe32' type-id='e06f4fa6' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='398' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a35f0003' size-in-bits='64' id='6219347f'/>
+      <pointer-type-def type-id='47de6b15' size-in-bits='64' id='6222d42d'/>
+      <function-type size-in-bits='64' id='62313820'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='b59d7dce'/>
+      </function-type>
+      <pointer-type-def type-id='ad20c773' size-in-bits='64' id='6240ec2f'/>
+      <pointer-type-def type-id='eb0f802b' size-in-bits='64' id='6241aa4f'/>
+      <class-decl name='ptrauth_keys_kernel' size-in-bits='128' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/pointer_auth.h' line='46' column='1' id='624236e8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='apia' type-id='490938eb' visibility='default' filepath='arch/arm64/include/asm/pointer_auth.h' line='47' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bd9eea97' size-in-bits='64' id='624375a3'/>
+      <class-decl name='mipi_dsi_host_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='89' column='1' id='62465d3d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='attach' type-id='43a37dd9' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='detach' type-id='43a37dd9' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='transfer' type-id='a51b5fb8' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='94' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c3d2316f' size-in-bits='64' id='624a8813'/>
+      <function-type size-in-bits='64' id='624c84d3'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='cf536864'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3093472a' size-in-bits='64' id='6253b388'/>
+      <array-type-def dimensions='1' type-id='8f92235e' size-in-bits='512' id='625d6c02'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='626191ca'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='ad168a80'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='irq_chip_type' size-in-bits='2944' is-struct='yes' visibility='default' filepath='include/linux/irq.h' line='1012' column='1' id='62778ae5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='chip' type-id='0f5f7920' visibility='default' filepath='include/linux/irq.h' line='1013' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='regs' type-id='6194fd9a' visibility='default' filepath='include/linux/irq.h' line='1014' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='handler' type-id='cdb741d3' visibility='default' filepath='include/linux/irq.h' line='1015' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='type' type-id='19c2251e' visibility='default' filepath='include/linux/irq.h' line='1016' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2848'>
+          <var-decl name='mask_cache_priv' type-id='19c2251e' visibility='default' filepath='include/linux/irq.h' line='1017' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='mask_cache' type-id='f9409001' visibility='default' filepath='include/linux/irq.h' line='1018' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='627c50fc'>
+        <parameter type-id='0f2a7ce5'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='cc9b8e48' size-in-bits='64' id='627d9f9e'/>
+      <array-type-def dimensions='1' type-id='237c0d27' size-in-bits='8448' id='627ff32f'>
+        <subrange length='66' type-id='7ff19f0f' id='f510d1a1'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='62855293'>
+        <parameter type-id='e7d2a5fc'/>
+        <parameter type-id='4a89adae'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='628f102a'>
+        <parameter type-id='91d0de51'/>
+        <parameter type-id='5f8a1ac4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='2ca9725a' size-in-bits='64' id='628f3294'/>
+      <pointer-type-def type-id='d724f4d0' size-in-bits='64' id='62924a52'/>
+      <class-decl name='kthread_worker' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/kthread.h' line='119' column='1' id='62968721'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/kthread.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/kthread.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='work_list' type-id='72f469ec' visibility='default' filepath='include/linux/kthread.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='delayed_work_list' type-id='72f469ec' visibility='default' filepath='include/linux/kthread.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='task' type-id='f23e2572' visibility='default' filepath='include/linux/kthread.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='current_work' type-id='401eb95c' visibility='default' filepath='include/linux/kthread.h' line='125' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a222e3fe' size-in-bits='64' id='62995e90'/>
+      <class-decl name='sched_avg' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/sched.h' line='483' column='1' id='629c8d83'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='last_update_time' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='484' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='load_sum' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='485' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='runnable_sum' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='util_sum' type-id='19c2251e' visibility='default' filepath='include/linux/sched.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='period_contrib' type-id='19c2251e' visibility='default' filepath='include/linux/sched.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='load_avg' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='runnable_avg' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='util_avg' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='491' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='util_est' type-id='594488ba' visibility='default' filepath='include/linux/sched.h' line='492' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0ee576bb' size-in-bits='64' id='629ca5cb'/>
+      <function-type size-in-bits='64' id='629e5a31'>
+        <parameter type-id='0dc3586b'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='d61bf978'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='4b1b543a' size-in-bits='64' id='62a0dabf'/>
+      <enum-decl name='string_size_units' filepath='include/linux/string_helpers.h' line='14' column='1' id='62b4b863'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='STRING_UNITS_10' value='0'/>
+        <enumerator name='STRING_UNITS_2' value='1'/>
+      </enum-decl>
+      <class-decl name='futex_pi_state' is-struct='yes' visibility='default' is-declaration-only='yes' id='62bd013f'/>
+      <typedef-decl name='nf_logfn' type-id='ffb045fe' filepath='include/net/netfilter/nf_log.h' line='39' column='1' id='62c10f49'/>
+      <pointer-type-def type-id='12f283a5' size-in-bits='64' id='62c51a1d'/>
+      <class-decl name='vm_area_struct' size-in-bits='1856' is-struct='yes' visibility='default' filepath='include/linux/mm_types.h' line='336' column='1' id='62c85860'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab646' visibility='default' filepath='include/linux/mm_types.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='vm_rb' type-id='2a8a6332' visibility='default' filepath='include/linux/mm_types.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='rb_subtree_gap' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='vm_mm' type-id='df4b7819' visibility='default' filepath='include/linux/mm_types.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='vm_page_prot' type-id='2e2dcbd3' visibility='default' filepath='include/linux/mm_types.h' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='vm_flags' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='371' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='' type-id='ac5ab647' visibility='default' filepath='include/linux/mm_types.h' line='381' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='anon_vma_chain' type-id='72f469ec' visibility='default' filepath='include/linux/mm_types.h' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='anon_vma' type-id='a8f86cda' visibility='default' filepath='include/linux/mm_types.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='vm_ops' type-id='9be87662' visibility='default' filepath='include/linux/mm_types.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='vm_pgoff' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='407' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='vm_file' type-id='77e79a4b' visibility='default' filepath='include/linux/mm_types.h' line='409' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='vm_private_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/mm_types.h' line='410' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='swap_readahead_info' type-id='f22a8abb' visibility='default' filepath='include/linux/mm_types.h' line='413' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='vm_userfaultfd_ctx' type-id='fdd6214e' visibility='default' filepath='include/linux/mm_types.h' line='421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='file_ref_count' type-id='49178f86' visibility='default' filepath='include/linux/mm_types.h' line='428' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/mm_types.h' line='431' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/mm_types.h' line='432' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/mm_types.h' line='433' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/mm_types.h' line='434' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='vmem_altmap' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/memremap.h' line='19' column='1' id='62d0a96c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base_pfn' type-id='7359adad' visibility='default' filepath='include/linux/memremap.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='end_pfn' type-id='9cbd1c16' visibility='default' filepath='include/linux/memremap.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='reserve' type-id='9cbd1c16' visibility='default' filepath='include/linux/memremap.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='free' type-id='7359adad' visibility='default' filepath='include/linux/memremap.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='align' type-id='7359adad' visibility='default' filepath='include/linux/memremap.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='alloc' type-id='7359adad' visibility='default' filepath='include/linux/memremap.h' line='25' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='62d1e232'>
+        <parameter type-id='7bf5a5e5'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <pointer-type-def type-id='4aaf059d' size-in-bits='64' id='62d26ff9'/>
+      <class-decl name='fsg_lun_config' size-in-bits='384' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='87' column='1' id='62d6a83a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='filename' type-id='80f4b756' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ro' type-id='a84c031d' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='removable' type-id='a84c031d' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='cdrom' type-id='a84c031d' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='nofua' type-id='a84c031d' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='inquiry_string' type-id='aa60f212' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='93' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='02793b54' size-in-bits='64' id='62d8a75a'/>
+      <class-decl name='usb_cdc_country_functional_desc' size-in-bits='48' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='112' column='1' id='62e0e7f7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bDescriptorSubType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='iCountryCodeRelDate' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='wCountyCode0' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='118' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='46155a72' size-in-bits='64' id='62e9cc9c'/>
+      <class-decl name='typec_altmode_ops' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='58' column='1' id='62ec705a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='enter' type-id='645ad5e9' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='exit' type-id='f9431329' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='attention' type-id='2227a3ab' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='vdm' type-id='cc114ffc' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='notify' type-id='822493cb' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='activate' type-id='d65efcf0' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='67' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='62f14019'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='b1e844c1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f01e85cf' size-in-bits='64' id='62fa2ea7'/>
+      <pointer-type-def type-id='64249e24' size-in-bits='64' id='6301fad2'/>
+      <pointer-type-def type-id='ebb2cb2f' size-in-bits='64' id='630307fa'/>
+      <pointer-type-def type-id='29ca5ed4' size-in-bits='64' id='6307fc3e'/>
+      <class-decl name='uprobes_state' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/uprobes.h' line='101' column='1' id='6308a819'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='xol_area' type-id='3d15880e' visibility='default' filepath='include/linux/uprobes.h' line='102' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='630a7fa4'>
+        <parameter type-id='7837cd88'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='630e0832'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='2168a3eb'/>
+        <parameter type-id='acd96ee1'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='83d13e0e' size-in-bits='64' id='6313cef0'/>
+      <pointer-type-def type-id='91a515f9' size-in-bits='64' id='631dc3c1'/>
+      <function-type size-in-bits='64' id='63217e72'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='00c7b870'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='632cd7c3'>
+        <parameter type-id='fbc017ef'/>
+        <parameter type-id='aff725d5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c37d868d' size-in-bits='64' id='6332a661'/>
+      <function-type size-in-bits='64' id='6334ba8a'>
+        <parameter type-id='d1feb554'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='7e283a70' const='yes' id='633e3a60'/>
+      <function-type size-in-bits='64' id='6356717b'>
+        <parameter type-id='74b427eb'/>
+        <parameter type-id='1dc6a898'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='page_counter' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/linux/page_counter.h' line='10' column='1' id='635c3685'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='usage' type-id='f22a8abb' visibility='default' filepath='include/linux/page_counter.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='min' type-id='7359adad' visibility='default' filepath='include/linux/page_counter.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='low' type-id='7359adad' visibility='default' filepath='include/linux/page_counter.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='high' type-id='7359adad' visibility='default' filepath='include/linux/page_counter.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='max' type-id='7359adad' visibility='default' filepath='include/linux/page_counter.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='emin' type-id='7359adad' visibility='default' filepath='include/linux/page_counter.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='min_usage' type-id='f22a8abb' visibility='default' filepath='include/linux/page_counter.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='children_min_usage' type-id='f22a8abb' visibility='default' filepath='include/linux/page_counter.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='elow' type-id='7359adad' visibility='default' filepath='include/linux/page_counter.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='low_usage' type-id='f22a8abb' visibility='default' filepath='include/linux/page_counter.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='children_low_usage' type-id='f22a8abb' visibility='default' filepath='include/linux/page_counter.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='watermark' type-id='7359adad' visibility='default' filepath='include/linux/page_counter.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='failcnt' type-id='7359adad' visibility='default' filepath='include/linux/page_counter.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/linux/page_counter.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='parent' type-id='ea7fad85' visibility='default' filepath='include/linux/page_counter.h' line='38' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='81645a21' size-in-bits='64' id='63657a49'/>
+      <pointer-type-def type-id='81d7511f' size-in-bits='64' id='63662edb'/>
+      <pointer-type-def type-id='60498a7e' size-in-bits='64' id='6368b074'/>
+      <class-decl name='clk_core' size-in-bits='1984' is-struct='yes' visibility='default' filepath='drivers/clk/clk.c' line='56' column='1' id='636cc9ab'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/clk/clk.c' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ops' type-id='824ffa73' visibility='default' filepath='drivers/clk/clk.c' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hw' type-id='3aaeef89' visibility='default' filepath='drivers/clk/clk.c' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='drivers/clk/clk.c' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/clk/clk.c' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='of_node' type-id='9a537bbe' visibility='default' filepath='drivers/clk/clk.c' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='parent' type-id='ba21e62b' visibility='default' filepath='drivers/clk/clk.c' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='parents' type-id='338d484d' visibility='default' filepath='drivers/clk/clk.c' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='num_parents' type-id='f9b06939' visibility='default' filepath='drivers/clk/clk.c' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='520'>
+          <var-decl name='new_parent_index' type-id='f9b06939' visibility='default' filepath='drivers/clk/clk.c' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='rate' type-id='7359adad' visibility='default' filepath='drivers/clk/clk.c' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='req_rate' type-id='7359adad' visibility='default' filepath='drivers/clk/clk.c' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='new_rate' type-id='7359adad' visibility='default' filepath='drivers/clk/clk.c' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='new_parent' type-id='ba21e62b' visibility='default' filepath='drivers/clk/clk.c' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='new_child' type-id='ba21e62b' visibility='default' filepath='drivers/clk/clk.c' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='drivers/clk/clk.c' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='orphan' type-id='b50a4934' visibility='default' filepath='drivers/clk/clk.c' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='968'>
+          <var-decl name='rpm_enabled' type-id='b50a4934' visibility='default' filepath='drivers/clk/clk.c' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='976'>
+          <var-decl name='need_sync' type-id='b50a4934' visibility='default' filepath='drivers/clk/clk.c' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='984'>
+          <var-decl name='boot_enabled' type-id='b50a4934' visibility='default' filepath='drivers/clk/clk.c' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='enable_count' type-id='f0981eeb' visibility='default' filepath='drivers/clk/clk.c' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='prepare_count' type-id='f0981eeb' visibility='default' filepath='drivers/clk/clk.c' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='protect_count' type-id='f0981eeb' visibility='default' filepath='drivers/clk/clk.c' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='min_rate' type-id='7359adad' visibility='default' filepath='drivers/clk/clk.c' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='max_rate' type-id='7359adad' visibility='default' filepath='drivers/clk/clk.c' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='accuracy' type-id='7359adad' visibility='default' filepath='drivers/clk/clk.c' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='phase' type-id='95e97e5e' visibility='default' filepath='drivers/clk/clk.c' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='duty' type-id='4f935e80' visibility='default' filepath='drivers/clk/clk.c' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='children' type-id='e151255a' visibility='default' filepath='drivers/clk/clk.c' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='child_node' type-id='03a4a074' visibility='default' filepath='drivers/clk/clk.c' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='clks' type-id='e151255a' visibility='default' filepath='drivers/clk/clk.c' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='notifier_count' type-id='f0981eeb' visibility='default' filepath='drivers/clk/clk.c' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='dentry' type-id='27675065' visibility='default' filepath='drivers/clk/clk.c' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='debug_node' type-id='03a4a074' visibility='default' filepath='drivers/clk/clk.c' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='ref' type-id='400fb07b' visibility='default' filepath='drivers/clk/clk.c' line='93' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='aa95bc9e' size-in-bits='64' id='636d3a20'/>
+      <class-decl name='refcount_struct' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/refcount.h' line='111' column='1' id='637cfeaf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='refs' type-id='49178f86' visibility='default' filepath='include/linux/refcount.h' line='112' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a18dc8f5' size-in-bits='64' id='63855e35'/>
+      <function-type size-in-bits='64' id='6386f568'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='07b9ee34'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='rcu_sync' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/rcu_sync.h' line='17' column='1' id='638a7d75'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='gp_state' type-id='95e97e5e' visibility='default' filepath='include/linux/rcu_sync.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='gp_count' type-id='95e97e5e' visibility='default' filepath='include/linux/rcu_sync.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='gp_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/rcu_sync.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='cb_head' type-id='e3d8ce29' visibility='default' filepath='include/linux/rcu_sync.h' line='22' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='giveback_urb_bh' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/usb/hcd.h' line='68' column='1' id='63972aea'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='running' type-id='b50a4934' visibility='default' filepath='include/linux/usb/hcd.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/usb/hcd.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='head' type-id='72f469ec' visibility='default' filepath='include/linux/usb/hcd.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bh' type-id='7a7ea727' visibility='default' filepath='include/linux/usb/hcd.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='completing_ep' type-id='15adb516' visibility='default' filepath='include/linux/usb/hcd.h' line='73' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='9b45d938' size-in-bits='256' id='639bec1b'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <pointer-type-def type-id='8005701f' size-in-bits='64' id='63a08bf7'/>
+      <class-decl name='iio_channel' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/iio/consumer.h' line='24' column='1' id='63a6e12c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='indio_dev' type-id='226853d2' visibility='default' filepath='include/linux/iio/consumer.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='channel' type-id='f74174a4' visibility='default' filepath='include/linux/iio/consumer.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/iio/consumer.h' line='27' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='63ac9844'>
+        <parameter type-id='58ed56f5'/>
+        <parameter type-id='5199c30d'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='78c01427'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='a5eead8f' const='yes' id='63b32204'/>
+      <class-decl name='sdhci_ops' size-in-bits='1984' is-struct='yes' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='634' column='1' id='63b6be81'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='read_l' type-id='06b0c85e' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='636' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='read_w' type-id='c7990768' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='637' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='read_b' type-id='8715d191' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='638' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='write_l' type-id='b291458e' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='639' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='write_w' type-id='c8439540' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='640' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='write_b' type-id='3cf0497b' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='641' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='set_clock' type-id='98dbb7da' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='644' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='set_power' type-id='71399c6f' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='645' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='irq' type-id='02663b56' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='648' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='set_dma_mask' type-id='a9d7e307' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='650' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='enable_dma' type-id='a9d7e307' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='651' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='get_max_clock' type-id='601d7eac' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='652' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='get_min_clock' type-id='601d7eac' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='653' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='get_timeout_clock' type-id='601d7eac' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='655' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='get_max_timeout_count' type-id='601d7eac' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='656' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='set_timeout' type-id='3fec7331' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='657' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='set_bus_width' type-id='288e0067' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='659' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='platform_send_init_74_clocks' type-id='30c362fc' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='660' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='get_ro' type-id='601d7eac' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='662' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='reset' type-id='30c362fc' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='663' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='platform_execute_tuning' type-id='d846c996' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='664' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='set_uhs_signaling' type-id='98dbb7da' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='665' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='hw_reset' type-id='13daec78' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='666' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='adma_workaround' type-id='bb4db0f7' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='667' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='card_event' type-id='13daec78' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='668' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='voltage_switch' type-id='13daec78' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='669' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='adma_write_desc' type-id='7a3863fd' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='670' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='copy_to_bounce_buffer' type-id='669b9402' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='672' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='request_done' type-id='d17e9a1d' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='675' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='dump_vendor_regs' type-id='13daec78' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='677' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='679' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='gpio_desc' size-in-bits='320' is-struct='yes' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='133' column='1' id='63b74212'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='gdev' type-id='fb7dc22d' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='label' type-id='80f4b756' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='debounce_period_us' type-id='f0981eeb' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='164' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='xhci_doorbell_array' size-in-bits='8192' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='552' column='1' id='63b99761'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='doorbell' type-id='8e6dd4be' visibility='default' filepath='drivers/usb/host/xhci.h' line='553' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='37d6dbea' size-in-bits='64' id='63be09f4'/>
+      <array-type-def dimensions='1' type-id='826dc1a3' size-in-bits='7680' id='63c0e8df'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <class-decl name='of_timer_clk' size-in-bits='320' is-struct='yes' visibility='default' filepath='drivers/clocksource/timer-of.h' line='26' column='1' id='63c32039'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='clk' type-id='7d0bc0eb' visibility='default' filepath='drivers/clocksource/timer-of.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/clocksource/timer-of.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='index' type-id='95e97e5e' visibility='default' filepath='drivers/clocksource/timer-of.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rate' type-id='7359adad' visibility='default' filepath='drivers/clocksource/timer-of.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='period' type-id='7359adad' visibility='default' filepath='drivers/clocksource/timer-of.h' line='31' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='63c3ee86'>
+        <parameter type-id='ee406209'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='6208060f' size-in-bits='64' id='63c78f87'/>
+      <pointer-type-def type-id='3ce3a3e9' size-in-bits='64' id='63c7e8e1'/>
+      <pointer-type-def type-id='52704eb7' size-in-bits='64' id='63cbc127'/>
+      <pointer-type-def type-id='de68658d' size-in-bits='64' id='63cfef1d'/>
+      <class-decl name='nf_hook_ops' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/netfilter.h' line='86' column='1' id='63d6992a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hook' type-id='c8f8b049' visibility='default' filepath='include/linux/netfilter.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/linux/netfilter.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/netfilter.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pf' type-id='f9b06939' visibility='default' filepath='include/linux/netfilter.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='hook_ops_type' type-id='8e40c1ce' visibility='default' filepath='include/linux/netfilter.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='hooknum' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='priority' type-id='95e97e5e' visibility='default' filepath='include/linux/netfilter.h' line='95' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c35ca4f3' size-in-bits='64' id='63d7819b'/>
+      <pointer-type-def type-id='57b0eed2' size-in-bits='64' id='63de1ba0'/>
+      <function-type size-in-bits='64' id='63df6bcc'>
+        <parameter type-id='be65fdd0'/>
+        <parameter type-id='fbc017ef'/>
+        <return type-id='c3082d06'/>
+      </function-type>
+      <pointer-type-def type-id='eaa32e2f' size-in-bits='64' id='63e171df'/>
+      <pointer-type-def type-id='847d9553' size-in-bits='64' id='63e6cf23'/>
+      <typedef-decl name='__kernel_pid_t' type-id='95e97e5e' filepath='include/uapi/asm-generic/posix_types.h' line='28' column='1' id='63eb2bf2'/>
+      <function-type size-in-bits='64' id='63ecd8bd'>
+        <parameter type-id='6a54ab42'/>
+        <parameter type-id='27675065'/>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e29a2892' size-in-bits='64' id='63faaa44'/>
+      <class-decl name='filename' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2723' column='1' id='63fc6210'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='2724' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='uptr' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='2725' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='refcnt' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='2726' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='aname' type-id='5acb442f' visibility='default' filepath='include/linux/fs.h' line='2727' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='iname' type-id='0904d1cc' visibility='default' filepath='include/linux/fs.h' line='2728' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1aafc68e' size-in-bits='64' id='64015654'/>
+      <pointer-type-def type-id='09c8f1a3' size-in-bits='64' id='6407fd0f'/>
+      <function-type size-in-bits='64' id='640838f9'>
+        <parameter type-id='cc26d15f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='cdd056d2' size-in-bits='64' id='64115f6c'/>
+      <pointer-type-def type-id='21419694' size-in-bits='64' id='64144346'/>
+      <function-type size-in-bits='64' id='6415147f'>
+        <parameter type-id='3c330066'/>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='arch_spinlock_t' type-id='c167abfb' filepath='include/asm-generic/qspinlock_types.h' line='44' column='1' id='641c41d1'/>
+      <pointer-type-def type-id='f8ea2b79' size-in-bits='64' id='64239305'/>
+      <class-decl name='drm_pending_vblank_event' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/drm/drm_vblank.h' line='42' column='1' id='64249e24'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='2aa44dc9' visibility='default' filepath='include/drm/drm_vblank.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='pipe' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_vblank.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='sequence' type-id='91ce1af9' visibility='default' filepath='include/drm/drm_vblank.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='event' type-id='ac5ab5d7' visibility='default' filepath='include/drm/drm_vblank.h' line='78' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='6428f4eb'>
+        <parameter type-id='a69af780'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='6430ea09'>
+        <parameter type-id='d5cbf711'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='bbaf3419'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='643400ce'>
+        <parameter type-id='7a5054b7'/>
+        <parameter type-id='5b2fd8e8'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='nf_flowtable' is-struct='yes' visibility='default' is-declaration-only='yes' id='6435d2b6'/>
+      <class-decl name='udp_tunnel_nic_info' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/net/udp_tunnel.h' line='254' column='1' id='6436b4bb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='set_port' type-id='0dee990a' visibility='default' filepath='include/net/udp_tunnel.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='unset_port' type-id='0dee990a' visibility='default' filepath='include/net/udp_tunnel.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sync_table' type-id='6046ed73' visibility='default' filepath='include/net/udp_tunnel.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='shared' type-id='c9414b9c' visibility='default' filepath='include/net/udp_tunnel.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/net/udp_tunnel.h' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='tables' type-id='53375988' visibility='default' filepath='include/net/udp_tunnel.h' line='273' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='643f05a0'>
+        <parameter type-id='b9608bfc'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='a54c778f'/>
+        <return type-id='8f254b08'/>
+      </function-type>
+      <class-decl name='xhci_port_cap' size-in-bits='128' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1737' column='1' id='644441a6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='psi' type-id='f9409001' visibility='default' filepath='drivers/usb/host/xhci.h' line='1738' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='psi_count' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/xhci.h' line='1739' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='psi_uid_count' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/xhci.h' line='1740' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='maj_rev' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/xhci.h' line='1741' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='min_rev' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/xhci.h' line='1742' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a301f696' size-in-bits='64' id='64452f48'/>
+      <pointer-type-def type-id='267816c1' size-in-bits='64' id='644a4b55'/>
+      <pointer-type-def type-id='7607667c' size-in-bits='64' id='644da7aa'/>
+      <pointer-type-def type-id='dcda8403' size-in-bits='64' id='64548faf'/>
+      <function-type size-in-bits='64' id='64588176'>
+        <parameter type-id='aff725d5'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='snd_pcm_access_t' type-id='95e97e5e' filepath='include/uapi/sound/asound.h' line='188' column='1' id='6459083c'/>
+      <pointer-type-def type-id='e68701d5' size-in-bits='64' id='645ad5e9'/>
+      <function-type size-in-bits='64' id='64604191'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='7292109c'/>
+        <parameter type-id='7292109c'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='refcount_t' type-id='637cfeaf' filepath='include/linux/refcount.h' line='113' column='1' id='64615833'/>
+      <typedef-decl name='rpmsg_rx_sig_t' type-id='3362870f' filepath='include/linux/rpmsg.h' line='78' column='1' id='646ceeb7'/>
+      <class-decl name='devfreq_event_data' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/devfreq-event.h' line='47' column='1' id='64705f1a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='load_count' type-id='7359adad' visibility='default' filepath='include/linux/devfreq-event.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='total_count' type-id='7359adad' visibility='default' filepath='include/linux/devfreq-event.h' line='49' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='dma_cookie_t' type-id='a7832498' filepath='include/linux/dmaengine.h' line='23' column='1' id='6478ea0a'/>
+      <function-type size-in-bits='64' id='647d371e'>
+        <parameter type-id='42988600'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='03d219e2' size-in-bits='64' id='6484073c'/>
+      <function-type size-in-bits='64' id='648adb0a'>
+        <parameter type-id='87447c2d'/>
+        <parameter type-id='b1fd62ba'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='e6f0ce4c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c485c22c' size-in-bits='64' id='64906f72'/>
+      <class-decl name='nvdimm_drvdata' size-in-bits='1152' is-struct='yes' visibility='default' filepath='drivers/nvdimm/nd.h' line='28' column='1' id='6493a25b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/nvdimm/nd.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nslabel_size' type-id='95e97e5e' visibility='default' filepath='drivers/nvdimm/nd.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='nsarea' type-id='2733af22' visibility='default' filepath='drivers/nvdimm/nd.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='drivers/nvdimm/nd.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ns_current' type-id='95e97e5e' visibility='default' filepath='drivers/nvdimm/nd.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='ns_next' type-id='95e97e5e' visibility='default' filepath='drivers/nvdimm/nd.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dpa' type-id='5218160d' visibility='default' filepath='drivers/nvdimm/nd.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='drivers/nvdimm/nd.h' line='35' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='006d72ff' size-in-bits='64' id='6495fd5b'/>
+      <pointer-type-def type-id='8a4245ed' size-in-bits='64' id='6499ab7d'/>
+      <class-decl name='page_pool_params' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/page_pool.h' line='75' column='1' id='649f7ac8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/net/page_pool.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='order' type-id='f0981eeb' visibility='default' filepath='include/net/page_pool.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pool_size' type-id='f0981eeb' visibility='default' filepath='include/net/page_pool.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='nid' type-id='95e97e5e' visibility='default' filepath='include/net/page_pool.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/net/page_pool.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dma_dir' type-id='eea6b025' visibility='default' filepath='include/net/page_pool.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='max_len' type-id='f0981eeb' visibility='default' filepath='include/net/page_pool.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='offset' type-id='f0981eeb' visibility='default' filepath='include/net/page_pool.h' line='83' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='91ce1af9' size-in-bits='64' id='64a61909'>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='64a9bab2'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='f772df6d'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='91ce1af9' size-in-bits='384' id='64acd4ce'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='91ce1af9' size-in-bits='320' id='64af1365'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <qualified-type-def type-id='21301fc9' const='yes' id='64b77daa'/>
+      <pointer-type-def type-id='1ee07c27' size-in-bits='64' id='64c19e8b'/>
+      <class-decl name='cpu_stop_done' size-in-bits='320' is-struct='yes' visibility='default' filepath='kernel/stop_machine.c' line='30' column='1' id='64c36f53'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nr_todo' type-id='49178f86' visibility='default' filepath='kernel/stop_machine.c' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ret' type-id='95e97e5e' visibility='default' filepath='kernel/stop_machine.c' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='completion' type-id='f9fef04f' visibility='default' filepath='kernel/stop_machine.c' line='33' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='99438dcd' size-in-bits='64' id='64c391d1'/>
+      <pointer-type-def type-id='4bca7b9d' size-in-bits='64' id='64c408c1'/>
+      <function-type size-in-bits='64' id='64ec45e8'>
+        <parameter type-id='e9b5d134'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c3b65e91' size-in-bits='64' id='64ecf6a5'/>
+      <pointer-type-def type-id='edb04712' size-in-bits='64' id='64ed5260'/>
+      <pointer-type-def type-id='da556df0' size-in-bits='64' id='64efa47a'/>
+      <function-type size-in-bits='64' id='64f1e67b'>
+        <parameter type-id='b9af02c3'/>
+        <return type-id='19c2251e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='64f32e32'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='f9f4b16f'/>
+        <return type-id='f9f4b16f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='e151255a' size-in-bits='8192' id='64f4baeb'>
+        <subrange length='128' type-id='7ff19f0f' id='1eb1687a'/>
+      </array-type-def>
+      <typedef-decl name='poll_queue_proc' type-id='4aecccbd' filepath='include/linux/poll.h' line='37' column='1' id='650104ba'/>
+      <class-decl name='devlink_port_attrs' size-in-bits='480' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='124' column='1' id='650485a9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='split' type-id='f9b06939' visibility='default' filepath='include/net/devlink.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1'>
+          <var-decl name='splittable' type-id='f9b06939' visibility='default' filepath='include/net/devlink.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='lanes' type-id='19c2251e' visibility='default' filepath='include/net/devlink.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flavour' type-id='33ffd241' visibility='default' filepath='include/net/devlink.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='switch_id' type-id='14a30316' visibility='default' filepath='include/net/devlink.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='' type-id='ac5ab69a' visibility='default' filepath='include/net/devlink.h' line='130' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ff1ab2e4' size-in-bits='64' id='65077a4a'/>
+      <pointer-type-def type-id='bca3f647' size-in-bits='64' id='6507da23'/>
+      <class-decl name='blk_mq_tag_set' size-in-bits='2368' is-struct='yes' visibility='default' filepath='include/linux/blk-mq.h' line='246' column='1' id='651086d7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='map' type-id='ffbe012f' visibility='default' filepath='include/linux/blk-mq.h' line='247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='nr_maps' type-id='f0981eeb' visibility='default' filepath='include/linux/blk-mq.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ops' type-id='e1962c5d' visibility='default' filepath='include/linux/blk-mq.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='nr_hw_queues' type-id='f0981eeb' visibility='default' filepath='include/linux/blk-mq.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='queue_depth' type-id='f0981eeb' visibility='default' filepath='include/linux/blk-mq.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='reserved_tags' type-id='f0981eeb' visibility='default' filepath='include/linux/blk-mq.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='cmd_size' type-id='f0981eeb' visibility='default' filepath='include/linux/blk-mq.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='numa_node' type-id='95e97e5e' visibility='default' filepath='include/linux/blk-mq.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='timeout' type-id='f0981eeb' visibility='default' filepath='include/linux/blk-mq.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/blk-mq.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/blk-mq.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='active_queues_shared_sbitmap' type-id='49178f86' visibility='default' filepath='include/linux/blk-mq.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='__bitmap_tags' type-id='a133315d' visibility='default' filepath='include/linux/blk-mq.h' line='260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='__breserved_tags' type-id='a133315d' visibility='default' filepath='include/linux/blk-mq.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='tags' type-id='c527e30d' visibility='default' filepath='include/linux/blk-mq.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='tag_list_lock' type-id='925167dc' visibility='default' filepath='include/linux/blk-mq.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='tag_list' type-id='72f469ec' visibility='default' filepath='include/linux/blk-mq.h' line='265' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='65188add'>
+        <parameter type-id='d4e0eca9'/>
+        <parameter type-id='2d44fb50'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='651e027c'>
+        <parameter type-id='69c138b1'/>
+        <parameter type-id='4edd56e3'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='a6dc8192' size-in-bits='64' id='652034a8'/>
+      <pointer-type-def type-id='9d4721a2' size-in-bits='64' id='6523d744'/>
+      <class-decl name='regmap_irq_sub_irq_map' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/regmap.h' line='1411' column='1' id='652bbaa5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='num_regs' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='offset' type-id='807869d3' visibility='default' filepath='include/linux/regmap.h' line='1413' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ce848ab1' size-in-bits='64' id='652d9ef9'/>
+      <pointer-type-def type-id='5a467bb1' size-in-bits='64' id='652fafc9'/>
+      <pointer-type-def type-id='e5e68fcc' size-in-bits='64' id='6532190a'/>
+      <pointer-type-def type-id='811eff86' size-in-bits='64' id='6537d478'/>
+      <pointer-type-def type-id='6858ea97' size-in-bits='64' id='65399e23'/>
+      <pointer-type-def type-id='c6cecc55' size-in-bits='64' id='653a1605'/>
+      <class-decl name='syscore_ops' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/syscore_ops.h' line='13' column='1' id='654484ba'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/syscore_ops.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='suspend' type-id='1db260e5' visibility='default' filepath='include/linux/syscore_ops.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='resume' type-id='953b12f8' visibility='default' filepath='include/linux/syscore_ops.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='shutdown' type-id='953b12f8' visibility='default' filepath='include/linux/syscore_ops.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='39a9bc04' const='yes' id='6544a7c3'/>
+      <pointer-type-def type-id='5206896f' size-in-bits='64' id='654a179f'/>
+      <pointer-type-def type-id='1b8801b2' size-in-bits='64' id='6551bd60'/>
+      <function-type size-in-bits='64' id='6557550d'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='ee5dddb1'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='65655453'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='c09387b9'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='xhci_scratchpad' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1671' column='1' id='656561a5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sp_array' type-id='3df9fd28' visibility='default' filepath='drivers/usb/host/xhci.h' line='1672' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sp_dma' type-id='cf29c9b3' visibility='default' filepath='drivers/usb/host/xhci.h' line='1673' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sp_buffers' type-id='63e171df' visibility='default' filepath='drivers/usb/host/xhci.h' line='1674' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5ec4fc8d' size-in-bits='64' id='657a5cf1'/>
+      <function-type size-in-bits='64' id='657fbd80'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='8bff8096'/>
+        <parameter type-id='f9409001'/>
+        <parameter type-id='3df9fd28'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='kretprobe_holder' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/kprobes.h' line='141' column='1' id='65833184'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rp' type-id='d15edd25' visibility='default' filepath='include/linux/kprobes.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ref' type-id='64615833' visibility='default' filepath='include/linux/kprobes.h' line='143' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='lru_gen_mm_list' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/mm_types.h' line='684' column='1' id='658995bf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fifo' type-id='72f469ec' visibility='default' filepath='include/linux/mm_types.h' line='686' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/mm_types.h' line='688' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_h264_reference' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1454' column='1' id='658e6198'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fields' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='index' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1456' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='80a367ec' size-in-bits='64' id='65936caa'/>
+      <pointer-type-def type-id='b9acff95' size-in-bits='64' id='659a1059'/>
+      <pointer-type-def type-id='f8a88be2' size-in-bits='64' id='65a8a3df'/>
+      <class-decl name='devlink_fmsg' size-in-bits='192' is-struct='yes' visibility='default' filepath='net/core/devlink.c' line='6059' column='1' id='65b792e2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='item_list' type-id='72f469ec' visibility='default' filepath='net/core/devlink.c' line='6060' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='putting_binary' type-id='b50a4934' visibility='default' filepath='net/core/devlink.c' line='6061' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='gnet_dump' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/net/gen_stats.h' line='23' column='1' id='65baad60'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='cff2d845' visibility='default' filepath='include/net/gen_stats.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='skb' type-id='0fbf3cfd' visibility='default' filepath='include/net/gen_stats.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tail' type-id='6fcaf91e' visibility='default' filepath='include/net/gen_stats.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='compat_tc_stats' type-id='95e97e5e' visibility='default' filepath='include/net/gen_stats.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='compat_xstats' type-id='95e97e5e' visibility='default' filepath='include/net/gen_stats.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='padattr' type-id='95e97e5e' visibility='default' filepath='include/net/gen_stats.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='xstats' type-id='eaa32e2f' visibility='default' filepath='include/net/gen_stats.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='xstats_len' type-id='95e97e5e' visibility='default' filepath='include/net/gen_stats.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='tc_stats' type-id='7bef637c' visibility='default' filepath='include/net/gen_stats.h' line='34' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b11be48c' size-in-bits='64' id='65cea51e'/>
+      <class-decl name='dma_fence_ops' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/dma-fence.h' line='125' column='1' id='65d79a70'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='use_64bit_seqno' type-id='b50a4934' visibility='default' filepath='include/linux/dma-fence.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='get_driver_name' type-id='0c4b82c7' visibility='default' filepath='include/linux/dma-fence.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='get_timeline_name' type-id='0c4b82c7' visibility='default' filepath='include/linux/dma-fence.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='enable_signaling' type-id='e33a30a5' visibility='default' filepath='include/linux/dma-fence.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='signaled' type-id='e33a30a5' visibility='default' filepath='include/linux/dma-fence.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='wait' type-id='c82424f9' visibility='default' filepath='include/linux/dma-fence.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='release' type-id='90d4d75e' visibility='default' filepath='include/linux/dma-fence.h' line='242' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='fence_value_str' type-id='0f859ff9' visibility='default' filepath='include/linux/dma-fence.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='timeline_value_str' type-id='0f859ff9' visibility='default' filepath='include/linux/dma-fence.h' line='262' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='894e3904' const='yes' id='65dcab5f'/>
+      <function-type size-in-bits='64' id='65e1dee8'>
+        <parameter type-id='37175e4d'/>
+        <parameter type-id='002ac4a6'/>
+        <parameter type-id='474e5dcc'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='002ac4a6'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='bed4c75a' size-in-bits='64' id='65e6c748'/>
+      <class-decl name='tipc_media' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/../net/tipc/bearer.h' line='104' column='1' id='65e7c8b8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='send_msg' type-id='a170b5bb' visibility='default' filepath='include/../net/tipc/bearer.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='enable_media' type-id='bef34c3b' visibility='default' filepath='include/../net/tipc/bearer.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='disable_media' type-id='87845160' visibility='default' filepath='include/../net/tipc/bearer.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='addr2str' type-id='3af234b7' visibility='default' filepath='include/../net/tipc/bearer.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='addr2msg' type-id='22c37a8a' visibility='default' filepath='include/../net/tipc/bearer.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='msg2addr' type-id='c6c44b98' visibility='default' filepath='include/../net/tipc/bearer.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='raw2addr' type-id='c6c44b98' visibility='default' filepath='include/../net/tipc/bearer.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='priority' type-id='19c2251e' visibility='default' filepath='include/../net/tipc/bearer.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='tolerance' type-id='19c2251e' visibility='default' filepath='include/../net/tipc/bearer.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='min_win' type-id='19c2251e' visibility='default' filepath='include/../net/tipc/bearer.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='max_win' type-id='19c2251e' visibility='default' filepath='include/../net/tipc/bearer.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='mtu' type-id='19c2251e' visibility='default' filepath='include/../net/tipc/bearer.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='type_id' type-id='19c2251e' visibility='default' filepath='include/../net/tipc/bearer.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='hwaddr_len' type-id='19c2251e' visibility='default' filepath='include/../net/tipc/bearer.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='name' type-id='ac1fa8c0' visibility='default' filepath='include/../net/tipc/bearer.h' line='128' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='224' is-struct='yes' visibility='default' filepath='include/linux/zstd.h' line='145' column='1' id='65ee6d9f' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='windowLog' type-id='f0981eeb' visibility='default' filepath='include/linux/zstd.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='chainLog' type-id='f0981eeb' visibility='default' filepath='include/linux/zstd.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hashLog' type-id='f0981eeb' visibility='default' filepath='include/linux/zstd.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='searchLog' type-id='f0981eeb' visibility='default' filepath='include/linux/zstd.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='searchLength' type-id='f0981eeb' visibility='default' filepath='include/linux/zstd.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='targetLength' type-id='f0981eeb' visibility='default' filepath='include/linux/zstd.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='strategy' type-id='14c83269' visibility='default' filepath='include/linux/zstd.h' line='152' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d7322b1f' size-in-bits='64' id='65ee7b03'/>
+      <class-decl name='kunit' size-in-bits='2944' is-struct='yes' visibility='default' filepath='include/kunit/test.h' line='253' column='1' id='65eefe14'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/kunit/test.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/kunit/test.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='log' type-id='26a90f95' visibility='default' filepath='include/kunit/test.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='try_catch' type-id='3f64023a' visibility='default' filepath='include/kunit/test.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='param_value' type-id='eaa32e2f' visibility='default' filepath='include/kunit/test.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='param_index' type-id='95e97e5e' visibility='default' filepath='include/kunit/test.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/kunit/test.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='status' type-id='567f93e6' visibility='default' filepath='include/kunit/test.h' line='272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='resources' type-id='72f469ec' visibility='default' filepath='include/kunit/test.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='status_comment' type-id='d1617432' visibility='default' filepath='include/kunit/test.h' line='280' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8f138f6a' size-in-bits='64' id='65fcdb9c'/>
+      <pointer-type-def type-id='8cf4128f' size-in-bits='64' id='66032958'/>
+      <class-decl name='fsg_common' size-in-bits='3968' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='232' column='1' id='660986b5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='gadget' type-id='49a58c0c' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cdev' type-id='2a895c01' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fsg' type-id='bdd84dab' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='io_wait' type-id='b5ab048f' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='fsg_wait' type-id='b5ab048f' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='filesem' type-id='f19fdb93' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='ep0' type-id='63a08bf7' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='ep0req' type-id='1a494567' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='ep0_req_tag' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='next_buffhd_to_fill' type-id='63657a49' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='next_buffhd_to_drain' type-id='63657a49' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='buffhds' type-id='63657a49' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='fsg_num_buffers' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='cmnd_size' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='cmnd' type-id='0d8415b5' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='lun' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='luns' type-id='11a65fb6' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='curlun' type-id='5b450efb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='bulk_out_maxpacket' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2912'>
+          <var-decl name='state' type-id='1b61257a' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='exception_req_tag' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='exception_arg' type-id='eaa32e2f' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='data_dir' type-id='c03cb3da' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3104'>
+          <var-decl name='data_size' type-id='19c2251e' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='data_size_from_cmnd' type-id='19c2251e' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3168'>
+          <var-decl name='tag' type-id='19c2251e' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='residue' type-id='19c2251e' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3232'>
+          <var-decl name='usb_amount_left' type-id='19c2251e' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='can_stall' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3265'>
+          <var-decl name='free_storage_on_release' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3266'>
+          <var-decl name='phase_error' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3267'>
+          <var-decl name='short_packet_received' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3268'>
+          <var-decl name='bad_lun_okay' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3269'>
+          <var-decl name='running' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3270'>
+          <var-decl name='sysfs' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='thread_notifier' type-id='f9fef04f' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='thread_task' type-id='f23e2572' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='inquiry_string' type-id='aa60f212' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='287' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='364ef168' size-in-bits='64' id='6614aa5e'/>
+      <pointer-type-def type-id='e937566e' size-in-bits='64' id='661ccd0c'/>
+      <pointer-type-def type-id='201ffa8e' size-in-bits='64' id='6620a240'/>
+      <class-decl name='i2c_driver' size-in-bits='2176' is-struct='yes' visibility='default' filepath='include/linux/i2c.h' line='260' column='1' id='66237bd2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='class' type-id='f0981eeb' visibility='default' filepath='include/linux/i2c.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='probe' type-id='37ec0ebd' visibility='default' filepath='include/linux/i2c.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='remove' type-id='e6e946ad' visibility='default' filepath='include/linux/i2c.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='probe_new' type-id='e6e946ad' visibility='default' filepath='include/linux/i2c.h' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='shutdown' type-id='d839e3f6' visibility='default' filepath='include/linux/i2c.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='alert' type-id='e9f334cb' visibility='default' filepath='include/linux/i2c.h' line='282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='command' type-id='bbfd7f03' visibility='default' filepath='include/linux/i2c.h' line='288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/i2c.h' line='290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='id_table' type-id='49e46a4d' visibility='default' filepath='include/linux/i2c.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='detect' type-id='770b2313' visibility='default' filepath='include/linux/i2c.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='address_list' type-id='31347b7a' visibility='default' filepath='include/linux/i2c.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='clients' type-id='72f469ec' visibility='default' filepath='include/linux/i2c.h' line='296' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4f1e6b9a' size-in-bits='64' id='66288ae4'/>
+      <function-type size-in-bits='64' id='6634c3c6'>
+        <parameter type-id='810606ec'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='aebf0935' size-in-bits='64' id='663995b5'/>
+      <class-decl name='scatterlist' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/scatterlist.h' line='11' column='1' id='663acc25'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='page_link' type-id='7359adad' visibility='default' filepath='include/linux/scatterlist.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='offset' type-id='f0981eeb' visibility='default' filepath='include/linux/scatterlist.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='length' type-id='f0981eeb' visibility='default' filepath='include/linux/scatterlist.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dma_address' type-id='cf29c9b3' visibility='default' filepath='include/linux/scatterlist.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dma_length' type-id='f0981eeb' visibility='default' filepath='include/linux/scatterlist.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='66412cc1'>
+        <parameter type-id='6ee1a870'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='7a7796b6' size-in-bits='64' id='66421794'/>
+      <enum-decl name='usb_pd_svdm_ver' filepath='include/linux/usb/typec.h' line='228' column='1' id='664a29a4'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SVDM_VER_1_0' value='0'/>
+        <enumerator name='SVDM_VER_2_0' value='1'/>
+        <enumerator name='SVDM_VER_MAX' value='1'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='160' id='664ac0b7'>
+        <subrange length='20' type-id='7ff19f0f' id='fdca39cf'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='192' id='6653bb13'>
+        <subrange length='24' type-id='7ff19f0f' id='fdd3342b'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='216' id='665c09d8'>
+        <subrange length='27' type-id='7ff19f0f' id='fddb82f0'/>
+      </array-type-def>
+      <class-decl name='device_node' size-in-bits='1984' is-struct='yes' visibility='default' filepath='include/linux/of.h' line='51' column='1' id='6661a698'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/of.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='phandle' type-id='6e394fba' visibility='default' filepath='include/linux/of.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='full_name' type-id='80f4b756' visibility='default' filepath='include/linux/of.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fwnode' type-id='d5ace205' visibility='default' filepath='include/linux/of.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='properties' type-id='ddcd89c6' visibility='default' filepath='include/linux/of.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='deadprops' type-id='ddcd89c6' visibility='default' filepath='include/linux/of.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='parent' type-id='9a537bbe' visibility='default' filepath='include/linux/of.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='child' type-id='9a537bbe' visibility='default' filepath='include/linux/of.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='sibling' type-id='9a537bbe' visibility='default' filepath='include/linux/of.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='include/linux/of.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='_flags' type-id='7359adad' visibility='default' filepath='include/linux/of.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/of.h' line='66' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ed4be5c0' size-in-bits='64' id='6668d13a'/>
+      <class-decl name='dma_heap_export_info' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/dma-heap.h' line='40' column='1' id='666ada80'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/dma-heap.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ops' type-id='cabcb658' visibility='default' filepath='include/linux/dma-heap.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/dma-heap.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='68523a94' size-in-bits='64' id='666fb412'/>
+      <pointer-type-def type-id='2dd1eb6f' size-in-bits='64' id='66755d9f'/>
+      <function-type size-in-bits='64' id='66781033'>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='bd242e0b' size-in-bits='64' id='66797707'/>
+      <class-decl name='rtnl_link_ops' size-in-bits='1664' is-struct='yes' visibility='default' filepath='include/net/rtnetlink.h' line='63' column='1' id='6696ef79'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/rtnetlink.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='kind' type-id='80f4b756' visibility='default' filepath='include/net/rtnetlink.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='priv_size' type-id='b59d7dce' visibility='default' filepath='include/net/rtnetlink.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='alloc' type-id='1ba30a33' visibility='default' filepath='include/net/rtnetlink.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='setup' type-id='548eee3a' visibility='default' filepath='include/net/rtnetlink.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='netns_refund' type-id='b50a4934' visibility='default' filepath='include/net/rtnetlink.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='maxtype' type-id='f0981eeb' visibility='default' filepath='include/net/rtnetlink.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='policy' type-id='109cdb66' visibility='default' filepath='include/net/rtnetlink.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='validate' type-id='69d3de54' visibility='default' filepath='include/net/rtnetlink.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='newlink' type-id='234d802d' visibility='default' filepath='include/net/rtnetlink.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='changelink' type-id='66b76584' visibility='default' filepath='include/net/rtnetlink.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='dellink' type-id='3778bdcd' visibility='default' filepath='include/net/rtnetlink.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='get_size' type-id='c65c1382' visibility='default' filepath='include/net/rtnetlink.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='fill_info' type-id='922133c6' visibility='default' filepath='include/net/rtnetlink.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='get_xstats_size' type-id='c65c1382' visibility='default' filepath='include/net/rtnetlink.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='fill_xstats' type-id='922133c6' visibility='default' filepath='include/net/rtnetlink.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='get_num_tx_queues' type-id='0838a534' visibility='default' filepath='include/net/rtnetlink.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='get_num_rx_queues' type-id='0838a534' visibility='default' filepath='include/net/rtnetlink.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='slave_maxtype' type-id='f0981eeb' visibility='default' filepath='include/net/rtnetlink.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='slave_policy' type-id='109cdb66' visibility='default' filepath='include/net/rtnetlink.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='slave_changelink' type-id='a6c912f4' visibility='default' filepath='include/net/rtnetlink.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='get_slave_size' type-id='c297924f' visibility='default' filepath='include/net/rtnetlink.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='fill_slave_info' type-id='f3e878cb' visibility='default' filepath='include/net/rtnetlink.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='get_link_net' type-id='13b49faa' visibility='default' filepath='include/net/rtnetlink.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='get_linkxstats_size' type-id='d3210449' visibility='default' filepath='include/net/rtnetlink.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='fill_linkxstats' type-id='c11c2e76' visibility='default' filepath='include/net/rtnetlink.h' line='120' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4fab04f8' size-in-bits='64' id='669b9402'/>
+      <pointer-type-def type-id='ecf788b7' size-in-bits='64' id='66a37d1e'/>
+      <pointer-type-def type-id='4a91f65b' size-in-bits='64' id='66add68b'/>
+      <pointer-type-def type-id='9dbdc7de' size-in-bits='64' id='66b0cee4'/>
+      <pointer-type-def type-id='86c85b12' size-in-bits='64' id='66b76584'/>
+      <qualified-type-def type-id='51d84938' const='yes' id='66b7f7e8'/>
+      <class-decl name='dma_tx_state' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/dmaengine.h' line='735' column='1' id='66bc63b4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='last' type-id='6478ea0a' visibility='default' filepath='include/linux/dmaengine.h' line='736' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='used' type-id='6478ea0a' visibility='default' filepath='include/linux/dmaengine.h' line='737' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='residue' type-id='19c2251e' visibility='default' filepath='include/linux/dmaengine.h' line='738' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='in_flight_bytes' type-id='19c2251e' visibility='default' filepath='include/linux/dmaengine.h' line='739' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='a9ef191f' const='yes' id='66bd4388'/>
+      <class-decl name='cec_event_lost_msgs' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/cec.h' line='449' column='1' id='66c0ec77'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lost_msgs' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/cec.h' line='450' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='7e480899' size-in-bits='1280' id='66c7c544'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <pointer-type-def type-id='ea038279' size-in-bits='64' id='66c8694d'/>
+      <pointer-type-def type-id='9805d802' size-in-bits='64' id='66d2e8f0'/>
+      <class-decl name='device' size-in-bits='7296' is-struct='yes' visibility='default' filepath='include/linux/device.h' line='474' column='1' id='66e487eb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='include/linux/device.h' line='475' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='parent' type-id='fa0b179b' visibility='default' filepath='include/linux/device.h' line='476' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='p' type-id='0d3b0dcf' visibility='default' filepath='include/linux/device.h' line='478' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='init_name' type-id='80f4b756' visibility='default' filepath='include/linux/device.h' line='480' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='type' type-id='cd28613b' visibility='default' filepath='include/linux/device.h' line='481' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='bus' type-id='5e2671f8' visibility='default' filepath='include/linux/device.h' line='483' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='driver' type-id='00c7b870' visibility='default' filepath='include/linux/device.h' line='484' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='platform_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/device.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/device.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='include/linux/device.h' line='493' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='links' type-id='2d178f63' visibility='default' filepath='include/linux/device.h' line='497' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='power' type-id='f3166b6b' visibility='default' filepath='include/linux/device.h' line='498' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4864'>
+          <var-decl name='pm_domain' type-id='a4375c03' visibility='default' filepath='include/linux/device.h' line='499' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4928'>
+          <var-decl name='em_pd' type-id='ce714046' visibility='default' filepath='include/linux/device.h' line='502' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='msi_domain' type-id='7544e824' visibility='default' filepath='include/linux/device.h' line='506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5056'>
+          <var-decl name='pins' type-id='fa43ef1d' visibility='default' filepath='include/linux/device.h' line='509' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='msi_lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/device.h' line='512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='msi_list' type-id='72f469ec' visibility='default' filepath='include/linux/device.h' line='513' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5312'>
+          <var-decl name='dma_ops' type-id='ac58af12' visibility='default' filepath='include/linux/device.h' line='516' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='dma_mask' type-id='3df9fd28' visibility='default' filepath='include/linux/device.h' line='518' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5440'>
+          <var-decl name='coherent_dma_mask' type-id='91ce1af9' visibility='default' filepath='include/linux/device.h' line='519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='bus_dma_limit' type-id='91ce1af9' visibility='default' filepath='include/linux/device.h' line='524' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='dma_range_map' type-id='fdd592fa' visibility='default' filepath='include/linux/device.h' line='525' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5632'>
+          <var-decl name='dma_parms' type-id='9b4aaf1f' visibility='default' filepath='include/linux/device.h' line='527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5696'>
+          <var-decl name='dma_pools' type-id='72f469ec' visibility='default' filepath='include/linux/device.h' line='529' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5824'>
+          <var-decl name='dma_mem' type-id='5bfba86c' visibility='default' filepath='include/linux/device.h' line='532' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5888'>
+          <var-decl name='cma_area' type-id='6f67b38a' visibility='default' filepath='include/linux/device.h' line='536' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5952'>
+          <var-decl name='dma_io_tlb_mem' type-id='2699ed14' visibility='default' filepath='include/linux/device.h' line='540' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6016'>
+          <var-decl name='archdata' type-id='d3e142f5' visibility='default' filepath='include/linux/device.h' line='543' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6016'>
+          <var-decl name='of_node' type-id='9a537bbe' visibility='default' filepath='include/linux/device.h' line='545' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='fwnode' type-id='4a935625' visibility='default' filepath='include/linux/device.h' line='546' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6144'>
+          <var-decl name='devt' type-id='8504f260' visibility='default' filepath='include/linux/device.h' line='551' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6176'>
+          <var-decl name='id' type-id='19c2251e' visibility='default' filepath='include/linux/device.h' line='552' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6208'>
+          <var-decl name='devres_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/device.h' line='554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6272'>
+          <var-decl name='devres_head' type-id='72f469ec' visibility='default' filepath='include/linux/device.h' line='555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6400'>
+          <var-decl name='class' type-id='67aca04f' visibility='default' filepath='include/linux/device.h' line='557' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='groups' type-id='c97de1ac' visibility='default' filepath='include/linux/device.h' line='558' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6528'>
+          <var-decl name='release' type-id='dd787f72' visibility='default' filepath='include/linux/device.h' line='560' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6592'>
+          <var-decl name='iommu_group' type-id='0b19fc54' visibility='default' filepath='include/linux/device.h' line='561' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6656'>
+          <var-decl name='iommu' type-id='12ad7b84' visibility='default' filepath='include/linux/device.h' line='562' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6720'>
+          <var-decl name='removable' type-id='3d0327bc' visibility='default' filepath='include/linux/device.h' line='564' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6752'>
+          <var-decl name='offline_disabled' type-id='b50a4934' visibility='default' filepath='include/linux/device.h' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6753'>
+          <var-decl name='offline' type-id='b50a4934' visibility='default' filepath='include/linux/device.h' line='567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6754'>
+          <var-decl name='of_node_reused' type-id='b50a4934' visibility='default' filepath='include/linux/device.h' line='568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6755'>
+          <var-decl name='state_synced' type-id='b50a4934' visibility='default' filepath='include/linux/device.h' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6756'>
+          <var-decl name='can_match' type-id='b50a4934' visibility='default' filepath='include/linux/device.h' line='570' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6757'>
+          <var-decl name='dma_coherent' type-id='b50a4934' visibility='default' filepath='include/linux/device.h' line='574' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6784'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/device.h' line='579' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6848'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/device.h' line='580' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6912'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/device.h' line='581' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6976'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/device.h' line='582' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7040'>
+          <var-decl name='android_kabi_reserved5' type-id='91ce1af9' visibility='default' filepath='include/linux/device.h' line='583' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7104'>
+          <var-decl name='android_kabi_reserved6' type-id='91ce1af9' visibility='default' filepath='include/linux/device.h' line='584' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7168'>
+          <var-decl name='android_kabi_reserved7' type-id='91ce1af9' visibility='default' filepath='include/linux/device.h' line='585' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7232'>
+          <var-decl name='android_kabi_reserved8' type-id='91ce1af9' visibility='default' filepath='include/linux/device.h' line='586' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cb341b9a' size-in-bits='64' id='66ebcd54'/>
+      <pointer-type-def type-id='b31f003f' size-in-bits='64' id='66ec8db7'/>
+      <class-decl name='cgroup_root' size-in-bits='52928' is-struct='yes' visibility='default' filepath='include/linux/cgroup-defs.h' line='499' column='1' id='66f1e832'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kf_root' type-id='e18defdb' visibility='default' filepath='include/linux/cgroup-defs.h' line='500' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='subsys_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/cgroup-defs.h' line='503' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='hierarchy_id' type-id='95e97e5e' visibility='default' filepath='include/linux/cgroup-defs.h' line='506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cgrp' type-id='ab9643dd' visibility='default' filepath='include/linux/cgroup-defs.h' line='509' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19328'>
+          <var-decl name='cgrp_ancestor_id_storage' type-id='91ce1af9' visibility='default' filepath='include/linux/cgroup-defs.h' line='512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19392'>
+          <var-decl name='nr_cgrps' type-id='49178f86' visibility='default' filepath='include/linux/cgroup-defs.h' line='515' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19456'>
+          <var-decl name='root_list' type-id='72f469ec' visibility='default' filepath='include/linux/cgroup-defs.h' line='518' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19584'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/cgroup-defs.h' line='521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19616'>
+          <var-decl name='release_agent_path' type-id='d16c6df4' visibility='default' filepath='include/linux/cgroup-defs.h' line='524' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='52384'>
+          <var-decl name='name' type-id='59daf3ef' visibility='default' filepath='include/linux/cgroup-defs.h' line='527' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='66f5cf2a'>
+        <parameter type-id='15b1f129'/>
+        <parameter type-id='44ea1984'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e4083e44' size-in-bits='64' id='66fa472a'/>
+      <class-decl name='address_space_operations' size-in-bits='1664' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='374' column='1' id='66fa8ce5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='writepage' type-id='8b8bc11e' visibility='default' filepath='include/linux/fs.h' line='375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='readpage' type-id='ab57fa9e' visibility='default' filepath='include/linux/fs.h' line='376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='writepages' type-id='01ffd89c' visibility='default' filepath='include/linux/fs.h' line='379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='set_page_dirty' type-id='1654d99a' visibility='default' filepath='include/linux/fs.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='readpages' type-id='230dd919' visibility='default' filepath='include/linux/fs.h' line='388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='readahead' type-id='d8c22f87' visibility='default' filepath='include/linux/fs.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='write_begin' type-id='4eb95ade' visibility='default' filepath='include/linux/fs.h' line='392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='write_end' type-id='e6da64f6' visibility='default' filepath='include/linux/fs.h' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='bmap' type-id='aecbf18b' visibility='default' filepath='include/linux/fs.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='invalidatepage' type-id='d8db14d1' visibility='default' filepath='include/linux/fs.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='releasepage' type-id='919b335b' visibility='default' filepath='include/linux/fs.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='freepage' type-id='2f974a69' visibility='default' filepath='include/linux/fs.h' line='403' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='direct_IO' type-id='227e209d' visibility='default' filepath='include/linux/fs.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='migratepage' type-id='10451dea' visibility='default' filepath='include/linux/fs.h' line='409' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='isolate_page' type-id='a8faf36f' visibility='default' filepath='include/linux/fs.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='putback_page' type-id='2f974a69' visibility='default' filepath='include/linux/fs.h' line='412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='launder_page' type-id='1654d99a' visibility='default' filepath='include/linux/fs.h' line='413' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='is_partially_uptodate' type-id='800c67c2' visibility='default' filepath='include/linux/fs.h' line='414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='is_dirty_writeback' type-id='6af64a09' visibility='default' filepath='include/linux/fs.h' line='416' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='error_remove_page' type-id='2c5f769d' visibility='default' filepath='include/linux/fs.h' line='417' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='swap_activate' type-id='2eb7248e' visibility='default' filepath='include/linux/fs.h' line='420' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='swap_deactivate' type-id='88909596' visibility='default' filepath='include/linux/fs.h' line='422' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='424' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='425' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='427' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cc3fe760' size-in-bits='64' id='670156c6'/>
+      <class-decl name='hid_device' size-in-bits='62848' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='557' column='1' id='6703ad9d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev_rdesc' type-id='474e5dcc' visibility='default' filepath='include/linux/hid.h' line='558' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev_rsize' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='559' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rdesc' type-id='474e5dcc' visibility='default' filepath='include/linux/hid.h' line='560' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rsize' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='561' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='collection' type-id='f2428caf' visibility='default' filepath='include/linux/hid.h' line='562' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='collection_size' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='563' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='maxcollection' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='564' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='maxapplication' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='bus' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='432'>
+          <var-decl name='group' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='vendor' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='product' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='version' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='570' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='type' type-id='fa954a4e' visibility='default' filepath='include/linux/hid.h' line='571' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='country' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='572' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='report_enum' type-id='e8e17bcc' visibility='default' filepath='include/linux/hid.h' line='573' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='50368'>
+          <var-decl name='led_work' type-id='ef9025d0' visibility='default' filepath='include/linux/hid.h' line='574' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='50752'>
+          <var-decl name='driver_input_lock' type-id='011244e5' visibility='default' filepath='include/linux/hid.h' line='576' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='50944'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/hid.h' line='577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='58240'>
+          <var-decl name='driver' type-id='cbd2074d' visibility='default' filepath='include/linux/hid.h' line='578' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='58304'>
+          <var-decl name='ll_driver' type-id='7073b1dc' visibility='default' filepath='include/linux/hid.h' line='580' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='58368'>
+          <var-decl name='ll_open_lock' type-id='925167dc' visibility='default' filepath='include/linux/hid.h' line='581' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='58752'>
+          <var-decl name='ll_open_count' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='582' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='58816'>
+          <var-decl name='battery' type-id='c0c93c9e' visibility='default' filepath='include/linux/hid.h' line='590' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='58880'>
+          <var-decl name='battery_capacity' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='591' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='58912'>
+          <var-decl name='battery_min' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='592' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='58944'>
+          <var-decl name='battery_max' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='593' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='58976'>
+          <var-decl name='battery_report_type' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='594' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59008'>
+          <var-decl name='battery_report_id' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='595' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59040'>
+          <var-decl name='battery_status' type-id='82d56eba' visibility='default' filepath='include/linux/hid.h' line='596' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59072'>
+          <var-decl name='battery_avoid_query' type-id='b50a4934' visibility='default' filepath='include/linux/hid.h' line='597' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59136'>
+          <var-decl name='battery_ratelimit_time' type-id='fbc017ef' visibility='default' filepath='include/linux/hid.h' line='598' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59200'>
+          <var-decl name='status' type-id='7359adad' visibility='default' filepath='include/linux/hid.h' line='601' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59264'>
+          <var-decl name='claimed' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='602' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59296'>
+          <var-decl name='quirks' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='603' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59328'>
+          <var-decl name='io_started' type-id='b50a4934' visibility='default' filepath='include/linux/hid.h' line='604' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59392'>
+          <var-decl name='inputs' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='606' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59520'>
+          <var-decl name='hiddev' type-id='eaa32e2f' visibility='default' filepath='include/linux/hid.h' line='607' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59584'>
+          <var-decl name='hidraw' type-id='eaa32e2f' visibility='default' filepath='include/linux/hid.h' line='608' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59648'>
+          <var-decl name='name' type-id='e3204322' visibility='default' filepath='include/linux/hid.h' line='610' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='60672'>
+          <var-decl name='phys' type-id='59daf3ef' visibility='default' filepath='include/linux/hid.h' line='611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='61184'>
+          <var-decl name='uniq' type-id='59daf3ef' visibility='default' filepath='include/linux/hid.h' line='612' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='61696'>
+          <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/hid.h' line='614' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='61760'>
+          <var-decl name='ff_init' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='617' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='61824'>
+          <var-decl name='hiddev_connect' type-id='fde001a9' visibility='default' filepath='include/linux/hid.h' line='620' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='61888'>
+          <var-decl name='hiddev_disconnect' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='621' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='61952'>
+          <var-decl name='hiddev_hid_event' type-id='190eee1c' visibility='default' filepath='include/linux/hid.h' line='622' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='62016'>
+          <var-decl name='hiddev_report_event' type-id='e23057dc' visibility='default' filepath='include/linux/hid.h' line='624' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='62080'>
+          <var-decl name='debug' type-id='8efea9e5' visibility='default' filepath='include/linux/hid.h' line='627' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='62144'>
+          <var-decl name='debug_dir' type-id='27675065' visibility='default' filepath='include/linux/hid.h' line='628' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='62208'>
+          <var-decl name='debug_rdesc' type-id='27675065' visibility='default' filepath='include/linux/hid.h' line='629' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='62272'>
+          <var-decl name='debug_events' type-id='27675065' visibility='default' filepath='include/linux/hid.h' line='630' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='62336'>
+          <var-decl name='debug_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='631' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='62464'>
+          <var-decl name='debug_list_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/hid.h' line='632' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='62528'>
+          <var-decl name='debug_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/hid.h' line='633' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='62720'>
+          <var-decl name='' type-id='ac5ab5e1' visibility='default' filepath='include/linux/hid.h' line='635' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='62784'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/hid.h' line='636' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='wait_queue_func_t' type-id='3e643710' filepath='include/linux/wait.h' line='16' column='1' id='67119c17'/>
+      <function-type size-in-bits='64' id='67173869'>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='c60ba652'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='crypto_rng' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/crypto/rng.h' line='54' column='1' id='673937f2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='0328c8b6' visibility='default' filepath='include/crypto/rng.h' line='55' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='cred' size-in-bits='1408' is-struct='yes' visibility='default' filepath='include/linux/cred.h' line='110' column='1' id='6739dd09'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='usage' type-id='49178f86' visibility='default' filepath='include/linux/cred.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='uid' type-id='d80b72e6' visibility='default' filepath='include/linux/cred.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='gid' type-id='094d8048' visibility='default' filepath='include/linux/cred.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='suid' type-id='d80b72e6' visibility='default' filepath='include/linux/cred.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sgid' type-id='094d8048' visibility='default' filepath='include/linux/cred.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='euid' type-id='d80b72e6' visibility='default' filepath='include/linux/cred.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='egid' type-id='094d8048' visibility='default' filepath='include/linux/cred.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='fsuid' type-id='d80b72e6' visibility='default' filepath='include/linux/cred.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='fsgid' type-id='094d8048' visibility='default' filepath='include/linux/cred.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='securebits' type-id='f0981eeb' visibility='default' filepath='include/linux/cred.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='cap_inheritable' type-id='7496b151' visibility='default' filepath='include/linux/cred.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='cap_permitted' type-id='7496b151' visibility='default' filepath='include/linux/cred.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='cap_effective' type-id='7496b151' visibility='default' filepath='include/linux/cred.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='cap_bset' type-id='7496b151' visibility='default' filepath='include/linux/cred.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='cap_ambient' type-id='7496b151' visibility='default' filepath='include/linux/cred.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='jit_keyring' type-id='002ac4a6' visibility='default' filepath='include/linux/cred.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='session_keyring' type-id='204a4632' visibility='default' filepath='include/linux/cred.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='process_keyring' type-id='204a4632' visibility='default' filepath='include/linux/cred.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='thread_keyring' type-id='204a4632' visibility='default' filepath='include/linux/cred.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='request_key_auth' type-id='204a4632' visibility='default' filepath='include/linux/cred.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='security' type-id='eaa32e2f' visibility='default' filepath='include/linux/cred.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='user' type-id='273a7d34' visibility='default' filepath='include/linux/cred.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='user_ns' type-id='c0ced320' visibility='default' filepath='include/linux/cred.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='ucounts' type-id='b1d4934a' visibility='default' filepath='include/linux/cred.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='group_info' type-id='383471a1' visibility='default' filepath='include/linux/cred.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='' type-id='ac5ab62f' visibility='default' filepath='include/linux/cred.h' line='149' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='thermal_zone_of_device_ops' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/thermal.h' line='324' column='1' id='67409b07'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='get_temp' type-id='bbaaa2c4' visibility='default' filepath='include/linux/thermal.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='get_trend' type-id='a2abe05f' visibility='default' filepath='include/linux/thermal.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='set_trips' type-id='ccb77b5b' visibility='default' filepath='include/linux/thermal.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='set_emul_temp' type-id='dbff155c' visibility='default' filepath='include/linux/thermal.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='set_trip_temp' type-id='ccb77b5b' visibility='default' filepath='include/linux/thermal.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='change_mode' type-id='c31f35ac' visibility='default' filepath='include/linux/thermal.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='hot' type-id='b7f9d8e6' visibility='default' filepath='include/linux/thermal.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='critical' type-id='b7f9d8e6' visibility='default' filepath='include/linux/thermal.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/thermal.h' line='334' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='674bdea8'>
+        <parameter type-id='b9af02c3'/>
+        <parameter type-id='cd44bc95'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='timezone' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/time.h' line='33' column='1' id='6751193a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tz_minuteswest' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/time.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='tz_dsttime' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/time.h' line='35' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='18f5dff0' size-in-bits='64' id='67659502'/>
+      <pointer-type-def type-id='9359b7f2' size-in-bits='64' id='67681d50'/>
+      <pointer-type-def type-id='ac79eec6' size-in-bits='64' id='6769eb8b'/>
+      <class-decl name='v4l2_selection' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1255' column='1' id='676b848c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='target' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='r' type-id='3dbd4e78' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='reserved' type-id='43885e7a' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1260' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pci_epf_bar' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/pci-epf.h' line='108' column='1' id='676dd99b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='phys_addr' type-id='cf29c9b3' visibility='default' filepath='include/linux/pci-epf.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='addr' type-id='eaa32e2f' visibility='default' filepath='include/linux/pci-epf.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='include/linux/pci-epf.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='barno' type-id='ba7a26c1' visibility='default' filepath='include/linux/pci-epf.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/linux/pci-epf.h' line='113' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2873dcbb' size-in-bits='64' id='676fff47'/>
+      <pointer-type-def type-id='2c1be8c3' size-in-bits='64' id='6780605f'/>
+      <pointer-type-def type-id='1a814584' size-in-bits='64' id='6780b0ea'/>
+      <function-type size-in-bits='64' id='6788fb9a'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='1d2c2b85'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='bh_end_io_t' type-id='e1740daa' filepath='include/linux/buffer_head.h' line='49' column='1' id='6797a3ea'/>
+      <pointer-type-def type-id='bcc93c81' size-in-bits='64' id='679c2b79'/>
+      <pointer-type-def type-id='36b209ce' size-in-bits='64' id='679eb7c8'/>
+      <function-type size-in-bits='64' id='679f0c08'>
+        <parameter type-id='d35aee0a'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='cd7d3c9d' const='yes' id='67a1c23c'/>
+      <pointer-type-def type-id='a80d6b6e' size-in-bits='64' id='67a2c0c8'/>
+      <pointer-type-def type-id='d5551a73' size-in-bits='64' id='67a981e3'/>
+      <enum-decl name='devlink_reload_limit' filepath='include/uapi/linux/devlink.h' line='328' column='1' id='67ab6f39'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEVLINK_RELOAD_LIMIT_UNSPEC' value='0'/>
+        <enumerator name='DEVLINK_RELOAD_LIMIT_NO_RESET' value='1'/>
+        <enumerator name='__DEVLINK_RELOAD_LIMIT_MAX' value='2'/>
+        <enumerator name='DEVLINK_RELOAD_LIMIT_MAX' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='1de2f9c3' size-in-bits='64' id='67ac9797'/>
+      <pointer-type-def type-id='fd48a067' size-in-bits='64' id='67aca04f'/>
+      <pointer-type-def type-id='7ac013b4' size-in-bits='64' id='67acad02'/>
+      <pointer-type-def type-id='aec72305' size-in-bits='64' id='67adf9a9'/>
+      <pointer-type-def type-id='16c375b8' size-in-bits='64' id='67b214d6'/>
+      <class-decl name='rcu_node' is-struct='yes' visibility='default' is-declaration-only='yes' id='67b24a02'/>
+      <array-type-def dimensions='1' type-id='2fced0dc' size-in-bits='5984' id='67bab923'>
+        <subrange length='187' type-id='7ff19f0f' id='a87f2d9b'/>
+      </array-type-def>
+      <pointer-type-def type-id='d24b8c9c' size-in-bits='64' id='67bbaeda'/>
+      <array-type-def dimensions='1' type-id='f0981eeb' size-in-bits='320' id='67c1c82c'>
+        <subrange length='10' type-id='7ff19f0f' id='487da03a'/>
+      </array-type-def>
+      <enum-decl name='bpf_attach_type' filepath='include/uapi/linux/bpf.h' line='966' column='1' id='67ce11ed'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='BPF_CGROUP_INET_INGRESS' value='0'/>
+        <enumerator name='BPF_CGROUP_INET_EGRESS' value='1'/>
+        <enumerator name='BPF_CGROUP_INET_SOCK_CREATE' value='2'/>
+        <enumerator name='BPF_CGROUP_SOCK_OPS' value='3'/>
+        <enumerator name='BPF_SK_SKB_STREAM_PARSER' value='4'/>
+        <enumerator name='BPF_SK_SKB_STREAM_VERDICT' value='5'/>
+        <enumerator name='BPF_CGROUP_DEVICE' value='6'/>
+        <enumerator name='BPF_SK_MSG_VERDICT' value='7'/>
+        <enumerator name='BPF_CGROUP_INET4_BIND' value='8'/>
+        <enumerator name='BPF_CGROUP_INET6_BIND' value='9'/>
+        <enumerator name='BPF_CGROUP_INET4_CONNECT' value='10'/>
+        <enumerator name='BPF_CGROUP_INET6_CONNECT' value='11'/>
+        <enumerator name='BPF_CGROUP_INET4_POST_BIND' value='12'/>
+        <enumerator name='BPF_CGROUP_INET6_POST_BIND' value='13'/>
+        <enumerator name='BPF_CGROUP_UDP4_SENDMSG' value='14'/>
+        <enumerator name='BPF_CGROUP_UDP6_SENDMSG' value='15'/>
+        <enumerator name='BPF_LIRC_MODE2' value='16'/>
+        <enumerator name='BPF_FLOW_DISSECTOR' value='17'/>
+        <enumerator name='BPF_CGROUP_SYSCTL' value='18'/>
+        <enumerator name='BPF_CGROUP_UDP4_RECVMSG' value='19'/>
+        <enumerator name='BPF_CGROUP_UDP6_RECVMSG' value='20'/>
+        <enumerator name='BPF_CGROUP_GETSOCKOPT' value='21'/>
+        <enumerator name='BPF_CGROUP_SETSOCKOPT' value='22'/>
+        <enumerator name='BPF_TRACE_RAW_TP' value='23'/>
+        <enumerator name='BPF_TRACE_FENTRY' value='24'/>
+        <enumerator name='BPF_TRACE_FEXIT' value='25'/>
+        <enumerator name='BPF_MODIFY_RETURN' value='26'/>
+        <enumerator name='BPF_LSM_MAC' value='27'/>
+        <enumerator name='BPF_TRACE_ITER' value='28'/>
+        <enumerator name='BPF_CGROUP_INET4_GETPEERNAME' value='29'/>
+        <enumerator name='BPF_CGROUP_INET6_GETPEERNAME' value='30'/>
+        <enumerator name='BPF_CGROUP_INET4_GETSOCKNAME' value='31'/>
+        <enumerator name='BPF_CGROUP_INET6_GETSOCKNAME' value='32'/>
+        <enumerator name='BPF_XDP_DEVMAP' value='33'/>
+        <enumerator name='BPF_CGROUP_INET_SOCK_RELEASE' value='34'/>
+        <enumerator name='BPF_XDP_CPUMAP' value='35'/>
+        <enumerator name='BPF_SK_LOOKUP' value='36'/>
+        <enumerator name='BPF_XDP' value='37'/>
+        <enumerator name='BPF_SK_SKB_VERDICT' value='38'/>
+        <enumerator name='BPF_SK_REUSEPORT_SELECT' value='39'/>
+        <enumerator name='BPF_SK_REUSEPORT_SELECT_OR_MIGRATE' value='40'/>
+        <enumerator name='BPF_PERF_EVENT' value='41'/>
+        <enumerator name='__MAX_BPF_ATTACH_TYPE' value='42'/>
+      </enum-decl>
+      <pointer-type-def type-id='a1b485c4' size-in-bits='64' id='67d012a2'/>
+      <pointer-type-def type-id='82096067' size-in-bits='64' id='67d1ebff'/>
+      <array-type-def dimensions='1' type-id='cc256810' size-in-bits='2688' id='67d619b5'>
+        <subrange length='7' type-id='7ff19f0f' id='16fc326e'/>
+      </array-type-def>
+      <qualified-type-def type-id='1f2b9a61' const='yes' id='67d8ed84'/>
+      <pointer-type-def type-id='53edae20' size-in-bits='64' id='67da5e52'/>
+      <class-decl name='iova_domain' size-in-bits='15296' is-struct='yes' visibility='default' filepath='include/linux/iova.h' line='68' column='1' id='67db36ed'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='iova_rbtree_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/iova.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rbroot' type-id='dec44472' visibility='default' filepath='include/linux/iova.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cached_node' type-id='e6532500' visibility='default' filepath='include/linux/iova.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cached32_node' type-id='e6532500' visibility='default' filepath='include/linux/iova.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='granule' type-id='7359adad' visibility='default' filepath='include/linux/iova.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='start_pfn' type-id='7359adad' visibility='default' filepath='include/linux/iova.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dma_32bit_pfn' type-id='7359adad' visibility='default' filepath='include/linux/iova.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='max32_alloc_size' type-id='7359adad' visibility='default' filepath='include/linux/iova.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='fq' type-id='6532190a' visibility='default' filepath='include/linux/iova.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='fq_flush_start_cnt' type-id='28ee064c' visibility='default' filepath='include/linux/iova.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='fq_flush_finish_cnt' type-id='28ee064c' visibility='default' filepath='include/linux/iova.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='anchor' type-id='f3a719f4' visibility='default' filepath='include/linux/iova.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='rcaches' type-id='47d6ca3f' visibility='default' filepath='include/linux/iova.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14464'>
+          <var-decl name='flush_cb' type-id='a7bae79c' visibility='default' filepath='include/linux/iova.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14528'>
+          <var-decl name='entry_dtor' type-id='5f724086' visibility='default' filepath='include/linux/iova.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14592'>
+          <var-decl name='fq_timer' type-id='abe41e67' visibility='default' filepath='include/linux/iova.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15040'>
+          <var-decl name='fq_timer_on' type-id='49178f86' visibility='default' filepath='include/linux/iova.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15104'>
+          <var-decl name='cpuhp_dead' type-id='03a4a074' visibility='default' filepath='include/linux/iova.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15232'>
+          <var-decl name='best_fit' type-id='b50a4934' visibility='default' filepath='include/linux/iova.h' line='99' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='serio' size-in-bits='10432' is-struct='yes' visibility='default' filepath='include/linux/serio.h' line='21' column='1' id='67eab439'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='port_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/serio.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/linux/serio.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='phys' type-id='16dc656a' visibility='default' filepath='include/linux/serio.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='firmware_id' type-id='e3204322' visibility='default' filepath='include/linux/serio.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='manual_bind' type-id='b50a4934' visibility='default' filepath='include/linux/serio.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1608'>
+          <var-decl name='id' type-id='6119d604' visibility='default' filepath='include/linux/serio.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/serio.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='write' type-id='759d27dc' visibility='default' filepath='include/linux/serio.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='open' type-id='88cd8be5' visibility='default' filepath='include/linux/serio.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='close' type-id='3e5cde94' visibility='default' filepath='include/linux/serio.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='start' type-id='88cd8be5' visibility='default' filepath='include/linux/serio.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='stop' type-id='3e5cde94' visibility='default' filepath='include/linux/serio.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='parent' type-id='95dc69d1' visibility='default' filepath='include/linux/serio.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='child_node' type-id='72f469ec' visibility='default' filepath='include/linux/serio.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='children' type-id='72f469ec' visibility='default' filepath='include/linux/serio.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='depth' type-id='f0981eeb' visibility='default' filepath='include/linux/serio.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='drv' type-id='1065554a' visibility='default' filepath='include/linux/serio.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='drv_mutex' type-id='925167dc' visibility='default' filepath='include/linux/serio.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/serio.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10176'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/serio.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10304'>
+          <var-decl name='ps2_cmd_mutex' type-id='e0ea832a' visibility='default' filepath='include/linux/serio.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10368'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/serio.h' line='66' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='34401d0d' size-in-bits='64' id='67ede465'/>
+      <pointer-type-def type-id='3f4fbc09' size-in-bits='64' id='67efc3a5'/>
+      <pointer-type-def type-id='514fe525' size-in-bits='64' id='67f526b5'/>
+      <pointer-type-def type-id='02ee425a' size-in-bits='64' id='67f66cfc'/>
+      <typedef-decl name='xhci_get_quirks_t' type-id='da11b16a' filepath='drivers/usb/host/xhci.h' line='2107' column='1' id='67f831c0'/>
+      <typedef-decl name='snd_pcm_format_t' type-id='95e97e5e' filepath='include/uapi/sound/asound.h' line='196' column='1' id='67fa9bd5'/>
+      <pointer-type-def type-id='70e959e4' size-in-bits='64' id='68074686'/>
+      <pointer-type-def type-id='b5d4a6d2' size-in-bits='64' id='680bf43c'/>
+      <function-type size-in-bits='64' id='6815c34a'>
+        <parameter type-id='58ed56f5'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='9c313c2d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='3cad9e1a' size-in-bits='384' id='6816d906'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <pointer-type-def type-id='c148e595' size-in-bits='64' id='68197365'/>
+      <function-type size-in-bits='64' id='68227056'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='425496d7' size-in-bits='64' id='6829b047'/>
+      <qualified-type-def type-id='8861584a' const='yes' id='682ab981'/>
+      <class-decl name='snd_timer_instance' size-in-bits='1728' is-struct='yes' visibility='default' filepath='include/sound/timer.h' line='87' column='1' id='682b5b84'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='timer' type-id='6ee1a870' visibility='default' filepath='include/sound/timer.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='owner' type-id='26a90f95' visibility='default' filepath='include/sound/timer.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/sound/timer.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/timer.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='private_free' type-id='87af745b' visibility='default' filepath='include/sound/timer.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='callback' type-id='f619ef4b' visibility='default' filepath='include/sound/timer.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ccallback' type-id='4315d79a' visibility='default' filepath='include/sound/timer.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='disconnect' type-id='87af745b' visibility='default' filepath='include/sound/timer.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='callback_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/timer.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ticks' type-id='7359adad' visibility='default' filepath='include/sound/timer.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='cticks' type-id='7359adad' visibility='default' filepath='include/sound/timer.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='pticks' type-id='7359adad' visibility='default' filepath='include/sound/timer.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='resolution' type-id='7359adad' visibility='default' filepath='include/sound/timer.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='lost' type-id='7359adad' visibility='default' filepath='include/sound/timer.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='slave_class' type-id='95e97e5e' visibility='default' filepath='include/sound/timer.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='slave_id' type-id='f0981eeb' visibility='default' filepath='include/sound/timer.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='open_list' type-id='72f469ec' visibility='default' filepath='include/sound/timer.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='active_list' type-id='72f469ec' visibility='default' filepath='include/sound/timer.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='ack_list' type-id='72f469ec' visibility='default' filepath='include/sound/timer.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='slave_list_head' type-id='72f469ec' visibility='default' filepath='include/sound/timer.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='slave_active_head' type-id='72f469ec' visibility='default' filepath='include/sound/timer.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='master' type-id='0d08ac62' visibility='default' filepath='include/sound/timer.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/timer.h' line='115' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tcp_rack' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/tcp.h' line='214' column='1' id='682f92a2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mstamp' type-id='91ce1af9' visibility='default' filepath='include/linux/tcp.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rtt_us' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='end_seq' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='last_delivered' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='reo_wnd_steps' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='168'>
+          <var-decl name='reo_wnd_persist' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='173'>
+          <var-decl name='dsack_seen' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='174'>
+          <var-decl name='advanced' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='223' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6d6fcd23' size-in-bits='64' id='682fb763'/>
+      <function-type size-in-bits='64' id='6831a786'>
+        <parameter type-id='a970a64c'/>
+        <parameter type-id='6e160b14'/>
+        <parameter type-id='6e160b14'/>
+        <parameter type-id='91ce1af9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='bdae35f4' const='yes' id='683a8a93'/>
+      <pointer-type-def type-id='355fab89' size-in-bits='64' id='6847d33d'/>
+      <typedef-decl name='netdev_tx_t' type-id='e246a80b' filepath='include/linux/netdevice.h' line='122' column='1' id='6849a88c'/>
+      <pointer-type-def type-id='4041f6de' size-in-bits='64' id='684afc90'/>
+      <pointer-type-def type-id='2b18e57b' size-in-bits='64' id='6850d327'/>
+      <pointer-type-def type-id='3b03705e' size-in-bits='64' id='6850e780'/>
+      <class-decl name='wiphy' size-in-bits='13312' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5633' column='1' id='68523a94'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mtx' type-id='925167dc' visibility='default' filepath='include/net/cfg80211.h' line='5634' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='perm_addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='5638' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='432'>
+          <var-decl name='addr_mask' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='5639' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='addresses' type-id='01b378ab' visibility='default' filepath='include/net/cfg80211.h' line='5641' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='mgmt_stypes' type-id='0cda9080' visibility='default' filepath='include/net/cfg80211.h' line='5643' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='iface_combinations' type-id='fa32a449' visibility='default' filepath='include/net/cfg80211.h' line='5645' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='n_iface_combinations' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5646' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='software_iftypes' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5647' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='752'>
+          <var-decl name='n_addresses' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5649' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='interface_modes' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5652' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='784'>
+          <var-decl name='max_acl_mac_addrs' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5654' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5656' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='regulatory_flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5656' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='features' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5656' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='ext_features' type-id='cef57087' visibility='default' filepath='include/net/cfg80211.h' line='5657' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='ap_sme_capa' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5659' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='signal_type' type-id='b8524648' visibility='default' filepath='include/net/cfg80211.h' line='5661' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='bss_priv_size' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5663' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='max_scan_ssids' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5664' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1096'>
+          <var-decl name='max_sched_scan_reqs' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5665' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1104'>
+          <var-decl name='max_sched_scan_ssids' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5666' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1112'>
+          <var-decl name='max_match_sets' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5667' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='max_scan_ie_len' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5668' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1136'>
+          <var-decl name='max_sched_scan_ie_len' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5669' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='max_sched_scan_plans' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5670' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='max_sched_scan_plan_interval' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5671' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='max_sched_scan_plan_iterations' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5672' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='n_cipher_suites' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5674' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='cipher_suites' type-id='aded214c' visibility='default' filepath='include/net/cfg80211.h' line='5675' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='n_akm_suites' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5677' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='akm_suites' type-id='aded214c' visibility='default' filepath='include/net/cfg80211.h' line='5678' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='iftype_akm_suites' type-id='6196d741' visibility='default' filepath='include/net/cfg80211.h' line='5680' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='num_iftype_akm_suites' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5681' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='retry_short' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5683' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1576'>
+          <var-decl name='retry_long' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5684' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='frag_threshold' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5685' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1632'>
+          <var-decl name='rts_threshold' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5686' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='coverage_class' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5687' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1672'>
+          <var-decl name='fw_version' type-id='16dc656a' visibility='default' filepath='include/net/cfg80211.h' line='5689' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1952'>
+          <var-decl name='hw_version' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5690' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='wowlan' type-id='78a34b70' visibility='default' filepath='include/net/cfg80211.h' line='5693' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='wowlan_config' type-id='9d025b00' visibility='default' filepath='include/net/cfg80211.h' line='5694' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='max_remain_on_channel_duration' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5697' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2128'>
+          <var-decl name='max_num_pmkids' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5699' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2144'>
+          <var-decl name='available_antennas_tx' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5701' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='available_antennas_rx' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5702' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2208'>
+          <var-decl name='probe_resp_offload' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5704' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='extended_capabilities' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5706' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='extended_capabilities_mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5706' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='extended_capabilities_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5707' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='iftype_ext_capab' type-id='3ca25343' visibility='default' filepath='include/net/cfg80211.h' line='5709' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='num_iftype_ext_capab' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5710' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='privid' type-id='eaa32e2f' visibility='default' filepath='include/net/cfg80211.h' line='5712' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='bands' type-id='6816d906' visibility='default' filepath='include/net/cfg80211.h' line='5714' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='reg_notifier' type-id='39ee8359' visibility='default' filepath='include/net/cfg80211.h' line='5716' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='regd' type-id='4e819401' visibility='default' filepath='include/net/cfg80211.h' line='5721' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/net/cfg80211.h' line='5723' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10432'>
+          <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='5725' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10496'>
+          <var-decl name='debugfsdir' type-id='27675065' visibility='default' filepath='include/net/cfg80211.h' line='5727' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10560'>
+          <var-decl name='ht_capa_mod_mask' type-id='81f1a1a8' visibility='default' filepath='include/net/cfg80211.h' line='5729' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10624'>
+          <var-decl name='vht_capa_mod_mask' type-id='fffb07a4' visibility='default' filepath='include/net/cfg80211.h' line='5730' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10688'>
+          <var-decl name='wdev_list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='5732' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10816'>
+          <var-decl name='_net' type-id='c9df1e6c' visibility='default' filepath='include/net/cfg80211.h' line='5734' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10880'>
+          <var-decl name='coalesce' type-id='9ef499bf' visibility='default' filepath='include/net/cfg80211.h' line='5740' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10944'>
+          <var-decl name='vendor_commands' type-id='41e3f782' visibility='default' filepath='include/net/cfg80211.h' line='5742' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11008'>
+          <var-decl name='vendor_events' type-id='b188cc4f' visibility='default' filepath='include/net/cfg80211.h' line='5743' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11072'>
+          <var-decl name='n_vendor_commands' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5744' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11104'>
+          <var-decl name='n_vendor_events' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5744' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11136'>
+          <var-decl name='max_ap_assoc_sta' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5746' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11152'>
+          <var-decl name='max_num_csa_counters' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5748' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11168'>
+          <var-decl name='bss_select_support' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5750' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11200'>
+          <var-decl name='nan_supported_bands' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5752' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11232'>
+          <var-decl name='txq_limit' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5754' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11264'>
+          <var-decl name='txq_memory_limit' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5755' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11296'>
+          <var-decl name='txq_quantum' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5756' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11328'>
+          <var-decl name='tx_queue_len' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='5758' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11392'>
+          <var-decl name='support_mbssid' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5760' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11393'>
+          <var-decl name='support_only_he_mbssid' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5761' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11456'>
+          <var-decl name='pmsr_capa' type-id='5abfac26' visibility='default' filepath='include/net/cfg80211.h' line='5763' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11520'>
+          <var-decl name='tid_config_support' type-id='e7f44076' visibility='default' filepath='include/net/cfg80211.h' line='5768' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11712'>
+          <var-decl name='max_data_retry_count' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5770' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11776'>
+          <var-decl name='sar_capa' type-id='cf61e92f' visibility='default' filepath='include/net/cfg80211.h' line='5772' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11840'>
+          <var-decl name='rfkill' type-id='c5b94c75' visibility='default' filepath='include/net/cfg80211.h' line='5774' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11904'>
+          <var-decl name='mbssid_max_interfaces' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5776' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11912'>
+          <var-decl name='ema_max_profile_periodicity' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5777' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11920'>
+          <var-decl name='max_num_akm_suites' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5778' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11968'>
+          <var-decl name='' type-id='ac5ab6a9' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12032'>
+          <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5782' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12096'>
+          <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5783' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12160'>
+          <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5784' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12224'>
+          <var-decl name='android_backport_reserved5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5785' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12288'>
+          <var-decl name='android_backport_reserved6' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5786' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12352'>
+          <var-decl name='android_backport_reserved7' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5787' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12416'>
+          <var-decl name='android_backport_reserved8' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5788' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12480'>
+          <var-decl name='android_backport_reserved9' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5789' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12544'>
+          <var-decl name='android_backport_reserved10' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5790' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12608'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5792' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12672'>
+          <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5793' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12736'>
+          <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5794' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12800'>
+          <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5795' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12864'>
+          <var-decl name='android_vendor_data5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5796' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12928'>
+          <var-decl name='android_vendor_data6' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5797' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12992'>
+          <var-decl name='android_vendor_data7' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5798' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13056'>
+          <var-decl name='android_vendor_data8' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5799' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13120'>
+          <var-decl name='android_vendor_data9' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5800' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13184'>
+          <var-decl name='android_vendor_data10' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5801' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13248'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5804' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13312'>
+          <var-decl name='priv' type-id='e84913bd' visibility='default' filepath='include/net/cfg80211.h' line='5806' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='5cb8e7e2' size-in-bits='512' id='6853ab38'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='6858ea97'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='02f11ed4'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='68595236'>
+        <parameter type-id='27f3f5d8'/>
+        <parameter type-id='cf29c9b3'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='941ca9e2'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='0e3f80d9'/>
+      </function-type>
+      <class-decl name='vb2_mem_ops' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/media/videobuf2-core.h' line='118' column='1' id='68597e64'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='alloc' type-id='432697fd' visibility='default' filepath='include/media/videobuf2-core.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='put' type-id='b7f9d8e6' visibility='default' filepath='include/media/videobuf2-core.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='get_dmabuf' type-id='75a91379' visibility='default' filepath='include/media/videobuf2-core.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get_userptr' type-id='0c1f5dab' visibility='default' filepath='include/media/videobuf2-core.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='put_userptr' type-id='b7f9d8e6' visibility='default' filepath='include/media/videobuf2-core.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='prepare' type-id='b7f9d8e6' visibility='default' filepath='include/media/videobuf2-core.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='finish' type-id='b7f9d8e6' visibility='default' filepath='include/media/videobuf2-core.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='attach_dmabuf' type-id='7801a3a3' visibility='default' filepath='include/media/videobuf2-core.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='detach_dmabuf' type-id='b7f9d8e6' visibility='default' filepath='include/media/videobuf2-core.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='map_dmabuf' type-id='b9b212f5' visibility='default' filepath='include/media/videobuf2-core.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='unmap_dmabuf' type-id='b7f9d8e6' visibility='default' filepath='include/media/videobuf2-core.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='vaddr' type-id='33c6d87b' visibility='default' filepath='include/media/videobuf2-core.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='cookie' type-id='33c6d87b' visibility='default' filepath='include/media/videobuf2-core.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='num_users' type-id='caa804f2' visibility='default' filepath='include/media/videobuf2-core.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='mmap' type-id='f34c7de4' visibility='default' filepath='include/media/videobuf2-core.h' line='149' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='binder_uintptr_t' type-id='d3130597' filepath='include/uapi/linux/android/binder.h' line='107' column='1' id='6867e656'/>
+      <array-type-def dimensions='1' type-id='162c1c01' size-in-bits='256' id='68694f49'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='686e5e33'>
+        <parameter type-id='eb572b74'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='pinctrl_map_configs' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/pinctrl/machine.h' line='47' column='1' id='687781fc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='group_or_pin' type-id='80f4b756' visibility='default' filepath='include/linux/pinctrl/machine.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='configs' type-id='1d2c2b85' visibility='default' filepath='include/linux/pinctrl/machine.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='num_configs' type-id='f0981eeb' visibility='default' filepath='include/linux/pinctrl/machine.h' line='50' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='97851996' size-in-bits='infinite' id='687d975e'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='c13208bd' size-in-bits='64' id='68883d61'/>
+      <function-type size-in-bits='64' id='688a5520'>
+        <parameter type-id='108dbc98'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='0f1b379b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a532893d' size-in-bits='64' id='688dd15d'/>
+      <class-decl name='modversion_info' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/module.h' line='38' column='1' id='68a2869e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='crc' type-id='7359adad' visibility='default' filepath='include/linux/module.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='6093ff7c' visibility='default' filepath='include/linux/module.h' line='40' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5a9929eb' size-in-bits='64' id='68a2d05b'/>
+      <class-decl name='xt_table_info' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='248' column='1' id='68a72cd7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='number' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='initial_entries' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='hook_entry' type-id='4d5a4f46' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='underflow' type-id='4d5a4f46' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='stacksize' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='jumpstack' type-id='30e664af' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='entries' type-id='5e6516ee' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='267' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9e22fc50' size-in-bits='64' id='68a88aaa'/>
+      <array-type-def dimensions='1' type-id='b92c8d0d' size-in-bits='1600' id='68a92070'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='68adba6a'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='c9982f26'/>
+        <parameter type-id='26ea5d4c'/>
+        <parameter type-id='5d6479ae'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e151e1f6' size-in-bits='64' id='68b31938'/>
+      <class-decl name='module_layout' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/module.h' line='325' column='1' id='68b3d9a8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='eaa32e2f' visibility='default' filepath='include/linux/module.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='text_size' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ro_size' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='ro_after_init_size' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mtn' type-id='3351dce1' visibility='default' filepath='include/linux/module.h' line='338' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ptp_perout_request' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='107' column='1' id='68b40ed3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab613' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='period' type-id='2f9dd1de' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='' type-id='ac5ab614' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='125' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_printer' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/drm/drm_print.h' line='75' column='1' id='68b6a809'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='printfn' type-id='ef76b4f1' visibility='default' filepath='include/drm/drm_print.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='puts' type-id='12dffdbb' visibility='default' filepath='include/drm/drm_print.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='arg' type-id='eaa32e2f' visibility='default' filepath='include/drm/drm_print.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='prefix' type-id='80f4b756' visibility='default' filepath='include/drm/drm_print.h' line='80' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='snd_soc_dapm_type' filepath='include/sound/soc-dapm.h' line='518' column='1' id='68bb1ec5'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='snd_soc_dapm_input' value='0'/>
+        <enumerator name='snd_soc_dapm_output' value='1'/>
+        <enumerator name='snd_soc_dapm_mux' value='2'/>
+        <enumerator name='snd_soc_dapm_demux' value='3'/>
+        <enumerator name='snd_soc_dapm_mixer' value='4'/>
+        <enumerator name='snd_soc_dapm_mixer_named_ctl' value='5'/>
+        <enumerator name='snd_soc_dapm_pga' value='6'/>
+        <enumerator name='snd_soc_dapm_out_drv' value='7'/>
+        <enumerator name='snd_soc_dapm_adc' value='8'/>
+        <enumerator name='snd_soc_dapm_dac' value='9'/>
+        <enumerator name='snd_soc_dapm_micbias' value='10'/>
+        <enumerator name='snd_soc_dapm_mic' value='11'/>
+        <enumerator name='snd_soc_dapm_hp' value='12'/>
+        <enumerator name='snd_soc_dapm_spk' value='13'/>
+        <enumerator name='snd_soc_dapm_line' value='14'/>
+        <enumerator name='snd_soc_dapm_switch' value='15'/>
+        <enumerator name='snd_soc_dapm_vmid' value='16'/>
+        <enumerator name='snd_soc_dapm_pre' value='17'/>
+        <enumerator name='snd_soc_dapm_post' value='18'/>
+        <enumerator name='snd_soc_dapm_supply' value='19'/>
+        <enumerator name='snd_soc_dapm_pinctrl' value='20'/>
+        <enumerator name='snd_soc_dapm_regulator_supply' value='21'/>
+        <enumerator name='snd_soc_dapm_clock_supply' value='22'/>
+        <enumerator name='snd_soc_dapm_aif_in' value='23'/>
+        <enumerator name='snd_soc_dapm_aif_out' value='24'/>
+        <enumerator name='snd_soc_dapm_siggen' value='25'/>
+        <enumerator name='snd_soc_dapm_sink' value='26'/>
+        <enumerator name='snd_soc_dapm_dai_in' value='27'/>
+        <enumerator name='snd_soc_dapm_dai_out' value='28'/>
+        <enumerator name='snd_soc_dapm_dai_link' value='29'/>
+        <enumerator name='snd_soc_dapm_kcontrol' value='30'/>
+        <enumerator name='snd_soc_dapm_buffer' value='31'/>
+        <enumerator name='snd_soc_dapm_scheduler' value='32'/>
+        <enumerator name='snd_soc_dapm_effect' value='33'/>
+        <enumerator name='snd_soc_dapm_src' value='34'/>
+        <enumerator name='snd_soc_dapm_asrc' value='35'/>
+        <enumerator name='snd_soc_dapm_encoder' value='36'/>
+        <enumerator name='snd_soc_dapm_decoder' value='37'/>
+        <enumerator name='SND_SOC_DAPM_TYPE_COUNT' value='38'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='68bc5e16'>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <qualified-type-def type-id='ba44c7d8' const='yes' id='68c47b91'/>
+      <pointer-type-def type-id='a1aadc50' size-in-bits='64' id='68c675aa'/>
+      <function-type size-in-bits='64' id='68d3e576'>
+        <return type-id='fbc017ef'/>
+      </function-type>
+      <class-decl name='tcf_result' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/sch_generic.h' line='321' column='1' id='68d8e236'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab677' visibility='default' filepath='include/net/sch_generic.h' line='322' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='7d89f13e' size-in-bits='96' id='68da9d9e'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <qualified-type-def type-id='a3285bb7' const='yes' id='68dd2616'/>
+      <class-decl name='cfs_bandwidth' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='366' column='1' id='68e4a3af'/>
+      <pointer-type-def type-id='6d9d1901' size-in-bits='64' id='68e7068c'/>
+      <pointer-type-def type-id='ee504570' size-in-bits='64' id='68e72116'/>
+      <qualified-type-def type-id='40c992e3' const='yes' id='68e801ee'/>
+      <class-decl name='crypto_aead_spawn' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/crypto/internal/aead.h' line='29' column='1' id='68f033c6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='58ba85d8' visibility='default' filepath='include/crypto/internal/aead.h' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='68f1b7bd'>
+        <parameter type-id='f23e2572'/>
+        <parameter type-id='85d57723'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='68f50b14'>
+        <parameter type-id='ecb0ce18'/>
+        <parameter type-id='6b9b777a'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='pernet_operations' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/net/net_namespace.h' line='358' column='1' id='68f5a646'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/net_namespace.h' line='359' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='init' type-id='e83d6bbe' visibility='default' filepath='include/net/net_namespace.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pre_exit' type-id='9b92b29b' visibility='default' filepath='include/net/net_namespace.h' line='383' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='exit' type-id='9b92b29b' visibility='default' filepath='include/net/net_namespace.h' line='384' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='exit_batch' type-id='29f83363' visibility='default' filepath='include/net/net_namespace.h' line='385' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='id' type-id='807869d3' visibility='default' filepath='include/net/net_namespace.h' line='386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='include/net/net_namespace.h' line='387' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='l2tp_session_cfg' size-in-bits='384' is-struct='yes' visibility='default' filepath='net/l2tp/l2tp_core.h' line='48' column='1' id='68f8e66d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pw_type' type-id='748fba12' visibility='default' filepath='net/l2tp/l2tp_core.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='recv_seq' type-id='f0981eeb' visibility='default' filepath='net/l2tp/l2tp_core.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33'>
+          <var-decl name='send_seq' type-id='f0981eeb' visibility='default' filepath='net/l2tp/l2tp_core.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='34'>
+          <var-decl name='lns_mode' type-id='f0981eeb' visibility='default' filepath='net/l2tp/l2tp_core.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='l2specific_type' type-id='1dc6a898' visibility='default' filepath='net/l2tp/l2tp_core.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cookie' type-id='d2f7b56a' visibility='default' filepath='net/l2tp/l2tp_core.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cookie_len' type-id='95e97e5e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='peer_cookie' type-id='d2f7b56a' visibility='default' filepath='net/l2tp/l2tp_core.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='peer_cookie_len' type-id='95e97e5e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='reorder_timeout' type-id='95e97e5e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ifname' type-id='26a90f95' visibility='default' filepath='net/l2tp/l2tp_core.h' line='61' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bae213e3' size-in-bits='64' id='68f92bd7'/>
+      <pointer-type-def type-id='d3efde9e' size-in-bits='64' id='690433e0'/>
+      <pointer-type-def type-id='20638bb4' size-in-bits='64' id='69099556'/>
+      <function-type size-in-bits='64' id='6909d288'>
+        <parameter type-id='7efbcaaf'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='690d3bc2'>
+        <parameter type-id='bf6d816a'/>
+        <parameter type-id='0fda5689'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='262a563e' size-in-bits='64' id='6910c028'/>
+      <class-decl name='dquot' size-in-bits='1792' is-struct='yes' visibility='default' filepath='include/linux/quota.h' line='294' column='1' id='691a06da'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dq_hash' type-id='03a4a074' visibility='default' filepath='include/linux/quota.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dq_inuse' type-id='72f469ec' visibility='default' filepath='include/linux/quota.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dq_free' type-id='72f469ec' visibility='default' filepath='include/linux/quota.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dq_dirty' type-id='72f469ec' visibility='default' filepath='include/linux/quota.h' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='dq_lock' type-id='925167dc' visibility='default' filepath='include/linux/quota.h' line='299' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='dq_dqb_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/quota.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='dq_count' type-id='49178f86' visibility='default' filepath='include/linux/quota.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='dq_sb' type-id='42c8f564' visibility='default' filepath='include/linux/quota.h' line='302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='dq_id' type-id='72028e1c' visibility='default' filepath='include/linux/quota.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='dq_off' type-id='69bf7bee' visibility='default' filepath='include/linux/quota.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='dq_flags' type-id='7359adad' visibility='default' filepath='include/linux/quota.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='dq_dqb' type-id='bd17a943' visibility='default' filepath='include/linux/quota.h' line='306' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8468004b' size-in-bits='64' id='691d1b3b'/>
+      <pointer-type-def type-id='c0525226' size-in-bits='64' id='6925355c'/>
+      <pointer-type-def type-id='8f96e917' size-in-bits='64' id='69281b5f'/>
+      <typedef-decl name='v4l2_std_id' type-id='d3130597' filepath='include/uapi/linux/videodev2.h' line='1268' column='1' id='692d176e'/>
+      <typedef-decl name='ZSTD_compressionStage_e' type-id='a030bbe4' filepath='lib/zstd/compress.c' line='33' column='1' id='692e8e60'/>
+      <class-decl name='usb_composite_driver' size-in-bits='2816' is-struct='yes' visibility='default' filepath='include/linux/usb/composite.h' line='388' column='1' id='692fa8cc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/usb/composite.h' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='b5c13ec7' visibility='default' filepath='include/linux/usb/composite.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='strings' type-id='fa0eba8f' visibility='default' filepath='include/linux/usb/composite.h' line='391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='max_speed' type-id='4e532009' visibility='default' filepath='include/linux/usb/composite.h' line='392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='needs_serial' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/composite.h' line='393' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='bind' type-id='ced7d449' visibility='default' filepath='include/linux/usb/composite.h' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='unbind' type-id='ced7d449' visibility='default' filepath='include/linux/usb/composite.h' line='396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='disconnect' type-id='b2a3307c' visibility='default' filepath='include/linux/usb/composite.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='suspend' type-id='b2a3307c' visibility='default' filepath='include/linux/usb/composite.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='resume' type-id='b2a3307c' visibility='default' filepath='include/linux/usb/composite.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='gadget_driver' type-id='b718d3f9' visibility='default' filepath='include/linux/usb/composite.h' line='403' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='printk_record' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='41' column='1' id='69361cbf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='info' type-id='fae1bbc0' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='text_buf' type-id='26a90f95' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='text_buf_size' type-id='f0981eeb' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='44' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='driver_attribute' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/device/driver.h' line='139' column='1' id='694b0298'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='attr' type-id='a6222917' visibility='default' filepath='include/linux/device/driver.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='show' type-id='ce54d147' visibility='default' filepath='include/linux/device/driver.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='store' type-id='12c9f95b' visibility='default' filepath='include/linux/device/driver.h' line='142' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='2d82dfd6' size-in-bits='infinite' id='6950699e'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='82a4acbf' size-in-bits='64' id='6957e3f3'/>
+      <pointer-type-def type-id='001ff55a' size-in-bits='64' id='69646708'/>
+      <class-decl name='rproc_mem_entry' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/remoteproc.h' line='332' column='1' id='6965d464'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='va' type-id='eaa32e2f' visibility='default' filepath='include/linux/remoteproc.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='is_iomem' type-id='b50a4934' visibility='default' filepath='include/linux/remoteproc.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dma' type-id='cf29c9b3' visibility='default' filepath='include/linux/remoteproc.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='len' type-id='b59d7dce' visibility='default' filepath='include/linux/remoteproc.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='da' type-id='19c2251e' visibility='default' filepath='include/linux/remoteproc.h' line='337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/remoteproc.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/linux/remoteproc.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/remoteproc.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='rsc_offset' type-id='19c2251e' visibility='default' filepath='include/linux/remoteproc.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/linux/remoteproc.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='of_resm_idx' type-id='19c2251e' visibility='default' filepath='include/linux/remoteproc.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='alloc' type-id='06412f4e' visibility='default' filepath='include/linux/remoteproc.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='release' type-id='06412f4e' visibility='default' filepath='include/linux/remoteproc.h' line='345' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='key_user' size-in-bits='832' is-struct='yes' visibility='default' filepath='security/keys/internal.h' line='54' column='1' id='696d238e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='2a8a6332' visibility='default' filepath='security/keys/internal.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cons_lock' type-id='925167dc' visibility='default' filepath='security/keys/internal.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='security/keys/internal.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='usage' type-id='64615833' visibility='default' filepath='security/keys/internal.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='nkeys' type-id='49178f86' visibility='default' filepath='security/keys/internal.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='nikeys' type-id='49178f86' visibility='default' filepath='security/keys/internal.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='uid' type-id='d80b72e6' visibility='default' filepath='security/keys/internal.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='qnkeys' type-id='95e97e5e' visibility='default' filepath='security/keys/internal.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='qnbytes' type-id='95e97e5e' visibility='default' filepath='security/keys/internal.h' line='63' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c372d726' size-in-bits='64' id='696df79c'/>
+      <pointer-type-def type-id='986a13e4' size-in-bits='64' id='696ed472'/>
+      <pointer-type-def type-id='e98813cb' size-in-bits='64' id='6972ad8b'/>
+      <typedef-decl name='regmap_hw_read' type-id='acda35bb' filepath='include/linux/regmap.h' line='474' column='1' id='697414cd'/>
+      <pointer-type-def type-id='24f3731d' size-in-bits='64' id='6981b6e9'/>
+      <pointer-type-def type-id='0f81ed2a' size-in-bits='64' id='69881700'/>
+      <pointer-type-def type-id='c8915c86' size-in-bits='64' id='699131d0'/>
+      <class-decl name='wake_q_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/sched.h' line='726' column='1' id='69970be2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='b16791f0' visibility='default' filepath='include/linux/sched.h' line='727' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='699ab992'>
+        <parameter type-id='4db02c58'/>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='8f92235e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e162c03f' size-in-bits='64' id='69a3afa7'/>
+      <class-decl name='backlight_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/backlight.h' line='120' column='1' id='69a7508d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='options' type-id='f0981eeb' visibility='default' filepath='include/linux/backlight.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='update_status' type-id='53f7c7e3' visibility='default' filepath='include/linux/backlight.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='get_brightness' type-id='53f7c7e3' visibility='default' filepath='include/linux/backlight.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='check_fb' type-id='317f203e' visibility='default' filepath='include/linux/backlight.h' line='174' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6d93aa3a' size-in-bits='64' id='69a866d8'/>
+      <class-decl name='v4l2_plane_pix_format' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2257' column='1' id='69ab6968'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sizeimage' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bytesperline' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reserved' type-id='81144473' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2260' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3d75b067' size-in-bits='64' id='69b48bd3'/>
+      <pointer-type-def type-id='f3f27ff7' size-in-bits='64' id='69b48c13'/>
+      <class-decl name='pcie_port' size-in-bits='1600' is-struct='yes' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='180' column='1' id='69ba9ebc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='has_msi_ctrl' type-id='b50a4934' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cfg0_base' type-id='91ce1af9' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='va_cfg0_base' type-id='eaa32e2f' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cfg0_size' type-id='19c2251e' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='io_base' type-id='acc63fdf' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='io_bus_addr' type-id='2522883d' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='io_size' type-id='19c2251e' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='irq' type-id='95e97e5e' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ops' type-id='19739a37' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='msi_irq' type-id='95e97e5e' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='irq_domain' type-id='7544e824' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='msi_domain' type-id='7544e824' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='msi_data' type-id='cf29c9b3' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='msi_page' type-id='02f11ed4' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='msi_irq_chip' type-id='8846a616' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='num_vectors' type-id='19c2251e' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='irq_mask' type-id='1c6311dd' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='bridge' type-id='cb0dbc3c' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='msi_irq_in_use' type-id='f46d9f4d' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='201' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='69bc916d'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='eea6b025'/>
+        <parameter type-id='3eb7c31c'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='4adb0e6a'/>
+      </function-type>
+      <pointer-type-def type-id='bcdbd578' size-in-bits='64' id='69bd57be'/>
+      <typedef-decl name='loff_t' type-id='537a730e' filepath='include/linux/types.h' line='46' column='1' id='69bf7bee'/>
+      <pointer-type-def type-id='e3d8ce29' size-in-bits='64' id='69c138b1'/>
+      <function-type size-in-bits='64' id='69c72ccd'>
+        <parameter type-id='15d29710'/>
+        <parameter type-id='e15f3242'/>
+        <parameter type-id='f5bc338f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4443d9d9' size-in-bits='64' id='69d01989'/>
+      <pointer-type-def type-id='898c19a2' size-in-bits='64' id='69d3de54'/>
+      <qualified-type-def type-id='84d91c62' const='yes' id='69df97a3'/>
+      <qualified-type-def type-id='649f7ac8' const='yes' id='69e69bf1'/>
+      <class-decl name='mmc_data' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/mmc/core.h' line='114' column='1' id='69e72089'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='timeout_ns' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/core.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='timeout_clks' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/core.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='blksz' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/core.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='blocks' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/core.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='blk_addr' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/core.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='error' type-id='95e97e5e' visibility='default' filepath='include/linux/mmc/core.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/core.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='bytes_xfered' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/core.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='stop' type-id='6df3750c' visibility='default' filepath='include/linux/mmc/core.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mrq' type-id='47f117d4' visibility='default' filepath='include/linux/mmc/core.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='sg_len' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/core.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='sg_count' type-id='95e97e5e' visibility='default' filepath='include/linux/mmc/core.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='sg' type-id='bf3ef905' visibility='default' filepath='include/linux/mmc/core.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='host_cookie' type-id='a7832498' visibility='default' filepath='include/linux/mmc/core.h' line='140' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='trace_print_flags' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/tracepoint-defs.h' line='16' column='1' id='69f06cc6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mask' type-id='7359adad' visibility='default' filepath='include/linux/tracepoint-defs.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/tracepoint-defs.h' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='69f13be2'>
+        <parameter type-id='4db02c58'/>
+        <parameter type-id='11e02f83'/>
+        <parameter type-id='d1499e71'/>
+        <parameter type-id='5f493a9f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9b863e03' size-in-bits='64' id='69f4bad3'/>
+      <qualified-type-def type-id='9aadee6c' const='yes' id='69fa32fc'/>
+      <pointer-type-def type-id='f43da4de' size-in-bits='64' id='69fbf2a0'/>
+      <class-decl name='mod_kallsyms' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/module.h' line='349' column='1' id='6a003ee8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='symtab' type-id='7d71a706' visibility='default' filepath='include/linux/module.h' line='350' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_symtab' type-id='f0981eeb' visibility='default' filepath='include/linux/module.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='strtab' type-id='26a90f95' visibility='default' filepath='include/linux/module.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='typetab' type-id='26a90f95' visibility='default' filepath='include/linux/module.h' line='353' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='6a0fd5a6'>
+        <parameter type-id='bd1c8eb6'/>
+        <parameter type-id='fa598f35'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='__kernel_long_t' type-id='bd54fe1a' filepath='include/uapi/asm-generic/posix_types.h' line='15' column='1' id='6a11bd61'/>
+      <function-type size-in-bits='64' id='6a162484'>
+        <parameter type-id='12884b9a'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='6a18482b'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='c484cc9e'/>
+        <return type-id='26a90f95'/>
+      </function-type>
+      <function-type size-in-bits='64' id='6a1ac39a'>
+        <parameter type-id='d4e0eca9'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e8854659' size-in-bits='64' id='6a1ad675'/>
+      <pointer-type-def type-id='1376efc1' size-in-bits='64' id='6a222ecd'/>
+      <function-type size-in-bits='64' id='6a251384'>
+        <parameter type-id='d5cbf711'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='8bff8096'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='iw_missed' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/wireless.h' line='743' column='1' id='6a2a3473'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='beacon' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/wireless.h' line='744' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2f2bbf22' size-in-bits='64' id='6a2fe6cc'/>
+      <class-decl name='sched_attr' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/uapi/linux/sched/types.h' line='102' column='1' id='6a32253a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/sched/types.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='sched_policy' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/sched/types.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sched_flags' type-id='d3130597' visibility='default' filepath='include/uapi/linux/sched/types.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sched_nice' type-id='3158a266' visibility='default' filepath='include/uapi/linux/sched/types.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='sched_priority' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/sched/types.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sched_runtime' type-id='d3130597' visibility='default' filepath='include/uapi/linux/sched/types.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='sched_deadline' type-id='d3130597' visibility='default' filepath='include/uapi/linux/sched/types.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='sched_period' type-id='d3130597' visibility='default' filepath='include/uapi/linux/sched/types.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='sched_util_min' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/sched/types.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='sched_util_max' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/sched/types.h' line='121' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='6a3578ea'>
+        <parameter type-id='3dad1a48'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='arch_msi_msg_addr_hi_t' type-id='dfb39e17' filepath='include/linux/msi.h' line='19' column='1' id='6a36f05d'/>
+      <pointer-type-def type-id='21c5156b' size-in-bits='64' id='6a407553'/>
+      <pointer-type-def type-id='3944ca69' size-in-bits='64' id='6a4a6779'/>
+      <class-decl name='display_timings' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/video/display_timing.h' line='85' column='1' id='6a4d9641'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='num_timings' type-id='f0981eeb' visibility='default' filepath='include/video/display_timing.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='native_mode' type-id='f0981eeb' visibility='default' filepath='include/video/display_timing.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='timings' type-id='596fbb1c' visibility='default' filepath='include/video/display_timing.h' line='89' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e4f938dc' size-in-bits='64' id='6a54ab42'/>
+      <class-decl name='cpu_context' size-in-bits='832' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='120' column='1' id='6a577ca5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='x19' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='x20' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='x21' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='x22' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='x23' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='x24' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='x25' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='x26' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='x27' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='x28' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='fp' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='sp' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='pc' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='133' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='6a65de43'>
+        <parameter type-id='8898134d'/>
+        <return type-id='e3dd029e'/>
+      </function-type>
+      <enum-decl name='drm_bridge_attach_flags' filepath='include/drm/drm_bridge.h' line='46' column='1' id='6a662de1'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DRM_BRIDGE_ATTACH_NO_CONNECTOR' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='5433b7f7' size-in-bits='64' id='6a6a70e7'/>
+      <pointer-type-def type-id='b6352c99' size-in-bits='64' id='6a6b0b01'/>
+      <pointer-type-def type-id='ac16795b' size-in-bits='64' id='6a6de1b0'/>
+      <typedef-decl name='nodemask_t' type-id='d1dfc632' filepath='include/linux/nodemask.h' line='98' column='1' id='6a7d16bb'/>
+      <pointer-type-def type-id='5a6bcaa3' size-in-bits='64' id='6a84c58f'/>
+      <pointer-type-def type-id='ed477ec9' size-in-bits='64' id='6a8cbf59'/>
+      <pointer-type-def type-id='1601b1ab' size-in-bits='64' id='6a8dfaef'/>
+      <typedef-decl name='speed_t' type-id='f0981eeb' filepath='include/uapi/asm-generic/termbits.h' line='8' column='1' id='6a8e8a14'/>
+      <class-decl name='pin_config_item' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/pinctrl/pinconf-generic.h' line='173' column='1' id='6a8fbda3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='param' type-id='2d24e48c' visibility='default' filepath='include/linux/pinctrl/pinconf-generic.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='display' type-id='b99c00c9' visibility='default' filepath='include/linux/pinctrl/pinconf-generic.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='format' type-id='b99c00c9' visibility='default' filepath='include/linux/pinctrl/pinconf-generic.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='has_arg' type-id='b50a4934' visibility='default' filepath='include/linux/pinctrl/pinconf-generic.h' line='177' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='384' id='6aa9aca0'>
+        <subrange length='48' type-id='7ff19f0f' id='8f6d2a81'/>
+      </array-type-def>
+      <class-decl name='memcg_vmstats_percpu' size-in-bits='17216' is-struct='yes' visibility='default' filepath='include/linux/memcontrol.h' line='79' column='1' id='6aac043b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='state' type-id='8d44496d' visibility='default' filepath='include/linux/memcontrol.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='events' type-id='fd42223a' visibility='default' filepath='include/linux/memcontrol.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='state_prev' type-id='8d44496d' visibility='default' filepath='include/linux/memcontrol.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11264'>
+          <var-decl name='events_prev' type-id='fd42223a' visibility='default' filepath='include/linux/memcontrol.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17024'>
+          <var-decl name='nr_page_events' type-id='7359adad' visibility='default' filepath='include/linux/memcontrol.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17088'>
+          <var-decl name='targets' type-id='f05e8e77' visibility='default' filepath='include/linux/memcontrol.h' line='90' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='692d176e' size-in-bits='64' id='6ab01e59'/>
+      <typedef-decl name='projid_t' type-id='70734f24' filepath='include/linux/projid.h' line='20' column='1' id='6ab42ed1'/>
+      <function-type size-in-bits='64' id='6ab964d2'>
+        <parameter type-id='cc1804ea'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='e4a7867c' size-in-bits='infinite' id='6abca080'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='6acd3f8a'>
+        <parameter type-id='ecb0ce18'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <qualified-type-def type-id='ceee71ca' const='yes' id='6ace3b65'/>
+      <qualified-type-def type-id='1d7ba247' const='yes' id='6ad2ac02'/>
+      <array-type-def dimensions='3' type-id='7359adad' size-in-bits='1536' id='6ad72938'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='6ad7a215'>
+        <parameter type-id='2bf16f59'/>
+        <parameter type-id='91ce1af9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='snd_usb_packet_info' size-in-bits='1568' is-struct='yes' visibility='default' filepath='sound/usb/card.h' line='91' column='1' id='6ad85953'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='packet_size' type-id='fe4ded8f' visibility='default' filepath='sound/usb/card.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='packets' type-id='95e97e5e' visibility='default' filepath='sound/usb/card.h' line='93' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ecd45e3f' size-in-bits='64' id='6adcec63'/>
+      <pointer-type-def type-id='7c9213d1' size-in-bits='64' id='6ade418d'/>
+      <pointer-type-def type-id='4033dd6b' size-in-bits='64' id='6ae2afd7'/>
+      <function-type size-in-bits='64' id='6ae427f5'>
+        <parameter type-id='226853d2'/>
+        <parameter type-id='f74174a4'/>
+        <parameter type-id='064bebb9'/>
+        <parameter type-id='180bfe06'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='6ae4638e'>
+        <parameter type-id='8582e5ec'/>
+        <parameter type-id='67bbaeda'/>
+        <parameter type-id='35078cb9'/>
+        <parameter type-id='249ef586'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='6ae7a739'>
+        <parameter type-id='aa9ea333'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='snd_pcm_mmap_status' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='569' column='1' id='6ae96bbe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='state' type-id='33158de9' visibility='default' filepath='include/uapi/sound/asound.h' line='570' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pad1' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/asound.h' line='571' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='__pad1' type-id='87567824' visibility='default' filepath='include/uapi/sound/asound.h' line='572' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hw_ptr' type-id='df412e35' visibility='default' filepath='include/uapi/sound/asound.h' line='573' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='__pad2' type-id='7e3959e3' visibility='default' filepath='include/uapi/sound/asound.h' line='574' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tstamp' type-id='5c155a71' visibility='default' filepath='include/uapi/sound/asound.h' line='575' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='suspended_state' type-id='33158de9' visibility='default' filepath='include/uapi/sound/asound.h' line='576' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='pad3' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/asound.h' line='577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='audio_tstamp' type-id='5c155a71' visibility='default' filepath='include/uapi/sound/asound.h' line='578' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='rtable' size-in-bits='1408' is-struct='yes' visibility='default' filepath='include/net/route.h' line='49' column='1' id='6aebc4a7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dst' type-id='772a4ddf' visibility='default' filepath='include/net/route.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='rt_genid' type-id='95e97e5e' visibility='default' filepath='include/net/route.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='rt_flags' type-id='f0981eeb' visibility='default' filepath='include/net/route.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='rt_type' type-id='d315442e' visibility='default' filepath='include/net/route.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='976'>
+          <var-decl name='rt_is_input' type-id='8f048e17' visibility='default' filepath='include/net/route.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='984'>
+          <var-decl name='rt_uses_gateway' type-id='8f048e17' visibility='default' filepath='include/net/route.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='rt_iif' type-id='95e97e5e' visibility='default' filepath='include/net/route.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='rt_gw_family' type-id='f9b06939' visibility='default' filepath='include/net/route.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='' type-id='ac5ab5ca' visibility='default' filepath='include/net/route.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='rt_mtu_locked' type-id='19c2251e' visibility='default' filepath='include/net/route.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1185'>
+          <var-decl name='rt_pmtu' type-id='19c2251e' visibility='default' filepath='include/net/route.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='rt_uncached' type-id='72f469ec' visibility='default' filepath='include/net/route.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='rt_uncached_list' type-id='e9bf5d35' visibility='default' filepath='include/net/route.h' line='72' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3e1d184a' size-in-bits='64' id='6aee814c'/>
+      <pointer-type-def type-id='ec84183d' size-in-bits='64' id='6af1ec35'/>
+      <pointer-type-def type-id='74e7a035' size-in-bits='64' id='6af64a09'/>
+      <class-decl name='uncached_list' size-in-bits='192' is-struct='yes' visibility='default' filepath='net/ipv6/route.c' line='130' column='1' id='6b1203e5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='net/ipv4/route.c' line='1506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='head' type-id='72f469ec' visibility='default' filepath='net/ipv4/route.c' line='1507' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bfbf7968' size-in-bits='64' id='6b1642ae'/>
+      <class-decl name='tty_bufhead' size-in-bits='1344' is-struct='yes' visibility='default' filepath='include/linux/tty_buffer.h' line='37' column='1' id='6b1bde38'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='head' type-id='a150e667' visibility='default' filepath='include/linux/tty_buffer.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/linux/tty_buffer.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/linux/tty_buffer.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='priority' type-id='49178f86' visibility='default' filepath='include/linux/tty_buffer.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='sentinel' type-id='2f351d1f' visibility='default' filepath='include/linux/tty_buffer.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='free' type-id='77df194e' visibility='default' filepath='include/linux/tty_buffer.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='mem_used' type-id='49178f86' visibility='default' filepath='include/linux/tty_buffer.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='mem_limit' type-id='95e97e5e' visibility='default' filepath='include/linux/tty_buffer.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='tail' type-id='a150e667' visibility='default' filepath='include/linux/tty_buffer.h' line='46' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='1354385d' const='yes' id='6b2a4486'/>
+      <class-decl name='vb2_queue' size-in-bits='6976' is-struct='yes' visibility='default' filepath='include/media/videobuf2-core.h' line='571' column='1' id='6b30321d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='572' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='io_modes' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='573' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/media/videobuf2-core.h' line='574' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dma_attrs' type-id='7359adad' visibility='default' filepath='include/media/videobuf2-core.h' line='575' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bidirectional' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='576' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='193'>
+          <var-decl name='fileio_read_once' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='194'>
+          <var-decl name='fileio_write_immediately' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='578' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='195'>
+          <var-decl name='allow_zero_bytesused' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='579' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='196'>
+          <var-decl name='quirk_poll_must_check_waiting_for_buffers' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='580' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='197'>
+          <var-decl name='supports_requests' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='581' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='198'>
+          <var-decl name='requires_requests' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='582' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='199'>
+          <var-decl name='uses_qbuf' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='583' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='uses_requests' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='584' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='201'>
+          <var-decl name='allow_cache_hints' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='585' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='lock' type-id='e0ea832a' visibility='default' filepath='include/media/videobuf2-core.h' line='587' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='owner' type-id='eaa32e2f' visibility='default' filepath='include/media/videobuf2-core.h' line='588' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ops' type-id='a1d66c91' visibility='default' filepath='include/media/videobuf2-core.h' line='590' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='mem_ops' type-id='15cf8e87' visibility='default' filepath='include/media/videobuf2-core.h' line='591' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='buf_ops' type-id='97b65be3' visibility='default' filepath='include/media/videobuf2-core.h' line='592' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='drv_priv' type-id='eaa32e2f' visibility='default' filepath='include/media/videobuf2-core.h' line='594' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='subsystem_flags' type-id='19c2251e' visibility='default' filepath='include/media/videobuf2-core.h' line='595' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='buf_struct_size' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='596' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='timestamp_flags' type-id='19c2251e' visibility='default' filepath='include/media/videobuf2-core.h' line='597' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='gfp_flags' type-id='3eb7c31c' visibility='default' filepath='include/media/videobuf2-core.h' line='598' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='min_buffers_needed' type-id='19c2251e' visibility='default' filepath='include/media/videobuf2-core.h' line='599' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='alloc_devs' type-id='f6e5abef' visibility='default' filepath='include/media/videobuf2-core.h' line='601' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='mmap_lock' type-id='925167dc' visibility='default' filepath='include/media/videobuf2-core.h' line='604' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='memory' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='605' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1760'>
+          <var-decl name='dma_dir' type-id='eea6b025' visibility='default' filepath='include/media/videobuf2-core.h' line='606' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='bufs' type-id='f989fdcc' visibility='default' filepath='include/media/videobuf2-core.h' line='607' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5888'>
+          <var-decl name='num_buffers' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='608' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5952'>
+          <var-decl name='queued_list' type-id='72f469ec' visibility='default' filepath='include/media/videobuf2-core.h' line='610' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='queued_count' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6112'>
+          <var-decl name='owned_by_drv_count' type-id='49178f86' visibility='default' filepath='include/media/videobuf2-core.h' line='613' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6144'>
+          <var-decl name='done_list' type-id='72f469ec' visibility='default' filepath='include/media/videobuf2-core.h' line='614' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6272'>
+          <var-decl name='done_lock' type-id='fb4018a0' visibility='default' filepath='include/media/videobuf2-core.h' line='615' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6336'>
+          <var-decl name='done_wq' type-id='b5ab048f' visibility='default' filepath='include/media/videobuf2-core.h' line='616' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6528'>
+          <var-decl name='streaming' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='618' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6529'>
+          <var-decl name='start_streaming_called' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='619' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6530'>
+          <var-decl name='error' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='620' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6531'>
+          <var-decl name='waiting_for_buffers' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='621' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6532'>
+          <var-decl name='waiting_in_dqbuf' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='622' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6533'>
+          <var-decl name='is_multiplanar' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='623' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6534'>
+          <var-decl name='is_output' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='624' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6535'>
+          <var-decl name='copy_timestamp' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='625' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6536'>
+          <var-decl name='last_buffer_dequeued' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='626' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6592'>
+          <var-decl name='fileio' type-id='372af73d' visibility='default' filepath='include/media/videobuf2-core.h' line='628' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6656'>
+          <var-decl name='threadio' type-id='dc2d641b' visibility='default' filepath='include/media/videobuf2-core.h' line='629' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6720'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/media/videobuf2-core.h' line='631' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='6b401e7c'>
+        <parameter type-id='2661e0d9'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='8a322362' size-in-bits='64' id='6b4579c4'/>
+      <pointer-type-def type-id='9a759b95' size-in-bits='64' id='6b4e8585'/>
+      <function-type size-in-bits='64' id='6b532d3e'>
+        <parameter type-id='12884b9a'/>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='snd_pcm_hw_param_t' type-id='95e97e5e' filepath='include/uapi/sound/asound.h' line='362' column='1' id='6b55ba25'/>
+      <function-type size-in-bits='64' id='6b5d85f5'>
+        <parameter type-id='15b1f129'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <class-decl name='rfkill' size-in-bits='10368' is-struct='yes' visibility='default' filepath='net/rfkill/core.c' line='37' column='1' id='6b60ef45'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='net/rfkill/core.c' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='6bac1cb5' visibility='default' filepath='net/rfkill/core.c' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='state' type-id='7359adad' visibility='default' filepath='net/rfkill/core.c' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hard_block_reasons' type-id='7359adad' visibility='default' filepath='net/rfkill/core.c' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='idx' type-id='19c2251e' visibility='default' filepath='net/rfkill/core.c' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='net/rfkill/core.c' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='232'>
+          <var-decl name='persistent' type-id='b50a4934' visibility='default' filepath='net/rfkill/core.c' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='240'>
+          <var-decl name='polling_paused' type-id='b50a4934' visibility='default' filepath='net/rfkill/core.c' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='248'>
+          <var-decl name='suspended' type-id='b50a4934' visibility='default' filepath='net/rfkill/core.c' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ops' type-id='6a6a70e7' visibility='default' filepath='net/rfkill/core.c' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='net/rfkill/core.c' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='led_trigger' type-id='7bcbad99' visibility='default' filepath='net/rfkill/core.c' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='ledtrigname' type-id='80f4b756' visibility='default' filepath='net/rfkill/core.c' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='net/rfkill/core.c' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8384'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='net/rfkill/core.c' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='poll_work' type-id='5ad6e0ef' visibility='default' filepath='net/rfkill/core.c' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='uevent_work' type-id='ef9025d0' visibility='default' filepath='net/rfkill/core.c' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9984'>
+          <var-decl name='sync_work' type-id='ef9025d0' visibility='default' filepath='net/rfkill/core.c' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10368'>
+          <var-decl name='name' type-id='e84913bd' visibility='default' filepath='net/rfkill/core.c' line='66' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fown_struct' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='950' column='1' id='6b640edd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='ac16795b' visibility='default' filepath='include/linux/fs.h' line='951' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pid' type-id='b94e5398' visibility='default' filepath='include/linux/fs.h' line='952' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pid_type' type-id='ce78cf46' visibility='default' filepath='include/linux/fs.h' line='953' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='uid' type-id='d80b72e6' visibility='default' filepath='include/linux/fs.h' line='954' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='euid' type-id='d80b72e6' visibility='default' filepath='include/linux/fs.h' line='954' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='signum' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='955' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='26760480' size-in-bits='infinite' id='6b6e2194'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='27e3f547' size-in-bits='64' id='6b7539fb'/>
+      <enum-decl name='alarmtimer_type' filepath='include/linux/alarmtimer.h' line='11' column='1' id='6b8d4b77'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ALARM_REALTIME' value='0'/>
+        <enumerator name='ALARM_BOOTTIME' value='1'/>
+        <enumerator name='ALARM_NUMTYPE' value='2'/>
+        <enumerator name='ALARM_REALTIME_FREEZER' value='3'/>
+        <enumerator name='ALARM_BOOTTIME_FREEZER' value='4'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='c25adaa0' size-in-bits='infinite' id='6b9809bc'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='6b983020'>
+        <parameter type-id='dd575c43'/>
+        <parameter type-id='47f117d4'/>
+        <parameter type-id='d8e6b335'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='ab94745c' size-in-bits='64' id='6b9b777a'/>
+      <pointer-type-def type-id='127ce78a' size-in-bits='64' id='6ba28d1c'/>
+      <enum-decl name='rfkill_type' filepath='include/uapi/linux/rfkill.h' line='43' column='1' id='6bac1cb5'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='RFKILL_TYPE_ALL' value='0'/>
+        <enumerator name='RFKILL_TYPE_WLAN' value='1'/>
+        <enumerator name='RFKILL_TYPE_BLUETOOTH' value='2'/>
+        <enumerator name='RFKILL_TYPE_UWB' value='3'/>
+        <enumerator name='RFKILL_TYPE_WIMAX' value='4'/>
+        <enumerator name='RFKILL_TYPE_WWAN' value='5'/>
+        <enumerator name='RFKILL_TYPE_GPS' value='6'/>
+        <enumerator name='RFKILL_TYPE_FM' value='7'/>
+        <enumerator name='RFKILL_TYPE_NFC' value='8'/>
+        <enumerator name='NUM_RFKILL_TYPES' value='9'/>
+      </enum-decl>
+      <enum-decl name='elv_merge' filepath='include/linux/elevator.h' line='20' column='1' id='6bb0a326'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ELEVATOR_NO_MERGE' value='0'/>
+        <enumerator name='ELEVATOR_FRONT_MERGE' value='1'/>
+        <enumerator name='ELEVATOR_BACK_MERGE' value='2'/>
+        <enumerator name='ELEVATOR_DISCARD_MERGE' value='3'/>
+      </enum-decl>
+      <class-decl name='ip_ct_sctp' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/netfilter/nf_conntrack_sctp.h' line='8' column='1' id='6bb7a9ad'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='state' type-id='e8eb3890' visibility='default' filepath='include/linux/netfilter/nf_conntrack_sctp.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='vtag' type-id='f41331a9' visibility='default' filepath='include/linux/netfilter/nf_conntrack_sctp.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='last_dir' type-id='f9b06939' visibility='default' filepath='include/linux/netfilter/nf_conntrack_sctp.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/linux/netfilter/nf_conntrack_sctp.h' line='13' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='6bb8016c'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='cd10cf8e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='aebe1cff' size-in-bits='64' id='6bbe39a7'/>
+      <pointer-type-def type-id='33c9e15b' size-in-bits='64' id='6bd4c2f7'/>
+      <pointer-type-def type-id='c106dc14' size-in-bits='64' id='6bd5d742'/>
+      <function-type size-in-bits='64' id='6bd699b2'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='2ae08426'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='eb4dbdd7' size-in-bits='64' id='6be5a823'/>
+      <class-decl name='usb_interface_descriptor' size-in-bits='72' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='389' column='1' id='6be9d6a7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bInterfaceNumber' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='393' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bAlternateSetting' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='394' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bNumEndpoints' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='bInterfaceClass' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='bInterfaceSubClass' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='397' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='bInterfaceProtocol' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='iInterface' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='399' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cda9d9e5' size-in-bits='64' id='6bfc1e31'/>
+      <pointer-type-def type-id='8bc2b40f' size-in-bits='64' id='6c08ee43'/>
+      <qualified-type-def type-id='4ccdd8a9' const='yes' id='6c09ca40'/>
+      <pointer-type-def type-id='ea48a448' size-in-bits='64' id='6c0c7302'/>
+      <function-type size-in-bits='64' id='6c0e4a93'>
+        <parameter type-id='7e666abe'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='6c0f5f3c'>
+        <parameter type-id='5dbfcbb1'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='netns_sysctl_ipv6' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/net/netns/ipv6.h' line='16' column='1' id='6c13064a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hdr' type-id='11b101bb' visibility='default' filepath='include/net/netns/ipv6.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='route_hdr' type-id='11b101bb' visibility='default' filepath='include/net/netns/ipv6.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='icmp_hdr' type-id='11b101bb' visibility='default' filepath='include/net/netns/ipv6.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='frags_hdr' type-id='11b101bb' visibility='default' filepath='include/net/netns/ipv6.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='xfrm6_hdr' type-id='11b101bb' visibility='default' filepath='include/net/netns/ipv6.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='flush_delay' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv6.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='ip6_rt_max_size' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv6.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ip6_rt_gc_min_interval' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv6.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='ip6_rt_gc_timeout' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv6.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ip6_rt_gc_interval' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv6.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='ip6_rt_gc_elasticity' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv6.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ip6_rt_mtu_expires' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv6.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='ip6_rt_min_advmss' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv6.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='multipath_hash_fields' type-id='19c2251e' visibility='default' filepath='include/net/netns/ipv6.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='multipath_hash_policy' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv6.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='616'>
+          <var-decl name='bindv6only' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv6.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='624'>
+          <var-decl name='flowlabel_consistency' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv6.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='632'>
+          <var-decl name='auto_flowlabels' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv6.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='icmpv6_time' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv6.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='icmpv6_echo_ignore_all' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv6.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='680'>
+          <var-decl name='icmpv6_echo_ignore_multicast' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv6.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='688'>
+          <var-decl name='icmpv6_echo_ignore_anycast' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv6.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='icmpv6_ratemask' type-id='f46d9f4d' visibility='default' filepath='include/net/netns/ipv6.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='icmpv6_ratemask_ptr' type-id='1d2c2b85' visibility='default' filepath='include/net/netns/ipv6.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='anycast_src_echo_reply' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv6.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1032'>
+          <var-decl name='ip_nonlocal_bind' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv6.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1040'>
+          <var-decl name='fwmark_reflect' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv6.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1048'>
+          <var-decl name='flowlabel_state_ranges' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv6.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='idgen_retries' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv6.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='idgen_delay' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv6.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='flowlabel_reflect' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv6.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='max_dst_opts_cnt' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv6.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='max_hbh_opts_cnt' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv6.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='max_dst_opts_len' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv6.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='max_hbh_opts_len' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv6.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='seg6_flowlabel' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv6.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='ioam6_id' type-id='19c2251e' visibility='default' filepath='include/net/netns/ipv6.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='ioam6_id_wide' type-id='91ce1af9' visibility='default' filepath='include/net/netns/ipv6.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='skip_notify_on_dev_down' type-id='b50a4934' visibility='default' filepath='include/net/netns/ipv6.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1416'>
+          <var-decl name='fib_notify_on_flag_change' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv6.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/netns/ipv6.h' line='59' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='6c1c578a'>
+        <parameter type-id='7c5f8cd8'/>
+        <parameter type-id='c8851b4e'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='fce0537d' size-in-bits='64' id='6c2331f5'/>
+      <pointer-type-def type-id='6e2b0753' size-in-bits='64' id='6c257353'/>
+      <pointer-type-def type-id='3adc0db9' size-in-bits='64' id='6c2cb475'/>
+      <pointer-type-def type-id='d5cb77a8' size-in-bits='64' id='6c3b3f8e'/>
+      <pointer-type-def type-id='4bf6badc' size-in-bits='64' id='6c3dd54a'/>
+      <pointer-type-def type-id='92cdf314' size-in-bits='64' id='6c4618be'/>
+      <pointer-type-def type-id='81d856a4' size-in-bits='64' id='6c473266'/>
+      <pointer-type-def type-id='078589a3' size-in-bits='64' id='6c534e17'/>
+      <class-decl name='snd_pcm_hw_params' size-in-bits='4864' is-struct='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='412' column='1' id='6c57d4a8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='413' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='masks' type-id='2acd76fe' visibility='default' filepath='include/uapi/sound/asound.h' line='414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='mres' type-id='66c7c544' visibility='default' filepath='include/uapi/sound/asound.h' line='416' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2080'>
+          <var-decl name='intervals' type-id='9625c091' visibility='default' filepath='include/uapi/sound/asound.h' line='417' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3232'>
+          <var-decl name='ires' type-id='3871823f' visibility='default' filepath='include/uapi/sound/asound.h' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='rmask' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='420' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4128'>
+          <var-decl name='cmask' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='info' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='422' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4192'>
+          <var-decl name='msbits' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='rate_num' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='424' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4256'>
+          <var-decl name='rate_den' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='425' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='fifo_size' type-id='df412e35' visibility='default' filepath='include/uapi/sound/asound.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='reserved' type-id='b1888bf8' visibility='default' filepath='include/uapi/sound/asound.h' line='427' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f3312abc' size-in-bits='64' id='6c660a22'/>
+      <function-type size-in-bits='64' id='6c6bf843'>
+        <parameter type-id='9f763fd8'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='b53e8dbb'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='6c6e2c82'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='06b2cd14'/>
+        <return type-id='df412e35'/>
+      </function-type>
+      <function-type size-in-bits='64' id='6c6f1c36'>
+        <parameter type-id='e5411c2c'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e0f7a7a4' size-in-bits='64' id='6c781266'/>
+      <pointer-type-def type-id='75c2ad3b' size-in-bits='64' id='6c8c82c7'/>
+      <function-type size-in-bits='64' id='6c99ab8f'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='bff05edb'/>
+        <parameter type-id='24b0cc5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='udp_tunnel_nic_shared' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/udp_tunnel.h' line='214' column='1' id='6c9a7f66'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='udp_tunnel_nic_info' type-id='08662768' visibility='default' filepath='include/net/udp_tunnel.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='devices' type-id='72f469ec' visibility='default' filepath='include/net/udp_tunnel.h' line='217' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e0a2a285' size-in-bits='64' id='6c9c83d5'/>
+      <pointer-type-def type-id='c2be64d1' size-in-bits='64' id='6ca30b05'/>
+      <pointer-type-def type-id='aaad2fce' size-in-bits='64' id='6ca57870'/>
+      <pointer-type-def type-id='93b4100d' size-in-bits='64' id='6ca6fa6d'/>
+      <pointer-type-def type-id='32037540' size-in-bits='64' id='6cae92ea'/>
+      <pointer-type-def type-id='26bba2ad' size-in-bits='64' id='6cb3a271'/>
+      <class-decl name='pci_device_id' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/mod_devicetable.h' line='43' column='1' id='6cb59de2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vendor' type-id='3f1a6b60' visibility='default' filepath='include/linux/mod_devicetable.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='device' type-id='3f1a6b60' visibility='default' filepath='include/linux/mod_devicetable.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='subvendor' type-id='3f1a6b60' visibility='default' filepath='include/linux/mod_devicetable.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='subdevice' type-id='3f1a6b60' visibility='default' filepath='include/linux/mod_devicetable.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='class' type-id='3f1a6b60' visibility='default' filepath='include/linux/mod_devicetable.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='class_mask' type-id='3f1a6b60' visibility='default' filepath='include/linux/mod_devicetable.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='driver_data' type-id='0791d6c8' visibility='default' filepath='include/linux/mod_devicetable.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='override_only' type-id='3f1a6b60' visibility='default' filepath='include/linux/mod_devicetable.h' line='48' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='6cb73a29'>
+        <parameter type-id='0f8f80b0'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='6cb7d4e4'>
+        <parameter type-id='6dca061b'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='18a1ba64'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3f7bc138' size-in-bits='64' id='6cbcc6da'/>
+      <pointer-type-def type-id='98e2db6f' size-in-bits='64' id='6cc0a1fb'/>
+      <pointer-type-def type-id='1e828e67' size-in-bits='64' id='6cc3a8b3'/>
+      <function-type size-in-bits='64' id='6cc49e45'>
+        <parameter type-id='226853d2'/>
+        <parameter type-id='f74174a4'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='7292109c'/>
+        <parameter type-id='7292109c'/>
+        <parameter type-id='bd54fe1a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f65a797a' size-in-bits='64' id='6cd1df94'/>
+      <pointer-type-def type-id='7bacac96' size-in-bits='64' id='6cd3ebf4'/>
+      <pointer-type-def type-id='7f3ed7a2' size-in-bits='64' id='6cd5b5fc'/>
+      <class-decl name='xt_tgdtor_param' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='135' column='1' id='6cd62070'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='net' type-id='a2bff676' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='target' type-id='b7f14b36' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='targinfo' type-id='eaa32e2f' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='family' type-id='892641a4' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='139' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a9c862bf' size-in-bits='64' id='6cd85f13'/>
+      <pointer-type-def type-id='4148c66a' size-in-bits='64' id='6cd929b4'/>
+      <array-type-def dimensions='1' type-id='88aa5216' size-in-bits='32768' id='6cdfafe7'>
+        <subrange length='128' type-id='7ff19f0f' id='1eb1687a'/>
+      </array-type-def>
+      <pointer-type-def type-id='384b6d84' size-in-bits='64' id='6ceb7782'/>
+      <function-type size-in-bits='64' id='6cec0f5a'>
+        <parameter type-id='478ed79d'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='hdmi_content_type' filepath='include/linux/hdmi.h' line='151' column='1' id='6cedbf81'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HDMI_CONTENT_TYPE_GRAPHICS' value='0'/>
+        <enumerator name='HDMI_CONTENT_TYPE_PHOTO' value='1'/>
+        <enumerator name='HDMI_CONTENT_TYPE_CINEMA' value='2'/>
+        <enumerator name='HDMI_CONTENT_TYPE_GAME' value='3'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='6cef7733'>
+        <parameter type-id='fc4f83c1'/>
+        <parameter type-id='25e60cb2'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='5bd248e7' size-in-bits='64' id='6cf6468f'/>
+      <pointer-type-def type-id='6ae427f5' size-in-bits='64' id='6cf6fae1'/>
+      <class-decl name='snd_soc_tplg_pcm' size-in-bits='7296' is-struct='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='517' column='1' id='6d009fe7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='518' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pcm_name' type-id='36cef6bd' visibility='default' filepath='include/uapi/sound/asoc.h' line='519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dai_name' type-id='36cef6bd' visibility='default' filepath='include/uapi/sound/asoc.h' line='520' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='pcm_id' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='dai_id' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='522' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='playback' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='523' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='capture' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='524' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='compress' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='525' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='stream' type-id='0036534d' visibility='default' filepath='include/uapi/sound/asoc.h' line='526' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='num_streams' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5536'>
+          <var-decl name='caps' type-id='57144ac1' visibility='default' filepath='include/uapi/sound/asoc.h' line='528' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7200'>
+          <var-decl name='flag_mask' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='529' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7232'>
+          <var-decl name='flags' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='530' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7264'>
+          <var-decl name='priv' type-id='372c32b8' visibility='default' filepath='include/uapi/sound/asoc.h' line='531' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='system_time_snapshot' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/timekeeping.h' line='246' column='1' id='6d06c6cd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cycles' type-id='91ce1af9' visibility='default' filepath='include/linux/timekeeping.h' line='247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='real' type-id='fbc017ef' visibility='default' filepath='include/linux/timekeeping.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='raw' type-id='fbc017ef' visibility='default' filepath='include/linux/timekeeping.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cs_id' type-id='0325ee16' visibility='default' filepath='include/linux/timekeeping.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='clock_was_set_seq' type-id='f0981eeb' visibility='default' filepath='include/linux/timekeeping.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='cs_was_changed_seq' type-id='f9b06939' visibility='default' filepath='include/linux/timekeeping.h' line='252' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f3d7314b' size-in-bits='64' id='6d0d8617'/>
+      <pointer-type-def type-id='9bb659f5' size-in-bits='64' id='6d118cd1'/>
+      <pointer-type-def type-id='e05187bf' size-in-bits='64' id='6d120807'/>
+      <pointer-type-def type-id='15d70b96' size-in-bits='64' id='6d1cf440'/>
+      <function-type size-in-bits='64' id='6d229cce'>
+        <parameter type-id='fb55efa1'/>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='69bf7bee'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='6d22a61b'>
+        <parameter type-id='65077a4a'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <pointer-type-def type-id='45f4b23b' size-in-bits='64' id='6d26c72b'/>
+      <pointer-type-def type-id='32358857' size-in-bits='64' id='6d30564f'/>
+      <pointer-type-def type-id='bcad3f73' size-in-bits='64' id='6d320b83'/>
+      <class-decl name='power_supply_desc' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/power_supply.h' line='242' column='1' id='6d39b2d0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/power_supply.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='type' type-id='c61c3172' visibility='default' filepath='include/linux/power_supply.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='usb_types' type-id='8a809741' visibility='default' filepath='include/linux/power_supply.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='num_usb_types' type-id='b59d7dce' visibility='default' filepath='include/linux/power_supply.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='properties' type-id='dc652fc3' visibility='default' filepath='include/linux/power_supply.h' line='247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='num_properties' type-id='b59d7dce' visibility='default' filepath='include/linux/power_supply.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='get_property' type-id='c793cb80' visibility='default' filepath='include/linux/power_supply.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='set_property' type-id='7c0fed0f' visibility='default' filepath='include/linux/power_supply.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='property_is_writeable' type-id='4079d8fe' visibility='default' filepath='include/linux/power_supply.h' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='external_power_changed' type-id='a89a6c47' visibility='default' filepath='include/linux/power_supply.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='set_charged' type-id='a89a6c47' visibility='default' filepath='include/linux/power_supply.h' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='no_thermal' type-id='b50a4934' visibility='default' filepath='include/linux/power_supply.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='use_for_apm' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/power_supply.h' line='281' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='6d41ed4e'>
+        <parameter type-id='11b101bb'/>
+        <parameter type-id='631dc3c1'/>
+        <parameter type-id='2168a3eb'/>
+        <parameter type-id='acd96ee1'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='b3aef54c' size-in-bits='64' id='6d537b6e'/>
+      <array-type-def dimensions='1' type-id='bd54fe1a' size-in-bits='896' id='6d53f6b1'>
+        <subrange length='14' type-id='7ff19f0f' id='48882d96'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='6d544aa1'>
+        <parameter type-id='0906f5b9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='devfreq_governor' size-in-bits='512' is-struct='yes' visibility='default' filepath='drivers/devfreq/governor.h' line='67' column='1' id='6d54709d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='drivers/devfreq/governor.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='8d43b1f5' visibility='default' filepath='drivers/devfreq/governor.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='attrs' type-id='49c81889' visibility='default' filepath='drivers/devfreq/governor.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='flags' type-id='49c81889' visibility='default' filepath='drivers/devfreq/governor.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='get_target_freq' type-id='b2610cc8' visibility='default' filepath='drivers/devfreq/governor.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='event_handler' type-id='10b92604' visibility='default' filepath='drivers/devfreq/governor.h' line='74' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='6d573e2a'>
+        <parameter type-id='6ed6b432'/>
+        <return type-id='f23e2572'/>
+      </function-type>
+      <pointer-type-def type-id='9ecf9226' size-in-bits='64' id='6d5994d5'/>
+      <class-decl name='configfs_group_operations' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/configfs.h' line='216' column='1' id='6d5a1dab'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='make_item' type-id='263d54b5' visibility='default' filepath='include/linux/configfs.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='make_group' type-id='45c2a1d1' visibility='default' filepath='include/linux/configfs.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='commit_item' type-id='d841f43f' visibility='default' filepath='include/linux/configfs.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='disconnect_notify' type-id='ee7d45c8' visibility='default' filepath='include/linux/configfs.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='drop_item' type-id='ee7d45c8' visibility='default' filepath='include/linux/configfs.h' line='221' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2448a865' size-in-bits='64' id='6d60f45d'/>
+      <pointer-type-def type-id='261083fc' size-in-bits='64' id='6d63cad6'/>
+      <enum-decl name='usb_charger_state' filepath='include/uapi/linux/usb/charger.h' line='25' column='1' id='6d659af5'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='USB_CHARGER_DEFAULT' value='0'/>
+        <enumerator name='USB_CHARGER_PRESENT' value='1'/>
+        <enumerator name='USB_CHARGER_ABSENT' value='2'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='2fced0dc' size-in-bits='11616' id='6d6a6d7b'>
+        <subrange length='363' type-id='7ff19f0f' id='093eabc3'/>
+      </array-type-def>
+      <class-decl name='msix_entry' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/pci.h' line='1542' column='1' id='6d6fcd23'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vector' type-id='19c2251e' visibility='default' filepath='include/linux/pci.h' line='1543' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='entry' type-id='1dc6a898' visibility='default' filepath='include/linux/pci.h' line='1544' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='66781033' size-in-bits='64' id='6d72cd27'/>
+      <qualified-type-def type-id='6110f5ec' const='yes' id='6d7d60df'/>
+      <class-decl name='usb_role_switch_desc' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/usb/role.h' line='38' column='1' id='6d84fe29'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fwnode' type-id='4a935625' visibility='default' filepath='include/linux/usb/role.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='usb2_port' type-id='fa0b179b' visibility='default' filepath='include/linux/usb/role.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='usb3_port' type-id='fa0b179b' visibility='default' filepath='include/linux/usb/role.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='udc' type-id='fa0b179b' visibility='default' filepath='include/linux/usb/role.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='set' type-id='265b58a4' visibility='default' filepath='include/linux/usb/role.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='get' type-id='3341a400' visibility='default' filepath='include/linux/usb/role.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='allow_userspace_control' type-id='b50a4934' visibility='default' filepath='include/linux/usb/role.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb/role.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/usb/role.h' line='47' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='6d86a332'>
+        <parameter type-id='e5411c2c'/>
+        <parameter type-id='5b4bef1f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='mac_address' size-in-bits='48' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='1288' column='1' id='6d8d26fb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='1289' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='6d905adc'>
+        <parameter type-id='4db02c58'/>
+        <parameter type-id='c9ecdb13'/>
+        <parameter type-id='26ea5d4c'/>
+        <parameter type-id='5d6479ae'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='dw_pcie_ep' size-in-bits='1216' is-struct='yes' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='232' column='1' id='6d93aa3a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='epc' type-id='108dbc98' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='func_list' type-id='72f469ec' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ops' type-id='2beae3fa' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='phys_base' type-id='2522883d' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='addr_size' type-id='b59d7dce' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='page_size' type-id='b59d7dce' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='bar_to_atu' type-id='cf1a4160' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='outbound_addr' type-id='ff752d64' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ib_window_map' type-id='1d2c2b85' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='ob_window_map' type-id='1d2c2b85' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='242' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='msi_mem' type-id='eaa32e2f' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='msi_mem_phys' type-id='2522883d' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='epf_bar' type-id='ecfa304d' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='245' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='ZSTD_inBuffer' type-id='ed4523d8' filepath='include/linux/zstd.h' line='477' column='1' id='6d9d1901'/>
+      <pointer-type-def type-id='6e88f746' size-in-bits='64' id='6d9d7f04'/>
+      <pointer-type-def type-id='aeb2e301' size-in-bits='64' id='6d9ef725'/>
+      <pointer-type-def type-id='fa712c1b' size-in-bits='64' id='6da1022f'/>
+      <function-type size-in-bits='64' id='6da3cafb'>
+        <parameter type-id='a6cdca2a'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='6daa74bb'>
+        <parameter type-id='c0c93c9e'/>
+        <parameter type-id='5f78aa17'/>
+        <parameter type-id='f3abafd4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='cc52ca8d' size-in-bits='64' id='6daf6abd'/>
+      <pointer-type-def type-id='d1d61218' size-in-bits='64' id='6db6a1be'/>
+      <pointer-type-def type-id='4666032d' size-in-bits='64' id='6dbc77f1'/>
+      <pointer-type-def type-id='43420c6a' size-in-bits='64' id='6dbc8e18'/>
+      <function-type size-in-bits='64' id='6dbd849e'>
+        <parameter type-id='2ae08426'/>
+        <return type-id='80f4b756'/>
+      </function-type>
+      <enum-decl name='iio_chan_type' filepath='include/uapi/linux/iio/types.h' line='14' column='1' id='6dc73e71'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='IIO_VOLTAGE' value='0'/>
+        <enumerator name='IIO_CURRENT' value='1'/>
+        <enumerator name='IIO_POWER' value='2'/>
+        <enumerator name='IIO_ACCEL' value='3'/>
+        <enumerator name='IIO_ANGL_VEL' value='4'/>
+        <enumerator name='IIO_MAGN' value='5'/>
+        <enumerator name='IIO_LIGHT' value='6'/>
+        <enumerator name='IIO_INTENSITY' value='7'/>
+        <enumerator name='IIO_PROXIMITY' value='8'/>
+        <enumerator name='IIO_TEMP' value='9'/>
+        <enumerator name='IIO_INCLI' value='10'/>
+        <enumerator name='IIO_ROT' value='11'/>
+        <enumerator name='IIO_ANGL' value='12'/>
+        <enumerator name='IIO_TIMESTAMP' value='13'/>
+        <enumerator name='IIO_CAPACITANCE' value='14'/>
+        <enumerator name='IIO_ALTVOLTAGE' value='15'/>
+        <enumerator name='IIO_CCT' value='16'/>
+        <enumerator name='IIO_PRESSURE' value='17'/>
+        <enumerator name='IIO_HUMIDITYRELATIVE' value='18'/>
+        <enumerator name='IIO_ACTIVITY' value='19'/>
+        <enumerator name='IIO_STEPS' value='20'/>
+        <enumerator name='IIO_ENERGY' value='21'/>
+        <enumerator name='IIO_DISTANCE' value='22'/>
+        <enumerator name='IIO_VELOCITY' value='23'/>
+        <enumerator name='IIO_CONCENTRATION' value='24'/>
+        <enumerator name='IIO_RESISTANCE' value='25'/>
+        <enumerator name='IIO_PH' value='26'/>
+        <enumerator name='IIO_UVINDEX' value='27'/>
+        <enumerator name='IIO_ELECTRICALCONDUCTIVITY' value='28'/>
+        <enumerator name='IIO_COUNT' value='29'/>
+        <enumerator name='IIO_INDEX' value='30'/>
+        <enumerator name='IIO_GRAVITY' value='31'/>
+        <enumerator name='IIO_POSITIONRELATIVE' value='32'/>
+        <enumerator name='IIO_PHASE' value='33'/>
+        <enumerator name='IIO_MASSCONCENTRATION' value='34'/>
+      </enum-decl>
+      <pointer-type-def type-id='17992e3b' size-in-bits='64' id='6dca061b'/>
+      <pointer-type-def type-id='f6be3c23' size-in-bits='64' id='6dcf57f3'/>
+      <array-type-def dimensions='1' type-id='19c2251e' size-in-bits='1024' id='6dcfc3c6'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='6dd06c9d'>
+        <parameter type-id='0e3f80d9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='fd2fbac1' size-in-bits='64' id='6dd6ce85'/>
+      <pointer-type-def type-id='9ebab137' size-in-bits='64' id='6ddb149f'/>
+      <function-type size-in-bits='64' id='6ddd203f'>
+        <parameter type-id='a2bff676'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='69e72089' size-in-bits='64' id='6de64ec1'/>
+      <function-type size-in-bits='64' id='6dea5f13'>
+        <parameter type-id='bd1c8eb6'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='2901941b' size-in-bits='64' id='6def7c4b'/>
+      <pointer-type-def type-id='c8e8a836' size-in-bits='64' id='6df3750c'/>
+      <pointer-type-def type-id='88b7b5d3' size-in-bits='64' id='6dfd92af'/>
+      <function-type size-in-bits='64' id='6dfdbc87'>
+        <parameter type-id='9a537bbe'/>
+        <parameter type-id='7292109c'/>
+        <parameter type-id='7292109c'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='7778009d' const='yes' id='6e03f2ca'/>
+      <class-decl name='sbitmap' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/sbitmap.h' line='43' column='1' id='6e051ed1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='depth' type-id='f0981eeb' visibility='default' filepath='include/linux/sbitmap.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='shift' type-id='f0981eeb' visibility='default' filepath='include/linux/sbitmap.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='map_nr' type-id='f0981eeb' visibility='default' filepath='include/linux/sbitmap.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='round_robin' type-id='b50a4934' visibility='default' filepath='include/linux/sbitmap.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='map' type-id='278a4544' visibility='default' filepath='include/linux/sbitmap.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='alloc_hint' type-id='807869d3' visibility='default' filepath='include/linux/sbitmap.h' line='75' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='280730d4' size-in-bits='64' id='6e055dae'/>
+      <class-decl name='led_classdev' size-in-bits='3392' is-struct='yes' visibility='default' filepath='include/linux/leds.h' line='70' column='1' id='6e0e17b0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/leds.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='brightness' type-id='f0981eeb' visibility='default' filepath='include/linux/leds.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='max_brightness' type-id='f0981eeb' visibility='default' filepath='include/linux/leds.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/linux/leds.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='work_flags' type-id='7359adad' visibility='default' filepath='include/linux/leds.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='brightness_set' type-id='971a91c1' visibility='default' filepath='include/linux/leds.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='brightness_set_blocking' type-id='07e65680' visibility='default' filepath='include/linux/leds.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='brightness_get' type-id='a91f7d05' visibility='default' filepath='include/linux/leds.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='blink_set' type-id='adaf1c08' visibility='default' filepath='include/linux/leds.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='pattern_set' type-id='e9f2f0c0' visibility='default' filepath='include/linux/leds.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='pattern_clear' type-id='0904d108' visibility='default' filepath='include/linux/leds.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/leds.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='groups' type-id='c97de1ac' visibility='default' filepath='include/linux/leds.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/leds.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='default_trigger' type-id='80f4b756' visibility='default' filepath='include/linux/leds.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='blink_delay_on' type-id='7359adad' visibility='default' filepath='include/linux/leds.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='blink_delay_off' type-id='7359adad' visibility='default' filepath='include/linux/leds.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='blink_timer' type-id='abe41e67' visibility='default' filepath='include/linux/leds.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='blink_brightness' type-id='95e97e5e' visibility='default' filepath='include/linux/leds.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='new_blink_brightness' type-id='95e97e5e' visibility='default' filepath='include/linux/leds.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='flash_resume' type-id='749654e7' visibility='default' filepath='include/linux/leds.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='set_brightness_work' type-id='ef9025d0' visibility='default' filepath='include/linux/leds.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='delayed_set_value' type-id='95e97e5e' visibility='default' filepath='include/linux/leds.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='trigger_lock' type-id='f19fdb93' visibility='default' filepath='include/linux/leds.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='trigger' type-id='db6d90a1' visibility='default' filepath='include/linux/leds.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='trig_list' type-id='72f469ec' visibility='default' filepath='include/linux/leds.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='trigger_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/leds.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='activated' type-id='b50a4934' visibility='default' filepath='include/linux/leds.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='trigger_type' type-id='ad0a69fc' visibility='default' filepath='include/linux/leds.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='led_access' type-id='925167dc' visibility='default' filepath='include/linux/leds.h' line='165' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='6e12d1c7'>
+        <parameter type-id='85535682'/>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <enum-decl name='regcache_type' filepath='include/linux/regmap.h' line='42' column='1' id='6e1356fd'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='REGCACHE_NONE' value='0'/>
+        <enumerator name='REGCACHE_RBTREE' value='1'/>
+        <enumerator name='REGCACHE_COMPRESSED' value='2'/>
+        <enumerator name='REGCACHE_FLAT' value='3'/>
+      </enum-decl>
+      <class-decl name='ewma_psr_time' size-in-bits='64' is-struct='yes' visibility='default' filepath='drivers/gpu/drm/drm_self_refresh_helper.c' line='56' column='1' id='6e15744f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='internal' type-id='7359adad' visibility='default' filepath='drivers/gpu/drm/drm_self_refresh_helper.c' line='56' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='uint' type-id='f0981eeb' filepath='include/linux/types.h' line='87' column='1' id='6e160b14'/>
+      <class-decl name='flow_block_offload' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/net/flow_offload.h' line='443' column='1' id='6e1a0135'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='command' type-id='a76401a4' visibility='default' filepath='include/net/flow_offload.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='binder_type' type-id='585e2620' visibility='default' filepath='include/net/flow_offload.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='block_shared' type-id='b50a4934' visibility='default' filepath='include/net/flow_offload.h' line='446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='unlocked_driver_cb' type-id='b50a4934' visibility='default' filepath='include/net/flow_offload.h' line='447' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='net' type-id='a2bff676' visibility='default' filepath='include/net/flow_offload.h' line='448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='block' type-id='2a851303' visibility='default' filepath='include/net/flow_offload.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='cb_list' type-id='72f469ec' visibility='default' filepath='include/net/flow_offload.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='driver_block_list' type-id='e84b031a' visibility='default' filepath='include/net/flow_offload.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='extack' type-id='5799dc94' visibility='default' filepath='include/net/flow_offload.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='sch' type-id='ee406209' visibility='default' filepath='include/net/flow_offload.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='cb_list_head' type-id='e84b031a' visibility='default' filepath='include/net/flow_offload.h' line='454' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='cec_event_entry' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/media/cec.h' line='82' column='1' id='6e21d41e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/media/cec.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ev' type-id='9638c87d' visibility='default' filepath='include/media/cec.h' line='84' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tcf_exts' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/pkt_cls.h' line='200' column='1' id='6e2b0753'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/net/pkt_cls.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='nr_actions' type-id='95e97e5e' visibility='default' filepath='include/net/pkt_cls.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='actions' type-id='981420b7' visibility='default' filepath='include/net/pkt_cls.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='net' type-id='a2bff676' visibility='default' filepath='include/net/pkt_cls.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='action' type-id='95e97e5e' visibility='default' filepath='include/net/pkt_cls.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='police' type-id='95e97e5e' visibility='default' filepath='include/net/pkt_cls.h' line='211' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='netns_unix' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/netns/unix.h' line='9' column='1' id='6e306fde'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sysctl_max_dgram_qlen' type-id='95e97e5e' visibility='default' filepath='include/net/netns/unix.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ctl' type-id='11b101bb' visibility='default' filepath='include/net/netns/unix.h' line='11' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2d064c05' size-in-bits='64' id='6e313ad5'/>
+      <array-type-def dimensions='1' type-id='b50a4934' size-in-bits='256' id='6e32320a'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <typedef-decl name='phandle' type-id='19c2251e' filepath='include/linux/of.h' line='28' column='1' id='6e394fba'/>
+      <pointer-type-def type-id='92bf903a' size-in-bits='64' id='6e39d7a8'/>
+      <class-decl name='usb_otg' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/usb/otg.h' line='17' column='1' id='6e3d524a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='default_a' type-id='f9b06939' visibility='default' filepath='include/linux/usb/otg.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='phy' type-id='503ff1ba' visibility='default' filepath='include/linux/usb/otg.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='usb_phy' type-id='ca9354d1' visibility='default' filepath='include/linux/usb/otg.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='host' type-id='3ab7d422' visibility='default' filepath='include/linux/usb/otg.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='gadget' type-id='49a58c0c' visibility='default' filepath='include/linux/usb/otg.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='state' type-id='4c0c8157' visibility='default' filepath='include/linux/usb/otg.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='set_host' type-id='40b8ad2b' visibility='default' filepath='include/linux/usb/otg.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='set_peripheral' type-id='ba1d878d' visibility='default' filepath='include/linux/usb/otg.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='set_vbus' type-id='c1ee9321' visibility='default' filepath='include/linux/usb/otg.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='start_srp' type-id='988d1520' visibility='default' filepath='include/linux/usb/otg.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='start_hnp' type-id='988d1520' visibility='default' filepath='include/linux/usb/otg.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/otg.h' line='44' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='6e44244d'>
+        <parameter type-id='75ae4804'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ff_rumble_effect' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/input.h' line='422' column='1' id='6e5c8c15'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='strong_magnitude' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='weak_magnitude' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='424' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tc_action_ops' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/net/act_api.h' line='98' column='1' id='6e5d2bdc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='head' type-id='72f469ec' visibility='default' filepath='include/net/act_api.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='kind' type-id='ac1fa8c0' visibility='default' filepath='include/net/act_api.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='id' type-id='618a2054' visibility='default' filepath='include/net/act_api.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='include/net/act_api.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/net/act_api.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='act' type-id='8e7e5b0b' visibility='default' filepath='include/net/act_api.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='dump' type-id='14aa811d' visibility='default' filepath='include/net/act_api.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='cleanup' type-id='3107ecae' visibility='default' filepath='include/net/act_api.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='lookup' type-id='adec6207' visibility='default' filepath='include/net/act_api.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='init' type-id='12cb2be6' visibility='default' filepath='include/net/act_api.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='walk' type-id='8a8c0471' visibility='default' filepath='include/net/act_api.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='stats_update' type-id='7148a3cf' visibility='default' filepath='include/net/act_api.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='get_fill_size' type-id='342e75b6' visibility='default' filepath='include/net/act_api.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='get_dev' type-id='a3b5aa5f' visibility='default' filepath='include/net/act_api.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='get_psample_group' type-id='8421b09d' visibility='default' filepath='include/net/act_api.h' line='122' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='07c62f88' size-in-bits='64' id='6e5d37e2'/>
+      <pointer-type-def type-id='80d02f4e' size-in-bits='64' id='6e731d78'/>
+      <pointer-type-def type-id='c2b72af8' size-in-bits='64' id='6e764b1e'/>
+      <pointer-type-def type-id='929b60e1' size-in-bits='64' id='6e829429'/>
+      <qualified-type-def type-id='bc84eba7' const='yes' id='6e85ad52'/>
+      <qualified-type-def type-id='b8e47b1d' const='yes' id='6e88f746'/>
+      <array-type-def dimensions='1' type-id='7596b099' size-in-bits='24576' id='6e9af403'>
+        <subrange length='384' type-id='7ff19f0f' id='0c4db0de'/>
+      </array-type-def>
+      <class-decl name='v4l2_subdev_video_ops' size-in-bits='1280' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='436' column='1' id='6eadcbe0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='s_routing' type-id='f9d7b9fc' visibility='default' filepath='include/media/v4l2-subdev.h' line='437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='s_crystal_freq' type-id='1825e6b5' visibility='default' filepath='include/media/v4l2-subdev.h' line='438' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='g_std' type-id='865e6323' visibility='default' filepath='include/media/v4l2-subdev.h' line='439' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='s_std' type-id='1976ccf6' visibility='default' filepath='include/media/v4l2-subdev.h' line='440' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='s_std_output' type-id='1976ccf6' visibility='default' filepath='include/media/v4l2-subdev.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='g_std_output' type-id='865e6323' visibility='default' filepath='include/media/v4l2-subdev.h' line='442' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='querystd' type-id='865e6323' visibility='default' filepath='include/media/v4l2-subdev.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='g_tvnorms' type-id='865e6323' visibility='default' filepath='include/media/v4l2-subdev.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='g_tvnorms_output' type-id='865e6323' visibility='default' filepath='include/media/v4l2-subdev.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='g_input_status' type-id='b530e24b' visibility='default' filepath='include/media/v4l2-subdev.h' line='446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='s_stream' type-id='6d63cad6' visibility='default' filepath='include/media/v4l2-subdev.h' line='447' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='g_pixelaspect' type-id='44b18db0' visibility='default' filepath='include/media/v4l2-subdev.h' line='448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='g_frame_interval' type-id='7bd168bf' visibility='default' filepath='include/media/v4l2-subdev.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='s_frame_interval' type-id='7bd168bf' visibility='default' filepath='include/media/v4l2-subdev.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='s_dv_timings' type-id='afd7b47c' visibility='default' filepath='include/media/v4l2-subdev.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='g_dv_timings' type-id='afd7b47c' visibility='default' filepath='include/media/v4l2-subdev.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='query_dv_timings' type-id='afd7b47c' visibility='default' filepath='include/media/v4l2-subdev.h' line='457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='s_rx_buffer' type-id='02cea60b' visibility='default' filepath='include/media/v4l2-subdev.h' line='459' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='pre_streamon' type-id='04cc4d9e' visibility='default' filepath='include/media/v4l2-subdev.h' line='461' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='post_streamoff' type-id='a236743f' visibility='default' filepath='include/media/v4l2-subdev.h' line='462' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='6ebbc68a'>
+        <parameter type-id='e324928d'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <pointer-type-def type-id='0c33dc69' size-in-bits='64' id='6ec0fd31'/>
+      <pointer-type-def type-id='806a4586' size-in-bits='64' id='6ed32e60'/>
+      <class-decl name='nh_group' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/nexthop.h' line='119' column='1' id='6ed3e587'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='spare' type-id='c5ff416f' visibility='default' filepath='include/net/nexthop.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_nh' type-id='1dc6a898' visibility='default' filepath='include/net/nexthop.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='is_multipath' type-id='b50a4934' visibility='default' filepath='include/net/nexthop.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='hash_threshold' type-id='b50a4934' visibility='default' filepath='include/net/nexthop.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='resilient' type-id='b50a4934' visibility='default' filepath='include/net/nexthop.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='fdb_nh' type-id='b50a4934' visibility='default' filepath='include/net/nexthop.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='has_v4' type-id='b50a4934' visibility='default' filepath='include/net/nexthop.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='res_table' type-id='a2f6b261' visibility='default' filepath='include/net/nexthop.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='nh_entries' type-id='720e3ec4' visibility='default' filepath='include/net/nexthop.h' line='129' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d5ee6a94' size-in-bits='64' id='6ed6b432'/>
+      <array-type-def dimensions='1' type-id='49178f86' size-in-bits='128' id='6ed968f3'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <pointer-type-def type-id='07b37f3f' size-in-bits='64' id='6edade7b'/>
+      <pointer-type-def type-id='e2041b7e' size-in-bits='64' id='6edc5840'/>
+      <pointer-type-def type-id='73595e52' size-in-bits='64' id='6ee1a870'/>
+      <array-type-def dimensions='1' type-id='49178f86' size-in-bits='224' id='6ee1b7b8'>
+        <subrange length='7' type-id='7ff19f0f' id='16fc326e'/>
+      </array-type-def>
+      <typedef-decl name='regmap_hw_async_write' type-id='38921430' filepath='include/linux/regmap.h' line='470' column='1' id='6ee2c7d7'/>
+      <pointer-type-def type-id='53143c97' size-in-bits='64' id='6ee36fa3'/>
+      <function-type size-in-bits='64' id='6ee62c60'>
+        <parameter type-id='89b70200'/>
+        <parameter type-id='d30bdc51'/>
+        <parameter type-id='d9d65b21'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='935b1156' size-in-bits='64' id='6eededc8'/>
+      <class-decl name='ZSTD_outBuffer_s' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/zstd.h' line='486' column='1' id='6ef1bf39'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dst' type-id='eaa32e2f' visibility='default' filepath='include/linux/zstd.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='include/linux/zstd.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pos' type-id='b59d7dce' visibility='default' filepath='include/linux/zstd.h' line='489' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='6ef54783'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='06b2cd14'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e4acc659' size-in-bits='64' id='6efc6709'/>
+      <function-type size-in-bits='64' id='6f026338'>
+        <parameter type-id='7ac48c21'/>
+        <parameter type-id='c9ecdb13'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='19810f43' size-in-bits='64' id='6f074813'/>
+      <pointer-type-def type-id='17b31231' size-in-bits='64' id='6f077fdd'/>
+      <array-type-def dimensions='1' type-id='002ac4a6' size-in-bits='1024' id='6f10c3ff'>
+        <subrange length='128' type-id='7ff19f0f' id='1eb1687a'/>
+      </array-type-def>
+      <enum-decl name='devlink_dpipe_field_mapping_type' filepath='include/uapi/linux/devlink.h' line='563' column='1' id='6f18b107'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE' value='0'/>
+        <enumerator name='DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='7c3a095f' size-in-bits='64' id='6f262307'/>
+      <pointer-type-def type-id='924e6a9f' size-in-bits='64' id='6f2bf2e3'/>
+      <function-type size-in-bits='64' id='6f351a96'>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='nvdimm_passphrase_type' filepath='include/linux/libnvdimm.h' line='178' column='1' id='6f383d17'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NVDIMM_USER' value='0'/>
+        <enumerator name='NVDIMM_MASTER' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='162c0977' size-in-bits='64' id='6f3b229b'/>
+      <pointer-type-def type-id='41207a16' size-in-bits='64' id='6f3c82ac'/>
+      <pointer-type-def type-id='584a61fa' size-in-bits='64' id='6f3d9488'/>
+      <pointer-type-def type-id='e542e4ad' size-in-bits='64' id='6f4dc085'/>
+      <function-type size-in-bits='64' id='6f527014'>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='58dc55d6'/>
+        <parameter type-id='1c936db9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='6f52f27f'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='72f469ec' size-in-bits='12800' id='6f53db1b'>
+        <subrange length='100' type-id='7ff19f0f' id='4196563c'/>
+      </array-type-def>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='77' column='1' id='6f5c1fb1' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='interval' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='timeout' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='79' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6110442c' size-in-bits='64' id='6f67b38a'/>
+      <class-decl name='v4l2_subdev_sensor_ops' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='520' column='1' id='6f6b42ed'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='g_skip_top_lines' type-id='b530e24b' visibility='default' filepath='include/media/v4l2-subdev.h' line='521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='g_skip_frames' type-id='b530e24b' visibility='default' filepath='include/media/v4l2-subdev.h' line='522' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ttm_bo_kmap_obj' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='181' column='1' id='6f724070'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='virtual' type-id='eaa32e2f' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='page' type-id='02f11ed4' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bo_kmap_type' type-id='08f5ca19' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bo' type-id='9d57e433' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='190' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f0029b4e' size-in-bits='64' id='6f7e8184'/>
+      <function-type size-in-bits='64' id='6f7f4c91'>
+        <parameter type-id='3eb7c31c'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <pointer-type-def type-id='833a7616' size-in-bits='64' id='6f80b288'/>
+      <class-decl name='uart_8250_em485' size-in-bits='1344' is-struct='yes' visibility='default' filepath='include/linux/serial_8250.h' line='79' column='1' id='6f81c9e7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start_tx_timer' type-id='b6993efc' visibility='default' filepath='include/linux/serial_8250.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='stop_tx_timer' type-id='b6993efc' visibility='default' filepath='include/linux/serial_8250.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='active_timer' type-id='08c8d0fa' visibility='default' filepath='include/linux/serial_8250.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='port' type-id='b26c7631' visibility='default' filepath='include/linux/serial_8250.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='tx_stopped' type-id='f0981eeb' visibility='default' filepath='include/linux/serial_8250.h' line='84' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='rps_map' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='685' column='1' id='6f8d5f55'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='len' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='686' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/netdevice.h' line='687' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cpus' type-id='0f300383' visibility='default' filepath='include/linux/netdevice.h' line='688' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2f0e8f2a' size-in-bits='64' id='6f98a9c4'/>
+      <class-decl name='pppox_proto' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/if_pppox.h' line='72' column='1' id='6f9bf471'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='create' type-id='f4306620' visibility='default' filepath='include/linux/if_pppox.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ioctl' type-id='82a9a11e' visibility='default' filepath='include/linux/if_pppox.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/if_pppox.h' line='76' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='61062930' size-in-bits='64' id='6fa26802'/>
+      <typedef-decl name='nlink_t' type-id='19c2251e' filepath='include/linux/types.h' line='20' column='1' id='6fa67d85'/>
+      <class-decl name='v4l2_sliced_vbi_data' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2190' column='1' id='6fab59d9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='field' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='line' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='reserved' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data' type-id='51dffe12' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2195' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='xps_map_type' filepath='include/linux/netdevice.h' line='791' column='1' id='6fba21a9'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='XPS_CPUS' value='0'/>
+        <enumerator name='XPS_RXQS' value='1'/>
+        <enumerator name='XPS_MAPS_MAX' value='2'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='6fca7363'>
+        <parameter type-id='51a502f8'/>
+        <return type-id='91ce1af9'/>
+      </function-type>
+      <pointer-type-def type-id='89d7cb48' size-in-bits='64' id='6fcaf91e'/>
+      <pointer-type-def type-id='8eedee6f' size-in-bits='64' id='6fcb14d7'/>
+      <array-type-def dimensions='1' type-id='02913b69' size-in-bits='6144' id='6fcbfa84'>
+        <subrange length='96' type-id='7ff19f0f' id='1df62250'/>
+      </array-type-def>
+      <pointer-type-def type-id='cd8ce92b' size-in-bits='64' id='6fd5b1ab'/>
+      <function-type size-in-bits='64' id='6fd68117'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='68a2d05b'/>
+        <return type-id='6849a88c'/>
+      </function-type>
+      <pointer-type-def type-id='7fa63f43' size-in-bits='64' id='6fd7b107'/>
+      <pointer-type-def type-id='471cb386' size-in-bits='64' id='6fe0e73c'/>
+      <class-decl name='rb_root_cached' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/rbtree_types.h' line='26' column='1' id='6fe1603d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rb_root' type-id='dec44472' visibility='default' filepath='include/linux/rbtree_types.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rb_leftmost' type-id='e6532500' visibility='default' filepath='include/linux/rbtree_types.h' line='28' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='47b43ff6' size-in-bits='64' id='6fed6bf0'/>
+      <class-decl name='gen_pool_chunk' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/genalloc.h' line='72' column='1' id='6ff24cfe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next_chunk' type-id='72f469ec' visibility='default' filepath='include/linux/genalloc.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='avail' type-id='f22a8abb' visibility='default' filepath='include/linux/genalloc.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='phys_addr' type-id='2522883d' visibility='default' filepath='include/linux/genalloc.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='owner' type-id='eaa32e2f' visibility='default' filepath='include/linux/genalloc.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='start_addr' type-id='7359adad' visibility='default' filepath='include/linux/genalloc.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='end_addr' type-id='7359adad' visibility='default' filepath='include/linux/genalloc.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='bits' type-id='c99b5ecd' visibility='default' filepath='include/linux/genalloc.h' line='79' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='70007b06'>
+        <parameter type-id='49a58c0c'/>
+        <parameter type-id='a9ea967a'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='e431ac27' size-in-bits='64' id='700727c0'/>
+      <function-type size-in-bits='64' id='70084cf7'>
+        <parameter type-id='b80a6036'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='700e6430'>
+        <parameter type-id='f812e4e9'/>
+        <parameter type-id='f1a65d97'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='7010de92'>
+        <parameter type-id='478ed79d'/>
+        <parameter type-id='35078cb9'/>
+        <parameter type-id='d0835005'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='0786b8b4' size-in-bits='64' id='70119ea2'/>
+      <pointer-type-def type-id='6788fb9a' size-in-bits='64' id='70283254'/>
+      <class-decl name='ip_ct_tcp_state' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/linux/netfilter/nf_conntrack_tcp.h' line='8' column='1' id='702d8a24'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='td_end' type-id='9586cc7b' visibility='default' filepath='include/linux/netfilter/nf_conntrack_tcp.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='td_maxend' type-id='9586cc7b' visibility='default' filepath='include/linux/netfilter/nf_conntrack_tcp.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='td_maxwin' type-id='9586cc7b' visibility='default' filepath='include/linux/netfilter/nf_conntrack_tcp.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='td_maxack' type-id='9586cc7b' visibility='default' filepath='include/linux/netfilter/nf_conntrack_tcp.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='td_scale' type-id='892641a4' visibility='default' filepath='include/linux/netfilter/nf_conntrack_tcp.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='flags' type-id='892641a4' visibility='default' filepath='include/linux/netfilter/nf_conntrack_tcp.h' line='14' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='378a6c5a' const='yes' id='703a35bb'/>
+      <pointer-type-def type-id='bdcf5751' size-in-bits='64' id='7041aa49'/>
+      <pointer-type-def type-id='5113b296' size-in-bits='64' id='70487b28'/>
+      <pointer-type-def type-id='f5c90b3f' size-in-bits='64' id='704982b4'/>
+      <pointer-type-def type-id='5ea6264e' size-in-bits='64' id='704d2394'/>
+      <class-decl name='writeback_control' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/writeback.h' line='51' column='1' id='705711f5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nr_to_write' type-id='bd54fe1a' visibility='default' filepath='include/linux/writeback.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pages_skipped' type-id='bd54fe1a' visibility='default' filepath='include/linux/writeback.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='range_start' type-id='69bf7bee' visibility='default' filepath='include/linux/writeback.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='range_end' type-id='69bf7bee' visibility='default' filepath='include/linux/writeback.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='sync_mode' type-id='cf92d981' visibility='default' filepath='include/linux/writeback.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='for_kupdate' type-id='f0981eeb' visibility='default' filepath='include/linux/writeback.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='289'>
+          <var-decl name='for_background' type-id='f0981eeb' visibility='default' filepath='include/linux/writeback.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='290'>
+          <var-decl name='tagged_writepages' type-id='f0981eeb' visibility='default' filepath='include/linux/writeback.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='291'>
+          <var-decl name='for_reclaim' type-id='f0981eeb' visibility='default' filepath='include/linux/writeback.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='292'>
+          <var-decl name='range_cyclic' type-id='f0981eeb' visibility='default' filepath='include/linux/writeback.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='293'>
+          <var-decl name='for_sync' type-id='f0981eeb' visibility='default' filepath='include/linux/writeback.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='294'>
+          <var-decl name='no_cgroup_owner' type-id='f0981eeb' visibility='default' filepath='include/linux/writeback.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='295'>
+          <var-decl name='punt_to_cgroup' type-id='f0981eeb' visibility='default' filepath='include/linux/writeback.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='wb' type-id='f885ca7d' visibility='default' filepath='include/linux/writeback.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='inode' type-id='7e666abe' visibility='default' filepath='include/linux/writeback.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='wb_id' type-id='95e97e5e' visibility='default' filepath='include/linux/writeback.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='wb_lcand_id' type-id='95e97e5e' visibility='default' filepath='include/linux/writeback.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='wb_tcand_id' type-id='95e97e5e' visibility='default' filepath='include/linux/writeback.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='wb_bytes' type-id='b59d7dce' visibility='default' filepath='include/linux/writeback.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='wb_lcand_bytes' type-id='b59d7dce' visibility='default' filepath='include/linux/writeback.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='wb_tcand_bytes' type-id='b59d7dce' visibility='default' filepath='include/linux/writeback.h' line='93' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mmc_blk_data' is-struct='yes' visibility='default' is-declaration-only='yes' id='705909a1'/>
+      <pointer-type-def type-id='2181e5cc' size-in-bits='64' id='705eaeca'/>
+      <qualified-type-def type-id='edb04712' const='yes' id='70660701'/>
+      <function-type size-in-bits='64' id='706f3909'>
+        <parameter type-id='e324928d'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='__kernel_uid32_t' type-id='f0981eeb' filepath='include/uapi/asm-generic/posix_types.h' line='49' column='1' id='70734f24'/>
+      <pointer-type-def type-id='0e5e2ca6' size-in-bits='64' id='7073b1dc'/>
+      <function-type size-in-bits='64' id='707953c1'>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='fb1092f1'/>
+        <return type-id='4bdecfd7'/>
+      </function-type>
+      <pointer-type-def type-id='c2e9ee66' size-in-bits='64' id='707be29c'/>
+      <class-decl name='regulator_ops' size-in-bits='2368' is-struct='yes' visibility='default' filepath='include/linux/regulator/driver.h' line='154' column='1' id='707f0173'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list_voltage' type-id='bfb02820' visibility='default' filepath='include/linux/regulator/driver.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='set_voltage' type-id='e83ba222' visibility='default' filepath='include/linux/regulator/driver.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='map_voltage' type-id='caa0e368' visibility='default' filepath='include/linux/regulator/driver.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='set_voltage_sel' type-id='bfb02820' visibility='default' filepath='include/linux/regulator/driver.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='get_voltage' type-id='c3db487a' visibility='default' filepath='include/linux/regulator/driver.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='get_voltage_sel' type-id='c3db487a' visibility='default' filepath='include/linux/regulator/driver.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='set_current_limit' type-id='caa0e368' visibility='default' filepath='include/linux/regulator/driver.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='get_current_limit' type-id='c3db487a' visibility='default' filepath='include/linux/regulator/driver.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='set_input_current_limit' type-id='12239021' visibility='default' filepath='include/linux/regulator/driver.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='set_over_current_protection' type-id='4e786419' visibility='default' filepath='include/linux/regulator/driver.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='set_over_voltage_protection' type-id='4e786419' visibility='default' filepath='include/linux/regulator/driver.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='set_under_voltage_protection' type-id='4e786419' visibility='default' filepath='include/linux/regulator/driver.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='set_thermal_protection' type-id='4e786419' visibility='default' filepath='include/linux/regulator/driver.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='set_active_discharge' type-id='2b6bf4a3' visibility='default' filepath='include/linux/regulator/driver.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='enable' type-id='c3db487a' visibility='default' filepath='include/linux/regulator/driver.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='disable' type-id='c3db487a' visibility='default' filepath='include/linux/regulator/driver.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='is_enabled' type-id='c3db487a' visibility='default' filepath='include/linux/regulator/driver.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='set_mode' type-id='bfb02820' visibility='default' filepath='include/linux/regulator/driver.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='get_mode' type-id='383e66df' visibility='default' filepath='include/linux/regulator/driver.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='get_error_flags' type-id='7ef3bbb0' visibility='default' filepath='include/linux/regulator/driver.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='enable_time' type-id='c3db487a' visibility='default' filepath='include/linux/regulator/driver.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='set_ramp_delay' type-id='12239021' visibility='default' filepath='include/linux/regulator/driver.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='set_voltage_time' type-id='caa0e368' visibility='default' filepath='include/linux/regulator/driver.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='set_voltage_time_sel' type-id='ec23f0e2' visibility='default' filepath='include/linux/regulator/driver.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='set_soft_start' type-id='c3db487a' visibility='default' filepath='include/linux/regulator/driver.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='get_status' type-id='c3db487a' visibility='default' filepath='include/linux/regulator/driver.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='get_optimum_mode' type-id='f14ddf44' visibility='default' filepath='include/linux/regulator/driver.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='set_load' type-id='12239021' visibility='default' filepath='include/linux/regulator/driver.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='set_bypass' type-id='2b6bf4a3' visibility='default' filepath='include/linux/regulator/driver.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='get_bypass' type-id='43934166' visibility='default' filepath='include/linux/regulator/driver.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='set_suspend_voltage' type-id='12239021' visibility='default' filepath='include/linux/regulator/driver.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='set_suspend_enable' type-id='c3db487a' visibility='default' filepath='include/linux/regulator/driver.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='set_suspend_disable' type-id='c3db487a' visibility='default' filepath='include/linux/regulator/driver.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='set_suspend_mode' type-id='bfb02820' visibility='default' filepath='include/linux/regulator/driver.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='resume' type-id='c3db487a' visibility='default' filepath='include/linux/regulator/driver.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='set_pull_down' type-id='c3db487a' visibility='default' filepath='include/linux/regulator/driver.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/regulator/driver.h' line='240' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f62797f7' size-in-bits='64' id='70828d03'/>
+      <class-decl name='snd_soc_codec_conf' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/sound/soc.h' line='863' column='1' id='7082c248'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dlc' type-id='ed5b2002' visibility='default' filepath='include/sound/soc.h' line='868' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='name_prefix' type-id='80f4b756' visibility='default' filepath='include/sound/soc.h' line='874' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='9ebab137' const='yes' id='7085bcda'/>
+      <pointer-type-def type-id='85c172d2' size-in-bits='64' id='708ae4d0'/>
+      <class-decl name='blocking_notifier_head' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/notifier.h' line='65' column='1' id='708c2394'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rwsem' type-id='f19fdb93' visibility='default' filepath='include/linux/notifier.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='head' type-id='d504f73d' visibility='default' filepath='include/linux/notifier.h' line='67' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='dwc3_trb' size-in-bits='128' is-struct='yes' visibility='default' filepath='drivers/usb/dwc3/core.h' line='845' column='1' id='70923669'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bpl' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='846' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bph' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='847' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='848' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='ctrl' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='849' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pci_error_handlers' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/pci.h' line='833' column='1' id='709bf5ba'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='error_detected' type-id='7a002545' visibility='default' filepath='include/linux/pci.h' line='835' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mmio_enabled' type-id='80b73a7b' visibility='default' filepath='include/linux/pci.h' line='839' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='slot_reset' type-id='80b73a7b' visibility='default' filepath='include/linux/pci.h' line='842' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='reset_prepare' type-id='01d543be' visibility='default' filepath='include/linux/pci.h' line='845' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='reset_done' type-id='01d543be' visibility='default' filepath='include/linux/pci.h' line='846' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='resume' type-id='01d543be' visibility='default' filepath='include/linux/pci.h' line='849' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/pci.h' line='851' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='70a034c7'>
+        <parameter type-id='d35aee0a'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='70a1a668'>
+        <parameter type-id='5dbfcbb1'/>
+        <return type-id='91ce1af9'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='efa21d3b' size-in-bits='2048' id='70a48c94'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='70a927ce'>
+        <parameter type-id='bc5666d5'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='bfd10d03' size-in-bits='64' id='70a92833'/>
+      <class-decl name='videomode' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/video/videomode.h' line='18' column='1' id='70ab3bc7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pixelclock' type-id='7359adad' visibility='default' filepath='include/video/videomode.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hactive' type-id='19c2251e' visibility='default' filepath='include/video/videomode.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='hfront_porch' type-id='19c2251e' visibility='default' filepath='include/video/videomode.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hback_porch' type-id='19c2251e' visibility='default' filepath='include/video/videomode.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='hsync_len' type-id='19c2251e' visibility='default' filepath='include/video/videomode.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='vactive' type-id='19c2251e' visibility='default' filepath='include/video/videomode.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='vfront_porch' type-id='19c2251e' visibility='default' filepath='include/video/videomode.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='vback_porch' type-id='19c2251e' visibility='default' filepath='include/video/videomode.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='vsync_len' type-id='19c2251e' visibility='default' filepath='include/video/videomode.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='flags' type-id='04e8607a' visibility='default' filepath='include/video/videomode.h' line='31' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e6f3a13f' size-in-bits='64' id='70b08f83'/>
+      <pointer-type-def type-id='25edcf18' size-in-bits='64' id='70be41da'/>
+      <qualified-type-def type-id='63b74212' const='yes' id='70bf28f5'/>
+      <class-decl name='blk_mq_ctxs' size-in-bits='832' is-struct='yes' visibility='default' filepath='block/blk-mq.h' line='10' column='1' id='70bf757e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='block/blk-mq.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='queue_ctx' type-id='9a335021' visibility='default' filepath='block/blk-mq.h' line='12' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fasync_struct' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1402' column='1' id='70c545cd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fa_lock' type-id='ac16795b' visibility='default' filepath='include/linux/fs.h' line='1403' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='magic' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='fa_fd' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fa_next' type-id='5bb9c75d' visibility='default' filepath='include/linux/fs.h' line='1406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fa_file' type-id='77e79a4b' visibility='default' filepath='include/linux/fs.h' line='1407' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='fa_rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/fs.h' line='1408' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='95e97e5e' size-in-bits='1536' id='70cd8d02'>
+        <subrange length='48' type-id='7ff19f0f' id='8f6d2a81'/>
+      </array-type-def>
+      <pointer-type-def type-id='95201ae5' size-in-bits='64' id='70d004a5'/>
+      <pointer-type-def type-id='73042c0b' size-in-bits='64' id='70d417ab'/>
+      <qualified-type-def type-id='05bdad78' const='yes' id='70dd03cd'/>
+      <pointer-type-def type-id='1e1b3494' size-in-bits='64' id='70de91e2'/>
+      <function-type size-in-bits='64' id='70e959e4'>
+        <parameter type-id='5e4f599b'/>
+        <parameter type-id='2ae08426'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='5fb55d48' const='yes' id='70ebcb19'/>
+      <function-type size-in-bits='64' id='70eee7af'>
+        <parameter type-id='b88dd945'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='98031623'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='057e4bd2' size-in-bits='64' id='70f0fa74'/>
+      <pointer-type-def type-id='acfd9368' size-in-bits='64' id='70f1634e'/>
+      <function-type size-in-bits='64' id='70f46c11'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e8a73faf' size-in-bits='64' id='70ff05c7'/>
+      <pointer-type-def type-id='64588176' size-in-bits='64' id='7106dab8'/>
+      <function-type size-in-bits='64' id='71099d68'>
+        <parameter type-id='7544e824'/>
+        <parameter type-id='1c475548'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='81d3e1dd' size-in-bits='64' id='710bea3d'/>
+      <class-decl name='clk_parent_map' size-in-bits='320' is-struct='yes' visibility='default' filepath='drivers/clk/clk.c' line='48' column='1' id='710f82fd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hw' type-id='9e6d4b4e' visibility='default' filepath='drivers/clk/clk.c' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='core' type-id='ba21e62b' visibility='default' filepath='drivers/clk/clk.c' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fw_name' type-id='80f4b756' visibility='default' filepath='drivers/clk/clk.c' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/clk/clk.c' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='index' type-id='95e97e5e' visibility='default' filepath='drivers/clk/clk.c' line='53' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='291d9c02' size-in-bits='64' id='7114e104'/>
+      <class-decl name='wiphy_coalesce_support' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5229' column='1' id='7124a2a6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='n_rules' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='max_delay' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='n_patterns' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='pattern_max_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pattern_min_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='max_pkt_offset' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5235' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4292193b' size-in-bits='64' id='7126cf8f'/>
+      <class-decl name='regulator_voltage' size-in-bits='64' is-struct='yes' visibility='default' filepath='drivers/regulator/internal.h' line='29' column='1' id='712d28ed'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='min_uV' type-id='95e97e5e' visibility='default' filepath='drivers/regulator/internal.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='max_uV' type-id='95e97e5e' visibility='default' filepath='drivers/regulator/internal.h' line='31' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='4a82abb2' size-in-bits='1600' id='712dd60d'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <pointer-type-def type-id='17d4a823' size-in-bits='64' id='71399c6f'/>
+      <pointer-type-def type-id='c3b7ba7d' size-in-bits='64' id='713a56f5'/>
+      <function-type size-in-bits='64' id='713ac427'>
+        <parameter type-id='1d2c2b85'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='75b9415a'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='7359adad'/>
+      </function-type>
+      <class-decl name='flow_action' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/flow_offload.h' line='285' column='1' id='713fc6cc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='num_entries' type-id='f0981eeb' visibility='default' filepath='include/net/flow_offload.h' line='286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='entries' type-id='018b53c3' visibility='default' filepath='include/net/flow_offload.h' line='287' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b3f5c5f7' size-in-bits='64' id='71411b0f'/>
+      <class-decl name='fib6_table' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/net/ip6_fib.h' line='396' column='1' id='7147e7ff'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tb6_hlist' type-id='03a4a074' visibility='default' filepath='include/net/ip6_fib.h' line='397' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tb6_id' type-id='19c2251e' visibility='default' filepath='include/net/ip6_fib.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='tb6_lock' type-id='fb4018a0' visibility='default' filepath='include/net/ip6_fib.h' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tb6_root' type-id='9f30e4ad' visibility='default' filepath='include/net/ip6_fib.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='tb6_peers' type-id='27ebfa24' visibility='default' filepath='include/net/ip6_fib.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/net/ip6_fib.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='fib_seq' type-id='f0981eeb' visibility='default' filepath='include/net/ip6_fib.h' line='403' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9e8c0698' size-in-bits='64' id='71480a3e'/>
+      <pointer-type-def type-id='8e6ea8c3' size-in-bits='64' id='7148a3cf'/>
+      <pointer-type-def type-id='d1e93cda' size-in-bits='64' id='714fd734'/>
+      <function-type size-in-bits='64' id='714fe898'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='ba0b1d2e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7147e7ff' size-in-bits='64' id='7156b317'/>
+      <class-decl name='rcuwait' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/rcuwait.h' line='16' column='1' id='71598d38'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='task' type-id='f23e2572' visibility='default' filepath='include/linux/rcuwait.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='irq_cpustat_t' type-id='096e41e5' filepath='include/asm-generic/hardirq.h' line='13' column='1' id='715fcff2'/>
+      <class-decl name='xfrm_algo_aead_info' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/xfrm.h' line='1384' column='1' id='71694cb7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='geniv' type-id='26a90f95' visibility='default' filepath='include/net/xfrm.h' line='1385' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='icv_truncbits' type-id='1dc6a898' visibility='default' filepath='include/net/xfrm.h' line='1386' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='iio_buffer' size-in-bits='1600' is-struct='yes' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='73' column='1' id='717ee4f3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='length' type-id='f0981eeb' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bytes_per_datum' type-id='b59d7dce' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='access' type-id='56670be1' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='scan_mask' type-id='3ccc2590' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='demux_list' type-id='72f469ec' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pollq' type-id='b5ab048f' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='watermark' type-id='f0981eeb' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='scan_timestamp' type-id='b50a4934' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='buffer_attr_list' type-id='72f469ec' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='buffer_group' type-id='e4af473b' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='attrs' type-id='cd733e18' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='demux_bounce' type-id='eaa32e2f' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='attached_entry' type-id='72f469ec' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='buffer_list' type-id='72f469ec' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='ref' type-id='400fb07b' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='127' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/net_namespace.h' line='311' column='1' id='7186c6d1' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='net' type-id='a2bff676' visibility='default' filepath='include/net/net_namespace.h' line='313' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='blk_plug' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/blkdev.h' line='1216' column='1' id='718a7cd9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mq_list' type-id='72f469ec' visibility='default' filepath='include/linux/blkdev.h' line='1217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cb_list' type-id='72f469ec' visibility='default' filepath='include/linux/blkdev.h' line='1218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rq_count' type-id='8efea9e5' visibility='default' filepath='include/linux/blkdev.h' line='1219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='multiple_queues' type-id='b50a4934' visibility='default' filepath='include/linux/blkdev.h' line='1220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='280'>
+          <var-decl name='nowait' type-id='b50a4934' visibility='default' filepath='include/linux/blkdev.h' line='1221' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='iommu_page_response' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/iommu.h' line='150' column='1' id='719148b2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='argsz' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='version' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='pasid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='grpid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='code' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='158' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='719a30bb'>
+        <parameter type-id='705eaeca'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='6ace3b65' size-in-bits='64' id='71a75d5d'/>
+      <function-type size-in-bits='64' id='71b2fd82'>
+        <parameter type-id='c062d7a5'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='73803d48' const='yes' id='71bae7c7'/>
+      <pointer-type-def type-id='f347e46a' size-in-bits='64' id='71c75804'/>
+      <function-type size-in-bits='64' id='71cde6ad'>
+        <parameter type-id='27f3f5d8'/>
+        <parameter type-id='d9f19b23'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='vb2_buf_ops' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/media/videobuf2-core.h' line='460' column='1' id='71d68b50'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='verify_planes_array' type-id='c4cd4be2' visibility='default' filepath='include/media/videobuf2-core.h' line='461' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='init_buffer' type-id='547e4f07' visibility='default' filepath='include/media/videobuf2-core.h' line='462' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fill_user_buffer' type-id='35cea26b' visibility='default' filepath='include/media/videobuf2-core.h' line='463' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fill_vb2_buffer' type-id='9cbbcc93' visibility='default' filepath='include/media/videobuf2-core.h' line='464' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='copy_timestamp' type-id='35cea26b' visibility='default' filepath='include/media/videobuf2-core.h' line='465' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='71d89257'>
+        <parameter type-id='33dc3b1b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3e448446' size-in-bits='64' id='71dc7604'/>
+      <pointer-type-def type-id='12ab03ef' size-in-bits='64' id='71dcfea7'/>
+      <function-type size-in-bits='64' id='71e3f969'>
+        <parameter type-id='29af9a71'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='key_type' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/linux/key-type.h' line='65' column='1' id='71e87d49'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/key-type.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='def_datalen' type-id='b59d7dce' visibility='default' filepath='include/linux/key-type.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/key-type.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='vet_description' type-id='70487b28' visibility='default' filepath='include/linux/key-type.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='preparse' type-id='320c9cb0' visibility='default' filepath='include/linux/key-type.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='free_preparse' type-id='54d7d559' visibility='default' filepath='include/linux/key-type.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='instantiate' type-id='ab4f7fd7' visibility='default' filepath='include/linux/key-type.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='update' type-id='ab4f7fd7' visibility='default' filepath='include/linux/key-type.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='match_preparse' type-id='0954c675' visibility='default' filepath='include/linux/key-type.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='match_free' type-id='87f6a50e' visibility='default' filepath='include/linux/key-type.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='revoke' type-id='b36896a7' visibility='default' filepath='include/linux/key-type.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='destroy' type-id='b36896a7' visibility='default' filepath='include/linux/key-type.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='describe' type-id='f68ddecc' visibility='default' filepath='include/linux/key-type.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='read' type-id='a9cc7986' visibility='default' filepath='include/linux/key-type.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='request_key' type-id='99147724' visibility='default' filepath='include/linux/key-type.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='lookup_restriction' type-id='7c4a6c91' visibility='default' filepath='include/linux/key-type.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='asym_query' type-id='b6633a3c' visibility='default' filepath='include/linux/key-type.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='asym_eds_op' type-id='824beef7' visibility='default' filepath='include/linux/key-type.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='asym_verify_signature' type-id='824beef7' visibility='default' filepath='include/linux/key-type.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/key-type.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/key-type.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='link' type-id='72f469ec' visibility='default' filepath='include/linux/key-type.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='lock_class' type-id='47479831' visibility='default' filepath='include/linux/key-type.h' line='165' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='sfp_upstream_ops' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/sfp.h' line='520' column='1' id='71f11a97'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='attach' type-id='1d4e1b02' visibility='default' filepath='include/linux/sfp.h' line='521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='detach' type-id='1d4e1b02' visibility='default' filepath='include/linux/sfp.h' line='522' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='module_insert' type-id='0e299972' visibility='default' filepath='include/linux/sfp.h' line='523' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='module_remove' type-id='b7f9d8e6' visibility='default' filepath='include/linux/sfp.h' line='524' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='module_start' type-id='b9b212f5' visibility='default' filepath='include/linux/sfp.h' line='525' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='module_stop' type-id='b7f9d8e6' visibility='default' filepath='include/linux/sfp.h' line='526' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='link_down' type-id='b7f9d8e6' visibility='default' filepath='include/linux/sfp.h' line='527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='link_up' type-id='b7f9d8e6' visibility='default' filepath='include/linux/sfp.h' line='528' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='connect_phy' type-id='0521abf1' visibility='default' filepath='include/linux/sfp.h' line='529' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='disconnect_phy' type-id='b7f9d8e6' visibility='default' filepath='include/linux/sfp.h' line='530' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_writeback_job' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/drm/drm_writeback.h' line='90' column='1' id='71f18ea5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='connector' type-id='2944961d' visibility='default' filepath='include/drm/drm_writeback.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='prepared' type-id='b50a4934' visibility='default' filepath='include/drm/drm_writeback.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cleanup_work' type-id='ef9025d0' visibility='default' filepath='include/drm/drm_writeback.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='list_entry' type-id='72f469ec' visibility='default' filepath='include/drm/drm_writeback.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='fb' type-id='7b332e1c' visibility='default' filepath='include/drm/drm_writeback.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='out_fence' type-id='28271da3' visibility='default' filepath='include/drm/drm_writeback.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/drm/drm_writeback.h' line='140' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='77dc8383' size-in-bits='64' id='71f2e203'/>
+      <function-type size-in-bits='64' id='71f4dca2'>
+        <parameter type-id='e7d2a5fc'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='5a1da206' size-in-bits='64' id='71f57b27'/>
+      <pointer-type-def type-id='0ed9f201' size-in-bits='64' id='71f7eca5'/>
+      <function-type size-in-bits='64' id='71fa1210'>
+        <parameter type-id='10216dc5'/>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='3d78e975' const='yes' id='71fb30e8'/>
+      <function-type size-in-bits='64' id='71fd1591'>
+        <parameter type-id='b64ad7cb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='kqid' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/quota.h' line='68' column='1' id='72028e1c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab64a' visibility='default' filepath='include/linux/quota.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='9ff1dafd' visibility='default' filepath='include/linux/quota.h' line='74' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='proto' size-in-bits='3456' is-struct='yes' visibility='default' filepath='include/net/sock.h' line='1195' column='1' id='7203ee09'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='close' type-id='09f3a86b' visibility='default' filepath='include/net/sock.h' line='1196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pre_connect' type-id='c25ed103' visibility='default' filepath='include/net/sock.h' line='1198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='connect' type-id='c25ed103' visibility='default' filepath='include/net/sock.h' line='1201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='disconnect' type-id='95208a5e' visibility='default' filepath='include/net/sock.h' line='1204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='accept' type-id='67adf9a9' visibility='default' filepath='include/net/sock.h' line='1206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ioctl' type-id='08113f0a' visibility='default' filepath='include/net/sock.h' line='1209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='init' type-id='55530c47' visibility='default' filepath='include/net/sock.h' line='1211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='destroy' type-id='841969d0' visibility='default' filepath='include/net/sock.h' line='1212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='shutdown' type-id='e937debf' visibility='default' filepath='include/net/sock.h' line='1213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='setsockopt' type-id='df9e6665' visibility='default' filepath='include/net/sock.h' line='1214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='getsockopt' type-id='e0fadd76' visibility='default' filepath='include/net/sock.h' line='1217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='keepalive' type-id='e937debf' visibility='default' filepath='include/net/sock.h' line='1220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='compat_ioctl' type-id='20da830b' visibility='default' filepath='include/net/sock.h' line='1222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='sendmsg' type-id='1df08751' visibility='default' filepath='include/net/sock.h' line='1225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='recvmsg' type-id='74e71fae' visibility='default' filepath='include/net/sock.h' line='1227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='sendpage' type-id='65399e23' visibility='default' filepath='include/net/sock.h' line='1230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='bind' type-id='c25ed103' visibility='default' filepath='include/net/sock.h' line='1232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='bind_add' type-id='c25ed103' visibility='default' filepath='include/net/sock.h' line='1234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='backlog_rcv' type-id='a0f5247f' visibility='default' filepath='include/net/sock.h' line='1237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='bpf_bypass_getsockopt' type-id='91e93e11' visibility='default' filepath='include/net/sock.h' line='1239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='release_cb' type-id='841969d0' visibility='default' filepath='include/net/sock.h' line='1242' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='hash' type-id='55530c47' visibility='default' filepath='include/net/sock.h' line='1245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='unhash' type-id='841969d0' visibility='default' filepath='include/net/sock.h' line='1246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='rehash' type-id='841969d0' visibility='default' filepath='include/net/sock.h' line='1247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='get_port' type-id='078de3a3' visibility='default' filepath='include/net/sock.h' line='1248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='psock_update_sk_prot' type-id='dca6f5c7' visibility='default' filepath='include/net/sock.h' line='1250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='inuse_idx' type-id='f0981eeb' visibility='default' filepath='include/net/sock.h' line='1257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='stream_memory_free' type-id='bf751261' visibility='default' filepath='include/net/sock.h' line='1260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='sock_is_readable' type-id='1a3c7ef1' visibility='default' filepath='include/net/sock.h' line='1261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='enter_memory_pressure' type-id='841969d0' visibility='default' filepath='include/net/sock.h' line='1263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='leave_memory_pressure' type-id='841969d0' visibility='default' filepath='include/net/sock.h' line='1264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='memory_allocated' type-id='5403cb36' visibility='default' filepath='include/net/sock.h' line='1265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='sockets_allocated' type-id='84c6078d' visibility='default' filepath='include/net/sock.h' line='1266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='memory_pressure' type-id='1d2c2b85' visibility='default' filepath='include/net/sock.h' line='1273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='sysctl_mem' type-id='3ccc2590' visibility='default' filepath='include/net/sock.h' line='1274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='sysctl_wmem' type-id='7292109c' visibility='default' filepath='include/net/sock.h' line='1276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='sysctl_rmem' type-id='7292109c' visibility='default' filepath='include/net/sock.h' line='1277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='sysctl_wmem_offset' type-id='19c2251e' visibility='default' filepath='include/net/sock.h' line='1278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2400'>
+          <var-decl name='sysctl_rmem_offset' type-id='19c2251e' visibility='default' filepath='include/net/sock.h' line='1279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='max_header' type-id='95e97e5e' visibility='default' filepath='include/net/sock.h' line='1281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2464'>
+          <var-decl name='no_autobind' type-id='b50a4934' visibility='default' filepath='include/net/sock.h' line='1282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='slab' type-id='f3b4aca8' visibility='default' filepath='include/net/sock.h' line='1284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='obj_size' type-id='f0981eeb' visibility='default' filepath='include/net/sock.h' line='1285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2592'>
+          <var-decl name='slab_flags' type-id='f7fe96cb' visibility='default' filepath='include/net/sock.h' line='1286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='useroffset' type-id='f0981eeb' visibility='default' filepath='include/net/sock.h' line='1287' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2656'>
+          <var-decl name='usersize' type-id='f0981eeb' visibility='default' filepath='include/net/sock.h' line='1288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='orphan_count' type-id='807869d3' visibility='default' filepath='include/net/sock.h' line='1290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='rsk_prot' type-id='db994912' visibility='default' filepath='include/net/sock.h' line='1292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='twsk_prot' type-id='d68ad8b5' visibility='default' filepath='include/net/sock.h' line='1293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='h' type-id='ac5ab680' visibility='default' filepath='include/net/sock.h' line='1300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/net/sock.h' line='1302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/net/sock.h' line='1304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/net/sock.h' line='1306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='diag_destroy' type-id='95208a5e' visibility='default' filepath='include/net/sock.h' line='1310' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='trace_buffer' is-struct='yes' visibility='default' is-declaration-only='yes' id='72093c11'/>
+      <qualified-type-def type-id='8288ae2e' const='yes' id='720a6415'/>
+      <class-decl name='group_desc' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/pinctrl/core.h' line='194' column='1' id='720b55dc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/pinctrl/core.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pins' type-id='7292109c' visibility='default' filepath='drivers/pinctrl/core.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='num_pins' type-id='95e97e5e' visibility='default' filepath='drivers/pinctrl/core.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='drivers/pinctrl/core.h' line='198' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='f59a8358' size-in-bits='infinite' id='720e3ec4'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='41903e16' size-in-bits='64' id='7211f874'/>
+      <typedef-decl name='snd_pcm_sframes_t' type-id='bd54fe1a' filepath='include/uapi/sound/asound.h' line='164' column='1' id='721b74e7'/>
+      <function-type size-in-bits='64' id='722249f6'>
+        <parameter type-id='cc26d15f'/>
+        <parameter type-id='3dad1a48'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='dd72818d' size-in-bits='64' id='722604ad'/>
+      <pointer-type-def type-id='dbbc1900' size-in-bits='64' id='723114f6'/>
+      <pointer-type-def type-id='a192e032' size-in-bits='64' id='7236c5c8'/>
+      <class-decl name='percpu_cluster' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/swap.h' line='239' column='1' id='723fef03'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='ed00f788' visibility='default' filepath='include/linux/swap.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='next' type-id='f0981eeb' visibility='default' filepath='include/linux/swap.h' line='241' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='iomap_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/iomap.h' line='148' column='1' id='72488e2e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='iomap_begin' type-id='e23bfa68' visibility='default' filepath='include/linux/iomap.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='iomap_end' type-id='30064a72' visibility='default' filepath='include/linux/iomap.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/iomap.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/iomap.h' line='168' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_dma_device' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/sound/memalloc.h' line='20' column='1' id='724d481c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='95e97e5e' visibility='default' filepath='include/sound/memalloc.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/sound/memalloc.h' line='22' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='77dbffe9' size-in-bits='64' id='72539ff9'/>
+      <qualified-type-def type-id='7124a2a6' const='yes' id='7253d28f'/>
+      <qualified-type-def type-id='a3119fea' const='yes' id='72546357'/>
+      <class-decl name='iomap_iter' size-in-bits='1600' is-struct='yes' visibility='default' filepath='include/linux/iomap.h' line='184' column='1' id='7259b630'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='inode' type-id='7e666abe' visibility='default' filepath='include/linux/iomap.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pos' type-id='69bf7bee' visibility='default' filepath='include/linux/iomap.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='len' type-id='91ce1af9' visibility='default' filepath='include/linux/iomap.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='processed' type-id='9b7c55ef' visibility='default' filepath='include/linux/iomap.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/iomap.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='iomap' type-id='3b326cb5' visibility='default' filepath='include/linux/iomap.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='srcmap' type-id='3b326cb5' visibility='default' filepath='include/linux/iomap.h' line='191' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='perf_event' size-in-bits='8320' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='628' column='1' id='7263c471'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='event_entry' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='635' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sibling_list' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='641' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='active_list' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='642' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='group_node' type-id='2a8a6332' visibility='default' filepath='include/linux/perf_event.h' line='646' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='group_index' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='647' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='migrate_entry' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='653' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='hlist_entry' type-id='03a4a074' visibility='default' filepath='include/linux/perf_event.h' line='655' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='active_entry' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='656' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='nr_siblings' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='657' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='event_caps' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='660' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='group_caps' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='662' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='group_leader' type-id='2bf16f59' visibility='default' filepath='include/linux/perf_event.h' line='664' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='pmu' type-id='0906f5b9' visibility='default' filepath='include/linux/perf_event.h' line='665' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='pmu_private' type-id='eaa32e2f' visibility='default' filepath='include/linux/perf_event.h' line='666' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='state' type-id='31fdb95a' visibility='default' filepath='include/linux/perf_event.h' line='668' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='attach_state' type-id='f0981eeb' visibility='default' filepath='include/linux/perf_event.h' line='669' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='count' type-id='7da7300e' visibility='default' filepath='include/linux/perf_event.h' line='670' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='child_count' type-id='28ee064c' visibility='default' filepath='include/linux/perf_event.h' line='671' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='total_time_enabled' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='679' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='total_time_running' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='680' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='tstamp' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='681' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='attr' type-id='e57536d9' visibility='default' filepath='include/linux/perf_event.h' line='683' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='header_size' type-id='1dc6a898' visibility='default' filepath='include/linux/perf_event.h' line='684' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2768'>
+          <var-decl name='id_header_size' type-id='1dc6a898' visibility='default' filepath='include/linux/perf_event.h' line='685' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2784'>
+          <var-decl name='read_size' type-id='1dc6a898' visibility='default' filepath='include/linux/perf_event.h' line='686' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='hw' type-id='b594b0c9' visibility='default' filepath='include/linux/perf_event.h' line='687' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='ctx' type-id='b9419dc5' visibility='default' filepath='include/linux/perf_event.h' line='689' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='refcount' type-id='f22a8abb' visibility='default' filepath='include/linux/perf_event.h' line='690' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4480'>
+          <var-decl name='child_total_time_enabled' type-id='28ee064c' visibility='default' filepath='include/linux/perf_event.h' line='696' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4544'>
+          <var-decl name='child_total_time_running' type-id='28ee064c' visibility='default' filepath='include/linux/perf_event.h' line='697' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4608'>
+          <var-decl name='child_mutex' type-id='925167dc' visibility='default' filepath='include/linux/perf_event.h' line='702' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='child_list' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='703' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='parent' type-id='2bf16f59' visibility='default' filepath='include/linux/perf_event.h' line='704' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='oncpu' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='706' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5216'>
+          <var-decl name='cpu' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='707' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='owner_entry' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='709' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='owner' type-id='f23e2572' visibility='default' filepath='include/linux/perf_event.h' line='710' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5440'>
+          <var-decl name='mmap_mutex' type-id='925167dc' visibility='default' filepath='include/linux/perf_event.h' line='713' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5824'>
+          <var-decl name='mmap_count' type-id='49178f86' visibility='default' filepath='include/linux/perf_event.h' line='714' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5888'>
+          <var-decl name='rb' type-id='35b814e1' visibility='default' filepath='include/linux/perf_event.h' line='716' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5952'>
+          <var-decl name='rb_entry' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='717' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='rcu_batches' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='718' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6144'>
+          <var-decl name='rcu_pending' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='719' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6208'>
+          <var-decl name='waitq' type-id='b5ab048f' visibility='default' filepath='include/linux/perf_event.h' line='722' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6400'>
+          <var-decl name='fasync' type-id='5bb9c75d' visibility='default' filepath='include/linux/perf_event.h' line='723' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='pending_wakeup' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='726' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6496'>
+          <var-decl name='pending_kill' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='727' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6528'>
+          <var-decl name='pending_disable' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='728' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6592'>
+          <var-decl name='pending_addr' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='729' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6656'>
+          <var-decl name='pending' type-id='9281c70f' visibility='default' filepath='include/linux/perf_event.h' line='730' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6848'>
+          <var-decl name='event_limit' type-id='49178f86' visibility='default' filepath='include/linux/perf_event.h' line='732' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6912'>
+          <var-decl name='addr_filters' type-id='54885433' visibility='default' filepath='include/linux/perf_event.h' line='735' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7104'>
+          <var-decl name='addr_filter_ranges' type-id='200ffa89' visibility='default' filepath='include/linux/perf_event.h' line='737' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7168'>
+          <var-decl name='addr_filters_gen' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='738' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7232'>
+          <var-decl name='aux_event' type-id='2bf16f59' visibility='default' filepath='include/linux/perf_event.h' line='741' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='destroy' type-id='aed2baa8' visibility='default' filepath='include/linux/perf_event.h' line='743' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/linux/perf_event.h' line='744' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='ns' type-id='b816e1d0' visibility='default' filepath='include/linux/perf_event.h' line='746' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='id' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='747' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='clock' type-id='0e70db3e' visibility='default' filepath='include/linux/perf_event.h' line='749' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='overflow_handler' type-id='20a2e4e6' visibility='default' filepath='include/linux/perf_event.h' line='750' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='overflow_handler_context' type-id='eaa32e2f' visibility='default' filepath='include/linux/perf_event.h' line='751' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='orig_overflow_handler' type-id='20a2e4e6' visibility='default' filepath='include/linux/perf_event.h' line='753' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='prog' type-id='bdcee7ae' visibility='default' filepath='include/linux/perf_event.h' line='754' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='bpf_cookie' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='755' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='tp_event' type-id='23d6768c' visibility='default' filepath='include/linux/perf_event.h' line='759' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='filter' type-id='26461068' visibility='default' filepath='include/linux/perf_event.h' line='760' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='security' type-id='eaa32e2f' visibility='default' filepath='include/linux/perf_event.h' line='771' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='sb_list' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='773' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='work_func_t' type-id='939280af' filepath='include/linux/workqueue.h' line='22' column='1' id='72666d3f'/>
+      <pointer-type-def type-id='dca78e2c' size-in-bits='64' id='726f2cf6'/>
+      <pointer-type-def type-id='55274865' size-in-bits='64' id='72720131'/>
+      <pointer-type-def type-id='ef40f18b' size-in-bits='64' id='72742e5b'/>
+      <pointer-type-def type-id='d97eb63a' size-in-bits='64' id='72789b30'/>
+      <class-decl name='bpf_raw_event_map' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/tracepoint-defs.h' line='49' column='1' id='72790540'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tp' type-id='08e531de' visibility='default' filepath='include/linux/tracepoint-defs.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bpf_func' type-id='eaa32e2f' visibility='default' filepath='include/linux/tracepoint-defs.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='num_args' type-id='19c2251e' visibility='default' filepath='include/linux/tracepoint-defs.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='writable_size' type-id='19c2251e' visibility='default' filepath='include/linux/tracepoint-defs.h' line='53' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='facd5338' const='yes' id='728100fd'/>
+      <pointer-type-def type-id='a24978a1' size-in-bits='64' id='72835629'/>
+      <array-type-def dimensions='1' type-id='40af3608' size-in-bits='infinite' id='7289e834'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='fbc017ef' size-in-bits='192' id='728c8299'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='62778ae5' size-in-bits='infinite' id='7290550d'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='95e97e5e' size-in-bits='64' id='7292109c'/>
+      <array-type-def dimensions='1' type-id='14582e4a' size-in-bits='12288' id='729537cc'>
+        <subrange length='64' type-id='7ff19f0f' id='b10be967'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='729b729c'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='2ce52478'/>
+        <parameter type-id='7292109c'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='v4l2_subdev_vbi_ops' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='500' column='1' id='729f8f08'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='decode_vbi_line' type-id='c6a521af' visibility='default' filepath='include/media/v4l2-subdev.h' line='501' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='s_vbi_data' type-id='03813572' visibility='default' filepath='include/media/v4l2-subdev.h' line='502' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='g_vbi_data' type-id='a49b3ef9' visibility='default' filepath='include/media/v4l2-subdev.h' line='503' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='g_sliced_vbi_cap' type-id='795cf0d1' visibility='default' filepath='include/media/v4l2-subdev.h' line='504' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='s_raw_fmt' type-id='740a3d8b' visibility='default' filepath='include/media/v4l2-subdev.h' line='505' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='g_sliced_fmt' type-id='b0487488' visibility='default' filepath='include/media/v4l2-subdev.h' line='506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='s_sliced_fmt' type-id='b0487488' visibility='default' filepath='include/media/v4l2-subdev.h' line='507' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='72a2bb90'>
+        <parameter type-id='43c38462'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='xhci_virt_ep' size-in-bits='1600' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='930' column='1' id='72a973b7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vdev' type-id='644da7aa' visibility='default' filepath='drivers/usb/host/xhci.h' line='931' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ep_index' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='932' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ring' type-id='52a50596' visibility='default' filepath='drivers/usb/host/xhci.h' line='933' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='stream_info' type-id='46446973' visibility='default' filepath='drivers/usb/host/xhci.h' line='935' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='new_ring' type-id='52a50596' visibility='default' filepath='drivers/usb/host/xhci.h' line='939' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ep_state' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='940' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='cancelled_td_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/xhci.h' line='954' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='stop_cmd_timer' type-id='abe41e67' visibility='default' filepath='drivers/usb/host/xhci.h' line='956' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='xhci' type-id='0c65b409' visibility='default' filepath='drivers/usb/host/xhci.h' line='957' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='queued_deq_seg' type-id='9689f21b' visibility='default' filepath='drivers/usb/host/xhci.h' line='962' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='queued_deq_ptr' type-id='2e0bb6d4' visibility='default' filepath='drivers/usb/host/xhci.h' line='963' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='skip' type-id='b50a4934' visibility='default' filepath='drivers/usb/host/xhci.h' line='971' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='bw_info' type-id='0acb8a06' visibility='default' filepath='drivers/usb/host/xhci.h' line='973' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='bw_endpoint_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/xhci.h' line='974' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='next_frame_id' type-id='95e97e5e' visibility='default' filepath='drivers/usb/host/xhci.h' line='976' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='use_extended_tbc' type-id='b50a4934' visibility='default' filepath='drivers/usb/host/xhci.h' line='978' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='sdio_irq_handler_t' type-id='81dd332a' filepath='include/linux/mmc/sdio_func.h' line='19' column='1' id='72a9e98a'/>
+      <qualified-type-def type-id='7b61b7b4' const='yes' id='72b61a2d'/>
+      <array-type-def dimensions='1' type-id='f22a8abb' size-in-bits='384' id='72bb5580'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <pointer-type-def type-id='d80b6ab0' size-in-bits='64' id='72bb8c36'/>
+      <qualified-type-def type-id='d07c39e7' const='yes' id='72c04684'/>
+      <class-decl name='spi_device' size-in-bits='10240' is-struct='yes' visibility='default' filepath='include/linux/spi/spi.h' line='167' column='1' id='72c0e160'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/spi/spi.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='controller' type-id='f22e4524' visibility='default' filepath='include/linux/spi/spi.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='master' type-id='f22e4524' visibility='default' filepath='include/linux/spi/spi.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='max_speed_hz' type-id='19c2251e' visibility='default' filepath='include/linux/spi/spi.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7456'>
+          <var-decl name='chip_select' type-id='f9b06939' visibility='default' filepath='include/linux/spi/spi.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7464'>
+          <var-decl name='bits_per_word' type-id='f9b06939' visibility='default' filepath='include/linux/spi/spi.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7472'>
+          <var-decl name='rt' type-id='b50a4934' visibility='default' filepath='include/linux/spi/spi.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='mode' type-id='19c2251e' visibility='default' filepath='include/linux/spi/spi.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7520'>
+          <var-decl name='irq' type-id='95e97e5e' visibility='default' filepath='include/linux/spi/spi.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='controller_state' type-id='eaa32e2f' visibility='default' filepath='include/linux/spi/spi.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='controller_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/spi/spi.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='modalias' type-id='16dc656a' visibility='default' filepath='include/linux/spi/spi.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='driver_override' type-id='80f4b756' visibility='default' filepath='include/linux/spi/spi.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='cs_gpio' type-id='95e97e5e' visibility='default' filepath='include/linux/spi/spi.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='cs_gpiod' type-id='26760480' visibility='default' filepath='include/linux/spi/spi.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='word_delay' type-id='5a467bb1' visibility='default' filepath='include/linux/spi/spi.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8160'>
+          <var-decl name='cs_setup' type-id='5a467bb1' visibility='default' filepath='include/linux/spi/spi.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='cs_hold' type-id='5a467bb1' visibility='default' filepath='include/linux/spi/spi.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8224'>
+          <var-decl name='cs_inactive' type-id='5a467bb1' visibility='default' filepath='include/linux/spi/spi.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='statistics' type-id='bf41d149' visibility='default' filepath='include/linux/spi/spi.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10112'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/spi/spi.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10176'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/spi/spi.h' line='205' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e9855576' size-in-bits='64' id='72cd68b0'/>
+      <function-type size-in-bits='64' id='72ce0fb3'>
+        <parameter type-id='7a29ff27'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c991d9f0' size-in-bits='64' id='72dd5196'/>
+      <function-type size-in-bits='64' id='72e0b98d'>
+        <parameter type-id='63a08bf7'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='72e932b0'>
+        <parameter type-id='13d38dcb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='2519c394' size-in-bits='64' id='72ece9e2'/>
+      <class-decl name='list_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/types.h' line='178' column='1' id='72f469ec'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='e84b031a' visibility='default' filepath='include/linux/types.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='prev' type-id='e84b031a' visibility='default' filepath='include/linux/types.h' line='179' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='devlink_dev_stats' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='27' column='1' id='72f47b7c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reload_stats' type-id='5867ed7f' visibility='default' filepath='include/net/devlink.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='remote_reload_stats' type-id='5867ed7f' visibility='default' filepath='include/net/devlink.h' line='29' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0c71d025' size-in-bits='64' id='72fa5619'/>
+      <function-type size-in-bits='64' id='72fc7982'>
+        <parameter type-id='c1547255'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='fe695434' size-in-bits='64' id='72fd300e'/>
+      <class-decl name='irq_bypass_consumer' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/irqbypass.h' line='71' column='1' id='73042c0b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/irqbypass.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='token' type-id='eaa32e2f' visibility='default' filepath='include/linux/irqbypass.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='add_producer' type-id='8189260f' visibility='default' filepath='include/linux/irqbypass.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='del_producer' type-id='2cf6bd86' visibility='default' filepath='include/linux/irqbypass.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='stop' type-id='c7076d1a' visibility='default' filepath='include/linux/irqbypass.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='start' type-id='c7076d1a' visibility='default' filepath='include/linux/irqbypass.h' line='79' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8a6e72bc' size-in-bits='64' id='7308495a'/>
+      <pointer-type-def type-id='7cd8db07' size-in-bits='64' id='730ae11f'/>
+      <pointer-type-def type-id='1851ab9f' size-in-bits='64' id='730f4667'/>
+      <pointer-type-def type-id='38ce7f2c' size-in-bits='64' id='7311f672'/>
+      <pointer-type-def type-id='fb0c2987' size-in-bits='64' id='731257ff'/>
+      <pointer-type-def type-id='8074b8e7' size-in-bits='64' id='7312c953'/>
+      <enum-decl name='hrtimer_restart' filepath='include/linux/hrtimer.h' line='66' column='1' id='7313b0ab'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HRTIMER_NORESTART' value='0'/>
+        <enumerator name='HRTIMER_RESTART' value='1'/>
+      </enum-decl>
+      <class-decl name='sadb_alg' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/pfkeyv2.h' line='142' column='1' id='731caba6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sadb_alg_id' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/pfkeyv2.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='sadb_alg_ivlen' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/pfkeyv2.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='sadb_alg_minbits' type-id='d315442e' visibility='default' filepath='include/uapi/linux/pfkeyv2.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='sadb_alg_maxbits' type-id='d315442e' visibility='default' filepath='include/uapi/linux/pfkeyv2.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='sadb_alg_reserved' type-id='d315442e' visibility='default' filepath='include/uapi/linux/pfkeyv2.h' line='147' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='uac_fu_params' size-in-bits='96' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='23' column='1' id='7321c6b7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='mute_present' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='volume_present' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='volume_min' type-id='9b7e9486' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='volume_max' type-id='9b7e9486' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='volume_res' type-id='9b7e9486' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='31' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='62049774' const='yes' id='732bc085'/>
+      <function-type size-in-bits='64' id='732df9b3'>
+        <parameter type-id='231422bf'/>
+        <return type-id='00ee50b8'/>
+      </function-type>
+      <pointer-type-def type-id='d6b43ca8' size-in-bits='64' id='732e15ce'/>
+      <class-decl name='drm_driver' size-in-bits='1728' is-struct='yes' visibility='default' filepath='include/drm/drm_drv.h' line='160' column='1' id='73303b8d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='load' type-id='30c8e7b1' visibility='default' filepath='include/drm/drm_drv.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='open' type-id='ccba7a85' visibility='default' filepath='include/drm/drm_drv.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='postclose' type-id='157eca44' visibility='default' filepath='include/drm/drm_drv.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='lastclose' type-id='62995e90' visibility='default' filepath='include/drm/drm_drv.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='unload' type-id='62995e90' visibility='default' filepath='include/drm/drm_drv.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='release' type-id='62995e90' visibility='default' filepath='include/drm/drm_drv.h' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='master_set' type-id='7d13749d' visibility='default' filepath='include/drm/drm_drv.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='master_drop' type-id='157eca44' visibility='default' filepath='include/drm/drm_drv.h' line='282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='debugfs_init' type-id='f08a800b' visibility='default' filepath='include/drm/drm_drv.h' line='289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='gem_create_object' type-id='76ba9b40' visibility='default' filepath='include/drm/drm_drv.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='prime_handle_to_fd' type-id='2579e5b0' visibility='default' filepath='include/drm/drm_drv.h' line='309' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='prime_fd_to_handle' type-id='f9d4c3c6' visibility='default' filepath='include/drm/drm_drv.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='gem_prime_import' type-id='b121f651' visibility='default' filepath='include/drm/drm_drv.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='gem_prime_import_sg_table' type-id='38d8fc10' visibility='default' filepath='include/drm/drm_drv.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='gem_prime_mmap' type-id='516294a7' visibility='default' filepath='include/drm/drm_drv.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='dumb_create' type-id='c95d5016' visibility='default' filepath='include/drm/drm_drv.h' line='375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='dumb_map_offset' type-id='c62ff945' visibility='default' filepath='include/drm/drm_drv.h' line='393' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='dumb_destroy' type-id='aca8090e' visibility='default' filepath='include/drm/drm_drv.h' line='412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='major' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_drv.h' line='417' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='minor' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_drv.h' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='patchlevel' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_drv.h' line='421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/drm/drm_drv.h' line='423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='desc' type-id='26a90f95' visibility='default' filepath='include/drm/drm_drv.h' line='425' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='date' type-id='26a90f95' visibility='default' filepath='include/drm/drm_drv.h' line='427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='driver_features' type-id='19c2251e' visibility='default' filepath='include/drm/drm_drv.h' line='435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='ioctls' type-id='2effb43d' visibility='default' filepath='include/drm/drm_drv.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='num_ioctls' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_drv.h' line='447' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='fops' type-id='61758ee5' visibility='default' filepath='include/drm/drm_drv.h' line='456' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='234005a7' size-in-bits='64' id='7331a99f'/>
+      <function-type size-in-bits='64' id='733b57c3'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='c1873808'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='7340ff89'>
+        <parameter type-id='809cdefc'/>
+        <parameter type-id='1b0e1d00'/>
+        <parameter type-id='d8e6b335'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='734a42c0'>
+        <parameter type-id='0e3f80d9'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='3f1a6b60' size-in-bits='1024' id='734a963c'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <pointer-type-def type-id='2942e355' size-in-bits='64' id='734c20ed'/>
+      <pointer-type-def type-id='266b553e' size-in-bits='64' id='7353ff84'/>
+      <pointer-type-def type-id='ec8e7b62' size-in-bits='64' id='73550cb4'/>
+      <class-decl name='snd_timer' size-in-bits='3712' is-struct='yes' visibility='default' filepath='include/sound/timer.h' line='60' column='1' id='73595e52'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tmr_class' type-id='95e97e5e' visibility='default' filepath='include/sound/timer.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='card' type-id='52704eb7' visibility='default' filepath='include/sound/timer.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='module' type-id='2730d015' visibility='default' filepath='include/sound/timer.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tmr_device' type-id='95e97e5e' visibility='default' filepath='include/sound/timer.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='tmr_subdevice' type-id='95e97e5e' visibility='default' filepath='include/sound/timer.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='id' type-id='59daf3ef' visibility='default' filepath='include/sound/timer.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='name' type-id='aa5ff375' visibility='default' filepath='include/sound/timer.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/sound/timer.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='running' type-id='95e97e5e' visibility='default' filepath='include/sound/timer.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='sticks' type-id='7359adad' visibility='default' filepath='include/sound/timer.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/timer.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='private_free' type-id='4a508205' visibility='default' filepath='include/sound/timer.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='hw' type-id='bb41d987' visibility='default' filepath='include/sound/timer.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/sound/timer.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='device_list' type-id='72f469ec' visibility='default' filepath='include/sound/timer.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='open_list_head' type-id='72f469ec' visibility='default' filepath='include/sound/timer.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='active_list_head' type-id='72f469ec' visibility='default' filepath='include/sound/timer.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='ack_list_head' type-id='72f469ec' visibility='default' filepath='include/sound/timer.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='sack_list_head' type-id='72f469ec' visibility='default' filepath='include/sound/timer.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='task_work' type-id='ef9025d0' visibility='default' filepath='include/sound/timer.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='max_instances' type-id='95e97e5e' visibility='default' filepath='include/sound/timer.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3616'>
+          <var-decl name='num_instances' type-id='95e97e5e' visibility='default' filepath='include/sound/timer.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/timer.h' line='84' column='1'/>
+        </data-member>
+      </class-decl>
+      <type-decl name='unsigned long int' size-in-bits='64' id='7359adad'/>
+      <function-type size-in-bits='64' id='73627a37'>
+        <parameter type-id='37175e4d'/>
+        <parameter type-id='5b4284d1'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='73629046'>
+        <parameter type-id='d4e0eca9'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='7363afc0'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='61d12d26'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='7364da7b'>
+        <parameter type-id='74b427eb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d8e81cd4' size-in-bits='64' id='7365a3da'/>
+      <class-decl name='ieee80211_power_rule' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/regulatory.h' line='187' column='1' id='736b3d64'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='max_antenna_gain' type-id='19c2251e' visibility='default' filepath='include/net/regulatory.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='max_eirp' type-id='19c2251e' visibility='default' filepath='include/net/regulatory.h' line='189' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='7370d1f4'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='5fe73d20'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='bc0d33fe' size-in-bits='64' id='73789784'/>
+      <class-decl name='snd_pcm_ops' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/sound/pcm.h' line='54' column='1' id='73803d48'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='open' type-id='ab756384' visibility='default' filepath='include/sound/pcm.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='close' type-id='ab756384' visibility='default' filepath='include/sound/pcm.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ioctl' type-id='b47996f0' visibility='default' filepath='include/sound/pcm.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hw_params' type-id='2b3f1c33' visibility='default' filepath='include/sound/pcm.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='hw_free' type-id='ab756384' visibility='default' filepath='include/sound/pcm.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='prepare' type-id='ab756384' visibility='default' filepath='include/sound/pcm.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='trigger' type-id='898a0783' visibility='default' filepath='include/sound/pcm.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='sync_stop' type-id='ab756384' visibility='default' filepath='include/sound/pcm.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='pointer' type-id='e17d6b77' visibility='default' filepath='include/sound/pcm.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='get_time_info' type-id='57830e10' visibility='default' filepath='include/sound/pcm.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='fill_silence' type-id='4dbb0953' visibility='default' filepath='include/sound/pcm.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='copy_user' type-id='7e4306d7' visibility='default' filepath='include/sound/pcm.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='copy_kernel' type-id='7e4306d7' visibility='default' filepath='include/sound/pcm.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='page' type-id='df9eab8a' visibility='default' filepath='include/sound/pcm.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='mmap' type-id='3d7033ef' visibility='default' filepath='include/sound/pcm.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='ack' type-id='ab756384' visibility='default' filepath='include/sound/pcm.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/pcm.h' line='81' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a73b2f11' size-in-bits='64' id='73892d6d'/>
+      <class-decl name='net_device_path' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='892' column='1' id='738a877b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='0c8e3c71' visibility='default' filepath='include/linux/netdevice.h' line='893' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='2ce52478' visibility='default' filepath='include/linux/netdevice.h' line='894' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='' type-id='ac5ab670' visibility='default' filepath='include/linux/netdevice.h' line='895' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2d2d4460' size-in-bits='64' id='738b5bc2'/>
+      <union-decl name='xhci_trb' size-in-bits='128' visibility='default' filepath='drivers/usb/host/xhci.h' line='1355' column='1' id='73956807'>
+        <data-member access='public'>
+          <var-decl name='link' type-id='80702149' visibility='default' filepath='drivers/usb/host/xhci.h' line='1356' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='trans_event' type-id='b913a5e6' visibility='default' filepath='drivers/usb/host/xhci.h' line='1357' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='event_cmd' type-id='e5ddb711' visibility='default' filepath='drivers/usb/host/xhci.h' line='1358' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='generic' type-id='c74233fc' visibility='default' filepath='drivers/usb/host/xhci.h' line='1359' column='1'/>
+        </data-member>
+      </union-decl>
+      <pointer-type-def type-id='9edde41e' size-in-bits='64' id='7395da04'/>
+      <pointer-type-def type-id='e3087f12' size-in-bits='64' id='7398303c'/>
+      <pointer-type-def type-id='ca0dbd4a' size-in-bits='64' id='73a11e20'/>
+      <function-type size-in-bits='64' id='73a3fbc3'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='73adb477'>
+        <parameter type-id='9ad862e7'/>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='73b85a24'>
+        <parameter type-id='3aaeef89'/>
+        <parameter type-id='f726dab6'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='512' id='73b95420'>
+        <subrange length='64' type-id='7ff19f0f' id='b10be967'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='73b9a01f'>
+        <parameter type-id='3e31633b'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='tk_offsets' filepath='include/linux/timekeeping.h' line='60' column='1' id='73bb584e'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='TK_OFFS_REAL' value='0'/>
+        <enumerator name='TK_OFFS_BOOT' value='1'/>
+        <enumerator name='TK_OFFS_TAI' value='2'/>
+        <enumerator name='TK_OFFS_MAX' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='6e1a0135' size-in-bits='64' id='73bb9b25'/>
+      <array-type-def dimensions='1' type-id='95e97e5e' size-in-bits='512' id='73c2bc6b'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <pointer-type-def type-id='4446be8a' size-in-bits='64' id='73cc7ee4'/>
+      <enum-decl name='hdmi_audio_sample_size' filepath='include/linux/hdmi.h' line='279' column='1' id='73deb9e6'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HDMI_AUDIO_SAMPLE_SIZE_STREAM' value='0'/>
+        <enumerator name='HDMI_AUDIO_SAMPLE_SIZE_16' value='1'/>
+        <enumerator name='HDMI_AUDIO_SAMPLE_SIZE_20' value='2'/>
+        <enumerator name='HDMI_AUDIO_SAMPLE_SIZE_24' value='3'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='73e35fcc'>
+        <parameter type-id='00ee50b8'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='91ce1af9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='phy_tdr_config' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/phy.h' line='699' column='1' id='73e7fb44'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='first' type-id='19c2251e' visibility='default' filepath='include/linux/phy.h' line='700' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='last' type-id='19c2251e' visibility='default' filepath='include/linux/phy.h' line='701' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='step' type-id='19c2251e' visibility='default' filepath='include/linux/phy.h' line='702' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='pair' type-id='fdbf7a0f' visibility='default' filepath='include/linux/phy.h' line='703' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='51195455' size-in-bits='64' id='73ea90c5'/>
+      <typedef-decl name='snd_kcontrol_get_t' type-id='84147814' filepath='include/sound/control.h' line='18' column='1' id='73fb632a'/>
+      <pointer-type-def type-id='1e330b13' size-in-bits='64' id='74005b57'/>
+      <pointer-type-def type-id='5cdc243f' size-in-bits='64' id='740a3d8b'/>
+      <pointer-type-def type-id='f3d147c3' size-in-bits='64' id='740b5503'/>
+      <class-decl name='sched_class' size-in-bits='1728' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='2168' column='1' id='74191d27'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='uclamp_enabled' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='2171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='enqueue_task' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dequeue_task' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='yield_task' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='yield_to_task' type-id='7dfe7cd1' visibility='default' filepath='kernel/sched/sched.h' line='2177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='check_preempt_curr' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='pick_next_task' type-id='ba703a2c' visibility='default' filepath='kernel/sched/sched.h' line='2181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='put_prev_task' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='set_next_task' type-id='f13b7179' visibility='default' filepath='kernel/sched/sched.h' line='2184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='balance' type-id='5346c726' visibility='default' filepath='kernel/sched/sched.h' line='2187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='select_task_rq' type-id='8d80ced8' visibility='default' filepath='kernel/sched/sched.h' line='2188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='pick_task' type-id='ba703a2c' visibility='default' filepath='kernel/sched/sched.h' line='2190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='migrate_task_rq' type-id='9d640202' visibility='default' filepath='kernel/sched/sched.h' line='2192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='task_woken' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='set_cpus_allowed' type-id='41c42b69' visibility='default' filepath='kernel/sched/sched.h' line='2196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='rq_online' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='rq_offline' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='find_lock_rq' type-id='64c408c1' visibility='default' filepath='kernel/sched/sched.h' line='2203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='task_tick' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='task_fork' type-id='1c9e19fb' visibility='default' filepath='kernel/sched/sched.h' line='2207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='task_dead' type-id='1c9e19fb' visibility='default' filepath='kernel/sched/sched.h' line='2208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='switched_from' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='switched_to' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='prio_changed' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='get_rr_interval' type-id='c79c9f4c' visibility='default' filepath='kernel/sched/sched.h' line='2220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='update_curr' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='task_change_group' type-id='9d640202' visibility='default' filepath='kernel/sched/sched.h' line='2229' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c2d135ef' size-in-bits='64' id='741cc96e'/>
+      <function-type size-in-bits='64' id='7426eacc'>
+        <parameter type-id='a970a64c'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='395aad7e' size-in-bits='64' id='74287ea0'/>
+      <class-decl name='cfg80211_match_set' size-in-bits='544' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2651' column='1' id='7430554e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ssid' type-id='0c960fcf' visibility='default' filepath='include/net/cfg80211.h' line='2652' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='264'>
+          <var-decl name='bssid' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='2653' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='rssi_thold' type-id='a7832498' visibility='default' filepath='include/net/cfg80211.h' line='2654' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='per_band_rssi_thold' type-id='2cccef85' visibility='default' filepath='include/net/cfg80211.h' line='2655' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='63df6bcc' size-in-bits='64' id='7432d5be'/>
+      <class-decl name='netns_core' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/netns/core.h' line='8' column='1' id='7436aa2b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sysctl_hdr' type-id='11b101bb' visibility='default' filepath='include/net/netns/core.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sysctl_somaxconn' type-id='95e97e5e' visibility='default' filepath='include/net/netns/core.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sock_inuse' type-id='7292109c' visibility='default' filepath='include/net/netns/core.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='prot_inuse' type-id='a06a810d' visibility='default' filepath='include/net/netns/core.h' line='16' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_vma_offset_node' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/drm/drm_vma_manager.h' line='52' column='1' id='743d7e52'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vm_lock' type-id='ac16795b' visibility='default' filepath='include/drm/drm_vma_manager.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='vm_node' type-id='60498a7e' visibility='default' filepath='include/drm/drm_vma_manager.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='vm_files' type-id='dec44472' visibility='default' filepath='include/drm/drm_vma_manager.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='driver_private' type-id='eaa32e2f' visibility='default' filepath='include/drm/drm_vma_manager.h' line='56' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='917c67c0' size-in-bits='64' id='74439606'/>
+      <class-decl name='of_bus' size-in-bits='512' is-struct='yes' visibility='default' filepath='drivers/of/address.c' line='44' column='1' id='744721d1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/of/address.c' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='addresses' type-id='80f4b756' visibility='default' filepath='drivers/of/address.c' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='match' type-id='e4bfbb5a' visibility='default' filepath='drivers/of/address.c' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='count_cells' type-id='4f66dac3' visibility='default' filepath='drivers/of/address.c' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='map' type-id='f1b9224e' visibility='default' filepath='drivers/of/address.c' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='translate' type-id='b3e568e2' visibility='default' filepath='drivers/of/address.c' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='has_flags' type-id='b50a4934' visibility='default' filepath='drivers/of/address.c' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='get_flags' type-id='b8d7e031' visibility='default' filepath='drivers/of/address.c' line='54' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='05d9ea82' size-in-bits='384' id='74482e87'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <class-decl name='kparam_string' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/moduleparam.h' line='86' column='1' id='744e4af5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='maxlen' type-id='f0981eeb' 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='26a90f95' visibility='default' filepath='include/linux/moduleparam.h' line='88' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_ctrl_hevc_pps' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/media/hevc-ctrls.h' line='107' column='1' id='7458c17e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='num_extra_slice_header_bits' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='num_ref_idx_l0_default_active_minus1' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='num_ref_idx_l1_default_active_minus1' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='init_qp_minus26' type-id='8af57d41' visibility='default' filepath='include/media/hevc-ctrls.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='diff_cu_qp_delta_depth' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='pps_cb_qp_offset' type-id='8af57d41' visibility='default' filepath='include/media/hevc-ctrls.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='pps_cr_qp_offset' type-id='8af57d41' visibility='default' filepath='include/media/hevc-ctrls.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='num_tile_columns_minus1' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_tile_rows_minus1' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='column_width_minus1' type-id='26fb03b8' visibility='default' filepath='include/media/hevc-ctrls.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='232'>
+          <var-decl name='row_height_minus1' type-id='eaf62816' visibility='default' filepath='include/media/hevc-ctrls.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='408'>
+          <var-decl name='pps_beta_offset_div2' type-id='8af57d41' visibility='default' filepath='include/media/hevc-ctrls.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='pps_tc_offset_div2' type-id='8af57d41' visibility='default' filepath='include/media/hevc-ctrls.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='424'>
+          <var-decl name='log2_parallel_merge_level_minus2' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='432'>
+          <var-decl name='padding' type-id='c213d3d4' visibility='default' filepath='include/media/hevc-ctrls.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='flags' type-id='d3130597' visibility='default' filepath='include/media/hevc-ctrls.h' line='125' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fffdaf52' size-in-bits='64' id='745b39e8'/>
+      <pointer-type-def type-id='319b3a77' size-in-bits='64' id='745ce067'/>
+      <class-decl name='virtio_device_id' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/mod_devicetable.h' line='435' column='1' id='7462f12f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='device' type-id='3f1a6b60' visibility='default' filepath='include/linux/mod_devicetable.h' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='vendor' type-id='3f1a6b60' visibility='default' filepath='include/linux/mod_devicetable.h' line='437' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='request_desc_header' size-in-bits='128' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='451' column='1' id='746bbed6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dword_0' type-id='2f162548' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='dword_1' type-id='2f162548' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dword_2' type-id='2f162548' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='dword_3' type-id='2f162548' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='455' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='746df737'>
+        <parameter type-id='4db02c58'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='f7b0e1b4'/>
+      </function-type>
+      <pointer-type-def type-id='6e85ad52' size-in-bits='64' id='747013e8'/>
+      <function-type size-in-bits='64' id='747e7623'>
+        <parameter type-id='06b2cd14'/>
+        <return type-id='df412e35'/>
+      </function-type>
+      <class-decl name='edac_dev_sysfs_attribute' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/edac/edac_device.h' line='88' column='1' id='7486ad2e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='attr' type-id='a6222917' visibility='default' filepath='drivers/edac/edac_device.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='show' type-id='a58e905b' visibility='default' filepath='drivers/edac/edac_device.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='store' type-id='f40bec0f' visibility='default' filepath='drivers/edac/edac_device.h' line='91' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='ufs_dev_pwr_mode' filepath='drivers/scsi/ufs/ufs.h' line='468' column='1' id='748f6f00'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='UFS_ACTIVE_PWR_MODE' value='1'/>
+        <enumerator name='UFS_SLEEP_PWR_MODE' value='2'/>
+        <enumerator name='UFS_POWERDOWN_PWR_MODE' value='3'/>
+        <enumerator name='UFS_DEEPSLEEP_PWR_MODE' value='4'/>
+      </enum-decl>
+      <enum-decl name='l2tp_pwtype' filepath='include/uapi/linux/l2tp.h' line='154' column='1' id='748fba12'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='L2TP_PWTYPE_NONE' value='0'/>
+        <enumerator name='L2TP_PWTYPE_ETH_VLAN' value='4'/>
+        <enumerator name='L2TP_PWTYPE_ETH' value='5'/>
+        <enumerator name='L2TP_PWTYPE_PPP' value='7'/>
+        <enumerator name='L2TP_PWTYPE_PPP_AC' value='8'/>
+        <enumerator name='L2TP_PWTYPE_IP' value='11'/>
+        <enumerator name='__L2TP_PWTYPE_MAX' value='12'/>
+      </enum-decl>
+      <pointer-type-def type-id='e69aabca' size-in-bits='64' id='74912a48'/>
+      <function-type size-in-bits='64' id='74912d6e'>
+        <parameter type-id='75ae4804'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='749378a8'>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b53e8dbb'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <pointer-type-def type-id='6dea5f13' size-in-bits='64' id='749654e7'/>
+      <typedef-decl name='kernel_cap_t' type-id='923128a5' filepath='include/linux/capability.h' line='26' column='1' id='7496b151'/>
+      <function-type size-in-bits='64' id='749ee287'>
+        <parameter type-id='cfff5953'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='arm_smccc_conduit' filepath='include/linux/arm-smccc.h' line='248' column='1' id='74a8da23'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SMCCC_CONDUIT_NONE' value='0'/>
+        <enumerator name='SMCCC_CONDUIT_SMC' value='1'/>
+        <enumerator name='SMCCC_CONDUIT_HVC' value='2'/>
+      </enum-decl>
+      <class-decl name='ff_replay' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/input.h' line='306' column='1' id='74a8f9e9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='length' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='delay' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='308' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ad57f193' size-in-bits='64' id='74ad1fb3'/>
+      <pointer-type-def type-id='2e443c2b' size-in-bits='64' id='74b427eb'/>
+      <function-type size-in-bits='64' id='74b5d8d8'>
+        <parameter type-id='e324928d'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <pointer-type-def type-id='835d6aa6' size-in-bits='64' id='74b6c0a0'/>
+      <pointer-type-def type-id='26479c18' size-in-bits='64' id='74bae2b6'/>
+      <pointer-type-def type-id='1354385d' size-in-bits='64' id='74bccedd'/>
+      <function-type size-in-bits='64' id='74bea618'>
+        <parameter type-id='4938abae'/>
+        <parameter type-id='74b427eb'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <function-type size-in-bits='64' id='74c76c4a'>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='325a7d19'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='b8cdc165' size-in-bits='64' id='74d5ef65'/>
+      <pointer-type-def type-id='d12f4a1d' size-in-bits='64' id='74d89ebd'/>
+      <pointer-type-def type-id='4a568948' size-in-bits='64' id='74df97fa'/>
+      <class-decl name='fscrypt_policy_v1' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='41' column='1' id='74e2c23b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='version' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='contents_encryption_mode' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='filenames_encryption_mode' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='flags' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='master_key_descriptor' type-id='0209ab38' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='46' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ce67f06c' size-in-bits='64' id='74e71fae'/>
+      <function-type size-in-bits='64' id='74e7a035'>
+        <parameter type-id='02f11ed4'/>
+        <parameter type-id='d8e6b335'/>
+        <parameter type-id='d8e6b335'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='snd_dec_wma' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/sound/compress_params.h' line='334' column='1' id='74e8aec7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='encoder_option' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='adv_encoder_option' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='adv_encoder_option2' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='reserved' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='338' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='74edcdba'>
+        <parameter type-id='ec77b5b8'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='ef45f062' size-in-bits='64' id='74f101b0'/>
+      <function-type size-in-bits='64' id='74f4b006'>
+        <parameter type-id='6b1642ae'/>
+        <parameter type-id='ab85b8f2'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='74fe6eb8'>
+        <parameter type-id='8582e5ec'/>
+        <parameter type-id='4db02c58'/>
+        <return type-id='c91d1bf1'/>
+      </function-type>
+      <function-type size-in-bits='64' id='74fec388'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='91ce1af9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='7506f11b'>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='99baf115'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e346e6f3' size-in-bits='64' id='75099793'/>
+      <pointer-type-def type-id='440818bd' size-in-bits='64' id='750dbc1d'/>
+      <qualified-type-def type-id='830e3b1b' const='yes' id='75144de8'/>
+      <qualified-type-def type-id='eb5ce574' const='yes' id='752b54cf'/>
+      <pointer-type-def type-id='45793a97' size-in-bits='64' id='7533ba6f'/>
+      <pointer-type-def type-id='4b1c1612' size-in-bits='64' id='7536fa28'/>
+      <pointer-type-def type-id='a133315d' size-in-bits='64' id='75396bad'/>
+      <class-decl name='ucsi' size-in-bits='1344' is-struct='yes' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='280' column='1' id='754249bd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='version' type-id='1dc6a898' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='driver_data' type-id='b797ac06' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ops' type-id='0749da8f' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='cap' type-id='e87cddcc' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='287' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='connector' type-id='9acf1dd1' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='ppm_lock' type-id='925167dc' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='ntfy' type-id='91ce1af9' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='299' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='302' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a667f60e' size-in-bits='64' id='7544e824'/>
+      <function-type size-in-bits='64' id='75489b85'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='5b37df4a' const='yes' id='754a5cbf'/>
+      <class-decl name='irqaction' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/interrupt.h' line='118' column='1' id='754d1c63'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='handler' type-id='29591c9a' visibility='default' filepath='include/linux/interrupt.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev_id' type-id='eaa32e2f' visibility='default' filepath='include/linux/interrupt.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='percpu_dev_id' type-id='eaa32e2f' visibility='default' filepath='include/linux/interrupt.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='next' type-id='ba361e53' visibility='default' filepath='include/linux/interrupt.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='thread_fn' type-id='29591c9a' visibility='default' filepath='include/linux/interrupt.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='thread' type-id='f23e2572' visibility='default' filepath='include/linux/interrupt.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='secondary' type-id='ba361e53' visibility='default' filepath='include/linux/interrupt.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='irq' type-id='f0981eeb' visibility='default' filepath='include/linux/interrupt.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/interrupt.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='thread_flags' type-id='7359adad' visibility='default' filepath='include/linux/interrupt.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='thread_mask' type-id='7359adad' visibility='default' filepath='include/linux/interrupt.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/interrupt.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='dir' type-id='d077e928' visibility='default' filepath='include/linux/interrupt.h' line='131' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0627f2fd' size-in-bits='64' id='754d9fe1'/>
+      <function-type size-in-bits='64' id='7552fc26'>
+        <parameter type-id='2993adbc'/>
+        <return type-id='42988600'/>
+      </function-type>
+      <pointer-type-def type-id='f3f97f82' size-in-bits='64' id='75615bf0'/>
+      <function-type size-in-bits='64' id='756696ad'>
+        <parameter type-id='ee406209'/>
+        <return type-id='19c2251e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='75685cad'>
+        <parameter type-id='e53d7a90'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='phy_configure_opts_dp' size-in-bits='352' is-struct='yes' visibility='default' filepath='include/linux/phy/phy-dp.h' line='17' column='1' id='756c73a7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='link_rate' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-dp.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='lanes' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-dp.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='voltage' type-id='49580a63' visibility='default' filepath='include/linux/phy/phy-dp.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pre' type-id='49580a63' visibility='default' filepath='include/linux/phy/phy-dp.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ssc' type-id='f9b06939' visibility='default' filepath='include/linux/phy/phy-dp.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='321'>
+          <var-decl name='set_rate' type-id='f9b06939' visibility='default' filepath='include/linux/phy/phy-dp.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='322'>
+          <var-decl name='set_lanes' type-id='f9b06939' visibility='default' filepath='include/linux/phy/phy-dp.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='323'>
+          <var-decl name='set_voltages' type-id='f9b06939' visibility='default' filepath='include/linux/phy/phy-dp.h' line='92' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fc8e93cb' size-in-bits='64' id='7572cb33'/>
+      <array-type-def dimensions='1' type-id='cfff5953' size-in-bits='448' id='75781a60'>
+        <subrange length='7' type-id='7ff19f0f' id='16fc326e'/>
+      </array-type-def>
+      <pointer-type-def type-id='891c6957' size-in-bits='64' id='75795f13'/>
+      <qualified-type-def type-id='7a801157' const='yes' id='757da1f8'/>
+      <typedef-decl name='pci_bus_flags_t' type-id='8efea9e5' filepath='include/linux/pci.h' line='246' column='1' id='757fc982'/>
+      <function-type size-in-bits='64' id='7591d8fc'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='cf536864'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='U64' type-id='9c313c2d' filepath='lib/zstd/mem.h' line='40' column='1' id='7596b099'/>
+      <qualified-type-def type-id='ed38bc9e' const='yes' id='75971b31'/>
+      <pointer-type-def type-id='ea04303b' size-in-bits='64' id='7597aac3'/>
+      <function-type size-in-bits='64' id='75985c10'>
+        <parameter type-id='c14d5db2'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='43a0eb6c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='66b7f7e8' size-in-bits='64' id='759b0666'/>
+      <pointer-type-def type-id='9da48162' size-in-bits='64' id='759d27dc'/>
+      <pointer-type-def type-id='06cc57e8' size-in-bits='64' id='759f8752'/>
+      <qualified-type-def type-id='002ac4a6' volatile='yes' id='75a392dc'/>
+      <function-type size-in-bits='64' id='75a3ad48'>
+        <parameter type-id='2ce52478'/>
+        <return type-id='a2bff676'/>
+      </function-type>
+      <pointer-type-def type-id='c156bc5d' size-in-bits='64' id='75a91379'/>
+      <pointer-type-def type-id='7dccafaf' size-in-bits='64' id='75adfaf3'/>
+      <pointer-type-def type-id='7a35a8fe' size-in-bits='64' id='75ae4804'/>
+      <pointer-type-def type-id='171b0f6c' size-in-bits='64' id='75b9415a'/>
+      <function-type size-in-bits='64' id='75c2ad3b'>
+        <parameter type-id='8c493d8a'/>
+        <parameter type-id='b7982cd5'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='hdmi_audio_sample_frequency' filepath='include/linux/hdmi.h' line='286' column='1' id='75c2c977'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HDMI_AUDIO_SAMPLE_FREQUENCY_STREAM' value='0'/>
+        <enumerator name='HDMI_AUDIO_SAMPLE_FREQUENCY_32000' value='1'/>
+        <enumerator name='HDMI_AUDIO_SAMPLE_FREQUENCY_44100' value='2'/>
+        <enumerator name='HDMI_AUDIO_SAMPLE_FREQUENCY_48000' value='3'/>
+        <enumerator name='HDMI_AUDIO_SAMPLE_FREQUENCY_88200' value='4'/>
+        <enumerator name='HDMI_AUDIO_SAMPLE_FREQUENCY_96000' value='5'/>
+        <enumerator name='HDMI_AUDIO_SAMPLE_FREQUENCY_176400' value='6'/>
+        <enumerator name='HDMI_AUDIO_SAMPLE_FREQUENCY_192000' value='7'/>
+      </enum-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/uidgid.h' line='26' column='1' id='75c89789' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='val' type-id='2bb2b96f' visibility='default' filepath='include/linux/uidgid.h' line='27' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='18c89148' size-in-bits='64' id='75d065d2'/>
+      <pointer-type-def type-id='5a7d7f6d' size-in-bits='64' id='75d4b09d'/>
+      <class-decl name='fscrypt_policy_v2' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='67' column='1' id='75e2c3ce'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='version' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='contents_encryption_mode' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='filenames_encryption_mode' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='flags' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='__reserved' type-id='c213d3d4' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='master_key_identifier' type-id='9396cabb' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='73' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='80f4b756' size-in-bits='64' id='75e4a9bd'>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+      </array-type-def>
+      <pointer-type-def type-id='e953a5bd' size-in-bits='64' id='75e6c41d'/>
+      <pointer-type-def type-id='8d24b00b' size-in-bits='64' id='75e9503b'/>
+      <enum-decl name='attr_idn' filepath='drivers/scsi/ufs/ufs.h' line='132' column='1' id='75eb1735'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='QUERY_ATTR_IDN_BOOT_LU_EN' value='0'/>
+        <enumerator name='QUERY_ATTR_IDN_MAX_HPB_SINGLE_CMD' value='1'/>
+        <enumerator name='QUERY_ATTR_IDN_POWER_MODE' value='2'/>
+        <enumerator name='QUERY_ATTR_IDN_ACTIVE_ICC_LVL' value='3'/>
+        <enumerator name='QUERY_ATTR_IDN_OOO_DATA_EN' value='4'/>
+        <enumerator name='QUERY_ATTR_IDN_BKOPS_STATUS' value='5'/>
+        <enumerator name='QUERY_ATTR_IDN_PURGE_STATUS' value='6'/>
+        <enumerator name='QUERY_ATTR_IDN_MAX_DATA_IN' value='7'/>
+        <enumerator name='QUERY_ATTR_IDN_MAX_DATA_OUT' value='8'/>
+        <enumerator name='QUERY_ATTR_IDN_DYN_CAP_NEEDED' value='9'/>
+        <enumerator name='QUERY_ATTR_IDN_REF_CLK_FREQ' value='10'/>
+        <enumerator name='QUERY_ATTR_IDN_CONF_DESC_LOCK' value='11'/>
+        <enumerator name='QUERY_ATTR_IDN_MAX_NUM_OF_RTT' value='12'/>
+        <enumerator name='QUERY_ATTR_IDN_EE_CONTROL' value='13'/>
+        <enumerator name='QUERY_ATTR_IDN_EE_STATUS' value='14'/>
+        <enumerator name='QUERY_ATTR_IDN_SECONDS_PASSED' value='15'/>
+        <enumerator name='QUERY_ATTR_IDN_CNTX_CONF' value='16'/>
+        <enumerator name='QUERY_ATTR_IDN_CORR_PRG_BLK_NUM' value='17'/>
+        <enumerator name='QUERY_ATTR_IDN_RESERVED2' value='18'/>
+        <enumerator name='QUERY_ATTR_IDN_RESERVED3' value='19'/>
+        <enumerator name='QUERY_ATTR_IDN_FFU_STATUS' value='20'/>
+        <enumerator name='QUERY_ATTR_IDN_PSA_STATE' value='21'/>
+        <enumerator name='QUERY_ATTR_IDN_PSA_DATA_SIZE' value='22'/>
+        <enumerator name='QUERY_ATTR_IDN_REF_CLK_GATING_WAIT_TIME' value='23'/>
+        <enumerator name='QUERY_ATTR_IDN_CASE_ROUGH_TEMP' value='24'/>
+        <enumerator name='QUERY_ATTR_IDN_HIGH_TEMP_BOUND' value='25'/>
+        <enumerator name='QUERY_ATTR_IDN_LOW_TEMP_BOUND' value='26'/>
+        <enumerator name='QUERY_ATTR_IDN_WB_FLUSH_STATUS' value='28'/>
+        <enumerator name='QUERY_ATTR_IDN_AVAIL_WB_BUFF_SIZE' value='29'/>
+        <enumerator name='QUERY_ATTR_IDN_WB_BUFF_LIFE_TIME_EST' value='30'/>
+        <enumerator name='QUERY_ATTR_IDN_CURR_WB_BUFF_SIZE' value='31'/>
+      </enum-decl>
+      <enum-decl name='suspended_state' filepath='include/net/bluetooth/hci_core.h' line='117' column='1' id='75eb88ab'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='BT_RUNNING' value='0'/>
+        <enumerator name='BT_SUSPEND_DISCONNECT' value='1'/>
+        <enumerator name='BT_SUSPEND_CONFIGURE_WAKE' value='2'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='75ec6dfd'>
+        <parameter type-id='88a6d23d'/>
+        <parameter type-id='c45d1018'/>
+        <parameter type-id='80f4b756'/>
+        <return type-id='4db02c58'/>
+      </function-type>
+      <pointer-type-def type-id='2d494b2d' size-in-bits='64' id='75eeb81d'/>
+      <pointer-type-def type-id='8696da2b' size-in-bits='64' id='75f3cc0b'/>
+      <pointer-type-def type-id='5e09ca8a' size-in-bits='64' id='75f72758'/>
+      <function-type size-in-bits='64' id='75fa2a9d'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='7efbcaaf'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f0966d3d' size-in-bits='64' id='7604ff1d'/>
+      <class-decl name='xhci_virt_device' size-in-bits='50240' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1010' column='1' id='7607667c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='slot_id' type-id='95e97e5e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1011' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='udev' type-id='25e60cb2' visibility='default' filepath='drivers/usb/host/xhci.h' line='1012' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='out_ctx' type-id='971e404f' visibility='default' filepath='drivers/usb/host/xhci.h' line='1021' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='in_ctx' type-id='971e404f' visibility='default' filepath='drivers/usb/host/xhci.h' line='1023' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='eps' type-id='cec4db9b' visibility='default' filepath='drivers/usb/host/xhci.h' line='1024' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='49856'>
+          <var-decl name='fake_port' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/xhci.h' line='1025' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='49864'>
+          <var-decl name='real_port' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/xhci.h' line='1026' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='49920'>
+          <var-decl name='bw_table' type-id='86f7f60e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1027' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='49984'>
+          <var-decl name='tt_info' type-id='997bd29d' visibility='default' filepath='drivers/usb/host/xhci.h' line='1028' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='50048'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='drivers/usb/host/xhci.h' line='1035' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='50112'>
+          <var-decl name='current_mel' type-id='1dc6a898' visibility='default' filepath='drivers/usb/host/xhci.h' line='1039' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='50176'>
+          <var-decl name='debugfs_private' type-id='eaa32e2f' visibility='default' filepath='drivers/usb/host/xhci.h' line='1041' column='1'/>
+        </data-member>
+      </class-decl>
+      <union-decl name='flowi_uli' size-in-bits='32' visibility='default' filepath='include/net/flow.h' line='46' column='1' id='76355708'>
+        <data-member access='public'>
+          <var-decl name='ports' type-id='e7f44023' visibility='default' filepath='include/net/flow.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='icmpt' type-id='e7f44024' visibility='default' filepath='include/net/flow.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='dnports' type-id='e7f44025' visibility='default' filepath='include/net/flow.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='gre_key' type-id='78a133c2' visibility='default' filepath='include/net/flow.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='mht' type-id='e7f44026' visibility='default' filepath='include/net/flow.h' line='66' column='1'/>
+        </data-member>
+      </union-decl>
+      <pointer-type-def type-id='df510f4a' size-in-bits='64' id='763c550c'/>
+      <pointer-type-def type-id='a1599794' size-in-bits='64' id='763d26a2'/>
+      <pointer-type-def type-id='ba92be9c' size-in-bits='64' id='7642cce6'/>
+      <class-decl name='v4l2_querymenu' size-in-bits='352' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1851' column='1' id='7647d8c9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1852' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='index' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1853' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab5fd' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1854' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='reserved' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1858' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='765a8acb'>
+        <parameter type-id='cc1804ea'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='f69f6d0e' size-in-bits='64' id='765eef68'/>
+      <array-type-def dimensions='1' type-id='d5c0a628' size-in-bits='4096' id='765f36d9'>
+        <subrange length='256' type-id='7ff19f0f' id='36e5b9fa'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='76620c4d'>
+        <parameter type-id='bff05edb'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='bf3ef905'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='3eb7c31c'/>
+        <parameter type-id='78c01427'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='86717875' size-in-bits='64' id='76642109'/>
+      <class-decl name='kfifo' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/kfifo.h' line='83' column='1' id='7664edcc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab621' visibility='default' filepath='include/linux/kfifo.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='buf' type-id='5e6516ee' visibility='default' filepath='include/linux/kfifo.h' line='83' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='766eac03'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='a7832498'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='7680214a'>
+        <parameter type-id='37175e4d'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='cfg80211_pkt_pattern' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='3428' column='1' id='76959226'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pattern' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pattern_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3430' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='pkt_offset' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3431' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='f22a8abb' size-in-bits='512' id='7698c98a'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <pointer-type-def type-id='84a5c3d4' size-in-bits='64' id='769cf345'/>
+      <class-decl name='v4l2_encoder_cmd' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2058' column='1' id='769f1ed1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2059' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2060' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab5fe' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2061' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='561a74c1' size-in-bits='64' id='76a60df1'/>
+      <class-decl name='snd_ratnum' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/sound/pcm.h' line='262' column='1' id='76a6d6f8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='num' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='den_min' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='den_max' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='den_step' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='264' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a82172e0' size-in-bits='64' id='76a7b3fe'/>
+      <pointer-type-def type-id='933e0e21' size-in-bits='64' id='76ae8e1d'/>
+      <class-decl name='ifla_vf_guid' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/if_link.h' line='973' column='1' id='76b17fea'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vf' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/if_link.h' line='974' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='guid' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='975' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='76b325f9'>
+        <parameter type-id='f7f718cb'/>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='b6b06c66' size-in-bits='64' id='76ba9b40'/>
+      <pointer-type-def type-id='0ab7f6be' size-in-bits='64' id='76c532c4'/>
+      <pointer-type-def type-id='911b5feb' size-in-bits='64' id='76c7d88b'/>
+      <pointer-type-def type-id='dd74f3ed' size-in-bits='64' id='76ccea8d'/>
+      <array-type-def dimensions='1' type-id='a04304a1' size-in-bits='16' id='76e4cb23'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='c2ddf2d7' size-in-bits='64' id='76e6e22f'/>
+      <pointer-type-def type-id='9a2ef795' size-in-bits='64' id='76f001ad'/>
+      <class-decl name='audit_ntp_data' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/audit.h' line='91' column='1' id='76f1831e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vals' type-id='f9e65ff3' visibility='default' filepath='include/linux/audit.h' line='92' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fb_fillrect' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/fb.h' line='351' column='1' id='76f58541'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dx' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='dy' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='color' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='rop' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='357' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_pcm' size-in-bits='17664' is-struct='yes' visibility='default' filepath='include/sound/pcm.h' line='518' column='1' id='76f8f8bb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='card' type-id='52704eb7' visibility='default' filepath='include/sound/pcm.h' line='519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/sound/pcm.h' line='520' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='device' type-id='95e97e5e' visibility='default' filepath='include/sound/pcm.h' line='521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='info_flags' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='522' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dev_class' type-id='8efea9e5' visibility='default' filepath='include/sound/pcm.h' line='523' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='dev_subclass' type-id='8efea9e5' visibility='default' filepath='include/sound/pcm.h' line='524' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='id' type-id='59daf3ef' visibility='default' filepath='include/sound/pcm.h' line='525' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='name' type-id='aa5ff375' visibility='default' filepath='include/sound/pcm.h' line='526' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='streams' type-id='5e28cc39' visibility='default' filepath='include/sound/pcm.h' line='527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16832'>
+          <var-decl name='open_mutex' type-id='925167dc' visibility='default' filepath='include/sound/pcm.h' line='528' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17216'>
+          <var-decl name='open_wait' type-id='b5ab048f' visibility='default' filepath='include/sound/pcm.h' line='529' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17408'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/pcm.h' line='530' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17472'>
+          <var-decl name='private_free' type-id='182096ce' visibility='default' filepath='include/sound/pcm.h' line='531' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17536'>
+          <var-decl name='internal' type-id='b50a4934' visibility='default' filepath='include/sound/pcm.h' line='532' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17544'>
+          <var-decl name='nonatomic' type-id='b50a4934' visibility='default' filepath='include/sound/pcm.h' line='533' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17552'>
+          <var-decl name='no_device_suspend' type-id='b50a4934' visibility='default' filepath='include/sound/pcm.h' line='534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17600'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/pcm.h' line='538' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='76fa3c67'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='08400b46' size-in-bits='64' id='77011cbc'/>
+      <function-type size-in-bits='64' id='7702511a'>
+        <parameter type-id='80f25feb'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='79a0948f'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9f57d337' size-in-bits='64' id='770b2313'/>
+      <pointer-type-def type-id='dd378762' size-in-bits='64' id='771ff1ac'/>
+      <function-type size-in-bits='64' id='772264d0'>
+        <parameter type-id='58ed56f5'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='78c01427'/>
+        <parameter type-id='2102bd36'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d48383c4' size-in-bits='64' id='7727bbf2'/>
+      <pointer-type-def type-id='1ad1186a' size-in-bits='64' id='77292cc0'/>
+      <function-type size-in-bits='64' id='77296733'>
+        <parameter type-id='f5438ac7'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='dst_entry' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/net/dst.h' line='25' column='1' id='772a4ddf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/net/dst.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ops' type-id='6d30564f' visibility='default' filepath='include/net/dst.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='_metrics' type-id='7359adad' visibility='default' filepath='include/net/dst.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='expires' type-id='7359adad' visibility='default' filepath='include/net/dst.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='xfrm' type-id='328dda6e' visibility='default' filepath='include/net/dst.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='input' type-id='d2e00785' visibility='default' filepath='include/net/dst.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='output' type-id='0023218e' visibility='default' filepath='include/net/dst.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='flags' type-id='8efea9e5' visibility='default' filepath='include/net/dst.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='464'>
+          <var-decl name='obsolete' type-id='a2185560' visibility='default' filepath='include/net/dst.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='header_len' type-id='8efea9e5' visibility='default' filepath='include/net/dst.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='496'>
+          <var-decl name='trailer_len' type-id='8efea9e5' visibility='default' filepath='include/net/dst.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='__refcnt' type-id='49178f86' visibility='default' filepath='include/net/dst.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='__use' type-id='95e97e5e' visibility='default' filepath='include/net/dst.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='lastuse' type-id='7359adad' visibility='default' filepath='include/net/dst.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='lwtstate' type-id='d19f4fca' visibility='default' filepath='include/net/dst.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/net/dst.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='error' type-id='a2185560' visibility='default' filepath='include/net/dst.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='848'>
+          <var-decl name='__pad' type-id='a2185560' visibility='default' filepath='include/net/dst.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='tclassid' type-id='3f1a6b60' visibility='default' filepath='include/net/dst.h' line='76' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2157493d' size-in-bits='64' id='772c77c9'/>
+      <function-type size-in-bits='64' id='77328cce'>
+        <parameter type-id='a6711537'/>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='7b332e1c'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='d1499e71'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4bdecfd7' size-in-bits='64' id='773b5ace'/>
+      <class-decl name='snd_soc_jack_gpio' size-in-bits='1856' is-struct='yes' visibility='default' filepath='include/sound/soc-jack.h' line='61' column='1' id='773e8ab8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='gpio' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-jack.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='idx' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-jack.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='gpiod_dev' type-id='fa0b179b' visibility='default' filepath='include/sound/soc-jack.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/sound/soc-jack.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='report' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-jack.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='invert' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-jack.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='debounce_time' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-jack.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='wake' type-id='b50a4934' visibility='default' filepath='include/sound/soc-jack.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='jack' type-id='12a060a4' visibility='default' filepath='include/sound/soc-jack.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='work' type-id='5ad6e0ef' visibility='default' filepath='include/sound/soc-jack.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='pm_notifier' type-id='9b08f7cd' visibility='default' filepath='include/sound/soc-jack.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='desc' type-id='26760480' visibility='default' filepath='include/sound/soc-jack.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/sound/soc-jack.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='jack_status_check' type-id='b9b212f5' visibility='default' filepath='include/sound/soc-jack.h' line='79' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='640838f9' size-in-bits='64' id='77402b4d'/>
+      <pointer-type-def type-id='1269b801' size-in-bits='64' id='77415389'/>
+      <pointer-type-def type-id='ccc53977' size-in-bits='64' id='774b23cf'/>
+      <function-type size-in-bits='64' id='774cf1e5'>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='150efd3f'/>
+        <parameter type-id='e18defdb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='c9d64c0d' size-in-bits='256' id='774e8b2d'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <class-decl name='sbq_wait' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/sbitmap.h' line='570' column='1' id='774ee36d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sbq' type-id='75396bad' visibility='default' filepath='include/linux/sbitmap.h' line='571' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wait' type-id='504855b3' visibility='default' filepath='include/linux/sbitmap.h' line='572' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2a0babad' size-in-bits='64' id='774fc7fd'/>
+      <array-type-def dimensions='1' type-id='be6833bc' size-in-bits='1280' id='774ff726'>
+        <subrange length='20' type-id='7ff19f0f' id='fdca39cf'/>
+      </array-type-def>
+      <pointer-type-def type-id='a5e8d9a1' size-in-bits='64' id='775147d9'/>
+      <pointer-type-def type-id='77d04d5a' size-in-bits='64' id='7758a804'/>
+      <function-type size-in-bits='64' id='77618c14'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='3ae10cc4' size-in-bits='64' id='7763914e'/>
+      <pointer-type-def type-id='2e3fb70e' size-in-bits='64' id='776946b4'/>
+      <pointer-type-def type-id='cadc2a5d' size-in-bits='64' id='776a7fe1'/>
+      <pointer-type-def type-id='4af8a458' size-in-bits='64' id='776adf76'/>
+      <array-type-def dimensions='3' type-id='f22a8abb' size-in-bits='512' id='776c1835'>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <pointer-type-def type-id='1fbf855f' size-in-bits='64' id='776fd487'/>
+      <class-decl name='tty_port_operations' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/tty_port.h' line='27' column='1' id='7778009d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='carrier_raised' type-id='5626e636' visibility='default' filepath='include/linux/tty_port.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dtr_rts' type-id='21b6f944' visibility='default' filepath='include/linux/tty_port.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='shutdown' type-id='7e5b379d' visibility='default' filepath='include/linux/tty_port.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='activate' type-id='62d26ff9' visibility='default' filepath='include/linux/tty_port.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='destruct' type-id='7e5b379d' visibility='default' filepath='include/linux/tty_port.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/tty_port.h' line='44' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='77780344'>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='ee406209'/>
+      </function-type>
+      <function-type size-in-bits='64' id='77784eb9'>
+        <parameter type-id='0343ce83'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='87538745' size-in-bits='64' id='777e33bd'/>
+      <class-decl name='ff_constant_effect' size-in-bits='80' is-struct='yes' visibility='default' filepath='include/uapi/linux/input.h' line='345' column='1' id='777eafbe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='level' type-id='b55def60' visibility='default' filepath='include/uapi/linux/input.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='envelope' type-id='95dfde06' visibility='default' filepath='include/uapi/linux/input.h' line='347' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='scmi_xfer' size-in-bits='1152' is-struct='yes' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='177' column='1' id='77984907'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='transfer_id' type-id='95e97e5e' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='hdr' type-id='23d1ead2' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tx' type-id='0569c65f' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='rx' type-id='0569c65f' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='done' type-id='f9fef04f' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='async_done' type-id='389faaf7' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='pending' type-id='b50a4934' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='node' type-id='03a4a074' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='users' type-id='64615833' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='busy' type-id='49178f86' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='state' type-id='95e97e5e' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='196' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='siphash_key_t' type-id='c6fb4d48' filepath='include/linux/siphash.h' line='22' column='1' id='7799da43'/>
+      <class-decl name='v4l2_subdev_ir_ops' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='618' column='1' id='77a58158'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rx_read' type-id='db3c9452' visibility='default' filepath='include/media/v4l2-subdev.h' line='620' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rx_g_parameters' type-id='30f63774' visibility='default' filepath='include/media/v4l2-subdev.h' line='623' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rx_s_parameters' type-id='30f63774' visibility='default' filepath='include/media/v4l2-subdev.h' line='625' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tx_write' type-id='db3c9452' visibility='default' filepath='include/media/v4l2-subdev.h' line='629' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='tx_g_parameters' type-id='30f63774' visibility='default' filepath='include/media/v4l2-subdev.h' line='632' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='tx_s_parameters' type-id='30f63774' visibility='default' filepath='include/media/v4l2-subdev.h' line='634' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='nvmem_device' size-in-bits='8768' is-struct='yes' visibility='default' filepath='drivers/nvmem/core.c' line='22' column='1' id='77aad2d1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='drivers/nvmem/core.c' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='drivers/nvmem/core.c' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='stride' type-id='95e97e5e' visibility='default' filepath='drivers/nvmem/core.c' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7392'>
+          <var-decl name='word_size' type-id='95e97e5e' visibility='default' filepath='drivers/nvmem/core.c' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='drivers/nvmem/core.c' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7456'>
+          <var-decl name='refcnt' type-id='400fb07b' visibility='default' filepath='drivers/nvmem/core.c' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='drivers/nvmem/core.c' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='read_only' type-id='b50a4934' visibility='default' filepath='drivers/nvmem/core.c' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7560'>
+          <var-decl name='root_only' type-id='b50a4934' visibility='default' filepath='drivers/nvmem/core.c' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7584'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='drivers/nvmem/core.c' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='type' type-id='0c30c73e' visibility='default' filepath='drivers/nvmem/core.c' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='eeprom' type-id='d83a2db1' visibility='default' filepath='drivers/nvmem/core.c' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='base_dev' type-id='fa0b179b' visibility='default' filepath='drivers/nvmem/core.c' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='cells' type-id='72f469ec' visibility='default' filepath='drivers/nvmem/core.c' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8384'>
+          <var-decl name='keepout' type-id='3e479841' visibility='default' filepath='drivers/nvmem/core.c' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8448'>
+          <var-decl name='nkeepout' type-id='f0981eeb' visibility='default' filepath='drivers/nvmem/core.c' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='reg_read' type-id='b3e77ef6' visibility='default' filepath='drivers/nvmem/core.c' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8576'>
+          <var-decl name='reg_write' type-id='020bf95f' visibility='default' filepath='drivers/nvmem/core.c' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='wp_gpio' type-id='26760480' visibility='default' filepath='drivers/nvmem/core.c' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='drivers/nvmem/core.c' line='42' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bdeecda0' size-in-bits='64' id='77b05ed6'/>
+      <array-type-def dimensions='1' type-id='95e97e5e' size-in-bits='416' id='77ba73f2'>
+        <subrange length='13' type-id='7ff19f0f' id='487fded1'/>
+      </array-type-def>
+      <pointer-type-def type-id='928ea938' size-in-bits='64' id='77c96f7a'/>
+      <function-type size-in-bits='64' id='77c9a241'>
+        <parameter type-id='a10cc675'/>
+        <return type-id='a110acfc'/>
+      </function-type>
+      <function-type size-in-bits='64' id='77d04d5a'>
+        <parameter type-id='9d57e433'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='7359adad'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='2f162548' size-in-bits='640' id='77d1242b'>
+        <subrange length='20' type-id='7ff19f0f' id='fdca39cf'/>
+      </array-type-def>
+      <class-decl name='configfs_bin_attribute' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/configfs.h' line='151' column='1' id='77d12c79'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cb_attr' type-id='5f2e9b8f' visibility='default' filepath='include/linux/configfs.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='cb_private' type-id='eaa32e2f' visibility='default' filepath='include/linux/configfs.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='cb_max_size' type-id='b59d7dce' visibility='default' filepath='include/linux/configfs.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='read' type-id='8d4ac8c3' visibility='default' filepath='include/linux/configfs.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='write' type-id='8d4ac8c3' visibility='default' filepath='include/linux/configfs.h' line='156' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='72546357' size-in-bits='64' id='77d89dc7'/>
+      <pointer-type-def type-id='f3a6417e' size-in-bits='64' id='77da1114'/>
+      <class-decl name='drm_dp_mst_topology_mgr' size-in-bits='11712' is-struct='yes' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='568' column='1' id='77db5b7d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='cc3a4f0c' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='572' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='dev' type-id='8898134d' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='cbs' type-id='44572ce8' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='581' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='max_dpcd_transaction_bytes' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='586' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='aux' type-id='7c5f8cd8' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='591' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='max_payloads' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='595' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='max_lane_count' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='599' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='max_link_rate' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='603' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='conn_base_id' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='608' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='up_req_recv' type-id='86641ab5' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='613' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3824'>
+          <var-decl name='down_rep_recv' type-id='86641ab5' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='619' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='625' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6848'>
+          <var-decl name='probe_lock' type-id='925167dc' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='632' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7232'>
+          <var-decl name='mst_state' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='638' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7233'>
+          <var-decl name='payload_id_table_cleared' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='644' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='mst_primary' type-id='7bc9d2d9' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='649' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='dpcd' type-id='4d823bde' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='654' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7480'>
+          <var-decl name='sink_count' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='658' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='pbn_div' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='662' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='funcs' type-id='515fa1af' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='667' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='qlock' type-id='925167dc' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='672' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='tx_msg_downq' type-id='72f469ec' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='677' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='payload_lock' type-id='925167dc' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='682' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='proposed_vcpis' type-id='d08b3eb8' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='688' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8576'>
+          <var-decl name='payloads' type-id='1a8bc978' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='693' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='payload_mask' type-id='7359adad' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='699' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='vcpi_mask' type-id='7359adad' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='703' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8768'>
+          <var-decl name='tx_waitq' type-id='b5ab048f' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='708' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8960'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='712' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='tx_work' type-id='ef9025d0' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='717' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9728'>
+          <var-decl name='destroy_port_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='722' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9856'>
+          <var-decl name='destroy_branch_device_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='727' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9984'>
+          <var-decl name='delayed_destroy_lock' type-id='925167dc' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='732' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10368'>
+          <var-decl name='delayed_destroy_wq' type-id='242e3d19' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='739' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10432'>
+          <var-decl name='delayed_destroy_work' type-id='ef9025d0' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='745' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10816'>
+          <var-decl name='up_req_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='751' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10944'>
+          <var-decl name='up_req_lock' type-id='925167dc' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='755' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11328'>
+          <var-decl name='up_req_work' type-id='ef9025d0' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='761' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2cb22181' size-in-bits='64' id='77dbffe9'/>
+      <class-decl name='eventfd_ctx' size-in-bits='384' is-struct='yes' visibility='default' filepath='fs/eventfd.c' line='30' column='1' id='77dc8383'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='fs/eventfd.c' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wqh' type-id='b5ab048f' visibility='default' filepath='fs/eventfd.c' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='count' type-id='d3130597' visibility='default' filepath='fs/eventfd.c' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='fs/eventfd.c' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='fs/eventfd.c' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='llist_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/llist.h' line='54' column='1' id='77df194e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='first' type-id='023b769e' visibility='default' filepath='include/linux/llist.h' line='55' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7c7c6daa' size-in-bits='64' id='77e06080'/>
+      <enum-decl name='iommu_dma_cookie_type' filepath='drivers/iommu/dma-iommu.c' line='36' column='1' id='77e21850'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='IOMMU_DMA_IOVA_COOKIE' value='0'/>
+        <enumerator name='IOMMU_DMA_MSI_COOKIE' value='1'/>
+      </enum-decl>
+      <qualified-type-def type-id='ca10d3ca' const='yes' id='77e48e1b'/>
+      <pointer-type-def type-id='e5ce629e' size-in-bits='64' id='77e5615c'/>
+      <function-type size-in-bits='64' id='77e739eb'>
+        <parameter type-id='dd575c43'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='b4b8adeb' size-in-bits='64' id='77e79a4b'/>
+      <function-type size-in-bits='64' id='77fe651f'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='f9409001'/>
+        <parameter type-id='8bff8096'/>
+        <parameter type-id='8bff8096'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='2d8429ef' size-in-bits='64' id='7801a3a3'/>
+      <pointer-type-def type-id='fcc07cbf' size-in-bits='64' id='78041e8f'/>
+      <pointer-type-def type-id='3713d87e' size-in-bits='64' id='7806f534'/>
+      <function-type size-in-bits='64' id='78117ea6'>
+        <parameter type-id='7544e824'/>
+        <parameter type-id='b11825ce'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c5eb47c6' size-in-bits='64' id='78121e08'/>
+      <function-type size-in-bits='64' id='78199102'>
+        <parameter type-id='063da268'/>
+        <parameter type-id='47ed147a'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <class-decl name='group_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/cred.h' line='25' column='1' id='781993c9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='usage' type-id='49178f86' visibility='default' filepath='include/linux/cred.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ngroups' type-id='95e97e5e' visibility='default' filepath='include/linux/cred.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='gid' type-id='da6e2919' visibility='default' filepath='include/linux/cred.h' line='28' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='782095e7'>
+        <parameter type-id='6ec0fd31'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='782b4219'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='c0a50b50'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='compat_uptr_t' type-id='19c2251e' filepath='include/asm-generic/compat.h' line='22' column='1' id='782d78af'/>
+      <enum-decl name='OID' filepath='include/linux/oid_registry.h' line='19' column='1' id='7831edc8'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='OID_id_dsa_with_sha1' value='0'/>
+        <enumerator name='OID_id_dsa' value='1'/>
+        <enumerator name='OID_id_ecPublicKey' value='2'/>
+        <enumerator name='OID_id_prime192v1' value='3'/>
+        <enumerator name='OID_id_prime256v1' value='4'/>
+        <enumerator name='OID_id_ecdsa_with_sha1' value='5'/>
+        <enumerator name='OID_id_ecdsa_with_sha224' value='6'/>
+        <enumerator name='OID_id_ecdsa_with_sha256' value='7'/>
+        <enumerator name='OID_id_ecdsa_with_sha384' value='8'/>
+        <enumerator name='OID_id_ecdsa_with_sha512' value='9'/>
+        <enumerator name='OID_rsaEncryption' value='10'/>
+        <enumerator name='OID_md2WithRSAEncryption' value='11'/>
+        <enumerator name='OID_md3WithRSAEncryption' value='12'/>
+        <enumerator name='OID_md4WithRSAEncryption' value='13'/>
+        <enumerator name='OID_sha1WithRSAEncryption' value='14'/>
+        <enumerator name='OID_sha256WithRSAEncryption' value='15'/>
+        <enumerator name='OID_sha384WithRSAEncryption' value='16'/>
+        <enumerator name='OID_sha512WithRSAEncryption' value='17'/>
+        <enumerator name='OID_sha224WithRSAEncryption' value='18'/>
+        <enumerator name='OID_data' value='19'/>
+        <enumerator name='OID_signed_data' value='20'/>
+        <enumerator name='OID_email_address' value='21'/>
+        <enumerator name='OID_contentType' value='22'/>
+        <enumerator name='OID_messageDigest' value='23'/>
+        <enumerator name='OID_signingTime' value='24'/>
+        <enumerator name='OID_smimeCapabilites' value='25'/>
+        <enumerator name='OID_smimeAuthenticatedAttrs' value='26'/>
+        <enumerator name='OID_md2' value='27'/>
+        <enumerator name='OID_md4' value='28'/>
+        <enumerator name='OID_md5' value='29'/>
+        <enumerator name='OID_mskrb5' value='30'/>
+        <enumerator name='OID_krb5' value='31'/>
+        <enumerator name='OID_krb5u2u' value='32'/>
+        <enumerator name='OID_msIndirectData' value='33'/>
+        <enumerator name='OID_msStatementType' value='34'/>
+        <enumerator name='OID_msSpOpusInfo' value='35'/>
+        <enumerator name='OID_msPeImageDataObjId' value='36'/>
+        <enumerator name='OID_msIndividualSPKeyPurpose' value='37'/>
+        <enumerator name='OID_msOutlookExpress' value='38'/>
+        <enumerator name='OID_ntlmssp' value='39'/>
+        <enumerator name='OID_spnego' value='40'/>
+        <enumerator name='OID_IAKerb' value='41'/>
+        <enumerator name='OID_PKU2U' value='42'/>
+        <enumerator name='OID_Scram' value='43'/>
+        <enumerator name='OID_certAuthInfoAccess' value='44'/>
+        <enumerator name='OID_sha1' value='45'/>
+        <enumerator name='OID_id_ansip384r1' value='46'/>
+        <enumerator name='OID_sha256' value='47'/>
+        <enumerator name='OID_sha384' value='48'/>
+        <enumerator name='OID_sha512' value='49'/>
+        <enumerator name='OID_sha224' value='50'/>
+        <enumerator name='OID_commonName' value='51'/>
+        <enumerator name='OID_surname' value='52'/>
+        <enumerator name='OID_countryName' value='53'/>
+        <enumerator name='OID_locality' value='54'/>
+        <enumerator name='OID_stateOrProvinceName' value='55'/>
+        <enumerator name='OID_organizationName' value='56'/>
+        <enumerator name='OID_organizationUnitName' value='57'/>
+        <enumerator name='OID_title' value='58'/>
+        <enumerator name='OID_description' value='59'/>
+        <enumerator name='OID_name' value='60'/>
+        <enumerator name='OID_givenName' value='61'/>
+        <enumerator name='OID_initials' value='62'/>
+        <enumerator name='OID_generationalQualifier' value='63'/>
+        <enumerator name='OID_subjectKeyIdentifier' value='64'/>
+        <enumerator name='OID_keyUsage' value='65'/>
+        <enumerator name='OID_subjectAltName' value='66'/>
+        <enumerator name='OID_issuerAltName' value='67'/>
+        <enumerator name='OID_basicConstraints' value='68'/>
+        <enumerator name='OID_crlDistributionPoints' value='69'/>
+        <enumerator name='OID_certPolicies' value='70'/>
+        <enumerator name='OID_authorityKeyIdentifier' value='71'/>
+        <enumerator name='OID_extKeyUsage' value='72'/>
+        <enumerator name='OID_NetlogonMechanism' value='73'/>
+        <enumerator name='OID_appleLocalKdcSupported' value='74'/>
+        <enumerator name='OID_gostCPSignA' value='75'/>
+        <enumerator name='OID_gostCPSignB' value='76'/>
+        <enumerator name='OID_gostCPSignC' value='77'/>
+        <enumerator name='OID_gost2012PKey256' value='78'/>
+        <enumerator name='OID_gost2012PKey512' value='79'/>
+        <enumerator name='OID_gost2012Digest256' value='80'/>
+        <enumerator name='OID_gost2012Digest512' value='81'/>
+        <enumerator name='OID_gost2012Signature256' value='82'/>
+        <enumerator name='OID_gost2012Signature512' value='83'/>
+        <enumerator name='OID_gostTC26Sign256A' value='84'/>
+        <enumerator name='OID_gostTC26Sign256B' value='85'/>
+        <enumerator name='OID_gostTC26Sign256C' value='86'/>
+        <enumerator name='OID_gostTC26Sign256D' value='87'/>
+        <enumerator name='OID_gostTC26Sign512A' value='88'/>
+        <enumerator name='OID_gostTC26Sign512B' value='89'/>
+        <enumerator name='OID_gostTC26Sign512C' value='90'/>
+        <enumerator name='OID_sm2' value='91'/>
+        <enumerator name='OID_sm3' value='92'/>
+        <enumerator name='OID_SM2_with_SM3' value='93'/>
+        <enumerator name='OID_sm3WithRSAEncryption' value='94'/>
+        <enumerator name='OID_TPMLoadableKey' value='95'/>
+        <enumerator name='OID_TPMImportableKey' value='96'/>
+        <enumerator name='OID_TPMSealedData' value='97'/>
+        <enumerator name='OID__NR' value='98'/>
+      </enum-decl>
+      <pointer-type-def type-id='03419172' size-in-bits='64' id='7837cd88'/>
+      <class-decl name='mmc_ctx' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/mmc/host.h' line='320' column='1' id='783f5582'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='task' type-id='f23e2572' visibility='default' filepath='include/linux/mmc/host.h' line='321' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='72e932b0' size-in-bits='64' id='78470542'/>
+      <class-decl name='xhci_device_context_array' size-in-bits='16448' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1071' column='1' id='7848dffe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev_context_ptrs' type-id='fad2e2f3' visibility='default' filepath='drivers/usb/host/xhci.h' line='1073' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16384'>
+          <var-decl name='dma' type-id='cf29c9b3' visibility='default' filepath='drivers/usb/host/xhci.h' line='1075' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='784e7aa9'>
+        <parameter type-id='3dad1a48'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <enum-decl name='snd_jack_types' filepath='include/sound/jack.h' line='38' column='1' id='7851d449'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SND_JACK_HEADPHONE' value='1'/>
+        <enumerator name='SND_JACK_MICROPHONE' value='2'/>
+        <enumerator name='SND_JACK_HEADSET' value='3'/>
+        <enumerator name='SND_JACK_LINEOUT' value='4'/>
+        <enumerator name='SND_JACK_MECHANICAL' value='8'/>
+        <enumerator name='SND_JACK_VIDEOOUT' value='16'/>
+        <enumerator name='SND_JACK_AVOUT' value='20'/>
+        <enumerator name='SND_JACK_LINEIN' value='32'/>
+        <enumerator name='SND_JACK_BTN_0' value='16384'/>
+        <enumerator name='SND_JACK_BTN_1' value='8192'/>
+        <enumerator name='SND_JACK_BTN_2' value='4096'/>
+        <enumerator name='SND_JACK_BTN_3' value='2048'/>
+        <enumerator name='SND_JACK_BTN_4' value='1024'/>
+        <enumerator name='SND_JACK_BTN_5' value='512'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='78536370'>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='bff05edb'/>
+      </function-type>
+      <pointer-type-def type-id='b39453c8' size-in-bits='64' id='7855184a'/>
+      <pointer-type-def type-id='b1517543' size-in-bits='64' id='785bacaf'/>
+      <class-decl name='dw_pcie_ops' size-in-bits='448' is-struct='yes' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='248' column='1' id='785fcb49'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cpu_addr_fixup' type-id='198dd6d9' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='read_dbi' type-id='139a279e' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='write_dbi' type-id='f87f885a' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='write_dbi2' type-id='f87f885a' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='link_up' type-id='470be30c' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='start_link' type-id='470be30c' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='stop_link' type-id='5c683561' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='258' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='78627a7e'>
+        <parameter type-id='c1547255'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='786ead46'>
+        <parameter type-id='58ed56f5'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='2745fad8' size-in-bits='64' id='78713e8f'/>
+      <function-type size-in-bits='64' id='78719a99'>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='13103032'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='787271ea'>
+        <parameter type-id='e9b5d134'/>
+        <parameter type-id='80cda266'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='6797a3ea' size-in-bits='64' id='7874b245'/>
+      <pointer-type-def type-id='c9c9b0fa' size-in-bits='64' id='78815770'/>
+      <pointer-type-def type-id='8ab70c7a' size-in-bits='64' id='7881e15c'/>
+      <function-type size-in-bits='64' id='78932bbc'>
+        <parameter type-id='fc4f83c1'/>
+        <return type-id='7359adad'/>
+      </function-type>
+      <qualified-type-def type-id='2888d74a' const='yes' id='7893b96a'/>
+      <class-decl name='devlink_dpipe_field' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='203' column='1' id='78964cd8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/net/devlink.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='id' type-id='f0981eeb' visibility='default' filepath='include/net/devlink.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='bitwidth' type-id='f0981eeb' visibility='default' filepath='include/net/devlink.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mapping_type' type-id='6f18b107' visibility='default' filepath='include/net/devlink.h' line='207' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='23de1228' size-in-bits='64' id='78965926'/>
+      <typedef-decl name='__be32' type-id='3f1a6b60' filepath='include/uapi/linux/types.h' line='32' column='1' id='78a133c2'/>
+      <pointer-type-def type-id='93286cfa' size-in-bits='64' id='78a34b70'/>
+      <pointer-type-def type-id='11ce232b' size-in-bits='64' id='78abc667'/>
+      <function-type size-in-bits='64' id='78b081ff'>
+        <parameter type-id='a05f1ecd'/>
+        <parameter type-id='807869d3'/>
+        <parameter type-id='807869d3'/>
+        <parameter type-id='807869d3'/>
+        <parameter type-id='50764ba3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='trace_event' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/trace_events.h' line='135' column='1' id='78b26ac9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='03a4a074' visibility='default' filepath='include/linux/trace_events.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/trace_events.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='type' type-id='95e97e5e' visibility='default' filepath='include/linux/trace_events.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='funcs' type-id='d6d37d27' visibility='default' filepath='include/linux/trace_events.h' line='139' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4b60a147' size-in-bits='64' id='78ba63ff'/>
+      <pointer-type-def type-id='b59d7dce' size-in-bits='64' id='78c01427'/>
+      <class-decl name='nvmem_cell' size-in-bits='448' is-struct='yes' visibility='default' filepath='drivers/nvmem/core.c' line='49' column='1' id='78c7ad97'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/nvmem/core.c' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='offset' type-id='95e97e5e' visibility='default' filepath='drivers/nvmem/core.c' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='bytes' type-id='95e97e5e' visibility='default' filepath='drivers/nvmem/core.c' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bit_offset' type-id='95e97e5e' visibility='default' filepath='drivers/nvmem/core.c' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='nbits' type-id='95e97e5e' visibility='default' filepath='drivers/nvmem/core.c' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='np' type-id='9a537bbe' visibility='default' filepath='drivers/nvmem/core.c' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='nvmem' type-id='8179bc49' visibility='default' filepath='drivers/nvmem/core.c' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='drivers/nvmem/core.c' line='57' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='78c92961'>
+        <parameter type-id='4f4f2d55'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='mhp_t' type-id='95e97e5e' filepath='include/linux/memory_hotplug.h' line='35' column='1' id='78ce2680'/>
+      <function-type size-in-bits='64' id='78d147c7'>
+        <parameter type-id='7bf5a5e5'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='a3566137' const='yes' id='78d258aa'/>
+      <function-type size-in-bits='64' id='78de7510'>
+        <parameter type-id='9f763fd8'/>
+        <parameter type-id='6cd3ebf4'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='mdio_bus_stats' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/phy.h' line='267' column='1' id='78e13799'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='transfers' type-id='0f413d2a' visibility='default' filepath='include/linux/phy.h' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='errors' type-id='0f413d2a' visibility='default' filepath='include/linux/phy.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='writes' type-id='0f413d2a' visibility='default' filepath='include/linux/phy.h' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='reads' type-id='0f413d2a' visibility='default' filepath='include/linux/phy.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='syncp' type-id='e4d85780' visibility='default' filepath='include/linux/phy.h' line='273' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='sg_page_iter' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/scatterlist.h' line='404' column='1' id='78e3e1d2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sg' type-id='bf3ef905' visibility='default' filepath='include/linux/scatterlist.h' line='405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sg_pgoffset' type-id='f0981eeb' visibility='default' filepath='include/linux/scatterlist.h' line='406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='__nents' type-id='f0981eeb' visibility='default' filepath='include/linux/scatterlist.h' line='409' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='__pg_advance' type-id='95e97e5e' visibility='default' filepath='include/linux/scatterlist.h' line='410' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='hid_usage_id' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='705' column='1' id='78e57306'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='usage_hid' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='706' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='usage_type' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='707' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='usage_code' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='708' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1fc93694' size-in-bits='64' id='78e7ce8e'/>
+      <pointer-type-def type-id='17644e8c' size-in-bits='64' id='78e7cf52'/>
+      <pointer-type-def type-id='70084cf7' size-in-bits='64' id='78efe913'/>
+      <pointer-type-def type-id='cf081899' size-in-bits='64' id='78faece1'/>
+      <qualified-type-def type-id='8a1bdab0' const='yes' id='78fc3761'/>
+      <class-decl name='ZSTD_DStream_s' size-in-bits='1664' is-struct='yes' visibility='default' filepath='lib/zstd/decompress.c' line='2160' column='1' id='79021c6b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dctx' type-id='b7dc9f30' visibility='default' filepath='lib/zstd/decompress.c' line='2161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ddictLocal' type-id='49ceb52d' visibility='default' filepath='lib/zstd/decompress.c' line='2162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ddict' type-id='84f5c27e' visibility='default' filepath='lib/zstd/decompress.c' line='2163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fParams' type-id='eefdc867' visibility='default' filepath='lib/zstd/decompress.c' line='2164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='stage' type-id='e0863d6e' visibility='default' filepath='lib/zstd/decompress.c' line='2165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='inBuff' type-id='26a90f95' visibility='default' filepath='lib/zstd/decompress.c' line='2166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='inBuffSize' type-id='b59d7dce' visibility='default' filepath='lib/zstd/decompress.c' line='2167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='inPos' type-id='b59d7dce' visibility='default' filepath='lib/zstd/decompress.c' line='2168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='maxWindowSize' type-id='b59d7dce' visibility='default' filepath='lib/zstd/decompress.c' line='2169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='outBuff' type-id='26a90f95' visibility='default' filepath='lib/zstd/decompress.c' line='2170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='outBuffSize' type-id='b59d7dce' visibility='default' filepath='lib/zstd/decompress.c' line='2171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='outStart' type-id='b59d7dce' visibility='default' filepath='lib/zstd/decompress.c' line='2172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='outEnd' type-id='b59d7dce' visibility='default' filepath='lib/zstd/decompress.c' line='2173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='blockSize' type-id='b59d7dce' visibility='default' filepath='lib/zstd/decompress.c' line='2174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='headerBuffer' type-id='3a4899d0' visibility='default' filepath='lib/zstd/decompress.c' line='2175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='lhSize' type-id='b59d7dce' visibility='default' filepath='lib/zstd/decompress.c' line='2176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='customMem' type-id='4cf8679c' visibility='default' filepath='lib/zstd/decompress.c' line='2177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='legacyContext' type-id='eaa32e2f' visibility='default' filepath='lib/zstd/decompress.c' line='2178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='previousLegacyVersion' type-id='7d89f13e' visibility='default' filepath='lib/zstd/decompress.c' line='2179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='legacyVersion' type-id='7d89f13e' visibility='default' filepath='lib/zstd/decompress.c' line='2180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='hostageByte' type-id='7d89f13e' visibility='default' filepath='lib/zstd/decompress.c' line='2181' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ff37489f' size-in-bits='64' id='790774ef'/>
+      <function-type size-in-bits='64' id='7908d890'>
+        <parameter type-id='5e4f599b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='d17d9181' size-in-bits='64' id='790a00b9'/>
+      <enum-decl name='nl80211_reg_initiator' filepath='include/uapi/linux/nl80211.h' line='4276' column='1' id='790cc131'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NL80211_REGDOM_SET_BY_CORE' value='0'/>
+        <enumerator name='NL80211_REGDOM_SET_BY_USER' value='1'/>
+        <enumerator name='NL80211_REGDOM_SET_BY_DRIVER' value='2'/>
+        <enumerator name='NL80211_REGDOM_SET_BY_COUNTRY_IE' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='adbacf87' size-in-bits='64' id='791b4a6b'/>
+      <class-decl name='config_item' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/configfs.h' line='38' column='1' id='79236ccf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ci_name' type-id='26a90f95' visibility='default' filepath='include/linux/configfs.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ci_namebuf' type-id='664ac0b7' visibility='default' filepath='include/linux/configfs.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='ci_kref' type-id='400fb07b' visibility='default' filepath='include/linux/configfs.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ci_entry' type-id='72f469ec' visibility='default' filepath='include/linux/configfs.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ci_parent' type-id='7a29ff27' visibility='default' filepath='include/linux/configfs.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ci_group' type-id='97aff453' visibility='default' filepath='include/linux/configfs.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ci_type' type-id='596e8e55' visibility='default' filepath='include/linux/configfs.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ci_dentry' type-id='27675065' visibility='default' filepath='include/linux/configfs.h' line='46' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c2835ff8' size-in-bits='64' id='7924d17e'/>
+      <enum-decl name='snd_soc_dpcm_state' filepath='include/sound/soc-dpcm.h' line='38' column='1' id='792c8cde'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SND_SOC_DPCM_STATE_NEW' value='0'/>
+        <enumerator name='SND_SOC_DPCM_STATE_OPEN' value='1'/>
+        <enumerator name='SND_SOC_DPCM_STATE_HW_PARAMS' value='2'/>
+        <enumerator name='SND_SOC_DPCM_STATE_PREPARE' value='3'/>
+        <enumerator name='SND_SOC_DPCM_STATE_START' value='4'/>
+        <enumerator name='SND_SOC_DPCM_STATE_STOP' value='5'/>
+        <enumerator name='SND_SOC_DPCM_STATE_PAUSED' value='6'/>
+        <enumerator name='SND_SOC_DPCM_STATE_SUSPEND' value='7'/>
+        <enumerator name='SND_SOC_DPCM_STATE_HW_FREE' value='8'/>
+        <enumerator name='SND_SOC_DPCM_STATE_CLOSE' value='9'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='792f7033'>
+        <parameter type-id='7ac48c21'/>
+        <parameter type-id='c9982f26'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='e4ca98d1' size-in-bits='64' id='793f0d19'/>
+      <class-decl name='typec_partner' size-in-bits='7808' is-struct='yes' visibility='default' filepath='drivers/usb/typec/class.h' line='30' column='1' id='7940281b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='drivers/usb/typec/class.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='usb_pd' type-id='f0981eeb' visibility='default' filepath='drivers/usb/typec/class.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='identity' type-id='09dbca85' visibility='default' filepath='drivers/usb/typec/class.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='accessory' type-id='357a6a78' visibility='default' filepath='drivers/usb/typec/class.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='mode_ids' type-id='46ce60fb' visibility='default' filepath='drivers/usb/typec/class.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='num_altmodes' type-id='95e97e5e' visibility='default' filepath='drivers/usb/typec/class.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7648'>
+          <var-decl name='pd_revision' type-id='1dc6a898' visibility='default' filepath='drivers/usb/typec/class.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='svdm_version' type-id='664a29a4' visibility='default' filepath='drivers/usb/typec/class.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/usb/typec/class.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='476eb32c' size-in-bits='64' id='7943d272'/>
+      <pointer-type-def type-id='dd90dc09' size-in-bits='64' id='79480fd1'/>
+      <enum-decl name='hdmi_audio_coding_type_ext' filepath='include/linux/hdmi.h' line='297' column='1' id='795120af'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_EXT_CT' value='0'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_EXT_HE_AAC' value='1'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_EXT_HE_AAC_V2' value='2'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_EXT_MPEG_SURROUND' value='3'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_HE_AAC' value='4'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_HE_AAC_V2' value='5'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_AAC_LC' value='6'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_EXT_DRA' value='7'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_HE_AAC_SURROUND' value='8'/>
+        <enumerator name='HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_AAC_LC_SURROUND' value='10'/>
+      </enum-decl>
+      <pointer-type-def type-id='6ee62c60' size-in-bits='64' id='795bbc42'/>
+      <pointer-type-def type-id='0ffa0cdd' size-in-bits='64' id='795cf0d1'/>
+      <qualified-type-def type-id='3ae2c39f' const='yes' id='795e6d94'/>
+      <pointer-type-def type-id='7ebd7dab' size-in-bits='64' id='795e6e5f'/>
+      <enum-decl name='phy_media' filepath='include/linux/phy/phy.h' line='47' column='1' id='796a7678'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PHY_MEDIA_DEFAULT' value='0'/>
+        <enumerator name='PHY_MEDIA_SR' value='1'/>
+        <enumerator name='PHY_MEDIA_DAC' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='82469568' size-in-bits='64' id='7970d34a'/>
+      <qualified-type-def type-id='bbaaef8a' const='yes' id='79790457'/>
+      <pointer-type-def type-id='3dad1a48' size-in-bits='64' id='79808846'/>
+      <function-type size-in-bits='64' id='7983eff8'>
+        <parameter type-id='33dc3b1b'/>
+        <parameter type-id='10593a44'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='a4b3744f' size-in-bits='64' id='798c29b7'/>
+      <pointer-type-def type-id='0ae96173' size-in-bits='64' id='7997266f'/>
+      <typedef-decl name='ssize_t' type-id='b6b3ebaf' filepath='include/linux/types.h' line='60' column='1' id='79a0948f'/>
+      <class-decl name='snd_soc_tplg_vendor_uuid_elem' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='207' column='1' id='79a1b937'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='token' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='uuid' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/sound/asoc.h' line='209' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='HUF_CElt_s' is-struct='yes' visibility='default' is-declaration-only='yes' id='79a8143f'/>
+      <qualified-type-def type-id='6d39b2d0' const='yes' id='79a9ff6f'/>
+      <pointer-type-def type-id='e39caa24' size-in-bits='64' id='79ac8eb2'/>
+      <class-decl name='arch_uprobe_task' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/uprobes.h' line='21' column='1' id='79aea64f'/>
+      <class-decl name='ucsi_altmode' size-in-bits='48' is-struct='yes' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='210' column='1' id='79b1f57a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='svid' type-id='1dc6a898' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='mid' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='212' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5460fbd3' size-in-bits='64' id='79b4ee7f'/>
+      <function-type size-in-bits='64' id='79b655f7'>
+        <parameter type-id='a83d0951'/>
+        <parameter type-id='48f4c0e2'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='4c671f3a' size-in-bits='64' id='79b8da5c'/>
+      <enum-decl name='phy_mode' filepath='include/linux/phy/phy.h' line='24' column='1' id='79ba09b7'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PHY_MODE_INVALID' value='0'/>
+        <enumerator name='PHY_MODE_USB_HOST' value='1'/>
+        <enumerator name='PHY_MODE_USB_HOST_LS' value='2'/>
+        <enumerator name='PHY_MODE_USB_HOST_FS' value='3'/>
+        <enumerator name='PHY_MODE_USB_HOST_HS' value='4'/>
+        <enumerator name='PHY_MODE_USB_HOST_SS' value='5'/>
+        <enumerator name='PHY_MODE_USB_DEVICE' value='6'/>
+        <enumerator name='PHY_MODE_USB_DEVICE_LS' value='7'/>
+        <enumerator name='PHY_MODE_USB_DEVICE_FS' value='8'/>
+        <enumerator name='PHY_MODE_USB_DEVICE_HS' value='9'/>
+        <enumerator name='PHY_MODE_USB_DEVICE_SS' value='10'/>
+        <enumerator name='PHY_MODE_USB_OTG' value='11'/>
+        <enumerator name='PHY_MODE_UFS_HS_A' value='12'/>
+        <enumerator name='PHY_MODE_UFS_HS_B' value='13'/>
+        <enumerator name='PHY_MODE_PCIE' value='14'/>
+        <enumerator name='PHY_MODE_ETHERNET' value='15'/>
+        <enumerator name='PHY_MODE_MIPI_DPHY' value='16'/>
+        <enumerator name='PHY_MODE_SATA' value='17'/>
+        <enumerator name='PHY_MODE_LVDS' value='18'/>
+        <enumerator name='PHY_MODE_DP' value='19'/>
+      </enum-decl>
+      <class-decl name='hvc_struct' size-in-bits='4480' is-struct='yes' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='35' column='1' id='79ba66e0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='port' type-id='7e1e521a' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3424'>
+          <var-decl name='index' type-id='95e97e5e' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='do_wakeup' type-id='95e97e5e' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='outbuf' type-id='26a90f95' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='outbuf_size' type-id='95e97e5e' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3616'>
+          <var-decl name='n_outbuf' type-id='95e97e5e' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='vtermno' type-id='8f92235e' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='ops' type-id='f319e2c5' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='irq_requested' type-id='95e97e5e' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3808'>
+          <var-decl name='data' type-id='95e97e5e' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='ws' type-id='a818b7a0' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3904'>
+          <var-decl name='tty_resize' type-id='ef9025d0' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='next' type-id='72f469ec' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='drivers/tty/hvc/hvc_console.h' line='50' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='213c3202' size-in-bits='64' id='79c2f4f8'/>
+      <pointer-type-def type-id='1e447ee0' size-in-bits='64' id='79c75e82'/>
+      <pointer-type-def type-id='02e48bc6' size-in-bits='64' id='79c84484'/>
+      <enum-decl name='geni_se_xfer_mode' filepath='include/linux/qcom-geni-se.h' line='24' column='1' id='79c8c088'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='GENI_SE_INVALID' value='0'/>
+        <enumerator name='GENI_SE_FIFO' value='1'/>
+        <enumerator name='GENI_SE_DMA' value='2'/>
+        <enumerator name='GENI_GPI_DMA' value='3'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='79d185ec'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='890caaa5'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='91ce1af9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d800b1bf' size-in-bits='64' id='79dbccfb'/>
+      <class-decl name='inet6_cork' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/ipv6.h' line='200' column='1' id='79e3d9fd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='opt' type-id='d4145729' visibility='default' filepath='include/linux/ipv6.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hop_limit' type-id='f9b06939' visibility='default' filepath='include/linux/ipv6.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='tclass' type-id='f9b06939' visibility='default' filepath='include/linux/ipv6.h' line='203' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9bea5a22' size-in-bits='64' id='79ebba98'/>
+      <qualified-type-def type-id='b16ef9f3' const='yes' id='79eccb20'/>
+      <pointer-type-def type-id='923a53bf' size-in-bits='64' id='79efa3b3'/>
+      <pointer-type-def type-id='01ded187' size-in-bits='64' id='79f85ebf'/>
+      <qualified-type-def type-id='60289ffb' const='yes' id='79fae198'/>
+      <pointer-type-def type-id='25d3f8e9' size-in-bits='64' id='7a002545'/>
+      <pointer-type-def type-id='9754e8aa' size-in-bits='64' id='7a0ed254'/>
+      <pointer-type-def type-id='20d6a08a' size-in-bits='64' id='7a134fac'/>
+      <pointer-type-def type-id='e1de5cb1' size-in-bits='64' id='7a1ba1ed'/>
+      <class-decl name='nf_hook_entry' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/netfilter.h' line='98' column='1' id='7a1bc3c2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hook' type-id='c8f8b049' visibility='default' filepath='include/linux/netfilter.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/netfilter.h' line='100' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='irq_gc_flags' filepath='include/linux/irq.h' line='1087' column='1' id='7a1ec3b1'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='IRQ_GC_INIT_MASK_CACHE' value='1'/>
+        <enumerator name='IRQ_GC_INIT_NESTED_LOCK' value='2'/>
+        <enumerator name='IRQ_GC_MASK_CACHE_PER_TYPE' value='4'/>
+        <enumerator name='IRQ_GC_NO_MASK' value='8'/>
+        <enumerator name='IRQ_GC_BE_IO' value='16'/>
+      </enum-decl>
+      <pointer-type-def type-id='7adec5ff' size-in-bits='64' id='7a202df3'/>
+      <pointer-type-def type-id='79236ccf' size-in-bits='64' id='7a29ff27'/>
+      <function-type size-in-bits='64' id='7a348508'>
+        <parameter type-id='bff05edb'/>
+        <parameter type-id='cf29c9b3'/>
+        <return type-id='2522883d'/>
+      </function-type>
+      <pointer-type-def type-id='ca0c09a6' size-in-bits='64' id='7a35228c'/>
+      <class-decl name='rc_dev' size-in-bits='20480' is-struct='yes' visibility='default' filepath='include/media/rc-core.h' line='162' column='1' id='7a35a8fe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/media/rc-core.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='managed_alloc' type-id='b50a4934' visibility='default' filepath='include/media/rc-core.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='sysfs_groups' type-id='9f18d529' visibility='default' filepath='include/media/rc-core.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='device_name' type-id='80f4b756' visibility='default' filepath='include/media/rc-core.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='input_phys' type-id='80f4b756' visibility='default' filepath='include/media/rc-core.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='input_id' type-id='d99ed569' visibility='default' filepath='include/media/rc-core.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='driver_name' type-id='80f4b756' visibility='default' filepath='include/media/rc-core.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='map_name' type-id='80f4b756' visibility='default' filepath='include/media/rc-core.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='rc_map' type-id='9ab3364f' visibility='default' filepath='include/media/rc-core.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/media/rc-core.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='minor' type-id='f0981eeb' visibility='default' filepath='include/media/rc-core.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8768'>
+          <var-decl name='raw' type-id='696ed472' visibility='default' filepath='include/media/rc-core.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8832'>
+          <var-decl name='input_dev' type-id='74b427eb' visibility='default' filepath='include/media/rc-core.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8896'>
+          <var-decl name='driver_type' type-id='d4dbe3db' visibility='default' filepath='include/media/rc-core.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8928'>
+          <var-decl name='idle' type-id='b50a4934' visibility='default' filepath='include/media/rc-core.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8936'>
+          <var-decl name='encode_wakeup' type-id='b50a4934' visibility='default' filepath='include/media/rc-core.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8960'>
+          <var-decl name='allowed_protocols' type-id='91ce1af9' visibility='default' filepath='include/media/rc-core.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9024'>
+          <var-decl name='enabled_protocols' type-id='91ce1af9' visibility='default' filepath='include/media/rc-core.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9088'>
+          <var-decl name='allowed_wakeup_protocols' type-id='91ce1af9' visibility='default' filepath='include/media/rc-core.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9152'>
+          <var-decl name='wakeup_protocol' type-id='17862576' visibility='default' filepath='include/media/rc-core.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9184'>
+          <var-decl name='scancode_filter' type-id='f3a6417e' visibility='default' filepath='include/media/rc-core.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9248'>
+          <var-decl name='scancode_wakeup_filter' type-id='f3a6417e' visibility='default' filepath='include/media/rc-core.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9312'>
+          <var-decl name='scancode_mask' type-id='19c2251e' visibility='default' filepath='include/media/rc-core.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='users' type-id='19c2251e' visibility='default' filepath='include/media/rc-core.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9408'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/media/rc-core.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9472'>
+          <var-decl name='keylock' type-id='fb4018a0' visibility='default' filepath='include/media/rc-core.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9504'>
+          <var-decl name='keypressed' type-id='b50a4934' visibility='default' filepath='include/media/rc-core.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9536'>
+          <var-decl name='keyup_jiffies' type-id='7359adad' visibility='default' filepath='include/media/rc-core.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='timer_keyup' type-id='abe41e67' visibility='default' filepath='include/media/rc-core.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10048'>
+          <var-decl name='timer_repeat' type-id='abe41e67' visibility='default' filepath='include/media/rc-core.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10496'>
+          <var-decl name='last_keycode' type-id='19c2251e' visibility='default' filepath='include/media/rc-core.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10528'>
+          <var-decl name='last_protocol' type-id='17862576' visibility='default' filepath='include/media/rc-core.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10560'>
+          <var-decl name='last_scancode' type-id='91ce1af9' visibility='default' filepath='include/media/rc-core.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10624'>
+          <var-decl name='last_toggle' type-id='f9b06939' visibility='default' filepath='include/media/rc-core.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10656'>
+          <var-decl name='timeout' type-id='19c2251e' visibility='default' filepath='include/media/rc-core.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10688'>
+          <var-decl name='min_timeout' type-id='19c2251e' visibility='default' filepath='include/media/rc-core.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10720'>
+          <var-decl name='max_timeout' type-id='19c2251e' visibility='default' filepath='include/media/rc-core.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10752'>
+          <var-decl name='rx_resolution' type-id='19c2251e' visibility='default' filepath='include/media/rc-core.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10784'>
+          <var-decl name='tx_resolution' type-id='19c2251e' visibility='default' filepath='include/media/rc-core.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10816'>
+          <var-decl name='lirc_dev' type-id='66e487eb' visibility='default' filepath='include/media/rc-core.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18112'>
+          <var-decl name='lirc_cdev' type-id='22f86351' visibility='default' filepath='include/media/rc-core.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19200'>
+          <var-decl name='gap_start' type-id='fbc017ef' visibility='default' filepath='include/media/rc-core.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19264'>
+          <var-decl name='gap_duration' type-id='91ce1af9' visibility='default' filepath='include/media/rc-core.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19328'>
+          <var-decl name='gap' type-id='b50a4934' visibility='default' filepath='include/media/rc-core.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19360'>
+          <var-decl name='lirc_fh_lock' type-id='fb4018a0' visibility='default' filepath='include/media/rc-core.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19392'>
+          <var-decl name='lirc_fh' type-id='72f469ec' visibility='default' filepath='include/media/rc-core.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19520'>
+          <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/media/rc-core.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19584'>
+          <var-decl name='change_protocol' type-id='a113447f' visibility='default' filepath='include/media/rc-core.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19648'>
+          <var-decl name='open' type-id='7c07671a' visibility='default' filepath='include/media/rc-core.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19712'>
+          <var-decl name='close' type-id='35513fbd' visibility='default' filepath='include/media/rc-core.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19776'>
+          <var-decl name='s_tx_mask' type-id='27b80621' visibility='default' filepath='include/media/rc-core.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19840'>
+          <var-decl name='s_tx_carrier' type-id='27b80621' visibility='default' filepath='include/media/rc-core.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19904'>
+          <var-decl name='s_tx_duty_cycle' type-id='27b80621' visibility='default' filepath='include/media/rc-core.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19968'>
+          <var-decl name='s_rx_carrier_range' type-id='03935b08' visibility='default' filepath='include/media/rc-core.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20032'>
+          <var-decl name='tx_ir' type-id='86089bb2' visibility='default' filepath='include/media/rc-core.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20096'>
+          <var-decl name='s_idle' type-id='7e6d7408' visibility='default' filepath='include/media/rc-core.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20160'>
+          <var-decl name='s_wideband_receiver' type-id='0b603cc1' visibility='default' filepath='include/media/rc-core.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20224'>
+          <var-decl name='s_carrier_report' type-id='0b603cc1' visibility='default' filepath='include/media/rc-core.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20288'>
+          <var-decl name='s_filter' type-id='a479b17b' visibility='default' filepath='include/media/rc-core.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20352'>
+          <var-decl name='s_wakeup_filter' type-id='a479b17b' visibility='default' filepath='include/media/rc-core.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20416'>
+          <var-decl name='s_timeout' type-id='efba8d40' visibility='default' filepath='include/media/rc-core.h' line='227' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4d5c3e51' size-in-bits='64' id='7a3863fd'/>
+      <function-type size-in-bits='64' id='7a3aa0c8'>
+        <parameter type-id='87447c2d'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='cba1f2de'/>
+        <parameter type-id='30864cdc'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3e493f49' size-in-bits='64' id='7a3f8d35'/>
+      <function-type size-in-bits='64' id='7a42d02f'>
+        <parameter type-id='2730d015'/>
+        <parameter type-id='80f4b756'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='8755a6ff' size-in-bits='64' id='7a5054b7'/>
+      <pointer-type-def type-id='eacd3fb9' size-in-bits='64' id='7a52b9cd'/>
+      <pointer-type-def type-id='58fba0b6' size-in-bits='64' id='7a564208'/>
+      <class-decl name='v4l2_h264_dpb_entry' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1546' column='1' id='7a583acc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reference_ts' type-id='d3130597' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1547' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pic_num' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1548' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='frame_num' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1549' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='fields' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='reserved' type-id='06106d49' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1551' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='top_field_order_cnt' type-id='3158a266' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1552' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bottom_field_order_cnt' type-id='3158a266' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1553' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1554' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='7a592779'>
+        <parameter type-id='2bf16f59'/>
+        <parameter type-id='bd83ae50'/>
+        <parameter type-id='4616a179'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='7a6178ff'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='blkcg_pol_stat_pd_fn' type-id='290d3171' filepath='include/linux/blk-cgroup.h' line='156' column='1' id='7a664606'/>
+      <pointer-type-def type-id='19db78f1' size-in-bits='64' id='7a66877d'/>
+      <pointer-type-def type-id='c29a9f0b' size-in-bits='64' id='7a6880f3'/>
+      <pointer-type-def type-id='68d3e576' size-in-bits='64' id='7a6c9108'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/rwlock_types.h' line='25' column='1' id='7a71a0a2' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='raw_lock' type-id='fed2d8ee' visibility='default' filepath='include/linux/rwlock_types.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a858ced9' size-in-bits='64' id='7a76d041'/>
+      <qualified-type-def type-id='e726245b' const='yes' id='7a773bd0'/>
+      <qualified-type-def type-id='7fe6c639' const='yes' id='7a7796b6'/>
+      <qualified-type-def type-id='0647d262' const='yes' id='7a78fb67'/>
+      <class-decl name='geni_wrapper' size-in-bits='384' is-struct='yes' visibility='default' filepath='drivers/soc/qcom/qcom-geni-se.c' line='93' column='1' id='7a7da240'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/soc/qcom/qcom-geni-se.c' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='base' type-id='eaa32e2f' visibility='default' filepath='drivers/soc/qcom/qcom-geni-se.c' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ahb_clks' type-id='de1e7c27' visibility='default' filepath='drivers/soc/qcom/qcom-geni-se.c' line='96' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tasklet_struct' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/interrupt.h' line='594' column='1' id='7a7ea727'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='59f1923f' visibility='default' filepath='include/linux/interrupt.h' line='596' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='state' type-id='7359adad' visibility='default' filepath='include/linux/interrupt.h' line='597' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='count' type-id='49178f86' visibility='default' filepath='include/linux/interrupt.h' line='598' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='use_callback' type-id='b50a4934' visibility='default' filepath='include/linux/interrupt.h' line='599' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='' type-id='ac5ab68d' visibility='default' filepath='include/linux/interrupt.h' line='600' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='data' type-id='7359adad' visibility='default' filepath='include/linux/interrupt.h' line='604' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='vsock_transport' size-in-bits='2176' is-struct='yes' visibility='default' filepath='include/net/af_vsock.h' line='104' column='1' id='7a801157'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='module' type-id='2730d015' visibility='default' filepath='include/net/af_vsock.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='init' type-id='3c29ea97' visibility='default' filepath='include/net/af_vsock.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='destruct' type-id='ef2258e1' visibility='default' filepath='include/net/af_vsock.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='release' type-id='ef2258e1' visibility='default' filepath='include/net/af_vsock.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='cancel_pkt' type-id='19880752' visibility='default' filepath='include/net/af_vsock.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='connect' type-id='19880752' visibility='default' filepath='include/net/af_vsock.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dgram_bind' type-id='99dd37d7' visibility='default' filepath='include/net/af_vsock.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='dgram_dequeue' type-id='842e09cd' visibility='default' filepath='include/net/af_vsock.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='dgram_enqueue' type-id='353a4421' visibility='default' filepath='include/net/af_vsock.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='dgram_allow' type-id='a8a77b69' visibility='default' filepath='include/net/af_vsock.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='stream_dequeue' type-id='99dd2b5e' visibility='default' filepath='include/net/af_vsock.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='stream_enqueue' type-id='42dad747' visibility='default' filepath='include/net/af_vsock.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='stream_has_data' type-id='1db22091' visibility='default' filepath='include/net/af_vsock.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='stream_has_space' type-id='1db22091' visibility='default' filepath='include/net/af_vsock.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='stream_rcvhiwat' type-id='84a80557' visibility='default' filepath='include/net/af_vsock.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='stream_is_active' type-id='e4dceff4' visibility='default' filepath='include/net/af_vsock.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='stream_allow' type-id='a8a77b69' visibility='default' filepath='include/net/af_vsock.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='seqpacket_dequeue' type-id='f28caf17' visibility='default' filepath='include/net/af_vsock.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='seqpacket_enqueue' type-id='896fcfe6' visibility='default' filepath='include/net/af_vsock.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='seqpacket_allow' type-id='c603ea92' visibility='default' filepath='include/net/af_vsock.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='seqpacket_has_data' type-id='5a286c92' visibility='default' filepath='include/net/af_vsock.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='notify_poll_in' type-id='7b5a288b' visibility='default' filepath='include/net/af_vsock.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='notify_poll_out' type-id='7b5a288b' visibility='default' filepath='include/net/af_vsock.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='notify_recv_init' type-id='bebbea3f' visibility='default' filepath='include/net/af_vsock.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='notify_recv_pre_block' type-id='bebbea3f' visibility='default' filepath='include/net/af_vsock.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='notify_recv_pre_dequeue' type-id='bebbea3f' visibility='default' filepath='include/net/af_vsock.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='notify_recv_post_dequeue' type-id='2ba71990' visibility='default' filepath='include/net/af_vsock.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='notify_send_init' type-id='bfa7bda0' visibility='default' filepath='include/net/af_vsock.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='notify_send_pre_block' type-id='bfa7bda0' visibility='default' filepath='include/net/af_vsock.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='notify_send_pre_enqueue' type-id='bfa7bda0' visibility='default' filepath='include/net/af_vsock.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='notify_send_post_enqueue' type-id='61ae4386' visibility='default' filepath='include/net/af_vsock.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='notify_buffer_size' type-id='1ee1b664' visibility='default' filepath='include/net/af_vsock.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='shutdown' type-id='f4617859' visibility='default' filepath='include/net/af_vsock.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='get_local_cid' type-id='d91eb3a5' visibility='default' filepath='include/net/af_vsock.h' line='172' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='13be8ab4' size-in-bits='64' id='7a89a746'/>
+      <class-decl name='interval_tree_node' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/interval_tree.h' line='7' column='1' id='7a8b9f02'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rb' type-id='2a8a6332' visibility='default' filepath='include/linux/interval_tree.h' line='8' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='start' type-id='7359adad' visibility='default' filepath='include/linux/interval_tree.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='last' type-id='7359adad' visibility='default' filepath='include/linux/interval_tree.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='__subtree_last' type-id='7359adad' visibility='default' filepath='include/linux/interval_tree.h' line='11' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='macsec_rx_sc_stats' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/net/macsec.h' line='58' column='1' id='7a9d0373'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='InOctetsValidated' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='InOctetsDecrypted' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='InPktsUnchecked' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='InPktsDelayed' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='InPktsOK' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='InPktsInvalid' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='InPktsLate' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='InPktsNotValid' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='InPktsNotUsingSA' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='InPktsUnusedSA' type-id='d3130597' visibility='default' filepath='include/net/macsec.h' line='68' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='56a7b834' size-in-bits='64' id='7aa5a21e'/>
+      <qualified-type-def type-id='f0985961' const='yes' id='7aaba742'/>
+      <pointer-type-def type-id='53247dc9' size-in-bits='64' id='7ab22055'/>
+      <class-decl name='snd_hwdep_dsp_status' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='133' column='1' id='7ac013b4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='version' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='id' type-id='fc872715' visibility='default' filepath='include/uapi/sound/asound.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='num_dsps' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dsp_loaded' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='chip_ready' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='reserved' type-id='92a46553' visibility='default' filepath='include/uapi/sound/asound.h' line='139' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='powercap_zone_constraint' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/powercap.h' line='195' column='1' id='7ac3f749'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/powercap.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='power_zone' type-id='2cb4dc09' visibility='default' filepath='include/linux/powercap.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ops' type-id='b0d746a7' visibility='default' filepath='include/linux/powercap.h' line='198' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='68b6a809' size-in-bits='64' id='7ac48c21'/>
+      <pointer-type-def type-id='83be723c' size-in-bits='64' id='7acd98a2'/>
+      <pointer-type-def type-id='b52abcec' size-in-bits='64' id='7acfb3fa'/>
+      <function-type size-in-bits='64' id='7ad36775'>
+        <parameter type-id='78e7cf52'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='dea13b10' size-in-bits='64' id='7ad47ca2'/>
+      <pointer-type-def type-id='956881f1' size-in-bits='64' id='7ad49bc5'/>
+      <class-decl name='xt_mtdtor_param' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='107' column='1' id='7ad52504'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='net' type-id='a2bff676' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='match' type-id='1ecd1044' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='matchinfo' type-id='eaa32e2f' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='family' type-id='892641a4' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='111' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='7addb8a1'>
+        <parameter type-id='1c475548'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <function-type size-in-bits='64' id='7adec5ff'>
+        <parameter type-id='15b1f129'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='guid_t' type-id='aebfbcef' filepath='include/uapi/linux/uuid.h' line='25' column='1' id='7ae02c0a'/>
+      <class-decl name='ethtool_link_settings' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='2043' column='1' id='7aeccae5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='2044' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='speed' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='2045' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='duplex' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='2046' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='port' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='2047' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='phy_address' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='2048' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='autoneg' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='2049' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='mdio_support' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='2050' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='eth_tp_mdix' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='2051' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='eth_tp_mdix_ctrl' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='2052' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='link_mode_masks_nwords' type-id='8af57d41' visibility='default' filepath='include/uapi/linux/ethtool.h' line='2053' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='transceiver' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='2054' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='master_slave_cfg' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='2055' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='master_slave_state' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='2056' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='reserved1' type-id='061afaa5' visibility='default' filepath='include/uapi/linux/ethtool.h' line='2057' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='reserved' type-id='3faaea70' visibility='default' filepath='include/uapi/linux/ethtool.h' line='2058' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='link_mode_masks' type-id='d5016f6f' visibility='default' filepath='include/uapi/linux/ethtool.h' line='2059' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c44bfbeb' size-in-bits='64' id='7af12c47'/>
+      <class-decl name='bpf_prog_stats' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/filter.h' line='556' column='1' id='7af446cc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cnt' type-id='0f413d2a' visibility='default' filepath='include/linux/filter.h' line='557' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nsecs' type-id='0f413d2a' visibility='default' filepath='include/linux/filter.h' line='558' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='misses' type-id='0f413d2a' visibility='default' filepath='include/linux/filter.h' line='559' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='syncp' type-id='e4d85780' visibility='default' filepath='include/linux/filter.h' line='560' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='84a5c3d4' size-in-bits='32' id='7af92037'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <class-decl name='wpan_phy_supported' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/net/cfg802154.h' line='134' column='1' id='7b03c2a4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='channels' type-id='6dcfc3c6' visibility='default' filepath='include/net/cfg802154.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='cca_modes' type-id='19c2251e' visibility='default' filepath='include/net/cfg802154.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='cca_opts' type-id='19c2251e' visibility='default' filepath='include/net/cfg802154.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='iftypes' type-id='19c2251e' visibility='default' filepath='include/net/cfg802154.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='lbt' type-id='c78c6f33' visibility='default' filepath='include/net/cfg802154.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='min_minbe' type-id='f9b06939' visibility='default' filepath='include/net/cfg802154.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1160'>
+          <var-decl name='max_minbe' type-id='f9b06939' visibility='default' filepath='include/net/cfg802154.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1168'>
+          <var-decl name='min_maxbe' type-id='f9b06939' visibility='default' filepath='include/net/cfg802154.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1176'>
+          <var-decl name='max_maxbe' type-id='f9b06939' visibility='default' filepath='include/net/cfg802154.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='min_csma_backoffs' type-id='f9b06939' visibility='default' filepath='include/net/cfg802154.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1192'>
+          <var-decl name='max_csma_backoffs' type-id='f9b06939' visibility='default' filepath='include/net/cfg802154.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1200'>
+          <var-decl name='min_frame_retries' type-id='fdbf7a0f' visibility='default' filepath='include/net/cfg802154.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1208'>
+          <var-decl name='max_frame_retries' type-id='fdbf7a0f' visibility='default' filepath='include/net/cfg802154.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='tx_powers_size' type-id='b59d7dce' visibility='default' filepath='include/net/cfg802154.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='cca_ed_levels_size' type-id='b59d7dce' visibility='default' filepath='include/net/cfg802154.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='tx_powers' type-id='e0a2e3a6' visibility='default' filepath='include/net/cfg802154.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='cca_ed_levels' type-id='e0a2e3a6' visibility='default' filepath='include/net/cfg802154.h' line='142' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8444449b' size-in-bits='64' id='7b11af2f'/>
+      <array-type-def dimensions='1' type-id='103da70a' size-in-bits='640' id='7b1498fd'>
+        <subrange length='10' type-id='7ff19f0f' id='487da03a'/>
+      </array-type-def>
+      <pointer-type-def type-id='e4205152' size-in-bits='64' id='7b15200c'/>
+      <pointer-type-def type-id='629e5a31' size-in-bits='64' id='7b1b6f25'/>
+      <class-decl name='pcpu_rx_sc_stats' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/net/macsec.h' line='126' column='1' id='7b2b38d1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='stats' type-id='7a9d0373' visibility='default' filepath='include/net/macsec.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='syncp' type-id='e4d85780' visibility='default' filepath='include/net/macsec.h' line='128' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='hdmi_eotf' filepath='include/linux/hdmi.h' line='162' column='1' id='7b330cb5'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HDMI_EOTF_TRADITIONAL_GAMMA_SDR' value='0'/>
+        <enumerator name='HDMI_EOTF_TRADITIONAL_GAMMA_HDR' value='1'/>
+        <enumerator name='HDMI_EOTF_SMPTE_ST2084' value='2'/>
+        <enumerator name='HDMI_EOTF_BT_2100_HLG' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='a0eb3346' size-in-bits='64' id='7b332e1c'/>
+      <pointer-type-def type-id='07df1a3d' size-in-bits='64' id='7b361235'/>
+      <function-type size-in-bits='64' id='7b49a935'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='413f0ce4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='8aecb761' size-in-bits='64' id='7b4e3cad'/>
+      <pointer-type-def type-id='71f18ea5' size-in-bits='64' id='7b4ee155'/>
+      <class-decl name='kernfs_iattrs' size-in-bits='704' is-struct='yes' visibility='default' filepath='fs/kernfs/kernfs-internal.h' line='22' column='1' id='7b5435ce'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ia_uid' type-id='d80b72e6' visibility='default' filepath='fs/kernfs/kernfs-internal.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ia_gid' type-id='094d8048' visibility='default' filepath='fs/kernfs/kernfs-internal.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ia_atime' type-id='40a816ad' visibility='default' filepath='fs/kernfs/kernfs-internal.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ia_mtime' type-id='40a816ad' visibility='default' filepath='fs/kernfs/kernfs-internal.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ia_ctime' type-id='40a816ad' visibility='default' filepath='fs/kernfs/kernfs-internal.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='xattrs' type-id='00ed5110' visibility='default' filepath='fs/kernfs/kernfs-internal.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='nr_user_xattrs' type-id='49178f86' visibility='default' filepath='fs/kernfs/kernfs-internal.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='user_xattr_size' type-id='49178f86' visibility='default' filepath='fs/kernfs/kernfs-internal.h' line='31' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='7b596412'>
+        <parameter type-id='5474f420'/>
+        <parameter type-id='bbaf3419'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='ebf8e47f' size-in-bits='64' id='7b5a288b'/>
+      <class-decl name='sigpending' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/signal_types.h' line='32' column='1' id='7b5c012d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/signal_types.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='signal' type-id='daf33c64' visibility='default' filepath='include/linux/signal_types.h' line='34' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='kernel_cpustat' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/kernel_stat.h' line='34' column='1' id='7b5f27b3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cpustat' type-id='08a70b25' visibility='default' filepath='include/linux/kernel_stat.h' line='35' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5caab92b' size-in-bits='64' id='7b60dc9f'/>
+      <class-decl name='blk_crypto_key' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/linux/blk-crypto.h' line='52' column='1' id='7b61b7b4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='crypto_cfg' type-id='cdcb89ef' visibility='default' filepath='include/linux/blk-crypto.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data_unit_size_bits' type-id='f0981eeb' visibility='default' filepath='include/linux/blk-crypto.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='size' type-id='f0981eeb' visibility='default' filepath='include/linux/blk-crypto.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='raw' type-id='7f475abd' visibility='default' filepath='include/linux/blk-crypto.h' line='56' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8edd926b' size-in-bits='64' id='7b683b77'/>
+      <function-type size-in-bits='64' id='7b74b2c0'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='8bff8096'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='3f9bbdb6'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='7b76bae4'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='31b542ce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='mtd_ecc_stats' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/mtd/mtd-abi.h' line='252' column='1' id='7b8d694e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='corrected' type-id='3f1a6b60' visibility='default' filepath='include/uapi/mtd/mtd-abi.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='failed' type-id='3f1a6b60' visibility='default' filepath='include/uapi/mtd/mtd-abi.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='badblocks' type-id='3f1a6b60' visibility='default' filepath='include/uapi/mtd/mtd-abi.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='bbtblocks' type-id='3f1a6b60' visibility='default' filepath='include/uapi/mtd/mtd-abi.h' line='256' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='powercap_control_type' size-in-bits='8192' is-struct='yes' visibility='default' filepath='include/linux/powercap.h' line='64' column='1' id='7b8d7a91'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/powercap.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='idr' type-id='37ce495e' visibility='default' filepath='include/linux/powercap.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='nr_zones' type-id='95e97e5e' visibility='default' filepath='include/linux/powercap.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='ops' type-id='3e221989' visibility='default' filepath='include/linux/powercap.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/linux/powercap.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='allocated' type-id='b50a4934' visibility='default' filepath='include/linux/powercap.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/powercap.h' line='71' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7eea96b3' size-in-bits='64' id='7b923743'/>
+      <pointer-type-def type-id='08bcc9e6' size-in-bits='64' id='7b9768f0'/>
+      <class-decl name='i3c_device' size-in-bits='7424' is-struct='yes' visibility='default' filepath='include/linux/i3c/master.h' line='229' column='1' id='7ba417e5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/i3c/master.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='desc' type-id='e9b5d134' visibility='default' filepath='include/linux/i3c/master.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='bus' type-id='a37ee787' visibility='default' filepath='include/linux/i3c/master.h' line='232' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='sd_flow_limit' size-in-bits='2176' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='3376' column='1' id='7ba771af'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='3377' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_buckets' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='3378' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='history_head' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='3379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='history' type-id='13faf778' visibility='default' filepath='include/linux/netdevice.h' line='3380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='buckets' type-id='29c3368c' visibility='default' filepath='include/linux/netdevice.h' line='3381' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='c4601f87' const='yes' id='7bacac96'/>
+      <pointer-type-def type-id='d99ae68d' size-in-bits='64' id='7bada959'/>
+      <class-decl name='wait_page_queue' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/pagemap.h' line='581' column='1' id='7bb07bfa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='page' type-id='02f11ed4' visibility='default' filepath='include/linux/pagemap.h' line='582' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bit_nr' type-id='95e97e5e' visibility='default' filepath='include/linux/pagemap.h' line='583' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='wait' type-id='fe794aa9' visibility='default' filepath='include/linux/pagemap.h' line='584' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='7bb1ea6f'>
+        <parameter type-id='260390aa'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='bb3475c9'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <pointer-type-def type-id='a9ae7f74' size-in-bits='64' id='7bb280fa'/>
+      <class-decl name='platform_device' size-in-bits='8064' is-struct='yes' visibility='default' filepath='include/linux/platform_device.h' line='24' column='1' id='7bb4e525'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/platform_device.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/platform_device.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='id_auto' type-id='b50a4934' visibility='default' filepath='include/linux/platform_device.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/platform_device.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='platform_dma_mask' type-id='91ce1af9' visibility='default' filepath='include/linux/platform_device.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='dma_parms' type-id='37251e77' visibility='default' filepath='include/linux/platform_device.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='num_resources' type-id='19c2251e' visibility='default' filepath='include/linux/platform_device.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='resource' type-id='c9d64c0d' visibility='default' filepath='include/linux/platform_device.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='id_entry' type-id='79c2f4f8' visibility='default' filepath='include/linux/platform_device.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='driver_override' type-id='26a90f95' visibility='default' filepath='include/linux/platform_device.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='mfd_cell' type-id='fb02122b' visibility='default' filepath='include/linux/platform_device.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='archdata' type-id='89ee2f2f' visibility='default' filepath='include/linux/platform_device.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/platform_device.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/platform_device.h' line='44' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0971a711' size-in-bits='64' id='7bb6ff35'/>
+      <pointer-type-def type-id='a15ecb0c' size-in-bits='64' id='7bc9606a'/>
+      <pointer-type-def type-id='d710e4d1' size-in-bits='64' id='7bc9d2d9'/>
+      <pointer-type-def type-id='f67639d3' size-in-bits='64' id='7bca30b7'/>
+      <class-decl name='led_trigger' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/leds.h' line='353' column='1' id='7bcbad99'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/leds.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='activate' type-id='0904d108' visibility='default' filepath='include/linux/leds.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='deactivate' type-id='749654e7' visibility='default' filepath='include/linux/leds.h' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='trigger_type' type-id='ad0a69fc' visibility='default' filepath='include/linux/leds.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='leddev_list_lock' type-id='ac16795b' visibility='default' filepath='include/linux/leds.h' line='363' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='led_cdevs' type-id='72f469ec' visibility='default' filepath='include/linux/leds.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='next_trig' type-id='72f469ec' visibility='default' filepath='include/linux/leds.h' line='367' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='groups' type-id='c97de1ac' visibility='default' filepath='include/linux/leds.h' line='369' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1b424123' size-in-bits='64' id='7bd168bf'/>
+      <qualified-type-def type-id='a1eb8a6b' const='yes' id='7bd1ccce'/>
+      <pointer-type-def type-id='bf11af99' size-in-bits='64' id='7bd796c9'/>
+      <pointer-type-def type-id='12504979' size-in-bits='64' id='7bd7def1'/>
+      <class-decl name='module_kobject' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/module.h' line='46' column='1' id='7bd9942c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='include/linux/module.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='mod' type-id='2730d015' visibility='default' filepath='include/linux/module.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='drivers_dir' type-id='d30bdc51' visibility='default' filepath='include/linux/module.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='mp' type-id='ad9e36e6' visibility='default' filepath='include/linux/module.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='kobj_completion' type-id='389faaf7' visibility='default' filepath='include/linux/module.h' line='51' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='7be04e1e'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='fe454a75'/>
+        <parameter type-id='2aeab85a'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='b30ae843' const='yes' id='7be051de'/>
+      <function-type size-in-bits='64' id='7be36c00'>
+        <parameter type-id='d1347205'/>
+        <parameter type-id='43c38462'/>
+        <parameter type-id='e884daa5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='13de152d' size-in-bits='64' id='7be3d1f9'/>
+      <array-type-def dimensions='1' type-id='979d5bbb' size-in-bits='infinite' id='7be723ef'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='7be84b87'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='b2fa31d6'/>
+        <parameter type-id='e638cd0c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='tc_stats' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/pkt_sched.h' line='34' column='1' id='7bef637c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bytes' type-id='d3130597' visibility='default' filepath='include/uapi/linux/pkt_sched.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='packets' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/pkt_sched.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='drops' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/pkt_sched.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='overlimits' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/pkt_sched.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='bps' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/pkt_sched.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pps' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/pkt_sched.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='qlen' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/pkt_sched.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='backlog' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/pkt_sched.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ceda742d' size-in-bits='64' id='7befabdd'/>
+      <pointer-type-def type-id='b370f5a5' size-in-bits='64' id='7bf5a5e5'/>
+      <pointer-type-def type-id='98294d42' size-in-bits='64' id='7bf821a0'/>
+      <qualified-type-def type-id='76f58541' const='yes' id='7bfbb42a'/>
+      <function-type size-in-bits='64' id='7c02f62f'>
+        <parameter type-id='ee27b7c6'/>
+        <parameter type-id='e5411c2c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='snd_ctl_file' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/sound/control.h' line='105' column='1' id='7c055541'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/sound/control.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='card' type-id='52704eb7' visibility='default' filepath='include/sound/control.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pid' type-id='b94e5398' visibility='default' filepath='include/sound/control.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='preferred_subdevice' type-id='e4266c7e' visibility='default' filepath='include/sound/control.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='change_sleep' type-id='b5ab048f' visibility='default' filepath='include/sound/control.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='read_lock' type-id='fb4018a0' visibility='default' filepath='include/sound/control.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='fasync' type-id='5bb9c75d' visibility='default' filepath='include/sound/control.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='subscribed' type-id='95e97e5e' visibility='default' filepath='include/sound/control.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='events' type-id='72f469ec' visibility='default' filepath='include/sound/control.h' line='114' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cd5ad9b0' size-in-bits='64' id='7c07671a'/>
+      <pointer-type-def type-id='4b9cd243' size-in-bits='64' id='7c08f417'/>
+      <class-decl name='rcu_work' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/workqueue.h' line='125' column='1' id='7c0b9fdb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/linux/workqueue.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/workqueue.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='wq' type-id='242e3d19' visibility='default' filepath='include/linux/workqueue.h' line='130' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6daa74bb' size-in-bits='64' id='7c0fed0f'/>
+      <pointer-type-def type-id='9b7f1a95' size-in-bits='64' id='7c11f655'/>
+      <class-decl name='cpu_topology' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/arch_topology.h' line='63' column='1' id='7c13c5bf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='thread_id' type-id='95e97e5e' visibility='default' filepath='include/linux/arch_topology.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='core_id' type-id='95e97e5e' visibility='default' filepath='include/linux/arch_topology.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='package_id' type-id='95e97e5e' visibility='default' filepath='include/linux/arch_topology.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='llc_id' type-id='95e97e5e' visibility='default' filepath='include/linux/arch_topology.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='thread_sibling' type-id='90bc6bed' visibility='default' filepath='include/linux/arch_topology.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='core_sibling' type-id='90bc6bed' visibility='default' filepath='include/linux/arch_topology.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='llc_sibling' type-id='90bc6bed' visibility='default' filepath='include/linux/arch_topology.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='android_vendor_data1' type-id='90bc6bed' visibility='default' filepath='include/linux/arch_topology.h' line='72' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='7c1f247e'>
+        <parameter type-id='3aaeef89'/>
+        <parameter type-id='27675065'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='phy_device' size-in-bits='12800' is-struct='yes' visibility='default' filepath='include/linux/phy.h' line='564' column='1' id='7c1f8187'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mdio' type-id='f3a32dbb' visibility='default' filepath='include/linux/phy.h' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='drv' type-id='e812884b' visibility='default' filepath='include/linux/phy.h' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='phy_id' type-id='19c2251e' visibility='default' filepath='include/linux/phy.h' line='571' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8160'>
+          <var-decl name='c45_ids' type-id='0463cbfd' visibility='default' filepath='include/linux/phy.h' line='573' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9248'>
+          <var-decl name='is_c45' type-id='f0981eeb' visibility='default' filepath='include/linux/phy.h' line='574' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9249'>
+          <var-decl name='is_internal' type-id='f0981eeb' visibility='default' filepath='include/linux/phy.h' line='575' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9250'>
+          <var-decl name='is_pseudo_fixed_link' type-id='f0981eeb' visibility='default' filepath='include/linux/phy.h' line='576' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9251'>
+          <var-decl name='is_gigabit_capable' type-id='f0981eeb' visibility='default' filepath='include/linux/phy.h' line='577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9252'>
+          <var-decl name='has_fixups' type-id='f0981eeb' visibility='default' filepath='include/linux/phy.h' line='578' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9253'>
+          <var-decl name='suspended' type-id='f0981eeb' visibility='default' filepath='include/linux/phy.h' line='579' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9254'>
+          <var-decl name='suspended_by_mdio_bus' type-id='f0981eeb' visibility='default' filepath='include/linux/phy.h' line='580' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9255'>
+          <var-decl name='sysfs_links' type-id='f0981eeb' visibility='default' filepath='include/linux/phy.h' line='581' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9256'>
+          <var-decl name='loopback_enabled' type-id='f0981eeb' visibility='default' filepath='include/linux/phy.h' line='582' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9257'>
+          <var-decl name='downshifted_rate' type-id='f0981eeb' visibility='default' filepath='include/linux/phy.h' line='583' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9258'>
+          <var-decl name='is_on_sfp_module' type-id='f0981eeb' visibility='default' filepath='include/linux/phy.h' line='584' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9259'>
+          <var-decl name='mac_managed_pm' type-id='f0981eeb' visibility='default' filepath='include/linux/phy.h' line='585' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9260'>
+          <var-decl name='autoneg' type-id='f0981eeb' visibility='default' filepath='include/linux/phy.h' line='587' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9261'>
+          <var-decl name='link' type-id='f0981eeb' visibility='default' filepath='include/linux/phy.h' line='589' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9262'>
+          <var-decl name='autoneg_complete' type-id='f0981eeb' visibility='default' filepath='include/linux/phy.h' line='590' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9263'>
+          <var-decl name='interrupts' type-id='f0981eeb' visibility='default' filepath='include/linux/phy.h' line='593' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9280'>
+          <var-decl name='state' type-id='d29ba889' visibility='default' filepath='include/linux/phy.h' line='595' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9312'>
+          <var-decl name='dev_flags' type-id='19c2251e' visibility='default' filepath='include/linux/phy.h' line='597' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='interface' type-id='d61bf978' visibility='default' filepath='include/linux/phy.h' line='599' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9376'>
+          <var-decl name='speed' type-id='95e97e5e' visibility='default' filepath='include/linux/phy.h' line='605' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9408'>
+          <var-decl name='duplex' type-id='95e97e5e' visibility='default' filepath='include/linux/phy.h' line='606' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9440'>
+          <var-decl name='port' type-id='95e97e5e' visibility='default' filepath='include/linux/phy.h' line='607' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9472'>
+          <var-decl name='pause' type-id='95e97e5e' visibility='default' filepath='include/linux/phy.h' line='608' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9504'>
+          <var-decl name='asym_pause' type-id='95e97e5e' visibility='default' filepath='include/linux/phy.h' line='609' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9536'>
+          <var-decl name='master_slave_get' type-id='f9b06939' visibility='default' filepath='include/linux/phy.h' line='610' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9544'>
+          <var-decl name='master_slave_set' type-id='f9b06939' visibility='default' filepath='include/linux/phy.h' line='611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9552'>
+          <var-decl name='master_slave_state' type-id='f9b06939' visibility='default' filepath='include/linux/phy.h' line='612' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='supported' type-id='f05e8e77' visibility='default' filepath='include/linux/phy.h' line='616' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9728'>
+          <var-decl name='advertising' type-id='f05e8e77' visibility='default' filepath='include/linux/phy.h' line='617' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9856'>
+          <var-decl name='lp_advertising' type-id='f05e8e77' visibility='default' filepath='include/linux/phy.h' line='618' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9984'>
+          <var-decl name='adv_old' type-id='f05e8e77' visibility='default' filepath='include/linux/phy.h' line='620' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10112'>
+          <var-decl name='eee_broken_modes' type-id='19c2251e' visibility='default' filepath='include/linux/phy.h' line='623' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10144'>
+          <var-decl name='irq' type-id='95e97e5e' visibility='default' filepath='include/linux/phy.h' line='637' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10176'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/phy.h' line='641' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10240'>
+          <var-decl name='shared' type-id='a86c90a5' visibility='default' filepath='include/linux/phy.h' line='645' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10304'>
+          <var-decl name='skb' type-id='0fbf3cfd' visibility='default' filepath='include/linux/phy.h' line='648' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10368'>
+          <var-decl name='ehdr' type-id='eaa32e2f' visibility='default' filepath='include/linux/phy.h' line='649' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10432'>
+          <var-decl name='nest' type-id='6fcaf91e' visibility='default' filepath='include/linux/phy.h' line='650' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10496'>
+          <var-decl name='state_queue' type-id='5ad6e0ef' visibility='default' filepath='include/linux/phy.h' line='653' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11584'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/linux/phy.h' line='655' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11968'>
+          <var-decl name='sfp_bus_attached' type-id='b50a4934' visibility='default' filepath='include/linux/phy.h' line='658' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12032'>
+          <var-decl name='sfp_bus' type-id='6daf6abd' visibility='default' filepath='include/linux/phy.h' line='659' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12096'>
+          <var-decl name='phylink' type-id='56f3c6ca' visibility='default' filepath='include/linux/phy.h' line='660' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12160'>
+          <var-decl name='attached_dev' type-id='68a2d05b' visibility='default' filepath='include/linux/phy.h' line='661' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12224'>
+          <var-decl name='mii_ts' type-id='9d7e7820' visibility='default' filepath='include/linux/phy.h' line='662' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12288'>
+          <var-decl name='mdix' type-id='f9b06939' visibility='default' filepath='include/linux/phy.h' line='664' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12296'>
+          <var-decl name='mdix_ctrl' type-id='f9b06939' visibility='default' filepath='include/linux/phy.h' line='665' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12352'>
+          <var-decl name='phy_link_change' type-id='f494f293' visibility='default' filepath='include/linux/phy.h' line='667' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12416'>
+          <var-decl name='adjust_link' type-id='548eee3a' visibility='default' filepath='include/linux/phy.h' line='668' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12480'>
+          <var-decl name='macsec_ops' type-id='94090a9b' visibility='default' filepath='include/linux/phy.h' line='672' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12544'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/phy.h' line='675' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12608'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/phy.h' line='676' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12672'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/phy.h' line='677' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12736'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/phy.h' line='678' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='proc_write_t' type-id='f71f3e00' filepath='include/linux/proc_fs.h' line='77' column='1' id='7c2b18ab'/>
+      <class-decl name='v4l2_modulator' size-in-bits='544' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1901' column='1' id='7c3a095f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1902' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='name' type-id='7e67d89d' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1903' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='capability' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1904' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='rangelow' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1905' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='rangehigh' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1906' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='txsubchans' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1907' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1908' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='reserved' type-id='3fa05d14' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1909' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='98f70d4c' size-in-bits='64' id='7c3e509a'/>
+      <pointer-type-def type-id='bae39662' size-in-bits='64' id='7c459358'/>
+      <pointer-type-def type-id='c7da7875' size-in-bits='64' id='7c4a6c91'/>
+      <array-type-def dimensions='1' type-id='3fbb40da' size-in-bits='infinite' id='7c4ce442'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='7c5064e4'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='6368b074' const='yes' id='7c50e73f'/>
+      <pointer-type-def type-id='fca2ff53' size-in-bits='64' id='7c56bbaf'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/asm-generic/local64.h' line='24' column='1' id='7c5b29b9' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='a' type-id='dd91f264' visibility='default' filepath='include/asm-generic/local64.h' line='25' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b2983aea' size-in-bits='64' id='7c5f8cd8'/>
+      <pointer-type-def type-id='a88f76f1' size-in-bits='64' id='7c67ab39'/>
+      <pointer-type-def type-id='db04abd6' size-in-bits='64' id='7c6e0e0c'/>
+      <enum-decl name='hdmi_3d_structure' filepath='include/linux/hdmi.h' line='341' column='1' id='7c6e6e72'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HDMI_3D_STRUCTURE_INVALID' value='-1'/>
+        <enumerator name='HDMI_3D_STRUCTURE_FRAME_PACKING' value='0'/>
+        <enumerator name='HDMI_3D_STRUCTURE_FIELD_ALTERNATIVE' value='1'/>
+        <enumerator name='HDMI_3D_STRUCTURE_LINE_ALTERNATIVE' value='2'/>
+        <enumerator name='HDMI_3D_STRUCTURE_SIDE_BY_SIDE_FULL' value='3'/>
+        <enumerator name='HDMI_3D_STRUCTURE_L_DEPTH' value='4'/>
+        <enumerator name='HDMI_3D_STRUCTURE_L_DEPTH_GFX_GFX_DEPTH' value='5'/>
+        <enumerator name='HDMI_3D_STRUCTURE_TOP_AND_BOTTOM' value='6'/>
+        <enumerator name='HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF' value='8'/>
+      </enum-decl>
+      <pointer-type-def type-id='e30804d9' size-in-bits='64' id='7c70f4dd'/>
+      <pointer-type-def type-id='1be94d48' size-in-bits='64' id='7c778562'/>
+      <array-type-def dimensions='1' type-id='0f8b1896' size-in-bits='infinite' id='7c792e5e'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <qualified-type-def type-id='d53c2eb5' const='yes' id='7c7c6daa'/>
+      <typedef-decl name='ZSTD_DCtx' type-id='de238d9c' filepath='include/linux/zstd.h' line='273' column='1' id='7c7d1d2d'/>
+      <class-decl name='ctl_dir' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/sysctl.h' line='162' column='1' id='7c7d6006'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='header' type-id='ed51618b' visibility='default' filepath='include/linux/sysctl.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='root' type-id='dec44472' visibility='default' filepath='include/linux/sysctl.h' line='165' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4a1729fc' size-in-bits='64' id='7c7fffd6'/>
+      <qualified-type-def type-id='c553aabf' const='yes' id='7c8b7a6c'/>
+      <function-type size-in-bits='64' id='7c9213d1'>
+        <parameter type-id='2ce52478'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <class-decl name='dev_pm_domain' size-in-bits='1920' is-struct='yes' visibility='default' filepath='include/linux/pm.h' line='650' column='1' id='7c94eaa3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='3ea82289' visibility='default' filepath='include/linux/pm.h' line='651' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='start' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='652' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='detach' type-id='7d18218b' visibility='default' filepath='include/linux/pm.h' line='653' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='activate' type-id='613d39f5' visibility='default' filepath='include/linux/pm.h' line='654' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='sync' type-id='dd787f72' visibility='default' filepath='include/linux/pm.h' line='655' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='dismiss' type-id='dd787f72' visibility='default' filepath='include/linux/pm.h' line='656' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/pm.h' line='658' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e1a8ec34' size-in-bits='64' id='7c9900c6'/>
+      <pointer-type-def type-id='2b0da039' size-in-bits='64' id='7c9a077d'/>
+      <function-type size-in-bits='64' id='7ca0f14f'>
+        <parameter type-id='513f51db'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='bddbbc91'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='65baad60' size-in-bits='64' id='7ca29816'/>
+      <pointer-type-def type-id='58f5058a' size-in-bits='64' id='7ca8e198'/>
+      <class-decl name='freq_constraints' size-in-bits='1792' is-struct='yes' visibility='default' filepath='include/linux/pm_qos.h' line='85' column='1' id='7ca99f8c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='min_freq' type-id='4ad5b81b' visibility='default' filepath='include/linux/pm_qos.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='min_freq_notifiers' type-id='708c2394' visibility='default' filepath='include/linux/pm_qos.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='max_freq' type-id='4ad5b81b' visibility='default' filepath='include/linux/pm_qos.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='max_freq_notifiers' type-id='708c2394' visibility='default' filepath='include/linux/pm_qos.h' line='89' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_frmivalenum' size-in-bits='416' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='857' column='1' id='7caad7ca'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='858' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pixel_format' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='859' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='860' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='861' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='862' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='' type-id='ac5ab5f5' visibility='default' filepath='include/uapi/linux/videodev2.h' line='864' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='reserved' type-id='839e8989' visibility='default' filepath='include/uapi/linux/videodev2.h' line='869' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ae542eb6' size-in-bits='64' id='7cb76260'/>
+      <pointer-type-def type-id='47d6e76e' size-in-bits='64' id='7cc59444'/>
+      <class-decl name='dma_resv_list' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/dma-resv.h' line='57' column='1' id='7cc6fd83'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/dma-resv.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='shared_count' type-id='19c2251e' visibility='default' filepath='include/linux/dma-resv.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='shared_max' type-id='19c2251e' visibility='default' filepath='include/linux/dma-resv.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='shared' type-id='f5432a6f' visibility='default' filepath='include/linux/dma-resv.h' line='60' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2976f714' size-in-bits='64' id='7cd466e6'/>
+      <class-decl name='snd_pcm_audio_tstamp_report' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/sound/pcm.h' line='315' column='1' id='7cd8db07'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='valid' type-id='19c2251e' visibility='default' filepath='include/sound/pcm.h' line='319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1'>
+          <var-decl name='actual_type' type-id='19c2251e' visibility='default' filepath='include/sound/pcm.h' line='322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5'>
+          <var-decl name='accuracy_report' type-id='19c2251e' visibility='default' filepath='include/sound/pcm.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='accuracy' type-id='19c2251e' visibility='default' filepath='include/sound/pcm.h' line='326' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='Elf64_Sym' type-id='30bf9720' filepath='include/uapi/linux/elf.h' line='203' column='1' id='7cdfe313'/>
+      <class-decl name='zs_pool_stats' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/zsmalloc.h' line='36' column='1' id='7cee8a3d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pages_compacted' type-id='f22a8abb' visibility='default' filepath='include/linux/zsmalloc.h' line='38' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='d83a2db1' size-in-bits='infinite' id='7cfae8e1'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <class-decl name='drm_plane_helper_funcs' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='1165' column='1' id='7cfcbd14'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prepare_fb' type-id='4c74ea47' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='1200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cleanup_fb' type-id='d196b9c2' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='1211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='atomic_check' type-id='288a7542' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='1249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='atomic_update' type-id='6dd6ce85' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='1267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='atomic_disable' type-id='6dd6ce85' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='1291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='atomic_async_check' type-id='288a7542' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='1310' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='atomic_async_update' type-id='6dd6ce85' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='1347' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='20396099' size-in-bits='64' id='7d0644b5'/>
+      <pointer-type-def type-id='830e3b1b' size-in-bits='64' id='7d0bc0eb'/>
+      <function-type size-in-bits='64' id='7d117ac5'>
+        <parameter type-id='442b8d89'/>
+        <parameter type-id='47e46889'/>
+        <parameter type-id='bbeb954c'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='a5b67631' size-in-bits='64' id='7d13749d'/>
+      <pointer-type-def type-id='0a84ab07' size-in-bits='64' id='7d18218b'/>
+      <qualified-type-def type-id='842b8964' const='yes' id='7d1bac73'/>
+      <qualified-type-def type-id='2117397c' const='yes' id='7d20a6e7'/>
+      <pointer-type-def type-id='b8791da7' size-in-bits='64' id='7d2f2ada'/>
+      <pointer-type-def type-id='80f4b756' size-in-bits='64' id='7d3cd834'/>
+      <function-type size-in-bits='64' id='7d41fdf4'>
+        <parameter type-id='85196e3f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='7d43ac00'>
+        <parameter type-id='dd575c43'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='4e3458ca' size-in-bits='64' id='7d48d834'/>
+      <function-type size-in-bits='64' id='7d4ff292'>
+        <parameter type-id='06b2cd14'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='tcphdr' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/tcp.h' line='25' column='1' id='7d506d7a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='source' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/tcp.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='dest' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/tcp.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='seq' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/tcp.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ack_seq' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/tcp.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='res1' type-id='d315442e' visibility='default' filepath='include/uapi/linux/tcp.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='100'>
+          <var-decl name='doff' type-id='d315442e' visibility='default' filepath='include/uapi/linux/tcp.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='fin' type-id='d315442e' visibility='default' filepath='include/uapi/linux/tcp.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='105'>
+          <var-decl name='syn' type-id='d315442e' visibility='default' filepath='include/uapi/linux/tcp.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='106'>
+          <var-decl name='rst' type-id='d315442e' visibility='default' filepath='include/uapi/linux/tcp.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='107'>
+          <var-decl name='psh' type-id='d315442e' visibility='default' filepath='include/uapi/linux/tcp.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='108'>
+          <var-decl name='ack' type-id='d315442e' visibility='default' filepath='include/uapi/linux/tcp.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='109'>
+          <var-decl name='urg' type-id='d315442e' visibility='default' filepath='include/uapi/linux/tcp.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='110'>
+          <var-decl name='ece' type-id='d315442e' visibility='default' filepath='include/uapi/linux/tcp.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='111'>
+          <var-decl name='cwr' type-id='d315442e' visibility='default' filepath='include/uapi/linux/tcp.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='window' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/tcp.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='check' type-id='7dac1e36' visibility='default' filepath='include/uapi/linux/tcp.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='urg_ptr' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/tcp.h' line='57' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c2cd30e2' size-in-bits='64' id='7d55f1e4'/>
+      <typedef-decl name='pci_channel_state_t' type-id='f0981eeb' filepath='include/linux/pci.h' line='187' column='1' id='7d5a17ad'/>
+      <class-decl name='phylink' size-in-bits='3520' is-struct='yes' visibility='default' filepath='drivers/net/phy/phylink.c' line='42' column='1' id='7d5dfb1c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='netdev' type-id='68a2d05b' visibility='default' filepath='drivers/net/phy/phylink.c' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mac_ops' type-id='f6203fc2' visibility='default' filepath='drivers/net/phy/phylink.c' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pcs_ops' type-id='a6424831' visibility='default' filepath='drivers/net/phy/phylink.c' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='config' type-id='0dc3586b' visibility='default' filepath='drivers/net/phy/phylink.c' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='pcs' type-id='944c4ff9' visibility='default' filepath='drivers/net/phy/phylink.c' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/net/phy/phylink.c' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='old_link_state' type-id='f0981eeb' visibility='default' filepath='drivers/net/phy/phylink.c' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='phylink_disable_state' type-id='7359adad' visibility='default' filepath='drivers/net/phy/phylink.c' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='phydev' type-id='7efbcaaf' visibility='default' filepath='drivers/net/phy/phylink.c' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='link_interface' type-id='d61bf978' visibility='default' filepath='drivers/net/phy/phylink.c' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='cfg_link_an_mode' type-id='f9b06939' visibility='default' filepath='drivers/net/phy/phylink.c' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='616'>
+          <var-decl name='cur_link_an_mode' type-id='f9b06939' visibility='default' filepath='drivers/net/phy/phylink.c' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='624'>
+          <var-decl name='link_port' type-id='f9b06939' visibility='default' filepath='drivers/net/phy/phylink.c' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='supported' type-id='f05e8e77' visibility='default' filepath='drivers/net/phy/phylink.c' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='link_config' type-id='cd8ce92b' visibility='default' filepath='drivers/net/phy/phylink.c' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='cur_interface' type-id='d61bf978' visibility='default' filepath='drivers/net/phy/phylink.c' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='link_gpio' type-id='26760480' visibility='default' filepath='drivers/net/phy/phylink.c' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='link_irq' type-id='f0981eeb' visibility='default' filepath='drivers/net/phy/phylink.c' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='link_poll' type-id='abe41e67' visibility='default' filepath='drivers/net/phy/phylink.c' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='get_fixed_state' type-id='e27ac460' visibility='default' filepath='drivers/net/phy/phylink.c' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='state_mutex' type-id='925167dc' visibility='default' filepath='drivers/net/phy/phylink.c' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='phy_state' type-id='cd8ce92b' visibility='default' filepath='drivers/net/phy/phylink.c' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='resolve' type-id='ef9025d0' visibility='default' filepath='drivers/net/phy/phylink.c' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='mac_link_dropped' type-id='b50a4934' visibility='default' filepath='drivers/net/phy/phylink.c' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='sfp_bus' type-id='6daf6abd' visibility='default' filepath='drivers/net/phy/phylink.c' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='sfp_may_have_phy' type-id='b50a4934' visibility='default' filepath='drivers/net/phy/phylink.c' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='sfp_support' type-id='f05e8e77' visibility='default' filepath='drivers/net/phy/phylink.c' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='sfp_port' type-id='f9b06939' visibility='default' filepath='drivers/net/phy/phylink.c' line='81' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='kobject_action' filepath='include/linux/kobject.h' line='54' column='1' id='7d635811'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='KOBJ_ADD' value='0'/>
+        <enumerator name='KOBJ_REMOVE' value='1'/>
+        <enumerator name='KOBJ_CHANGE' value='2'/>
+        <enumerator name='KOBJ_MOVE' value='3'/>
+        <enumerator name='KOBJ_ONLINE' value='4'/>
+        <enumerator name='KOBJ_OFFLINE' value='5'/>
+        <enumerator name='KOBJ_BIND' value='6'/>
+        <enumerator name='KOBJ_UNBIND' value='7'/>
+      </enum-decl>
+      <pointer-type-def type-id='043f578c' size-in-bits='64' id='7d649fb6'/>
+      <pointer-type-def type-id='679f0c08' size-in-bits='64' id='7d671c0a'/>
+      <pointer-type-def type-id='6c09ca40' size-in-bits='64' id='7d69a4de'/>
+      <pointer-type-def type-id='7cdfe313' size-in-bits='64' id='7d71a706'/>
+      <pointer-type-def type-id='fc0d91e8' size-in-bits='64' id='7d78884e'/>
+      <typedef-decl name='U32' type-id='8f92235e' filepath='lib/zstd/mem.h' line='38' column='1' id='7d89f13e'/>
+      <class-decl name='dev_pm_qos' size-in-bits='2816' is-struct='yes' visibility='default' filepath='include/linux/pm_qos.h' line='118' column='1' id='7d93f824'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='resume_latency' type-id='4ad5b81b' visibility='default' filepath='include/linux/pm_qos.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='latency_tolerance' type-id='4ad5b81b' visibility='default' filepath='include/linux/pm_qos.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='freq' type-id='7ca99f8c' visibility='default' filepath='include/linux/pm_qos.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='flags' type-id='e0a9bd3c' visibility='default' filepath='include/linux/pm_qos.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='resume_latency_req' type-id='a80fd1bc' visibility='default' filepath='include/linux/pm_qos.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='latency_tolerance_req' type-id='a80fd1bc' visibility='default' filepath='include/linux/pm_qos.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='flags_req' type-id='a80fd1bc' visibility='default' filepath='include/linux/pm_qos.h' line='125' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='37c0f586' size-in-bits='64' id='7d9421ac'/>
+      <typedef-decl name='local64_t' type-id='7c5b29b9' filepath='include/asm-generic/local64.h' line='26' column='1' id='7da7300e'/>
+      <typedef-decl name='__sum16' type-id='d315442e' filepath='include/uapi/linux/types.h' line='36' column='1' id='7dac1e36'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/pfn.h' line='13' column='1' id='7dbec614' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='val' type-id='91ce1af9' visibility='default' filepath='include/linux/pfn.h' line='14' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='7dc28811'>
+        <parameter type-id='58ed56f5'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='0462c74a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ethtool_eeprom' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='345' column='1' id='7dc7ab8f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='magic' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='offset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='348' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data' type-id='167619f6' visibility='default' filepath='include/uapi/linux/ethtool.h' line='350' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fprop_global' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/flex_proportions.h' line='28' column='1' id='7dc82ec2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='events' type-id='b92c8d0d' visibility='default' filepath='include/linux/flex_proportions.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='period' type-id='f0981eeb' visibility='default' filepath='include/linux/flex_proportions.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='sequence' type-id='e14c3b11' visibility='default' filepath='include/linux/flex_proportions.h' line='34' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fs_struct' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/fs_struct.h' line='9' column='1' id='7dc87302'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='users' type-id='95e97e5e' visibility='default' filepath='include/linux/fs_struct.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/fs_struct.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='seq' type-id='0b9c5397' visibility='default' filepath='include/linux/fs_struct.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='umask' type-id='95e97e5e' visibility='default' filepath='include/linux/fs_struct.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='in_exec' type-id='95e97e5e' visibility='default' filepath='include/linux/fs_struct.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='root' type-id='b5382ece' visibility='default' filepath='include/linux/fs_struct.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='pwd' type-id='b5382ece' visibility='default' filepath='include/linux/fs_struct.h' line='15' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='7dccafaf'>
+        <parameter type-id='c60ba652'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='7dd771e0'>
+        <parameter type-id='9a537bbe'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='usb_tt' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/usb/hcd.h' line='583' column='1' id='7dda8bf2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hub' type-id='25e60cb2' visibility='default' filepath='include/linux/usb/hcd.h' line='584' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='multi' type-id='95e97e5e' visibility='default' filepath='include/linux/usb/hcd.h' line='585' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='think_time' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/hcd.h' line='586' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hcpriv' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb/hcd.h' line='587' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/usb/hcd.h' line='590' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='clear_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb/hcd.h' line='591' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='clear_work' type-id='ef9025d0' visibility='default' filepath='include/linux/usb/hcd.h' line='592' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/hcd.h' line='594' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/hcd.h' line='595' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/hcd.h' line='596' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/hcd.h' line='597' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0181b08d' size-in-bits='64' id='7df445b9'/>
+      <function-type size-in-bits='64' id='7df55081'>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='b59d7dce'/>
+      </function-type>
+      <class-decl name='msi_domain_info' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/msi.h' line='366' column='1' id='7df9052a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/linux/msi.h' line='367' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ops' type-id='adccc7b0' visibility='default' filepath='include/linux/msi.h' line='368' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='chip' type-id='8846a616' visibility='default' filepath='include/linux/msi.h' line='369' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='chip_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/msi.h' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='handler' type-id='cdb741d3' visibility='default' filepath='include/linux/msi.h' line='371' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='handler_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/msi.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='handler_name' type-id='80f4b756' visibility='default' filepath='include/linux/msi.h' line='373' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/msi.h' line='374' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='7dfcb6b6'>
+        <parameter type-id='f89a51ed'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='3df9fd28'/>
+        <parameter type-id='3df9fd28'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='regulator_dev' size-in-bits='11008' is-struct='yes' visibility='default' filepath='include/linux/regulator/driver.h' line='608' column='1' id='7dfdcc84'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='desc' type-id='5629bd41' visibility='default' filepath='include/linux/regulator/driver.h' line='609' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='exclusive' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/driver.h' line='610' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='use_count' type-id='19c2251e' visibility='default' filepath='include/linux/regulator/driver.h' line='611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='open_count' type-id='19c2251e' visibility='default' filepath='include/linux/regulator/driver.h' line='612' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='bypass_count' type-id='19c2251e' visibility='default' filepath='include/linux/regulator/driver.h' line='613' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/regulator/driver.h' line='616' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='consumer_list' type-id='72f469ec' visibility='default' filepath='include/linux/regulator/driver.h' line='619' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='coupling_desc' type-id='3ce445fe' visibility='default' filepath='include/linux/regulator/driver.h' line='621' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='notifier' type-id='708c2394' visibility='default' filepath='include/linux/regulator/driver.h' line='623' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='mutex' type-id='45793a97' visibility='default' filepath='include/linux/regulator/driver.h' line='624' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='mutex_owner' type-id='f23e2572' visibility='default' filepath='include/linux/regulator/driver.h' line='625' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='ref_cnt' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/driver.h' line='626' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/regulator/driver.h' line='627' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/regulator/driver.h' line='628' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9152'>
+          <var-decl name='constraints' type-id='2fed99fc' visibility='default' filepath='include/linux/regulator/driver.h' line='629' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9216'>
+          <var-decl name='supply' type-id='850c13f6' visibility='default' filepath='include/linux/regulator/driver.h' line='630' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9280'>
+          <var-decl name='supply_name' type-id='80f4b756' visibility='default' filepath='include/linux/regulator/driver.h' line='631' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='regmap' type-id='29af9a71' visibility='default' filepath='include/linux/regulator/driver.h' line='632' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9408'>
+          <var-decl name='disable_work' type-id='5ad6e0ef' visibility='default' filepath='include/linux/regulator/driver.h' line='634' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10496'>
+          <var-decl name='reg_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/regulator/driver.h' line='636' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10560'>
+          <var-decl name='debugfs' type-id='27675065' visibility='default' filepath='include/linux/regulator/driver.h' line='638' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10624'>
+          <var-decl name='ena_pin' type-id='6045f216' visibility='default' filepath='include/linux/regulator/driver.h' line='640' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10688'>
+          <var-decl name='ena_gpio_state' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='641' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10689'>
+          <var-decl name='is_switch' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/driver.h' line='643' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10752'>
+          <var-decl name='last_off' type-id='fbc017ef' visibility='default' filepath='include/linux/regulator/driver.h' line='646' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10816'>
+          <var-decl name='cached_err' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/driver.h' line='647' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10848'>
+          <var-decl name='use_cached_err' type-id='b50a4934' visibility='default' filepath='include/linux/regulator/driver.h' line='648' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10880'>
+          <var-decl name='err_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/regulator/driver.h' line='649' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10944'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/regulator/driver.h' line='651' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c551f1b5' size-in-bits='64' id='7dfe7cd1'/>
+      <class-decl name='file_operations' size-in-bits='2304' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2057' column='1' id='7dffcde2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/fs.h' line='2058' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='llseek' type-id='07ebb4cd' visibility='default' filepath='include/linux/fs.h' line='2059' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='read' type-id='4d8f5625' visibility='default' filepath='include/linux/fs.h' line='2060' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='write' type-id='5f29549c' visibility='default' filepath='include/linux/fs.h' line='2061' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='read_iter' type-id='227e209d' visibility='default' filepath='include/linux/fs.h' line='2062' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='write_iter' type-id='227e209d' visibility='default' filepath='include/linux/fs.h' line='2063' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='iopoll' type-id='6c4618be' visibility='default' filepath='include/linux/fs.h' line='2064' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='iterate' type-id='42beb73a' visibility='default' filepath='include/linux/fs.h' line='2065' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='iterate_shared' type-id='42beb73a' visibility='default' filepath='include/linux/fs.h' line='2066' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='poll' type-id='4d01ede7' visibility='default' filepath='include/linux/fs.h' line='2067' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='unlocked_ioctl' type-id='fc7daf55' visibility='default' filepath='include/linux/fs.h' line='2068' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='compat_ioctl' type-id='fc7daf55' visibility='default' filepath='include/linux/fs.h' line='2069' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='mmap' type-id='8ea2626c' visibility='default' filepath='include/linux/fs.h' line='2070' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='mmap_supported_flags' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='2071' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='open' type-id='47800058' visibility='default' filepath='include/linux/fs.h' line='2072' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='flush' type-id='5ddef2dd' visibility='default' filepath='include/linux/fs.h' line='2073' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='release' type-id='47800058' visibility='default' filepath='include/linux/fs.h' line='2074' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='fsync' type-id='31cc9254' visibility='default' filepath='include/linux/fs.h' line='2075' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='fasync' type-id='b94ac371' visibility='default' filepath='include/linux/fs.h' line='2076' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='lock' type-id='12f0ff82' visibility='default' filepath='include/linux/fs.h' line='2077' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='sendpage' type-id='40da47a8' visibility='default' filepath='include/linux/fs.h' line='2078' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='get_unmapped_area' type-id='d44a8cec' visibility='default' filepath='include/linux/fs.h' line='2079' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='check_flags' type-id='7f416e10' visibility='default' filepath='include/linux/fs.h' line='2080' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='flock' type-id='12f0ff82' visibility='default' filepath='include/linux/fs.h' line='2081' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='splice_write' type-id='b22f4610' visibility='default' filepath='include/linux/fs.h' line='2082' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='splice_read' type-id='72cd68b0' visibility='default' filepath='include/linux/fs.h' line='2083' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='setlease' type-id='87e3d3e2' visibility='default' filepath='include/linux/fs.h' line='2084' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='fallocate' type-id='a53e2328' visibility='default' filepath='include/linux/fs.h' line='2085' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='show_fdinfo' type-id='eda08098' visibility='default' filepath='include/linux/fs.h' line='2087' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='copy_file_range' type-id='d0882d6b' visibility='default' filepath='include/linux/fs.h' line='2091' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='remap_file_range' type-id='c1de1086' visibility='default' filepath='include/linux/fs.h' line='2093' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='fadvise' type-id='31cc9254' visibility='default' filepath='include/linux/fs.h' line='2096' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2098' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2099' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2101' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='7e019027'>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='99baf115'/>
+        <parameter type-id='1c936db9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='bb068c9f' size-in-bits='64' id='7e01f3db'/>
+      <pointer-type-def type-id='f92f0413' size-in-bits='64' id='7e03a5bb'/>
+      <class-decl name='binder_stats' size-in-bits='1696' is-struct='yes' visibility='default' filepath='drivers/android/binder_internal.h' line='135' column='1' id='7e06c299'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='br' type-id='157c59dd' visibility='default' filepath='drivers/android/binder_internal.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='bc' type-id='a8f65929' visibility='default' filepath='drivers/android/binder_internal.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='obj_created' type-id='6ee1b7b8' visibility='default' filepath='drivers/android/binder_internal.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='obj_deleted' type-id='6ee1b7b8' visibility='default' filepath='drivers/android/binder_internal.h' line='139' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7f15b08a' size-in-bits='64' id='7e1d5dd4'/>
+      <class-decl name='tty_port' size-in-bits='3392' is-struct='yes' visibility='default' filepath='include/linux/tty_port.h' line='54' column='1' id='7e1e521a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='buf' type-id='6b1bde38' visibility='default' filepath='include/linux/tty_port.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='tty' type-id='572fbdca' visibility='default' filepath='include/linux/tty_port.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='itty' type-id='572fbdca' visibility='default' filepath='include/linux/tty_port.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='ops' type-id='103756a0' visibility='default' filepath='include/linux/tty_port.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='client_ops' type-id='8cd9dbc0' visibility='default' filepath='include/linux/tty_port.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/tty_port.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1632'>
+          <var-decl name='blocked_open' type-id='95e97e5e' visibility='default' filepath='include/linux/tty_port.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='count' type-id='95e97e5e' visibility='default' filepath='include/linux/tty_port.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='open_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/tty_port.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='delta_msr_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/tty_port.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/tty_port.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='iflags' type-id='7359adad' visibility='default' filepath='include/linux/tty_port.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='console' type-id='002ac4a6' visibility='default' filepath='include/linux/tty_port.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='include/linux/tty_port.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='buf_mutex' type-id='925167dc' visibility='default' filepath='include/linux/tty_port.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='xmit_buf' type-id='cf536864' visibility='default' filepath='include/linux/tty_port.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='close_delay' type-id='f0981eeb' visibility='default' filepath='include/linux/tty_port.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3168'>
+          <var-decl name='closing_wait' type-id='f0981eeb' visibility='default' filepath='include/linux/tty_port.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='drain_delay' type-id='95e97e5e' visibility='default' filepath='include/linux/tty_port.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3232'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='include/linux/tty_port.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='client_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/tty_port.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/tty_port.h' line='79' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='7e1ff049'>
+        <parameter type-id='247dd85c'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='b6c1136f' size-in-bits='64' id='7e20177b'/>
+      <typedef-decl name='__uint128_t' type-id='4f340252' id='7e2609cc'/>
+      <typedef-decl name='ZSTD_DDict' type-id='8ab6c8df' filepath='include/linux/zstd.h' line='421' column='1' id='7e283a70'/>
+      <function-type size-in-bits='64' id='7e2beda2'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='7e2e2485'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='3c330066'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='mipi_dsi_packet' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='56' column='1' id='7e369584'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='header' type-id='931565be' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='payload_length' type-id='b59d7dce' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='payload' type-id='bbaf3419' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='60' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='__pad_after_uframe' type-id='e84913bd' filepath='include/uapi/sound/asound.h' line='566' column='1' id='7e3959e3'/>
+      <class-decl name='pstore_record' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/pstore.h' line='69' column='1' id='7e3ce2c4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='psi' type-id='54ec2a4d' visibility='default' filepath='include/linux/pstore.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='type' type-id='164fc982' visibility='default' filepath='include/linux/pstore.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='id' type-id='91ce1af9' visibility='default' filepath='include/linux/pstore.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='time' type-id='40a816ad' visibility='default' filepath='include/linux/pstore.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='buf' type-id='26a90f95' visibility='default' filepath='include/linux/pstore.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='size' type-id='79a0948f' visibility='default' filepath='include/linux/pstore.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ecc_notice_size' type-id='79a0948f' visibility='default' filepath='include/linux/pstore.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='count' type-id='95e97e5e' visibility='default' filepath='include/linux/pstore.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='reason' type-id='48f4c0e2' visibility='default' filepath='include/linux/pstore.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='part' type-id='f0981eeb' visibility='default' filepath='include/linux/pstore.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='compressed' type-id='b50a4934' visibility='default' filepath='include/linux/pstore.h' line='81' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='of_pci_range' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/of_address.h' line='23' column='1' id='7e3d05b5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab60c' visibility='default' filepath='include/linux/of_address.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cpu_addr' type-id='91ce1af9' visibility='default' filepath='include/linux/of_address.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='size' type-id='91ce1af9' visibility='default' filepath='include/linux/of_address.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/linux/of_address.h' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mq_attr' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/uapi/linux/mqueue.h' line='28' column='1' id='7e411fe7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mq_flags' type-id='6a11bd61' visibility='default' filepath='include/uapi/linux/mqueue.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mq_maxmsg' type-id='6a11bd61' visibility='default' filepath='include/uapi/linux/mqueue.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mq_msgsize' type-id='6a11bd61' visibility='default' filepath='include/uapi/linux/mqueue.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mq_curmsgs' type-id='6a11bd61' visibility='default' filepath='include/uapi/linux/mqueue.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='__reserved' type-id='d8aa8ab0' visibility='default' filepath='include/uapi/linux/mqueue.h' line='33' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0d01392b' size-in-bits='64' id='7e4306d7'/>
+      <class-decl name='snd_mask' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='408' column='1' id='7e480899'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bits' type-id='7f84eb57' visibility='default' filepath='include/uapi/sound/asound.h' line='409' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='7e4a9bc8'>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='a69af780'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='scsi_device_state' filepath='include/scsi/scsi_device.h' line='39' column='1' id='7e4b2e83'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SDEV_CREATED' value='1'/>
+        <enumerator name='SDEV_RUNNING' value='2'/>
+        <enumerator name='SDEV_CANCEL' value='3'/>
+        <enumerator name='SDEV_DEL' value='4'/>
+        <enumerator name='SDEV_QUIESCE' value='5'/>
+        <enumerator name='SDEV_OFFLINE' value='6'/>
+        <enumerator name='SDEV_TRANSPORT_OFFLINE' value='7'/>
+        <enumerator name='SDEV_BLOCK' value='8'/>
+        <enumerator name='SDEV_CREATED_BLOCK' value='9'/>
+      </enum-decl>
+      <array-type-def dimensions='3' type-id='72f469ec' size-in-bits='3072' id='7e4de83f'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='7e55d788'>
+        <parameter type-id='0dc3586b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='a66ce823' size-in-bits='64' id='7e5b15cf'/>
+      <pointer-type-def type-id='d7741e39' size-in-bits='64' id='7e5b379d'/>
+      <function-type size-in-bits='64' id='7e5bb1dd'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='6e5d2bdc' const='yes' id='7e5d36fb'/>
+      <function-type size-in-bits='64' id='7e5de8f5'>
+        <parameter type-id='e68e04c1'/>
+        <parameter type-id='4adb0e6a'/>
+        <parameter type-id='eea6b025'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='605b61bb' const='yes' id='7e64e4b4'/>
+      <function-type size-in-bits='64' id='7e6588d9'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='c484cc9e'/>
+        <parameter type-id='2168a3eb'/>
+        <parameter type-id='acd96ee1'/>
+        <return type-id='26a90f95'/>
+      </function-type>
+      <pointer-type-def type-id='fe070fe8' size-in-bits='64' id='7e666abe'/>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='256' id='7e67d89d'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <pointer-type-def type-id='0fa06c89' size-in-bits='64' id='7e69f315'/>
+      <pointer-type-def type-id='437aead6' size-in-bits='64' id='7e6d7408'/>
+      <enum-decl name='usb_dev_authorize_policy' filepath='include/linux/usb/hcd.h' line='76' column='1' id='7e6e640d'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='USB_DEVICE_AUTHORIZE_NONE' value='0'/>
+        <enumerator name='USB_DEVICE_AUTHORIZE_ALL' value='1'/>
+        <enumerator name='USB_DEVICE_AUTHORIZE_INTERNAL' value='2'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='7e765fce'>
+        <parameter type-id='7544e824'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='88370ce9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='v4l2_async_notifier' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/media/v4l2-async.h' line='107' column='1' id='7e833f79'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='17c9f4a9' visibility='default' filepath='include/media/v4l2-async.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='v4l2_dev' type-id='ddfb71fa' visibility='default' filepath='include/media/v4l2-async.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sd' type-id='f5438ac7' visibility='default' filepath='include/media/v4l2-async.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='parent' type-id='e1a56841' visibility='default' filepath='include/media/v4l2-async.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='asd_list' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-async.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='waiting' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-async.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='done' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-async.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-async.h' line='115' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='7e8ddfae'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='27675065'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='2594b00f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='pci_bus' size-in-bits='10304' is-struct='yes' visibility='default' filepath='include/linux/pci.h' line='636' column='1' id='7e8e008e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/pci.h' line='637' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='parent' type-id='d1feb554' visibility='default' filepath='include/linux/pci.h' line='638' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='children' type-id='72f469ec' visibility='default' filepath='include/linux/pci.h' line='639' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='devices' type-id='72f469ec' visibility='default' filepath='include/linux/pci.h' line='640' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='self' type-id='85196e3f' visibility='default' filepath='include/linux/pci.h' line='641' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='slots' type-id='72f469ec' visibility='default' filepath='include/linux/pci.h' line='642' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='resource' type-id='774e8b2d' visibility='default' filepath='include/linux/pci.h' line='644' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='resources' type-id='72f469ec' visibility='default' filepath='include/linux/pci.h' line='645' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='busn_res' type-id='5218160d' visibility='default' filepath='include/linux/pci.h' line='646' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='ops' type-id='2058826a' visibility='default' filepath='include/linux/pci.h' line='648' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='sysdata' type-id='eaa32e2f' visibility='default' filepath='include/linux/pci.h' line='649' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='procdir' type-id='d077e928' visibility='default' filepath='include/linux/pci.h' line='650' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='number' type-id='002ac4a6' visibility='default' filepath='include/linux/pci.h' line='652' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1992'>
+          <var-decl name='primary' type-id='002ac4a6' visibility='default' filepath='include/linux/pci.h' line='653' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2000'>
+          <var-decl name='max_bus_speed' type-id='002ac4a6' visibility='default' filepath='include/linux/pci.h' line='654' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2008'>
+          <var-decl name='cur_bus_speed' type-id='002ac4a6' visibility='default' filepath='include/linux/pci.h' line='655' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2016'>
+          <var-decl name='domain_nr' type-id='95e97e5e' visibility='default' filepath='include/linux/pci.h' line='657' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='name' type-id='36d7f119' visibility='default' filepath='include/linux/pci.h' line='660' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='bridge_ctl' type-id='8efea9e5' visibility='default' filepath='include/linux/pci.h' line='662' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2448'>
+          <var-decl name='bus_flags' type-id='757fc982' visibility='default' filepath='include/linux/pci.h' line='663' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='bridge' type-id='fa0b179b' visibility='default' filepath='include/linux/pci.h' line='664' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/pci.h' line='665' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9856'>
+          <var-decl name='legacy_io' type-id='c0e2acc9' visibility='default' filepath='include/linux/pci.h' line='666' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9920'>
+          <var-decl name='legacy_mem' type-id='c0e2acc9' visibility='default' filepath='include/linux/pci.h' line='667' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9984'>
+          <var-decl name='is_added' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='668' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9985'>
+          <var-decl name='unsafe_warn' type-id='f0981eeb' visibility='default' filepath='include/linux/pci.h' line='669' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10048'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/pci.h' line='671' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10112'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/pci.h' line='672' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10176'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/pci.h' line='673' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10240'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/pci.h' line='674' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='mode_set_atomic' is-declaration-only='yes' id='7e90344c'>
+        <underlying-type type-id='52ba91e1'/>
+      </enum-decl>
+      <pointer-type-def type-id='dba44491' size-in-bits='64' id='7e983261'/>
+      <pointer-type-def type-id='220a92c2' size-in-bits='64' id='7ea54338'/>
+      <typedef-decl name='__kernel_clockid_t' type-id='95e97e5e' filepath='include/uapi/asm-generic/posix_types.h' line='96' column='1' id='7eb128d4'/>
+      <qualified-type-def type-id='1abb753c' const='yes' id='7ebd0011'/>
+      <function-type size-in-bits='64' id='7ebd7dab'>
+        <parameter type-id='855e3679'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='f69b84e9' const='yes' id='7ebeca6e'/>
+      <function-type size-in-bits='64' id='7ec07336'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='07b9ee34'/>
+        <parameter type-id='26bebc56'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='bpf_tramp_image' size-in-bits='2432' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='715' column='1' id='7ec1f60a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='image' type-id='eaa32e2f' visibility='default' filepath='include/linux/bpf.h' line='716' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ksym' type-id='466449bc' visibility='default' filepath='include/linux/bpf.h' line='717' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='pcref' type-id='818799b4' visibility='default' filepath='include/linux/bpf.h' line='718' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='ip_after_call' type-id='eaa32e2f' visibility='default' filepath='include/linux/bpf.h' line='719' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='ip_epilogue' type-id='eaa32e2f' visibility='default' filepath='include/linux/bpf.h' line='720' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='' type-id='ac5ab66c' visibility='default' filepath='include/linux/bpf.h' line='721' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='7ec379e7'>
+        <parameter type-id='85535682'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='v4l2_ctrl_notify_fnc' type-id='af2775f4' filepath='include/media/v4l2-ctrls.h' line='161' column='1' id='7ec3cb1e'/>
+      <pointer-type-def type-id='d3fc5c05' size-in-bits='64' id='7ec53559'/>
+      <class-decl name='mdio_driver_common' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/linux/mdio.h' line='59' column='1' id='7eda6831'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/mdio.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/linux/mdio.h' line='61' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='flow_dissector_key_eth_addrs' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/net/flow_dissector.h' line='200' column='1' id='7edf1df7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dst' type-id='4cfa781a' visibility='default' filepath='include/net/flow_dissector.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='src' type-id='4cfa781a' visibility='default' filepath='include/net/flow_dissector.h' line='203' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='7ee67639'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='0dbd43cd' size-in-bits='64' id='7ee8ef4d'/>
+      <class-decl name='ep_device' is-struct='yes' visibility='default' is-declaration-only='yes' id='7eea96b3'/>
+      <pointer-type-def type-id='d86a6269' size-in-bits='64' id='7eeb4265'/>
+      <pointer-type-def type-id='ba66f720' size-in-bits='64' id='7ef1b01a'/>
+      <pointer-type-def type-id='0639fb3e' size-in-bits='64' id='7ef3bbb0'/>
+      <pointer-type-def type-id='7c1f8187' size-in-bits='64' id='7efbcaaf'/>
+      <function-type size-in-bits='64' id='7f00154c'>
+        <parameter type-id='7a29ff27'/>
+        <parameter type-id='26a90f95'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <class-decl name='sdio_cccr' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/mmc/card.h' line='215' column='1' id='7f07e508'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sdio_vsn' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='sd_vsn' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='multi_block' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='65'>
+          <var-decl name='low_speed' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='66'>
+          <var-decl name='wide_bus' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='67'>
+          <var-decl name='high_power' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='68'>
+          <var-decl name='high_speed' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='69'>
+          <var-decl name='disable_cd' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='223' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='44dd8636' size-in-bits='64' id='7f0caae8'/>
+      <pointer-type-def type-id='da1095b6' size-in-bits='64' id='7f0eb64c'/>
+      <array-type-def dimensions='1' type-id='84a5c3d4' size-in-bits='128' id='7f112b69'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='7f15b08a'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='be79b65f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='xhci_port' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1745' column='1' id='7f16b755'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='3e77f659' visibility='default' filepath='drivers/usb/host/xhci.h' line='1746' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hw_portnum' type-id='95e97e5e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1747' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='hcd_portnum' type-id='95e97e5e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1748' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rhub' type-id='c39cf839' visibility='default' filepath='drivers/usb/host/xhci.h' line='1749' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='port_cap' type-id='aae3718c' visibility='default' filepath='drivers/usb/host/xhci.h' line='1750' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='8e5ae04f' const='yes' id='7f2104b8'/>
+      <class-decl name='linux_xfrm_mib' size-in-bits='1856' is-struct='yes' visibility='default' filepath='include/net/snmp.h' line='110' column='1' id='7f2c5e96'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mibs' type-id='4fbdefa2' visibility='default' filepath='include/net/snmp.h' line='111' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='35ff1d34' size-in-bits='64' id='7f2f8862'/>
+      <class-decl name='nf_ip_net' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/net/netns/conntrack.h' line='79' column='1' id='7f3015f3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='generic' type-id='80487c53' visibility='default' filepath='include/net/netns/conntrack.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='tcp' type-id='a2e01929' visibility='default' filepath='include/net/netns/conntrack.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='udp' type-id='328aff41' visibility='default' filepath='include/net/netns/conntrack.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='icmp' type-id='8cc9c55b' visibility='default' filepath='include/net/netns/conntrack.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='icmpv6' type-id='8cc9c55b' visibility='default' filepath='include/net/netns/conntrack.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='dccp' type-id='ddb2f0ec' visibility='default' filepath='include/net/netns/conntrack.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='sctp' type-id='c91839d0' visibility='default' filepath='include/net/netns/conntrack.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='gre' type-id='ef266e4a' visibility='default' filepath='include/net/netns/conntrack.h' line='92' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='qdisc_walker' is-struct='yes' visibility='default' is-declaration-only='yes' id='7f36a7f0'/>
+      <typedef-decl name='pn_t' type-id='1b1f0e7e' filepath='include/net/macsec.h' line='44' column='1' id='7f3c6675'/>
+      <class-decl name='cgroup_subsys_state' size-in-bits='1856' is-struct='yes' visibility='default' filepath='include/linux/cgroup-defs.h' line='142' column='1' id='7f3df443'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cgroup' type-id='46ff135d' visibility='default' filepath='include/linux/cgroup-defs.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ss' type-id='dc91d125' visibility='default' filepath='include/linux/cgroup-defs.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='refcnt' type-id='818799b4' visibility='default' filepath='include/linux/cgroup-defs.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='sibling' type-id='72f469ec' visibility='default' filepath='include/linux/cgroup-defs.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='children' type-id='72f469ec' visibility='default' filepath='include/linux/cgroup-defs.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='rstat_css_node' type-id='72f469ec' visibility='default' filepath='include/linux/cgroup-defs.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/cgroup-defs.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/cgroup-defs.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='serial_nr' type-id='91ce1af9' visibility='default' filepath='include/linux/cgroup-defs.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='online_cnt' type-id='49178f86' visibility='default' filepath='include/linux/cgroup-defs.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='destroy_work' type-id='ef9025d0' visibility='default' filepath='include/linux/cgroup-defs.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='destroy_rwork' type-id='7c0b9fdb' visibility='default' filepath='include/linux/cgroup-defs.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='parent' type-id='cfff5953' visibility='default' filepath='include/linux/cgroup-defs.h' line='189' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='7f3ed7a2'>
+        <parameter type-id='352b95f6'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='7f416417'>
+        <parameter type-id='fc4f83c1'/>
+        <parameter type-id='26a90f95'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9b634486' size-in-bits='64' id='7f416e10'/>
+      <class-decl name='xsk_queue' size-in-bits='320' is-struct='yes' visibility='default' filepath='net/xdp/xsk_queue.h' line='40' column='1' id='7f424251'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ring_mask' type-id='19c2251e' visibility='default' filepath='net/xdp/xsk_queue.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='nentries' type-id='19c2251e' visibility='default' filepath='net/xdp/xsk_queue.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cached_prod' type-id='19c2251e' visibility='default' filepath='net/xdp/xsk_queue.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='cached_cons' type-id='19c2251e' visibility='default' filepath='net/xdp/xsk_queue.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ring' type-id='ff845194' visibility='default' filepath='net/xdp/xsk_queue.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='invalid_descs' type-id='91ce1af9' visibility='default' filepath='net/xdp/xsk_queue.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='queue_empty_descs' type-id='91ce1af9' visibility='default' filepath='net/xdp/xsk_queue.h' line='47' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='7f43b3fb'>
+        <parameter type-id='307d4a12'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='1024' id='7f475abd'>
+        <subrange length='128' type-id='7ff19f0f' id='1eb1687a'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='7f4a5e53'>
+        <parameter type-id='141b6427'/>
+        <parameter type-id='3f1a6b60'/>
+        <return type-id='141b6427'/>
+      </function-type>
+      <pointer-type-def type-id='09c8759c' size-in-bits='64' id='7f5be7f6'/>
+      <qualified-type-def type-id='f2b4d088' const='yes' id='7f60130d'/>
+      <pointer-type-def type-id='6ff24cfe' size-in-bits='64' id='7f607a84'/>
+      <pointer-type-def type-id='daf63770' size-in-bits='64' id='7f6ac72a'/>
+      <pointer-type-def type-id='03ba410a' size-in-bits='64' id='7f6ae768'/>
+      <pointer-type-def type-id='7ca0f14f' size-in-bits='64' id='7f6fd29b'/>
+      <function-type size-in-bits='64' id='7f73c08c'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='745b39e8'/>
+        <parameter type-id='11e02f83'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <function-type size-in-bits='64' id='7f779b3f'>
+        <parameter type-id='3e31633b'/>
+        <parameter type-id='113aadc2'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='e6a2a878' size-in-bits='64' id='7f79f20e'/>
+      <array-type-def dimensions='1' type-id='3f1a6b60' size-in-bits='256' id='7f84eb57'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <typedef-decl name='__builtin_va_list' type-id='5f919c1f' id='7f896fb4'/>
+      <array-type-def dimensions='2' type-id='8f048e17' size-in-bits='192' id='7f89db3f'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='7f8cc66d'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='cb1156c4'/>
+        <return type-id='bd54fe1a'/>
+      </function-type>
+      <enum-decl name='fs_value_type' filepath='include/linux/fs_context.h' line='51' column='1' id='7f8e7476'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='fs_value_is_undefined' value='0'/>
+        <enumerator name='fs_value_is_flag' value='1'/>
+        <enumerator name='fs_value_is_string' value='2'/>
+        <enumerator name='fs_value_is_blob' value='3'/>
+        <enumerator name='fs_value_is_filename' value='4'/>
+        <enumerator name='fs_value_is_file' value='5'/>
+      </enum-decl>
+      <class-decl name='drm_dp_mst_port' size-in-bits='13440' is-struct='yes' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='98' column='1' id='7f985fda'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='topology_kref' type-id='400fb07b' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='malloc_kref' type-id='400fb07b' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='port_num' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='input' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='mcs' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='ddps' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='pdt' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='ldps' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='dpcd_rev' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='num_sdp_streams' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='num_sdp_stream_sinks' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='full_pbn' type-id='149c6638' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='next' type-id='72f469ec' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mstb' type-id='7bc9d2d9' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='aux' type-id='b2983aea' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12992'>
+          <var-decl name='parent' type-id='7bc9d2d9' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13056'>
+          <var-decl name='vcpi' type-id='e1653094' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13184'>
+          <var-decl name='connector' type-id='4db02c58' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13248'>
+          <var-decl name='mgr' type-id='88a6d23d' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13312'>
+          <var-decl name='cached_edid' type-id='c91d1bf1' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13376'>
+          <var-decl name='has_audio' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13384'>
+          <var-decl name='fec_capable' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='164' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ed7ee6ab' size-in-bits='64' id='7f9b4c1b'/>
+      <qualified-type-def type-id='89303496' const='yes' id='7f9fdab3'/>
+      <pointer-type-def type-id='c2f3c8c7' size-in-bits='64' id='7f9fdb63'/>
+      <function-type size-in-bits='64' id='7fa2fd91'>
+        <parameter type-id='3e31633b'/>
+        <parameter type-id='49e46a4d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='ca8c1528' size-in-bits='64' id='7fa32aba'/>
+      <function-type size-in-bits='64' id='7fa63f43'>
+        <parameter type-id='10216dc5'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='80f4b756'/>
+      </function-type>
+      <enum-decl name='trace_reg' filepath='include/linux/trace_events.h' line='239' column='1' id='7fa6eeb8'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='TRACE_REG_REGISTER' value='0'/>
+        <enumerator name='TRACE_REG_UNREGISTER' value='1'/>
+        <enumerator name='TRACE_REG_PERF_REGISTER' value='2'/>
+        <enumerator name='TRACE_REG_PERF_UNREGISTER' value='3'/>
+        <enumerator name='TRACE_REG_PERF_OPEN' value='4'/>
+        <enumerator name='TRACE_REG_PERF_CLOSE' value='5'/>
+        <enumerator name='TRACE_REG_PERF_ADD' value='6'/>
+        <enumerator name='TRACE_REG_PERF_DEL' value='7'/>
+      </enum-decl>
+      <pointer-type-def type-id='a818b7a0' size-in-bits='64' id='7fa79446'/>
+      <qualified-type-def type-id='ac12d63f' const='yes' id='7fb3a80c'/>
+      <function-type size-in-bits='64' id='7fb3af70'>
+        <parameter type-id='503ff1ba'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='7fb4efa5'>
+        <parameter type-id='3aaeef89'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='1d2c2b85'/>
+        <return type-id='bd54fe1a'/>
+      </function-type>
+      <pointer-type-def type-id='0ebe5367' size-in-bits='64' id='7fc43753'/>
+      <pointer-type-def type-id='d7413fe5' size-in-bits='64' id='7fc5dc19'/>
+      <function-type size-in-bits='64' id='7fd43619'>
+        <parameter type-id='2feec21f'/>
+        <parameter type-id='1d2c2b85'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='data_chunk' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/dmaengine.h' line='126' column='1' id='7fdcd183'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='include/linux/dmaengine.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='icg' type-id='b59d7dce' visibility='default' filepath='include/linux/dmaengine.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dst_icg' type-id='b59d7dce' visibility='default' filepath='include/linux/dmaengine.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='src_icg' type-id='b59d7dce' visibility='default' filepath='include/linux/dmaengine.h' line='130' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='7fdfc457'>
+        <parameter type-id='2661e0d9'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='8c2bf2b2' size-in-bits='64' id='7fe42640'/>
+      <class-decl name='regulator_state' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/regulator/machine.h' line='77' column='1' id='7fe6815e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='uV' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/machine.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='min_uV' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/machine.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max_uV' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/machine.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='mode' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='enabled' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/machine.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='changeable' type-id='b50a4934' visibility='default' filepath='include/linux/regulator/machine.h' line='83' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mfd_cell_acpi_match' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/mfd/core.h' line='56' column='1' id='7fe6c639'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pnpid' type-id='80f4b756' visibility='default' filepath='include/linux/mfd/core.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='adr' type-id='cff84192' visibility='default' filepath='include/linux/mfd/core.h' line='58' column='1'/>
+        </data-member>
+      </class-decl>
+      <type-decl name='__ARRAY_SIZE_TYPE__' size-in-bits='64' id='7ff19f0f'/>
+      <function-type size-in-bits='64' id='7ff67237'>
+        <parameter type-id='118327e3'/>
+        <parameter type-id='fea9c20b'/>
+        <parameter type-id='fea9c20b'/>
+        <return type-id='19c2251e'/>
+      </function-type>
+      <class-decl name='usb_ep' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/usb/gadget.h' line='230' column='1' id='8005701f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb/gadget.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/usb/gadget.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ops' type-id='ea2a1f7d' visibility='default' filepath='include/linux/usb/gadget.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ep_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb/gadget.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='caps' type-id='14d94f61' visibility='default' filepath='include/linux/usb/gadget.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='claimed' type-id='b50a4934' visibility='default' filepath='include/linux/usb/gadget.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='360'>
+          <var-decl name='enabled' type-id='b50a4934' visibility='default' filepath='include/linux/usb/gadget.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='368'>
+          <var-decl name='maxpacket' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='maxpacket_limit' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='400'>
+          <var-decl name='max_streams' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='mult' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='242' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='418'>
+          <var-decl name='maxburst' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='424'>
+          <var-decl name='address' type-id='f9b06939' visibility='default' filepath='include/linux/usb/gadget.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='desc' type-id='428819c0' visibility='default' filepath='include/linux/usb/gadget.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='comp_desc' type-id='c6228d99' visibility='default' filepath='include/linux/usb/gadget.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/gadget.h' line='248' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_vram_mm' is-struct='yes' visibility='default' is-declaration-only='yes' id='8008efb8'/>
+      <pointer-type-def type-id='31e7d828' size-in-bits='64' id='800c67c2'/>
+      <function-type size-in-bits='64' id='800ed759'>
+        <parameter type-id='7b332e1c'/>
+        <parameter type-id='9e99ecc1'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='254852de'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='cfg80211_wowlan' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='3487' column='1' id='80126e32'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='any' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='disconnect' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='magic_pkt' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='gtk_rekey_failure' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='eap_identity_req' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='four_way_handshake' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='rfkill_release' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='patterns' type-id='1ed3660c' visibility='default' filepath='include/net/cfg80211.h' line='3491' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tcp' type-id='e0c1c1b8' visibility='default' filepath='include/net/cfg80211.h' line='3492' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='n_patterns' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3493' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='nd_config' type-id='9e4995c7' visibility='default' filepath='include/net/cfg80211.h' line='3494' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d430d6a9' size-in-bits='64' id='801bfa75'/>
+      <function-type size-in-bits='64' id='802097e5'>
+        <parameter type-id='15b1f129'/>
+        <parameter type-id='c2132904'/>
+        <parameter type-id='d7f1fb72'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='8029c9e0'>
+        <parameter type-id='9248e67f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='80310425'>
+        <parameter type-id='2ce52478'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='b59d7dce'/>
+      </function-type>
+      <function-type size-in-bits='64' id='80343f75'>
+        <parameter type-id='68a2d05b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='5e60e97f' size-in-bits='64' id='8042a887'/>
+      <class-decl name='nf_generic_net' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/net/netns/conntrack.h' line='21' column='1' id='80487c53'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='timeout' type-id='f0981eeb' visibility='default' filepath='include/net/netns/conntrack.h' line='22' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7c5064e4' size-in-bits='64' id='8052541e'/>
+      <array-type-def dimensions='1' type-id='702d8a24' size-in-bits='320' id='80542108'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='805f2c4a'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='0467beaf' size-in-bits='64' id='80662063'/>
+      <function-type size-in-bits='64' id='806a4586'>
+        <parameter type-id='b88dd945'/>
+        <parameter type-id='2665334e'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='xhci_link_trb' size-in-bits='128' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1219' column='1' id='80702149'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='segment_ptr' type-id='a30e8d1f' visibility='default' filepath='drivers/usb/host/xhci.h' line='1221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='intr_target' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='1222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='control' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='1223' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='8074b8e7'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='f79a6dd9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f0981eeb' size-in-bits='64' id='807869d3'/>
+      <class-decl name='vm_fault' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/linux/mm.h' line='536' column='1' id='807afe73'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='e7f43fe7' visibility='default' filepath='include/linux/mm.h' line='537' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='flags' type-id='86db32eb' visibility='default' filepath='include/linux/mm.h' line='543' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='seq' type-id='7359adad' visibility='default' filepath='include/linux/mm.h' line='546' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='orig_pmd' type-id='9ecf9226' visibility='default' filepath='include/linux/mm.h' line='547' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pmd' type-id='6d5994d5' visibility='default' filepath='include/linux/mm.h' line='549' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='pud' type-id='af00e73d' visibility='default' filepath='include/linux/mm.h' line='551' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='' type-id='ac5ab63f' visibility='default' filepath='include/linux/mm.h' line='554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='cow_page' type-id='02f11ed4' visibility='default' filepath='include/linux/mm.h' line='563' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='page' type-id='02f11ed4' visibility='default' filepath='include/linux/mm.h' line='564' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='pte' type-id='e8d572d7' visibility='default' filepath='include/linux/mm.h' line='570' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='ptl' type-id='cff2d845' visibility='default' filepath='include/linux/mm.h' line='574' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='prealloc_pte' type-id='c28b9700' visibility='default' filepath='include/linux/mm.h' line='578' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9ba86a44' size-in-bits='64' id='807b7702'/>
+      <pointer-type-def type-id='a82c7e12' size-in-bits='64' id='807c842c'/>
+      <pointer-type-def type-id='5f81edee' size-in-bits='64' id='807f0070'/>
+      <class-decl name='ufshpb_dev_info' size-in-bits='160' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='740' column='1' id='807fa308'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='num_lu' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='741' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='rgn_size' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='742' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='srgn_size' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='743' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='slave_conf_cnt' type-id='49178f86' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='744' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hpb_disabled' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='745' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='max_hpb_single_cmd' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='746' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='is_legacy' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='747' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='control_mode' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='748' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='dwc3' size-in-bits='10368' is-struct='yes' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1109' column='1' id='80824a72'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='drd_work' type-id='ef9025d0' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ep0_trb' type-id='0d6a59e1' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='bounce' type-id='eaa32e2f' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='scratchbuf' type-id='eaa32e2f' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='setup_buf' type-id='8bff8096' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='ep0_trb_addr' type-id='cf29c9b3' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='bounce_addr' type-id='cf29c9b3' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='scratch_addr' type-id='cf29c9b3' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='ep0_usb_req' type-id='48288128' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='ep0_in_setup' type-id='f9fef04f' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='sysdev' type-id='fa0b179b' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='xhci' type-id='db362995' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='xhci_resources' type-id='05e8efcf' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4928'>
+          <var-decl name='ev_buf' type-id='c4c1659e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='eps' type-id='21edd5c3' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7040'>
+          <var-decl name='gadget' type-id='49a58c0c' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7104'>
+          <var-decl name='gadget_driver' type-id='9762ede1' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7168'>
+          <var-decl name='clks' type-id='2942e355' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7232'>
+          <var-decl name='num_clks' type-id='95e97e5e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='reset' type-id='9f9b8114' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='usb2_phy' type-id='ca9354d1' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='usb3_phy' type-id='ca9354d1' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='usb2_generic_phy' type-id='503ff1ba' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='usb3_generic_phy' type-id='503ff1ba' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='phys_ready' type-id='b50a4934' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='ulpi' type-id='144a094f' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='ulpi_ready' type-id='b50a4934' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='regs' type-id='eaa32e2f' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='regs_size' type-id='b59d7dce' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='dr_mode' type-id='d291aaf1' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7968'>
+          <var-decl name='current_dr_role' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='desired_dr_role' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='edev' type-id='c0d6fada' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='edev_nb' type-id='9b08f7cd' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='hsphy_mode' type-id='46b5771e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8384'>
+          <var-decl name='role_sw' type-id='3e3cd44f' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8448'>
+          <var-decl name='role_switch_default_mode' type-id='d291aaf1' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='usb_psy' type-id='c0c93c9e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8576'>
+          <var-decl name='fladj' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8608'>
+          <var-decl name='irq_gadget' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='otg_irq' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8672'>
+          <var-decl name='current_otg_role' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='desired_otg_role' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8736'>
+          <var-decl name='otg_restart_host' type-id='b50a4934' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8768'>
+          <var-decl name='nr_scratch' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8800'>
+          <var-decl name='u1u2' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8832'>
+          <var-decl name='maximum_speed' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8864'>
+          <var-decl name='gadget_max_speed' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8896'>
+          <var-decl name='max_ssp_rate' type-id='a9ea967a' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8928'>
+          <var-decl name='gadget_ssp_rate' type-id='a9ea967a' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8960'>
+          <var-decl name='ip' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8992'>
+          <var-decl name='revision' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9024'>
+          <var-decl name='version_type' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9056'>
+          <var-decl name='ep0_next_event' type-id='56e3bcb9' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9088'>
+          <var-decl name='ep0state' type-id='045093ad' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9120'>
+          <var-decl name='link_state' type-id='9775e40e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9152'>
+          <var-decl name='u2sel' type-id='1dc6a898' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9168'>
+          <var-decl name='u2pel' type-id='1dc6a898' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9184'>
+          <var-decl name='u1sel' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1242' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9192'>
+          <var-decl name='u1pel' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9200'>
+          <var-decl name='speed' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9208'>
+          <var-decl name='num_eps' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9216'>
+          <var-decl name='hwparams' type-id='2d79d174' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9664'>
+          <var-decl name='regset' type-id='62fa2ea7' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9728'>
+          <var-decl name='dbg_lsp_select' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9760'>
+          <var-decl name='test_mode' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9768'>
+          <var-decl name='test_mode_nr' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9776'>
+          <var-decl name='lpm_nyet_threshold' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9784'>
+          <var-decl name='hird_threshold' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9792'>
+          <var-decl name='rx_thr_num_pkt_prd' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9800'>
+          <var-decl name='rx_max_burst_prd' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9808'>
+          <var-decl name='tx_thr_num_pkt_prd' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9816'>
+          <var-decl name='tx_max_burst_prd' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9824'>
+          <var-decl name='tx_fifo_resize_max_num' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9856'>
+          <var-decl name='hsphy_interface' type-id='80f4b756' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9920'>
+          <var-decl name='connected' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9921'>
+          <var-decl name='softconnect' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9922'>
+          <var-decl name='delayed_status' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9923'>
+          <var-decl name='ep0_bounced' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9924'>
+          <var-decl name='ep0_expect_in' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9925'>
+          <var-decl name='has_hibernation' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9926'>
+          <var-decl name='sysdev_is_parent' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9927'>
+          <var-decl name='has_lpm_erratum' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9928'>
+          <var-decl name='is_utmi_l1_suspend' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9929'>
+          <var-decl name='is_fpga' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9930'>
+          <var-decl name='pending_events' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9931'>
+          <var-decl name='do_fifo_resize' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9932'>
+          <var-decl name='pullups_connected' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9933'>
+          <var-decl name='setup_packet_pending' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9934'>
+          <var-decl name='three_stage_setup' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9935'>
+          <var-decl name='dis_start_transfer_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9936'>
+          <var-decl name='usb3_lpm_capable' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9937'>
+          <var-decl name='usb2_lpm_disable' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9938'>
+          <var-decl name='usb2_gadget_lpm_disable' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9939'>
+          <var-decl name='disable_scramble_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9940'>
+          <var-decl name='u2exit_lfps_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1287' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9941'>
+          <var-decl name='u2ss_inp3_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9942'>
+          <var-decl name='req_p1p2p3_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9943'>
+          <var-decl name='del_p1p2p3_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9944'>
+          <var-decl name='del_phy_power_chg_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9945'>
+          <var-decl name='lfps_filter_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9946'>
+          <var-decl name='rx_detect_poll_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9947'>
+          <var-decl name='dis_u3_susphy_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9948'>
+          <var-decl name='dis_u2_susphy_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9949'>
+          <var-decl name='dis_enblslpm_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9950'>
+          <var-decl name='dis_u1_entry_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9951'>
+          <var-decl name='dis_u2_entry_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9952'>
+          <var-decl name='dis_rxdet_inp3_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1299' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9953'>
+          <var-decl name='dis_u2_freeclk_exists_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9954'>
+          <var-decl name='dis_del_phy_power_chg_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9955'>
+          <var-decl name='dis_tx_ipgap_linecheck_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9956'>
+          <var-decl name='parkmode_disable_ss_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9957'>
+          <var-decl name='tx_de_emphasis_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9958'>
+          <var-decl name='tx_de_emphasis' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9960'>
+          <var-decl name='dis_metastability_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9961'>
+          <var-decl name='dis_split_quirk' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1310' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9962'>
+          <var-decl name='async_callbacks' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1311' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9968'>
+          <var-decl name='imod_interval' type-id='1dc6a898' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1313' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9984'>
+          <var-decl name='max_cfg_eps' type-id='95e97e5e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10016'>
+          <var-decl name='last_fifo_depth' type-id='95e97e5e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10048'>
+          <var-decl name='num_ep_resized' type-id='95e97e5e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10112'>
+          <var-decl name='' type-id='ac5ab617' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10176'>
+          <var-decl name='' type-id='ac5ab618' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10240'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10304'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1324' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='irqreturn' filepath='include/linux/irqreturn.h' line='11' column='1' id='8086ea38'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='IRQ_NONE' value='0'/>
+        <enumerator name='IRQ_HANDLED' value='1'/>
+        <enumerator name='IRQ_WAKE_THREAD' value='2'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='8087dc43'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='ae4f2ad5'/>
+        <parameter type-id='98671e4f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='8087fc9a'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='786ead46' size-in-bits='64' id='8093b228'/>
+      <pointer-type-def type-id='9488f766' size-in-bits='64' id='809cdefc'/>
+      <qualified-type-def type-id='60498a7e' const='yes' id='809e8e55'/>
+      <class-decl name='fscrypt_mode' size-in-bits='320' is-struct='yes' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='629' column='1' id='80a367ec'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='friendly_name' type-id='80f4b756' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='630' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cipher_str' type-id='80f4b756' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='631' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='keysize' type-id='95e97e5e' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='632' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='security_strength' type-id='95e97e5e' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='633' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ivsize' type-id='95e97e5e' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='634' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='logged_impl_name' type-id='95e97e5e' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='635' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='blk_crypto_mode' type-id='e951e732' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='636' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='f22a8abb' size-in-bits='896' id='80b13f9b'>
+        <subrange length='14' type-id='7ff19f0f' id='48882d96'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='80b3d6aa'>
+        <parameter type-id='8898134d'/>
+        <parameter type-id='9e99ecc1'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='80b5c3cd'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='nf_conntrack_tuple_hash' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='119' column='1' id='80b664d7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hnnode' type-id='5bd248e7' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tuple' type-id='9805d802' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='121' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b359f47f' size-in-bits='64' id='80b73a7b'/>
+      <array-type-def dimensions='1' type-id='b99c00c9' size-in-bits='640' id='80c2a296'>
+        <subrange length='10' type-id='7ff19f0f' id='487da03a'/>
+      </array-type-def>
+      <pointer-type-def type-id='a547eaa5' size-in-bits='64' id='80c2f2c9'/>
+      <class-decl name='can_rx_offload' size-in-bits='4160' is-struct='yes' visibility='default' filepath='include/linux/can/rx-offload.h' line='15' column='1' id='80c8acde'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/linux/can/rx-offload.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mailbox_read' type-id='e6106240' visibility='default' filepath='include/linux/can/rx-offload.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='skb_queue' type-id='e61c85d0' visibility='default' filepath='include/linux/can/rx-offload.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='skb_irq_queue' type-id='e61c85d0' visibility='default' filepath='include/linux/can/rx-offload.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='skb_queue_len_max' type-id='19c2251e' visibility='default' filepath='include/linux/can/rx-offload.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='mb_first' type-id='f0981eeb' visibility='default' filepath='include/linux/can/rx-offload.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='mb_last' type-id='f0981eeb' visibility='default' filepath='include/linux/can/rx-offload.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='napi' type-id='291e3bb5' visibility='default' filepath='include/linux/can/rx-offload.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='inc' type-id='b50a4934' visibility='default' filepath='include/linux/can/rx-offload.h' line='31' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='035aa62d' size-in-bits='64' id='80c9c0cd'/>
+      <qualified-type-def type-id='9d0cc828' const='yes' id='80cb625d'/>
+      <pointer-type-def type-id='81e9d700' size-in-bits='64' id='80cda266'/>
+      <function-type size-in-bits='64' id='80d02f4e'>
+        <parameter type-id='2ae08426'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='1432736a' size-in-bits='64' id='80eb3fbc'/>
+      <class-decl name='reciprocal_value' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/reciprocal_div.h' line='23' column='1' id='80ebe7f7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='m' type-id='19c2251e' visibility='default' filepath='include/linux/reciprocal_div.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='sh1' type-id='f9b06939' visibility='default' filepath='include/linux/reciprocal_div.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='sh2' type-id='f9b06939' visibility='default' filepath='include/linux/reciprocal_div.h' line='25' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='iommu_domain' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/iommu.h' line='101' column='1' id='80ef8feb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='include/linux/iommu.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ops' type-id='f1ac64d0' visibility='default' filepath='include/linux/iommu.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pgsize_bitmap' type-id='7359adad' visibility='default' filepath='include/linux/iommu.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='handler' type-id='a01c3626' visibility='default' filepath='include/linux/iommu.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='handler_token' type-id='eaa32e2f' visibility='default' filepath='include/linux/iommu.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='geometry' type-id='1f78af0c' visibility='default' filepath='include/linux/iommu.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='iova_cookie' type-id='e770e054' visibility='default' filepath='include/linux/iommu.h' line='108' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='96fe8392' size-in-bits='64' id='80f1f854'/>
+      <pointer-type-def type-id='da62d64b' size-in-bits='64' id='80f25feb'/>
+      <array-type-def dimensions='1' type-id='60dcbf6c' size-in-bits='2048' id='80f344e1'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <pointer-type-def type-id='9b45d938' size-in-bits='64' id='80f4b756'/>
+      <class-decl name='ptp_clock_info' size-in-bits='1280' is-struct='yes' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='138' column='1' id='80fe4e9b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='max_adj' type-id='a7832498' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='n_alarm' type-id='95e97e5e' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='n_ext_ts' type-id='95e97e5e' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='n_per_out' type-id='95e97e5e' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='n_pins' type-id='95e97e5e' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='pps' type-id='95e97e5e' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='pin_config' type-id='a9dafe2d' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='adjfine' type-id='a6cfa2de' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='adjfreq' type-id='9a03e99a' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='adjphase' type-id='9a03e99a' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='adjtime' type-id='857028e5' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='gettime64' type-id='3934844b' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='gettimex64' type-id='ea030990' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='getcrosststamp' type-id='42e9a6db' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='settime64' type-id='fdd0a4cc' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='enable' type-id='7ab22055' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='verify' type-id='7f6fd29b' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='do_aux_work' type-id='a9368ca5' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='162' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='80febe8b'>
+        <parameter type-id='3eb7c31c'/>
+        <parameter type-id='e7d2a5fc'/>
+        <parameter type-id='11bff950'/>
+        <return type-id='3213e875'/>
+      </function-type>
+      <pointer-type-def type-id='f780d556' size-in-bits='64' id='810606ec'/>
+      <pointer-type-def type-id='ef266a3b' size-in-bits='64' id='8106240b'/>
+      <pointer-type-def type-id='857ecf83' size-in-bits='64' id='81068c97'/>
+      <array-type-def dimensions='1' type-id='d315442e' size-in-bits='32' id='810b4a17'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='d315442e' size-in-bits='96' id='81144473'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <pointer-type-def type-id='137e352e' size-in-bits='64' id='81145c38'/>
+      <pointer-type-def type-id='0d853221' size-in-bits='64' id='8114c6c9'/>
+      <class-decl name='drm_property' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/drm/drm_property.h' line='80' column='1' id='811caa36'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='head' type-id='72f469ec' visibility='default' filepath='include/drm/drm_property.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='base' type-id='350f4182' visibility='default' filepath='include/drm/drm_property.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='flags' type-id='8f92235e' visibility='default' filepath='include/drm/drm_property.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/drm/drm_property.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='num_values' type-id='8f92235e' visibility='default' filepath='include/drm/drm_property.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='values' type-id='5d6479ae' visibility='default' filepath='include/drm/drm_property.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='dev' type-id='8898134d' visibility='default' filepath='include/drm/drm_property.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='enum_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_property.h' line='197' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='811eff86'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='30864cdc'/>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='354f7eb9'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3fa9acd9' size-in-bits='64' id='81202b05'/>
+      <pointer-type-def type-id='ac104281' size-in-bits='64' id='8127e1dd'/>
+      <enum-decl name='ufs_pm_level' filepath='drivers/scsi/ufs/ufshcd.h' line='158' column='1' id='812ff8cb'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='UFS_PM_LVL_0' value='0'/>
+        <enumerator name='UFS_PM_LVL_1' value='1'/>
+        <enumerator name='UFS_PM_LVL_2' value='2'/>
+        <enumerator name='UFS_PM_LVL_3' value='3'/>
+        <enumerator name='UFS_PM_LVL_4' value='4'/>
+        <enumerator name='UFS_PM_LVL_5' value='5'/>
+        <enumerator name='UFS_PM_LVL_6' value='6'/>
+        <enumerator name='UFS_PM_LVL_MAX' value='7'/>
+      </enum-decl>
+      <pointer-type-def type-id='c0a9211d' size-in-bits='64' id='813f4995'/>
+      <function-type size-in-bits='64' id='815413c2'>
+        <parameter type-id='c0ced320'/>
+        <parameter type-id='a77efac3'/>
+        <parameter type-id='0e87f9be'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='__sigrestore_t' type-id='5d3a884e' filepath='include/uapi/asm-generic/signal-defs.h' line='86' column='1' id='81564178'/>
+      <pointer-type-def type-id='3249e303' size-in-bits='64' id='815cf0d3'/>
+      <pointer-type-def type-id='fa7c8a73' size-in-bits='64' id='815f64bf'/>
+      <class-decl name='fsg_buffhd' size-in-bits='384' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='143' column='1' id='81645a21'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='buf' type-id='eaa32e2f' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='state' type-id='33e6bdc5' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='next' type-id='63657a49' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bulk_out_intended_length' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='inreq' type-id='1a494567' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='outreq' type-id='1a494567' visibility='default' filepath='drivers/usb/gadget/function/storage_common.h' line='156' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b03c6e7d' size-in-bits='64' id='81767071'/>
+      <qualified-type-def type-id='d6b43ca8' const='yes' id='81795b61'/>
+      <pointer-type-def type-id='77aad2d1' size-in-bits='64' id='8179bc49'/>
+      <function-type size-in-bits='64' id='817d10dc'>
+        <parameter type-id='b7db9582'/>
+        <parameter type-id='d8c85275'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3802a069' size-in-bits='64' id='8181b8c5'/>
+      <class-decl name='tcf_idrinfo' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/net/act_api.h' line='15' column='1' id='8182ca8c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/net/act_api.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='action_idr' type-id='37ce495e' visibility='default' filepath='include/net/act_api.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='net' type-id='a2bff676' visibility='default' filepath='include/net/act_api.h' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='percpu_ref' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/percpu-refcount.h' line='105' column='1' id='818799b4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='percpu_count_ptr' type-id='7359adad' visibility='default' filepath='include/linux/percpu-refcount.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='790a00b9' visibility='default' filepath='include/linux/percpu-refcount.h' line='118' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8e99d103' size-in-bits='64' id='8189260f'/>
+      <function-type size-in-bits='64' id='8190a159'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='8192abc8'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='6fcaf91e'/>
+        <parameter type-id='8c493d8a'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='soc_device_attribute' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/sys_soc.h' line='11' column='1' id='81954c90'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='machine' type-id='80f4b756' visibility='default' filepath='include/linux/sys_soc.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='family' type-id='80f4b756' visibility='default' filepath='include/linux/sys_soc.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='revision' type-id='80f4b756' visibility='default' filepath='include/linux/sys_soc.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='serial_number' type-id='80f4b756' visibility='default' filepath='include/linux/sys_soc.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='soc_id' type-id='80f4b756' visibility='default' filepath='include/linux/sys_soc.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/sys_soc.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='custom_attr_group' type-id='8ff9530e' visibility='default' filepath='include/linux/sys_soc.h' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='69361cbf' size-in-bits='64' id='81955d27'/>
+      <pointer-type-def type-id='e53f43b5' size-in-bits='64' id='8197734d'/>
+      <pointer-type-def type-id='7f9fdab3' size-in-bits='64' id='81a51edb'/>
+      <qualified-type-def type-id='e59f755e' const='yes' id='81a7f511'/>
+      <pointer-type-def type-id='9b7e9486' size-in-bits='64' id='81ac2ac5'/>
+      <pointer-type-def type-id='dfde97ed' size-in-bits='64' id='81aefe59'/>
+      <pointer-type-def type-id='984b9756' size-in-bits='64' id='81b5cbc0'/>
+      <pointer-type-def type-id='8a25144e' size-in-bits='64' id='81c26048'/>
+      <function-type size-in-bits='64' id='81c3d1f5'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f6590065' size-in-bits='64' id='81c90e99'/>
+      <class-decl name='regcache_ops' size-in-bits='576' is-struct='yes' visibility='default' filepath='drivers/base/regmap/internal.h' line='173' column='1' id='81cd3626'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/base/regmap/internal.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='type' type-id='6e1356fd' visibility='default' filepath='drivers/base/regmap/internal.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='init' type-id='02c2e3f3' visibility='default' filepath='drivers/base/regmap/internal.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='exit' type-id='02c2e3f3' visibility='default' filepath='drivers/base/regmap/internal.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='debugfs_init' type-id='078f0514' visibility='default' filepath='drivers/base/regmap/internal.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='read' type-id='b8529195' visibility='default' filepath='drivers/base/regmap/internal.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='write' type-id='2f739ebb' visibility='default' filepath='drivers/base/regmap/internal.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='sync' type-id='2f739ebb' visibility='default' filepath='drivers/base/regmap/internal.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='drop' type-id='2f739ebb' visibility='default' filepath='drivers/base/regmap/internal.h' line='184' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1d3d5bb0' size-in-bits='64' id='81d19a12'/>
+      <class-decl name='sdio_driver' size-in-bits='1664' is-struct='yes' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='75' column='1' id='81d3e1dd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='id_table' type-id='4054d674' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='probe' type-id='ab1e2186' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='remove' type-id='11124634' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='drv' type-id='fe007c02' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='82' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='81d7511f'>
+        <parameter type-id='8582e5ec'/>
+        <parameter type-id='745b39e8'/>
+        <parameter type-id='745b39e8'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='81d856a4'>
+        <parameter type-id='2ba25712'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4a35e585' size-in-bits='64' id='81d8927d'/>
+      <function-type size-in-bits='64' id='81dd332a'>
+        <parameter type-id='c1880945'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='09d53b4a' size-in-bits='64' id='81e0c1b8'/>
+      <function-type size-in-bits='64' id='81e2e960'>
+        <parameter type-id='27f3f5d8'/>
+        <parameter type-id='e835b5d8'/>
+        <parameter type-id='e835b5d8'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='354f7eb9'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='b0e7dbd3'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='0e3f80d9'/>
+      </function-type>
+      <pointer-type-def type-id='60d9230d' size-in-bits='64' id='81e2ea51'/>
+      <class-decl name='i3c_ibi_slot' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/i3c/master.h' line='111' column='1' id='81e9d700'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/linux/i3c/master.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dev' type-id='e9b5d134' visibility='default' filepath='include/linux/i3c/master.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='len' type-id='f0981eeb' visibility='default' filepath='include/linux/i3c/master.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/i3c/master.h' line='115' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='494c865e' size-in-bits='64' id='81ec80b0'/>
+      <pointer-type-def type-id='269d8092' size-in-bits='64' id='81f1a1a8'/>
+      <typedef-decl name='seqcount_raw_spinlock_t' type-id='35126ca4' filepath='include/linux/seqlock.h' line='276' column='1' id='81ffe2ac'/>
+      <function-type size-in-bits='64' id='82014c8f'>
+        <parameter type-id='22be78e8'/>
+        <parameter type-id='3ab7d422'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='thermal_zone_device' size-in-bits='10880' is-struct='yes' visibility='default' filepath='include/linux/thermal.h' line='153' column='1' id='82084f52'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/thermal.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='664ac0b7' visibility='default' filepath='include/linux/thermal.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='device' type-id='66e487eb' visibility='default' filepath='include/linux/thermal.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='trips_attribute_group' type-id='e4af473b' visibility='default' filepath='include/linux/thermal.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='trip_temp_attrs' type-id='fd801eb0' visibility='default' filepath='include/linux/thermal.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='trip_type_attrs' type-id='fd801eb0' visibility='default' filepath='include/linux/thermal.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='trip_hyst_attrs' type-id='fd801eb0' visibility='default' filepath='include/linux/thermal.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='mode' type-id='45492188' visibility='default' filepath='include/linux/thermal.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='devdata' type-id='eaa32e2f' visibility='default' filepath='include/linux/thermal.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='trips' type-id='95e97e5e' visibility='default' filepath='include/linux/thermal.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='trips_disabled' type-id='7359adad' visibility='default' filepath='include/linux/thermal.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='passive_delay_jiffies' type-id='7359adad' visibility='default' filepath='include/linux/thermal.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='polling_delay_jiffies' type-id='7359adad' visibility='default' filepath='include/linux/thermal.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8384'>
+          <var-decl name='temperature' type-id='95e97e5e' visibility='default' filepath='include/linux/thermal.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8416'>
+          <var-decl name='last_temperature' type-id='95e97e5e' visibility='default' filepath='include/linux/thermal.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8448'>
+          <var-decl name='emul_temperature' type-id='95e97e5e' visibility='default' filepath='include/linux/thermal.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8480'>
+          <var-decl name='passive' type-id='95e97e5e' visibility='default' filepath='include/linux/thermal.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='prev_low_trip' type-id='95e97e5e' visibility='default' filepath='include/linux/thermal.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8544'>
+          <var-decl name='prev_high_trip' type-id='95e97e5e' visibility='default' filepath='include/linux/thermal.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8576'>
+          <var-decl name='need_update' type-id='49178f86' visibility='default' filepath='include/linux/thermal.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='ops' type-id='1e6fe389' visibility='default' filepath='include/linux/thermal.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='tzp' type-id='e2cbf964' visibility='default' filepath='include/linux/thermal.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8768'>
+          <var-decl name='governor' type-id='6def7c4b' visibility='default' filepath='include/linux/thermal.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8832'>
+          <var-decl name='governor_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/thermal.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8896'>
+          <var-decl name='thermal_instances' type-id='72f469ec' visibility='default' filepath='include/linux/thermal.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9024'>
+          <var-decl name='ida' type-id='46ce60fb' visibility='default' filepath='include/linux/thermal.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9152'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/linux/thermal.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9536'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/thermal.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9664'>
+          <var-decl name='poll_queue' type-id='5ad6e0ef' visibility='default' filepath='include/linux/thermal.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10752'>
+          <var-decl name='notify_event' type-id='b5808f5e' visibility='default' filepath='include/linux/thermal.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10816'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/thermal.h' line='185' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_subdev_io_pin_config' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='132' column='1' id='82096067'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-subdev.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pin' type-id='f9b06939' visibility='default' filepath='include/media/v4l2-subdev.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='function' type-id='f9b06939' visibility='default' filepath='include/media/v4l2-subdev.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='value' type-id='f9b06939' visibility='default' filepath='include/media/v4l2-subdev.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='strength' type-id='f9b06939' visibility='default' filepath='include/media/v4l2-subdev.h' line='137' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='820ec76f'>
+        <parameter type-id='3dad1a48'/>
+        <parameter type-id='91ce1af9'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='60fb5bfa' size-in-bits='64' id='8212a608'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='224' is-struct='yes' visibility='default' filepath='lib/zstd/zstd_internal.h' line='174' column='1' id='821350c0' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='price' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='off' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mlen' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='litlen' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rep' type-id='68da9d9e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='179' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2ec4b2ae' size-in-bits='64' id='8213bb9f'/>
+      <function-type size-in-bits='64' id='821e33ee'>
+        <parameter type-id='bd1c8eb6'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='42a0ecc7' size-in-bits='64' id='822493cb'/>
+      <class-decl name='property_entry' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/property.h' line='273' column='1' id='822bf95b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/property.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='length' type-id='b59d7dce' visibility='default' filepath='include/linux/property.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='is_inline' type-id='b50a4934' visibility='default' filepath='include/linux/property.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='type' type-id='fec738e2' visibility='default' filepath='include/linux/property.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='' type-id='ac5ab5d0' visibility='default' filepath='include/linux/property.h' line='278' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='822ce289'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='81d8927d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='b74ac0d4' const='yes' id='822de089'/>
+      <function-type size-in-bits='64' id='8230f98b'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='98eca9c3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='c8604f6d' const='yes' id='82314a92'/>
+      <pointer-type-def type-id='0a042b05' size-in-bits='64' id='82398c35'/>
+      <function-type size-in-bits='64' id='82469568'>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='2ae08426'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='15e229a3' size-in-bits='128' id='82486e89'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='824a7fd2'>
+        <parameter type-id='51a94113' name='clkspec'/>
+        <parameter type-id='eaa32e2f' name='data'/>
+        <return type-id='7d0bc0eb'/>
+      </function-type>
+      <pointer-type-def type-id='1a55bf13' size-in-bits='64' id='824beef7'/>
+      <pointer-type-def type-id='92072f8b' size-in-bits='64' id='824ffa73'/>
+      <pointer-type-def type-id='09f052f7' size-in-bits='64' id='825271e7'/>
+      <pointer-type-def type-id='1e0c0ad9' size-in-bits='64' id='825b5cd1'/>
+      <pointer-type-def type-id='09f0c826' size-in-bits='64' id='825ef190'/>
+      <typedef-decl name='dma_async_tx_callback_result' type-id='31316b61' filepath='include/linux/dmaengine.h' line='554' column='1' id='82615040'/>
+      <class-decl name='xhci_driver_overrides' size-in-bits='448' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1958' column='1' id='8264b0e6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='extra_priv_size' type-id='b59d7dce' visibility='default' filepath='drivers/usb/host/xhci.h' line='1959' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reset' type-id='3d4f6569' visibility='default' filepath='drivers/usb/host/xhci.h' line='1960' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='start' type-id='3d4f6569' visibility='default' filepath='drivers/usb/host/xhci.h' line='1961' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='add_endpoint' type-id='2c3372f7' visibility='default' filepath='drivers/usb/host/xhci.h' line='1962' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='drop_endpoint' type-id='2c3372f7' visibility='default' filepath='drivers/usb/host/xhci.h' line='1964' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='check_bandwidth' type-id='530cb308' visibility='default' filepath='drivers/usb/host/xhci.h' line='1966' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='reset_bandwidth' type-id='b48dadb7' visibility='default' filepath='drivers/usb/host/xhci.h' line='1967' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='99f32926' size-in-bits='64' id='82683cec'/>
+      <pointer-type-def type-id='46181ad5' size-in-bits='64' id='826d9136'/>
+      <class-decl name='snd_soc_tplg_hw_config' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='338' column='1' id='826dc1a3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='id' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fmt' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='clock_gated' type-id='8f048e17' visibility='default' filepath='include/uapi/sound/asoc.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='invert_bclk' type-id='8f048e17' visibility='default' filepath='include/uapi/sound/asoc.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='invert_fsync' type-id='8f048e17' visibility='default' filepath='include/uapi/sound/asoc.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='bclk_provider' type-id='8f048e17' visibility='default' filepath='include/uapi/sound/asoc.h' line='345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fsync_provider' type-id='8f048e17' visibility='default' filepath='include/uapi/sound/asoc.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='mclk_direction' type-id='8f048e17' visibility='default' filepath='include/uapi/sound/asoc.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='reserved' type-id='23119536' visibility='default' filepath='include/uapi/sound/asoc.h' line='348' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='mclk_rate' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bclk_rate' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='350' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='fsync_rate' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='tdm_slots' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='tdm_slot_width' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='tx_slots' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='rx_slots' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='tx_channels' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='tx_chanmap' type-id='e389acd5' visibility='default' filepath='include/uapi/sound/asoc.h' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='rx_channels' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='rx_chanmap' type-id='e389acd5' visibility='default' filepath='include/uapi/sound/asoc.h' line='359' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='82718bfb'>
+        <parameter type-id='dd575c43'/>
+        <parameter type-id='3b590e48'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='snd_pci_quirk' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/sound/core.h' line='464' column='1' id='8288ae2e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='subvendor' type-id='8efea9e5' visibility='default' filepath='include/sound/core.h' line='465' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='subdevice' type-id='8efea9e5' visibility='default' filepath='include/sound/core.h' line='466' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='subdevice_mask' type-id='8efea9e5' visibility='default' filepath='include/sound/core.h' line='467' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='value' type-id='95e97e5e' visibility='default' filepath='include/sound/core.h' line='468' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='5f6b1830' const='yes' id='82a21fa9'/>
+      <function-type size-in-bits='64' id='82a4acbf'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='02f11ed4'/>
+      </function-type>
+      <pointer-type-def type-id='0b4fb7b5' size-in-bits='64' id='82a5e0a9'/>
+      <pointer-type-def type-id='54b1caeb' size-in-bits='64' id='82a6d477'/>
+      <pointer-type-def type-id='bf6a2c5c' size-in-bits='64' id='82a9a11e'/>
+      <pointer-type-def type-id='371f2e98' size-in-bits='64' id='82b599aa'/>
+      <pointer-type-def type-id='a6355364' size-in-bits='64' id='82bcf576'/>
+      <qualified-type-def type-id='fa206174' const='yes' id='82c5dbd5'/>
+      <qualified-type-def type-id='02244303' const='yes' id='82c73a4e'/>
+      <class-decl name='snd_pcm_hw_constraints' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/sound/pcm.h' line='240' column='1' id='82c7680e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='masks' type-id='2acd76fe' visibility='default' filepath='include/sound/pcm.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='intervals' type-id='9625c091' visibility='default' filepath='include/sound/pcm.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='rules_num' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1952'>
+          <var-decl name='rules_all' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='rules' type-id='3cc81bea' visibility='default' filepath='include/sound/pcm.h' line='247' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a128e735' size-in-bits='64' id='82c827a5'/>
+      <function-type size-in-bits='64' id='82d08b71'>
+        <parameter type-id='2944961d'/>
+        <parameter type-id='7b4ee155'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='hid_battery_status' filepath='include/linux/hid.h' line='548' column='1' id='82d56eba'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HID_BATTERY_UNKNOWN' value='0'/>
+        <enumerator name='HID_BATTERY_QUERIED' value='1'/>
+        <enumerator name='HID_BATTERY_REPORTED' value='2'/>
+      </enum-decl>
+      <class-decl name='audit_context' size-in-bits='8000' is-struct='yes' visibility='default' filepath='include/../kernel/audit.h' line='101' column='1' id='82d9d5d4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dummy' type-id='95e97e5e' visibility='default' filepath='include/../kernel/audit.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='in_syscall' type-id='95e97e5e' visibility='default' filepath='include/../kernel/audit.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='state' type-id='33fc9455' visibility='default' filepath='include/../kernel/audit.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='current_state' type-id='33fc9455' visibility='default' filepath='include/../kernel/audit.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='serial' type-id='f0981eeb' visibility='default' filepath='include/../kernel/audit.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='major' type-id='95e97e5e' visibility='default' filepath='include/../kernel/audit.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ctime' type-id='40a816ad' visibility='default' filepath='include/../kernel/audit.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='argv' type-id='f46d9f4d' visibility='default' filepath='include/../kernel/audit.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='return_code' type-id='bd54fe1a' visibility='default' filepath='include/../kernel/audit.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='prio' type-id='91ce1af9' visibility='default' filepath='include/../kernel/audit.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='return_valid' type-id='95e97e5e' visibility='default' filepath='include/../kernel/audit.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='preallocated_names' type-id='33d537d2' visibility='default' filepath='include/../kernel/audit.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='name_count' type-id='95e97e5e' visibility='default' filepath='include/../kernel/audit.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5312'>
+          <var-decl name='names_list' type-id='72f469ec' visibility='default' filepath='include/../kernel/audit.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5440'>
+          <var-decl name='filterkey' type-id='26a90f95' visibility='default' filepath='include/../kernel/audit.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='pwd' type-id='b5382ece' visibility='default' filepath='include/../kernel/audit.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5632'>
+          <var-decl name='aux' type-id='65e6c748' visibility='default' filepath='include/../kernel/audit.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5696'>
+          <var-decl name='aux_pids' type-id='65e6c748' visibility='default' filepath='include/../kernel/audit.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5760'>
+          <var-decl name='sockaddr' type-id='f3cdf15c' visibility='default' filepath='include/../kernel/audit.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5824'>
+          <var-decl name='sockaddr_len' type-id='b59d7dce' visibility='default' filepath='include/../kernel/audit.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5888'>
+          <var-decl name='pid' type-id='587f89d2' visibility='default' filepath='include/../kernel/audit.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5920'>
+          <var-decl name='ppid' type-id='587f89d2' visibility='default' filepath='include/../kernel/audit.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5952'>
+          <var-decl name='uid' type-id='d80b72e6' visibility='default' filepath='include/../kernel/audit.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5984'>
+          <var-decl name='euid' type-id='d80b72e6' visibility='default' filepath='include/../kernel/audit.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6016'>
+          <var-decl name='suid' type-id='d80b72e6' visibility='default' filepath='include/../kernel/audit.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6048'>
+          <var-decl name='fsuid' type-id='d80b72e6' visibility='default' filepath='include/../kernel/audit.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='gid' type-id='094d8048' visibility='default' filepath='include/../kernel/audit.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6112'>
+          <var-decl name='egid' type-id='094d8048' visibility='default' filepath='include/../kernel/audit.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6144'>
+          <var-decl name='sgid' type-id='094d8048' visibility='default' filepath='include/../kernel/audit.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6176'>
+          <var-decl name='fsgid' type-id='094d8048' visibility='default' filepath='include/../kernel/audit.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6208'>
+          <var-decl name='personality' type-id='7359adad' visibility='default' filepath='include/../kernel/audit.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6272'>
+          <var-decl name='arch' type-id='95e97e5e' visibility='default' filepath='include/../kernel/audit.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6304'>
+          <var-decl name='target_pid' type-id='587f89d2' visibility='default' filepath='include/../kernel/audit.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6336'>
+          <var-decl name='target_auid' type-id='d80b72e6' visibility='default' filepath='include/../kernel/audit.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6368'>
+          <var-decl name='target_uid' type-id='d80b72e6' visibility='default' filepath='include/../kernel/audit.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6400'>
+          <var-decl name='target_sessionid' type-id='f0981eeb' visibility='default' filepath='include/../kernel/audit.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6432'>
+          <var-decl name='target_sid' type-id='19c2251e' visibility='default' filepath='include/../kernel/audit.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='target_comm' type-id='ac1fa8c0' visibility='default' filepath='include/../kernel/audit.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6592'>
+          <var-decl name='trees' type-id='e9efa10a' visibility='default' filepath='include/../kernel/audit.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6656'>
+          <var-decl name='first_trees' type-id='e9efa10a' visibility='default' filepath='include/../kernel/audit.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6720'>
+          <var-decl name='killed_trees' type-id='72f469ec' visibility='default' filepath='include/../kernel/audit.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6848'>
+          <var-decl name='tree_count' type-id='95e97e5e' visibility='default' filepath='include/../kernel/audit.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6880'>
+          <var-decl name='type' type-id='95e97e5e' visibility='default' filepath='include/../kernel/audit.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6912'>
+          <var-decl name='' type-id='ac5ab5be' visibility='default' filepath='include/../kernel/audit.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='fds' type-id='e4266c7e' visibility='default' filepath='include/../kernel/audit.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='proctitle' type-id='29b11ca5' visibility='default' filepath='include/../kernel/audit.h' line='203' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='82e3e1cf'>
+        <parameter type-id='6ed6b432'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='2c3b4d9d' size-in-bits='64' id='82ec1389'/>
+      <function-type size-in-bits='64' id='82f1f156'>
+        <parameter type-id='c67366c7'/>
+        <parameter type-id='a7832498'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f3404a83' size-in-bits='64' id='82fb5c77'/>
+      <function-type size-in-bits='64' id='82fca516'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='e4330308'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='smp_cond_func_t' type-id='5c080b64' filepath='include/linux/smp.h' line='18' column='1' id='82fddac3'/>
+      <class-decl name='ieee80211_vht_mcs_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/ieee80211.h' line='1740' column='1' id='830056b5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rx_mcs_map' type-id='23119536' visibility='default' filepath='include/linux/ieee80211.h' line='1741' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='rx_highest' type-id='23119536' visibility='default' filepath='include/linux/ieee80211.h' line='1742' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='tx_mcs_map' type-id='23119536' visibility='default' filepath='include/linux/ieee80211.h' line='1743' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='tx_highest' type-id='23119536' visibility='default' filepath='include/linux/ieee80211.h' line='1744' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='45f3f04e' size-in-bits='64' id='83036d6c'/>
+      <pointer-type-def type-id='7fb3af70' size-in-bits='64' id='83078c32'/>
+      <class-decl name='clk' size-in-bits='576' is-struct='yes' visibility='default' filepath='drivers/clk/clk.c' line='99' column='1' id='830e3b1b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='core' type-id='ba21e62b' visibility='default' filepath='drivers/clk/clk.c' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/clk/clk.c' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dev_id' type-id='80f4b756' visibility='default' filepath='drivers/clk/clk.c' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='con_id' type-id='80f4b756' visibility='default' filepath='drivers/clk/clk.c' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='min_rate' type-id='7359adad' visibility='default' filepath='drivers/clk/clk.c' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='max_rate' type-id='7359adad' visibility='default' filepath='drivers/clk/clk.c' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='exclusive_count' type-id='f0981eeb' visibility='default' filepath='drivers/clk/clk.c' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='clks_node' type-id='03a4a074' visibility='default' filepath='drivers/clk/clk.c' line='107' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='__restorefn_t' type-id='ee076206' filepath='include/uapi/asm-generic/signal-defs.h' line='85' column='1' id='830ee0a7'/>
+      <qualified-type-def type-id='101eeec5' const='yes' id='8316a080'/>
+      <pointer-type-def type-id='15fce913' size-in-bits='64' id='8319c9c7'/>
+      <pointer-type-def type-id='3eb7c31c' size-in-bits='64' id='831e6e93'/>
+      <pointer-type-def type-id='dedd4d90' size-in-bits='64' id='831f84c2'/>
+      <pointer-type-def type-id='38e0f6d3' size-in-bits='64' id='8324c9fb'/>
+      <class-decl name='iw_discarded' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/wireless.h' line='731' column='1' id='832938ed'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nwid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/wireless.h' line='732' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='code' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/wireless.h' line='733' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fragment' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/wireless.h' line='734' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='retries' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/wireless.h' line='735' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='misc' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/wireless.h' line='736' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='be937eab' size-in-bits='64' id='83302513'/>
+      <pointer-type-def type-id='f6dcb63e' size-in-bits='64' id='83359c30'/>
+      <pointer-type-def type-id='84147814' size-in-bits='64' id='8336f92e'/>
+      <function-type size-in-bits='64' id='833a7616'>
+        <parameter type-id='1351523a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='drm_ioctl_desc' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/drm/drm_ioctl.h' line='145' column='1' id='833c0b8c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_ioctl.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='flags' type-id='ad578603' visibility='default' filepath='include/drm/drm_ioctl.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='func' type-id='e2cefc47' visibility='default' filepath='include/drm/drm_ioctl.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/drm/drm_ioctl.h' line='149' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7cee8a3d' size-in-bits='64' id='8344857d'/>
+      <class-decl name='pinctrl_pin_desc' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='36' column='1' id='8347d13f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='number' type-id='f0981eeb' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='drv_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='834d1a2b'>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='0b19fc54'/>
+      </function-type>
+      <function-type size-in-bits='64' id='835a73a6'>
+        <parameter type-id='b94a2f7c'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='ffb3cc6e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='rproc_subdev' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/remoteproc.h' line='582' column='1' id='835b9b57'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/remoteproc.h' line='583' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='prepare' type-id='5afa70dd' visibility='default' filepath='include/linux/remoteproc.h' line='585' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='start' type-id='5afa70dd' visibility='default' filepath='include/linux/remoteproc.h' line='586' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='stop' type-id='03676ee7' visibility='default' filepath='include/linux/remoteproc.h' line='587' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='unprepare' type-id='2859cc56' visibility='default' filepath='include/linux/remoteproc.h' line='588' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='835d6aa6'>
+        <parameter type-id='19e05b5f'/>
+        <parameter type-id='42a2b4e8'/>
+        <parameter type-id='42a2b4e8'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ieee80211_mcs_info' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/ieee80211.h' line='1531' column='1' id='835fe4c6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rx_mask' type-id='097504df' visibility='default' filepath='include/linux/ieee80211.h' line='1532' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='rx_highest' type-id='23119536' visibility='default' filepath='include/linux/ieee80211.h' line='1533' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='tx_params' type-id='f9b06939' visibility='default' filepath='include/linux/ieee80211.h' line='1534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='reserved' type-id='930ea9f9' visibility='default' filepath='include/linux/ieee80211.h' line='1535' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='836381ca'>
+        <parameter type-id='c3a28778'/>
+        <parameter type-id='3dad1a48'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='8369580f'>
+        <parameter type-id='513f51db'/>
+        <parameter type-id='4151733d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='20ce14f5' size-in-bits='64' id='836adb0d'/>
+      <pointer-type-def type-id='43e9dd11' size-in-bits='64' id='836fd925'/>
+      <pointer-type-def type-id='707953c1' size-in-bits='64' id='83705195'/>
+      <pointer-type-def type-id='92182137' size-in-bits='64' id='8371387b'/>
+      <pointer-type-def type-id='50bd3cc7' size-in-bits='64' id='839105d3'/>
+      <function-type size-in-bits='64' id='8393eddc'>
+        <parameter type-id='343c3ae4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='e4c11782' const='yes' id='83967635'/>
+      <class-decl name='ieee80211_channel' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='176' column='1' id='839b249b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='band' type-id='3eaa0294' visibility='default' filepath='include/net/cfg80211.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='center_freq' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='freq_offset' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='hw_value' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='max_antenna_gain' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='max_power' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='max_reg_power' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='beacon_found' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='orig_flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='orig_mag' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='orig_mpwr' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='dfs_state' type-id='996e1634' visibility='default' filepath='include/net/cfg80211.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dfs_state_entered' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='dfs_cac_ms' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='190' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='3f1a6b60' size-in-bits='64' id='839e8989'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='3f1a6b60' size-in-bits='160' id='83a5454e'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='3f1a6b60' size-in-bits='192' id='83a783e5'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <pointer-type-def type-id='d660dfdd' size-in-bits='64' id='83a85211'/>
+      <function-type size-in-bits='64' id='83ac033d'>
+        <parameter type-id='67d012a2'/>
+        <parameter type-id='6f383d17'/>
+        <return type-id='7359adad'/>
+      </function-type>
+      <pointer-type-def type-id='89af975c' size-in-bits='64' id='83ac4446'/>
+      <array-type-def dimensions='1' type-id='b0690d78' size-in-bits='1728' id='83ae09a1'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='be9189df' size-in-bits='38400' id='83aedf28'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <pointer-type-def type-id='46a1625d' size-in-bits='64' id='83b4f711'/>
+      <class-decl name='genl_ops' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/genetlink.h' line='152' column='1' id='83b59630'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='doit' type-id='8f8224f6' visibility='default' filepath='include/net/genetlink.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='start' type-id='eca40b6e' visibility='default' filepath='include/net/genetlink.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dumpit' type-id='32a663ca' visibility='default' filepath='include/net/genetlink.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='done' type-id='eca40b6e' visibility='default' filepath='include/net/genetlink.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='policy' type-id='109cdb66' visibility='default' filepath='include/net/genetlink.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='maxattr' type-id='f0981eeb' visibility='default' filepath='include/net/genetlink.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='cmd' type-id='f9b06939' visibility='default' filepath='include/net/genetlink.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='360'>
+          <var-decl name='internal_flags' type-id='f9b06939' visibility='default' filepath='include/net/genetlink.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='368'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/net/genetlink.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='376'>
+          <var-decl name='validate' type-id='f9b06939' visibility='default' filepath='include/net/genetlink.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/genetlink.h' line='166' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='eaa32e2f' const='yes' id='83be723c'/>
+      <pointer-type-def type-id='ef9025d0' size-in-bits='64' id='83c1bde6'/>
+      <class-decl name='ff_ramp_effect' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/input.h' line='356' column='1' id='83c35232'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start_level' type-id='b55def60' visibility='default' filepath='include/uapi/linux/input.h' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='end_level' type-id='b55def60' visibility='default' filepath='include/uapi/linux/input.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='envelope' type-id='95dfde06' visibility='default' filepath='include/uapi/linux/input.h' line='359' column='1'/>
+        </data-member>
+      </class-decl>
+      <union-decl name='tcp_cc_info' visibility='default' is-declaration-only='yes' id='83c3a083'/>
+      <function-type size-in-bits='64' id='83c3d80a'>
+        <parameter type-id='5dbfcbb1'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='83c7cbd3'>
+        <parameter type-id='74b427eb'/>
+        <parameter type-id='98b22793'/>
+        <parameter type-id='98b22793'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='usb_gadget_ops' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/linux/usb/gadget.h' line='317' column='1' id='83cac475'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='get_frame' type-id='42262596' visibility='default' filepath='include/linux/usb/gadget.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wakeup' type-id='42262596' visibility='default' filepath='include/linux/usb/gadget.h' line='319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='set_selfpowered' type-id='2b8a73bd' visibility='default' filepath='include/linux/usb/gadget.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='vbus_session' type-id='2b8a73bd' visibility='default' filepath='include/linux/usb/gadget.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='vbus_draw' type-id='86ec8614' visibility='default' filepath='include/linux/usb/gadget.h' line='322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='pullup' type-id='2b8a73bd' visibility='default' filepath='include/linux/usb/gadget.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ioctl' type-id='11f75c44' visibility='default' filepath='include/linux/usb/gadget.h' line='324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='get_config_params' type-id='b90a2617' visibility='default' filepath='include/linux/usb/gadget.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='udc_start' type-id='3e610606' visibility='default' filepath='include/linux/usb/gadget.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='udc_stop' type-id='42262596' visibility='default' filepath='include/linux/usb/gadget.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='udc_set_speed' type-id='20950ec7' visibility='default' filepath='include/linux/usb/gadget.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='udc_set_ssp_rate' type-id='50aef520' visibility='default' filepath='include/linux/usb/gadget.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='udc_async_callbacks' type-id='a2faabac' visibility='default' filepath='include/linux/usb/gadget.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='match_ep' type-id='9f35b348' visibility='default' filepath='include/linux/usb/gadget.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='check_config' type-id='42262596' visibility='default' filepath='include/linux/usb/gadget.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/gadget.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/gadget.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/gadget.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/gadget.h' line='343' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c4f6276e' size-in-bits='64' id='83cb8e80'/>
+      <class-decl name='Scsi_Host' size-in-bits='20288' is-struct='yes' visibility='default' filepath='include/scsi/scsi_host.h' line='546' column='1' id='83cec606'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='__devices' type-id='72f469ec' visibility='default' filepath='include/scsi/scsi_host.h' line='555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='__targets' type-id='72f469ec' visibility='default' filepath='include/scsi/scsi_host.h' line='556' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='starved_list' type-id='72f469ec' visibility='default' filepath='include/scsi/scsi_host.h' line='558' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='default_lock' type-id='fb4018a0' visibility='default' filepath='include/scsi/scsi_host.h' line='560' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='host_lock' type-id='cff2d845' visibility='default' filepath='include/scsi/scsi_host.h' line='561' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='scan_mutex' type-id='925167dc' visibility='default' filepath='include/scsi/scsi_host.h' line='563' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='eh_abort_list' type-id='72f469ec' visibility='default' filepath='include/scsi/scsi_host.h' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='eh_cmd_q' type-id='72f469ec' visibility='default' filepath='include/scsi/scsi_host.h' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='ehandler' type-id='f23e2572' visibility='default' filepath='include/scsi/scsi_host.h' line='567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='eh_action' type-id='389faaf7' visibility='default' filepath='include/scsi/scsi_host.h' line='568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='host_wait' type-id='b5ab048f' visibility='default' filepath='include/scsi/scsi_host.h' line='570' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='hostt' type-id='36265581' visibility='default' filepath='include/scsi/scsi_host.h' line='571' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='transportt' type-id='498f47da' visibility='default' filepath='include/scsi/scsi_host.h' line='572' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='tag_set' type-id='651086d7' visibility='default' filepath='include/scsi/scsi_host.h' line='575' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='host_blocked' type-id='49178f86' visibility='default' filepath='include/scsi/scsi_host.h' line='577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4000'>
+          <var-decl name='host_failed' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='579' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='host_eh_scheduled' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='581' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4064'>
+          <var-decl name='host_no' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='583' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='eh_deadline' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_host.h' line='586' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='last_reset' type-id='7359adad' visibility='default' filepath='include/scsi/scsi_host.h' line='587' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='max_channel' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='596' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4256'>
+          <var-decl name='max_id' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='597' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='max_lun' type-id='91ce1af9' visibility='default' filepath='include/scsi/scsi_host.h' line='598' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='unique_id' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='607' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4384'>
+          <var-decl name='max_cmd_len' type-id='8efea9e5' visibility='default' filepath='include/scsi/scsi_host.h' line='616' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='this_id' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_host.h' line='618' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4448'>
+          <var-decl name='can_queue' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_host.h' line='619' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4480'>
+          <var-decl name='cmd_per_lun' type-id='a2185560' visibility='default' filepath='include/scsi/scsi_host.h' line='620' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4496'>
+          <var-decl name='sg_tablesize' type-id='8efea9e5' visibility='default' filepath='include/scsi/scsi_host.h' line='621' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4512'>
+          <var-decl name='sg_prot_tablesize' type-id='8efea9e5' visibility='default' filepath='include/scsi/scsi_host.h' line='622' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4544'>
+          <var-decl name='max_sectors' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='623' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4576'>
+          <var-decl name='max_segment_size' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='624' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4608'>
+          <var-decl name='dma_boundary' type-id='7359adad' visibility='default' filepath='include/scsi/scsi_host.h' line='625' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4672'>
+          <var-decl name='virt_boundary_mask' type-id='7359adad' visibility='default' filepath='include/scsi/scsi_host.h' line='626' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='nr_hw_queues' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='635' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4768'>
+          <var-decl name='nr_maps' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='636' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='active_mode' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='637' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4802'>
+          <var-decl name='host_self_blocked' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='643' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4803'>
+          <var-decl name='reverse_ordering' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='650' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4804'>
+          <var-decl name='tmf_in_progress' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='653' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4805'>
+          <var-decl name='async_scan' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='656' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4806'>
+          <var-decl name='eh_noresume' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='659' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4807'>
+          <var-decl name='no_write_same' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='662' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4808'>
+          <var-decl name='host_tagset' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='665' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4809'>
+          <var-decl name='short_inquiry' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='668' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4810'>
+          <var-decl name='no_scsi2_lun_in_cdb' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='671' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4816'>
+          <var-decl name='work_q_name' type-id='664ac0b7' visibility='default' filepath='include/scsi/scsi_host.h' line='676' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='work_q' type-id='242e3d19' visibility='default' filepath='include/scsi/scsi_host.h' line='677' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5056'>
+          <var-decl name='tmf_work_q' type-id='242e3d19' visibility='default' filepath='include/scsi/scsi_host.h' line='682' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='max_host_blocked' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='687' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5152'>
+          <var-decl name='prot_capabilities' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='690' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='prot_guard_type' type-id='002ac4a6' visibility='default' filepath='include/scsi/scsi_host.h' line='691' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='base' type-id='7359adad' visibility='default' filepath='include/scsi/scsi_host.h' line='694' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5312'>
+          <var-decl name='io_port' type-id='7359adad' visibility='default' filepath='include/scsi/scsi_host.h' line='695' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='n_io_port' type-id='002ac4a6' visibility='default' filepath='include/scsi/scsi_host.h' line='696' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5384'>
+          <var-decl name='dma_channel' type-id='002ac4a6' visibility='default' filepath='include/scsi/scsi_host.h' line='697' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5408'>
+          <var-decl name='irq' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_host.h' line='698' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5440'>
+          <var-decl name='shost_state' type-id='e41e14c7' visibility='default' filepath='include/scsi/scsi_host.h' line='701' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='shost_gendev' type-id='66e487eb' visibility='default' filepath='include/scsi/scsi_host.h' line='704' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12800'>
+          <var-decl name='shost_dev' type-id='66e487eb' visibility='default' filepath='include/scsi/scsi_host.h' line='704' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20096'>
+          <var-decl name='shost_data' type-id='eaa32e2f' visibility='default' filepath='include/scsi/scsi_host.h' line='710' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20160'>
+          <var-decl name='dma_dev' type-id='fa0b179b' visibility='default' filepath='include/scsi/scsi_host.h' line='716' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20224'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/scsi/scsi_host.h' line='718' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20288'>
+          <var-decl name='hostdata' type-id='c99b5ecd' visibility='default' filepath='include/scsi/scsi_host.h' line='725' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='83d13e0e'>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7ca29816'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='06a1c469' size-in-bits='64' id='83d96d05'/>
+      <pointer-type-def type-id='59f3d325' size-in-bits='64' id='83de9118'/>
+      <class-decl name='vring_used' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/virtio_ring.h' line='125' column='1' id='83e62d3d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='b7a93b96' visibility='default' filepath='include/uapi/linux/virtio_ring.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='idx' type-id='b7a93b96' visibility='default' filepath='include/uapi/linux/virtio_ring.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ring' type-id='57ecfe8a' visibility='default' filepath='include/uapi/linux/virtio_ring.h' line='128' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='70ab3bc7' size-in-bits='64' id='83e7c23f'/>
+      <class-decl name='flowidn' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/net/flow.h' line='156' column='1' id='83eba552'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='__fl_common' type-id='184ee240' visibility='default' filepath='include/net/flow.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='daddr' type-id='23119536' visibility='default' filepath='include/net/flow.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='336'>
+          <var-decl name='saddr' type-id='23119536' visibility='default' filepath='include/net/flow.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='uli' type-id='76355708' visibility='default' filepath='include/net/flow.h' line='166' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='83f41bec'>
+        <parameter type-id='5e4f599b'/>
+        <parameter type-id='ce092740'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9a218d2f' size-in-bits='64' id='83f45767'/>
+      <class-decl name='ethtool_rmon_stats' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/linux/ethtool.h' line='384' column='1' id='83fa0aaf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='undersize_pkts' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='385' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='oversize_pkts' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fragments' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='387' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='jabbers' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='hist' type-id='08a70b25' visibility='default' filepath='include/linux/ethtool.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='hist_tx' type-id='08a70b25' visibility='default' filepath='include/linux/ethtool.h' line='391' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='xfrm_algo_auth_info' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/net/xfrm.h' line='1389' column='1' id='8408b0cc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='icv_truncbits' type-id='1dc6a898' visibility='default' filepath='include/net/xfrm.h' line='1390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='icv_fullbits' type-id='1dc6a898' visibility='default' filepath='include/net/xfrm.h' line='1391' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='84096265'>
+        <parameter type-id='fc4f83c1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f0798262' size-in-bits='64' id='841286fc'/>
+      <function-type size-in-bits='64' id='84147814'>
+        <parameter type-id='7a5054b7'/>
+        <parameter type-id='144a5d4c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='58313606' size-in-bits='64' id='841501c0'/>
+      <pointer-type-def type-id='ba400603' size-in-bits='64' id='841939f3'/>
+      <pointer-type-def type-id='8b66a21e' size-in-bits='64' id='841969d0'/>
+      <pointer-type-def type-id='bde8b845' size-in-bits='64' id='841b4311'/>
+      <function-type size-in-bits='64' id='841ff6b5'>
+        <parameter type-id='ecb0ce18'/>
+        <return type-id='9b7c55ef'/>
+      </function-type>
+      <pointer-type-def type-id='f51d2b61' size-in-bits='64' id='8421b09d'/>
+      <function-type size-in-bits='64' id='842232f5'>
+        <parameter type-id='8bf55d78'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='8422a42a'>
+        <parameter type-id='7572cb33'/>
+        <parameter type-id='f8dc9def'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='04c69dd4' size-in-bits='64' id='8425c356'/>
+      <function-type size-in-bits='64' id='8427fe66'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='a079e5cc'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9b7c55ef' size-in-bits='64' id='842ac8d6'/>
+      <class-decl name='led_flash_ops' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/led-class-flash.h' line='33' column='1' id='842b8964'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flash_brightness_set' type-id='8cbb2c12' visibility='default' filepath='include/linux/led-class-flash.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flash_brightness_get' type-id='9630d76f' visibility='default' filepath='include/linux/led-class-flash.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='strobe_set' type-id='3a068a46' visibility='default' filepath='include/linux/led-class-flash.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='strobe_get' type-id='80c2f2c9' visibility='default' filepath='include/linux/led-class-flash.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='timeout_set' type-id='8cbb2c12' visibility='default' filepath='include/linux/led-class-flash.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='fault_get' type-id='9630d76f' visibility='default' filepath='include/linux/led-class-flash.h' line='47' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b8e69071' size-in-bits='64' id='842e09cd'/>
+      <enum-decl name='ufshcd_state' filepath='drivers/scsi/ufs/ufshcd.h' line='507' column='1' id='84323c4d'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='UFSHCD_STATE_RESET' value='0'/>
+        <enumerator name='UFSHCD_STATE_OPERATIONAL' value='1'/>
+        <enumerator name='UFSHCD_STATE_EH_SCHEDULED_NON_FATAL' value='2'/>
+        <enumerator name='UFSHCD_STATE_EH_SCHEDULED_FATAL' value='3'/>
+        <enumerator name='UFSHCD_STATE_ERROR' value='4'/>
+      </enum-decl>
+      <pointer-type-def type-id='7aaba742' size-in-bits='64' id='843888b8'/>
+      <pointer-type-def type-id='f7a1d399' size-in-bits='64' id='8438f281'/>
+      <class-decl name='dw_pcie_ep_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='210' column='1' id='84390049'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ep_init' type-id='08ed88d1' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='raise_irq' type-id='f2ccca1f' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='get_features' type-id='19d36127' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='func_conf_select' type-id='d803107d' visibility='default' filepath='drivers/pci/controller/dwc/pcie-designware.h' line='222' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d0e8296f' size-in-bits='64' id='8443ea63'/>
+      <function-type size-in-bits='64' id='8444449b'>
+        <parameter type-id='e9b5d134'/>
+        <parameter type-id='d0ddd4b8'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='72fc7982' size-in-bits='64' id='844c2e84'/>
+      <function-type size-in-bits='64' id='845f3205'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='5760dcb0'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='7a1bc3c2' size-in-bits='infinite' id='84607bca'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='846120de'>
+        <parameter type-id='2661e0d9'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='473764d9' size-in-bits='64' id='84618a95'/>
+      <class-decl name='ifla_vf_info' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/if_link.h' line='20' column='1' id='8468004b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vf' type-id='3f1a6b60' visibility='default' filepath='include/linux/if_link.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='mac' type-id='7e67d89d' visibility='default' filepath='include/linux/if_link.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='vlan' type-id='3f1a6b60' visibility='default' filepath='include/linux/if_link.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='qos' type-id='3f1a6b60' visibility='default' filepath='include/linux/if_link.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='spoofchk' type-id='3f1a6b60' visibility='default' filepath='include/linux/if_link.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='linkstate' type-id='3f1a6b60' visibility='default' filepath='include/linux/if_link.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='min_tx_rate' type-id='3f1a6b60' visibility='default' filepath='include/linux/if_link.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='max_tx_rate' type-id='3f1a6b60' visibility='default' filepath='include/linux/if_link.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='rss_query_en' type-id='3f1a6b60' visibility='default' filepath='include/linux/if_link.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='trusted' type-id='3f1a6b60' visibility='default' filepath='include/linux/if_link.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='vlan_proto' type-id='84a5c3d4' visibility='default' filepath='include/linux/if_link.h' line='31' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='8470101c'>
+        <parameter type-id='ee406209'/>
+        <return type-id='0fbf3cfd'/>
+      </function-type>
+      <function-type size-in-bits='64' id='84730732'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='26d4d46f'/>
+        <parameter type-id='26d4d46f'/>
+        <parameter type-id='26d4d46f'/>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='d1499e71'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='devlink_rate' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='138' column='1' id='847d9553'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/devlink.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='type' type-id='b4e584cb' visibility='default' filepath='include/net/devlink.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='devlink' type-id='e6b84692' visibility='default' filepath='include/net/devlink.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/net/devlink.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='tx_share' type-id='91ce1af9' visibility='default' filepath='include/net/devlink.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='tx_max' type-id='91ce1af9' visibility='default' filepath='include/net/devlink.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='parent' type-id='63e6cf23' visibility='default' filepath='include/net/devlink.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='' type-id='ac5ab69b' visibility='default' filepath='include/net/devlink.h' line='147' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4950fd30' size-in-bits='64' id='847e6fee'/>
+      <class-decl name='dma_slave_map' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/dmaengine.h' line='765' column='1' id='848612dc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='devname' type-id='80f4b756' visibility='default' filepath='include/linux/dmaengine.h' line='766' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='slave' type-id='80f4b756' visibility='default' filepath='include/linux/dmaengine.h' line='767' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='param' type-id='eaa32e2f' visibility='default' filepath='include/linux/dmaengine.h' line='768' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='849373e7'>
+        <parameter type-id='503ff1ba'/>
+        <parameter type-id='9d3cfa5c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='static_call_key' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/static_call_types.h' line='94' column='1' id='849bbac8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='func' type-id='eaa32e2f' visibility='default' filepath='include/linux/static_call_types.h' line='95' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mtd_oob_region' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/mtd/mtd.h' line='87' column='1' id='849eca58'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='offset' type-id='19c2251e' visibility='default' filepath='include/linux/mtd/mtd.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='length' type-id='19c2251e' visibility='default' filepath='include/linux/mtd/mtd.h' line='89' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='phy_driver' size-in-bits='4096' is-struct='yes' visibility='default' filepath='include/linux/phy.h' line='730' column='1' id='84a0e7ab'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mdiodrv' type-id='7eda6831' visibility='default' filepath='include/linux/phy.h' line='731' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='phy_id' type-id='19c2251e' visibility='default' filepath='include/linux/phy.h' line='732' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/phy.h' line='733' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='phy_id_mask' type-id='19c2251e' visibility='default' filepath='include/linux/phy.h' line='734' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='features' type-id='3635993f' visibility='default' filepath='include/linux/phy.h' line='735' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/linux/phy.h' line='736' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/phy.h' line='737' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='soft_reset' type-id='aa2748ad' visibility='default' filepath='include/linux/phy.h' line='742' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='config_init' type-id='aa2748ad' visibility='default' filepath='include/linux/phy.h' line='748' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='probe' type-id='aa2748ad' visibility='default' filepath='include/linux/phy.h' line='754' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='get_features' type-id='aa2748ad' visibility='default' filepath='include/linux/phy.h' line='760' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='suspend' type-id='aa2748ad' visibility='default' filepath='include/linux/phy.h' line='764' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='resume' type-id='aa2748ad' visibility='default' filepath='include/linux/phy.h' line='766' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='config_aneg' type-id='aa2748ad' visibility='default' filepath='include/linux/phy.h' line='774' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='aneg_done' type-id='aa2748ad' visibility='default' filepath='include/linux/phy.h' line='777' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='read_status' type-id='aa2748ad' visibility='default' filepath='include/linux/phy.h' line='780' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='config_intr' type-id='aa2748ad' visibility='default' filepath='include/linux/phy.h' line='787' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='handle_interrupt' type-id='493df672' visibility='default' filepath='include/linux/phy.h' line='790' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='remove' type-id='0634414a' visibility='default' filepath='include/linux/phy.h' line='793' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='match_phy_device' type-id='aa2748ad' visibility='default' filepath='include/linux/phy.h' line='800' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='set_wol' type-id='47f66a6b' visibility='default' filepath='include/linux/phy.h' line='808' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='get_wol' type-id='887cf9b8' visibility='default' filepath='include/linux/phy.h' line='814' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='link_change_notify' type-id='0634414a' visibility='default' filepath='include/linux/phy.h' line='824' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='read_mmd' type-id='3eb4a20d' visibility='default' filepath='include/linux/phy.h' line='836' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='write_mmd' type-id='4c9695fa' visibility='default' filepath='include/linux/phy.h' line='848' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='read_page' type-id='aa2748ad' visibility='default' filepath='include/linux/phy.h' line='852' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='write_page' type-id='b1be7154' visibility='default' filepath='include/linux/phy.h' line='854' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='module_info' type-id='930fcda9' visibility='default' filepath='include/linux/phy.h' line='860' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='module_eeprom' type-id='51f1236c' visibility='default' filepath='include/linux/phy.h' line='867' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='cable_test_start' type-id='aa2748ad' visibility='default' filepath='include/linux/phy.h' line='871' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='cable_test_tdr_start' type-id='5d5d13c3' visibility='default' filepath='include/linux/phy.h' line='874' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='cable_test_get_status' type-id='5a7e97ef' visibility='default' filepath='include/linux/phy.h' line='881' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='get_sset_count' type-id='aa2748ad' visibility='default' filepath='include/linux/phy.h' line='885' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='get_strings' type-id='0cce9961' visibility='default' filepath='include/linux/phy.h' line='887' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='get_stats' type-id='44fd4636' visibility='default' filepath='include/linux/phy.h' line='889' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='get_tunable' type-id='1cc860f2' visibility='default' filepath='include/linux/phy.h' line='894' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='set_tunable' type-id='1cc860f2' visibility='default' filepath='include/linux/phy.h' line='897' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='set_loopback' type-id='f727c4d8' visibility='default' filepath='include/linux/phy.h' line='901' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='get_sqi' type-id='aa2748ad' visibility='default' filepath='include/linux/phy.h' line='903' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3904'>
+          <var-decl name='get_sqi_max' type-id='aa2748ad' visibility='default' filepath='include/linux/phy.h' line='905' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/phy.h' line='907' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/phy.h' line='908' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fwnode_endpoint' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/fwnode.h' line='62' column='1' id='84a13146'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='port' type-id='f0981eeb' visibility='default' filepath='include/linux/fwnode.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='id' type-id='f0981eeb' visibility='default' filepath='include/linux/fwnode.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='local_fwnode' type-id='7837cd88' visibility='default' filepath='include/linux/fwnode.h' line='65' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='__be16' type-id='d315442e' filepath='include/uapi/linux/types.h' line='30' column='1' id='84a5c3d4'/>
+      <pointer-type-def type-id='c6c057c3' size-in-bits='64' id='84a80557'/>
+      <array-type-def dimensions='1' type-id='f22a8abb' size-in-bits='704' id='84a8f722'>
+        <subrange length='11' type-id='7ff19f0f' id='847bc017'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='84abfe24'>
+        <parameter type-id='58ed56f5'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='78c01427'/>
+        <parameter type-id='63e171df'/>
+        <parameter type-id='9e6a6c02'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='b50a4934' size-in-bits='128' id='84b1e060'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <class-decl name='ethtool_fec_stats' size-in-bits='1728' is-struct='yes' visibility='default' filepath='include/linux/ethtool.h' line='349' column='1' id='84b3d3cb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='corrected_blocks' type-id='33d7279a' visibility='default' filepath='include/linux/ethtool.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='uncorrectable_blocks' type-id='33d7279a' visibility='default' filepath='include/linux/ethtool.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='corrected_bits' type-id='33d7279a' visibility='default' filepath='include/linux/ethtool.h' line='353' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ebb550f0' size-in-bits='64' id='84ba3262'/>
+      <pointer-type-def type-id='a49fa2a0' size-in-bits='64' id='84bbda06'/>
+      <pointer-type-def type-id='bd4e4ac8' size-in-bits='64' id='84c1f5fe'/>
+      <pointer-type-def type-id='b92c8d0d' size-in-bits='64' id='84c6078d'/>
+      <pointer-type-def type-id='f660d147' size-in-bits='64' id='84caa74f'/>
+      <pointer-type-def type-id='0f590202' size-in-bits='64' id='84d8e9b4'/>
+      <class-decl name='gpio' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/gpio.h' line='50' column='1' id='84d91c62'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='gpio' type-id='f0981eeb' visibility='default' filepath='include/linux/gpio.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/gpio.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='label' type-id='80f4b756' visibility='default' filepath='include/linux/gpio.h' line='53' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fqdir' size-in-bits='2560' is-struct='yes' visibility='default' filepath='include/net/inet_frag.h' line='9' column='1' id='84dbb257'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='high_thresh' type-id='bd54fe1a' visibility='default' filepath='include/net/inet_frag.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='low_thresh' type-id='bd54fe1a' visibility='default' filepath='include/net/inet_frag.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='timeout' type-id='95e97e5e' visibility='default' filepath='include/net/inet_frag.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='max_dist' type-id='95e97e5e' visibility='default' filepath='include/net/inet_frag.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='f' type-id='f6c3a7a5' visibility='default' filepath='include/net/inet_frag.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='net' type-id='a2bff676' visibility='default' filepath='include/net/inet_frag.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dead' type-id='b50a4934' visibility='default' filepath='include/net/inet_frag.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='rhashtable' type-id='9e095f93' visibility='default' filepath='include/net/inet_frag.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='mem' type-id='f22a8abb' visibility='default' filepath='include/net/inet_frag.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='destroy_work' type-id='ef9025d0' visibility='default' filepath='include/net/inet_frag.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='free_list' type-id='c5ccfee8' visibility='default' filepath='include/net/inet_frag.h' line='24' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='cleancache_ops' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/cleancache.h' line='30' column='1' id='84e286f7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='init_fs' type-id='91e97dfa' visibility='default' filepath='include/linux/cleancache.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='init_shared_fs' type-id='6aee814c' visibility='default' filepath='include/linux/cleancache.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='get_page' type-id='8630b79a' visibility='default' filepath='include/linux/cleancache.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='put_page' type-id='abcbc265' visibility='default' filepath='include/linux/cleancache.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='invalidate_page' type-id='9f3175a0' visibility='default' filepath='include/linux/cleancache.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='invalidate_inode' type-id='92563c50' visibility='default' filepath='include/linux/cleancache.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='invalidate_fs' type-id='03347643' visibility='default' filepath='include/linux/cleancache.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='android_oem_data1' type-id='91ce1af9' visibility='default' filepath='include/linux/cleancache.h' line='40' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='84e4381f'>
+        <parameter type-id='8bf48c31'/>
+        <parameter type-id='bc57058f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='84ec62b0'>
+        <parameter type-id='fc4f83c1'/>
+        <parameter type-id='25e60cb2'/>
+        <parameter type-id='5c744d74'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='3eb7c31c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='84f0d8f8'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='5f51e977'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='633e3a60' size-in-bits='64' id='84f5c27e'/>
+      <class-decl name='ff_condition_effect' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/input.h' line='372' column='1' id='84fc83c5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='right_saturation' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='373' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='left_saturation' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='374' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='right_coeff' type-id='b55def60' visibility='default' filepath='include/uapi/linux/input.h' line='376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='left_coeff' type-id='b55def60' visibility='default' filepath='include/uapi/linux/input.h' line='377' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='deadband' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='center' type-id='b55def60' visibility='default' filepath='include/uapi/linux/input.h' line='380' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='38f02a1a' size-in-bits='64' id='850009e4'/>
+      <class-decl name='aead_request' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/crypto/aead.h' line='87' column='1' id='850096b4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='5e6083f1' visibility='default' filepath='include/crypto/aead.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='assoclen' type-id='f0981eeb' visibility='default' filepath='include/crypto/aead.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='cryptlen' type-id='f0981eeb' visibility='default' filepath='include/crypto/aead.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='iv' type-id='8bff8096' visibility='default' filepath='include/crypto/aead.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='src' type-id='bf3ef905' visibility='default' filepath='include/crypto/aead.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='dst' type-id='bf3ef905' visibility='default' filepath='include/crypto/aead.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='__ctx' type-id='baf98fd3' visibility='default' filepath='include/crypto/aead.h' line='98' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9f8b0d0f' size-in-bits='64' id='8502fa27'/>
+      <typedef-decl name='dev_t' type-id='8f336000' filepath='include/linux/types.h' line='16' column='1' id='8504f260'/>
+      <pointer-type-def type-id='b06eb6f0' size-in-bits='64' id='850c13f6'/>
+      <pointer-type-def type-id='5c93f9a7' size-in-bits='64' id='85196e3f'/>
+      <pointer-type-def type-id='c3c45f7d' size-in-bits='64' id='852215f5'/>
+      <class-decl name='page_pool' size-in-bits='12800' is-struct='yes' visibility='default' filepath='include/net/page_pool.h' line='86' column='1' id='8523d8c1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='p' type-id='649f7ac8' visibility='default' filepath='include/net/page_pool.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='release_dw' type-id='5ad6e0ef' visibility='default' filepath='include/net/page_pool.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='disconnect' type-id='b7f9d8e6' visibility='default' filepath='include/net/page_pool.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='defer_start' type-id='7359adad' visibility='default' filepath='include/net/page_pool.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='defer_warn' type-id='7359adad' visibility='default' filepath='include/net/page_pool.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='pages_state_hold_cnt' type-id='19c2251e' visibility='default' filepath='include/net/page_pool.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1632'>
+          <var-decl name='frag_offset' type-id='f0981eeb' visibility='default' filepath='include/net/page_pool.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='frag_page' type-id='02f11ed4' visibility='default' filepath='include/net/page_pool.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='frag_users' type-id='bd54fe1a' visibility='default' filepath='include/net/page_pool.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='alloc' type-id='271cf31a' visibility='default' filepath='include/net/page_pool.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10752'>
+          <var-decl name='ring' type-id='20ea7550' visibility='default' filepath='include/net/page_pool.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12288'>
+          <var-decl name='pages_state_release_cnt' type-id='49178f86' visibility='default' filepath='include/net/page_pool.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12320'>
+          <var-decl name='user_cnt' type-id='64615833' visibility='default' filepath='include/net/page_pool.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12352'>
+          <var-decl name='destroy_cnt' type-id='91ce1af9' visibility='default' filepath='include/net/page_pool.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12416'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/page_pool.h' line='137' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='299608ee' size-in-bits='64' id='85280418'/>
+      <class-decl name='netlink_ext_ack' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/netlink.h' line='77' column='1' id='852a961e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='_msg' type-id='80f4b756' visibility='default' filepath='include/linux/netlink.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bad_attr' type-id='0f2a7ce5' visibility='default' filepath='include/linux/netlink.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='policy' type-id='109cdb66' visibility='default' filepath='include/linux/netlink.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cookie' type-id='5429fe4a' visibility='default' filepath='include/linux/netlink.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='cookie_len' type-id='f9b06939' visibility='default' filepath='include/linux/netlink.h' line='82' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='blk_ksm_ll_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/keyslot-manager.h' line='39' column='1' id='85385c54'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='keyslot_program' type-id='c1e89b34' visibility='default' filepath='include/linux/keyslot-manager.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='keyslot_evict' type-id='c1e89b34' visibility='default' filepath='include/linux/keyslot-manager.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='derive_raw_secret' type-id='9f82b8fd' visibility='default' filepath='include/linux/keyslot-manager.h' line='46' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d3e6437c' size-in-bits='64' id='8543fa2a'/>
+      <class-decl name='sock_cgroup_data' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/cgroup-defs.h' line='762' column='1' id='8544f103'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cgroup' type-id='46ff135d' visibility='default' filepath='include/linux/cgroup-defs.h' line='763' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='prioidx' type-id='1dc6a898' visibility='default' filepath='include/linux/cgroup-defs.h' line='768' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='rchan_callbacks' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/relay.h' line='80' column='1' id='854c671a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='subbuf_start' type-id='89d4fdc8' visibility='default' filepath='include/linux/relay.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='create_buf_file' type-id='7a564208' visibility='default' filepath='include/linux/relay.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='remove_buf_file' type-id='6241aa4f' visibility='default' filepath='include/linux/relay.h' line='149' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='2a8a6332' const='yes' id='8552664d'/>
+      <pointer-type-def type-id='4a078c54' size-in-bits='64' id='85535682'/>
+      <pointer-type-def type-id='d52c7591' size-in-bits='64' id='855e3679'/>
+      <pointer-type-def type-id='be97e3d8' size-in-bits='64' id='855e70d2'/>
+      <pointer-type-def type-id='9a537bbe' size-in-bits='64' id='856b89fc'/>
+      <pointer-type-def type-id='4898cbb1' size-in-bits='64' id='857028e5'/>
+      <class-decl name='seq_buf' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/seq_buf.h' line='19' column='1' id='857188d6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='buffer' type-id='26a90f95' visibility='default' filepath='include/linux/seq_buf.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='include/linux/seq_buf.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='len' type-id='b59d7dce' visibility='default' filepath='include/linux/seq_buf.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='readpos' type-id='69bf7bee' visibility='default' filepath='include/linux/seq_buf.h' line='23' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='8573c495'>
+        <parameter type-id='58ed56f5'/>
+        <parameter type-id='5ab0d905'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='47d6ff44' size-in-bits='64' id='85741a2a'/>
+      <array-type-def dimensions='1' type-id='a3274c4b' size-in-bits='5120' id='8574e02e'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <pointer-type-def type-id='1b8fa461' size-in-bits='64' id='857611a9'/>
+      <pointer-type-def type-id='9906d117' size-in-bits='64' id='857d6f7f'/>
+      <function-type size-in-bits='64' id='857ecf83'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='4394e2c1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='857f27d6'>
+        <parameter type-id='abd62a96'/>
+        <parameter type-id='9e99ecc1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ZSTD_CStream_s' size-in-bits='1600' is-struct='yes' visibility='default' filepath='lib/zstd/compress.c' line='2950' column='1' id='85804ba6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cctx' type-id='2d633cf1' visibility='default' filepath='lib/zstd/compress.c' line='2951' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cdictLocal' type-id='42427e0a' visibility='default' filepath='lib/zstd/compress.c' line='2952' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cdict' type-id='17580109' visibility='default' filepath='lib/zstd/compress.c' line='2953' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='inBuff' type-id='26a90f95' visibility='default' filepath='lib/zstd/compress.c' line='2954' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='inBuffSize' type-id='b59d7dce' visibility='default' filepath='lib/zstd/compress.c' line='2955' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='inToCompress' type-id='b59d7dce' visibility='default' filepath='lib/zstd/compress.c' line='2956' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='inBuffPos' type-id='b59d7dce' visibility='default' filepath='lib/zstd/compress.c' line='2957' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='inBuffTarget' type-id='b59d7dce' visibility='default' filepath='lib/zstd/compress.c' line='2958' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='blockSize' type-id='b59d7dce' visibility='default' filepath='lib/zstd/compress.c' line='2959' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='outBuff' type-id='26a90f95' visibility='default' filepath='lib/zstd/compress.c' line='2960' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='outBuffSize' type-id='b59d7dce' visibility='default' filepath='lib/zstd/compress.c' line='2961' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='outBuffContentSize' type-id='b59d7dce' visibility='default' filepath='lib/zstd/compress.c' line='2962' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='outBuffFlushedSize' type-id='b59d7dce' visibility='default' filepath='lib/zstd/compress.c' line='2963' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='stage' type-id='420ee85d' visibility='default' filepath='lib/zstd/compress.c' line='2964' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='checksum' type-id='7d89f13e' visibility='default' filepath='lib/zstd/compress.c' line='2965' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='frameEnded' type-id='7d89f13e' visibility='default' filepath='lib/zstd/compress.c' line='2966' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='pledgedSrcSize' type-id='7596b099' visibility='default' filepath='lib/zstd/compress.c' line='2967' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='inputProcessed' type-id='7596b099' visibility='default' filepath='lib/zstd/compress.c' line='2968' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='params' type-id='b7b81df8' visibility='default' filepath='lib/zstd/compress.c' line='2969' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='customMem' type-id='4cf8679c' visibility='default' filepath='lib/zstd/compress.c' line='2970' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='97db9237' size-in-bits='64' id='8581ac2b'/>
+      <pointer-type-def type-id='87c471e6' size-in-bits='64' id='8582e5ec'/>
+      <function-type size-in-bits='64' id='85832c21'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d8e691ae' size-in-bits='64' id='858575b8'/>
+      <function-type size-in-bits='64' id='858c6d7b'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='d494b97c'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='usb_cdc_ncm_dpe32' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='386' column='1' id='85938ec6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dwDatagramIndex' type-id='2f162548' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='387' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='dwDatagramLength' type-id='2f162548' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='388' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_dp_mst_topology_cbs' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='516' column='1' id='8596da29'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='add_connector' type-id='89bd4f61' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='518' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='poll_hpd_irq' type-id='7a134fac' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='527' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='0a981d27' size-in-bits='2048' id='859a2dd8'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='859caa73'>
+        <parameter type-id='2661e0d9'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='perf_regs' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/perf_regs.h' line='7' column='1' id='85b37ab4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='abi' type-id='d3130597' visibility='default' filepath='include/linux/perf_regs.h' line='8' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='regs' type-id='4616a179' visibility='default' filepath='include/linux/perf_regs.h' line='9' column='1'/>
+        </data-member>
+      </class-decl>
+      <union-decl name='snd_pcm_sync_id' size-in-bits='128' visibility='default' filepath='include/uapi/sound/asound.h' line='340' column='1' id='85b4e5de'>
+        <data-member access='public'>
+          <var-decl name='id' type-id='92a46553' visibility='default' filepath='include/uapi/sound/asound.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='id16' type-id='ff13edc1' visibility='default' filepath='include/uapi/sound/asound.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='id32' type-id='49580a63' visibility='default' filepath='include/uapi/sound/asound.h' line='343' column='1'/>
+        </data-member>
+      </union-decl>
+      <function-type size-in-bits='64' id='85b51308'>
+        <parameter type-id='226853d2'/>
+        <parameter type-id='f74174a4'/>
+        <parameter type-id='a6a0d755'/>
+        <parameter type-id='7292109c'/>
+        <parameter type-id='7292109c'/>
+        <parameter type-id='bd54fe1a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='314e713e' size-in-bits='64' id='85b59624'/>
+      <class-decl name='fib_info' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/net/ip_fib.h' line='131' column='1' id='85bdf127'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fib_hash' type-id='03a4a074' visibility='default' filepath='include/net/ip_fib.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fib_lhash' type-id='03a4a074' visibility='default' filepath='include/net/ip_fib.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='nh_list' type-id='72f469ec' visibility='default' filepath='include/net/ip_fib.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='fib_net' type-id='a2bff676' visibility='default' filepath='include/net/ip_fib.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='fib_treeref' type-id='64615833' visibility='default' filepath='include/net/ip_fib.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='fib_clntref' type-id='64615833' visibility='default' filepath='include/net/ip_fib.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='fib_flags' type-id='f0981eeb' visibility='default' filepath='include/net/ip_fib.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='fib_dead' type-id='002ac4a6' visibility='default' filepath='include/net/ip_fib.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='552'>
+          <var-decl name='fib_protocol' type-id='002ac4a6' visibility='default' filepath='include/net/ip_fib.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='560'>
+          <var-decl name='fib_scope' type-id='002ac4a6' visibility='default' filepath='include/net/ip_fib.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='568'>
+          <var-decl name='fib_type' type-id='002ac4a6' visibility='default' filepath='include/net/ip_fib.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='fib_prefsrc' type-id='78a133c2' visibility='default' filepath='include/net/ip_fib.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='fib_tb_id' type-id='19c2251e' visibility='default' filepath='include/net/ip_fib.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='fib_priority' type-id='19c2251e' visibility='default' filepath='include/net/ip_fib.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='fib_metrics' type-id='8eff91b0' visibility='default' filepath='include/net/ip_fib.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='fib_nhs' type-id='95e97e5e' visibility='default' filepath='include/net/ip_fib.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='fib_nh_is_v6' type-id='b50a4934' visibility='default' filepath='include/net/ip_fib.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='808'>
+          <var-decl name='nh_updated' type-id='b50a4934' visibility='default' filepath='include/net/ip_fib.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='nh' type-id='f32120a7' visibility='default' filepath='include/net/ip_fib.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/ip_fib.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='fib_nh' type-id='c094d415' visibility='default' filepath='include/net/ip_fib.h' line='156' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='nf_hook_entries' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/netfilter.h' line='108' column='1' id='85c08b52'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='num_hook_entries' type-id='1dc6a898' visibility='default' filepath='include/linux/netfilter.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hooks' type-id='84607bca' visibility='default' filepath='include/linux/netfilter.h' line='111' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_configuration' size-in-bits='1792' is-struct='yes' visibility='default' filepath='include/linux/usb/composite.h' line='302' column='1' id='85c151d0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='label' type-id='80f4b756' visibility='default' filepath='include/linux/usb/composite.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='strings' type-id='fa0eba8f' visibility='default' filepath='include/linux/usb/composite.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='descriptors' type-id='1993c682' visibility='default' filepath='include/linux/usb/composite.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='unbind' type-id='b7daa1eb' visibility='default' filepath='include/linux/usb/composite.h' line='313' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='setup' type-id='04b7616c' visibility='default' filepath='include/linux/usb/composite.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='bConfigurationValue' type-id='f9b06939' visibility='default' filepath='include/linux/usb/composite.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='328'>
+          <var-decl name='iConfiguration' type-id='f9b06939' visibility='default' filepath='include/linux/usb/composite.h' line='319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='336'>
+          <var-decl name='bmAttributes' type-id='f9b06939' visibility='default' filepath='include/linux/usb/composite.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='MaxPower' type-id='1dc6a898' visibility='default' filepath='include/linux/usb/composite.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='cdev' type-id='2a895c01' visibility='default' filepath='include/linux/usb/composite.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/usb/composite.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='functions' type-id='72f469ec' visibility='default' filepath='include/linux/usb/composite.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='next_interface_id' type-id='f9b06939' visibility='default' filepath='include/linux/usb/composite.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='712'>
+          <var-decl name='superspeed' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/composite.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='713'>
+          <var-decl name='highspeed' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/composite.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='714'>
+          <var-decl name='fullspeed' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/composite.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='715'>
+          <var-decl name='superspeed_plus' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/composite.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='interface' type-id='9c207f89' visibility='default' filepath='include/linux/usb/composite.h' line='334' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='crypto_instance' size-in-bits='4096' is-struct='yes' visibility='default' filepath='include/crypto/algapi.h' line='46' column='1' id='85c172d2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='alg' type-id='514fe525' visibility='default' filepath='include/crypto/algapi.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='tmpl' type-id='f0f856cb' visibility='default' filepath='include/crypto/algapi.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='' type-id='ac5ab5ae' visibility='default' filepath='include/crypto/algapi.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='__ctx' type-id='baf98fd3' visibility='default' filepath='include/crypto/algapi.h' line='58' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='Qdisc' size-in-bits='2560' is-struct='yes' visibility='default' filepath='include/net/sch_generic.h' line='66' column='1' id='85c22421'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='enqueue' type-id='3d6e005b' visibility='default' filepath='include/net/sch_generic.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dequeue' type-id='3d95b5f6' visibility='default' filepath='include/net/sch_generic.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/net/sch_generic.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='limit' type-id='19c2251e' visibility='default' filepath='include/net/sch_generic.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ops' type-id='aa7f9205' visibility='default' filepath='include/net/sch_generic.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='stab' type-id='2e2106be' visibility='default' filepath='include/net/sch_generic.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='hash' type-id='03a4a074' visibility='default' filepath='include/net/sch_generic.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='handle' type-id='19c2251e' visibility='default' filepath='include/net/sch_generic.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='parent' type-id='19c2251e' visibility='default' filepath='include/net/sch_generic.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='dev_queue' type-id='35b28c4f' visibility='default' filepath='include/net/sch_generic.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='rate_est' type-id='8c1bb0b4' visibility='default' filepath='include/net/sch_generic.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='cpu_bstats' type-id='b3542b31' visibility='default' filepath='include/net/sch_generic.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='cpu_qstats' type-id='338303f5' visibility='default' filepath='include/net/sch_generic.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='pad' type-id='95e97e5e' visibility='default' filepath='include/net/sch_generic.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/net/sch_generic.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='gso_skb' type-id='e61c85d0' visibility='default' filepath='include/net/sch_generic.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='q' type-id='d34f2f01' visibility='default' filepath='include/net/sch_generic.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='bstats' type-id='1f9b1a31' visibility='default' filepath='include/net/sch_generic.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='running' type-id='e14c3b11' visibility='default' filepath='include/net/sch_generic.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='qstats' type-id='a212a715' visibility='default' filepath='include/net/sch_generic.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='state' type-id='7359adad' visibility='default' filepath='include/net/sch_generic.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='next_sched' type-id='ee406209' visibility='default' filepath='include/net/sch_generic.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='skb_bad_txq' type-id='e61c85d0' visibility='default' filepath='include/net/sch_generic.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='busylock' type-id='fb4018a0' visibility='default' filepath='include/net/sch_generic.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2080'>
+          <var-decl name='seqlock' type-id='fb4018a0' visibility='default' filepath='include/net/sch_generic.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/sch_generic.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/sch_generic.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='privdata' type-id='8688d60a' visibility='default' filepath='include/net/sch_generic.h' line='126' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='9c313c2d' size-in-bits='256' id='85c64d26'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <pointer-type-def type-id='afbeac63' size-in-bits='64' id='85d57723'/>
+      <pointer-type-def type-id='4d8b71ac' size-in-bits='64' id='85d83b09'/>
+      <pointer-type-def type-id='dad263ec' size-in-bits='64' id='85dc754e'/>
+      <pointer-type-def type-id='cc1cf303' size-in-bits='64' id='85e33ca3'/>
+      <pointer-type-def type-id='7506f11b' size-in-bits='64' id='85e4ab0f'/>
+      <class-decl name='component_master_ops' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/component.h' line='52' column='1' id='85fa4490'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bind' type-id='613d39f5' visibility='default' filepath='include/linux/component.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='unbind' type-id='dd787f72' visibility='default' filepath='include/linux/component.h' line='82' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='iommu_fault_unrecoverable' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/linux/iommu.h' line='69' column='1' id='85fb8e73'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reason' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pasid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='perm' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='addr' type-id='d3130597' visibility='default' filepath='include/uapi/linux/iommu.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fetch_addr' type-id='d3130597' visibility='default' filepath='include/uapi/linux/iommu.h' line='78' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='c0e32d5e' const='yes' id='860353ed'/>
+      <pointer-type-def type-id='a82fc150' size-in-bits='64' id='86089bb2'/>
+      <pointer-type-def type-id='60d50d6a' size-in-bits='64' id='860d0bc4'/>
+      <pointer-type-def type-id='d385bfac' size-in-bits='64' id='8616a4a6'/>
+      <pointer-type-def type-id='8dbba1ec' size-in-bits='64' id='861f302a'/>
+      <class-decl name='cpufreq_cpuinfo' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/cpufreq.h' line='47' column='1' id='861f63ae'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='max_freq' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='min_freq' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='transition_latency' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='52' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0b001c1f' size-in-bits='64' id='862c676f'/>
+      <pointer-type-def type-id='fb647348' size-in-bits='64' id='8630b79a'/>
+      <function-type size-in-bits='64' id='8634a879'>
+        <parameter type-id='00cf0c80'/>
+        <parameter type-id='f06adae0'/>
+        <parameter type-id='c2c81069'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='48b94b91' size-in-bits='896' id='86405b03'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='ceff8680' size-in-bits='64' id='8640fd9e'/>
+      <pointer-type-def type-id='b2d59d2a' size-in-bits='64' id='86462700'/>
+      <enum-decl name='nl80211_iftype' filepath='include/uapi/linux/nl80211.h' line='3427' column='1' id='86505f90'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NL80211_IFTYPE_UNSPECIFIED' value='0'/>
+        <enumerator name='NL80211_IFTYPE_ADHOC' value='1'/>
+        <enumerator name='NL80211_IFTYPE_STATION' value='2'/>
+        <enumerator name='NL80211_IFTYPE_AP' value='3'/>
+        <enumerator name='NL80211_IFTYPE_AP_VLAN' value='4'/>
+        <enumerator name='NL80211_IFTYPE_WDS' value='5'/>
+        <enumerator name='NL80211_IFTYPE_MONITOR' value='6'/>
+        <enumerator name='NL80211_IFTYPE_MESH_POINT' value='7'/>
+        <enumerator name='NL80211_IFTYPE_P2P_CLIENT' value='8'/>
+        <enumerator name='NL80211_IFTYPE_P2P_GO' value='9'/>
+        <enumerator name='NL80211_IFTYPE_P2P_DEVICE' value='10'/>
+        <enumerator name='NL80211_IFTYPE_OCB' value='11'/>
+        <enumerator name='NL80211_IFTYPE_NAN' value='12'/>
+        <enumerator name='NUM_NL80211_IFTYPES' value='13'/>
+        <enumerator name='NL80211_IFTYPE_MAX' value='12'/>
+      </enum-decl>
+      <pointer-type-def type-id='a8ee3f87' size-in-bits='64' id='865e6323'/>
+      <function-type size-in-bits='64' id='86607661'>
+        <parameter type-id='3591079f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='drm_dp_sideband_msg_rx' size-in-bits='2608' is-struct='yes' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='180' column='1' id='86641ab5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='chunk' type-id='6aa9aca0' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='msg' type-id='dbaf9da9' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='curchunk_len' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2440'>
+          <var-decl name='curchunk_idx' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2448'>
+          <var-decl name='curchunk_hdrlen' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2456'>
+          <var-decl name='curlen' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2464'>
+          <var-decl name='have_somt' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2472'>
+          <var-decl name='have_eomt' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2480'>
+          <var-decl name='initial_hdr' type-id='d10fcb8b' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='189' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a79c02b8' size-in-bits='64' id='8665c98e'/>
+      <function-type size-in-bits='64' id='86717875'>
+        <parameter type-id='8582e5ec'/>
+        <parameter type-id='67bbaeda'/>
+        <parameter type-id='35078cb9'/>
+        <parameter type-id='249ef586'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='f9409001'/>
+      </function-type>
+      <class-decl name='mtd_erase_region_info' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/mtd/mtd.h' line='36' column='1' id='867287cb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='offset' type-id='9c313c2d' visibility='default' filepath='include/linux/mtd/mtd.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='erasesize' type-id='8f92235e' visibility='default' filepath='include/linux/mtd/mtd.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='numblocks' type-id='8f92235e' visibility='default' filepath='include/linux/mtd/mtd.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lockmap' type-id='1d2c2b85' visibility='default' filepath='include/linux/mtd/mtd.h' line='40' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='86768fbb'>
+        <parameter type-id='b9af02c3'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='8efea9e5'/>
+        <parameter type-id='a84c031d'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='a556dccb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='ea4ec523' size-in-bits='64' id='8679be0f'/>
+      <pointer-type-def type-id='eb5d0d8b' size-in-bits='64' id='8680af2b'/>
+      <qualified-type-def type-id='4a0784fb' const='yes' id='8681f81c'/>
+      <function-type size-in-bits='64' id='8684c7e6'>
+        <parameter type-id='49a58c0c'/>
+        <parameter type-id='a07d0491'/>
+        <parameter type-id='dd810384'/>
+        <return type-id='63a08bf7'/>
+      </function-type>
+      <pointer-type-def type-id='8a2fc45e' size-in-bits='64' id='86856550'/>
+      <array-type-def dimensions='1' type-id='bd54fe1a' size-in-bits='infinite' id='8688d60a'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='9127cd0e' size-in-bits='64' id='868c74f4'/>
+      <function-type size-in-bits='64' id='868d8193'>
+        <parameter type-id='1c936db9'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='86933835'>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='8695633e'>
+        <parameter type-id='51a94113'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='18d76f87'/>
+      </function-type>
+      <class-decl name='kmem_cache_cpu' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/slub_def.h' line='48' column='1' id='8696da2b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='freelist' type-id='63e171df' visibility='default' filepath='include/linux/slub_def.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tid' type-id='7359adad' visibility='default' filepath='include/linux/slub_def.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='page' type-id='02f11ed4' visibility='default' filepath='include/linux/slub_def.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='partial' type-id='02f11ed4' visibility='default' filepath='include/linux/slub_def.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='lock' type-id='3f67630c' visibility='default' filepath='include/linux/slub_def.h' line='55' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='869f5d80'>
+        <parameter type-id='02f11ed4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='86a0b663'>
+        <parameter type-id='267580ce'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='3ea82289' const='yes' id='86af1d10'/>
+      <class-decl name='net_device_path_ctx' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='926' column='1' id='86af1f09'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='2ce52478' visibility='default' filepath='include/linux/netdevice.h' line='927' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='daddr' type-id='cf1a4160' visibility='default' filepath='include/linux/netdevice.h' line='928' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='num_vlans' type-id='95e97e5e' visibility='default' filepath='include/linux/netdevice.h' line='930' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='vlan' type-id='bbbeef4a' visibility='default' filepath='include/linux/netdevice.h' line='934' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='86bc8898'>
+        <parameter type-id='74d89ebd'/>
+        <parameter type-id='745b39e8'/>
+        <parameter type-id='11e02f83'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <array-type-def dimensions='2' type-id='8f048e17' size-in-bits='32' id='86be53ee'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='031e8b8d' size-in-bits='64' id='86c0ad39'/>
+      <array-type-def dimensions='1' type-id='b50a4934' size-in-bits='16' id='86c49187'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='86c85b12'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='30864cdc'/>
+        <parameter type-id='30864cdc'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='98aa4684' size-in-bits='64' id='86d04516'/>
+      <class-decl name='ieee80211_wmm_ac' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/regulatory.h' line='205' column='1' id='86d70780'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cw_min' type-id='1dc6a898' visibility='default' filepath='include/net/regulatory.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='cw_max' type-id='1dc6a898' visibility='default' filepath='include/net/regulatory.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='cot' type-id='1dc6a898' visibility='default' filepath='include/net/regulatory.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='aifsn' type-id='f9b06939' visibility='default' filepath='include/net/regulatory.h' line='209' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='fault_flag' filepath='include/linux/mm.h' line='472' column='1' id='86db32eb'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='FAULT_FLAG_WRITE' value='1'/>
+        <enumerator name='FAULT_FLAG_MKWRITE' value='2'/>
+        <enumerator name='FAULT_FLAG_ALLOW_RETRY' value='4'/>
+        <enumerator name='FAULT_FLAG_RETRY_NOWAIT' value='8'/>
+        <enumerator name='FAULT_FLAG_KILLABLE' value='16'/>
+        <enumerator name='FAULT_FLAG_TRIED' value='32'/>
+        <enumerator name='FAULT_FLAG_USER' value='64'/>
+        <enumerator name='FAULT_FLAG_REMOTE' value='128'/>
+        <enumerator name='FAULT_FLAG_INSTRUCTION' value='256'/>
+        <enumerator name='FAULT_FLAG_INTERRUPTIBLE' value='512'/>
+        <enumerator name='FAULT_FLAG_SPECULATIVE' value='1024'/>
+      </enum-decl>
+      <typedef-decl name='vb2_thread_fnc' type-id='c4cd4be2' filepath='include/media/videobuf2-core.h' line='1068' column='1' id='86e6f91d'/>
+      <pointer-type-def type-id='5f4720b2' size-in-bits='64' id='86ec8614'/>
+      <pointer-type-def type-id='2acb65d8' size-in-bits='64' id='86f7f60e'/>
+      <pointer-type-def type-id='b9c125a5' size-in-bits='64' id='86f9d4a5'/>
+      <function-type size-in-bits='64' id='86ff0c70'>
+        <parameter type-id='11777d05'/>
+        <parameter type-id='02d37f68'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='i3c_bus' size-in-bits='1344' is-struct='yes' visibility='default' filepath='include/linux/i3c/master.h' line='332' column='1' id='8707bb0f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cur_master' type-id='e9b5d134' visibility='default' filepath='include/linux/i3c/master.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/i3c/master.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='addrslots' type-id='f46d9f4d' visibility='default' filepath='include/linux/i3c/master.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='mode' type-id='004389a6' visibility='default' filepath='include/linux/i3c/master.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='scl_rate' type-id='e7f43fb1' visibility='default' filepath='include/linux/i3c/master.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='devs' type-id='e7f43fb2' visibility='default' filepath='include/linux/i3c/master.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='lock' type-id='f19fdb93' visibility='default' filepath='include/linux/i3c/master.h' line='345' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='netns_mib' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/net/netns/mib.h' line='7' column='1' id='870ef624'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ip_statistics' type-id='30897c4e' visibility='default' filepath='include/net/netns/mib.h' line='8' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ipv6_statistics' type-id='30897c4e' visibility='default' filepath='include/net/netns/mib.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tcp_statistics' type-id='19a26ee3' visibility='default' filepath='include/net/netns/mib.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='net_statistics' type-id='016811bc' visibility='default' filepath='include/net/netns/mib.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='udp_statistics' type-id='d1440a9f' visibility='default' filepath='include/net/netns/mib.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='udp_stats_in6' type-id='d1440a9f' visibility='default' filepath='include/net/netns/mib.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='xfrm_statistics' type-id='f43a2d4c' visibility='default' filepath='include/net/netns/mib.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='udplite_statistics' type-id='d1440a9f' visibility='default' filepath='include/net/netns/mib.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='udplite_stats_in6' type-id='d1440a9f' visibility='default' filepath='include/net/netns/mib.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='icmp_statistics' type-id='c085a9fb' visibility='default' filepath='include/net/netns/mib.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='icmpmsg_statistics' type-id='0296b670' visibility='default' filepath='include/net/netns/mib.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='icmpv6_statistics' type-id='1a16368f' visibility='default' filepath='include/net/netns/mib.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='icmpv6msg_statistics' type-id='bf0465ec' visibility='default' filepath='include/net/netns/mib.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='proc_net_devsnmp6' type-id='d077e928' visibility='default' filepath='include/net/netns/mib.h' line='41' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='hwspinlock_device' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/hwspinlock/hwspinlock_internal.h' line='54' column='1' id='8712a502'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/hwspinlock/hwspinlock_internal.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ops' type-id='9138a099' visibility='default' filepath='drivers/hwspinlock/hwspinlock_internal.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='base_id' type-id='95e97e5e' visibility='default' filepath='drivers/hwspinlock/hwspinlock_internal.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='num_locks' type-id='95e97e5e' visibility='default' filepath='drivers/hwspinlock/hwspinlock_internal.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='lock' type-id='e84e7d83' visibility='default' filepath='drivers/hwspinlock/hwspinlock_internal.h' line='59' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='182265d5' size-in-bits='64' id='8715d191'/>
+      <pointer-type-def type-id='d32f0a02' size-in-bits='64' id='871be364'/>
+      <pointer-type-def type-id='c4f5a87f' size-in-bits='64' id='871d04db'/>
+      <pointer-type-def type-id='8e5f5512' size-in-bits='64' id='871fd930'/>
+      <pointer-type-def type-id='c0e5af96' size-in-bits='64' id='8734cf20'/>
+      <class-decl name='binder_error' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/android/binder_internal.h' line='164' column='1' id='873851dc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='work' type-id='ba2d75bf' visibility='default' filepath='drivers/android/binder_internal.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cmd' type-id='8f92235e' visibility='default' filepath='drivers/android/binder_internal.h' line='166' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='eed1c4b9' size-in-bits='64' id='87387369'/>
+      <pointer-type-def type-id='3b8b42e1' size-in-bits='64' id='873a2591'/>
+      <pointer-type-def type-id='bae952d0' size-in-bits='64' id='873d6532'/>
+      <function-type size-in-bits='64' id='8741a34d'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='cf29c9b3'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='874459e5'>
+        <parameter type-id='74d89ebd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='94b5478d' size-in-bits='64' id='87447c2d'/>
+      <union-decl name='salt' size-in-bits='96' visibility='default' filepath='include/net/macsec.h' line='23' column='1' id='8745f074'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43f97' visibility='default' filepath='include/net/macsec.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='bytes' type-id='4d79ed19' visibility='default' filepath='include/net/macsec.h' line='28' column='1'/>
+        </data-member>
+      </union-decl>
+      <function-type size-in-bits='64' id='87461f69'>
+        <parameter type-id='bdcee7ae'/>
+        <parameter type-id='2d14cfd8'/>
+        <parameter type-id='231422bf'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='super_operations' size-in-bits='1856' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2191' column='1' id='874691ab'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='alloc_inode' type-id='e8c4dba4' visibility='default' filepath='include/linux/fs.h' line='2192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='destroy_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='2193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='free_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='2194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dirty_inode' type-id='5f5506f6' visibility='default' filepath='include/linux/fs.h' line='2196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='write_inode' type-id='fd780be6' visibility='default' filepath='include/linux/fs.h' line='2197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='drop_inode' type-id='28ba4492' visibility='default' filepath='include/linux/fs.h' line='2198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='evict_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='2199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='put_super' type-id='1ff54a45' visibility='default' filepath='include/linux/fs.h' line='2200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='sync_fs' type-id='dcab5203' visibility='default' filepath='include/linux/fs.h' line='2201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='freeze_super' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='freeze_fs' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='thaw_super' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='unfreeze_fs' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='statfs' type-id='35646c79' visibility='default' filepath='include/linux/fs.h' line='2206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='remount_fs' type-id='552c8f87' visibility='default' filepath='include/linux/fs.h' line='2207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='umount_begin' type-id='1ff54a45' visibility='default' filepath='include/linux/fs.h' line='2208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='show_options' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='show_devname' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='show_path' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='show_stats' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='quota_read' type-id='e295c77c' visibility='default' filepath='include/linux/fs.h' line='2215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='quota_write' type-id='a9b95107' visibility='default' filepath='include/linux/fs.h' line='2216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='get_dquots' type-id='ae02292a' visibility='default' filepath='include/linux/fs.h' line='2217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='nr_cached_objects' type-id='c4facf61' visibility='default' filepath='include/linux/fs.h' line='2219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='free_cached_objects' type-id='c4facf61' visibility='default' filepath='include/linux/fs.h' line='2221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2227' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='b1fadf8a' const='yes' id='87538745'/>
+      <function-type size-in-bits='64' id='8754454d'>
+        <parameter type-id='b9608bfc'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='snd_kcontrol' size-in-bits='1152' is-struct='yes' visibility='default' filepath='include/sound/control.h' line='70' column='1' id='8755a6ff'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/sound/control.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='id' type-id='abbbeccc' visibility='default' filepath='include/sound/control.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='count' type-id='f0981eeb' visibility='default' filepath='include/sound/control.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='info' type-id='e79cb28f' visibility='default' filepath='include/sound/control.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='get' type-id='5553210f' visibility='default' filepath='include/sound/control.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='put' type-id='e149b058' visibility='default' filepath='include/sound/control.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='tlv' type-id='ac5ab619' visibility='default' filepath='include/sound/control.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='private_value' type-id='7359adad' visibility='default' filepath='include/sound/control.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/control.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='private_free' type-id='56fe8aea' visibility='default' filepath='include/sound/control.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='vd' type-id='bfd02128' visibility='default' filepath='include/sound/control.h' line='84' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0f40f777' size-in-bits='64' id='8755cc63'/>
+      <typedef-decl name='__pad_before_uframe' type-id='e84913bd' filepath='include/uapi/sound/asound.h' line='565' column='1' id='87567824'/>
+      <class-decl name='aperture' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/fb.h' line='498' column='1' id='87647851'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='acc63fdf' visibility='default' filepath='include/linux/fb.h' line='499' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='acc63fdf' visibility='default' filepath='include/linux/fb.h' line='500' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='media_link' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/media/media-entity.h' line='132' column='1' id='876d3bbc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='graph_obj' type-id='9fdb75a6' visibility='default' filepath='include/media/media-entity.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/media/media-entity.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='' type-id='ac5ab5ec' visibility='default' filepath='include/media/media-entity.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='' type-id='ac5ab5ed' visibility='default' filepath='include/media/media-entity.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='reverse' type-id='b4de78ea' visibility='default' filepath='include/media/media-entity.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/media/media-entity.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='is_backlink' type-id='b50a4934' visibility='default' filepath='include/media/media-entity.h' line='147' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='87732674'>
+        <parameter type-id='2bf16f59'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='87769f42'>
+        <parameter type-id='bff05edb'/>
+        <parameter type-id='1c63cc3f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='1df195ce' size-in-bits='64' id='87845160'/>
+      <pointer-type-def type-id='206899b8' size-in-bits='64' id='878ad4de'/>
+      <class-decl name='v4l2_requestbuffers' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='951' column='1' id='879dea4a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='952' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='953' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='memory' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='954' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='capabilities' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='955' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='reserved' type-id='439be632' visibility='default' filepath='include/uapi/linux/videodev2.h' line='956' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='extcon_dev' size-in-bits='8768' is-struct='yes' visibility='default' filepath='drivers/extcon/extcon.h' line='41' column='1' id='87a2d33c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/extcon/extcon.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='supported_cable' type-id='5b2fd8e8' visibility='default' filepath='drivers/extcon/extcon.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mutually_exclusive' type-id='aded214c' visibility='default' filepath='drivers/extcon/extcon.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='drivers/extcon/extcon.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='nh_all' type-id='96e74f5f' visibility='default' filepath='drivers/extcon/extcon.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='nh' type-id='dc20ab67' visibility='default' filepath='drivers/extcon/extcon.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='entry' type-id='72f469ec' visibility='default' filepath='drivers/extcon/extcon.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='max_supported' type-id='95e97e5e' visibility='default' filepath='drivers/extcon/extcon.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7776'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='drivers/extcon/extcon.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='state' type-id='19c2251e' visibility='default' filepath='drivers/extcon/extcon.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='extcon_dev_type' type-id='bdae35f4' visibility='default' filepath='drivers/extcon/extcon.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='cables' type-id='e07a8e4c' visibility='default' filepath='drivers/extcon/extcon.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='attr_g_muex' type-id='e4af473b' visibility='default' filepath='drivers/extcon/extcon.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='attrs_muex' type-id='862c676f' visibility='default' filepath='drivers/extcon/extcon.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='d_attrs_muex' type-id='89a2612a' visibility='default' filepath='drivers/extcon/extcon.h' line='63' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3a3e1b69' size-in-bits='64' id='87a69661'/>
+      <pointer-type-def type-id='8858d1a7' size-in-bits='64' id='87af745b'/>
+      <class-decl name='drm_bridge' size-in-bits='2176' is-struct='yes' visibility='default' filepath='include/drm/drm_bridge.h' line='726' column='1' id='87c471e6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='cc3a4f0c' visibility='default' filepath='include/drm/drm_bridge.h' line='728' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='dev' type-id='8898134d' visibility='default' filepath='include/drm/drm_bridge.h' line='730' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='encoder' type-id='74d89ebd' visibility='default' filepath='include/drm/drm_bridge.h' line='732' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='chain_node' type-id='72f469ec' visibility='default' filepath='include/drm/drm_bridge.h' line='734' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='of_node' type-id='9a537bbe' visibility='default' filepath='include/drm/drm_bridge.h' line='737' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_bridge.h' line='740' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='timings' type-id='10c598f7' visibility='default' filepath='include/drm/drm_bridge.h' line='746' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='funcs' type-id='39e20e4b' visibility='default' filepath='include/drm/drm_bridge.h' line='748' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='driver_private' type-id='eaa32e2f' visibility='default' filepath='include/drm/drm_bridge.h' line='750' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='ops' type-id='595d7bc4' visibility='default' filepath='include/drm/drm_bridge.h' line='752' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1504'>
+          <var-decl name='type' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_bridge.h' line='758' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='interlace_allowed' type-id='b50a4934' visibility='default' filepath='include/drm/drm_bridge.h' line='763' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='ddc' type-id='b9af02c3' visibility='default' filepath='include/drm/drm_bridge.h' line='767' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='hpd_mutex' type-id='925167dc' visibility='default' filepath='include/drm/drm_bridge.h' line='772' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='hpd_cb' type-id='5f9265d7' visibility='default' filepath='include/drm/drm_bridge.h' line='777' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='hpd_data' type-id='eaa32e2f' visibility='default' filepath='include/drm/drm_bridge.h' line='782' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='quota_format_ops' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/quota.h' line='310' column='1' id='87cad984'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='check_quota_file' type-id='dcab5203' visibility='default' filepath='include/linux/quota.h' line='311' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='read_file_info' type-id='dcab5203' visibility='default' filepath='include/linux/quota.h' line='312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='write_file_info' type-id='dcab5203' visibility='default' filepath='include/linux/quota.h' line='313' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='free_file_info' type-id='dcab5203' visibility='default' filepath='include/linux/quota.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='read_dqblk' type-id='24c1e1dc' visibility='default' filepath='include/linux/quota.h' line='315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='commit_dqblk' type-id='24c1e1dc' visibility='default' filepath='include/linux/quota.h' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='release_dqblk' type-id='24c1e1dc' visibility='default' filepath='include/linux/quota.h' line='317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='get_next_id' type-id='70b08f83' visibility='default' filepath='include/linux/quota.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/quota.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/quota.h' line='321' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='8af57d41' size-in-bits='32' id='87ce7f1e'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <pointer-type-def type-id='c0e2acc9' size-in-bits='64' id='87d62959'/>
+      <class-decl name='v4l2_mbus_framefmt' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-mediabus.h' line='35' column='1' id='87dd7486'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-mediabus.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-mediabus.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='code' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-mediabus.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='field' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-mediabus.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='colorspace' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-mediabus.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='' type-id='ac5ab5f2' visibility='default' filepath='include/uapi/linux/v4l2-mediabus.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='quantization' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-mediabus.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='xfer_func' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-mediabus.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='flags' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-mediabus.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='reserved' type-id='b4bb2e32' visibility='default' filepath='include/uapi/linux/v4l2-mediabus.h' line='50' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='cpu_stop_fn_t' type-id='b9b212f5' filepath='include/linux/stop_machine.h' line='20' column='1' id='87dfefa3'/>
+      <pointer-type-def type-id='bfbcdc6e' size-in-bits='64' id='87e32b50'/>
+      <pointer-type-def type-id='c1f57de8' size-in-bits='64' id='87e3d3e2'/>
+      <class-decl name='fb_var_screeninfo' size-in-bits='1280' is-struct='yes' visibility='default' filepath='include/uapi/linux/fb.h' line='242' column='1' id='87e42d48'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='xres' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='yres' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='xres_virtual' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='yres_virtual' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='xoffset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='yoffset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bits_per_pixel' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='grayscale' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='red' type-id='2d123a1f' visibility='default' filepath='include/uapi/linux/fb.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='green' type-id='2d123a1f' visibility='default' filepath='include/uapi/linux/fb.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='blue' type-id='2d123a1f' visibility='default' filepath='include/uapi/linux/fb.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='transp' type-id='2d123a1f' visibility='default' filepath='include/uapi/linux/fb.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='nonstd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='activate' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='accel_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='pixclock' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='left_margin' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='right_margin' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='upper_margin' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='lower_margin' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='hsync_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='vsync_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='sync' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='vmode' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='rotate' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='colorspace' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='reserved' type-id='3fa29bab' visibility='default' filepath='include/uapi/linux/fb.h' line='279' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0ef969d4' size-in-bits='64' id='87f6a50e'/>
+      <function-type size-in-bits='64' id='8800ed53'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='a7465fe4'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='38c67a4b' size-in-bits='64' id='8801b8af'/>
+      <class-decl name='backlight_properties' size-in-bits='224' is-struct='yes' visibility='default' filepath='include/linux/backlight.h' line='182' column='1' id='8802968a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='brightness' type-id='95e97e5e' visibility='default' filepath='include/linux/backlight.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='max_brightness' type-id='95e97e5e' visibility='default' filepath='include/linux/backlight.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='power' type-id='95e97e5e' visibility='default' filepath='include/linux/backlight.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='fb_blank' type-id='95e97e5e' visibility='default' filepath='include/linux/backlight.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='type' type-id='e7dc2d8e' visibility='default' filepath='include/linux/backlight.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='state' type-id='f0981eeb' visibility='default' filepath='include/linux/backlight.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='scale' type-id='15b3610c' visibility='default' filepath='include/linux/backlight.h' line='272' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='8804cbe4'>
+        <return type-id='91ce1af9'/>
+      </function-type>
+      <typedef-decl name='__kernel_clock_t' type-id='6a11bd61' filepath='include/uapi/asm-generic/posix_types.h' line='94' column='1' id='880ebc01'/>
+      <pointer-type-def type-id='52126317' size-in-bits='64' id='880ef693'/>
+      <pointer-type-def type-id='c16a2224' size-in-bits='64' id='88139c0a'/>
+      <pointer-type-def type-id='112f2691' size-in-bits='64' id='88146159'/>
+      <class-decl name='serial_icounter_struct' is-struct='yes' visibility='default' is-declaration-only='yes' id='8816ddc1'/>
+      <pointer-type-def type-id='4d1a6f34' size-in-bits='64' id='8821fe8e'/>
+      <function-type size-in-bits='64' id='8826ec36'>
+        <parameter type-id='6ee1a870'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='19b22092' size-in-bits='64' id='882bc4d4'/>
+      <class-decl name='trace_options' size-in-bits='128' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='191' column='1' id='882c3f1f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tracer' type-id='0a18715a' visibility='default' filepath='kernel/trace/trace.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='topts' type-id='2473b64b' visibility='default' filepath='kernel/trace/trace.h' line='193' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='hrtimer_mode' filepath='include/linux/hrtimer.h' line='40' column='1' id='88326653'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HRTIMER_MODE_ABS' value='0'/>
+        <enumerator name='HRTIMER_MODE_REL' value='1'/>
+        <enumerator name='HRTIMER_MODE_PINNED' value='2'/>
+        <enumerator name='HRTIMER_MODE_SOFT' value='4'/>
+        <enumerator name='HRTIMER_MODE_HARD' value='8'/>
+        <enumerator name='HRTIMER_MODE_ABS_PINNED' value='2'/>
+        <enumerator name='HRTIMER_MODE_REL_PINNED' value='3'/>
+        <enumerator name='HRTIMER_MODE_ABS_SOFT' value='4'/>
+        <enumerator name='HRTIMER_MODE_REL_SOFT' value='5'/>
+        <enumerator name='HRTIMER_MODE_ABS_PINNED_SOFT' value='6'/>
+        <enumerator name='HRTIMER_MODE_REL_PINNED_SOFT' value='7'/>
+        <enumerator name='HRTIMER_MODE_ABS_HARD' value='8'/>
+        <enumerator name='HRTIMER_MODE_REL_HARD' value='9'/>
+        <enumerator name='HRTIMER_MODE_ABS_PINNED_HARD' value='10'/>
+        <enumerator name='HRTIMER_MODE_REL_PINNED_HARD' value='11'/>
+      </enum-decl>
+      <typedef-decl name='irq_hw_number_t' type-id='7359adad' filepath='include/linux/types.h' line='164' column='1' id='88370ce9'/>
+      <class-decl name='skcipher_request' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/crypto/skcipher.h' line='24' column='1' id='8838d802'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cryptlen' type-id='f0981eeb' visibility='default' filepath='include/crypto/skcipher.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='iv' type-id='8bff8096' visibility='default' filepath='include/crypto/skcipher.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='src' type-id='bf3ef905' visibility='default' filepath='include/crypto/skcipher.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dst' type-id='bf3ef905' visibility='default' filepath='include/crypto/skcipher.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='base' type-id='5e6083f1' visibility='default' filepath='include/crypto/skcipher.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='__ctx' type-id='baf98fd3' visibility='default' filepath='include/crypto/skcipher.h' line='34' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='883b3327'>
+        <parameter type-id='3059cd0b'/>
+        <parameter type-id='af5a73b0'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='988ff7b9' size-in-bits='64' id='8845292c'/>
+      <pointer-type-def type-id='0f5f7920' size-in-bits='64' id='8846a616'/>
+      <pointer-type-def type-id='2078be8d' size-in-bits='64' id='8851df39'/>
+      <function-type size-in-bits='64' id='8852d0d2'>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='bpf_line_info' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='6186' column='1' id='88565f1f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='insn_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='file_name_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='line_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='line_col' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6190' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='8858d1a7'>
+        <parameter type-id='0d08ac62'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='6b983020' size-in-bits='64' id='885a96c2'/>
+      <pointer-type-def type-id='da92e008' size-in-bits='64' id='885b5549'/>
+      <pointer-type-def type-id='ed17cdee' size-in-bits='64' id='8860b094'/>
+      <class-decl name='phylink_pcs_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/phylink.h' line='353' column='1' id='8861584a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pcs_get_state' type-id='f7af77d6' visibility='default' filepath='include/linux/phylink.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pcs_config' type-id='04898764' visibility='default' filepath='include/linux/phylink.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pcs_an_restart' type-id='00bc0f0c' visibility='default' filepath='include/linux/phylink.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pcs_link_up' type-id='c3a655b9' visibility='default' filepath='include/linux/phylink.h' line='361' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='vring_used_t' type-id='83e62d3d' filepath='include/uapi/linux/virtio_ring.h' line='150' column='1' id='8870610f'/>
+      <pointer-type-def type-id='ec180093' size-in-bits='64' id='887112a7'/>
+      <function-type size-in-bits='64' id='88776799'>
+        <parameter type-id='5e4f599b'/>
+        <parameter type-id='eea6b025'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='226cc4c6' size-in-bits='64' id='887cf9b8'/>
+      <function-type size-in-bits='64' id='887d0019'>
+        <parameter type-id='07b9ee34'/>
+        <parameter type-id='26bebc56'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c5b77cb3' size-in-bits='64' id='88850643'/>
+      <pointer-type-def type-id='e2245803' size-in-bits='64' id='888567bf'/>
+      <pointer-type-def type-id='a9cc575c' size-in-bits='64' id='88909596'/>
+      <function-type size-in-bits='64' id='8892a831'>
+        <parameter type-id='1c936db9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e96cc76d' size-in-bits='64' id='8898134d'/>
+      <class-decl name='media_entity' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/media/media-entity.h' line='290' column='1' id='889856f7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='graph_obj' type-id='9fdb75a6' visibility='default' filepath='include/media/media-entity.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/media/media-entity.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='obj_type' type-id='33f4e443' visibility='default' filepath='include/media/media-entity.h' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='function' type-id='19c2251e' visibility='default' filepath='include/media/media-entity.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/media/media-entity.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='num_pads' type-id='1dc6a898' visibility='default' filepath='include/media/media-entity.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='464'>
+          <var-decl name='num_links' type-id='1dc6a898' visibility='default' filepath='include/media/media-entity.h' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='num_backlinks' type-id='1dc6a898' visibility='default' filepath='include/media/media-entity.h' line='299' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='internal_idx' type-id='95e97e5e' visibility='default' filepath='include/media/media-entity.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='pads' type-id='50a51839' visibility='default' filepath='include/media/media-entity.h' line='302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='links' type-id='72f469ec' visibility='default' filepath='include/media/media-entity.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='ops' type-id='94f26cbd' visibility='default' filepath='include/media/media-entity.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='stream_count' type-id='95e97e5e' visibility='default' filepath='include/media/media-entity.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='use_count' type-id='95e97e5e' visibility='default' filepath='include/media/media-entity.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='pipe' type-id='4ffae8c8' visibility='default' filepath='include/media/media-entity.h' line='310' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='info' type-id='ac5ab5ee' visibility='default' filepath='include/media/media-entity.h' line='317' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cca56d7c' size-in-bits='64' id='88994406'/>
+      <pointer-type-def type-id='102202df' size-in-bits='64' id='8899c21b'/>
+      <class-decl name='smp_hotplug_thread' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/smpboot.h' line='31' column='1' id='889a8a64'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='store' type-id='afd4c988' visibility='default' filepath='include/linux/smpboot.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/smpboot.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='thread_should_run' type-id='f02a5e83' visibility='default' filepath='include/linux/smpboot.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='thread_fn' type-id='4a84e7de' visibility='default' filepath='include/linux/smpboot.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='create' type-id='4a84e7de' visibility='default' filepath='include/linux/smpboot.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='setup' type-id='4a84e7de' visibility='default' filepath='include/linux/smpboot.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='cleanup' type-id='5c86fa1f' visibility='default' filepath='include/linux/smpboot.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='park' type-id='4a84e7de' visibility='default' filepath='include/linux/smpboot.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='unpark' type-id='4a84e7de' visibility='default' filepath='include/linux/smpboot.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='selfparking' type-id='b50a4934' visibility='default' filepath='include/linux/smpboot.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='thread_comm' type-id='80f4b756' visibility='default' filepath='include/linux/smpboot.h' line='42' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='scmi_revision_info' size-in-bits='352' is-struct='yes' visibility='default' filepath='include/linux/scmi_protocol.h' line='34' column='1' id='889b9d08'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='major_ver' type-id='1dc6a898' visibility='default' filepath='include/linux/scmi_protocol.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='minor_ver' type-id='1dc6a898' visibility='default' filepath='include/linux/scmi_protocol.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='num_protocols' type-id='f9b06939' visibility='default' filepath='include/linux/scmi_protocol.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='num_agents' type-id='f9b06939' visibility='default' filepath='include/linux/scmi_protocol.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='impl_ver' type-id='19c2251e' visibility='default' filepath='include/linux/scmi_protocol.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='vendor_id' type-id='ac1fa8c0' visibility='default' filepath='include/linux/scmi_protocol.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='sub_vendor_id' type-id='ac1fa8c0' visibility='default' filepath='include/linux/scmi_protocol.h' line='41' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='77db5b7d' size-in-bits='64' id='88a6d23d'/>
+      <class-decl name='xhci_intr_reg' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='487' column='1' id='88aa5216'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='irq_pending' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='irq_control' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='erst_size' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='rsvd' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='491' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='erst_base' type-id='a30e8d1f' visibility='default' filepath='drivers/usb/host/xhci.h' line='492' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='erst_dequeue' type-id='a30e8d1f' visibility='default' filepath='drivers/usb/host/xhci.h' line='493' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fb_ops' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/linux/fb.h' line='229' column='1' id='88ac6962'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/fb.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fb_open' type-id='5173cfa7' visibility='default' filepath='include/linux/fb.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fb_release' type-id='5173cfa7' visibility='default' filepath='include/linux/fb.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fb_read' type-id='c523819e' visibility='default' filepath='include/linux/fb.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='fb_write' type-id='b90c8c47' visibility='default' filepath='include/linux/fb.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='fb_check_var' type-id='325e877b' visibility='default' filepath='include/linux/fb.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='fb_set_par' type-id='de0565b8' visibility='default' filepath='include/linux/fb.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='fb_setcolreg' type-id='47150d4e' visibility='default' filepath='include/linux/fb.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='fb_setcmap' type-id='6cae92ea' visibility='default' filepath='include/linux/fb.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='fb_blank' type-id='264d5ec9' visibility='default' filepath='include/linux/fb.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='fb_pan_display' type-id='325e877b' visibility='default' filepath='include/linux/fb.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='fb_fillrect' type-id='e6c64d04' visibility='default' filepath='include/linux/fb.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='fb_copyarea' type-id='2fff15e1' visibility='default' filepath='include/linux/fb.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='fb_imageblit' type-id='c72645fa' visibility='default' filepath='include/linux/fb.h' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='fb_cursor' type-id='f03e9a5b' visibility='default' filepath='include/linux/fb.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='fb_sync' type-id='de0565b8' visibility='default' filepath='include/linux/fb.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='fb_ioctl' type-id='20b881b6' visibility='default' filepath='include/linux/fb.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='fb_compat_ioctl' type-id='20b881b6' visibility='default' filepath='include/linux/fb.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='fb_mmap' type-id='17d72e03' visibility='default' filepath='include/linux/fb.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='fb_get_caps' type-id='3e6ac796' visibility='default' filepath='include/linux/fb.h' line='288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='fb_destroy' type-id='37191bbd' visibility='default' filepath='include/linux/fb.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='fb_debug_enter' type-id='de0565b8' visibility='default' filepath='include/linux/fb.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='fb_debug_leave' type-id='de0565b8' visibility='default' filepath='include/linux/fb.h' line='296' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='51a7e6e2' size-in-bits='64' id='88b37d64'/>
+      <array-type-def dimensions='1' type-id='0791d6c8' size-in-bits='768' id='88b5427c'>
+        <subrange length='12' type-id='7ff19f0f' id='84827bdc'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='88b7b5d3'>
+        <parameter type-id='13103032'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='09fcb6b1' size-in-bits='64' id='88cd8be5'/>
+      <function-type size-in-bits='64' id='88d4f840'>
+        <parameter type-id='0906f5b9'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='1e25d1dc' const='yes' id='88ddc59d'/>
+      <class-decl name='ndisc_ops' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/net/ndisc.h' line='202' column='1' id='88ef330b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='is_useropt' type-id='c1655339' visibility='default' filepath='include/net/ndisc.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='parse_options' type-id='58505a39' visibility='default' filepath='include/net/ndisc.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='update' type-id='0feea528' visibility='default' filepath='include/net/ndisc.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='opt_addr_space' type-id='beb4f24d' visibility='default' filepath='include/net/ndisc.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='fill_addr_option' type-id='b78e9a0f' visibility='default' filepath='include/net/ndisc.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='prefix_rcv_add_addr' type-id='1cebc84d' visibility='default' filepath='include/net/ndisc.h' line='216' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fc125a12' size-in-bits='64' id='88f24f3c'/>
+      <pointer-type-def type-id='965023eb' size-in-bits='64' id='88f4e837'/>
+      <function-type size-in-bits='64' id='88ffd624'>
+        <parameter type-id='343c3ae4'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='dfe1421c' size-in-bits='64' id='890a78ae'/>
+      <pointer-type-def type-id='8ffe5745' size-in-bits='64' id='890caaa5'/>
+      <pointer-type-def type-id='2376c3ec' size-in-bits='64' id='8912440a'/>
+      <class-decl name='bpf_link_info' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5621' column='1' id='891a6859'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5622' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5623' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='prog_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5624' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='' type-id='ac5ab697' visibility='default' filepath='include/uapi/linux/bpf.h' line='5625' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='891c6957'>
+        <parameter type-id='e3dd029e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='u_int8_t' type-id='f9b06939' filepath='include/linux/types.h' line='93' column='1' id='892641a4'/>
+      <class-decl name='net_proto_family' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/net.h' line='214' column='1' id='89303496'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='family' type-id='95e97e5e' visibility='default' filepath='include/linux/net.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='create' type-id='d128cc8f' visibility='default' filepath='include/linux/net.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/net.h' line='218' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='802097e5' size-in-bits='64' id='8930de61'/>
+      <qualified-type-def type-id='d6ebca75' const='yes' id='893302ec'/>
+      <pointer-type-def type-id='ff15393c' size-in-bits='64' id='89340c26'/>
+      <pointer-type-def type-id='a659afcb' size-in-bits='64' id='893447fb'/>
+      <pointer-type-def type-id='da4d9050' size-in-bits='64' id='8937f3c2'/>
+      <function-type size-in-bits='64' id='89397116'>
+        <parameter type-id='af051c69'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='893b3284'>
+        <parameter type-id='893447fb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='9b45d938' size-in-bits='136' id='8945ea40'>
+        <subrange length='17' type-id='7ff19f0f' id='888ad0ed'/>
+      </array-type-def>
+      <class-decl name='cfg80211_sar_capa' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2129' column='1' id='894e3904'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='8b4863ac' visibility='default' filepath='include/net/cfg80211.h' line='2130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='num_freq_ranges' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='freq_ranges' type-id='be875ce1' visibility='default' filepath='include/net/cfg80211.h' line='2132' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='iio_shared_by' filepath='include/linux/iio/iio.h' line='20' column='1' id='89575fbb'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='IIO_SEPARATE' value='0'/>
+        <enumerator name='IIO_SHARED_BY_TYPE' value='1'/>
+        <enumerator name='IIO_SHARED_BY_DIR' value='2'/>
+        <enumerator name='IIO_SHARED_BY_ALL' value='3'/>
+      </enum-decl>
+      <qualified-type-def type-id='ca7a1741' const='yes' id='8967eee8'/>
+      <qualified-type-def type-id='8bb9a8e8' const='yes' id='896c8e89'/>
+      <pointer-type-def type-id='68f50b14' size-in-bits='64' id='896fcfe6'/>
+      <typedef-decl name='smp_call_func_t' type-id='b7f9d8e6' filepath='include/linux/smp.h' line='17' column='1' id='89714567'/>
+      <array-type-def dimensions='1' type-id='5c902035' size-in-bits='infinite' id='897aa90d'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <class-decl name='snd_ctl_elem_info' size-in-bits='2176' is-struct='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='1047' column='1' id='897bd6f1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='abbbeccc' visibility='default' filepath='include/uapi/sound/asound.h' line='1048' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='type' type-id='e31355f5' visibility='default' filepath='include/uapi/sound/asound.h' line='1049' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='access' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='1050' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='count' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='1051' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='owner' type-id='63eb2bf2' visibility='default' filepath='include/uapi/sound/asound.h' line='1052' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='value' type-id='ac5ab61a' visibility='default' filepath='include/uapi/sound/asound.h' line='1072' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='reserved' type-id='b1888bf8' visibility='default' filepath='include/uapi/sound/asound.h' line='1073' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='130ae6d1' size-in-bits='64' id='897d1b6d'/>
+      <pointer-type-def type-id='8c8c8763' size-in-bits='64' id='8981c393'/>
+      <pointer-type-def type-id='49a390c7' size-in-bits='64' id='898a0783'/>
+      <pointer-type-def type-id='d4c94570' size-in-bits='64' id='898b0c52'/>
+      <pointer-type-def type-id='e27b4e90' size-in-bits='64' id='898c1076'/>
+      <function-type size-in-bits='64' id='898c19a2'>
+        <parameter type-id='30864cdc'/>
+        <parameter type-id='30864cdc'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='84abfe24' size-in-bits='64' id='898f3126'/>
+      <class-decl name='usb_cdc_ncm_dpe16' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='372' column='1' id='89981240'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='wDatagramIndex' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='373' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='wDatagramLength' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='374' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='c2840192' const='yes' id='89990402'/>
+      <function-type size-in-bits='64' id='899d22e6'>
+        <parameter type-id='f41a0030'/>
+        <parameter type-id='435ed9ca'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='component_ops' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/component.h' line='16' column='1' id='89a1ee2b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bind' type-id='3385b72d' visibility='default' filepath='include/linux/component.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='unbind' type-id='9e6fc9aa' visibility='default' filepath='include/linux/component.h' line='32' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='dbf3947c' size-in-bits='64' id='89a2612a'/>
+      <pointer-type-def type-id='bf77b476' size-in-bits='64' id='89a8217c'/>
+      <enum-decl name='typec_port_data' filepath='include/linux/usb/typec.h' line='32' column='1' id='89aae82e'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='TYPEC_PORT_DFP' value='0'/>
+        <enumerator name='TYPEC_PORT_UFP' value='1'/>
+        <enumerator name='TYPEC_PORT_DRD' value='2'/>
+      </enum-decl>
+      <class-decl name='rtc_device' size-in-bits='12224' is-struct='yes' visibility='default' filepath='include/linux/rtc.h' line='87' column='1' id='89ae06e3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/rtc.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/rtc.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/rtc.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='ops' type-id='b902d9c7' visibility='default' filepath='include/linux/rtc.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='ops_lock' type-id='925167dc' visibility='default' filepath='include/linux/rtc.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='char_dev' type-id='22f86351' visibility='default' filepath='include/linux/rtc.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8960'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/rtc.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9024'>
+          <var-decl name='irq_data' type-id='7359adad' visibility='default' filepath='include/linux/rtc.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9088'>
+          <var-decl name='irq_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/rtc.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9152'>
+          <var-decl name='irq_queue' type-id='b5ab048f' visibility='default' filepath='include/linux/rtc.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='async_queue' type-id='5bb9c75d' visibility='default' filepath='include/linux/rtc.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9408'>
+          <var-decl name='irq_freq' type-id='95e97e5e' visibility='default' filepath='include/linux/rtc.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9440'>
+          <var-decl name='max_user_freq' type-id='95e97e5e' visibility='default' filepath='include/linux/rtc.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9472'>
+          <var-decl name='timerqueue' type-id='ff3c7f20' visibility='default' filepath='include/linux/rtc.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='aie_timer' type-id='01786452' visibility='default' filepath='include/linux/rtc.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10112'>
+          <var-decl name='uie_rtctimer' type-id='01786452' visibility='default' filepath='include/linux/rtc.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10624'>
+          <var-decl name='pie_timer' type-id='b6993efc' visibility='default' filepath='include/linux/rtc.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11200'>
+          <var-decl name='pie_enabled' type-id='95e97e5e' visibility='default' filepath='include/linux/rtc.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11264'>
+          <var-decl name='irqwork' type-id='ef9025d0' visibility='default' filepath='include/linux/rtc.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11648'>
+          <var-decl name='uie_unsupported' type-id='95e97e5e' visibility='default' filepath='include/linux/rtc.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11712'>
+          <var-decl name='set_offset_nsec' type-id='7359adad' visibility='default' filepath='include/linux/rtc.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11776'>
+          <var-decl name='features' type-id='f066dd3c' visibility='default' filepath='include/linux/rtc.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11840'>
+          <var-decl name='range_min' type-id='1afd27ac' visibility='default' filepath='include/linux/rtc.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11904'>
+          <var-decl name='range_max' type-id='13afd1c1' visibility='default' filepath='include/linux/rtc.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11968'>
+          <var-decl name='start_secs' type-id='1afd27ac' visibility='default' filepath='include/linux/rtc.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12032'>
+          <var-decl name='offset_secs' type-id='1afd27ac' visibility='default' filepath='include/linux/rtc.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12096'>
+          <var-decl name='set_start_time' type-id='b50a4934' visibility='default' filepath='include/linux/rtc.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12160'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/rtc.h' line='166' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='bpf_func_info_aux' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='868' column='1' id='89aea402'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='linkage' type-id='1dc6a898' visibility='default' filepath='include/linux/bpf.h' line='869' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='unreliable' type-id='b50a4934' visibility='default' filepath='include/linux/bpf.h' line='870' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='89af975c'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='02f11ed4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='89afb0f0'>
+        <parameter type-id='8582e5ec'/>
+        <return type-id='67bbaeda'/>
+      </function-type>
+      <pointer-type-def type-id='ffb8b223' size-in-bits='64' id='89b5be7f'/>
+      <pointer-type-def type-id='8cf069a2' size-in-bits='64' id='89b70200'/>
+      <pointer-type-def type-id='75ec6dfd' size-in-bits='64' id='89bd4f61'/>
+      <function-type size-in-bits='64' id='89c3fb76'>
+        <parameter type-id='d1feb554'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ping_group_range' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/netns/ipv4.h' line='27' column='1' id='89d35c53'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='e6cd5ecf' visibility='default' filepath='include/net/netns/ipv4.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='range' type-id='5fd0d2fb' visibility='default' filepath='include/net/netns/ipv4.h' line='29' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='nf_hook_state' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/netfilter.h' line='68' column='1' id='89d4ce3f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hook' type-id='f9b06939' visibility='default' filepath='include/linux/netfilter.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='pf' type-id='f9b06939' visibility='default' filepath='include/linux/netfilter.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='in' type-id='68a2d05b' visibility='default' filepath='include/linux/netfilter.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='out' type-id='68a2d05b' visibility='default' filepath='include/linux/netfilter.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sk' type-id='f772df6d' visibility='default' filepath='include/linux/netfilter.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='net' type-id='a2bff676' visibility='default' filepath='include/linux/netfilter.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='okfn' type-id='0023218e' visibility='default' filepath='include/linux/netfilter.h' line='75' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f4753d8e' size-in-bits='64' id='89d4fdc8'/>
+      <class-decl name='nlattr' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/netlink.h' line='214' column='1' id='89d7cb48'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nla_len' type-id='d315442e' visibility='default' filepath='include/uapi/linux/netlink.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='nla_type' type-id='d315442e' visibility='default' filepath='include/uapi/linux/netlink.h' line='216' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7b8d7a91' size-in-bits='64' id='89df2ee9'/>
+      <class-decl name='udp_mib' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/net/snmp.h' line='98' column='1' id='89e527b7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mibs' type-id='d6aba012' visibility='default' filepath='include/net/snmp.h' line='99' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='89e92d83'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='fde1bbcb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='pdev_archdata' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/device.h' line='11' column='1' id='89ee2f2f'/>
+      <class-decl name='uart_driver' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/serial_core.h' line='330' column='1' id='89f1cbf8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/serial_core.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='driver_name' type-id='80f4b756' visibility='default' filepath='include/linux/serial_core.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dev_name' type-id='80f4b756' visibility='default' filepath='include/linux/serial_core.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='major' type-id='95e97e5e' visibility='default' filepath='include/linux/serial_core.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='minor' type-id='95e97e5e' visibility='default' filepath='include/linux/serial_core.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='nr' type-id='95e97e5e' visibility='default' filepath='include/linux/serial_core.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='cons' type-id='b9aa0100' visibility='default' filepath='include/linux/serial_core.h' line='337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='state' type-id='533b348b' visibility='default' filepath='include/linux/serial_core.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='tty_driver' type-id='c2b4b27b' visibility='default' filepath='include/linux/serial_core.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/serial_core.h' line='346' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ethtool_tunable' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='254' column='1' id='89f717fe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data' type-id='baf98fd3' visibility='default' filepath='include/uapi/linux/ethtool.h' line='259' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='8' id='89feb1ec'>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='8a06bdac'>
+        <parameter type-id='247dd85c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='149c6638' size-in-bits='64' id='8a121f49'/>
+      <class-decl name='bpf_func_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='6178' column='1' id='8a1373a3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='insn_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6180' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_device_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/sound/core.h' line='62' column='1' id='8a1bdab0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev_free' type-id='e23829bd' visibility='default' filepath='include/sound/core.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev_register' type-id='e23829bd' visibility='default' filepath='include/sound/core.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dev_disconnect' type-id='e23829bd' visibility='default' filepath='include/sound/core.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/core.h' line='67' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='8a1ce1f9'>
+        <parameter type-id='10216dc5'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='8a25144e'>
+        <parameter type-id='15dccca9'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='7e765fce' size-in-bits='64' id='8a2b0cc8'/>
+      <function-type size-in-bits='64' id='8a2fc45e'>
+        <parameter type-id='0d97a11a'/>
+        <parameter type-id='4616a179'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='8a322362'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='2753ede4'/>
+        <parameter type-id='25b0d1cf'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='5e7ca5e6' size-in-bits='64' id='8a390024'/>
+      <class-decl name='ethtool_ops' size-in-bits='4544' is-struct='yes' visibility='default' filepath='include/linux/ethtool.h' line='597' column='1' id='8a3b11ed'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cap_link_lanes_supported' type-id='19c2251e' visibility='default' filepath='include/linux/ethtool.h' line='598' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='supported_coalesce_params' type-id='19c2251e' visibility='default' filepath='include/linux/ethtool.h' line='599' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='get_drvinfo' type-id='343c05fa' visibility='default' filepath='include/linux/ethtool.h' line='600' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='get_regs_len' type-id='2555df59' visibility='default' filepath='include/linux/ethtool.h' line='601' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get_regs' type-id='345f0501' visibility='default' filepath='include/linux/ethtool.h' line='602' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='get_wol' type-id='afcbd268' visibility='default' filepath='include/linux/ethtool.h' line='603' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='set_wol' type-id='5a92dd37' visibility='default' filepath='include/linux/ethtool.h' line='604' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='get_msglevel' type-id='92d86499' visibility='default' filepath='include/linux/ethtool.h' line='605' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='set_msglevel' type-id='9038f441' visibility='default' filepath='include/linux/ethtool.h' line='606' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='nway_reset' type-id='2555df59' visibility='default' filepath='include/linux/ethtool.h' line='607' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='get_link' type-id='92d86499' visibility='default' filepath='include/linux/ethtool.h' line='608' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='get_link_ext_state' type-id='55cb433c' visibility='default' filepath='include/linux/ethtool.h' line='609' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='get_eeprom_len' type-id='2555df59' visibility='default' filepath='include/linux/ethtool.h' line='611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='get_eeprom' type-id='67a2c0c8' visibility='default' filepath='include/linux/ethtool.h' line='612' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='set_eeprom' type-id='67a2c0c8' visibility='default' filepath='include/linux/ethtool.h' line='614' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='get_coalesce' type-id='890a78ae' visibility='default' filepath='include/linux/ethtool.h' line='616' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='set_coalesce' type-id='890a78ae' visibility='default' filepath='include/linux/ethtool.h' line='620' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='get_ringparam' type-id='89b5be7f' visibility='default' filepath='include/linux/ethtool.h' line='624' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='set_ringparam' type-id='807c842c' visibility='default' filepath='include/linux/ethtool.h' line='626' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='get_pause_stats' type-id='7e1d5dd4' visibility='default' filepath='include/linux/ethtool.h' line='628' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='get_pauseparam' type-id='f45e1d71' visibility='default' filepath='include/linux/ethtool.h' line='630' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='set_pauseparam' type-id='d57a1ee4' visibility='default' filepath='include/linux/ethtool.h' line='632' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='self_test' type-id='4acd4951' visibility='default' filepath='include/linux/ethtool.h' line='634' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='get_strings' type-id='27653c4c' visibility='default' filepath='include/linux/ethtool.h' line='635' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='set_phys_id' type-id='e0c03654' visibility='default' filepath='include/linux/ethtool.h' line='636' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='get_ethtool_stats' type-id='6c781266' visibility='default' filepath='include/linux/ethtool.h' line='637' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='begin' type-id='2555df59' visibility='default' filepath='include/linux/ethtool.h' line='639' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='complete' type-id='548eee3a' visibility='default' filepath='include/linux/ethtool.h' line='640' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='get_priv_flags' type-id='92d86499' visibility='default' filepath='include/linux/ethtool.h' line='641' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='set_priv_flags' type-id='0f8df030' visibility='default' filepath='include/linux/ethtool.h' line='642' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='get_sset_count' type-id='d6762aa0' visibility='default' filepath='include/linux/ethtool.h' line='643' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='get_rxnfc' type-id='d67468b4' visibility='default' filepath='include/linux/ethtool.h' line='644' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='set_rxnfc' type-id='fece2110' visibility='default' filepath='include/linux/ethtool.h' line='646' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='flash_device' type-id='d91e8ea3' visibility='default' filepath='include/linux/ethtool.h' line='647' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='reset' type-id='4814c3f9' visibility='default' filepath='include/linux/ethtool.h' line='648' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='get_rxfh_key_size' type-id='92d86499' visibility='default' filepath='include/linux/ethtool.h' line='649' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='get_rxfh_indir_size' type-id='92d86499' visibility='default' filepath='include/linux/ethtool.h' line='650' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='get_rxfh' type-id='de5dab7b' visibility='default' filepath='include/linux/ethtool.h' line='651' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='set_rxfh' type-id='13680d10' visibility='default' filepath='include/linux/ethtool.h' line='653' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='get_rxfh_context' type-id='64efa47a' visibility='default' filepath='include/linux/ethtool.h' line='655' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='set_rxfh_context' type-id='5f0d472d' visibility='default' filepath='include/linux/ethtool.h' line='657' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='get_channels' type-id='74287ea0' visibility='default' filepath='include/linux/ethtool.h' line='660' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='set_channels' type-id='b60e7255' visibility='default' filepath='include/linux/ethtool.h' line='661' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='get_dump_flag' type-id='351add77' visibility='default' filepath='include/linux/ethtool.h' line='662' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='get_dump_data' type-id='b7ee351b' visibility='default' filepath='include/linux/ethtool.h' line='663' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='set_dump' type-id='351add77' visibility='default' filepath='include/linux/ethtool.h' line='665' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='get_ts_info' type-id='88f4e837' visibility='default' filepath='include/linux/ethtool.h' line='666' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='get_module_info' type-id='20974125' visibility='default' filepath='include/linux/ethtool.h' line='667' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='get_module_eeprom' type-id='67a2c0c8' visibility='default' filepath='include/linux/ethtool.h' line='669' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='get_eee' type-id='d2be5b16' visibility='default' filepath='include/linux/ethtool.h' line='671' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='set_eee' type-id='d2be5b16' visibility='default' filepath='include/linux/ethtool.h' line='672' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='get_tunable' type-id='a3c69469' visibility='default' filepath='include/linux/ethtool.h' line='673' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='set_tunable' type-id='a3c69469' visibility='default' filepath='include/linux/ethtool.h' line='675' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='get_per_queue_coalesce' type-id='6f2bf2e3' visibility='default' filepath='include/linux/ethtool.h' line='677' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='set_per_queue_coalesce' type-id='6f2bf2e3' visibility='default' filepath='include/linux/ethtool.h' line='679' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='get_link_ksettings' type-id='83359c30' visibility='default' filepath='include/linux/ethtool.h' line='681' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='set_link_ksettings' type-id='5a3c102b' visibility='default' filepath='include/linux/ethtool.h' line='683' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='get_fec_stats' type-id='fb424bb0' visibility='default' filepath='include/linux/ethtool.h' line='685' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='get_fecparam' type-id='bda101d4' visibility='default' filepath='include/linux/ethtool.h' line='687' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='set_fecparam' type-id='bda101d4' visibility='default' filepath='include/linux/ethtool.h' line='689' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='get_ethtool_phy_stats' type-id='6c781266' visibility='default' filepath='include/linux/ethtool.h' line='691' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='get_phy_tunable' type-id='a3c69469' visibility='default' filepath='include/linux/ethtool.h' line='693' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3904'>
+          <var-decl name='set_phy_tunable' type-id='a3c69469' visibility='default' filepath='include/linux/ethtool.h' line='695' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='get_module_eeprom_by_page' type-id='27708a26' visibility='default' filepath='include/linux/ethtool.h' line='697' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='get_eth_phy_stats' type-id='f050a0cb' visibility='default' filepath='include/linux/ethtool.h' line='700' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='get_eth_mac_stats' type-id='3735123b' visibility='default' filepath='include/linux/ethtool.h' line='702' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='get_eth_ctrl_stats' type-id='6bd4c2f7' visibility='default' filepath='include/linux/ethtool.h' line='704' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='get_rmon_stats' type-id='23c905e8' visibility='default' filepath='include/linux/ethtool.h' line='706' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='710' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='711' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='712' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4480'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='713' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tcp_fastopen_request' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/tcp.h' line='1694' column='1' id='8a4245ed'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cookie' type-id='98fc5aa2' visibility='default' filepath='include/net/tcp.h' line='1696' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='data' type-id='6b9b777a' visibility='default' filepath='include/net/tcp.h' line='1697' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='include/net/tcp.h' line='1698' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='copied' type-id='95e97e5e' visibility='default' filepath='include/net/tcp.h' line='1699' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='uarg' type-id='73789784' visibility='default' filepath='include/net/tcp.h' line='1700' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_soc_tplg_vendor_array' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='224' column='1' id='8a4504f5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_elems' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='' type-id='ac5ab6ae' visibility='default' filepath='include/uapi/sound/asoc.h' line='228' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='49178f86' size-in-bits='64' id='8a47abc3'/>
+      <function-type size-in-bits='64' id='8a49f2ad'>
+        <parameter type-id='b88dd945'/>
+        <parameter type-id='91ce1af9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='822ce289' size-in-bits='64' id='8a4f973d'/>
+      <enum-decl name='can_state' filepath='include/uapi/linux/can/netlink.h' line='69' column='1' id='8a54dc38'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='CAN_STATE_ERROR_ACTIVE' value='0'/>
+        <enumerator name='CAN_STATE_ERROR_WARNING' value='1'/>
+        <enumerator name='CAN_STATE_ERROR_PASSIVE' value='2'/>
+        <enumerator name='CAN_STATE_BUS_OFF' value='3'/>
+        <enumerator name='CAN_STATE_STOPPED' value='4'/>
+        <enumerator name='CAN_STATE_SLEEPING' value='5'/>
+        <enumerator name='CAN_STATE_MAX' value='6'/>
+      </enum-decl>
+      <pointer-type-def type-id='b4ee5e67' size-in-bits='64' id='8a5a774f'/>
+      <pointer-type-def type-id='198938b5' size-in-bits='64' id='8a62cb71'/>
+      <enum-decl name='snd_soc_pcm_subclass' filepath='include/sound/soc.h' line='403' column='1' id='8a661f2b'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SND_SOC_PCM_CLASS_PCM' value='0'/>
+        <enumerator name='SND_SOC_PCM_CLASS_BE' value='1'/>
+      </enum-decl>
+      <class-decl name='iommu_cache_invalidate_info' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/uapi/linux/iommu.h' line='255' column='1' id='8a6b39f6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='argsz' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='version' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cache' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/iommu.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='granularity' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/iommu.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='padding' type-id='c60dc9f2' visibility='default' filepath='include/uapi/linux/iommu.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='granu' type-id='ac5ab5e8' visibility='default' filepath='include/uapi/linux/iommu.h' line='270' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_ctrl_helper' is-struct='yes' visibility='default' is-declaration-only='yes' id='8a6e72bc'/>
+      <function-type size-in-bits='64' id='8a70282a'>
+        <parameter type-id='e324928d'/>
+        <parameter type-id='1d2c2b85'/>
+        <parameter type-id='1d2c2b85'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='d3130597' size-in-bits='128' id='8a7b7524'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='8a7e9d52'>
+        <parameter type-id='5d33005f'/>
+        <parameter type-id='131b0a9c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a4a4d871' size-in-bits='64' id='8a809741'/>
+      <class-decl name='snd_soc_dobj_control' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/sound/soc-topology.h' line='49' column='1' id='8a84fb32'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kcontrol' type-id='7a5054b7' visibility='default' filepath='include/sound/soc-topology.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dtexts' type-id='9b23c9ad' visibility='default' filepath='include/sound/soc-topology.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dvalues' type-id='1d2c2b85' visibility='default' filepath='include/sound/soc-topology.h' line='52' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='88ffd624' size-in-bits='64' id='8a854266'/>
+      <pointer-type-def type-id='bf33c00a' size-in-bits='64' id='8a876638'/>
+      <pointer-type-def type-id='2ed857dd' size-in-bits='64' id='8a8c0471'/>
+      <qualified-type-def type-id='09337300' const='yes' id='8a8d1c87'/>
+      <class-decl name='snd_enc_flac' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/sound/compress_params.h' line='315' column='1' id='8a9c9202'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='num' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='gain' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='317' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='34dda955' size-in-bits='64' id='8aa28e29'/>
+      <pointer-type-def type-id='c89340f8' size-in-bits='64' id='8aa9d34a'/>
+      <pointer-type-def type-id='5a602650' size-in-bits='64' id='8aae90f2'/>
+      <pointer-type-def type-id='3dba7a06' size-in-bits='64' id='8ab4431c'/>
+      <function-type size-in-bits='64' id='8ab546e0'>
+        <parameter type-id='108dbc98'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='0ce81823'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='8ab5a2af'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='91ce1af9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ZSTD_DDict_s' size-in-bits='197312' is-struct='yes' visibility='default' filepath='lib/zstd/decompress.c' line='1979' column='1' id='8ab6c8df'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dictBuffer' type-id='eaa32e2f' visibility='default' filepath='lib/zstd/decompress.c' line='1980' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dictContent' type-id='eaa32e2f' visibility='default' filepath='lib/zstd/decompress.c' line='1981' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dictSize' type-id='b59d7dce' visibility='default' filepath='lib/zstd/decompress.c' line='1982' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='entropy' type-id='a51b392f' visibility='default' filepath='lib/zstd/decompress.c' line='1983' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='197056'>
+          <var-decl name='dictID' type-id='7d89f13e' visibility='default' filepath='lib/zstd/decompress.c' line='1984' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='197088'>
+          <var-decl name='entropyPresent' type-id='7d89f13e' visibility='default' filepath='lib/zstd/decompress.c' line='1985' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='197120'>
+          <var-decl name='cMem' type-id='4cf8679c' visibility='default' filepath='lib/zstd/decompress.c' line='1986' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='8ab70c7a'>
+        <parameter type-id='7544e824'/>
+        <parameter type-id='9a537bbe'/>
+        <parameter type-id='aded214c'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='1d2c2b85'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9a07743b' size-in-bits='64' id='8abbb6c3'/>
+      <enum-decl name='xdp_mem_type' filepath='include/net/xdp.h' line='38' column='1' id='8abc4a7f'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='MEM_TYPE_PAGE_SHARED' value='0'/>
+        <enumerator name='MEM_TYPE_PAGE_ORDER0' value='1'/>
+        <enumerator name='MEM_TYPE_PAGE_POOL' value='2'/>
+        <enumerator name='MEM_TYPE_XSK_BUFF_POOL' value='3'/>
+        <enumerator name='MEM_TYPE_MAX' value='4'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='8ac5f9fc'>
+        <parameter type-id='33dc3b1b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='5183f61d' size-in-bits='64' id='8ace4add'/>
+      <class-decl name='wpan_dev' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/net/cfg802154.h' line='326' column='1' id='8ae2fb1d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='wpan_phy' type-id='82398c35' visibility='default' filepath='include/net/cfg802154.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='iftype' type-id='95e97e5e' visibility='default' filepath='include/net/cfg802154.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/cfg802154.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='netdev' type-id='68a2d05b' visibility='default' filepath='include/net/cfg802154.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='header_ops' type-id='790774ef' visibility='default' filepath='include/net/cfg802154.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='lowpan_dev' type-id='68a2d05b' visibility='default' filepath='include/net/cfg802154.h' line='337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='identifier' type-id='19c2251e' visibility='default' filepath='include/net/cfg802154.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='pan_id' type-id='23119536' visibility='default' filepath='include/net/cfg802154.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='496'>
+          <var-decl name='short_addr' type-id='23119536' visibility='default' filepath='include/net/cfg802154.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='extended_addr' type-id='a30e8d1f' visibility='default' filepath='include/net/cfg802154.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='bsn' type-id='49178f86' visibility='default' filepath='include/net/cfg802154.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='dsn' type-id='49178f86' visibility='default' filepath='include/net/cfg802154.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='min_be' type-id='f9b06939' visibility='default' filepath='include/net/cfg802154.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='648'>
+          <var-decl name='max_be' type-id='f9b06939' visibility='default' filepath='include/net/cfg802154.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='656'>
+          <var-decl name='csma_retries' type-id='f9b06939' visibility='default' filepath='include/net/cfg802154.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='664'>
+          <var-decl name='frame_retries' type-id='fdbf7a0f' visibility='default' filepath='include/net/cfg802154.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='lbt' type-id='b50a4934' visibility='default' filepath='include/net/cfg802154.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='680'>
+          <var-decl name='promiscuous_mode' type-id='b50a4934' visibility='default' filepath='include/net/cfg802154.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='688'>
+          <var-decl name='ackreq' type-id='b50a4934' visibility='default' filepath='include/net/cfg802154.h' line='361' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='dma_desc_metadata_mode' filepath='include/linux/dmaengine.h' line='283' column='1' id='8ae66bc4'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DESC_METADATA_NONE' value='0'/>
+        <enumerator name='DESC_METADATA_CLIENT' value='1'/>
+        <enumerator name='DESC_METADATA_ENGINE' value='2'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='8aecb761'>
+        <parameter type-id='bff05edb'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='50acc06b' size-in-bits='64' id='8af06487'/>
+      <typedef-decl name='__s8' type-id='28577a57' filepath='include/uapi/asm-generic/int-ll64.h' line='20' column='1' id='8af57d41'/>
+      <function-type size-in-bits='64' id='8b0a6709'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='nvdimm_fwa_result' filepath='include/linux/libnvdimm.h' line='223' column='1' id='8b0b6618'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NVDIMM_FWA_RESULT_INVALID' value='0'/>
+        <enumerator name='NVDIMM_FWA_RESULT_NONE' value='1'/>
+        <enumerator name='NVDIMM_FWA_RESULT_SUCCESS' value='2'/>
+        <enumerator name='NVDIMM_FWA_RESULT_NOTSTAGED' value='3'/>
+        <enumerator name='NVDIMM_FWA_RESULT_NEEDRESET' value='4'/>
+        <enumerator name='NVDIMM_FWA_RESULT_FAIL' value='5'/>
+      </enum-decl>
+      <pointer-type-def type-id='4c1280d4' size-in-bits='64' id='8b139582'/>
+      <pointer-type-def type-id='43795fda' size-in-bits='64' id='8b145ad8'/>
+      <function-type size-in-bits='64' id='8b1bf035'>
+        <parameter type-id='7a29ff27'/>
+        <parameter type-id='7a29ff27'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='8b226e8b'>
+        <parameter type-id='3921c1a0'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='8b28624a'>
+        <parameter type-id='e7d2a5fc'/>
+        <parameter type-id='fb55efa1'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='31e0f35d' size-in-bits='64' id='8b42c33d'/>
+      <enum-decl name='nl80211_sar_type' filepath='include/uapi/linux/nl80211.h' line='7667' column='1' id='8b4863ac'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NL80211_SAR_TYPE_POWER' value='0'/>
+        <enumerator name='NUM_NL80211_SAR_TYPE' value='1'/>
+      </enum-decl>
+      <enum-decl name='v4l2_priority' filepath='include/uapi/linux/videodev2.h' line='404' column='1' id='8b60a0b9'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='V4L2_PRIORITY_UNSET' value='0'/>
+        <enumerator name='V4L2_PRIORITY_BACKGROUND' value='1'/>
+        <enumerator name='V4L2_PRIORITY_INTERACTIVE' value='2'/>
+        <enumerator name='V4L2_PRIORITY_RECORD' value='3'/>
+        <enumerator name='V4L2_PRIORITY_DEFAULT' value='2'/>
+      </enum-decl>
+      <class-decl name='sched_group' size-in-bits='256' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='1856' column='1' id='8b6491f4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='f3dcd492' visibility='default' filepath='kernel/sched/sched.h' line='1857' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ref' type-id='49178f86' visibility='default' filepath='kernel/sched/sched.h' line='1858' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='group_weight' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='1860' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sgc' type-id='29a48d3d' visibility='default' filepath='kernel/sched/sched.h' line='1861' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='asym_prefer_cpu' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1862' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='cpumask' type-id='c99b5ecd' visibility='default' filepath='kernel/sched/sched.h' line='1871' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='8b66a21e'>
+        <parameter type-id='f772df6d'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='e2103cb1' const='yes' id='8b69ca04'/>
+      <class-decl name='debugfs_reg32' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/debugfs.h' line='29' column='1' id='8b6b6ef7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/debugfs.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='offset' type-id='7359adad' visibility='default' filepath='include/linux/debugfs.h' line='31' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2ae08426' size-in-bits='64' id='8b6fdee4'/>
+      <function-type size-in-bits='64' id='8b73b897'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='eb940a3b' size-in-bits='64' id='8b74557f'/>
+      <class-decl name='iommu_ops' size-in-bits='2688' is-struct='yes' visibility='default' filepath='include/linux/iommu.h' line='256' column='1' id='8b7a2cd1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='capable' type-id='fd03a8f4' visibility='default' filepath='include/linux/iommu.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='domain_alloc' type-id='2908e93a' visibility='default' filepath='include/linux/iommu.h' line='260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='domain_free' type-id='36caa4da' visibility='default' filepath='include/linux/iommu.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='attach_dev' type-id='21e9ca19' visibility='default' filepath='include/linux/iommu.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='detach_dev' type-id='32baba38' visibility='default' filepath='include/linux/iommu.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='map' type-id='2371b41a' visibility='default' filepath='include/linux/iommu.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='map_pages' type-id='d8378d75' visibility='default' filepath='include/linux/iommu.h' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='map_sg' type-id='ce744351' visibility='default' filepath='include/linux/iommu.h' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='unmap' type-id='d1a6d6c2' visibility='default' filepath='include/linux/iommu.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='unmap_pages' type-id='b267d173' visibility='default' filepath='include/linux/iommu.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='flush_iotlb_all' type-id='36caa4da' visibility='default' filepath='include/linux/iommu.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='iotlb_sync_map' type-id='7b4e3cad' visibility='default' filepath='include/linux/iommu.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='iotlb_sync' type-id='a6bf568c' visibility='default' filepath='include/linux/iommu.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='iova_to_phys' type-id='c4904652' visibility='default' filepath='include/linux/iommu.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='probe_device' type-id='9f2abc7c' visibility='default' filepath='include/linux/iommu.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='release_device' type-id='dd787f72' visibility='default' filepath='include/linux/iommu.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='probe_finalize' type-id='dd787f72' visibility='default' filepath='include/linux/iommu.h' line='286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='device_group' type-id='5448fdd7' visibility='default' filepath='include/linux/iommu.h' line='287' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='enable_nesting' type-id='619df3fd' visibility='default' filepath='include/linux/iommu.h' line='288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='set_pgtable_quirks' type-id='f75051ab' visibility='default' filepath='include/linux/iommu.h' line='289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='get_resv_regions' type-id='83d96d05' visibility='default' filepath='include/linux/iommu.h' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='put_resv_regions' type-id='83d96d05' visibility='default' filepath='include/linux/iommu.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='apply_resv_region' type-id='b20722ab' visibility='default' filepath='include/linux/iommu.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='of_xlate' type-id='7fc43753' visibility='default' filepath='include/linux/iommu.h' line='299' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='is_attach_deferred' type-id='6ee36fa3' visibility='default' filepath='include/linux/iommu.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='dev_has_feat' type-id='6981b6e9' visibility='default' filepath='include/linux/iommu.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='dev_feat_enabled' type-id='6981b6e9' visibility='default' filepath='include/linux/iommu.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='dev_enable_feat' type-id='5a1281ab' visibility='default' filepath='include/linux/iommu.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='dev_disable_feat' type-id='5a1281ab' visibility='default' filepath='include/linux/iommu.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='aux_attach_dev' type-id='21e9ca19' visibility='default' filepath='include/linux/iommu.h' line='309' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='aux_detach_dev' type-id='32baba38' visibility='default' filepath='include/linux/iommu.h' line='310' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='aux_get_pasid' type-id='21e9ca19' visibility='default' filepath='include/linux/iommu.h' line='311' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='sva_bind' type-id='925b860a' visibility='default' filepath='include/linux/iommu.h' line='313' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='sva_unbind' type-id='4fb74714' visibility='default' filepath='include/linux/iommu.h' line='315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='sva_get_pasid' type-id='59ec9c15' visibility='default' filepath='include/linux/iommu.h' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='page_response' type-id='1ff48951' visibility='default' filepath='include/linux/iommu.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='cache_invalidate' type-id='fae741e8' visibility='default' filepath='include/linux/iommu.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='sva_bind_gpasid' type-id='145acfb2' visibility='default' filepath='include/linux/iommu.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='sva_unbind_gpasid' type-id='01f1d7bc' visibility='default' filepath='include/linux/iommu.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='def_domain_type' type-id='613d39f5' visibility='default' filepath='include/linux/iommu.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='pgsize_bitmap' type-id='7359adad' visibility='default' filepath='include/linux/iommu.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/iommu.h' line='331' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='8b7bbbae'>
+        <parameter type-id='c14d5db2'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ratelimit_state' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/ratelimit_types.h' line='15' column='1' id='8b829a50'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/ratelimit_types.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='interval' type-id='95e97e5e' visibility='default' filepath='include/linux/ratelimit_types.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='burst' type-id='95e97e5e' visibility='default' filepath='include/linux/ratelimit_types.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='printed' type-id='95e97e5e' visibility='default' filepath='include/linux/ratelimit_types.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='missed' type-id='95e97e5e' visibility='default' filepath='include/linux/ratelimit_types.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='begin' type-id='7359adad' visibility='default' filepath='include/linux/ratelimit_types.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/ratelimit_types.h' line='23' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='iommu_gpasid_bind_data_vtd' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/iommu.h' line='284' column='1' id='8b85ffcf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='d3130597' visibility='default' filepath='include/uapi/linux/iommu.h' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pat' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='emt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='295' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a804e84c' size-in-bits='64' id='8b8bc11e'/>
+      <pointer-type-def type-id='1eb56b1e' size-in-bits='64' id='8b97c2dc'/>
+      <function-type size-in-bits='64' id='8b9912bb'>
+        <parameter type-id='5e4f599b'/>
+        <parameter type-id='1d2c2b85'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='43c32a14' size-in-bits='4928' id='8b994f0e'>
+        <subrange length='11' type-id='7ff19f0f' id='847bc017'/>
+      </array-type-def>
+      <pointer-type-def type-id='f67ba3ad' size-in-bits='64' id='8ba26d85'/>
+      <pointer-type-def type-id='4db10e5c' size-in-bits='64' id='8ba5499a'/>
+      <class-decl name='mmc_request' size-in-bits='1152' is-struct='yes' visibility='default' filepath='include/linux/mmc/core.h' line='144' column='1' id='8bb2c7be'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sbc' type-id='6df3750c' visibility='default' filepath='include/linux/mmc/core.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cmd' type-id='6df3750c' visibility='default' filepath='include/linux/mmc/core.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data' type-id='6de64ec1' visibility='default' filepath='include/linux/mmc/core.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='stop' type-id='6df3750c' visibility='default' filepath='include/linux/mmc/core.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='completion' type-id='f9fef04f' visibility='default' filepath='include/linux/mmc/core.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='cmd_completion' type-id='f9fef04f' visibility='default' filepath='include/linux/mmc/core.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='done' type-id='41865b69' visibility='default' filepath='include/linux/mmc/core.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='recovery_notifier' type-id='41865b69' visibility='default' filepath='include/linux/mmc/core.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='host' type-id='dd575c43' visibility='default' filepath='include/linux/mmc/core.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='cap_cmd_during_tfr' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/core.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='tag' type-id='95e97e5e' visibility='default' filepath='include/linux/mmc/core.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='crypto_ctx' type-id='6a407553' visibility='default' filepath='include/linux/mmc/core.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='crypto_key_slot' type-id='95e97e5e' visibility='default' filepath='include/linux/mmc/core.h' line='168' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='of_device_id' size-in-bits='1600' is-struct='yes' visibility='default' filepath='include/linux/mod_devicetable.h' line='268' column='1' id='8bb45a31'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/linux/mod_devicetable.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='type' type-id='16dc656a' visibility='default' filepath='include/linux/mod_devicetable.h' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='compatible' type-id='e3204322' visibility='default' filepath='include/linux/mod_devicetable.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/mod_devicetable.h' line='272' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_atomic_state' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/drm/drm_atomic.h' line='346' column='1' id='8bb9a8e8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ref' type-id='400fb07b' visibility='default' filepath='include/drm/drm_atomic.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='8898134d' visibility='default' filepath='include/drm/drm_atomic.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='allow_modeset' type-id='b50a4934' visibility='default' filepath='include/drm/drm_atomic.h' line='359' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='129'>
+          <var-decl name='legacy_cursor_update' type-id='b50a4934' visibility='default' filepath='include/drm/drm_atomic.h' line='371' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='130'>
+          <var-decl name='async_update' type-id='b50a4934' visibility='default' filepath='include/drm/drm_atomic.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='131'>
+          <var-decl name='duplicated' type-id='b50a4934' visibility='default' filepath='include/drm/drm_atomic.h' line='381' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='planes' type-id='356fd446' visibility='default' filepath='include/drm/drm_atomic.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='crtcs' type-id='611a28de' visibility='default' filepath='include/drm/drm_atomic.h' line='383' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='num_connector' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_atomic.h' line='384' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='connectors' type-id='6d26c72b' visibility='default' filepath='include/drm/drm_atomic.h' line='385' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='num_private_objs' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_atomic.h' line='386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='private_objs' type-id='258e7e75' visibility='default' filepath='include/drm/drm_atomic.h' line='387' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='acquire_ctx' type-id='d1499e71' visibility='default' filepath='include/drm/drm_atomic.h' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='fake_commit' type-id='3f40b771' visibility='default' filepath='include/drm/drm_atomic.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='commit_work' type-id='ef9025d0' visibility='default' filepath='include/drm/drm_atomic.h' line='409' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='1792' id='8bbc0f7f'>
+        <subrange length='28' type-id='7ff19f0f' id='3db583d7'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='8bc2b40f'>
+        <parameter type-id='c151d965'/>
+        <parameter type-id='70d417ab'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='8bcde2dc'>
+        <parameter type-id='8212a608'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='socket_wq' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/net.h' line='97' column='1' id='8bd06fd9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='wait' type-id='b5ab048f' visibility='default' filepath='include/linux/net.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fasync_list' type-id='5bb9c75d' visibility='default' filepath='include/linux/net.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/net.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/net.h' line='102' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='a3e4c395' const='yes' id='8bd3aaa6'/>
+      <pointer-type-def type-id='b08da511' size-in-bits='64' id='8bdb16d5'/>
+      <pointer-type-def type-id='749ee287' size-in-bits='64' id='8bdbbb63'/>
+      <pointer-type-def type-id='9c267c11' size-in-bits='64' id='8bf3cff5'/>
+      <pointer-type-def type-id='5b653fc9' size-in-bits='64' id='8bf48c31'/>
+      <function-type size-in-bits='64' id='8bf54ce9'>
+        <parameter type-id='f41a0030'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='b4c4f641'/>
+        <parameter type-id='26d4d46f'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='1f13c53a' size-in-bits='64' id='8bf55d78'/>
+      <pointer-type-def type-id='94d117ca' size-in-bits='64' id='8bf6d789'/>
+      <enum-decl name='clk_gating_state' filepath='drivers/scsi/ufs/ufshcd.h' line='373' column='1' id='8bfed557'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='CLKS_OFF' value='0'/>
+        <enumerator name='CLKS_ON' value='1'/>
+        <enumerator name='REQ_CLKS_OFF' value='2'/>
+        <enumerator name='REQ_CLKS_ON' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='f9b06939' size-in-bits='64' id='8bff8096'/>
+      <qualified-type-def type-id='bf11b8f2' const='yes' id='8c09cc61'/>
+      <typedef-decl name='sci_t' type-id='91ce1af9' filepath='include/net/macsec.h' line='20' column='1' id='8c0f9db2'/>
+      <class-decl name='user_namespace' size-in-bits='5248' is-struct='yes' visibility='default' filepath='include/linux/user_namespace.h' line='67' column='1' id='8c178e22'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='uid_map' type-id='f179bf1b' visibility='default' filepath='include/linux/user_namespace.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='gid_map' type-id='f179bf1b' visibility='default' filepath='include/linux/user_namespace.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='projid_map' type-id='f179bf1b' visibility='default' filepath='include/linux/user_namespace.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='parent' type-id='c0ced320' visibility='default' filepath='include/linux/user_namespace.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='level' type-id='95e97e5e' visibility='default' filepath='include/linux/user_namespace.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1824'>
+          <var-decl name='owner' type-id='d80b72e6' visibility='default' filepath='include/linux/user_namespace.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='group' type-id='094d8048' visibility='default' filepath='include/linux/user_namespace.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='ns' type-id='99f367f2' visibility='default' filepath='include/linux/user_namespace.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/user_namespace.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='parent_could_setfcap' type-id='b50a4934' visibility='default' filepath='include/linux/user_namespace.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='keyring_name_list' type-id='72f469ec' visibility='default' filepath='include/linux/user_namespace.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='user_keyring_register' type-id='204a4632' visibility='default' filepath='include/linux/user_namespace.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='keyring_sem' type-id='f19fdb93' visibility='default' filepath='include/linux/user_namespace.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/linux/user_namespace.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='set' type-id='3fc3d262' visibility='default' filepath='include/linux/user_namespace.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='sysctls' type-id='11b101bb' visibility='default' filepath='include/linux/user_namespace.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='ucounts' type-id='b1d4934a' visibility='default' filepath='include/linux/user_namespace.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='ucount_max' type-id='6d53f6b1' visibility='default' filepath='include/linux/user_namespace.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/user_namespace.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/user_namespace.h' line='105' column='1'/>
+        </data-member>
+      </class-decl>
+      <union-decl name='nf_inet_addr' size-in-bits='128' visibility='default' filepath='include/uapi/linux/netfilter.h' line='69' column='1' id='8c17f46b'>
+        <data-member access='public'>
+          <var-decl name='all' type-id='3fa29bab' visibility='default' filepath='include/uapi/linux/netfilter.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ip' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/netfilter.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ip6' type-id='30180d4b' visibility='default' filepath='include/uapi/linux/netfilter.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='in' type-id='34f03654' visibility='default' filepath='include/uapi/linux/netfilter.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='in6' type-id='f6ed712a' visibility='default' filepath='include/uapi/linux/netfilter.h' line='74' column='1'/>
+        </data-member>
+      </union-decl>
+      <function-type size-in-bits='64' id='8c180526'>
+        <parameter type-id='15d29710'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='b53e8dbb'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='51dbeb7e' size-in-bits='64' id='8c1bb0b4'/>
+      <class-decl name='bpf_insn' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='71' column='1' id='8c2bf2b2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='code' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/bpf.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='dst_reg' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/bpf.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12'>
+          <var-decl name='src_reg' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/bpf.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='off' type-id='b55def60' visibility='default' filepath='include/uapi/linux/bpf.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='imm' type-id='3158a266' visibility='default' filepath='include/uapi/linux/bpf.h' line='76' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='af73fe5b' const='yes' id='8c2c98d8'/>
+      <pointer-type-def type-id='a0776e3c' size-in-bits='64' id='8c46546a'/>
+      <pointer-type-def type-id='cf9b45ac' size-in-bits='64' id='8c493d8a'/>
+      <enum-decl name='gpd_status' filepath='include/linux/pm_domain.h' line='72' column='1' id='8c497ed4'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='GENPD_STATE_ON' value='0'/>
+        <enumerator name='GENPD_STATE_OFF' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='b32a1711' size-in-bits='64' id='8c4c4029'/>
+      <pointer-type-def type-id='45af6e9d' size-in-bits='64' id='8c4ea251'/>
+      <pointer-type-def type-id='da363123' size-in-bits='64' id='8c4f312b'/>
+      <pointer-type-def type-id='8870610f' size-in-bits='64' id='8c63346c'/>
+      <class-decl name='iio_dev' size-in-bits='8768' is-struct='yes' visibility='default' filepath='include/linux/iio/iio.h' line='516' column='1' id='8c644de4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='modes' type-id='95e97e5e' visibility='default' filepath='include/linux/iio/iio.h' line='517' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='currentmode' type-id='95e97e5e' visibility='default' filepath='include/linux/iio/iio.h' line='518' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/iio/iio.h' line='519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='buffer' type-id='aa9ea333' visibility='default' filepath='include/linux/iio/iio.h' line='521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='scan_bytes' type-id='95e97e5e' visibility='default' filepath='include/linux/iio/iio.h' line='522' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='mlock' type-id='925167dc' visibility='default' filepath='include/linux/iio/iio.h' line='523' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='available_scan_masks' type-id='f9b37274' visibility='default' filepath='include/linux/iio/iio.h' line='525' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='masklength' type-id='f0981eeb' visibility='default' filepath='include/linux/iio/iio.h' line='526' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='active_scan_mask' type-id='f9b37274' visibility='default' filepath='include/linux/iio/iio.h' line='527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='scan_timestamp' type-id='b50a4934' visibility='default' filepath='include/linux/iio/iio.h' line='528' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='trig' type-id='54e54fbb' visibility='default' filepath='include/linux/iio/iio.h' line='529' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='pollfunc' type-id='9add1da7' visibility='default' filepath='include/linux/iio/iio.h' line='530' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='pollfunc_event' type-id='9add1da7' visibility='default' filepath='include/linux/iio/iio.h' line='531' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='channels' type-id='f74174a4' visibility='default' filepath='include/linux/iio/iio.h' line='533' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8384'>
+          <var-decl name='num_channels' type-id='95e97e5e' visibility='default' filepath='include/linux/iio/iio.h' line='534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8448'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/iio/iio.h' line='536' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='label' type-id='80f4b756' visibility='default' filepath='include/linux/iio/iio.h' line='537' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8576'>
+          <var-decl name='info' type-id='62d8a75a' visibility='default' filepath='include/linux/iio/iio.h' line='538' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='setup_ops' type-id='7597aac3' visibility='default' filepath='include/linux/iio/iio.h' line='539' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/iio/iio.h' line='541' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='regulatory_request' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/net/regulatory.h' line='77' column='1' id='8c70c365'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/net/regulatory.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='wiphy_idx' type-id='95e97e5e' visibility='default' filepath='include/net/regulatory.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='initiator' type-id='790cc131' visibility='default' filepath='include/net/regulatory.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='user_reg_hint_type' type-id='b833d4ac' visibility='default' filepath='include/net/regulatory.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='alpha2' type-id='4df9d64a' visibility='default' filepath='include/net/regulatory.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dfs_region' type-id='5a85c988' visibility='default' filepath='include/net/regulatory.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='intersect' type-id='b50a4934' visibility='default' filepath='include/net/regulatory.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='296'>
+          <var-decl name='processed' type-id='b50a4934' visibility='default' filepath='include/net/regulatory.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='country_ie_env' type-id='e0964c8a' visibility='default' filepath='include/net/regulatory.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/regulatory.h' line='87' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='189336ea' size-in-bits='64' id='8c779dcc'/>
+      <class-decl name='cec_drm_connector_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/cec.h' line='386' column='1' id='8c7b18b1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='card_no' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/cec.h' line='387' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='connector_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/cec.h' line='388' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='regmap_hw_reg_write' type-id='db7eb22d' filepath='include/linux/regmap.h' line='479' column='1' id='8c8780d1'/>
+      <class-decl name='can_rcv_lists_stats' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/../net/can/af_can.h' line='91' column='1' id='8c8c8763'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='stats_reset' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='user_reset' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rcv_entries' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rcv_entries_max' type-id='7359adad' visibility='default' filepath='include/../net/can/af_can.h' line='95' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='vm_event_state' size-in-bits='5760' is-struct='yes' visibility='default' filepath='include/linux/vm_event.h' line='22' column='1' id='8c8f5291'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='event' type-id='fd42223a' visibility='default' filepath='include/linux/vm_event.h' line='23' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='vhost_vring_call' size-in-bits='576' is-struct='yes' visibility='default' filepath='drivers/vhost/vhost.h' line='63' column='1' id='8c950be5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ctx' type-id='71f2e203' visibility='default' filepath='drivers/vhost/vhost.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='producer' type-id='4ee52715' visibility='default' filepath='drivers/vhost/vhost.h' line='65' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a08a663b' size-in-bits='64' id='8ca76d9f'/>
+      <function-type size-in-bits='64' id='8ca90cbf'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='12a060a4'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='netns_ieee802154_lowpan' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/netns/ieee802154_6lowpan.h' line='17' column='1' id='8cab4960'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sysctl' type-id='3d6c0b76' visibility='default' filepath='include/net/netns/ieee802154_6lowpan.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fqdir' type-id='943ad75f' visibility='default' filepath='include/net/netns/ieee802154_6lowpan.h' line='19' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b21fa5e0' size-in-bits='64' id='8cbb2c12'/>
+      <pointer-type-def type-id='2d274c62' size-in-bits='64' id='8cc78bbc'/>
+      <class-decl name='nf_icmp_net' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/net/netns/conntrack.h' line='49' column='1' id='8cc9c55b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='timeout' type-id='f0981eeb' visibility='default' filepath='include/net/netns/conntrack.h' line='50' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6a18482b' size-in-bits='64' id='8cd77b5f'/>
+      <class-decl name='v4l2_plane' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='990' column='1' id='8cd967bc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bytesused' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='991' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='length' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='992' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='m' type-id='ac5ab5f6' visibility='default' filepath='include/uapi/linux/videodev2.h' line='997' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data_offset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='998' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='reserved' type-id='9d263779' visibility='default' filepath='include/uapi/linux/videodev2.h' line='999' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cf470d6a' size-in-bits='64' id='8cd9dbc0'/>
+      <typedef-decl name='__sighandler_t' type-id='a38aafde' filepath='include/uapi/asm-generic/signal-defs.h' line='83' column='1' id='8cdd9566'/>
+      <function-type size-in-bits='64' id='8cdee791'>
+        <parameter type-id='28271da3'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <function-type size-in-bits='64' id='8ce1651f'>
+        <parameter type-id='a47d3467'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9df4c74e' size-in-bits='64' id='8ce270a4'/>
+      <class-decl name='quotactl_ops' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/quota.h' line='434' column='1' id='8ce4ff83'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='quota_on' type-id='de6b64d0' visibility='default' filepath='include/linux/quota.h' line='435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='quota_off' type-id='dcab5203' visibility='default' filepath='include/linux/quota.h' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='quota_enable' type-id='7aa5a21e' visibility='default' filepath='include/linux/quota.h' line='437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='quota_disable' type-id='7aa5a21e' visibility='default' filepath='include/linux/quota.h' line='438' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='quota_sync' type-id='dcab5203' visibility='default' filepath='include/linux/quota.h' line='439' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='set_info' type-id='4e326e06' visibility='default' filepath='include/linux/quota.h' line='440' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='get_dqblk' type-id='9e27a8d4' visibility='default' filepath='include/linux/quota.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='get_nextdqblk' type-id='483e8c3a' visibility='default' filepath='include/linux/quota.h' line='442' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='set_dqblk' type-id='9e27a8d4' visibility='default' filepath='include/linux/quota.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='get_state' type-id='eb638046' visibility='default' filepath='include/linux/quota.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='rm_xquota' type-id='7aa5a21e' visibility='default' filepath='include/linux/quota.h' line='446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/quota.h' line='448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/quota.h' line='449' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e09dbee3' size-in-bits='64' id='8ceda7f7'/>
+      <pointer-type-def type-id='599afbc8' size-in-bits='64' id='8cefa062'/>
+      <class-decl name='kset' size-in-bits='1280' is-struct='yes' visibility='default' filepath='include/linux/kobject.h' line='207' column='1' id='8cf069a2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/kobject.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/kobject.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='include/linux/kobject.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='uevent_ops' type-id='86462700' visibility='default' filepath='include/linux/kobject.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/kobject.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/kobject.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/kobject.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/kobject.h' line='216' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='f1317091' size-in-bits='32768' id='8cf38aae'>
+        <subrange length='128' type-id='7ff19f0f' id='1eb1687a'/>
+      </array-type-def>
+      <typedef-decl name='proc_handler' type-id='99803d40' filepath='include/linux/sysctl.h' line='55' column='1' id='8cf4128f'/>
+      <pointer-type-def type-id='34f65a0c' size-in-bits='64' id='8cf5c486'/>
+      <pointer-type-def type-id='c3bf2e4d' size-in-bits='64' id='8cf60c25'/>
+      <function-type size-in-bits='64' id='8cfd5cb8'>
+        <parameter type-id='352b95f6'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='19596889' size-in-bits='64' id='8cffa561'/>
+      <class-decl name='fs_context' size-in-bits='1408' is-struct='yes' visibility='default' filepath='include/linux/fs_context.h' line='90' column='1' id='8d0295a2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='7536fa28' visibility='default' filepath='include/linux/fs_context.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='uapi_mutex' type-id='925167dc' visibility='default' filepath='include/linux/fs_context.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='fs_type' type-id='21e53d44' visibility='default' filepath='include/linux/fs_context.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='fs_private' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs_context.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='sget_key' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs_context.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='root' type-id='27675065' visibility='default' filepath='include/linux/fs_context.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='user_ns' type-id='c0ced320' visibility='default' filepath='include/linux/fs_context.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='net_ns' type-id='a2bff676' visibility='default' filepath='include/linux/fs_context.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='cred' type-id='bc33861a' visibility='default' filepath='include/linux/fs_context.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='log' type-id='49afbfba' visibility='default' filepath='include/linux/fs_context.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='source' type-id='80f4b756' visibility='default' filepath='include/linux/fs_context.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='security' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs_context.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='s_fs_info' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs_context.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='sb_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/fs_context.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='sb_flags_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/fs_context.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='s_iflags' type-id='f0981eeb' visibility='default' filepath='include/linux/fs_context.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='lsm_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/fs_context.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='purpose' type-id='4171a6be' visibility='default' filepath='include/linux/fs_context.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1352'>
+          <var-decl name='phase' type-id='de54989f' visibility='default' filepath='include/linux/fs_context.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1360'>
+          <var-decl name='need_free' type-id='b50a4934' visibility='default' filepath='include/linux/fs_context.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1361'>
+          <var-decl name='global' type-id='b50a4934' visibility='default' filepath='include/linux/fs_context.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1362'>
+          <var-decl name='oldapi' type-id='b50a4934' visibility='default' filepath='include/linux/fs_context.h' line='112' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='8d04d39b'>
+        <parameter type-id='69a866d8'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='94eb9e95'/>
+        <parameter type-id='1dc6a898'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='8d077d91'>
+        <parameter type-id='f57039f0'/>
+        <parameter type-id='02f11ed4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='hrtimer_cpu_base' size-in-bits='4608' is-struct='yes' visibility='default' filepath='include/linux/hrtimer.h' line='217' column='1' id='8d24b00b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/hrtimer.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='cpu' type-id='f0981eeb' visibility='default' filepath='include/linux/hrtimer.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='active_bases' type-id='f0981eeb' visibility='default' filepath='include/linux/hrtimer.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='clock_was_set_seq' type-id='f0981eeb' visibility='default' filepath='include/linux/hrtimer.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hres_active' type-id='f0981eeb' visibility='default' filepath='include/linux/hrtimer.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='129'>
+          <var-decl name='in_hrtirq' type-id='f0981eeb' visibility='default' filepath='include/linux/hrtimer.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='130'>
+          <var-decl name='hang_detected' type-id='f0981eeb' visibility='default' filepath='include/linux/hrtimer.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='131'>
+          <var-decl name='softirq_activated' type-id='f0981eeb' visibility='default' filepath='include/linux/hrtimer.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='nr_events' type-id='f0981eeb' visibility='default' filepath='include/linux/hrtimer.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='nr_retries' type-id='8efea9e5' visibility='default' filepath='include/linux/hrtimer.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='nr_hangs' type-id='8efea9e5' visibility='default' filepath='include/linux/hrtimer.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='max_hang_time' type-id='f0981eeb' visibility='default' filepath='include/linux/hrtimer.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='expires_next' type-id='fbc017ef' visibility='default' filepath='include/linux/hrtimer.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='next_timer' type-id='08c8d0fa' visibility='default' filepath='include/linux/hrtimer.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='softirq_expires_next' type-id='fbc017ef' visibility='default' filepath='include/linux/hrtimer.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='softirq_next_timer' type-id='08c8d0fa' visibility='default' filepath='include/linux/hrtimer.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='clock_base' type-id='cb01bf4b' visibility='default' filepath='include/linux/hrtimer.h' line='240' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='hotplug_slot_ops' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/pci_hotplug.h' line='38' column='1' id='8d2c0dd2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='enable_slot' type-id='1617c63b' visibility='default' filepath='include/linux/pci_hotplug.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='disable_slot' type-id='1617c63b' visibility='default' filepath='include/linux/pci_hotplug.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='set_attention_status' type-id='4b81d8e7' visibility='default' filepath='include/linux/pci_hotplug.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hardware_test' type-id='b3f54aba' visibility='default' filepath='include/linux/pci_hotplug.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='get_power_status' type-id='db02d786' visibility='default' filepath='include/linux/pci_hotplug.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='get_attention_status' type-id='db02d786' visibility='default' filepath='include/linux/pci_hotplug.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='get_latch_status' type-id='db02d786' visibility='default' filepath='include/linux/pci_hotplug.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='get_adapter_status' type-id='db02d786' visibility='default' filepath='include/linux/pci_hotplug.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='reset_slot' type-id='b7227d8e' visibility='default' filepath='include/linux/pci_hotplug.h' line='47' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='ee22abe8' const='yes' id='8d2ce43f'/>
+      <pointer-type-def type-id='de5211b8' size-in-bits='64' id='8d31a8d6'/>
+      <array-type-def dimensions='1' type-id='9b45d938' size-in-bits='128' id='8d43b1f5'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='bd54fe1a' size-in-bits='2752' id='8d44496d'>
+        <subrange length='43' type-id='7ff19f0f' id='8f7e73a2'/>
+      </array-type-def>
+      <pointer-type-def type-id='baf016ef' size-in-bits='64' id='8d4ac8c3'/>
+      <pointer-type-def type-id='a6f56593' size-in-bits='64' id='8d4f223b'/>
+      <function-type size-in-bits='64' id='8d57fbd1'>
+        <parameter type-id='dd575c43'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='fr_proto' type-id='49ce3838' filepath='include/uapi/linux/hdlc/ioctl.h' line='66' column='1' id='8d64a1ad'/>
+      <pointer-type-def type-id='3d84df46' size-in-bits='64' id='8d681b98'/>
+      <function-type size-in-bits='64' id='8d6f7724'>
+        <parameter type-id='898c1076'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9b94c22b' size-in-bits='64' id='8d78edef'/>
+      <pointer-type-def type-id='e5bc390e' size-in-bits='64' id='8d80ced8'/>
+      <class-decl name='dma_fence_array' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/linux/dma-fence-array.h' line='37' column='1' id='8d83bfc9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='ce8c45a3' visibility='default' filepath='include/linux/dma-fence-array.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/dma-fence-array.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='num_fences' type-id='f0981eeb' visibility='default' filepath='include/linux/dma-fence-array.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='num_pending' type-id='49178f86' visibility='default' filepath='include/linux/dma-fence-array.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='fences' type-id='be937eab' visibility='default' filepath='include/linux/dma-fence-array.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='work' type-id='9281c70f' visibility='default' filepath='include/linux/dma-fence-array.h' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='8e4fd02d' size-in-bits='64' id='8da9cbef'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <class-decl name='xhci_op_regs' size-in-bits='40832' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='180' column='1' id='8dad10f5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='command' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='status' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='page_size' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='reserved1' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='reserved2' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='dev_notification' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cmd_ring' type-id='a30e8d1f' visibility='default' filepath='drivers/usb/host/xhci.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='reserved3' type-id='a36b3301' visibility='default' filepath='drivers/usb/host/xhci.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dcbaa_ptr' type-id='a30e8d1f' visibility='default' filepath='drivers/usb/host/xhci.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='config_reg' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='reserved4' type-id='61d4b112' visibility='default' filepath='drivers/usb/host/xhci.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='port_status_base' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8224'>
+          <var-decl name='port_power_base' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='port_link_base' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8288'>
+          <var-decl name='reserved5' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='reserved6' type-id='c96df45b' visibility='default' filepath='drivers/usb/host/xhci.h' line='200' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='action_destr' type-id='b7f9d8e6' filepath='include/net/flow_offload.h' line='186' column='1' id='8dad74ff'/>
+      <class-decl name='hlist_bl_node' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/list_bl.h' line='38' column='1' id='8db0df1b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='d09d4bab' visibility='default' filepath='include/linux/list_bl.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pprev' type-id='e89ddc13' visibility='default' filepath='include/linux/list_bl.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='inet6_dev' size-in-bits='10752' is-struct='yes' visibility='default' filepath='include/net/if_inet6.h' line='169' column='1' id='8db8de2b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/net/if_inet6.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='addr_list' type-id='72f469ec' visibility='default' filepath='include/net/if_inet6.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mc_list' type-id='d1ca3a89' visibility='default' filepath='include/net/if_inet6.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mc_tomb' type-id='d1ca3a89' visibility='default' filepath='include/net/if_inet6.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mc_qrv' type-id='002ac4a6' visibility='default' filepath='include/net/if_inet6.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='328'>
+          <var-decl name='mc_gq_running' type-id='002ac4a6' visibility='default' filepath='include/net/if_inet6.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='336'>
+          <var-decl name='mc_ifc_count' type-id='002ac4a6' visibility='default' filepath='include/net/if_inet6.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='344'>
+          <var-decl name='mc_dad_count' type-id='002ac4a6' visibility='default' filepath='include/net/if_inet6.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='mc_v1_seen' type-id='7359adad' visibility='default' filepath='include/net/if_inet6.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='mc_qi' type-id='7359adad' visibility='default' filepath='include/net/if_inet6.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='mc_qri' type-id='7359adad' visibility='default' filepath='include/net/if_inet6.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='mc_maxdelay' type-id='7359adad' visibility='default' filepath='include/net/if_inet6.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='mc_gq_work' type-id='5ad6e0ef' visibility='default' filepath='include/net/if_inet6.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='mc_ifc_work' type-id='5ad6e0ef' visibility='default' filepath='include/net/if_inet6.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='mc_dad_work' type-id='5ad6e0ef' visibility='default' filepath='include/net/if_inet6.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3904'>
+          <var-decl name='mc_query_work' type-id='5ad6e0ef' visibility='default' filepath='include/net/if_inet6.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='mc_report_work' type-id='5ad6e0ef' visibility='default' filepath='include/net/if_inet6.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='mc_query_queue' type-id='e61c85d0' visibility='default' filepath='include/net/if_inet6.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6272'>
+          <var-decl name='mc_report_queue' type-id='e61c85d0' visibility='default' filepath='include/net/if_inet6.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='mc_query_lock' type-id='fb4018a0' visibility='default' filepath='include/net/if_inet6.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6496'>
+          <var-decl name='mc_report_lock' type-id='fb4018a0' visibility='default' filepath='include/net/if_inet6.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6528'>
+          <var-decl name='mc_lock' type-id='925167dc' visibility='default' filepath='include/net/if_inet6.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6912'>
+          <var-decl name='ac_list' type-id='034d7ded' visibility='default' filepath='include/net/if_inet6.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6976'>
+          <var-decl name='lock' type-id='ac16795b' visibility='default' filepath='include/net/if_inet6.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7040'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/net/if_inet6.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7072'>
+          <var-decl name='if_flags' type-id='3f1a6b60' visibility='default' filepath='include/net/if_inet6.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7104'>
+          <var-decl name='dead' type-id='95e97e5e' visibility='default' filepath='include/net/if_inet6.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7136'>
+          <var-decl name='desync_factor' type-id='19c2251e' visibility='default' filepath='include/net/if_inet6.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7168'>
+          <var-decl name='tempaddr_list' type-id='72f469ec' visibility='default' filepath='include/net/if_inet6.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='token' type-id='f6ed712a' visibility='default' filepath='include/net/if_inet6.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='nd_parms' type-id='affe0fe2' visibility='default' filepath='include/net/if_inet6.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='cnf' type-id='55e8af82' visibility='default' filepath='include/net/if_inet6.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9728'>
+          <var-decl name='stats' type-id='0e97f526' visibility='default' filepath='include/net/if_inet6.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9984'>
+          <var-decl name='rs_timer' type-id='abe41e67' visibility='default' filepath='include/net/if_inet6.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10432'>
+          <var-decl name='rs_interval' type-id='3158a266' visibility='default' filepath='include/net/if_inet6.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10464'>
+          <var-decl name='rs_probes' type-id='8f048e17' visibility='default' filepath='include/net/if_inet6.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10496'>
+          <var-decl name='tstamp' type-id='7359adad' visibility='default' filepath='include/net/if_inet6.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10560'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/if_inet6.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10688'>
+          <var-decl name='ra_mtu' type-id='f0981eeb' visibility='default' filepath='include/net/if_inet6.h' line='222' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fwnode_reference_args' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/fwnode.h' line='83' column='1' id='8dbba1ec'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fwnode' type-id='4a935625' visibility='default' filepath='include/linux/fwnode.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nargs' type-id='f0981eeb' visibility='default' filepath='include/linux/fwnode.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='args' type-id='6094c99c' visibility='default' filepath='include/linux/fwnode.h' line='86' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8393eddc' size-in-bits='64' id='8dc588ee'/>
+      <qualified-type-def type-id='e85be380' const='yes' id='8dc7c255'/>
+      <typedef-decl name='__kernel_off_t' type-id='6a11bd61' filepath='include/uapi/asm-generic/posix_types.h' line='87' column='1' id='8dda407a'/>
+      <pointer-type-def type-id='98cbb885' size-in-bits='64' id='8ddbf889'/>
+      <function-type size-in-bits='64' id='8de1c3db'>
+        <parameter type-id='3aaeef89'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='56798c81' size-in-bits='64' id='8dee6d89'/>
+      <enum-decl name='hdmi_colorimetry' filepath='include/linux/hdmi.h' line='89' column='1' id='8df1782c'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HDMI_COLORIMETRY_NONE' value='0'/>
+        <enumerator name='HDMI_COLORIMETRY_ITU_601' value='1'/>
+        <enumerator name='HDMI_COLORIMETRY_ITU_709' value='2'/>
+        <enumerator name='HDMI_COLORIMETRY_EXTENDED' value='3'/>
+      </enum-decl>
+      <class-decl name='spi_mem_dirmap_desc' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/spi/spi-mem.h' line='175' column='1' id='8df2bc75'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mem' type-id='33dc3b1b' visibility='default' filepath='include/linux/spi/spi-mem.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='info' type-id='bec3f688' visibility='default' filepath='include/linux/spi/spi-mem.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='nodirmap' type-id='f0981eeb' visibility='default' filepath='include/linux/spi/spi-mem.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/spi/spi-mem.h' line='179' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a78232f6' size-in-bits='64' id='8df61054'/>
+      <pointer-type-def type-id='b6a7cdb3' size-in-bits='64' id='8dfbe74f'/>
+      <pointer-type-def type-id='9ecaa6bf' size-in-bits='64' id='8e043c8f'/>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='32' id='8e0573fd'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <pointer-type-def type-id='bdb68106' size-in-bits='64' id='8e0d1900'/>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='64' id='8e100159'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <pointer-type-def type-id='c03ef0c1' size-in-bits='64' id='8e1541f1'/>
+      <pointer-type-def type-id='0ffd4fb3' size-in-bits='64' id='8e172957'/>
+      <pointer-type-def type-id='857f27d6' size-in-bits='64' id='8e2012e0'/>
+      <function-type size-in-bits='64' id='8e2d4615'>
+        <parameter type-id='b5fb9c17'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <class-decl name='obj_cgroup' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/memcontrol.h' line='222' column='1' id='8e30e06f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='refcnt' type-id='818799b4' visibility='default' filepath='include/linux/memcontrol.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='memcg' type-id='223696fb' visibility='default' filepath='include/linux/memcontrol.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='nr_charged_bytes' type-id='49178f86' visibility='default' filepath='include/linux/memcontrol.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='' type-id='ac5ab669' visibility='default' filepath='include/linux/memcontrol.h' line='226' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='eb0d6f26' size-in-bits='64' id='8e35a44c'/>
+      <function-type size-in-bits='64' id='8e3bf7d2'>
+        <parameter type-id='ecb0ce18'/>
+        <parameter type-id='3df9fd28'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='8e3d9a4b'>
+        <parameter type-id='74b427eb'/>
+        <parameter type-id='77e79a4b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='nf_hook_ops_type' filepath='include/linux/netfilter.h' line='81' column='1' id='8e40c1ce'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NF_HOOK_OP_UNDEFINED' value='0'/>
+        <enumerator name='NF_HOOK_OP_NF_TABLES' value='1'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='8e42c936'>
+        <parameter type-id='150efd3f'/>
+        <parameter type-id='150efd3f'/>
+        <parameter type-id='80f4b756'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='8e4f6a60'>
+        <parameter type-id='2ce52478'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ufshpb_active_field' size-in-bits='32' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='491' column='1' id='8e4fd02d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='active_rgn' type-id='84a5c3d4' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='492' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='active_srgn' type-id='84a5c3d4' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='493' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='8e50372c'>
+        <parameter type-id='478ed79d'/>
+        <return type-id='35078cb9'/>
+      </function-type>
+      <pointer-type-def type-id='e14a26b1' size-in-bits='64' id='8e565e6d'/>
+      <class-decl name='dev_pagemap' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/linux/memremap.h' line='110' column='1' id='8e586c5c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='altmap' type-id='62d0a96c' visibility='default' filepath='include/linux/memremap.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ref' type-id='60219102' visibility='default' filepath='include/linux/memremap.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='internal_ref' type-id='818799b4' visibility='default' filepath='include/linux/memremap.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='done' type-id='f9fef04f' visibility='default' filepath='include/linux/memremap.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='type' type-id='cc7210fc' visibility='default' filepath='include/linux/memremap.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/memremap.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='ops' type-id='55917c32' visibility='default' filepath='include/linux/memremap.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='owner' type-id='eaa32e2f' visibility='default' filepath='include/linux/memremap.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='nr_range' type-id='95e97e5e' visibility='default' filepath='include/linux/memremap.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='' type-id='ac5ab63e' visibility='default' filepath='include/linux/memremap.h' line='120' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2f61a822' size-in-bits='64' id='8e5a8430'/>
+      <class-decl name='tc_action' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/net/act_api.h' line='23' column='1' id='8e5ae04f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='bdbd4b03' visibility='default' filepath='include/net/act_api.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/net/act_api.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='idrinfo' type-id='5eeecdaa' visibility='default' filepath='include/net/act_api.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tcfa_index' type-id='19c2251e' visibility='default' filepath='include/net/act_api.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='tcfa_refcnt' type-id='64615833' visibility='default' filepath='include/net/act_api.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='tcfa_bindcnt' type-id='49178f86' visibility='default' filepath='include/net/act_api.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='tcfa_action' type-id='95e97e5e' visibility='default' filepath='include/net/act_api.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='tcfa_tm' type-id='195c8601' visibility='default' filepath='include/net/act_api.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='tcfa_bstats' type-id='1f9b1a31' visibility='default' filepath='include/net/act_api.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='tcfa_bstats_hw' type-id='1f9b1a31' visibility='default' filepath='include/net/act_api.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='tcfa_qstats' type-id='a212a715' visibility='default' filepath='include/net/act_api.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='tcfa_rate_est' type-id='8c1bb0b4' visibility='default' filepath='include/net/act_api.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='tcfa_lock' type-id='fb4018a0' visibility='default' filepath='include/net/act_api.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='cpu_bstats' type-id='b3542b31' visibility='default' filepath='include/net/act_api.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='cpu_bstats_hw' type-id='b3542b31' visibility='default' filepath='include/net/act_api.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='cpu_qstats' type-id='338303f5' visibility='default' filepath='include/net/act_api.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='act_cookie' type-id='6fcb14d7' visibility='default' filepath='include/net/act_api.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='goto_chain' type-id='45305972' visibility='default' filepath='include/net/act_api.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='tcfa_flags' type-id='19c2251e' visibility='default' filepath='include/net/act_api.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1504'>
+          <var-decl name='hw_stats' type-id='f9b06939' visibility='default' filepath='include/net/act_api.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1512'>
+          <var-decl name='used_hw_stats' type-id='f9b06939' visibility='default' filepath='include/net/act_api.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1520'>
+          <var-decl name='used_hw_stats_valid' type-id='b50a4934' visibility='default' filepath='include/net/act_api.h' line='46' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='net_generic' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/netns/generic.h' line='28' column='1' id='8e5f5512'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab60a' visibility='default' filepath='include/net/netns/generic.h' line='29' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f100815b' size-in-bits='64' id='8e62d7cb'/>
+      <array-type-def dimensions='1' type-id='2f162548' size-in-bits='8192' id='8e6dd4be'>
+        <subrange length='256' type-id='7ff19f0f' id='36e5b9fa'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='8e6ea8c3'>
+        <parameter type-id='3f646ae7'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='8e71aea3'>
+        <parameter type-id='ecb0ce18'/>
+        <parameter type-id='6b9b777a'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='6415147f' size-in-bits='64' id='8e78f753'/>
+      <pointer-type-def type-id='7be84b87' size-in-bits='64' id='8e7e5b0b'/>
+      <typedef-decl name='trace_print_func' type-id='ff826f29' filepath='include/linux/trace_events.h' line='125' column='1' id='8e7f627c'/>
+      <pointer-type-def type-id='24a92232' size-in-bits='64' id='8e91ceac'/>
+      <pointer-type-def type-id='9ca9fcc5' size-in-bits='64' id='8e992c3d'/>
+      <function-type size-in-bits='64' id='8e99d103'>
+        <parameter type-id='70d417ab'/>
+        <parameter type-id='c151d965'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='8e9eec3c'>
+        <parameter type-id='44bef697'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='debugfs_u32_array' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/debugfs.h' line='41' column='1' id='8ea131c0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='array' type-id='f9409001' visibility='default' filepath='include/linux/debugfs.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='n_elements' type-id='19c2251e' visibility='default' filepath='include/linux/debugfs.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6bd699b2' size-in-bits='64' id='8ea2626c'/>
+      <function-type size-in-bits='64' id='8eb05bf5'>
+        <parameter type-id='0ac68794'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='cpu_stop_work' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/stop_machine.h' line='24' column='1' id='8eb07132'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/stop_machine.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fn' type-id='87dfefa3' visibility='default' filepath='include/linux/stop_machine.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='caller' type-id='7359adad' visibility='default' filepath='include/linux/stop_machine.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='arg' type-id='eaa32e2f' visibility='default' filepath='include/linux/stop_machine.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='done' type-id='d589c913' visibility='default' filepath='include/linux/stop_machine.h' line='29' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='crypto_ahash' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/crypto/hash.h' line='224' column='1' id='8eb3840c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='init' type-id='0b5e03e0' visibility='default' filepath='include/crypto/hash.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='update' type-id='0b5e03e0' visibility='default' filepath='include/crypto/hash.h' line='226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='final' type-id='0b5e03e0' visibility='default' filepath='include/crypto/hash.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='finup' type-id='0b5e03e0' visibility='default' filepath='include/crypto/hash.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='digest' type-id='0b5e03e0' visibility='default' filepath='include/crypto/hash.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='export' type-id='77c96f7a' visibility='default' filepath='include/crypto/hash.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='import' type-id='77c96f7a' visibility='default' filepath='include/crypto/hash.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='setkey' type-id='c509dbc2' visibility='default' filepath='include/crypto/hash.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='reqsize' type-id='f0981eeb' visibility='default' filepath='include/crypto/hash.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='base' type-id='0328c8b6' visibility='default' filepath='include/crypto/hash.h' line='236' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='xfrm_selector' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/uapi/linux/xfrm.h' line='49' column='1' id='8eb3b1fe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='daddr' type-id='c210d497' visibility='default' filepath='include/uapi/linux/xfrm.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='saddr' type-id='c210d497' visibility='default' filepath='include/uapi/linux/xfrm.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dport' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/xfrm.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='dport_mask' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/xfrm.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='sport' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/xfrm.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='304'>
+          <var-decl name='sport_mask' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/xfrm.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='family' type-id='d315442e' visibility='default' filepath='include/uapi/linux/xfrm.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='336'>
+          <var-decl name='prefixlen_d' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/xfrm.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='344'>
+          <var-decl name='prefixlen_s' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/xfrm.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='proto' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/xfrm.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ifindex' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/xfrm.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='user' type-id='70734f24' visibility='default' filepath='include/uapi/linux/xfrm.h' line='61' column='1'/>
+        </data-member>
+      </class-decl>
+      <union-decl name='bpf_attr' size-in-bits='1024' visibility='default' filepath='include/uapi/linux/bpf.h' line='1267' column='1' id='8eb8eec2'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f4402d' visibility='default' filepath='include/uapi/linux/bpf.h' line='1268' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f4402e' visibility='default' filepath='include/uapi/linux/bpf.h' line='1291' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='batch' type-id='e7f4402f' visibility='default' filepath='include/uapi/linux/bpf.h' line='1316' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f44030' visibility='default' filepath='include/uapi/linux/bpf.h' line='1318' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f44031' visibility='default' filepath='include/uapi/linux/bpf.h' line='1353' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f44032' visibility='default' filepath='include/uapi/linux/bpf.h' line='1359' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='test' type-id='e7f44033' visibility='default' filepath='include/uapi/linux/bpf.h' line='1391' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f44034' visibility='default' filepath='include/uapi/linux/bpf.h' line='1393' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='info' type-id='e7f44035' visibility='default' filepath='include/uapi/linux/bpf.h' line='1409' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='query' type-id='e7f44036' visibility='default' filepath='include/uapi/linux/bpf.h' line='1418' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='raw_tracepoint' type-id='e7f44037' visibility='default' filepath='include/uapi/linux/bpf.h' line='1423' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f44038' visibility='default' filepath='include/uapi/linux/bpf.h' line='1425' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='task_fd_query' type-id='e7f44039' visibility='default' filepath='include/uapi/linux/bpf.h' line='1447' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='link_create' type-id='e7f4403a' visibility='default' filepath='include/uapi/linux/bpf.h' line='1471' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='link_update' type-id='e7f4403b' visibility='default' filepath='include/uapi/linux/bpf.h' line='1481' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='link_detach' type-id='e7f4403c' visibility='default' filepath='include/uapi/linux/bpf.h' line='1485' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='enable_stats' type-id='e7f4403d' visibility='default' filepath='include/uapi/linux/bpf.h' line='1489' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='iter_create' type-id='e7f4403e' visibility='default' filepath='include/uapi/linux/bpf.h' line='1494' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='prog_bind_map' type-id='e7f4403f' visibility='default' filepath='include/uapi/linux/bpf.h' line='1500' column='1'/>
+        </data-member>
+      </union-decl>
+      <pointer-type-def type-id='de10cebd' size-in-bits='64' id='8eba4549'/>
+      <class-decl name='usb_cdc_obex_desc' size-in-bits='40' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='178' column='1' id='8ebff3ed'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bDescriptorSubType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bcdVersion' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='183' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c38207f0' size-in-bits='64' id='8ed5fea6'/>
+      <pointer-type-def type-id='1251351e' size-in-bits='64' id='8edac644'/>
+      <function-type size-in-bits='64' id='8edc59cf'>
+        <parameter type-id='328dda6e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='8edd926b'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='96217cb7' size-in-bits='64' id='8ee54d33'/>
+      <function-type size-in-bits='64' id='8eeb5a69'>
+        <parameter type-id='7c6e0e0c'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='ieee80211_wmm_rule' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/net/regulatory.h' line='212' column='1' id='8eec5cae'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='client' type-id='00286dfe' visibility='default' filepath='include/net/regulatory.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ap' type-id='00286dfe' visibility='default' filepath='include/net/regulatory.h' line='214' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tc_cookie' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/pkt_cls.h' line='761' column='1' id='8eedee6f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='data' type-id='8bff8096' visibility='default' filepath='include/net/pkt_cls.h' line='762' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='len' type-id='19c2251e' visibility='default' filepath='include/net/pkt_cls.h' line='763' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/pkt_cls.h' line='764' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='603a76bb' size-in-bits='64' id='8eee5b07'/>
+      <qualified-type-def type-id='b45c773c' const='yes' id='8ef65cd1'/>
+      <class-decl name='blk_mq_tags' size-in-bits='1536' is-struct='yes' visibility='default' filepath='block/blk-mq-tag.h' line='8' column='1' id='8efd3865'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nr_tags' type-id='f0981eeb' visibility='default' filepath='block/blk-mq-tag.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='nr_reserved_tags' type-id='f0981eeb' visibility='default' filepath='block/blk-mq-tag.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='active_queues' type-id='49178f86' visibility='default' filepath='block/blk-mq-tag.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bitmap_tags' type-id='75396bad' visibility='default' filepath='block/blk-mq-tag.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='breserved_tags' type-id='75396bad' visibility='default' filepath='block/blk-mq-tag.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='__bitmap_tags' type-id='a133315d' visibility='default' filepath='block/blk-mq-tag.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='__breserved_tags' type-id='a133315d' visibility='default' filepath='block/blk-mq-tag.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='rqs' type-id='79808846' visibility='default' filepath='block/blk-mq-tag.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='static_rqs' type-id='79808846' visibility='default' filepath='block/blk-mq-tag.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='page_list' type-id='72f469ec' visibility='default' filepath='block/blk-mq-tag.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='block/blk-mq-tag.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='android_oem_data1' type-id='91ce1af9' visibility='default' filepath='block/blk-mq-tag.h' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <type-decl name='unsigned short int' size-in-bits='16' id='8efea9e5'/>
+      <pointer-type-def type-id='e51de182' size-in-bits='64' id='8eff91b0'/>
+      <pointer-type-def type-id='4eb067f4' size-in-bits='64' id='8eff9c66'/>
+      <array-type-def dimensions='1' type-id='a30e8d1f' size-in-bits='128' id='8f0335da'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <typedef-decl name='__u8' type-id='002ac4a6' filepath='include/uapi/asm-generic/int-ll64.h' line='21' column='1' id='8f048e17'/>
+      <array-type-def dimensions='1' type-id='fb7c6451' size-in-bits='152' id='8f04ba62'>
+        <subrange length='19' type-id='7ff19f0f' id='448ee30f'/>
+      </array-type-def>
+      <pointer-type-def type-id='304ac94e' size-in-bits='64' id='8f0815d8'/>
+      <qualified-type-def type-id='519497e3' const='yes' id='8f118d08'/>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='40' id='8f1320db'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <class-decl name='kernel_pkey_query' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/keyctl.h' line='13' column='1' id='8f138471'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='supported_ops' type-id='3f1a6b60' visibility='default' filepath='include/linux/keyctl.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='key_size' type-id='3f1a6b60' visibility='default' filepath='include/linux/keyctl.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max_data_size' type-id='d315442e' visibility='default' filepath='include/linux/keyctl.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='max_sig_size' type-id='d315442e' visibility='default' filepath='include/linux/keyctl.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='max_enc_size' type-id='d315442e' visibility='default' filepath='include/linux/keyctl.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='max_dec_size' type-id='d315442e' visibility='default' filepath='include/linux/keyctl.h' line='19' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='8f138f6a'>
+        <parameter type-id='00ee50b8'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='91ce1af9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='1c936db9' size-in-bits='64' id='8f157e69'/>
+      <class-decl name='uart_state' size-in-bits='3904' is-struct='yes' visibility='default' filepath='include/linux/serial_core.h' line='293' column='1' id='8f17759b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='port' type-id='7e1e521a' visibility='default' filepath='include/linux/serial_core.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='pm_state' type-id='4e1a3570' visibility='default' filepath='include/linux/serial_core.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='xmit' type-id='40d6f574' visibility='default' filepath='include/linux/serial_core.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='refcount' type-id='49178f86' visibility='default' filepath='include/linux/serial_core.h' line='299' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='remove_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/serial_core.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='uart_port' type-id='af051c69' visibility='default' filepath='include/linux/serial_core.h' line='301' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d6574e69' size-in-bits='64' id='8f19938d'/>
+      <class-decl name='iova_cpu_rcache' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/iommu/iova.c' line='905' column='1' id='8f19d02e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='drivers/iommu/iova.c' line='906' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='loaded' type-id='0a981d27' visibility='default' filepath='drivers/iommu/iova.c' line='907' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='prev' type-id='0a981d27' visibility='default' filepath='drivers/iommu/iova.c' line='908' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='734a42c0' size-in-bits='64' id='8f20abb2'/>
+      <typedef-decl name='__poll_t' type-id='f0981eeb' filepath='include/uapi/linux/types.h' line='52' column='1' id='8f254b08'/>
+      <pointer-type-def type-id='73627a37' size-in-bits='64' id='8f2ea2db'/>
+      <pointer-type-def type-id='660986b5' size-in-bits='64' id='8f32e025'/>
+      <typedef-decl name='__kernel_dev_t' type-id='19c2251e' filepath='include/linux/types.h' line='13' column='1' id='8f336000'/>
+      <pointer-type-def type-id='7e666abe' size-in-bits='64' id='8f39c6fc'/>
+      <pointer-type-def type-id='e0f88742' size-in-bits='64' id='8f3d28b8'/>
+      <pointer-type-def type-id='9fda12c1' size-in-bits='64' id='8f4bc7f1'/>
+      <function-type size-in-bits='64' id='8f5d4d00'>
+        <parameter type-id='4a935625'/>
+        <return type-id='4a935625'/>
+      </function-type>
+      <class-decl name='spi_mem_op' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/spi/spi-mem.h' line='98' column='1' id='8f68aa3b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='e7f43fd0' visibility='default' filepath='include/linux/spi/spi-mem.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='addr' type-id='e7f43fd1' visibility='default' filepath='include/linux/spi/spi-mem.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dummy' type-id='e7f43fd2' visibility='default' filepath='include/linux/spi/spi-mem.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='data' type-id='e7f43fd3' visibility='default' filepath='include/linux/spi/spi-mem.h' line='128' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='278d8d7c' size-in-bits='64' id='8f6b937a'/>
+      <class-decl name='ipv6_mc_socklist' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/if_inet6.h' line='95' column='1' id='8f725b86'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='f6ed712a' visibility='default' filepath='include/net/if_inet6.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ifindex' type-id='95e97e5e' visibility='default' filepath='include/net/if_inet6.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='sfmode' type-id='f0981eeb' visibility='default' filepath='include/net/if_inet6.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='next' type-id='3d802c7c' visibility='default' filepath='include/net/if_inet6.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='sflist' type-id='b25391b7' visibility='default' filepath='include/net/if_inet6.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/if_inet6.h' line='101' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='8f76da5a'>
+        <parameter type-id='f41a0030'/>
+        <parameter type-id='bbaf3419'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7b76bae4' size-in-bits='64' id='8f8224f6'/>
+      <class-decl name='module_attribute' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/module.h' line='54' column='1' id='8f90cd2a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='attr' type-id='a6222917' visibility='default' filepath='include/linux/module.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='show' type-id='9a6e3348' visibility='default' filepath='include/linux/module.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='store' type-id='96948294' visibility='default' filepath='include/linux/module.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='setup' type-id='537ed613' visibility='default' filepath='include/linux/module.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='test' type-id='fe3af88b' visibility='default' filepath='include/linux/module.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='free' type-id='d6f1846c' visibility='default' filepath='include/linux/module.h' line='62' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='uint32_t' type-id='19c2251e' filepath='include/linux/types.h' line='104' column='1' id='8f92235e'/>
+      <class-decl name='flow_dissector_key_ports' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/net/flow_dissector.h' line='171' column='1' id='8f96e917'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab69f' visibility='default' filepath='include/net/flow_dissector.h' line='172' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='netns_can' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/net/netns/can.h' line='16' column='1' id='8f9898ce'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='proc_dir' type-id='d077e928' visibility='default' filepath='include/net/netns/can.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pde_stats' type-id='d077e928' visibility='default' filepath='include/net/netns/can.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pde_reset_stats' type-id='d077e928' visibility='default' filepath='include/net/netns/can.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pde_rcvlist_all' type-id='d077e928' visibility='default' filepath='include/net/netns/can.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='pde_rcvlist_fil' type-id='d077e928' visibility='default' filepath='include/net/netns/can.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='pde_rcvlist_inv' type-id='d077e928' visibility='default' filepath='include/net/netns/can.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='pde_rcvlist_sff' type-id='d077e928' visibility='default' filepath='include/net/netns/can.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pde_rcvlist_eff' type-id='d077e928' visibility='default' filepath='include/net/netns/can.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='pde_rcvlist_err' type-id='d077e928' visibility='default' filepath='include/net/netns/can.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='bcmproc_dir' type-id='d077e928' visibility='default' filepath='include/net/netns/can.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='rx_alldev_list' type-id='d180faa7' visibility='default' filepath='include/net/netns/can.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='rcvlists_lock' type-id='fb4018a0' visibility='default' filepath='include/net/netns/can.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='stattimer' type-id='abe41e67' visibility='default' filepath='include/net/netns/can.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='pkg_stats' type-id='daf2ec26' visibility='default' filepath='include/net/netns/can.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='rcv_lists_stats' type-id='8981c393' visibility='default' filepath='include/net/netns/can.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='cgw_list' type-id='e151255a' visibility='default' filepath='include/net/netns/can.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/netns/can.h' line='40' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='59e6969a' size-in-bits='64' id='8f9a9374'/>
+      <function-type size-in-bits='64' id='8f9ed095'>
+        <parameter type-id='4be14597'/>
+        <parameter type-id='cb1156c4'/>
+        <return type-id='7359adad'/>
+      </function-type>
+      <class-decl name='genlmsghdr' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/genetlink.h' line='13' column='1' id='8fadaaa6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/genetlink.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='version' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/genetlink.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='reserved' type-id='d315442e' visibility='default' filepath='include/uapi/linux/genetlink.h' line='16' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='trace_func_repeats' size-in-bits='256' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='278' column='1' id='8faea462'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ip' type-id='7359adad' visibility='default' filepath='kernel/trace/trace.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='parent_ip' type-id='7359adad' visibility='default' filepath='kernel/trace/trace.h' line='280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='count' type-id='7359adad' visibility='default' filepath='kernel/trace/trace.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ts_last_call' type-id='91ce1af9' visibility='default' filepath='kernel/trace/trace.h' line='282' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='8faf705a'>
+        <parameter type-id='95dc69d1'/>
+        <parameter type-id='1065554a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='79b1f57a' size-in-bits='64' id='8fb73318'/>
+      <class-decl name='kthread_delayed_work' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/kthread.h' line='136' column='1' id='8fb867c9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='work' type-id='ac165296' visibility='default' filepath='include/linux/kthread.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='timer' type-id='abe41e67' visibility='default' filepath='include/linux/kthread.h' line='138' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='98ef1b95' size-in-bits='64' id='8fb9d791'/>
+      <pointer-type-def type-id='8e2d4615' size-in-bits='64' id='8fbb31d1'/>
+      <pointer-type-def type-id='7848dffe' size-in-bits='64' id='8fea74f4'/>
+      <function-type size-in-bits='64' id='8ff31849'>
+        <parameter type-id='eb572b74'/>
+        <parameter type-id='b88dd945'/>
+        <parameter type-id='a42536cd'/>
+        <parameter type-id='7292109c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e88d0150' size-in-bits='64' id='8ff9530e'/>
+      <class-decl name='fiemap_extent_info' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/fiemap.h' line='8' column='1' id='8ffe5745'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fi_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/fiemap.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='fi_extents_mapped' type-id='f0981eeb' visibility='default' filepath='include/linux/fiemap.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fi_extents_max' type-id='f0981eeb' visibility='default' filepath='include/linux/fiemap.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fi_extents_start' type-id='d92598ce' visibility='default' filepath='include/linux/fiemap.h' line='12' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='34e265cf' size-in-bits='64' id='900dcb03'/>
+      <pointer-type-def type-id='3ab32f02' size-in-bits='64' id='90133bf8'/>
+      <pointer-type-def type-id='398c6fd2' size-in-bits='64' id='90144368'/>
+      <class-decl name='audit_names' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/../kernel/audit.h' line='70' column='1' id='90177497'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/../kernel/audit.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='e9d22a06' visibility='default' filepath='include/../kernel/audit.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='name_len' type-id='95e97e5e' visibility='default' filepath='include/../kernel/audit.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='hidden' type-id='b50a4934' visibility='default' filepath='include/../kernel/audit.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ino' type-id='7359adad' visibility='default' filepath='include/../kernel/audit.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dev' type-id='8504f260' visibility='default' filepath='include/../kernel/audit.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='mode' type-id='2594b00f' visibility='default' filepath='include/../kernel/audit.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='uid' type-id='d80b72e6' visibility='default' filepath='include/../kernel/audit.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='gid' type-id='094d8048' visibility='default' filepath='include/../kernel/audit.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='rdev' type-id='8504f260' visibility='default' filepath='include/../kernel/audit.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='osid' type-id='19c2251e' visibility='default' filepath='include/../kernel/audit.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='fcap' type-id='fe20adfc' visibility='default' filepath='include/../kernel/audit.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='fcap_ver' type-id='f0981eeb' visibility='default' filepath='include/../kernel/audit.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='type' type-id='002ac4a6' visibility='default' filepath='include/../kernel/audit.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='840'>
+          <var-decl name='should_free' type-id='b50a4934' visibility='default' filepath='include/../kernel/audit.h' line='92' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='9018b878'>
+        <parameter type-id='7efbcaaf'/>
+        <return type-id='4bdecfd7'/>
+      </function-type>
+      <enum-decl name='usb_device_state' filepath='include/uapi/linux/usb/ch9.h' line='1169' column='1' id='901a91cb'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='USB_STATE_NOTATTACHED' value='0'/>
+        <enumerator name='USB_STATE_ATTACHED' value='1'/>
+        <enumerator name='USB_STATE_POWERED' value='2'/>
+        <enumerator name='USB_STATE_RECONNECTING' value='3'/>
+        <enumerator name='USB_STATE_UNAUTHENTICATED' value='4'/>
+        <enumerator name='USB_STATE_DEFAULT' value='5'/>
+        <enumerator name='USB_STATE_ADDRESS' value='6'/>
+        <enumerator name='USB_STATE_CONFIGURED' value='7'/>
+        <enumerator name='USB_STATE_SUSPENDED' value='8'/>
+      </enum-decl>
+      <pointer-type-def type-id='70a034c7' size-in-bits='64' id='901b6973'/>
+      <class-decl name='tcpm_port' size-in-bits='99712' is-struct='yes' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='297' column='1' id='902061bb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='wq' type-id='c41f4539' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='typec_caps' type-id='1f2b9a61' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='typec_port' type-id='b977ca56' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='tcpc' type-id='15b1f129' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='role_sw' type-id='3e3cd44f' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='vconn_role' type-id='ad61830a' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='309' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='pwr_role' type-id='ad61830a' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='310' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='data_role' type-id='e453a0cb' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='311' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='pwr_opmode' type-id='44ea1984' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='partner_ident' type-id='57bfbe05' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='partner_desc' type-id='3ad5d94d' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='partner' type-id='33ca4bbb' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='cc_req' type-id='c2d135ef' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1888'>
+          <var-decl name='src_rp' type-id='c2d135ef' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='cc1' type-id='c2d135ef' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1952'>
+          <var-decl name='cc2' type-id='c2d135ef' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='polarity' type-id='551eebc9' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2016'>
+          <var-decl name='attached' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2024'>
+          <var-decl name='connected' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2032'>
+          <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2040'>
+          <var-decl name='pd_supported' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='port_type' type-id='0a19b04e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2080'>
+          <var-decl name='vbus_present' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2088'>
+          <var-decl name='vbus_vsafe0v' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2096'>
+          <var-decl name='vbus_never_low' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2104'>
+          <var-decl name='vbus_source' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='vbus_charge' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2120'>
+          <var-decl name='send_discover' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='348' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2128'>
+          <var-decl name='op_vsafe5v' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2144'>
+          <var-decl name='try_role' type-id='95e97e5e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='try_snk_count' type-id='95e97e5e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2208'>
+          <var-decl name='try_src_count' type-id='95e97e5e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='queued_message' type-id='1d843e9c' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2272'>
+          <var-decl name='enter_state' type-id='c698cee4' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='prev_state' type-id='c698cee4' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2336'>
+          <var-decl name='state' type-id='c698cee4' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='359' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='delayed_state' type-id='c698cee4' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='delayed_runtime' type-id='fbc017ef' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='delay_ms' type-id='7359adad' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='pd_event_lock' type-id='fb4018a0' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2592'>
+          <var-decl name='pd_events' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='365' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='event_work' type-id='ac165296' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='367' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='state_machine_timer' type-id='b6993efc' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='368' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='state_machine' type-id='ac165296' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='369' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='vdm_state_machine_timer' type-id='b6993efc' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='vdm_state_machine' type-id='ac165296' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='371' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='enable_frs_timer' type-id='b6993efc' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5312'>
+          <var-decl name='enable_frs' type-id='ac165296' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='373' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5632'>
+          <var-decl name='send_discover_timer' type-id='b6993efc' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='374' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6208'>
+          <var-decl name='send_discover_work' type-id='ac165296' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6528'>
+          <var-decl name='state_machine_running' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6536'>
+          <var-decl name='vdm_sm_running' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='378' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6592'>
+          <var-decl name='tx_complete' type-id='f9fef04f' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6848'>
+          <var-decl name='tx_status' type-id='a2f9e316' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='381' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6912'>
+          <var-decl name='swap_lock' type-id='925167dc' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='383' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='swap_pending' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='384' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7304'>
+          <var-decl name='non_pd_role_swap' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='385' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='swap_complete' type-id='f9fef04f' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='swap_status' type-id='95e97e5e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='387' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7648'>
+          <var-decl name='negotiated_rev' type-id='f0981eeb' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='message_id' type-id='f0981eeb' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7712'>
+          <var-decl name='caps_count' type-id='f0981eeb' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='hard_reset_count' type-id='f0981eeb' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7776'>
+          <var-decl name='pd_capable' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='393' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7784'>
+          <var-decl name='explicit_contract' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='394' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='rx_msgid' type-id='f0981eeb' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7840'>
+          <var-decl name='sink_request' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='source_caps' type-id='1c69cda2' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8096'>
+          <var-decl name='nr_source_caps' type-id='f0981eeb' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='sink_caps' type-id='1c69cda2' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8352'>
+          <var-decl name='nr_sink_caps' type-id='f0981eeb' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8384'>
+          <var-decl name='src_pdo' type-id='1c69cda2' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8608'>
+          <var-decl name='nr_src_pdo' type-id='f0981eeb' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='snk_pdo' type-id='1c69cda2' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='407' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8864'>
+          <var-decl name='nr_snk_pdo' type-id='f0981eeb' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='408' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8896'>
+          <var-decl name='snk_vdo_v1' type-id='5867ed7f' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='409' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9088'>
+          <var-decl name='nr_snk_vdo_v1' type-id='f0981eeb' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='410' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9120'>
+          <var-decl name='snk_vdo' type-id='5867ed7f' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9312'>
+          <var-decl name='nr_snk_vdo' type-id='f0981eeb' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='operating_snk_mw' type-id='f0981eeb' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9376'>
+          <var-decl name='update_sink_caps' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='415' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9408'>
+          <var-decl name='req_current_limit' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='418' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9440'>
+          <var-decl name='req_supply_voltage' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9472'>
+          <var-decl name='current_limit' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9504'>
+          <var-decl name='supply_voltage' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='422' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9536'>
+          <var-decl name='psy' type-id='c0c93c9e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='425' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='psy_desc' type-id='6d39b2d0' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10432'>
+          <var-decl name='usb_type' type-id='1f7f0095' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10464'>
+          <var-decl name='bist_request' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10496'>
+          <var-decl name='vdm_state' type-id='da4a4188' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='432' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10528'>
+          <var-decl name='vdm_retries' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='433' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10560'>
+          <var-decl name='vdo_data' type-id='1c69cda2' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10784'>
+          <var-decl name='vdo_count' type-id='f9b06939' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10816'>
+          <var-decl name='vdo_retry' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='438' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10848'>
+          <var-decl name='pps_data' type-id='4ff0f7bc' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11136'>
+          <var-decl name='pps_complete' type-id='f9fef04f' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='442' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11392'>
+          <var-decl name='pps_pending' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11424'>
+          <var-decl name='pps_status' type-id='95e97e5e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11456'>
+          <var-decl name='mode_data' type-id='1d816e22' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='447' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21056'>
+          <var-decl name='partner_altmode' type-id='6fcbfa84' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27200'>
+          <var-decl name='port_altmode' type-id='6fcbfa84' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33344'>
+          <var-decl name='max_wait' type-id='7359adad' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33408'>
+          <var-decl name='self_powered' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33440'>
+          <var-decl name='new_source_frs_current' type-id='0b2a97f1' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33472'>
+          <var-decl name='sink_cap_done' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='461' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33504'>
+          <var-decl name='upcoming_state' type-id='c698cee4' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='464' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33536'>
+          <var-decl name='ams' type-id='fe523876' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='465' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33568'>
+          <var-decl name='next_ams' type-id='fe523876' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='466' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33600'>
+          <var-decl name='in_ams' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='467' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33608'>
+          <var-decl name='auto_vbus_discharge_enabled' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='470' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33616'>
+          <var-decl name='slow_charger_loop' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='477' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33624'>
+          <var-decl name='debouncing' type-id='b50a4934' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='480' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33664'>
+          <var-decl name='dentry' type-id='27675065' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='483' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33728'>
+          <var-decl name='logbuffer_lock' type-id='925167dc' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='484' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='34112'>
+          <var-decl name='logbuffer_head' type-id='95e97e5e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='485' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='34144'>
+          <var-decl name='logbuffer_tail' type-id='95e97e5e' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='34176'>
+          <var-decl name='logbuffer' type-id='bad1511f' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='487' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='90220a52'>
+        <parameter type-id='db362995'/>
+        <parameter type-id='08496218'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='32d20c8c' size-in-bits='64' id='902fed1a'/>
+      <function-type size-in-bits='64' id='9035443c'>
+        <parameter type-id='07b9ee34'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f6dbfe8d' size-in-bits='64' id='9038f441'/>
+      <pointer-type-def type-id='ed7b7f6b' size-in-bits='64' id='903b12fe'/>
+      <pointer-type-def type-id='8f92235e' size-in-bits='64' id='90421557'/>
+      <class-decl name='drm_dsc_picture_parameter_set' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/drm/drm_dsc.h' line='286' column='1' id='9045ae21'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dsc_version' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='pps_identifier' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='pps_reserved' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='pps_3' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pps_4' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='bits_per_pixel_low' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='pic_height' type-id='84a5c3d4' visibility='default' filepath='include/drm/drm_dsc.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pic_width' type-id='84a5c3d4' visibility='default' filepath='include/drm/drm_dsc.h' line='348' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='slice_height' type-id='84a5c3d4' visibility='default' filepath='include/drm/drm_dsc.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='slice_width' type-id='84a5c3d4' visibility='default' filepath='include/drm/drm_dsc.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='chunk_size' type-id='84a5c3d4' visibility='default' filepath='include/drm/drm_dsc.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='initial_xmit_delay_high' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='initial_xmit_delay_low' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='377' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='initial_dec_delay' type-id='84a5c3d4' visibility='default' filepath='include/drm/drm_dsc.h' line='385' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='pps20_reserved' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='168'>
+          <var-decl name='initial_scale_value' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='scale_increment_interval' type-id='84a5c3d4' visibility='default' filepath='include/drm/drm_dsc.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='scale_decrement_interval_high' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='scale_decrement_interval_low' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='416' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='pps26_reserved' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='216'>
+          <var-decl name='first_line_bpg_offset' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='428' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='nfl_bpg_offset' type-id='84a5c3d4' visibility='default' filepath='include/drm/drm_dsc.h' line='434' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='240'>
+          <var-decl name='slice_bpg_offset' type-id='84a5c3d4' visibility='default' filepath='include/drm/drm_dsc.h' line='440' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='initial_offset' type-id='84a5c3d4' visibility='default' filepath='include/drm/drm_dsc.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='final_offset' type-id='84a5c3d4' visibility='default' filepath='include/drm/drm_dsc.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='flatness_min_qp' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='296'>
+          <var-decl name='flatness_max_qp' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='464' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='304'>
+          <var-decl name='rc_model_size' type-id='84a5c3d4' visibility='default' filepath='include/drm/drm_dsc.h' line='469' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='rc_edge_factor' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='476' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='328'>
+          <var-decl name='rc_quant_incr_limit0' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='482' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='336'>
+          <var-decl name='rc_quant_incr_limit1' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='344'>
+          <var-decl name='rc_tgt_offset' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='496' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='rc_buf_thresh' type-id='497ff6fb' visibility='default' filepath='include/drm/drm_dsc.h' line='502' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='464'>
+          <var-decl name='rc_range_parameters' type-id='42c95bcb' visibility='default' filepath='include/drm/drm_dsc.h' line='508' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='native_422_420' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='517' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='712'>
+          <var-decl name='second_line_bpg_offset' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='525' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='720'>
+          <var-decl name='nsl_bpg_offset' type-id='84a5c3d4' visibility='default' filepath='include/drm/drm_dsc.h' line='531' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='second_line_offset_adj' type-id='84a5c3d4' visibility='default' filepath='include/drm/drm_dsc.h' line='537' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='752'>
+          <var-decl name='pps_long_94_reserved' type-id='19c2251e' visibility='default' filepath='include/drm/drm_dsc.h' line='542' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='784'>
+          <var-decl name='pps_long_98_reserved' type-id='19c2251e' visibility='default' filepath='include/drm/drm_dsc.h' line='547' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='816'>
+          <var-decl name='pps_long_102_reserved' type-id='19c2251e' visibility='default' filepath='include/drm/drm_dsc.h' line='552' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='848'>
+          <var-decl name='pps_long_106_reserved' type-id='19c2251e' visibility='default' filepath='include/drm/drm_dsc.h' line='557' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='880'>
+          <var-decl name='pps_long_110_reserved' type-id='19c2251e' visibility='default' filepath='include/drm/drm_dsc.h' line='562' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='912'>
+          <var-decl name='pps_long_114_reserved' type-id='19c2251e' visibility='default' filepath='include/drm/drm_dsc.h' line='567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='944'>
+          <var-decl name='pps_long_118_reserved' type-id='19c2251e' visibility='default' filepath='include/drm/drm_dsc.h' line='572' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='976'>
+          <var-decl name='pps_long_122_reserved' type-id='19c2251e' visibility='default' filepath='include/drm/drm_dsc.h' line='577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1008'>
+          <var-decl name='pps_short_126_reserved' type-id='84a5c3d4' visibility='default' filepath='include/drm/drm_dsc.h' line='582' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='904e13de'>
+        <parameter type-id='27675065'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='d2613fd6' const='yes' id='904f813f'/>
+      <pointer-type-def type-id='406e1a09' size-in-bits='64' id='90532519'/>
+      <pointer-type-def type-id='c7cd67fd' size-in-bits='64' id='9073a8fe'/>
+      <pointer-type-def type-id='dbc9a936' size-in-bits='64' id='90956edc'/>
+      <function-type size-in-bits='64' id='9097330a'>
+        <parameter type-id='a05f1ecd'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='3e298e69' size-in-bits='64' id='909b5775'/>
+      <class-decl name='crypto_template' size-in-bits='1344' is-struct='yes' visibility='default' filepath='include/crypto/algapi.h' line='61' column='1' id='90a4444b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/crypto/algapi.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='instances' type-id='e151255a' visibility='default' filepath='include/crypto/algapi.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='module' type-id='2730d015' visibility='default' filepath='include/crypto/algapi.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='create' type-id='db94924a' visibility='default' filepath='include/crypto/algapi.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='name' type-id='e3204322' visibility='default' filepath='include/crypto/algapi.h' line='68' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0e1f7cac' size-in-bits='64' id='90ad83aa'/>
+      <class-decl name='iio_event_spec' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/iio/iio.h' line='163' column='1' id='90b8a0b3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='064bebb9' visibility='default' filepath='include/linux/iio/iio.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='dir' type-id='180bfe06' visibility='default' filepath='include/linux/iio/iio.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mask_separate' type-id='7359adad' visibility='default' filepath='include/linux/iio/iio.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mask_shared_by_type' type-id='7359adad' visibility='default' filepath='include/linux/iio/iio.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mask_shared_by_dir' type-id='7359adad' visibility='default' filepath='include/linux/iio/iio.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mask_shared_by_all' type-id='7359adad' visibility='default' filepath='include/linux/iio/iio.h' line='169' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a47ced76' size-in-bits='64' id='90ba6558'/>
+      <enum-decl name='hdmi_active_aspect' filepath='include/linux/hdmi.h' line='105' column='1' id='90bbc2e6'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HDMI_ACTIVE_ASPECT_16_9_TOP' value='2'/>
+        <enumerator name='HDMI_ACTIVE_ASPECT_14_9_TOP' value='3'/>
+        <enumerator name='HDMI_ACTIVE_ASPECT_16_9_CENTER' value='4'/>
+        <enumerator name='HDMI_ACTIVE_ASPECT_PICTURE' value='8'/>
+        <enumerator name='HDMI_ACTIVE_ASPECT_4_3' value='9'/>
+        <enumerator name='HDMI_ACTIVE_ASPECT_16_9' value='10'/>
+        <enumerator name='HDMI_ACTIVE_ASPECT_14_9' value='11'/>
+        <enumerator name='HDMI_ACTIVE_ASPECT_4_3_SP_14_9' value='13'/>
+        <enumerator name='HDMI_ACTIVE_ASPECT_16_9_SP_14_9' value='14'/>
+        <enumerator name='HDMI_ACTIVE_ASPECT_16_9_SP_4_3' value='15'/>
+      </enum-decl>
+      <typedef-decl name='cpumask_t' type-id='1354385d' filepath='include/linux/cpumask.h' line='17' column='1' id='90bc6bed'/>
+      <pointer-type-def type-id='3e0660a2' size-in-bits='64' id='90c0e85c'/>
+      <function-type size-in-bits='64' id='90c1df7f'>
+        <parameter type-id='cfff5953'/>
+        <parameter type-id='03054cfa'/>
+        <return type-id='91ce1af9'/>
+      </function-type>
+      <pointer-type-def type-id='101eeec5' size-in-bits='64' id='90cd86e5'/>
+      <class-decl name='bpf_map_ops' size-in-bits='2752' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='63' column='1' id='90cdb889'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='map_alloc_check' type-id='9c946059' visibility='default' filepath='include/linux/bpf.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='map_alloc' type-id='0f1b0147' visibility='default' filepath='include/linux/bpf.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='map_release' type-id='8bf3cff5' visibility='default' filepath='include/linux/bpf.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='map_free' type-id='cf265ed1' visibility='default' filepath='include/linux/bpf.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='map_get_next_key' type-id='45ef3730' visibility='default' filepath='include/linux/bpf.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='map_release_uref' type-id='cf265ed1' visibility='default' filepath='include/linux/bpf.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='map_lookup_elem_sys_only' type-id='7a66877d' visibility='default' filepath='include/linux/bpf.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='map_lookup_batch' type-id='5c8e49b9' visibility='default' filepath='include/linux/bpf.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='map_lookup_and_delete_elem' type-id='65fcdb9c' visibility='default' filepath='include/linux/bpf.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='map_lookup_and_delete_batch' type-id='5c8e49b9' visibility='default' filepath='include/linux/bpf.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='map_update_batch' type-id='5c8e49b9' visibility='default' filepath='include/linux/bpf.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='map_delete_batch' type-id='5c8e49b9' visibility='default' filepath='include/linux/bpf.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='map_lookup_elem' type-id='7a66877d' visibility='default' filepath='include/linux/bpf.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='map_update_elem' type-id='65fcdb9c' visibility='default' filepath='include/linux/bpf.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='map_delete_elem' type-id='bf8c5f5e' visibility='default' filepath='include/linux/bpf.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='map_push_elem' type-id='aad51e56' visibility='default' filepath='include/linux/bpf.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='map_pop_elem' type-id='bf8c5f5e' visibility='default' filepath='include/linux/bpf.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='map_peek_elem' type-id='bf8c5f5e' visibility='default' filepath='include/linux/bpf.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='map_fd_get_ptr' type-id='2a3a4aec' visibility='default' filepath='include/linux/bpf.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='map_fd_put_ptr' type-id='b7f9d8e6' visibility='default' filepath='include/linux/bpf.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='map_gen_lookup' type-id='ead4b779' visibility='default' filepath='include/linux/bpf.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='map_fd_sys_lookup_elem' type-id='99577235' visibility='default' filepath='include/linux/bpf.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='map_seq_show_elem' type-id='81c90e99' visibility='default' filepath='include/linux/bpf.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='map_check_btf' type-id='098d4d92' visibility='default' filepath='include/linux/bpf.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='map_poke_track' type-id='97786120' visibility='default' filepath='include/linux/bpf.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='map_poke_untrack' type-id='06916b97' visibility='default' filepath='include/linux/bpf.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='map_poke_run' type-id='6d537b6e' visibility='default' filepath='include/linux/bpf.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='map_direct_value_addr' type-id='da4ee44b' visibility='default' filepath='include/linux/bpf.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='map_direct_value_meta' type-id='f6a079db' visibility='default' filepath='include/linux/bpf.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='map_mmap' type-id='cd6fc0f7' visibility='default' filepath='include/linux/bpf.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='map_poll' type-id='dbc641b8' visibility='default' filepath='include/linux/bpf.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='map_local_storage_charge' type-id='3647f5a3' visibility='default' filepath='include/linux/bpf.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='map_local_storage_uncharge' type-id='db7f2db2' visibility='default' filepath='include/linux/bpf.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='map_owner_storage_ptr' type-id='6a2fe6cc' visibility='default' filepath='include/linux/bpf.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='map_redirect' type-id='801bfa75' visibility='default' filepath='include/linux/bpf.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='map_meta_equal' type-id='a3ba8d43' visibility='default' filepath='include/linux/bpf.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='map_set_for_each_callback_args' type-id='679eb7c8' visibility='default' filepath='include/linux/bpf.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='map_for_each_callback' type-id='65fcdb9c' visibility='default' filepath='include/linux/bpf.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='map_btf_name' type-id='b99c00c9' visibility='default' filepath='include/linux/bpf.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='map_btf_id' type-id='7292109c' visibility='default' filepath='include/linux/bpf.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='iter_seq_info' type-id='52af43ea' visibility='default' filepath='include/linux/bpf.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/bpf.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/bpf.h' line='157' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='clocksource' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/linux/clocksource.h' line='96' column='1' id='90d08a78'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='read' type-id='34fd0229' visibility='default' filepath='include/linux/clocksource.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mask' type-id='91ce1af9' visibility='default' filepath='include/linux/clocksource.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mult' type-id='19c2251e' visibility='default' filepath='include/linux/clocksource.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='shift' type-id='19c2251e' visibility='default' filepath='include/linux/clocksource.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='max_idle_ns' type-id='91ce1af9' visibility='default' filepath='include/linux/clocksource.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='maxadj' type-id='19c2251e' visibility='default' filepath='include/linux/clocksource.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='uncertainty_margin' type-id='19c2251e' visibility='default' filepath='include/linux/clocksource.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='max_cycles' type-id='91ce1af9' visibility='default' filepath='include/linux/clocksource.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/clocksource.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/clocksource.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='rating' type-id='95e97e5e' visibility='default' filepath='include/linux/clocksource.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='id' type-id='0325ee16' visibility='default' filepath='include/linux/clocksource.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='vdso_clock_mode' type-id='5c3b1f01' visibility='default' filepath='include/linux/clocksource.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/clocksource.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='enable' type-id='b4ade13a' visibility='default' filepath='include/linux/clocksource.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='disable' type-id='1f93431f' visibility='default' filepath='include/linux/clocksource.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='suspend' type-id='1f93431f' visibility='default' filepath='include/linux/clocksource.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='resume' type-id='1f93431f' visibility='default' filepath='include/linux/clocksource.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='mark_unstable' type-id='1f93431f' visibility='default' filepath='include/linux/clocksource.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='tick_stable' type-id='1f93431f' visibility='default' filepath='include/linux/clocksource.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/clocksource.h' line='129' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='90d43746'>
+        <parameter type-id='1b0e1d00'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='da94e28c' size-in-bits='64' id='90d4d75e'/>
+      <pointer-type-def type-id='3b497a4b' size-in-bits='64' id='90dad87b'/>
+      <function-type size-in-bits='64' id='90df3e0a'>
+        <parameter type-id='2a895c01'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='f6610cc2' size-in-bits='64' id='90e3bb60'/>
+      <qualified-type-def type-id='9805d802' const='yes' id='90e5636b'/>
+      <pointer-type-def type-id='925166cb' size-in-bits='64' id='90e68757'/>
+      <function-type size-in-bits='64' id='90e882dc'>
+        <parameter type-id='49a58c0c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='f40f8242' const='yes' id='90eaf481'/>
+      <function-type size-in-bits='64' id='90f4cdc0'>
+        <parameter type-id='809cdefc'/>
+        <parameter type-id='1b0e1d00'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='90f8cf39'>
+        <parameter type-id='478ed79d'/>
+        <parameter type-id='d0835005'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='91015ee2'>
+        <parameter type-id='5760dcb0'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='9102a0ad'>
+        <parameter type-id='eb572b74'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='d89691b6' size-in-bits='64' id='91073894'/>
+      <pointer-type-def type-id='69e69bf1' size-in-bits='64' id='910759c1'/>
+      <class-decl name='iommu_resv_region' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/iommu.h' line='149' column='1' id='91088608'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/iommu.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='start' type-id='2522883d' visibility='default' filepath='include/linux/iommu.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='length' type-id='b59d7dce' visibility='default' filepath='include/linux/iommu.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='prot' type-id='95e97e5e' visibility='default' filepath='include/linux/iommu.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='type' type-id='256c2037' visibility='default' filepath='include/linux/iommu.h' line='154' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c731dd47' size-in-bits='64' id='910b031b'/>
+      <pointer-type-def type-id='a2b185bc' size-in-bits='64' id='911521f6'/>
+      <pointer-type-def type-id='e1653094' size-in-bits='64' id='9117d942'/>
+      <pointer-type-def type-id='bd3c6981' size-in-bits='64' id='911a5831'/>
+      <class-decl name='irq_desc' size-in-bits='4096' is-struct='yes' visibility='default' filepath='include/linux/irqdesc.h' line='55' column='1' id='911b5feb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='irq_common_data' type-id='f1a268ec' visibility='default' filepath='include/linux/irqdesc.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='irq_data' type-id='064acd7a' visibility='default' filepath='include/linux/irqdesc.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='kstat_irqs' type-id='807869d3' visibility='default' filepath='include/linux/irqdesc.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='handle_irq' type-id='cdb741d3' visibility='default' filepath='include/linux/irqdesc.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='action' type-id='ba361e53' visibility='default' filepath='include/linux/irqdesc.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='status_use_accessors' type-id='f0981eeb' visibility='default' filepath='include/linux/irqdesc.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='core_internal_state__do_not_mess_with_it' type-id='f0981eeb' visibility='default' filepath='include/linux/irqdesc.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='depth' type-id='f0981eeb' visibility='default' filepath='include/linux/irqdesc.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='wake_depth' type-id='f0981eeb' visibility='default' filepath='include/linux/irqdesc.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='tot_count' type-id='f0981eeb' visibility='default' filepath='include/linux/irqdesc.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='irq_count' type-id='f0981eeb' visibility='default' filepath='include/linux/irqdesc.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='last_unhandled' type-id='7359adad' visibility='default' filepath='include/linux/irqdesc.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='irqs_unhandled' type-id='f0981eeb' visibility='default' filepath='include/linux/irqdesc.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='threads_handled' type-id='49178f86' visibility='default' filepath='include/linux/irqdesc.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='threads_handled_last' type-id='95e97e5e' visibility='default' filepath='include/linux/irqdesc.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/irqdesc.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='percpu_enabled' type-id='74bccedd' visibility='default' filepath='include/linux/irqdesc.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='percpu_affinity' type-id='5f8a1ac4' visibility='default' filepath='include/linux/irqdesc.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='affinity_hint' type-id='5f8a1ac4' visibility='default' filepath='include/linux/irqdesc.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='affinity_notify' type-id='7ca8e198' visibility='default' filepath='include/linux/irqdesc.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='threads_oneshot' type-id='7359adad' visibility='default' filepath='include/linux/irqdesc.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='threads_active' type-id='49178f86' visibility='default' filepath='include/linux/irqdesc.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='wait_for_threads' type-id='b5ab048f' visibility='default' filepath='include/linux/irqdesc.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='nr_actions' type-id='f0981eeb' visibility='default' filepath='include/linux/irqdesc.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2016'>
+          <var-decl name='no_suspend_depth' type-id='f0981eeb' visibility='default' filepath='include/linux/irqdesc.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='cond_suspend_depth' type-id='f0981eeb' visibility='default' filepath='include/linux/irqdesc.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2080'>
+          <var-decl name='force_resume_depth' type-id='f0981eeb' visibility='default' filepath='include/linux/irqdesc.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='dir' type-id='d077e928' visibility='default' filepath='include/linux/irqdesc.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/irqdesc.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='include/linux/irqdesc.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='request_mutex' type-id='925167dc' visibility='default' filepath='include/linux/irqdesc.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='parent_irq' type-id='95e97e5e' visibility='default' filepath='include/linux/irqdesc.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/irqdesc.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/irqdesc.h' line='104' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='37f40156' size-in-bits='64' id='911e5634'/>
+      <qualified-type-def type-id='795bbc42' const='yes' id='9125ffcd'/>
+      <pointer-type-def type-id='2d421ebf' size-in-bits='64' id='9126441b'/>
+      <function-type size-in-bits='64' id='91265862'>
+        <parameter type-id='1c475548'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='tty_audit_buf' is-struct='yes' visibility='default' is-declaration-only='yes' id='9127cd0e'/>
+      <pointer-type-def type-id='822de089' size-in-bits='64' id='9138a099'/>
+      <class-decl name='ufs_query' size-in-bits='448' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='238' column='1' id='913c3f48'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='request' type-id='1f574743' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='descriptor' type-id='8bff8096' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='response' type-id='21574a69' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='241' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_soc_tplg_manifest' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='374' column='1' id='913f3538'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='control_elems' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='widget_elems' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='377' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='graph_elems' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='378' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pcm_elems' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='dai_link_elems' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dai_elems' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='381' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='reserved' type-id='77d1242b' visibility='default' filepath='include/uapi/sound/asoc.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='priv' type-id='372c32b8' visibility='default' filepath='include/uapi/sound/asoc.h' line='383' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e4639b91' size-in-bits='64' id='91423b0d'/>
+      <pointer-type-def type-id='369a41ea' size-in-bits='64' id='91464e34'/>
+      <function-type size-in-bits='64' id='9146866a'>
+        <parameter type-id='442b8d89'/>
+        <parameter type-id='bfc022f4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='d44f152a' const='yes' id='9154cd19'/>
+      <array-type-def dimensions='1' type-id='b9535066' size-in-bits='1536' id='91671be8'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='916c4095'>
+        <parameter type-id='27675065'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='1b9c6d35' size-in-bits='64' id='917bb1c5'/>
+      <class-decl name='skcipher_walk' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/crypto/internal/skcipher.h' line='35' column='1' id='917c67c0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='src' type-id='ac5ab5bb' visibility='default' filepath='include/crypto/internal/skcipher.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dst' type-id='ac5ab5bb' visibility='default' filepath='include/crypto/internal/skcipher.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='in' type-id='9953e88b' visibility='default' filepath='include/crypto/internal/skcipher.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='nbytes' type-id='f0981eeb' visibility='default' filepath='include/crypto/internal/skcipher.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='out' type-id='9953e88b' visibility='default' filepath='include/crypto/internal/skcipher.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='total' type-id='f0981eeb' visibility='default' filepath='include/crypto/internal/skcipher.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='buffers' type-id='72f469ec' visibility='default' filepath='include/crypto/internal/skcipher.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='page' type-id='8bff8096' visibility='default' filepath='include/crypto/internal/skcipher.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='buffer' type-id='8bff8096' visibility='default' filepath='include/crypto/internal/skcipher.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='oiv' type-id='8bff8096' visibility='default' filepath='include/crypto/internal/skcipher.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='iv' type-id='eaa32e2f' visibility='default' filepath='include/crypto/internal/skcipher.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='ivsize' type-id='f0981eeb' visibility='default' filepath='include/crypto/internal/skcipher.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/crypto/internal/skcipher.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='blocksize' type-id='f0981eeb' visibility='default' filepath='include/crypto/internal/skcipher.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='stride' type-id='f0981eeb' visibility='default' filepath='include/crypto/internal/skcipher.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='alignmask' type-id='f0981eeb' visibility='default' filepath='include/crypto/internal/skcipher.h' line='66' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='918531c2'>
+        <parameter type-id='7efbcaaf'/>
+        <parameter type-id='02557527'/>
+        <parameter type-id='8bff8096'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='918604f1'>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='binder_transaction_data' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/uapi/linux/android/binder.h' line='325' column='1' id='9192bb03'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='target' type-id='ac5ab5cb' visibility='default' filepath='include/uapi/linux/android/binder.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cookie' type-id='6867e656' visibility='default' filepath='include/uapi/linux/android/binder.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='code' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/android/binder.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/android/binder.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sender_pid' type-id='587f89d2' visibility='default' filepath='include/uapi/linux/android/binder.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='sender_euid' type-id='354978ed' visibility='default' filepath='include/uapi/linux/android/binder.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='data_size' type-id='9af0438f' visibility='default' filepath='include/uapi/linux/android/binder.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='offsets_size' type-id='9af0438f' visibility='default' filepath='include/uapi/linux/android/binder.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='data' type-id='ac5ab5cc' visibility='default' filepath='include/uapi/linux/android/binder.h' line='357' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='rx_handler_func_t' type-id='77c9a241' filepath='include/linux/netdevice.h' line='440' column='1' id='9193647b'/>
+      <pointer-type-def type-id='db4c9bf7' size-in-bits='64' id='9194e9f3'/>
+      <array-type-def dimensions='1' type-id='a9d5f761' size-in-bits='infinite' id='9195bab1'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='9196037e'>
+        <parameter type-id='c062d7a5'/>
+        <parameter type-id='fd8f0b71'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='dc2316e7' size-in-bits='64' id='919b335b'/>
+      <pointer-type-def type-id='138d3c05' size-in-bits='64' id='919f23a5'/>
+      <class-decl name='v4l2_ctrl_mpeg2_sequence' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1894' column='1' id='91a433bb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='horizontal_size' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1895' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='vertical_size' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1896' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='vbv_buffer_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1897' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='profile_and_level_indication' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1898' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='chroma_format' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1899' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='flags' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1900' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ctl_table' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/sysctl.h' line='124' column='1' id='91a515f9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='procname' type-id='80f4b756' visibility='default' filepath='include/linux/sysctl.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/sysctl.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='maxlen' type-id='95e97e5e' visibility='default' filepath='include/linux/sysctl.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='mode' type-id='2594b00f' visibility='default' filepath='include/linux/sysctl.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='child' type-id='631dc3c1' visibility='default' filepath='include/linux/sysctl.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='proc_handler' type-id='66032958' visibility='default' filepath='include/linux/sysctl.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='poll' type-id='4dec003b' visibility='default' filepath='include/linux/sysctl.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='extra1' type-id='eaa32e2f' visibility='default' filepath='include/linux/sysctl.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='extra2' type-id='eaa32e2f' visibility='default' filepath='include/linux/sysctl.h' line='133' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f9ec7b52' size-in-bits='64' id='91a773cc'/>
+      <function-type size-in-bits='64' id='91b0693b'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='07751825'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='ab7bbd67'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7dac1e36' size-in-bits='64' id='91b10e59'/>
+      <class-decl name='in6_pktinfo' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/ipv6.h' line='22' column='1' id='91b426fc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ipi6_addr' type-id='f6ed712a' visibility='default' filepath='include/uapi/linux/ipv6.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ipi6_ifindex' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/ipv6.h' line='24' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='u64' type-id='d3130597' filepath='include/asm-generic/int-ll64.h' line='23' column='1' id='91ce1af9'/>
+      <pointer-type-def type-id='d7c60ba9' size-in-bits='64' id='91d0de51'/>
+      <pointer-type-def type-id='d0fea0bb' size-in-bits='64' id='91d6c443'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/sock.h' line='98' column='1' id='91da6325' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='slock' type-id='fb4018a0' visibility='default' filepath='include/net/sock.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='owned' type-id='95e97e5e' visibility='default' filepath='include/net/sock.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wq' type-id='b5ab048f' visibility='default' filepath='include/net/sock.h' line='101' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='91dc7ea3'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='91de15a8'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='cd1b45ab'/>
+        <parameter type-id='7292109c'/>
+        <parameter type-id='7e666abe'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='ca2e9cda' size-in-bits='64' id='91e3ab68'/>
+      <function-type size-in-bits='64' id='91e47eea'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='45492188'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='136fe2b5' size-in-bits='64' id='91e93e11'/>
+      <pointer-type-def type-id='c8df6a78' size-in-bits='64' id='91e97dfa'/>
+      <pointer-type-def type-id='d919518f' size-in-bits='64' id='91ea7193'/>
+      <class-decl name='kernfs_syscall_ops' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/kernfs.h' line='176' column='1' id='91f5bcb7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='show_options' type-id='efd5496b' visibility='default' filepath='include/linux/kernfs.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mkdir' type-id='58d10a98' visibility='default' filepath='include/linux/kernfs.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rmdir' type-id='0b56752f' visibility='default' filepath='include/linux/kernfs.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rename' type-id='aea90108' visibility='default' filepath='include/linux/kernfs.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='show_path' type-id='26692209' visibility='default' filepath='include/linux/kernfs.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/kernfs.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/kernfs.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/kernfs.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/kernfs.h' line='190' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ethtool_ts_info' size-in-bits='352' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1336' column='1' id='91f77fa3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='so_timestamping' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='phc_index' type-id='3158a266' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='tx_types' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tx_reserved' type-id='3fa05d14' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='rx_filters' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rx_reserved' type-id='3fa05d14' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1343' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='91f7d512'>
+        <parameter type-id='37175e4d'/>
+        <parameter type-id='f499bd02'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='b2e0b590' size-in-bits='64' id='91fe9e22'/>
+      <qualified-type-def type-id='512851e8' const='yes' id='92072f8b'/>
+      <pointer-type-def type-id='43c8a64c' size-in-bits='64' id='920ffb2e'/>
+      <function-type size-in-bits='64' id='92182137'>
+        <parameter type-id='58ed56f5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='iw_handler_def' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/iw_handler.h' line='324' column='1' id='9218f3f6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='standard' type-id='f696846b' visibility='default' filepath='include/net/iw_handler.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_standard' type-id='d315442e' visibility='default' filepath='include/net/iw_handler.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='num_private' type-id='d315442e' visibility='default' filepath='include/net/iw_handler.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='num_private_args' type-id='d315442e' visibility='default' filepath='include/net/iw_handler.h' line='337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='private' type-id='f696846b' visibility='default' filepath='include/net/iw_handler.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='private_args' type-id='d841feae' visibility='default' filepath='include/net/iw_handler.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='get_wireless_stats' type-id='55e2a83c' visibility='default' filepath='include/net/iw_handler.h' line='352' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f7b53f40' size-in-bits='64' id='921a362a'/>
+      <qualified-type-def type-id='931aa361' const='yes' id='921fbfdc'/>
+      <pointer-type-def type-id='ca6c3304' size-in-bits='64' id='922133c6'/>
+      <class-decl name='kernel_cap_struct' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/capability.h' line='24' column='1' id='923128a5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cap' type-id='839e8989' visibility='default' filepath='include/linux/capability.h' line='25' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='923a53bf'>
+        <parameter type-id='6d30564f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4b4e7d36' size-in-bits='64' id='923f12f8'/>
+      <pointer-type-def type-id='18359f44' size-in-bits='64' id='92446276'/>
+      <pointer-type-def type-id='abe41e67' size-in-bits='64' id='9248e67f'/>
+      <pointer-type-def type-id='dbae75d6' size-in-bits='64' id='924ae97c'/>
+      <function-type size-in-bits='64' id='924e6a9f'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='6db6a1be'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='925166cb'>
+        <parameter type-id='41ebc58b'/>
+        <parameter type-id='f0966175'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='e2b27ed1'/>
+        <return type-id='feb59272'/>
+      </function-type>
+      <class-decl name='mutex' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/mutex.h' line='64' column='1' id='925167dc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='f22a8abb' visibility='default' filepath='include/linux/mutex.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wait_lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/mutex.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='osq' type-id='0c3105cd' visibility='default' filepath='include/linux/mutex.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='wait_list' type-id='72f469ec' visibility='default' filepath='include/linux/mutex.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='android_oem_data1' type-id='24a375b2' visibility='default' filepath='include/linux/mutex.h' line='77' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bdd1d6eb' size-in-bits='64' id='925511d3'/>
+      <pointer-type-def type-id='a1e5b57e' size-in-bits='64' id='92563c50'/>
+      <pointer-type-def type-id='e3a78e52' size-in-bits='64' id='9257f544'/>
+      <pointer-type-def type-id='a2dba6b8' size-in-bits='64' id='925b860a'/>
+      <function-type size-in-bits='64' id='925ea354'>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='9263c6b3'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='f18c6e1f' size-in-bits='64' id='9264da33'/>
+      <pointer-type-def type-id='aeac61b0' size-in-bits='64' id='926bf87a'/>
+      <function-type size-in-bits='64' id='9280516b'>
+        <parameter type-id='08c8d0fa'/>
+        <return type-id='7313b0ab'/>
+      </function-type>
+      <class-decl name='irq_work' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/irq_work.h' line='16' column='1' id='9281c70f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='94c5e8ed' visibility='default' filepath='include/linux/irq_work.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='func' type-id='f48b73f6' visibility='default' filepath='include/linux/irq_work.h' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='wchar_t' type-id='1dc6a898' filepath='include/linux/nls.h' line='19' column='1' id='928221d2'/>
+      <function-type size-in-bits='64' id='92892da6'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='3df9fd28'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='regmap_hw_write' type-id='02a757da' filepath='include/linux/regmap.h' line='465' column='1' id='928c5b64'/>
+      <function-type size-in-bits='64' id='928ea938'>
+        <parameter type-id='6f3c82ac'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='92920004'>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='e324928d'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='mtd_oob_ops' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/mtd/mtd.h' line='64' column='1' id='92952bb0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mode' type-id='f0981eeb' visibility='default' filepath='include/linux/mtd/mtd.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='len' type-id='b59d7dce' visibility='default' filepath='include/linux/mtd/mtd.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='retlen' type-id='b59d7dce' visibility='default' filepath='include/linux/mtd/mtd.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ooblen' type-id='b59d7dce' visibility='default' filepath='include/linux/mtd/mtd.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='oobretlen' type-id='b59d7dce' visibility='default' filepath='include/linux/mtd/mtd.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ooboffs' type-id='8f92235e' visibility='default' filepath='include/linux/mtd/mtd.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='datbuf' type-id='ae3e8ca6' visibility='default' filepath='include/linux/mtd/mtd.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='oobbuf' type-id='ae3e8ca6' visibility='default' filepath='include/linux/mtd/mtd.h' line='72' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='amba_driver' size-in-bits='1728' is-struct='yes' visibility='default' filepath='include/linux/amba/bus.h' line='79' column='1' id='929b60e1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='drv' type-id='fe007c02' visibility='default' filepath='include/linux/amba/bus.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='probe' type-id='3c6ca22d' visibility='default' filepath='include/linux/amba/bus.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='remove' type-id='690433e0' visibility='default' filepath='include/linux/amba/bus.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='shutdown' type-id='690433e0' visibility='default' filepath='include/linux/amba/bus.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='id_table' type-id='be3ce245' visibility='default' filepath='include/linux/amba/bus.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/amba/bus.h' line='86' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='92a295b4'>
+        <parameter type-id='b9aa0100'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='002ac4a6' size-in-bits='128' id='92a46553'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='002ac4a6' size-in-bits='120' id='92ab2118'>
+        <subrange length='15' type-id='7ff19f0f' id='8484ba73'/>
+      </array-type-def>
+      <enum-decl name='flag_idn' filepath='drivers/scsi/ufs/ufs.h' line='112' column='1' id='92ace17c'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='QUERY_FLAG_IDN_FDEVICEINIT' value='1'/>
+        <enumerator name='QUERY_FLAG_IDN_PERMANENT_WPE' value='2'/>
+        <enumerator name='QUERY_FLAG_IDN_PWR_ON_WPE' value='3'/>
+        <enumerator name='QUERY_FLAG_IDN_BKOPS_EN' value='4'/>
+        <enumerator name='QUERY_FLAG_IDN_LIFE_SPAN_MODE_ENABLE' value='5'/>
+        <enumerator name='QUERY_FLAG_IDN_PURGE_ENABLE' value='6'/>
+        <enumerator name='QUERY_FLAG_IDN_RESERVED2' value='7'/>
+        <enumerator name='QUERY_FLAG_IDN_FPHYRESOURCEREMOVAL' value='8'/>
+        <enumerator name='QUERY_FLAG_IDN_BUSY_RTC' value='9'/>
+        <enumerator name='QUERY_FLAG_IDN_RESERVED3' value='10'/>
+        <enumerator name='QUERY_FLAG_IDN_PERMANENTLY_DISABLE_FW_UPDATE' value='11'/>
+        <enumerator name='QUERY_FLAG_IDN_WB_EN' value='14'/>
+        <enumerator name='QUERY_FLAG_IDN_WB_BUFF_FLUSH_EN' value='15'/>
+        <enumerator name='QUERY_FLAG_IDN_WB_BUFF_FLUSH_DURING_HIBERN8' value='16'/>
+        <enumerator name='QUERY_FLAG_IDN_HPB_RESET' value='17'/>
+        <enumerator name='QUERY_FLAG_IDN_HPB_EN' value='18'/>
+      </enum-decl>
+      <class-decl name='nlm_lockowner' is-struct='yes' visibility='default' is-declaration-only='yes' id='92afe5f3'/>
+      <pointer-type-def type-id='d5568bdd' size-in-bits='64' id='92b191e1'/>
+      <pointer-type-def type-id='4f61d355' size-in-bits='64' id='92bac3a5'/>
+      <class-decl name='v4l2_query_ext_ctrl' size-in-bits='1856' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1834' column='1' id='92bf903a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1835' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1836' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1837' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='minimum' type-id='49659421' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1838' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='maximum' type-id='49659421' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1839' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='step' type-id='d3130597' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1840' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='default_value' type-id='49659421' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1841' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1842' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='elem_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1843' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='elems' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1844' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='nr_of_dims' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1845' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='dims' type-id='3fa29bab' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1846' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='reserved' type-id='734a963c' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1847' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2cebef22' size-in-bits='64' id='92c1d524'/>
+      <function-type size-in-bits='64' id='92c8fea6'>
+        <parameter type-id='0dc3586b'/>
+        <parameter type-id='6fd5b1ab'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='92cdf314'>
+        <parameter type-id='80f25feb'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e6c6c6cd' size-in-bits='64' id='92d15ae9'/>
+      <pointer-type-def type-id='b364ee65' size-in-bits='64' id='92d86499'/>
+      <pointer-type-def type-id='fe81ecb9' size-in-bits='64' id='92daca01'/>
+      <class-decl name='amba_device' size-in-bits='8960' is-struct='yes' visibility='default' filepath='include/linux/amba/bus.h' line='65' column='1' id='92e8f939'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/amba/bus.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='res' type-id='5218160d' visibility='default' filepath='include/linux/amba/bus.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='pclk' type-id='7d0bc0eb' visibility='default' filepath='include/linux/amba/bus.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='dma_parms' type-id='37251e77' visibility='default' filepath='include/linux/amba/bus.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='periphid' type-id='f0981eeb' visibility='default' filepath='include/linux/amba/bus.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8288'>
+          <var-decl name='cid' type-id='f0981eeb' visibility='default' filepath='include/linux/amba/bus.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='uci' type-id='ca73ce17' visibility='default' filepath='include/linux/amba/bus.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='irq' type-id='0d6477e2' visibility='default' filepath='include/linux/amba/bus.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8832'>
+          <var-decl name='driver_override' type-id='26a90f95' visibility='default' filepath='include/linux/amba/bus.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8896'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/amba/bus.h' line='76' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='92e8ff1e'>
+        <parameter type-id='eefe253e'/>
+        <parameter type-id='b6733265'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='19795245' const='yes' id='92e9b57c'/>
+      <pointer-type-def type-id='362b94c1' size-in-bits='64' id='92ec3dc9'/>
+      <pointer-type-def type-id='70dd03cd' size-in-bits='64' id='92ed24a5'/>
+      <class-decl name='snd_compr_metadata' size-in-bits='288' is-struct='yes' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='142' column='1' id='92ee9b60'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='key' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='value' type-id='7f84eb57' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='144' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='058d675d' size-in-bits='64' id='92f3e2f1'/>
+      <pointer-type-def type-id='b947c5cd' size-in-bits='64' id='92fc8aa5'/>
+      <pointer-type-def type-id='0a38a8f0' size-in-bits='64' id='93097cd2'/>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='24' id='930ea9f9'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='930eb0f7'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='8efea9e5'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='26a5fedd' size-in-bits='64' id='930fcda9'/>
+      <function-type size-in-bits='64' id='9311ab68'>
+        <parameter type-id='67d012a2'/>
+        <return type-id='8b0b6618'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='32' id='931565be'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <class-decl name='dmaengine_result' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/dmaengine.h' line='549' column='1' id='931aa361'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='result' type-id='c2154237' visibility='default' filepath='include/linux/dmaengine.h' line='550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='residue' type-id='19c2251e' visibility='default' filepath='include/linux/dmaengine.h' line='551' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8754454d' size-in-bits='64' id='93226281'/>
+      <qualified-type-def type-id='5bbd300b' const='yes' id='93286cfa'/>
+      <function-type size-in-bits='64' id='93301493'>
+        <parameter type-id='2567e379'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='a54c778f'/>
+        <return type-id='8f254b08'/>
+      </function-type>
+      <class-decl name='trace_event_buffer' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/trace_events.h' line='292' column='1' id='933375ec'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='buffer' type-id='573a5ee9' visibility='default' filepath='include/linux/trace_events.h' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='event' type-id='3275e929' visibility='default' filepath='include/linux/trace_events.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='trace_file' type-id='3d4ca6d2' visibility='default' filepath='include/linux/trace_events.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='entry' type-id='eaa32e2f' visibility='default' filepath='include/linux/trace_events.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='trace_ctx' type-id='f0981eeb' visibility='default' filepath='include/linux/trace_events.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='regs' type-id='4616a179' visibility='default' filepath='include/linux/trace_events.h' line='298' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='144e93b2' size-in-bits='64' id='933bd18c'/>
+      <pointer-type-def type-id='47f058fa' size-in-bits='64' id='933bd96c'/>
+      <typedef-decl name='xa_mark_t' type-id='f0981eeb' filepath='include/linux/xarray.h' line='248' column='1' id='933bf462'/>
+      <function-type size-in-bits='64' id='933e0e21'>
+        <parameter type-id='27675065'/>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='26cad514'/>
+        <return type-id='80f4b756'/>
+      </function-type>
+      <pointer-type-def type-id='3d1f4971' size-in-bits='64' id='93407a41'/>
+      <pointer-type-def type-id='ba6c1a6f' size-in-bits='64' id='934d23eb'/>
+      <function-type size-in-bits='64' id='93553610'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='ae4f2ad5'/>
+        <parameter type-id='498944b4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='935923dc'>
+        <parameter type-id='9e99ecc1'/>
+        <parameter type-id='8898134d'/>
+        <parameter type-id='8f92235e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ethtool_link_ext_state_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/ethtool.h' line='90' column='1' id='9359b7f2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='link_ext_state' type-id='2f1b727c' visibility='default' filepath='include/linux/ethtool.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='' type-id='ac5ab690' visibility='default' filepath='include/linux/ethtool.h' line='92' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='935b1156'>
+        <parameter type-id='a77efac3'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='bug_entry' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/asm-generic/bug.h' line='27' column='1' id='93630c4e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bug_addr_disp' type-id='95e97e5e' visibility='default' filepath='include/asm-generic/bug.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='file_disp' type-id='95e97e5e' visibility='default' filepath='include/asm-generic/bug.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='line' type-id='8efea9e5' visibility='default' filepath='include/asm-generic/bug.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='flags' type-id='8efea9e5' visibility='default' filepath='include/asm-generic/bug.h' line='41' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='936a146b'>
+        <parameter type-id='2feec21f'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='b5a731bc' size-in-bits='64' id='93762a0a'/>
+      <pointer-type-def type-id='4187a976' size-in-bits='64' id='9381c60c'/>
+      <pointer-type-def type-id='25270794' size-in-bits='64' id='9385e4a6'/>
+      <function-type size-in-bits='64' id='9386c3d1'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='bd54fe1a'/>
+      </function-type>
+      <pointer-type-def type-id='30a49526' size-in-bits='64' id='938abf68'/>
+      <pointer-type-def type-id='fa296b96' size-in-bits='64' id='93901aac'/>
+      <pointer-type-def type-id='d9bbe8ab' size-in-bits='64' id='939046d7'/>
+      <pointer-type-def type-id='4827f223' size-in-bits='64' id='939280af'/>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='128' id='9396cabb'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <class-decl name='xt_match' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='142' column='1' id='9399d16b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='cff94a5f' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='360'>
+          <var-decl name='revision' type-id='892641a4' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='match' type-id='78abc667' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='checkentry' type-id='f6865b36' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='destroy' type-id='f0385e42' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='compat_from_user' type-id='debb4ee8' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='compat_to_user' type-id='585e1de9' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='me' type-id='2730d015' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='table' type-id='80f4b756' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='matchsize' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='usersize' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='compatsize' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='hooks' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='proto' type-id='8efea9e5' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='976'>
+          <var-decl name='family' type-id='8efea9e5' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='178' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='228c7c6c' size-in-bits='64' id='939a8d9a'/>
+      <typedef-decl name='vring_avail_t' type-id='b3f6da27' filepath='include/uapi/linux/virtio_ring.h' line='148' column='1' id='93a4929f'/>
+      <function-type size-in-bits='64' id='93a4c7d5'>
+        <parameter type-id='6dca061b'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <class-decl name='est_timings' size-in-bits='24' is-struct='yes' visibility='default' filepath='include/drm/drm_edid.h' line='44' column='1' id='93a90c7b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='t1' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='t2' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='mfg_rsvd' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='47' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cce3f5a3' size-in-bits='64' id='93abc02f'/>
+      <class-decl name='ufshcd_lrb' size-in-bits='1280' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='198' column='1' id='93b4100d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='utr_descriptor_ptr' type-id='1852fc77' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ucd_req_ptr' type-id='c61ee7a1' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ucd_rsp_ptr' type-id='68e72116' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ucd_prdt_ptr' type-id='696df79c' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='utrd_dma_addr' type-id='cf29c9b3' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ucd_req_dma_addr' type-id='cf29c9b3' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ucd_rsp_dma_addr' type-id='cf29c9b3' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ucd_prdt_dma_addr' type-id='cf29c9b3' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='cmd' type-id='0b8718c0' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='sense_buffer' type-id='8bff8096' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='sense_bufflen' type-id='f0981eeb' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='scsi_status' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='command_type' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='task_tag' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='lun' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='776'>
+          <var-decl name='intr_cmd' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='issue_time_stamp' type-id='fbc017ef' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='compl_time_stamp' type-id='fbc017ef' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='crypto_key_slot' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='data_unit_num' type-id='91ce1af9' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='req_abort_skip' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='229' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c067c68a' size-in-bits='64' id='93b82798'/>
+      <function-type size-in-bits='64' id='93be8120'>
+        <parameter type-id='89b70200'/>
+        <parameter type-id='d30bdc51'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='local_ports' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/net/netns/ipv4.h' line='21' column='1' id='93d4ab27'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='e6cd5ecf' visibility='default' filepath='include/net/netns/ipv4.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='range' type-id='e4266c7e' visibility='default' filepath='include/net/netns/ipv4.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='warned' type-id='b50a4934' visibility='default' filepath='include/net/netns/ipv4.h' line='24' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b151a3a8' size-in-bits='64' id='93d633bd'/>
+      <typedef-decl name='__kernel_sa_family_t' type-id='8efea9e5' filepath='include/uapi/linux/socket.h' line='10' column='1' id='93d679c6'/>
+      <function-type size-in-bits='64' id='93db4230'>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='02f11ed4'/>
+      </function-type>
+      <function-type size-in-bits='64' id='93df1bf0'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='78c01427'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='int32' type-id='3f1a6b60' filepath='include/net/slhc_vj.h' line='120' column='1' id='93e3c360'/>
+      <array-type-def dimensions='1' type-id='95e97e5e' size-in-bits='2048' id='93e41790'>
+        <subrange length='64' type-id='7ff19f0f' id='b10be967'/>
+      </array-type-def>
+      <pointer-type-def type-id='42b001af' size-in-bits='64' id='93edac17'/>
+      <array-type-def dimensions='1' type-id='3b0abfc6' size-in-bits='768' id='93f82aba'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <enum-decl name='node_stat_item' filepath='include/linux/mmzone.h' line='166' column='1' id='93f9c3d3'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NR_LRU_BASE' value='0'/>
+        <enumerator name='NR_INACTIVE_ANON' value='0'/>
+        <enumerator name='NR_ACTIVE_ANON' value='1'/>
+        <enumerator name='NR_INACTIVE_FILE' value='2'/>
+        <enumerator name='NR_ACTIVE_FILE' value='3'/>
+        <enumerator name='NR_UNEVICTABLE' value='4'/>
+        <enumerator name='NR_SLAB_RECLAIMABLE_B' value='5'/>
+        <enumerator name='NR_SLAB_UNRECLAIMABLE_B' value='6'/>
+        <enumerator name='NR_ISOLATED_ANON' value='7'/>
+        <enumerator name='NR_ISOLATED_FILE' value='8'/>
+        <enumerator name='WORKINGSET_NODES' value='9'/>
+        <enumerator name='WORKINGSET_REFAULT_BASE' value='10'/>
+        <enumerator name='WORKINGSET_REFAULT_ANON' value='10'/>
+        <enumerator name='WORKINGSET_REFAULT_FILE' value='11'/>
+        <enumerator name='WORKINGSET_ACTIVATE_BASE' value='12'/>
+        <enumerator name='WORKINGSET_ACTIVATE_ANON' value='12'/>
+        <enumerator name='WORKINGSET_ACTIVATE_FILE' value='13'/>
+        <enumerator name='WORKINGSET_RESTORE_BASE' value='14'/>
+        <enumerator name='WORKINGSET_RESTORE_ANON' value='14'/>
+        <enumerator name='WORKINGSET_RESTORE_FILE' value='15'/>
+        <enumerator name='WORKINGSET_NODERECLAIM' value='16'/>
+        <enumerator name='NR_ANON_MAPPED' value='17'/>
+        <enumerator name='NR_FILE_MAPPED' value='18'/>
+        <enumerator name='NR_FILE_PAGES' value='19'/>
+        <enumerator name='NR_FILE_DIRTY' value='20'/>
+        <enumerator name='NR_WRITEBACK' value='21'/>
+        <enumerator name='NR_WRITEBACK_TEMP' value='22'/>
+        <enumerator name='NR_SHMEM' value='23'/>
+        <enumerator name='NR_SHMEM_THPS' value='24'/>
+        <enumerator name='NR_SHMEM_PMDMAPPED' value='25'/>
+        <enumerator name='NR_FILE_THPS' value='26'/>
+        <enumerator name='NR_FILE_PMDMAPPED' value='27'/>
+        <enumerator name='NR_ANON_THPS' value='28'/>
+        <enumerator name='NR_VMSCAN_WRITE' value='29'/>
+        <enumerator name='NR_VMSCAN_IMMEDIATE' value='30'/>
+        <enumerator name='NR_DIRTIED' value='31'/>
+        <enumerator name='NR_WRITTEN' value='32'/>
+        <enumerator name='NR_KERNEL_MISC_RECLAIMABLE' value='33'/>
+        <enumerator name='NR_FOLL_PIN_ACQUIRED' value='34'/>
+        <enumerator name='NR_FOLL_PIN_RELEASED' value='35'/>
+        <enumerator name='NR_KERNEL_STACK_KB' value='36'/>
+        <enumerator name='NR_KERNEL_SCS_KB' value='37'/>
+        <enumerator name='NR_PAGETABLE' value='38'/>
+        <enumerator name='NR_SWAPCACHE' value='39'/>
+        <enumerator name='NR_VM_NODE_STAT_ITEMS' value='40'/>
+      </enum-decl>
+      <pointer-type-def type-id='6ed6b432' size-in-bits='64' id='93fd81c8'/>
+      <qualified-type-def type-id='bd4e4ac8' const='yes' id='94052af7'/>
+      <pointer-type-def type-id='95be97f3' size-in-bits='64' id='94090a9b'/>
+      <class-decl name='aead_alg' size-in-bits='4096' is-struct='yes' visibility='default' filepath='include/crypto/aead.h' line='136' column='1' id='94111b83'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='setkey' type-id='4598a9be' visibility='default' filepath='include/crypto/aead.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='setauthsize' type-id='d87ec006' visibility='default' filepath='include/crypto/aead.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='encrypt' type-id='a97ec1c4' visibility='default' filepath='include/crypto/aead.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='decrypt' type-id='a97ec1c4' visibility='default' filepath='include/crypto/aead.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='init' type-id='3fb740ac' visibility='default' filepath='include/crypto/aead.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='exit' type-id='465e35b9' visibility='default' filepath='include/crypto/aead.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ivsize' type-id='f0981eeb' visibility='default' filepath='include/crypto/aead.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='maxauthsize' type-id='f0981eeb' visibility='default' filepath='include/crypto/aead.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='chunksize' type-id='f0981eeb' visibility='default' filepath='include/crypto/aead.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='base' type-id='514fe525' visibility='default' filepath='include/crypto/aead.h' line='149' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='08d1d960' size-in-bits='64' id='9414c4b6'/>
+      <pointer-type-def type-id='c611b7c0' size-in-bits='64' id='941a57ca'/>
+      <enum-decl name='dma_transfer_direction' filepath='include/linux/dmaengine.h' line='80' column='1' id='941ca9e2'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DMA_MEM_TO_MEM' value='0'/>
+        <enumerator name='DMA_MEM_TO_DEV' value='1'/>
+        <enumerator name='DMA_DEV_TO_MEM' value='2'/>
+        <enumerator name='DMA_DEV_TO_DEV' value='3'/>
+        <enumerator name='DMA_TRANS_NONE' value='4'/>
+      </enum-decl>
+      <pointer-type-def type-id='78a133c2' size-in-bits='64' id='941d96cb'/>
+      <function-type size-in-bits='64' id='9423c42a'>
+        <parameter type-id='a970a64c'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='83fa0aaf' size-in-bits='64' id='9424eb47'/>
+      <class-decl name='edac_dev_sysfs_block_attribute' size-in-bits='384' is-struct='yes' visibility='default' filepath='drivers/edac/edac_device.h' line='106' column='1' id='942a7948'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='attr' type-id='a6222917' visibility='default' filepath='drivers/edac/edac_device.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='show' type-id='434e45fe' visibility='default' filepath='drivers/edac/edac_device.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='store' type-id='855e70d2' visibility='default' filepath='drivers/edac/edac_device.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='block' type-id='0424a2d9' visibility='default' filepath='drivers/edac/edac_device.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='value' type-id='f0981eeb' visibility='default' filepath='drivers/edac/edac_device.h' line='113' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='39a43b40' size-in-bits='320' id='94310593'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <pointer-type-def type-id='9e9565b9' size-in-bits='64' id='943544a5'/>
+      <function-type size-in-bits='64' id='943685e6'>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='b53e8dbb'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <pointer-type-def type-id='9e497d29' size-in-bits='64' id='9438aa05'/>
+      <pointer-type-def type-id='b64da4b2' size-in-bits='64' id='943a1b48'/>
+      <pointer-type-def type-id='84dbb257' size-in-bits='64' id='943ad75f'/>
+      <enum-decl name='opp_table_access' filepath='drivers/opp/opp.h' line='121' column='1' id='943b03b5'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='OPP_TABLE_ACCESS_UNKNOWN' value='0'/>
+        <enumerator name='OPP_TABLE_ACCESS_EXCLUSIVE' value='1'/>
+        <enumerator name='OPP_TABLE_ACCESS_SHARED' value='2'/>
+      </enum-decl>
+      <class-decl name='fscrypt_info' size-in-bits='1088' is-struct='yes' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='200' column='1' id='9441bb37'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ci_enc_key' type-id='a28355c2' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ci_owns_key' type-id='b50a4934' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='ci_inlinecrypt' type-id='b50a4934' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ci_mode' type-id='65936caa' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ci_inode' type-id='7e666abe' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ci_master_key' type-id='3948ffb9' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ci_master_key_link' type-id='72f469ec' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ci_direct_key' type-id='8ce270a4' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ci_dirhash_key' type-id='7799da43' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='ci_dirhash_key_initialized' type-id='b50a4934' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='712'>
+          <var-decl name='ci_policy' type-id='61227238' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='904'>
+          <var-decl name='ci_nonce' type-id='0d8415b5' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='ci_hashed_ino' type-id='19c2251e' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='268' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2ff052b1' size-in-bits='64' id='944c4ff9'/>
+      <class-decl name='swait_queue_head' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/swait.h' line='43' column='1' id='944dbe72'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/swait.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='task_list' type-id='72f469ec' visibility='default' filepath='include/linux/swait.h' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='nvmem_config' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/linux/nvmem-provider.h' line='79' column='1' id='945c0b49'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/nvmem-provider.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/nvmem-provider.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/nvmem-provider.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/nvmem-provider.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='wp_gpio' type-id='26760480' visibility='default' filepath='include/linux/nvmem-provider.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='cells' type-id='ac5f2363' visibility='default' filepath='include/linux/nvmem-provider.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ncells' type-id='95e97e5e' visibility='default' filepath='include/linux/nvmem-provider.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='keepout' type-id='3e479841' visibility='default' filepath='include/linux/nvmem-provider.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='nkeepout' type-id='f0981eeb' visibility='default' filepath='include/linux/nvmem-provider.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='type' type-id='0c30c73e' visibility='default' filepath='include/linux/nvmem-provider.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='read_only' type-id='b50a4934' visibility='default' filepath='include/linux/nvmem-provider.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='584'>
+          <var-decl name='root_only' type-id='b50a4934' visibility='default' filepath='include/linux/nvmem-provider.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='592'>
+          <var-decl name='ignore_wp' type-id='b50a4934' visibility='default' filepath='include/linux/nvmem-provider.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='of_node' type-id='9a537bbe' visibility='default' filepath='include/linux/nvmem-provider.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='no_of_node' type-id='b50a4934' visibility='default' filepath='include/linux/nvmem-provider.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='reg_read' type-id='b3e77ef6' visibility='default' filepath='include/linux/nvmem-provider.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='reg_write' type-id='020bf95f' visibility='default' filepath='include/linux/nvmem-provider.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='size' type-id='95e97e5e' visibility='default' filepath='include/linux/nvmem-provider.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='word_size' type-id='95e97e5e' visibility='default' filepath='include/linux/nvmem-provider.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='stride' type-id='95e97e5e' visibility='default' filepath='include/linux/nvmem-provider.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/nvmem-provider.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='compat' type-id='b50a4934' visibility='default' filepath='include/linux/nvmem-provider.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='base_dev' type-id='fa0b179b' visibility='default' filepath='include/linux/nvmem-provider.h' line='103' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='fd7e7994' const='yes' id='946203ef'/>
+      <pointer-type-def type-id='06177fb0' size-in-bits='64' id='94639d2a'/>
+      <class-decl name='blkcg_gq' size-in-bits='2880' is-struct='yes' visibility='default' filepath='include/linux/blk-cgroup.h' line='111' column='1' id='9467b853'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='q' type-id='e7d2a5fc' visibility='default' filepath='include/linux/blk-cgroup.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='q_node' type-id='72f469ec' visibility='default' filepath='include/linux/blk-cgroup.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='blkcg_node' type-id='03a4a074' visibility='default' filepath='include/linux/blk-cgroup.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='blkcg' type-id='11bff950' visibility='default' filepath='include/linux/blk-cgroup.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='parent' type-id='1146dea3' visibility='default' filepath='include/linux/blk-cgroup.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='refcnt' type-id='818799b4' visibility='default' filepath='include/linux/blk-cgroup.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='online' type-id='b50a4934' visibility='default' filepath='include/linux/blk-cgroup.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='iostat_cpu' type-id='c4898827' visibility='default' filepath='include/linux/blk-cgroup.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='iostat' type-id='c42085ef' visibility='default' filepath='include/linux/blk-cgroup.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='pd' type-id='f55e07ab' visibility='default' filepath='include/linux/blk-cgroup.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='async_bio_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/blk-cgroup.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='async_bios' type-id='096280be' visibility='default' filepath='include/linux/blk-cgroup.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='async_bio_work' type-id='ef9025d0' visibility='default' filepath='include/linux/blk-cgroup.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='use_delay' type-id='49178f86' visibility='default' filepath='include/linux/blk-cgroup.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='delay_nsec' type-id='28ee064c' visibility='default' filepath='include/linux/blk-cgroup.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='delay_start' type-id='28ee064c' visibility='default' filepath='include/linux/blk-cgroup.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='last_delay' type-id='91ce1af9' visibility='default' filepath='include/linux/blk-cgroup.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='last_use' type-id='95e97e5e' visibility='default' filepath='include/linux/blk-cgroup.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/linux/blk-cgroup.h' line='142' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b86c4e68' size-in-bits='64' id='947f31e6'/>
+      <class-decl name='thread_group_cputimer' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/sched/signal.h' line='67' column='1' id='9480bb51'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cputime_atomic' type-id='4b60fba4' visibility='default' filepath='include/linux/sched/signal.h' line='68' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='c645b65c' const='yes' id='94847817'/>
+      <qualified-type-def type-id='e77ac310' const='yes' id='9487d957'/>
+      <class-decl name='cpuidle_driver' size-in-bits='8768' is-struct='yes' visibility='default' filepath='include/linux/cpuidle.h' line='125' column='1' id='9488f766'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/cpuidle.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/cpuidle.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bctimer' type-id='f0981eeb' visibility='default' filepath='include/linux/cpuidle.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='states' type-id='d91bb67a' visibility='default' filepath='include/linux/cpuidle.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='state_count' type-id='95e97e5e' visibility='default' filepath='include/linux/cpuidle.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8544'>
+          <var-decl name='safe_state_index' type-id='95e97e5e' visibility='default' filepath='include/linux/cpuidle.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8576'>
+          <var-decl name='cpumask' type-id='74bccedd' visibility='default' filepath='include/linux/cpuidle.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='governor' type-id='80f4b756' visibility='default' filepath='include/linux/cpuidle.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/cpuidle.h' line='142' 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='62' column='1' id='9493d3c9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='value_offset' type-id='95e97e5e' visibility='default' filepath='include/linux/export.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='name_offset' type-id='95e97e5e' visibility='default' filepath='include/linux/export.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='namespace_offset' type-id='95e97e5e' visibility='default' filepath='include/linux/export.h' line='65' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='scsi_host_cmd_pool' is-struct='yes' visibility='default' is-declaration-only='yes' id='94982f58'/>
+      <pointer-type-def type-id='435ed9ca' size-in-bits='64' id='94a2b0dd'/>
+      <pointer-type-def type-id='83f41bec' size-in-bits='64' id='94aa3aee'/>
+      <class-decl name='dbs_data' size-in-bits='1600' is-struct='yes' visibility='default' filepath='drivers/cpufreq/cpufreq_governor.h' line='38' column='1' id='94ac9155'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='attr_set' type-id='32d20c8c' visibility='default' filepath='drivers/cpufreq/cpufreq_governor.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='tuners' type-id='eaa32e2f' visibility='default' filepath='drivers/cpufreq/cpufreq_governor.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='ignore_nice_load' type-id='f0981eeb' visibility='default' filepath='drivers/cpufreq/cpufreq_governor.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='sampling_rate' type-id='f0981eeb' visibility='default' filepath='drivers/cpufreq/cpufreq_governor.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='sampling_down_factor' type-id='f0981eeb' visibility='default' filepath='drivers/cpufreq/cpufreq_governor.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1504'>
+          <var-decl name='up_threshold' type-id='f0981eeb' visibility='default' filepath='drivers/cpufreq/cpufreq_governor.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='io_is_busy' type-id='f0981eeb' visibility='default' filepath='drivers/cpufreq/cpufreq_governor.h' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fib_rule' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/net/fib_rules.h' line='20' column='1' id='94b5478d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/fib_rules.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='iifindex' type-id='95e97e5e' visibility='default' filepath='include/net/fib_rules.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='oifindex' type-id='95e97e5e' visibility='default' filepath='include/net/fib_rules.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mark' type-id='19c2251e' visibility='default' filepath='include/net/fib_rules.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='mark_mask' type-id='19c2251e' visibility='default' filepath='include/net/fib_rules.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/fib_rules.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='table' type-id='19c2251e' visibility='default' filepath='include/net/fib_rules.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='action' type-id='f9b06939' visibility='default' filepath='include/net/fib_rules.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='328'>
+          <var-decl name='l3mdev' type-id='f9b06939' visibility='default' filepath='include/net/fib_rules.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='336'>
+          <var-decl name='proto' type-id='f9b06939' visibility='default' filepath='include/net/fib_rules.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='344'>
+          <var-decl name='ip_proto' type-id='f9b06939' visibility='default' filepath='include/net/fib_rules.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='target' type-id='19c2251e' visibility='default' filepath='include/net/fib_rules.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='tun_id' type-id='0899c7ad' visibility='default' filepath='include/net/fib_rules.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ctarget' type-id='87447c2d' visibility='default' filepath='include/net/fib_rules.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='fr_net' type-id='a2bff676' visibility='default' filepath='include/net/fib_rules.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/net/fib_rules.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='pref' type-id='19c2251e' visibility='default' filepath='include/net/fib_rules.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='suppress_ifgroup' type-id='95e97e5e' visibility='default' filepath='include/net/fib_rules.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='suppress_prefixlen' type-id='95e97e5e' visibility='default' filepath='include/net/fib_rules.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='iifname' type-id='ac1fa8c0' visibility='default' filepath='include/net/fib_rules.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='oifname' type-id='ac1fa8c0' visibility='default' filepath='include/net/fib_rules.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='uid_range' type-id='c76a5484' visibility='default' filepath='include/net/fib_rules.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='sport_range' type-id='c27f07e7' visibility='default' filepath='include/net/fib_rules.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='dport_range' type-id='c27f07e7' visibility='default' filepath='include/net/fib_rules.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/fib_rules.h' line='46' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='65e1dee8' size-in-bits='64' id='94b60312'/>
+      <function-type size-in-bits='64' id='94bbdcaa'>
+        <parameter type-id='8ba26d85'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='31b542ce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='61872327' size-in-bits='64' id='94bc2d77'/>
+      <pointer-type-def type-id='9d7259bb' size-in-bits='64' id='94bfb8eb'/>
+      <pointer-type-def type-id='8eb05bf5' size-in-bits='64' id='94c01051'/>
+      <class-decl name='spmi_driver' size-in-bits='1664' is-struct='yes' visibility='default' filepath='include/linux/spmi.h' line='139' column='1' id='94c01877'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/spmi.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='probe' type-id='ef014987' visibility='default' filepath='include/linux/spmi.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='remove' type-id='f29648fe' visibility='default' filepath='include/linux/spmi.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='shutdown' type-id='f29648fe' visibility='default' filepath='include/linux/spmi.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/spmi.h' line='144' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4ede01e9' size-in-bits='64' id='94c16fa5'/>
+      <class-decl name='__call_single_node' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/smp_types.h' line='58' column='1' id='94c5e8ed'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='llist' type-id='c5ccfee8' visibility='default' filepath='include/linux/smp_types.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab65e' visibility='default' filepath='include/linux/smp_types.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='src' type-id='1dc6a898' visibility='default' filepath='include/linux/smp_types.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='dst' type-id='1dc6a898' visibility='default' filepath='include/linux/smp_types.h' line='65' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='__anonymous_enum__' filepath='include/linux/phy.h' line='123' column='1' id='94c71594' is-anonymous='yes'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PHY_INTERFACE_MODE_NA' value='0'/>
+        <enumerator name='PHY_INTERFACE_MODE_INTERNAL' value='1'/>
+        <enumerator name='PHY_INTERFACE_MODE_MII' value='2'/>
+        <enumerator name='PHY_INTERFACE_MODE_GMII' value='3'/>
+        <enumerator name='PHY_INTERFACE_MODE_SGMII' value='4'/>
+        <enumerator name='PHY_INTERFACE_MODE_TBI' value='5'/>
+        <enumerator name='PHY_INTERFACE_MODE_REVMII' value='6'/>
+        <enumerator name='PHY_INTERFACE_MODE_RMII' value='7'/>
+        <enumerator name='PHY_INTERFACE_MODE_REVRMII' value='8'/>
+        <enumerator name='PHY_INTERFACE_MODE_RGMII' value='9'/>
+        <enumerator name='PHY_INTERFACE_MODE_RGMII_ID' value='10'/>
+        <enumerator name='PHY_INTERFACE_MODE_RGMII_RXID' value='11'/>
+        <enumerator name='PHY_INTERFACE_MODE_RGMII_TXID' value='12'/>
+        <enumerator name='PHY_INTERFACE_MODE_RTBI' value='13'/>
+        <enumerator name='PHY_INTERFACE_MODE_SMII' value='14'/>
+        <enumerator name='PHY_INTERFACE_MODE_XGMII' value='15'/>
+        <enumerator name='PHY_INTERFACE_MODE_XLGMII' value='16'/>
+        <enumerator name='PHY_INTERFACE_MODE_MOCA' value='17'/>
+        <enumerator name='PHY_INTERFACE_MODE_QSGMII' value='18'/>
+        <enumerator name='PHY_INTERFACE_MODE_TRGMII' value='19'/>
+        <enumerator name='PHY_INTERFACE_MODE_100BASEX' value='20'/>
+        <enumerator name='PHY_INTERFACE_MODE_1000BASEX' value='21'/>
+        <enumerator name='PHY_INTERFACE_MODE_2500BASEX' value='22'/>
+        <enumerator name='PHY_INTERFACE_MODE_5GBASER' value='23'/>
+        <enumerator name='PHY_INTERFACE_MODE_RXAUI' value='24'/>
+        <enumerator name='PHY_INTERFACE_MODE_XAUI' value='25'/>
+        <enumerator name='PHY_INTERFACE_MODE_10GBASER' value='26'/>
+        <enumerator name='PHY_INTERFACE_MODE_25GBASER' value='27'/>
+        <enumerator name='PHY_INTERFACE_MODE_USXGMII' value='28'/>
+        <enumerator name='PHY_INTERFACE_MODE_10GKR' value='29'/>
+        <enumerator name='PHY_INTERFACE_MODE_MAX' value='30'/>
+      </enum-decl>
+      <pointer-type-def type-id='1c03d197' size-in-bits='64' id='94c948ef'/>
+      <pointer-type-def type-id='3fdac390' size-in-bits='64' id='94ce875a'/>
+      <typedef-decl name='mempool_alloc_t' type-id='6f7f4c91' filepath='include/linux/mempool.h' line='13' column='1' id='94d117ca'/>
+      <enum-decl name='flow_action_id' filepath='include/net/flow_offload.h' line='120' column='1' id='94d3b34d'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='FLOW_ACTION_ACCEPT' value='0'/>
+        <enumerator name='FLOW_ACTION_DROP' value='1'/>
+        <enumerator name='FLOW_ACTION_TRAP' value='2'/>
+        <enumerator name='FLOW_ACTION_GOTO' value='3'/>
+        <enumerator name='FLOW_ACTION_REDIRECT' value='4'/>
+        <enumerator name='FLOW_ACTION_MIRRED' value='5'/>
+        <enumerator name='FLOW_ACTION_REDIRECT_INGRESS' value='6'/>
+        <enumerator name='FLOW_ACTION_MIRRED_INGRESS' value='7'/>
+        <enumerator name='FLOW_ACTION_VLAN_PUSH' value='8'/>
+        <enumerator name='FLOW_ACTION_VLAN_POP' value='9'/>
+        <enumerator name='FLOW_ACTION_VLAN_MANGLE' value='10'/>
+        <enumerator name='FLOW_ACTION_TUNNEL_ENCAP' value='11'/>
+        <enumerator name='FLOW_ACTION_TUNNEL_DECAP' value='12'/>
+        <enumerator name='FLOW_ACTION_MANGLE' value='13'/>
+        <enumerator name='FLOW_ACTION_ADD' value='14'/>
+        <enumerator name='FLOW_ACTION_CSUM' value='15'/>
+        <enumerator name='FLOW_ACTION_MARK' value='16'/>
+        <enumerator name='FLOW_ACTION_PTYPE' value='17'/>
+        <enumerator name='FLOW_ACTION_PRIORITY' value='18'/>
+        <enumerator name='FLOW_ACTION_WAKE' value='19'/>
+        <enumerator name='FLOW_ACTION_QUEUE' value='20'/>
+        <enumerator name='FLOW_ACTION_SAMPLE' value='21'/>
+        <enumerator name='FLOW_ACTION_POLICE' value='22'/>
+        <enumerator name='FLOW_ACTION_CT' value='23'/>
+        <enumerator name='FLOW_ACTION_CT_METADATA' value='24'/>
+        <enumerator name='FLOW_ACTION_MPLS_PUSH' value='25'/>
+        <enumerator name='FLOW_ACTION_MPLS_POP' value='26'/>
+        <enumerator name='FLOW_ACTION_MPLS_MANGLE' value='27'/>
+        <enumerator name='FLOW_ACTION_GATE' value='28'/>
+        <enumerator name='FLOW_ACTION_PPPOE_PUSH' value='29'/>
+        <enumerator name='NUM_FLOW_ACTIONS' value='30'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='94dd3300'>
+        <parameter type-id='18881289'/>
+        <return type-id='b1a0a119'/>
+      </function-type>
+      <class-decl name='iio_chan_spec_ext_info' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/iio/iio.h' line='44' column='1' id='94e99e8e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/iio/iio.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='shared' type-id='89575fbb' visibility='default' filepath='include/linux/iio/iio.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='read' type-id='0c7d3068' visibility='default' filepath='include/linux/iio/iio.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='write' type-id='70f0fa74' visibility='default' filepath='include/linux/iio/iio.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='private' type-id='e475ab95' visibility='default' filepath='include/linux/iio/iio.h' line='52' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='pci_epc_irq_type' filepath='include/linux/pci-epc.h' line='22' column='1' id='94eb9e95'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PCI_EPC_IRQ_UNKNOWN' value='0'/>
+        <enumerator name='PCI_EPC_IRQ_LEGACY' value='1'/>
+        <enumerator name='PCI_EPC_IRQ_MSI' value='2'/>
+        <enumerator name='PCI_EPC_IRQ_MSIX' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='ee54f9d4' size-in-bits='64' id='94f1df82'/>
+      <pointer-type-def type-id='f7d60a45' size-in-bits='64' id='94f26cbd'/>
+      <pointer-type-def type-id='aa2a8a9e' size-in-bits='64' id='94f8595c'/>
+      <function-type size-in-bits='64' id='9502627f'>
+        <parameter type-id='ca9354d1'/>
+        <parameter type-id='4e532009'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='459f31a7' size-in-bits='512' id='9509a9de'>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='950dfd7a'>
+        <parameter type-id='e84b031a'/>
+        <parameter type-id='1c079e60'/>
+        <parameter type-id='68a2d05b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='vring_used_elem_t' type-id='f1f6cfe9' filepath='include/uapi/linux/virtio_ring.h' line='123' column='1' id='950eab2d'/>
+      <pointer-type-def type-id='37688d8e' size-in-bits='64' id='950eceb8'/>
+      <class-decl name='snd_soc_dapm_context' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/sound/soc-dapm.h' line='688' column='1' id='95201ae5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bias_level' type-id='f078c744' visibility='default' filepath='include/sound/soc-dapm.h' line='689' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='idle_bias_off' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-dapm.h' line='690' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33'>
+          <var-decl name='suspend_bias_off' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-dapm.h' line='692' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/sound/soc-dapm.h' line='694' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='component' type-id='807b7702' visibility='default' filepath='include/sound/soc-dapm.h' line='695' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='card' type-id='3059cd0b' visibility='default' filepath='include/sound/soc-dapm.h' line='696' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='target_bias_level' type-id='f078c744' visibility='default' filepath='include/sound/soc-dapm.h' line='699' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/sound/soc-dapm.h' line='700' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='path_sink_cache' type-id='27dc472b' visibility='default' filepath='include/sound/soc-dapm.h' line='702' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='path_source_cache' type-id='27dc472b' visibility='default' filepath='include/sound/soc-dapm.h' line='703' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='debugfs_dapm' type-id='27675065' visibility='default' filepath='include/sound/soc-dapm.h' line='706' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ca0a6184' size-in-bits='64' id='95208a5e'/>
+      <function-type size-in-bits='64' id='952318a7'>
+        <parameter type-id='7efbcaaf'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='bpf_iter_aux_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='1540' column='1' id='952798b4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='map' type-id='00ee50b8' visibility='default' filepath='include/linux/bpf.h' line='1541' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='48288128' size-in-bits='64' id='952cef4e'/>
+      <pointer-type-def type-id='2123ae44' size-in-bits='64' id='952f4d6e'/>
+      <pointer-type-def type-id='00e3a6d4' size-in-bits='64' id='95316552'/>
+      <pointer-type-def type-id='29964e7f' size-in-bits='64' id='95325033'/>
+      <class-decl name='uart_ops' size-in-bits='1600' is-struct='yes' visibility='default' filepath='include/linux/serial_core.h' line='39' column='1' id='95388a16'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tx_empty' type-id='d8d26684' visibility='default' filepath='include/linux/serial_core.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='set_mctrl' type-id='898b0c52' visibility='default' filepath='include/linux/serial_core.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='get_mctrl' type-id='d8d26684' visibility='default' filepath='include/linux/serial_core.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='stop_tx' type-id='ed415bf0' visibility='default' filepath='include/linux/serial_core.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='start_tx' type-id='ed415bf0' visibility='default' filepath='include/linux/serial_core.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='throttle' type-id='ed415bf0' visibility='default' filepath='include/linux/serial_core.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='unthrottle' type-id='ed415bf0' visibility='default' filepath='include/linux/serial_core.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='send_xchar' type-id='511c33f4' visibility='default' filepath='include/linux/serial_core.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='stop_rx' type-id='ed415bf0' visibility='default' filepath='include/linux/serial_core.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='enable_ms' type-id='ed415bf0' visibility='default' filepath='include/linux/serial_core.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='break_ctl' type-id='c6b7d75f' visibility='default' filepath='include/linux/serial_core.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='startup' type-id='45d07221' visibility='default' filepath='include/linux/serial_core.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='shutdown' type-id='ed415bf0' visibility='default' filepath='include/linux/serial_core.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='flush_buffer' type-id='ed415bf0' visibility='default' filepath='include/linux/serial_core.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='set_termios' type-id='97d53fc8' visibility='default' filepath='include/linux/serial_core.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='set_ldisc' type-id='92c1d524' visibility='default' filepath='include/linux/serial_core.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='pm' type-id='c805a6f8' visibility='default' filepath='include/linux/serial_core.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='type' type-id='df58a979' visibility='default' filepath='include/linux/serial_core.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='release_port' type-id='ed415bf0' visibility='default' filepath='include/linux/serial_core.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='request_port' type-id='45d07221' visibility='default' filepath='include/linux/serial_core.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='config_port' type-id='c6b7d75f' visibility='default' filepath='include/linux/serial_core.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='verify_port' type-id='6850d327' visibility='default' filepath='include/linux/serial_core.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='ioctl' type-id='34fdc91d' visibility='default' filepath='include/linux/serial_core.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/serial_core.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/serial_core.h' line='86' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ee076206' size-in-bits='64' id='953b12f8'/>
+      <pointer-type-def type-id='1fc04c6a' size-in-bits='64' id='954953c8'/>
+      <typedef-decl name='sigval_t' type-id='a094b870' filepath='include/uapi/asm-generic/siginfo.h' line='11' column='1' id='95506cfb'/>
+      <pointer-type-def type-id='469df90e' size-in-bits='64' id='95610bd4'/>
+      <pointer-type-def type-id='dd703408' size-in-bits='64' id='95625cb2'/>
+      <function-type size-in-bits='64' id='956881f1'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='66add68b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='6f351a96' size-in-bits='64' id='956abcd0'/>
+      <class-decl name='psi_group_cpu' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/psi_types.h' line='76' column='1' id='956e764e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='seq' type-id='e14c3b11' visibility='default' filepath='include/linux/psi_types.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='tasks' type-id='4d5a4f46' visibility='default' filepath='include/linux/psi_types.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='state_mask' type-id='19c2251e' visibility='default' filepath='include/linux/psi_types.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='times' type-id='1c69cda2' visibility='default' filepath='include/linux/psi_types.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='state_start' type-id='91ce1af9' visibility='default' filepath='include/linux/psi_types.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='times_prev' type-id='4a031818' visibility='default' filepath='include/linux/psi_types.h' line='97' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='bpf_func_state' is-struct='yes' visibility='default' is-declaration-only='yes' id='95762a08'/>
+      <pointer-type-def type-id='8029c9e0' size-in-bits='64' id='9582ad9a'/>
+      <typedef-decl name='u_int32_t' type-id='19c2251e' filepath='include/linux/types.h' line='97' column='1' id='9586cc7b'/>
+      <pointer-type-def type-id='2a0a5404' size-in-bits='64' id='9589d936'/>
+      <pointer-type-def type-id='6696ef79' size-in-bits='64' id='959ab461'/>
+      <pointer-type-def type-id='8e30e06f' size-in-bits='64' id='959f1c77'/>
+      <function-type size-in-bits='64' id='95abac74'>
+        <parameter type-id='e324928d'/>
+        <parameter type-id='af02a266'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='1c4048ae' const='yes' id='95be97f3'/>
+      <qualified-type-def type-id='1740bab9' const='yes' id='95d0d4e8'/>
+      <enum-decl name='nl80211_bss_scan_width' filepath='include/uapi/linux/nl80211.h' line='4973' column='1' id='95d46034'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NL80211_BSS_CHAN_WIDTH_20' value='0'/>
+        <enumerator name='NL80211_BSS_CHAN_WIDTH_10' value='1'/>
+        <enumerator name='NL80211_BSS_CHAN_WIDTH_5' value='2'/>
+        <enumerator name='NL80211_BSS_CHAN_WIDTH_1' value='3'/>
+        <enumerator name='NL80211_BSS_CHAN_WIDTH_2' value='4'/>
+      </enum-decl>
+      <enum-decl name='pinctrl_map_type' filepath='include/linux/pinctrl/machine.h' line='18' column='1' id='95da6d1c'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PIN_MAP_TYPE_INVALID' value='0'/>
+        <enumerator name='PIN_MAP_TYPE_DUMMY_STATE' value='1'/>
+        <enumerator name='PIN_MAP_TYPE_MUX_GROUP' value='2'/>
+        <enumerator name='PIN_MAP_TYPE_CONFIGS_PIN' value='3'/>
+        <enumerator name='PIN_MAP_TYPE_CONFIGS_GROUP' value='4'/>
+      </enum-decl>
+      <pointer-type-def type-id='67eab439' size-in-bits='64' id='95dc69d1'/>
+      <class-decl name='ff_envelope' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/input.h' line='333' column='1' id='95dfde06'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='attack_length' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='attack_level' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='fade_length' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='fade_level' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='337' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ee0d5fa1' size-in-bits='64' id='95e43059'/>
+      <function-type size-in-bits='64' id='95e62b18'>
+        <parameter type-id='ccf3b302'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='21767af6' size-in-bits='64' id='95e6deec'/>
+      <type-decl name='int' size-in-bits='32' id='95e97e5e'/>
+      <class-decl name='wpan_dev_header_ops' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg802154.h' line='315' column='1' id='95fcbc94'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='create' type-id='5afbd3c3' visibility='default' filepath='include/net/cfg802154.h' line='320' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='vhost_poll' size-in-bits='832' is-struct='yes' visibility='default' filepath='drivers/vhost/vhost.h' line='30' column='1' id='95fe2b61'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='table' type-id='f9b2d12e' visibility='default' filepath='drivers/vhost/vhost.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='wqh' type-id='03d48e96' visibility='default' filepath='drivers/vhost/vhost.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='wait' type-id='fe794aa9' visibility='default' filepath='drivers/vhost/vhost.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='work' type-id='423f6b79' visibility='default' filepath='drivers/vhost/vhost.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='mask' type-id='8f254b08' visibility='default' filepath='drivers/vhost/vhost.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='dev' type-id='db1a91a3' visibility='default' filepath='drivers/vhost/vhost.h' line='36' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='960bee7e'>
+        <parameter type-id='ccc13476'/>
+        <parameter type-id='30864cdc'/>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='354f7eb9'/>
+        <parameter type-id='1dc6a898'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='wb_domain' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/linux/writeback.h' line='129' column='1' id='960bf1fd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/writeback.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='completions' type-id='7dc82ec2' visibility='default' filepath='include/linux/writeback.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='period_timer' type-id='abe41e67' visibility='default' filepath='include/linux/writeback.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='period_time' type-id='7359adad' visibility='default' filepath='include/linux/writeback.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='dirty_limit_tstamp' type-id='7359adad' visibility='default' filepath='include/linux/writeback.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='dirty_limit' type-id='7359adad' visibility='default' filepath='include/linux/writeback.h' line='164' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='960d41bf'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='a6265381'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='70a927ce' size-in-bits='64' id='9615a2e0'/>
+      <function-type size-in-bits='64' id='96217cb7'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='ae4f2ad5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9ed97fed' size-in-bits='64' id='962405e1'/>
+      <array-type-def dimensions='1' type-id='d6b43ca8' size-in-bits='1152' id='9625c091'>
+        <subrange length='12' type-id='7ff19f0f' id='84827bdc'/>
+      </array-type-def>
+      <pointer-type-def type-id='24a174c6' size-in-bits='64' id='962b0f84'/>
+      <function-type size-in-bits='64' id='962c09bb'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='99c70b49'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a2e29ca3' size-in-bits='64' id='9630d76f'/>
+      <class-decl name='cec_event' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/uapi/linux/cec.h' line='462' column='1' id='9638c87d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ts' type-id='d3130597' visibility='default' filepath='include/uapi/linux/cec.h' line='463' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='event' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/cec.h' line='464' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/cec.h' line='465' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='' type-id='ac5ab5eb' visibility='default' filepath='include/uapi/linux/cec.h' line='466' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c34e46f8' size-in-bits='64' id='9638d26e'/>
+      <class-decl name='genpd_onecell_data' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/pm_domain.h' line='310' column='1' id='964819d7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='domains' type-id='464f84a9' visibility='default' filepath='include/linux/pm_domain.h' line='311' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_domains' type-id='f0981eeb' visibility='default' filepath='include/linux/pm_domain.h' line='312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='xlate' type-id='5b046932' visibility='default' filepath='include/linux/pm_domain.h' line='313' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8bcde2dc' size-in-bits='64' id='964d2eb6'/>
+      <function-type size-in-bits='64' id='965023eb'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='fa058983'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='96650caf'>
+        <parameter type-id='60219102'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='96658a93'>
+        <parameter type-id='27675065'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='27675065'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='9666e837'>
+        <parameter type-id='e884daa5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='v4l2_event' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2420' column='1' id='967c1c06'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='u' type-id='ac5ab606' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='pending' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2430' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='sequence' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2431' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='timestamp' type-id='5c155a71' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2433' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='reserved' type-id='7f84eb57' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2438' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='31bf052e' size-in-bits='64' id='967c9384'/>
+      <pointer-type-def type-id='9f5a4f22' size-in-bits='64' id='9682fd8c'/>
+      <pointer-type-def type-id='699ab992' size-in-bits='64' id='96846df4'/>
+      <pointer-type-def type-id='56e9279b' size-in-bits='64' id='9689f21b'/>
+      <class-decl name='typec_altmode_desc' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/usb/typec.h' line='123' column='1' id='968d5b5b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='svid' type-id='1dc6a898' visibility='default' filepath='include/linux/usb/typec.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='mode' type-id='f9b06939' visibility='default' filepath='include/linux/usb/typec.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='vdo' type-id='19c2251e' visibility='default' filepath='include/linux/usb/typec.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='roles' type-id='89aae82e' visibility='default' filepath='include/linux/usb/typec.h' line='128' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f3cb01e4' size-in-bits='64' id='9693d74a'/>
+      <pointer-type-def type-id='78199102' size-in-bits='64' id='96948294'/>
+      <pointer-type-def type-id='c345a11a' size-in-bits='64' id='969cbe90'/>
+      <function-type size-in-bits='64' id='969fc316'>
+        <parameter type-id='cfff5953'/>
+        <parameter type-id='03054cfa'/>
+        <parameter type-id='9b7c55ef'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='4' type-id='8f048e17' size-in-bits='8448' id='96a07b89'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+        <subrange length='11' type-id='7ff19f0f' id='847bc017'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='96a19766'>
+        <parameter type-id='fc4f83c1'/>
+        <parameter type-id='25e60cb2'/>
+        <parameter type-id='5c744d74'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='3eb7c31c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='ed00f788' size-in-bits='64' id='96ae6b2e'/>
+      <pointer-type-def type-id='e7de3d97' size-in-bits='64' id='96afd393'/>
+      <pointer-type-def type-id='d9fc42c3' size-in-bits='64' id='96b07343'/>
+      <class-decl name='seqDef_s' size-in-bits='64' is-struct='yes' visibility='default' filepath='lib/zstd/zstd_internal.h' line='182' column='1' id='96b3b0dd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='offset' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='litLength' type-id='018f3e38' visibility='default' filepath='lib/zstd/zstd_internal.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='matchLength' type-id='018f3e38' visibility='default' filepath='lib/zstd/zstd_internal.h' line='185' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='module_notes_attrs' size-in-bits='128' is-struct='yes' visibility='default' filepath='kernel/module.c' line='1609' column='1' id='96b6b914'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dir' type-id='d30bdc51' visibility='default' filepath='kernel/module.c' line='1610' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='notes' type-id='f0981eeb' visibility='default' filepath='kernel/module.c' line='1611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='attrs' type-id='7cfae8e1' visibility='default' filepath='kernel/module.c' line='1612' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='257e5168' size-in-bits='64' id='96b6fff2'/>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='1088' id='96b80745'>
+        <subrange length='17' type-id='7ff19f0f' id='888ad0ed'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='96bb51fa'>
+        <parameter type-id='42c8f564'/>
+        <return type-id='7e666abe'/>
+      </function-type>
+      <function-type size-in-bits='64' id='96bf0a3b'>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='3dad1a48'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='96c5d5bd'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='5005c28c'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='binder_context' size-in-bits='576' is-struct='yes' visibility='default' filepath='drivers/android/binder_internal.h' line='18' column='1' id='96c81365'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='binder_context_mgr_node' type-id='e6eda12c' visibility='default' filepath='drivers/android/binder_internal.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='context_mgr_node_lock' type-id='925167dc' visibility='default' filepath='drivers/android/binder_internal.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='binder_context_mgr_uid' type-id='d80b72e6' visibility='default' filepath='drivers/android/binder_internal.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/android/binder_internal.h' line='22' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7e64e4b4' size-in-bits='64' id='96d3e4ba'/>
+      <qualified-type-def type-id='3eb7c31c' const='yes' id='96d7cfec'/>
+      <qualified-type-def type-id='b6ab8849' const='yes' id='96d7efea'/>
+      <class-decl name='raw_notifier_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/notifier.h' line='70' column='1' id='96e74f5f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='head' type-id='d504f73d' visibility='default' filepath='include/linux/notifier.h' line='71' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='96ee24a5'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f8292115' size-in-bits='64' id='96efb615'/>
+      <function-type size-in-bits='64' id='96fe8392'>
+        <parameter type-id='33dc3b1b'/>
+        <parameter type-id='10593a44'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='604ba0d1' size-in-bits='64' id='970cb2d9'/>
+      <class-decl name='drm_object_properties' size-in-bits='8256' is-struct='yes' visibility='default' filepath='include/drm/drm_mode_object.h' line='67' column='1' id='970d3828'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_mode_object.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='properties' type-id='53f04f9e' visibility='default' filepath='include/drm/drm_mode_object.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='values' type-id='ed4ceada' visibility='default' filepath='include/drm/drm_mode_object.h' line='102' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='lock_manager_operations' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1091' column='1' id='970ecd31'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lm_get_owner' type-id='d6e9f1fa' visibility='default' filepath='include/linux/fs.h' line='1092' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='lm_put_owner' type-id='9615a2e0' visibility='default' filepath='include/linux/fs.h' line='1093' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lm_notify' type-id='c9e2bc02' visibility='default' filepath='include/linux/fs.h' line='1094' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='lm_grant' type-id='bdada41a' visibility='default' filepath='include/linux/fs.h' line='1095' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='lm_break' type-id='5fb34715' visibility='default' filepath='include/linux/fs.h' line='1096' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='lm_change' type-id='4817356d' visibility='default' filepath='include/linux/fs.h' line='1097' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='lm_setup' type-id='628f3294' visibility='default' filepath='include/linux/fs.h' line='1098' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='lm_breaker_owns_lease' type-id='5fb34715' visibility='default' filepath='include/linux/fs.h' line='1099' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1102' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='ee54f9d4' const='yes' id='970fe03f'/>
+      <qualified-type-def type-id='fe007c02' const='yes' id='9712f929'/>
+      <function-type size-in-bits='64' id='971452b1'>
+        <parameter type-id='9ad862e7'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <function-type size-in-bits='64' id='971a52d0'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='26ea5d4c'/>
+        <parameter type-id='9c313c2d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a373c61d' size-in-bits='64' id='971a91c1'/>
+      <pointer-type-def type-id='e03e0a67' size-in-bits='64' id='971e404f'/>
+      <function-type size-in-bits='64' id='972398b7'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='a10cc675'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='l2tp_session' size-in-bits='2624' is-struct='yes' visibility='default' filepath='net/l2tp/l2tp_core.h' line='70' column='1' id='9726f99c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='magic' type-id='95e97e5e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dead' type-id='bd54fe1a' visibility='default' filepath='net/l2tp/l2tp_core.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tunnel' type-id='2d83a1b8' visibility='default' filepath='net/l2tp/l2tp_core.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='session_id' type-id='19c2251e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='peer_session_id' type-id='19c2251e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='cookie' type-id='d2f7b56a' visibility='default' filepath='net/l2tp/l2tp_core.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='cookie_len' type-id='95e97e5e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='peer_cookie' type-id='d2f7b56a' visibility='default' filepath='net/l2tp/l2tp_core.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='peer_cookie_len' type-id='95e97e5e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='l2specific_type' type-id='1dc6a898' visibility='default' filepath='net/l2tp/l2tp_core.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='464'>
+          <var-decl name='hdr_len' type-id='1dc6a898' visibility='default' filepath='net/l2tp/l2tp_core.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='nr' type-id='19c2251e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ns' type-id='19c2251e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='reorder_q' type-id='e61c85d0' visibility='default' filepath='net/l2tp/l2tp_core.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='nr_max' type-id='19c2251e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='nr_window_size' type-id='19c2251e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='nr_oos' type-id='19c2251e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='nr_oos_count' type-id='95e97e5e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='nr_oos_count_max' type-id='95e97e5e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='hlist' type-id='03a4a074' visibility='default' filepath='net/l2tp/l2tp_core.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='ref_count' type-id='64615833' visibility='default' filepath='net/l2tp/l2tp_core.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='net/l2tp/l2tp_core.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='ifname' type-id='ac1fa8c0' visibility='default' filepath='net/l2tp/l2tp_core.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1504'>
+          <var-decl name='recv_seq' type-id='f0981eeb' visibility='default' filepath='net/l2tp/l2tp_core.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1505'>
+          <var-decl name='send_seq' type-id='f0981eeb' visibility='default' filepath='net/l2tp/l2tp_core.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1506'>
+          <var-decl name='lns_mode' type-id='f0981eeb' visibility='default' filepath='net/l2tp/l2tp_core.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='reorder_timeout' type-id='95e97e5e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='reorder_skip' type-id='95e97e5e' visibility='default' filepath='net/l2tp/l2tp_core.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='pwtype' type-id='748fba12' visibility='default' filepath='net/l2tp/l2tp_core.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='stats' type-id='33e678c3' visibility='default' filepath='net/l2tp/l2tp_core.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='global_hlist' type-id='03a4a074' visibility='default' filepath='net/l2tp/l2tp_core.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='recv_skb' type-id='7d671c0a' visibility='default' filepath='net/l2tp/l2tp_core.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='session_close' type-id='901b6973' visibility='default' filepath='net/l2tp/l2tp_core.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='show' type-id='6ba28d1c' visibility='default' filepath='net/l2tp/l2tp_core.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='priv' type-id='29c3368c' visibility='default' filepath='net/l2tp/l2tp_core.h' line='129' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='9728e02a'>
+        <parameter type-id='c2b4b27b'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='572fbdca'/>
+      </function-type>
+      <class-decl name='hdmi_spd_infoframe' size-in-bits='288' is-struct='yes' visibility='default' filepath='include/linux/hdmi.h' line='243' column='1' id='9729258f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='c573b339' visibility='default' filepath='include/linux/hdmi.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='version' type-id='002ac4a6' visibility='default' filepath='include/linux/hdmi.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='length' type-id='002ac4a6' visibility='default' filepath='include/linux/hdmi.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='vendor' type-id='8e100159' visibility='default' filepath='include/linux/hdmi.h' line='247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='product' type-id='ac1fa8c0' visibility='default' filepath='include/linux/hdmi.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='sdi' type-id='163c5ead' visibility='default' filepath='include/linux/hdmi.h' line='249' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='xfrm_type' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/xfrm.h' line='388' column='1' id='972f40bf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/net/xfrm.h' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='proto' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='init_state' type-id='0642cb3c' visibility='default' filepath='include/net/xfrm.h' line='397' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='destructor' type-id='d507826b' visibility='default' filepath='include/net/xfrm.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='input' type-id='5e185d4c' visibility='default' filepath='include/net/xfrm.h' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='output' type-id='5e185d4c' visibility='default' filepath='include/net/xfrm.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='reject' type-id='ae9790c6' visibility='default' filepath='include/net/xfrm.h' line='401' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='font_desc' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/font.h' line='16' column='1' id='972f7560'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='idx' type-id='95e97e5e' visibility='default' filepath='include/linux/font.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/font.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='width' type-id='f0981eeb' visibility='default' filepath='include/linux/font.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='height' type-id='f0981eeb' visibility='default' filepath='include/linux/font.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='charcount' type-id='f0981eeb' visibility='default' filepath='include/linux/font.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/font.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='pref' type-id='95e97e5e' visibility='default' filepath='include/linux/font.h' line='22' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='regulator_config' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/regulator/driver.h' line='450' column='1' id='973b98af'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/regulator/driver.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='init_data' type-id='103dcfdf' visibility='default' filepath='include/linux/regulator/driver.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/regulator/driver.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='of_node' type-id='9a537bbe' visibility='default' filepath='include/linux/regulator/driver.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='regmap' type-id='29af9a71' visibility='default' filepath='include/linux/regulator/driver.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ena_gpiod' type-id='26760480' visibility='default' filepath='include/linux/regulator/driver.h' line='457' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ulpi' is-struct='yes' visibility='default' is-declaration-only='yes' id='973f0727'/>
+      <function-type size-in-bits='64' id='97471c35'>
+        <parameter type-id='4db02c58'/>
+        <parameter type-id='26ea5d4c'/>
+        <parameter type-id='9c313c2d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='97488913'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='4780e252'/>
+        <parameter type-id='00e2a7ce'/>
+        <parameter type-id='26a90f95'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4115bed7' size-in-bits='64' id='974de7b3'/>
+      <function-type size-in-bits='64' id='9754e8aa'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='f9f4b16f'/>
+        <return type-id='f9f4b16f'/>
+      </function-type>
+      <pointer-type-def type-id='b718d3f9' size-in-bits='64' id='9762ede1'/>
+      <enum-decl name='dwc3_link_state' filepath='drivers/usb/dwc3/core.h' line='787' column='1' id='9775e40e'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DWC3_LINK_STATE_U0' value='0'/>
+        <enumerator name='DWC3_LINK_STATE_U1' value='1'/>
+        <enumerator name='DWC3_LINK_STATE_U2' value='2'/>
+        <enumerator name='DWC3_LINK_STATE_U3' value='3'/>
+        <enumerator name='DWC3_LINK_STATE_SS_DIS' value='4'/>
+        <enumerator name='DWC3_LINK_STATE_RX_DET' value='5'/>
+        <enumerator name='DWC3_LINK_STATE_SS_INACT' value='6'/>
+        <enumerator name='DWC3_LINK_STATE_POLL' value='7'/>
+        <enumerator name='DWC3_LINK_STATE_RECOV' value='8'/>
+        <enumerator name='DWC3_LINK_STATE_HRESET' value='9'/>
+        <enumerator name='DWC3_LINK_STATE_CMPLY' value='10'/>
+        <enumerator name='DWC3_LINK_STATE_LPBK' value='11'/>
+        <enumerator name='DWC3_LINK_STATE_RESET' value='14'/>
+        <enumerator name='DWC3_LINK_STATE_RESUME' value='15'/>
+        <enumerator name='DWC3_LINK_STATE_MASK' value='15'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='97776d30'>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='bcb69272' size-in-bits='64' id='9778250c'/>
+      <pointer-type-def type-id='d4984c46' size-in-bits='64' id='97786120'/>
+      <pointer-type-def type-id='ee96392b' size-in-bits='64' id='977bbc93'/>
+      <pointer-type-def type-id='2e6f3990' size-in-bits='64' id='97851996'/>
+      <class-decl name='capture_control' size-in-bits='128' is-struct='yes' visibility='default' filepath='mm/internal.h' line='271' column='1' id='978e8e27'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cc' type-id='cdea3372' visibility='default' filepath='mm/internal.h' line='272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='page' type-id='02f11ed4' visibility='default' filepath='mm/internal.h' line='273' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='80' id='979253d9'>
+        <subrange length='10' type-id='7ff19f0f' id='487da03a'/>
+      </array-type-def>
+      <class-decl name='fib6_nh' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/net/ip6_fib.h' line='157' column='1' id='979d5bbb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nh_common' type-id='e1f89457' visibility='default' filepath='include/net/ip6_fib.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='last_probe' type-id='7359adad' visibility='default' filepath='include/net/ip6_fib.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='rt6i_pcpu' type-id='1ead5d78' visibility='default' filepath='include/net/ip6_fib.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='rt6i_exception_bucket' type-id='cc9f99b2' visibility='default' filepath='include/net/ip6_fib.h' line='165' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8b9912bb' size-in-bits='64' id='97a03e57'/>
+      <enum-decl name='v4l2_mbus_frame_desc_flags' filepath='include/media/v4l2-subdev.h' line='325' column='1' id='97a0eabc'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='V4L2_MBUS_FRAME_DESC_FL_LEN_MAX' value='1'/>
+        <enumerator name='V4L2_MBUS_FRAME_DESC_FL_BLOB' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='14a454b5' size-in-bits='64' id='97a14109'/>
+      <class-decl name='cpuidle_state' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/cpuidle.h' line='49' column='1' id='97aa083d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='ac1fa8c0' visibility='default' filepath='include/linux/cpuidle.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='desc' type-id='16dc656a' visibility='default' filepath='include/linux/cpuidle.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='exit_latency_ns' type-id='9b7c55ef' visibility='default' filepath='include/linux/cpuidle.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='target_residency_ns' type-id='9b7c55ef' visibility='default' filepath='include/linux/cpuidle.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/cpuidle.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='exit_latency' type-id='f0981eeb' visibility='default' filepath='include/linux/cpuidle.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='power_usage' type-id='95e97e5e' visibility='default' filepath='include/linux/cpuidle.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='target_residency' type-id='f0981eeb' visibility='default' filepath='include/linux/cpuidle.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='enter' type-id='738b5bc2' visibility='default' filepath='include/linux/cpuidle.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='enter_dead' type-id='0ba194b9' visibility='default' filepath='include/linux/cpuidle.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='enter_s2idle' type-id='738b5bc2' visibility='default' filepath='include/linux/cpuidle.h' line='74' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_output' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1702' column='1' id='97abd73b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1703' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='name' type-id='7e67d89d' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1704' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1705' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='audioset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1706' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='modulator' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1707' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='std' type-id='692d176e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1708' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='capabilities' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1709' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='reserved' type-id='3fa05d14' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1710' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f05eea43' size-in-bits='64' id='97aff453'/>
+      <pointer-type-def type-id='4925ee5b' size-in-bits='64' id='97b65be3'/>
+      <pointer-type-def type-id='73a3fbc3' size-in-bits='64' id='97c3bf57'/>
+      <function-type size-in-bits='64' id='97ca9b12'>
+        <parameter type-id='0b8718c0'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='97776d30' size-in-bits='64' id='97cb4c9a'/>
+      <pointer-type-def type-id='b1b5c3fe' size-in-bits='64' id='97d53fc8'/>
+      <function-type size-in-bits='64' id='97db9237'>
+        <parameter type-id='a77efac3'/>
+        <parameter type-id='bcfe6314'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='97de3296'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='8c46546a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='nf_conntrack_tuple_mask' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='75' column='1' id='97e29523'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='src' type-id='e7f44057' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='79' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='97e3fb6c'>
+        <parameter type-id='7ac48c21'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='e8a41089'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='snd_codec' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/uapi/sound/compress_params.h' line='435' column='1' id='97e76825'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ch_in' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ch_out' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='438' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='sample_rate' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='439' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bit_rate' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='440' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='rate_control' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='profile' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='442' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='level' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ch_mode' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='format' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='align' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='options' type-id='c998b5fb' visibility='default' filepath='include/uapi/sound/compress_params.h' line='447' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='reserved' type-id='3fa05d14' visibility='default' filepath='include/uapi/sound/compress_params.h' line='448' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a353e32f' size-in-bits='64' id='97eb1967'/>
+      <class-decl name='v4l2_sliced_vbi_cap' size-in-bits='928' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2179' column='1' id='97ed0ee7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='service_set' type-id='d315442e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='service_lines' type-id='025daa6d' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='reserved' type-id='3fa05d14' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2187' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2fe02b6b' size-in-bits='64' id='97ee904f'/>
+      <qualified-type-def type-id='b16bfae3' const='yes' id='97f0888c'/>
+      <function-type size-in-bits='64' id='97f95e6a'>
+        <parameter type-id='1c475548'/>
+        <parameter type-id='0187da1b'/>
+        <parameter type-id='d8e6b335'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='45257a94' size-in-bits='64' id='9800391a'/>
+      <enum-decl name='pr_type' filepath='include/uapi/linux/pr.h' line='7' column='1' id='98031623'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PR_WRITE_EXCLUSIVE' value='1'/>
+        <enumerator name='PR_EXCLUSIVE_ACCESS' value='2'/>
+        <enumerator name='PR_WRITE_EXCLUSIVE_REG_ONLY' value='3'/>
+        <enumerator name='PR_EXCLUSIVE_ACCESS_REG_ONLY' value='4'/>
+        <enumerator name='PR_WRITE_EXCLUSIVE_ALL_REGS' value='5'/>
+        <enumerator name='PR_EXCLUSIVE_ACCESS_ALL_REGS' value='6'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='9803cec6'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='nf_conntrack_tuple' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='37' column='1' id='9805d802'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='src' type-id='bd087e00' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='dst' type-id='e7f44053' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='72' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bd667b9e' size-in-bits='64' id='98073610'/>
+      <class-decl name='iw_event' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/wireless.h' line='1080' column='1' id='980b03f6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='len' type-id='d315442e' visibility='default' filepath='include/uapi/linux/wireless.h' line='1081' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='cmd' type-id='d315442e' visibility='default' filepath='include/uapi/linux/wireless.h' line='1082' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='u' type-id='ed626d0d' visibility='default' filepath='include/uapi/linux/wireless.h' line='1083' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f5dcfad3' size-in-bits='64' id='980c37b3'/>
+      <pointer-type-def type-id='3f646ae7' size-in-bits='64' id='981420b7'/>
+      <qualified-type-def type-id='972f40bf' const='yes' id='9819baf4'/>
+      <pointer-type-def type-id='9df0e286' size-in-bits='64' id='981b2780'/>
+      <pointer-type-def type-id='962c09bb' size-in-bits='64' id='9822fe67'/>
+      <pointer-type-def type-id='e3a1e7d2' size-in-bits='64' id='98252144'/>
+      <class-decl name='thermal_instance' size-in-bits='1792' is-struct='yes' visibility='default' filepath='drivers/thermal/thermal_core.h' line='97' column='1' id='98294d42'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='drivers/thermal/thermal_core.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='name' type-id='664ac0b7' visibility='default' filepath='drivers/thermal/thermal_core.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tz' type-id='404b1300' visibility='default' filepath='drivers/thermal/thermal_core.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='cdev' type-id='2feec21f' visibility='default' filepath='drivers/thermal/thermal_core.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='trip' type-id='95e97e5e' visibility='default' filepath='drivers/thermal/thermal_core.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='initialized' type-id='b50a4934' visibility='default' filepath='drivers/thermal/thermal_core.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='upper' type-id='7359adad' visibility='default' filepath='drivers/thermal/thermal_core.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='lower' type-id='7359adad' visibility='default' filepath='drivers/thermal/thermal_core.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='target' type-id='7359adad' visibility='default' filepath='drivers/thermal/thermal_core.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='attr_name' type-id='664ac0b7' visibility='default' filepath='drivers/thermal/thermal_core.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='attr' type-id='dbf3947c' visibility='default' filepath='drivers/thermal/thermal_core.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='weight_attr_name' type-id='664ac0b7' visibility='default' filepath='drivers/thermal/thermal_core.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='weight_attr' type-id='dbf3947c' visibility='default' filepath='drivers/thermal/thermal_core.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='tz_node' type-id='72f469ec' visibility='default' filepath='drivers/thermal/thermal_core.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='cdev_node' type-id='72f469ec' visibility='default' filepath='drivers/thermal/thermal_core.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='weight' type-id='f0981eeb' visibility='default' filepath='drivers/thermal/thermal_core.h' line='113' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_info_buffer' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/sound/info.h' line='16' column='1' id='982f66c8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='buffer' type-id='26a90f95' visibility='default' filepath='include/sound/info.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='curr' type-id='f0981eeb' visibility='default' filepath='include/sound/info.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='size' type-id='f0981eeb' visibility='default' filepath='include/sound/info.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='len' type-id='f0981eeb' visibility='default' filepath='include/sound/info.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='stop' type-id='95e97e5e' visibility='default' filepath='include/sound/info.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='error' type-id='95e97e5e' visibility='default' filepath='include/sound/info.h' line='22' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='92afe5f3' size-in-bits='64' id='982f8df3'/>
+      <class-decl name='fsg_dev' size-in-bits='2112' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='290' column='1' id='9832842b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='function' type-id='d6a54726' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='gadget' type-id='49a58c0c' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='common' type-id='8f32e025' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='interface_number' type-id='1dc6a898' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1872'>
+          <var-decl name='bulk_in_enabled' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1873'>
+          <var-decl name='bulk_out_enabled' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='atomic_bitflags' type-id='7359adad' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='bulk_in' type-id='63a08bf7' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='bulk_out' type-id='63a08bf7' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='304' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='98336dd9'>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <class-decl name='detailed_data_string' size-in-bits='104' is-struct='yes' visibility='default' filepath='include/drm/drm_edid.h' line='90' column='1' id='9839ad2e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='str' type-id='097d53a4' visibility='default' filepath='include/drm/drm_edid.h' line='91' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='983b8510'>
+        <parameter type-id='5dbfcbb1'/>
+        <return type-id='f9b06939'/>
+      </function-type>
+      <class-decl name='macsec_context' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/net/macsec.h' line='233' column='1' id='983c2c09'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab5c4' visibility='default' filepath='include/net/macsec.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='offload' type-id='5a305656' visibility='default' filepath='include/net/macsec.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='secy' type-id='31859990' visibility='default' filepath='include/net/macsec.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rx_sc' type-id='ec973d27' visibility='default' filepath='include/net/macsec.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='sa' type-id='e7f43f99' visibility='default' filepath='include/net/macsec.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='stats' type-id='ac5ab5c5' visibility='default' filepath='include/net/macsec.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='prepare' type-id='f9b06939' visibility='default' filepath='include/net/macsec.h' line='258' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='98408d8f'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='0081e2ad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='drm_client_funcs' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/drm/drm_client.h' line='25' column='1' id='9840934c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/drm/drm_client.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='unregister' type-id='18e3d2c7' visibility='default' filepath='include/drm/drm_client.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='restore' type-id='c6e1b58c' visibility='default' filepath='include/drm/drm_client.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hotplug' type-id='c6e1b58c' visibility='default' filepath='include/drm/drm_client.h' line='65' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='bucket_table' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/rhashtable.h' line='76' column='1' id='984972f4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='f0981eeb' visibility='default' filepath='include/linux/rhashtable.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='nest' type-id='f0981eeb' visibility='default' filepath='include/linux/rhashtable.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hash_rnd' type-id='19c2251e' visibility='default' filepath='include/linux/rhashtable.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='walkers' type-id='72f469ec' visibility='default' filepath='include/linux/rhashtable.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/rhashtable.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='future_tbl' type-id='35e7a722' visibility='default' filepath='include/linux/rhashtable.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='dep_map' type-id='d34a605e' visibility='default' filepath='include/linux/rhashtable.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='buckets' type-id='7c792e5e' visibility='default' filepath='include/linux/rhashtable.h' line='87' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2d770943' size-in-bits='64' id='984ab777'/>
+      <function-type size-in-bits='64' id='984b30c5'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='af233abc'/>
+        <parameter type-id='de4fef50'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='984b9756'>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='c1873808'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ipc_ids' size-in-bits='2176' is-struct='yes' visibility='default' filepath='include/linux/ipc_namespace.h' line='16' column='1' id='98553e10'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='in_use' type-id='95e97e5e' visibility='default' filepath='include/linux/ipc_namespace.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='seq' type-id='8efea9e5' visibility='default' filepath='include/linux/ipc_namespace.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rwsem' type-id='f19fdb93' visibility='default' filepath='include/linux/ipc_namespace.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ipcs_idr' type-id='37ce495e' visibility='default' filepath='include/linux/ipc_namespace.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='max_idx' type-id='95e97e5e' visibility='default' filepath='include/linux/ipc_namespace.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='last_idx' type-id='95e97e5e' visibility='default' filepath='include/linux/ipc_namespace.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='key_ht' type-id='9e095f93' visibility='default' filepath='include/linux/ipc_namespace.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_event' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/drm/drm.h' line='1124' column='1' id='9857a465'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm.h' line='1125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='length' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm.h' line='1126' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='f0981eeb' size-in-bits='49152' id='985ad846'>
+        <subrange length='1536' type-id='7ff19f0f' id='3ec7c3c4'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='98617d6e'>
+        <parameter type-id='fb55efa1'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='f3aba577' size-in-bits='64' id='98671e4f'/>
+      <class-decl name='ir_raw_event_ctrl' size-in-bits='34048' is-struct='yes' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='48' column='1' id='986a13e4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='thread' type-id='f23e2572' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='kfifo' type-id='e7f43fbb' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33152'>
+          <var-decl name='last_event' type-id='fbc017ef' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33216'>
+          <var-decl name='dev' type-id='75ae4804' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33280'>
+          <var-decl name='edge_spinlock' type-id='fb4018a0' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33344'>
+          <var-decl name='edge_handle' type-id='abe41e67' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33792'>
+          <var-decl name='prev_ev' type-id='39486498' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33856'>
+          <var-decl name='this_ev' type-id='39486498' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33920'>
+          <var-decl name='bpf_sample' type-id='19c2251e' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33984'>
+          <var-decl name='progs' type-id='380c7edc' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='65' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='power_supply' size-in-bits='10176' is-struct='yes' visibility='default' filepath='include/linux/power_supply.h' line='284' column='1' id='98749268'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='desc' type-id='cb9cd99f' visibility='default' filepath='include/linux/power_supply.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='supplied_to' type-id='9b23c9ad' visibility='default' filepath='include/linux/power_supply.h' line='287' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='num_supplicants' type-id='b59d7dce' visibility='default' filepath='include/linux/power_supply.h' line='288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='supplied_from' type-id='9b23c9ad' visibility='default' filepath='include/linux/power_supply.h' line='290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='num_supplies' type-id='b59d7dce' visibility='default' filepath='include/linux/power_supply.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='of_node' type-id='9a537bbe' visibility='default' filepath='include/linux/power_supply.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='drv_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/power_supply.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/power_supply.h' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='changed_work' type-id='ef9025d0' visibility='default' filepath='include/linux/power_supply.h' line='299' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='deferred_register_work' type-id='5ad6e0ef' visibility='default' filepath='include/linux/power_supply.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9216'>
+          <var-decl name='changed_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/power_supply.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9248'>
+          <var-decl name='changed' type-id='b50a4934' visibility='default' filepath='include/linux/power_supply.h' line='302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9256'>
+          <var-decl name='initialized' type-id='b50a4934' visibility='default' filepath='include/linux/power_supply.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9264'>
+          <var-decl name='removing' type-id='b50a4934' visibility='default' filepath='include/linux/power_supply.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9280'>
+          <var-decl name='use_cnt' type-id='49178f86' visibility='default' filepath='include/linux/power_supply.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='tzd' type-id='404b1300' visibility='default' filepath='include/linux/power_supply.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9408'>
+          <var-decl name='tcd' type-id='2feec21f' visibility='default' filepath='include/linux/power_supply.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9472'>
+          <var-decl name='charging_full_trig' type-id='db6d90a1' visibility='default' filepath='include/linux/power_supply.h' line='312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9536'>
+          <var-decl name='charging_full_trig_name' type-id='26a90f95' visibility='default' filepath='include/linux/power_supply.h' line='313' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='charging_trig' type-id='db6d90a1' visibility='default' filepath='include/linux/power_supply.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9664'>
+          <var-decl name='charging_trig_name' type-id='26a90f95' visibility='default' filepath='include/linux/power_supply.h' line='315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9728'>
+          <var-decl name='full_trig' type-id='db6d90a1' visibility='default' filepath='include/linux/power_supply.h' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9792'>
+          <var-decl name='full_trig_name' type-id='26a90f95' visibility='default' filepath='include/linux/power_supply.h' line='317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9856'>
+          <var-decl name='online_trig' type-id='db6d90a1' visibility='default' filepath='include/linux/power_supply.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9920'>
+          <var-decl name='online_trig_name' type-id='26a90f95' visibility='default' filepath='include/linux/power_supply.h' line='319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9984'>
+          <var-decl name='charging_blink_full_solid_trig' type-id='db6d90a1' visibility='default' filepath='include/linux/power_supply.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10048'>
+          <var-decl name='charging_blink_full_solid_trig_name' type-id='26a90f95' visibility='default' filepath='include/linux/power_supply.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10112'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/power_supply.h' line='324' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='98789900'>
+        <parameter type-id='fc4f83c1'/>
+        <parameter type-id='25e60cb2'/>
+        <parameter type-id='bf95a8f0'/>
+        <parameter type-id='3eb7c31c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='db1d8e86' size-in-bits='64' id='988d1520'/>
+      <typedef-decl name='pg_data_t' type-id='54406315' filepath='include/linux/mmzone.h' line='1133' column='1' id='988ff7b9'/>
+      <function-type size-in-bits='64' id='98985516'>
+        <parameter type-id='339c87e8'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f7a449db' size-in-bits='64' id='989875ef'/>
+      <class-decl name='bsg_device' is-struct='yes' visibility='default' is-declaration-only='yes' id='989ec392'/>
+      <pointer-type-def type-id='0477141b' size-in-bits='64' id='98a3b427'/>
+      <function-type size-in-bits='64' id='98aa4684'>
+        <parameter type-id='2c25e09d'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a50e69e9' size-in-bits='64' id='98b07df9'/>
+      <pointer-type-def type-id='0c6ad5d3' size-in-bits='64' id='98b22793'/>
+      <function-type size-in-bits='64' id='98b2ffae'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='acada613'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <class-decl name='inet_diag_req_v2' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='38' column='1' id='98bb2d81'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sdiag_family' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='sdiag_protocol' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='idiag_ext' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='pad' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='idiag_states' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='id' type-id='b73cf3f5' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='44' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='perf_output_handle' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='884' column='1' id='98bc2b95'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='event' type-id='2bf16f59' visibility='default' filepath='include/linux/perf_event.h' line='885' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rb' type-id='35b814e1' visibility='default' filepath='include/linux/perf_event.h' line='886' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='wakeup' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='887' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='size' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='888' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='aux_flags' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='889' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='' type-id='ac5ab59b' visibility='default' filepath='include/linux/perf_event.h' line='890' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='page' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='894' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ca5008d0' size-in-bits='64' id='98c4c95a'/>
+      <array-type-def dimensions='1' type-id='00205383' size-in-bits='3200' id='98c5d52c'>
+        <subrange length='25' type-id='7ff19f0f' id='41d5ddce'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='98cbb885'>
+        <parameter type-id='33c599da'/>
+        <parameter type-id='5c39fc92'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='66bc63b4' size-in-bits='64' id='98d7a132'/>
+      <pointer-type-def type-id='05cc5338' size-in-bits='64' id='98dbb7da'/>
+      <pointer-type-def type-id='4e6b6ff6' size-in-bits='64' id='98dbe63c'/>
+      <pointer-type-def type-id='457c9dbc' size-in-bits='64' id='98dc4446'/>
+      <pointer-type-def type-id='38f18858' size-in-bits='64' id='98dd23ae'/>
+      <class-decl name='power_supply_resistance_temp_table' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/power_supply.h' line='351' column='1' id='98e1bfb4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='temp' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='resistance' type-id='95e97e5e' visibility='default' filepath='include/linux/power_supply.h' line='353' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='98e2db6f'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='fe454a75'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='eea20e13' size-in-bits='64' id='98eca9c3'/>
+      <function-type size-in-bits='64' id='98ef1b95'>
+        <parameter type-id='2567e379'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d8488877' size-in-bits='64' id='98f35cbb'/>
+      <class-decl name='uprobe_task' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/uprobes.h' line='61' column='1' id='98f6607e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='state' type-id='5d1a5bc7' visibility='default' filepath='include/linux/uprobes.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab64f' visibility='default' filepath='include/linux/uprobes.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='active_uprobe' type-id='57376310' visibility='default' filepath='include/linux/uprobes.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='xol_vaddr' type-id='7359adad' visibility='default' filepath='include/linux/uprobes.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='return_instances' type-id='d38eb863' visibility='default' filepath='include/linux/uprobes.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='depth' type-id='f0981eeb' visibility='default' filepath='include/linux/uprobes.h' line='80' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ttm_operation_ctx' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='208' column='1' id='98f70d4c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='interruptible' type-id='b50a4934' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='no_wait_gpu' type-id='b50a4934' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='gfp_retry_mayfail' type-id='b50a4934' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='allow_res_evict' type-id='b50a4934' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='force_alloc' type-id='b50a4934' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='resv' type-id='340cea9c' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bytes_moved' type-id='9c313c2d' visibility='default' filepath='include/drm/ttm/ttm_bo_api.h' line='215' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='7e2609cc' size-in-bits='4096' id='98f84070'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <class-decl name='tcp_fastopen_cookie' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/tcp.h' line='61' column='1' id='98fc5aa2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='val' type-id='8f0335da' visibility='default' filepath='include/linux/tcp.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='len' type-id='fdbf7a0f' visibility='default' filepath='include/linux/tcp.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='exp' type-id='b50a4934' visibility='default' filepath='include/linux/tcp.h' line='64' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1a196c3e' size-in-bits='64' id='98ff7360'/>
+      <class-decl name='cpufreq_freqs' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/cpufreq.h' line='174' column='1' id='9906d117'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='policy' type-id='343c3ae4' visibility='default' filepath='include/linux/cpufreq.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='old' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='new' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/linux/cpufreq.h' line='178' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='seg6_pernet_data' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/seg6.h' line='36' column='1' id='990cce78'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/net/seg6.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='tun_src' type-id='ed512028' visibility='default' filepath='include/net/seg6.h' line='38' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='request_key_actor_t' type-id='a4946104' filepath='include/linux/key-type.h' line='42' column='1' id='99147724'/>
+      <pointer-type-def type-id='b5975902' size-in-bits='64' id='9917918c'/>
+      <function-type size-in-bits='64' id='9917f524'>
+        <parameter type-id='807b7702'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d6746ce3' size-in-bits='64' id='991b8213'/>
+      <class-decl name='fsl_mc_msi_desc' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/linux/msi.h' line='85' column='1' id='9930269d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='msi_index' type-id='1dc6a898' visibility='default' filepath='include/linux/msi.h' line='86' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='devlink_port_new_attrs' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='178' column='1' id='993e7488'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flavour' type-id='33ffd241' visibility='default' filepath='include/net/devlink.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='port_index' type-id='f0981eeb' visibility='default' filepath='include/net/devlink.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='controller' type-id='19c2251e' visibility='default' filepath='include/net/devlink.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='sfnum' type-id='19c2251e' visibility='default' filepath='include/net/devlink.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pfnum' type-id='1dc6a898' visibility='default' filepath='include/net/devlink.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='port_index_valid' type-id='f9b06939' visibility='default' filepath='include/net/devlink.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='145'>
+          <var-decl name='controller_valid' type-id='f9b06939' visibility='default' filepath='include/net/devlink.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='146'>
+          <var-decl name='sfnum_valid' type-id='f9b06939' visibility='default' filepath='include/net/devlink.h' line='186' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='99438dcd'>
+        <parameter type-id='5771c601'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='saved_syn' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/net/request_sock.h' line='44' column='1' id='9949f2d1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mac_hdrlen' type-id='19c2251e' visibility='default' filepath='include/net/request_sock.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='network_hdrlen' type-id='19c2251e' visibility='default' filepath='include/net/request_sock.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tcp_hdrlen' type-id='19c2251e' visibility='default' filepath='include/net/request_sock.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='data' type-id='29c3368c' visibility='default' filepath='include/net/request_sock.h' line='48' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='aadc8ce9' size-in-bits='64' id='994d9d61'/>
+      <class-decl name='scatter_walk' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/crypto/algapi.h' line='94' column='1' id='9953e88b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sg' type-id='bf3ef905' visibility='default' filepath='include/crypto/algapi.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='offset' type-id='f0981eeb' visibility='default' filepath='include/crypto/algapi.h' line='96' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='ad499564' const='yes' id='9954f7ad'/>
+      <pointer-type-def type-id='e0e73a01' size-in-bits='64' id='99577235'/>
+      <function-type size-in-bits='64' id='99690429'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='d070dbfd'/>
+        <parameter type-id='f026b16b'/>
+        <parameter type-id='ed512028'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='3f1a6b60'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='nl80211_dfs_state' filepath='include/uapi/linux/nl80211.h' line='6673' column='1' id='996e1634'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NL80211_DFS_USABLE' value='0'/>
+        <enumerator name='NL80211_DFS_UNAVAILABLE' value='1'/>
+        <enumerator name='NL80211_DFS_AVAILABLE' value='2'/>
+      </enum-decl>
+      <qualified-type-def type-id='21dfe538' const='yes' id='996ed1e5'/>
+      <function-type size-in-bits='64' id='9977c731'>
+        <parameter type-id='5e4f599b'/>
+        <parameter type-id='e68e04c1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d242480c' size-in-bits='64' id='99794e5a'/>
+      <pointer-type-def type-id='3e02e52d' size-in-bits='64' id='997bd29d'/>
+      <pointer-type-def type-id='8ca90cbf' size-in-bits='64' id='997f6223'/>
+      <function-type size-in-bits='64' id='99803d40'>
+        <parameter type-id='631dc3c1'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='78c01427'/>
+        <parameter type-id='b53e8dbb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='robust_list_head' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/futex.h' line='72' column='1' id='999b38a0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='2d8e2e2d' visibility='default' filepath='include/uapi/linux/futex.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='futex_offset' type-id='bd54fe1a' visibility='default' filepath='include/uapi/linux/futex.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list_op_pending' type-id='3ca5030d' visibility='default' filepath='include/uapi/linux/futex.h' line='96' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ab23f61a' size-in-bits='64' id='999c8d90'/>
+      <typedef-decl name='splice_actor' type-id='69c72ccd' filepath='include/linux/splice.h' line='65' column='1' id='99adf786'/>
+      <pointer-type-def type-id='97e76825' size-in-bits='64' id='99baf115'/>
+      <pointer-type-def type-id='95d0d4e8' size-in-bits='64' id='99beed66'/>
+      <pointer-type-def type-id='aba31911' size-in-bits='64' id='99c70b49'/>
+      <class-decl name='__drm_private_objs_state' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/drm/drm_atomic.h' line='324' column='1' id='99c97f55'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ptr' type-id='11c98e9a' visibility='default' filepath='include/drm/drm_atomic.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='state' type-id='4ea020ae' visibility='default' filepath='include/drm/drm_atomic.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='old_state' type-id='4ea020ae' visibility='default' filepath='include/drm/drm_atomic.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='new_state' type-id='4ea020ae' visibility='default' filepath='include/drm/drm_atomic.h' line='326' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_frmival_stepwise' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='851' column='1' id='99cd0646'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='min' type-id='5f37256e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='852' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max' type-id='5f37256e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='853' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='step' type-id='5f37256e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='854' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_ext_control' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1731' column='1' id='99cd308f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1732' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1733' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reserved2' type-id='439be632' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1734' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='' type-id='ac5ab5fb' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1735' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='88ef330b' const='yes' id='99cf04a8'/>
+      <class-decl name='blk_queue_stats' size-in-bits='192' is-struct='yes' visibility='default' filepath='block/blk-stat.c' line='15' column='1' id='99d089ec'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='callbacks' type-id='72f469ec' visibility='default' filepath='block/blk-stat.c' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='block/blk-stat.c' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='enable_accounting' type-id='b50a4934' visibility='default' filepath='block/blk-stat.c' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='86768fbb' size-in-bits='64' id='99dc8ee7'/>
+      <class-decl name='devlink_port_pci_vf_attrs' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='91' column='1' id='99dcb195'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='controller' type-id='19c2251e' visibility='default' filepath='include/net/devlink.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pf' type-id='1dc6a898' visibility='default' filepath='include/net/devlink.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='vf' type-id='1dc6a898' visibility='default' filepath='include/net/devlink.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='external' type-id='f9b06939' visibility='default' filepath='include/net/devlink.h' line='95' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='de28612c' size-in-bits='64' id='99dd2b5e'/>
+      <pointer-type-def type-id='f58c1a1b' size-in-bits='64' id='99dd37d7'/>
+      <qualified-type-def type-id='9ad54c6a' const='yes' id='99e9d9d9'/>
+      <class-decl name='fscrypt_master_key' size-in-bits='7040' is-struct='yes' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='480' column='1' id='99ef5e11'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mk_sb' type-id='42c8f564' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mk_node' type-id='03a4a074' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='492' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mk_sem' type-id='f19fdb93' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='495' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='mk_active_refs' type-id='64615833' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='511' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='mk_struct_refs' type-id='64615833' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='mk_rcu_head' type-id='e3d8ce29' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='514' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='mk_secret' type-id='3fc794fa' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='529' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='mk_spec' type-id='3486f5e5' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='537' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='mk_users' type-id='204a4632' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='552' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='mk_decrypted_inodes' type-id='72f469ec' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='558' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='mk_decrypted_inodes_lock' type-id='fb4018a0' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='559' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='mk_direct_keys' type-id='f2003288' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='mk_iv_ino_lblk_64_keys' type-id='f2003288' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5440'>
+          <var-decl name='mk_iv_ino_lblk_32_keys' type-id='f2003288' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6848'>
+          <var-decl name='mk_ino_hash_key' type-id='7799da43' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='570' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6976'>
+          <var-decl name='mk_ino_hash_key_initialized' type-id='b50a4934' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='571' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='nd_percpu_lane' size-in-bits='64' is-struct='yes' visibility='default' filepath='drivers/nvdimm/nd.h' line='253' column='1' id='99f32926'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='95e97e5e' visibility='default' filepath='drivers/nvdimm/nd.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='drivers/nvdimm/nd.h' line='255' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8bd06fd9' size-in-bits='64' id='99f34ac1'/>
+      <class-decl name='ns_common' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/ns_common.h' line='9' column='1' id='99f367f2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='stashed' type-id='f22a8abb' visibility='default' filepath='include/linux/ns_common.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ops' type-id='4598bd2d' visibility='default' filepath='include/linux/ns_common.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='inum' type-id='f0981eeb' visibility='default' filepath='include/linux/ns_common.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='count' type-id='64615833' visibility='default' filepath='include/linux/ns_common.h' line='13' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='72e0b98d' size-in-bits='64' id='99f649a9'/>
+      <array-type-def dimensions='1' type-id='fb2af2d4' size-in-bits='384' id='99f86d6d'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <qualified-type-def type-id='69f06cc6' const='yes' id='99fda9f5'/>
+      <pointer-type-def type-id='fddf5518' size-in-bits='64' id='9a03e99a'/>
+      <qualified-type-def type-id='6a32253a' const='yes' id='9a07743b'/>
+      <function-type size-in-bits='64' id='9a08a831'>
+        <parameter type-id='ea1bdaf6'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='5e4f599b'/>
+      </function-type>
+      <qualified-type-def type-id='9a25f4b0' const='yes' id='9a165a97'/>
+      <class-decl name='minmax_sample' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/win_minmax.h' line='12' column='1' id='9a1ac43a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='t' type-id='19c2251e' visibility='default' filepath='include/linux/win_minmax.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='v' type-id='19c2251e' visibility='default' filepath='include/linux/win_minmax.h' line='14' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='c6a1f4c6' size-in-bits='360' id='9a1c3c10'>
+        <subrange length='15' type-id='7ff19f0f' id='8484ba73'/>
+      </array-type-def>
+      <class-decl name='bpf_prog_ops' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='548' column='1' id='9a1fed7b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='test_run' type-id='eddbe2ad' visibility='default' filepath='include/linux/bpf.h' line='549' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='xa_node' size-in-bits='4608' is-struct='yes' visibility='default' filepath='include/linux/xarray.h' line='1124' column='1' id='9a218d2f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='shift' type-id='002ac4a6' visibility='default' filepath='include/linux/xarray.h' line='1125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='offset' type-id='002ac4a6' visibility='default' filepath='include/linux/xarray.h' line='1126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='count' type-id='002ac4a6' visibility='default' filepath='include/linux/xarray.h' line='1127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='nr_values' type-id='002ac4a6' visibility='default' filepath='include/linux/xarray.h' line='1128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='parent' type-id='83f45767' visibility='default' filepath='include/linux/xarray.h' line='1129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='array' type-id='60075f2a' visibility='default' filepath='include/linux/xarray.h' line='1130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='' type-id='ac5ab692' visibility='default' filepath='include/linux/xarray.h' line='1131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='slots' type-id='56f066f9' visibility='default' filepath='include/linux/xarray.h' line='1135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='' type-id='ac5ab693' visibility='default' filepath='include/linux/xarray.h' line='1136' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='9a22e8f5'>
+        <parameter type-id='2a895c01'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='v4l2_dv_timings' size-in-bits='1056' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1572' column='1' id='9a25f4b0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1573' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='' type-id='ac5ab5f9' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1574' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='97471c35' size-in-bits='64' id='9a2977d1'/>
+      <pointer-type-def type-id='c7253970' size-in-bits='64' id='9a2b46ca'/>
+      <function-type size-in-bits='64' id='9a2d1cbc'>
+        <parameter type-id='59f1923f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='81954c90' const='yes' id='9a2ef795'/>
+      <pointer-type-def type-id='cde99b39' size-in-bits='64' id='9a335021'/>
+      <pointer-type-def type-id='b8e47b1d' size-in-bits='64' id='9a42d4cd'/>
+      <class-decl name='signal_struct' size-in-bits='8960' is-struct='yes' visibility='default' filepath='include/linux/sched/signal.h' line='83' column='1' id='9a4619bf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sigcnt' type-id='64615833' visibility='default' filepath='include/linux/sched/signal.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='live' type-id='49178f86' visibility='default' filepath='include/linux/sched/signal.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nr_threads' type-id='95e97e5e' visibility='default' filepath='include/linux/sched/signal.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='thread_head' type-id='72f469ec' visibility='default' filepath='include/linux/sched/signal.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='wait_chldexit' type-id='b5ab048f' visibility='default' filepath='include/linux/sched/signal.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='curr_target' type-id='f23e2572' visibility='default' filepath='include/linux/sched/signal.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='shared_pending' type-id='7b5c012d' visibility='default' filepath='include/linux/sched/signal.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='multiprocess' type-id='e151255a' visibility='default' filepath='include/linux/sched/signal.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='group_exit_code' type-id='95e97e5e' visibility='default' filepath='include/linux/sched/signal.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='notify_count' type-id='95e97e5e' visibility='default' filepath='include/linux/sched/signal.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='group_exit_task' type-id='f23e2572' visibility='default' filepath='include/linux/sched/signal.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='group_stop_count' type-id='95e97e5e' visibility='default' filepath='include/linux/sched/signal.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/signal.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='is_child_subreaper' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/signal.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='961'>
+          <var-decl name='has_child_subreaper' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/signal.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='posix_timer_id' type-id='95e97e5e' visibility='default' filepath='include/linux/sched/signal.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='posix_timers' type-id='72f469ec' visibility='default' filepath='include/linux/sched/signal.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='real_timer' type-id='b6993efc' visibility='default' filepath='include/linux/sched/signal.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='it_real_incr' type-id='fbc017ef' visibility='default' filepath='include/linux/sched/signal.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='it' type-id='bb2d0d4e' visibility='default' filepath='include/linux/sched/signal.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='cputimer' type-id='9480bb51' visibility='default' filepath='include/linux/sched/signal.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='posix_cputimers' type-id='1069de27' visibility='default' filepath='include/linux/sched/signal.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='pids' type-id='3449295e' visibility='default' filepath='include/linux/sched/signal.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='tty_old_pgrp' type-id='b94e5398' visibility='default' filepath='include/linux/sched/signal.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='leader' type-id='95e97e5e' visibility='default' filepath='include/linux/sched/signal.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='tty' type-id='572fbdca' visibility='default' filepath='include/linux/sched/signal.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='stats_lock' type-id='e6cd5ecf' visibility='default' filepath='include/linux/sched/signal.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='utime' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/signal.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='stime' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/signal.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='cutime' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/signal.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='cstime' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/signal.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='gtime' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/signal.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='cgtime' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/signal.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='prev_cputime' type-id='9c7bf560' visibility='default' filepath='include/linux/sched/signal.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='nvcsw' type-id='7359adad' visibility='default' filepath='include/linux/sched/signal.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='nivcsw' type-id='7359adad' visibility='default' filepath='include/linux/sched/signal.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='cnvcsw' type-id='7359adad' visibility='default' filepath='include/linux/sched/signal.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='cnivcsw' type-id='7359adad' visibility='default' filepath='include/linux/sched/signal.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='min_flt' type-id='7359adad' visibility='default' filepath='include/linux/sched/signal.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='maj_flt' type-id='7359adad' visibility='default' filepath='include/linux/sched/signal.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='cmin_flt' type-id='7359adad' visibility='default' filepath='include/linux/sched/signal.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='cmaj_flt' type-id='7359adad' visibility='default' filepath='include/linux/sched/signal.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4480'>
+          <var-decl name='inblock' type-id='7359adad' visibility='default' filepath='include/linux/sched/signal.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4544'>
+          <var-decl name='oublock' type-id='7359adad' visibility='default' filepath='include/linux/sched/signal.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4608'>
+          <var-decl name='cinblock' type-id='7359adad' visibility='default' filepath='include/linux/sched/signal.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4672'>
+          <var-decl name='coublock' type-id='7359adad' visibility='default' filepath='include/linux/sched/signal.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='maxrss' type-id='7359adad' visibility='default' filepath='include/linux/sched/signal.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='cmaxrss' type-id='7359adad' visibility='default' filepath='include/linux/sched/signal.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4864'>
+          <var-decl name='ioac' type-id='ca075c7f' visibility='default' filepath='include/linux/sched/signal.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='sum_sched_runtime' type-id='0d77e947' visibility='default' filepath='include/linux/sched/signal.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5440'>
+          <var-decl name='rlim' type-id='80f344e1' visibility='default' filepath='include/linux/sched/signal.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='stats' type-id='2c927837' visibility='default' filepath='include/linux/sched/signal.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='audit_tty' type-id='f0981eeb' visibility='default' filepath='include/linux/sched/signal.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='tty_audit_buf' type-id='868c74f4' visibility='default' filepath='include/linux/sched/signal.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='oom_flag_origin' type-id='b50a4934' visibility='default' filepath='include/linux/sched/signal.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7696'>
+          <var-decl name='oom_score_adj' type-id='a2185560' visibility='default' filepath='include/linux/sched/signal.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7712'>
+          <var-decl name='oom_score_adj_min' type-id='a2185560' visibility='default' filepath='include/linux/sched/signal.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='oom_mm' type-id='df4b7819' visibility='default' filepath='include/linux/sched/signal.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='cred_guard_mutex' type-id='925167dc' visibility='default' filepath='include/linux/sched/signal.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='exec_update_lock' type-id='f19fdb93' visibility='default' filepath='include/linux/sched/signal.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/signal.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8768'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/signal.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8832'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/signal.h' line='242' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8896'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/signal.h' line='243' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_kcontrol_new' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/sound/control.h' line='47' column='1' id='9a46627e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='iface' type-id='4143fc17' visibility='default' filepath='include/sound/control.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='device' type-id='f0981eeb' visibility='default' filepath='include/sound/control.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='subdevice' type-id='f0981eeb' visibility='default' filepath='include/sound/control.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/sound/control.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/sound/control.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='access' type-id='f0981eeb' visibility='default' filepath='include/sound/control.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='count' type-id='f0981eeb' visibility='default' filepath='include/sound/control.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='info' type-id='e79cb28f' visibility='default' filepath='include/sound/control.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='get' type-id='5553210f' visibility='default' filepath='include/sound/control.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='put' type-id='e149b058' visibility='default' filepath='include/sound/control.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='tlv' type-id='ac5ab619' visibility='default' filepath='include/sound/control.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='private_value' type-id='7359adad' visibility='default' filepath='include/sound/control.h' line='62' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='udp_table' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/udp.h' line='72' column='1' id='9a516b13'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hash' type-id='9cc41107' visibility='default' filepath='include/net/udp.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hash2' type-id='9cc41107' visibility='default' filepath='include/net/udp.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mask' type-id='f0981eeb' visibility='default' filepath='include/net/udp.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='log' type-id='f0981eeb' visibility='default' filepath='include/net/udp.h' line='76' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6661a698' size-in-bits='64' id='9a537bbe'/>
+      <pointer-type-def type-id='2bc6669b' size-in-bits='64' id='9a53a8a3'/>
+      <function-type size-in-bits='64' id='9a54e634'>
+        <parameter type-id='8898134d'/>
+        <parameter type-id='9e99ecc1'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='90421557'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='558bf6c5' size-in-bits='64' id='9a55ba3d'/>
+      <array-type-def dimensions='2' type-id='8f048e17' size-in-bits='768' id='9a59aaef'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <pointer-type-def type-id='abe3ca10' size-in-bits='64' id='9a5ed472'/>
+      <class-decl name='dev_printk_info' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/dev_printk.h' line='27' column='1' id='9a61119e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='subsystem' type-id='ac1fa8c0' visibility='default' filepath='include/linux/dev_printk.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='device' type-id='36d7f119' visibility='default' filepath='include/linux/dev_printk.h' line='29' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='120c01b5' size-in-bits='128' id='9a69aeec'>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+      </array-type-def>
+      <qualified-type-def type-id='20f6935f' const='yes' id='9a6d2bc2'/>
+      <pointer-type-def type-id='18188cce' size-in-bits='64' id='9a6e3348'/>
+      <class-decl name='rq_map_data' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/blkdev.h' line='832' column='1' id='9a6e6516'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pages' type-id='9f93c9da' visibility='default' filepath='include/linux/blkdev.h' line='833' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='page_order' type-id='95e97e5e' visibility='default' filepath='include/linux/blkdev.h' line='834' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='nr_entries' type-id='95e97e5e' visibility='default' filepath='include/linux/blkdev.h' line='835' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='offset' type-id='7359adad' visibility='default' filepath='include/linux/blkdev.h' line='836' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='null_mapped' type-id='95e97e5e' visibility='default' filepath='include/linux/blkdev.h' line='837' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='from_user' type-id='95e97e5e' visibility='default' filepath='include/linux/blkdev.h' line='838' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_mbus_frame_desc' size-in-bits='416' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='352' column='1' id='9a759b95'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='entry' type-id='085421f4' visibility='default' filepath='include/media/v4l2-subdev.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='num_entries' type-id='8efea9e5' visibility='default' filepath='include/media/v4l2-subdev.h' line='354' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='android_debug_symbol' filepath='include/linux/android_debug_symbols.h' line='9' column='1' id='9a7fd0a4'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ADS_SDATA' value='0'/>
+        <enumerator name='ADS_BSS_END' value='1'/>
+        <enumerator name='ADS_PER_CPU_START' value='2'/>
+        <enumerator name='ADS_PER_CPU_END' value='3'/>
+        <enumerator name='ADS_START_RO_AFTER_INIT' value='4'/>
+        <enumerator name='ADS_END_RO_AFTER_INIT' value='5'/>
+        <enumerator name='ADS_LINUX_BANNER' value='6'/>
+        <enumerator name='ADS_TOTAL_CMA' value='7'/>
+        <enumerator name='ADS_SLAB_CACHES' value='8'/>
+        <enumerator name='ADS_SLAB_MUTEX' value='9'/>
+        <enumerator name='ADS_MIN_LOW_PFN' value='10'/>
+        <enumerator name='ADS_MAX_PFN' value='11'/>
+        <enumerator name='ADS_VMALLOC_NR_PAGES' value='12'/>
+        <enumerator name='ADS_PCPU_NR_PAGES' value='13'/>
+        <enumerator name='ADS_PAGE_OWNER_ENABLED' value='14'/>
+        <enumerator name='ADS_SLUB_DEBUG' value='15'/>
+        <enumerator name='ADS_NR_SWAP_PAGES' value='16'/>
+        <enumerator name='ADS_MMAP_MIN_ADDR' value='17'/>
+        <enumerator name='ADS_STACK_GUARD_GAP' value='18'/>
+        <enumerator name='ADS_SYSCTL_LEGACY_VA_LAYOUT' value='19'/>
+        <enumerator name='ADS_SHOW_MEM' value='20'/>
+        <enumerator name='ADS_PUT_TASK_STACK' value='21'/>
+        <enumerator name='ADS_END' value='22'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='9a800b82'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='7292109c'/>
+        <parameter type-id='44372936'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <function-type size-in-bits='64' id='9a809cc5'>
+        <parameter type-id='28271da3'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='powercap_zone_constraint_ops' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/powercap.h' line='175' column='1' id='9a817f02'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='set_power_limit_uw' type-id='348bf440' visibility='default' filepath='include/linux/powercap.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='get_power_limit_uw' type-id='cb48c699' visibility='default' filepath='include/linux/powercap.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='set_time_window_us' type-id='348bf440' visibility='default' filepath='include/linux/powercap.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get_time_window_us' type-id='cb48c699' visibility='default' filepath='include/linux/powercap.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='get_max_power_uw' type-id='cb48c699' visibility='default' filepath='include/linux/powercap.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='get_min_power_uw' type-id='cb48c699' visibility='default' filepath='include/linux/powercap.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='get_max_time_window_us' type-id='cb48c699' visibility='default' filepath='include/linux/powercap.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='get_min_time_window_us' type-id='cb48c699' visibility='default' filepath='include/linux/powercap.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='get_name' type-id='88f24f3c' visibility='default' filepath='include/linux/powercap.h' line='184' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='47c2d8bc' size-in-bits='64' id='9a88b2e3'/>
+      <pointer-type-def type-id='4b365417' size-in-bits='64' id='9a9cf0bf'/>
+      <class-decl name='tcf_walker' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/pkt_cls.h' line='16' column='1' id='9a9d8c1d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='stop' type-id='95e97e5e' visibility='default' filepath='include/net/pkt_cls.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='skip' type-id='95e97e5e' visibility='default' filepath='include/net/pkt_cls.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='count' type-id='95e97e5e' visibility='default' filepath='include/net/pkt_cls.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='nonempty' type-id='b50a4934' visibility='default' filepath='include/net/pkt_cls.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cookie' type-id='7359adad' visibility='default' filepath='include/net/pkt_cls.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fn' type-id='1583af75' visibility='default' filepath='include/net/pkt_cls.h' line='22' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2974aa72' size-in-bits='64' id='9aa82888'/>
+      <typedef-decl name='substring_t' type-id='ede1657b' filepath='include/linux/parser.h' line='28' column='1' id='9aadee6c'/>
+      <qualified-type-def type-id='b7aba18f' const='yes' id='9aae225c'/>
+      <class-decl name='rc_map' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/media/rc-map.h' line='157' column='1' id='9ab3364f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='scan' type-id='57909d12' visibility='default' filepath='include/media/rc-map.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='f0981eeb' visibility='default' filepath='include/media/rc-map.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='len' type-id='f0981eeb' visibility='default' filepath='include/media/rc-map.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='alloc' type-id='f0981eeb' visibility='default' filepath='include/media/rc-map.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='rc_proto' type-id='17862576' visibility='default' filepath='include/media/rc-map.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/media/rc-map.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/media/rc-map.h' line='164' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a6676061' size-in-bits='64' id='9ab734dd'/>
+      <pointer-type-def type-id='e9aff380' size-in-bits='64' id='9ac467e6'/>
+      <class-decl name='iommu_dma_cookie' size-in-bits='15552' is-struct='yes' visibility='default' filepath='drivers/iommu/dma-iommu.c' line='41' column='1' id='9ac6a7ee'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='77e21850' visibility='default' filepath='drivers/iommu/dma-iommu.c' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab5e5' visibility='default' filepath='drivers/iommu/dma-iommu.c' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15360'>
+          <var-decl name='msi_page_list' type-id='72f469ec' visibility='default' filepath='drivers/iommu/dma-iommu.c' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15488'>
+          <var-decl name='fq_domain' type-id='bff05edb' visibility='default' filepath='drivers/iommu/dma-iommu.c' line='52' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='da878766' size-in-bits='64' id='9ac7bdcc'/>
+      <class-decl name='v4l2_kevent' size-in-bits='1344' is-struct='yes' visibility='default' filepath='include/media/v4l2-event.h' line='31' column='1' id='9ac9cd61'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-event.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sev' type-id='6ec0fd31' visibility='default' filepath='include/media/v4l2-event.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='event' type-id='967c1c06' visibility='default' filepath='include/media/v4l2-event.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='ts' type-id='91ce1af9' visibility='default' filepath='include/media/v4l2-event.h' line='35' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='517f7da9' size-in-bits='64' id='9acf1dd1'/>
+      <class-decl name='powercap_control_type_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/powercap.h' line='40' column='1' id='9ad54c6a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='set_enable' type-id='871be364' visibility='default' filepath='include/linux/powercap.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='get_enable' type-id='602c5ebb' visibility='default' filepath='include/linux/powercap.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='release' type-id='1f00e9c1' visibility='default' filepath='include/linux/powercap.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c4e92edf' size-in-bits='64' id='9ad862e7'/>
+      <pointer-type-def type-id='5cec8edf' size-in-bits='64' id='9add1da7'/>
+      <class-decl name='scmi_device_id' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/scmi_protocol.h' line='681' column='1' id='9aefc15c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='protocol_id' type-id='f9b06939' visibility='default' filepath='include/linux/scmi_protocol.h' line='682' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/scmi_protocol.h' line='683' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='binder_size_t' type-id='d3130597' filepath='include/uapi/linux/android/binder.h' line='106' column='1' id='9af0438f'/>
+      <function-type size-in-bits='64' id='9b07d522'>
+        <parameter type-id='ca9354d1'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ethtool_test' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='785' column='1' id='9b087887'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='786' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='787' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reserved' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='788' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='789' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data' type-id='52cd3f2c' visibility='default' filepath='include/uapi/linux/ethtool.h' line='790' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='notifier_block' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/notifier.h' line='54' column='1' id='9b08f7cd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='notifier_call' type-id='0ec8c658' visibility='default' filepath='include/linux/notifier.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='next' type-id='d504f73d' visibility='default' filepath='include/linux/notifier.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='priority' type-id='95e97e5e' visibility='default' filepath='include/linux/notifier.h' line='57' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a9d71093' size-in-bits='64' id='9b105293'/>
+      <pointer-type-def type-id='26a90f95' size-in-bits='64' id='9b23c9ad'/>
+      <pointer-type-def type-id='71598d38' size-in-bits='64' id='9b25216e'/>
+      <class-decl name='fib6_result' is-struct='yes' visibility='default' is-declaration-only='yes' id='9b266dc4'/>
+      <class-decl name='tty_driver' size-in-bits='1600' is-struct='yes' visibility='default' filepath='include/linux/tty_driver.h' line='298' column='1' id='9b27c78b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='magic' type-id='95e97e5e' visibility='default' filepath='include/linux/tty_driver.h' line='299' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='include/linux/tty_driver.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cdevs' type-id='5b4d58e9' visibility='default' filepath='include/linux/tty_driver.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/tty_driver.h' line='302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='driver_name' type-id='80f4b756' visibility='default' filepath='include/linux/tty_driver.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/tty_driver.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='name_base' type-id='95e97e5e' visibility='default' filepath='include/linux/tty_driver.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='major' type-id='95e97e5e' visibility='default' filepath='include/linux/tty_driver.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='minor_start' type-id='95e97e5e' visibility='default' filepath='include/linux/tty_driver.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='num' type-id='f0981eeb' visibility='default' filepath='include/linux/tty_driver.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='type' type-id='a2185560' visibility='default' filepath='include/linux/tty_driver.h' line='309' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='464'>
+          <var-decl name='subtype' type-id='a2185560' visibility='default' filepath='include/linux/tty_driver.h' line='310' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='init_termios' type-id='2f8662b5' visibility='default' filepath='include/linux/tty_driver.h' line='311' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/tty_driver.h' line='312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='proc_entry' type-id='d077e928' visibility='default' filepath='include/linux/tty_driver.h' line='313' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='other' type-id='c2b4b27b' visibility='default' filepath='include/linux/tty_driver.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='ttys' type-id='2027e7a0' visibility='default' filepath='include/linux/tty_driver.h' line='319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='ports' type-id='d272d4d6' visibility='default' filepath='include/linux/tty_driver.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='termios' type-id='d910a7dd' visibility='default' filepath='include/linux/tty_driver.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='driver_state' type-id='eaa32e2f' visibility='default' filepath='include/linux/tty_driver.h' line='322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='ops' type-id='f2c18b44' visibility='default' filepath='include/linux/tty_driver.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='tty_drivers' type-id='72f469ec' visibility='default' filepath='include/linux/tty_driver.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/tty_driver.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/tty_driver.h' line='332' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d647b094' size-in-bits='64' id='9b28bd76'/>
+      <qualified-type-def type-id='5ad3f0d0' const='yes' id='9b2db0ab'/>
+      <pointer-type-def type-id='9dcba7d1' size-in-bits='64' id='9b3cc28d'/>
+      <function-type size-in-bits='64' id='9b3d9f4d'>
+        <parameter type-id='f681f934'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='a84c031d' const='yes' id='9b45d938'/>
+      <pointer-type-def type-id='37251e77' size-in-bits='64' id='9b4aaf1f'/>
+      <pointer-type-def type-id='f19fdb93' size-in-bits='64' id='9b58df93'/>
+      <function-type size-in-bits='64' id='9b58f3d9'>
+        <parameter type-id='3dad1a48'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='0f4f6276'/>
+      </function-type>
+      <function-type size-in-bits='64' id='9b5be95a'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='cd012107'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='mem_section_usage' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/mmzone.h' line='1520' column='1' id='9b5fa592'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='subsection_map' type-id='f066dd3c' visibility='default' filepath='include/linux/mmzone.h' line='1522' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pageblock_flags' type-id='c99b5ecd' visibility='default' filepath='include/linux/mmzone.h' line='1525' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='xfrm_policy_hash' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/netns/xfrm.h' line='15' column='1' id='9b61d1a6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='table' type-id='030d0b18' visibility='default' filepath='include/net/netns/xfrm.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hmask' type-id='f0981eeb' visibility='default' filepath='include/net/netns/xfrm.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='dbits4' type-id='f9b06939' visibility='default' filepath='include/net/netns/xfrm.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='sbits4' type-id='f9b06939' visibility='default' filepath='include/net/netns/xfrm.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='dbits6' type-id='f9b06939' visibility='default' filepath='include/net/netns/xfrm.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='sbits6' type-id='f9b06939' visibility='default' filepath='include/net/netns/xfrm.h' line='21' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='9b634486'>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ufs_pwr_mode_info' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='295' column='1' id='9b642532'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='is_valid' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='info' type-id='4020579d' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='297' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e9c85fc0' size-in-bits='64' id='9b71f352'/>
+      <qualified-type-def type-id='2c3bbc0e' const='yes' id='9b734d5e'/>
+      <typedef-decl name='s64' type-id='49659421' filepath='include/asm-generic/int-ll64.h' line='22' column='1' id='9b7c55ef'/>
+      <function-type size-in-bits='64' id='9b7dfd9f'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='s16' type-id='b55def60' filepath='include/asm-generic/int-ll64.h' line='18' column='1' id='9b7e9486'/>
+      <class-decl name='spi_transfer' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/linux/spi/spi.h' line='938' column='1' id='9b7f1a95'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tx_buf' type-id='eaa32e2f' visibility='default' filepath='include/linux/spi/spi.h' line='944' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rx_buf' type-id='eaa32e2f' visibility='default' filepath='include/linux/spi/spi.h' line='945' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='len' type-id='f0981eeb' visibility='default' filepath='include/linux/spi/spi.h' line='946' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tx_dma' type-id='cf29c9b3' visibility='default' filepath='include/linux/spi/spi.h' line='948' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rx_dma' type-id='cf29c9b3' visibility='default' filepath='include/linux/spi/spi.h' line='949' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='tx_sg' type-id='c59e4f4c' visibility='default' filepath='include/linux/spi/spi.h' line='950' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='rx_sg' type-id='c59e4f4c' visibility='default' filepath='include/linux/spi/spi.h' line='951' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='dummy_data' type-id='f0981eeb' visibility='default' filepath='include/linux/spi/spi.h' line='953' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='577'>
+          <var-decl name='cs_change' type-id='f0981eeb' visibility='default' filepath='include/linux/spi/spi.h' line='954' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='578'>
+          <var-decl name='tx_nbits' type-id='f0981eeb' visibility='default' filepath='include/linux/spi/spi.h' line='955' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='581'>
+          <var-decl name='rx_nbits' type-id='f0981eeb' visibility='default' filepath='include/linux/spi/spi.h' line='956' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='584'>
+          <var-decl name='bits_per_word' type-id='f9b06939' visibility='default' filepath='include/linux/spi/spi.h' line='960' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='592'>
+          <var-decl name='delay' type-id='5a467bb1' visibility='default' filepath='include/linux/spi/spi.h' line='961' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='624'>
+          <var-decl name='cs_change_delay' type-id='5a467bb1' visibility='default' filepath='include/linux/spi/spi.h' line='962' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='656'>
+          <var-decl name='word_delay' type-id='5a467bb1' visibility='default' filepath='include/linux/spi/spi.h' line='963' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='speed_hz' type-id='19c2251e' visibility='default' filepath='include/linux/spi/spi.h' line='964' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='effective_speed_hz' type-id='19c2251e' visibility='default' filepath='include/linux/spi/spi.h' line='966' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='ptp_sts_word_pre' type-id='f0981eeb' visibility='default' filepath='include/linux/spi/spi.h' line='968' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='ptp_sts_word_post' type-id='f0981eeb' visibility='default' filepath='include/linux/spi/spi.h' line='969' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='ptp_sts' type-id='89a8217c' visibility='default' filepath='include/linux/spi/spi.h' line='971' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='timestamped' type-id='b50a4934' visibility='default' filepath='include/linux/spi/spi.h' line='973' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='transfer_list' type-id='72f469ec' visibility='default' filepath='include/linux/spi/spi.h' line='975' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='error' type-id='1dc6a898' visibility='default' filepath='include/linux/spi/spi.h' line='978' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/spi/spi.h' line='980' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='xhci_root_port_bw_info' size-in-bits='5504' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1052' column='1' id='9b863e03'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tts' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/xhci.h' line='1053' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='num_active_tts' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1054' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bw_table' type-id='2acb65d8' visibility='default' filepath='drivers/usb/host/xhci.h' line='1055' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4db19167' size-in-bits='64' id='9b87bc37'/>
+      <pointer-type-def type-id='1d2c2b85' size-in-bits='64' id='9b88c47d'/>
+      <class-decl name='cpufreq_driver' size-in-bits='1600' is-struct='yes' visibility='default' filepath='include/linux/cpufreq.h' line='308' column='1' id='9b8dc95a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='ac1fa8c0' visibility='default' filepath='include/linux/cpufreq.h' line='309' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='1dc6a898' visibility='default' filepath='include/linux/cpufreq.h' line='310' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/cpufreq.h' line='311' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='init' type-id='8dc588ee' visibility='default' filepath='include/linux/cpufreq.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='verify' type-id='0c33493b' visibility='default' filepath='include/linux/cpufreq.h' line='315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='setpolicy' type-id='8dc588ee' visibility='default' filepath='include/linux/cpufreq.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='target' type-id='8a854266' visibility='default' filepath='include/linux/cpufreq.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='target_index' type-id='933bd18c' visibility='default' filepath='include/linux/cpufreq.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='fast_switch' type-id='b3e04083' visibility='default' filepath='include/linux/cpufreq.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='adjust_perf' type-id='b598aef2' visibility='default' filepath='include/linux/cpufreq.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='get_intermediate' type-id='b3e04083' visibility='default' filepath='include/linux/cpufreq.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='target_intermediate' type-id='933bd18c' visibility='default' filepath='include/linux/cpufreq.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='get' type-id='17a94daa' visibility='default' filepath='include/linux/cpufreq.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='update_limits' type-id='4a84e7de' visibility='default' filepath='include/linux/cpufreq.h' line='361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='bios_limit' type-id='2a05538a' visibility='default' filepath='include/linux/cpufreq.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='online' type-id='8dc588ee' visibility='default' filepath='include/linux/cpufreq.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='offline' type-id='8dc588ee' visibility='default' filepath='include/linux/cpufreq.h' line='367' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='exit' type-id='8dc588ee' visibility='default' filepath='include/linux/cpufreq.h' line='368' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='suspend' type-id='8dc588ee' visibility='default' filepath='include/linux/cpufreq.h' line='369' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='resume' type-id='8dc588ee' visibility='default' filepath='include/linux/cpufreq.h' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='attr' type-id='fc0762ab' visibility='default' filepath='include/linux/cpufreq.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='boost_enabled' type-id='b50a4934' visibility='default' filepath='include/linux/cpufreq.h' line='375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='set_boost' type-id='6a1ad675' visibility='default' filepath='include/linux/cpufreq.h' line='376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='register_em' type-id='bbebd435' visibility='default' filepath='include/linux/cpufreq.h' line='382' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6ddd203f' size-in-bits='64' id='9b92b29b'/>
+      <class-decl name='tipc_media_addr' size-in-bits='272' is-struct='yes' visibility='default' filepath='include/../net/tipc/bearer.h' line='77' column='1' id='9b941952'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='value' type-id='e3dc4fdb' visibility='default' filepath='include/../net/tipc/bearer.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='media_id' type-id='f9b06939' visibility='default' filepath='include/../net/tipc/bearer.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='264'>
+          <var-decl name='broadcast' type-id='f9b06939' visibility='default' filepath='include/../net/tipc/bearer.h' line='80' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='9b94c22b'>
+        <parameter type-id='2bf16f59'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='5d64147c' size-in-bits='64' id='9b9ccb86'/>
+      <pointer-type-def type-id='1ec04219' size-in-bits='64' id='9ba83649'/>
+      <class-decl name='snd_soc_component' size-in-bits='2880' is-struct='yes' visibility='default' filepath='include/sound/soc-component.h' line='182' column='1' id='9ba86a44'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/sound/soc-component.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-component.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name_prefix' type-id='80f4b756' visibility='default' filepath='include/sound/soc-component.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/sound/soc-component.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='card' type-id='3059cd0b' visibility='default' filepath='include/sound/soc-component.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='active' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-component.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='suspended' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-component.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/sound/soc-component.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='card_aux_list' type-id='72f469ec' visibility='default' filepath='include/sound/soc-component.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='card_list' type-id='72f469ec' visibility='default' filepath='include/sound/soc-component.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='driver' type-id='f030c2b8' visibility='default' filepath='include/sound/soc-component.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='dai_list' type-id='72f469ec' visibility='default' filepath='include/sound/soc-component.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='num_dai' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-component.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='regmap' type-id='29af9a71' visibility='default' filepath='include/sound/soc-component.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='val_bytes' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-component.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='io_mutex' type-id='925167dc' visibility='default' filepath='include/sound/soc-component.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='dobj_list' type-id='72f469ec' visibility='default' filepath='include/sound/soc-component.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='dapm' type-id='95201ae5' visibility='default' filepath='include/sound/soc-component.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='init' type-id='48cf6abe' visibility='default' filepath='include/sound/soc-component.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='mark_module' type-id='06b2cd14' visibility='default' filepath='include/sound/soc-component.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='mark_open' type-id='06b2cd14' visibility='default' filepath='include/sound/soc-component.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='mark_hw_params' type-id='06b2cd14' visibility='default' filepath='include/sound/soc-component.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='mark_trigger' type-id='06b2cd14' visibility='default' filepath='include/sound/soc-component.h' line='226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='mark_compr_open' type-id='b7c1d7d5' visibility='default' filepath='include/sound/soc-component.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='mark_pm' type-id='eaa32e2f' visibility='default' filepath='include/sound/soc-component.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='debugfs_root' type-id='27675065' visibility='default' filepath='include/sound/soc-component.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='debugfs_prefix' type-id='80f4b756' visibility='default' filepath='include/sound/soc-component.h' line='232' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4410ddbf' size-in-bits='64' id='9ba8bea7'/>
+      <pointer-type-def type-id='72b61a2d' size-in-bits='64' id='9baaf905'/>
+      <function-type size-in-bits='64' id='9babdafa'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='354f7eb9'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='9bb659f5'>
+        <parameter type-id='9d9e2a39'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='9bbd94a4'>
+        <parameter type-id='2661e0d9'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='19c2251e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='9bbee6d3'>
+        <parameter type-id='08e531de'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='d39738ac' const='yes' id='9bc083a1'/>
+      <function-type size-in-bits='64' id='9bc672dd'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='f8dc9def'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='usb_bos_descriptor' size-in-bits='40' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='844' column='1' id='9bcc816e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='845' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='846' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='wTotalLength' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='848' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bNumDeviceCaps' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='849' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='77d12c79' size-in-bits='64' id='9bdc8381'/>
+      <enum-decl name='ftrace_dump_mode' filepath='include/linux/kernel.h' line='310' column='1' id='9be0e7e4'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DUMP_NONE' value='0'/>
+        <enumerator name='DUMP_ALL' value='1'/>
+        <enumerator name='DUMP_ORIG' value='2'/>
+      </enum-decl>
+      <qualified-type-def type-id='547b1199' const='yes' id='9be24bae'/>
+      <pointer-type-def type-id='92e9b57c' size-in-bits='64' id='9be87662'/>
+      <qualified-type-def type-id='cf8d368d' const='yes' id='9bea5a22'/>
+      <qualified-type-def type-id='88326653' const='yes' id='9bedc94f'/>
+      <pointer-type-def type-id='3e570d92' size-in-bits='64' id='9bf2f36c'/>
+      <qualified-type-def type-id='d53ee986' const='yes' id='9bf7ec75'/>
+      <pointer-type-def type-id='4dc01f59' size-in-bits='64' id='9bf95e81'/>
+      <pointer-type-def type-id='3c0943b2' size-in-bits='64' id='9c02cf50'/>
+      <array-type-def dimensions='1' type-id='47479831' id='9c02e2a6'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <class-decl name='fs_parse_result' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/fs_parser.h' line='53' column='1' id='9c08a09a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='negated' type-id='b50a4934' visibility='default' filepath='include/linux/fs_parser.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab668' visibility='default' filepath='include/linux/fs_parser.h' line='55' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e0c79ce2' size-in-bits='64' id='9c1150bc'/>
+      <typedef-decl name='dma_fence_func_t' type-id='75d065d2' filepath='include/linux/dma-fence.h' line='105' column='1' id='9c175524'/>
+      <typedef-decl name='blkcg_pol_bind_cpd_fn' type-id='6cb73a29' filepath='include/linux/blk-cgroup.h' line='148' column='1' id='9c19dcfc'/>
+      <function-type size-in-bits='64' id='9c1f445d'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='d9d65b21'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='e5411c2c' size-in-bits='1024' id='9c207f89'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <qualified-type-def type-id='3345b082' const='yes' id='9c20d241'/>
+      <function-type size-in-bits='64' id='9c267c11'>
+        <parameter type-id='00ee50b8'/>
+        <parameter type-id='77e79a4b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='40b5eec5' size-in-bits='64' id='9c26ea89'/>
+      <typedef-decl name='uint64_t' type-id='91ce1af9' filepath='include/linux/types.h' line='107' column='1' id='9c313c2d'/>
+      <class-decl name='uio_portio' size-in-bits='832' is-struct='yes' visibility='default' filepath='drivers/uio/uio.c' line='125' column='1' id='9c34bcea'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='drivers/uio/uio.c' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='port' type-id='c62e6860' visibility='default' filepath='drivers/uio/uio.c' line='127' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8c2c98d8' size-in-bits='64' id='9c34c4f6'/>
+      <pointer-type-def type-id='e070d395' size-in-bits='64' id='9c36e869'/>
+      <function-type size-in-bits='64' id='9c43712a'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='usb_ptm_cap_descriptor' size-in-bits='24' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='1093' column='1' id='9c52cc4e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='1094' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='1095' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bDevCapabilityType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='1096' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='isolate_mode_t' type-id='f0981eeb' filepath='include/linux/mmzone.h' line='540' column='1' id='9c5c646e'/>
+      <pointer-type-def type-id='202c5914' size-in-bits='64' id='9c5c88be'/>
+      <pointer-type-def type-id='cd5915d8' size-in-bits='64' id='9c68341e'/>
+      <pointer-type-def type-id='fdcd3504' size-in-bits='64' id='9c688f4e'/>
+      <enum-decl name='netdev_ml_priv_type' filepath='include/linux/netdevice.h' line='1737' column='1' id='9c6bf017'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ML_PRIV_NONE' value='0'/>
+        <enumerator name='ML_PRIV_CAN' value='1'/>
+      </enum-decl>
+      <typedef-decl name='list_cmp_func_t' type-id='0fecf3d5' filepath='include/linux/list_sort.h' line='9' column='1' id='9c752ec9'/>
+      <function-type size-in-bits='64' id='9c757b77'>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='30864cdc'/>
+        <parameter type-id='1d2c2b85'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='9c7a3b7d'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='354f7eb9'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='prev_cputime' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/sched.h' line='314' column='1' id='9c7bf560'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='utime' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='stime' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/sched.h' line='318' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='9c7c185a'>
+        <parameter type-id='feb59272'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='snd_device_state' filepath='include/sound/core.h' line='54' column='1' id='9c857434'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SNDRV_DEV_BUILD' value='0'/>
+        <enumerator name='SNDRV_DEV_REGISTERED' value='1'/>
+        <enumerator name='SNDRV_DEV_DISCONNECTED' value='2'/>
+      </enum-decl>
+      <class-decl name='libipw_device' is-struct='yes' visibility='default' is-declaration-only='yes' id='9c91a761'/>
+      <pointer-type-def type-id='f8a93d65' size-in-bits='64' id='9c946059'/>
+      <pointer-type-def type-id='627c50fc' size-in-bits='64' id='9c9480f6'/>
+      <pointer-type-def type-id='c6169fba' size-in-bits='64' id='9c970268'/>
+      <class-decl name='snd_soc_compr_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/sound/soc.h' line='613' column='1' id='9c97c2f7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='startup' type-id='be315f37' visibility='default' filepath='include/sound/soc.h' line='614' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='shutdown' type-id='4b0aea04' visibility='default' filepath='include/sound/soc.h' line='615' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='set_params' type-id='be315f37' visibility='default' filepath='include/sound/soc.h' line='616' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='trigger' type-id='be315f37' visibility='default' filepath='include/sound/soc.h' line='617' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9a6e6516' size-in-bits='64' id='9c9d090c'/>
+      <qualified-type-def type-id='eb452ce6' const='yes' id='9ca9fcc5'/>
+      <type-decl name='unnamed-enum-underlying-type-32' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='9cac1fee'/>
+      <function-type size-in-bits='64' id='9cad7816'>
+        <parameter type-id='1c475548'/>
+        <parameter type-id='5f8a1ac4'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='9cb37f3f'>
+        <parameter type-id='89df2ee9'/>
+        <parameter type-id='d8e6b335'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='1e6604d7' size-in-bits='64' id='9cbbcc93'/>
+      <qualified-type-def type-id='7359adad' const='yes' id='9cbd1c16'/>
+      <pointer-type-def type-id='fc927268' size-in-bits='64' id='9cc1ac3e'/>
+      <pointer-type-def type-id='53878b76' size-in-bits='64' id='9cc1e100'/>
+      <pointer-type-def type-id='fa07ab8f' size-in-bits='64' id='9cc41107'/>
+      <pointer-type-def type-id='bc5fb15d' size-in-bits='64' id='9cce6b8d'/>
+      <class-decl name='snd_kcontrol_volatile' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/sound/control.h' line='65' column='1' id='9cd807f4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='ed27ccc9' visibility='default' filepath='include/sound/control.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='access' type-id='f0981eeb' visibility='default' filepath='include/sound/control.h' line='67' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='root_domain' size-in-bits='15040' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='806' column='1' id='9cdca91a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='refcount' type-id='49178f86' visibility='default' filepath='kernel/sched/sched.h' line='807' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='rto_count' type-id='49178f86' visibility='default' filepath='kernel/sched/sched.h' line='808' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='kernel/sched/sched.h' line='809' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='span' type-id='b16b461b' visibility='default' filepath='kernel/sched/sched.h' line='810' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='online' type-id='b16b461b' visibility='default' filepath='kernel/sched/sched.h' line='811' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='overload' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='818' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='overutilized' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='821' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dlo_mask' type-id='b16b461b' visibility='default' filepath='kernel/sched/sched.h' line='827' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='dlo_count' type-id='49178f86' visibility='default' filepath='kernel/sched/sched.h' line='828' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='dl_bw' type-id='51a92649' visibility='default' filepath='kernel/sched/sched.h' line='829' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='cpudl' type-id='a9cef929' visibility='default' filepath='kernel/sched/sched.h' line='830' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='visit_gen' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='839' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='rto_push_work' type-id='9281c70f' visibility='default' filepath='kernel/sched/sched.h' line='845' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='rto_lock' type-id='f5c90b3f' visibility='default' filepath='kernel/sched/sched.h' line='846' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='rto_loop' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='848' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='rto_cpu' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='849' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='rto_loop_next' type-id='49178f86' visibility='default' filepath='kernel/sched/sched.h' line='851' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='rto_loop_start' type-id='49178f86' visibility='default' filepath='kernel/sched/sched.h' line='852' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='rto_mask' type-id='b16b461b' visibility='default' filepath='kernel/sched/sched.h' line='858' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='cpupri' type-id='afe3b3de' visibility='default' filepath='kernel/sched/sched.h' line='859' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14400'>
+          <var-decl name='max_cpu_capacity' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='861' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14464'>
+          <var-decl name='pd' type-id='30f9749f' visibility='default' filepath='kernel/sched/sched.h' line='867' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14528'>
+          <var-decl name='android_vendor_data1' type-id='20b279f0' visibility='default' filepath='kernel/sched/sched.h' line='869' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14784'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='871' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14848'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='872' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14912'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='873' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14976'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='874' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a72f8b53' size-in-bits='64' id='9ce2e6e7'/>
+      <qualified-type-def type-id='8b7a2cd1' const='yes' id='9ce849da'/>
+      <class-decl name='snd_soc_tplg_widget_events' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/sound/soc-topology.h' line='98' column='1' id='9cec1ba7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='1dc6a898' visibility='default' filepath='include/sound/soc-topology.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='event_handler' type-id='af92413d' visibility='default' filepath='include/sound/soc-topology.h' line='100' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='80126e32' size-in-bits='64' id='9d025b00'/>
+      <function-type size-in-bits='64' id='9d05a3e9'>
+        <parameter type-id='cc26d15f'/>
+        <parameter type-id='3dad1a48'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='faf1ab29' const='yes' id='9d07f7d6'/>
+      <qualified-type-def type-id='b569b18c' const='yes' id='9d085135'/>
+      <class-decl name='drm_mode_modeinfo' size-in-bits='544' is-struct='yes' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='242' column='1' id='9d0ae2a2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='clock' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='hdisplay' type-id='d315442e' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='hsync_start' type-id='d315442e' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hsync_end' type-id='d315442e' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='htotal' type-id='d315442e' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='hskew' type-id='d315442e' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='vdisplay' type-id='d315442e' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='vsync_start' type-id='d315442e' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='vsync_end' type-id='d315442e' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='vtotal' type-id='d315442e' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='vscan' type-id='d315442e' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='vrefresh' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/uapi/drm/drm_mode.h' line='259' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='reserved_mem_ops' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/of_reserved_mem.h' line='21' column='1' id='9d0cc828'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='device_init' type-id='c3f1f74d' visibility='default' filepath='include/linux/of_reserved_mem.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='device_release' type-id='8e91ceac' visibility='default' filepath='include/linux/of_reserved_mem.h' line='24' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c0a7be7f' size-in-bits='64' id='9d109fcf'/>
+      <pointer-type-def type-id='77e739eb' size-in-bits='64' id='9d11a2ef'/>
+      <pointer-type-def type-id='b545ce08' size-in-bits='64' id='9d1360ce'/>
+      <pointer-type-def type-id='23e41d37' size-in-bits='64' id='9d19d4a7'/>
+      <pointer-type-def type-id='95e62b18' size-in-bits='64' id='9d1da97a'/>
+      <class-decl name='sdhci_host' size-in-bits='10752' is-struct='yes' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='369' column='1' id='9d22e201'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hw_name' type-id='80f4b756' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='371' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='quirks' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='373' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='quirks2' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='440' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='irq' type-id='95e97e5e' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='485' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ioaddr' type-id='eaa32e2f' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mapbase' type-id='2522883d' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='bounce_buffer' type-id='26a90f95' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='bounce_addr' type-id='cf29c9b3' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='bounce_buffer_size' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ops' type-id='4ba2bd6c' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='492' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='mmc' type-id='dd575c43' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='495' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='mmc_host_ops' type-id='f2d6d1c0' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='496' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='dma_mask' type-id='91ce1af9' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='497' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='led' type-id='6e0e17b0' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='500' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5760'>
+          <var-decl name='led_name' type-id='16dc656a' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='501' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6016'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='504' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6048'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='version' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6112'>
+          <var-decl name='max_clk' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='523' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6144'>
+          <var-decl name='timeout_clk' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='524' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6176'>
+          <var-decl name='max_timeout_count' type-id='f9b06939' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='525' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6208'>
+          <var-decl name='clk_mul' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='526' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6240'>
+          <var-decl name='clock' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='528' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6272'>
+          <var-decl name='pwr' type-id='f9b06939' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='529' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6280'>
+          <var-decl name='runtime_suspended' type-id='b50a4934' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='531' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6288'>
+          <var-decl name='bus_on' type-id='b50a4934' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='532' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6296'>
+          <var-decl name='preset_enabled' type-id='b50a4934' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='533' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6304'>
+          <var-decl name='pending_reset' type-id='b50a4934' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6312'>
+          <var-decl name='irq_wake_enabled' type-id='b50a4934' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='535' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6320'>
+          <var-decl name='v4_mode' type-id='b50a4934' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='536' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6328'>
+          <var-decl name='use_external_dma' type-id='b50a4934' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='537' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6336'>
+          <var-decl name='always_defer_done' type-id='b50a4934' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='538' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6400'>
+          <var-decl name='mrqs_done' type-id='c2c0ece0' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='540' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6528'>
+          <var-decl name='cmd' type-id='6df3750c' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='541' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6592'>
+          <var-decl name='data_cmd' type-id='6df3750c' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='542' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6656'>
+          <var-decl name='deferred_cmd' type-id='6df3750c' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='543' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6720'>
+          <var-decl name='data' type-id='6de64ec1' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='544' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6784'>
+          <var-decl name='data_early' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='545' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6848'>
+          <var-decl name='sg_miter' type-id='52378ac1' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='547' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='blocks' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='548' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7456'>
+          <var-decl name='sg_count' type-id='95e97e5e' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='max_adma' type-id='95e97e5e' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='551' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='adma_table' type-id='eaa32e2f' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='553' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='align_buffer' type-id='eaa32e2f' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='adma_table_sz' type-id='b59d7dce' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='556' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='align_buffer_sz' type-id='b59d7dce' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='557' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='adma_addr' type-id='cf29c9b3' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='559' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='align_addr' type-id='cf29c9b3' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='560' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='desc_sz' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='562' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7968'>
+          <var-decl name='alloc_desc_sz' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='563' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='complete_wq' type-id='242e3d19' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='complete_work' type-id='ef9025d0' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8448'>
+          <var-decl name='timer' type-id='abe41e67' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8896'>
+          <var-decl name='data_timer' type-id='abe41e67' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='caps' type-id='19c2251e' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='576' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9376'>
+          <var-decl name='caps1' type-id='19c2251e' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9408'>
+          <var-decl name='read_caps' type-id='b50a4934' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='578' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9416'>
+          <var-decl name='sdhci_core_to_disable_vqmmc' type-id='b50a4934' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='580' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9440'>
+          <var-decl name='ocr_avail_sdio' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='581' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9472'>
+          <var-decl name='ocr_avail_sd' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='582' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9504'>
+          <var-decl name='ocr_avail_mmc' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='583' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9536'>
+          <var-decl name='ocr_mask' type-id='19c2251e' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='584' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9568'>
+          <var-decl name='timing' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='586' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='thread_isr' type-id='19c2251e' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='588' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9632'>
+          <var-decl name='ier' type-id='19c2251e' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='591' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9664'>
+          <var-decl name='cqe_on' type-id='b50a4934' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='593' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9696'>
+          <var-decl name='cqe_ier' type-id='19c2251e' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='594' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9728'>
+          <var-decl name='cqe_err_ier' type-id='19c2251e' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='595' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9792'>
+          <var-decl name='buf_ready_int' type-id='b5ab048f' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='597' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9984'>
+          <var-decl name='tuning_done' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='598' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10016'>
+          <var-decl name='tuning_count' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='600' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10048'>
+          <var-decl name='tuning_mode' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='601' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10080'>
+          <var-decl name='tuning_err' type-id='f0981eeb' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='602' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10112'>
+          <var-decl name='tuning_delay' type-id='95e97e5e' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='607' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10144'>
+          <var-decl name='tuning_loop_count' type-id='95e97e5e' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='608' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10176'>
+          <var-decl name='sdma_boundary' type-id='19c2251e' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10208'>
+          <var-decl name='adma_table_cnt' type-id='19c2251e' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='614' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10240'>
+          <var-decl name='data_timeout' type-id='91ce1af9' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='616' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10304'>
+          <var-decl name='' type-id='ac5ab5cf' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='623' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10752'>
+          <var-decl name='private' type-id='c99b5ecd' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='631' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='526b1662' size-in-bits='64' id='9d25db30'/>
+      <qualified-type-def type-id='80f4b756' restrict='yes' id='9d26089a'/>
+      <array-type-def dimensions='1' type-id='3f1a6b60' size-in-bits='352' id='9d263779'>
+        <subrange length='11' type-id='7ff19f0f' id='847bc017'/>
+      </array-type-def>
+      <pointer-type-def type-id='98f6607e' size-in-bits='64' id='9d2cef34'/>
+      <array-type-def dimensions='1' type-id='3f1a6b60' size-in-bits='512' id='9d2cf33e'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <pointer-type-def type-id='2d6d6530' size-in-bits='64' id='9d3627ee'/>
+      <pointer-type-def type-id='2c7a2d9f' size-in-bits='64' id='9d3cfa5c'/>
+      <function-type size-in-bits='64' id='9d4721a2'>
+        <parameter type-id='b9af02c3'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='9d4a3248'>
+        <parameter type-id='798c29b7'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='40afefd0' size-in-bits='64' id='9d5147b2'/>
+      <pointer-type-def type-id='504d3c75' size-in-bits='64' id='9d532fc5'/>
+      <function-type size-in-bits='64' id='9d558819'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='46b5bb33' size-in-bits='64' id='9d57e433'/>
+      <pointer-type-def type-id='44f52e9d' size-in-bits='64' id='9d5923ed'/>
+      <function-type size-in-bits='64' id='9d5bbaaf'>
+        <parameter type-id='c67366c7'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='053f72e5' size-in-bits='64' id='9d632ac5'/>
+      <pointer-type-def type-id='ca7f7878' size-in-bits='64' id='9d640202'/>
+      <class-decl name='perf_event_context' size-in-bits='2240' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='788' column='1' id='9d67acd5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pmu' type-id='0906f5b9' visibility='default' filepath='include/linux/perf_event.h' line='789' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/perf_event.h' line='794' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='include/linux/perf_event.h' line='800' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='active_ctx_list' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='802' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='pinned_groups' type-id='3643bc2a' visibility='default' filepath='include/linux/perf_event.h' line='803' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='flexible_groups' type-id='3643bc2a' visibility='default' filepath='include/linux/perf_event.h' line='804' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='event_list' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='805' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='pinned_active' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='807' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='flexible_active' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='808' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='nr_events' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='810' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='nr_active' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='811' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='is_active' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='812' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='nr_stat' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='813' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='nr_freq' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='814' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='rotate_disable' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='815' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='rotate_necessary' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='820' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1504'>
+          <var-decl name='refcount' type-id='64615833' visibility='default' filepath='include/linux/perf_event.h' line='821' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='task' type-id='f23e2572' visibility='default' filepath='include/linux/perf_event.h' line='822' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='time' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='827' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='timestamp' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='828' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='timeoffset' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='829' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='parent_ctx' type-id='b9419dc5' visibility='default' filepath='include/linux/perf_event.h' line='835' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='parent_gen' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='836' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='generation' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='837' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='pin_count' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='838' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='task_ctx_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/perf_event.h' line='842' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/linux/perf_event.h' line='843' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_cdc_mdlm_desc' size-in-bits='168' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='157' column='1' id='9d7259bb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bDescriptorSubType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bcdVersion' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='bGUID' type-id='9396cabb' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='163' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f4d09092' size-in-bits='64' id='9d7e7820'/>
+      <array-type-def dimensions='1' type-id='ab33c616' size-in-bits='256' id='9d8055ec'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <class-decl name='v4l2_m2m_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='42' column='1' id='9d82990b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='device_run' type-id='b7f9d8e6' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='job_ready' type-id='b9b212f5' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='job_abort' type-id='b7f9d8e6' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_compress_ops' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/sound/soc-component.h' line='29' column='1' id='9d8e7276'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='open' type-id='e5c0a9a2' visibility='default' filepath='include/sound/soc-component.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='free' type-id='e5c0a9a2' visibility='default' filepath='include/sound/soc-component.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='set_params' type-id='b66e3fa0' visibility='default' filepath='include/sound/soc-component.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get_params' type-id='9c688f4e' visibility='default' filepath='include/sound/soc-component.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='set_metadata' type-id='cdd9c579' visibility='default' filepath='include/sound/soc-component.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='get_metadata' type-id='cdd9c579' visibility='default' filepath='include/sound/soc-component.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='trigger' type-id='db0bc269' visibility='default' filepath='include/sound/soc-component.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pointer' type-id='1261411f' visibility='default' filepath='include/sound/soc-component.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='copy' type-id='6054c43d' visibility='default' filepath='include/sound/soc-component.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='mmap' type-id='1e27a121' visibility='default' filepath='include/sound/soc-component.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='ack' type-id='59b60261' visibility='default' filepath='include/sound/soc-component.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='get_caps' type-id='19da32b9' visibility='default' filepath='include/sound/soc-component.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='get_codec_caps' type-id='2435959c' visibility='default' filepath='include/sound/soc-component.h' line='62' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='eaa06085' size-in-bits='64' id='9d8ff465'/>
+      <class-decl name='pd_chunked_ext_message_data' size-in-bits='224' is-struct='yes' visibility='default' filepath='include/linux/usb/pd.h' line='184' column='1' id='9d90420f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='header' type-id='23119536' visibility='default' filepath='include/linux/usb/pd.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='data' type-id='50390288' visibility='default' filepath='include/linux/usb/pd.h' line='186' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9c52cc4e' size-in-bits='64' id='9d94f8e4'/>
+      <function-type size-in-bits='64' id='9d9592f7'>
+        <parameter type-id='13103032'/>
+        <parameter type-id='13103032'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='76c7d88b' size-in-bits='64' id='9d9a0573'/>
+      <function-type size-in-bits='64' id='9d9db488'>
+        <parameter type-id='b47b0d41'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='1f190221' size-in-bits='64' id='9d9e2a39'/>
+      <function-type size-in-bits='64' id='9d9f3e8b'>
+        <parameter type-id='b11825ce'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='ps2dev' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/libps2.h' line='33' column='1' id='9da0fa51'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='serio' type-id='95dc69d1' visibility='default' filepath='include/linux/libps2.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cmd_mutex' type-id='925167dc' visibility='default' filepath='include/linux/libps2.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='wait' type-id='b5ab048f' visibility='default' filepath='include/linux/libps2.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/libps2.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='cmdbuf' type-id='d2f7b56a' visibility='default' filepath='include/linux/libps2.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='cmdcnt' type-id='f9b06939' visibility='default' filepath='include/linux/libps2.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='776'>
+          <var-decl name='nak' type-id='f9b06939' visibility='default' filepath='include/linux/libps2.h' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='int64_t' type-id='9b7c55ef' filepath='include/linux/types.h' line='109' column='1' id='9da381c4'/>
+      <function-type size-in-bits='64' id='9da48162'>
+        <parameter type-id='95dc69d1'/>
+        <parameter type-id='002ac4a6'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='46' column='1' id='9da50c8f' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='clock_rate' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='clock_type' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='loopback' type-id='8efea9e5' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='slot_map' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='50' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='icc_path' size-in-bits='128' is-struct='yes' visibility='default' filepath='drivers/interconnect/internal.h' line='38' column='1' id='9da806d8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/interconnect/internal.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_nodes' type-id='b59d7dce' visibility='default' filepath='drivers/interconnect/internal.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='reqs' type-id='ebc5312d' visibility='default' filepath='drivers/interconnect/internal.h' line='41' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='91ce1af9' size-in-bits='6144' id='9db16187'>
+        <subrange length='96' type-id='7ff19f0f' id='1df62250'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='9db69fa3'>
+        <parameter type-id='5771c601'/>
+        <parameter type-id='78c01427'/>
+        <return type-id='954953c8'/>
+      </function-type>
+      <class-decl name='qc_info' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/quota.h' line='421' column='1' id='9dbdc7de'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='i_fieldmask' type-id='95e97e5e' visibility='default' filepath='include/linux/quota.h' line='422' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='i_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/quota.h' line='423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='i_spc_timelimit' type-id='f0981eeb' visibility='default' filepath='include/linux/quota.h' line='424' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='i_ino_timelimit' type-id='f0981eeb' visibility='default' filepath='include/linux/quota.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='i_rt_spc_timelimit' type-id='f0981eeb' visibility='default' filepath='include/linux/quota.h' line='427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='i_spc_warnlimit' type-id='f0981eeb' visibility='default' filepath='include/linux/quota.h' line='428' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='i_ino_warnlimit' type-id='f0981eeb' visibility='default' filepath='include/linux/quota.h' line='429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='i_rt_spc_warnlimit' type-id='f0981eeb' visibility='default' filepath='include/linux/quota.h' line='430' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='xfrm_algo_encr_info' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/xfrm.h' line='1394' column='1' id='9dbf2e50'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='geniv' type-id='26a90f95' visibility='default' filepath='include/net/xfrm.h' line='1395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='blockbits' type-id='1dc6a898' visibility='default' filepath='include/net/xfrm.h' line='1396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='defkeybits' type-id='1dc6a898' visibility='default' filepath='include/net/xfrm.h' line='1397' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='956e764e' size-in-bits='64' id='9dc40234'/>
+      <function-type size-in-bits='64' id='9dcba7d1'>
+        <parameter type-id='10216dc5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c1501314' size-in-bits='64' id='9dd535f2'/>
+      <typedef-decl name='blkcg_pol_init_cpd_fn' type-id='6cb73a29' filepath='include/linux/blk-cgroup.h' line='146' column='1' id='9de900c3'/>
+      <function-type size-in-bits='64' id='9defd450'>
+        <parameter type-id='d91dfd7a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='a7502152' const='yes' id='9df06605'/>
+      <function-type size-in-bits='64' id='9df0e286'>
+        <parameter type-id='13d38dcb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='7292109c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='fscrypt_direct_key' is-struct='yes' visibility='default' is-declaration-only='yes' id='9df4c74e'/>
+      <class-decl name='bvec_iter' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/bvec.h' line='38' column='1' id='9e0198d8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bi_sector' type-id='a42536cd' visibility='default' filepath='include/linux/bvec.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bi_size' type-id='f0981eeb' visibility='default' filepath='include/linux/bvec.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='bi_idx' type-id='f0981eeb' visibility='default' filepath='include/linux/bvec.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bi_bvec_done' type-id='f0981eeb' visibility='default' filepath='include/linux/bvec.h' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='b683d7fe' const='yes' id='9e02903b'/>
+      <pointer-type-def type-id='73adb477' size-in-bits='64' id='9e036c13'/>
+      <class-decl name='kernfs_elem_attr' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/kernfs.h' line='113' column='1' id='9e04468e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='d37373f6' visibility='default' filepath='include/linux/kernfs.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='open' type-id='627d9f9e' visibility='default' filepath='include/linux/kernfs.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='size' type-id='69bf7bee' visibility='default' filepath='include/linux/kernfs.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='notify_next' type-id='150efd3f' visibility='default' filepath='include/linux/kernfs.h' line='117' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='module_param_attrs' size-in-bits='384' is-struct='yes' visibility='default' filepath='kernel/params.c' line='547' column='1' id='9e045430'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='num' type-id='f0981eeb' visibility='default' filepath='kernel/params.c' line='549' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='grp' type-id='e4af473b' visibility='default' filepath='kernel/params.c' line='550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='attrs' type-id='2d2c12ad' visibility='default' filepath='kernel/params.c' line='551' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='rhashtable' size-in-bits='1344' is-struct='yes' visibility='default' filepath='include/linux/rhashtable-types.h' line='81' column='1' id='9e095f93'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tbl' type-id='35e7a722' visibility='default' filepath='include/linux/rhashtable-types.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='key_len' type-id='f0981eeb' visibility='default' filepath='include/linux/rhashtable-types.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='max_elems' type-id='f0981eeb' visibility='default' filepath='include/linux/rhashtable-types.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='p' type-id='e4c11782' visibility='default' filepath='include/linux/rhashtable-types.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='rhlist' type-id='b50a4934' visibility='default' filepath='include/linux/rhashtable-types.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='run_work' type-id='ef9025d0' visibility='default' filepath='include/linux/rhashtable-types.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='include/linux/rhashtable-types.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/rhashtable-types.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='nelems' type-id='49178f86' visibility='default' filepath='include/linux/rhashtable-types.h' line='90' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b7e6b484' size-in-bits='64' id='9e16bfe2'/>
+      <typedef-decl name='__kernel_size_t' type-id='447da2ae' filepath='include/uapi/asm-generic/posix_types.h' line='72' column='1' id='9e19ad6e'/>
+      <pointer-type-def type-id='283e536e' size-in-bits='64' id='9e1d140c'/>
+      <function-type size-in-bits='64' id='9e22fc50'>
+        <parameter type-id='b88dd945'/>
+        <parameter type-id='10a7f6b4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='eeeb3192' size-in-bits='64' id='9e27a8d4'/>
+      <pointer-type-def type-id='2fdc535f' size-in-bits='64' id='9e2873bb'/>
+      <pointer-type-def type-id='6d06c6cd' size-in-bits='64' id='9e33b18d'/>
+      <function-type size-in-bits='64' id='9e33bce1'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='7f9b4c1b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='282c7c32' size-in-bits='64' id='9e440830'/>
+      <function-type size-in-bits='64' id='9e497d29'>
+        <parameter type-id='1c475548'/>
+        <parameter type-id='f8dc9def'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='12a2e88f' size-in-bits='64' id='9e4995c7'/>
+      <class-decl name='bpf_map' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='160' column='1' id='9e4acc7a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='3a109e70' visibility='default' filepath='include/linux/bpf.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='inner_map_meta' type-id='00ee50b8' visibility='default' filepath='include/linux/bpf.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='security' type-id='eaa32e2f' visibility='default' filepath='include/linux/bpf.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='map_type' type-id='da8f27ee' visibility='default' filepath='include/linux/bpf.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='key_size' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='value_size' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='max_entries' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='map_flags' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='spin_lock_off' type-id='95e97e5e' visibility='default' filepath='include/linux/bpf.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='timer_off' type-id='95e97e5e' visibility='default' filepath='include/linux/bpf.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='id' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='numa_node' type-id='95e97e5e' visibility='default' filepath='include/linux/bpf.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='btf_key_type_id' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='btf_value_type_id' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='btf' type-id='a469220f' visibility='default' filepath='include/linux/bpf.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='memcg' type-id='223696fb' visibility='default' filepath='include/linux/bpf.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='name' type-id='ac1fa8c0' visibility='default' filepath='include/linux/bpf.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='btf_vmlinux_value_type_id' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='bypass_spec_v1' type-id='b50a4934' visibility='default' filepath='include/linux/bpf.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='872'>
+          <var-decl name='frozen' type-id='b50a4934' visibility='default' filepath='include/linux/bpf.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='refcnt' type-id='28ee064c' visibility='default' filepath='include/linux/bpf.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='usercnt' type-id='28ee064c' visibility='default' filepath='include/linux/bpf.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/linux/bpf.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='freeze_mutex' type-id='925167dc' visibility='default' filepath='include/linux/bpf.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='writecnt' type-id='28ee064c' visibility='default' filepath='include/linux/bpf.h' line='197' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ccdf2931' size-in-bits='64' id='9e4db581'/>
+      <pointer-type-def type-id='3e497762' size-in-bits='64' id='9e5416b4'/>
+      <pointer-type-def type-id='acc63fdf' size-in-bits='64' id='9e6a6c02'/>
+      <pointer-type-def type-id='5352365e' size-in-bits='64' id='9e6bb89c'/>
+      <pointer-type-def type-id='fdb55010' size-in-bits='64' id='9e6d4b4e'/>
+      <pointer-type-def type-id='be36c378' size-in-bits='64' id='9e6fc9aa'/>
+      <class-decl name='pci_bus_region' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/pci.h' line='792' column='1' id='9e73640b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='3b8255e6' visibility='default' filepath='include/linux/pci.h' line='793' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='end' type-id='3b8255e6' visibility='default' filepath='include/linux/pci.h' line='794' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='daf33c64' size-in-bits='64' id='9e80f729'/>
+      <class-decl name='lruvec' size-in-bits='9728' is-struct='yes' visibility='default' filepath='include/linux/mmzone.h' line='503' column='1' id='9e8c0698'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lists' type-id='e4e01aff' visibility='default' filepath='include/linux/mmzone.h' line='504' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='lru_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/mmzone.h' line='506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='anon_cost' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='file_cost' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='513' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='nonresident_age' type-id='f22a8abb' visibility='default' filepath='include/linux/mmzone.h' line='515' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='refaults' type-id='f05e8e77' visibility='default' filepath='include/linux/mmzone.h' line='517' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='lrugen' type-id='ec861b75' visibility='default' filepath='include/linux/mmzone.h' line='522' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='mm_state' type-id='f11851b8' visibility='default' filepath='include/linux/mmzone.h' line='524' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='pgdat' type-id='c876a7a5' visibility='default' filepath='include/linux/mmzone.h' line='527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9664'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/linux/mmzone.h' line='529' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6fe1603d' size-in-bits='64' id='9e8dca7d'/>
+      <array-type-def dimensions='1' type-id='95e97e5e' size-in-bits='1024' id='9e942f0d'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='9e9565b9'>
+        <parameter type-id='eefe253e'/>
+        <parameter type-id='b6733265'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='cc4a63b9' size-in-bits='64' id='9e99ecc1'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/sockptr.h' line='14' column='1' id='9ea5687a' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab674' visibility='default' filepath='include/linux/sockptr.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='is_kernel' type-id='b50a4934' visibility='default' filepath='include/linux/sockptr.h' line='19' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='hid_report' size-in-bits='16896' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='486' column='1' id='9ea68709'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hidinput_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='id' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='application' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='491' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='field' type-id='b5f2d796' visibility='default' filepath='include/linux/hid.h' line='492' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16768'>
+          <var-decl name='maxfield' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='493' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16800'>
+          <var-decl name='size' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='494' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16832'>
+          <var-decl name='device' type-id='37175e4d' visibility='default' filepath='include/linux/hid.h' line='495' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='9ea75344'>
+        <parameter type-id='e90f4666'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='usb_mon_operations' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/usb/hcd.h' line='723' column='1' id='9eb0598f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='urb_submit' type-id='858575b8' visibility='default' filepath='include/linux/usb/hcd.h' line='724' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='urb_submit_error' type-id='dc6fffa7' visibility='default' filepath='include/linux/usb/hcd.h' line='725' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='urb_complete' type-id='dc6fffa7' visibility='default' filepath='include/linux/usb/hcd.h' line='726' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='fdbf7a0f' size-in-bits='88' id='9eb11084'>
+        <subrange length='11' type-id='7ff19f0f' id='847bc017'/>
+      </array-type-def>
+      <class-decl name='wb_completion' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/backing-dev-defs.h' line='69' column='1' id='9eb3e00b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cnt' type-id='49178f86' visibility='default' filepath='include/linux/backing-dev-defs.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='waitq' type-id='03d48e96' visibility='default' filepath='include/linux/backing-dev-defs.h' line='71' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='58b9b3eb' const='yes' id='9eb7236e'/>
+      <class-decl name='hdmi_drm_infoframe' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/hdmi.h' line='193' column='1' id='9ebab137'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='c573b339' visibility='default' filepath='include/linux/hdmi.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='version' type-id='002ac4a6' visibility='default' filepath='include/linux/hdmi.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='length' type-id='002ac4a6' visibility='default' filepath='include/linux/hdmi.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='eotf' type-id='7b330cb5' visibility='default' filepath='include/linux/hdmi.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='metadata_type' type-id='46a5cd93' visibility='default' filepath='include/linux/hdmi.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='display_primaries' type-id='b7bcaa68' visibility='default' filepath='include/linux/hdmi.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='white_point' type-id='e7f43fdb' visibility='default' filepath='include/linux/hdmi.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='max_display_mastering_luminance' type-id='1dc6a898' visibility='default' filepath='include/linux/hdmi.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='min_display_mastering_luminance' type-id='1dc6a898' visibility='default' filepath='include/linux/hdmi.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='max_cll' type-id='1dc6a898' visibility='default' filepath='include/linux/hdmi.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='304'>
+          <var-decl name='max_fall' type-id='1dc6a898' visibility='default' filepath='include/linux/hdmi.h' line='208' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='9ebac747'>
+        <parameter type-id='8f4bc7f1'/>
+        <parameter type-id='3df9fd28'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='ehci_hrtimer_event' filepath='drivers/usb/host/ehci.h' line='94' column='1' id='9ebf0a72'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='EHCI_HRTIMER_POLL_ASS' value='0'/>
+        <enumerator name='EHCI_HRTIMER_POLL_PSS' value='1'/>
+        <enumerator name='EHCI_HRTIMER_POLL_DEAD' value='2'/>
+        <enumerator name='EHCI_HRTIMER_UNLINK_INTR' value='3'/>
+        <enumerator name='EHCI_HRTIMER_FREE_ITDS' value='4'/>
+        <enumerator name='EHCI_HRTIMER_ACTIVE_UNLINK' value='5'/>
+        <enumerator name='EHCI_HRTIMER_START_UNLINK_INTR' value='6'/>
+        <enumerator name='EHCI_HRTIMER_ASYNC_UNLINKS' value='7'/>
+        <enumerator name='EHCI_HRTIMER_IAA_WATCHDOG' value='8'/>
+        <enumerator name='EHCI_HRTIMER_DISABLE_PERIODIC' value='9'/>
+        <enumerator name='EHCI_HRTIMER_DISABLE_ASYNC' value='10'/>
+        <enumerator name='EHCI_HRTIMER_IO_WATCHDOG' value='11'/>
+        <enumerator name='EHCI_HRTIMER_NUM_EVENTS' value='12'/>
+      </enum-decl>
+      <pointer-type-def type-id='a02c006b' size-in-bits='64' id='9ec870df'/>
+      <pointer-type-def type-id='23610dc7' size-in-bits='64' id='9ec8ec17'/>
+      <qualified-type-def type-id='4df659d8' const='yes' id='9ecaa6bf'/>
+      <function-type size-in-bits='64' id='9ecd0e66'>
+        <parameter type-id='f23e2572'/>
+        <parameter type-id='85d57723'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='pmd_t' type-id='b7942455' filepath='arch/arm64/include/asm/pgtable-types.h' line='28' column='1' id='9ecf9226'/>
+      <pointer-type-def type-id='44a1ec32' size-in-bits='64' id='9ed060a0'/>
+      <pointer-type-def type-id='dd082beb' size-in-bits='64' id='9ed36ca7'/>
+      <function-type size-in-bits='64' id='9ed97fed'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ethtool_eth_phy_stats' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/ethtool.h' line='291' column='1' id='9edde41e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='SymbolErrorDuringCarrier' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='292' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='9ee64233'>
+        <parameter type-id='10216dc5'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='89aea402' size-in-bits='64' id='9ee77e60'/>
+      <function-type size-in-bits='64' id='9eea6bb5'>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='1c936db9'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='29843697' size-in-bits='64' id='9eead88f'/>
+      <pointer-type-def type-id='7253d28f' size-in-bits='64' id='9ef499bf'/>
+      <function-type size-in-bits='64' id='9efbfb11'>
+        <parameter type-id='eaa32e2f' name='worker_ptr'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='FSE_DTable' type-id='f0981eeb' filepath='lib/zstd/fse.h' line='185' column='1' id='9f089557'/>
+      <pointer-type-def type-id='6cec0f5a' size-in-bits='64' id='9f0b9c3c'/>
+      <pointer-type-def type-id='746df737' size-in-bits='64' id='9f1392b3'/>
+      <array-type-def dimensions='1' type-id='8ff9530e' size-in-bits='320' id='9f18d529'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='9f19269b'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='9f1d7608'>
+        <parameter type-id='d1feb554'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='8ff9530e' size-in-bits='128' id='9f1f90ee'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <qualified-type-def type-id='6f6b42ed' const='yes' id='9f25e800'/>
+      <pointer-type-def type-id='e19b8aa7' size-in-bits='64' id='9f2634eb'/>
+      <qualified-type-def type-id='5f8345aa' const='yes' id='9f26676f'/>
+      <pointer-type-def type-id='eab6ec52' size-in-bits='64' id='9f2abc7c'/>
+      <pointer-type-def type-id='a7832498' size-in-bits='64' id='9f2cce4b'/>
+      <class-decl name='freq_attr' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/cpufreq.h' line='277' column='1' id='9f2d4ea3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='attr' type-id='a6222917' visibility='default' filepath='include/linux/cpufreq.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='show' type-id='7126cf8f' visibility='default' filepath='include/linux/cpufreq.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='store' type-id='880ef693' visibility='default' filepath='include/linux/cpufreq.h' line='280' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fib6_node' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/net/ip6_fib.h' line='75' column='1' id='9f30e4ad'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='parent' type-id='f7b83e6d' visibility='default' filepath='include/net/ip6_fib.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='left' type-id='f7b83e6d' visibility='default' filepath='include/net/ip6_fib.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='right' type-id='f7b83e6d' visibility='default' filepath='include/net/ip6_fib.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='leaf' type-id='fe454a75' visibility='default' filepath='include/net/ip6_fib.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='fn_bit' type-id='d315442e' visibility='default' filepath='include/net/ip6_fib.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='fn_flags' type-id='d315442e' visibility='default' filepath='include/net/ip6_fib.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='fn_sernum' type-id='95e97e5e' visibility='default' filepath='include/net/ip6_fib.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='rr_ptr' type-id='fe454a75' visibility='default' filepath='include/net/ip6_fib.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/ip6_fib.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/ip6_fib.h' line='90' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ba7d92ee' size-in-bits='64' id='9f3175a0'/>
+      <pointer-type-def type-id='8684c7e6' size-in-bits='64' id='9f35b348'/>
+      <class-decl name='v4l2_vp8_entropy' size-in-bits='8832' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1773' column='1' id='9f39f18e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='coeff_probs' type-id='96a07b89' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1774' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8448'>
+          <var-decl name='y_mode_probs' type-id='c213d3d4' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1775' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8480'>
+          <var-decl name='uv_mode_probs' type-id='c216126b' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1776' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8504'>
+          <var-decl name='mv_probs' type-id='fa0a1f4c' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1777' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8808'>
+          <var-decl name='padding' type-id='c216126b' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1778' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='9f39f396'>
+        <parameter type-id='2cb4dc09'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c19e9dd9' size-in-bits='64' id='9f3a0131'/>
+      <class-decl name='hwrng' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/linux/hw_random.h' line='39' column='1' id='9f3c2055'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/hw_random.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='init' type-id='83a85211' visibility='default' filepath='include/linux/hw_random.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cleanup' type-id='844c2e84' visibility='default' filepath='include/linux/hw_random.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='data_present' type-id='0b1bf018' visibility='default' filepath='include/linux/hw_random.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='data_read' type-id='81767071' visibility='default' filepath='include/linux/hw_random.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='read' type-id='c38df6d7' visibility='default' filepath='include/linux/hw_random.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='priv' type-id='7359adad' visibility='default' filepath='include/linux/hw_random.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='quality' type-id='8efea9e5' visibility='default' filepath='include/linux/hw_random.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/hw_random.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='ref' type-id='400fb07b' visibility='default' filepath='include/linux/hw_random.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='cleanup_done' type-id='f9fef04f' visibility='default' filepath='include/linux/hw_random.h' line='52' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='165b46a0' size-in-bits='64' id='9f403612'/>
+      <class-decl name='devlink_port_region_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='681' column='1' id='9f48327c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/net/devlink.h' line='682' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='destructor' type-id='b7f9d8e6' visibility='default' filepath='include/net/devlink.h' line='683' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='snapshot' type-id='8f9a9374' visibility='default' filepath='include/net/devlink.h' line='684' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/net/devlink.h' line='688' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='933375ec' size-in-bits='64' id='9f548f9a'/>
+      <function-type size-in-bits='64' id='9f57d337'>
+        <parameter type-id='3e31633b'/>
+        <parameter type-id='fae597a1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='9f5a4f22'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='b53e8dbb'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='9f5ca0a3'>
+        <parameter type-id='572fbdca'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='3516ab98' size-in-bits='64' id='9f5eb43a'/>
+      <class-decl name='kset_uevent_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/kobject.h' line='171' column='1' id='9f6abc71'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='filter' type-id='2a3ad845' visibility='default' filepath='include/linux/kobject.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='1ea91ded' visibility='default' filepath='include/linux/kobject.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='uevent' type-id='9125ffcd' visibility='default' filepath='include/linux/kobject.h' line='174' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='2f162548' size-in-bits='160' id='9f6d6b4c'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <class-decl name='snd_soc_component_driver' size-in-bits='2816' is-struct='yes' visibility='default' filepath='include/sound/soc-component.h' line='67' column='1' id='9f6de273'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/sound/soc-component.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='controls' type-id='31e035f7' visibility='default' filepath='include/sound/soc-component.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='num_controls' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-component.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dapm_widgets' type-id='dae78f89' visibility='default' filepath='include/sound/soc-component.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='num_dapm_widgets' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-component.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dapm_routes' type-id='8f3d28b8' visibility='default' filepath='include/sound/soc-component.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='num_dapm_routes' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-component.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='probe' type-id='48cf6abe' visibility='default' filepath='include/sound/soc-component.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='remove' type-id='f88ed793' visibility='default' filepath='include/sound/soc-component.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='suspend' type-id='48cf6abe' visibility='default' filepath='include/sound/soc-component.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='resume' type-id='48cf6abe' visibility='default' filepath='include/sound/soc-component.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='read' type-id='7bb6ff35' visibility='default' filepath='include/sound/soc-component.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='write' type-id='726f2cf6' visibility='default' filepath='include/sound/soc-component.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='pcm_construct' type-id='d579fa99' visibility='default' filepath='include/sound/soc-component.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='pcm_destruct' type-id='659a1059' visibility='default' filepath='include/sound/soc-component.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='set_sysclk' type-id='ff554aed' visibility='default' filepath='include/sound/soc-component.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='set_pll' type-id='bd4604a4' visibility='default' filepath='include/sound/soc-component.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='set_jack' type-id='997f6223' visibility='default' filepath='include/sound/soc-component.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='of_xlate_dai_name' type-id='de7e28ec' visibility='default' filepath='include/sound/soc-component.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='of_xlate_dai_id' type-id='71f7eca5' visibility='default' filepath='include/sound/soc-component.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='seq_notifier' type-id='f596d48e' visibility='default' filepath='include/sound/soc-component.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='stream_event' type-id='4d6d9805' visibility='default' filepath='include/sound/soc-component.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='set_bias_level' type-id='ab3c35df' visibility='default' filepath='include/sound/soc-component.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='open' type-id='5ec5a5df' visibility='default' filepath='include/sound/soc-component.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='close' type-id='5ec5a5df' visibility='default' filepath='include/sound/soc-component.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='ioctl' type-id='42454c29' visibility='default' filepath='include/sound/soc-component.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='hw_params' type-id='2ba74d04' visibility='default' filepath='include/sound/soc-component.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='hw_free' type-id='5ec5a5df' visibility='default' filepath='include/sound/soc-component.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='prepare' type-id='5ec5a5df' visibility='default' filepath='include/sound/soc-component.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='trigger' type-id='606936f6' visibility='default' filepath='include/sound/soc-component.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='sync_stop' type-id='5ec5a5df' visibility='default' filepath='include/sound/soc-component.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='pointer' type-id='3b71056c' visibility='default' filepath='include/sound/soc-component.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='get_time_info' type-id='a2cb17a3' visibility='default' filepath='include/sound/soc-component.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='copy_user' type-id='4c59cd5c' visibility='default' filepath='include/sound/soc-component.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='page' type-id='6957e3f3' visibility='default' filepath='include/sound/soc-component.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='mmap' type-id='b1cf1f52' visibility='default' filepath='include/sound/soc-component.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='ack' type-id='5ec5a5df' visibility='default' filepath='include/sound/soc-component.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='compress_ops' type-id='442dc527' visibility='default' filepath='include/sound/soc-component.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='probe_order' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-component.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2464'>
+          <var-decl name='remove_order' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-component.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='module_get_upon_open' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-component.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2497'>
+          <var-decl name='idle_bias_on' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-component.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2498'>
+          <var-decl name='suspend_bias_off' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-component.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2499'>
+          <var-decl name='use_pmdown_time' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-component.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2500'>
+          <var-decl name='endianness' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-component.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2501'>
+          <var-decl name='non_legacy_dai_naming' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-component.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='ignore_machine' type-id='80f4b756' visibility='default' filepath='include/sound/soc-component.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='topology_name_prefix' type-id='80f4b756' visibility='default' filepath='include/sound/soc-component.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='be_hw_params_fixup' type-id='59a76ce1' visibility='default' filepath='include/sound/soc-component.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='use_dai_pcm_id' type-id='b50a4934' visibility='default' filepath='include/sound/soc-component.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2784'>
+          <var-decl name='be_pcm_base' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-component.h' line='179' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f546887a' size-in-bits='64' id='9f763fd8'/>
+      <function-type size-in-bits='64' id='9f77c6d4'>
+        <parameter type-id='4c9f335b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='rhashtable_compare_arg' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/rhashtable-types.h' line='33' column='1' id='9f7fd760'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ht' type-id='e6726ce3' visibility='default' filepath='include/linux/rhashtable-types.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='key' type-id='eaa32e2f' visibility='default' filepath='include/linux/rhashtable-types.h' line='35' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0fdf79a2' size-in-bits='64' id='9f823a90'/>
+      <pointer-type-def type-id='bba85209' size-in-bits='64' id='9f82b8fd'/>
+      <pointer-type-def type-id='d4f11968' size-in-bits='64' id='9f8ab0a2'/>
+      <class-decl name='scsi_data_buffer' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='37' column='1' id='9f8b0d0f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='table' type-id='c59e4f4c' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='length' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='02f11ed4' size-in-bits='64' id='9f93c9da'/>
+      <pointer-type-def type-id='cdc9541e' size-in-bits='64' id='9f9b8114'/>
+      <function-type size-in-bits='64' id='9f9e2614'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='fea9c20b'/>
+        <parameter type-id='fea9c20b'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='7f424251' size-in-bits='64' id='9fa25a99'/>
+      <qualified-type-def type-id='9e4acc7a' const='yes' id='9fda12c1'/>
+      <class-decl name='media_gobj' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/media/media-entity.h' line='57' column='1' id='9fdb75a6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mdev' type-id='e2929c1c' visibility='default' filepath='include/media/media-entity.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='id' type-id='19c2251e' visibility='default' filepath='include/media/media-entity.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/media/media-entity.h' line='60' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='0ee576bb' const='yes' id='9fddcab4'/>
+      <typedef-decl name='upstat_t' type-id='f0981eeb' filepath='include/linux/serial_core.h' line='108' column='1' id='9fe5c270'/>
+      <pointer-type-def type-id='39ed8dbe' size-in-bits='64' id='9fe65c08'/>
+      <class-decl name='aer_stats' size-in-bits='4864' is-struct='yes' visibility='default' filepath='drivers/pci/pcie/aer.c' line='53' column='1' id='9ff1d50f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev_cor_errs' type-id='c497958f' visibility='default' filepath='drivers/pci/pcie/aer.c' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='dev_fatal_errs' type-id='581194db' visibility='default' filepath='drivers/pci/pcie/aer.c' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='dev_nonfatal_errs' type-id='581194db' visibility='default' filepath='drivers/pci/pcie/aer.c' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4480'>
+          <var-decl name='dev_total_cor_errs' type-id='91ce1af9' visibility='default' filepath='drivers/pci/pcie/aer.c' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4544'>
+          <var-decl name='dev_total_fatal_errs' type-id='91ce1af9' visibility='default' filepath='drivers/pci/pcie/aer.c' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4608'>
+          <var-decl name='dev_total_nonfatal_errs' type-id='91ce1af9' visibility='default' filepath='drivers/pci/pcie/aer.c' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4672'>
+          <var-decl name='rootport_total_cor_errs' type-id='91ce1af9' visibility='default' filepath='drivers/pci/pcie/aer.c' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='rootport_total_fatal_errs' type-id='91ce1af9' visibility='default' filepath='drivers/pci/pcie/aer.c' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='rootport_total_nonfatal_errs' type-id='91ce1af9' visibility='default' filepath='drivers/pci/pcie/aer.c' line='85' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='quota_type' filepath='include/linux/quota.h' line='54' column='1' id='9ff1dafd'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='USRQUOTA' value='0'/>
+        <enumerator name='GRPQUOTA' value='1'/>
+        <enumerator name='PRJQUOTA' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='5092aa98' size-in-bits='64' id='9ffa96ee'/>
+      <pointer-type-def type-id='4c98260a' size-in-bits='64' id='a00a45e8'/>
+      <pointer-type-def type-id='2bf16f59' size-in-bits='64' id='a0127209'/>
+      <function-type size-in-bits='64' id='a017baf8'>
+        <parameter type-id='ab59ee31'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='iommu_fault_handler_t' type-id='8e0d1900' filepath='include/linux/iommu.h' line='61' column='1' id='a01c3626'/>
+      <pointer-type-def type-id='f20168e6' size-in-bits='64' id='a0260edc'/>
+      <pointer-type-def type-id='c5addfb4' size-in-bits='64' id='a02b8cd2'/>
+      <function-type size-in-bits='64' id='a02c006b'>
+        <parameter type-id='503ff1ba'/>
+        <parameter type-id='796a7678'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='cdead692' size-in-bits='64' id='a02c170c'/>
+      <enum-decl name='__anonymous_enum__' filepath='lib/zstd/compress.c' line='33' column='1' id='a030bbe4' is-anonymous='yes'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ZSTDcs_created' value='0'/>
+        <enumerator name='ZSTDcs_init' value='1'/>
+        <enumerator name='ZSTDcs_ongoing' value='2'/>
+        <enumerator name='ZSTDcs_ending' value='3'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='448' id='a038344f'>
+        <subrange length='56' type-id='7ff19f0f' id='f8137894'/>
+      </array-type-def>
+      <class-decl name='ieee80211_eht_mcs_nss_supp_bw' size-in-bits='24' is-struct='yes' visibility='default' filepath='include/linux/ieee80211.h' line='1982' column='1' id='a03b9897'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rx_tx_mcs9_max_nss' type-id='f9b06939' visibility='default' filepath='include/linux/ieee80211.h' line='1983' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='rx_tx_mcs11_max_nss' type-id='f9b06939' visibility='default' filepath='include/linux/ieee80211.h' line='1984' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='rx_tx_mcs13_max_nss' type-id='f9b06939' visibility='default' filepath='include/linux/ieee80211.h' line='1985' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='99d089ec' size-in-bits='64' id='a0408c5a'/>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='416' id='a0412eab'>
+        <subrange length='52' type-id='7ff19f0f' id='f81e05f0'/>
+      </array-type-def>
+      <class-decl name='ieee80211_sta_ht_cap' size-in-bits='176' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='327' column='1' id='a041735c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cap' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='ht_supported' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='ampdu_factor' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ampdu_density' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='mcs' type-id='835fe4c6' visibility='default' filepath='include/net/cfg80211.h' line='332' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='iio_subirq' size-in-bits='8' is-struct='yes' visibility='default' filepath='include/linux/iio/trigger.h' line='14' column='1' id='a04304a1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='enabled' type-id='b50a4934' visibility='default' filepath='include/linux/iio/trigger.h' line='15' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a048d0fc'>
+        <parameter type-id='5771c601'/>
+        <parameter type-id='abf87da2'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4851ce38' size-in-bits='64' id='a056c492'/>
+      <pointer-type-def type-id='8de1c3db' size-in-bits='64' id='a05e478f'/>
+      <pointer-type-def type-id='6b30321d' size-in-bits='64' id='a05f1ecd'/>
+      <pointer-type-def type-id='b1c57c88' size-in-bits='64' id='a06238fa'/>
+      <pointer-type-def type-id='50982b2a' size-in-bits='64' id='a064fed8'/>
+      <pointer-type-def type-id='ac763c5d' size-in-bits='64' id='a06a810d'/>
+      <qualified-type-def type-id='707f0173' const='yes' id='a06ec50c'/>
+      <class-decl name='v4l2_mbus_config' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/media/v4l2-mediabus.h' line='124' column='1' id='a0776e3c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='e34ed0c3' visibility='default' filepath='include/media/v4l2-mediabus.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-mediabus.h' line='126' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='51e825b6' size-in-bits='64' id='a079e5cc'/>
+      <pointer-type-def type-id='2b1e6e59' size-in-bits='64' id='a07d0491'/>
+      <pointer-type-def type-id='1da55f79' size-in-bits='64' id='a07ff496'/>
+      <function-type size-in-bits='64' id='a0807697'>
+        <parameter type-id='352b95f6'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='rate_sample' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/net/tcp.h' line='1022' column='1' id='a084c932'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prior_mstamp' type-id='91ce1af9' visibility='default' filepath='include/net/tcp.h' line='1023' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='prior_delivered' type-id='19c2251e' visibility='default' filepath='include/net/tcp.h' line='1024' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='delivered' type-id='a7832498' visibility='default' filepath='include/net/tcp.h' line='1025' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='interval_us' type-id='bd54fe1a' visibility='default' filepath='include/net/tcp.h' line='1026' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='snd_interval_us' type-id='19c2251e' visibility='default' filepath='include/net/tcp.h' line='1027' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='rcv_interval_us' type-id='19c2251e' visibility='default' filepath='include/net/tcp.h' line='1028' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rtt_us' type-id='bd54fe1a' visibility='default' filepath='include/net/tcp.h' line='1029' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='losses' type-id='95e97e5e' visibility='default' filepath='include/net/tcp.h' line='1030' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='acked_sacked' type-id='19c2251e' visibility='default' filepath='include/net/tcp.h' line='1031' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='prior_in_flight' type-id='19c2251e' visibility='default' filepath='include/net/tcp.h' line='1032' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='last_end_seq' type-id='19c2251e' visibility='default' filepath='include/net/tcp.h' line='1033' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='is_app_limited' type-id='b50a4934' visibility='default' filepath='include/net/tcp.h' line='1034' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='456'>
+          <var-decl name='is_retrans' type-id='b50a4934' visibility='default' filepath='include/net/tcp.h' line='1035' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='464'>
+          <var-decl name='is_ack_delayed' type-id='b50a4934' visibility='default' filepath='include/net/tcp.h' line='1036' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='f22a8abb' size-in-bits='2560' id='a08a3908'>
+        <subrange length='40' type-id='7ff19f0f' id='8f80b239'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='a08a663b'>
+        <parameter type-id='15b1f129'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='ad61830a'/>
+        <parameter type-id='e453a0cb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='cmp_func_t' type-id='585e1de9' filepath='include/linux/types.h' line='232' column='1' id='a08bda3c'/>
+      <union-decl name='sigval' size-in-bits='64' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='8' column='1' id='a094b870'>
+        <data-member access='public'>
+          <var-decl name='sival_int' type-id='95e97e5e' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='sival_ptr' type-id='eaa32e2f' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='10' column='1'/>
+        </data-member>
+      </union-decl>
+      <array-type-def dimensions='1' type-id='c6675287' size-in-bits='infinite' id='a0955e2b'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='ce848ab1' size-in-bits='2304' id='a09ef5a6'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <pointer-type-def type-id='0d77e947' size-in-bits='64' id='a0c47697'/>
+      <typedef-decl name='ZSTD_frameParameters' type-id='cba40c80' filepath='include/linux/zstd.h' line='170' column='1' id='a0d1de25'/>
+      <pointer-type-def type-id='6aac043b' size-in-bits='64' id='a0d3a64b'/>
+      <type-decl name='double' size-in-bits='64' id='a0eb0f08'/>
+      <class-decl name='drm_framebuffer' size-in-bits='1600' is-struct='yes' visibility='default' filepath='include/drm/drm_framebuffer.h' line='117' column='1' id='a0eb3346'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='8898134d' visibility='default' filepath='include/drm/drm_framebuffer.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='head' type-id='72f469ec' visibility='default' filepath='include/drm/drm_framebuffer.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='base' type-id='350f4182' visibility='default' filepath='include/drm/drm_framebuffer.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='comm' type-id='ac1fa8c0' visibility='default' filepath='include/drm/drm_framebuffer.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='format' type-id='f10b2208' visibility='default' filepath='include/drm/drm_framebuffer.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='funcs' type-id='8e992c3d' visibility='default' filepath='include/drm/drm_framebuffer.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='pitches' type-id='49580a63' visibility='default' filepath='include/drm/drm_framebuffer.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='offsets' type-id='49580a63' visibility='default' filepath='include/drm/drm_framebuffer.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='modifier' type-id='9c313c2d' visibility='default' filepath='include/drm/drm_framebuffer.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='width' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_framebuffer.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='height' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_framebuffer.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_framebuffer.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='hot_x' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_framebuffer.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='hot_y' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_framebuffer.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='filp_head' type-id='72f469ec' visibility='default' filepath='include/drm/drm_framebuffer.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='obj' type-id='a459476c' visibility='default' filepath='include/drm/drm_framebuffer.h' line='213' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='e9bb2749' const='yes' id='a0ef5328'/>
+      <pointer-type-def type-id='0be333ab' size-in-bits='64' id='a0f5247f'/>
+      <pointer-type-def type-id='0fbf3cfd' size-in-bits='64' id='a10cc675'/>
+      <typedef-decl name='rx_handler_result_t' type-id='aee6711b' filepath='include/linux/netdevice.h' line='439' column='1' id='a110acfc'/>
+      <function-type size-in-bits='64' id='a112b1c1'>
+        <parameter type-id='478ed79d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='2' type-id='8f048e17' size-in-bits='3072' id='a112b67c'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+        <subrange length='64' type-id='7ff19f0f' id='b10be967'/>
+      </array-type-def>
+      <pointer-type-def type-id='d0615a9b' size-in-bits='64' id='a113447f'/>
+      <function-type size-in-bits='64' id='a115139f'>
+        <parameter type-id='2ce52478'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <function-type size-in-bits='64' id='a11f6ac5'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='95316552'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='flow_dissector_key_ipv4_addrs' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/flow_dissector.h' line='109' column='1' id='a128e735'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='src' type-id='78a133c2' visibility='default' filepath='include/net/flow_dissector.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='dst' type-id='78a133c2' visibility='default' filepath='include/net/flow_dissector.h' line='112' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='sbitmap_queue' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/sbitmap.h' line='105' column='1' id='a133315d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sb' type-id='6e051ed1' visibility='default' filepath='include/linux/sbitmap.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='wake_batch' type-id='f0981eeb' visibility='default' filepath='include/linux/sbitmap.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='wake_index' type-id='49178f86' visibility='default' filepath='include/linux/sbitmap.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ws' type-id='cdff193b' visibility='default' filepath='include/linux/sbitmap.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ws_active' type-id='49178f86' visibility='default' filepath='include/linux/sbitmap.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='min_shallow_depth' type-id='f0981eeb' visibility='default' filepath='include/linux/sbitmap.h' line='136' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='83c7cbd3' size-in-bits='64' id='a13b38d7'/>
+      <pointer-type-def type-id='b287e2b2' size-in-bits='64' id='a13d0c2c'/>
+      <pointer-type-def type-id='09098b3b' size-in-bits='64' id='a149768b'/>
+      <pointer-type-def type-id='2f351d1f' size-in-bits='64' id='a150e667'/>
+      <class-decl name='snd_soc_dai_driver' size-in-bits='1920' is-struct='yes' visibility='default' filepath='include/sound/soc-dai.h' line='388' column='1' id='a1599794'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/sound/soc-dai.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='id' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-dai.h' line='391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='base' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-dai.h' line='392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dobj' type-id='01edcafc' visibility='default' filepath='include/sound/soc-dai.h' line='393' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='probe' type-id='a2515c25' visibility='default' filepath='include/sound/soc-dai.h' line='396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='remove' type-id='a2515c25' visibility='default' filepath='include/sound/soc-dai.h' line='397' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='compress_new' type-id='da6639f9' visibility='default' filepath='include/sound/soc-dai.h' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='pcm_new' type-id='6c0c7302' visibility='default' filepath='include/sound/soc-dai.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='ops' type-id='777e33bd' visibility='default' filepath='include/sound/soc-dai.h' line='405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='cops' type-id='c9d35a9c' visibility='default' filepath='include/sound/soc-dai.h' line='406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='capture' type-id='e85be380' visibility='default' filepath='include/sound/soc-dai.h' line='409' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='playback' type-id='e85be380' visibility='default' filepath='include/sound/soc-dai.h' line='410' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='symmetric_rate' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-dai.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1793'>
+          <var-decl name='symmetric_channels' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-dai.h' line='412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1794'>
+          <var-decl name='symmetric_sample_bits' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-dai.h' line='413' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1824'>
+          <var-decl name='probe_order' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-dai.h' line='416' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='remove_order' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-dai.h' line='417' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fb75bb68' size-in-bits='64' id='a15a118e'/>
+      <class-decl name='v4l2_frequency' size-in-bits='352' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1944' column='1' id='a15ecb0c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tuner' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1945' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1946' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='frequency' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1947' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='reserved' type-id='7f84eb57' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1948' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a15f21bb'>
+        <parameter type-id='04b6a8dc'/>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='0fbf3cfd'/>
+      </function-type>
+      <class-decl name='mipi_dsi_device' size-in-bits='7808' is-struct='yes' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='181' column='1' id='a167c9f6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='host' type-id='c149fe34' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='name' type-id='664ac0b7' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7520'>
+          <var-decl name='channel' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='lanes' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7584'>
+          <var-decl name='format' type-id='fe8650ad' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='mode_flags' type-id='7359adad' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='hs_rate' type-id='7359adad' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='lp_rate' type-id='7359adad' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='191' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3c5fffe9' size-in-bits='64' id='a16bb3cd'/>
+      <pointer-type-def type-id='8a7e9d52' size-in-bits='64' id='a16f8ee4'/>
+      <class-decl name='drm_plane_state' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/drm/drm_plane.h' line='52' column='1' id='a1700eb5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='plane' type-id='a6711537' visibility='default' filepath='include/drm/drm_plane.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='crtc' type-id='b64ad7cb' visibility='default' filepath='include/drm/drm_plane.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fb' type-id='7b332e1c' visibility='default' filepath='include/drm/drm_plane.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fence' type-id='28271da3' visibility='default' filepath='include/drm/drm_plane.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='crtc_x' type-id='3ff5601b' visibility='default' filepath='include/drm/drm_plane.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='crtc_y' type-id='3ff5601b' visibility='default' filepath='include/drm/drm_plane.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='crtc_w' type-id='8f92235e' visibility='default' filepath='include/drm/drm_plane.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='crtc_h' type-id='8f92235e' visibility='default' filepath='include/drm/drm_plane.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='src_x' type-id='8f92235e' visibility='default' filepath='include/drm/drm_plane.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='src_y' type-id='8f92235e' visibility='default' filepath='include/drm/drm_plane.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='src_h' type-id='8f92235e' visibility='default' filepath='include/drm/drm_plane.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='src_w' type-id='8f92235e' visibility='default' filepath='include/drm/drm_plane.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='alpha' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_plane.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='528'>
+          <var-decl name='pixel_blend_mode' type-id='149c6638' visibility='default' filepath='include/drm/drm_plane.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='rotation' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_plane.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='zpos' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_plane.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='normalized_zpos' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_plane.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='color_encoding' type-id='e57e5f2b' visibility='default' filepath='include/drm/drm_plane.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='color_range' type-id='322e1b47' visibility='default' filepath='include/drm/drm_plane.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='fb_damage_clips' type-id='c4126d52' visibility='default' filepath='include/drm/drm_plane.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='src' type-id='4ccdd8a9' visibility='default' filepath='include/drm/drm_plane.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='dst' type-id='4ccdd8a9' visibility='default' filepath='include/drm/drm_plane.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='visible' type-id='b50a4934' visibility='default' filepath='include/drm/drm_plane.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='scaling_filter' type-id='22cc4642' visibility='default' filepath='include/drm/drm_plane.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='commit' type-id='3f40b771' visibility='default' filepath='include/drm/drm_plane.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='state' type-id='e3dd029e' visibility='default' filepath='include/drm/drm_plane.h' line='241' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='552bdef7' size-in-bits='64' id='a170b5bb'/>
+      <pointer-type-def type-id='c6fb334e' size-in-bits='64' id='a171e66c'/>
+      <pointer-type-def type-id='258baccc' size-in-bits='64' id='a176c78e'/>
+      <pointer-type-def type-id='beab9323' size-in-bits='64' id='a185b4e7'/>
+      <class-decl name='btf_mod_pair' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='902' column='1' id='a18dc8f5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='btf' type-id='a469220f' visibility='default' filepath='include/linux/bpf.h' line='903' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='module' type-id='2730d015' visibility='default' filepath='include/linux/bpf.h' line='904' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='e019c76b' const='yes' id='a192e032'/>
+      <pointer-type-def type-id='5f8f2c58' size-in-bits='64' id='a198549e'/>
+      <function-type size-in-bits='64' id='a198c269'>
+        <parameter type-id='27f3f5d8'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='aa3fd2fc' const='yes' id='a19d369d'/>
+      <pointer-type-def type-id='c54a70ec' size-in-bits='64' id='a1a282ea'/>
+      <function-type size-in-bits='64' id='a1aadc50'>
+        <parameter type-id='7544e824'/>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='ccf3b302'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='0888126c' size-in-bits='64' id='a1ac03ea'/>
+      <class-decl name='nvdimm' size-in-bits='9216' is-struct='yes' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='31' column='1' id='a1b485c4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='provider_data' type-id='eaa32e2f' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cmd_mask' type-id='7359adad' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='busy' type-id='49178f86' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7520'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='num_flush' type-id='95e97e5e' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='flush_wpq' type-id='c9d64c0d' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='dimm_id' type-id='80f4b756' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='sec' type-id='e7f43fca' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='dwork' type-id='5ad6e0ef' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9152'>
+          <var-decl name='fw_ops' type-id='51214748' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='48' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='uic_link_state' filepath='drivers/scsi/ufs/ufshcd.h' line='113' column='1' id='a1b5abd2'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='UIC_LINK_OFF_STATE' value='0'/>
+        <enumerator name='UIC_LINK_ACTIVE_STATE' value='1'/>
+        <enumerator name='UIC_LINK_HIBERN8_STATE' value='2'/>
+        <enumerator name='UIC_LINK_BROKEN_STATE' value='3'/>
+      </enum-decl>
+      <typedef-decl name='clockid_t' type-id='7eb128d4' filepath='include/linux/types.h' line='27' column='1' id='a1c3b834'/>
+      <function-type size-in-bits='64' id='a1d0bf0a'>
+        <parameter type-id='63e6cf23'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='1f063fe1' size-in-bits='64' id='a1d66c91'/>
+      <function-type size-in-bits='64' id='a1e5b57e'>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='5a0af12e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='arch_msi_msg_data' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/msi.h' line='23' column='1' id='a1e62158'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='data' type-id='19c2251e' visibility='default' filepath='include/linux/msi.h' line='24' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_dmaengine_pcm_config' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='136' column='1' id='a1eb8a6b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prepare_slave_config' type-id='487dad0e' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='compat_request_channel' type-id='8eba4549' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='process' type-id='7e4306d7' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='compat_filter_fn' type-id='55f53546' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dma_dev' type-id='fa0b179b' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='chan_names' type-id='35e20666' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pcm_hardware' type-id='d661a615' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='prealloc_buffer_size' type-id='f0981eeb' visibility='default' filepath='include/sound/dmaengine_pcm.h' line='151' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='zone_stat_item' filepath='include/linux/mmzone.h' line='149' column='1' id='a1f2d9a1'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NR_FREE_PAGES' value='0'/>
+        <enumerator name='NR_ZONE_LRU_BASE' value='1'/>
+        <enumerator name='NR_ZONE_INACTIVE_ANON' value='1'/>
+        <enumerator name='NR_ZONE_ACTIVE_ANON' value='2'/>
+        <enumerator name='NR_ZONE_INACTIVE_FILE' value='3'/>
+        <enumerator name='NR_ZONE_ACTIVE_FILE' value='4'/>
+        <enumerator name='NR_ZONE_UNEVICTABLE' value='5'/>
+        <enumerator name='NR_ZONE_WRITE_PENDING' value='6'/>
+        <enumerator name='NR_MLOCK' value='7'/>
+        <enumerator name='NR_BOUNCE' value='8'/>
+        <enumerator name='NR_ZSPAGES' value='9'/>
+        <enumerator name='NR_FREE_CMA_PAGES' value='10'/>
+        <enumerator name='NR_VM_ZONE_STAT_ITEMS' value='11'/>
+      </enum-decl>
+      <pointer-type-def type-id='0c960fcf' size-in-bits='64' id='a1fa7fb7'/>
+      <pointer-type-def type-id='c564a30c' size-in-bits='64' id='a2080366'/>
+      <pointer-type-def type-id='328910d8' size-in-bits='64' id='a20ce8b2'/>
+      <pointer-type-def type-id='019f02aa' size-in-bits='64' id='a210f03c'/>
+      <function-type size-in-bits='64' id='a211528c'>
+        <parameter type-id='c1880945'/>
+        <parameter type-id='4054d674'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='gnet_stats_queue' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/gen_stats.h' line='59' column='1' id='a212a715'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='qlen' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/gen_stats.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='backlog' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/gen_stats.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='drops' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/gen_stats.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='requeues' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/gen_stats.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='overlimits' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/gen_stats.h' line='64' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='892641a4' size-in-bits='16' id='a212abfb'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='30247438' size-in-bits='64' id='a2178c8a'/>
+      <type-decl name='short int' size-in-bits='16' id='a2185560'/>
+      <class-decl name='k_sigaction' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/signal_types.h' line='51' column='1' id='a21c4412'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sa' type-id='fe391c48' visibility='default' filepath='include/linux/signal_types.h' line='52' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='utp_hpb_rsp' size-in-bits='320' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='511' column='1' id='a222ac53'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='residual_transfer_count' type-id='78a133c2' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='reserved1' type-id='30180d4b' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='513' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='sense_data_len' type-id='84a5c3d4' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='514' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='desc_type' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='515' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='184'>
+          <var-decl name='additional_len' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='516' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hpb_op' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='517' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='lun' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='518' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='active_rgn_cnt' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='216'>
+          <var-decl name='inactive_rgn_cnt' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='520' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='hpb_active_field' type-id='8da9cbef' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='hpb_inactive_field' type-id='7af92037' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='522' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a222e3fe'>
+        <parameter type-id='8898134d'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='1c806218' size-in-bits='64' id='a223deea'/>
+      <pointer-type-def type-id='152c9867' size-in-bits='64' id='a233c137'/>
+      <array-type-def dimensions='1' type-id='35bbecb3' size-in-bits='5120' id='a234b4c6'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <pointer-type-def type-id='77296733' size-in-bits='64' id='a236743f'/>
+      <class-decl name='virtio_device' size-in-bits='7872' is-struct='yes' visibility='default' filepath='include/linux/virtio.h' line='107' column='1' id='a23921c9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='95e97e5e' visibility='default' filepath='include/linux/virtio.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='failed' type-id='b50a4934' visibility='default' filepath='include/linux/virtio.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='config_enabled' type-id='b50a4934' visibility='default' filepath='include/linux/virtio.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='config_change_pending' type-id='b50a4934' visibility='default' filepath='include/linux/virtio.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='config_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/virtio.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='vqs_list_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/virtio.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/virtio.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='id' type-id='7462f12f' visibility='default' filepath='include/linux/virtio.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='config' type-id='afc22511' visibility='default' filepath='include/linux/virtio.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='vringh_config' type-id='f9c3a0be' visibility='default' filepath='include/linux/virtio.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='vqs' type-id='72f469ec' visibility='default' filepath='include/linux/virtio.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='features' type-id='91ce1af9' visibility='default' filepath='include/linux/virtio.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/virtio.h' line='120' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a2398e84'>
+        <parameter type-id='83f45767'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='sock' size-in-bits='6976' is-struct='yes' visibility='default' filepath='include/net/sock.h' line='354' column='1' id='a240f41d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='__sk_common' type-id='5999c5f7' visibility='default' filepath='include/net/sock.h' line='359' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='sk_lock' type-id='40d8a3da' visibility='default' filepath='include/net/sock.h' line='394' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='sk_drops' type-id='49178f86' visibility='default' filepath='include/net/sock.h' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='sk_rcvlowat' type-id='95e97e5e' visibility='default' filepath='include/net/sock.h' line='396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='sk_error_queue' type-id='e61c85d0' visibility='default' filepath='include/net/sock.h' line='397' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='sk_rx_skb_cache' type-id='0fbf3cfd' visibility='default' filepath='include/net/sock.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='sk_receive_queue' type-id='e61c85d0' visibility='default' filepath='include/net/sock.h' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='sk_backlog' type-id='e7f44000' visibility='default' filepath='include/net/sock.h' line='413' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='sk_forward_alloc' type-id='95e97e5e' visibility='default' filepath='include/net/sock.h' line='416' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2080'>
+          <var-decl name='sk_ll_usec' type-id='f0981eeb' visibility='default' filepath='include/net/sock.h' line='418' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='sk_napi_id' type-id='f0981eeb' visibility='default' filepath='include/net/sock.h' line='420' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2144'>
+          <var-decl name='sk_rcvbuf' type-id='95e97e5e' visibility='default' filepath='include/net/sock.h' line='422' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='sk_filter' type-id='90956edc' visibility='default' filepath='include/net/sock.h' line='424' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='' type-id='ac5ab657' visibility='default' filepath='include/net/sock.h' line='425' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='sk_policy' type-id='eb61ae4b' visibility='default' filepath='include/net/sock.h' line='432' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='sk_rx_dst' type-id='141b6427' visibility='default' filepath='include/net/sock.h' line='434' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='sk_rx_dst_ifindex' type-id='95e97e5e' visibility='default' filepath='include/net/sock.h' line='435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2528'>
+          <var-decl name='sk_rx_dst_cookie' type-id='19c2251e' visibility='default' filepath='include/net/sock.h' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='sk_dst_cache' type-id='141b6427' visibility='default' filepath='include/net/sock.h' line='438' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='sk_omem_alloc' type-id='49178f86' visibility='default' filepath='include/net/sock.h' line='439' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2656'>
+          <var-decl name='sk_sndbuf' type-id='95e97e5e' visibility='default' filepath='include/net/sock.h' line='440' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='sk_wmem_queued' type-id='95e97e5e' visibility='default' filepath='include/net/sock.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2720'>
+          <var-decl name='sk_wmem_alloc' type-id='64615833' visibility='default' filepath='include/net/sock.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='sk_tsq_flags' type-id='7359adad' visibility='default' filepath='include/net/sock.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='' type-id='ac5ab658' visibility='default' filepath='include/net/sock.h' line='446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='sk_tx_skb_cache' type-id='0fbf3cfd' visibility='default' filepath='include/net/sock.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='sk_write_queue' type-id='e61c85d0' visibility='default' filepath='include/net/sock.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='sk_peek_off' type-id='3158a266' visibility='default' filepath='include/net/sock.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3168'>
+          <var-decl name='sk_write_pending' type-id='95e97e5e' visibility='default' filepath='include/net/sock.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='sk_dst_pending_confirm' type-id='3f1a6b60' visibility='default' filepath='include/net/sock.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3232'>
+          <var-decl name='sk_pacing_status' type-id='19c2251e' visibility='default' filepath='include/net/sock.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='sk_sndtimeo' type-id='bd54fe1a' visibility='default' filepath='include/net/sock.h' line='456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='sk_timer' type-id='abe41e67' visibility='default' filepath='include/net/sock.h' line='457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='sk_priority' type-id='3f1a6b60' visibility='default' filepath='include/net/sock.h' line='458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3808'>
+          <var-decl name='sk_mark' type-id='3f1a6b60' visibility='default' filepath='include/net/sock.h' line='459' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='sk_pacing_rate' type-id='7359adad' visibility='default' filepath='include/net/sock.h' line='460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3904'>
+          <var-decl name='sk_max_pacing_rate' type-id='7359adad' visibility='default' filepath='include/net/sock.h' line='461' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='sk_frag' type-id='06c0432f' visibility='default' filepath='include/net/sock.h' line='462' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='sk_route_caps' type-id='f9f4b16f' visibility='default' filepath='include/net/sock.h' line='463' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='sk_route_nocaps' type-id='f9f4b16f' visibility='default' filepath='include/net/sock.h' line='464' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='sk_route_forced_caps' type-id='f9f4b16f' visibility='default' filepath='include/net/sock.h' line='465' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='sk_gso_type' type-id='95e97e5e' visibility='default' filepath='include/net/sock.h' line='466' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4320'>
+          <var-decl name='sk_gso_max_size' type-id='f0981eeb' visibility='default' filepath='include/net/sock.h' line='467' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='sk_allocation' type-id='3eb7c31c' visibility='default' filepath='include/net/sock.h' line='468' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4384'>
+          <var-decl name='sk_txhash' type-id='3f1a6b60' visibility='default' filepath='include/net/sock.h' line='469' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='sk_padding' type-id='f9b06939' visibility='default' filepath='include/net/sock.h' line='475' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4417'>
+          <var-decl name='sk_kern_sock' type-id='f9b06939' visibility='default' filepath='include/net/sock.h' line='476' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4418'>
+          <var-decl name='sk_no_check_tx' type-id='f9b06939' visibility='default' filepath='include/net/sock.h' line='477' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4419'>
+          <var-decl name='sk_no_check_rx' type-id='f9b06939' visibility='default' filepath='include/net/sock.h' line='478' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4420'>
+          <var-decl name='sk_userlocks' type-id='f9b06939' visibility='default' filepath='include/net/sock.h' line='479' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4424'>
+          <var-decl name='sk_pacing_shift' type-id='f9b06939' visibility='default' filepath='include/net/sock.h' line='480' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4432'>
+          <var-decl name='sk_type' type-id='1dc6a898' visibility='default' filepath='include/net/sock.h' line='481' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4448'>
+          <var-decl name='sk_protocol' type-id='1dc6a898' visibility='default' filepath='include/net/sock.h' line='482' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4464'>
+          <var-decl name='sk_gso_max_segs' type-id='1dc6a898' visibility='default' filepath='include/net/sock.h' line='483' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4480'>
+          <var-decl name='sk_lingertime' type-id='7359adad' visibility='default' filepath='include/net/sock.h' line='484' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4544'>
+          <var-decl name='sk_prot_creator' type-id='d2524501' visibility='default' filepath='include/net/sock.h' line='485' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4608'>
+          <var-decl name='sk_callback_lock' type-id='ac16795b' visibility='default' filepath='include/net/sock.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4672'>
+          <var-decl name='sk_err' type-id='95e97e5e' visibility='default' filepath='include/net/sock.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4704'>
+          <var-decl name='sk_err_soft' type-id='95e97e5e' visibility='default' filepath='include/net/sock.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='sk_ack_backlog' type-id='19c2251e' visibility='default' filepath='include/net/sock.h' line='489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4768'>
+          <var-decl name='sk_max_ack_backlog' type-id='19c2251e' visibility='default' filepath='include/net/sock.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='sk_uid' type-id='d80b72e6' visibility='default' filepath='include/net/sock.h' line='491' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4832'>
+          <var-decl name='sk_prefer_busy_poll' type-id='f9b06939' visibility='default' filepath='include/net/sock.h' line='493' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4848'>
+          <var-decl name='sk_busy_poll_budget' type-id='1dc6a898' visibility='default' filepath='include/net/sock.h' line='494' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4864'>
+          <var-decl name='sk_peer_lock' type-id='fb4018a0' visibility='default' filepath='include/net/sock.h' line='496' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4928'>
+          <var-decl name='sk_peer_pid' type-id='b94e5398' visibility='default' filepath='include/net/sock.h' line='497' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='sk_peer_cred' type-id='bc33861a' visibility='default' filepath='include/net/sock.h' line='498' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5056'>
+          <var-decl name='sk_rcvtimeo' type-id='bd54fe1a' visibility='default' filepath='include/net/sock.h' line='500' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='sk_stamp' type-id='fbc017ef' visibility='default' filepath='include/net/sock.h' line='501' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='sk_tsflags' type-id='1dc6a898' visibility='default' filepath='include/net/sock.h' line='505' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5216'>
+          <var-decl name='sk_bind_phc' type-id='95e97e5e' visibility='default' filepath='include/net/sock.h' line='506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='sk_shutdown' type-id='f9b06939' visibility='default' filepath='include/net/sock.h' line='507' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5280'>
+          <var-decl name='sk_tskey' type-id='49178f86' visibility='default' filepath='include/net/sock.h' line='508' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5312'>
+          <var-decl name='sk_zckey' type-id='49178f86' visibility='default' filepath='include/net/sock.h' line='509' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5344'>
+          <var-decl name='sk_clockid' type-id='f9b06939' visibility='default' filepath='include/net/sock.h' line='511' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5352'>
+          <var-decl name='sk_txtime_deadline_mode' type-id='f9b06939' visibility='default' filepath='include/net/sock.h' line='512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5353'>
+          <var-decl name='sk_txtime_report_errors' type-id='f9b06939' visibility='default' filepath='include/net/sock.h' line='513' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5354'>
+          <var-decl name='sk_txtime_unused' type-id='f9b06939' visibility='default' filepath='include/net/sock.h' line='514' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='sk_socket' type-id='13103032' visibility='default' filepath='include/net/sock.h' line='516' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5440'>
+          <var-decl name='sk_user_data' type-id='eaa32e2f' visibility='default' filepath='include/net/sock.h' line='517' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='sk_security' type-id='eaa32e2f' visibility='default' filepath='include/net/sock.h' line='519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='sk_cgrp_data' type-id='8544f103' visibility='default' filepath='include/net/sock.h' line='521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5696'>
+          <var-decl name='sk_memcg' type-id='223696fb' visibility='default' filepath='include/net/sock.h' line='522' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5760'>
+          <var-decl name='sk_state_change' type-id='841969d0' visibility='default' filepath='include/net/sock.h' line='523' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5824'>
+          <var-decl name='sk_data_ready' type-id='841969d0' visibility='default' filepath='include/net/sock.h' line='524' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5888'>
+          <var-decl name='sk_write_space' type-id='841969d0' visibility='default' filepath='include/net/sock.h' line='525' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5952'>
+          <var-decl name='sk_error_report' type-id='841969d0' visibility='default' filepath='include/net/sock.h' line='526' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6016'>
+          <var-decl name='sk_backlog_rcv' type-id='a0f5247f' visibility='default' filepath='include/net/sock.h' line='527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='sk_destruct' type-id='841969d0' visibility='default' filepath='include/net/sock.h' line='534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6144'>
+          <var-decl name='sk_reuseport_cb' type-id='1d22b7e5' visibility='default' filepath='include/net/sock.h' line='535' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6208'>
+          <var-decl name='sk_bpf_storage' type-id='30c83839' visibility='default' filepath='include/net/sock.h' line='537' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6272'>
+          <var-decl name='sk_rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/sock.h' line='539' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6400'>
+          <var-decl name='android_oem_data1' type-id='91ce1af9' visibility='default' filepath='include/net/sock.h' line='541' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/sock.h' line='542' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6528'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/sock.h' line='543' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6592'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/sock.h' line='544' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6656'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/sock.h' line='545' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6720'>
+          <var-decl name='android_kabi_reserved5' type-id='91ce1af9' visibility='default' filepath='include/net/sock.h' line='546' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6784'>
+          <var-decl name='android_kabi_reserved6' type-id='91ce1af9' visibility='default' filepath='include/net/sock.h' line='547' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6848'>
+          <var-decl name='android_kabi_reserved7' type-id='91ce1af9' visibility='default' filepath='include/net/sock.h' line='548' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6912'>
+          <var-decl name='android_kabi_reserved8' type-id='91ce1af9' visibility='default' filepath='include/net/sock.h' line='549' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='unicode_map' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/unicode.h' line='8' column='1' id='a24978a1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='charset' type-id='80f4b756' visibility='default' filepath='include/linux/unicode.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='version' type-id='95e97e5e' visibility='default' filepath='include/linux/unicode.h' line='10' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a249930e'>
+        <parameter type-id='b9608bfc'/>
+        <parameter type-id='8efea9e5'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='a24a51b3'>
+        <parameter type-id='fc4f83c1'/>
+        <parameter type-id='25e60cb2'/>
+        <parameter type-id='cee9c4f2'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='a24ec55b'>
+        <parameter type-id='2ba25712'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <pointer-type-def type-id='8892a831' size-in-bits='64' id='a2515c25'/>
+      <class-decl name='page' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/mm_types.h' line='75' column='1' id='a25ce1be'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab640' visibility='default' filepath='include/linux/mm_types.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='' type-id='ac5ab641' visibility='default' filepath='include/linux/mm_types.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='_refcount' type-id='49178f86' visibility='default' filepath='include/linux/mm_types.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='memcg_data' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='225' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mtd_debug_info' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/mtd/mtd.h' line='191' column='1' id='a26151b5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dfs_dir' type-id='27675065' visibility='default' filepath='include/linux/mtd/mtd.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='partname' type-id='80f4b756' visibility='default' filepath='include/linux/mtd/mtd.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='partid' type-id='80f4b756' visibility='default' filepath='include/linux/mtd/mtd.h' line='195' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='trace_event_class' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/trace_events.h' line='275' column='1' id='a2689372'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='system' type-id='80f4b756' visibility='default' filepath='include/linux/trace_events.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='probe' type-id='eaa32e2f' visibility='default' filepath='include/linux/trace_events.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='perf_probe' type-id='eaa32e2f' visibility='default' filepath='include/linux/trace_events.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='reg' type-id='50ec573b' visibility='default' filepath='include/linux/trace_events.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='fields_array' type-id='0e587527' visibility='default' filepath='include/linux/trace_events.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='get_fields' type-id='17898fce' visibility='default' filepath='include/linux/trace_events.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='fields' type-id='72f469ec' visibility='default' filepath='include/linux/trace_events.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='raw_init' type-id='9a5ed472' visibility='default' filepath='include/linux/trace_events.h' line='286' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='ZSTD_compressionParameters' type-id='65ee6d9f' filepath='include/linux/zstd.h' line='153' column='1' id='a26eb5ee'/>
+      <typedef-decl name='swap_func_t' type-id='97c3bf57' filepath='include/linux/types.h' line='229' column='1' id='a271c445'/>
+      <pointer-type-def type-id='6161d888' size-in-bits='64' id='a2782ece'/>
+      <pointer-type-def type-id='a112b1c1' size-in-bits='64' id='a27998cd'/>
+      <class-decl name='nf_ct_event_notifier' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack_ecache.h' line='81' column='1' id='a27aef61'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ct_event' type-id='fd7bd477' visibility='default' filepath='include/net/netfilter/nf_conntrack_ecache.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='exp_event' type-id='7b60dc9f' visibility='default' filepath='include/net/netfilter/nf_conntrack_ecache.h' line='83' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fscrypt_prepared_key' size-in-bits='128' is-struct='yes' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='186' column='1' id='a28355c2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tfm' type-id='72bb8c36' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='blk_key' type-id='cb6e5180' visibility='default' filepath='fs/crypto/fscrypt_private.h' line='189' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a286a01c'>
+        <parameter type-id='414ea452'/>
+        <parameter type-id='bdcee7ae'/>
+        <parameter type-id='bdcee7ae'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='tc_action_priv_destructor' type-id='b7f9d8e6' filepath='include/net/act_api.h' line='96' column='1' id='a2874d8a'/>
+      <enum-decl name='drm_link_status' filepath='include/drm/drm_connector.h' line='272' column='1' id='a28dfadd'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DRM_LINK_STATUS_GOOD' value='0'/>
+        <enumerator name='DRM_LINK_STATUS_BAD' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='33dff9d3' size-in-bits='64' id='a29682fb'/>
+      <function-type size-in-bits='64' id='a2a24eee'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='5606e640'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='arch_specific_insn' size-in-bits='256' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/probes.h' line='25' column='1' id='a2a4e4a9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='api' type-id='f21a6717' visibility='default' filepath='arch/arm64/include/asm/probes.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='8bf48c31' size-in-bits='2048' id='a2aad346'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <pointer-type-def type-id='203c1d4d' size-in-bits='64' id='a2abb549'/>
+      <pointer-type-def type-id='3f0a3b53' size-in-bits='64' id='a2abe05f'/>
+      <function-type size-in-bits='64' id='a2ac80c1'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='2ae08426'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='cf29c9b3'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='netns_xdp' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/netns/xdp.h' line='8' column='1' id='a2b0ef48'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/net/netns/xdp.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='list' type-id='e151255a' visibility='default' filepath='include/net/netns/xdp.h' line='10' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='03a1b8ac' const='yes' id='a2b0f227'/>
+      <function-type size-in-bits='64' id='a2b102f9'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b4b886af'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='a2b185bc'>
+        <parameter type-id='404b1300'/>
+        <parameter type-id='2feec21f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='fib_table' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/net/ip_fib.h' line='248' column='1' id='a2b406b5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tb_hlist' type-id='03a4a074' visibility='default' filepath='include/net/ip_fib.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tb_id' type-id='19c2251e' visibility='default' filepath='include/net/ip_fib.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='tb_num_default' type-id='95e97e5e' visibility='default' filepath='include/net/ip_fib.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/ip_fib.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='tb_data' type-id='1d2c2b85' visibility='default' filepath='include/net/ip_fib.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='__data' type-id='c99b5ecd' visibility='default' filepath='include/net/ip_fib.h' line='254' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_sliced_vbi_format' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2155' column='1' id='a2be7826'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='service_set' type-id='d315442e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='service_lines' type-id='025daa6d' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='io_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='reserved' type-id='839e8989' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2163' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bd965180' size-in-bits='64' id='a2bff676'/>
+      <function-type size-in-bits='64' id='a2c297ff'>
+        <parameter type-id='12884b9a'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='b7a67527' size-in-bits='64' id='a2cb17a3'/>
+      <pointer-type-def type-id='d91f00fd' size-in-bits='64' id='a2ce5275'/>
+      <function-type size-in-bits='64' id='a2dba6b8'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='df4b7819'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='419266fd'/>
+      </function-type>
+      <class-decl name='nf_tcp_net' size-in-bits='480' is-struct='yes' visibility='default' filepath='include/net/netns/conntrack.h' line='25' column='1' id='a2e01929'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='timeouts' type-id='27cbf0c8' visibility='default' filepath='include/net/netns/conntrack.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='tcp_loose' type-id='f9b06939' visibility='default' filepath='include/net/netns/conntrack.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='456'>
+          <var-decl name='tcp_be_liberal' type-id='f9b06939' visibility='default' filepath='include/net/netns/conntrack.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='464'>
+          <var-decl name='tcp_max_retrans' type-id='f9b06939' visibility='default' filepath='include/net/netns/conntrack.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='472'>
+          <var-decl name='tcp_ignore_invalid_rst' type-id='f9b06939' visibility='default' filepath='include/net/netns/conntrack.h' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a2e29ca3'>
+        <parameter type-id='26deddb9'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='99cf04a8' size-in-bits='64' id='a2e418a6'/>
+      <function-type size-in-bits='64' id='a2ef4917'>
+        <parameter type-id='7544e824'/>
+        <parameter type-id='2869bb38'/>
+        <parameter type-id='1d2c2b85'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='snd_soc_tplg_hdr' size-in-bits='288' is-struct='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='194' column='1' id='a2f068ed'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='magic' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='abi' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='version' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='type' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='size' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='vendor_type' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='payload_size' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='index' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='count' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='203' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ded6d889' size-in-bits='64' id='a2f6b261'/>
+      <enum-decl name='tcpm_transmit_status' filepath='include/linux/usb/tcpm.h' line='36' column='1' id='a2f9e316'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='TCPC_TX_SUCCESS' value='0'/>
+        <enumerator name='TCPC_TX_DISCARDED' value='1'/>
+        <enumerator name='TCPC_TX_FAILED' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='d09873ca' size-in-bits='64' id='a2faabac'/>
+      <function-type size-in-bits='64' id='a301f696'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='bf3ef905'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='eea6b025'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='snd_soc_tplg_stream' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='323' column='1' id='a305d6c9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='name' type-id='36cef6bd' visibility='default' filepath='include/uapi/sound/asoc.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='format' type-id='a30e8d1f' visibility='default' filepath='include/uapi/sound/asoc.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='rate' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='period_bytes' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='buffer_bytes' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='channels' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='330' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='hdmi_picture_aspect' filepath='include/linux/hdmi.h' line='96' column='1' id='a30ccd44'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HDMI_PICTURE_ASPECT_NONE' value='0'/>
+        <enumerator name='HDMI_PICTURE_ASPECT_4_3' value='1'/>
+        <enumerator name='HDMI_PICTURE_ASPECT_16_9' value='2'/>
+        <enumerator name='HDMI_PICTURE_ASPECT_64_27' value='3'/>
+        <enumerator name='HDMI_PICTURE_ASPECT_256_135' value='4'/>
+        <enumerator name='HDMI_PICTURE_ASPECT_RESERVED' value='5'/>
+      </enum-decl>
+      <typedef-decl name='__le64' type-id='d3130597' filepath='include/uapi/linux/types.h' line='33' column='1' id='a30e8d1f'/>
+      <class-decl name='xfrm_tmpl' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/net/xfrm.h' line='440' column='1' id='a30f25c8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='d07aeeaa' visibility='default' filepath='include/net/xfrm.h' line='447' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='saddr' type-id='c210d497' visibility='default' filepath='include/net/xfrm.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='encap_family' type-id='8efea9e5' visibility='default' filepath='include/net/xfrm.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='reqid' type-id='19c2251e' visibility='default' filepath='include/net/xfrm.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='mode' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='392'>
+          <var-decl name='share' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='400'>
+          <var-decl name='optional' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='463' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='408'>
+          <var-decl name='allalgs' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='466' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='aalgos' type-id='19c2251e' visibility='default' filepath='include/net/xfrm.h' line='469' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ealgos' type-id='19c2251e' visibility='default' filepath='include/net/xfrm.h' line='470' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='calgos' type-id='19c2251e' visibility='default' filepath='include/net/xfrm.h' line='471' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='kmem_cache' size-in-bits='2112' is-struct='yes' visibility='default' filepath='include/linux/slub_def.h' line='90' column='1' id='a3119fea'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cpu_slab' type-id='75f3cc0b' visibility='default' filepath='include/linux/slub_def.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='f7fe96cb' visibility='default' filepath='include/linux/slub_def.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='min_partial' type-id='7359adad' visibility='default' filepath='include/linux/slub_def.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='size' type-id='f0981eeb' visibility='default' filepath='include/linux/slub_def.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='object_size' type-id='f0981eeb' visibility='default' filepath='include/linux/slub_def.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='reciprocal_size' type-id='80ebe7f7' visibility='default' filepath='include/linux/slub_def.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='offset' type-id='f0981eeb' visibility='default' filepath='include/linux/slub_def.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='cpu_partial' type-id='f0981eeb' visibility='default' filepath='include/linux/slub_def.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='oo' type-id='dfc42026' visibility='default' filepath='include/linux/slub_def.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='max' type-id='dfc42026' visibility='default' filepath='include/linux/slub_def.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='min' type-id='dfc42026' visibility='default' filepath='include/linux/slub_def.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='allocflags' type-id='3eb7c31c' visibility='default' filepath='include/linux/slub_def.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='refcount' type-id='95e97e5e' visibility='default' filepath='include/linux/slub_def.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ctor' type-id='b7f9d8e6' visibility='default' filepath='include/linux/slub_def.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='inuse' type-id='f0981eeb' visibility='default' filepath='include/linux/slub_def.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='align' type-id='f0981eeb' visibility='default' filepath='include/linux/slub_def.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='red_left_pad' type-id='f0981eeb' visibility='default' filepath='include/linux/slub_def.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/slub_def.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/slub_def.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='include/linux/slub_def.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='random' type-id='7359adad' visibility='default' filepath='include/linux/slub_def.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='random_seq' type-id='807869d3' visibility='default' filepath='include/linux/slub_def.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='kasan_info' type-id='c01a68a0' visibility='default' filepath='include/linux/slub_def.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1952'>
+          <var-decl name='useroffset' type-id='f0981eeb' visibility='default' filepath='include/linux/slub_def.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='usersize' type-id='f0981eeb' visibility='default' filepath='include/linux/slub_def.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='node' type-id='425436e6' visibility='default' filepath='include/linux/slub_def.h' line='141' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2a9bc482' size-in-bits='64' id='a31786f0'/>
+      <class-decl name='pwm_ops' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/pwm.h' line='272' column='1' id='a31cf734'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='request' type-id='45fc9a43' visibility='default' filepath='include/linux/pwm.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='free' type-id='e09d9aea' visibility='default' filepath='include/linux/pwm.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='capture' type-id='7763914e' visibility='default' filepath='include/linux/pwm.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='apply' type-id='4edf040a' visibility='default' filepath='include/linux/pwm.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='get_state' type-id='06f3ff9e' visibility='default' filepath='include/linux/pwm.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/pwm.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='config' type-id='d13e4d11' visibility='default' filepath='include/linux/pwm.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='set_polarity' type-id='4b3074a5' visibility='default' filepath='include/linux/pwm.h' line='286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='enable' type-id='45fc9a43' visibility='default' filepath='include/linux/pwm.h' line='288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='disable' type-id='e09d9aea' visibility='default' filepath='include/linux/pwm.h' line='289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/pwm.h' line='291' column='1'/>
+        </data-member>
+      </class-decl>
+      <union-decl name='rcu_special' size-in-bits='32' visibility='default' filepath='include/linux/sched.h' line='709' column='1' id='a324790e'>
+        <data-member access='public'>
+          <var-decl name='b' type-id='e7f4400a' visibility='default' filepath='include/linux/sched.h' line='715' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='s' type-id='19c2251e' visibility='default' filepath='include/linux/sched.h' line='716' column='1'/>
+        </data-member>
+      </union-decl>
+      <pointer-type-def type-id='84e4381f' size-in-bits='64' id='a324decb'/>
+      <pointer-type-def type-id='fdb72d3d' size-in-bits='64' id='a32594b9'/>
+      <class-decl name='blk_rq_stat' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/blk_types.h' line='538' column='1' id='a3274c4b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mean' type-id='91ce1af9' visibility='default' filepath='include/linux/blk_types.h' line='539' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='min' type-id='91ce1af9' visibility='default' filepath='include/linux/blk_types.h' line='540' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='max' type-id='91ce1af9' visibility='default' filepath='include/linux/blk_types.h' line='541' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='nr_samples' type-id='19c2251e' visibility='default' filepath='include/linux/blk_types.h' line='542' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='batch' type-id='91ce1af9' visibility='default' filepath='include/linux/blk_types.h' line='543' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='rpmsg_endpoint_ops' size-in-bits='704' is-struct='yes' visibility='default' filepath='drivers/rpmsg/rpmsg_internal.h' line='66' column='1' id='a3285bb7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='destroy_ept' type-id='91ea7193' visibility='default' filepath='drivers/rpmsg/rpmsg_internal.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='send' type-id='17d22855' visibility='default' filepath='drivers/rpmsg/rpmsg_internal.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sendto' type-id='3339fe1c' visibility='default' filepath='drivers/rpmsg/rpmsg_internal.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='send_offchannel' type-id='96afd393' visibility='default' filepath='drivers/rpmsg/rpmsg_internal.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='trysend' type-id='17d22855' visibility='default' filepath='drivers/rpmsg/rpmsg_internal.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='trysendto' type-id='3339fe1c' visibility='default' filepath='drivers/rpmsg/rpmsg_internal.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='trysend_offchannel' type-id='96afd393' visibility='default' filepath='drivers/rpmsg/rpmsg_internal.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='poll' type-id='00cfc612' visibility='default' filepath='drivers/rpmsg/rpmsg_internal.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='rx_done' type-id='084efa4e' visibility='default' filepath='drivers/rpmsg/rpmsg_internal.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='get_signals' type-id='ded4959c' visibility='default' filepath='drivers/rpmsg/rpmsg_internal.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='set_signals' type-id='edf18c5a' visibility='default' filepath='drivers/rpmsg/rpmsg_internal.h' line='82' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_bus_cfg' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/drm/drm_atomic.h' line='1066' column='1' id='a3477226'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='format' type-id='19c2251e' visibility='default' filepath='include/drm/drm_atomic.h' line='1074' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/drm/drm_atomic.h' line='1079' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ptp_clock_event' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='183' column='1' id='a353a0ed'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='95e97e5e' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='index' type-id='95e97e5e' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab612' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='186' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='soc_device' size-in-bits='7424' is-struct='yes' visibility='default' filepath='drivers/base/soc.c' line='24' column='1' id='a353e32f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='drivers/base/soc.c' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='attr' type-id='2dbbe856' visibility='default' filepath='drivers/base/soc.c' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='soc_dev_num' type-id='95e97e5e' visibility='default' filepath='drivers/base/soc.c' line='27' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='net_device_stats' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='171' column='1' id='a3566137'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rx_packets' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tx_packets' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rx_bytes' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tx_bytes' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rx_errors' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='tx_errors' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='rx_dropped' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='tx_dropped' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='multicast' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='collisions' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='rx_length_errors' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='rx_over_errors' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='rx_crc_errors' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='rx_frame_errors' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='rx_fifo_errors' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='rx_missed_errors' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='tx_aborted_errors' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='tx_carrier_errors' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='tx_fifo_errors' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='tx_heartbeat_errors' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='tx_window_errors' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='rx_compressed' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='tx_compressed' type-id='7359adad' visibility='default' filepath='include/linux/netdevice.h' line='194' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a35f0003'>
+        <parameter type-id='260390aa'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='kretprobe' size-in-bits='1408' is-struct='yes' visibility='default' filepath='include/linux/kprobes.h' line='146' column='1' id='a363caa5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kp' type-id='35f522bc' visibility='default' filepath='include/linux/kprobes.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='handler' type-id='c7d0fc7e' visibility='default' filepath='include/linux/kprobes.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='entry_handler' type-id='c7d0fc7e' visibility='default' filepath='include/linux/kprobes.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='maxactive' type-id='95e97e5e' visibility='default' filepath='include/linux/kprobes.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='nmissed' type-id='95e97e5e' visibility='default' filepath='include/linux/kprobes.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='data_size' type-id='b59d7dce' visibility='default' filepath='include/linux/kprobes.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='freelist' type-id='bf2e063e' visibility='default' filepath='include/linux/kprobes.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='rph' type-id='1eb35fe2' visibility='default' filepath='include/linux/kprobes.h' line='154' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='2f162548' size-in-bits='128' id='a36b3301'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='a373c61d'>
+        <parameter type-id='bd1c8eb6'/>
+        <parameter type-id='fa598f35'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='e0f37aa4' size-in-bits='64' id='a3740d42'/>
+      <class-decl name='v4l2_sdr_format' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2304' column='1' id='a37aff65'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pixelformat' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='buffersize' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reserved' type-id='26f0765c' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2307' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='de6e2151' size-in-bits='64' id='a37de2bd'/>
+      <pointer-type-def type-id='8707bb0f' size-in-bits='64' id='a37ee787'/>
+      <class-decl name='mem_cgroup_thresholds' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/memcontrol.h' line='173' column='1' id='a38368d4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='primary' type-id='4ec56f94' visibility='default' filepath='include/linux/memcontrol.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='spare' type-id='4ec56f94' visibility='default' filepath='include/linux/memcontrol.h' line='181' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a386dad4'>
+        <parameter type-id='513f51db'/>
+        <parameter type-id='bd54fe1a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='drm_connector_tv_margins' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/drm/drm_connector.h' line='611' column='1' id='a38825b1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bottom' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='615' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='left' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='620' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='right' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='625' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='top' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='630' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='partition_meta_info' size-in-bits='808' is-struct='yes' visibility='default' filepath='include/linux/genhd.h' line='35' column='1' id='a388c264'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='uuid' type-id='12e4ade3' visibility='default' filepath='include/linux/genhd.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='296'>
+          <var-decl name='volname' type-id='47ba3182' visibility='default' filepath='include/linux/genhd.h' line='37' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3b5c61ad' size-in-bits='64' id='a38aafde'/>
+      <function-type size-in-bits='64' id='a38d6c05'>
+        <parameter type-id='bcfe6314'/>
+        <return type-id='549da823'/>
+      </function-type>
+      <function-type size-in-bits='64' id='a38ff96f'>
+        <parameter type-id='10216dc5'/>
+        <parameter type-id='e7faa6fb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='de826e86' size-in-bits='64' id='a3948f60'/>
+      <pointer-type-def type-id='4e0e413a' size-in-bits='64' id='a3a882dc'/>
+      <pointer-type-def type-id='eb99238b' size-in-bits='64' id='a3b5aa5f'/>
+      <pointer-type-def type-id='c1a677af' size-in-bits='64' id='a3ba8d43'/>
+      <pointer-type-def type-id='6557550d' size-in-bits='64' id='a3c69469'/>
+      <pointer-type-def type-id='52d21874' size-in-bits='64' id='a3c6fb36'/>
+      <pointer-type-def type-id='cecfa2ad' size-in-bits='64' id='a3cb28f1'/>
+      <typedef-decl name='blkcg_pol_alloc_pd_fn' type-id='80febe8b' filepath='include/linux/blk-cgroup.h' line='149' column='1' id='a3d58f0d'/>
+      <pointer-type-def type-id='4b349f6a' size-in-bits='64' id='a3d6b1c0'/>
+      <class-decl name='tlbflush_unmap_batch' is-struct='yes' visibility='default' filepath='include/linux/mm_types_task.h' line='76' column='1' id='a3d9f566'/>
+      <class-decl name='arch_timer_erratum_workaround' size-in-bits='640' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/arch_timer.h' line='51' column='1' id='a3e4c395'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='match_type' type-id='2377364c' visibility='default' filepath='arch/arm64/include/asm/arch_timer.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='id' type-id='eaa32e2f' visibility='default' filepath='arch/arm64/include/asm/arch_timer.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='desc' type-id='80f4b756' visibility='default' filepath='arch/arm64/include/asm/arch_timer.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='read_cntp_tval_el0' type-id='d91eb3a5' visibility='default' filepath='arch/arm64/include/asm/arch_timer.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='read_cntv_tval_el0' type-id='d91eb3a5' visibility='default' filepath='arch/arm64/include/asm/arch_timer.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='read_cntpct_el0' type-id='0e70db3e' visibility='default' filepath='arch/arm64/include/asm/arch_timer.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='read_cntvct_el0' type-id='0e70db3e' visibility='default' filepath='arch/arm64/include/asm/arch_timer.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='set_next_event_phys' type-id='1bff60d1' visibility='default' filepath='arch/arm64/include/asm/arch_timer.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='set_next_event_virt' type-id='1bff60d1' visibility='default' filepath='arch/arm64/include/asm/arch_timer.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='disable_compat_vdso' type-id='b50a4934' visibility='default' filepath='arch/arm64/include/asm/arch_timer.h' line='61' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fd122cd4' size-in-bits='64' id='a3e624c2'/>
+      <class-decl name='hash_alg_common' size-in-bits='4096' is-struct='yes' visibility='default' filepath='include/crypto/hash.h' line='42' column='1' id='a3fe44e4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='digestsize' type-id='f0981eeb' visibility='default' filepath='include/crypto/hash.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='statesize' type-id='f0981eeb' visibility='default' filepath='include/crypto/hash.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='base' type-id='514fe525' visibility='default' filepath='include/crypto/hash.h' line='46' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='ef40f18b' const='yes' id='a400949a'/>
+      <typedef-decl name='initxattrs' type-id='e0897b86' filepath='include/linux/security.h' line='228' column='1' id='a41950d6'/>
+      <function-type size-in-bits='64' id='a41d4f0c'>
+        <parameter type-id='a585cbc4'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='a41f849f'>
+        <parameter type-id='78e7cf52'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='94c948ef'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='78e13799' size-in-bits='8192' id='a4228e56'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <typedef-decl name='sector_t' type-id='91ce1af9' filepath='include/linux/types.h' line='125' column='1' id='a42536cd'/>
+      <pointer-type-def type-id='6a162484' size-in-bits='64' id='a426551e'/>
+      <array-type-def dimensions='2' type-id='91ce1af9' size-in-bits='768' id='a42717ee'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <pointer-type-def type-id='b71b307b' size-in-bits='64' id='a42934eb'/>
+      <pointer-type-def type-id='93be8120' size-in-bits='64' id='a42969fa'/>
+      <pointer-type-def type-id='e2bf3f10' size-in-bits='64' id='a436cbba'/>
+      <pointer-type-def type-id='7c94eaa3' size-in-bits='64' id='a4375c03'/>
+      <function-type size-in-bits='64' id='a43a9295'>
+        <parameter type-id='18881289'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='fb7d87a1'/>
+        <return type-id='b1a0a119'/>
+      </function-type>
+      <class-decl name='selinux_avc' is-struct='yes' visibility='default' is-declaration-only='yes' id='a4426e66'/>
+      <array-type-def dimensions='1' type-id='c1c411a0' size-in-bits='6144' id='a4444dc4'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='632cd7c3' size-in-bits='64' id='a4477ecf'/>
+      <qualified-type-def type-id='aee21e2d' const='yes' id='a447f0ac'/>
+      <class-decl name='v4l2_ctrl_h264_slice_params' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1501' column='1' id='a44a15b8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='header_bit_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1502' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='first_mb_in_slice' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1503' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='slice_type' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1504' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='colour_plane_id' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1505' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='redundant_pic_cnt' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='cabac_init_idc' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1507' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='slice_qp_delta' type-id='8af57d41' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1508' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='slice_qs_delta' type-id='8af57d41' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1509' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='disable_deblocking_filter_idc' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1510' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='slice_alpha_c0_offset_div2' type-id='8af57d41' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1511' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='slice_beta_offset_div2' type-id='8af57d41' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='num_ref_idx_l0_active_minus1' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1513' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='num_ref_idx_l1_active_minus1' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1514' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='reserved' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1516' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='ref_pic_list0' type-id='f9d25413' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1518' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='ref_pic_list1' type-id='f9d25413' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1521' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a45265de'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='13103032'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='abd62a96' size-in-bits='256' id='a459476c'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <pointer-type-def type-id='94bbdcaa' size-in-bits='64' id='a45ad774'/>
+      <pointer-type-def type-id='52378ac1' size-in-bits='64' id='a462f2f9'/>
+      <function-type size-in-bits='64' id='a4666910'>
+        <parameter type-id='00cf0c80'/>
+        <parameter type-id='f06adae0'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='dccc7677' size-in-bits='64' id='a469220f'/>
+      <function-type size-in-bits='64' id='a46a9227'>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='943685e6' size-in-bits='64' id='a46b05a0'/>
+      <enum-decl name='sum_check_flags' filepath='include/linux/dmaengine.h' line='221' column='1' id='a46c8018'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SUM_CHECK_P_RESULT' value='1'/>
+        <enumerator name='SUM_CHECK_Q_RESULT' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='54c5dd35' size-in-bits='64' id='a47516e5'/>
+      <pointer-type-def type-id='51b5f0bf' size-in-bits='64' id='a479b17b'/>
+      <function-type size-in-bits='64' id='a47ced76'>
+        <parameter type-id='108dbc98'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e063028f' size-in-bits='64' id='a47d3467'/>
+      <function-type size-in-bits='64' id='a48b0884'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='07751825'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='blk_zoned_model' filepath='include/linux/blkdev.h' line='289' column='1' id='a48b5528'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='BLK_ZONED_NONE' value='0'/>
+        <enumerator name='BLK_ZONED_HA' value='1'/>
+        <enumerator name='BLK_ZONED_HM' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='01985c44' size-in-bits='64' id='a48f20d2'/>
+      <class-decl name='pipe_buffer' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/pipe_fs_i.h' line='26' column='1' id='a490b814'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='page' type-id='02f11ed4' visibility='default' filepath='include/linux/pipe_fs_i.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='offset' type-id='f0981eeb' visibility='default' filepath='include/linux/pipe_fs_i.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='len' type-id='f0981eeb' visibility='default' filepath='include/linux/pipe_fs_i.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ops' type-id='edef9855' visibility='default' filepath='include/linux/pipe_fs_i.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/pipe_fs_i.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='private' type-id='7359adad' visibility='default' filepath='include/linux/pipe_fs_i.h' line='31' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b2a9667a' size-in-bits='64' id='a4946104'/>
+      <qualified-type-def type-id='0926e4bd' const='yes' id='a4974438'/>
+      <pointer-type-def type-id='cf6b9835' size-in-bits='64' id='a49b2975'/>
+      <pointer-type-def type-id='e3d2455d' size-in-bits='64' id='a49b3ef9'/>
+      <class-decl name='udp_tunnel_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/udp_tunnel.h' line='118' column='1' id='a49fa2a0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='8efea9e5' visibility='default' filepath='include/net/udp_tunnel.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='sa_family' type-id='376fda66' visibility='default' filepath='include/net/udp_tunnel.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='port' type-id='84a5c3d4' visibility='default' filepath='include/net/udp_tunnel.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='hw_priv' type-id='f9b06939' visibility='default' filepath='include/net/udp_tunnel.h' line='122' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='ff771233' const='yes' id='a4a37730'/>
+      <pointer-type-def type-id='f1a268ec' size-in-bits='64' id='a4a39eba'/>
+      <qualified-type-def type-id='1f7f0095' const='yes' id='a4a4d871'/>
+      <class-decl name='video_device' size-in-bits='12480' is-struct='yes' visibility='default' filepath='include/media/v4l2-dev.h' line='266' column='1' id='a4b3744f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='entity' type-id='889856f7' visibility='default' filepath='include/media/v4l2-dev.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='intf_devnode' type-id='8114c6c9' visibility='default' filepath='include/media/v4l2-dev.h' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='pipe' type-id='2783658a' visibility='default' filepath='include/media/v4l2-dev.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='fops' type-id='1e4c840c' visibility='default' filepath='include/media/v4l2-dev.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='device_caps' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-dev.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/media/v4l2-dev.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10816'>
+          <var-decl name='cdev' type-id='3e6eb939' visibility='default' filepath='include/media/v4l2-dev.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10880'>
+          <var-decl name='v4l2_dev' type-id='ddfb71fa' visibility='default' filepath='include/media/v4l2-dev.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10944'>
+          <var-decl name='dev_parent' type-id='fa0b179b' visibility='default' filepath='include/media/v4l2-dev.h' line='282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11008'>
+          <var-decl name='ctrl_handler' type-id='2b59fa5e' visibility='default' filepath='include/media/v4l2-dev.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11072'>
+          <var-decl name='queue' type-id='a05f1ecd' visibility='default' filepath='include/media/v4l2-dev.h' line='286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11136'>
+          <var-decl name='prio' type-id='2fc4734c' visibility='default' filepath='include/media/v4l2-dev.h' line='288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11200'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/media/v4l2-dev.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11456'>
+          <var-decl name='vfl_type' type-id='24df61b5' visibility='default' filepath='include/media/v4l2-dev.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11488'>
+          <var-decl name='vfl_dir' type-id='366ec232' visibility='default' filepath='include/media/v4l2-dev.h' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11520'>
+          <var-decl name='minor' type-id='95e97e5e' visibility='default' filepath='include/media/v4l2-dev.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11552'>
+          <var-decl name='num' type-id='1dc6a898' visibility='default' filepath='include/media/v4l2-dev.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11584'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/media/v4l2-dev.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11648'>
+          <var-decl name='index' type-id='95e97e5e' visibility='default' filepath='include/media/v4l2-dev.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11680'>
+          <var-decl name='fh_lock' type-id='fb4018a0' visibility='default' filepath='include/media/v4l2-dev.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11712'>
+          <var-decl name='fh_list' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-dev.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11840'>
+          <var-decl name='dev_debug' type-id='95e97e5e' visibility='default' filepath='include/media/v4l2-dev.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11904'>
+          <var-decl name='tvnorms' type-id='692d176e' visibility='default' filepath='include/media/v4l2-dev.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11968'>
+          <var-decl name='release' type-id='3007e20a' visibility='default' filepath='include/media/v4l2-dev.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12032'>
+          <var-decl name='ioctl_ops' type-id='b94745b1' visibility='default' filepath='include/media/v4l2-dev.h' line='309' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12096'>
+          <var-decl name='valid_ioctls' type-id='3461381a' visibility='default' filepath='include/media/v4l2-dev.h' line='310' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12288'>
+          <var-decl name='lock' type-id='e0ea832a' visibility='default' filepath='include/media/v4l2-dev.h' line='312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12352'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/media/v4l2-dev.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12416'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/media/v4l2-dev.h' line='315' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='mqd_t' type-id='b026c2fd' filepath='include/linux/types.h' line='28' column='1' id='a4bb20dd'/>
+      <pointer-type-def type-id='27f2e0d9' size-in-bits='64' id='a4c19f22'/>
+      <pointer-type-def type-id='433beb58' size-in-bits='64' id='a4c53922'/>
+      <pointer-type-def type-id='0a5711c9' size-in-bits='64' id='a4ca87c1'/>
+      <pointer-type-def type-id='93a4c7d5' size-in-bits='64' id='a4cbdcd9'/>
+      <pointer-type-def type-id='b0f12107' size-in-bits='64' id='a4cd055b'/>
+      <pointer-type-def type-id='1a041cb4' size-in-bits='64' id='a4cdda22'/>
+      <typedef-decl name='regmap_lock' type-id='b7f9d8e6' filepath='include/linux/regmap.h' line='228' column='1' id='a4d5c862'/>
+      <pointer-type-def type-id='53e8ab6e' size-in-bits='64' id='a4de1198'/>
+      <pointer-type-def type-id='a843bacf' size-in-bits='64' id='a4de2233'/>
+      <pointer-type-def type-id='111ab5a4' size-in-bits='64' id='a4e2d046'/>
+      <pointer-type-def type-id='3a0b2d1e' size-in-bits='64' id='a4e9cbb0'/>
+      <pointer-type-def type-id='c9a29512' size-in-bits='64' id='a4f4a514'/>
+      <function-type size-in-bits='64' id='a4fae1a3'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='3bf96ea9'/>
+        <parameter type-id='5799dc94'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='1779ab9d' const='yes' id='a4feac5a'/>
+      <class-decl name='perf_raw_frag' size-in-bits='224' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='78' column='1' id='a5007ad0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab598' visibility='default' filepath='include/linux/perf_event.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='copy' type-id='b468b440' visibility='default' filepath='include/linux/perf_event.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/perf_event.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='size' type-id='19c2251e' visibility='default' filepath='include/linux/perf_event.h' line='85' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2a02b07c' size-in-bits='64' id='a50616ee'/>
+      <pointer-type-def type-id='3642b004' size-in-bits='64' id='a506a456'/>
+      <pointer-type-def type-id='71d89257' size-in-bits='64' id='a50949ab'/>
+      <pointer-type-def type-id='0a77e414' size-in-bits='64' id='a50a69f6'/>
+      <pointer-type-def type-id='8b7bbbae' size-in-bits='64' id='a50c1d00'/>
+      <qualified-type-def type-id='4e25a330' const='yes' id='a50e69e9'/>
+      <class-decl name='workqueue_struct' size-in-bits='2560' is-struct='yes' visibility='default' filepath='kernel/workqueue.c' line='260' column='1' id='a5159c01'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pwqs' type-id='72f469ec' visibility='default' filepath='kernel/workqueue.c' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='kernel/workqueue.c' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='kernel/workqueue.c' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='work_color' type-id='95e97e5e' visibility='default' filepath='kernel/workqueue.c' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='flush_color' type-id='95e97e5e' visibility='default' filepath='kernel/workqueue.c' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='nr_pwqs_to_flush' type-id='49178f86' visibility='default' filepath='kernel/workqueue.c' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='first_flusher' type-id='ec037527' visibility='default' filepath='kernel/workqueue.c' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='flusher_queue' type-id='72f469ec' visibility='default' filepath='kernel/workqueue.c' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='flusher_overflow' type-id='72f469ec' visibility='default' filepath='kernel/workqueue.c' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='maydays' type-id='72f469ec' visibility='default' filepath='kernel/workqueue.c' line='272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='rescuer' type-id='50a159c7' visibility='default' filepath='kernel/workqueue.c' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='nr_drainers' type-id='95e97e5e' visibility='default' filepath='kernel/workqueue.c' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='saved_max_active' type-id='95e97e5e' visibility='default' filepath='kernel/workqueue.c' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='unbound_attrs' type-id='cfd15e7e' visibility='default' filepath='kernel/workqueue.c' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='dfl_pwq' type-id='a7a31b92' visibility='default' filepath='kernel/workqueue.c' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='wq_dev' type-id='5cebc26e' visibility='default' filepath='kernel/workqueue.c' line='282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='name' type-id='6653bb13' visibility='default' filepath='kernel/workqueue.c' line='289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='kernel/workqueue.c' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='kernel/workqueue.c' line='299' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='cpu_pwqs' type-id='a7a31b92' visibility='default' filepath='kernel/workqueue.c' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='numa_pwq_tbl' type-id='55b5dc02' visibility='default' filepath='kernel/workqueue.c' line='301' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='kobj_uevent_env' size-in-bits='20736' is-struct='yes' visibility='default' filepath='include/linux/kobject.h' line='163' column='1' id='a5179659'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='argv' type-id='461c9ed2' visibility='default' filepath='include/linux/kobject.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='envp' type-id='31147867' visibility='default' filepath='include/linux/kobject.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='envp_idx' type-id='95e97e5e' visibility='default' filepath='include/linux/kobject.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4320'>
+          <var-decl name='buf' type-id='41bf80f3' visibility='default' filepath='include/linux/kobject.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20704'>
+          <var-decl name='buflen' type-id='95e97e5e' visibility='default' filepath='include/linux/kobject.h' line='168' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e4cb80c8' size-in-bits='64' id='a5186342'/>
+      <typedef-decl name='ZSTD_entropyTables_t' type-id='d3eb97ea' filepath='lib/zstd/decompress.c' line='75' column='1' id='a51b392f'/>
+      <pointer-type-def type-id='31b9d99e' size-in-bits='64' id='a51b5fb8'/>
+      <qualified-type-def type-id='1c5d084f' const='yes' id='a51c0f4a'/>
+      <function-type size-in-bits='64' id='a51eeb2e'>
+        <parameter type-id='503ff1ba'/>
+        <parameter type-id='79ba09b7'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='9d3cfa5c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='05438640' size-in-bits='infinite' id='a51f6b3c'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='3ad5d94d' size-in-bits='64' id='a5263fbd'/>
+      <function-type size-in-bits='64' id='a5287adb'>
+        <parameter type-id='f41a0030'/>
+        <parameter type-id='b67ca2c0'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='pwm_capture' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/pwm.h' line='327' column='1' id='a52958fa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='period' type-id='f0981eeb' visibility='default' filepath='include/linux/pwm.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='duty_cycle' type-id='f0981eeb' visibility='default' filepath='include/linux/pwm.h' line='329' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='277480c7' size-in-bits='64' id='a52d0b9b'/>
+      <pointer-type-def type-id='e2103cb1' size-in-bits='64' id='a52f8809'/>
+      <class-decl name='flow_match_vlan' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/flow_offload.h' line='31' column='1' id='a532893d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='key' type-id='dc230ec2' visibility='default' filepath='include/net/flow_offload.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mask' type-id='dc230ec2' visibility='default' filepath='include/net/flow_offload.h' line='32' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a5390025'>
+        <parameter type-id='944c4ff9'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='d61bf978'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='a2874d8a' size-in-bits='64' id='a53db4f5'/>
+      <pointer-type-def type-id='0cf2912e' size-in-bits='64' id='a53e2328'/>
+      <pointer-type-def type-id='fa75c86d' size-in-bits='64' id='a54793a9'/>
+      <class-decl name='io_tlb_mem' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/swiotlb.h' line='92' column='1' id='a547d92e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='2522883d' visibility='default' filepath='include/linux/swiotlb.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='end' type-id='2522883d' visibility='default' filepath='include/linux/swiotlb.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='nslabs' type-id='7359adad' visibility='default' filepath='include/linux/swiotlb.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='used' type-id='7359adad' visibility='default' filepath='include/linux/swiotlb.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/linux/swiotlb.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/swiotlb.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='debugfs' type-id='27675065' visibility='default' filepath='include/linux/swiotlb.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='late_alloc' type-id='b50a4934' visibility='default' filepath='include/linux/swiotlb.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='392'>
+          <var-decl name='force_bounce' type-id='b50a4934' visibility='default' filepath='include/linux/swiotlb.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='400'>
+          <var-decl name='for_alloc' type-id='b50a4934' visibility='default' filepath='include/linux/swiotlb.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='slots' type-id='92ec3dc9' visibility='default' filepath='include/linux/swiotlb.h' line='107' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a547eaa5'>
+        <parameter type-id='26deddb9'/>
+        <parameter type-id='d8e6b335'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4bf19232' size-in-bits='64' id='a548fbc8'/>
+      <pointer-type-def type-id='a733634c' size-in-bits='64' id='a5490056'/>
+      <pointer-type-def type-id='f9b2d12e' size-in-bits='64' id='a54c778f'/>
+      <pointer-type-def type-id='a2398e84' size-in-bits='64' id='a54c80d6'/>
+      <array-type-def dimensions='1' type-id='e53d7a90' size-in-bits='infinite' id='a5527824'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='32b4b752' size-in-bits='64' id='a553b1c0'/>
+      <pointer-type-def type-id='1a96c066' size-in-bits='64' id='a556dccb'/>
+      <class-decl name='nfs4_lock_state' is-struct='yes' visibility='default' is-declaration-only='yes' id='a558a366'/>
+      <pointer-type-def type-id='2aa99da6' size-in-bits='64' id='a565a9a0'/>
+      <pointer-type-def type-id='fd7f3d28' size-in-bits='64' id='a569b9de'/>
+      <typedef-decl name='salt_t' type-id='8745f074' filepath='include/net/macsec.h' line='29' column='1' id='a572602f'/>
+      <pointer-type-def type-id='47479831' size-in-bits='64' id='a57283f9'/>
+      <pointer-type-def type-id='38a112d0' size-in-bits='64' id='a57789c2'/>
+      <pointer-type-def type-id='f8cb692f' size-in-bits='64' id='a5786cbb'/>
+      <pointer-type-def type-id='904e13de' size-in-bits='64' id='a57bd028'/>
+      <pointer-type-def type-id='472efbee' size-in-bits='64' id='a585cbc4'/>
+      <pointer-type-def type-id='beafd747' size-in-bits='64' id='a586bbcf'/>
+      <pointer-type-def type-id='f3287987' size-in-bits='64' id='a588c23f'/>
+      <class-decl name='drm_format_info' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/drm/drm_fourcc.h' line='61' column='1' id='a588cbed'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='format' type-id='19c2251e' visibility='default' filepath='include/drm/drm_fourcc.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='depth' type-id='f9b06939' visibility='default' filepath='include/drm/drm_fourcc.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='num_planes' type-id='f9b06939' visibility='default' filepath='include/drm/drm_fourcc.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='' type-id='ac5ab5d5' visibility='default' filepath='include/drm/drm_fourcc.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='block_w' type-id='931565be' visibility='default' filepath='include/drm/drm_fourcc.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='block_h' type-id='931565be' visibility='default' filepath='include/drm/drm_fourcc.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='hsub' type-id='f9b06939' visibility='default' filepath='include/drm/drm_fourcc.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='vsub' type-id='f9b06939' visibility='default' filepath='include/drm/drm_fourcc.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='has_alpha' type-id='b50a4934' visibility='default' filepath='include/drm/drm_fourcc.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='168'>
+          <var-decl name='is_yuv' type-id='b50a4934' visibility='default' filepath='include/drm/drm_fourcc.h' line='140' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8b69ca04' size-in-bits='64' id='a589466a'/>
+      <pointer-type-def type-id='26e73b36' size-in-bits='64' id='a5896095'/>
+      <pointer-type-def type-id='ff7ec25b' size-in-bits='64' id='a58c17e3'/>
+      <pointer-type-def type-id='080ce95f' size-in-bits='64' id='a58e905b'/>
+      <class-decl name='devlink_trap_group' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='773' column='1' id='a59727b2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/net/devlink.h' line='774' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='id' type-id='1dc6a898' visibility='default' filepath='include/net/devlink.h' line='775' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='generic' type-id='b50a4934' visibility='default' filepath='include/net/devlink.h' line='776' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='init_policer_id' type-id='19c2251e' visibility='default' filepath='include/net/devlink.h' line='777' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='binder_node' size-in-bits='1024' is-struct='yes' visibility='default' filepath='drivers/android/binder_internal.h' line='232' column='1' id='a59e83d6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='debug_id' type-id='95e97e5e' visibility='default' filepath='drivers/android/binder_internal.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='drivers/android/binder_internal.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='work' type-id='ba2d75bf' visibility='default' filepath='drivers/android/binder_internal.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='' type-id='ac5ab5bc' visibility='default' filepath='drivers/android/binder_internal.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='proc' type-id='d1cf113c' visibility='default' filepath='drivers/android/binder_internal.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='refs' type-id='e151255a' visibility='default' filepath='drivers/android/binder_internal.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='internal_strong_refs' type-id='95e97e5e' visibility='default' filepath='drivers/android/binder_internal.h' line='242' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='local_weak_refs' type-id='95e97e5e' visibility='default' filepath='drivers/android/binder_internal.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='local_strong_refs' type-id='95e97e5e' visibility='default' filepath='drivers/android/binder_internal.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='tmp_refs' type-id='95e97e5e' visibility='default' filepath='drivers/android/binder_internal.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='ptr' type-id='6867e656' visibility='default' filepath='drivers/android/binder_internal.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='cookie' type-id='6867e656' visibility='default' filepath='drivers/android/binder_internal.h' line='247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='' type-id='e7f43f87' visibility='default' filepath='drivers/android/binder_internal.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='840'>
+          <var-decl name='' type-id='e7f43f88' visibility='default' filepath='drivers/android/binder_internal.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='856'>
+          <var-decl name='has_async_transaction' type-id='b50a4934' visibility='default' filepath='drivers/android/binder_internal.h' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='async_todo' type-id='72f469ec' visibility='default' filepath='drivers/android/binder_internal.h' line='269' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='f817de22' const='yes' id='a5b2ff47'/>
+      <function-type size-in-bits='64' id='a5b67631'>
+        <parameter type-id='8898134d'/>
+        <parameter type-id='9e99ecc1'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='media_request_object' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/media/media-request.h' line='269' column='1' id='a5b7e4fd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='4228340f' visibility='default' filepath='include/media/media-request.h' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/media/media-request.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='req' type-id='ac429605' visibility='default' filepath='include/media/media-request.h' line='272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/media/media-request.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='include/media/media-request.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='completed' type-id='b50a4934' visibility='default' filepath='include/media/media-request.h' line='275' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fastopen_queue' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/request_sock.h' line='153' column='1' id='a5c461a3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rskq_rst_head' type-id='94c948ef' visibility='default' filepath='include/net/request_sock.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rskq_rst_tail' type-id='94c948ef' visibility='default' filepath='include/net/request_sock.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/net/request_sock.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='qlen' type-id='95e97e5e' visibility='default' filepath='include/net/request_sock.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='max_qlen' type-id='95e97e5e' visibility='default' filepath='include/net/request_sock.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ctx' type-id='104fa32f' visibility='default' filepath='include/net/request_sock.h' line='163' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='967c1c06' size-in-bits='64' id='a5c94ccc'/>
+      <pointer-type-def type-id='fa3724eb' size-in-bits='64' id='a5cedbd3'/>
+      <function-type size-in-bits='64' id='a5dc8838'>
+        <parameter type-id='7efbcaaf'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='1dc6a898'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='reset_controller_dev' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/reset-controller.h' line='69' column='1' id='a5e8d9a1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='cfc6a130' visibility='default' filepath='include/linux/reset-controller.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/reset-controller.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/reset-controller.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='reset_control_head' type-id='72f469ec' visibility='default' filepath='include/linux/reset-controller.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/reset-controller.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='of_node' type-id='9a537bbe' visibility='default' filepath='include/linux/reset-controller.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='of_reset_n_cells' type-id='95e97e5e' visibility='default' filepath='include/linux/reset-controller.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='of_xlate' type-id='81145c38' visibility='default' filepath='include/linux/reset-controller.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='nr_resets' type-id='f0981eeb' visibility='default' filepath='include/linux/reset-controller.h' line='79' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a5eadeee'>
+        <parameter type-id='7544e824'/>
+        <parameter type-id='2869bb38'/>
+        <parameter type-id='385b8018'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='5821ac64' size-in-bits='64' id='a5eb3c12'/>
+      <class-decl name='v4l2_hw_freq_seek' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1966' column='1' id='a5eead8f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tuner' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1967' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1968' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='seek_upward' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1969' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='wrap_around' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1970' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='spacing' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1971' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='rangelow' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1972' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rangehigh' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1973' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='reserved' type-id='83a5454e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1974' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3158a266' size-in-bits='64' id='a5f29c61'/>
+      <class-decl name='sfp_eeprom_ext' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/sfp.h' line='208' column='1' id='a6000ffd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='options' type-id='84a5c3d4' visibility='default' filepath='include/linux/sfp.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='br_max' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='br_min' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='vendor_sn' type-id='ac1fa8c0' visibility='default' filepath='include/linux/sfp.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='datecode' type-id='8e100159' visibility='default' filepath='include/linux/sfp.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='diagmon' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='232'>
+          <var-decl name='enhopts' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='240'>
+          <var-decl name='sff8472_compliance' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='248'>
+          <var-decl name='cc_ext' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='217' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ehci_per_sched' size-in-bits='384' is-struct='yes' visibility='default' filepath='drivers/usb/host/ehci.h' line='48' column='1' id='a60134e4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='udev' type-id='25e60cb2' visibility='default' filepath='drivers/usb/host/ehci.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ep' type-id='15adb516' visibility='default' filepath='drivers/usb/host/ehci.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ps_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/ehci.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='tt_usecs' type-id='1dc6a898' visibility='default' filepath='drivers/usb/host/ehci.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='cs_mask' type-id='1dc6a898' visibility='default' filepath='drivers/usb/host/ehci.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='period' type-id='1dc6a898' visibility='default' filepath='drivers/usb/host/ehci.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='304'>
+          <var-decl name='phase' type-id='1dc6a898' visibility='default' filepath='drivers/usb/host/ehci.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='bw_phase' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/ehci.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='328'>
+          <var-decl name='phase_uf' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/ehci.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='336'>
+          <var-decl name='usecs' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/ehci.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='344'>
+          <var-decl name='c_usecs' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/ehci.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='bw_uperiod' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/ehci.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='360'>
+          <var-decl name='bw_period' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/ehci.h' line='62' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='configfs_item_operations' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/configfs.h' line='210' column='1' id='a60315e1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='release' type-id='62924a52' visibility='default' filepath='include/linux/configfs.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='allow_link' type-id='dbb91d59' visibility='default' filepath='include/linux/configfs.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='drop_link' type-id='63faaa44' visibility='default' filepath='include/linux/configfs.h' line='213' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='blkcg_pol_alloc_cpd_fn' type-id='34a21b12' filepath='include/linux/blk-cgroup.h' line='145' column='1' id='a6042196'/>
+      <union-decl name='__sifields' size-in-bits='256' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='37' column='1' id='a60646cb'>
+        <data-member access='public'>
+          <var-decl name='_kill' type-id='e7f4400c' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='_timer' type-id='e7f4400d' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='_rt' type-id='e7f4400e' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='_sigchld' type-id='e7f4400f' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='_sigfault' type-id='e7f44010' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='_sigpoll' type-id='e7f44011' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='_sigsys' type-id='e7f44012' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='117' column='1'/>
+        </data-member>
+      </union-decl>
+      <pointer-type-def type-id='93553610' size-in-bits='64' id='a609cc6a'/>
+      <function-type size-in-bits='64' id='a61b2dc8'>
+        <parameter type-id='8898134d'/>
+        <parameter type-id='e3dd029e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='a61c3661'>
+        <parameter type-id='18d76f87'/>
+        <parameter type-id='f9409001'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='fr_proto_pvc' type-id='2c525e88' filepath='include/uapi/linux/hdlc/ioctl.h' line='70' column='1' id='a622177d'/>
+      <class-decl name='attribute' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/sysfs.h' line='30' column='1' id='a6222917'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' 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='2594b00f' visibility='default' filepath='include/linux/sysfs.h' line='32' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='268fa5d8' size-in-bits='64' id='a6223bf6'/>
+      <pointer-type-def type-id='268fa5d9' size-in-bits='64' id='a6223bf7'/>
+      <function-type size-in-bits='64' id='a6232b80'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='0c65b409'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='de57f169' size-in-bits='64' id='a6265381'/>
+      <function-type size-in-bits='64' id='a628efab'>
+        <parameter type-id='4dfe71de'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='a62a5dcb'>
+        <parameter type-id='28271da3'/>
+        <return type-id='80f4b756'/>
+      </function-type>
+      <pointer-type-def type-id='597bfbe2' size-in-bits='64' id='a62d5bd8'/>
+      <class-decl name='crypto_sync_skcipher' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/crypto/skcipher.h' line='43' column='1' id='a631cac2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='d80b6ab0' visibility='default' filepath='include/crypto/skcipher.h' line='44' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='__anonymous_enum__' filepath='lib/zstd/decompress.c' line='57' column='1' id='a6336802' is-anonymous='yes'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ZSTDds_getFrameHeaderSize' value='0'/>
+        <enumerator name='ZSTDds_decodeFrameHeader' value='1'/>
+        <enumerator name='ZSTDds_decodeBlockHeader' value='2'/>
+        <enumerator name='ZSTDds_decompressBlock' value='3'/>
+        <enumerator name='ZSTDds_decompressLastBlock' value='4'/>
+        <enumerator name='ZSTDds_checkChecksum' value='5'/>
+        <enumerator name='ZSTDds_decodeSkippableHeader' value='6'/>
+        <enumerator name='ZSTDds_skipFrame' value='7'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='a6355364'>
+        <parameter type-id='9d7e7820'/>
+        <parameter type-id='fa058983'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7f36a7f0' size-in-bits='64' id='a63f3a26'/>
+      <pointer-type-def type-id='682ab981' size-in-bits='64' id='a6424831'/>
+      <pointer-type-def type-id='fff725a2' size-in-bits='64' id='a6426b1c'/>
+      <pointer-type-def type-id='5470719c' size-in-bits='64' id='a6481aea'/>
+      <class-decl name='spmi_device' size-in-bits='7424' is-struct='yes' visibility='default' filepath='include/linux/spmi.h' line='40' column='1' id='a659afcb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/spmi.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='ctrl' type-id='d5cbf711' visibility='default' filepath='include/linux/spmi.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='usid' type-id='f9b06939' visibility='default' filepath='include/linux/spmi.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7caad7ca' size-in-bits='64' id='a65dd5e8'/>
+      <function-type size-in-bits='64' id='a65e4d6b'>
+        <parameter type-id='00c7b870'/>
+        <parameter type-id='26a90f95'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='a6676061'>
+        <parameter type-id='855e3679'/>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='irq_domain' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/linux/irqdomain.h' line='159' column='1' id='a667f60e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='link' type-id='72f469ec' visibility='default' filepath='include/linux/irqdomain.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/irqdomain.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ops' type-id='2c202856' visibility='default' filepath='include/linux/irqdomain.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='host_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/irqdomain.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/irqdomain.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='mapcount' type-id='f0981eeb' visibility='default' filepath='include/linux/irqdomain.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='fwnode' type-id='4a935625' visibility='default' filepath='include/linux/irqdomain.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='bus_token' type-id='385b8018' visibility='default' filepath='include/linux/irqdomain.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='gc' type-id='8e62d7cb' visibility='default' filepath='include/linux/irqdomain.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='parent' type-id='7544e824' visibility='default' filepath='include/linux/irqdomain.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/irqdomain.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/irqdomain.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/irqdomain.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/irqdomain.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='hwirq_max' type-id='88370ce9' visibility='default' filepath='include/linux/irqdomain.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='revmap_size' type-id='f0981eeb' visibility='default' filepath='include/linux/irqdomain.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='revmap_tree' type-id='d39738ac' visibility='default' filepath='include/linux/irqdomain.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='revmap_mutex' type-id='925167dc' visibility='default' filepath='include/linux/irqdomain.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='revmap' type-id='def29f5c' visibility='default' filepath='include/linux/irqdomain.h' line='185' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b715cae5' size-in-bits='64' id='a66a8231'/>
+      <array-type-def dimensions='2' type-id='7359adad' size-in-bits='1152' id='a66a9b84'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='a66ce823'>
+        <parameter type-id='65077a4a'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='60f2213f' size-in-bits='64' id='a6711537'/>
+      <typedef-decl name='seqStore_t' type-id='ac3df5ee' filepath='lib/zstd/zstd_internal.h' line='220' column='1' id='a671e2af'/>
+      <pointer-type-def type-id='b9930aae' size-in-bits='64' id='a6798dcc'/>
+      <pointer-type-def type-id='e079fe29' size-in-bits='64' id='a68064b1'/>
+      <pointer-type-def type-id='feeb4c2f' size-in-bits='64' id='a6892387'/>
+      <pointer-type-def type-id='ab056c47' size-in-bits='64' id='a689af97'/>
+      <array-type-def dimensions='1' type-id='b197d821' size-in-bits='256' id='a68b03d1'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <pointer-type-def type-id='332a260c' size-in-bits='64' id='a6945abe'/>
+      <pointer-type-def type-id='9b941952' size-in-bits='64' id='a69af780'/>
+      <pointer-type-def type-id='6d60f45d' size-in-bits='64' id='a6a0d755'/>
+      <function-type size-in-bits='64' id='a6ad86be'>
+        <parameter type-id='13103032'/>
+        <parameter type-id='5c0abad8'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='87769f42' size-in-bits='64' id='a6bf568c'/>
+      <class-decl name='request_sock_queue' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/net/request_sock.h' line='173' column='1' id='a6c77117'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rskq_lock' type-id='fb4018a0' visibility='default' filepath='include/net/request_sock.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='rskq_defer_accept' type-id='f9b06939' visibility='default' filepath='include/net/request_sock.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='synflood_warned' type-id='19c2251e' visibility='default' filepath='include/net/request_sock.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='qlen' type-id='49178f86' visibility='default' filepath='include/net/request_sock.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='young' type-id='49178f86' visibility='default' filepath='include/net/request_sock.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rskq_accept_head' type-id='94c948ef' visibility='default' filepath='include/net/request_sock.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rskq_accept_tail' type-id='94c948ef' visibility='default' filepath='include/net/request_sock.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='fastopenq' type-id='a5c461a3' visibility='default' filepath='include/net/request_sock.h' line='183' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0ff60dc2' size-in-bits='64' id='a6c912f4'/>
+      <pointer-type-def type-id='c7d5925c' size-in-bits='64' id='a6cdca2a'/>
+      <pointer-type-def type-id='a386dad4' size-in-bits='64' id='a6cfa2de'/>
+      <pointer-type-def type-id='dc49d474' size-in-bits='64' id='a6d2fa52'/>
+      <function-type size-in-bits='64' id='a6d40256'>
+        <parameter type-id='6614aa5e'/>
+        <return type-id='e5411c2c'/>
+      </function-type>
+      <qualified-type-def type-id='9d8e7276' const='yes' id='a6d8bab7'/>
+      <pointer-type-def type-id='5c07a611' size-in-bits='64' id='a6d9ffb5'/>
+      <qualified-type-def type-id='b0f558fb' const='yes' id='a6dc8192'/>
+      <function-type size-in-bits='64' id='a6dcac82'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='9e99ecc1'/>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='8f92235e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='75489b85' size-in-bits='64' id='a6ebc0f9'/>
+      <pointer-type-def type-id='2a75d4cb' size-in-bits='64' id='a6ecc207'/>
+      <pointer-type-def type-id='a558a366' size-in-bits='64' id='a6f0152c'/>
+      <qualified-type-def type-id='077208d0' const='yes' id='a6f56593'/>
+      <class-decl name='pm_qos_flags_request' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/pm_qos.h' line='66' column='1' id='a70ae6be'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/pm_qos.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='a7832498' visibility='default' filepath='include/linux/pm_qos.h' line='68' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ehci_hcd' size-in-bits='6912' is-struct='yes' visibility='default' filepath='drivers/usb/host/ehci.h' line='111' column='1' id='a70ecbd0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next_hrtimer_event' type-id='9ebf0a72' visibility='default' filepath='drivers/usb/host/ehci.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='enabled_hrtimer_events' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hr_timeouts' type-id='4271bfb9' visibility='default' filepath='drivers/usb/host/ehci.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='hrtimer' type-id='b6993efc' visibility='default' filepath='drivers/usb/host/ehci.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='PSS_poll_count' type-id='95e97e5e' visibility='default' filepath='drivers/usb/host/ehci.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='ASS_poll_count' type-id='95e97e5e' visibility='default' filepath='drivers/usb/host/ehci.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='died_poll_count' type-id='95e97e5e' visibility='default' filepath='drivers/usb/host/ehci.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='caps' type-id='f417f836' visibility='default' filepath='drivers/usb/host/ehci.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='regs' type-id='9c970268' visibility='default' filepath='drivers/usb/host/ehci.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='debug' type-id='9f823a90' visibility='default' filepath='drivers/usb/host/ehci.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='hcs_params' type-id='3f1a6b60' visibility='default' filepath='drivers/usb/host/ehci.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1760'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='drivers/usb/host/ehci.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='rh_state' type-id='ff69428e' visibility='default' filepath='drivers/usb/host/ehci.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1824'>
+          <var-decl name='scanning' type-id='b50a4934' visibility='default' filepath='drivers/usb/host/ehci.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1825'>
+          <var-decl name='need_rescan' type-id='b50a4934' visibility='default' filepath='drivers/usb/host/ehci.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1826'>
+          <var-decl name='intr_unlinking' type-id='b50a4934' visibility='default' filepath='drivers/usb/host/ehci.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1827'>
+          <var-decl name='iaa_in_progress' type-id='b50a4934' visibility='default' filepath='drivers/usb/host/ehci.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1828'>
+          <var-decl name='async_unlinking' type-id='b50a4934' visibility='default' filepath='drivers/usb/host/ehci.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1829'>
+          <var-decl name='shutdown' type-id='b50a4934' visibility='default' filepath='drivers/usb/host/ehci.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='qh_scan_next' type-id='8b139582' visibility='default' filepath='drivers/usb/host/ehci.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='async' type-id='8b139582' visibility='default' filepath='drivers/usb/host/ehci.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='dummy' type-id='8b139582' visibility='default' filepath='drivers/usb/host/ehci.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='async_unlink' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/ehci.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='async_idle' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/ehci.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='async_unlink_cycle' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2336'>
+          <var-decl name='async_count' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='old_current' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2400'>
+          <var-decl name='old_token' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='periodic_size' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='periodic' type-id='3e77f659' visibility='default' filepath='drivers/usb/host/ehci.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='periodic_dma' type-id='cf29c9b3' visibility='default' filepath='drivers/usb/host/ehci.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='intr_qh_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/ehci.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='i_thresh' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='pshadow' type-id='3434e051' visibility='default' filepath='drivers/usb/host/ehci.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='intr_unlink_wait' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/ehci.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='intr_unlink' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/ehci.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='intr_unlink_wait_cycle' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3168'>
+          <var-decl name='intr_unlink_cycle' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='now_frame' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3232'>
+          <var-decl name='last_iso_frame' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='intr_count' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3296'>
+          <var-decl name='isoc_count' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='periodic_count' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3360'>
+          <var-decl name='uframe_periodic_max' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='cached_itd_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/ehci.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='last_itd_to_free' type-id='eff2bbc2' visibility='default' filepath='drivers/usb/host/ehci.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='cached_sitd_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/ehci.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='last_sitd_to_free' type-id='bae724d1' visibility='default' filepath='drivers/usb/host/ehci.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='reset_done' type-id='d2b2558b' visibility='default' filepath='drivers/usb/host/ehci.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='bus_suspended' type-id='7359adad' visibility='default' filepath='drivers/usb/host/ehci.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='companion_ports' type-id='7359adad' visibility='default' filepath='drivers/usb/host/ehci.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4864'>
+          <var-decl name='owned_ports' type-id='7359adad' visibility='default' filepath='drivers/usb/host/ehci.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4928'>
+          <var-decl name='port_c_suspend' type-id='7359adad' visibility='default' filepath='drivers/usb/host/ehci.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='suspended_ports' type-id='7359adad' visibility='default' filepath='drivers/usb/host/ehci.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5056'>
+          <var-decl name='resuming_ports' type-id='7359adad' visibility='default' filepath='drivers/usb/host/ehci.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='qh_pool' type-id='ab33c616' visibility='default' filepath='drivers/usb/host/ehci.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='qtd_pool' type-id='ab33c616' visibility='default' filepath='drivers/usb/host/ehci.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='itd_pool' type-id='ab33c616' visibility='default' filepath='drivers/usb/host/ehci.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5312'>
+          <var-decl name='sitd_pool' type-id='ab33c616' visibility='default' filepath='drivers/usb/host/ehci.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='random_frame' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5440'>
+          <var-decl name='next_statechange' type-id='7359adad' visibility='default' filepath='drivers/usb/host/ehci.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='last_periodic_enable' type-id='fbc017ef' visibility='default' filepath='drivers/usb/host/ehci.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='command' type-id='19c2251e' visibility='default' filepath='drivers/usb/host/ehci.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5600'>
+          <var-decl name='no_selective_suspend' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5601'>
+          <var-decl name='has_fsl_port_bug' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5602'>
+          <var-decl name='has_fsl_hs_errata' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5603'>
+          <var-decl name='has_fsl_susp_errata' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5604'>
+          <var-decl name='big_endian_mmio' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5605'>
+          <var-decl name='big_endian_desc' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5606'>
+          <var-decl name='big_endian_capbase' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5607'>
+          <var-decl name='has_amcc_usb23' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5608'>
+          <var-decl name='need_io_watchdog' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5609'>
+          <var-decl name='amd_pll_fix' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5610'>
+          <var-decl name='use_dummy_qh' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5611'>
+          <var-decl name='has_synopsys_hc_bug' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5612'>
+          <var-decl name='frame_index_bug' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5613'>
+          <var-decl name='need_oc_pp_cycle' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5614'>
+          <var-decl name='imx28_write_fix' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5615'>
+          <var-decl name='spurious_oc' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5616'>
+          <var-decl name='is_aspeed' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5632'>
+          <var-decl name='ohci_hcctrl_reg' type-id='3e77f659' visibility='default' filepath='drivers/usb/host/ehci.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5696'>
+          <var-decl name='has_hostpc' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5697'>
+          <var-decl name='has_tdi_phy_lpm' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5698'>
+          <var-decl name='has_ppcd' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5704'>
+          <var-decl name='sbrn' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/ehci.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5712'>
+          <var-decl name='bandwidth' type-id='47ba3182' visibility='default' filepath='drivers/usb/host/ehci.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6224'>
+          <var-decl name='tt_budget' type-id='47ba3182' visibility='default' filepath='drivers/usb/host/ehci.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6784'>
+          <var-decl name='tt_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/ehci.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6912'>
+          <var-decl name='priv' type-id='c99b5ecd' visibility='default' filepath='drivers/usb/host/ehci.h' line='260' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a7132e26'>
+        <parameter type-id='2661e0d9'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='1dc6a898'/>
+      </function-type>
+      <function-type size-in-bits='64' id='a71373a3'>
+        <parameter type-id='150efd3f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='a721b4ab'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='7fa79446'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <union-decl name='ufs_crypto_cfg_entry' size-in-bits='1024' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='342' column='1' id='a722d386'>
+        <data-member access='public'>
+          <var-decl name='reg_val' type-id='28645bde' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fcd' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='344' column='1'/>
+        </data-member>
+      </union-decl>
+      <class-decl name='ring_buffer_event' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/ring_buffer.h' line='15' column='1' id='a7242c81'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type_len' type-id='19c2251e' visibility='default' filepath='include/linux/ring_buffer.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5'>
+          <var-decl name='time_delta' type-id='19c2251e' visibility='default' filepath='include/linux/ring_buffer.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='array' type-id='c165e8b9' visibility='default' filepath='include/linux/ring_buffer.h' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cc72711f' size-in-bits='64' id='a72a4e27'/>
+      <function-type size-in-bits='64' id='a72f8b53'>
+        <parameter type-id='87447c2d'/>
+        <parameter type-id='b1fd62ba'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a2782ece' size-in-bits='64' id='a731d0ec'/>
+      <function-type size-in-bits='64' id='a733634c'>
+        <parameter type-id='efa21d3b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='a73b2f11'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='69a3afa7'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='cgroup_rstat_cpu' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/cgroup-defs.h' line='313' column='1' id='a73d96cf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bsync' type-id='e4d85780' visibility='default' filepath='include/linux/cgroup-defs.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bstat' type-id='cfd8587e' visibility='default' filepath='include/linux/cgroup-defs.h' line='319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='last_bstat' type-id='cfd8587e' visibility='default' filepath='include/linux/cgroup-defs.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='updated_children' type-id='46ff135d' visibility='default' filepath='include/linux/cgroup-defs.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='updated_next' type-id='46ff135d' visibility='default' filepath='include/linux/cgroup-defs.h' line='339' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='utp_task_req_desc' size-in-bits='640' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='489' column='1' id='a73e5d15'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='header' type-id='746bbed6' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='491' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='upiu_req' type-id='e7f43fce' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='500' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='upiu_rsp' type-id='e7f43fcf' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='508' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='async_cookie_t' type-id='91ce1af9' filepath='include/linux/async.h' line='16' column='1' id='a7465fe4'/>
+      <pointer-type-def type-id='b2bada68' size-in-bits='64' id='a749fdca'/>
+      <class-decl name='prefix_info' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/addrconf.h' line='29' column='1' id='a7502152'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='8f048e17' visibility='default' filepath='include/net/addrconf.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='length' type-id='8f048e17' visibility='default' filepath='include/net/addrconf.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='prefix_len' type-id='8f048e17' visibility='default' filepath='include/net/addrconf.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='reserved' type-id='8f048e17' visibility='default' filepath='include/net/addrconf.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='30'>
+          <var-decl name='autoconf' type-id='8f048e17' visibility='default' filepath='include/net/addrconf.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='31'>
+          <var-decl name='onlink' type-id='8f048e17' visibility='default' filepath='include/net/addrconf.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='valid' type-id='78a133c2' visibility='default' filepath='include/net/addrconf.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='prefered' type-id='78a133c2' visibility='default' filepath='include/net/addrconf.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='reserved2' type-id='78a133c2' visibility='default' filepath='include/net/addrconf.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='prefix' type-id='f6ed712a' visibility='default' filepath='include/net/addrconf.h' line='49' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4e7ef9a4' size-in-bits='64' id='a75080c6'/>
+      <class-decl name='devlink_ops' size-in-bits='3264' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='1227' column='1' id='a751a5e7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='supported_flash_update_params' type-id='19c2251e' visibility='default' filepath='include/net/devlink.h' line='1233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reload_actions' type-id='7359adad' visibility='default' filepath='include/net/devlink.h' line='1234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='reload_limits' type-id='7359adad' visibility='default' filepath='include/net/devlink.h' line='1235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='reload_down' type-id='4974eb6b' visibility='default' filepath='include/net/devlink.h' line='1236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='reload_up' type-id='536610f0' visibility='default' filepath='include/net/devlink.h' line='1240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='port_type_set' type-id='495e518f' visibility='default' filepath='include/net/devlink.h' line='1243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='port_split' type-id='989875ef' visibility='default' filepath='include/net/devlink.h' line='1245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='port_unsplit' type-id='bc6bfb85' visibility='default' filepath='include/net/devlink.h' line='1247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='sb_pool_get' type-id='51cd4538' visibility='default' filepath='include/net/devlink.h' line='1249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='sb_pool_set' type-id='3c1aba32' visibility='default' filepath='include/net/devlink.h' line='1252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='sb_port_pool_get' type-id='e7af4529' visibility='default' filepath='include/net/devlink.h' line='1256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='sb_port_pool_set' type-id='32ea7cc1' visibility='default' filepath='include/net/devlink.h' line='1259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='sb_tc_pool_bind_get' type-id='0cc3e605' visibility='default' filepath='include/net/devlink.h' line='1262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='sb_tc_pool_bind_set' type-id='9385e4a6' visibility='default' filepath='include/net/devlink.h' line='1267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='sb_occ_snapshot' type-id='6cd929b4' visibility='default' filepath='include/net/devlink.h' line='1273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='sb_occ_max_clear' type-id='6cd929b4' visibility='default' filepath='include/net/devlink.h' line='1275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='sb_occ_port_pool_get' type-id='49d577e9' visibility='default' filepath='include/net/devlink.h' line='1277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='sb_occ_tc_port_bind_get' type-id='fc7390cb' visibility='default' filepath='include/net/devlink.h' line='1280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='eswitch_mode_get' type-id='40d29418' visibility='default' filepath='include/net/devlink.h' line='1286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='eswitch_mode_set' type-id='283b1276' visibility='default' filepath='include/net/devlink.h' line='1287' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='eswitch_inline_mode_get' type-id='459bda15' visibility='default' filepath='include/net/devlink.h' line='1289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='eswitch_inline_mode_set' type-id='d27bca1f' visibility='default' filepath='include/net/devlink.h' line='1290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='eswitch_encap_mode_get' type-id='fe18af5d' visibility='default' filepath='include/net/devlink.h' line='1292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='eswitch_encap_mode_set' type-id='eed59f13' visibility='default' filepath='include/net/devlink.h' line='1294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='info_get' type-id='10f21fe6' visibility='default' filepath='include/net/devlink.h' line='1297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='flash_update' type-id='2e9bdf5a' visibility='default' filepath='include/net/devlink.h' line='1306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='trap_init' type-id='952f4d6e' visibility='default' filepath='include/net/devlink.h' line='1317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='trap_fini' type-id='6d0d8617' visibility='default' filepath='include/net/devlink.h' line='1325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='trap_action_set' type-id='c1d0203a' visibility='default' filepath='include/net/devlink.h' line='1330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='trap_group_init' type-id='b5c09288' visibility='default' filepath='include/net/devlink.h' line='1340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='trap_group_set' type-id='b7865176' visibility='default' filepath='include/net/devlink.h' line='1348' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='trap_group_action_set' type-id='f1bf2356' visibility='default' filepath='include/net/devlink.h' line='1358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='trap_drop_counter_get' type-id='5f5ca3c1' visibility='default' filepath='include/net/devlink.h' line='1369' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='trap_policer_init' type-id='67efc3a5' visibility='default' filepath='include/net/devlink.h' line='1378' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='trap_policer_fini' type-id='fd54eeba' visibility='default' filepath='include/net/devlink.h' line='1386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='trap_policer_set' type-id='0d5afeb0' visibility='default' filepath='include/net/devlink.h' line='1391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='trap_policer_counter_get' type-id='d96c7ef8' visibility='default' filepath='include/net/devlink.h' line='1401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='port_function_hw_addr_get' type-id='92f3e2f1' visibility='default' filepath='include/net/devlink.h' line='1413' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='port_function_hw_addr_set' type-id='03a480ac' visibility='default' filepath='include/net/devlink.h' line='1423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='port_new' type-id='58251917' visibility='default' filepath='include/net/devlink.h' line='1444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='port_del' type-id='bc6bfb85' visibility='default' filepath='include/net/devlink.h' line='1465' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='port_fn_state_get' type-id='454b4728' visibility='default' filepath='include/net/devlink.h' line='1479' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='port_fn_state_set' type-id='3b66ebb0' visibility='default' filepath='include/net/devlink.h' line='1494' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='rate_leaf_tx_share_set' type-id='c33b00da' visibility='default' filepath='include/net/devlink.h' line='1501' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='rate_leaf_tx_max_set' type-id='c33b00da' visibility='default' filepath='include/net/devlink.h' line='1503' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='rate_node_tx_share_set' type-id='c33b00da' visibility='default' filepath='include/net/devlink.h' line='1505' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='rate_node_tx_max_set' type-id='c33b00da' visibility='default' filepath='include/net/devlink.h' line='1507' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='rate_node_new' type-id='d19d1bee' visibility='default' filepath='include/net/devlink.h' line='1509' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='rate_node_del' type-id='22c88c44' visibility='default' filepath='include/net/devlink.h' line='1511' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='rate_leaf_parent_set' type-id='03388cec' visibility='default' filepath='include/net/devlink.h' line='1513' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='rate_node_parent_set' type-id='03388cec' visibility='default' filepath='include/net/devlink.h' line='1517' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='perf_event_mmap_page' size-in-bits='8704' is-struct='yes' visibility='default' filepath='include/uapi/linux/perf_event.h' line='516' column='1' id='a752caf1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='version' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/perf_event.h' line='517' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='compat_version' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/perf_event.h' line='518' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='lock' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/perf_event.h' line='555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='index' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/perf_event.h' line='556' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='offset' type-id='49659421' visibility='default' filepath='include/uapi/linux/perf_event.h' line='557' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='time_enabled' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='558' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='time_running' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='559' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='' type-id='ac5ab662' visibility='default' filepath='include/uapi/linux/perf_event.h' line='560' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='pmc_width' type-id='d315442e' visibility='default' filepath='include/uapi/linux/perf_event.h' line='583' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='400'>
+          <var-decl name='time_shift' type-id='d315442e' visibility='default' filepath='include/uapi/linux/perf_event.h' line='609' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='time_mult' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/perf_event.h' line='610' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='time_offset' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='time_zero' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='628' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/perf_event.h' line='630' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='__reserved_1' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/perf_event.h' line='631' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='time_cycles' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='644' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='time_mask' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='645' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='__reserved' type-id='10427e1f' visibility='default' filepath='include/uapi/linux/perf_event.h' line='651' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='data_head' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='669' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='data_tail' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='670' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='data_offset' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='671' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8384'>
+          <var-decl name='data_size' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='672' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8448'>
+          <var-decl name='aux_head' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='685' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='aux_tail' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='686' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8576'>
+          <var-decl name='aux_offset' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='687' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='aux_size' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='688' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='bpf_iter_init_seq_priv_t' type-id='44aef41a' filepath='include/linux/bpf.h' line='52' column='1' id='a75f7f19'/>
+      <class-decl name='cpupri_vec' size-in-bits='128' is-struct='yes' visibility='default' filepath='kernel/sched/cpupri.h' line='10' column='1' id='a7623477'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='49178f86' visibility='default' filepath='kernel/sched/cpupri.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mask' type-id='b16b461b' visibility='default' filepath='kernel/sched/cpupri.h' line='12' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='flow_block_command' filepath='include/net/flow_offload.h' line='424' column='1' id='a76401a4'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='FLOW_BLOCK_BIND' value='0'/>
+        <enumerator name='FLOW_BLOCK_UNBIND' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='71cde6ad' size-in-bits='64' id='a7724059'/>
+      <pointer-type-def type-id='5251a03b' size-in-bits='64' id='a77efac3'/>
+      <qualified-type-def type-id='66e487eb' const='yes' id='a78232f6'/>
+      <typedef-decl name='s32' type-id='3158a266' filepath='include/asm-generic/int-ll64.h' line='20' column='1' id='a7832498'/>
+      <pointer-type-def type-id='4f40b107' size-in-bits='64' id='a7844efb'/>
+      <typedef-decl name='kthread_work_func_t' type-id='2a5d0ea1' filepath='include/linux/kthread.h' line='112' column='1' id='a785c7fd'/>
+      <class-decl name='__drm_planes_state' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/drm/drm_atomic.h' line='160' column='1' id='a79398e0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ptr' type-id='a6711537' visibility='default' filepath='include/drm/drm_atomic.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='state' type-id='d0835005' visibility='default' filepath='include/drm/drm_atomic.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='old_state' type-id='d0835005' visibility='default' filepath='include/drm/drm_atomic.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='new_state' type-id='d0835005' visibility='default' filepath='include/drm/drm_atomic.h' line='162' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a796a301'>
+        <parameter type-id='182be7cc'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='raw_hdlc_proto' type-id='f6b65a46' filepath='include/uapi/linux/hdlc/ioctl.h' line='56' column='1' id='a79adfa3'/>
+      <class-decl name='snd_soc_tplg_link_config' size-in-bits='13248' is-struct='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='545' column='1' id='a79c02b8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='546' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='id' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='547' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='36cef6bd' visibility='default' filepath='include/uapi/sound/asoc.h' line='548' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='stream_name' type-id='36cef6bd' visibility='default' filepath='include/uapi/sound/asoc.h' line='549' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='stream' type-id='0036534d' visibility='default' filepath='include/uapi/sound/asoc.h' line='550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='num_streams' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='551' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5408'>
+          <var-decl name='hw_config' type-id='63c0e8df' visibility='default' filepath='include/uapi/sound/asoc.h' line='552' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13088'>
+          <var-decl name='num_hw_configs' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='553' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13120'>
+          <var-decl name='default_hw_config_id' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13152'>
+          <var-decl name='flag_mask' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13184'>
+          <var-decl name='flags' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='556' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13216'>
+          <var-decl name='priv' type-id='372c32b8' visibility='default' filepath='include/uapi/sound/asoc.h' line='557' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a79c760e'>
+        <parameter type-id='2bf16f59'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='ZSTD_outBuffer' type-id='6ef1bf39' filepath='include/linux/zstd.h' line='490' column='1' id='a79f0bd2'/>
+      <pointer-type-def type-id='b0355154' size-in-bits='64' id='a7a31b92'/>
+      <class-decl name='usb_ssp_isoc_ep_comp_descriptor' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='677' column='1' id='a7a7a133'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='678' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='679' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='wReseved' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='680' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='dwBytesPerInterval' type-id='2f162548' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='681' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='43e7c387' size-in-bits='64' id='a7ad1583'/>
+      <function-type size-in-bits='64' id='a7b38e12'>
+        <parameter type-id='43c38462'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <class-decl name='input_absinfo' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/input.h' line='90' column='1' id='a7b3c380'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='value' type-id='3158a266' visibility='default' filepath='include/uapi/linux/input.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='minimum' type-id='3158a266' visibility='default' filepath='include/uapi/linux/input.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='maximum' type-id='3158a266' visibility='default' filepath='include/uapi/linux/input.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='fuzz' type-id='3158a266' visibility='default' filepath='include/uapi/linux/input.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flat' type-id='3158a266' visibility='default' filepath='include/uapi/linux/input.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='resolution' type-id='3158a266' visibility='default' filepath='include/uapi/linux/input.h' line='96' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='iova_flush_cb' type-id='53072f48' filepath='include/linux/iova.h' line='41' column='1' id='a7bae79c'/>
+      <array-type-def dimensions='1' type-id='e151255a' size-in-bits='16384' id='a7c26c7b'>
+        <subrange length='256' type-id='7ff19f0f' id='36e5b9fa'/>
+      </array-type-def>
+      <pointer-type-def type-id='ca10d3ca' size-in-bits='64' id='a7c6e908'/>
+      <pointer-type-def type-id='8ac5f9fc' size-in-bits='64' id='a7c79516'/>
+      <class-decl name='i3c_device_ibi_info' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/i3c/master.h' line='148' column='1' id='a7d28b59'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='all_ibis_handled' type-id='f9fef04f' visibility='default' filepath='include/linux/i3c/master.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='pending_ibis' type-id='49178f86' visibility='default' filepath='include/linux/i3c/master.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='max_payload_len' type-id='f0981eeb' visibility='default' filepath='include/linux/i3c/master.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='num_slots' type-id='f0981eeb' visibility='default' filepath='include/linux/i3c/master.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='enabled' type-id='f0981eeb' visibility='default' filepath='include/linux/i3c/master.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='handler' type-id='02e9b998' visibility='default' filepath='include/linux/i3c/master.h' line='154' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mmc_host' size-in-bits='15872' is-struct='yes' visibility='default' filepath='include/linux/mmc/host.h' line='324' column='1' id='a7d74313'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='parent' type-id='fa0b179b' visibility='default' filepath='include/linux/mmc/host.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='class_dev' type-id='66e487eb' visibility='default' filepath='include/linux/mmc/host.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='index' type-id='95e97e5e' visibility='default' filepath='include/linux/mmc/host.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='ops' type-id='13d52ad5' visibility='default' filepath='include/linux/mmc/host.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='pwrseq' type-id='0d786921' visibility='default' filepath='include/linux/mmc/host.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='f_min' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7584'>
+          <var-decl name='f_max' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='f_init' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7648'>
+          <var-decl name='ocr_avail' type-id='19c2251e' visibility='default' filepath='include/linux/mmc/host.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='ocr_avail_sdio' type-id='19c2251e' visibility='default' filepath='include/linux/mmc/host.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7712'>
+          <var-decl name='ocr_avail_sd' type-id='19c2251e' visibility='default' filepath='include/linux/mmc/host.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='ocr_avail_mmc' type-id='19c2251e' visibility='default' filepath='include/linux/mmc/host.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='ws' type-id='1ea237a6' visibility='default' filepath='include/linux/mmc/host.h' line='337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='max_current_330' type-id='19c2251e' visibility='default' filepath='include/linux/mmc/host.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7904'>
+          <var-decl name='max_current_300' type-id='19c2251e' visibility='default' filepath='include/linux/mmc/host.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='max_current_180' type-id='19c2251e' visibility='default' filepath='include/linux/mmc/host.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7968'>
+          <var-decl name='caps' type-id='19c2251e' visibility='default' filepath='include/linux/mmc/host.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='caps2' type-id='19c2251e' visibility='default' filepath='include/linux/mmc/host.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8032'>
+          <var-decl name='fixed_drv_type' type-id='95e97e5e' visibility='default' filepath='include/linux/mmc/host.h' line='435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='pm_caps' type-id='208a5a8d' visibility='default' filepath='include/linux/mmc/host.h' line='437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8096'>
+          <var-decl name='max_seg_size' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='440' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='max_segs' type-id='8efea9e5' visibility='default' filepath='include/linux/mmc/host.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8144'>
+          <var-decl name='unused' type-id='8efea9e5' visibility='default' filepath='include/linux/mmc/host.h' line='442' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8160'>
+          <var-decl name='max_req_size' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='max_blk_size' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8224'>
+          <var-decl name='max_blk_count' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='max_busy_timeout' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8288'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/mmc/host.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='ios' type-id='3f80a1ba' visibility='default' filepath='include/linux/mmc/host.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8480'>
+          <var-decl name='use_spi_crc' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8481'>
+          <var-decl name='claimed' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8482'>
+          <var-decl name='doing_init_tune' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8483'>
+          <var-decl name='can_retune' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8484'>
+          <var-decl name='doing_retune' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8485'>
+          <var-decl name='retune_now' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='459' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8486'>
+          <var-decl name='retune_paused' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8487'>
+          <var-decl name='retune_crc_disable' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='461' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8488'>
+          <var-decl name='can_dma_map_merge' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='462' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='rescan_disable' type-id='95e97e5e' visibility='default' filepath='include/linux/mmc/host.h' line='464' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8544'>
+          <var-decl name='rescan_entered' type-id='95e97e5e' visibility='default' filepath='include/linux/mmc/host.h' line='465' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8576'>
+          <var-decl name='need_retune' type-id='95e97e5e' visibility='default' filepath='include/linux/mmc/host.h' line='467' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8608'>
+          <var-decl name='hold_retune' type-id='95e97e5e' visibility='default' filepath='include/linux/mmc/host.h' line='468' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='retune_period' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='469' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='retune_timer' type-id='abe41e67' visibility='default' filepath='include/linux/mmc/host.h' line='470' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9152'>
+          <var-decl name='trigger_card_event' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/host.h' line='472' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9216'>
+          <var-decl name='card' type-id='13d38dcb' visibility='default' filepath='include/linux/mmc/host.h' line='474' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9280'>
+          <var-decl name='wq' type-id='b5ab048f' visibility='default' filepath='include/linux/mmc/host.h' line='476' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9472'>
+          <var-decl name='claimer' type-id='f1e196e0' visibility='default' filepath='include/linux/mmc/host.h' line='477' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9536'>
+          <var-decl name='claim_cnt' type-id='95e97e5e' visibility='default' filepath='include/linux/mmc/host.h' line='478' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='default_ctx' type-id='783f5582' visibility='default' filepath='include/linux/mmc/host.h' line='479' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9664'>
+          <var-decl name='detect' type-id='5ad6e0ef' visibility='default' filepath='include/linux/mmc/host.h' line='481' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10752'>
+          <var-decl name='detect_change' type-id='95e97e5e' visibility='default' filepath='include/linux/mmc/host.h' line='482' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10816'>
+          <var-decl name='slot' type-id='edfd3d7d' visibility='default' filepath='include/linux/mmc/host.h' line='483' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11008'>
+          <var-decl name='bus_ops' type-id='5680a8c9' visibility='default' filepath='include/linux/mmc/host.h' line='485' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11072'>
+          <var-decl name='sdio_irqs' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11136'>
+          <var-decl name='sdio_irq_thread' type-id='f23e2572' visibility='default' filepath='include/linux/mmc/host.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11200'>
+          <var-decl name='sdio_irq_work' type-id='5ad6e0ef' visibility='default' filepath='include/linux/mmc/host.h' line='489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12288'>
+          <var-decl name='sdio_irq_pending' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/host.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12320'>
+          <var-decl name='sdio_irq_thread_abort' type-id='49178f86' visibility='default' filepath='include/linux/mmc/host.h' line='491' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12352'>
+          <var-decl name='pm_flags' type-id='208a5a8d' visibility='default' filepath='include/linux/mmc/host.h' line='493' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12416'>
+          <var-decl name='led' type-id='db6d90a1' visibility='default' filepath='include/linux/mmc/host.h' line='495' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12480'>
+          <var-decl name='regulator_enabled' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/host.h' line='498' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12544'>
+          <var-decl name='supply' type-id='39af3b22' visibility='default' filepath='include/linux/mmc/host.h' line='500' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12672'>
+          <var-decl name='debugfs_root' type-id='27675065' visibility='default' filepath='include/linux/mmc/host.h' line='502' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12736'>
+          <var-decl name='ongoing_mrq' type-id='47f117d4' visibility='default' filepath='include/linux/mmc/host.h' line='505' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12800'>
+          <var-decl name='actual_clock' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='511' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12832'>
+          <var-decl name='slotno' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/host.h' line='513' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12864'>
+          <var-decl name='dsr_req' type-id='95e97e5e' visibility='default' filepath='include/linux/mmc/host.h' line='515' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12896'>
+          <var-decl name='dsr' type-id='19c2251e' visibility='default' filepath='include/linux/mmc/host.h' line='516' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12928'>
+          <var-decl name='cqe_ops' type-id='c3b36a8e' visibility='default' filepath='include/linux/mmc/host.h' line='519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12992'>
+          <var-decl name='cqe_private' type-id='eaa32e2f' visibility='default' filepath='include/linux/mmc/host.h' line='520' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13056'>
+          <var-decl name='cqe_qdepth' type-id='95e97e5e' visibility='default' filepath='include/linux/mmc/host.h' line='521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13088'>
+          <var-decl name='cqe_enabled' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/host.h' line='522' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13096'>
+          <var-decl name='cqe_on' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/host.h' line='523' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13104'>
+          <var-decl name='cqe_recovery_reset_always' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/host.h' line='524' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13120'>
+          <var-decl name='ksm' type-id='13fcfe64' visibility='default' filepath='include/linux/mmc/host.h' line='528' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14720'>
+          <var-decl name='hsq_enabled' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/host.h' line='532' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14752'>
+          <var-decl name='err_stats' type-id='02f7309f' visibility='default' filepath='include/linux/mmc/host.h' line='534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15232'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/mmc/host.h' line='536' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15296'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/mmc/host.h' line='537' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15360'>
+          <var-decl name='android_oem_data1' type-id='91ce1af9' visibility='default' filepath='include/linux/mmc/host.h' line='538' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15872'>
+          <var-decl name='private' type-id='c99b5ecd' visibility='default' filepath='include/linux/mmc/host.h' line='540' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='key_match_data' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/key-type.h' line='47' column='1' id='a7db2a27'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmp' type-id='a829f496' visibility='default' filepath='include/linux/key-type.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='raw_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/key-type.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='preparsed' type-id='eaa32e2f' visibility='default' filepath='include/linux/key-type.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='lookup_type' type-id='f0981eeb' visibility='default' filepath='include/linux/key-type.h' line='57' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a7f054ae'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='xdp_ring' size-in-bits='2560' is-struct='yes' visibility='default' filepath='net/xdp/xsk_queue.h' line='16' column='1' id='a7f258de'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='producer' type-id='19c2251e' visibility='default' filepath='net/xdp/xsk_queue.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='pad1' type-id='19c2251e' visibility='default' filepath='net/xdp/xsk_queue.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='consumer' type-id='19c2251e' visibility='default' filepath='net/xdp/xsk_queue.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='pad2' type-id='19c2251e' visibility='default' filepath='net/xdp/xsk_queue.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='net/xdp/xsk_queue.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='pad3' type-id='19c2251e' visibility='default' filepath='net/xdp/xsk_queue.h' line='25' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a7f990dc'>
+        <parameter type-id='c67366c7'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='edid' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/drm/drm_edid.h' line='320' column='1' id='a7fa16d9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='header' type-id='d2f7b56a' visibility='default' filepath='include/drm/drm_edid.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mfg_id' type-id='cf114704' visibility='default' filepath='include/drm/drm_edid.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='prod_code' type-id='cf114704' visibility='default' filepath='include/drm/drm_edid.h' line='324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='serial' type-id='19c2251e' visibility='default' filepath='include/drm/drm_edid.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mfg_week' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='mfg_year' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='version' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='revision' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='input' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='168'>
+          <var-decl name='width_cm' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='height_cm' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='184'>
+          <var-decl name='gamma' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='features' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='red_green_lo' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='blue_white_lo' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='216'>
+          <var-decl name='red_x' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='red_y' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='232'>
+          <var-decl name='green_x' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='240'>
+          <var-decl name='green_y' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='248'>
+          <var-decl name='blue_x' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='blue_y' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='264'>
+          <var-decl name='white_x' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='white_y' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='280'>
+          <var-decl name='established_timings' type-id='93a90c7b' visibility='default' filepath='include/drm/drm_edid.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='304'>
+          <var-decl name='standard_timings' type-id='521a7abd' visibility='default' filepath='include/drm/drm_edid.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='432'>
+          <var-decl name='detailed_timings' type-id='c93659c6' visibility='default' filepath='include/drm/drm_edid.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1008'>
+          <var-decl name='extensions' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1016'>
+          <var-decl name='checksum' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='357' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4da67c03' size-in-bits='64' id='a8037d8f'/>
+      <function-type size-in-bits='64' id='a804e84c'>
+        <parameter type-id='02f11ed4'/>
+        <parameter type-id='c2c60445'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='hw_perf_event_extra' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='124' column='1' id='a80839c0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='config' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reg' type-id='f0981eeb' visibility='default' filepath='include/linux/perf_event.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='alloc' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='idx' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='128' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b3fff074' size-in-bits='64' id='a80942ae'/>
+      <class-decl name='cec_connector_info' size-in-bits='544' is-struct='yes' visibility='default' filepath='include/uapi/linux/cec.h' line='401' column='1' id='a809e963'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/cec.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='' type-id='ac5ab5ea' visibility='default' filepath='include/uapi/linux/cec.h' line='403' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a80d6b6e'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='02557527'/>
+        <parameter type-id='8bff8096'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='32536656' size-in-bits='64' id='a80fd1bc'/>
+      <class-decl name='ieee80211_freq_range' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/net/regulatory.h' line='181' column='1' id='a81053d4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start_freq_khz' type-id='19c2251e' visibility='default' filepath='include/net/regulatory.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='end_freq_khz' type-id='19c2251e' visibility='default' filepath='include/net/regulatory.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max_bandwidth_khz' type-id='19c2251e' visibility='default' filepath='include/net/regulatory.h' line='184' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bf7aaec7' size-in-bits='64' id='a81671bb'/>
+      <class-decl name='winsize' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/asm-generic/termios.h' line='15' column='1' id='a818b7a0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ws_row' type-id='8efea9e5' visibility='default' filepath='include/uapi/asm-generic/termios.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='ws_col' type-id='8efea9e5' visibility='default' filepath='include/uapi/asm-generic/termios.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ws_xpixel' type-id='8efea9e5' visibility='default' filepath='include/uapi/asm-generic/termios.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='ws_ypixel' type-id='8efea9e5' visibility='default' filepath='include/uapi/asm-generic/termios.h' line='19' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ahash_instance' size-in-bits='7168' is-struct='yes' visibility='default' filepath='include/crypto/internal/hash.h' line='32' column='1' id='a818ea3e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='free' type-id='5645550d' visibility='default' filepath='include/crypto/internal/hash.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='' type-id='ac5ab5ad' visibility='default' filepath='include/crypto/internal/hash.h' line='34' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_subscribed_event_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/media/v4l2-event.h' line='46' column='1' id='a81e67e2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='add' type-id='5c4b80ab' visibility='default' filepath='include/media/v4l2-event.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='del' type-id='d9659030' visibility='default' filepath='include/media/v4l2-event.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='replace' type-id='bdf745d1' visibility='default' filepath='include/media/v4l2-event.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='merge' type-id='6780605f' visibility='default' filepath='include/media/v4l2-event.h' line='50' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='2bed066b' const='yes' id='a82172e0'/>
+      <pointer-type-def type-id='ab7568f4' size-in-bits='64' id='a829f496'/>
+      <function-type size-in-bits='64' id='a82c7e12'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='2bf5f3d0'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='a82fc150'>
+        <parameter type-id='75ae4804'/>
+        <parameter type-id='807869d3'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='8523d8c1' size-in-bits='64' id='a832c6b9'/>
+      <pointer-type-def type-id='92952bb0' size-in-bits='64' id='a8341196'/>
+      <array-type-def dimensions='1' type-id='72f469ec' size-in-bits='2944' id='a835e1f5'>
+        <subrange length='23' type-id='7ff19f0f' id='fdd0f594'/>
+      </array-type-def>
+      <class-decl name='phy_package_shared' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/phy.h' line='288' column='1' id='a83c5d35'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='95e97e5e' visibility='default' filepath='include/linux/phy.h' line='289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/linux/phy.h' line='290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/phy.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='priv_size' type-id='b59d7dce' visibility='default' filepath='include/linux/phy.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/phy.h' line='300' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d50d3459' size-in-bits='64' id='a83d0951'/>
+      <function-type size-in-bits='64' id='a843bacf'>
+        <parameter type-id='4db02c58'/>
+        <return type-id='74d89ebd'/>
+      </function-type>
+      <pointer-type-def type-id='dcf92fe6' size-in-bits='64' id='a8463e24'/>
+      <enum-decl name='hdmi_nups' filepath='include/linux/hdmi.h' line='139' column='1' id='a84bbd3b'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HDMI_NUPS_UNKNOWN' value='0'/>
+        <enumerator name='HDMI_NUPS_HORIZONTAL' value='1'/>
+        <enumerator name='HDMI_NUPS_VERTICAL' value='2'/>
+        <enumerator name='HDMI_NUPS_BOTH' value='3'/>
+      </enum-decl>
+      <type-decl name='char' size-in-bits='8' id='a84c031d'/>
+      <pointer-type-def type-id='15aa5ecd' size-in-bits='64' id='a84eb241'/>
+      <pointer-type-def type-id='68c47b91' size-in-bits='64' id='a84ec761'/>
+      <typedef-decl name='iommu_dev_fault_handler_t' type-id='6d118cd1' filepath='include/linux/iommu.h' line='63' column='1' id='a84f5b46'/>
+      <pointer-type-def type-id='6cb7d4e4' size-in-bits='64' id='a852a9de'/>
+      <pointer-type-def type-id='7a592779' size-in-bits='64' id='a8564695'/>
+      <class-decl name='backlight_device' size-in-bits='9024' is-struct='yes' visibility='default' filepath='include/linux/backlight.h' line='280' column='1' id='a858ced9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='props' type-id='8802968a' visibility='default' filepath='include/linux/backlight.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='update_lock' type-id='925167dc' visibility='default' filepath='include/linux/backlight.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='ops_lock' type-id='925167dc' visibility='default' filepath='include/linux/backlight.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='ops' type-id='a3d6b1c0' visibility='default' filepath='include/linux/backlight.h' line='312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='fb_notif' type-id='9b08f7cd' visibility='default' filepath='include/linux/backlight.h' line='317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='entry' type-id='72f469ec' visibility='default' filepath='include/linux/backlight.h' line='322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/backlight.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='fb_bl_on' type-id='6e32320a' visibility='default' filepath='include/linux/backlight.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8960'>
+          <var-decl name='use_count' type-id='95e97e5e' visibility='default' filepath='include/linux/backlight.h' line='340' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a86c42ee'>
+        <parameter type-id='54e54fbb'/>
+        <parameter type-id='226853d2'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a83c5d35' size-in-bits='64' id='a86c90a5'/>
+      <class-decl name='v4l2_capability' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='440' column='1' id='a874cee0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='driver' type-id='9396cabb' visibility='default' filepath='include/uapi/linux/videodev2.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='card' type-id='7e67d89d' visibility='default' filepath='include/uapi/linux/videodev2.h' line='442' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='bus_info' type-id='7e67d89d' visibility='default' filepath='include/uapi/linux/videodev2.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='version' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='capabilities' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='device_caps' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='reserved' type-id='3fa05d14' visibility='default' filepath='include/uapi/linux/videodev2.h' line='447' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5332c7dc' size-in-bits='64' id='a87691ee'/>
+      <class-decl name='irq_fwspec' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/irqdomain.h' line='62' column='1' id='a87c488a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fwnode' type-id='4a935625' visibility='default' filepath='include/linux/irqdomain.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='param_count' type-id='95e97e5e' visibility='default' filepath='include/linux/irqdomain.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='param' type-id='02fdec64' visibility='default' filepath='include/linux/irqdomain.h' line='65' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='4e0399c2' const='yes' id='a87d8ed1'/>
+      <class-decl name='wq_device' size-in-bits='7360' is-struct='yes' visibility='default' filepath='kernel/workqueue.c' line='5478' column='1' id='a88ecfc8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='wq' type-id='242e3d19' visibility='default' filepath='kernel/workqueue.c' line='5479' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='kernel/workqueue.c' line='5480' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='_ddebug' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/dynamic_debug.h' line='14' column='1' id='a88f76f1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='modname' type-id='80f4b756' visibility='default' filepath='include/linux/dynamic_debug.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='function' type-id='80f4b756' visibility='default' filepath='include/linux/dynamic_debug.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='filename' type-id='80f4b756' visibility='default' filepath='include/linux/dynamic_debug.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='format' type-id='80f4b756' visibility='default' filepath='include/linux/dynamic_debug.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='lineno' type-id='f0981eeb' visibility='default' filepath='include/linux/dynamic_debug.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='274'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/dynamic_debug.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='key' type-id='ac5ab68f' visibility='default' filepath='include/linux/dynamic_debug.h' line='50' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='9ac9cd61' size-in-bits='infinite' id='a892e311'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <class-decl name='inet_diag_handler' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/inet_diag.h' line='10' column='1' id='a8966aec'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dump' type-id='bba30790' visibility='default' filepath='include/linux/inet_diag.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dump_one' type-id='0d40a3dd' visibility='default' filepath='include/linux/inet_diag.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='idiag_get_info' type-id='3e22b2b6' visibility='default' filepath='include/linux/inet_diag.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='idiag_get_aux' type-id='98dc4446' visibility='default' filepath='include/linux/inet_diag.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='idiag_get_aux_size' type-id='5db8f742' visibility='default' filepath='include/linux/inet_diag.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='destroy' type-id='6d1cf440' visibility='default' filepath='include/linux/inet_diag.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='idiag_type' type-id='d315442e' visibility='default' filepath='include/linux/inet_diag.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='400'>
+          <var-decl name='idiag_info_size' type-id='d315442e' visibility='default' filepath='include/linux/inet_diag.h' line='33' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ffbf2003' size-in-bits='64' id='a89a6c47'/>
+      <pointer-type-def type-id='4616a179' size-in-bits='64' id='a89ff5a9'/>
+      <function-type size-in-bits='64' id='a8a63667'>
+        <parameter type-id='a05f1ecd'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='pci_epf_header' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/linux/pci-epf.h' line='48' column='1' id='a8a68c63'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vendorid' type-id='1dc6a898' visibility='default' filepath='include/linux/pci-epf.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='deviceid' type-id='1dc6a898' visibility='default' filepath='include/linux/pci-epf.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='revid' type-id='f9b06939' visibility='default' filepath='include/linux/pci-epf.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='progif_code' type-id='f9b06939' visibility='default' filepath='include/linux/pci-epf.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='subclass_code' type-id='f9b06939' visibility='default' filepath='include/linux/pci-epf.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='baseclass_code' type-id='f9b06939' visibility='default' filepath='include/linux/pci-epf.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cache_line_size' type-id='f9b06939' visibility='default' filepath='include/linux/pci-epf.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='subsys_vendor_id' type-id='1dc6a898' visibility='default' filepath='include/linux/pci-epf.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='subsys_id' type-id='1dc6a898' visibility='default' filepath='include/linux/pci-epf.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='interrupt_pin' type-id='ca830344' visibility='default' filepath='include/linux/pci-epf.h' line='58' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d865022d' size-in-bits='64' id='a8a77b69'/>
+      <class-decl name='virt_dma_desc' size-in-bits='1344' is-struct='yes' visibility='default' filepath='drivers/dma/virt-dma.h' line='15' column='1' id='a8adbe3d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tx' type-id='b50ce591' visibility='default' filepath='drivers/dma/virt-dma.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='tx_result' type-id='931aa361' visibility='default' filepath='drivers/dma/virt-dma.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='drivers/dma/virt-dma.h' line='19' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='eeda2e3d' size-in-bits='64' id='a8bd8fa1'/>
+      <array-type-def dimensions='1' type-id='40735a95' size-in-bits='512' id='a8c04eb1'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='a8c11af0'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='84bbda06'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='skb_ext' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/skbuff.h' line='4384' column='1' id='a8c69bdf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/linux/skbuff.h' line='4385' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='offset' type-id='cf08f83f' visibility='default' filepath='include/linux/skbuff.h' line='4386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='chunks' type-id='f9b06939' visibility='default' filepath='include/linux/skbuff.h' line='4387' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='e84913bd' visibility='default' filepath='include/linux/skbuff.h' line='4388' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ethtool_rx_flow_spec' size-in-bits='1344' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1008' column='1' id='a8ce468c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flow_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1009' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='h_u' type-id='b79b5da2' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1010' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='h_ext' type-id='abeda0b3' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1011' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='m_u' type-id='b79b5da2' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1012' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='m_ext' type-id='abeda0b3' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1013' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='ring_cookie' type-id='d3130597' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1014' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='location' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1015' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='06c0432f' size-in-bits='64' id='a8d434b7'/>
+      <typedef-decl name='rht_obj_cmpfn_t' type-id='d8c458ae' filepath='include/linux/rhashtable-types.h' line='40' column='1' id='a8e15d8c'/>
+      <array-type-def dimensions='1' type-id='72f469ec' size-in-bits='512' id='a8e1fb22'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='72f469ec' size-in-bits='896' id='a8e439b9'>
+        <subrange length='7' type-id='7ff19f0f' id='16fc326e'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='a8ee3f87'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='6ab01e59'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='a8f464b7'>
+        <parameter type-id='00cf0c80'/>
+        <parameter type-id='f06adae0'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='49178f86' size-in-bits='608' id='a8f65929'>
+        <subrange length='19' type-id='7ff19f0f' id='448ee30f'/>
+      </array-type-def>
+      <pointer-type-def type-id='14f332cc' size-in-bits='64' id='a8f86cda'/>
+      <pointer-type-def type-id='f037e1bb' size-in-bits='64' id='a8faf36f'/>
+      <function-type size-in-bits='64' id='a8fc2a93'>
+        <parameter type-id='fc4f83c1'/>
+        <parameter type-id='25e60cb2'/>
+        <parameter type-id='15adb516'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3636c828' size-in-bits='64' id='a902ee5a'/>
+      <pointer-type-def type-id='c756879f' size-in-bits='64' id='a9032da3'/>
+      <pointer-type-def type-id='10b63b7d' size-in-bits='64' id='a9035179'/>
+      <pointer-type-def type-id='06c81b64' size-in-bits='64' id='a905791e'/>
+      <pointer-type-def type-id='5e2fd874' size-in-bits='64' id='a90d9002'/>
+      <pointer-type-def type-id='d6bdcb4d' size-in-bits='64' id='a915fb99'/>
+      <pointer-type-def type-id='9a4619bf' size-in-bits='64' id='a91cd5f7'/>
+      <pointer-type-def type-id='f7c7c7f9' size-in-bits='64' id='a91f7d05'/>
+      <array-type-def dimensions='1' type-id='f22a8abb' size-in-bits='infinite' id='a922812c'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='a9237415'>
+        <parameter type-id='4eae5cb0'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='a92634ba'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='c858233f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9a800b82' size-in-bits='64' id='a928100c'/>
+      <class-decl name='of_pci_range_parser' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/of_address.h' line='11' column='1' id='a928f2e9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='9a537bbe' visibility='default' filepath='include/linux/of_address.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bus' type-id='07cc1779' visibility='default' filepath='include/linux/of_address.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='range' type-id='90144368' visibility='default' filepath='include/linux/of_address.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='end' type-id='90144368' visibility='default' filepath='include/linux/of_address.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='na' type-id='95e97e5e' visibility='default' filepath='include/linux/of_address.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='ns' type-id='95e97e5e' visibility='default' filepath='include/linux/of_address.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='pna' type-id='95e97e5e' visibility='default' filepath='include/linux/of_address.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='dma' type-id='b50a4934' visibility='default' filepath='include/linux/of_address.h' line='19' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='82d08b71' size-in-bits='64' id='a92ff885'/>
+      <pointer-type-def type-id='b3a7f771' size-in-bits='64' id='a9368ca5'/>
+      <pointer-type-def type-id='02bc074d' size-in-bits='64' id='a93a5fe1'/>
+      <enum-decl name='subpixel_order' filepath='include/drm/drm_connector.h' line='133' column='1' id='a93e6dcd'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SubPixelUnknown' value='0'/>
+        <enumerator name='SubPixelHorizontalRGB' value='1'/>
+        <enumerator name='SubPixelHorizontalBGR' value='2'/>
+        <enumerator name='SubPixelVerticalRGB' value='3'/>
+        <enumerator name='SubPixelVerticalBGR' value='4'/>
+        <enumerator name='SubPixelNone' value='5'/>
+      </enum-decl>
+      <class-decl name='pwm_device' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/linux/pwm.h' line='83' column='1' id='a94236e2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='label' type-id='80f4b756' visibility='default' filepath='include/linux/pwm.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/pwm.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hwpwm' type-id='f0981eeb' visibility='default' filepath='include/linux/pwm.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='pwm' type-id='f0981eeb' visibility='default' filepath='include/linux/pwm.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='chip' type-id='00cf0c80' visibility='default' filepath='include/linux/pwm.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='chip_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/pwm.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='args' type-id='5331ada5' visibility='default' filepath='include/linux/pwm.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='state' type-id='0dbd43cd' visibility='default' filepath='include/linux/pwm.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='last' type-id='0dbd43cd' visibility='default' filepath='include/linux/pwm.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/pwm.h' line='95' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='i2c_lock_operations' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/i2c.h' line='571' column='1' id='a94a041a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock_bus' type-id='6523d744' visibility='default' filepath='include/linux/i2c.h' line='572' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='trylock_bus' type-id='3d5afe0d' visibility='default' filepath='include/linux/i2c.h' line='573' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='unlock_bus' type-id='6523d744' visibility='default' filepath='include/linux/i2c.h' line='574' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_compr' size-in-bits='8128' is-struct='yes' visibility='default' filepath='include/sound/compress_driver.h' line='156' column='1' id='a9559bf8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/sound/compress_driver.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/sound/compress_driver.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='ops' type-id='06ca680b' visibility='default' filepath='include/sound/compress_driver.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/compress_driver.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='card' type-id='52704eb7' visibility='default' filepath='include/sound/compress_driver.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='direction' type-id='f0981eeb' visibility='default' filepath='include/sound/compress_driver.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/sound/compress_driver.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='device' type-id='95e97e5e' visibility='default' filepath='include/sound/compress_driver.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8032'>
+          <var-decl name='use_pause_in_draining' type-id='b50a4934' visibility='default' filepath='include/sound/compress_driver.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/compress_driver.h' line='172' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a46a9227' size-in-bits='64' id='a959128b'/>
+      <pointer-type-def type-id='011244e5' size-in-bits='64' id='a965a5b5'/>
+      <class-decl name='ethtool_regs' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='320' column='1' id='a96e1a44'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='version' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='data' type-id='167619f6' visibility='default' filepath='include/uapi/linux/ethtool.h' line='324' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='a96e8cde'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='c69b0fe2'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='83cec606' size-in-bits='64' id='a970a64c'/>
+      <function-type size-in-bits='64' id='a9732c0b'>
+        <parameter type-id='b1a5e68a'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='a97c4265'>
+        <parameter type-id='41ebc58b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c0de8daa' size-in-bits='64' id='a97ec1c4'/>
+      <class-decl name='balloon_dev_info' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/balloon_compaction.h' line='54' column='1' id='a9849e75'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='isolated_pages' type-id='7359adad' visibility='default' filepath='include/linux/balloon_compaction.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pages_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/balloon_compaction.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pages' type-id='72f469ec' visibility='default' filepath='include/linux/balloon_compaction.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='migratepage' type-id='6100aa9b' visibility='default' filepath='include/linux/balloon_compaction.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='inode' type-id='7e666abe' visibility='default' filepath='include/linux/balloon_compaction.h' line='60' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='543d1e64' size-in-bits='64' id='a987c462'/>
+      <class-decl name='mii_if_info' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/mii.h' line='18' column='1' id='a9918a4d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='phy_id' type-id='95e97e5e' visibility='default' filepath='include/linux/mii.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='advertising' type-id='95e97e5e' visibility='default' filepath='include/linux/mii.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='phy_id_mask' type-id='95e97e5e' visibility='default' filepath='include/linux/mii.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='reg_num_mask' type-id='95e97e5e' visibility='default' filepath='include/linux/mii.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='full_duplex' type-id='f0981eeb' visibility='default' filepath='include/linux/mii.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='129'>
+          <var-decl name='force_media' type-id='f0981eeb' visibility='default' filepath='include/linux/mii.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='130'>
+          <var-decl name='supports_gmii' type-id='f0981eeb' visibility='default' filepath='include/linux/mii.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/linux/mii.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mdio_read' type-id='b54cfa0f' visibility='default' filepath='include/linux/mii.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mdio_write' type-id='af22e097' visibility='default' filepath='include/linux/mii.h' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d0cace14' size-in-bits='64' id='a99bd7d2'/>
+      <pointer-type-def type-id='618f2f7e' size-in-bits='64' id='a99cde64'/>
+      <class-decl name='drm_gem_cma_object' size-in-bits='3008' is-struct='yes' visibility='default' filepath='include/drm/drm_gem_cma_helper.h' line='21' column='1' id='a9a2d60c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='3bc524c0' visibility='default' filepath='include/drm/drm_gem_cma_helper.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='paddr' type-id='cf29c9b3' visibility='default' filepath='include/drm/drm_gem_cma_helper.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='sgt' type-id='4adb0e6a' visibility='default' filepath='include/drm/drm_gem_cma_helper.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='vaddr' type-id='eaa32e2f' visibility='default' filepath='include/drm/drm_gem_cma_helper.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='map_noncoherent' type-id='b50a4934' visibility='default' filepath='include/drm/drm_gem_cma_helper.h' line='29' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='aaa47ef8' size-in-bits='64' id='a9a56bda'/>
+      <pointer-type-def type-id='28678bf9' size-in-bits='64' id='a9a90075'/>
+      <function-type size-in-bits='64' id='a9ab8935'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='cf536864'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='63e171df'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <qualified-type-def type-id='945c0b49' const='yes' id='a9ae7f74'/>
+      <class-decl name='bio_issue' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/blk_types.h' line='189' column='1' id='a9b0f4f1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='value' type-id='91ce1af9' visibility='default' filepath='include/linux/blk_types.h' line='190' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fec629e3' size-in-bits='64' id='a9b95107'/>
+      <pointer-type-def type-id='7df9052a' size-in-bits='64' id='a9bcccf8'/>
+      <function-type size-in-bits='64' id='a9bd2db1'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='202f00af' size-in-bits='64' id='a9c0cdab'/>
+      <function-type size-in-bits='64' id='a9c862bf'>
+        <parameter type-id='1c936db9'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='0e5b8ca7' size-in-bits='64' id='a9c8654f'/>
+      <function-type size-in-bits='64' id='a9cba835'>
+        <parameter type-id='10216dc5'/>
+        <parameter type-id='9638d26e'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='a9cc575c'>
+        <parameter type-id='77e79a4b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='4c16d0cc' size-in-bits='64' id='a9cc7986'/>
+      <class-decl name='i2c_client' size-in-bits='7808' is-struct='yes' visibility='default' filepath='include/linux/i2c.h' line='321' column='1' id='a9cdb48b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='8efea9e5' visibility='default' filepath='include/linux/i2c.h' line='322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='addr' type-id='8efea9e5' visibility='default' filepath='include/linux/i2c.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='name' type-id='664ac0b7' visibility='default' filepath='include/linux/i2c.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='adapter' type-id='b9af02c3' visibility='default' filepath='include/linux/i2c.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/i2c.h' line='337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='init_irq' type-id='95e97e5e' visibility='default' filepath='include/linux/i2c.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7584'>
+          <var-decl name='irq' type-id='95e97e5e' visibility='default' filepath='include/linux/i2c.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='detected' type-id='72f469ec' visibility='default' filepath='include/linux/i2c.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='devres_group_id' type-id='eaa32e2f' visibility='default' filepath='include/linux/i2c.h' line='344' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='cpudl' size-in-bits='192' is-struct='yes' visibility='default' filepath='kernel/sched/cpudeadline.h' line='11' column='1' id='a9cef929'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='kernel/sched/cpudeadline.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='size' type-id='95e97e5e' visibility='default' filepath='kernel/sched/cpudeadline.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='free_cpus' type-id='b16b461b' visibility='default' filepath='kernel/sched/cpudeadline.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='elements' type-id='9bf95e81' visibility='default' filepath='kernel/sched/cpudeadline.h' line='15' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ieee80211_reg_rule' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/net/regulatory.h' line='217' column='1' id='a9d5f761'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='freq_range' type-id='a81053d4' visibility='default' filepath='include/net/regulatory.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='power_rule' type-id='736b3d64' visibility='default' filepath='include/net/regulatory.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='wmm_rule' type-id='8eec5cae' visibility='default' filepath='include/net/regulatory.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/regulatory.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='dfs_cac_ms' type-id='19c2251e' visibility='default' filepath='include/net/regulatory.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='has_wmm' type-id='b50a4934' visibility='default' filepath='include/net/regulatory.h' line='223' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='uid_gid_extent' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/user_namespace.h' line='18' column='1' id='a9d71093'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='first' type-id='19c2251e' visibility='default' filepath='include/linux/user_namespace.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='lower_first' type-id='19c2251e' visibility='default' filepath='include/linux/user_namespace.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='count' type-id='19c2251e' visibility='default' filepath='include/linux/user_namespace.h' line='21' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d3baf253' size-in-bits='64' id='a9d7e307'/>
+      <pointer-type-def type-id='24c8469d' size-in-bits='64' id='a9dafe2d'/>
+      <pointer-type-def type-id='46ce60fb' size-in-bits='64' id='a9e764bb'/>
+      <enum-decl name='usb_ssp_rate' filepath='include/linux/usb/ch9.h' line='41' column='1' id='a9ea967a'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='USB_SSP_GEN_UNKNOWN' value='0'/>
+        <enumerator name='USB_SSP_GEN_2x1' value='1'/>
+        <enumerator name='USB_SSP_GEN_1x2' value='2'/>
+        <enumerator name='USB_SSP_GEN_2x2' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='19bf080d' size-in-bits='64' id='a9ee1319'/>
+      <class-decl name='iattr' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='224' column='1' id='a9ef191f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ia_valid' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ia_mode' type-id='2594b00f' visibility='default' filepath='include/linux/fs.h' line='226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ia_uid' type-id='d80b72e6' visibility='default' filepath='include/linux/fs.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='ia_gid' type-id='094d8048' visibility='default' filepath='include/linux/fs.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ia_size' type-id='69bf7bee' visibility='default' filepath='include/linux/fs.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ia_atime' type-id='40a816ad' visibility='default' filepath='include/linux/fs.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ia_mtime' type-id='40a816ad' visibility='default' filepath='include/linux/fs.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ia_ctime' type-id='40a816ad' visibility='default' filepath='include/linux/fs.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ia_file' type-id='77e79a4b' visibility='default' filepath='include/linux/fs.h' line='239' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='ufs_event_type' filepath='drivers/scsi/ufs/ufshcd.h' line='62' column='1' id='a9f16f78'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='UFS_EVT_PA_ERR' value='0'/>
+        <enumerator name='UFS_EVT_DL_ERR' value='1'/>
+        <enumerator name='UFS_EVT_NL_ERR' value='2'/>
+        <enumerator name='UFS_EVT_TL_ERR' value='3'/>
+        <enumerator name='UFS_EVT_DME_ERR' value='4'/>
+        <enumerator name='UFS_EVT_AUTO_HIBERN8_ERR' value='5'/>
+        <enumerator name='UFS_EVT_FATAL_ERR' value='6'/>
+        <enumerator name='UFS_EVT_LINK_STARTUP_FAIL' value='7'/>
+        <enumerator name='UFS_EVT_RESUME_ERR' value='8'/>
+        <enumerator name='UFS_EVT_SUSPEND_ERR' value='9'/>
+        <enumerator name='UFS_EVT_WL_SUSP_ERR' value='10'/>
+        <enumerator name='UFS_EVT_WL_RES_ERR' value='11'/>
+        <enumerator name='UFS_EVT_DEV_RESET' value='12'/>
+        <enumerator name='UFS_EVT_HOST_RESET' value='13'/>
+        <enumerator name='UFS_EVT_ABORT' value='14'/>
+        <enumerator name='UFS_EVT_CNT' value='15'/>
+      </enum-decl>
+      <pointer-type-def type-id='82d9d5d4' size-in-bits='64' id='a9f319d2'/>
+      <pointer-type-def type-id='ae01ca89' size-in-bits='64' id='aa06f721'/>
+      <function-type size-in-bits='64' id='aa0df914'>
+        <parameter type-id='10216dc5'/>
+        <parameter type-id='e7faa6fb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='rt6_statistics' size-in-bits='224' is-struct='yes' visibility='default' filepath='include/net/ip6_fib.h' line='374' column='1' id='aa112583'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fib_nodes' type-id='3f1a6b60' visibility='default' filepath='include/net/ip6_fib.h' line='375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='fib_route_nodes' type-id='3f1a6b60' visibility='default' filepath='include/net/ip6_fib.h' line='376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fib_rt_entries' type-id='3f1a6b60' visibility='default' filepath='include/net/ip6_fib.h' line='377' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='fib_rt_cache' type-id='3f1a6b60' visibility='default' filepath='include/net/ip6_fib.h' line='378' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fib_discarded_routes' type-id='3f1a6b60' visibility='default' filepath='include/net/ip6_fib.h' line='379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='fib_rt_alloc' type-id='49178f86' visibility='default' filepath='include/net/ip6_fib.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fib_rt_uncache' type-id='49178f86' visibility='default' filepath='include/net/ip6_fib.h' line='383' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='aa1606dd'>
+        <parameter type-id='8bf55d78'/>
+        <parameter type-id='91ce1af9'/>
+        <return type-id='91ce1af9'/>
+      </function-type>
+      <qualified-type-def type-id='84390049' const='yes' id='aa1e7074'/>
+      <pointer-type-def type-id='c657e2b9' size-in-bits='64' id='aa2748ad'/>
+      <pointer-type-def type-id='400fb07b' size-in-bits='64' id='aa29ecab'/>
+      <qualified-type-def type-id='1c03d197' const='yes' id='aa2a8a9e'/>
+      <pointer-type-def type-id='8bd3aaa6' size-in-bits='64' id='aa357a64'/>
+      <pointer-type-def type-id='10587c0a' size-in-bits='64' id='aa377a8c'/>
+      <class-decl name='public_key' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/crypto/public_key.h' line='22' column='1' id='aa3fd2fc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='key' type-id='eaa32e2f' visibility='default' filepath='include/crypto/public_key.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='keylen' type-id='19c2251e' visibility='default' filepath='include/crypto/public_key.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='algo' type-id='7831edc8' visibility='default' filepath='include/crypto/public_key.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='params' type-id='eaa32e2f' visibility='default' filepath='include/crypto/public_key.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='paramlen' type-id='19c2251e' visibility='default' filepath='include/crypto/public_key.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='key_is_private' type-id='b50a4934' visibility='default' filepath='include/crypto/public_key.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='id_type' type-id='80f4b756' visibility='default' filepath='include/crypto/public_key.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='pkey_algo' type-id='80f4b756' visibility='default' filepath='include/crypto/public_key.h' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a809e963' size-in-bits='64' id='aa4339b3'/>
+      <pointer-type-def type-id='1986ca65' size-in-bits='64' id='aa4b1eb5'/>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='176' id='aa4fa8f1'>
+        <subrange length='22' type-id='7ff19f0f' id='41cf2209'/>
+      </array-type-def>
+      <pointer-type-def type-id='1b555b55' size-in-bits='64' id='aa530e79'/>
+      <array-type-def dimensions='2' type-id='7359adad' size-in-bits='192' id='aa5bd681'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='640' id='aa5ff375'>
+        <subrange length='80' type-id='7ff19f0f' id='b4129fbd'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='232' id='aa60f212'>
+        <subrange length='29' type-id='7ff19f0f' id='01b8f6fa'/>
+      </array-type-def>
+      <class-decl name='bpf_kfunc_desc_tab' is-struct='yes' visibility='default' is-declaration-only='yes' id='aa647859'/>
+      <array-type-def dimensions='2' type-id='7359adad' size-in-bits='960' id='aa6663dd'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <pointer-type-def type-id='44846695' size-in-bits='64' id='aa66a4b1'/>
+      <function-type size-in-bits='64' id='aa70b8e2'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='08496218'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='c201baab' const='yes' id='aa766cf0'/>
+      <qualified-type-def type-id='48d5d0d9' const='yes' id='aa777680'/>
+      <pointer-type-def type-id='c966252c' size-in-bits='64' id='aa79f31a'/>
+      <function-type size-in-bits='64' id='aa7f03f2'>
+        <parameter type-id='dd575c43'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='2212bd2d' size-in-bits='64' id='aa7f9205'/>
+      <pointer-type-def type-id='e92f1a2f' size-in-bits='64' id='aa804387'/>
+      <class-decl name='iw_quality' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/wireless.h' line='716' column='1' id='aa80c027'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='qual' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/wireless.h' line='717' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='level' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/wireless.h' line='719' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='noise' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/wireless.h' line='720' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='updated' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/wireless.h' line='721' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='adb1d973' size-in-bits='64' id='aa8162a3'/>
+      <pointer-type-def type-id='4132328d' size-in-bits='64' id='aa864a19'/>
+      <pointer-type-def type-id='ccee3154' size-in-bits='64' id='aa8ac136'/>
+      <function-type size-in-bits='64' id='aa95bc9e'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='42abe229'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='aa99b0ae'>
+        <parameter type-id='af051c69'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='717ee4f3' size-in-bits='64' id='aa9ea333'/>
+      <pointer-type-def type-id='89a2612a' size-in-bits='64' id='aa9eb300'/>
+      <class-decl name='elv_fs_entry' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/elevator.h' line='63' column='1' id='aaa166ff'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='attr' type-id='a6222917' visibility='default' filepath='include/linux/elevator.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='show' type-id='a2178c8a' visibility='default' filepath='include/linux/elevator.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='store' type-id='1854489e' visibility='default' filepath='include/linux/elevator.h' line='66' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8ce1651f' size-in-bits='64' id='aaa38d7b'/>
+      <enum-decl name='track_item' filepath='mm/slab.h' line='109' column='1' id='aaa40ef7'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='TRACK_ALLOC' value='0'/>
+        <enumerator name='TRACK_FREE' value='1'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='aaa47ef8'>
+        <parameter type-id='5c218f2b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='451804f7' size-in-bits='64' id='aaa546af'/>
+      <pointer-type-def type-id='01e1f26e' size-in-bits='64' id='aaa6c630'/>
+      <function-type size-in-bits='64' id='aaa8d90f'>
+        <parameter type-id='7544e824'/>
+        <parameter type-id='a9bcccf8'/>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='b3649053' size-in-bits='64' id='aaaad27f'/>
+      <function-type size-in-bits='64' id='aaad2fce'>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='c1873808'/>
+        <parameter type-id='1c936db9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='hdmi_scan_mode' filepath='include/linux/hdmi.h' line='82' column='1' id='aaafc218'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HDMI_SCAN_MODE_NONE' value='0'/>
+        <enumerator name='HDMI_SCAN_MODE_OVERSCAN' value='1'/>
+        <enumerator name='HDMI_SCAN_MODE_UNDERSCAN' value='2'/>
+        <enumerator name='HDMI_SCAN_MODE_RESERVED' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='dcddbb66' size-in-bits='64' id='aab1563c'/>
+      <array-type-def dimensions='1' type-id='bdcee7ae' size-in-bits='128' id='aac02b0e'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <class-decl name='memcg_cgwb_frn' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/memcontrol.h' line='209' column='1' id='aac38d0b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bdi_id' type-id='91ce1af9' visibility='default' filepath='include/linux/memcontrol.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='memcg_id' type-id='95e97e5e' visibility='default' filepath='include/linux/memcontrol.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='at' type-id='91ce1af9' visibility='default' filepath='include/linux/memcontrol.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='done' type-id='9eb3e00b' visibility='default' filepath='include/linux/memcontrol.h' line='213' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='aac69b6b'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='ffc7dc3b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='aac6e642'>
+        <parameter type-id='2661e0d9'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <class-decl name='rpmsg_device' size-in-bits='7936' is-struct='yes' visibility='default' filepath='include/linux/rpmsg.h' line='52' column='1' id='aac7cb3b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/rpmsg.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='id' type-id='40980961' visibility='default' filepath='include/linux/rpmsg.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='driver_override' type-id='26a90f95' visibility='default' filepath='include/linux/rpmsg.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='src' type-id='19c2251e' visibility='default' filepath='include/linux/rpmsg.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7712'>
+          <var-decl name='dst' type-id='19c2251e' visibility='default' filepath='include/linux/rpmsg.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='ept' type-id='feb59272' visibility='default' filepath='include/linux/rpmsg.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='announce' type-id='b50a4934' visibility='default' filepath='include/linux/rpmsg.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7816'>
+          <var-decl name='little_endian' type-id='b50a4934' visibility='default' filepath='include/linux/rpmsg.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='ops' type-id='d884146d' visibility='default' filepath='include/linux/rpmsg.h' line='62' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e4af473b' size-in-bits='64' id='aad24a5b'/>
+      <pointer-type-def type-id='73e35fcc' size-in-bits='64' id='aad51e56'/>
+      <class-decl name='fsnotify_mark_connector' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/fsnotify_backend.h' line='351' column='1' id='aadc8ce9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/fsnotify_backend.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='8efea9e5' visibility='default' filepath='include/linux/fsnotify_backend.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='flags' type-id='8efea9e5' visibility='default' filepath='include/linux/fsnotify_backend.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fsid' type-id='ac895711' visibility='default' filepath='include/linux/fsnotify_backend.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='' type-id='ac5ab654' visibility='default' filepath='include/linux/fsnotify_backend.h' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='list' type-id='e151255a' visibility='default' filepath='include/linux/fsnotify_backend.h' line='363' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='69fa32fc' size-in-bits='64' id='aade06e2'/>
+      <pointer-type-def type-id='b6b55329' size-in-bits='64' id='aae1a0f1'/>
+      <enum-decl name='devfreq_timer' filepath='include/linux/devfreq.h' line='33' column='1' id='aae27aa3'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEVFREQ_TIMER_DEFERRABLE' value='0'/>
+        <enumerator name='DEVFREQ_TIMER_DELAYED' value='1'/>
+        <enumerator name='DEVFREQ_TIMER_NUM' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='644441a6' size-in-bits='64' id='aae3718c'/>
+      <qualified-type-def type-id='9f089557' const='yes' id='ab056c47'/>
+      <pointer-type-def type-id='173cc5a0' size-in-bits='64' id='ab05e282'/>
+      <class-decl name='uclamp_bucket' size-in-bits='64' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='898' column='1' id='ab0c2f56'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='value' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='899' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11'>
+          <var-decl name='tasks' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='900' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='bpf_verifier_env' is-struct='yes' visibility='default' is-declaration-only='yes' id='ab1b35ba'/>
+      <pointer-type-def type-id='a211528c' size-in-bits='64' id='ab1e2186'/>
+      <qualified-type-def type-id='6696ef79' const='yes' id='ab23f61a'/>
+      <pointer-type-def type-id='03bca899' size-in-bits='64' id='ab2c5105'/>
+      <pointer-type-def type-id='2bf33030' size-in-bits='64' id='ab33c616'/>
+      <pointer-type-def type-id='e38bdef8' size-in-bits='64' id='ab38066e'/>
+      <class-decl name='bpf_local_storage' size-in-bits='1344' is-struct='yes' visibility='default' filepath='include/linux/bpf_local_storage.h' line='80' column='1' id='ab3ad981'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cache' type-id='da6f4a25' visibility='default' filepath='include/linux/bpf_local_storage.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='list' type-id='e151255a' visibility='default' filepath='include/linux/bpf_local_storage.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='owner' type-id='eaa32e2f' visibility='default' filepath='include/linux/bpf_local_storage.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/bpf_local_storage.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/bpf_local_storage.h' line='87' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ebf04e7b' size-in-bits='64' id='ab3c35df'/>
+      <pointer-type-def type-id='7f60130d' size-in-bits='64' id='ab3e2665'/>
+      <pointer-type-def type-id='11b31209' size-in-bits='64' id='ab3e7181'/>
+      <function-type size-in-bits='64' id='ab42aece'>
+        <parameter type-id='513f51db'/>
+        <parameter type-id='4151733d'/>
+        <parameter type-id='89a8217c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ab474fe7'>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='3213e875'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='91ce1af9'/>
+      </function-type>
+      <class-decl name='ufs_clk_scaling' size-in-bits='1792' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='441' column='1' id='ab4dad02'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='active_reqs' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='442' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tot_busy_t' type-id='7359adad' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='window_start_t' type-id='fbc017ef' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='busy_start_t' type-id='fbc017ef' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='enable_attr' type-id='dbf3947c' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='saved_pwr_info' type-id='ba896956' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='447' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='workq' type-id='242e3d19' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='suspend_work' type-id='ef9025d0' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='resume_work' type-id='ef9025d0' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='min_gear' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1632'>
+          <var-decl name='is_enabled' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1640'>
+          <var-decl name='is_allowed' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1648'>
+          <var-decl name='is_initialized' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1656'>
+          <var-decl name='is_busy_started' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='is_suspended' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='458' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b3bf9ca3' size-in-bits='64' id='ab4f7fd7'/>
+      <pointer-type-def type-id='d9f53f44' size-in-bits='64' id='ab57fa9e'/>
+      <pointer-type-def type-id='d5e6c299' size-in-bits='64' id='ab59ee31'/>
+      <pointer-type-def type-id='65eefe14' size-in-bits='64' id='ab7389f2'/>
+      <pointer-type-def type-id='7d4ff292' size-in-bits='64' id='ab756384'/>
+      <function-type size-in-bits='64' id='ab7568f4'>
+        <parameter type-id='7572cb33'/>
+        <parameter type-id='b15a9bac'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='bfbf7968' size-in-bits='3328' id='ab779f6c'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='a9ef191f' size-in-bits='64' id='ab7bbd67'/>
+      <pointer-type-def type-id='0fd478d2' size-in-bits='64' id='ab7c4594'/>
+      <pointer-type-def type-id='5abdb7a8' size-in-bits='64' id='ab7ca002'/>
+      <pointer-type-def type-id='b209b4e4' size-in-bits='64' id='ab85b8f2'/>
+      <function-type size-in-bits='64' id='ab883904'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='72789b30'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4ca01201' size-in-bits='64' id='ab88b499'/>
+      <pointer-type-def type-id='3cea21ed' size-in-bits='64' id='ab932c45'/>
+      <class-decl name='msghdr' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/socket.h' line='50' column='1' id='ab94745c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='msg_name' type-id='eaa32e2f' visibility='default' filepath='include/linux/socket.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='msg_namelen' type-id='95e97e5e' visibility='default' filepath='include/linux/socket.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='msg_iter' type-id='f2b4d088' visibility='default' filepath='include/linux/socket.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='' type-id='ac5ab673' visibility='default' filepath='include/linux/socket.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='msg_control_is_user' type-id='b50a4934' visibility='default' filepath='include/linux/socket.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='msg_controllen' type-id='9e19ad6e' visibility='default' filepath='include/linux/socket.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='msg_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/socket.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='msg_iocb' type-id='80f25feb' visibility='default' filepath='include/linux/socket.h' line='67' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='cgroup' size-in-bits='19200' is-struct='yes' visibility='default' filepath='include/linux/cgroup-defs.h' line='361' column='1' id='ab9643dd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='self' type-id='7f3df443' visibility='default' filepath='include/linux/cgroup-defs.h' line='363' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/cgroup-defs.h' line='365' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='level' type-id='95e97e5e' visibility='default' filepath='include/linux/cgroup-defs.h' line='373' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1952'>
+          <var-decl name='max_depth' type-id='95e97e5e' visibility='default' filepath='include/linux/cgroup-defs.h' line='376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='nr_descendants' type-id='95e97e5e' visibility='default' filepath='include/linux/cgroup-defs.h' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2016'>
+          <var-decl name='nr_dying_descendants' type-id='95e97e5e' visibility='default' filepath='include/linux/cgroup-defs.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='max_descendants' type-id='95e97e5e' visibility='default' filepath='include/linux/cgroup-defs.h' line='391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2080'>
+          <var-decl name='nr_populated_csets' type-id='95e97e5e' visibility='default' filepath='include/linux/cgroup-defs.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='nr_populated_domain_children' type-id='95e97e5e' visibility='default' filepath='include/linux/cgroup-defs.h' line='405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2144'>
+          <var-decl name='nr_populated_threaded_children' type-id='95e97e5e' visibility='default' filepath='include/linux/cgroup-defs.h' line='406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='nr_threaded_children' type-id='95e97e5e' visibility='default' filepath='include/linux/cgroup-defs.h' line='408' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='kn' type-id='150efd3f' visibility='default' filepath='include/linux/cgroup-defs.h' line='410' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='procs_file' type-id='37a4ee40' visibility='default' filepath='include/linux/cgroup-defs.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='events_file' type-id='37a4ee40' visibility='default' filepath='include/linux/cgroup-defs.h' line='412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='subtree_control' type-id='1dc6a898' visibility='default' filepath='include/linux/cgroup-defs.h' line='421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3472'>
+          <var-decl name='subtree_ss_mask' type-id='1dc6a898' visibility='default' filepath='include/linux/cgroup-defs.h' line='422' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3488'>
+          <var-decl name='old_subtree_control' type-id='1dc6a898' visibility='default' filepath='include/linux/cgroup-defs.h' line='423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3504'>
+          <var-decl name='old_subtree_ss_mask' type-id='1dc6a898' visibility='default' filepath='include/linux/cgroup-defs.h' line='424' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='subsys' type-id='75781a60' visibility='default' filepath='include/linux/cgroup-defs.h' line='427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='root' type-id='aede2cf0' visibility='default' filepath='include/linux/cgroup-defs.h' line='429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='cset_links' type-id='72f469ec' visibility='default' filepath='include/linux/cgroup-defs.h' line='435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='e_csets' type-id='a8e439b9' visibility='default' filepath='include/linux/cgroup-defs.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5056'>
+          <var-decl name='dom_cgrp' type-id='46ff135d' visibility='default' filepath='include/linux/cgroup-defs.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='old_dom_cgrp' type-id='46ff135d' visibility='default' filepath='include/linux/cgroup-defs.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='rstat_cpu' type-id='d8e759a7' visibility='default' filepath='include/linux/cgroup-defs.h' line='457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='rstat_css_list' type-id='72f469ec' visibility='default' filepath='include/linux/cgroup-defs.h' line='458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='last_bstat' type-id='cfd8587e' visibility='default' filepath='include/linux/cgroup-defs.h' line='461' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='bstat' type-id='cfd8587e' visibility='default' filepath='include/linux/cgroup-defs.h' line='462' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5760'>
+          <var-decl name='prev_cputime' type-id='9c7bf560' visibility='default' filepath='include/linux/cgroup-defs.h' line='463' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5952'>
+          <var-decl name='pidlists' type-id='72f469ec' visibility='default' filepath='include/linux/cgroup-defs.h' line='469' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='pidlist_mutex' type-id='925167dc' visibility='default' filepath='include/linux/cgroup-defs.h' line='470' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='offline_waitq' type-id='b5ab048f' visibility='default' filepath='include/linux/cgroup-defs.h' line='473' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6656'>
+          <var-decl name='release_agent_work' type-id='ef9025d0' visibility='default' filepath='include/linux/cgroup-defs.h' line='476' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7040'>
+          <var-decl name='psi' type-id='12878ab3' visibility='default' filepath='include/linux/cgroup-defs.h' line='479' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13120'>
+          <var-decl name='bpf' type-id='b80e3996' visibility='default' filepath='include/linux/cgroup-defs.h' line='482' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19008'>
+          <var-decl name='congestion_count' type-id='49178f86' visibility='default' filepath='include/linux/cgroup-defs.h' line='485' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19040'>
+          <var-decl name='freezer' type-id='ad50988b' visibility='default' filepath='include/linux/cgroup-defs.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19200'>
+          <var-decl name='ancestor_ids' type-id='09b35382' visibility='default' filepath='include/linux/cgroup-defs.h' line='491' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='82314a92' size-in-bits='64' id='ab989fa8'/>
+      <pointer-type-def type-id='9bbee6d3' size-in-bits='64' id='aba164d7'/>
+      <class-decl name='class_interface' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/device/class.h' line='247' column='1' id='aba1d11b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/device/class.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='class' type-id='67aca04f' visibility='default' filepath='include/linux/device/class.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='add_dev' type-id='6da1022f' visibility='default' filepath='include/linux/device/class.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='remove_dev' type-id='0bd06100' visibility='default' filepath='include/linux/device/class.h' line='252' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_frmsizeenum' size-in-bits='352' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='829' column='1' id='aba31911'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='830' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pixel_format' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='831' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='832' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='' type-id='ac5ab5f4' visibility='default' filepath='include/uapi/linux/videodev2.h' line='834' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='reserved' type-id='839e8989' visibility='default' filepath='include/uapi/linux/videodev2.h' line='839' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8dad10f5' size-in-bits='64' id='aba583a5'/>
+      <typedef-decl name='blockType_e' type-id='f0c833b5' filepath='lib/zstd/zstd_internal.h' line='87' column='1' id='abb12f09'/>
+      <typedef-decl name='compat_long_t' type-id='a7832498' filepath='include/asm-generic/compat.h' line='18' column='1' id='abb906de'/>
+      <class-decl name='snd_ctl_elem_id' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='1029' column='1' id='abbbeccc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='numid' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='1030' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='iface' type-id='4143fc17' visibility='default' filepath='include/uapi/sound/asound.h' line='1031' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='device' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='1032' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='subdevice' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='1033' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='4ff588ae' visibility='default' filepath='include/uapi/sound/asound.h' line='1034' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='1035' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='abc85e8f'>
+        <parameter type-id='13103032'/>
+        <parameter type-id='13103032'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='0ce23611' size-in-bits='64' id='abcbc265'/>
+      <pointer-type-def type-id='3bc524c0' size-in-bits='64' id='abd62a96'/>
+      <function-type size-in-bits='64' id='abe3ca10'>
+        <parameter type-id='23d6768c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='timer_list' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/timer.h' line='12' column='1' id='abe41e67'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='entry' type-id='03a4a074' visibility='default' filepath='include/linux/timer.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='expires' type-id='7359adad' visibility='default' filepath='include/linux/timer.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='function' type-id='9582ad9a' visibility='default' filepath='include/linux/timer.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/linux/timer.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/timer.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/timer.h' line='27' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='pfn_t' type-id='7dbec614' filepath='include/linux/pfn.h' line='15' column='1' id='abe59ef3'/>
+      <class-decl name='ethtool_flow_ext' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='983' column='1' id='abeda0b3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='padding' type-id='0618bc0e' visibility='default' filepath='include/uapi/linux/ethtool.h' line='984' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='h_dest' type-id='4cfa781a' visibility='default' filepath='include/uapi/linux/ethtool.h' line='985' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='vlan_etype' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ethtool.h' line='986' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='vlan_tci' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ethtool.h' line='987' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='data' type-id='f41331a9' visibility='default' filepath='include/uapi/linux/ethtool.h' line='988' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='virtio_shm_region' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/virtio_config.h' line='14' column='1' id='abedd844'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='91ce1af9' visibility='default' filepath='include/linux/virtio_config.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='len' type-id='91ce1af9' visibility='default' filepath='include/linux/virtio_config.h' line='16' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6965d464' size-in-bits='64' id='abf87da2'/>
+      <qualified-type-def type-id='9c97c2f7' const='yes' id='abf99950'/>
+      <class-decl name='bdi_writeback' size-in-bits='7232' is-struct='yes' visibility='default' filepath='include/linux/backing-dev-defs.h' line='108' column='1' id='ac0aeb1d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bdi' type-id='ef4fae1b' visibility='default' filepath='include/linux/backing-dev-defs.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='state' type-id='7359adad' visibility='default' filepath='include/linux/backing-dev-defs.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='last_old_flush' type-id='7359adad' visibility='default' filepath='include/linux/backing-dev-defs.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='b_dirty' type-id='72f469ec' visibility='default' filepath='include/linux/backing-dev-defs.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='b_io' type-id='72f469ec' visibility='default' filepath='include/linux/backing-dev-defs.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='b_more_io' type-id='72f469ec' visibility='default' filepath='include/linux/backing-dev-defs.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='b_dirty_time' type-id='72f469ec' visibility='default' filepath='include/linux/backing-dev-defs.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='list_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/backing-dev-defs.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='writeback_inodes' type-id='49178f86' visibility='default' filepath='include/linux/backing-dev-defs.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='stat' type-id='aca5b9e5' visibility='default' filepath='include/linux/backing-dev-defs.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='congested' type-id='7359adad' visibility='default' filepath='include/linux/backing-dev-defs.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='bw_time_stamp' type-id='7359adad' visibility='default' filepath='include/linux/backing-dev-defs.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='dirtied_stamp' type-id='7359adad' visibility='default' filepath='include/linux/backing-dev-defs.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='written_stamp' type-id='7359adad' visibility='default' filepath='include/linux/backing-dev-defs.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='write_bandwidth' type-id='7359adad' visibility='default' filepath='include/linux/backing-dev-defs.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='avg_write_bandwidth' type-id='7359adad' visibility='default' filepath='include/linux/backing-dev-defs.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='dirty_ratelimit' type-id='7359adad' visibility='default' filepath='include/linux/backing-dev-defs.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='balanced_dirty_ratelimit' type-id='7359adad' visibility='default' filepath='include/linux/backing-dev-defs.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='completions' type-id='587caff2' visibility='default' filepath='include/linux/backing-dev-defs.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='dirty_exceeded' type-id='95e97e5e' visibility='default' filepath='include/linux/backing-dev-defs.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2976'>
+          <var-decl name='start_all_reason' type-id='c1602c7a' visibility='default' filepath='include/linux/backing-dev-defs.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='work_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/backing-dev-defs.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='work_list' type-id='72f469ec' visibility='default' filepath='include/linux/backing-dev-defs.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='dwork' type-id='5ad6e0ef' visibility='default' filepath='include/linux/backing-dev-defs.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='bw_dwork' type-id='5ad6e0ef' visibility='default' filepath='include/linux/backing-dev-defs.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='dirty_sleep' type-id='7359adad' visibility='default' filepath='include/linux/backing-dev-defs.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5440'>
+          <var-decl name='bdi_node' type-id='72f469ec' visibility='default' filepath='include/linux/backing-dev-defs.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='refcnt' type-id='818799b4' visibility='default' filepath='include/linux/backing-dev-defs.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5696'>
+          <var-decl name='memcg_completions' type-id='587caff2' visibility='default' filepath='include/linux/backing-dev-defs.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='memcg_css' type-id='cfff5953' visibility='default' filepath='include/linux/backing-dev-defs.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6144'>
+          <var-decl name='blkcg_css' type-id='cfff5953' visibility='default' filepath='include/linux/backing-dev-defs.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6208'>
+          <var-decl name='memcg_node' type-id='72f469ec' visibility='default' filepath='include/linux/backing-dev-defs.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6336'>
+          <var-decl name='blkcg_node' type-id='72f469ec' visibility='default' filepath='include/linux/backing-dev-defs.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='b_attached' type-id='72f469ec' visibility='default' filepath='include/linux/backing-dev-defs.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6592'>
+          <var-decl name='offline_node' type-id='72f469ec' visibility='default' filepath='include/linux/backing-dev-defs.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6720'>
+          <var-decl name='' type-id='ac5ab653' visibility='default' filepath='include/linux/backing-dev-defs.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7104'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/backing-dev-defs.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7168'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/backing-dev-defs.h' line='170' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='cec_notifier' size-in-bits='1408' is-struct='yes' visibility='default' filepath='drivers/media/cec/core/cec-notifier.c' line='21' column='1' id='ac0bc8bd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='drivers/media/cec/core/cec-notifier.c' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='head' type-id='72f469ec' visibility='default' filepath='drivers/media/cec/core/cec-notifier.c' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='drivers/media/cec/core/cec-notifier.c' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='hdmi_dev' type-id='fa0b179b' visibility='default' filepath='drivers/media/cec/core/cec-notifier.c' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='conn_info' type-id='a809e963' visibility='default' filepath='drivers/media/cec/core/cec-notifier.c' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='port_name' type-id='80f4b756' visibility='default' filepath='drivers/media/cec/core/cec-notifier.c' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='cec_adap' type-id='b94a2f7c' visibility='default' filepath='drivers/media/cec/core/cec-notifier.c' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='phys_addr' type-id='1dc6a898' visibility='default' filepath='drivers/media/cec/core/cec-notifier.c' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='ac104281'>
+        <parameter type-id='c2b4b27b'/>
+        <parameter type-id='572fbdca'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='bpf_ctx_arg_aux' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='896' column='1' id='ac12d63f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='offset' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='897' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='reg_type' type-id='e830436a' visibility='default' filepath='include/linux/bpf.h' line='898' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='btf_id' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='899' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='96' id='ac151b64'>
+        <subrange length='12' type-id='7ff19f0f' id='84827bdc'/>
+      </array-type-def>
+      <class-decl name='kthread_work' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/kthread.h' line='128' column='1' id='ac165296'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/kthread.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='func' type-id='a785c7fd' visibility='default' filepath='include/linux/kthread.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='worker' type-id='c41f4539' visibility='default' filepath='include/linux/kthread.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='canceling' type-id='95e97e5e' visibility='default' filepath='include/linux/kthread.h' line='133' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='rwlock_t' type-id='7a71a0a2' filepath='include/linux/rwlock_types.h' line='34' column='1' id='ac16795b'/>
+      <pointer-type-def type-id='471695ce' size-in-bits='64' id='ac1ad098'/>
+      <class-decl name='pci_cap_saved_data' size-in-bits='64' is-struct='yes' visibility='default' filepath='drivers/pci/pci.h' line='42' column='1' id='ac1c7ae1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cap_nr' type-id='1dc6a898' visibility='default' filepath='drivers/pci/pci.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='cap_extended' type-id='b50a4934' visibility='default' filepath='drivers/pci/pci.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='size' type-id='f0981eeb' visibility='default' filepath='drivers/pci/pci.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='c165e8b9' visibility='default' filepath='drivers/pci/pci.h' line='46' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='128' id='ac1fa8c0'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <pointer-type-def type-id='5ebf3387' size-in-bits='64' id='ac22ee2f'/>
+      <pointer-type-def type-id='03c3afa4' size-in-bits='64' id='ac2666b2'/>
+      <function-type size-in-bits='64' id='ac28b246'>
+        <parameter type-id='442b8d89'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='ethtool_module_eeprom' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/ethtool.h' line='410' column='1' id='ac2ed188'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='offset' type-id='19c2251e' visibility='default' filepath='include/linux/ethtool.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='length' type-id='19c2251e' visibility='default' filepath='include/linux/ethtool.h' line='412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='page' type-id='f9b06939' visibility='default' filepath='include/linux/ethtool.h' line='413' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='bank' type-id='f9b06939' visibility='default' filepath='include/linux/ethtool.h' line='414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='i2c_address' type-id='f9b06939' visibility='default' filepath='include/linux/ethtool.h' line='415' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data' type-id='8bff8096' visibility='default' filepath='include/linux/ethtool.h' line='416' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='1408' is-struct='yes' visibility='default' filepath='lib/zstd/zstd_internal.h' line='188' column='1' id='ac3df5ee' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sequencesStart' type-id='2b2b8dcb' visibility='default' filepath='lib/zstd/zstd_internal.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sequences' type-id='2b2b8dcb' visibility='default' filepath='lib/zstd/zstd_internal.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='litStart' type-id='e58f29ef' visibility='default' filepath='lib/zstd/zstd_internal.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='lit' type-id='e58f29ef' visibility='default' filepath='lib/zstd/zstd_internal.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='llCode' type-id='e58f29ef' visibility='default' filepath='lib/zstd/zstd_internal.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mlCode' type-id='e58f29ef' visibility='default' filepath='lib/zstd/zstd_internal.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ofCode' type-id='e58f29ef' visibility='default' filepath='lib/zstd/zstd_internal.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='longLengthID' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='longLengthPos' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='priceTable' type-id='382d6fa6' visibility='default' filepath='lib/zstd/zstd_internal.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='matchTable' type-id='6769eb8b' visibility='default' filepath='lib/zstd/zstd_internal.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='matchLengthFreq' type-id='f96da5a1' visibility='default' filepath='lib/zstd/zstd_internal.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='litLengthFreq' type-id='f96da5a1' visibility='default' filepath='lib/zstd/zstd_internal.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='litFreq' type-id='f96da5a1' visibility='default' filepath='lib/zstd/zstd_internal.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='offCodeFreq' type-id='f96da5a1' visibility='default' filepath='lib/zstd/zstd_internal.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='matchLengthSum' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='matchSum' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='litLengthSum' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='litSum' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='offCodeSum' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='log2matchLengthSum' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='log2matchSum' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='log2litLengthSum' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='log2litSum' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='log2offCodeSum' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='factor' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='staticPrices' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='cachedPrice' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='cachedLitLength' type-id='7d89f13e' visibility='default' filepath='lib/zstd/zstd_internal.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='cachedLiterals' type-id='d4bf2c54' visibility='default' filepath='lib/zstd/zstd_internal.h' line='219' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='08c313b5' size-in-bits='64' id='ac429605'/>
+      <pointer-type-def type-id='1f3f0f56' size-in-bits='64' id='ac456034'/>
+      <pointer-type-def type-id='512ac7cc' size-in-bits='64' id='ac58af12'/>
+      <union-decl name='__anonymous_union__' size-in-bits='2176' is-anonymous='yes' visibility='default' filepath='arch/arm64/include/asm/ptrace.h' line='179' column='1' id='ac5ab595'>
+        <data-member access='public'>
+          <var-decl name='user_regs' type-id='cedec667' visibility='default' filepath='arch/arm64/include/asm/ptrace.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43f72' visibility='default' filepath='arch/arm64/include/asm/ptrace.h' line='181' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/bpf-cgroup.h' line='105' column='1' id='ac5ab596'>
+        <data-member access='public'>
+          <var-decl name='buf' type-id='b1253746' visibility='default' filepath='include/linux/bpf-cgroup.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='percpu_buf' type-id='eaa32e2f' visibility='default' filepath='include/linux/bpf-cgroup.h' line='107' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/bpf.h' line='1192' column='1' id='ac5ab597'>
+        <data-member access='public'>
+          <var-decl name='cgroup_storage' type-id='dcd9fb4c' visibility='default' filepath='include/linux/bpf.h' line='1193' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='bpf_cookie' type-id='91ce1af9' visibility='default' filepath='include/linux/bpf.h' line='1194' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='79' column='1' id='ac5ab598'>
+        <data-member access='public'>
+          <var-decl name='next' type-id='2aa2e156' visibility='default' filepath='include/linux/perf_event.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='pad' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='81' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='768' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='136' column='1' id='ac5ab599'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43f73' visibility='default' filepath='include/linux/perf_event.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43f74' visibility='default' filepath='include/linux/perf_event.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43f75' visibility='default' filepath='include/linux/perf_event.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43f76' visibility='default' filepath='include/linux/perf_event.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43f77' visibility='default' filepath='include/linux/perf_event.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43f78' visibility='default' filepath='include/linux/perf_event.h' line='172' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='215' column='1' id='ac5ab59a'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43f79' visibility='default' filepath='include/linux/perf_event.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43f7a' visibility='default' filepath='include/linux/perf_event.h' line='230' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='890' column='1' id='ac5ab59b'>
+        <data-member access='public'>
+          <var-decl name='addr' type-id='eaa32e2f' visibility='default' filepath='include/linux/perf_event.h' line='891' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='head' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='892' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='576' is-anonymous='yes' visibility='default' filepath='include/linux/pm_qos.h' line='110' column='1' id='ac5ab59c'>
+        <data-member access='public'>
+          <var-decl name='pnode' type-id='e3a91a7c' visibility='default' filepath='include/linux/pm_qos.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='flr' type-id='a70ae6be' visibility='default' filepath='include/linux/pm_qos.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='freq' type-id='da4cc8f3' visibility='default' filepath='include/linux/pm_qos.h' line='113' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/trace_events.h' line='263' column='1' id='ac5ab59d'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43f7d' visibility='default' filepath='include/linux/trace_events.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='define_fields' type-id='9a5ed472' visibility='default' filepath='include/linux/trace_events.h' line='271' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/trace_events.h' line='348' column='1' id='ac5ab59e'>
+        <data-member access='public'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/trace_events.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='tp' type-id='08e531de' visibility='default' filepath='include/linux/trace_events.h' line='351' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/trace_events.h' line='360' column='1' id='ac5ab59f'>
+        <data-member access='public'>
+          <var-decl name='module' type-id='eaa32e2f' visibility='default' filepath='include/linux/trace_events.h' line='361' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='refcnt' type-id='49178f86' visibility='default' filepath='include/linux/trace_events.h' line='362' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/perf_event.h' line='355' column='1' id='ac5ab5a0'>
+        <data-member access='public'>
+          <var-decl name='sample_period' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='sample_freq' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='357' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/perf_event.h' line='414' column='1' id='ac5ab5a1'>
+        <data-member access='public'>
+          <var-decl name='wakeup_events' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/perf_event.h' line='415' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='wakeup_watermark' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/perf_event.h' line='416' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/perf_event.h' line='420' column='1' id='ac5ab5a2'>
+        <data-member access='public'>
+          <var-decl name='bp_addr' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='421' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='kprobe_func' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='422' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='uprobe_path' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='423' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='config1' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='424' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/perf_event.h' line='426' column='1' id='ac5ab5a3'>
+        <data-member access='public'>
+          <var-decl name='bp_len' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='427' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='kprobe_addr' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='428' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='probe_offset' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='429' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='config2' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='430' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/linux/msi.h' line='39' column='1' id='ac5ab5a4'>
+        <data-member access='public'>
+          <var-decl name='address_lo' type-id='19c2251e' visibility='default' filepath='include/linux/msi.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='arch_addr_lo' type-id='0c8751d3' visibility='default' filepath='include/linux/msi.h' line='41' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/linux/msi.h' line='43' column='1' id='ac5ab5a5'>
+        <data-member access='public'>
+          <var-decl name='address_hi' type-id='19c2251e' visibility='default' filepath='include/linux/msi.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='arch_addr_hi' type-id='6a36f05d' visibility='default' filepath='include/linux/msi.h' line='45' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/linux/msi.h' line='47' column='1' id='ac5ab5a6'>
+        <data-member access='public'>
+          <var-decl name='data' type-id='19c2251e' visibility='default' filepath='include/linux/msi.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='arch_data' type-id='3e0ab710' visibility='default' filepath='include/linux/msi.h' line='49' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/msi.h' line='140' column='1' id='ac5ab5a7'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43f80' visibility='default' filepath='include/linux/msi.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='platform' type-id='2ae2d1e2' visibility='default' filepath='include/linux/msi.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='fsl_mc' type-id='9930269d' visibility='default' filepath='include/linux/msi.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='inta' type-id='248c6527' visibility='default' filepath='include/linux/msi.h' line='172' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/linux/msi.h' line='143' column='1' id='ac5ab5a8'>
+        <data-member access='public'>
+          <var-decl name='msi_mask' type-id='19c2251e' visibility='default' filepath='include/linux/msi.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='msix_ctrl' type-id='19c2251e' visibility='default' filepath='include/linux/msi.h' line='145' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/msi.h' line='157' column='1' id='ac5ab5a9'>
+        <data-member access='public'>
+          <var-decl name='mask_pos' type-id='f9b06939' visibility='default' filepath='include/linux/msi.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='mask_base' type-id='eaa32e2f' visibility='default' filepath='include/linux/msi.h' line='159' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/pci.h' line='486' column='1' id='ac5ab5aa'>
+        <data-member access='public'>
+          <var-decl name='sriov' type-id='e3be65f1' visibility='default' filepath='include/linux/pci.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='physfn' type-id='85196e3f' visibility='default' filepath='include/linux/pci.h' line='488' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/linux/keyctl.h' line='35' column='1' id='ac5ab5ab'>
+        <data-member access='public'>
+          <var-decl name='out_len' type-id='3f1a6b60' visibility='default' filepath='include/linux/keyctl.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='in2_len' type-id='3f1a6b60' visibility='default' filepath='include/linux/keyctl.h' line='37' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='5120' is-anonymous='yes' visibility='default' filepath='include/crypto/internal/aead.h' line='20' column='1' id='ac5ab5ac'>
+        <data-member access='public'>
+          <var-decl name='s' type-id='e7f43f83' visibility='default' filepath='include/crypto/internal/aead.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='alg' type-id='94111b83' visibility='default' filepath='include/crypto/internal/aead.h' line='25' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='6144' is-anonymous='yes' visibility='default' filepath='include/crypto/internal/hash.h' line='34' column='1' id='ac5ab5ad'>
+        <data-member access='public'>
+          <var-decl name='s' type-id='e7f43f84' visibility='default' filepath='include/crypto/internal/hash.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='alg' type-id='d0f077d9' visibility='default' filepath='include/crypto/internal/hash.h' line='39' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/crypto/algapi.h' line='51' column='1' id='ac5ab5ae'>
+        <data-member access='public'>
+          <var-decl name='list' type-id='03a4a074' visibility='default' filepath='include/crypto/algapi.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='spawns' type-id='5f880e0e' visibility='default' filepath='include/crypto/algapi.h' line='55' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/crypto/algapi.h' line='74' column='1' id='ac5ab5af'>
+        <data-member access='public'>
+          <var-decl name='inst' type-id='708ae4d0' visibility='default' filepath='include/crypto/algapi.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='next' type-id='5f880e0e' visibility='default' filepath='include/crypto/algapi.h' line='78' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='766' column='1' id='ac5ab5b0'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43ff5' visibility='default' filepath='include/linux/skbuff.h' line='767' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='rbnode' type-id='2a8a6332' visibility='default' filepath='include/linux/skbuff.h' line='781' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/skbuff.h' line='782' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='785' column='1' id='ac5ab5b1'>
+        <data-member access='public'>
+          <var-decl name='sk' type-id='f772df6d' visibility='default' filepath='include/linux/skbuff.h' line='786' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ip_defrag_offset' type-id='95e97e5e' visibility='default' filepath='include/linux/skbuff.h' line='787' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='790' column='1' id='ac5ab5b2'>
+        <data-member access='public'>
+          <var-decl name='tstamp' type-id='fbc017ef' visibility='default' filepath='include/linux/skbuff.h' line='791' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='skb_mstamp_ns' type-id='91ce1af9' visibility='default' filepath='include/linux/skbuff.h' line='792' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='802' column='1' id='ac5ab5b3'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43ff6' visibility='default' filepath='include/linux/skbuff.h' line='803' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='tcp_tsorted_anchor' type-id='72f469ec' visibility='default' filepath='include/linux/skbuff.h' line='807' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='_sk_redir' type-id='7359adad' visibility='default' filepath='include/linux/skbuff.h' line='809' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='924' column='1' id='ac5ab5b4'>
+        <data-member access='public'>
+          <var-decl name='csum' type-id='fbd88bba' visibility='default' filepath='include/linux/skbuff.h' line='925' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43ff7' visibility='default' filepath='include/linux/skbuff.h' line='926' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='937' column='1' id='ac5ab5b5'>
+        <data-member access='public'>
+          <var-decl name='napi_id' type-id='f0981eeb' visibility='default' filepath='include/linux/skbuff.h' line='938' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='sender_cpu' type-id='f0981eeb' visibility='default' filepath='include/linux/skbuff.h' line='939' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='946' column='1' id='ac5ab5b6'>
+        <data-member access='public'>
+          <var-decl name='mark' type-id='3f1a6b60' visibility='default' filepath='include/linux/skbuff.h' line='947' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='reserved_tailroom' type-id='3f1a6b60' visibility='default' filepath='include/linux/skbuff.h' line='948' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='16' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='951' column='1' id='ac5ab5b7'>
+        <data-member access='public'>
+          <var-decl name='inner_protocol' type-id='84a5c3d4' visibility='default' filepath='include/linux/skbuff.h' line='952' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='inner_ipproto' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='953' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='985' column='1' id='ac5ab5b8'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43ff8' visibility='default' filepath='include/linux/skbuff.h' line='985' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fb0' visibility='default' filepath='include/linux/skbuff.h' line='985' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='ac5ab5e2' visibility='default' filepath='include/linux/skbuff.h' line='985' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='6144' is-anonymous='yes' visibility='default' filepath='include/crypto/internal/hash.h' line='45' column='1' id='ac5ab5b9'>
+        <data-member access='public'>
+          <var-decl name='s' type-id='e7f43f84' visibility='default' filepath='include/crypto/internal/hash.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='alg' type-id='b73dd29b' visibility='default' filepath='include/crypto/internal/hash.h' line='50' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='5120' is-anonymous='yes' visibility='default' filepath='include/crypto/internal/skcipher.h' line='22' column='1' id='ac5ab5ba'>
+        <data-member access='public'>
+          <var-decl name='s' type-id='e7f43f83' visibility='default' filepath='include/crypto/internal/skcipher.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='alg' type-id='dd37d315' visibility='default' filepath='include/crypto/internal/skcipher.h' line='27' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/crypto/internal/skcipher.h' line='36' column='1' id='ac5ab5bb'>
+        <data-member access='public'>
+          <var-decl name='phys' type-id='e7f43f85' visibility='default' filepath='include/crypto/internal/skcipher.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='virt' type-id='e7f43f86' visibility='default' filepath='include/crypto/internal/skcipher.h' line='45' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='drivers/android/binder_internal.h' line='236' column='1' id='ac5ab5bc'>
+        <data-member access='public'>
+          <var-decl name='rb_node' type-id='2a8a6332' visibility='default' filepath='drivers/android/binder_internal.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='dead_node' type-id='03a4a074' visibility='default' filepath='drivers/android/binder_internal.h' line='238' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/../kernel/audit.h' line='57' column='1' id='ac5ab5bd'>
+        <data-member access='public'>
+          <var-decl name='fE' type-id='f0981eeb' visibility='default' filepath='include/../kernel/audit.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='effective' type-id='7496b151' visibility='default' filepath='include/../kernel/audit.h' line='59' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='896' is-anonymous='yes' visibility='default' filepath='include/../kernel/audit.h' line='148' column='1' id='ac5ab5be'>
+        <data-member access='public'>
+          <var-decl name='socketcall' type-id='e7f43f89' visibility='default' filepath='include/../kernel/audit.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ipc' type-id='e7f43f8a' visibility='default' filepath='include/../kernel/audit.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='mq_getsetattr' type-id='e7f43f8b' visibility='default' filepath='include/../kernel/audit.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='mq_notify' type-id='e7f43f8c' visibility='default' filepath='include/../kernel/audit.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='mq_sendrecv' type-id='e7f43f8d' visibility='default' filepath='include/../kernel/audit.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='mq_open' type-id='e7f43f8e' visibility='default' filepath='include/../kernel/audit.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='capset' type-id='e7f43f8f' visibility='default' filepath='include/../kernel/audit.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='mmap' type-id='e7f43f90' visibility='default' filepath='include/../kernel/audit.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='execve' type-id='e7f43f91' visibility='default' filepath='include/../kernel/audit.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='module' type-id='e7f43f92' visibility='default' filepath='include/../kernel/audit.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='time' type-id='e7f43f93' visibility='default' filepath='include/../kernel/audit.h' line='200' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/futex.h' line='39' column='1' id='ac5ab5bf'>
+        <data-member access='public'>
+          <var-decl name='mm' type-id='df4b7819' visibility='default' filepath='include/linux/futex.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='__tmp' type-id='91ce1af9' visibility='default' filepath='include/linux/futex.h' line='41' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/inet_hashtables.h' line='115' column='1' id='ac5ab5c0'>
+        <data-member access='public'>
+          <var-decl name='head' type-id='e151255a' visibility='default' filepath='include/net/inet_hashtables.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='nulls_head' type-id='af86905d' visibility='default' filepath='include/net/inet_hashtables.h' line='117' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/net/ip6_fib.h' line='178' column='1' id='ac5ab5c1'>
+        <data-member access='public'>
+          <var-decl name='fib6_siblings' type-id='72f469ec' visibility='default' filepath='include/net/ip6_fib.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='nh_list' type-id='72f469ec' visibility='default' filepath='include/net/ip6_fib.h' line='180' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/net/ip_fib.h' line='89' column='1' id='ac5ab5c2'>
+        <data-member access='public'>
+          <var-decl name='ipv4' type-id='78a133c2' visibility='default' filepath='include/net/ip_fib.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ipv6' type-id='f6ed712a' visibility='default' filepath='include/net/ip_fib.h' line='91' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/macsec.h' line='166' column='1' id='ac5ab5c3'>
+        <data-member access='public'>
+          <var-decl name='next_pn_halves' type-id='7f3c6675' visibility='default' filepath='include/net/macsec.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='next_pn' type-id='91ce1af9' visibility='default' filepath='include/net/macsec.h' line='168' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/macsec.h' line='234' column='1' id='ac5ab5c4'>
+        <data-member access='public'>
+          <var-decl name='netdev' type-id='68a2d05b' visibility='default' filepath='include/net/macsec.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='phydev' type-id='7efbcaaf' visibility='default' filepath='include/net/macsec.h' line='236' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/macsec.h' line='250' column='1' id='ac5ab5c5'>
+        <data-member access='public'>
+          <var-decl name='tx_sc_stats' type-id='1a175cbd' visibility='default' filepath='include/net/macsec.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='tx_sa_stats' type-id='121b202b' visibility='default' filepath='include/net/macsec.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='rx_sc_stats' type-id='d46d0643' visibility='default' filepath='include/net/macsec.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='rx_sa_stats' type-id='496df6b5' visibility='default' filepath='include/net/macsec.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='dev_stats' type-id='b96389b5' visibility='default' filepath='include/net/macsec.h' line='255' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/macsec.h' line='245' column='1' id='ac5ab5c6'>
+        <data-member access='public'>
+          <var-decl name='rx_sa' type-id='6c9c83d5' visibility='default' filepath='include/net/macsec.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='tx_sa' type-id='08ae2a9f' visibility='default' filepath='include/net/macsec.h' line='247' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='832' is-anonymous='yes' visibility='default' filepath='include/net/nexthop.h' line='65' column='1' id='ac5ab5c7'>
+        <data-member access='public'>
+          <var-decl name='fib_nhc' type-id='e1f89457' visibility='default' filepath='include/net/nexthop.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='fib_nh' type-id='deb3203d' visibility='default' filepath='include/net/nexthop.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='fib6_nh' type-id='979d5bbb' visibility='default' filepath='include/net/nexthop.h' line='68' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/net/nexthop.h' line='102' column='1' id='ac5ab5c8'>
+        <data-member access='public'>
+          <var-decl name='hthr' type-id='e7f43f9a' visibility='default' filepath='include/net/nexthop.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='res' type-id='e7f43f9b' visibility='default' filepath='include/net/nexthop.h' line='112' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/nexthop.h' line='149' column='1' id='ac5ab5c9'>
+        <data-member access='public'>
+          <var-decl name='nh_info' type-id='e55edb2e' visibility='default' filepath='include/net/nexthop.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='nh_grp' type-id='c5ff416f' visibility='default' filepath='include/net/nexthop.h' line='151' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/net/route.h' line='62' column='1' id='ac5ab5ca'>
+        <data-member access='public'>
+          <var-decl name='rt_gw4' type-id='78a133c2' visibility='default' filepath='include/net/route.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='rt_gw6' type-id='f6ed712a' visibility='default' filepath='include/net/route.h' line='64' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/android/binder.h' line='329' column='1' id='ac5ab5cb'>
+        <data-member access='public'>
+          <var-decl name='handle' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/android/binder.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ptr' type-id='6867e656' visibility='default' filepath='include/uapi/linux/android/binder.h' line='333' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/android/binder.h' line='349' column='1' id='ac5ab5cc'>
+        <data-member access='public'>
+          <var-decl name='ptr' type-id='e7f43f9c' visibility='default' filepath='include/uapi/linux/android/binder.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='buf' type-id='0209ab38' visibility='default' filepath='include/uapi/linux/android/binder.h' line='356' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='1024' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/socket.h' line='17' column='1' id='ac5ab5cd'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43f9d' visibility='default' filepath='include/uapi/linux/socket.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='__align' type-id='eaa32e2f' visibility='default' filepath='include/uapi/linux/socket.h' line='25' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='768' is-anonymous='yes' visibility='default' filepath='include/linux/dma-buf.h' line='521' column='1' id='ac5ab5ce'>
+        <data-member access='public'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='include/linux/dma-buf.h' line='522' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='sysfs_add_work' type-id='ef9025d0' visibility='default' filepath='include/linux/dma-buf.h' line='528' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='623' column='1' id='ac5ab5cf'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fc5' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='623' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fb0' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='623' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='ac5ab5e2' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='623' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/property.h' line='278' column='1' id='ac5ab5d0'>
+        <data-member access='public'>
+          <var-decl name='pointer' type-id='eaa32e2f' visibility='default' filepath='include/linux/property.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='value' type-id='ac5ab5d1' visibility='default' filepath='include/linux/property.h' line='286' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/property.h' line='280' column='1' id='ac5ab5d1'>
+        <data-member access='public'>
+          <var-decl name='u8_data' type-id='d2f7b56a' visibility='default' filepath='include/linux/property.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='u16_data' type-id='02580c2f' visibility='default' filepath='include/linux/property.h' line='282' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='u32_data' type-id='1872161b' visibility='default' filepath='include/linux/property.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='u64_data' type-id='64a61909' visibility='default' filepath='include/linux/property.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='str' type-id='75e4a9bd' visibility='default' filepath='include/linux/property.h' line='285' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='include/linux/pm_domain.h' line='155' column='1' id='ac5ab5d2'>
+        <data-member access='public'>
+          <var-decl name='mlock' type-id='925167dc' visibility='default' filepath='include/linux/pm_domain.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43f9e' visibility='default' filepath='include/linux/pm_domain.h' line='157' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='drivers/base/regmap/internal.h' line='50' column='1' id='ac5ab5d3'>
+        <data-member access='public'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='drivers/base/regmap/internal.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43f9f' visibility='default' filepath='drivers/base/regmap/internal.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fa0' visibility='default' filepath='drivers/base/regmap/internal.h' line='56' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/dma-fence.h' line='84' column='1' id='ac5ab5d4'>
+        <data-member access='public'>
+          <var-decl name='cb_list' type-id='72f469ec' visibility='default' filepath='include/linux/dma-fence.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='timestamp' type-id='fbc017ef' visibility='default' filepath='include/linux/dma-fence.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/dma-fence.h' line='89' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/drm/drm_fourcc.h' line='77' column='1' id='ac5ab5d5'>
+        <data-member access='public'>
+          <var-decl name='cpp' type-id='931565be' visibility='default' filepath='include/drm/drm_fourcc.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='char_per_block' type-id='931565be' visibility='default' filepath='include/drm/drm_fourcc.h' line='112' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/hdmi.h' line='386' column='1' id='ac5ab5d6'>
+        <data-member access='public'>
+          <var-decl name='hdmi_type1' type-id='4ba022f8' visibility='default' filepath='include/linux/hdmi.h' line='387' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/drm/drm_vblank.h' line='58' column='1' id='ac5ab5d7'>
+        <data-member access='public'>
+          <var-decl name='base' type-id='9857a465' visibility='default' filepath='include/drm/drm_vblank.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='vbl' type-id='bc6bca7e' visibility='default' filepath='include/drm/drm_vblank.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='seq' type-id='3aca1eaa' visibility='default' filepath='include/drm/drm_vblank.h' line='77' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/dma-buf-map.h' line='116' column='1' id='ac5ab5d8'>
+        <data-member access='public'>
+          <var-decl name='vaddr_iomem' type-id='eaa32e2f' visibility='default' filepath='include/linux/dma-buf-map.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='vaddr' type-id='eaa32e2f' visibility='default' filepath='include/linux/dma-buf-map.h' line='118' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='56' is-anonymous='yes' visibility='default' filepath='include/drm/drm_edid.h' line='106' column='1' id='ac5ab5d9'>
+        <data-member access='public'>
+          <var-decl name='gtf2' type-id='e7f43fac' visibility='default' filepath='include/drm/drm_edid.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='cvt' type-id='e7f43fad' visibility='default' filepath='include/drm/drm_edid.h' line='123' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='104' is-anonymous='yes' visibility='default' filepath='include/drm/drm_edid.h' line='151' column='1' id='ac5ab5da'>
+        <data-member access='public'>
+          <var-decl name='str' type-id='9839ad2e' visibility='default' filepath='include/drm/drm_edid.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='range' type-id='2d6065c1' visibility='default' filepath='include/drm/drm_edid.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='color' type-id='d35b6cc8' visibility='default' filepath='include/drm/drm_edid.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='timings' type-id='0e1e8cdf' visibility='default' filepath='include/drm/drm_edid.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='cvt' type-id='e6001147' visibility='default' filepath='include/drm/drm_edid.h' line='156' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/drm/drm_edid.h' line='172' column='1' id='ac5ab5db'>
+        <data-member access='public'>
+          <var-decl name='pixel_data' type-id='42c5f701' visibility='default' filepath='include/drm/drm_edid.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='other_data' type-id='4191437e' visibility='default' filepath='include/drm/drm_edid.h' line='174' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='669' column='1' id='ac5ab5dc'>
+        <data-member access='public'>
+          <var-decl name='i_nlink' type-id='20f5f452' visibility='default' filepath='include/linux/fs.h' line='670' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='__i_nlink' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='671' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='708' column='1' id='ac5ab5dd'>
+        <data-member access='public'>
+          <var-decl name='i_dentry' type-id='e151255a' visibility='default' filepath='include/linux/fs.h' line='709' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='i_rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/fs.h' line='710' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='720' column='1' id='ac5ab5de'>
+        <data-member access='public'>
+          <var-decl name='i_fop' type-id='61758ee5' visibility='default' filepath='include/linux/fs.h' line='721' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='free_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='722' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='727' column='1' id='ac5ab5df'>
+        <data-member access='public'>
+          <var-decl name='i_pipe' type-id='15d29710' visibility='default' filepath='include/linux/fs.h' line='728' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='i_cdev' type-id='3e6eb939' visibility='default' filepath='include/linux/fs.h' line='729' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='i_link' type-id='26a90f95' visibility='default' filepath='include/linux/fs.h' line='730' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='i_dir_seq' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='731' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/dma-fence-chain.h' line='30' column='1' id='ac5ab5e0'>
+        <data-member access='public'>
+          <var-decl name='cb' type-id='54c5dd35' visibility='default' filepath='include/linux/dma-fence-chain.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='work' type-id='9281c70f' visibility='default' filepath='include/linux/dma-fence-chain.h' line='47' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/hid.h' line='635' column='1' id='ac5ab5e1'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43faf' visibility='default' filepath='include/linux/hid.h' line='635' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fb0' visibility='default' filepath='include/linux/hid.h' line='635' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='ac5ab5e2' visibility='default' filepath='include/linux/hid.h' line='635' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='985' column='1' id='ac5ab5e2'/>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/spi/spi-mem.h' line='124' column='1' id='ac5ab5e3'>
+        <data-member access='public'>
+          <var-decl name='in' type-id='eaa32e2f' visibility='default' filepath='include/linux/spi/spi-mem.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='out' type-id='eaa32e2f' visibility='default' filepath='include/linux/spi/spi-mem.h' line='126' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/input.h' line='457' column='1' id='ac5ab5e4'>
+        <data-member access='public'>
+          <var-decl name='constant' type-id='777eafbe' visibility='default' filepath='include/uapi/linux/input.h' line='458' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ramp' type-id='83c35232' visibility='default' filepath='include/uapi/linux/input.h' line='459' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='periodic' type-id='106cd915' visibility='default' filepath='include/uapi/linux/input.h' line='460' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='condition' type-id='1c159d57' visibility='default' filepath='include/uapi/linux/input.h' line='461' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='rumble' type-id='6e5c8c15' visibility='default' filepath='include/uapi/linux/input.h' line='462' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='15296' is-anonymous='yes' visibility='default' filepath='drivers/iommu/dma-iommu.c' line='43' column='1' id='ac5ab5e5'>
+        <data-member access='public'>
+          <var-decl name='iovad' type-id='67db36ed' visibility='default' filepath='drivers/iommu/dma-iommu.c' line='45' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='msi_iova' type-id='cf29c9b3' visibility='default' filepath='drivers/iommu/dma-iommu.c' line='47' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='include/linux/io-pgtable.h' line='102' column='1' id='ac5ab5e6'>
+        <data-member access='public'>
+          <var-decl name='arm_lpae_s1_cfg' type-id='e7f43fb4' visibility='default' filepath='include/linux/io-pgtable.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='arm_lpae_s2_cfg' type-id='e7f43fb5' visibility='default' filepath='include/linux/io-pgtable.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='arm_v7s_cfg' type-id='e7f43fb6' visibility='default' filepath='include/linux/io-pgtable.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='arm_mali_lpae_cfg' type-id='e7f43fb7' visibility='default' filepath='include/linux/io-pgtable.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='apple_dart_cfg' type-id='e7f43fb8' visibility='default' filepath='include/linux/io-pgtable.h' line='144' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='448' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/iommu.h' line='118' column='1' id='ac5ab5e7'>
+        <data-member access='public'>
+          <var-decl name='event' type-id='85fb8e73' visibility='default' filepath='include/uapi/linux/iommu.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='prm' type-id='cfbe6297' visibility='default' filepath='include/uapi/linux/iommu.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='padding2' type-id='a038344f' visibility='default' filepath='include/uapi/linux/iommu.h' line='121' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/iommu.h' line='267' column='1' id='ac5ab5e8'>
+        <data-member access='public'>
+          <var-decl name='pasid_info' type-id='daf9a599' visibility='default' filepath='include/uapi/linux/iommu.h' line='268' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='addr_info' type-id='d8e8de01' visibility='default' filepath='include/uapi/linux/iommu.h' line='269' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/iommu.h' line='337' column='1' id='ac5ab5e9'>
+        <data-member access='public'>
+          <var-decl name='vtd' type-id='8b85ffcf' visibility='default' filepath='include/uapi/linux/iommu.h' line='338' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='512' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/cec.h' line='403' column='1' id='ac5ab5ea'>
+        <data-member access='public'>
+          <var-decl name='drm' type-id='8c7b18b1' visibility='default' filepath='include/uapi/linux/cec.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='raw' type-id='9d2cf33e' visibility='default' filepath='include/uapi/linux/cec.h' line='405' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='512' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/cec.h' line='466' column='1' id='ac5ab5eb'>
+        <data-member access='public'>
+          <var-decl name='state_change' type-id='14c5637c' visibility='default' filepath='include/uapi/linux/cec.h' line='467' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='lost_msgs' type-id='66c0ec77' visibility='default' filepath='include/uapi/linux/cec.h' line='468' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='raw' type-id='9d2cf33e' visibility='default' filepath='include/uapi/linux/cec.h' line='469' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/media/media-entity.h' line='135' column='1' id='ac5ab5ec'>
+        <data-member access='public'>
+          <var-decl name='gobj0' type-id='4077272c' visibility='default' filepath='include/media/media-entity.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='source' type-id='50a51839' visibility='default' filepath='include/media/media-entity.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='intf' type-id='afe1ccd7' visibility='default' filepath='include/media/media-entity.h' line='138' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/media/media-entity.h' line='140' column='1' id='ac5ab5ed'>
+        <data-member access='public'>
+          <var-decl name='gobj1' type-id='4077272c' visibility='default' filepath='include/media/media-entity.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='sink' type-id='50a51839' visibility='default' filepath='include/media/media-entity.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='entity' type-id='19e05b5f' visibility='default' filepath='include/media/media-entity.h' line='143' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/media/media-entity.h' line='312' column='1' id='ac5ab5ee'>
+        <data-member access='public'>
+          <var-decl name='dev' type-id='e7f43fbd' visibility='default' filepath='include/media/media-entity.h' line='316' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='52' column='1' id='ac5ab5ef'>
+        <data-member access='public'>
+          <var-decl name='kfifo' type-id='bbbc6c1e' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='type' type-id='4a06e68e' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='const_type' type-id='528735d1' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='rectype' type-id='4209d6b5' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ptr' type-id='4a06e68e' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ptr_const' type-id='528735d1' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='52' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/media/rc-core.h' line='300' column='1' id='ac5ab5f0'>
+        <data-member access='public'>
+          <var-decl name='duration' type-id='19c2251e' visibility='default' filepath='include/media/rc-core.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='carrier' type-id='19c2251e' visibility='default' filepath='include/media/rc-core.h' line='302' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/media/v4l2-async.h' line='65' column='1' id='ac5ab5f1'>
+        <data-member access='public'>
+          <var-decl name='fwnode' type-id='4a935625' visibility='default' filepath='include/media/v4l2-async.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='i2c' type-id='e7f43fbe' visibility='default' filepath='include/media/v4l2-async.h' line='70' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='16' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/v4l2-mediabus.h' line='41' column='1' id='ac5ab5f2'>
+        <data-member access='public'>
+          <var-decl name='ycbcr_enc' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-mediabus.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='hsv_enc' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-mediabus.h' line='45' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='506' column='1' id='ac5ab5f3'>
+        <data-member access='public'>
+          <var-decl name='ycbcr_enc' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='508' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='hsv_enc' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='510' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='834' column='1' id='ac5ab5f4'>
+        <data-member access='public'>
+          <var-decl name='discrete' type-id='10186cf6' visibility='default' filepath='include/uapi/linux/videodev2.h' line='835' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='stepwise' type-id='5a62dd2b' visibility='default' filepath='include/uapi/linux/videodev2.h' line='836' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='864' column='1' id='ac5ab5f5'>
+        <data-member access='public'>
+          <var-decl name='discrete' type-id='5f37256e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='865' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='stepwise' type-id='99cd0646' visibility='default' filepath='include/uapi/linux/videodev2.h' line='866' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='993' column='1' id='ac5ab5f6'>
+        <data-member access='public'>
+          <var-decl name='mem_offset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='994' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='userptr' type-id='7359adad' visibility='default' filepath='include/uapi/linux/videodev2.h' line='995' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='fd' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='996' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1053' column='1' id='ac5ab5f7'>
+        <data-member access='public'>
+          <var-decl name='offset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1054' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='userptr' type-id='7359adad' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1055' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='planes' type-id='00e8fe5a' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1056' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='fd' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1057' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1061' column='1' id='ac5ab5f8'>
+        <data-member access='public'>
+          <var-decl name='request_fd' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1062' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='reserved' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1063' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='1024' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1574' column='1' id='ac5ab5f9'>
+        <data-member access='public'>
+          <var-decl name='bt' type-id='ecc13ba0' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1575' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='reserved' type-id='734a963c' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1576' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='1024' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1640' column='1' id='ac5ab5fa'>
+        <data-member access='public'>
+          <var-decl name='bt' type-id='e5bfe593' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1641' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='raw_data' type-id='734a963c' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1642' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1735' column='1' id='ac5ab5fb'>
+        <data-member access='public'>
+          <var-decl name='value' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1736' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='value64' type-id='49659421' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1737' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='string' type-id='26a90f95' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1738' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_u8' type-id='474e5dcc' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1739' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_u16' type-id='2e5e3725' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1740' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_u32' type-id='cd1b45ab' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1741' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_area' type-id='26385187' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1742' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_h264_sps' type-id='b9348c47' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1743' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_h264_pps' type-id='91e3ab68' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1744' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_h264_scaling_matrix' type-id='f7e7b3e8' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1745' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_h264_pred_weights' type-id='e699de6a' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1746' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_h264_slice_params' type-id='0541bcde' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1747' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_h264_decode_params' type-id='47cb2abc' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1748' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_fwht_params' type-id='efba361c' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1749' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_vp8_frame' type-id='25b4f1ae' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1750' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_mpeg2_sequence' type-id='ff9d06eb' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1751' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_mpeg2_picture' type-id='9ffa96ee' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1752' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p_mpeg2_quantisation' type-id='8860b094' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1753' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ptr' type-id='eaa32e2f' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1754' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1759' column='1' id='ac5ab5fc'>
+        <data-member access='public'>
+          <var-decl name='which' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1763' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1854' column='1' id='ac5ab5fd'>
+        <data-member access='public'>
+          <var-decl name='name' type-id='7e67d89d' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1855' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='value' type-id='49659421' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1856' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2061' column='1' id='ac5ab5fe'>
+        <data-member access='public'>
+          <var-decl name='raw' type-id='e7f43fc0' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2064' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='512' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2097' column='1' id='ac5ab5ff'>
+        <data-member access='public'>
+          <var-decl name='stop' type-id='e7f43fc1' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2100' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='start' type-id='e7f43fc2' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2110' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='raw' type-id='e7f43fc3' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2114' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='8' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2289' column='1' id='ac5ab600'>
+        <data-member access='public'>
+          <var-decl name='ycbcr_enc' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2290' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='hsv_enc' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2291' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='1600' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2334' column='1' id='ac5ab601'>
+        <data-member access='public'>
+          <var-decl name='pix' type-id='e8f6102b' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2335' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='pix_mp' type-id='dece967b' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2336' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='win' type-id='3a0ab346' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2337' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='vbi' type-id='ae01ca89' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2338' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='sliced' type-id='a2be7826' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2339' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='sdr' type-id='a37aff65' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2340' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='meta' type-id='1db7c88b' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2341' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='raw_data' type-id='0530f1a6' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2342' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='1600' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2350' column='1' id='ac5ab602'>
+        <data-member access='public'>
+          <var-decl name='capture' type-id='f88a5c22' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2351' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='output' type-id='b573e9f1' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2352' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='raw_data' type-id='0530f1a6' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2353' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/media/v4l2-ctrls.h' line='281' column='1' id='ac5ab603'>
+        <data-member access='public'>
+          <var-decl name='step' type-id='91ce1af9' visibility='default' filepath='include/media/v4l2-ctrls.h' line='282' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='menu_skip_mask' type-id='91ce1af9' visibility='default' filepath='include/media/v4l2-ctrls.h' line='283' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/media/v4l2-ctrls.h' line='285' column='1' id='ac5ab604'>
+        <data-member access='public'>
+          <var-decl name='qmenu' type-id='13956559' visibility='default' filepath='include/media/v4l2-ctrls.h' line='286' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='qmenu_int' type-id='43ae54cf' visibility='default' filepath='include/media/v4l2-ctrls.h' line='287' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2384' column='1' id='ac5ab605'>
+        <data-member access='public'>
+          <var-decl name='value' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2385' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='value64' type-id='49659421' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2386' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='512' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2422' column='1' id='ac5ab606'>
+        <data-member access='public'>
+          <var-decl name='vsync' type-id='cbe6daf0' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2423' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ctrl' type-id='ecd6d55a' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2424' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='frame_sync' type-id='101c7fc2' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2425' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='src_change' type-id='af41d400' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2426' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='motion_det' type-id='f95c1b03' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2427' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='data' type-id='73b95420' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2428' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/media/videobuf2-core.h' line='185' column='1' id='ac5ab607'>
+        <data-member access='public'>
+          <var-decl name='offset' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='userptr' type-id='7359adad' visibility='default' filepath='include/media/videobuf2-core.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='fd' type-id='95e97e5e' visibility='default' filepath='include/media/videobuf2-core.h' line='188' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='8' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/can.h' line='109' column='1' id='ac5ab608'>
+        <data-member access='public'>
+          <var-decl name='len' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/can.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='can_dlc' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/can.h' line='115' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='16' is-anonymous='yes' visibility='default' filepath='include/linux/sfp.h' line='166' column='1' id='ac5ab609'>
+        <data-member access='public'>
+          <var-decl name='optical_wavelength' type-id='84a5c3d4' visibility='default' filepath='include/linux/sfp.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='cable_compliance' type-id='84a5c3d4' visibility='default' filepath='include/linux/sfp.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='passive' type-id='e7f43fc7' visibility='default' filepath='include/linux/sfp.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='active' type-id='e7f43fc8' visibility='default' filepath='include/linux/sfp.h' line='202' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/net/netns/generic.h' line='29' column='1' id='ac5ab60a'>
+        <data-member access='public'>
+          <var-decl name='s' type-id='e7f43fc9' visibility='default' filepath='include/net/netns/generic.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ptr' type-id='baf98fd3' visibility='default' filepath='include/net/netns/generic.h' line='35' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='122' column='1' id='ac5ab60b'>
+        <data-member access='public'>
+          <var-decl name='delayed_ndp16' type-id='95e43059' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='delayed_ndp32' type-id='63c78f87' visibility='default' filepath='include/linux/usb/cdc_ncm.h' line='124' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/of_address.h' line='24' column='1' id='ac5ab60c'>
+        <data-member access='public'>
+          <var-decl name='pci_addr' type-id='91ce1af9' visibility='default' filepath='include/linux/of_address.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='bus_addr' type-id='91ce1af9' visibility='default' filepath='include/linux/of_address.h' line='26' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/dcache.h' line='110' column='1' id='ac5ab60d'>
+        <data-member access='public'>
+          <var-decl name='d_lru' type-id='72f469ec' visibility='default' filepath='include/linux/dcache.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='d_wait' type-id='03d48e96' visibility='default' filepath='include/linux/dcache.h' line='112' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/dcache.h' line='119' column='1' id='ac5ab60e'>
+        <data-member access='public'>
+          <var-decl name='d_alias' type-id='03a4a074' visibility='default' filepath='include/linux/dcache.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='d_in_lookup_hash' type-id='8db0df1b' visibility='default' filepath='include/linux/dcache.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='d_rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/dcache.h' line='122' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/asm-generic/msi.h' line='28' column='1' id='ac5ab60f'>
+        <data-member access='public'>
+          <var-decl name='ul' type-id='7359adad' visibility='default' filepath='include/asm-generic/msi.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ptr' type-id='eaa32e2f' visibility='default' filepath='include/asm-generic/msi.h' line='30' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/pinctrl/machine.h' line='72' column='1' id='ac5ab610'>
+        <data-member access='public'>
+          <var-decl name='mux' type-id='ad4dd73d' visibility='default' filepath='include/linux/pinctrl/machine.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='configs' type-id='687781fc' visibility='default' filepath='include/linux/pinctrl/machine.h' line='74' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='448' is-anonymous='yes' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='38' column='1' id='ac5ab611'>
+        <data-member access='public'>
+          <var-decl name='extts' type-id='4e68721c' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='perout' type-id='68b40ed3' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='40' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='186' column='1' id='ac5ab612'>
+        <data-member access='public'>
+          <var-decl name='timestamp' type-id='91ce1af9' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='pps_times' type-id='468f0837' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='188' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='108' column='1' id='ac5ab613'>
+        <data-member access='public'>
+          <var-decl name='start' type-id='2f9dd1de' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='phase' type-id='2f9dd1de' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='120' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='125' column='1' id='ac5ab614'>
+        <data-member access='public'>
+          <var-decl name='on' type-id='2f9dd1de' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='rsv' type-id='49580a63' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='133' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='534' column='1' id='ac5ab615'>
+        <data-member access='public'>
+          <var-decl name='sr' type-id='18119fa5' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='535' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='hr' type-id='a222ac53' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='536' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='qr' type-id='5fc79e81' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='537' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='160' is-anonymous='yes' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='75' column='1' id='ac5ab616'>
+        <data-member access='public'>
+          <var-decl name='sc' type-id='498490b9' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='qr' type-id='5fc79e81' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='uc' type-id='5fc79e81' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='78' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1319' column='1' id='ac5ab617'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fd4' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1319' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fb0' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1319' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='ac5ab5e2' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1319' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1322' column='1' id='ac5ab618'>
+        <data-member access='public'>
+          <var-decl name='debug_root' type-id='27675065' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1322' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fd5' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1322' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='ac5ab5e2' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1322' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/sound/control.h' line='77' column='1' id='ac5ab619'>
+        <data-member access='public'>
+          <var-decl name='c' type-id='bf7b4ec3' visibility='default' filepath='include/sound/control.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='p' type-id='5b2fd8e8' visibility='default' filepath='include/sound/control.h' line='79' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='1024' is-anonymous='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='1053' column='1' id='ac5ab61a'>
+        <data-member access='public'>
+          <var-decl name='integer' type-id='e7f43fd6' visibility='default' filepath='include/uapi/sound/asound.h' line='1058' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='integer64' type-id='e7f43fd7' visibility='default' filepath='include/uapi/sound/asound.h' line='1063' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='enumerated' type-id='e7f43fd8' visibility='default' filepath='include/uapi/sound/asound.h' line='1070' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='reserved' type-id='6f10c3ff' visibility='default' filepath='include/uapi/sound/asound.h' line='1071' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='8192' is-anonymous='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='1079' column='1' id='ac5ab61b'>
+        <data-member access='public'>
+          <var-decl name='integer' type-id='ac5ab61c' visibility='default' filepath='include/uapi/sound/asound.h' line='1083' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='integer64' type-id='ac5ab61d' visibility='default' filepath='include/uapi/sound/asound.h' line='1087' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='enumerated' type-id='ac5ab61e' visibility='default' filepath='include/uapi/sound/asound.h' line='1091' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='bytes' type-id='ac5ab61f' visibility='default' filepath='include/uapi/sound/asound.h' line='1095' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='iec958' type-id='22a78e66' visibility='default' filepath='include/uapi/sound/asound.h' line='1096' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='8192' is-anonymous='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='1080' column='1' id='ac5ab61c'>
+        <data-member access='public'>
+          <var-decl name='value' type-id='e1c8dbe3' visibility='default' filepath='include/uapi/sound/asound.h' line='1081' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='value_ptr' type-id='3ccc2590' visibility='default' filepath='include/uapi/sound/asound.h' line='1082' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='4096' is-anonymous='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='1084' column='1' id='ac5ab61d'>
+        <data-member access='public'>
+          <var-decl name='value' type-id='1fd26250' visibility='default' filepath='include/uapi/sound/asound.h' line='1085' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='value_ptr' type-id='8b97c2dc' visibility='default' filepath='include/uapi/sound/asound.h' line='1086' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='4096' is-anonymous='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='1088' column='1' id='ac5ab61e'>
+        <data-member access='public'>
+          <var-decl name='item' type-id='ee4e68c4' visibility='default' filepath='include/uapi/sound/asound.h' line='1089' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='item_ptr' type-id='807869d3' visibility='default' filepath='include/uapi/sound/asound.h' line='1090' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='4096' is-anonymous='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='1092' column='1' id='ac5ab61f'>
+        <data-member access='public'>
+          <var-decl name='data' type-id='b6d05418' visibility='default' filepath='include/uapi/sound/asound.h' line='1093' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='data_ptr' type-id='cf536864' visibility='default' filepath='include/uapi/sound/asound.h' line='1094' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/sound/info.h' line='68' column='1' id='ac5ab620'>
+        <data-member access='public'>
+          <var-decl name='text' type-id='cf87b76c' visibility='default' filepath='include/sound/info.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ops' type-id='3245eba2' visibility='default' filepath='include/sound/info.h' line='70' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/kfifo.h' line='83' column='1' id='ac5ab621'>
+        <data-member access='public'>
+          <var-decl name='kfifo' type-id='bbbc6c1e' visibility='default' filepath='include/linux/kfifo.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='type' type-id='cf536864' visibility='default' filepath='include/linux/kfifo.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='const_type' type-id='354f7eb9' visibility='default' filepath='include/linux/kfifo.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='rectype' type-id='4209d6b5' visibility='default' filepath='include/linux/kfifo.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ptr' type-id='eaa32e2f' visibility='default' filepath='include/linux/kfifo.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ptr_const' type-id='eaa32e2f' visibility='default' filepath='include/linux/kfifo.h' line='83' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='480' is-anonymous='yes' visibility='default' filepath='include/linux/usb/ehci_def.h' line='130' column='1' id='ac5ab622'>
+        <data-member access='public'>
+          <var-decl name='port_status' type-id='02f7309f' visibility='default' filepath='include/linux/usb/ehci_def.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fd9' visibility='default' filepath='include/linux/usb/ehci_def.h' line='169' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='512' is-anonymous='yes' visibility='default' filepath='include/linux/usb/ehci_def.h' line='184' column='1' id='ac5ab623'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fda' visibility='default' filepath='include/linux/usb/ehci_def.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='brcm_insnreg' type-id='1c6c0c39' visibility='default' filepath='include/linux/usb/ehci_def.h' line='194' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='224' is-anonymous='yes' visibility='default' filepath='include/linux/usb/pd.h' line='197' column='1' id='ac5ab624'>
+        <data-member access='public'>
+          <var-decl name='payload' type-id='e369592a' visibility='default' filepath='include/linux/usb/pd.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ext_msg' type-id='9d90420f' visibility='default' filepath='include/linux/usb/pd.h' line='199' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/fb.h' line='481' column='1' id='ac5ab625'>
+        <data-member access='public'>
+          <var-decl name='screen_base' type-id='26a90f95' visibility='default' filepath='include/linux/fb.h' line='482' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='screen_buffer' type-id='26a90f95' visibility='default' filepath='include/linux/fb.h' line='483' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/crypto.h' line='487' column='1' id='ac5ab626'>
+        <data-member access='public'>
+          <var-decl name='cipher' type-id='208c9717' visibility='default' filepath='include/linux/crypto.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='compress' type-id='380acddc' visibility='default' filepath='include/linux/crypto.h' line='489' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='106' column='1' id='ac5ab627'>
+        <data-member access='public'>
+          <var-decl name='__reserved' type-id='7e67d89d' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='descriptor' type-id='0209ab38' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='identifier' type-id='9396cabb' visibility='default' filepath='include/uapi/linux/fscrypt.h' line='109' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='fs/iomap/direct-io.c' line='39' column='1' id='ac5ab628'>
+        <data-member access='public'>
+          <var-decl name='submit' type-id='e7f43fde' visibility='default' filepath='fs/iomap/direct-io.c' line='46' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='aio' type-id='e7f43fdf' visibility='default' filepath='fs/iomap/direct-io.c' line='51' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='fs/mount.h' line='44' column='1' id='ac5ab629'>
+        <data-member access='public'>
+          <var-decl name='mnt_rcu' type-id='e3d8ce29' visibility='default' filepath='fs/mount.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='mnt_llist' type-id='c5ccfee8' visibility='default' filepath='fs/mount.h' line='46' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='fs/mount.h' line='66' column='1' id='ac5ab62a'>
+        <data-member access='public'>
+          <var-decl name='mnt_mp_list' type-id='03a4a074' visibility='default' filepath='fs/mount.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='mnt_umount' type-id='03a4a074' visibility='default' filepath='fs/mount.h' line='68' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='fs/proc/internal.h' line='42' column='1' id='ac5ab62b'>
+        <data-member access='public'>
+          <var-decl name='proc_ops' type-id='33d70f0f' visibility='default' filepath='fs/proc/internal.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='proc_dir_ops' type-id='61758ee5' visibility='default' filepath='fs/proc/internal.h' line='44' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='fs/proc/internal.h' line='47' column='1' id='ac5ab62c'>
+        <data-member access='public'>
+          <var-decl name='seq_ops' type-id='943a1b48' visibility='default' filepath='fs/proc/internal.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='single_show' type-id='0131eb61' visibility='default' filepath='fs/proc/internal.h' line='49' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/splice.h' line='36' column='1' id='ac5ab62d'>
+        <data-member access='public'>
+          <var-decl name='userptr' type-id='eaa32e2f' visibility='default' filepath='include/linux/splice.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='file' type-id='77e79a4b' visibility='default' filepath='include/linux/splice.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/splice.h' line='39' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/asm-generic/qrwlock_types.h' line='14' column='1' id='ac5ab62e'>
+        <data-member access='public'>
+          <var-decl name='cnts' type-id='49178f86' visibility='default' filepath='include/asm-generic/qrwlock_types.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fe0' visibility='default' filepath='include/asm-generic/qrwlock_types.h' line='16' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/cred.h' line='149' column='1' id='ac5ab62f'>
+        <data-member access='public'>
+          <var-decl name='non_rcu' type-id='95e97e5e' visibility='default' filepath='include/linux/cred.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/cred.h' line='151' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/dcache.h' line='50' column='1' id='ac5ab630'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fe1' visibility='default' filepath='include/linux/dcache.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='hash_len' type-id='91ce1af9' visibility='default' filepath='include/linux/dcache.h' line='54' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='339' column='1' id='ac5ab631'>
+        <data-member access='public'>
+          <var-decl name='ki_cookie' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ki_waitq' type-id='4be56288' visibility='default' filepath='include/linux/fs.h' line='341' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='986' column='1' id='ac5ab632'>
+        <data-member access='public'>
+          <var-decl name='fu_llist' type-id='c5ccfee8' visibility='default' filepath='include/linux/fs.h' line='987' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='fu_rcuhead' type-id='e3d8ce29' visibility='default' filepath='include/linux/fs.h' line='988' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='1167' column='1' id='ac5ab633'>
+        <data-member access='public'>
+          <var-decl name='nfs_fl' type-id='17bacae5' visibility='default' filepath='include/linux/fs.h' line='1168' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='nfs4_fl' type-id='b811a3f5' visibility='default' filepath='include/linux/fs.h' line='1169' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='afs' type-id='e7f43fe2' visibility='default' filepath='include/linux/fs.h' line='1174' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/iocontext.h' line='83' column='1' id='ac5ab634'>
+        <data-member access='public'>
+          <var-decl name='q_node' type-id='72f469ec' visibility='default' filepath='include/linux/iocontext.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='__rcu_icq_cache' type-id='f3b4aca8' visibility='default' filepath='include/linux/iocontext.h' line='85' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/iocontext.h' line='87' column='1' id='ac5ab635'>
+        <data-member access='public'>
+          <var-decl name='ioc_node' type-id='03a4a074' visibility='default' filepath='include/linux/iocontext.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='__rcu_head' type-id='e3d8ce29' visibility='default' filepath='include/linux/iocontext.h' line='89' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/jump_label.h' line='102' column='1' id='ac5ab636'>
+        <data-member access='public'>
+          <var-decl name='type' type-id='7359adad' visibility='default' filepath='include/linux/jump_label.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='entries' type-id='7a35228c' visibility='default' filepath='include/linux/jump_label.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='next' type-id='c77a71ce' visibility='default' filepath='include/linux/jump_label.h' line='105' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/kernfs.h' line='148' column='1' id='ac5ab637'>
+        <data-member access='public'>
+          <var-decl name='dir' type-id='4303ca40' visibility='default' filepath='include/linux/kernfs.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='symlink' type-id='c8685ef0' visibility='default' filepath='include/linux/kernfs.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='attr' type-id='9e04468e' visibility='default' filepath='include/linux/kernfs.h' line='151' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/key.h' line='111' column='1' id='ac5ab638'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fe3' visibility='default' filepath='include/linux/key.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='x' type-id='7359adad' visibility='default' filepath='include/linux/key.h' line='121' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/key.h' line='192' column='1' id='ac5ab639'>
+        <data-member access='public'>
+          <var-decl name='graveyard_link' type-id='72f469ec' visibility='default' filepath='include/linux/key.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='serial_node' type-id='2a8a6332' visibility='default' filepath='include/linux/key.h' line='194' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/key.h' line='202' column='1' id='ac5ab63a'>
+        <data-member access='public'>
+          <var-decl name='expiry' type-id='1afd27ac' visibility='default' filepath='include/linux/key.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='revoked_at' type-id='1afd27ac' visibility='default' filepath='include/linux/key.h' line='204' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='include/linux/key.h' line='239' column='1' id='ac5ab63b'>
+        <data-member access='public'>
+          <var-decl name='index_key' type-id='16ab8749' visibility='default' filepath='include/linux/key.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fe4' visibility='default' filepath='include/linux/key.h' line='241' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/key.h' line='254' column='1' id='ac5ab63c'>
+        <data-member access='public'>
+          <var-decl name='payload' type-id='2888d74a' visibility='default' filepath='include/linux/key.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fe5' visibility='default' filepath='include/linux/key.h' line='256' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/lockref.h' line='26' column='1' id='ac5ab63d'>
+        <data-member access='public'>
+          <var-decl name='lock_count' type-id='d3130597' visibility='default' filepath='include/linux/lockref.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fe6' visibility='default' filepath='include/linux/lockref.h' line='30' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/memremap.h' line='120' column='1' id='ac5ab63e'>
+        <data-member access='public'>
+          <var-decl name='range' type-id='3fbb40da' visibility='default' filepath='include/linux/memremap.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ranges' type-id='7c4ce442' visibility='default' filepath='include/linux/memremap.h' line='122' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/mm.h' line='554' column='1' id='ac5ab63f'>
+        <data-member access='public'>
+          <var-decl name='orig_pte' type-id='4b2795fc' visibility='default' filepath='include/linux/mm.h' line='555' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='84' column='1' id='ac5ab640'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fe8' visibility='default' filepath='include/linux/mm_types.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fe9' visibility='default' filepath='include/linux/mm_types.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fea' visibility='default' filepath='include/linux/mm_types.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43feb' visibility='default' filepath='include/linux/mm_types.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fec' visibility='default' filepath='include/linux/mm_types.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fed' visibility='default' filepath='include/linux/mm_types.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fee' visibility='default' filepath='include/linux/mm_types.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/linux/mm_types.h' line='199' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='202' column='1' id='ac5ab641'>
+        <data-member access='public'>
+          <var-decl name='_mapcount' type-id='49178f86' visibility='default' filepath='include/linux/mm_types.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='page_type' type-id='f0981eeb' visibility='default' filepath='include/linux/mm_types.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='active' type-id='f0981eeb' visibility='default' filepath='include/linux/mm_types.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='units' type-id='95e97e5e' visibility='default' filepath='include/linux/mm_types.h' line='218' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='113' column='1' id='ac5ab642'>
+        <data-member access='public'>
+          <var-decl name='dma_addr_upper' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='pp_frag_count' type-id='f22a8abb' visibility='default' filepath='include/linux/mm_types.h' line='123' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='127' column='1' id='ac5ab643'>
+        <data-member access='public'>
+          <var-decl name='slab_list' type-id='72f469ec' visibility='default' filepath='include/linux/mm_types.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fef' visibility='default' filepath='include/linux/mm_types.h' line='129' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='143' column='1' id='ac5ab644'>
+        <data-member access='public'>
+          <var-decl name='s_mem' type-id='eaa32e2f' visibility='default' filepath='include/linux/mm_types.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='counters' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43ff0' visibility='default' filepath='include/linux/mm_types.h' line='146' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='172' column='1' id='ac5ab645'>
+        <data-member access='public'>
+          <var-decl name='pt_mm' type-id='df4b7819' visibility='default' filepath='include/linux/mm_types.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='pt_frag_refcount' type-id='49178f86' visibility='default' filepath='include/linux/mm_types.h' line='174' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='339' column='1' id='ac5ab646'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43ff1' visibility='default' filepath='include/linux/mm_types.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='vm_rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/mm_types.h' line='348' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='381' column='1' id='ac5ab647'>
+        <data-member access='public'>
+          <var-decl name='shared' type-id='e7f43ff2' visibility='default' filepath='include/linux/mm_types.h' line='385' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='anon_name' type-id='fb0d26e0' visibility='default' filepath='include/linux/mm_types.h' line='390' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/moduleparam.h' line='76' column='1' id='ac5ab648'>
+        <data-member access='public'>
+          <var-decl name='arg' type-id='eaa32e2f' visibility='default' filepath='include/linux/moduleparam.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='str' type-id='db4b7928' visibility='default' filepath='include/linux/moduleparam.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='arr' type-id='ffa2ea6a' visibility='default' filepath='include/linux/moduleparam.h' line='79' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/percpu-rwsem.h' line='23' column='1' id='ac5ab649'>
+        <data-member access='public'>
+          <var-decl name='waiters' type-id='b5ab048f' visibility='default' filepath='include/linux/percpu-rwsem.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='destroy_list_entry' type-id='72f469ec' visibility='default' filepath='include/linux/percpu-rwsem.h' line='25' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/linux/quota.h' line='69' column='1' id='ac5ab64a'>
+        <data-member access='public'>
+          <var-decl name='uid' type-id='d80b72e6' visibility='default' filepath='include/linux/quota.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='gid' type-id='094d8048' visibility='default' filepath='include/linux/quota.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='projid' type-id='b7cdd2f8' visibility='default' filepath='include/linux/quota.h' line='72' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='772' column='1' id='ac5ab64b'>
+        <data-member access='public'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/linux/skbuff.h' line='773' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='dev_scratch' type-id='7359adad' visibility='default' filepath='include/linux/skbuff.h' line='778' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/sysctl.h' line='144' column='1' id='ac5ab64c'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43ff9' visibility='default' filepath='include/linux/sysctl.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/sysctl.h' line='151' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/uio.h' line='42' column='1' id='ac5ab64d'>
+        <data-member access='public'>
+          <var-decl name='iov' type-id='2c556848' visibility='default' filepath='include/linux/uio.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='kvec' type-id='5199c30d' visibility='default' filepath='include/linux/uio.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='bvec' type-id='15c9a01b' visibility='default' filepath='include/linux/uio.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='xarray' type-id='60075f2a' visibility='default' filepath='include/linux/uio.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='pipe' type-id='15d29710' visibility='default' filepath='include/linux/uio.h' line='47' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/uio.h' line='49' column='1' id='ac5ab64e'>
+        <data-member access='public'>
+          <var-decl name='nr_segs' type-id='7359adad' visibility='default' filepath='include/linux/uio.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43ffa' visibility='default' filepath='include/linux/uio.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='xarray_start' type-id='69bf7bee' visibility='default' filepath='include/linux/uio.h' line='55' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/uprobes.h' line='64' column='1' id='ac5ab64f'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43ffb' visibility='default' filepath='include/linux/uprobes.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43ffc' visibility='default' filepath='include/linux/uprobes.h' line='70' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='512' is-anonymous='yes' visibility='default' filepath='include/linux/user_namespace.h' line='26' column='1' id='ac5ab650'>
+        <data-member access='public'>
+          <var-decl name='extent' type-id='df6d2206' visibility='default' filepath='include/linux/user_namespace.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43ffd' visibility='default' filepath='include/linux/user_namespace.h' line='28' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='352' is-anonymous='yes' visibility='default' filepath='include/net/inet_frag.h' line='80' column='1' id='ac5ab651'>
+        <data-member access='public'>
+          <var-decl name='v4' type-id='c3a8bbbc' visibility='default' filepath='include/net/inet_frag.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='v6' type-id='c67e16a2' visibility='default' filepath='include/net/inet_frag.h' line='82' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/in6.h' line='34' column='1' id='ac5ab652'>
+        <data-member access='public'>
+          <var-decl name='u6_addr8' type-id='9396cabb' visibility='default' filepath='include/uapi/linux/in6.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='u6_addr16' type-id='7f112b69' visibility='default' filepath='include/uapi/linux/in6.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='u6_addr32' type-id='30180d4b' visibility='default' filepath='include/uapi/linux/in6.h' line='38' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='include/linux/backing-dev-defs.h' line='163' column='1' id='ac5ab653'>
+        <data-member access='public'>
+          <var-decl name='release_work' type-id='ef9025d0' visibility='default' filepath='include/linux/backing-dev-defs.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/backing-dev-defs.h' line='165' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/fsnotify_backend.h' line='357' column='1' id='ac5ab654'>
+        <data-member access='public'>
+          <var-decl name='obj' type-id='c66f5ec5' visibility='default' filepath='include/linux/fsnotify_backend.h' line='359' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='destroy_next' type-id='994d9d61' visibility='default' filepath='include/linux/fsnotify_backend.h' line='361' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/ip.h' line='129' column='1' id='ac5ab655'>
+        <data-member access='public'>
+          <var-decl name='destructor' type-id='841969d0' visibility='default' filepath='include/net/ip.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='saved_sk' type-id='f772df6d' visibility='default' filepath='include/net/ip.h' line='131' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/netdevice.h' line='2260' column='1' id='ac5ab656'>
+        <data-member access='public'>
+          <var-decl name='lstats' type-id='a42934eb' visibility='default' filepath='include/linux/netdevice.h' line='2261' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='tstats' type-id='90cd86e5' visibility='default' filepath='include/linux/netdevice.h' line='2262' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='dstats' type-id='f59f5033' visibility='default' filepath='include/linux/netdevice.h' line='2263' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/sock.h' line='425' column='1' id='ac5ab657'>
+        <data-member access='public'>
+          <var-decl name='sk_wq' type-id='99f34ac1' visibility='default' filepath='include/net/sock.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='sk_wq_raw' type-id='99f34ac1' visibility='default' filepath='include/net/sock.h' line='428' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/sock.h' line='446' column='1' id='ac5ab658'>
+        <data-member access='public'>
+          <var-decl name='sk_send_head' type-id='0fbf3cfd' visibility='default' filepath='include/net/sock.h' line='447' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='tcp_rtx_queue' type-id='dec44472' visibility='default' filepath='include/net/sock.h' line='448' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='arch/arm64/include/asm/thread_info.h' line='29' column='1' id='ac5ab659'>
+        <data-member access='public'>
+          <var-decl name='preempt_count' type-id='91ce1af9' visibility='default' filepath='arch/arm64/include/asm/thread_info.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='preempt' type-id='e7f44004' visibility='default' filepath='arch/arm64/include/asm/thread_info.h' line='39' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/asm-generic/qspinlock_types.h' line='15' column='1' id='ac5ab65a'>
+        <data-member access='public'>
+          <var-decl name='val' type-id='49178f86' visibility='default' filepath='include/asm-generic/qspinlock_types.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f44005' visibility='default' filepath='include/asm-generic/qspinlock_types.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f44006' visibility='default' filepath='include/asm-generic/qspinlock_types.h' line='28' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='include/linux/restart_block.h' line='28' column='1' id='ac5ab65b'>
+        <data-member access='public'>
+          <var-decl name='futex' type-id='e7f44007' visibility='default' filepath='include/linux/restart_block.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='nanosleep' type-id='e7f44008' visibility='default' filepath='include/linux/restart_block.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='poll' type-id='e7f44009' visibility='default' filepath='include/linux/restart_block.h' line='55' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/restart_block.h' line='42' column='1' id='ac5ab65c'>
+        <data-member access='public'>
+          <var-decl name='rmtp' type-id='59229509' visibility='default' filepath='include/linux/restart_block.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='compat_rmtp' type-id='e69c040e' visibility='default' filepath='include/linux/restart_block.h' line='44' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/sched.h' line='1322' column='1' id='ac5ab65d'>
+        <data-member access='public'>
+          <var-decl name='rcu_users' type-id='64615833' visibility='default' filepath='include/linux/sched.h' line='1323' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/sched.h' line='1324' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/linux/smp_types.h' line='60' column='1' id='ac5ab65e'>
+        <data-member access='public'>
+          <var-decl name='u_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/smp_types.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='a_flags' type-id='49178f86' visibility='default' filepath='include/linux/smp_types.h' line='62' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/linux/spinlock_types.h' line='18' column='1' id='ac5ab65f'>
+        <data-member access='public'>
+          <var-decl name='rlock' type-id='f106d0e5' visibility='default' filepath='include/linux/spinlock_types.h' line='19' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='79' column='1' id='ac5ab660'>
+        <data-member access='public'>
+          <var-decl name='_trapno' type-id='95e97e5e' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='_addr_lsb' type-id='a2185560' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='_addr_bnd' type-id='e7f44013' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='_addr_pkey' type-id='e7f44014' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='_perf' type-id='e7f44015' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='102' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='960' is-anonymous='yes' visibility='default' filepath='include/linux/memcontrol.h' line='247' column='1' id='ac5ab661'>
+        <data-member access='public'>
+          <var-decl name='swap' type-id='635c3685' visibility='default' filepath='include/linux/memcontrol.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='memsw' type-id='635c3685' visibility='default' filepath='include/linux/memcontrol.h' line='249' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/perf_event.h' line='560' column='1' id='ac5ab662'>
+        <data-member access='public'>
+          <var-decl name='capabilities' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='561' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f44017' visibility='default' filepath='include/uapi/linux/perf_event.h' line='562' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='147' column='1' id='ac5ab663'>
+        <data-member access='public'>
+          <var-decl name='hash' type-id='03a4a074' visibility='default' filepath='include/linux/blkdev.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ipi_list' type-id='c5ccfee8' visibility='default' filepath='include/linux/blkdev.h' line='149' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='157' column='1' id='ac5ab664'>
+        <data-member access='public'>
+          <var-decl name='rb_node' type-id='2a8a6332' visibility='default' filepath='include/linux/blkdev.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='special_vec' type-id='40af3608' visibility='default' filepath='include/linux/blkdev.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='completion_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/blkdev.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='error_count' type-id='95e97e5e' visibility='default' filepath='include/linux/blkdev.h' line='161' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='170' column='1' id='ac5ab665'>
+        <data-member access='public'>
+          <var-decl name='elv' type-id='e7f44018' visibility='default' filepath='include/linux/blkdev.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='flush' type-id='e7f44019' visibility='default' filepath='include/linux/blkdev.h' line='180' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='228' column='1' id='ac5ab666'>
+        <data-member access='public'>
+          <var-decl name='csd' type-id='bb75ea85' visibility='default' filepath='include/linux/blkdev.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='fifo_time' type-id='91ce1af9' visibility='default' filepath='include/linux/blkdev.h' line='230' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/fs_context.h' line='66' column='1' id='ac5ab667'>
+        <data-member access='public'>
+          <var-decl name='string' type-id='26a90f95' visibility='default' filepath='include/linux/fs_context.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='blob' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs_context.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='name' type-id='e9d22a06' visibility='default' filepath='include/linux/fs_context.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='file' type-id='77e79a4b' visibility='default' filepath='include/linux/fs_context.h' line='70' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/fs_parser.h' line='55' column='1' id='ac5ab668'>
+        <data-member access='public'>
+          <var-decl name='boolean' type-id='b50a4934' visibility='default' filepath='include/linux/fs_parser.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='int_32' type-id='95e97e5e' visibility='default' filepath='include/linux/fs_parser.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='uint_32' type-id='f0981eeb' visibility='default' filepath='include/linux/fs_parser.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='uint_64' type-id='91ce1af9' visibility='default' filepath='include/linux/fs_parser.h' line='59' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/memcontrol.h' line='226' column='1' id='ac5ab669'>
+        <data-member access='public'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/memcontrol.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/memcontrol.h' line='228' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/tty_buffer.h' line='11' column='1' id='ac5ab66a'>
+        <data-member access='public'>
+          <var-decl name='next' type-id='a150e667' visibility='default' filepath='include/linux/tty_buffer.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='free' type-id='c5ccfee8' visibility='default' filepath='include/linux/tty_buffer.h' line='13' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/kprobes.h' line='160' column='1' id='ac5ab66b'>
+        <data-member access='public'>
+          <var-decl name='freelist' type-id='28e309d8' visibility='default' filepath='include/linux/kprobes.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/kprobes.h' line='162' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='include/linux/bpf.h' line='721' column='1' id='ac5ab66c'>
+        <data-member access='public'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/bpf.h' line='722' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/linux/bpf.h' line='723' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/bpf.h' line='883' column='1' id='ac5ab66d'>
+        <data-member access='public'>
+          <var-decl name='tail_call' type-id='e7f4401c' visibility='default' filepath='include/linux/bpf.h' line='887' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='include/linux/bpf.h' line='988' column='1' id='ac5ab66e'>
+        <data-member access='public'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/linux/bpf.h' line='989' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/bpf.h' line='990' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='364' column='1' id='ac5ab66f'>
+        <data-member access='public'>
+          <var-decl name='buf' type-id='26a90f95' visibility='default' filepath='include/linux/fs.h' line='365' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs.h' line='366' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='96' is-anonymous='yes' visibility='default' filepath='include/linux/netdevice.h' line='895' column='1' id='ac5ab670'>
+        <data-member access='public'>
+          <var-decl name='encap' type-id='e7f4401d' visibility='default' filepath='include/linux/netdevice.h' line='900' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='bridge' type-id='e7f4401e' visibility='default' filepath='include/linux/netdevice.h' line='910' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='dsa' type-id='e7f4401f' visibility='default' filepath='include/linux/netdevice.h' line='914' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/netdevice.h' line='998' column='1' id='ac5ab671'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f44020' visibility='default' filepath='include/linux/netdevice.h' line='1000' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f44021' visibility='default' filepath='include/linux/netdevice.h' line='1006' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='xsk' type-id='e7f44022' visibility='default' filepath='include/linux/netdevice.h' line='1013' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='include/linux/netlink.h' line='220' column='1' id='ac5ab672'>
+        <data-member access='public'>
+          <var-decl name='ctx' type-id='6aa9aca0' visibility='default' filepath='include/linux/netlink.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='args' type-id='613ff906' visibility='default' filepath='include/linux/netlink.h' line='226' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/socket.h' line='60' column='1' id='ac5ab673'>
+        <data-member access='public'>
+          <var-decl name='msg_control' type-id='eaa32e2f' visibility='default' filepath='include/linux/socket.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='msg_control_user' type-id='eaa32e2f' visibility='default' filepath='include/linux/socket.h' line='62' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/sockptr.h' line='15' column='1' id='ac5ab674'>
+        <data-member access='public'>
+          <var-decl name='kernel' type-id='eaa32e2f' visibility='default' filepath='include/linux/sockptr.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='user' type-id='eaa32e2f' visibility='default' filepath='include/linux/sockptr.h' line='17' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='704' is-anonymous='yes' visibility='default' filepath='include/net/flow.h' line='172' column='1' id='ac5ab675'>
+        <data-member access='public'>
+          <var-decl name='__fl_common' type-id='184ee240' visibility='default' filepath='include/net/flow.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ip4' type-id='5f8f2c58' visibility='default' filepath='include/net/flow.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ip6' type-id='618f2f7e' visibility='default' filepath='include/net/flow.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='dn' type-id='83eba552' visibility='default' filepath='include/net/flow.h' line='176' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/netlink.h' line='319' column='1' id='ac5ab676'>
+        <data-member access='public'>
+          <var-decl name='bitfield32_valid' type-id='51bb592e' visibility='default' filepath='include/net/netlink.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='mask' type-id='51bb592e' visibility='default' filepath='include/net/netlink.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='reject_message' type-id='80f4b756' visibility='default' filepath='include/net/netlink.h' line='322' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='nested_policy' type-id='109cdb66' visibility='default' filepath='include/net/netlink.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='range' type-id='fc7240d6' visibility='default' filepath='include/net/netlink.h' line='324' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='range_signed' type-id='b1aa580d' visibility='default' filepath='include/net/netlink.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f44027' visibility='default' filepath='include/net/netlink.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='validate' type-id='9c9480f6' visibility='default' filepath='include/net/netlink.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='strict_start_type' type-id='1dc6a898' visibility='default' filepath='include/net/netlink.h' line='349' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/net/sch_generic.h' line='322' column='1' id='ac5ab677'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f44028' visibility='default' filepath='include/net/sch_generic.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='goto_tp' type-id='122b71ba' visibility='default' filepath='include/net/sch_generic.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f44029' visibility='default' filepath='include/net/sch_generic.h' line='330' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/sock.h' line='166' column='1' id='ac5ab678'>
+        <data-member access='public'>
+          <var-decl name='skc_addrpair' type-id='d17a6eed' visibility='default' filepath='include/net/sock.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f4402b' visibility='default' filepath='include/net/sock.h' line='168' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/net/sock.h' line='173' column='1' id='ac5ab679'>
+        <data-member access='public'>
+          <var-decl name='skc_hash' type-id='f0981eeb' visibility='default' filepath='include/net/sock.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='skc_u16hashes' type-id='810b4a17' visibility='default' filepath='include/net/sock.h' line='175' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/net/sock.h' line='178' column='1' id='ac5ab67a'>
+        <data-member access='public'>
+          <var-decl name='skc_portpair' type-id='e7c2a649' visibility='default' filepath='include/net/sock.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f4402c' visibility='default' filepath='include/net/sock.h' line='180' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/net/sock.h' line='193' column='1' id='ac5ab67b'>
+        <data-member access='public'>
+          <var-decl name='skc_bind_node' type-id='03a4a074' visibility='default' filepath='include/net/sock.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='skc_portaddr_node' type-id='03a4a074' visibility='default' filepath='include/net/sock.h' line='195' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/sock.h' line='212' column='1' id='ac5ab67c'>
+        <data-member access='public'>
+          <var-decl name='skc_flags' type-id='7359adad' visibility='default' filepath='include/net/sock.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='skc_listener' type-id='f772df6d' visibility='default' filepath='include/net/sock.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='skc_tw_dr' type-id='b7ab21fc' visibility='default' filepath='include/net/sock.h' line='215' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/net/sock.h' line='224' column='1' id='ac5ab67d'>
+        <data-member access='public'>
+          <var-decl name='skc_node' type-id='03a4a074' visibility='default' filepath='include/net/sock.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='skc_nulls_node' type-id='5bd248e7' visibility='default' filepath='include/net/sock.h' line='226' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/net/sock.h' line='232' column='1' id='ac5ab67e'>
+        <data-member access='public'>
+          <var-decl name='skc_incoming_cpu' type-id='95e97e5e' visibility='default' filepath='include/net/sock.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='skc_rcv_wnd' type-id='19c2251e' visibility='default' filepath='include/net/sock.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='skc_tw_rcv_nxt' type-id='19c2251e' visibility='default' filepath='include/net/sock.h' line='235' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/net/sock.h' line='241' column='1' id='ac5ab67f'>
+        <data-member access='public'>
+          <var-decl name='skc_rxhash' type-id='19c2251e' visibility='default' filepath='include/net/sock.h' line='242' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='skc_window_clamp' type-id='19c2251e' visibility='default' filepath='include/net/sock.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='skc_tw_snd_nxt' type-id='19c2251e' visibility='default' filepath='include/net/sock.h' line='244' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/sock.h' line='1295' column='1' id='ac5ab680'>
+        <data-member access='public'>
+          <var-decl name='hashinfo' type-id='d7a1e3c2' visibility='default' filepath='include/net/sock.h' line='1296' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='udp_table' type-id='115daa23' visibility='default' filepath='include/net/sock.h' line='1297' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='raw_hash' type-id='eb2c56dc' visibility='default' filepath='include/net/sock.h' line='1298' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='smc_hash' type-id='aa8162a3' visibility='default' filepath='include/net/sock.h' line='1299' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1294' column='1' id='ac5ab681'>
+        <data-member access='public'>
+          <var-decl name='value' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1295' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='next_key' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1296' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1343' column='1' id='ac5ab682'>
+        <data-member access='public'>
+          <var-decl name='attach_prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1345' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='attach_btf_obj_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1347' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1394' column='1' id='ac5ab683'>
+        <data-member access='public'>
+          <var-decl name='start_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1395' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='prog_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1396' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='map_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1397' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1398' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='link_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1399' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1451' column='1' id='ac5ab684'>
+        <data-member access='public'>
+          <var-decl name='target_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1452' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='target_ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1453' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1457' column='1' id='ac5ab685'>
+        <data-member access='public'>
+          <var-decl name='target_btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1458' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f44040' visibility='default' filepath='include/uapi/linux/bpf.h' line='1459' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='perf_event' type-id='e7f44041' visibility='default' filepath='include/uapi/linux/bpf.h' line='1469' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/if.h' line='210' column='1' id='ac5ab686'>
+        <data-member access='public'>
+          <var-decl name='raw_hdlc' type-id='b3ce99dc' visibility='default' filepath='include/uapi/linux/if.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='cisco' type-id='0c90c619' visibility='default' filepath='include/uapi/linux/if.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='fr' type-id='0fd7b97e' visibility='default' filepath='include/uapi/linux/if.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='fr_pvc' type-id='fae5f6fe' visibility='default' filepath='include/uapi/linux/if.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='fr_pvc_info' type-id='a5896095' visibility='default' filepath='include/uapi/linux/if.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='x25' type-id='62a0dabf' visibility='default' filepath='include/uapi/linux/if.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='sync' type-id='85d83b09' visibility='default' filepath='include/uapi/linux/if.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='te1' type-id='08fd2ee7' visibility='default' filepath='include/uapi/linux/if.h' line='221' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/if.h' line='236' column='1' id='ac5ab687'>
+        <data-member access='public'>
+          <var-decl name='ifrn_name' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/linux/if.h' line='238' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/if.h' line='241' column='1' id='ac5ab688'>
+        <data-member access='public'>
+          <var-decl name='ifru_addr' type-id='5221b18a' visibility='default' filepath='include/uapi/linux/if.h' line='242' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ifru_dstaddr' type-id='5221b18a' visibility='default' filepath='include/uapi/linux/if.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ifru_broadaddr' type-id='5221b18a' visibility='default' filepath='include/uapi/linux/if.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ifru_netmask' type-id='5221b18a' visibility='default' filepath='include/uapi/linux/if.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ifru_hwaddr' type-id='5221b18a' visibility='default' filepath='include/uapi/linux/if.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ifru_flags' type-id='a2185560' visibility='default' filepath='include/uapi/linux/if.h' line='247' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ifru_ivalue' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/if.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ifru_mtu' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/if.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ifru_map' type-id='c6fb2ff8' visibility='default' filepath='include/uapi/linux/if.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ifru_slave' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/linux/if.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ifru_newname' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/linux/if.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ifru_data' type-id='eaa32e2f' visibility='default' filepath='include/uapi/linux/if.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ifru_settings' type-id='1cff49be' visibility='default' filepath='include/uapi/linux/if.h' line='254' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/btf.h' line='49' column='1' id='ac5ab689'>
+        <data-member access='public'>
+          <var-decl name='size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/btf.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/btf.h' line='51' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='1920' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6156' column='1' id='ac5ab68a'>
+        <data-member access='public'>
+          <var-decl name='client' type-id='e7f44078' visibility='default' filepath='include/net/cfg80211.h' line='6161' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='mesh' type-id='e7f44079' visibility='default' filepath='include/net/cfg80211.h' line='6168' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ap' type-id='e7f4407a' visibility='default' filepath='include/net/cfg80211.h' line='6173' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ibss' type-id='e7f4407b' visibility='default' filepath='include/net/cfg80211.h' line='6180' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ocb' type-id='e7f4407c' visibility='default' filepath='include/net/cfg80211.h' line='6183' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/net/xfrm.h' line='157' column='1' id='ac5ab68b'>
+        <data-member access='public'>
+          <var-decl name='gclist' type-id='03a4a074' visibility='default' filepath='include/net/xfrm.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='bydst' type-id='03a4a074' visibility='default' filepath='include/net/xfrm.h' line='159' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/sched/topology.h' line='143' column='1' id='ac5ab68c'>
+        <data-member access='public'>
+          <var-decl name='private' type-id='eaa32e2f' visibility='default' filepath='include/linux/sched/topology.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/sched/topology.h' line='145' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/interrupt.h' line='600' column='1' id='ac5ab68d'>
+        <data-member access='public'>
+          <var-decl name='func' type-id='08b16374' visibility='default' filepath='include/linux/interrupt.h' line='601' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='callback' type-id='02da239e' visibility='default' filepath='include/linux/interrupt.h' line='602' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='kernel/workqueue_internal.h' line='26' column='1' id='ac5ab68e'>
+        <data-member access='public'>
+          <var-decl name='entry' type-id='72f469ec' visibility='default' filepath='kernel/workqueue_internal.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='hentry' type-id='03a4a074' visibility='default' filepath='kernel/workqueue_internal.h' line='28' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/dynamic_debug.h' line='47' column='1' id='ac5ab68f'>
+        <data-member access='public'>
+          <var-decl name='dd_key_true' type-id='49a0ad34' visibility='default' filepath='include/linux/dynamic_debug.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='dd_key_false' type-id='237c0d27' visibility='default' filepath='include/linux/dynamic_debug.h' line='49' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/linux/ethtool.h' line='92' column='1' id='ac5ab690'>
+        <data-member access='public'>
+          <var-decl name='autoneg' type-id='0a2ee428' visibility='default' filepath='include/linux/ethtool.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='link_training' type-id='f1e6b980' visibility='default' filepath='include/linux/ethtool.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='link_logical_mismatch' type-id='164f6cd2' visibility='default' filepath='include/linux/ethtool.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='bad_signal_integrity' type-id='10b5a989' visibility='default' filepath='include/linux/ethtool.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='cable_issue' type-id='fa5fe5da' visibility='default' filepath='include/linux/ethtool.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='__link_ext_substate' type-id='19c2251e' visibility='default' filepath='include/linux/ethtool.h' line='98' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1109' column='1' id='ac5ab691'>
+        <data-member access='public'>
+          <var-decl name='rule_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1110' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='rss_context' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1111' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/xarray.h' line='1131' column='1' id='ac5ab692'>
+        <data-member access='public'>
+          <var-decl name='private_list' type-id='72f469ec' visibility='default' filepath='include/linux/xarray.h' line='1132' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/linux/xarray.h' line='1133' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/xarray.h' line='1136' column='1' id='ac5ab693'>
+        <data-member access='public'>
+          <var-decl name='tags' type-id='aa5bd681' visibility='default' filepath='include/linux/xarray.h' line='1137' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='marks' type-id='aa5bd681' visibility='default' filepath='include/linux/xarray.h' line='1138' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/cleancache.h' line='23' column='1' id='ac5ab694'>
+        <data-member access='public'>
+          <var-decl name='ino' type-id='2aa75eef' visibility='default' filepath='include/linux/cleancache.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='fh' type-id='83a783e5' visibility='default' filepath='include/linux/cleancache.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='key' type-id='5867ed7f' visibility='default' filepath='include/linux/cleancache.h' line='26' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='160' is-anonymous='yes' visibility='default' filepath='include/linux/exportfs.h' line='119' column='1' id='ac5ab695'>
+        <data-member access='public'>
+          <var-decl name='i32' type-id='e7f44046' visibility='default' filepath='include/linux/exportfs.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='udf' type-id='e7f44047' visibility='default' filepath='include/linux/exportfs.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='raw' type-id='d5016f6f' visibility='default' filepath='include/linux/exportfs.h' line='134' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/linux/posix_acl.h' line='23' column='1' id='ac5ab696'>
+        <data-member access='public'>
+          <var-decl name='e_uid' type-id='d80b72e6' visibility='default' filepath='include/linux/posix_acl.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='e_gid' type-id='094d8048' visibility='default' filepath='include/linux/posix_acl.h' line='25' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5625' column='1' id='ac5ab697'>
+        <data-member access='public'>
+          <var-decl name='raw_tracepoint' type-id='e7f4404a' visibility='default' filepath='include/uapi/linux/bpf.h' line='5629' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='tracing' type-id='e7f4404b' visibility='default' filepath='include/uapi/linux/bpf.h' line='5634' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='cgroup' type-id='e7f4404c' visibility='default' filepath='include/uapi/linux/bpf.h' line='5638' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='iter' type-id='e7f4404d' visibility='default' filepath='include/uapi/linux/bpf.h' line='5647' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='netns' type-id='e7f4404e' visibility='default' filepath='include/uapi/linux/bpf.h' line='5651' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='xdp' type-id='e7f4404f' visibility='default' filepath='include/uapi/linux/bpf.h' line='5654' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5642' column='1' id='ac5ab698'>
+        <data-member access='public'>
+          <var-decl name='map' type-id='e7f44050' visibility='default' filepath='include/uapi/linux/bpf.h' line='5645' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/igmp.h' line='74' column='1' id='ac5ab699'>
+        <data-member access='public'>
+          <var-decl name='next' type-id='26479c18' visibility='default' filepath='include/linux/igmp.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='next_rcu' type-id='26479c18' visibility='default' filepath='include/linux/igmp.h' line='76' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='96' is-anonymous='yes' visibility='default' filepath='include/net/devlink.h' line='130' column='1' id='ac5ab69a'>
+        <data-member access='public'>
+          <var-decl name='phys' type-id='d06f54f4' visibility='default' filepath='include/net/devlink.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='pci_pf' type-id='cd0b5853' visibility='default' filepath='include/net/devlink.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='pci_vf' type-id='99dcb195' visibility='default' filepath='include/net/devlink.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='pci_sf' type-id='180dc228' visibility='default' filepath='include/net/devlink.h' line='134' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/net/devlink.h' line='147' column='1' id='ac5ab69b'>
+        <data-member access='public'>
+          <var-decl name='devlink_port' type-id='f41a0030' visibility='default' filepath='include/net/devlink.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f44051' visibility='default' filepath='include/net/devlink.h' line='149' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='net/core/devlink.c' line='430' column='1' id='ac5ab69c'>
+        <data-member access='public'>
+          <var-decl name='ops' type-id='ffbf24ff' visibility='default' filepath='net/core/devlink.c' line='431' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='port_ops' type-id='bc40b4a3' visibility='default' filepath='net/core/devlink.c' line='432' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='16' is-anonymous='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='43' column='1' id='ac5ab69d'>
+        <data-member access='public'>
+          <var-decl name='all' type-id='84a5c3d4' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='tcp' type-id='e7f44054' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='udp' type-id='e7f44054' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='icmp' type-id='e7f44055' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='dccp' type-id='e7f44054' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='sctp' type-id='e7f44054' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='gre' type-id='e7f44056' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='64' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='16' is-anonymous='yes' visibility='default' filepath='include/net/flow_dissector.h' line='53' column='1' id='ac5ab69e'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f44059' visibility='default' filepath='include/net/flow_dissector.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='vlan_tci' type-id='84a5c3d4' visibility='default' filepath='include/net/flow_dissector.h' line='59' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/net/flow_dissector.h' line='172' column='1' id='ac5ab69f'>
+        <data-member access='public'>
+          <var-decl name='ports' type-id='78a133c2' visibility='default' filepath='include/net/flow_dissector.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f4405a' visibility='default' filepath='include/net/flow_dissector.h' line='174' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='include/net/flow_offload.h' line='203' column='1' id='ac5ab6a0'>
+        <data-member access='public'>
+          <var-decl name='chain_index' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/net/flow_offload.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='vlan' type-id='e7f4405b' visibility='default' filepath='include/net/flow_offload.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='mangle' type-id='e7f4405c' visibility='default' filepath='include/net/flow_offload.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='tunnel' type-id='59c68f9e' visibility='default' filepath='include/net/flow_offload.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='csum_flags' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='mark' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ptype' type-id='1dc6a898' visibility='default' filepath='include/net/flow_offload.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='priority' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='queue' type-id='e7f4405d' visibility='default' filepath='include/net/flow_offload.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='sample' type-id='e7f4405e' visibility='default' filepath='include/net/flow_offload.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='police' type-id='e7f4405f' visibility='default' filepath='include/net/flow_offload.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ct' type-id='e7f44060' visibility='default' filepath='include/net/flow_offload.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ct_metadata' type-id='e7f44061' visibility='default' filepath='include/net/flow_offload.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='mpls_push' type-id='e7f44062' visibility='default' filepath='include/net/flow_offload.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='mpls_pop' type-id='e7f44063' visibility='default' filepath='include/net/flow_offload.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='mpls_mangle' type-id='e7f44064' visibility='default' filepath='include/net/flow_offload.h' line='268' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='gate' type-id='e7f44065' visibility='default' filepath='include/net/flow_offload.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='pppoe' type-id='e7f44066' visibility='default' filepath='include/net/flow_offload.h' line='280' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='16' is-anonymous='yes' visibility='default' filepath='include/linux/ipv6.h' line='251' column='1' id='ac5ab6a1'>
+        <data-member access='public'>
+          <var-decl name='bits' type-id='e7f44067' visibility='default' filepath='include/linux/ipv6.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='all' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='270' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='513' column='1' id='ac5ab6a2'>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f44068' visibility='default' filepath='include/linux/skbuff.h' line='514' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f44069' visibility='default' filepath='include/linux/skbuff.h' line='518' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/ipv6.h' line='322' column='1' id='ac5ab6a3'>
+        <data-member access='public'>
+          <var-decl name='pid' type-id='b94e5398' visibility='default' filepath='include/net/ipv6.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='uid' type-id='d80b72e6' visibility='default' filepath='include/net/ipv6.h' line='324' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/cfg802154.h' line='233' column='1' id='ac5ab6a4'>
+        <data-member access='public'>
+          <var-decl name='short_addr' type-id='23119536' visibility='default' filepath='include/net/cfg802154.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='extended_addr' type-id='a30e8d1f' visibility='default' filepath='include/net/cfg802154.h' line='235' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='96' is-anonymous='yes' visibility='default' filepath='include/net/netfilter/nf_log.h' line='22' column='1' id='ac5ab6a5'>
+        <data-member access='public'>
+          <var-decl name='ulog' type-id='e7f44070' visibility='default' filepath='include/net/netfilter/nf_log.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='log' type-id='e7f44071' visibility='default' filepath='include/net/netfilter/nf_log.h' line='35' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='31' column='1' id='ac5ab6a6'>
+        <data-member access='public'>
+          <var-decl name='match' type-id='1ecd1044' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='target' type-id='b7f14b36' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='33' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='35' column='1' id='ac5ab6a7'>
+        <data-member access='public'>
+          <var-decl name='matchinfo' type-id='eaa32e2f' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='targinfo' type-id='eaa32e2f' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='36' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='72' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='384' column='1' id='ac5ab6a8'>
+        <data-member access='public'>
+          <var-decl name='only_20mhz' type-id='17ee5cc6' visibility='default' filepath='include/net/cfg80211.h' line='385' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='bw' type-id='e7f44073' visibility='default' filepath='include/net/cfg80211.h' line='390' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1' id='ac5ab6a9'>
+        <data-member access='public'>
+          <var-decl name='backport' type-id='040fcd9e' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f44077' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='ac5ab5e2' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='832' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6188' column='1' id='ac5ab6aa'>
+        <data-member access='public'>
+          <var-decl name='ap' type-id='e7f4407d' visibility='default' filepath='include/net/cfg80211.h' line='6192' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='client' type-id='e7f4407e' visibility='default' filepath='include/net/cfg80211.h' line='6195' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/net/xfrm.h' line='1409' column='1' id='ac5ab6ab'>
+        <data-member access='public'>
+          <var-decl name='aead' type-id='71694cb7' visibility='default' filepath='include/net/xfrm.h' line='1410' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='auth' type-id='8408b0cc' visibility='default' filepath='include/net/xfrm.h' line='1411' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='encr' type-id='9dbf2e50' visibility='default' filepath='include/net/xfrm.h' line='1412' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='comp' type-id='b9ac86db' visibility='default' filepath='include/net/xfrm.h' line='1413' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/sound/soc-topology.h' line='66' column='1' id='ac5ab6ac'>
+        <data-member access='public'>
+          <var-decl name='control' type-id='8a84fb32' visibility='default' filepath='include/sound/soc-topology.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='widget' type-id='ca569b91' visibility='default' filepath='include/sound/soc-topology.h' line='68' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/sound/soc.h' line='1111' column='1' id='ac5ab6ad'>
+        <data-member access='public'>
+          <var-decl name='dpcm_be_start' type-id='1872161b' visibility='default' filepath='include/sound/soc.h' line='1111' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fb0' visibility='default' filepath='include/sound/soc.h' line='1111' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='ac5ab5e2' visibility='default' filepath='include/sound/soc.h' line='1111' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' is-anonymous='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='228' column='1' id='ac5ab6ae'>
+        <data-member access='public'>
+          <var-decl name='uuid' type-id='ebaaecd3' visibility='default' filepath='include/uapi/sound/asoc.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='value' type-id='3ecd3c6d' visibility='default' filepath='include/uapi/sound/asoc.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='string' type-id='e9564905' visibility='default' filepath='include/uapi/sound/asoc.h' line='231' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' is-anonymous='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='242' column='1' id='ac5ab6af'>
+        <data-member access='public'>
+          <var-decl name='data' type-id='e84913bd' visibility='default' filepath='include/uapi/sound/asoc.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='array' type-id='591a7f7d' visibility='default' filepath='include/uapi/sound/asoc.h' line='244' column='1'/>
+        </data-member>
+      </union-decl>
+      <union-decl name='__anonymous_union__' size-in-bits='1024' is-anonymous='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='260' column='1' id='ac5ab6b0'>
+        <data-member access='public'>
+          <var-decl name='data' type-id='28645bde' visibility='default' filepath='include/uapi/sound/asoc.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='scale' type-id='e82b6f56' visibility='default' filepath='include/uapi/sound/asoc.h' line='262' column='1'/>
+        </data-member>
+      </union-decl>
+      <pointer-type-def type-id='b254b8db' size-in-bits='64' id='ac5f2363'/>
+      <pointer-type-def type-id='49a0ad34' size-in-bits='64' id='ac6963b2'/>
+      <pointer-type-def type-id='62c10f49' size-in-bits='64' id='ac6d3ca6'/>
+      <class-decl name='prot_inuse' size-in-bits='2048' is-struct='yes' visibility='default' filepath='net/core/sock.c' line='3483' column='1' id='ac763c5d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='val' type-id='93e41790' visibility='default' filepath='net/core/sock.c' line='3484' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='ac765b39'>
+        <parameter type-id='2ba25712'/>
+        <parameter type-id='14bde5bf'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='reset_control_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/reset-controller.h' line='18' column='1' id='ac76d92d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reset' type-id='c637b701' visibility='default' filepath='include/linux/reset-controller.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='assert' type-id='c637b701' visibility='default' filepath='include/linux/reset-controller.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='deassert' type-id='c637b701' visibility='default' filepath='include/linux/reset-controller.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='status' type-id='c637b701' visibility='default' filepath='include/linux/reset-controller.h' line='22' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='ZSTD_match_t' type-id='229ad09b' filepath='lib/zstd/zstd_internal.h' line='172' column='1' id='ac79eec6'/>
+      <typedef-decl name='__kernel_fsid_t' type-id='b5e25096' filepath='include/uapi/asm-generic/posix_types.h' line='81' column='1' id='ac895711'/>
+      <class-decl name='bpf_trampoline' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='727' column='1' id='ac8c8ac7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hlist' type-id='03a4a074' visibility='default' filepath='include/linux/bpf.h' line='729' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='include/linux/bpf.h' line='731' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/linux/bpf.h' line='732' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='key' type-id='91ce1af9' visibility='default' filepath='include/linux/bpf.h' line='733' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='func' type-id='e7f4401b' visibility='default' filepath='include/linux/bpf.h' line='738' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='extension_prog' type-id='bdcee7ae' visibility='default' filepath='include/linux/bpf.h' line='743' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='progs_hlist' type-id='fc293b5f' visibility='default' filepath='include/linux/bpf.h' line='745' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='progs_cnt' type-id='e024279b' visibility='default' filepath='include/linux/bpf.h' line='747' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='cur_image' type-id='c2123138' visibility='default' filepath='include/linux/bpf.h' line='749' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='selector' type-id='91ce1af9' visibility='default' filepath='include/linux/bpf.h' line='750' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='mod' type-id='2730d015' visibility='default' filepath='include/linux/bpf.h' line='751' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='0f042891' size-in-bits='8192' id='ac8d2c23'>
+        <subrange length='64' type-id='7ff19f0f' id='b10be967'/>
+      </array-type-def>
+      <pointer-type-def type-id='ec9f1e6a' size-in-bits='64' id='ac9d10e4'/>
+      <pointer-type-def type-id='153d6bdb' size-in-bits='64' id='ac9d827b'/>
+      <typedef-decl name='pud_t' type-id='5f20754d' filepath='include/asm-generic/pgtable-nopud.h' line='16' column='1' id='ac9f3c7e'/>
+      <function-type size-in-bits='64' id='aca12822'>
+        <parameter type-id='40b322d1'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='rps_dev_flow_table' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='707' column='1' id='aca51d4a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mask' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='708' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/netdevice.h' line='709' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='flows' type-id='11d66d65' visibility='default' filepath='include/linux/netdevice.h' line='710' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='b92c8d0d' size-in-bits='1280' id='aca5b9e5'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <pointer-type-def type-id='935923dc' size-in-bits='64' id='aca8090e'/>
+      <pointer-type-def type-id='aa112583' size-in-bits='64' id='aca8a113'/>
+      <pointer-type-def type-id='cfd499ab' size-in-bits='64' id='acada613'/>
+      <pointer-type-def type-id='7e55d788' size-in-bits='64' id='acc283aa'/>
+      <typedef-decl name='resource_size_t' type-id='2522883d' filepath='include/linux/types.h' line='158' column='1' id='acc63fdf'/>
+      <pointer-type-def type-id='16b69c18' size-in-bits='64' id='acc92962'/>
+      <qualified-type-def type-id='034e1b08' const='yes' id='acc9767b'/>
+      <pointer-type-def type-id='099df029' size-in-bits='64' id='acd39461'/>
+      <pointer-type-def type-id='094d8048' size-in-bits='64' id='acd96ee1'/>
+      <pointer-type-def type-id='51192447' size-in-bits='64' id='acda35bb'/>
+      <pointer-type-def type-id='044208ec' size-in-bits='64' id='acf1578a'/>
+      <class-decl name='audit_ntp_val' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/audit.h' line='87' column='1' id='acf879b5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='oldval' type-id='1eb56b1e' visibility='default' filepath='include/linux/audit.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='newval' type-id='1eb56b1e' visibility='default' filepath='include/linux/audit.h' line='88' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='disk_stats' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/linux/part_stat.h' line='8' column='1' id='acfd9368'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nsecs' type-id='20b279f0' visibility='default' filepath='include/linux/part_stat.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='sectors' type-id='f46d9f4d' visibility='default' filepath='include/linux/part_stat.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ios' type-id='f46d9f4d' visibility='default' filepath='include/linux/part_stat.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='merges' type-id='f46d9f4d' visibility='default' filepath='include/linux/part_stat.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='io_ticks' type-id='7359adad' visibility='default' filepath='include/linux/part_stat.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='in_flight' type-id='efa46f39' visibility='default' filepath='include/linux/part_stat.h' line='14' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b0209526' size-in-bits='64' id='ad0a69fc'/>
+      <pointer-type-def type-id='90c1df7f' size-in-bits='64' id='ad13fd93'/>
+      <pointer-type-def type-id='fd240b02' size-in-bits='64' id='ad168a80'/>
+      <function-type size-in-bits='64' id='ad20c773'>
+        <parameter type-id='b94a2f7c'/>
+        <parameter type-id='ffb3cc6e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4e9f87c2' size-in-bits='64' id='ad22f238'/>
+      <pointer-type-def type-id='7bb1ea6f' size-in-bits='64' id='ad477c6b'/>
+      <class-decl name='request_sock_ops' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/net/request_sock.h' line='27' column='1' id='ad499564'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='family' type-id='95e97e5e' visibility='default' filepath='include/net/request_sock.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='obj_size' type-id='f0981eeb' visibility='default' filepath='include/net/request_sock.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='slab' type-id='f3b4aca8' visibility='default' filepath='include/net/request_sock.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='slab_name' type-id='26a90f95' visibility='default' filepath='include/net/request_sock.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rtx_syn_ack' type-id='cd05c94e' visibility='default' filepath='include/net/request_sock.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='send_ack' type-id='d3d20d73' visibility='default' filepath='include/net/request_sock.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='send_reset' type-id='c9214b77' visibility='default' filepath='include/net/request_sock.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='destructor' type-id='b249945a' visibility='default' filepath='include/net/request_sock.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='syn_ack_timeout' type-id='29e425c9' visibility='default' filepath='include/net/request_sock.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='ad4a13f9'>
+        <parameter type-id='33c599da'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ad4c5814'>
+        <parameter type-id='b47b0d41'/>
+        <parameter type-id='8bff8096'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='drm_crtc_helper_funcs' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='61' column='1' id='ad4d49e8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dpms' type-id='a9a90075' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='prepare' type-id='a50616ee' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='commit' type-id='a50616ee' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mode_valid' type-id='8d681b98' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mode_fixup' type-id='e003b5ce' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mode_set' type-id='18901036' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='mode_set_nofb' type-id='a50616ee' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='mode_set_base' type-id='9c5c88be' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='mode_set_base_atomic' type-id='c368c2fb' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='disable' type-id='a50616ee' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='atomic_check' type-id='ebe68308' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='atomic_begin' type-id='81202b05' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='atomic_flush' type-id='81202b05' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='atomic_enable' type-id='81202b05' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='atomic_disable' type-id='81202b05' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='get_scanout_position' type-id='1ff74483' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='486' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pinctrl_map_mux' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/pinctrl/machine.h' line='33' column='1' id='ad4dd73d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='group' type-id='80f4b756' visibility='default' filepath='include/linux/pinctrl/machine.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='function' type-id='80f4b756' visibility='default' filepath='include/linux/pinctrl/machine.h' line='35' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='cgroup_freezer_state' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/cgroup-defs.h' line='342' column='1' id='ad50988b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='freeze' type-id='b50a4934' visibility='default' filepath='include/linux/cgroup-defs.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='e_freeze' type-id='95e97e5e' visibility='default' filepath='include/linux/cgroup-defs.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nr_frozen_descendants' type-id='95e97e5e' visibility='default' filepath='include/linux/cgroup-defs.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='nr_frozen_tasks' type-id='95e97e5e' visibility='default' filepath='include/linux/cgroup-defs.h' line='358' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='drm_ioctl_flags' filepath='include/drm/drm_ioctl.h' line='80' column='1' id='ad578603'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DRM_AUTH' value='1'/>
+        <enumerator name='DRM_MASTER' value='2'/>
+        <enumerator name='DRM_ROOT_ONLY' value='4'/>
+        <enumerator name='DRM_UNLOCKED' value='16'/>
+        <enumerator name='DRM_RENDER_ALLOW' value='32'/>
+      </enum-decl>
+      <class-decl name='ehci_iso_stream' size-in-bits='1024' is-struct='yes' visibility='default' filepath='drivers/usb/host/ehci.h' line='472' column='1' id='ad57f193'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hw' type-id='a3740d42' visibility='default' filepath='drivers/usb/host/ehci.h' line='474' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bEndpointAddress' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/ehci.h' line='476' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='highspeed' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/ehci.h' line='477' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='td_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/ehci.h' line='478' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='free_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/ehci.h' line='479' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ps' type-id='a60134e4' visibility='default' filepath='drivers/usb/host/ehci.h' line='482' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='next_uframe' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='483' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='splits' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='484' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='uperiod' type-id='1dc6a898' visibility='default' filepath='drivers/usb/host/ehci.h' line='489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='848'>
+          <var-decl name='maxp' type-id='1dc6a898' visibility='default' filepath='drivers/usb/host/ehci.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='bandwidth' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/ehci.h' line='491' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='buf0' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='494' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='buf1' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='495' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='buf2' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='496' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='address' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='499' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='bsg_buffer' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/bsg-lib.h' line='24' column='1' id='ad60a032'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='payload_len' type-id='f0981eeb' visibility='default' filepath='include/linux/bsg-lib.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='sg_cnt' type-id='95e97e5e' visibility='default' filepath='include/linux/bsg-lib.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sg_list' type-id='bf3ef905' visibility='default' filepath='include/linux/bsg-lib.h' line='27' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7e1ff049' size-in-bits='64' id='ad60bf5d'/>
+      <enum-decl name='typec_role' filepath='include/linux/usb/typec.h' line='51' column='1' id='ad61830a'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='TYPEC_SINK' value='0'/>
+        <enumerator name='TYPEC_SOURCE' value='1'/>
+      </enum-decl>
+      <class-decl name='task_cputime' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/sched/types.h' line='17' column='1' id='ad6873f4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='stime' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/types.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='utime' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/types.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sum_exec_runtime' type-id='0d77e947' visibility='default' filepath='include/linux/sched/types.h' line='20' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='off_t' type-id='8dda407a' filepath='include/linux/types.h' line='21' column='1' id='ad707ada'/>
+      <class-decl name='snd_soc_jack_pin' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/sound/soc-jack.h' line='19' column='1' id='ad7e730a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/sound/soc-jack.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pin' type-id='80f4b756' visibility='default' filepath='include/sound/soc-jack.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mask' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-jack.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='invert' type-id='b50a4934' visibility='default' filepath='include/sound/soc-jack.h' line='23' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='ad810f54'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='acpi_device_id' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/mod_devicetable.h' line='216' column='1' id='ad95e21b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='060772ed' visibility='default' filepath='include/linux/mod_devicetable.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='driver_data' type-id='0791d6c8' visibility='default' filepath='include/linux/mod_devicetable.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cls' type-id='3f1a6b60' visibility='default' filepath='include/linux/mod_devicetable.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='cls_msk' type-id='3f1a6b60' visibility='default' filepath='include/linux/mod_devicetable.h' line='220' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_soc_tplg_kcontrol_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/sound/soc-topology.h' line='76' column='1' id='ad974450'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='19c2251e' visibility='default' filepath='include/sound/soc-topology.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='get' type-id='8336f92e' visibility='default' filepath='include/sound/soc-topology.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='put' type-id='8336f92e' visibility='default' filepath='include/sound/soc-topology.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='info' type-id='a54793a9' visibility='default' filepath='include/sound/soc-topology.h' line='82' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='load_weight' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/sched.h' line='397' column='1' id='ad979632'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='weight' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='inv_weight' type-id='19c2251e' visibility='default' filepath='include/linux/sched.h' line='399' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mem_cgroup_threshold' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/memcontrol.h' line='158' column='1' id='ad98c82f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='eventfd' type-id='71f2e203' visibility='default' filepath='include/linux/memcontrol.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='threshold' type-id='7359adad' visibility='default' filepath='include/linux/memcontrol.h' line='160' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9e045430' size-in-bits='64' id='ad9e36e6'/>
+      <pointer-type-def type-id='4b04075e' size-in-bits='64' id='adaf1c08'/>
+      <class-decl name='smc_hashinfo' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/smc.h' line='16' column='1' id='adb1d973'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='ac16795b' visibility='default' filepath='include/net/smc.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ht' type-id='e151255a' visibility='default' filepath='include/net/smc.h' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0943811c' size-in-bits='64' id='adb7e86e'/>
+      <function-type size-in-bits='64' id='adbacf87'>
+        <parameter type-id='855e3679'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3cc19423' size-in-bits='64' id='adbc0a2b'/>
+      <function-type size-in-bits='64' id='adc533fc'>
+        <parameter type-id='5771c601'/>
+        <return type-id='7359adad'/>
+      </function-type>
+      <pointer-type-def type-id='fef1be32' size-in-bits='64' id='adccc7b0'/>
+      <function-type size-in-bits='64' id='add29d6f'>
+        <parameter type-id='51a94113'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='01b4845e'/>
+      </function-type>
+      <qualified-type-def type-id='6119d604' const='yes' id='add714bf'/>
+      <pointer-type-def type-id='476ef610' size-in-bits='64' id='addd4a1a'/>
+      <pointer-type-def type-id='a15f21bb' size-in-bits='64' id='ade1e67f'/>
+      <pointer-type-def type-id='1302297b' size-in-bits='64' id='adec6207'/>
+      <pointer-type-def type-id='51bb592e' size-in-bits='64' id='aded214c'/>
+      <qualified-type-def type-id='014e0a24' const='yes' id='adff645d'/>
+      <class-decl name='trace_array_cpu' size-in-bits='1024' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='154' column='1' id='adff6731'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='disabled' type-id='49178f86' visibility='default' filepath='kernel/trace/trace.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='buffer_page' type-id='eaa32e2f' visibility='default' filepath='kernel/trace/trace.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='entries' type-id='7359adad' visibility='default' filepath='kernel/trace/trace.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='saved_latency' type-id='7359adad' visibility='default' filepath='kernel/trace/trace.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='critical_start' type-id='7359adad' visibility='default' filepath='kernel/trace/trace.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='critical_end' type-id='7359adad' visibility='default' filepath='kernel/trace/trace.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='critical_sequence' type-id='7359adad' visibility='default' filepath='kernel/trace/trace.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='nice' type-id='7359adad' visibility='default' filepath='kernel/trace/trace.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='policy' type-id='7359adad' visibility='default' filepath='kernel/trace/trace.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='rt_priority' type-id='7359adad' visibility='default' filepath='kernel/trace/trace.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='skipped_entries' type-id='7359adad' visibility='default' filepath='kernel/trace/trace.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='preempt_timestamp' type-id='91ce1af9' visibility='default' filepath='kernel/trace/trace.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='pid' type-id='587f89d2' visibility='default' filepath='kernel/trace/trace.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='uid' type-id='d80b72e6' visibility='default' filepath='kernel/trace/trace.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='comm' type-id='ac1fa8c0' visibility='default' filepath='kernel/trace/trace.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='ignore_pid' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='175' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_vbi_format' size-in-bits='352' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2127' column='1' id='ae01ca89'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sampling_rate' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='offset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='samples_per_line' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='sample_format' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='start' type-id='e5d37c7b' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='count' type-id='839e8989' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='reserved' type-id='839e8989' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2135' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5a9e3f68' size-in-bits='64' id='ae02292a'/>
+      <array-type-def dimensions='1' type-id='def413c9' size-in-bits='infinite' id='ae08da59'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='4a3a50c4' size-in-bits='64' id='ae0aa6a2'/>
+      <class-decl name='devlink_health_reporter' size-in-bits='1344' is-struct='yes' visibility='default' filepath='net/core/devlink.c' line='6644' column='1' id='ae166e71'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='net/core/devlink.c' line='6645' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='net/core/devlink.c' line='6646' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ops' type-id='6af1ec35' visibility='default' filepath='net/core/devlink.c' line='6647' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='devlink' type-id='e6b84692' visibility='default' filepath='net/core/devlink.c' line='6648' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='devlink_port' type-id='f41a0030' visibility='default' filepath='net/core/devlink.c' line='6649' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dump_fmsg' type-id='2d44fb50' visibility='default' filepath='net/core/devlink.c' line='6650' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='dump_lock' type-id='925167dc' visibility='default' filepath='net/core/devlink.c' line='6651' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='graceful_period' type-id='91ce1af9' visibility='default' filepath='net/core/devlink.c' line='6652' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='auto_recover' type-id='b50a4934' visibility='default' filepath='net/core/devlink.c' line='6653' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='904'>
+          <var-decl name='auto_dump' type-id='b50a4934' visibility='default' filepath='net/core/devlink.c' line='6654' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='912'>
+          <var-decl name='health_state' type-id='f9b06939' visibility='default' filepath='net/core/devlink.c' line='6655' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='dump_ts' type-id='91ce1af9' visibility='default' filepath='net/core/devlink.c' line='6656' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='dump_real_ts' type-id='91ce1af9' visibility='default' filepath='net/core/devlink.c' line='6657' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='error_count' type-id='91ce1af9' visibility='default' filepath='net/core/devlink.c' line='6658' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='recovery_count' type-id='91ce1af9' visibility='default' filepath='net/core/devlink.c' line='6659' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='last_recovery_ts' type-id='91ce1af9' visibility='default' filepath='net/core/devlink.c' line='6660' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='refcount' type-id='64615833' visibility='default' filepath='net/core/devlink.c' line='6661' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='edae512d' size-in-bits='64' id='ae17b581'/>
+      <pointer-type-def type-id='59145b91' size-in-bits='64' id='ae18a37d'/>
+      <array-type-def dimensions='1' type-id='2ae08426' size-in-bits='256' id='ae25b7bc'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='ae26a81a'>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='bd54fe1a'/>
+        <parameter type-id='4616a179'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ae2eaa42'>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <pointer-type-def type-id='b96825af' size-in-bits='64' id='ae3e8ca6'/>
+      <pointer-type-def type-id='ccf6c819' size-in-bits='64' id='ae4d1761'/>
+      <pointer-type-def type-id='cf536864' size-in-bits='64' id='ae4d32ca'/>
+      <pointer-type-def type-id='e95f6825' size-in-bits='64' id='ae4f2ad5'/>
+      <function-type size-in-bits='64' id='ae542eb6'>
+        <parameter type-id='8582e5ec'/>
+        <parameter type-id='67bbaeda'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='1a494567' size-in-bits='64' id='ae581837'/>
+      <function-type size-in-bits='64' id='ae5a8333'>
+        <parameter type-id='02f11ed4'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='drm_modeset_lock' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/drm/drm_modeset_lock.h' line='76' column='1' id='ae5fc04a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mutex' type-id='45793a97' visibility='default' filepath='include/drm/drm_modeset_lock.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='head' type-id='72f469ec' visibility='default' filepath='include/drm/drm_modeset_lock.h' line='86' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d6b2bd0c' size-in-bits='64' id='ae670bfa'/>
+      <pointer-type-def type-id='52e7eff9' size-in-bits='64' id='ae675015'/>
+      <pointer-type-def type-id='105b52f0' size-in-bits='64' id='ae6a6d9a'/>
+      <pointer-type-def type-id='5a69ad33' size-in-bits='64' id='ae6f24b7'/>
+      <pointer-type-def type-id='058f39c4' size-in-bits='64' id='ae7831aa'/>
+      <pointer-type-def type-id='a6d40256' size-in-bits='64' id='ae795a50'/>
+      <class-decl name='snd_usb_endpoint' size-in-bits='46144' is-struct='yes' visibility='default' filepath='sound/usb/card.h' line='64' column='1' id='ae79630f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='chip' type-id='d86551c2' visibility='default' filepath='sound/usb/card.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='iface_ref' type-id='185a7728' visibility='default' filepath='sound/usb/card.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='opened' type-id='95e97e5e' visibility='default' filepath='sound/usb/card.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='running' type-id='49178f86' visibility='default' filepath='sound/usb/card.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ep_num' type-id='95e97e5e' visibility='default' filepath='sound/usb/card.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='type' type-id='95e97e5e' visibility='default' filepath='sound/usb/card.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='iface' type-id='002ac4a6' visibility='default' filepath='sound/usb/card.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='264'>
+          <var-decl name='altsetting' type-id='002ac4a6' visibility='default' filepath='sound/usb/card.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='ep_idx' type-id='002ac4a6' visibility='default' filepath='sound/usb/card.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='state' type-id='49178f86' visibility='default' filepath='sound/usb/card.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='prepare_data_urb' type-id='b2b04204' visibility='default' filepath='sound/usb/card.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='retire_data_urb' type-id='5ae15890' visibility='default' filepath='sound/usb/card.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='data_subs' type-id='6b1642ae' visibility='default' filepath='sound/usb/card.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='sync_source' type-id='d59ce2e7' visibility='default' filepath='sound/usb/card.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='sync_sink' type-id='d59ce2e7' visibility='default' filepath='sound/usb/card.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='urb' type-id='d6500b03' visibility='default' filepath='sound/usb/card.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25216'>
+          <var-decl name='next_packet' type-id='d6640cfa' visibility='default' filepath='sound/usb/card.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44032'>
+          <var-decl name='next_packet_head' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44064'>
+          <var-decl name='next_packet_queued' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44096'>
+          <var-decl name='ready_playback_urbs' type-id='72f469ec' visibility='default' filepath='sound/usb/card.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44224'>
+          <var-decl name='nurbs' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44288'>
+          <var-decl name='active_mask' type-id='7359adad' visibility='default' filepath='sound/usb/card.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44352'>
+          <var-decl name='unlink_mask' type-id='7359adad' visibility='default' filepath='sound/usb/card.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44416'>
+          <var-decl name='submitted_urbs' type-id='49178f86' visibility='default' filepath='sound/usb/card.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44480'>
+          <var-decl name='syncbuf' type-id='26a90f95' visibility='default' filepath='sound/usb/card.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44544'>
+          <var-decl name='sync_dma' type-id='cf29c9b3' visibility='default' filepath='sound/usb/card.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44608'>
+          <var-decl name='pipe' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44640'>
+          <var-decl name='packsize' type-id='0d532ec1' visibility='default' filepath='sound/usb/card.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44704'>
+          <var-decl name='sample_rem' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44736'>
+          <var-decl name='sample_accum' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44768'>
+          <var-decl name='pps' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44800'>
+          <var-decl name='freqn' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44832'>
+          <var-decl name='freqm' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44864'>
+          <var-decl name='freqshift' type-id='95e97e5e' visibility='default' filepath='sound/usb/card.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44896'>
+          <var-decl name='freqmax' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44928'>
+          <var-decl name='phase' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44960'>
+          <var-decl name='maxpacksize' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44992'>
+          <var-decl name='maxframesize' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45024'>
+          <var-decl name='max_urb_frames' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45056'>
+          <var-decl name='curpacksize' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45088'>
+          <var-decl name='curframesize' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45120'>
+          <var-decl name='syncmaxsize' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45152'>
+          <var-decl name='fill_max' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45153'>
+          <var-decl name='tenor_fb_quirk' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45184'>
+          <var-decl name='datainterval' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45216'>
+          <var-decl name='syncinterval' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45248'>
+          <var-decl name='silence_value' type-id='002ac4a6' visibility='default' filepath='sound/usb/card.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45280'>
+          <var-decl name='stride' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45312'>
+          <var-decl name='skip_packets' type-id='95e97e5e' visibility='default' filepath='sound/usb/card.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45344'>
+          <var-decl name='implicit_fb_sync' type-id='b50a4934' visibility='default' filepath='sound/usb/card.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45352'>
+          <var-decl name='lowlatency_playback' type-id='b50a4934' visibility='default' filepath='sound/usb/card.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45360'>
+          <var-decl name='need_setup' type-id='b50a4934' visibility='default' filepath='sound/usb/card.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45376'>
+          <var-decl name='cur_audiofmt' type-id='836adb0d' visibility='default' filepath='sound/usb/card.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45440'>
+          <var-decl name='cur_rate' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45472'>
+          <var-decl name='cur_format' type-id='67fa9bd5' visibility='default' filepath='sound/usb/card.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45504'>
+          <var-decl name='cur_channels' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45536'>
+          <var-decl name='cur_frame_bytes' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45568'>
+          <var-decl name='cur_period_frames' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45600'>
+          <var-decl name='cur_period_bytes' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45632'>
+          <var-decl name='cur_buffer_periods' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45664'>
+          <var-decl name='cur_clock' type-id='002ac4a6' visibility='default' filepath='sound/usb/card.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45696'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='sound/usb/card.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45760'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='sound/usb/card.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45888'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='sound/usb/card.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45952'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='sound/usb/card.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='46016'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='sound/usb/card.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='46080'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='sound/usb/card.h' line='151' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='miscdevice' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/miscdevice.h' line='79' column='1' id='ae7d199f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='minor' type-id='95e97e5e' visibility='default' filepath='include/linux/miscdevice.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/miscdevice.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fops' type-id='61758ee5' visibility='default' filepath='include/linux/miscdevice.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/miscdevice.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='parent' type-id='fa0b179b' visibility='default' filepath='include/linux/miscdevice.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='this_device' type-id='fa0b179b' visibility='default' filepath='include/linux/miscdevice.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='groups' type-id='c97de1ac' visibility='default' filepath='include/linux/miscdevice.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='nodename' type-id='80f4b756' visibility='default' filepath='include/linux/miscdevice.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='mode' type-id='2594b00f' visibility='default' filepath='include/linux/miscdevice.h' line='88' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='rc_map_table' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/media/rc-map.h' line='140' column='1' id='ae855994'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='scancode' type-id='91ce1af9' visibility='default' filepath='include/media/rc-map.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='keycode' type-id='19c2251e' visibility='default' filepath='include/media/rc-map.h' line='142' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='kernfs_ops' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/linux/kernfs.h' line='234' column='1' id='ae89b201'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='open' type-id='964d2eb6' visibility='default' filepath='include/linux/kernfs.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='release' type-id='f1825e09' visibility='default' filepath='include/linux/kernfs.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='seq_show' type-id='0131eb61' visibility='default' filepath='include/linux/kernfs.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='seq_start' type-id='a46b05a0' visibility='default' filepath='include/linux/kernfs.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='seq_next' type-id='b6ba26fa' visibility='default' filepath='include/linux/kernfs.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='seq_stop' type-id='6ba28d1c' visibility='default' filepath='include/linux/kernfs.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='read' type-id='17b1add7' visibility='default' filepath='include/linux/kernfs.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='atomic_write_len' type-id='b59d7dce' visibility='default' filepath='include/linux/kernfs.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='prealloc' type-id='b50a4934' visibility='default' filepath='include/linux/kernfs.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='write' type-id='17b1add7' visibility='default' filepath='include/linux/kernfs.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='poll' type-id='b347e5ac' visibility='default' filepath='include/linux/kernfs.h' line='280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='mmap' type-id='f9e738c5' visibility='default' filepath='include/linux/kernfs.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/kernfs.h' line='289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/kernfs.h' line='290' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='sk_buff' size-in-bits='1920' is-struct='yes' visibility='default' filepath='include/linux/skbuff.h' line='765' column='1' id='ae8bfcdd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab5b0' visibility='default' filepath='include/linux/skbuff.h' line='766' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='' type-id='ac5ab5b1' visibility='default' filepath='include/linux/skbuff.h' line='785' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='' type-id='ac5ab5b2' visibility='default' filepath='include/linux/skbuff.h' line='790' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='cb' type-id='36d7f119' visibility='default' filepath='include/linux/skbuff.h' line='800' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='' type-id='ac5ab5b3' visibility='default' filepath='include/linux/skbuff.h' line='802' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='_nfct' type-id='7359adad' visibility='default' filepath='include/linux/skbuff.h' line='814' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='len' type-id='f0981eeb' visibility='default' filepath='include/linux/skbuff.h' line='816' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='data_len' type-id='f0981eeb' visibility='default' filepath='include/linux/skbuff.h' line='817' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='mac_len' type-id='d315442e' visibility='default' filepath='include/linux/skbuff.h' line='818' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='976'>
+          <var-decl name='hdr_len' type-id='d315442e' visibility='default' filepath='include/linux/skbuff.h' line='819' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='queue_mapping' type-id='d315442e' visibility='default' filepath='include/linux/skbuff.h' line='824' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1008'>
+          <var-decl name='__cloned_offset' type-id='167619f6' visibility='default' filepath='include/linux/skbuff.h' line='835' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1008'>
+          <var-decl name='cloned' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='837' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1009'>
+          <var-decl name='nohdr' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='838' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1010'>
+          <var-decl name='fclone' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='839' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1012'>
+          <var-decl name='peeked' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='840' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1013'>
+          <var-decl name='head_frag' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='841' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1014'>
+          <var-decl name='pfmemalloc' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='842' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1015'>
+          <var-decl name='pp_recycle' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='843' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1016'>
+          <var-decl name='active_extensions' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='845' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='headers_start' type-id='d5016f6f' visibility='default' filepath='include/linux/skbuff.h' line='852' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='__pkt_type_offset' type-id='167619f6' visibility='default' filepath='include/linux/skbuff.h' line='864' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='pkt_type' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='866' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1027'>
+          <var-decl name='ignore_df' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='867' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1028'>
+          <var-decl name='nf_trace' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='868' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1029'>
+          <var-decl name='ip_summed' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='869' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1031'>
+          <var-decl name='ooo_okay' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='870' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1032'>
+          <var-decl name='l4_hash' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='872' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1033'>
+          <var-decl name='sw_hash' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='873' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1034'>
+          <var-decl name='wifi_acked_valid' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='874' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1035'>
+          <var-decl name='wifi_acked' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='875' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1036'>
+          <var-decl name='no_fcs' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='876' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1037'>
+          <var-decl name='encapsulation' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='878' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1038'>
+          <var-decl name='encap_hdr_csum' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='879' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1039'>
+          <var-decl name='csum_valid' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='880' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1040'>
+          <var-decl name='__pkt_vlan_present_offset' type-id='167619f6' visibility='default' filepath='include/linux/skbuff.h' line='889' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1040'>
+          <var-decl name='vlan_present' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='891' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1041'>
+          <var-decl name='csum_complete_sw' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='892' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1042'>
+          <var-decl name='csum_level' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='893' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1044'>
+          <var-decl name='csum_not_inet' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='894' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1045'>
+          <var-decl name='dst_pending_confirm' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='895' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1046'>
+          <var-decl name='ndisc_nodetype' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='897' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1048'>
+          <var-decl name='ipvs_property' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='900' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1049'>
+          <var-decl name='inner_protocol_type' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='901' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1050'>
+          <var-decl name='remcsum_offload' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='902' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1051'>
+          <var-decl name='tc_skip_classify' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='908' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1052'>
+          <var-decl name='tc_at_ingress' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='909' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1053'>
+          <var-decl name='redirected' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='911' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1054'>
+          <var-decl name='from_ingress' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='913' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1055'>
+          <var-decl name='slow_gro' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='918' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='tc_index' type-id='d315442e' visibility='default' filepath='include/linux/skbuff.h' line='921' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='' type-id='ac5ab5b4' visibility='default' filepath='include/linux/skbuff.h' line='924' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='priority' type-id='3f1a6b60' visibility='default' filepath='include/linux/skbuff.h' line='931' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='skb_iif' type-id='95e97e5e' visibility='default' filepath='include/linux/skbuff.h' line='932' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='hash' type-id='3f1a6b60' visibility='default' filepath='include/linux/skbuff.h' line='933' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='vlan_proto' type-id='84a5c3d4' visibility='default' filepath='include/linux/skbuff.h' line='934' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1232'>
+          <var-decl name='vlan_tci' type-id='d315442e' visibility='default' filepath='include/linux/skbuff.h' line='935' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='' type-id='ac5ab5b5' visibility='default' filepath='include/linux/skbuff.h' line='937' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='secmark' type-id='3f1a6b60' visibility='default' filepath='include/linux/skbuff.h' line='943' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='' type-id='ac5ab5b6' visibility='default' filepath='include/linux/skbuff.h' line='946' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='' type-id='ac5ab5b7' visibility='default' filepath='include/linux/skbuff.h' line='951' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1360'>
+          <var-decl name='inner_transport_header' type-id='d315442e' visibility='default' filepath='include/linux/skbuff.h' line='956' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='inner_network_header' type-id='d315442e' visibility='default' filepath='include/linux/skbuff.h' line='957' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1392'>
+          <var-decl name='inner_mac_header' type-id='d315442e' visibility='default' filepath='include/linux/skbuff.h' line='958' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='protocol' type-id='84a5c3d4' visibility='default' filepath='include/linux/skbuff.h' line='960' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1424'>
+          <var-decl name='transport_header' type-id='d315442e' visibility='default' filepath='include/linux/skbuff.h' line='961' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='network_header' type-id='d315442e' visibility='default' filepath='include/linux/skbuff.h' line='962' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1456'>
+          <var-decl name='mac_header' type-id='d315442e' visibility='default' filepath='include/linux/skbuff.h' line='963' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='headers_end' type-id='d5016f6f' visibility='default' filepath='include/linux/skbuff.h' line='970' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='' type-id='ac5ab5b8' visibility='default' filepath='include/linux/skbuff.h' line='985' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/skbuff.h' line='992' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='tail' type-id='5c1abc34' visibility='default' filepath='include/linux/skbuff.h' line='995' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1632'>
+          <var-decl name='end' type-id='5c1abc34' visibility='default' filepath='include/linux/skbuff.h' line='996' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='head' type-id='cf536864' visibility='default' filepath='include/linux/skbuff.h' line='997' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='data' type-id='cf536864' visibility='default' filepath='include/linux/skbuff.h' line='998' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='truesize' type-id='f0981eeb' visibility='default' filepath='include/linux/skbuff.h' line='999' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1824'>
+          <var-decl name='users' type-id='64615833' visibility='default' filepath='include/linux/skbuff.h' line='1000' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='extensions' type-id='374692c7' visibility='default' filepath='include/linux/skbuff.h' line='1004' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ieee80211_eht_mcs_nss_supp' size-in-bits='72' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='383' column='1' id='ae96296b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab6a8' visibility='default' filepath='include/net/cfg80211.h' line='384' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0286989c' size-in-bits='64' id='ae9790c6'/>
+      <pointer-type-def type-id='27365fde' size-in-bits='64' id='ae990d1c'/>
+      <function-type size-in-bits='64' id='ae99f6b5'>
+        <parameter type-id='8582e5ec'/>
+        <parameter type-id='745b39e8'/>
+        <parameter type-id='11e02f83'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='7e3d05b5' size-in-bits='64' id='aea1d5b5'/>
+      <pointer-type-def type-id='8e42c936' size-in-bits='64' id='aea90108'/>
+      <typedef-decl name='ZSTD_CCtx' type-id='dcc3dee3' filepath='include/linux/zstd.h' line='230' column='1' id='aea9050e'/>
+      <function-type size-in-bits='64' id='aeac61b0'>
+        <parameter type-id='15b1f129'/>
+        <parameter type-id='0a19b04e'/>
+        <parameter type-id='c2d135ef'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3bf7d5b1' size-in-bits='64' id='aeae13b9'/>
+      <function-type size-in-bits='64' id='aeb2e301'>
+        <parameter type-id='15b1f129'/>
+        <parameter type-id='c2d135ef'/>
+        <parameter type-id='551eebc9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='neigh_table' size-in-bits='4544' is-struct='yes' visibility='default' filepath='include/net/neighbour.h' line='200' column='1' id='aebe1cff'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='family' type-id='95e97e5e' visibility='default' filepath='include/net/neighbour.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='entry_size' type-id='f0981eeb' visibility='default' filepath='include/net/neighbour.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='key_len' type-id='f0981eeb' visibility='default' filepath='include/net/neighbour.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='protocol' type-id='84a5c3d4' visibility='default' filepath='include/net/neighbour.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hash' type-id='f60e04ee' visibility='default' filepath='include/net/neighbour.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='key_eq' type-id='8fbb31d1' visibility='default' filepath='include/net/neighbour.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='constructor' type-id='8eff9c66' visibility='default' filepath='include/net/neighbour.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='pconstructor' type-id='9264da33' visibility='default' filepath='include/net/neighbour.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='pdestructor' type-id='5c4c6144' visibility='default' filepath='include/net/neighbour.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='proxy_redo' type-id='0ef96694' visibility='default' filepath='include/net/neighbour.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='is_multicast' type-id='b9b212f5' visibility='default' filepath='include/net/neighbour.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='allow_add' type-id='6ade418d' visibility='default' filepath='include/net/neighbour.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='id' type-id='26a90f95' visibility='default' filepath='include/net/neighbour.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='parms' type-id='1429eee4' visibility='default' filepath='include/net/neighbour.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='parms_list' type-id='72f469ec' visibility='default' filepath='include/net/neighbour.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='gc_interval' type-id='95e97e5e' visibility='default' filepath='include/net/neighbour.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2080'>
+          <var-decl name='gc_thresh1' type-id='95e97e5e' visibility='default' filepath='include/net/neighbour.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='gc_thresh2' type-id='95e97e5e' visibility='default' filepath='include/net/neighbour.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2144'>
+          <var-decl name='gc_thresh3' type-id='95e97e5e' visibility='default' filepath='include/net/neighbour.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='last_flush' type-id='7359adad' visibility='default' filepath='include/net/neighbour.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='gc_work' type-id='5ad6e0ef' visibility='default' filepath='include/net/neighbour.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='proxy_timer' type-id='abe41e67' visibility='default' filepath='include/net/neighbour.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='proxy_queue' type-id='e61c85d0' visibility='default' filepath='include/net/neighbour.h' line='226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='entries' type-id='49178f86' visibility='default' filepath='include/net/neighbour.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4000'>
+          <var-decl name='gc_entries' type-id='49178f86' visibility='default' filepath='include/net/neighbour.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='gc_list' type-id='72f469ec' visibility='default' filepath='include/net/neighbour.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='lock' type-id='ac16795b' visibility='default' filepath='include/net/neighbour.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='last_rand' type-id='7359adad' visibility='default' filepath='include/net/neighbour.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='stats' type-id='3a0389d8' visibility='default' filepath='include/net/neighbour.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='nht' type-id='0d378d14' visibility='default' filepath='include/net/neighbour.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='phash_buckets' type-id='62c51a1d' visibility='default' filepath='include/net/neighbour.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4480'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/neighbour.h' line='236' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ieee802154_hw_addr_filt' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/mac802154.h' line='53' column='1' id='aebf0935'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pan_id' type-id='23119536' visibility='default' filepath='include/net/mac802154.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='short_addr' type-id='23119536' visibility='default' filepath='include/net/mac802154.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ieee_addr' type-id='a30e8d1f' visibility='default' filepath='include/net/mac802154.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pan_coord' type-id='b50a4934' visibility='default' filepath='include/net/mac802154.h' line='57' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/uuid.h' line='23' column='1' id='aebfbcef' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='b' type-id='9396cabb' visibility='default' filepath='include/uapi/linux/uuid.h' line='24' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='15d562ba' size-in-bits='64' id='aec2c278'/>
+      <class-decl name='uart_8250_dma' size-in-bits='2176' is-struct='yes' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='17' column='1' id='aec34ed8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tx_dma' type-id='58f84083' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rx_dma' type-id='58f84083' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fn' type-id='55f53546' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rx_param' type-id='eaa32e2f' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='tx_param' type-id='eaa32e2f' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='rxconf' type-id='d356829c' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='txconf' type-id='d356829c' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='rxchan' type-id='27f3f5d8' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='txchan' type-id='27f3f5d8' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='rx_dma_addr' type-id='2522883d' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='tx_dma_addr' type-id='2522883d' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='rx_addr' type-id='cf29c9b3' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='tx_addr' type-id='cf29c9b3' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='rx_cookie' type-id='6478ea0a' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1888'>
+          <var-decl name='tx_cookie' type-id='6478ea0a' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='rx_buf' type-id='eaa32e2f' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='rx_size' type-id='b59d7dce' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='tx_size' type-id='b59d7dce' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='tx_running' type-id='002ac4a6' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2120'>
+          <var-decl name='tx_err' type-id='002ac4a6' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2128'>
+          <var-decl name='rx_running' type-id='002ac4a6' visibility='default' filepath='drivers/tty/serial/8250/8250.h' line='51' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='aec72305'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='7292109c'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='f772df6d'/>
+      </function-type>
+      <pointer-type-def type-id='a2b102f9' size-in-bits='64' id='aec87d1d'/>
+      <pointer-type-def type-id='27b6d100' size-in-bits='64' id='aecb451e'/>
+      <pointer-type-def type-id='51edb62f' size-in-bits='64' id='aecbf18b'/>
+      <function-type size-in-bits='64' id='aecc739e'>
+        <parameter type-id='ecb0ce18'/>
+        <parameter type-id='6f074813'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='v4l2_clip' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1187' column='1' id='aecf225c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='c' type-id='3dbd4e78' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='next' type-id='db634b6a' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1189' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9d9f3e8b' size-in-bits='64' id='aecf9817'/>
+      <pointer-type-def type-id='a79c760e' size-in-bits='64' id='aed2baa8'/>
+      <qualified-type-def type-id='fd1fa73c' const='yes' id='aed6b757'/>
+      <pointer-type-def type-id='66f1e832' size-in-bits='64' id='aede2cf0'/>
+      <class-decl name='typec_mux_desc' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/usb/typec_mux.h' line='52' column='1' id='aee21e2d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fwnode' type-id='4a935625' visibility='default' filepath='include/linux/usb/typec_mux.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='set' type-id='43788717' visibility='default' filepath='include/linux/usb/typec_mux.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/usb/typec_mux.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='drvdata' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb/typec_mux.h' line='56' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='aee29222'>
+        <parameter type-id='29af9a71'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='rx_handler_result' filepath='include/linux/netdevice.h' line='433' column='1' id='aee6711b'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='RX_HANDLER_CONSUMED' value='0'/>
+        <enumerator name='RX_HANDLER_ANOTHER' value='1'/>
+        <enumerator name='RX_HANDLER_EXACT' value='2'/>
+        <enumerator name='RX_HANDLER_PASS' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='3f9037c9' size-in-bits='64' id='aef0224d'/>
+      <pointer-type-def type-id='e32a3610' size-in-bits='64' id='aef13606'/>
+      <pointer-type-def type-id='3390cea8' size-in-bits='64' id='aef516a6'/>
+      <class-decl name='qc_dqblk' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/linux/quota.h' line='349' column='1' id='aef83a98'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='d_fieldmask' type-id='95e97e5e' visibility='default' filepath='include/linux/quota.h' line='350' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='d_spc_hardlimit' type-id='91ce1af9' visibility='default' filepath='include/linux/quota.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='d_spc_softlimit' type-id='91ce1af9' visibility='default' filepath='include/linux/quota.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='d_ino_hardlimit' type-id='91ce1af9' visibility='default' filepath='include/linux/quota.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='d_ino_softlimit' type-id='91ce1af9' visibility='default' filepath='include/linux/quota.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='d_space' type-id='91ce1af9' visibility='default' filepath='include/linux/quota.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='d_ino_count' type-id='91ce1af9' visibility='default' filepath='include/linux/quota.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='d_ino_timer' type-id='9b7c55ef' visibility='default' filepath='include/linux/quota.h' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='d_spc_timer' type-id='9b7c55ef' visibility='default' filepath='include/linux/quota.h' line='359' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='d_ino_warns' type-id='95e97e5e' visibility='default' filepath='include/linux/quota.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='d_spc_warns' type-id='95e97e5e' visibility='default' filepath='include/linux/quota.h' line='361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='d_rt_spc_hardlimit' type-id='91ce1af9' visibility='default' filepath='include/linux/quota.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='d_rt_spc_softlimit' type-id='91ce1af9' visibility='default' filepath='include/linux/quota.h' line='363' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='d_rt_space' type-id='91ce1af9' visibility='default' filepath='include/linux/quota.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='d_rt_spc_timer' type-id='9b7c55ef' visibility='default' filepath='include/linux/quota.h' line='365' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='d_rt_spc_warns' type-id='95e97e5e' visibility='default' filepath='include/linux/quota.h' line='366' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='aefe43a8'>
+        <parameter type-id='7544e824'/>
+        <parameter type-id='a9bcccf8'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='92c8fea6' size-in-bits='64' id='aefee0d0'/>
+      <pointer-type-def type-id='ac9f3c7e' size-in-bits='64' id='af00e73d'/>
+      <pointer-type-def type-id='bde36be8' size-in-bits='64' id='af02a266'/>
+      <pointer-type-def type-id='b0063b51' size-in-bits='64' id='af051c69'/>
+      <pointer-type-def type-id='950dfd7a' size-in-bits='64' id='af0e0afc'/>
+      <qualified-type-def type-id='58b67424' const='yes' id='af155e93'/>
+      <function-type size-in-bits='64' id='af1a3b3d'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='63d6992a' const='yes' id='af1e6651'/>
+      <pointer-type-def type-id='34c6e216' size-in-bits='64' id='af229338'/>
+      <pointer-type-def type-id='58725ef3' size-in-bits='64' id='af22e097'/>
+      <pointer-type-def type-id='00f37356' size-in-bits='64' id='af233abc'/>
+      <pointer-type-def type-id='d59331c2' size-in-bits='64' id='af2775f4'/>
+      <class-decl name='inet_timewait_death_row' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/net/netns/ipv4.h' line='34' column='1' id='af2c6a56'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tw_count' type-id='49178f86' visibility='default' filepath='include/net/netns/ipv4.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='tw_pad' type-id='59e5814b' visibility='default' filepath='include/net/netns/ipv4.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='hashinfo' type-id='d7a1e3c2' visibility='default' filepath='include/net/netns/ipv4.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='sysctl_max_tw_buckets' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='spi_mem_data_dir' filepath='include/linux/spi/spi-mem.h' line='65' column='1' id='af2d0d95'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SPI_MEM_NO_DATA' value='0'/>
+        <enumerator name='SPI_MEM_DATA_IN' value='1'/>
+        <enumerator name='SPI_MEM_DATA_OUT' value='2'/>
+      </enum-decl>
+      <qualified-type-def type-id='e223f110' const='yes' id='af3cafff'/>
+      <pointer-type-def type-id='1126278f' size-in-bits='64' id='af3f6c83'/>
+      <typedef-decl name='MPI' type-id='b5bf9001' filepath='include/linux/mpi.h' line='40' column='1' id='af3fb410'/>
+      <class-decl name='v4l2_event_src_change' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2401' column='1' id='af41d400'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='changes' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2402' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2cd82b3d' size-in-bits='64' id='af4bd535'/>
+      <pointer-type-def type-id='ff18d40f' size-in-bits='64' id='af56cb43'/>
+      <pointer-type-def type-id='5c18a8e2' size-in-bits='64' id='af5a73b0'/>
+      <pointer-type-def type-id='5e6083f1' size-in-bits='64' id='af5eeab9'/>
+      <pointer-type-def type-id='4c110a85' size-in-bits='64' id='af60ef81'/>
+      <pointer-type-def type-id='0efc83de' size-in-bits='64' id='af664338'/>
+      <pointer-type-def type-id='319f13b8' size-in-bits='64' id='af6bced6'/>
+      <function-type size-in-bits='64' id='af6e35e9'>
+        <parameter type-id='d02f4143'/>
+        <parameter type-id='5555b4b4'/>
+        <return type-id='e9265215'/>
+      </function-type>
+      <class-decl name='typec_device_id' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/mod_devicetable.h' line='806' column='1' id='af73fe5b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='svid' type-id='d315442e' visibility='default' filepath='include/linux/mod_devicetable.h' line='807' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='mode' type-id='8f048e17' visibility='default' filepath='include/linux/mod_devicetable.h' line='808' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='driver_data' type-id='0791d6c8' visibility='default' filepath='include/linux/mod_devicetable.h' line='809' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='hlist_nulls_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/list_nulls.h' line='21' column='1' id='af86905d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='first' type-id='6cf6468f' visibility='default' filepath='include/linux/list_nulls.h' line='22' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='af8a50f5'>
+        <parameter type-id='4cb5819d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='34c8e7e1' size-in-bits='64' id='af92413d'/>
+      <qualified-type-def type-id='0c842ad9' const='yes' id='afa36b70'/>
+      <pointer-type-def type-id='e7e14410' size-in-bits='64' id='afa767ca'/>
+      <class-decl name='rt_mutex_waiter' size-in-bits='704' is-struct='yes' visibility='default' filepath='kernel/locking/rtmutex_common.h' line='33' column='1' id='afb04a62'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tree_entry' type-id='2a8a6332' visibility='default' filepath='kernel/locking/rtmutex_common.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pi_tree_entry' type-id='2a8a6332' visibility='default' filepath='kernel/locking/rtmutex_common.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='task' type-id='f23e2572' visibility='default' filepath='kernel/locking/rtmutex_common.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='lock' type-id='24f0ce5d' visibility='default' filepath='kernel/locking/rtmutex_common.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='wake_state' type-id='f0981eeb' visibility='default' filepath='kernel/locking/rtmutex_common.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='prio' type-id='95e97e5e' visibility='default' filepath='kernel/locking/rtmutex_common.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='deadline' type-id='91ce1af9' visibility='default' filepath='kernel/locking/rtmutex_common.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='ww_ctx' type-id='c1d02a64' visibility='default' filepath='kernel/locking/rtmutex_common.h' line='41' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='afb1917e'>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <pointer-type-def type-id='38e7219e' size-in-bits='64' id='afb80c18'/>
+      <class-decl name='selinux_policy' is-struct='yes' visibility='default' is-declaration-only='yes' id='afbb7720'/>
+      <class-decl name='css_set' size-in-bits='3392' is-struct='yes' visibility='default' filepath='include/linux/cgroup-defs.h' line='199' column='1' id='afbeac63'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='subsys' type-id='75781a60' visibility='default' filepath='include/linux/cgroup-defs.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='refcount' type-id='64615833' visibility='default' filepath='include/linux/cgroup-defs.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='dom_cset' type-id='85d57723' visibility='default' filepath='include/linux/cgroup-defs.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='dfl_cgrp' type-id='46ff135d' visibility='default' filepath='include/linux/cgroup-defs.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='nr_tasks' type-id='95e97e5e' visibility='default' filepath='include/linux/cgroup-defs.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='tasks' type-id='72f469ec' visibility='default' filepath='include/linux/cgroup-defs.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='mg_tasks' type-id='72f469ec' visibility='default' filepath='include/linux/cgroup-defs.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='dying_tasks' type-id='72f469ec' visibility='default' filepath='include/linux/cgroup-defs.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='task_iters' type-id='72f469ec' visibility='default' filepath='include/linux/cgroup-defs.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='e_cset_node' type-id='a8e439b9' visibility='default' filepath='include/linux/cgroup-defs.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='threaded_csets' type-id='72f469ec' visibility='default' filepath='include/linux/cgroup-defs.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='threaded_csets_node' type-id='72f469ec' visibility='default' filepath='include/linux/cgroup-defs.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='hlist' type-id='03a4a074' visibility='default' filepath='include/linux/cgroup-defs.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='cgrp_links' type-id='72f469ec' visibility='default' filepath='include/linux/cgroup-defs.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='mg_src_preload_node' type-id='72f469ec' visibility='default' filepath='include/linux/cgroup-defs.h' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='mg_dst_preload_node' type-id='72f469ec' visibility='default' filepath='include/linux/cgroup-defs.h' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='mg_node' type-id='72f469ec' visibility='default' filepath='include/linux/cgroup-defs.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='mg_src_cgrp' type-id='46ff135d' visibility='default' filepath='include/linux/cgroup-defs.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='mg_dst_cgrp' type-id='46ff135d' visibility='default' filepath='include/linux/cgroup-defs.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='mg_dst_cset' type-id='85d57723' visibility='default' filepath='include/linux/cgroup-defs.h' line='280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='dead' type-id='b50a4934' visibility='default' filepath='include/linux/cgroup-defs.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/linux/cgroup-defs.h' line='286' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='17c0f561' size-in-bits='64' id='afc22511'/>
+      <pointer-type-def type-id='87732674' size-in-bits='64' id='afc38bc6'/>
+      <pointer-type-def type-id='b41203ee' size-in-bits='64' id='afcbd268'/>
+      <function-type size-in-bits='64' id='afcc3ab3'>
+        <parameter type-id='2661e0d9'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='core_vma_metadata' is-struct='yes' visibility='default' is-declaration-only='yes' id='afd17dd3'/>
+      <pointer-type-def type-id='f23e2572' size-in-bits='64' id='afd4c988'/>
+      <pointer-type-def type-id='17ae78d2' size-in-bits='64' id='afd7b47c'/>
+      <pointer-type-def type-id='e3a91a7c' size-in-bits='64' id='afd8be4a'/>
+      <class-decl name='blk_mq_alloc_data' size-in-bits='320' is-struct='yes' visibility='default' filepath='block/blk-mq.h' line='155' column='1' id='afd9eb4a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='q' type-id='e7d2a5fc' visibility='default' filepath='block/blk-mq.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='346d62be' visibility='default' filepath='block/blk-mq.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='shallow_depth' type-id='f0981eeb' visibility='default' filepath='block/blk-mq.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cmd_flags' type-id='f0981eeb' visibility='default' filepath='block/blk-mq.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ctx' type-id='9a335021' visibility='default' filepath='block/blk-mq.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='hctx' type-id='a47d3467' visibility='default' filepath='block/blk-mq.h' line='164' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5943f90f' size-in-bits='64' id='afe1ccd7'/>
+      <class-decl name='cpupri' size-in-bits='12992' is-struct='yes' visibility='default' filepath='kernel/sched/cpupri.h' line='15' column='1' id='afe3b3de'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pri_to_cpu' type-id='f886ee73' visibility='default' filepath='kernel/sched/cpupri.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12928'>
+          <var-decl name='cpu_to_pri' type-id='7292109c' visibility='default' filepath='kernel/sched/cpupri.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='9cbd1c16' size-in-bits='64' id='afe549fd'>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+      </array-type-def>
+      <pointer-type-def type-id='13964735' size-in-bits='64' id='aff725d5'/>
+      <pointer-type-def type-id='ec247fc5' size-in-bits='64' id='aff7eed9'/>
+      <pointer-type-def type-id='5b7f098d' size-in-bits='64' id='affc31e5'/>
+      <pointer-type-def type-id='1429eee4' size-in-bits='64' id='affe0fe2'/>
+      <class-decl name='uart_port' size-in-bits='3904' is-struct='yes' visibility='default' filepath='include/linux/serial_core.h' line='110' column='1' id='b0063b51'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/serial_core.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='iobase' type-id='7359adad' visibility='default' filepath='include/linux/serial_core.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='membase' type-id='cf536864' visibility='default' filepath='include/linux/serial_core.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='serial_in' type-id='d8385083' visibility='default' filepath='include/linux/serial_core.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='serial_out' type-id='041f6b76' visibility='default' filepath='include/linux/serial_core.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='set_termios' type-id='97d53fc8' visibility='default' filepath='include/linux/serial_core.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='set_ldisc' type-id='92c1d524' visibility='default' filepath='include/linux/serial_core.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='get_mctrl' type-id='d8d26684' visibility='default' filepath='include/linux/serial_core.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='set_mctrl' type-id='898b0c52' visibility='default' filepath='include/linux/serial_core.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='get_divisor' type-id='dece2c04' visibility='default' filepath='include/linux/serial_core.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='set_divisor' type-id='a902ee5a' visibility='default' filepath='include/linux/serial_core.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='startup' type-id='45d07221' visibility='default' filepath='include/linux/serial_core.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='shutdown' type-id='ed415bf0' visibility='default' filepath='include/linux/serial_core.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='throttle' type-id='ed415bf0' visibility='default' filepath='include/linux/serial_core.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='unthrottle' type-id='ed415bf0' visibility='default' filepath='include/linux/serial_core.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='handle_irq' type-id='45d07221' visibility='default' filepath='include/linux/serial_core.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='pm' type-id='c805a6f8' visibility='default' filepath='include/linux/serial_core.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='handle_break' type-id='ed415bf0' visibility='default' filepath='include/linux/serial_core.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='rs485_config' type-id='bee2fad0' visibility='default' filepath='include/linux/serial_core.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='iso7816_config' type-id='34aa5735' visibility='default' filepath='include/linux/serial_core.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='irq' type-id='f0981eeb' visibility='default' filepath='include/linux/serial_core.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='irqflags' type-id='7359adad' visibility='default' filepath='include/linux/serial_core.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='uartclk' type-id='f0981eeb' visibility='default' filepath='include/linux/serial_core.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='fifosize' type-id='f0981eeb' visibility='default' filepath='include/linux/serial_core.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='x_char' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_core.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1480'>
+          <var-decl name='regshift' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_core.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1488'>
+          <var-decl name='iotype' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_core.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1496'>
+          <var-decl name='quirks' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_core.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1504'>
+          <var-decl name='read_status_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/serial_core.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='ignore_status_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/serial_core.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='state' type-id='533b348b' visibility='default' filepath='include/linux/serial_core.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='icount' type-id='3f76087c' visibility='default' filepath='include/linux/serial_core.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='cons' type-id='b9aa0100' visibility='default' filepath='include/linux/serial_core.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='flags' type-id='5d1b117e' visibility='default' filepath='include/linux/serial_core.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2144'>
+          <var-decl name='status' type-id='9fe5c270' visibility='default' filepath='include/linux/serial_core.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='hw_stopped' type-id='95e97e5e' visibility='default' filepath='include/linux/serial_core.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2208'>
+          <var-decl name='mctrl' type-id='f0981eeb' visibility='default' filepath='include/linux/serial_core.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='timeout' type-id='f0981eeb' visibility='default' filepath='include/linux/serial_core.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2272'>
+          <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='include/linux/serial_core.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='ops' type-id='7e03a5bb' visibility='default' filepath='include/linux/serial_core.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='custom_divisor' type-id='f0981eeb' visibility='default' filepath='include/linux/serial_core.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2400'>
+          <var-decl name='line' type-id='f0981eeb' visibility='default' filepath='include/linux/serial_core.h' line='242' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='minor' type-id='f0981eeb' visibility='default' filepath='include/linux/serial_core.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='mapbase' type-id='acc63fdf' visibility='default' filepath='include/linux/serial_core.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='mapsize' type-id='acc63fdf' visibility='default' filepath='include/linux/serial_core.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/serial_core.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='sysrq' type-id='7359adad' visibility='default' filepath='include/linux/serial_core.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='sysrq_ch' type-id='f0981eeb' visibility='default' filepath='include/linux/serial_core.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2784'>
+          <var-decl name='has_sysrq' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_core.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2792'>
+          <var-decl name='sysrq_seq' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_core.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2800'>
+          <var-decl name='hub6' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_core.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2808'>
+          <var-decl name='suspended' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_core.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='console_reinit' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_core.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/serial_core.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='attr_group' type-id='aad24a5b' visibility='default' filepath='include/linux/serial_core.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='tty_groups' type-id='c97de1ac' visibility='default' filepath='include/linux/serial_core.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='rs485' type-id='fc72f170' visibility='default' filepath='include/linux/serial_core.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='rs485_term_gpio' type-id='26760480' visibility='default' filepath='include/linux/serial_core.h' line='260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='iso7816' type-id='5a449113' visibility='default' filepath='include/linux/serial_core.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/serial_core.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/serial_core.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/serial_core.h' line='265' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b00ac915'>
+        <parameter type-id='226853d2'/>
+        <parameter type-id='f74174a4'/>
+        <parameter type-id='26a90f95'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='utp_upiu_header' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='27' column='1' id='b010cb22'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dword_0' type-id='78a133c2' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='dword_1' type-id='78a133c2' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dword_2' type-id='78a133c2' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6f026338' size-in-bits='64' id='b01310d2'/>
+      <qualified-type-def type-id='bc536f35' const='yes' id='b01bc938'/>
+      <class-decl name='led_hw_trigger_type' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/leds.h' line='66' column='1' id='b0209526'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dummy' type-id='95e97e5e' visibility='default' filepath='include/linux/leds.h' line='67' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='77df194e' size-in-bits='64' id='b0222d74'/>
+      <class-decl name='iw_param' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/wireless.h' line='680' column='1' id='b024252b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='value' type-id='3158a266' visibility='default' filepath='include/uapi/linux/wireless.h' line='681' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='fixed' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/wireless.h' line='682' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='disabled' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/wireless.h' line='683' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='flags' type-id='d315442e' visibility='default' filepath='include/uapi/linux/wireless.h' line='684' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='__kernel_mqd_t' type-id='95e97e5e' filepath='include/uapi/linux/posix_types.h' line='34' column='1' id='b026c2fd'/>
+      <class-decl name='pool_workqueue' size-in-bits='2048' is-struct='yes' visibility='default' filepath='kernel/workqueue.c' line='204' column='1' id='b0355154'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pool' type-id='1ce8c5e4' visibility='default' filepath='kernel/workqueue.c' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wq' type-id='242e3d19' visibility='default' filepath='kernel/workqueue.c' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='work_color' type-id='95e97e5e' visibility='default' filepath='kernel/workqueue.c' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='flush_color' type-id='95e97e5e' visibility='default' filepath='kernel/workqueue.c' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='refcnt' type-id='95e97e5e' visibility='default' filepath='kernel/workqueue.c' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='nr_in_flight' type-id='73c2bc6b' visibility='default' filepath='kernel/workqueue.c' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='nr_active' type-id='95e97e5e' visibility='default' filepath='kernel/workqueue.c' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='max_active' type-id='95e97e5e' visibility='default' filepath='kernel/workqueue.c' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='inactive_works' type-id='72f469ec' visibility='default' filepath='kernel/workqueue.c' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='pwqs_node' type-id='72f469ec' visibility='default' filepath='kernel/workqueue.c' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='mayday_node' type-id='72f469ec' visibility='default' filepath='kernel/workqueue.c' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='unbound_release_work' type-id='ef9025d0' visibility='default' filepath='kernel/workqueue.c' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='kernel/workqueue.c' line='242' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b03c6e7d'>
+        <parameter type-id='c1547255'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='bpf_link_type' filepath='include/uapi/linux/bpf.h' line='1014' column='1' id='b0467036'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='BPF_LINK_TYPE_UNSPEC' value='0'/>
+        <enumerator name='BPF_LINK_TYPE_RAW_TRACEPOINT' value='1'/>
+        <enumerator name='BPF_LINK_TYPE_TRACING' value='2'/>
+        <enumerator name='BPF_LINK_TYPE_CGROUP' value='3'/>
+        <enumerator name='BPF_LINK_TYPE_ITER' value='4'/>
+        <enumerator name='BPF_LINK_TYPE_NETNS' value='5'/>
+        <enumerator name='BPF_LINK_TYPE_XDP' value='6'/>
+        <enumerator name='BPF_LINK_TYPE_PERF_EVENT' value='7'/>
+        <enumerator name='MAX_BPF_LINK_TYPE' value='8'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='b0471e43'>
+        <parameter type-id='9f763fd8'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='1e4a1386' size-in-bits='64' id='b0487488'/>
+      <class-decl name='mipi_dsi_host' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='104' column='1' id='b048e68e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ops' type-id='093ead14' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='107' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='e9928c10' const='yes' id='b053b689'/>
+      <pointer-type-def type-id='69bc916d' size-in-bits='64' id='b05eedc1'/>
+      <function-type size-in-bits='64' id='b0623418'>
+        <parameter type-id='0343ce83'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='mem_dqinfo' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/quota.h' line='222' column='1' id='b0690d78'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dqi_format' type-id='eb9a3ab6' visibility='default' filepath='include/linux/quota.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dqi_fmt_id' type-id='95e97e5e' visibility='default' filepath='include/linux/quota.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dqi_dirty_list' type-id='72f469ec' visibility='default' filepath='include/linux/quota.h' line='226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dqi_flags' type-id='7359adad' visibility='default' filepath='include/linux/quota.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dqi_bgrace' type-id='f0981eeb' visibility='default' filepath='include/linux/quota.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='dqi_igrace' type-id='f0981eeb' visibility='default' filepath='include/linux/quota.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dqi_max_spc_limit' type-id='33341965' visibility='default' filepath='include/linux/quota.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='dqi_max_ino_limit' type-id='33341965' visibility='default' filepath='include/linux/quota.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='dqi_priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/quota.h' line='232' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='regulator' size-in-bits='1088' is-struct='yes' visibility='default' filepath='drivers/regulator/internal.h' line='45' column='1' id='b06eb6f0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/regulator/internal.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='drivers/regulator/internal.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='always_on' type-id='f0981eeb' visibility='default' filepath='drivers/regulator/internal.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='193'>
+          <var-decl name='bypass' type-id='f0981eeb' visibility='default' filepath='drivers/regulator/internal.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='194'>
+          <var-decl name='device_link' type-id='f0981eeb' visibility='default' filepath='drivers/regulator/internal.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='uA_load' type-id='95e97e5e' visibility='default' filepath='drivers/regulator/internal.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='enable_count' type-id='f0981eeb' visibility='default' filepath='drivers/regulator/internal.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='deferred_disables' type-id='f0981eeb' visibility='default' filepath='drivers/regulator/internal.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='voltage' type-id='06883fa0' visibility='default' filepath='drivers/regulator/internal.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='supply_name' type-id='80f4b756' visibility='default' filepath='drivers/regulator/internal.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='dev_attr' type-id='dbf3947c' visibility='default' filepath='drivers/regulator/internal.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='rdev' type-id='43c38462' visibility='default' filepath='drivers/regulator/internal.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='debugfs' type-id='27675065' visibility='default' filepath='drivers/regulator/internal.h' line='58' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b073751e'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='77e79a4b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d26ed346' size-in-bits='64' id='b076d304'/>
+      <pointer-type-def type-id='8dc7c255' size-in-bits='64' id='b0772ded'/>
+      <class-decl name='watchdog_governor' is-struct='yes' visibility='default' is-declaration-only='yes' id='b07b6d69'/>
+      <pointer-type-def type-id='cddfb84e' size-in-bits='64' id='b07c2494'/>
+      <pointer-type-def type-id='270dc7da' size-in-bits='64' id='b07c56ec'/>
+      <function-type size-in-bits='64' id='b083f9b9'>
+        <parameter type-id='db362995'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='5a3379ab' size-in-bits='64' id='b084f8bb'/>
+      <function-type size-in-bits='64' id='b086bddd'>
+        <parameter type-id='3921c1a0'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='1945ad2d' size-in-bits='64' id='b087f139'/>
+      <function-type size-in-bits='64' id='b08da511'>
+        <parameter type-id='fb648468'/>
+        <parameter type-id='af02a266'/>
+        <return type-id='339c87e8'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b0922992'>
+        <parameter type-id='fc4f83c1'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='002a7109' size-in-bits='64' id='b09cd03d'/>
+      <qualified-type-def type-id='48b5725f' volatile='yes' id='b0b3cbf9'/>
+      <pointer-type-def type-id='a79f0bd2' size-in-bits='64' id='b0c0dda7'/>
+      <function-type size-in-bits='64' id='b0cde5c7'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='7b332e1c'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='7e90344c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e1e02337' size-in-bits='64' id='b0d746a7'/>
+      <pointer-type-def type-id='a96e8cde' size-in-bits='64' id='b0ddaf40'/>
+      <pointer-type-def type-id='a46c8018' size-in-bits='64' id='b0e7dbd3'/>
+      <qualified-type-def type-id='da1685e2' const='yes' id='b0e90747'/>
+      <function-type size-in-bits='64' id='b0f12107'>
+        <parameter type-id='572fbdca'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b0f27198'>
+        <parameter type-id='37a6b980'/>
+        <return type-id='37a6b980'/>
+      </function-type>
+      <class-decl name='mmc_card' size-in-bits='15104' is-struct='yes' visibility='default' filepath='include/linux/mmc/card.h' line='269' column='1' id='b0f558fb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='host' type-id='dd575c43' visibility='default' filepath='include/linux/mmc/card.h' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/mmc/card.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='ocr' type-id='19c2251e' visibility='default' filepath='include/linux/mmc/card.h' line='272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7392'>
+          <var-decl name='rca' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7456'>
+          <var-decl name='state' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='quirks' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7520'>
+          <var-decl name='quirk_max_rate' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='reenable_cmdq' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/card.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7584'>
+          <var-decl name='erase_size' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='erase_shift' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7648'>
+          <var-decl name='pref_erase' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='eg_boundary' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7712'>
+          <var-decl name='erase_arg' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='erased_byte' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7776'>
+          <var-decl name='raw_cid' type-id='1c6c0c39' visibility='default' filepath='include/linux/mmc/card.h' line='309' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7904'>
+          <var-decl name='raw_csd' type-id='1c6c0c39' visibility='default' filepath='include/linux/mmc/card.h' line='310' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8032'>
+          <var-decl name='raw_scr' type-id='1872161b' visibility='default' filepath='include/linux/mmc/card.h' line='311' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8096'>
+          <var-decl name='raw_ssr' type-id='02fdec64' visibility='default' filepath='include/linux/mmc/card.h' line='312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8608'>
+          <var-decl name='cid' type-id='5a0fc813' visibility='default' filepath='include/linux/mmc/card.h' line='313' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8832'>
+          <var-decl name='csd' type-id='5e477b59' visibility='default' filepath='include/linux/mmc/card.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9216'>
+          <var-decl name='ext_csd' type-id='2561085d' visibility='default' filepath='include/linux/mmc/card.h' line='315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10560'>
+          <var-decl name='scr' type-id='5e938df5' visibility='default' filepath='include/linux/mmc/card.h' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10624'>
+          <var-decl name='ssr' type-id='5eba9d65' visibility='default' filepath='include/linux/mmc/card.h' line='317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10720'>
+          <var-decl name='sw_caps' type-id='2a479001' visibility='default' filepath='include/linux/mmc/card.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10880'>
+          <var-decl name='ext_power' type-id='f3638abb' visibility='default' filepath='include/linux/mmc/card.h' line='319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10944'>
+          <var-decl name='ext_perf' type-id='f3638abb' visibility='default' filepath='include/linux/mmc/card.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11008'>
+          <var-decl name='sdio_funcs' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11040'>
+          <var-decl name='sdio_funcs_probed' type-id='49178f86' visibility='default' filepath='include/linux/mmc/card.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11072'>
+          <var-decl name='cccr' type-id='7f07e508' visibility='default' filepath='include/linux/mmc/card.h' line='324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11168'>
+          <var-decl name='cis' type-id='4b644cf4' visibility='default' filepath='include/linux/mmc/card.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11264'>
+          <var-decl name='sdio_func' type-id='4abea81e' visibility='default' filepath='include/linux/mmc/card.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11712'>
+          <var-decl name='sdio_single_irq' type-id='c1880945' visibility='default' filepath='include/linux/mmc/card.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11776'>
+          <var-decl name='major_rev' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11784'>
+          <var-decl name='minor_rev' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11808'>
+          <var-decl name='num_info' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11840'>
+          <var-decl name='info' type-id='7d3cd834' visibility='default' filepath='include/linux/mmc/card.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11904'>
+          <var-decl name='tuples' type-id='e5932b8e' visibility='default' filepath='include/linux/mmc/card.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11968'>
+          <var-decl name='sd_bus_speed' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12000'>
+          <var-decl name='mmc_avail_type' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12032'>
+          <var-decl name='drive_strength' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12096'>
+          <var-decl name='debugfs_root' type-id='27675065' visibility='default' filepath='include/linux/mmc/card.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12160'>
+          <var-decl name='part' type-id='67d619b5' visibility='default' filepath='include/linux/mmc/card.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14848'>
+          <var-decl name='nr_parts' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14912'>
+          <var-decl name='complete_wq' type-id='242e3d19' visibility='default' filepath='include/linux/mmc/card.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14976'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/mmc/card.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15040'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/mmc/card.h' line='345' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='405001ce' size-in-bits='64' id='b104e6b0'/>
+      <class-decl name='platform_suspend_ops' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/suspend.h' line='178' column='1' id='b106e24e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='valid' type-id='16d5931b' visibility='default' filepath='include/linux/suspend.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='begin' type-id='16d5931b' visibility='default' filepath='include/linux/suspend.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='prepare' type-id='1db260e5' visibility='default' filepath='include/linux/suspend.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='prepare_late' type-id='1db260e5' visibility='default' filepath='include/linux/suspend.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='enter' type-id='16d5931b' visibility='default' filepath='include/linux/suspend.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='wake' type-id='953b12f8' visibility='default' filepath='include/linux/suspend.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='finish' type-id='953b12f8' visibility='default' filepath='include/linux/suspend.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='suspend_again' type-id='d4ae3f3f' visibility='default' filepath='include/linux/suspend.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='end' type-id='953b12f8' visibility='default' filepath='include/linux/suspend.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='recover' type-id='953b12f8' visibility='default' filepath='include/linux/suspend.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/suspend.h' line='190' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mini_Qdisc' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/net/sch_generic.h' line='1311' column='1' id='b10d582f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='filter_list' type-id='6dca061b' visibility='default' filepath='include/net/sch_generic.h' line='1312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='block' type-id='13ef4686' visibility='default' filepath='include/net/sch_generic.h' line='1313' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cpu_bstats' type-id='b3542b31' visibility='default' filepath='include/net/sch_generic.h' line='1314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cpu_qstats' type-id='338303f5' visibility='default' filepath='include/net/sch_generic.h' line='1315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/sch_generic.h' line='1316' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d2b46ce8' size-in-bits='64' id='b11825ce'/>
+      <function-type size-in-bits='64' id='b11be48c'>
+        <parameter type-id='c14d5db2'/>
+        <parameter type-id='b316d9a3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b11c8367'>
+        <parameter type-id='0ac68794'/>
+        <parameter type-id='91073894'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <qualified-type-def type-id='9045ae21' const='yes' id='b121377e'/>
+      <qualified-type-def type-id='3419b67d' const='yes' id='b121efca'/>
+      <pointer-type-def type-id='272672f5' size-in-bits='64' id='b121f651'/>
+      <pointer-type-def type-id='0ef5c7e0' size-in-bits='64' id='b1253746'/>
+      <typedef-decl name='vq_callback_t' type-id='efc29a3e' filepath='include/linux/virtio_config.h' line='79' column='1' id='b1376802'/>
+      <array-type-def dimensions='1' type-id='9f089557' size-in-bits='8224' id='b138c00a'>
+        <subrange length='257' type-id='7ff19f0f' id='72e246d7'/>
+      </array-type-def>
+      <class-decl name='media_entity_operations' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/media/media-entity.h' line='214' column='1' id='b13ab8d6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='get_fwnode_pad' type-id='28588d1c' visibility='default' filepath='include/media/media-entity.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='link_setup' type-id='74b6c0a0' visibility='default' filepath='include/media/media-entity.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='link_validate' type-id='5e810368' visibility='default' filepath='include/media/media-entity.h' line='220' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='flow_match_eth_addrs' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/flow_offload.h' line='27' column='1' id='b147ec14'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='key' type-id='d44d244f' visibility='default' filepath='include/net/flow_offload.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mask' type-id='d44d244f' visibility='default' filepath='include/net/flow_offload.h' line='28' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b1517543'>
+        <parameter type-id='60a257ef'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='u_char' type-id='002ac4a6' filepath='include/linux/types.h' line='79' column='1' id='b151a3a8'/>
+      <class-decl name='v4l2_ctrl_type_ops' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/media/v4l2-ctrls.h' line='138' column='1' id='b154eaef'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='equal' type-id='f456402b' visibility='default' filepath='include/media/v4l2-ctrls.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='init' type-id='95625cb2' visibility='default' filepath='include/media/v4l2-ctrls.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='log' type-id='c71b901b' visibility='default' filepath='include/media/v4l2-ctrls.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='validate' type-id='f089c08b' visibility='default' filepath='include/media/v4l2-ctrls.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/media/v4l2-ctrls.h' line='148' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ec05f10e' size-in-bits='64' id='b15a9bac'/>
+      <pointer-type-def type-id='24c24978' size-in-bits='64' id='b160f6ba'/>
+      <pointer-type-def type-id='69970be2' size-in-bits='64' id='b16791f0'/>
+      <typedef-decl name='cpumask_var_t' type-id='db98c084' filepath='include/linux/cpumask.h' line='733' column='1' id='b16b461b'/>
+      <class-decl name='sfp_eeprom_id' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/sfp.h' line='229' column='1' id='b16bfae3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='cd06a503' visibility='default' filepath='include/linux/sfp.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ext' type-id='a6000ffd' visibility='default' filepath='include/linux/sfp.h' line='231' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b16db39f'>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='27675065'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='vringh_config_ops' is-struct='yes' visibility='default' is-declaration-only='yes' id='b16ef9f3'/>
+      <class-decl name='trace_pid_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='kernel/trace/pid_list.h' line='8' column='1' id='b17e4f4d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pid_max' type-id='95e97e5e' visibility='default' filepath='kernel/trace/pid_list.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pids' type-id='1d2c2b85' visibility='default' filepath='kernel/trace/pid_list.h' line='10' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='3042e3e4' const='yes' id='b1837ffb'/>
+      <array-type-def dimensions='1' type-id='002ac4a6' size-in-bits='512' id='b1888bf8'>
+        <subrange length='64' type-id='7ff19f0f' id='b10be967'/>
+      </array-type-def>
+      <pointer-type-def type-id='af3cafff' size-in-bits='64' id='b188cc4f'/>
+      <class-decl name='tcp_sack_block' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/tcp.h' line='73' column='1' id='b197d821'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start_seq' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='end_seq' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='75' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='scmi_protocol_events' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/firmware/arm_scmi/notify.h' line='72' column='1' id='b19a033a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='queue_sz' type-id='b59d7dce' visibility='default' filepath='drivers/firmware/arm_scmi/notify.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ops' type-id='4dbd8756' visibility='default' filepath='drivers/firmware/arm_scmi/notify.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='evts' type-id='7a6880f3' visibility='default' filepath='drivers/firmware/arm_scmi/notify.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='num_events' type-id='f0981eeb' visibility='default' filepath='drivers/firmware/arm_scmi/notify.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='num_sources' type-id='f0981eeb' visibility='default' filepath='drivers/firmware/arm_scmi/notify.h' line='77' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b19a37ea'>
+        <parameter type-id='f91cf277'/>
+        <parameter type-id='b8b37be2'/>
+        <parameter type-id='a99cde64'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='11f4a000'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='print_line_t' filepath='include/linux/trace_events.h' line='146' column='1' id='b1a0a119'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='TRACE_TYPE_PARTIAL_LINE' value='0'/>
+        <enumerator name='TRACE_TYPE_HANDLED' value='1'/>
+        <enumerator name='TRACE_TYPE_UNHANDLED' value='2'/>
+        <enumerator name='TRACE_TYPE_NO_CONSUME' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='8e586c5c' size-in-bits='64' id='b1a5e68a'/>
+      <pointer-type-def type-id='bd68866d' size-in-bits='64' id='b1aa580d'/>
+      <pointer-type-def type-id='92e8ff1e' size-in-bits='64' id='b1ab1f20'/>
+      <function-type size-in-bits='64' id='b1b5c3fe'>
+        <parameter type-id='af051c69'/>
+        <parameter type-id='e55856e5'/>
+        <parameter type-id='e55856e5'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='50409e76' size-in-bits='64' id='b1b94ad4'/>
+      <pointer-type-def type-id='c76bfb3a' size-in-bits='64' id='b1be7154'/>
+      <pointer-type-def type-id='e72900f8' size-in-bits='64' id='b1c1788a'/>
+      <function-type size-in-bits='64' id='b1c57c88'>
+        <parameter type-id='442b8d89'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='baeb1b90' size-in-bits='64' id='b1cf1f52'/>
+      <pointer-type-def type-id='fdf3707c' size-in-bits='64' id='b1d4934a'/>
+      <function-type size-in-bits='64' id='b1e1f550'>
+        <parameter type-id='b977ca56'/>
+        <parameter type-id='e453a0cb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='snd_soc_tplg_dapm_widget' size-in-bits='1056' is-struct='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='484' column='1' id='b1e3bc3e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='485' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='id' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='36cef6bd' visibility='default' filepath='include/uapi/sound/asoc.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='sname' type-id='36cef6bd' visibility='default' filepath='include/uapi/sound/asoc.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='reg' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='shift' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='491' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='mask' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='492' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='subseq' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='493' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='invert' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='494' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='ignore_suspend' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='495' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='event_flags' type-id='23119536' visibility='default' filepath='include/uapi/sound/asoc.h' line='496' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='976'>
+          <var-decl name='event_type' type-id='23119536' visibility='default' filepath='include/uapi/sound/asoc.h' line='497' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='num_kcontrols' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='498' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='priv' type-id='372c32b8' visibility='default' filepath='include/uapi/sound/asoc.h' line='499' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5e7de2a9' size-in-bits='64' id='b1e844c1'/>
+      <qualified-type-def type-id='98bb2d81' const='yes' id='b1eae038'/>
+      <class-decl name='ieee80211_he_mcs_nss_supp' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/ieee80211.h' line='1873' column='1' id='b1f4f4c7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rx_mcs_80' type-id='23119536' visibility='default' filepath='include/linux/ieee80211.h' line='1874' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='tx_mcs_80' type-id='23119536' visibility='default' filepath='include/linux/ieee80211.h' line='1875' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='rx_mcs_160' type-id='23119536' visibility='default' filepath='include/linux/ieee80211.h' line='1876' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='tx_mcs_160' type-id='23119536' visibility='default' filepath='include/linux/ieee80211.h' line='1877' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rx_mcs_80p80' type-id='23119536' visibility='default' filepath='include/linux/ieee80211.h' line='1878' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='tx_mcs_80p80' type-id='23119536' visibility='default' filepath='include/linux/ieee80211.h' line='1879' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_soc_dai_ops' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/sound/soc-dai.h' line='268' column='1' id='b1fadf8a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='set_sysclk' type-id='fd437b0d' visibility='default' filepath='include/sound/soc-dai.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='set_pll' type-id='6cd85f13' visibility='default' filepath='include/sound/soc-dai.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='set_clkdiv' type-id='b346094b' visibility='default' filepath='include/sound/soc-dai.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='set_bclk_ratio' type-id='40bc7c47' visibility='default' filepath='include/sound/soc-dai.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='set_fmt' type-id='40bc7c47' visibility='default' filepath='include/sound/soc-dai.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='xlate_tdm_slot_mask' type-id='4f8fb1b3' visibility='default' filepath='include/sound/soc-dai.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='set_tdm_slot' type-id='af3f6c83' visibility='default' filepath='include/sound/soc-dai.h' line='287' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='set_channel_map' type-id='f98f7769' visibility='default' filepath='include/sound/soc-dai.h' line='290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='get_channel_map' type-id='37bbabb5' visibility='default' filepath='include/sound/soc-dai.h' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='set_tristate' type-id='432e0bcc' visibility='default' filepath='include/sound/soc-dai.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='set_sdw_stream' type-id='1dd33160' visibility='default' filepath='include/sound/soc-dai.h' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='get_sdw_stream' type-id='bb2cb7cb' visibility='default' filepath='include/sound/soc-dai.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='mute_stream' type-id='b346094b' visibility='default' filepath='include/sound/soc-dai.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='startup' type-id='ebda04fc' visibility='default' filepath='include/sound/soc-dai.h' line='312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='shutdown' type-id='c7f8de51' visibility='default' filepath='include/sound/soc-dai.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='hw_params' type-id='2e127687' visibility='default' filepath='include/sound/soc-dai.h' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='hw_free' type-id='ebda04fc' visibility='default' filepath='include/sound/soc-dai.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='prepare' type-id='ebda04fc' visibility='default' filepath='include/sound/soc-dai.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='trigger' type-id='939046d7' visibility='default' filepath='include/sound/soc-dai.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='bespoke_trigger' type-id='939046d7' visibility='default' filepath='include/sound/soc-dai.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='delay' type-id='2610fb79' visibility='default' filepath='include/sound/soc-dai.h' line='337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='auto_selectable_formats' type-id='3df9fd28' visibility='default' filepath='include/sound/soc-dai.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='num_auto_selectable_formats' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-dai.h' line='348' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='no_capture_mute' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-dai.h' line='351' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='lruvec_stats_percpu' size-in-bits='5120' is-struct='yes' visibility='default' filepath='include/linux/memcontrol.h' line='119' column='1' id='b1fd4642'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='state' type-id='4d41a616' visibility='default' filepath='include/linux/memcontrol.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='state_prev' type-id='4d41a616' visibility='default' filepath='include/linux/memcontrol.h' line='124' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2117397c' size-in-bits='64' id='b1fd62ba'/>
+      <class-decl name='v4l2_exportbuffer' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1140' column='1' id='b201a5c2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='index' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='plane' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fd' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='reserved' type-id='9d263779' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1146' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1af55526' size-in-bits='64' id='b201adb8'/>
+      <pointer-type-def type-id='0cdc58b8' size-in-bits='64' id='b20461b2'/>
+      <pointer-type-def type-id='6c99ab8f' size-in-bits='64' id='b20722ab'/>
+      <class-decl name='urb' size-in-bits='1728' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1597' column='1' id='b209b4e4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='include/linux/usb.h' line='1599' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='unlinked' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1600' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hcpriv' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb.h' line='1601' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='use_count' type-id='49178f86' visibility='default' filepath='include/linux/usb.h' line='1602' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='reject' type-id='49178f86' visibility='default' filepath='include/linux/usb.h' line='1603' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='urb_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1606' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='anchor_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1608' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='anchor' type-id='bd300bf3' visibility='default' filepath='include/linux/usb.h' line='1609' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='dev' type-id='25e60cb2' visibility='default' filepath='include/linux/usb.h' line='1610' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ep' type-id='15adb516' visibility='default' filepath='include/linux/usb.h' line='1611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='pipe' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1612' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='stream_id' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1613' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='status' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1614' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='transfer_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1615' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='transfer_buffer' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb.h' line='1616' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='transfer_dma' type-id='cf29c9b3' visibility='default' filepath='include/linux/usb.h' line='1617' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='sg' type-id='bf3ef905' visibility='default' filepath='include/linux/usb.h' line='1618' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='num_mapped_sgs' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1619' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='num_sgs' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1620' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='transfer_buffer_length' type-id='19c2251e' visibility='default' filepath='include/linux/usb.h' line='1621' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='actual_length' type-id='19c2251e' visibility='default' filepath='include/linux/usb.h' line='1622' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='setup_packet' type-id='cf536864' visibility='default' filepath='include/linux/usb.h' line='1623' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='setup_dma' type-id='cf29c9b3' visibility='default' filepath='include/linux/usb.h' line='1624' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='start_frame' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1625' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='number_of_packets' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1626' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='interval' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1627' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='error_count' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1629' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='context' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb.h' line='1630' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='complete' type-id='4086973b' visibility='default' filepath='include/linux/usb.h' line='1631' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1633' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1634' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1635' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1636' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='iso_frame_desc' type-id='b585dd30' visibility='default' filepath='include/linux/usb.h' line='1638' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='c4cd9d00' const='yes' id='b20d2281'/>
+      <array-type-def dimensions='1' type-id='02f11ed4' size-in-bits='960' id='b210041a'>
+        <subrange length='15' type-id='7ff19f0f' id='8484ba73'/>
+      </array-type-def>
+      <pointer-type-def type-id='1435ffc6' size-in-bits='64' id='b21554fc'/>
+      <pointer-type-def type-id='ebdc8782' size-in-bits='64' id='b2168730'/>
+      <function-type size-in-bits='64' id='b21b8f21'>
+        <parameter type-id='7359adad'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b21fa5e0'>
+        <parameter type-id='26deddb9'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='6c0f5f3c' size-in-bits='64' id='b22e78ee'/>
+      <pointer-type-def type-id='8c180526' size-in-bits='64' id='b22f4610'/>
+      <pointer-type-def type-id='20b2126a' size-in-bits='64' id='b23189b4'/>
+      <class-decl name='prb_desc_ring' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='72' column='1' id='b24206b8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count_bits' type-id='f0981eeb' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='descs' type-id='05e20081' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='infos' type-id='fae1bbc0' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='head_id' type-id='f22a8abb' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='tail_id' type-id='f22a8abb' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='last_finalized_id' type-id='f22a8abb' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='78' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='22814d90' size-in-bits='64' id='b249945a'/>
+      <pointer-type-def type-id='3df0f7af' size-in-bits='64' id='b25391b7'/>
+      <qualified-type-def type-id='cf20ba04' const='yes' id='b254b8db'/>
+      <pointer-type-def type-id='d591777b' size-in-bits='64' id='b25d7387'/>
+      <array-type-def dimensions='1' type-id='2e1b0751' size-in-bits='5120' id='b25dce46'>
+        <subrange length='10' type-id='7ff19f0f' id='487da03a'/>
+      </array-type-def>
+      <pointer-type-def type-id='11581816' size-in-bits='64' id='b2610cc8'/>
+      <pointer-type-def type-id='cb42385e' size-in-bits='64' id='b2647a04'/>
+      <pointer-type-def type-id='45bd3db7' size-in-bits='64' id='b267d173'/>
+      <pointer-type-def type-id='d7d97b09' size-in-bits='64' id='b26c7631'/>
+      <qualified-type-def type-id='40fc482f' const='yes' id='b276f0c8'/>
+      <class-decl name='phy_configure_opts_mipi_dphy' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='15' column='1' id='b277cad4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='clk_miss' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='clk_post' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='clk_pre' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='clk_prepare' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='clk_settle' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='clk_term_en' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='clk_trail' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='clk_zero' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='d_term_en' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='eot' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='hs_exit' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='hs_prepare' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='hs_settle' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='hs_skip' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='hs_trail' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='hs_zero' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='init' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='lpx' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ta_get' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='ta_go' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='ta_sure' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='242' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='wakeup' type-id='f0981eeb' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='hs_clk_rate' type-id='7359adad' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='lp_clk_rate' type-id='7359adad' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='lanes' type-id='002ac4a6' visibility='default' filepath='include/linux/phy/phy-mipi-dphy.h' line='275' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_private_state' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/drm/drm_atomic.h' line='320' column='1' id='b281e308'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='state' type-id='e3dd029e' visibility='default' filepath='include/drm/drm_atomic.h' line='321' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b287e2b2'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='692d176e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='6b401e7c' size-in-bits='64' id='b291458e'/>
+      <function-type size-in-bits='64' id='b29581c5'>
+        <parameter type-id='11f4a000'/>
+        <parameter type-id='cf536864'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b297b72f'>
+        <parameter type-id='6614aa5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='drm_dp_aux' size-in-bits='12608' is-struct='yes' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1891' column='1' id='b2983aea'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1899' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ddc' type-id='ec5384d3' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1905' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9792'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1911' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9856'>
+          <var-decl name='drm_dev' type-id='8898134d' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1924' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9920'>
+          <var-decl name='crtc' type-id='b64ad7cb' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1930' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9984'>
+          <var-decl name='hw_mutex' type-id='925167dc' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1939' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10368'>
+          <var-decl name='crc_work' type-id='ef9025d0' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1944' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10752'>
+          <var-decl name='crc_count' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1949' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10816'>
+          <var-decl name='transfer' type-id='5deab224' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1977' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10880'>
+          <var-decl name='i2c_nack_count' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1983' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10912'>
+          <var-decl name='i2c_defer_count' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1987' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10944'>
+          <var-decl name='cec' type-id='507e56d0' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1991' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12544'>
+          <var-decl name='is_remote' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dp_helper.h' line='1995' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c0d42424' size-in-bits='64' id='b298c88e'/>
+      <pointer-type-def type-id='54bf0f36' size-in-bits='64' id='b29a990c'/>
+      <pointer-type-def type-id='90df3e0a' size-in-bits='64' id='b2a3307c'/>
+      <function-type size-in-bits='64' id='b2a9667a'>
+        <parameter type-id='204a4632'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9f25e800' size-in-bits='64' id='b2ac7a1e'/>
+      <pointer-type-def type-id='3e2545f4' size-in-bits='64' id='b2acfc7a'/>
+      <pointer-type-def type-id='90f4cdc0' size-in-bits='64' id='b2ad9442'/>
+      <pointer-type-def type-id='e68a6e6a' size-in-bits='64' id='b2b04204'/>
+      <function-type size-in-bits='64' id='b2bada68'>
+        <parameter type-id='c0ced320'/>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='27675065'/>
+        <parameter type-id='80f4b756'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4ec43a31' size-in-bits='64' id='b2bcb5d9'/>
+      <pointer-type-def type-id='d09d6361' size-in-bits='64' id='b2c34f11'/>
+      <function-type size-in-bits='64' id='b2c72f60'>
+        <parameter type-id='f03f21e9'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='memcg_vmstats' size-in-bits='17024' is-struct='yes' visibility='default' filepath='include/linux/memcontrol.h' line='93' column='1' id='b2c78807'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='state' type-id='8d44496d' visibility='default' filepath='include/linux/memcontrol.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='events' type-id='fd42223a' visibility='default' filepath='include/linux/memcontrol.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='state_pending' type-id='8d44496d' visibility='default' filepath='include/linux/memcontrol.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11264'>
+          <var-decl name='events_pending' type-id='fd42223a' visibility='default' filepath='include/linux/memcontrol.h' line='100' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ffc4a47a' size-in-bits='64' id='b2cb1838'/>
+      <qualified-type-def type-id='9f6abc71' const='yes' id='b2d59d2a'/>
+      <function-type size-in-bits='64' id='b2d67803'>
+        <parameter type-id='1ced7495'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b2e0b590'>
+        <parameter type-id='e2fdc10f'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='aded214c'/>
+        <parameter type-id='d504f73d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f3a719f4' size-in-bits='64' id='b2ea0a72'/>
+      <function-type size-in-bits='64' id='b2ea0ff9'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='3f646ae7'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7f2104b8' size-in-bits='64' id='b2fa31d6'/>
+      <class-decl name='ipv6_stable_secret' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/linux/ipv6.h' line='66' column='1' id='b2fc06b3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='initialized' type-id='b50a4934' visibility='default' filepath='include/linux/ipv6.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='secret' type-id='f6ed712a' visibility='default' filepath='include/linux/ipv6.h' line='68' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3ad2f92f' size-in-bits='64' id='b3002d4b'/>
+      <function-type size-in-bits='64' id='b303e1cf'>
+        <parameter type-id='108dbc98'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='0f1b379b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='xt_mtchk_param' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='92' column='1' id='b30ae843'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='net' type-id='a2bff676' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='table' type-id='80f4b756' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='entryinfo' type-id='eaa32e2f' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='match' type-id='1ecd1044' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='matchinfo' type-id='eaa32e2f' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='hook_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='family' type-id='892641a4' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='360'>
+          <var-decl name='nft_compat' type-id='b50a4934' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='100' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='02244303' size-in-bits='64' id='b316d9a3'/>
+      <function-type size-in-bits='64' id='b31a25ae'>
+        <parameter type-id='19e05b5f'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='2aaa0129' size-in-bits='64' id='b31a5ea1'/>
+      <pointer-type-def type-id='dc1b9a32' size-in-bits='64' id='b31af340'/>
+      <class-decl name='bus_type' size-in-bits='1664' is-struct='yes' visibility='default' filepath='include/linux/device/bus.h' line='82' column='1' id='b31bfc8a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/device/bus.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev_name' type-id='80f4b756' visibility='default' filepath='include/linux/device/bus.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dev_root' type-id='fa0b179b' visibility='default' filepath='include/linux/device/bus.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bus_groups' type-id='c97de1ac' visibility='default' filepath='include/linux/device/bus.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dev_groups' type-id='c97de1ac' visibility='default' filepath='include/linux/device/bus.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='drv_groups' type-id='c97de1ac' visibility='default' filepath='include/linux/device/bus.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='match' type-id='2f28f04c' visibility='default' filepath='include/linux/device/bus.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='uevent' type-id='22deb949' visibility='default' filepath='include/linux/device/bus.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='probe' type-id='613d39f5' visibility='default' filepath='include/linux/device/bus.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='sync_state' type-id='dd787f72' visibility='default' filepath='include/linux/device/bus.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='remove' type-id='dd787f72' visibility='default' filepath='include/linux/device/bus.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='shutdown' type-id='dd787f72' visibility='default' filepath='include/linux/device/bus.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='online' type-id='613d39f5' visibility='default' filepath='include/linux/device/bus.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='offline' type-id='613d39f5' visibility='default' filepath='include/linux/device/bus.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='suspend' type-id='df416a94' visibility='default' filepath='include/linux/device/bus.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='resume' type-id='613d39f5' visibility='default' filepath='include/linux/device/bus.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='num_vf' type-id='613d39f5' visibility='default' filepath='include/linux/device/bus.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='dma_configure' type-id='613d39f5' visibility='default' filepath='include/linux/device/bus.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='pm' type-id='3fab024e' visibility='default' filepath='include/linux/device/bus.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='iommu_ops' type-id='f1ac64d0' visibility='default' filepath='include/linux/device/bus.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='p' type-id='5da77304' visibility='default' filepath='include/linux/device/bus.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='lock_key' type-id='47479831' visibility='default' filepath='include/linux/device/bus.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='need_parent_lock' type-id='b50a4934' visibility='default' filepath='include/linux/device/bus.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/device/bus.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/device/bus.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/device/bus.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/device/bus.h' line='119' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='file_ra_state' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='967' column='1' id='b31f003f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='968' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='969' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='async_size' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='970' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ra_pages' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='971' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='mmap_miss' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='972' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='prev_pos' type-id='69bf7bee' visibility='default' filepath='include/linux/fs.h' line='973' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='78d258aa' size-in-bits='64' id='b3215180'/>
+      <pointer-type-def type-id='10edb5fe' size-in-bits='64' id='b3240f74'/>
+      <pointer-type-def type-id='7c0b9fdb' size-in-bits='64' id='b325c82b'/>
+      <class-decl name='ethtool_drvinfo' size-in-bits='1568' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='187' column='1' id='b32a1711'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='driver' type-id='16dc656a' visibility='default' filepath='include/uapi/linux/ethtool.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='version' type-id='16dc656a' visibility='default' filepath='include/uapi/linux/ethtool.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='fw_version' type-id='16dc656a' visibility='default' filepath='include/uapi/linux/ethtool.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='bus_info' type-id='16dc656a' visibility='default' filepath='include/uapi/linux/ethtool.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='erom_version' type-id='16dc656a' visibility='default' filepath='include/uapi/linux/ethtool.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='reserved2' type-id='ac151b64' visibility='default' filepath='include/uapi/linux/ethtool.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='n_priv_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='n_stats' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='testinfo_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1504'>
+          <var-decl name='eedump_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='regdump_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='199' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='dmaengine_unmap_data' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/dmaengine.h' line='557' column='1' id='b32b9ce4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='map_cnt' type-id='f9b06939' visibility='default' filepath='include/linux/dmaengine.h' line='561' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='to_cnt' type-id='f9b06939' visibility='default' filepath='include/linux/dmaengine.h' line='563' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='from_cnt' type-id='f9b06939' visibility='default' filepath='include/linux/dmaengine.h' line='564' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bidi_cnt' type-id='f9b06939' visibility='default' filepath='include/linux/dmaengine.h' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/dmaengine.h' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='include/linux/dmaengine.h' line='567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='len' type-id='b59d7dce' visibility='default' filepath='include/linux/dmaengine.h' line='568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='addr' type-id='55685a92' visibility='default' filepath='include/linux/dmaengine.h' line='569' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b32e5b88'>
+        <parameter type-id='18d76f87'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='f9409001'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b331d35e'>
+        <parameter type-id='58ed56f5'/>
+        <parameter type-id='69bf7bee'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='2afe412f' size-in-bits='64' id='b3405adf'/>
+      <pointer-type-def type-id='33f6a667' size-in-bits='64' id='b346094b'/>
+      <pointer-type-def type-id='1a4194ca' size-in-bits='64' id='b347e5ac'/>
+      <class-decl name='__drm_crtcs_state' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/drm/drm_atomic.h' line='165' column='1' id='b35335c8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ptr' type-id='b64ad7cb' visibility='default' filepath='include/drm/drm_atomic.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='state' type-id='35078cb9' visibility='default' filepath='include/drm/drm_atomic.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='old_state' type-id='35078cb9' visibility='default' filepath='include/drm/drm_atomic.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='new_state' type-id='35078cb9' visibility='default' filepath='include/drm/drm_atomic.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='commit' type-id='3f40b771' visibility='default' filepath='include/drm/drm_atomic.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='out_fence_ptr' type-id='9f2cce4b' visibility='default' filepath='include/drm/drm_atomic.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='last_vblank_count' type-id='91ce1af9' visibility='default' filepath='include/drm/drm_atomic.h' line='180' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c026ae59' size-in-bits='64' id='b3542b31'/>
+      <pointer-type-def type-id='7a7da240' size-in-bits='64' id='b3550926'/>
+      <function-type size-in-bits='64' id='b35541cf'>
+        <parameter type-id='478ed79d'/>
+        <parameter type-id='d0835005'/>
+        <parameter type-id='35078cb9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b359f47f'>
+        <parameter type-id='85196e3f'/>
+        <return type-id='453a795e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b3649053'>
+        <parameter type-id='77d89dc7'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='57a41d3b'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b364ee65'>
+        <parameter type-id='68a2d05b'/>
+        <return type-id='19c2251e'/>
+      </function-type>
+      <pointer-type-def type-id='fae72313' size-in-bits='64' id='b36896a7'/>
+      <function-type size-in-bits='64' id='b36b391c'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='c2c60445'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='watchdog_device' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/linux/watchdog.h' line='94' column='1' id='b370f5a5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/watchdog.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='parent' type-id='fa0b179b' visibility='default' filepath='include/linux/watchdog.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='groups' type-id='c97de1ac' visibility='default' filepath='include/linux/watchdog.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='info' type-id='9800391a' visibility='default' filepath='include/linux/watchdog.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ops' type-id='7365a3da' visibility='default' filepath='include/linux/watchdog.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='gov' type-id='22358840' visibility='default' filepath='include/linux/watchdog.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='bootstatus' type-id='f0981eeb' visibility='default' filepath='include/linux/watchdog.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='timeout' type-id='f0981eeb' visibility='default' filepath='include/linux/watchdog.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pretimeout' type-id='f0981eeb' visibility='default' filepath='include/linux/watchdog.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='min_timeout' type-id='f0981eeb' visibility='default' filepath='include/linux/watchdog.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='max_timeout' type-id='f0981eeb' visibility='default' filepath='include/linux/watchdog.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='min_hw_heartbeat_ms' type-id='f0981eeb' visibility='default' filepath='include/linux/watchdog.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='max_hw_heartbeat_ms' type-id='f0981eeb' visibility='default' filepath='include/linux/watchdog.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='reboot_nb' type-id='9b08f7cd' visibility='default' filepath='include/linux/watchdog.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='restart_nb' type-id='9b08f7cd' visibility='default' filepath='include/linux/watchdog.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='pm_nb' type-id='9b08f7cd' visibility='default' filepath='include/linux/watchdog.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/watchdog.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='wd_data' type-id='daa81219' visibility='default' filepath='include/linux/watchdog.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='status' type-id='7359adad' visibility='default' filepath='include/linux/watchdog.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='deferred' type-id='72f469ec' visibility='default' filepath='include/linux/watchdog.h' line='121' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5392630e' size-in-bits='64' id='b37211ac'/>
+      <pointer-type-def type-id='aca12822' size-in-bits='64' id='b38e2e84'/>
+      <function-type size-in-bits='64' id='b39453c8'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='02f11ed4'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='eea6b025'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='cf29c9b3'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b3a7f771'>
+        <parameter type-id='513f51db'/>
+        <return type-id='bd54fe1a'/>
+      </function-type>
+      <class-decl name='vb2_plane' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/media/videobuf2-core.h' line='178' column='1' id='b3ad2c1c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mem_priv' type-id='eaa32e2f' visibility='default' filepath='include/media/videobuf2-core.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dbuf' type-id='5e4f599b' visibility='default' filepath='include/media/videobuf2-core.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dbuf_mapped' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='bytesused' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='length' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='min_length' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='m' type-id='ac5ab607' visibility='default' filepath='include/media/videobuf2-core.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='data_offset' type-id='f0981eeb' visibility='default' filepath='include/media/videobuf2-core.h' line='190' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b3aef54c'>
+        <parameter type-id='00ee50b8'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='bdcee7ae'/>
+        <parameter type-id='bdcee7ae'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b3bc5b3a'>
+        <parameter type-id='031224de'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <class-decl name='usb_anchor' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1396' column='1' id='b3bcc053'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='urb_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1397' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='wait' type-id='b5ab048f' visibility='default' filepath='include/linux/usb.h' line='1398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/usb.h' line='1399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='suspend_wakeups' type-id='49178f86' visibility='default' filepath='include/linux/usb.h' line='1400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='poisoned' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1401' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b3bf9ca3'>
+        <parameter type-id='204a4632'/>
+        <parameter type-id='4eae5cb0'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='ab1b35ba' size-in-bits='64' id='b3c6c7b8'/>
+      <pointer-type-def type-id='0706d6e8' size-in-bits='64' id='b3c70e7a'/>
+      <pointer-type-def type-id='a79adfa3' size-in-bits='64' id='b3ce99dc'/>
+      <class-decl name='msi_alloc_info' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/asm-generic/msi.h' line='24' column='1' id='b3d73007'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='desc' type-id='b11825ce' visibility='default' filepath='include/asm-generic/msi.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hwirq' type-id='88370ce9' visibility='default' filepath='include/asm-generic/msi.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/asm-generic/msi.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='scratchpad' type-id='f7b1166e' visibility='default' filepath='include/asm-generic/msi.h' line='31' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c85f87a7' size-in-bits='64' id='b3e04083'/>
+      <enum-decl name='tc_setup_type' filepath='include/linux/netdevice.h' line='937' column='1' id='b3e12f1c'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='TC_SETUP_QDISC_MQPRIO' value='0'/>
+        <enumerator name='TC_SETUP_CLSU32' value='1'/>
+        <enumerator name='TC_SETUP_CLSFLOWER' value='2'/>
+        <enumerator name='TC_SETUP_CLSMATCHALL' value='3'/>
+        <enumerator name='TC_SETUP_CLSBPF' value='4'/>
+        <enumerator name='TC_SETUP_BLOCK' value='5'/>
+        <enumerator name='TC_SETUP_QDISC_CBS' value='6'/>
+        <enumerator name='TC_SETUP_QDISC_RED' value='7'/>
+        <enumerator name='TC_SETUP_QDISC_PRIO' value='8'/>
+        <enumerator name='TC_SETUP_QDISC_MQ' value='9'/>
+        <enumerator name='TC_SETUP_QDISC_ETF' value='10'/>
+        <enumerator name='TC_SETUP_ROOT_QDISC' value='11'/>
+        <enumerator name='TC_SETUP_QDISC_GRED' value='12'/>
+        <enumerator name='TC_SETUP_QDISC_TAPRIO' value='13'/>
+        <enumerator name='TC_SETUP_FT' value='14'/>
+        <enumerator name='TC_SETUP_QDISC_ETS' value='15'/>
+        <enumerator name='TC_SETUP_QDISC_TBF' value='16'/>
+        <enumerator name='TC_SETUP_QDISC_FIFO' value='17'/>
+        <enumerator name='TC_SETUP_QDISC_HTB' value='18'/>
+      </enum-decl>
+      <pointer-type-def type-id='e0f20690' size-in-bits='64' id='b3e568e2'/>
+      <typedef-decl name='nvmem_reg_read_t' type-id='3ba5153c' filepath='include/linux/nvmem-provider.h' line='18' column='1' id='b3e77ef6'/>
+      <pointer-type-def type-id='bd4a4592' size-in-bits='64' id='b3ebc0a8'/>
+      <pointer-type-def type-id='c408da30' size-in-bits='64' id='b3ef56ee'/>
+      <pointer-type-def type-id='0b3fb2b5' size-in-bits='64' id='b3f47ee5'/>
+      <pointer-type-def type-id='9d9db488' size-in-bits='64' id='b3f54aba'/>
+      <function-type size-in-bits='64' id='b3f5a3c1'>
+        <parameter type-id='2661e0d9'/>
+        <parameter type-id='47f117d4'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='xfrm_replay_state_esn' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/xfrm.h' line='92' column='1' id='b3f5c5f7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bmp_len' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/xfrm.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='oseq' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/xfrm.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='seq' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/xfrm.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='oseq_hi' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/xfrm.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='seq_hi' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/xfrm.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='replay_window' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/xfrm.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bmp' type-id='d5016f6f' visibility='default' filepath='include/uapi/linux/xfrm.h' line='99' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='vring_avail' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/virtio_ring.h' line='108' column='1' id='b3f6da27'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='b7a93b96' visibility='default' filepath='include/uapi/linux/virtio_ring.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='idx' type-id='b7a93b96' visibility='default' filepath='include/uapi/linux/virtio_ring.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ring' type-id='5f759053' visibility='default' filepath='include/uapi/linux/virtio_ring.h' line='111' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b3fff074'>
+        <parameter type-id='4b4b90b3'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b41203ee'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='fde1bbcb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='3f4ad3b4' const='yes' id='b421eeb7'/>
+      <pointer-type-def type-id='d1ae25b5' size-in-bits='64' id='b425394d'/>
+      <pointer-type-def type-id='03d44987' size-in-bits='64' id='b42ffb57'/>
+      <function-type size-in-bits='64' id='b43302df'>
+        <parameter type-id='807b7702'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='module_sect_attrs' size-in-bits='384' is-struct='yes' visibility='default' filepath='kernel/module.c' line='1494' column='1' id='b43b0dce'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='grp' type-id='e4af473b' visibility='default' filepath='kernel/module.c' line='1495' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='nsections' type-id='f0981eeb' visibility='default' filepath='kernel/module.c' line='1496' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='attrs' type-id='ae08da59' visibility='default' filepath='kernel/module.c' line='1497' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pollfd' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/asm-generic/poll.h' line='36' column='1' id='b440e872'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fd' type-id='95e97e5e' visibility='default' filepath='include/uapi/asm-generic/poll.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='events' type-id='a2185560' visibility='default' filepath='include/uapi/asm-generic/poll.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='revents' type-id='a2185560' visibility='default' filepath='include/uapi/asm-generic/poll.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='__kernel_gid32_t' type-id='f0981eeb' filepath='include/uapi/asm-generic/posix_types.h' line='50' column='1' id='b4413cee'/>
+      <function-type size-in-bits='64' id='b44140ca'>
+        <parameter type-id='18881289'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='drm_mode_config_funcs' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/drm/drm_mode_config.h' line='47' column='1' id='b444361f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fb_create' type-id='fd8daf85' visibility='default' filepath='include/drm/drm_mode_config.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='get_format_info' type-id='f2bb73e9' visibility='default' filepath='include/drm/drm_mode_config.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='output_poll_changed' type-id='62995e90' visibility='default' filepath='include/drm/drm_mode_config.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mode_valid' type-id='57ca5882' visibility='default' filepath='include/drm/drm_mode_config.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='atomic_check' type-id='d74fad0a' visibility='default' filepath='include/drm/drm_mode_config.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='atomic_commit' type-id='69b48bd3' visibility='default' filepath='include/drm/drm_mode_config.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='atomic_state_alloc' type-id='27c3122f' visibility='default' filepath='include/drm/drm_mode_config.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='atomic_state_clear' type-id='75795f13' visibility='default' filepath='include/drm/drm_mode_config.h' line='324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='atomic_state_free' type-id='75795f13' visibility='default' filepath='include/drm/drm_mode_config.h' line='339' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='i3c_master_controller_ops' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/linux/i3c/master.h' line='430' column='1' id='b4470bcd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bus_init' type-id='523f0bd4' visibility='default' filepath='include/linux/i3c/master.h' line='431' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bus_cleanup' type-id='94c01051' visibility='default' filepath='include/linux/i3c/master.h' line='432' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='attach_i3c_dev' type-id='261a5572' visibility='default' filepath='include/linux/i3c/master.h' line='433' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='reattach_i3c_dev' type-id='2080d6f2' visibility='default' filepath='include/linux/i3c/master.h' line='434' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='detach_i3c_dev' type-id='ef872b61' visibility='default' filepath='include/linux/i3c/master.h' line='435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='do_daa' type-id='523f0bd4' visibility='default' filepath='include/linux/i3c/master.h' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='supports_ccc_cmd' type-id='29a9af43' visibility='default' filepath='include/linux/i3c/master.h' line='437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='send_ccc_cmd' type-id='3ddec21c' visibility='default' filepath='include/linux/i3c/master.h' line='439' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='priv_xfers' type-id='79c75e82' visibility='default' filepath='include/linux/i3c/master.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='attach_i2c_dev' type-id='3f45614f' visibility='default' filepath='include/linux/i3c/master.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='detach_i2c_dev' type-id='63be09f4' visibility='default' filepath='include/linux/i3c/master.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='i2c_xfers' type-id='cbe15ded' visibility='default' filepath='include/linux/i3c/master.h' line='446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='request_ibi' type-id='7b11af2f' visibility='default' filepath='include/linux/i3c/master.h' line='448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='free_ibi' type-id='ef872b61' visibility='default' filepath='include/linux/i3c/master.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='enable_ibi' type-id='261a5572' visibility='default' filepath='include/linux/i3c/master.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='disable_ibi' type-id='261a5572' visibility='default' filepath='include/linux/i3c/master.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='recycle_ibi_slot' type-id='36e7f6dc' visibility='default' filepath='include/linux/i3c/master.h' line='453' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ce79ab50' size-in-bits='64' id='b44880ea'/>
+      <pointer-type-def type-id='dee7c78d' size-in-bits='64' id='b453d391'/>
+      <class-decl name='rchan_buf' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/linux/relay.h' line='34' column='1' id='b455b783'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='eaa32e2f' visibility='default' filepath='include/linux/relay.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/relay.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='offset' type-id='b59d7dce' visibility='default' filepath='include/linux/relay.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='subbufs_produced' type-id='b59d7dce' visibility='default' filepath='include/linux/relay.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='subbufs_consumed' type-id='b59d7dce' visibility='default' filepath='include/linux/relay.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='chan' type-id='e6634369' visibility='default' filepath='include/linux/relay.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='read_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/relay.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='wakeup_work' type-id='9281c70f' visibility='default' filepath='include/linux/relay.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='dentry' type-id='27675065' visibility='default' filepath='include/linux/relay.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='include/linux/relay.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='page_array' type-id='9f93c9da' visibility='default' filepath='include/linux/relay.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='page_count' type-id='f0981eeb' visibility='default' filepath='include/linux/relay.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='finalized' type-id='f0981eeb' visibility='default' filepath='include/linux/relay.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='padding' type-id='78c01427' visibility='default' filepath='include/linux/relay.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='prev_padding' type-id='b59d7dce' visibility='default' filepath='include/linux/relay.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='bytes_consumed' type-id='b59d7dce' visibility='default' filepath='include/linux/relay.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='early_bytes' type-id='b59d7dce' visibility='default' filepath='include/linux/relay.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='cpu' type-id='f0981eeb' visibility='default' filepath='include/linux/relay.h' line='53' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='hdr_sink_metadata' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/hdmi.h' line='378' column='1' id='b459f8ff'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='metadata_type' type-id='3f1a6b60' visibility='default' filepath='include/linux/hdmi.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='' type-id='ac5ab5d6' visibility='default' filepath='include/linux/hdmi.h' line='386' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pr_ops' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/pr.h' line='7' column='1' id='b45c773c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pr_register' type-id='0b6bd27e' visibility='default' filepath='include/linux/pr.h' line='8' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pr_reserve' type-id='28138af2' visibility='default' filepath='include/linux/pr.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pr_release' type-id='eda6f223' visibility='default' filepath='include/linux/pr.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pr_preempt' type-id='af664338' visibility='default' filepath='include/linux/pr.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='pr_clear' type-id='45f42df9' visibility='default' filepath='include/linux/pr.h' line='16' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a06ec50c' size-in-bits='64' id='b4605ad2'/>
+      <typedef-decl name='perf_copy_f' type-id='a056c492' filepath='include/linux/perf_event.h' line='75' column='1' id='b468b440'/>
+      <array-type-def dimensions='1' type-id='8efea9e5' size-in-bits='448' id='b469d7a7'>
+        <subrange length='28' type-id='7ff19f0f' id='3db583d7'/>
+      </array-type-def>
+      <pointer-type-def type-id='10117043' size-in-bits='64' id='b473f54b'/>
+      <pointer-type-def type-id='5786af66' size-in-bits='64' id='b47996f0'/>
+      <function-type size-in-bits='64' id='b47ad2f2'>
+        <parameter type-id='12884b9a'/>
+        <parameter type-id='ab85b8f2'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='2dfcfaf9' size-in-bits='64' id='b47b0d41'/>
+      <pointer-type-def type-id='06497f5c' size-in-bits='64' id='b47c553a'/>
+      <enum-decl name='pin_config_param' filepath='include/linux/pinctrl/pinconf-generic.h' line='112' column='1' id='b486b770'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PIN_CONFIG_BIAS_BUS_HOLD' value='0'/>
+        <enumerator name='PIN_CONFIG_BIAS_DISABLE' value='1'/>
+        <enumerator name='PIN_CONFIG_BIAS_HIGH_IMPEDANCE' value='2'/>
+        <enumerator name='PIN_CONFIG_BIAS_PULL_DOWN' value='3'/>
+        <enumerator name='PIN_CONFIG_BIAS_PULL_PIN_DEFAULT' value='4'/>
+        <enumerator name='PIN_CONFIG_BIAS_PULL_UP' value='5'/>
+        <enumerator name='PIN_CONFIG_DRIVE_OPEN_DRAIN' value='6'/>
+        <enumerator name='PIN_CONFIG_DRIVE_OPEN_SOURCE' value='7'/>
+        <enumerator name='PIN_CONFIG_DRIVE_PUSH_PULL' value='8'/>
+        <enumerator name='PIN_CONFIG_DRIVE_STRENGTH' value='9'/>
+        <enumerator name='PIN_CONFIG_DRIVE_STRENGTH_UA' value='10'/>
+        <enumerator name='PIN_CONFIG_INPUT_DEBOUNCE' value='11'/>
+        <enumerator name='PIN_CONFIG_INPUT_ENABLE' value='12'/>
+        <enumerator name='PIN_CONFIG_INPUT_SCHMITT' value='13'/>
+        <enumerator name='PIN_CONFIG_INPUT_SCHMITT_ENABLE' value='14'/>
+        <enumerator name='PIN_CONFIG_MODE_LOW_POWER' value='15'/>
+        <enumerator name='PIN_CONFIG_MODE_PWM' value='16'/>
+        <enumerator name='PIN_CONFIG_OUTPUT' value='17'/>
+        <enumerator name='PIN_CONFIG_OUTPUT_ENABLE' value='18'/>
+        <enumerator name='PIN_CONFIG_PERSIST_STATE' value='19'/>
+        <enumerator name='PIN_CONFIG_POWER_SOURCE' value='20'/>
+        <enumerator name='PIN_CONFIG_SKEW_DELAY' value='21'/>
+        <enumerator name='PIN_CONFIG_SLEEP_HARDWARE_STATE' value='22'/>
+        <enumerator name='PIN_CONFIG_SLEW_RATE' value='23'/>
+        <enumerator name='PIN_CONFIG_END' value='127'/>
+        <enumerator name='PIN_CONFIG_MAX' value='255'/>
+      </enum-decl>
+      <pointer-type-def type-id='2b48c0bb' size-in-bits='64' id='b4872443'/>
+      <pointer-type-def type-id='184ee240' size-in-bits='64' id='b4888646'/>
+      <class-decl name='pinconf_ops' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/pinctrl/pinconf.h' line='38' column='1' id='b488fcb9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='is_generic' type-id='b50a4934' visibility='default' filepath='include/linux/pinctrl/pinconf.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pin_config_get' type-id='12d26e9b' visibility='default' filepath='include/linux/pinctrl/pinconf.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pin_config_set' type-id='d02d53e9' visibility='default' filepath='include/linux/pinctrl/pinconf.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pin_config_group_get' type-id='12d26e9b' visibility='default' filepath='include/linux/pinctrl/pinconf.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='pin_config_group_set' type-id='d02d53e9' visibility='default' filepath='include/linux/pinctrl/pinconf.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='pin_config_dbg_show' type-id='60403ce4' visibility='default' filepath='include/linux/pinctrl/pinconf.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='pin_config_group_dbg_show' type-id='60403ce4' visibility='default' filepath='include/linux/pinctrl/pinconf.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pin_config_config_dbg_show' type-id='fb17c5d2' visibility='default' filepath='include/linux/pinctrl/pinconf.h' line='62' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6cef7733' size-in-bits='64' id='b48dadb7'/>
+      <pointer-type-def type-id='42cd489a' size-in-bits='64' id='b49efd08'/>
+      <class-decl name='hdmi_audio_infoframe' size-in-bits='224' is-struct='yes' visibility='default' filepath='include/linux/hdmi.h' line='319' column='1' id='b4a1ba48'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='c573b339' visibility='default' filepath='include/linux/hdmi.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='version' type-id='002ac4a6' visibility='default' filepath='include/linux/hdmi.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='length' type-id='002ac4a6' visibility='default' filepath='include/linux/hdmi.h' line='322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='channels' type-id='002ac4a6' visibility='default' filepath='include/linux/hdmi.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='coding_type' type-id='3fe6d7c3' visibility='default' filepath='include/linux/hdmi.h' line='324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='sample_size' type-id='73deb9e6' visibility='default' filepath='include/linux/hdmi.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sample_frequency' type-id='75c2c977' visibility='default' filepath='include/linux/hdmi.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='coding_type_ext' type-id='795120af' visibility='default' filepath='include/linux/hdmi.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='channel_allocation' type-id='002ac4a6' visibility='default' filepath='include/linux/hdmi.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='level_shift_value' type-id='002ac4a6' visibility='default' filepath='include/linux/hdmi.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='downmix_inhibit' type-id='b50a4934' visibility='default' filepath='include/linux/hdmi.h' line='330' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b4a1f53d'>
+        <parameter type-id='7bf5a5e5'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='bd54fe1a'/>
+      </function-type>
+      <class-decl name='platform_device_info' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/platform_device.h' line='91' column='1' id='b4a2c74e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='parent' type-id='fa0b179b' visibility='default' filepath='include/linux/platform_device.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fwnode' type-id='4a935625' visibility='default' filepath='include/linux/platform_device.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='of_node_reused' type-id='b50a4934' visibility='default' filepath='include/linux/platform_device.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/platform_device.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/platform_device.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='res' type-id='e153f6de' visibility='default' filepath='include/linux/platform_device.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='num_res' type-id='f0981eeb' visibility='default' filepath='include/linux/platform_device.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/platform_device.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='size_data' type-id='b59d7dce' visibility='default' filepath='include/linux/platform_device.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='dma_mask' type-id='91ce1af9' visibility='default' filepath='include/linux/platform_device.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='properties' type-id='9e1d140c' visibility='default' filepath='include/linux/platform_device.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/platform_device.h' line='108' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='xfrm_address_filter' size-in-bits='288' is-struct='yes' visibility='default' filepath='include/uapi/linux/xfrm.h' line='502' column='1' id='b4a65d38'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='saddr' type-id='c210d497' visibility='default' filepath='include/uapi/linux/xfrm.h' line='503' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='daddr' type-id='c210d497' visibility='default' filepath='include/uapi/linux/xfrm.h' line='504' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='family' type-id='d315442e' visibility='default' filepath='include/uapi/linux/xfrm.h' line='505' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='splen' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/xfrm.h' line='506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='280'>
+          <var-decl name='dplen' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/xfrm.h' line='507' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='27fe31c0' size-in-bits='64' id='b4ade13a'/>
+      <pointer-type-def type-id='ae5fc04a' size-in-bits='64' id='b4b06bb8'/>
+      <pointer-type-def type-id='bd2407df' size-in-bits='64' id='b4b886af'/>
+      <class-decl name='file' size-in-bits='2112' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='985' column='1' id='b4b8adeb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='f_u' type-id='ac5ab632' visibility='default' filepath='include/linux/fs.h' line='989' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='f_path' type-id='b5382ece' visibility='default' filepath='include/linux/fs.h' line='990' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='f_inode' type-id='7e666abe' visibility='default' filepath='include/linux/fs.h' line='991' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='f_op' type-id='61758ee5' visibility='default' filepath='include/linux/fs.h' line='992' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='f_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/fs.h' line='998' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='f_write_hint' type-id='0d20c3dd' visibility='default' filepath='include/linux/fs.h' line='999' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='f_count' type-id='f22a8abb' visibility='default' filepath='include/linux/fs.h' line='1000' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='f_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='1001' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='f_mode' type-id='2665334e' visibility='default' filepath='include/linux/fs.h' line='1002' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='f_pos_lock' type-id='925167dc' visibility='default' filepath='include/linux/fs.h' line='1003' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='f_pos' type-id='69bf7bee' visibility='default' filepath='include/linux/fs.h' line='1004' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='f_owner' type-id='6b640edd' visibility='default' filepath='include/linux/fs.h' line='1005' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='f_cred' type-id='bc33861a' visibility='default' filepath='include/linux/fs.h' line='1006' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='f_ra' type-id='b31f003f' visibility='default' filepath='include/linux/fs.h' line='1007' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='f_version' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1009' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='f_security' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs.h' line='1011' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs.h' line='1014' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='f_ep' type-id='030d0b18' visibility='default' filepath='include/linux/fs.h' line='1018' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='f_mapping' type-id='f57039f0' visibility='default' filepath='include/linux/fs.h' line='1020' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='f_wb_err' type-id='1da55f79' visibility='default' filepath='include/linux/fs.h' line='1021' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1952'>
+          <var-decl name='f_sb_err' type-id='1da55f79' visibility='default' filepath='include/linux/fs.h' line='1022' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1024' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1025' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='d315442e' size-in-bits='160' id='b4bb2e32'>
+        <subrange length='10' type-id='7ff19f0f' id='487da03a'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='b4bb7eac'>
+        <parameter type-id='2facc7e6'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='icmpmsg_mib' size-in-bits='32768' is-struct='yes' visibility='default' filepath='include/net/snmp.h' line='64' column='1' id='b4bfe052'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mibs' type-id='61cd76ae' visibility='default' filepath='include/net/snmp.h' line='65' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b4c4ed0b'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='devlink_sb_pool_type' filepath='include/uapi/linux/devlink.h' line='146' column='1' id='b4c4f641'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEVLINK_SB_POOL_TYPE_INGRESS' value='0'/>
+        <enumerator name='DEVLINK_SB_POOL_TYPE_EGRESS' value='1'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='b4cb0241'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='f9f4b16f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3419e4c5' size-in-bits='64' id='b4da87d9'/>
+      <function-type size-in-bits='64' id='b4db8337'>
+        <parameter type-id='85196e3f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b4dce158'>
+        <parameter type-id='fce0537d'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='876d3bbc' size-in-bits='64' id='b4de78ea'/>
+      <enum-decl name='devlink_rate_type' filepath='include/uapi/linux/devlink.h' line='214' column='1' id='b4e584cb'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEVLINK_RATE_TYPE_LEAF' value='0'/>
+        <enumerator name='DEVLINK_RATE_TYPE_NODE' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='278041ac' size-in-bits='64' id='b4e725f2'/>
+      <class-decl name='fib6_config' is-struct='yes' visibility='default' is-declaration-only='yes' id='b4ee5e67'/>
+      <class-decl name='__kernel_sockaddr_storage' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/uapi/linux/socket.h' line='16' column='1' id='b4f14516'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab5cd' visibility='default' filepath='include/uapi/linux/socket.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7b2b38d1' size-in-bits='64' id='b4f312f9'/>
+      <pointer-type-def type-id='02f1c4a9' size-in-bits='64' id='b4fb1c55'/>
+      <pointer-type-def type-id='2eb8da02' size-in-bits='64' id='b4ff6cf8'/>
+      <array-type-def dimensions='1' type-id='8c2bf2b2' size-in-bits='infinite' id='b50399da'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='1c63824d' size-in-bits='64' id='b5063f39'/>
+      <typedef-decl name='bool' type-id='c894953d' filepath='include/linux/types.h' line='30' column='1' id='b50a4934'/>
+      <pointer-type-def type-id='ba69e54c' size-in-bits='64' id='b50ade7a'/>
+      <class-decl name='dma_async_tx_descriptor' size-in-bits='1152' is-struct='yes' visibility='default' filepath='include/linux/dmaengine.h' line='607' column='1' id='b50ce591'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cookie' type-id='6478ea0a' visibility='default' filepath='include/linux/dmaengine.h' line='608' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='flags' type-id='04baee86' visibility='default' filepath='include/linux/dmaengine.h' line='609' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='phys' type-id='cf29c9b3' visibility='default' filepath='include/linux/dmaengine.h' line='610' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='chan' type-id='27f3f5d8' visibility='default' filepath='include/linux/dmaengine.h' line='611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tx_submit' type-id='fb8c75c5' visibility='default' filepath='include/linux/dmaengine.h' line='612' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='desc_free' type-id='dccdb2b1' visibility='default' filepath='include/linux/dmaengine.h' line='613' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='callback' type-id='ee3f36d4' visibility='default' filepath='include/linux/dmaengine.h' line='614' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='callback_result' type-id='82615040' visibility='default' filepath='include/linux/dmaengine.h' line='615' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='callback_param' type-id='eaa32e2f' visibility='default' filepath='include/linux/dmaengine.h' line='616' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='unmap' type-id='e220a5e2' visibility='default' filepath='include/linux/dmaengine.h' line='617' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='desc_metadata_mode' type-id='8ae66bc4' visibility='default' filepath='include/linux/dmaengine.h' line='618' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='metadata_ops' type-id='924ae97c' visibility='default' filepath='include/linux/dmaengine.h' line='619' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='next' type-id='0e3f80d9' visibility='default' filepath='include/linux/dmaengine.h' line='621' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='parent' type-id='0e3f80d9' visibility='default' filepath='include/linux/dmaengine.h' line='622' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/dmaengine.h' line='623' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/dmaengine.h' line='626' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/dmaengine.h' line='627' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/dmaengine.h' line='628' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/dmaengine.h' line='629' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9977c731' size-in-bits='64' id='b512ba7d'/>
+      <class-decl name='pci_epc_mem_window' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/pci-epc.h' line='100' column='1' id='b517e659'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='phys_base' type-id='2522883d' visibility='default' filepath='include/linux/pci-epc.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='include/linux/pci-epc.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='page_size' type-id='b59d7dce' visibility='default' filepath='include/linux/pci-epc.h' line='103' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='device_link' size-in-bits='8384' is-struct='yes' visibility='default' filepath='include/linux/device.h' line='603' column='1' id='b52abcec'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='supplier' type-id='fa0b179b' visibility='default' filepath='include/linux/device.h' line='604' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='s_node' type-id='72f469ec' visibility='default' filepath='include/linux/device.h' line='605' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='consumer' type-id='fa0b179b' visibility='default' filepath='include/linux/device.h' line='606' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='c_node' type-id='72f469ec' visibility='default' filepath='include/linux/device.h' line='607' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='link_dev' type-id='66e487eb' visibility='default' filepath='include/linux/device.h' line='608' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='status' type-id='3f7ac0c9' visibility='default' filepath='include/linux/device.h' line='609' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7712'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/linux/device.h' line='610' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='rpm_active' type-id='64615833' visibility='default' filepath='include/linux/device.h' line='611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7776'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='include/linux/device.h' line='612' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='rm_work' type-id='ef9025d0' visibility='default' filepath='include/linux/device.h' line='613' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='supplier_preactivated' type-id='b50a4934' visibility='default' filepath='include/linux/device.h' line='614' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/device.h' line='615' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/device.h' line='616' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b52da57b'>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='cfff5953'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='942a7948' size-in-bits='64' id='b52eac2e'/>
+      <pointer-type-def type-id='20cd6817' size-in-bits='64' id='b530e24b'/>
+      <pointer-type-def type-id='78d147c7' size-in-bits='64' id='b535be93'/>
+      <class-decl name='path' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/path.h' line='8' column='1' id='b5382ece'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mnt' type-id='549da823' visibility='default' filepath='include/linux/path.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dentry' type-id='27675065' visibility='default' filepath='include/linux/path.h' line='10' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='69bf7bee' size-in-bits='64' id='b53e8dbb'/>
+      <class-decl name='bio_crypt_ctx' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/blk-crypto.h' line='71' column='1' id='b545ce08'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bc_key' type-id='9baaf905' visibility='default' filepath='include/linux/blk-crypto.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bc_dun' type-id='20b279f0' visibility='default' filepath='include/linux/blk-crypto.h' line='73' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__kernel_timex_timeval' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/timex.h' line='97' column='1' id='b5478d75'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tv_sec' type-id='3d9e85cc' visibility='default' filepath='include/uapi/linux/timex.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tv_usec' type-id='1eb56b1e' visibility='default' filepath='include/uapi/linux/timex.h' line='99' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5a81cef0' size-in-bits='64' id='b548a676'/>
+      <pointer-type-def type-id='60cc85f5' size-in-bits='64' id='b548c585'/>
+      <typedef-decl name='HUF_CElt' type-id='79a8143f' filepath='lib/zstd/huf.h' line='129' column='1' id='b54ce7ac'/>
+      <pointer-type-def type-id='32ee1dcb' size-in-bits='64' id='b54cfa0f'/>
+      <typedef-decl name='__s16' type-id='a2185560' filepath='include/uapi/asm-generic/int-ll64.h' line='23' column='1' id='b55def60'/>
+      <function-type size-in-bits='64' id='b5691f14'>
+        <parameter type-id='8582e5ec'/>
+        <parameter type-id='f7b0e1b4'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='v4l2_subdev_core_ops' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='191' column='1' id='b569b18c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='log_status' type-id='a236743f' visibility='default' filepath='include/media/v4l2-subdev.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='s_io_pin_config' type-id='c52b8c36' visibility='default' filepath='include/media/v4l2-subdev.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='init' type-id='04cc4d9e' visibility='default' filepath='include/media/v4l2-subdev.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='load_fw' type-id='a236743f' visibility='default' filepath='include/media/v4l2-subdev.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='reset' type-id='04cc4d9e' visibility='default' filepath='include/media/v4l2-subdev.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='s_gpio' type-id='04cc4d9e' visibility='default' filepath='include/media/v4l2-subdev.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='command' type-id='cafb3255' visibility='default' filepath='include/media/v4l2-subdev.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ioctl' type-id='cafb3255' visibility='default' filepath='include/media/v4l2-subdev.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='compat_ioctl32' type-id='efb4ad67' visibility='default' filepath='include/media/v4l2-subdev.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='s_power' type-id='6d63cad6' visibility='default' filepath='include/media/v4l2-subdev.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='interrupt_service_routine' type-id='f3f22912' visibility='default' filepath='include/media/v4l2-subdev.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='subscribe_event' type-id='ae675015' visibility='default' filepath='include/media/v4l2-subdev.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='unsubscribe_event' type-id='ae675015' visibility='default' filepath='include/media/v4l2-subdev.h' line='214' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='8a3b11ed' const='yes' id='b56a1102'/>
+      <function-type size-in-bits='64' id='b5732d6f'>
+        <parameter type-id='29af9a71'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='v4l2_outputparm' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1218' column='1' id='b573e9f1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='capability' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='outputmode' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='timeperframe' type-id='5f37256e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='extendedmode' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='writebuffers' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='reserved' type-id='3fa29bab' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1224' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='thermal_notify_event' filepath='include/linux/thermal.h' line='49' column='1' id='b5808f5e'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='THERMAL_EVENT_UNSPECIFIED' value='0'/>
+        <enumerator name='THERMAL_EVENT_TEMP_SAMPLE' value='1'/>
+        <enumerator name='THERMAL_TRIP_VIOLATED' value='2'/>
+        <enumerator name='THERMAL_TRIP_CHANGED' value='3'/>
+        <enumerator name='THERMAL_DEVICE_DOWN' value='4'/>
+        <enumerator name='THERMAL_DEVICE_UP' value='5'/>
+        <enumerator name='THERMAL_DEVICE_POWER_CAPABILITY_CHANGED' value='6'/>
+        <enumerator name='THERMAL_TABLE_CHANGED' value='7'/>
+        <enumerator name='THERMAL_EVENT_KEEP_ALIVE' value='8'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='f1e1eb79' size-in-bits='512' id='b5839634'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='fc6d031c' size-in-bits='infinite' id='b585dd30'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <class-decl name='assoc_array' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/assoc_array.h' line='22' column='1' id='b58d1e12'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='root' type-id='815cf0d3' visibility='default' filepath='include/linux/assoc_array.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nr_leaves_on_tree' type-id='7359adad' visibility='default' filepath='include/linux/assoc_array.h' line='24' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='drm_mode_subconnector' filepath='include/uapi/drm/drm_mode.h' line='387' column='1' id='b590704f'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DRM_MODE_SUBCONNECTOR_Automatic' value='0'/>
+        <enumerator name='DRM_MODE_SUBCONNECTOR_Unknown' value='0'/>
+        <enumerator name='DRM_MODE_SUBCONNECTOR_VGA' value='1'/>
+        <enumerator name='DRM_MODE_SUBCONNECTOR_DVID' value='3'/>
+        <enumerator name='DRM_MODE_SUBCONNECTOR_DVIA' value='4'/>
+        <enumerator name='DRM_MODE_SUBCONNECTOR_Composite' value='5'/>
+        <enumerator name='DRM_MODE_SUBCONNECTOR_SVIDEO' value='6'/>
+        <enumerator name='DRM_MODE_SUBCONNECTOR_Component' value='8'/>
+        <enumerator name='DRM_MODE_SUBCONNECTOR_SCART' value='9'/>
+        <enumerator name='DRM_MODE_SUBCONNECTOR_DisplayPort' value='10'/>
+        <enumerator name='DRM_MODE_SUBCONNECTOR_HDMIA' value='11'/>
+        <enumerator name='DRM_MODE_SUBCONNECTOR_Native' value='15'/>
+        <enumerator name='DRM_MODE_SUBCONNECTOR_Wireless' value='18'/>
+      </enum-decl>
+      <class-decl name='hw_perf_event' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='134' column='1' id='b594b0c9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab599' visibility='default' filepath='include/linux/perf_event.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='target' type-id='f23e2572' visibility='default' filepath='include/linux/perf_event.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='addr_filters' type-id='eaa32e2f' visibility='default' filepath='include/linux/perf_event.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='addr_filters_gen' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='state' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='prev_count' type-id='7da7300e' visibility='default' filepath='include/linux/perf_event.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='sample_period' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='' type-id='ac5ab59a' visibility='default' filepath='include/linux/perf_event.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='interrupts_seq' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='interrupts' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='freq_time_stamp' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='freq_count_stamp' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='248' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='ufs_trace_str_t' filepath='drivers/scsi/ufs/ufs.h' line='624' column='1' id='b5952621'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='UFS_CMD_SEND' value='0'/>
+        <enumerator name='UFS_CMD_COMP' value='1'/>
+        <enumerator name='UFS_DEV_COMP' value='2'/>
+        <enumerator name='UFS_QUERY_SEND' value='3'/>
+        <enumerator name='UFS_QUERY_COMP' value='4'/>
+        <enumerator name='UFS_QUERY_ERR' value='5'/>
+        <enumerator name='UFS_TM_SEND' value='6'/>
+        <enumerator name='UFS_TM_COMP' value='7'/>
+        <enumerator name='UFS_TM_ERR' value='8'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='b5975902'>
+        <parameter type-id='141b6427'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='f9409001'/>
+      </function-type>
+      <pointer-type-def type-id='1f6f7940' size-in-bits='64' id='b598aef2'/>
+      <class-decl name='pinctrl_dev' size-in-bits='1664' is-struct='yes' visibility='default' filepath='drivers/pinctrl/core.h' line='42' column='1' id='b5990c25'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='drivers/pinctrl/core.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='desc' type-id='d4682107' visibility='default' filepath='drivers/pinctrl/core.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pin_desc_tree' type-id='d39738ac' visibility='default' filepath='drivers/pinctrl/core.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='pin_group_tree' type-id='d39738ac' visibility='default' filepath='drivers/pinctrl/core.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='num_groups' type-id='f0981eeb' visibility='default' filepath='drivers/pinctrl/core.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='pin_function_tree' type-id='d39738ac' visibility='default' filepath='drivers/pinctrl/core.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='num_functions' type-id='f0981eeb' visibility='default' filepath='drivers/pinctrl/core.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='gpio_ranges' type-id='72f469ec' visibility='default' filepath='drivers/pinctrl/core.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/pinctrl/core.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='drivers/pinctrl/core.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='drivers/pinctrl/core.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='p' type-id='73ea90c5' visibility='default' filepath='drivers/pinctrl/core.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='hog_default' type-id='f418ceb3' visibility='default' filepath='drivers/pinctrl/core.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='hog_sleep' type-id='f418ceb3' visibility='default' filepath='drivers/pinctrl/core.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='drivers/pinctrl/core.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='device_root' type-id='27675065' visibility='default' filepath='drivers/pinctrl/core.h' line='63' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='xfrm_replay_mode' filepath='include/net/xfrm.h' line='148' column='1' id='b5995253'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='XFRM_REPLAY_MODE_LEGACY' value='0'/>
+        <enumerator name='XFRM_REPLAY_MODE_BMP' value='1'/>
+        <enumerator name='XFRM_REPLAY_MODE_ESN' value='2'/>
+      </enum-decl>
+      <typedef-decl name='size_t' type-id='9e19ad6e' filepath='include/linux/types.h' line='55' column='1' id='b59d7dce'/>
+      <class-decl name='inet_frag_queue' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/net/inet_frag.h' line='78' column='1' id='b5a731bc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='f68e0adc' visibility='default' filepath='include/net/inet_frag.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='key' type-id='ac5ab651' visibility='default' filepath='include/net/inet_frag.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='timer' type-id='abe41e67' visibility='default' filepath='include/net/inet_frag.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/net/inet_frag.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/net/inet_frag.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='rb_fragments' type-id='dec44472' visibility='default' filepath='include/net/inet_frag.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='fragments_tail' type-id='0fbf3cfd' visibility='default' filepath='include/net/inet_frag.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='last_run_head' type-id='0fbf3cfd' visibility='default' filepath='include/net/inet_frag.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='stamp' type-id='fbc017ef' visibility='default' filepath='include/net/inet_frag.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='len' type-id='95e97e5e' visibility='default' filepath='include/net/inet_frag.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='meat' type-id='95e97e5e' visibility='default' filepath='include/net/inet_frag.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='flags' type-id='8f048e17' visibility='default' filepath='include/net/inet_frag.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1296'>
+          <var-decl name='max_size' type-id='1dc6a898' visibility='default' filepath='include/net/inet_frag.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='fqdir' type-id='943ad75f' visibility='default' filepath='include/net/inet_frag.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/inet_frag.h' line='96' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='wait_queue_head_t' type-id='cff07063' filepath='include/linux/wait.h' line='41' column='1' id='b5ab048f'/>
+      <qualified-type-def type-id='b98f7775' const='yes' id='b5b8ebc4'/>
+      <class-decl name='crypto_aes_ctx' size-in-bits='3872' is-struct='yes' visibility='default' filepath='include/crypto/aes.h' line='25' column='1' id='b5b9216e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='key_enc' type-id='08b4ad9f' visibility='default' filepath='include/crypto/aes.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='key_dec' type-id='08b4ad9f' visibility='default' filepath='include/crypto/aes.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='key_length' type-id='19c2251e' visibility='default' filepath='include/crypto/aes.h' line='28' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bdaa35b9' size-in-bits='64' id='b5bf9001'/>
+      <pointer-type-def type-id='ccf0660e' size-in-bits='64' id='b5c09288'/>
+      <pointer-type-def type-id='d4f1de57' size-in-bits='64' id='b5c13ec7'/>
+      <class-decl name='pinconf_generic_params' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/pinctrl/pinconf-generic.h' line='180' column='1' id='b5cf31bb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='property' type-id='b99c00c9' visibility='default' filepath='include/linux/pinctrl/pinconf-generic.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='param' type-id='b486b770' visibility='default' filepath='include/linux/pinctrl/pinconf-generic.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='default_value' type-id='19c2251e' visibility='default' filepath='include/linux/pinctrl/pinconf-generic.h' line='183' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b5d4a6d2'>
+        <parameter type-id='fa0b179b' name='parent'/>
+        <parameter type-id='eaa32e2f' name='data'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b5d64367'>
+        <parameter type-id='6c3b3f8e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='f7803e3d' size-in-bits='64' id='b5e1be35'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/asm-generic/posix_types.h' line='79' column='1' id='b5e25096' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='val' type-id='e4266c7e' visibility='default' filepath='include/uapi/asm-generic/posix_types.h' line='80' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='bd70a631' size-in-bits='16384' id='b5f2d796'>
+        <subrange length='256' type-id='7ff19f0f' id='36e5b9fa'/>
+      </array-type-def>
+      <pointer-type-def type-id='e5d19dc7' size-in-bits='64' id='b5fb9c17'/>
+      <pointer-type-def type-id='9da806d8' size-in-bits='64' id='b5fdec5e'/>
+      <qualified-type-def type-id='ed5b2002' const='yes' id='b60126bf'/>
+      <pointer-type-def type-id='9e33bce1' size-in-bits='64' id='b60e7255'/>
+      <pointer-type-def type-id='1ee46c97' size-in-bits='64' id='b615a053'/>
+      <enum-decl name='snd_soc_dpcm_trigger' filepath='include/sound/soc-dpcm.h' line='58' column='1' id='b615ca5b'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SND_SOC_DPCM_TRIGGER_PRE' value='0'/>
+        <enumerator name='SND_SOC_DPCM_TRIGGER_POST' value='1'/>
+        <enumerator name='SND_SOC_DPCM_TRIGGER_BESPOKE' value='2'/>
+      </enum-decl>
+      <enum-decl name='xhci_ring_type' filepath='drivers/usb/host/xhci.h' line='1592' column='1' id='b61681fc'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='TYPE_CTRL' value='0'/>
+        <enumerator name='TYPE_ISOC' value='1'/>
+        <enumerator name='TYPE_BULK' value='2'/>
+        <enumerator name='TYPE_INTR' value='3'/>
+        <enumerator name='TYPE_STREAM' value='4'/>
+        <enumerator name='TYPE_COMMAND' value='5'/>
+        <enumerator name='TYPE_EVENT' value='6'/>
+      </enum-decl>
+      <class-decl name='arch_hw_breakpoint' size-in-bits='192' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/hw_breakpoint.h' line='21' column='1' id='b61f34eb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='address' type-id='91ce1af9' visibility='default' filepath='arch/arm64/include/asm/hw_breakpoint.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='trigger' type-id='91ce1af9' visibility='default' filepath='arch/arm64/include/asm/hw_breakpoint.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ctrl' type-id='2633d065' visibility='default' filepath='arch/arm64/include/asm/hw_breakpoint.h' line='24' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='devlink_port' size-in-bits='2816' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='156' column='1' id='b62ee7e2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/devlink.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='param_list' type-id='72f469ec' visibility='default' filepath='include/net/devlink.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='region_list' type-id='72f469ec' visibility='default' filepath='include/net/devlink.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='devlink' type-id='e6b84692' visibility='default' filepath='include/net/devlink.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/net/devlink.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='type_lock' type-id='fb4018a0' visibility='default' filepath='include/net/devlink.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='type' type-id='b67ca2c0' visibility='default' filepath='include/net/devlink.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='desired_type' type-id='b67ca2c0' visibility='default' filepath='include/net/devlink.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='type_dev' type-id='eaa32e2f' visibility='default' filepath='include/net/devlink.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='attrs' type-id='650485a9' visibility='default' filepath='include/net/devlink.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='attrs_set' type-id='f9b06939' visibility='default' filepath='include/net/devlink.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1121'>
+          <var-decl name='switch_port' type-id='f9b06939' visibility='default' filepath='include/net/devlink.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='type_warn_dw' type-id='5ad6e0ef' visibility='default' filepath='include/net/devlink.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='reporter_list' type-id='72f469ec' visibility='default' filepath='include/net/devlink.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='reporters_lock' type-id='925167dc' visibility='default' filepath='include/net/devlink.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='devlink_rate' type-id='63e6cf23' visibility='default' filepath='include/net/devlink.h' line='175' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='68a72cd7' size-in-bits='64' id='b6316a7f'/>
+      <pointer-type-def type-id='5260af22' size-in-bits='64' id='b6338998'/>
+      <class-decl name='sync_file' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/linux/sync_file.h' line='35' column='1' id='b6352c99'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='file' type-id='77e79a4b' visibility='default' filepath='include/linux/sync_file.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='user_name' type-id='16dc656a' visibility='default' filepath='include/linux/sync_file.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='sync_file_list' type-id='72f469ec' visibility='default' filepath='include/linux/sync_file.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='wq' type-id='b5ab048f' visibility='default' filepath='include/linux/sync_file.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/sync_file.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='fence' type-id='28271da3' visibility='default' filepath='include/linux/sync_file.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='cb' type-id='54c5dd35' visibility='default' filepath='include/linux/sync_file.h' line='53' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3f5f978b' size-in-bits='64' id='b64ad7cb'/>
+      <qualified-type-def type-id='c4b04493' const='yes' id='b64da4b2'/>
+      <pointer-type-def type-id='3434ed92' size-in-bits='64' id='b6566954'/>
+      <function-type size-in-bits='64' id='b6577688'>
+        <parameter type-id='aa9ea333'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='rps_dev_flow' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='697' column='1' id='b65a052d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cpu' type-id='1dc6a898' visibility='default' filepath='include/linux/netdevice.h' line='698' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='filter' type-id='1dc6a898' visibility='default' filepath='include/linux/netdevice.h' line='699' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='last_qtail' type-id='f0981eeb' visibility='default' filepath='include/linux/netdevice.h' line='700' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='dr_release_t' type-id='680bf43c' filepath='include/linux/device.h' line='166' column='1' id='b6609e5b'/>
+      <pointer-type-def type-id='690d3bc2' size-in-bits='64' id='b6633a3c'/>
+      <pointer-type-def type-id='5452befe' size-in-bits='64' id='b66e3fa0'/>
+      <pointer-type-def type-id='ff22cb55' size-in-bits='64' id='b6733265'/>
+      <enum-decl name='devlink_port_type' filepath='include/uapi/linux/devlink.h' line='139' column='1' id='b67ca2c0'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEVLINK_PORT_TYPE_NOTSET' value='0'/>
+        <enumerator name='DEVLINK_PORT_TYPE_AUTO' value='1'/>
+        <enumerator name='DEVLINK_PORT_TYPE_ETH' value='2'/>
+        <enumerator name='DEVLINK_PORT_TYPE_IB' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='79790457' size-in-bits='64' id='b68210c7'/>
+      <qualified-type-def type-id='709bf5ba' const='yes' id='b68346f7'/>
+      <class-decl name='regmap_range_cfg' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/regmap.h' line='444' column='1' id='b683d7fe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/regmap.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='range_min' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='range_max' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='selector_reg' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='selector_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='selector_shift' type-id='95e97e5e' visibility='default' filepath='include/linux/regmap.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='window_start' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='window_len' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/regmap.h' line='460' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b68c3fba'>
+        <parameter type-id='07af3c3c'/>
+        <return type-id='bd54fe1a'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b6900fae'>
+        <parameter type-id='bf4bdb64'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='1c63cc3f'/>
+        <return type-id='b59d7dce'/>
+      </function-type>
+      <pointer-type-def type-id='1785a6e2' size-in-bits='64' id='b698e72c'/>
+      <class-decl name='hrtimer' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/hrtimer.h' line='119' column='1' id='b6993efc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='fe3acb42' visibility='default' filepath='include/linux/hrtimer.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='_softexpires' type-id='fbc017ef' visibility='default' filepath='include/linux/hrtimer.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='function' type-id='ca9b3bbf' visibility='default' filepath='include/linux/hrtimer.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='base' type-id='730f4667' visibility='default' filepath='include/linux/hrtimer.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='state' type-id='f9b06939' visibility='default' filepath='include/linux/hrtimer.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='456'>
+          <var-decl name='is_rel' type-id='f9b06939' visibility='default' filepath='include/linux/hrtimer.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='464'>
+          <var-decl name='is_soft' type-id='f9b06939' visibility='default' filepath='include/linux/hrtimer.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='472'>
+          <var-decl name='is_hard' type-id='f9b06939' visibility='default' filepath='include/linux/hrtimer.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/hrtimer.h' line='129' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b69cad70'>
+        <parameter type-id='7efbcaaf'/>
+        <parameter type-id='40c31434'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b69e3ec6'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='0ad68707' size-in-bits='64' id='b6a33eaf'/>
+      <class-decl name='snd_soc_dapm_update' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/sound/soc-dapm.h' line='672' column='1' id='b6a3f4d3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kcontrol' type-id='7a5054b7' visibility='default' filepath='include/sound/soc-dapm.h' line='673' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reg' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-dapm.h' line='674' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='mask' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-dapm.h' line='675' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='val' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-dapm.h' line='676' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='reg2' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-dapm.h' line='677' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mask2' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-dapm.h' line='678' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='val2' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-dapm.h' line='679' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='has_second_set' type-id='b50a4934' visibility='default' filepath='include/sound/soc-dapm.h' line='680' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d15eade2' size-in-bits='64' id='b6a6ca60'/>
+      <function-type size-in-bits='64' id='b6a7cdb3'>
+        <parameter type-id='ddfb71fa'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='bdcf5751' const='yes' id='b6a8699c'/>
+      <pointer-type-def type-id='d7aa071c' size-in-bits='64' id='b6a95a02'/>
+      <class-decl name='ethtool_ah_espip4_spec' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='877' column='1' id='b6a9d1ee'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ip4src' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ethtool.h' line='878' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ip4dst' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ethtool.h' line='879' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='spi' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ethtool.h' line='880' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='tos' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='881' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='kobject' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/kobject.h' line='65' column='1' id='b6ab8849'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' 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='72f469ec' 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='d30bdc51' 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='89b70200' 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='c48b394e' 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='150efd3f' 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='400fb07b' visibility='default' filepath='include/linux/kobject.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='state_initialized' type-id='f0981eeb' visibility='default' filepath='include/linux/kobject.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='481'>
+          <var-decl name='state_in_sysfs' type-id='f0981eeb' visibility='default' filepath='include/linux/kobject.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='482'>
+          <var-decl name='state_add_uevent_sent' type-id='f0981eeb' visibility='default' filepath='include/linux/kobject.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='483'>
+          <var-decl name='state_remove_uevent_sent' type-id='f0981eeb' visibility='default' filepath='include/linux/kobject.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='484'>
+          <var-decl name='uevent_suppress' type-id='f0981eeb' visibility='default' filepath='include/linux/kobject.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/kobject.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/kobject.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/kobject.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/kobject.h' line='85' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b6b06c66'>
+        <parameter type-id='8898134d'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='abd62a96'/>
+      </function-type>
+      <typedef-decl name='__kernel_ssize_t' type-id='6a11bd61' filepath='include/uapi/asm-generic/posix_types.h' line='73' column='1' id='b6b3ebaf'/>
+      <class-decl name='usb_phy_io_ops' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/usb/phy.h' line='74' column='1' id='b6b55329'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='read' type-id='90c0e85c' visibility='default' filepath='include/linux/usb/phy.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='write' type-id='a52d0b9b' visibility='default' filepath='include/linux/usb/phy.h' line='76' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='f22a8abb' size-in-bits='256' id='b6b7435e'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <pointer-type-def type-id='749378a8' size-in-bits='64' id='b6ba26fa'/>
+      <pointer-type-def type-id='19834fe0' size-in-bits='64' id='b6bc3316'/>
+      <function-type size-in-bits='64' id='b6c1136f'>
+        <parameter type-id='93762a0a'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='bpf_local_storage_data' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/bpf_local_storage.h' line='56' column='1' id='b6caa30a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='smap' type-id='ac2666b2' visibility='default' filepath='include/linux/bpf_local_storage.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='29c3368c' visibility='default' filepath='include/linux/bpf_local_storage.h' line='64' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='002ac4a6' size-in-bits='4096' id='b6d05418'>
+        <subrange length='512' type-id='7ff19f0f' id='c11630dd'/>
+      </array-type-def>
+      <class-decl name='v4l2_enum_dv_timings' size-in-bits='1184' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1591' column='1' id='b6da1a0e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1592' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pad' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1593' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reserved' type-id='839e8989' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1594' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='timings' type-id='9a25f4b0' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1595' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='60023af2' size-in-bits='64' id='b6ee62dc'/>
+      <pointer-type-def type-id='2a0e98a8' size-in-bits='64' id='b6fa14a6'/>
+      <function-type size-in-bits='64' id='b7022237'>
+        <parameter type-id='ca9354d1'/>
+        <return type-id='eba182c8'/>
+      </function-type>
+      <pointer-type-def type-id='849eca58' size-in-bits='64' id='b70f0c0e'/>
+      <pointer-type-def type-id='b10d582f' size-in-bits='64' id='b70f37f7'/>
+      <function-type size-in-bits='64' id='b713976c'>
+        <parameter type-id='14dc741a'/>
+        <parameter type-id='fb55efa1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4cc265e6' size-in-bits='64' id='b713d448'/>
+      <function-type size-in-bits='64' id='b715cae5'>
+        <parameter type-id='a47d3467'/>
+        <return type-id='3dad1a48'/>
+      </function-type>
+      <class-decl name='usb_gadget_driver' size-in-bits='2240' is-struct='yes' visibility='default' filepath='include/linux/usb/gadget.h' line='726' column='1' id='b718d3f9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='function' type-id='26a90f95' visibility='default' filepath='include/linux/usb/gadget.h' line='727' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max_speed' type-id='4e532009' visibility='default' filepath='include/linux/usb/gadget.h' line='728' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bind' type-id='3e610606' visibility='default' filepath='include/linux/usb/gadget.h' line='729' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='unbind' type-id='a915fb99' visibility='default' filepath='include/linux/usb/gadget.h' line='731' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='setup' type-id='54a734c8' visibility='default' filepath='include/linux/usb/gadget.h' line='732' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='disconnect' type-id='a915fb99' visibility='default' filepath='include/linux/usb/gadget.h' line='734' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='suspend' type-id='a915fb99' visibility='default' filepath='include/linux/usb/gadget.h' line='735' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='resume' type-id='a915fb99' visibility='default' filepath='include/linux/usb/gadget.h' line='736' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='reset' type-id='a915fb99' visibility='default' filepath='include/linux/usb/gadget.h' line='737' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/usb/gadget.h' line='740' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='udc_name' type-id='26a90f95' visibility='default' filepath='include/linux/usb/gadget.h' line='742' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='pending' type-id='72f469ec' visibility='default' filepath='include/linux/usb/gadget.h' line='743' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='match_existing_only' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/gadget.h' line='744' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pcpu_lstats' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='2730' column='1' id='b71b307b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='packets' type-id='0f413d2a' visibility='default' filepath='include/linux/netdevice.h' line='2731' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bytes' type-id='0f413d2a' visibility='default' filepath='include/linux/netdevice.h' line='2732' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='syncp' type-id='e4d85780' visibility='default' filepath='include/linux/netdevice.h' line='2733' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2f174cbc' size-in-bits='64' id='b7227d8e'/>
+      <pointer-type-def type-id='3d71d2d7' size-in-bits='64' id='b72f2447'/>
+      <pointer-type-def type-id='7e6588d9' size-in-bits='64' id='b72fdee5'/>
+      <function-type size-in-bits='64' id='b739ffde'>
+        <parameter type-id='dfeb7f6c'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='inet_diag_sockid' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='14' column='1' id='b73cf3f5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='idiag_sport' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='idiag_dport' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='idiag_src' type-id='30180d4b' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='idiag_dst' type-id='30180d4b' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='idiag_if' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='idiag_cookie' type-id='839e8989' visibility='default' filepath='include/uapi/linux/inet_diag.h' line='20' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='shash_alg' size-in-bits='5120' is-struct='yes' visibility='default' filepath='include/crypto/hash.h' line='198' column='1' id='b73dd29b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='init' type-id='88994406' visibility='default' filepath='include/crypto/hash.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='update' type-id='b07c56ec' visibility='default' filepath='include/crypto/hash.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='final' type-id='bf4ae585' visibility='default' filepath='include/crypto/hash.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='finup' type-id='80662063' visibility='default' filepath='include/crypto/hash.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='digest' type-id='80662063' visibility='default' filepath='include/crypto/hash.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='export' type-id='2fd02888' visibility='default' filepath='include/crypto/hash.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='import' type-id='2fd02888' visibility='default' filepath='include/crypto/hash.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='setkey' type-id='1c33159c' visibility='default' filepath='include/crypto/hash.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='init_tfm' type-id='d7d1bff6' visibility='default' filepath='include/crypto/hash.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='exit_tfm' type-id='ad60bf5d' visibility='default' filepath='include/crypto/hash.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='descsize' type-id='f0981eeb' visibility='default' filepath='include/crypto/hash.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='digestsize' type-id='f0981eeb' visibility='default' filepath='include/crypto/hash.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='statesize' type-id='f0981eeb' visibility='default' filepath='include/crypto/hash.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='base' type-id='514fe525' visibility='default' filepath='include/crypto/hash.h' line='221' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_host_interface' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='83' column='1' id='b7481dd4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='desc' type-id='6be9d6a7' visibility='default' filepath='include/linux/usb.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='extralen' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='extra' type-id='cf536864' visibility='default' filepath='include/linux/usb.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='endpoint' type-id='15adb516' visibility='default' filepath='include/linux/usb.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='string' type-id='26a90f95' visibility='default' filepath='include/linux/usb.h' line='94' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='237ee462' size-in-bits='64' id='b749c0b0'/>
+      <class-decl name='hwspinlock_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/hwspinlock/hwspinlock_internal.h' line='28' column='1' id='b74ac0d4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='trylock' type-id='18277869' visibility='default' filepath='drivers/hwspinlock/hwspinlock_internal.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='unlock' type-id='35411736' visibility='default' filepath='drivers/hwspinlock/hwspinlock_internal.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='relax' type-id='35411736' visibility='default' filepath='drivers/hwspinlock/hwspinlock_internal.h' line='31' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='nexthop' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/net/nexthop.h' line='132' column='1' id='b754514f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rb_node' type-id='2a8a6332' visibility='default' filepath='include/net/nexthop.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fi_list' type-id='72f469ec' visibility='default' filepath='include/net/nexthop.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='f6i_list' type-id='72f469ec' visibility='default' filepath='include/net/nexthop.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='fdb_list' type-id='72f469ec' visibility='default' filepath='include/net/nexthop.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='grp_list' type-id='72f469ec' visibility='default' filepath='include/net/nexthop.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='net' type-id='a2bff676' visibility='default' filepath='include/net/nexthop.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='id' type-id='19c2251e' visibility='default' filepath='include/net/nexthop.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='protocol' type-id='f9b06939' visibility='default' filepath='include/net/nexthop.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='808'>
+          <var-decl name='nh_flags' type-id='f9b06939' visibility='default' filepath='include/net/nexthop.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='816'>
+          <var-decl name='is_group' type-id='b50a4934' visibility='default' filepath='include/net/nexthop.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/net/nexthop.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/nexthop.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='' type-id='ac5ab5c9' visibility='default' filepath='include/net/nexthop.h' line='149' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='per_cpu_zonestat' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/mmzone.h' line='591' column='1' id='b76cd09a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vm_stat_diff' type-id='9eb11084' visibility='default' filepath='include/linux/mmzone.h' line='593' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='stat_threshold' type-id='fdbf7a0f' visibility='default' filepath='include/linux/mmzone.h' line='594' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b774cf8c'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='eaff4dba' size-in-bits='64' id='b781f274'/>
+      <class-decl name='blk_mq_ops' size-in-bits='1152' is-struct='yes' visibility='default' filepath='include/linux/blk-mq.h' line='287' column='1' id='b785b938'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='queue_rq' type-id='de5067ca' visibility='default' filepath='include/linux/blk-mq.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='commit_rqs' type-id='a75080c6' visibility='default' filepath='include/linux/blk-mq.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='get_budget' type-id='01c78f24' visibility='default' filepath='include/linux/blk-mq.h' line='309' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='put_budget' type-id='2b5fee24' visibility='default' filepath='include/linux/blk-mq.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='set_rq_budget_token' type-id='e0f91af4' visibility='default' filepath='include/linux/blk-mq.h' line='319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='get_rq_budget_token' type-id='c2a93e3c' visibility='default' filepath='include/linux/blk-mq.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='timeout' type-id='3673ce4d' visibility='default' filepath='include/linux/blk-mq.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='poll' type-id='aaa38d7b' visibility='default' filepath='include/linux/blk-mq.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='complete' type-id='bbf015cd' visibility='default' filepath='include/linux/blk-mq.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='init_hctx' type-id='f8613c2d' visibility='default' filepath='include/linux/blk-mq.h' line='345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='exit_hctx' type-id='66288ae4' visibility='default' filepath='include/linux/blk-mq.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='init_request' type-id='43dccc40' visibility='default' filepath='include/linux/blk-mq.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='exit_request' type-id='d764626d' visibility='default' filepath='include/linux/blk-mq.h' line='363' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='initialize_rq_fn' type-id='bbf015cd' visibility='default' filepath='include/linux/blk-mq.h' line='369' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='cleanup_rq' type-id='bbf015cd' visibility='default' filepath='include/linux/blk-mq.h' line='375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='busy' type-id='a905791e' visibility='default' filepath='include/linux/blk-mq.h' line='380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='map_queues' type-id='77402b4d' visibility='default' filepath='include/linux/blk-mq.h' line='386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='show_rq' type-id='05a372cf' visibility='default' filepath='include/linux/blk-mq.h' line='393' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='033304d4' size-in-bits='64' id='b7865176'/>
+      <pointer-type-def type-id='2a13094b' size-in-bits='64' id='b78e1fbb'/>
+      <pointer-type-def type-id='4d3ea3f3' size-in-bits='64' id='b78e9a0f'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/pgtable-types.h' line='28' column='1' id='b7942455' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pmd' type-id='cb5c7c0f' visibility='default' filepath='arch/arm64/include/asm/pgtable-types.h' line='28' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e4e53fc0' size-in-bits='64' id='b797ac06'/>
+      <pointer-type-def type-id='c2dc4615' size-in-bits='64' id='b7982cd5'/>
+      <union-decl name='ethtool_flow_union' size-in-bits='416' visibility='default' filepath='include/uapi/linux/ethtool.h' line='954' column='1' id='b79b5da2'>
+        <data-member access='public'>
+          <var-decl name='tcp_ip4_spec' type-id='51bf1175' visibility='default' filepath='include/uapi/linux/ethtool.h' line='955' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='udp_ip4_spec' type-id='51bf1175' visibility='default' filepath='include/uapi/linux/ethtool.h' line='956' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='sctp_ip4_spec' type-id='51bf1175' visibility='default' filepath='include/uapi/linux/ethtool.h' line='957' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ah_ip4_spec' type-id='b6a9d1ee' visibility='default' filepath='include/uapi/linux/ethtool.h' line='958' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='esp_ip4_spec' type-id='b6a9d1ee' visibility='default' filepath='include/uapi/linux/ethtool.h' line='959' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='usr_ip4_spec' type-id='3b9817d8' visibility='default' filepath='include/uapi/linux/ethtool.h' line='960' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='tcp_ip6_spec' type-id='cdd8eaf7' visibility='default' filepath='include/uapi/linux/ethtool.h' line='961' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='udp_ip6_spec' type-id='cdd8eaf7' visibility='default' filepath='include/uapi/linux/ethtool.h' line='962' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='sctp_ip6_spec' type-id='cdd8eaf7' visibility='default' filepath='include/uapi/linux/ethtool.h' line='963' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ah_ip6_spec' type-id='c324ec54' visibility='default' filepath='include/uapi/linux/ethtool.h' line='964' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='esp_ip6_spec' type-id='c324ec54' visibility='default' filepath='include/uapi/linux/ethtool.h' line='965' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='usr_ip6_spec' type-id='fbb12f62' visibility='default' filepath='include/uapi/linux/ethtool.h' line='966' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ether_spec' type-id='1c00b436' visibility='default' filepath='include/uapi/linux/ethtool.h' line='967' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='hdata' type-id='a0412eab' visibility='default' filepath='include/uapi/linux/ethtool.h' line='968' column='1'/>
+        </data-member>
+      </union-decl>
+      <array-type-def dimensions='1' type-id='02f11ed4' size-in-bits='8192' id='b79eda29'>
+        <subrange length='128' type-id='7ff19f0f' id='1eb1687a'/>
+      </array-type-def>
+      <pointer-type-def type-id='ab883904' size-in-bits='64' id='b79f9e36'/>
+      <function-type size-in-bits='64' id='b7a67527'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='4151733d'/>
+        <parameter type-id='4151733d'/>
+        <parameter type-id='fbaba52b'/>
+        <parameter type-id='730ae11f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='__virtio64' type-id='d3130597' filepath='include/uapi/linux/virtio_types.h' line='44' column='1' id='b7a6fcff'/>
+      <typedef-decl name='__virtio16' type-id='d315442e' filepath='include/uapi/linux/virtio_types.h' line='42' column='1' id='b7a93b96'/>
+      <pointer-type-def type-id='af2c6a56' size-in-bits='64' id='b7ab21fc'/>
+      <class-decl name='phylink_mac_ops' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/phylink.h' line='94' column='1' id='b7aba18f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='validate' type-id='714fd734' visibility='default' filepath='include/linux/phylink.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mac_pcs_get_state' type-id='aefee0d0' visibility='default' filepath='include/linux/phylink.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mac_prepare' type-id='c398045c' visibility='default' filepath='include/linux/phylink.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mac_config' type-id='6cb3a271' visibility='default' filepath='include/linux/phylink.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mac_finish' type-id='c398045c' visibility='default' filepath='include/linux/phylink.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mac_an_restart' type-id='acc283aa' visibility='default' filepath='include/linux/phylink.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='mac_link_down' type-id='7b1b6f25' visibility='default' filepath='include/linux/phylink.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='mac_link_up' type-id='032c0add' visibility='default' filepath='include/linux/phylink.h' line='109' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b7b43e53'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='07b9ee34'/>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='7292109c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='ZSTD_parameters' type-id='f558188f' filepath='include/linux/zstd.h' line='180' column='1' id='b7b81df8'/>
+      <function-type size-in-bits='64' id='b7bb7c18'>
+        <parameter type-id='dd575c43'/>
+        <parameter type-id='47f117d4'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='e7f43fae' size-in-bits='14784' id='b7bcaa67'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='e7f43fdb' size-in-bits='96' id='b7bcaa68'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <pointer-type-def type-id='009f0185' size-in-bits='64' id='b7c1d7d5'/>
+      <array-type-def dimensions='1' type-id='95e97e5e' size-in-bits='448' id='b7c7a4a5'>
+        <subrange length='14' type-id='7ff19f0f' id='48882d96'/>
+      </array-type-def>
+      <typedef-decl name='kprojid_t' type-id='02ad2737' filepath='include/linux/projid.h' line='24' column='1' id='b7cdd2f8'/>
+      <pointer-type-def type-id='ebded5f2' size-in-bits='64' id='b7d8b860'/>
+      <function-type size-in-bits='64' id='b7da17bb'>
+        <parameter type-id='37175e4d'/>
+        <parameter type-id='b548c585'/>
+        <parameter type-id='bd70a631'/>
+        <parameter type-id='d586c6cc'/>
+        <parameter type-id='9b88c47d'/>
+        <parameter type-id='7292109c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='faebaea7' size-in-bits='64' id='b7daa1eb'/>
+      <pointer-type-def type-id='53422e64' size-in-bits='64' id='b7db9582'/>
+      <enum-decl name='__anonymous_enum__' filepath='include/uapi/linux/net.h' line='48' column='1' id='b7dbf8c7' is-anonymous='yes'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SS_FREE' value='0'/>
+        <enumerator name='SS_UNCONNECTED' value='1'/>
+        <enumerator name='SS_CONNECTING' value='2'/>
+        <enumerator name='SS_CONNECTED' value='3'/>
+        <enumerator name='SS_DISCONNECTING' value='4'/>
+      </enum-decl>
+      <pointer-type-def type-id='7c7d1d2d' size-in-bits='64' id='b7dc9f30'/>
+      <class-decl name='uprobe' is-struct='yes' visibility='default' is-declaration-only='yes' id='b7e0fed2'/>
+      <class-decl name='seqcount_ww_mutex' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/seqlock.h' line='280' column='1' id='b7e534b2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='seqcount' type-id='e14c3b11' visibility='default' filepath='include/linux/seqlock.h' line='280' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mmu_notifier_subscriptions' is-struct='yes' visibility='default' is-declaration-only='yes' id='b7e6b484'/>
+      <class-decl name='ptrauth_keys_user' size-in-bits='640' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/pointer_auth.h' line='29' column='1' id='b7ed9e82'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='apia' type-id='490938eb' visibility='default' filepath='arch/arm64/include/asm/pointer_auth.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='apib' type-id='490938eb' visibility='default' filepath='arch/arm64/include/asm/pointer_auth.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='apda' type-id='490938eb' visibility='default' filepath='arch/arm64/include/asm/pointer_auth.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='apdb' type-id='490938eb' visibility='default' filepath='arch/arm64/include/asm/pointer_auth.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='apga' type-id='490938eb' visibility='default' filepath='arch/arm64/include/asm/pointer_auth.h' line='34' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='21e2c677' size-in-bits='64' id='b7ee351b'/>
+      <pointer-type-def type-id='d37cd54e' size-in-bits='64' id='b7f056d4'/>
+      <pointer-type-def type-id='79fae198' size-in-bits='64' id='b7f14b36'/>
+      <pointer-type-def type-id='23d2764a' size-in-bits='64' id='b7f36c8c'/>
+      <pointer-type-def type-id='daa6240b' size-in-bits='64' id='b7f77f1f'/>
+      <pointer-type-def type-id='579042ad' size-in-bits='64' id='b7f92ac9'/>
+      <pointer-type-def type-id='c5c76c9c' size-in-bits='64' id='b7f9d8e6'/>
+      <pointer-type-def type-id='50af579e' size-in-bits='64' id='b807105c'/>
+      <pointer-type-def type-id='d5476b80' size-in-bits='64' id='b80a6036'/>
+      <enum-decl name='bpf_prog_type' filepath='include/uapi/linux/bpf.h' line='919' column='1' id='b80df76a'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='BPF_PROG_TYPE_UNSPEC' value='0'/>
+        <enumerator name='BPF_PROG_TYPE_SOCKET_FILTER' value='1'/>
+        <enumerator name='BPF_PROG_TYPE_KPROBE' value='2'/>
+        <enumerator name='BPF_PROG_TYPE_SCHED_CLS' value='3'/>
+        <enumerator name='BPF_PROG_TYPE_SCHED_ACT' value='4'/>
+        <enumerator name='BPF_PROG_TYPE_TRACEPOINT' value='5'/>
+        <enumerator name='BPF_PROG_TYPE_XDP' value='6'/>
+        <enumerator name='BPF_PROG_TYPE_PERF_EVENT' value='7'/>
+        <enumerator name='BPF_PROG_TYPE_CGROUP_SKB' value='8'/>
+        <enumerator name='BPF_PROG_TYPE_CGROUP_SOCK' value='9'/>
+        <enumerator name='BPF_PROG_TYPE_LWT_IN' value='10'/>
+        <enumerator name='BPF_PROG_TYPE_LWT_OUT' value='11'/>
+        <enumerator name='BPF_PROG_TYPE_LWT_XMIT' value='12'/>
+        <enumerator name='BPF_PROG_TYPE_SOCK_OPS' value='13'/>
+        <enumerator name='BPF_PROG_TYPE_SK_SKB' value='14'/>
+        <enumerator name='BPF_PROG_TYPE_CGROUP_DEVICE' value='15'/>
+        <enumerator name='BPF_PROG_TYPE_SK_MSG' value='16'/>
+        <enumerator name='BPF_PROG_TYPE_RAW_TRACEPOINT' value='17'/>
+        <enumerator name='BPF_PROG_TYPE_CGROUP_SOCK_ADDR' value='18'/>
+        <enumerator name='BPF_PROG_TYPE_LWT_SEG6LOCAL' value='19'/>
+        <enumerator name='BPF_PROG_TYPE_LIRC_MODE2' value='20'/>
+        <enumerator name='BPF_PROG_TYPE_SK_REUSEPORT' value='21'/>
+        <enumerator name='BPF_PROG_TYPE_FLOW_DISSECTOR' value='22'/>
+        <enumerator name='BPF_PROG_TYPE_CGROUP_SYSCTL' value='23'/>
+        <enumerator name='BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE' value='24'/>
+        <enumerator name='BPF_PROG_TYPE_CGROUP_SOCKOPT' value='25'/>
+        <enumerator name='BPF_PROG_TYPE_TRACING' value='26'/>
+        <enumerator name='BPF_PROG_TYPE_STRUCT_OPS' value='27'/>
+        <enumerator name='BPF_PROG_TYPE_EXT' value='28'/>
+        <enumerator name='BPF_PROG_TYPE_LSM' value='29'/>
+        <enumerator name='BPF_PROG_TYPE_SK_LOOKUP' value='30'/>
+        <enumerator name='BPF_PROG_TYPE_SYSCALL' value='31'/>
+        <enumerator name='BPF_PROG_TYPE_FUSE' value='32'/>
+      </enum-decl>
+      <class-decl name='cgroup_bpf' size-in-bits='5888' is-struct='yes' visibility='default' filepath='include/linux/bpf-cgroup.h' line='132' column='1' id='b80e3996'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='effective' type-id='47645c1d' visibility='default' filepath='include/linux/bpf-cgroup.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='progs' type-id='a835e1f5' visibility='default' filepath='include/linux/bpf-cgroup.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='flags' type-id='bd44dad8' visibility='default' filepath='include/linux/bpf-cgroup.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='storages' type-id='72f469ec' visibility='default' filepath='include/linux/bpf-cgroup.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5312'>
+          <var-decl name='inactive' type-id='380c7edc' visibility='default' filepath='include/linux/bpf-cgroup.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='refcnt' type-id='818799b4' visibility='default' filepath='include/linux/bpf-cgroup.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='release_work' type-id='ef9025d0' visibility='default' filepath='include/linux/bpf-cgroup.h' line='154' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='nfs4_lock_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/nfs_fs_i.h' line='17' column='1' id='b811a3f5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='a6f0152c' visibility='default' filepath='include/linux/nfs_fs_i.h' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0252e252' size-in-bits='64' id='b816e1d0'/>
+      <class-decl name='nsproxy' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/nsproxy.h' line='31' column='1' id='b82b9d3a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='49178f86' visibility='default' filepath='include/linux/nsproxy.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='uts_ns' type-id='9d5923ed' visibility='default' filepath='include/linux/nsproxy.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ipc_ns' type-id='76ccea8d' visibility='default' filepath='include/linux/nsproxy.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mnt_ns' type-id='d60f4f10' visibility='default' filepath='include/linux/nsproxy.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='pid_ns_for_children' type-id='b816e1d0' visibility='default' filepath='include/linux/nsproxy.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='net_ns' type-id='a2bff676' visibility='default' filepath='include/linux/nsproxy.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='time_ns' type-id='f22ace3a' visibility='default' filepath='include/linux/nsproxy.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='time_ns_for_children' type-id='f22ace3a' visibility='default' filepath='include/linux/nsproxy.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='cgroup_ns' type-id='f774a955' visibility='default' filepath='include/linux/nsproxy.h' line='40' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='nl80211_user_reg_hint_type' filepath='include/uapi/linux/nl80211.h' line='4489' column='1' id='b833d4ac'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NL80211_USER_REG_HINT_USER' value='0'/>
+        <enumerator name='NL80211_USER_REG_HINT_CELL_BASE' value='1'/>
+        <enumerator name='NL80211_USER_REG_HINT_INDOOR' value='2'/>
+      </enum-decl>
+      <class-decl name='ip6_sf_list' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/net/if_inet6.h' line='104' column='1' id='b83c8287'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sf_next' type-id='60f4096f' visibility='default' filepath='include/net/if_inet6.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sf_addr' type-id='f6ed712a' visibility='default' filepath='include/net/if_inet6.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sf_count' type-id='f05e8e77' visibility='default' filepath='include/net/if_inet6.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='sf_gsresp' type-id='002ac4a6' visibility='default' filepath='include/net/if_inet6.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='328'>
+          <var-decl name='sf_oldin' type-id='002ac4a6' visibility='default' filepath='include/net/if_inet6.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='336'>
+          <var-decl name='sf_crcount' type-id='002ac4a6' visibility='default' filepath='include/net/if_inet6.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/if_inet6.h' line='111' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6f527014' size-in-bits='64' id='b8430c5e'/>
+      <pointer-type-def type-id='089c1984' size-in-bits='64' id='b8446eb6'/>
+      <function-type size-in-bits='64' id='b845c559'>
+        <parameter type-id='49a58c0c'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='psample_group' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/psample.h' line='8' column='1' id='b845c891'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/psample.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='net' type-id='a2bff676' visibility='default' filepath='include/net/psample.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='group_num' type-id='19c2251e' visibility='default' filepath='include/net/psample.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='refcount' type-id='19c2251e' visibility='default' filepath='include/net/psample.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='seq' type-id='19c2251e' visibility='default' filepath='include/net/psample.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/psample.h' line='14' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='cfg80211_signal_type' filepath='include/net/cfg80211.h' line='2789' column='1' id='b8524648'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='CFG80211_SIGNAL_TYPE_NONE' value='0'/>
+        <enumerator name='CFG80211_SIGNAL_TYPE_MBM' value='1'/>
+        <enumerator name='CFG80211_SIGNAL_TYPE_UNSPEC' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='71e3f969' size-in-bits='64' id='b8529195'/>
+      <class-decl name='tty_operations' size-in-bits='2240' is-struct='yes' visibility='default' filepath='include/linux/tty_driver.h' line='248' column='1' id='b8553c6b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lookup' type-id='dd354844' visibility='default' filepath='include/linux/tty_driver.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='install' type-id='b8fa1170' visibility='default' filepath='include/linux/tty_driver.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='remove' type-id='8127e1dd' visibility='default' filepath='include/linux/tty_driver.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='open' type-id='574ff926' visibility='default' filepath='include/linux/tty_driver.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='close' type-id='35f07b8f' visibility='default' filepath='include/linux/tty_driver.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='shutdown' type-id='1ee0b597' visibility='default' filepath='include/linux/tty_driver.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='cleanup' type-id='1ee0b597' visibility='default' filepath='include/linux/tty_driver.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='write' type-id='74005b57' visibility='default' filepath='include/linux/tty_driver.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='put_char' type-id='20a1c8e7' visibility='default' filepath='include/linux/tty_driver.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='flush_chars' type-id='1ee0b597' visibility='default' filepath='include/linux/tty_driver.h' line='260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='write_room' type-id='a4cd055b' visibility='default' filepath='include/linux/tty_driver.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='chars_in_buffer' type-id='a4cd055b' visibility='default' filepath='include/linux/tty_driver.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='ioctl' type-id='18d7129a' visibility='default' filepath='include/linux/tty_driver.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='compat_ioctl' type-id='0b8da5f6' visibility='default' filepath='include/linux/tty_driver.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='set_termios' type-id='1779e61d' visibility='default' filepath='include/linux/tty_driver.h' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='throttle' type-id='1ee0b597' visibility='default' filepath='include/linux/tty_driver.h' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='unthrottle' type-id='1ee0b597' visibility='default' filepath='include/linux/tty_driver.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='stop' type-id='1ee0b597' visibility='default' filepath='include/linux/tty_driver.h' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='start' type-id='1ee0b597' visibility='default' filepath='include/linux/tty_driver.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='hangup' type-id='1ee0b597' visibility='default' filepath='include/linux/tty_driver.h' line='272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='break_ctl' type-id='61019833' visibility='default' filepath='include/linux/tty_driver.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='flush_buffer' type-id='1ee0b597' visibility='default' filepath='include/linux/tty_driver.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='set_ldisc' type-id='1ee0b597' visibility='default' filepath='include/linux/tty_driver.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='wait_until_sent' type-id='bc0ca82e' visibility='default' filepath='include/linux/tty_driver.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='send_xchar' type-id='f3d2e9a7' visibility='default' filepath='include/linux/tty_driver.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='tiocmget' type-id='84d8e9b4' visibility='default' filepath='include/linux/tty_driver.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='tiocmset' type-id='24725b0c' visibility='default' filepath='include/linux/tty_driver.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='resize' type-id='20174b1f' visibility='default' filepath='include/linux/tty_driver.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='get_icount' type-id='9cc1e100' visibility='default' filepath='include/linux/tty_driver.h' line='282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='get_serial' type-id='dc2036b2' visibility='default' filepath='include/linux/tty_driver.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='set_serial' type-id='dc2036b2' visibility='default' filepath='include/linux/tty_driver.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='show_fdinfo' type-id='25c6126f' visibility='default' filepath='include/linux/tty_driver.h' line='286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='proc_show' type-id='0131eb61' visibility='default' filepath='include/linux/tty_driver.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/tty_driver.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/tty_driver.h' line='295' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e98a103e' size-in-bits='64' id='b8574f7c'/>
+      <qualified-type-def type-id='5c93f9a7' const='yes' id='b86c4e68'/>
+      <pointer-type-def type-id='b121efca' size-in-bits='64' id='b86c9da0'/>
+      <function-type size-in-bits='64' id='b86ce2e2'>
+        <parameter type-id='ee27b7c6'/>
+        <parameter type-id='e5411c2c'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b86ed83e'>
+        <parameter type-id='13103032'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b8713c6b'>
+        <parameter type-id='9d57e433'/>
+        <parameter type-id='8f92235e'/>
+        <return type-id='c21baddd'/>
+      </function-type>
+      <class-decl name='timewait_sock_ops' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/timewait_sock.h' line='14' column='1' id='b8765d15'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='twsk_slab' type-id='f3b4aca8' visibility='default' filepath='include/net/timewait_sock.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='twsk_slab_name' type-id='26a90f95' visibility='default' filepath='include/net/timewait_sock.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='twsk_obj_size' type-id='f0981eeb' visibility='default' filepath='include/net/timewait_sock.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='twsk_unique' type-id='1d8e5a11' visibility='default' filepath='include/net/timewait_sock.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='twsk_destructor' type-id='841969d0' visibility='default' filepath='include/net/timewait_sock.h' line='20' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='free_page_t' type-id='ae5a8333' filepath='include/linux/migrate.h' line='11' column='1' id='b8791da7'/>
+      <pointer-type-def type-id='5accd2c2' size-in-bits='64' id='b87ee0a0'/>
+      <pointer-type-def type-id='4f10386b' size-in-bits='64' id='b880ecef'/>
+      <function-type size-in-bits='64' id='b88c11f2'>
+        <parameter type-id='e7d2a5fc'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='1b893cc5' size-in-bits='64' id='b88dd945'/>
+      <pointer-type-def type-id='f214de7d' size-in-bits='64' id='b89d0409'/>
+      <function-type size-in-bits='64' id='b8a3dbd4'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='bd54fe1a'/>
+      </function-type>
+      <enum-decl name='hdmi_extended_colorimetry' filepath='include/linux/hdmi.h' line='118' column='1' id='b8a53560'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HDMI_EXTENDED_COLORIMETRY_XV_YCC_601' value='0'/>
+        <enumerator name='HDMI_EXTENDED_COLORIMETRY_XV_YCC_709' value='1'/>
+        <enumerator name='HDMI_EXTENDED_COLORIMETRY_S_YCC_601' value='2'/>
+        <enumerator name='HDMI_EXTENDED_COLORIMETRY_OPYCC_601' value='3'/>
+        <enumerator name='HDMI_EXTENDED_COLORIMETRY_OPRGB' value='4'/>
+        <enumerator name='HDMI_EXTENDED_COLORIMETRY_BT2020_CONST_LUM' value='5'/>
+        <enumerator name='HDMI_EXTENDED_COLORIMETRY_BT2020' value='6'/>
+        <enumerator name='HDMI_EXTENDED_COLORIMETRY_RESERVED' value='7'/>
+      </enum-decl>
+      <pointer-type-def type-id='dc03d04c' size-in-bits='64' id='b8aaeb8e'/>
+      <qualified-type-def type-id='7dffcde2' const='yes' id='b8ae588d'/>
+      <pointer-type-def type-id='138cdbe0' size-in-bits='64' id='b8afdb72'/>
+      <pointer-type-def type-id='9b266dc4' size-in-bits='64' id='b8b37be2'/>
+      <enum-decl name='iio_endian' filepath='include/linux/iio/iio.h' line='27' column='1' id='b8c1dcff'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='IIO_CPU' value='0'/>
+        <enumerator name='IIO_BE' value='1'/>
+        <enumerator name='IIO_LE' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='8712a502' size-in-bits='64' id='b8cd8f00'/>
+      <class-decl name='media_ctl' is-struct='yes' visibility='default' is-declaration-only='yes' id='b8cdc165'/>
+      <class-decl name='fsverity_hash_alg' size-in-bits='768' is-struct='yes' visibility='default' filepath='fs/verity/fsverity_private.h' line='36' column='1' id='b8d20333'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tfm' type-id='1351523a' visibility='default' filepath='fs/verity/fsverity_private.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='fs/verity/fsverity_private.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='digest_size' type-id='f0981eeb' visibility='default' filepath='fs/verity/fsverity_private.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='block_size' type-id='f0981eeb' visibility='default' filepath='fs/verity/fsverity_private.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='req_pool' type-id='2745fad8' visibility='default' filepath='fs/verity/fsverity_private.h' line='41' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5681b685' size-in-bits='64' id='b8d7e031'/>
+      <function-type size-in-bits='64' id='b8dcddba'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='bd54fe1a'/>
+      </function-type>
+      <class-decl name='vb2_v4l2_buffer' size-in-bits='7552' is-struct='yes' visibility='default' filepath='include/media/videobuf2-v4l2.h' line='45' column='1' id='b8e47b1d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vb2_buf' type-id='4a078c54' visibility='default' filepath='include/media/videobuf2-v4l2.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/media/videobuf2-v4l2.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4128'>
+          <var-decl name='field' type-id='3f1a6b60' visibility='default' filepath='include/media/videobuf2-v4l2.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='timecode' type-id='5f820012' visibility='default' filepath='include/media/videobuf2-v4l2.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='sequence' type-id='3f1a6b60' visibility='default' filepath='include/media/videobuf2-v4l2.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4320'>
+          <var-decl name='request_fd' type-id='3158a266' visibility='default' filepath='include/media/videobuf2-v4l2.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='is_held' type-id='b50a4934' visibility='default' filepath='include/media/videobuf2-v4l2.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='planes' type-id='105eff46' visibility='default' filepath='include/media/videobuf2-v4l2.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/media/videobuf2-v4l2.h' line='56' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b8e69071'>
+        <parameter type-id='ecb0ce18'/>
+        <parameter type-id='6b9b777a'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='21893e8b' size-in-bits='64' id='b8e94b0b'/>
+      <class-decl name='xhci_hcd' size-in-bits='59648' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1765' column='1' id='b8f49971'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='main_hcd' type-id='fc4f83c1' visibility='default' filepath='drivers/usb/host/xhci.h' line='1766' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='shared_hcd' type-id='fc4f83c1' visibility='default' filepath='drivers/usb/host/xhci.h' line='1767' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cap_regs' type-id='8ed5fea6' visibility='default' filepath='drivers/usb/host/xhci.h' line='1769' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='op_regs' type-id='aba583a5' visibility='default' filepath='drivers/usb/host/xhci.h' line='1770' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='run_regs' type-id='aaa546af' visibility='default' filepath='drivers/usb/host/xhci.h' line='1771' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dba' type-id='2966de59' visibility='default' filepath='drivers/usb/host/xhci.h' line='1772' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ir_set' type-id='098bff2c' visibility='default' filepath='drivers/usb/host/xhci.h' line='1774' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='hcs_params1' type-id='3f1a6b60' visibility='default' filepath='drivers/usb/host/xhci.h' line='1777' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='hcs_params2' type-id='3f1a6b60' visibility='default' filepath='drivers/usb/host/xhci.h' line='1778' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='hcs_params3' type-id='3f1a6b60' visibility='default' filepath='drivers/usb/host/xhci.h' line='1779' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='hcc_params' type-id='3f1a6b60' visibility='default' filepath='drivers/usb/host/xhci.h' line='1780' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='hcc_params2' type-id='3f1a6b60' visibility='default' filepath='drivers/usb/host/xhci.h' line='1781' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='drivers/usb/host/xhci.h' line='1783' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='sbrn' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/xhci.h' line='1786' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='656'>
+          <var-decl name='hci_version' type-id='1dc6a898' visibility='default' filepath='drivers/usb/host/xhci.h' line='1787' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='max_slots' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/xhci.h' line='1788' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='680'>
+          <var-decl name='max_interrupters' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/xhci.h' line='1789' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='688'>
+          <var-decl name='max_ports' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/xhci.h' line='1790' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='696'>
+          <var-decl name='isoc_threshold' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/xhci.h' line='1791' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='imod_interval' type-id='19c2251e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1793' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='isoc_bei_interval' type-id='19c2251e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1794' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='event_ring_max' type-id='95e97e5e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1795' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='page_size' type-id='95e97e5e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1797' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='page_shift' type-id='95e97e5e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1799' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='msix_count' type-id='95e97e5e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1801' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='clk' type-id='7d0bc0eb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1803' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='reg_clk' type-id='7d0bc0eb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1804' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='reset' type-id='9f9b8114' visibility='default' filepath='drivers/usb/host/xhci.h' line='1806' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='dcbaa' type-id='8fea74f4' visibility='default' filepath='drivers/usb/host/xhci.h' line='1808' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='cmd_ring' type-id='52a50596' visibility='default' filepath='drivers/usb/host/xhci.h' line='1809' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='cmd_ring_state' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1810' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='cmd_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/xhci.h' line='1814' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='cmd_ring_reserved_trbs' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1815' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='cmd_timer' type-id='5ad6e0ef' visibility='default' filepath='drivers/usb/host/xhci.h' line='1816' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='cmd_ring_stop_completion' type-id='f9fef04f' visibility='default' filepath='drivers/usb/host/xhci.h' line='1817' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='current_cmd' type-id='5a32bd4b' visibility='default' filepath='drivers/usb/host/xhci.h' line='1818' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='event_ring' type-id='52a50596' visibility='default' filepath='drivers/usb/host/xhci.h' line='1819' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='erst' type-id='c86369aa' visibility='default' filepath='drivers/usb/host/xhci.h' line='1820' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='scratchpad' type-id='33e2a135' visibility='default' filepath='drivers/usb/host/xhci.h' line='1822' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='lpm_failed_devs' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/xhci.h' line='1824' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='drivers/usb/host/xhci.h' line='1828' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='lpm_command' type-id='5a32bd4b' visibility='default' filepath='drivers/usb/host/xhci.h' line='1830' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3904'>
+          <var-decl name='devs' type-id='5b466593' visibility='default' filepath='drivers/usb/host/xhci.h' line='1832' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20288'>
+          <var-decl name='rh_bw' type-id='69f4bad3' visibility='default' filepath='drivers/usb/host/xhci.h' line='1834' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20352'>
+          <var-decl name='device_pool' type-id='ab33c616' visibility='default' filepath='drivers/usb/host/xhci.h' line='1837' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20416'>
+          <var-decl name='segment_pool' type-id='ab33c616' visibility='default' filepath='drivers/usb/host/xhci.h' line='1838' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20480'>
+          <var-decl name='small_streams_pool' type-id='ab33c616' visibility='default' filepath='drivers/usb/host/xhci.h' line='1839' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20544'>
+          <var-decl name='medium_streams_pool' type-id='ab33c616' visibility='default' filepath='drivers/usb/host/xhci.h' line='1840' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20608'>
+          <var-decl name='xhc_state' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1843' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20640'>
+          <var-decl name='command' type-id='19c2251e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1845' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20672'>
+          <var-decl name='s3' type-id='369534b9' visibility='default' filepath='drivers/usb/host/xhci.h' line='1846' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21056'>
+          <var-decl name='quirks' type-id='0d77e947' visibility='default' filepath='drivers/usb/host/xhci.h' line='1862' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21120'>
+          <var-decl name='num_active_eps' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1920' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21152'>
+          <var-decl name='limit_active_eps' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1921' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21184'>
+          <var-decl name='hw_ports' type-id='4add39c5' visibility='default' filepath='drivers/usb/host/xhci.h' line='1922' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21248'>
+          <var-decl name='usb2_rhub' type-id='d2c7a2c1' visibility='default' filepath='drivers/usb/host/xhci.h' line='1923' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='39744'>
+          <var-decl name='usb3_rhub' type-id='d2c7a2c1' visibility='default' filepath='drivers/usb/host/xhci.h' line='1924' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='58240'>
+          <var-decl name='hw_lpm_support' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1926' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='58241'>
+          <var-decl name='broken_suspend' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1928' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='58304'>
+          <var-decl name='ext_caps' type-id='f9409001' visibility='default' filepath='drivers/usb/host/xhci.h' line='1930' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='58368'>
+          <var-decl name='num_ext_caps' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1931' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='58432'>
+          <var-decl name='port_caps' type-id='aae3718c' visibility='default' filepath='drivers/usb/host/xhci.h' line='1933' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='58496'>
+          <var-decl name='num_port_caps' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1934' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='58560'>
+          <var-decl name='comp_mode_recovery_timer' type-id='abe41e67' visibility='default' filepath='drivers/usb/host/xhci.h' line='1936' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59008'>
+          <var-decl name='port_status_u0' type-id='19c2251e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1937' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59040'>
+          <var-decl name='test_mode' type-id='1dc6a898' visibility='default' filepath='drivers/usb/host/xhci.h' line='1938' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59072'>
+          <var-decl name='debugfs_root' type-id='27675065' visibility='default' filepath='drivers/usb/host/xhci.h' line='1942' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59136'>
+          <var-decl name='debugfs_slots' type-id='27675065' visibility='default' filepath='drivers/usb/host/xhci.h' line='1943' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59200'>
+          <var-decl name='regset_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/xhci.h' line='1944' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59328'>
+          <var-decl name='dbc' type-id='eaa32e2f' visibility='default' filepath='drivers/usb/host/xhci.h' line='1946' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59392'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/usb/host/xhci.h' line='1948' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59456'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='drivers/usb/host/xhci.h' line='1949' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59520'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='drivers/usb/host/xhci.h' line='1950' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59584'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='drivers/usb/host/xhci.h' line='1951' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59648'>
+          <var-decl name='priv' type-id='c99b5ecd' visibility='default' filepath='drivers/usb/host/xhci.h' line='1954' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='439a4d86' size-in-bits='64' id='b8fa1170'/>
+      <pointer-type-def type-id='aed6b757' size-in-bits='64' id='b902d9c7'/>
+      <pointer-type-def type-id='f5213d9b' size-in-bits='64' id='b90a2617'/>
+      <pointer-type-def type-id='a9732c0b' size-in-bits='64' id='b90b068f'/>
+      <pointer-type-def type-id='6c6bf843' size-in-bits='64' id='b90c8c47'/>
+      <function-type size-in-bits='64' id='b911101f'>
+        <parameter type-id='e7d2a5fc'/>
+        <parameter type-id='3dad1a48'/>
+        <parameter type-id='fb55efa1'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <class-decl name='xhci_transfer_event' size-in-bits='128' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1084' column='1' id='b913a5e6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='buffer' type-id='a30e8d1f' visibility='default' filepath='drivers/usb/host/xhci.h' line='1086' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='transfer_len' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='1087' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='1089' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b9157ea1'>
+        <parameter type-id='bf4bdb64'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='2522883d'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='3eb7c31c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='86933835' size-in-bits='64' id='b925d171'/>
+      <class-decl name='percpu_counter' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/percpu_counter.h' line='20' column='1' id='b92c8d0d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/percpu_counter.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='count' type-id='9b7c55ef' visibility='default' filepath='include/linux/percpu_counter.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/percpu_counter.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='counters' type-id='9f2cce4b' visibility='default' filepath='include/linux/percpu_counter.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='binder_thread' size-in-bits='3456' is-struct='yes' visibility='default' filepath='drivers/android/binder_internal.h' line='507' column='1' id='b92ecbfe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='proc' type-id='d1cf113c' visibility='default' filepath='drivers/android/binder_internal.h' line='508' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rb_node' type-id='2a8a6332' visibility='default' filepath='drivers/android/binder_internal.h' line='509' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='waiting_thread_node' type-id='72f469ec' visibility='default' filepath='drivers/android/binder_internal.h' line='510' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='pid' type-id='95e97e5e' visibility='default' filepath='drivers/android/binder_internal.h' line='511' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='looper' type-id='95e97e5e' visibility='default' filepath='drivers/android/binder_internal.h' line='512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='looper_need_return' type-id='b50a4934' visibility='default' filepath='drivers/android/binder_internal.h' line='513' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='transaction_stack' type-id='f4c3bb4c' visibility='default' filepath='drivers/android/binder_internal.h' line='514' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='todo' type-id='72f469ec' visibility='default' filepath='drivers/android/binder_internal.h' line='515' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='process_todo' type-id='b50a4934' visibility='default' filepath='drivers/android/binder_internal.h' line='516' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='return_error' type-id='873851dc' visibility='default' filepath='drivers/android/binder_internal.h' line='517' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='reply_error' type-id='873851dc' visibility='default' filepath='drivers/android/binder_internal.h' line='518' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='wait' type-id='b5ab048f' visibility='default' filepath='drivers/android/binder_internal.h' line='519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='stats' type-id='7e06c299' visibility='default' filepath='drivers/android/binder_internal.h' line='520' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3168'>
+          <var-decl name='tmp_ref' type-id='49178f86' visibility='default' filepath='drivers/android/binder_internal.h' line='521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='is_dead' type-id='b50a4934' visibility='default' filepath='drivers/android/binder_internal.h' line='522' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='task' type-id='f23e2572' visibility='default' filepath='drivers/android/binder_internal.h' line='523' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='prio_lock' type-id='fb4018a0' visibility='default' filepath='drivers/android/binder_internal.h' line='524' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3360'>
+          <var-decl name='prio_next' type-id='de30810e' visibility='default' filepath='drivers/android/binder_internal.h' line='525' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3424'>
+          <var-decl name='prio_state' type-id='cfe62ee1' visibility='default' filepath='drivers/android/binder_internal.h' line='526' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='26761b9f' size-in-bits='64' id='b9348c47'/>
+      <typedef-decl name='byte_t' type-id='8f048e17' filepath='include/net/slhc_vj.h' line='119' column='1' id='b937765d'/>
+      <function-type size-in-bits='64' id='b938ea42'>
+        <parameter type-id='4db02c58'/>
+        <parameter type-id='11e02f83'/>
+        <return type-id='4fb62cb0'/>
+      </function-type>
+      <pointer-type-def type-id='9d67acd5' size-in-bits='64' id='b9419dc5'/>
+      <pointer-type-def type-id='39863601' size-in-bits='64' id='b94745b1'/>
+      <qualified-type-def type-id='6cb59de2' const='yes' id='b947c5cd'/>
+      <pointer-type-def type-id='075e0246' size-in-bits='64' id='b94a2f7c'/>
+      <pointer-type-def type-id='3e7a7dc5' size-in-bits='64' id='b94ac371'/>
+      <pointer-type-def type-id='d10e968a' size-in-bits='64' id='b94e5398'/>
+      <class-decl name='gro_list' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='309' column='1' id='b9535066'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/netdevice.h' line='310' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='count' type-id='95e97e5e' visibility='default' filepath='include/linux/netdevice.h' line='311' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='ac76d92d' const='yes' id='b954583a'/>
+      <class-decl name='in_ifaddr' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/linux/inetdevice.h' line='137' column='1' id='b95a5ed3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hash' type-id='03a4a074' visibility='default' filepath='include/linux/inetdevice.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ifa_next' type-id='3a639063' visibility='default' filepath='include/linux/inetdevice.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ifa_dev' type-id='fc6f14a9' visibility='default' filepath='include/linux/inetdevice.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/linux/inetdevice.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ifa_local' type-id='78a133c2' visibility='default' filepath='include/linux/inetdevice.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='ifa_address' type-id='78a133c2' visibility='default' filepath='include/linux/inetdevice.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ifa_mask' type-id='78a133c2' visibility='default' filepath='include/linux/inetdevice.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='ifa_rt_priority' type-id='3f1a6b60' visibility='default' filepath='include/linux/inetdevice.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ifa_broadcast' type-id='78a133c2' visibility='default' filepath='include/linux/inetdevice.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='ifa_scope' type-id='002ac4a6' visibility='default' filepath='include/linux/inetdevice.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='552'>
+          <var-decl name='ifa_prefixlen' type-id='002ac4a6' visibility='default' filepath='include/linux/inetdevice.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ifa_flags' type-id='3f1a6b60' visibility='default' filepath='include/linux/inetdevice.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='ifa_label' type-id='ac1fa8c0' visibility='default' filepath='include/linux/inetdevice.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='ifa_valid_lft' type-id='3f1a6b60' visibility='default' filepath='include/linux/inetdevice.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='ifa_preferred_lft' type-id='3f1a6b60' visibility='default' filepath='include/linux/inetdevice.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='ifa_cstamp' type-id='7359adad' visibility='default' filepath='include/linux/inetdevice.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='ifa_tstamp' type-id='7359adad' visibility='default' filepath='include/linux/inetdevice.h' line='156' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c02c4ff1' size-in-bits='64' id='b95e1b8d'/>
+      <function-type size-in-bits='64' id='b95f4e75'>
+        <parameter type-id='a5c94ccc'/>
+        <parameter type-id='52009e4b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='48ad5fc6' size-in-bits='64' id='b9608bfc'/>
+      <pointer-type-def type-id='5d27c895' size-in-bits='64' id='b96389b5'/>
+      <class-decl name='drm_panel' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/drm/drm_panel.h' line='133' column='1' id='b9675e9f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/drm/drm_panel.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='backlight' type-id='7a76d041' visibility='default' filepath='include/drm/drm_panel.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='funcs' type-id='cda6c21a' visibility='default' filepath='include/drm/drm_panel.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='connector_type' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_panel.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_panel.h' line='173' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='uint8_t' type-id='f9b06939' filepath='include/linux/types.h' line='102' column='1' id='b96825af'/>
+      <array-type-def dimensions='1' type-id='f6507b0a' size-in-bits='infinite' id='b969bd7a'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='08cd0705' size-in-bits='64' id='b97350f1'/>
+      <pointer-type-def type-id='e7ff163c' size-in-bits='64' id='b975d8ee'/>
+      <pointer-type-def type-id='1b0b5250' size-in-bits='64' id='b977ca56'/>
+      <function-type size-in-bits='64' id='b98b24d0'>
+        <parameter type-id='141b6427'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='mipi_dsi_msg' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='33' column='1' id='b98f7775'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='channel' type-id='f9b06939' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='type' type-id='f9b06939' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='flags' type-id='1dc6a898' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tx_len' type-id='b59d7dce' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tx_buf' type-id='eaa32e2f' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rx_len' type-id='b59d7dce' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rx_buf' type-id='eaa32e2f' visibility='default' filepath='include/drm/drm_mipi_dsi.h' line='42' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7d93f824' size-in-bits='64' id='b991f562'/>
+      <pointer-type-def type-id='5a067f4b' size-in-bits='64' id='b9922d07'/>
+      <function-type size-in-bits='64' id='b992836c'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='66b0cee4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='8f92235e' const='yes' id='b9930aae'/>
+      <function-type size-in-bits='64' id='b99a3102'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='80f4b756' const='yes' id='b99c00c9'/>
+      <pointer-type-def type-id='c02da9e0' size-in-bits='64' id='b99d5f36'/>
+      <class-decl name='rcu_synchronize' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/rcupdate_wait.h' line='15' column='1' id='b99f64b4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='head' type-id='e3d8ce29' visibility='default' filepath='include/linux/rcupdate_wait.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='completion' type-id='f9fef04f' visibility='default' filepath='include/linux/rcupdate_wait.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='9a1fed7b' const='yes' id='b9a01bd6'/>
+      <enum-decl name='regulator_type' filepath='include/linux/regulator/driver.h' line='246' column='1' id='b9a524a4'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='REGULATOR_VOLTAGE' value='0'/>
+        <enumerator name='REGULATOR_CURRENT' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='d8b78162' size-in-bits='64' id='b9aa0100'/>
+      <class-decl name='xfrm_algo_comp_info' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/net/xfrm.h' line='1400' column='1' id='b9ac86db'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='threshold' type-id='1dc6a898' visibility='default' filepath='include/net/xfrm.h' line='1401' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b9acff95'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='4c9f335b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='6d86a332' size-in-bits='64' id='b9adeaf4'/>
+      <pointer-type-def type-id='ec5384d3' size-in-bits='64' id='b9af02c3'/>
+      <pointer-type-def type-id='9efbfb11' size-in-bits='64' id='b9b212f5'/>
+      <class-decl name='reclaim_state' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/swap.h' line='140' column='1' id='b9b792e2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reclaimed_slab' type-id='7359adad' visibility='default' filepath='include/linux/swap.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mm_walk' type-id='a553b1c0' visibility='default' filepath='include/linux/swap.h' line='144' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_subdev_frame_size_enum' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='106' column='1' id='b9c125a5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pad' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='code' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='min_width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='max_width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='min_height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='max_height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='which' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='reserved' type-id='7f84eb57' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='115' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='b9c5fbfc'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='2ce52478'/>
+        <parameter type-id='cd1b45ab'/>
+        <return type-id='3f1a6b60'/>
+      </function-type>
+      <function-type size-in-bits='64' id='b9d8dce4'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='763d26a2'/>
+        <parameter type-id='cee845ff'/>
+        <parameter type-id='1c936db9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f680e13e' size-in-bits='64' id='b9e33ab0'/>
+      <function-type size-in-bits='64' id='b9e938be'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='99794e5a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='557ef084' size-in-bits='64' id='b9eef1f6'/>
+      <pointer-type-def type-id='2bf8974d' size-in-bits='64' id='b9f28869'/>
+      <class-decl name='fnhe_hash_bucket' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/ip_fib.h' line='72' column='1' id='ba046e9a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='chain' type-id='aa804387' visibility='default' filepath='include/net/ip_fib.h' line='73' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e682e2f0' size-in-bits='64' id='ba0b1d2e'/>
+      <function-type size-in-bits='64' id='ba17f5a7'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='47bc6b9c'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='43489bca' size-in-bits='64' id='ba18e248'/>
+      <pointer-type-def type-id='d37aa9fa' size-in-bits='64' id='ba195270'/>
+      <pointer-type-def type-id='d9609309' size-in-bits='64' id='ba1d878d'/>
+      <function-type size-in-bits='64' id='ba1f090e'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='5e180384'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e82a9f1d' size-in-bits='64' id='ba21bbb1'/>
+      <pointer-type-def type-id='636cc9ab' size-in-bits='64' id='ba21e62b'/>
+      <class-decl name='binder_work' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/android/binder_internal.h' line='149' column='1' id='ba2d75bf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='entry' type-id='72f469ec' visibility='default' filepath='drivers/android/binder_internal.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='type' type-id='058a7b49' visibility='default' filepath='drivers/android/binder_internal.h' line='161' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='754d1c63' size-in-bits='64' id='ba361e53'/>
+      <function-type size-in-bits='64' id='ba3b5f2c'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='78c01427'/>
+        <return type-id='13956559'/>
+      </function-type>
+      <class-decl name='flow_match_ports' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/flow_offload.h' line='47' column='1' id='ba3e7428'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='key' type-id='69281b5f' visibility='default' filepath='include/net/flow_offload.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mask' type-id='69281b5f' visibility='default' filepath='include/net/flow_offload.h' line='48' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='event_subsystem' size-in-bits='320' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='1292' column='1' id='ba400603'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='1293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='kernel/trace/trace.h' line='1294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='filter' type-id='26461068' visibility='default' filepath='kernel/trace/trace.h' line='1295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ref_count' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='1296' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='net_device_ops' size-in-bits='5312' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='1391' column='1' id='ba44c7d8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ndo_init' type-id='2555df59' visibility='default' filepath='include/linux/netdevice.h' line='1392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ndo_uninit' type-id='548eee3a' visibility='default' filepath='include/linux/netdevice.h' line='1393' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ndo_open' type-id='2555df59' visibility='default' filepath='include/linux/netdevice.h' line='1394' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ndo_stop' type-id='2555df59' visibility='default' filepath='include/linux/netdevice.h' line='1395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ndo_start_xmit' type-id='bd3f3f93' visibility='default' filepath='include/linux/netdevice.h' line='1396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ndo_features_check' type-id='7a0ed254' visibility='default' filepath='include/linux/netdevice.h' line='1398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ndo_select_queue' type-id='de36db77' visibility='default' filepath='include/linux/netdevice.h' line='1401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ndo_change_rx_flags' type-id='c7c94ce1' visibility='default' filepath='include/linux/netdevice.h' line='1404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ndo_set_rx_mode' type-id='548eee3a' visibility='default' filepath='include/linux/netdevice.h' line='1406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ndo_set_mac_address' type-id='f4dd5cc5' visibility='default' filepath='include/linux/netdevice.h' line='1407' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='ndo_validate_addr' type-id='2555df59' visibility='default' filepath='include/linux/netdevice.h' line='1409' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='ndo_do_ioctl' type-id='cc325be7' visibility='default' filepath='include/linux/netdevice.h' line='1410' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='ndo_eth_ioctl' type-id='cc325be7' visibility='default' filepath='include/linux/netdevice.h' line='1412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='ndo_siocbond' type-id='cc325be7' visibility='default' filepath='include/linux/netdevice.h' line='1414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='ndo_siocwandev' type-id='08e52268' visibility='default' filepath='include/linux/netdevice.h' line='1416' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='ndo_siocdevprivate' type-id='46658f89' visibility='default' filepath='include/linux/netdevice.h' line='1418' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='ndo_set_config' type-id='bd2d1eba' visibility='default' filepath='include/linux/netdevice.h' line='1421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='ndo_change_mtu' type-id='d6762aa0' visibility='default' filepath='include/linux/netdevice.h' line='1423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='ndo_neigh_setup' type-id='5c9f2a92' visibility='default' filepath='include/linux/netdevice.h' line='1425' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='ndo_tx_timeout' type-id='06cd5b60' visibility='default' filepath='include/linux/netdevice.h' line='1427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='ndo_get_stats64' type-id='cb4c6db1' visibility='default' filepath='include/linux/netdevice.h' line='1430' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='ndo_has_offload_stats' type-id='e95fd96b' visibility='default' filepath='include/linux/netdevice.h' line='1432' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='ndo_get_offload_stats' type-id='f98694f9' visibility='default' filepath='include/linux/netdevice.h' line='1433' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='ndo_get_stats' type-id='3217f9ba' visibility='default' filepath='include/linux/netdevice.h' line='1436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='ndo_vlan_rx_add_vid' type-id='4fcb4c39' visibility='default' filepath='include/linux/netdevice.h' line='1438' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='ndo_vlan_rx_kill_vid' type-id='4fcb4c39' visibility='default' filepath='include/linux/netdevice.h' line='1440' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='ndo_set_vf_mac' type-id='bae60bcf' visibility='default' filepath='include/linux/netdevice.h' line='1448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='ndo_set_vf_vlan' type-id='699131d0' visibility='default' filepath='include/linux/netdevice.h' line='1450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='ndo_set_vf_rate' type-id='7cd466e6' visibility='default' filepath='include/linux/netdevice.h' line='1453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='ndo_set_vf_spoofchk' type-id='0c16aca1' visibility='default' filepath='include/linux/netdevice.h' line='1456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='ndo_set_vf_trust' type-id='0c16aca1' visibility='default' filepath='include/linux/netdevice.h' line='1458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='ndo_get_vf_config' type-id='d22f8cbe' visibility='default' filepath='include/linux/netdevice.h' line='1460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='ndo_set_vf_link_state' type-id='b54cfa0f' visibility='default' filepath='include/linux/netdevice.h' line='1463' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='ndo_get_vf_stats' type-id='eee971fd' visibility='default' filepath='include/linux/netdevice.h' line='1465' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='ndo_set_vf_port' type-id='af60ef81' visibility='default' filepath='include/linux/netdevice.h' line='1469' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='ndo_get_vf_port' type-id='be55abd8' visibility='default' filepath='include/linux/netdevice.h' line='1472' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='ndo_get_vf_guid' type-id='cba114b6' visibility='default' filepath='include/linux/netdevice.h' line='1474' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='ndo_set_vf_guid' type-id='0617ad2b' visibility='default' filepath='include/linux/netdevice.h' line='1478' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='ndo_set_vf_rss_query_en' type-id='0c16aca1' visibility='default' filepath='include/linux/netdevice.h' line='1481' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='ndo_setup_tc' type-id='06b83346' visibility='default' filepath='include/linux/netdevice.h' line='1484' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='ndo_rx_flow_steer' type-id='47498e6c' visibility='default' filepath='include/linux/netdevice.h' line='1512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='ndo_add_slave' type-id='031fe454' visibility='default' filepath='include/linux/netdevice.h' line='1517' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='ndo_del_slave' type-id='ed3019e9' visibility='default' filepath='include/linux/netdevice.h' line='1520' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='ndo_get_xmit_slave' type-id='5a1f42f3' visibility='default' filepath='include/linux/netdevice.h' line='1522' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='ndo_sk_get_lower_dev' type-id='e75bbd8a' visibility='default' filepath='include/linux/netdevice.h' line='1525' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='ndo_fix_features' type-id='4a028f44' visibility='default' filepath='include/linux/netdevice.h' line='1527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='ndo_set_features' type-id='10dae4c5' visibility='default' filepath='include/linux/netdevice.h' line='1529' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='ndo_neigh_construct' type-id='92446276' visibility='default' filepath='include/linux/netdevice.h' line='1531' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='ndo_neigh_destroy' type-id='11e89fb9' visibility='default' filepath='include/linux/netdevice.h' line='1533' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='ndo_fdb_add' type-id='5ffcd66c' visibility='default' filepath='include/linux/netdevice.h' line='1536' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='ndo_fdb_del' type-id='e6032f80' visibility='default' filepath='include/linux/netdevice.h' line='1543' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='ndo_fdb_dump' type-id='147cd5a7' visibility='default' filepath='include/linux/netdevice.h' line='1548' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='ndo_fdb_get' type-id='6537d478' visibility='default' filepath='include/linux/netdevice.h' line='1553' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='ndo_bridge_setlink' type-id='50756496' visibility='default' filepath='include/linux/netdevice.h' line='1559' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='ndo_bridge_getlink' type-id='e78e01a9' visibility='default' filepath='include/linux/netdevice.h' line='1563' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='ndo_bridge_dellink' type-id='1223555b' visibility='default' filepath='include/linux/netdevice.h' line='1568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='ndo_change_carrier' type-id='e36088ec' visibility='default' filepath='include/linux/netdevice.h' line='1571' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='ndo_get_phys_port_id' type-id='98252144' visibility='default' filepath='include/linux/netdevice.h' line='1573' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='ndo_get_port_parent_id' type-id='98252144' visibility='default' filepath='include/linux/netdevice.h' line='1575' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='ndo_get_phys_port_name' type-id='5139dd84' visibility='default' filepath='include/linux/netdevice.h' line='1577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='ndo_dfwd_add_station' type-id='e2d7f258' visibility='default' filepath='include/linux/netdevice.h' line='1579' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3904'>
+          <var-decl name='ndo_dfwd_del_station' type-id='5ac7baf4' visibility='default' filepath='include/linux/netdevice.h' line='1581' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='ndo_set_tx_maxrate' type-id='c1e0b02f' visibility='default' filepath='include/linux/netdevice.h' line='1584' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='ndo_get_iflink' type-id='4753b592' visibility='default' filepath='include/linux/netdevice.h' line='1587' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='ndo_change_proto_down' type-id='e36088ec' visibility='default' filepath='include/linux/netdevice.h' line='1588' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='ndo_fill_metadata_dst' type-id='2cc5a575' visibility='default' filepath='include/linux/netdevice.h' line='1590' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='ndo_set_rx_headroom' type-id='c7c94ce1' visibility='default' filepath='include/linux/netdevice.h' line='1592' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='ndo_bpf' type-id='49f84764' visibility='default' filepath='include/linux/netdevice.h' line='1594' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='ndo_xdp_xmit' type-id='0c7d25ff' visibility='default' filepath='include/linux/netdevice.h' line='1596' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='ndo_xdp_get_xmit_slave' type-id='74df97fa' visibility='default' filepath='include/linux/netdevice.h' line='1599' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4480'>
+          <var-decl name='ndo_xsk_wakeup' type-id='149f0e1f' visibility='default' filepath='include/linux/netdevice.h' line='1601' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4544'>
+          <var-decl name='ndo_get_devlink_port' type-id='cd97030f' visibility='default' filepath='include/linux/netdevice.h' line='1603' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4608'>
+          <var-decl name='ndo_tunnel_ctl' type-id='2fc899e9' visibility='default' filepath='include/linux/netdevice.h' line='1604' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4672'>
+          <var-decl name='ndo_get_peer_dev' type-id='f1b37e8e' visibility='default' filepath='include/linux/netdevice.h' line='1606' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='ndo_fill_forward_path' type-id='1888d447' visibility='default' filepath='include/linux/netdevice.h' line='1607' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='1610' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4864'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='1611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4928'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='1612' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='1613' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5056'>
+          <var-decl name='android_kabi_reserved5' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='1614' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='android_kabi_reserved6' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='1615' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='android_kabi_reserved7' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='1616' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='android_kabi_reserved8' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='1617' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='dpm_order' filepath='include/linux/pm.h' line='810' column='1' id='ba51dfc4'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DPM_ORDER_NONE' value='0'/>
+        <enumerator name='DPM_ORDER_DEV_AFTER_PARENT' value='1'/>
+        <enumerator name='DPM_ORDER_PARENT_BEFORE_DEV' value='2'/>
+        <enumerator name='DPM_ORDER_DEV_LAST' value='3'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='272' id='ba592c87'>
+        <subrange length='34' type-id='7ff19f0f' id='6a6a7e00'/>
+      </array-type-def>
+      <typedef-decl name='snd_kcontrol_tlv_rw_t' type-id='54d4fbda' filepath='include/sound/control.h' line='20' column='1' id='ba5ca324'/>
+      <function-type size-in-bits='64' id='ba5db8ea'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='b1fd62ba'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ba66f720'>
+        <parameter type-id='226853d2'/>
+        <parameter type-id='f74174a4'/>
+        <parameter type-id='064bebb9'/>
+        <parameter type-id='180bfe06'/>
+        <parameter type-id='c67c1129'/>
+        <parameter type-id='7292109c'/>
+        <parameter type-id='7292109c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='v4l2_m2m_dev' size-in-bits='4736' is-struct='yes' visibility='default' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='94' column='1' id='ba69e54c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='curr_ctx' type-id='2c7f1dc4' visibility='default' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='source' type-id='19e05b5f' visibility='default' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='source_pad' type-id='48b94b91' visibility='default' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='sink' type-id='889856f7' visibility='default' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='sink_pad' type-id='48b94b91' visibility='default' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='proc' type-id='889856f7' visibility='default' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='proc_pads' type-id='86405b03' visibility='default' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='intf_devnode' type-id='8114c6c9' visibility='default' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='job_queue' type-id='72f469ec' visibility='default' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='job_spinlock' type-id='fb4018a0' visibility='default' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='job_work' type-id='ef9025d0' visibility='default' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4608'>
+          <var-decl name='job_queue_flags' type-id='7359adad' visibility='default' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4672'>
+          <var-decl name='m2m_ops' type-id='22f8026c' visibility='default' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='111' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='blkg_iostat' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/blk-cgroup.h' line='69' column='1' id='ba6a871c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bytes' type-id='20a130cf' visibility='default' filepath='include/linux/blk-cgroup.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ios' type-id='20a130cf' visibility='default' filepath='include/linux/blk-cgroup.h' line='71' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='ba6c1a6f'>
+        <parameter type-id='d1feb554'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='6d573e2a' size-in-bits='64' id='ba703a2c'/>
+      <pointer-type-def type-id='6071dd22' size-in-bits='64' id='ba77b4f4'/>
+      <enum-decl name='pci_barno' filepath='include/linux/pci-epf.h' line='25' column='1' id='ba7a26c1'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NO_BAR' value='-1'/>
+        <enumerator name='BAR_0' value='0'/>
+        <enumerator name='BAR_1' value='1'/>
+        <enumerator name='BAR_2' value='2'/>
+        <enumerator name='BAR_3' value='3'/>
+        <enumerator name='BAR_4' value='4'/>
+        <enumerator name='BAR_5' value='5'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='ba7d92ee'>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='5a0af12e'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ba7e96f2'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='73789784'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='ufs_saved_pwr_info' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='413' column='1' id='ba896956'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='info' type-id='4020579d' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='is_valid' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='415' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='ba92be9c'>
+        <parameter type-id='5dbfcbb1'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='5f8a1ac4'/>
+      </function-type>
+      <pointer-type-def type-id='fe794aa9' size-in-bits='64' id='ba9aa326'/>
+      <function-type size-in-bits='64' id='ba9f6db4'>
+        <parameter type-id='a6711537'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='2ebc1c8c' size-in-bits='64' id='baa0730e'/>
+      <pointer-type-def type-id='e4fd322d' size-in-bits='64' id='baa39639'/>
+      <class-decl name='v4l2_area' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='424' column='1' id='baab64cf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='425' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='426' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='irq_affinity_desc' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/interrupt.h' line='317' column='1' id='bab69d9a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mask' type-id='1354385d' visibility='default' filepath='include/linux/interrupt.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='is_managed' type-id='f0981eeb' visibility='default' filepath='include/linux/interrupt.h' line='319' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='8bff8096' size-in-bits='65536' id='bad1511f'>
+        <subrange length='1024' type-id='7ff19f0f' id='c60446f8'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='bae213e3'>
+        <return type-id='211c185c'/>
+      </function-type>
+      <qualified-type-def type-id='8755a6ff' const='yes' id='bae39662'/>
+      <pointer-type-def type-id='cb28c283' size-in-bits='64' id='bae60bcf'/>
+      <pointer-type-def type-id='49addcd9' size-in-bits='64' id='bae724d1'/>
+      <function-type size-in-bits='64' id='bae952d0'>
+        <parameter type-id='c0ced320'/>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='27675065'/>
+        <parameter type-id='2594b00f'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='baeb1b90'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='2ae08426'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='baf016ef'>
+        <parameter type-id='7a29ff27'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='eaa32e2f' size-in-bits='infinite' id='baf98fd3'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='8695633e' size-in-bits='64' id='baffee98'/>
+      <function-type size-in-bits='64' id='bb05a47a'>
+        <parameter type-id='326d5b2e'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='bb068c9f'>
+        <parameter type-id='37175e4d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='irq_chip_generic' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/irq.h' line='1054' column='1' id='bb06f572'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/irq.h' line='1055' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reg_base' type-id='eaa32e2f' visibility='default' filepath='include/linux/irq.h' line='1056' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='reg_readl' type-id='99577235' visibility='default' filepath='include/linux/irq.h' line='1057' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='reg_writel' type-id='f34cc61f' visibility='default' filepath='include/linux/irq.h' line='1058' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='suspend' type-id='bf17d761' visibility='default' filepath='include/linux/irq.h' line='1059' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='resume' type-id='bf17d761' visibility='default' filepath='include/linux/irq.h' line='1060' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='irq_base' type-id='f0981eeb' visibility='default' filepath='include/linux/irq.h' line='1061' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='irq_cnt' type-id='f0981eeb' visibility='default' filepath='include/linux/irq.h' line='1062' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='mask_cache' type-id='19c2251e' visibility='default' filepath='include/linux/irq.h' line='1063' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='type_cache' type-id='19c2251e' visibility='default' filepath='include/linux/irq.h' line='1064' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='polarity_cache' type-id='19c2251e' visibility='default' filepath='include/linux/irq.h' line='1065' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='wake_enabled' type-id='19c2251e' visibility='default' filepath='include/linux/irq.h' line='1066' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='wake_active' type-id='19c2251e' visibility='default' filepath='include/linux/irq.h' line='1067' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='num_ct' type-id='f0981eeb' visibility='default' filepath='include/linux/irq.h' line='1068' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='private' type-id='eaa32e2f' visibility='default' filepath='include/linux/irq.h' line='1069' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='installed' type-id='7359adad' visibility='default' filepath='include/linux/irq.h' line='1070' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='unused' type-id='7359adad' visibility='default' filepath='include/linux/irq.h' line='1071' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='domain' type-id='7544e824' visibility='default' filepath='include/linux/irq.h' line='1072' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/irq.h' line='1073' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='chip_types' type-id='7290550d' visibility='default' filepath='include/linux/irq.h' line='1074' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a9ab8935' size-in-bits='64' id='bb0baf11'/>
+      <pointer-type-def type-id='9bc083a1' size-in-bits='64' id='bb0f13d1'/>
+      <function-type size-in-bits='64' id='bb1a67f7'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='ba195270'/>
+        <parameter type-id='ba195270'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='32858f34' const='yes' id='bb21a21f'/>
+      <pointer-type-def type-id='ecbaa04a' size-in-bits='64' id='bb28da1c'/>
+      <pointer-type-def type-id='02c44ccf' size-in-bits='64' id='bb2cb7cb'/>
+      <array-type-def dimensions='1' type-id='47841236' size-in-bits='256' id='bb2d0d4e'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='ab88b499' size-in-bits='64' id='bb3475c9'/>
+      <pointer-type-def type-id='0863015c' size-in-bits='64' id='bb3baa4e'/>
+      <class-decl name='snd_timer_hardware' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/sound/timer.h' line='41' column='1' id='bb41d987'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/sound/timer.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='resolution' type-id='7359adad' visibility='default' filepath='include/sound/timer.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='resolution_min' type-id='7359adad' visibility='default' filepath='include/sound/timer.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='resolution_max' type-id='7359adad' visibility='default' filepath='include/sound/timer.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ticks' type-id='7359adad' visibility='default' filepath='include/sound/timer.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='open' type-id='563fdf98' visibility='default' filepath='include/sound/timer.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='close' type-id='563fdf98' visibility='default' filepath='include/sound/timer.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='c_resolution' type-id='3c60c5fb' visibility='default' filepath='include/sound/timer.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='start' type-id='563fdf98' visibility='default' filepath='include/sound/timer.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='stop' type-id='563fdf98' visibility='default' filepath='include/sound/timer.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='set_period' type-id='af229338' visibility='default' filepath='include/sound/timer.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='precise_resolution' type-id='cc036b58' visibility='default' filepath='include/sound/timer.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/timer.h' line='57' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='wusb_dev' is-struct='yes' visibility='default' is-declaration-only='yes' id='bb4afb30'/>
+      <pointer-type-def type-id='afcc3ab3' size-in-bits='64' id='bb4db0f7'/>
+      <function-type size-in-bits='64' id='bb56dd02'>
+        <parameter type-id='0dc3586b'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='d61bf978'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='170bab5e' size-in-bits='64' id='bb5ee79c'/>
+      <class-decl name='__call_single_data' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/smp.h' line='23' column='1' id='bb75ea85'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='94c5e8ed' visibility='default' filepath='include/linux/smp.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='func' type-id='89714567' visibility='default' filepath='include/linux/smp.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='info' type-id='eaa32e2f' visibility='default' filepath='include/linux/smp.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4dd90c3d' size-in-bits='64' id='bb7889ed'/>
+      <class-decl name='binder_lru_page' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/android/binder_alloc.h' line='69' column='1' id='bb7d63cb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lru' type-id='72f469ec' visibility='default' filepath='drivers/android/binder_alloc.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='page_ptr' type-id='02f11ed4' visibility='default' filepath='drivers/android/binder_alloc.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='alloc' type-id='8680af2b' visibility='default' filepath='drivers/android/binder_alloc.h' line='72' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='6a7d16bb' size-in-bits='384' id='bb8315c6'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <pointer-type-def type-id='7ec07336' size-in-bits='64' id='bba30790'/>
+      <function-type size-in-bits='64' id='bba85209'>
+        <parameter type-id='bf8a20d2'/>
+        <parameter type-id='bbaf3419'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='8bff8096'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='12f09262' size-in-bits='64' id='bbaaa2c4'/>
+      <class-decl name='fsg_operations' is-struct='yes' visibility='default' is-declaration-only='yes' id='bbaaef8a'/>
+      <pointer-type-def type-id='19272f09' size-in-bits='64' id='bbaf3419'/>
+      <class-decl name='__kfifo' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/kfifo.h' line='44' column='1' id='bbbc6c1e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='in' type-id='f0981eeb' visibility='default' filepath='include/linux/kfifo.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='out' type-id='f0981eeb' visibility='default' filepath='include/linux/kfifo.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mask' type-id='f0981eeb' visibility='default' filepath='include/linux/kfifo.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='esize' type-id='f0981eeb' visibility='default' filepath='include/linux/kfifo.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/kfifo.h' line='49' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='xdp_umem' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/net/xdp_sock.h' line='20' column='1' id='bbbd8970'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addrs' type-id='eaa32e2f' visibility='default' filepath='include/net/xdp_sock.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='91ce1af9' visibility='default' filepath='include/net/xdp_sock.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='headroom' type-id='19c2251e' visibility='default' filepath='include/net/xdp_sock.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='chunk_size' type-id='19c2251e' visibility='default' filepath='include/net/xdp_sock.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='chunks' type-id='19c2251e' visibility='default' filepath='include/net/xdp_sock.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='npgs' type-id='19c2251e' visibility='default' filepath='include/net/xdp_sock.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='user' type-id='273a7d34' visibility='default' filepath='include/net/xdp_sock.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='users' type-id='64615833' visibility='default' filepath='include/net/xdp_sock.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/net/xdp_sock.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='360'>
+          <var-decl name='zc' type-id='b50a4934' visibility='default' filepath='include/net/xdp_sock.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='pgs' type-id='9f93c9da' visibility='default' filepath='include/net/xdp_sock.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/net/xdp_sock.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='xsk_dma_list' type-id='72f469ec' visibility='default' filepath='include/net/xdp_sock.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/net/xdp_sock.h' line='34' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='e7f4401a' size-in-bits='64' id='bbbeef4a'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <enum-decl name='ip_conntrack_dir' filepath='include/uapi/linux/netfilter/nf_conntrack_tuple_common.h' line='11' column='1' id='bbbf8507'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='IP_CT_DIR_ORIGINAL' value='0'/>
+        <enumerator name='IP_CT_DIR_REPLY' value='1'/>
+        <enumerator name='IP_CT_DIR_MAX' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='0cac4a12' size-in-bits='64' id='bbc2dc04'/>
+      <qualified-type-def type-id='0b8ea949' const='yes' id='bbc46580'/>
+      <function-type size-in-bits='64' id='bbe0df86'>
+        <parameter type-id='27f3f5d8'/>
+        <parameter type-id='e835b5d8'/>
+        <parameter type-id='e835b5d8'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='354f7eb9'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='0e3f80d9'/>
+      </function-type>
+      <pointer-type-def type-id='a2ef4917' size-in-bits='64' id='bbe45043'/>
+      <qualified-type-def type-id='62ec705a' const='yes' id='bbe452a1'/>
+      <pointer-type-def type-id='f1c2900a' size-in-bits='64' id='bbe8d894'/>
+      <enum-decl name='ufs_notify_change_status' filepath='drivers/scsi/ufs/ufshcd.h' line='280' column='1' id='bbeb954c'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PRE_CHANGE' value='0'/>
+        <enumerator name='POST_CHANGE' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='593ec809' size-in-bits='64' id='bbebd435'/>
+      <pointer-type-def type-id='32db1b87' size-in-bits='64' id='bbec9157'/>
+      <pointer-type-def type-id='983b8510' size-in-bits='64' id='bbefcc2a'/>
+      <pointer-type-def type-id='45e743e9' size-in-bits='64' id='bbf015cd'/>
+      <function-type size-in-bits='64' id='bbf47576'>
+        <parameter type-id='5dbfcbb1'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='73b9a01f' size-in-bits='64' id='bbfd7f03'/>
+      <pointer-type-def type-id='243799e7' size-in-bits='64' id='bc00c03b'/>
+      <pointer-type-def type-id='c83cb72c' size-in-bits='64' id='bc0ca82e'/>
+      <class-decl name='ubuf_info' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/skbuff.h' line='510' column='1' id='bc0d33fe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='callback' type-id='f371c6c4' visibility='default' filepath='include/linux/skbuff.h' line='511' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab6a2' visibility='default' filepath='include/linux/skbuff.h' line='513' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/linux/skbuff.h' line='525' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/linux/skbuff.h' line='526' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mmp' type-id='0009269e' visibility='default' filepath='include/linux/skbuff.h' line='531' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='075857e5' size-in-bits='64' id='bc155125'/>
+      <class-decl name='iw_freq' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/wireless.h' line='706' column='1' id='bc1ac22c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='m' type-id='3158a266' visibility='default' filepath='include/uapi/linux/wireless.h' line='707' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='e' type-id='b55def60' visibility='default' filepath='include/uapi/linux/wireless.h' line='708' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='i' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/wireless.h' line='709' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='flags' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/wireless.h' line='710' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bca91994' size-in-bits='64' id='bc33861a'/>
+      <class-decl name='super_block' size-in-bits='12800' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1504' column='1' id='bc39a8be'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='s_list' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1505' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='s_dev' type-id='8504f260' visibility='default' filepath='include/linux/fs.h' line='1506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='s_blocksize_bits' type-id='002ac4a6' visibility='default' filepath='include/linux/fs.h' line='1507' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='s_blocksize' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1508' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='s_maxbytes' type-id='69bf7bee' visibility='default' filepath='include/linux/fs.h' line='1509' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='s_type' type-id='21e53d44' visibility='default' filepath='include/linux/fs.h' line='1510' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='s_op' type-id='f7c6dcac' visibility='default' filepath='include/linux/fs.h' line='1511' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='dq_op' type-id='85741a2a' visibility='default' filepath='include/linux/fs.h' line='1512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='s_qcop' type-id='2cb49514' visibility='default' filepath='include/linux/fs.h' line='1513' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='s_export_op' type-id='ab932c45' visibility='default' filepath='include/linux/fs.h' line='1514' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='s_flags' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1515' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='s_iflags' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1516' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='s_magic' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1517' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='s_root' type-id='27675065' visibility='default' filepath='include/linux/fs.h' line='1518' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='s_umount' type-id='f19fdb93' visibility='default' filepath='include/linux/fs.h' line='1519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='s_count' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1520' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='s_active' type-id='49178f86' visibility='default' filepath='include/linux/fs.h' line='1521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='s_security' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs.h' line='1523' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='s_xattr' type-id='cb49d4b8' visibility='default' filepath='include/linux/fs.h' line='1525' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='s_cop' type-id='8d31a8d6' visibility='default' filepath='include/linux/fs.h' line='1527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='s_master_keys' type-id='c14b7eb6' visibility='default' filepath='include/linux/fs.h' line='1536' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='s_vop' type-id='e3008443' visibility='default' filepath='include/linux/fs.h' line='1540' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='s_encoding' type-id='72835629' visibility='default' filepath='include/linux/fs.h' line='1543' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='s_encoding_flags' type-id='d315442e' visibility='default' filepath='include/linux/fs.h' line='1544' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='s_roots' type-id='def98e71' visibility='default' filepath='include/linux/fs.h' line='1546' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='s_mounts' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1547' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='s_bdev' type-id='b88dd945' visibility='default' filepath='include/linux/fs.h' line='1548' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='s_bdi' type-id='ef4fae1b' visibility='default' filepath='include/linux/fs.h' line='1549' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='s_mtd' type-id='58ed56f5' visibility='default' filepath='include/linux/fs.h' line='1550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='s_instances' type-id='03a4a074' visibility='default' filepath='include/linux/fs.h' line='1551' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='s_quota_types' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='1552' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='s_dquot' type-id='c26e4ad8' visibility='default' filepath='include/linux/fs.h' line='1553' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='s_writers' type-id='fb476a2b' visibility='default' filepath='include/linux/fs.h' line='1555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='s_fs_info' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs.h' line='1562' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='s_time_gran' type-id='19c2251e' visibility='default' filepath='include/linux/fs.h' line='1565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='s_time_min' type-id='1afd27ac' visibility='default' filepath='include/linux/fs.h' line='1567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='s_time_max' type-id='1afd27ac' visibility='default' filepath='include/linux/fs.h' line='1568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='s_fsnotify_mask' type-id='3f1a6b60' visibility='default' filepath='include/linux/fs.h' line='1570' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='s_fsnotify_marks' type-id='994d9d61' visibility='default' filepath='include/linux/fs.h' line='1571' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='s_id' type-id='16dc656a' visibility='default' filepath='include/linux/fs.h' line='1574' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8384'>
+          <var-decl name='s_uuid' type-id='ec55eb74' visibility='default' filepath='include/linux/fs.h' line='1575' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='s_max_links' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='1577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8544'>
+          <var-decl name='s_mode' type-id='2665334e' visibility='default' filepath='include/linux/fs.h' line='1578' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8576'>
+          <var-decl name='s_vfs_rename_mutex' type-id='925167dc' visibility='default' filepath='include/linux/fs.h' line='1584' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8960'>
+          <var-decl name='s_subtype' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='1590' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9024'>
+          <var-decl name='s_d_op' type-id='1ee57353' visibility='default' filepath='include/linux/fs.h' line='1592' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9088'>
+          <var-decl name='cleancache_poolid' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1597' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9152'>
+          <var-decl name='s_shrink' type-id='27cb404f' visibility='default' filepath='include/linux/fs.h' line='1599' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9664'>
+          <var-decl name='s_remove_count' type-id='f22a8abb' visibility='default' filepath='include/linux/fs.h' line='1602' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9728'>
+          <var-decl name='s_fsnotify_connectors' type-id='f22a8abb' visibility='default' filepath='include/linux/fs.h' line='1608' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9792'>
+          <var-decl name='s_readonly_remount' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9824'>
+          <var-decl name='s_wb_err' type-id='1da55f79' visibility='default' filepath='include/linux/fs.h' line='1614' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9856'>
+          <var-decl name='s_dio_done_wq' type-id='242e3d19' visibility='default' filepath='include/linux/fs.h' line='1617' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9920'>
+          <var-decl name='s_pins' type-id='e151255a' visibility='default' filepath='include/linux/fs.h' line='1618' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9984'>
+          <var-decl name='s_user_ns' type-id='c0ced320' visibility='default' filepath='include/linux/fs.h' line='1625' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10048'>
+          <var-decl name='s_dentry_lru' type-id='c653aac7' visibility='default' filepath='include/linux/fs.h' line='1632' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10304'>
+          <var-decl name='s_inode_lru' type-id='c653aac7' visibility='default' filepath='include/linux/fs.h' line='1633' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10560'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/fs.h' line='1634' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10688'>
+          <var-decl name='destroy_work' type-id='ef9025d0' visibility='default' filepath='include/linux/fs.h' line='1635' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11072'>
+          <var-decl name='s_sync_lock' type-id='925167dc' visibility='default' filepath='include/linux/fs.h' line='1637' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11456'>
+          <var-decl name='s_stack_depth' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1642' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11776'>
+          <var-decl name='s_inode_list_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/fs.h' line='1645' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11840'>
+          <var-decl name='s_inodes' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1646' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11968'>
+          <var-decl name='s_inode_wblist_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/fs.h' line='1648' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12032'>
+          <var-decl name='s_inodes_wb' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1649' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12160'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1651' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12224'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1652' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12288'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1653' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12352'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1654' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/uidgid.h' line='21' column='1' id='bc3a21bb' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='val' type-id='354978ed' visibility='default' filepath='include/linux/uidgid.h' line='22' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='2048' id='bc3af5fa'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='1984' id='bc3d3491'>
+        <subrange length='31' type-id='7ff19f0f' id='ae5e1d19'/>
+      </array-type-def>
+      <class-decl name='task_struct' size-in-bits='36864' is-struct='yes' visibility='default' filepath='include/linux/sched.h' line='737' column='1' id='bc3f1924'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='thread_info' type-id='575a2c7a' visibility='default' filepath='include/linux/sched.h' line='743' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='__state' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='745' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='stack' type-id='eaa32e2f' visibility='default' filepath='include/linux/sched.h' line='758' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='usage' type-id='64615833' visibility='default' filepath='include/linux/sched.h' line='759' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='761' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ptrace' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='762' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='on_cpu' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='765' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='wake_entry' type-id='94c5e8ed' visibility='default' filepath='include/linux/sched.h' line='766' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='cpu' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='769' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='wakee_flips' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='771' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='wakee_flip_decay_ts' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='772' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='last_wakee' type-id='f23e2572' visibility='default' filepath='include/linux/sched.h' line='773' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='recent_used_cpu' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='782' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='wake_cpu' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='783' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='on_rq' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='785' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='prio' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='787' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='static_prio' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='788' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='normal_prio' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='789' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='rt_priority' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='790' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='sched_class' type-id='162b4cce' visibility='default' filepath='include/linux/sched.h' line='792' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='se' type-id='2561fcb2' visibility='default' filepath='include/linux/sched.h' line='793' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5632'>
+          <var-decl name='rt' type-id='29843697' visibility='default' filepath='include/linux/sched.h' line='794' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6272'>
+          <var-decl name='dl' type-id='2d494b2d' visibility='default' filepath='include/linux/sched.h' line='795' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='sched_task_group' type-id='3c32f9de' visibility='default' filepath='include/linux/sched.h' line='804' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='uclamp_req' type-id='c6e3c250' visibility='default' filepath='include/linux/sched.h' line='812' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='uclamp' type-id='c6e3c250' visibility='default' filepath='include/linux/sched.h' line='817' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8384'>
+          <var-decl name='preempt_notifiers' type-id='e151255a' visibility='default' filepath='include/linux/sched.h' line='822' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8448'>
+          <var-decl name='policy' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='829' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8480'>
+          <var-decl name='nr_cpus_allowed' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='830' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='cpus_ptr' type-id='af4bd535' visibility='default' filepath='include/linux/sched.h' line='831' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8576'>
+          <var-decl name='user_cpus_ptr' type-id='3ca207ec' visibility='default' filepath='include/linux/sched.h' line='832' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='cpus_mask' type-id='90bc6bed' visibility='default' filepath='include/linux/sched.h' line='833' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='migration_pending' type-id='eaa32e2f' visibility='default' filepath='include/linux/sched.h' line='834' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8768'>
+          <var-decl name='migration_disabled' type-id='8efea9e5' visibility='default' filepath='include/linux/sched.h' line='836' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8784'>
+          <var-decl name='migration_flags' type-id='8efea9e5' visibility='default' filepath='include/linux/sched.h' line='838' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8800'>
+          <var-decl name='rcu_read_lock_nesting' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='841' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8832'>
+          <var-decl name='rcu_read_unlock_special' type-id='a324790e' visibility='default' filepath='include/linux/sched.h' line='842' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8896'>
+          <var-decl name='rcu_node_entry' type-id='72f469ec' visibility='default' filepath='include/linux/sched.h' line='843' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9024'>
+          <var-decl name='rcu_blocked_node' type-id='d5d06540' visibility='default' filepath='include/linux/sched.h' line='844' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9088'>
+          <var-decl name='rcu_tasks_nvcsw' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='848' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9152'>
+          <var-decl name='rcu_tasks_holdout' type-id='f9b06939' visibility='default' filepath='include/linux/sched.h' line='849' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9160'>
+          <var-decl name='rcu_tasks_idx' type-id='f9b06939' visibility='default' filepath='include/linux/sched.h' line='850' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9184'>
+          <var-decl name='rcu_tasks_idle_cpu' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='851' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9216'>
+          <var-decl name='rcu_tasks_holdout_list' type-id='72f469ec' visibility='default' filepath='include/linux/sched.h' line='852' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='trc_reader_nesting' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='856' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9376'>
+          <var-decl name='trc_ipi_to_cpu' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='857' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9408'>
+          <var-decl name='trc_reader_special' type-id='a324790e' visibility='default' filepath='include/linux/sched.h' line='858' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9440'>
+          <var-decl name='trc_reader_checked' type-id='b50a4934' visibility='default' filepath='include/linux/sched.h' line='859' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9472'>
+          <var-decl name='trc_holdout_list' type-id='72f469ec' visibility='default' filepath='include/linux/sched.h' line='860' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='sched_info' type-id='59ddd03d' visibility='default' filepath='include/linux/sched.h' line='863' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9856'>
+          <var-decl name='tasks' type-id='72f469ec' visibility='default' filepath='include/linux/sched.h' line='865' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9984'>
+          <var-decl name='pushable_tasks' type-id='e3a91a7c' visibility='default' filepath='include/linux/sched.h' line='867' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10304'>
+          <var-decl name='pushable_dl_tasks' type-id='2a8a6332' visibility='default' filepath='include/linux/sched.h' line='868' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10496'>
+          <var-decl name='mm' type-id='df4b7819' visibility='default' filepath='include/linux/sched.h' line='871' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10560'>
+          <var-decl name='active_mm' type-id='df4b7819' visibility='default' filepath='include/linux/sched.h' line='872' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10624'>
+          <var-decl name='vmacache' type-id='4f79f8f3' visibility='default' filepath='include/linux/sched.h' line='875' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10944'>
+          <var-decl name='rss_stat' type-id='dfedb05a' visibility='default' filepath='include/linux/sched.h' line='878' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11104'>
+          <var-decl name='exit_state' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='880' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11136'>
+          <var-decl name='exit_code' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='881' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11168'>
+          <var-decl name='exit_signal' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='882' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11200'>
+          <var-decl name='pdeath_signal' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='884' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11264'>
+          <var-decl name='jobctl' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='886' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11328'>
+          <var-decl name='personality' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='889' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11360'>
+          <var-decl name='sched_reset_on_fork' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='892' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11361'>
+          <var-decl name='sched_contributes_to_load' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='893' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11362'>
+          <var-decl name='sched_migrated' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='894' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11363'>
+          <var-decl name='sched_psi_wake_requeue' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='896' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11392'>
+          <var-decl name='sched_remote_wakeup' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='917' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11393'>
+          <var-decl name='in_execve' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='920' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11394'>
+          <var-decl name='in_iowait' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='921' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11395'>
+          <var-decl name='in_user_fault' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='926' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11396'>
+          <var-decl name='in_lru_fault' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='930' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11397'>
+          <var-decl name='no_cgroup_migration' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='937' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11398'>
+          <var-decl name='frozen' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='939' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11399'>
+          <var-decl name='use_memdelay' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='942' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11400'>
+          <var-decl name='in_memstall' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='946' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11401'>
+          <var-decl name='in_page_owner' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='950' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11402'>
+          <var-decl name='in_eventfd_signal' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='954' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11456'>
+          <var-decl name='atomic_flags' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='957' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11520'>
+          <var-decl name='restart_block' type-id='45e819d6' visibility='default' filepath='include/linux/sched.h' line='959' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11968'>
+          <var-decl name='pid' type-id='587f89d2' visibility='default' filepath='include/linux/sched.h' line='961' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12000'>
+          <var-decl name='tgid' type-id='587f89d2' visibility='default' filepath='include/linux/sched.h' line='962' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12032'>
+          <var-decl name='stack_canary' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='966' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12096'>
+          <var-decl name='real_parent' type-id='f23e2572' visibility='default' filepath='include/linux/sched.h' line='975' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12160'>
+          <var-decl name='parent' type-id='f23e2572' visibility='default' filepath='include/linux/sched.h' line='978' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12224'>
+          <var-decl name='children' type-id='72f469ec' visibility='default' filepath='include/linux/sched.h' line='983' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12352'>
+          <var-decl name='sibling' type-id='72f469ec' visibility='default' filepath='include/linux/sched.h' line='984' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12480'>
+          <var-decl name='group_leader' type-id='f23e2572' visibility='default' filepath='include/linux/sched.h' line='985' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12544'>
+          <var-decl name='ptraced' type-id='72f469ec' visibility='default' filepath='include/linux/sched.h' line='993' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12672'>
+          <var-decl name='ptrace_entry' type-id='72f469ec' visibility='default' filepath='include/linux/sched.h' line='994' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12800'>
+          <var-decl name='thread_pid' type-id='b94e5398' visibility='default' filepath='include/linux/sched.h' line='997' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12864'>
+          <var-decl name='pid_links' type-id='3f6e320a' visibility='default' filepath='include/linux/sched.h' line='998' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13376'>
+          <var-decl name='thread_group' type-id='72f469ec' visibility='default' filepath='include/linux/sched.h' line='999' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13504'>
+          <var-decl name='thread_node' type-id='72f469ec' visibility='default' filepath='include/linux/sched.h' line='1000' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13632'>
+          <var-decl name='vfork_done' type-id='389faaf7' visibility='default' filepath='include/linux/sched.h' line='1002' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13696'>
+          <var-decl name='set_child_tid' type-id='7292109c' visibility='default' filepath='include/linux/sched.h' line='1005' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13760'>
+          <var-decl name='clear_child_tid' type-id='7292109c' visibility='default' filepath='include/linux/sched.h' line='1008' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13824'>
+          <var-decl name='pf_io_worker' type-id='eaa32e2f' visibility='default' filepath='include/linux/sched.h' line='1011' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13888'>
+          <var-decl name='utime' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1013' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13952'>
+          <var-decl name='stime' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1014' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14016'>
+          <var-decl name='gtime' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1019' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14080'>
+          <var-decl name='time_in_state' type-id='3df9fd28' visibility='default' filepath='include/linux/sched.h' line='1021' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14144'>
+          <var-decl name='max_state' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='1022' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14208'>
+          <var-decl name='prev_cputime' type-id='9c7bf560' visibility='default' filepath='include/linux/sched.h' line='1024' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14400'>
+          <var-decl name='nvcsw' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='1033' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14464'>
+          <var-decl name='nivcsw' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='1034' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14528'>
+          <var-decl name='start_time' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1037' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14592'>
+          <var-decl name='start_boottime' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1040' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14656'>
+          <var-decl name='min_flt' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='1043' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14720'>
+          <var-decl name='maj_flt' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='1044' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14784'>
+          <var-decl name='posix_cputimers' type-id='1069de27' visibility='default' filepath='include/linux/sched.h' line='1047' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15424'>
+          <var-decl name='ptracer_cred' type-id='bc33861a' visibility='default' filepath='include/linux/sched.h' line='1056' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15488'>
+          <var-decl name='real_cred' type-id='bc33861a' visibility='default' filepath='include/linux/sched.h' line='1059' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15552'>
+          <var-decl name='cred' type-id='bc33861a' visibility='default' filepath='include/linux/sched.h' line='1062' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15616'>
+          <var-decl name='cached_requested_key' type-id='204a4632' visibility='default' filepath='include/linux/sched.h' line='1066' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15680'>
+          <var-decl name='comm' type-id='ac1fa8c0' visibility='default' filepath='include/linux/sched.h' line='1076' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15808'>
+          <var-decl name='nameidata' type-id='26452515' visibility='default' filepath='include/linux/sched.h' line='1078' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15872'>
+          <var-decl name='last_switch_count' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='1085' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15936'>
+          <var-decl name='last_switch_time' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='1086' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16000'>
+          <var-decl name='fs' type-id='08890290' visibility='default' filepath='include/linux/sched.h' line='1089' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16064'>
+          <var-decl name='files' type-id='16c53416' visibility='default' filepath='include/linux/sched.h' line='1092' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16128'>
+          <var-decl name='io_uring' type-id='cc1a1bb1' visibility='default' filepath='include/linux/sched.h' line='1095' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16192'>
+          <var-decl name='nsproxy' type-id='dc5ce118' visibility='default' filepath='include/linux/sched.h' line='1099' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16256'>
+          <var-decl name='signal' type-id='a91cd5f7' visibility='default' filepath='include/linux/sched.h' line='1102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16320'>
+          <var-decl name='sighand' type-id='32cc1711' visibility='default' filepath='include/linux/sched.h' line='1103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16384'>
+          <var-decl name='blocked' type-id='daf33c64' visibility='default' filepath='include/linux/sched.h' line='1104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16448'>
+          <var-decl name='real_blocked' type-id='daf33c64' visibility='default' filepath='include/linux/sched.h' line='1105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16512'>
+          <var-decl name='saved_sigmask' type-id='daf33c64' visibility='default' filepath='include/linux/sched.h' line='1107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16576'>
+          <var-decl name='pending' type-id='7b5c012d' visibility='default' filepath='include/linux/sched.h' line='1108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16768'>
+          <var-decl name='sas_ss_sp' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='1109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16832'>
+          <var-decl name='sas_ss_size' type-id='b59d7dce' visibility='default' filepath='include/linux/sched.h' line='1110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16896'>
+          <var-decl name='sas_ss_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='1111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16960'>
+          <var-decl name='task_works' type-id='69c138b1' visibility='default' filepath='include/linux/sched.h' line='1113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17024'>
+          <var-decl name='audit_context' type-id='a9f319d2' visibility='default' filepath='include/linux/sched.h' line='1117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17088'>
+          <var-decl name='loginuid' type-id='d80b72e6' visibility='default' filepath='include/linux/sched.h' line='1119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17120'>
+          <var-decl name='sessionid' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='1120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17152'>
+          <var-decl name='seccomp' type-id='298af459' visibility='default' filepath='include/linux/sched.h' line='1122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17280'>
+          <var-decl name='syscall_dispatch' type-id='0d8347c7' visibility='default' filepath='include/linux/sched.h' line='1123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17280'>
+          <var-decl name='parent_exec_id' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17344'>
+          <var-decl name='self_exec_id' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17408'>
+          <var-decl name='alloc_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/sched.h' line='1130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17440'>
+          <var-decl name='pi_lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/sched.h' line='1133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17472'>
+          <var-decl name='wake_q' type-id='69970be2' visibility='default' filepath='include/linux/sched.h' line='1135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17536'>
+          <var-decl name='wake_q_count' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='1136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17600'>
+          <var-decl name='pi_waiters' type-id='6fe1603d' visibility='default' filepath='include/linux/sched.h' line='1140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17728'>
+          <var-decl name='pi_top_task' type-id='f23e2572' visibility='default' filepath='include/linux/sched.h' line='1142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17792'>
+          <var-decl name='pi_blocked_on' type-id='54d4ed50' visibility='default' filepath='include/linux/sched.h' line='1144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17856'>
+          <var-decl name='journal_info' type-id='eaa32e2f' visibility='default' filepath='include/linux/sched.h' line='1181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17920'>
+          <var-decl name='bio_list' type-id='ee802604' visibility='default' filepath='include/linux/sched.h' line='1184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17984'>
+          <var-decl name='plug' type-id='39944481' visibility='default' filepath='include/linux/sched.h' line='1188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18048'>
+          <var-decl name='reclaim_state' type-id='c78f98c0' visibility='default' filepath='include/linux/sched.h' line='1192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18112'>
+          <var-decl name='backing_dev_info' type-id='ef4fae1b' visibility='default' filepath='include/linux/sched.h' line='1194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18176'>
+          <var-decl name='io_context' type-id='d042cfad' visibility='default' filepath='include/linux/sched.h' line='1196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18240'>
+          <var-decl name='capture_control' type-id='f886696f' visibility='default' filepath='include/linux/sched.h' line='1199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18304'>
+          <var-decl name='ptrace_message' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='1202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18368'>
+          <var-decl name='last_siginfo' type-id='3638c201' visibility='default' filepath='include/linux/sched.h' line='1203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18432'>
+          <var-decl name='ioac' type-id='ca075c7f' visibility='default' filepath='include/linux/sched.h' line='1205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18944'>
+          <var-decl name='psi_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='1208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19008'>
+          <var-decl name='acct_rss_mem1' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19072'>
+          <var-decl name='acct_vm_mem1' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19136'>
+          <var-decl name='acct_timexpd' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19200'>
+          <var-decl name='mems_allowed' type-id='6a7d16bb' visibility='default' filepath='include/linux/sched.h' line='1220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19264'>
+          <var-decl name='mems_allowed_seq' type-id='0b9c5397' visibility='default' filepath='include/linux/sched.h' line='1222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19296'>
+          <var-decl name='cpuset_mem_spread_rotor' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='1223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19328'>
+          <var-decl name='cpuset_slab_spread_rotor' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='1224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19392'>
+          <var-decl name='cgroups' type-id='85d57723' visibility='default' filepath='include/linux/sched.h' line='1228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19456'>
+          <var-decl name='cg_list' type-id='72f469ec' visibility='default' filepath='include/linux/sched.h' line='1230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19584'>
+          <var-decl name='robust_list' type-id='c44b3996' visibility='default' filepath='include/linux/sched.h' line='1237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19648'>
+          <var-decl name='compat_robust_list' type-id='917bb1c5' visibility='default' filepath='include/linux/sched.h' line='1239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19712'>
+          <var-decl name='pi_state_list' type-id='72f469ec' visibility='default' filepath='include/linux/sched.h' line='1241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19840'>
+          <var-decl name='pi_state_cache' type-id='0bbc9f87' visibility='default' filepath='include/linux/sched.h' line='1242' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19904'>
+          <var-decl name='futex_exit_mutex' type-id='925167dc' visibility='default' filepath='include/linux/sched.h' line='1243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20288'>
+          <var-decl name='futex_state' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='1244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20352'>
+          <var-decl name='perf_event_ctxp' type-id='c7e7059f' visibility='default' filepath='include/linux/sched.h' line='1247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20480'>
+          <var-decl name='perf_event_mutex' type-id='925167dc' visibility='default' filepath='include/linux/sched.h' line='1248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20864'>
+          <var-decl name='perf_event_list' type-id='72f469ec' visibility='default' filepath='include/linux/sched.h' line='1249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20992'>
+          <var-decl name='tlb_ubc' type-id='a3d9f566' visibility='default' filepath='include/linux/sched.h' line='1320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20992'>
+          <var-decl name='' type-id='ac5ab65d' visibility='default' filepath='include/linux/sched.h' line='1322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21120'>
+          <var-decl name='splice_pipe' type-id='15d29710' visibility='default' filepath='include/linux/sched.h' line='1328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21184'>
+          <var-decl name='task_frag' type-id='06c0432f' visibility='default' filepath='include/linux/sched.h' line='1330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21312'>
+          <var-decl name='nr_dirtied' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='1344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21344'>
+          <var-decl name='nr_dirtied_pause' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='1345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21376'>
+          <var-decl name='dirty_paused_when' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='1347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21440'>
+          <var-decl name='timer_slack_ns' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21504'>
+          <var-decl name='default_timer_slack_ns' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21568'>
+          <var-decl name='kunit_test' type-id='ab7389f2' visibility='default' filepath='include/linux/sched.h' line='1371' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21632'>
+          <var-decl name='trace' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='1396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21696'>
+          <var-decl name='trace_recursion' type-id='7359adad' visibility='default' filepath='include/linux/sched.h' line='1399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21760'>
+          <var-decl name='memcg_in_oom' type-id='223696fb' visibility='default' filepath='include/linux/sched.h' line='1428' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21824'>
+          <var-decl name='memcg_oom_gfp_mask' type-id='3eb7c31c' visibility='default' filepath='include/linux/sched.h' line='1429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21856'>
+          <var-decl name='memcg_oom_order' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='1430' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21888'>
+          <var-decl name='memcg_nr_pages_over_high' type-id='f0981eeb' visibility='default' filepath='include/linux/sched.h' line='1433' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21952'>
+          <var-decl name='active_memcg' type-id='223696fb' visibility='default' filepath='include/linux/sched.h' line='1436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22016'>
+          <var-decl name='throttle_queue' type-id='e7d2a5fc' visibility='default' filepath='include/linux/sched.h' line='1440' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22080'>
+          <var-decl name='utask' type-id='9d2cef34' visibility='default' filepath='include/linux/sched.h' line='1444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22144'>
+          <var-decl name='kmap_ctrl' type-id='14282108' visibility='default' filepath='include/linux/sched.h' line='1450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22144'>
+          <var-decl name='pagefault_disabled' type-id='95e97e5e' visibility='default' filepath='include/linux/sched.h' line='1457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22208'>
+          <var-decl name='oom_reaper_list' type-id='f23e2572' visibility='default' filepath='include/linux/sched.h' line='1459' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22272'>
+          <var-decl name='oom_reaper_timer' type-id='abe41e67' visibility='default' filepath='include/linux/sched.h' line='1460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22720'>
+          <var-decl name='stack_vm_area' type-id='d295dab2' visibility='default' filepath='include/linux/sched.h' line='1463' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22784'>
+          <var-decl name='stack_refcount' type-id='64615833' visibility='default' filepath='include/linux/sched.h' line='1467' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22848'>
+          <var-decl name='security' type-id='eaa32e2f' visibility='default' filepath='include/linux/sched.h' line='1474' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22912'>
+          <var-decl name='bpf_storage' type-id='30c83839' visibility='default' filepath='include/linux/sched.h' line='1478' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22976'>
+          <var-decl name='bpf_ctx' type-id='3eb84c27' visibility='default' filepath='include/linux/sched.h' line='1480' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='23040'>
+          <var-decl name='android_vendor_data1' type-id='4b516a9c' visibility='default' filepath='include/linux/sched.h' line='1498' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27136'>
+          <var-decl name='android_oem_data1' type-id='64acd4ce' visibility='default' filepath='include/linux/sched.h' line='1499' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27520'>
+          <var-decl name='kretprobe_instances' type-id='77df194e' visibility='default' filepath='include/linux/sched.h' line='1502' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27584'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1515' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27648'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1516' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27712'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1517' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27776'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1518' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27840'>
+          <var-decl name='android_kabi_reserved5' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27904'>
+          <var-decl name='android_kabi_reserved6' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1520' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27968'>
+          <var-decl name='android_kabi_reserved7' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28032'>
+          <var-decl name='android_kabi_reserved8' type-id='91ce1af9' visibility='default' filepath='include/linux/sched.h' line='1522' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28160'>
+          <var-decl name='thread' type-id='0c8a83c7' visibility='default' filepath='include/linux/sched.h' line='1531' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fd7caa9b' size-in-bits='64' id='bc40b4a3'/>
+      <function-type size-in-bits='64' id='bc51cf2c'>
+        <parameter type-id='33c599da'/>
+        <parameter type-id='2665334e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='scmi_event_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/firmware/arm_scmi/notify.h' line='52' column='1' id='bc536f35'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='get_num_sources' type-id='039c1bc4' visibility='default' filepath='drivers/firmware/arm_scmi/notify.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='set_notify_enabled' type-id='45e13c1a' visibility='default' filepath='drivers/firmware/arm_scmi/notify.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fill_custom_report' type-id='35cdc1ce' visibility='default' filepath='drivers/firmware/arm_scmi/notify.h' line='56' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='flow_block' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/flow_offload.h' line='437' column='1' id='bc545b43'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cb_list' type-id='72f469ec' visibility='default' filepath='include/net/flow_offload.h' line='438' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='fl_owner_t' type-id='eaa32e2f' filepath='include/linux/fs.h' line='1079' column='1' id='bc5666d5'/>
+      <pointer-type-def type-id='244e59bf' size-in-bits='64' id='bc57058f'/>
+      <function-type size-in-bits='64' id='bc5c36f0'>
+        <parameter type-id='bc5666d5'/>
+        <return type-id='bc5666d5'/>
+      </function-type>
+      <class-decl name='rcec_ea' size-in-bits='64' is-struct='yes' visibility='default' filepath='drivers/pci/controller/dwc/../../pci.h' line='454' column='1' id='bc5fb15d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nextbusn' type-id='f9b06939' visibility='default' filepath='drivers/pci/pci.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='lastbusn' type-id='f9b06939' visibility='default' filepath='drivers/pci/pci.h' line='456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bitmap' type-id='19c2251e' visibility='default' filepath='drivers/pci/pci.h' line='457' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_event_vblank' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/drm/drm.h' line='1133' column='1' id='bc6bca7e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='9857a465' visibility='default' filepath='include/uapi/drm/drm.h' line='1134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='user_data' type-id='d3130597' visibility='default' filepath='include/uapi/drm/drm.h' line='1135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tv_sec' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm.h' line='1136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='tv_usec' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm.h' line='1137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sequence' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm.h' line='1138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='crtc_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/drm/drm.h' line='1139' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='70f46c11' size-in-bits='64' id='bc6bfb85'/>
+      <class-decl name='ufs_hba' size-in-bits='41792' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='835' column='1' id='bc6d8611'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mmio_base' type-id='eaa32e2f' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='836' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ucdl_base_addr' type-id='84caa74f' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='839' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='utrdl_base_addr' type-id='1852fc77' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='840' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='utmrdl_base_addr' type-id='0c025d55' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='841' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ucdl_dma_addr' type-id='cf29c9b3' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='844' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='utrdl_dma_addr' type-id='cf29c9b3' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='845' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='utmrdl_dma_addr' type-id='cf29c9b3' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='846' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='host' type-id='a970a64c' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='848' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='849' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='cmd_queue' type-id='e7d2a5fc' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='850' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='sdev_ufs_device' type-id='eb572b74' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='855' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='sdev_rpmb' type-id='eb572b74' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='856' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='curr_dev_pwr_mode' type-id='748f6f00' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='862' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='uic_link_state' type-id='a1b5abd2' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='863' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='rpm_lvl' type-id='812ff8cb' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='865' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='spm_lvl' type-id='812ff8cb' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='867' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='rpm_lvl_attr' type-id='dbf3947c' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='868' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='spm_lvl_attr' type-id='dbf3947c' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='869' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='pm_op_in_progress' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='870' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='ahit' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='873' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='lrb' type-id='6ca6fa6d' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='875' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='outstanding_tasks' type-id='7359adad' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='877' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='outstanding_lock' type-id='fb4018a0' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='878' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='outstanding_reqs' type-id='7359adad' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='879' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='capabilities' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='881' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1760'>
+          <var-decl name='nutrs' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='882' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='nutmrs' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='883' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1824'>
+          <var-decl name='reserved_slot' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='884' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='ufs_version' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='885' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='vops' type-id='52ab0d0f' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='886' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='vps' type-id='aec2c278' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='887' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='888' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='sg_entry_size' type-id='b59d7dce' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='889' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='irq' type-id='f0981eeb' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='890' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2208'>
+          <var-decl name='is_irq_enabled' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='891' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='dev_ref_clk_freq' type-id='56d5992c' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='892' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2272'>
+          <var-decl name='quirks' type-id='f0981eeb' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='894' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='dev_quirks' type-id='f0981eeb' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='897' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='tmf_tag_set' type-id='651086d7' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='899' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='tmf_queue' type-id='e7d2a5fc' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='900' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='tmf_rqs' type-id='79808846' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='901' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4864'>
+          <var-decl name='active_uic_cmd' type-id='cdf785b8' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='903' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4928'>
+          <var-decl name='uic_cmd_mutex' type-id='925167dc' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='904' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5312'>
+          <var-decl name='uic_async_done' type-id='389faaf7' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='905' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='ufshcd_state' type-id='84323c4d' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='907' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5408'>
+          <var-decl name='eh_flags' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='908' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5440'>
+          <var-decl name='intr_mask' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='909' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5472'>
+          <var-decl name='ee_ctrl_mask' type-id='1dc6a898' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='910' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5488'>
+          <var-decl name='ee_drv_mask' type-id='1dc6a898' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='911' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='ee_usr_mask' type-id='1dc6a898' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='912' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='ee_ctrl_mutex' type-id='925167dc' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='913' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5952'>
+          <var-decl name='is_powered' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='914' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5960'>
+          <var-decl name='shutting_down' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='915' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6016'>
+          <var-decl name='host_sem' type-id='011244e5' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='916' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6208'>
+          <var-decl name='eh_wq' type-id='242e3d19' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='919' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6272'>
+          <var-decl name='eh_work' type-id='ef9025d0' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='920' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6656'>
+          <var-decl name='eeh_work' type-id='ef9025d0' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='921' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7040'>
+          <var-decl name='errors' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='924' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7072'>
+          <var-decl name='uic_error' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='925' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7104'>
+          <var-decl name='saved_err' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='926' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7136'>
+          <var-decl name='saved_uic_err' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='927' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7168'>
+          <var-decl name='ufs_stats' type-id='e7596927' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='928' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20864'>
+          <var-decl name='force_reset' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='929' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20872'>
+          <var-decl name='force_pmc' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='930' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20880'>
+          <var-decl name='silence_err_logs' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='931' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20928'>
+          <var-decl name='dev_cmd' type-id='19098804' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='934' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21888'>
+          <var-decl name='last_dme_cmd_tstamp' type-id='fbc017ef' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='935' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21952'>
+          <var-decl name='nop_out_timeout' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='936' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22016'>
+          <var-decl name='dev_info' type-id='e3428c48' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='939' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22400'>
+          <var-decl name='auto_bkops_enabled' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='940' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22464'>
+          <var-decl name='vreg_info' type-id='c9a4cbd1' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='941' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22720'>
+          <var-decl name='clk_list_head' type-id='72f469ec' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='942' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22848'>
+          <var-decl name='req_abort_count' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='945' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22880'>
+          <var-decl name='lanes_per_direction' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='948' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22912'>
+          <var-decl name='pwr_info' type-id='4020579d' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='949' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='23136'>
+          <var-decl name='max_pwr_info' type-id='9b642532' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='950' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='23424'>
+          <var-decl name='clk_gating' type-id='0eeb0815' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='952' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25792'>
+          <var-decl name='caps' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='954' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25856'>
+          <var-decl name='devfreq' type-id='f66fa7f4' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='956' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25920'>
+          <var-decl name='clk_scaling' type-id='ab4dad02' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='957' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27712'>
+          <var-decl name='is_sys_suspended' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='958' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27744'>
+          <var-decl name='urgent_bkops_lvl' type-id='462d2624' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='960' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27776'>
+          <var-decl name='is_urgent_bkops_lvl_checked' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='961' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27840'>
+          <var-decl name='clk_scaling_lock' type-id='f19fdb93' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='963' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28352'>
+          <var-decl name='desc_size' type-id='d69ec031' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='964' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28448'>
+          <var-decl name='scsi_block_reqs_cnt' type-id='49178f86' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='965' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28480'>
+          <var-decl name='bsg_dev' type-id='66e487eb' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='967' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='35776'>
+          <var-decl name='bsg_queue' type-id='e7d2a5fc' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='968' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='35840'>
+          <var-decl name='rpm_dev_flush_recheck_work' type-id='5ad6e0ef' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='969' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='36928'>
+          <var-decl name='ufshpb_dev' type-id='807fa308' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='972' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='37120'>
+          <var-decl name='monitor' type-id='2251b9ac' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='975' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='38272'>
+          <var-decl name='crypto_capabilities' type-id='4721c843' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='978' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='38336'>
+          <var-decl name='crypto_cap_array' type-id='d43dc76d' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='979' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='38400'>
+          <var-decl name='crypto_cfg_register' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='980' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='38464'>
+          <var-decl name='ksm' type-id='13fcfe64' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='981' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40064'>
+          <var-decl name='debugfs_root' type-id='27675065' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='984' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40128'>
+          <var-decl name='debugfs_ee_work' type-id='5ad6e0ef' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='985' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41216'>
+          <var-decl name='debugfs_ee_rate_limit_ms' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='986' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41248'>
+          <var-decl name='luns_avail' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='988' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41280'>
+          <var-decl name='complete_put' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='989' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41344'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='991' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41408'>
+          <var-decl name='android_oem_data1' type-id='24a375b2' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='992' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41536'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='994' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41600'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='995' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41664'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='996' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41728'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='997' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='bc6e6178'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='snd_pcm_runtime' size-in-bits='6720' is-struct='yes' visibility='default' filepath='include/sound/pcm.h' line='346' column='1' id='bc78c060'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='trigger_master' type-id='06b2cd14' visibility='default' filepath='include/sound/pcm.h' line='348' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='trigger_tstamp' type-id='40a816ad' visibility='default' filepath='include/sound/pcm.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='trigger_tstamp_latched' type-id='b50a4934' visibility='default' filepath='include/sound/pcm.h' line='350' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='overrange' type-id='95e97e5e' visibility='default' filepath='include/sound/pcm.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='avail_max' type-id='df412e35' visibility='default' filepath='include/sound/pcm.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='hw_ptr_base' type-id='df412e35' visibility='default' filepath='include/sound/pcm.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='hw_ptr_interrupt' type-id='df412e35' visibility='default' filepath='include/sound/pcm.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='hw_ptr_jiffies' type-id='7359adad' visibility='default' filepath='include/sound/pcm.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='hw_ptr_buffer_jiffies' type-id='7359adad' visibility='default' filepath='include/sound/pcm.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='delay' type-id='721b74e7' visibility='default' filepath='include/sound/pcm.h' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='hw_ptr_wrap' type-id='91ce1af9' visibility='default' filepath='include/sound/pcm.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='access' type-id='6459083c' visibility='default' filepath='include/sound/pcm.h' line='361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='format' type-id='67fa9bd5' visibility='default' filepath='include/sound/pcm.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='subformat' type-id='2bc87435' visibility='default' filepath='include/sound/pcm.h' line='363' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='rate' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='channels' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='365' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='period_size' type-id='df412e35' visibility='default' filepath='include/sound/pcm.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='periods' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='367' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='buffer_size' type-id='df412e35' visibility='default' filepath='include/sound/pcm.h' line='368' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='min_align' type-id='df412e35' visibility='default' filepath='include/sound/pcm.h' line='369' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='byte_align' type-id='b59d7dce' visibility='default' filepath='include/sound/pcm.h' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='frame_bits' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='371' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='sample_bits' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='info' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='373' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='rate_num' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='374' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='rate_den' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='no_period_wakeup' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='tstamp_mode' type-id='95e97e5e' visibility='default' filepath='include/sound/pcm.h' line='379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='period_step' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='start_threshold' type-id='df412e35' visibility='default' filepath='include/sound/pcm.h' line='381' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='stop_threshold' type-id='df412e35' visibility='default' filepath='include/sound/pcm.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='silence_threshold' type-id='df412e35' visibility='default' filepath='include/sound/pcm.h' line='383' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='silence_size' type-id='df412e35' visibility='default' filepath='include/sound/pcm.h' line='385' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='boundary' type-id='df412e35' visibility='default' filepath='include/sound/pcm.h' line='386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='silence_start' type-id='df412e35' visibility='default' filepath='include/sound/pcm.h' line='388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='silence_filled' type-id='df412e35' visibility='default' filepath='include/sound/pcm.h' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='sync' type-id='85b4e5de' visibility='default' filepath='include/sound/pcm.h' line='391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='status' type-id='25b56694' visibility='default' filepath='include/sound/pcm.h' line='394' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='control' type-id='87a69661' visibility='default' filepath='include/sound/pcm.h' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='twake' type-id='df412e35' visibility='default' filepath='include/sound/pcm.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='sleep' type-id='b5ab048f' visibility='default' filepath='include/sound/pcm.h' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='tsleep' type-id='b5ab048f' visibility='default' filepath='include/sound/pcm.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='fasync' type-id='5bb9c75d' visibility='default' filepath='include/sound/pcm.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='stop_operating' type-id='b50a4934' visibility='default' filepath='include/sound/pcm.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='buffer_mutex' type-id='925167dc' visibility='default' filepath='include/sound/pcm.h' line='403' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='buffer_accessing' type-id='49178f86' visibility='default' filepath='include/sound/pcm.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/pcm.h' line='407' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='private_free' type-id='c61a7923' visibility='default' filepath='include/sound/pcm.h' line='408' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='hw' type-id='eacd353c' visibility='default' filepath='include/sound/pcm.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='hw_constraints' type-id='82c7680e' visibility='default' filepath='include/sound/pcm.h' line='412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6016'>
+          <var-decl name='timer_resolution' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='415' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6048'>
+          <var-decl name='tstamp_type' type-id='95e97e5e' visibility='default' filepath='include/sound/pcm.h' line='416' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='dma_area' type-id='cf536864' visibility='default' filepath='include/sound/pcm.h' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6144'>
+          <var-decl name='dma_addr' type-id='cf29c9b3' visibility='default' filepath='include/sound/pcm.h' line='420' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6208'>
+          <var-decl name='dma_bytes' type-id='b59d7dce' visibility='default' filepath='include/sound/pcm.h' line='421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6272'>
+          <var-decl name='dma_buffer_p' type-id='a02b8cd2' visibility='default' filepath='include/sound/pcm.h' line='423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6336'>
+          <var-decl name='buffer_changed' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='424' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6368'>
+          <var-decl name='audio_tstamp_config' type-id='cf2e67bb' visibility='default' filepath='include/sound/pcm.h' line='427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6400'>
+          <var-decl name='audio_tstamp_report' type-id='7cd8db07' visibility='default' filepath='include/sound/pcm.h' line='428' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='driver_tstamp' type-id='40a816ad' visibility='default' filepath='include/sound/pcm.h' line='429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6592'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/pcm.h' line='435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6656'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/sound/pcm.h' line='436' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='bpf_link_ops' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='1022' column='1' id='bc84eba7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='release' type-id='42861783' visibility='default' filepath='include/linux/bpf.h' line='1023' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dealloc' type-id='42861783' visibility='default' filepath='include/linux/bpf.h' line='1024' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='detach' type-id='32271368' visibility='default' filepath='include/linux/bpf.h' line='1025' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='update_prog' type-id='1f1dd1be' visibility='default' filepath='include/linux/bpf.h' line='1026' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='show_fdinfo' type-id='e3a7f506' visibility='default' filepath='include/linux/bpf.h' line='1028' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='fill_link_info' type-id='9e2873bb' visibility='default' filepath='include/linux/bpf.h' line='1029' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/bpf.h' line='1031' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='df042c09' size-in-bits='64' id='bc9b7fcd'/>
+      <function-type size-in-bits='64' id='bca3f647'>
+        <parameter type-id='b977ca56'/>
+        <parameter type-id='0a19b04e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='6739dd09' const='yes' id='bca91994'/>
+      <class-decl name='ipv6_pinfo' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/linux/ipv6.h' line='214' column='1' id='bcad3f73'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='saddr' type-id='f6ed712a' visibility='default' filepath='include/linux/ipv6.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sticky_pktinfo' type-id='91b426fc' visibility='default' filepath='include/linux/ipv6.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='daddr_cache' type-id='fea9c20b' visibility='default' filepath='include/linux/ipv6.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='flow_label' type-id='78a133c2' visibility='default' filepath='include/linux/ipv6.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='frag_size' type-id='3f1a6b60' visibility='default' filepath='include/linux/ipv6.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='__unused_1' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='455'>
+          <var-decl name='hop_limit' type-id='b55def60' visibility='default' filepath='include/linux/ipv6.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='464'>
+          <var-decl name='mc_loop' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='465'>
+          <var-decl name='__unused_2' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='471'>
+          <var-decl name='mcast_hops' type-id='b55def60' visibility='default' filepath='include/linux/ipv6.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='ucast_oif' type-id='95e97e5e' visibility='default' filepath='include/linux/ipv6.h' line='247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='mcast_oif' type-id='95e97e5e' visibility='default' filepath='include/linux/ipv6.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='rxopt' type-id='ac5ab6a1' visibility='default' filepath='include/linux/ipv6.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='560'>
+          <var-decl name='recverr' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='561'>
+          <var-decl name='sndflow' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='562'>
+          <var-decl name='repflow' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='563'>
+          <var-decl name='pmtudisc' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='566'>
+          <var-decl name='padding' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='567'>
+          <var-decl name='srcprefs' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='570'>
+          <var-decl name='dontfrag' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='571'>
+          <var-decl name='autoflowlabel' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='572'>
+          <var-decl name='autoflowlabel_set' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='573'>
+          <var-decl name='mc_all' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='574'>
+          <var-decl name='recverr_rfc4884' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='287' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='575'>
+          <var-decl name='rtalert_isolate' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='min_hopcount' type-id='8f048e17' visibility='default' filepath='include/linux/ipv6.h' line='289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='584'>
+          <var-decl name='tclass' type-id='8f048e17' visibility='default' filepath='include/linux/ipv6.h' line='290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='rcv_flowinfo' type-id='78a133c2' visibility='default' filepath='include/linux/ipv6.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='dst_cookie' type-id='3f1a6b60' visibility='default' filepath='include/linux/ipv6.h' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='ipv6_mc_list' type-id='3d802c7c' visibility='default' filepath='include/linux/ipv6.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='ipv6_ac_list' type-id='0d2afef8' visibility='default' filepath='include/linux/ipv6.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='ipv6_fl_list' type-id='3a14a5ee' visibility='default' filepath='include/linux/ipv6.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='opt' type-id='d4145729' visibility='default' filepath='include/linux/ipv6.h' line='299' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='pktoptions' type-id='0fbf3cfd' visibility='default' filepath='include/linux/ipv6.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='rxpmtu' type-id='0fbf3cfd' visibility='default' filepath='include/linux/ipv6.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='cork' type-id='79e3d9fd' visibility='default' filepath='include/linux/ipv6.h' line='302' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='bcb69272'>
+        <parameter type-id='226853d2'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='iw_handler' type-id='2c8ff697' filepath='include/net/iw_handler.h' line='315' column='1' id='bcc5cab3'/>
+      <class-decl name='xfrm6_protocol' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/net/xfrm.h' line='1430' column='1' id='bcc93c81'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='handler' type-id='d2e00785' visibility='default' filepath='include/net/xfrm.h' line='1431' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='input_handler' type-id='ec71052e' visibility='default' filepath='include/net/xfrm.h' line='1432' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cb_handler' type-id='0aeca82c' visibility='default' filepath='include/net/xfrm.h' line='1434' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='err_handler' type-id='a6ecc207' visibility='default' filepath='include/net/xfrm.h' line='1435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='next' type-id='679c2b79' visibility='default' filepath='include/net/xfrm.h' line='1438' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='priority' type-id='95e97e5e' visibility='default' filepath='include/net/xfrm.h' line='1439' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ee83ff69' size-in-bits='64' id='bccad679'/>
+      <class-decl name='ff_device' size-in-bits='1152' is-struct='yes' visibility='default' filepath='include/linux/input.h' line='554' column='1' id='bccc4180'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='upload' type-id='a13b38d7' visibility='default' filepath='include/linux/input.h' line='555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='erase' type-id='9589d936' visibility='default' filepath='include/linux/input.h' line='557' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='playback' type-id='feb3b3dd' visibility='default' filepath='include/linux/input.h' line='559' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='set_gain' type-id='1e82f767' visibility='default' filepath='include/linux/input.h' line='560' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='set_autocenter' type-id='1e82f767' visibility='default' filepath='include/linux/input.h' line='561' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='destroy' type-id='bf55f18b' visibility='default' filepath='include/linux/input.h' line='563' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='private' type-id='eaa32e2f' visibility='default' filepath='include/linux/input.h' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ffbit' type-id='f05e8e77' visibility='default' filepath='include/linux/input.h' line='567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='include/linux/input.h' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='max_effects' type-id='95e97e5e' visibility='default' filepath='include/linux/input.h' line='571' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='effects' type-id='98b22793' visibility='default' filepath='include/linux/input.h' line='572' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/input.h' line='574' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='effect_owners' type-id='5e8a3097' visibility='default' filepath='include/linux/input.h' line='576' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='c151291a' const='yes' id='bccc86df'/>
+      <class-decl name='files_struct' size-in-bits='5632' is-struct='yes' visibility='default' filepath='include/linux/fdtable.h' line='49' column='1' id='bccdf330'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='49178f86' visibility='default' filepath='include/linux/fdtable.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='resize_in_progress' type-id='b50a4934' visibility='default' filepath='include/linux/fdtable.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='resize_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/fdtable.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='fdt' type-id='02b857a9' visibility='default' filepath='include/linux/fdtable.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='fdtab' type-id='ff35cfe1' visibility='default' filepath='include/linux/fdtable.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='file_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/fdtable.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='next_fd' type-id='f0981eeb' visibility='default' filepath='include/linux/fdtable.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='close_on_exec_init' type-id='f066dd3c' visibility='default' filepath='include/linux/fdtable.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='open_fds_init' type-id='f066dd3c' visibility='default' filepath='include/linux/fdtable.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='full_fds_bits_init' type-id='f066dd3c' visibility='default' filepath='include/linux/fdtable.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='fd_array' type-id='d2c516bd' visibility='default' filepath='include/linux/fdtable.h' line='67' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9f39f396' size-in-bits='64' id='bcd24f78'/>
+      <pointer-type-def type-id='d6a7cd6f' size-in-bits='64' id='bcd28457'/>
+      <class-decl name='aead_instance' size-in-bits='6144' is-struct='yes' visibility='default' filepath='include/crypto/internal/aead.h' line='18' column='1' id='bcdbd578'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='free' type-id='5f0c5b93' visibility='default' filepath='include/crypto/internal/aead.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='' type-id='ac5ab5ac' visibility='default' filepath='include/crypto/internal/aead.h' line='20' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4f0614b5' size-in-bits='64' id='bcdbe961'/>
+      <enum-decl name='phylink_op_type' filepath='include/linux/phylink.h' line='55' column='1' id='bce2e958'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PHYLINK_NETDEV' value='0'/>
+        <enumerator name='PHYLINK_DEV' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='b331d35e' size-in-bits='64' id='bcea32e0'/>
+      <array-type-def dimensions='1' type-id='6c9c83d5' size-in-bits='256' id='bcebf8c5'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='bcf9ffa5'>
+        <parameter type-id='37175e4d'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='b5382ece' size-in-bits='64' id='bcfe6314'/>
+      <class-decl name='nf_conntrack_man' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='29' column='1' id='bd087e00'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='u3' type-id='8c17f46b' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='u' type-id='cfd75634' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='l3num' type-id='ea2e3595' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='33' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='bd08cd5c'>
+        <parameter type-id='e324928d'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='7e3ce2c4' size-in-bits='64' id='bd0b5822'/>
+      <function-type size-in-bits='64' id='bd15af15'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='mem_dqblk' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/quota.h' line='205' column='1' id='bd17a943'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dqb_bhardlimit' type-id='33341965' visibility='default' filepath='include/linux/quota.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dqb_bsoftlimit' type-id='33341965' visibility='default' filepath='include/linux/quota.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dqb_curspace' type-id='33341965' visibility='default' filepath='include/linux/quota.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dqb_rsvspace' type-id='33341965' visibility='default' filepath='include/linux/quota.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dqb_ihardlimit' type-id='33341965' visibility='default' filepath='include/linux/quota.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dqb_isoftlimit' type-id='33341965' visibility='default' filepath='include/linux/quota.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dqb_curinodes' type-id='33341965' visibility='default' filepath='include/linux/quota.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='dqb_btime' type-id='1afd27ac' visibility='default' filepath='include/linux/quota.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='dqb_itime' type-id='1afd27ac' visibility='default' filepath='include/linux/quota.h' line='214' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6e0e17b0' size-in-bits='64' id='bd1c8eb6'/>
+      <class-decl name='qdisc_size_table' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/net/sch_generic.h' line='50' column='1' id='bd1d1d08'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/sch_generic.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/sch_generic.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='szopts' type-id='c7a2cf9f' visibility='default' filepath='include/net/sch_generic.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='refcnt' type-id='95e97e5e' visibility='default' filepath='include/net/sch_generic.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='data' type-id='0f300383' visibility='default' filepath='include/net/sch_generic.h' line='55' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='9b61d1a6' size-in-bits='384' id='bd1ec77b'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <qualified-type-def type-id='fd240b02' const='yes' id='bd2407df'/>
+      <function-type size-in-bits='64' id='bd242e0b'>
+        <parameter type-id='809cdefc'/>
+        <parameter type-id='1b0e1d00'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='__anonymous_enum__' filepath='lib/zstd/compress.c' line='2948' column='1' id='bd2ccac1' is-anonymous='yes'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='zcss_init' value='0'/>
+        <enumerator name='zcss_load' value='1'/>
+        <enumerator name='zcss_flush' value='2'/>
+        <enumerator name='zcss_final' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='3b28e6a8' size-in-bits='64' id='bd2d1eba'/>
+      <pointer-type-def type-id='b3bcc053' size-in-bits='64' id='bd300bf3'/>
+      <qualified-type-def type-id='a31cf734' const='yes' id='bd36df2f'/>
+      <pointer-type-def type-id='be643f38' size-in-bits='64' id='bd3860fe'/>
+      <qualified-type-def type-id='fd7f3d28' const='yes' id='bd3c6981'/>
+      <pointer-type-def type-id='6fd68117' size-in-bits='64' id='bd3f3f93'/>
+      <array-type-def dimensions='1' type-id='19c2251e' size-in-bits='736' id='bd44dad8'>
+        <subrange length='23' type-id='7ff19f0f' id='fdd0f594'/>
+      </array-type-def>
+      <pointer-type-def type-id='9c43712a' size-in-bits='64' id='bd4604a4'/>
+      <class-decl name='of_timer_base' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/clocksource/timer-of.h' line='20' column='1' id='bd48ef82'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='eaa32e2f' visibility='default' filepath='drivers/clocksource/timer-of.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/clocksource/timer-of.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='index' type-id='95e97e5e' visibility='default' filepath='drivers/clocksource/timer-of.h' line='23' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='bd4974e4'>
+        <parameter type-id='9ad862e7'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='557bca33' const='yes' id='bd4a4592'/>
+      <class-decl name='icmp_mib' size-in-bits='1792' is-struct='yes' visibility='default' filepath='include/net/snmp.h' line='59' column='1' id='bd4dc4cb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mibs' type-id='8bbc0f7f' visibility='default' filepath='include/net/snmp.h' line='60' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tcf_proto_ops' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/net/sch_generic.h' line='339' column='1' id='bd4e4ac8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='head' type-id='72f469ec' visibility='default' filepath='include/net/sch_generic.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='kind' type-id='ac1fa8c0' visibility='default' filepath='include/net/sch_generic.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='classify' type-id='624375a3' visibility='default' filepath='include/net/sch_generic.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='init' type-id='98f35cbb' visibility='default' filepath='include/net/sch_generic.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='destroy' type-id='59f6a07a' visibility='default' filepath='include/net/sch_generic.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='get' type-id='94c16fa5' visibility='default' filepath='include/net/sch_generic.h' line='350' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='put' type-id='825ef190' visibility='default' filepath='include/net/sch_generic.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='change' type-id='1fc306e2' visibility='default' filepath='include/net/sch_generic.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='delete' type-id='42c362d1' visibility='default' filepath='include/net/sch_generic.h' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='delete_empty' type-id='a4cbdcd9' visibility='default' filepath='include/net/sch_generic.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='walk' type-id='4ffa0523' visibility='default' filepath='include/net/sch_generic.h' line='361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='reoffload' type-id='a852a9de' visibility='default' filepath='include/net/sch_generic.h' line='363' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='hw_add' type-id='825ef190' visibility='default' filepath='include/net/sch_generic.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='hw_del' type-id='825ef190' visibility='default' filepath='include/net/sch_generic.h' line='368' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='bind_class' type-id='f590d4d9' visibility='default' filepath='include/net/sch_generic.h' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='tmplt_create' type-id='938abf68' visibility='default' filepath='include/net/sch_generic.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='tmplt_destroy' type-id='b7f9d8e6' visibility='default' filepath='include/net/sch_generic.h' line='376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='dump' type-id='69b48c13' visibility='default' filepath='include/net/sch_generic.h' line='379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='terse_dump' type-id='69b48c13' visibility='default' filepath='include/net/sch_generic.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='tmplt_dump' type-id='d18dbee4' visibility='default' filepath='include/net/sch_generic.h' line='386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/net/sch_generic.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/net/sch_generic.h' line='391' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='bd4fb852'>
+        <parameter type-id='eefe253e'/>
+        <parameter type-id='b6733265'/>
+        <parameter type-id='c2d135ef'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='compat_robust_list' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/compat.h' line='358' column='1' id='bd51dd4a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='782d78af' visibility='default' filepath='include/linux/compat.h' line='359' column='1'/>
+        </data-member>
+      </class-decl>
+      <type-decl name='long int' size-in-bits='64' id='bd54fe1a'/>
+      <pointer-type-def type-id='3ae4e62d' size-in-bits='64' id='bd561d05'/>
+      <class-decl name='clk_parent_data' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/clk-provider.h' line='278' column='1' id='bd5c3911'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hw' type-id='9e6d4b4e' visibility='default' filepath='include/linux/clk-provider.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fw_name' type-id='80f4b756' visibility='default' filepath='include/linux/clk-provider.h' line='280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/clk-provider.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='index' type-id='95e97e5e' visibility='default' filepath='include/linux/clk-provider.h' line='282' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='regmap_bus' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/regmap.h' line='522' column='1' id='bd5f6464'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fast_io' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='523' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='write' type-id='928c5b64' visibility='default' filepath='include/linux/regmap.h' line='524' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='gather_write' type-id='60be0faa' visibility='default' filepath='include/linux/regmap.h' line='525' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='async_write' type-id='6ee2c7d7' visibility='default' filepath='include/linux/regmap.h' line='526' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='reg_write' type-id='8c8780d1' visibility='default' filepath='include/linux/regmap.h' line='527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='reg_update_bits' type-id='59483ee8' visibility='default' filepath='include/linux/regmap.h' line='528' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='read' type-id='697414cd' visibility='default' filepath='include/linux/regmap.h' line='529' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='reg_read' type-id='ec8d430e' visibility='default' filepath='include/linux/regmap.h' line='530' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='free_context' type-id='5c459137' visibility='default' filepath='include/linux/regmap.h' line='531' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='async_alloc' type-id='27a024fd' visibility='default' filepath='include/linux/regmap.h' line='532' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='read_flag_mask' type-id='f9b06939' visibility='default' filepath='include/linux/regmap.h' line='533' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='reg_format_endian_default' type-id='e8a9ba7e' visibility='default' filepath='include/linux/regmap.h' line='534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='val_format_endian_default' type-id='e8a9ba7e' visibility='default' filepath='include/linux/regmap.h' line='535' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='max_raw_read' type-id='b59d7dce' visibility='default' filepath='include/linux/regmap.h' line='536' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='max_raw_write' type-id='b59d7dce' visibility='default' filepath='include/linux/regmap.h' line='537' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='free_on_exit' type-id='b50a4934' visibility='default' filepath='include/linux/regmap.h' line='538' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/regmap.h' line='540' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='36721cc5' size-in-bits='64' id='bd60ed15'/>
+      <function-type size-in-bits='64' id='bd667b9e'>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='7359adad'/>
+      </function-type>
+      <class-decl name='netlink_range_validation_signed' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/netlink.h' line='193' column='1' id='bd68866d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='min' type-id='9b7c55ef' visibility='default' filepath='include/net/netlink.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max' type-id='9b7c55ef' visibility='default' filepath='include/net/netlink.h' line='194' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3ede3949' size-in-bits='64' id='bd70a631'/>
+      <pointer-type-def type-id='0f5a7eb8' size-in-bits='64' id='bd753fd6'/>
+      <pointer-type-def type-id='2b3d4ba2' size-in-bits='64' id='bd83ae50'/>
+      <function-type size-in-bits='64' id='bd8642d8'>
+        <parameter type-id='feb59272'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='a54c778f'/>
+        <return type-id='8f254b08'/>
+      </function-type>
+      <class-decl name='ff_trigger' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/input.h' line='316' column='1' id='bd8e6f06'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='button' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='interval' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='318' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='net' size-in-bits='31232' is-struct='yes' visibility='default' filepath='include/net/net_namespace.h' line='56' column='1' id='bd965180'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='passive' type-id='64615833' visibility='default' filepath='include/net/net_namespace.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='rules_mod_lock' type-id='fb4018a0' visibility='default' filepath='include/net/net_namespace.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev_unreg_count' type-id='f0981eeb' visibility='default' filepath='include/net/net_namespace.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='dev_base_seq' type-id='f0981eeb' visibility='default' filepath='include/net/net_namespace.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ifindex' type-id='95e97e5e' visibility='default' filepath='include/net/net_namespace.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='nsid_lock' type-id='fb4018a0' visibility='default' filepath='include/net/net_namespace.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fnhe_genid' type-id='49178f86' visibility='default' filepath='include/net/net_namespace.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/net_namespace.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='exit_list' type-id='72f469ec' visibility='default' filepath='include/net/net_namespace.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='cleanup_list' type-id='c5ccfee8' visibility='default' filepath='include/net/net_namespace.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='key_domain' type-id='fce14c5f' visibility='default' filepath='include/net/net_namespace.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='user_ns' type-id='c0ced320' visibility='default' filepath='include/net/net_namespace.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='ucounts' type-id='b1d4934a' visibility='default' filepath='include/net/net_namespace.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='netns_ids' type-id='37ce495e' visibility='default' filepath='include/net/net_namespace.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='ns' type-id='99f367f2' visibility='default' filepath='include/net/net_namespace.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='dev_base_head' type-id='72f469ec' visibility='default' filepath='include/net/net_namespace.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='proc_net' type-id='d077e928' visibility='default' filepath='include/net/net_namespace.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='proc_net_stat' type-id='d077e928' visibility='default' filepath='include/net/net_namespace.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='sysctls' type-id='3fc3d262' visibility='default' filepath='include/net/net_namespace.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='rtnl' type-id='f772df6d' visibility='default' filepath='include/net/net_namespace.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='genl_sock' type-id='f772df6d' visibility='default' filepath='include/net/net_namespace.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='uevent_sock' type-id='5224788d' visibility='default' filepath='include/net/net_namespace.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='dev_name_head' type-id='030d0b18' visibility='default' filepath='include/net/net_namespace.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='dev_index_head' type-id='030d0b18' visibility='default' filepath='include/net/net_namespace.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='netdev_chain' type-id='96e74f5f' visibility='default' filepath='include/net/net_namespace.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='hash_mix' type-id='19c2251e' visibility='default' filepath='include/net/net_namespace.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='loopback_dev' type-id='68a2d05b' visibility='default' filepath='include/net/net_namespace.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='rules_ops' type-id='72f469ec' visibility='default' filepath='include/net/net_namespace.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='core' type-id='7436aa2b' visibility='default' filepath='include/net/net_namespace.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='mib' type-id='870ef624' visibility='default' filepath='include/net/net_namespace.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='packet' type-id='49d7aa74' visibility='default' filepath='include/net/net_namespace.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='unx' type-id='6e306fde' visibility='default' filepath='include/net/net_namespace.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4544'>
+          <var-decl name='nexthop' type-id='03364088' visibility='default' filepath='include/net/net_namespace.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5632'>
+          <var-decl name='ipv4' type-id='dba1641f' visibility='default' filepath='include/net/net_namespace.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11264'>
+          <var-decl name='ipv6' type-id='dda16745' visibility='default' filepath='include/net/net_namespace.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16896'>
+          <var-decl name='ieee802154_lowpan' type-id='8cab4960' visibility='default' filepath='include/net/net_namespace.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17024'>
+          <var-decl name='nf' type-id='0a6298e0' visibility='default' filepath='include/net/net_namespace.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18944'>
+          <var-decl name='ct' type-id='2a831eeb' visibility='default' filepath='include/net/net_namespace.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20736'>
+          <var-decl name='wext_nlevents' type-id='e61c85d0' visibility='default' filepath='include/net/net_namespace.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20928'>
+          <var-decl name='gen' type-id='871fd930' visibility='default' filepath='include/net/net_namespace.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20992'>
+          <var-decl name='bpf' type-id='0adc5858' visibility='default' filepath='include/net/net_namespace.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21504'>
+          <var-decl name='xfrm' type-id='3d2d291b' visibility='default' filepath='include/net/net_namespace.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='29184'>
+          <var-decl name='net_cookie' type-id='91ce1af9' visibility='default' filepath='include/net/net_namespace.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='29248'>
+          <var-decl name='can' type-id='8f9898ce' visibility='default' filepath='include/net/net_namespace.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='30720'>
+          <var-decl name='xdp' type-id='a2b0ef48' visibility='default' filepath='include/net/net_namespace.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='31168'>
+          <var-decl name='diag_nlsk' type-id='f772df6d' visibility='default' filepath='include/net/net_namespace.h' line='175' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='bd975dad'>
+        <parameter type-id='0d97a11a'/>
+        <parameter type-id='4616a179'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='6815c34a' size-in-bits='64' id='bd9e4f1c'/>
+      <function-type size-in-bits='64' id='bd9eea97'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='122b71ba'/>
+        <parameter type-id='e638cd0c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d2df6ce2' size-in-bits='64' id='bda101d4'/>
+      <pointer-type-def type-id='ba3b5f2c' size-in-bits='64' id='bda384fe'/>
+      <class-decl name='gcry_mpi' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/mpi.h' line='29' column='1' id='bdaa35b9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='alloced' type-id='95e97e5e' visibility='default' filepath='include/linux/mpi.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='nlimbs' type-id='95e97e5e' visibility='default' filepath='include/linux/mpi.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nbits' type-id='95e97e5e' visibility='default' filepath='include/linux/mpi.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='sign' type-id='95e97e5e' visibility='default' filepath='include/linux/mpi.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/mpi.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='d' type-id='250b293b' visibility='default' filepath='include/linux/mpi.h' line='37' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b0623418' size-in-bits='64' id='bdada41a'/>
+      <class-decl name='device_type' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/device.h' line='88' column='1' id='bdae35f4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/device.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='groups' type-id='c97de1ac' visibility='default' filepath='include/linux/device.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='uevent' type-id='22deb949' visibility='default' filepath='include/linux/device.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='devnode' type-id='b72fdee5' visibility='default' filepath='include/linux/device.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='release' type-id='dd787f72' visibility='default' filepath='include/linux/device.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='pm' type-id='3fab024e' visibility='default' filepath='include/linux/device.h' line='96' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='db9db9b1' const='yes' id='bdb26574'/>
+      <function-type size-in-bits='64' id='bdb32c88'>
+        <parameter type-id='b11825ce'/>
+        <parameter type-id='7f6ae768'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='bdb68106'>
+        <parameter type-id='bff05edb'/>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7e5d36fb' size-in-bits='64' id='bdbd4b03'/>
+      <class-decl name='pci_saved_state' size-in-bits='512' is-struct='yes' visibility='default' filepath='drivers/pci/pci.c' line='1727' column='1' id='bdbf2231'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='config_space' type-id='02fdec64' visibility='default' filepath='drivers/pci/pci.c' line='1728' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='cap' type-id='5f7bfbc1' visibility='default' filepath='drivers/pci/pci.c' line='1729' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='facd5338' size-in-bits='64' id='bdcee7ae'/>
+      <class-decl name='usb_cdc_ncm_desc' size-in-bits='48' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='187' column='1' id='bdcf5751'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bDescriptorSubType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bcdNcmVersion' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='bmNetworkCapabilities' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='193' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='52c7f7a2' const='yes' id='bdd1d6eb'/>
+      <class-decl name='drm_hdmi_dsc_cap' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/drm/drm_connector.h' line='185' column='1' id='bdd2ceab'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='v_1p2' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='native_420' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='all_bpp' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bpc_supported' type-id='f9b06939' visibility='default' filepath='include/drm/drm_connector.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='max_slices' type-id='f9b06939' visibility='default' filepath='include/drm/drm_connector.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='clk_per_slice' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_connector.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='max_lanes' type-id='f9b06939' visibility='default' filepath='include/drm/drm_connector.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='max_frl_rate_per_lane' type-id='f9b06939' visibility='default' filepath='include/drm/drm_connector.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='total_chunk_kbytes' type-id='f9b06939' visibility='default' filepath='include/drm/drm_connector.h' line='216' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9832842b' size-in-bits='64' id='bdd84dab'/>
+      <enum-decl name='ptp_pin_function' filepath='include/uapi/linux/ptp_clock.h' line='167' column='1' id='bddbbc91'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PTP_PF_NONE' value='0'/>
+        <enumerator name='PTP_PF_EXTTS' value='1'/>
+        <enumerator name='PTP_PF_PEROUT' value='2'/>
+        <enumerator name='PTP_PF_PHYSYNC' value='3'/>
+      </enum-decl>
+      <qualified-type-def type-id='fbff4263' const='yes' id='bde36be8'/>
+      <pointer-type-def type-id='41d25fad' size-in-bits='64' id='bde527e9'/>
+      <array-type-def dimensions='1' type-id='2fced0dc' size-in-bits='10528' id='bde81cd9'>
+        <subrange length='329' type-id='7ff19f0f' id='59e4fd91'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='bde8b845'>
+        <parameter type-id='7837cd88'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='7d3cd834'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='xa_state' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/xarray.h' line='1310' column='1' id='bdeecda0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='xa' type-id='60075f2a' visibility='default' filepath='include/linux/xarray.h' line='1311' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='xa_index' type-id='7359adad' visibility='default' filepath='include/linux/xarray.h' line='1312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='xa_shift' type-id='002ac4a6' visibility='default' filepath='include/linux/xarray.h' line='1313' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='xa_sibs' type-id='002ac4a6' visibility='default' filepath='include/linux/xarray.h' line='1314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='xa_offset' type-id='002ac4a6' visibility='default' filepath='include/linux/xarray.h' line='1315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='xa_pad' type-id='002ac4a6' visibility='default' filepath='include/linux/xarray.h' line='1316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='xa_node' type-id='83f45767' visibility='default' filepath='include/linux/xarray.h' line='1317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='xa_alloc' type-id='83f45767' visibility='default' filepath='include/linux/xarray.h' line='1318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='xa_update' type-id='ff53cfc5' visibility='default' filepath='include/linux/xarray.h' line='1319' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8087dc43' size-in-bits='64' id='bdf62267'/>
+      <pointer-type-def type-id='b95f4e75' size-in-bits='64' id='bdf745d1'/>
+      <qualified-type-def type-id='60eff7ff' const='yes' id='bdf845e8'/>
+      <pointer-type-def type-id='b56a1102' size-in-bits='64' id='bdf901f8'/>
+      <enum-decl name='of_gpio_flags' filepath='include/linux/of_gpio.h' line='25' column='1' id='be0d5cf5'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='OF_GPIO_ACTIVE_LOW' value='1'/>
+        <enumerator name='OF_GPIO_SINGLE_ENDED' value='2'/>
+        <enumerator name='OF_GPIO_OPEN_DRAIN' value='4'/>
+        <enumerator name='OF_GPIO_TRANSITORY' value='8'/>
+        <enumerator name='OF_GPIO_PULL_UP' value='16'/>
+        <enumerator name='OF_GPIO_PULL_DOWN' value='32'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='39ec6fe5' size-in-bits='9152' id='be1ad65f'>
+        <subrange length='11' type-id='7ff19f0f' id='847bc017'/>
+      </array-type-def>
+      <pointer-type-def type-id='28cb132f' size-in-bits='64' id='be2c124b'/>
+      <pointer-type-def type-id='538e531b' size-in-bits='64' id='be315f37'/>
+      <function-type size-in-bits='64' id='be36c378'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='edac_device_instance' size-in-bits='1280' is-struct='yes' visibility='default' filepath='drivers/edac/edac_device.h' line='133' column='1' id='be37740b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ctl' type-id='b7d8b860' visibility='default' filepath='drivers/edac/edac_device.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='d6e8cc9d' visibility='default' filepath='drivers/edac/edac_device.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='counters' type-id='c0388fd4' visibility='default' filepath='drivers/edac/edac_device.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='nr_blocks' type-id='19c2251e' visibility='default' filepath='drivers/edac/edac_device.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='blocks' type-id='0424a2d9' visibility='default' filepath='drivers/edac/edac_device.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='drivers/edac/edac_device.h' line='143' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='abc85e8f' size-in-bits='64' id='be3a232b'/>
+      <pointer-type-def type-id='860353ed' size-in-bits='64' id='be3ce245'/>
+      <pointer-type-def type-id='cc7d2869' size-in-bits='64' id='be4e3fad'/>
+      <class-decl name='ip_conntrack_stat' size-in-bits='416' is-struct='yes' visibility='default' filepath='include/linux/netfilter/nf_conntrack_common.h' line='8' column='1' id='be50a64d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='found' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/nf_conntrack_common.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='invalid' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/nf_conntrack_common.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='insert' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/nf_conntrack_common.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='insert_failed' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/nf_conntrack_common.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='clash_resolve' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/nf_conntrack_common.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='drop' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/nf_conntrack_common.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='early_drop' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/nf_conntrack_common.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='error' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/nf_conntrack_common.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='expect_new' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/nf_conntrack_common.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='expect_create' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/nf_conntrack_common.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='expect_delete' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/nf_conntrack_common.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='search_restart' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/nf_conntrack_common.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='chaintoolong' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/nf_conntrack_common.h' line='21' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='9b266dc4' const='yes' id='be55725b'/>
+      <pointer-type-def type-id='0ccb1a26' size-in-bits='64' id='be55abd8'/>
+      <pointer-type-def type-id='4db02c58' size-in-bits='64' id='be55f776'/>
+      <function-type size-in-bits='64' id='be643611'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='rtnl_link_stats64' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/uapi/linux/if_link.h' line='215' column='1' id='be643f38'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rx_packets' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tx_packets' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rx_bytes' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tx_bytes' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rx_errors' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='tx_errors' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='rx_dropped' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='tx_dropped' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='multicast' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='collisions' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='rx_length_errors' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='rx_over_errors' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='rx_crc_errors' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='rx_frame_errors' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='rx_fifo_errors' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='rx_missed_errors' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='tx_aborted_errors' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='tx_carrier_errors' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='tx_fifo_errors' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='tx_heartbeat_errors' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='tx_window_errors' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='rx_compressed' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='tx_compressed' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='rx_nohandler' type-id='d3130597' visibility='default' filepath='include/uapi/linux/if_link.h' line='245' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='a6222917' const='yes' id='be65923c'/>
+      <pointer-type-def type-id='f6b32752' size-in-bits='64' id='be65fdd0'/>
+      <pointer-type-def type-id='3faa6906' size-in-bits='64' id='be6833bc'/>
+      <pointer-type-def type-id='3a5c2153' size-in-bits='64' id='be6c7be7'/>
+      <pointer-type-def type-id='8c09cc61' size-in-bits='64' id='be6c9a11'/>
+      <pointer-type-def type-id='d4287147' size-in-bits='64' id='be79b65f'/>
+      <pointer-type-def type-id='7ebd0011' size-in-bits='64' id='be875ce1'/>
+      <pointer-type-def type-id='e184aa4e' size-in-bits='64' id='be89b2b8'/>
+      <class-decl name='blk_stat_callback' size-in-bits='1088' is-struct='yes' visibility='default' filepath='block/blk-stat.h' line='19' column='1' id='be8f4983'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='block/blk-stat.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='timer' type-id='abe41e67' visibility='default' filepath='block/blk-stat.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='cpu_stat' type-id='253d2bfb' visibility='default' filepath='block/blk-stat.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='bucket_fn' type-id='484cd9e5' visibility='default' filepath='block/blk-stat.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='buckets' type-id='f0981eeb' visibility='default' filepath='block/blk-stat.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='stat' type-id='253d2bfb' visibility='default' filepath='block/blk-stat.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='timer_fn' type-id='454b8f82' visibility='default' filepath='block/blk-stat.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='block/blk-stat.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='block/blk-stat.h' line='62' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='be90799d'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='ab38066e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='zone' size-in-bits='12800' is-struct='yes' visibility='default' filepath='include/linux/mmzone.h' line='708' column='1' id='be9189df'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='_watermark' type-id='3461381a' visibility='default' filepath='include/linux/mmzone.h' line='712' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='watermark_boost' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='713' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='nr_reserved_highatomic' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='715' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='lowmem_reserve' type-id='5d34b9c7' visibility='default' filepath='include/linux/mmzone.h' line='726' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='zone_pgdat' type-id='c876a7a5' visibility='default' filepath='include/linux/mmzone.h' line='731' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='per_cpu_pageset' type-id='0e64a118' visibility='default' filepath='include/linux/mmzone.h' line='732' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='per_cpu_zonestats' type-id='2ec7bb58' visibility='default' filepath='include/linux/mmzone.h' line='733' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='pageset_high' type-id='95e97e5e' visibility='default' filepath='include/linux/mmzone.h' line='738' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='pageset_batch' type-id='95e97e5e' visibility='default' filepath='include/linux/mmzone.h' line='739' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='zone_start_pfn' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='750' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='managed_pages' type-id='f22a8abb' visibility='default' filepath='include/linux/mmzone.h' line='794' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='spanned_pages' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='795' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='present_pages' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='796' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='present_early_pages' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='798' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='cma_pages' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='801' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/mmzone.h' line='804' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='nr_isolate_pageblock' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='812' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='span_seqlock' type-id='e6cd5ecf' visibility='default' filepath='include/linux/mmzone.h' line='817' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='initialized' type-id='95e97e5e' visibility='default' filepath='include/linux/mmzone.h' line='820' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='_pad1_' type-id='6041cd25' visibility='default' filepath='include/linux/mmzone.h' line='823' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='free_area' type-id='be1ad65f' visibility='default' filepath='include/linux/mmzone.h' line='826' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10688'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='829' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10752'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/mmzone.h' line='832' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11264'>
+          <var-decl name='_pad2_' type-id='6041cd25' visibility='default' filepath='include/linux/mmzone.h' line='835' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11264'>
+          <var-decl name='percpu_drift_mark' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='842' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11328'>
+          <var-decl name='compact_cached_free_pfn' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='846' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11392'>
+          <var-decl name='compact_cached_migrate_pfn' type-id='f05e8e77' visibility='default' filepath='include/linux/mmzone.h' line='848' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11520'>
+          <var-decl name='compact_init_migrate_pfn' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='849' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11584'>
+          <var-decl name='compact_init_free_pfn' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='850' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11648'>
+          <var-decl name='compact_considered' type-id='f0981eeb' visibility='default' filepath='include/linux/mmzone.h' line='860' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11680'>
+          <var-decl name='compact_defer_shift' type-id='f0981eeb' visibility='default' filepath='include/linux/mmzone.h' line='861' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11712'>
+          <var-decl name='compact_order_failed' type-id='95e97e5e' visibility='default' filepath='include/linux/mmzone.h' line='862' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11744'>
+          <var-decl name='compact_blockskip_flush' type-id='b50a4934' visibility='default' filepath='include/linux/mmzone.h' line='867' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11752'>
+          <var-decl name='contiguous' type-id='b50a4934' visibility='default' filepath='include/linux/mmzone.h' line='870' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11776'>
+          <var-decl name='_pad3_' type-id='6041cd25' visibility='default' filepath='include/linux/mmzone.h' line='872' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11776'>
+          <var-decl name='vm_stat' type-id='84a8f722' visibility='default' filepath='include/linux/mmzone.h' line='874' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12480'>
+          <var-decl name='vm_numa_event' type-id='a922812c' visibility='default' filepath='include/linux/mmzone.h' line='875' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12480'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/mmzone.h' line='877' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12544'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/mmzone.h' line='878' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12608'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/mmzone.h' line='879' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12672'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/mmzone.h' line='880' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='28271da3' size-in-bits='64' id='be937eab'/>
+      <enum-decl name='rwsem_waiter_type' filepath='include/linux/rwsem.h' line='72' column='1' id='be969d8e'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='RWSEM_WAITING_FOR_WRITE' value='0'/>
+        <enumerator name='RWSEM_WAITING_FOR_READ' value='1'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='be97e3d8'>
+        <parameter type-id='d30bdc51'/>
+        <parameter type-id='0b001c1f'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='9949f2d1' size-in-bits='64' id='be9aaa19'/>
+      <class-decl name='fb_cmap' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/fb.h' line='282' column='1' id='be9adbe3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='red' type-id='2e5e3725' visibility='default' filepath='include/uapi/linux/fb.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='green' type-id='2e5e3725' visibility='default' filepath='include/uapi/linux/fb.h' line='286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='blue' type-id='2e5e3725' visibility='default' filepath='include/uapi/linux/fb.h' line='287' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='transp' type-id='2e5e3725' visibility='default' filepath='include/uapi/linux/fb.h' line='288' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='59bcd074' size-in-bits='64' id='bea4d586'/>
+      <function-type size-in-bits='64' id='beab9323'>
+        <parameter type-id='108dbc98'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='2522883d'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='f9409001'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ctl_node' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/sysctl.h' line='136' column='1' id='beafd747'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='2a8a6332' visibility='default' filepath='include/linux/sysctl.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='header' type-id='11b101bb' visibility='default' filepath='include/linux/sysctl.h' line='138' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5fffc559' size-in-bits='64' id='beb4f24d'/>
+      <function-type size-in-bits='64' id='beb5fff3'>
+        <parameter type-id='8212a608'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='69bf7bee'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='4c1698f3' size-in-bits='64' id='bebbea3f'/>
+      <class-decl name='spi_mem_dirmap_info' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/spi/spi-mem.h' line='152' column='1' id='bec3f688'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='op_tmpl' type-id='8f68aa3b' visibility='default' filepath='include/linux/spi/spi-mem.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='offset' type-id='91ce1af9' visibility='default' filepath='include/linux/spi/spi-mem.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='length' type-id='91ce1af9' visibility='default' filepath='include/linux/spi/spi-mem.h' line='155' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='anon_vma_name' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/mm_types.h' line='319' column='1' id='becf2142'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='include/linux/mm_types.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='name' type-id='e84913bd' visibility='default' filepath='include/linux/mm_types.h' line='322' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='bed27c38'>
+        <parameter type-id='e1a56841'/>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='707be29c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='audit_aux_data' is-struct='yes' visibility='default' is-declaration-only='yes' id='bed4c75a'/>
+      <class-decl name='mmc_pwrseq' size-in-bits='320' is-struct='yes' visibility='default' filepath='drivers/mmc/core/pwrseq.h' line='23' column='1' id='bed67209'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='0fbcba93' visibility='default' filepath='drivers/mmc/core/pwrseq.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/mmc/core/pwrseq.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pwrseq_node' type-id='72f469ec' visibility='default' filepath='drivers/mmc/core/pwrseq.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='drivers/mmc/core/pwrseq.h' line='27' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pipe_inode_info' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/linux/pipe_fs_i.h' line='58' column='1' id='bed94322'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='include/linux/pipe_fs_i.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='rd_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/pipe_fs_i.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='wr_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/pipe_fs_i.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='head' type-id='f0981eeb' visibility='default' filepath='include/linux/pipe_fs_i.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='tail' type-id='f0981eeb' visibility='default' filepath='include/linux/pipe_fs_i.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='max_usage' type-id='f0981eeb' visibility='default' filepath='include/linux/pipe_fs_i.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='ring_size' type-id='f0981eeb' visibility='default' filepath='include/linux/pipe_fs_i.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='nr_accounted' type-id='f0981eeb' visibility='default' filepath='include/linux/pipe_fs_i.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='readers' type-id='f0981eeb' visibility='default' filepath='include/linux/pipe_fs_i.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='writers' type-id='f0981eeb' visibility='default' filepath='include/linux/pipe_fs_i.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='files' type-id='f0981eeb' visibility='default' filepath='include/linux/pipe_fs_i.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='r_counter' type-id='f0981eeb' visibility='default' filepath='include/linux/pipe_fs_i.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='w_counter' type-id='f0981eeb' visibility='default' filepath='include/linux/pipe_fs_i.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='poll_usage' type-id='f0981eeb' visibility='default' filepath='include/linux/pipe_fs_i.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='tmp_page' type-id='02f11ed4' visibility='default' filepath='include/linux/pipe_fs_i.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='fasync_readers' type-id='5bb9c75d' visibility='default' filepath='include/linux/pipe_fs_i.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='fasync_writers' type-id='5bb9c75d' visibility='default' filepath='include/linux/pipe_fs_i.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='bufs' type-id='e15f3242' visibility='default' filepath='include/linux/pipe_fs_i.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='user' type-id='273a7d34' visibility='default' filepath='include/linux/pipe_fs_i.h' line='79' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1b0dcbb7' size-in-bits='64' id='bedcc9eb'/>
+      <pointer-type-def type-id='e1d0c03e' size-in-bits='64' id='bee2fad0'/>
+      <class-decl name='macsec_tx_sa_stats' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/macsec.h' line='79' column='1' id='bee590db'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='OutPktsProtected' type-id='3f1a6b60' visibility='default' filepath='include/net/macsec.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='OutPktsEncrypted' type-id='3f1a6b60' visibility='default' filepath='include/net/macsec.h' line='81' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_scrambling' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/drm/drm_connector.h' line='146' column='1' id='beea899b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='supported' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='low_rates' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='154' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8573c495' size-in-bits='64' id='bef02df9'/>
+      <class-decl name='ndmsg' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/neighbour.h' line='8' column='1' id='bef19510'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ndm_family' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/neighbour.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='ndm_pad1' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/neighbour.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='ndm_pad2' type-id='d315442e' visibility='default' filepath='include/uapi/linux/neighbour.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ndm_ifindex' type-id='3158a266' visibility='default' filepath='include/uapi/linux/neighbour.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ndm_state' type-id='d315442e' visibility='default' filepath='include/uapi/linux/neighbour.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='ndm_flags' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/neighbour.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='ndm_type' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/neighbour.h' line='15' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='18448baa' size-in-bits='64' id='bef1b918'/>
+      <pointer-type-def type-id='4108533f' size-in-bits='64' id='bef34c3b'/>
+      <pointer-type-def type-id='1f91fd06' size-in-bits='64' id='bf0465ec'/>
+      <qualified-type-def type-id='77a58158' const='yes' id='bf11af99'/>
+      <class-decl name='nf_conntrack_zone' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/netfilter/nf_conntrack_zones_common.h' line='16' column='1' id='bf11b8f2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='1dc6a898' visibility='default' filepath='include/linux/netfilter/nf_conntrack_zones_common.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/linux/netfilter/nf_conntrack_zones_common.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='dir' type-id='f9b06939' visibility='default' filepath='include/linux/netfilter/nf_conntrack_zones_common.h' line='19' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='75685cad' size-in-bits='64' id='bf17d761'/>
+      <qualified-type-def type-id='5a81cef0' const='yes' id='bf1e016b'/>
+      <pointer-type-def type-id='4edc4180' size-in-bits='64' id='bf237056'/>
+      <class-decl name='freelist_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/freelist.h' line='23' column='1' id='bf2e063e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='head' type-id='c872b38e' visibility='default' filepath='include/linux/freelist.h' line='24' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='bf3013ec'>
+        <parameter type-id='51a94113'/>
+        <parameter type-id='2f9b8041'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <class-decl name='irq_affinity' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/interrupt.h' line='303' column='1' id='bf33c00a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pre_vectors' type-id='f0981eeb' visibility='default' filepath='include/linux/interrupt.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='post_vectors' type-id='f0981eeb' visibility='default' filepath='include/linux/interrupt.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nr_sets' type-id='f0981eeb' visibility='default' filepath='include/linux/interrupt.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='set_size' type-id='49580a63' visibility='default' filepath='include/linux/interrupt.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='calc_sets' type-id='887112a7' visibility='default' filepath='include/linux/interrupt.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/interrupt.h' line='309' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='69bf7bee' const='yes' id='bf352dfe'/>
+      <pointer-type-def type-id='663acc25' size-in-bits='64' id='bf3ef905'/>
+      <class-decl name='spi_statistics' size-in-bits='1856' is-struct='yes' visibility='default' filepath='include/linux/spi/spi.h' line='60' column='1' id='bf41d149'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/spi/spi.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='messages' type-id='7359adad' visibility='default' filepath='include/linux/spi/spi.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='transfers' type-id='7359adad' visibility='default' filepath='include/linux/spi/spi.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='errors' type-id='7359adad' visibility='default' filepath='include/linux/spi/spi.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='timedout' type-id='7359adad' visibility='default' filepath='include/linux/spi/spi.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='spi_sync' type-id='7359adad' visibility='default' filepath='include/linux/spi/spi.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='spi_sync_immediate' type-id='7359adad' visibility='default' filepath='include/linux/spi/spi.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='spi_async' type-id='7359adad' visibility='default' filepath='include/linux/spi/spi.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='bytes' type-id='0d77e947' visibility='default' filepath='include/linux/spi/spi.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='bytes_rx' type-id='0d77e947' visibility='default' filepath='include/linux/spi/spi.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='bytes_tx' type-id='0d77e947' visibility='default' filepath='include/linux/spi/spi.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='transfer_bytes_histo' type-id='96b80745' visibility='default' filepath='include/linux/spi/spi.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='transfers_split_maxsize' type-id='7359adad' visibility='default' filepath='include/linux/spi/spi.h' line='79' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='36a439e9' size-in-bits='64' id='bf4ae585'/>
+      <pointer-type-def type-id='37b2770e' size-in-bits='64' id='bf4bdb64'/>
+      <pointer-type-def type-id='00a1b58f' size-in-bits='64' id='bf55f18b'/>
+      <pointer-type-def type-id='d995db0d' size-in-bits='64' id='bf68c5dd'/>
+      <function-type size-in-bits='64' id='bf6a2c5c'>
+        <parameter type-id='13103032'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='cc458304' size-in-bits='64' id='bf6d816a'/>
+      <pointer-type-def type-id='e1b79daa' size-in-bits='64' id='bf6dbc08'/>
+      <pointer-type-def type-id='9638d26e' size-in-bits='64' id='bf73010c'/>
+      <pointer-type-def type-id='2dd0028b' size-in-bits='64' id='bf742373'/>
+      <pointer-type-def type-id='7ad36775' size-in-bits='64' id='bf751261'/>
+      <class-decl name='ptp_system_timestamp' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='49' column='1' id='bf77b476'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pre_ts' type-id='40a816ad' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='post_ts' type-id='40a816ad' visibility='default' filepath='include/linux/ptp_clock_kernel.h' line='51' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='bf7aaec7'>
+        <parameter type-id='328dda6e'/>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='ba5ca324' size-in-bits='64' id='bf7b4ec3'/>
+      <pointer-type-def type-id='13fcfe64' size-in-bits='64' id='bf8a20d2'/>
+      <class-decl name='xfrm4_protocol' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/net/xfrm.h' line='1419' column='1' id='bf8af843'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='handler' type-id='d2e00785' visibility='default' filepath='include/net/xfrm.h' line='1420' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='input_handler' type-id='ec71052e' visibility='default' filepath='include/net/xfrm.h' line='1421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cb_handler' type-id='0aeca82c' visibility='default' filepath='include/net/xfrm.h' line='1423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='err_handler' type-id='5cacf26c' visibility='default' filepath='include/net/xfrm.h' line='1424' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='next' type-id='5a0e9b53' visibility='default' filepath='include/net/xfrm.h' line='1426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='priority' type-id='95e97e5e' visibility='default' filepath='include/net/xfrm.h' line='1427' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5abe74b4' size-in-bits='64' id='bf8c5f5e'/>
+      <pointer-type-def type-id='7dda8bf2' size-in-bits='64' id='bf95a8f0'/>
+      <pointer-type-def type-id='d80ff7d4' size-in-bits='64' id='bfa2746e'/>
+      <function-type size-in-bits='64' id='bfa69bfb'>
+        <parameter type-id='2567e379'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='1eb56b1e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='1eb56b1e'/>
+      </function-type>
+      <pointer-type-def type-id='aecc739e' size-in-bits='64' id='bfa7bda0'/>
+      <pointer-type-def type-id='84f0d8f8' size-in-bits='64' id='bfacbc7a'/>
+      <pointer-type-def type-id='1c9f9836' size-in-bits='64' id='bfb02820'/>
+      <function-type size-in-bits='64' id='bfbcdc6e'>
+        <parameter type-id='67d012a2'/>
+        <return type-id='daf6995a'/>
+      </function-type>
+      <class-decl name='snd_usb_substream' size-in-bits='1664' is-struct='yes' visibility='default' filepath='sound/usb/card.h' line='156' column='1' id='bfbf7968'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='stream' type-id='d24a1720' visibility='default' filepath='sound/usb/card.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='25e60cb2' visibility='default' filepath='sound/usb/card.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pcm_substream' type-id='06b2cd14' visibility='default' filepath='sound/usb/card.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='direction' type-id='95e97e5e' visibility='default' filepath='sound/usb/card.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='endpoint' type-id='95e97e5e' visibility='default' filepath='sound/usb/card.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='cur_audiofmt' type-id='836adb0d' visibility='default' filepath='sound/usb/card.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='str_pd' type-id='ec0e067e' visibility='default' filepath='sound/usb/card.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='channels_max' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='txfr_quirk' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='417'>
+          <var-decl name='tx_length_quirk' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='fmt_type' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='pkt_offset_adj' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='stream_offset_adj' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='running' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='period_elapsed_pending' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='buffer_bytes' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='inflight_bytes' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='hwptr_done' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='transfer_done' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='frame_limit' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='ep_num' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='data_endpoint' type-id='d59ce2e7' visibility='default' filepath='sound/usb/card.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='sync_endpoint' type-id='d59ce2e7' visibility='default' filepath='sound/usb/card.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='sound/usb/card.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='speed' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='formats' type-id='91ce1af9' visibility='default' filepath='sound/usb/card.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='num_formats' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='fmt_list' type-id='72f469ec' visibility='default' filepath='sound/usb/card.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='sound/usb/card.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='last_frame_number' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='dsd_dop' type-id='e7f4407f' visibility='default' filepath='sound/usb/card.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1504'>
+          <var-decl name='trigger_tstamp_pending_update' type-id='b50a4934' visibility='default' filepath='sound/usb/card.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1512'>
+          <var-decl name='lowlatency_playback' type-id='b50a4934' visibility='default' filepath='sound/usb/card.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='media_ctl' type-id='74d5ef65' visibility='default' filepath='sound/usb/card.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='sound/usb/card.h' line='204' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='ufs_pm_op' filepath='drivers/scsi/ufs/ufshcd.h' line='106' column='1' id='bfc022f4'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='UFS_RUNTIME_PM' value='0'/>
+        <enumerator name='UFS_SYSTEM_PM' value='1'/>
+        <enumerator name='UFS_SHUTDOWN_PM' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='64a9bab2' size-in-bits='64' id='bfc146e4'/>
+      <array-type-def dimensions='1' type-id='9cd807f4' size-in-bits='infinite' id='bfd02128'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <class-decl name='dma_router' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/dmaengine.h' line='305' column='1' id='bfd10d03'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/dmaengine.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='route_free' type-id='680bf43c' visibility='default' filepath='include/linux/dmaengine.h' line='307' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ttm_device' size-in-bits='17856' is-struct='yes' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='244' column='1' id='bfde519b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='device_list' type-id='72f469ec' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='funcs' type-id='3f3e1f0b' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sysman' type-id='3a3f2b05' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='man_drv' type-id='a8c04eb1' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='vma_manager' type-id='0c6d12d5' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='pool' type-id='3b497a4b' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16512'>
+          <var-decl name='lru_lock' type-id='fb4018a0' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16576'>
+          <var-decl name='ddestroy' type-id='72f469ec' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16704'>
+          <var-decl name='dev_mapping' type-id='f57039f0' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16768'>
+          <var-decl name='wq' type-id='5ad6e0ef' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='277' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='80ef8feb' size-in-bits='64' id='bff05edb'/>
+      <class-decl name='drm_monitor_range_info' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/drm/drm_connector.h' line='318' column='1' id='bff38166'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='min_vfreq' type-id='f9b06939' visibility='default' filepath='include/drm/drm_connector.h' line='319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='max_vfreq' type-id='f9b06939' visibility='default' filepath='include/drm/drm_connector.h' line='320' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c9315117' size-in-bits='64' id='bffb5883'/>
+      <function-type size-in-bits='64' id='c00013f4'>
+        <parameter type-id='7837cd88'/>
+        <parameter type-id='8df61054'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <class-decl name='rhash_lock_head' is-struct='yes' visibility='default' filepath='include/linux/rhashtable.h' line='47' column='1' id='c0065bf0'/>
+      <pointer-type-def type-id='9c757b77' size-in-bits='64' id='c0073bf3'/>
+      <pointer-type-def type-id='78fc3761' size-in-bits='64' id='c00b0b11'/>
+      <function-type size-in-bits='64' id='c012d70e'>
+        <parameter type-id='32efad44'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4b7af74a' size-in-bits='64' id='c0135c9c'/>
+      <class-decl name='scmi_device' size-in-bits='7552' is-struct='yes' visibility='default' filepath='include/linux/scmi_protocol.h' line='664' column='1' id='c016a1fc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='19c2251e' visibility='default' filepath='include/linux/scmi_protocol.h' line='665' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='protocol_id' type-id='f9b06939' visibility='default' filepath='include/linux/scmi_protocol.h' line='666' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/scmi_protocol.h' line='667' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/scmi_protocol.h' line='668' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='handle' type-id='94f1df82' visibility='default' filepath='include/linux/scmi_protocol.h' line='669' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/scmi_protocol.h' line='671' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c016e2d6'>
+        <parameter type-id='a6711537'/>
+        <parameter type-id='d0835005'/>
+        <parameter type-id='26ea5d4c'/>
+        <parameter type-id='9c313c2d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='kasan_cache' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/kasan.h' line='93' column='1' id='c01a68a0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='alloc_meta_offset' type-id='95e97e5e' visibility='default' filepath='include/linux/kasan.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='free_meta_offset' type-id='95e97e5e' visibility='default' filepath='include/linux/kasan.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='is_kmalloc' type-id='b50a4934' visibility='default' filepath='include/linux/kasan.h' line='96' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c01f4982'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='35078cb9'/>
+        <parameter type-id='26ea5d4c'/>
+        <parameter type-id='9c313c2d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='756696ad' size-in-bits='64' id='c021fd31'/>
+      <pointer-type-def type-id='68adba6a' size-in-bits='64' id='c0240e5c'/>
+      <class-decl name='gnet_stats_basic_cpu' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/gen_stats.h' line='16' column='1' id='c026ae59'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bstats' type-id='1f9b1a31' visibility='default' filepath='include/net/gen_stats.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='syncp' type-id='e4d85780' visibility='default' filepath='include/net/gen_stats.h' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='146441cf' size-in-bits='64' id='c02a1c77'/>
+      <function-type size-in-bits='64' id='c02c4ff1'>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='7359adad'/>
+      </function-type>
+      <class-decl name='page_reporting_dev_info' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/linux/page_reporting.h' line='11' column='1' id='c02da9e0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='report' type-id='88b37d64' visibility='default' filepath='include/linux/page_reporting.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='work' type-id='5ad6e0ef' visibility='default' filepath='include/linux/page_reporting.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='state' type-id='49178f86' visibility='default' filepath='include/linux/page_reporting.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='order' type-id='f0981eeb' visibility='default' filepath='include/linux/page_reporting.h' line='23' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e3dece26' size-in-bits='64' id='c03076ec'/>
+      <class-decl name='return_instance' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/uprobes.h' line='83' column='1' id='c0342c43'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='uprobe' type-id='57376310' visibility='default' filepath='include/linux/uprobes.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='func' type-id='7359adad' visibility='default' filepath='include/linux/uprobes.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='stack' type-id='7359adad' visibility='default' filepath='include/linux/uprobes.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='orig_ret_vaddr' type-id='7359adad' visibility='default' filepath='include/linux/uprobes.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='chained' type-id='b50a4934' visibility='default' filepath='include/linux/uprobes.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='next' type-id='d38eb863' visibility='default' filepath='include/linux/uprobes.h' line='90' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='edac_device_counter' size-in-bits='64' is-struct='yes' visibility='default' filepath='drivers/edac/edac_device.h' line='74' column='1' id='c0388fd4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ue_count' type-id='19c2251e' visibility='default' filepath='drivers/edac/edac_device.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ce_count' type-id='19c2251e' visibility='default' filepath='drivers/edac/edac_device.h' line='76' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c039af2e'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='pps_ktime' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/pps.h' line='54' column='1' id='c03aaaf5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sec' type-id='49659421' visibility='default' filepath='include/uapi/linux/pps.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nsec' type-id='3158a266' visibility='default' filepath='include/uapi/linux/pps.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/pps.h' line='57' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='data_direction' filepath='drivers/usb/gadget/function/storage_common.h' line='168' column='1' id='c03cb3da'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DATA_DIR_UNKNOWN' value='0'/>
+        <enumerator name='DATA_DIR_FROM_HOST' value='1'/>
+        <enumerator name='DATA_DIR_TO_HOST' value='2'/>
+        <enumerator name='DATA_DIR_NONE' value='3'/>
+      </enum-decl>
+      <qualified-type-def type-id='d8bb96c8' const='yes' id='c03ef0c1'/>
+      <class-decl name='cpufreq_governor' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/cpufreq.h' line='563' column='1' id='c0525226'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='ac1fa8c0' visibility='default' filepath='include/linux/cpufreq.h' line='564' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='init' type-id='8dc588ee' visibility='default' filepath='include/linux/cpufreq.h' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='exit' type-id='bbebd435' visibility='default' filepath='include/linux/cpufreq.h' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='start' type-id='8dc588ee' visibility='default' filepath='include/linux/cpufreq.h' line='567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='stop' type-id='bbebd435' visibility='default' filepath='include/linux/cpufreq.h' line='568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='limits' type-id='bbebd435' visibility='default' filepath='include/linux/cpufreq.h' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='show_setspeed' type-id='7126cf8f' visibility='default' filepath='include/linux/cpufreq.h' line='570' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='store_setspeed' type-id='933bd18c' visibility='default' filepath='include/linux/cpufreq.h' line='572' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='governor_list' type-id='72f469ec' visibility='default' filepath='include/linux/cpufreq.h' line='574' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/cpufreq.h' line='575' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/linux/cpufreq.h' line='576' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='input_value' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/input.h' line='33' column='1' id='c058e0bd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='d315442e' visibility='default' filepath='include/linux/input.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='code' type-id='d315442e' visibility='default' filepath='include/linux/input.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='value' type-id='3158a266' visibility='default' filepath='include/linux/input.h' line='36' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='em_perf_state' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/energy_model.h' line='21' column='1' id='c05c2969'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='frequency' type-id='7359adad' visibility='default' filepath='include/linux/energy_model.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='power' type-id='7359adad' visibility='default' filepath='include/linux/energy_model.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cost' type-id='7359adad' visibility='default' filepath='include/linux/energy_model.h' line='24' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c05e7862'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='8bff8096'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='7ba417e5' size-in-bits='64' id='c062d7a5'/>
+      <class-decl name='uio_mem' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/uio_driver.h' line='38' column='1' id='c067c68a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/uio_driver.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='addr' type-id='2522883d' visibility='default' filepath='include/linux/uio_driver.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='offs' type-id='7359adad' visibility='default' filepath='include/linux/uio_driver.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='size' type-id='acc63fdf' visibility='default' filepath='include/linux/uio_driver.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='memtype' type-id='95e97e5e' visibility='default' filepath='include/linux/uio_driver.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='internal_addr' type-id='eaa32e2f' visibility='default' filepath='include/linux/uio_driver.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='map' type-id='722604ad' visibility='default' filepath='include/linux/uio_driver.h' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='519497e3' size-in-bits='64' id='c07d5ba3'/>
+      <pointer-type-def type-id='bd4dc4cb' size-in-bits='64' id='c085a9fb'/>
+      <pointer-type-def type-id='cb1c5129' size-in-bits='64' id='c09387b9'/>
+      <array-type-def dimensions='1' type-id='deb3203d' size-in-bits='infinite' id='c094d415'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='c09c709e'>
+        <parameter type-id='2ae08426'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='devlink_port_fn_opstate' filepath='include/uapi/linux/devlink.h' line='623' column='1' id='c09fdadb'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEVLINK_PORT_FN_OPSTATE_DETACHED' value='0'/>
+        <enumerator name='DEVLINK_PORT_FN_OPSTATE_ATTACHED' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='1ca1bfac' size-in-bits='64' id='c0a08bbe'/>
+      <pointer-type-def type-id='9d558819' size-in-bits='64' id='c0a3faf5'/>
+      <pointer-type-def type-id='01e6a0f2' size-in-bits='64' id='c0a50b50'/>
+      <qualified-type-def type-id='b106e24e' const='yes' id='c0a7be7f'/>
+      <pointer-type-def type-id='11a2bfdd' size-in-bits='64' id='c0a9211d'/>
+      <function-type size-in-bits='64' id='c0ac60c2'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='c0b8a70b'>
+        <parameter type-id='41ebc58b'/>
+        <parameter type-id='cc769659'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='backing_dev_info' size-in-bits='10624' is-struct='yes' visibility='default' filepath='include/linux/backing-dev-defs.h' line='173' column='1' id='c0badb3b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='91ce1af9' visibility='default' filepath='include/linux/backing-dev-defs.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rb_node' type-id='2a8a6332' visibility='default' filepath='include/linux/backing-dev-defs.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='bdi_list' type-id='72f469ec' visibility='default' filepath='include/linux/backing-dev-defs.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ra_pages' type-id='7359adad' visibility='default' filepath='include/linux/backing-dev-defs.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='io_pages' type-id='7359adad' visibility='default' filepath='include/linux/backing-dev-defs.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='refcnt' type-id='400fb07b' visibility='default' filepath='include/linux/backing-dev-defs.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='capabilities' type-id='f0981eeb' visibility='default' filepath='include/linux/backing-dev-defs.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='min_ratio' type-id='f0981eeb' visibility='default' filepath='include/linux/backing-dev-defs.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='max_ratio' type-id='f0981eeb' visibility='default' filepath='include/linux/backing-dev-defs.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='max_prop_frac' type-id='f0981eeb' visibility='default' filepath='include/linux/backing-dev-defs.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='tot_write_bandwidth' type-id='f22a8abb' visibility='default' filepath='include/linux/backing-dev-defs.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='wb' type-id='ac0aeb1d' visibility='default' filepath='include/linux/backing-dev-defs.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='wb_list' type-id='72f469ec' visibility='default' filepath='include/linux/backing-dev-defs.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='cgwb_tree' type-id='d39738ac' visibility='default' filepath='include/linux/backing-dev-defs.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='cgwb_release_mutex' type-id='925167dc' visibility='default' filepath='include/linux/backing-dev-defs.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='wb_switch_rwsem' type-id='f19fdb93' visibility='default' filepath='include/linux/backing-dev-defs.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9152'>
+          <var-decl name='wb_waitq' type-id='b5ab048f' visibility='default' filepath='include/linux/backing-dev-defs.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/backing-dev-defs.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9408'>
+          <var-decl name='dev_name' type-id='59daf3ef' visibility='default' filepath='include/linux/backing-dev-defs.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9920'>
+          <var-decl name='owner' type-id='fa0b179b' visibility='default' filepath='include/linux/backing-dev-defs.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9984'>
+          <var-decl name='laptop_mode_wb_timer' type-id='abe41e67' visibility='default' filepath='include/linux/backing-dev-defs.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10432'>
+          <var-decl name='debug_dir' type-id='27675065' visibility='default' filepath='include/linux/backing-dev-defs.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10496'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/backing-dev-defs.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10560'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/backing-dev-defs.h' line='211' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='98749268' size-in-bits='64' id='c0c93c9e'/>
+      <pointer-type-def type-id='8c178e22' size-in-bits='64' id='c0ced320'/>
+      <class-decl name='of_dev_auxdata' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/of_platform.h' line='37' column='1' id='c0d13b05'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='compatible' type-id='26a90f95' visibility='default' filepath='include/linux/of_platform.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='phys_addr' type-id='acc63fdf' visibility='default' filepath='include/linux/of_platform.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/of_platform.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='platform_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/of_platform.h' line='41' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c0d42424'>
+        <parameter type-id='72bb8c36'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='6e051ed1' const='yes' id='c0d601be'/>
+      <function-type size-in-bits='64' id='c0d6093d'>
+        <parameter type-id='7ac48c21'/>
+        <parameter type-id='3b5c2208'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='87a2d33c' size-in-bits='64' id='c0d6fada'/>
+      <pointer-type-def type-id='3f0e361b' size-in-bits='64' id='c0d70d7f'/>
+      <pointer-type-def type-id='c44baa66' size-in-bits='64' id='c0da0f6c'/>
+      <function-type size-in-bits='64' id='c0de0cb2'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='a079e5cc'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='c0de8daa'>
+        <parameter type-id='146bc842'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d83a2db1' size-in-bits='64' id='c0e2acc9'/>
+      <class-decl name='amba_id' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/mod_devicetable.h' line='649' column='1' id='c0e32d5e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='f0981eeb' visibility='default' filepath='include/linux/mod_devicetable.h' line='650' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='mask' type-id='f0981eeb' visibility='default' filepath='include/linux/mod_devicetable.h' line='651' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/mod_devicetable.h' line='652' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='iommu_sva' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/iommu.h' line='648' column='1' id='c0e44fcd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/iommu.h' line='649' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c0e5af96'>
+        <parameter type-id='f772df6d'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <pointer-type-def type-id='a9849e75' size-in-bits='64' id='c0f00785'/>
+      <function-type size-in-bits='64' id='c0f05602'>
+        <parameter type-id='b9aa0100'/>
+        <parameter type-id='7292109c'/>
+        <return type-id='c2b4b27b'/>
+      </function-type>
+      <class-decl name='mon_bus' is-struct='yes' visibility='default' is-declaration-only='yes' id='c106dc14'/>
+      <pointer-type-def type-id='4788f063' size-in-bits='64' id='c10e36d3'/>
+      <function-type size-in-bits='64' id='c112c396'>
+        <parameter type-id='63a08bf7'/>
+        <parameter type-id='428819c0'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='729b729c' size-in-bits='64' id='c11c2e76'/>
+      <pointer-type-def type-id='e2270bc3' size-in-bits='64' id='c1205b1f'/>
+      <class-decl name='pm_message' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/pm.h' line='50' column='1' id='c120b5da'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='event' type-id='95e97e5e' visibility='default' filepath='include/linux/pm.h' line='51' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='84e286f7' const='yes' id='c12c58ce'/>
+      <function-type size-in-bits='64' id='c13208bd'>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='bd54fe1a'/>
+      </function-type>
+      <typedef-decl name='bpf_iter_fini_seq_priv_t' type-id='b7f9d8e6' filepath='include/linux/bpf.h' line='54' column='1' id='c133e1df'/>
+      <class-decl name='sk_msg_sg' size-in-bits='5120' is-struct='yes' visibility='default' filepath='include/linux/skmsg.h' line='26' column='1' id='c13b9e48'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='19c2251e' visibility='default' filepath='include/linux/skmsg.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='curr' type-id='19c2251e' visibility='default' filepath='include/linux/skmsg.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='end' type-id='19c2251e' visibility='default' filepath='include/linux/skmsg.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='size' type-id='19c2251e' visibility='default' filepath='include/linux/skmsg.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='copybreak' type-id='19c2251e' visibility='default' filepath='include/linux/skmsg.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='copy' type-id='7359adad' visibility='default' filepath='include/linux/skmsg.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='data' type-id='d4c82337' visibility='default' filepath='include/linux/skmsg.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9cdca91a' size-in-bits='64' id='c13bca88'/>
+      <pointer-type-def type-id='4b3ae594' size-in-bits='64' id='c1433076'/>
+      <class-decl name='skb_shared_hwtstamps' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/skbuff.h' line='461' column='1' id='c148e595'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hwtstamp' type-id='fbc017ef' visibility='default' filepath='include/linux/skbuff.h' line='462' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b048e68e' size-in-bits='64' id='c149fe34'/>
+      <pointer-type-def type-id='dd510bd0' size-in-bits='64' id='c14b7eb6'/>
+      <pointer-type-def type-id='893302ec' size-in-bits='64' id='c14d5db2'/>
+      <pointer-type-def type-id='b8d20333' size-in-bits='64' id='c14ebfd3'/>
+      <function-type size-in-bits='64' id='c14fce5d'>
+        <parameter type-id='af051c69'/>
+        <return type-id='80f4b756'/>
+      </function-type>
+      <class-decl name='mountpoint' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/../fs/mount.h' line='32' column='1' id='c1501314'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='m_hash' type-id='03a4a074' visibility='default' filepath='fs/mount.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='m_dentry' type-id='27675065' visibility='default' filepath='fs/mount.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='m_list' type-id='e151255a' visibility='default' filepath='fs/mount.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='m_count' type-id='95e97e5e' visibility='default' filepath='fs/mount.h' line='36' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_format_info' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/media/v4l2-common.h' line='488' column='1' id='c151291a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='format' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-common.h' line='489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pixel_enc' type-id='f9b06939' visibility='default' filepath='include/media/v4l2-common.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='mem_planes' type-id='f9b06939' visibility='default' filepath='include/media/v4l2-common.h' line='491' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='comp_planes' type-id='f9b06939' visibility='default' filepath='include/media/v4l2-common.h' line='492' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='bpp' type-id='931565be' visibility='default' filepath='include/media/v4l2-common.h' line='493' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='hdiv' type-id='f9b06939' visibility='default' filepath='include/media/v4l2-common.h' line='494' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='vdiv' type-id='f9b06939' visibility='default' filepath='include/media/v4l2-common.h' line='495' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='block_w' type-id='931565be' visibility='default' filepath='include/media/v4l2-common.h' line='496' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='block_h' type-id='931565be' visibility='default' filepath='include/media/v4l2-common.h' line='497' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4ee52715' size-in-bits='64' id='c151d965'/>
+      <pointer-type-def type-id='05c1bb1c' size-in-bits='64' id='c1546a5e'/>
+      <pointer-type-def type-id='9f3c2055' size-in-bits='64' id='c1547255'/>
+      <function-type size-in-bits='64' id='c156bc5d'>
+        <parameter type-id='85535682'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='5e4f599b'/>
+      </function-type>
+      <pointer-type-def type-id='a3566137' size-in-bits='64' id='c15eecdf'/>
+      <enum-decl name='wb_reason' filepath='include/linux/backing-dev-defs.h' line='50' column='1' id='c1602c7a'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='WB_REASON_BACKGROUND' value='0'/>
+        <enumerator name='WB_REASON_VMSCAN' value='1'/>
+        <enumerator name='WB_REASON_SYNC' value='2'/>
+        <enumerator name='WB_REASON_PERIODIC' value='3'/>
+        <enumerator name='WB_REASON_LAPTOP_TIMER' value='4'/>
+        <enumerator name='WB_REASON_FS_FREE_SPACE' value='5'/>
+        <enumerator name='WB_REASON_FORKER_THREAD' value='6'/>
+        <enumerator name='WB_REASON_FOREIGN_FLUSH' value='7'/>
+        <enumerator name='WB_REASON_MAX' value='8'/>
+      </enum-decl>
+      <pointer-type-def type-id='f28646d2' size-in-bits='64' id='c161b868'/>
+      <pointer-type-def type-id='18da11bd' size-in-bits='64' id='c1655339'/>
+      <array-type-def dimensions='1' type-id='19c2251e' size-in-bits='infinite' id='c165e8b9'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <class-decl name='vb2_fileio_data' size-in-bits='12608' is-struct='yes' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2562' column='1' id='c1670ffd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='f0981eeb' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2563' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2564' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='memory' type-id='f0981eeb' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bufs' type-id='729537cc' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12416'>
+          <var-decl name='cur_index' type-id='f0981eeb' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12448'>
+          <var-decl name='initial_index' type-id='f0981eeb' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12480'>
+          <var-decl name='q_count' type-id='f0981eeb' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12512'>
+          <var-decl name='dq_count' type-id='f0981eeb' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2570' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12544'>
+          <var-decl name='read_once' type-id='f0981eeb' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2571' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12545'>
+          <var-decl name='write_immediately' type-id='f0981eeb' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2572' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='qspinlock' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/asm-generic/qspinlock_types.h' line='14' column='1' id='c167abfb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab65a' visibility='default' filepath='include/asm-generic/qspinlock_types.h' line='15' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='f95bfc29' const='yes' id='c16a2224'/>
+      <class-decl name='snd_codec_desc' size-in-bits='2784' is-struct='yes' visibility='default' filepath='include/uapi/sound/compress_params.h' line='396' column='1' id='c16c976f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='max_ch' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='397' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='sample_rates' type-id='734a963c' visibility='default' filepath='include/uapi/sound/compress_params.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='num_sample_rates' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='bit_rate' type-id='734a963c' visibility='default' filepath='include/uapi/sound/compress_params.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='num_bitrates' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2144'>
+          <var-decl name='rate_control' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='profiles' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='403' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2208'>
+          <var-decl name='modes' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='formats' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2272'>
+          <var-decl name='min_buffer' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='reserved' type-id='dd2f9695' visibility='default' filepath='include/uapi/sound/compress_params.h' line='407' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='84ec62b0' size-in-bits='64' id='c1729c2a'/>
+      <qualified-type-def type-id='1d6edf8e' const='yes' id='c184e101'/>
+      <pointer-type-def type-id='32b4223a' size-in-bits='64' id='c1873808'/>
+      <pointer-type-def type-id='4073d265' size-in-bits='64' id='c1880945'/>
+      <class-decl name='xfrm_stats' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/xfrm.h' line='122' column='1' id='c1960caa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='replay_window' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/xfrm.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='replay' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/xfrm.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='integrity_failed' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/xfrm.h' line='125' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='02ac86a6' size-in-bits='64' id='c197ce64'/>
+      <class-decl name='v4l2_ctrl_ref' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/media/v4l2-ctrls.h' line='331' column='1' id='c19e9dd9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-ctrls.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='next' type-id='9f3a0131' visibility='default' filepath='include/media/v4l2-ctrls.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ctrl' type-id='4b8b2cf3' visibility='default' filepath='include/media/v4l2-ctrls.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='helper' type-id='7308495a' visibility='default' filepath='include/media/v4l2-ctrls.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='from_other_dev' type-id='b50a4934' visibility='default' filepath='include/media/v4l2-ctrls.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='328'>
+          <var-decl name='req_done' type-id='b50a4934' visibility='default' filepath='include/media/v4l2-ctrls.h' line='337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='336'>
+          <var-decl name='valid_p_req' type-id='b50a4934' visibility='default' filepath='include/media/v4l2-ctrls.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='p_req' type-id='3f78e6a9' visibility='default' filepath='include/media/v4l2-ctrls.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/media/v4l2-ctrls.h' line='341' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_charger_current' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/usb/phy.h' line='79' column='1' id='c1a2a792'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sdp_min' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/phy.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='sdp_max' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/phy.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dcp_min' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/phy.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='dcp_max' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/phy.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cdp_min' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/phy.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='cdp_max' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/phy.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='aca_min' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/phy.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='aca_max' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/phy.h' line='87' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c1a2f7eb'>
+        <parameter type-id='43c38462'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <class-decl name='i3c_driver' size-in-bits='1600' is-struct='yes' visibility='default' filepath='include/linux/i3c/device.h' line='176' column='1' id='c1a65a65'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/i3c/device.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='probe' type-id='5c9680e7' visibility='default' filepath='include/linux/i3c/device.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='remove' type-id='e8e442ac' visibility='default' filepath='include/linux/i3c/device.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='id_table' type-id='af6bced6' visibility='default' filepath='include/linux/i3c/device.h' line='180' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c1a677af'>
+        <parameter type-id='8f4bc7f1'/>
+        <parameter type-id='8f4bc7f1'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <class-decl name='ifreq' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/if.h' line='234' column='1' id='c1a75286'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ifr_ifrn' type-id='ac5ab687' visibility='default' filepath='include/uapi/linux/if.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ifr_ifru' type-id='ac5ab688' visibility='default' filepath='include/uapi/linux/if.h' line='255' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='dev_pm_opp_supply' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/pm_opp.h' line='38' column='1' id='c1ac25a6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='u_volt' type-id='7359adad' visibility='default' filepath='include/linux/pm_opp.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='u_volt_min' type-id='7359adad' visibility='default' filepath='include/linux/pm_opp.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='u_volt_max' type-id='7359adad' visibility='default' filepath='include/linux/pm_opp.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='u_amp' type-id='7359adad' visibility='default' filepath='include/linux/pm_opp.h' line='42' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_hevc_pred_weight_table' size-in-bits='1600' is-struct='yes' visibility='default' filepath='include/media/hevc-ctrls.h' line='142' column='1' id='c1b5e872'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='delta_luma_weight_l0' type-id='2d85a215' visibility='default' filepath='include/media/hevc-ctrls.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='luma_offset_l0' type-id='2d85a215' visibility='default' filepath='include/media/hevc-ctrls.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='delta_chroma_weight_l0' type-id='1e28c56f' visibility='default' filepath='include/media/hevc-ctrls.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='chroma_offset_l0' type-id='1e28c56f' visibility='default' filepath='include/media/hevc-ctrls.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='delta_luma_weight_l1' type-id='2d85a215' visibility='default' filepath='include/media/hevc-ctrls.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='luma_offset_l1' type-id='2d85a215' visibility='default' filepath='include/media/hevc-ctrls.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='delta_chroma_weight_l1' type-id='1e28c56f' visibility='default' filepath='include/media/hevc-ctrls.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='chroma_offset_l1' type-id='1e28c56f' visibility='default' filepath='include/media/hevc-ctrls.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='padding' type-id='c60dc9f2' visibility='default' filepath='include/media/hevc-ctrls.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1584'>
+          <var-decl name='luma_log2_weight_denom' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1592'>
+          <var-decl name='delta_chroma_log2_weight_denom' type-id='8af57d41' visibility='default' filepath='include/media/hevc-ctrls.h' line='156' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c1c2a6af'>
+        <parameter type-id='c67366c7'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='v4l2_h264_weight_factors' size-in-bits='3072' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1403' column='1' id='c1c411a0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='luma_weight' type-id='467f4e10' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='luma_offset' type-id='467f4e10' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='chroma_weight' type-id='0399400c' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='chroma_offset' type-id='0399400c' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1407' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_soc_dpcm_runtime' size-in-bits='5376' is-struct='yes' visibility='default' filepath='include/sound/soc-dpcm.h' line='91' column='1' id='c1c63dde'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='be_clients' type-id='72f469ec' visibility='default' filepath='include/sound/soc-dpcm.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fe_clients' type-id='72f469ec' visibility='default' filepath='include/sound/soc-dpcm.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='users' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-dpcm.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='runtime' type-id='17a05af6' visibility='default' filepath='include/sound/soc-dpcm.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='hw_params' type-id='6c57d4a8' visibility='default' filepath='include/sound/soc-dpcm.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='runtime_update' type-id='3708cdec' visibility='default' filepath='include/sound/soc-dpcm.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5280'>
+          <var-decl name='state' type-id='792c8cde' visibility='default' filepath='include/sound/soc-dpcm.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5312'>
+          <var-decl name='trigger_pending' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-dpcm.h' line='103' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='df6447f0' size-in-bits='64' id='c1d0203a'/>
+      <pointer-type-def type-id='2c45f76e' size-in-bits='64' id='c1d02a64'/>
+      <pointer-type-def type-id='426a0da5' size-in-bits='64' id='c1d52f61'/>
+      <pointer-type-def type-id='ff95f77c' size-in-bits='64' id='c1de1086'/>
+      <pointer-type-def type-id='61b18a3b' size-in-bits='64' id='c1e0b02f'/>
+      <pointer-type-def type-id='24254372' size-in-bits='64' id='c1e89b34'/>
+      <pointer-type-def type-id='d2460aa5' size-in-bits='64' id='c1ee9321'/>
+      <function-type size-in-bits='64' id='c1f57de8'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='bd54fe1a'/>
+        <parameter type-id='ccbe540b'/>
+        <parameter type-id='63e171df'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='bd975dad' size-in-bits='64' id='c1fce599'/>
+      <class-decl name='dma_buf' size-in-bits='2432' is-struct='yes' visibility='default' filepath='include/linux/dma-buf.h' line='378' column='1' id='c201baab'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='include/linux/dma-buf.h' line='384' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='file' type-id='77e79a4b' visibility='default' filepath='include/linux/dma-buf.h' line='392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='attachments' type-id='72f469ec' visibility='default' filepath='include/linux/dma-buf.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ops' type-id='c248c11b' visibility='default' filepath='include/linux/dma-buf.h' line='403' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/linux/dma-buf.h' line='412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='vmapping_counter' type-id='f0981eeb' visibility='default' filepath='include/linux/dma-buf.h' line='420' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='vmap_ptr' type-id='5cb8e7e2' visibility='default' filepath='include/linux/dma-buf.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='exp_name' type-id='80f4b756' visibility='default' filepath='include/linux/dma-buf.h' line='434' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/dma-buf.h' line='442' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='name_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/dma-buf.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/dma-buf.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='list_node' type-id='72f469ec' visibility='default' filepath='include/linux/dma-buf.h' line='456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/dma-buf.h' line='459' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='resv' type-id='340cea9c' visibility='default' filepath='include/linux/dma-buf.h' line='500' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='poll' type-id='b5ab048f' visibility='default' filepath='include/linux/dma-buf.h' line='503' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='cb_in' type-id='d5acde18' visibility='default' filepath='include/linux/dma-buf.h' line='512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='cb_out' type-id='d5acde18' visibility='default' filepath='include/linux/dma-buf.h' line='512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='sysfs_entry' type-id='bd60ed15' visibility='default' filepath='include/linux/dma-buf.h' line='531' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/dma-buf.h' line='534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/dma-buf.h' line='535' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_encoder_funcs' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/drm/drm_encoder.h' line='40' column='1' id='c20384d9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reset' type-id='ac9d10e4' visibility='default' filepath='include/drm/drm_encoder.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='destroy' type-id='ac9d10e4' visibility='default' filepath='include/drm/drm_encoder.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='late_register' type-id='5b7d6a61' visibility='default' filepath='include/drm/drm_encoder.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='early_unregister' type-id='ac9d10e4' visibility='default' filepath='include/drm/drm_encoder.h' line='83' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5b37df4a' size-in-bits='64' id='c2074578'/>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='56' id='c20b850f'>
+        <subrange length='7' type-id='7ff19f0f' id='16fc326e'/>
+      </array-type-def>
+      <class-decl name='pinmux_ops' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/pinctrl/pinmux.h' line='60' column='1' id='c20dd28d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='request' type-id='fdb631af' visibility='default' filepath='include/linux/pinctrl/pinmux.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='free' type-id='fdb631af' visibility='default' filepath='include/linux/pinctrl/pinmux.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='get_functions_count' type-id='9b3cc28d' visibility='default' filepath='include/linux/pinctrl/pinmux.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get_function_name' type-id='6fd7b107' visibility='default' filepath='include/linux/pinctrl/pinmux.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='get_function_groups' type-id='43f4ef15' visibility='default' filepath='include/linux/pinctrl/pinmux.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='set_mux' type-id='1f7349e5' visibility='default' filepath='include/linux/pinctrl/pinmux.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='gpio_request_enable' type-id='eadc8303' visibility='default' filepath='include/linux/pinctrl/pinmux.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='gpio_disable_free' type-id='b23189b4' visibility='default' filepath='include/linux/pinctrl/pinmux.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='gpio_set_direction' type-id='0a3de906' visibility='default' filepath='include/linux/pinctrl/pinmux.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='strict' type-id='b50a4934' visibility='default' filepath='include/linux/pinctrl/pinmux.h' line='82' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='xfrm_address_t' type-id='043f0147' filepath='include/uapi/linux/xfrm.h' line='19' column='1' id='c210d497'/>
+      <pointer-type-def type-id='7ec1f60a' size-in-bits='64' id='c2123138'/>
+      <enum-decl name='tcpm_transmit_type' filepath='include/linux/usb/tcpm.h' line='42' column='1' id='c2132904'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='TCPC_TX_SOP' value='0'/>
+        <enumerator name='TCPC_TX_SOP_PRIME' value='1'/>
+        <enumerator name='TCPC_TX_SOP_PRIME_PRIME' value='2'/>
+        <enumerator name='TCPC_TX_SOP_DEBUG_PRIME' value='3'/>
+        <enumerator name='TCPC_TX_SOP_DEBUG_PRIME_PRIME' value='4'/>
+        <enumerator name='TCPC_TX_HARD_RESET' value='5'/>
+        <enumerator name='TCPC_TX_CABLE_RESET' value='6'/>
+        <enumerator name='TCPC_TX_BIST_MODE_2' value='7'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='32' id='c213d3d4'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <enum-decl name='dmaengine_tx_result' filepath='include/linux/dmaengine.h' line='542' column='1' id='c2154237'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DMA_TRANS_NOERROR' value='0'/>
+        <enumerator name='DMA_TRANS_READ_FAILED' value='1'/>
+        <enumerator name='DMA_TRANS_WRITE_FAILED' value='2'/>
+        <enumerator name='DMA_TRANS_ABORTED' value='3'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='24' id='c216126b'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='c21690c0'>
+        <parameter type-id='141b6427'/>
+        <return type-id='141b6427'/>
+      </function-type>
+      <function-type size-in-bits='64' id='c21a2b60'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='2a24760e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='57584f2d' size-in-bits='64' id='c21baddd'/>
+      <pointer-type-def type-id='5c44a483' size-in-bits='64' id='c23646a3'/>
+      <pointer-type-def type-id='a92634ba' size-in-bits='64' id='c23b3cbc'/>
+      <pointer-type-def type-id='cb9a8514' size-in-bits='64' id='c23fc09a'/>
+      <pointer-type-def type-id='35210e5c' size-in-bits='64' id='c24523fe'/>
+      <pointer-type-def type-id='38cc1773' size-in-bits='64' id='c248c11b'/>
+      <pointer-type-def type-id='8838d802' size-in-bits='64' id='c249b570'/>
+      <array-type-def dimensions='1' type-id='1dc6a898' size-in-bits='128' id='c24d1a13'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <pointer-type-def type-id='93630c4e' size-in-bits='64' id='c250b0e4'/>
+      <qualified-type-def type-id='a59727b2' const='yes' id='c251f90f'/>
+      <class-decl name='perf_branch_entry' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1329' column='1' id='c25adaa0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='from' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='to' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mispred' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='129'>
+          <var-decl name='predicted' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='130'>
+          <var-decl name='in_tx' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='131'>
+          <var-decl name='abort' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='132'>
+          <var-decl name='cycles' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='148'>
+          <var-decl name='type' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='reserved' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1338' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='eb19b127' size-in-bits='64' id='c25ed103'/>
+      <function-type size-in-bits='64' id='c2603804'>
+        <parameter type-id='947f31e6'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='9d0ae2a2' const='yes' id='c2623161'/>
+      <class-decl name='quota_info' size-in-bits='2688' is-struct='yes' visibility='default' filepath='include/linux/quota.h' line='528' column='1' id='c26e4ad8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/quota.h' line='529' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dqio_sem' type-id='f19fdb93' visibility='default' filepath='include/linux/quota.h' line='530' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='files' type-id='e6ff92fb' visibility='default' filepath='include/linux/quota.h' line='531' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='info' type-id='83ae09a1' visibility='default' filepath='include/linux/quota.h' line='532' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='ops' type-id='59bd9302' visibility='default' filepath='include/linux/quota.h' line='533' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fib_rule_port_range' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/fib_rules.h' line='38' column='1' id='c27f07e7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='d315442e' visibility='default' filepath='include/uapi/linux/fib_rules.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='end' type-id='d315442e' visibility='default' filepath='include/uapi/linux/fib_rules.h' line='40' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_compr_caps' size-in-bits='1568' is-struct='yes' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='102' column='1' id='c2835ff8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='num_codecs' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='direction' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='min_fragment_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='max_fragment_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='min_fragments' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='max_fragments' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='codecs' type-id='734a963c' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='reserved' type-id='9d263779' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='110' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='bdaddr_t' type-id='35ffa81f' filepath='include/net/bluetooth/bluetooth.h' line='242' column='1' id='c2840192'/>
+      <pointer-type-def type-id='62855293' size-in-bits='64' id='c2889977'/>
+      <typedef-decl name='__kernel_timer_t' type-id='95e97e5e' filepath='include/uapi/asm-generic/posix_types.h' line='95' column='1' id='c28acba6'/>
+      <typedef-decl name='pgtable_t' type-id='02f11ed4' filepath='arch/arm64/include/asm/page.h' line='42' column='1' id='c28b9700'/>
+      <function-type size-in-bits='64' id='c28e85b0'>
+        <parameter type-id='c5491077'/>
+        <parameter type-id='4db02c58'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='b6da1a0e' size-in-bits='64' id='c28fe484'/>
+      <pointer-type-def type-id='cbab5390' size-in-bits='64' id='c297681a'/>
+      <pointer-type-def type-id='dd9a5153' size-in-bits='64' id='c297924f'/>
+      <qualified-type-def type-id='04b222a6' const='yes' id='c29a9f0b'/>
+      <class-decl name='ip_mc_list' size-in-bits='1280' is-struct='yes' visibility='default' filepath='include/linux/igmp.h' line='67' column='1' id='c2a59aaa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='interface' type-id='fc6f14a9' visibility='default' filepath='include/linux/igmp.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='multiaddr' type-id='78a133c2' visibility='default' filepath='include/linux/igmp.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='sfmode' type-id='f0981eeb' visibility='default' filepath='include/linux/igmp.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sources' type-id='ab3e7181' visibility='default' filepath='include/linux/igmp.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tomb' type-id='ab3e7181' visibility='default' filepath='include/linux/igmp.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='sfcount' type-id='f05e8e77' visibility='default' filepath='include/linux/igmp.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='' type-id='ac5ab699' visibility='default' filepath='include/linux/igmp.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='next_hash' type-id='26479c18' visibility='default' filepath='include/linux/igmp.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='timer' type-id='abe41e67' visibility='default' filepath='include/linux/igmp.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='users' type-id='95e97e5e' visibility='default' filepath='include/linux/igmp.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/linux/igmp.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/igmp.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='tm_running' type-id='a84c031d' visibility='default' filepath='include/linux/igmp.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1064'>
+          <var-decl name='reporter' type-id='a84c031d' visibility='default' filepath='include/linux/igmp.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1072'>
+          <var-decl name='unsolicit_count' type-id='a84c031d' visibility='default' filepath='include/linux/igmp.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1080'>
+          <var-decl name='loaded' type-id='a84c031d' visibility='default' filepath='include/linux/igmp.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='gsquery' type-id='002ac4a6' visibility='default' filepath='include/linux/igmp.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1096'>
+          <var-decl name='crcount' type-id='002ac4a6' visibility='default' filepath='include/linux/igmp.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/igmp.h' line='89' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='59bb6212' size-in-bits='64' id='c2a93e3c'/>
+      <pointer-type-def type-id='5e80f131' size-in-bits='64' id='c2ab7955'/>
+      <function-type size-in-bits='64' id='c2b07168'>
+        <parameter type-id='1351523a'/>
+        <parameter type-id='bbaf3419'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9b27c78b' size-in-bits='64' id='c2b4b27b'/>
+      <class-decl name='scomp_alg' size-in-bits='4096' is-struct='yes' visibility='default' filepath='include/crypto/internal/scompress.h' line='28' column='1' id='c2b72af8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='alloc_ctx' type-id='f531dfd0' visibility='default' filepath='include/crypto/internal/scompress.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='free_ctx' type-id='0459295a' visibility='default' filepath='include/crypto/internal/scompress.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='compress' type-id='e4372f12' visibility='default' filepath='include/crypto/internal/scompress.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='decompress' type-id='e4372f12' visibility='default' filepath='include/crypto/internal/scompress.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='base' type-id='514fe525' visibility='default' filepath='include/crypto/internal/scompress.h' line='37' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='cec_devnode' size-in-bits='9408' is-struct='yes' visibility='default' filepath='include/media/cec.h' line='43' column='1' id='c2b8d3fa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/media/cec.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='cdev' type-id='22f86351' visibility='default' filepath='include/media/cec.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8384'>
+          <var-decl name='minor' type-id='95e97e5e' visibility='default' filepath='include/media/cec.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8448'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/media/cec.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8832'>
+          <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/media/cec.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8840'>
+          <var-decl name='unregistered' type-id='b50a4934' visibility='default' filepath='include/media/cec.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8896'>
+          <var-decl name='lock_fhs' type-id='925167dc' visibility='default' filepath='include/media/cec.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9280'>
+          <var-decl name='fhs' type-id='72f469ec' visibility='default' filepath='include/media/cec.h' line='56' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='quota_format_type' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/quota.h' line='452' column='1' id='c2be49b0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='qf_fmt_id' type-id='95e97e5e' visibility='default' filepath='include/linux/quota.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='qf_ops' type-id='bd561d05' visibility='default' filepath='include/linux/quota.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='qf_owner' type-id='2730d015' visibility='default' filepath='include/linux/quota.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='qf_next' type-id='eb9a3ab6' visibility='default' filepath='include/linux/quota.h' line='456' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c2be64d1'>
+        <parameter type-id='a47d3467'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <class-decl name='ipv4_devconf' size-in-bits='1152' is-struct='yes' visibility='default' filepath='include/linux/inetdevice.h' line='17' column='1' id='c2c09950'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sysctl' type-id='eaa32e2f' visibility='default' filepath='include/linux/inetdevice.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='9e942f0d' visibility='default' filepath='include/linux/inetdevice.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='state' type-id='f066dd3c' visibility='default' filepath='include/linux/inetdevice.h' line='20' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='47f117d4' size-in-bits='128' id='c2c0ece0'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='f867473c' size-in-bits='64' id='c2c32efe'/>
+      <pointer-type-def type-id='705711f5' size-in-bits='64' id='c2c60445'/>
+      <enum-decl name='pwm_polarity' filepath='include/linux/pwm.h' line='24' column='1' id='c2c81069'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PWM_POLARITY_NORMAL' value='0'/>
+        <enumerator name='PWM_POLARITY_INVERSED' value='1'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='c2cd30e2'>
+        <parameter type-id='b9419dc5'/>
+        <parameter type-id='b9419dc5'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='typec_cc_status' filepath='include/linux/usb/tcpm.h' line='13' column='1' id='c2d135ef'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='TYPEC_CC_OPEN' value='0'/>
+        <enumerator name='TYPEC_CC_RA' value='1'/>
+        <enumerator name='TYPEC_CC_RD' value='2'/>
+        <enumerator name='TYPEC_CC_RP_DEF' value='3'/>
+        <enumerator name='TYPEC_CC_RP_1_5' value='4'/>
+        <enumerator name='TYPEC_CC_RP_3_0' value='5'/>
+      </enum-decl>
+      <pointer-type-def type-id='7c1f247e' size-in-bits='64' id='c2d2a400'/>
+      <pointer-type-def type-id='ab474fe7' size-in-bits='64' id='c2d8e88b'/>
+      <class-decl name='nf_conntrack_expect' size-in-bits='1856' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='18' column='1' id='c2dc4615'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lnode' type-id='03a4a074' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hnode' type-id='03a4a074' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='tuple' type-id='9805d802' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='mask' type-id='97e29523' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='expectfn' type-id='6c8c82c7' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='helper' type-id='a1a282ea' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='master' type-id='8c493d8a' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='timeout' type-id='abe41e67' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='use' type-id='64615833' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='class' type-id='f0981eeb' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1504'>
+          <var-decl name='saved_addr' type-id='8c17f46b' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1632'>
+          <var-decl name='saved_proto' type-id='cfd75634' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='dir' type-id='bbbf8507' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='60' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c2ddabb8'>
+        <parameter type-id='ac2666b2'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='snd_soc_tplg_ops' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/sound/soc-topology.h' line='108' column='1' id='c2ddf2d7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='control_load' type-id='6b4579c4' visibility='default' filepath='include/sound/soc-topology.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='control_unload' type-id='6332a661' visibility='default' filepath='include/sound/soc-topology.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dapm_route_load' type-id='7ad49bc5' visibility='default' filepath='include/sound/soc-topology.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dapm_route_unload' type-id='6332a661' visibility='default' filepath='include/sound/soc-topology.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='widget_load' type-id='b4fb1c55' visibility='default' filepath='include/sound/soc-topology.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='widget_ready' type-id='b4fb1c55' visibility='default' filepath='include/sound/soc-topology.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='widget_unload' type-id='6332a661' visibility='default' filepath='include/sound/soc-topology.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='dai_load' type-id='47fc8c26' visibility='default' filepath='include/sound/soc-topology.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='dai_unload' type-id='6332a661' visibility='default' filepath='include/sound/soc-topology.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='link_load' type-id='5b44b629' visibility='default' filepath='include/sound/soc-topology.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='link_unload' type-id='6332a661' visibility='default' filepath='include/sound/soc-topology.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='vendor_load' type-id='1f42ef53' visibility='default' filepath='include/sound/soc-topology.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='vendor_unload' type-id='ff06646a' visibility='default' filepath='include/sound/soc-topology.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='complete' type-id='f88ed793' visibility='default' filepath='include/sound/soc-topology.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='manifest' type-id='502bd26a' visibility='default' filepath='include/sound/soc-topology.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='io_ops' type-id='745ce067' visibility='default' filepath='include/sound/soc-topology.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='io_ops_count' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-topology.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='bytes_ext_ops' type-id='a62d5bd8' visibility='default' filepath='include/sound/soc-topology.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='bytes_ext_ops_count' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-topology.h' line='166' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c2ddfea1'>
+        <parameter type-id='8898134d'/>
+        <parameter type-id='9e99ecc1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='c2e47616'>
+        <parameter type-id='2ce52478'/>
+        <parameter type-id='3c330066'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='dd22f428'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='icc_node' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/linux/interconnect-provider.h' line='95' column='1' id='c2e5ce3f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/interconnect-provider.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/interconnect-provider.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='links' type-id='c824cd57' visibility='default' filepath='include/linux/interconnect-provider.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='num_links' type-id='b59d7dce' visibility='default' filepath='include/linux/interconnect-provider.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='provider' type-id='e68dc824' visibility='default' filepath='include/linux/interconnect-provider.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='node_list' type-id='72f469ec' visibility='default' filepath='include/linux/interconnect-provider.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='search_list' type-id='72f469ec' visibility='default' filepath='include/linux/interconnect-provider.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='reverse' type-id='18d76f87' visibility='default' filepath='include/linux/interconnect-provider.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='is_traversed' type-id='f9b06939' visibility='default' filepath='include/linux/interconnect-provider.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='req_list' type-id='e151255a' visibility='default' filepath='include/linux/interconnect-provider.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='avg_bw' type-id='19c2251e' visibility='default' filepath='include/linux/interconnect-provider.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='peak_bw' type-id='19c2251e' visibility='default' filepath='include/linux/interconnect-provider.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='init_avg' type-id='19c2251e' visibility='default' filepath='include/linux/interconnect-provider.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='init_peak' type-id='19c2251e' visibility='default' filepath='include/linux/interconnect-provider.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/interconnect-provider.h' line='111' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_async_subdev' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/media/v4l2-async.h' line='63' column='1' id='c2e9ee66'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='match_type' type-id='d03a4ada' visibility='default' filepath='include/media/v4l2-async.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='match' type-id='ac5ab5f1' visibility='default' filepath='include/media/v4l2-async.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-async.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='asd_list' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-async.h' line='75' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='caf9c470' size-in-bits='512' id='c2eeb70e'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='c2f3c8c7'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='5f0e1af8' size-in-bits='64' id='c30336a2'/>
+      <pointer-type-def type-id='cf42b48f' size-in-bits='64' id='c3044cfb'/>
+      <class-decl name='can_frame' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/can.h' line='107' column='1' id='c307e927'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='can_id' type-id='ec374630' visibility='default' filepath='include/uapi/linux/can.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='' type-id='ac5ab608' visibility='default' filepath='include/uapi/linux/can.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='__pad' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/can.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='__res0' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/can.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='len8_dlc' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/can.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='0209ab38' visibility='default' filepath='include/uapi/linux/can.h' line='120' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='alarmtimer_restart' filepath='include/linux/alarmtimer.h' line='23' column='1' id='c3082d06'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ALARMTIMER_NORESTART' value='0'/>
+        <enumerator name='ALARMTIMER_RESTART' value='1'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='c315836a'>
+        <parameter type-id='95dc69d1'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='694b0298' const='yes' id='c31ae6dd'/>
+      <pointer-type-def type-id='91e47eea' size-in-bits='64' id='c31f35ac'/>
+      <qualified-type-def type-id='dec3e96a' const='yes' id='c321beba'/>
+      <class-decl name='ethtool_ah_espip6_spec' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='931' column='1' id='c324ec54'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ip6src' type-id='30180d4b' visibility='default' filepath='include/uapi/linux/ethtool.h' line='932' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ip6dst' type-id='30180d4b' visibility='default' filepath='include/uapi/linux/ethtool.h' line='933' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='spi' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ethtool.h' line='934' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='tclass' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='935' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='112801a2' size-in-bits='64' id='c32a771c'/>
+      <typedef-decl name='irq_write_msi_msg_t' type-id='09f0b23a' filepath='include/linux/msi.h' line='68' column='1' id='c335ba2b'/>
+      <function-type size-in-bits='64' id='c33808e6'>
+        <parameter type-id='8898134d'/>
+        <parameter type-id='e68e04c1'/>
+        <parameter type-id='4adb0e6a'/>
+        <return type-id='abd62a96'/>
+      </function-type>
+      <function-type size-in-bits='64' id='c3384bd1'>
+        <parameter type-id='27675065'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f20d48e8' size-in-bits='64' id='c33b00da'/>
+      <qualified-type-def type-id='71f11a97' const='yes' id='c345a11a'/>
+      <class-decl name='pinctrl_map' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/pinctrl/machine.h' line='67' column='1' id='c34e46f8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev_name' type-id='80f4b756' visibility='default' filepath='include/linux/pinctrl/machine.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/pinctrl/machine.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='type' type-id='95da6d1c' visibility='default' filepath='include/linux/pinctrl/machine.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ctrl_dev_name' type-id='80f4b756' visibility='default' filepath='include/linux/pinctrl/machine.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='data' type-id='ac5ab610' visibility='default' filepath='include/linux/pinctrl/machine.h' line='75' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9f3a0131' size-in-bits='64' id='c34fbd81'/>
+      <pointer-type-def type-id='970d3828' size-in-bits='64' id='c353cb3e'/>
+      <pointer-type-def type-id='7010de92' size-in-bits='64' id='c358cd2c'/>
+      <qualified-type-def type-id='278d8d7c' const='yes' id='c35ca4f3'/>
+      <function-type size-in-bits='64' id='c35d9e4e'>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='4151733d'/>
+        <parameter type-id='4151733d'/>
+        <parameter type-id='fbaba52b'/>
+        <parameter type-id='730ae11f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3d8098a3' size-in-bits='64' id='c35da6ff'/>
+      <qualified-type-def type-id='b785b938' const='yes' id='c3619065'/>
+      <pointer-type-def type-id='b0cde5c7' size-in-bits='64' id='c368c2fb'/>
+      <class-decl name='timing_entry' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/video/display_timing.h' line='40' column='1' id='c372ad74'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='min' type-id='19c2251e' visibility='default' filepath='include/video/display_timing.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='typ' type-id='19c2251e' visibility='default' filepath='include/video/display_timing.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max' type-id='19c2251e' visibility='default' filepath='include/video/display_timing.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ufshcd_sg_entry' size-in-bits='128' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='417' column='1' id='c372d726'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base_addr' type-id='2f162548' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='418' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='upper_addr' type-id='2f162548' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reserved' type-id='2f162548' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='420' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='size' type-id='2f162548' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='421' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d8fd579a' size-in-bits='64' id='c379ce2c'/>
+      <function-type size-in-bits='64' id='c37d868d'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='3c2163ba'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='40' column='1' id='c37ef5e1' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='clock_rate' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='clock_type' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='loopback' type-id='8efea9e5' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='xhci_cap_regs' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='54' column='1' id='c38207f0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hc_capbase' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='hcs_params1' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hcs_params2' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='hcs_params3' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hcc_params' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='db_off' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='run_regs_off' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='hcc_params2' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='62' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4f6af29b' size-in-bits='64' id='c38df6d7'/>
+      <enum-decl name='flow_action_mangle_base' filepath='include/net/flow_offload.h' line='158' column='1' id='c3972c2e'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='FLOW_ACT_MANGLE_UNSPEC' value='0'/>
+        <enumerator name='FLOW_ACT_MANGLE_HDR_TYPE_ETH' value='1'/>
+        <enumerator name='FLOW_ACT_MANGLE_HDR_TYPE_IP4' value='2'/>
+        <enumerator name='FLOW_ACT_MANGLE_HDR_TYPE_IP6' value='3'/>
+        <enumerator name='FLOW_ACT_MANGLE_HDR_TYPE_TCP' value='4'/>
+        <enumerator name='FLOW_ACT_MANGLE_HDR_TYPE_UDP' value='5'/>
+      </enum-decl>
+      <pointer-type-def type-id='bb56dd02' size-in-bits='64' id='c398045c'/>
+      <pointer-type-def type-id='d2c7a2c1' size-in-bits='64' id='c39cf839'/>
+      <class-decl name='xol_area' is-struct='yes' visibility='default' is-declaration-only='yes' id='c39df2b8'/>
+      <function-type size-in-bits='64' id='c3a10c20'>
+        <parameter type-id='b88dd945'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='98031623'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='449a6017' size-in-bits='64' id='c3a1efbb'/>
+      <pointer-type-def type-id='e0a68fea' size-in-bits='64' id='c3a28778'/>
+      <pointer-type-def type-id='a5390025' size-in-bits='64' id='c3a655b9'/>
+      <class-decl name='frag_v4_compare_key' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/net/inet_frag.h' line='42' column='1' id='c3a8bbbc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='saddr' type-id='78a133c2' visibility='default' filepath='include/net/inet_frag.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='daddr' type-id='78a133c2' visibility='default' filepath='include/net/inet_frag.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='user' type-id='19c2251e' visibility='default' filepath='include/net/inet_frag.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='vif' type-id='19c2251e' visibility='default' filepath='include/net/inet_frag.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='id' type-id='84a5c3d4' visibility='default' filepath='include/net/inet_frag.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='protocol' type-id='1dc6a898' visibility='default' filepath='include/net/inet_frag.h' line='48' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c3b2916f'>
+        <parameter type-id='b26c7631'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7a773bd0' size-in-bits='64' id='c3b36a8e'/>
+      <class-decl name='drm_dp_payload' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='536' column='1' id='c3b3aa2a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='payload_state' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='537' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='start_slot' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='538' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_slots' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='539' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='vcpi' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='540' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='51d2c7ae' const='yes' id='c3b52303'/>
+      <function-type size-in-bits='64' id='c3b65e91'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='4151733d'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='9c313c2d' const='yes' id='c3b7ba7d'/>
+      <pointer-type-def type-id='867287cb' size-in-bits='64' id='c3b85b9b'/>
+      <class-decl name='ethtool_wolinfo' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='213' column='1' id='c3b8a83b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='supported' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wolopts' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='sopass' type-id='c60dc9f2' visibility='default' filepath='include/uapi/linux/ethtool.h' line='217' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3f9db80e' size-in-bits='64' id='c3bb3528'/>
+      <pointer-type-def type-id='e431553d' size-in-bits='64' id='c3bf2e4d'/>
+      <qualified-type-def type-id='d7d5e052' const='yes' id='c3c45f7d'/>
+      <function-type size-in-bits='64' id='c3d2316f'>
+        <parameter type-id='dd575c43'/>
+        <parameter type-id='47f117d4'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='766eac03' size-in-bits='64' id='c3d2558f'/>
+      <pointer-type-def type-id='13b1c3f8' size-in-bits='64' id='c3db487a'/>
+      <pointer-type-def type-id='5fbbd9b8' size-in-bits='64' id='c3e03202'/>
+      <pointer-type-def type-id='89990402' size-in-bits='64' id='c3e18af8'/>
+      <function-type size-in-bits='64' id='c3e60881'>
+        <parameter type-id='5e4f599b'/>
+        <parameter type-id='eea6b025'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='629c8d83' size-in-bits='64' id='c3e73f93'/>
+      <qualified-type-def type-id='6bac1cb5' const='yes' id='c3f0f7d9'/>
+      <pointer-type-def type-id='76b325f9' size-in-bits='64' id='c3f1f74d'/>
+      <function-type size-in-bits='64' id='c3f42608'>
+        <parameter type-id='3dad1a48'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <function-type size-in-bits='64' id='c3fc04e5'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='8bff8096'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='54718f09' const='yes' id='c408da30'/>
+      <pointer-type-def type-id='586f31a7' size-in-bits='64' id='c40b00f7'/>
+      <function-type size-in-bits='64' id='c40caf76'>
+        <parameter type-id='44372936'/>
+        <parameter type-id='2a14aacd'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3dfb1294' size-in-bits='64' id='c4126d52'/>
+      <pointer-type-def type-id='f213bd85' size-in-bits='64' id='c4139a7d'/>
+      <pointer-type-def type-id='62968721' size-in-bits='64' id='c41f4539'/>
+      <function-type size-in-bits='64' id='c41f8fa1'>
+        <parameter type-id='04b6a8dc'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='blkg_iostat_set' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/blk-cgroup.h' line='74' column='1' id='c42085ef'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sync' type-id='e4d85780' visibility='default' filepath='include/linux/blk-cgroup.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cur' type-id='ba6a871c' visibility='default' filepath='include/linux/blk-cgroup.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='last' type-id='ba6a871c' visibility='default' filepath='include/linux/blk-cgroup.h' line='77' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='513ae826' size-in-bits='64' id='c42bce58'/>
+      <pointer-type-def type-id='e2d03a5d' size-in-bits='64' id='c42cb699'/>
+      <function-type size-in-bits='64' id='c435a5bb'>
+        <parameter type-id='68a2d05b'/>
+        <return type-id='f41a0030'/>
+      </function-type>
+      <pointer-type-def type-id='12e476c1' size-in-bits='64' id='c4365925'/>
+      <class-decl name='nd_region_desc' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/libnvdimm.h' line='118' column='1' id='c4369844'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='res' type-id='c9d64c0d' visibility='default' filepath='include/linux/libnvdimm.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mapping' type-id='9ac7bdcc' visibility='default' filepath='include/linux/libnvdimm.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='num_mappings' type-id='1dc6a898' visibility='default' filepath='include/linux/libnvdimm.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='attr_groups' type-id='c97de1ac' visibility='default' filepath='include/linux/libnvdimm.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='nd_set' type-id='90e3bb60' visibility='default' filepath='include/linux/libnvdimm.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='provider_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/libnvdimm.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='num_lanes' type-id='95e97e5e' visibility='default' filepath='include/linux/libnvdimm.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='numa_node' type-id='95e97e5e' visibility='default' filepath='include/linux/libnvdimm.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='target_node' type-id='95e97e5e' visibility='default' filepath='include/linux/libnvdimm.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/libnvdimm.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='of_node' type-id='9a537bbe' visibility='default' filepath='include/linux/libnvdimm.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='flush' type-id='e8c1d90e' visibility='default' filepath='include/linux/libnvdimm.h' line='130' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='4fd7026f' const='yes' id='c43be768'/>
+      <function-type size-in-bits='64' id='c443a9fc'>
+        <parameter type-id='ec77b5b8'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='2f8dd5c2' size-in-bits='64' id='c447bc38'/>
+      <pointer-type-def type-id='999b38a0' size-in-bits='64' id='c44b3996'/>
+      <class-decl name='vhost_iotlb' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/vhost_iotlb.h' line='25' column='1' id='c44baa66'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='root' type-id='6fe1603d' visibility='default' filepath='include/linux/vhost_iotlb.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/vhost_iotlb.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='limit' type-id='f0981eeb' visibility='default' filepath='include/linux/vhost_iotlb.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='nmaps' type-id='f0981eeb' visibility='default' filepath='include/linux/vhost_iotlb.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/vhost_iotlb.h' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c44bfbeb'>
+        <parameter type-id='5760dcb0'/>
+        <parameter type-id='75615bf0'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='c4560c68'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='5c218f2b'/>
+        <parameter type-id='8a5a774f'/>
+        <parameter type-id='3eb7c31c'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='c4564b21'>
+        <parameter type-id='108dbc98'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='94eb9e95'/>
+        <parameter type-id='1dc6a898'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7f985fda' size-in-bits='64' id='c45d1018'/>
+      <class-decl name='fb_image' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/uapi/linux/fb.h' line='360' column='1' id='c4601f87'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dx' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='dy' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='363' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fg_color' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='365' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='bg_color' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fb.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='depth' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/fb.h' line='367' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='data' type-id='80f4b756' visibility='default' filepath='include/uapi/linux/fb.h' line='368' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='cmap' type-id='be9adbe3' visibility='default' filepath='include/uapi/linux/fb.h' line='369' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c463253a'>
+        <parameter type-id='af051c69'/>
+        <parameter type-id='a84c031d'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='inet_cork' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/inet_sock.h' line='163' column='1' id='c466cd59'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/net/inet_sock.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='addr' type-id='78a133c2' visibility='default' filepath='include/net/inet_sock.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='opt' type-id='57b94931' visibility='default' filepath='include/net/inet_sock.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fragsize' type-id='f0981eeb' visibility='default' filepath='include/net/inet_sock.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='length' type-id='95e97e5e' visibility='default' filepath='include/net/inet_sock.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dst' type-id='141b6427' visibility='default' filepath='include/net/inet_sock.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='tx_flags' type-id='f9b06939' visibility='default' filepath='include/net/inet_sock.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='264'>
+          <var-decl name='ttl' type-id='8f048e17' visibility='default' filepath='include/net/inet_sock.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='tos' type-id='b55def60' visibility='default' filepath='include/net/inet_sock.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='priority' type-id='a84c031d' visibility='default' filepath='include/net/inet_sock.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='304'>
+          <var-decl name='gso_size' type-id='d315442e' visibility='default' filepath='include/net/inet_sock.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='transmit_time' type-id='91ce1af9' visibility='default' filepath='include/net/inet_sock.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='mark' type-id='19c2251e' visibility='default' filepath='include/net/inet_sock.h' line='176' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='blk_zone' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/uapi/linux/blkzoned.h' line='106' column='1' id='c46c1f27'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='d3130597' visibility='default' filepath='include/uapi/linux/blkzoned.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='len' type-id='d3130597' visibility='default' filepath='include/uapi/linux/blkzoned.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='wp' type-id='d3130597' visibility='default' filepath='include/uapi/linux/blkzoned.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='type' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/blkzoned.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='cond' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/blkzoned.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='non_seq' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/blkzoned.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='216'>
+          <var-decl name='reset' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/blkzoned.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='resv' type-id='c213d3d4' visibility='default' filepath='include/uapi/linux/blkzoned.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='capacity' type-id='d3130597' visibility='default' filepath='include/uapi/linux/blkzoned.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='reserved' type-id='26f0765c' visibility='default' filepath='include/uapi/linux/blkzoned.h' line='116' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='8bb45a31' const='yes' id='c46fad80'/>
+      <enum-decl name='dev_pm_qos_req_type' filepath='include/linux/pm_qos.h' line='100' column='1' id='c47ba023'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEV_PM_QOS_RESUME_LATENCY' value='1'/>
+        <enumerator name='DEV_PM_QOS_LATENCY_TOLERANCE' value='2'/>
+        <enumerator name='DEV_PM_QOS_MIN_FREQUENCY' value='3'/>
+        <enumerator name='DEV_PM_QOS_MAX_FREQUENCY' value='4'/>
+        <enumerator name='DEV_PM_QOS_FLAGS' value='5'/>
+      </enum-decl>
+      <pointer-type-def type-id='ed6d657e' size-in-bits='64' id='c47bdd44'/>
+      <pointer-type-def type-id='2594b00f' size-in-bits='64' id='c484cc9e'/>
+      <pointer-type-def type-id='4943c066' size-in-bits='64' id='c485c22c'/>
+      <pointer-type-def type-id='b7022237' size-in-bits='64' id='c4884d33'/>
+      <pointer-type-def type-id='c42085ef' size-in-bits='64' id='c4898827'/>
+      <pointer-type-def type-id='1a08fab8' size-in-bits='64' id='c48b394e'/>
+      <pointer-type-def type-id='7a348508' size-in-bits='64' id='c4904652'/>
+      <function-type size-in-bits='64' id='c49062e0'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='ad168a80'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='91ce1af9' size-in-bits='1024' id='c497958f'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='c4987890'>
+        <parameter type-id='27675065'/>
+        <parameter type-id='526bed22'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='0897719a' const='yes' id='c4a7b189'/>
+      <class-decl name='seq_operations' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/seq_file.h' line='31' column='1' id='c4b04493'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='a46b05a0' visibility='default' filepath='include/linux/seq_file.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='stop' type-id='6ba28d1c' visibility='default' filepath='include/linux/seq_file.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='next' type-id='b6ba26fa' visibility='default' filepath='include/linux/seq_file.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='show' type-id='0131eb61' visibility='default' filepath='include/linux/seq_file.h' line='35' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='32aa9d63' size-in-bits='64' id='c4c01ce7'/>
+      <pointer-type-def type-id='e6ab9148' size-in-bits='64' id='c4c1659e'/>
+      <function-type size-in-bits='64' id='c4c7a991'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='654a179f'/>
+        <parameter type-id='654a179f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='5d58e1d2' size-in-bits='64' id='c4cac78c'/>
+      <pointer-type-def type-id='f9bc47e0' size-in-bits='64' id='c4cd4be2'/>
+      <class-decl name='nf_loginfo' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_log.h' line='20' column='1' id='c4cd9d00'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='892641a4' visibility='default' filepath='include/net/netfilter/nf_log.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='u' type-id='ac5ab6a5' visibility='default' filepath='include/net/netfilter/nf_log.h' line='36' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='inet6_skb_parm' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/ipv6.h' line='129' column='1' id='c4d0818f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='iif' type-id='95e97e5e' visibility='default' filepath='include/linux/ipv6.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ra' type-id='84a5c3d4' visibility='default' filepath='include/linux/ipv6.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='dst0' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='srcrt' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='dst1' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='lastopt' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='nhoff' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='dsthao' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='frag_max_size' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='srhoff' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='142' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_jack' size-in-bits='1600' is-struct='yes' visibility='default' filepath='include/sound/jack.h' line='60' column='1' id='c4d4ddea'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kctl_list' type-id='72f469ec' visibility='default' filepath='include/sound/jack.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='card' type-id='52704eb7' visibility='default' filepath='include/sound/jack.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='id' type-id='80f4b756' visibility='default' filepath='include/sound/jack.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='input_dev' type-id='74b427eb' visibility='default' filepath='include/sound/jack.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='registered' type-id='95e97e5e' visibility='default' filepath='include/sound/jack.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='type' type-id='95e97e5e' visibility='default' filepath='include/sound/jack.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='name' type-id='04f09ed4' visibility='default' filepath='include/sound/jack.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='key' type-id='0d5c291d' visibility='default' filepath='include/sound/jack.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='hw_status_cache' type-id='95e97e5e' visibility='default' filepath='include/sound/jack.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/jack.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='private_free' type-id='5a798ea9' visibility='default' filepath='include/sound/jack.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/jack.h' line='75' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='77780344' size-in-bits='64' id='c4d81be6'/>
+      <pointer-type-def type-id='d7de7749' size-in-bits='64' id='c4d81ddd'/>
+      <function-type size-in-bits='64' id='c4e36342'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='prb_data_ring' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='64' column='1' id='c4e7c9d3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size_bits' type-id='f0981eeb' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='26a90f95' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='head_lpos' type-id='f22a8abb' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tail_lpos' type-id='f22a8abb' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='68' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='hci_dev' size-in-bits='48128' is-struct='yes' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='310' column='1' id='c4e92edf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='311' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='name' type-id='8e100159' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='id' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='656'>
+          <var-decl name='bus' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='664'>
+          <var-decl name='dev_type' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='bdaddr' type-id='c2840192' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='720'>
+          <var-decl name='setup_addr' type-id='c2840192' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='public_addr' type-id='c2840192' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='816'>
+          <var-decl name='random_addr' type-id='c2840192' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='static_addr' type-id='c2840192' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='912'>
+          <var-decl name='adv_addr_type' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='920'>
+          <var-decl name='dev_name' type-id='51d2bffa' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2904'>
+          <var-decl name='short_name' type-id='979253d9' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2984'>
+          <var-decl name='eir' type-id='51e647b2' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4912'>
+          <var-decl name='appearance' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4928'>
+          <var-decl name='dev_class' type-id='c216126b' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4952'>
+          <var-decl name='major_class' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4960'>
+          <var-decl name='minor_class' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4968'>
+          <var-decl name='max_page' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4976'>
+          <var-decl name='features' type-id='7f89db3f' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5168'>
+          <var-decl name='le_features' type-id='0209ab38' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5232'>
+          <var-decl name='le_accept_list_size' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5240'>
+          <var-decl name='le_resolv_list_size' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='le_num_of_adv_sets' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5256'>
+          <var-decl name='le_states' type-id='0209ab38' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5320'>
+          <var-decl name='commands' type-id='73b95420' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5832'>
+          <var-decl name='hci_ver' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5840'>
+          <var-decl name='hci_rev' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5856'>
+          <var-decl name='lmp_ver' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5872'>
+          <var-decl name='manufacturer' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5888'>
+          <var-decl name='lmp_subver' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5904'>
+          <var-decl name='voice_setting' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5920'>
+          <var-decl name='num_iac' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5928'>
+          <var-decl name='stored_max_keys' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5936'>
+          <var-decl name='stored_num_keys' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='348' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5944'>
+          <var-decl name='io_capability' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5952'>
+          <var-decl name='inq_tx_power' type-id='8af57d41' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='350' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5960'>
+          <var-decl name='err_data_reporting' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5968'>
+          <var-decl name='page_scan_interval' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5984'>
+          <var-decl name='page_scan_window' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6000'>
+          <var-decl name='page_scan_type' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6008'>
+          <var-decl name='le_adv_channel_map' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6016'>
+          <var-decl name='le_adv_min_interval' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6032'>
+          <var-decl name='le_adv_max_interval' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6048'>
+          <var-decl name='le_scan_type' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6064'>
+          <var-decl name='le_scan_interval' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='359' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='le_scan_window' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6096'>
+          <var-decl name='le_scan_int_suspend' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6112'>
+          <var-decl name='le_scan_window_suspend' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6128'>
+          <var-decl name='le_scan_int_discovery' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='363' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6144'>
+          <var-decl name='le_scan_window_discovery' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6160'>
+          <var-decl name='le_scan_int_adv_monitor' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='365' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6176'>
+          <var-decl name='le_scan_window_adv_monitor' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6192'>
+          <var-decl name='le_scan_int_connect' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='367' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6208'>
+          <var-decl name='le_scan_window_connect' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='368' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6224'>
+          <var-decl name='le_conn_min_interval' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='369' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6240'>
+          <var-decl name='le_conn_max_interval' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6256'>
+          <var-decl name='le_conn_latency' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='371' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6272'>
+          <var-decl name='le_supv_timeout' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6288'>
+          <var-decl name='le_def_tx_len' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='373' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6304'>
+          <var-decl name='le_def_tx_time' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='374' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6320'>
+          <var-decl name='le_max_tx_len' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6336'>
+          <var-decl name='le_max_tx_time' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6352'>
+          <var-decl name='le_max_rx_len' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='377' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6368'>
+          <var-decl name='le_max_rx_time' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='378' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6384'>
+          <var-decl name='le_max_key_size' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6392'>
+          <var-decl name='le_min_key_size' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6400'>
+          <var-decl name='discov_interleaved_timeout' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='381' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6416'>
+          <var-decl name='conn_info_min_age' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6432'>
+          <var-decl name='conn_info_max_age' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='383' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6448'>
+          <var-decl name='auth_payload_timeout' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='384' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='min_enc_key_size' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='385' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6472'>
+          <var-decl name='max_enc_key_size' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6480'>
+          <var-decl name='pairing_opts' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='387' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6488'>
+          <var-decl name='ssp_debug_mode' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6496'>
+          <var-decl name='hw_error_code' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6528'>
+          <var-decl name='clock' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6560'>
+          <var-decl name='advmon_allowlist_duration' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6576'>
+          <var-decl name='advmon_no_filter_duration' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6592'>
+          <var-decl name='enable_advmon_interleave_scan' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='393' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6608'>
+          <var-decl name='devid_source' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6624'>
+          <var-decl name='devid_vendor' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6640'>
+          <var-decl name='devid_product' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='397' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6656'>
+          <var-decl name='devid_version' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6672'>
+          <var-decl name='def_page_scan_type' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6688'>
+          <var-decl name='def_page_scan_int' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6704'>
+          <var-decl name='def_page_scan_window' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6720'>
+          <var-decl name='def_inq_scan_type' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='403' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6736'>
+          <var-decl name='def_inq_scan_int' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6752'>
+          <var-decl name='def_inq_scan_window' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6768'>
+          <var-decl name='def_br_lsto' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6784'>
+          <var-decl name='def_page_timeout' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='407' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6800'>
+          <var-decl name='def_multi_adv_rotation_duration' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='408' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6816'>
+          <var-decl name='def_le_autoconnect_timeout' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='409' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6832'>
+          <var-decl name='min_le_tx_power' type-id='8af57d41' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='410' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6840'>
+          <var-decl name='max_le_tx_power' type-id='8af57d41' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6848'>
+          <var-decl name='pkt_type' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='413' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6864'>
+          <var-decl name='esco_type' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6880'>
+          <var-decl name='link_policy' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='415' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6896'>
+          <var-decl name='link_mode' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='416' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6912'>
+          <var-decl name='idle_timeout' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='418' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6944'>
+          <var-decl name='sniff_min_interval' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6960'>
+          <var-decl name='sniff_max_interval' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='420' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6976'>
+          <var-decl name='amp_status' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='422' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7008'>
+          <var-decl name='amp_total_bw' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7040'>
+          <var-decl name='amp_max_bw' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='424' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7072'>
+          <var-decl name='amp_min_latency' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='425' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7104'>
+          <var-decl name='amp_max_pdu' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7136'>
+          <var-decl name='amp_type' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7152'>
+          <var-decl name='amp_pal_cap' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='428' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7168'>
+          <var-decl name='amp_assoc_size' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7200'>
+          <var-decl name='amp_max_flush_to' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='430' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7232'>
+          <var-decl name='amp_be_flush_to' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='431' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7264'>
+          <var-decl name='loc_assoc' type-id='36e902a9' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='433' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12704'>
+          <var-decl name='flow_ctl_mode' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12736'>
+          <var-decl name='auto_accept_delay' type-id='f0981eeb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12800'>
+          <var-decl name='quirks' type-id='7359adad' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='439' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12864'>
+          <var-decl name='cmd_cnt' type-id='49178f86' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12896'>
+          <var-decl name='acl_cnt' type-id='f0981eeb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='442' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12928'>
+          <var-decl name='sco_cnt' type-id='f0981eeb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12960'>
+          <var-decl name='le_cnt' type-id='f0981eeb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12992'>
+          <var-decl name='acl_mtu' type-id='f0981eeb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13024'>
+          <var-decl name='sco_mtu' type-id='f0981eeb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='447' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13056'>
+          <var-decl name='le_mtu' type-id='f0981eeb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13088'>
+          <var-decl name='acl_pkts' type-id='f0981eeb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13120'>
+          <var-decl name='sco_pkts' type-id='f0981eeb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13152'>
+          <var-decl name='le_pkts' type-id='f0981eeb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13184'>
+          <var-decl name='block_len' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13200'>
+          <var-decl name='block_mtu' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13216'>
+          <var-decl name='num_blocks' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13232'>
+          <var-decl name='block_cnt' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13248'>
+          <var-decl name='acl_last_tx' type-id='7359adad' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13312'>
+          <var-decl name='sco_last_tx' type-id='7359adad' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='459' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13376'>
+          <var-decl name='le_last_tx' type-id='7359adad' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13440'>
+          <var-decl name='le_tx_def_phys' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='462' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13448'>
+          <var-decl name='le_rx_def_phys' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='463' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13504'>
+          <var-decl name='workqueue' type-id='242e3d19' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='465' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13568'>
+          <var-decl name='req_workqueue' type-id='242e3d19' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='466' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13632'>
+          <var-decl name='power_on' type-id='ef9025d0' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='468' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14016'>
+          <var-decl name='power_off' type-id='5ad6e0ef' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='469' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15104'>
+          <var-decl name='error_reset' type-id='ef9025d0' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='470' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15488'>
+          <var-decl name='discov_timeout' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='472' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15552'>
+          <var-decl name='discov_off' type-id='5ad6e0ef' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='473' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16640'>
+          <var-decl name='service_cache' type-id='5ad6e0ef' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='475' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17728'>
+          <var-decl name='cmd_timer' type-id='5ad6e0ef' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='477' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18816'>
+          <var-decl name='ncmd_timer' type-id='5ad6e0ef' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='478' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19904'>
+          <var-decl name='rx_work' type-id='ef9025d0' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='480' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20288'>
+          <var-decl name='cmd_work' type-id='ef9025d0' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='481' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20672'>
+          <var-decl name='tx_work' type-id='ef9025d0' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='482' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21056'>
+          <var-decl name='discov_update' type-id='ef9025d0' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='484' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21440'>
+          <var-decl name='bg_scan_update' type-id='ef9025d0' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='485' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21824'>
+          <var-decl name='scan_update' type-id='ef9025d0' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22208'>
+          <var-decl name='connectable_update' type-id='ef9025d0' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22592'>
+          <var-decl name='discoverable_update' type-id='ef9025d0' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22976'>
+          <var-decl name='le_scan_disable' type-id='5ad6e0ef' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24064'>
+          <var-decl name='le_scan_restart' type-id='5ad6e0ef' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25152'>
+          <var-decl name='rx_q' type-id='e61c85d0' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='492' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25344'>
+          <var-decl name='raw_q' type-id='e61c85d0' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='493' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25536'>
+          <var-decl name='cmd_q' type-id='e61c85d0' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='494' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25728'>
+          <var-decl name='sent_cmd' type-id='0fbf3cfd' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='496' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25792'>
+          <var-decl name='req_lock' type-id='925167dc' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='498' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26176'>
+          <var-decl name='req_wait_q' type-id='b5ab048f' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='499' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26368'>
+          <var-decl name='req_status' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='500' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26400'>
+          <var-decl name='req_result' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='501' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26432'>
+          <var-decl name='req_skb' type-id='0fbf3cfd' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='502' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26496'>
+          <var-decl name='smp_data' type-id='eaa32e2f' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='504' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26560'>
+          <var-decl name='smp_bredr_data' type-id='eaa32e2f' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='505' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26624'>
+          <var-decl name='discovery' type-id='f98a45fb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='507' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27712'>
+          <var-decl name='discovery_old_state' type-id='95e97e5e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='509' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27744'>
+          <var-decl name='discovery_paused' type-id='b50a4934' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='510' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27776'>
+          <var-decl name='advertising_old_state' type-id='95e97e5e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='511' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27808'>
+          <var-decl name='advertising_paused' type-id='b50a4934' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27840'>
+          <var-decl name='suspend_notifier' type-id='9b08f7cd' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='514' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28032'>
+          <var-decl name='suspend_prepare' type-id='ef9025d0' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='515' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28416'>
+          <var-decl name='suspend_state_next' type-id='75eb88ab' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='516' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28448'>
+          <var-decl name='suspend_state' type-id='75eb88ab' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='517' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28480'>
+          <var-decl name='scanning_paused' type-id='b50a4934' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='518' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28488'>
+          <var-decl name='suspended' type-id='b50a4934' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28496'>
+          <var-decl name='wake_reason' type-id='f9b06939' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='520' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28504'>
+          <var-decl name='wake_addr' type-id='c2840192' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28552'>
+          <var-decl name='wake_addr_type' type-id='f9b06939' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='522' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28608'>
+          <var-decl name='suspend_wait_q' type-id='b5ab048f' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='524' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28800'>
+          <var-decl name='suspend_tasks' type-id='f066dd3c' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='525' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28864'>
+          <var-decl name='conn_hash' type-id='f39496ab' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='29184'>
+          <var-decl name='mgmt_pending' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='529' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='29312'>
+          <var-decl name='reject_list' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='530' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='29440'>
+          <var-decl name='accept_list' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='531' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='29568'>
+          <var-decl name='uuids' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='532' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='29696'>
+          <var-decl name='link_keys' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='533' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='29824'>
+          <var-decl name='long_term_keys' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='29952'>
+          <var-decl name='identity_resolving_keys' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='535' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='30080'>
+          <var-decl name='remote_oob_data' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='536' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='30208'>
+          <var-decl name='le_accept_list' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='537' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='30336'>
+          <var-decl name='le_resolv_list' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='538' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='30464'>
+          <var-decl name='le_conn_params' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='539' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='30592'>
+          <var-decl name='pend_le_conns' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='540' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='30720'>
+          <var-decl name='pend_le_reports' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='541' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='30848'>
+          <var-decl name='blocked_keys' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='542' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='30976'>
+          <var-decl name='stat' type-id='2f3316f3' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='544' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='31296'>
+          <var-decl name='promisc' type-id='49178f86' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='546' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='31360'>
+          <var-decl name='hw_info' type-id='80f4b756' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='548' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='31424'>
+          <var-decl name='fw_info' type-id='80f4b756' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='549' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='31488'>
+          <var-decl name='debugfs' type-id='27675065' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='31552'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='552' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='38848'>
+          <var-decl name='rfkill' type-id='c5b94c75' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='38912'>
+          <var-decl name='dev_flags' type-id='f066dd3c' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='556' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='38976'>
+          <var-decl name='adv_tx_power' type-id='8af57d41' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='558' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='38984'>
+          <var-decl name='adv_data' type-id='21519ae8' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='559' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40992'>
+          <var-decl name='adv_data_len' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='560' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41000'>
+          <var-decl name='scan_rsp_data' type-id='21519ae8' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='561' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='43008'>
+          <var-decl name='scan_rsp_data_len' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='562' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='43072'>
+          <var-decl name='adv_instances' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='564' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='43200'>
+          <var-decl name='adv_instance_cnt' type-id='f0981eeb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='43232'>
+          <var-decl name='cur_adv_instance' type-id='8f048e17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='43248'>
+          <var-decl name='adv_instance_timeout' type-id='d315442e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='43264'>
+          <var-decl name='adv_instance_expire' type-id='5ad6e0ef' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44352'>
+          <var-decl name='adv_monitors_idr' type-id='37ce495e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='570' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44544'>
+          <var-decl name='adv_monitors_cnt' type-id='f0981eeb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='571' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44576'>
+          <var-decl name='irk' type-id='9396cabb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='573' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44704'>
+          <var-decl name='rpa_timeout' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='574' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44736'>
+          <var-decl name='rpa_expired' type-id='5ad6e0ef' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='575' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45824'>
+          <var-decl name='rpa' type-id='c2840192' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='576' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45888'>
+          <var-decl name='interleave_scan_state' type-id='08f5ca18' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='582' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45952'>
+          <var-decl name='interleave_scan' type-id='5ad6e0ef' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='584' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='47040'>
+          <var-decl name='open' type-id='65ee7b03' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='600' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='47104'>
+          <var-decl name='close' type-id='65ee7b03' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='601' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='47168'>
+          <var-decl name='flush' type-id='65ee7b03' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='602' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='47232'>
+          <var-decl name='setup' type-id='65ee7b03' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='603' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='47296'>
+          <var-decl name='shutdown' type-id='65ee7b03' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='604' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='47360'>
+          <var-decl name='send' type-id='9e036c13' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='605' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='47424'>
+          <var-decl name='notify' type-id='ba77b4f4' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='606' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='47488'>
+          <var-decl name='hw_error' type-id='c0a08bbe' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='607' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='47552'>
+          <var-decl name='post_init' type-id='65ee7b03' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='608' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='47616'>
+          <var-decl name='set_diag' type-id='100f2106' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='609' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='47680'>
+          <var-decl name='set_bdaddr' type-id='156888c8' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='610' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='47744'>
+          <var-decl name='cmd_timeout' type-id='d634cc76' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='47808'>
+          <var-decl name='prevent_wake' type-id='013a716d' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='612' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='47872'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='614' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='47936'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='615' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48000'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='616' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48064'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='617' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='platform_device_id' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/mod_devicetable.h' line='593' column='1' id='c4ec4353'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='664ac0b7' visibility='default' filepath='include/linux/mod_devicetable.h' line='594' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='driver_data' type-id='0791d6c8' visibility='default' filepath='include/linux/mod_devicetable.h' line='595' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c4f5a87f'>
+        <parameter type-id='30864cdc'/>
+        <parameter type-id='8c493d8a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='c4f6276e'>
+        <parameter type-id='dd575c43'/>
+        <parameter type-id='47f117d4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7f8cc66d' size-in-bits='64' id='c4facf61'/>
+      <pointer-type-def type-id='291e3bb5' size-in-bits='64' id='c50361c5'/>
+      <function-type size-in-bits='64' id='c505fce2'>
+        <parameter type-id='404b1300'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='4983ea36'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='trace_seq' size-in-bits='33088' is-struct='yes' visibility='default' filepath='include/linux/trace_seq.h' line='14' column='1' id='c5078f42'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='buffer' type-id='d16c6df4' visibility='default' filepath='include/linux/trace_seq.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32768'>
+          <var-decl name='seq' type-id='857188d6' visibility='default' filepath='include/linux/trace_seq.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33024'>
+          <var-decl name='full' type-id='95e97e5e' visibility='default' filepath='include/linux/trace_seq.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c2b07168' size-in-bits='64' id='c509dbc2'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/pgtable-types.h' line='23' column='1' id='c50bf92f' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pte' type-id='e044eb0d' visibility='default' filepath='arch/arm64/include/asm/pgtable-types.h' line='23' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a6042196' size-in-bits='64' id='c50f5163'/>
+      <class-decl name='prb_data_blk_lpos' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='48' column='1' id='c51277fb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='begin' type-id='7359adad' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='next' type-id='7359adad' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='50' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4b8b2cf3' size-in-bits='64' id='c517999b'/>
+      <class-decl name='snd_compressed_buffer' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='40' column='1' id='c51dce37'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fragment_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='fragments' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_offload.h' line='42' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c51e5ffb'>
+        <parameter type-id='fc4f83c1'/>
+        <parameter type-id='ab85b8f2'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='de345e44' size-in-bits='64' id='c523819e'/>
+      <pointer-type-def type-id='05f7ed4f' size-in-bits='64' id='c5251c27'/>
+      <pointer-type-def type-id='0461ecf5' size-in-bits='64' id='c527e30d'/>
+      <pointer-type-def type-id='2d6f2c74' size-in-bits='64' id='c52b8c36'/>
+      <function-type size-in-bits='64' id='c5392ac1'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='03d48e96'/>
+        <parameter type-id='f0acc909'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='350f4182' size-in-bits='64' id='c5417630'/>
+      <pointer-type-def type-id='b9675e9f' size-in-bits='64' id='c5491077'/>
+      <class-decl name='nf_conntrack_helper' is-struct='yes' visibility='default' is-declaration-only='yes' id='c54a70ec'/>
+      <function-type size-in-bits='64' id='c551f1b5'>
+        <parameter type-id='6ed6b432'/>
+        <parameter type-id='f23e2572'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='09672b76' size-in-bits='64' id='c5538168'/>
+      <class-decl name='dev_pagemap_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/memremap.h' line='67' column='1' id='c553aabf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='page_free' type-id='2f974a69' visibility='default' filepath='include/linux/memremap.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='kill' type-id='b90b068f' visibility='default' filepath='include/linux/memremap.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cleanup' type-id='b90b068f' visibility='default' filepath='include/linux/memremap.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='migrate_to_ram' type-id='bb28da1c' visibility='default' filepath='include/linux/memremap.h' line='89' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0156f9e6' size-in-bits='64' id='c55a94d8'/>
+      <pointer-type-def type-id='720a6415' size-in-bits='64' id='c55bcf2d'/>
+      <class-decl name='dmabuf_page_pool' size-in-bits='896' is-struct='yes' visibility='default' filepath='drivers/dma-buf/heaps/page_pool.h' line='40' column='1' id='c55ce973'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='e4266c7e' visibility='default' filepath='drivers/dma-buf/heaps/page_pool.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='items' type-id='e4f16420' visibility='default' filepath='drivers/dma-buf/heaps/page_pool.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='drivers/dma-buf/heaps/page_pool.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='gfp_mask' type-id='3eb7c31c' visibility='default' filepath='drivers/dma-buf/heaps/page_pool.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='order' type-id='f0981eeb' visibility='default' filepath='drivers/dma-buf/heaps/page_pool.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='drivers/dma-buf/heaps/page_pool.h' line='46' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c564a30c'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='7156b317'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='a99cde64'/>
+        <parameter type-id='b8b37be2'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='307587ae' size-in-bits='64' id='c56b5ee4'/>
+      <function-type size-in-bits='64' id='c56b7883'>
+        <parameter type-id='58ed56f5'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='a8341196'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='drm_connector_helper_funcs' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='858' column='1' id='c571b65b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='get_modes' type-id='0b8c9d30' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='901' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='detect_ctx' type-id='a8bd8fa1' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='927' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mode_valid' type-id='ff7f72b4' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='965' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mode_valid_ctx' type-id='e0238b7c' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='1004' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='best_encoder' type-id='a4de2233' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='1037' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='atomic_best_encoder' type-id='d616d8de' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='1063' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='atomic_check' type-id='2e18356f' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='1097' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='atomic_commit' type-id='11d98c7c' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='1112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='prepare_writeback_job' type-id='a92ff885' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='1129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='cleanup_writeback_job' type-id='b781f274' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='1144' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='hdmi_infoframe_type' filepath='include/linux/hdmi.h' line='45' column='1' id='c573b339'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HDMI_INFOFRAME_TYPE_VENDOR' value='129'/>
+        <enumerator name='HDMI_INFOFRAME_TYPE_AVI' value='130'/>
+        <enumerator name='HDMI_INFOFRAME_TYPE_SPD' value='131'/>
+        <enumerator name='HDMI_INFOFRAME_TYPE_AUDIO' value='132'/>
+        <enumerator name='HDMI_INFOFRAME_TYPE_DRM' value='135'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='c58b95e0'>
+        <parameter type-id='67d012a2'/>
+        <parameter type-id='48d9f490'/>
+        <parameter type-id='48d9f490'/>
+        <parameter type-id='6f383d17'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='xfrm_replay_state' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/xfrm.h' line='84' column='1' id='c59d261e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='oseq' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/xfrm.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='seq' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/xfrm.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bitmap' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/xfrm.h' line='87' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='sg_table' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/scatterlist.h' line='36' column='1' id='c59e4f4c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sgl' type-id='bf3ef905' visibility='default' filepath='include/linux/scatterlist.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nents' type-id='f0981eeb' visibility='default' filepath='include/linux/scatterlist.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='orig_nents' type-id='f0981eeb' visibility='default' filepath='include/linux/scatterlist.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='45cc51cf' size-in-bits='64' id='c5a4eb7f'/>
+      <class-decl name='snd_dma_buffer' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/sound/memalloc.h' line='52' column='1' id='c5addfb4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='724d481c' visibility='default' filepath='include/sound/memalloc.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='area' type-id='cf536864' visibility='default' filepath='include/sound/memalloc.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='addr' type-id='cf29c9b3' visibility='default' filepath='include/sound/memalloc.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='bytes' type-id='b59d7dce' visibility='default' filepath='include/sound/memalloc.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/memalloc.h' line='57' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='l2tp_tunnel_cfg' size-in-bits='320' is-struct='yes' visibility='default' filepath='net/l2tp/l2tp_core.h' line='133' column='1' id='c5b77cb3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='encap' type-id='eab21901' visibility='default' filepath='net/l2tp/l2tp_core.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='local_ip' type-id='34f03654' visibility='default' filepath='net/l2tp/l2tp_core.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='peer_ip' type-id='34f03654' visibility='default' filepath='net/l2tp/l2tp_core.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='local_ip6' type-id='ed512028' visibility='default' filepath='net/l2tp/l2tp_core.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='peer_ip6' type-id='ed512028' visibility='default' filepath='net/l2tp/l2tp_core.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='local_udp_port' type-id='1dc6a898' visibility='default' filepath='net/l2tp/l2tp_core.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='peer_udp_port' type-id='1dc6a898' visibility='default' filepath='net/l2tp/l2tp_core.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='use_udp_checksums' type-id='f0981eeb' visibility='default' filepath='net/l2tp/l2tp_core.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='289'>
+          <var-decl name='udp6_zero_tx_checksums' type-id='f0981eeb' visibility='default' filepath='net/l2tp/l2tp_core.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='290'>
+          <var-decl name='udp6_zero_rx_checksums' type-id='f0981eeb' visibility='default' filepath='net/l2tp/l2tp_core.h' line='147' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6b60ef45' size-in-bits='64' id='c5b94c75'/>
+      <pointer-type-def type-id='dec44472' size-in-bits='64' id='c5bcc2c0'/>
+      <pointer-type-def type-id='17f2d2f2' size-in-bits='64' id='c5c535b4'/>
+      <function-type size-in-bits='64' id='c5c76c9c'>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='llist_node' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/llist.h' line='58' column='1' id='c5ccfee8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='023b769e' visibility='default' filepath='include/linux/llist.h' line='59' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c2840192' size-in-bits='64' id='c5d02a37'/>
+      <pointer-type-def type-id='5312635f' size-in-bits='64' id='c5d380db'/>
+      <function-type size-in-bits='64' id='c5eb47c6'>
+        <parameter type-id='478ed79d'/>
+        <parameter type-id='745b39e8'/>
+        <return type-id='4fb62cb0'/>
+      </function-type>
+      <pointer-type-def type-id='1182d21f' size-in-bits='64' id='c5f0e96f'/>
+      <pointer-type-def type-id='3b79f40f' size-in-bits='64' id='c5fb563f'/>
+      <pointer-type-def type-id='6ed3e587' size-in-bits='64' id='c5ff416f'/>
+      <pointer-type-def type-id='7a6178ff' size-in-bits='64' id='c60354f3'/>
+      <pointer-type-def type-id='e1246d10' size-in-bits='64' id='c603ea92'/>
+      <function-type size-in-bits='64' id='c604b3e2'>
+        <parameter type-id='42c8f564'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='c6077113'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='002ac4a6'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='0dcaa1e4' size-in-bits='64' id='c60ba652'/>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='48' id='c60dc9f2'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='c611b7c0'>
+        <parameter type-id='15d29710'/>
+        <parameter type-id='e15f3242'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='ehci_regs' size-in-bits='1632' is-struct='yes' visibility='default' filepath='include/linux/usb/ehci_def.h' line='68' column='1' id='c6169fba'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='command' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci_def.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='status' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci_def.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='intr_enable' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci_def.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='frame_index' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci_def.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='segment' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci_def.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='frame_list' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci_def.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='async_next' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci_def.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='reserved1' type-id='1872161b' visibility='default' filepath='include/linux/usb/ehci_def.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='txfill_tuning' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci_def.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='reserved2' type-id='5867ed7f' visibility='default' filepath='include/linux/usb/ehci_def.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='configured_flag' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci_def.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='' type-id='ac5ab622' visibility='default' filepath='include/linux/usb/ehci_def.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='' type-id='ac5ab623' visibility='default' filepath='include/linux/usb/ehci_def.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='reserved5' type-id='1872161b' visibility='default' filepath='include/linux/usb/ehci_def.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='usbmode_ex' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci_def.h' line='200' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c619ce98'>
+        <parameter type-id='bff05edb'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='2522883d'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='3eb7c31c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='2c85e41f' size-in-bits='64' id='c61a7923'/>
+      <function-type size-in-bits='64' id='c61b4e0b'>
+        <parameter type-id='7544e824'/>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='power_supply_type' filepath='include/linux/power_supply.h' line='183' column='1' id='c61c3172'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='POWER_SUPPLY_TYPE_UNKNOWN' value='0'/>
+        <enumerator name='POWER_SUPPLY_TYPE_BATTERY' value='1'/>
+        <enumerator name='POWER_SUPPLY_TYPE_UPS' value='2'/>
+        <enumerator name='POWER_SUPPLY_TYPE_MAINS' value='3'/>
+        <enumerator name='POWER_SUPPLY_TYPE_USB' value='4'/>
+        <enumerator name='POWER_SUPPLY_TYPE_USB_DCP' value='5'/>
+        <enumerator name='POWER_SUPPLY_TYPE_USB_CDP' value='6'/>
+        <enumerator name='POWER_SUPPLY_TYPE_USB_ACA' value='7'/>
+        <enumerator name='POWER_SUPPLY_TYPE_USB_TYPE_C' value='8'/>
+        <enumerator name='POWER_SUPPLY_TYPE_USB_PD' value='9'/>
+        <enumerator name='POWER_SUPPLY_TYPE_USB_PD_DRP' value='10'/>
+        <enumerator name='POWER_SUPPLY_TYPE_APPLE_BRICK_ID' value='11'/>
+        <enumerator name='POWER_SUPPLY_TYPE_WIRELESS' value='12'/>
+      </enum-decl>
+      <pointer-type-def type-id='f3866749' size-in-bits='64' id='c61ee7a1'/>
+      <pointer-type-def type-id='1ac45f89' size-in-bits='64' id='c6228d99'/>
+      <pointer-type-def type-id='4a82abb2' size-in-bits='64' id='c62e6860'/>
+      <pointer-type-def type-id='e374f511' size-in-bits='64' id='c62ff945'/>
+      <pointer-type-def type-id='ae7d199f' size-in-bits='64' id='c63257f7'/>
+      <pointer-type-def type-id='d0d01815' size-in-bits='64' id='c637b701'/>
+      <class-decl name='drm_info_list' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/drm/drm_debugfs.h' line='43' column='1' id='c645b65c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/drm/drm_debugfs.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='show' type-id='0131eb61' visibility='default' filepath='include/drm/drm_debugfs.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='driver_features' type-id='19c2251e' visibility='default' filepath='include/drm/drm_debugfs.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/drm/drm_debugfs.h' line='57' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='22ddde2b' size-in-bits='64' id='c6485e8f'/>
+      <enum-decl name='devlink_sb_threshold_type' filepath='include/uapi/linux/devlink.h' line='164' column='1' id='c6493bfa'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEVLINK_SB_THRESHOLD_TYPE_STATIC' value='0'/>
+        <enumerator name='DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC' value='1'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='c64b743f'>
+        <parameter type-id='898c1076'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='692fa8cc' size-in-bits='64' id='c64e62ba'/>
+      <class-decl name='list_lru' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/list_lru.h' line='52' column='1' id='c653aac7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='a6d2fa52' visibility='default' filepath='include/linux/list_lru.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/list_lru.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='shrinker_id' type-id='95e97e5e' visibility='default' filepath='include/linux/list_lru.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='memcg_aware' type-id='b50a4934' visibility='default' filepath='include/linux/list_lru.h' line='57' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='fs_param_type' type-id='d425ee50' filepath='include/linux/fs_parser.h' line='22' column='1' id='c654dff2'/>
+      <function-type size-in-bits='64' id='c655c7b7'>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='e18defdb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='c657e2b9'>
+        <parameter type-id='7efbcaaf'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='nvmem_keepout' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/nvmem-provider.h' line='41' column='1' id='c657f8be'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='f0981eeb' visibility='default' filepath='include/linux/nvmem-provider.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='end' type-id='f0981eeb' visibility='default' filepath='include/linux/nvmem-provider.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='value' type-id='002ac4a6' visibility='default' filepath='include/linux/nvmem-provider.h' line='44' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fa5149d8' size-in-bits='64' id='c65c1382'/>
+      <function-type size-in-bits='64' id='c66117cc'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='0bb81b50'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='blk_bounce' filepath='include/linux/blkdev.h' line='299' column='1' id='c663ed28'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='BLK_BOUNCE_NONE' value='0'/>
+        <enumerator name='BLK_BOUNCE_HIGH' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='279bdcdf' size-in-bits='64' id='c6675287'/>
+      <function-type size-in-bits='64' id='c66ae1d7'>
+        <parameter type-id='9d57e433'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='dc5fa7f0' size-in-bits='64' id='c66f5ec5'/>
+      <pointer-type-def type-id='3cbdebaf' size-in-bits='64' id='c67366c7'/>
+      <function-type size-in-bits='64' id='c6751b87'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='ddd0a58b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='usb_role' filepath='include/linux/usb/role.h' line='10' column='1' id='c675b073'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='USB_ROLE_NONE' value='0'/>
+        <enumerator name='USB_ROLE_HOST' value='1'/>
+        <enumerator name='USB_ROLE_DEVICE' value='2'/>
+      </enum-decl>
+      <enum-decl name='iio_event_info' filepath='include/linux/iio/types.h' line='12' column='1' id='c67c1129'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='IIO_EV_INFO_ENABLE' value='0'/>
+        <enumerator name='IIO_EV_INFO_VALUE' value='1'/>
+        <enumerator name='IIO_EV_INFO_HYSTERESIS' value='2'/>
+        <enumerator name='IIO_EV_INFO_PERIOD' value='3'/>
+        <enumerator name='IIO_EV_INFO_HIGH_PASS_FILTER_3DB' value='4'/>
+        <enumerator name='IIO_EV_INFO_LOW_PASS_FILTER_3DB' value='5'/>
+        <enumerator name='IIO_EV_INFO_TIMEOUT' value='6'/>
+      </enum-decl>
+      <class-decl name='frag_v6_compare_key' size-in-bits='352' is-struct='yes' visibility='default' filepath='include/net/inet_frag.h' line='51' column='1' id='c67e16a2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='saddr' type-id='f6ed712a' visibility='default' filepath='include/net/inet_frag.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='daddr' type-id='f6ed712a' visibility='default' filepath='include/net/inet_frag.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='user' type-id='19c2251e' visibility='default' filepath='include/net/inet_frag.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='id' type-id='78a133c2' visibility='default' filepath='include/net/inet_frag.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='iif' type-id='19c2251e' visibility='default' filepath='include/net/inet_frag.h' line='56' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='iommu_device' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/iommu.h' line='341' column='1' id='c67e920d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/iommu.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ops' type-id='f1ac64d0' visibility='default' filepath='include/linux/iommu.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fwnode' type-id='4a935625' visibility='default' filepath='include/linux/iommu.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/iommu.h' line='345' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='cec_log_addrs' size-in-bits='736' is-struct='yes' visibility='default' filepath='include/uapi/linux/cec.h' line='357' column='1' id='c6954120'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='log_addr' type-id='c213d3d4' visibility='default' filepath='include/uapi/linux/cec.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='log_addr_mask' type-id='d315442e' visibility='default' filepath='include/uapi/linux/cec.h' line='359' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='cec_version' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/cec.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='num_log_addrs' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/cec.h' line='361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='vendor_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/cec.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/cec.h' line='363' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='osd_name' type-id='ec17bebb' visibility='default' filepath='include/uapi/linux/cec.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='248'>
+          <var-decl name='primary_device_type' type-id='c213d3d4' visibility='default' filepath='include/uapi/linux/cec.h' line='365' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='280'>
+          <var-decl name='log_addr_type' type-id='c213d3d4' visibility='default' filepath='include/uapi/linux/cec.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='312'>
+          <var-decl name='all_device_types' type-id='c213d3d4' visibility='default' filepath='include/uapi/linux/cec.h' line='369' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='344'>
+          <var-decl name='features' type-id='c9f5704d' visibility='default' filepath='include/uapi/linux/cec.h' line='370' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='tcpm_state' filepath='drivers/usb/typec/tcpm/tcpm.c' line='188' column='1' id='c698cee4'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='INVALID_STATE' value='0'/>
+        <enumerator name='TOGGLING' value='1'/>
+        <enumerator name='SRC_UNATTACHED' value='2'/>
+        <enumerator name='SRC_ATTACH_WAIT' value='3'/>
+        <enumerator name='SRC_ATTACHED' value='4'/>
+        <enumerator name='SRC_STARTUP' value='5'/>
+        <enumerator name='SRC_SEND_CAPABILITIES' value='6'/>
+        <enumerator name='SRC_SEND_CAPABILITIES_TIMEOUT' value='7'/>
+        <enumerator name='SRC_NEGOTIATE_CAPABILITIES' value='8'/>
+        <enumerator name='SRC_TRANSITION_SUPPLY' value='9'/>
+        <enumerator name='SRC_READY' value='10'/>
+        <enumerator name='SRC_WAIT_NEW_CAPABILITIES' value='11'/>
+        <enumerator name='SNK_UNATTACHED' value='12'/>
+        <enumerator name='SNK_ATTACH_WAIT' value='13'/>
+        <enumerator name='SNK_DEBOUNCED' value='14'/>
+        <enumerator name='SNK_ATTACHED' value='15'/>
+        <enumerator name='SNK_STARTUP' value='16'/>
+        <enumerator name='SNK_DISCOVERY' value='17'/>
+        <enumerator name='SNK_DISCOVERY_DEBOUNCE' value='18'/>
+        <enumerator name='SNK_DISCOVERY_DEBOUNCE_DONE' value='19'/>
+        <enumerator name='SNK_WAIT_CAPABILITIES' value='20'/>
+        <enumerator name='SNK_NEGOTIATE_CAPABILITIES' value='21'/>
+        <enumerator name='SNK_NEGOTIATE_PPS_CAPABILITIES' value='22'/>
+        <enumerator name='SNK_TRANSITION_SINK' value='23'/>
+        <enumerator name='SNK_TRANSITION_SINK_VBUS' value='24'/>
+        <enumerator name='SNK_READY' value='25'/>
+        <enumerator name='ACC_UNATTACHED' value='26'/>
+        <enumerator name='DEBUG_ACC_ATTACHED' value='27'/>
+        <enumerator name='AUDIO_ACC_ATTACHED' value='28'/>
+        <enumerator name='AUDIO_ACC_DEBOUNCE' value='29'/>
+        <enumerator name='HARD_RESET_SEND' value='30'/>
+        <enumerator name='HARD_RESET_START' value='31'/>
+        <enumerator name='SRC_HARD_RESET_VBUS_OFF' value='32'/>
+        <enumerator name='SRC_HARD_RESET_VBUS_ON' value='33'/>
+        <enumerator name='SNK_HARD_RESET_SINK_OFF' value='34'/>
+        <enumerator name='SNK_HARD_RESET_WAIT_VBUS' value='35'/>
+        <enumerator name='SNK_HARD_RESET_SINK_ON' value='36'/>
+        <enumerator name='SOFT_RESET' value='37'/>
+        <enumerator name='SRC_SOFT_RESET_WAIT_SNK_TX' value='38'/>
+        <enumerator name='SNK_SOFT_RESET' value='39'/>
+        <enumerator name='SOFT_RESET_SEND' value='40'/>
+        <enumerator name='DR_SWAP_ACCEPT' value='41'/>
+        <enumerator name='DR_SWAP_SEND' value='42'/>
+        <enumerator name='DR_SWAP_SEND_TIMEOUT' value='43'/>
+        <enumerator name='DR_SWAP_CANCEL' value='44'/>
+        <enumerator name='DR_SWAP_CHANGE_DR' value='45'/>
+        <enumerator name='PR_SWAP_ACCEPT' value='46'/>
+        <enumerator name='PR_SWAP_SEND' value='47'/>
+        <enumerator name='PR_SWAP_SEND_TIMEOUT' value='48'/>
+        <enumerator name='PR_SWAP_CANCEL' value='49'/>
+        <enumerator name='PR_SWAP_START' value='50'/>
+        <enumerator name='PR_SWAP_SRC_SNK_TRANSITION_OFF' value='51'/>
+        <enumerator name='PR_SWAP_SRC_SNK_SOURCE_OFF' value='52'/>
+        <enumerator name='PR_SWAP_SRC_SNK_SOURCE_OFF_CC_DEBOUNCED' value='53'/>
+        <enumerator name='PR_SWAP_SRC_SNK_SINK_ON' value='54'/>
+        <enumerator name='PR_SWAP_SNK_SRC_SINK_OFF' value='55'/>
+        <enumerator name='PR_SWAP_SNK_SRC_SOURCE_ON' value='56'/>
+        <enumerator name='PR_SWAP_SNK_SRC_SOURCE_ON_VBUS_RAMPED_UP' value='57'/>
+        <enumerator name='VCONN_SWAP_ACCEPT' value='58'/>
+        <enumerator name='VCONN_SWAP_SEND' value='59'/>
+        <enumerator name='VCONN_SWAP_SEND_TIMEOUT' value='60'/>
+        <enumerator name='VCONN_SWAP_CANCEL' value='61'/>
+        <enumerator name='VCONN_SWAP_START' value='62'/>
+        <enumerator name='VCONN_SWAP_WAIT_FOR_VCONN' value='63'/>
+        <enumerator name='VCONN_SWAP_TURN_ON_VCONN' value='64'/>
+        <enumerator name='VCONN_SWAP_TURN_OFF_VCONN' value='65'/>
+        <enumerator name='FR_SWAP_SEND' value='66'/>
+        <enumerator name='FR_SWAP_SEND_TIMEOUT' value='67'/>
+        <enumerator name='FR_SWAP_SNK_SRC_TRANSITION_TO_OFF' value='68'/>
+        <enumerator name='FR_SWAP_SNK_SRC_NEW_SINK_READY' value='69'/>
+        <enumerator name='FR_SWAP_SNK_SRC_SOURCE_VBUS_APPLIED' value='70'/>
+        <enumerator name='FR_SWAP_CANCEL' value='71'/>
+        <enumerator name='SNK_TRY' value='72'/>
+        <enumerator name='SNK_TRY_WAIT' value='73'/>
+        <enumerator name='SNK_TRY_WAIT_DEBOUNCE' value='74'/>
+        <enumerator name='SNK_TRY_WAIT_DEBOUNCE_CHECK_VBUS' value='75'/>
+        <enumerator name='SRC_TRYWAIT' value='76'/>
+        <enumerator name='SRC_TRYWAIT_DEBOUNCE' value='77'/>
+        <enumerator name='SRC_TRYWAIT_UNATTACHED' value='78'/>
+        <enumerator name='SRC_TRY' value='79'/>
+        <enumerator name='SRC_TRY_WAIT' value='80'/>
+        <enumerator name='SRC_TRY_DEBOUNCE' value='81'/>
+        <enumerator name='SNK_TRYWAIT' value='82'/>
+        <enumerator name='SNK_TRYWAIT_DEBOUNCE' value='83'/>
+        <enumerator name='SNK_TRYWAIT_VBUS' value='84'/>
+        <enumerator name='BIST_RX' value='85'/>
+        <enumerator name='GET_STATUS_SEND' value='86'/>
+        <enumerator name='GET_STATUS_SEND_TIMEOUT' value='87'/>
+        <enumerator name='GET_PPS_STATUS_SEND' value='88'/>
+        <enumerator name='GET_PPS_STATUS_SEND_TIMEOUT' value='89'/>
+        <enumerator name='GET_SINK_CAP' value='90'/>
+        <enumerator name='GET_SINK_CAP_TIMEOUT' value='91'/>
+        <enumerator name='ERROR_RECOVERY' value='92'/>
+        <enumerator name='PORT_RESET' value='93'/>
+        <enumerator name='PORT_RESET_WAIT_OFF' value='94'/>
+        <enumerator name='AMS_START' value='95'/>
+        <enumerator name='CHUNK_NOT_SUPP' value='96'/>
+      </enum-decl>
+      <qualified-type-def type-id='9a46627e' const='yes' id='c69a48a7'/>
+      <pointer-type-def type-id='e7d2a5fc' size-in-bits='64' id='c69b0fe2'/>
+      <array-type-def dimensions='1' type-id='d616df2b' size-in-bits='16320' id='c69c228b'>
+        <subrange length='255' type-id='7ff19f0f' id='36e7f891'/>
+      </array-type-def>
+      <class-decl name='drm_dsc_rc_range_parameters' size-in-bits='24' is-struct='yes' visibility='default' filepath='include/drm/drm_dsc.h' line='53' column='1' id='c6a1f4c6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='range_min_qp' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='range_max_qp' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='range_bpg_offset' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dsc.h' line='66' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8230f98b' size-in-bits='64' id='c6a521af'/>
+      <function-type size-in-bits='64' id='c6ac2bb1'>
+        <parameter type-id='36cb26c7'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='e07e9784' const='yes' id='c6b3a279'/>
+      <pointer-type-def type-id='0834640b' size-in-bits='64' id='c6b7d75f'/>
+      <function-type size-in-bits='64' id='c6c057c3'>
+        <parameter type-id='ecb0ce18'/>
+        <return type-id='91ce1af9'/>
+      </function-type>
+      <pointer-type-def type-id='471e0fee' size-in-bits='64' id='c6c44b98'/>
+      <pointer-type-def type-id='edb008f7' size-in-bits='64' id='c6c44b9f'/>
+      <pointer-type-def type-id='757da1f8' size-in-bits='64' id='c6c5bd96'/>
+      <class-decl name='usb_ss_cap_descriptor' size-in-bits='80' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='917' column='1' id='c6cecc55'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='918' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='919' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bDevCapabilityType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='920' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bmAttributes' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='921' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='wSpeedSupported' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='923' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='bFunctionalitySupport' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='928' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='bU1devExitLat' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='929' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bU2DevExitLat' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='930' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='379ef9aa' size-in-bits='64' id='c6db53f8'/>
+      <pointer-type-def type-id='6ab964d2' size-in-bits='64' id='c6e1b58c'/>
+      <array-type-def dimensions='1' type-id='0888126c' size-in-bits='64' id='c6e3c250'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <class-decl name='ifmap' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/if.h' line='196' column='1' id='c6fb2ff8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mem_start' type-id='7359adad' visibility='default' filepath='include/uapi/linux/if.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mem_end' type-id='7359adad' visibility='default' filepath='include/uapi/linux/if.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='base_addr' type-id='8efea9e5' visibility='default' filepath='include/uapi/linux/if.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='irq' type-id='002ac4a6' visibility='default' filepath='include/uapi/linux/if.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='dma' type-id='002ac4a6' visibility='default' filepath='include/uapi/linux/if.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='port' type-id='002ac4a6' visibility='default' filepath='include/uapi/linux/if.h' line='202' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='59f9f35d' const='yes' id='c6fb334e'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/siphash.h' line='20' column='1' id='c6fb4d48' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='key' type-id='24a375b2' visibility='default' filepath='include/linux/siphash.h' line='21' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1d6a61e0' size-in-bits='64' id='c7076d1a'/>
+      <function-type size-in-bits='64' id='c70cf626'>
+        <parameter type-id='49a58c0c'/>
+        <parameter type-id='5b4bef1f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='fee334bf' size-in-bits='64' id='c71b901b'/>
+      <function-type size-in-bits='64' id='c7253970'>
+        <parameter type-id='404b1300'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='78de7510' size-in-bits='64' id='c72645fa'/>
+      <function-type size-in-bits='64' id='c72b9bdc'>
+        <parameter type-id='0e23c133'/>
+        <return type-id='3e99d2ab'/>
+      </function-type>
+      <function-type size-in-bits='64' id='c731dd47'>
+        <return type-id='f57039f0'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='aa80c027' size-in-bits='256' id='c73a16a3'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='c740a74f'>
+        <parameter type-id='aff725d5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='xhci_generic_trb' size-in-bits='128' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1351' column='1' id='c74233fc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='field' type-id='a36b3301' visibility='default' filepath='drivers/usb/host/xhci.h' line='1352' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e9ec35ef' size-in-bits='64' id='c7432356'/>
+      <pointer-type-def type-id='91dc7ea3' size-in-bits='64' id='c748f227'/>
+      <qualified-type-def type-id='a1700eb5' const='yes' id='c7516f02'/>
+      <function-type size-in-bits='64' id='c756879f'>
+        <parameter type-id='666fb412'/>
+        <parameter type-id='63c7e8e1'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='bpf_prog_array' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='1198' column='1' id='c75c7b06'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/bpf.h' line='1199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='items' type-id='3f814540' visibility='default' filepath='include/linux/bpf.h' line='1200' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c763c2ea'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='c28fe484'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7d20a6e7' size-in-bits='64' id='c76694b7'/>
+      <array-type-def dimensions='1' type-id='b96825af' size-in-bits='1024' id='c768f32d'>
+        <subrange length='128' type-id='7ff19f0f' id='1eb1687a'/>
+      </array-type-def>
+      <class-decl name='fib_kuid_range' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/fib_rules.h' line='15' column='1' id='c76a5484'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='d80b72e6' visibility='default' filepath='include/net/fib_rules.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='end' type-id='d80b72e6' visibility='default' filepath='include/net/fib_rules.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c76bfb3a'>
+        <parameter type-id='7efbcaaf'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='5e9a41e1' size-in-bits='64' id='c777e389'/>
+      <pointer-type-def type-id='5081ed08' size-in-bits='64' id='c77a71ce'/>
+      <pointer-type-def type-id='24ada124' size-in-bits='64' id='c786c422'/>
+      <function-type size-in-bits='64' id='c7873973'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='13103032'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='c78b7721'>
+        <parameter type-id='b64ad7cb'/>
+        <return type-id='19c2251e'/>
+      </function-type>
+      <enum-decl name='nl802154_supported_bool_states' filepath='include/net/nl802154.h' line='274' column='1' id='c78c6f33'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NL802154_SUPPORTED_BOOL_FALSE' value='0'/>
+        <enumerator name='NL802154_SUPPORTED_BOOL_TRUE' value='1'/>
+        <enumerator name='__NL802154_SUPPORTED_BOOL_INVALD' value='2'/>
+        <enumerator name='NL802154_SUPPORTED_BOOL_BOTH' value='3'/>
+        <enumerator name='__NL802154_SUPPORTED_BOOL_AFTER_LAST' value='4'/>
+        <enumerator name='NL802154_SUPPORTED_BOOL_MAX' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='b9b792e2' size-in-bits='64' id='c78f98c0'/>
+      <pointer-type-def type-id='40d98f1e' size-in-bits='64' id='c793cb80'/>
+      <pointer-type-def type-id='a7132e26' size-in-bits='64' id='c7990768'/>
+      <pointer-type-def type-id='1e6236d9' size-in-bits='64' id='c79c8089'/>
+      <pointer-type-def type-id='45660d72' size-in-bits='64' id='c79c9f4c'/>
+      <pointer-type-def type-id='fb6b0a12' size-in-bits='64' id='c79d9b20'/>
+      <class-decl name='tc_sizespec' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/pkt_sched.h' line='102' column='1' id='c7a2cf9f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cell_log' type-id='002ac4a6' visibility='default' filepath='include/uapi/linux/pkt_sched.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='size_log' type-id='002ac4a6' visibility='default' filepath='include/uapi/linux/pkt_sched.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='cell_align' type-id='a2185560' visibility='default' filepath='include/uapi/linux/pkt_sched.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='overhead' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/pkt_sched.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='linklayer' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/pkt_sched.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='mpu' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/pkt_sched.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mtu' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/pkt_sched.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='tsize' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/pkt_sched.h' line='110' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='icmpv6_mib' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/net/snmp.h' line='71' column='1' id='c7afdfb7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mibs' type-id='f0691bd3' visibility='default' filepath='include/net/snmp.h' line='72' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='nd_region' size-in-bits='9408' is-struct='yes' visibility='default' filepath='drivers/nvdimm/nd.h' line='288' column='1' id='c7bd5f5c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='drivers/nvdimm/nd.h' line='289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='ns_ida' type-id='46ce60fb' visibility='default' filepath='drivers/nvdimm/nd.h' line='290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='btt_ida' type-id='46ce60fb' visibility='default' filepath='drivers/nvdimm/nd.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='pfn_ida' type-id='46ce60fb' visibility='default' filepath='drivers/nvdimm/nd.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='dax_ida' type-id='46ce60fb' visibility='default' filepath='drivers/nvdimm/nd.h' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='drivers/nvdimm/nd.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='ns_seed' type-id='fa0b179b' visibility='default' filepath='drivers/nvdimm/nd.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='btt_seed' type-id='fa0b179b' visibility='default' filepath='drivers/nvdimm/nd.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='pfn_seed' type-id='fa0b179b' visibility='default' filepath='drivers/nvdimm/nd.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='dax_seed' type-id='fa0b179b' visibility='default' filepath='drivers/nvdimm/nd.h' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='align' type-id='7359adad' visibility='default' filepath='drivers/nvdimm/nd.h' line='299' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='ndr_mappings' type-id='1dc6a898' visibility='default' filepath='drivers/nvdimm/nd.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='ndr_size' type-id='91ce1af9' visibility='default' filepath='drivers/nvdimm/nd.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='ndr_start' type-id='91ce1af9' visibility='default' filepath='drivers/nvdimm/nd.h' line='302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8384'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='drivers/nvdimm/nd.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8416'>
+          <var-decl name='num_lanes' type-id='95e97e5e' visibility='default' filepath='drivers/nvdimm/nd.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8448'>
+          <var-decl name='ro' type-id='95e97e5e' visibility='default' filepath='drivers/nvdimm/nd.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8480'>
+          <var-decl name='numa_node' type-id='95e97e5e' visibility='default' filepath='drivers/nvdimm/nd.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='target_node' type-id='95e97e5e' visibility='default' filepath='drivers/nvdimm/nd.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8576'>
+          <var-decl name='provider_data' type-id='eaa32e2f' visibility='default' filepath='drivers/nvdimm/nd.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='bb_state' type-id='150efd3f' visibility='default' filepath='drivers/nvdimm/nd.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='bb' type-id='cacf0f56' visibility='default' filepath='drivers/nvdimm/nd.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9216'>
+          <var-decl name='nd_set' type-id='90e3bb60' visibility='default' filepath='drivers/nvdimm/nd.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9280'>
+          <var-decl name='lane' type-id='82683cec' visibility='default' filepath='drivers/nvdimm/nd.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='flush' type-id='e8c1d90e' visibility='default' filepath='drivers/nvdimm/nd.h' line='309' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9408'>
+          <var-decl name='mapping' type-id='566debc6' visibility='default' filepath='drivers/nvdimm/nd.h' line='310' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='af1a3b3d' size-in-bits='64' id='c7c94ce1'/>
+      <enum-decl name='devlink_eswitch_encap_mode' filepath='include/uapi/linux/devlink.h' line='183' column='1' id='c7cd67fd'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEVLINK_ESWITCH_ENCAP_MODE_NONE' value='0'/>
+        <enumerator name='DEVLINK_ESWITCH_ENCAP_MODE_BASIC' value='1'/>
+      </enum-decl>
+      <typedef-decl name='kretprobe_handler_t' type-id='179fe983' filepath='include/linux/kprobes.h' line='57' column='1' id='c7d0fc7e'/>
+      <class-decl name='readahead_control' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/pagemap.h' line='784' column='1' id='c7d5925c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='file' type-id='77e79a4b' visibility='default' filepath='include/linux/pagemap.h' line='785' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mapping' type-id='f57039f0' visibility='default' filepath='include/linux/pagemap.h' line='786' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ra' type-id='66ec8db7' visibility='default' filepath='include/linux/pagemap.h' line='787' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='_index' type-id='7359adad' visibility='default' filepath='include/linux/pagemap.h' line='789' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='_nr_pages' type-id='f0981eeb' visibility='default' filepath='include/linux/pagemap.h' line='790' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='_batch_count' type-id='f0981eeb' visibility='default' filepath='include/linux/pagemap.h' line='791' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c7da7875'>
+        <parameter type-id='80f4b756'/>
+        <return type-id='92daca01'/>
+      </function-type>
+      <function-type size-in-bits='64' id='c7e57ee7'>
+        <parameter type-id='e84b031a'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='b9419dc5' size-in-bits='128' id='c7e7059f'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='7a8b9f02' size-in-bits='64' id='c7ea70e0'/>
+      <class-decl name='radix_tree_iter' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/radix-tree.h' line='104' column='1' id='c7ead0f9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='7359adad' visibility='default' filepath='include/linux/radix-tree.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='next_index' type-id='7359adad' visibility='default' filepath='include/linux/radix-tree.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tags' type-id='7359adad' visibility='default' filepath='include/linux/radix-tree.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='node' type-id='83f45767' visibility='default' filepath='include/linux/radix-tree.h' line='108' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e9630e15' size-in-bits='64' id='c7ee6915'/>
+      <pointer-type-def type-id='9eea6bb5' size-in-bits='64' id='c7f8de51'/>
+      <pointer-type-def type-id='aa99b0ae' size-in-bits='64' id='c805a6f8'/>
+      <pointer-type-def type-id='4294b6d2' size-in-bits='64' id='c81c0868'/>
+      <qualified-type-def type-id='c86a8a16' const='yes' id='c81d9871'/>
+      <pointer-type-def type-id='0c98f83d' size-in-bits='64' id='c82424f9'/>
+      <pointer-type-def type-id='18d76f87' size-in-bits='64' id='c824cd57'/>
+      <function-type size-in-bits='64' id='c83cb72c'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='key_serial_t' type-id='3ff5601b' filepath='include/linux/key.h' line='28' column='1' id='c84025ab'/>
+      <pointer-type-def type-id='21f3c22e' size-in-bits='64' id='c8439540'/>
+      <pointer-type-def type-id='b7cdd2f8' size-in-bits='64' id='c858233f'/>
+      <pointer-type-def type-id='1b343ea9' size-in-bits='64' id='c859c465'/>
+      <function-type size-in-bits='64' id='c85b8434'>
+        <parameter type-id='ff47b24b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='1dc6a898'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='c85f87a7'>
+        <parameter type-id='343c3ae4'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <class-decl name='ipv6_stub' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/net/ipv6_stubs.h' line='22' column='1' id='c8604f6d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ipv6_sock_mc_join' type-id='c32a771c' visibility='default' filepath='include/net/ipv6_stubs.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ipv6_sock_mc_drop' type-id='c32a771c' visibility='default' filepath='include/net/ipv6_stubs.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ipv6_dst_lookup_flow' type-id='086f0793' visibility='default' filepath='include/net/ipv6_stubs.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ipv6_route_input' type-id='d2e00785' visibility='default' filepath='include/net/ipv6_stubs.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='fib6_get_table' type-id='b20461b2' visibility='default' filepath='include/net/ipv6_stubs.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='fib6_lookup' type-id='c55a94d8' visibility='default' filepath='include/net/ipv6_stubs.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='fib6_table_lookup' type-id='a2080366' visibility='default' filepath='include/net/ipv6_stubs.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='fib6_select_path' type-id='3ab80864' visibility='default' filepath='include/net/ipv6_stubs.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ip6_mtu_from_fib6' type-id='12c8496b' visibility='default' filepath='include/net/ipv6_stubs.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='fib6_nh_init' type-id='e7b2a002' visibility='default' filepath='include/net/ipv6_stubs.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='fib6_nh_release' type-id='a9a56bda' visibility='default' filepath='include/net/ipv6_stubs.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='fib6_nh_release_dsts' type-id='a9a56bda' visibility='default' filepath='include/net/ipv6_stubs.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='fib6_update_sernum' type-id='d3c46d8b' visibility='default' filepath='include/net/ipv6_stubs.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='ip6_del_rt' type-id='6cc0a1fb' visibility='default' filepath='include/net/ipv6_stubs.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='fib6_rt_update' type-id='cc5174c8' visibility='default' filepath='include/net/ipv6_stubs.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='udpv6_encap_enable' type-id='953b12f8' visibility='default' filepath='include/net/ipv6_stubs.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='ndisc_send_na' type-id='e9803536' visibility='default' filepath='include/net/ipv6_stubs.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='xfrm6_local_rxpmtu' type-id='e4b24123' visibility='default' filepath='include/net/ipv6_stubs.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='xfrm6_udp_encap_rcv' type-id='a0f5247f' visibility='default' filepath='include/net/ipv6_stubs.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='xfrm6_rcv_encap' type-id='ec71052e' visibility='default' filepath='include/net/ipv6_stubs.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='nd_tbl' type-id='6bbe39a7' visibility='default' filepath='include/net/ipv6_stubs.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='ipv6_fragment' type-id='3bd39365' visibility='default' filepath='include/net/ipv6_stubs.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='ipv6_dev_find' type-id='ed919b57' visibility='default' filepath='include/net/ipv6_stubs.h' line='70' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='vb2_memory' filepath='include/media/videobuf2-core.h' line='40' column='1' id='c861c904'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='VB2_MEMORY_UNKNOWN' value='0'/>
+        <enumerator name='VB2_MEMORY_MMAP' value='1'/>
+        <enumerator name='VB2_MEMORY_USERPTR' value='2'/>
+        <enumerator name='VB2_MEMORY_DMABUF' value='4'/>
+      </enum-decl>
+      <class-decl name='xhci_erst' size-in-bits='320' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1660' column='1' id='c86369aa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='entries' type-id='78faece1' visibility='default' filepath='drivers/usb/host/xhci.h' line='1661' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_entries' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1662' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='erst_dma_addr' type-id='cf29c9b3' visibility='default' filepath='drivers/usb/host/xhci.h' line='1664' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='erst_size' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1666' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/usb/host/xhci.h' line='1668' 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='109' column='1' id='c8685ef0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='target_kn' type-id='150efd3f' visibility='default' filepath='include/linux/kernfs.h' line='110' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='wiphy_iftype_akm_suites' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5403' column='1' id='c86a8a16'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='iftypes_mask' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='akm_suites' type-id='aded214c' visibility='default' filepath='include/net/cfg80211.h' line='5405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='n_akm_suites' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5406' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6a1ac39a' size-in-bits='64' id='c86d3d8c'/>
+      <enum-decl name='hdmi_colorspace' filepath='include/linux/hdmi.h' line='71' column='1' id='c86f38e4'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HDMI_COLORSPACE_RGB' value='0'/>
+        <enumerator name='HDMI_COLORSPACE_YUV422' value='1'/>
+        <enumerator name='HDMI_COLORSPACE_YUV444' value='2'/>
+        <enumerator name='HDMI_COLORSPACE_YUV420' value='3'/>
+        <enumerator name='HDMI_COLORSPACE_RESERVED4' value='4'/>
+        <enumerator name='HDMI_COLORSPACE_RESERVED5' value='5'/>
+        <enumerator name='HDMI_COLORSPACE_RESERVED6' value='6'/>
+        <enumerator name='HDMI_COLORSPACE_IDO_DEFINED' value='7'/>
+      </enum-decl>
+      <pointer-type-def type-id='28e309d8' size-in-bits='64' id='c872b38e'/>
+      <function-type size-in-bits='64' id='c87333bf'>
+        <parameter type-id='13103032'/>
+        <parameter type-id='b53e8dbb'/>
+        <parameter type-id='15d29710'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <typedef-decl name='ndctl_fn' type-id='b4da87d9' filepath='include/linux/libnvdimm.h' line='72' column='1' id='c87493cc'/>
+      <pointer-type-def type-id='54406315' size-in-bits='64' id='c876a7a5'/>
+      <typedef-decl name='Elf64_Xword' type-id='d3130597' filepath='include/uapi/linux/elf.h' line='22' column='1' id='c87c44e4'/>
+      <pointer-type-def type-id='efc29a3e' size-in-bits='64' id='c881e0a0'/>
+      <pointer-type-def type-id='04e455f8' size-in-bits='64' id='c8851b4e'/>
+      <function-type size-in-bits='64' id='c8915c86'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='84a5c3d4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='c89340f8'>
+        <parameter type-id='2567e379'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='bd54fe1a'/>
+        <parameter type-id='b53e8dbb'/>
+        <return type-id='bd54fe1a'/>
+      </function-type>
+      <type-decl name='bool' size-in-bits='8' id='c894953d'/>
+      <function-type size-in-bits='64' id='c89dc0a4'>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='9f763fd8'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='0651f1ee' size-in-bits='64' id='c8acc294'/>
+      <class-decl name='i2c_device_identity' size-in-bits='48' is-struct='yes' visibility='default' filepath='include/linux/i2c.h' line='199' column='1' id='c8c25625'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='manufacturer_id' type-id='1dc6a898' visibility='default' filepath='include/linux/i2c.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='part_id' type-id='1dc6a898' visibility='default' filepath='include/linux/i2c.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='die_revision' type-id='f9b06939' visibility='default' filepath='include/linux/i2c.h' line='217' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ethtool_stats' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='804' column='1' id='c8d63c6e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='805' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='n_stats' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='806' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='52cd3f2c' visibility='default' filepath='include/uapi/linux/ethtool.h' line='807' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c8df6a78'>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='403b94d1' size-in-bits='64' id='c8e0f54d'/>
+      <qualified-type-def type-id='5f5aa1ff' const='yes' id='c8e0fb8e'/>
+      <pointer-type-def type-id='b4dce158' size-in-bits='64' id='c8e4e392'/>
+      <class-decl name='mmc_command' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/mmc/core.h' line='26' column='1' id='c8e8a836'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='opcode' type-id='19c2251e' visibility='default' filepath='include/linux/mmc/core.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='arg' type-id='19c2251e' visibility='default' filepath='include/linux/mmc/core.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='resp' type-id='1c6c0c39' visibility='default' filepath='include/linux/mmc/core.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/core.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='retries' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/core.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='error' type-id='95e97e5e' visibility='default' filepath='include/linux/mmc/core.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='busy_timeout' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/core.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='data' type-id='6de64ec1' visibility='default' filepath='include/linux/mmc/core.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='mrq' type-id='47f117d4' visibility='default' filepath='include/linux/mmc/core.h' line='111' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='wq_flusher' size-in-bits='448' is-struct='yes' visibility='default' filepath='kernel/workqueue.c' line='248' column='1' id='c8eb0f4f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='kernel/workqueue.c' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flush_color' type-id='95e97e5e' visibility='default' filepath='kernel/workqueue.c' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='done' type-id='f9fef04f' visibility='default' filepath='kernel/workqueue.c' line='251' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6aebc4a7' size-in-bits='64' id='c8f5869f'/>
+      <pointer-type-def type-id='0331c4d6' size-in-bits='64' id='c8f8b049'/>
+      <pointer-type-def type-id='49c81889' size-in-bits='64' id='c8fec899'/>
+      <function-type size-in-bits='64' id='c8ffa4a2'>
+        <parameter type-id='3213e875'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='b845c891' size-in-bits='64' id='c9042c89'/>
+      <function-type size-in-bits='64' id='c90a6da1'>
+        <parameter type-id='bff05edb'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='2522883d'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='3eb7c31c'/>
+        <parameter type-id='78c01427'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='nf_sctp_net' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/netns/conntrack.h' line='61' column='1' id='c91839d0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='timeouts' type-id='67c1c82c' visibility='default' filepath='include/net/netns/conntrack.h' line='62' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='devfreq_dev_profile' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/devfreq.h' line='106' column='1' id='c9196d18'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='initial_freq' type-id='7359adad' visibility='default' filepath='include/linux/devfreq.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='polling_ms' type-id='f0981eeb' visibility='default' filepath='include/linux/devfreq.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='timer' type-id='aae27aa3' visibility='default' filepath='include/linux/devfreq.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='is_cooling_device' type-id='b50a4934' visibility='default' filepath='include/linux/devfreq.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='target' type-id='70283254' visibility='default' filepath='include/linux/devfreq.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='get_dev_status' type-id='676fff47' visibility='default' filepath='include/linux/devfreq.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='get_cur_freq' type-id='0e18d3fd' visibility='default' filepath='include/linux/devfreq.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='exit' type-id='dd787f72' visibility='default' filepath='include/linux/devfreq.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='freq_table' type-id='1d2c2b85' visibility='default' filepath='include/linux/devfreq.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='max_state' type-id='f0981eeb' visibility='default' filepath='include/linux/devfreq.h' line='119' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a7fa16d9' size-in-bits='64' id='c91d1bf1'/>
+      <pointer-type-def type-id='4ccdd8a9' size-in-bits='64' id='c91d6c11'/>
+      <pointer-type-def type-id='33ca674b' size-in-bits='64' id='c9214b77'/>
+      <pointer-type-def type-id='8a8d1c87' size-in-bits='64' id='c9242457'/>
+      <function-type size-in-bits='64' id='c930922b'>
+        <parameter type-id='95316552'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='c9315117'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='39a488a2'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='d30cc3b8' size-in-bits='576' id='c93659c6'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='c9365c7b'>
+        <parameter type-id='2567e379'/>
+        <parameter type-id='9ba8bea7'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='6c9a7f66' size-in-bits='64' id='c9414b9c'/>
+      <pointer-type-def type-id='4add39c5' size-in-bits='64' id='c942333d'/>
+      <pointer-type-def type-id='a4426e66' size-in-bits='64' id='c94d353c'/>
+      <pointer-type-def type-id='b16db39f' size-in-bits='64' id='c94f6b13'/>
+      <pointer-type-def type-id='1c62d4d4' size-in-bits='64' id='c95d5016'/>
+      <function-type size-in-bits='64' id='c95d9034'>
+        <parameter type-id='11e11a61'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='5c39fc92'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='64604191' size-in-bits='64' id='c95d966d'/>
+      <pointer-type-def type-id='3243417f' size-in-bits='64' id='c965bc43'/>
+      <class-decl name='nd_opt_hdr' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/net/ndisc.h' line='105' column='1' id='c966252c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nd_opt_type' type-id='8f048e17' visibility='default' filepath='include/net/ndisc.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='nd_opt_len' type-id='8f048e17' visibility='default' filepath='include/net/ndisc.h' line='107' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a6ad86be' size-in-bits='64' id='c9664af8'/>
+      <pointer-type-def type-id='85b51308' size-in-bits='64' id='c967fe0a'/>
+      <qualified-type-def type-id='e67a5dc2' const='yes' id='c968032b'/>
+      <class-decl name='virtio_vsock_hdr' size-in-bits='352' is-struct='yes' visibility='default' filepath='include/uapi/linux/virtio_vsock.h' line='56' column='1' id='c96be70a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='src_cid' type-id='a30e8d1f' visibility='default' filepath='include/uapi/linux/virtio_vsock.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dst_cid' type-id='a30e8d1f' visibility='default' filepath='include/uapi/linux/virtio_vsock.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='src_port' type-id='2f162548' visibility='default' filepath='include/uapi/linux/virtio_vsock.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='dst_port' type-id='2f162548' visibility='default' filepath='include/uapi/linux/virtio_vsock.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='len' type-id='2f162548' visibility='default' filepath='include/uapi/linux/virtio_vsock.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='type' type-id='23119536' visibility='default' filepath='include/uapi/linux/virtio_vsock.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='240'>
+          <var-decl name='op' type-id='23119536' visibility='default' filepath='include/uapi/linux/virtio_vsock.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='flags' type-id='2f162548' visibility='default' filepath='include/uapi/linux/virtio_vsock.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='buf_alloc' type-id='2f162548' visibility='default' filepath='include/uapi/linux/virtio_vsock.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='fwd_cnt' type-id='2f162548' visibility='default' filepath='include/uapi/linux/virtio_vsock.h' line='66' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c96d591d'>
+        <parameter type-id='8212a608'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='2f162548' size-in-bits='32512' id='c96df45b'>
+        <subrange length='1016' type-id='7ff19f0f' id='f2832727'/>
+      </array-type-def>
+      <pointer-type-def type-id='8ff9530e' size-in-bits='64' id='c97de1ac'/>
+      <enum-decl name='__anonymous_enum__' filepath='lib/zstd/decompress.c' line='2157' column='1' id='c98266aa' is-anonymous='yes'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='zdss_init' value='0'/>
+        <enumerator name='zdss_loadHeader' value='1'/>
+        <enumerator name='zdss_read' value='2'/>
+        <enumerator name='zdss_load' value='3'/>
+        <enumerator name='zdss_flush' value='4'/>
+      </enum-decl>
+      <class-decl name='component_match_array' size-in-bits='384' is-struct='yes' visibility='default' filepath='drivers/base/component.c' line='46' column='1' id='c991d9f0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='drivers/base/component.c' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='compare' type-id='92d15ae9' visibility='default' filepath='drivers/base/component.c' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='compare_typed' type-id='78e7ce8e' visibility='default' filepath='drivers/base/component.c' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='release' type-id='680bf43c' visibility='default' filepath='drivers/base/component.c' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='component' type-id='52f567fe' visibility='default' filepath='drivers/base/component.c' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='duplicate' type-id='b50a4934' visibility='default' filepath='drivers/base/component.c' line='52' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ieee80211_sta_vht_cap' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='345' column='1' id='c994e9c8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vht_supported' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='cap' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='vht_mcs' type-id='830056b5' visibility='default' filepath='include/net/cfg80211.h' line='348' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3d684a5a' size-in-bits='64' id='c99780b4'/>
+      <pointer-type-def type-id='14d2a428' size-in-bits='64' id='c9982f26'/>
+      <union-decl name='snd_codec_options' size-in-bits='512' visibility='default' filepath='include/uapi/sound/compress_params.h' line='361' column='1' id='c998b5fb'>
+        <data-member access='public'>
+          <var-decl name='wma' type-id='fef670ff' visibility='default' filepath='include/uapi/sound/compress_params.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='vorbis' type-id='36942ad7' visibility='default' filepath='include/uapi/sound/compress_params.h' line='363' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='real' type-id='325f40b8' visibility='default' filepath='include/uapi/sound/compress_params.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='flac' type-id='8a9c9202' visibility='default' filepath='include/uapi/sound/compress_params.h' line='365' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='generic' type-id='4afe6201' visibility='default' filepath='include/uapi/sound/compress_params.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='flac_d' type-id='60b3851a' visibility='default' filepath='include/uapi/sound/compress_params.h' line='367' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='wma_d' type-id='74e8aec7' visibility='default' filepath='include/uapi/sound/compress_params.h' line='368' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='alac_d' type-id='256f3ff1' visibility='default' filepath='include/uapi/sound/compress_params.h' line='369' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ape_d' type-id='f778b2f8' visibility='default' filepath='include/uapi/sound/compress_params.h' line='370' column='1'/>
+        </data-member>
+      </union-decl>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='infinite' id='c99b5ecd'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='c9a29512'>
+        <parameter type-id='37175e4d'/>
+        <parameter type-id='474e5dcc'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='474e5dcc'/>
+      </function-type>
+      <class-decl name='ufs_vreg_info' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='586' column='1' id='c9a4cbd1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vcc' type-id='ae670bfa' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='587' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='vccq' type-id='ae670bfa' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='588' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='vccq2' type-id='ae670bfa' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='589' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='vdd_hba' type-id='ae670bfa' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='590' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='c9a7d694'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='13103032'/>
+        <parameter type-id='f0acc909'/>
+        <return type-id='8f254b08'/>
+      </function-type>
+      <function-type size-in-bits='64' id='c9c16460'>
+        <parameter type-id='27f3f5d8'/>
+        <parameter type-id='bf3ef905'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='941ca9e2'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='0e3f80d9'/>
+      </function-type>
+      <pointer-type-def type-id='9a335021' size-in-bits='64' id='c9c70151'/>
+      <qualified-type-def type-id='51a1cee7' const='yes' id='c9c9b0fa'/>
+      <pointer-type-def type-id='da194c5e' size-in-bits='64' id='c9d35a9c'/>
+      <pointer-type-def type-id='5218160d' size-in-bits='64' id='c9d64c0d'/>
+      <typedef-decl name='possible_net_t' type-id='7186c6d1' filepath='include/net/net_namespace.h' line='315' column='1' id='c9df1e6c'/>
+      <pointer-type-def type-id='1c254730' size-in-bits='64' id='c9e2bc02'/>
+      <class-decl name='pci_epc_mem' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/pci-epc.h' line='113' column='1' id='c9ea62cc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='window' type-id='b517e659' visibility='default' filepath='include/linux/pci-epc.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bitmap' type-id='1d2c2b85' visibility='default' filepath='include/linux/pci-epc.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='pages' type-id='95e97e5e' visibility='default' filepath='include/linux/pci-epc.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/linux/pci-epc.h' line='118' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9b2db0ab' size-in-bits='64' id='c9ecdb13'/>
+      <pointer-type-def type-id='56f3ba90' size-in-bits='64' id='c9ee7659'/>
+      <array-type-def dimensions='2' type-id='8f048e17' size-in-bits='384' id='c9f5704d'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+        <subrange length='12' type-id='7ff19f0f' id='84827bdc'/>
+      </array-type-def>
+      <class-decl name='task_io_accounting' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/task_io_accounting.h' line='12' column='1' id='ca075c7f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rchar' type-id='91ce1af9' visibility='default' filepath='include/linux/task_io_accounting.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wchar' type-id='91ce1af9' visibility='default' filepath='include/linux/task_io_accounting.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='syscr' type-id='91ce1af9' visibility='default' filepath='include/linux/task_io_accounting.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='syscw' type-id='91ce1af9' visibility='default' filepath='include/linux/task_io_accounting.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='syscfs' type-id='91ce1af9' visibility='default' filepath='include/linux/task_io_accounting.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='read_bytes' type-id='91ce1af9' visibility='default' filepath='include/linux/task_io_accounting.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='write_bytes' type-id='91ce1af9' visibility='default' filepath='include/linux/task_io_accounting.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='cancelled_write_bytes' type-id='91ce1af9' visibility='default' filepath='include/linux/task_io_accounting.h' line='46' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='ca0a6184'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='bb4afb30' size-in-bits='64' id='ca0a9af6'/>
+      <class-decl name='jump_entry' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/jump_label.h' line='122' column='1' id='ca0c09a6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='code' type-id='a7832498' visibility='default' filepath='include/linux/jump_label.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='target' type-id='a7832498' visibility='default' filepath='include/linux/jump_label.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='key' type-id='bd54fe1a' visibility='default' filepath='include/linux/jump_label.h' line='125' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9e6d4b4e' size-in-bits='64' id='ca0dae6c'/>
+      <qualified-type-def type-id='0dbd43cd' const='yes' id='ca0dbd4a'/>
+      <class-decl name='kernel_param' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/moduleparam.h' line='69' column='1' id='ca10d3ca'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' 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='2730d015' 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='99beed66' 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='d5c0a628' 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='fdbf7a0f' 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='f9b06939' 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='ac5ab648' visibility='default' filepath='include/linux/moduleparam.h' line='76' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0e085d99' size-in-bits='64' id='ca2b80c9'/>
+      <class-decl name='v4l2_ctrl_h264_pps' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1366' column='1' id='ca2e9cda'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pic_parameter_set_id' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1367' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='seq_parameter_set_id' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1368' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='num_slice_groups_minus1' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1369' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='num_ref_idx_l0_default_active_minus1' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='num_ref_idx_l1_default_active_minus1' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1371' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='weighted_bipred_idc' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='pic_init_qp_minus26' type-id='8af57d41' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1373' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='pic_init_qs_minus26' type-id='8af57d41' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1374' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='chroma_qp_index_offset' type-id='8af57d41' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='second_chroma_qp_index_offset' type-id='8af57d41' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='flags' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1377' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='55e8af82' size-in-bits='64' id='ca399350'/>
+      <pointer-type-def type-id='8ab546e0' size-in-bits='64' id='ca4aae5a'/>
+      <function-type size-in-bits='64' id='ca5008d0'>
+        <parameter type-id='11f4a000'/>
+        <return type-id='84a5c3d4'/>
+      </function-type>
+      <class-decl name='snd_soc_dobj_widget' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/sound/soc-topology.h' line='56' column='1' id='ca569b91'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kcontrol_type' type-id='807869d3' visibility='default' filepath='include/sound/soc-topology.h' line='57' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7ebeca6e' size-in-bits='64' id='ca58690c'/>
+      <function-type size-in-bits='64' id='ca6c3304'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='2ce52478'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='amba_cs_uci_id' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/amba/bus.h' line='52' column='1' id='ca73ce17'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='devarch' type-id='f0981eeb' visibility='default' filepath='include/linux/amba/bus.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='devarch_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/amba/bus.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='devtype' type-id='f0981eeb' visibility='default' filepath='include/linux/amba/bus.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/amba/bus.h' line='56' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='2' type-id='f3b4aca8' size-in-bits='2688' id='ca73f4da'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+        <subrange length='14' type-id='7ff19f0f' id='48882d96'/>
+      </array-type-def>
+      <class-decl name='nla_policy' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/netlink.h' line='315' column='1' id='ca7a1741'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='f9b06939' visibility='default' filepath='include/net/netlink.h' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='validation_type' type-id='f9b06939' visibility='default' filepath='include/net/netlink.h' line='317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='len' type-id='1dc6a898' visibility='default' filepath='include/net/netlink.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab676' visibility='default' filepath='include/net/netlink.h' line='319' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='ca7f7878'>
+        <parameter type-id='f23e2572'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='pci_interrupt_pin' filepath='include/linux/pci.h' line='147' column='1' id='ca830344'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PCI_INTERRUPT_UNKNOWN' value='0'/>
+        <enumerator name='PCI_INTERRUPT_INTA' value='1'/>
+        <enumerator name='PCI_INTERRUPT_INTB' value='2'/>
+        <enumerator name='PCI_INTERRUPT_INTC' value='3'/>
+        <enumerator name='PCI_INTERRUPT_INTD' value='4'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='ca83d937'>
+        <parameter type-id='898c1076'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ca8c1528'>
+        <parameter type-id='23d6768c'/>
+        <parameter type-id='2bf16f59'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='v4l2_async_notifier_operations' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/media/v4l2-async.h' line='85' column='1' id='ca8c574c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bound' type-id='39e52da2' visibility='default' filepath='include/media/v4l2-async.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='complete' type-id='6f077fdd' visibility='default' filepath='include/media/v4l2-async.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='unbind' type-id='55d37973' visibility='default' filepath='include/media/v4l2-async.h' line='90' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f7de2149' size-in-bits='64' id='ca9354d1'/>
+      <pointer-type-def type-id='e91cb1f0' size-in-bits='64' id='ca97eb2a'/>
+      <pointer-type-def type-id='9280516b' size-in-bits='64' id='ca9b3bbf'/>
+      <pointer-type-def type-id='0a831e58' size-in-bits='64' id='ca9b89b2'/>
+      <pointer-type-def type-id='387ddca6' size-in-bits='64' id='caa0e368'/>
+      <pointer-type-def type-id='2ea97d28' size-in-bits='64' id='caa804f2'/>
+      <pointer-type-def type-id='185e274e' size-in-bits='64' id='caa8cb44'/>
+      <class-decl name='prb_desc' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='58' column='1' id='cab08629'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='state_var' type-id='f22a8abb' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='text_blk_lpos' type-id='c51277fb' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='60' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3651c762' size-in-bits='64' id='cabcb658'/>
+      <array-type-def dimensions='1' type-id='c16c976f' size-in-bits='89088' id='cac20798'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <class-decl name='crypto_type' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/crypto/algapi.h' line='31' column='1' id='caca298d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ctxsize' type-id='a506a456' visibility='default' filepath='include/crypto/algapi.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='extsize' type-id='f77c2568' visibility='default' filepath='include/crypto/algapi.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='init' type-id='d066db18' visibility='default' filepath='include/crypto/algapi.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='init_tfm' type-id='469599ea' visibility='default' filepath='include/crypto/algapi.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='show' type-id='2c17fd2e' visibility='default' filepath='include/crypto/algapi.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='report' type-id='2108b777' visibility='default' filepath='include/crypto/algapi.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='free' type-id='3aa8795d' visibility='default' filepath='include/crypto/algapi.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='include/crypto/algapi.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='maskclear' type-id='f0981eeb' visibility='default' filepath='include/crypto/algapi.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='maskset' type-id='f0981eeb' visibility='default' filepath='include/crypto/algapi.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='tfmsize' type-id='f0981eeb' visibility='default' filepath='include/crypto/algapi.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='badblocks' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/badblocks.h' line='27' column='1' id='cacf0f56'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/badblocks.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='count' type-id='95e97e5e' visibility='default' filepath='include/linux/badblocks.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='unacked_exist' type-id='95e97e5e' visibility='default' filepath='include/linux/badblocks.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='shift' type-id='95e97e5e' visibility='default' filepath='include/linux/badblocks.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='page' type-id='3df9fd28' visibility='default' filepath='include/linux/badblocks.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='changed' type-id='95e97e5e' visibility='default' filepath='include/linux/badblocks.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='lock' type-id='e6cd5ecf' visibility='default' filepath='include/linux/badblocks.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='sector' type-id='a42536cd' visibility='default' filepath='include/linux/badblocks.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='size' type-id='a42536cd' visibility='default' filepath='include/linux/badblocks.h' line='41' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='dma_residue_granularity' filepath='include/linux/dmaengine.h' line='477' column='1' id='cad02db3'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DMA_RESIDUE_GRANULARITY_DESCRIPTOR' value='0'/>
+        <enumerator name='DMA_RESIDUE_GRANULARITY_SEGMENT' value='1'/>
+        <enumerator name='DMA_RESIDUE_GRANULARITY_BURST' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='b086bddd' size-in-bits='64' id='cad718c1'/>
+      <pointer-type-def type-id='7370d1f4' size-in-bits='64' id='cadab7d6'/>
+      <function-type size-in-bits='64' id='cadc2a5d'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='354f7eb9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='rc_map_list' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/media/rc-map.h' line='173' column='1' id='cadfefb8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/media/rc-map.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='map' type-id='9ab3364f' visibility='default' filepath='include/media/rc-map.h' line='175' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='56125f66' size-in-bits='64' id='caec04a4'/>
+      <pointer-type-def type-id='bb21a21f' size-in-bits='64' id='caf2596f'/>
+      <class-decl name='request_queue' size-in-bits='17600' is-struct='yes' visibility='default' filepath='include/linux/blkdev.h' line='387' column='1' id='caf652c6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='last_merge' type-id='3dad1a48' visibility='default' filepath='include/linux/blkdev.h' line='388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='elevator' type-id='07d0a3e7' visibility='default' filepath='include/linux/blkdev.h' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='q_usage_counter' type-id='818799b4' visibility='default' filepath='include/linux/blkdev.h' line='391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='stats' type-id='a0408c5a' visibility='default' filepath='include/linux/blkdev.h' line='393' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='rq_qos' type-id='c3a28778' visibility='default' filepath='include/linux/blkdev.h' line='394' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='mq_ops' type-id='e1962c5d' visibility='default' filepath='include/linux/blkdev.h' line='396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='queue_ctx' type-id='9a335021' visibility='default' filepath='include/linux/blkdev.h' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='queue_depth' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='queue_hw_ctx' type-id='3e195537' visibility='default' filepath='include/linux/blkdev.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='nr_hw_queues' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='queuedata' type-id='eaa32e2f' visibility='default' filepath='include/linux/blkdev.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='queue_flags' type-id='7359adad' visibility='default' filepath='include/linux/blkdev.h' line='416' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='pm_only' type-id='49178f86' visibility='default' filepath='include/linux/blkdev.h' line='421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/blkdev.h' line='427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='queue_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/blkdev.h' line='429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='disk' type-id='33c599da' visibility='default' filepath='include/linux/blkdev.h' line='431' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='include/linux/blkdev.h' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='mq_kobj' type-id='d30bdc51' visibility='default' filepath='include/linux/blkdev.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/blkdev.h' line='448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='rpm_status' type-id='3c1b7fd8' visibility='default' filepath='include/linux/blkdev.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='nr_requests' type-id='7359adad' visibility='default' filepath='include/linux/blkdev.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='dma_pad_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2080'>
+          <var-decl name='dma_alignment' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='ksm' type-id='bf8a20d2' visibility='default' filepath='include/linux/blkdev.h' line='462' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='rq_timeout' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='465' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2208'>
+          <var-decl name='poll_nsec' type-id='95e97e5e' visibility='default' filepath='include/linux/blkdev.h' line='466' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='poll_cb' type-id='1f98c663' visibility='default' filepath='include/linux/blkdev.h' line='468' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='poll_stat' type-id='8574e02e' visibility='default' filepath='include/linux/blkdev.h' line='469' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='timeout' type-id='abe41e67' visibility='default' filepath='include/linux/blkdev.h' line='471' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='timeout_work' type-id='ef9025d0' visibility='default' filepath='include/linux/blkdev.h' line='472' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='nr_active_requests_shared_sbitmap' type-id='49178f86' visibility='default' filepath='include/linux/blkdev.h' line='474' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='sched_bitmap_tags' type-id='a133315d' visibility='default' filepath='include/linux/blkdev.h' line='476' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8768'>
+          <var-decl name='sched_breserved_tags' type-id='a133315d' visibility='default' filepath='include/linux/blkdev.h' line='477' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9216'>
+          <var-decl name='icq_list' type-id='72f469ec' visibility='default' filepath='include/linux/blkdev.h' line='479' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='blkcg_pols' type-id='f066dd3c' visibility='default' filepath='include/linux/blkdev.h' line='481' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9408'>
+          <var-decl name='root_blkg' type-id='1146dea3' visibility='default' filepath='include/linux/blkdev.h' line='482' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9472'>
+          <var-decl name='blkg_list' type-id='72f469ec' visibility='default' filepath='include/linux/blkdev.h' line='483' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='limits' type-id='f0966d3d' visibility='default' filepath='include/linux/blkdev.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10624'>
+          <var-decl name='required_elevator_features' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10656'>
+          <var-decl name='node' type-id='95e97e5e' visibility='default' filepath='include/linux/blkdev.h' line='515' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10688'>
+          <var-decl name='debugfs_mutex' type-id='925167dc' visibility='default' filepath='include/linux/blkdev.h' line='516' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11072'>
+          <var-decl name='fq' type-id='e118aff9' visibility='default' filepath='include/linux/blkdev.h' line='523' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11136'>
+          <var-decl name='requeue_list' type-id='72f469ec' visibility='default' filepath='include/linux/blkdev.h' line='525' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11264'>
+          <var-decl name='requeue_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/blkdev.h' line='526' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11328'>
+          <var-decl name='requeue_work' type-id='5ad6e0ef' visibility='default' filepath='include/linux/blkdev.h' line='527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12416'>
+          <var-decl name='sysfs_lock' type-id='925167dc' visibility='default' filepath='include/linux/blkdev.h' line='529' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12800'>
+          <var-decl name='sysfs_dir_lock' type-id='925167dc' visibility='default' filepath='include/linux/blkdev.h' line='530' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13184'>
+          <var-decl name='unused_hctx_list' type-id='72f469ec' visibility='default' filepath='include/linux/blkdev.h' line='536' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13312'>
+          <var-decl name='unused_hctx_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/blkdev.h' line='537' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13344'>
+          <var-decl name='mq_freeze_depth' type-id='95e97e5e' visibility='default' filepath='include/linux/blkdev.h' line='539' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13376'>
+          <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/linux/blkdev.h' line='545' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13504'>
+          <var-decl name='mq_freeze_wq' type-id='b5ab048f' visibility='default' filepath='include/linux/blkdev.h' line='546' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13696'>
+          <var-decl name='mq_freeze_lock' type-id='925167dc' visibility='default' filepath='include/linux/blkdev.h' line='551' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14080'>
+          <var-decl name='tag_set' type-id='cc26d15f' visibility='default' filepath='include/linux/blkdev.h' line='553' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14144'>
+          <var-decl name='tag_set_list' type-id='72f469ec' visibility='default' filepath='include/linux/blkdev.h' line='554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14272'>
+          <var-decl name='bio_split' type-id='dfa886b2' visibility='default' filepath='include/linux/blkdev.h' line='555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16640'>
+          <var-decl name='debugfs_dir' type-id='27675065' visibility='default' filepath='include/linux/blkdev.h' line='557' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16704'>
+          <var-decl name='sched_debugfs_dir' type-id='27675065' visibility='default' filepath='include/linux/blkdev.h' line='560' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16768'>
+          <var-decl name='rqos_debugfs_dir' type-id='27675065' visibility='default' filepath='include/linux/blkdev.h' line='561' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16832'>
+          <var-decl name='mq_sysfs_init_done' type-id='b50a4934' visibility='default' filepath='include/linux/blkdev.h' line='564' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16896'>
+          <var-decl name='cmd_size' type-id='b59d7dce' visibility='default' filepath='include/linux/blkdev.h' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16960'>
+          <var-decl name='write_hints' type-id='64af1365' visibility='default' filepath='include/linux/blkdev.h' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17280'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/blkdev.h' line='571' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17344'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/blkdev.h' line='572' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17408'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/blkdev.h' line='573' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17472'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/blkdev.h' line='574' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17536'>
+          <var-decl name='android_oem_data1' type-id='91ce1af9' visibility='default' filepath='include/linux/blkdev.h' line='576' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='zoneref' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/mmzone.h' line='977' column='1' id='caf9c470'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='zone' type-id='0a0aff97' visibility='default' filepath='include/linux/mmzone.h' line='978' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='zone_idx' type-id='95e97e5e' visibility='default' filepath='include/linux/mmzone.h' line='979' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='20a7e419' size-in-bits='64' id='cafb3255'/>
+      <pointer-type-def type-id='b1fd4642' size-in-bits='64' id='cafc8210'/>
+      <array-type-def dimensions='1' type-id='1851ab9f' size-in-bits='4096' id='cb01bf4b'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <class-decl name='usb_dynids' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1124' column='1' id='cb08bae1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/usb.h' line='1125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1126' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='96658a93' size-in-bits='64' id='cb0ca137'/>
+      <pointer-type-def type-id='32ed9316' size-in-bits='64' id='cb0dbc3c'/>
+      <pointer-type-def type-id='dee16bbe' size-in-bits='64' id='cb1156c4'/>
+      <pointer-type-def type-id='21f83f61' size-in-bits='64' id='cb1c5129'/>
+      <pointer-type-def type-id='f60505a1' size-in-bits='64' id='cb27da0d'/>
+      <function-type size-in-bits='64' id='cb28c283'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='8bff8096'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='ethtool_phys_id_state' filepath='include/linux/ethtool.h' line='52' column='1' id='cb317f38'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ETHTOOL_ID_INACTIVE' value='0'/>
+        <enumerator name='ETHTOOL_ID_ACTIVE' value='1'/>
+        <enumerator name='ETHTOOL_ID_ON' value='2'/>
+        <enumerator name='ETHTOOL_ID_OFF' value='3'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='cb341b9a'>
+        <parameter type-id='928221d2'/>
+        <parameter type-id='cf536864'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='synth_field_desc' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/trace_events.h' line='512' column='1' id='cb42385e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='80f4b756' visibility='default' filepath='include/linux/trace_events.h' line='513' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/trace_events.h' line='514' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cb71e1ad' size-in-bits='64' id='cb460785'/>
+      <pointer-type-def type-id='39ee7de5' size-in-bits='64' id='cb48c699'/>
+      <pointer-type-def type-id='6a54ab42' size-in-bits='64' id='cb49d4b8'/>
+      <pointer-type-def type-id='0bd6c9bd' size-in-bits='64' id='cb4c6db1'/>
+      <function-type size-in-bits='64' id='cb593833'>
+        <parameter type-id='15b1f129'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='110c1f72' const='yes' id='cb5a1a3f'/>
+      <pointer-type-def type-id='47e3b03f' size-in-bits='64' id='cb5b6deb'/>
+      <pointer-type-def type-id='20f1cebe' size-in-bits='64' id='cb5b8228'/>
+      <typedef-decl name='pmdval_t' type-id='91ce1af9' filepath='arch/arm64/include/asm/pgtable-types.h' line='15' column='1' id='cb5c7c0f'/>
+      <function-type size-in-bits='64' id='cb6487f8'>
+        <parameter type-id='5760dcb0'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='d3130597' size-in-bits='1984' id='cb6b7280'>
+        <subrange length='31' type-id='7ff19f0f' id='ae5e1d19'/>
+      </array-type-def>
+      <pointer-type-def type-id='d509ab32' size-in-bits='64' id='cb6e5180'/>
+      <qualified-type-def type-id='cfe4f8a2' const='yes' id='cb71e1ad'/>
+      <function-type size-in-bits='64' id='cb8f6de1'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='8bff8096'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='ieee80211_bss_type' filepath='include/net/cfg80211.h' line='235' column='1' id='cb952348'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='IEEE80211_BSS_TYPE_ESS' value='0'/>
+        <enumerator name='IEEE80211_BSS_TYPE_PBSS' value='1'/>
+        <enumerator name='IEEE80211_BSS_TYPE_IBSS' value='2'/>
+        <enumerator name='IEEE80211_BSS_TYPE_MBSS' value='3'/>
+        <enumerator name='IEEE80211_BSS_TYPE_ANY' value='4'/>
+      </enum-decl>
+      <class-decl name='xfrm_state' size-in-bits='6144' is-struct='yes' visibility='default' filepath='include/net/xfrm.h' line='155' column='1' id='cb961c68'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='xs_net' type-id='c9df1e6c' visibility='default' filepath='include/net/xfrm.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab68b' visibility='default' filepath='include/net/xfrm.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bysrc' type-id='03a4a074' visibility='default' filepath='include/net/xfrm.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='byspi' type-id='03a4a074' visibility='default' filepath='include/net/xfrm.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='byseq' type-id='03a4a074' visibility='default' filepath='include/net/xfrm.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/net/xfrm.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/net/xfrm.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='id' type-id='d07aeeaa' visibility='default' filepath='include/net/xfrm.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='sel' type-id='8eb3b1fe' visibility='default' filepath='include/net/xfrm.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='mark' type-id='0084df72' visibility='default' filepath='include/net/xfrm.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='if_id' type-id='19c2251e' visibility='default' filepath='include/net/xfrm.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='tfcpad' type-id='19c2251e' visibility='default' filepath='include/net/xfrm.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='genid' type-id='19c2251e' visibility='default' filepath='include/net/xfrm.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='km' type-id='12872440' visibility='default' filepath='include/net/xfrm.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='props' type-id='e7f44042' visibility='default' filepath='include/net/xfrm.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='lft' type-id='4ca5f2ad' visibility='default' filepath='include/net/xfrm.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='aalg' type-id='255e0487' visibility='default' filepath='include/net/xfrm.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='ealg' type-id='1663a26e' visibility='default' filepath='include/net/xfrm.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='calg' type-id='1663a26e' visibility='default' filepath='include/net/xfrm.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='aead' type-id='c56b5ee4' visibility='default' filepath='include/net/xfrm.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='geniv' type-id='80f4b756' visibility='default' filepath='include/net/xfrm.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='new_mapping_sport' type-id='84a5c3d4' visibility='default' filepath='include/net/xfrm.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2976'>
+          <var-decl name='new_mapping' type-id='19c2251e' visibility='default' filepath='include/net/xfrm.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='mapping_maxage' type-id='19c2251e' visibility='default' filepath='include/net/xfrm.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='encap' type-id='47541e34' visibility='default' filepath='include/net/xfrm.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='encap_sk' type-id='f772df6d' visibility='default' filepath='include/net/xfrm.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='coaddr' type-id='47a1c9f4' visibility='default' filepath='include/net/xfrm.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='tunnel' type-id='328dda6e' visibility='default' filepath='include/net/xfrm.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='tunnel_users' type-id='49178f86' visibility='default' filepath='include/net/xfrm.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3360'>
+          <var-decl name='replay' type-id='c59d261e' visibility='default' filepath='include/net/xfrm.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='replay_esn' type-id='71411b0f' visibility='default' filepath='include/net/xfrm.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='preplay' type-id='c59d261e' visibility='default' filepath='include/net/xfrm.h' line='226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='preplay_esn' type-id='71411b0f' visibility='default' filepath='include/net/xfrm.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='repl_mode' type-id='b5995253' visibility='default' filepath='include/net/xfrm.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3744'>
+          <var-decl name='xflags' type-id='19c2251e' visibility='default' filepath='include/net/xfrm.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='replay_maxage' type-id='19c2251e' visibility='default' filepath='include/net/xfrm.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3808'>
+          <var-decl name='replay_maxdiff' type-id='19c2251e' visibility='default' filepath='include/net/xfrm.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='rtimer' type-id='abe41e67' visibility='default' filepath='include/net/xfrm.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='stats' type-id='c1960caa' visibility='default' filepath='include/net/xfrm.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='curlft' type-id='29d519c9' visibility='default' filepath='include/net/xfrm.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4672'>
+          <var-decl name='mtimer' type-id='b6993efc' visibility='default' filepath='include/net/xfrm.h' line='247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='xso' type-id='f5284c72' visibility='default' filepath='include/net/xfrm.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='saved_tmo' type-id='bd54fe1a' visibility='default' filepath='include/net/xfrm.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='lastused' type-id='1afd27ac' visibility='default' filepath='include/net/xfrm.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5632'>
+          <var-decl name='xfrag' type-id='06c0432f' visibility='default' filepath='include/net/xfrm.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5760'>
+          <var-decl name='type' type-id='4e812b7a' visibility='default' filepath='include/net/xfrm.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5824'>
+          <var-decl name='inner_mode' type-id='fdc52c40' visibility='default' filepath='include/net/xfrm.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5848'>
+          <var-decl name='inner_mode_iaf' type-id='fdc52c40' visibility='default' filepath='include/net/xfrm.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5872'>
+          <var-decl name='outer_mode' type-id='fdc52c40' visibility='default' filepath='include/net/xfrm.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5952'>
+          <var-decl name='type_offload' type-id='2f8b61b4' visibility='default' filepath='include/net/xfrm.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6016'>
+          <var-decl name='security' type-id='b07c2494' visibility='default' filepath='include/net/xfrm.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/net/xfrm.h' line='273' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='fccb029f' const='yes' id='cb9a8514'/>
+      <pointer-type-def type-id='79a9ff6f' size-in-bits='64' id='cb9cd99f'/>
+      <pointer-type-def type-id='c9196d18' size-in-bits='64' id='cba10b6e'/>
+      <pointer-type-def type-id='4b7a84f4' size-in-bits='64' id='cba114b6'/>
+      <pointer-type-def type-id='284260b8' size-in-bits='64' id='cba1f2de'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/zstd.h' line='166' column='1' id='cba40c80' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='contentSizeFlag' type-id='f0981eeb' visibility='default' filepath='include/linux/zstd.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='checksumFlag' type-id='f0981eeb' visibility='default' filepath='include/linux/zstd.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='noDictIDFlag' type-id='f0981eeb' visibility='default' filepath='include/linux/zstd.h' line='169' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='cba59087'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='91ce1af9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='cbab5390'>
+        <parameter type-id='7837cd88'/>
+        <parameter type-id='80f4b756'/>
+        <return type-id='4a935625'/>
+      </function-type>
+      <pointer-type-def type-id='364251ac' size-in-bits='64' id='cbad797a'/>
+      <pointer-type-def type-id='b99f64b4' size-in-bits='64' id='cbba2082'/>
+      <function-type size-in-bits='64' id='cbbca4c5'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='68a2d05b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='fsg_module_parameters' size-in-bits='1792' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='8' column='1' id='cbbd46cd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='file' type-id='04959838' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='ro' type-id='84b1e060' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='removable' type-id='84b1e060' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='cdrom' type-id='84b1e060' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='nofua' type-id='84b1e060' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='file_count' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='ro_count' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='removable_count' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1632'>
+          <var-decl name='cdrom_count' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='nofua_count' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1696'>
+          <var-decl name='luns' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='stall' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/f_mass_storage.h' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='cbbffc65'>
+        <parameter type-id='e9a4c848'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='247d0323' size-in-bits='64' id='cbc1e303'/>
+      <qualified-type-def type-id='5f78aa17' const='yes' id='cbc7b73b'/>
+      <class-decl name='mbox_chan' size-in-bits='1984' is-struct='yes' visibility='default' filepath='include/linux/mailbox_controller.h' line='117' column='1' id='cbc88d4a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mbox' type-id='fb648468' visibility='default' filepath='include/linux/mailbox_controller.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='txdone_method' type-id='f0981eeb' visibility='default' filepath='include/linux/mailbox_controller.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cl' type-id='aeae13b9' visibility='default' filepath='include/linux/mailbox_controller.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tx_complete' type-id='f9fef04f' visibility='default' filepath='include/linux/mailbox_controller.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='active_req' type-id='eaa32e2f' visibility='default' filepath='include/linux/mailbox_controller.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='msg_count' type-id='f0981eeb' visibility='default' filepath='include/linux/mailbox_controller.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='msg_free' type-id='f0981eeb' visibility='default' filepath='include/linux/mailbox_controller.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='msg_data' type-id='4a460309' visibility='default' filepath='include/linux/mailbox_controller.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/mailbox_controller.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='con_priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/mailbox_controller.h' line='126' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='de7351ca' size-in-bits='64' id='cbcd023c'/>
+      <pointer-type-def type-id='2185483d' size-in-bits='64' id='cbd2074d'/>
+      <pointer-type-def type-id='654484ba' size-in-bits='64' id='cbd24a98'/>
+      <pointer-type-def type-id='38200493' size-in-bits='64' id='cbd6e703'/>
+      <pointer-type-def type-id='f79aa311' size-in-bits='64' id='cbe15ded'/>
+      <class-decl name='v4l2_event_vsync' size-in-bits='8' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2371' column='1' id='cbe6daf0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='field' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2373' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='925ea354' size-in-bits='64' id='cbe8ceae'/>
+      <union-decl name='futex_key' size-in-bits='192' visibility='default' filepath='include/linux/futex.h' line='32' column='1' id='cbf1908e'>
+        <data-member access='public'>
+          <var-decl name='shared' type-id='e7f43f94' visibility='default' filepath='include/linux/futex.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='private' type-id='e7f43f95' visibility='default' filepath='include/linux/futex.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='both' type-id='e7f43f96' visibility='default' filepath='include/linux/futex.h' line='50' column='1'/>
+        </data-member>
+      </union-decl>
+      <pointer-type-def type-id='51ca9086' size-in-bits='64' id='cc036b58'/>
+      <pointer-type-def type-id='1f31ad12' size-in-bits='64' id='cc114ffc'/>
+      <pointer-type-def type-id='0ab6a08c' size-in-bits='64' id='cc1804ea'/>
+      <pointer-type-def type-id='156a7d89' size-in-bits='64' id='cc1a1bb1'/>
+      <class-decl name='fb_blit_caps' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/fb.h' line='145' column='1' id='cc1cf303'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='x' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='y' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='len' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='149' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ifmcaddr6' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/net/if_inet6.h' line='120' column='1' id='cc23d6f1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mca_addr' type-id='f6ed712a' visibility='default' filepath='include/net/if_inet6.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='idev' type-id='f026b16b' visibility='default' filepath='include/net/if_inet6.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='next' type-id='d1ca3a89' visibility='default' filepath='include/net/if_inet6.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mca_sources' type-id='60f4096f' visibility='default' filepath='include/net/if_inet6.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mca_tomb' type-id='60f4096f' visibility='default' filepath='include/net/if_inet6.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='mca_sfmode' type-id='f0981eeb' visibility='default' filepath='include/net/if_inet6.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='mca_crcount' type-id='002ac4a6' visibility='default' filepath='include/net/if_inet6.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='mca_sfcount' type-id='f05e8e77' visibility='default' filepath='include/net/if_inet6.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='mca_work' type-id='5ad6e0ef' visibility='default' filepath='include/net/if_inet6.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='mca_flags' type-id='f0981eeb' visibility='default' filepath='include/net/if_inet6.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1696'>
+          <var-decl name='mca_users' type-id='95e97e5e' visibility='default' filepath='include/net/if_inet6.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='mca_refcnt' type-id='64615833' visibility='default' filepath='include/net/if_inet6.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='mca_cstamp' type-id='7359adad' visibility='default' filepath='include/net/if_inet6.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='mca_tstamp' type-id='7359adad' visibility='default' filepath='include/net/if_inet6.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/if_inet6.h' line='135' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mmc_part' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/mmc/card.h' line='252' column='1' id='cc256810'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='91ce1af9' visibility='default' filepath='include/linux/mmc/card.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='part_cfg' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='name' type-id='664ac0b7' visibility='default' filepath='include/linux/mmc/card.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='force_ro' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/card.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='area_type' type-id='f0981eeb' visibility='default' filepath='include/linux/mmc/card.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/mmc/card.h' line='263' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='651086d7' size-in-bits='64' id='cc26d15f'/>
+      <function-type size-in-bits='64' id='cc2d5b01'>
+        <parameter type-id='708ae4d0'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='6fab59d9' size-in-bits='64' id='cc2ef0d1'/>
+      <pointer-type-def type-id='858c6d7b' size-in-bits='64' id='cc325be7'/>
+      <class-decl name='drm_private_obj' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/drm/drm_atomic.h' line='274' column='1' id='cc3a4f0c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='head' type-id='72f469ec' visibility='default' filepath='include/drm/drm_atomic.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lock' type-id='ae5fc04a' visibility='default' filepath='include/drm/drm_atomic.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='state' type-id='4ea020ae' visibility='default' filepath='include/drm/drm_atomic.h' line='289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='funcs' type-id='515fa1af' visibility='default' filepath='include/drm/drm_atomic.h' line='297' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='449f791f' size-in-bits='64' id='cc3e2efb'/>
+      <class-decl name='fb_cursor' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/uapi/linux/fb.h' line='388' column='1' id='cc3fe760'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='set' type-id='d315442e' visibility='default' filepath='include/uapi/linux/fb.h' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='enable' type-id='d315442e' visibility='default' filepath='include/uapi/linux/fb.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='rop' type-id='d315442e' visibility='default' filepath='include/uapi/linux/fb.h' line='391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mask' type-id='80f4b756' visibility='default' filepath='include/uapi/linux/fb.h' line='392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hot' type-id='fc4b98cd' visibility='default' filepath='include/uapi/linux/fb.h' line='393' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='image' type-id='c4601f87' visibility='default' filepath='include/uapi/linux/fb.h' line='394' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='e8d98129' const='yes' id='cc458304'/>
+      <class-decl name='drm_file' size-in-bits='3200' is-struct='yes' visibility='default' filepath='include/drm/drm_file.h' line='159' column='1' id='cc4a63b9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='authenticated' type-id='b50a4934' visibility='default' filepath='include/drm/drm_file.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='stereo_allowed' type-id='b50a4934' visibility='default' filepath='include/drm/drm_file.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='universal_planes' type-id='b50a4934' visibility='default' filepath='include/drm/drm_file.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='atomic' type-id='b50a4934' visibility='default' filepath='include/drm/drm_file.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='aspect_ratio_allowed' type-id='b50a4934' visibility='default' filepath='include/drm/drm_file.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='writeback_connectors' type-id='b50a4934' visibility='default' filepath='include/drm/drm_file.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='was_master' type-id='b50a4934' visibility='default' filepath='include/drm/drm_file.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='is_master' type-id='b50a4934' visibility='default' filepath='include/drm/drm_file.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='master' type-id='07df1a3d' visibility='default' filepath='include/drm/drm_file.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='master_lookup_lock' type-id='fb4018a0' visibility='default' filepath='include/drm/drm_file.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pid' type-id='b94e5398' visibility='default' filepath='include/drm/drm_file.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='magic' type-id='283696d2' visibility='default' filepath='include/drm/drm_file.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='lhead' type-id='72f469ec' visibility='default' filepath='include/drm/drm_file.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='minor' type-id='6c3b3f8e' visibility='default' filepath='include/drm/drm_file.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='object_idr' type-id='37ce495e' visibility='default' filepath='include/drm/drm_file.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='table_lock' type-id='fb4018a0' visibility='default' filepath='include/drm/drm_file.h' line='280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='syncobj_idr' type-id='37ce495e' visibility='default' filepath='include/drm/drm_file.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='syncobj_table_lock' type-id='fb4018a0' visibility='default' filepath='include/drm/drm_file.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='filp' type-id='77e79a4b' visibility='default' filepath='include/drm/drm_file.h' line='288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='driver_priv' type-id='eaa32e2f' visibility='default' filepath='include/drm/drm_file.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='fbs' type-id='72f469ec' visibility='default' filepath='include/drm/drm_file.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='fbs_lock' type-id='925167dc' visibility='default' filepath='include/drm/drm_file.h' line='310' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='blobs' type-id='72f469ec' visibility='default' filepath='include/drm/drm_file.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='event_wait' type-id='b5ab048f' visibility='default' filepath='include/drm/drm_file.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='pending_event_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_file.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='event_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_file.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='event_space' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_file.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='event_read_lock' type-id='925167dc' visibility='default' filepath='include/drm/drm_file.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='prime' type-id='1eb5bd59' visibility='default' filepath='include/drm/drm_file.h' line='363' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0f042891' size-in-bits='64' id='cc4b1be9'/>
+      <pointer-type-def type-id='7be04e1e' size-in-bits='64' id='cc5174c8'/>
+      <qualified-type-def type-id='bab69d9a' const='yes' id='cc519b49'/>
+      <class-decl name='sfp_bus' is-struct='yes' visibility='default' is-declaration-only='yes' id='cc52ca8d'/>
+      <array-type-def dimensions='1' type-id='aa79f31a' size-in-bits='192' id='cc5780c7'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <pointer-type-def type-id='f5af9523' size-in-bits='64' id='cc679d2b'/>
+      <pointer-type-def type-id='6f724070' size-in-bits='64' id='cc6dfde6'/>
+      <enum-decl name='memory_type' filepath='include/linux/memremap.h' line='59' column='1' id='cc7210fc'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='MEMORY_DEVICE_PRIVATE' value='1'/>
+        <enumerator name='MEMORY_DEVICE_FS_DAX' value='2'/>
+        <enumerator name='MEMORY_DEVICE_GENERIC' value='3'/>
+        <enumerator name='MEMORY_DEVICE_PCI_P2PDMA' value='4'/>
+      </enum-decl>
+      <class-decl name='serial_struct' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/uapi/linux/serial.h' line='19' column='1' id='cc72711f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/serial.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='line' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/serial.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='port' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/serial.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='irq' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/serial.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/serial.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='xmit_fifo_size' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/serial.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='custom_divisor' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/serial.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='baud_base' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/serial.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='close_delay' type-id='8efea9e5' visibility='default' filepath='include/uapi/linux/serial.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='io_type' type-id='a84c031d' visibility='default' filepath='include/uapi/linux/serial.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='280'>
+          <var-decl name='reserved_char' type-id='89feb1ec' visibility='default' filepath='include/uapi/linux/serial.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='hub6' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/serial.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='closing_wait' type-id='8efea9e5' visibility='default' filepath='include/uapi/linux/serial.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='336'>
+          <var-decl name='closing_wait2' type-id='8efea9e5' visibility='default' filepath='include/uapi/linux/serial.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='iomem_base' type-id='cf536864' visibility='default' filepath='include/uapi/linux/serial.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='iomem_reg_shift' type-id='8efea9e5' visibility='default' filepath='include/uapi/linux/serial.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='port_high' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/serial.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='iomap_base' type-id='7359adad' visibility='default' filepath='include/uapi/linux/serial.h' line='37' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e2b27ed1' size-in-bits='64' id='cc769659'/>
+      <function-type size-in-bits='64' id='cc7d2869'>
+        <parameter type-id='7a5054b7'/>
+        <parameter type-id='7a5054b7'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='919f23a5' size-in-bits='64' id='cc84fa1d'/>
+      <function-type size-in-bits='64' id='cc85da13'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='6b4e8585'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='72028e1c' size-in-bits='64' id='cc8d835a'/>
+      <pointer-type-def type-id='8eb07132' size-in-bits='64' id='cc8decc0'/>
+      <class-decl name='kernfs_open_node' size-in-bits='384' is-struct='yes' visibility='default' filepath='fs/kernfs/file.c' line='35' column='1' id='cc9b8e48'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='refcnt' type-id='49178f86' visibility='default' filepath='fs/kernfs/file.c' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='event' type-id='49178f86' visibility='default' filepath='fs/kernfs/file.c' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='poll' type-id='b5ab048f' visibility='default' filepath='fs/kernfs/file.c' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='files' type-id='72f469ec' visibility='default' filepath='fs/kernfs/file.c' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='db281924' size-in-bits='64' id='cc9f99b2'/>
+      <function-type size-in-bits='64' id='cca56d7c'>
+        <parameter type-id='32efad44'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='vb2_threadio_data' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2898' column='1' id='cca707fb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='thread' type-id='f23e2572' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2899' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fnc' type-id='86e6f91d' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2900' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2901' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='stop' type-id='b50a4934' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2902' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0c319a47' size-in-bits='64' id='ccb77b5b'/>
+      <pointer-type-def type-id='8b829a50' size-in-bits='64' id='ccb97366'/>
+      <pointer-type-def type-id='c2ddfea1' size-in-bits='64' id='ccba7a85'/>
+      <pointer-type-def type-id='0343ce83' size-in-bits='64' id='ccbe540b'/>
+      <class-decl name='regmap_field' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/base/regmap/internal.h' line='214' column='1' id='ccbe56f6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='regmap' type-id='29af9a71' visibility='default' filepath='drivers/base/regmap/internal.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mask' type-id='f0981eeb' visibility='default' filepath='drivers/base/regmap/internal.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='shift' type-id='f0981eeb' visibility='default' filepath='drivers/base/regmap/internal.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='reg' type-id='f0981eeb' visibility='default' filepath='drivers/base/regmap/internal.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='id_size' type-id='f0981eeb' visibility='default' filepath='drivers/base/regmap/internal.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='id_offset' type-id='f0981eeb' visibility='default' filepath='drivers/base/regmap/internal.h' line='222' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bef19510' size-in-bits='64' id='ccc13476'/>
+      <class-decl name='sched_domain_shared' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/sched/topology.h' line='75' column='1' id='ccc53977'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ref' type-id='49178f86' visibility='default' filepath='include/linux/sched/topology.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='nr_busy_cpus' type-id='49178f86' visibility='default' filepath='include/linux/sched/topology.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='has_idle_cores' type-id='95e97e5e' visibility='default' filepath='include/linux/sched/topology.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/topology.h' line='80' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4f4445b6' size-in-bits='64' id='cccdf8f0'/>
+      <qualified-type-def type-id='cd5915d8' const='yes' id='ccd48cf5'/>
+      <pointer-type-def type-id='4d41685b' size-in-bits='64' id='ccd6746f'/>
+      <pointer-type-def type-id='90eaf481' size-in-bits='64' id='ccdf2931'/>
+      <class-decl name='pci_slot' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/linux/pci.h' line='76' column='1' id='cce0f0cc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bus' type-id='d1feb554' visibility='default' filepath='include/linux/pci.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/pci.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hotplug' type-id='b47b0d41' visibility='default' filepath='include/linux/pci.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='number' type-id='002ac4a6' visibility='default' filepath='include/linux/pci.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='include/linux/pci.h' line='81' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='cce3f5a3'>
+        <parameter type-id='13103032'/>
+        <parameter type-id='6b9b777a'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ccee3154'>
+        <parameter type-id='27f3f5d8'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <class-decl name='lruvec_stats' size-in-bits='5120' is-struct='yes' visibility='default' filepath='include/linux/memcontrol.h' line='127' column='1' id='ccefe56c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='state' type-id='4d41a616' visibility='default' filepath='include/linux/memcontrol.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='state_pending' type-id='4d41a616' visibility='default' filepath='include/linux/memcontrol.h' line='132' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='ccf0660e'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='0c0b353f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e36320e9' size-in-bits='64' id='ccf3b302'/>
+      <class-decl name='xfrm_policy' size-in-bits='6656' is-struct='yes' visibility='default' filepath='include/net/xfrm.h' line='494' column='1' id='ccf6c819'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='xp_net' type-id='c9df1e6c' visibility='default' filepath='include/net/xfrm.h' line='495' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bydst' type-id='03a4a074' visibility='default' filepath='include/net/xfrm.h' line='496' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='byidx' type-id='03a4a074' visibility='default' filepath='include/net/xfrm.h' line='497' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='lock' type-id='ac16795b' visibility='default' filepath='include/net/xfrm.h' line='500' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/net/xfrm.h' line='501' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='pos' type-id='19c2251e' visibility='default' filepath='include/net/xfrm.h' line='502' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='timer' type-id='abe41e67' visibility='default' filepath='include/net/xfrm.h' line='503' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='genid' type-id='49178f86' visibility='default' filepath='include/net/xfrm.h' line='505' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='priority' type-id='19c2251e' visibility='default' filepath='include/net/xfrm.h' line='506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='index' type-id='19c2251e' visibility='default' filepath='include/net/xfrm.h' line='507' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='if_id' type-id='19c2251e' visibility='default' filepath='include/net/xfrm.h' line='508' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='mark' type-id='0084df72' visibility='default' filepath='include/net/xfrm.h' line='509' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='selector' type-id='8eb3b1fe' visibility='default' filepath='include/net/xfrm.h' line='510' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='lft' type-id='4ca5f2ad' visibility='default' filepath='include/net/xfrm.h' line='511' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='curlft' type-id='29d519c9' visibility='default' filepath='include/net/xfrm.h' line='512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='walk' type-id='e8e96050' visibility='default' filepath='include/net/xfrm.h' line='513' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='polq' type-id='d15e38d5' visibility='default' filepath='include/net/xfrm.h' line='514' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='bydst_reinsert' type-id='b50a4934' visibility='default' filepath='include/net/xfrm.h' line='515' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3208'>
+          <var-decl name='type' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='516' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3216'>
+          <var-decl name='action' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='517' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3224'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='518' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3232'>
+          <var-decl name='xfrm_nr' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3248'>
+          <var-decl name='family' type-id='1dc6a898' visibility='default' filepath='include/net/xfrm.h' line='520' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='security' type-id='b07c2494' visibility='default' filepath='include/net/xfrm.h' line='521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='xfrm_vec' type-id='41cc9498' visibility='default' filepath='include/net/xfrm.h' line='522' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6400'>
+          <var-decl name='bydst_inexact_list' type-id='03a4a074' visibility='default' filepath='include/net/xfrm.h' line='523' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6528'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/xfrm.h' line='524' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a7d28b59' size-in-bits='64' id='ccfb5911'/>
+      <array-type-def dimensions='1' type-id='e151255a' size-in-bits='1024' id='ccfd385f'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <pointer-type-def type-id='c307e927' size-in-bits='64' id='ccff656f'/>
+      <pointer-type-def type-id='5cbc594f' size-in-bits='64' id='cd012107'/>
+      <pointer-type-def type-id='0ac430cb' size-in-bits='64' id='cd058347'/>
+      <pointer-type-def type-id='d328415c' size-in-bits='64' id='cd05c94e'/>
+      <class-decl name='sfp_eeprom_base' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/sfp.h' line='6' column='1' id='cd06a503'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='phys_id' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='7' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='phys_ext_id' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='8' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='connector' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='if_1x_copper_passive' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25'>
+          <var-decl name='if_1x_copper_active' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26'>
+          <var-decl name='if_1x_lx' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27'>
+          <var-decl name='if_1x_sx' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28'>
+          <var-decl name='e10g_base_sr' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='29'>
+          <var-decl name='e10g_base_lr' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='30'>
+          <var-decl name='e10g_base_lrm' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='31'>
+          <var-decl name='e10g_base_er' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='sonet_oc3_short_reach' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33'>
+          <var-decl name='sonet_oc3_smf_intermediate_reach' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='34'>
+          <var-decl name='sonet_oc3_smf_long_reach' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='35'>
+          <var-decl name='unallocated_5_3' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='36'>
+          <var-decl name='sonet_oc12_short_reach' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='37'>
+          <var-decl name='sonet_oc12_smf_intermediate_reach' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='38'>
+          <var-decl name='sonet_oc12_smf_long_reach' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='39'>
+          <var-decl name='unallocated_5_7' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='sonet_oc48_short_reach' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41'>
+          <var-decl name='sonet_oc48_intermediate_reach' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='42'>
+          <var-decl name='sonet_oc48_long_reach' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='43'>
+          <var-decl name='sonet_reach_bit2' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44'>
+          <var-decl name='sonet_reach_bit1' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45'>
+          <var-decl name='sonet_oc192_short_reach' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='46'>
+          <var-decl name='escon_smf_1310_laser' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='47'>
+          <var-decl name='escon_mmf_1310_led' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='e1000_base_sx' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='49'>
+          <var-decl name='e1000_base_lx' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='50'>
+          <var-decl name='e1000_base_cx' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='51'>
+          <var-decl name='e1000_base_t' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='52'>
+          <var-decl name='e100_base_lx' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='53'>
+          <var-decl name='e100_base_fx' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='54'>
+          <var-decl name='e_base_bx10' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='55'>
+          <var-decl name='e_base_px' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='fc_tech_electrical_inter_enclosure' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='57'>
+          <var-decl name='fc_tech_lc' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='58'>
+          <var-decl name='fc_tech_sa' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='59'>
+          <var-decl name='fc_ll_m' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='60'>
+          <var-decl name='fc_ll_l' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='61'>
+          <var-decl name='fc_ll_i' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='62'>
+          <var-decl name='fc_ll_s' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='63'>
+          <var-decl name='fc_ll_v' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='unallocated_8_0' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='65'>
+          <var-decl name='unallocated_8_1' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='66'>
+          <var-decl name='sfp_ct_passive' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='67'>
+          <var-decl name='sfp_ct_active' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='68'>
+          <var-decl name='fc_tech_ll' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='69'>
+          <var-decl name='fc_tech_sl' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='70'>
+          <var-decl name='fc_tech_sn' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='71'>
+          <var-decl name='fc_tech_electrical_intra_enclosure' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='fc_media_sm' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='73'>
+          <var-decl name='unallocated_9_1' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='74'>
+          <var-decl name='fc_media_m5' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='75'>
+          <var-decl name='fc_media_m6' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='76'>
+          <var-decl name='fc_media_tv' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='77'>
+          <var-decl name='fc_media_mi' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='78'>
+          <var-decl name='fc_media_tp' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='79'>
+          <var-decl name='fc_media_tw' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='fc_speed_100' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='81'>
+          <var-decl name='unallocated_10_1' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='82'>
+          <var-decl name='fc_speed_200' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='83'>
+          <var-decl name='fc_speed_3200' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='84'>
+          <var-decl name='fc_speed_400' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='85'>
+          <var-decl name='fc_speed_1600' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='86'>
+          <var-decl name='fc_speed_800' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='87'>
+          <var-decl name='fc_speed_1200' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='encoding' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='br_nominal' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='rate_id' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='link_len' type-id='cf1a4160' visibility='default' filepath='include/linux/sfp.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='vendor_name' type-id='ac1fa8c0' visibility='default' filepath='include/linux/sfp.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='extended_cc' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='296'>
+          <var-decl name='vendor_oui' type-id='4df9d64a' visibility='default' filepath='include/linux/sfp.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='vendor_pn' type-id='ac1fa8c0' visibility='default' filepath='include/linux/sfp.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='vendor_rev' type-id='8e0573fd' visibility='default' filepath='include/linux/sfp.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='' type-id='ac5ab609' visibility='default' filepath='include/linux/sfp.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='496'>
+          <var-decl name='reserved62' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='504'>
+          <var-decl name='cc_base' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='205' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='devlink_port_pci_pf_attrs' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='78' column='1' id='cd0b5853'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='controller' type-id='19c2251e' visibility='default' filepath='include/net/devlink.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pf' type-id='1dc6a898' visibility='default' filepath='include/net/devlink.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='external' type-id='f9b06939' visibility='default' filepath='include/net/devlink.h' line='81' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2f896428' size-in-bits='64' id='cd10cf8e'/>
+      <function-type size-in-bits='64' id='cd1955fc'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='f57039f0'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='9f93c9da'/>
+        <parameter type-id='63e171df'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3f1a6b60' size-in-bits='64' id='cd1b45ab'/>
+      <qualified-type-def type-id='967c1c06' const='yes' id='cd1fc343'/>
+      <pointer-type-def type-id='683a8a93' size-in-bits='64' id='cd28613b'/>
+      <function-type size-in-bits='64' id='cd2b672f'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='b2c34f11'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='8f9ed095' size-in-bits='64' id='cd2cc9e1'/>
+      <function-type size-in-bits='64' id='cd313b90'>
+        <parameter type-id='7e666abe'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c66ae1d7' size-in-bits='64' id='cd386183'/>
+      <pointer-type-def type-id='16650a93' size-in-bits='64' id='cd3a82e3'/>
+      <pointer-type-def type-id='56ed3a25' size-in-bits='64' id='cd44bc95'/>
+      <function-type size-in-bits='64' id='cd4cfe6f'>
+        <parameter type-id='63a08bf7'/>
+        <parameter type-id='3eb7c31c'/>
+        <return type-id='1a494567'/>
+      </function-type>
+      <function-type size-in-bits='64' id='cd562d46'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='68a2d05b'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <class-decl name='kvec' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/uio.h' line='15' column='1' id='cd5915d8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='iov_base' type-id='eaa32e2f' visibility='default' filepath='include/linux/uio.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='iov_len' type-id='b59d7dce' visibility='default' filepath='include/linux/uio.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='cd5ad9b0'>
+        <parameter type-id='75ae4804'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='cd68bc93'>
+        <parameter type-id='85535682'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='2c0608e3' size-in-bits='64' id='cd6fc0f7'/>
+      <class-decl name='pm_qos_request' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/pm_qos.h' line='61' column='1' id='cd6fc142'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='e3a91a7c' visibility='default' filepath='include/linux/pm_qos.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='qos' type-id='40309edb' visibility='default' filepath='include/linux/pm_qos.h' line='63' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cfe4f8a2' size-in-bits='64' id='cd733e18'/>
+      <class-decl name='ack_sample' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/net/tcp.h' line='1008' column='1' id='cd7d3c9d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pkts_acked' type-id='19c2251e' visibility='default' filepath='include/net/tcp.h' line='1009' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='rtt_us' type-id='a7832498' visibility='default' filepath='include/net/tcp.h' line='1010' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='in_flight' type-id='19c2251e' visibility='default' filepath='include/net/tcp.h' line='1011' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='phylink_link_state' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/phylink.h' line='43' column='1' id='cd8ce92b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='advertising' type-id='f05e8e77' visibility='default' filepath='include/linux/phylink.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lp_advertising' type-id='f05e8e77' visibility='default' filepath='include/linux/phylink.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='interface' type-id='d61bf978' visibility='default' filepath='include/linux/phylink.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='speed' type-id='95e97e5e' visibility='default' filepath='include/linux/phylink.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='duplex' type-id='95e97e5e' visibility='default' filepath='include/linux/phylink.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='pause' type-id='95e97e5e' visibility='default' filepath='include/linux/phylink.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='link' type-id='f0981eeb' visibility='default' filepath='include/linux/phylink.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='385'>
+          <var-decl name='an_enabled' type-id='f0981eeb' visibility='default' filepath='include/linux/phylink.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='386'>
+          <var-decl name='an_complete' type-id='f0981eeb' visibility='default' filepath='include/linux/phylink.h' line='52' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c4d0818f' size-in-bits='64' id='cd91b317'/>
+      <pointer-type-def type-id='c435a5bb' size-in-bits='64' id='cd97030f'/>
+      <function-type size-in-bits='64' id='cd9a7e6e'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='2bbc3c28'/>
+        <parameter type-id='67ab6f39'/>
+        <parameter type-id='f9409001'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='cd9acaaa'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='iio_chan_info_enum' filepath='include/linux/iio/types.h' line='36' column='1' id='cda049ab'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='IIO_CHAN_INFO_RAW' value='0'/>
+        <enumerator name='IIO_CHAN_INFO_PROCESSED' value='1'/>
+        <enumerator name='IIO_CHAN_INFO_SCALE' value='2'/>
+        <enumerator name='IIO_CHAN_INFO_OFFSET' value='3'/>
+        <enumerator name='IIO_CHAN_INFO_CALIBSCALE' value='4'/>
+        <enumerator name='IIO_CHAN_INFO_CALIBBIAS' value='5'/>
+        <enumerator name='IIO_CHAN_INFO_PEAK' value='6'/>
+        <enumerator name='IIO_CHAN_INFO_PEAK_SCALE' value='7'/>
+        <enumerator name='IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW' value='8'/>
+        <enumerator name='IIO_CHAN_INFO_AVERAGE_RAW' value='9'/>
+        <enumerator name='IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY' value='10'/>
+        <enumerator name='IIO_CHAN_INFO_HIGH_PASS_FILTER_3DB_FREQUENCY' value='11'/>
+        <enumerator name='IIO_CHAN_INFO_SAMP_FREQ' value='12'/>
+        <enumerator name='IIO_CHAN_INFO_FREQUENCY' value='13'/>
+        <enumerator name='IIO_CHAN_INFO_PHASE' value='14'/>
+        <enumerator name='IIO_CHAN_INFO_HARDWAREGAIN' value='15'/>
+        <enumerator name='IIO_CHAN_INFO_HYSTERESIS' value='16'/>
+        <enumerator name='IIO_CHAN_INFO_HYSTERESIS_RELATIVE' value='17'/>
+        <enumerator name='IIO_CHAN_INFO_INT_TIME' value='18'/>
+        <enumerator name='IIO_CHAN_INFO_ENABLE' value='19'/>
+        <enumerator name='IIO_CHAN_INFO_CALIBHEIGHT' value='20'/>
+        <enumerator name='IIO_CHAN_INFO_CALIBWEIGHT' value='21'/>
+        <enumerator name='IIO_CHAN_INFO_DEBOUNCE_COUNT' value='22'/>
+        <enumerator name='IIO_CHAN_INFO_DEBOUNCE_TIME' value='23'/>
+        <enumerator name='IIO_CHAN_INFO_CALIBEMISSIVITY' value='24'/>
+        <enumerator name='IIO_CHAN_INFO_OVERSAMPLING_RATIO' value='25'/>
+        <enumerator name='IIO_CHAN_INFO_THERMOCOUPLE_TYPE' value='26'/>
+        <enumerator name='IIO_CHAN_INFO_CALIBAMBIENT' value='27'/>
+      </enum-decl>
+      <pointer-type-def type-id='795e6d94' size-in-bits='64' id='cda6c21a'/>
+      <function-type size-in-bits='64' id='cda9d9e5'>
+        <parameter type-id='aa9ea333'/>
+        <return type-id='b59d7dce'/>
+      </function-type>
+      <function-type size-in-bits='64' id='cda9f6b0'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='cc8d835a'/>
+        <parameter type-id='39341f7e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='v4l2_dv_timings_cap' size-in-bits='1152' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1636' column='1' id='cdb274e3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1637' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pad' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1638' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reserved' type-id='839e8989' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1639' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='' type-id='ac5ab5fa' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1640' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='irq_flow_handler_t' type-id='8937f3c2' filepath='include/linux/irqhandler.h' line='12' column='1' id='cdb741d3'/>
+      <class-decl name='reset_control' size-in-bits='384' is-struct='yes' visibility='default' filepath='drivers/reset/core.c' line='41' column='1' id='cdc9541e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rcdev' type-id='775147d9' visibility='default' filepath='drivers/reset/core.c' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='drivers/reset/core.c' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='id' type-id='f0981eeb' visibility='default' filepath='drivers/reset/core.c' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='refcnt' type-id='400fb07b' visibility='default' filepath='drivers/reset/core.c' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='acquired' type-id='b50a4934' visibility='default' filepath='drivers/reset/core.c' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='264'>
+          <var-decl name='shared' type-id='b50a4934' visibility='default' filepath='drivers/reset/core.c' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='array' type-id='b50a4934' visibility='default' filepath='drivers/reset/core.c' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='deassert_count' type-id='49178f86' visibility='default' filepath='drivers/reset/core.c' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='triggered_count' type-id='49178f86' visibility='default' filepath='drivers/reset/core.c' line='50' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='blk_crypto_config' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/blk-crypto.h' line='33' column='1' id='cdcb89ef'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='crypto_mode' type-id='e951e732' visibility='default' filepath='include/linux/blk-crypto.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='data_unit_size' type-id='f0981eeb' visibility='default' filepath='include/linux/blk-crypto.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dun_bytes' type-id='f0981eeb' visibility='default' filepath='include/linux/blk-crypto.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='is_hw_wrapped' type-id='b50a4934' visibility='default' filepath='include/linux/blk-crypto.h' line='37' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='cdd056d2'>
+        <parameter type-id='9c313c2d'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='cdd79d4e'>
+        <parameter type-id='67f526b5'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <class-decl name='devlink_flash_update_params' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='639' column='1' id='cdd8abe6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fw' type-id='fce0537d' visibility='default' filepath='include/net/devlink.h' line='640' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='component' type-id='80f4b756' visibility='default' filepath='include/net/devlink.h' line='641' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='overwrite_mask' type-id='19c2251e' visibility='default' filepath='include/net/devlink.h' line='642' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ethtool_tcpip6_spec' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='914' column='1' id='cdd8eaf7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ip6src' type-id='30180d4b' visibility='default' filepath='include/uapi/linux/ethtool.h' line='915' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ip6dst' type-id='30180d4b' visibility='default' filepath='include/uapi/linux/ethtool.h' line='916' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='psrc' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ethtool.h' line='917' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='pdst' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ethtool.h' line='918' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='tclass' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='919' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='28328cfd' size-in-bits='64' id='cdd9c579'/>
+      <pointer-type-def type-id='40af3608' size-in-bits='64' id='cddcb53e'/>
+      <class-decl name='xfrm_sec_ctx' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/xfrm.h' line='31' column='1' id='cddfb84e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ctx_doi' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/xfrm.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='ctx_alg' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/xfrm.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='ctx_len' type-id='d315442e' visibility='default' filepath='include/uapi/linux/xfrm.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ctx_sid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/xfrm.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ctx_str' type-id='e84913bd' visibility='default' filepath='include/uapi/linux/xfrm.h' line='36' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='blk_mq_ctx' size-in-bits='2560' is-struct='yes' visibility='default' filepath='block/blk-mq.h' line='18' column='1' id='cde99b39'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='e7f43f82' visibility='default' filepath='block/blk-mq.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='cpu' type-id='f0981eeb' visibility='default' filepath='block/blk-mq.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='index_hw' type-id='ff2536e2' visibility='default' filepath='block/blk-mq.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='hctxs' type-id='56ac7648' visibility='default' filepath='block/blk-mq.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='rq_dispatched' type-id='f05e8e77' visibility='default' filepath='block/blk-mq.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='rq_merged' type-id='7359adad' visibility='default' filepath='block/blk-mq.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='rq_completed' type-id='f05e8e77' visibility='default' filepath='block/blk-mq.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='queue' type-id='e7d2a5fc' visibility='default' filepath='block/blk-mq.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='ctxs' type-id='ceead144' visibility='default' filepath='block/blk-mq.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='block/blk-mq.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='android_oem_data1' type-id='24a375b2' visibility='default' filepath='block/blk-mq.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='16773614' size-in-bits='64' id='cdea3372'/>
+      <pointer-type-def type-id='23f90633' size-in-bits='64' id='cdea97c3'/>
+      <function-type size-in-bits='64' id='cdead692'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='d30bdc51'/>
+        <parameter type-id='c0e2acc9'/>
+        <parameter type-id='2ae08426'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='sk_psock' size-in-bits='3072' is-struct='yes' visibility='default' filepath='include/linux/skmsg.h' line='80' column='1' id='cdec0c9c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sk' type-id='f772df6d' visibility='default' filepath='include/linux/skmsg.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sk_redir' type-id='f772df6d' visibility='default' filepath='include/linux/skmsg.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='apply_bytes' type-id='19c2251e' visibility='default' filepath='include/linux/skmsg.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='cork_bytes' type-id='19c2251e' visibility='default' filepath='include/linux/skmsg.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='eval' type-id='19c2251e' visibility='default' filepath='include/linux/skmsg.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='cork' type-id='d5323b6d' visibility='default' filepath='include/linux/skmsg.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='progs' type-id='e48b8d96' visibility='default' filepath='include/linux/skmsg.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ingress_skb' type-id='e61c85d0' visibility='default' filepath='include/linux/skmsg.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='ingress_msg' type-id='72f469ec' visibility='default' filepath='include/linux/skmsg.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='ingress_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/skmsg.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='state' type-id='7359adad' visibility='default' filepath='include/linux/skmsg.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='link' type-id='72f469ec' visibility='default' filepath='include/linux/skmsg.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='link_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/skmsg.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/linux/skmsg.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='saved_unhash' type-id='841969d0' visibility='default' filepath='include/linux/skmsg.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='saved_close' type-id='09f3a86b' visibility='default' filepath='include/linux/skmsg.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='saved_write_space' type-id='841969d0' visibility='default' filepath='include/linux/skmsg.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='saved_data_ready' type-id='841969d0' visibility='default' filepath='include/linux/skmsg.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='psock_update_sk_prot' type-id='dca6f5c7' visibility='default' filepath='include/linux/skmsg.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='sk_proto' type-id='d2524501' visibility='default' filepath='include/linux/skmsg.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='work_mutex' type-id='925167dc' visibility='default' filepath='include/linux/skmsg.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='work_state' type-id='f4baf142' visibility='default' filepath='include/linux/skmsg.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/linux/skmsg.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='rwork' type-id='7c0b9fdb' visibility='default' filepath='include/linux/skmsg.h' line='108' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='52999e5a' size-in-bits='64' id='cdf785b8'/>
+      <pointer-type-def type-id='41425a4b' size-in-bits='64' id='cdff193b'/>
+      <qualified-type-def type-id='f6ed712a' const='yes' id='ce076883'/>
+      <pointer-type-def type-id='5cb8e7e2' size-in-bits='64' id='ce092740'/>
+      <pointer-type-def type-id='c0b8a70b' size-in-bits='64' id='ce0ef2cf'/>
+      <enum-decl name='key_being_used_for' filepath='include/linux/verification.h' line='23' column='1' id='ce22776d'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='VERIFYING_MODULE_SIGNATURE' value='0'/>
+        <enumerator name='VERIFYING_FIRMWARE_SIGNATURE' value='1'/>
+        <enumerator name='VERIFYING_KEXEC_PE_SIGNATURE' value='2'/>
+        <enumerator name='VERIFYING_KEY_SIGNATURE' value='3'/>
+        <enumerator name='VERIFYING_KEY_SELF_SIGNATURE' value='4'/>
+        <enumerator name='VERIFYING_UNSPECIFIED_SIGNATURE' value='5'/>
+        <enumerator name='NR__KEY_BEING_USED_FOR' value='6'/>
+      </enum-decl>
+      <class-decl name='ieee80211_rate' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='273' column='1' id='ce30b5d2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bitrate' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='hw_value' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hw_value_short' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='276' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a65e4d6b' size-in-bits='64' id='ce54d147'/>
+      <function-type size-in-bits='64' id='ce67f06c'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='6b9b777a'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='7292109c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ce6ad852'>
+        <parameter type-id='182be7cc'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='20047fcf' size-in-bits='64' id='ce713533'/>
+      <pointer-type-def type-id='f8d03d40' size-in-bits='64' id='ce714046'/>
+      <pointer-type-def type-id='76620c4d' size-in-bits='64' id='ce744351'/>
+      <pointer-type-def type-id='9f26676f' size-in-bits='64' id='ce74919f'/>
+      <pointer-type-def type-id='70ff05c7' size-in-bits='64' id='ce765417'/>
+      <enum-decl name='pid_type' filepath='include/linux/pid.h' line='9' column='1' id='ce78cf46'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PIDTYPE_PID' value='0'/>
+        <enumerator name='PIDTYPE_TGID' value='1'/>
+        <enumerator name='PIDTYPE_PGID' value='2'/>
+        <enumerator name='PIDTYPE_SID' value='3'/>
+        <enumerator name='PIDTYPE_MAX' value='4'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='ce79ab50'>
+        <parameter type-id='74b427eb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='d3130597' size-in-bits='256' id='ce805d5e'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <pointer-type-def type-id='29c6d348' size-in-bits='64' id='ce828302'/>
+      <pointer-type-def type-id='56958353' size-in-bits='64' id='ce828d9f'/>
+      <class-decl name='percpu_rw_semaphore' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/percpu-rwsem.h' line='15' column='1' id='ce848ab1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rss' type-id='638a7d75' visibility='default' filepath='include/linux/percpu-rwsem.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='read_count' type-id='807869d3' visibility='default' filepath='include/linux/percpu-rwsem.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='writer' type-id='71598d38' visibility='default' filepath='include/linux/percpu-rwsem.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='' type-id='ac5ab649' visibility='default' filepath='include/linux/percpu-rwsem.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='block' type-id='49178f86' visibility='default' filepath='include/linux/percpu-rwsem.h' line='27' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='dma_fence' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/dma-fence.h' line='65' column='1' id='ce8c45a3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='cff2d845' visibility='default' filepath='include/linux/dma-fence.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ops' type-id='13d85783' visibility='default' filepath='include/linux/dma-fence.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='' type-id='ac5ab5d4' visibility='default' filepath='include/linux/dma-fence.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='context' type-id='91ce1af9' visibility='default' filepath='include/linux/dma-fence.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='seqno' type-id='91ce1af9' visibility='default' filepath='include/linux/dma-fence.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/dma-fence.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='refcount' type-id='400fb07b' visibility='default' filepath='include/linux/dma-fence.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='error' type-id='95e97e5e' visibility='default' filepath='include/linux/dma-fence.h' line='95' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='738a877b' size-in-bits='64' id='ce94579b'/>
+      <function-type size-in-bits='64' id='cea824ff'>
+        <parameter type-id='15d29710'/>
+        <parameter type-id='e15f3242'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='84730732' size-in-bits='64' id='ceacf83c'/>
+      <pointer-type-def type-id='98985516' size-in-bits='64' id='cead4188'/>
+      <class-decl name='inet_sock' size-in-bits='8576' is-struct='yes' visibility='default' filepath='include/net/inet_sock.h' line='208' column='1' id='cec16d30'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sk' type-id='a240f41d' visibility='default' filepath='include/net/inet_sock.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6976'>
+          <var-decl name='pinet6' type-id='6d320b83' visibility='default' filepath='include/net/inet_sock.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7040'>
+          <var-decl name='inet_saddr' type-id='78a133c2' visibility='default' filepath='include/net/inet_sock.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7072'>
+          <var-decl name='uc_ttl' type-id='b55def60' visibility='default' filepath='include/net/inet_sock.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7088'>
+          <var-decl name='cmsg_flags' type-id='d315442e' visibility='default' filepath='include/net/inet_sock.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7104'>
+          <var-decl name='inet_opt' type-id='70119ea2' visibility='default' filepath='include/net/inet_sock.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7168'>
+          <var-decl name='inet_sport' type-id='84a5c3d4' visibility='default' filepath='include/net/inet_sock.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7184'>
+          <var-decl name='inet_id' type-id='d315442e' visibility='default' filepath='include/net/inet_sock.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7200'>
+          <var-decl name='tos' type-id='8f048e17' visibility='default' filepath='include/net/inet_sock.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7208'>
+          <var-decl name='min_ttl' type-id='8f048e17' visibility='default' filepath='include/net/inet_sock.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7216'>
+          <var-decl name='mc_ttl' type-id='8f048e17' visibility='default' filepath='include/net/inet_sock.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7224'>
+          <var-decl name='pmtudisc' type-id='8f048e17' visibility='default' filepath='include/net/inet_sock.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7232'>
+          <var-decl name='recverr' type-id='8f048e17' visibility='default' filepath='include/net/inet_sock.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7233'>
+          <var-decl name='is_icsk' type-id='8f048e17' visibility='default' filepath='include/net/inet_sock.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7234'>
+          <var-decl name='freebind' type-id='8f048e17' visibility='default' filepath='include/net/inet_sock.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7235'>
+          <var-decl name='hdrincl' type-id='8f048e17' visibility='default' filepath='include/net/inet_sock.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7236'>
+          <var-decl name='mc_loop' type-id='8f048e17' visibility='default' filepath='include/net/inet_sock.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7237'>
+          <var-decl name='transparent' type-id='8f048e17' visibility='default' filepath='include/net/inet_sock.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7238'>
+          <var-decl name='mc_all' type-id='8f048e17' visibility='default' filepath='include/net/inet_sock.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7239'>
+          <var-decl name='nodefrag' type-id='8f048e17' visibility='default' filepath='include/net/inet_sock.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7240'>
+          <var-decl name='bind_address_no_port' type-id='8f048e17' visibility='default' filepath='include/net/inet_sock.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7241'>
+          <var-decl name='recverr_rfc4884' type-id='8f048e17' visibility='default' filepath='include/net/inet_sock.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7242'>
+          <var-decl name='defer_connect' type-id='8f048e17' visibility='default' filepath='include/net/inet_sock.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7248'>
+          <var-decl name='rcv_tos' type-id='8f048e17' visibility='default' filepath='include/net/inet_sock.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7256'>
+          <var-decl name='convert_csum' type-id='8f048e17' visibility='default' filepath='include/net/inet_sock.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7264'>
+          <var-decl name='uc_index' type-id='95e97e5e' visibility='default' filepath='include/net/inet_sock.h' line='247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='mc_index' type-id='95e97e5e' visibility='default' filepath='include/net/inet_sock.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7328'>
+          <var-decl name='mc_addr' type-id='78a133c2' visibility='default' filepath='include/net/inet_sock.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='mc_list' type-id='b49efd08' visibility='default' filepath='include/net/inet_sock.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='cork' type-id='da785a0b' visibility='default' filepath='include/net/inet_sock.h' line='251' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='72a973b7' size-in-bits='49600' id='cec4db9b'>
+        <subrange length='31' type-id='7ff19f0f' id='ae5e1d19'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='cecfa2ad'>
+        <parameter type-id='4db02c58'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='snd_device' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/sound/core.h' line='70' column='1' id='ced794e3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/sound/core.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='card' type-id='52704eb7' visibility='default' filepath='include/sound/core.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='state' type-id='9c857434' visibility='default' filepath='include/sound/core.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='type' type-id='43cb465b' visibility='default' filepath='include/sound/core.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='device_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/core.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ops' type-id='c00b0b11' visibility='default' filepath='include/sound/core.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/core.h' line='78' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9a22e8f5' size-in-bits='64' id='ced7d449'/>
+      <pointer-type-def type-id='86ff0c70' size-in-bits='64' id='ced7e5d2'/>
+      <class-decl name='usb_phy_roothub' is-struct='yes' visibility='default' is-declaration-only='yes' id='ceda742d'/>
+      <class-decl name='user_pt_regs' size-in-bits='2176' is-struct='yes' visibility='default' filepath='arch/arm64/include/uapi/asm/ptrace.h' line='88' column='1' id='cedec667'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='regs' type-id='cb6b7280' visibility='default' filepath='arch/arm64/include/uapi/asm/ptrace.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='sp' type-id='d3130597' visibility='default' filepath='arch/arm64/include/uapi/asm/ptrace.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='pc' type-id='d3130597' visibility='default' filepath='arch/arm64/include/uapi/asm/ptrace.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='pstate' type-id='d3130597' visibility='default' filepath='arch/arm64/include/uapi/asm/ptrace.h' line='92' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6d009fe7' size-in-bits='64' id='cee845ff'/>
+      <enum-decl name='usb3_link_state' filepath='include/uapi/linux/usb/ch9.h' line='1194' column='1' id='cee9c4f2'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='USB3_LPM_U0' value='0'/>
+        <enumerator name='USB3_LPM_U1' value='1'/>
+        <enumerator name='USB3_LPM_U2' value='2'/>
+        <enumerator name='USB3_LPM_U3' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='70bf757e' size-in-bits='64' id='ceead144'/>
+      <class-decl name='request' size-in-bits='2432' is-struct='yes' visibility='default' filepath='include/linux/blkdev.h' line='120' column='1' id='ceee71ca'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='q' type-id='e7d2a5fc' visibility='default' filepath='include/linux/blkdev.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mq_ctx' type-id='9a335021' visibility='default' filepath='include/linux/blkdev.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mq_hctx' type-id='a47d3467' visibility='default' filepath='include/linux/blkdev.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cmd_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='rq_flags' type-id='3b445e53' visibility='default' filepath='include/linux/blkdev.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='tag' type-id='95e97e5e' visibility='default' filepath='include/linux/blkdev.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='internal_tag' type-id='95e97e5e' visibility='default' filepath='include/linux/blkdev.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='__data_len' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='__sector' type-id='a42536cd' visibility='default' filepath='include/linux/blkdev.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='bio' type-id='fb55efa1' visibility='default' filepath='include/linux/blkdev.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='biotail' type-id='fb55efa1' visibility='default' filepath='include/linux/blkdev.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='queuelist' type-id='72f469ec' visibility='default' filepath='include/linux/blkdev.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='' type-id='ac5ab663' visibility='default' filepath='include/linux/blkdev.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='' type-id='ac5ab664' visibility='default' filepath='include/linux/blkdev.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='' type-id='ac5ab665' visibility='default' filepath='include/linux/blkdev.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='rq_disk' type-id='33c599da' visibility='default' filepath='include/linux/blkdev.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='part' type-id='b88dd945' visibility='default' filepath='include/linux/blkdev.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='alloc_time_ns' type-id='91ce1af9' visibility='default' filepath='include/linux/blkdev.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='start_time_ns' type-id='91ce1af9' visibility='default' filepath='include/linux/blkdev.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='io_start_time_ns' type-id='91ce1af9' visibility='default' filepath='include/linux/blkdev.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='stats_sectors' type-id='8efea9e5' visibility='default' filepath='include/linux/blkdev.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1616'>
+          <var-decl name='nr_phys_segments' type-id='8efea9e5' visibility='default' filepath='include/linux/blkdev.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='crypt_ctx' type-id='9d1360ce' visibility='default' filepath='include/linux/blkdev.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='crypt_keyslot' type-id='5b559658' visibility='default' filepath='include/linux/blkdev.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='write_hint' type-id='8efea9e5' visibility='default' filepath='include/linux/blkdev.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1808'>
+          <var-decl name='ioprio' type-id='8efea9e5' visibility='default' filepath='include/linux/blkdev.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1824'>
+          <var-decl name='state' type-id='4df77f20' visibility='default' filepath='include/linux/blkdev.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='ref' type-id='64615833' visibility='default' filepath='include/linux/blkdev.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1888'>
+          <var-decl name='timeout' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='deadline' type-id='7359adad' visibility='default' filepath='include/linux/blkdev.h' line='226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='' type-id='ac5ab666' visibility='default' filepath='include/linux/blkdev.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='end_io' type-id='5afdaa66' visibility='default' filepath='include/linux/blkdev.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='end_io_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/blkdev.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/blkdev.h' line='239' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='cef38194'>
+        <parameter type-id='4db02c58'/>
+        <parameter type-id='e3dd029e'/>
+        <return type-id='74d89ebd'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='72' id='cef57087'>
+        <subrange length='9' type-id='7ff19f0f' id='12e4273c'/>
+      </array-type-def>
+      <qualified-type-def type-id='70ab3bc7' const='yes' id='ceff8680'/>
+      <class-decl name='xhci_erst_entry' size-in-bits='128' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1652' column='1' id='cf081899'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='seg_addr' type-id='a30e8d1f' visibility='default' filepath='drivers/usb/host/xhci.h' line='1654' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='seg_size' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='1655' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='rsvd' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='1657' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9e02903b' size-in-bits='64' id='cf08cac3'/>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='8' id='cf08f83f'>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+      </array-type-def>
+      <pointer-type-def type-id='98789900' size-in-bits='64' id='cf0b24c2'/>
+      <pointer-type-def type-id='c6fb2ff8' size-in-bits='64' id='cf0da35e'/>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='16' id='cf114704'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <enum-decl name='v4l2_ctrl_type' filepath='include/uapi/linux/videodev2.h' line='1783' column='1' id='cf13dc99'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='V4L2_CTRL_TYPE_INTEGER' value='1'/>
+        <enumerator name='V4L2_CTRL_TYPE_BOOLEAN' value='2'/>
+        <enumerator name='V4L2_CTRL_TYPE_MENU' value='3'/>
+        <enumerator name='V4L2_CTRL_TYPE_BUTTON' value='4'/>
+        <enumerator name='V4L2_CTRL_TYPE_INTEGER64' value='5'/>
+        <enumerator name='V4L2_CTRL_TYPE_CTRL_CLASS' value='6'/>
+        <enumerator name='V4L2_CTRL_TYPE_STRING' value='7'/>
+        <enumerator name='V4L2_CTRL_TYPE_BITMASK' value='8'/>
+        <enumerator name='V4L2_CTRL_TYPE_INTEGER_MENU' value='9'/>
+        <enumerator name='V4L2_CTRL_COMPOUND_TYPES' value='256'/>
+        <enumerator name='V4L2_CTRL_TYPE_U8' value='256'/>
+        <enumerator name='V4L2_CTRL_TYPE_U16' value='257'/>
+        <enumerator name='V4L2_CTRL_TYPE_U32' value='258'/>
+        <enumerator name='V4L2_CTRL_TYPE_AREA' value='262'/>
+        <enumerator name='V4L2_CTRL_TYPE_HDR10_CLL_INFO' value='272'/>
+        <enumerator name='V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY' value='273'/>
+        <enumerator name='V4L2_CTRL_TYPE_H264_SPS' value='512'/>
+        <enumerator name='V4L2_CTRL_TYPE_H264_PPS' value='513'/>
+        <enumerator name='V4L2_CTRL_TYPE_H264_SCALING_MATRIX' value='514'/>
+        <enumerator name='V4L2_CTRL_TYPE_H264_SLICE_PARAMS' value='515'/>
+        <enumerator name='V4L2_CTRL_TYPE_H264_DECODE_PARAMS' value='516'/>
+        <enumerator name='V4L2_CTRL_TYPE_H264_PRED_WEIGHTS' value='517'/>
+        <enumerator name='V4L2_CTRL_TYPE_FWHT_PARAMS' value='544'/>
+        <enumerator name='V4L2_CTRL_TYPE_VP8_FRAME' value='576'/>
+        <enumerator name='V4L2_CTRL_TYPE_MPEG2_QUANTISATION' value='592'/>
+        <enumerator name='V4L2_CTRL_TYPE_MPEG2_SEQUENCE' value='593'/>
+        <enumerator name='V4L2_CTRL_TYPE_MPEG2_PICTURE' value='594'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='48' id='cf1a4160'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <typedef-decl name='regmap_unlock' type-id='b7f9d8e6' filepath='include/linux/regmap.h' line='229' column='1' id='cf202c75'/>
+      <class-decl name='nvmem_cell_info' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/nvmem-consumer.h' line='22' column='1' id='cf20ba04'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/nvmem-consumer.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='offset' type-id='f0981eeb' visibility='default' filepath='include/linux/nvmem-consumer.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='bytes' type-id='f0981eeb' visibility='default' filepath='include/linux/nvmem-consumer.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bit_offset' type-id='f0981eeb' visibility='default' filepath='include/linux/nvmem-consumer.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='nbits' type-id='f0981eeb' visibility='default' filepath='include/linux/nvmem-consumer.h' line='27' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='47658c9d' size-in-bits='64' id='cf265ed1'/>
+      <typedef-decl name='dma_addr_t' type-id='91ce1af9' filepath='include/linux/types.h' line='143' column='1' id='cf29c9b3'/>
+      <array-type-def dimensions='1' type-id='30847fcd' size-in-bits='2688' id='cf2a9adf'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <class-decl name='snd_pcm_audio_tstamp_config' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/sound/pcm.h' line='298' column='1' id='cf2e67bb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type_requested' type-id='19c2251e' visibility='default' filepath='include/sound/pcm.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4'>
+          <var-decl name='report_delay' type-id='19c2251e' visibility='default' filepath='include/sound/pcm.h' line='301' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c184e101' size-in-bits='64' id='cf2e76b1'/>
+      <class-decl name='netdev_name_node' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='1045' column='1' id='cf2e8db8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hlist' type-id='03a4a074' visibility='default' filepath='include/linux/netdevice.h' line='1046' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/netdevice.h' line='1047' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/linux/netdevice.h' line='1048' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/netdevice.h' line='1049' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='macsec_validation_type' filepath='include/uapi/linux/if_link.h' line='678' column='1' id='cf33b9c3'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='MACSEC_VALIDATE_DISABLED' value='0'/>
+        <enumerator name='MACSEC_VALIDATE_CHECK' value='1'/>
+        <enumerator name='MACSEC_VALIDATE_STRICT' value='2'/>
+        <enumerator name='__MACSEC_VALIDATE_END' value='3'/>
+        <enumerator name='MACSEC_VALIDATE_MAX' value='2'/>
+      </enum-decl>
+      <qualified-type-def type-id='e07b5dbe' const='yes' id='cf3752f1'/>
+      <class-decl name='posix_clock' size-in-bits='2368' is-struct='yes' visibility='default' filepath='include/linux/posix-clock.h' line='85' column='1' id='cf396435'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='e33075c0' visibility='default' filepath='include/linux/posix-clock.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='cdev' type-id='22f86351' visibility='default' filepath='include/linux/posix-clock.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/posix-clock.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='rwsem' type-id='f19fdb93' visibility='default' filepath='include/linux/posix-clock.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='zombie' type-id='b50a4934' visibility='default' filepath='include/linux/posix-clock.h' line='90' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='cf42b48f'>
+        <parameter type-id='374b228b'/>
+        <parameter type-id='d03b0979'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7bd1ccce' size-in-bits='64' id='cf458aec'/>
+      <qualified-type-def type-id='2a8ca227' const='yes' id='cf470d6a'/>
+      <pointer-type-def type-id='002ac4a6' size-in-bits='64' id='cf536864'/>
+      <function-type size-in-bits='64' id='cf5da15f'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='2871909b'/>
+      </function-type>
+      <pointer-type-def type-id='65dcab5f' size-in-bits='64' id='cf61e92f'/>
+      <class-decl name='cpuidle_driver_kobj' is-struct='yes' visibility='default' is-declaration-only='yes' id='cf6b9835'/>
+      <pointer-type-def type-id='29ce7f43' size-in-bits='64' id='cf77d29f'/>
+      <class-decl name='thermal_zone_device_ops' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/thermal.h' line='61' column='1' id='cf7993c1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bind' type-id='911521f6' visibility='default' filepath='include/linux/thermal.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='unbind' type-id='911521f6' visibility='default' filepath='include/linux/thermal.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='get_temp' type-id='b09cd03d' visibility='default' filepath='include/linux/thermal.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='set_trips' type-id='9a2b46ca' visibility='default' filepath='include/linux/thermal.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='change_mode' type-id='dee53645' visibility='default' filepath='include/linux/thermal.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='get_trip_type' type-id='5e1def9d' visibility='default' filepath='include/linux/thermal.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='get_trip_temp' type-id='01443742' visibility='default' filepath='include/linux/thermal.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='set_trip_temp' type-id='9a2b46ca' visibility='default' filepath='include/linux/thermal.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='get_trip_hyst' type-id='01443742' visibility='default' filepath='include/linux/thermal.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='set_trip_hyst' type-id='9a2b46ca' visibility='default' filepath='include/linux/thermal.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='get_crit_temp' type-id='b09cd03d' visibility='default' filepath='include/linux/thermal.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='set_emul_temp' type-id='336c2e63' visibility='default' filepath='include/linux/thermal.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='get_trend' type-id='11d0d204' visibility='default' filepath='include/linux/thermal.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='hot' type-id='7a1ba1ed' visibility='default' filepath='include/linux/thermal.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='critical' type-id='7a1ba1ed' visibility='default' filepath='include/linux/thermal.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/thermal.h' line='83' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='cf8359c9'>
+        <parameter type-id='abd62a96'/>
+        <parameter type-id='ce092740'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='snd_info_entry_text' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/sound/info.h' line='30' column='1' id='cf87b76c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='read' type-id='f695e0b6' visibility='default' filepath='include/sound/info.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='write' type-id='f695e0b6' visibility='default' filepath='include/sound/info.h' line='33' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='cf8cfd4f'>
+        <parameter type-id='7ac48c21'/>
+        <parameter type-id='80f4b756'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='iomap_dio_ops' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/iomap.h' line='319' column='1' id='cf8d368d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='end_io' type-id='113f7bd4' visibility='default' filepath='include/linux/iomap.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='submit_io' type-id='b880ecef' visibility='default' filepath='include/linux/iomap.h' line='322' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='clk_hw' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/clk-provider.h' line='326' column='1' id='cf8d7d81'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='core' type-id='ba21e62b' visibility='default' filepath='include/linux/clk-provider.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='clk' type-id='7d0bc0eb' visibility='default' filepath='include/linux/clk-provider.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='init' type-id='b6a95a02' visibility='default' filepath='include/linux/clk-provider.h' line='329' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='action_gate_entry' is-struct='yes' visibility='default' is-declaration-only='yes' id='cf8ff924'/>
+      <enum-decl name='writeback_sync_modes' filepath='include/linux/writeback.h' line='41' column='1' id='cf92d981'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='WB_SYNC_NONE' value='0'/>
+        <enumerator name='WB_SYNC_ALL' value='1'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='cf96947e'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='fc0e8b7b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='cf9a081c'>
+        <parameter type-id='19e05b5f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='nf_conn' size-in-bits='2240' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='74' column='1' id='cf9b45ac'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ct_general' type-id='d9fc42c3' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='timeout' type-id='19c2251e' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tuplehash' type-id='379a2915' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='status' type-id='7359adad' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='cpu' type-id='1dc6a898' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='ct_net' type-id='c9df1e6c' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='nat_bysource' type-id='03a4a074' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='__nfct_init_offset' type-id='e7f44052' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='master' type-id='8c493d8a' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='mark' type-id='9586cc7b' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='secmark' type-id='9586cc7b' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='ext' type-id='3ba63619' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='proto' type-id='1f42e327' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='android_oem_data1' type-id='91ce1af9' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='129' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='cf9ec29d'>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='cfa1a37d'>
+        <parameter type-id='88146159'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='63b6be81' const='yes' id='cfa9604e'/>
+      <enum-decl name='stack_type' filepath='arch/arm64/include/asm/stacktrace.h' line='17' column='1' id='cfa989ad'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='STACK_TYPE_UNKNOWN' value='0'/>
+        <enumerator name='STACK_TYPE_TASK' value='1'/>
+        <enumerator name='STACK_TYPE_IRQ' value='2'/>
+        <enumerator name='STACK_TYPE_OVERFLOW' value='3'/>
+        <enumerator name='STACK_TYPE_SDEI_NORMAL' value='4'/>
+        <enumerator name='STACK_TYPE_SDEI_CRITICAL' value='5'/>
+        <enumerator name='__NR_STACK_TYPES' value='6'/>
+      </enum-decl>
+      <pointer-type-def type-id='d5408851' size-in-bits='64' id='cfb1203d'/>
+      <function-type size-in-bits='64' id='cfb839d2'>
+        <parameter type-id='db362995'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='94dd3300' size-in-bits='64' id='cfbdf512'/>
+      <class-decl name='iommu_fault_page_request' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/iommu.h' line='94' column='1' id='cfbe6297'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pasid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='grpid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='perm' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='addr' type-id='d3130597' visibility='default' filepath='include/uapi/linux/iommu.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='private_data' type-id='8a7b7524' visibility='default' filepath='include/uapi/linux/iommu.h' line='104' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='cfc17f8f'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='b954583a' size-in-bits='64' id='cfc6a130'/>
+      <array-type-def dimensions='1' type-id='15adb516' size-in-bits='1024' id='cfc91983'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <pointer-type-def type-id='bcf9ffa5' size-in-bits='64' id='cfc95081'/>
+      <pointer-type-def type-id='2fe6f208' size-in-bits='64' id='cfd15e7e'/>
+      <qualified-type-def type-id='8c2bf2b2' const='yes' id='cfd499ab'/>
+      <pointer-type-def type-id='bdf845e8' size-in-bits='64' id='cfd5d066'/>
+      <function-type size-in-bits='64' id='cfd6c72c'>
+        <parameter type-id='9ad862e7'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <union-decl name='nf_conntrack_man_proto' size-in-bits='16' visibility='default' filepath='include/uapi/linux/netfilter/nf_conntrack_tuple_common.h' line='20' column='1' id='cfd75634'>
+        <data-member access='public'>
+          <var-decl name='all' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/netfilter/nf_conntrack_tuple_common.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='tcp' type-id='e7f44054' visibility='default' filepath='include/uapi/linux/netfilter/nf_conntrack_tuple_common.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='udp' type-id='e7f44054' visibility='default' filepath='include/uapi/linux/netfilter/nf_conntrack_tuple_common.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='icmp' type-id='e7f44058' visibility='default' filepath='include/uapi/linux/netfilter/nf_conntrack_tuple_common.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='dccp' type-id='e7f44054' visibility='default' filepath='include/uapi/linux/netfilter/nf_conntrack_tuple_common.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='sctp' type-id='e7f44054' visibility='default' filepath='include/uapi/linux/netfilter/nf_conntrack_tuple_common.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='gre' type-id='e7f44056' visibility='default' filepath='include/uapi/linux/netfilter/nf_conntrack_tuple_common.h' line='41' column='1'/>
+        </data-member>
+      </union-decl>
+      <class-decl name='cgroup_base_stat' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/cgroup-defs.h' line='289' column='1' id='cfd8587e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cputime' type-id='ad6873f4' visibility='default' filepath='include/linux/cgroup-defs.h' line='290' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='cfdbff8a'>
+        <parameter type-id='68a2d05b'/>
+        <return type-id='003642fd'/>
+      </function-type>
+      <function-type size-in-bits='64' id='cfe09901'>
+        <parameter type-id='9f763fd8'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='4ab96a04' size-in-bits='64' id='cfe2266a'/>
+      <pointer-type-def type-id='be65923c' size-in-bits='64' id='cfe4f8a2'/>
+      <enum-decl name='binder_prio_state' filepath='drivers/android/binder_internal.h' line='348' column='1' id='cfe62ee1'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='BINDER_PRIO_SET' value='0'/>
+        <enumerator name='BINDER_PRIO_PENDING' value='1'/>
+        <enumerator name='BINDER_PRIO_ABORT' value='2'/>
+      </enum-decl>
+      <class-decl name='wait_queue_head' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/wait.h' line='37' column='1' id='cff07063'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/wait.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='head' type-id='72f469ec' visibility='default' filepath='include/linux/wait.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fb4018a0' size-in-bits='64' id='cff2d845'/>
+      <qualified-type-def type-id='0d77e947' const='yes' id='cff84192'/>
+      <array-type-def dimensions='1' type-id='9b45d938' size-in-bits='232' id='cff94a5f'>
+        <subrange length='29' type-id='7ff19f0f' id='01b8f6fa'/>
+      </array-type-def>
+      <pointer-type-def type-id='7f3df443' size-in-bits='64' id='cfff5953'/>
+      <class-decl name='io_context' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/iocontext.h' line='99' column='1' id='d002899d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='refcount' type-id='f22a8abb' visibility='default' filepath='include/linux/iocontext.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='active_ref' type-id='49178f86' visibility='default' filepath='include/linux/iocontext.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='nr_tasks' type-id='49178f86' visibility='default' filepath='include/linux/iocontext.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/iocontext.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='ioprio' type-id='8efea9e5' visibility='default' filepath='include/linux/iocontext.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='icq_tree' type-id='d39738ac' visibility='default' filepath='include/linux/iocontext.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='icq_hint' type-id='7c6e0e0c' visibility='default' filepath='include/linux/iocontext.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='icq_list' type-id='e151255a' visibility='default' filepath='include/linux/iocontext.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='release_work' type-id='ef9025d0' visibility='default' filepath='include/linux/iocontext.h' line='113' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4a762919' size-in-bits='64' id='d010d741'/>
+      <pointer-type-def type-id='16588ac8' size-in-bits='64' id='d0163a5e'/>
+      <function-type size-in-bits='64' id='d01c7b8b'>
+        <parameter type-id='2c25e09d'/>
+        <parameter type-id='8fb73318'/>
+        <parameter type-id='8fb73318'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='ca83d937' size-in-bits='64' id='d01e1ab3'/>
+      <pointer-type-def type-id='f56eb14d' size-in-bits='64' id='d02d53e9'/>
+      <pointer-type-def type-id='807afe73' size-in-bits='64' id='d02f4143'/>
+      <enum-decl name='v4l2_async_match_type' filepath='include/media/v4l2-async.h' line='31' column='1' id='d03a4ada'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='V4L2_ASYNC_MATCH_I2C' value='0'/>
+        <enumerator name='V4L2_ASYNC_MATCH_FWNODE' value='1'/>
+      </enum-decl>
+      <qualified-type-def type-id='9493d3c9' const='yes' id='d03af91a'/>
+      <pointer-type-def type-id='2bd73e91' size-in-bits='64' id='d03b0979'/>
+      <class-decl name='bio_alloc_cache' size-in-bits='192' is-struct='yes' visibility='default' filepath='block/bio.c' line='28' column='1' id='d03bc47e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='free_list' type-id='096280be' visibility='default' filepath='block/bio.c' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='nr' type-id='f0981eeb' visibility='default' filepath='block/bio.c' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='45ae30ea' size-in-bits='64' id='d04132fc'/>
+      <pointer-type-def type-id='d002899d' size-in-bits='64' id='d042cfad'/>
+      <typedef-decl name='wait_bit_action_f' type-id='7f43b3fb' filepath='include/linux/wait_bit.h' line='24' column='1' id='d04e3bd9'/>
+      <class-decl name='master' size-in-bits='384' is-struct='yes' visibility='default' filepath='drivers/base/component.c' line='61' column='1' id='d050fd8b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='drivers/base/component.c' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bound' type-id='b50a4934' visibility='default' filepath='drivers/base/component.c' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ops' type-id='27729729' visibility='default' filepath='drivers/base/component.c' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='parent' type-id='fa0b179b' visibility='default' filepath='drivers/base/component.c' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='match' type-id='7d9421ac' visibility='default' filepath='drivers/base/component.c' line='67' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d0615a9b'>
+        <parameter type-id='75ae4804'/>
+        <parameter type-id='3df9fd28'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='aspm_latency' size-in-bits='64' is-struct='yes' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='44' column='1' id='d0622163'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='l0s' type-id='19c2251e' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='l1' type-id='19c2251e' visibility='default' filepath='drivers/pci/pcie/aspm.c' line='46' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4e13c9d9' size-in-bits='64' id='d064f511'/>
+      <class-decl name='device_private' size-in-bits='1728' is-struct='yes' visibility='default' filepath='drivers/base/power/../base.h' line='88' column='1' id='d066d157'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='klist_children' type-id='6160a6ce' visibility='default' filepath='drivers/base/base.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='knode_parent' type-id='3d045a53' visibility='default' filepath='drivers/base/base.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='knode_driver' type-id='3d045a53' visibility='default' filepath='drivers/base/base.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='knode_bus' type-id='3d045a53' visibility='default' filepath='drivers/base/base.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='knode_class' type-id='3d045a53' visibility='default' filepath='drivers/base/base.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='deferred_probe' type-id='72f469ec' visibility='default' filepath='drivers/base/base.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='async_driver' type-id='00c7b870' visibility='default' filepath='drivers/base/base.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='deferred_probe_reason' type-id='26a90f95' visibility='default' filepath='drivers/base/base.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='device' type-id='fa0b179b' visibility='default' filepath='drivers/base/base.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='dead' type-id='f9b06939' visibility='default' filepath='drivers/base/base.h' line='98' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b739ffde' size-in-bits='64' id='d066db18'/>
+      <class-decl name='macsec_key' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/macsec.h' line='52' column='1' id='d06997c5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='0d8415b5' visibility='default' filepath='include/net/macsec.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tfm' type-id='a585cbc4' visibility='default' filepath='include/net/macsec.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='salt' type-id='a572602f' visibility='default' filepath='include/net/macsec.h' line='55' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0684f34b' size-in-bits='64' id='d06ad2cb'/>
+      <pointer-type-def type-id='945c0b49' size-in-bits='64' id='d06e7441'/>
+      <function-type size-in-bits='64' id='d06eb7e7'>
+        <parameter type-id='69bd57be'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='devlink_port_phys_attrs' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='64' column='1' id='d06f54f4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='port_number' type-id='19c2251e' visibility='default' filepath='include/net/devlink.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='split_subport_number' type-id='19c2251e' visibility='default' filepath='include/net/devlink.h' line='69' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='dma_resv' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/dma-resv.h' line='70' column='1' id='d06fbf66'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='45793a97' visibility='default' filepath='include/linux/dma-resv.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='seq' type-id='1abc0b16' visibility='default' filepath='include/linux/dma-resv.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='fence_excl' type-id='28271da3' visibility='default' filepath='include/linux/dma-resv.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='fence' type-id='ed300e23' visibility='default' filepath='include/linux/dma-resv.h' line='75' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d06fe862'>
+        <parameter type-id='e90f4666'/>
+        <parameter type-id='bb7889ed'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9df06605' size-in-bits='64' id='d070dbfd'/>
+      <class-decl name='linear_range' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/linear_range.h' line='22' column='1' id='d072f052'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='min' type-id='f0981eeb' visibility='default' filepath='include/linux/linear_range.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='min_sel' type-id='f0981eeb' visibility='default' filepath='include/linux/linear_range.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max_sel' type-id='f0981eeb' visibility='default' filepath='include/linux/linear_range.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='step' type-id='f0981eeb' visibility='default' filepath='include/linux/linear_range.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fe4ffa7a' size-in-bits='64' id='d077e928'/>
+      <pointer-type-def type-id='7340ff89' size-in-bits='64' id='d0794225'/>
+      <pointer-type-def type-id='22474385' size-in-bits='64' id='d079c835'/>
+      <class-decl name='xfrm_id' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/xfrm.h' line='25' column='1' id='d07aeeaa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='daddr' type-id='c210d497' visibility='default' filepath='include/uapi/linux/xfrm.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='spi' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/xfrm.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='proto' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/xfrm.h' line='28' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d07af849'>
+        <parameter type-id='77e79a4b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='bpf_iter_seq_info' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='55' column='1' id='d07c39e7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='seq_ops' type-id='943a1b48' visibility='default' filepath='include/linux/bpf.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='init_seq_private' type-id='a75f7f19' visibility='default' filepath='include/linux/bpf.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fini_seq_private' type-id='c133e1df' visibility='default' filepath='include/linux/bpf.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='seq_priv_size' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='59' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a1700eb5' size-in-bits='64' id='d0835005'/>
+      <pointer-type-def type-id='309ed22f' size-in-bits='64' id='d0882d6b'/>
+      <typedef-decl name='typec_switch_set_fn_t' type-id='a16f8ee4' filepath='include/linux/usb/typec_mux.h' line='15' column='1' id='d08a3e2d'/>
+      <pointer-type-def type-id='9117d942' size-in-bits='64' id='d08b3eb8'/>
+      <pointer-type-def type-id='8b73b897' size-in-bits='64' id='d092647b'/>
+      <function-type size-in-bits='64' id='d093a820'>
+        <parameter type-id='dfeb7f6c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c058e0bd' size-in-bits='64' id='d09656fd'/>
+      <function-type size-in-bits='64' id='d09873ca'>
+        <parameter type-id='49a58c0c'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='8db0df1b' size-in-bits='64' id='d09d4bab'/>
+      <qualified-type-def type-id='1e1b3494' const='yes' id='d09d6361'/>
+      <pointer-type-def type-id='71e87d49' size-in-bits='64' id='d0a699d1'/>
+      <class-decl name='regulation_constraints' size-in-bits='1792' is-struct='yes' visibility='default' filepath='include/linux/regulator/machine.h' line='157' column='1' id='d0b77cf6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/regulator/machine.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='min_uV' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/machine.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='max_uV' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/machine.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='uV_offset' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/machine.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='min_uA' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/machine.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='max_uA' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/machine.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='ilim_uA' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/machine.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='system_load' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/machine.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='max_spread' type-id='f9409001' visibility='default' filepath='include/linux/regulator/machine.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='max_uV_step' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/machine.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='valid_modes_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='valid_ops_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='input_uV' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/machine.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='state_disk' type-id='7fe6815e' visibility='default' filepath='include/linux/regulator/machine.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='state_mem' type-id='7fe6815e' visibility='default' filepath='include/linux/regulator/machine.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='state_standby' type-id='7fe6815e' visibility='default' filepath='include/linux/regulator/machine.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='over_curr_limits' type-id='ddc1e32e' visibility='default' filepath='include/linux/regulator/machine.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='over_voltage_limits' type-id='ddc1e32e' visibility='default' filepath='include/linux/regulator/machine.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='under_voltage_limits' type-id='ddc1e32e' visibility='default' filepath='include/linux/regulator/machine.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='temp_limits' type-id='ddc1e32e' visibility='default' filepath='include/linux/regulator/machine.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='initial_state' type-id='e884daa5' visibility='default' filepath='include/linux/regulator/machine.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1504'>
+          <var-decl name='initial_mode' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='ramp_delay' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='settling_time' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='settling_time_up' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1632'>
+          <var-decl name='settling_time_down' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='enable_time' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1696'>
+          <var-decl name='active_discharge' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='always_on' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1729'>
+          <var-decl name='boot_on' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1730'>
+          <var-decl name='apply_uV' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1731'>
+          <var-decl name='ramp_disable' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1732'>
+          <var-decl name='soft_start' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1733'>
+          <var-decl name='pull_down' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1734'>
+          <var-decl name='over_current_protection' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1735'>
+          <var-decl name='over_current_detection' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1736'>
+          <var-decl name='over_voltage_detection' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1737'>
+          <var-decl name='under_voltage_detection' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1738'>
+          <var-decl name='over_temp_detection' type-id='f0981eeb' visibility='default' filepath='include/linux/regulator/machine.h' line='221' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ethtool_fecparam' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1426' column='1' id='d0cace14'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='active_fec' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fec' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1430' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='reserved' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='1431' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d0d01815'>
+        <parameter type-id='775147d9'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f772df6d' size-in-bits='64' id='d0d57cc5'/>
+      <pointer-type-def type-id='14cefd25' size-in-bits='64' id='d0d85e9d'/>
+      <pointer-type-def type-id='1af0ab42' size-in-bits='64' id='d0ddd4b8'/>
+      <function-type size-in-bits='64' id='d0e8296f'>
+        <parameter type-id='0e23c133'/>
+        <return type-id='daf6995a'/>
+      </function-type>
+      <class-decl name='ahash_alg' size-in-bits='5120' is-struct='yes' visibility='default' filepath='include/crypto/hash.h' line='134' column='1' id='d0f077d9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='init' type-id='0b5e03e0' visibility='default' filepath='include/crypto/hash.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='update' type-id='0b5e03e0' visibility='default' filepath='include/crypto/hash.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='final' type-id='0b5e03e0' visibility='default' filepath='include/crypto/hash.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='finup' type-id='0b5e03e0' visibility='default' filepath='include/crypto/hash.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='digest' type-id='0b5e03e0' visibility='default' filepath='include/crypto/hash.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='export' type-id='77c96f7a' visibility='default' filepath='include/crypto/hash.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='import' type-id='77c96f7a' visibility='default' filepath='include/crypto/hash.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='setkey' type-id='c509dbc2' visibility='default' filepath='include/crypto/hash.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='init_tfm' type-id='6f80b288' visibility='default' filepath='include/crypto/hash.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='exit_tfm' type-id='5ed4fd63' visibility='default' filepath='include/crypto/hash.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='halg' type-id='a3fe44e4' visibility='default' filepath='include/crypto/hash.h' line='147' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='b4a2c74e' const='yes' id='d0fea0bb'/>
+      <pointer-type-def type-id='64f1e67b' size-in-bits='64' id='d0ff2b97'/>
+      <function-type size-in-bits='64' id='d1043097'>
+        <parameter type-id='8f4bc7f1'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='pid' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/linux/pid.h' line='59' column='1' id='d10e968a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='64615833' visibility='default' filepath='include/linux/pid.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='level' type-id='f0981eeb' visibility='default' filepath='include/linux/pid.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/pid.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tasks' type-id='fc3a8480' visibility='default' filepath='include/linux/pid.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='inodes' type-id='e151255a' visibility='default' filepath='include/linux/pid.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='wait_pidfd' type-id='b5ab048f' visibility='default' filepath='include/linux/pid.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/pid.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='numbers' type-id='9a69aeec' visibility='default' filepath='include/linux/pid.h' line='70' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d10f08e3'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='67f526b5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='drm_dp_sideband_msg_hdr' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='168' column='1' id='d10fcb8b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lct' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='lcr' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='rad' type-id='d2f7b56a' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='broadcast' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='path_msg' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='msg_len' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='somt' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='eomt' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='seqno' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='177' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a3d58f0d' size-in-bits='64' id='d116742c'/>
+      <function-type size-in-bits='64' id='d1194a8d'>
+        <parameter type-id='442b8d89'/>
+        <parameter type-id='a9f16f78'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d11dd9c4'>
+        <parameter type-id='13103032'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c7873973' size-in-bits='64' id='d128cc8f'/>
+      <class-decl name='drm_encoder' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/drm/drm_encoder.h' line='98' column='1' id='d12f4a1d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='8898134d' visibility='default' filepath='include/drm/drm_encoder.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='head' type-id='72f469ec' visibility='default' filepath='include/drm/drm_encoder.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='base' type-id='350f4182' visibility='default' filepath='include/drm/drm_encoder.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/drm/drm_encoder.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='encoder_type' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_encoder.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_encoder.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='possible_crtcs' type-id='8f92235e' visibility='default' filepath='include/drm/drm_encoder.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='possible_clones' type-id='8f92235e' visibility='default' filepath='include/drm/drm_encoder.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='crtc' type-id='b64ad7cb' visibility='default' filepath='include/drm/drm_encoder.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='bridge_chain' type-id='72f469ec' visibility='default' filepath='include/drm/drm_encoder.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='funcs' type-id='1701f1ac' visibility='default' filepath='include/drm/drm_encoder.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='helper_private' type-id='32162fa7' visibility='default' filepath='include/drm/drm_encoder.h' line='186' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='dae3142b' size-in-bits='64' id='d132145b'/>
+      <pointer-type-def type-id='4ceb5ab5' size-in-bits='64' id='d1347205'/>
+      <pointer-type-def type-id='936a146b' size-in-bits='64' id='d13761f7'/>
+      <pointer-type-def type-id='3a5cf22d' size-in-bits='64' id='d13e4d11'/>
+      <function-type size-in-bits='64' id='d1433343'>
+        <parameter type-id='4ddb6991'/>
+        <parameter type-id='ce94579b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='89e527b7' size-in-bits='64' id='d1440a9f'/>
+      <pointer-type-def type-id='118c2af9' size-in-bits='64' id='d1499e71'/>
+      <pointer-type-def type-id='65188add' size-in-bits='64' id='d15254f9'/>
+      <class-decl name='xfrm_policy_queue' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/net/xfrm.h' line='488' column='1' id='d15e38d5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hold_queue' type-id='e61c85d0' visibility='default' filepath='include/net/xfrm.h' line='489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hold_timer' type-id='abe41e67' visibility='default' filepath='include/net/xfrm.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='timeout' type-id='7359adad' visibility='default' filepath='include/net/xfrm.h' line='491' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='sockaddr_vm' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/vm_sockets.h' line='167' column='1' id='d15eade2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='svm_family' type-id='93d679c6' visibility='default' filepath='include/uapi/linux/vm_sockets.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='svm_reserved1' type-id='8efea9e5' visibility='default' filepath='include/uapi/linux/vm_sockets.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='svm_port' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/vm_sockets.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='svm_cid' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/vm_sockets.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='svm_flags' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/vm_sockets.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='svm_zero' type-id='09025bd3' visibility='default' filepath='include/uapi/linux/vm_sockets.h' line='173' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d15eda11'>
+        <parameter type-id='a970a64c'/>
+        <parameter type-id='0b8718c0'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a363caa5' size-in-bits='64' id='d15edd25'/>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='2048' id='d1617432'>
+        <subrange length='256' type-id='7ff19f0f' id='36e5b9fa'/>
+      </array-type-def>
+      <class-decl name='netlink_callback' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/netlink.h' line='205' column='1' id='d1678a2e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='skb' type-id='0fbf3cfd' visibility='default' filepath='include/linux/netlink.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nlh' type-id='390fbe8f' visibility='default' filepath='include/linux/netlink.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dump' type-id='32a663ca' visibility='default' filepath='include/linux/netlink.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='done' type-id='eca40b6e' visibility='default' filepath='include/linux/netlink.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/netlink.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='module' type-id='2730d015' visibility='default' filepath='include/linux/netlink.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='extack' type-id='5799dc94' visibility='default' filepath='include/linux/netlink.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='family' type-id='1dc6a898' visibility='default' filepath='include/linux/netlink.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='464'>
+          <var-decl name='answer_flags' type-id='1dc6a898' visibility='default' filepath='include/linux/netlink.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='min_dump_alloc' type-id='19c2251e' visibility='default' filepath='include/linux/netlink.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='prev_seq' type-id='f0981eeb' visibility='default' filepath='include/linux/netlink.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='seq' type-id='f0981eeb' visibility='default' filepath='include/linux/netlink.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='strict_check' type-id='b50a4934' visibility='default' filepath='include/linux/netlink.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='' type-id='ac5ab672' visibility='default' filepath='include/linux/netlink.h' line='220' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='32768' id='d16c6df4'>
+        <subrange length='4096' type-id='7ff19f0f' id='bc1b5ddc'/>
+      </array-type-def>
+      <typedef-decl name='__addrpair' type-id='d3130597' filepath='include/net/sock.h' line='118' column='1' id='d17a6eed'/>
+      <class-decl name='percpu_ref_data' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/percpu-refcount.h' line='95' column='1' id='d17d9181'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='f22a8abb' visibility='default' filepath='include/linux/percpu-refcount.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='release' type-id='903b12fe' visibility='default' filepath='include/linux/percpu-refcount.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='confirm_switch' type-id='903b12fe' visibility='default' filepath='include/linux/percpu-refcount.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='force_atomic' type-id='b50a4934' visibility='default' filepath='include/linux/percpu-refcount.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='193'>
+          <var-decl name='allow_reinit' type-id='b50a4934' visibility='default' filepath='include/linux/percpu-refcount.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/percpu-refcount.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ref' type-id='60219102' visibility='default' filepath='include/linux/percpu-refcount.h' line='102' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b3f5a3c1' size-in-bits='64' id='d17e9a1d'/>
+      <pointer-type-def type-id='e82476af' size-in-bits='64' id='d180faa7'/>
+      <pointer-type-def type-id='0332edd2' size-in-bits='64' id='d18dbee4'/>
+      <pointer-type-def type-id='4c7af498' size-in-bits='64' id='d196b9c2'/>
+      <class-decl name='z_stream_s' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/zlib.h' line='84' column='1' id='d19a2f20'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next_in' type-id='7211f874' visibility='default' filepath='include/linux/zlib.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='avail_in' type-id='5bbcce85' visibility='default' filepath='include/linux/zlib.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='total_in' type-id='5bbcce85' visibility='default' filepath='include/linux/zlib.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='next_out' type-id='00abfc0f' visibility='default' filepath='include/linux/zlib.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='avail_out' type-id='5bbcce85' visibility='default' filepath='include/linux/zlib.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='total_out' type-id='5bbcce85' visibility='default' filepath='include/linux/zlib.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='msg' type-id='26a90f95' visibility='default' filepath='include/linux/zlib.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='state' type-id='3a49ee4c' visibility='default' filepath='include/linux/zlib.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='workspace' type-id='eaa32e2f' visibility='default' filepath='include/linux/zlib.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='data_type' type-id='95e97e5e' visibility='default' filepath='include/linux/zlib.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='adler' type-id='5bbcce85' visibility='default' filepath='include/linux/zlib.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='reserved' type-id='5bbcce85' visibility='default' filepath='include/linux/zlib.h' line='100' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e3dfc04c' size-in-bits='64' id='d19d1bee'/>
+      <pointer-type-def type-id='44644afc' size-in-bits='64' id='d19f4fca'/>
+      <pointer-type-def type-id='24734c8f' size-in-bits='64' id='d19fb227'/>
+      <function-type size-in-bits='64' id='d1a0f9b1'>
+        <parameter type-id='11777d05'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='bd54fe1a'/>
+      </function-type>
+      <pointer-type-def type-id='52c69ba9' size-in-bits='64' id='d1a6cf39'/>
+      <pointer-type-def type-id='f1a922f0' size-in-bits='64' id='d1a6d6c2'/>
+      <pointer-type-def type-id='fb4c7dfb' size-in-bits='64' id='d1a78aeb'/>
+      <class-decl name='usb_interface_assoc_descriptor' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='783' column='1' id='d1a7f9af'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='784' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='785' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bFirstInterface' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='787' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bInterfaceCount' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='788' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bFunctionClass' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='789' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='bFunctionSubClass' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='790' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='bFunctionProtocol' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='791' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='iFunction' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='792' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bf3013ec' size-in-bits='64' id='d1aa2b6e'/>
+      <pointer-type-def type-id='aee29222' size-in-bits='64' id='d1abd66c'/>
+      <qualified-type-def type-id='7e8e008e' const='yes' id='d1ae25b5'/>
+      <pointer-type-def type-id='05cd795f' size-in-bits='64' id='d1c62993'/>
+      <pointer-type-def type-id='cc23d6f1' size-in-bits='64' id='d1ca3a89'/>
+      <pointer-type-def type-id='fa674076' size-in-bits='64' id='d1cf113c'/>
+      <function-type size-in-bits='64' id='d1d0945d'>
+        <parameter type-id='442b8d89'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d1d4db8e'>
+        <parameter type-id='abd62a96'/>
+        <return type-id='4adb0e6a'/>
+      </function-type>
+      <class-decl name='ethtool_coalesce' size-in-bits='736' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='474' column='1' id='d1d61218'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='475' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='rx_coalesce_usecs' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='476' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rx_max_coalesced_frames' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='477' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='rx_coalesce_usecs_irq' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='478' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rx_max_coalesced_frames_irq' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='479' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='tx_coalesce_usecs' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='480' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tx_max_coalesced_frames' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='481' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='tx_coalesce_usecs_irq' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='482' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='tx_max_coalesced_frames_irq' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='483' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='stats_block_coalesce_usecs' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='484' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='use_adaptive_rx_coalesce' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='485' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='use_adaptive_tx_coalesce' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='pkt_rate_low' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='rx_coalesce_usecs_low' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='rx_max_coalesced_frames_low' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='tx_coalesce_usecs_low' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='tx_max_coalesced_frames_low' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='491' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='pkt_rate_high' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='492' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='rx_coalesce_usecs_high' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='493' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='rx_max_coalesced_frames_high' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='494' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='tx_coalesce_usecs_high' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='495' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='tx_max_coalesced_frames_high' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='496' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='rate_sample_interval' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='497' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/nodemask.h' line='98' column='1' id='d1dfc632' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bits' type-id='f066dd3c' visibility='default' filepath='include/linux/nodemask.h' line='98' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d1e608d4'>
+        <parameter type-id='8bf55d78'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='19c2251e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d1e93cda'>
+        <parameter type-id='0dc3586b'/>
+        <parameter type-id='1d2c2b85'/>
+        <parameter type-id='6fd5b1ab'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='2716b768' const='yes' id='d1e950bf'/>
+      <class-decl name='drm_connector_list_iter' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/drm/drm_connector.h' line='1755' column='1' id='d1f16456'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='8898134d' visibility='default' filepath='include/drm/drm_connector.h' line='1757' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='conn' type-id='4db02c58' visibility='default' filepath='include/drm/drm_connector.h' line='1758' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='4096' id='d1f32e0e'>
+        <subrange length='512' type-id='7ff19f0f' id='c11630dd'/>
+      </array-type-def>
+      <pointer-type-def type-id='7e8e008e' size-in-bits='64' id='d1feb554'/>
+      <function-type size-in-bits='64' id='d20525ea'>
+        <parameter type-id='37175e4d'/>
+        <parameter type-id='bd70a631'/>
+        <parameter type-id='d586c6cc'/>
+        <parameter type-id='3158a266'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='5b3ea0c8' size-in-bits='64' id='d2063c9e'/>
+      <pointer-type-def type-id='08b65638' size-in-bits='64' id='d20b5f3e'/>
+      <pointer-type-def type-id='b8dcddba' size-in-bits='64' id='d2188e4c'/>
+      <class-decl name='devfreq_simple_ondemand_data' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/devfreq.h' line='284' column='1' id='d21d90ad'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='upthreshold' type-id='f0981eeb' visibility='default' filepath='include/linux/devfreq.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='downdifferential' type-id='f0981eeb' visibility='default' filepath='include/linux/devfreq.h' line='286' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3780aff9' size-in-bits='64' id='d225de01'/>
+      <pointer-type-def type-id='e87d68d4' size-in-bits='64' id='d22f8cbe'/>
+      <class-decl name='software_node' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/property.h' line='463' column='1' id='d23726dd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/property.h' line='464' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='parent' type-id='1cc6783c' visibility='default' filepath='include/linux/property.h' line='465' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='properties' type-id='9e1d140c' visibility='default' filepath='include/linux/property.h' line='466' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='9b7c55ef' const='yes' id='d238557f'/>
+      <function-type size-in-bits='64' id='d23b37cf'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <pointer-type-def type-id='1ec1e54d' size-in-bits='64' id='d23c2125'/>
+      <class-decl name='devlink_sb_pool_info' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='189' column='1' id='d242480c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pool_type' type-id='b4c4f641' visibility='default' filepath='include/net/devlink.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='size' type-id='19c2251e' visibility='default' filepath='include/net/devlink.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='threshold_type' type-id='c6493bfa' visibility='default' filepath='include/net/devlink.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='cell_size' type-id='19c2251e' visibility='default' filepath='include/net/devlink.h' line='193' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d2460aa5'>
+        <parameter type-id='22be78e8'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3921bd52' size-in-bits='64' id='d24a1720'/>
+      <class-decl name='drm_bridge_state' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/drm/drm_atomic.h' line='1085' column='1' id='d24b8c9c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='b281e308' visibility='default' filepath='include/drm/drm_atomic.h' line='1089' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bridge' type-id='8582e5ec' visibility='default' filepath='include/drm/drm_atomic.h' line='1094' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='input_bus_cfg' type-id='a3477226' visibility='default' filepath='include/drm/drm_atomic.h' line='1099' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='output_bus_cfg' type-id='a3477226' visibility='default' filepath='include/drm/drm_atomic.h' line='1104' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d24e4794'>
+        <parameter type-id='00cf0c80'/>
+        <parameter type-id='f06adae0'/>
+        <parameter type-id='7ee8ef4d'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='7203ee09' size-in-bits='64' id='d2524501'/>
+      <pointer-type-def type-id='6493a25b' size-in-bits='64' id='d2561a8b'/>
+      <class-decl name='media_request_object_ops' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/media/media-request.h' line='247' column='1' id='d2613fd6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prepare' type-id='226f205f' visibility='default' filepath='include/media/media-request.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='unprepare' type-id='afb80c18' visibility='default' filepath='include/media/media-request.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='queue' type-id='afb80c18' visibility='default' filepath='include/media/media-request.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='unbind' type-id='afb80c18' visibility='default' filepath='include/media/media-request.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='release' type-id='afb80c18' visibility='default' filepath='include/media/media-request.h' line='252' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_cdc_ncm_ntb_parameters' size-in-bits='224' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='319' column='1' id='d26727c9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='wLength' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bmNtbFormatsSupported' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='dwNtbInMaxSize' type-id='2f162548' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wNdpInDivisor' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='wNdpInPayloadRemainder' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='wNdpInAlignment' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='wPadding1' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dwNtbOutMaxSize' type-id='2f162548' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='wNdpOutDivisor' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='wNdpOutPayloadRemainder' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='wNdpOutAlignment' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='wNtbOutMaxDatagrams' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='331' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d26d2ca4'>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='1c936db9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='b154eaef' const='yes' id='d26ed346'/>
+      <pointer-type-def type-id='ec77b5b8' size-in-bits='64' id='d272d4d6'/>
+      <array-type-def dimensions='3' type-id='7359adad' size-in-bits='384' id='d2730d39'>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <enum-decl name='zone_type' filepath='include/linux/mmzone.h' line='613' column='1' id='d278ff03'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ZONE_DMA32' value='0'/>
+        <enumerator name='ZONE_NORMAL' value='1'/>
+        <enumerator name='ZONE_MOVABLE' value='2'/>
+        <enumerator name='__MAX_NR_ZONES' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='4a164193' size-in-bits='64' id='d27bca1f'/>
+      <class-decl name='usb_cdc_header_desc' size-in-bits='40' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='63' column='1' id='d285082e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bDescriptorSubType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bcdCDC' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='68' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='435002d4' size-in-bits='64' id='d287fe92'/>
+      <enum-decl name='usb_dr_mode' filepath='include/linux/usb/otg.h' line='118' column='1' id='d291aaf1'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='USB_DR_MODE_UNKNOWN' value='0'/>
+        <enumerator name='USB_DR_MODE_HOST' value='1'/>
+        <enumerator name='USB_DR_MODE_PERIPHERAL' value='2'/>
+        <enumerator name='USB_DR_MODE_OTG' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='5f2f8da4' size-in-bits='64' id='d295dab2'/>
+      <qualified-type-def type-id='3c91c090' const='yes' id='d297aced'/>
+      <function-type size-in-bits='64' id='d299a9b0'>
+        <parameter type-id='5e4f599b'/>
+        <parameter type-id='e68e04c1'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='phy_state' filepath='include/linux/phy.h' line='460' column='1' id='d29ba889'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PHY_DOWN' value='0'/>
+        <enumerator name='PHY_READY' value='1'/>
+        <enumerator name='PHY_HALTED' value='2'/>
+        <enumerator name='PHY_UP' value='3'/>
+        <enumerator name='PHY_RUNNING' value='4'/>
+        <enumerator name='PHY_NOLINK' value='5'/>
+        <enumerator name='PHY_CABLETEST' value='6'/>
+      </enum-decl>
+      <pointer-type-def type-id='bd08cd5c' size-in-bits='64' id='d2a48436'/>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='768' id='d2b016f4'>
+        <subrange length='12' type-id='7ff19f0f' id='84827bdc'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='960' id='d2b2558b'>
+        <subrange length='15' type-id='7ff19f0f' id='8484ba73'/>
+      </array-type-def>
+      <pointer-type-def type-id='f3f76d11' size-in-bits='64' id='d2b31715'/>
+      <class-decl name='msi_desc' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/msi.h' line='125' column='1' id='d2b46ce8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/msi.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='irq' type-id='f0981eeb' visibility='default' filepath='include/linux/msi.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='nvec_used' type-id='f0981eeb' visibility='default' filepath='include/linux/msi.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/msi.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='msg' type-id='03ba410a' visibility='default' filepath='include/linux/msi.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='affinity' type-id='ef2b6ec8' visibility='default' filepath='include/linux/msi.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='iommu_cookie' type-id='eaa32e2f' visibility='default' filepath='include/linux/msi.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='write_msi_msg' type-id='aecf9817' visibility='default' filepath='include/linux/msi.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='write_msi_msg_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/msi.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='' type-id='ac5ab5a7' visibility='default' filepath='include/linux/msi.h' line='140' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1b39a1dd' size-in-bits='64' id='d2b9f7d5'/>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='1024' id='d2baa450'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <class-decl name='fs_context_operations' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/fs_context.h' line='115' column='1' id='d2bd1e05'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='free' type-id='18811e61' visibility='default' filepath='include/linux/fs_context.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dup' type-id='0177caaf' visibility='default' filepath='include/linux/fs_context.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='parse_param' type-id='7af12c47' visibility='default' filepath='include/linux/fs_context.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='parse_monolithic' type-id='33c348f4' visibility='default' filepath='include/linux/fs_context.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='get_tree' type-id='57f0383a' visibility='default' filepath='include/linux/fs_context.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='reconfigure' type-id='57f0383a' visibility='default' filepath='include/linux/fs_context.h' line='121' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d2bdcec3'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='6f262307'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4cef7edc' size-in-bits='64' id='d2be5b16'/>
+      <array-type-def dimensions='1' type-id='77e79a4b' size-in-bits='4096' id='d2c516bd'>
+        <subrange length='64' type-id='7ff19f0f' id='b10be967'/>
+      </array-type-def>
+      <class-decl name='xhci_hub' size-in-bits='18496' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1753' column='1' id='d2c7a2c1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ports' type-id='c942333d' visibility='default' filepath='drivers/usb/host/xhci.h' line='1754' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_ports' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1755' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hcd' type-id='fc4f83c1' visibility='default' filepath='drivers/usb/host/xhci.h' line='1756' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bus_state' type-id='d9e4295a' visibility='default' filepath='drivers/usb/host/xhci.h' line='1758' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18432'>
+          <var-decl name='maj_rev' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/xhci.h' line='1760' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18440'>
+          <var-decl name='min_rev' type-id='f9b06939' visibility='default' filepath='drivers/usb/host/xhci.h' line='1761' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='972f7560' const='yes' id='d2d06e23'/>
+      <qualified-type-def type-id='08e531de' const='yes' id='d2d812d1'/>
+      <function-type size-in-bits='64' id='d2df6ce2'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='a99bd7d2'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='918604f1' size-in-bits='64' id='d2e00785'/>
+      <pointer-type-def type-id='9097330a' size-in-bits='64' id='d2e04e44'/>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='240' id='d2e20a8c'>
+        <subrange length='30' type-id='7ff19f0f' id='6a6183a4'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='d2e28fdc'>
+        <parameter type-id='33dc3b1b'/>
+        <parameter type-id='10593a44'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='ab0c2f56' size-in-bits='1280' id='d2f09908'>
+        <subrange length='20' type-id='7ff19f0f' id='fdca39cf'/>
+      </array-type-def>
+      <pointer-type-def type-id='c604b3e2' size-in-bits='64' id='d2f4c704'/>
+      <function-type size-in-bits='64' id='d2f6c36f'>
+        <parameter type-id='a970a64c'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='64' id='d2f7b56a'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <class-decl name='v4l2_subdev_pad_config' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='649' column='1' id='d2ffa1e8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='try_fmt' type-id='87dd7486' visibility='default' filepath='include/media/v4l2-subdev.h' line='650' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='try_crop' type-id='3dbd4e78' visibility='default' filepath='include/media/v4l2-subdev.h' line='651' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='try_compose' type-id='3dbd4e78' visibility='default' filepath='include/media/v4l2-subdev.h' line='652' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='nf_ct_event' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack_ecache.h' line='69' column='1' id='d3056556'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ct' type-id='8c493d8a' visibility='default' filepath='include/net/netfilter/nf_conntrack_ecache.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='portid' type-id='19c2251e' visibility='default' filepath='include/net/netfilter/nf_conntrack_ecache.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='report' type-id='95e97e5e' visibility='default' filepath='include/net/netfilter/nf_conntrack_ecache.h' line='72' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b6ab8849' size-in-bits='64' id='d30bdc51'/>
+      <class-decl name='detailed_timing' size-in-bits='144' is-struct='yes' visibility='default' filepath='include/drm/drm_edid.h' line='170' column='1' id='d30cc3b8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pixel_clock' type-id='23119536' visibility='default' filepath='include/drm/drm_edid.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='data' type-id='ac5ab5db' visibility='default' filepath='include/drm/drm_edid.h' line='175' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d31161f1'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='e84b031a'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='__u64' type-id='0d77e947' filepath='include/uapi/asm-generic/int-ll64.h' line='31' column='1' id='d3130597'/>
+      <typedef-decl name='__u16' type-id='8efea9e5' filepath='include/uapi/asm-generic/int-ll64.h' line='24' column='1' id='d315442e'/>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='56' id='d3180915'>
+        <subrange length='7' type-id='7ff19f0f' id='16fc326e'/>
+      </array-type-def>
+      <pointer-type-def type-id='80310425' size-in-bits='64' id='d3210449'/>
+      <function-type size-in-bits='64' id='d328415c'>
+        <parameter type-id='78e7cf52'/>
+        <parameter type-id='94c948ef'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d32f0a02'>
+        <parameter type-id='89df2ee9'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='inet_connection_sock_af_ops' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/net/inet_connection_sock.h' line='35' column='1' id='d334c4a2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='queue_xmit' type-id='52980ce4' visibility='default' filepath='include/net/inet_connection_sock.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='send_check' type-id='765eef68' visibility='default' filepath='include/net/inet_connection_sock.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rebuild_header' type-id='55530c47' visibility='default' filepath='include/net/inet_connection_sock.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sk_rx_dst_set' type-id='b087f139' visibility='default' filepath='include/net/inet_connection_sock.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='conn_request' type-id='a0f5247f' visibility='default' filepath='include/net/inet_connection_sock.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='syn_recv_sock' type-id='8aa28e29' visibility='default' filepath='include/net/inet_connection_sock.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='net_header_len' type-id='1dc6a898' visibility='default' filepath='include/net/inet_connection_sock.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='400'>
+          <var-decl name='net_frag_header_len' type-id='1dc6a898' visibility='default' filepath='include/net/inet_connection_sock.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='sockaddr_len' type-id='1dc6a898' visibility='default' filepath='include/net/inet_connection_sock.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='setsockopt' type-id='df9e6665' visibility='default' filepath='include/net/inet_connection_sock.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='getsockopt' type-id='e0fadd76' visibility='default' filepath='include/net/inet_connection_sock.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='addr2sockaddr' type-id='d9587521' visibility='default' filepath='include/net/inet_connection_sock.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='mtu_reduced' type-id='841969d0' visibility='default' filepath='include/net/inet_connection_sock.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/inet_connection_sock.h' line='56' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b276f0c8' size-in-bits='64' id='d33d33c6'/>
+      <function-type size-in-bits='64' id='d34384db'>
+        <parameter type-id='c67366c7'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='lockdep_map' is-struct='yes' visibility='default' filepath='include/linux/lockdep_types.h' line='202' column='1' id='d34a605e'/>
+      <class-decl name='qdisc_skb_head' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/sch_generic.h' line='59' column='1' id='d34f2f01'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='head' type-id='0fbf3cfd' visibility='default' filepath='include/net/sch_generic.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tail' type-id='0fbf3cfd' visibility='default' filepath='include/net/sch_generic.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='qlen' type-id='3f1a6b60' visibility='default' filepath='include/net/sch_generic.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/net/sch_generic.h' line='63' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='dma_slave_config' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/dmaengine.h' line='441' column='1' id='d356829c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='direction' type-id='941ca9e2' visibility='default' filepath='include/linux/dmaengine.h' line='442' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='src_addr' type-id='2522883d' visibility='default' filepath='include/linux/dmaengine.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dst_addr' type-id='2522883d' visibility='default' filepath='include/linux/dmaengine.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='src_addr_width' type-id='270e7659' visibility='default' filepath='include/linux/dmaengine.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='dst_addr_width' type-id='270e7659' visibility='default' filepath='include/linux/dmaengine.h' line='446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='src_maxburst' type-id='19c2251e' visibility='default' filepath='include/linux/dmaengine.h' line='447' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='dst_maxburst' type-id='19c2251e' visibility='default' filepath='include/linux/dmaengine.h' line='448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='src_port_window_size' type-id='19c2251e' visibility='default' filepath='include/linux/dmaengine.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='dst_port_window_size' type-id='19c2251e' visibility='default' filepath='include/linux/dmaengine.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='device_fc' type-id='b50a4934' visibility='default' filepath='include/linux/dmaengine.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='slave_id' type-id='f0981eeb' visibility='default' filepath='include/linux/dmaengine.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='peripheral_config' type-id='eaa32e2f' visibility='default' filepath='include/linux/dmaengine.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='peripheral_size' type-id='b59d7dce' visibility='default' filepath='include/linux/dmaengine.h' line='454' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_soc_tplg_ctl_hdr' size-in-bits='1632' is-struct='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='290' column='1' id='d3581737'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='36cef6bd' visibility='default' filepath='include/uapi/sound/asoc.h' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='access' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ops' type-id='e189081e' visibility='default' filepath='include/uapi/sound/asoc.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='tlv' type-id='4d52b2c7' visibility='default' filepath='include/uapi/sound/asoc.h' line='296' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d35840cd'>
+        <parameter type-id='e324928d'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='807869d3'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9726f99c' size-in-bits='64' id='d35aee0a'/>
+      <class-decl name='detailed_data_wpindex' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/drm/drm_edid.h' line='127' column='1' id='d35b6cc8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='white_yx_lo' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='white_x_hi' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='white_y_hi' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='gamma' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='131' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='apertures_struct' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/fb.h' line='496' column='1' id='d3638b22'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='f0981eeb' visibility='default' filepath='include/linux/fb.h' line='497' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ranges' type-id='f13afa51' visibility='default' filepath='include/linux/fb.h' line='501' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_ctrl_hevc_sps' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/media/hevc-ctrls.h' line='57' column='1' id='d36a5b23'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pic_width_in_luma_samples' type-id='d315442e' visibility='default' filepath='include/media/hevc-ctrls.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='pic_height_in_luma_samples' type-id='d315442e' visibility='default' filepath='include/media/hevc-ctrls.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bit_depth_luma_minus8' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='bit_depth_chroma_minus8' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='log2_max_pic_order_cnt_lsb_minus4' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='sps_max_dec_pic_buffering_minus1' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sps_max_num_reorder_pics' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='sps_max_latency_increase_plus1' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='log2_min_luma_coding_block_size_minus3' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='log2_diff_max_min_luma_coding_block_size' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='log2_min_luma_transform_block_size_minus2' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='log2_diff_max_min_luma_transform_block_size' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='max_transform_hierarchy_depth_inter' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='max_transform_hierarchy_depth_intra' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pcm_sample_bit_depth_luma_minus1' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='pcm_sample_bit_depth_chroma_minus1' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='log2_min_pcm_luma_coding_block_size_minus3' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='log2_diff_max_min_pcm_luma_coding_block_size' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='num_short_term_ref_pic_sets' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='168'>
+          <var-decl name='num_long_term_ref_pics_sps' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='chroma_format_idc' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='184'>
+          <var-decl name='sps_max_sub_layers_minus1' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='flags' type-id='d3130597' visibility='default' filepath='include/media/hevc-ctrls.h' line='82' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='35ec5fa0' size-in-bits='64' id='d36c1926'/>
+      <pointer-type-def type-id='354af324' size-in-bits='64' id='d36d46c6'/>
+      <class-decl name='v4l2_subdev_internal_ops' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='825' column='1' id='d36f034a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='registered' type-id='a236743f' visibility='default' filepath='include/media/v4l2-subdev.h' line='826' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='unregistered' type-id='1625ce7a' visibility='default' filepath='include/media/v4l2-subdev.h' line='827' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='open' type-id='618f91b8' visibility='default' filepath='include/media/v4l2-subdev.h' line='828' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='close' type-id='618f91b8' visibility='default' filepath='include/media/v4l2-subdev.h' line='829' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='release' type-id='1625ce7a' visibility='default' filepath='include/media/v4l2-subdev.h' line='830' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='447da2ae' size-in-bits='192' id='d371d064'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <pointer-type-def type-id='499c8dd8' size-in-bits='64' id='d37373f6'/>
+      <pointer-type-def type-id='0ad12489' size-in-bits='64' id='d3769ffd'/>
+      <pointer-type-def type-id='4dedc1bb' size-in-bits='64' id='d379869f'/>
+      <pointer-type-def type-id='08dd4249' size-in-bits='64' id='d37a2705'/>
+      <qualified-type-def type-id='57d8dd3d' const='yes' id='d37aa9fa'/>
+      <class-decl name='usb_cdc_union_desc' size-in-bits='40' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='101' column='1' id='d37cd54e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bDescriptorSubType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bMasterInterface0' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bSlaveInterface0' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='107' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7e8ddfae' size-in-bits='64' id='d3807eb0'/>
+      <typedef-decl name='ZSTD_optimal_t' type-id='821350c0' filepath='lib/zstd/zstd_internal.h' line='180' column='1' id='d38255fd'/>
+      <function-type size-in-bits='64' id='d385bfac'>
+        <parameter type-id='b9af02c3'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='typec_operations' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/usb/typec.h' line='218' column='1' id='d3860975'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='try_role' type-id='d7a90e3b' visibility='default' filepath='include/linux/usb/typec.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dr_set' type-id='55ebe352' visibility='default' filepath='include/linux/usb/typec.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pr_set' type-id='331e3ac7' visibility='default' filepath='include/linux/usb/typec.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='vconn_set' type-id='331e3ac7' visibility='default' filepath='include/linux/usb/typec.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='port_type_set' type-id='6507da23' visibility='default' filepath='include/linux/usb/typec.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/typec.h' line='225' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='bpf_local_storage_map_bucket' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/bpf_local_storage.h' line='19' column='1' id='d38c200b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='e151255a' visibility='default' filepath='include/linux/bpf_local_storage.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/bpf_local_storage.h' line='21' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c0342c43' size-in-bits='64' id='d38eb863'/>
+      <class-decl name='xarray' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/xarray.h' line='294' column='1' id='d39738ac'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='xa_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/xarray.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='xa_flags' type-id='3eb7c31c' visibility='default' filepath='include/linux/xarray.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='xa_head' type-id='eaa32e2f' visibility='default' filepath='include/linux/xarray.h' line='298' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ctl_table_poll' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/sysctl.h' line='106' column='1' id='d39c42ab'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='event' type-id='49178f86' visibility='default' filepath='include/linux/sysctl.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wait' type-id='b5ab048f' visibility='default' filepath='include/linux/sysctl.h' line='108' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ld_semaphore' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/tty_ldisc.h' line='139' column='1' id='d3aa38f0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='f22a8abb' visibility='default' filepath='include/linux/tty_ldisc.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wait_lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/tty_ldisc.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='wait_readers' type-id='f0981eeb' visibility='default' filepath='include/linux/tty_ldisc.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='read_wait' type-id='72f469ec' visibility='default' filepath='include/linux/tty_ldisc.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='write_wait' type-id='72f469ec' visibility='default' filepath='include/linux/tty_ldisc.h' line='144' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='93a4929f' size-in-bits='64' id='d3adb902'/>
+      <pointer-type-def type-id='8f19d02e' size-in-bits='64' id='d3af9964'/>
+      <pointer-type-def type-id='98bc2b95' size-in-bits='64' id='d3b23a45'/>
+      <function-type size-in-bits='64' id='d3baf253'>
+        <parameter type-id='2661e0d9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d3bb804d'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='164fa967' size-in-bits='64' id='d3c46d8b'/>
+      <pointer-type-def type-id='c930922b' size-in-bits='64' id='d3d046f7'/>
+      <pointer-type-def type-id='1f79e9b9' size-in-bits='64' id='d3d1201d'/>
+      <pointer-type-def type-id='a41f849f' size-in-bits='64' id='d3d20d73'/>
+      <class-decl name='dev_archdata' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/device.h' line='8' column='1' id='d3e142f5'/>
+      <class-decl name='bsg_job' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/bsg-lib.h' line='30' column='1' id='d3e31bbb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/bsg-lib.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='include/linux/bsg-lib.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='timeout' type-id='f0981eeb' visibility='default' filepath='include/linux/bsg-lib.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='request' type-id='eaa32e2f' visibility='default' filepath='include/linux/bsg-lib.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='reply' type-id='eaa32e2f' visibility='default' filepath='include/linux/bsg-lib.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='request_len' type-id='f0981eeb' visibility='default' filepath='include/linux/bsg-lib.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='reply_len' type-id='f0981eeb' visibility='default' filepath='include/linux/bsg-lib.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='request_payload' type-id='ad60a032' visibility='default' filepath='include/linux/bsg-lib.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='reply_payload' type-id='ad60a032' visibility='default' filepath='include/linux/bsg-lib.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='result' type-id='95e97e5e' visibility='default' filepath='include/linux/bsg-lib.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='reply_payload_rcv_len' type-id='f0981eeb' visibility='default' filepath='include/linux/bsg-lib.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='bidi_rq' type-id='3dad1a48' visibility='default' filepath='include/linux/bsg-lib.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='bidi_bio' type-id='fb55efa1' visibility='default' filepath='include/linux/bsg-lib.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='dd_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/bsg-lib.h' line='63' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='saved' size-in-bits='384' is-struct='yes' visibility='default' filepath='fs/namei.c' line='573' column='1' id='d3e6437c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='link' type-id='b5382ece' visibility='default' filepath='fs/namei.c' line='574' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='done' type-id='f1fbc58e' visibility='default' filepath='fs/namei.c' line='575' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='fs/namei.c' line='576' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='seq' type-id='f0981eeb' visibility='default' filepath='fs/namei.c' line='577' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='196864' is-struct='yes' visibility='default' filepath='lib/zstd/decompress.c' line='68' column='1' id='d3eb97ea' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='LLTable' type-id='507b15a5' visibility='default' filepath='lib/zstd/decompress.c' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16416'>
+          <var-decl name='OFTable' type-id='b138c00a' visibility='default' filepath='lib/zstd/decompress.c' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24640'>
+          <var-decl name='MLTable' type-id='507b15a5' visibility='default' filepath='lib/zstd/decompress.c' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41056'>
+          <var-decl name='hufTable' type-id='25a33d19' visibility='default' filepath='lib/zstd/decompress.c' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='172160'>
+          <var-decl name='workspace' type-id='6e9af403' visibility='default' filepath='lib/zstd/decompress.c' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='196736'>
+          <var-decl name='rep' type-id='68da9d9e' visibility='default' filepath='lib/zstd/decompress.c' line='74' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d3efde9e'>
+        <parameter type-id='ddd322c1' name='dev'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d3fc5c05'>
+        <parameter type-id='bf4bdb64'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='1c63cc3f'/>
+        <return type-id='b59d7dce'/>
+      </function-type>
+      <pointer-type-def type-id='c763c2ea' size-in-bits='64' id='d407a0d4'/>
+      <pointer-type-def type-id='03e12711' size-in-bits='64' id='d4145729'/>
+      <function-type size-in-bits='64' id='d41547a7'>
+        <parameter type-id='587a9d8d'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d425ee50'>
+        <parameter type-id='e27a9d68'/>
+        <parameter type-id='8d4f223b'/>
+        <parameter type-id='75615bf0'/>
+        <parameter type-id='59cc1ae8'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ethtool_pause_stats' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/ethtool.h' line='318' column='1' id='d4287147'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tx_pause_frames' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rx_pause_frames' type-id='91ce1af9' visibility='default' filepath='include/linux/ethtool.h' line='320' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9bcc816e' size-in-bits='64' id='d42add34'/>
+      <function-type size-in-bits='64' id='d42dfd68'>
+        <parameter type-id='27f3f5d8'/>
+        <parameter type-id='a987c462'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='0e3f80d9'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d430d6a9'>
+        <parameter type-id='00ee50b8'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='91ce1af9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='f2d6d1c0' const='yes' id='d43d82dd'/>
+      <pointer-type-def type-id='f81b67f4' size-in-bits='64' id='d43dc76d'/>
+      <function-type size-in-bits='64' id='d442aa81'>
+        <parameter type-id='d9863f2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='0fae1622' size-in-bits='64' id='d44a8cec'/>
+      <class-decl name='macsec_rx_sa_stats' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/net/macsec.h' line='71' column='1' id='d44b2755'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='InPktsOK' type-id='3f1a6b60' visibility='default' filepath='include/net/macsec.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='InPktsInvalid' type-id='3f1a6b60' visibility='default' filepath='include/net/macsec.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='InPktsNotValid' type-id='3f1a6b60' visibility='default' filepath='include/net/macsec.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='InPktsNotUsingSA' type-id='3f1a6b60' visibility='default' filepath='include/net/macsec.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='InPktsUnusedSA' type-id='3f1a6b60' visibility='default' filepath='include/net/macsec.h' line='76' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b86ce2e2' size-in-bits='64' id='d44ba07c'/>
+      <pointer-type-def type-id='7edf1df7' size-in-bits='64' id='d44d244f'/>
+      <class-decl name='scmi_protocol' size-in-bits='384' is-struct='yes' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='293' column='1' id='d44f152a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='19272f09' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='instance_init' type-id='c321beba' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='instance_deinit' type-id='c321beba' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ops' type-id='eaa32e2f' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='events' type-id='d5dff457' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='299' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='df20b624' const='yes' id='d45b1fc5'/>
+      <class-decl name='__kernel_v4l2_timeval' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='940' column='1' id='d45daad4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tv_sec' type-id='1eb56b1e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='941' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tv_usec' type-id='1eb56b1e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='946' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='dma_map_ops' size-in-bits='1728' is-struct='yes' visibility='default' filepath='include/linux/dma-map-ops.h' line='15' column='1' id='d45f2b4f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='alloc' type-id='06c31e09' visibility='default' filepath='include/linux/dma-map-ops.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='free' type-id='d7b98f89' visibility='default' filepath='include/linux/dma-map-ops.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='alloc_pages' type-id='03e056a8' visibility='default' filepath='include/linux/dma-map-ops.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='free_pages' type-id='df0f254c' visibility='default' filepath='include/linux/dma-map-ops.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='alloc_noncontiguous' type-id='b05eedc1' visibility='default' filepath='include/linux/dma-map-ops.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='free_noncontiguous' type-id='2eb73e9c' visibility='default' filepath='include/linux/dma-map-ops.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='mmap' type-id='f7114ca5' visibility='default' filepath='include/linux/dma-map-ops.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='get_sgtable' type-id='295a92ed' visibility='default' filepath='include/linux/dma-map-ops.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='map_page' type-id='7855184a' visibility='default' filepath='include/linux/dma-map-ops.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='unmap_page' type-id='6407fd0f' visibility='default' filepath='include/linux/dma-map-ops.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='map_sg' type-id='64452f48' visibility='default' filepath='include/linux/dma-map-ops.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='unmap_sg' type-id='772c77c9' visibility='default' filepath='include/linux/dma-map-ops.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='map_resource' type-id='66c8694d' visibility='default' filepath='include/linux/dma-map-ops.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='unmap_resource' type-id='6407fd0f' visibility='default' filepath='include/linux/dma-map-ops.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='sync_single_for_cpu' type-id='b97350f1' visibility='default' filepath='include/linux/dma-map-ops.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='sync_single_for_device' type-id='b97350f1' visibility='default' filepath='include/linux/dma-map-ops.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='sync_sg_for_cpu' type-id='9ed36ca7' visibility='default' filepath='include/linux/dma-map-ops.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='sync_sg_for_device' type-id='9ed36ca7' visibility='default' filepath='include/linux/dma-map-ops.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='cache_sync' type-id='4935400d' visibility='default' filepath='include/linux/dma-map-ops.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='dma_supported' type-id='5aa1f3eb' visibility='default' filepath='include/linux/dma-map-ops.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='get_required_mask' type-id='5dee5830' visibility='default' filepath='include/linux/dma-map-ops.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='max_mapping_size' type-id='49f5e2e5' visibility='default' filepath='include/linux/dma-map-ops.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='get_merge_boundary' type-id='1588722c' visibility='default' filepath='include/linux/dma-map-ops.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/dma-map-ops.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/dma-map-ops.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/dma-map-ops.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/dma-map-ops.h' line='78' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b31a25ae' size-in-bits='64' id='d45ffdc0'/>
+      <array-type-def dimensions='1' type-id='2a8a6332' size-in-bits='384' id='d46544fa'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='25e1863f' size-in-bits='64' id='d4682107'/>
+      <function-type size-in-bits='64' id='d4693377'>
+        <parameter type-id='7837cd88'/>
+        <return type-id='4a935625'/>
+      </function-type>
+      <pointer-type-def type-id='7a9d0373' size-in-bits='64' id='d46d0643'/>
+      <pointer-type-def type-id='9f1d7608' size-in-bits='64' id='d479d76a'/>
+      <function-type size-in-bits='64' id='d47d86c5'>
+        <parameter type-id='92ed24a5'/>
+        <return type-id='f10b2208'/>
+      </function-type>
+      <class-decl name='dev_pm_set_opp_data' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/pm_opp.h' line='80' column='1' id='d48383c4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='old_opp' type-id='de175b0d' visibility='default' filepath='include/linux/pm_opp.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='new_opp' type-id='de175b0d' visibility='default' filepath='include/linux/pm_opp.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='regulators' type-id='4e034354' visibility='default' filepath='include/linux/pm_opp.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='regulator_count' type-id='f0981eeb' visibility='default' filepath='include/linux/pm_opp.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='clk' type-id='7d0bc0eb' visibility='default' filepath='include/linux/pm_opp.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/pm_opp.h' line='87' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='0382928e' const='yes' id='d48e8481'/>
+      <pointer-type-def type-id='c1a75286' size-in-bits='64' id='d494b97c'/>
+      <class-decl name='snd_soc_tplg_stream_caps' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='302' column='1' id='d49652d3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='name' type-id='36cef6bd' visibility='default' filepath='include/uapi/sound/asoc.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='formats' type-id='a30e8d1f' visibility='default' filepath='include/uapi/sound/asoc.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='rates' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='rate_min' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='rate_max' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='channels_min' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='309' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='channels_max' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='310' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='periods_min' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='311' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='periods_max' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='period_size_min' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='313' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='period_size_max' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='buffer_size_min' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='buffer_size_max' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='sig_bits' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='317' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d4984c46'>
+        <parameter type-id='00ee50b8'/>
+        <parameter type-id='1e6beae1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d49e6088'>
+        <parameter type-id='3aaeef89'/>
+        <return type-id='f9b06939'/>
+      </function-type>
+      <class-decl name='usb_cdc_line_coding' size-in-bits='56' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='257' column='1' id='d4a32434'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dwDTERate' type-id='2f162548' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bCharFormat' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='bParityType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='bDataBits' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='271' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d4a58841'>
+        <parameter type-id='ddd322c1'/>
+        <parameter type-id='be3ce245'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='afd17dd3' size-in-bits='64' id='d4a8f133'/>
+      <qualified-type-def type-id='d23726dd' const='yes' id='d4aabc7e'/>
+      <pointer-type-def type-id='3273164b' size-in-bits='64' id='d4ae3f3f'/>
+      <pointer-type-def type-id='feb626f6' size-in-bits='64' id='d4bf2c54'/>
+      <array-type-def dimensions='1' type-id='663acc25' size-in-bits='4864' id='d4c82337'>
+        <subrange length='19' type-id='7ff19f0f' id='448ee30f'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='d4c94570'>
+        <parameter type-id='af051c69'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='1966792a' size-in-bits='64' id='d4cfedac'/>
+      <qualified-type-def type-id='3cdc7e32' const='yes' id='d4db3637'/>
+      <enum-decl name='rc_driver_type' filepath='include/media/rc-core.h' line='27' column='1' id='d4dbe3db'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='RC_DRIVER_SCANCODE' value='0'/>
+        <enumerator name='RC_DRIVER_IR_RAW' value='1'/>
+        <enumerator name='RC_DRIVER_IR_RAW_TX' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='ae166e71' size-in-bits='64' id='d4e0eca9'/>
+      <function-type size-in-bits='64' id='d4f11968'>
+        <parameter type-id='339c87e8'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='582de67c' const='yes' id='d4f1de57'/>
+      <class-decl name='bpf_jit_poke_descriptor' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='878' column='1' id='d4f2184b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tailcall_target' type-id='eaa32e2f' visibility='default' filepath='include/linux/bpf.h' line='879' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tailcall_bypass' type-id='eaa32e2f' visibility='default' filepath='include/linux/bpf.h' line='880' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bypass_addr' type-id='eaa32e2f' visibility='default' filepath='include/linux/bpf.h' line='881' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='aux' type-id='eaa32e2f' visibility='default' filepath='include/linux/bpf.h' line='882' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='' type-id='ac5ab66d' visibility='default' filepath='include/linux/bpf.h' line='883' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='tailcall_target_stable' type-id='b50a4934' visibility='default' filepath='include/linux/bpf.h' line='889' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='392'>
+          <var-decl name='adj_off' type-id='f9b06939' visibility='default' filepath='include/linux/bpf.h' line='890' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='400'>
+          <var-decl name='reason' type-id='1dc6a898' visibility='default' filepath='include/linux/bpf.h' line='891' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='insn_idx' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='892' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a388c264' size-in-bits='64' id='d4f2b9b2'/>
+      <class-decl name='phy_ops' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/phy/phy.h' line='80' column='1' id='d4f8274f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='init' type-id='83078c32' visibility='default' filepath='include/linux/phy/phy.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='exit' type-id='83078c32' visibility='default' filepath='include/linux/phy/phy.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='power_on' type-id='83078c32' visibility='default' filepath='include/linux/phy/phy.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='power_off' type-id='83078c32' visibility='default' filepath='include/linux/phy/phy.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='set_mode' type-id='e6dafa73' visibility='default' filepath='include/linux/phy/phy.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='set_media' type-id='9ec870df' visibility='default' filepath='include/linux/phy/phy.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='set_speed' type-id='a32594b9' visibility='default' filepath='include/linux/phy/phy.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='configure' type-id='3f29b13b' visibility='default' filepath='include/linux/phy/phy.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='validate' type-id='dd0d6c38' visibility='default' filepath='include/linux/phy/phy.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='reset' type-id='83078c32' visibility='default' filepath='include/linux/phy/phy.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='calibrate' type-id='83078c32' visibility='default' filepath='include/linux/phy/phy.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='release' type-id='64c19e8b' visibility='default' filepath='include/linux/phy/phy.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/phy/phy.h' line='122' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='25ee3a49' size-in-bits='64' id='d4f9dda1'/>
+      <array-type-def dimensions='1' type-id='3f1a6b60' size-in-bits='infinite' id='d5016f6f'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='9b08f7cd' size-in-bits='64' id='d504f73d'/>
+      <pointer-type-def type-id='8edc59cf' size-in-bits='64' id='d507826b'/>
+      <class-decl name='fscrypt_blk_crypto_key' size-in-bits='1280' is-struct='yes' visibility='default' filepath='fs/crypto/inline_crypt.c' line='25' column='1' id='d509ab32'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='7b61b7b4' visibility='default' filepath='fs/crypto/inline_crypt.c' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='num_devs' type-id='95e97e5e' visibility='default' filepath='fs/crypto/inline_crypt.c' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='devs' type-id='60a540a8' visibility='default' filepath='fs/crypto/inline_crypt.c' line='28' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='kmsg_dumper' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/kmsg_dump.h' line='50' column='1' id='d50d3459'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/kmsg_dump.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dump' type-id='4c257c03' visibility='default' filepath='include/linux/kmsg_dump.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='max_reason' type-id='48f4c0e2' visibility='default' filepath='include/linux/kmsg_dump.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/linux/kmsg_dump.h' line='54' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a52958fa' size-in-bits='64' id='d5211638'/>
+      <class-decl name='generic_pm_domain' size-in-bits='12288' is-struct='yes' visibility='default' filepath='include/linux/pm_domain.h' line='109' column='1' id='d52c7591'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/pm_domain.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='domain' type-id='7c94eaa3' visibility='default' filepath='include/linux/pm_domain.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9216'>
+          <var-decl name='gpd_list_node' type-id='72f469ec' visibility='default' filepath='include/linux/pm_domain.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='parent_links' type-id='72f469ec' visibility='default' filepath='include/linux/pm_domain.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9472'>
+          <var-decl name='child_links' type-id='72f469ec' visibility='default' filepath='include/linux/pm_domain.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='dev_list' type-id='72f469ec' visibility='default' filepath='include/linux/pm_domain.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9728'>
+          <var-decl name='gov' type-id='5db9bd89' visibility='default' filepath='include/linux/pm_domain.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9792'>
+          <var-decl name='power_off_work' type-id='ef9025d0' visibility='default' filepath='include/linux/pm_domain.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10176'>
+          <var-decl name='provider' type-id='4a935625' visibility='default' filepath='include/linux/pm_domain.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10240'>
+          <var-decl name='has_provider' type-id='b50a4934' visibility='default' filepath='include/linux/pm_domain.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10304'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/pm_domain.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10368'>
+          <var-decl name='sd_count' type-id='49178f86' visibility='default' filepath='include/linux/pm_domain.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10400'>
+          <var-decl name='status' type-id='8c497ed4' visibility='default' filepath='include/linux/pm_domain.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10432'>
+          <var-decl name='device_count' type-id='f0981eeb' visibility='default' filepath='include/linux/pm_domain.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10464'>
+          <var-decl name='suspended_count' type-id='f0981eeb' visibility='default' filepath='include/linux/pm_domain.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10496'>
+          <var-decl name='prepared_count' type-id='f0981eeb' visibility='default' filepath='include/linux/pm_domain.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10528'>
+          <var-decl name='performance_state' type-id='f0981eeb' visibility='default' filepath='include/linux/pm_domain.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10560'>
+          <var-decl name='cpus' type-id='b16b461b' visibility='default' filepath='include/linux/pm_domain.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10624'>
+          <var-decl name='power_off' type-id='16052051' visibility='default' filepath='include/linux/pm_domain.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10688'>
+          <var-decl name='power_on' type-id='16052051' visibility='default' filepath='include/linux/pm_domain.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10752'>
+          <var-decl name='power_notifiers' type-id='96e74f5f' visibility='default' filepath='include/linux/pm_domain.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10816'>
+          <var-decl name='opp_table' type-id='e62a60bd' visibility='default' filepath='include/linux/pm_domain.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10880'>
+          <var-decl name='opp_to_performance_state' type-id='0adcd7cb' visibility='default' filepath='include/linux/pm_domain.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10944'>
+          <var-decl name='set_performance_state' type-id='791b4a6b' visibility='default' filepath='include/linux/pm_domain.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11008'>
+          <var-decl name='dev_ops' type-id='e56d1ecd' visibility='default' filepath='include/linux/pm_domain.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11136'>
+          <var-decl name='max_off_time_ns' type-id='9b7c55ef' visibility='default' filepath='include/linux/pm_domain.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11200'>
+          <var-decl name='next_wakeup' type-id='fbc017ef' visibility='default' filepath='include/linux/pm_domain.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11264'>
+          <var-decl name='max_off_time_changed' type-id='b50a4934' visibility='default' filepath='include/linux/pm_domain.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11272'>
+          <var-decl name='cached_power_down_ok' type-id='b50a4934' visibility='default' filepath='include/linux/pm_domain.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11280'>
+          <var-decl name='cached_power_down_state_idx' type-id='b50a4934' visibility='default' filepath='include/linux/pm_domain.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11328'>
+          <var-decl name='attach_dev' type-id='9ab734dd' visibility='default' filepath='include/linux/pm_domain.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11392'>
+          <var-decl name='detach_dev' type-id='c24523fe' visibility='default' filepath='include/linux/pm_domain.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11456'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/pm_domain.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11520'>
+          <var-decl name='states' type-id='ab59ee31' visibility='default' filepath='include/linux/pm_domain.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11584'>
+          <var-decl name='free_states' type-id='28773d52' visibility='default' filepath='include/linux/pm_domain.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11648'>
+          <var-decl name='state_count' type-id='f0981eeb' visibility='default' filepath='include/linux/pm_domain.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11680'>
+          <var-decl name='state_idx' type-id='f0981eeb' visibility='default' filepath='include/linux/pm_domain.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11712'>
+          <var-decl name='on_time' type-id='fbc017ef' visibility='default' filepath='include/linux/pm_domain.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11776'>
+          <var-decl name='accounting_time' type-id='fbc017ef' visibility='default' filepath='include/linux/pm_domain.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11840'>
+          <var-decl name='lock_ops' type-id='adbc0a2b' visibility='default' filepath='include/linux/pm_domain.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11904'>
+          <var-decl name='' type-id='ac5ab5d2' visibility='default' filepath='include/linux/pm_domain.h' line='155' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0cc5a40d' size-in-bits='64' id='d5323b6d'/>
+      <pointer-type-def type-id='41d01802' size-in-bits='64' id='d5349744'/>
+      <pointer-type-def type-id='1251126e' size-in-bits='64' id='d535b874'/>
+      <pointer-type-def type-id='0742eda5' size-in-bits='64' id='d53c2eb5'/>
+      <class-decl name='blk_mq_debugfs_attr' size-in-bits='320' is-struct='yes' visibility='default' filepath='block/blk-mq-debugfs.h' line='9' column='1' id='d53ee986'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='block/blk-mq-debugfs.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mode' type-id='2594b00f' visibility='default' filepath='block/blk-mq-debugfs.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='show' type-id='5694e921' visibility='default' filepath='block/blk-mq-debugfs.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='write' type-id='9682fd8c' visibility='default' filepath='block/blk-mq-debugfs.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='seq_ops' type-id='943a1b48' visibility='default' filepath='block/blk-mq-debugfs.h' line='15' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d5408851'>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='8c493d8a'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='dir_context' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2003' column='1' id='d5476b80'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='actor' type-id='262124ef' visibility='default' filepath='include/linux/fs.h' line='2004' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pos' type-id='69bf7bee' visibility='default' filepath='include/linux/fs.h' line='2005' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='i2c_bus_recovery_info' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/i2c.h' line='632' column='1' id='d5526a99'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='recover_bus' type-id='6ae2afd7' visibility='default' filepath='include/linux/i2c.h' line='633' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='get_scl' type-id='6ae2afd7' visibility='default' filepath='include/linux/i2c.h' line='635' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='set_scl' type-id='8f19938d' visibility='default' filepath='include/linux/i2c.h' line='636' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get_sda' type-id='6ae2afd7' visibility='default' filepath='include/linux/i2c.h' line='637' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='set_sda' type-id='8f19938d' visibility='default' filepath='include/linux/i2c.h' line='638' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='get_bus_free' type-id='6ae2afd7' visibility='default' filepath='include/linux/i2c.h' line='639' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='prepare_recovery' type-id='8616a4a6' visibility='default' filepath='include/linux/i2c.h' line='641' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='unprepare_recovery' type-id='8616a4a6' visibility='default' filepath='include/linux/i2c.h' line='642' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='scl_gpiod' type-id='26760480' visibility='default' filepath='include/linux/i2c.h' line='645' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='sda_gpiod' type-id='26760480' visibility='default' filepath='include/linux/i2c.h' line='646' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='pinctrl' type-id='73ea90c5' visibility='default' filepath='include/linux/i2c.h' line='647' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='pins_default' type-id='f418ceb3' visibility='default' filepath='include/linux/i2c.h' line='648' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='pins_gpio' type-id='f418ceb3' visibility='default' filepath='include/linux/i2c.h' line='649' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='otp_info' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/mtd/mtd-abi.h' line='146' column='1' id='d5551a73'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='3f1a6b60' visibility='default' filepath='include/uapi/mtd/mtd-abi.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='length' type-id='3f1a6b60' visibility='default' filepath='include/uapi/mtd/mtd-abi.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='locked' type-id='3f1a6b60' visibility='default' filepath='include/uapi/mtd/mtd-abi.h' line='149' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d5568bdd'>
+        <parameter type-id='bf4bdb64'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='2522883d'/>
+      </function-type>
+      <pointer-type-def type-id='8fb867c9' size-in-bits='64' id='d56697f1'/>
+      <function-type size-in-bits='64' id='d56a4c4b'>
+        <parameter type-id='347d8ccd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a11f6ac5' size-in-bits='64' id='d579fa99'/>
+      <pointer-type-def type-id='205059e2' size-in-bits='64' id='d57a1ee4'/>
+      <pointer-type-def type-id='dc1e3176' size-in-bits='64' id='d586c6cc'/>
+      <pointer-type-def type-id='64c36f53' size-in-bits='64' id='d589c913'/>
+      <pointer-type-def type-id='ef46a2bb' size-in-bits='64' id='d58d6a5f'/>
+      <function-type size-in-bits='64' id='d591777b'>
+        <parameter type-id='eb572b74'/>
+        <parameter type-id='80f4b756'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d59331c2'>
+        <parameter type-id='4b8b2cf3'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='835a73a6' size-in-bits='64' id='d5951000'/>
+      <pointer-type-def type-id='59f7b4bb' size-in-bits='64' id='d598c37f'/>
+      <function-type size-in-bits='64' id='d59c0ecf'>
+        <parameter type-id='442b8d89'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='ae79630f' size-in-bits='64' id='d59ce2e7'/>
+      <class-decl name='nl80211_wowlan_tcp_data_seq' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5688' column='1' id='d5a1b375'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5689' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='offset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5689' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5689' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='97f0888c' size-in-bits='64' id='d5a71d52'/>
+      <class-decl name='dma_buf_poll_cb_t' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/dma-buf.h' line='507' column='1' id='d5acde18'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cb' type-id='54c5dd35' visibility='default' filepath='include/linux/dma-buf.h' line='508' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='poll' type-id='03d48e96' visibility='default' filepath='include/linux/dma-buf.h' line='509' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='active' type-id='8f254b08' visibility='default' filepath='include/linux/dma-buf.h' line='511' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fwnode_handle' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/fwnode.h' line='36' column='1' id='d5ace205'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='secondary' type-id='4a935625' visibility='default' filepath='include/linux/fwnode.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ops' type-id='b4ff6cf8' visibility='default' filepath='include/linux/fwnode.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/fwnode.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='suppliers' type-id='72f469ec' visibility='default' filepath='include/linux/fwnode.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='consumers' type-id='72f469ec' visibility='default' filepath='include/linux/fwnode.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/linux/fwnode.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fwnode.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b68c3fba' size-in-bits='64' id='d5b25e9c'/>
+      <function-type size-in-bits='64' id='d5b6f34c'>
+        <parameter type-id='d30bdc51'/>
+        <parameter type-id='0b001c1f'/>
+        <parameter type-id='26a90f95'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <qualified-type-def type-id='1dc6a898' const='yes' id='d5c0a628'/>
+      <function-type size-in-bits='64' id='d5c7d653'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='13f343ef'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='52a50596' size-in-bits='64' id='d5c806f4'/>
+      <class-decl name='drm_minor' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/drm/drm_file.h' line='70' column='1' id='d5cb77a8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_file.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_file.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='kdev' type-id='fa0b179b' visibility='default' filepath='include/drm/drm_file.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dev' type-id='8898134d' visibility='default' filepath='include/drm/drm_file.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='debugfs_root' type-id='27675065' visibility='default' filepath='include/drm/drm_file.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='debugfs_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_file.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='debugfs_lock' type-id='925167dc' visibility='default' filepath='include/drm/drm_file.h' line='80' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0d22ecf9' size-in-bits='64' id='d5cbf711'/>
+      <pointer-type-def type-id='67b24a02' size-in-bits='64' id='d5d06540'/>
+      <pointer-type-def type-id='c40caf76' size-in-bits='64' id='d5d36d38'/>
+      <class-decl name='edac_device_block' size-in-bits='1280' is-struct='yes' visibility='default' filepath='drivers/edac/edac_device.h' line='117' column='1' id='d5dd5721'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='instance' type-id='581e52eb' visibility='default' filepath='drivers/edac/edac_device.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='drivers/edac/edac_device.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='counters' type-id='c0388fd4' visibility='default' filepath='drivers/edac/edac_device.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='nr_attribs' type-id='95e97e5e' visibility='default' filepath='drivers/edac/edac_device.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='block_attributes' type-id='b52eac2e' visibility='default' filepath='drivers/edac/edac_device.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='drivers/edac/edac_device.h' line='129' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9712f929' size-in-bits='64' id='d5ddffb9'/>
+      <pointer-type-def type-id='bb75ea85' size-in-bits='64' id='d5df7665'/>
+      <pointer-type-def type-id='e3840c87' size-in-bits='64' id='d5dff457'/>
+      <class-decl name='genpd_power_state' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/pm_domain.h' line='94' column='1' id='d5e6c299'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='power_off_latency_ns' type-id='9b7c55ef' visibility='default' filepath='include/linux/pm_domain.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='power_on_latency_ns' type-id='9b7c55ef' visibility='default' filepath='include/linux/pm_domain.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='residency_ns' type-id='9b7c55ef' visibility='default' filepath='include/linux/pm_domain.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='usage' type-id='91ce1af9' visibility='default' filepath='include/linux/pm_domain.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rejected' type-id='91ce1af9' visibility='default' filepath='include/linux/pm_domain.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='fwnode' type-id='4a935625' visibility='default' filepath='include/linux/pm_domain.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='idle_time' type-id='fbc017ef' visibility='default' filepath='include/linux/pm_domain.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/pm_domain.h' line='102' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='rq' size-in-bits='36352' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='940' column='1' id='d5ee6a94'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='__lock' type-id='f5c90b3f' visibility='default' filepath='kernel/sched/sched.h' line='942' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='nr_running' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='948' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='last_blocked_load_update_tick' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='956' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='has_blocked_load' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='957' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='nohz_csd' type-id='223a68bd' visibility='default' filepath='kernel/sched/sched.h' line='958' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='nohz_tick_stopped' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='960' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='nohz_flags' type-id='49178f86' visibility='default' filepath='kernel/sched/sched.h' line='961' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ttwu_pending' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='965' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='nr_switches' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='967' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='uclamp' type-id='cf2a9adf' visibility='default' filepath='kernel/sched/sched.h' line='971' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='uclamp_flags' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='972' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='cfs' type-id='feeb4c2f' visibility='default' filepath='kernel/sched/sched.h' line='976' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7168'>
+          <var-decl name='rt' type-id='e648d771' visibility='default' filepath='kernel/sched/sched.h' line='977' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20736'>
+          <var-decl name='dl' type-id='53d038df' visibility='default' filepath='kernel/sched/sched.h' line='978' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21504'>
+          <var-decl name='leaf_cfs_rq_list' type-id='72f469ec' visibility='default' filepath='kernel/sched/sched.h' line='982' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21632'>
+          <var-decl name='tmp_alone_branch' type-id='e84b031a' visibility='default' filepath='kernel/sched/sched.h' line='983' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21696'>
+          <var-decl name='nr_uninterruptible' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='992' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21760'>
+          <var-decl name='curr' type-id='f23e2572' visibility='default' filepath='kernel/sched/sched.h' line='994' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21824'>
+          <var-decl name='idle' type-id='f23e2572' visibility='default' filepath='kernel/sched/sched.h' line='995' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21888'>
+          <var-decl name='stop' type-id='f23e2572' visibility='default' filepath='kernel/sched/sched.h' line='996' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21952'>
+          <var-decl name='next_balance' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='997' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22016'>
+          <var-decl name='prev_mm' type-id='df4b7819' visibility='default' filepath='kernel/sched/sched.h' line='998' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22080'>
+          <var-decl name='clock_update_flags' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='1000' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22144'>
+          <var-decl name='clock' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='1001' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22528'>
+          <var-decl name='clock_task' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='1003' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22592'>
+          <var-decl name='clock_task_mult' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='1004' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22656'>
+          <var-decl name='clock_pelt' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='1005' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22720'>
+          <var-decl name='lost_idle_time' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1006' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22784'>
+          <var-decl name='nr_iowait' type-id='49178f86' visibility='default' filepath='kernel/sched/sched.h' line='1008' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22848'>
+          <var-decl name='last_seen_need_resched_ns' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='1011' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22912'>
+          <var-decl name='ticks_without_resched' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1012' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22944'>
+          <var-decl name='membarrier_state' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1016' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22976'>
+          <var-decl name='rd' type-id='c13bca88' visibility='default' filepath='kernel/sched/sched.h' line='1020' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='23040'>
+          <var-decl name='sd' type-id='e9d32201' visibility='default' filepath='kernel/sched/sched.h' line='1021' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='23104'>
+          <var-decl name='cpu_capacity' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1023' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='23168'>
+          <var-decl name='cpu_capacity_orig' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1024' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='23232'>
+          <var-decl name='balance_callback' type-id='69c138b1' visibility='default' filepath='kernel/sched/sched.h' line='1026' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='23296'>
+          <var-decl name='nohz_idle_balance' type-id='002ac4a6' visibility='default' filepath='kernel/sched/sched.h' line='1028' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='23304'>
+          <var-decl name='idle_balance' type-id='002ac4a6' visibility='default' filepath='kernel/sched/sched.h' line='1029' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='23360'>
+          <var-decl name='misfit_task_load' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1031' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='23424'>
+          <var-decl name='active_balance' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1034' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='23456'>
+          <var-decl name='push_cpu' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1035' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='23488'>
+          <var-decl name='active_balance_work' type-id='8eb07132' visibility='default' filepath='kernel/sched/sched.h' line='1036' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='23872'>
+          <var-decl name='cpu' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1039' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='23904'>
+          <var-decl name='online' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1040' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='23936'>
+          <var-decl name='cfs_tasks' type-id='72f469ec' visibility='default' filepath='kernel/sched/sched.h' line='1042' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24064'>
+          <var-decl name='avg_rt' type-id='629c8d83' visibility='default' filepath='kernel/sched/sched.h' line='1044' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24576'>
+          <var-decl name='avg_dl' type-id='629c8d83' visibility='default' filepath='kernel/sched/sched.h' line='1045' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25088'>
+          <var-decl name='avg_irq' type-id='629c8d83' visibility='default' filepath='kernel/sched/sched.h' line='1047' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25600'>
+          <var-decl name='avg_thermal' type-id='629c8d83' visibility='default' filepath='kernel/sched/sched.h' line='1050' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26112'>
+          <var-decl name='idle_stamp' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='1052' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26176'>
+          <var-decl name='avg_idle' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='1053' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26240'>
+          <var-decl name='wake_stamp' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1055' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26304'>
+          <var-decl name='wake_avg_idle' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='1056' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26368'>
+          <var-decl name='max_idle_balance_cost' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='1059' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26432'>
+          <var-decl name='hotplug_wait' type-id='71598d38' visibility='default' filepath='kernel/sched/sched.h' line='1062' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26496'>
+          <var-decl name='prev_irq_time' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='1067' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26560'>
+          <var-decl name='prev_steal_time' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='1070' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26624'>
+          <var-decl name='prev_steal_time_rq' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='1073' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26688'>
+          <var-decl name='calc_load_update' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1077' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26752'>
+          <var-decl name='calc_load_active' type-id='bd54fe1a' visibility='default' filepath='kernel/sched/sched.h' line='1078' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26880'>
+          <var-decl name='hrtick_csd' type-id='223a68bd' visibility='default' filepath='kernel/sched/sched.h' line='1082' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27136'>
+          <var-decl name='hrtick_timer' type-id='b6993efc' visibility='default' filepath='kernel/sched/sched.h' line='1084' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27712'>
+          <var-decl name='hrtick_time' type-id='fbc017ef' visibility='default' filepath='kernel/sched/sched.h' line='1085' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27776'>
+          <var-decl name='rq_sched_info' type-id='59ddd03d' visibility='default' filepath='kernel/sched/sched.h' line='1090' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28032'>
+          <var-decl name='rq_cpu_time' type-id='0d77e947' visibility='default' filepath='kernel/sched/sched.h' line='1091' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28096'>
+          <var-decl name='yld_count' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='1095' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28128'>
+          <var-decl name='sched_count' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='1098' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28160'>
+          <var-decl name='sched_goidle' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='1099' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28192'>
+          <var-decl name='ttwu_count' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='1102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28224'>
+          <var-decl name='ttwu_local' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='1103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28288'>
+          <var-decl name='idle_state' type-id='2e3e746d' visibility='default' filepath='kernel/sched/sched.h' line='1108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28352'>
+          <var-decl name='nr_pinned' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='1112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28384'>
+          <var-decl name='push_busy' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='1114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28416'>
+          <var-decl name='push_work' type-id='8eb07132' visibility='default' filepath='kernel/sched/sched.h' line='1115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='28800'>
+          <var-decl name='android_vendor_data1' type-id='9db16187' visibility='default' filepath='kernel/sched/sched.h' line='1133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='34944'>
+          <var-decl name='android_oem_data1' type-id='c497958f' visibility='default' filepath='kernel/sched/sched.h' line='1134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='35968'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='1136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='36032'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='1137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='36096'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='1138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='36160'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='1139' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='48b94b91' const='yes' id='d5f12852'/>
+      <pointer-type-def type-id='30e75f3e' size-in-bits='64' id='d5f67e88'/>
+      <pointer-type-def type-id='62d1e232' size-in-bits='64' id='d601a214'/>
+      <pointer-type-def type-id='de031042' size-in-bits='64' id='d60f4f10'/>
+      <class-decl name='v4l2_ctrl_handler' size-in-bits='1792' is-struct='yes' visibility='default' filepath='include/media/v4l2-ctrls.h' line='377' column='1' id='d6130048'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='_lock' type-id='925167dc' visibility='default' filepath='include/media/v4l2-ctrls.h' line='378' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='lock' type-id='e0ea832a' visibility='default' filepath='include/media/v4l2-ctrls.h' line='379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ctrls' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-ctrls.h' line='380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ctrl_refs' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-ctrls.h' line='381' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='cached' type-id='9f3a0131' visibility='default' filepath='include/media/v4l2-ctrls.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='buckets' type-id='c34fbd81' visibility='default' filepath='include/media/v4l2-ctrls.h' line='383' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='notify' type-id='7ec3cb1e' visibility='default' filepath='include/media/v4l2-ctrls.h' line='384' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='notify_priv' type-id='eaa32e2f' visibility='default' filepath='include/media/v4l2-ctrls.h' line='385' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='nr_of_buckets' type-id='1dc6a898' visibility='default' filepath='include/media/v4l2-ctrls.h' line='386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='error' type-id='95e97e5e' visibility='default' filepath='include/media/v4l2-ctrls.h' line='387' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='request_is_queued' type-id='b50a4934' visibility='default' filepath='include/media/v4l2-ctrls.h' line='388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='requests' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-ctrls.h' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='requests_queued' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-ctrls.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='req_obj' type-id='a5b7e4fd' visibility='default' filepath='include/media/v4l2-ctrls.h' line='391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/media/v4l2-ctrls.h' line='393' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cef38194' size-in-bits='64' id='d616d8de'/>
+      <pointer-type-def type-id='1d27b1eb' size-in-bits='64' id='d616df2b'/>
+      <pointer-type-def type-id='64705f1a' size-in-bits='64' id='d6184118'/>
+      <class-decl name='deferred_split' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/mmzone.h' line='1008' column='1' id='d619c1c5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='split_queue_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/mmzone.h' line='1009' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='split_queue' type-id='72f469ec' visibility='default' filepath='include/linux/mmzone.h' line='1010' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='split_queue_len' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='1011' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='phy_interface_t' type-id='94c71594' filepath='include/linux/phy.h' line='157' column='1' id='d61bf978'/>
+      <class-decl name='vmpressure' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/linux/vmpressure.h' line='13' column='1' id='d6294af7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='scanned' type-id='7359adad' visibility='default' filepath='include/linux/vmpressure.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reclaimed' type-id='7359adad' visibility='default' filepath='include/linux/vmpressure.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tree_scanned' type-id='7359adad' visibility='default' filepath='include/linux/vmpressure.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tree_reclaimed' type-id='7359adad' visibility='default' filepath='include/linux/vmpressure.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='sr_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/vmpressure.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='events' type-id='72f469ec' visibility='default' filepath='include/linux/vmpressure.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='events_lock' type-id='925167dc' visibility='default' filepath='include/linux/vmpressure.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/linux/vmpressure.h' line='27' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cfd6c72c' size-in-bits='64' id='d634cc76'/>
+      <pointer-type-def type-id='47692c1a' size-in-bits='64' id='d6369c88'/>
+      <function-type size-in-bits='64' id='d647b094'>
+        <parameter type-id='80f25feb'/>
+        <parameter type-id='bd54fe1a'/>
+        <parameter type-id='bd54fe1a'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='dc7e95e2' size-in-bits='24576' id='d6500b03'>
+        <subrange length='12' type-id='7ff19f0f' id='84827bdc'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='d6574e69'>
+        <parameter type-id='b9af02c3'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='2994de4b' size-in-bits='64' id='d65a12b3'/>
+      <pointer-type-def type-id='e6fedf36' size-in-bits='64' id='d65efcf0'/>
+      <function-type size-in-bits='64' id='d660dfdd'>
+        <parameter type-id='c1547255'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='4b09229d' size-in-bits='64' id='d661a615'/>
+      <array-type-def dimensions='1' type-id='6ad85953' size-in-bits='18816' id='d6640cfa'>
+        <subrange length='12' type-id='7ff19f0f' id='84827bdc'/>
+      </array-type-def>
+      <pointer-type-def type-id='fe3cfa56' size-in-bits='64' id='d664ced0'/>
+      <class-decl name='ethtool_eee' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='371' column='1' id='d666fa80'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='supported' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='373' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='advertised' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='374' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='lp_advertised' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='eee_active' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='eee_enabled' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='377' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tx_lpi_enabled' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='378' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='tx_lpi_timer' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='reserved' type-id='839e8989' visibility='default' filepath='include/uapi/linux/ethtool.h' line='380' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d66ae2ca'>
+        <parameter type-id='12f283a5'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='de640095' size-in-bits='64' id='d66d2cad'/>
+      <pointer-type-def type-id='c0de0cb2' size-in-bits='64' id='d67468b4'/>
+      <class-decl name='scsi_sense_hdr' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/scsi/scsi_common.h' line='50' column='1' id='d6746ce3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='response_code' type-id='f9b06939' visibility='default' filepath='include/scsi/scsi_common.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='sense_key' type-id='f9b06939' visibility='default' filepath='include/scsi/scsi_common.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='asc' type-id='f9b06939' visibility='default' filepath='include/scsi/scsi_common.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='ascq' type-id='f9b06939' visibility='default' filepath='include/scsi/scsi_common.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='byte4' type-id='f9b06939' visibility='default' filepath='include/scsi/scsi_common.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='byte5' type-id='f9b06939' visibility='default' filepath='include/scsi/scsi_common.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='byte6' type-id='f9b06939' visibility='default' filepath='include/scsi/scsi_common.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='additional_length' type-id='f9b06939' visibility='default' filepath='include/scsi/scsi_common.h' line='58' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0b0288d6' size-in-bits='64' id='d6762aa0'/>
+      <class-decl name='thermal_zone_params' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/thermal.h' line='248' column='1' id='d6772b4e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='governor_name' type-id='664ac0b7' visibility='default' filepath='include/linux/thermal.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='no_hwmon' type-id='b50a4934' visibility='default' filepath='include/linux/thermal.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='num_tbps' type-id='95e97e5e' visibility='default' filepath='include/linux/thermal.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='tbp' type-id='825b5cd1' visibility='default' filepath='include/linux/thermal.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='sustainable_power' type-id='19c2251e' visibility='default' filepath='include/linux/thermal.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='k_po' type-id='a7832498' visibility='default' filepath='include/linux/thermal.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='k_pu' type-id='a7832498' visibility='default' filepath='include/linux/thermal.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='k_i' type-id='a7832498' visibility='default' filepath='include/linux/thermal.h' line='280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='k_d' type-id='a7832498' visibility='default' filepath='include/linux/thermal.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='integral_cutoff' type-id='a7832498' visibility='default' filepath='include/linux/thermal.h' line='286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='slope' type-id='95e97e5e' visibility='default' filepath='include/linux/thermal.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='offset' type-id='95e97e5e' visibility='default' filepath='include/linux/thermal.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/thermal.h' line='299' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1d1afc2f' size-in-bits='64' id='d67abbdf'/>
+      <function-type size-in-bits='64' id='d67e1739'>
+        <parameter type-id='0343ce83'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='e84b031a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='b8765d15' size-in-bits='64' id='d68ad8b5'/>
+      <pointer-type-def type-id='68f5a646' size-in-bits='64' id='d6907f4c'/>
+      <class-decl name='config_item_type' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/configfs.h' line='65' column='1' id='d6939bb8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ct_owner' type-id='2730d015' visibility='default' filepath='include/linux/configfs.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ct_item_ops' type-id='603e39d9' visibility='default' filepath='include/linux/configfs.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ct_group_ops' type-id='e8051adb' visibility='default' filepath='include/linux/configfs.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ct_attrs' type-id='bbec9157' visibility='default' filepath='include/linux/configfs.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ct_bin_attrs' type-id='07234631' visibility='default' filepath='include/linux/configfs.h' line='70' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b98b24d0' size-in-bits='64' id='d6965222'/>
+      <array-type-def dimensions='1' type-id='002ac4a6' size-in-bits='80' id='d69ec031'>
+        <subrange length='10' type-id='7ff19f0f' id='487da03a'/>
+      </array-type-def>
+      <pointer-type-def type-id='f64a160a' size-in-bits='64' id='d6a0d460'/>
+      <pointer-type-def type-id='815413c2' size-in-bits='64' id='d6a129cc'/>
+      <class-decl name='usb_function' size-in-bits='1728' is-struct='yes' visibility='default' filepath='include/linux/usb/composite.h' line='191' column='1' id='d6a54726'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/usb/composite.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='strings' type-id='fa0eba8f' visibility='default' filepath='include/linux/usb/composite.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fs_descriptors' type-id='f363a725' visibility='default' filepath='include/linux/usb/composite.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hs_descriptors' type-id='f363a725' visibility='default' filepath='include/linux/usb/composite.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ss_descriptors' type-id='f363a725' visibility='default' filepath='include/linux/usb/composite.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ssp_descriptors' type-id='f363a725' visibility='default' filepath='include/linux/usb/composite.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='config' type-id='ee27b7c6' visibility='default' filepath='include/linux/usb/composite.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='os_desc_table' type-id='fed2517b' visibility='default' filepath='include/linux/usb/composite.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='os_desc_n' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/composite.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='bind' type-id='3b615603' visibility='default' filepath='include/linux/usb/composite.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='unbind' type-id='d44ba07c' visibility='default' filepath='include/linux/usb/composite.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='free_func' type-id='0da78fa5' visibility='default' filepath='include/linux/usb/composite.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='mod' type-id='2730d015' visibility='default' filepath='include/linux/usb/composite.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='set_alt' type-id='addd4a1a' visibility='default' filepath='include/linux/usb/composite.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='get_alt' type-id='01481038' visibility='default' filepath='include/linux/usb/composite.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='disable' type-id='0da78fa5' visibility='default' filepath='include/linux/usb/composite.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='setup' type-id='b9adeaf4' visibility='default' filepath='include/linux/usb/composite.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='req_match' type-id='dc59a00f' visibility='default' filepath='include/linux/usb/composite.h' line='226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='suspend' type-id='0da78fa5' visibility='default' filepath='include/linux/usb/composite.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='resume' type-id='0da78fa5' visibility='default' filepath='include/linux/usb/composite.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='get_status' type-id='58d59612' visibility='default' filepath='include/linux/usb/composite.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='func_suspend' type-id='dcad5492' visibility='default' filepath='include/linux/usb/composite.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/usb/composite.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='endpoints' type-id='f066dd3c' visibility='default' filepath='include/linux/usb/composite.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='fi' type-id='2abcd7ef' visibility='default' filepath='include/linux/usb/composite.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='bind_deactivated' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/composite.h' line='242' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_control' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1726' column='1' id='d6a7cd6f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1727' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='value' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1728' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_soc_cdai_ops' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/sound/soc-dai.h' line='354' column='1' id='d6a931df'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='startup' type-id='ff70ae33' visibility='default' filepath='include/sound/soc-dai.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='shutdown' type-id='ff70ae33' visibility='default' filepath='include/sound/soc-dai.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='set_params' type-id='64548faf' visibility='default' filepath='include/sound/soc-dai.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get_params' type-id='1b64445b' visibility='default' filepath='include/sound/soc-dai.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='set_metadata' type-id='b8430c5e' visibility='default' filepath='include/sound/soc-dai.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='get_metadata' type-id='b8430c5e' visibility='default' filepath='include/sound/soc-dai.h' line='368' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='trigger' type-id='5b6d9de6' visibility='default' filepath='include/sound/soc-dai.h' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pointer' type-id='6ca57870' visibility='default' filepath='include/sound/soc-dai.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ack' type-id='6620a240' visibility='default' filepath='include/sound/soc-dai.h' line='374' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c740a74f' size-in-bits='64' id='d6a989c3'/>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='640' id='d6aba012'>
+        <subrange length='10' type-id='7ff19f0f' id='487da03a'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='d6ad270a'>
+        <parameter type-id='bef1b918'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='ufs_vreg' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='576' column='1' id='d6b2bd0c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reg' type-id='850c13f6' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='578' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='always_on' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='579' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='enabled' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='580' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='min_uV' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='581' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='max_uV' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='582' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='max_uA' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='583' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_interval' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='398' column='1' id='d6b43ca8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='min' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='max' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='openmin' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='65'>
+          <var-decl name='openmax' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='66'>
+          <var-decl name='integer' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='67'>
+          <var-decl name='empty' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='403' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d6bdcb4d'>
+        <parameter type-id='49a58c0c'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='typec_altmode_driver' size-in-bits='1600' is-struct='yes' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='157' column='1' id='d6bedda4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id_table' type-id='9c34c4f6' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='probe' type-id='f9431329' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='remove' type-id='568f594c' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/usb/typec_altmode.h' line='161' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='195ea87f' size-in-bits='64' id='d6d37d27'/>
+      <qualified-type-def type-id='833c0b8c' const='yes' id='d6de54c5'/>
+      <pointer-type-def type-id='a6892387' size-in-bits='64' id='d6e32957'/>
+      <function-type size-in-bits='64' id='d6e6975e'>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='77e79a4b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='wiphy_iftype_ext_capab2' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5347' column='1' id='d6e8a7b8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='iftype' type-id='86505f90' visibility='default' filepath='include/net/cfg80211.h' line='5348' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='eml_capabilities' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='mld_capa_and_ops' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5350' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='280' id='d6e8cc9d'>
+        <subrange length='35' type-id='7ff19f0f' id='6e6845b5'/>
+      </array-type-def>
+      <pointer-type-def type-id='bc5c36f0' size-in-bits='64' id='d6e9f1fa'/>
+      <class-decl name='dentry' size-in-bits='1664' is-struct='yes' visibility='default' filepath='include/linux/dcache.h' line='92' column='1' id='d6ebca75'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='d_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/dcache.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='d_seq' type-id='0b9c5397' visibility='default' filepath='include/linux/dcache.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='d_hash' type-id='8db0df1b' visibility='default' filepath='include/linux/dcache.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='d_parent' type-id='27675065' visibility='default' filepath='include/linux/dcache.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='d_name' type-id='02244303' visibility='default' filepath='include/linux/dcache.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='d_inode' type-id='7e666abe' visibility='default' filepath='include/linux/dcache.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='d_iname' type-id='fc872715' visibility='default' filepath='include/linux/dcache.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='d_lockref' type-id='60efdfd3' visibility='default' filepath='include/linux/dcache.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='d_op' type-id='1ee57353' visibility='default' filepath='include/linux/dcache.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='d_sb' type-id='42c8f564' visibility='default' filepath='include/linux/dcache.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='d_time' type-id='7359adad' visibility='default' filepath='include/linux/dcache.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='d_fsdata' type-id='eaa32e2f' visibility='default' filepath='include/linux/dcache.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='' type-id='ac5ab60d' visibility='default' filepath='include/linux/dcache.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='d_child' type-id='72f469ec' visibility='default' filepath='include/linux/dcache.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='d_subdirs' type-id='72f469ec' visibility='default' filepath='include/linux/dcache.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='d_u' type-id='ac5ab60e' visibility='default' filepath='include/linux/dcache.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/dcache.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/dcache.h' line='126' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5985c13a' size-in-bits='64' id='d6f1846c'/>
+      <pointer-type-def type-id='38664924' size-in-bits='64' id='d705010a'/>
+      <class-decl name='virtio_config_ops' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/linux/virtio_config.h' line='80' column='1' id='d70a473a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='enable_cbs' type-id='33d93b18' visibility='default' filepath='include/linux/virtio_config.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='get' type-id='b22e78ee' visibility='default' filepath='include/linux/virtio_config.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='set' type-id='b22e78ee' visibility='default' filepath='include/linux/virtio_config.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='generation' type-id='fe5a9a49' visibility='default' filepath='include/linux/virtio_config.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='get_status' type-id='bbefcc2a' visibility='default' filepath='include/linux/virtio_config.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='set_status' type-id='3dc18b9c' visibility='default' filepath='include/linux/virtio_config.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='reset' type-id='33d93b18' visibility='default' filepath='include/linux/virtio_config.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='find_vqs' type-id='17035a6b' visibility='default' filepath='include/linux/virtio_config.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='del_vqs' type-id='33d93b18' visibility='default' filepath='include/linux/virtio_config.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='get_features' type-id='f428336a' visibility='default' filepath='include/linux/virtio_config.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='finalize_features' type-id='b89d0409' visibility='default' filepath='include/linux/virtio_config.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='bus_name' type-id='eb8aa2f1' visibility='default' filepath='include/linux/virtio_config.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='set_vq_affinity' type-id='53a5ad54' visibility='default' filepath='include/linux/virtio_config.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='get_vq_affinity' type-id='7642cce6' visibility='default' filepath='include/linux/virtio_config.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='get_shm_region' type-id='ab7c4594' visibility='default' filepath='include/linux/virtio_config.h' line='102' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_dp_mst_branch' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='207' column='1' id='d710e4d1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='topology_kref' type-id='400fb07b' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='malloc_kref' type-id='400fb07b' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='destroy_next' type-id='72f469ec' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rad' type-id='d2f7b56a' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='lct' type-id='f9b06939' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='num_ports' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ports' type-id='72f469ec' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='port_parent' type-id='c45d1018' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='mgr' type-id='88a6d23d' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='link_address_sent' type-id='b50a4934' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='584'>
+          <var-decl name='guid' type-id='0d8415b5' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='257' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d71978c5'>
+        <parameter type-id='cfff5953'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d7231678'>
+        <parameter type-id='2a9f6bcb'/>
+        <parameter type-id='c21baddd'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='led_flash_setting' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/led-class-flash.h' line='54' column='1' id='d7244bd4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='min' type-id='19c2251e' visibility='default' filepath='include/linux/led-class-flash.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='max' type-id='19c2251e' visibility='default' filepath='include/linux/led-class-flash.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='step' type-id='19c2251e' visibility='default' filepath='include/linux/led-class-flash.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='val' type-id='19c2251e' visibility='default' filepath='include/linux/led-class-flash.h' line='62' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d724f4d0'>
+        <parameter type-id='7a29ff27'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d725da49'>
+        <parameter type-id='b9419dc5'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='f5c32c38' size-in-bits='64' id='d72a0292'/>
+      <function-type size-in-bits='64' id='d72e913e'>
+        <parameter type-id='dd575c43'/>
+        <parameter type-id='13d38dcb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d7322b1f'>
+        <parameter type-id='9ad862e7'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d7367d73'>
+        <parameter type-id='00ee50b8'/>
+        <parameter type-id='1e6beae1'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='5a03b5e4' size-in-bits='64' id='d73baa46'/>
+      <pointer-type-def type-id='c86369aa' size-in-bits='64' id='d7409d08'/>
+      <function-type size-in-bits='64' id='d7413fe5'>
+        <parameter type-id='a970a64c'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='a61b2dc8' size-in-bits='64' id='d74fad0a'/>
+      <pointer-type-def type-id='9d05a3e9' size-in-bits='64' id='d764626d'/>
+      <function-type size-in-bits='64' id='d7741e39'>
+        <parameter type-id='ec77b5b8'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='b7da17bb' size-in-bits='64' id='d77ebcbf'/>
+      <class-decl name='usb_devmap' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='433' column='1' id='d78885c5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='devicemap' type-id='f05e8e77' visibility='default' filepath='include/linux/usb.h' line='434' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='182ef894' size-in-bits='64' id='d78909c6'/>
+      <pointer-type-def type-id='d11dd9c4' size-in-bits='64' id='d78dd406'/>
+      <qualified-type-def type-id='21fe2d6b' const='yes' id='d79644f2'/>
+      <pointer-type-def type-id='24ac9fc4' size-in-bits='64' id='d797bdf2'/>
+      <pointer-type-def type-id='3482ac54' size-in-bits='64' id='d7a1e3c2'/>
+      <pointer-type-def type-id='4e214e97' size-in-bits='64' id='d7a90e3b'/>
+      <qualified-type-def type-id='065eee5b' const='yes' id='d7aa071c'/>
+      <function-type size-in-bits='64' id='d7b840f9'>
+        <parameter type-id='e5411c2c'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='8741a34d' size-in-bits='64' id='d7b98f89'/>
+      <pointer-type-def type-id='7f4a5e53' size-in-bits='64' id='d7c38177'/>
+      <class-decl name='virtqueue' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/virtio.h' line='27' column='1' id='d7c60ba9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/virtio.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='callback' type-id='c881e0a0' visibility='default' filepath='include/linux/virtio.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/virtio.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='vdev' type-id='5dbfcbb1' visibility='default' filepath='include/linux/virtio.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/linux/virtio.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='num_free' type-id='f0981eeb' visibility='default' filepath='include/linux/virtio.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/virtio.h' line='34' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='cfi_check_fn' type-id='64115f6c' filepath='include/linux/cfi.h' line='11' column='1' id='d7c6106c'/>
+      <class-decl name='sdio_device_id' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/mod_devicetable.h' line='399' column='1' id='d7c619db'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='class' type-id='8f048e17' visibility='default' filepath='include/linux/mod_devicetable.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='vendor' type-id='d315442e' visibility='default' filepath='include/linux/mod_devicetable.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='device' type-id='d315442e' visibility='default' filepath='include/linux/mod_devicetable.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='driver_data' type-id='0791d6c8' visibility='default' filepath='include/linux/mod_devicetable.h' line='403' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d7cfbbe1'>
+        <parameter type-id='2567e379'/>
+        <parameter type-id='77e79a4b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='8a06bdac' size-in-bits='64' id='d7d1bff6'/>
+      <class-decl name='reg_field' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/linux/regmap.h' line='1256' column='1' id='d7d5e052'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reg' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='lsb' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='msb' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='id_size' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='id_offset' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1261' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='uart_8250_port' size-in-bits='6464' is-struct='yes' visibility='default' filepath='include/linux/serial_8250.h' line='94' column='1' id='d7d97b09'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='port' type-id='b0063b51' visibility='default' filepath='include/linux/serial_8250.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3904'>
+          <var-decl name='timer' type-id='abe41e67' visibility='default' filepath='include/linux/serial_8250.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/serial_8250.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4480'>
+          <var-decl name='capabilities' type-id='19c2251e' visibility='default' filepath='include/linux/serial_8250.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4512'>
+          <var-decl name='bugs' type-id='8efea9e5' visibility='default' filepath='include/linux/serial_8250.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4528'>
+          <var-decl name='fifo_bug' type-id='b50a4934' visibility='default' filepath='include/linux/serial_8250.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4544'>
+          <var-decl name='tx_loadsz' type-id='f0981eeb' visibility='default' filepath='include/linux/serial_8250.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4576'>
+          <var-decl name='acr' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_8250.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4584'>
+          <var-decl name='fcr' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_8250.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4592'>
+          <var-decl name='ier' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_8250.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4600'>
+          <var-decl name='lcr' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_8250.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4608'>
+          <var-decl name='mcr' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_8250.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4616'>
+          <var-decl name='mcr_mask' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_8250.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4624'>
+          <var-decl name='mcr_force' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_8250.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4632'>
+          <var-decl name='cur_iotype' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_8250.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4640'>
+          <var-decl name='rpm_tx_active' type-id='f0981eeb' visibility='default' filepath='include/linux/serial_8250.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4672'>
+          <var-decl name='canary' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_8250.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4680'>
+          <var-decl name='probe' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_8250.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='gpios' type-id='967c9384' visibility='default' filepath='include/linux/serial_8250.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='lsr_saved_flags' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_8250.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4808'>
+          <var-decl name='msr_saved_flags' type-id='002ac4a6' visibility='default' filepath='include/linux/serial_8250.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4864'>
+          <var-decl name='dma' type-id='22a9463e' visibility='default' filepath='include/linux/serial_8250.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4928'>
+          <var-decl name='ops' type-id='37dfab81' visibility='default' filepath='include/linux/serial_8250.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='dl_read' type-id='58f84083' visibility='default' filepath='include/linux/serial_8250.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5056'>
+          <var-decl name='dl_write' type-id='ce713533' visibility='default' filepath='include/linux/serial_8250.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='em485' type-id='06d9380f' visibility='default' filepath='include/linux/serial_8250.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='rs485_start_tx' type-id='4d2e08b4' visibility='default' filepath='include/linux/serial_8250.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='rs485_stop_tx' type-id='4d2e08b4' visibility='default' filepath='include/linux/serial_8250.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5312'>
+          <var-decl name='overrun_backoff' type-id='5ad6e0ef' visibility='default' filepath='include/linux/serial_8250.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6400'>
+          <var-decl name='overrun_backoff_time_ms' type-id='19c2251e' visibility='default' filepath='include/linux/serial_8250.h' line='141' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d7de7749'>
+        <parameter type-id='b4de78ea'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d7e67a0f'>
+        <parameter type-id='b64ad7cb'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='7292109c'/>
+        <parameter type-id='7292109c'/>
+        <parameter type-id='44372936'/>
+        <parameter type-id='44372936'/>
+        <parameter type-id='745b39e8'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='d9c5862c' size-in-bits='64' id='d7f1fb72'/>
+      <class-decl name='rt6key' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/net/ip6_fib.h' line='134' column='1' id='d7f36d8e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='f6ed712a' visibility='default' filepath='include/net/ip6_fib.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='plen' type-id='95e97e5e' visibility='default' filepath='include/net/ip6_fib.h' line='136' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b7bb7c18' size-in-bits='64' id='d7f8a77a'/>
+      <function-type size-in-bits='64' id='d800b1bf'>
+        <parameter type-id='ab85b8f2'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d802bf72'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='69bf7bee'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='174aa761' size-in-bits='64' id='d803107d'/>
+      <class-decl name='crypto_skcipher' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/crypto/skcipher.h' line='37' column='1' id='d80b6ab0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reqsize' type-id='f0981eeb' visibility='default' filepath='include/crypto/skcipher.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='base' type-id='0328c8b6' visibility='default' filepath='include/crypto/skcipher.h' line='40' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='kuid_t' type-id='bc3a21bb' filepath='include/linux/uidgid.h' line='23' column='1' id='d80b72e6'/>
+      <function-type size-in-bits='64' id='d80ff7d4'>
+        <parameter type-id='c67366c7'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d81a5dde'>
+        <parameter type-id='ac429605'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='6a4d9641' const='yes' id='d81ac7f6'/>
+      <class-decl name='sdio_func_tuple' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='24' column='1' id='d81af048'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='e5932b8e' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='code' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='size' type-id='002ac4a6' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='data' type-id='5e6516ee' visibility='default' filepath='include/linux/mmc/sdio_func.h' line='28' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ddd212e6' size-in-bits='64' id='d81cf24c'/>
+      <function-type size-in-bits='64' id='d822825d'>
+        <parameter type-id='f41a0030'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='1dc6a898'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='39a43b40' size-in-bits='192' id='d82cf371'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <pointer-type-def type-id='c90a6da1' size-in-bits='64' id='d8378d75'/>
+      <pointer-type-def type-id='41df3a6f' size-in-bits='64' id='d8385083'/>
+      <class-decl name='ctl_table_root' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/linux/sysctl.h' line='173' column='1' id='d83969a6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='default_set' type-id='3fc3d262' visibility='default' filepath='include/linux/sysctl.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='lookup' type-id='50abd760' visibility='default' filepath='include/linux/sysctl.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='set_ownership' type-id='47727520' visibility='default' filepath='include/linux/sysctl.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='permissions' type-id='7bada959' visibility='default' filepath='include/linux/sysctl.h' line='179' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4322685c' size-in-bits='64' id='d839e3f6'/>
+      <class-decl name='bin_attribute' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/sysfs.h' line='175' column='1' id='d83a2db1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='attr' type-id='a6222917' visibility='default' filepath='include/linux/sysfs.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='include/linux/sysfs.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='private' type-id='eaa32e2f' visibility='default' filepath='include/linux/sysfs.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='f_mapping' type-id='910b031b' visibility='default' filepath='include/linux/sysfs.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='read' type-id='afa767ca' visibility='default' filepath='include/linux/sysfs.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='write' type-id='afa767ca' visibility='default' filepath='include/linux/sysfs.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='mmap' type-id='a02c170c' visibility='default' filepath='include/linux/sysfs.h' line='184' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='72ce0fb3' size-in-bits='64' id='d841f43f'/>
+      <pointer-type-def type-id='afa36b70' size-in-bits='64' id='d841feae'/>
+      <function-type size-in-bits='64' id='d843c93e'>
+        <parameter type-id='27675065'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='82e3e1cf' size-in-bits='64' id='d846ae3b'/>
+      <pointer-type-def type-id='17a0b6f4' size-in-bits='64' id='d846c996'/>
+      <function-type size-in-bits='64' id='d8484ecd'>
+        <parameter type-id='95316552'/>
+        <parameter type-id='363a995e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d8488877'>
+        <parameter type-id='6dca061b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='per_cpu_nodestat' size-in-bits='328' is-struct='yes' visibility='default' filepath='include/linux/mmzone.h' line='606' column='1' id='d84ae668'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='stat_threshold' type-id='fdbf7a0f' visibility='default' filepath='include/linux/mmzone.h' line='607' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='vm_node_stat_diff' type-id='1bab617a' visibility='default' filepath='include/linux/mmzone.h' line='608' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='ZSTD_freeFunction' type-id='debb4ee8' filepath='lib/zstd/zstd_internal.h' line='228' column='1' id='d852bbfe'/>
+      <function-type size-in-bits='64' id='d8579536'>
+        <parameter type-id='a68064b1'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d865022d'>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='f4c3b244' size-in-bits='64' id='d86551c2'/>
+      <function-type size-in-bits='64' id='d869ebff'>
+        <parameter type-id='513f51db'/>
+        <parameter type-id='587b4de3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d86a6269'>
+        <parameter type-id='c3a28778'/>
+        <parameter type-id='fb55efa1'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='1ee0d0f0' size-in-bits='64' id='d872b366'/>
+      <function-type size-in-bits='64' id='d87d8242'>
+        <parameter type-id='e9a4c848'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d87e539f'>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='807869d3'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ieee80211_edmg' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='500' column='1' id='d87e6929'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='channels' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='501' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bw_config' type-id='51403231' visibility='default' filepath='include/net/cfg80211.h' line='502' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a41d4f0c' size-in-bits='64' id='d87ec006'/>
+      <qualified-type-def type-id='3b156a69' const='yes' id='d8801604'/>
+      <pointer-type-def type-id='30d151d5' size-in-bits='64' id='d884146d'/>
+      <qualified-type-def type-id='d6939bb8' const='yes' id='d88ac15d'/>
+      <qualified-type-def type-id='075857e5' const='yes' id='d89691b6'/>
+      <pointer-type-def type-id='857188d6' size-in-bits='64' id='d898930c'/>
+      <pointer-type-def type-id='a874cee0' size-in-bits='64' id='d8a61886'/>
+      <array-type-def dimensions='1' type-id='6a11bd61' size-in-bits='256' id='d8aa8ab0'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <qualified-type-def type-id='61250075' const='yes' id='d8ad531a'/>
+      <class-decl name='console' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/console.h' line='140' column='1' id='d8b78162'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='ac1fa8c0' visibility='default' filepath='include/linux/console.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='write' type-id='94639d2a' visibility='default' filepath='include/linux/console.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='read' type-id='57c9915e' visibility='default' filepath='include/linux/console.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='device' type-id='3805964c' visibility='default' filepath='include/linux/console.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='unblank' type-id='953b12f8' visibility='default' filepath='include/linux/console.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='setup' type-id='304a6cc4' visibility='default' filepath='include/linux/console.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='exit' type-id='ac1ad098' visibility='default' filepath='include/linux/console.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='match' type-id='c859c465' visibility='default' filepath='include/linux/console.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='flags' type-id='a2185560' visibility='default' filepath='include/linux/console.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='592'>
+          <var-decl name='index' type-id='a2185560' visibility='default' filepath='include/linux/console.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='cflag' type-id='95e97e5e' visibility='default' filepath='include/linux/console.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='ispeed' type-id='6e160b14' visibility='default' filepath='include/linux/console.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='ospeed' type-id='6e160b14' visibility='default' filepath='include/linux/console.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/console.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='next' type-id='b9aa0100' visibility='default' filepath='include/linux/console.h' line='155' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='genl_small_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/genetlink.h' line='130' column='1' id='d8bb96c8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='doit' type-id='8f8224f6' visibility='default' filepath='include/net/genetlink.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dumpit' type-id='32a663ca' visibility='default' filepath='include/net/genetlink.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cmd' type-id='f9b06939' visibility='default' filepath='include/net/genetlink.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='internal_flags' type-id='f9b06939' visibility='default' filepath='include/net/genetlink.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/net/genetlink.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='validate' type-id='f9b06939' visibility='default' filepath='include/net/genetlink.h' line='136' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6da3cafb' size-in-bits='64' id='d8c22f87'/>
+      <pointer-type-def type-id='b4bb7eac' size-in-bits='64' id='d8c458ae'/>
+      <pointer-type-def type-id='ef7d00fd' size-in-bits='64' id='d8c85275'/>
+      <pointer-type-def type-id='5fa1c03a' size-in-bits='64' id='d8d26684'/>
+      <class-decl name='bpf_cgroup_storage_key' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='85' column='1' id='d8d7111e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cgroup_inode_id' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='87' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d8da8ad2'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='4da45462'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='0cf765ad' size-in-bits='64' id='d8db14d1'/>
+      <function-type size-in-bits='64' id='d8e691ae'>
+        <parameter type-id='3ab7d422'/>
+        <parameter type-id='ab85b8f2'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='b50a4934' size-in-bits='64' id='d8e6b335'/>
+      <pointer-type-def type-id='a73d96cf' size-in-bits='64' id='d8e759a7'/>
+      <qualified-type-def type-id='27dec419' const='yes' id='d8e81cd4'/>
+      <class-decl name='iommu_inv_addr_info' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/iommu.h' line='189' column='1' id='d8e8de01'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='archid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pasid' type-id='d3130597' visibility='default' filepath='include/uapi/linux/iommu.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='addr' type-id='d3130597' visibility='default' filepath='include/uapi/linux/iommu.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='granule_size' type-id='d3130597' visibility='default' filepath='include/uapi/linux/iommu.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='nb_granules' type-id='d3130597' visibility='default' filepath='include/uapi/linux/iommu.h' line='198' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d8fd579a'>
+        <parameter type-id='4a935625'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='e55856e5' size-in-bits='64' id='d910a7dd'/>
+      <class-decl name='dma_filter' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/dmaengine.h' line='778' column='1' id='d914dc7c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fn' type-id='55f53546' visibility='default' filepath='include/linux/dmaengine.h' line='779' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mapcnt' type-id='95e97e5e' visibility='default' filepath='include/linux/dmaengine.h' line='780' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='map' type-id='06cc3383' visibility='default' filepath='include/linux/dmaengine.h' line='781' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='dddf6ca2' size-in-bits='64' id='d915a820'/>
+      <function-type size-in-bits='64' id='d919518f'>
+        <parameter type-id='feb59272'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='97aa083d' size-in-bits='8320' id='d91bb67a'>
+        <subrange length='10' type-id='7ff19f0f' id='487da03a'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='d91d4c07'>
+        <parameter type-id='666fb412'/>
+        <parameter type-id='63c7e8e1'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='1d2c2b85'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='69ba9ebc' size-in-bits='64' id='d91dfd7a'/>
+      <pointer-type-def type-id='c6751b87' size-in-bits='64' id='d91e8ea3'/>
+      <pointer-type-def type-id='428b7011' size-in-bits='64' id='d91eb3a5'/>
+      <pointer-type-def type-id='e9fd7595' size-in-bits='64' id='d91ec5a2'/>
+      <qualified-type-def type-id='50032202' const='yes' id='d91f00fd'/>
+      <function-type size-in-bits='64' id='d921fc28'>
+        <parameter type-id='eefe253e'/>
+        <parameter type-id='b6733265'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='eab08458' size-in-bits='64' id='d92598ce'/>
+      <array-type-def dimensions='1' type-id='807b7702' size-in-bits='infinite' id='d936a132'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='fbe9020d' size-in-bits='64' id='d9394db1'/>
+      <function-type size-in-bits='64' id='d9435f47'>
+        <parameter type-id='b47b0d41'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='50fab010' size-in-bits='64' id='d9481436'/>
+      <pointer-type-def type-id='989ec392' size-in-bits='64' id='d957ff80'/>
+      <pointer-type-def type-id='dae66efd' size-in-bits='64' id='d9587521'/>
+      <enum-decl name='usb_phy_type' filepath='include/linux/usb/phy.h' line='38' column='1' id='d95f4827'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='USB_PHY_TYPE_UNDEFINED' value='0'/>
+        <enumerator name='USB_PHY_TYPE_USB2' value='1'/>
+        <enumerator name='USB_PHY_TYPE_USB3' value='2'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='d96066b0'>
+        <parameter type-id='f22e4524'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='d9609309'>
+        <parameter type-id='22be78e8'/>
+        <parameter type-id='49a58c0c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='2944' id='d964a553'>
+        <subrange length='46' type-id='7ff19f0f' id='8b86bc1b'/>
+      </array-type-def>
+      <pointer-type-def type-id='26c7d506' size-in-bits='64' id='d9659030'/>
+      <pointer-type-def type-id='e1d1ffbe' size-in-bits='64' id='d96c7ef8'/>
+      <function-type size-in-bits='64' id='d97649a6'>
+        <parameter type-id='5b57b9a4'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f9409001'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='0fbf3cfd'/>
+      </function-type>
+      <qualified-type-def type-id='7c3a095f' const='yes' id='d97eb63a'/>
+      <pointer-type-def type-id='a7db2a27' size-in-bits='64' id='d9863f2f'/>
+      <function-type size-in-bits='64' id='d9866c79'>
+        <parameter type-id='0e3f80d9'/>
+        <return type-id='6478ea0a'/>
+      </function-type>
+      <qualified-type-def type-id='22ec9634' const='yes' id='d98856a4'/>
+      <typedef-decl name='mpi_limb_t' type-id='7359adad' filepath='include/linux/mpi.h' line='26' column='1' id='d99208ba'/>
+      <class-decl name='input_mt' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/input/mt.h' line='43' column='1' id='d995db0d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='trkid' type-id='95e97e5e' visibility='default' filepath='include/linux/input/mt.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='num_slots' type-id='95e97e5e' visibility='default' filepath='include/linux/input/mt.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='slot' type-id='95e97e5e' visibility='default' filepath='include/linux/input/mt.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/input/mt.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='frame' type-id='f0981eeb' visibility='default' filepath='include/linux/input/mt.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='red' type-id='7292109c' visibility='default' filepath='include/linux/input/mt.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='slots' type-id='5ef3b2ba' visibility='default' filepath='include/linux/input/mt.h' line='50' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d99ae68d'>
+        <parameter type-id='11b101bb'/>
+        <parameter type-id='631dc3c1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='input_id' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/input.h' line='59' column='1' id='d99ed569'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bustype' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='vendor' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='product' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='version' type-id='d315442e' visibility='default' filepath='include/uapi/linux/input.h' line='63' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='d9bbe8ab'>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='1c936db9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='29290a00' size-in-bits='64' id='d9c194a6'/>
+      <qualified-type-def type-id='144ab5f9' const='yes' id='d9c5862c'/>
+      <class-decl name='page_frag_cache' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/mm_types.h' line='273' column='1' id='d9cdd06a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='va' type-id='eaa32e2f' visibility='default' filepath='include/linux/mm_types.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='offset' type-id='d315442e' visibility='default' filepath='include/linux/mm_types.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='size' type-id='d315442e' visibility='default' filepath='include/linux/mm_types.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='pagecnt_bias' type-id='f0981eeb' visibility='default' filepath='include/linux/mm_types.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pfmemalloc' type-id='b50a4934' visibility='default' filepath='include/linux/mm_types.h' line='285' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='Qdisc_class_ops' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/net/sch_generic.h' line='237' column='1' id='d9ceb659'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/net/sch_generic.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='select_queue' type-id='98ff7360' visibility='default' filepath='include/net/sch_generic.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='graft' type-id='19bc34e4' visibility='default' filepath='include/net/sch_generic.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='leaf' type-id='c4d81be6' visibility='default' filepath='include/net/sch_generic.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='qlen_notify' type-id='0fb373c0' visibility='default' filepath='include/net/sch_generic.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='find' type-id='b95e1b8d' visibility='default' filepath='include/net/sch_generic.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='change' type-id='c0073bf3' visibility='default' filepath='include/net/sch_generic.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='delete' type-id='eeaa93ea' visibility='default' filepath='include/net/sch_generic.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='walk' type-id='154ec6df' visibility='default' filepath='include/net/sch_generic.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='tcf_block' type-id='da0b22b2' visibility='default' filepath='include/net/sch_generic.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='bind_tcf' type-id='4c592849' visibility='default' filepath='include/net/sch_generic.h' line='260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='unbind_tcf' type-id='0fb373c0' visibility='default' filepath='include/net/sch_generic.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='dump' type-id='3c31c59b' visibility='default' filepath='include/net/sch_generic.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='dump_stats' type-id='6313cef0' visibility='default' filepath='include/net/sch_generic.h' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/sch_generic.h' line='270' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a5179659' size-in-bits='64' id='d9d65b21'/>
+      <qualified-type-def type-id='ad4d49e8' const='yes' id='d9de7d63'/>
+      <class-decl name='xhci_bus_state' size-in-bits='18240' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1713' column='1' id='d9e4295a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bus_suspended' type-id='7359adad' visibility='default' filepath='drivers/usb/host/xhci.h' line='1714' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='next_statechange' type-id='7359adad' visibility='default' filepath='drivers/usb/host/xhci.h' line='1715' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='port_c_suspend' type-id='19c2251e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1719' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='suspended_ports' type-id='19c2251e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1720' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='port_remote_wakeup' type-id='19c2251e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1721' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='resume_done' type-id='bc3d3491' visibility='default' filepath='drivers/usb/host/xhci.h' line='1722' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='resuming_ports' type-id='7359adad' visibility='default' filepath='drivers/usb/host/xhci.h' line='1724' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='rexit_ports' type-id='7359adad' visibility='default' filepath='drivers/usb/host/xhci.h' line='1726' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='rexit_done' type-id='fb518993' visibility='default' filepath='drivers/usb/host/xhci.h' line='1727' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10304'>
+          <var-decl name='u3exit_done' type-id='fb518993' visibility='default' filepath='drivers/usb/host/xhci.h' line='1728' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e17bc528' size-in-bits='64' id='d9e60bb2'/>
+      <pointer-type-def type-id='08e15723' size-in-bits='64' id='d9f19b23'/>
+      <function-type size-in-bits='64' id='d9f53f44'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='02f11ed4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='df80a1e0' size-in-bits='64' id='d9fbdc06'/>
+      <class-decl name='nf_conntrack' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/netfilter/nf_conntrack_common.h' line='27' column='1' id='d9fc42c3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='use' type-id='64615833' visibility='default' filepath='include/linux/netfilter/nf_conntrack_common.h' line='28' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='daae3cc8' size-in-bits='64' id='da0b22b2'/>
+      <class-decl name='neighbour' size-in-bits='3008' is-struct='yes' visibility='default' filepath='include/net/neighbour.h' line='137' column='1' id='da0e76a0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='3c330066' visibility='default' filepath='include/net/neighbour.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tbl' type-id='6bbe39a7' visibility='default' filepath='include/net/neighbour.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='parms' type-id='affe0fe2' visibility='default' filepath='include/net/neighbour.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='confirmed' type-id='7359adad' visibility='default' filepath='include/net/neighbour.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='updated' type-id='7359adad' visibility='default' filepath='include/net/neighbour.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='lock' type-id='ac16795b' visibility='default' filepath='include/net/neighbour.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/net/neighbour.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='arp_queue_len_bytes' type-id='f0981eeb' visibility='default' filepath='include/net/neighbour.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='arp_queue' type-id='e61c85d0' visibility='default' filepath='include/net/neighbour.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='timer' type-id='abe41e67' visibility='default' filepath='include/net/neighbour.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='used' type-id='7359adad' visibility='default' filepath='include/net/neighbour.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='probes' type-id='49178f86' visibility='default' filepath='include/net/neighbour.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='flags' type-id='8f048e17' visibility='default' filepath='include/net/neighbour.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1192'>
+          <var-decl name='nud_state' type-id='8f048e17' visibility='default' filepath='include/net/neighbour.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1200'>
+          <var-decl name='type' type-id='8f048e17' visibility='default' filepath='include/net/neighbour.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1208'>
+          <var-decl name='dead' type-id='8f048e17' visibility='default' filepath='include/net/neighbour.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='protocol' type-id='f9b06939' visibility='default' filepath='include/net/neighbour.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='ha_lock' type-id='e6cd5ecf' visibility='default' filepath='include/net/neighbour.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='ha' type-id='fc872715' visibility='default' filepath='include/net/neighbour.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='hh' type-id='0db936dc' visibility='default' filepath='include/net/neighbour.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='output' type-id='a57789c2' visibility='default' filepath='include/net/neighbour.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='ops' type-id='66fa472a' visibility='default' filepath='include/net/neighbour.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='gc_list' type-id='72f469ec' visibility='default' filepath='include/net/neighbour.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/neighbour.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/net/neighbour.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/neighbour.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='primary_key' type-id='29c3368c' visibility='default' filepath='include/net/neighbour.h' line='166' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='exception_table_entry' size-in-bits='64' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/extable.h' line='18' column='1' id='da1095b6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='insn' type-id='95e97e5e' visibility='default' filepath='arch/arm64/include/asm/extable.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='fixup' type-id='95e97e5e' visibility='default' filepath='arch/arm64/include/asm/extable.h' line='20' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='phy' size-in-bits='8064' is-struct='yes' visibility='default' filepath='include/linux/phy/phy.h' line='148' column='1' id='da10e34c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/phy/phy.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/phy/phy.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='ops' type-id='5424a63a' visibility='default' filepath='include/linux/phy/phy.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='include/linux/phy/phy.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='init_count' type-id='95e97e5e' visibility='default' filepath='include/linux/phy/phy.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7840'>
+          <var-decl name='power_count' type-id='95e97e5e' visibility='default' filepath='include/linux/phy/phy.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='attrs' type-id='2bd806af' visibility='default' filepath='include/linux/phy/phy.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='pwr' type-id='850c13f6' visibility='default' filepath='include/linux/phy/phy.h' line='156' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a6232b80' size-in-bits='64' id='da11b16a'/>
+      <pointer-type-def type-id='c51e5ffb' size-in-bits='64' id='da12244f'/>
+      <function-type size-in-bits='64' id='da14b6a5'>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='7359adad'/>
+      </function-type>
+      <class-decl name='v4l2_jpegcompression' size-in-bits='1120' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='900' column='1' id='da1685e2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='quality' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='901' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='APPn' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='903' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='APP_len' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='905' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='APP_data' type-id='59e5814b' visibility='default' filepath='include/uapi/linux/videodev2.h' line='906' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='COM_len' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='908' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='COM_data' type-id='59e5814b' visibility='default' filepath='include/uapi/linux/videodev2.h' line='909' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='jpeg_markers' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='911' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='d6a931df' const='yes' id='da194c5e'/>
+      <pointer-type-def type-id='9193647b' size-in-bits='64' id='da1cb816'/>
+      <pointer-type-def type-id='b455b783' size-in-bits='64' id='da363123'/>
+      <function-type size-in-bits='64' id='da3b08cd'>
+        <parameter type-id='8582e5ec'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='da3c754a'>
+        <parameter type-id='b7c1d7d5'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='vdm_states' filepath='drivers/usb/typec/tcpm/tcpm.c' line='204' column='1' id='da4a4188'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='VDM_STATE_ERR_BUSY' value='-3'/>
+        <enumerator name='VDM_STATE_ERR_SEND' value='-2'/>
+        <enumerator name='VDM_STATE_ERR_TMOUT' value='-1'/>
+        <enumerator name='VDM_STATE_DONE' value='0'/>
+        <enumerator name='VDM_STATE_READY' value='1'/>
+        <enumerator name='VDM_STATE_BUSY' value='2'/>
+        <enumerator name='VDM_STATE_WAIT_RSP_BUSY' value='3'/>
+        <enumerator name='VDM_STATE_SEND_MESSAGE' value='4'/>
+      </enum-decl>
+      <class-decl name='freq_qos_request' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/pm_qos.h' line='92' column='1' id='da4cc8f3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='1df5cca8' visibility='default' filepath='include/linux/pm_qos.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pnode' type-id='e3a91a7c' visibility='default' filepath='include/linux/pm_qos.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='qos' type-id='1351457a' visibility='default' filepath='include/linux/pm_qos.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='android_oem_data1' type-id='24a375b2' visibility='default' filepath='include/linux/pm_qos.h' line='96' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='da4d9050'>
+        <parameter type-id='76c7d88b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='9ebac747' size-in-bits='64' id='da4ee44b'/>
+      <function-type size-in-bits='64' id='da556df0'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='f9409001'/>
+        <parameter type-id='8bff8096'/>
+        <parameter type-id='8bff8096'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='iio_chan_spec' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/linux/iio/iio.h' line='235' column='1' id='da58161d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='6dc73e71' visibility='default' filepath='include/linux/iio/iio.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='channel' type-id='95e97e5e' visibility='default' filepath='include/linux/iio/iio.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='channel2' type-id='95e97e5e' visibility='default' filepath='include/linux/iio/iio.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='address' type-id='7359adad' visibility='default' filepath='include/linux/iio/iio.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='scan_index' type-id='95e97e5e' visibility='default' filepath='include/linux/iio/iio.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='scan_type' type-id='e7f43fb3' visibility='default' filepath='include/linux/iio/iio.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='info_mask_separate' type-id='bd54fe1a' visibility='default' filepath='include/linux/iio/iio.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='info_mask_separate_available' type-id='bd54fe1a' visibility='default' filepath='include/linux/iio/iio.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='info_mask_shared_by_type' type-id='bd54fe1a' visibility='default' filepath='include/linux/iio/iio.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='info_mask_shared_by_type_available' type-id='bd54fe1a' visibility='default' filepath='include/linux/iio/iio.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='info_mask_shared_by_dir' type-id='bd54fe1a' visibility='default' filepath='include/linux/iio/iio.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='info_mask_shared_by_dir_available' type-id='bd54fe1a' visibility='default' filepath='include/linux/iio/iio.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='info_mask_shared_by_all' type-id='bd54fe1a' visibility='default' filepath='include/linux/iio/iio.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='info_mask_shared_by_all_available' type-id='bd54fe1a' visibility='default' filepath='include/linux/iio/iio.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='event_spec' type-id='b1b94ad4' visibility='default' filepath='include/linux/iio/iio.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='num_event_specs' type-id='f0981eeb' visibility='default' filepath='include/linux/iio/iio.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='ext_info' type-id='d67abbdf' visibility='default' filepath='include/linux/iio/iio.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='extend_name' type-id='80f4b756' visibility='default' filepath='include/linux/iio/iio.h' line='260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='datasheet_name' type-id='80f4b756' visibility='default' filepath='include/linux/iio/iio.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='modified' type-id='f0981eeb' visibility='default' filepath='include/linux/iio/iio.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1153'>
+          <var-decl name='indexed' type-id='f0981eeb' visibility='default' filepath='include/linux/iio/iio.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1154'>
+          <var-decl name='output' type-id='f0981eeb' visibility='default' filepath='include/linux/iio/iio.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1155'>
+          <var-decl name='differential' type-id='f0981eeb' visibility='default' filepath='include/linux/iio/iio.h' line='265' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='kiocb' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='327' column='1' id='da62d64b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ki_filp' type-id='77e79a4b' visibility='default' filepath='include/linux/fs.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ki_pos' type-id='69bf7bee' visibility='default' filepath='include/linux/fs.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ki_complete' type-id='9b28bd76' visibility='default' filepath='include/linux/fs.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='private' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ki_flags' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='ki_hint' type-id='1dc6a898' visibility='default' filepath='include/linux/fs.h' line='337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='304'>
+          <var-decl name='ki_ioprio' type-id='1dc6a898' visibility='default' filepath='include/linux/fs.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='' type-id='ac5ab631' visibility='default' filepath='include/linux/fs.h' line='339' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='52c5253d' size-in-bits='64' id='da6639f9'/>
+      <array-type-def dimensions='1' type-id='094d8048' size-in-bits='infinite' id='da6e2919'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='2c5bcc28' size-in-bits='1024' id='da6f4a25'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='da729081'>
+        <parameter type-id='58ed56f5'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='78c01427'/>
+        <parameter type-id='93d633bd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='da73ead4'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='f57039f0'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='02f11ed4'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='inet_cork_full' size-in-bits='1152' is-struct='yes' visibility='default' filepath='include/net/inet_sock.h' line='179' column='1' id='da785a0b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='c466cd59' visibility='default' filepath='include/net/inet_sock.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='fl' type-id='2117397c' visibility='default' filepath='include/net/inet_sock.h' line='181' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a38d6c05' size-in-bits='64' id='da81d789'/>
+      <class-decl name='nd_mapping_desc' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/libnvdimm.h' line='110' column='1' id='da878766'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nvdimm' type-id='67d012a2' visibility='default' filepath='include/linux/libnvdimm.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='start' type-id='91ce1af9' visibility='default' filepath='include/linux/libnvdimm.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='size' type-id='91ce1af9' visibility='default' filepath='include/linux/libnvdimm.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='position' type-id='95e97e5e' visibility='default' filepath='include/linux/libnvdimm.h' line='114' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='41426935' size-in-bits='64' id='da8b7bcd'/>
+      <enum-decl name='bpf_map_type' filepath='include/uapi/linux/bpf.h' line='878' column='1' id='da8f27ee'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='BPF_MAP_TYPE_UNSPEC' value='0'/>
+        <enumerator name='BPF_MAP_TYPE_HASH' value='1'/>
+        <enumerator name='BPF_MAP_TYPE_ARRAY' value='2'/>
+        <enumerator name='BPF_MAP_TYPE_PROG_ARRAY' value='3'/>
+        <enumerator name='BPF_MAP_TYPE_PERF_EVENT_ARRAY' value='4'/>
+        <enumerator name='BPF_MAP_TYPE_PERCPU_HASH' value='5'/>
+        <enumerator name='BPF_MAP_TYPE_PERCPU_ARRAY' value='6'/>
+        <enumerator name='BPF_MAP_TYPE_STACK_TRACE' value='7'/>
+        <enumerator name='BPF_MAP_TYPE_CGROUP_ARRAY' value='8'/>
+        <enumerator name='BPF_MAP_TYPE_LRU_HASH' value='9'/>
+        <enumerator name='BPF_MAP_TYPE_LRU_PERCPU_HASH' value='10'/>
+        <enumerator name='BPF_MAP_TYPE_LPM_TRIE' value='11'/>
+        <enumerator name='BPF_MAP_TYPE_ARRAY_OF_MAPS' value='12'/>
+        <enumerator name='BPF_MAP_TYPE_HASH_OF_MAPS' value='13'/>
+        <enumerator name='BPF_MAP_TYPE_DEVMAP' value='14'/>
+        <enumerator name='BPF_MAP_TYPE_SOCKMAP' value='15'/>
+        <enumerator name='BPF_MAP_TYPE_CPUMAP' value='16'/>
+        <enumerator name='BPF_MAP_TYPE_XSKMAP' value='17'/>
+        <enumerator name='BPF_MAP_TYPE_SOCKHASH' value='18'/>
+        <enumerator name='BPF_MAP_TYPE_CGROUP_STORAGE' value='19'/>
+        <enumerator name='BPF_MAP_TYPE_REUSEPORT_SOCKARRAY' value='20'/>
+        <enumerator name='BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE' value='21'/>
+        <enumerator name='BPF_MAP_TYPE_QUEUE' value='22'/>
+        <enumerator name='BPF_MAP_TYPE_STACK' value='23'/>
+        <enumerator name='BPF_MAP_TYPE_SK_STORAGE' value='24'/>
+        <enumerator name='BPF_MAP_TYPE_DEVMAP_HASH' value='25'/>
+        <enumerator name='BPF_MAP_TYPE_STRUCT_OPS' value='26'/>
+        <enumerator name='BPF_MAP_TYPE_RINGBUF' value='27'/>
+        <enumerator name='BPF_MAP_TYPE_INODE_STORAGE' value='28'/>
+        <enumerator name='BPF_MAP_TYPE_TASK_STORAGE' value='29'/>
+      </enum-decl>
+      <union-decl name='hdmi_infoframe' size-in-bits='544' visibility='default' filepath='include/linux/hdmi.h' line='421' column='1' id='da92e008'>
+        <data-member access='public'>
+          <var-decl name='any' type-id='13c06ba8' visibility='default' filepath='include/linux/hdmi.h' line='422' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='avi' type-id='4536ce10' visibility='default' filepath='include/linux/hdmi.h' line='423' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='spd' type-id='9729258f' visibility='default' filepath='include/linux/hdmi.h' line='424' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='vendor' type-id='12153196' visibility='default' filepath='include/linux/hdmi.h' line='425' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='audio' type-id='b4a1ba48' visibility='default' filepath='include/linux/hdmi.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='drm' type-id='9ebab137' visibility='default' filepath='include/linux/hdmi.h' line='427' column='1'/>
+        </data-member>
+      </union-decl>
+      <function-type size-in-bits='64' id='da94e28c'>
+        <parameter type-id='28271da3'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='prog_entry' is-struct='yes' visibility='default' is-declaration-only='yes' id='da952956'/>
+      <function-type size-in-bits='64' id='da9684d0'>
+        <parameter type-id='b94a2f7c'/>
+        <parameter type-id='26a90f95'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <function-type size-in-bits='64' id='daa6240b'>
+        <parameter type-id='226853d2'/>
+        <parameter type-id='f9b37274'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='1d334f81' size-in-bits='64' id='daa81219'/>
+      <function-type size-in-bits='64' id='daae3cc8'>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='13ef4686'/>
+      </function-type>
+      <pointer-type-def type-id='3683b7e7' size-in-bits='64' id='dabeff1b'/>
+      <class-decl name='snd_timer_id' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='828' column='1' id='dac34efa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev_class' type-id='95e97e5e' visibility='default' filepath='include/uapi/sound/asound.h' line='829' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='dev_sclass' type-id='95e97e5e' visibility='default' filepath='include/uapi/sound/asound.h' line='830' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='card' type-id='95e97e5e' visibility='default' filepath='include/uapi/sound/asound.h' line='831' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='device' type-id='95e97e5e' visibility='default' filepath='include/uapi/sound/asound.h' line='832' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='subdevice' type-id='95e97e5e' visibility='default' filepath='include/uapi/sound/asound.h' line='833' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e3e30c0d' size-in-bits='64' id='dacbc069'/>
+      <function-type size-in-bits='64' id='dad263ec'>
+        <parameter type-id='5992ae83'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='2a275b06' size-in-bits='64' id='dae07608'/>
+      <class-decl name='page_vma_mapped_walk' is-struct='yes' visibility='default' is-declaration-only='yes' id='dae3142b'/>
+      <function-type size-in-bits='64' id='dae66efd'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='5c0abad8'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='e0d04bd9' size-in-bits='64' id='dae78f89'/>
+      <pointer-type-def type-id='036e1e80' size-in-bits='64' id='daf2ec26'/>
+      <typedef-decl name='sigset_t' type-id='4ee94dc1' filepath='include/uapi/asm-generic/signal.h' line='63' column='1' id='daf33c64'/>
+      <function-type size-in-bits='64' id='daf63770'>
+        <parameter type-id='15b1f129'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='nvdimm_fwa_state' filepath='include/linux/libnvdimm.h' line='203' column='1' id='daf6995a'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NVDIMM_FWA_INVALID' value='0'/>
+        <enumerator name='NVDIMM_FWA_IDLE' value='1'/>
+        <enumerator name='NVDIMM_FWA_ARMED' value='2'/>
+        <enumerator name='NVDIMM_FWA_BUSY' value='3'/>
+        <enumerator name='NVDIMM_FWA_ARM_OVERFLOW' value='4'/>
+      </enum-decl>
+      <class-decl name='iommu_inv_pasid_info' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/iommu.h' line='216' column='1' id='daf9a599'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='archid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/iommu.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pasid' type-id='d3130597' visibility='default' filepath='include/uapi/linux/iommu.h' line='221' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ad4c5814' size-in-bits='64' id='db02d786'/>
+      <class-decl name='io_cq' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/iocontext.h' line='73' column='1' id='db04abd6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='q' type-id='e7d2a5fc' visibility='default' filepath='include/linux/iocontext.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ioc' type-id='d042cfad' visibility='default' filepath='include/linux/iocontext.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='' type-id='ac5ab634' visibility='default' filepath='include/linux/iocontext.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='' type-id='ac5ab635' visibility='default' filepath='include/linux/iocontext.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/iocontext.h' line='92' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='dbac08a5' size-in-bits='64' id='db0bc269'/>
+      <pointer-type-def type-id='607aa943' size-in-bits='64' id='db1a91a3'/>
+      <array-type-def dimensions='1' type-id='8ff9530e' size-in-bits='256' id='db1b7234'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <class-decl name='spi_controller' size-in-bits='13888' is-struct='yes' visibility='default' filepath='include/linux/spi/spi.h' line='476' column='1' id='db1b9d9e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/spi/spi.h' line='477' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/spi/spi.h' line='479' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='bus_num' type-id='9b7e9486' visibility='default' filepath='include/linux/spi/spi.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7440'>
+          <var-decl name='num_chipselect' type-id='1dc6a898' visibility='default' filepath='include/linux/spi/spi.h' line='492' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7456'>
+          <var-decl name='dma_alignment' type-id='1dc6a898' visibility='default' filepath='include/linux/spi/spi.h' line='497' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='mode_bits' type-id='19c2251e' visibility='default' filepath='include/linux/spi/spi.h' line='500' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7520'>
+          <var-decl name='buswidth_override_bits' type-id='19c2251e' visibility='default' filepath='include/linux/spi/spi.h' line='503' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='bits_per_word_mask' type-id='19c2251e' visibility='default' filepath='include/linux/spi/spi.h' line='506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7584'>
+          <var-decl name='min_speed_hz' type-id='19c2251e' visibility='default' filepath='include/linux/spi/spi.h' line='511' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='max_speed_hz' type-id='19c2251e' visibility='default' filepath='include/linux/spi/spi.h' line='512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7648'>
+          <var-decl name='flags' type-id='1dc6a898' visibility='default' filepath='include/linux/spi/spi.h' line='515' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7664'>
+          <var-decl name='devm_allocated' type-id='b50a4934' visibility='default' filepath='include/linux/spi/spi.h' line='525' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7672'>
+          <var-decl name='slave' type-id='b50a4934' visibility='default' filepath='include/linux/spi/spi.h' line='528' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='max_transfer_size' type-id='fc096b90' visibility='default' filepath='include/linux/spi/spi.h' line='534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='max_message_size' type-id='fc096b90' visibility='default' filepath='include/linux/spi/spi.h' line='535' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='io_mutex' type-id='925167dc' visibility='default' filepath='include/linux/spi/spi.h' line='538' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='add_lock' type-id='925167dc' visibility='default' filepath='include/linux/spi/spi.h' line='541' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8576'>
+          <var-decl name='bus_lock_spinlock' type-id='fb4018a0' visibility='default' filepath='include/linux/spi/spi.h' line='544' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='bus_lock_mutex' type-id='925167dc' visibility='default' filepath='include/linux/spi/spi.h' line='545' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9024'>
+          <var-decl name='bus_lock_flag' type-id='b50a4934' visibility='default' filepath='include/linux/spi/spi.h' line='548' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9088'>
+          <var-decl name='setup' type-id='4f312040' visibility='default' filepath='include/linux/spi/spi.h' line='556' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9152'>
+          <var-decl name='set_cs_timing' type-id='4f312040' visibility='default' filepath='include/linux/spi/spi.h' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9216'>
+          <var-decl name='transfer' type-id='08bd785c' visibility='default' filepath='include/linux/spi/spi.h' line='587' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9280'>
+          <var-decl name='cleanup' type-id='c965bc43' visibility='default' filepath='include/linux/spi/spi.h' line='591' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='can_dma' type-id='b7f92ac9' visibility='default' filepath='include/linux/spi/spi.h' line='600' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9408'>
+          <var-decl name='dma_map_dev' type-id='fa0b179b' visibility='default' filepath='include/linux/spi/spi.h' line='603' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9472'>
+          <var-decl name='queued' type-id='b50a4934' visibility='default' filepath='include/linux/spi/spi.h' line='611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9536'>
+          <var-decl name='kworker' type-id='c41f4539' visibility='default' filepath='include/linux/spi/spi.h' line='612' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='pump_messages' type-id='ac165296' visibility='default' filepath='include/linux/spi/spi.h' line='613' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9920'>
+          <var-decl name='queue_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/spi/spi.h' line='614' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9984'>
+          <var-decl name='queue' type-id='72f469ec' visibility='default' filepath='include/linux/spi/spi.h' line='615' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10112'>
+          <var-decl name='cur_msg' type-id='bb7889ed' visibility='default' filepath='include/linux/spi/spi.h' line='616' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10176'>
+          <var-decl name='idling' type-id='b50a4934' visibility='default' filepath='include/linux/spi/spi.h' line='617' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10184'>
+          <var-decl name='busy' type-id='b50a4934' visibility='default' filepath='include/linux/spi/spi.h' line='618' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10192'>
+          <var-decl name='running' type-id='b50a4934' visibility='default' filepath='include/linux/spi/spi.h' line='619' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10200'>
+          <var-decl name='rt' type-id='b50a4934' visibility='default' filepath='include/linux/spi/spi.h' line='620' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10208'>
+          <var-decl name='auto_runtime_pm' type-id='b50a4934' visibility='default' filepath='include/linux/spi/spi.h' line='621' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10216'>
+          <var-decl name='cur_msg_prepared' type-id='b50a4934' visibility='default' filepath='include/linux/spi/spi.h' line='622' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10224'>
+          <var-decl name='cur_msg_mapped' type-id='b50a4934' visibility='default' filepath='include/linux/spi/spi.h' line='623' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10232'>
+          <var-decl name='last_cs_enable' type-id='b50a4934' visibility='default' filepath='include/linux/spi/spi.h' line='624' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10240'>
+          <var-decl name='last_cs_mode_high' type-id='b50a4934' visibility='default' filepath='include/linux/spi/spi.h' line='625' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10248'>
+          <var-decl name='fallback' type-id='b50a4934' visibility='default' filepath='include/linux/spi/spi.h' line='626' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10304'>
+          <var-decl name='xfer_completion' type-id='f9fef04f' visibility='default' filepath='include/linux/spi/spi.h' line='627' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10560'>
+          <var-decl name='max_dma_len' type-id='b59d7dce' visibility='default' filepath='include/linux/spi/spi.h' line='628' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10624'>
+          <var-decl name='prepare_transfer_hardware' type-id='3de177aa' visibility='default' filepath='include/linux/spi/spi.h' line='630' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10688'>
+          <var-decl name='transfer_one_message' type-id='424a6df6' visibility='default' filepath='include/linux/spi/spi.h' line='631' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10752'>
+          <var-decl name='unprepare_transfer_hardware' type-id='3de177aa' visibility='default' filepath='include/linux/spi/spi.h' line='633' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10816'>
+          <var-decl name='prepare_message' type-id='424a6df6' visibility='default' filepath='include/linux/spi/spi.h' line='634' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10880'>
+          <var-decl name='unprepare_message' type-id='424a6df6' visibility='default' filepath='include/linux/spi/spi.h' line='636' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10944'>
+          <var-decl name='slave_abort' type-id='3de177aa' visibility='default' filepath='include/linux/spi/spi.h' line='638' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11008'>
+          <var-decl name='set_cs' type-id='54a1bec6' visibility='default' filepath='include/linux/spi/spi.h' line='644' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11072'>
+          <var-decl name='transfer_one' type-id='6495fd5b' visibility='default' filepath='include/linux/spi/spi.h' line='645' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11136'>
+          <var-decl name='handle_err' type-id='72fa5619' visibility='default' filepath='include/linux/spi/spi.h' line='647' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11200'>
+          <var-decl name='mem_ops' type-id='e93ac78c' visibility='default' filepath='include/linux/spi/spi.h' line='651' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11264'>
+          <var-decl name='cs_gpios' type-id='7292109c' visibility='default' filepath='include/linux/spi/spi.h' line='654' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11328'>
+          <var-decl name='cs_gpiods' type-id='35c9579e' visibility='default' filepath='include/linux/spi/spi.h' line='655' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11392'>
+          <var-decl name='use_gpio_descriptors' type-id='b50a4934' visibility='default' filepath='include/linux/spi/spi.h' line='656' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11400'>
+          <var-decl name='unused_native_cs' type-id='fdbf7a0f' visibility='default' filepath='include/linux/spi/spi.h' line='657' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11408'>
+          <var-decl name='max_native_cs' type-id='fdbf7a0f' visibility='default' filepath='include/linux/spi/spi.h' line='658' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11456'>
+          <var-decl name='statistics' type-id='bf41d149' visibility='default' filepath='include/linux/spi/spi.h' line='661' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13312'>
+          <var-decl name='dma_tx' type-id='27f3f5d8' visibility='default' filepath='include/linux/spi/spi.h' line='664' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13376'>
+          <var-decl name='dma_rx' type-id='27f3f5d8' visibility='default' filepath='include/linux/spi/spi.h' line='665' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13440'>
+          <var-decl name='dummy_rx' type-id='eaa32e2f' visibility='default' filepath='include/linux/spi/spi.h' line='668' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13504'>
+          <var-decl name='dummy_tx' type-id='eaa32e2f' visibility='default' filepath='include/linux/spi/spi.h' line='669' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13568'>
+          <var-decl name='fw_translate_cs' type-id='aaa6c630' visibility='default' filepath='include/linux/spi/spi.h' line='671' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13632'>
+          <var-decl name='ptp_sts_supported' type-id='b50a4934' visibility='default' filepath='include/linux/spi/spi.h' line='677' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13696'>
+          <var-decl name='irq_flags' type-id='7359adad' visibility='default' filepath='include/linux/spi/spi.h' line='680' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13760'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/spi/spi.h' line='682' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13824'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/spi/spi.h' line='683' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='62465d3d' const='yes' id='db1c1b36'/>
+      <function-type size-in-bits='64' id='db1d8e86'>
+        <parameter type-id='22be78e8'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='ttm_bo_type' filepath='include/drm/ttm/ttm_bo_api.h' line='75' column='1' id='db1f3944'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ttm_bo_type_device' value='0'/>
+        <enumerator name='ttm_bo_type_kernel' value='1'/>
+        <enumerator name='ttm_bo_type_sg' value='2'/>
+      </enum-decl>
+      <class-decl name='rt6_exception_bucket' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/ip6_fib.h' line='141' column='1' id='db281924'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='chain' type-id='e151255a' visibility='default' filepath='include/net/ip6_fib.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='depth' type-id='95e97e5e' visibility='default' filepath='include/net/ip6_fib.h' line='143' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='db2d72d5'>
+        <parameter type-id='02913b69'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='db33b784'>
+        <parameter type-id='941d96cb'/>
+        <parameter type-id='90144368'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='91ce1af9'/>
+      </function-type>
+      <pointer-type-def type-id='7bb4e525' size-in-bits='64' id='db362995'/>
+      <class-decl name='dev_iommu' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/iommu.h' line='388' column='1' id='db396bce'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/linux/iommu.h' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='fault_param' type-id='0a9b173b' visibility='default' filepath='include/linux/iommu.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='iopf_param' type-id='79ac8eb2' visibility='default' filepath='include/linux/iommu.h' line='391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='fwspec' type-id='1979c577' visibility='default' filepath='include/linux/iommu.h' line='392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='iommu_dev' type-id='2f00283d' visibility='default' filepath='include/linux/iommu.h' line='393' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/iommu.h' line='394' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7b74b2c0' size-in-bits='64' id='db3c9452'/>
+      <function-type size-in-bits='64' id='db458173'>
+        <parameter type-id='11777d05'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='a54c778f'/>
+        <return type-id='8f254b08'/>
+      </function-type>
+      <pointer-type-def type-id='ef40fb12' size-in-bits='64' id='db4b7928'/>
+      <function-type size-in-bits='64' id='db4c9bf7'>
+        <parameter type-id='b9af02c3'/>
+        <parameter type-id='8efea9e5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='iw_point' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/wireless.h' line='691' column='1' id='db4e746c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pointer' type-id='eaa32e2f' visibility='default' filepath='include/uapi/linux/wireless.h' line='692' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='length' type-id='d315442e' visibility='default' filepath='include/uapi/linux/wireless.h' line='693' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='flags' type-id='d315442e' visibility='default' filepath='include/uapi/linux/wireless.h' line='694' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='db61d4a1'>
+        <parameter type-id='41ebc58b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='aecf225c' size-in-bits='64' id='db634b6a'/>
+      <pointer-type-def type-id='7bcbad99' size-in-bits='64' id='db6d90a1'/>
+      <function-type size-in-bits='64' id='db7d07ef'>
+        <parameter type-id='f0981eeb' name='cpu'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7ee67639' size-in-bits='64' id='db7eb22d'/>
+      <pointer-type-def type-id='c2ddabb8' size-in-bits='64' id='db7f2db2'/>
+      <enum-decl name='uclamp_id' filepath='include/linux/sched.h' line='351' column='1' id='db819146'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='UCLAMP_MIN' value='0'/>
+        <enumerator name='UCLAMP_MAX' value='1'/>
+        <enumerator name='UCLAMP_CNT' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='ab85b8f2' size-in-bits='64' id='db81fc08'/>
+      <pointer-type-def type-id='8fadaaa6' size-in-bits='64' id='db93e57c'/>
+      <pointer-type-def type-id='4130d810' size-in-bits='64' id='db94924a'/>
+      <array-type-def dimensions='1' type-id='1354385d' size-in-bits='64' id='db98c084'>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+      </array-type-def>
+      <typedef-decl name='snd_kcontrol_put_t' type-id='84147814' filepath='include/sound/control.h' line='19' column='1' id='db992ec7'/>
+      <pointer-type-def type-id='ad499564' size-in-bits='64' id='db994912'/>
+      <pointer-type-def type-id='504855b3' size-in-bits='64' id='db9d03e3'/>
+      <class-decl name='bus_dma_region' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/dma-direct.h' line='20' column='1' id='db9db9b1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cpu_start' type-id='2522883d' visibility='default' filepath='include/linux/dma-direct.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dma_start' type-id='cf29c9b3' visibility='default' filepath='include/linux/dma-direct.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='size' type-id='91ce1af9' visibility='default' filepath='include/linux/dma-direct.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='offset' type-id='91ce1af9' visibility='default' filepath='include/linux/dma-direct.h' line='24' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='netns_ipv4' size-in-bits='5632' is-struct='yes' visibility='default' filepath='include/net/netns/ipv4.h' line='44' column='1' id='dba1641f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tcp_death_row' type-id='af2c6a56' visibility='default' filepath='include/net/netns/ipv4.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='forw_hdr' type-id='11b101bb' visibility='default' filepath='include/net/netns/ipv4.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='frags_hdr' type-id='11b101bb' visibility='default' filepath='include/net/netns/ipv4.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='ipv4_hdr' type-id='11b101bb' visibility='default' filepath='include/net/netns/ipv4.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='route_hdr' type-id='11b101bb' visibility='default' filepath='include/net/netns/ipv4.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='xfrm4_hdr' type-id='11b101bb' visibility='default' filepath='include/net/netns/ipv4.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='devconf_all' type-id='e963f446' visibility='default' filepath='include/net/netns/ipv4.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='devconf_dflt' type-id='e963f446' visibility='default' filepath='include/net/netns/ipv4.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='ra_chain' type-id='00c4cbac' visibility='default' filepath='include/net/netns/ipv4.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='ra_mutex' type-id='925167dc' visibility='default' filepath='include/net/netns/ipv4.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='rules_ops' type-id='a68064b1' visibility='default' filepath='include/net/netns/ipv4.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='fib_main' type-id='107630a5' visibility='default' filepath='include/net/netns/ipv4.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='fib_default' type-id='107630a5' visibility='default' filepath='include/net/netns/ipv4.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='fib_rules_require_fldissect' type-id='f0981eeb' visibility='default' filepath='include/net/netns/ipv4.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1760'>
+          <var-decl name='fib_has_custom_rules' type-id='b50a4934' visibility='default' filepath='include/net/netns/ipv4.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1768'>
+          <var-decl name='fib_has_custom_local_routes' type-id='b50a4934' visibility='default' filepath='include/net/netns/ipv4.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1776'>
+          <var-decl name='fib_offload_disabled' type-id='b50a4934' visibility='default' filepath='include/net/netns/ipv4.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='fib_table_hash' type-id='030d0b18' visibility='default' filepath='include/net/netns/ipv4.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='fibnl' type-id='f772df6d' visibility='default' filepath='include/net/netns/ipv4.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='icmp_sk' type-id='d0d57cc5' visibility='default' filepath='include/net/netns/ipv4.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='mc_autojoin_sk' type-id='f772df6d' visibility='default' filepath='include/net/netns/ipv4.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='peers' type-id='01d310c2' visibility='default' filepath='include/net/netns/ipv4.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='tcp_sk' type-id='d0d57cc5' visibility='default' filepath='include/net/netns/ipv4.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='fqdir' type-id='943ad75f' visibility='default' filepath='include/net/netns/ipv4.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='sysctl_icmp_echo_ignore_all' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2248'>
+          <var-decl name='sysctl_icmp_echo_enable_probe' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2256'>
+          <var-decl name='sysctl_icmp_echo_ignore_broadcasts' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2264'>
+          <var-decl name='sysctl_icmp_ignore_bogus_error_responses' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2272'>
+          <var-decl name='sysctl_icmp_errors_use_inbound_ifaddr' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='sysctl_icmp_ratelimit' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2336'>
+          <var-decl name='sysctl_icmp_ratemask' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='ip_local_ports' type-id='93d4ab27' visibility='default' filepath='include/net/netns/ipv4.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2528'>
+          <var-decl name='sysctl_tcp_ecn' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2536'>
+          <var-decl name='sysctl_tcp_ecn_fallback' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2544'>
+          <var-decl name='sysctl_ip_default_ttl' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2552'>
+          <var-decl name='sysctl_ip_no_pmtu_disc' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='sysctl_ip_fwd_use_pmtu' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2568'>
+          <var-decl name='sysctl_ip_fwd_update_priority' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2576'>
+          <var-decl name='sysctl_ip_nonlocal_bind' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2584'>
+          <var-decl name='sysctl_ip_autobind_reuse' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2592'>
+          <var-decl name='sysctl_ip_dynaddr' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2600'>
+          <var-decl name='sysctl_ip_early_demux' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2608'>
+          <var-decl name='sysctl_tcp_early_demux' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2616'>
+          <var-decl name='sysctl_udp_early_demux' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='sysctl_nexthop_compat_mode' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2632'>
+          <var-decl name='sysctl_fwmark_reflect' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2640'>
+          <var-decl name='sysctl_tcp_fwmark_accept' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2648'>
+          <var-decl name='sysctl_tcp_mtu_probing' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2656'>
+          <var-decl name='sysctl_tcp_mtu_probe_floor' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='sysctl_tcp_base_mss' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2720'>
+          <var-decl name='sysctl_tcp_min_snd_mss' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='sysctl_tcp_probe_threshold' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2784'>
+          <var-decl name='sysctl_tcp_probe_interval' type-id='19c2251e' visibility='default' filepath='include/net/netns/ipv4.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='sysctl_tcp_keepalive_time' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2848'>
+          <var-decl name='sysctl_tcp_keepalive_intvl' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='sysctl_tcp_keepalive_probes' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2888'>
+          <var-decl name='sysctl_tcp_syn_retries' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2896'>
+          <var-decl name='sysctl_tcp_synack_retries' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2904'>
+          <var-decl name='sysctl_tcp_syncookies' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2912'>
+          <var-decl name='sysctl_tcp_migrate_req' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='sysctl_tcp_reordering' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2976'>
+          <var-decl name='sysctl_tcp_retries1' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2984'>
+          <var-decl name='sysctl_tcp_retries2' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2992'>
+          <var-decl name='sysctl_tcp_orphan_retries' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3000'>
+          <var-decl name='sysctl_tcp_tw_reuse' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='sysctl_tcp_fin_timeout' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3040'>
+          <var-decl name='sysctl_tcp_notsent_lowat' type-id='f0981eeb' visibility='default' filepath='include/net/netns/ipv4.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='sysctl_tcp_sack' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3080'>
+          <var-decl name='sysctl_tcp_window_scaling' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3088'>
+          <var-decl name='sysctl_tcp_timestamps' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3096'>
+          <var-decl name='sysctl_tcp_early_retrans' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3104'>
+          <var-decl name='sysctl_tcp_recovery' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3112'>
+          <var-decl name='sysctl_tcp_thin_linear_timeouts' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3120'>
+          <var-decl name='sysctl_tcp_slow_start_after_idle' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3128'>
+          <var-decl name='sysctl_tcp_retrans_collapse' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='sysctl_tcp_stdurg' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3144'>
+          <var-decl name='sysctl_tcp_rfc1337' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3152'>
+          <var-decl name='sysctl_tcp_abort_on_overflow' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3160'>
+          <var-decl name='sysctl_tcp_fack' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3168'>
+          <var-decl name='sysctl_tcp_max_reordering' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='sysctl_tcp_adv_win_scale' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3232'>
+          <var-decl name='sysctl_tcp_dsack' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3240'>
+          <var-decl name='sysctl_tcp_app_win' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3248'>
+          <var-decl name='sysctl_tcp_frto' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3256'>
+          <var-decl name='sysctl_tcp_nometrics_save' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='sysctl_tcp_no_ssthresh_metrics_save' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3272'>
+          <var-decl name='sysctl_tcp_moderate_rcvbuf' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3280'>
+          <var-decl name='sysctl_tcp_tso_win_divisor' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3288'>
+          <var-decl name='sysctl_tcp_workaround_signed_windows' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3296'>
+          <var-decl name='sysctl_tcp_limit_output_bytes' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='sysctl_tcp_challenge_ack_limit' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3360'>
+          <var-decl name='sysctl_tcp_min_rtt_wlen' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='sysctl_tcp_min_tso_segs' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3400'>
+          <var-decl name='sysctl_tcp_autocorking' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3408'>
+          <var-decl name='sysctl_tcp_reflect_tos' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3416'>
+          <var-decl name='sysctl_tcp_comp_sack_nr' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3424'>
+          <var-decl name='sysctl_tcp_invalid_ratelimit' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='sysctl_tcp_pacing_ss_ratio' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3488'>
+          <var-decl name='sysctl_tcp_pacing_ca_ratio' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='sysctl_tcp_wmem' type-id='e024279b' visibility='default' filepath='include/net/netns/ipv4.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3616'>
+          <var-decl name='sysctl_tcp_rmem' type-id='e024279b' visibility='default' filepath='include/net/netns/ipv4.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='sysctl_tcp_comp_sack_delay_ns' type-id='7359adad' visibility='default' filepath='include/net/netns/ipv4.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='sysctl_tcp_comp_sack_slack_ns' type-id='7359adad' visibility='default' filepath='include/net/netns/ipv4.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='sysctl_max_syn_backlog' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3872'>
+          <var-decl name='sysctl_tcp_fastopen' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3904'>
+          <var-decl name='tcp_congestion_control' type-id='b3ef56ee' visibility='default' filepath='include/net/netns/ipv4.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='tcp_fastopen_ctx' type-id='104fa32f' visibility='default' filepath='include/net/netns/ipv4.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='sysctl_tcp_fastopen_blackhole_timeout' type-id='f0981eeb' visibility='default' filepath='include/net/netns/ipv4.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4064'>
+          <var-decl name='tfo_active_disable_times' type-id='49178f86' visibility='default' filepath='include/net/netns/ipv4.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='tfo_active_disable_stamp' type-id='7359adad' visibility='default' filepath='include/net/netns/ipv4.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='sysctl_udp_wmem_min' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4192'>
+          <var-decl name='sysctl_udp_rmem_min' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='sysctl_fib_notify_on_flag_change' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4232'>
+          <var-decl name='sysctl_igmp_llm_reports' type-id='f9b06939' visibility='default' filepath='include/net/netns/ipv4.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4256'>
+          <var-decl name='sysctl_igmp_max_memberships' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='sysctl_igmp_max_msf' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4320'>
+          <var-decl name='sysctl_igmp_qrv' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='ping_group_range' type-id='89d35c53' visibility='default' filepath='include/net/netns/ipv4.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4480'>
+          <var-decl name='dev_addr_genid' type-id='49178f86' visibility='default' filepath='include/net/netns/ipv4.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4544'>
+          <var-decl name='sysctl_local_reserved_ports' type-id='1d2c2b85' visibility='default' filepath='include/net/netns/ipv4.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4608'>
+          <var-decl name='sysctl_local_unbindable_ports' type-id='1d2c2b85' visibility='default' filepath='include/net/netns/ipv4.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4672'>
+          <var-decl name='sysctl_ip_prot_sock' type-id='95e97e5e' visibility='default' filepath='include/net/netns/ipv4.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='notifier_ops' type-id='74f101b0' visibility='default' filepath='include/net/netns/ipv4.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='fib_seq' type-id='f0981eeb' visibility='default' filepath='include/net/netns/ipv4.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4864'>
+          <var-decl name='ipmr_notifier_ops' type-id='74f101b0' visibility='default' filepath='include/net/netns/ipv4.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4928'>
+          <var-decl name='ipmr_seq' type-id='f0981eeb' visibility='default' filepath='include/net/netns/ipv4.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4960'>
+          <var-decl name='rt_genid' type-id='49178f86' visibility='default' filepath='include/net/netns/ipv4.h' line='226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='ip_id_key' type-id='7799da43' visibility='default' filepath='include/net/netns/ipv4.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/netns/ipv4.h' line='229' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='f6b32752' const='yes' id='dba44491'/>
+      <function-type size-in-bits='64' id='dba58976'>
+        <parameter type-id='2cb4dc09'/>
+        <parameter type-id='3df9fd28'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='dbac08a5'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='dma_descriptor_metadata_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/dmaengine.h' line='574' column='1' id='dbae75d6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='attach' type-id='7a89a746' visibility='default' filepath='include/linux/dmaengine.h' line='575' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='get_ptr' type-id='b698e72c' visibility='default' filepath='include/linux/dmaengine.h' line='578' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='set_len' type-id='8f20abb2' visibility='default' filepath='include/linux/dmaengine.h' line='580' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='2048' id='dbaf9da9'>
+        <subrange length='256' type-id='7ff19f0f' id='36e5b9fa'/>
+      </array-type-def>
+      <pointer-type-def type-id='8b1bf035' size-in-bits='64' id='dbb91d59'/>
+      <class-decl name='usb_interface_cache' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='333' column='1' id='dbbc1900'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='num_altsetting' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ref' type-id='400fb07b' visibility='default' filepath='include/linux/usb.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='altsetting' type-id='26179f78' visibility='default' filepath='include/linux/usb.h' line='339' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cbbffc65' size-in-bits='64' id='dbc22931'/>
+      <qualified-type-def type-id='54cc740b' const='yes' id='dbc3320a'/>
+      <pointer-type-def type-id='3d03784e' size-in-bits='64' id='dbc641b8'/>
+      <class-decl name='v4l2_ctrl' size-in-bits='1792' is-struct='yes' visibility='default' filepath='include/media/v4l2-ctrls.h' line='249' column='1' id='dbc7d793'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-ctrls.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ev_subs' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-ctrls.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='handler' type-id='2b59fa5e' visibility='default' filepath='include/media/v4l2-ctrls.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='cluster' type-id='c517999b' visibility='default' filepath='include/media/v4l2-ctrls.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ncontrols' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-ctrls.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='done' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-ctrls.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='417'>
+          <var-decl name='is_new' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-ctrls.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='418'>
+          <var-decl name='has_changed' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-ctrls.h' line='260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='419'>
+          <var-decl name='is_private' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-ctrls.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='420'>
+          <var-decl name='is_auto' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-ctrls.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='421'>
+          <var-decl name='is_int' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-ctrls.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='422'>
+          <var-decl name='is_string' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-ctrls.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='423'>
+          <var-decl name='is_ptr' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-ctrls.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='424'>
+          <var-decl name='is_array' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-ctrls.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='425'>
+          <var-decl name='has_volatiles' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-ctrls.h' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='426'>
+          <var-decl name='call_notify' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-ctrls.h' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='427'>
+          <var-decl name='manual_mode_value' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-ctrls.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ops' type-id='1086b623' visibility='default' filepath='include/media/v4l2-ctrls.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='type_ops' type-id='b076d304' visibility='default' filepath='include/media/v4l2-ctrls.h' line='272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='id' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-ctrls.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/media/v4l2-ctrls.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='type' type-id='cf13dc99' visibility='default' filepath='include/media/v4l2-ctrls.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='minimum' type-id='9b7c55ef' visibility='default' filepath='include/media/v4l2-ctrls.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='maximum' type-id='9b7c55ef' visibility='default' filepath='include/media/v4l2-ctrls.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='default_value' type-id='9b7c55ef' visibility='default' filepath='include/media/v4l2-ctrls.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='elems' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-ctrls.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='elem_size' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-ctrls.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='dims' type-id='1c6c0c39' visibility='default' filepath='include/media/v4l2-ctrls.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='nr_of_dims' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-ctrls.h' line='280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='' type-id='ac5ab603' visibility='default' filepath='include/media/v4l2-ctrls.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='' type-id='ac5ab604' visibility='default' filepath='include/media/v4l2-ctrls.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/media/v4l2-ctrls.h' line='289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/media/v4l2-ctrls.h' line='290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='val' type-id='a7832498' visibility='default' filepath='include/media/v4l2-ctrls.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1504'>
+          <var-decl name='cur' type-id='e7f43fc4' visibility='default' filepath='include/media/v4l2-ctrls.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='p_def' type-id='3f78e6a9' visibility='default' filepath='include/media/v4l2-ctrls.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='p_new' type-id='3f78e6a9' visibility='default' filepath='include/media/v4l2-ctrls.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='p_cur' type-id='3f78e6a9' visibility='default' filepath='include/media/v4l2-ctrls.h' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/media/v4l2-ctrls.h' line='300' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='sk_filter' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/filter.h' line='593' column='1' id='dbc9a936'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/linux/filter.h' line='594' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/filter.h' line='595' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='prog' type-id='bdcee7ae' visibility='default' filepath='include/linux/filter.h' line='596' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='04f1443e' size-in-bits='64' id='dbce2b7c'/>
+      <qualified-type-def type-id='d83a2db1' const='yes' id='dbce337a'/>
+      <class-decl name='cpufreq_policy' size-in-bits='6080' is-struct='yes' visibility='default' filepath='include/linux/cpufreq.h' line='55' column='1' id='dbcf5bbe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cpus' type-id='b16b461b' visibility='default' filepath='include/linux/cpufreq.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='related_cpus' type-id='b16b461b' visibility='default' filepath='include/linux/cpufreq.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='real_cpus' type-id='b16b461b' visibility='default' filepath='include/linux/cpufreq.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='shared_type' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='cpu' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='clk' type-id='7d0bc0eb' visibility='default' filepath='include/linux/cpufreq.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='cpuinfo' type-id='861f63ae' visibility='default' filepath='include/linux/cpufreq.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='min' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='max' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='cur' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='suspend_freq' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='policy' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='last_policy' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='governor' type-id='6925355c' visibility='default' filepath='include/linux/cpufreq.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='governor_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/cpufreq.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='last_governor' type-id='ac1fa8c0' visibility='default' filepath='include/linux/cpufreq.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='update' type-id='ef9025d0' visibility='default' filepath='include/linux/cpufreq.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='constraints' type-id='7ca99f8c' visibility='default' filepath='include/linux/cpufreq.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='min_freq_req' type-id='3fdf7ca3' visibility='default' filepath='include/linux/cpufreq.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='max_freq_req' type-id='3fdf7ca3' visibility='default' filepath='include/linux/cpufreq.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='freq_table' type-id='3b8b42e1' visibility='default' filepath='include/linux/cpufreq.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='freq_table_sorted' type-id='e29b2d58' visibility='default' filepath='include/linux/cpufreq.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='policy_list' type-id='72f469ec' visibility='default' filepath='include/linux/cpufreq.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='include/linux/cpufreq.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='kobj_unregister' type-id='f9fef04f' visibility='default' filepath='include/linux/cpufreq.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4480'>
+          <var-decl name='rwsem' type-id='f19fdb93' visibility='default' filepath='include/linux/cpufreq.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='fast_switch_possible' type-id='b50a4934' visibility='default' filepath='include/linux/cpufreq.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5000'>
+          <var-decl name='fast_switch_enabled' type-id='b50a4934' visibility='default' filepath='include/linux/cpufreq.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5008'>
+          <var-decl name='strict_target' type-id='b50a4934' visibility='default' filepath='include/linux/cpufreq.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5024'>
+          <var-decl name='transition_delay_us' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5056'>
+          <var-decl name='dvfs_possible_from_any_cpu' type-id='b50a4934' visibility='default' filepath='include/linux/cpufreq.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5088'>
+          <var-decl name='cached_target_freq' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='cached_resolved_idx' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5152'>
+          <var-decl name='transition_ongoing' type-id='b50a4934' visibility='default' filepath='include/linux/cpufreq.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='transition_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/cpufreq.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='transition_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/cpufreq.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5440'>
+          <var-decl name='transition_task' type-id='f23e2572' visibility='default' filepath='include/linux/cpufreq.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='stats' type-id='dfdc5e57' visibility='default' filepath='include/linux/cpufreq.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/cpufreq.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5632'>
+          <var-decl name='cdev' type-id='2feec21f' visibility='default' filepath='include/linux/cpufreq.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5696'>
+          <var-decl name='nb_min' type-id='9b08f7cd' visibility='default' filepath='include/linux/cpufreq.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5888'>
+          <var-decl name='nb_max' type-id='9b08f7cd' visibility='default' filepath='include/linux/cpufreq.h' line='157' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='ssci_t' type-id='19c2251e' filepath='include/net/macsec.h' line='21' column='1' id='dbcff62d'/>
+      <class-decl name='of_timer_irq' size-in-bits='320' is-struct='yes' visibility='default' filepath='drivers/clocksource/timer-of.h' line='11' column='1' id='dbd50a93'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='irq' type-id='95e97e5e' visibility='default' filepath='drivers/clocksource/timer-of.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='index' type-id='95e97e5e' visibility='default' filepath='drivers/clocksource/timer-of.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='percpu' type-id='95e97e5e' visibility='default' filepath='drivers/clocksource/timer-of.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/clocksource/timer-of.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='drivers/clocksource/timer-of.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='handler' type-id='29591c9a' visibility='default' filepath='drivers/clocksource/timer-of.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='block_device_operations' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/linux/blkdev.h' line='1864' column='1' id='dbd58b50'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='submit_bio' type-id='364779d0' visibility='default' filepath='include/linux/blkdev.h' line='1865' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='open' type-id='2207988a' visibility='default' filepath='include/linux/blkdev.h' line='1866' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='release' type-id='156433b6' visibility='default' filepath='include/linux/blkdev.h' line='1867' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rw_page' type-id='55f833ce' visibility='default' filepath='include/linux/blkdev.h' line='1868' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ioctl' type-id='6ed32e60' visibility='default' filepath='include/linux/blkdev.h' line='1869' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='compat_ioctl' type-id='6ed32e60' visibility='default' filepath='include/linux/blkdev.h' line='1870' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='check_events' type-id='4bf65d9d' visibility='default' filepath='include/linux/blkdev.h' line='1871' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='unlock_native_capacity' type-id='dabeff1b' visibility='default' filepath='include/linux/blkdev.h' line='1873' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='getgeo' type-id='68a88aaa' visibility='default' filepath='include/linux/blkdev.h' line='1874' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='set_read_only' type-id='dc85f34a' visibility='default' filepath='include/linux/blkdev.h' line='1875' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='swap_slot_free_notify' type-id='c4cac78c' visibility='default' filepath='include/linux/blkdev.h' line='1877' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='report_zones' type-id='8eee5b07' visibility='default' filepath='include/linux/blkdev.h' line='1878' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='devnode' type-id='b160f6ba' visibility='default' filepath='include/linux/blkdev.h' line='1880' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/blkdev.h' line='1881' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='pr_ops' type-id='08d45f21' visibility='default' filepath='include/linux/blkdev.h' line='1882' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='alternative_gpt_sector' type-id='8ddbf889' visibility='default' filepath='include/linux/blkdev.h' line='1889' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/blkdev.h' line='1891' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/blkdev.h' line='1892' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='android_oem_data1' type-id='91ce1af9' visibility='default' filepath='include/linux/blkdev.h' line='1893' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='atomic_notifier_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/notifier.h' line='60' column='1' id='dbd58f6e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/notifier.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='head' type-id='d504f73d' visibility='default' filepath='include/linux/notifier.h' line='62' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8008efb8' size-in-bits='64' id='dbdf0f9e'/>
+      <pointer-type-def type-id='ee9f611d' size-in-bits='64' id='dbe60995'/>
+      <class-decl name='device_attribute' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/device.h' line='100' column='1' id='dbf3947c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='attr' type-id='a6222917' visibility='default' filepath='include/linux/device.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='show' type-id='3dcc4acf' visibility='default' filepath='include/linux/device.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='store' type-id='839105d3' visibility='default' filepath='include/linux/device.h' line='104' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='dd42ab12' size-in-bits='64' id='dbff155c'/>
+      <function-type size-in-bits='64' id='dc03d04c'>
+        <parameter type-id='54e54fbb'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='50f7224d' size-in-bits='64' id='dc0b2825'/>
+      <pointer-type-def type-id='e0ed16c6' size-in-bits='64' id='dc18a9b0'/>
+      <typedef-decl name='gro_result_t' type-id='3facc5aa' filepath='include/linux/netdevice.h' line='390' column='1' id='dc1b1685'/>
+      <class-decl name='dwc3_ep' size-in-bits='1856' is-struct='yes' visibility='default' filepath='drivers/usb/dwc3/core.h' line='704' column='1' id='dc1b9a32'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='endpoint' type-id='8005701f' visibility='default' filepath='drivers/usb/dwc3/core.h' line='705' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='cancelled_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/dwc3/core.h' line='706' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='pending_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/dwc3/core.h' line='707' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='started_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/dwc3/core.h' line='708' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='regs' type-id='eaa32e2f' visibility='default' filepath='drivers/usb/dwc3/core.h' line='710' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='trb_pool' type-id='0d6a59e1' visibility='default' filepath='drivers/usb/dwc3/core.h' line='712' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='trb_pool_dma' type-id='cf29c9b3' visibility='default' filepath='drivers/usb/dwc3/core.h' line='713' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='dwc' type-id='5ac4ba20' visibility='default' filepath='drivers/usb/dwc3/core.h' line='714' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='saved_state' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='716' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='717' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='trb_enqueue' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='745' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1352'>
+          <var-decl name='trb_dequeue' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='746' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1360'>
+          <var-decl name='number' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='748' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1368'>
+          <var-decl name='type' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='749' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='resource_index' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='750' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='frame_number' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='751' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='interval' type-id='19c2251e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='752' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='name' type-id='664ac0b7' visibility='default' filepath='drivers/usb/dwc3/core.h' line='754' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1632'>
+          <var-decl name='direction' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='756' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1633'>
+          <var-decl name='stream_capable' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='757' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1640'>
+          <var-decl name='combo_num' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='760' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='start_cmd_status' type-id='95e97e5e' visibility='default' filepath='drivers/usb/dwc3/core.h' line='761' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/usb/dwc3/core.h' line='763' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='drivers/usb/dwc3/core.h' line='764' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a9559bf8' size-in-bits='64' id='dc1e097e'/>
+      <class-decl name='hid_usage' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='441' column='1' id='dc1e3176'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hid' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='442' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='collection_index' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='usage_index' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='resolution_multiplier' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='wheel_factor' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='code' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='type' type-id='8f048e17' visibility='default' filepath='include/linux/hid.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='hat_min' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='hat_max' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='hat_dir' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='wheel_accumulated' type-id='b55def60' visibility='default' filepath='include/linux/hid.h' line='454' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='49b990e7' size-in-bits='64' id='dc1ef2b7'/>
+      <pointer-type-def type-id='f139a2f0' size-in-bits='64' id='dc2036b2'/>
+      <pointer-type-def type-id='96e74f5f' size-in-bits='64' id='dc20ab67'/>
+      <pointer-type-def type-id='2b6f4104' size-in-bits='64' id='dc230ec2'/>
+      <function-type size-in-bits='64' id='dc2316e7'>
+        <parameter type-id='02f11ed4'/>
+        <parameter type-id='3eb7c31c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='cca707fb' size-in-bits='64' id='dc2d641b'/>
+      <qualified-type-def type-id='40eafb47' const='yes' id='dc30ce58'/>
+      <function-type size-in-bits='64' id='dc3653c1'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='0023218e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='0b88199f' size-in-bits='64' id='dc4077ef'/>
+      <class-decl name='key_preparsed_payload' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/key-type.h' line='32' column='1' id='dc409042'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='orig_description' type-id='80f4b756' visibility='default' filepath='include/linux/key-type.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='description' type-id='26a90f95' visibility='default' filepath='include/linux/key-type.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='payload' type-id='2888d74a' visibility='default' filepath='include/linux/key-type.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/key-type.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='datalen' type-id='b59d7dce' visibility='default' filepath='include/linux/key-type.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='quotalen' type-id='b59d7dce' visibility='default' filepath='include/linux/key-type.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='expiry' type-id='1afd27ac' visibility='default' filepath='include/linux/key-type.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='list_lru_node' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/list_lru.h' line='40' column='1' id='dc49d474'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/list_lru.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='lru' type-id='ff0d68dc' visibility='default' filepath='include/linux/list_lru.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='memcg_lrus' type-id='153e161b' visibility='default' filepath='include/linux/list_lru.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='nr_items' type-id='bd54fe1a' visibility='default' filepath='include/linux/list_lru.h' line='49' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3d34ccf8' size-in-bits='64' id='dc52084e'/>
+      <pointer-type-def type-id='16eae85b' size-in-bits='64' id='dc59a00f'/>
+      <class-decl name='pci_epc' size-in-bits='8384' is-struct='yes' visibility='default' filepath='include/linux/pci-epc.h' line='139' column='1' id='dc5abf9a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/pci-epc.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='pci_epf' type-id='72f469ec' visibility='default' filepath='include/linux/pci-epc.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='ops' type-id='ca58690c' visibility='default' filepath='include/linux/pci-epc.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='windows' type-id='5760a7e0' visibility='default' filepath='include/linux/pci-epc.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='mem' type-id='409d248a' visibility='default' filepath='include/linux/pci-epc.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='num_windows' type-id='f0981eeb' visibility='default' filepath='include/linux/pci-epc.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7648'>
+          <var-decl name='max_functions' type-id='f9b06939' visibility='default' filepath='include/linux/pci-epc.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='max_vfs' type-id='8bff8096' visibility='default' filepath='include/linux/pci-epc.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='group' type-id='97aff453' visibility='default' filepath='include/linux/pci-epc.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/linux/pci-epc.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='function_num_map' type-id='7359adad' visibility='default' filepath='include/linux/pci-epc.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='notifier' type-id='dbd58f6e' visibility='default' filepath='include/linux/pci-epc.h' line='152' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b82b9d3a' size-in-bits='64' id='dc5ce118'/>
+      <typedef-decl name='fsnotify_connp_t' type-id='994d9d61' filepath='include/linux/fsnotify_backend.h' line='343' column='1' id='dc5fa7f0'/>
+      <pointer-type-def type-id='e8649a20' size-in-bits='64' id='dc64b956'/>
+      <pointer-type-def type-id='cbc7b73b' size-in-bits='64' id='dc652fc3'/>
+      <function-type size-in-bits='64' id='dc678892'>
+        <parameter type-id='404b1300'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f3a60343' size-in-bits='64' id='dc6fffa7'/>
+      <pointer-type-def type-id='5bb9c75d' size-in-bits='64' id='dc750055'/>
+      <qualified-type-def type-id='206899b8' const='yes' id='dc7798f9'/>
+      <pointer-type-def type-id='82c5dbd5' size-in-bits='64' id='dc79526d'/>
+      <class-decl name='mtd_master' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/mtd/mtd.h' line='230' column='1' id='dc79bec3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='partitions_lock' type-id='925167dc' visibility='default' filepath='include/linux/mtd/mtd.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='chrdev_lock' type-id='925167dc' visibility='default' filepath='include/linux/mtd/mtd.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='suspended' type-id='f0981eeb' visibility='default' filepath='include/linux/mtd/mtd.h' line='233' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_urb_ctx' size-in-bits='2048' is-struct='yes' visibility='default' filepath='sound/usb/card.h' line='52' column='1' id='dc7e95e2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='urb' type-id='ab85b8f2' visibility='default' filepath='sound/usb/card.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='buffer_size' type-id='f0981eeb' visibility='default' filepath='sound/usb/card.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='subs' type-id='6b1642ae' visibility='default' filepath='sound/usb/card.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ep' type-id='d59ce2e7' visibility='default' filepath='sound/usb/card.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='index' type-id='95e97e5e' visibility='default' filepath='sound/usb/card.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='packets' type-id='95e97e5e' visibility='default' filepath='sound/usb/card.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='queued' type-id='95e97e5e' visibility='default' filepath='sound/usb/card.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='packet_size' type-id='70cd8d02' visibility='default' filepath='sound/usb/card.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='ready_list' type-id='72f469ec' visibility='default' filepath='sound/usb/card.h' line='61' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0124a2d0' size-in-bits='64' id='dc85f34a'/>
+      <function-type size-in-bits='64' id='dc8bbdd5'>
+        <parameter type-id='ecb0ce18'/>
+        <parameter type-id='b6a6ca60'/>
+        <parameter type-id='6b9b777a'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='1d115fd5' size-in-bits='64' id='dc91d125'/>
+      <array-type-def dimensions='1' type-id='1d2c2b85' size-in-bits='128' id='dc94a8df'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <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='dc9cc7c7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='d46544fa' visibility='default' filepath='include/linux/rbtree_latch.h' line='41' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fce58953' size-in-bits='64' id='dca6f5c7'/>
+      <function-type size-in-bits='64' id='dca78e2c'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3b1012d7' size-in-bits='64' id='dcab5203'/>
+      <pointer-type-def type-id='3ec9b040' size-in-bits='64' id='dcad5492'/>
+      <function-type size-in-bits='64' id='dcb10fbf'>
+        <parameter type-id='af5eeab9'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='dcb8e7d6'>
+        <parameter type-id='c0ced320'/>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='27675065'/>
+        <parameter type-id='2594b00f'/>
+        <parameter type-id='8504f260'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='bb05a47a' size-in-bits='64' id='dcbbb1fc'/>
+      <array-type-def dimensions='1' type-id='2448a865' size-in-bits='320' id='dcbdbf4a'>
+        <subrange length='10' type-id='7ff19f0f' id='487da03a'/>
+      </array-type-def>
+      <class-decl name='ZSTD_CCtx_s' size-in-bits='81152' is-struct='yes' visibility='default' filepath='lib/zstd/compress.c' line='53' column='1' id='dcc3dee3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nextSrc' type-id='d4bf2c54' visibility='default' filepath='lib/zstd/compress.c' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='base' type-id='d4bf2c54' visibility='default' filepath='lib/zstd/compress.c' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dictBase' type-id='d4bf2c54' visibility='default' filepath='lib/zstd/compress.c' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dictLimit' type-id='7d89f13e' visibility='default' filepath='lib/zstd/compress.c' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='lowLimit' type-id='7d89f13e' visibility='default' filepath='lib/zstd/compress.c' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='nextToUpdate' type-id='7d89f13e' visibility='default' filepath='lib/zstd/compress.c' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='nextToUpdate3' type-id='7d89f13e' visibility='default' filepath='lib/zstd/compress.c' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='hashLog3' type-id='7d89f13e' visibility='default' filepath='lib/zstd/compress.c' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='loadedDictEnd' type-id='7d89f13e' visibility='default' filepath='lib/zstd/compress.c' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='forceWindow' type-id='7d89f13e' visibility='default' filepath='lib/zstd/compress.c' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='forceRawDict' type-id='7d89f13e' visibility='default' filepath='lib/zstd/compress.c' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='stage' type-id='692e8e60' visibility='default' filepath='lib/zstd/compress.c' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='rep' type-id='68da9d9e' visibility='default' filepath='lib/zstd/compress.c' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='repToConfirm' type-id='68da9d9e' visibility='default' filepath='lib/zstd/compress.c' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='dictID' type-id='7d89f13e' visibility='default' filepath='lib/zstd/compress.c' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='params' type-id='b7b81df8' visibility='default' filepath='lib/zstd/compress.c' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='workSpace' type-id='eaa32e2f' visibility='default' filepath='lib/zstd/compress.c' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='workSpaceSize' type-id='b59d7dce' visibility='default' filepath='lib/zstd/compress.c' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='blockSize' type-id='b59d7dce' visibility='default' filepath='lib/zstd/compress.c' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='frameContentSize' type-id='7596b099' visibility='default' filepath='lib/zstd/compress.c' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='xxhState' type-id='e63c6643' visibility='default' filepath='lib/zstd/compress.c' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='customMem' type-id='4cf8679c' visibility='default' filepath='lib/zstd/compress.c' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='seqStore' type-id='a671e2af' visibility='default' filepath='lib/zstd/compress.c' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='hashTable' type-id='f96da5a1' visibility='default' filepath='lib/zstd/compress.c' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='hashTable3' type-id='f96da5a1' visibility='default' filepath='lib/zstd/compress.c' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='chainTable' type-id='f96da5a1' visibility='default' filepath='lib/zstd/compress.c' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='hufTable' type-id='df85110d' visibility='default' filepath='lib/zstd/compress.c' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='flagStaticTables' type-id='7d89f13e' visibility='default' filepath='lib/zstd/compress.c' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3808'>
+          <var-decl name='flagStaticHufTable' type-id='e17544f7' visibility='default' filepath='lib/zstd/compress.c' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='offcodeCTable' type-id='67bab923' visibility='default' filepath='lib/zstd/compress.c' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9824'>
+          <var-decl name='matchlengthCTable' type-id='6d6a6d7b' visibility='default' filepath='lib/zstd/compress.c' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21440'>
+          <var-decl name='litlengthCTable' type-id='bde81cd9' visibility='default' filepath='lib/zstd/compress.c' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='31968'>
+          <var-decl name='tmpCounters' type-id='985ad846' visibility='default' filepath='lib/zstd/compress.c' line='87' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='bd5c3911' const='yes' id='dcc94796'/>
+      <class-decl name='btf' is-struct='yes' visibility='default' is-declaration-only='yes' id='dccc7677'/>
+      <pointer-type-def type-id='6dd06c9d' size-in-bits='64' id='dccdb2b1'/>
+      <function-type size-in-bits='64' id='dccf0381'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='4adb0e6a'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='cf29c9b3'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='531c24d0' size-in-bits='128' id='dcd9fb4c'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='dcda8403'>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='15dfbd93'/>
+        <parameter type-id='1c936db9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='erase_info' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/mtd/mtd.h' line='30' column='1' id='dcddbb66'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='9c313c2d' visibility='default' filepath='include/linux/mtd/mtd.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='len' type-id='9c313c2d' visibility='default' filepath='include/linux/mtd/mtd.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fail_addr' type-id='9c313c2d' visibility='default' filepath='include/linux/mtd/mtd.h' line='33' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='printk_ringbuffer' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='87' column='1' id='dce1125a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='desc_ring' type-id='b24206b8' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='text_data_ring' type-id='c4e7c9d3' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='fail' type-id='f22a8abb' visibility='default' filepath='include/../kernel/printk/printk_ringbuffer.h' line='90' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a400949a' size-in-bits='64' id='dcea1110'/>
+      <pointer-type-def type-id='e185e6a6' size-in-bits='64' id='dcf452cc'/>
+      <class-decl name='ipv6_ac_socklist' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/if_inet6.h' line='140' column='1' id='dcf61f1a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='acl_addr' type-id='f6ed712a' visibility='default' filepath='include/net/if_inet6.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='acl_ifindex' type-id='95e97e5e' visibility='default' filepath='include/net/if_inet6.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='acl_next' type-id='0d2afef8' visibility='default' filepath='include/net/if_inet6.h' line='143' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__kernel_timex' size-in-bits='1664' is-struct='yes' visibility='default' filepath='include/uapi/linux/timex.h' line='102' column='1' id='dcf7564a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='modes' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/timex.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='offset' type-id='1eb56b1e' visibility='default' filepath='include/uapi/linux/timex.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='freq' type-id='1eb56b1e' visibility='default' filepath='include/uapi/linux/timex.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='maxerror' type-id='1eb56b1e' visibility='default' filepath='include/uapi/linux/timex.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='esterror' type-id='1eb56b1e' visibility='default' filepath='include/uapi/linux/timex.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='status' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/timex.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='constant' type-id='1eb56b1e' visibility='default' filepath='include/uapi/linux/timex.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='precision' type-id='1eb56b1e' visibility='default' filepath='include/uapi/linux/timex.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='tolerance' type-id='1eb56b1e' visibility='default' filepath='include/uapi/linux/timex.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='time' type-id='b5478d75' visibility='default' filepath='include/uapi/linux/timex.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='tick' type-id='1eb56b1e' visibility='default' filepath='include/uapi/linux/timex.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='ppsfreq' type-id='1eb56b1e' visibility='default' filepath='include/uapi/linux/timex.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='jitter' type-id='1eb56b1e' visibility='default' filepath='include/uapi/linux/timex.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='shift' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/timex.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='stabil' type-id='1eb56b1e' visibility='default' filepath='include/uapi/linux/timex.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='jitcnt' type-id='1eb56b1e' visibility='default' filepath='include/uapi/linux/timex.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='calcnt' type-id='1eb56b1e' visibility='default' filepath='include/uapi/linux/timex.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='errcnt' type-id='1eb56b1e' visibility='default' filepath='include/uapi/linux/timex.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='stbcnt' type-id='1eb56b1e' visibility='default' filepath='include/uapi/linux/timex.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='tai' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/timex.h' line='129' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d91d4c07' size-in-bits='64' id='dcf81beb'/>
+      <qualified-type-def type-id='a24978a1' const='yes' id='dcf92fe6'/>
+      <pointer-type-def type-id='156e19ea' size-in-bits='64' id='dcfe0974'/>
+      <function-type size-in-bits='64' id='dd082beb'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='bf3ef905'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='eea6b025'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='a51eeb2e' size-in-bits='64' id='dd0d6c38'/>
+      <pointer-type-def type-id='3d647412' size-in-bits='64' id='dd22f428'/>
+      <array-type-def dimensions='1' type-id='3f1a6b60' size-in-bits='480' id='dd2f9695'>
+        <subrange length='15' type-id='7ff19f0f' id='8484ba73'/>
+      </array-type-def>
+      <pointer-type-def type-id='9728e02a' size-in-bits='64' id='dd354844'/>
+      <function-type size-in-bits='64' id='dd378762'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='0200a298'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='skcipher_alg' size-in-bits='4096' is-struct='yes' visibility='default' filepath='include/crypto/skcipher.h' line='104' column='1' id='dd37d315'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='setkey' type-id='9e5416b4' visibility='default' filepath='include/crypto/skcipher.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='encrypt' type-id='1507ee2a' visibility='default' filepath='include/crypto/skcipher.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='decrypt' type-id='1507ee2a' visibility='default' filepath='include/crypto/skcipher.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='init' type-id='b298c88e' visibility='default' filepath='include/crypto/skcipher.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='exit' type-id='7997266f' visibility='default' filepath='include/crypto/skcipher.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='min_keysize' type-id='f0981eeb' visibility='default' filepath='include/crypto/skcipher.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='max_keysize' type-id='f0981eeb' visibility='default' filepath='include/crypto/skcipher.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ivsize' type-id='f0981eeb' visibility='default' filepath='include/crypto/skcipher.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='chunksize' type-id='f0981eeb' visibility='default' filepath='include/crypto/skcipher.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='walksize' type-id='f0981eeb' visibility='default' filepath='include/crypto/skcipher.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='base' type-id='514fe525' visibility='default' filepath='include/crypto/skcipher.h' line='118' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5178491e' size-in-bits='64' id='dd40abb0'/>
+      <function-type size-in-bits='64' id='dd42ab12'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='dd4fb9e4'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='354f7eb9'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='fscrypt_keyring' size-in-bits='8256' is-struct='yes' visibility='default' filepath='fs/crypto/keyring.c' line='30' column='1' id='dd510bd0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='fs/crypto/keyring.c' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='key_hashtable' type-id='64f4baeb' visibility='default' filepath='fs/crypto/keyring.c' line='38' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a7d74313' size-in-bits='64' id='dd575c43'/>
+      <class-decl name='cstate' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/net/slhc_vj.h' line='128' column='1' id='dd60e4df'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cs_this' type-id='b937765d' visibility='default' filepath='include/net/slhc_vj.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='initialized' type-id='b50a4934' visibility='default' filepath='include/net/slhc_vj.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='next' type-id='15436247' visibility='default' filepath='include/net/slhc_vj.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cs_ip' type-id='1edbefa6' visibility='default' filepath='include/net/slhc_vj.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='cs_tcp' type-id='7d506d7a' visibility='default' filepath='include/net/slhc_vj.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='cs_ipopt' type-id='b1888bf8' visibility='default' filepath='include/net/slhc_vj.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='cs_tcpopt' type-id='b1888bf8' visibility='default' filepath='include/net/slhc_vj.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='cs_hsize' type-id='95e97e5e' visibility='default' filepath='include/net/slhc_vj.h' line='136' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5c6f297d' size-in-bits='64' id='dd634c69'/>
+      <pointer-type-def type-id='b92ecbfe' size-in-bits='64' id='dd695fa4'/>
+      <pointer-type-def type-id='fa93dbe1' size-in-bits='64' id='dd6ccf15'/>
+      <function-type size-in-bits='64' id='dd703408'>
+        <parameter type-id='184ff936'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='3f78e6a9'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='0734a4f1' size-in-bits='64' id='dd717a75'/>
+      <class-decl name='uio_map' size-in-bits='832' is-struct='yes' visibility='default' filepath='drivers/uio/uio.c' line='42' column='1' id='dd72818d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='drivers/uio/uio.c' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='mem' type-id='93b82798' visibility='default' filepath='drivers/uio/uio.c' line='44' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ipc_namespace' size-in-bits='7936' is-struct='yes' visibility='default' filepath='include/linux/ipc_namespace.h' line='29' column='1' id='dd74f3ed'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ids' type-id='05487c29' visibility='default' filepath='include/linux/ipc_namespace.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6528'>
+          <var-decl name='sem_ctls' type-id='2020bac4' visibility='default' filepath='include/linux/ipc_namespace.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6656'>
+          <var-decl name='used_sems' type-id='95e97e5e' visibility='default' filepath='include/linux/ipc_namespace.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6688'>
+          <var-decl name='msg_ctlmax' type-id='f0981eeb' visibility='default' filepath='include/linux/ipc_namespace.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6720'>
+          <var-decl name='msg_ctlmnb' type-id='f0981eeb' visibility='default' filepath='include/linux/ipc_namespace.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6752'>
+          <var-decl name='msg_ctlmni' type-id='f0981eeb' visibility='default' filepath='include/linux/ipc_namespace.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6784'>
+          <var-decl name='msg_bytes' type-id='49178f86' visibility='default' filepath='include/linux/ipc_namespace.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6816'>
+          <var-decl name='msg_hdrs' type-id='49178f86' visibility='default' filepath='include/linux/ipc_namespace.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6848'>
+          <var-decl name='shm_ctlmax' type-id='b59d7dce' visibility='default' filepath='include/linux/ipc_namespace.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6912'>
+          <var-decl name='shm_ctlall' type-id='b59d7dce' visibility='default' filepath='include/linux/ipc_namespace.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6976'>
+          <var-decl name='shm_tot' type-id='7359adad' visibility='default' filepath='include/linux/ipc_namespace.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7040'>
+          <var-decl name='shm_ctlmni' type-id='95e97e5e' visibility='default' filepath='include/linux/ipc_namespace.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7072'>
+          <var-decl name='shm_rmid_forced' type-id='95e97e5e' visibility='default' filepath='include/linux/ipc_namespace.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7104'>
+          <var-decl name='ipcns_nb' type-id='9b08f7cd' visibility='default' filepath='include/linux/ipc_namespace.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='mq_mnt' type-id='549da823' visibility='default' filepath='include/linux/ipc_namespace.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='mq_queues_count' type-id='f0981eeb' visibility='default' filepath='include/linux/ipc_namespace.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7392'>
+          <var-decl name='mq_queues_max' type-id='f0981eeb' visibility='default' filepath='include/linux/ipc_namespace.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='mq_msg_max' type-id='f0981eeb' visibility='default' filepath='include/linux/ipc_namespace.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7456'>
+          <var-decl name='mq_msgsize_max' type-id='f0981eeb' visibility='default' filepath='include/linux/ipc_namespace.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='mq_msg_default' type-id='f0981eeb' visibility='default' filepath='include/linux/ipc_namespace.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7520'>
+          <var-decl name='mq_msgsize_default' type-id='f0981eeb' visibility='default' filepath='include/linux/ipc_namespace.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='user_ns' type-id='c0ced320' visibility='default' filepath='include/linux/ipc_namespace.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='ucounts' type-id='b1d4934a' visibility='default' filepath='include/linux/ipc_namespace.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='mnt_llist' type-id='c5ccfee8' visibility='default' filepath='include/linux/ipc_namespace.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='ns' type-id='99f367f2' visibility='default' filepath='include/linux/ipc_namespace.h' line='72' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='87e42d48' size-in-bits='64' id='dd75e72e'/>
+      <pointer-type-def type-id='fb2144e8' size-in-bits='64' id='dd787f72'/>
+      <pointer-type-def type-id='1f03d7fe' size-in-bits='64' id='dd810384'/>
+      <class-decl name='rt_mutex' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/rtmutex.h' line='57' column='1' id='dd823037'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rtmutex' type-id='45982b9d' visibility='default' filepath='include/linux/rtmutex.h' line='58' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='dd8f90df'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='kmsg_dump_iter' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/kmsg_dump.h' line='37' column='1' id='dd90dc09'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cur_seq' type-id='91ce1af9' visibility='default' filepath='include/linux/kmsg_dump.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='next_seq' type-id='91ce1af9' visibility='default' filepath='include/linux/kmsg_dump.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='local_t' type-id='3a37ffcb' filepath='include/asm-generic/local.h' line='25' column='1' id='dd91f264'/>
+      <function-type size-in-bits='64' id='dd9a5153'>
+        <parameter type-id='2ce52478'/>
+        <parameter type-id='2ce52478'/>
+        <return type-id='b59d7dce'/>
+      </function-type>
+      <class-decl name='netns_ipv6' size-in-bits='5632' is-struct='yes' visibility='default' filepath='include/net/netns/ipv6.h' line='62' column='1' id='dda16745'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ip6_dst_ops' type-id='32358857' visibility='default' filepath='include/net/netns/ipv6.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='sysctl' type-id='6c13064a' visibility='default' filepath='include/net/netns/ipv6.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='devconf_all' type-id='ca399350' visibility='default' filepath='include/net/netns/ipv6.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='devconf_dflt' type-id='ca399350' visibility='default' filepath='include/net/netns/ipv6.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='peers' type-id='01d310c2' visibility='default' filepath='include/net/netns/ipv6.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='fqdir' type-id='943ad75f' visibility='default' filepath='include/net/netns/ipv6.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='fib6_null_entry' type-id='fe454a75' visibility='default' filepath='include/net/netns/ipv6.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='ip6_null_entry' type-id='6ceb7782' visibility='default' filepath='include/net/netns/ipv6.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='rt6_stats' type-id='aca8a113' visibility='default' filepath='include/net/netns/ipv6.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='ip6_fib_timer' type-id='abe41e67' visibility='default' filepath='include/net/netns/ipv6.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='fib_table_hash' type-id='030d0b18' visibility='default' filepath='include/net/netns/ipv6.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='fib6_main_tbl' type-id='7156b317' visibility='default' filepath='include/net/netns/ipv6.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='fib6_walkers' type-id='72f469ec' visibility='default' filepath='include/net/netns/ipv6.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='fib6_walker_lock' type-id='ac16795b' visibility='default' filepath='include/net/netns/ipv6.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='fib6_gc_lock' type-id='fb4018a0' visibility='default' filepath='include/net/netns/ipv6.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4320'>
+          <var-decl name='ip6_rt_gc_expire' type-id='49178f86' visibility='default' filepath='include/net/netns/ipv6.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='ip6_rt_last_gc' type-id='7359adad' visibility='default' filepath='include/net/netns/ipv6.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='flowlabel_has_excl' type-id='002ac4a6' visibility='default' filepath='include/net/netns/ipv6.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4424'>
+          <var-decl name='fib6_has_custom_rules' type-id='b50a4934' visibility='default' filepath='include/net/netns/ipv6.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4448'>
+          <var-decl name='fib6_rules_require_fldissect' type-id='f0981eeb' visibility='default' filepath='include/net/netns/ipv6.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4480'>
+          <var-decl name='ip6_prohibit_entry' type-id='6ceb7782' visibility='default' filepath='include/net/netns/ipv6.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4544'>
+          <var-decl name='ip6_blk_hole_entry' type-id='6ceb7782' visibility='default' filepath='include/net/netns/ipv6.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4608'>
+          <var-decl name='fib6_local_tbl' type-id='7156b317' visibility='default' filepath='include/net/netns/ipv6.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4672'>
+          <var-decl name='fib6_rules_ops' type-id='a68064b1' visibility='default' filepath='include/net/netns/ipv6.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='icmp_sk' type-id='d0d57cc5' visibility='default' filepath='include/net/netns/ipv6.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='ndisc_sk' type-id='f772df6d' visibility='default' filepath='include/net/netns/ipv6.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4864'>
+          <var-decl name='tcp_sk' type-id='f772df6d' visibility='default' filepath='include/net/netns/ipv6.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4928'>
+          <var-decl name='igmp_sk' type-id='f772df6d' visibility='default' filepath='include/net/netns/ipv6.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='mc_autojoin_sk' type-id='f772df6d' visibility='default' filepath='include/net/netns/ipv6.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5056'>
+          <var-decl name='dev_addr_genid' type-id='49178f86' visibility='default' filepath='include/net/netns/ipv6.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5088'>
+          <var-decl name='fib6_sernum' type-id='49178f86' visibility='default' filepath='include/net/netns/ipv6.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='seg6_data' type-id='15b8a3be' visibility='default' filepath='include/net/netns/ipv6.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='notifier_ops' type-id='74f101b0' visibility='default' filepath='include/net/netns/ipv6.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='ip6mr_notifier_ops' type-id='74f101b0' visibility='default' filepath='include/net/netns/ipv6.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5312'>
+          <var-decl name='ipmr_seq' type-id='f0981eeb' visibility='default' filepath='include/net/netns/ipv6.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='ip6addrlbl_table' type-id='e7f43ffe' visibility='default' filepath='include/net/netns/ipv6.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='ioam6_data' type-id='cbd6e703' visibility='default' filepath='include/net/netns/ipv6.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/netns/ipv6.h' line='120' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ff7a347c' size-in-bits='64' id='ddacdfe6'/>
+      <class-decl name='nf_dccp_net' size-in-bits='352' is-struct='yes' visibility='default' filepath='include/net/netns/conntrack.h' line='54' column='1' id='ddb2f0ec'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dccp_loose' type-id='f9b06939' visibility='default' filepath='include/net/netns/conntrack.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='dccp_timeout' type-id='67c1c82c' visibility='default' filepath='include/net/netns/conntrack.h' line='56' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='fbc017ef' const='yes' id='ddb8523f'/>
+      <class-decl name='notification_limit' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/regulator/machine.h' line='88' column='1' id='ddc1e32e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prot' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/machine.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='err' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/machine.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='warn' type-id='95e97e5e' visibility='default' filepath='include/linux/regulator/machine.h' line='91' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4f56f8e2' size-in-bits='64' id='ddc27a70'/>
+      <pointer-type-def type-id='ebe3ac70' size-in-bits='64' id='ddcd89c6'/>
+      <pointer-type-def type-id='e5b46beb' size-in-bits='64' id='ddcee1af'/>
+      <pointer-type-def type-id='1f90162b' size-in-bits='64' id='ddd0a58b'/>
+      <class-decl name='dev_ifalias' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='1037' column='1' id='ddd212e6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rcuhead' type-id='e3d8ce29' visibility='default' filepath='include/linux/netdevice.h' line='1038' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ifalias' type-id='e84913bd' visibility='default' filepath='include/linux/netdevice.h' line='1039' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='92e8f939' size-in-bits='64' id='ddd322c1'/>
+      <class-decl name='user_struct' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/linux/sched/user.h' line='15' column='1' id='ddd7cbfe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='__count' type-id='64615833' visibility='default' filepath='include/linux/sched/user.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='epoll_watches' type-id='b92c8d0d' visibility='default' filepath='include/linux/sched/user.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='unix_inflight' type-id='7359adad' visibility='default' filepath='include/linux/sched/user.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pipe_bufs' type-id='f22a8abb' visibility='default' filepath='include/linux/sched/user.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='uidhash_node' type-id='03a4a074' visibility='default' filepath='include/linux/sched/user.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='uid' type-id='d80b72e6' visibility='default' filepath='include/linux/sched/user.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='locked_vm' type-id='f22a8abb' visibility='default' filepath='include/linux/sched/user.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='ratelimit' type-id='8b829a50' visibility='default' filepath='include/linux/sched/user.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/user.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/user.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='21dfe538' size-in-bits='64' id='dddca5ae'/>
+      <class-decl name='tm' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/time.h' line='36' column='1' id='dddf6ca2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tm_sec' type-id='95e97e5e' visibility='default' filepath='include/linux/time.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='tm_min' type-id='95e97e5e' visibility='default' filepath='include/linux/time.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tm_hour' type-id='95e97e5e' visibility='default' filepath='include/linux/time.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='tm_mday' type-id='95e97e5e' visibility='default' filepath='include/linux/time.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tm_mon' type-id='95e97e5e' visibility='default' filepath='include/linux/time.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tm_year' type-id='bd54fe1a' visibility='default' filepath='include/linux/time.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='tm_wday' type-id='95e97e5e' visibility='default' filepath='include/linux/time.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='tm_yday' type-id='95e97e5e' visibility='default' filepath='include/linux/time.h' line='55' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pps_kparams' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/pps.h' line='83' column='1' id='dde39212'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='api_version' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/pps.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='mode' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/pps.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='assert_off_tu' type-id='c03aaaf5' visibility='default' filepath='include/uapi/linux/pps.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='clear_off_tu' type-id='c03aaaf5' visibility='default' filepath='include/uapi/linux/pps.h' line='87' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3b0abfc6' size-in-bits='64' id='ddec2084'/>
+      <class-decl name='regmap' size-in-bits='5248' is-struct='yes' visibility='default' filepath='drivers/base/regmap/internal.h' line='49' column='1' id='ddf16879'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab5d3' visibility='default' filepath='drivers/base/regmap/internal.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='lock' type-id='a4d5c862' visibility='default' filepath='drivers/base/regmap/internal.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='unlock' type-id='cf202c75' visibility='default' filepath='drivers/base/regmap/internal.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='lock_arg' type-id='eaa32e2f' visibility='default' filepath='drivers/base/regmap/internal.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='alloc_flags' type-id='3eb7c31c' visibility='default' filepath='drivers/base/regmap/internal.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/base/regmap/internal.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='work_buf' type-id='eaa32e2f' visibility='default' filepath='drivers/base/regmap/internal.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='format' type-id='32ee7e31' visibility='default' filepath='drivers/base/regmap/internal.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='bus' type-id='00e96299' visibility='default' filepath='drivers/base/regmap/internal.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='bus_context' type-id='eaa32e2f' visibility='default' filepath='drivers/base/regmap/internal.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/base/regmap/internal.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='async' type-id='b50a4934' visibility='default' filepath='drivers/base/regmap/internal.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1568'>
+          <var-decl name='async_lock' type-id='fb4018a0' visibility='default' filepath='drivers/base/regmap/internal.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='async_waitq' type-id='b5ab048f' visibility='default' filepath='drivers/base/regmap/internal.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='async_list' type-id='72f469ec' visibility='default' filepath='drivers/base/regmap/internal.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='async_free' type-id='72f469ec' visibility='default' filepath='drivers/base/regmap/internal.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='async_ret' type-id='95e97e5e' visibility='default' filepath='drivers/base/regmap/internal.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2080'>
+          <var-decl name='debugfs_disable' type-id='b50a4934' visibility='default' filepath='drivers/base/regmap/internal.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='debugfs' type-id='27675065' visibility='default' filepath='drivers/base/regmap/internal.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='debugfs_name' type-id='80f4b756' visibility='default' filepath='drivers/base/regmap/internal.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='debugfs_reg_len' type-id='f0981eeb' visibility='default' filepath='drivers/base/regmap/internal.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2272'>
+          <var-decl name='debugfs_val_len' type-id='f0981eeb' visibility='default' filepath='drivers/base/regmap/internal.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='debugfs_tot_len' type-id='f0981eeb' visibility='default' filepath='drivers/base/regmap/internal.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='debugfs_off_cache' type-id='72f469ec' visibility='default' filepath='drivers/base/regmap/internal.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='cache_lock' type-id='925167dc' visibility='default' filepath='drivers/base/regmap/internal.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='max_register' type-id='f0981eeb' visibility='default' filepath='drivers/base/regmap/internal.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='writeable_reg' type-id='8e565e6d' visibility='default' filepath='drivers/base/regmap/internal.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='readable_reg' type-id='8e565e6d' visibility='default' filepath='drivers/base/regmap/internal.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='volatile_reg' type-id='8e565e6d' visibility='default' filepath='drivers/base/regmap/internal.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='precious_reg' type-id='8e565e6d' visibility='default' filepath='drivers/base/regmap/internal.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='writeable_noinc_reg' type-id='8e565e6d' visibility='default' filepath='drivers/base/regmap/internal.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='readable_noinc_reg' type-id='8e565e6d' visibility='default' filepath='drivers/base/regmap/internal.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='wr_table' type-id='76a7b3fe' visibility='default' filepath='drivers/base/regmap/internal.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='rd_table' type-id='76a7b3fe' visibility='default' filepath='drivers/base/regmap/internal.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='volatile_table' type-id='76a7b3fe' visibility='default' filepath='drivers/base/regmap/internal.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='precious_table' type-id='76a7b3fe' visibility='default' filepath='drivers/base/regmap/internal.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='wr_noinc_table' type-id='76a7b3fe' visibility='default' filepath='drivers/base/regmap/internal.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='rd_noinc_table' type-id='76a7b3fe' visibility='default' filepath='drivers/base/regmap/internal.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='reg_read' type-id='4893ffdf' visibility='default' filepath='drivers/base/regmap/internal.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='reg_write' type-id='db7eb22d' visibility='default' filepath='drivers/base/regmap/internal.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='reg_update_bits' type-id='3a0b4ecf' visibility='default' filepath='drivers/base/regmap/internal.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3904'>
+          <var-decl name='defer_caching' type-id='b50a4934' visibility='default' filepath='drivers/base/regmap/internal.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='read_flag_mask' type-id='7359adad' visibility='default' filepath='drivers/base/regmap/internal.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='write_flag_mask' type-id='7359adad' visibility='default' filepath='drivers/base/regmap/internal.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='reg_shift' type-id='95e97e5e' visibility='default' filepath='drivers/base/regmap/internal.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4128'>
+          <var-decl name='reg_stride' type-id='95e97e5e' visibility='default' filepath='drivers/base/regmap/internal.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='reg_stride_order' type-id='95e97e5e' visibility='default' filepath='drivers/base/regmap/internal.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='cache_ops' type-id='66755d9f' visibility='default' filepath='drivers/base/regmap/internal.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='cache_type' type-id='6e1356fd' visibility='default' filepath='drivers/base/regmap/internal.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4320'>
+          <var-decl name='cache_size_raw' type-id='f0981eeb' visibility='default' filepath='drivers/base/regmap/internal.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='cache_word_size' type-id='f0981eeb' visibility='default' filepath='drivers/base/regmap/internal.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4384'>
+          <var-decl name='num_reg_defaults' type-id='f0981eeb' visibility='default' filepath='drivers/base/regmap/internal.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='num_reg_defaults_raw' type-id='f0981eeb' visibility='default' filepath='drivers/base/regmap/internal.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4448'>
+          <var-decl name='cache_only' type-id='b50a4934' visibility='default' filepath='drivers/base/regmap/internal.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4456'>
+          <var-decl name='cache_bypass' type-id='b50a4934' visibility='default' filepath='drivers/base/regmap/internal.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4464'>
+          <var-decl name='cache_free' type-id='b50a4934' visibility='default' filepath='drivers/base/regmap/internal.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4480'>
+          <var-decl name='reg_defaults' type-id='629ca5cb' visibility='default' filepath='drivers/base/regmap/internal.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4544'>
+          <var-decl name='reg_defaults_raw' type-id='eaa32e2f' visibility='default' filepath='drivers/base/regmap/internal.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4608'>
+          <var-decl name='cache' type-id='eaa32e2f' visibility='default' filepath='drivers/base/regmap/internal.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4672'>
+          <var-decl name='cache_dirty' type-id='b50a4934' visibility='default' filepath='drivers/base/regmap/internal.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4680'>
+          <var-decl name='no_sync_defaults' type-id='b50a4934' visibility='default' filepath='drivers/base/regmap/internal.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='patch' type-id='f94cf1ff' visibility='default' filepath='drivers/base/regmap/internal.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='patch_regs' type-id='95e97e5e' visibility='default' filepath='drivers/base/regmap/internal.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4832'>
+          <var-decl name='use_single_read' type-id='b50a4934' visibility='default' filepath='drivers/base/regmap/internal.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4840'>
+          <var-decl name='use_single_write' type-id='b50a4934' visibility='default' filepath='drivers/base/regmap/internal.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4848'>
+          <var-decl name='can_multi_write' type-id='b50a4934' visibility='default' filepath='drivers/base/regmap/internal.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4864'>
+          <var-decl name='max_raw_read' type-id='b59d7dce' visibility='default' filepath='drivers/base/regmap/internal.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4928'>
+          <var-decl name='max_raw_write' type-id='b59d7dce' visibility='default' filepath='drivers/base/regmap/internal.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='range_tree' type-id='dec44472' visibility='default' filepath='drivers/base/regmap/internal.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5056'>
+          <var-decl name='selector_work_buf' type-id='eaa32e2f' visibility='default' filepath='drivers/base/regmap/internal.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='hwlock' type-id='0cb0b26f' visibility='default' filepath='drivers/base/regmap/internal.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='can_sleep' type-id='b50a4934' visibility='default' filepath='drivers/base/regmap/internal.h' line='170' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='9a1ac43a' size-in-bits='192' id='ddf292bf'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <pointer-type-def type-id='364c344e' size-in-bits='64' id='ddf6796c'/>
+      <pointer-type-def type-id='f1828bdc' size-in-bits='64' id='ddfb71fa'/>
+      <class-decl name='mnt_namespace' size-in-bits='960' is-struct='yes' visibility='default' filepath='fs/mount.h' line='8' column='1' id='de031042'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ns' type-id='99f367f2' visibility='default' filepath='fs/mount.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='root' type-id='b749c0b0' visibility='default' filepath='fs/mount.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='fs/mount.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ns_lock' type-id='fb4018a0' visibility='default' filepath='fs/mount.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='user_ns' type-id='c0ced320' visibility='default' filepath='fs/mount.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ucounts' type-id='b1d4934a' visibility='default' filepath='fs/mount.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='seq' type-id='91ce1af9' visibility='default' filepath='fs/mount.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='poll' type-id='b5ab048f' visibility='default' filepath='fs/mount.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='event' type-id='91ce1af9' visibility='default' filepath='fs/mount.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='mounts' type-id='f0981eeb' visibility='default' filepath='fs/mount.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='pending_mounts' type-id='f0981eeb' visibility='default' filepath='fs/mount.h' line='24' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='32ea5aae' size-in-bits='64' id='de0565b8'/>
+      <function-type size-in-bits='64' id='de10cebd'>
+        <parameter type-id='95316552'/>
+        <parameter type-id='06b2cd14'/>
+        <return type-id='27f3f5d8'/>
+      </function-type>
+      <pointer-type-def type-id='e84b031a' size-in-bits='64' id='de160490'/>
+      <class-decl name='dev_pm_opp_info' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/pm_opp.h' line='64' column='1' id='de175b0d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rate' type-id='7359adad' visibility='default' filepath='include/linux/pm_opp.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='supplies' type-id='614c5efc' visibility='default' filepath='include/linux/pm_opp.h' line='66' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='158c8c35' size-in-bits='256' id='de1e7c27'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <class-decl name='ZSTD_DCtx_s' size-in-bits='1247744' is-struct='yes' visibility='default' filepath='lib/zstd/decompress.c' line='77' column='1' id='de238d9c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='LLTptr' type-id='a689af97' visibility='default' filepath='lib/zstd/decompress.c' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='MLTptr' type-id='a689af97' visibility='default' filepath='lib/zstd/decompress.c' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='OFTptr' type-id='a689af97' visibility='default' filepath='lib/zstd/decompress.c' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='HUFptr' type-id='759b0666' visibility='default' filepath='lib/zstd/decompress.c' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='entropy' type-id='a51b392f' visibility='default' filepath='lib/zstd/decompress.c' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='197120'>
+          <var-decl name='previousDstEnd' type-id='eaa32e2f' visibility='default' filepath='lib/zstd/decompress.c' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='197184'>
+          <var-decl name='base' type-id='eaa32e2f' visibility='default' filepath='lib/zstd/decompress.c' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='197248'>
+          <var-decl name='vBase' type-id='eaa32e2f' visibility='default' filepath='lib/zstd/decompress.c' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='197312'>
+          <var-decl name='dictEnd' type-id='eaa32e2f' visibility='default' filepath='lib/zstd/decompress.c' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='197376'>
+          <var-decl name='expected' type-id='b59d7dce' visibility='default' filepath='lib/zstd/decompress.c' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='197440'>
+          <var-decl name='fParams' type-id='eefdc867' visibility='default' filepath='lib/zstd/decompress.c' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='197632'>
+          <var-decl name='bType' type-id='abb12f09' visibility='default' filepath='lib/zstd/decompress.c' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='197664'>
+          <var-decl name='stage' type-id='4048b40e' visibility='default' filepath='lib/zstd/decompress.c' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='197696'>
+          <var-decl name='litEntropy' type-id='7d89f13e' visibility='default' filepath='lib/zstd/decompress.c' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='197728'>
+          <var-decl name='fseEntropy' type-id='7d89f13e' visibility='default' filepath='lib/zstd/decompress.c' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='197760'>
+          <var-decl name='xxhState' type-id='e63c6643' visibility='default' filepath='lib/zstd/decompress.c' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='198400'>
+          <var-decl name='headerSize' type-id='b59d7dce' visibility='default' filepath='lib/zstd/decompress.c' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='198464'>
+          <var-decl name='dictID' type-id='7d89f13e' visibility='default' filepath='lib/zstd/decompress.c' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='198528'>
+          <var-decl name='litPtr' type-id='d4bf2c54' visibility='default' filepath='lib/zstd/decompress.c' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='198592'>
+          <var-decl name='customMem' type-id='4cf8679c' visibility='default' filepath='lib/zstd/decompress.c' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='198784'>
+          <var-decl name='litSize' type-id='b59d7dce' visibility='default' filepath='lib/zstd/decompress.c' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='198848'>
+          <var-decl name='rleSize' type-id='b59d7dce' visibility='default' filepath='lib/zstd/decompress.c' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='198912'>
+          <var-decl name='litBuffer' type-id='e674f1f8' visibility='default' filepath='lib/zstd/decompress.c' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1247552'>
+          <var-decl name='headerBuffer' type-id='3a4899d0' visibility='default' filepath='lib/zstd/decompress.c' line='101' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='848612dc' const='yes' id='de25fc7b'/>
+      <function-type size-in-bits='64' id='de28612c'>
+        <parameter type-id='ecb0ce18'/>
+        <parameter type-id='6b9b777a'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='c8e0fb8e' size-in-bits='64' id='de2c232c'/>
+      <pointer-type-def type-id='30c83839' size-in-bits='64' id='de3045e9'/>
+      <class-decl name='binder_priority' size-in-bits='64' is-struct='yes' visibility='default' filepath='drivers/android/binder_internal.h' line='343' column='1' id='de30810e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sched_policy' type-id='f0981eeb' visibility='default' filepath='drivers/android/binder_internal.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='prio' type-id='95e97e5e' visibility='default' filepath='drivers/android/binder_internal.h' line='345' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='de345e44'>
+        <parameter type-id='9f763fd8'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='b53e8dbb'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='3d5d0103' size-in-bits='64' id='de36db77'/>
+      <pointer-type-def type-id='719148b2' size-in-bits='64' id='de4fef50'/>
+      <pointer-type-def type-id='32672900' size-in-bits='64' id='de5067ca'/>
+      <pointer-type-def type-id='092ff2b3' size-in-bits='64' id='de50c37f'/>
+      <qualified-type-def type-id='fa21a7e9' const='yes' id='de5211b8'/>
+      <enum-decl name='fs_context_phase' filepath='include/linux/fs_context.h' line='38' column='1' id='de54989f'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='FS_CONTEXT_CREATE_PARAMS' value='0'/>
+        <enumerator name='FS_CONTEXT_CREATING' value='1'/>
+        <enumerator name='FS_CONTEXT_AWAITING_MOUNT' value='2'/>
+        <enumerator name='FS_CONTEXT_AWAITING_RECONF' value='3'/>
+        <enumerator name='FS_CONTEXT_RECONF_PARAMS' value='4'/>
+        <enumerator name='FS_CONTEXT_RECONFIGURING' value='5'/>
+        <enumerator name='FS_CONTEXT_FAILED' value='6'/>
+      </enum-decl>
+      <class-decl name='tuner_setup' is-struct='yes' visibility='default' is-declaration-only='yes' id='de57f169'/>
+      <pointer-type-def type-id='77fe651f' size-in-bits='64' id='de5dab7b'/>
+      <pointer-type-def type-id='fad8dcd1' size-in-bits='64' id='de63df21'/>
+      <qualified-type-def type-id='a81e67e2' const='yes' id='de640095'/>
+      <class-decl name='usb_class_driver' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1310' column='1' id='de68658d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/usb.h' line='1311' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='devnode' type-id='8cd77b5f' visibility='default' filepath='include/linux/usb.h' line='1312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fops' type-id='61758ee5' visibility='default' filepath='include/linux/usb.h' line='1313' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='minor_base' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1314' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e85fe596' size-in-bits='64' id='de6b64d0'/>
+      <function-type size-in-bits='64' id='de6e2151'>
+        <parameter type-id='5474f420'/>
+        <parameter type-id='bbaf3419'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='de7351ca'>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='df8c866a' size-in-bits='64' id='de7e28ec'/>
+      <class-decl name='led_pattern' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/leds.h' line='583' column='1' id='de7f2597'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='delta_t' type-id='19c2251e' visibility='default' filepath='include/linux/leds.h' line='584' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='brightness' type-id='95e97e5e' visibility='default' filepath='include/linux/leds.h' line='585' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='de826e86'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='2f4512ea'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e3aee705' size-in-bits='64' id='de885ea5'/>
+      <pointer-type-def type-id='d23b37cf' size-in-bits='64' id='de90632b'/>
+      <qualified-type-def type-id='807869d3' const='yes' id='de9ce8e8'/>
+      <function-type size-in-bits='64' id='dea13b10'>
+        <parameter type-id='7544e824'/>
+        <parameter type-id='1c475548'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='macsec_rx_sc' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/net/macsec.h' line='143' column='1' id='dea29f5f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='ec973d27' visibility='default' filepath='include/net/macsec.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sci' type-id='8c0f9db2' visibility='default' filepath='include/net/macsec.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='active' type-id='b50a4934' visibility='default' filepath='include/net/macsec.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sa' type-id='bcebf8c5' visibility='default' filepath='include/net/macsec.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='stats' type-id='b4f312f9' visibility='default' filepath='include/net/macsec.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/net/macsec.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/net/macsec.h' line='150' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e74568be' size-in-bits='64' id='deb31178'/>
+      <class-decl name='fib_nh' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/net/ip_fib.h' line='103' column='1' id='deb3203d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nh_common' type-id='e1f89457' visibility='default' filepath='include/net/ip_fib.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='nh_hash' type-id='03a4a074' visibility='default' filepath='include/net/ip_fib.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='nh_parent' type-id='09dcd1bf' visibility='default' filepath='include/net/ip_fib.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='nh_saddr' type-id='78a133c2' visibility='default' filepath='include/net/ip_fib.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='nh_saddr_genid' type-id='95e97e5e' visibility='default' filepath='include/net/ip_fib.h' line='111' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c039af2e' size-in-bits='64' id='debb4ee8'/>
+      <typedef-decl name='scmi_prot_init_ph_fn_t' type-id='039c1bc4' filepath='drivers/firmware/arm_scmi/common.h' line='281' column='1' id='dec3e96a'/>
+      <class-decl name='rb_root' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/rbtree_types.h' line='12' column='1' id='dec44472'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rb_node' type-id='e6532500' visibility='default' filepath='include/linux/rbtree_types.h' line='13' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='scsi_request' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/scsi/scsi_request.h' line='9' column='1' id='dec7ed8d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='__cmd' type-id='92a46553' visibility='default' filepath='include/scsi/scsi_request.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cmd' type-id='cf536864' visibility='default' filepath='include/scsi/scsi_request.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cmd_len' type-id='8efea9e5' visibility='default' filepath='include/scsi/scsi_request.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='result' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_request.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='sense_len' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_request.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='resid_len' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_request.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='retries' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_request.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='sense' type-id='eaa32e2f' visibility='default' filepath='include/scsi/scsi_request.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='41c81272' size-in-bits='64' id='dece2c04'/>
+      <class-decl name='v4l2_pix_format_mplane' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2279' column='1' id='dece967b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pixelformat' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='field' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='colorspace' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='plane_fmt' type-id='15b94482' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='num_planes' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2287' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1448'>
+          <var-decl name='flags' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1456'>
+          <var-decl name='' type-id='ac5ab600' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1464'>
+          <var-decl name='quantization' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='xfer_func' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1480'>
+          <var-decl name='reserved' type-id='c20b850f' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2295' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fc0b88d2' size-in-bits='64' id='ded4959c'/>
+      <class-decl name='nh_res_table' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/net/nexthop.h' line='80' column='1' id='ded6d889'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='net' type-id='a2bff676' visibility='default' filepath='include/net/nexthop.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nhg_id' type-id='19c2251e' visibility='default' filepath='include/net/nexthop.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='upkeep_dw' type-id='5ad6e0ef' visibility='default' filepath='include/net/nexthop.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='uw_nh_entries' type-id='72f469ec' visibility='default' filepath='include/net/nexthop.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='unbalanced_since' type-id='7359adad' visibility='default' filepath='include/net/nexthop.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='idle_timer' type-id='19c2251e' visibility='default' filepath='include/net/nexthop.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1440'>
+          <var-decl name='unbalanced_timer' type-id='19c2251e' visibility='default' filepath='include/net/nexthop.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='num_nh_buckets' type-id='1dc6a898' visibility='default' filepath='include/net/nexthop.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='nh_buckets' type-id='e16c0b0d' visibility='default' filepath='include/net/nexthop.h' line='95' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='dedd4d90'>
+        <parameter type-id='85196e3f'/>
+        <parameter type-id='08496218'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='shrink_control' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/shrinker.h' line='14' column='1' id='dee16bbe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='gfp_mask' type-id='3eb7c31c' visibility='default' filepath='include/linux/shrinker.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='nid' type-id='95e97e5e' visibility='default' filepath='include/linux/shrinker.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nr_to_scan' type-id='7359adad' visibility='default' filepath='include/linux/shrinker.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='nr_scanned' type-id='7359adad' visibility='default' filepath='include/linux/shrinker.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='memcg' type-id='223696fb' visibility='default' filepath='include/linux/shrinker.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='android_oem_data1' type-id='20a130cf' visibility='default' filepath='include/linux/shrinker.h' line='36' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='48d225c1' size-in-bits='64' id='dee53645'/>
+      <function-type size-in-bits='64' id='dee7c78d'>
+        <parameter type-id='8504f260'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='memcg_kmem_state' filepath='include/linux/memcontrol.h' line='184' column='1' id='def0995c'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='KMEM_NONE' value='0'/>
+        <enumerator name='KMEM_ALLOCATED' value='1'/>
+        <enumerator name='KMEM_ONLINE' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='c00013f4' size-in-bits='64' id='def135ae'/>
+      <array-type-def dimensions='1' type-id='1c475548' size-in-bits='infinite' id='def29f5c'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <class-decl name='module_sect_attr' size-in-bits='576' is-struct='yes' visibility='default' filepath='kernel/module.c' line='1489' column='1' id='def413c9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='battr' type-id='d83a2db1' visibility='default' filepath='kernel/module.c' line='1490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='address' type-id='7359adad' visibility='default' filepath='kernel/module.c' line='1491' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='hlist_bl_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/list_bl.h' line='34' column='1' id='def98e71'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='first' type-id='d09d4bab' visibility='default' filepath='include/linux/list_bl.h' line='35' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='aca51d4a' size-in-bits='64' id='deff2378'/>
+      <function-type size-in-bits='64' id='df042c09'>
+        <parameter type-id='74b427eb'/>
+        <parameter type-id='d1a6cf39'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='0f4b4f92' size-in-bits='64' id='df0f254c'/>
+      <class-decl name='drm_gem_object_funcs' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/drm/drm_gem.h' line='48' column='1' id='df20b624'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='free' type-id='9126441b' visibility='default' filepath='include/drm/drm_gem.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='open' type-id='8e2012e0' visibility='default' filepath='include/drm/drm_gem.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='close' type-id='133b86a1' visibility='default' filepath='include/drm/drm_gem.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='print_info' type-id='1c51ec16' visibility='default' filepath='include/drm/drm_gem.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='export' type-id='a4e2d046' visibility='default' filepath='include/drm/drm_gem.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='pin' type-id='12e23e5c' visibility='default' filepath='include/drm/drm_gem.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='unpin' type-id='9126441b' visibility='default' filepath='include/drm/drm_gem.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='get_sg_table' type-id='32774f90' visibility='default' filepath='include/drm/drm_gem.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='vmap' type-id='0e7b22c5' visibility='default' filepath='include/drm/drm_gem.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='vunmap' type-id='d73baa46' visibility='default' filepath='include/drm/drm_gem.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='mmap' type-id='516294a7' visibility='default' filepath='include/drm/drm_gem.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='vm_ops' type-id='9be87662' visibility='default' filepath='include/drm/drm_gem.h' line='174' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1731e728' size-in-bits='64' id='df3f4fce'/>
+      <typedef-decl name='snd_pcm_uframes_t' type-id='7359adad' filepath='include/uapi/sound/asound.h' line='163' column='1' id='df412e35'/>
+      <pointer-type-def type-id='aa70b8e2' size-in-bits='64' id='df416a94'/>
+      <pointer-type-def type-id='311626f1' size-in-bits='64' id='df4b7819'/>
+      <pointer-type-def type-id='0393750b' size-in-bits='64' id='df4bf537'/>
+      <function-type size-in-bits='64' id='df510f4a'>
+        <parameter type-id='226853d2'/>
+        <parameter type-id='f74174a4'/>
+        <parameter type-id='bd54fe1a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='df587ad7'>
+        <parameter type-id='87447c2d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c14fce5d' size-in-bits='64' id='df58a979'/>
+      <function-type size-in-bits='64' id='df58f5a2'>
+        <parameter type-id='10216dc5'/>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='crypto_shash' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/crypto/hash.h' line='239' column='1' id='df5e8716'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='descsize' type-id='f0981eeb' visibility='default' filepath='include/crypto/hash.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='base' type-id='0328c8b6' visibility='default' filepath='include/crypto/hash.h' line='241' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='iio_trigger_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/iio/trigger.h' line='32' column='1' id='df5f1cc8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='set_trigger_state' type-id='b8aaeb8e' visibility='default' filepath='include/linux/iio/trigger.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reenable' type-id='8cf5c486' visibility='default' filepath='include/linux/iio/trigger.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='validate_device' type-id='ecbc0920' visibility='default' filepath='include/linux/iio/trigger.h' line='35' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='30b9286d' size-in-bits='64' id='df5f3f5d'/>
+      <function-type size-in-bits='64' id='df6447f0'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='bf742373'/>
+        <parameter type-id='1e6bdea2'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='xhci_ring' size-in-bits='1024' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1624' column='1' id='df67c5d0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='first_seg' type-id='9689f21b' visibility='default' filepath='drivers/usb/host/xhci.h' line='1625' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='last_seg' type-id='9689f21b' visibility='default' filepath='drivers/usb/host/xhci.h' line='1626' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='enqueue' type-id='2e0bb6d4' visibility='default' filepath='drivers/usb/host/xhci.h' line='1627' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='enq_seg' type-id='9689f21b' visibility='default' filepath='drivers/usb/host/xhci.h' line='1628' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dequeue' type-id='2e0bb6d4' visibility='default' filepath='drivers/usb/host/xhci.h' line='1629' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='deq_seg' type-id='9689f21b' visibility='default' filepath='drivers/usb/host/xhci.h' line='1630' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='td_list' type-id='72f469ec' visibility='default' filepath='drivers/usb/host/xhci.h' line='1631' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='cycle_state' type-id='19c2251e' visibility='default' filepath='drivers/usb/host/xhci.h' line='1637' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='err_count' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1638' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='stream_id' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1639' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='num_segs' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1640' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='num_trbs_free' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1641' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='num_trbs_free_temp' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1642' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='bounce_buf_len' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='1643' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='type' type-id='b61681fc' visibility='default' filepath='drivers/usb/host/xhci.h' line='1644' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='last_td_was_short' type-id='b50a4934' visibility='default' filepath='drivers/usb/host/xhci.h' line='1645' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='trb_address_map' type-id='60075f2a' visibility='default' filepath='drivers/usb/host/xhci.h' line='1646' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/usb/host/xhci.h' line='1648' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='drivers/usb/host/xhci.h' line='1649' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5efd72bb' size-in-bits='64' id='df697557'/>
+      <array-type-def dimensions='1' type-id='a9d71093' size-in-bits='480' id='df6d2206'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <typedef-decl name='pgdval_t' type-id='91ce1af9' filepath='arch/arm64/include/asm/pgtable-types.h' line='18' column='1' id='df6d7e75'/>
+      <array-type-def dimensions='1' type-id='2f162548' size-in-bits='64' id='df700ea3'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='2f162548' size-in-bits='32' id='df785d68'>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+      </array-type-def>
+      <class-decl name='frame_vector' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/media/frame_vector.h' line='6' column='1' id='df80a1e0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nr_allocated' type-id='f0981eeb' visibility='default' filepath='include/media/frame_vector.h' line='7' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='nr_frames' type-id='f0981eeb' visibility='default' filepath='include/media/frame_vector.h' line='8' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='got_ref' type-id='b50a4934' visibility='default' filepath='include/media/frame_vector.h' line='9' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='is_pfns' type-id='b50a4934' visibility='default' filepath='include/media/frame_vector.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ptrs' type-id='baf98fd3' visibility='default' filepath='include/media/frame_vector.h' line='11' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='i3c_dev_desc' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/i3c/master.h' line='207' column='1' id='df81074e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='common' type-id='e92b32c3' visibility='default' filepath='include/linux/i3c/master.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='info' type-id='3bd0350e' visibility='default' filepath='include/linux/i3c/master.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ibi_lock' type-id='925167dc' visibility='default' filepath='include/linux/i3c/master.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='ibi' type-id='ccfb5911' visibility='default' filepath='include/linux/i3c/master.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='dev' type-id='c062d7a5' visibility='default' filepath='include/linux/i3c/master.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='boardinfo' type-id='911e5634' visibility='default' filepath='include/linux/i3c/master.h' line='213' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b54ce7ac' size-in-bits='64' id='df85110d'/>
+      <pointer-type-def type-id='42adec60' size-in-bits='64' id='df8629d6'/>
+      <function-type size-in-bits='64' id='df8c866a'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='af02a266'/>
+        <parameter type-id='7d3cd834'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='df961c58'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='0081e2ad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='26499861' size-in-bits='64' id='df9e6665'/>
+      <pointer-type-def type-id='93db4230' size-in-bits='64' id='df9eab8a'/>
+      <pointer-type-def type-id='78c92961' size-in-bits='64' id='dfa456d5'/>
+      <class-decl name='bio_set' size-in-bits='2368' is-struct='yes' visibility='default' filepath='include/linux/bio.h' line='664' column='1' id='dfa886b2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bio_slab' type-id='f3b4aca8' visibility='default' filepath='include/linux/bio.h' line='665' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='front_pad' type-id='f0981eeb' visibility='default' filepath='include/linux/bio.h' line='666' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cache' type-id='38bf79a4' visibility='default' filepath='include/linux/bio.h' line='671' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bio_pool' type-id='2745fad8' visibility='default' filepath='include/linux/bio.h' line='673' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='bvec_pool' type-id='2745fad8' visibility='default' filepath='include/linux/bio.h' line='674' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='back_pad' type-id='f0981eeb' visibility='default' filepath='include/linux/bio.h' line='680' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='rescue_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/bio.h' line='685' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='rescue_list' type-id='096280be' visibility='default' filepath='include/linux/bio.h' line='686' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='rescue_work' type-id='ef9025d0' visibility='default' filepath='include/linux/bio.h' line='687' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='rescue_workqueue' type-id='242e3d19' visibility='default' filepath='include/linux/bio.h' line='688' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='cpuhp_dead' type-id='03a4a074' visibility='default' filepath='include/linux/bio.h' line='693' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/bio.h' line='695' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/bio.h' line='696' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/bio.h' line='697' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/bio.h' line='698' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='arch_msi_msg_addr_hi' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/msi.h' line='17' column='1' id='dfb39e17'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='address_hi' type-id='19c2251e' visibility='default' filepath='include/linux/msi.h' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='kmem_cache_order_objects' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/slub_def.h' line='83' column='1' id='dfc42026'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='x' type-id='f0981eeb' visibility='default' filepath='include/linux/slub_def.h' line='84' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5243924f' size-in-bits='64' id='dfcac4bb'/>
+      <function-type size-in-bits='64' id='dfce8aa4'>
+        <parameter type-id='43c38462'/>
+        <parameter type-id='d8e6b335'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='71fd1591' size-in-bits='64' id='dfd1cc3d'/>
+      <pointer-type-def type-id='570cf6cf' size-in-bits='64' id='dfdc5e57'/>
+      <function-type size-in-bits='64' id='dfde97ed'>
+        <parameter type-id='27f3f5d8'/>
+        <parameter type-id='4f22192a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='dfe1421c'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='6db6a1be'/>
+        <parameter type-id='5a19a9fe'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='dfe7e6ee'>
+        <parameter type-id='27675065'/>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='27675065'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='0328c8b6' size-in-bits='64' id='dfeb7f6c'/>
+      <function-type size-in-bits='64' id='dfed847a'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='task_rss_stat' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/linux/mm_types_task.h' line='54' column='1' id='dfedb05a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='events' type-id='95e97e5e' visibility='default' filepath='include/linux/mm_types_task.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='count' type-id='2020bac4' visibility='default' filepath='include/linux/mm_types_task.h' line='56' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='92892da6' size-in-bits='64' id='dffc7428'/>
+      <pointer-type-def type-id='7f73c08c' size-in-bits='64' id='e003b5ce'/>
+      <pointer-type-def type-id='42b16dba' size-in-bits='64' id='e0087b68'/>
+      <class-decl name='drm_crtc_funcs' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/drm/drm_crtc.h' line='416' column='1' id='e019c76b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reset' type-id='a50616ee' visibility='default' filepath='include/drm/drm_crtc.h' line='427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cursor_set' type-id='601c5a9c' visibility='default' filepath='include/drm/drm_crtc.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cursor_set2' type-id='3df34728' visibility='default' filepath='include/drm/drm_crtc.h' line='472' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cursor_move' type-id='7f9fdb63' visibility='default' filepath='include/drm/drm_crtc.h' line='492' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='gamma_set' type-id='ceacf83c' visibility='default' filepath='include/drm/drm_crtc.h' line='507' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='destroy' type-id='a50616ee' visibility='default' filepath='include/drm/drm_crtc.h' line='518' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='set_config' type-id='4fc3b355' visibility='default' filepath='include/drm/drm_crtc.h' line='534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='page_flip' type-id='5ad57c34' visibility='default' filepath='include/drm/drm_crtc.h' line='590' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='page_flip_target' type-id='ccd6746f' visibility='default' filepath='include/drm/drm_crtc.h' line='609' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='set_property' type-id='e1038882' visibility='default' filepath='include/drm/drm_crtc.h' line='629' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='atomic_duplicate_state' type-id='d664ced0' visibility='default' filepath='include/drm/drm_crtc.h' line='663' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='atomic_destroy_state' type-id='a3c6fb36' visibility='default' filepath='include/drm/drm_crtc.h' line='673' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='atomic_set_property' type-id='102ab76c' visibility='default' filepath='include/drm/drm_crtc.h' line='718' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='atomic_get_property' type-id='c0240e5c' visibility='default' filepath='include/drm/drm_crtc.h' line='740' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='late_register' type-id='dfd1cc3d' visibility='default' filepath='include/drm/drm_crtc.h' line='758' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='early_unregister' type-id='a50616ee' visibility='default' filepath='include/drm/drm_crtc.h' line='769' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='set_crc_source' type-id='ee3b6114' visibility='default' filepath='include/drm/drm_crtc.h' line='798' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='verify_crc_source' type-id='31163f5a' visibility='default' filepath='include/drm/drm_crtc.h' line='814' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='get_crc_sources' type-id='bda384fe' visibility='default' filepath='include/drm/drm_crtc.h' line='836' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='atomic_print_state' type-id='1f51f8f7' visibility='default' filepath='include/drm/drm_crtc.h' line='848' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='get_vblank_counter' type-id='1dd1747d' visibility='default' filepath='include/drm/drm_crtc.h' line='875' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='enable_vblank' type-id='dfd1cc3d' visibility='default' filepath='include/drm/drm_crtc.h' line='888' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='disable_vblank' type-id='a50616ee' visibility='default' filepath='include/drm/drm_crtc.h' line='896' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='get_vblank_timestamp' type-id='a928100c' visibility='default' filepath='include/drm/drm_crtc.h' line='934' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='69f13be2' size-in-bits='64' id='e0238b7c'/>
+      <array-type-def dimensions='1' type-id='95e97e5e' size-in-bits='96' id='e024279b'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <qualified-type-def type-id='95e97e5e' volatile='yes' id='e024ff18'/>
+      <pointer-type-def type-id='28073f2a' size-in-bits='64' id='e02525e8'/>
+      <pointer-type-def type-id='cf2e8db8' size-in-bits='64' id='e02e2a9e'/>
+      <class-decl name='mem_cgroup_reclaim_iter' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/memcontrol.h' line='103' column='1' id='e0324306'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='position' type-id='223696fb' visibility='default' filepath='include/linux/memcontrol.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='generation' type-id='f0981eeb' visibility='default' filepath='include/linux/memcontrol.h' line='106' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='3bc524c0' const='yes' id='e03666d9'/>
+      <pointer-type-def type-id='f3af05c1' size-in-bits='64' id='e03898a9'/>
+      <class-decl name='xhci_container_ctx' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='601' column='1' id='e03e0a67'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='602' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='size' type-id='95e97e5e' visibility='default' filepath='drivers/usb/host/xhci.h' line='606' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bytes' type-id='8bff8096' visibility='default' filepath='drivers/usb/host/xhci.h' line='608' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dma' type-id='cf29c9b3' visibility='default' filepath='drivers/usb/host/xhci.h' line='609' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='2b1e6e59' const='yes' id='e03e976a'/>
+      <enum-decl name='nl80211_chan_width' filepath='include/uapi/linux/nl80211.h' line='4945' column='1' id='e043cccc'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NL80211_CHAN_WIDTH_20_NOHT' value='0'/>
+        <enumerator name='NL80211_CHAN_WIDTH_20' value='1'/>
+        <enumerator name='NL80211_CHAN_WIDTH_40' value='2'/>
+        <enumerator name='NL80211_CHAN_WIDTH_80' value='3'/>
+        <enumerator name='NL80211_CHAN_WIDTH_80P80' value='4'/>
+        <enumerator name='NL80211_CHAN_WIDTH_160' value='5'/>
+        <enumerator name='NL80211_CHAN_WIDTH_5' value='6'/>
+        <enumerator name='NL80211_CHAN_WIDTH_10' value='7'/>
+        <enumerator name='NL80211_CHAN_WIDTH_1' value='8'/>
+        <enumerator name='NL80211_CHAN_WIDTH_2' value='9'/>
+        <enumerator name='NL80211_CHAN_WIDTH_4' value='10'/>
+        <enumerator name='NL80211_CHAN_WIDTH_8' value='11'/>
+        <enumerator name='NL80211_CHAN_WIDTH_16' value='12'/>
+        <enumerator name='NL80211_CHAN_WIDTH_320' value='13'/>
+      </enum-decl>
+      <typedef-decl name='pteval_t' type-id='91ce1af9' filepath='arch/arm64/include/asm/pgtable-types.h' line='14' column='1' id='e044eb0d'/>
+      <pointer-type-def type-id='9e73640b' size-in-bits='64' id='e045254b'/>
+      <class-decl name='rtc_wkalrm' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/rtc.h' line='40' column='1' id='e05187bf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='enabled' type-id='002ac4a6' visibility='default' filepath='include/uapi/linux/rtc.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='pending' type-id='002ac4a6' visibility='default' filepath='include/uapi/linux/rtc.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='time' type-id='fa8285d4' visibility='default' filepath='include/uapi/linux/rtc.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='nvdimm_bus_fw_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/libnvdimm.h' line='232' column='1' id='e0584be6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='activate_state' type-id='8443ea63' visibility='default' filepath='include/linux/libnvdimm.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='capability' type-id='54387d26' visibility='default' filepath='include/linux/libnvdimm.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='activate' type-id='4a00a0f7' visibility='default' filepath='include/linux/libnvdimm.h' line='237' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b083f9b9' size-in-bits='64' id='e05ae2cd'/>
+      <class-decl name='blk_mq_hw_ctx' size-in-bits='5632' is-struct='yes' visibility='default' filepath='include/linux/blk-mq.h' line='17' column='1' id='e063028f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='e7f43fdd' visibility='default' filepath='include/linux/blk-mq.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='run_work' type-id='5ad6e0ef' visibility='default' filepath='include/linux/blk-mq.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='cpumask' type-id='b16b461b' visibility='default' filepath='include/linux/blk-mq.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='next_cpu' type-id='95e97e5e' visibility='default' filepath='include/linux/blk-mq.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1696'>
+          <var-decl name='next_cpu_batch' type-id='95e97e5e' visibility='default' filepath='include/linux/blk-mq.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/blk-mq.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='sched_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/blk-mq.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='queue' type-id='e7d2a5fc' visibility='default' filepath='include/linux/blk-mq.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='fq' type-id='e118aff9' visibility='default' filepath='include/linux/blk-mq.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/blk-mq.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='ctx_map' type-id='6e051ed1' visibility='default' filepath='include/linux/blk-mq.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='dispatch_from' type-id='9a335021' visibility='default' filepath='include/linux/blk-mq.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='dispatch_busy' type-id='f0981eeb' visibility='default' filepath='include/linux/blk-mq.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2400'>
+          <var-decl name='type' type-id='8efea9e5' visibility='default' filepath='include/linux/blk-mq.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2416'>
+          <var-decl name='nr_ctx' type-id='8efea9e5' visibility='default' filepath='include/linux/blk-mq.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='ctxs' type-id='c9c70151' visibility='default' filepath='include/linux/blk-mq.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='dispatch_wait_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/blk-mq.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='dispatch_wait' type-id='fe794aa9' visibility='default' filepath='include/linux/blk-mq.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='wait_index' type-id='49178f86' visibility='default' filepath='include/linux/blk-mq.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='tags' type-id='0461ecf5' visibility='default' filepath='include/linux/blk-mq.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='sched_tags' type-id='0461ecf5' visibility='default' filepath='include/linux/blk-mq.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='queued' type-id='7359adad' visibility='default' filepath='include/linux/blk-mq.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='run' type-id='7359adad' visibility='default' filepath='include/linux/blk-mq.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='dispatched' type-id='346bc576' visibility='default' filepath='include/linux/blk-mq.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='numa_node' type-id='f0981eeb' visibility='default' filepath='include/linux/blk-mq.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3680'>
+          <var-decl name='queue_num' type-id='f0981eeb' visibility='default' filepath='include/linux/blk-mq.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='nr_active' type-id='49178f86' visibility='default' filepath='include/linux/blk-mq.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='cpuhp_online' type-id='03a4a074' visibility='default' filepath='include/linux/blk-mq.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3904'>
+          <var-decl name='cpuhp_dead' type-id='03a4a074' visibility='default' filepath='include/linux/blk-mq.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='include/linux/blk-mq.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='poll_considered' type-id='7359adad' visibility='default' filepath='include/linux/blk-mq.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4864'>
+          <var-decl name='poll_invoked' type-id='7359adad' visibility='default' filepath='include/linux/blk-mq.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4928'>
+          <var-decl name='poll_success' type-id='7359adad' visibility='default' filepath='include/linux/blk-mq.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='debugfs_dir' type-id='27675065' visibility='default' filepath='include/linux/blk-mq.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5056'>
+          <var-decl name='sched_debugfs_dir' type-id='27675065' visibility='default' filepath='include/linux/blk-mq.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='hctx_list' type-id='72f469ec' visibility='default' filepath='include/linux/blk-mq.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='srcu' type-id='6abca080' visibility='default' filepath='include/linux/blk-mq.h' line='179' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b0f27198' size-in-bits='64' id='e0677422'/>
+      <pointer-type-def type-id='fa99b793' size-in-bits='64' id='e068a947'/>
+      <array-type-def dimensions='1' type-id='85938ec6' size-in-bits='infinite' id='e06f4fa6'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='e070d395'>
+        <parameter type-id='27f3f5d8'/>
+        <parameter type-id='cf29c9b3'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='0e3f80d9'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e07298c6'>
+        <parameter type-id='fb55efa1'/>
+        <return type-id='041bc907'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e073b6fc'>
+        <parameter type-id='15b1f129'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='fib_rules_ops' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/net/fib_rules.h' line='60' column='1' id='e079fe29'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='family' type-id='95e97e5e' visibility='default' filepath='include/net/fib_rules.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/fib_rules.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rule_size' type-id='95e97e5e' visibility='default' filepath='include/net/fib_rules.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='addr_size' type-id='95e97e5e' visibility='default' filepath='include/net/fib_rules.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='unresolved_rules' type-id='95e97e5e' visibility='default' filepath='include/net/fib_rules.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='nr_goto_rules' type-id='95e97e5e' visibility='default' filepath='include/net/fib_rules.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='fib_rules_seq' type-id='f0981eeb' visibility='default' filepath='include/net/fib_rules.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='action' type-id='33356d2c' visibility='default' filepath='include/net/fib_rules.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='suppress' type-id='9c26ea89' visibility='default' filepath='include/net/fib_rules.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='match' type-id='9ce2e6e7' visibility='default' filepath='include/net/fib_rules.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='configure' type-id='41323fc2' visibility='default' filepath='include/net/fib_rules.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='delete' type-id='42bc911b' visibility='default' filepath='include/net/fib_rules.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='compare' type-id='98a3b427' visibility='default' filepath='include/net/fib_rules.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='fill' type-id='72fd300e' visibility='default' filepath='include/net/fib_rules.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='nlmsg_payload' type-id='b3002d4b' visibility='default' filepath='include/net/fib_rules.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='flush_cache' type-id='28375890' visibility='default' filepath='include/net/fib_rules.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='nlgroup' type-id='95e97e5e' visibility='default' filepath='include/net/fib_rules.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='policy' type-id='109cdb66' visibility='default' filepath='include/net/fib_rules.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='rules_list' type-id='72f469ec' visibility='default' filepath='include/net/fib_rules.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/net/fib_rules.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='fro_net' type-id='a2bff676' visibility='default' filepath='include/net/fib_rules.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/fib_rules.h' line='98' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='103b4c26' size-in-bits='64' id='e07a8e4c'/>
+      <class-decl name='scsi_device' size-in-bits='20032' is-struct='yes' visibility='default' filepath='include/scsi/scsi_device.h' line='104' column='1' id='e07b5dbe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='host' type-id='a970a64c' visibility='default' filepath='include/scsi/scsi_device.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='request_queue' type-id='e7d2a5fc' visibility='default' filepath='include/scsi/scsi_device.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='siblings' type-id='72f469ec' visibility='default' filepath='include/scsi/scsi_device.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='same_target_siblings' type-id='72f469ec' visibility='default' filepath='include/scsi/scsi_device.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='budget_map' type-id='6e051ed1' visibility='default' filepath='include/scsi/scsi_device.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='device_blocked' type-id='49178f86' visibility='default' filepath='include/scsi/scsi_device.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='restarts' type-id='49178f86' visibility='default' filepath='include/scsi/scsi_device.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='list_lock' type-id='fb4018a0' visibility='default' filepath='include/scsi/scsi_device.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='starved_entry' type-id='72f469ec' visibility='default' filepath='include/scsi/scsi_device.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='queue_depth' type-id='8efea9e5' visibility='default' filepath='include/scsi/scsi_device.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='912'>
+          <var-decl name='max_queue_depth' type-id='8efea9e5' visibility='default' filepath='include/scsi/scsi_device.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='last_queue_full_depth' type-id='8efea9e5' visibility='default' filepath='include/scsi/scsi_device.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='944'>
+          <var-decl name='last_queue_full_count' type-id='8efea9e5' visibility='default' filepath='include/scsi/scsi_device.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='last_queue_full_time' type-id='7359adad' visibility='default' filepath='include/scsi/scsi_device.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='queue_ramp_up_period' type-id='7359adad' visibility='default' filepath='include/scsi/scsi_device.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='last_queue_ramp_up' type-id='7359adad' visibility='default' filepath='include/scsi/scsi_device.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='id' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='channel' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='lun' type-id='91ce1af9' visibility='default' filepath='include/scsi/scsi_device.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='manufacturer' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1312'>
+          <var-decl name='sector_size' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='hostdata' type-id='eaa32e2f' visibility='default' filepath='include/scsi/scsi_device.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='type' type-id='002ac4a6' visibility='default' filepath='include/scsi/scsi_device.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1416'>
+          <var-decl name='scsi_level' type-id='a84c031d' visibility='default' filepath='include/scsi/scsi_device.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1424'>
+          <var-decl name='inq_periph_qual' type-id='a84c031d' visibility='default' filepath='include/scsi/scsi_device.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='inquiry_mutex' type-id='925167dc' visibility='default' filepath='include/scsi/scsi_device.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='inquiry_len' type-id='002ac4a6' visibility='default' filepath='include/scsi/scsi_device.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='inquiry' type-id='cf536864' visibility='default' filepath='include/scsi/scsi_device.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='vendor' type-id='80f4b756' visibility='default' filepath='include/scsi/scsi_device.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='model' type-id='80f4b756' visibility='default' filepath='include/scsi/scsi_device.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='rev' type-id='80f4b756' visibility='default' filepath='include/scsi/scsi_device.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='vpd_pg0' type-id='2b88fa00' visibility='default' filepath='include/scsi/scsi_device.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='vpd_pg83' type-id='2b88fa00' visibility='default' filepath='include/scsi/scsi_device.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='vpd_pg80' type-id='2b88fa00' visibility='default' filepath='include/scsi/scsi_device.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='vpd_pg89' type-id='2b88fa00' visibility='default' filepath='include/scsi/scsi_device.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='sdev_target' type-id='4cb5819d' visibility='default' filepath='include/scsi/scsi_device.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='sdev_bflags' type-id='ec838379' visibility='default' filepath='include/scsi/scsi_device.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='eh_timeout' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2592'>
+          <var-decl name='removable' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2593'>
+          <var-decl name='changed' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2594'>
+          <var-decl name='busy' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2595'>
+          <var-decl name='lockable' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2596'>
+          <var-decl name='locked' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2597'>
+          <var-decl name='borken' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2598'>
+          <var-decl name='disconnect' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2599'>
+          <var-decl name='soft_reset' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2600'>
+          <var-decl name='sdtr' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2601'>
+          <var-decl name='wdtr' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2602'>
+          <var-decl name='ppr' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2603'>
+          <var-decl name='tagged_supported' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2604'>
+          <var-decl name='simple_tags' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2605'>
+          <var-decl name='was_reset' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2606'>
+          <var-decl name='expecting_cc_ua' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2607'>
+          <var-decl name='use_10_for_rw' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2608'>
+          <var-decl name='use_10_for_ms' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2609'>
+          <var-decl name='set_dbd_for_ms' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2610'>
+          <var-decl name='no_report_opcodes' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2611'>
+          <var-decl name='no_write_same' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2612'>
+          <var-decl name='use_16_for_rw' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2613'>
+          <var-decl name='skip_ms_page_8' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2614'>
+          <var-decl name='skip_ms_page_3f' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2615'>
+          <var-decl name='skip_vpd_pages' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2616'>
+          <var-decl name='try_vpd_pages' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2617'>
+          <var-decl name='use_192_bytes_for_3f' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2618'>
+          <var-decl name='no_start_on_add' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2619'>
+          <var-decl name='allow_restart' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2620'>
+          <var-decl name='manage_start_stop' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2621'>
+          <var-decl name='start_stop_pwr_cond' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2622'>
+          <var-decl name='no_uld_attach' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2623'>
+          <var-decl name='select_no_atn' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='fix_capacity' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2625'>
+          <var-decl name='guess_capacity' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2626'>
+          <var-decl name='retry_hwerror' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2627'>
+          <var-decl name='last_sector_bug' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2628'>
+          <var-decl name='no_read_disc_info' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2629'>
+          <var-decl name='no_read_capacity_16' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2630'>
+          <var-decl name='try_rc_10_first' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2631'>
+          <var-decl name='security_supported' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2632'>
+          <var-decl name='is_visible' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2633'>
+          <var-decl name='wce_default_on' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2634'>
+          <var-decl name='no_dif' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2635'>
+          <var-decl name='broken_fua' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2636'>
+          <var-decl name='lun_in_cdb' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2637'>
+          <var-decl name='unmap_limit_for_ws' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2638'>
+          <var-decl name='rpm_autosuspend' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2639'>
+          <var-decl name='ignore_media_change' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2640'>
+          <var-decl name='silence_suspend' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2648'>
+          <var-decl name='offline_already' type-id='b50a4934' visibility='default' filepath='include/scsi/scsi_device.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2656'>
+          <var-decl name='disk_events_disable_depth' type-id='49178f86' visibility='default' filepath='include/scsi/scsi_device.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='supported_events' type-id='f066dd3c' visibility='default' filepath='include/scsi/scsi_device.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='pending_events' type-id='f066dd3c' visibility='default' filepath='include/scsi/scsi_device.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='event_list' type-id='72f469ec' visibility='default' filepath='include/scsi/scsi_device.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='event_work' type-id='ef9025d0' visibility='default' filepath='include/scsi/scsi_device.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='max_device_blocked' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3360'>
+          <var-decl name='iorequest_cnt' type-id='49178f86' visibility='default' filepath='include/scsi/scsi_device.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='iodone_cnt' type-id='49178f86' visibility='default' filepath='include/scsi/scsi_device.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3424'>
+          <var-decl name='ioerr_cnt' type-id='49178f86' visibility='default' filepath='include/scsi/scsi_device.h' line='226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='sdev_gendev' type-id='66e487eb' visibility='default' filepath='include/scsi/scsi_device.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10752'>
+          <var-decl name='sdev_dev' type-id='66e487eb' visibility='default' filepath='include/scsi/scsi_device.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18048'>
+          <var-decl name='ew' type-id='53f7ea88' visibility='default' filepath='include/scsi/scsi_device.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18432'>
+          <var-decl name='requeue_work' type-id='ef9025d0' visibility='default' filepath='include/scsi/scsi_device.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18816'>
+          <var-decl name='handler' type-id='0a0775b5' visibility='default' filepath='include/scsi/scsi_device.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18880'>
+          <var-decl name='handler_data' type-id='eaa32e2f' visibility='default' filepath='include/scsi/scsi_device.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18944'>
+          <var-decl name='dma_drain_len' type-id='b59d7dce' visibility='default' filepath='include/scsi/scsi_device.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19008'>
+          <var-decl name='dma_drain_buf' type-id='eaa32e2f' visibility='default' filepath='include/scsi/scsi_device.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19072'>
+          <var-decl name='sg_timeout' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19104'>
+          <var-decl name='sg_reserved_size' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_device.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19136'>
+          <var-decl name='bsg_dev' type-id='d957ff80' visibility='default' filepath='include/scsi/scsi_device.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19200'>
+          <var-decl name='access_state' type-id='002ac4a6' visibility='default' filepath='include/scsi/scsi_device.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19264'>
+          <var-decl name='state_mutex' type-id='925167dc' visibility='default' filepath='include/scsi/scsi_device.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19648'>
+          <var-decl name='sdev_state' type-id='7e4b2e83' visibility='default' filepath='include/scsi/scsi_device.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19712'>
+          <var-decl name='quiesced_by' type-id='f23e2572' visibility='default' filepath='include/scsi/scsi_device.h' line='247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19776'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/scsi/scsi_device.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19840'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/scsi/scsi_device.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19904'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/scsi/scsi_device.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19968'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/scsi/scsi_device.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20032'>
+          <var-decl name='sdev_data' type-id='c99b5ecd' visibility='default' filepath='include/scsi/scsi_device.h' line='254' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='cfg80211_chan_def' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='775' column='1' id='e07d69c8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='chan' type-id='ec00acfb' visibility='default' filepath='include/net/cfg80211.h' line='776' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='width' type-id='e043cccc' visibility='default' filepath='include/net/cfg80211.h' line='777' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='center_freq1' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='778' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='center_freq2' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='779' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='edmg' type-id='d87e6929' visibility='default' filepath='include/net/cfg80211.h' line='780' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='freq1_offset' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='781' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='783' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='784' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='785' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='786' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='788' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='789' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='790' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='791' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='bpf_link' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='1013' column='1' id='e07e9784'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='refcnt' type-id='28ee064c' visibility='default' filepath='include/linux/bpf.h' line='1014' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='id' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='1015' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='type' type-id='b0467036' visibility='default' filepath='include/linux/bpf.h' line='1016' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ops' type-id='747013e8' visibility='default' filepath='include/linux/bpf.h' line='1017' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='prog' type-id='bdcee7ae' visibility='default' filepath='include/linux/bpf.h' line='1018' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/linux/bpf.h' line='1019' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='ZSTD_dStreamStage' type-id='c98266aa' filepath='lib/zstd/decompress.c' line='2157' column='1' id='e0863d6e'/>
+      <pointer-type-def type-id='3aa04234' size-in-bits='64' id='e0897b86'/>
+      <function-type size-in-bits='64' id='e093b8f6'>
+        <parameter type-id='e6532500'/>
+        <parameter type-id='e6532500'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='usb_ep_ops' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/usb/gadget.h' line='138' column='1' id='e094094c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='enable' type-id='4426dbe0' visibility='default' filepath='include/linux/usb/gadget.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='disable' type-id='99f649a9' visibility='default' filepath='include/linux/usb/gadget.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dispose' type-id='b1c1788a' visibility='default' filepath='include/linux/usb/gadget.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='alloc_request' type-id='37593c93' visibility='default' filepath='include/linux/usb/gadget.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='free_request' type-id='2dfafd2c' visibility='default' filepath='include/linux/usb/gadget.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='queue' type-id='bbe8d894' visibility='default' filepath='include/linux/usb/gadget.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dequeue' type-id='487818e7' visibility='default' filepath='include/linux/usb/gadget.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='set_halt' type-id='807f0070' visibility='default' filepath='include/linux/usb/gadget.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='set_wedge' type-id='99f649a9' visibility='default' filepath='include/linux/usb/gadget.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='fifo_status' type-id='99f649a9' visibility='default' filepath='include/linux/usb/gadget.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='fifo_flush' type-id='b1c1788a' visibility='default' filepath='include/linux/usb/gadget.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/gadget.h' line='158' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='environment_cap' filepath='include/net/regulatory.h' line='31' column='1' id='e0964c8a'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ENVIRON_ANY' value='0'/>
+        <enumerator name='ENVIRON_INDOOR' value='1'/>
+        <enumerator name='ENVIRON_OUTDOOR' value='2'/>
+      </enum-decl>
+      <class-decl name='cpu_rmap' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/cpu_rmap.h' line='24' column='1' id='e09a048e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='refcount' type-id='400fb07b' visibility='default' filepath='include/linux/cpu_rmap.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='size' type-id='1dc6a898' visibility='default' filepath='include/linux/cpu_rmap.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='used' type-id='1dc6a898' visibility='default' filepath='include/linux/cpu_rmap.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='obj' type-id='63e171df' visibility='default' filepath='include/linux/cpu_rmap.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='near' type-id='f443352a' visibility='default' filepath='include/linux/cpu_rmap.h' line='31' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a4666910' size-in-bits='64' id='e09d9aea'/>
+      <function-type size-in-bits='64' id='e09dbee3'>
+        <parameter type-id='fc4f83c1'/>
+        <parameter type-id='25e60cb2'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='macsec_rx_sa' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/net/macsec.h' line='111' column='1' id='e0a2a285'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='key' type-id='d06997c5' visibility='default' filepath='include/net/macsec.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ssci' type-id='dbcff62d' visibility='default' filepath='include/net/macsec.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/net/macsec.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='' type-id='ac5ab5c3' visibility='default' filepath='include/net/macsec.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/net/macsec.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='active' type-id='b50a4934' visibility='default' filepath='include/net/macsec.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='stats' type-id='496df6b5' visibility='default' filepath='include/net/macsec.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='sc' type-id='ec973d27' visibility='default' filepath='include/net/macsec.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/macsec.h' line='123' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5e3feda8' size-in-bits='64' id='e0a2e3a6'/>
+      <class-decl name='rq_qos' size-in-bits='320' is-struct='yes' visibility='default' filepath='block/blk-rq-qos.h' line='28' column='1' id='e0a68fea'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='4a3f5a61' visibility='default' filepath='block/blk-rq-qos.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='q' type-id='e7d2a5fc' visibility='default' filepath='block/blk-rq-qos.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='id' type-id='51cb492d' visibility='default' filepath='block/blk-rq-qos.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='next' type-id='c3a28778' visibility='default' filepath='block/blk-rq-qos.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='debugfs_dir' type-id='27675065' visibility='default' filepath='block/blk-rq-qos.h' line='34' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pm_qos_flags' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/pm_qos.h' line='71' column='1' id='e0a9bd3c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/pm_qos.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='effective_flags' type-id='a7832498' visibility='default' filepath='include/linux/pm_qos.h' line='73' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f87db0b6' size-in-bits='64' id='e0bbd59c'/>
+      <function-type size-in-bits='64' id='e0be409e'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='6fd5b1ab'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='ecb90832' size-in-bits='64' id='e0c03654'/>
+      <pointer-type-def type-id='1752769a' size-in-bits='64' id='e0c1c1b8'/>
+      <function-type size-in-bits='64' id='e0c79ce2'>
+        <parameter type-id='d30bdc51'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <class-decl name='nd_mapping' size-in-bits='832' is-struct='yes' visibility='default' filepath='drivers/nvdimm/nd.h' line='272' column='1' id='e0cc39f6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nvdimm' type-id='67d012a2' visibility='default' filepath='drivers/nvdimm/nd.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='start' type-id='91ce1af9' visibility='default' filepath='drivers/nvdimm/nd.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='size' type-id='91ce1af9' visibility='default' filepath='drivers/nvdimm/nd.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='position' type-id='95e97e5e' visibility='default' filepath='drivers/nvdimm/nd.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='labels' type-id='72f469ec' visibility='default' filepath='drivers/nvdimm/nd.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='drivers/nvdimm/nd.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='ndd' type-id='d2561a8b' visibility='default' filepath='drivers/nvdimm/nd.h' line='285' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e0d0028a'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='f780d556' const='yes' id='e0d04bd9'/>
+      <pointer-type-def type-id='89afb0f0' size-in-bits='64' id='e0d3697a'/>
+      <class-decl name='input_mt_slot' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/input/mt.h' line='27' column='1' id='e0d59f72'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='abs' type-id='b7c7a4a5' visibility='default' filepath='include/linux/input/mt.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='frame' type-id='f0981eeb' visibility='default' filepath='include/linux/input/mt.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='key' type-id='f0981eeb' visibility='default' filepath='include/linux/input/mt.h' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e0e73a01'>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='19c2251e'/>
+      </function-type>
+      <pointer-type-def type-id='00dd00af' size-in-bits='64' id='e0e7d15f'/>
+      <pointer-type-def type-id='925167dc' size-in-bits='64' id='e0ea832a'/>
+      <function-type size-in-bits='64' id='e0ed16c6'>
+        <parameter type-id='11c98e9a'/>
+        <parameter type-id='4ea020ae'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e0f20690'>
+        <parameter type-id='941d96cb'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ehci_qh_hw' size-in-bits='768' is-struct='yes' visibility='default' filepath='drivers/usb/host/ehci.h' line='380' column='1' id='e0f37aa4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hw_next' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='381' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='hw_info1' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hw_info2' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='hw_current' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hw_qtd_next' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='hw_alt_next' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hw_token' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='hw_buf' type-id='9f6d6b4c' visibility='default' filepath='drivers/usb/host/ehci.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='hw_buf_hi' type-id='9f6d6b4c' visibility='default' filepath='drivers/usb/host/ehci.h' line='403' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e0f7a7a4'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='33e1dfe4'/>
+        <parameter type-id='3df9fd28'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='4a91f65b' const='yes' id='e0f88742'/>
+      <array-type-def dimensions='1' type-id='2bf16f59' size-in-bits='128' id='e0f8c0f3'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='6a3578ea' size-in-bits='64' id='e0f91af4'/>
+      <pointer-type-def type-id='1f17d624' size-in-bits='64' id='e0fadd76'/>
+      <pointer-type-def type-id='f4bdc973' size-in-bits='64' id='e1007da7'/>
+      <pointer-type-def type-id='971a52d0' size-in-bits='64' id='e1038882'/>
+      <pointer-type-def type-id='c85b8434' size-in-bits='64' id='e10d6bae'/>
+      <pointer-type-def type-id='fc14a418' size-in-bits='64' id='e118a96a'/>
+      <pointer-type-def type-id='1d120221' size-in-bits='64' id='e118aff9'/>
+      <pointer-type-def type-id='0bd5d3ee' size-in-bits='64' id='e120e608'/>
+      <pointer-type-def type-id='94052af7' size-in-bits='64' id='e12279e7'/>
+      <function-type size-in-bits='64' id='e1246d10'>
+        <parameter type-id='19c2251e'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='6a251384' size-in-bits='64' id='e12cb9fe'/>
+      <typedef-decl name='Elf64_Addr' type-id='d3130597' filepath='include/uapi/linux/elf.h' line='16' column='1' id='e14340cf'/>
+      <pointer-type-def type-id='db992ec7' size-in-bits='64' id='e149b058'/>
+      <function-type size-in-bits='64' id='e14a26b1'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <typedef-decl name='seqcount_t' type-id='3a74ff0b' filepath='include/linux/seqlock.h' line='70' column='1' id='e14c3b11'/>
+      <class-decl name='iova_magazine' size-in-bits='8256' is-struct='yes' visibility='default' filepath='drivers/iommu/iova.c' line='900' column='1' id='e14d461f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='size' type-id='7359adad' visibility='default' filepath='drivers/iommu/iova.c' line='901' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pfns' type-id='187c43b2' visibility='default' filepath='drivers/iommu/iova.c' line='902' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='hlist_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/types.h' line='182' column='1' id='e151255a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='first' type-id='08cbad52' visibility='default' filepath='include/linux/types.h' line='183' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e151e1f6'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='02f11ed4'/>
+      </function-type>
+      <pointer-type-def type-id='20b17040' size-in-bits='64' id='e153f6de'/>
+      <pointer-type-def type-id='4d94804e' size-in-bits='64' id='e15671b8'/>
+      <pointer-type-def type-id='a490b814' size-in-bits='64' id='e15f3242'/>
+      <pointer-type-def type-id='1d2b3133' size-in-bits='64' id='e15f707f'/>
+      <class-decl name='v4l2_queryctrl' size-in-bits='544' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1821' column='1' id='e162c03f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1822' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1823' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='7e67d89d' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1824' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='minimum' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1825' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='maximum' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1826' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='step' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1827' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='default_value' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1828' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1829' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='reserved' type-id='839e8989' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1830' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_dp_vcpi' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='58' column='1' id='e1653094'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vcpi' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pbn' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='aligned_pbn' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='num_slots' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_dp_mst_helper.h' line='62' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='e316e7b5' size-in-bits='infinite' id='e16c0b0d'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='e1740daa'>
+        <parameter type-id='c485c22c'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='HUF_repeat' type-id='fba7ac0b' filepath='lib/zstd/huf.h' line='138' column='1' id='e17544f7'/>
+      <pointer-type-def type-id='a5eadeee' size-in-bits='64' id='e1759090'/>
+      <function-type size-in-bits='64' id='e17bc528'>
+        <parameter type-id='2ae08426'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='02f11ed4'/>
+      </function-type>
+      <pointer-type-def type-id='747e7623' size-in-bits='64' id='e17d6b77'/>
+      <function-type size-in-bits='64' id='e1834a73'>
+        <parameter type-id='8ba26d85'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='31b542ce'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e184aa4e'>
+        <parameter type-id='4db02c58'/>
+        <return type-id='249ef586'/>
+      </function-type>
+      <class-decl name='flow_match_basic' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/flow_offload.h' line='19' column='1' id='e185e6a6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='key' type-id='01307915' visibility='default' filepath='include/net/flow_offload.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mask' type-id='01307915' visibility='default' filepath='include/net/flow_offload.h' line='20' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_soc_tplg_io_ops' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='281' column='1' id='e189081e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='get' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='put' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='info' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='284' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='eca62f39' size-in-bits='64' id='e18b930d'/>
+      <pointer-type-def type-id='471fc91b' size-in-bits='64' id='e18defdb'/>
+      <pointer-type-def type-id='9c34bcea' size-in-bits='64' id='e190fb78'/>
+      <pointer-type-def type-id='d6bedda4' size-in-bits='64' id='e1932af2'/>
+      <pointer-type-def type-id='c3619065' size-in-bits='64' id='e1962c5d'/>
+      <function-type size-in-bits='64' id='e19b8aa7'>
+        <parameter type-id='e324928d'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='drm_connector_force' filepath='include/drm/drm_connector.h' line='46' column='1' id='e1a0be31'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DRM_FORCE_UNSPECIFIED' value='0'/>
+        <enumerator name='DRM_FORCE_OFF' value='1'/>
+        <enumerator name='DRM_FORCE_ON' value='2'/>
+        <enumerator name='DRM_FORCE_ON_DIGITAL' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='7e833f79' size-in-bits='64' id='e1a56841'/>
+      <function-type size-in-bits='64' id='e1a8ec34'>
+        <parameter type-id='aa9ea333'/>
+        <parameter type-id='226853d2'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='v4l2_m2m_ctx' size-in-bits='15104' is-struct='yes' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='99' column='1' id='e1b58b0e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='q_lock' type-id='e0ea832a' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='new_frame' type-id='b50a4934' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='is_draining' type-id='b50a4934' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='last_src_buf' type-id='9a42d4cd' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='next_buf_last' type-id='b50a4934' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='has_stopped' type-id='b50a4934' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='m2m_dev' type-id='b50ade7a' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='cap_q_ctx' type-id='0651f1ee' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='out_q_ctx' type-id='0651f1ee' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14656'>
+          <var-decl name='queue' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14784'>
+          <var-decl name='job_flags' type-id='7359adad' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14848'>
+          <var-decl name='finished' type-id='b5ab048f' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15040'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/media/v4l2-mem2mem.h' line='122' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ptp_clock' size-in-bits='45824' is-struct='yes' visibility='default' filepath='drivers/ptp/ptp_private.h' line='30' column='1' id='e1b79daa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='clock' type-id='cf396435' visibility='default' filepath='drivers/ptp/ptp_private.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='drivers/ptp/ptp_private.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9664'>
+          <var-decl name='info' type-id='513f51db' visibility='default' filepath='drivers/ptp/ptp_private.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9728'>
+          <var-decl name='devid' type-id='8504f260' visibility='default' filepath='drivers/ptp/ptp_private.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9760'>
+          <var-decl name='index' type-id='95e97e5e' visibility='default' filepath='drivers/ptp/ptp_private.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9792'>
+          <var-decl name='pps_source' type-id='587a9d8d' visibility='default' filepath='drivers/ptp/ptp_private.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9856'>
+          <var-decl name='dialed_frequency' type-id='bd54fe1a' visibility='default' filepath='drivers/ptp/ptp_private.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9920'>
+          <var-decl name='tsevq' type-id='4bbf8a9c' visibility='default' filepath='drivers/ptp/ptp_private.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='42816'>
+          <var-decl name='tsevq_mux' type-id='925167dc' visibility='default' filepath='drivers/ptp/ptp_private.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='43200'>
+          <var-decl name='pincfg_mux' type-id='925167dc' visibility='default' filepath='drivers/ptp/ptp_private.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='43584'>
+          <var-decl name='tsev_wq' type-id='b5ab048f' visibility='default' filepath='drivers/ptp/ptp_private.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='43776'>
+          <var-decl name='defunct' type-id='95e97e5e' visibility='default' filepath='drivers/ptp/ptp_private.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='43840'>
+          <var-decl name='pin_dev_attr' type-id='89a2612a' visibility='default' filepath='drivers/ptp/ptp_private.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='43904'>
+          <var-decl name='pin_attr' type-id='862c676f' visibility='default' filepath='drivers/ptp/ptp_private.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='43968'>
+          <var-decl name='pin_attr_group' type-id='e4af473b' visibility='default' filepath='drivers/ptp/ptp_private.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44288'>
+          <var-decl name='pin_attr_groups' type-id='9f1f90ee' visibility='default' filepath='drivers/ptp/ptp_private.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44416'>
+          <var-decl name='kworker' type-id='c41f4539' visibility='default' filepath='drivers/ptp/ptp_private.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='44480'>
+          <var-decl name='aux_work' type-id='8fb867c9' visibility='default' filepath='drivers/ptp/ptp_private.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45248'>
+          <var-decl name='max_vclocks' type-id='f0981eeb' visibility='default' filepath='drivers/ptp/ptp_private.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45280'>
+          <var-decl name='n_vclocks' type-id='f0981eeb' visibility='default' filepath='drivers/ptp/ptp_private.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45312'>
+          <var-decl name='vclock_index' type-id='7292109c' visibility='default' filepath='drivers/ptp/ptp_private.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45376'>
+          <var-decl name='n_vclocks_mux' type-id='925167dc' visibility='default' filepath='drivers/ptp/ptp_private.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='45760'>
+          <var-decl name='is_virtual_clock' type-id='b50a4934' visibility='default' filepath='drivers/ptp/ptp_private.h' line='54' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f155b036' size-in-bits='64' id='e1c70e28'/>
+      <array-type-def dimensions='1' type-id='bd54fe1a' size-in-bits='8192' id='e1c8dbe3'>
+        <subrange length='128' type-id='7ff19f0f' id='1eb1687a'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='e1d0c03e'>
+        <parameter type-id='af051c69'/>
+        <parameter type-id='48268ca6'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e1d1ffbe'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='61d12d26'/>
+        <parameter type-id='3df9fd28'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e1d380a7'>
+        <parameter type-id='15b1f129'/>
+        <parameter type-id='551eebc9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='19952db6' size-in-bits='64' id='e1d6cc94'/>
+      <function-type size-in-bits='64' id='e1de5cb1'>
+        <parameter type-id='404b1300'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='9a817f02' const='yes' id='e1e02337'/>
+      <pointer-type-def type-id='f588f6e0' size-in-bits='64' id='e1ea11f6'/>
+      <pointer-type-def type-id='5f5b9bdb' size-in-bits='64' id='e1ec3697'/>
+      <function-type size-in-bits='64' id='e1ee975e'>
+        <parameter type-id='150efd3f'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='2594b00f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='fib_nh_common' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/net/ip_fib.h' line='80' column='1' id='e1f89457'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nhc_dev' type-id='68a2d05b' visibility='default' filepath='include/net/ip_fib.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nhc_oif' type-id='95e97e5e' visibility='default' filepath='include/net/ip_fib.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='nhc_scope' type-id='002ac4a6' visibility='default' filepath='include/net/ip_fib.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='nhc_family' type-id='f9b06939' visibility='default' filepath='include/net/ip_fib.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='nhc_gw_family' type-id='f9b06939' visibility='default' filepath='include/net/ip_fib.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='nhc_flags' type-id='002ac4a6' visibility='default' filepath='include/net/ip_fib.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='nhc_lwtstate' type-id='d19f4fca' visibility='default' filepath='include/net/ip_fib.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='nhc_gw' type-id='ac5ab5c2' visibility='default' filepath='include/net/ip_fib.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='nhc_weight' type-id='95e97e5e' visibility='default' filepath='include/net/ip_fib.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='nhc_upper_bound' type-id='49178f86' visibility='default' filepath='include/net/ip_fib.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='nhc_pcpu_rth_output' type-id='0f830eef' visibility='default' filepath='include/net/ip_fib.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='nhc_rth_input' type-id='c8f5869f' visibility='default' filepath='include/net/ip_fib.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='nhc_exceptions' type-id='09c59e98' visibility='default' filepath='include/net/ip_fib.h' line='100' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tcp_mib' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/net/snmp.h' line='92' column='1' id='e1f906a3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mibs' type-id='d2baa450' visibility='default' filepath='include/net/snmp.h' line='93' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='da3b08cd' size-in-bits='64' id='e1fb15d1'/>
+      <function-type size-in-bits='64' id='e1fc3fb1'>
+        <parameter type-id='10216dc5'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='472eb409'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e2041b7e'>
+        <parameter type-id='58ed56f5'/>
+        <parameter type-id='aab1563c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='pmu' size-in-bits='2368' is-struct='yes' visibility='default' filepath='include/linux/perf_event.h' line='279' column='1' id='e205b6f1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='entry' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='module' type-id='2730d015' visibility='default' filepath='include/linux/perf_event.h' line='282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/perf_event.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='attr_groups' type-id='c97de1ac' visibility='default' filepath='include/linux/perf_event.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='attr_update' type-id='c97de1ac' visibility='default' filepath='include/linux/perf_event.h' line='285' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/perf_event.h' line='286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='type' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='287' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='capabilities' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='pmu_disable_count' type-id='7292109c' visibility='default' filepath='include/linux/perf_event.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='pmu_cpu_context' type-id='090503c3' visibility='default' filepath='include/linux/perf_event.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='exclusive_cnt' type-id='49178f86' visibility='default' filepath='include/linux/perf_event.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='task_ctx_nr' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='hrtimer_interval_ms' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='nr_addr_filters' type-id='f0981eeb' visibility='default' filepath='include/linux/perf_event.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='pmu_enable' type-id='dae07608' visibility='default' filepath='include/linux/perf_event.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='pmu_disable' type-id='dae07608' visibility='default' filepath='include/linux/perf_event.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='event_init' type-id='8d78edef' visibility='default' filepath='include/linux/perf_event.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='event_mapped' type-id='eddb9394' visibility='default' filepath='include/linux/perf_event.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='event_unmapped' type-id='eddb9394' visibility='default' filepath='include/linux/perf_event.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='add' type-id='afc38bc6' visibility='default' filepath='include/linux/perf_event.h' line='361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='del' type-id='6c534e17' visibility='default' filepath='include/linux/perf_event.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='start' type-id='6c534e17' visibility='default' filepath='include/linux/perf_event.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='stop' type-id='6c534e17' visibility='default' filepath='include/linux/perf_event.h' line='383' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='read' type-id='aed2baa8' visibility='default' filepath='include/linux/perf_event.h' line='391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='start_txn' type-id='f865774a' visibility='default' filepath='include/linux/perf_event.h' line='403' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='commit_txn' type-id='0cd76695' visibility='default' filepath='include/linux/perf_event.h' line='412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='cancel_txn' type-id='dae07608' visibility='default' filepath='include/linux/perf_event.h' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='event_idx' type-id='8d78edef' visibility='default' filepath='include/linux/perf_event.h' line='425' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='sched_task' type-id='54df184d' visibility='default' filepath='include/linux/perf_event.h' line='430' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='task_ctx_cache' type-id='f3b4aca8' visibility='default' filepath='include/linux/perf_event.h' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='swap_task_ctx' type-id='7d55f1e4' visibility='default' filepath='include/linux/perf_event.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='setup_aux' type-id='e91cc304' visibility='default' filepath='include/linux/perf_event.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='free_aux' type-id='b7f9d8e6' visibility='default' filepath='include/linux/perf_event.h' line='458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='snapshot_aux' type-id='eb8bb0cb' visibility='default' filepath='include/linux/perf_event.h' line='469' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='addr_filters_validate' type-id='6668d13a' visibility='default' filepath='include/linux/perf_event.h' line='481' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='addr_filters_sync' type-id='aed2baa8' visibility='default' filepath='include/linux/perf_event.h' line='495' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='aux_output_match' type-id='8d78edef' visibility='default' filepath='include/linux/perf_event.h' line='505' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='filter_match' type-id='8d78edef' visibility='default' filepath='include/linux/perf_event.h' line='511' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='check_period' type-id='36f91979' visibility='default' filepath='include/linux/perf_event.h' line='516' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='udp_tunnel_nic_table_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/udp_tunnel.h' line='270' column='1' id='e20d9062'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='n_entries' type-id='f0981eeb' visibility='default' filepath='include/net/udp_tunnel.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='tunnel_types' type-id='f0981eeb' visibility='default' filepath='include/net/udp_tunnel.h' line='272' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_framebuffer' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1152' column='1' id='e2103cb1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='capability' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='base' type-id='eaa32e2f' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fmt' type-id='e7f43fbf' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1167' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e215eeb6'>
+        <parameter type-id='bff05edb'/>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='597277ac'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='b32b9ce4' size-in-bits='64' id='e220a5e2'/>
+      <class-decl name='linux_mib' size-in-bits='8064' is-struct='yes' visibility='default' filepath='include/net/snmp.h' line='104' column='1' id='e222a326'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mibs' type-id='547691f8' visibility='default' filepath='include/net/snmp.h' line='105' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='nl80211_vendor_cmd_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='6743' column='1' id='e223f110'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vendor_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='6744' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='subcmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='6745' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e2245803'>
+        <parameter type-id='9f763fd8'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e2270bc3'>
+        <parameter type-id='33dc3b1b'/>
+        <parameter type-id='1cf47bfb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='fc224242' size-in-bits='64' id='e23057dc'/>
+      <pointer-type-def type-id='4b6b0e29' size-in-bits='64' id='e23829bd'/>
+      <function-type size-in-bits='64' id='e2387996'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='26d4d46f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='2112ee6e' size-in-bits='64' id='e23bfa68'/>
+      <enum-decl name='netdev_tx' filepath='include/linux/netdevice.h' line='117' column='1' id='e246a80b'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='__NETDEV_TX_MIN' value='-2147483648'/>
+        <enumerator name='NETDEV_TX_OK' value='0'/>
+        <enumerator name='NETDEV_TX_BUSY' value='16'/>
+      </enum-decl>
+      <pointer-type-def type-id='081241b5' size-in-bits='64' id='e24c55c9'/>
+      <function-type size-in-bits='64' id='e25b9229'>
+        <parameter type-id='4e602d14'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='9399d16b' size-in-bits='64' id='e25f5feb'/>
+      <pointer-type-def type-id='bd36df2f' size-in-bits='64' id='e26114df'/>
+      <pointer-type-def type-id='49afbfba' size-in-bits='64' id='e27a9d68'/>
+      <pointer-type-def type-id='e0be409e' size-in-bits='64' id='e27ac460'/>
+      <class-decl name='trace_array' size-in-bits='2496' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='290' column='1' id='e27b4e90'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='kernel/trace/trace.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='array_buffer' type-id='1984aef9' visibility='default' filepath='kernel/trace/trace.h' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='filtered_pids' type-id='1f6324ad' visibility='default' filepath='kernel/trace/trace.h' line='317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='filtered_no_pids' type-id='1f6324ad' visibility='default' filepath='kernel/trace/trace.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='max_lock' type-id='641c41d1' visibility='default' filepath='kernel/trace/trace.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='buffer_disabled' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='stop_count' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='clock_id' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='nr_topts' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='clear_trace' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='buffer_percent' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='n_err_log_entries' type-id='f0981eeb' visibility='default' filepath='kernel/trace/trace.h' line='345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='current_trace' type-id='0a18715a' visibility='default' filepath='kernel/trace/trace.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='trace_flags' type-id='f0981eeb' visibility='default' filepath='kernel/trace/trace.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='trace_flags_index' type-id='fc872715' visibility='default' filepath='kernel/trace/trace.h' line='348' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='kernel/trace/trace.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='start_lock' type-id='f5c90b3f' visibility='default' filepath='kernel/trace/trace.h' line='350' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='err_log' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='dir' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='options' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='percpu_dir' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='event_dir' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='topts' type-id='e9037327' visibility='default' filepath='kernel/trace/trace.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='systems' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='events' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='trace_marker_file' type-id='3d4ca6d2' visibility='default' filepath='kernel/trace/trace.h' line='359' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='tracing_cpumask' type-id='b16b461b' visibility='default' filepath='kernel/trace/trace.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='ref' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2208'>
+          <var-decl name='trace_ref' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='no_filter_buffering_ref' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='hist_vars' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='377' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='last_func_repeats' type-id='20b86b00' visibility='default' filepath='kernel/trace/trace.h' line='381' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='46cf92da' const='yes' id='e281f141'/>
+      <class-decl name='seccomp_filter' is-struct='yes' visibility='default' is-declaration-only='yes' id='e290c28c'/>
+      <pointer-type-def type-id='e4dc0de6' size-in-bits='64' id='e2929c1c'/>
+      <pointer-type-def type-id='d802bf72' size-in-bits='64' id='e295c77c'/>
+      <array-type-def dimensions='1' type-id='b197d821' size-in-bits='64' id='e2982e38'>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='e29a2892'>
+        <parameter type-id='7a29ff27'/>
+        <parameter type-id='7a29ff27'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='cpufreq_table_sorting' filepath='include/linux/cpufreq.h' line='41' column='1' id='e29b2d58'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='CPUFREQ_TABLE_UNSORTED' value='0'/>
+        <enumerator name='CPUFREQ_TABLE_SORTED_ASCENDING' value='1'/>
+        <enumerator name='CPUFREQ_TABLE_SORTED_DESCENDING' value='2'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='e29df76e'>
+        <parameter type-id='7e666abe'/>
+        <return type-id='0892f7dc'/>
+      </function-type>
+      <qualified-type-def type-id='9d82990b' const='yes' id='e29e274e'/>
+      <class-decl name='snd_compr_runtime' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/sound/compress_driver.h' line='42' column='1' id='e2a795cb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='state' type-id='33158de9' visibility='default' filepath='include/sound/compress_driver.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ops' type-id='06ca680b' visibility='default' filepath='include/sound/compress_driver.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='buffer' type-id='eaa32e2f' visibility='default' filepath='include/sound/compress_driver.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='buffer_size' type-id='91ce1af9' visibility='default' filepath='include/sound/compress_driver.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='fragment_size' type-id='19c2251e' visibility='default' filepath='include/sound/compress_driver.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='fragments' type-id='19c2251e' visibility='default' filepath='include/sound/compress_driver.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='total_bytes_available' type-id='91ce1af9' visibility='default' filepath='include/sound/compress_driver.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='total_bytes_transferred' type-id='91ce1af9' visibility='default' filepath='include/sound/compress_driver.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='sleep' type-id='b5ab048f' visibility='default' filepath='include/sound/compress_driver.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/compress_driver.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='dma_area' type-id='cf536864' visibility='default' filepath='include/sound/compress_driver.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='dma_addr' type-id='cf29c9b3' visibility='default' filepath='include/sound/compress_driver.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='dma_bytes' type-id='b59d7dce' visibility='default' filepath='include/sound/compress_driver.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='dma_buffer_p' type-id='a02b8cd2' visibility='default' filepath='include/sound/compress_driver.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/compress_driver.h' line='59' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='rpmsg_channel_info' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/rpmsg.h' line='35' column='1' id='e2b27ed1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/linux/rpmsg.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='src' type-id='19c2251e' visibility='default' filepath='include/linux/rpmsg.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='dst' type-id='19c2251e' visibility='default' filepath='include/linux/rpmsg.h' line='38' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e2bf3f10'>
+        <parameter type-id='2ba25712'/>
+        <parameter type-id='f9b06939'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='3bf0698f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d6772b4e' size-in-bits='64' id='e2cbf964'/>
+      <pointer-type-def type-id='28063720' size-in-bits='64' id='e2cefc47'/>
+      <function-type size-in-bits='64' id='e2d03a5d'>
+        <parameter type-id='b94a2f7c'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='spi_device_id' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/mod_devicetable.h' line='501' column='1' id='e2d49ab8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/linux/mod_devicetable.h' line='502' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='driver_data' type-id='0791d6c8' visibility='default' filepath='include/linux/mod_devicetable.h' line='503' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e2d4c382'>
+        <parameter type-id='15b1f129'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='8d57fbd1' size-in-bits='64' id='e2d63f85'/>
+      <pointer-type-def type-id='cd562d46' size-in-bits='64' id='e2d7f258'/>
+      <function-type size-in-bits='64' id='e2e8ac4a'>
+        <parameter type-id='80f25feb'/>
+        <parameter type-id='79a0948f'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='dev_cmd_type' filepath='drivers/scsi/ufs/ufshcd.h' line='57' column='1' id='e2ef9cb5'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEV_CMD_TYPE_NOP' value='0'/>
+        <enumerator name='DEV_CMD_TYPE_QUERY' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='aac69b6b' size-in-bits='64' id='e2f71a2f'/>
+      <pointer-type-def type-id='970fe03f' size-in-bits='64' id='e2fdc10f'/>
+      <pointer-type-def type-id='0c45e0bb' size-in-bits='64' id='e3008443'/>
+      <function-type size-in-bits='64' id='e30804d9'>
+        <parameter type-id='e324928d'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e3087f12'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='7bc9606a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='snd_ctl_elem_type_t' type-id='95e97e5e' filepath='include/uapi/sound/asound.h' line='983' column='1' id='e31355f5'/>
+      <pointer-type-def type-id='b6900fae' size-in-bits='64' id='e316b900'/>
+      <class-decl name='nh_res_bucket' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/nexthop.h' line='72' column='1' id='e316e7b5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nh_entry' type-id='59bb916e' visibility='default' filepath='include/net/nexthop.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='used_time' type-id='f22a8abb' visibility='default' filepath='include/net/nexthop.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='migrated_time' type-id='7359adad' visibility='default' filepath='include/net/nexthop.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='occupied' type-id='b50a4934' visibility='default' filepath='include/net/nexthop.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='nh_flags' type-id='f9b06939' visibility='default' filepath='include/net/nexthop.h' line='77' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='1024' id='e3204322'>
+        <subrange length='128' type-id='7ff19f0f' id='1eb1687a'/>
+      </array-type-def>
+      <pointer-type-def type-id='59f9f35d' size-in-bits='64' id='e324928d'/>
+      <class-decl name='gpio_device' size-in-bits='9728' is-struct='yes' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='49' column='1' id='e32a05ed'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='chrdev' type-id='22f86351' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8448'>
+          <var-decl name='mockdev' type-id='fa0b179b' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8512'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8576'>
+          <var-decl name='chip' type-id='e324928d' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8640'>
+          <var-decl name='descs' type-id='26760480' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='base' type-id='95e97e5e' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8736'>
+          <var-decl name='ngpio' type-id='1dc6a898' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8768'>
+          <var-decl name='label' type-id='80f4b756' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8832'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8896'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9024'>
+          <var-decl name='notifier' type-id='708c2394' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='pin_ranges' type-id='72f469ec' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='71' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tracer_flags' size-in-bits='192' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='488' column='1' id='e32a3610'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='val' type-id='19c2251e' visibility='default' filepath='kernel/trace/trace.h' line='489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='opts' type-id='a0260edc' visibility='default' filepath='kernel/trace/trace.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='trace' type-id='0a18715a' visibility='default' filepath='kernel/trace/trace.h' line='491' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e32cf39f'>
+        <parameter type-id='2730d015'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='posix_clock_operations' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/posix-clock.h' line='38' column='1' id='e33075c0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/posix-clock.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='clock_adjtime' type-id='ced7e5d2' visibility='default' filepath='include/linux/posix-clock.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='clock_gettime' type-id='14d3a147' visibility='default' filepath='include/linux/posix-clock.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='clock_getres' type-id='14d3a147' visibility='default' filepath='include/linux/posix-clock.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='clock_settime' type-id='a565a9a0' visibility='default' filepath='include/linux/posix-clock.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ioctl' type-id='e8d45b05' visibility='default' filepath='include/linux/posix-clock.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='open' type-id='f4ce54c4' visibility='default' filepath='include/linux/posix-clock.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='poll' type-id='fad01747' visibility='default' filepath='include/linux/posix-clock.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='release' type-id='7c9a077d' visibility='default' filepath='include/linux/posix-clock.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='read' type-id='b6ee62dc' visibility='default' filepath='include/linux/posix-clock.h' line='63' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8cdee791' size-in-bits='64' id='e33a30a5'/>
+      <class-decl name='ufs_dev_info' size-in-bits='384' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='593' column='1' id='e3428c48'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='f_power_on_wp_en' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='594' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='is_lu_power_on_wp' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='596' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='max_lu_supported' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='598' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='wmanufacturerid' type-id='1dc6a898' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='599' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='model' type-id='8bff8096' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='601' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='wspecversion' type-id='1dc6a898' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='602' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='clk_gating_wait_us' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='603' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hpb_enabled' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='606' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='wb_enabled' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='609' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='wb_buf_flush_enabled' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='610' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='216'>
+          <var-decl name='wb_dedicated_lu' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='wb_buffer_type' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='612' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='232'>
+          <var-decl name='b_rpm_dev_flush_capable' type-id='b50a4934' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='614' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='240'>
+          <var-decl name='b_presrv_uspc_en' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='615' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='616' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='android_oem_data1' type-id='91ce1af9' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='618' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='dc7798f9' size-in-bits='64' id='e3459429'/>
+      <class-decl name='v4l2_subdev_frame_interval' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='124' column='1' id='e346e6f3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pad' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='interval' type-id='5f37256e' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='reserved' type-id='43885e7a' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='127' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='v4l2_mbus_type' filepath='include/media/v4l2-mediabus.h' line='108' column='1' id='e34ed0c3'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='V4L2_MBUS_UNKNOWN' value='0'/>
+        <enumerator name='V4L2_MBUS_PARALLEL' value='1'/>
+        <enumerator name='V4L2_MBUS_BT656' value='2'/>
+        <enumerator name='V4L2_MBUS_CSI1' value='3'/>
+        <enumerator name='V4L2_MBUS_CCP2' value='4'/>
+        <enumerator name='V4L2_MBUS_CSI2_DPHY' value='5'/>
+        <enumerator name='V4L2_MBUS_CSI2_CPHY' value='6'/>
+        <enumerator name='V4L2_MBUS_INVALID' value='7'/>
+      </enum-decl>
+      <class-decl name='phy_provider' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/phy/phy.h' line='167' column='1' id='e3536b30'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/phy/phy.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='children' type-id='9a537bbe' visibility='default' filepath='include/linux/phy/phy.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/phy/phy.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/phy/phy.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='of_xlate' type-id='df697557' visibility='default' filepath='include/linux/phy/phy.h' line='172' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9da0fa51' size-in-bits='64' id='e357ec39'/>
+      <pointer-type-def type-id='c9d64c0d' size-in-bits='64' id='e359e165'/>
+      <pointer-type-def type-id='c4e36342' size-in-bits='64' id='e36088ec'/>
+      <typedef-decl name='msi_alloc_info_t' type-id='b3d73007' filepath='include/asm-generic/msi.h' line='32' column='1' id='e36320e9'/>
+      <array-type-def dimensions='1' type-id='42b16dba' size-in-bits='4096' id='e3638da9'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='2f162548' size-in-bits='224' id='e369592a'>
+        <subrange length='7' type-id='7ff19f0f' id='16fc326e'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='2f162548' size-in-bits='96' id='e3725386'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='e374f511'>
+        <parameter type-id='9e99ecc1'/>
+        <parameter type-id='8898134d'/>
+        <parameter type-id='8f92235e'/>
+        <parameter type-id='5d6479ae'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='b19a033a' const='yes' id='e3840c87'/>
+      <array-type-def dimensions='1' type-id='2f162548' size-in-bits='256' id='e389acd5'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <class-decl name='ethtool_pauseparam' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='587' column='1' id='e38bdef8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='588' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='autoneg' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='589' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rx_pause' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='590' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='tx_pause' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='591' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='97de3296' size-in-bits='64' id='e38d7e58'/>
+      <class-decl name='v4l2_subdev_audio_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='308' column='1' id='e3913a59'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='s_clock_freq' type-id='04cc4d9e' visibility='default' filepath='include/media/v4l2-subdev.h' line='309' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='s_i2s_clock_freq' type-id='04cc4d9e' visibility='default' filepath='include/media/v4l2-subdev.h' line='310' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='s_routing' type-id='f9d7b9fc' visibility='default' filepath='include/media/v4l2-subdev.h' line='311' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='s_stream' type-id='6d63cad6' visibility='default' filepath='include/media/v4l2-subdev.h' line='312' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='iopf_device_param' is-struct='yes' visibility='default' is-declaration-only='yes' id='e39caa24'/>
+      <function-type size-in-bits='64' id='e3a1e7d2'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='5bc7662c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='8f5d4d00' size-in-bits='64' id='e3a3f61a'/>
+      <function-type size-in-bits='64' id='e3a78e52'>
+        <parameter type-id='e3dd029e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='16c9c8d4' size-in-bits='64' id='e3a7f506'/>
+      <class-decl name='plist_node' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/plist.h' line='83' column='1' id='e3a91a7c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prio' type-id='95e97e5e' visibility='default' filepath='include/linux/plist.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='prio_list' type-id='72f469ec' visibility='default' filepath='include/linux/plist.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='node_list' type-id='72f469ec' visibility='default' filepath='include/linux/plist.h' line='86' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tcp_sock' size-in-bits='18880' is-struct='yes' visibility='default' filepath='include/linux/tcp.h' line='146' column='1' id='e3aee705'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='inet_conn' type-id='2a0babad' visibility='default' filepath='include/linux/tcp.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12224'>
+          <var-decl name='tcp_header_len' type-id='1dc6a898' visibility='default' filepath='include/linux/tcp.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12240'>
+          <var-decl name='gso_segs' type-id='1dc6a898' visibility='default' filepath='include/linux/tcp.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12256'>
+          <var-decl name='pred_flags' type-id='78a133c2' visibility='default' filepath='include/linux/tcp.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12288'>
+          <var-decl name='bytes_received' type-id='91ce1af9' visibility='default' filepath='include/linux/tcp.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12352'>
+          <var-decl name='segs_in' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12384'>
+          <var-decl name='data_segs_in' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12416'>
+          <var-decl name='rcv_nxt' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12448'>
+          <var-decl name='copied_seq' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12480'>
+          <var-decl name='rcv_wup' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12512'>
+          <var-decl name='snd_nxt' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12544'>
+          <var-decl name='segs_out' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12576'>
+          <var-decl name='data_segs_out' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12608'>
+          <var-decl name='bytes_sent' type-id='91ce1af9' visibility='default' filepath='include/linux/tcp.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12672'>
+          <var-decl name='bytes_acked' type-id='91ce1af9' visibility='default' filepath='include/linux/tcp.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12736'>
+          <var-decl name='dsack_dups' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12768'>
+          <var-decl name='snd_una' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12800'>
+          <var-decl name='snd_sml' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12832'>
+          <var-decl name='rcv_tstamp' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12864'>
+          <var-decl name='lsndtime' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12896'>
+          <var-decl name='last_oow_ack_time' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12928'>
+          <var-decl name='compressed_ack_rcv_nxt' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12960'>
+          <var-decl name='tsoffset' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12992'>
+          <var-decl name='tsq_node' type-id='72f469ec' visibility='default' filepath='include/linux/tcp.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13120'>
+          <var-decl name='tsorted_sent_queue' type-id='72f469ec' visibility='default' filepath='include/linux/tcp.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13248'>
+          <var-decl name='snd_wl1' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13280'>
+          <var-decl name='snd_wnd' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13312'>
+          <var-decl name='max_window' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13344'>
+          <var-decl name='mss_cache' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13376'>
+          <var-decl name='window_clamp' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13408'>
+          <var-decl name='rcv_ssthresh' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13440'>
+          <var-decl name='rack' type-id='682f92a2' visibility='default' filepath='include/linux/tcp.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13632'>
+          <var-decl name='advmss' type-id='1dc6a898' visibility='default' filepath='include/linux/tcp.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13648'>
+          <var-decl name='compressed_ack' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='226' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13656'>
+          <var-decl name='dup_ack_counter' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13658'>
+          <var-decl name='tlp_retrans' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13659'>
+          <var-decl name='unused' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13664'>
+          <var-decl name='chrono_start' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13696'>
+          <var-decl name='chrono_stat' type-id='1c745afe' visibility='default' filepath='include/linux/tcp.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13792'>
+          <var-decl name='chrono_type' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13794'>
+          <var-decl name='rate_app_limited' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13795'>
+          <var-decl name='fastopen_connect' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13796'>
+          <var-decl name='fastopen_no_cookie' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13797'>
+          <var-decl name='is_sack_reneg' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13798'>
+          <var-decl name='fastopen_client_fail' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13800'>
+          <var-decl name='nonagle' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13804'>
+          <var-decl name='thin_lto' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13805'>
+          <var-decl name='recvmsg_inq' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13806'>
+          <var-decl name='repair' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13807'>
+          <var-decl name='frto' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='242' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13808'>
+          <var-decl name='repair_queue' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13816'>
+          <var-decl name='save_syn' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13818'>
+          <var-decl name='syn_data' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13819'>
+          <var-decl name='syn_fastopen' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13820'>
+          <var-decl name='syn_fastopen_exp' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='247' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13821'>
+          <var-decl name='syn_fastopen_ch' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13822'>
+          <var-decl name='syn_data_acked' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13823'>
+          <var-decl name='is_cwnd_limited' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13824'>
+          <var-decl name='tlp_high_seq' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13856'>
+          <var-decl name='tcp_tx_delay' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13888'>
+          <var-decl name='tcp_wstamp_ns' type-id='91ce1af9' visibility='default' filepath='include/linux/tcp.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13952'>
+          <var-decl name='tcp_clock_cache' type-id='91ce1af9' visibility='default' filepath='include/linux/tcp.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14016'>
+          <var-decl name='tcp_mstamp' type-id='91ce1af9' visibility='default' filepath='include/linux/tcp.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14080'>
+          <var-decl name='srtt_us' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14112'>
+          <var-decl name='mdev_us' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14144'>
+          <var-decl name='mdev_max_us' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14176'>
+          <var-decl name='rttvar_us' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14208'>
+          <var-decl name='rtt_seq' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14240'>
+          <var-decl name='rtt_min' type-id='0df12a77' visibility='default' filepath='include/linux/tcp.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14432'>
+          <var-decl name='packets_out' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14464'>
+          <var-decl name='retrans_out' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14496'>
+          <var-decl name='max_packets_out' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14528'>
+          <var-decl name='max_packets_seq' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14560'>
+          <var-decl name='urg_data' type-id='1dc6a898' visibility='default' filepath='include/linux/tcp.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14576'>
+          <var-decl name='ecn_flags' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14584'>
+          <var-decl name='keepalive_probes' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14592'>
+          <var-decl name='reordering' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14624'>
+          <var-decl name='reord_seen' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14656'>
+          <var-decl name='snd_up' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14688'>
+          <var-decl name='rx_opt' type-id='08f80c5d' visibility='default' filepath='include/linux/tcp.h' line='286' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14880'>
+          <var-decl name='snd_ssthresh' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14912'>
+          <var-decl name='snd_cwnd' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14944'>
+          <var-decl name='snd_cwnd_cnt' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14976'>
+          <var-decl name='snd_cwnd_clamp' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15008'>
+          <var-decl name='snd_cwnd_used' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15040'>
+          <var-decl name='snd_cwnd_stamp' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15072'>
+          <var-decl name='prior_cwnd' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15104'>
+          <var-decl name='prr_delivered' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='298' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15136'>
+          <var-decl name='prr_out' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15168'>
+          <var-decl name='delivered' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15200'>
+          <var-decl name='delivered_ce' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15232'>
+          <var-decl name='lost' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15264'>
+          <var-decl name='app_limited' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15296'>
+          <var-decl name='first_tx_mstamp' type-id='91ce1af9' visibility='default' filepath='include/linux/tcp.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15360'>
+          <var-decl name='delivered_mstamp' type-id='91ce1af9' visibility='default' filepath='include/linux/tcp.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15424'>
+          <var-decl name='rate_delivered' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15456'>
+          <var-decl name='rate_interval_us' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15488'>
+          <var-decl name='rcv_wnd' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='310' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15520'>
+          <var-decl name='write_seq' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='311' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15552'>
+          <var-decl name='notsent_lowat' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15584'>
+          <var-decl name='pushed_seq' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='313' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15616'>
+          <var-decl name='lost_out' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15648'>
+          <var-decl name='sacked_out' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15680'>
+          <var-decl name='pacing_timer' type-id='b6993efc' visibility='default' filepath='include/linux/tcp.h' line='317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16256'>
+          <var-decl name='compressed_ack_timer' type-id='b6993efc' visibility='default' filepath='include/linux/tcp.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16832'>
+          <var-decl name='lost_skb_hint' type-id='0fbf3cfd' visibility='default' filepath='include/linux/tcp.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16896'>
+          <var-decl name='retransmit_skb_hint' type-id='0fbf3cfd' visibility='default' filepath='include/linux/tcp.h' line='322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16960'>
+          <var-decl name='out_of_order_queue' type-id='dec44472' visibility='default' filepath='include/linux/tcp.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17024'>
+          <var-decl name='ooo_last_skb' type-id='0fbf3cfd' visibility='default' filepath='include/linux/tcp.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17088'>
+          <var-decl name='duplicate_sack' type-id='e2982e38' visibility='default' filepath='include/linux/tcp.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17152'>
+          <var-decl name='selective_acks' type-id='a68b03d1' visibility='default' filepath='include/linux/tcp.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17408'>
+          <var-decl name='recv_sack_cache' type-id='a68b03d1' visibility='default' filepath='include/linux/tcp.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17664'>
+          <var-decl name='highest_sack' type-id='0fbf3cfd' visibility='default' filepath='include/linux/tcp.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17728'>
+          <var-decl name='lost_cnt_hint' type-id='95e97e5e' visibility='default' filepath='include/linux/tcp.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17760'>
+          <var-decl name='prior_ssthresh' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17792'>
+          <var-decl name='high_seq' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17824'>
+          <var-decl name='retrans_stamp' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17856'>
+          <var-decl name='undo_marker' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='348' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17888'>
+          <var-decl name='undo_retrans' type-id='95e97e5e' visibility='default' filepath='include/linux/tcp.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17920'>
+          <var-decl name='bytes_retrans' type-id='91ce1af9' visibility='default' filepath='include/linux/tcp.h' line='350' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17984'>
+          <var-decl name='total_retrans' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18016'>
+          <var-decl name='urg_seq' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18048'>
+          <var-decl name='keepalive_time' type-id='f0981eeb' visibility='default' filepath='include/linux/tcp.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18080'>
+          <var-decl name='keepalive_intvl' type-id='f0981eeb' visibility='default' filepath='include/linux/tcp.h' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18112'>
+          <var-decl name='linger2' type-id='95e97e5e' visibility='default' filepath='include/linux/tcp.h' line='359' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18144'>
+          <var-decl name='bpf_sock_ops_cb_flags' type-id='f9b06939' visibility='default' filepath='include/linux/tcp.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18160'>
+          <var-decl name='timeout_rehash' type-id='1dc6a898' visibility='default' filepath='include/linux/tcp.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18176'>
+          <var-decl name='rcv_ooopack' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='374' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18208'>
+          <var-decl name='rcv_rtt_last_tsecr' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='377' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18240'>
+          <var-decl name='rcv_rtt_est' type-id='e7f4406a' visibility='default' filepath='include/linux/tcp.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18368'>
+          <var-decl name='rcvq_space' type-id='e7f4406b' visibility='default' filepath='include/linux/tcp.h' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18496'>
+          <var-decl name='mtu_probe' type-id='e7f4406c' visibility='default' filepath='include/linux/tcp.h' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18560'>
+          <var-decl name='mtu_info' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18624'>
+          <var-decl name='fastopen_req' type-id='6499ab7d' visibility='default' filepath='include/linux/tcp.h' line='415' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18688'>
+          <var-decl name='fastopen_rsk' type-id='94c948ef' visibility='default' filepath='include/linux/tcp.h' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18752'>
+          <var-decl name='saved_syn' type-id='be9aaa19' visibility='default' filepath='include/linux/tcp.h' line='420' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18816'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/tcp.h' line='422' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9a25f4b0' size-in-bits='64' id='e3ba02e6'/>
+      <pointer-type-def type-id='1c590219' size-in-bits='64' id='e3be65f1'/>
+      <pointer-type-def type-id='7a664606' size-in-bits='64' id='e3cc7b73'/>
+      <function-type size-in-bits='64' id='e3d2455d'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='cc2ef0d1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='callback_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/types.h' line='220' column='1' id='e3d8ce29'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='69c138b1' visibility='default' filepath='include/linux/types.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='func' type-id='eb839374' visibility='default' filepath='include/linux/types.h' line='222' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='f9b06939' size-in-bits='256' id='e3dc4fdb'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <pointer-type-def type-id='8bb9a8e8' size-in-bits='64' id='e3dd029e'/>
+      <class-decl name='fb_videomode' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/fb.h' line='769' column='1' id='e3dece26'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/fb.h' line='770' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='refresh' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='771' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='xres' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='772' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='yres' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='773' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='pixclock' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='774' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='left_margin' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='775' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='right_margin' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='776' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='upper_margin' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='777' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='lower_margin' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='778' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='hsync_len' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='779' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='vsync_len' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='780' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='sync' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='781' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='vmode' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='782' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='flag' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='783' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e3dfc04c'>
+        <parameter type-id='63e6cf23'/>
+        <parameter type-id='63e171df'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e3e30c0d'>
+        <parameter type-id='dd575c43'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='e5117942' size-in-bits='64' id='e3e70e04'/>
+      <array-type-def dimensions='2' type-id='294e21e3' size-in-bits='1024' id='e3f24c55'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <pointer-type-def type-id='fac43f4c' size-in-bits='64' id='e3fbbc86'/>
+      <pointer-type-def type-id='883b3327' size-in-bits='64' id='e3fceddb'/>
+      <pointer-type-def type-id='261b7c73' size-in-bits='64' id='e4038107'/>
+      <function-type size-in-bits='64' id='e4068754'>
+        <parameter type-id='8582e5ec'/>
+        <parameter type-id='6a662de1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='06dfa6bb' const='yes' id='e4083e44'/>
+      <pointer-type-def type-id='44b3a0ac' size-in-bits='64' id='e40f7bda'/>
+      <pointer-type-def type-id='94111b83' size-in-bits='64' id='e4163de3'/>
+      <function-type size-in-bits='64' id='e4169778'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='f772df6d'/>
+        <return type-id='68a2d05b'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='95e97e5e' size-in-bits='192' id='e41bdf22'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <enum-decl name='scsi_host_state' filepath='include/scsi/scsi_host.h' line='536' column='1' id='e41e14c7'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SHOST_CREATED' value='1'/>
+        <enumerator name='SHOST_RUNNING' value='2'/>
+        <enumerator name='SHOST_CANCEL' value='3'/>
+        <enumerator name='SHOST_DEL' value='4'/>
+        <enumerator name='SHOST_RECOVERY' value='5'/>
+        <enumerator name='SHOST_CANCEL_RECOVERY' value='6'/>
+        <enumerator name='SHOST_DEL_RECOVERY' value='7'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='95e97e5e' size-in-bits='160' id='e41e1db9'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <pointer-type-def type-id='2381d398' size-in-bits='64' id='e41e7f12'/>
+      <function-type size-in-bits='64' id='e4205152'>
+        <parameter type-id='b94a2f7c'/>
+        <parameter type-id='f9b06939'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='95e97e5e' size-in-bits='64' id='e4266c7e'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <class-decl name='canfd_frame' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/uapi/linux/can.h' line='160' column='1' id='e431553d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='can_id' type-id='ec374630' visibility='default' filepath='include/uapi/linux/can.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='len' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/can.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='flags' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/can.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='__res0' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/can.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='__res1' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/can.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='73b95420' visibility='default' filepath='include/uapi/linux/can.h' line='166' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='tracepoint_ptr_t' type-id='2448a865' filepath='include/linux/tracepoint-defs.h' line='44' column='1' id='e431ac27'/>
+      <pointer-type-def type-id='879dea4a' size-in-bits='64' id='e4330308'/>
+      <function-type size-in-bits='64' id='e4357afb'>
+        <parameter type-id='c062d7a5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='61c46dd8' size-in-bits='64' id='e4372f12'/>
+      <class-decl name='driver_private' size-in-bits='1472' is-struct='yes' visibility='default' filepath='drivers/base/base.h' line='58' column='1' id='e44b8083'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='drivers/base/base.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='klist_devices' type-id='6160a6ce' visibility='default' filepath='drivers/base/base.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='knode_bus' type-id='3d045a53' visibility='default' filepath='drivers/base/base.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='mkobj' type-id='47ed147a' visibility='default' filepath='drivers/base/base.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='driver' type-id='00c7b870' visibility='default' filepath='drivers/base/base.h' line='63' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='typec_data_role' filepath='include/linux/usb/typec.h' line='46' column='1' id='e453a0cb'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='TYPEC_DEVICE' value='0'/>
+        <enumerator name='TYPEC_HOST' value='1'/>
+      </enum-decl>
+      <qualified-type-def type-id='098cab97' const='yes' id='e45577b8'/>
+      <function-type size-in-bits='64' id='e4574076'>
+        <parameter type-id='2567e379'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='be50a64d' size-in-bits='64' id='e46089fd'/>
+      <function-type size-in-bits='64' id='e4639b91'>
+        <parameter type-id='eb5928dc'/>
+        <parameter type-id='37a6b980'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='07c93537' size-in-bits='64' id='e46f66f3'/>
+      <typedef-decl name='uintptr_t' type-id='7359adad' filepath='include/linux/types.h' line='37' column='1' id='e475ab95'/>
+      <class-decl name='ieee80211_iface_limit' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5013' column='1' id='e47a5a92'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='max' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5014' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='types' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5015' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5017' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5018' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5020' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5021' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='sk_psock_progs' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/skmsg.h' line='57' column='1' id='e48b8d96'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='msg_parser' type-id='bdcee7ae' visibility='default' filepath='include/linux/skmsg.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='stream_parser' type-id='bdcee7ae' visibility='default' filepath='include/linux/skmsg.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='stream_verdict' type-id='bdcee7ae' visibility='default' filepath='include/linux/skmsg.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='skb_verdict' type-id='bdcee7ae' visibility='default' filepath='include/linux/skmsg.h' line='61' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f611d028' size-in-bits='64' id='e4913062'/>
+      <function-type size-in-bits='64' id='e4960e7f'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='81d8927d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='dentry_operations' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/linux/dcache.h' line='141' column='1' id='e4992400'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='d_revalidate' type-id='30ab2c05' visibility='default' filepath='include/linux/dcache.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='d_weak_revalidate' type-id='30ab2c05' visibility='default' filepath='include/linux/dcache.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='d_hash' type-id='65cea51e' visibility='default' filepath='include/linux/dcache.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='d_compare' type-id='fb86b772' visibility='default' filepath='include/linux/dcache.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='d_delete' type-id='a50c1d00' visibility='default' filepath='include/linux/dcache.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='d_init' type-id='6241aa4f' visibility='default' filepath='include/linux/dcache.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='d_release' type-id='f42e15b8' visibility='default' filepath='include/linux/dcache.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='d_prune' type-id='f42e15b8' visibility='default' filepath='include/linux/dcache.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='d_iput' type-id='40363cbb' visibility='default' filepath='include/linux/dcache.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='d_dname' type-id='84618a95' visibility='default' filepath='include/linux/dcache.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='d_automount' type-id='da81d789' visibility='default' filepath='include/linux/dcache.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='d_manage' type-id='6eededc8' visibility='default' filepath='include/linux/dcache.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='d_real' type-id='3cce524c' visibility='default' filepath='include/linux/dcache.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='d_canonical_path' type-id='8581ac2b' visibility='default' filepath='include/linux/dcache.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/dcache.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/dcache.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/dcache.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/dcache.h' line='160' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e4a6917b'>
+        <parameter type-id='51a94113'/>
+        <parameter type-id='2f9b8041'/>
+        <return type-id='27f3f5d8'/>
+      </function-type>
+      <pointer-type-def type-id='d1a7f9af' size-in-bits='64' id='e4a73b37'/>
+      <class-decl name='srcu_struct' size-in-bits='5568' is-struct='yes' visibility='default' filepath='include/linux/srcutree.h' line='64' column='1' id='e4a7867c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='01115b96' visibility='default' filepath='include/linux/srcutree.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='level' type-id='2f7565c6' visibility='default' filepath='include/linux/srcutree.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='srcu_cb_mutex' type-id='925167dc' visibility='default' filepath='include/linux/srcutree.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/srcutree.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='srcu_gp_mutex' type-id='925167dc' visibility='default' filepath='include/linux/srcutree.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='srcu_idx' type-id='f0981eeb' visibility='default' filepath='include/linux/srcutree.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='srcu_gp_seq' type-id='7359adad' visibility='default' filepath='include/linux/srcutree.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='srcu_gp_seq_needed' type-id='7359adad' visibility='default' filepath='include/linux/srcutree.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='srcu_gp_seq_needed_exp' type-id='7359adad' visibility='default' filepath='include/linux/srcutree.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='srcu_last_gp_end' type-id='7359adad' visibility='default' filepath='include/linux/srcutree.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='sda' type-id='2a5ff2f1' visibility='default' filepath='include/linux/srcutree.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='srcu_barrier_seq' type-id='7359adad' visibility='default' filepath='include/linux/srcutree.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='srcu_barrier_mutex' type-id='925167dc' visibility='default' filepath='include/linux/srcutree.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='srcu_barrier_completion' type-id='f9fef04f' visibility='default' filepath='include/linux/srcutree.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='srcu_barrier_cpu_cnt' type-id='49178f86' visibility='default' filepath='include/linux/srcutree.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4480'>
+          <var-decl name='work' type-id='5ad6e0ef' visibility='default' filepath='include/linux/srcutree.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='dep_map' type-id='d34a605e' visibility='default' filepath='include/linux/srcutree.h' line='85' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bdbf2231' size-in-bits='64' id='e4acc659'/>
+      <class-decl name='attribute_group' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/sysfs.h' line='84' column='1' id='e4af473b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' 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='f69fcfe1' 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='cc3e2efb' 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='862c676f' 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='87d62959' visibility='default' filepath='include/linux/sysfs.h' line='91' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4157d9cf' size-in-bits='64' id='e4b24123'/>
+      <function-type size-in-bits='64' id='e4bb0da5'>
+        <parameter type-id='27f3f5d8'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='0e3f80d9'/>
+      </function-type>
+      <pointer-type-def type-id='7dd771e0' size-in-bits='64' id='e4bfbb5a'/>
+      <class-decl name='rhashtable_params' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/rhashtable-types.h' line='56' column='1' id='e4c11782'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nelem_hint' type-id='1dc6a898' visibility='default' filepath='include/linux/rhashtable-types.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='key_len' type-id='1dc6a898' visibility='default' filepath='include/linux/rhashtable-types.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='key_offset' type-id='1dc6a898' visibility='default' filepath='include/linux/rhashtable-types.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='head_offset' type-id='1dc6a898' visibility='default' filepath='include/linux/rhashtable-types.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max_size' type-id='f0981eeb' visibility='default' filepath='include/linux/rhashtable-types.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='min_size' type-id='1dc6a898' visibility='default' filepath='include/linux/rhashtable-types.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='automatic_shrinking' type-id='b50a4934' visibility='default' filepath='include/linux/rhashtable-types.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hashfn' type-id='07fa0d18' visibility='default' filepath='include/linux/rhashtable-types.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='obj_hashfn' type-id='365fa902' visibility='default' filepath='include/linux/rhashtable-types.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='obj_cmpfn' type-id='a8e15d8c' visibility='default' filepath='include/linux/rhashtable-types.h' line='66' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='icmpv6msg_mib_device' size-in-bits='32768' is-struct='yes' visibility='default' filepath='include/net/snmp.h' line='85' column='1' id='e4ca98d1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mibs' type-id='61cd76ae' visibility='default' filepath='include/net/snmp.h' line='86' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e4cb80c8'>
+        <parameter type-id='51a94113' name='clkspec'/>
+        <parameter type-id='eaa32e2f' name='data'/>
+        <return type-id='3aaeef89'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e4d537fa'>
+        <parameter type-id='a585cbc4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='u64_stats_sync' is-struct='yes' visibility='default' filepath='include/linux/u64_stats_sync.h' line='68' column='1' id='e4d85780'/>
+      <class-decl name='media_device' size-in-bits='5568' is-struct='yes' visibility='default' filepath='include/media/media-device.h' line='144' column='1' id='e4dc0de6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/media/media-device.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='devnode' type-id='f3496bd3' visibility='default' filepath='include/media/media-device.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='model' type-id='16dc656a' visibility='default' filepath='include/media/media-device.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='driver_name' type-id='16dc656a' visibility='default' filepath='include/media/media-device.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='serial' type-id='36c46961' visibility='default' filepath='include/media/media-device.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='bus_info' type-id='16dc656a' visibility='default' filepath='include/media/media-device.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='hw_revision' type-id='19c2251e' visibility='default' filepath='include/media/media-device.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='topology_version' type-id='91ce1af9' visibility='default' filepath='include/media/media-device.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='id' type-id='19c2251e' visibility='default' filepath='include/media/media-device.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='entity_internal_idx' type-id='46ce60fb' visibility='default' filepath='include/media/media-device.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='entity_internal_idx_max' type-id='95e97e5e' visibility='default' filepath='include/media/media-device.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='entities' type-id='72f469ec' visibility='default' filepath='include/media/media-device.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='interfaces' type-id='72f469ec' visibility='default' filepath='include/media/media-device.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='pads' type-id='72f469ec' visibility='default' filepath='include/media/media-device.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='links' type-id='72f469ec' visibility='default' filepath='include/media/media-device.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='entity_notify' type-id='72f469ec' visibility='default' filepath='include/media/media-device.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='graph_mutex' type-id='925167dc' visibility='default' filepath='include/media/media-device.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='pm_count_walk' type-id='32ec86e0' visibility='default' filepath='include/media/media-device.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4864'>
+          <var-decl name='source_priv' type-id='eaa32e2f' visibility='default' filepath='include/media/media-device.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4928'>
+          <var-decl name='enable_source' type-id='c3e03202' visibility='default' filepath='include/media/media-device.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='disable_source' type-id='35aeb76e' visibility='default' filepath='include/media/media-device.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5056'>
+          <var-decl name='ops' type-id='306dc166' visibility='default' filepath='include/media/media-device.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='req_queue_mutex' type-id='925167dc' visibility='default' filepath='include/media/media-device.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='request_id' type-id='49178f86' visibility='default' filepath='include/media/media-device.h' line='181' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6acd3f8a' size-in-bits='64' id='e4dceff4'/>
+      <array-type-def dimensions='1' type-id='72f469ec' size-in-bits='640' id='e4e01aff'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <class-decl name='driver_data' is-struct='yes' visibility='default' is-declaration-only='yes' id='e4e53fc0'/>
+      <array-type-def dimensions='1' type-id='72f469ec' size-in-bits='768' id='e4e6d6c4'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='72f469ec' size-in-bits='256' id='e4f16420'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <qualified-type-def type-id='2d3dd5e3' const='yes' id='e4f938dc'/>
+      <function-type size-in-bits='64' id='e4fd322d'>
+        <parameter type-id='5771c601'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='d8e6b335'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e5015777'>
+        <parameter type-id='30864cdc'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='002ac4a6'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='68a2d05b'/>
+      </function-type>
+      <pointer-type-def type-id='e073b6fc' size-in-bits='64' id='e5015ca6'/>
+      <function-type size-in-bits='64' id='e501fad6'>
+        <parameter type-id='6f3c82ac'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e50f8907'>
+        <parameter type-id='85196e3f'/>
+        <return type-id='19c2251e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e5117942'>
+        <parameter type-id='898c1076'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='dst_metrics' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/net/dst.h' line='82' column='1' id='e51de182'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='metrics' type-id='46fc18d9' visibility='default' filepath='include/net/dst.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/net/dst.h' line='84' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='30e60925' size-in-bits='832' id='e521ce61'>
+        <subrange length='13' type-id='7ff19f0f' id='487fded1'/>
+      </array-type-def>
+      <pointer-type-def type-id='d2d812d1' size-in-bits='64' id='e525e121'/>
+      <pointer-type-def type-id='3d24528f' size-in-bits='64' id='e52e19bf'/>
+      <pointer-type-def type-id='bb06f572' size-in-bits='64' id='e53d7a90'/>
+      <qualified-type-def type-id='fe71fd28' const='yes' id='e53f43b5'/>
+      <pointer-type-def type-id='d6a54726' size-in-bits='64' id='e5411c2c'/>
+      <qualified-type-def type-id='ff1a03f4' const='yes' id='e542e4ad'/>
+      <class-decl name='cgroup_namespace' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/cgroup.h' line='866' column='1' id='e54806c5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ns' type-id='99f367f2' visibility='default' filepath='include/linux/cgroup.h' line='867' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='user_ns' type-id='c0ced320' visibility='default' filepath='include/linux/cgroup.h' line='868' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ucounts' type-id='b1d4934a' visibility='default' filepath='include/linux/cgroup.h' line='869' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='root_cset' type-id='85d57723' visibility='default' filepath='include/linux/cgroup.h' line='870' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2f8662b5' size-in-bits='64' id='e55856e5'/>
+      <pointer-type-def type-id='3f017308' size-in-bits='64' id='e55edb2e'/>
+      <pointer-type-def type-id='52c77032' size-in-bits='64' id='e5635fec'/>
+      <class-decl name='v4l2_ctrl_hevc_slice_params' size-in-bits='2240' is-struct='yes' visibility='default' filepath='include/media/hevc-ctrls.h' line='170' column='1' id='e565fd94'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bit_size' type-id='3f1a6b60' visibility='default' filepath='include/media/hevc-ctrls.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='data_bit_offset' type-id='3f1a6b60' visibility='default' filepath='include/media/hevc-ctrls.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nal_unit_type' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='nuh_temporal_id_plus1' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='slice_type' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='colour_plane_id' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='slice_pic_order_cnt' type-id='d315442e' visibility='default' filepath='include/media/hevc-ctrls.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='num_ref_idx_l0_active_minus1' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='num_ref_idx_l1_active_minus1' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='collocated_ref_idx' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='136'>
+          <var-decl name='five_minus_max_num_merge_cand' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='slice_qp_delta' type-id='8af57d41' visibility='default' filepath='include/media/hevc-ctrls.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='slice_cb_qp_offset' type-id='8af57d41' visibility='default' filepath='include/media/hevc-ctrls.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='slice_cr_qp_offset' type-id='8af57d41' visibility='default' filepath='include/media/hevc-ctrls.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='168'>
+          <var-decl name='slice_act_y_qp_offset' type-id='8af57d41' visibility='default' filepath='include/media/hevc-ctrls.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='slice_act_cb_qp_offset' type-id='8af57d41' visibility='default' filepath='include/media/hevc-ctrls.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='184'>
+          <var-decl name='slice_act_cr_qp_offset' type-id='8af57d41' visibility='default' filepath='include/media/hevc-ctrls.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='slice_beta_offset_div2' type-id='8af57d41' visibility='default' filepath='include/media/hevc-ctrls.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='slice_tc_offset_div2' type-id='8af57d41' visibility='default' filepath='include/media/hevc-ctrls.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='pic_struct' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='slice_segment_addr' type-id='3f1a6b60' visibility='default' filepath='include/media/hevc-ctrls.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ref_idx_l0' type-id='9396cabb' visibility='default' filepath='include/media/hevc-ctrls.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ref_idx_l1' type-id='9396cabb' visibility='default' filepath='include/media/hevc-ctrls.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='padding' type-id='8f048e17' visibility='default' filepath='include/media/hevc-ctrls.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='520'>
+          <var-decl name='pred_weight_table' type-id='c1b5e872' visibility='default' filepath='include/media/hevc-ctrls.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='flags' type-id='d3130597' visibility='default' filepath='include/media/hevc-ctrls.h' line='208' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='inet_frags' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/net/inet_frag.h' line='99' column='1' id='e56bc2e5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='qsize' type-id='f0981eeb' visibility='default' filepath='include/net/inet_frag.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='constructor' type-id='82a6d477' visibility='default' filepath='include/net/inet_frag.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='destructor' type-id='7e20177b' visibility='default' filepath='include/net/inet_frag.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='frag_expire' type-id='9582ad9a' visibility='default' filepath='include/net/inet_frag.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='frags_cachep' type-id='f3b4aca8' visibility='default' filepath='include/net/inet_frag.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='frags_cache_name' type-id='80f4b756' visibility='default' filepath='include/net/inet_frag.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='rhash_params' type-id='e4c11782' visibility='default' filepath='include/net/inet_frag.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/net/inet_frag.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='completion' type-id='f9fef04f' visibility='default' filepath='include/net/inet_frag.h' line='110' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='gpd_dev_ops' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/pm_domain.h' line='89' column='1' id='e56d1ecd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='start' type-id='613d39f5' visibility='default' filepath='include/linux/pm_domain.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='stop' type-id='613d39f5' visibility='default' filepath='include/linux/pm_domain.h' line='91' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='Elf64_Word' type-id='3f1a6b60' filepath='include/uapi/linux/elf.h' line='21' column='1' id='e57120d4'/>
+      <class-decl name='perf_event_attr' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/uapi/linux/perf_event.h' line='338' column='1' id='e57536d9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/perf_event.h' line='343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/perf_event.h' line='348' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='config' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='' type-id='ac5ab5a0' visibility='default' filepath='include/uapi/linux/perf_event.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sample_type' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='read_format' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='disabled' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='363' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='321'>
+          <var-decl name='inherit' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='322'>
+          <var-decl name='pinned' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='365' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='323'>
+          <var-decl name='exclusive' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='324'>
+          <var-decl name='exclude_user' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='367' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='325'>
+          <var-decl name='exclude_kernel' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='368' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='326'>
+          <var-decl name='exclude_hv' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='369' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='327'>
+          <var-decl name='exclude_idle' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='328'>
+          <var-decl name='mmap' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='371' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='329'>
+          <var-decl name='comm' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='330'>
+          <var-decl name='freq' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='373' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='331'>
+          <var-decl name='inherit_stat' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='374' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='332'>
+          <var-decl name='enable_on_exec' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='333'>
+          <var-decl name='task' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='334'>
+          <var-decl name='watermark' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='377' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='335'>
+          <var-decl name='precise_ip' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='337'>
+          <var-decl name='mmap_data' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='338'>
+          <var-decl name='sample_id_all' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='339'>
+          <var-decl name='exclude_host' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='340'>
+          <var-decl name='exclude_guest' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='393' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='341'>
+          <var-decl name='exclude_callchain_kernel' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='342'>
+          <var-decl name='exclude_callchain_user' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='343'>
+          <var-decl name='mmap2' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='397' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='344'>
+          <var-decl name='comm_exec' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='345'>
+          <var-decl name='use_clockid' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='346'>
+          <var-decl name='context_switch' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='347'>
+          <var-decl name='write_backward' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='348'>
+          <var-decl name='namespaces' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='349'>
+          <var-decl name='ksymbol' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='403' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='350'>
+          <var-decl name='bpf_event' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='351'>
+          <var-decl name='aux_output' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='cgroup' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='353'>
+          <var-decl name='text_poke' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='407' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='354'>
+          <var-decl name='build_id' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='408' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='355'>
+          <var-decl name='inherit_thread' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='409' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='356'>
+          <var-decl name='remove_on_exec' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='410' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='357'>
+          <var-decl name='sigtrap' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='358'>
+          <var-decl name='__reserved_1' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='' type-id='ac5ab5a1' visibility='default' filepath='include/uapi/linux/perf_event.h' line='414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='bp_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/perf_event.h' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='' type-id='ac5ab5a2' visibility='default' filepath='include/uapi/linux/perf_event.h' line='420' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='' type-id='ac5ab5a3' visibility='default' filepath='include/uapi/linux/perf_event.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='branch_sample_type' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='432' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='sample_regs_user' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='438' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='sample_stack_user' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/perf_event.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='clockid' type-id='3158a266' visibility='default' filepath='include/uapi/linux/perf_event.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='sample_regs_intr' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='aux_watermark' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/perf_event.h' line='459' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='sample_max_stack' type-id='d315442e' visibility='default' filepath='include/uapi/linux/perf_event.h' line='460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='880'>
+          <var-decl name='__reserved_2' type-id='d315442e' visibility='default' filepath='include/uapi/linux/perf_event.h' line='461' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='aux_sample_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/perf_event.h' line='462' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='__reserved_3' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/perf_event.h' line='463' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='sig_data' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='469' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='drm_color_encoding' filepath='include/drm/drm_color_mgmt.h' line='77' column='1' id='e57e5f2b'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DRM_COLOR_YCBCR_BT601' value='0'/>
+        <enumerator name='DRM_COLOR_YCBCR_BT709' value='1'/>
+        <enumerator name='DRM_COLOR_YCBCR_BT2020' value='2'/>
+        <enumerator name='DRM_COLOR_ENCODING_MAX' value='3'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='e589860a'>
+        <parameter type-id='2bf16f59'/>
+        <parameter type-id='df4b7819'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='3293d126' size-in-bits='64' id='e58f29ef'/>
+      <pointer-type-def type-id='d81af048' size-in-bits='64' id='e5932b8e'/>
+      <class-decl name='iio_buffer_access_funcs' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='48' column='1' id='e59f755e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='store_to' type-id='3168497d' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='read' type-id='268afde6' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data_available' type-id='6bfc1e31' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='request_update' type-id='098b33c1' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='set_bytes_per_datum' type-id='07aa12a2' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='set_length' type-id='e78e2dfb' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='enable' type-id='7c9900c6' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='disable' type-id='7c9900c6' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='release' type-id='50968132' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='modes' type-id='f0981eeb' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/iio/buffer_impl.h' line='64' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e5a6600d'>
+        <parameter type-id='8e5a8430'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e5a91b7f'>
+        <parameter type-id='855e3679'/>
+        <parameter type-id='02e48bc6'/>
+        <return type-id='f0981eeb'/>
+      </function-type>
+      <class-decl name='usb_os_desc' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/linux/usb/composite.h' line='93' column='1' id='e5af4d64'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ext_compat_id' type-id='26a90f95' visibility='default' filepath='include/linux/usb/composite.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ext_prop' type-id='72f469ec' visibility='default' filepath='include/linux/usb/composite.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ext_prop_len' type-id='95e97e5e' visibility='default' filepath='include/linux/usb/composite.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='ext_prop_count' type-id='95e97e5e' visibility='default' filepath='include/linux/usb/composite.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='opts_mutex' type-id='e0ea832a' visibility='default' filepath='include/linux/usb/composite.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='group' type-id='f05eea43' visibility='default' filepath='include/linux/usb/composite.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/usb/composite.h' line='100' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='423ef8f4' size-in-bits='64' id='e5b0996e'/>
+      <function-type size-in-bits='64' id='e5b46beb'>
+        <parameter type-id='75ae4804'/>
+        <parameter type-id='39486498'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e5bc390e'>
+        <parameter type-id='f23e2572'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ir_raw_timings_pd' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='271' column='1' id='e5be2360'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='header_pulse' type-id='f0981eeb' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='header_space' type-id='f0981eeb' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bit_pulse' type-id='f0981eeb' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='bit_space' type-id='0d532ec1' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='trailer_pulse' type-id='f0981eeb' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='trailer_space' type-id='f0981eeb' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='msb_first' type-id='f0981eeb' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='278' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_bt_timings_cap' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1609' column='1' id='e5bfe593'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='min_width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1610' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='max_width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='min_height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1612' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='max_height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1613' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='min_pixelclock' type-id='d3130597' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1614' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='max_pixelclock' type-id='d3130597' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1615' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='standards' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1616' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='capabilities' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1617' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='reserved' type-id='9d2cf33e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1618' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='61ee6b58' size-in-bits='64' id='e5c0a9a2'/>
+      <array-type-def dimensions='1' type-id='7fdcd183' size-in-bits='infinite' id='e5c7d3c7'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='e5cda869'>
+        <parameter type-id='810606ec'/>
+        <parameter type-id='810606ec'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c46fad80' size-in-bits='64' id='e5ce629e'/>
+      <function-type size-in-bits='64' id='e5ceda9f'>
+        <parameter type-id='c0f00785'/>
+        <parameter type-id='02f11ed4'/>
+        <parameter type-id='02f11ed4'/>
+        <parameter type-id='157252dd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='da0e76a0' const='yes' id='e5d19dc7'/>
+      <array-type-def dimensions='1' type-id='3158a266' size-in-bits='64' id='e5d37c7b'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <class-decl name='xhci_event_cmd' size-in-bits='128' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='1230' column='1' id='e5ddb711'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd_trb' type-id='a30e8d1f' visibility='default' filepath='drivers/usb/host/xhci.h' line='1232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='status' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='1233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='2f162548' visibility='default' filepath='drivers/usb/host/xhci.h' line='1234' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='6d54709d' const='yes' id='e5e56b24'/>
+      <class-decl name='iova_fq' size-in-bits='65664' is-struct='yes' visibility='default' filepath='include/linux/iova.h' line='61' column='1' id='e5e68fcc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='entries' type-id='370ec9f4' visibility='default' filepath='include/linux/iova.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='65536'>
+          <var-decl name='head' type-id='f0981eeb' visibility='default' filepath='include/linux/iova.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='65568'>
+          <var-decl name='tail' type-id='f0981eeb' visibility='default' filepath='include/linux/iova.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='65600'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/iova.h' line='64' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ttm_global' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='52' column='1' id='e5e722f6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dummy_read_page' type-id='02f11ed4' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='device_list' type-id='72f469ec' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bo_count' type-id='49178f86' visibility='default' filepath='include/drm/ttm/ttm_device.h' line='68' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_vblank_crtc' size-in-bits='2560' is-struct='yes' visibility='default' filepath='include/drm/drm_vblank.h' line='91' column='1' id='e5ebb0e4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='8898134d' visibility='default' filepath='include/drm/drm_vblank.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='queue' type-id='b5ab048f' visibility='default' filepath='include/drm/drm_vblank.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='disable_timer' type-id='abe41e67' visibility='default' filepath='include/drm/drm_vblank.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='seqlock' type-id='e6cd5ecf' visibility='default' filepath='include/drm/drm_vblank.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='count' type-id='28ee064c' visibility='default' filepath='include/drm/drm_vblank.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='time' type-id='fbc017ef' visibility='default' filepath='include/drm/drm_vblank.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='refcount' type-id='49178f86' visibility='default' filepath='include/drm/drm_vblank.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='last' type-id='19c2251e' visibility='default' filepath='include/drm/drm_vblank.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='max_vblank_count' type-id='19c2251e' visibility='default' filepath='include/drm/drm_vblank.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='inmodeset' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_vblank.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='pipe' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_vblank.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='framedur_ns' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_vblank.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='linedur_ns' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_vblank.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='hwmode' type-id='55efd1a3' visibility='default' filepath='include/drm/drm_vblank.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='enabled' type-id='b50a4934' visibility='default' filepath='include/drm/drm_vblank.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='worker' type-id='c41f4539' visibility='default' filepath='include/drm/drm_vblank.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='pending_work' type-id='72f469ec' visibility='default' filepath='include/drm/drm_vblank.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='work_wait_queue' type-id='b5ab048f' visibility='default' filepath='include/drm/drm_vblank.h' line='225' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0d8415b5' size-in-bits='64' id='e5ee094d'/>
+      <class-decl name='v4l2_enc_idx' size-in-bits='16576' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2042' column='1' id='e5f6c4d2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='entries' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2043' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='entries_cap' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2044' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reserved' type-id='3fa29bab' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2045' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='entry' type-id='faa42463' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2046' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e5fd9491'>
+        <parameter type-id='18881289'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='b53e8dbb'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='5d633b6b' size-in-bits='64' id='e5ffb4bb'/>
+      <array-type-def dimensions='1' type-id='ebccef5f' size-in-bits='96' id='e6001147'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <pointer-type-def type-id='960bee7e' size-in-bits='64' id='e6032f80'/>
+      <enum-decl name='zs_mapmode' filepath='include/linux/zsmalloc.h' line='24' column='1' id='e60459a5'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ZS_MM_RW' value='0'/>
+        <enumerator name='ZS_MM_RO' value='1'/>
+        <enumerator name='ZS_MM_WO' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='d2bdcec3' size-in-bits='64' id='e60f1e27'/>
+      <pointer-type-def type-id='d97649a6' size-in-bits='64' id='e6106240'/>
+      <function-type size-in-bits='64' id='e613f28a'>
+        <parameter type-id='247dd85c'/>
+        <parameter type-id='bbaf3419'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='sk_buff_head' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/skbuff.h' line='299' column='1' id='e61c85d0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='0fbf3cfd' visibility='default' filepath='include/linux/skbuff.h' line='301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='prev' type-id='0fbf3cfd' visibility='default' filepath='include/linux/skbuff.h' line='302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='qlen' type-id='3f1a6b60' visibility='default' filepath='include/linux/skbuff.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/skbuff.h' line='305' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='new_page_t' type-id='5824bc76' filepath='include/linux/migrate.h' line='10' column='1' id='e61ec55f'/>
+      <function-type size-in-bits='64' id='e625eab0'>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='edcbd723'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='08aeec0d' size-in-bits='64' id='e62a60bd'/>
+      <function-type size-in-bits='64' id='e636858f'>
+        <parameter type-id='5dbfcbb1'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='06ce3ba1'/>
+        <parameter type-id='d0d85e9d'/>
+        <parameter type-id='13956559'/>
+        <parameter type-id='cfe2266a'/>
+        <parameter type-id='8a876638'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='68d8e236' size-in-bits='64' id='e638cd0c'/>
+      <pointer-type-def type-id='c58b95e0' size-in-bits='64' id='e63c1e62'/>
+      <class-decl name='xxh64_state' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/xxhash.h' line='160' column='1' id='e63c6643'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='total_len' type-id='9c313c2d' visibility='default' filepath='include/linux/xxhash.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='v1' type-id='9c313c2d' visibility='default' filepath='include/linux/xxhash.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='v2' type-id='9c313c2d' visibility='default' filepath='include/linux/xxhash.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='v3' type-id='9c313c2d' visibility='default' filepath='include/linux/xxhash.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='v4' type-id='9c313c2d' visibility='default' filepath='include/linux/xxhash.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mem64' type-id='85c64d26' visibility='default' filepath='include/linux/xxhash.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='memsize' type-id='8f92235e' visibility='default' filepath='include/linux/xxhash.h' line='167' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e64743d7'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='a52f8809'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='rt_rq' size-in-bits='13568' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='647' column='1' id='e648d771'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='active' type-id='3ac6deac' visibility='default' filepath='kernel/sched/sched.h' line='648' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12928'>
+          <var-decl name='rt_nr_running' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='649' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12960'>
+          <var-decl name='rr_nr_running' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='650' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12992'>
+          <var-decl name='highest_prio' type-id='e7f44043' visibility='default' filepath='kernel/sched/sched.h' line='657' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13056'>
+          <var-decl name='rt_nr_migratory' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='660' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13088'>
+          <var-decl name='rt_nr_total' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='661' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13120'>
+          <var-decl name='overloaded' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='662' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13184'>
+          <var-decl name='pushable_tasks' type-id='57b0eed2' visibility='default' filepath='kernel/sched/sched.h' line='663' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13312'>
+          <var-decl name='rt_queued' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='666' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13344'>
+          <var-decl name='rt_throttled' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='668' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13376'>
+          <var-decl name='rt_time' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='669' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13440'>
+          <var-decl name='rt_runtime' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='670' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13504'>
+          <var-decl name='rt_runtime_lock' type-id='f5c90b3f' visibility='default' filepath='kernel/sched/sched.h' line='672' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9bf7ec75' size-in-bits='64' id='e649198d'/>
+      <pointer-type-def type-id='2a8a6332' size-in-bits='64' id='e6532500'/>
+      <class-decl name='v4l2_vp8_entropy_coder_state' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1792' column='1' id='e65ce076'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='range' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1793' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='value' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1794' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bit_count' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1795' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='padding' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1796' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='42eb83d1' size-in-bits='64' id='e6634369'/>
+      <pointer-type-def type-id='76c532c4' size-in-bits='64' id='e66f2caa'/>
+      <pointer-type-def type-id='9e095f93' size-in-bits='64' id='e6726ce3'/>
+      <array-type-def dimensions='1' type-id='3293d126' size-in-bits='1048640' id='e674f1f8'>
+        <subrange length='131080' type-id='7ff19f0f' id='9cccf546'/>
+      </array-type-def>
+      <class-decl name='mmc_pwrseq_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/mmc/core/pwrseq.h' line='16' column='1' id='e67a5dc2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pre_power_on' type-id='fa3ed3a2' visibility='default' filepath='drivers/mmc/core/pwrseq.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='post_power_on' type-id='fa3ed3a2' visibility='default' filepath='drivers/mmc/core/pwrseq.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='power_off' type-id='fa3ed3a2' visibility='default' filepath='drivers/mmc/core/pwrseq.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='reset' type-id='fa3ed3a2' visibility='default' filepath='drivers/mmc/core/pwrseq.h' line='20' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e6814f11'>
+        <parameter type-id='15b1f129'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='6fab59d9' const='yes' id='e682e2f0'/>
+      <pointer-type-def type-id='9146866a' size-in-bits='64' id='e684e5d4'/>
+      <function-type size-in-bits='64' id='e68701d5'>
+        <parameter type-id='02913b69'/>
+        <parameter type-id='f9409001'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e68a6e6a'>
+        <parameter type-id='6b1642ae'/>
+        <parameter type-id='ab85b8f2'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='0e59314e' size-in-bits='64' id='e68dc824'/>
+      <pointer-type-def type-id='f01bc099' size-in-bits='64' id='e68e04c1'/>
+      <pointer-type-def type-id='f8bc06ac' size-in-bits='64' id='e699de6a'/>
+      <class-decl name='devlink_info_req' size-in-bits='64' is-struct='yes' visibility='default' filepath='net/core/devlink.c' line='5869' column='1' id='e69aabca'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='msg' type-id='0fbf3cfd' visibility='default' filepath='net/core/devlink.c' line='5870' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f4b65c68' size-in-bits='64' id='e69c040e'/>
+      <function-type size-in-bits='64' id='e69c1394'>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='error_injection_entry' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/asm-generic/error-injection.h' line='14' column='1' id='e6a2a878'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='7359adad' visibility='default' filepath='include/asm-generic/error-injection.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='etype' type-id='95e97e5e' visibility='default' filepath='include/asm-generic/error-injection.h' line='16' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='led_classdev_flash' size-in-bits='4032' is-struct='yes' visibility='default' filepath='include/linux/led-class-flash.h' line='65' column='1' id='e6a2c851'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='led_cdev' type-id='6e0e17b0' visibility='default' filepath='include/linux/led-class-flash.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='ops' type-id='4b90501b' visibility='default' filepath='include/linux/led-class-flash.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='brightness' type-id='d7244bd4' visibility='default' filepath='include/linux/led-class-flash.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='timeout' type-id='d7244bd4' visibility='default' filepath='include/linux/led-class-flash.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='sysfs_groups' type-id='9f18d529' visibility='default' filepath='include/linux/led-class-flash.h' line='79' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='vhost_work_fn_t' type-id='b38e2e84' filepath='drivers/vhost/vhost.h' line='19' column='1' id='e6a6a6c6'/>
+      <class-decl name='dwc3_event_buffer' size-in-bits='448' is-struct='yes' visibility='default' filepath='drivers/usb/dwc3/core.h' line='652' column='1' id='e6ab9148'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='buf' type-id='eaa32e2f' visibility='default' filepath='drivers/usb/dwc3/core.h' line='653' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cache' type-id='eaa32e2f' visibility='default' filepath='drivers/usb/dwc3/core.h' line='654' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='length' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='655' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='lpos' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='656' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='count' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='657' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='drivers/usb/dwc3/core.h' line='658' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dma' type-id='cf29c9b3' visibility='default' filepath='drivers/usb/dwc3/core.h' line='662' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dwc' type-id='5ac4ba20' visibility='default' filepath='drivers/usb/dwc3/core.h' line='664' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/usb/dwc3/core.h' line='666' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e6af544d'>
+        <parameter type-id='1c63cc3f'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='scsi_disposition' filepath='include/scsi/scsi.h' line='95' column='1' id='e6b6d0b6'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NEEDS_RETRY' value='8193'/>
+        <enumerator name='SUCCESS' value='8194'/>
+        <enumerator name='FAILED' value='8195'/>
+        <enumerator name='QUEUED' value='8196'/>
+        <enumerator name='SOFT_ERROR' value='8197'/>
+        <enumerator name='ADD_TO_MLQUEUE' value='8198'/>
+        <enumerator name='TIMEOUT_ERROR' value='8199'/>
+        <enumerator name='SCSI_RETURN_NOT_HANDLED' value='8200'/>
+        <enumerator name='FAST_IO_FAIL' value='8201'/>
+      </enum-decl>
+      <pointer-type-def type-id='f25bc2c4' size-in-bits='64' id='e6b84692'/>
+      <pointer-type-def type-id='11ed9d28' size-in-bits='64' id='e6bda83a'/>
+      <pointer-type-def type-id='f8c641b0' size-in-bits='64' id='e6c297c2'/>
+      <pointer-type-def type-id='f036a6aa' size-in-bits='64' id='e6c64d04'/>
+      <function-type size-in-bits='64' id='e6c6c6cd'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e6c6ca12'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='363a995e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='seqlock_t' type-id='ec7d93c8' filepath='include/linux/seqlock.h' line='807' column='1' id='e6cd5ecf'/>
+      <pointer-type-def type-id='da73ead4' size-in-bits='64' id='e6da64f6'/>
+      <pointer-type-def type-id='3b6188e7' size-in-bits='64' id='e6dafa73'/>
+      <pointer-type-def type-id='41eec236' size-in-bits='64' id='e6db9214'/>
+      <pointer-type-def type-id='42fd5899' size-in-bits='64' id='e6e946ad'/>
+      <pointer-type-def type-id='a59e83d6' size-in-bits='64' id='e6eda12c'/>
+      <pointer-type-def type-id='18f5da66' size-in-bits='64' id='e6f0ce4c'/>
+      <function-type size-in-bits='64' id='e6f3a13f'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='cc8d835a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e6fe4054'>
+        <parameter type-id='af051c69'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e6fedf36'>
+        <parameter type-id='02913b69'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='7e666abe' size-in-bits='192' id='e6ff92fb'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='3b3611a4' size-in-bits='512' id='e70a051a'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <qualified-type-def type-id='40af3608' const='yes' id='e70f1c73'/>
+      <class-decl name='posix_cputimer_base' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/posix-timers.h' line='118' column='1' id='e710f78e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nextevt' type-id='91ce1af9' visibility='default' filepath='include/linux/posix-timers.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tqhead' type-id='ff3c7f20' visibility='default' filepath='include/linux/posix-timers.h' line='120' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e7176377'>
+        <parameter type-id='2feec21f'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='mmc_cqe_ops' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/mmc/host.h' line='223' column='1' id='e726245b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cqe_enable' type-id='6847d33d' visibility='default' filepath='include/linux/mmc/host.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cqe_disable' type-id='fa3ed3a2' visibility='default' filepath='include/linux/mmc/host.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cqe_request' type-id='83cb8e80' visibility='default' filepath='include/linux/mmc/host.h' line='232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cqe_post_req' type-id='624a8813' visibility='default' filepath='include/linux/mmc/host.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='cqe_off' type-id='fa3ed3a2' visibility='default' filepath='include/linux/mmc/host.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='cqe_wait_for_idle' type-id='e2d63f85' visibility='default' filepath='include/linux/mmc/host.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='cqe_timeout' type-id='885a96c2' visibility='default' filepath='include/linux/mmc/host.h' line='251' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='cqe_recovery_start' type-id='fa3ed3a2' visibility='default' filepath='include/linux/mmc/host.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='cqe_recovery_finish' type-id='fa3ed3a2' visibility='default' filepath='include/linux/mmc/host.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/mmc/host.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/mmc/host.h' line='267' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e72900f8'>
+        <parameter type-id='63a08bf7'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e72c7191'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='a05f1ecd'/>
+        <parameter type-id='a05f1ecd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e74568be'>
+        <parameter type-id='7e666abe'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e74bcc7b'>
+        <parameter type-id='2ae08426'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='ufs_stats' size-in-bits='13696' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='485' column='1' id='e7596927'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='last_intr_status' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='last_intr_ts' type-id='fbc017ef' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hibern8_exit_cnt' type-id='19c2251e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='last_hibern8_exit_tstamp' type-id='fbc017ef' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='event' type-id='52012fd7' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='491' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e4169778' size-in-bits='64' id='e75bbd8a'/>
+      <pointer-type-def type-id='36c71786' size-in-bits='64' id='e76a43c4'/>
+      <typedef-decl name='ZSTD_allocFunction' type-id='09f6f8ed' filepath='lib/zstd/zstd_internal.h' line='227' column='1' id='e76c3bdd'/>
+      <function-type size-in-bits='64' id='e76f1d29'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='eea6b025'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='9ac6a7ee' size-in-bits='64' id='e770e054'/>
+      <class-decl name='snd_pcm_hw_constraint_ratnums' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/sound/pcm.h' line='272' column='1' id='e77ac310'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nrats' type-id='95e97e5e' visibility='default' filepath='include/sound/pcm.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rats' type-id='9ba83649' visibility='default' filepath='include/sound/pcm.h' line='274' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='339a9d49' size-in-bits='64' id='e77f5b05'/>
+      <class-decl name='sysfs_ops' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/sysfs.h' line='238' column='1' id='e7826ffa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='show' type-id='434e45fe' visibility='default' filepath='include/linux/sysfs.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='store' type-id='855e70d2' visibility='default' filepath='include/linux/sysfs.h' line='240' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_simple_display_pipe_funcs' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='19' column='1' id='e7869c69'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mode_valid' type-id='78121e08' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='enable' type-id='c358cd2c' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='disable' type-id='9f0b9c3c' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='check' type-id='ece2faf3' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='update' type-id='53924d18' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='prepare_fb' type-id='5dcd6c6d' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='cleanup_fb' type-id='53924d18' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='enable_vblank' type-id='a27998cd' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='disable_vblank' type-id='9f0b9c3c' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='reset_crtc' type-id='9f0b9c3c' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='duplicate_crtc_state' type-id='109c1e8e' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='destroy_crtc_state' type-id='c3bb3528' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='reset_plane' type-id='9f0b9c3c' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='duplicate_plane_state' type-id='67da5e52' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='destroy_plane_state' type-id='53924d18' visibility='default' filepath='include/drm/drm_simple_kms_helper.h' line='207' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7e5bb1dd' size-in-bits='64' id='e78e01a9'/>
+      <pointer-type-def type-id='56310527' size-in-bits='64' id='e78e2dfb'/>
+      <pointer-type-def type-id='180e16b0' size-in-bits='64' id='e79cb28f'/>
+      <pointer-type-def type-id='324de79d' size-in-bits='64' id='e7a3c515'/>
+      <pointer-type-def type-id='32d6e955' size-in-bits='64' id='e7af4529'/>
+      <pointer-type-def type-id='c4560c68' size-in-bits='64' id='e7b2a002'/>
+      <pointer-type-def type-id='9954f7ad' size-in-bits='64' id='e7c1a985'/>
+      <typedef-decl name='__portpair' type-id='3f1a6b60' filepath='include/net/sock.h' line='117' column='1' id='e7c2a649'/>
+      <function-type size-in-bits='64' id='e7c67bff'>
+        <parameter type-id='1c475548'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='46a08c7d' size-in-bits='64' id='e7ca900d'/>
+      <class-decl name='pstore_info' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/linux/pstore.h' line='177' column='1' id='e7cedc9d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/pstore.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/pstore.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='buf_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/pstore.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='buf' type-id='26a90f95' visibility='default' filepath='include/linux/pstore.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='bufsize' type-id='b59d7dce' visibility='default' filepath='include/linux/pstore.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='read_mutex' type-id='925167dc' visibility='default' filepath='include/linux/pstore.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/linux/pstore.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='max_reason' type-id='95e97e5e' visibility='default' filepath='include/linux/pstore.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/pstore.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='open' type-id='64239305' visibility='default' filepath='include/linux/pstore.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='close' type-id='64239305' visibility='default' filepath='include/linux/pstore.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='read' type-id='974de7b3' visibility='default' filepath='include/linux/pstore.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='write' type-id='b8446eb6' visibility='default' filepath='include/linux/pstore.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='write_user' type-id='dd717a75' visibility='default' filepath='include/linux/pstore.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='erase' type-id='b8446eb6' visibility='default' filepath='include/linux/pstore.h' line='197' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='caf652c6' size-in-bits='64' id='e7d2a5fc'/>
+      <function-type size-in-bits='64' id='e7d8509c'>
+        <parameter type-id='49a58c0c'/>
+        <parameter type-id='9762ede1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='backlight_type' filepath='include/linux/backlight.h' line='40' column='1' id='e7dc2d8e'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='BACKLIGHT_RAW' value='1'/>
+        <enumerator name='BACKLIGHT_PLATFORM' value='2'/>
+        <enumerator name='BACKLIGHT_FIRMWARE' value='3'/>
+        <enumerator name='BACKLIGHT_TYPE_MAX' value='4'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='e7de3d97'>
+        <parameter type-id='feb59272'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e7e14410'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='d30bdc51'/>
+        <parameter type-id='c0e2acc9'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <pointer-type-def type-id='9729258f' size-in-bits='64' id='e7e2ea67'/>
+      <pointer-type-def type-id='14db9ec3' size-in-bits='64' id='e7ed8c5f'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='2176' is-struct='yes' is-anonymous='yes' visibility='default' filepath='arch/arm64/include/asm/ptrace.h' line='181' column='1' id='e7f43f72'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='regs' type-id='2f7ab612' visibility='default' filepath='arch/arm64/include/asm/ptrace.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='sp' type-id='91ce1af9' visibility='default' filepath='arch/arm64/include/asm/ptrace.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='pc' type-id='91ce1af9' visibility='default' filepath='arch/arm64/include/asm/ptrace.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='pstate' type-id='91ce1af9' visibility='default' filepath='arch/arm64/include/asm/ptrace.h' line='185' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='768' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='137' column='1' id='e7f43f73'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='config' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='last_tag' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='config_base' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='event_base' type-id='7359adad' visibility='default' filepath='include/linux/perf_event.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='event_base_rdpmc' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='idx' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='last_cpu' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/linux/perf_event.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='extra_reg' type-id='a80839c0' visibility='default' filepath='include/linux/perf_event.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='branch_reg' type-id='a80839c0' visibility='default' filepath='include/linux/perf_event.h' line='148' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='150' column='1' id='e7f43f74'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hrtimer' type-id='b6993efc' visibility='default' filepath='include/linux/perf_event.h' line='151' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='153' column='1' id='e7f43f75'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tp_list' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='155' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='157' column='1' id='e7f43f76'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pwr_acc' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ptsc' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='159' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='162' column='1' id='e7f43f77'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='info' type-id='b61f34eb' visibility='default' filepath='include/linux/perf_event.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bp_list' type-id='72f469ec' visibility='default' filepath='include/linux/perf_event.h' line='169' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='172' column='1' id='e7f43f78'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='iommu_bank' type-id='f9b06939' visibility='default' filepath='include/linux/perf_event.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='iommu_cntr' type-id='f9b06939' visibility='default' filepath='include/linux/perf_event.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='padding' type-id='1dc6a898' visibility='default' filepath='include/linux/perf_event.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='conf' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='conf1' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='177' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='216' column='1' id='e7f43f79'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='last_period' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='220' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='period_left' type-id='7da7300e' visibility='default' filepath='include/linux/perf_event.h' line='228' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='230' column='1' id='e7f43f7a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='saved_metric' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='saved_slots' type-id='91ce1af9' visibility='default' filepath='include/linux/perf_event.h' line='232' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='1008' column='1' id='e7f43f7b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pid' type-id='19c2251e' visibility='default' filepath='include/linux/perf_event.h' line='1009' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='tid' type-id='19c2251e' visibility='default' filepath='include/linux/perf_event.h' line='1010' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/perf_event.h' line='1015' column='1' id='e7f43f7c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cpu' type-id='19c2251e' visibility='default' filepath='include/linux/perf_event.h' line='1016' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='reserved' type-id='19c2251e' visibility='default' filepath='include/linux/perf_event.h' line='1017' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/trace_events.h' line='264' column='1' id='e7f43f7d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/trace_events.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='2448a865' visibility='default' filepath='include/linux/trace_events.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='align' type-id='2448a865' visibility='default' filepath='include/linux/trace_events.h' line='267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='is_signed' type-id='2448a865' visibility='default' filepath='include/linux/trace_events.h' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='filter_type' type-id='2448a865' visibility='default' filepath='include/linux/trace_events.h' line='269' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1203' column='1' id='e7f43f7e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mem_op' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5'>
+          <var-decl name='mem_lvl' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19'>
+          <var-decl name='mem_snoop' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='mem_lock' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26'>
+          <var-decl name='mem_dtlb' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33'>
+          <var-decl name='mem_lvl_num' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='37'>
+          <var-decl name='mem_remote' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='38'>
+          <var-decl name='mem_snoopx' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='mem_blk' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='43'>
+          <var-decl name='mem_rsvd' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1213' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1344' column='1' id='e7f43f7f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='var1_dw' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='var2_w' type-id='d315442e' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='var3_w' type-id='d315442e' visibility='default' filepath='include/uapi/linux/perf_event.h' line='1347' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/msi.h' line='142' column='1' id='e7f43f80'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab5a8' visibility='default' filepath='include/linux/msi.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='msi_attrib' type-id='e7f43f81' visibility='default' filepath='include/linux/msi.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='' type-id='ac5ab5a9' visibility='default' filepath='include/linux/msi.h' line='157' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/msi.h' line='147' column='1' id='e7f43f81'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='is_msix' type-id='f9b06939' visibility='default' filepath='include/linux/msi.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1'>
+          <var-decl name='multiple' type-id='f9b06939' visibility='default' filepath='include/linux/msi.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4'>
+          <var-decl name='multi_cap' type-id='f9b06939' visibility='default' filepath='include/linux/msi.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7'>
+          <var-decl name='can_mask' type-id='f9b06939' visibility='default' filepath='include/linux/msi.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='is_64' type-id='f9b06939' visibility='default' filepath='include/linux/msi.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9'>
+          <var-decl name='is_virtual' type-id='f9b06939' visibility='default' filepath='include/linux/msi.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='entry_nr' type-id='1dc6a898' visibility='default' filepath='include/linux/msi.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='default_irq' type-id='f0981eeb' visibility='default' filepath='include/linux/msi.h' line='155' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='block/blk-mq.h' line='19' column='1' id='e7f43f82'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='block/blk-mq.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rq_lists' type-id='e8ef2bd5' visibility='default' filepath='block/blk-mq.h' line='21' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='5120' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/crypto/internal/aead.h' line='21' column='1' id='e7f43f83'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='head' type-id='e3204322' visibility='default' filepath='include/crypto/internal/aead.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='base' type-id='85c172d2' visibility='default' filepath='include/crypto/internal/aead.h' line='23' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='6144' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/crypto/internal/hash.h' line='35' column='1' id='e7f43f84'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='head' type-id='d1617432' visibility='default' filepath='include/crypto/internal/hash.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='base' type-id='85c172d2' visibility='default' filepath='include/crypto/internal/hash.h' line='37' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/crypto/internal/skcipher.h' line='37' column='1' id='e7f43f85'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='page' type-id='02f11ed4' visibility='default' filepath='include/crypto/internal/skcipher.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='offset' type-id='7359adad' visibility='default' filepath='include/crypto/internal/skcipher.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/crypto/internal/skcipher.h' line='42' column='1' id='e7f43f86'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='page' type-id='8bff8096' visibility='default' filepath='include/crypto/internal/skcipher.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='addr' type-id='eaa32e2f' visibility='default' filepath='include/crypto/internal/skcipher.h' line='44' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='8' is-struct='yes' is-anonymous='yes' visibility='default' filepath='drivers/android/binder_internal.h' line='248' column='1' id='e7f43f87'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='has_strong_ref' type-id='f9b06939' visibility='default' filepath='drivers/android/binder_internal.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1'>
+          <var-decl name='pending_strong_ref' type-id='f9b06939' visibility='default' filepath='drivers/android/binder_internal.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2'>
+          <var-decl name='has_weak_ref' type-id='f9b06939' visibility='default' filepath='drivers/android/binder_internal.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3'>
+          <var-decl name='pending_weak_ref' type-id='f9b06939' visibility='default' filepath='drivers/android/binder_internal.h' line='256' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='16' is-struct='yes' is-anonymous='yes' visibility='default' filepath='drivers/android/binder_internal.h' line='258' column='1' id='e7f43f88'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sched_policy' type-id='f9b06939' visibility='default' filepath='drivers/android/binder_internal.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2'>
+          <var-decl name='inherit_rt' type-id='f9b06939' visibility='default' filepath='drivers/android/binder_internal.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3'>
+          <var-decl name='accept_fds' type-id='f9b06939' visibility='default' filepath='drivers/android/binder_internal.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4'>
+          <var-decl name='txn_security_ctx' type-id='f9b06939' visibility='default' filepath='drivers/android/binder_internal.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='min_priority' type-id='f9b06939' visibility='default' filepath='drivers/android/binder_internal.h' line='266' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/../kernel/audit.h' line='149' column='1' id='e7f43f89'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nargs' type-id='95e97e5e' visibility='default' filepath='include/../kernel/audit.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='args' type-id='613ff906' visibility='default' filepath='include/../kernel/audit.h' line='151' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/../kernel/audit.h' line='153' column='1' id='e7f43f8a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='uid' type-id='d80b72e6' visibility='default' filepath='include/../kernel/audit.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='gid' type-id='094d8048' visibility='default' filepath='include/../kernel/audit.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mode' type-id='2594b00f' visibility='default' filepath='include/../kernel/audit.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='osid' type-id='19c2251e' visibility='default' filepath='include/../kernel/audit.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='has_perm' type-id='95e97e5e' visibility='default' filepath='include/../kernel/audit.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='perm_uid' type-id='354978ed' visibility='default' filepath='include/../kernel/audit.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='perm_gid' type-id='2bb2b96f' visibility='default' filepath='include/../kernel/audit.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='perm_mode' type-id='2594b00f' visibility='default' filepath='include/../kernel/audit.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='qbytes' type-id='7359adad' visibility='default' filepath='include/../kernel/audit.h' line='162' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/../kernel/audit.h' line='164' column='1' id='e7f43f8b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mqdes' type-id='a4bb20dd' visibility='default' filepath='include/../kernel/audit.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mqstat' type-id='7e411fe7' visibility='default' filepath='include/../kernel/audit.h' line='166' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/../kernel/audit.h' line='168' column='1' id='e7f43f8c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mqdes' type-id='a4bb20dd' visibility='default' filepath='include/../kernel/audit.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='sigev_signo' type-id='95e97e5e' visibility='default' filepath='include/../kernel/audit.h' line='170' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/../kernel/audit.h' line='172' column='1' id='e7f43f8d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mqdes' type-id='a4bb20dd' visibility='default' filepath='include/../kernel/audit.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='msg_len' type-id='b59d7dce' visibility='default' filepath='include/../kernel/audit.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='msg_prio' type-id='f0981eeb' visibility='default' filepath='include/../kernel/audit.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='abs_timeout' type-id='40a816ad' visibility='default' filepath='include/../kernel/audit.h' line='176' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/../kernel/audit.h' line='178' column='1' id='e7f43f8e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='oflag' type-id='95e97e5e' visibility='default' filepath='include/../kernel/audit.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='mode' type-id='2594b00f' visibility='default' filepath='include/../kernel/audit.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='attr' type-id='7e411fe7' visibility='default' filepath='include/../kernel/audit.h' line='181' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/../kernel/audit.h' line='183' column='1' id='e7f43f8f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pid' type-id='587f89d2' visibility='default' filepath='include/../kernel/audit.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='cap' type-id='fe20adfc' visibility='default' filepath='include/../kernel/audit.h' line='185' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/../kernel/audit.h' line='187' column='1' id='e7f43f90'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fd' type-id='95e97e5e' visibility='default' filepath='include/../kernel/audit.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/../kernel/audit.h' line='189' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/../kernel/audit.h' line='191' column='1' id='e7f43f91'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='argc' type-id='95e97e5e' visibility='default' filepath='include/../kernel/audit.h' line='192' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/../kernel/audit.h' line='194' column='1' id='e7f43f92'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/../kernel/audit.h' line='195' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='896' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/../kernel/audit.h' line='197' column='1' id='e7f43f93'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ntp_data' type-id='76f1831e' visibility='default' filepath='include/../kernel/audit.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='tk_injoffset' type-id='40a816ad' visibility='default' filepath='include/../kernel/audit.h' line='199' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/futex.h' line='33' column='1' id='e7f43f94'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='i_seq' type-id='91ce1af9' visibility='default' filepath='include/linux/futex.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pgoff' type-id='7359adad' visibility='default' filepath='include/linux/futex.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='offset' type-id='f0981eeb' visibility='default' filepath='include/linux/futex.h' line='36' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/futex.h' line='38' column='1' id='e7f43f95'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab5bf' visibility='default' filepath='include/linux/futex.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='address' type-id='7359adad' visibility='default' filepath='include/linux/futex.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='offset' type-id='f0981eeb' visibility='default' filepath='include/linux/futex.h' line='44' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/futex.h' line='46' column='1' id='e7f43f96'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ptr' type-id='91ce1af9' visibility='default' filepath='include/linux/futex.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='word' type-id='7359adad' visibility='default' filepath='include/linux/futex.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='offset' type-id='f0981eeb' visibility='default' filepath='include/linux/futex.h' line='49' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/macsec.h' line='24' column='1' id='e7f43f97'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ssci' type-id='19c2251e' visibility='default' filepath='include/net/macsec.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pn' type-id='91ce1af9' visibility='default' filepath='include/net/macsec.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/macsec.h' line='32' column='1' id='e7f43f98'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lower' type-id='19c2251e' visibility='default' filepath='include/net/macsec.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='upper' type-id='19c2251e' visibility='default' filepath='include/net/macsec.h' line='35' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='1152' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/macsec.h' line='242' column='1' id='e7f43f99'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='assoc_num' type-id='002ac4a6' visibility='default' filepath='include/net/macsec.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='key' type-id='7f475abd' visibility='default' filepath='include/net/macsec.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='' type-id='ac5ab5c6' visibility='default' filepath='include/net/macsec.h' line='245' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/nexthop.h' line='103' column='1' id='e7f43f9a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='upper_bound' type-id='49178f86' visibility='default' filepath='include/net/nexthop.h' line='104' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/nexthop.h' line='106' column='1' id='e7f43f9b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='uw_nh_entry' type-id='72f469ec' visibility='default' filepath='include/net/nexthop.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='count_buckets' type-id='1dc6a898' visibility='default' filepath='include/net/nexthop.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='wants_buckets' type-id='1dc6a898' visibility='default' filepath='include/net/nexthop.h' line='111' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/android/binder.h' line='350' column='1' id='e7f43f9c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='buffer' type-id='6867e656' visibility='default' filepath='include/uapi/linux/android/binder.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='offsets' type-id='6867e656' visibility='default' filepath='include/uapi/linux/android/binder.h' line='354' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='1024' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/socket.h' line='18' column='1' id='e7f43f9d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ss_family' type-id='93d679c6' visibility='default' filepath='include/uapi/linux/socket.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='__data' type-id='1f1c2468' visibility='default' filepath='include/uapi/linux/socket.h' line='21' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/pm_domain.h' line='157' column='1' id='e7f43f9e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='slock' type-id='fb4018a0' visibility='default' filepath='include/linux/pm_domain.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='lock_flags' type-id='7359adad' visibility='default' filepath='include/linux/pm_domain.h' line='159' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='drivers/base/regmap/internal.h' line='52' column='1' id='e7f43f9f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='spinlock' type-id='fb4018a0' visibility='default' filepath='drivers/base/regmap/internal.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='spinlock_flags' type-id='7359adad' visibility='default' filepath='drivers/base/regmap/internal.h' line='54' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='drivers/base/regmap/internal.h' line='56' column='1' id='e7f43fa0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='raw_spinlock' type-id='f5c90b3f' visibility='default' filepath='drivers/base/regmap/internal.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='raw_spinlock_flags' type-id='7359adad' visibility='default' filepath='drivers/base/regmap/internal.h' line='58' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/drm/drm_device.h' line='69' column='1' id='e7f43fab'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='resources' type-id='72f469ec' visibility='default' filepath='include/drm/drm_device.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='final_kfree' type-id='eaa32e2f' visibility='default' filepath='include/drm/drm_device.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/drm/drm_device.h' line='75' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='56' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/drm/drm_edid.h' line='107' column='1' id='e7f43fac'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reserved' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='hfreq_start_khz' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='c' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='m' type-id='23119536' visibility='default' filepath='include/drm/drm_edid.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='k' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='j' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='113' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='56' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/drm/drm_edid.h' line='115' column='1' id='e7f43fad'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='version' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='data1' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='data2' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='supported_aspects' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='supported_scalings' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='preferred_refresh' type-id='f9b06939' visibility='default' filepath='include/drm/drm_edid.h' line='122' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='4928' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/drm/ttm/ttm_pool.h' line='73' column='1' id='e7f43fae'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='orders' type-id='8b994f0e' visibility='default' filepath='include/drm/ttm/ttm_pool.h' line='74' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/hid.h' line='635' column='1' id='e7f43faf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='initial_quirks' type-id='19c2251e' visibility='default' filepath='include/linux/hid.h' line='635' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='padding' type-id='19c2251e' visibility='default' filepath='include/linux/hid.h' line='635' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='985' column='1' id='e7f43fb0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/skbuff.h' line='985' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/i3c/master.h' line='337' column='1' id='e7f43fb1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='i3c' type-id='7359adad' visibility='default' filepath='include/linux/i3c/master.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='i2c' type-id='7359adad' visibility='default' filepath='include/linux/i3c/master.h' line='339' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/i3c/master.h' line='490' column='1' id='e7f43fb2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='i3c' type-id='72f469ec' visibility='default' filepath='include/linux/i3c/master.h' line='491' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='i2c' type-id='72f469ec' visibility='default' filepath='include/linux/i3c/master.h' line='492' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/iio/iio.h' line='241' column='1' id='e7f43fb3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sign' type-id='a84c031d' visibility='default' filepath='include/linux/iio/iio.h' line='242' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='realbits' type-id='f9b06939' visibility='default' filepath='include/linux/iio/iio.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='storagebits' type-id='f9b06939' visibility='default' filepath='include/linux/iio/iio.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='shift' type-id='f9b06939' visibility='default' filepath='include/linux/iio/iio.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='repeat' type-id='f9b06939' visibility='default' filepath='include/linux/iio/iio.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='endianness' type-id='b8c1dcff' visibility='default' filepath='include/linux/iio/iio.h' line='247' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/io-pgtable.h' line='103' column='1' id='e7f43fb4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ttbr' type-id='91ce1af9' visibility='default' filepath='include/linux/io-pgtable.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tcr' type-id='e7f43fb9' visibility='default' filepath='include/linux/io-pgtable.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mair' type-id='91ce1af9' visibility='default' filepath='include/linux/io-pgtable.h' line='113' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/io-pgtable.h' line='116' column='1' id='e7f43fb5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vttbr' type-id='91ce1af9' visibility='default' filepath='include/linux/io-pgtable.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='vtcr' type-id='e7f43fba' visibility='default' filepath='include/linux/io-pgtable.h' line='126' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/io-pgtable.h' line='129' column='1' id='e7f43fb6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ttbr' type-id='19c2251e' visibility='default' filepath='include/linux/io-pgtable.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='tcr' type-id='19c2251e' visibility='default' filepath='include/linux/io-pgtable.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nmrr' type-id='19c2251e' visibility='default' filepath='include/linux/io-pgtable.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='prrr' type-id='19c2251e' visibility='default' filepath='include/linux/io-pgtable.h' line='133' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/io-pgtable.h' line='136' column='1' id='e7f43fb7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='transtab' type-id='91ce1af9' visibility='default' filepath='include/linux/io-pgtable.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='memattr' type-id='91ce1af9' visibility='default' filepath='include/linux/io-pgtable.h' line='138' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/io-pgtable.h' line='141' column='1' id='e7f43fb8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ttbr' type-id='20b279f0' visibility='default' filepath='include/linux/io-pgtable.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='n_ttbrs' type-id='19c2251e' visibility='default' filepath='include/linux/io-pgtable.h' line='143' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/io-pgtable.h' line='105' column='1' id='e7f43fb9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ips' type-id='19c2251e' visibility='default' filepath='include/linux/io-pgtable.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3'>
+          <var-decl name='tg' type-id='19c2251e' visibility='default' filepath='include/linux/io-pgtable.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5'>
+          <var-decl name='sh' type-id='19c2251e' visibility='default' filepath='include/linux/io-pgtable.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7'>
+          <var-decl name='orgn' type-id='19c2251e' visibility='default' filepath='include/linux/io-pgtable.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9'>
+          <var-decl name='irgn' type-id='19c2251e' visibility='default' filepath='include/linux/io-pgtable.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11'>
+          <var-decl name='tsz' type-id='19c2251e' visibility='default' filepath='include/linux/io-pgtable.h' line='111' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/io-pgtable.h' line='118' column='1' id='e7f43fba'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ps' type-id='19c2251e' visibility='default' filepath='include/linux/io-pgtable.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3'>
+          <var-decl name='tg' type-id='19c2251e' visibility='default' filepath='include/linux/io-pgtable.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5'>
+          <var-decl name='sh' type-id='19c2251e' visibility='default' filepath='include/linux/io-pgtable.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7'>
+          <var-decl name='orgn' type-id='19c2251e' visibility='default' filepath='include/linux/io-pgtable.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9'>
+          <var-decl name='irgn' type-id='19c2251e' visibility='default' filepath='include/linux/io-pgtable.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11'>
+          <var-decl name='sl' type-id='19c2251e' visibility='default' filepath='include/linux/io-pgtable.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13'>
+          <var-decl name='tsz' type-id='19c2251e' visibility='default' filepath='include/linux/io-pgtable.h' line='125' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32960' is-struct='yes' is-anonymous='yes' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='52' column='1' id='e7f43fbb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab5ef' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='buf' type-id='55a95556' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='52' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/media/media-entity.h' line='89' column='1' id='e7f43fbc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='entity' type-id='19e05b5f' visibility='default' filepath='include/media/media-entity.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='link' type-id='e84b031a' visibility='default' filepath='include/media/media-entity.h' line='91' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/media/media-entity.h' line='313' column='1' id='e7f43fbd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='major' type-id='19c2251e' visibility='default' filepath='include/media/media-entity.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='minor' type-id='19c2251e' visibility='default' filepath='include/media/media-entity.h' line='315' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/media/v4l2-async.h' line='67' column='1' id='e7f43fbe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='adapter_id' type-id='95e97e5e' visibility='default' filepath='include/media/v4l2-async.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='address' type-id='8efea9e5' visibility='default' filepath='include/media/v4l2-async.h' line='69' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1158' column='1' id='e7f43fbf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pixelformat' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='field' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bytesperline' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='sizeimage' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='colorspace' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='priv' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1166' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2062' column='1' id='e7f43fc0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='data' type-id='7f84eb57' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2063' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2098' column='1' id='e7f43fc1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pts' type-id='d3130597' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2099' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2102' column='1' id='e7f43fc2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='speed' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='format' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2109' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2112' column='1' id='e7f43fc3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='data' type-id='9d2cf33e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2113' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/media/v4l2-ctrls.h' line='292' column='1' id='e7f43fc4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='val' type-id='a7832498' visibility='default' filepath='include/media/v4l2-ctrls.h' line='293' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='623' column='1' id='e7f43fc5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reinit_uhs' type-id='f9b06939' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='623' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1'>
+          <var-decl name='reserve01' type-id='f9b06939' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='623' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='drv_type' type-id='f9b06939' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='623' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='reserve02' type-id='1dc6a898' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='623' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='reserve03' type-id='19c2251e' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='623' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='16' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/sfp.h' line='169' column='1' id='e7f43fc7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sff8431_app_e' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1'>
+          <var-decl name='fc_pi_4_app_h' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2'>
+          <var-decl name='reserved60_2' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='reserved61' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='179' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='16' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/sfp.h' line='184' column='1' id='e7f43fc8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sff8431_app_e' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1'>
+          <var-decl name='fc_pi_4_app_h' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2'>
+          <var-decl name='sff8431_lim' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3'>
+          <var-decl name='fc_pi_4_lim' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4'>
+          <var-decl name='reserved60_4' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='reserved61' type-id='f9b06939' visibility='default' filepath='include/linux/sfp.h' line='198' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/netns/generic.h' line='30' column='1' id='e7f43fc9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='len' type-id='f0981eeb' visibility='default' filepath='include/net/netns/generic.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/netns/generic.h' line='32' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='40' column='1' id='e7f43fca'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='5f889637' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ext_flags' type-id='7359adad' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='overwrite_tmo' type-id='f0981eeb' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='overwrite_state' type-id='150efd3f' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='305' column='1' id='e7f43fcb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='num_crypto_cap' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='config_count' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='reserved' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='config_array_ptr' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='309' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='331' column='1' id='e7f43fcc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='algorithm_id' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='sdus_mask' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='key_size' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='reserved' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='335' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='1024' is-struct='yes' is-anonymous='yes' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='344' column='1' id='e7f43fcd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='crypto_key' type-id='47ba3182' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='data_unit_size' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='520'>
+          <var-decl name='crypto_cap_idx' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='528'>
+          <var-decl name='reserved_1' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='348' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='536'>
+          <var-decl name='config_enable' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='reserved_multi_host' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='350' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='552'>
+          <var-decl name='reserved_2' type-id='f9b06939' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='560'>
+          <var-decl name='vsb' type-id='cf114704' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='reserved_3' type-id='01f8d131' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='353' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='494' column='1' id='e7f43fce'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='req_header' type-id='b010cb22' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='495' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='input_param1' type-id='78a133c2' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='496' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='input_param2' type-id='78a133c2' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='497' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='input_param3' type-id='78a133c2' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='498' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='__reserved1' type-id='f41331a9' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='499' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='503' column='1' id='e7f43fcf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rsp_header' type-id='b010cb22' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='504' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='output_param1' type-id='78a133c2' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='505' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='output_param2' type-id='78a133c2' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='__reserved2' type-id='3015ceb4' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='507' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='48' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/spi/spi-mem.h' line='99' column='1' id='e7f43fd0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nbytes' type-id='f9b06939' visibility='default' filepath='include/linux/spi/spi-mem.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='buswidth' type-id='f9b06939' visibility='default' filepath='include/linux/spi/spi-mem.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='dtr' type-id='f9b06939' visibility='default' filepath='include/linux/spi/spi-mem.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='opcode' type-id='1dc6a898' visibility='default' filepath='include/linux/spi/spi-mem.h' line='103' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/spi/spi-mem.h' line='106' column='1' id='e7f43fd1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nbytes' type-id='f9b06939' visibility='default' filepath='include/linux/spi/spi-mem.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='buswidth' type-id='f9b06939' visibility='default' filepath='include/linux/spi/spi-mem.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='dtr' type-id='f9b06939' visibility='default' filepath='include/linux/spi/spi-mem.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='val' type-id='91ce1af9' visibility='default' filepath='include/linux/spi/spi-mem.h' line='110' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='24' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/spi/spi-mem.h' line='113' column='1' id='e7f43fd2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nbytes' type-id='f9b06939' visibility='default' filepath='include/linux/spi/spi-mem.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='buswidth' type-id='f9b06939' visibility='default' filepath='include/linux/spi/spi-mem.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='dtr' type-id='f9b06939' visibility='default' filepath='include/linux/spi/spi-mem.h' line='116' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/spi/spi-mem.h' line='119' column='1' id='e7f43fd3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='buswidth' type-id='f9b06939' visibility='default' filepath='include/linux/spi/spi-mem.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='dtr' type-id='f9b06939' visibility='default' filepath='include/linux/spi/spi-mem.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='dir' type-id='af2d0d95' visibility='default' filepath='include/linux/spi/spi-mem.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nbytes' type-id='f0981eeb' visibility='default' filepath='include/linux/spi/spi-mem.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='buf' type-id='ac5ab5e3' visibility='default' filepath='include/linux/spi/spi-mem.h' line='127' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1319' column='1' id='e7f43fd4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='clear_stall_protocol' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='padding1' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='padding2' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='padding3' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='padding4' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='padding5' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='padding6' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='padding7' type-id='f9b06939' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1319' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1322' column='1' id='e7f43fd5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='drivers/usb/dwc3/core.h' line='1322' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='1054' column='1' id='e7f43fd6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='min' type-id='bd54fe1a' visibility='default' filepath='include/uapi/sound/asound.h' line='1055' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max' type-id='bd54fe1a' visibility='default' filepath='include/uapi/sound/asound.h' line='1056' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='step' type-id='bd54fe1a' visibility='default' filepath='include/uapi/sound/asound.h' line='1057' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='1059' column='1' id='e7f43fd7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='min' type-id='1eb56b1e' visibility='default' filepath='include/uapi/sound/asound.h' line='1060' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max' type-id='1eb56b1e' visibility='default' filepath='include/uapi/sound/asound.h' line='1061' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='step' type-id='1eb56b1e' visibility='default' filepath='include/uapi/sound/asound.h' line='1062' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='704' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/sound/asound.h' line='1064' column='1' id='e7f43fd8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='items' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='1065' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='item' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='1066' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='59daf3ef' visibility='default' filepath='include/uapi/sound/asound.h' line='1067' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='names_ptr' type-id='d3130597' visibility='default' filepath='include/uapi/sound/asound.h' line='1068' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='names_length' type-id='f0981eeb' visibility='default' filepath='include/uapi/sound/asound.h' line='1069' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/usb/ehci_def.h' line='169' column='1' id='e7f43fd9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reserved3' type-id='5865aee8' visibility='default' filepath='include/linux/usb/ehci_def.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='usbmode' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci_def.h' line='172' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/usb/ehci_def.h' line='185' column='1' id='e7f43fda'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reserved4' type-id='19c2251e' visibility='default' filepath='include/linux/usb/ehci_def.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='hostpc' type-id='02f7309f' visibility='default' filepath='include/linux/usb/ehci_def.h' line='188' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/hdmi.h' line='199' column='1' id='e7f43fdb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='x' type-id='1dc6a898' visibility='default' filepath='include/linux/hdmi.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='y' type-id='1dc6a898' visibility='default' filepath='include/linux/hdmi.h' line='200' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/hdmi.h' line='399' column='1' id='e7f43fdc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='c573b339' visibility='default' filepath='include/linux/hdmi.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='version' type-id='002ac4a6' visibility='default' filepath='include/linux/hdmi.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='length' type-id='002ac4a6' visibility='default' filepath='include/linux/hdmi.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='oui' type-id='f0981eeb' visibility='default' filepath='include/linux/hdmi.h' line='403' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/blk-mq.h' line='18' column='1' id='e7f43fdd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/blk-mq.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dispatch' type-id='72f469ec' visibility='default' filepath='include/linux/blk-mq.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='state' type-id='7359adad' visibility='default' filepath='include/linux/blk-mq.h' line='33' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='fs/iomap/direct-io.c' line='41' column='1' id='e7f43fde'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='iter' type-id='4fa10f9e' visibility='default' filepath='fs/iomap/direct-io.c' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='waiter' type-id='f23e2572' visibility='default' filepath='fs/iomap/direct-io.c' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='last_queue' type-id='e7d2a5fc' visibility='default' filepath='fs/iomap/direct-io.c' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cookie' type-id='041bc907' visibility='default' filepath='fs/iomap/direct-io.c' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='fs/iomap/direct-io.c' line='49' column='1' id='e7f43fdf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='fs/iomap/direct-io.c' line='50' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/asm-generic/qrwlock_types.h' line='16' column='1' id='e7f43fe0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='wlocked' type-id='f9b06939' visibility='default' filepath='include/asm-generic/qrwlock_types.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='__lstate' type-id='930ea9f9' visibility='default' filepath='include/asm-generic/qrwlock_types.h' line='19' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/dcache.h' line='51' column='1' id='e7f43fe1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hash' type-id='19c2251e' visibility='default' filepath='include/linux/dcache.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='len' type-id='19c2251e' visibility='default' filepath='include/linux/dcache.h' line='52' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='1170' column='1' id='e7f43fe2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='link' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='state' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='debug_id' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='1173' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/key.h' line='112' column='1' id='e7f43fe3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='desc_len' type-id='1dc6a898' visibility='default' filepath='include/linux/key.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='desc' type-id='4a008bc3' visibility='default' filepath='include/linux/key.h' line='115' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/key.h' line='241' column='1' id='e7f43fe4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hash' type-id='7359adad' visibility='default' filepath='include/linux/key.h' line='242' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='len_desc' type-id='7359adad' visibility='default' filepath='include/linux/key.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='type' type-id='d0a699d1' visibility='default' filepath='include/linux/key.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='domain_tag' type-id='fce14c5f' visibility='default' filepath='include/linux/key.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='description' type-id='26a90f95' visibility='default' filepath='include/linux/key.h' line='246' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/key.h' line='256' column='1' id='e7f43fe5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name_link' type-id='72f469ec' visibility='default' filepath='include/linux/key.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='keys' type-id='b58d1e12' visibility='default' filepath='include/linux/key.h' line='259' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/lockref.h' line='30' column='1' id='e7f43fe6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/lockref.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='count' type-id='95e97e5e' visibility='default' filepath='include/linux/lockref.h' line='32' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/mm.h' line='537' column='1' id='e7f43fe7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vma' type-id='2ae08426' visibility='default' filepath='include/linux/mm.h' line='538' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='gfp_mask' type-id='3eb7c31c' visibility='default' filepath='include/linux/mm.h' line='539' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pgoff' type-id='7359adad' visibility='default' filepath='include/linux/mm.h' line='540' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='address' type-id='7359adad' visibility='default' filepath='include/linux/mm.h' line='541' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='85' column='1' id='e7f43fe8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lru' type-id='72f469ec' visibility='default' filepath='include/linux/mm_types.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mapping' type-id='f57039f0' visibility='default' filepath='include/linux/mm_types.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='index' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='private' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='102' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='104' column='1' id='e7f43fe9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pp_magic' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pp' type-id='a832c6b9' visibility='default' filepath='include/linux/mm_types.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='_pp_mapping_pad' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dma_addr' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='' type-id='ac5ab642' visibility='default' filepath='include/linux/mm_types.h' line='113' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='126' column='1' id='e7f43fea'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab643' visibility='default' filepath='include/linux/mm_types.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='slab_cache' type-id='f3b4aca8' visibility='default' filepath='include/linux/mm_types.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='freelist' type-id='eaa32e2f' visibility='default' filepath='include/linux/mm_types.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='' type-id='ac5ab644' visibility='default' filepath='include/linux/mm_types.h' line='143' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='153' column='1' id='e7f43feb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='compound_head' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='compound_dtor' type-id='002ac4a6' visibility='default' filepath='include/linux/mm_types.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='compound_order' type-id='002ac4a6' visibility='default' filepath='include/linux/mm_types.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='compound_mapcount' type-id='49178f86' visibility='default' filepath='include/linux/mm_types.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='compound_nr' type-id='f0981eeb' visibility='default' filepath='include/linux/mm_types.h' line='160' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='162' column='1' id='e7f43fec'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='_compound_pad_1' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='hpage_pinned_refcount' type-id='49178f86' visibility='default' filepath='include/linux/mm_types.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='deferred_list' type-id='72f469ec' visibility='default' filepath='include/linux/mm_types.h' line='166' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='168' column='1' id='e7f43fed'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='_pt_pad_1' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pmd_huge_pte' type-id='c28b9700' visibility='default' filepath='include/linux/mm_types.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='_pt_pad_2' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='' type-id='ac5ab645' visibility='default' filepath='include/linux/mm_types.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ptl' type-id='fb4018a0' visibility='default' filepath='include/linux/mm_types.h' line='179' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='182' column='1' id='e7f43fee'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pgmap' type-id='b1a5e68a' visibility='default' filepath='include/linux/mm_types.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='zone_device_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/mm_types.h' line='185' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='129' column='1' id='e7f43fef'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='02f11ed4' visibility='default' filepath='include/linux/mm_types.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pages' type-id='95e97e5e' visibility='default' filepath='include/linux/mm_types.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='pobjects' type-id='95e97e5e' visibility='default' filepath='include/linux/mm_types.h' line='133' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='146' column='1' id='e7f43ff0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='inuse' type-id='f0981eeb' visibility='default' filepath='include/linux/mm_types.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='objects' type-id='f0981eeb' visibility='default' filepath='include/linux/mm_types.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='31'>
+          <var-decl name='frozen' type-id='f0981eeb' visibility='default' filepath='include/linux/mm_types.h' line='149' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='340' column='1' id='e7f43ff1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vm_start' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='vm_end' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='vm_next' type-id='2ae08426' visibility='default' filepath='include/linux/mm_types.h' line='345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='vm_prev' type-id='2ae08426' visibility='default' filepath='include/linux/mm_types.h' line='345' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='382' column='1' id='e7f43ff2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rb' type-id='2a8a6332' visibility='default' filepath='include/linux/mm_types.h' line='383' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rb_subtree_last' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='384' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='7936' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='451' column='1' id='e7f43ff3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mmap' type-id='2ae08426' visibility='default' filepath='include/linux/mm_types.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mm_rb' type-id='dec44472' visibility='default' filepath='include/linux/mm_types.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='vmacache_seqnum' type-id='91ce1af9' visibility='default' filepath='include/linux/mm_types.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get_unmapped_area' type-id='d44a8cec' visibility='default' filepath='include/linux/mm_types.h' line='456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mmap_base' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='mmap_legacy_base' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='461' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='task_size' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='467' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='highest_vm_end' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='468' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='pgd' type-id='2e97ceaf' visibility='default' filepath='include/linux/mm_types.h' line='469' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='membarrier_state' type-id='49178f86' visibility='default' filepath='include/linux/mm_types.h' line='478' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='mm_users' type-id='49178f86' visibility='default' filepath='include/linux/mm_types.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='mm_count' type-id='49178f86' visibility='default' filepath='include/linux/mm_types.h' line='499' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='pgtables_bytes' type-id='f22a8abb' visibility='default' filepath='include/linux/mm_types.h' line='502' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='map_count' type-id='95e97e5e' visibility='default' filepath='include/linux/mm_types.h' line='504' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='page_table_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/mm_types.h' line='506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='mmap_lock' type-id='f19fdb93' visibility='default' filepath='include/linux/mm_types.h' line='521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='mmap_seq' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='523' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='mmlist' type-id='72f469ec' visibility='default' filepath='include/linux/mm_types.h' line='527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='hiwater_rss' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='hiwater_vm' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='535' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='total_vm' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='537' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='locked_vm' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='538' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='pinned_vm' type-id='28ee064c' visibility='default' filepath='include/linux/mm_types.h' line='539' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='data_vm' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='540' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='exec_vm' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='541' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='stack_vm' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='542' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='def_flags' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='543' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='write_protect_seq' type-id='e14c3b11' visibility='default' filepath='include/linux/mm_types.h' line='550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2144'>
+          <var-decl name='arg_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/mm_types.h' line='552' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='start_code' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='end_code' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='start_data' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='end_data' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='start_brk' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='brk' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='start_stack' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='arg_start' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='556' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='arg_end' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='556' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='env_start' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='556' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='env_end' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='556' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='saved_auxv' type-id='d964a553' visibility='default' filepath='include/linux/mm_types.h' line='558' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5824'>
+          <var-decl name='rss_stat' type-id='2235a2cb' visibility='default' filepath='include/linux/mm_types.h' line='564' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='binfmt' type-id='7cc59444' visibility='default' filepath='include/linux/mm_types.h' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6144'>
+          <var-decl name='context' type-id='0eb9c3fd' visibility='default' filepath='include/linux/mm_types.h' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='571' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6528'>
+          <var-decl name='core_state' type-id='90ad83aa' visibility='default' filepath='include/linux/mm_types.h' line='573' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6592'>
+          <var-decl name='ioctx_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/mm_types.h' line='576' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6656'>
+          <var-decl name='ioctx_table' type-id='122191b2' visibility='default' filepath='include/linux/mm_types.h' line='577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6720'>
+          <var-decl name='owner' type-id='f23e2572' visibility='default' filepath='include/linux/mm_types.h' line='590' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6784'>
+          <var-decl name='user_ns' type-id='c0ced320' visibility='default' filepath='include/linux/mm_types.h' line='592' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6848'>
+          <var-decl name='exe_file' type-id='77e79a4b' visibility='default' filepath='include/linux/mm_types.h' line='595' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6912'>
+          <var-decl name='notifier_subscriptions' type-id='9e16bfe2' visibility='default' filepath='include/linux/mm_types.h' line='597' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6976'>
+          <var-decl name='mmu_notifier_lock' type-id='652d9ef9' visibility='default' filepath='include/linux/mm_types.h' line='599' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7040'>
+          <var-decl name='tlb_flush_pending' type-id='49178f86' visibility='default' filepath='include/linux/mm_types.h' line='624' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7104'>
+          <var-decl name='uprobes_state' type-id='6308a819' visibility='default' filepath='include/linux/mm_types.h' line='629' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7168'>
+          <var-decl name='async_put_work' type-id='ef9025d0' visibility='default' filepath='include/linux/mm_types.h' line='633' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='pasid' type-id='19c2251e' visibility='default' filepath='include/linux/mm_types.h' line='636' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='lru_gen' type-id='e7f43ff4' visibility='default' filepath='include/linux/mm_types.h' line='652' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/mm_types.h' line='655' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='639' column='1' id='e7f43ff4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/mm_types.h' line='641' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='memcg' type-id='223696fb' visibility='default' filepath='include/linux/mm_types.h' line='644' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='nodes' type-id='6a7d16bb' visibility='default' filepath='include/linux/mm_types.h' line='651' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='767' column='1' id='e7f43ff5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='0fbf3cfd' visibility='default' filepath='include/linux/skbuff.h' line='769' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='prev' type-id='0fbf3cfd' visibility='default' filepath='include/linux/skbuff.h' line='770' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='' type-id='ac5ab64b' visibility='default' filepath='include/linux/skbuff.h' line='772' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='803' column='1' id='e7f43ff6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='_skb_refdst' type-id='7359adad' visibility='default' filepath='include/linux/skbuff.h' line='804' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='destructor' type-id='0ef96694' visibility='default' filepath='include/linux/skbuff.h' line='805' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='926' column='1' id='e7f43ff7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='csum_start' type-id='d315442e' visibility='default' filepath='include/linux/skbuff.h' line='927' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='csum_offset' type-id='d315442e' visibility='default' filepath='include/linux/skbuff.h' line='928' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='985' column='1' id='e7f43ff8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='scm_io_uring' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='985' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='android_kabi_reserved1_padding1' type-id='8f048e17' visibility='default' filepath='include/linux/skbuff.h' line='985' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='android_kabi_reserved1_padding2' type-id='d315442e' visibility='default' filepath='include/linux/skbuff.h' line='985' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='android_kabi_reserved1_padding3' type-id='3f1a6b60' visibility='default' filepath='include/linux/skbuff.h' line='985' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/sysctl.h' line='145' column='1' id='e7f43ff9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ctl_table' type-id='631dc3c1' visibility='default' filepath='include/linux/sysctl.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='used' type-id='95e97e5e' visibility='default' filepath='include/linux/sysctl.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='count' type-id='95e97e5e' visibility='default' filepath='include/linux/sysctl.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='nreg' type-id='95e97e5e' visibility='default' filepath='include/linux/sysctl.h' line='149' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/uio.h' line='51' column='1' id='e7f43ffa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='head' type-id='f0981eeb' visibility='default' filepath='include/linux/uio.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='start_head' type-id='f0981eeb' visibility='default' filepath='include/linux/uio.h' line='53' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/uprobes.h' line='65' column='1' id='e7f43ffb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='autask' type-id='79aea64f' visibility='default' filepath='include/linux/uprobes.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vaddr' type-id='7359adad' visibility='default' filepath='include/linux/uprobes.h' line='67' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/uprobes.h' line='70' column='1' id='e7f43ffc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dup_xol_work' type-id='e3d8ce29' visibility='default' filepath='include/linux/uprobes.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dup_xol_addr' type-id='7359adad' visibility='default' filepath='include/linux/uprobes.h' line='72' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/user_namespace.h' line='28' column='1' id='e7f43ffd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='forward' type-id='9b105293' visibility='default' filepath='include/linux/user_namespace.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reverse' type-id='9b105293' visibility='default' filepath='include/linux/user_namespace.h' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/netns/ipv6.h' line='113' column='1' id='e7f43ffe'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='head' type-id='e151255a' visibility='default' filepath='include/net/netns/ipv6.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/net/netns/ipv6.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='seq' type-id='19c2251e' visibility='default' filepath='include/net/netns/ipv6.h' line='116' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/netdevice.h' line='2027' column='1' id='e7f43fff'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='upper' type-id='72f469ec' visibility='default' filepath='include/linux/netdevice.h' line='2028' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lower' type-id='72f469ec' visibility='default' filepath='include/linux/netdevice.h' line='2029' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/sock.h' line='408' column='1' id='e7f44000'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rmem_alloc' type-id='49178f86' visibility='default' filepath='include/net/sock.h' line='409' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='len' type-id='95e97e5e' visibility='default' filepath='include/net/sock.h' line='410' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='head' type-id='0fbf3cfd' visibility='default' filepath='include/net/sock.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tail' type-id='0fbf3cfd' visibility='default' filepath='include/net/sock.h' line='412' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/tty.h' line='168' column='1' id='e7f44001'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/tty.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='stopped' type-id='b50a4934' visibility='default' filepath='include/linux/tty.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='tco_stopped' type-id='b50a4934' visibility='default' filepath='include/linux/tty.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='unused' type-id='c99b5ecd' visibility='default' filepath='include/linux/tty.h' line='172' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/tty.h' line='175' column='1' id='e7f44002'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/tty.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pgrp' type-id='b94e5398' visibility='default' filepath='include/linux/tty.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='session' type-id='b94e5398' visibility='default' filepath='include/linux/tty.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pktstatus' type-id='002ac4a6' visibility='default' filepath='include/linux/tty.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='packet' type-id='b50a4934' visibility='default' filepath='include/linux/tty.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='unused' type-id='c99b5ecd' visibility='default' filepath='include/linux/tty.h' line='181' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='4352' is-struct='yes' is-anonymous='yes' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='144' column='1' id='e7f44003'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tp_value' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tp2_value' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fpsimd_state' type-id='3cb82f3a' visibility='default' filepath='arch/arm64/include/asm/processor.h' line='147' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='arch/arm64/include/asm/thread_info.h' line='31' column='1' id='e7f44004'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='19c2251e' visibility='default' filepath='arch/arm64/include/asm/thread_info.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='need_resched' type-id='19c2251e' visibility='default' filepath='arch/arm64/include/asm/thread_info.h' line='37' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='16' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/asm-generic/qspinlock_types.h' line='24' column='1' id='e7f44005'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='locked' type-id='f9b06939' visibility='default' filepath='include/asm-generic/qspinlock_types.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='pending' type-id='f9b06939' visibility='default' filepath='include/asm-generic/qspinlock_types.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/asm-generic/qspinlock_types.h' line='28' column='1' id='e7f44006'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='locked_pending' type-id='1dc6a898' visibility='default' filepath='include/asm-generic/qspinlock_types.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='tail' type-id='1dc6a898' visibility='default' filepath='include/asm-generic/qspinlock_types.h' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/restart_block.h' line='30' column='1' id='e7f44007'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='uaddr' type-id='f9409001' visibility='default' filepath='include/linux/restart_block.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='val' type-id='19c2251e' visibility='default' filepath='include/linux/restart_block.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/linux/restart_block.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bitset' type-id='19c2251e' visibility='default' filepath='include/linux/restart_block.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='time' type-id='91ce1af9' visibility='default' filepath='include/linux/restart_block.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='uaddr2' type-id='f9409001' visibility='default' filepath='include/linux/restart_block.h' line='36' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/restart_block.h' line='39' column='1' id='e7f44008'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='clockid' type-id='a1c3b834' visibility='default' filepath='include/linux/restart_block.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='58918b27' visibility='default' filepath='include/linux/restart_block.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab65c' visibility='default' filepath='include/linux/restart_block.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='expires' type-id='91ce1af9' visibility='default' filepath='include/linux/restart_block.h' line='46' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/restart_block.h' line='49' column='1' id='e7f44009'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ufds' type-id='3ac36db0' visibility='default' filepath='include/linux/restart_block.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nfds' type-id='95e97e5e' visibility='default' filepath='include/linux/restart_block.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='has_timeout' type-id='95e97e5e' visibility='default' filepath='include/linux/restart_block.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tv_sec' type-id='7359adad' visibility='default' filepath='include/linux/restart_block.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tv_nsec' type-id='7359adad' visibility='default' filepath='include/linux/restart_block.h' line='54' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/sched.h' line='710' column='1' id='e7f4400a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='blocked' type-id='f9b06939' visibility='default' filepath='include/linux/sched.h' line='711' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='need_qs' type-id='f9b06939' visibility='default' filepath='include/linux/sched.h' line='712' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='exp_hint' type-id='f9b06939' visibility='default' filepath='include/linux/sched.h' line='713' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='need_mb' type-id='f9b06939' visibility='default' filepath='include/linux/sched.h' line='714' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/signal_types.h' line='13' column='1' id='e7f4400b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='si_signo' type-id='95e97e5e' visibility='default' filepath='include/linux/signal_types.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='si_errno' type-id='95e97e5e' visibility='default' filepath='include/linux/signal_types.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='si_code' type-id='95e97e5e' visibility='default' filepath='include/linux/signal_types.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='_sifields' type-id='a60646cb' visibility='default' filepath='include/linux/signal_types.h' line='13' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='39' column='1' id='e7f4400c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='_pid' type-id='63eb2bf2' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='_uid' type-id='70734f24' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='41' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='45' column='1' id='e7f4400d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='_tid' type-id='c28acba6' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='_overrun' type-id='95e97e5e' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='_sigval' type-id='95506cfb' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='_sys_private' type-id='95e97e5e' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='49' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='53' column='1' id='e7f4400e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='_pid' type-id='63eb2bf2' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='_uid' type-id='70734f24' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='_sigval' type-id='95506cfb' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='56' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='60' column='1' id='e7f4400f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='_pid' type-id='63eb2bf2' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='_uid' type-id='70734f24' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='_status' type-id='95e97e5e' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='_utime' type-id='880ebc01' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='_stime' type-id='880ebc01' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='65' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='69' column='1' id='e7f44010'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='_addr' type-id='eaa32e2f' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab660' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='79' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='107' column='1' id='e7f44011'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='_band' type-id='bd54fe1a' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='_fd' type-id='95e97e5e' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='109' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='113' column='1' id='e7f44012'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='_call_addr' type-id='eaa32e2f' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='_syscall' type-id='95e97e5e' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='_arch' type-id='f0981eeb' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='116' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='88' column='1' id='e7f44013'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='_dummy_bnd' type-id='8e100159' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='_lower' type-id='eaa32e2f' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='_upper' type-id='eaa32e2f' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='91' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='94' column='1' id='e7f44014'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='_dummy_pkey' type-id='8e100159' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='_pkey' type-id='3f1a6b60' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='96' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='99' column='1' id='e7f44015'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='_data' type-id='7359adad' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/asm-generic/siginfo.h' line='101' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='kernel/sched/sched.h' line='579' column='1' id='e7f44016'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='f5c90b3f' visibility='default' filepath='kernel/sched/sched.h' line='580' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='nr' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='581' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='load_avg' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='582' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='util_avg' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='583' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='runnable_avg' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='584' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/perf_event.h' line='562' column='1' id='e7f44017'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cap_bit0' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='563' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1'>
+          <var-decl name='cap_bit0_is_deprecated' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='564' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2'>
+          <var-decl name='cap_user_rdpmc' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3'>
+          <var-decl name='cap_user_time' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4'>
+          <var-decl name='cap_user_time_zero' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5'>
+          <var-decl name='cap_user_time_short' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6'>
+          <var-decl name='cap_____res' type-id='d3130597' visibility='default' filepath='include/uapi/linux/perf_event.h' line='570' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='171' column='1' id='e7f44018'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='icq' type-id='7c6e0e0c' visibility='default' filepath='include/linux/blkdev.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='priv' type-id='24ae0315' visibility='default' filepath='include/linux/blkdev.h' line='173' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='176' column='1' id='e7f44019'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='seq' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/blkdev.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='saved_end_io' type-id='5afdaa66' visibility='default' filepath='include/linux/blkdev.h' line='179' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/netdevice.h' line='931' column='1' id='e7f4401a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='1dc6a898' visibility='default' filepath='include/linux/netdevice.h' line='932' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='proto' type-id='84a5c3d4' visibility='default' filepath='include/linux/netdevice.h' line='933' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/bpf.h' line='734' column='1' id='e7f4401b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='model' type-id='323174d0' visibility='default' filepath='include/linux/bpf.h' line='735' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='addr' type-id='eaa32e2f' visibility='default' filepath='include/linux/bpf.h' line='736' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ftrace_managed' type-id='b50a4934' visibility='default' filepath='include/linux/bpf.h' line='737' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/bpf.h' line='884' column='1' id='e7f4401c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='map' type-id='00ee50b8' visibility='default' filepath='include/linux/bpf.h' line='885' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='key' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='886' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='80' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/netdevice.h' line='896' column='1' id='e7f4401d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='1dc6a898' visibility='default' filepath='include/linux/netdevice.h' line='897' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='proto' type-id='84a5c3d4' visibility='default' filepath='include/linux/netdevice.h' line='898' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='h_dest' type-id='cf1a4160' visibility='default' filepath='include/linux/netdevice.h' line='899' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/netdevice.h' line='901' column='1' id='e7f4401e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vlan_mode' type-id='08f5ca1f' visibility='default' filepath='include/linux/netdevice.h' line='907' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='vlan_id' type-id='1dc6a898' visibility='default' filepath='include/linux/netdevice.h' line='908' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='vlan_proto' type-id='84a5c3d4' visibility='default' filepath='include/linux/netdevice.h' line='909' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/netdevice.h' line='911' column='1' id='e7f4401f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='port' type-id='95e97e5e' visibility='default' filepath='include/linux/netdevice.h' line='912' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='proto' type-id='1dc6a898' visibility='default' filepath='include/linux/netdevice.h' line='913' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/netdevice.h' line='1000' column='1' id='e7f44020'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/linux/netdevice.h' line='1001' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='prog' type-id='bdcee7ae' visibility='default' filepath='include/linux/netdevice.h' line='1002' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='extack' type-id='5799dc94' visibility='default' filepath='include/linux/netdevice.h' line='1003' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/netdevice.h' line='1006' column='1' id='e7f44021'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='offmap' type-id='366d2695' visibility='default' filepath='include/linux/netdevice.h' line='1007' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/netdevice.h' line='1010' column='1' id='e7f44022'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pool' type-id='81e0c1b8' visibility='default' filepath='include/linux/netdevice.h' line='1011' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='queue_id' type-id='1dc6a898' visibility='default' filepath='include/linux/netdevice.h' line='1012' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/flow.h' line='47' column='1' id='e7f44023'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dport' type-id='84a5c3d4' visibility='default' filepath='include/net/flow.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='sport' type-id='84a5c3d4' visibility='default' filepath='include/net/flow.h' line='49' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='16' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/flow.h' line='52' column='1' id='e7f44024'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='8f048e17' visibility='default' filepath='include/net/flow.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='code' type-id='8f048e17' visibility='default' filepath='include/net/flow.h' line='54' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/flow.h' line='57' column='1' id='e7f44025'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dport' type-id='23119536' visibility='default' filepath='include/net/flow.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='sport' type-id='23119536' visibility='default' filepath='include/net/flow.h' line='59' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='8' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/flow.h' line='64' column='1' id='e7f44026'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='8f048e17' visibility='default' filepath='include/net/flow.h' line='65' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/netlink.h' line='326' column='1' id='e7f44027'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='min' type-id='9b7e9486' visibility='default' filepath='include/net/netlink.h' line='327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='max' type-id='9b7e9486' visibility='default' filepath='include/net/netlink.h' line='327' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/sch_generic.h' line='323' column='1' id='e7f44028'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='class' type-id='7359adad' visibility='default' filepath='include/net/sch_generic.h' line='324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='classid' type-id='19c2251e' visibility='default' filepath='include/net/sch_generic.h' line='325' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/sch_generic.h' line='330' column='1' id='e7f44029'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ingress' type-id='b50a4934' visibility='default' filepath='include/net/sch_generic.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='qstats' type-id='338303f5' visibility='default' filepath='include/net/sch_generic.h' line='332' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/sch_generic.h' line='474' column='1' id='e7f4402a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='chain' type-id='45305972' visibility='default' filepath='include/net/sch_generic.h' line='475' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='filter_chain_list' type-id='72f469ec' visibility='default' filepath='include/net/sch_generic.h' line='476' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/sock.h' line='168' column='1' id='e7f4402b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='skc_daddr' type-id='78a133c2' visibility='default' filepath='include/net/sock.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='skc_rcv_saddr' type-id='78a133c2' visibility='default' filepath='include/net/sock.h' line='170' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/sock.h' line='180' column='1' id='e7f4402c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='skc_dport' type-id='84a5c3d4' visibility='default' filepath='include/net/sock.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='skc_num' type-id='d315442e' visibility='default' filepath='include/net/sock.h' line='182' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1268' column='1' id='e7f4402d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='map_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='key_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='value_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='max_entries' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='map_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='inner_map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1276' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='numa_node' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='map_name' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/linux/bpf.h' line='1280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='map_ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='btf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='btf_key_type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='btf_value_type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='btf_vmlinux_value_type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1285' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1291' column='1' id='e7f4402e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='key' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='' type-id='ac5ab681' visibility='default' filepath='include/uapi/linux/bpf.h' line='1294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='flags' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1298' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1301' column='1' id='e7f4402f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='in_batch' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='out_batch' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='keys' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='values' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='count' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1313' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='elem_flags' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='flags' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1315' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='1024' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1318' column='1' id='e7f44030'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prog_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='insn_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='insns' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='license' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='log_level' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='log_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='log_buf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='kern_version' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='prog_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1327' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='prog_name' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/linux/bpf.h' line='1328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='prog_ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='expected_attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='prog_btf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='func_info_rec_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='func_info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='func_info_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='line_info_rec_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1339' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='line_info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='line_info_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='attach_btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='' type-id='ac5ab682' visibility='default' filepath='include/uapi/linux/bpf.h' line='1343' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='fd_array' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1350' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1353' column='1' id='e7f44031'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pathname' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='file_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1356' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='160' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1359' column='1' id='e7f44032'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='target_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='attach_bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='attach_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1363' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='replace_bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1364' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1370' column='1' id='e7f44033'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1371' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='retval' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data_size_in' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1373' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='data_size_out' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1374' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='data_in' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1378' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='data_out' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='repeat' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='duration' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1381' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ctx_size_in' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='ctx_size_out' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1383' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ctx_in' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1387' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='ctx_out' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='cpu' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1390' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1393' column='1' id='e7f44034'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab683' visibility='default' filepath='include/uapi/linux/bpf.h' line='1394' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='next_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='open_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1402' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1405' column='1' id='e7f44035'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='info_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1407' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1408' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1411' column='1' id='e7f44036'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='target_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1413' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='query_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='attach_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1415' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='prog_ids' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1416' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='prog_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1417' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1420' column='1' id='e7f44037'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1422' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1425' column='1' id='e7f44038'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='btf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='btf_log_buf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='btf_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1428' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='btf_log_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='btf_log_level' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1430' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1433' column='1' id='e7f44039'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1434' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='buf_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='buf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1438' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='prog_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='fd_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='probe_offset' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='probe_addr' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1446' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1449' column='1' id='e7f4403a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='' type-id='ac5ab684' visibility='default' filepath='include/uapi/linux/bpf.h' line='1451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='' type-id='ac5ab685' visibility='default' filepath='include/uapi/linux/bpf.h' line='1457' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1473' column='1' id='e7f4403b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='link_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1474' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='new_prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1476' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1477' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='old_prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1480' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1483' column='1' id='e7f4403c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='link_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1484' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1487' column='1' id='e7f4403d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1488' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1491' column='1' id='e7f4403e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='link_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1492' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1493' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1496' column='1' id='e7f4403f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1497' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1498' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1499' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1459' column='1' id='e7f44040'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='iter_info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='iter_info_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1461' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1463' column='1' id='e7f44041'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bpf_cookie' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1468' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/xfrm.h' line='180' column='1' id='e7f44042'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='reqid' type-id='19c2251e' visibility='default' filepath='include/net/xfrm.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='mode' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='replay_window' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='aalgo' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='ealgo' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='calgo' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='family' type-id='1dc6a898' visibility='default' filepath='include/net/xfrm.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='saddr' type-id='c210d497' visibility='default' filepath='include/net/xfrm.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='header_len' type-id='95e97e5e' visibility='default' filepath='include/net/xfrm.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='trailer_len' type-id='95e97e5e' visibility='default' filepath='include/net/xfrm.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='extra_flags' type-id='19c2251e' visibility='default' filepath='include/net/xfrm.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='smark' type-id='0084df72' visibility='default' filepath='include/net/xfrm.h' line='191' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='kernel/sched/sched.h' line='652' column='1' id='e7f44043'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='curr' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='653' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='next' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='655' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='kernel/sched/sched.h' line='701' column='1' id='e7f44044'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='curr' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='702' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='next' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='703' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/ethtool.h' line='123' column='1' id='e7f44045'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='supported' type-id='f05e8e77' visibility='default' filepath='include/linux/ethtool.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='advertising' type-id='f05e8e77' visibility='default' filepath='include/linux/ethtool.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='lp_advertising' type-id='f05e8e77' visibility='default' filepath='include/linux/ethtool.h' line='126' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/exportfs.h' line='120' column='1' id='e7f44046'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ino' type-id='19c2251e' visibility='default' filepath='include/linux/exportfs.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='gen' type-id='19c2251e' visibility='default' filepath='include/linux/exportfs.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='parent_ino' type-id='19c2251e' visibility='default' filepath='include/linux/exportfs.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='parent_gen' type-id='19c2251e' visibility='default' filepath='include/linux/exportfs.h' line='124' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='160' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/exportfs.h' line='126' column='1' id='e7f44047'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='block' type-id='19c2251e' visibility='default' filepath='include/linux/exportfs.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='partref' type-id='1dc6a898' visibility='default' filepath='include/linux/exportfs.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='parent_partref' type-id='1dc6a898' visibility='default' filepath='include/linux/exportfs.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='generation' type-id='19c2251e' visibility='default' filepath='include/linux/exportfs.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='parent_block' type-id='19c2251e' visibility='default' filepath='include/linux/exportfs.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='parent_generation' type-id='19c2251e' visibility='default' filepath='include/linux/exportfs.h' line='132' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/cpu_rmap.h' line='28' column='1' id='e7f44048'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='1dc6a898' visibility='default' filepath='include/linux/cpu_rmap.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='dist' type-id='1dc6a898' visibility='default' filepath='include/linux/cpu_rmap.h' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/netdevice.h' line='3411' column='1' id='e7f44049'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='recursion' type-id='1dc6a898' visibility='default' filepath='include/linux/netdevice.h' line='3412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='more' type-id='f9b06939' visibility='default' filepath='include/linux/netdevice.h' line='3413' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5626' column='1' id='e7f4404a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tp_name' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='5627' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tp_name_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5628' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5630' column='1' id='e7f4404b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5631' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='target_obj_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5632' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='target_btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5633' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5635' column='1' id='e7f4404c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cgroup_id' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='5636' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5637' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5639' column='1' id='e7f4404d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='target_name' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='5640' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='target_name_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5641' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='' type-id='ac5ab698' visibility='default' filepath='include/uapi/linux/bpf.h' line='5642' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5648' column='1' id='e7f4404e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='netns_ino' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5649' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5650' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5652' column='1' id='e7f4404f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5653' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5643' column='1' id='e7f44050'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='map_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5644' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/devlink.h' line='149' column='1' id='e7f44051'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/net/devlink.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/net/devlink.h' line='151' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='108' column='1' id='e7f44052'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='160' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='41' column='1' id='e7f44053'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='u3' type-id='8c17f46b' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='u' type-id='ac5ab69d' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='protonum' type-id='892641a4' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='dir' type-id='892641a4' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='71' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='16' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/netfilter/nf_conntrack_tuple_common.h' line='24' column='1' id='e7f44054'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='port' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/netfilter/nf_conntrack_tuple_common.h' line='25' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='16' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='53' column='1' id='e7f44055'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='892641a4' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='code' type-id='892641a4' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='54' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='16' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/netfilter/nf_conntrack_tuple_common.h' line='39' column='1' id='e7f44056'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='key' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/netfilter/nf_conntrack_tuple_common.h' line='40' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='160' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='76' column='1' id='e7f44057'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='u3' type-id='8c17f46b' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='u' type-id='cfd75634' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='78' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='16' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/netfilter/nf_conntrack_tuple_common.h' line='30' column='1' id='e7f44058'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/netfilter/nf_conntrack_tuple_common.h' line='31' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='16' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/flow_dissector.h' line='54' column='1' id='e7f44059'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vlan_id' type-id='1dc6a898' visibility='default' filepath='include/net/flow_dissector.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12'>
+          <var-decl name='vlan_dei' type-id='1dc6a898' visibility='default' filepath='include/net/flow_dissector.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13'>
+          <var-decl name='vlan_priority' type-id='1dc6a898' visibility='default' filepath='include/net/flow_dissector.h' line='57' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/flow_dissector.h' line='174' column='1' id='e7f4405a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='src' type-id='84a5c3d4' visibility='default' filepath='include/net/flow_dissector.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='dst' type-id='84a5c3d4' visibility='default' filepath='include/net/flow_dissector.h' line='176' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='48' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/flow_offload.h' line='206' column='1' id='e7f4405b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vid' type-id='1dc6a898' visibility='default' filepath='include/net/flow_offload.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='proto' type-id='84a5c3d4' visibility='default' filepath='include/net/flow_offload.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='prio' type-id='f9b06939' visibility='default' filepath='include/net/flow_offload.h' line='209' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/flow_offload.h' line='211' column='1' id='e7f4405c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='htype' type-id='c3972c2e' visibility='default' filepath='include/net/flow_offload.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='offset' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mask' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='val' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='216' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/flow_offload.h' line='223' column='1' id='e7f4405d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ctx' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='index' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='vf' type-id='f9b06939' visibility='default' filepath='include/net/flow_offload.h' line='226' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/flow_offload.h' line='228' column='1' id='e7f4405e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='psample_group' type-id='c9042c89' visibility='default' filepath='include/net/flow_offload.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rate' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='trunc_size' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='truncate' type-id='b50a4934' visibility='default' filepath='include/net/flow_offload.h' line='232' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/flow_offload.h' line='234' column='1' id='e7f4405f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='burst' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='rate_bytes_ps' type-id='91ce1af9' visibility='default' filepath='include/net/flow_offload.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='burst_pkt' type-id='91ce1af9' visibility='default' filepath='include/net/flow_offload.h' line='238' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rate_pkt_ps' type-id='91ce1af9' visibility='default' filepath='include/net/flow_offload.h' line='239' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='mtu' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='240' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/flow_offload.h' line='242' column='1' id='e7f44060'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='action' type-id='95e97e5e' visibility='default' filepath='include/net/flow_offload.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='zone' type-id='1dc6a898' visibility='default' filepath='include/net/flow_offload.h' line='244' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flow_table' type-id='56eda57c' visibility='default' filepath='include/net/flow_offload.h' line='245' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/flow_offload.h' line='247' column='1' id='e7f44061'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cookie' type-id='7359adad' visibility='default' filepath='include/net/flow_offload.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mark' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='labels' type-id='1c6c0c39' visibility='default' filepath='include/net/flow_offload.h' line='250' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='orig_dir' type-id='b50a4934' visibility='default' filepath='include/net/flow_offload.h' line='251' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/flow_offload.h' line='253' column='1' id='e7f44062'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='label' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='proto' type-id='84a5c3d4' visibility='default' filepath='include/net/flow_offload.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='tc' type-id='f9b06939' visibility='default' filepath='include/net/flow_offload.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='bos' type-id='f9b06939' visibility='default' filepath='include/net/flow_offload.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ttl' type-id='f9b06939' visibility='default' filepath='include/net/flow_offload.h' line='258' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='16' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/flow_offload.h' line='260' column='1' id='e7f44063'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='proto' type-id='84a5c3d4' visibility='default' filepath='include/net/flow_offload.h' line='261' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/flow_offload.h' line='263' column='1' id='e7f44064'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='label' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='tc' type-id='f9b06939' visibility='default' filepath='include/net/flow_offload.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='bos' type-id='f9b06939' visibility='default' filepath='include/net/flow_offload.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='ttl' type-id='f9b06939' visibility='default' filepath='include/net/flow_offload.h' line='267' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/flow_offload.h' line='269' column='1' id='e7f44065'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='prio' type-id='a7832498' visibility='default' filepath='include/net/flow_offload.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='basetime' type-id='91ce1af9' visibility='default' filepath='include/net/flow_offload.h' line='272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cycletime' type-id='91ce1af9' visibility='default' filepath='include/net/flow_offload.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cycletimeext' type-id='91ce1af9' visibility='default' filepath='include/net/flow_offload.h' line='274' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='num_entries' type-id='19c2251e' visibility='default' filepath='include/net/flow_offload.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='entries' type-id='5a472742' visibility='default' filepath='include/net/flow_offload.h' line='276' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='16' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/flow_offload.h' line='278' column='1' id='e7f44066'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sid' type-id='1dc6a898' visibility='default' filepath='include/net/flow_offload.h' line='279' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='16' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/ipv6.h' line='252' column='1' id='e7f44067'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='srcrt' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1'>
+          <var-decl name='osrcrt' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='254' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2'>
+          <var-decl name='rxinfo' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3'>
+          <var-decl name='rxoinfo' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4'>
+          <var-decl name='rxhlim' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5'>
+          <var-decl name='rxohlim' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6'>
+          <var-decl name='hopopts' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7'>
+          <var-decl name='ohopopts' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='260' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='dstopts' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='261' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9'>
+          <var-decl name='odstopts' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10'>
+          <var-decl name='rxflow' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11'>
+          <var-decl name='rxtclass' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12'>
+          <var-decl name='rxpmtu' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13'>
+          <var-decl name='rxorigdstaddr' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14'>
+          <var-decl name='recvfragsize' type-id='d315442e' visibility='default' filepath='include/linux/ipv6.h' line='267' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='514' column='1' id='e7f44068'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='desc' type-id='7359adad' visibility='default' filepath='include/linux/skbuff.h' line='515' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ctx' type-id='eaa32e2f' visibility='default' filepath='include/linux/skbuff.h' line='516' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='518' column='1' id='e7f44069'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='19c2251e' visibility='default' filepath='include/linux/skbuff.h' line='519' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='len' type-id='1dc6a898' visibility='default' filepath='include/linux/skbuff.h' line='520' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='zerocopy' type-id='1dc6a898' visibility='default' filepath='include/linux/skbuff.h' line='521' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bytelen' type-id='19c2251e' visibility='default' filepath='include/linux/skbuff.h' line='522' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/tcp.h' line='378' column='1' id='e7f4406a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rtt_us' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='seq' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='time' type-id='91ce1af9' visibility='default' filepath='include/linux/tcp.h' line='381' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/tcp.h' line='385' column='1' id='e7f4406b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='space' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='seq' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='387' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='time' type-id='91ce1af9' visibility='default' filepath='include/linux/tcp.h' line='388' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/linux/tcp.h' line='392' column='1' id='e7f4406c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='probe_seq_start' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='393' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='probe_seq_end' type-id='19c2251e' visibility='default' filepath='include/linux/tcp.h' line='394' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/inet_connection_sock.h' line='114' column='1' id='e7f4406d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pending' type-id='8f048e17' visibility='default' filepath='include/net/inet_connection_sock.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='quick' type-id='8f048e17' visibility='default' filepath='include/net/inet_connection_sock.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='pingpong' type-id='8f048e17' visibility='default' filepath='include/net/inet_connection_sock.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='retry' type-id='8f048e17' visibility='default' filepath='include/net/inet_connection_sock.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ato' type-id='3f1a6b60' visibility='default' filepath='include/net/inet_connection_sock.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='timeout' type-id='7359adad' visibility='default' filepath='include/net/inet_connection_sock.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lrcvtime' type-id='3f1a6b60' visibility='default' filepath='include/net/inet_connection_sock.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='last_seg_size' type-id='d315442e' visibility='default' filepath='include/net/inet_connection_sock.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='rcv_mss' type-id='d315442e' visibility='default' filepath='include/net/inet_connection_sock.h' line='123' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/inet_connection_sock.h' line='125' column='1' id='e7f4406e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='search_high' type-id='95e97e5e' visibility='default' filepath='include/net/inet_connection_sock.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='search_low' type-id='95e97e5e' visibility='default' filepath='include/net/inet_connection_sock.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='probe_size' type-id='19c2251e' visibility='default' filepath='include/net/inet_connection_sock.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='95'>
+          <var-decl name='enabled' type-id='19c2251e' visibility='default' filepath='include/net/inet_connection_sock.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='probe_timestamp' type-id='19c2251e' visibility='default' filepath='include/net/inet_connection_sock.h' line='135' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack_l4proto.h' line='49' column='1' id='e7f4406f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nlattr_to_obj' type-id='3de28d43' visibility='default' filepath='include/net/netfilter/nf_conntrack_l4proto.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='obj_to_nlattr' type-id='a6ebc0f9' visibility='default' filepath='include/net/netfilter/nf_conntrack_l4proto.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='obj_size' type-id='1dc6a898' visibility='default' filepath='include/net/netfilter/nf_conntrack_l4proto.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='nlattr_max' type-id='1dc6a898' visibility='default' filepath='include/net/netfilter/nf_conntrack_l4proto.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='nla_policy' type-id='109cdb66' visibility='default' filepath='include/net/netfilter/nf_conntrack_l4proto.h' line='56' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/netfilter/nf_log.h' line='23' column='1' id='e7f44070'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='copy_len' type-id='9586cc7b' visibility='default' filepath='include/net/netfilter/nf_log.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='group' type-id='ea2e3595' visibility='default' filepath='include/net/netfilter/nf_log.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='qthreshold' type-id='ea2e3595' visibility='default' filepath='include/net/netfilter/nf_log.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='ea2e3595' visibility='default' filepath='include/net/netfilter/nf_log.h' line='30' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='16' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/netfilter/nf_log.h' line='32' column='1' id='e7f44071'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='level' type-id='892641a4' visibility='default' filepath='include/net/netfilter/nf_log.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='logflags' type-id='892641a4' visibility='default' filepath='include/net/netfilter/nf_log.h' line='34' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='896' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6186' column='1' id='e7f44072'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab6aa' visibility='default' filepath='include/net/cfg80211.h' line='6188' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='72' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='386' column='1' id='e7f44073'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='_80' type-id='a03b9897' visibility='default' filepath='include/net/cfg80211.h' line='387' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='_160' type-id='a03b9897' visibility='default' filepath='include/net/cfg80211.h' line='388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='_320' type-id='a03b9897' visibility='default' filepath='include/net/cfg80211.h' line='389' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='435' column='1' id='e7f44074'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='data' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='len' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='437' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5379' column='1' id='e7f44075'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='preambles' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bandwidths' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5381' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max_bursts_exponent' type-id='fdbf7a0f' visibility='default' filepath='include/net/cfg80211.h' line='5382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='max_ftms_per_burst' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5383' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='supported' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5384' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='81'>
+          <var-decl name='asap' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5385' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='82'>
+          <var-decl name='non_asap' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='83'>
+          <var-decl name='request_lci' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5387' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='84'>
+          <var-decl name='request_civicloc' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='85'>
+          <var-decl name='trigger_based' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='86'>
+          <var-decl name='non_trigger_based' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5390' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5765' column='1' id='e7f44076'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='peer' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5766' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='vif' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5766' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='max_retry' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5767' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1' id='e7f44077'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6157' column='1' id='e7f44078'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='connected_addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='304'>
+          <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6160' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='1920' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6162' column='1' id='e7f44079'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='beacon_interval' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='6163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='preset_chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='id' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='id_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1864'>
+          <var-decl name='id_up_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6167' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='1088' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6169' column='1' id='e7f4407a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='preset_chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6172' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='1152' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6174' column='1' id='e7f4407b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='current_bss' type-id='1819dec8' visibility='default' filepath='include/net/cfg80211.h' line='6175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='beacon_interval' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='6177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6179' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='768' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6181' column='1' id='e7f4407c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6182' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='832' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6189' column='1' id='e7f4407d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='beacon_interval' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='6190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6191' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6193' column='1' id='e7f4407e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='current_bss' type-id='1819dec8' visibility='default' filepath='include/net/cfg80211.h' line='6194' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='sound/usb/card.h' line='194' column='1' id='e7f4407f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='marker' type-id='95e97e5e' visibility='default' filepath='sound/usb/card.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='channel' type-id='95e97e5e' visibility='default' filepath='sound/usb/card.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='byte_idx' type-id='95e97e5e' visibility='default' filepath='sound/usb/card.h' line='197' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cfff5953' size-in-bits='64' id='e7f9d97b'/>
+      <pointer-type-def type-id='5cb32b9b' size-in-bits='64' id='e7faa6fb'/>
+      <function-type size-in-bits='64' id='e7ff163c'>
+        <parameter type-id='eefe253e'/>
+        <parameter type-id='b6733265'/>
+        <parameter type-id='b50a4934'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='6dbd849e' size-in-bits='64' id='e803acd0'/>
+      <pointer-type-def type-id='6d5a1dab' size-in-bits='64' id='e8051adb'/>
+      <class-decl name='xdp_buff_xsk' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/net/xsk_buff_pool.h' line='21' column='1' id='e8107910'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='xdp' type-id='175944cd' visibility='default' filepath='include/net/xsk_buff_pool.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='dma' type-id='cf29c9b3' visibility='default' filepath='include/net/xsk_buff_pool.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='frame_dma' type-id='cf29c9b3' visibility='default' filepath='include/net/xsk_buff_pool.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='pool' type-id='81e0c1b8' visibility='default' filepath='include/net/xsk_buff_pool.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='unaligned' type-id='b50a4934' visibility='default' filepath='include/net/xsk_buff_pool.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='orig_addr' type-id='91ce1af9' visibility='default' filepath='include/net/xsk_buff_pool.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='free_list_node' type-id='72f469ec' visibility='default' filepath='include/net/xsk_buff_pool.h' line='28' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='84a0e7ab' size-in-bits='64' id='e812884b'/>
+      <class-decl name='can_dev_rcv_lists' is-struct='yes' visibility='default' is-declaration-only='yes' id='e82476af'/>
+      <function-type size-in-bits='64' id='e82a9f1d'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='ebd6b097'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='930eb0f7' size-in-bits='64' id='e82aa0fb'/>
+      <class-decl name='snd_soc_tplg_tlv_dbscale' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='251' column='1' id='e82b6f56'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='min' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='step' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mute' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='254' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e8300215'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='bpf_reg_type' filepath='include/linux/bpf.h' line='469' column='1' id='e830436a'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NOT_INIT' value='0'/>
+        <enumerator name='SCALAR_VALUE' value='1'/>
+        <enumerator name='PTR_TO_CTX' value='2'/>
+        <enumerator name='CONST_PTR_TO_MAP' value='3'/>
+        <enumerator name='PTR_TO_MAP_VALUE' value='4'/>
+        <enumerator name='PTR_TO_MAP_KEY' value='5'/>
+        <enumerator name='PTR_TO_STACK' value='6'/>
+        <enumerator name='PTR_TO_PACKET_META' value='7'/>
+        <enumerator name='PTR_TO_PACKET' value='8'/>
+        <enumerator name='PTR_TO_PACKET_END' value='9'/>
+        <enumerator name='PTR_TO_FLOW_KEYS' value='10'/>
+        <enumerator name='PTR_TO_SOCKET' value='11'/>
+        <enumerator name='PTR_TO_SOCK_COMMON' value='12'/>
+        <enumerator name='PTR_TO_TCP_SOCK' value='13'/>
+        <enumerator name='PTR_TO_TP_BUFFER' value='14'/>
+        <enumerator name='PTR_TO_XDP_SOCK' value='15'/>
+        <enumerator name='PTR_TO_BTF_ID' value='16'/>
+        <enumerator name='PTR_TO_MEM' value='17'/>
+        <enumerator name='PTR_TO_BUF' value='18'/>
+        <enumerator name='PTR_TO_PERCPU_BTF_ID' value='19'/>
+        <enumerator name='PTR_TO_FUNC' value='20'/>
+        <enumerator name='__BPF_REG_TYPE_MAX' value='21'/>
+        <enumerator name='PTR_TO_MAP_VALUE_OR_NULL' value='260'/>
+        <enumerator name='PTR_TO_SOCKET_OR_NULL' value='267'/>
+        <enumerator name='PTR_TO_SOCK_COMMON_OR_NULL' value='268'/>
+        <enumerator name='PTR_TO_TCP_SOCK_OR_NULL' value='269'/>
+        <enumerator name='PTR_TO_BTF_ID_OR_NULL' value='272'/>
+        <enumerator name='__BPF_REG_TYPE_LIMIT' value='1023'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='72f469ec' size-in-bits='2560' id='e832751e'>
+        <subrange length='20' type-id='7ff19f0f' id='fdca39cf'/>
+      </array-type-def>
+      <pointer-type-def type-id='cf29c9b3' size-in-bits='64' id='e835b5d8'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/crypto/b128ops.h' line='56' column='1' id='e8391769' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='a' type-id='0899c7ad' visibility='default' filepath='include/crypto/b128ops.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='b' type-id='0899c7ad' visibility='default' filepath='include/crypto/b128ops.h' line='57' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='72a2bb90' size-in-bits='64' id='e83ba222'/>
+      <pointer-type-def type-id='0790750c' size-in-bits='64' id='e83d6bbe'/>
+      <array-type-def dimensions='1' type-id='26760480' size-in-bits='384' id='e83fe618'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='infinite' id='e84913bd'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='72f469ec' size-in-bits='64' id='e84b031a'/>
+      <array-type-def dimensions='1' type-id='38db93a7' size-in-bits='infinite' id='e84e7d83'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <class-decl name='snd_soc_pcm_stream' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/sound/soc.h' line='591' column='1' id='e85be380'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='stream_name' type-id='80f4b756' visibility='default' filepath='include/sound/soc.h' line='592' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='formats' type-id='91ce1af9' visibility='default' filepath='include/sound/soc.h' line='593' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rates' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='594' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='rate_min' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='595' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rate_max' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='596' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='channels_min' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='597' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='channels_max' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='598' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='sig_bits' type-id='f0981eeb' visibility='default' filepath='include/sound/soc.h' line='599' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/sound/soc.h' line='600' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e85fe596'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='a77efac3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='xfrm_algo_desc' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/net/xfrm.h' line='1404' column='1' id='e8649a20'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/net/xfrm.h' line='1405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='compat' type-id='26a90f95' visibility='default' filepath='include/net/xfrm.h' line='1406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='available' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='1407' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='129'>
+          <var-decl name='pfkey_supported' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='1408' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='uinfo' type-id='ac5ab6ab' visibility='default' filepath='include/net/xfrm.h' line='1414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='desc' type-id='731caba6' visibility='default' filepath='include/net/xfrm.h' line='1415' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='of_dma' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/of_dma.h' line='18' column='1' id='e8681069'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='of_dma_controllers' type-id='72f469ec' visibility='default' filepath='include/linux/of_dma.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='of_node' type-id='9a537bbe' visibility='default' filepath='include/linux/of_dma.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='of_dma_xlate' type-id='04d80927' visibility='default' filepath='include/linux/of_dma.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='of_dma_route_allocate' type-id='d1aa2b6e' visibility='default' filepath='include/linux/of_dma.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dma_router' type-id='70a92833' visibility='default' filepath='include/linux/of_dma.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='of_dma_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/of_dma.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e86b7946'>
+        <parameter type-id='fc4f83c1'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='bd965180' const='yes' id='e8726a27'/>
+      <class-decl name='qc_type_state' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/quota.h' line='401' column='1' id='e878d564'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/quota.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='spc_timelimit' type-id='f0981eeb' visibility='default' filepath='include/linux/quota.h' line='403' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ino_timelimit' type-id='f0981eeb' visibility='default' filepath='include/linux/quota.h' line='405' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='rt_spc_timelimit' type-id='f0981eeb' visibility='default' filepath='include/linux/quota.h' line='406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='spc_warnlimit' type-id='f0981eeb' visibility='default' filepath='include/linux/quota.h' line='407' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='ino_warnlimit' type-id='f0981eeb' visibility='default' filepath='include/linux/quota.h' line='408' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rt_spc_warnlimit' type-id='f0981eeb' visibility='default' filepath='include/linux/quota.h' line='409' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ino' type-id='0d77e947' visibility='default' filepath='include/linux/quota.h' line='410' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='blocks' type-id='17345459' visibility='default' filepath='include/linux/quota.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='nextents' type-id='17345459' visibility='default' filepath='include/linux/quota.h' line='412' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c3fc04e5' size-in-bits='64' id='e879a339'/>
+      <class-decl name='ucsi_capability' size-in-bits='128' is-struct='yes' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='167' column='1' id='e87cddcc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='attributes' type-id='19c2251e' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='num_connectors' type-id='f9b06939' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='features' type-id='f9b06939' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='reserved_1' type-id='1dc6a898' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_alt_modes' type-id='f9b06939' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='reserved_2' type-id='f9b06939' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='bc_version' type-id='1dc6a898' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='pd_version' type-id='1dc6a898' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='typec_version' type-id='1dc6a898' visibility='default' filepath='drivers/usb/typec/ucsi/ucsi.h' line='191' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e87d68d4'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='691d1b3b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='dma_heap_ops' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/dma-heap.h' line='24' column='1' id='e87e70f3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='allocate' type-id='404d559d' visibility='default' filepath='include/linux/dma-heap.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='get_pool_size' type-id='450b7564' visibility='default' filepath='include/linux/dma-heap.h' line='29' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='suspend_state_t' type-id='95e97e5e' filepath='include/linux/suspend.h' line='35' column='1' id='e884daa5'/>
+      <function-type size-in-bits='64' id='e8854659'>
+        <parameter type-id='343c3ae4'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='e4af473b' const='yes' id='e88d0150'/>
+      <pointer-type-def type-id='d09d4bab' size-in-bits='64' id='e89ddc13'/>
+      <pointer-type-def type-id='e03666d9' size-in-bits='64' id='e8a41089'/>
+      <class-decl name='snd_pcm_chmap' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/sound/pcm.h' line='1424' column='1' id='e8a73faf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pcm' type-id='4c9f335b' visibility='default' filepath='include/sound/pcm.h' line='1425' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='stream' type-id='95e97e5e' visibility='default' filepath='include/sound/pcm.h' line='1426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='kctl' type-id='7a5054b7' visibility='default' filepath='include/sound/pcm.h' line='1427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='chmap' type-id='ddec2084' visibility='default' filepath='include/sound/pcm.h' line='1428' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='max_channels' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='1429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='channel_mask' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='1430' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='include/sound/pcm.h' line='1431' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7ae02c0a' size-in-bits='64' id='e8a80ab7'/>
+      <enum-decl name='regmap_endian' filepath='include/linux/regmap.h' line='186' column='1' id='e8a9ba7e'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='REGMAP_ENDIAN_DEFAULT' value='0'/>
+        <enumerator name='REGMAP_ENDIAN_BIG' value='1'/>
+        <enumerator name='REGMAP_ENDIAN_LITTLE' value='2'/>
+        <enumerator name='REGMAP_ENDIAN_NATIVE' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='1c800c47' size-in-bits='64' id='e8ad2523'/>
+      <pointer-type-def type-id='b713976c' size-in-bits='64' id='e8c1d90e'/>
+      <pointer-type-def type-id='96bb51fa' size-in-bits='64' id='e8c4dba4'/>
+      <function-type size-in-bits='64' id='e8cfb72d'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='2ae08426'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d1a0f9b1' size-in-bits='64' id='e8d45b05'/>
+      <pointer-type-def type-id='4b2795fc' size-in-bits='64' id='e8d572d7'/>
+      <array-type-def dimensions='1' type-id='72f469ec' size-in-bits='1024' id='e8d7d286'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <class-decl name='kernel_pkey_params' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/keyctl.h' line='29' column='1' id='e8d98129'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='key' type-id='204a4632' visibility='default' filepath='include/linux/keyctl.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='encoding' type-id='80f4b756' visibility='default' filepath='include/linux/keyctl.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hash_algo' type-id='80f4b756' visibility='default' filepath='include/linux/keyctl.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='info' type-id='26a90f95' visibility='default' filepath='include/linux/keyctl.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='in_len' type-id='3f1a6b60' visibility='default' filepath='include/linux/keyctl.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='' type-id='ac5ab5ab' visibility='default' filepath='include/linux/keyctl.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='op' type-id='eec170ff' visibility='default' filepath='include/linux/keyctl.h' line='39' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='0b9e92f3' size-in-bits='49728' id='e8e17bcc'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <pointer-type-def type-id='71b2fd82' size-in-bits='64' id='e8e442ac'/>
+      <class-decl name='xfrm_policy_walk_entry' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/xfrm.h' line='477' column='1' id='e8e96050'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='all' type-id='72f469ec' visibility='default' filepath='include/net/xfrm.h' line='478' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dead' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='479' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='sctp_conntrack' filepath='include/uapi/linux/netfilter/nf_conntrack_sctp.h' line='8' column='1' id='e8eb3890'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SCTP_CONNTRACK_NONE' value='0'/>
+        <enumerator name='SCTP_CONNTRACK_CLOSED' value='1'/>
+        <enumerator name='SCTP_CONNTRACK_COOKIE_WAIT' value='2'/>
+        <enumerator name='SCTP_CONNTRACK_COOKIE_ECHOED' value='3'/>
+        <enumerator name='SCTP_CONNTRACK_ESTABLISHED' value='4'/>
+        <enumerator name='SCTP_CONNTRACK_SHUTDOWN_SENT' value='5'/>
+        <enumerator name='SCTP_CONNTRACK_SHUTDOWN_RECD' value='6'/>
+        <enumerator name='SCTP_CONNTRACK_SHUTDOWN_ACK_SENT' value='7'/>
+        <enumerator name='SCTP_CONNTRACK_HEARTBEAT_SENT' value='8'/>
+        <enumerator name='SCTP_CONNTRACK_HEARTBEAT_ACKED' value='9'/>
+        <enumerator name='SCTP_CONNTRACK_MAX' value='10'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='72f469ec' size-in-bits='384' id='e8ef2bd5'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <class-decl name='v4l2_pix_format' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='496' column='1' id='e8f6102b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='497' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='498' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pixelformat' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='499' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='field' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='500' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bytesperline' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='501' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='sizeimage' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='502' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='colorspace' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='503' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='priv' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='504' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='505' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='' type-id='ac5ab5f3' visibility='default' filepath='include/uapi/linux/videodev2.h' line='506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='quantization' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='xfer_func' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='513' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='882c3f1f' size-in-bits='64' id='e9037327'/>
+      <class-decl name='iw_request_info' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/net/iw_handler.h' line='304' column='1' id='e90b3b44'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='d315442e' visibility='default' filepath='include/net/iw_handler.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='flags' type-id='d315442e' visibility='default' filepath='include/net/iw_handler.h' line='306' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='72c0e160' size-in-bits='64' id='e90f4666'/>
+      <pointer-type-def type-id='55fcdb4f' size-in-bits='64' id='e90fa847'/>
+      <function-type size-in-bits='64' id='e91cb1f0'>
+        <parameter type-id='1c079e60'/>
+        <parameter type-id='f772df6d'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='f9617b12' size-in-bits='64' id='e91cc304'/>
+      <pointer-type-def type-id='98336dd9' size-in-bits='64' id='e91f335d'/>
+      <typedef-decl name='vm_fault_t' type-id='f0981eeb' filepath='include/linux/mm_types.h' line='838' column='1' id='e9265215'/>
+      <class-decl name='i3c_i2c_dev_desc' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/i3c/master.h' line='41' column='1' id='e92b32c3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/i3c/master.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='master' type-id='0ac68794' visibility='default' filepath='include/linux/i3c/master.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='master_priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/i3c/master.h' line='44' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fib_nh_exception' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/net/ip_fib.h' line='58' column='1' id='e92f1a2f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fnhe_next' type-id='aa804387' visibility='default' filepath='include/net/ip_fib.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fnhe_genid' type-id='95e97e5e' visibility='default' filepath='include/net/ip_fib.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='fnhe_daddr' type-id='78a133c2' visibility='default' filepath='include/net/ip_fib.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fnhe_pmtu' type-id='19c2251e' visibility='default' filepath='include/net/ip_fib.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='fnhe_mtu_locked' type-id='b50a4934' visibility='default' filepath='include/net/ip_fib.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fnhe_gw' type-id='78a133c2' visibility='default' filepath='include/net/ip_fib.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='fnhe_expires' type-id='7359adad' visibility='default' filepath='include/net/ip_fib.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='fnhe_rth_input' type-id='c8f5869f' visibility='default' filepath='include/net/ip_fib.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='fnhe_rth_output' type-id='c8f5869f' visibility='default' filepath='include/net/ip_fib.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='fnhe_stamp' type-id='7359adad' visibility='default' filepath='include/net/ip_fib.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/ip_fib.h' line='69' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e931abd6'>
+        <parameter type-id='bff05edb'/>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='973b98af' const='yes' id='e937566e'/>
+      <pointer-type-def type-id='9263c6b3' size-in-bits='64' id='e937debf'/>
+      <class-decl name='ttm_bus_placement' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='149' column='1' id='e93aa2cd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='eaa32e2f' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='offset' type-id='2522883d' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='151' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='is_iomem' type-id='b50a4934' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='caching' type-id='4aed510d' visibility='default' filepath='include/drm/ttm/ttm_resource.h' line='153' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='68e801ee' size-in-bits='64' id='e93ac78c'/>
+      <pointer-type-def type-id='c9a7d694' size-in-bits='64' id='e93ad56e'/>
+      <pointer-type-def type-id='f29d9605' size-in-bits='64' id='e93ad915'/>
+      <pointer-type-def type-id='9be24bae' size-in-bits='64' id='e93ce0cc'/>
+      <enum-decl name='blk_crypto_mode_num' filepath='include/linux/blk-crypto.h' line='11' column='1' id='e951e732'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='BLK_ENCRYPTION_MODE_INVALID' value='0'/>
+        <enumerator name='BLK_ENCRYPTION_MODE_AES_256_XTS' value='1'/>
+        <enumerator name='BLK_ENCRYPTION_MODE_AES_128_CBC_ESSIV' value='2'/>
+        <enumerator name='BLK_ENCRYPTION_MODE_ADIANTUM' value='3'/>
+        <enumerator name='BLK_ENCRYPTION_MODE_MAX' value='4'/>
+      </enum-decl>
+      <class-decl name='dax_device' is-struct='yes' visibility='default' is-declaration-only='yes' id='e953a5bd'/>
+      <class-decl name='usb_composite_dev' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/linux/usb/composite.h' line='478' column='1' id='e9546509'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='gadget' type-id='49a58c0c' visibility='default' filepath='include/linux/usb/composite.h' line='479' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='req' type-id='1a494567' visibility='default' filepath='include/linux/usb/composite.h' line='480' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='os_desc_req' type-id='1a494567' visibility='default' filepath='include/linux/usb/composite.h' line='481' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='config' type-id='ee27b7c6' visibility='default' filepath='include/linux/usb/composite.h' line='483' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='qw_sign' type-id='497ff6fb' visibility='default' filepath='include/linux/usb/composite.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='368'>
+          <var-decl name='b_vendor_code' type-id='f9b06939' visibility='default' filepath='include/linux/usb/composite.h' line='487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='os_desc_config' type-id='ee27b7c6' visibility='default' filepath='include/linux/usb/composite.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='use_os_string' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/composite.h' line='489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='449'>
+          <var-decl name='suspended' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/composite.h' line='493' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='456'>
+          <var-decl name='desc' type-id='582de67c' visibility='default' filepath='include/linux/usb/composite.h' line='494' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='configs' type-id='72f469ec' visibility='default' filepath='include/linux/usb/composite.h' line='495' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='gstrings' type-id='72f469ec' visibility='default' filepath='include/linux/usb/composite.h' line='496' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='driver' type-id='c64e62ba' visibility='default' filepath='include/linux/usb/composite.h' line='497' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='next_string_id' type-id='f9b06939' visibility='default' filepath='include/linux/usb/composite.h' line='498' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='def_manufacturer' type-id='26a90f95' visibility='default' filepath='include/linux/usb/composite.h' line='499' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='deactivations' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/composite.h' line='504' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='delayed_status' type-id='95e97e5e' visibility='default' filepath='include/linux/usb/composite.h' line='509' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/usb/composite.h' line='512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='setup_pending' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/composite.h' line='515' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1185'>
+          <var-decl name='os_desc_pending' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/composite.h' line='516' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='08cf731d' size-in-bits='infinite' id='e9564905'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <class-decl name='v4l2_subdev_state' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='664' column='1' id='e95f6825'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pads' type-id='288e890e' visibility='default' filepath='include/media/v4l2-subdev.h' line='665' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a115139f' size-in-bits='64' id='e95fd96b'/>
+      <class-decl name='nvdimm_bus' size-in-bits='8512' is-struct='yes' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='19' column='1' id='e9630e15'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nd_desc' type-id='0e23c133' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wait' type-id='b5ab048f' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7712'>
+          <var-decl name='probe_active' type-id='95e97e5e' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='ioctl_active' type-id='49178f86' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='mapping_list' type-id='72f469ec' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='reconfig_mutex' type-id='925167dc' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8320'>
+          <var-decl name='badrange' type-id='f5e659a5' visibility='default' filepath='drivers/nvdimm/nd-core.h' line='28' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c2c09950' size-in-bits='64' id='e963f446'/>
+      <class-decl name='drm_device' size-in-bits='14080' is-struct='yes' visibility='default' filepath='include/drm/drm_device.h' line='53' column='1' id='e96cc76d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='if_version' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_device.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='ref' type-id='400fb07b' visibility='default' filepath='include/drm/drm_device.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/drm/drm_device.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='managed' type-id='e7f43fab' visibility='default' filepath='include/drm/drm_device.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='driver' type-id='b4e725f2' visibility='default' filepath='include/drm/drm_device.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='dev_private' type-id='eaa32e2f' visibility='default' filepath='include/drm/drm_device.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='primary' type-id='6c3b3f8e' visibility='default' filepath='include/drm/drm_device.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='render' type-id='6c3b3f8e' visibility='default' filepath='include/drm/drm_device.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/drm/drm_device.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='master' type-id='07df1a3d' visibility='default' filepath='include/drm/drm_device.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='driver_features' type-id='19c2251e' visibility='default' filepath='include/drm/drm_device.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='unplugged' type-id='b50a4934' visibility='default' filepath='include/drm/drm_device.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='anon_inode' type-id='7e666abe' visibility='default' filepath='include/drm/drm_device.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='unique' type-id='26a90f95' visibility='default' filepath='include/drm/drm_device.h' line='136' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='struct_mutex' type-id='925167dc' visibility='default' filepath='include/drm/drm_device.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='master_mutex' type-id='925167dc' visibility='default' filepath='include/drm/drm_device.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='open_count' type-id='49178f86' visibility='default' filepath='include/drm/drm_device.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='filelist_mutex' type-id='925167dc' visibility='default' filepath='include/drm/drm_device.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='filelist' type-id='72f469ec' visibility='default' filepath='include/drm/drm_device.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='filelist_internal' type-id='72f469ec' visibility='default' filepath='include/drm/drm_device.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='clientlist_mutex' type-id='925167dc' visibility='default' filepath='include/drm/drm_device.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='clientlist' type-id='72f469ec' visibility='default' filepath='include/drm/drm_device.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='vblank_disable_immediate' type-id='b50a4934' visibility='default' filepath='include/drm/drm_device.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='vblank' type-id='04d2f8d2' visibility='default' filepath='include/drm/drm_device.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='vblank_time_lock' type-id='fb4018a0' visibility='default' filepath='include/drm/drm_device.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3104'>
+          <var-decl name='vbl_lock' type-id='fb4018a0' visibility='default' filepath='include/drm/drm_device.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='max_vblank_count' type-id='19c2251e' visibility='default' filepath='include/drm/drm_device.h' line='252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='vblank_event_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_device.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='event_lock' type-id='fb4018a0' visibility='default' filepath='include/drm/drm_device.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3360'>
+          <var-decl name='num_crtcs' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_device.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='mode_config' type-id='5052051f' visibility='default' filepath='include/drm/drm_device.h' line='269' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13248'>
+          <var-decl name='object_name_lock' type-id='925167dc' visibility='default' filepath='include/drm/drm_device.h' line='272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13632'>
+          <var-decl name='object_name_idr' type-id='37ce495e' visibility='default' filepath='include/drm/drm_device.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13824'>
+          <var-decl name='vma_offset_manager' type-id='0c6d12d5' visibility='default' filepath='include/drm/drm_device.h' line='278' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13888'>
+          <var-decl name='vram_mm' type-id='dbdf0f9e' visibility='default' filepath='include/drm/drm_device.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13952'>
+          <var-decl name='switch_power_state' type-id='40bb3c00' visibility='default' filepath='include/drm/drm_device.h' line='291' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14016'>
+          <var-decl name='fb_helper' type-id='147b8c0a' visibility='default' filepath='include/drm/drm_device.h' line='299' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='e976b4ca'>
+        <parameter type-id='02913b69'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='1ca42ff9' size-in-bits='64' id='e9774929'/>
+      <pointer-type-def type-id='9f9e2614' size-in-bits='64' id='e9803536'/>
+      <function-type size-in-bits='64' id='e9855576'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='b53e8dbb'/>
+        <parameter type-id='15d29710'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <class-decl name='hrtimer_sleeper' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/hrtimer.h' line='139' column='1' id='e98813cb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='timer' type-id='b6993efc' visibility='default' filepath='include/linux/hrtimer.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='task' type-id='f23e2572' visibility='default' filepath='include/linux/hrtimer.h' line='141' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='a23921c9' const='yes' id='e98a103e'/>
+      <pointer-type-def type-id='de7f2597' size-in-bits='64' id='e98ceb7f'/>
+      <pointer-type-def type-id='d4693377' size-in-bits='64' id='e9910ceb'/>
+      <class-decl name='gre_protocol' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/gre.h' line='27' column='1' id='e9928c10'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='handler' type-id='d2e00785' visibility='default' filepath='include/net/gre.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='err_handler' type-id='e4b24123' visibility='default' filepath='include/net/gre.h' line='29' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_otg_caps' size-in-bits='48' is-struct='yes' visibility='default' filepath='include/linux/usb/otg.h' line='55' column='1' id='e994232a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='otg_rev' type-id='1dc6a898' visibility='default' filepath='include/linux/usb/otg.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='hnp_support' type-id='b50a4934' visibility='default' filepath='include/linux/usb/otg.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='srp_support' type-id='b50a4934' visibility='default' filepath='include/linux/usb/otg.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='adp_support' type-id='b50a4934' visibility='default' filepath='include/linux/usb/otg.h' line='59' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='691a06da' size-in-bits='64' id='e9a4c848'/>
+      <function-type size-in-bits='64' id='e9a8dd3e'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='cf536864'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='xdp_txq_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/xdp.h' line='65' column='1' id='e9aff380'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/net/xdp.h' line='66' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='df81074e' size-in-bits='64' id='e9b5d134'/>
+      <class-decl name='cfg80211_pmsr_capabilities' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5374' column='1' id='e9bb2749'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='max_peers' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5375' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='report_ap_tsf' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33'>
+          <var-decl name='randomize_mac_addr' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5377' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='ftm' type-id='e7f44075' visibility='default' filepath='include/net/cfg80211.h' line='5391' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='clk_rate_request' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/clk-provider.h' line='56' column='1' id='e9bea70c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rate' type-id='7359adad' visibility='default' filepath='include/linux/clk-provider.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='min_rate' type-id='7359adad' visibility='default' filepath='include/linux/clk-provider.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='max_rate' type-id='7359adad' visibility='default' filepath='include/linux/clk-provider.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='best_parent_rate' type-id='7359adad' visibility='default' filepath='include/linux/clk-provider.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='best_parent_hw' type-id='3aaeef89' visibility='default' filepath='include/linux/clk-provider.h' line='61' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6b1203e5' size-in-bits='64' id='e9bf5d35'/>
+      <function-type size-in-bits='64' id='e9c67dd2'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='4adb0e6a'/>
+        <parameter type-id='eea6b025'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='e9c85fc0'>
+        <parameter type-id='ee406209'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='kernel_ethtool_coalesce' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/linux/ethtool.h' line='177' column='1' id='e9cf70a8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='use_cqe_mode_tx' type-id='f9b06939' visibility='default' filepath='include/linux/ethtool.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='use_cqe_mode_rx' type-id='f9b06939' visibility='default' filepath='include/linux/ethtool.h' line='179' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='63fc6210' size-in-bits='64' id='e9d22a06'/>
+      <pointer-type-def type-id='1706cf19' size-in-bits='64' id='e9d32201'/>
+      <pointer-type-def type-id='8efea9e5' size-in-bits='64' id='e9e550dd'/>
+      <pointer-type-def type-id='fa12cc76' size-in-bits='64' id='e9e8c0f8'/>
+      <typedef-decl name='call_rcu_func_t' type-id='fed6b1fe' filepath='include/linux/types.h' line='227' column='1' id='e9ec35ef'/>
+      <function-type size-in-bits='64' id='e9ef9215'>
+        <parameter type-id='02f11ed4'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='05a6e6cc' size-in-bits='64' id='e9efa10a'/>
+      <pointer-type-def type-id='fcd4ba8e' size-in-bits='64' id='e9f2f0c0'/>
+      <pointer-type-def type-id='7f779b3f' size-in-bits='64' id='e9f334cb'/>
+      <qualified-type-def type-id='785fcb49' const='yes' id='e9f76e3a'/>
+      <typedef-decl name='ZSTD_CStream' type-id='85804ba6' filepath='include/linux/zstd.h' line='537' column='1' id='e9fd7595'/>
+      <pointer-type-def type-id='7430554e' size-in-bits='64' id='ea00c914'/>
+      <pointer-type-def type-id='ab42aece' size-in-bits='64' id='ea030990'/>
+      <function-type size-in-bits='64' id='ea038279'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='2522883d'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='eea6b025'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='cf29c9b3'/>
+      </function-type>
+      <qualified-type-def type-id='36e5348a' const='yes' id='ea04303b'/>
+      <class-decl name='mod_arch_specific' size-in-bits='256' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/module.h' line='17' column='1' id='ea05c185'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='core' type-id='1615ea0e' visibility='default' filepath='arch/arm64/include/asm/module.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='init' type-id='1615ea0e' visibility='default' filepath='arch/arm64/include/asm/module.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ftrace_trampolines' type-id='72ece9e2' visibility='default' filepath='arch/arm64/include/asm/module.h' line='22' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='dma_chan_percpu' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/dmaengine.h' line='294' column='1' id='ea186880'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='memcpy_count' type-id='7359adad' visibility='default' filepath='include/linux/dmaengine.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bytes_transferred' type-id='7359adad' visibility='default' filepath='include/linux/dmaengine.h' line='297' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='060e2e70' size-in-bits='64' id='ea1bdaf6'/>
+      <function-type size-in-bits='64' id='ea214f7b'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='bd54fe1a'/>
+      </function-type>
+      <qualified-type-def type-id='2314059a' const='yes' id='ea28efa9'/>
+      <pointer-type-def type-id='090a4485' size-in-bits='64' id='ea2a1f7d'/>
+      <typedef-decl name='u_int16_t' type-id='1dc6a898' filepath='include/linux/types.h' line='95' column='1' id='ea2e3595'/>
+      <class-decl name='cftype' size-in-bits='1728' is-struct='yes' visibility='default' filepath='include/linux/cgroup-defs.h' line='537' column='1' id='ea2ebeac'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='59daf3ef' visibility='default' filepath='include/linux/cgroup-defs.h' line='543' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='private' type-id='7359adad' visibility='default' filepath='include/linux/cgroup-defs.h' line='544' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='max_write_len' type-id='b59d7dce' visibility='default' filepath='include/linux/cgroup-defs.h' line='550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/cgroup-defs.h' line='553' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='file_offset' type-id='f0981eeb' visibility='default' filepath='include/linux/cgroup-defs.h' line='561' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='ss' type-id='dc91d125' visibility='default' filepath='include/linux/cgroup-defs.h' line='567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/cgroup-defs.h' line='568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='kf_ops' type-id='1f2a8949' visibility='default' filepath='include/linux/cgroup-defs.h' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='open' type-id='964d2eb6' visibility='default' filepath='include/linux/cgroup-defs.h' line='571' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='release' type-id='f1825e09' visibility='default' filepath='include/linux/cgroup-defs.h' line='572' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='read_u64' type-id='ad13fd93' visibility='default' filepath='include/linux/cgroup-defs.h' line='578' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='read_s64' type-id='ae18a37d' visibility='default' filepath='include/linux/cgroup-defs.h' line='582' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='seq_show' type-id='0131eb61' visibility='default' filepath='include/linux/cgroup-defs.h' line='585' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='seq_start' type-id='a46b05a0' visibility='default' filepath='include/linux/cgroup-defs.h' line='588' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='seq_next' type-id='b6ba26fa' visibility='default' filepath='include/linux/cgroup-defs.h' line='589' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='seq_stop' type-id='6ba28d1c' visibility='default' filepath='include/linux/cgroup-defs.h' line='590' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='write_u64' type-id='3e9fac96' visibility='default' filepath='include/linux/cgroup-defs.h' line='597' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='write_s64' type-id='2b0348f0' visibility='default' filepath='include/linux/cgroup-defs.h' line='602' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='write' type-id='17b1add7' visibility='default' filepath='include/linux/cgroup-defs.h' line='611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='poll' type-id='b347e5ac' visibility='default' filepath='include/linux/cgroup-defs.h' line='614' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='sched_group_capacity' size-in-bits='384' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='1837' column='1' id='ea3de64d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ref' type-id='49178f86' visibility='default' filepath='kernel/sched/sched.h' line='1838' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='capacity' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1843' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='min_capacity' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1844' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='max_capacity' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1845' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='next_update' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1846' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='imbalance' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1847' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1850' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='cpumask' type-id='c99b5ecd' visibility='default' filepath='kernel/sched/sched.h' line='1853' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ae99f6b5' size-in-bits='64' id='ea44fe69'/>
+      <pointer-type-def type-id='40f66efb' size-in-bits='64' id='ea484b4b'/>
+      <function-type size-in-bits='64' id='ea48a448'>
+        <parameter type-id='95316552'/>
+        <parameter type-id='1c936db9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ea4e578a'>
+        <parameter type-id='8582e5ec'/>
+        <return type-id='f7b0e1b4'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ea4ec523'>
+        <parameter type-id='10216dc5'/>
+        <parameter type-id='9a537bbe'/>
+        <parameter type-id='bf73010c'/>
+        <parameter type-id='807869d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ea5fdc37'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ea65a53c'>
+        <parameter type-id='c67366c7'/>
+        <parameter type-id='8bff8096'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='drm_crtc_state' size-in-bits='2688' is-struct='yes' visibility='default' filepath='include/drm/drm_crtc.h' line='99' column='1' id='ea65fb21'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='crtc' type-id='b64ad7cb' visibility='default' filepath='include/drm/drm_crtc.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='enable' type-id='b50a4934' visibility='default' filepath='include/drm/drm_crtc.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='active' type-id='b50a4934' visibility='default' filepath='include/drm/drm_crtc.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='planes_changed' type-id='b50a4934' visibility='default' filepath='include/drm/drm_crtc.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='81'>
+          <var-decl name='mode_changed' type-id='b50a4934' visibility='default' filepath='include/drm/drm_crtc.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='82'>
+          <var-decl name='active_changed' type-id='b50a4934' visibility='default' filepath='include/drm/drm_crtc.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='83'>
+          <var-decl name='connectors_changed' type-id='b50a4934' visibility='default' filepath='include/drm/drm_crtc.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='84'>
+          <var-decl name='zpos_changed' type-id='b50a4934' visibility='default' filepath='include/drm/drm_crtc.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='85'>
+          <var-decl name='color_mgmt_changed' type-id='b50a4934' visibility='default' filepath='include/drm/drm_crtc.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='86'>
+          <var-decl name='no_vblank' type-id='b50a4934' visibility='default' filepath='include/drm/drm_crtc.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='plane_mask' type-id='19c2251e' visibility='default' filepath='include/drm/drm_crtc.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='connector_mask' type-id='19c2251e' visibility='default' filepath='include/drm/drm_crtc.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='encoder_mask' type-id='19c2251e' visibility='default' filepath='include/drm/drm_crtc.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='adjusted_mode' type-id='55efd1a3' visibility='default' filepath='include/drm/drm_crtc.h' line='240' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='mode' type-id='55efd1a3' visibility='default' filepath='include/drm/drm_crtc.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='mode_blob' type-id='c4126d52' visibility='default' filepath='include/drm/drm_crtc.h' line='263' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='degamma_lut' type-id='c4126d52' visibility='default' filepath='include/drm/drm_crtc.h' line='272' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='ctm' type-id='c4126d52' visibility='default' filepath='include/drm/drm_crtc.h' line='280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='gamma_lut' type-id='c4126d52' visibility='default' filepath='include/drm/drm_crtc.h' line='289' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='target_vblank' type-id='19c2251e' visibility='default' filepath='include/drm/drm_crtc.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2400'>
+          <var-decl name='async_flip' type-id='b50a4934' visibility='default' filepath='include/drm/drm_crtc.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2408'>
+          <var-decl name='vrr_enabled' type-id='b50a4934' visibility='default' filepath='include/drm/drm_crtc.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2416'>
+          <var-decl name='self_refresh_active' type-id='b50a4934' visibility='default' filepath='include/drm/drm_crtc.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='scaling_filter' type-id='22cc4642' visibility='default' filepath='include/drm/drm_crtc.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='event' type-id='6301fad2' visibility='default' filepath='include/drm/drm_crtc.h' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='commit' type-id='3f40b771' visibility='default' filepath='include/drm/drm_crtc.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='state' type-id='e3dd029e' visibility='default' filepath='include/drm/drm_crtc.h' line='401' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4cbeea4d' size-in-bits='64' id='ea666691'/>
+      <pointer-type-def type-id='635c3685' size-in-bits='64' id='ea7fad85'/>
+      <function-type size-in-bits='64' id='ea863425'>
+        <parameter type-id='27675065'/>
+        <parameter type-id='087d687b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='002ac4a6' const='yes' id='ea86de29'/>
+      <class-decl name='usb_ssp_cap_descriptor' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='955' column='1' id='eaa06085'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='956' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='957' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bDevCapabilityType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='958' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bReserved' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='959' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bmAttributes' type-id='2f162548' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='960' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wFunctionalitySupport' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='963' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='wReserved' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='967' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='bmSublinkSpeedAttr' type-id='df785d68' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='968' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='48b5725f' size-in-bits='64' id='eaa32e2f'/>
+      <class-decl name='fiemap_extent' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/uapi/linux/fiemap.h' line='17' column='1' id='eab08458'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fe_logical' type-id='d3130597' visibility='default' filepath='include/uapi/linux/fiemap.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fe_physical' type-id='d3130597' visibility='default' filepath='include/uapi/linux/fiemap.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fe_length' type-id='d3130597' visibility='default' filepath='include/uapi/linux/fiemap.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fe_reserved64' type-id='8a7b7524' visibility='default' filepath='include/uapi/linux/fiemap.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='fe_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/fiemap.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='fe_reserved' type-id='3fa05d14' visibility='default' filepath='include/uapi/linux/fiemap.h' line='25' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='62d6a83a' size-in-bits='6144' id='eab1661f'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <enum-decl name='l2tp_encap_type' filepath='include/uapi/linux/l2tp.h' line='169' column='1' id='eab21901'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='L2TP_ENCAPTYPE_UDP' value='0'/>
+        <enumerator name='L2TP_ENCAPTYPE_IP' value='1'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='eab6ec52'>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='2f00283d'/>
+      </function-type>
+      <function-type size-in-bits='64' id='eac2b7d9'>
+        <parameter type-id='af051c69'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='snd_pcm_hardware' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/sound/pcm.h' line='32' column='1' id='eacd353c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='info' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='formats' type-id='91ce1af9' visibility='default' filepath='include/sound/pcm.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rates' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='rate_min' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rate_max' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='channels_min' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='channels_max' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='buffer_bytes_max' type-id='b59d7dce' visibility='default' filepath='include/sound/pcm.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='period_bytes_min' type-id='b59d7dce' visibility='default' filepath='include/sound/pcm.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='period_bytes_max' type-id='b59d7dce' visibility='default' filepath='include/sound/pcm.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='periods_min' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='periods_max' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='fifo_size' type-id='b59d7dce' visibility='default' filepath='include/sound/pcm.h' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='eacd3fb9'>
+        <parameter type-id='e324928d'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ead01d34'>
+        <parameter type-id='b2fa31d6'/>
+        <return type-id='b59d7dce'/>
+      </function-type>
+      <pointer-type-def type-id='328ded65' size-in-bits='64' id='ead4b779'/>
+      <pointer-type-def type-id='a38ff96f' size-in-bits='64' id='eadc8303'/>
+      <pointer-type-def type-id='abbbeccc' size-in-bits='64' id='eaeee79a'/>
+      <array-type-def dimensions='1' type-id='8f048e17' size-in-bits='176' id='eaf62816'>
+        <subrange length='22' type-id='7ff19f0f' id='41cf2209'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='eaff4dba'>
+        <parameter type-id='2944961d'/>
+        <parameter type-id='7b4ee155'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='9cad7816' size-in-bits='64' id='eb0bccd8'/>
+      <class-decl name='xdp_rxq_info' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/net/xdp.h' line='57' column='1' id='eb0d6f26'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/net/xdp.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='queue_index' type-id='19c2251e' visibility='default' filepath='include/net/xdp.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='reg_state' type-id='19c2251e' visibility='default' filepath='include/net/xdp.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mem' type-id='1182636e' visibility='default' filepath='include/net/xdp.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='napi_id' type-id='f0981eeb' visibility='default' filepath='include/net/xdp.h' line='62' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='eb0f802b'>
+        <parameter type-id='27675065'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='ff2b3d10' size-in-bits='64' id='eb11624e'/>
+      <function-type size-in-bits='64' id='eb19b127'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='5c0abad8'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='51ee3086' size-in-bits='64' id='eb2c56dc'/>
+      <class-decl name='drm_framebuffer_funcs' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/drm/drm_framebuffer.h' line='42' column='1' id='eb452ce6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='destroy' type-id='dd634c69' visibility='default' filepath='include/drm/drm_framebuffer.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='create_handle' type-id='541466be' visibility='default' filepath='include/drm/drm_framebuffer.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dirty' type-id='040ef975' visibility='default' filepath='include/drm/drm_framebuffer.h' line='97' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='eb4dbdd7'>
+        <parameter type-id='2a9f6bcb'/>
+        <parameter type-id='c0a9211d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='eb53191f'>
+        <parameter type-id='10216dc5'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='1d2c2b85'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='535834b5' size-in-bits='64' id='eb5662e5'/>
+      <pointer-type-def type-id='e07b5dbe' size-in-bits='64' id='eb572b74'/>
+      <pointer-type-def type-id='5dfd5d26' size-in-bits='64' id='eb5928dc'/>
+      <class-decl name='scmi_xfer_ops' size-in-bits='384' is-struct='yes' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='257' column='1' id='eb5ce574'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='version_get' type-id='7f0caae8' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='258' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='xfer_get_init' type-id='a436cbba' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='reset_rx_to_maxsz' type-id='0ad8f865' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='262' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='do_xfer' type-id='b9eef1f6' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='do_xfer_with_response' type-id='b9eef1f6' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='xfer_put' type-id='0ad8f865' visibility='default' filepath='drivers/firmware/arm_scmi/common.h' line='268' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='binder_alloc' size-in-bits='1216' is-struct='yes' visibility='default' filepath='drivers/android/binder_alloc.h' line='101' column='1' id='eb5d0d8b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='drivers/android/binder_alloc.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='vma' type-id='2ae08426' visibility='default' filepath='drivers/android/binder_alloc.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='vma_vm_mm' type-id='df4b7819' visibility='default' filepath='drivers/android/binder_alloc.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='buffer' type-id='eaa32e2f' visibility='default' filepath='drivers/android/binder_alloc.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='buffers' type-id='72f469ec' visibility='default' filepath='drivers/android/binder_alloc.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='free_buffers' type-id='dec44472' visibility='default' filepath='drivers/android/binder_alloc.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='allocated_buffers' type-id='dec44472' visibility='default' filepath='drivers/android/binder_alloc.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='free_async_space' type-id='b59d7dce' visibility='default' filepath='drivers/android/binder_alloc.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='pages' type-id='f997070b' visibility='default' filepath='drivers/android/binder_alloc.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='buffer_size' type-id='b59d7dce' visibility='default' filepath='drivers/android/binder_alloc.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='buffer_free' type-id='8f92235e' visibility='default' filepath='drivers/android/binder_alloc.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='pid' type-id='95e97e5e' visibility='default' filepath='drivers/android/binder_alloc.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='pages_high' type-id='b59d7dce' visibility='default' filepath='drivers/android/binder_alloc.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='oneway_spam_detected' type-id='b50a4934' visibility='default' filepath='drivers/android/binder_alloc.h' line='115' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='eb5d5777'>
+        <parameter type-id='7a5054b7'/>
+        <parameter type-id='807869d3'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='ae4d1761' size-in-bits='128' id='eb61ae4b'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='0e61b6d4' size-in-bits='64' id='eb638046'/>
+      <function-type size-in-bits='64' id='eb6f9afe'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='9424eb47'/>
+        <parameter type-id='9e4db581'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='dce1125a' size-in-bits='64' id='eb711f18'/>
+      <qualified-type-def type-id='ed4a990e' const='yes' id='eb76a649'/>
+      <function-type size-in-bits='64' id='eb77f338'>
+        <parameter type-id='feb59272'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='v4l2_ioctl_ops' size-in-bits='7616' is-struct='yes' visibility='default' filepath='include/media/v4l2-ioctl.h' line='296' column='1' id='eb7c81d8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='vidioc_querycap' type-id='70be41da' visibility='default' filepath='include/media/v4l2-ioctl.h' line='300' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='vidioc_enum_fmt_vid_cap' type-id='318389e0' visibility='default' filepath='include/media/v4l2-ioctl.h' line='304' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='vidioc_enum_fmt_vid_overlay' type-id='318389e0' visibility='default' filepath='include/media/v4l2-ioctl.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='vidioc_enum_fmt_vid_out' type-id='318389e0' visibility='default' filepath='include/media/v4l2-ioctl.h' line='308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='vidioc_enum_fmt_sdr_cap' type-id='318389e0' visibility='default' filepath='include/media/v4l2-ioctl.h' line='310' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='vidioc_enum_fmt_sdr_out' type-id='318389e0' visibility='default' filepath='include/media/v4l2-ioctl.h' line='312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='vidioc_enum_fmt_meta_cap' type-id='318389e0' visibility='default' filepath='include/media/v4l2-ioctl.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='vidioc_enum_fmt_meta_out' type-id='318389e0' visibility='default' filepath='include/media/v4l2-ioctl.h' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='vidioc_g_fmt_vid_cap' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='vidioc_g_fmt_vid_overlay' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='vidioc_g_fmt_vid_out' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='vidioc_g_fmt_vid_out_overlay' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='vidioc_g_fmt_vbi_cap' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='vidioc_g_fmt_vbi_out' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='vidioc_g_fmt_sliced_vbi_cap' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='vidioc_g_fmt_sliced_vbi_out' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='vidioc_g_fmt_vid_cap_mplane' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='vidioc_g_fmt_vid_out_mplane' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='vidioc_g_fmt_sdr_cap' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='vidioc_g_fmt_sdr_out' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='vidioc_g_fmt_meta_cap' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='vidioc_g_fmt_meta_out' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='vidioc_s_fmt_vid_cap' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='350' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='vidioc_s_fmt_vid_overlay' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='vidioc_s_fmt_vid_out' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='vidioc_s_fmt_vid_out_overlay' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='vidioc_s_fmt_vbi_cap' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='vidioc_s_fmt_vbi_out' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='vidioc_s_fmt_sliced_vbi_cap' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='vidioc_s_fmt_sliced_vbi_out' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='vidioc_s_fmt_vid_cap_mplane' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='vidioc_s_fmt_vid_out_mplane' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='368' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='vidioc_s_fmt_sdr_cap' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='vidioc_s_fmt_sdr_out' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='vidioc_s_fmt_meta_cap' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='374' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='vidioc_s_fmt_meta_out' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='376' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='vidioc_try_fmt_vid_cap' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='vidioc_try_fmt_vid_overlay' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='vidioc_try_fmt_vid_out' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='384' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='vidioc_try_fmt_vid_out_overlay' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='vidioc_try_fmt_vbi_cap' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='vidioc_try_fmt_vbi_out' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='vidioc_try_fmt_sliced_vbi_cap' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='vidioc_try_fmt_sliced_vbi_out' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='394' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='vidioc_try_fmt_vid_cap_mplane' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='396' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='vidioc_try_fmt_vid_out_mplane' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='vidioc_try_fmt_sdr_cap' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='vidioc_try_fmt_sdr_out' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='vidioc_try_fmt_meta_cap' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='vidioc_try_fmt_meta_out' type-id='5797b7e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='vidioc_reqbufs' type-id='3b472dd8' visibility='default' filepath='include/media/v4l2-ioctl.h' line='410' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='vidioc_querybuf' type-id='6e055dae' visibility='default' filepath='include/media/v4l2-ioctl.h' line='412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='vidioc_qbuf' type-id='6e055dae' visibility='default' filepath='include/media/v4l2-ioctl.h' line='414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='vidioc_expbuf' type-id='456a5468' visibility='default' filepath='include/media/v4l2-ioctl.h' line='416' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='vidioc_dqbuf' type-id='6e055dae' visibility='default' filepath='include/media/v4l2-ioctl.h' line='418' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='vidioc_create_bufs' type-id='dd40abb0' visibility='default' filepath='include/media/v4l2-ioctl.h' line='421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='vidioc_prepare_buf' type-id='6e055dae' visibility='default' filepath='include/media/v4l2-ioctl.h' line='423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='vidioc_overlay' type-id='6f3b229b' visibility='default' filepath='include/media/v4l2-ioctl.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3712'>
+          <var-decl name='vidioc_g_fbuf' type-id='15c573bb' visibility='default' filepath='include/media/v4l2-ioctl.h' line='427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3776'>
+          <var-decl name='vidioc_s_fbuf' type-id='117460b0' visibility='default' filepath='include/media/v4l2-ioctl.h' line='429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3840'>
+          <var-decl name='vidioc_streamon' type-id='18ff560f' visibility='default' filepath='include/media/v4l2-ioctl.h' line='433' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3904'>
+          <var-decl name='vidioc_streamoff' type-id='18ff560f' visibility='default' filepath='include/media/v4l2-ioctl.h' line='435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='vidioc_g_std' type-id='0e0c1c5d' visibility='default' filepath='include/media/v4l2-ioctl.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='vidioc_s_std' type-id='a13d0c2c' visibility='default' filepath='include/media/v4l2-ioctl.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='vidioc_querystd' type-id='0e0c1c5d' visibility='default' filepath='include/media/v4l2-ioctl.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='vidioc_enum_input' type-id='243d1e96' visibility='default' filepath='include/media/v4l2-ioctl.h' line='448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='vidioc_g_input' type-id='c0a3faf5' visibility='default' filepath='include/media/v4l2-ioctl.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='vidioc_s_input' type-id='6f3b229b' visibility='default' filepath='include/media/v4l2-ioctl.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='vidioc_enum_output' type-id='e2f71a2f' visibility='default' filepath='include/media/v4l2-ioctl.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='vidioc_g_output' type-id='c0a3faf5' visibility='default' filepath='include/media/v4l2-ioctl.h' line='456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4480'>
+          <var-decl name='vidioc_s_output' type-id='6f3b229b' visibility='default' filepath='include/media/v4l2-ioctl.h' line='457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4544'>
+          <var-decl name='vidioc_queryctrl' type-id='73892d6d' visibility='default' filepath='include/media/v4l2-ioctl.h' line='460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4608'>
+          <var-decl name='vidioc_query_ext_ctrl' type-id='860d0bc4' visibility='default' filepath='include/media/v4l2-ioctl.h' line='462' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4672'>
+          <var-decl name='vidioc_g_ctrl' type-id='10f733f9' visibility='default' filepath='include/media/v4l2-ioctl.h' line='464' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='vidioc_s_ctrl' type-id='10f733f9' visibility='default' filepath='include/media/v4l2-ioctl.h' line='466' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='vidioc_g_ext_ctrls' type-id='517d0452' visibility='default' filepath='include/media/v4l2-ioctl.h' line='468' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4864'>
+          <var-decl name='vidioc_s_ext_ctrls' type-id='517d0452' visibility='default' filepath='include/media/v4l2-ioctl.h' line='470' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4928'>
+          <var-decl name='vidioc_try_ext_ctrls' type-id='517d0452' visibility='default' filepath='include/media/v4l2-ioctl.h' line='472' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4992'>
+          <var-decl name='vidioc_querymenu' type-id='81068c97' visibility='default' filepath='include/media/v4l2-ioctl.h' line='474' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5056'>
+          <var-decl name='vidioc_enumaudio' type-id='e1c70e28' visibility='default' filepath='include/media/v4l2-ioctl.h' line='478' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5120'>
+          <var-decl name='vidioc_g_audio' type-id='e1c70e28' visibility='default' filepath='include/media/v4l2-ioctl.h' line='480' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5184'>
+          <var-decl name='vidioc_s_audio' type-id='6a8dfaef' visibility='default' filepath='include/media/v4l2-ioctl.h' line='482' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='vidioc_enumaudout' type-id='4ecb1656' visibility='default' filepath='include/media/v4l2-ioctl.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5312'>
+          <var-decl name='vidioc_g_audout' type-id='4ecb1656' visibility='default' filepath='include/media/v4l2-ioctl.h' line='488' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='vidioc_s_audout' type-id='f8e1aa9b' visibility='default' filepath='include/media/v4l2-ioctl.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5440'>
+          <var-decl name='vidioc_g_modulator' type-id='24213669' visibility='default' filepath='include/media/v4l2-ioctl.h' line='492' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='vidioc_s_modulator' type-id='b79f9e36' visibility='default' filepath='include/media/v4l2-ioctl.h' line='494' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='vidioc_g_pixelaspect' type-id='0a95e709' visibility='default' filepath='include/media/v4l2-ioctl.h' line='497' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5632'>
+          <var-decl name='vidioc_g_selection' type-id='a3948f60' visibility='default' filepath='include/media/v4l2-ioctl.h' line='499' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5696'>
+          <var-decl name='vidioc_s_selection' type-id='a3948f60' visibility='default' filepath='include/media/v4l2-ioctl.h' line='501' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5760'>
+          <var-decl name='vidioc_g_jpegcomp' type-id='f58cb656' visibility='default' filepath='include/media/v4l2-ioctl.h' line='504' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5824'>
+          <var-decl name='vidioc_s_jpegcomp' type-id='ba21bbb1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5888'>
+          <var-decl name='vidioc_g_enc_index' type-id='cadab7d6' visibility='default' filepath='include/media/v4l2-ioctl.h' line='508' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5952'>
+          <var-decl name='vidioc_encoder_cmd' type-id='7312c953' visibility='default' filepath='include/media/v4l2-ioctl.h' line='510' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6016'>
+          <var-decl name='vidioc_try_encoder_cmd' type-id='7312c953' visibility='default' filepath='include/media/v4l2-ioctl.h' line='512' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='vidioc_decoder_cmd' type-id='52e63b6f' visibility='default' filepath='include/media/v4l2-ioctl.h' line='514' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6144'>
+          <var-decl name='vidioc_try_decoder_cmd' type-id='52e63b6f' visibility='default' filepath='include/media/v4l2-ioctl.h' line='516' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6208'>
+          <var-decl name='vidioc_g_parm' type-id='41d02516' visibility='default' filepath='include/media/v4l2-ioctl.h' line='520' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6272'>
+          <var-decl name='vidioc_s_parm' type-id='41d02516' visibility='default' filepath='include/media/v4l2-ioctl.h' line='522' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6336'>
+          <var-decl name='vidioc_g_tuner' type-id='35b8846a' visibility='default' filepath='include/media/v4l2-ioctl.h' line='526' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6400'>
+          <var-decl name='vidioc_s_tuner' type-id='aec87d1d' visibility='default' filepath='include/media/v4l2-ioctl.h' line='528' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='vidioc_g_frequency' type-id='7398303c' visibility='default' filepath='include/media/v4l2-ioctl.h' line='530' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6528'>
+          <var-decl name='vidioc_s_frequency' type-id='48d231fb' visibility='default' filepath='include/media/v4l2-ioctl.h' line='532' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6592'>
+          <var-decl name='vidioc_enum_freq_bands' type-id='771ff1ac' visibility='default' filepath='include/media/v4l2-ioctl.h' line='534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6656'>
+          <var-decl name='vidioc_g_sliced_vbi_cap' type-id='5fa1787f' visibility='default' filepath='include/media/v4l2-ioctl.h' line='538' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6720'>
+          <var-decl name='vidioc_log_status' type-id='962405e1' visibility='default' filepath='include/media/v4l2-ioctl.h' line='542' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6784'>
+          <var-decl name='vidioc_s_hw_freq_seek' type-id='6cbcc6da' visibility='default' filepath='include/media/v4l2-ioctl.h' line='544' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6848'>
+          <var-decl name='vidioc_enum_framesizes' type-id='9822fe67' visibility='default' filepath='include/media/v4l2-ioctl.h' line='558' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6912'>
+          <var-decl name='vidioc_enum_frameintervals' type-id='a176c78e' visibility='default' filepath='include/media/v4l2-ioctl.h' line='561' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6976'>
+          <var-decl name='vidioc_s_dv_timings' type-id='ce828302' visibility='default' filepath='include/media/v4l2-ioctl.h' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7040'>
+          <var-decl name='vidioc_g_dv_timings' type-id='ce828302' visibility='default' filepath='include/media/v4l2-ioctl.h' line='567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7104'>
+          <var-decl name='vidioc_query_dv_timings' type-id='ce828302' visibility='default' filepath='include/media/v4l2-ioctl.h' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7168'>
+          <var-decl name='vidioc_enum_dv_timings' type-id='fbd9657e' visibility='default' filepath='include/media/v4l2-ioctl.h' line='571' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7232'>
+          <var-decl name='vidioc_dv_timings_cap' type-id='1f370097' visibility='default' filepath='include/media/v4l2-ioctl.h' line='573' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='vidioc_g_edid' type-id='d5f67e88' visibility='default' filepath='include/media/v4l2-ioctl.h' line='575' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='vidioc_s_edid' type-id='d5f67e88' visibility='default' filepath='include/media/v4l2-ioctl.h' line='577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='vidioc_subscribe_event' type-id='081ebe8e' visibility='default' filepath='include/media/v4l2-ioctl.h' line='580' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='vidioc_unsubscribe_event' type-id='081ebe8e' visibility='default' filepath='include/media/v4l2-ioctl.h' line='582' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='vidioc_default' type-id='d2188e4c' visibility='default' filepath='include/media/v4l2-ioctl.h' line='586' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='34135eb2' size-in-bits='64' id='eb839374'/>
+      <pointer-type-def type-id='e2a795cb' size-in-bits='64' id='eb83bf5b'/>
+      <pointer-type-def type-id='f2207a6d' size-in-bits='64' id='eb8aa2f1'/>
+      <pointer-type-def type-id='3a68020f' size-in-bits='64' id='eb8bb0cb'/>
+      <pointer-type-def type-id='9b8dc95a' size-in-bits='64' id='eb90c228'/>
+      <function-type size-in-bits='64' id='eb940a3b'>
+        <parameter type-id='7544e824'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='eb99238b'>
+        <parameter type-id='b2fa31d6'/>
+        <parameter type-id='a53db4f5'/>
+        <return type-id='68a2d05b'/>
+      </function-type>
+      <pointer-type-def type-id='c2be49b0' size-in-bits='64' id='eb9a3ab6'/>
+      <enum-decl name='usb_charger_type' filepath='include/uapi/linux/usb/charger.h' line='16' column='1' id='eba182c8'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='UNKNOWN_TYPE' value='0'/>
+        <enumerator name='SDP_TYPE' value='1'/>
+        <enumerator name='DCP_TYPE' value='2'/>
+        <enumerator name='CDP_TYPE' value='3'/>
+        <enumerator name='ACA_TYPE' value='4'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='ebaa0f87'>
+        <parameter type-id='27675065'/>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='79a1b937' size-in-bits='infinite' id='ebaaecd3'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='aa7f03f2' size-in-bits='64' id='ebae9a6c'/>
+      <typedef-decl name='blkcg_pol_reset_pd_stats_fn' type-id='c8ffa4a2' filepath='include/linux/blk-cgroup.h' line='155' column='1' id='ebb2cb2f'/>
+      <function-type size-in-bits='64' id='ebb550f0'>
+        <parameter type-id='89b70200'/>
+        <parameter type-id='d30bdc51'/>
+        <return type-id='80f4b756'/>
+      </function-type>
+      <pointer-type-def type-id='e62a60bd' size-in-bits='64' id='ebb60db5'/>
+      <pointer-type-def type-id='105c9300' size-in-bits='64' id='ebbbab1e'/>
+      <pointer-type-def type-id='c6954120' size-in-bits='64' id='ebc04a66'/>
+      <pointer-type-def type-id='88370ce9' size-in-bits='64' id='ebc26324'/>
+      <array-type-def dimensions='1' type-id='29f471c5' size-in-bits='infinite' id='ebc5312d'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='ebcc73dc'>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='cvt_timing' size-in-bits='24' is-struct='yes' visibility='default' filepath='include/drm/drm_edid.h' line='141' column='1' id='ebccef5f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='code' type-id='930ea9f9' visibility='default' filepath='include/drm/drm_edid.h' line='142' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='binder_transaction' size-in-bits='1280' is-struct='yes' visibility='default' filepath='drivers/android/binder_internal.h' line='546' column='1' id='ebce8e86'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='debug_id' type-id='95e97e5e' visibility='default' filepath='drivers/android/binder_internal.h' line='547' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='work' type-id='ba2d75bf' visibility='default' filepath='drivers/android/binder_internal.h' line='548' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='from' type-id='dd695fa4' visibility='default' filepath='drivers/android/binder_internal.h' line='549' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='from_parent' type-id='f4c3bb4c' visibility='default' filepath='drivers/android/binder_internal.h' line='550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='to_proc' type-id='d1cf113c' visibility='default' filepath='drivers/android/binder_internal.h' line='551' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='to_thread' type-id='dd695fa4' visibility='default' filepath='drivers/android/binder_internal.h' line='552' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='to_parent' type-id='f4c3bb4c' visibility='default' filepath='drivers/android/binder_internal.h' line='553' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='need_reply' type-id='f0981eeb' visibility='default' filepath='drivers/android/binder_internal.h' line='554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='buffer' type-id='5819e862' visibility='default' filepath='drivers/android/binder_internal.h' line='557' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='code' type-id='f0981eeb' visibility='default' filepath='drivers/android/binder_internal.h' line='558' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='drivers/android/binder_internal.h' line='559' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='priority' type-id='de30810e' visibility='default' filepath='drivers/android/binder_internal.h' line='560' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='saved_priority' type-id='de30810e' visibility='default' filepath='drivers/android/binder_internal.h' line='561' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='set_priority_called' type-id='b50a4934' visibility='default' filepath='drivers/android/binder_internal.h' line='562' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='904'>
+          <var-decl name='is_nested' type-id='b50a4934' visibility='default' filepath='drivers/android/binder_internal.h' line='563' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='sender_euid' type-id='d80b72e6' visibility='default' filepath='drivers/android/binder_internal.h' line='564' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='fd_fixups' type-id='72f469ec' visibility='default' filepath='drivers/android/binder_internal.h' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='security_ctx' type-id='6867e656' visibility='default' filepath='drivers/android/binder_internal.h' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='drivers/android/binder_internal.h' line='573' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='drivers/android/binder_internal.h' line='574' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0f840455' size-in-bits='64' id='ebd313ed'/>
+      <pointer-type-def type-id='b0e90747' size-in-bits='64' id='ebd6b097'/>
+      <pointer-type-def type-id='1f79c412' size-in-bits='64' id='ebda04fc'/>
+      <class-decl name='timer_of' size-in-bits='3584' is-struct='yes' visibility='default' filepath='drivers/clocksource/timer-of.h' line='34' column='1' id='ebdc8782'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='drivers/clocksource/timer-of.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='np' type-id='9a537bbe' visibility='default' filepath='drivers/clocksource/timer-of.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='clkevt' type-id='13964735' visibility='default' filepath='drivers/clocksource/timer-of.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='of_base' type-id='bd48ef82' visibility='default' filepath='drivers/clocksource/timer-of.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='of_irq' type-id='dbd50a93' visibility='default' filepath='drivers/clocksource/timer-of.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='of_clk' type-id='63c32039' visibility='default' filepath='drivers/clocksource/timer-of.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='private_data' type-id='eaa32e2f' visibility='default' filepath='drivers/clocksource/timer-of.h' line='41' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='edac_device_ctl_info' size-in-bits='3648' is-struct='yes' visibility='default' filepath='drivers/edac/edac_device.h' line='151' column='1' id='ebded5f2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='link' type-id='72f469ec' visibility='default' filepath='drivers/edac/edac_device.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='drivers/edac/edac_device.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dev_idx' type-id='95e97e5e' visibility='default' filepath='drivers/edac/edac_device.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='log_ue' type-id='95e97e5e' visibility='default' filepath='drivers/edac/edac_device.h' line='160' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='log_ce' type-id='95e97e5e' visibility='default' filepath='drivers/edac/edac_device.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='panic_on_ue' type-id='95e97e5e' visibility='default' filepath='drivers/edac/edac_device.h' line='162' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='poll_msec' type-id='f0981eeb' visibility='default' filepath='drivers/edac/edac_device.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='delay' type-id='7359adad' visibility='default' filepath='drivers/edac/edac_device.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='sysfs_attributes' type-id='0a4e3854' visibility='default' filepath='drivers/edac/edac_device.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='edac_subsys' type-id='5e2671f8' visibility='default' filepath='drivers/edac/edac_device.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='op_state' type-id='95e97e5e' visibility='default' filepath='drivers/edac/edac_device.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='work' type-id='5ad6e0ef' visibility='default' filepath='drivers/edac/edac_device.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='edac_check' type-id='83b4f711' visibility='default' filepath='drivers/edac/edac_device.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/edac/edac_device.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='mod_name' type-id='80f4b756' visibility='default' filepath='drivers/edac/edac_device.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='ctl_name' type-id='80f4b756' visibility='default' filepath='drivers/edac/edac_device.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='dev_name' type-id='80f4b756' visibility='default' filepath='drivers/edac/edac_device.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='pvt_info' type-id='eaa32e2f' visibility='default' filepath='drivers/edac/edac_device.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='start_time' type-id='7359adad' visibility='default' filepath='drivers/edac/edac_device.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='removal_complete' type-id='f9fef04f' visibility='default' filepath='drivers/edac/edac_device.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='drivers/edac/edac_device.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='nr_instances' type-id='19c2251e' visibility='default' filepath='drivers/edac/edac_device.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='instances' type-id='581e52eb' visibility='default' filepath='drivers/edac/edac_device.h' line='218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='counters' type-id='c0388fd4' visibility='default' filepath='drivers/edac/edac_device.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='drivers/edac/edac_device.h' line='226' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='property' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/of.h' line='31' column='1' id='ebe3ac70'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/of.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='length' type-id='95e97e5e' visibility='default' filepath='include/linux/of.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='value' type-id='eaa32e2f' visibility='default' filepath='include/linux/of.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='next' type-id='ddcd89c6' visibility='default' filepath='include/linux/of.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='attr' type-id='d83a2db1' visibility='default' filepath='include/linux/of.h' line='43' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2ece368e' size-in-bits='64' id='ebe68308'/>
+      <function-type size-in-bits='64' id='ebe8eb0e'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='02f11ed4'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='b53e8dbb'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ebeb7c64'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='6fcaf91e'/>
+        <parameter type-id='6fcaf91e'/>
+        <parameter type-id='981420b7'/>
+        <parameter type-id='6dca061b'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ebf04e7b'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='f078c744'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ebf8e47f'>
+        <parameter type-id='ecb0ce18'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='d8e6b335'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='feaf774f' size-in-bits='64' id='ec000d8e'/>
+      <pointer-type-def type-id='839b249b' size-in-bits='64' id='ec00acfb'/>
+      <pointer-type-def type-id='c8eb0f4f' size-in-bits='64' id='ec037527'/>
+      <qualified-type-def type-id='a7db2a27' const='yes' id='ec05f10e'/>
+      <pointer-type-def type-id='f709b458' size-in-bits='64' id='ec0e067e'/>
+      <pointer-type-def type-id='aba1d11b' size-in-bits='64' id='ec167ceb'/>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='120' id='ec17bebb'>
+        <subrange length='15' type-id='7ff19f0f' id='8484ba73'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='ec180093'>
+        <parameter type-id='8a876638'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='22c4fd1a' size-in-bits='64' id='ec1a9290'/>
+      <class-decl name='disk_events' size-in-bits='1920' is-struct='yes' visibility='default' filepath='block/disk-events.c' line='10' column='1' id='ec1aac50'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='block/disk-events.c' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='disk' type-id='33c599da' visibility='default' filepath='block/disk-events.c' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='block/disk-events.c' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='block_mutex' type-id='925167dc' visibility='default' filepath='block/disk-events.c' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='block' type-id='95e97e5e' visibility='default' filepath='block/disk-events.c' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='pending' type-id='f0981eeb' visibility='default' filepath='block/disk-events.c' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='clearing' type-id='f0981eeb' visibility='default' filepath='block/disk-events.c' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='poll_msecs' type-id='bd54fe1a' visibility='default' filepath='block/disk-events.c' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='dwork' type-id='5ad6e0ef' visibility='default' filepath='block/disk-events.c' line='21' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b9157ea1' size-in-bits='64' id='ec2076dd'/>
+      <class-decl name='public_key_signature' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/crypto/public_key.h' line='38' column='1' id='ec216e31'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='auth_ids' type-id='0e22cb9f' visibility='default' filepath='include/crypto/public_key.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='s' type-id='8bff8096' visibility='default' filepath='include/crypto/public_key.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='digest' type-id='8bff8096' visibility='default' filepath='include/crypto/public_key.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='s_size' type-id='19c2251e' visibility='default' filepath='include/crypto/public_key.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='digest_size' type-id='19c2251e' visibility='default' filepath='include/crypto/public_key.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='pkey_algo' type-id='80f4b756' visibility='default' filepath='include/crypto/public_key.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='hash_algo' type-id='80f4b756' visibility='default' filepath='include/crypto/public_key.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='encoding' type-id='80f4b756' visibility='default' filepath='include/crypto/public_key.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/crypto/public_key.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='data_size' type-id='f0981eeb' visibility='default' filepath='include/crypto/public_key.h' line='48' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='fdb31210' size-in-bits='64' id='ec23f0e2'/>
+      <function-type size-in-bits='64' id='ec247fc5'>
+        <parameter type-id='9d7e7820'/>
+        <parameter type-id='d494b97c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ec263c6e'>
+        <parameter type-id='75ae4804'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='drm_clip_rect' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/drm/drm.h' line='96' column='1' id='ec280828'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='x1' type-id='8efea9e5' visibility='default' filepath='include/uapi/drm/drm.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='y1' type-id='8efea9e5' visibility='default' filepath='include/uapi/drm/drm.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='x2' type-id='8efea9e5' visibility='default' filepath='include/uapi/drm/drm.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='y2' type-id='8efea9e5' visibility='default' filepath='include/uapi/drm/drm.h' line='100' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='canid_t' type-id='3f1a6b60' filepath='include/uapi/linux/can.h' line='72' column='1' id='ec374630'/>
+      <pointer-type-def type-id='720b55dc' size-in-bits='64' id='ec488e1a'/>
+      <enum-decl name='dmaengine_alignment' filepath='include/linux/dmaengine.h' line='746' column='1' id='ec506a0a'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DMAENGINE_ALIGN_1_BYTE' value='0'/>
+        <enumerator name='DMAENGINE_ALIGN_2_BYTES' value='1'/>
+        <enumerator name='DMAENGINE_ALIGN_4_BYTES' value='2'/>
+        <enumerator name='DMAENGINE_ALIGN_8_BYTES' value='3'/>
+        <enumerator name='DMAENGINE_ALIGN_16_BYTES' value='4'/>
+        <enumerator name='DMAENGINE_ALIGN_32_BYTES' value='5'/>
+        <enumerator name='DMAENGINE_ALIGN_64_BYTES' value='6'/>
+        <enumerator name='DMAENGINE_ALIGN_128_BYTES' value='7'/>
+        <enumerator name='DMAENGINE_ALIGN_256_BYTES' value='8'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='ec50bf48'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='i2c_adapter' size-in-bits='9728' is-struct='yes' visibility='default' filepath='include/linux/i2c.h' line='711' column='1' id='ec5384d3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/i2c.h' line='712' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='class' type-id='f0981eeb' visibility='default' filepath='include/linux/i2c.h' line='713' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='algo' type-id='e93ce0cc' visibility='default' filepath='include/linux/i2c.h' line='714' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='algo_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/i2c.h' line='715' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='lock_ops' type-id='16d08491' visibility='default' filepath='include/linux/i2c.h' line='718' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='bus_lock' type-id='dd823037' visibility='default' filepath='include/linux/i2c.h' line='719' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='mux_lock' type-id='dd823037' visibility='default' filepath='include/linux/i2c.h' line='720' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='timeout' type-id='95e97e5e' visibility='default' filepath='include/linux/i2c.h' line='722' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='retries' type-id='95e97e5e' visibility='default' filepath='include/linux/i2c.h' line='723' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/i2c.h' line='724' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='locked_flags' type-id='7359adad' visibility='default' filepath='include/linux/i2c.h' line='725' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8256'>
+          <var-decl name='nr' type-id='95e97e5e' visibility='default' filepath='include/linux/i2c.h' line='729' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8288'>
+          <var-decl name='name' type-id='36d7f119' visibility='default' filepath='include/linux/i2c.h' line='730' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8704'>
+          <var-decl name='dev_released' type-id='f9fef04f' visibility='default' filepath='include/linux/i2c.h' line='731' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8960'>
+          <var-decl name='userspace_clients_lock' type-id='925167dc' visibility='default' filepath='include/linux/i2c.h' line='733' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='userspace_clients' type-id='72f469ec' visibility='default' filepath='include/linux/i2c.h' line='734' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9472'>
+          <var-decl name='bus_recovery_info' type-id='f1537b61' visibility='default' filepath='include/linux/i2c.h' line='736' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9536'>
+          <var-decl name='quirks' type-id='398e6008' visibility='default' filepath='include/linux/i2c.h' line='737' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='host_notify_domain' type-id='7544e824' visibility='default' filepath='include/linux/i2c.h' line='739' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9664'>
+          <var-decl name='bus_regulator' type-id='850c13f6' visibility='default' filepath='include/linux/i2c.h' line='740' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='uuid_t' type-id='570f8a01' filepath='include/linux/uuid.h' line='18' column='1' id='ec55eb74'/>
+      <function-type size-in-bits='64' id='ec664304'>
+        <parameter type-id='12884b9a'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='3eb7c31c'/>
+        <return type-id='0fbf3cfd'/>
+      </function-type>
+      <pointer-type-def type-id='1e37318c' size-in-bits='64' id='ec71052e'/>
+      <pointer-type-def type-id='f0f807bc' size-in-bits='64' id='ec73f122'/>
+      <pointer-type-def type-id='7e1e521a' size-in-bits='64' id='ec77b5b8'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/seqlock.h' line='800' column='1' id='ec7d93c8' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='seqcount' type-id='0b9c5397' visibility='default' filepath='include/linux/seqlock.h' line='805' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/seqlock.h' line='806' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='media_pad_signal_type' filepath='include/media/media-entity.h' line='171' column='1' id='ec7f70f4'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='PAD_SIGNAL_DEFAULT' value='0'/>
+        <enumerator name='PAD_SIGNAL_ANALOG' value='1'/>
+        <enumerator name='PAD_SIGNAL_DV' value='2'/>
+        <enumerator name='PAD_SIGNAL_AUDIO' value='3'/>
+      </enum-decl>
+      <typedef-decl name='blist_flags_t' type-id='d3130597' filepath='include/scsi/scsi_device.h' line='21' column='1' id='ec838379'/>
+      <qualified-type-def type-id='0406440a' const='yes' id='ec84183d'/>
+      <qualified-type-def type-id='85fa4490' const='yes' id='ec8469f9'/>
+      <class-decl name='lru_gen_struct' size-in-bits='7552' is-struct='yes' visibility='default' filepath='include/linux/mmzone.h' line='400' column='1' id='ec861b75'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='max_seq' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='min_seq' type-id='f05e8e77' visibility='default' filepath='include/linux/mmzone.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='timestamps' type-id='f46d9f4d' visibility='default' filepath='include/linux/mmzone.h' line='406' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='lists' type-id='7e4de83f' visibility='default' filepath='include/linux/mmzone.h' line='408' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='nr_pages' type-id='6ad72938' visibility='default' filepath='include/linux/mmzone.h' line='410' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5056'>
+          <var-decl name='avg_refaulted' type-id='32110b77' visibility='default' filepath='include/linux/mmzone.h' line='412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='avg_total' type-id='32110b77' visibility='default' filepath='include/linux/mmzone.h' line='414' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='protected' type-id='d2730d39' visibility='default' filepath='include/linux/mmzone.h' line='416' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='evicted' type-id='776c1835' visibility='default' filepath='include/linux/mmzone.h' line='418' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6976'>
+          <var-decl name='refaulted' type-id='776c1835' visibility='default' filepath='include/linux/mmzone.h' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7488'>
+          <var-decl name='enabled' type-id='b50a4934' visibility='default' filepath='include/linux/mmzone.h' line='421' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='regmap_hw_reg_read' type-id='4893ffdf' filepath='include/linux/regmap.h' line='477' column='1' id='ec8d430e'/>
+      <function-type size-in-bits='64' id='ec8e7b62'>
+        <parameter type-id='eb572b74'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='dea29f5f' size-in-bits='64' id='ec973d27'/>
+      <function-type size-in-bits='64' id='ec9f1e6a'>
+        <parameter type-id='74d89ebd'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='854c671a' const='yes' id='ec9f8e99'/>
+      <pointer-type-def type-id='9035443c' size-in-bits='64' id='eca40b6e'/>
+      <function-type size-in-bits='64' id='eca62f39'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='typec_switch' size-in-bits='7424' is-struct='yes' visibility='default' filepath='drivers/usb/typec/mux.h' line='9' column='1' id='eca93177'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='drivers/usb/typec/mux.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='set' type-id='d08a3e2d' visibility='default' filepath='drivers/usb/typec/mux.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/usb/typec/mux.h' line='12' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='ecabee4c'>
+        <parameter type-id='aa9ea333'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='26a90f95'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f0c6a3fa' size-in-bits='64' id='ecb0ce18'/>
+      <function-type size-in-bits='64' id='ecb90832'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='cb317f38'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ecbaa04a'>
+        <parameter type-id='d02f4143'/>
+        <return type-id='e9265215'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ecbba9ca'>
+        <parameter type-id='c5491077'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='a569b9de'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='a86c42ee' size-in-bits='64' id='ecbc0920'/>
+      <class-decl name='v4l2_bt_timings' size-in-bits='992' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1448' column='1' id='ecc13ba0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='interlaced' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='polarities' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pixelclock' type-id='d3130597' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hfrontporch' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='hsync' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='hbackporch' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='vfrontporch' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='vsync' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='vbackporch' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1459' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='il_vfrontporch' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='il_vsync' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1461' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='il_vbackporch' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1462' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='standards' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1463' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1464' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='picture_aspect' type-id='5f37256e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1465' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='cea861_vic' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1466' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='616'>
+          <var-decl name='hdmi_vic' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1467' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='624'>
+          <var-decl name='reserved' type-id='0ddb15d8' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1468' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='ecd45e3f'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='ae4f2ad5'/>
+        <parameter type-id='cdea97c3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='874691ab' const='yes' id='ecd54c0e'/>
+      <class-decl name='v4l2_event_ctrl' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2381' column='1' id='ecd6d55a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='changes' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2383' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab605' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2384' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='minimum' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='maximum' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='step' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='default_value' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2392' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='ecd721d1'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='e55856e5'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='regmap_irq_type' size-in-bits='224' is-struct='yes' visibility='default' filepath='include/linux/regmap.h' line='1376' column='1' id='ecdf025d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type_reg_offset' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1377' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type_reg_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1378' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='type_rising_val' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='type_falling_val' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='type_level_low_val' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1381' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='type_level_high_val' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1382' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='types_supported' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='1383' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b35541cf' size-in-bits='64' id='ece2faf3'/>
+      <pointer-type-def type-id='77618c14' size-in-bits='64' id='ece3af1e'/>
+      <pointer-type-def type-id='d666fa80' size-in-bits='64' id='eced47f6'/>
+      <typedef-decl name='kprobe_opcode_t' type-id='19c2251e' filepath='arch/arm64/include/asm/probes.h' line='24' column='1' id='ecf788b7'/>
+      <pointer-type-def type-id='2cabe151' size-in-bits='64' id='ecf8d02d'/>
+      <array-type-def dimensions='1' type-id='0f1b379b' size-in-bits='384' id='ecfa304d'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <class-decl name='swap_cluster_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/swap.h' line='220' column='1' id='ed00f788'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/swap.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='data' type-id='f0981eeb' visibility='default' filepath='include/linux/swap.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='56'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/swap.h' line='228' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_ctrl_mpeg2_quantisation' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1974' column='1' id='ed17cdee'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='intra_quantiser_matrix' type-id='73b95420' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1975' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='non_intra_quantiser_matrix' type-id='73b95420' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1976' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='chroma_intra_quantiser_matrix' type-id='73b95420' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1977' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='chroma_non_intra_quantiser_matrix' type-id='73b95420' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1978' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='c058e0bd' const='yes' id='ed1a1b22'/>
+      <pointer-type-def type-id='7c055541' size-in-bits='64' id='ed27ccc9'/>
+      <pointer-type-def type-id='7cc6fd83' size-in-bits='64' id='ed300e23'/>
+      <pointer-type-def type-id='cbbca4c5' size-in-bits='64' id='ed3019e9'/>
+      <pointer-type-def type-id='c7516f02' size-in-bits='64' id='ed31fbf8'/>
+      <class-decl name='uart_8250_ops' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/serial_8250.h' line='74' column='1' id='ed38bc9e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='setup_irq' type-id='58f84083' visibility='default' filepath='include/linux/serial_8250.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='release_irq' type-id='4d2e08b4' visibility='default' filepath='include/linux/serial_8250.h' line='76' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='89397116' size-in-bits='64' id='ed415bf0'/>
+      <class-decl name='ZSTD_inBuffer_s' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/zstd.h' line='473' column='1' id='ed4523d8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='src' type-id='eaa32e2f' visibility='default' filepath='include/linux/zstd.h' line='474' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='include/linux/zstd.h' line='475' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='pos' type-id='b59d7dce' visibility='default' filepath='include/linux/zstd.h' line='476' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='0dd56ffa' const='yes' id='ed477ec9'/>
+      <class-decl name='pinctrl_ops' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='88' column='1' id='ed4a990e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='get_groups_count' type-id='9b3cc28d' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='get_group_name' type-id='6fd7b107' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='get_group_pins' type-id='8aae90f2' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pin_dbg_show' type-id='60403ce4' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dt_node_to_map' type-id='8679be0f' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dt_free_map' type-id='4a390f11' visibility='default' filepath='include/linux/pinctrl/pinctrl.h' line='101' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='ed4be5c0'>
+        <parameter type-id='e84b031a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='9c313c2d' size-in-bits='4096' id='ed4ceada'>
+        <subrange length='64' type-id='7ff19f0f' id='b10be967'/>
+      </array-type-def>
+      <pointer-type-def type-id='f6ed712a' size-in-bits='64' id='ed512028'/>
+      <class-decl name='ctl_table_header' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/sysctl.h' line='143' column='1' id='ed51618b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab64c' visibility='default' filepath='include/linux/sysctl.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='unregistering' type-id='389faaf7' visibility='default' filepath='include/linux/sysctl.h' line='153' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ctl_table_arg' type-id='631dc3c1' visibility='default' filepath='include/linux/sysctl.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='root' type-id='2993adbc' visibility='default' filepath='include/linux/sysctl.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='set' type-id='42988600' visibility='default' filepath='include/linux/sysctl.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='parent' type-id='1c66bddc' visibility='default' filepath='include/linux/sysctl.h' line='157' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='node' type-id='a586bbcf' visibility='default' filepath='include/linux/sysctl.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='inodes' type-id='e151255a' visibility='default' filepath='include/linux/sysctl.h' line='159' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mii_bus' size-in-bits='22656' is-struct='yes' visibility='default' filepath='include/linux/phy.h' line='318' column='1' id='ed5381db'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/phy.h' line='319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/phy.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='id' type-id='1de7616e' visibility='default' filepath='include/linux/phy.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/phy.h' line='322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='read' type-id='22ad5849' visibility='default' filepath='include/linux/phy.h' line='324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='write' type-id='e10d6bae' visibility='default' filepath='include/linux/phy.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='reset' type-id='6edade7b' visibility='default' filepath='include/linux/phy.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='stats' type-id='a4228e56' visibility='default' filepath='include/linux/phy.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9088'>
+          <var-decl name='mdio_lock' type-id='925167dc' visibility='default' filepath='include/linux/phy.h' line='337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9472'>
+          <var-decl name='parent' type-id='fa0b179b' visibility='default' filepath='include/linux/phy.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9536'>
+          <var-decl name='state' type-id='08f5ca1a' visibility='default' filepath='include/linux/phy.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/phy.h' line='350' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16896'>
+          <var-decl name='mdio_map' type-id='70a48c94' visibility='default' filepath='include/linux/phy.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18944'>
+          <var-decl name='phy_mask' type-id='19c2251e' visibility='default' filepath='include/linux/phy.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18976'>
+          <var-decl name='phy_ignore_ta_mask' type-id='19c2251e' visibility='default' filepath='include/linux/phy.h' line='359' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19008'>
+          <var-decl name='irq' type-id='9e942f0d' visibility='default' filepath='include/linux/phy.h' line='365' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20032'>
+          <var-decl name='reset_delay_us' type-id='95e97e5e' visibility='default' filepath='include/linux/phy.h' line='368' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20064'>
+          <var-decl name='reset_post_delay_us' type-id='95e97e5e' visibility='default' filepath='include/linux/phy.h' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20096'>
+          <var-decl name='reset_gpiod' type-id='26760480' visibility='default' filepath='include/linux/phy.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20160'>
+          <var-decl name='probe_capabilities' type-id='08f5ca1b' visibility='default' filepath='include/linux/phy.h' line='380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20224'>
+          <var-decl name='shared_lock' type-id='925167dc' visibility='default' filepath='include/linux/phy.h' line='383' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20608'>
+          <var-decl name='shared' type-id='61821d52' visibility='default' filepath='include/linux/phy.h' line='386' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_soc_dai_link_component' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/sound/soc.h' line='624' column='1' id='ed5b2002'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/sound/soc.h' line='625' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='of_node' type-id='9a537bbe' visibility='default' filepath='include/sound/soc.h' line='626' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dai_name' type-id='80f4b756' visibility='default' filepath='include/sound/soc.h' line='627' column='1'/>
+        </data-member>
+      </class-decl>
+      <union-decl name='iwreq_data' size-in-bits='128' visibility='default' filepath='include/uapi/linux/wireless.h' line='902' column='1' id='ed626d0d'>
+        <data-member access='public'>
+          <var-decl name='name' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/linux/wireless.h' line='904' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='essid' type-id='db4e746c' visibility='default' filepath='include/uapi/linux/wireless.h' line='908' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='nwid' type-id='b024252b' visibility='default' filepath='include/uapi/linux/wireless.h' line='909' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='freq' type-id='bc1ac22c' visibility='default' filepath='include/uapi/linux/wireless.h' line='910' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='sens' type-id='b024252b' visibility='default' filepath='include/uapi/linux/wireless.h' line='914' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='bitrate' type-id='b024252b' visibility='default' filepath='include/uapi/linux/wireless.h' line='915' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='txpower' type-id='b024252b' visibility='default' filepath='include/uapi/linux/wireless.h' line='916' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='rts' type-id='b024252b' visibility='default' filepath='include/uapi/linux/wireless.h' line='917' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='frag' type-id='b024252b' visibility='default' filepath='include/uapi/linux/wireless.h' line='918' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='mode' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/wireless.h' line='919' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='retry' type-id='b024252b' visibility='default' filepath='include/uapi/linux/wireless.h' line='920' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='encoding' type-id='db4e746c' visibility='default' filepath='include/uapi/linux/wireless.h' line='922' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='power' type-id='b024252b' visibility='default' filepath='include/uapi/linux/wireless.h' line='923' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='qual' type-id='aa80c027' visibility='default' filepath='include/uapi/linux/wireless.h' line='924' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='ap_addr' type-id='5221b18a' visibility='default' filepath='include/uapi/linux/wireless.h' line='926' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='addr' type-id='5221b18a' visibility='default' filepath='include/uapi/linux/wireless.h' line='927' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='param' type-id='b024252b' visibility='default' filepath='include/uapi/linux/wireless.h' line='929' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='data' type-id='db4e746c' visibility='default' filepath='include/uapi/linux/wireless.h' line='930' column='1'/>
+        </data-member>
+      </union-decl>
+      <pointer-type-def type-id='78117ea6' size-in-bits='64' id='ed647258'/>
+      <class-decl name='pipe_buf_operations' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/pipe_fs_i.h' line='95' column='1' id='ed6c59ba'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='confirm' type-id='254733eb' visibility='default' filepath='include/linux/pipe_fs_i.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='release' type-id='941a57ca' visibility='default' filepath='include/linux/pipe_fs_i.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='try_steal' type-id='c2ab7955' visibility='default' filepath='include/linux/pipe_fs_i.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get' type-id='c2ab7955' visibility='default' filepath='include/linux/pipe_fs_i.h' line='124' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tso_t' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/tso.h' line='9' column='1' id='ed6d657e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next_frag_idx' type-id='95e97e5e' visibility='default' filepath='include/net/tso.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='size' type-id='95e97e5e' visibility='default' filepath='include/net/tso.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/net/tso.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ip_id' type-id='1dc6a898' visibility='default' filepath='include/net/tso.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='tlen' type-id='f9b06939' visibility='default' filepath='include/net/tso.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='152'>
+          <var-decl name='ipv6' type-id='b50a4934' visibility='default' filepath='include/net/tso.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='tcp_seq' type-id='19c2251e' visibility='default' filepath='include/net/tso.h' line='16' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='ed6fc6ea'>
+        <parameter type-id='4cb5819d'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <typedef-decl name='percpu_ref_func_t' type-id='96650caf' filepath='include/linux/percpu-refcount.h' line='60' column='1' id='ed7b7f6b'/>
+      <class-decl name='ethtool_channels' size-in-bits='288' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='553' column='1' id='ed7ee6ab'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='max_rx' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='max_tx' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='556' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='max_other' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='557' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='max_combined' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='558' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='rx_count' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='559' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tx_count' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='560' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='other_count' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='561' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='combined_count' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/ethtool.h' line='562' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='xfrm_state_afinfo' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/net/xfrm.h' line='350' column='1' id='ed84f24e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='family' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='proto' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='type_offload_esp' type-id='2f8b61b4' visibility='default' filepath='include/net/xfrm.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='type_esp' type-id='4e812b7a' visibility='default' filepath='include/net/xfrm.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='type_ipip' type-id='4e812b7a' visibility='default' filepath='include/net/xfrm.h' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='type_ipip6' type-id='4e812b7a' visibility='default' filepath='include/net/xfrm.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='type_comp' type-id='4e812b7a' visibility='default' filepath='include/net/xfrm.h' line='359' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='type_ah' type-id='4e812b7a' visibility='default' filepath='include/net/xfrm.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='type_routing' type-id='4e812b7a' visibility='default' filepath='include/net/xfrm.h' line='361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='type_dstopts' type-id='4e812b7a' visibility='default' filepath='include/net/xfrm.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='output' type-id='0023218e' visibility='default' filepath='include/net/xfrm.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='transport_finish' type-id='0aeca82c' visibility='default' filepath='include/net/xfrm.h' line='365' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='local_error' type-id='e4b24123' visibility='default' filepath='include/net/xfrm.h' line='367' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d59c0ecf' size-in-bits='64' id='ed89b003'/>
+      <pointer-type-def type-id='2f4352a3' size-in-bits='64' id='ed919b57'/>
+      <class-decl name='ip_tunnel_parm' is-struct='yes' visibility='default' is-declaration-only='yes' id='ed9e49a6'/>
+      <pointer-type-def type-id='4852a8ec' size-in-bits='64' id='ed9f97a6'/>
+      <pointer-type-def type-id='d6e6975e' size-in-bits='64' id='eda08098'/>
+      <pointer-type-def type-id='70eee7af' size-in-bits='64' id='eda6f223'/>
+      <class-decl name='kmem_cache_node' size-in-bits='512' is-struct='yes' visibility='default' filepath='mm/slab.h' line='564' column='1' id='edac1e8f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list_lock' type-id='fb4018a0' visibility='default' filepath='mm/slab.h' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nr_partial' type-id='7359adad' visibility='default' filepath='mm/slab.h' line='583' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='partial' type-id='72f469ec' visibility='default' filepath='mm/slab.h' line='584' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='nr_slabs' type-id='f22a8abb' visibility='default' filepath='mm/slab.h' line='586' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='total_objects' type-id='f22a8abb' visibility='default' filepath='mm/slab.h' line='587' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='full' type-id='72f469ec' visibility='default' filepath='mm/slab.h' line='588' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='edae512d'>
+        <parameter type-id='442b8d89'/>
+        <return type-id='19c2251e'/>
+      </function-type>
+      <class-decl name='drm_tile_group' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/drm/drm_connector.h' line='1727' column='1' id='edb008f7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='refcount' type-id='400fb07b' visibility='default' filepath='include/drm/drm_connector.h' line='1728' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='8898134d' visibility='default' filepath='include/drm/drm_connector.h' line='1729' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_connector.h' line='1730' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='group_data' type-id='d2f7b56a' visibility='default' filepath='include/drm/drm_connector.h' line='1731' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='xt_action_param' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='30' column='1' id='edb04712'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='' type-id='ac5ab6a6' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab6a7' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='state' type-id='309a5a26' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='thoff' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='fragoff' type-id='1dc6a898' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='240'>
+          <var-decl name='hotdrop' type-id='b50a4934' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='41' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='0f042891' size-in-bits='131072' id='edb3766c'>
+        <subrange length='1024' type-id='7ff19f0f' id='c60446f8'/>
+      </array-type-def>
+      <class-decl name='ir_raw_timings_pl' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='293' column='1' id='edbe2ff8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='header_pulse' type-id='f0981eeb' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='bit_space' type-id='f0981eeb' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='295' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bit_pulse' type-id='0d532ec1' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='296' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='trailer_space' type-id='f0981eeb' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='297' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='msb_first' type-id='f0981eeb' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='298' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='rng_alg' size-in-bits='4096' is-struct='yes' visibility='default' filepath='include/crypto/rng.h' line='41' column='1' id='edc58e1f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='generate' type-id='5cae2f79' visibility='default' filepath='include/crypto/rng.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='seed' type-id='0499c3f4' visibility='default' filepath='include/crypto/rng.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='set_ent' type-id='a37de2bd' visibility='default' filepath='include/crypto/rng.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='seedsize' type-id='f0981eeb' visibility='default' filepath='include/crypto/rng.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='base' type-id='514fe525' visibility='default' filepath='include/crypto/rng.h' line='51' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_fb_helper_surface_size' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/drm/drm_fb_helper.h' line='62' column='1' id='edc6f434'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fb_width' type-id='19c2251e' visibility='default' filepath='include/drm/drm_fb_helper.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='fb_height' type-id='19c2251e' visibility='default' filepath='include/drm/drm_fb_helper.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='surface_width' type-id='19c2251e' visibility='default' filepath='include/drm/drm_fb_helper.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='surface_height' type-id='19c2251e' visibility='default' filepath='include/drm/drm_fb_helper.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='surface_bpp' type-id='19c2251e' visibility='default' filepath='include/drm/drm_fb_helper.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='surface_depth' type-id='19c2251e' visibility='default' filepath='include/drm/drm_fb_helper.h' line='68' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f82a46c1' size-in-bits='64' id='edcb70dd'/>
+      <pointer-type-def type-id='77e48e1b' size-in-bits='64' id='edcbd723'/>
+      <class-decl name='i2c_dev_boardinfo' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/i3c/master.h' line='63' column='1' id='edd6cd80'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/i3c/master.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='base' type-id='f95bfc29' visibility='default' filepath='include/linux/i3c/master.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='lvr' type-id='f9b06939' visibility='default' filepath='include/linux/i3c/master.h' line='66' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e589860a' size-in-bits='64' id='eddb9394'/>
+      <pointer-type-def type-id='87461f69' size-in-bits='64' id='eddbe2ad'/>
+      <pointer-type-def type-id='700e6430' size-in-bits='64' id='eddc89a2'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/parser.h' line='25' column='1' id='ede1657b' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='from' type-id='26a90f95' visibility='default' filepath='include/linux/parser.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='to' type-id='26a90f95' visibility='default' filepath='include/linux/parser.h' line='27' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2153cf5d' size-in-bits='64' id='edef9855'/>
+      <pointer-type-def type-id='eb77f338' size-in-bits='64' id='edf18c5a'/>
+      <pointer-type-def type-id='12afeb30' size-in-bits='64' id='edfa28b2'/>
+      <class-decl name='mmc_slot' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/mmc/host.h' line='291' column='1' id='edfd3d7d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cd_irq' type-id='95e97e5e' visibility='default' filepath='include/linux/mmc/host.h' line='292' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='cd_wake_enabled' type-id='b50a4934' visibility='default' filepath='include/linux/mmc/host.h' line='293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='handler_priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/mmc/host.h' line='294' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='android_oem_data1' type-id='91ce1af9' visibility='default' filepath='include/linux/mmc/host.h' line='295' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5510bbdb' size-in-bits='64' id='edff578b'/>
+      <function-type size-in-bits='64' id='ee076206'>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='usb_cdc_ncm_ndp16' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='378' column='1' id='ee0d5fa1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dwSignature' type-id='2f162548' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='379' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='wLength' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='380' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='wNextNdpIndex' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='381' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dpe16' type-id='eff0206c' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='382' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='usb_os_desc_table' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/usb/composite.h' line='113' column='1' id='ee0eb9bb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='if_id' type-id='95e97e5e' visibility='default' filepath='include/linux/usb/composite.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='os_desc' type-id='5260af22' visibility='default' filepath='include/linux/usb/composite.h' line='115' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='65d79a70' const='yes' id='ee0fc87b'/>
+      <qualified-type-def type-id='362eec9e' const='yes' id='ee10f079'/>
+      <class-decl name='socket' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/net.h' line='115' column='1' id='ee14fd94'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='state' type-id='ee2ecafb' visibility='default' filepath='include/linux/net.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='a2185560' visibility='default' filepath='include/linux/net.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='7359adad' visibility='default' filepath='include/linux/net.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='file' type-id='77e79a4b' visibility='default' filepath='include/linux/net.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sk' type-id='f772df6d' visibility='default' filepath='include/linux/net.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ops' type-id='38a81521' visibility='default' filepath='include/linux/net.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='wq' type-id='8bd06fd9' visibility='default' filepath='include/linux/net.h' line='126' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='8596da29' const='yes' id='ee15d052'/>
+      <class-decl name='ufs_hba_variant_ops' size-in-bits='1664' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='329' column='1' id='ee22abe8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='init' type-id='30b66f41' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='exit' type-id='2e320710' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get_ufs_hci_version' type-id='ae17b581' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='clk_scale_notify' type-id='47e17209' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='setup_clocks' type-id='47e17209' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='336' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='hce_enable_notify' type-id='e5b0996e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='link_startup_notify' type-id='e5b0996e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='pwr_change_notify' type-id='571aaf76' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='setup_xfer_req' type-id='a06238fa' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='setup_task_mgmt' type-id='ed89b003' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='hibern8_notify' type-id='4ec7a2d9' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='348' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='apply_dev_quirks' type-id='30b66f41' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='350' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='fixup_dev_quirks' type-id='2e320710' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='351' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='suspend' type-id='aa530e79' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='resume' type-id='e684e5d4' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='dbg_register_dump' type-id='2e320710' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='phy_initialization' type-id='30b66f41' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='device_reset' type-id='30b66f41' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='config_scaling_param' type-id='39d771f3' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='358' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='program_key' type-id='53c91149' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='event_notify' type-id='f0eb6991' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='363' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='366' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='367' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='368' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='369' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='new_utsname' size-in-bits='3120' is-struct='yes' visibility='default' filepath='include/uapi/linux/utsname.h' line='25' column='1' id='ee2746d3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sysname' type-id='5ddd38d2' visibility='default' filepath='include/uapi/linux/utsname.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='520'>
+          <var-decl name='nodename' type-id='5ddd38d2' visibility='default' filepath='include/uapi/linux/utsname.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1040'>
+          <var-decl name='release' type-id='5ddd38d2' visibility='default' filepath='include/uapi/linux/utsname.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1560'>
+          <var-decl name='version' type-id='5ddd38d2' visibility='default' filepath='include/uapi/linux/utsname.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2080'>
+          <var-decl name='machine' type-id='5ddd38d2' visibility='default' filepath='include/uapi/linux/utsname.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2600'>
+          <var-decl name='domainname' type-id='5ddd38d2' visibility='default' filepath='include/uapi/linux/utsname.h' line='31' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='85c151d0' size-in-bits='64' id='ee27b7c6'/>
+      <function-type size-in-bits='64' id='ee28e0c7'>
+        <parameter type-id='6ee1a870'/>
+        <return type-id='7359adad'/>
+      </function-type>
+      <typedef-decl name='socket_state' type-id='b7dbf8c7' filepath='include/uapi/linux/net.h' line='54' column='1' id='ee2ecafb'/>
+      <pointer-type-def type-id='172997aa' size-in-bits='64' id='ee3b6114'/>
+      <typedef-decl name='dma_async_tx_callback' type-id='b7f9d8e6' filepath='include/linux/dmaengine.h' line='540' column='1' id='ee3f36d4'/>
+      <pointer-type-def type-id='85c22421' size-in-bits='64' id='ee406209'/>
+      <function-type size-in-bits='64' id='ee48a0b3'>
+        <parameter type-id='2281d68b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='f0981eeb' size-in-bits='4096' id='ee4e68c4'>
+        <subrange length='128' type-id='7ff19f0f' id='1eb1687a'/>
+      </array-type-def>
+      <class-decl name='utp_upiu_rsp' size-in-bits='416' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='532' column='1' id='ee504570'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='header' type-id='b010cb22' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='533' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='' type-id='ac5ab615' visibility='default' filepath='drivers/scsi/ufs/ufs.h' line='534' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2e77eb82' size-in-bits='64' id='ee527710'/>
+      <class-decl name='fb_monspecs' size-in-bits='1152' is-struct='yes' visibility='default' filepath='include/linux/fb.h' line='64' column='1' id='ee529a90'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='chroma' type-id='1c76a224' visibility='default' filepath='include/linux/fb.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='modedb' type-id='c03076ec' visibility='default' filepath='include/linux/fb.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='manufacturer' type-id='c213d3d4' visibility='default' filepath='include/linux/fb.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='monitor' type-id='579c7c75' visibility='default' filepath='include/linux/fb.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='464'>
+          <var-decl name='serial_no' type-id='579c7c75' visibility='default' filepath='include/linux/fb.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='ascii' type-id='579c7c75' visibility='default' filepath='include/linux/fb.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='modedb_len' type-id='3f1a6b60' visibility='default' filepath='include/linux/fb.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='model' type-id='3f1a6b60' visibility='default' filepath='include/linux/fb.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='serial' type-id='3f1a6b60' visibility='default' filepath='include/linux/fb.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='year' type-id='3f1a6b60' visibility='default' filepath='include/linux/fb.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='week' type-id='3f1a6b60' visibility='default' filepath='include/linux/fb.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='hfmin' type-id='3f1a6b60' visibility='default' filepath='include/linux/fb.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='hfmax' type-id='3f1a6b60' visibility='default' filepath='include/linux/fb.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='dclkmin' type-id='3f1a6b60' visibility='default' filepath='include/linux/fb.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='dclkmax' type-id='3f1a6b60' visibility='default' filepath='include/linux/fb.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='992'>
+          <var-decl name='input' type-id='d315442e' visibility='default' filepath='include/linux/fb.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1008'>
+          <var-decl name='dpms' type-id='d315442e' visibility='default' filepath='include/linux/fb.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='signal' type-id='d315442e' visibility='default' filepath='include/linux/fb.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1040'>
+          <var-decl name='vfmin' type-id='d315442e' visibility='default' filepath='include/linux/fb.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='vfmax' type-id='d315442e' visibility='default' filepath='include/linux/fb.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1072'>
+          <var-decl name='gamma' type-id='d315442e' visibility='default' filepath='include/linux/fb.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='gtf' type-id='d315442e' visibility='default' filepath='include/linux/fb.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1104'>
+          <var-decl name='misc' type-id='d315442e' visibility='default' filepath='include/linux/fb.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='version' type-id='8f048e17' visibility='default' filepath='include/linux/fb.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1128'>
+          <var-decl name='revision' type-id='8f048e17' visibility='default' filepath='include/linux/fb.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1136'>
+          <var-decl name='max_x' type-id='8f048e17' visibility='default' filepath='include/linux/fb.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1144'>
+          <var-decl name='max_y' type-id='8f048e17' visibility='default' filepath='include/linux/fb.h' line='91' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='scmi_handle' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/scmi_protocol.h' line='630' column='1' id='ee54f9d4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/scmi_protocol.h' line='631' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='version' type-id='3f2d9c8e' visibility='default' filepath='include/linux/scmi_protocol.h' line='632' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='devm_protocol_get' type-id='ad477c6b' visibility='default' filepath='include/linux/scmi_protocol.h' line='635' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='devm_protocol_put' type-id='a7ad1583' visibility='default' filepath='include/linux/scmi_protocol.h' line='637' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='notify_ops' type-id='43023603' visibility='default' filepath='include/linux/scmi_protocol.h' line='639' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/scmi_protocol.h' line='641' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='19c2251e' size-in-bits='8192' id='ee5ba316'>
+        <subrange length='256' type-id='7ff19f0f' id='36e5b9fa'/>
+      </array-type-def>
+      <pointer-type-def type-id='fe943e01' size-in-bits='64' id='ee5dddb1'/>
+      <function-type size-in-bits='64' id='ee6561a9'>
+        <parameter type-id='af051c69'/>
+        <parameter type-id='fbc594d3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ee7b32c5'>
+        <parameter type-id='43c38462'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='0f872816' size-in-bits='64' id='ee7d45c8'/>
+      <pointer-type-def type-id='096280be' size-in-bits='64' id='ee802604'/>
+      <qualified-type-def type-id='73e7fb44' const='yes' id='ee83ff69'/>
+      <array-type-def dimensions='1' type-id='357a6a78' size-in-bits='96' alignment-in-bits='32' id='ee8e0be0'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <qualified-type-def type-id='b2983aea' const='yes' id='ee96392b'/>
+      <function-type size-in-bits='64' id='ee9a0086'>
+        <parameter type-id='cf536864'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ee9d520a'>
+        <parameter type-id='b9608bfc'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='69bf7bee'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <qualified-type-def type-id='666ada80' const='yes' id='ee9f611d'/>
+      <class-decl name='v4l2_decode_vbi_line' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='52' column='1' id='eea20e13'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='is_second_field' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-subdev.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='p' type-id='8bff8096' visibility='default' filepath='include/media/v4l2-subdev.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='line' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-subdev.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='type' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-subdev.h' line='56' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='dma_data_direction' filepath='include/linux/dma-direction.h' line='5' column='1' id='eea6b025'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DMA_BIDIRECTIONAL' value='0'/>
+        <enumerator name='DMA_TO_DEVICE' value='1'/>
+        <enumerator name='DMA_FROM_DEVICE' value='2'/>
+        <enumerator name='DMA_NONE' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='4be41eb0' size-in-bits='64' id='eeaa93ea'/>
+      <pointer-type-def type-id='10ec1ded' size-in-bits='64' id='eeaf504d'/>
+      <pointer-type-def type-id='fc053d58' size-in-bits='64' id='eeb35eda'/>
+      <pointer-type-def type-id='fbd376ca' size-in-bits='64' id='eebb8ee8'/>
+      <enum-decl name='kernel_pkey_operation' filepath='include/linux/keyctl.h' line='22' column='1' id='eec170ff'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='kernel_pkey_encrypt' value='0'/>
+        <enumerator name='kernel_pkey_decrypt' value='1'/>
+        <enumerator name='kernel_pkey_sign' value='2'/>
+        <enumerator name='kernel_pkey_verify' value='3'/>
+      </enum-decl>
+      <qualified-type-def type-id='0570fd5e' const='yes' id='eed1c4b9'/>
+      <pointer-type-def type-id='22ea740f' size-in-bits='64' id='eed59f13'/>
+      <function-type size-in-bits='64' id='eeda2e3d'>
+        <parameter type-id='4db02c58'/>
+        <parameter type-id='d1499e71'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='782b4219' size-in-bits='64' id='eee971fd'/>
+      <function-type size-in-bits='64' id='eeeb3192'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='72028e1c'/>
+        <parameter type-id='39341f7e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='eeef65e4'>
+        <parameter type-id='e1d6cc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='624c84d3' size-in-bits='64' id='eef261f7'/>
+      <class-decl name='bpf_prog_offload' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='598' column='1' id='eef53362'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prog' type-id='bdcee7ae' visibility='default' filepath='include/linux/bpf.h' line='599' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='netdev' type-id='68a2d05b' visibility='default' filepath='include/linux/bpf.h' line='600' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='offdev' type-id='d079c835' visibility='default' filepath='include/linux/bpf.h' line='601' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dev_priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/bpf.h' line='602' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='offloads' type-id='72f469ec' visibility='default' filepath='include/linux/bpf.h' line='603' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='dev_state' type-id='b50a4934' visibility='default' filepath='include/linux/bpf.h' line='604' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='392'>
+          <var-decl name='opt_failed' type-id='b50a4934' visibility='default' filepath='include/linux/bpf.h' line='605' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='jited_image' type-id='eaa32e2f' visibility='default' filepath='include/linux/bpf.h' line='606' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='jited_len' type-id='19c2251e' visibility='default' filepath='include/linux/bpf.h' line='607' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/bpf.h' line='608' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9493d3c9' size-in-bits='64' id='eefd7061'/>
+      <typedef-decl name='ZSTD_frameParams' type-id='283cac5a' filepath='include/linux/zstd.h' line='935' column='1' id='eefdc867'/>
+      <pointer-type-def type-id='5a3ac168' size-in-bits='64' id='eefe253e'/>
+      <array-type-def dimensions='1' type-id='7a583acc' size-in-bits='4096' id='eefef0c1'>
+        <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+      </array-type-def>
+      <pointer-type-def type-id='5df6ba5b' size-in-bits='64' id='ef014987'/>
+      <pointer-type-def type-id='c5491077' size-in-bits='64' id='ef04c267'/>
+      <enum-decl name='nl802154_cca_opts' filepath='include/net/nl802154.h' line='255' column='1' id='ef15418f'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NL802154_CCA_OPT_ENERGY_CARRIER_AND' value='0'/>
+        <enumerator name='NL802154_CCA_OPT_ENERGY_CARRIER_OR' value='1'/>
+        <enumerator name='__NL802154_CCA_OPT_ATTR_AFTER_LAST' value='2'/>
+        <enumerator name='NL802154_CCA_OPT_ATTR_MAX' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='eeef65e4' size-in-bits='64' id='ef16e31e'/>
+      <pointer-type-def type-id='418a6dbd' size-in-bits='64' id='ef2258e1'/>
+      <class-decl name='drm_mode_set' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/drm/drm_crtc.h' line='1203' column='1' id='ef266a3b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fb' type-id='7b332e1c' visibility='default' filepath='include/drm/drm_crtc.h' line='1204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='crtc' type-id='b64ad7cb' visibility='default' filepath='include/drm/drm_crtc.h' line='1205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mode' type-id='11e02f83' visibility='default' filepath='include/drm/drm_crtc.h' line='1206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='x' type-id='8f92235e' visibility='default' filepath='include/drm/drm_crtc.h' line='1208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='y' type-id='8f92235e' visibility='default' filepath='include/drm/drm_crtc.h' line='1209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='connectors' type-id='be55f776' visibility='default' filepath='include/drm/drm_crtc.h' line='1211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='num_connectors' type-id='b59d7dce' visibility='default' filepath='include/drm/drm_crtc.h' line='1212' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='nf_gre_net' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/netns/conntrack.h' line='73' column='1' id='ef266e4a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='keymap_list' type-id='72f469ec' visibility='default' filepath='include/net/netns/conntrack.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='timeouts' type-id='0d532ec1' visibility='default' filepath='include/net/netns/conntrack.h' line='75' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='ef276be8'>
+        <parameter type-id='00c7b870'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3c2554e1' size-in-bits='64' id='ef2b6bf5'/>
+      <pointer-type-def type-id='bab69d9a' size-in-bits='64' id='ef2b6ec8'/>
+      <pointer-type-def type-id='e86b7946' size-in-bits='64' id='ef2f6230'/>
+      <qualified-type-def type-id='c4d0818f' const='yes' id='ef3b2b52'/>
+      <class-decl name='devfreq_event_desc' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/devfreq-event.h' line='92' column='1' id='ef40f18b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/devfreq-event.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='event_type' type-id='19c2251e' visibility='default' filepath='include/linux/devfreq-event.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/devfreq-event.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ops' type-id='e9774929' visibility='default' filepath='include/linux/devfreq-event.h' line='97' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='744e4af5' const='yes' id='ef40fb12'/>
+      <class-decl name='fib_notifier_ops' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/net/fib_notifier.h' line='28' column='1' id='ef45f062'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='family' type-id='95e97e5e' visibility='default' filepath='include/net/fib_notifier.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/fib_notifier.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='fib_seq_read' type-id='3a0c781f' visibility='default' filepath='include/net/fib_notifier.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='fib_dump' type-id='014f3c9b' visibility='default' filepath='include/net/fib_notifier.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/net/fib_notifier.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/fib_notifier.h' line='35' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='ef46a2bb'>
+        <parameter type-id='a6711537'/>
+        <parameter type-id='d1499e71'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ef4bec92'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c0badb3b' size-in-bits='64' id='ef4fae1b'/>
+      <function-type size-in-bits='64' id='ef65541d'>
+        <parameter type-id='9f763fd8'/>
+        <parameter type-id='32ab3e71'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='edc6f434' size-in-bits='64' id='ef68bde2'/>
+      <class-decl name='thermal_trip' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/thermal/thermal_core.h' line='78' column='1' id='ef6b4e3a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='np' type-id='9a537bbe' visibility='default' filepath='drivers/thermal/thermal_core.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='temperature' type-id='95e97e5e' visibility='default' filepath='drivers/thermal/thermal_core.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='hysteresis' type-id='95e97e5e' visibility='default' filepath='drivers/thermal/thermal_core.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='type' type-id='57e8e954' visibility='default' filepath='drivers/thermal/thermal_core.h' line='82' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4f0fdafb' size-in-bits='64' id='ef75df1f'/>
+      <pointer-type-def type-id='c0d6093d' size-in-bits='64' id='ef76b4f1'/>
+      <qualified-type-def type-id='1251351e' const='yes' id='ef7d00fd'/>
+      <pointer-type-def type-id='f9729b9a' size-in-bits='64' id='ef7f4688'/>
+      <pointer-type-def type-id='5900d865' size-in-bits='64' id='ef872b61'/>
+      <class-decl name='work_struct' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/workqueue.h' line='98' column='1' id='ef9025d0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='data' type-id='f22a8abb' visibility='default' filepath='include/linux/workqueue.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='entry' type-id='72f469ec' visibility='default' filepath='include/linux/workqueue.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='func' type-id='72666d3f' visibility='default' filepath='include/linux/workqueue.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/workqueue.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/workqueue.h' line='106' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f3a32dbb' size-in-bits='64' id='efa21d3b'/>
+      <array-type-def dimensions='1' type-id='dd91f264' size-in-bits='128' id='efa46f39'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='efa4e33c'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='b4de78ea'/>
+        <parameter type-id='cdea97c3'/>
+        <parameter type-id='cdea97c3'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='ea214f7b' size-in-bits='64' id='efb4ad67'/>
+      <class-decl name='__anonymous_struct__' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='72' column='1' id='efb59b75' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dlci' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='master' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='74' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='Byte' type-id='002ac4a6' filepath='include/linux/zconf.h' line='52' column='1' id='efb9ba06'/>
+      <pointer-type-def type-id='fcc0eea6' size-in-bits='64' id='efba361c'/>
+      <pointer-type-def type-id='74912d6e' size-in-bits='64' id='efba8d40'/>
+      <function-type size-in-bits='64' id='efc29a3e'>
+        <parameter type-id='91d0de51'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='14c4c914' size-in-bits='64' id='efc8cc9a'/>
+      <pointer-type-def type-id='da952956' size-in-bits='64' id='efd0fdec'/>
+      <pointer-type-def type-id='c655c7b7' size-in-bits='64' id='efd5496b'/>
+      <function-type size-in-bits='64' id='efdb04f5'>
+        <parameter type-id='e68e04c1'/>
+        <parameter type-id='eea6b025'/>
+        <return type-id='4adb0e6a'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='89981240' size-in-bits='infinite' id='eff0206c'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='2a4c87c4' size-in-bits='64' id='eff2bbc2'/>
+      <qualified-type-def type-id='928221d2' const='yes' id='effb3702'/>
+      <class-decl name='usb_cdc_acm_descriptor' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='85' column='1' id='f0029b4e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bLength' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bDescriptorType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='bDescriptorSubType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='bmCapabilities' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='90' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='a9918a4d' size-in-bits='64' id='f0150b1d'/>
+      <array-type-def dimensions='1' type-id='a84c031d' size-in-bits='112' id='f01a039e'>
+        <subrange length='14' type-id='7ff19f0f' id='48882d96'/>
+      </array-type-def>
+      <class-decl name='dma_buf_attachment' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/dma-buf.h' line='598' column='1' id='f01bc099'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dmabuf' type-id='5e4f599b' visibility='default' filepath='include/linux/dma-buf.h' line='599' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/dma-buf.h' line='600' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/dma-buf.h' line='601' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='sgt' type-id='4adb0e6a' visibility='default' filepath='include/linux/dma-buf.h' line='602' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dir' type-id='eea6b025' visibility='default' filepath='include/linux/dma-buf.h' line='603' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='peer2peer' type-id='b50a4934' visibility='default' filepath='include/linux/dma-buf.h' line='604' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='importer_ops' type-id='ce74919f' visibility='default' filepath='include/linux/dma-buf.h' line='605' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='importer_priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/dma-buf.h' line='606' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/dma-buf.h' line='607' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='dma_map_attrs' type-id='7359adad' visibility='default' filepath='include/linux/dma-buf.h' line='608' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/dma-buf.h' line='610' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/dma-buf.h' line='611' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='debugfs_regset32' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/debugfs.h' line='34' column='1' id='f01e85cf'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='regs' type-id='ec73f122' visibility='default' filepath='include/linux/debugfs.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nregs' type-id='95e97e5e' visibility='default' filepath='include/linux/debugfs.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='base' type-id='eaa32e2f' visibility='default' filepath='include/linux/debugfs.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/debugfs.h' line='38' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8db8de2b' size-in-bits='64' id='f026b16b'/>
+      <pointer-type-def type-id='db7d07ef' size-in-bits='64' id='f02a5e83'/>
+      <class-decl name='drm_connector' size-in-bits='14720' is-struct='yes' visibility='default' filepath='include/drm/drm_connector.h' line='1230' column='1' id='f02c18fa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='8898134d' visibility='default' filepath='include/drm/drm_connector.h' line='1232' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='kdev' type-id='fa0b179b' visibility='default' filepath='include/drm/drm_connector.h' line='1234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='attr' type-id='89a2612a' visibility='default' filepath='include/drm/drm_connector.h' line='1236' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='head' type-id='72f469ec' visibility='default' filepath='include/drm/drm_connector.h' line='1246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='base' type-id='350f4182' visibility='default' filepath='include/drm/drm_connector.h' line='1249' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/drm/drm_connector.h' line='1252' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='include/drm/drm_connector.h' line='1259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='1267' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='connector_type' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_connector.h' line='1273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='connector_type_id' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_connector.h' line='1275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='interlace_allowed' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='1281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1128'>
+          <var-decl name='doublescan_allowed' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='1287' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1136'>
+          <var-decl name='stereo_allowed' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='1293' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1144'>
+          <var-decl name='ycbcr_420_allowed' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='1301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='registration_state' type-id='0b8fe6b9' visibility='default' filepath='include/drm/drm_connector.h' line='1309' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='modes' type-id='72f469ec' visibility='default' filepath='include/drm/drm_connector.h' line='1316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='status' type-id='f7b0e1b4' visibility='default' filepath='include/drm/drm_connector.h' line='1323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='probed_modes' type-id='72f469ec' visibility='default' filepath='include/drm/drm_connector.h' line='1331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='display_info' type-id='228c7c6c' visibility='default' filepath='include/drm/drm_connector.h' line='1342' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='funcs' type-id='3fb29739' visibility='default' filepath='include/drm/drm_connector.h' line='1345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='edid_blob_ptr' type-id='c4126d52' visibility='default' filepath='include/drm/drm_connector.h' line='1352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='properties' type-id='970d3828' visibility='default' filepath='include/drm/drm_connector.h' line='1355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11264'>
+          <var-decl name='scaling_mode_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_connector.h' line='1361' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11328'>
+          <var-decl name='vrr_capable_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_connector.h' line='1372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11392'>
+          <var-decl name='colorspace_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_connector.h' line='1378' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11456'>
+          <var-decl name='path_blob_ptr' type-id='c4126d52' visibility='default' filepath='include/drm/drm_connector.h' line='1386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11520'>
+          <var-decl name='max_bpc_property' type-id='26ea5d4c' visibility='default' filepath='include/drm/drm_connector.h' line='1392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11584'>
+          <var-decl name='polled' type-id='b96825af' visibility='default' filepath='include/drm/drm_connector.h' line='1419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11616'>
+          <var-decl name='dpms' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_connector.h' line='1427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11648'>
+          <var-decl name='helper_private' type-id='90133bf8' visibility='default' filepath='include/drm/drm_connector.h' line='1430' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11712'>
+          <var-decl name='cmdline_mode' type-id='458106cb' visibility='default' filepath='include/drm/drm_connector.h' line='1433' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12384'>
+          <var-decl name='force' type-id='e1a0be31' visibility='default' filepath='include/drm/drm_connector.h' line='1435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12416'>
+          <var-decl name='override_edid' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='1437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12480'>
+          <var-decl name='epoch_counter' type-id='91ce1af9' visibility='default' filepath='include/drm/drm_connector.h' line='1439' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12544'>
+          <var-decl name='possible_encoders' type-id='19c2251e' visibility='default' filepath='include/drm/drm_connector.h' line='1446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12608'>
+          <var-decl name='encoder' type-id='74d89ebd' visibility='default' filepath='include/drm/drm_connector.h' line='1454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='12672'>
+          <var-decl name='eld' type-id='c768f32d' visibility='default' filepath='include/drm/drm_connector.h' line='1458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13696'>
+          <var-decl name='latency_present' type-id='86c49187' visibility='default' filepath='include/drm/drm_connector.h' line='1460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13728'>
+          <var-decl name='video_latency' type-id='e4266c7e' visibility='default' filepath='include/drm/drm_connector.h' line='1465' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13792'>
+          <var-decl name='audio_latency' type-id='e4266c7e' visibility='default' filepath='include/drm/drm_connector.h' line='1470' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13888'>
+          <var-decl name='ddc' type-id='b9af02c3' visibility='default' filepath='include/drm/drm_connector.h' line='1481' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13952'>
+          <var-decl name='null_edid_counter' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_connector.h' line='1487' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='13984'>
+          <var-decl name='bad_edid_counter' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_connector.h' line='1490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14016'>
+          <var-decl name='edid_corrupt' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='1497' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14024'>
+          <var-decl name='real_edid_checksum' type-id='f9b06939' visibility='default' filepath='include/drm/drm_connector.h' line='1503' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14080'>
+          <var-decl name='debugfs_entry' type-id='27675065' visibility='default' filepath='include/drm/drm_connector.h' line='1506' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14144'>
+          <var-decl name='state' type-id='249ef586' visibility='default' filepath='include/drm/drm_connector.h' line='1522' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14208'>
+          <var-decl name='tile_blob_ptr' type-id='c4126d52' visibility='default' filepath='include/drm/drm_connector.h' line='1539' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14272'>
+          <var-decl name='has_tile' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='1542' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14336'>
+          <var-decl name='tile_group' type-id='c6c44b9f' visibility='default' filepath='include/drm/drm_connector.h' line='1544' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14400'>
+          <var-decl name='tile_is_single_monitor' type-id='b50a4934' visibility='default' filepath='include/drm/drm_connector.h' line='1546' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14408'>
+          <var-decl name='num_h_tile' type-id='b96825af' visibility='default' filepath='include/drm/drm_connector.h' line='1550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14416'>
+          <var-decl name='num_v_tile' type-id='b96825af' visibility='default' filepath='include/drm/drm_connector.h' line='1550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14424'>
+          <var-decl name='tile_h_loc' type-id='b96825af' visibility='default' filepath='include/drm/drm_connector.h' line='1553' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14432'>
+          <var-decl name='tile_v_loc' type-id='b96825af' visibility='default' filepath='include/drm/drm_connector.h' line='1553' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14448'>
+          <var-decl name='tile_h_size' type-id='149c6638' visibility='default' filepath='include/drm/drm_connector.h' line='1556' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14464'>
+          <var-decl name='tile_v_size' type-id='149c6638' visibility='default' filepath='include/drm/drm_connector.h' line='1556' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14528'>
+          <var-decl name='free_node' type-id='c5ccfee8' visibility='default' filepath='include/drm/drm_connector.h' line='1565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14592'>
+          <var-decl name='hdr_sink_metadata' type-id='b459f8ff' visibility='default' filepath='include/drm/drm_connector.h' line='1568' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='215ec542' size-in-bits='64' id='f030c2b8'/>
+      <pointer-type-def type-id='38a035e6' size-in-bits='64' id='f034b024'/>
+      <function-type size-in-bits='64' id='f036a6aa'>
+        <parameter type-id='9f763fd8'/>
+        <parameter type-id='2d3c5c00'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='f037e1bb'>
+        <parameter type-id='02f11ed4'/>
+        <parameter type-id='9c5c646e'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='26b6dfe0' size-in-bits='64' id='f0385e42'/>
+      <pointer-type-def type-id='20919507' size-in-bits='64' id='f03e9a5b'/>
+      <pointer-type-def type-id='09bcad51' size-in-bits='64' id='f03f21e9'/>
+      <pointer-type-def type-id='45f336bf' size-in-bits='64' id='f050a0cb'/>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='128' id='f05e8e77'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <class-decl name='config_group' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/linux/configfs.h' line='77' column='1' id='f05eea43'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cg_item' type-id='79236ccf' visibility='default' filepath='include/linux/configfs.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='cg_children' type-id='72f469ec' visibility='default' filepath='include/linux/configfs.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='cg_subsys' type-id='598755ca' visibility='default' filepath='include/linux/configfs.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='default_groups' type-id='72f469ec' visibility='default' filepath='include/linux/configfs.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='group_entry' type-id='72f469ec' visibility='default' filepath='include/linux/configfs.h' line='82' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='iio_trigger' size-in-bits='11136' is-struct='yes' visibility='default' filepath='include/linux/iio/trigger.h' line='60' column='1' id='f060e03b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='a233c137' visibility='default' filepath='include/linux/iio/trigger.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/iio/trigger.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='include/linux/iio/trigger.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/iio/trigger.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/iio/trigger.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/iio/trigger.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='alloc_list' type-id='72f469ec' visibility='default' filepath='include/linux/iio/trigger.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='use_count' type-id='49178f86' visibility='default' filepath='include/linux/iio/trigger.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='subirq_chip' type-id='0f5f7920' visibility='default' filepath='include/linux/iio/trigger.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10176'>
+          <var-decl name='subirq_base' type-id='95e97e5e' visibility='default' filepath='include/linux/iio/trigger.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10208'>
+          <var-decl name='subirqs' type-id='76e4cb23' visibility='default' filepath='include/linux/iio/trigger.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10240'>
+          <var-decl name='pool' type-id='f066dd3c' visibility='default' filepath='include/linux/iio/trigger.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10304'>
+          <var-decl name='pool_lock' type-id='925167dc' visibility='default' filepath='include/linux/iio/trigger.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10688'>
+          <var-decl name='attached_own_device' type-id='b50a4934' visibility='default' filepath='include/linux/iio/trigger.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10752'>
+          <var-decl name='reenable_work' type-id='ef9025d0' visibility='default' filepath='include/linux/iio/trigger.h' line='78' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='64' id='f066dd3c'>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='384' id='f0691bd3'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <pointer-type-def type-id='a94236e2' size-in-bits='64' id='f06adae0'/>
+      <function-type size-in-bits='64' id='f06f451b'>
+        <parameter type-id='0e23c133'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='320' id='f06fd798'>
+        <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+      </array-type-def>
+      <pointer-type-def type-id='effb3702' size-in-bits='64' id='f077d3f8'/>
+      <class-decl name='vring_desc' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/virtio_ring.h' line='97' column='1' id='f0783229'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='addr' type-id='b7a6fcff' visibility='default' filepath='include/uapi/linux/virtio_ring.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='len' type-id='43ae9528' visibility='default' filepath='include/uapi/linux/virtio_ring.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='b7a93b96' visibility='default' filepath='include/uapi/linux/virtio_ring.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='next' type-id='b7a93b96' visibility='default' filepath='include/uapi/linux/virtio_ring.h' line='105' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='snd_soc_bias_level' filepath='include/sound/soc-dapm.h' line='393' column='1' id='f078c744'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='SND_SOC_BIAS_OFF' value='0'/>
+        <enumerator name='SND_SOC_BIAS_STANDBY' value='1'/>
+        <enumerator name='SND_SOC_BIAS_PREPARE' value='2'/>
+        <enumerator name='SND_SOC_BIAS_ON' value='3'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='f0798262'>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='016b3662' size-in-bits='64' id='f07d90b4'/>
+      <function-type size-in-bits='64' id='f089a11b'>
+        <parameter type-id='49a58c0c'/>
+        <parameter type-id='4e532009'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='38cb23df' size-in-bits='64' id='f089c08b'/>
+      <pointer-type-def type-id='b5d64367' size-in-bits='64' id='f08a800b'/>
+      <pointer-type-def type-id='b69e3ec6' size-in-bits='64' id='f08d4e50'/>
+      <pointer-type-def type-id='4904ecea' size-in-bits='64' id='f0934dcb'/>
+      <typedef-decl name='rpmsg_rx_cb_t' type-id='2a873f51' filepath='include/linux/rpmsg.h' line='77' column='1' id='f0966175'/>
+      <class-decl name='queue_limits' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/blkdev.h' line='304' column='1' id='f0966d3d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bounce' type-id='c663ed28' visibility='default' filepath='include/linux/blkdev.h' line='305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='seg_boundary_mask' type-id='7359adad' visibility='default' filepath='include/linux/blkdev.h' line='306' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='virt_boundary_mask' type-id='7359adad' visibility='default' filepath='include/linux/blkdev.h' line='307' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='max_hw_sectors' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='309' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='max_dev_sectors' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='310' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='chunk_sectors' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='311' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='max_sectors' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='312' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='max_segment_size' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='313' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='physical_block_size' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='314' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='logical_block_size' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='315' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='alignment_offset' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='316' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='io_min' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='317' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='io_opt' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='318' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='max_discard_sectors' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='319' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='max_hw_discard_sectors' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='320' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='max_write_same_sectors' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='321' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='max_write_zeroes_sectors' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='322' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='max_zone_append_sectors' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='323' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='discard_granularity' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='324' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='discard_alignment' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='325' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='zone_write_granularity' type-id='f0981eeb' visibility='default' filepath='include/linux/blkdev.h' line='326' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='max_segments' type-id='8efea9e5' visibility='default' filepath='include/linux/blkdev.h' line='328' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='784'>
+          <var-decl name='max_integrity_segments' type-id='8efea9e5' visibility='default' filepath='include/linux/blkdev.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='max_discard_segments' type-id='8efea9e5' visibility='default' filepath='include/linux/blkdev.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='816'>
+          <var-decl name='misaligned' type-id='002ac4a6' visibility='default' filepath='include/linux/blkdev.h' line='332' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='824'>
+          <var-decl name='discard_misaligned' type-id='002ac4a6' visibility='default' filepath='include/linux/blkdev.h' line='333' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='raid_partial_stripes_expensive' type-id='002ac4a6' visibility='default' filepath='include/linux/blkdev.h' line='334' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='zoned' type-id='a48b5528' visibility='default' filepath='include/linux/blkdev.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/blkdev.h' line='337' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='android_oem_data1' type-id='91ce1af9' visibility='default' filepath='include/linux/blkdev.h' line='339' column='1'/>
+        </data-member>
+      </class-decl>
+      <type-decl name='unsigned int' size-in-bits='32' id='f0981eeb'/>
+      <class-decl name='ehci_driver_overrides' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/usb/host/ehci.h' line='874' column='1' id='f0985961'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='extra_priv_size' type-id='b59d7dce' visibility='default' filepath='drivers/usb/host/ehci.h' line='875' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='reset' type-id='3d4f6569' visibility='default' filepath='drivers/usb/host/ehci.h' line='876' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='port_power' type-id='57938551' visibility='default' filepath='drivers/usb/host/ehci.h' line='877' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='415eecf1' size-in-bits='64' id='f0acc909'/>
+      <pointer-type-def type-id='3d90a2b0' size-in-bits='64' id='f0bcc466'/>
+      <array-type-def dimensions='1' type-id='c0e2acc9' size-in-bits='1088' id='f0bfbfd1'>
+        <subrange length='17' type-id='7ff19f0f' id='888ad0ed'/>
+      </array-type-def>
+      <class-decl name='vsock_sock' size-in-bits='11776' is-struct='yes' visibility='default' filepath='include/net/af_vsock.h' line='27' column='1' id='f0c6a3fa'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sk' type-id='a240f41d' visibility='default' filepath='include/net/af_vsock.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6976'>
+          <var-decl name='transport' type-id='c6c5bd96' visibility='default' filepath='include/net/af_vsock.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7040'>
+          <var-decl name='local_addr' type-id='d15eade2' visibility='default' filepath='include/net/af_vsock.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7168'>
+          <var-decl name='remote_addr' type-id='d15eade2' visibility='default' filepath='include/net/af_vsock.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='bound_table' type-id='72f469ec' visibility='default' filepath='include/net/af_vsock.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7424'>
+          <var-decl name='connected_table' type-id='72f469ec' visibility='default' filepath='include/net/af_vsock.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7552'>
+          <var-decl name='trusted' type-id='b50a4934' visibility='default' filepath='include/net/af_vsock.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7560'>
+          <var-decl name='cached_peer_allow_dgram' type-id='b50a4934' visibility='default' filepath='include/net/af_vsock.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7584'>
+          <var-decl name='cached_peer' type-id='19c2251e' visibility='default' filepath='include/net/af_vsock.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='owner' type-id='bc33861a' visibility='default' filepath='include/net/af_vsock.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='connect_timeout' type-id='bd54fe1a' visibility='default' filepath='include/net/af_vsock.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='listener' type-id='f772df6d' visibility='default' filepath='include/net/af_vsock.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='pending_links' type-id='72f469ec' visibility='default' filepath='include/net/af_vsock.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='accept_queue' type-id='72f469ec' visibility='default' filepath='include/net/af_vsock.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8064'>
+          <var-decl name='rejected' type-id='b50a4934' visibility='default' filepath='include/net/af_vsock.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8128'>
+          <var-decl name='connect_work' type-id='5ad6e0ef' visibility='default' filepath='include/net/af_vsock.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9216'>
+          <var-decl name='pending_work' type-id='5ad6e0ef' visibility='default' filepath='include/net/af_vsock.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10304'>
+          <var-decl name='close_work' type-id='5ad6e0ef' visibility='default' filepath='include/net/af_vsock.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11392'>
+          <var-decl name='close_work_scheduled' type-id='b50a4934' visibility='default' filepath='include/net/af_vsock.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11424'>
+          <var-decl name='peer_shutdown' type-id='19c2251e' visibility='default' filepath='include/net/af_vsock.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11456'>
+          <var-decl name='sent_request' type-id='b50a4934' visibility='default' filepath='include/net/af_vsock.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11464'>
+          <var-decl name='ignore_connecting_rst' type-id='b50a4934' visibility='default' filepath='include/net/af_vsock.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11520'>
+          <var-decl name='buffer_size' type-id='91ce1af9' visibility='default' filepath='include/net/af_vsock.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11584'>
+          <var-decl name='buffer_min_size' type-id='91ce1af9' visibility='default' filepath='include/net/af_vsock.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11648'>
+          <var-decl name='buffer_max_size' type-id='91ce1af9' visibility='default' filepath='include/net/af_vsock.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11712'>
+          <var-decl name='trans' type-id='eaa32e2f' visibility='default' filepath='include/net/af_vsock.h' line='74' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='__anonymous_enum__' filepath='lib/zstd/zstd_internal.h' line='87' column='1' id='f0c833b5' is-anonymous='yes'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='bt_raw' value='0'/>
+        <enumerator name='bt_rle' value='1'/>
+        <enumerator name='bt_compressed' value='2'/>
+        <enumerator name='bt_reserved' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='0410b02c' size-in-bits='64' id='f0cadde6'/>
+      <pointer-type-def type-id='96b6b914' size-in-bits='64' id='f0cb8b62'/>
+      <class-decl name='ww_class' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/ww_mutex.h' line='40' column='1' id='f0dc3c34'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='stamp' type-id='f22a8abb' visibility='default' filepath='include/linux/ww_mutex.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='acquire_key' type-id='47479831' visibility='default' filepath='include/linux/ww_mutex.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mutex_key' type-id='47479831' visibility='default' filepath='include/linux/ww_mutex.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='acquire_name' type-id='80f4b756' visibility='default' filepath='include/linux/ww_mutex.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='mutex_name' type-id='80f4b756' visibility='default' filepath='include/linux/ww_mutex.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='is_wait_die' type-id='f0981eeb' visibility='default' filepath='include/linux/ww_mutex.h' line='46' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='eb5d5777' size-in-bits='64' id='f0dd4a3b'/>
+      <class-decl name='nf_ct_dccp' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/netfilter/nf_conntrack_dccp.h' line='30' column='1' id='f0e59128'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='role' type-id='a212abfb' visibility='default' filepath='include/linux/netfilter/nf_conntrack_dccp.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='state' type-id='892641a4' visibility='default' filepath='include/linux/netfilter/nf_conntrack_dccp.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='last_pkt' type-id='892641a4' visibility='default' filepath='include/linux/netfilter/nf_conntrack_dccp.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='last_dir' type-id='892641a4' visibility='default' filepath='include/linux/netfilter/nf_conntrack_dccp.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='handshake_seq' type-id='f1f7b9a4' visibility='default' filepath='include/linux/netfilter/nf_conntrack_dccp.h' line='35' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d1194a8d' size-in-bits='64' id='f0eb6991'/>
+      <pointer-type-def type-id='306fcd19' size-in-bits='64' id='f0f4c2cd'/>
+      <qualified-type-def type-id='8b6b6ef7' const='yes' id='f0f807bc'/>
+      <pointer-type-def type-id='90a4444b' size-in-bits='64' id='f0f856cb'/>
+      <function-type size-in-bits='64' id='f0feedf7'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='68a2d05b'/>
+      </function-type>
+      <class-decl name='irq_domain_chip_generic' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/irq.h' line='1104' column='1' id='f100815b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='irqs_per_chip' type-id='f0981eeb' visibility='default' filepath='include/linux/irq.h' line='1105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='num_chips' type-id='f0981eeb' visibility='default' filepath='include/linux/irq.h' line='1106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='irq_flags_to_clear' type-id='f0981eeb' visibility='default' filepath='include/linux/irq.h' line='1107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='irq_flags_to_set' type-id='f0981eeb' visibility='default' filepath='include/linux/irq.h' line='1108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='gc_flags' type-id='7a1ec3b1' visibility='default' filepath='include/linux/irq.h' line='1109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='gc' type-id='a5527824' visibility='default' filepath='include/linux/irq.h' line='1110' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7082c248' size-in-bits='64' id='f10279fe'/>
+      <class-decl name='raw_spinlock' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/spinlock_types_raw.h' line='14' column='1' id='f106d0e5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='raw_lock' type-id='641c41d1' visibility='default' filepath='include/linux/spinlock_types_raw.h' line='15' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4ba7baf2' size-in-bits='64' id='f10b2208'/>
+      <function-type size-in-bits='64' id='f111d4f3'>
+        <parameter type-id='e7d2a5fc'/>
+        <parameter type-id='3dad1a48'/>
+        <return type-id='3dad1a48'/>
+      </function-type>
+      <class-decl name='lru_gen_mm_state' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/linux/mmzone.h' line='437' column='1' id='f11851b8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='seq' type-id='7359adad' visibility='default' filepath='include/linux/mmzone.h' line='439' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='head' type-id='e84b031a' visibility='default' filepath='include/linux/mmzone.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tail' type-id='e84b031a' visibility='default' filepath='include/linux/mmzone.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='wait' type-id='cff07063' visibility='default' filepath='include/linux/mmzone.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='filters' type-id='dc94a8df' visibility='default' filepath='include/linux/mmzone.h' line='447' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='stats' type-id='564ef35c' visibility='default' filepath='include/linux/mmzone.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='nr_walkers' type-id='95e97e5e' visibility='default' filepath='include/linux/mmzone.h' line='451' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c654dff2' size-in-bits='64' id='f11f814d'/>
+      <class-decl name='netdev_rx_queue' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='762' column='1' id='f12ac4ae'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='xdp_rxq' type-id='eb0d6f26' visibility='default' filepath='include/linux/netdevice.h' line='763' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='rps_map' type-id='f30dbff5' visibility='default' filepath='include/linux/netdevice.h' line='765' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='rps_flow_table' type-id='deff2378' visibility='default' filepath='include/linux/netdevice.h' line='766' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='include/linux/netdevice.h' line='768' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/linux/netdevice.h' line='769' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='pool' type-id='81e0c1b8' visibility='default' filepath='include/linux/netdevice.h' line='771' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='774' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='775' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='776' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='777' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='97f95e6a' size-in-bits='64' id='f12b668c'/>
+      <pointer-type-def type-id='a928f2e9' size-in-bits='64' id='f12d6b61'/>
+      <class-decl name='ptp_extts_event' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='227' column='1' id='f1317091'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='t' type-id='2f9dd1de' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rsv' type-id='0d532ec1' visibility='default' filepath='include/uapi/linux/ptp_clock.h' line='231' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='nvdimm_fwa_trigger' filepath='include/linux/libnvdimm.h' line='211' column='1' id='f138581f'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NVDIMM_FWA_ARM' value='0'/>
+        <enumerator name='NVDIMM_FWA_DISARM' value='1'/>
+      </enum-decl>
+      <pointer-type-def type-id='ec55eb74' size-in-bits='64' id='f1397309'/>
+      <pointer-type-def type-id='0ce27f37' size-in-bits='64' id='f1397bef'/>
+      <function-type size-in-bits='64' id='f139a2f0'>
+        <parameter type-id='572fbdca'/>
+        <parameter type-id='a72a4e27'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='f13a9afc'>
+        <parameter type-id='f5438ac7'/>
+        <parameter type-id='b29a990c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='87647851' size-in-bits='infinite' id='f13afa51'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='f83bf2cd' size-in-bits='64' id='f13b7179'/>
+      <qualified-type-def type-id='01c546da' const='yes' id='f1415d4d'/>
+      <pointer-type-def type-id='a7b38e12' size-in-bits='64' id='f14ddf44'/>
+      <class-decl name='usb_sg_request' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1915' column='1' id='f14efa5e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='status' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1916' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bytes' type-id='b59d7dce' visibility='default' filepath='include/linux/usb.h' line='1917' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/usb.h' line='1923' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dev' type-id='25e60cb2' visibility='default' filepath='include/linux/usb.h' line='1925' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='pipe' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1926' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='entries' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1928' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='urbs' type-id='db81fc08' visibility='default' filepath='include/linux/usb.h' line='1929' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='count' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1931' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='complete' type-id='f9fef04f' visibility='default' filepath='include/linux/usb.h' line='1932' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_writeback_connector' size-in-bits='16320' is-struct='yes' visibility='default' filepath='include/drm/drm_writeback.h' line='21' column='1' id='f14fc18d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='f02c18fa' visibility='default' filepath='include/drm/drm_writeback.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='14720'>
+          <var-decl name='encoder' type-id='d12f4a1d' visibility='default' filepath='include/drm/drm_writeback.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15680'>
+          <var-decl name='pixel_formats_blob_ptr' type-id='c4126d52' visibility='default' filepath='include/drm/drm_writeback.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15744'>
+          <var-decl name='job_lock' type-id='fb4018a0' visibility='default' filepath='include/drm/drm_writeback.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15808'>
+          <var-decl name='job_queue' type-id='72f469ec' visibility='default' filepath='include/drm/drm_writeback.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15936'>
+          <var-decl name='fence_context' type-id='f0981eeb' visibility='default' filepath='include/drm/drm_writeback.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='15968'>
+          <var-decl name='fence_lock' type-id='fb4018a0' visibility='default' filepath='include/drm/drm_writeback.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16000'>
+          <var-decl name='fence_seqno' type-id='7359adad' visibility='default' filepath='include/drm/drm_writeback.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16064'>
+          <var-decl name='timeline_name' type-id='16dc656a' visibility='default' filepath='include/drm/drm_writeback.h' line='84' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='d5526a99' size-in-bits='64' id='f1537b61'/>
+      <function-type size-in-bits='64' id='f154f192'>
+        <parameter type-id='ee27b7c6'/>
+        <parameter type-id='5b4bef1f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='f155b036'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='3c8a5f42'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='68595236' size-in-bits='64' id='f166bad0'/>
+      <pointer-type-def type-id='b297b72f' size-in-bits='64' id='f16bd93b'/>
+      <function-type size-in-bits='64' id='f16e9b99'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='6ab01e59'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='uid_gid_map' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/user_namespace.h' line='24' column='1' id='f179bf1b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nr_extents' type-id='19c2251e' visibility='default' filepath='include/linux/user_namespace.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab650' visibility='default' filepath='include/linux/user_namespace.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c96d591d' size-in-bits='64' id='f1825e09'/>
+      <class-decl name='v4l2_device' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/media/v4l2-device.h' line='47' column='1' id='f1828bdc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/media/v4l2-device.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mdev' type-id='e2929c1c' visibility='default' filepath='include/media/v4l2-device.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='subdevs' type-id='72f469ec' visibility='default' filepath='include/media/v4l2-device.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/media/v4l2-device.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='name' type-id='16e6f2c6' visibility='default' filepath='include/media/v4l2-device.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='notify' type-id='9f5eb43a' visibility='default' filepath='include/media/v4l2-device.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='ctrl_handler' type-id='2b59fa5e' visibility='default' filepath='include/media/v4l2-device.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='prio' type-id='281d3096' visibility='default' filepath='include/media/v4l2-device.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='ref' type-id='400fb07b' visibility='default' filepath='include/media/v4l2-device.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='release' type-id='8dfbe74f' visibility='default' filepath='include/media/v4l2-device.h' line='58' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='14eafad2' size-in-bits='64' id='f18a987c'/>
+      <function-type size-in-bits='64' id='f18c6e1f'>
+        <parameter type-id='12f283a5'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d299a9b0' size-in-bits='64' id='f191792a'/>
+      <class-decl name='rw_semaphore' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/rwsem.h' line='49' column='1' id='f19fdb93'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='f22a8abb' visibility='default' filepath='include/linux/rwsem.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='owner' type-id='f22a8abb' visibility='default' filepath='include/linux/rwsem.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='osq' type-id='0c3105cd' visibility='default' filepath='include/linux/rwsem.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='wait_lock' type-id='f5c90b3f' visibility='default' filepath='include/linux/rwsem.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='wait_list' type-id='72f469ec' visibility='default' filepath='include/linux/rwsem.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/linux/rwsem.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_oem_data1' type-id='24a375b2' visibility='default' filepath='include/linux/rwsem.h' line='69' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='irq_common_data' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/irq.h' line='149' column='1' id='f1a268ec'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='state_use_accessors' type-id='f0981eeb' visibility='default' filepath='include/linux/irq.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='handler_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/irq.h' line='154' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='msi_desc' type-id='b11825ce' visibility='default' filepath='include/linux/irq.h' line='155' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='affinity' type-id='b16b461b' visibility='default' filepath='include/linux/irq.h' line='156' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='effective_affinity' type-id='b16b461b' visibility='default' filepath='include/linux/irq.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ipi_offset' type-id='f0981eeb' visibility='default' filepath='include/linux/irq.h' line='161' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='df_reason' filepath='drivers/dma-buf/heaps/deferred-free-helper.h' line='22' column='1' id='f1a65d97'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DF_NORMAL' value='0'/>
+        <enumerator name='DF_UNDER_PRESSURE' value='1'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='f1a922f0'>
+        <parameter type-id='bff05edb'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='1c63cc3f'/>
+        <return type-id='b59d7dce'/>
+      </function-type>
+      <pointer-type-def type-id='9ce849da' size-in-bits='64' id='f1ac64d0'/>
+      <pointer-type-def type-id='336dbe3c' size-in-bits='64' id='f1b37e8e'/>
+      <pointer-type-def type-id='db33b784' size-in-bits='64' id='f1b9224e'/>
+      <function-type size-in-bits='64' id='f1babf06'>
+        <parameter type-id='4db02c58'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='v4l2_input' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1650' column='1' id='f1bdbe5e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1651' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='name' type-id='7e67d89d' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1652' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1653' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='audioset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1654' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='tuner' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1655' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='std' type-id='692d176e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1656' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='status' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1657' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='capabilities' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1658' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='reserved' type-id='3fa05d14' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1659' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='51942024' size-in-bits='64' id='f1bf2356'/>
+      <pointer-type-def type-id='8816ddc1' size-in-bits='64' id='f1c1e0f9'/>
+      <function-type size-in-bits='64' id='f1c2900a'>
+        <parameter type-id='63a08bf7'/>
+        <parameter type-id='1a494567'/>
+        <parameter type-id='3eb7c31c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='824a7fd2' size-in-bits='64' id='f1c652ac'/>
+      <pointer-type-def type-id='3de312fc' size-in-bits='64' id='f1c95c76'/>
+      <pointer-type-def type-id='1027eea9' size-in-bits='64' id='f1dc7839'/>
+      <pointer-type-def type-id='783f5582' size-in-bits='64' id='f1e196e0'/>
+      <class-decl name='netdev_tc_txq' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='841' column='1' id='f1e1eb79'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='1dc6a898' visibility='default' filepath='include/linux/netdevice.h' line='842' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='offset' type-id='1dc6a898' visibility='default' filepath='include/linux/netdevice.h' line='843' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='ethtool_link_ext_substate_link_training' filepath='include/uapi/linux/ethtool.h' line='620' column='1' id='f1e6b980'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED' value='1'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT' value='2'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY' value='3'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT' value='4'/>
+      </enum-decl>
+      <class-decl name='vring_used_elem' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/virtio_ring.h' line='115' column='1' id='f1f6cfe9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='43ae9528' visibility='default' filepath='include/uapi/linux/virtio_ring.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='len' type-id='43ae9528' visibility='default' filepath='include/uapi/linux/virtio_ring.h' line='119' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='u_int64_t' type-id='91ce1af9' filepath='include/linux/types.h' line='108' column='1' id='f1f7b9a4'/>
+      <class-decl name='delayed_call' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/delayed_call.h' line='10' column='1' id='f1fbc58e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fn' type-id='b7f9d8e6' visibility='default' filepath='include/linux/delayed_call.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='arg' type-id='eaa32e2f' visibility='default' filepath='include/linux/delayed_call.h' line='12' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='a28355c2' size-in-bits='1408' id='f2003288'>
+        <subrange length='11' type-id='7ff19f0f' id='847bc017'/>
+      </array-type-def>
+      <class-decl name='tracer_opt' size-in-bits='128' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='479' column='1' id='f20168e6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='kernel/trace/trace.h' line='480' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bit' type-id='19c2251e' visibility='default' filepath='kernel/trace/trace.h' line='481' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='f20d48e8'>
+        <parameter type-id='63e6cf23'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='91ce1af9'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='dec44472' const='yes' id='f213bd85'/>
+      <function-type size-in-bits='64' id='f214de7d'>
+        <parameter type-id='5dbfcbb1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='arch_probe_insn' size-in-bits='256' is-struct='yes' visibility='default' filepath='arch/arm64/include/asm/probes.h' line='16' column='1' id='f21a6717'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='insn' type-id='0abee587' visibility='default' filepath='arch/arm64/include/asm/probes.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pstate_cc' type-id='452b34c2' visibility='default' filepath='arch/arm64/include/asm/probes.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='handler' type-id='0e87d404' visibility='default' filepath='arch/arm64/include/asm/probes.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='restore' type-id='7359adad' visibility='default' filepath='arch/arm64/include/asm/probes.h' line='21' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='f2207a6d'>
+        <parameter type-id='5dbfcbb1'/>
+        <return type-id='80f4b756'/>
+      </function-type>
+      <pointer-type-def type-id='b52da57b' size-in-bits='64' id='f22a42d7'/>
+      <typedef-decl name='atomic_long_t' type-id='28ee064c' filepath='include/linux/atomic/atomic-long.h' line='13' column='1' id='f22a8abb'/>
+      <function-type size-in-bits='64' id='f22acab5'>
+        <parameter type-id='89df2ee9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='5deff74c' size-in-bits='64' id='f22ace3a'/>
+      <pointer-type-def type-id='db1b9d9e' size-in-bits='64' id='f22e4524'/>
+      <enum-decl name='media_request_state' filepath='include/media/media-request.h' line='37' column='1' id='f22f33ac'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='MEDIA_REQUEST_STATE_IDLE' value='0'/>
+        <enumerator name='MEDIA_REQUEST_STATE_VALIDATING' value='1'/>
+        <enumerator name='MEDIA_REQUEST_STATE_QUEUED' value='2'/>
+        <enumerator name='MEDIA_REQUEST_STATE_COMPLETE' value='3'/>
+        <enumerator name='MEDIA_REQUEST_STATE_CLEANING' value='4'/>
+        <enumerator name='MEDIA_REQUEST_STATE_UPDATING' value='5'/>
+        <enumerator name='NR_OF_MEDIA_REQUEST_STATE' value='6'/>
+      </enum-decl>
+      <qualified-type-def type-id='17ffbd3e' const='yes' id='f23d64e3'/>
+      <pointer-type-def type-id='bc3f1924' size-in-bits='64' id='f23e2572'/>
+      <pointer-type-def type-id='19bef197' size-in-bits='64' id='f2428caf'/>
+      <class-decl name='update_util_data' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/sched/cpufreq.h' line='16' column='1' id='f24c165e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='func' type-id='2cd87b91' visibility='default' filepath='include/linux/sched/cpufreq.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='devfreq_stats' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/devfreq.h' line='129' column='1' id='f24c4d3e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='total_trans' type-id='f0981eeb' visibility='default' filepath='include/linux/devfreq.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='trans_table' type-id='807869d3' visibility='default' filepath='include/linux/devfreq.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='time_in_state' type-id='3df9fd28' visibility='default' filepath='include/linux/devfreq.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='last_update' type-id='91ce1af9' visibility='default' filepath='include/linux/devfreq.h' line='133' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e6814f11' size-in-bits='64' id='f24f1c45'/>
+      <pointer-type-def type-id='34684d4f' size-in-bits='64' id='f259b60b'/>
+      <class-decl name='devlink' size-in-bits='3328' is-struct='yes' visibility='default' filepath='include/net/devlink.h' line='34' column='1' id='f25bc2c4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='19c2251e' visibility='default' filepath='include/net/devlink.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='port_list' type-id='72f469ec' visibility='default' filepath='include/net/devlink.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='rate_list' type-id='72f469ec' visibility='default' filepath='include/net/devlink.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='sb_list' type-id='72f469ec' visibility='default' filepath='include/net/devlink.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='dpipe_table_list' type-id='72f469ec' visibility='default' filepath='include/net/devlink.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='resource_list' type-id='72f469ec' visibility='default' filepath='include/net/devlink.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='param_list' type-id='72f469ec' visibility='default' filepath='include/net/devlink.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='region_list' type-id='72f469ec' visibility='default' filepath='include/net/devlink.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='reporter_list' type-id='72f469ec' visibility='default' filepath='include/net/devlink.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='reporters_lock' type-id='925167dc' visibility='default' filepath='include/net/devlink.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='dpipe_headers' type-id='98dbe63c' visibility='default' filepath='include/net/devlink.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='trap_list' type-id='72f469ec' visibility='default' filepath='include/net/devlink.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='trap_group_list' type-id='72f469ec' visibility='default' filepath='include/net/devlink.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='trap_policer_list' type-id='72f469ec' visibility='default' filepath='include/net/devlink.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='ops' type-id='585f57ca' visibility='default' filepath='include/net/devlink.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='snapshot_ids' type-id='d39738ac' visibility='default' filepath='include/net/devlink.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='stats' type-id='72f47b7c' visibility='default' filepath='include/net/devlink.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/net/devlink.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='_net' type-id='c9df1e6c' visibility='default' filepath='include/net/devlink.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/net/devlink.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='reload_failed' type-id='f9b06939' visibility='default' filepath='include/net/devlink.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3009'>
+          <var-decl name='reload_enabled' type-id='f9b06939' visibility='default' filepath='include/net/devlink.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3040'>
+          <var-decl name='refcount' type-id='64615833' visibility='default' filepath='include/net/devlink.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='comp' type-id='f9fef04f' visibility='default' filepath='include/net/devlink.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='priv' type-id='e84913bd' visibility='default' filepath='include/net/devlink.h' line='61' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='aefe43a8' size-in-bits='64' id='f28039ea'/>
+      <qualified-type-def type-id='39486498' const='yes' id='f28519a1'/>
+      <pointer-type-def type-id='549dd8f4' size-in-bits='64' id='f28646d2'/>
+      <pointer-type-def type-id='5eee7900' size-in-bits='64' id='f28be472'/>
+      <pointer-type-def type-id='fb2d711b' size-in-bits='64' id='f28caf17'/>
+      <pointer-type-def type-id='893b3284' size-in-bits='64' id='f29648fe'/>
+      <class-decl name='sock_fprog_kern' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/filter.h' line='543' column='1' id='f29d9605'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='len' type-id='1dc6a898' visibility='default' filepath='include/linux/filter.h' line='544' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='filter' type-id='e1ea11f6' visibility='default' filepath='include/linux/filter.h' line='545' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='iov_iter' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/uio.h' line='36' column='1' id='f2b4d088'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='iter_type' type-id='f9b06939' visibility='default' filepath='include/linux/uio.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='nofault' type-id='b50a4934' visibility='default' filepath='include/linux/uio.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='data_source' type-id='b50a4934' visibility='default' filepath='include/linux/uio.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='iov_offset' type-id='b59d7dce' visibility='default' filepath='include/linux/uio.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='count' type-id='b59d7dce' visibility='default' filepath='include/linux/uio.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='' type-id='ac5ab64d' visibility='default' filepath='include/linux/uio.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='' type-id='ac5ab64e' visibility='default' filepath='include/linux/uio.h' line='49' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b5fdec5e' size-in-bits='64' id='f2bb3a9c'/>
+      <pointer-type-def type-id='d47d86c5' size-in-bits='64' id='f2bb73e9'/>
+      <function-type size-in-bits='64' id='f2c03b9b'>
+        <parameter type-id='3591079f'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='559d6206' size-in-bits='64' id='f2c18b44'/>
+      <pointer-type-def type-id='8d04d39b' size-in-bits='64' id='f2ccca1f'/>
+      <class-decl name='media_file_operations' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/media/media-devnode.h' line='47' column='1' id='f2ce689d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/media/media-devnode.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='read' type-id='4d8f5625' visibility='default' filepath='include/media/media-devnode.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='write' type-id='5f29549c' visibility='default' filepath='include/media/media-devnode.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='poll' type-id='4d01ede7' visibility='default' filepath='include/media/media-devnode.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ioctl' type-id='fc7daf55' visibility='default' filepath='include/media/media-devnode.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='compat_ioctl' type-id='fc7daf55' visibility='default' filepath='include/media/media-devnode.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='open' type-id='4da4101d' visibility='default' filepath='include/media/media-devnode.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='release' type-id='4da4101d' visibility='default' filepath='include/media/media-devnode.h' line='55' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mmc_host_ops' size-in-bits='1664' is-struct='yes' visibility='default' filepath='include/linux/mmc/host.h' line='118' column='1' id='f2d6d1c0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='post_req' type-id='d7f8a77a' visibility='default' filepath='include/linux/mmc/host.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pre_req' type-id='624a8813' visibility='default' filepath='include/linux/mmc/host.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='request' type-id='624a8813' visibility='default' filepath='include/linux/mmc/host.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='request_atomic' type-id='83cb8e80' visibility='default' filepath='include/linux/mmc/host.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='set_ios' type-id='589bddbf' visibility='default' filepath='include/linux/mmc/host.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='get_ro' type-id='e2d63f85' visibility='default' filepath='include/linux/mmc/host.h' line='158' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='get_cd' type-id='e2d63f85' visibility='default' filepath='include/linux/mmc/host.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='enable_sdio_irq' type-id='dacbc069' visibility='default' filepath='include/linux/mmc/host.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='ack_sdio_irq' type-id='fa3ed3a2' visibility='default' filepath='include/linux/mmc/host.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='init_card' type-id='287e3e50' visibility='default' filepath='include/linux/mmc/host.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='start_signal_voltage_switch' type-id='13636c34' visibility='default' filepath='include/linux/mmc/host.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='card_busy' type-id='e2d63f85' visibility='default' filepath='include/linux/mmc/host.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='execute_tuning' type-id='ebae9a6c' visibility='default' filepath='include/linux/mmc/host.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='prepare_hs400_tuning' type-id='13636c34' visibility='default' filepath='include/linux/mmc/host.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='execute_hs400_tuning' type-id='6847d33d' visibility='default' filepath='include/linux/mmc/host.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='hs400_prepare_ddr' type-id='e2d63f85' visibility='default' filepath='include/linux/mmc/host.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='hs400_downgrade' type-id='fa3ed3a2' visibility='default' filepath='include/linux/mmc/host.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='hs400_complete' type-id='fa3ed3a2' visibility='default' filepath='include/linux/mmc/host.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='hs400_enhanced_strobe' type-id='589bddbf' visibility='default' filepath='include/linux/mmc/host.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='select_drive_strength' type-id='981b2780' visibility='default' filepath='include/linux/mmc/host.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='hw_reset' type-id='fa3ed3a2' visibility='default' filepath='include/linux/mmc/host.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='card_event' type-id='fa3ed3a2' visibility='default' filepath='include/linux/mmc/host.h' line='207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='multi_io_quirk' type-id='78470542' visibility='default' filepath='include/linux/mmc/host.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='init_sd_express' type-id='13636c34' visibility='default' filepath='include/linux/mmc/host.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/mmc/host.h' line='219' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/mmc/host.h' line='220' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='f2dcb698'>
+        <parameter type-id='8898134d'/>
+        <parameter type-id='745b39e8'/>
+        <return type-id='4fb62cb0'/>
+      </function-type>
+      <class-decl name='perf_domain' size-in-bits='256' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='788' column='1' id='f2e22af7'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='em_pd' type-id='ce714046' visibility='default' filepath='kernel/sched/sched.h' line='789' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='next' type-id='30f9749f' visibility='default' filepath='kernel/sched/sched.h' line='790' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='kernel/sched/sched.h' line='791' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0bb075d8' size-in-bits='64' id='f2e3940a'/>
+      <class-decl name='timer_rand_state' is-struct='yes' visibility='default' is-declaration-only='yes' id='f308a7ce'/>
+      <pointer-type-def type-id='6f8d5f55' size-in-bits='64' id='f30dbff5'/>
+      <pointer-type-def type-id='8582e5ec' size-in-bits='64' id='f30fb6b2'/>
+      <class-decl name='dev_pm_info' size-in-bits='2752' is-struct='yes' visibility='default' filepath='include/linux/pm.h' line='569' column='1' id='f3166b6b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='power_state' type-id='08496218' visibility='default' filepath='include/linux/pm.h' line='570' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='can_wakeup' type-id='f0981eeb' visibility='default' filepath='include/linux/pm.h' line='571' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='33'>
+          <var-decl name='async_suspend' type-id='f0981eeb' visibility='default' filepath='include/linux/pm.h' line='572' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='34'>
+          <var-decl name='in_dpm_list' type-id='b50a4934' visibility='default' filepath='include/linux/pm.h' line='573' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='35'>
+          <var-decl name='is_prepared' type-id='b50a4934' visibility='default' filepath='include/linux/pm.h' line='574' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='36'>
+          <var-decl name='is_suspended' type-id='b50a4934' visibility='default' filepath='include/linux/pm.h' line='575' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='37'>
+          <var-decl name='is_noirq_suspended' type-id='b50a4934' visibility='default' filepath='include/linux/pm.h' line='576' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='38'>
+          <var-decl name='is_late_suspended' type-id='b50a4934' visibility='default' filepath='include/linux/pm.h' line='577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='39'>
+          <var-decl name='no_pm' type-id='b50a4934' visibility='default' filepath='include/linux/pm.h' line='578' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='early_init' type-id='b50a4934' visibility='default' filepath='include/linux/pm.h' line='579' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='41'>
+          <var-decl name='direct_complete' type-id='b50a4934' visibility='default' filepath='include/linux/pm.h' line='580' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='driver_flags' type-id='19c2251e' visibility='default' filepath='include/linux/pm.h' line='581' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/pm.h' line='582' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='entry' type-id='72f469ec' visibility='default' filepath='include/linux/pm.h' line='584' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='completion' type-id='f9fef04f' visibility='default' filepath='include/linux/pm.h' line='585' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='wakeup' type-id='1ea237a6' visibility='default' filepath='include/linux/pm.h' line='586' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='wakeup_path' type-id='b50a4934' visibility='default' filepath='include/linux/pm.h' line='587' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='577'>
+          <var-decl name='syscore' type-id='b50a4934' visibility='default' filepath='include/linux/pm.h' line='588' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='578'>
+          <var-decl name='no_pm_callbacks' type-id='b50a4934' visibility='default' filepath='include/linux/pm.h' line='589' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='579'>
+          <var-decl name='must_resume' type-id='f0981eeb' visibility='default' filepath='include/linux/pm.h' line='590' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='580'>
+          <var-decl name='may_skip_resume' type-id='f0981eeb' visibility='default' filepath='include/linux/pm.h' line='591' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='suspend_timer' type-id='b6993efc' visibility='default' filepath='include/linux/pm.h' line='596' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='timer_expires' type-id='91ce1af9' visibility='default' filepath='include/linux/pm.h' line='597' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/linux/pm.h' line='598' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='wait_queue' type-id='b5ab048f' visibility='default' filepath='include/linux/pm.h' line='599' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='wakeirq' type-id='303e01fa' visibility='default' filepath='include/linux/pm.h' line='600' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='usage_count' type-id='49178f86' visibility='default' filepath='include/linux/pm.h' line='601' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1952'>
+          <var-decl name='child_count' type-id='49178f86' visibility='default' filepath='include/linux/pm.h' line='602' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='disable_depth' type-id='f0981eeb' visibility='default' filepath='include/linux/pm.h' line='603' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1987'>
+          <var-decl name='idle_notification' type-id='f0981eeb' visibility='default' filepath='include/linux/pm.h' line='604' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1988'>
+          <var-decl name='request_pending' type-id='f0981eeb' visibility='default' filepath='include/linux/pm.h' line='605' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1989'>
+          <var-decl name='deferred_resume' type-id='f0981eeb' visibility='default' filepath='include/linux/pm.h' line='606' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1990'>
+          <var-decl name='needs_force_resume' type-id='f0981eeb' visibility='default' filepath='include/linux/pm.h' line='607' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1991'>
+          <var-decl name='runtime_auto' type-id='f0981eeb' visibility='default' filepath='include/linux/pm.h' line='608' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1992'>
+          <var-decl name='ignore_children' type-id='b50a4934' visibility='default' filepath='include/linux/pm.h' line='609' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1993'>
+          <var-decl name='no_callbacks' type-id='f0981eeb' visibility='default' filepath='include/linux/pm.h' line='610' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1994'>
+          <var-decl name='irq_safe' type-id='f0981eeb' visibility='default' filepath='include/linux/pm.h' line='611' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1995'>
+          <var-decl name='use_autosuspend' type-id='f0981eeb' visibility='default' filepath='include/linux/pm.h' line='612' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1996'>
+          <var-decl name='timer_autosuspends' type-id='f0981eeb' visibility='default' filepath='include/linux/pm.h' line='613' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1997'>
+          <var-decl name='memalloc_noio' type-id='f0981eeb' visibility='default' filepath='include/linux/pm.h' line='614' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2016'>
+          <var-decl name='links_count' type-id='f0981eeb' visibility='default' filepath='include/linux/pm.h' line='615' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='request' type-id='2418515b' visibility='default' filepath='include/linux/pm.h' line='616' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2080'>
+          <var-decl name='runtime_status' type-id='3c1b7fd8' visibility='default' filepath='include/linux/pm.h' line='617' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='runtime_error' type-id='95e97e5e' visibility='default' filepath='include/linux/pm.h' line='618' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2144'>
+          <var-decl name='autosuspend_delay' type-id='95e97e5e' visibility='default' filepath='include/linux/pm.h' line='619' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='last_busy' type-id='91ce1af9' visibility='default' filepath='include/linux/pm.h' line='620' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='active_time' type-id='91ce1af9' visibility='default' filepath='include/linux/pm.h' line='621' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='suspended_time' type-id='91ce1af9' visibility='default' filepath='include/linux/pm.h' line='622' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='accounting_timestamp' type-id='91ce1af9' visibility='default' filepath='include/linux/pm.h' line='623' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='subsys_data' type-id='77415389' visibility='default' filepath='include/linux/pm.h' line='625' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='set_latency_tolerance' type-id='c3d2558f' visibility='default' filepath='include/linux/pm.h' line='626' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='qos' type-id='b991f562' visibility='default' filepath='include/linux/pm.h' line='627' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/pm.h' line='629' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/pm.h' line='630' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='09f4a16d' size-in-bits='64' id='f319e2c5'/>
+      <class-decl name='mtd_part' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/mtd/mtd.h' line='211' column='1' id='f31c3b24'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/mtd/mtd.h' line='212' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='offset' type-id='91ce1af9' visibility='default' filepath='include/linux/mtd/mtd.h' line='213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='size' type-id='91ce1af9' visibility='default' filepath='include/linux/mtd/mtd.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/linux/mtd/mtd.h' line='215' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='bbbc6c1e' size-in-bits='64' id='f3207f74'/>
+      <pointer-type-def type-id='b754514f' size-in-bits='64' id='f32120a7'/>
+      <class-decl name='cec_data' size-in-bits='2240' is-struct='yes' visibility='default' filepath='include/media/cec.h' line='64' column='1' id='f3287987'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/media/cec.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='xfer_list' type-id='72f469ec' visibility='default' filepath='include/media/cec.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='adap' type-id='b94a2f7c' visibility='default' filepath='include/media/cec.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='msg' type-id='488c1da8' visibility='default' filepath='include/media/cec.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='fh' type-id='3ef2bf11' visibility='default' filepath='include/media/cec.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='work' type-id='5ad6e0ef' visibility='default' filepath='include/media/cec.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='c' type-id='f9fef04f' visibility='default' filepath='include/media/cec.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='attempts' type-id='f9b06939' visibility='default' filepath='include/media/cec.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2184'>
+          <var-decl name='blocking' type-id='b50a4934' visibility='default' filepath='include/media/cec.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2192'>
+          <var-decl name='completed' type-id='b50a4934' visibility='default' filepath='include/media/cec.h' line='74' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='6436b4bb' const='yes' id='f3312abc'/>
+      <pointer-type-def type-id='c6ac2bb1' size-in-bits='64' id='f33ad58d'/>
+      <function-type size-in-bits='64' id='f3404a83'>
+        <parameter type-id='85196e3f'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='seq_file' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/linux/seq_file.h' line='16' column='1' id='f3415517'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='buf' type-id='26a90f95' visibility='default' filepath='include/linux/seq_file.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='include/linux/seq_file.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='from' type-id='b59d7dce' visibility='default' filepath='include/linux/seq_file.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='count' type-id='b59d7dce' visibility='default' filepath='include/linux/seq_file.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='pad_until' type-id='b59d7dce' visibility='default' filepath='include/linux/seq_file.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='index' type-id='69bf7bee' visibility='default' filepath='include/linux/seq_file.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='read_pos' type-id='69bf7bee' visibility='default' filepath='include/linux/seq_file.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/linux/seq_file.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='op' type-id='943a1b48' visibility='default' filepath='include/linux/seq_file.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='poll_event' type-id='95e97e5e' visibility='default' filepath='include/linux/seq_file.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='file' type-id='5d92c9e0' visibility='default' filepath='include/linux/seq_file.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='private' type-id='eaa32e2f' visibility='default' filepath='include/linux/seq_file.h' line='28' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='f347e46a'>
+        <parameter type-id='fb1092f1'/>
+        <parameter type-id='7e666abe'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='41cb24b3' size-in-bits='64' id='f3496bd3'/>
+      <pointer-type-def type-id='5329c4da' size-in-bits='64' id='f34c7de4'/>
+      <pointer-type-def type-id='4b8eb833' size-in-bits='64' id='f34cc61f'/>
+      <pointer-type-def type-id='f8d99df1' size-in-bits='64' id='f350dc99'/>
+      <class-decl name='sd_ext_reg' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/mmc/card.h' line='196' column='1' id='f3638abb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fno' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='page' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='offset' type-id='1dc6a898' visibility='default' filepath='include/linux/mmc/card.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='rev' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='feature_enabled' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='201' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='feature_support' type-id='f9b06939' visibility='default' filepath='include/linux/mmc/card.h' line='202' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5948074d' size-in-bits='64' id='f363a725'/>
+      <pointer-type-def type-id='ba7e96f2' size-in-bits='64' id='f371c6c4'/>
+      <class-decl name='utp_upiu_req' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='73' column='1' id='f3866749'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='header' type-id='b010cb22' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='' type-id='ac5ab616' visibility='default' filepath='include/uapi/scsi/scsi_bsg_ufs.h' line='75' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='5dc99a0e' size-in-bits='64' id='f38728c0'/>
+      <pointer-type-def type-id='442b8d89' size-in-bits='64' id='f38ff799'/>
+      <class-decl name='hci_conn_hash' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='123' column='1' id='f39496ab'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='acl_num' type-id='f0981eeb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='amp_num' type-id='f0981eeb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sco_num' type-id='f0981eeb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='le_num' type-id='f0981eeb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='le_num_peripheral' type-id='f0981eeb' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='129' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='mdio_device' size-in-bits='8064' is-struct='yes' visibility='default' filepath='include/linux/mdio.h' line='34' column='1' id='f3a32dbb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/mdio.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7296'>
+          <var-decl name='bus' type-id='ff47b24b' visibility='default' filepath='include/linux/mdio.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7360'>
+          <var-decl name='modalias' type-id='16dc656a' visibility='default' filepath='include/linux/mdio.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7616'>
+          <var-decl name='bus_match' type-id='2f28f04c' visibility='default' filepath='include/linux/mdio.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7680'>
+          <var-decl name='device_free' type-id='a5490056' visibility='default' filepath='include/linux/mdio.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7744'>
+          <var-decl name='device_remove' type-id='a5490056' visibility='default' filepath='include/linux/mdio.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='addr' type-id='95e97e5e' visibility='default' filepath='include/linux/mdio.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7840'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/linux/mdio.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='reset_gpio' type-id='26760480' visibility='default' filepath='include/linux/mdio.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='reset_ctrl' type-id='9f9b8114' visibility='default' filepath='include/linux/mdio.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='reset_assert_delay' type-id='f0981eeb' visibility='default' filepath='include/linux/mdio.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8032'>
+          <var-decl name='reset_deassert_delay' type-id='f0981eeb' visibility='default' filepath='include/linux/mdio.h' line='50' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='74fec388' size-in-bits='64' id='f3a5c46a'/>
+      <function-type size-in-bits='64' id='f3a60343'>
+        <parameter type-id='3ab7d422'/>
+        <parameter type-id='ab85b8f2'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='rc_scancode_filter' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/media/rc-core.h' line='38' column='1' id='f3a6417e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='data' type-id='19c2251e' visibility='default' filepath='include/media/rc-core.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='mask' type-id='19c2251e' visibility='default' filepath='include/media/rc-core.h' line='40' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='iova' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/iova.h' line='19' column='1' id='f3a719f4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='2a8a6332' visibility='default' filepath='include/linux/iova.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pfn_hi' type-id='7359adad' visibility='default' filepath='include/linux/iova.h' line='21' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='pfn_lo' type-id='7359adad' visibility='default' filepath='include/linux/iova.h' line='22' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_subdev_mbus_code_enum' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='85' column='1' id='f3aba577'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pad' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='index' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='code' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='which' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='reserved' type-id='3faaea70' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='91' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2cd7c576' size-in-bits='64' id='f3abafd4'/>
+      <class-decl name='geni_se' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/qcom-geni-se.h' line='64' column='1' id='f3af05c1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='eaa32e2f' visibility='default' filepath='include/linux/qcom-geni-se.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/qcom-geni-se.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='wrapper' type-id='b3550926' visibility='default' filepath='include/linux/qcom-geni-se.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='clk' type-id='7d0bc0eb' visibility='default' filepath='include/linux/qcom-geni-se.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='num_clk_levels' type-id='f0981eeb' visibility='default' filepath='include/linux/qcom-geni-se.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='clk_perf_tbl' type-id='1d2c2b85' visibility='default' filepath='include/linux/qcom-geni-se.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='icc_paths' type-id='99f86d6d' visibility='default' filepath='include/linux/qcom-geni-se.h' line='71' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='23446945' size-in-bits='64' id='f3b1f9bd'/>
+      <pointer-type-def type-id='a3119fea' size-in-bits='64' id='f3b4aca8'/>
+      <pointer-type-def type-id='91265862' size-in-bits='64' id='f3bd9244'/>
+      <qualified-type-def type-id='dccc7677' const='yes' id='f3cb01e4'/>
+      <function-type size-in-bits='64' id='f3cd5712'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='67681d50'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='b4f14516' size-in-bits='64' id='f3cdf15c'/>
+      <class-decl name='core_thread' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/mm_types.h' line='437' column='1' id='f3d147c3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='task' type-id='f23e2572' visibility='default' filepath='include/linux/mm_types.h' line='438' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='next' type-id='740b5503' visibility='default' filepath='include/linux/mm_types.h' line='439' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='46af63cb' size-in-bits='64' id='f3d2e9a7'/>
+      <function-type size-in-bits='64' id='f3d7314b'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='bf742373'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <enum-decl name='flow_action_hw_stats' filepath='include/net/flow_offload.h' line='175' column='1' id='f3dc198d'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='FLOW_ACTION_HW_STATS_IMMEDIATE' value='1'/>
+        <enumerator name='FLOW_ACTION_HW_STATS_DELAYED' value='2'/>
+        <enumerator name='FLOW_ACTION_HW_STATS_ANY' value='3'/>
+        <enumerator name='FLOW_ACTION_HW_STATS_DISABLED' value='4'/>
+        <enumerator name='FLOW_ACTION_HW_STATS_DONT_CARE' value='7'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='f3dc294f'>
+        <parameter type-id='74d89ebd'/>
+        <parameter type-id='e3dd029e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='8b6491f4' size-in-bits='64' id='f3dcd492'/>
+      <function-type size-in-bits='64' id='f3dd5585'>
+        <parameter type-id='18d76f87'/>
+        <parameter type-id='18d76f87'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='xt_counters' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/netfilter/x_tables.h' line='110' column='1' id='f3def31b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pcnt' type-id='d3130597' visibility='default' filepath='include/uapi/linux/netfilter/x_tables.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bcnt' type-id='d3130597' visibility='default' filepath='include/uapi/linux/netfilter/x_tables.h' line='111' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='bio' size-in-bits='1280' is-struct='yes' visibility='default' filepath='include/linux/blk_types.h' line='221' column='1' id='f3e87129'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bi_next' type-id='fb55efa1' visibility='default' filepath='include/linux/blk_types.h' line='222' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bi_bdev' type-id='b88dd945' visibility='default' filepath='include/linux/blk_types.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='bi_opf' type-id='f0981eeb' visibility='default' filepath='include/linux/blk_types.h' line='224' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='bi_flags' type-id='8efea9e5' visibility='default' filepath='include/linux/blk_types.h' line='227' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='bi_ioprio' type-id='8efea9e5' visibility='default' filepath='include/linux/blk_types.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bi_write_hint' type-id='8efea9e5' visibility='default' filepath='include/linux/blk_types.h' line='229' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='bi_status' type-id='f4e2facd' visibility='default' filepath='include/linux/blk_types.h' line='230' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='__bi_remaining' type-id='49178f86' visibility='default' filepath='include/linux/blk_types.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='bi_iter' type-id='9e0198d8' visibility='default' filepath='include/linux/blk_types.h' line='233' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='bi_end_io' type-id='8213bb9f' visibility='default' filepath='include/linux/blk_types.h' line='235' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='bi_private' type-id='eaa32e2f' visibility='default' filepath='include/linux/blk_types.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='bi_blkg' type-id='1146dea3' visibility='default' filepath='include/linux/blk_types.h' line='245' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='bi_issue' type-id='a9b0f4f1' visibility='default' filepath='include/linux/blk_types.h' line='246' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='bi_iocost_cost' type-id='91ce1af9' visibility='default' filepath='include/linux/blk_types.h' line='248' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='bi_crypt_context' type-id='9d1360ce' visibility='default' filepath='include/linux/blk_types.h' line='253' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='bi_skip_dm_default_key' type-id='b50a4934' visibility='default' filepath='include/linux/blk_types.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='840'>
+          <var-decl name='' type-id='ac5ab5e2' visibility='default' filepath='include/linux/blk_types.h' line='259' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='848'>
+          <var-decl name='bi_vcnt' type-id='8efea9e5' visibility='default' filepath='include/linux/blk_types.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='bi_max_vecs' type-id='8efea9e5' visibility='default' filepath='include/linux/blk_types.h' line='271' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='__bi_cnt' type-id='49178f86' visibility='default' filepath='include/linux/blk_types.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='bi_io_vec' type-id='cddcb53e' visibility='default' filepath='include/linux/blk_types.h' line='275' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='bi_pool' type-id='38b1e3a0' visibility='default' filepath='include/linux/blk_types.h' line='277' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='android_oem_data1' type-id='91ce1af9' visibility='default' filepath='include/linux/blk_types.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/blk_types.h' line='280' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/blk_types.h' line='281' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='bi_inline_vecs' type-id='7289e834' visibility='default' filepath='include/linux/blk_types.h' line='288' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f962dd87' size-in-bits='64' id='f3e878cb'/>
+      <pointer-type-def type-id='5ba85b48' size-in-bits='64' id='f3f22912'/>
+      <function-type size-in-bits='64' id='f3f27ff7'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='6dca061b'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='12c1f7e1'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='f3f76d11'>
+        <parameter type-id='226853d2'/>
+        <parameter type-id='f9b37274'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <class-decl name='fs_parameter' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/fs_context.h' line='63' column='1' id='f3f97f82'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='key' type-id='80f4b756' visibility='default' filepath='include/linux/fs_context.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='type' type-id='7f8e7476' visibility='default' filepath='include/linux/fs_context.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='' type-id='ac5ab667' visibility='default' filepath='include/linux/fs_context.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='size' type-id='b59d7dce' visibility='default' filepath='include/linux/fs_context.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dirfd' type-id='95e97e5e' visibility='default' filepath='include/linux/fs_context.h' line='73' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f5dd710b' size-in-bits='64' id='f40bec0f'/>
+      <class-decl name='ethtool_rmon_hist_range' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/ethtool.h' line='361' column='1' id='f40f8242'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='low' type-id='1dc6a898' visibility='default' filepath='include/linux/ethtool.h' line='362' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='high' type-id='1dc6a898' visibility='default' filepath='include/linux/ethtool.h' line='363' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='78a133c2' size-in-bits='64' id='f41331a9'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='51afda40' size-in-bits='64' id='f417f836'/>
+      <pointer-type-def type-id='f66244c3' size-in-bits='64' id='f418ceb3'/>
+      <pointer-type-def type-id='b62ee7e2' size-in-bits='64' id='f41a0030'/>
+      <pointer-type-def type-id='70a1a668' size-in-bits='64' id='f428336a'/>
+      <pointer-type-def type-id='d843c93e' size-in-bits='64' id='f42e15b8'/>
+      <pointer-type-def type-id='a45265de' size-in-bits='64' id='f4306620'/>
+      <function-type size-in-bits='64' id='f4398a06'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='aded214c'/>
+        <parameter type-id='bbaf3419'/>
+        <parameter type-id='19272f09'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7f2c5e96' size-in-bits='64' id='f43a2d4c'/>
+      <function-type size-in-bits='64' id='f43da4de'>
+        <parameter type-id='4db02c58'/>
+        <parameter type-id='249ef586'/>
+        <parameter type-id='26ea5d4c'/>
+        <parameter type-id='9c313c2d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='e7f44048' size-in-bits='infinite' id='f443352a'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='d01c7b8b' size-in-bits='64' id='f44dbedf'/>
+      <function-type size-in-bits='64' id='f45624e0'>
+        <parameter type-id='00cf0c80'/>
+        <parameter type-id='f06adae0'/>
+        <parameter type-id='73a11e20'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='596e4a77' size-in-bits='64' id='f456402b'/>
+      <class-decl name='fwnode_operations' size-in-bits='1152' is-struct='yes' visibility='default' filepath='include/linux/fwnode.h' line='114' column='1' id='f45a6a89'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='get' type-id='e3a3f61a' visibility='default' filepath='include/linux/fwnode.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='put' type-id='c379ce2c' visibility='default' filepath='include/linux/fwnode.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='device_is_available' type-id='e4913062' visibility='default' filepath='include/linux/fwnode.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='device_get_match_data' type-id='def135ae' visibility='default' filepath='include/linux/fwnode.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='property_present' type-id='a9ee1319' visibility='default' filepath='include/linux/fwnode.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='property_read_int_array' type-id='15f6292e' visibility='default' filepath='include/linux/fwnode.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='property_read_string_array' type-id='841b4311' visibility='default' filepath='include/linux/fwnode.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='get_name' type-id='67f66cfc' visibility='default' filepath='include/linux/fwnode.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='get_name_prefix' type-id='67f66cfc' visibility='default' filepath='include/linux/fwnode.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='get_parent' type-id='e9910ceb' visibility='default' filepath='include/linux/fwnode.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='get_next_child_node' type-id='900dcb03' visibility='default' filepath='include/linux/fwnode.h' line='134' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='get_named_child_node' type-id='c297681a' visibility='default' filepath='include/linux/fwnode.h' line='137' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='get_reference_args' type-id='4324a0e5' visibility='default' filepath='include/linux/fwnode.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='graph_get_next_endpoint' type-id='900dcb03' visibility='default' filepath='include/linux/fwnode.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='graph_get_remote_endpoint' type-id='e9910ceb' visibility='default' filepath='include/linux/fwnode.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='graph_get_port_parent' type-id='e3a3f61a' visibility='default' filepath='include/linux/fwnode.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='graph_parse_endpoint' type-id='bde527e9' visibility='default' filepath='include/linux/fwnode.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='add_links' type-id='4ed302fd' visibility='default' filepath='include/linux/fwnode.h' line='152' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='be90799d' size-in-bits='64' id='f45e1d71'/>
+      <pointer-type-def type-id='28b68df7' size-in-bits='64' id='f46152e7'/>
+      <pointer-type-def type-id='17dad7c5' size-in-bits='64' id='f4617859'/>
+      <pointer-type-def type-id='6a7d16bb' size-in-bits='64' id='f461c050'/>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='256' id='f46d9f4d'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <pointer-type-def type-id='8a70282a' size-in-bits='64' id='f471a8cc'/>
+      <function-type size-in-bits='64' id='f4753d8e'>
+        <parameter type-id='da363123'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='8e9eec3c' size-in-bits='64' id='f48b73f6'/>
+      <pointer-type-def type-id='952318a7' size-in-bits='64' id='f494f293'/>
+      <pointer-type-def type-id='b0922992' size-in-bits='64' id='f49825dc'/>
+      <pointer-type-def type-id='8681f81c' size-in-bits='64' id='f499bd02'/>
+      <pointer-type-def type-id='40ea9ac1' size-in-bits='64' id='f4a67529'/>
+      <pointer-type-def type-id='cc85da13' size-in-bits='64' id='f4b0728f'/>
+      <class-decl name='old_timespec32' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/vdso/time32.h' line='7' column='1' id='f4b65c68'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tv_sec' type-id='5d60da55' visibility='default' filepath='include/vdso/time32.h' line='8' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='tv_nsec' type-id='a7832498' visibility='default' filepath='include/vdso/time32.h' line='9' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='sk_psock_work_state' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/skmsg.h' line='74' column='1' id='f4baf142'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='skb' type-id='0fbf3cfd' visibility='default' filepath='include/linux/skmsg.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='len' type-id='19c2251e' visibility='default' filepath='include/linux/skmsg.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='off' type-id='19c2251e' visibility='default' filepath='include/linux/skmsg.h' line='77' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0aade30f' size-in-bits='64' id='f4bc933f'/>
+      <function-type size-in-bits='64' id='f4bdc973'>
+        <parameter type-id='fc4f83c1'/>
+        <parameter type-id='15adb516'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='v4l2_subdev_selection' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='167' column='1' id='f4c2725e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='which' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pad' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='target' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='r' type-id='3dbd4e78' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='reserved' type-id='7f84eb57' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='173' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_usb_audio' size-in-bits='3392' is-struct='yes' visibility='default' filepath='sound/usb/usbaudio.h' line='26' column='1' id='f4c3b244'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='95e97e5e' visibility='default' filepath='sound/usb/usbaudio.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='25e60cb2' visibility='default' filepath='sound/usb/usbaudio.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='card' type-id='52704eb7' visibility='default' filepath='sound/usb/usbaudio.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='intf' type-id='37d8fbe4' visibility='default' filepath='sound/usb/usbaudio.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='usb_id' type-id='19c2251e' visibility='default' filepath='sound/usb/usbaudio.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='quirk_type' type-id='149c6638' visibility='default' filepath='sound/usb/usbaudio.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='sound/usb/usbaudio.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='system_suspend' type-id='f0981eeb' visibility='default' filepath='sound/usb/usbaudio.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1696'>
+          <var-decl name='active' type-id='49178f86' visibility='default' filepath='sound/usb/usbaudio.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='shutdown' type-id='49178f86' visibility='default' filepath='sound/usb/usbaudio.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1760'>
+          <var-decl name='usage_count' type-id='49178f86' visibility='default' filepath='sound/usb/usbaudio.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='shutdown_wait' type-id='b5ab048f' visibility='default' filepath='sound/usb/usbaudio.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='quirk_flags' type-id='f0981eeb' visibility='default' filepath='sound/usb/usbaudio.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2016'>
+          <var-decl name='need_delayed_register' type-id='f0981eeb' visibility='default' filepath='sound/usb/usbaudio.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='num_interfaces' type-id='95e97e5e' visibility='default' filepath='sound/usb/usbaudio.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2080'>
+          <var-decl name='num_suspended_intf' type-id='95e97e5e' visibility='default' filepath='sound/usb/usbaudio.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='sample_rate_read_error' type-id='95e97e5e' visibility='default' filepath='sound/usb/usbaudio.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2144'>
+          <var-decl name='badd_profile' type-id='95e97e5e' visibility='default' filepath='sound/usb/usbaudio.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='pcm_list' type-id='72f469ec' visibility='default' filepath='sound/usb/usbaudio.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='ep_list' type-id='72f469ec' visibility='default' filepath='sound/usb/usbaudio.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='iface_ref_list' type-id='72f469ec' visibility='default' filepath='sound/usb/usbaudio.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='pcm_devs' type-id='95e97e5e' visibility='default' filepath='sound/usb/usbaudio.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='midi_list' type-id='72f469ec' visibility='default' filepath='sound/usb/usbaudio.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='mixer_list' type-id='72f469ec' visibility='default' filepath='sound/usb/usbaudio.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='setup' type-id='95e97e5e' visibility='default' filepath='sound/usb/usbaudio.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2912'>
+          <var-decl name='generic_implicit_fb' type-id='b50a4934' visibility='default' filepath='sound/usb/usbaudio.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2920'>
+          <var-decl name='autoclock' type-id='b50a4934' visibility='default' filepath='sound/usb/usbaudio.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2928'>
+          <var-decl name='lowlatency' type-id='b50a4934' visibility='default' filepath='sound/usb/usbaudio.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='ctrl_intf' type-id='2ac920d2' visibility='default' filepath='sound/usb/usbaudio.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='media_dev' type-id='e2929c1c' visibility='default' filepath='sound/usb/usbaudio.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='ctl_intf_media_devnode' type-id='8114c6c9' visibility='default' filepath='sound/usb/usbaudio.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='sound/usb/usbaudio.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='sound/usb/usbaudio.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='sound/usb/usbaudio.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='sound/usb/usbaudio.h' line='68' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ebce8e86' size-in-bits='64' id='f4c3bb4c'/>
+      <pointer-type-def type-id='43c38462' size-in-bits='64' id='f4c93d58'/>
+      <pointer-type-def type-id='2e07b22a' size-in-bits='64' id='f4ce54c4'/>
+      <class-decl name='mii_timestamper' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/mii_timestamper.h' line='46' column='1' id='f4d09092'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rxtstamp' type-id='aa864a19' visibility='default' filepath='include/linux/mii_timestamper.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='txtstamp' type-id='d5349744' visibility='default' filepath='include/linux/mii_timestamper.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='hwtstamp' type-id='aff7eed9' visibility='default' filepath='include/linux/mii_timestamper.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='link_state' type-id='7a3f8d35' visibility='default' filepath='include/linux/mii_timestamper.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ts_info' type-id='82bcf576' visibility='default' filepath='include/linux/mii_timestamper.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='device' type-id='fa0b179b' visibility='default' filepath='include/linux/mii_timestamper.h' line='62' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='85832c21' size-in-bits='64' id='f4dd5cc5'/>
+      <typedef-decl name='blk_status_t' type-id='f9b06939' filepath='include/linux/blk_types.h' line='76' column='1' id='f4e2facd'/>
+      <pointer-type-def type-id='0edcffa5' size-in-bits='64' id='f4e64e1d'/>
+      <pointer-type-def type-id='78b081ff' size-in-bits='64' id='f4ef52eb'/>
+      <class-decl name='rpmsg_endpoint' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/rpmsg.h' line='105' column='1' id='f4f25674'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rpdev' type-id='41ebc58b' visibility='default' filepath='include/linux/rpmsg.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='refcount' type-id='400fb07b' visibility='default' filepath='include/linux/rpmsg.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cb' type-id='f0966175' visibility='default' filepath='include/linux/rpmsg.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cb_lock' type-id='925167dc' visibility='default' filepath='include/linux/rpmsg.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='sig_cb' type-id='646ceeb7' visibility='default' filepath='include/linux/rpmsg.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='rx_done' type-id='b50a4934' visibility='default' filepath='include/linux/rpmsg.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='addr' type-id='19c2251e' visibility='default' filepath='include/linux/rpmsg.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/rpmsg.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='ops' type-id='50233074' visibility='default' filepath='include/linux/rpmsg.h' line='115' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='5e2a7612' const='yes' id='f4f3224f'/>
+      <pointer-type-def type-id='10143522' size-in-bits='64' id='f4f46ed0'/>
+      <pointer-type-def type-id='8852d0d2' size-in-bits='64' id='f4f5b664'/>
+      <class-decl name='xhci_stream_info' size-in-bits='512' is-struct='yes' visibility='default' filepath='drivers/usb/host/xhci.h' line='851' column='1' id='f4fc11c3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='stream_rings' type-id='d5c806f4' visibility='default' filepath='drivers/usb/host/xhci.h' line='852' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='num_streams' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='854' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='stream_ctx_array' type-id='f0bcc466' visibility='default' filepath='drivers/usb/host/xhci.h' line='858' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='num_stream_ctxs' type-id='f0981eeb' visibility='default' filepath='drivers/usb/host/xhci.h' line='859' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ctx_array_dma' type-id='cf29c9b3' visibility='default' filepath='drivers/usb/host/xhci.h' line='860' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='trb_address_map' type-id='d39738ac' visibility='default' filepath='drivers/usb/host/xhci.h' line='862' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='free_streams_command' type-id='5a32bd4b' visibility='default' filepath='drivers/usb/host/xhci.h' line='863' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='142d8eca' const='yes' id='f508b3a9'/>
+      <pointer-type-def type-id='643400ce' size-in-bits='64' id='f517dc88'/>
+      <function-type size-in-bits='64' id='f51d2b61'>
+        <parameter type-id='b2fa31d6'/>
+        <parameter type-id='a53db4f5'/>
+        <return type-id='c9042c89'/>
+      </function-type>
+      <class-decl name='v4l2_mbus_frame_desc_entry' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/media/v4l2-subdev.h' line='339' column='1' id='f51d9e86'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='97a0eabc' visibility='default' filepath='include/media/v4l2-subdev.h' line='340' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pixelcode' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-subdev.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='length' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-subdev.h' line='342' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='f5213d9b'>
+        <parameter type-id='49a58c0c'/>
+        <parameter type-id='c23646a3'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='xfrm_state_offload' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/xfrm.h' line='129' column='1' id='f5284c72'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/net/xfrm.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='real_dev' type-id='68a2d05b' visibility='default' filepath='include/net/xfrm.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='offload_handle' type-id='7359adad' visibility='default' filepath='include/net/xfrm.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='num_exthdrs' type-id='f0981eeb' visibility='default' filepath='include/net/xfrm.h' line='133' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='134' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='22e2cc39' size-in-bits='64' id='f5292d81'/>
+      <class-decl name='ipstats_mib' size-in-bits='2368' is-struct='yes' visibility='default' filepath='include/net/snmp.h' line='51' column='1' id='f52a1ce8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mibs' type-id='2b89ba50' visibility='default' filepath='include/net/snmp.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='syncp' type-id='e4d85780' visibility='default' filepath='include/net/snmp.h' line='54' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4ed265d6' size-in-bits='64' id='f531dfd0'/>
+      <function-type size-in-bits='64' id='f5362227'>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='1c936db9'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='aac38d0b' size-in-bits='1280' id='f53c5bdb'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <pointer-type-def type-id='abedd844' size-in-bits='64' id='f53d5cb2'/>
+      <array-type-def dimensions='1' type-id='28271da3' size-in-bits='infinite' id='f5432a6f'>
+        <subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
+      </array-type-def>
+      <pointer-type-def type-id='59eccc2f' size-in-bits='64' id='f5438ac7'/>
+      <class-decl name='fb_info' size-in-bits='6528' is-struct='yes' visibility='default' filepath='include/linux/fb.h' line='438' column='1' id='f546887a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='count' type-id='64615833' visibility='default' filepath='include/linux/fb.h' line='439' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='node' type-id='95e97e5e' visibility='default' filepath='include/linux/fb.h' line='440' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/linux/fb.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='fbcon_rotate_hint' type-id='95e97e5e' visibility='default' filepath='include/linux/fb.h' line='446' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/linux/fb.h' line='447' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='mm_lock' type-id='925167dc' visibility='default' filepath='include/linux/fb.h' line='448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='var' type-id='87e42d48' visibility='default' filepath='include/linux/fb.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='fix' type-id='1cead55a' visibility='default' filepath='include/linux/fb.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='monspecs' type-id='ee529a90' visibility='default' filepath='include/linux/fb.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3968'>
+          <var-decl name='queue' type-id='ef9025d0' visibility='default' filepath='include/linux/fb.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='pixmap' type-id='0a45c8ef' visibility='default' filepath='include/linux/fb.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='sprite' type-id='0a45c8ef' visibility='default' filepath='include/linux/fb.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5248'>
+          <var-decl name='cmap' type-id='be9adbe3' visibility='default' filepath='include/linux/fb.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='modelist' type-id='72f469ec' visibility='default' filepath='include/linux/fb.h' line='456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5696'>
+          <var-decl name='mode' type-id='c03076ec' visibility='default' filepath='include/linux/fb.h' line='457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5760'>
+          <var-decl name='fbops' type-id='26409777' visibility='default' filepath='include/linux/fb.h' line='474' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5824'>
+          <var-decl name='device' type-id='fa0b179b' visibility='default' filepath='include/linux/fb.h' line='475' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5888'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/fb.h' line='476' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5952'>
+          <var-decl name='class_flag' type-id='95e97e5e' visibility='default' filepath='include/linux/fb.h' line='477' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6016'>
+          <var-decl name='' type-id='ac5ab625' visibility='default' filepath='include/linux/fb.h' line='481' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6080'>
+          <var-decl name='screen_size' type-id='7359adad' visibility='default' filepath='include/linux/fb.h' line='485' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6144'>
+          <var-decl name='pseudo_palette' type-id='eaa32e2f' visibility='default' filepath='include/linux/fb.h' line='486' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6208'>
+          <var-decl name='state' type-id='19c2251e' visibility='default' filepath='include/linux/fb.h' line='489' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6272'>
+          <var-decl name='fbcon_par' type-id='eaa32e2f' visibility='default' filepath='include/linux/fb.h' line='490' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6336'>
+          <var-decl name='par' type-id='eaa32e2f' visibility='default' filepath='include/linux/fb.h' line='492' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6400'>
+          <var-decl name='apertures' type-id='3dc7db80' visibility='default' filepath='include/linux/fb.h' line='502' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6464'>
+          <var-decl name='skip_vt_switch' type-id='b50a4934' visibility='default' filepath='include/linux/fb.h' line='504' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='6472'>
+          <var-decl name='forced_out' type-id='b50a4934' visibility='default' filepath='include/linux/fb.h' line='505' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='713ac427' size-in-bits='64' id='f54ae583'/>
+      <class-decl name='nf_ct_ext' size-in-bits='48' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack_extend.h' line='45' column='1' id='f54c6661'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='offset' type-id='8f1320db' visibility='default' filepath='include/net/netfilter/nf_conntrack_extend.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='len' type-id='f9b06939' visibility='default' filepath='include/net/netfilter/nf_conntrack_extend.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='data' type-id='e84913bd' visibility='default' filepath='include/net/netfilter/nf_conntrack_extend.h' line='48' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/zstd.h' line='177' column='1' id='f558188f' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cParams' type-id='a26eb5ee' visibility='default' filepath='include/linux/zstd.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='fParams' type-id='a0d1de25' visibility='default' filepath='include/linux/zstd.h' line='179' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='3213e875' size-in-bits='384' id='f55e07ab'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='f56eb14d'>
+        <parameter type-id='10216dc5'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='1d2c2b85'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='flow_match_ipv4_addrs' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/flow_offload.h' line='35' column='1' id='f56f6c9c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='key' type-id='82c827a5' visibility='default' filepath='include/net/flow_offload.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='mask' type-id='82c827a5' visibility='default' filepath='include/net/flow_offload.h' line='36' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0fd82dc2' size-in-bits='64' id='f57039f0'/>
+      <array-type-def dimensions='1' type-id='00ee50b8' size-in-bits='128' id='f57e9a44'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <pointer-type-def type-id='cb593833' size-in-bits='64' id='f581f1cf'/>
+      <class-decl name='sock_filter' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/filter.h' line='24' column='1' id='f588f6e0'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='code' type-id='d315442e' visibility='default' filepath='include/uapi/linux/filter.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='jt' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/filter.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='jf' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/filter.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='k' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/filter.h' line='28' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='f58c1a1b'>
+        <parameter type-id='ecb0ce18'/>
+        <parameter type-id='b6a6ca60'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='c66117cc' size-in-bits='64' id='f58cb656'/>
+      <pointer-type-def type-id='4aa54e65' size-in-bits='64' id='f590d4d9'/>
+      <pointer-type-def type-id='139c5a2c' size-in-bits='64' id='f596d48e'/>
+      <class-decl name='nh_grp_entry' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/net/nexthop.h' line='98' column='1' id='f59a8358'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='nh' type-id='f32120a7' visibility='default' filepath='include/net/nexthop.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='weight' type-id='f9b06939' visibility='default' filepath='include/net/nexthop.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='' type-id='ac5ab5c8' visibility='default' filepath='include/net/nexthop.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='nh_list' type-id='72f469ec' visibility='default' filepath='include/net/nexthop.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='nh_parent' type-id='f32120a7' visibility='default' filepath='include/net/nexthop.h' line='116' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='45092453' size-in-bits='64' id='f59f5033'/>
+      <function-type size-in-bits='64' id='f5a529af'>
+        <parameter type-id='3aaeef89'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='b20d2281' size-in-bits='64' id='f5ad9331'/>
+      <qualified-type-def type-id='729f8f08' const='yes' id='f5af9523'/>
+      <pointer-type-def type-id='74b5d8d8' size-in-bits='64' id='f5b0f2f2'/>
+      <pointer-type-def type-id='41838567' size-in-bits='64' id='f5bc338f'/>
+      <function-type size-in-bits='64' id='f5c32c38'>
+        <parameter type-id='1c475548'/>
+        <parameter type-id='5f8a1ac4'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='f5c3facd'>
+        <parameter type-id='00ee50b8'/>
+        <parameter type-id='2d14cfd8'/>
+        <parameter type-id='231422bf'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='raw_spinlock_t' type-id='f106d0e5' filepath='include/linux/spinlock_types_raw.h' line='23' column='1' id='f5c90b3f'/>
+      <class-decl name='arc4_ctx' size-in-bits='8256' is-struct='yes' visibility='default' filepath='include/crypto/arc4.h' line='15' column='1' id='f5dcfad3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='S' type-id='ee5ba316' visibility='default' filepath='include/crypto/arc4.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='x' type-id='19c2251e' visibility='default' filepath='include/crypto/arc4.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8224'>
+          <var-decl name='y' type-id='19c2251e' visibility='default' filepath='include/crypto/arc4.h' line='17' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='f5dd710b'>
+        <parameter type-id='b7d8b860'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='b59d7dce'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <class-decl name='badrange' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/libnvdimm.h' line='22' column='1' id='f5e659a5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/libnvdimm.h' line='23' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/libnvdimm.h' line='24' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_pcm_hw_constraint_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/sound/pcm.h' line='282' column='1' id='f5f6e55e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='5b2fd8e8' visibility='default' filepath='include/sound/pcm.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='count' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='mask' type-id='f0981eeb' visibility='default' filepath='include/sound/pcm.h' line='285' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='630e0832' size-in-bits='64' id='f5f7cbd4'/>
+      <pointer-type-def type-id='7e2beda2' size-in-bits='64' id='f5feb7a4'/>
+      <pointer-type-def type-id='cdb274e3' size-in-bits='64' id='f60348b3'/>
+      <function-type size-in-bits='64' id='f60505a1'>
+        <parameter type-id='a4375c03'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='b9c5fbfc' size-in-bits='64' id='f60e04ee'/>
+      <function-type size-in-bits='64' id='f611d028'>
+        <parameter type-id='7837cd88'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <function-type size-in-bits='64' id='f6192657'>
+        <parameter type-id='397dd6bb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='2e437a47' size-in-bits='64' id='f619ef4b'/>
+      <pointer-type-def type-id='fe71fd28' size-in-bits='64' id='f61d3a1e'/>
+      <pointer-type-def type-id='9aae225c' size-in-bits='64' id='f6203fc2'/>
+      <pointer-type-def type-id='7be051de' size-in-bits='64' id='f621031c'/>
+      <pointer-type-def type-id='d050fd8b' size-in-bits='64' id='f623d45b'/>
+      <pointer-type-def type-id='e5e56b24' size-in-bits='64' id='f627870a'/>
+      <function-type size-in-bits='64' id='f62797f7'>
+        <parameter type-id='e68e04c1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='70ebcb19' size-in-bits='64' id='f630e149'/>
+      <enum-decl name='rcutorture_type' filepath='kernel/rcu/rcu.h' line='452' column='1' id='f63583e2'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='RCU_FLAVOR' value='0'/>
+        <enumerator name='RCU_TASKS_FLAVOR' value='1'/>
+        <enumerator name='RCU_TASKS_RUDE_FLAVOR' value='2'/>
+        <enumerator name='RCU_TASKS_TRACING_FLAVOR' value='3'/>
+        <enumerator name='RCU_TRIVIAL_FLAVOR' value='4'/>
+        <enumerator name='SRCU_FLAVOR' value='5'/>
+        <enumerator name='INVALID_RCU_FLAVOR' value='6'/>
+      </enum-decl>
+      <pointer-type-def type-id='71bae7c7' size-in-bits='64' id='f63b1a17'/>
+      <qualified-type-def type-id='d6746ce3' const='yes' id='f64a160a'/>
+      <pointer-type-def type-id='ff0d68dc' size-in-bits='64' id='f6507b0a'/>
+      <pointer-type-def type-id='1a13292a' size-in-bits='64' id='f657670c'/>
+      <function-type size-in-bits='64' id='f6590065'>
+        <parameter type-id='00ee50b8'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='f8dc9def'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='f65a797a'>
+        <parameter type-id='ca9354d1'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='f65c27ec'>
+        <parameter type-id='9f763fd8'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='7359adad'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='07c30a78' size-in-bits='64' id='f65daff2'/>
+      <class-decl name='utp_transfer_cmd_desc' size-in-bits='8192' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='435' column='1' id='f660d147'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='command_upiu' type-id='d1f32e0e' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='response_upiu' type-id='d1f32e0e' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='prd_table' type-id='29c3368c' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='438' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='nd_interleave_set' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/libnvdimm.h' line='99' column='1' id='f6610cc2'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cookie1' type-id='91ce1af9' visibility='default' filepath='include/linux/libnvdimm.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='cookie2' type-id='91ce1af9' visibility='default' filepath='include/linux/libnvdimm.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='altcookie' type-id='91ce1af9' visibility='default' filepath='include/linux/libnvdimm.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='type_guid' type-id='7ae02c0a' visibility='default' filepath='include/linux/libnvdimm.h' line='107' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='pinctrl_state' size-in-bits='320' is-struct='yes' visibility='default' filepath='drivers/pinctrl/core.h' line='92' column='1' id='f66244c3'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='drivers/pinctrl/core.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='drivers/pinctrl/core.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='settings' type-id='72f469ec' visibility='default' filepath='drivers/pinctrl/core.h' line='95' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='c657f8be' const='yes' id='f6667371'/>
+      <pointer-type-def type-id='38df0539' size-in-bits='64' id='f666bcc1'/>
+      <pointer-type-def type-id='f80c018e' size-in-bits='64' id='f66fa7f4'/>
+      <function-type size-in-bits='64' id='f67639d3'>
+        <parameter type-id='6ed6b432'/>
+        <parameter type-id='f23e2572'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='83b59630' const='yes' id='f67ba3ad'/>
+      <class-decl name='bpf_prog_array_item' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/bpf.h' line='1190' column='1' id='f67e137c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prog' type-id='bdcee7ae' visibility='default' filepath='include/linux/bpf.h' line='1191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='' type-id='ac5ab597' visibility='default' filepath='include/linux/bpf.h' line='1192' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='f680e13e'>
+        <parameter type-id='f8dc9def'/>
+        <parameter type-id='a970a64c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='f24c165e' size-in-bits='64' id='f681f934'/>
+      <pointer-type-def type-id='156670bc' size-in-bits='64' id='f6865b36'/>
+      <function-type size-in-bits='64' id='f6898056'>
+        <parameter type-id='78e7cf52'/>
+        <return type-id='b59d7dce'/>
+      </function-type>
+      <pointer-type-def type-id='3c05ad89' size-in-bits='64' id='f68cfba1'/>
+      <pointer-type-def type-id='8422a42a' size-in-bits='64' id='f68ddecc'/>
+      <class-decl name='rhash_head' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/rhashtable-types.h' line='17' column='1' id='f68e0adc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='3cc8739a' visibility='default' filepath='include/linux/rhashtable-types.h' line='18' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='28026fe4' size-in-bits='64' id='f695e0b6'/>
+      <pointer-type-def type-id='208298e3' size-in-bits='64' id='f696846b'/>
+      <class-decl name='pci_epc_ops' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/linux/pci-epc.h' line='64' column='1' id='f69b84e9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='write_header' type-id='ca4aae5a' visibility='default' filepath='include/linux/pci-epc.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='set_bar' type-id='0923243a' visibility='default' filepath='include/linux/pci-epc.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='clear_bar' type-id='1826a86b' visibility='default' filepath='include/linux/pci-epc.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='map_addr' type-id='2bc0432f' visibility='default' filepath='include/linux/pci-epc.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='unmap_addr' type-id='e7ed8c5f' visibility='default' filepath='include/linux/pci-epc.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='set_msi' type-id='0424d4dc' visibility='default' filepath='include/linux/pci-epc.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='get_msi' type-id='90ba6558' visibility='default' filepath='include/linux/pci-epc.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='set_msix' type-id='e120e608' visibility='default' filepath='include/linux/pci-epc.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='get_msix' type-id='90ba6558' visibility='default' filepath='include/linux/pci-epc.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='raise_irq' type-id='1c12709d' visibility='default' filepath='include/linux/pci-epc.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='map_msi_irq' type-id='a185b4e7' visibility='default' filepath='include/linux/pci-epc.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='start' type-id='5bd7ff98' visibility='default' filepath='include/linux/pci-epc.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='stop' type-id='b9f28869' visibility='default' filepath='include/linux/pci-epc.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='get_features' type-id='97ee904f' visibility='default' filepath='include/linux/pci-epc.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/pci-epc.h' line='91' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='f69f6d0e'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='5ea5a07d' size-in-bits='64' id='f69fcfe1'/>
+      <pointer-type-def type-id='d1043097' size-in-bits='64' id='f6a079db'/>
+      <class-decl name='alarm' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/alarmtimer.h' line='42' column='1' id='f6b32752'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='fe3acb42' visibility='default' filepath='include/linux/alarmtimer.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='timer' type-id='b6993efc' visibility='default' filepath='include/linux/alarmtimer.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='function' type-id='7432d5be' visibility='default' filepath='include/linux/alarmtimer.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='type' type-id='6b8d4b77' visibility='default' filepath='include/linux/alarmtimer.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='state' type-id='95e97e5e' visibility='default' filepath='include/linux/alarmtimer.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/alarmtimer.h' line='48' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='53' column='1' id='f6b65a46' is-anonymous='yes'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='encoding' type-id='8efea9e5' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='parity' type-id='8efea9e5' visibility='default' filepath='include/uapi/linux/hdlc/ioctl.h' line='55' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='qc_state' size-in-bits='1408' is-struct='yes' visibility='default' filepath='include/linux/quota.h' line='415' column='1' id='f6be3c23'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='s_incoredqs' type-id='f0981eeb' visibility='default' filepath='include/linux/quota.h' line='416' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='s_state' type-id='55d1e02d' visibility='default' filepath='include/linux/quota.h' line='417' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e56bc2e5' size-in-bits='64' id='f6c3a7a5'/>
+      <function-type size-in-bits='64' id='f6d2a7cd'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='469e947f'/>
+        <parameter type-id='3df9fd28'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='f6dbfe8d'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='f6dcb63e'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='70de91e2'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='fa0b179b' size-in-bits='512' id='f6e5abef'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <class-decl name='header_ops' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='278' column='1' id='f6e7855b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='create' type-id='e82aa0fb' visibility='default' filepath='include/linux/netdevice.h' line='279' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='parse' type-id='35b37061' visibility='default' filepath='include/linux/netdevice.h' line='282' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cache' type-id='464a4247' visibility='default' filepath='include/linux/netdevice.h' line='283' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cache_update' type-id='b713d448' visibility='default' filepath='include/linux/netdevice.h' line='284' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='validate' type-id='5a60e638' visibility='default' filepath='include/linux/netdevice.h' line='287' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='parse_protocol' type-id='98c4c95a' visibility='default' filepath='include/linux/netdevice.h' line='288' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='290' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/netdevice.h' line='291' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='in6_addr' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/in6.h' line='33' column='1' id='f6ed712a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='in6_u' type-id='ac5ab652' visibility='default' filepath='include/uapi/linux/in6.h' line='40' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_usb_power_domain' is-struct='yes' visibility='default' is-declaration-only='yes' id='f709b458'/>
+      <pointer-type-def type-id='a2ac80c1' size-in-bits='64' id='f7114ca5'/>
+      <function-type size-in-bits='64' id='f712e2b7'>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='f7146e24'>
+        <parameter type-id='eb572b74'/>
+        <parameter type-id='3dad1a48'/>
+        <return type-id='f4e2facd'/>
+      </function-type>
+      <pointer-type-def type-id='56b34f46' size-in-bits='64' id='f71f3e00'/>
+      <pointer-type-def type-id='4f935e80' size-in-bits='64' id='f726dab6'/>
+      <pointer-type-def type-id='05cd341e' size-in-bits='64' id='f727c4d8'/>
+      <pointer-type-def type-id='081f19f3' size-in-bits='64' id='f72cc247'/>
+      <class-decl name='uac_params' size-in-bits='448' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='34' column='1' id='f7351f13'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='p_chmask' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='p_srate' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='p_ssize' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='p_fu' type-id='7321c6b7' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='c_chmask' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='c_srate' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='c_ssize' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='c_fu' type-id='7321c6b7' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='req_number' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='fb_max' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_audio.h' line='48' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='efa4e33c' size-in-bits='64' id='f73feb66'/>
+      <pointer-type-def type-id='1f8d2f66' size-in-bits='64' id='f74174a4'/>
+      <pointer-type-def type-id='5e4a0f97' size-in-bits='64' id='f75051ab'/>
+      <pointer-type-def type-id='54d829fa' size-in-bits='64' id='f76f0ea4'/>
+      <pointer-type-def type-id='a240f41d' size-in-bits='64' id='f772df6d'/>
+      <pointer-type-def type-id='e54806c5' size-in-bits='64' id='f774a955'/>
+      <class-decl name='snd_dec_ape' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/sound/compress_params.h' line='351' column='1' id='f778b2f8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='compatible_version' type-id='d315442e' visibility='default' filepath='include/uapi/sound/compress_params.h' line='352' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='compression_level' type-id='d315442e' visibility='default' filepath='include/uapi/sound/compress_params.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='format_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='blocks_per_frame' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='final_frame_blocks' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='356' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='total_frames' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='357' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='seek_table_present' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='358' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='cdd79d4e' size-in-bits='64' id='f77c2568'/>
+      <class-decl name='tcp_fastopen_context' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/tcp.h' line='1724' column='1' id='f77d4717'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='key' type-id='5b02a6fc' visibility='default' filepath='include/net/tcp.h' line='1725' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='num' type-id='95e97e5e' visibility='default' filepath='include/net/tcp.h' line='1726' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/tcp.h' line='1727' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='e0584be6' const='yes' id='f7803e3d'/>
+      <class-decl name='snd_soc_dapm_widget' size-in-bits='2560' is-struct='yes' visibility='default' filepath='include/sound/soc-dapm.h' line='617' column='1' id='f780d556'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='id' type-id='68bb1ec5' visibility='default' filepath='include/sound/soc-dapm.h' line='618' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/sound/soc-dapm.h' line='619' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sname' type-id='80f4b756' visibility='default' filepath='include/sound/soc-dapm.h' line='620' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/sound/soc-dapm.h' line='621' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dapm' type-id='70d004a5' visibility='default' filepath='include/sound/soc-dapm.h' line='622' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/sound/soc-dapm.h' line='624' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='regulator' type-id='850c13f6' visibility='default' filepath='include/sound/soc-dapm.h' line='625' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='pinctrl' type-id='73ea90c5' visibility='default' filepath='include/sound/soc-dapm.h' line='626' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='reg' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-dapm.h' line='629' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='shift' type-id='002ac4a6' visibility='default' filepath='include/sound/soc-dapm.h' line='630' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='mask' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-dapm.h' line='631' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='on_val' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-dapm.h' line='632' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='off_val' type-id='f0981eeb' visibility='default' filepath='include/sound/soc-dapm.h' line='633' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='power' type-id='002ac4a6' visibility='default' filepath='include/sound/soc-dapm.h' line='634' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='737'>
+          <var-decl name='active' type-id='002ac4a6' visibility='default' filepath='include/sound/soc-dapm.h' line='635' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='738'>
+          <var-decl name='connected' type-id='002ac4a6' visibility='default' filepath='include/sound/soc-dapm.h' line='636' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='739'>
+          <var-decl name='new' type-id='002ac4a6' visibility='default' filepath='include/sound/soc-dapm.h' line='637' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='740'>
+          <var-decl name='force' type-id='002ac4a6' visibility='default' filepath='include/sound/soc-dapm.h' line='638' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='741'>
+          <var-decl name='ignore_suspend' type-id='002ac4a6' visibility='default' filepath='include/sound/soc-dapm.h' line='639' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='742'>
+          <var-decl name='new_power' type-id='002ac4a6' visibility='default' filepath='include/sound/soc-dapm.h' line='640' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='743'>
+          <var-decl name='power_checked' type-id='002ac4a6' visibility='default' filepath='include/sound/soc-dapm.h' line='641' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='744'>
+          <var-decl name='is_supply' type-id='002ac4a6' visibility='default' filepath='include/sound/soc-dapm.h' line='642' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='745'>
+          <var-decl name='is_ep' type-id='002ac4a6' visibility='default' filepath='include/sound/soc-dapm.h' line='643' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='subseq' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-dapm.h' line='644' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='power_check' type-id='3fccea10' visibility='default' filepath='include/sound/soc-dapm.h' line='646' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='event_flags' type-id='8efea9e5' visibility='default' filepath='include/sound/soc-dapm.h' line='649' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='event' type-id='af92413d' visibility='default' filepath='include/sound/soc-dapm.h' line='650' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='num_kcontrols' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-dapm.h' line='653' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='kcontrol_news' type-id='31e035f7' visibility='default' filepath='include/sound/soc-dapm.h' line='654' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='kcontrols' type-id='29753327' visibility='default' filepath='include/sound/soc-dapm.h' line='655' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='dobj' type-id='01edcafc' visibility='default' filepath='include/sound/soc-dapm.h' line='656' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='edges' type-id='e4f16420' visibility='default' filepath='include/sound/soc-dapm.h' line='659' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='work_list' type-id='72f469ec' visibility='default' filepath='include/sound/soc-dapm.h' line='662' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='power_list' type-id='72f469ec' visibility='default' filepath='include/sound/soc-dapm.h' line='663' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='dirty' type-id='72f469ec' visibility='default' filepath='include/sound/soc-dapm.h' line='664' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='endpoints' type-id='e4266c7e' visibility='default' filepath='include/sound/soc-dapm.h' line='665' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='clk' type-id='7d0bc0eb' visibility='default' filepath='include/sound/soc-dapm.h' line='667' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='channel' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-dapm.h' line='669' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='769f1ed1' size-in-bits='64' id='f79a6dd9'/>
+      <function-type size-in-bits='64' id='f79aa311'>
+        <parameter type-id='1ced7495'/>
+        <parameter type-id='4c2e6a7c'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='netlink_kernel_cfg' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/netlink.h' line='46' column='1' id='f7a1d399'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='groups' type-id='f0981eeb' visibility='default' filepath='include/linux/netlink.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/netlink.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='input' type-id='0ef96694' visibility='default' filepath='include/linux/netlink.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cb_mutex' type-id='e0ea832a' visibility='default' filepath='include/linux/netlink.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bind' type-id='e77f5b05' visibility='default' filepath='include/linux/netlink.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='unbind' type-id='493b1d22' visibility='default' filepath='include/linux/netlink.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='compare' type-id='bfc146e4' visibility='default' filepath='include/linux/netlink.h' line='53' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='f7a449db'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='5799dc94'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='3512001c' size-in-bits='64' id='f7af77d6'/>
+      <enum-decl name='drm_connector_status' filepath='include/drm/drm_connector.h' line='59' column='1' id='f7b0e1b4'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='connector_status_connected' value='1'/>
+        <enumerator name='connector_status_disconnected' value='2'/>
+        <enumerator name='connector_status_unknown' value='3'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='ac5ab60f' size-in-bits='128' id='f7b1166e'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+      </array-type-def>
+      <class-decl name='ir_raw_handler' size-in-bits='512' is-struct='yes' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='33' column='1' id='f7b43f0c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='protocols' type-id='91ce1af9' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='decode' type-id='ddcee1af' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='encode' type-id='9bf2f36c' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='carrier' type-id='19c2251e' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='min_timeout' type-id='19c2251e' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='raw_register' type-id='7c07671a' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='raw_unregister' type-id='7c07671a' visibility='default' filepath='drivers/media/rc/rc-core-priv.h' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='f7b53f40'>
+        <parameter type-id='339c87e8'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <pointer-type-def type-id='9f30e4ad' size-in-bits='64' id='f7b83e6d'/>
+      <pointer-type-def type-id='5468e006' size-in-bits='64' id='f7bc2858'/>
+      <enum-decl name='devlink_trap_type' filepath='include/uapi/linux/devlink.h' line='305' column='1' id='f7c3b5f0'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEVLINK_TRAP_TYPE_DROP' value='0'/>
+        <enumerator name='DEVLINK_TRAP_TYPE_EXCEPTION' value='1'/>
+        <enumerator name='DEVLINK_TRAP_TYPE_CONTROL' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='ecd54c0e' size-in-bits='64' id='f7c6dcac'/>
+      <function-type size-in-bits='64' id='f7c7c7f9'>
+        <parameter type-id='bd1c8eb6'/>
+        <return type-id='fa598f35'/>
+      </function-type>
+      <pointer-type-def type-id='2782a6ec' size-in-bits='64' id='f7d3421a'/>
+      <pointer-type-def type-id='63d6992a' size-in-bits='64' id='f7d53868'/>
+      <qualified-type-def type-id='b13ab8d6' const='yes' id='f7d60a45'/>
+      <pointer-type-def type-id='e4a7867c' size-in-bits='64' id='f7d7131a'/>
+      <pointer-type-def type-id='2437c5c4' size-in-bits='64' id='f7d748c2'/>
+      <class-decl name='usb_phy' size-in-bits='2944' is-struct='yes' visibility='default' filepath='include/linux/usb/phy.h' line='90' column='1' id='f7de2149'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='include/linux/usb/phy.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='label' type-id='80f4b756' visibility='default' filepath='include/linux/usb/phy.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/usb/phy.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='type' type-id='d95f4827' visibility='default' filepath='include/linux/usb/phy.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='last_event' type-id='278dd9ca' visibility='default' filepath='include/linux/usb/phy.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='otg' type-id='22be78e8' visibility='default' filepath='include/linux/usb/phy.h' line='98' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='io_dev' type-id='fa0b179b' visibility='default' filepath='include/linux/usb/phy.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='io_ops' type-id='aae1a0f1' visibility='default' filepath='include/linux/usb/phy.h' line='101' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='io_priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb/phy.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='edev' type-id='c0d6fada' visibility='default' filepath='include/linux/usb/phy.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='id_edev' type-id='c0d6fada' visibility='default' filepath='include/linux/usb/phy.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='vbus_nb' type-id='9b08f7cd' visibility='default' filepath='include/linux/usb/phy.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='id_nb' type-id='9b08f7cd' visibility='default' filepath='include/linux/usb/phy.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='type_nb' type-id='9b08f7cd' visibility='default' filepath='include/linux/usb/phy.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='chg_type' type-id='eba182c8' visibility='default' filepath='include/linux/usb/phy.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1248'>
+          <var-decl name='chg_state' type-id='6d659af5' visibility='default' filepath='include/linux/usb/phy.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='chg_cur' type-id='c1a2a792' visibility='default' filepath='include/linux/usb/phy.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='chg_work' type-id='ef9025d0' visibility='default' filepath='include/linux/usb/phy.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='notifier' type-id='dbd58f6e' visibility='default' filepath='include/linux/usb/phy.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='port_status' type-id='1dc6a898' visibility='default' filepath='include/linux/usb/phy.h' line='121' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2064'>
+          <var-decl name='port_change' type-id='1dc6a898' visibility='default' filepath='include/linux/usb/phy.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='head' type-id='72f469ec' visibility='default' filepath='include/linux/usb/phy.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='init' type-id='dd6ccf15' visibility='default' filepath='include/linux/usb/phy.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='shutdown' type-id='6cd1df94' visibility='default' filepath='include/linux/usb/phy.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='set_vbus' type-id='fc1fbe7c' visibility='default' filepath='include/linux/usb/phy.h' line='132' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='set_power' type-id='2d642297' visibility='default' filepath='include/linux/usb/phy.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='set_suspend' type-id='fc1fbe7c' visibility='default' filepath='include/linux/usb/phy.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='set_wakeup' type-id='523228f0' visibility='default' filepath='include/linux/usb/phy.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='notify_connect' type-id='2f4077f3' visibility='default' filepath='include/linux/usb/phy.h' line='150' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='notify_disconnect' type-id='2f4077f3' visibility='default' filepath='include/linux/usb/phy.h' line='152' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='charger_detect' type-id='c4884d33' visibility='default' filepath='include/linux/usb/phy.h' line='159' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/phy.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb/phy.h' line='162' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ieee80211_supported_band' size-in-bits='1344' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='546' column='1' id='f7e1259c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='channels' type-id='ec00acfb' visibility='default' filepath='include/net/cfg80211.h' line='547' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bitrates' type-id='4343d470' visibility='default' filepath='include/net/cfg80211.h' line='548' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='band' type-id='3eaa0294' visibility='default' filepath='include/net/cfg80211.h' line='549' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='n_channels' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='n_bitrates' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='551' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='ht_cap' type-id='a041735c' visibility='default' filepath='include/net/cfg80211.h' line='552' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='vht_cap' type-id='c994e9c8' visibility='default' filepath='include/net/cfg80211.h' line='553' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='s1g_cap' type-id='3f1c81a3' visibility='default' filepath='include/net/cfg80211.h' line='554' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='edmg_cap' type-id='d87e6929' visibility='default' filepath='include/net/cfg80211.h' line='555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='n_iftype_data' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='556' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='iftype_data' type-id='e76a43c4' visibility='default' filepath='include/net/cfg80211.h' line='557' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='559' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='560' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='561' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='562' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='564' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='567' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='3a58d3ba' size-in-bits='64' id='f7e7b3e8'/>
+      <class-decl name='cpufreq_frequency_table' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/cpufreq.h' line='673' column='1' id='f7f17df9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='674' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='driver_data' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='675' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='frequency' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='676' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4fc2605b' size-in-bits='64' id='f7f718cb'/>
+      <typedef-decl name='slab_flags_t' type-id='f0981eeb' filepath='include/linux/types.h' line='149' column='1' id='f7fe96cb'/>
+      <class-decl name='rpmsg_device_ops' size-in-bits='320' is-struct='yes' visibility='default' filepath='drivers/rpmsg/rpmsg_internal.h' line='36' column='1' id='f809b7c8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='create_channel' type-id='8821fe8e' visibility='default' filepath='drivers/rpmsg/rpmsg_internal.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='release_channel' type-id='ce0ef2cf' visibility='default' filepath='drivers/rpmsg/rpmsg_internal.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='create_ept' type-id='90e68757' visibility='default' filepath='drivers/rpmsg/rpmsg_internal.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='announce_create' type-id='f853ae55' visibility='default' filepath='drivers/rpmsg/rpmsg_internal.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='announce_destroy' type-id='f853ae55' visibility='default' filepath='drivers/rpmsg/rpmsg_internal.h' line='46' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='devfreq' size-in-bits='18176' is-struct='yes' visibility='default' filepath='include/linux/devfreq.h' line='176' column='1' id='f80c018e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='72f469ec' visibility='default' filepath='include/linux/devfreq.h' line='177' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='lock' type-id='925167dc' visibility='default' filepath='include/linux/devfreq.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/devfreq.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7808'>
+          <var-decl name='profile' type-id='cba10b6e' visibility='default' filepath='include/linux/devfreq.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7872'>
+          <var-decl name='governor' type-id='f627870a' visibility='default' filepath='include/linux/devfreq.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='7936'>
+          <var-decl name='opp_table' type-id='e62a60bd' visibility='default' filepath='include/linux/devfreq.h' line='183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8000'>
+          <var-decl name='nb' type-id='9b08f7cd' visibility='default' filepath='include/linux/devfreq.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8192'>
+          <var-decl name='work' type-id='5ad6e0ef' visibility='default' filepath='include/linux/devfreq.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9280'>
+          <var-decl name='previous_freq' type-id='7359adad' visibility='default' filepath='include/linux/devfreq.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9344'>
+          <var-decl name='last_status' type-id='49266711' visibility='default' filepath='include/linux/devfreq.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9600'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/devfreq.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='9664'>
+          <var-decl name='user_min_freq_req' type-id='32536656' visibility='default' filepath='include/linux/devfreq.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='10368'>
+          <var-decl name='user_max_freq_req' type-id='32536656' visibility='default' filepath='include/linux/devfreq.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11072'>
+          <var-decl name='scaling_min_freq' type-id='7359adad' visibility='default' filepath='include/linux/devfreq.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11136'>
+          <var-decl name='scaling_max_freq' type-id='7359adad' visibility='default' filepath='include/linux/devfreq.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11200'>
+          <var-decl name='stop_polling' type-id='b50a4934' visibility='default' filepath='include/linux/devfreq.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11264'>
+          <var-decl name='suspend_freq' type-id='7359adad' visibility='default' filepath='include/linux/devfreq.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11328'>
+          <var-decl name='resume_freq' type-id='7359adad' visibility='default' filepath='include/linux/devfreq.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11392'>
+          <var-decl name='suspend_count' type-id='49178f86' visibility='default' filepath='include/linux/devfreq.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11456'>
+          <var-decl name='stats' type-id='f24c4d3e' visibility='default' filepath='include/linux/devfreq.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='11712'>
+          <var-decl name='transition_notifier_list' type-id='ffc4a47a' visibility='default' filepath='include/linux/devfreq.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17728'>
+          <var-decl name='cdev' type-id='2feec21f' visibility='default' filepath='include/linux/devfreq.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17792'>
+          <var-decl name='nb_min' type-id='9b08f7cd' visibility='default' filepath='include/linux/devfreq.h' line='210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17984'>
+          <var-decl name='nb_max' type-id='9b08f7cd' visibility='default' filepath='include/linux/devfreq.h' line='211' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='479592e1' size-in-bits='64' id='f812e4e9'/>
+      <class-decl name='macsec_tx_sa' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/net/macsec.h' line='162' column='1' id='f8137f97'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='key' type-id='d06997c5' visibility='default' filepath='include/net/macsec.h' line='163' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='ssci' type-id='dbcff62d' visibility='default' filepath='include/net/macsec.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/net/macsec.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='' type-id='ac5ab5c3' visibility='default' filepath='include/net/macsec.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='include/net/macsec.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='active' type-id='b50a4934' visibility='default' filepath='include/net/macsec.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='stats' type-id='121b202b' visibility='default' filepath='include/net/macsec.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/macsec.h' line='173' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_ctrl_config' size-in-bits='1152' is-struct='yes' visibility='default' filepath='include/media/v4l2-ctrls.h' line='427' column='1' id='f817de22'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='1086b623' visibility='default' filepath='include/media/v4l2-ctrls.h' line='428' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='type_ops' type-id='b076d304' visibility='default' filepath='include/media/v4l2-ctrls.h' line='429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='id' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-ctrls.h' line='430' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/media/v4l2-ctrls.h' line='431' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='type' type-id='cf13dc99' visibility='default' filepath='include/media/v4l2-ctrls.h' line='432' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='min' type-id='9b7c55ef' visibility='default' filepath='include/media/v4l2-ctrls.h' line='433' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='max' type-id='9b7c55ef' visibility='default' filepath='include/media/v4l2-ctrls.h' line='434' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='step' type-id='91ce1af9' visibility='default' filepath='include/media/v4l2-ctrls.h' line='435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='def' type-id='9b7c55ef' visibility='default' filepath='include/media/v4l2-ctrls.h' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='p_def' type-id='3f78e6a9' visibility='default' filepath='include/media/v4l2-ctrls.h' line='437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='dims' type-id='1c6c0c39' visibility='default' filepath='include/media/v4l2-ctrls.h' line='438' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='elem_size' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-ctrls.h' line='439' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/media/v4l2-ctrls.h' line='440' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='menu_skip_mask' type-id='91ce1af9' visibility='default' filepath='include/media/v4l2-ctrls.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='qmenu' type-id='13956559' visibility='default' filepath='include/media/v4l2-ctrls.h' line='442' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='qmenu_int' type-id='43ae54cf' visibility='default' filepath='include/media/v4l2-ctrls.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='is_private' type-id='f0981eeb' visibility='default' filepath='include/media/v4l2-ctrls.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/media/v4l2-ctrls.h' line='446' column='1'/>
+        </data-member>
+      </class-decl>
+      <union-decl name='ufs_crypto_cap_entry' size-in-bits='32' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='329' column='1' id='f81b67f4'>
+        <data-member access='public'>
+          <var-decl name='reg_val' type-id='2f162548' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='330' column='1'/>
+        </data-member>
+        <data-member access='public'>
+          <var-decl name='' type-id='e7f43fcc' visibility='default' filepath='drivers/scsi/ufs/ufshci.h' line='331' column='1'/>
+        </data-member>
+      </union-decl>
+      <class-decl name='iw_spy_data' size-in-bits='800' is-struct='yes' visibility='default' filepath='include/net/iw_handler.h' line='396' column='1' id='f8292115'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='spy_number' type-id='95e97e5e' visibility='default' filepath='include/net/iw_handler.h' line='398' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='spy_address' type-id='2d507faf' visibility='default' filepath='include/net/iw_handler.h' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='spy_stat' type-id='c73a16a3' visibility='default' filepath='include/net/iw_handler.h' line='400' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='spy_thr_low' type-id='aa80c027' visibility='default' filepath='include/net/iw_handler.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='spy_thr_high' type-id='aa80c027' visibility='default' filepath='include/net/iw_handler.h' line='403' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='spy_thr_under' type-id='4a744ea1' visibility='default' filepath='include/net/iw_handler.h' line='404' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='f82a46c1'>
+        <parameter type-id='3059cd0b'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='2c98045e' const='yes' id='f82c8e47'/>
+      <function-type size-in-bits='64' id='f83bf2cd'>
+        <parameter type-id='6ed6b432'/>
+        <parameter type-id='f23e2572'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='db61d4a1' size-in-bits='64' id='f853ae55'/>
+      <pointer-type-def type-id='849bbac8' size-in-bits='64' id='f859cd7e'/>
+      <pointer-type-def type-id='02e8b0a1' size-in-bits='64' id='f8613c2d'/>
+      <pointer-type-def type-id='88d4f840' size-in-bits='64' id='f865774a'/>
+      <function-type size-in-bits='64' id='f867473c'>
+        <parameter type-id='3aaeef89'/>
+        <parameter type-id='23a0ad0a'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='key_restrict_link_func_t' type-id='a5786cbb' filepath='include/linux/key.h' line='165' column='1' id='f87a5fab'/>
+      <pointer-type-def type-id='db6d90a1' size-in-bits='64' id='f87a8ad1'/>
+      <class-decl name='tty_ldisc' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/tty_ldisc.h' line='222' column='1' id='f87db0b6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ops' type-id='9d632ac5' visibility='default' filepath='include/linux/tty_ldisc.h' line='223' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tty' type-id='572fbdca' visibility='default' filepath='include/linux/tty_ldisc.h' line='224' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='47344208' size-in-bits='64' id='f87f885a'/>
+      <pointer-type-def type-id='00205383' size-in-bits='64' id='f8840c23'/>
+      <pointer-type-def type-id='ac0aeb1d' size-in-bits='64' id='f885ca7d'/>
+      <pointer-type-def type-id='978e8e27' size-in-bits='64' id='f886696f'/>
+      <array-type-def dimensions='1' type-id='a7623477' size-in-bits='12928' id='f886ee73'>
+        <subrange length='101' type-id='7ff19f0f' id='8592efb1'/>
+      </array-type-def>
+      <class-decl name='v4l2_captureparm' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1205' column='1' id='f88a5c22'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='capability' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='capturemode' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1207' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='timeperframe' type-id='5f37256e' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='extendedmode' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='readbuffers' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='reserved' type-id='3fa29bab' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1211' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='b43302df' size-in-bits='64' id='f88ed793'/>
+      <pointer-type-def type-id='809e8e55' size-in-bits='64' id='f89a51ed'/>
+      <class-decl name='drm_master' size-in-bits='1280' is-struct='yes' visibility='default' filepath='include/drm/drm_auth.h' line='65' column='1' id='f8a4685d'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='refcount' type-id='400fb07b' visibility='default' filepath='include/drm/drm_auth.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='dev' type-id='8898134d' visibility='default' filepath='include/drm/drm_auth.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='unique' type-id='26a90f95' visibility='default' filepath='include/drm/drm_auth.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='unique_len' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_auth.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='magic_map' type-id='37ce495e' visibility='default' filepath='include/drm/drm_auth.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='driver_priv' type-id='eaa32e2f' visibility='default' filepath='include/drm/drm_auth.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='lessor' type-id='07df1a3d' visibility='default' filepath='include/drm/drm_auth.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='lessee_id' type-id='95e97e5e' visibility='default' filepath='include/drm/drm_auth.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='lessee_list' type-id='72f469ec' visibility='default' filepath='include/drm/drm_auth.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='lessees' type-id='72f469ec' visibility='default' filepath='include/drm/drm_auth.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='leases' type-id='37ce495e' visibility='default' filepath='include/drm/drm_auth.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='lessee_idr' type-id='37ce495e' visibility='default' filepath='include/drm/drm_auth.h' line='147' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='busy_tag_iter_fn' type-id='784e7aa9' filepath='include/linux/blk-mq.h' line='281' column='1' id='f8a88be2'/>
+      <function-type size-in-bits='64' id='f8a93d65'>
+        <parameter type-id='231422bf'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='44ab747b' size-in-bits='64' id='f8acd34f'/>
+      <function-type size-in-bits='64' id='f8b5874e'>
+        <parameter type-id='fc4f83c1'/>
+        <parameter type-id='25e60cb2'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='v4l2_ctrl_h264_pred_weights' size-in-bits='6176' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1428' column='1' id='f8bc06ac'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='luma_log2_weight_denom' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='chroma_log2_weight_denom' type-id='d315442e' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1430' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='weight_factors' type-id='a4444dc4' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1431' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='a809e963' const='yes' id='f8c4658e'/>
+      <function-type size-in-bits='64' id='f8c641b0'>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <pointer-type-def type-id='ea186880' size-in-bits='64' id='f8c8e796'/>
+      <function-type size-in-bits='64' id='f8cb692f'>
+        <parameter type-id='204a4632'/>
+        <parameter type-id='098bcd1a'/>
+        <parameter type-id='108c9fc0'/>
+        <parameter type-id='204a4632'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='em_perf_domain' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/energy_model.h' line='44' column='1' id='f8d03d40'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='table' type-id='51e74031' visibility='default' filepath='include/linux/energy_model.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nr_perf_states' type-id='95e97e5e' visibility='default' filepath='include/linux/energy_model.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='milliwatts' type-id='95e97e5e' visibility='default' filepath='include/linux/energy_model.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='cpus' type-id='c99b5ecd' visibility='default' filepath='include/linux/energy_model.h' line='48' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='virtio_driver' size-in-bits='2176' is-struct='yes' visibility='default' filepath='include/linux/virtio.h' line='163' column='1' id='f8d99df1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/virtio.h' line='164' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='id_table' type-id='3049673c' visibility='default' filepath='include/linux/virtio.h' line='165' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='feature_table' type-id='5b2fd8e8' visibility='default' filepath='include/linux/virtio.h' line='166' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='feature_table_size' type-id='f0981eeb' visibility='default' filepath='include/linux/virtio.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1600'>
+          <var-decl name='feature_table_legacy' type-id='5b2fd8e8' visibility='default' filepath='include/linux/virtio.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1664'>
+          <var-decl name='feature_table_size_legacy' type-id='f0981eeb' visibility='default' filepath='include/linux/virtio.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='validate' type-id='b89d0409' visibility='default' filepath='include/linux/virtio.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='probe' type-id='b89d0409' visibility='default' filepath='include/linux/virtio.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='scan' type-id='33d93b18' visibility='default' filepath='include/linux/virtio.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='remove' type-id='33d93b18' visibility='default' filepath='include/linux/virtio.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='config_changed' type-id='33d93b18' visibility='default' filepath='include/linux/virtio.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='freeze' type-id='b89d0409' visibility='default' filepath='include/linux/virtio.h' line='176' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='restore' type-id='b89d0409' visibility='default' filepath='include/linux/virtio.h' line='177' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f3415517' size-in-bits='64' id='f8dc9def'/>
+      <pointer-type-def type-id='24bce3cf' size-in-bits='64' id='f8e1aa9b'/>
+      <pointer-type-def type-id='896c8e89' size-in-bits='64' id='f8e48a99'/>
+      <function-type size-in-bits='64' id='f8ea2b79'>
+        <parameter type-id='54ec2a4d'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='spi_mem' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/spi/spi-mem.h' line='194' column='1' id='f8eaf96b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='spi' type-id='e90f4666' visibility='default' filepath='include/linux/spi/spi-mem.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='drvpriv' type-id='eaa32e2f' visibility='default' filepath='include/linux/spi/spi-mem.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/spi/spi-mem.h' line='197' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='f8ec0262'>
+        <parameter type-id='8bf55d78'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='f8f2633f'>
+        <parameter type-id='06b2cd14'/>
+        <parameter type-id='363a995e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='e8726a27' size-in-bits='64' id='f91cf277'/>
+      <qualified-type-def type-id='95388a16' const='yes' id='f92f0413'/>
+      <pointer-type-def type-id='fb0dbd21' size-in-bits='64' id='f93f4e09'/>
+      <pointer-type-def type-id='19c2251e' size-in-bits='64' id='f9409001'/>
+      <pointer-type-def type-id='db2d72d5' size-in-bits='64' id='f9431329'/>
+      <pointer-type-def type-id='4fcc4597' size-in-bits='64' id='f94cf1ff'/>
+      <array-type-def dimensions='2' type-id='9cbd1c16' size-in-bits='4160' id='f959706c'>
+        <subrange length='65' type-id='7ff19f0f' id='b50e2e4a'/>
+        <subrange length='1' type-id='7ff19f0f' id='52f813b4'/>
+      </array-type-def>
+      <class-decl name='i2c_board_info' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/i2c.h' line='417' column='1' id='f95bfc29'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='664ac0b7' visibility='default' filepath='include/linux/i2c.h' line='418' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='flags' type-id='8efea9e5' visibility='default' filepath='include/linux/i2c.h' line='419' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='176'>
+          <var-decl name='addr' type-id='8efea9e5' visibility='default' filepath='include/linux/i2c.h' line='420' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dev_name' type-id='80f4b756' visibility='default' filepath='include/linux/i2c.h' line='421' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='platform_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/i2c.h' line='422' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='of_node' type-id='9a537bbe' visibility='default' filepath='include/linux/i2c.h' line='423' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='fwnode' type-id='4a935625' visibility='default' filepath='include/linux/i2c.h' line='424' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='swnode' type-id='1cc6783c' visibility='default' filepath='include/linux/i2c.h' line='425' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='resources' type-id='e153f6de' visibility='default' filepath='include/linux/i2c.h' line='426' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='num_resources' type-id='f0981eeb' visibility='default' filepath='include/linux/i2c.h' line='427' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='irq' type-id='95e97e5e' visibility='default' filepath='include/linux/i2c.h' line='428' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_event_motion_det' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2414' column='1' id='f95c1b03'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2415' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='frame_sequence' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2416' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='region_mask' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='2417' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='f9617b12'>
+        <parameter type-id='2bf16f59'/>
+        <parameter type-id='63e171df'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='eaa32e2f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='f962dd87'>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='2ce52478'/>
+        <parameter type-id='2ce52478'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='7d89f13e' size-in-bits='64' id='f96da5a1'/>
+      <class-decl name='cpuidle_governor' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/cpuidle.h' line='263' column='1' id='f9729b9a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='ac1fa8c0' visibility='default' filepath='include/linux/cpuidle.h' line='264' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='governor_list' type-id='72f469ec' visibility='default' filepath='include/linux/cpuidle.h' line='265' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rating' type-id='f0981eeb' visibility='default' filepath='include/linux/cpuidle.h' line='266' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='enable' type-id='66797707' visibility='default' filepath='include/linux/cpuidle.h' line='268' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='disable' type-id='b2ad9442' visibility='default' filepath='include/linux/cpuidle.h' line='270' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='select' type-id='d0794225' visibility='default' filepath='include/linux/cpuidle.h' line='273' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='reflect' type-id='07b25468' visibility='default' filepath='include/linux/cpuidle.h' line='276' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='6b532d3e' size-in-bits='64' id='f98203c0'/>
+      <pointer-type-def type-id='31b74d85' size-in-bits='64' id='f98694f9'/>
+      <array-type-def dimensions='1' type-id='85535682' size-in-bits='4096' id='f989fdcc'>
+        <subrange length='64' type-id='7ff19f0f' id='b10be967'/>
+      </array-type-def>
+      <class-decl name='discovery_state' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='67' column='1' id='f98a45fb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='95e97e5e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='state' type-id='08f5ca17' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='all' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='unknown' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='resolve' type-id='72f469ec' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='timestamp' type-id='3f1a6b60' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='last_adv_addr' type-id='c2840192' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='528'>
+          <var-decl name='last_adv_addr_type' type-id='f9b06939' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='536'>
+          <var-decl name='last_adv_rssi' type-id='fdbf7a0f' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='last_adv_flags' type-id='19c2251e' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='last_adv_data' type-id='23e37060' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='824'>
+          <var-decl name='last_adv_data_len' type-id='f9b06939' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='report_invalid_rssi' type-id='b50a4934' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='840'>
+          <var-decl name='result_filtering' type-id='b50a4934' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='848'>
+          <var-decl name='limited' type-id='b50a4934' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='856'>
+          <var-decl name='rssi' type-id='fdbf7a0f' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='uuid_count' type-id='1dc6a898' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='uuids' type-id='e5ee094d' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='scan_start' type-id='7359adad' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='scan_duration' type-id='7359adad' visibility='default' filepath='include/net/bluetooth/hci_core.h' line='93' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='34f7ad3d' size-in-bits='64' id='f98f7769'/>
+      <pointer-type-def type-id='bb7d63cb' size-in-bits='64' id='f997070b'/>
+      <function-type size-in-bits='64' id='f9981d75'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='d494b97c'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='i3c_error_code' filepath='include/linux/i3c/device.h' line='33' column='1' id='f9ac5040'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='I3C_ERROR_UNKNOWN' value='0'/>
+        <enumerator name='I3C_ERROR_M0' value='1'/>
+        <enumerator name='I3C_ERROR_M1' value='2'/>
+        <enumerator name='I3C_ERROR_M2' value='3'/>
+      </enum-decl>
+      <typedef-decl name='u8' type-id='8f048e17' filepath='include/asm-generic/int-ll64.h' line='17' column='1' id='f9b06939'/>
+      <typedef-decl name='poll_table' type-id='415eecf1' filepath='include/linux/poll.h' line='46' column='1' id='f9b2d12e'/>
+      <pointer-type-def type-id='9cbd1c16' size-in-bits='64' id='f9b37274'/>
+      <class-decl name='trace_export' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/trace.h' line='23' column='1' id='f9b47a31'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='15dccca9' visibility='default' filepath='include/linux/trace.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='write' type-id='81c26048' visibility='default' filepath='include/linux/trace.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/linux/trace.h' line='26' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='2aaa0129' const='yes' id='f9b748d8'/>
+      <class-decl name='snd_info_entry_ops' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/sound/info.h' line='37' column='1' id='f9b9a795'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='open' type-id='1aa763a8' visibility='default' filepath='include/sound/info.h' line='38' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='release' type-id='113423d8' visibility='default' filepath='include/sound/info.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='read' type-id='b9922d07' visibility='default' filepath='include/sound/info.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='write' type-id='6047a55c' visibility='default' filepath='include/sound/info.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='llseek' type-id='882bc4d4' visibility='default' filepath='include/sound/info.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='poll' type-id='305a7ffa' visibility='default' filepath='include/sound/info.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='ioctl' type-id='3d52c694' visibility='default' filepath='include/sound/info.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='mmap' type-id='e118a96a' visibility='default' filepath='include/sound/info.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/sound/info.h' line='60' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='f9bc47e0'>
+        <parameter type-id='85535682'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='uio_info' size-in-bits='4608' is-struct='yes' visibility='default' filepath='include/linux/uio_driver.h' line='101' column='1' id='f9c1a8c9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='uio_dev' type-id='776fd487' visibility='default' filepath='include/linux/uio_driver.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/uio_driver.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='version' type-id='80f4b756' visibility='default' filepath='include/linux/uio_driver.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mem' type-id='1afbfcb5' visibility='default' filepath='include/linux/uio_driver.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='port' type-id='712dd60d' visibility='default' filepath='include/linux/uio_driver.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4032'>
+          <var-decl name='irq' type-id='bd54fe1a' visibility='default' filepath='include/linux/uio_driver.h' line='107' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4096'>
+          <var-decl name='irq_flags' type-id='7359adad' visibility='default' filepath='include/linux/uio_driver.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4160'>
+          <var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/uio_driver.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4224'>
+          <var-decl name='handler' type-id='83705195' visibility='default' filepath='include/linux/uio_driver.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4288'>
+          <var-decl name='mmap' type-id='011c3e5a' visibility='default' filepath='include/linux/uio_driver.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4352'>
+          <var-decl name='open' type-id='71c75804' visibility='default' filepath='include/linux/uio_driver.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4416'>
+          <var-decl name='release' type-id='71c75804' visibility='default' filepath='include/linux/uio_driver.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4480'>
+          <var-decl name='irqcontrol' type-id='e5635fec' visibility='default' filepath='include/linux/uio_driver.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4544'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/uio_driver.h' line='115' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='79eccb20' size-in-bits='64' id='f9c3a0be'/>
+      <class-decl name='xfrm_encap_tmpl' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/uapi/linux/xfrm.h' line='254' column='1' id='f9cce85e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='encap_type' type-id='d315442e' visibility='default' filepath='include/uapi/linux/xfrm.h' line='255' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='encap_sport' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/xfrm.h' line='256' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='encap_dport' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/xfrm.h' line='257' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='encap_oa' type-id='c210d497' visibility='default' filepath='include/uapi/linux/xfrm.h' line='258' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='te1_settings' type-id='9da50c8f' filepath='include/uapi/linux/hdlc/ioctl.h' line='51' column='1' id='f9d018aa'/>
+      <array-type-def dimensions='1' type-id='658e6198' size-in-bits='512' id='f9d25413'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <pointer-type-def type-id='9a54e634' size-in-bits='64' id='f9d4c3c6'/>
+      <pointer-type-def type-id='24255cb2' size-in-bits='64' id='f9d7b9fc'/>
+      <pointer-type-def type-id='7458c17e' size-in-bits='64' id='f9de3b94'/>
+      <pointer-type-def type-id='fdf99500' size-in-bits='64' id='f9e5d11e'/>
+      <array-type-def dimensions='1' type-id='acf879b5' size-in-bits='768' id='f9e65ff3'>
+        <subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
+      </array-type-def>
+      <pointer-type-def type-id='054882f1' size-in-bits='64' id='f9e738c5'/>
+      <function-type size-in-bits='64' id='f9ec7b52'>
+        <parameter type-id='e6b84692'/>
+        <parameter type-id='ffbf24ff'/>
+        <parameter type-id='5799dc94'/>
+        <parameter type-id='1f37a7f4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='netdev_features_t' type-id='91ce1af9' filepath='include/linux/netdev_features.h' line='12' column='1' id='f9f4b16f'/>
+      <class-decl name='completion' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/completion.h' line='26' column='1' id='f9fef04f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='done' type-id='f0981eeb' 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='944dbe72' visibility='default' filepath='include/linux/completion.h' line='28' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='12506762' size-in-bits='64' id='fa013de0'/>
+      <pointer-type-def type-id='91f77fa3' size-in-bits='64' id='fa058983'/>
+      <class-decl name='udp_hslot' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/udp.h' line='58' column='1' id='fa07ab8f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='head' type-id='e151255a' visibility='default' filepath='include/net/udp.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='count' type-id='95e97e5e' visibility='default' filepath='include/net/udp.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/net/udp.h' line='61' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='2' type-id='8f048e17' size-in-bits='304' id='fa0a1f4c'>
+        <subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
+        <subrange length='19' type-id='7ff19f0f' id='448ee30f'/>
+      </array-type-def>
+      <pointer-type-def type-id='66e487eb' size-in-bits='64' id='fa0b179b'/>
+      <array-type-def dimensions='1' type-id='d0622163' size-in-bits='512' id='fa0d0a7f'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <class-decl name='xt_tgchk_param' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='123' column='1' id='fa0eab7f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='net' type-id='a2bff676' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='table' type-id='80f4b756' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='125' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='entryinfo' type-id='eaa32e2f' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='126' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='target' type-id='b7f14b36' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='127' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='targinfo' type-id='eaa32e2f' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='128' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='hook_mask' type-id='f0981eeb' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='family' type-id='892641a4' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='360'>
+          <var-decl name='nft_compat' type-id='b50a4934' visibility='default' filepath='include/linux/netfilter/x_tables.h' line='131' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='9a9cf0bf' size-in-bits='64' id='fa0eba8f'/>
+      <function-type size-in-bits='64' id='fa12cc76'>
+        <parameter type-id='94f8595c'/>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='96d7cfec'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='macsec_tx_sc' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/net/macsec.h' line='187' column='1' id='fa1382bd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='active' type-id='b50a4934' visibility='default' filepath='include/net/macsec.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='encoding_sa' type-id='f9b06939' visibility='default' filepath='include/net/macsec.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='encrypt' type-id='b50a4934' visibility='default' filepath='include/net/macsec.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='send_sci' type-id='b50a4934' visibility='default' filepath='include/net/macsec.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='end_station' type-id='b50a4934' visibility='default' filepath='include/net/macsec.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='scb' type-id='b50a4934' visibility='default' filepath='include/net/macsec.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sa' type-id='0c7316af' visibility='default' filepath='include/net/macsec.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='stats' type-id='c02a1c77' visibility='default' filepath='include/net/macsec.h' line='195' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='drm_mode_config_helper_funcs' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='1367' column='1' id='fa206174'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='atomic_commit_tail' type-id='75795f13' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='1403' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='atomic_commit_setup' type-id='9257f544' visibility='default' filepath='include/drm/drm_modeset_helper_vtables.h' line='1424' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='fscrypt_operations' size-in-bits='1152' is-struct='yes' visibility='default' filepath='include/linux/fscrypt.h' line='59' column='1' id='fa21a7e9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/fscrypt.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='key_prefix' type-id='80f4b756' visibility='default' filepath='include/linux/fscrypt.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='get_context' type-id='c60354f3' visibility='default' filepath='include/linux/fscrypt.h' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='set_context' type-id='ef75df1f' visibility='default' filepath='include/linux/fscrypt.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='get_dummy_policy' type-id='c0135c9c' visibility='default' filepath='include/linux/fscrypt.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='empty_dir' type-id='deb31178' visibility='default' filepath='include/linux/fscrypt.h' line='119' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='has_stable_inodes' type-id='3b2da7a6' visibility='default' filepath='include/linux/fscrypt.h' line='135' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='get_ino_and_lblk_bits' type-id='c95d966d' visibility='default' filepath='include/linux/fscrypt.h' line='149' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='get_num_devices' type-id='d2f4c704' visibility='default' filepath='include/linux/fscrypt.h' line='161' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='get_devices' type-id='b0ddaf40' visibility='default' filepath='include/linux/fscrypt.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fscrypt.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fscrypt.h' line='173' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fscrypt.h' line='174' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fscrypt.h' line='175' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='android_oem_data1' type-id='20b279f0' visibility='default' filepath='include/linux/fscrypt.h' line='177' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0d3f29fc' size-in-bits='64' id='fa2519a6'/>
+      <function-type size-in-bits='64' id='fa255d5a'>
+        <parameter type-id='0ac68794'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='cec_pin' is-struct='yes' visibility='default' is-declaration-only='yes' id='fa296b96'/>
+      <pointer-type-def type-id='29c8dc19' size-in-bits='64' id='fa32a449'/>
+      <pointer-type-def type-id='c2603804' size-in-bits='64' id='fa35bf16'/>
+      <class-decl name='ip_options' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/inet_sock.h' line='39' column='1' id='fa35cea9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='faddr' type-id='78a133c2' visibility='default' filepath='include/net/inet_sock.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='nexthop' type-id='78a133c2' visibility='default' filepath='include/net/inet_sock.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='optlen' type-id='002ac4a6' visibility='default' filepath='include/net/inet_sock.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='72'>
+          <var-decl name='srr' type-id='002ac4a6' visibility='default' filepath='include/net/inet_sock.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='80'>
+          <var-decl name='rr' type-id='002ac4a6' visibility='default' filepath='include/net/inet_sock.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='88'>
+          <var-decl name='ts' type-id='002ac4a6' visibility='default' filepath='include/net/inet_sock.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='is_strictroute' type-id='002ac4a6' visibility='default' filepath='include/net/inet_sock.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='97'>
+          <var-decl name='srr_is_hit' type-id='002ac4a6' visibility='default' filepath='include/net/inet_sock.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='98'>
+          <var-decl name='is_changed' type-id='002ac4a6' visibility='default' filepath='include/net/inet_sock.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='99'>
+          <var-decl name='rr_needaddr' type-id='002ac4a6' visibility='default' filepath='include/net/inet_sock.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='100'>
+          <var-decl name='ts_needtime' type-id='002ac4a6' visibility='default' filepath='include/net/inet_sock.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='101'>
+          <var-decl name='ts_needaddr' type-id='002ac4a6' visibility='default' filepath='include/net/inet_sock.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='104'>
+          <var-decl name='router_alert' type-id='002ac4a6' visibility='default' filepath='include/net/inet_sock.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='112'>
+          <var-decl name='cipso' type-id='002ac4a6' visibility='default' filepath='include/net/inet_sock.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='120'>
+          <var-decl name='__pad2' type-id='002ac4a6' visibility='default' filepath='include/net/inet_sock.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='__data' type-id='5e6516ee' visibility='default' filepath='include/net/inet_sock.h' line='55' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='f5f6e55e' const='yes' id='fa3724eb'/>
+      <pointer-type-def type-id='7d43ac00' size-in-bits='64' id='fa3ed3a2'/>
+      <pointer-type-def type-id='038d05bd' size-in-bits='64' id='fa43ef1d'/>
+      <pointer-type-def type-id='4e0b8246' size-in-bits='64' id='fa4d54c3'/>
+      <class-decl name='usb_bus' size-in-bits='1536' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='440' column='1' id='fa4d7704'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='controller' type-id='fa0b179b' visibility='default' filepath='include/linux/usb.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sysdev' type-id='fa0b179b' visibility='default' filepath='include/linux/usb.h' line='442' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='busnum' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='bus_name' type-id='80f4b756' visibility='default' filepath='include/linux/usb.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='uses_pio_for_control' type-id='f9b06939' visibility='default' filepath='include/linux/usb.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='264'>
+          <var-decl name='otg_port' type-id='f9b06939' visibility='default' filepath='include/linux/usb.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='272'>
+          <var-decl name='is_b_host' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='273'>
+          <var-decl name='b_hnp_enable' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='274'>
+          <var-decl name='no_stop_on_short' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='275'>
+          <var-decl name='no_sg_constraint' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='sg_tablesize' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='devnum_next' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='devnum_next_mutex' type-id='925167dc' visibility='default' filepath='include/linux/usb.h' line='462' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='devmap' type-id='d78885c5' visibility='default' filepath='include/linux/usb.h' line='464' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='root_hub' type-id='25e60cb2' visibility='default' filepath='include/linux/usb.h' line='465' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='hs_companion' type-id='3ab7d422' visibility='default' filepath='include/linux/usb.h' line='466' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='bandwidth_allocated' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='468' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='bandwidth_int_reqs' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='475' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='bandwidth_isoc_reqs' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='476' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='resuming_ports' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='478' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='mon_bus' type-id='6bd5d742' visibility='default' filepath='include/linux/usb.h' line='480' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='monitored' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='481' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='483' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='484' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='485' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='486' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='fa5149d8'>
+        <parameter type-id='2ce52478'/>
+        <return type-id='b59d7dce'/>
+      </function-type>
+      <enum-decl name='led_brightness' filepath='include/linux/leds.h' line='29' column='1' id='fa598f35'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='LED_OFF' value='0'/>
+        <enumerator name='LED_ON' value='1'/>
+        <enumerator name='LED_HALF' value='127'/>
+        <enumerator name='LED_FULL' value='255'/>
+      </enum-decl>
+      <enum-decl name='ethtool_link_ext_substate_cable_issue' filepath='include/uapi/linux/ethtool.h' line='647' column='1' id='fa5fe5da'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE' value='1'/>
+        <enumerator name='ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE' value='2'/>
+      </enum-decl>
+      <enum-decl name='bpf_netdev_command' filepath='include/linux/netdevice.h' line='962' column='1' id='fa64b30d'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='XDP_SETUP_PROG' value='0'/>
+        <enumerator name='XDP_SETUP_PROG_HW' value='1'/>
+        <enumerator name='BPF_OFFLOAD_MAP_ALLOC' value='2'/>
+        <enumerator name='BPF_OFFLOAD_MAP_FREE' value='3'/>
+        <enumerator name='XDP_SETUP_XSK_POOL' value='4'/>
+      </enum-decl>
+      <class-decl name='binder_proc' size-in-bits='4864' is-struct='yes' visibility='default' filepath='drivers/android/binder_internal.h' line='428' column='1' id='fa674076'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='proc_node' type-id='03a4a074' visibility='default' filepath='drivers/android/binder_internal.h' line='429' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='threads' type-id='dec44472' visibility='default' filepath='drivers/android/binder_internal.h' line='430' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='nodes' type-id='dec44472' visibility='default' filepath='drivers/android/binder_internal.h' line='431' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='refs_by_desc' type-id='dec44472' visibility='default' filepath='drivers/android/binder_internal.h' line='432' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='refs_by_node' type-id='dec44472' visibility='default' filepath='drivers/android/binder_internal.h' line='433' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='waiting_threads' type-id='72f469ec' visibility='default' filepath='drivers/android/binder_internal.h' line='434' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='pid' type-id='95e97e5e' visibility='default' filepath='drivers/android/binder_internal.h' line='435' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='tsk' type-id='f23e2572' visibility='default' filepath='drivers/android/binder_internal.h' line='436' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='cred' type-id='bc33861a' visibility='default' filepath='drivers/android/binder_internal.h' line='437' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='deferred_work_node' type-id='03a4a074' visibility='default' filepath='drivers/android/binder_internal.h' line='438' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='deferred_work' type-id='95e97e5e' visibility='default' filepath='drivers/android/binder_internal.h' line='439' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='outstanding_txns' type-id='95e97e5e' visibility='default' filepath='drivers/android/binder_internal.h' line='440' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='is_dead' type-id='b50a4934' visibility='default' filepath='drivers/android/binder_internal.h' line='441' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='904'>
+          <var-decl name='is_frozen' type-id='b50a4934' visibility='default' filepath='drivers/android/binder_internal.h' line='442' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='912'>
+          <var-decl name='sync_recv' type-id='b50a4934' visibility='default' filepath='drivers/android/binder_internal.h' line='443' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='920'>
+          <var-decl name='async_recv' type-id='b50a4934' visibility='default' filepath='drivers/android/binder_internal.h' line='444' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='freeze_wait' type-id='b5ab048f' visibility='default' filepath='drivers/android/binder_internal.h' line='445' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='todo' type-id='72f469ec' visibility='default' filepath='drivers/android/binder_internal.h' line='447' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='stats' type-id='7e06c299' visibility='default' filepath='drivers/android/binder_internal.h' line='448' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='delivered_death' type-id='72f469ec' visibility='default' filepath='drivers/android/binder_internal.h' line='449' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='max_threads' type-id='95e97e5e' visibility='default' filepath='drivers/android/binder_internal.h' line='450' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3168'>
+          <var-decl name='requested_threads' type-id='95e97e5e' visibility='default' filepath='drivers/android/binder_internal.h' line='451' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='requested_threads_started' type-id='95e97e5e' visibility='default' filepath='drivers/android/binder_internal.h' line='452' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3232'>
+          <var-decl name='tmp_ref' type-id='95e97e5e' visibility='default' filepath='drivers/android/binder_internal.h' line='453' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='default_priority' type-id='de30810e' visibility='default' filepath='drivers/android/binder_internal.h' line='454' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='debugfs_entry' type-id='27675065' visibility='default' filepath='drivers/android/binder_internal.h' line='455' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='alloc' type-id='eb5d0d8b' visibility='default' filepath='drivers/android/binder_internal.h' line='456' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4608'>
+          <var-decl name='context' type-id='05dc2175' visibility='default' filepath='drivers/android/binder_internal.h' line='457' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4672'>
+          <var-decl name='inner_lock' type-id='fb4018a0' visibility='default' filepath='drivers/android/binder_internal.h' line='458' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4704'>
+          <var-decl name='outer_lock' type-id='fb4018a0' visibility='default' filepath='drivers/android/binder_internal.h' line='459' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4736'>
+          <var-decl name='binderfs_entry' type-id='27675065' visibility='default' filepath='drivers/android/binder_internal.h' line='460' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='4800'>
+          <var-decl name='oneway_spam_detection_enabled' type-id='b50a4934' visibility='default' filepath='drivers/android/binder_internal.h' line='461' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='fa712c1b'>
+        <parameter type-id='fa0b179b'/>
+        <parameter type-id='ec167ceb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='fa75c86d'>
+        <parameter type-id='7a5054b7'/>
+        <parameter type-id='0e291009'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='fa7c8a73'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='19c2251e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='rtc_time' size-in-bits='288' is-struct='yes' visibility='default' filepath='include/uapi/linux/rtc.h' line='24' column='1' id='fa8285d4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='tm_sec' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/rtc.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='tm_min' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/rtc.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='tm_hour' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/rtc.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='tm_mday' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/rtc.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='tm_mon' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/rtc.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='tm_year' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/rtc.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='tm_wday' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/rtc.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='tm_yday' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/rtc.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='tm_isdst' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/rtc.h' line='33' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='10b62ab9' size-in-bits='64' id='fa90931d'/>
+      <function-type size-in-bits='64' id='fa93dbe1'>
+        <parameter type-id='ca9354d1'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='hid_type' filepath='include/linux/hid.h' line='542' column='1' id='fa954a4e'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HID_TYPE_OTHER' value='0'/>
+        <enumerator name='HID_TYPE_USBMOUSE' value='1'/>
+        <enumerator name='HID_TYPE_USBNONE' value='2'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='fa99b793'>
+        <parameter type-id='c0ced320'/>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='27675065'/>
+        <parameter type-id='2594b00f'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='xfrm_algo_auth' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/uapi/linux/xfrm.h' line='108' column='1' id='faa1424f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='alg_name' type-id='59daf3ef' visibility='default' filepath='include/uapi/linux/xfrm.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='alg_key_len' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/xfrm.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='alg_trunc_len' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/xfrm.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='alg_key' type-id='e84913bd' visibility='default' filepath='include/uapi/linux/xfrm.h' line='112' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='59b5b331' size-in-bits='16384' id='faa42463'>
+        <subrange length='64' type-id='7ff19f0f' id='b10be967'/>
+      </array-type-def>
+      <pointer-type-def type-id='a9a2d60c' size-in-bits='64' id='faa9576a'/>
+      <class-decl name='fib6_info' size-in-bits='1408' is-struct='yes' visibility='default' filepath='include/net/ip6_fib.h' line='168' column='1' id='faaac7a5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fib6_table' type-id='7156b317' visibility='default' filepath='include/net/ip6_fib.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fib6_next' type-id='fe454a75' visibility='default' filepath='include/net/ip6_fib.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fib6_node' type-id='f7b83e6d' visibility='default' filepath='include/net/ip6_fib.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='' type-id='ac5ab5c1' visibility='default' filepath='include/net/ip6_fib.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='fib6_nsiblings' type-id='f0981eeb' visibility='default' filepath='include/net/ip6_fib.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='fib6_ref' type-id='64615833' visibility='default' filepath='include/net/ip6_fib.h' line='184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='expires' type-id='7359adad' visibility='default' filepath='include/net/ip6_fib.h' line='185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='fib6_metrics' type-id='8eff91b0' visibility='default' filepath='include/net/ip6_fib.h' line='186' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='fib6_dst' type-id='d7f36d8e' visibility='default' filepath='include/net/ip6_fib.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='fib6_flags' type-id='19c2251e' visibility='default' filepath='include/net/ip6_fib.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='fib6_src' type-id='d7f36d8e' visibility='default' filepath='include/net/ip6_fib.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='fib6_prefsrc' type-id='d7f36d8e' visibility='default' filepath='include/net/ip6_fib.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='fib6_metric' type-id='19c2251e' visibility='default' filepath='include/net/ip6_fib.h' line='194' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1056'>
+          <var-decl name='fib6_protocol' type-id='f9b06939' visibility='default' filepath='include/net/ip6_fib.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1064'>
+          <var-decl name='fib6_type' type-id='f9b06939' visibility='default' filepath='include/net/ip6_fib.h' line='196' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1072'>
+          <var-decl name='offload' type-id='f9b06939' visibility='default' filepath='include/net/ip6_fib.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1080'>
+          <var-decl name='trap' type-id='f9b06939' visibility='default' filepath='include/net/ip6_fib.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='offload_failed' type-id='f9b06939' visibility='default' filepath='include/net/ip6_fib.h' line='200' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1096'>
+          <var-decl name='should_flush' type-id='f9b06939' visibility='default' filepath='include/net/ip6_fib.h' line='202' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1097'>
+          <var-decl name='dst_nocount' type-id='f9b06939' visibility='default' filepath='include/net/ip6_fib.h' line='203' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1098'>
+          <var-decl name='dst_nopolicy' type-id='f9b06939' visibility='default' filepath='include/net/ip6_fib.h' line='204' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1099'>
+          <var-decl name='fib6_destroying' type-id='f9b06939' visibility='default' filepath='include/net/ip6_fib.h' line='205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1100'>
+          <var-decl name='unused' type-id='f9b06939' visibility='default' filepath='include/net/ip6_fib.h' line='206' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/ip6_fib.h' line='208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='nh' type-id='f32120a7' visibility='default' filepath='include/net/ip6_fib.h' line='209' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/ip6_fib.h' line='211' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='fib6_nh' type-id='7be723ef' visibility='default' filepath='include/net/ip6_fib.h' line='213' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='mipi_dsi_dcs_tear_mode' filepath='include/drm/drm_mipi_dsi.h' line='253' column='1' id='fab62dae'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='MIPI_DSI_DCS_TEAR_MODE_VBLANK' value='0'/>
+        <enumerator name='MIPI_DSI_DCS_TEAR_MODE_VHBLANK' value='1'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='fac43f4c'>
+        <parameter type-id='389faaf7'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='1fbc513b' size-in-bits='64' id='fac661b7'/>
+      <pointer-type-def type-id='0b2fc110' size-in-bits='64' id='fac731d6'/>
+      <class-decl name='bpf_prog' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/filter.h' line='563' column='1' id='facd5338'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pages' type-id='1dc6a898' visibility='default' filepath='include/linux/filter.h' line='564' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='jited' type-id='1dc6a898' visibility='default' filepath='include/linux/filter.h' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='17'>
+          <var-decl name='jit_requested' type-id='1dc6a898' visibility='default' filepath='include/linux/filter.h' line='566' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='18'>
+          <var-decl name='gpl_compatible' type-id='1dc6a898' visibility='default' filepath='include/linux/filter.h' line='567' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='19'>
+          <var-decl name='cb_access' type-id='1dc6a898' visibility='default' filepath='include/linux/filter.h' line='568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='20'>
+          <var-decl name='dst_needed' type-id='1dc6a898' visibility='default' filepath='include/linux/filter.h' line='569' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='21'>
+          <var-decl name='blinded' type-id='1dc6a898' visibility='default' filepath='include/linux/filter.h' line='570' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='22'>
+          <var-decl name='is_func' type-id='1dc6a898' visibility='default' filepath='include/linux/filter.h' line='571' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='23'>
+          <var-decl name='kprobe_override' type-id='1dc6a898' visibility='default' filepath='include/linux/filter.h' line='572' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='24'>
+          <var-decl name='has_callchain_buf' type-id='1dc6a898' visibility='default' filepath='include/linux/filter.h' line='573' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='25'>
+          <var-decl name='enforce_expected_attach_type' type-id='1dc6a898' visibility='default' filepath='include/linux/filter.h' line='574' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='26'>
+          <var-decl name='call_get_stack' type-id='1dc6a898' visibility='default' filepath='include/linux/filter.h' line='575' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='27'>
+          <var-decl name='call_get_func_ip' type-id='1dc6a898' visibility='default' filepath='include/linux/filter.h' line='576' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='type' type-id='b80df76a' visibility='default' filepath='include/linux/filter.h' line='577' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='expected_attach_type' type-id='67ce11ed' visibility='default' filepath='include/linux/filter.h' line='578' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='len' type-id='19c2251e' visibility='default' filepath='include/linux/filter.h' line='579' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='jited_len' type-id='19c2251e' visibility='default' filepath='include/linux/filter.h' line='580' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='tag' type-id='d2f7b56a' visibility='default' filepath='include/linux/filter.h' line='581' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='stats' type-id='fbf2ba3a' visibility='default' filepath='include/linux/filter.h' line='582' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='active' type-id='7292109c' visibility='default' filepath='include/linux/filter.h' line='583' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='bpf_func' type-id='531a7450' visibility='default' filepath='include/linux/filter.h' line='584' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='aux' type-id='1e6beae1' visibility='default' filepath='include/linux/filter.h' line='586' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='orig_prog' type-id='e93ad915' visibility='default' filepath='include/linux/filter.h' line='587' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='insns' type-id='4967766c' visibility='default' filepath='include/linux/filter.h' line='589' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='insnsi' type-id='b50399da' visibility='default' filepath='include/linux/filter.h' line='590' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='db458173' size-in-bits='64' id='fad01747'/>
+      <array-type-def dimensions='1' type-id='a30e8d1f' size-in-bits='16384' id='fad2e2f3'>
+        <subrange length='256' type-id='7ff19f0f' id='36e5b9fa'/>
+      </array-type-def>
+      <qualified-type-def type-id='dbf3947c' const='yes' id='fad8dcd1'/>
+      <pointer-type-def type-id='599f2dd2' size-in-bits='64' id='fae1bbc0'/>
+      <pointer-type-def type-id='f95bfc29' size-in-bits='64' id='fae597a1'/>
+      <pointer-type-def type-id='a622177d' size-in-bits='64' id='fae5f6fe'/>
+      <function-type size-in-bits='64' id='fae72313'>
+        <parameter type-id='204a4632'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='e215eeb6' size-in-bits='64' id='fae741e8'/>
+      <function-type size-in-bits='64' id='faebaea7'>
+        <parameter type-id='ee27b7c6'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='xfrm_type_offload' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/xfrm.h' line='408' column='1' id='faf1ab29'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/net/xfrm.h' line='409' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='proto' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='410' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='encap' type-id='a81671bb' visibility='default' filepath='include/net/xfrm.h' line='411' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='input_tail' type-id='5e185d4c' visibility='default' filepath='include/net/xfrm.h' line='412' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='xmit' type-id='231269da' visibility='default' filepath='include/net/xfrm.h' line='413' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='ZSTD_CDict' type-id='39e4bf1e' filepath='include/linux/zstd.h' line='365' column='1' id='faf4b969'/>
+      <pointer-type-def type-id='54cc740b' size-in-bits='64' id='fb02122b'/>
+      <class-decl name='file_lock_context' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1182' column='1' id='fb0c2987'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flc_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/fs.h' line='1183' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flc_flock' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1184' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='flc_posix' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1185' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='flc_lease' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1186' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ccff656f' size-in-bits='64' id='fb0c6b9f'/>
+      <pointer-type-def type-id='becf2142' size-in-bits='64' id='fb0d26e0'/>
+      <class-decl name='v4l2_subdev_frame_interval_enum' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='141' column='1' id='fb0dbd21'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='142' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='pad' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='code' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='144' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='interval' type-id='5f37256e' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='which' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='148' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='reserved' type-id='7f84eb57' visibility='default' filepath='include/uapi/linux/v4l2-subdev.h' line='149' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='f9c1a8c9' size-in-bits='64' id='fb1092f1'/>
+      <pointer-type-def type-id='71fa1210' size-in-bits='64' id='fb17c5d2'/>
+      <class-decl name='udp_tunnel_nic' is-struct='yes' visibility='default' is-declaration-only='yes' id='fb1c0f0a'/>
+      <function-type size-in-bits='64' id='fb2144e8'>
+        <parameter type-id='fa0b179b'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='fb246cd7'>
+        <parameter type-id='7a76d041'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='ec664304' size-in-bits='64' id='fb29201e'/>
+      <qualified-type-def type-id='ec216e31' const='yes' id='fb2ad8ec'/>
+      <class-decl name='geni_icc_path' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/qcom-geni-se.h' line='49' column='1' id='fb2af2d4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='path' type-id='b5fdec5e' visibility='default' filepath='include/linux/qcom-geni-se.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='avg_bw' type-id='f0981eeb' visibility='default' filepath='include/linux/qcom-geni-se.h' line='51' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='fb2d711b'>
+        <parameter type-id='ecb0ce18'/>
+        <parameter type-id='6b9b777a'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <typedef-decl name='spinlock_t' type-id='53fb272e' filepath='include/linux/spinlock_types.h' line='29' column='1' id='fb4018a0'/>
+      <pointer-type-def type-id='cf96947e' size-in-bits='64' id='fb424bb0'/>
+      <class-decl name='sb_writers' size-in-bits='2560' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1498' column='1' id='fb476a2b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='frozen' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1499' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='wait_unfrozen' type-id='b5ab048f' visibility='default' filepath='include/linux/fs.h' line='1500' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rw_sem' type-id='a09ef5a6' visibility='default' filepath='include/linux/fs.h' line='1501' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='0f042891' const='yes' id='fb4943b2'/>
+      <class-decl name='fc_log' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/fs_context.h' line='186' column='1' id='fb4c7dfb'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='usage' type-id='64615833' visibility='default' filepath='include/linux/fs_context.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='head' type-id='f9b06939' visibility='default' filepath='include/linux/fs_context.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='40'>
+          <var-decl name='tail' type-id='f9b06939' visibility='default' filepath='include/linux/fs_context.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='need_free' type-id='f9b06939' visibility='default' filepath='include/linux/fs_context.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/fs_context.h' line='191' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='buffer' type-id='460b55b1' visibility='default' filepath='include/linux/fs_context.h' line='192' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='z_streamp' type-id='369435a4' filepath='include/linux/zlib.h' line='103' column='1' id='fb4f8c25'/>
+      <array-type-def dimensions='1' type-id='f9fef04f' size-in-bits='7936' id='fb518993'>
+        <subrange length='31' type-id='7ff19f0f' id='ae5e1d19'/>
+      </array-type-def>
+      <pointer-type-def type-id='f3e87129' size-in-bits='64' id='fb55efa1'/>
+      <function-type size-in-bits='64' id='fb647348'>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='5a0af12e'/>
+        <parameter type-id='7359adad'/>
+        <parameter type-id='02f11ed4'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='026a169a' size-in-bits='64' id='fb648468'/>
+      <class-decl name='iova_rcache' size-in-bits='2240' is-struct='yes' visibility='default' filepath='include/linux/iova.h' line='31' column='1' id='fb6a0229'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/iova.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='depot_size' type-id='7359adad' visibility='default' filepath='include/linux/iova.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='depot' type-id='859a2dd8' visibility='default' filepath='include/linux/iova.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='cpu_rcaches' type-id='d3af9964' visibility='default' filepath='include/linux/iova.h' line='35' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='rproc_ops' size-in-bits='1088' is-struct='yes' visibility='default' filepath='include/linux/remoteproc.h' line='385' column='1' id='fb6b0a12'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='prepare' type-id='64c391d1' visibility='default' filepath='include/linux/remoteproc.h' line='386' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='unprepare' type-id='64c391d1' visibility='default' filepath='include/linux/remoteproc.h' line='387' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='start' type-id='64c391d1' visibility='default' filepath='include/linux/remoteproc.h' line='388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='stop' type-id='64c391d1' visibility='default' filepath='include/linux/remoteproc.h' line='389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='attach' type-id='64c391d1' visibility='default' filepath='include/linux/remoteproc.h' line='390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='detach' type-id='64c391d1' visibility='default' filepath='include/linux/remoteproc.h' line='391' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='kick' type-id='c6485e8f' visibility='default' filepath='include/linux/remoteproc.h' line='392' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='da_to_va' type-id='baa39639' visibility='default' filepath='include/linux/remoteproc.h' line='393' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='parse_fw' type-id='39d0366f' visibility='default' filepath='include/linux/remoteproc.h' line='394' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='handle_rsc' type-id='b104e6b0' visibility='default' filepath='include/linux/remoteproc.h' line='395' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='find_loaded_rsc_table' type-id='0d07dca9' visibility='default' filepath='include/linux/remoteproc.h' line='397' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='get_loaded_rsc_table' type-id='0e03258f' visibility='default' filepath='include/linux/remoteproc.h' line='399' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='load' type-id='39d0366f' visibility='default' filepath='include/linux/remoteproc.h' line='401' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='sanity_check' type-id='39d0366f' visibility='default' filepath='include/linux/remoteproc.h' line='402' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='get_boot_addr' type-id='7d649fb6' visibility='default' filepath='include/linux/remoteproc.h' line='403' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='panic' type-id='5f0a40de' visibility='default' filepath='include/linux/remoteproc.h' line='404' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='coredump' type-id='feeb6c20' visibility='default' filepath='include/linux/remoteproc.h' line='405' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='fb73ecde'>
+        <parameter type-id='e90f4666'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='eth_dev' size-in-bits='1600' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='55' column='1' id='fb75bb68'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='port_usb' type-id='04b6a8dc' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='net' type-id='68a2d05b' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='gadget' type-id='49a58c0c' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='req_lock' type-id='fb4018a0' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='tx_reqs' type-id='72f469ec' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='rx_reqs' type-id='72f469ec' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='tx_qlen' type-id='49178f86' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='rx_frames' type-id='e61c85d0' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='qmult' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='header_len' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='wrap' type-id='ade1e67f' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='unwrap' type-id='125250b1' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='work' type-id='ef9025d0' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1408'>
+          <var-decl name='todo' type-id='7359adad' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1472'>
+          <var-decl name='zlp' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='83' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1480'>
+          <var-decl name='no_skb_reserve' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='84' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1488'>
+          <var-decl name='ifname_set' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='85' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1496'>
+          <var-decl name='host_mac' type-id='cf1a4160' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1544'>
+          <var-decl name='dev_mac' type-id='cf1a4160' visibility='default' filepath='drivers/usb/gadget/function/u_ether.c' line='87' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0c01943f' size-in-bits='64' id='fb7c1d0f'/>
+      <typedef-decl name='cc_t' type-id='002ac4a6' filepath='include/uapi/asm-generic/termbits.h' line='7' column='1' id='fb7c6451'/>
+      <pointer-type-def type-id='78b26ac9' size-in-bits='64' id='fb7d87a1'/>
+      <pointer-type-def type-id='e32a05ed' size-in-bits='64' id='fb7dc22d'/>
+      <pointer-type-def type-id='9154cd19' size-in-bits='64' id='fb7f0749'/>
+      <pointer-type-def type-id='75985c10' size-in-bits='64' id='fb86b772'/>
+      <pointer-type-def type-id='d9866c79' size-in-bits='64' id='fb8c75c5'/>
+      <function-type size-in-bits='64' id='fb9c833a'>
+        <parameter type-id='a970a64c'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='fba20e52'>
+        <parameter type-id='226853d2'/>
+        <parameter type-id='54e54fbb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <enum-decl name='__anonymous_enum__' filepath='lib/zstd/huf.h' line='133' column='1' id='fba7ac0b' is-anonymous='yes'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='HUF_repeat_none' value='0'/>
+        <enumerator name='HUF_repeat_check' value='1'/>
+        <enumerator name='HUF_repeat_valid' value='2'/>
+      </enum-decl>
+      <pointer-type-def type-id='cf2e67bb' size-in-bits='64' id='fbaba52b'/>
+      <qualified-type-def type-id='d4f8274f' const='yes' id='fbb00d34'/>
+      <class-decl name='ethtool_usrip6_spec' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/ethtool.h' line='946' column='1' id='fbb12f62'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ip6src' type-id='30180d4b' visibility='default' filepath='include/uapi/linux/ethtool.h' line='947' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ip6dst' type-id='30180d4b' visibility='default' filepath='include/uapi/linux/ethtool.h' line='948' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='l4_4_bytes' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ethtool.h' line='949' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='tclass' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='950' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='296'>
+          <var-decl name='l4_proto' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ethtool.h' line='951' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='13606a0e' size-in-bits='64' id='fbb36f38'/>
+      <typedef-decl name='ktime_t' type-id='9b7c55ef' filepath='include/linux/ktime.h' line='29' column='1' id='fbc017ef'/>
+      <pointer-type-def type-id='5a449113' size-in-bits='64' id='fbc594d3'/>
+      <class-decl name='genl_info' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/net/genetlink.h' line='88' column='1' id='fbcd72c8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='snd_seq' type-id='19c2251e' visibility='default' filepath='include/net/genetlink.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='snd_portid' type-id='19c2251e' visibility='default' filepath='include/net/genetlink.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='nlhdr' type-id='c2074578' visibility='default' filepath='include/net/genetlink.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='genlhdr' type-id='db93e57c' visibility='default' filepath='include/net/genetlink.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='userhdr' type-id='eaa32e2f' visibility='default' filepath='include/net/genetlink.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='attrs' type-id='30864cdc' visibility='default' filepath='include/net/genetlink.h' line='94' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='_net' type-id='c9df1e6c' visibility='default' filepath='include/net/genetlink.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='user_ptr' type-id='24ae0315' visibility='default' filepath='include/net/genetlink.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='extack' type-id='5799dc94' visibility='default' filepath='include/net/genetlink.h' line='97' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='led_init_data' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/leds.h' line='42' column='1' id='fbd376ca'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='fwnode' type-id='4a935625' visibility='default' filepath='include/linux/leds.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='default_label' type-id='80f4b756' visibility='default' filepath='include/linux/leds.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='devicename' type-id='80f4b756' visibility='default' filepath='include/linux/leds.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='devname_mandatory' type-id='b50a4934' visibility='default' filepath='include/linux/leds.h' line='63' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='__wsum' type-id='3f1a6b60' filepath='include/uapi/linux/types.h' line='37' column='1' id='fbd88bba'/>
+      <pointer-type-def type-id='10498fec' size-in-bits='64' id='fbd9657e'/>
+      <function-type size-in-bits='64' id='fbe01570'>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='d5a71d52'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='fbe9020d'>
+        <parameter type-id='21e53d44'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='eaa32e2f'/>
+        <return type-id='27675065'/>
+      </function-type>
+      <class-decl name='crypto_skcipher_spawn' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/crypto/internal/skcipher.h' line='31' column='1' id='fbedd770'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='base' type-id='58ba85d8' visibility='default' filepath='include/crypto/internal/skcipher.h' line='32' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='7af446cc' size-in-bits='64' id='fbf2ba3a'/>
+      <class-decl name='of_phandle_args' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/of.h' line='74' column='1' id='fbff4263'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='np' type-id='9a537bbe' visibility='default' filepath='include/linux/of.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='args_count' type-id='95e97e5e' visibility='default' filepath='include/linux/of.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='args' type-id='625d6c02' visibility='default' filepath='include/linux/of.h' line='77' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='fc053d58'>
+        <parameter type-id='3aaeef89'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='15e229a3' size-in-bits='64' id='fc0762ab'/>
+      <pointer-type-def type-id='50f7c736' size-in-bits='64' id='fc096b90'/>
+      <function-type size-in-bits='64' id='fc0b88d2'>
+        <parameter type-id='feb59272'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='ehci_fstn' size-in-bits='256' is-struct='yes' visibility='default' filepath='drivers/usb/host/ehci.h' line='594' column='1' id='fc0d91e8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='hw_next' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='595' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='hw_prev' type-id='2f162548' visibility='default' filepath='drivers/usb/host/ehci.h' line='596' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fstn_dma' type-id='cf29c9b3' visibility='default' filepath='drivers/usb/host/ehci.h' line='599' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='fstn_next' type-id='014fe25e' visibility='default' filepath='drivers/usb/host/ehci.h' line='600' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='84b3d3cb' size-in-bits='64' id='fc0e8b7b'/>
+      <function-type size-in-bits='64' id='fc125a12'>
+        <parameter type-id='2cb4dc09'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='80f4b756'/>
+      </function-type>
+      <pointer-type-def type-id='347c1853' size-in-bits='64' id='fc143737'/>
+      <function-type size-in-bits='64' id='fc14a418'>
+        <parameter type-id='b9608bfc'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='7e666abe'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='2ae08426'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='9b07d522' size-in-bits='64' id='fc1fbe7c'/>
+      <class-decl name='pci_ops' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/pci.h' line='767' column='1' id='fc2007cc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='add_bus' type-id='4a1c3304' visibility='default' filepath='include/linux/pci.h' line='768' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='remove_bus' type-id='7df445b9' visibility='default' filepath='include/linux/pci.h' line='769' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='map_bus' type-id='d479d76a' visibility='default' filepath='include/linux/pci.h' line='770' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='read' type-id='ffde3570' visibility='default' filepath='include/linux/pci.h' line='771' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='write' type-id='934d23eb' visibility='default' filepath='include/linux/pci.h' line='772' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/pci.h' line='774' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='wiphy_vendor_command' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5300' column='1' id='fc206ed1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='info' type-id='e223f110' visibility='default' filepath='include/net/cfg80211.h' line='5301' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5302' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='doit' type-id='a9032da3' visibility='default' filepath='include/net/cfg80211.h' line='5303' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dumpit' type-id='dcf81beb' visibility='default' filepath='include/net/cfg80211.h' line='5305' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='policy' type-id='109cdb66' visibility='default' filepath='include/net/cfg80211.h' line='5308' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='maxattr' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5309' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5311' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='fc224242'>
+        <parameter type-id='37175e4d'/>
+        <parameter type-id='5b4284d1'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='e151255a' size-in-bits='192' id='fc293b5f'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <array-type-def dimensions='1' type-id='e151255a' size-in-bits='256' id='fc3a8480'>
+        <subrange length='4' type-id='7ff19f0f' id='16fe7105'/>
+      </array-type-def>
+      <class-decl name='fbcurpos' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/fb.h' line='384' column='1' id='fc4b98cd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='x' type-id='d315442e' visibility='default' filepath='include/uapi/linux/fb.h' line='385' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='y' type-id='d315442e' visibility='default' filepath='include/uapi/linux/fb.h' line='385' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='392af4e9' size-in-bits='64' id='fc4f83c1'/>
+      <pointer-type-def type-id='58dbb714' size-in-bits='64' id='fc616182'/>
+      <class-decl name='usb_iso_packet_descriptor' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1387' column='1' id='fc6d031c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='offset' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1388' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='length' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1389' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='actual_length' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1390' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='status' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1391' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='4234e231' size-in-bits='64' id='fc6f14a9'/>
+      <pointer-type-def type-id='3f4b2250' size-in-bits='64' id='fc7240d6'/>
+      <qualified-type-def type-id='89d7cb48' const='yes' id='fc72728d'/>
+      <class-decl name='serial_rs485' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/linux/serial.h' line='117' column='1' id='fc72f170'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/serial.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='delay_rts_before_send' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/serial.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='delay_rts_after_send' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/serial.h' line='130' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='padding' type-id='83a5454e' visibility='default' filepath='include/uapi/linux/serial.h' line='131' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1a1b1987' size-in-bits='64' id='fc7390cb'/>
+      <pointer-type-def type-id='9386c3d1' size-in-bits='64' id='fc7daf55'/>
+      <array-type-def dimensions='1' type-id='002ac4a6' size-in-bits='256' id='fc872715'>
+        <subrange length='32' type-id='7ff19f0f' id='ae5bde82'/>
+      </array-type-def>
+      <class-decl name='elevator_queue' size-in-bits='5440' is-struct='yes' visibility='default' filepath='include/linux/elevator.h' line='110' column='1' id='fc87d78f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='4a89adae' visibility='default' filepath='include/linux/elevator.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='elevator_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/elevator.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='kobj' type-id='b6ab8849' visibility='default' filepath='include/linux/elevator.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='sysfs_lock' type-id='925167dc' visibility='default' filepath='include/linux/elevator.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='registered' type-id='f0981eeb' visibility='default' filepath='include/linux/elevator.h' line='116' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='hash' type-id='53b70d6c' visibility='default' filepath='include/linux/elevator.h' line='117' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='fc8b497c'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='128d0ac4' const='yes' id='fc8e93cb'/>
+      <class-decl name='class_attribute' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/device/class.h' line='197' column='1' id='fc927268'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='attr' type-id='a6222917' visibility='default' filepath='include/linux/device/class.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='show' type-id='c4c01ce7' visibility='default' filepath='include/linux/device/class.h' line='199' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='store' type-id='dfcac4bb' visibility='default' filepath='include/linux/device/class.h' line='201' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c5078f42' size-in-bits='64' id='fc932690'/>
+      <function-type size-in-bits='64' id='fca2ff53'>
+        <parameter type-id='b8e94b0b'/>
+        <parameter type-id='0fbf3cfd'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d2e28fdc' size-in-bits='64' id='fca800be'/>
+      <qualified-type-def type-id='8c644de4' const='yes' id='fcc07cbf'/>
+      <class-decl name='v4l2_ctrl_fwht_params' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1661' column='1' id='fcc0eea6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='backward_ref_ts' type-id='d3130597' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1662' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='version' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1663' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='width' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1664' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='height' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1665' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1666' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='colorspace' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1667' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='xfer_func' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1668' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ycbcr_enc' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1669' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='quantization' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/v4l2-controls.h' line='1670' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='1f54f780' size-in-bits='64' id='fcc1e09e'/>
+      <pointer-type-def type-id='73629046' size-in-bits='64' id='fcc49348'/>
+      <class-decl name='tcp_ulp_ops' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/net/tcp.h' line='2204' column='1' id='fccb029f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/tcp.h' line='2205' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='init' type-id='55530c47' visibility='default' filepath='include/net/tcp.h' line='2208' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='update' type-id='58220cf1' visibility='default' filepath='include/net/tcp.h' line='2210' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='release' type-id='841969d0' visibility='default' filepath='include/net/tcp.h' line='2213' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='get_info' type-id='684afc90' visibility='default' filepath='include/net/tcp.h' line='2215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='get_info_size' type-id='08a11828' visibility='default' filepath='include/net/tcp.h' line='2216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='clone' type-id='e9e8c0f8' visibility='default' filepath='include/net/tcp.h' line='2218' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='name' type-id='ac1fa8c0' visibility='default' filepath='include/net/tcp.h' line='2221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/net/tcp.h' line='2222' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='c12c58ce' size-in-bits='64' id='fccfeeec'/>
+      <function-type size-in-bits='64' id='fcd4ba8e'>
+        <parameter type-id='bd1c8eb6'/>
+        <parameter type-id='e98ceb7f'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='d03af91a' size-in-bits='64' id='fcd64690'/>
+      <pointer-type-def type-id='ad7e730a' size-in-bits='64' id='fcd78288'/>
+      <pointer-type-def type-id='732bc085' size-in-bits='64' id='fce0537d'/>
+      <pointer-type-def type-id='3173bc57' size-in-bits='64' id='fce14c5f'/>
+      <function-type size-in-bits='64' id='fce58953'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='603c345a'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='fcf647be'>
+        <parameter type-id='3059cd0b'/>
+        <parameter type-id='70d004a5'/>
+        <parameter type-id='f078c744'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='b3bc5b3a' size-in-bits='64' id='fd03a8f4'/>
+      <pointer-type-def type-id='41861775' size-in-bits='64' id='fd0db729'/>
+      <class-decl name='compressor' size-in-bits='1024' is-struct='yes' visibility='default' filepath='include/linux/ppp-comp.h' line='33' column='1' id='fd122cd4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='compress_proto' type-id='95e97e5e' visibility='default' filepath='include/linux/ppp-comp.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='comp_alloc' type-id='26560df0' visibility='default' filepath='include/linux/ppp-comp.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='comp_free' type-id='b7f9d8e6' visibility='default' filepath='include/linux/ppp-comp.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='comp_init' type-id='03237108' visibility='default' filepath='include/linux/ppp-comp.h' line='43' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='comp_reset' type-id='b7f9d8e6' visibility='default' filepath='include/linux/ppp-comp.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='compress' type-id='c35da6ff' visibility='default' filepath='include/linux/ppp-comp.h' line='50' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='comp_stat' type-id='20cd282d' visibility='default' filepath='include/linux/ppp-comp.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='decomp_alloc' type-id='26560df0' visibility='default' filepath='include/linux/ppp-comp.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='decomp_free' type-id='b7f9d8e6' visibility='default' filepath='include/linux/ppp-comp.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='decomp_init' type-id='eef261f7' visibility='default' filepath='include/linux/ppp-comp.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='decomp_reset' type-id='b7f9d8e6' visibility='default' filepath='include/linux/ppp-comp.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='decompress' type-id='836fd925' visibility='default' filepath='include/linux/ppp-comp.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='incomp' type-id='15f4611e' visibility='default' filepath='include/linux/ppp-comp.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='decomp_stat' type-id='20cd282d' visibility='default' filepath='include/linux/ppp-comp.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/ppp-comp.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='comp_extra' type-id='f0981eeb' visibility='default' filepath='include/linux/ppp-comp.h' line='83' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tracer' size-in-bits='1216' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='525' column='1' id='fd1f8b7c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='kernel/trace/trace.h' line='526' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='init' type-id='30b9fb16' visibility='default' filepath='kernel/trace/trace.h' line='527' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='reset' type-id='578c706b' visibility='default' filepath='kernel/trace/trace.h' line='528' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='start' type-id='578c706b' visibility='default' filepath='kernel/trace/trace.h' line='529' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='stop' type-id='578c706b' visibility='default' filepath='kernel/trace/trace.h' line='530' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='update_thresh' type-id='30b9fb16' visibility='default' filepath='kernel/trace/trace.h' line='531' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='open' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='532' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='pipe_open' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='533' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='close' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='534' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='pipe_close' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='535' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='read' type-id='43a53075' visibility='default' filepath='kernel/trace/trace.h' line='536' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='splice_read' type-id='0d8953a0' visibility='default' filepath='kernel/trace/trace.h' line='539' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='print_header' type-id='0f294852' visibility='default' filepath='kernel/trace/trace.h' line='549' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='print_line' type-id='cfbdf512' visibility='default' filepath='kernel/trace/trace.h' line='550' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='set_flag' type-id='d01e1ab3' visibility='default' filepath='kernel/trace/trace.h' line='552' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='flag_changed' type-id='e3e70e04' visibility='default' filepath='kernel/trace/trace.h' line='555' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='next' type-id='0a18715a' visibility='default' filepath='kernel/trace/trace.h' line='557' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='flags' type-id='aef13606' visibility='default' filepath='kernel/trace/trace.h' line='558' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='enabled' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='559' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1184'>
+          <var-decl name='print_max' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='560' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1192'>
+          <var-decl name='allow_instances' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='561' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1200'>
+          <var-decl name='noboot' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='566' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='rtc_class_ops' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/rtc.h' line='60' column='1' id='fd1fa73c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ioctl' type-id='05594c99' visibility='default' filepath='include/linux/rtc.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='read_time' type-id='57d10d30' visibility='default' filepath='include/linux/rtc.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='set_time' type-id='57d10d30' visibility='default' filepath='include/linux/rtc.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='read_alarm' type-id='d3769ffd' visibility='default' filepath='include/linux/rtc.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='set_alarm' type-id='d3769ffd' visibility='default' filepath='include/linux/rtc.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='proc' type-id='103ef621' visibility='default' filepath='include/linux/rtc.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='alarm_irq_enable' type-id='7b683b77' visibility='default' filepath='include/linux/rtc.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='read_offset' type-id='ab7ca002' visibility='default' filepath='include/linux/rtc.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='set_offset' type-id='3b25b30a' visibility='default' filepath='include/linux/rtc.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/rtc.h' line='71' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='v4l2_tuner' size-in-bits='672' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1887' column='1' id='fd240b02'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='index' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1888' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='name' type-id='7e67d89d' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1889' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1890' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='capability' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1891' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='rangelow' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1892' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='rangehigh' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1893' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='rxsubchans' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1894' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='audmode' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1895' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='signal' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1896' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='afc' type-id='3158a266' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1897' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='544'>
+          <var-decl name='reserved' type-id='3fa29bab' visibility='default' filepath='include/uapi/linux/videodev2.h' line='1898' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='fd2fbac1'>
+        <parameter type-id='a6711537'/>
+        <parameter type-id='e3dd029e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='7359adad' size-in-bits='5760' id='fd42223a'>
+        <subrange length='90' type-id='7ff19f0f' id='21e71e12'/>
+      </array-type-def>
+      <pointer-type-def type-id='1cd99dc1' size-in-bits='64' id='fd437b0d'/>
+      <class-decl name='scsi_pointer' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='43' column='1' id='fd44f8bd'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ptr' type-id='26a90f95' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='44' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='this_residual' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='45' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='buffer' type-id='bf3ef905' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='buffers_residual' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dma_handle' type-id='cf29c9b3' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='49' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='Status' type-id='e024ff18' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='Message' type-id='e024ff18' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='have_data_in' type-id='e024ff18' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='416'>
+          <var-decl name='sent_command' type-id='e024ff18' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='phase' type-id='e024ff18' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='55' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='class' size-in-bits='1216' is-struct='yes' visibility='default' filepath='include/linux/device/class.h' line='55' column='1' id='fd48a067'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/device/class.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/device/class.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='class_groups' type-id='c97de1ac' visibility='default' filepath='include/linux/device/class.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='dev_groups' type-id='c97de1ac' visibility='default' filepath='include/linux/device/class.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='dev_kobj' type-id='d30bdc51' visibility='default' filepath='include/linux/device/class.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='dev_uevent' type-id='22deb949' visibility='default' filepath='include/linux/device/class.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='devnode' type-id='8cd77b5f' visibility='default' filepath='include/linux/device/class.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='class_release' type-id='bea4d586' visibility='default' filepath='include/linux/device/class.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='dev_release' type-id='dd787f72' visibility='default' filepath='include/linux/device/class.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='shutdown_pre' type-id='613d39f5' visibility='default' filepath='include/linux/device/class.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='ns_type' type-id='47547dee' visibility='default' filepath='include/linux/device/class.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='namespace' type-id='e6c297c2' visibility='default' filepath='include/linux/device/class.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='get_ownership' type-id='f5f7cbd4' visibility='default' filepath='include/linux/device/class.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='pm' type-id='3fab024e' visibility='default' filepath='include/linux/device/class.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='p' type-id='5da77304' visibility='default' filepath='include/linux/device/class.h' line='78' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/device/class.h' line='80' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/device/class.h' line='81' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/device/class.h' line='82' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/device/class.h' line='83' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='trace_event_call' size-in-bits='1152' is-struct='yes' visibility='default' filepath='include/linux/trace_events.h' line='345' column='1' id='fd48a6e6'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/trace_events.h' line='346' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='class' type-id='3570c570' visibility='default' filepath='include/linux/trace_events.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='' type-id='ac5ab59e' visibility='default' filepath='include/linux/trace_events.h' line='348' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='event' type-id='78b26ac9' visibility='default' filepath='include/linux/trace_events.h' line='353' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='print_fmt' type-id='26a90f95' visibility='default' filepath='include/linux/trace_events.h' line='354' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='filter' type-id='26461068' visibility='default' filepath='include/linux/trace_events.h' line='355' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='' type-id='ac5ab59f' visibility='default' filepath='include/linux/trace_events.h' line='360' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/trace_events.h' line='364' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/linux/trace_events.h' line='367' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='928'>
+          <var-decl name='perf_refcount' type-id='95e97e5e' visibility='default' filepath='include/linux/trace_events.h' line='370' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='perf_events' type-id='030d0b18' visibility='default' filepath='include/linux/trace_events.h' line='371' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='prog_array' type-id='380c7edc' visibility='default' filepath='include/linux/trace_events.h' line='372' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='perf_perm' type-id='7fa32aba' visibility='default' filepath='include/linux/trace_events.h' line='374' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='082b64be' size-in-bits='64' id='fd53db64'/>
+      <pointer-type-def type-id='7363afc0' size-in-bits='64' id='fd54eeba'/>
+      <qualified-type-def type-id='993e7488' const='yes' id='fd66e479'/>
+      <pointer-type-def type-id='b36b391c' size-in-bits='64' id='fd780be6'/>
+      <pointer-type-def type-id='0c3d809b' size-in-bits='64' id='fd7bd477'/>
+      <qualified-type-def type-id='9f48327c' const='yes' id='fd7caa9b'/>
+      <class-decl name='usb_ctrlrequest' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='213' column='1' id='fd7e7994'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='bRequestType' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='214' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='bRequest' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='215' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='wValue' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='216' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='wIndex' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='217' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='48'>
+          <var-decl name='wLength' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='218' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='display_timing' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/video/display_timing.h' line='63' column='1' id='fd7f3d28'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='pixelclock' type-id='c372ad74' visibility='default' filepath='include/video/display_timing.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='hactive' type-id='c372ad74' visibility='default' filepath='include/video/display_timing.h' line='66' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hfront_porch' type-id='c372ad74' visibility='default' filepath='include/video/display_timing.h' line='67' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='hback_porch' type-id='c372ad74' visibility='default' filepath='include/video/display_timing.h' line='68' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='hsync_len' type-id='c372ad74' visibility='default' filepath='include/video/display_timing.h' line='69' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='480'>
+          <var-decl name='vactive' type-id='c372ad74' visibility='default' filepath='include/video/display_timing.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='vfront_porch' type-id='c372ad74' visibility='default' filepath='include/video/display_timing.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='vback_porch' type-id='c372ad74' visibility='default' filepath='include/video/display_timing.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='vsync_len' type-id='c372ad74' visibility='default' filepath='include/video/display_timing.h' line='74' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='864'>
+          <var-decl name='flags' type-id='04e8607a' visibility='default' filepath='include/video/display_timing.h' line='76' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0f035502' size-in-bits='64' id='fd801eb0'/>
+      <pointer-type-def type-id='228968a1' size-in-bits='64' id='fd8daf85'/>
+      <pointer-type-def type-id='e281f141' size-in-bits='64' id='fd8f0b71'/>
+      <class-decl name='arch_msi_msg_addr_lo' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/msi.h' line='11' column='1' id='fda93ff5'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='address_lo' type-id='19c2251e' visibility='default' filepath='include/linux/msi.h' line='12' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='ip6t_replace' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='219' column='1' id='fdaf7365'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='16dc656a' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='221' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='valid_hooks' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='225' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='num_entries' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='228' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='size' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='231' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='352'>
+          <var-decl name='hook_entry' type-id='4d5a4f46' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='234' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='underflow' type-id='4d5a4f46' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='237' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='672'>
+          <var-decl name='num_counters' type-id='f0981eeb' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='241' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='counters' type-id='14e4adab' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='243' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='entries' type-id='897aa90d' visibility='default' filepath='include/uapi/linux/netfilter_ipv6/ip6_tables.h' line='246' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='reboot_mode' filepath='include/linux/reboot.h' line='16' column='1' id='fdb20761'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='REBOOT_UNDEFINED' value='-1'/>
+        <enumerator name='REBOOT_COLD' value='0'/>
+        <enumerator name='REBOOT_WARM' value='1'/>
+        <enumerator name='REBOOT_HARD' value='2'/>
+        <enumerator name='REBOOT_SOFT' value='3'/>
+        <enumerator name='REBOOT_GPIO' value='4'/>
+      </enum-decl>
+      <function-type size-in-bits='64' id='fdb31210'>
+        <parameter type-id='43c38462'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <qualified-type-def type-id='cf8d7d81' const='yes' id='fdb55010'/>
+      <pointer-type-def type-id='9ee64233' size-in-bits='64' id='fdb631af'/>
+      <function-type size-in-bits='64' id='fdb72d3d'>
+        <parameter type-id='503ff1ba'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <typedef-decl name='s8' type-id='8af57d41' filepath='include/asm-generic/int-ll64.h' line='16' column='1' id='fdbf7a0f'/>
+      <class-decl name='xfrm_mode' size-in-bits='24' is-struct='yes' visibility='default' filepath='include/net/xfrm.h' line='137' column='1' id='fdc52c40'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='encap' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='138' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='8'>
+          <var-decl name='family' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/net/xfrm.h' line='140' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='0c695772' const='yes' id='fdc939a7'/>
+      <function-type size-in-bits='64' id='fdcd3504'>
+        <parameter type-id='807b7702'/>
+        <parameter type-id='b7c1d7d5'/>
+        <parameter type-id='99baf115'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='95abac74' size-in-bits='64' id='fdd04afe'/>
+      <pointer-type-def type-id='1d1c42c2' size-in-bits='64' id='fdd0a4cc'/>
+      <pointer-type-def type-id='bdb26574' size-in-bits='64' id='fdd592fa'/>
+      <class-decl name='vm_userfaultfd_ctx' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/mm_types.h' line='311' column='1' id='fdd6214e'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='ctx' type-id='9d25db30' visibility='default' filepath='include/linux/mm_types.h' line='312' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0457ac44' size-in-bits='64' id='fddad99e'/>
+      <function-type size-in-bits='64' id='fddf5518'>
+        <parameter type-id='513f51db'/>
+        <parameter type-id='a7832498'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <pointer-type-def type-id='04ddf8cd' size-in-bits='64' id='fde001a9'/>
+      <pointer-type-def type-id='c3b8a83b' size-in-bits='64' id='fde1bbcb'/>
+      <pointer-type-def type-id='593d8168' size-in-bits='64' id='fde42bf2'/>
+      <class-decl name='ucounts' size-in-bits='1152' is-struct='yes' visibility='default' filepath='include/linux/user_namespace.h' line='108' column='1' id='fdf3707c'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='03a4a074' visibility='default' filepath='include/linux/user_namespace.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='ns' type-id='c0ced320' visibility='default' filepath='include/linux/user_namespace.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='uid' type-id='d80b72e6' visibility='default' filepath='include/linux/user_namespace.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='count' type-id='49178f86' visibility='default' filepath='include/linux/user_namespace.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='ucount' type-id='80b13f9b' visibility='default' filepath='include/linux/user_namespace.h' line='113' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='d7d97b09' const='yes' id='fdf99500'/>
+      <pointer-type-def type-id='921fbfdc' size-in-bits='64' id='fdfb3042'/>
+      <class-decl name='device_driver' size-in-bits='1408' is-struct='yes' visibility='default' filepath='include/linux/device/driver.h' line='95' column='1' id='fe007c02'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/device/driver.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='bus' type-id='5e2671f8' visibility='default' filepath='include/linux/device/driver.h' line='97' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/device/driver.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='mod_name' type-id='80f4b756' visibility='default' filepath='include/linux/device/driver.h' line='100' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='suppress_bind_attrs' type-id='b50a4934' visibility='default' filepath='include/linux/device/driver.h' line='102' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='288'>
+          <var-decl name='probe_type' type-id='171c98b7' visibility='default' filepath='include/linux/device/driver.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='of_match_table' type-id='e5ce629e' visibility='default' filepath='include/linux/device/driver.h' line='105' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='acpi_match_table' type-id='5b62aa60' visibility='default' filepath='include/linux/device/driver.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='probe' type-id='613d39f5' visibility='default' filepath='include/linux/device/driver.h' line='108' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='sync_state' type-id='dd787f72' visibility='default' filepath='include/linux/device/driver.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='remove' type-id='613d39f5' visibility='default' filepath='include/linux/device/driver.h' line='110' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='shutdown' type-id='dd787f72' visibility='default' filepath='include/linux/device/driver.h' line='111' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='suspend' type-id='df416a94' visibility='default' filepath='include/linux/device/driver.h' line='112' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='resume' type-id='613d39f5' visibility='default' filepath='include/linux/device/driver.h' line='113' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='groups' type-id='c97de1ac' visibility='default' filepath='include/linux/device/driver.h' line='114' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='dev_groups' type-id='c97de1ac' visibility='default' filepath='include/linux/device/driver.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='pm' type-id='3fab024e' visibility='default' filepath='include/linux/device/driver.h' line='117' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='coredump' type-id='dd787f72' visibility='default' filepath='include/linux/device/driver.h' line='118' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='p' type-id='52abf1d3' visibility='default' filepath='include/linux/device/driver.h' line='120' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/device/driver.h' line='122' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/device/driver.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/device/driver.h' line='124' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/device/driver.h' line='125' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='inode' size-in-bits='6016' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='640' column='1' id='fe070fe8'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='i_mode' type-id='2594b00f' visibility='default' filepath='include/linux/fs.h' line='641' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='16'>
+          <var-decl name='i_opflags' type-id='8efea9e5' visibility='default' filepath='include/linux/fs.h' line='642' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='i_uid' type-id='d80b72e6' visibility='default' filepath='include/linux/fs.h' line='643' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='i_gid' type-id='094d8048' visibility='default' filepath='include/linux/fs.h' line='644' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='96'>
+          <var-decl name='i_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='645' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='i_acl' type-id='2871909b' visibility='default' filepath='include/linux/fs.h' line='648' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='i_default_acl' type-id='2871909b' visibility='default' filepath='include/linux/fs.h' line='649' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='i_op' type-id='de2c232c' visibility='default' filepath='include/linux/fs.h' line='652' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='i_sb' type-id='42c8f564' visibility='default' filepath='include/linux/fs.h' line='653' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='i_mapping' type-id='f57039f0' visibility='default' filepath='include/linux/fs.h' line='654' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='i_security' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs.h' line='657' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='i_ino' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='661' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='' type-id='ac5ab5dc' visibility='default' filepath='include/linux/fs.h' line='669' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='608'>
+          <var-decl name='i_rdev' type-id='8504f260' visibility='default' filepath='include/linux/fs.h' line='673' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='i_size' type-id='69bf7bee' visibility='default' filepath='include/linux/fs.h' line='674' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='i_atime' type-id='40a816ad' visibility='default' filepath='include/linux/fs.h' line='675' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='i_mtime' type-id='40a816ad' visibility='default' filepath='include/linux/fs.h' line='676' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='i_ctime' type-id='40a816ad' visibility='default' filepath='include/linux/fs.h' line='677' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='i_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/fs.h' line='678' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1120'>
+          <var-decl name='i_bytes' type-id='8efea9e5' visibility='default' filepath='include/linux/fs.h' line='679' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1136'>
+          <var-decl name='i_blkbits' type-id='f9b06939' visibility='default' filepath='include/linux/fs.h' line='680' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1144'>
+          <var-decl name='i_write_hint' type-id='f9b06939' visibility='default' filepath='include/linux/fs.h' line='681' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1152'>
+          <var-decl name='i_blocks' type-id='17345459' visibility='default' filepath='include/linux/fs.h' line='682' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1216'>
+          <var-decl name='i_state' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='689' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='i_rwsem' type-id='f19fdb93' visibility='default' filepath='include/linux/fs.h' line='690' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1792'>
+          <var-decl name='dirtied_when' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='692' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='dirtied_time_when' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='693' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='i_hash' type-id='03a4a074' visibility='default' filepath='include/linux/fs.h' line='695' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='i_io_list' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='696' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='i_wb' type-id='f885ca7d' visibility='default' filepath='include/linux/fs.h' line='698' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='i_wb_frn_winner' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='701' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2272'>
+          <var-decl name='i_wb_frn_avg_time' type-id='1dc6a898' visibility='default' filepath='include/linux/fs.h' line='702' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2288'>
+          <var-decl name='i_wb_frn_history' type-id='1dc6a898' visibility='default' filepath='include/linux/fs.h' line='703' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='i_lru' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='705' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='i_sb_list' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='706' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='i_wb_list' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='707' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='' type-id='ac5ab5dd' visibility='default' filepath='include/linux/fs.h' line='708' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2816'>
+          <var-decl name='i_version' type-id='28ee064c' visibility='default' filepath='include/linux/fs.h' line='712' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2880'>
+          <var-decl name='i_sequence' type-id='28ee064c' visibility='default' filepath='include/linux/fs.h' line='713' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2944'>
+          <var-decl name='i_count' type-id='49178f86' visibility='default' filepath='include/linux/fs.h' line='714' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2976'>
+          <var-decl name='i_dio_count' type-id='49178f86' visibility='default' filepath='include/linux/fs.h' line='715' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3008'>
+          <var-decl name='i_writecount' type-id='49178f86' visibility='default' filepath='include/linux/fs.h' line='716' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3040'>
+          <var-decl name='i_readcount' type-id='49178f86' visibility='default' filepath='include/linux/fs.h' line='718' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3072'>
+          <var-decl name='' type-id='ac5ab5de' visibility='default' filepath='include/linux/fs.h' line='720' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3136'>
+          <var-decl name='i_flctx' type-id='731257ff' visibility='default' filepath='include/linux/fs.h' line='724' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='i_data' type-id='0fd82dc2' visibility='default' filepath='include/linux/fs.h' line='725' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5376'>
+          <var-decl name='i_devices' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='726' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5504'>
+          <var-decl name='' type-id='ac5ab5df' visibility='default' filepath='include/linux/fs.h' line='727' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5568'>
+          <var-decl name='i_generation' type-id='3f1a6b60' visibility='default' filepath='include/linux/fs.h' line='734' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5600'>
+          <var-decl name='i_fsnotify_mask' type-id='3f1a6b60' visibility='default' filepath='include/linux/fs.h' line='737' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5632'>
+          <var-decl name='i_fsnotify_marks' type-id='994d9d61' visibility='default' filepath='include/linux/fs.h' line='738' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5696'>
+          <var-decl name='i_crypt_info' type-id='1ea8c5af' visibility='default' filepath='include/linux/fs.h' line='742' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5760'>
+          <var-decl name='i_verity_info' type-id='ba18e248' visibility='default' filepath='include/linux/fs.h' line='746' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5824'>
+          <var-decl name='i_private' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs.h' line='749' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5888'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='751' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5952'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='752' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='fe091efd'>
+        <parameter type-id='0f5a7eb8'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='b0b3cbf9' size-in-bits='64' id='fe09dd29'/>
+      <function-type size-in-bits='64' id='fe1697ae'>
+        <parameter type-id='f772df6d'/>
+        <parameter type-id='19c2251e'/>
+        <parameter type-id='7292109c'/>
+        <parameter type-id='2cbe71ce'/>
+        <return type-id='b59d7dce'/>
+      </function-type>
+      <pointer-type-def type-id='d71978c5' size-in-bits='64' id='fe17c379'/>
+      <pointer-type-def type-id='57ca8159' size-in-bits='64' id='fe18af5d'/>
+      <class-decl name='audit_cap_data' size-in-bits='288' is-struct='yes' visibility='default' filepath='include/../kernel/audit.h' line='54' column='1' id='fe20adfc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='permitted' type-id='7496b151' visibility='default' filepath='include/../kernel/audit.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='inheritable' type-id='7496b151' visibility='default' filepath='include/../kernel/audit.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='' type-id='ac5ab5bd' visibility='default' filepath='include/../kernel/audit.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='ambient' type-id='7496b151' visibility='default' filepath='include/../kernel/audit.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='rootid' type-id='d80b72e6' visibility='default' filepath='include/../kernel/audit.h' line='62' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='8192abc8' size-in-bits='64' id='fe2b49fa'/>
+      <pointer-type-def type-id='2b7bb54d' size-in-bits='64' id='fe2d9f1d'/>
+      <pointer-type-def type-id='9045ae21' size-in-bits='64' id='fe3087c9'/>
+      <class-decl name='sigaction' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/signal_types.h' line='37' column='1' id='fe391c48'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='sa_handler' type-id='8cdd9566' visibility='default' filepath='include/linux/signal_types.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='sa_flags' type-id='7359adad' visibility='default' filepath='include/linux/signal_types.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='sa_restorer' type-id='81564178' visibility='default' filepath='include/linux/signal_types.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='sa_mask' type-id='daf33c64' visibility='default' filepath='include/linux/signal_types.h' line='48' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='0337a003' size-in-bits='64' id='fe3a6ee7'/>
+      <class-decl name='timerqueue_node' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/timerqueue.h' line='9' column='1' id='fe3acb42'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='node' type-id='2a8a6332' visibility='default' filepath='include/linux/timerqueue.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='expires' type-id='fbc017ef' visibility='default' filepath='include/linux/timerqueue.h' line='11' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='e32cf39f' size-in-bits='64' id='fe3af88b'/>
+      <function-type size-in-bits='64' id='fe3cfa56'>
+        <parameter type-id='b64ad7cb'/>
+        <return type-id='35078cb9'/>
+      </function-type>
+      <function-type size-in-bits='64' id='fe3f6888'>
+        <parameter type-id='ecb0ce18'/>
+        <return type-id='19c2251e'/>
+      </function-type>
+      <pointer-type-def type-id='faaac7a5' size-in-bits='64' id='fe454a75'/>
+      <array-type-def dimensions='1' type-id='8f92235e' size-in-bits='1536' id='fe4ded8f'>
+        <subrange length='48' type-id='7ff19f0f' id='8f6d2a81'/>
+      </array-type-def>
+      <class-decl name='proc_dir_entry' size-in-bits='1408' is-struct='yes' visibility='default' filepath='fs/proc/internal.h' line='30' column='1' id='fe4ffa7a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='in_use' type-id='49178f86' visibility='default' filepath='fs/proc/internal.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='refcnt' type-id='64615833' visibility='default' filepath='fs/proc/internal.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='pde_openers' type-id='72f469ec' visibility='default' filepath='fs/proc/internal.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='pde_unload_lock' type-id='fb4018a0' visibility='default' filepath='fs/proc/internal.h' line='39' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='pde_unload_completion' type-id='389faaf7' visibility='default' filepath='fs/proc/internal.h' line='40' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='proc_iops' type-id='de2c232c' visibility='default' filepath='fs/proc/internal.h' line='41' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='' type-id='ac5ab62b' visibility='default' filepath='fs/proc/internal.h' line='42' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='proc_dops' type-id='1ee57353' visibility='default' filepath='fs/proc/internal.h' line='46' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='' type-id='ac5ab62c' visibility='default' filepath='fs/proc/internal.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='write' type-id='7c2b18ab' visibility='default' filepath='fs/proc/internal.h' line='51' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='fs/proc/internal.h' line='52' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='state_size' type-id='f0981eeb' visibility='default' filepath='fs/proc/internal.h' line='53' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='736'>
+          <var-decl name='low_ino' type-id='f0981eeb' visibility='default' filepath='fs/proc/internal.h' line='54' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='nlink' type-id='6fa67d85' visibility='default' filepath='fs/proc/internal.h' line='55' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='800'>
+          <var-decl name='uid' type-id='d80b72e6' visibility='default' filepath='fs/proc/internal.h' line='56' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='832'>
+          <var-decl name='gid' type-id='094d8048' visibility='default' filepath='fs/proc/internal.h' line='57' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='896'>
+          <var-decl name='size' type-id='69bf7bee' visibility='default' filepath='fs/proc/internal.h' line='58' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='960'>
+          <var-decl name='parent' type-id='d077e928' visibility='default' filepath='fs/proc/internal.h' line='59' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='subdir' type-id='dec44472' visibility='default' filepath='fs/proc/internal.h' line='60' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1088'>
+          <var-decl name='subdir_node' type-id='2a8a6332' visibility='default' filepath='fs/proc/internal.h' line='61' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1280'>
+          <var-decl name='name' type-id='26a90f95' visibility='default' filepath='fs/proc/internal.h' line='62' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1344'>
+          <var-decl name='mode' type-id='2594b00f' visibility='default' filepath='fs/proc/internal.h' line='63' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1360'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='fs/proc/internal.h' line='64' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1368'>
+          <var-decl name='namelen' type-id='f9b06939' visibility='default' filepath='fs/proc/internal.h' line='65' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1376'>
+          <var-decl name='inline_name' type-id='e84913bd' visibility='default' filepath='fs/proc/internal.h' line='66' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='tcpm_ams' filepath='drivers/usb/typec/tcpm/tcpm.c' line='196' column='1' id='fe523876'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='NONE_AMS' value='0'/>
+        <enumerator name='POWER_NEGOTIATION' value='1'/>
+        <enumerator name='GOTOMIN' value='2'/>
+        <enumerator name='SOFT_RESET_AMS' value='3'/>
+        <enumerator name='HARD_RESET' value='4'/>
+        <enumerator name='CABLE_RESET' value='5'/>
+        <enumerator name='GET_SOURCE_CAPABILITIES' value='6'/>
+        <enumerator name='GET_SINK_CAPABILITIES' value='7'/>
+        <enumerator name='POWER_ROLE_SWAP' value='8'/>
+        <enumerator name='FAST_ROLE_SWAP' value='9'/>
+        <enumerator name='DATA_ROLE_SWAP' value='10'/>
+        <enumerator name='VCONN_SWAP' value='11'/>
+        <enumerator name='SOURCE_ALERT' value='12'/>
+        <enumerator name='GETTING_SOURCE_EXTENDED_CAPABILITIES' value='13'/>
+        <enumerator name='GETTING_SOURCE_SINK_STATUS' value='14'/>
+        <enumerator name='GETTING_BATTERY_CAPABILITIES' value='15'/>
+        <enumerator name='GETTING_BATTERY_STATUS' value='16'/>
+        <enumerator name='GETTING_MANUFACTURER_INFORMATION' value='17'/>
+        <enumerator name='SECURITY' value='18'/>
+        <enumerator name='FIRMWARE_UPDATE' value='19'/>
+        <enumerator name='DISCOVER_IDENTITY' value='20'/>
+        <enumerator name='SOURCE_STARTUP_CABLE_PLUG_DISCOVER_IDENTITY' value='21'/>
+        <enumerator name='DISCOVER_SVIDS' value='22'/>
+        <enumerator name='DISCOVER_MODES' value='23'/>
+        <enumerator name='DFP_TO_UFP_ENTER_MODE' value='24'/>
+        <enumerator name='DFP_TO_UFP_EXIT_MODE' value='25'/>
+        <enumerator name='DFP_TO_CABLE_PLUG_ENTER_MODE' value='26'/>
+        <enumerator name='DFP_TO_CABLE_PLUG_EXIT_MODE' value='27'/>
+        <enumerator name='ATTENTION' value='28'/>
+        <enumerator name='BIST' value='29'/>
+        <enumerator name='UNSTRUCTURED_VDMS' value='30'/>
+        <enumerator name='STRUCTURED_VDMS' value='31'/>
+        <enumerator name='COUNTRY_INFO' value='32'/>
+        <enumerator name='COUNTRY_CODES' value='33'/>
+      </enum-decl>
+      <pointer-type-def type-id='1e91d6cd' size-in-bits='64' id='fe5a9a49'/>
+      <function-type size-in-bits='64' id='fe695434'>
+        <parameter type-id='87447c2d'/>
+        <parameter type-id='0fbf3cfd'/>
+        <parameter type-id='cba1f2de'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <class-decl name='fscrypt_name' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/fscrypt.h' line='32' column='1' id='fe71fd28'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='usr_fname' type-id='43a0eb6c' visibility='default' filepath='include/linux/fscrypt.h' line='33' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='disk_name' type-id='43795fda' visibility='default' filepath='include/linux/fscrypt.h' line='34' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='hash' type-id='19c2251e' visibility='default' filepath='include/linux/fscrypt.h' line='35' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='minor_hash' type-id='19c2251e' visibility='default' filepath='include/linux/fscrypt.h' line='36' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='crypto_buf' type-id='43795fda' visibility='default' filepath='include/linux/fscrypt.h' line='37' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='is_nokey_name' type-id='b50a4934' visibility='default' filepath='include/linux/fscrypt.h' line='38' column='1'/>
+        </data-member>
+      </class-decl>
+      <typedef-decl name='wait_queue_entry_t' type-id='504855b3' filepath='include/linux/wait.h' line='14' column='1' id='fe794aa9'/>
+      <class-decl name='scsi_cmnd' size-in-bits='3712' is-struct='yes' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='69' column='1' id='fe7ab802'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='req' type-id='dec7ed8d' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='70' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='device' type-id='eb572b74' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='71' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='eh_entry' type-id='72f469ec' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='72' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='abort_work' type-id='5ad6e0ef' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='73' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1728'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1856'>
+          <var-decl name='eh_eflags' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='77' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1888'>
+          <var-decl name='budget_token' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='79' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1920'>
+          <var-decl name='jiffies_at_alloc' type-id='7359adad' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='86' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1984'>
+          <var-decl name='retries' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2016'>
+          <var-decl name='allowed' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='prot_op' type-id='002ac4a6' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2056'>
+          <var-decl name='prot_type' type-id='002ac4a6' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2064'>
+          <var-decl name='prot_flags' type-id='002ac4a6' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='93' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2080'>
+          <var-decl name='cmd_len' type-id='8efea9e5' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='95' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='sc_data_direction' type-id='eea6b025' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='96' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='cmnd' type-id='cf536864' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='99' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='sdb' type-id='9f8b0d0f' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='103' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='prot_sdb' type-id='8502fa27' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='104' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='underflow' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='106' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2528'>
+          <var-decl name='transfersize' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='109' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='sense_buffer' type-id='cf536864' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='115' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2624'>
+          <var-decl name='scsi_done' type-id='466c873d' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='123' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='SCp' type-id='fd44f8bd' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='129' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3200'>
+          <var-decl name='host_scribble' type-id='cf536864' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='131' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3264'>
+          <var-decl name='result' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='139' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3296'>
+          <var-decl name='flags' type-id='95e97e5e' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='140' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3328'>
+          <var-decl name='state' type-id='7359adad' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='141' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3392'>
+          <var-decl name='extra_len' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='143' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3456'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='145' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3520'>
+          <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='146' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3584'>
+          <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='147' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='3648'>
+          <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/scsi/scsi_cmnd.h' line='148' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='key_restriction' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/key.h' line='170' column='1' id='fe81ecb9'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='check' type-id='f87a5fab' visibility='default' filepath='include/linux/key.h' line='171' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='key' type-id='204a4632' visibility='default' filepath='include/linux/key.h' line='172' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='keytype' type-id='d0a699d1' visibility='default' filepath='include/linux/key.h' line='173' column='1'/>
+        </data-member>
+      </class-decl>
+      <enum-decl name='mipi_dsi_pixel_format' filepath='include/drm/drm_mipi_dsi.h' line='141' column='1' id='fe8650ad'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='MIPI_DSI_FMT_RGB888' value='0'/>
+        <enumerator name='MIPI_DSI_FMT_RGB666' value='1'/>
+        <enumerator name='MIPI_DSI_FMT_RGB666_PACKED' value='2'/>
+        <enumerator name='MIPI_DSI_FMT_RGB565' value='3'/>
+      </enum-decl>
+      <qualified-type-def type-id='89f717fe' const='yes' id='fe943e01'/>
+      <pointer-type-def type-id='160ef579' size-in-bits='64' id='fe9a8a85'/>
+      <function-type size-in-bits='64' id='fe9c5daa'>
+        <parameter type-id='ea1bdaf6'/>
+        <return type-id='bd54fe1a'/>
+      </function-type>
+      <pointer-type-def type-id='a796a301' size-in-bits='64' id='fea4b945'/>
+      <pointer-type-def type-id='ce076883' size-in-bits='64' id='fea9c20b'/>
+      <typedef-decl name='blkcg_pol_offline_pd_fn' type-id='c8ffa4a2' filepath='include/linux/blk-cgroup.h' line='153' column='1' id='feaf774f'/>
+      <pointer-type-def type-id='103ba521' size-in-bits='64' id='feb3b3dd'/>
+      <pointer-type-def type-id='f4f25674' size-in-bits='64' id='feb59272'/>
+      <qualified-type-def type-id='3293d126' const='yes' id='feb626f6'/>
+      <function-type size-in-bits='64' id='febb5b52'>
+        <parameter type-id='37175e4d'/>
+        <parameter type-id='b50a4934'/>
+        <return type-id='b50a4934'/>
+      </function-type>
+      <function-type size-in-bits='64' id='fec629e3'>
+        <parameter type-id='42c8f564'/>
+        <parameter type-id='95e97e5e'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='69bf7bee'/>
+        <return type-id='79a0948f'/>
+      </function-type>
+      <enum-decl name='dev_prop_type' filepath='include/linux/property.h' line='19' column='1' id='fec738e2'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='DEV_PROP_U8' value='0'/>
+        <enumerator name='DEV_PROP_U16' value='1'/>
+        <enumerator name='DEV_PROP_U32' value='2'/>
+        <enumerator name='DEV_PROP_U64' value='3'/>
+        <enumerator name='DEV_PROP_STRING' value='4'/>
+        <enumerator name='DEV_PROP_REF' value='5'/>
+      </enum-decl>
+      <array-type-def dimensions='1' type-id='1dc6a898' size-in-bits='224' id='feca937c'>
+        <subrange length='14' type-id='7ff19f0f' id='48882d96'/>
+      </array-type-def>
+      <pointer-type-def type-id='8427fe66' size-in-bits='64' id='fece2110'/>
+      <pointer-type-def type-id='ee0eb9bb' size-in-bits='64' id='fed2517b'/>
+      <typedef-decl name='arch_rwlock_t' type-id='319e0e18' filepath='include/asm-generic/qrwlock_types.h' line='27' column='1' id='fed2d8ee'/>
+      <pointer-type-def type-id='651e027c' size-in-bits='64' id='fed6b1fe'/>
+      <pointer-type-def type-id='8eeb5a69' size-in-bits='64' id='fedb17fd'/>
+      <function-type size-in-bits='64' id='fee334bf'>
+        <parameter type-id='184ff936'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='cfs_rq' size-in-bits='3072' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='539' column='1' id='feeb4c2f'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='load' type-id='ad979632' visibility='default' filepath='kernel/sched/sched.h' line='540' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='nr_running' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='541' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='h_nr_running' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='542' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='idle_h_nr_running' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='543' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='exec_clock' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='545' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='min_vruntime' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='546' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='tasks_timeline' type-id='6fe1603d' visibility='default' filepath='kernel/sched/sched.h' line='556' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='curr' type-id='ff2b3d10' visibility='default' filepath='kernel/sched/sched.h' line='562' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='next' type-id='ff2b3d10' visibility='default' filepath='kernel/sched/sched.h' line='563' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='last' type-id='ff2b3d10' visibility='default' filepath='kernel/sched/sched.h' line='564' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='skip' type-id='ff2b3d10' visibility='default' filepath='kernel/sched/sched.h' line='565' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='768'>
+          <var-decl name='nr_spread_over' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='568' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1024'>
+          <var-decl name='avg' type-id='629c8d83' visibility='default' filepath='kernel/sched/sched.h' line='575' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='1536'>
+          <var-decl name='removed' type-id='e7f44016' visibility='default' filepath='kernel/sched/sched.h' line='585' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2048'>
+          <var-decl name='tg_load_avg_contrib' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='588' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2112'>
+          <var-decl name='propagate' type-id='bd54fe1a' visibility='default' filepath='kernel/sched/sched.h' line='589' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2176'>
+          <var-decl name='prop_runnable_sum' type-id='bd54fe1a' visibility='default' filepath='kernel/sched/sched.h' line='590' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2240'>
+          <var-decl name='h_load' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='598' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2304'>
+          <var-decl name='last_h_load_update' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='599' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2368'>
+          <var-decl name='h_load_next' type-id='ff2b3d10' visibility='default' filepath='kernel/sched/sched.h' line='600' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2432'>
+          <var-decl name='rq' type-id='6ed6b432' visibility='default' filepath='kernel/sched/sched.h' line='605' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2496'>
+          <var-decl name='on_list' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='615' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2560'>
+          <var-decl name='leaf_cfs_rq_list' type-id='72f469ec' visibility='default' filepath='kernel/sched/sched.h' line='616' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2688'>
+          <var-decl name='tg' type-id='3c32f9de' visibility='default' filepath='kernel/sched/sched.h' line='617' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='2752'>
+          <var-decl name='idle' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='620' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='092cdb36' size-in-bits='64' id='feeb6c20'/>
+      <class-decl name='msi_domain_ops' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/msi.h' line='328' column='1' id='fef1be32'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='get_hwirq' type-id='e41e7f12' visibility='default' filepath='include/linux/msi.h' line='329' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='msi_init' type-id='390f2646' visibility='default' filepath='include/linux/msi.h' line='331' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='msi_free' type-id='f28039ea' visibility='default' filepath='include/linux/msi.h' line='335' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='msi_check' type-id='40825cfb' visibility='default' filepath='include/linux/msi.h' line='338' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='msi_prepare' type-id='68c675aa' visibility='default' filepath='include/linux/msi.h' line='341' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='msi_finish' type-id='9d1da97a' visibility='default' filepath='include/linux/msi.h' line='344' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='set_desc' type-id='b3c70e7a' visibility='default' filepath='include/linux/msi.h' line='345' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='handle_error' type-id='ed647258' visibility='default' filepath='include/linux/msi.h' line='347' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='domain_alloc_irqs' type-id='30f6c897' visibility='default' filepath='include/linux/msi.h' line='349' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='domain_free_irqs' type-id='1b27c119' visibility='default' filepath='include/linux/msi.h' line='351' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_soc_dapm_stats' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/sound/soc-dapm.h' line='721' column='1' id='fef29e19'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='power_checks' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-dapm.h' line='722' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='32'>
+          <var-decl name='path_checks' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-dapm.h' line='723' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='neighbour_checks' type-id='95e97e5e' visibility='default' filepath='include/sound/soc-dapm.h' line='724' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='snd_enc_wma' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/sound/compress_params.h' line='247' column='1' id='fef670ff'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='super_block_align' type-id='3f1a6b60' visibility='default' filepath='include/uapi/sound/compress_params.h' line='248' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='91f5bcb7' size-in-bits='64' id='fefa8c5f'/>
+      <pointer-type-def type-id='74bea618' size-in-bits='64' id='ff015e22'/>
+      <enum-decl name='refcount_saturation_type' filepath='include/linux/refcount.h' line='119' column='1' id='ff0618be'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='REFCOUNT_ADD_NOT_ZERO_OVF' value='0'/>
+        <enumerator name='REFCOUNT_ADD_OVF' value='1'/>
+        <enumerator name='REFCOUNT_ADD_UAF' value='2'/>
+        <enumerator name='REFCOUNT_SUB_UAF' value='3'/>
+        <enumerator name='REFCOUNT_DEC_LEAK' value='4'/>
+      </enum-decl>
+      <pointer-type-def type-id='df961c58' size-in-bits='64' id='ff06646a'/>
+      <class-decl name='list_lru_one' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/list_lru.h' line='28' column='1' id='ff0d68dc'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/list_lru.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='nr_items' type-id='bd54fe1a' visibility='default' filepath='include/linux/list_lru.h' line='31' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='20affdf3' size-in-bits='64' id='ff0f7577'/>
+      <array-type-def dimensions='1' type-id='8efea9e5' size-in-bits='128' id='ff13edc1'>
+        <subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='ff15393c'>
+        <parameter type-id='07d0a3e7'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ff18d40f'>
+        <parameter type-id='85196e3f'/>
+        <parameter type-id='8bff8096'/>
+        <return type-id='f9b06939'/>
+      </function-type>
+      <class-decl name='thermal_cooling_device_ops' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/thermal.h' line='86' column='1' id='ff1a03f4'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='get_max_state' type-id='ff2d9ea5' visibility='default' filepath='include/linux/thermal.h' line='87' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='get_cur_state' type-id='ff2d9ea5' visibility='default' filepath='include/linux/thermal.h' line='88' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='set_cur_state' type-id='4b4c62ab' visibility='default' filepath='include/linux/thermal.h' line='89' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='get_requested_power' type-id='fa90931d' visibility='default' filepath='include/linux/thermal.h' line='90' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='state2power' type-id='d13761f7' visibility='default' filepath='include/linux/thermal.h' line='91' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='power2state' type-id='1768bf8c' visibility='default' filepath='include/linux/thermal.h' line='92' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/thermal.h' line='94' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='772a4ddf' const='yes' id='ff1ab2e4'/>
+      <class-decl name='kstatfs' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/linux/statfs.h' line='9' column='1' id='ff1c7c9b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='f_type' type-id='bd54fe1a' visibility='default' filepath='include/linux/statfs.h' line='10' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='f_bsize' type-id='bd54fe1a' visibility='default' filepath='include/linux/statfs.h' line='11' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='f_blocks' type-id='91ce1af9' visibility='default' filepath='include/linux/statfs.h' line='12' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='f_bfree' type-id='91ce1af9' visibility='default' filepath='include/linux/statfs.h' line='13' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='f_bavail' type-id='91ce1af9' visibility='default' filepath='include/linux/statfs.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='f_files' type-id='91ce1af9' visibility='default' filepath='include/linux/statfs.h' line='15' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='f_ffree' type-id='91ce1af9' visibility='default' filepath='include/linux/statfs.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='f_fsid' type-id='ac895711' visibility='default' filepath='include/linux/statfs.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='512'>
+          <var-decl name='f_namelen' type-id='bd54fe1a' visibility='default' filepath='include/linux/statfs.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='576'>
+          <var-decl name='f_frsize' type-id='bd54fe1a' visibility='default' filepath='include/linux/statfs.h' line='19' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='640'>
+          <var-decl name='f_flags' type-id='bd54fe1a' visibility='default' filepath='include/linux/statfs.h' line='20' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='704'>
+          <var-decl name='f_spare' type-id='5d4602e8' visibility='default' filepath='include/linux/statfs.h' line='21' column='1'/>
+        </data-member>
+      </class-decl>
+      <class-decl name='tcpci_data' size-in-bits='512' is-struct='yes' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.h' line='186' column='1' id='ff22cb55'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='regmap' type-id='29af9a71' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.h' line='187' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='TX_BUF_BYTE_x_hidden' type-id='002ac4a6' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.h' line='188' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='65'>
+          <var-decl name='auto_discharge_disconnect' type-id='002ac4a6' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.h' line='189' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='66'>
+          <var-decl name='vbus_vsafe0v' type-id='002ac4a6' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.h' line='190' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='init' type-id='203080e2' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.h' line='192' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='set_vconn' type-id='1314e51b' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.h' line='193' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='start_drp_toggling' type-id='3b0c4914' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.h' line='195' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='set_vbus' type-id='b975d8ee' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.h' line='197' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='frs_sourcing_vbus' type-id='943544a5' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.h' line='198' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='448'>
+          <var-decl name='set_partner_usb_comm_capable' type-id='b1ab1f20' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.h' line='199' column='1'/>
+        </data-member>
+      </class-decl>
+      <array-type-def dimensions='1' type-id='8efea9e5' size-in-bits='48' id='ff2536e2'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <class-decl name='xattr' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/xattr.h' line='46' column='1' id='ff298a88'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/xattr.h' line='47' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='value' type-id='eaa32e2f' visibility='default' filepath='include/linux/xattr.h' line='48' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='value_len' type-id='b59d7dce' visibility='default' filepath='include/linux/xattr.h' line='49' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2561fcb2' size-in-bits='64' id='ff2b3d10'/>
+      <pointer-type-def type-id='7fd43619' size-in-bits='64' id='ff2d9ea5'/>
+      <function-type size-in-bits='64' id='ff3151a1'>
+        <parameter type-id='bef1b918'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <class-decl name='fdtable' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/fdtable.h' line='27' column='1' id='ff35cfe1'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='max_fds' type-id='f0981eeb' visibility='default' filepath='include/linux/fdtable.h' line='28' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='fd' type-id='229806b3' visibility='default' filepath='include/linux/fdtable.h' line='29' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='close_on_exec' type-id='1d2c2b85' visibility='default' filepath='include/linux/fdtable.h' line='30' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='open_fds' type-id='1d2c2b85' visibility='default' filepath='include/linux/fdtable.h' line='31' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='full_fds_bits' type-id='1d2c2b85' visibility='default' filepath='include/linux/fdtable.h' line='32' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/fdtable.h' line='33' column='1'/>
+        </data-member>
+      </class-decl>
+      <qualified-type-def type-id='95fcbc94' const='yes' id='ff37489f'/>
+      <class-decl name='timerqueue_head' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/timerqueue.h' line='14' column='1' id='ff3c7f20'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rb_root' type-id='6fe1603d' visibility='default' filepath='include/linux/timerqueue.h' line='15' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='ed5381db' size-in-bits='64' id='ff47b24b'/>
+      <typedef-decl name='xa_update_node_t' type-id='a54c80d6' filepath='include/linux/xarray.h' line='1289' column='1' id='ff53cfc5'/>
+      <pointer-type-def type-id='a9bd2db1' size-in-bits='64' id='ff554aed'/>
+      <qualified-type-def type-id='b5cf31bb' const='yes' id='ff60ef66'/>
+      <array-type-def dimensions='1' type-id='0b001c1f' size-in-bits='192' id='ff62a050'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <enum-decl name='ehci_rh_state' filepath='drivers/usb/host/ehci.h' line='82' column='1' id='ff69428e'>
+        <underlying-type type-id='9cac1fee'/>
+        <enumerator name='EHCI_RH_HALTED' value='0'/>
+        <enumerator name='EHCI_RH_SUSPENDED' value='1'/>
+        <enumerator name='EHCI_RH_RUNNING' value='2'/>
+        <enumerator name='EHCI_RH_STOPPING' value='3'/>
+      </enum-decl>
+      <pointer-type-def type-id='f5362227' size-in-bits='64' id='ff70ae33'/>
+      <class-decl name='sock_reuseport' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/net/sock_reuseport.h' line='13' column='1' id='ff751355'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/sock_reuseport.h' line='14' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='max_socks' type-id='1dc6a898' visibility='default' filepath='include/net/sock_reuseport.h' line='16' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='144'>
+          <var-decl name='num_socks' type-id='1dc6a898' visibility='default' filepath='include/net/sock_reuseport.h' line='17' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='160'>
+          <var-decl name='num_closed_socks' type-id='1dc6a898' visibility='default' filepath='include/net/sock_reuseport.h' line='18' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='synq_overflow_ts' type-id='f0981eeb' visibility='default' filepath='include/net/sock_reuseport.h' line='22' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='reuseport_id' type-id='f0981eeb' visibility='default' filepath='include/net/sock_reuseport.h' line='24' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='bind_inany' type-id='f0981eeb' visibility='default' filepath='include/net/sock_reuseport.h' line='25' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='257'>
+          <var-decl name='has_conns' type-id='f0981eeb' visibility='default' filepath='include/net/sock_reuseport.h' line='26' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='320'>
+          <var-decl name='prog' type-id='bdcee7ae' visibility='default' filepath='include/net/sock_reuseport.h' line='27' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='socks' type-id='5be9db8d' visibility='default' filepath='include/net/sock_reuseport.h' line='28' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2522883d' size-in-bits='64' id='ff752d64'/>
+      <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='ff771233'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='type' type-id='52127d59' 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='d4ae3f3f' 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='0cfacb48' 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='8734cf20' 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='0cfacb48' 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='b7f9d8e6' visibility='default' filepath='include/linux/kobject_ns.h' line='45' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='ff7a347c'>
+        <parameter type-id='bef1b918'/>
+        <parameter type-id='48188d98'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <qualified-type-def type-id='4fb0e160' const='yes' id='ff7ec25b'/>
+      <pointer-type-def type-id='b938ea42' size-in-bits='64' id='ff7f72b4'/>
+      <pointer-type-def type-id='a43a9295' size-in-bits='64' id='ff826f29'/>
+      <pointer-type-def type-id='a7f258de' size-in-bits='64' id='ff845194'/>
+      <function-type size-in-bits='64' id='ff87f3a6'>
+        <parameter type-id='1c936db9'/>
+        <parameter type-id='eaa32e2f'/>
+        <parameter type-id='95e97e5e'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ff95f77c'>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='77e79a4b'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='69bf7bee'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='69bf7bee'/>
+      </function-type>
+      <pointer-type-def type-id='91a433bb' size-in-bits='64' id='ff9d06eb'/>
+      <pointer-type-def type-id='d98856a4' size-in-bits='64' id='ffa0418a'/>
+      <pointer-type-def type-id='d8801604' size-in-bits='64' id='ffa2ea6a'/>
+      <function-type size-in-bits='64' id='ffad938a'>
+        <parameter type-id='f57039f0'/>
+        <parameter type-id='c2c60445'/>
+        <return type-id='95e97e5e'/>
+      </function-type>
+      <function-type size-in-bits='64' id='ffb045fe'>
+        <parameter type-id='a2bff676'/>
+        <parameter type-id='892641a4'/>
+        <parameter type-id='f0981eeb'/>
+        <parameter type-id='11f4a000'/>
+        <parameter type-id='2ce52478'/>
+        <parameter type-id='2ce52478'/>
+        <parameter type-id='f5ad9331'/>
+        <parameter type-id='80f4b756'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='488c1da8' size-in-bits='64' id='ffb3cc6e'/>
+      <function-type size-in-bits='64' id='ffb8b223'>
+        <parameter type-id='68a2d05b'/>
+        <parameter type-id='2bf5f3d0'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <array-type-def dimensions='1' type-id='32406f0a' size-in-bits='384' id='ffbe012f'>
+        <subrange length='3' type-id='7ff19f0f' id='56f209d2'/>
+      </array-type-def>
+      <function-type size-in-bits='64' id='ffbf2003'>
+        <parameter type-id='c0c93c9e'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='f4f3224f' size-in-bits='64' id='ffbf24ff'/>
+      <class-decl name='srcu_notifier_head' size-in-bits='6016' is-struct='yes' visibility='default' filepath='include/linux/notifier.h' line='74' column='1' id='ffc4a47a'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='mutex' type-id='925167dc' visibility='default' filepath='include/linux/notifier.h' line='75' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='384'>
+          <var-decl name='srcu' type-id='e4a7867c' visibility='default' filepath='include/linux/notifier.h' line='76' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='5952'>
+          <var-decl name='head' type-id='d504f73d' visibility='default' filepath='include/linux/notifier.h' line='77' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='97abd73b' size-in-bits='64' id='ffc7dc3b'/>
+      <function-type size-in-bits='64' id='ffd077eb'>
+        <parameter type-id='69a866d8'/>
+        <return type-id='98b07df9'/>
+      </function-type>
+      <pointer-type-def type-id='89c3fb76' size-in-bits='64' id='ffde3570'/>
+      <class-decl name='cpufreq_policy_data' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/cpufreq.h' line='166' column='1' id='ffe5737b'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='cpuinfo' type-id='861f63ae' visibility='default' filepath='include/linux/cpufreq.h' line='167' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='freq_table' type-id='3b8b42e1' visibility='default' filepath='include/linux/cpufreq.h' line='168' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='cpu' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='169' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='224'>
+          <var-decl name='min' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='170' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='256'>
+          <var-decl name='max' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='171' column='1'/>
+        </data-member>
+      </class-decl>
+      <pointer-type-def type-id='2fc2d296' size-in-bits='64' id='ffef58ec'/>
+      <class-decl name='pneigh_entry' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/neighbour.h' line='177' column='1' id='fff56995'>
+        <data-member access='public' layout-offset-in-bits='0'>
+          <var-decl name='next' type-id='12f283a5' visibility='default' filepath='include/net/neighbour.h' line='178' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='64'>
+          <var-decl name='net' type-id='c9df1e6c' visibility='default' filepath='include/net/neighbour.h' line='179' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='128'>
+          <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/net/neighbour.h' line='180' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='192'>
+          <var-decl name='flags' type-id='f9b06939' visibility='default' filepath='include/net/neighbour.h' line='181' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='200'>
+          <var-decl name='protocol' type-id='f9b06939' visibility='default' filepath='include/net/neighbour.h' line='182' column='1'/>
+        </data-member>
+        <data-member access='public' layout-offset-in-bits='208'>
+          <var-decl name='key' type-id='29c3368c' visibility='default' filepath='include/net/neighbour.h' line='183' column='1'/>
+        </data-member>
+      </class-decl>
+      <function-type size-in-bits='64' id='fff725a2'>
+        <parameter type-id='74d89ebd'/>
+        <parameter type-id='11e02f83'/>
+        <parameter type-id='11e02f83'/>
+        <return type-id='48b5725f'/>
+      </function-type>
+      <pointer-type-def type-id='46f53066' size-in-bits='64' id='fffb07a4'/>
+      <qualified-type-def type-id='55efd1a3' const='yes' id='fffdaf52'/>
+      <var-decl name='GKI_struct_blk_mq_alloc_data' type-id='17c43c95' mangled-name='GKI_struct_blk_mq_alloc_data' visibility='default' filepath='block/vendor_hooks.c' line='23' column='1' elf-symbol-id='GKI_struct_blk_mq_alloc_data'/>
+      <var-decl name='GKI_struct_readahead_control' type-id='9ec8ec17' mangled-name='GKI_struct_readahead_control' visibility='default' filepath='drivers/android/vendor_hooks.c' line='461' column='1' elf-symbol-id='GKI_struct_readahead_control'/>
+      <var-decl name='GKI_struct_selinux_state' type-id='4ae52763' mangled-name='GKI_struct_selinux_state' visibility='default' filepath='security/selinux/vendor_hooks.c' line='21' column='1' elf-symbol-id='GKI_struct_selinux_state'/>
+      <function-decl name='I_BDEV' mangled-name='I_BDEV' filepath='block/bdev.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='I_BDEV'>
+        <parameter type-id='7e666abe' name='inode' filepath='block/bdev.c' line='42' column='1'/>
+        <return type-id='b88dd945'/>
+      </function-decl>
+      <function-decl name='LZ4_compress_HC' mangled-name='LZ4_compress_HC' filepath='lib/lz4/lz4hc_compress.c' line='608' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='LZ4_compress_HC'>
+        <parameter type-id='80f4b756' name='src' filepath='lib/lz4/lz4hc_compress.c' line='608' column='1'/>
+        <parameter type-id='26a90f95' name='dst' filepath='lib/lz4/lz4hc_compress.c' line='608' column='1'/>
+        <parameter type-id='95e97e5e' name='srcSize' filepath='lib/lz4/lz4hc_compress.c' line='608' column='1'/>
+        <parameter type-id='95e97e5e' name='maxDstSize' filepath='lib/lz4/lz4hc_compress.c' line='609' column='1'/>
+        <parameter type-id='95e97e5e' name='compressionLevel' filepath='lib/lz4/lz4hc_compress.c' line='609' column='1'/>
+        <parameter type-id='eaa32e2f' name='wrkmem' filepath='lib/lz4/lz4hc_compress.c' line='609' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='LZ4_compress_default' mangled-name='LZ4_compress_default' filepath='lib/lz4/lz4_compress.c' line='511' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='LZ4_compress_default'>
+        <parameter type-id='80f4b756' name='source' filepath='lib/lz4/lz4_compress.c' line='511' column='1'/>
+        <parameter type-id='26a90f95' name='dest' filepath='lib/lz4/lz4_compress.c' line='511' column='1'/>
+        <parameter type-id='95e97e5e' name='inputSize' filepath='lib/lz4/lz4_compress.c' line='511' column='1'/>
+        <parameter type-id='95e97e5e' name='maxOutputSize' filepath='lib/lz4/lz4_compress.c' line='512' column='1'/>
+        <parameter type-id='eaa32e2f' name='wrkmem' filepath='lib/lz4/lz4_compress.c' line='512' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='LZ4_decompress_safe' mangled-name='LZ4_decompress_safe' filepath='lib/lz4/lz4_decompress.c' line='460' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='LZ4_decompress_safe'>
+        <parameter type-id='80f4b756' name='source' filepath='lib/lz4/lz4_decompress.c' line='460' column='1'/>
+        <parameter type-id='26a90f95' name='dest' filepath='lib/lz4/lz4_decompress.c' line='460' column='1'/>
+        <parameter type-id='95e97e5e' name='compressedSize' filepath='lib/lz4/lz4_decompress.c' line='461' column='1'/>
+        <parameter type-id='95e97e5e' name='maxDecompressedSize' filepath='lib/lz4/lz4_decompress.c' line='461' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='LZ4_decompress_safe_partial' mangled-name='LZ4_decompress_safe_partial' filepath='lib/lz4/lz4_decompress.c' line='469' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='LZ4_decompress_safe_partial'>
+        <parameter type-id='80f4b756' name='src' filepath='lib/lz4/lz4_decompress.c' line='469' column='1'/>
+        <parameter type-id='26a90f95' name='dst' filepath='lib/lz4/lz4_decompress.c' line='469' column='1'/>
+        <parameter type-id='95e97e5e' name='compressedSize' filepath='lib/lz4/lz4_decompress.c' line='470' column='1'/>
+        <parameter type-id='95e97e5e' name='targetOutputSize' filepath='lib/lz4/lz4_decompress.c' line='470' column='1'/>
+        <parameter type-id='95e97e5e' name='dstCapacity' filepath='lib/lz4/lz4_decompress.c' line='470' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='PDE_DATA' mangled-name='PDE_DATA' filepath='fs/proc/generic.c' line='797' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PDE_DATA'>
+        <parameter type-id='c5a4eb7f' name='inode' filepath='fs/proc/generic.c' line='797' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='ZSTD_CStreamWorkspaceBound' mangled-name='ZSTD_CStreamWorkspaceBound' filepath='lib/zstd/compress.c' line='2973' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ZSTD_CStreamWorkspaceBound'>
+        <parameter type-id='a26eb5ee' name='cParams' filepath='lib/zstd/compress.c' line='2973' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='ZSTD_DStreamWorkspaceBound' mangled-name='ZSTD_DStreamWorkspaceBound' filepath='lib/zstd/decompress.c' line='2184' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ZSTD_DStreamWorkspaceBound'>
+        <parameter type-id='b59d7dce' name='maxWindowSize' filepath='lib/zstd/decompress.c' line='2184' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='ZSTD_compressStream' mangled-name='ZSTD_compressStream' filepath='lib/zstd/compress.c' line='3223' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ZSTD_compressStream'>
+        <parameter type-id='d91ec5a2' name='zcs' filepath='lib/zstd/compress.c' line='3223' column='1'/>
+        <parameter type-id='b0c0dda7' name='output' filepath='lib/zstd/compress.c' line='3223' column='1'/>
+        <parameter type-id='68e7068c' name='input' filepath='lib/zstd/compress.c' line='3223' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='ZSTD_decompressStream' mangled-name='ZSTD_decompressStream' filepath='lib/zstd/decompress.c' line='2298' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ZSTD_decompressStream'>
+        <parameter type-id='c9ee7659' name='zds' filepath='lib/zstd/decompress.c' line='2298' column='1'/>
+        <parameter type-id='b0c0dda7' name='output' filepath='lib/zstd/decompress.c' line='2298' column='1'/>
+        <parameter type-id='68e7068c' name='input' filepath='lib/zstd/decompress.c' line='2298' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='ZSTD_endStream' mangled-name='ZSTD_endStream' filepath='lib/zstd/compress.c' line='3251' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ZSTD_endStream'>
+        <parameter type-id='d91ec5a2' name='zcs' filepath='lib/zstd/compress.c' line='3251' column='1'/>
+        <parameter type-id='b0c0dda7' name='output' filepath='lib/zstd/compress.c' line='3251' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='ZSTD_getParams' mangled-name='ZSTD_getParams' filepath='lib/zstd/compress.c' line='3437' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ZSTD_getParams'>
+        <parameter type-id='95e97e5e' name='compressionLevel' filepath='lib/zstd/compress.c' line='3437' column='1'/>
+        <parameter type-id='0d77e947' name='srcSize' filepath='lib/zstd/compress.c' line='3437' column='1'/>
+        <parameter type-id='b59d7dce' name='dictSize' filepath='lib/zstd/compress.c' line='3437' column='1'/>
+        <return type-id='b7b81df8'/>
+      </function-decl>
+      <function-decl name='ZSTD_initCStream' mangled-name='ZSTD_initCStream' filepath='lib/zstd/compress.c' line='3092' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ZSTD_initCStream'>
+        <parameter type-id='b7b81df8' name='params' filepath='lib/zstd/compress.c' line='3092' column='1'/>
+        <parameter type-id='0d77e947' name='pledgedSrcSize' filepath='lib/zstd/compress.c' line='3092' column='1'/>
+        <parameter type-id='eaa32e2f' name='workspace' filepath='lib/zstd/compress.c' line='3092' column='1'/>
+        <parameter type-id='b59d7dce' name='workspaceSize' filepath='lib/zstd/compress.c' line='3092' column='1'/>
+        <return type-id='d91ec5a2'/>
+      </function-decl>
+      <function-decl name='ZSTD_initDStream' mangled-name='ZSTD_initDStream' filepath='lib/zstd/decompress.c' line='2214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ZSTD_initDStream'>
+        <parameter type-id='b59d7dce' name='maxWindowSize' filepath='lib/zstd/decompress.c' line='2214' column='1'/>
+        <parameter type-id='eaa32e2f' name='workspace' filepath='lib/zstd/decompress.c' line='2214' column='1'/>
+        <parameter type-id='b59d7dce' name='workspaceSize' filepath='lib/zstd/decompress.c' line='2214' column='1'/>
+        <return type-id='c9ee7659'/>
+      </function-decl>
+      <function-decl name='ZSTD_maxCLevel' mangled-name='ZSTD_maxCLevel' filepath='lib/zstd/compress.c' line='3295' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ZSTD_maxCLevel'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__ClearPageMovable' mangled-name='__ClearPageMovable' filepath='mm/compaction.c' line='143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__ClearPageMovable'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/compaction.c' line='143' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__SetPageMovable' mangled-name='__SetPageMovable' filepath='mm/compaction.c' line='135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__SetPageMovable'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/compaction.c' line='135' column='1'/>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/compaction.c' line='135' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='___pskb_trim' mangled-name='___pskb_trim' filepath='net/core/skbuff.c' line='2106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='___pskb_trim'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='2106' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='net/core/skbuff.c' line='2106' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='___ratelimit' mangled-name='___ratelimit' filepath='lib/ratelimit.c' line='27' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='___ratelimit'>
+        <parameter type-id='ccb97366' name='rs' filepath='lib/ratelimit.c' line='27' column='1'/>
+        <parameter type-id='80f4b756' name='func' filepath='lib/ratelimit.c' line='27' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='___update_load_avg' mangled-name='___update_load_avg' filepath='kernel/sched/pelt.c' line='260' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='___update_load_avg'>
+        <parameter type-id='c3e73f93' name='sa' filepath='kernel/sched/pelt.c' line='260' column='1'/>
+        <parameter type-id='7359adad' name='load' filepath='kernel/sched/pelt.c' line='260' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='___update_load_sum' mangled-name='___update_load_sum' filepath='kernel/sched/pelt.c' line='183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='___update_load_sum'>
+        <parameter type-id='91ce1af9' name='now' filepath='kernel/sched/pelt.c' line='183' column='1'/>
+        <parameter type-id='c3e73f93' name='sa' filepath='kernel/sched/pelt.c' line='183' column='1'/>
+        <parameter type-id='7359adad' name='load' filepath='kernel/sched/pelt.c' line='184' column='1'/>
+        <parameter type-id='7359adad' name='runnable' filepath='kernel/sched/pelt.c' line='184' column='1'/>
+        <parameter type-id='95e97e5e' name='running' filepath='kernel/sched/pelt.c' line='184' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__alloc_disk_node' mangled-name='__alloc_disk_node' filepath='block/genhd.c' line='1280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__alloc_disk_node'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/genhd.c' line='1280' column='1'/>
+        <parameter type-id='95e97e5e' name='node_id' filepath='block/genhd.c' line='1280' column='1'/>
+        <parameter type-id='a57283f9' name='lkclass' filepath='block/genhd.c' line='1281' column='1'/>
+        <return type-id='33c599da'/>
+      </function-decl>
+      <function-decl name='__alloc_pages' mangled-name='__alloc_pages' filepath='mm/page_alloc.c' line='5735' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__alloc_pages'>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='mm/page_alloc.c' line='5735' column='1'/>
+        <parameter type-id='f0981eeb' name='order' filepath='mm/page_alloc.c' line='5735' column='1'/>
+        <parameter type-id='95e97e5e' name='preferred_nid' filepath='mm/page_alloc.c' line='5735' column='1'/>
+        <parameter type-id='f461c050' name='nodemask' filepath='mm/page_alloc.c' line='5736' column='1'/>
+        <return type-id='02f11ed4'/>
+      </function-decl>
+      <function-decl name='__alloc_percpu' mangled-name='__alloc_percpu' filepath='mm/percpu.c' line='1948' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__alloc_percpu'>
+        <parameter type-id='b59d7dce' name='size' filepath='mm/percpu.c' line='1948' column='1'/>
+        <parameter type-id='b59d7dce' name='align' filepath='mm/percpu.c' line='1948' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='__alloc_percpu_gfp' mangled-name='__alloc_percpu_gfp' filepath='mm/percpu.c' line='1935' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__alloc_percpu_gfp'>
+        <parameter type-id='b59d7dce' name='size' filepath='mm/percpu.c' line='1935' column='1'/>
+        <parameter type-id='b59d7dce' name='align' filepath='mm/percpu.c' line='1935' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='mm/percpu.c' line='1935' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='__alloc_skb' mangled-name='__alloc_skb' filepath='net/core/skbuff.c' line='397' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__alloc_skb'>
+        <parameter type-id='f0981eeb' name='size' filepath='net/core/skbuff.c' line='397' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='net/core/skbuff.c' line='397' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='net/core/skbuff.c' line='398' column='1'/>
+        <parameter type-id='95e97e5e' name='node' filepath='net/core/skbuff.c' line='398' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='__balance_callbacks' mangled-name='__balance_callbacks' filepath='kernel/sched/core.c' line='4839' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__balance_callbacks'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='4839' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__bforget' mangled-name='__bforget' filepath='fs/buffer.c' line='1156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__bforget'>
+        <parameter type-id='c485c22c' name='bh' filepath='fs/buffer.c' line='1156' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__bio_crypt_clone' mangled-name='__bio_crypt_clone' filepath='block/blk-crypto.c' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__bio_crypt_clone'>
+        <parameter type-id='fb55efa1' name='dst' filepath='block/blk-crypto.c' line='108' column='1'/>
+        <parameter type-id='fb55efa1' name='src' filepath='block/blk-crypto.c' line='108' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='block/blk-crypto.c' line='108' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__bitmap_and' mangled-name='__bitmap_and' filepath='lib/bitmap.c' line='240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__bitmap_and'>
+        <parameter type-id='1d2c2b85' name='dst' filepath='lib/bitmap.c' line='240' column='1'/>
+        <parameter type-id='f9b37274' name='bitmap1' filepath='lib/bitmap.c' line='240' column='1'/>
+        <parameter type-id='f9b37274' name='bitmap2' filepath='lib/bitmap.c' line='241' column='1'/>
+        <parameter type-id='f0981eeb' name='bits' filepath='lib/bitmap.c' line='241' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__bitmap_andnot' mangled-name='__bitmap_andnot' filepath='lib/bitmap.c' line='278' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__bitmap_andnot'>
+        <parameter type-id='1d2c2b85' name='dst' filepath='lib/bitmap.c' line='278' column='1'/>
+        <parameter type-id='f9b37274' name='bitmap1' filepath='lib/bitmap.c' line='278' column='1'/>
+        <parameter type-id='f9b37274' name='bitmap2' filepath='lib/bitmap.c' line='279' column='1'/>
+        <parameter type-id='f0981eeb' name='bits' filepath='lib/bitmap.c' line='279' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__bitmap_clear' mangled-name='__bitmap_clear' filepath='lib/bitmap.c' line='372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__bitmap_clear'>
+        <parameter type-id='1d2c2b85' name='map' filepath='lib/bitmap.c' line='372' column='1'/>
+        <parameter type-id='f0981eeb' name='start' filepath='lib/bitmap.c' line='372' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='lib/bitmap.c' line='372' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__bitmap_complement' mangled-name='__bitmap_complement' filepath='lib/bitmap.c' line='84' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__bitmap_complement'>
+        <parameter type-id='1d2c2b85' name='dst' filepath='lib/bitmap.c' line='84' column='1'/>
+        <parameter type-id='f9b37274' name='src' filepath='lib/bitmap.c' line='84' column='1'/>
+        <parameter type-id='f0981eeb' name='bits' filepath='lib/bitmap.c' line='84' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__bitmap_equal' mangled-name='__bitmap_equal' filepath='lib/bitmap.c' line='48' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__bitmap_equal'>
+        <parameter type-id='f9b37274' name='bitmap1' filepath='lib/bitmap.c' line='48' column='1'/>
+        <parameter type-id='f9b37274' name='bitmap2' filepath='lib/bitmap.c' line='49' column='1'/>
+        <parameter type-id='f0981eeb' name='bits' filepath='lib/bitmap.c' line='49' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__bitmap_or' mangled-name='__bitmap_or' filepath='lib/bitmap.c' line='256' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__bitmap_or'>
+        <parameter type-id='1d2c2b85' name='dst' filepath='lib/bitmap.c' line='256' column='1'/>
+        <parameter type-id='f9b37274' name='bitmap1' filepath='lib/bitmap.c' line='256' column='1'/>
+        <parameter type-id='f9b37274' name='bitmap2' filepath='lib/bitmap.c' line='257' column='1'/>
+        <parameter type-id='f0981eeb' name='bits' filepath='lib/bitmap.c' line='257' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__bitmap_replace' mangled-name='__bitmap_replace' filepath='lib/bitmap.c' line='294' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__bitmap_replace'>
+        <parameter type-id='1d2c2b85' name='dst' filepath='lib/bitmap.c' line='294' column='1'/>
+        <parameter type-id='f9b37274' name='old' filepath='lib/bitmap.c' line='295' column='1'/>
+        <parameter type-id='f9b37274' name='new' filepath='lib/bitmap.c' line='295' column='1'/>
+        <parameter type-id='f9b37274' name='mask' filepath='lib/bitmap.c' line='296' column='1'/>
+        <parameter type-id='f0981eeb' name='nbits' filepath='lib/bitmap.c' line='296' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__bitmap_set' mangled-name='__bitmap_set' filepath='lib/bitmap.c' line='351' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__bitmap_set'>
+        <parameter type-id='1d2c2b85' name='map' filepath='lib/bitmap.c' line='351' column='1'/>
+        <parameter type-id='f0981eeb' name='start' filepath='lib/bitmap.c' line='351' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='lib/bitmap.c' line='351' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__bitmap_shift_left' mangled-name='__bitmap_shift_left' filepath='lib/bitmap.c' line='148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__bitmap_shift_left'>
+        <parameter type-id='1d2c2b85' name='dst' filepath='lib/bitmap.c' line='148' column='1'/>
+        <parameter type-id='f9b37274' name='src' filepath='lib/bitmap.c' line='148' column='1'/>
+        <parameter type-id='f0981eeb' name='shift' filepath='lib/bitmap.c' line='149' column='1'/>
+        <parameter type-id='f0981eeb' name='nbits' filepath='lib/bitmap.c' line='149' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__bitmap_shift_right' mangled-name='__bitmap_shift_right' filepath='lib/bitmap.c' line='103' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__bitmap_shift_right'>
+        <parameter type-id='1d2c2b85' name='dst' filepath='lib/bitmap.c' line='103' column='1'/>
+        <parameter type-id='f9b37274' name='src' filepath='lib/bitmap.c' line='103' column='1'/>
+        <parameter type-id='f0981eeb' name='shift' filepath='lib/bitmap.c' line='104' column='1'/>
+        <parameter type-id='f0981eeb' name='nbits' filepath='lib/bitmap.c' line='104' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__bitmap_subset' mangled-name='__bitmap_subset' filepath='lib/bitmap.c' line='321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__bitmap_subset'>
+        <parameter type-id='f9b37274' name='bitmap1' filepath='lib/bitmap.c' line='321' column='1'/>
+        <parameter type-id='f9b37274' name='bitmap2' filepath='lib/bitmap.c' line='322' column='1'/>
+        <parameter type-id='f0981eeb' name='bits' filepath='lib/bitmap.c' line='322' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__bitmap_weight' mangled-name='__bitmap_weight' filepath='lib/bitmap.c' line='336' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__bitmap_weight'>
+        <parameter type-id='f9b37274' name='bitmap' filepath='lib/bitmap.c' line='336' column='1'/>
+        <parameter type-id='f0981eeb' name='bits' filepath='lib/bitmap.c' line='336' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__bitmap_xor' mangled-name='__bitmap_xor' filepath='lib/bitmap.c' line='267' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__bitmap_xor'>
+        <parameter type-id='1d2c2b85' name='dst' filepath='lib/bitmap.c' line='267' column='1'/>
+        <parameter type-id='f9b37274' name='bitmap1' filepath='lib/bitmap.c' line='267' column='1'/>
+        <parameter type-id='f9b37274' name='bitmap2' filepath='lib/bitmap.c' line='268' column='1'/>
+        <parameter type-id='f0981eeb' name='bits' filepath='lib/bitmap.c' line='268' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__blk_alloc_disk' mangled-name='__blk_alloc_disk' filepath='block/genhd.c' line='1333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blk_alloc_disk'>
+        <parameter type-id='95e97e5e' name='node' filepath='block/genhd.c' line='1333' column='1'/>
+        <parameter type-id='a57283f9' name='lkclass' filepath='block/genhd.c' line='1333' column='1'/>
+        <return type-id='33c599da'/>
+      </function-decl>
+      <function-decl name='__blk_mq_alloc_disk' mangled-name='__blk_mq_alloc_disk' filepath='block/blk-mq.c' line='3150' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blk_mq_alloc_disk'>
+        <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3150' column='1'/>
+        <parameter type-id='eaa32e2f' name='queuedata' filepath='block/blk-mq.c' line='3150' column='1'/>
+        <parameter type-id='a57283f9' name='lkclass' filepath='block/blk-mq.c' line='3151' column='1'/>
+        <return type-id='33c599da'/>
+      </function-decl>
+      <function-decl name='__blk_mq_debugfs_rq_show' mangled-name='__blk_mq_debugfs_rq_show' filepath='block/blk-mq-debugfs.c' line='329' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blk_mq_debugfs_rq_show'>
+        <parameter type-id='f8dc9def' name='m' filepath='block/blk-mq-debugfs.c' line='329' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-mq-debugfs.c' line='329' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__blk_mq_end_request' mangled-name='__blk_mq_end_request' filepath='block/blk-mq.c' line='551' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blk_mq_end_request'>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-mq.c' line='551' column='1'/>
+        <parameter type-id='f4e2facd' name='error' filepath='block/blk-mq.c' line='551' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__blk_rq_map_sg' mangled-name='__blk_rq_map_sg' filepath='block/blk-merge.c' line='542' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blk_rq_map_sg'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-merge.c' line='542' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-merge.c' line='542' column='1'/>
+        <parameter type-id='bf3ef905' name='sglist' filepath='block/blk-merge.c' line='543' column='1'/>
+        <parameter type-id='3f2244fd' name='last_sg' filepath='block/blk-merge.c' line='543' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__blkdev_issue_discard' mangled-name='__blkdev_issue_discard' filepath='block/blk-lib.c' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blkdev_issue_discard'>
+        <parameter type-id='b88dd945' name='bdev' filepath='block/blk-lib.c' line='26' column='1'/>
+        <parameter type-id='a42536cd' name='sector' filepath='block/blk-lib.c' line='26' column='1'/>
+        <parameter type-id='a42536cd' name='nr_sects' filepath='block/blk-lib.c' line='27' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='block/blk-lib.c' line='27' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='block/blk-lib.c' line='27' column='1'/>
+        <parameter type-id='334817d1' name='biop' filepath='block/blk-lib.c' line='28' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__blkg_prfill_rwstat' mangled-name='__blkg_prfill_rwstat' filepath='block/blk-cgroup-rwstat.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blkg_prfill_rwstat'>
+        <parameter type-id='f8dc9def' name='sf' filepath='block/blk-cgroup-rwstat.c' line='42' column='1'/>
+        <parameter type-id='3213e875' name='pd' filepath='block/blk-cgroup-rwstat.c' line='42' column='1'/>
+        <parameter type-id='0c9ab50f' name='rwstat' filepath='block/blk-cgroup-rwstat.c' line='43' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='__blkg_prfill_u64' mangled-name='__blkg_prfill_u64' filepath='block/blk-cgroup.c' line='546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blkg_prfill_u64'>
+        <parameter type-id='f8dc9def' name='sf' filepath='block/blk-cgroup.c' line='546' column='1'/>
+        <parameter type-id='3213e875' name='pd' filepath='block/blk-cgroup.c' line='546' column='1'/>
+        <parameter type-id='91ce1af9' name='v' filepath='block/blk-cgroup.c' line='546' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='__blockdev_direct_IO' mangled-name='__blockdev_direct_IO' filepath='fs/direct-io.c' line='1350' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blockdev_direct_IO'>
+        <parameter type-id='80f25feb' name='iocb' filepath='fs/direct-io.c' line='1350' column='1'/>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/direct-io.c' line='1350' column='1'/>
+        <parameter type-id='b88dd945' name='bdev' filepath='fs/direct-io.c' line='1351' column='1'/>
+        <parameter type-id='4fa10f9e' name='iter' filepath='fs/direct-io.c' line='1351' column='1'/>
+        <parameter type-id='05ca8778' name='get_block' filepath='fs/direct-io.c' line='1352' column='1'/>
+        <parameter type-id='f0934dcb' name='end_io' filepath='fs/direct-io.c' line='1353' column='1'/>
+        <parameter type-id='13e0bcaf' name='submit_io' filepath='fs/direct-io.c' line='1353' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='fs/direct-io.c' line='1354' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='__bread_gfp' mangled-name='__bread_gfp' filepath='fs/buffer.c' line='1378' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__bread_gfp'>
+        <parameter type-id='b88dd945' name='bdev' filepath='fs/buffer.c' line='1378' column='1'/>
+        <parameter type-id='a42536cd' name='block' filepath='fs/buffer.c' line='1378' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='fs/buffer.c' line='1379' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='fs/buffer.c' line='1379' column='1'/>
+        <return type-id='c485c22c'/>
+      </function-decl>
+      <function-decl name='__breadahead' mangled-name='__breadahead' filepath='fs/buffer.c' line='1344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__breadahead'>
+        <parameter type-id='b88dd945' name='bdev' filepath='fs/buffer.c' line='1344' column='1'/>
+        <parameter type-id='a42536cd' name='block' filepath='fs/buffer.c' line='1344' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='fs/buffer.c' line='1344' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__brelse' mangled-name='__brelse' filepath='fs/buffer.c' line='1142' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__brelse'>
+        <parameter type-id='c485c22c' name='buf' filepath='fs/buffer.c' line='1142' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__cancel_dirty_page' mangled-name='__cancel_dirty_page' filepath='mm/page-writeback.c' line='2655' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cancel_dirty_page'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/page-writeback.c' line='2655' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__cfi_slowpath_diag' mangled-name='__cfi_slowpath_diag' filepath='kernel/cfi.c' line='332' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cfi_slowpath_diag'>
+        <parameter type-id='9c313c2d' name='id' filepath='kernel/cfi.c' line='332' column='1'/>
+        <parameter type-id='eaa32e2f' name='ptr' filepath='kernel/cfi.c' line='332' column='1'/>
+        <parameter type-id='eaa32e2f' name='diag' filepath='kernel/cfi.c' line='332' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__check_object_size' mangled-name='__check_object_size' filepath='mm/usercopy.c' line='256' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__check_object_size'>
+        <parameter type-id='eaa32e2f' name='ptr' filepath='mm/usercopy.c' line='256' column='1'/>
+        <parameter type-id='7359adad' name='n' filepath='mm/usercopy.c' line='256' column='1'/>
+        <parameter type-id='b50a4934' name='to_user' filepath='mm/usercopy.c' line='256' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__class_create' mangled-name='__class_create' filepath='drivers/base/class.c' line='231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__class_create'>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/base/class.c' line='231' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/base/class.c' line='231' column='1'/>
+        <parameter type-id='a57283f9' name='key' filepath='drivers/base/class.c' line='232' column='1'/>
+        <return type-id='67aca04f'/>
+      </function-decl>
+      <function-decl name='__class_register' mangled-name='__class_register' filepath='drivers/base/class.c' line='153' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__class_register'>
+        <parameter type-id='67aca04f' name='cls' filepath='drivers/base/class.c' line='153' column='1'/>
+        <parameter type-id='a57283f9' name='key' filepath='drivers/base/class.c' line='153' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__cleancache_get_page' mangled-name='__cleancache_get_page' filepath='mm/cleancache.c' line='176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cleancache_get_page'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/cleancache.c' line='176' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__cleancache_invalidate_inode' mangled-name='__cleancache_invalidate_inode' filepath='mm/cleancache.c' line='273' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cleancache_invalidate_inode'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/cleancache.c' line='273' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__clk_determine_rate' mangled-name='__clk_determine_rate' filepath='drivers/clk/clk.c' line='1466' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__clk_determine_rate'>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk.c' line='1466' column='1'/>
+        <parameter type-id='23a0ad0a' name='req' filepath='drivers/clk/clk.c' line='1466' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__clk_get_hw' mangled-name='__clk_get_hw' filepath='drivers/clk/clk.c' line='278' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__clk_get_hw'>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clk.c' line='278' column='1'/>
+        <return type-id='3aaeef89'/>
+      </function-decl>
+      <function-decl name='__clk_get_name' mangled-name='__clk_get_name' filepath='drivers/clk/clk.c' line='266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__clk_get_name'>
+        <parameter type-id='10f66866' name='clk' filepath='drivers/clk/clk.c' line='266' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='__clk_hw_register_divider' mangled-name='__clk_hw_register_divider' filepath='drivers/clk/clk-divider.c' line='537' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__clk_hw_register_divider'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-divider.c' line='537' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/clk/clk-divider.c' line='538' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/clk/clk-divider.c' line='538' column='1'/>
+        <parameter type-id='80f4b756' name='parent_name' filepath='drivers/clk/clk-divider.c' line='539' column='1'/>
+        <parameter type-id='9e6d4b4e' name='parent_hw' filepath='drivers/clk/clk-divider.c' line='539' column='1'/>
+        <parameter type-id='4cdbecf4' name='parent_data' filepath='drivers/clk/clk-divider.c' line='540' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-divider.c' line='540' column='1'/>
+        <parameter type-id='eaa32e2f' name='reg' filepath='drivers/clk/clk-divider.c' line='541' column='1'/>
+        <parameter type-id='f9b06939' name='shift' filepath='drivers/clk/clk-divider.c' line='541' column='1'/>
+        <parameter type-id='f9b06939' name='width' filepath='drivers/clk/clk-divider.c' line='541' column='1'/>
+        <parameter type-id='f9b06939' name='clk_divider_flags' filepath='drivers/clk/clk-divider.c' line='541' column='1'/>
+        <parameter type-id='caf2596f' name='table' filepath='drivers/clk/clk-divider.c' line='542' column='1'/>
+        <parameter type-id='cff2d845' name='lock' filepath='drivers/clk/clk-divider.c' line='542' column='1'/>
+        <return type-id='3aaeef89'/>
+      </function-decl>
+      <function-decl name='__clk_hw_register_fixed_rate' mangled-name='__clk_hw_register_fixed_rate' filepath='drivers/clk/clk-fixed-rate.c' line='52' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__clk_hw_register_fixed_rate'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-fixed-rate.c' line='52' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/clk/clk-fixed-rate.c' line='53' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/clk/clk-fixed-rate.c' line='53' column='1'/>
+        <parameter type-id='80f4b756' name='parent_name' filepath='drivers/clk/clk-fixed-rate.c' line='54' column='1'/>
+        <parameter type-id='9e6d4b4e' name='parent_hw' filepath='drivers/clk/clk-fixed-rate.c' line='54' column='1'/>
+        <parameter type-id='4cdbecf4' name='parent_data' filepath='drivers/clk/clk-fixed-rate.c' line='55' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-fixed-rate.c' line='55' column='1'/>
+        <parameter type-id='7359adad' name='fixed_rate' filepath='drivers/clk/clk-fixed-rate.c' line='56' column='1'/>
+        <parameter type-id='7359adad' name='fixed_accuracy' filepath='drivers/clk/clk-fixed-rate.c' line='56' column='1'/>
+        <parameter type-id='7359adad' name='clk_fixed_flags' filepath='drivers/clk/clk-fixed-rate.c' line='57' column='1'/>
+        <return type-id='3aaeef89'/>
+      </function-decl>
+      <function-decl name='__clk_hw_register_gate' mangled-name='__clk_hw_register_gate' filepath='drivers/clk/clk-gate.c' line='126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__clk_hw_register_gate'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-gate.c' line='126' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/clk/clk-gate.c' line='127' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/clk/clk-gate.c' line='127' column='1'/>
+        <parameter type-id='80f4b756' name='parent_name' filepath='drivers/clk/clk-gate.c' line='128' column='1'/>
+        <parameter type-id='9e6d4b4e' name='parent_hw' filepath='drivers/clk/clk-gate.c' line='128' column='1'/>
+        <parameter type-id='4cdbecf4' name='parent_data' filepath='drivers/clk/clk-gate.c' line='129' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-gate.c' line='130' column='1'/>
+        <parameter type-id='eaa32e2f' name='reg' filepath='drivers/clk/clk-gate.c' line='131' column='1'/>
+        <parameter type-id='f9b06939' name='bit_idx' filepath='drivers/clk/clk-gate.c' line='131' column='1'/>
+        <parameter type-id='f9b06939' name='clk_gate_flags' filepath='drivers/clk/clk-gate.c' line='132' column='1'/>
+        <parameter type-id='cff2d845' name='lock' filepath='drivers/clk/clk-gate.c' line='132' column='1'/>
+        <return type-id='3aaeef89'/>
+      </function-decl>
+      <function-decl name='__clk_hw_register_mux' mangled-name='__clk_hw_register_mux' filepath='drivers/clk/clk-mux.c' line='149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__clk_hw_register_mux'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-mux.c' line='149' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/clk/clk-mux.c' line='149' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/clk/clk-mux.c' line='150' column='1'/>
+        <parameter type-id='f9b06939' name='num_parents' filepath='drivers/clk/clk-mux.c' line='150' column='1'/>
+        <parameter type-id='13956559' name='parent_names' filepath='drivers/clk/clk-mux.c' line='151' column='1'/>
+        <parameter type-id='ca0dae6c' name='parent_hws' filepath='drivers/clk/clk-mux.c' line='152' column='1'/>
+        <parameter type-id='4cdbecf4' name='parent_data' filepath='drivers/clk/clk-mux.c' line='153' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-mux.c' line='154' column='1'/>
+        <parameter type-id='eaa32e2f' name='reg' filepath='drivers/clk/clk-mux.c' line='154' column='1'/>
+        <parameter type-id='f9b06939' name='shift' filepath='drivers/clk/clk-mux.c' line='154' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='drivers/clk/clk-mux.c' line='154' column='1'/>
+        <parameter type-id='f9b06939' name='clk_mux_flags' filepath='drivers/clk/clk-mux.c' line='155' column='1'/>
+        <parameter type-id='f9409001' name='table' filepath='drivers/clk/clk-mux.c' line='155' column='1'/>
+        <parameter type-id='cff2d845' name='lock' filepath='drivers/clk/clk-mux.c' line='155' column='1'/>
+        <return type-id='3aaeef89'/>
+      </function-decl>
+      <function-decl name='__clk_is_enabled' mangled-name='__clk_is_enabled' filepath='drivers/clk/clk.c' line='529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__clk_is_enabled'>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clk.c' line='529' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='__clk_mux_determine_rate' mangled-name='__clk_mux_determine_rate' filepath='drivers/clk/clk.c' line='673' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__clk_mux_determine_rate'>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk.c' line='673' column='1'/>
+        <parameter type-id='23a0ad0a' name='req' filepath='drivers/clk/clk.c' line='674' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__clk_mux_determine_rate_closest' mangled-name='__clk_mux_determine_rate_closest' filepath='drivers/clk/clk.c' line='680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__clk_mux_determine_rate_closest'>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk.c' line='680' column='1'/>
+        <parameter type-id='23a0ad0a' name='req' filepath='drivers/clk/clk.c' line='681' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__clocksource_register_scale' mangled-name='__clocksource_register_scale' filepath='kernel/time/clocksource.c' line='1169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__clocksource_register_scale'>
+        <parameter type-id='4dfe71de' name='cs' filepath='kernel/time/clocksource.c' line='1169' column='1'/>
+        <parameter type-id='19c2251e' name='scale' filepath='kernel/time/clocksource.c' line='1169' column='1'/>
+        <parameter type-id='19c2251e' name='freq' filepath='kernel/time/clocksource.c' line='1169' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__const_udelay' mangled-name='__const_udelay' filepath='arch/arm64/lib/delay.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__const_udelay'>
+        <parameter type-id='7359adad' name='xloops' filepath='arch/arm64/lib/delay.c' line='43' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='__cpu_active_mask' type-id='1354385d' mangled-name='__cpu_active_mask' visibility='default' filepath='kernel/cpu.c' line='2689' column='1' elf-symbol-id='__cpu_active_mask'/>
+      <var-decl name='__cpu_online_mask' type-id='1354385d' mangled-name='__cpu_online_mask' visibility='default' filepath='kernel/cpu.c' line='2683' column='1' elf-symbol-id='__cpu_online_mask'/>
+      <var-decl name='__cpu_possible_mask' type-id='1354385d' mangled-name='__cpu_possible_mask' visibility='default' filepath='kernel/cpu.c' line='2679' column='1' elf-symbol-id='__cpu_possible_mask'/>
+      <var-decl name='__cpu_present_mask' type-id='1354385d' mangled-name='__cpu_present_mask' visibility='default' filepath='kernel/cpu.c' line='2686' column='1' elf-symbol-id='__cpu_present_mask'/>
+      <function-decl name='__cpufreq_driver_target' mangled-name='__cpufreq_driver_target' filepath='drivers/cpufreq/cpufreq.c' line='2272' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cpufreq_driver_target'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq.c' line='2272' column='1'/>
+        <parameter type-id='f0981eeb' name='target_freq' filepath='drivers/cpufreq/cpufreq.c' line='2273' column='1'/>
+        <parameter type-id='f0981eeb' name='relation' filepath='drivers/cpufreq/cpufreq.c' line='2274' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__cpuhp_remove_state' mangled-name='__cpuhp_remove_state' filepath='kernel/cpu.c' line='2275' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cpuhp_remove_state'>
+        <parameter type-id='245a0e38' name='state' filepath='kernel/cpu.c' line='2275' column='1'/>
+        <parameter type-id='b50a4934' name='invoke' filepath='kernel/cpu.c' line='2275' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__cpuhp_setup_state' mangled-name='__cpuhp_setup_state' filepath='kernel/cpu.c' line='2173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cpuhp_setup_state'>
+        <parameter type-id='245a0e38' name='state' filepath='kernel/cpu.c' line='2173' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/cpu.c' line='2174' column='1'/>
+        <parameter type-id='b50a4934' name='invoke' filepath='kernel/cpu.c' line='2174' column='1'/>
+        <parameter type-id='f02a5e83' name='startup' filepath='kernel/cpu.c' line='2175' column='1'/>
+        <parameter type-id='f02a5e83' name='teardown' filepath='kernel/cpu.c' line='2176' column='1'/>
+        <parameter type-id='b50a4934' name='multi_instance' filepath='kernel/cpu.c' line='2177' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__cpuhp_setup_state_cpuslocked' mangled-name='__cpuhp_setup_state_cpuslocked' filepath='kernel/cpu.c' line='2114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cpuhp_setup_state_cpuslocked'>
+        <parameter type-id='245a0e38' name='state' filepath='kernel/cpu.c' line='2114' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/cpu.c' line='2115' column='1'/>
+        <parameter type-id='b50a4934' name='invoke' filepath='kernel/cpu.c' line='2115' column='1'/>
+        <parameter type-id='f02a5e83' name='startup' filepath='kernel/cpu.c' line='2116' column='1'/>
+        <parameter type-id='f02a5e83' name='teardown' filepath='kernel/cpu.c' line='2117' column='1'/>
+        <parameter type-id='b50a4934' name='multi_instance' filepath='kernel/cpu.c' line='2118' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__cpuhp_state_add_instance' mangled-name='__cpuhp_state_add_instance' filepath='kernel/cpu.c' line='2084' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cpuhp_state_add_instance'>
+        <parameter type-id='245a0e38' name='state' filepath='kernel/cpu.c' line='2084' column='1'/>
+        <parameter type-id='08cbad52' name='node' filepath='kernel/cpu.c' line='2084' column='1'/>
+        <parameter type-id='b50a4934' name='invoke' filepath='kernel/cpu.c' line='2085' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__cpuhp_state_remove_instance' mangled-name='__cpuhp_state_remove_instance' filepath='kernel/cpu.c' line='2189' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__cpuhp_state_remove_instance'>
+        <parameter type-id='245a0e38' name='state' filepath='kernel/cpu.c' line='2189' column='1'/>
+        <parameter type-id='08cbad52' name='node' filepath='kernel/cpu.c' line='2190' column='1'/>
+        <parameter type-id='b50a4934' name='invoke' filepath='kernel/cpu.c' line='2190' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__crypto_memneq' mangled-name='__crypto_memneq' filepath='lib/memneq.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__crypto_memneq'>
+        <parameter type-id='eaa32e2f' name='a' filepath='lib/memneq.c' line='156' column='1'/>
+        <parameter type-id='eaa32e2f' name='b' filepath='lib/memneq.c' line='156' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='lib/memneq.c' line='157' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='__crypto_xor' mangled-name='__crypto_xor' filepath='crypto/algapi.c' line='1004' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__crypto_xor'>
+        <parameter type-id='8bff8096' name='dst' filepath='crypto/algapi.c' line='1004' column='1'/>
+        <parameter type-id='bbaf3419' name='src1' filepath='crypto/algapi.c' line='1004' column='1'/>
+        <parameter type-id='bbaf3419' name='src2' filepath='crypto/algapi.c' line='1004' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='crypto/algapi.c' line='1004' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__dev_change_net_namespace' mangled-name='__dev_change_net_namespace' filepath='net/core/dev.c' line='11162' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__dev_change_net_namespace'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='11162' column='1'/>
+        <parameter type-id='a2bff676' name='net' filepath='net/core/dev.c' line='11162' column='1'/>
+        <parameter type-id='80f4b756' name='pat' filepath='net/core/dev.c' line='11163' column='1'/>
+        <parameter type-id='95e97e5e' name='new_ifindex' filepath='net/core/dev.c' line='11163' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__dev_get_by_index' mangled-name='__dev_get_by_index' filepath='net/core/dev.c' line='861' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__dev_get_by_index'>
+        <parameter type-id='a2bff676' name='net' filepath='net/core/dev.c' line='861' column='1'/>
+        <parameter type-id='95e97e5e' name='ifindex' filepath='net/core/dev.c' line='861' column='1'/>
+        <return type-id='68a2d05b'/>
+      </function-decl>
+      <function-decl name='__dev_get_by_name' mangled-name='__dev_get_by_name' filepath='net/core/dev.c' line='795' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__dev_get_by_name'>
+        <parameter type-id='a2bff676' name='net' filepath='net/core/dev.c' line='795' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='net/core/dev.c' line='795' column='1'/>
+        <return type-id='68a2d05b'/>
+      </function-decl>
+      <function-decl name='__dev_kfree_skb_any' mangled-name='__dev_kfree_skb_any' filepath='net/core/dev.c' line='3121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__dev_kfree_skb_any'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/dev.c' line='3121' column='1'/>
+        <parameter type-id='1f17c6b4' name='reason' filepath='net/core/dev.c' line='3121' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__dev_kfree_skb_irq' mangled-name='__dev_kfree_skb_irq' filepath='net/core/dev.c' line='3099' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__dev_kfree_skb_irq'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/dev.c' line='3099' column='1'/>
+        <parameter type-id='1f17c6b4' name='reason' filepath='net/core/dev.c' line='3099' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__device_reset' mangled-name='__device_reset' filepath='drivers/reset/core.c' line='1105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__device_reset'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/reset/core.c' line='1105' column='1'/>
+        <parameter type-id='b50a4934' name='optional' filepath='drivers/reset/core.c' line='1105' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__devm_alloc_percpu' mangled-name='__devm_alloc_percpu' filepath='drivers/base/devres.c' line='1186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__devm_alloc_percpu'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devres.c' line='1186' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/base/devres.c' line='1186' column='1'/>
+        <parameter type-id='b59d7dce' name='align' filepath='drivers/base/devres.c' line='1187' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='__devm_clk_hw_register_divider' mangled-name='__devm_clk_hw_register_divider' filepath='drivers/clk/clk-divider.c' line='663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__devm_clk_hw_register_divider'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-divider.c' line='663' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/clk/clk-divider.c' line='664' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/clk/clk-divider.c' line='664' column='1'/>
+        <parameter type-id='80f4b756' name='parent_name' filepath='drivers/clk/clk-divider.c' line='665' column='1'/>
+        <parameter type-id='9e6d4b4e' name='parent_hw' filepath='drivers/clk/clk-divider.c' line='665' column='1'/>
+        <parameter type-id='4cdbecf4' name='parent_data' filepath='drivers/clk/clk-divider.c' line='666' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-divider.c' line='666' column='1'/>
+        <parameter type-id='eaa32e2f' name='reg' filepath='drivers/clk/clk-divider.c' line='667' column='1'/>
+        <parameter type-id='f9b06939' name='shift' filepath='drivers/clk/clk-divider.c' line='667' column='1'/>
+        <parameter type-id='f9b06939' name='width' filepath='drivers/clk/clk-divider.c' line='667' column='1'/>
+        <parameter type-id='f9b06939' name='clk_divider_flags' filepath='drivers/clk/clk-divider.c' line='667' column='1'/>
+        <parameter type-id='caf2596f' name='table' filepath='drivers/clk/clk-divider.c' line='668' column='1'/>
+        <parameter type-id='cff2d845' name='lock' filepath='drivers/clk/clk-divider.c' line='668' column='1'/>
+        <return type-id='3aaeef89'/>
+      </function-decl>
+      <function-decl name='__devm_clk_hw_register_mux' mangled-name='__devm_clk_hw_register_mux' filepath='drivers/clk/clk-mux.c' line='215' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__devm_clk_hw_register_mux'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-mux.c' line='215' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/clk/clk-mux.c' line='215' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/clk/clk-mux.c' line='216' column='1'/>
+        <parameter type-id='f9b06939' name='num_parents' filepath='drivers/clk/clk-mux.c' line='216' column='1'/>
+        <parameter type-id='13956559' name='parent_names' filepath='drivers/clk/clk-mux.c' line='217' column='1'/>
+        <parameter type-id='ca0dae6c' name='parent_hws' filepath='drivers/clk/clk-mux.c' line='218' column='1'/>
+        <parameter type-id='4cdbecf4' name='parent_data' filepath='drivers/clk/clk-mux.c' line='219' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-mux.c' line='220' column='1'/>
+        <parameter type-id='eaa32e2f' name='reg' filepath='drivers/clk/clk-mux.c' line='220' column='1'/>
+        <parameter type-id='f9b06939' name='shift' filepath='drivers/clk/clk-mux.c' line='220' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='drivers/clk/clk-mux.c' line='220' column='1'/>
+        <parameter type-id='f9b06939' name='clk_mux_flags' filepath='drivers/clk/clk-mux.c' line='221' column='1'/>
+        <parameter type-id='f9409001' name='table' filepath='drivers/clk/clk-mux.c' line='221' column='1'/>
+        <parameter type-id='cff2d845' name='lock' filepath='drivers/clk/clk-mux.c' line='221' column='1'/>
+        <return type-id='3aaeef89'/>
+      </function-decl>
+      <function-decl name='__devm_drm_dev_alloc' mangled-name='__devm_drm_dev_alloc' filepath='drivers/gpu/drm/drm_drv.c' line='685' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__devm_drm_dev_alloc'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/gpu/drm/drm_drv.c' line='685' column='1'/>
+        <parameter type-id='b4e725f2' name='driver' filepath='drivers/gpu/drm/drm_drv.c' line='686' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/gpu/drm/drm_drv.c' line='687' column='1'/>
+        <parameter type-id='b59d7dce' name='offset' filepath='drivers/gpu/drm/drm_drv.c' line='687' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='__devm_iio_device_register' mangled-name='__devm_iio_device_register' filepath='drivers/iio/industrialio-core.c' line='2024' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__devm_iio_device_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iio/industrialio-core.c' line='2024' column='1'/>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/industrialio-core.c' line='2024' column='1'/>
+        <parameter type-id='2730d015' name='this_mod' filepath='drivers/iio/industrialio-core.c' line='2025' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__devm_irq_alloc_descs' mangled-name='__devm_irq_alloc_descs' filepath='kernel/irq/devres.c' line='178' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__devm_irq_alloc_descs'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/irq/devres.c' line='178' column='1'/>
+        <parameter type-id='95e97e5e' name='irq' filepath='kernel/irq/devres.c' line='178' column='1'/>
+        <parameter type-id='f0981eeb' name='from' filepath='kernel/irq/devres.c' line='178' column='1'/>
+        <parameter type-id='f0981eeb' name='cnt' filepath='kernel/irq/devres.c' line='179' column='1'/>
+        <parameter type-id='95e97e5e' name='node' filepath='kernel/irq/devres.c' line='179' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='kernel/irq/devres.c' line='179' column='1'/>
+        <parameter type-id='07779cd9' name='affinity' filepath='kernel/irq/devres.c' line='180' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__devm_mdiobus_register' mangled-name='__devm_mdiobus_register' filepath='drivers/net/phy/mdio_devres.c' line='73' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__devm_mdiobus_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/net/phy/mdio_devres.c' line='73' column='1'/>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_devres.c' line='73' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/net/phy/mdio_devres.c' line='74' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__devm_of_phy_provider_register' mangled-name='__devm_of_phy_provider_register' filepath='drivers/phy/phy-core.c' line='1107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__devm_of_phy_provider_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/phy/phy-core.c' line='1107' column='1'/>
+        <parameter type-id='9a537bbe' name='children' filepath='drivers/phy/phy-core.c' line='1108' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/phy/phy-core.c' line='1108' column='1'/>
+        <parameter type-id='df697557' name='of_xlate' filepath='drivers/phy/phy-core.c' line='1109' column='1'/>
+        <return type-id='3608d096'/>
+      </function-decl>
+      <function-decl name='__devm_regmap_init' mangled-name='__devm_regmap_init' filepath='drivers/base/regmap/regmap.c' line='1250' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__devm_regmap_init'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/regmap/regmap.c' line='1250' column='1'/>
+        <parameter type-id='00e96299' name='bus' filepath='drivers/base/regmap/regmap.c' line='1251' column='1'/>
+        <parameter type-id='eaa32e2f' name='bus_context' filepath='drivers/base/regmap/regmap.c' line='1252' column='1'/>
+        <parameter type-id='9d19d4a7' name='config' filepath='drivers/base/regmap/regmap.c' line='1253' column='1'/>
+        <parameter type-id='a57283f9' name='lock_key' filepath='drivers/base/regmap/regmap.c' line='1254' column='1'/>
+        <parameter type-id='80f4b756' name='lock_name' filepath='drivers/base/regmap/regmap.c' line='1255' column='1'/>
+        <return type-id='29af9a71'/>
+      </function-decl>
+      <function-decl name='__devm_regmap_init_i2c' mangled-name='__devm_regmap_init_i2c' filepath='drivers/base/regmap/regmap-i2c.c' line='384' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__devm_regmap_init_i2c'>
+        <parameter type-id='3e31633b' name='i2c' filepath='drivers/base/regmap/regmap-i2c.c' line='384' column='1'/>
+        <parameter type-id='9d19d4a7' name='config' filepath='drivers/base/regmap/regmap-i2c.c' line='385' column='1'/>
+        <parameter type-id='a57283f9' name='lock_key' filepath='drivers/base/regmap/regmap-i2c.c' line='386' column='1'/>
+        <parameter type-id='80f4b756' name='lock_name' filepath='drivers/base/regmap/regmap-i2c.c' line='387' column='1'/>
+        <return type-id='29af9a71'/>
+      </function-decl>
+      <function-decl name='__devm_regmap_init_mmio_clk' mangled-name='__devm_regmap_init_mmio_clk' filepath='drivers/base/regmap/regmap-mmio.c' line='413' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__devm_regmap_init_mmio_clk'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/regmap/regmap-mmio.c' line='413' column='1'/>
+        <parameter type-id='80f4b756' name='clk_id' filepath='drivers/base/regmap/regmap-mmio.c' line='414' column='1'/>
+        <parameter type-id='eaa32e2f' name='regs' filepath='drivers/base/regmap/regmap-mmio.c' line='415' column='1'/>
+        <parameter type-id='9d19d4a7' name='config' filepath='drivers/base/regmap/regmap-mmio.c' line='416' column='1'/>
+        <parameter type-id='a57283f9' name='lock_key' filepath='drivers/base/regmap/regmap-mmio.c' line='417' column='1'/>
+        <parameter type-id='80f4b756' name='lock_name' filepath='drivers/base/regmap/regmap-mmio.c' line='418' column='1'/>
+        <return type-id='29af9a71'/>
+      </function-decl>
+      <function-decl name='__devm_regmap_init_spi' mangled-name='__devm_regmap_init_spi' filepath='drivers/base/regmap/regmap-spi.c' line='122' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__devm_regmap_init_spi'>
+        <parameter type-id='e90f4666' name='spi' filepath='drivers/base/regmap/regmap-spi.c' line='122' column='1'/>
+        <parameter type-id='9d19d4a7' name='config' filepath='drivers/base/regmap/regmap-spi.c' line='123' column='1'/>
+        <parameter type-id='a57283f9' name='lock_key' filepath='drivers/base/regmap/regmap-spi.c' line='124' column='1'/>
+        <parameter type-id='80f4b756' name='lock_name' filepath='drivers/base/regmap/regmap-spi.c' line='125' column='1'/>
+        <return type-id='29af9a71'/>
+      </function-decl>
+      <function-decl name='__devm_release_region' mangled-name='__devm_release_region' filepath='kernel/resource.c' line='1563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__devm_release_region'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/resource.c' line='1563' column='1'/>
+        <parameter type-id='c9d64c0d' name='parent' filepath='kernel/resource.c' line='1563' column='1'/>
+        <parameter type-id='acc63fdf' name='start' filepath='kernel/resource.c' line='1564' column='1'/>
+        <parameter type-id='acc63fdf' name='n' filepath='kernel/resource.c' line='1564' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__devm_request_region' mangled-name='__devm_request_region' filepath='kernel/resource.c' line='1538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__devm_request_region'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/resource.c' line='1538' column='1'/>
+        <parameter type-id='c9d64c0d' name='parent' filepath='kernel/resource.c' line='1538' column='1'/>
+        <parameter type-id='acc63fdf' name='start' filepath='kernel/resource.c' line='1539' column='1'/>
+        <parameter type-id='acc63fdf' name='n' filepath='kernel/resource.c' line='1539' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/resource.c' line='1539' column='1'/>
+        <return type-id='c9d64c0d'/>
+      </function-decl>
+      <function-decl name='__devm_reset_control_get' mangled-name='__devm_reset_control_get' filepath='drivers/reset/core.c' line='1034' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__devm_reset_control_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/reset/core.c' line='1034' column='1'/>
+        <parameter type-id='80f4b756' name='id' filepath='drivers/reset/core.c' line='1034' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/reset/core.c' line='1034' column='1'/>
+        <parameter type-id='b50a4934' name='shared' filepath='drivers/reset/core.c' line='1035' column='1'/>
+        <parameter type-id='b50a4934' name='optional' filepath='drivers/reset/core.c' line='1035' column='1'/>
+        <parameter type-id='b50a4934' name='acquired' filepath='drivers/reset/core.c' line='1035' column='1'/>
+        <return type-id='9f9b8114'/>
+      </function-decl>
+      <function-decl name='__devm_rtc_register_device' mangled-name='__devm_rtc_register_device' filepath='drivers/rtc/class.c' line='385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__devm_rtc_register_device'>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/rtc/class.c' line='385' column='1'/>
+        <parameter type-id='5992ae83' name='rtc' filepath='drivers/rtc/class.c' line='385' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__devm_spi_alloc_controller' mangled-name='__devm_spi_alloc_controller' filepath='drivers/spi/spi.c' line='2637' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__devm_spi_alloc_controller'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/spi/spi.c' line='2637' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='drivers/spi/spi.c' line='2638' column='1'/>
+        <parameter type-id='b50a4934' name='slave' filepath='drivers/spi/spi.c' line='2639' column='1'/>
+        <return type-id='f22e4524'/>
+      </function-decl>
+      <function-decl name='__devres_alloc_node' mangled-name='__devres_alloc_node' filepath='drivers/base/devres.c' line='157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__devres_alloc_node'>
+        <parameter type-id='b6609e5b' name='release' filepath='drivers/base/devres.c' line='157' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/base/devres.c' line='157' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='drivers/base/devres.c' line='157' column='1'/>
+        <parameter type-id='95e97e5e' name='nid' filepath='drivers/base/devres.c' line='157' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/base/devres.c' line='158' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='__dma_request_channel' mangled-name='__dma_request_channel' filepath='drivers/dma/dmaengine.c' line='756' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__dma_request_channel'>
+        <parameter type-id='d2b9f7d5' name='mask' filepath='drivers/dma/dmaengine.c' line='756' column='1'/>
+        <parameter type-id='55f53546' name='fn' filepath='drivers/dma/dmaengine.c' line='757' column='1'/>
+        <parameter type-id='eaa32e2f' name='fn_param' filepath='drivers/dma/dmaengine.c' line='757' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/dma/dmaengine.c' line='758' column='1'/>
+        <return type-id='27f3f5d8'/>
+      </function-decl>
+      <function-decl name='__do_once_done' mangled-name='__do_once_done' filepath='lib/once.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__do_once_done'>
+        <parameter type-id='d8e6b335' name='done' filepath='lib/once.c' line='60' column='1'/>
+        <parameter type-id='ac6963b2' name='once_key' filepath='lib/once.c' line='60' column='1'/>
+        <parameter type-id='1d2c2b85' name='flags' filepath='lib/once.c' line='61' column='1'/>
+        <parameter type-id='2730d015' name='mod' filepath='lib/once.c' line='61' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__do_once_start' mangled-name='__do_once_start' filepath='lib/once.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__do_once_start'>
+        <parameter type-id='d8e6b335' name='done' filepath='lib/once.c' line='42' column='1'/>
+        <parameter type-id='1d2c2b85' name='flags' filepath='lib/once.c' line='42' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='__dquot_alloc_space' mangled-name='__dquot_alloc_space' filepath='fs/quota/dquot.c' line='1663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__dquot_alloc_space'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='1663' column='1'/>
+        <parameter type-id='33341965' name='number' filepath='fs/quota/dquot.c' line='1663' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='fs/quota/dquot.c' line='1663' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__dquot_free_space' mangled-name='__dquot_free_space' filepath='fs/quota/dquot.c' line='1862' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__dquot_free_space'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='1862' column='1'/>
+        <parameter type-id='33341965' name='number' filepath='fs/quota/dquot.c' line='1862' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='fs/quota/dquot.c' line='1862' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__dquot_transfer' mangled-name='__dquot_transfer' filepath='fs/quota/dquot.c' line='1962' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__dquot_transfer'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='1962' column='1'/>
+        <parameter type-id='30677246' name='transfer_to' filepath='fs/quota/dquot.c' line='1962' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__drm_atomic_helper_connector_destroy_state' mangled-name='__drm_atomic_helper_connector_destroy_state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='514' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_atomic_helper_connector_destroy_state'>
+        <parameter type-id='249ef586' name='state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='514' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_atomic_helper_connector_duplicate_state' mangled-name='__drm_atomic_helper_connector_duplicate_state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='466' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_atomic_helper_connector_duplicate_state'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='466' column='1'/>
+        <parameter type-id='249ef586' name='state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='467' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_atomic_helper_connector_reset' mangled-name='__drm_atomic_helper_connector_reset' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='408' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_atomic_helper_connector_reset'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='408' column='1'/>
+        <parameter type-id='249ef586' name='conn_state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='409' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_atomic_helper_crtc_destroy_state' mangled-name='__drm_atomic_helper_crtc_destroy_state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='191' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_atomic_helper_crtc_destroy_state'>
+        <parameter type-id='35078cb9' name='state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='191' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_atomic_helper_crtc_duplicate_state' mangled-name='__drm_atomic_helper_crtc_duplicate_state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='131' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_atomic_helper_crtc_duplicate_state'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='131' column='1'/>
+        <parameter type-id='35078cb9' name='state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='132' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_atomic_helper_crtc_reset' mangled-name='__drm_atomic_helper_crtc_reset' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='91' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_atomic_helper_crtc_reset'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='91' column='1'/>
+        <parameter type-id='35078cb9' name='crtc_state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='92' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_atomic_helper_plane_destroy_state' mangled-name='__drm_atomic_helper_plane_destroy_state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='348' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_atomic_helper_plane_destroy_state'>
+        <parameter type-id='d0835005' name='state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='348' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_atomic_helper_plane_duplicate_state' mangled-name='__drm_atomic_helper_plane_duplicate_state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='303' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_atomic_helper_plane_duplicate_state'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='303' column='1'/>
+        <parameter type-id='d0835005' name='state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='304' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_atomic_helper_plane_reset' mangled-name='__drm_atomic_helper_plane_reset' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_atomic_helper_plane_reset'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='266' column='1'/>
+        <parameter type-id='d0835005' name='plane_state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='267' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_atomic_helper_private_obj_duplicate_state' mangled-name='__drm_atomic_helper_private_obj_duplicate_state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='553' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_atomic_helper_private_obj_duplicate_state'>
+        <parameter type-id='11c98e9a' name='obj' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='553' column='1'/>
+        <parameter type-id='4ea020ae' name='state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='554' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_atomic_state_free' mangled-name='__drm_atomic_state_free' filepath='drivers/gpu/drm/drm_atomic.c' line='297' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_atomic_state_free'>
+        <parameter type-id='aa29ecab' name='ref' filepath='drivers/gpu/drm/drm_atomic.c' line='297' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_crtc_commit_free' mangled-name='__drm_crtc_commit_free' filepath='drivers/gpu/drm/drm_atomic.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_crtc_commit_free'>
+        <parameter type-id='aa29ecab' name='kref' filepath='drivers/gpu/drm/drm_atomic.c' line='47' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_dbg' mangled-name='__drm_dbg' filepath='drivers/gpu/drm/drm_print.c' line='283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_dbg'>
+        <parameter type-id='189697ba' name='category' filepath='drivers/gpu/drm/drm_print.c' line='283' column='1'/>
+        <parameter type-id='80f4b756' name='format' filepath='drivers/gpu/drm/drm_print.c' line='283' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='__drm_debug' type-id='f0981eeb' mangled-name='__drm_debug' visibility='default' filepath='drivers/gpu/drm/drm_print.c' line='43' column='1' elf-symbol-id='__drm_debug'/>
+      <function-decl name='__drm_err' mangled-name='__drm_err' filepath='drivers/gpu/drm/drm_print.c' line='302' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_err'>
+        <parameter type-id='80f4b756' name='format' filepath='drivers/gpu/drm/drm_print.c' line='302' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_gem_destroy_shadow_plane_state' mangled-name='__drm_gem_destroy_shadow_plane_state' filepath='drivers/gpu/drm/drm_gem_atomic_helper.c' line='248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_gem_destroy_shadow_plane_state'>
+        <parameter type-id='98dd23ae' name='shadow_plane_state' filepath='drivers/gpu/drm/drm_gem_atomic_helper.c' line='248' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_gem_duplicate_shadow_plane_state' mangled-name='__drm_gem_duplicate_shadow_plane_state' filepath='drivers/gpu/drm/drm_gem_atomic_helper.c' line='199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_gem_duplicate_shadow_plane_state'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_gem_atomic_helper.c' line='199' column='1'/>
+        <parameter type-id='98dd23ae' name='new_shadow_plane_state' filepath='drivers/gpu/drm/drm_gem_atomic_helper.c' line='200' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_gem_reset_shadow_plane' mangled-name='__drm_gem_reset_shadow_plane' filepath='drivers/gpu/drm/drm_gem_atomic_helper.c' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_gem_reset_shadow_plane'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_gem_atomic_helper.c' line='282' column='1'/>
+        <parameter type-id='98dd23ae' name='shadow_plane_state' filepath='drivers/gpu/drm/drm_gem_atomic_helper.c' line='283' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_printfn_coredump' mangled-name='__drm_printfn_coredump' filepath='drivers/gpu/drm/drm_print.c' line='99' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_printfn_coredump'>
+        <parameter type-id='7ac48c21' name='p' filepath='drivers/gpu/drm/drm_print.c' line='99' column='1'/>
+        <parameter type-id='3b5c2208' name='vaf' filepath='drivers/gpu/drm/drm_print.c' line='99' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_printfn_debug' mangled-name='__drm_printfn_debug' filepath='drivers/gpu/drm/drm_print.c' line='163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_printfn_debug'>
+        <parameter type-id='7ac48c21' name='p' filepath='drivers/gpu/drm/drm_print.c' line='163' column='1'/>
+        <parameter type-id='3b5c2208' name='vaf' filepath='drivers/gpu/drm/drm_print.c' line='163' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_printfn_info' mangled-name='__drm_printfn_info' filepath='drivers/gpu/drm/drm_print.c' line='157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_printfn_info'>
+        <parameter type-id='7ac48c21' name='p' filepath='drivers/gpu/drm/drm_print.c' line='157' column='1'/>
+        <parameter type-id='3b5c2208' name='vaf' filepath='drivers/gpu/drm/drm_print.c' line='157' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_printfn_seq_file' mangled-name='__drm_printfn_seq_file' filepath='drivers/gpu/drm/drm_print.c' line='151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_printfn_seq_file'>
+        <parameter type-id='7ac48c21' name='p' filepath='drivers/gpu/drm/drm_print.c' line='151' column='1'/>
+        <parameter type-id='3b5c2208' name='vaf' filepath='drivers/gpu/drm/drm_print.c' line='151' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_puts_coredump' mangled-name='__drm_puts_coredump' filepath='drivers/gpu/drm/drm_print.c' line='57' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_puts_coredump'>
+        <parameter type-id='7ac48c21' name='p' filepath='drivers/gpu/drm/drm_print.c' line='57' column='1'/>
+        <parameter type-id='80f4b756' name='str' filepath='drivers/gpu/drm/drm_print.c' line='57' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drm_puts_seq_file' mangled-name='__drm_puts_seq_file' filepath='drivers/gpu/drm/drm_print.c' line='145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drm_puts_seq_file'>
+        <parameter type-id='7ac48c21' name='p' filepath='drivers/gpu/drm/drm_print.c' line='145' column='1'/>
+        <parameter type-id='80f4b756' name='str' filepath='drivers/gpu/drm/drm_print.c' line='145' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__drmm_simple_encoder_alloc' mangled-name='__drmm_simple_encoder_alloc' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='78' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drmm_simple_encoder_alloc'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='78' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='78' column='1'/>
+        <parameter type-id='b59d7dce' name='offset' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='79' column='1'/>
+        <parameter type-id='95e97e5e' name='encoder_type' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='79' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='__drmm_universal_plane_alloc' mangled-name='__drmm_universal_plane_alloc' filepath='drivers/gpu/drm/drm_plane.c' line='414' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__drmm_universal_plane_alloc'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_plane.c' line='414' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/gpu/drm/drm_plane.c' line='414' column='1'/>
+        <parameter type-id='b59d7dce' name='offset' filepath='drivers/gpu/drm/drm_plane.c' line='415' column='1'/>
+        <parameter type-id='8f92235e' name='possible_crtcs' filepath='drivers/gpu/drm/drm_plane.c' line='415' column='1'/>
+        <parameter type-id='cfd5d066' name='funcs' filepath='drivers/gpu/drm/drm_plane.c' line='416' column='1'/>
+        <parameter type-id='a6798dcc' name='formats' filepath='drivers/gpu/drm/drm_plane.c' line='417' column='1'/>
+        <parameter type-id='f0981eeb' name='format_count' filepath='drivers/gpu/drm/drm_plane.c' line='417' column='1'/>
+        <parameter type-id='713a56f5' name='format_modifiers' filepath='drivers/gpu/drm/drm_plane.c' line='418' column='1'/>
+        <parameter type-id='5eed3c85' name='type' filepath='drivers/gpu/drm/drm_plane.c' line='419' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/gpu/drm/drm_plane.c' line='420' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='__dynamic_dev_dbg' mangled-name='__dynamic_dev_dbg' filepath='lib/dynamic_debug.c' line='621' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__dynamic_dev_dbg'>
+        <parameter type-id='7c67ab39' name='descriptor' filepath='lib/dynamic_debug.c' line='621' column='1'/>
+        <parameter type-id='8df61054' name='dev' filepath='lib/dynamic_debug.c' line='622' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='lib/dynamic_debug.c' line='622' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__dynamic_netdev_dbg' mangled-name='__dynamic_netdev_dbg' filepath='lib/dynamic_debug.c' line='652' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__dynamic_netdev_dbg'>
+        <parameter type-id='7c67ab39' name='descriptor' filepath='lib/dynamic_debug.c' line='652' column='1'/>
+        <parameter type-id='2ce52478' name='dev' filepath='lib/dynamic_debug.c' line='653' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='lib/dynamic_debug.c' line='653' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__dynamic_pr_debug' mangled-name='__dynamic_pr_debug' filepath='lib/dynamic_debug.c' line='601' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__dynamic_pr_debug'>
+        <parameter type-id='7c67ab39' name='descriptor' filepath='lib/dynamic_debug.c' line='601' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='lib/dynamic_debug.c' line='601' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__ethtool_get_link_ksettings' mangled-name='__ethtool_get_link_ksettings' filepath='net/ethtool/ioctl.c' line='428' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__ethtool_get_link_ksettings'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/ethtool/ioctl.c' line='428' column='1'/>
+        <parameter type-id='70de91e2' name='link_ksettings' filepath='net/ethtool/ioctl.c' line='429' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__fdget' mangled-name='__fdget' filepath='fs/file.c' line='1054' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__fdget'>
+        <parameter type-id='f0981eeb' name='fd' filepath='fs/file.c' line='1054' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='__filemap_set_wb_err' mangled-name='__filemap_set_wb_err' filepath='mm/filemap.c' line='728' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__filemap_set_wb_err'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/filemap.c' line='728' column='1'/>
+        <parameter type-id='95e97e5e' name='err' filepath='mm/filemap.c' line='728' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__find_get_block' mangled-name='__find_get_block' filepath='fs/buffer.c' line='1304' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__find_get_block'>
+        <parameter type-id='b88dd945' name='bdev' filepath='fs/buffer.c' line='1304' column='1'/>
+        <parameter type-id='a42536cd' name='block' filepath='fs/buffer.c' line='1304' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='fs/buffer.c' line='1304' column='1'/>
+        <return type-id='c485c22c'/>
+      </function-decl>
+      <function-decl name='__find_vma' mangled-name='__find_vma' filepath='mm/mmap.c' line='2307' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__find_vma'>
+        <parameter type-id='df4b7819' name='mm' filepath='mm/mmap.c' line='2307' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='mm/mmap.c' line='2307' column='1'/>
+        <return type-id='2ae08426'/>
+      </function-decl>
+      <function-decl name='__free_iova' mangled-name='__free_iova' filepath='drivers/iommu/iova.c' line='544' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__free_iova'>
+        <parameter type-id='0c2c419d' name='iovad' filepath='drivers/iommu/iova.c' line='544' column='1'/>
+        <parameter type-id='b2ea0a72' name='iova' filepath='drivers/iommu/iova.c' line='544' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__free_pages' mangled-name='__free_pages' filepath='mm/page_alloc.c' line='5843' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__free_pages'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/page_alloc.c' line='5843' column='1'/>
+        <parameter type-id='f0981eeb' name='order' filepath='mm/page_alloc.c' line='5843' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__fs_parse' mangled-name='__fs_parse' filepath='fs/fs_parser.c' line='103' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__fs_parse'>
+        <parameter type-id='e27a9d68' name='log' filepath='fs/fs_parser.c' line='103' column='1'/>
+        <parameter type-id='8d4f223b' name='desc' filepath='fs/fs_parser.c' line='104' column='1'/>
+        <parameter type-id='75615bf0' name='param' filepath='fs/fs_parser.c' line='105' column='1'/>
+        <parameter type-id='59cc1ae8' name='result' filepath='fs/fs_parser.c' line='106' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__fscrypt_encrypt_symlink' mangled-name='__fscrypt_encrypt_symlink' filepath='fs/crypto/hooks.c' line='238' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__fscrypt_encrypt_symlink'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/crypto/hooks.c' line='238' column='1'/>
+        <parameter type-id='80f4b756' name='target' filepath='fs/crypto/hooks.c' line='238' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='fs/crypto/hooks.c' line='239' column='1'/>
+        <parameter type-id='8b145ad8' name='disk_link' filepath='fs/crypto/hooks.c' line='239' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__fscrypt_inode_uses_inline_crypto' mangled-name='__fscrypt_inode_uses_inline_crypto' filepath='fs/crypto/inline_crypt.c' line='231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__fscrypt_inode_uses_inline_crypto'>
+        <parameter type-id='c5a4eb7f' name='inode' filepath='fs/crypto/inline_crypt.c' line='231' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='__fscrypt_prepare_link' mangled-name='__fscrypt_prepare_link' filepath='fs/crypto/hooks.c' line='52' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__fscrypt_prepare_link'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/crypto/hooks.c' line='52' column='1'/>
+        <parameter type-id='7e666abe' name='dir' filepath='fs/crypto/hooks.c' line='52' column='1'/>
+        <parameter type-id='27675065' name='dentry' filepath='fs/crypto/hooks.c' line='53' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__fscrypt_prepare_lookup' mangled-name='__fscrypt_prepare_lookup' filepath='fs/crypto/hooks.c' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__fscrypt_prepare_lookup'>
+        <parameter type-id='7e666abe' name='dir' filepath='fs/crypto/hooks.c' line='97' column='1'/>
+        <parameter type-id='27675065' name='dentry' filepath='fs/crypto/hooks.c' line='97' column='1'/>
+        <parameter type-id='f61d3a1e' name='fname' filepath='fs/crypto/hooks.c' line='98' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__fscrypt_prepare_readdir' mangled-name='__fscrypt_prepare_readdir' filepath='fs/crypto/hooks.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__fscrypt_prepare_readdir'>
+        <parameter type-id='7e666abe' name='dir' filepath='fs/crypto/hooks.c' line='114' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__fscrypt_prepare_rename' mangled-name='__fscrypt_prepare_rename' filepath='fs/crypto/hooks.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__fscrypt_prepare_rename'>
+        <parameter type-id='7e666abe' name='old_dir' filepath='fs/crypto/hooks.c' line='69' column='1'/>
+        <parameter type-id='27675065' name='old_dentry' filepath='fs/crypto/hooks.c' line='69' column='1'/>
+        <parameter type-id='7e666abe' name='new_dir' filepath='fs/crypto/hooks.c' line='70' column='1'/>
+        <parameter type-id='27675065' name='new_dentry' filepath='fs/crypto/hooks.c' line='70' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='fs/crypto/hooks.c' line='71' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__fscrypt_prepare_setattr' mangled-name='__fscrypt_prepare_setattr' filepath='fs/crypto/hooks.c' line='120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__fscrypt_prepare_setattr'>
+        <parameter type-id='27675065' name='dentry' filepath='fs/crypto/hooks.c' line='120' column='1'/>
+        <parameter type-id='ab7bbd67' name='attr' filepath='fs/crypto/hooks.c' line='120' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__generic_file_write_iter' mangled-name='__generic_file_write_iter' filepath='mm/filemap.c' line='3895' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__generic_file_write_iter'>
+        <parameter type-id='80f25feb' name='iocb' filepath='mm/filemap.c' line='3895' column='1'/>
+        <parameter type-id='4fa10f9e' name='from' filepath='mm/filemap.c' line='3895' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='__genphy_config_aneg' mangled-name='__genphy_config_aneg' filepath='drivers/net/phy/phy_device.c' line='2167' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__genphy_config_aneg'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='2167' column='1'/>
+        <parameter type-id='b50a4934' name='changed' filepath='drivers/net/phy/phy_device.c' line='2167' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__get_free_pages' mangled-name='__get_free_pages' filepath='mm/page_alloc.c' line='5806' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__get_free_pages'>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/page_alloc.c' line='5806' column='1'/>
+        <parameter type-id='f0981eeb' name='order' filepath='mm/page_alloc.c' line='5806' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='__get_task_comm' mangled-name='__get_task_comm' filepath='fs/exec.c' line='1220' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__get_task_comm'>
+        <parameter type-id='26a90f95' name='buf' filepath='fs/exec.c' line='1220' column='1'/>
+        <parameter type-id='b59d7dce' name='buf_size' filepath='fs/exec.c' line='1220' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='fs/exec.c' line='1220' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='__getblk_gfp' mangled-name='__getblk_gfp' filepath='fs/buffer.c' line='1329' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__getblk_gfp'>
+        <parameter type-id='b88dd945' name='bdev' filepath='fs/buffer.c' line='1329' column='1'/>
+        <parameter type-id='a42536cd' name='block' filepath='fs/buffer.c' line='1329' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='fs/buffer.c' line='1330' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='fs/buffer.c' line='1330' column='1'/>
+        <return type-id='c485c22c'/>
+      </function-decl>
+      <function-decl name='__hci_cmd_sync' mangled-name='__hci_cmd_sync' filepath='net/bluetooth/hci_request.c' line='185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__hci_cmd_sync'>
+        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_request.c' line='185' column='1'/>
+        <parameter type-id='1dc6a898' name='opcode' filepath='net/bluetooth/hci_request.c' line='185' column='1'/>
+        <parameter type-id='19c2251e' name='plen' filepath='net/bluetooth/hci_request.c' line='185' column='1'/>
+        <parameter type-id='eaa32e2f' name='param' filepath='net/bluetooth/hci_request.c' line='186' column='1'/>
+        <parameter type-id='19c2251e' name='timeout' filepath='net/bluetooth/hci_request.c' line='186' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='__hci_cmd_sync_ev' mangled-name='__hci_cmd_sync_ev' filepath='net/bluetooth/hci_request.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__hci_cmd_sync_ev'>
+        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_request.c' line='128' column='1'/>
+        <parameter type-id='1dc6a898' name='opcode' filepath='net/bluetooth/hci_request.c' line='128' column='1'/>
+        <parameter type-id='19c2251e' name='plen' filepath='net/bluetooth/hci_request.c' line='128' column='1'/>
+        <parameter type-id='eaa32e2f' name='param' filepath='net/bluetooth/hci_request.c' line='129' column='1'/>
+        <parameter type-id='f9b06939' name='event' filepath='net/bluetooth/hci_request.c' line='129' column='1'/>
+        <parameter type-id='19c2251e' name='timeout' filepath='net/bluetooth/hci_request.c' line='129' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='__hid_register_driver' mangled-name='__hid_register_driver' filepath='drivers/hid/hid-core.c' line='2555' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__hid_register_driver'>
+        <parameter type-id='cbd2074d' name='hdrv' filepath='drivers/hid/hid-core.c' line='2555' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/hid/hid-core.c' line='2555' column='1'/>
+        <parameter type-id='80f4b756' name='mod_name' filepath='drivers/hid/hid-core.c' line='2556' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__hid_request' mangled-name='__hid_request' filepath='drivers/hid/hid-core.c' line='1720' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__hid_request'>
+        <parameter type-id='37175e4d' name='hid' filepath='drivers/hid/hid-core.c' line='1720' column='1'/>
+        <parameter type-id='5b4284d1' name='report' filepath='drivers/hid/hid-core.c' line='1720' column='1'/>
+        <parameter type-id='95e97e5e' name='reqtype' filepath='drivers/hid/hid-core.c' line='1721' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__hrtimer_get_remaining' mangled-name='__hrtimer_get_remaining' filepath='kernel/time/hrtimer.c' line='1457' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__hrtimer_get_remaining'>
+        <parameter type-id='1ce53783' name='timer' filepath='kernel/time/hrtimer.c' line='1457' column='1'/>
+        <parameter type-id='b50a4934' name='adjust' filepath='kernel/time/hrtimer.c' line='1457' column='1'/>
+        <return type-id='fbc017ef'/>
+      </function-decl>
+      <function-decl name='__hvc_resize' mangled-name='__hvc_resize' filepath='drivers/tty/hvc/hvc_console.c' line='778' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__hvc_resize'>
+        <parameter type-id='352b95f6' name='hp' filepath='drivers/tty/hvc/hvc_console.c' line='778' column='1'/>
+        <parameter type-id='a818b7a0' name='ws' filepath='drivers/tty/hvc/hvc_console.c' line='778' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__hw_addr_init' mangled-name='__hw_addr_init' filepath='net/core/dev_addr_lists.c' line='489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__hw_addr_init'>
+        <parameter type-id='9ed060a0' name='list' filepath='net/core/dev_addr_lists.c' line='489' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__hw_addr_sync' mangled-name='__hw_addr_sync' filepath='net/core/dev_addr_lists.c' line='263' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__hw_addr_sync'>
+        <parameter type-id='9ed060a0' name='to_list' filepath='net/core/dev_addr_lists.c' line='263' column='1'/>
+        <parameter type-id='9ed060a0' name='from_list' filepath='net/core/dev_addr_lists.c' line='264' column='1'/>
+        <parameter type-id='95e97e5e' name='addr_len' filepath='net/core/dev_addr_lists.c' line='265' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__hw_addr_sync_dev' mangled-name='__hw_addr_sync_dev' filepath='net/core/dev_addr_lists.c' line='308' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__hw_addr_sync_dev'>
+        <parameter type-id='9ed060a0' name='list' filepath='net/core/dev_addr_lists.c' line='308' column='1'/>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev_addr_lists.c' line='309' column='1'/>
+        <parameter type-id='776a7fe1' name='sync' filepath='net/core/dev_addr_lists.c' line='310' column='1'/>
+        <parameter type-id='776a7fe1' name='unsync' filepath='net/core/dev_addr_lists.c' line='311' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__hw_addr_unsync' mangled-name='__hw_addr_unsync' filepath='net/core/dev_addr_lists.c' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__hw_addr_unsync'>
+        <parameter type-id='9ed060a0' name='to_list' filepath='net/core/dev_addr_lists.c' line='282' column='1'/>
+        <parameter type-id='9ed060a0' name='from_list' filepath='net/core/dev_addr_lists.c' line='283' column='1'/>
+        <parameter type-id='95e97e5e' name='addr_len' filepath='net/core/dev_addr_lists.c' line='284' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__hw_addr_unsync_dev' mangled-name='__hw_addr_unsync_dev' filepath='net/core/dev_addr_lists.c' line='456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__hw_addr_unsync_dev'>
+        <parameter type-id='9ed060a0' name='list' filepath='net/core/dev_addr_lists.c' line='456' column='1'/>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev_addr_lists.c' line='457' column='1'/>
+        <parameter type-id='776a7fe1' name='unsync' filepath='net/core/dev_addr_lists.c' line='458' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__hwspin_lock_timeout' mangled-name='__hwspin_lock_timeout' filepath='drivers/hwspinlock/hwspinlock_core.c' line='206' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__hwspin_lock_timeout'>
+        <parameter type-id='0cb0b26f' name='hwlock' filepath='drivers/hwspinlock/hwspinlock_core.c' line='206' column='1'/>
+        <parameter type-id='f0981eeb' name='to' filepath='drivers/hwspinlock/hwspinlock_core.c' line='206' column='1'/>
+        <parameter type-id='95e97e5e' name='mode' filepath='drivers/hwspinlock/hwspinlock_core.c' line='207' column='1'/>
+        <parameter type-id='1d2c2b85' name='flags' filepath='drivers/hwspinlock/hwspinlock_core.c' line='207' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__hwspin_trylock' mangled-name='__hwspin_trylock' filepath='drivers/hwspinlock/hwspinlock_core.c' line='91' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__hwspin_trylock'>
+        <parameter type-id='0cb0b26f' name='hwlock' filepath='drivers/hwspinlock/hwspinlock_core.c' line='91' column='1'/>
+        <parameter type-id='95e97e5e' name='mode' filepath='drivers/hwspinlock/hwspinlock_core.c' line='91' column='1'/>
+        <parameter type-id='1d2c2b85' name='flags' filepath='drivers/hwspinlock/hwspinlock_core.c' line='91' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__hwspin_unlock' mangled-name='__hwspin_unlock' filepath='drivers/hwspinlock/hwspinlock_core.c' line='265' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__hwspin_unlock'>
+        <parameter type-id='0cb0b26f' name='hwlock' filepath='drivers/hwspinlock/hwspinlock_core.c' line='265' column='1'/>
+        <parameter type-id='95e97e5e' name='mode' filepath='drivers/hwspinlock/hwspinlock_core.c' line='265' column='1'/>
+        <parameter type-id='1d2c2b85' name='flags' filepath='drivers/hwspinlock/hwspinlock_core.c' line='265' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__i2c_smbus_xfer' mangled-name='__i2c_smbus_xfer' filepath='drivers/i2c/i2c-core-smbus.c' line='552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__i2c_smbus_xfer'>
+        <parameter type-id='b9af02c3' name='adapter' filepath='drivers/i2c/i2c-core-smbus.c' line='552' column='1'/>
+        <parameter type-id='1dc6a898' name='addr' filepath='drivers/i2c/i2c-core-smbus.c' line='552' column='1'/>
+        <parameter type-id='8efea9e5' name='flags' filepath='drivers/i2c/i2c-core-smbus.c' line='553' column='1'/>
+        <parameter type-id='a84c031d' name='read_write' filepath='drivers/i2c/i2c-core-smbus.c' line='553' column='1'/>
+        <parameter type-id='f9b06939' name='command' filepath='drivers/i2c/i2c-core-smbus.c' line='554' column='1'/>
+        <parameter type-id='95e97e5e' name='protocol' filepath='drivers/i2c/i2c-core-smbus.c' line='554' column='1'/>
+        <parameter type-id='a556dccb' name='data' filepath='drivers/i2c/i2c-core-smbus.c' line='554' column='1'/>
+        <return type-id='a7832498'/>
+      </function-decl>
+      <function-decl name='__i2c_transfer' mangled-name='__i2c_transfer' filepath='drivers/i2c/i2c-core-base.c' line='2077' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__i2c_transfer'>
+        <parameter type-id='b9af02c3' name='adap' filepath='drivers/i2c/i2c-core-base.c' line='2077' column='1'/>
+        <parameter type-id='cd44bc95' name='msgs' filepath='drivers/i2c/i2c-core-base.c' line='2077' column='1'/>
+        <parameter type-id='95e97e5e' name='num' filepath='drivers/i2c/i2c-core-base.c' line='2077' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__iio_device_register' mangled-name='__iio_device_register' filepath='drivers/iio/industrialio-core.c' line='1907' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__iio_device_register'>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/industrialio-core.c' line='1907' column='1'/>
+        <parameter type-id='2730d015' name='this_mod' filepath='drivers/iio/industrialio-core.c' line='1907' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__iio_trigger_register' mangled-name='__iio_trigger_register' filepath='drivers/iio/industrialio-trigger.c' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__iio_trigger_register'>
+        <parameter type-id='54e54fbb' name='trig_info' filepath='drivers/iio/industrialio-trigger.c' line='67' column='1'/>
+        <parameter type-id='2730d015' name='this_mod' filepath='drivers/iio/industrialio-trigger.c' line='68' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__inet6_lookup_established' mangled-name='__inet6_lookup_established' filepath='net/ipv6/inet6_hashtables.c' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__inet6_lookup_established'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv6/inet6_hashtables.c' line='51' column='1'/>
+        <parameter type-id='d7a1e3c2' name='hashinfo' filepath='net/ipv6/inet6_hashtables.c' line='52' column='1'/>
+        <parameter type-id='fea9c20b' name='saddr' filepath='net/ipv6/inet6_hashtables.c' line='53' column='1'/>
+        <parameter type-id='4590ffe4' name='sport' filepath='net/ipv6/inet6_hashtables.c' line='54' column='1'/>
+        <parameter type-id='fea9c20b' name='daddr' filepath='net/ipv6/inet6_hashtables.c' line='55' column='1'/>
+        <parameter type-id='d5c0a628' name='hnum' filepath='net/ipv6/inet6_hashtables.c' line='56' column='1'/>
+        <parameter type-id='2448a865' name='dif' filepath='net/ipv6/inet6_hashtables.c' line='57' column='1'/>
+        <parameter type-id='2448a865' name='sdif' filepath='net/ipv6/inet6_hashtables.c' line='57' column='1'/>
+        <return type-id='f772df6d'/>
+      </function-decl>
+      <function-decl name='__inet_lookup_established' mangled-name='__inet_lookup_established' filepath='net/ipv4/inet_hashtables.c' line='392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__inet_lookup_established'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv4/inet_hashtables.c' line='392' column='1'/>
+        <parameter type-id='d7a1e3c2' name='hashinfo' filepath='net/ipv4/inet_hashtables.c' line='393' column='1'/>
+        <parameter type-id='398c6fd2' name='saddr' filepath='net/ipv4/inet_hashtables.c' line='394' column='1'/>
+        <parameter type-id='4590ffe4' name='sport' filepath='net/ipv4/inet_hashtables.c' line='394' column='1'/>
+        <parameter type-id='398c6fd2' name='daddr' filepath='net/ipv4/inet_hashtables.c' line='395' column='1'/>
+        <parameter type-id='d5c0a628' name='hnum' filepath='net/ipv4/inet_hashtables.c' line='395' column='1'/>
+        <parameter type-id='2448a865' name='dif' filepath='net/ipv4/inet_hashtables.c' line='396' column='1'/>
+        <parameter type-id='2448a865' name='sdif' filepath='net/ipv4/inet_hashtables.c' line='396' column='1'/>
+        <return type-id='f772df6d'/>
+      </function-decl>
+      <function-decl name='__init_rwsem' mangled-name='__init_rwsem' filepath='kernel/locking/rwsem.c' line='317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__init_rwsem'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='317' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/locking/rwsem.c' line='317' column='1'/>
+        <parameter type-id='a57283f9' name='key' filepath='kernel/locking/rwsem.c' line='318' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__init_swait_queue_head' mangled-name='__init_swait_queue_head' filepath='kernel/sched/swait.c' line='7' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__init_swait_queue_head'>
+        <parameter type-id='571ea5c0' name='q' filepath='kernel/sched/swait.c' line='7' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/sched/swait.c' line='7' column='1'/>
+        <parameter type-id='a57283f9' name='key' filepath='kernel/sched/swait.c' line='8' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__init_waitqueue_head' mangled-name='__init_waitqueue_head' filepath='kernel/sched/wait.c' line='10' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__init_waitqueue_head'>
+        <parameter type-id='3f8b2ed3' name='wq_head' filepath='kernel/sched/wait.c' line='10' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/sched/wait.c' line='10' column='1'/>
+        <parameter type-id='a57283f9' name='key' filepath='kernel/sched/wait.c' line='10' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__insert_inode_hash' mangled-name='__insert_inode_hash' filepath='fs/inode.c' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__insert_inode_hash'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='498' column='1'/>
+        <parameter type-id='7359adad' name='hashval' filepath='fs/inode.c' line='498' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__iomap_dio_rw' mangled-name='__iomap_dio_rw' filepath='fs/iomap/direct-io.c' line='477' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__iomap_dio_rw'>
+        <parameter type-id='80f25feb' name='iocb' filepath='fs/iomap/direct-io.c' line='477' column='1'/>
+        <parameter type-id='4fa10f9e' name='iter' filepath='fs/iomap/direct-io.c' line='477' column='1'/>
+        <parameter type-id='f4e64e1d' name='ops' filepath='fs/iomap/direct-io.c' line='478' column='1'/>
+        <parameter type-id='79ebba98' name='dops' filepath='fs/iomap/direct-io.c' line='478' column='1'/>
+        <parameter type-id='f0981eeb' name='dio_flags' filepath='fs/iomap/direct-io.c' line='479' column='1'/>
+        <parameter type-id='b59d7dce' name='done_before' filepath='fs/iomap/direct-io.c' line='479' column='1'/>
+        <return type-id='22159b04'/>
+      </function-decl>
+      <function-decl name='__ioread32_copy' mangled-name='__ioread32_copy' filepath='lib/iomap_copy.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__ioread32_copy'>
+        <parameter type-id='eaa32e2f' name='to' filepath='lib/iomap_copy.c' line='42' column='1'/>
+        <parameter type-id='eaa32e2f' name='from' filepath='lib/iomap_copy.c' line='42' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/iomap_copy.c' line='42' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__ioremap' mangled-name='__ioremap' filepath='arch/arm64/mm/ioremap.c' line='227' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__ioremap'>
+        <parameter type-id='2522883d' name='phys_addr' filepath='arch/arm64/mm/ioremap.c' line='227' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='arch/arm64/mm/ioremap.c' line='227' column='1'/>
+        <parameter type-id='2e2dcbd3' name='prot' filepath='arch/arm64/mm/ioremap.c' line='227' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='__iowrite32_copy' mangled-name='__iowrite32_copy' filepath='lib/iomap_copy.c' line='19' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__iowrite32_copy'>
+        <parameter type-id='eaa32e2f' name='to' filepath='lib/iomap_copy.c' line='19' column='1'/>
+        <parameter type-id='eaa32e2f' name='from' filepath='lib/iomap_copy.c' line='20' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/iomap_copy.c' line='21' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__ip_select_ident' mangled-name='__ip_select_ident' filepath='net/ipv4/route.c' line='491' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__ip_select_ident'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv4/route.c' line='491' column='1'/>
+        <parameter type-id='53be694c' name='iph' filepath='net/ipv4/route.c' line='491' column='1'/>
+        <parameter type-id='95e97e5e' name='segs' filepath='net/ipv4/route.c' line='491' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__ipv6_addr_type' mangled-name='__ipv6_addr_type' filepath='net/ipv6/addrconf_core.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__ipv6_addr_type'>
+        <parameter type-id='fea9c20b' name='addr' filepath='net/ipv6/addrconf_core.c' line='38' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__irq_alloc_descs' mangled-name='__irq_alloc_descs' filepath='kernel/irq/irqdesc.c' line='797' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__irq_alloc_descs'>
+        <parameter type-id='95e97e5e' name='irq' filepath='kernel/irq/irqdesc.c' line='797' column='1'/>
+        <parameter type-id='f0981eeb' name='from' filepath='kernel/irq/irqdesc.c' line='797' column='1'/>
+        <parameter type-id='f0981eeb' name='cnt' filepath='kernel/irq/irqdesc.c' line='797' column='1'/>
+        <parameter type-id='95e97e5e' name='node' filepath='kernel/irq/irqdesc.c' line='797' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='kernel/irq/irqdesc.c' line='798' column='1'/>
+        <parameter type-id='07779cd9' name='affinity' filepath='kernel/irq/irqdesc.c' line='798' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__irq_alloc_domain_generic_chips' mangled-name='__irq_alloc_domain_generic_chips' filepath='kernel/irq/generic-chip.c' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__irq_alloc_domain_generic_chips'>
+        <parameter type-id='7544e824' name='d' filepath='kernel/irq/generic-chip.c' line='282' column='1'/>
+        <parameter type-id='95e97e5e' name='irqs_per_chip' filepath='kernel/irq/generic-chip.c' line='282' column='1'/>
+        <parameter type-id='95e97e5e' name='num_ct' filepath='kernel/irq/generic-chip.c' line='283' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/irq/generic-chip.c' line='283' column='1'/>
+        <parameter type-id='cdb741d3' name='handler' filepath='kernel/irq/generic-chip.c' line='284' column='1'/>
+        <parameter type-id='f0981eeb' name='clr' filepath='kernel/irq/generic-chip.c' line='285' column='1'/>
+        <parameter type-id='f0981eeb' name='set' filepath='kernel/irq/generic-chip.c' line='285' column='1'/>
+        <parameter type-id='7a1ec3b1' name='gcflags' filepath='kernel/irq/generic-chip.c' line='286' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__irq_domain_add' mangled-name='__irq_domain_add' filepath='kernel/irq/irqdomain.c' line='248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__irq_domain_add'>
+        <parameter type-id='4a935625' name='fwnode' filepath='kernel/irq/irqdomain.c' line='248' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='kernel/irq/irqdomain.c' line='248' column='1'/>
+        <parameter type-id='88370ce9' name='hwirq_max' filepath='kernel/irq/irqdomain.c' line='249' column='1'/>
+        <parameter type-id='95e97e5e' name='direct_max' filepath='kernel/irq/irqdomain.c' line='249' column='1'/>
+        <parameter type-id='2c202856' name='ops' filepath='kernel/irq/irqdomain.c' line='250' column='1'/>
+        <parameter type-id='eaa32e2f' name='host_data' filepath='kernel/irq/irqdomain.c' line='251' column='1'/>
+        <return type-id='7544e824'/>
+      </function-decl>
+      <function-decl name='__irq_resolve_mapping' mangled-name='__irq_resolve_mapping' filepath='kernel/irq/irqdomain.c' line='952' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__irq_resolve_mapping'>
+        <parameter type-id='7544e824' name='domain' filepath='kernel/irq/irqdomain.c' line='952' column='1'/>
+        <parameter type-id='88370ce9' name='hwirq' filepath='kernel/irq/irqdomain.c' line='953' column='1'/>
+        <parameter type-id='807869d3' name='irq' filepath='kernel/irq/irqdomain.c' line='954' column='1'/>
+        <return type-id='76c7d88b'/>
+      </function-decl>
+      <function-decl name='__irq_set_handler' mangled-name='__irq_set_handler' filepath='kernel/irq/chip.c' line='1061' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__irq_set_handler'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/chip.c' line='1061' column='1'/>
+        <parameter type-id='cdb741d3' name='handle' filepath='kernel/irq/chip.c' line='1061' column='1'/>
+        <parameter type-id='95e97e5e' name='is_chained' filepath='kernel/irq/chip.c' line='1061' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/irq/chip.c' line='1062' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__kfifo_alloc' mangled-name='__kfifo_alloc' filepath='lib/kfifo.c' line='24' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__kfifo_alloc'>
+        <parameter type-id='f3207f74' name='fifo' filepath='lib/kfifo.c' line='24' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='lib/kfifo.c' line='24' column='1'/>
+        <parameter type-id='b59d7dce' name='esize' filepath='lib/kfifo.c' line='25' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='lib/kfifo.c' line='25' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__kfifo_free' mangled-name='__kfifo_free' filepath='lib/kfifo.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__kfifo_free'>
+        <parameter type-id='f3207f74' name='fifo' filepath='lib/kfifo.c' line='55' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__kfifo_from_user' mangled-name='__kfifo_from_user' filepath='lib/kfifo.c' line='210' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__kfifo_from_user'>
+        <parameter type-id='f3207f74' name='fifo' filepath='lib/kfifo.c' line='210' column='1'/>
+        <parameter type-id='eaa32e2f' name='from' filepath='lib/kfifo.c' line='210' column='1'/>
+        <parameter type-id='7359adad' name='len' filepath='lib/kfifo.c' line='211' column='1'/>
+        <parameter type-id='807869d3' name='copied' filepath='lib/kfifo.c' line='211' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__kfifo_from_user_r' mangled-name='__kfifo_from_user_r' filepath='lib/kfifo.c' line='499' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__kfifo_from_user_r'>
+        <parameter type-id='f3207f74' name='fifo' filepath='lib/kfifo.c' line='499' column='1'/>
+        <parameter type-id='eaa32e2f' name='from' filepath='lib/kfifo.c' line='499' column='1'/>
+        <parameter type-id='7359adad' name='len' filepath='lib/kfifo.c' line='500' column='1'/>
+        <parameter type-id='807869d3' name='copied' filepath='lib/kfifo.c' line='500' column='1'/>
+        <parameter type-id='b59d7dce' name='recsize' filepath='lib/kfifo.c' line='500' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__kfifo_in' mangled-name='__kfifo_in' filepath='lib/kfifo.c' line='113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__kfifo_in'>
+        <parameter type-id='f3207f74' name='fifo' filepath='lib/kfifo.c' line='113' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='lib/kfifo.c' line='114' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='lib/kfifo.c' line='114' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='__kfifo_in_r' mangled-name='__kfifo_in_r' filepath='lib/kfifo.c' line='438' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__kfifo_in_r'>
+        <parameter type-id='f3207f74' name='fifo' filepath='lib/kfifo.c' line='438' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='lib/kfifo.c' line='438' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='lib/kfifo.c' line='439' column='1'/>
+        <parameter type-id='b59d7dce' name='recsize' filepath='lib/kfifo.c' line='439' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='__kfifo_init' mangled-name='__kfifo_init' filepath='lib/kfifo.c' line='66' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__kfifo_init'>
+        <parameter type-id='f3207f74' name='fifo' filepath='lib/kfifo.c' line='66' column='1'/>
+        <parameter type-id='eaa32e2f' name='buffer' filepath='lib/kfifo.c' line='66' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='lib/kfifo.c' line='67' column='1'/>
+        <parameter type-id='b59d7dce' name='esize' filepath='lib/kfifo.c' line='67' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__kfifo_out' mangled-name='__kfifo_out' filepath='lib/kfifo.c' line='166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__kfifo_out'>
+        <parameter type-id='f3207f74' name='fifo' filepath='lib/kfifo.c' line='166' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='lib/kfifo.c' line='167' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='lib/kfifo.c' line='167' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='__kfifo_out_peek' mangled-name='__kfifo_out_peek' filepath='lib/kfifo.c' line='152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__kfifo_out_peek'>
+        <parameter type-id='f3207f74' name='fifo' filepath='lib/kfifo.c' line='152' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='lib/kfifo.c' line='153' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='lib/kfifo.c' line='153' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='__kfifo_out_r' mangled-name='__kfifo_out_r' filepath='lib/kfifo.c' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__kfifo_out_r'>
+        <parameter type-id='f3207f74' name='fifo' filepath='lib/kfifo.c' line='476' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='lib/kfifo.c' line='476' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='lib/kfifo.c' line='477' column='1'/>
+        <parameter type-id='b59d7dce' name='recsize' filepath='lib/kfifo.c' line='477' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='__kfifo_to_user' mangled-name='__kfifo_to_user' filepath='lib/kfifo.c' line='270' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__kfifo_to_user'>
+        <parameter type-id='f3207f74' name='fifo' filepath='lib/kfifo.c' line='270' column='1'/>
+        <parameter type-id='eaa32e2f' name='to' filepath='lib/kfifo.c' line='270' column='1'/>
+        <parameter type-id='7359adad' name='len' filepath='lib/kfifo.c' line='271' column='1'/>
+        <parameter type-id='807869d3' name='copied' filepath='lib/kfifo.c' line='271' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__kfifo_to_user_r' mangled-name='__kfifo_to_user_r' filepath='lib/kfifo.c' line='523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__kfifo_to_user_r'>
+        <parameter type-id='f3207f74' name='fifo' filepath='lib/kfifo.c' line='523' column='1'/>
+        <parameter type-id='eaa32e2f' name='to' filepath='lib/kfifo.c' line='523' column='1'/>
+        <parameter type-id='7359adad' name='len' filepath='lib/kfifo.c' line='524' column='1'/>
+        <parameter type-id='807869d3' name='copied' filepath='lib/kfifo.c' line='524' column='1'/>
+        <parameter type-id='b59d7dce' name='recsize' filepath='lib/kfifo.c' line='524' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__kfree_skb' mangled-name='__kfree_skb' filepath='net/core/skbuff.c' line='755' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__kfree_skb'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='755' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__kmalloc' mangled-name='__kmalloc' filepath='mm/slub.c' line='4410' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__kmalloc'>
+        <parameter type-id='b59d7dce' name='size' filepath='mm/slub.c' line='4410' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='mm/slub.c' line='4410' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='__kthread_init_worker' mangled-name='__kthread_init_worker' filepath='kernel/kthread.c' line='697' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__kthread_init_worker'>
+        <parameter type-id='c41f4539' name='worker' filepath='kernel/kthread.c' line='697' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/kthread.c' line='698' column='1'/>
+        <parameter type-id='a57283f9' name='key' filepath='kernel/kthread.c' line='699' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__list_add_valid' mangled-name='__list_add_valid' filepath='lib/list_debug.c' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__list_add_valid'>
+        <parameter type-id='e84b031a' name='new' filepath='lib/list_debug.c' line='20' column='1'/>
+        <parameter type-id='e84b031a' name='prev' filepath='lib/list_debug.c' line='20' column='1'/>
+        <parameter type-id='e84b031a' name='next' filepath='lib/list_debug.c' line='21' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='__list_del_entry_valid' mangled-name='__list_del_entry_valid' filepath='lib/list_debug.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__list_del_entry_valid'>
+        <parameter type-id='e84b031a' name='entry' filepath='lib/list_debug.c' line='42' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='__local_bh_enable_ip' mangled-name='__local_bh_enable_ip' filepath='kernel/softirq.c' line='356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__local_bh_enable_ip'>
+        <parameter type-id='7359adad' name='ip' filepath='kernel/softirq.c' line='356' column='1'/>
+        <parameter type-id='f0981eeb' name='cnt' filepath='kernel/softirq.c' line='356' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__lock_buffer' mangled-name='__lock_buffer' filepath='fs/buffer.c' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__lock_buffer'>
+        <parameter type-id='c485c22c' name='bh' filepath='fs/buffer.c' line='67' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__lock_page' mangled-name='__lock_page' filepath='mm/filemap.c' line='1644' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__lock_page'>
+        <parameter type-id='02f11ed4' name='__page' filepath='mm/filemap.c' line='1644' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__mark_inode_dirty' mangled-name='__mark_inode_dirty' filepath='fs/fs-writeback.c' line='2410' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mark_inode_dirty'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/fs-writeback.c' line='2410' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='fs/fs-writeback.c' line='2410' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__mdiobus_read' mangled-name='__mdiobus_read' filepath='drivers/net/phy/mdio_bus.c' line='754' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mdiobus_read'>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='754' column='1'/>
+        <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='754' column='1'/>
+        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='754' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__mdiobus_register' mangled-name='__mdiobus_register' filepath='drivers/net/phy/mdio_bus.c' line='523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mdiobus_register'>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='523' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/net/phy/mdio_bus.c' line='523' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__mdiobus_write' mangled-name='__mdiobus_write' filepath='drivers/net/phy/mdio_bus.c' line='780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mdiobus_write'>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='780' column='1'/>
+        <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='780' column='1'/>
+        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='780' column='1'/>
+        <parameter type-id='1dc6a898' name='val' filepath='drivers/net/phy/mdio_bus.c' line='780' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__media_device_register' mangled-name='__media_device_register' filepath='drivers/media/mc/mc-device.c' line='732' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__media_device_register'>
+        <parameter type-id='e2929c1c' name='mdev' filepath='drivers/media/mc/mc-device.c' line='732' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/media/mc/mc-device.c' line='733' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__media_entity_setup_link' mangled-name='__media_entity_setup_link' filepath='drivers/media/mc/mc-entity.c' line='831' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__media_entity_setup_link'>
+        <parameter type-id='b4de78ea' name='link' filepath='drivers/media/mc/mc-entity.c' line='831' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='drivers/media/mc/mc-entity.c' line='831' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__memcat_p' mangled-name='__memcat_p' filepath='lib/memcat_p.c' line='10' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__memcat_p'>
+        <parameter type-id='63e171df' name='a' filepath='lib/memcat_p.c' line='10' column='1'/>
+        <parameter type-id='63e171df' name='b' filepath='lib/memcat_p.c' line='10' column='1'/>
+        <return type-id='63e171df'/>
+      </function-decl>
+      <function-decl name='__memcpy_fromio' mangled-name='__memcpy_fromio' filepath='arch/arm64/kernel/io.c' line='15' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__memcpy_fromio'>
+        <parameter type-id='eaa32e2f' name='to' filepath='arch/arm64/kernel/io.c' line='15' column='1'/>
+        <parameter type-id='60f8eab0' name='from' filepath='arch/arm64/kernel/io.c' line='15' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='arch/arm64/kernel/io.c' line='15' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__memcpy_toio' mangled-name='__memcpy_toio' filepath='arch/arm64/kernel/io.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__memcpy_toio'>
+        <parameter type-id='fe09dd29' name='to' filepath='arch/arm64/kernel/io.c' line='43' column='1'/>
+        <parameter type-id='eaa32e2f' name='from' filepath='arch/arm64/kernel/io.c' line='43' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='arch/arm64/kernel/io.c' line='43' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__memset_io' mangled-name='__memset_io' filepath='arch/arm64/kernel/io.c' line='71' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__memset_io'>
+        <parameter type-id='fe09dd29' name='dst' filepath='arch/arm64/kernel/io.c' line='71' column='1'/>
+        <parameter type-id='95e97e5e' name='c' filepath='arch/arm64/kernel/io.c' line='71' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='arch/arm64/kernel/io.c' line='71' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__migrate_task' mangled-name='__migrate_task' filepath='kernel/sched/core.c' line='2342' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__migrate_task'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2342' column='1'/>
+        <parameter type-id='d0163a5e' name='rf' filepath='kernel/sched/core.c' line='2342' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2343' column='1'/>
+        <parameter type-id='95e97e5e' name='dest_cpu' filepath='kernel/sched/core.c' line='2343' column='1'/>
+        <return type-id='6ed6b432'/>
+      </function-decl>
+      <function-decl name='__mmap_lock_do_trace_acquire_returned' mangled-name='__mmap_lock_do_trace_acquire_returned' filepath='mm/mmap_lock.c' line='234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mmap_lock_do_trace_acquire_returned'>
+        <parameter type-id='df4b7819' name='mm' filepath='mm/mmap_lock.c' line='234' column='1'/>
+        <parameter type-id='b50a4934' name='write' filepath='mm/mmap_lock.c' line='234' column='1'/>
+        <parameter type-id='b50a4934' name='success' filepath='mm/mmap_lock.c' line='235' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__mmap_lock_do_trace_released' mangled-name='__mmap_lock_do_trace_released' filepath='mm/mmap_lock.c' line='241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mmap_lock_do_trace_released'>
+        <parameter type-id='df4b7819' name='mm' filepath='mm/mmap_lock.c' line='241' column='1'/>
+        <parameter type-id='b50a4934' name='write' filepath='mm/mmap_lock.c' line='241' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__mmap_lock_do_trace_start_locking' mangled-name='__mmap_lock_do_trace_start_locking' filepath='mm/mmap_lock.c' line='228' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mmap_lock_do_trace_start_locking'>
+        <parameter type-id='df4b7819' name='mm' filepath='mm/mmap_lock.c' line='228' column='1'/>
+        <parameter type-id='b50a4934' name='write' filepath='mm/mmap_lock.c' line='228' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__mmc_claim_host' mangled-name='__mmc_claim_host' filepath='drivers/mmc/core/core.c' line='780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mmc_claim_host'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/core.c' line='780' column='1'/>
+        <parameter type-id='f1e196e0' name='ctx' filepath='drivers/mmc/core/core.c' line='780' column='1'/>
+        <parameter type-id='8a47abc3' name='abort' filepath='drivers/mmc/core/core.c' line='781' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__mmc_poll_for_busy' mangled-name='__mmc_poll_for_busy' filepath='drivers/mmc/core/mmc_ops.c' line='474' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mmc_poll_for_busy'>
+        <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/mmc_ops.c' line='474' column='1'/>
+        <parameter type-id='f0981eeb' name='timeout_ms' filepath='drivers/mmc/core/mmc_ops.c' line='474' column='1'/>
+        <parameter type-id='8e172957' name='busy_cb' filepath='drivers/mmc/core/mmc_ops.c' line='475' column='1'/>
+        <parameter type-id='eaa32e2f' name='cb_data' filepath='drivers/mmc/core/mmc_ops.c' line='476' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__mmdrop' mangled-name='__mmdrop' filepath='kernel/fork.c' line='744' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mmdrop'>
+        <parameter type-id='df4b7819' name='mm' filepath='kernel/fork.c' line='744' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__mod_lruvec_state' mangled-name='__mod_lruvec_state' filepath='mm/memcontrol.c' line='763' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mod_lruvec_state'>
+        <parameter type-id='71480a3e' name='lruvec' filepath='mm/memcontrol.c' line='763' column='1'/>
+        <parameter type-id='93f9c3d3' name='idx' filepath='mm/memcontrol.c' line='763' column='1'/>
+        <parameter type-id='95e97e5e' name='val' filepath='mm/memcontrol.c' line='764' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__mod_zone_page_state' mangled-name='__mod_zone_page_state' filepath='mm/vmstat.c' line='314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mod_zone_page_state'>
+        <parameter type-id='0a0aff97' name='zone' filepath='mm/vmstat.c' line='314' column='1'/>
+        <parameter type-id='a1f2d9a1' name='item' filepath='mm/vmstat.c' line='314' column='1'/>
+        <parameter type-id='bd54fe1a' name='delta' filepath='mm/vmstat.c' line='315' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__module_get' mangled-name='__module_get' filepath='kernel/module.c' line='1063' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__module_get'>
+        <parameter type-id='2730d015' name='module' filepath='kernel/module.c' line='1063' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__module_put_and_exit' mangled-name='__module_put_and_exit' filepath='kernel/module.c' line='344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__module_put_and_exit'>
+        <parameter type-id='2730d015' name='mod' filepath='kernel/module.c' line='344' column='1'/>
+        <parameter type-id='bd54fe1a' name='code' filepath='kernel/module.c' line='344' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__msecs_to_jiffies' mangled-name='__msecs_to_jiffies' filepath='kernel/time/time.c' line='552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__msecs_to_jiffies'>
+        <parameter type-id='20f5f452' name='m' filepath='kernel/time/time.c' line='552' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='__mutex_init' mangled-name='__mutex_init' filepath='kernel/locking/mutex.c' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mutex_init'>
+        <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='45' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/locking/mutex.c' line='45' column='1'/>
+        <parameter type-id='a57283f9' name='key' filepath='kernel/locking/mutex.c' line='45' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__napi_alloc_skb' mangled-name='__napi_alloc_skb' filepath='net/core/skbuff.c' line='554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__napi_alloc_skb'>
+        <parameter type-id='c50361c5' name='napi' filepath='net/core/skbuff.c' line='554' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='net/core/skbuff.c' line='554' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='net/core/skbuff.c' line='555' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='__napi_schedule' mangled-name='__napi_schedule' filepath='net/core/dev.c' line='6499' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__napi_schedule'>
+        <parameter type-id='c50361c5' name='n' filepath='net/core/dev.c' line='6499' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__napi_schedule_irqoff' mangled-name='__napi_schedule_irqoff' filepath='net/core/dev.c' line='6552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__napi_schedule_irqoff'>
+        <parameter type-id='c50361c5' name='n' filepath='net/core/dev.c' line='6552' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__ndelay' mangled-name='__ndelay' filepath='arch/arm64/lib/delay.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__ndelay'>
+        <parameter type-id='7359adad' name='nsecs' filepath='arch/arm64/lib/delay.c' line='55' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__netdev_alloc_frag_align' mangled-name='__netdev_alloc_frag_align' filepath='net/core/skbuff.c' line='155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__netdev_alloc_frag_align'>
+        <parameter type-id='f0981eeb' name='fragsz' filepath='net/core/skbuff.c' line='155' column='1'/>
+        <parameter type-id='f0981eeb' name='align_mask' filepath='net/core/skbuff.c' line='155' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='__netdev_alloc_skb' mangled-name='__netdev_alloc_skb' filepath='net/core/skbuff.c' line='479' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__netdev_alloc_skb'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/skbuff.c' line='479' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='net/core/skbuff.c' line='479' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='net/core/skbuff.c' line='480' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='__netif_napi_del' mangled-name='__netif_napi_del' filepath='net/core/dev.c' line='6986' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__netif_napi_del'>
+        <parameter type-id='c50361c5' name='napi' filepath='net/core/dev.c' line='6986' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__netif_set_xps_queue' mangled-name='__netif_set_xps_queue' filepath='net/core/dev.c' line='2573' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__netif_set_xps_queue'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='2573' column='1'/>
+        <parameter type-id='f9b37274' name='mask' filepath='net/core/dev.c' line='2573' column='1'/>
+        <parameter type-id='1dc6a898' name='index' filepath='net/core/dev.c' line='2574' column='1'/>
+        <parameter type-id='6fba21a9' name='type' filepath='net/core/dev.c' line='2574' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__netlink_kernel_create' mangled-name='__netlink_kernel_create' filepath='net/netlink/af_netlink.c' line='2030' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__netlink_kernel_create'>
+        <parameter type-id='a2bff676' name='net' filepath='net/netlink/af_netlink.c' line='2030' column='1'/>
+        <parameter type-id='95e97e5e' name='unit' filepath='net/netlink/af_netlink.c' line='2030' column='1'/>
+        <parameter type-id='2730d015' name='module' filepath='net/netlink/af_netlink.c' line='2030' column='1'/>
+        <parameter type-id='8438f281' name='cfg' filepath='net/netlink/af_netlink.c' line='2031' column='1'/>
+        <return type-id='f772df6d'/>
+      </function-decl>
+      <function-decl name='__nla_parse' mangled-name='__nla_parse' filepath='lib/nlattr.c' line='683' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__nla_parse'>
+        <parameter type-id='30864cdc' name='tb' filepath='lib/nlattr.c' line='683' column='1'/>
+        <parameter type-id='95e97e5e' name='maxtype' filepath='lib/nlattr.c' line='683' column='1'/>
+        <parameter type-id='0f2a7ce5' name='head' filepath='lib/nlattr.c' line='684' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='lib/nlattr.c' line='684' column='1'/>
+        <parameter type-id='109cdb66' name='policy' filepath='lib/nlattr.c' line='685' column='1'/>
+        <parameter type-id='f0981eeb' name='validate' filepath='lib/nlattr.c' line='685' column='1'/>
+        <parameter type-id='5799dc94' name='extack' filepath='lib/nlattr.c' line='686' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__nla_validate' mangled-name='__nla_validate' filepath='lib/nlattr.c' line='629' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__nla_validate'>
+        <parameter type-id='0f2a7ce5' name='head' filepath='lib/nlattr.c' line='629' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='lib/nlattr.c' line='629' column='1'/>
+        <parameter type-id='95e97e5e' name='maxtype' filepath='lib/nlattr.c' line='629' column='1'/>
+        <parameter type-id='109cdb66' name='policy' filepath='lib/nlattr.c' line='630' column='1'/>
+        <parameter type-id='f0981eeb' name='validate' filepath='lib/nlattr.c' line='630' column='1'/>
+        <parameter type-id='5799dc94' name='extack' filepath='lib/nlattr.c' line='631' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__nlmsg_put' mangled-name='__nlmsg_put' filepath='net/netlink/af_netlink.c' line='2170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__nlmsg_put'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/netlink/af_netlink.c' line='2170' column='1'/>
+        <parameter type-id='19c2251e' name='portid' filepath='net/netlink/af_netlink.c' line='2170' column='1'/>
+        <parameter type-id='19c2251e' name='seq' filepath='net/netlink/af_netlink.c' line='2170' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='net/netlink/af_netlink.c' line='2170' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='net/netlink/af_netlink.c' line='2170' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='net/netlink/af_netlink.c' line='2170' column='1'/>
+        <return type-id='c2074578'/>
+      </function-decl>
+      <var-decl name='__num_online_cpus' type-id='49178f86' mangled-name='__num_online_cpus' visibility='default' filepath='kernel/cpu.c' line='2695' column='1' elf-symbol-id='__num_online_cpus'/>
+      <function-decl name='__of_get_address' mangled-name='__of_get_address' filepath='drivers/of/address.c' line='627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__of_get_address'>
+        <parameter type-id='9a537bbe' name='dev' filepath='drivers/of/address.c' line='627' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/of/address.c' line='627' column='1'/>
+        <parameter type-id='95e97e5e' name='bar_no' filepath='drivers/of/address.c' line='627' column='1'/>
+        <parameter type-id='3df9fd28' name='size' filepath='drivers/of/address.c' line='628' column='1'/>
+        <parameter type-id='807869d3' name='flags' filepath='drivers/of/address.c' line='628' column='1'/>
+        <return type-id='90144368'/>
+      </function-decl>
+      <function-decl name='__of_reset_control_get' mangled-name='__of_reset_control_get' filepath='drivers/reset/core.c' line='813' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__of_reset_control_get'>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/reset/core.c' line='813' column='1'/>
+        <parameter type-id='80f4b756' name='id' filepath='drivers/reset/core.c' line='813' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/reset/core.c' line='813' column='1'/>
+        <parameter type-id='b50a4934' name='shared' filepath='drivers/reset/core.c' line='814' column='1'/>
+        <parameter type-id='b50a4934' name='optional' filepath='drivers/reset/core.c' line='814' column='1'/>
+        <parameter type-id='b50a4934' name='acquired' filepath='drivers/reset/core.c' line='814' column='1'/>
+        <return type-id='9f9b8114'/>
+      </function-decl>
+      <function-decl name='__page_file_index' mangled-name='__page_file_index' filepath='mm/swapfile.c' line='3558' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_file_index'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/swapfile.c' line='3558' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='__page_file_mapping' mangled-name='__page_file_mapping' filepath='mm/swapfile.c' line='3552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_file_mapping'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/swapfile.c' line='3552' column='1'/>
+        <return type-id='f57039f0'/>
+      </function-decl>
+      <function-decl name='__page_frag_cache_drain' mangled-name='__page_frag_cache_drain' filepath='mm/page_alloc.c' line='5898' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_frag_cache_drain'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/page_alloc.c' line='5898' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='mm/page_alloc.c' line='5898' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__page_mapcount' mangled-name='__page_mapcount' filepath='mm/util.c' line='828' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_mapcount'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/util.c' line='828' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__page_pinner_failure_detect' mangled-name='__page_pinner_failure_detect' filepath='mm/page_pinner.c' line='253' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_pinner_failure_detect'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/page_pinner.c' line='253' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__page_pinner_put_page' mangled-name='__page_pinner_put_page' filepath='mm/page_pinner.c' line='283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_pinner_put_page'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/page_pinner.c' line='283' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__pagevec_release' mangled-name='__pagevec_release' filepath='mm/swap.c' line='1023' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__pagevec_release'>
+        <parameter type-id='f7d3421a' name='pvec' filepath='mm/swap.c' line='1023' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__pci_register_driver' mangled-name='__pci_register_driver' filepath='drivers/pci/pci-driver.c' line='1392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__pci_register_driver'>
+        <parameter type-id='85b59624' name='drv' filepath='drivers/pci/pci-driver.c' line='1392' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/pci/pci-driver.c' line='1392' column='1'/>
+        <parameter type-id='80f4b756' name='mod_name' filepath='drivers/pci/pci-driver.c' line='1393' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='__per_cpu_offset' type-id='bc3af5fa' mangled-name='__per_cpu_offset' visibility='default' filepath='mm/percpu.c' line='3279' column='1' elf-symbol-id='__per_cpu_offset'/>
+      <function-decl name='__percpu_counter_init' mangled-name='__percpu_counter_init' filepath='lib/percpu_counter.c' line='141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__percpu_counter_init'>
+        <parameter type-id='84c6078d' name='fbc' filepath='lib/percpu_counter.c' line='141' column='1'/>
+        <parameter type-id='9b7c55ef' name='amount' filepath='lib/percpu_counter.c' line='141' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='lib/percpu_counter.c' line='141' column='1'/>
+        <parameter type-id='a57283f9' name='key' filepath='lib/percpu_counter.c' line='142' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__percpu_counter_sum' mangled-name='__percpu_counter_sum' filepath='lib/percpu_counter.c' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__percpu_counter_sum'>
+        <parameter type-id='84c6078d' name='fbc' filepath='lib/percpu_counter.c' line='124' column='1'/>
+        <return type-id='9b7c55ef'/>
+      </function-decl>
+      <function-decl name='__percpu_down_read' mangled-name='__percpu_down_read' filepath='kernel/locking/percpu-rwsem.c' line='182' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__percpu_down_read'>
+        <parameter type-id='652d9ef9' name='sem' filepath='kernel/locking/percpu-rwsem.c' line='182' column='1'/>
+        <parameter type-id='b50a4934' name='try' filepath='kernel/locking/percpu-rwsem.c' line='182' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='__percpu_init_rwsem' mangled-name='__percpu_init_rwsem' filepath='kernel/locking/percpu-rwsem.c' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__percpu_init_rwsem'>
+        <parameter type-id='652d9ef9' name='sem' filepath='kernel/locking/percpu-rwsem.c' line='29' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/locking/percpu-rwsem.c' line='30' column='1'/>
+        <parameter type-id='a57283f9' name='key' filepath='kernel/locking/percpu-rwsem.c' line='30' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__phy_modify' mangled-name='__phy_modify' filepath='drivers/net/phy/phy-core.c' line='610' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__phy_modify'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-core.c' line='610' column='1'/>
+        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/phy-core.c' line='610' column='1'/>
+        <parameter type-id='1dc6a898' name='mask' filepath='drivers/net/phy/phy-core.c' line='610' column='1'/>
+        <parameter type-id='1dc6a898' name='set' filepath='drivers/net/phy/phy-core.c' line='610' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__platform_driver_probe' mangled-name='__platform_driver_probe' filepath='drivers/base/platform.c' line='897' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__platform_driver_probe'>
+        <parameter type-id='d53c2eb5' name='drv' filepath='drivers/base/platform.c' line='897' column='1'/>
+        <parameter type-id='e05ae2cd' name='probe' filepath='drivers/base/platform.c' line='898' column='1'/>
+        <parameter type-id='2730d015' name='module' filepath='drivers/base/platform.c' line='898' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__platform_driver_register' mangled-name='__platform_driver_register' filepath='drivers/base/platform.c' line='852' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__platform_driver_register'>
+        <parameter type-id='d53c2eb5' name='drv' filepath='drivers/base/platform.c' line='852' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/base/platform.c' line='853' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__platform_register_drivers' mangled-name='__platform_register_drivers' filepath='drivers/base/platform.c' line='1018' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__platform_register_drivers'>
+        <parameter type-id='77e06080' name='drivers' filepath='drivers/base/platform.c' line='1018' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='drivers/base/platform.c' line='1019' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/base/platform.c' line='1019' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__pm_relax' mangled-name='__pm_relax' filepath='drivers/base/power/wakeup.c' line='758' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__pm_relax'>
+        <parameter type-id='1ea237a6' name='ws' filepath='drivers/base/power/wakeup.c' line='758' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__pm_runtime_disable' mangled-name='__pm_runtime_disable' filepath='drivers/base/power/runtime.c' line='1409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__pm_runtime_disable'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/runtime.c' line='1409' column='1'/>
+        <parameter type-id='b50a4934' name='check_resume' filepath='drivers/base/power/runtime.c' line='1409' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__pm_runtime_idle' mangled-name='__pm_runtime_idle' filepath='drivers/base/power/runtime.c' line='1057' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__pm_runtime_idle'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/runtime.c' line='1057' column='1'/>
+        <parameter type-id='95e97e5e' name='rpmflags' filepath='drivers/base/power/runtime.c' line='1057' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__pm_runtime_resume' mangled-name='__pm_runtime_resume' filepath='drivers/base/power/runtime.c' line='1124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__pm_runtime_resume'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/runtime.c' line='1124' column='1'/>
+        <parameter type-id='95e97e5e' name='rpmflags' filepath='drivers/base/power/runtime.c' line='1124' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__pm_runtime_set_status' mangled-name='__pm_runtime_set_status' filepath='drivers/base/power/runtime.c' line='1212' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__pm_runtime_set_status'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/runtime.c' line='1212' column='1'/>
+        <parameter type-id='f0981eeb' name='status' filepath='drivers/base/power/runtime.c' line='1212' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__pm_runtime_suspend' mangled-name='__pm_runtime_suspend' filepath='drivers/base/power/runtime.c' line='1091' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__pm_runtime_suspend'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/runtime.c' line='1091' column='1'/>
+        <parameter type-id='95e97e5e' name='rpmflags' filepath='drivers/base/power/runtime.c' line='1091' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__pm_runtime_use_autosuspend' mangled-name='__pm_runtime_use_autosuspend' filepath='drivers/base/power/runtime.c' line='1649' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__pm_runtime_use_autosuspend'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/runtime.c' line='1649' column='1'/>
+        <parameter type-id='b50a4934' name='use' filepath='drivers/base/power/runtime.c' line='1649' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__pm_stay_awake' mangled-name='__pm_stay_awake' filepath='drivers/base/power/wakeup.c' line='641' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__pm_stay_awake'>
+        <parameter type-id='1ea237a6' name='ws' filepath='drivers/base/power/wakeup.c' line='641' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__printk_ratelimit' mangled-name='__printk_ratelimit' filepath='kernel/printk/printk.c' line='3356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__printk_ratelimit'>
+        <parameter type-id='80f4b756' name='func' filepath='kernel/printk/printk.c' line='3356' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__pskb_copy_fclone' mangled-name='__pskb_copy_fclone' filepath='net/core/skbuff.c' line='1647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__pskb_copy_fclone'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='1647' column='1'/>
+        <parameter type-id='95e97e5e' name='headroom' filepath='net/core/skbuff.c' line='1647' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='net/core/skbuff.c' line='1648' column='1'/>
+        <parameter type-id='b50a4934' name='fclone' filepath='net/core/skbuff.c' line='1648' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='__pskb_pull_tail' mangled-name='__pskb_pull_tail' filepath='net/core/skbuff.c' line='2237' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__pskb_pull_tail'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='2237' column='1'/>
+        <parameter type-id='95e97e5e' name='delta' filepath='net/core/skbuff.c' line='2237' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='__put_cred' mangled-name='__put_cred' filepath='kernel/cred.c' line='137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__put_cred'>
+        <parameter type-id='10cfb911' name='cred' filepath='kernel/cred.c' line='137' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__put_net' mangled-name='__put_net' filepath='net/core/net_namespace.c' line='639' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__put_net'>
+        <parameter type-id='a2bff676' name='net' filepath='net/core/net_namespace.c' line='639' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__put_page' mangled-name='__put_page' filepath='mm/swap.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__put_page'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/swap.c' line='114' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__put_task_struct' mangled-name='__put_task_struct' filepath='kernel/fork.c' line='793' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__put_task_struct'>
+        <parameter type-id='f23e2572' name='tsk' filepath='kernel/fork.c' line='793' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__raw_v4_lookup' mangled-name='__raw_v4_lookup' filepath='net/ipv4/raw.c' line='120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__raw_v4_lookup'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv4/raw.c' line='120' column='1'/>
+        <parameter type-id='f772df6d' name='sk' filepath='net/ipv4/raw.c' line='120' column='1'/>
+        <parameter type-id='8efea9e5' name='num' filepath='net/ipv4/raw.c' line='121' column='1'/>
+        <parameter type-id='78a133c2' name='raddr' filepath='net/ipv4/raw.c' line='121' column='1'/>
+        <parameter type-id='78a133c2' name='laddr' filepath='net/ipv4/raw.c' line='121' column='1'/>
+        <parameter type-id='95e97e5e' name='dif' filepath='net/ipv4/raw.c' line='122' column='1'/>
+        <parameter type-id='95e97e5e' name='sdif' filepath='net/ipv4/raw.c' line='122' column='1'/>
+        <return type-id='f772df6d'/>
+      </function-decl>
+      <function-decl name='__raw_v6_lookup' mangled-name='__raw_v6_lookup' filepath='net/ipv6/raw.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__raw_v6_lookup'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv6/raw.c' line='69' column='1'/>
+        <parameter type-id='f772df6d' name='sk' filepath='net/ipv6/raw.c' line='69' column='1'/>
+        <parameter type-id='8efea9e5' name='num' filepath='net/ipv6/raw.c' line='70' column='1'/>
+        <parameter type-id='fea9c20b' name='loc_addr' filepath='net/ipv6/raw.c' line='70' column='1'/>
+        <parameter type-id='fea9c20b' name='rmt_addr' filepath='net/ipv6/raw.c' line='71' column='1'/>
+        <parameter type-id='95e97e5e' name='dif' filepath='net/ipv6/raw.c' line='71' column='1'/>
+        <parameter type-id='95e97e5e' name='sdif' filepath='net/ipv6/raw.c' line='71' column='1'/>
+        <return type-id='f772df6d'/>
+      </function-decl>
+      <function-decl name='__rb_erase_color' mangled-name='__rb_erase_color' filepath='lib/rbtree.c' line='410' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__rb_erase_color'>
+        <parameter type-id='e6532500' name='parent' filepath='lib/rbtree.c' line='410' column='1'/>
+        <parameter type-id='c5bcc2c0' name='root' filepath='lib/rbtree.c' line='410' column='1'/>
+        <parameter type-id='237e46c0' name='augment_rotate' filepath='lib/rbtree.c' line='411' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__rb_insert_augmented' mangled-name='__rb_insert_augmented' filepath='lib/rbtree.c' line='456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__rb_insert_augmented'>
+        <parameter type-id='e6532500' name='node' filepath='lib/rbtree.c' line='456' column='1'/>
+        <parameter type-id='c5bcc2c0' name='root' filepath='lib/rbtree.c' line='456' column='1'/>
+        <parameter type-id='237e46c0' name='augment_rotate' filepath='lib/rbtree.c' line='457' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__rcu_read_lock' mangled-name='__rcu_read_lock' filepath='kernel/rcu/tree_plugin.h' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__rcu_read_lock'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__rcu_read_unlock' mangled-name='__rcu_read_unlock' filepath='kernel/rcu/tree_plugin.h' line='414' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__rcu_read_unlock'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__refrigerator' mangled-name='__refrigerator' filepath='kernel/freezer.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__refrigerator'>
+        <parameter type-id='b50a4934' name='check_kthr_stop' filepath='kernel/freezer.c' line='60' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='__register_blkdev' mangled-name='__register_blkdev' filepath='block/genhd.c' line='232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__register_blkdev'>
+        <parameter type-id='f0981eeb' name='major' filepath='block/genhd.c' line='232' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='block/genhd.c' line='232' column='1'/>
+        <parameter type-id='b453d391' name='probe' filepath='block/genhd.c' line='233' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__register_chrdev' mangled-name='__register_chrdev' filepath='fs/char_dev.c' line='268' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__register_chrdev'>
+        <parameter type-id='f0981eeb' name='major' filepath='fs/char_dev.c' line='268' column='1'/>
+        <parameter type-id='f0981eeb' name='baseminor' filepath='fs/char_dev.c' line='268' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='fs/char_dev.c' line='269' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='fs/char_dev.c' line='269' column='1'/>
+        <parameter type-id='61758ee5' name='fops' filepath='fs/char_dev.c' line='270' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__register_rpmsg_driver' mangled-name='__register_rpmsg_driver' filepath='drivers/rpmsg/rpmsg_core.c' line='682' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__register_rpmsg_driver'>
+        <parameter type-id='7331a99f' name='rpdrv' filepath='drivers/rpmsg/rpmsg_core.c' line='682' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/rpmsg/rpmsg_core.c' line='682' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__regmap_init' mangled-name='__regmap_init' filepath='drivers/base/regmap/regmap.c' line='729' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__regmap_init'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/regmap/regmap.c' line='729' column='1'/>
+        <parameter type-id='00e96299' name='bus' filepath='drivers/base/regmap/regmap.c' line='730' column='1'/>
+        <parameter type-id='eaa32e2f' name='bus_context' filepath='drivers/base/regmap/regmap.c' line='731' column='1'/>
+        <parameter type-id='9d19d4a7' name='config' filepath='drivers/base/regmap/regmap.c' line='732' column='1'/>
+        <parameter type-id='a57283f9' name='lock_key' filepath='drivers/base/regmap/regmap.c' line='733' column='1'/>
+        <parameter type-id='80f4b756' name='lock_name' filepath='drivers/base/regmap/regmap.c' line='734' column='1'/>
+        <return type-id='29af9a71'/>
+      </function-decl>
+      <function-decl name='__regmap_init_i2c' mangled-name='__regmap_init_i2c' filepath='drivers/base/regmap/regmap-i2c.c' line='369' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__regmap_init_i2c'>
+        <parameter type-id='3e31633b' name='i2c' filepath='drivers/base/regmap/regmap-i2c.c' line='369' column='1'/>
+        <parameter type-id='9d19d4a7' name='config' filepath='drivers/base/regmap/regmap-i2c.c' line='370' column='1'/>
+        <parameter type-id='a57283f9' name='lock_key' filepath='drivers/base/regmap/regmap-i2c.c' line='371' column='1'/>
+        <parameter type-id='80f4b756' name='lock_name' filepath='drivers/base/regmap/regmap-i2c.c' line='372' column='1'/>
+        <return type-id='29af9a71'/>
+      </function-decl>
+      <function-decl name='__regmap_init_mmio_clk' mangled-name='__regmap_init_mmio_clk' filepath='drivers/base/regmap/regmap-mmio.c' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__regmap_init_mmio_clk'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/regmap/regmap-mmio.c' line='396' column='1'/>
+        <parameter type-id='80f4b756' name='clk_id' filepath='drivers/base/regmap/regmap-mmio.c' line='396' column='1'/>
+        <parameter type-id='eaa32e2f' name='regs' filepath='drivers/base/regmap/regmap-mmio.c' line='397' column='1'/>
+        <parameter type-id='9d19d4a7' name='config' filepath='drivers/base/regmap/regmap-mmio.c' line='398' column='1'/>
+        <parameter type-id='a57283f9' name='lock_key' filepath='drivers/base/regmap/regmap-mmio.c' line='399' column='1'/>
+        <parameter type-id='80f4b756' name='lock_name' filepath='drivers/base/regmap/regmap-mmio.c' line='400' column='1'/>
+        <return type-id='29af9a71'/>
+      </function-decl>
+      <function-decl name='__release_region' mangled-name='__release_region' filepath='kernel/resource.c' line='1231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__release_region'>
+        <parameter type-id='c9d64c0d' name='parent' filepath='kernel/resource.c' line='1231' column='1'/>
+        <parameter type-id='acc63fdf' name='start' filepath='kernel/resource.c' line='1231' column='1'/>
+        <parameter type-id='acc63fdf' name='n' filepath='kernel/resource.c' line='1232' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__remove_inode_hash' mangled-name='__remove_inode_hash' filepath='fs/inode.c' line='516' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__remove_inode_hash'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='516' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__request_module' mangled-name='__request_module' filepath='kernel/kmod.c' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__request_module'>
+        <parameter type-id='b50a4934' name='wait' filepath='kernel/kmod.c' line='124' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='kernel/kmod.c' line='124' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__request_percpu_irq' mangled-name='__request_percpu_irq' filepath='kernel/irq/manage.c' line='2601' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__request_percpu_irq'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/manage.c' line='2601' column='1'/>
+        <parameter type-id='29591c9a' name='handler' filepath='kernel/irq/manage.c' line='2601' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='kernel/irq/manage.c' line='2602' column='1'/>
+        <parameter type-id='80f4b756' name='devname' filepath='kernel/irq/manage.c' line='2602' column='1'/>
+        <parameter type-id='eaa32e2f' name='dev_id' filepath='kernel/irq/manage.c' line='2603' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__request_region' mangled-name='__request_region' filepath='kernel/resource.c' line='1197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__request_region'>
+        <parameter type-id='c9d64c0d' name='parent' filepath='kernel/resource.c' line='1197' column='1'/>
+        <parameter type-id='acc63fdf' name='start' filepath='kernel/resource.c' line='1198' column='1'/>
+        <parameter type-id='acc63fdf' name='n' filepath='kernel/resource.c' line='1198' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/resource.c' line='1199' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='kernel/resource.c' line='1199' column='1'/>
+        <return type-id='c9d64c0d'/>
+      </function-decl>
+      <function-decl name='__reset_control_get' mangled-name='__reset_control_get' filepath='drivers/reset/core.c' line='938' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__reset_control_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/reset/core.c' line='938' column='1'/>
+        <parameter type-id='80f4b756' name='id' filepath='drivers/reset/core.c' line='938' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/reset/core.c' line='939' column='1'/>
+        <parameter type-id='b50a4934' name='shared' filepath='drivers/reset/core.c' line='939' column='1'/>
+        <parameter type-id='b50a4934' name='optional' filepath='drivers/reset/core.c' line='939' column='1'/>
+        <parameter type-id='b50a4934' name='acquired' filepath='drivers/reset/core.c' line='940' column='1'/>
+        <return type-id='9f9b8114'/>
+      </function-decl>
+      <function-decl name='__rht_bucket_nested' mangled-name='__rht_bucket_nested' filepath='lib/rhashtable.c' line='1174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__rht_bucket_nested'>
+        <parameter type-id='6a4a6779' name='tbl' filepath='lib/rhashtable.c' line='1175' column='1'/>
+        <parameter type-id='f0981eeb' name='hash' filepath='lib/rhashtable.c' line='1175' column='1'/>
+        <return type-id='33f7eff4'/>
+      </function-decl>
+      <function-decl name='__rt_mutex_init' mangled-name='__rt_mutex_init' filepath='kernel/locking/rtmutex_api.c' line='196' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__rt_mutex_init'>
+        <parameter type-id='3992a90f' name='lock' filepath='kernel/locking/rtmutex_api.c' line='196' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/locking/rtmutex_api.c' line='196' column='1'/>
+        <parameter type-id='a57283f9' name='key' filepath='kernel/locking/rtmutex_api.c' line='197' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__rtnl_link_unregister' mangled-name='__rtnl_link_unregister' filepath='net/core/rtnetlink.c' line='434' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__rtnl_link_unregister'>
+        <parameter type-id='959ab461' name='ops' filepath='net/core/rtnetlink.c' line='434' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__sbitmap_queue_get' mangled-name='__sbitmap_queue_get' filepath='lib/sbitmap.c' line='486' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__sbitmap_queue_get'>
+        <parameter type-id='75396bad' name='sbq' filepath='lib/sbitmap.c' line='486' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__scsi_add_device' mangled-name='__scsi_add_device' filepath='drivers/scsi/scsi_scan.c' line='1535' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__scsi_add_device'>
+        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_scan.c' line='1535' column='1'/>
+        <parameter type-id='6e160b14' name='channel' filepath='drivers/scsi/scsi_scan.c' line='1535' column='1'/>
+        <parameter type-id='6e160b14' name='id' filepath='drivers/scsi/scsi_scan.c' line='1536' column='1'/>
+        <parameter type-id='91ce1af9' name='lun' filepath='drivers/scsi/scsi_scan.c' line='1536' column='1'/>
+        <parameter type-id='eaa32e2f' name='hostdata' filepath='drivers/scsi/scsi_scan.c' line='1536' column='1'/>
+        <return type-id='eb572b74'/>
+      </function-decl>
+      <function-decl name='__scsi_execute' mangled-name='__scsi_execute' filepath='drivers/scsi/scsi_lib.c' line='208' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__scsi_execute'>
+        <parameter type-id='eb572b74' name='sdev' filepath='drivers/scsi/scsi_lib.c' line='208' column='1'/>
+        <parameter type-id='354f7eb9' name='cmd' filepath='drivers/scsi/scsi_lib.c' line='208' column='1'/>
+        <parameter type-id='95e97e5e' name='data_direction' filepath='drivers/scsi/scsi_lib.c' line='209' column='1'/>
+        <parameter type-id='eaa32e2f' name='buffer' filepath='drivers/scsi/scsi_lib.c' line='209' column='1'/>
+        <parameter type-id='f0981eeb' name='bufflen' filepath='drivers/scsi/scsi_lib.c' line='209' column='1'/>
+        <parameter type-id='cf536864' name='sense' filepath='drivers/scsi/scsi_lib.c' line='210' column='1'/>
+        <parameter type-id='991b8213' name='sshdr' filepath='drivers/scsi/scsi_lib.c' line='210' column='1'/>
+        <parameter type-id='95e97e5e' name='timeout' filepath='drivers/scsi/scsi_lib.c' line='211' column='1'/>
+        <parameter type-id='95e97e5e' name='retries' filepath='drivers/scsi/scsi_lib.c' line='211' column='1'/>
+        <parameter type-id='91ce1af9' name='flags' filepath='drivers/scsi/scsi_lib.c' line='211' column='1'/>
+        <parameter type-id='3b445e53' name='rq_flags' filepath='drivers/scsi/scsi_lib.c' line='211' column='1'/>
+        <parameter type-id='7292109c' name='resid' filepath='drivers/scsi/scsi_lib.c' line='212' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__scsi_iterate_devices' mangled-name='__scsi_iterate_devices' filepath='drivers/scsi/scsi.c' line='571' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__scsi_iterate_devices'>
+        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi.c' line='571' column='1'/>
+        <parameter type-id='eb572b74' name='prev' filepath='drivers/scsi/scsi.c' line='572' column='1'/>
+        <return type-id='eb572b74'/>
+      </function-decl>
+      <function-decl name='__scsi_print_sense' mangled-name='__scsi_print_sense' filepath='drivers/scsi/scsi_logging.c' line='367' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__scsi_print_sense'>
+        <parameter type-id='0f176ec1' name='sdev' filepath='drivers/scsi/scsi_logging.c' line='367' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/scsi/scsi_logging.c' line='367' column='1'/>
+        <parameter type-id='354f7eb9' name='sense_buffer' filepath='drivers/scsi/scsi_logging.c' line='368' column='1'/>
+        <parameter type-id='95e97e5e' name='sense_len' filepath='drivers/scsi/scsi_logging.c' line='368' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__sdhci_add_host' mangled-name='__sdhci_add_host' filepath='drivers/mmc/host/sdhci.c' line='4790' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__sdhci_add_host'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='4790' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__sdhci_set_timeout' mangled-name='__sdhci_set_timeout' filepath='drivers/mmc/host/sdhci.c' line='1033' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__sdhci_set_timeout'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='1033' column='1'/>
+        <parameter type-id='6df3750c' name='cmd' filepath='drivers/mmc/host/sdhci.c' line='1033' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__seq_open_private' mangled-name='__seq_open_private' filepath='fs/seq_file.c' line='646' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__seq_open_private'>
+        <parameter type-id='77e79a4b' name='f' filepath='fs/seq_file.c' line='646' column='1'/>
+        <parameter type-id='943a1b48' name='ops' filepath='fs/seq_file.c' line='646' column='1'/>
+        <parameter type-id='95e97e5e' name='psize' filepath='fs/seq_file.c' line='647' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='__serio_register_driver' mangled-name='__serio_register_driver' filepath='drivers/input/serio/serio.c' line='813' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__serio_register_driver'>
+        <parameter type-id='1065554a' name='drv' filepath='drivers/input/serio/serio.c' line='813' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/input/serio/serio.c' line='813' column='1'/>
+        <parameter type-id='80f4b756' name='mod_name' filepath='drivers/input/serio/serio.c' line='813' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__serio_register_port' mangled-name='__serio_register_port' filepath='drivers/input/serio/serio.c' line='695' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__serio_register_port'>
+        <parameter type-id='95dc69d1' name='serio' filepath='drivers/input/serio/serio.c' line='695' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/input/serio/serio.c' line='695' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__set_page_dirty_buffers' mangled-name='__set_page_dirty_buffers' filepath='fs/buffer.c' line='616' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__set_page_dirty_buffers'>
+        <parameter type-id='02f11ed4' name='page' filepath='fs/buffer.c' line='616' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__set_page_dirty_nobuffers' mangled-name='__set_page_dirty_nobuffers' filepath='mm/page-writeback.c' line='2521' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__set_page_dirty_nobuffers'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/page-writeback.c' line='2521' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__sg_page_iter_dma_next' mangled-name='__sg_page_iter_dma_next' filepath='lib/scatterlist.c' line='753' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__sg_page_iter_dma_next'>
+        <parameter type-id='f1397bef' name='dma_iter' filepath='lib/scatterlist.c' line='753' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='__sg_page_iter_next' mangled-name='__sg_page_iter_next' filepath='lib/scatterlist.c' line='729' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__sg_page_iter_next'>
+        <parameter type-id='06f723f0' name='piter' filepath='lib/scatterlist.c' line='729' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='__sg_page_iter_start' mangled-name='__sg_page_iter_start' filepath='lib/scatterlist.c' line='712' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__sg_page_iter_start'>
+        <parameter type-id='06f723f0' name='piter' filepath='lib/scatterlist.c' line='712' column='1'/>
+        <parameter type-id='bf3ef905' name='sglist' filepath='lib/scatterlist.c' line='713' column='1'/>
+        <parameter type-id='f0981eeb' name='nents' filepath='lib/scatterlist.c' line='713' column='1'/>
+        <parameter type-id='7359adad' name='pgoffset' filepath='lib/scatterlist.c' line='714' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__sk_receive_skb' mangled-name='__sk_receive_skb' filepath='net/core/sock.c' line='506' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__sk_receive_skb'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/core/sock.c' line='506' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/sock.c' line='506' column='1'/>
+        <parameter type-id='2448a865' name='nested' filepath='net/core/sock.c' line='507' column='1'/>
+        <parameter type-id='f0981eeb' name='trim_cap' filepath='net/core/sock.c' line='507' column='1'/>
+        <parameter type-id='b50a4934' name='refcounted' filepath='net/core/sock.c' line='507' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__skb_checksum_complete' mangled-name='__skb_checksum_complete' filepath='net/core/skbuff.c' line='3068' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__skb_checksum_complete'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='3068' column='1'/>
+        <return type-id='7dac1e36'/>
+      </function-decl>
+      <function-decl name='__skb_ext_put' mangled-name='__skb_ext_put' filepath='net/core/skbuff.c' line='6607' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__skb_ext_put'>
+        <parameter type-id='374692c7' name='ext' filepath='net/core/skbuff.c' line='6607' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__skb_flow_dissect' mangled-name='__skb_flow_dissect' filepath='net/core/flow_dissector.c' line='915' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__skb_flow_dissect'>
+        <parameter type-id='f91cf277' name='net' filepath='net/core/flow_dissector.c' line='915' column='1'/>
+        <parameter type-id='11f4a000' name='skb' filepath='net/core/flow_dissector.c' line='916' column='1'/>
+        <parameter type-id='0b8ca8fa' name='flow_dissector' filepath='net/core/flow_dissector.c' line='917' column='1'/>
+        <parameter type-id='eaa32e2f' name='target_container' filepath='net/core/flow_dissector.c' line='918' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='net/core/flow_dissector.c' line='918' column='1'/>
+        <parameter type-id='84a5c3d4' name='proto' filepath='net/core/flow_dissector.c' line='919' column='1'/>
+        <parameter type-id='95e97e5e' name='nhoff' filepath='net/core/flow_dissector.c' line='919' column='1'/>
+        <parameter type-id='95e97e5e' name='hlen' filepath='net/core/flow_dissector.c' line='919' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='net/core/flow_dissector.c' line='919' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='__skb_get_hash' mangled-name='__skb_get_hash' filepath='net/core/flow_dissector.c' line='1633' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__skb_get_hash'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/flow_dissector.c' line='1633' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__skb_gso_segment' mangled-name='__skb_gso_segment' filepath='net/core/dev.c' line='3387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__skb_gso_segment'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/dev.c' line='3387' column='1'/>
+        <parameter type-id='f9f4b16f' name='features' filepath='net/core/dev.c' line='3388' column='1'/>
+        <parameter type-id='b50a4934' name='tx_path' filepath='net/core/dev.c' line='3388' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='__skb_pad' mangled-name='__skb_pad' filepath='net/core/skbuff.c' line='1973' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__skb_pad'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='1973' column='1'/>
+        <parameter type-id='95e97e5e' name='pad' filepath='net/core/skbuff.c' line='1973' column='1'/>
+        <parameter type-id='b50a4934' name='free_on_error' filepath='net/core/skbuff.c' line='1973' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__sock_create' mangled-name='__sock_create' filepath='net/socket.c' line='1396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__sock_create'>
+        <parameter type-id='a2bff676' name='net' filepath='net/socket.c' line='1396' column='1'/>
+        <parameter type-id='95e97e5e' name='family' filepath='net/socket.c' line='1396' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='net/socket.c' line='1396' column='1'/>
+        <parameter type-id='95e97e5e' name='protocol' filepath='net/socket.c' line='1396' column='1'/>
+        <parameter type-id='1a7bb5c8' name='res' filepath='net/socket.c' line='1397' column='1'/>
+        <parameter type-id='95e97e5e' name='kern' filepath='net/socket.c' line='1397' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__spi_alloc_controller' mangled-name='__spi_alloc_controller' filepath='drivers/spi/spi.c' line='2582' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__spi_alloc_controller'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/spi/spi.c' line='2582' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='drivers/spi/spi.c' line='2583' column='1'/>
+        <parameter type-id='b50a4934' name='slave' filepath='drivers/spi/spi.c' line='2583' column='1'/>
+        <return type-id='f22e4524'/>
+      </function-decl>
+      <function-decl name='__spi_register_driver' mangled-name='__spi_register_driver' filepath='drivers/spi/spi.c' line='450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__spi_register_driver'>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/spi/spi.c' line='450' column='1'/>
+        <parameter type-id='d9c194a6' name='sdrv' filepath='drivers/spi/spi.c' line='450' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__splice_from_pipe' mangled-name='__splice_from_pipe' filepath='fs/splice.c' line='552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__splice_from_pipe'>
+        <parameter type-id='15d29710' name='pipe' filepath='fs/splice.c' line='552' column='1'/>
+        <parameter type-id='f5bc338f' name='sd' filepath='fs/splice.c' line='552' column='1'/>
+        <parameter type-id='05903717' name='actor' filepath='fs/splice.c' line='553' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='__spmi_driver_register' mangled-name='__spmi_driver_register' filepath='drivers/spmi/spmi.c' line='575' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__spmi_driver_register'>
+        <parameter type-id='34066f8f' name='sdrv' filepath='drivers/spmi/spmi.c' line='575' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/spmi/spmi.c' line='575' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__srcu_read_lock' mangled-name='__srcu_read_lock' filepath='kernel/rcu/srcutree.c' line='400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__srcu_read_lock'>
+        <parameter type-id='f7d7131a' name='ssp' filepath='kernel/rcu/srcutree.c' line='400' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__srcu_read_unlock' mangled-name='__srcu_read_unlock' filepath='kernel/rcu/srcutree.c' line='416' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__srcu_read_unlock'>
+        <parameter type-id='f7d7131a' name='ssp' filepath='kernel/rcu/srcutree.c' line='416' column='1'/>
+        <parameter type-id='95e97e5e' name='idx' filepath='kernel/rcu/srcutree.c' line='416' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__stack_chk_fail' mangled-name='__stack_chk_fail' filepath='kernel/panic.c' line='750' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__stack_chk_fail'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__sw_hweight16' mangled-name='__sw_hweight16' filepath='lib/hweight.c' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__sw_hweight16'>
+        <parameter type-id='f0981eeb' name='w' filepath='lib/hweight.c' line='30' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='__sw_hweight32' mangled-name='__sw_hweight32' filepath='lib/hweight.c' line='13' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__sw_hweight32'>
+        <parameter type-id='f0981eeb' name='w' filepath='lib/hweight.c' line='13' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='__sw_hweight64' mangled-name='__sw_hweight64' filepath='lib/hweight.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__sw_hweight64'>
+        <parameter type-id='d3130597' name='w' filepath='lib/hweight.c' line='47' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='__sw_hweight8' mangled-name='__sw_hweight8' filepath='lib/hweight.c' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__sw_hweight8'>
+        <parameter type-id='f0981eeb' name='w' filepath='lib/hweight.c' line='39' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='__symbol_get' mangled-name='__symbol_get' filepath='kernel/module.c' line='2228' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__symbol_get'>
+        <parameter type-id='80f4b756' name='symbol' filepath='kernel/module.c' line='2228' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='__symbol_put' mangled-name='__symbol_put' filepath='kernel/module.c' line='1019' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__symbol_put'>
+        <parameter type-id='80f4b756' name='symbol' filepath='kernel/module.c' line='1019' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__sync_dirty_buffer' mangled-name='__sync_dirty_buffer' filepath='fs/buffer.c' line='3139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__sync_dirty_buffer'>
+        <parameter type-id='c485c22c' name='bh' filepath='fs/buffer.c' line='3139' column='1'/>
+        <parameter type-id='95e97e5e' name='op_flags' filepath='fs/buffer.c' line='3139' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__sysfs_match_string' mangled-name='__sysfs_match_string' filepath='lib/string.c' line='769' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__sysfs_match_string'>
+        <parameter type-id='13956559' name='array' filepath='lib/string.c' line='769' column='1'/>
+        <parameter type-id='b59d7dce' name='n' filepath='lib/string.c' line='769' column='1'/>
+        <parameter type-id='80f4b756' name='str' filepath='lib/string.c' line='769' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__task_pid_nr_ns' mangled-name='__task_pid_nr_ns' filepath='kernel/pid.c' line='493' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__task_pid_nr_ns'>
+        <parameter type-id='f23e2572' name='task' filepath='kernel/pid.c' line='493' column='1'/>
+        <parameter type-id='ce78cf46' name='type' filepath='kernel/pid.c' line='493' column='1'/>
+        <parameter type-id='b816e1d0' name='ns' filepath='kernel/pid.c' line='494' column='1'/>
+        <return type-id='587f89d2'/>
+      </function-decl>
+      <function-decl name='__task_rq_lock' mangled-name='__task_rq_lock' filepath='kernel/sched/core.c' line='561' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__task_rq_lock'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='561' column='1'/>
+        <parameter type-id='d0163a5e' name='rf' filepath='kernel/sched/core.c' line='561' column='1'/>
+        <return type-id='6ed6b432'/>
+      </function-decl>
+      <function-decl name='__tasklet_hi_schedule' mangled-name='__tasklet_hi_schedule' filepath='kernel/softirq.c' line='752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__tasklet_hi_schedule'>
+        <parameter type-id='59f1923f' name='t' filepath='kernel/softirq.c' line='752' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__tasklet_schedule' mangled-name='__tasklet_schedule' filepath='kernel/softirq.c' line='745' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__tasklet_schedule'>
+        <parameter type-id='59f1923f' name='t' filepath='kernel/softirq.c' line='745' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__test_set_page_writeback' mangled-name='__test_set_page_writeback' filepath='mm/page-writeback.c' line='2819' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__test_set_page_writeback'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/page-writeback.c' line='2819' column='1'/>
+        <parameter type-id='b50a4934' name='keep_write' filepath='mm/page-writeback.c' line='2819' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__trace_bprintk' mangled-name='__trace_bprintk' filepath='kernel/trace/trace_printk.c' line='200' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__trace_bprintk'>
+        <parameter type-id='7359adad' name='ip' filepath='kernel/trace/trace_printk.c' line='200' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='kernel/trace/trace_printk.c' line='200' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__trace_bputs' mangled-name='__trace_bputs' filepath='kernel/trace/trace.c' line='1058' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__trace_bputs'>
+        <parameter type-id='7359adad' name='ip' filepath='kernel/trace/trace.c' line='1058' column='1'/>
+        <parameter type-id='80f4b756' name='str' filepath='kernel/trace/trace.c' line='1058' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__trace_puts' mangled-name='__trace_puts' filepath='kernel/trace/trace.c' line='1047' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__trace_puts'>
+        <parameter type-id='7359adad' name='ip' filepath='kernel/trace/trace.c' line='1047' column='1'/>
+        <parameter type-id='80f4b756' name='str' filepath='kernel/trace/trace.c' line='1047' column='1'/>
+        <parameter type-id='95e97e5e' name='size' filepath='kernel/trace/trace.c' line='1047' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_fs_dataread_end' mangled-name='__traceiter_android_fs_dataread_end' filepath='include/trace/events/android_fs.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_fs_dataread_end'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/android_fs.h' line='16' column='1'/>
+        <parameter type-id='7e666abe' name='inode' filepath='include/trace/events/android_fs.h' line='16' column='1'/>
+        <parameter type-id='69bf7bee' name='offset' filepath='include/trace/events/android_fs.h' line='16' column='1'/>
+        <parameter type-id='95e97e5e' name='bytes' filepath='include/trace/events/android_fs.h' line='16' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_fs_dataread_start' mangled-name='__traceiter_android_fs_dataread_start' filepath='include/trace/events/android_fs.h' line='11' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_fs_dataread_start'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/android_fs.h' line='11' column='1'/>
+        <parameter type-id='7e666abe' name='inode' filepath='include/trace/events/android_fs.h' line='11' column='1'/>
+        <parameter type-id='69bf7bee' name='offset' filepath='include/trace/events/android_fs.h' line='11' column='1'/>
+        <parameter type-id='95e97e5e' name='bytes' filepath='include/trace/events/android_fs.h' line='11' column='1'/>
+        <parameter type-id='587f89d2' name='pid' filepath='include/trace/events/android_fs.h' line='11' column='1'/>
+        <parameter type-id='26a90f95' name='pathname' filepath='include/trace/events/android_fs.h' line='11' column='1'/>
+        <parameter type-id='26a90f95' name='command' filepath='include/trace/events/android_fs.h' line='11' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_fs_datawrite_end' mangled-name='__traceiter_android_fs_datawrite_end' filepath='include/trace/events/android_fs.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_fs_datawrite_end'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/android_fs.h' line='25' column='1'/>
+        <parameter type-id='7e666abe' name='inode' filepath='include/trace/events/android_fs.h' line='25' column='1'/>
+        <parameter type-id='69bf7bee' name='offset' filepath='include/trace/events/android_fs.h' line='25' column='1'/>
+        <parameter type-id='95e97e5e' name='bytes' filepath='include/trace/events/android_fs.h' line='25' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_fs_datawrite_start' mangled-name='__traceiter_android_fs_datawrite_start' filepath='include/trace/events/android_fs.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_fs_datawrite_start'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/android_fs.h' line='20' column='1'/>
+        <parameter type-id='7e666abe' name='inode' filepath='include/trace/events/android_fs.h' line='20' column='1'/>
+        <parameter type-id='69bf7bee' name='offset' filepath='include/trace/events/android_fs.h' line='20' column='1'/>
+        <parameter type-id='95e97e5e' name='bytes' filepath='include/trace/events/android_fs.h' line='20' column='1'/>
+        <parameter type-id='587f89d2' name='pid' filepath='include/trace/events/android_fs.h' line='20' column='1'/>
+        <parameter type-id='26a90f95' name='pathname' filepath='include/trace/events/android_fs.h' line='20' column='1'/>
+        <parameter type-id='26a90f95' name='command' filepath='include/trace/events/android_fs.h' line='20' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_account_irq' mangled-name='__traceiter_android_rvh_account_irq' filepath='include/trace/hooks/sched.h' line='209' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_account_irq'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='209' column='1'/>
+        <parameter type-id='f23e2572' name='curr' filepath='include/trace/hooks/sched.h' line='209' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='include/trace/hooks/sched.h' line='209' column='1'/>
+        <parameter type-id='9b7c55ef' name='delta' filepath='include/trace/hooks/sched.h' line='209' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_account_irq_end' mangled-name='__traceiter_android_rvh_account_irq_end' filepath='include/trace/hooks/sched.h' line='217' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_account_irq_end'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='217' column='1'/>
+        <parameter type-id='f23e2572' name='curr' filepath='include/trace/hooks/sched.h' line='217' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='include/trace/hooks/sched.h' line='217' column='1'/>
+        <parameter type-id='9b7c55ef' name='delta' filepath='include/trace/hooks/sched.h' line='217' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_account_irq_start' mangled-name='__traceiter_android_rvh_account_irq_start' filepath='include/trace/hooks/sched.h' line='213' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_account_irq_start'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='213' column='1'/>
+        <parameter type-id='f23e2572' name='curr' filepath='include/trace/hooks/sched.h' line='213' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='include/trace/hooks/sched.h' line='213' column='1'/>
+        <parameter type-id='9b7c55ef' name='delta' filepath='include/trace/hooks/sched.h' line='213' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_after_dequeue_task' mangled-name='__traceiter_android_rvh_after_dequeue_task' filepath='include/trace/hooks/sched.h' line='344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_after_dequeue_task'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='344' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='344' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='344' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='include/trace/hooks/sched.h' line='344' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_after_enqueue_task' mangled-name='__traceiter_android_rvh_after_enqueue_task' filepath='include/trace/hooks/sched.h' line='340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_after_enqueue_task'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='340' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='340' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='340' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='include/trace/hooks/sched.h' line='340' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_arm64_serror_panic' mangled-name='__traceiter_android_rvh_arm64_serror_panic' filepath='include/trace/hooks/traps.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_arm64_serror_panic'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/traps.h' line='30' column='1'/>
+        <parameter type-id='4616a179' name='regs' filepath='include/trace/hooks/traps.h' line='30' column='1'/>
+        <parameter type-id='f0981eeb' name='esr' filepath='include/trace/hooks/traps.h' line='30' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_audio_usb_offload_disconnect' mangled-name='__traceiter_android_rvh_audio_usb_offload_disconnect' filepath='include/trace/hooks/audio_usboffload.h' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_audio_usb_offload_disconnect'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/audio_usboffload.h' line='38' column='1'/>
+        <parameter type-id='8bf48c31' name='intf' filepath='include/trace/hooks/audio_usboffload.h' line='38' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_build_perf_domains' mangled-name='__traceiter_android_rvh_build_perf_domains' filepath='include/trace/hooks/sched.h' line='225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_build_perf_domains'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='225' column='1'/>
+        <parameter type-id='d8e6b335' name='eas_check' filepath='include/trace/hooks/sched.h' line='225' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_can_migrate_task' mangled-name='__traceiter_android_rvh_can_migrate_task' filepath='include/trace/hooks/sched.h' line='46' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_can_migrate_task'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='46' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='46' column='1'/>
+        <parameter type-id='95e97e5e' name='dst_cpu' filepath='include/trace/hooks/sched.h' line='46' column='1'/>
+        <parameter type-id='7292109c' name='can_migrate' filepath='include/trace/hooks/sched.h' line='46' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_check_preempt_tick' mangled-name='__traceiter_android_rvh_check_preempt_tick' filepath='include/trace/hooks/sched.h' line='275' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_check_preempt_tick'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='275' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='275' column='1'/>
+        <parameter type-id='1d2c2b85' name='ideal_runtime' filepath='include/trace/hooks/sched.h' line='275' column='1'/>
+        <parameter type-id='d8e6b335' name='skip_preempt' filepath='include/trace/hooks/sched.h' line='275' column='1'/>
+        <parameter type-id='7359adad' name='delta_exec' filepath='include/trace/hooks/sched.h' line='275' column='1'/>
+        <parameter type-id='a6892387' name='cfs_rq' filepath='include/trace/hooks/sched.h' line='275' column='1'/>
+        <parameter type-id='ff2b3d10' name='curr' filepath='include/trace/hooks/sched.h' line='275' column='1'/>
+        <parameter type-id='f0981eeb' name='granularity' filepath='include/trace/hooks/sched.h' line='275' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_check_preempt_wakeup' mangled-name='__traceiter_android_rvh_check_preempt_wakeup' filepath='include/trace/hooks/sched.h' line='300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_check_preempt_wakeup'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='300' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='300' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='300' column='1'/>
+        <parameter type-id='d8e6b335' name='preempt' filepath='include/trace/hooks/sched.h' line='300' column='1'/>
+        <parameter type-id='d8e6b335' name='nopreempt' filepath='include/trace/hooks/sched.h' line='300' column='1'/>
+        <parameter type-id='95e97e5e' name='wake_flags' filepath='include/trace/hooks/sched.h' line='300' column='1'/>
+        <parameter type-id='ff2b3d10' name='se' filepath='include/trace/hooks/sched.h' line='300' column='1'/>
+        <parameter type-id='ff2b3d10' name='pse' filepath='include/trace/hooks/sched.h' line='300' column='1'/>
+        <parameter type-id='95e97e5e' name='next_buddy_marked' filepath='include/trace/hooks/sched.h' line='300' column='1'/>
+        <parameter type-id='f0981eeb' name='granularity' filepath='include/trace/hooks/sched.h' line='300' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_check_preempt_wakeup_ignore' mangled-name='__traceiter_android_rvh_check_preempt_wakeup_ignore' filepath='include/trace/hooks/sched.h' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_check_preempt_wakeup_ignore'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='281' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='281' column='1'/>
+        <parameter type-id='d8e6b335' name='ignore' filepath='include/trace/hooks/sched.h' line='281' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_commit_creds' mangled-name='__traceiter_android_rvh_commit_creds' filepath='include/trace/hooks/creds.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_commit_creds'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/creds.h' line='22' column='1'/>
+        <parameter type-id='b42ffb57' name='task' filepath='include/trace/hooks/creds.h' line='22' column='1'/>
+        <parameter type-id='bc33861a' name='new' filepath='include/trace/hooks/creds.h' line='22' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_cpu_cgroup_attach' mangled-name='__traceiter_android_rvh_cpu_cgroup_attach' filepath='include/trace/hooks/cgroup.h' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_cpu_cgroup_attach'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cgroup.h' line='51' column='1'/>
+        <parameter type-id='8cffa561' name='tset' filepath='include/trace/hooks/cgroup.h' line='51' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_cpu_cgroup_can_attach' mangled-name='__traceiter_android_rvh_cpu_cgroup_can_attach' filepath='include/trace/hooks/cgroup.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_cpu_cgroup_can_attach'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cgroup.h' line='55' column='1'/>
+        <parameter type-id='8cffa561' name='tset' filepath='include/trace/hooks/cgroup.h' line='55' column='1'/>
+        <parameter type-id='7292109c' name='retval' filepath='include/trace/hooks/cgroup.h' line='55' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_cpu_cgroup_online' mangled-name='__traceiter_android_rvh_cpu_cgroup_online' filepath='include/trace/hooks/cgroup.h' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_cpu_cgroup_online'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cgroup.h' line='59' column='1'/>
+        <parameter type-id='cfff5953' name='css' filepath='include/trace/hooks/cgroup.h' line='59' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_cpu_overutilized' mangled-name='__traceiter_android_rvh_cpu_overutilized' filepath='include/trace/hooks/sched.h' line='148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_cpu_overutilized'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='148' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='include/trace/hooks/sched.h' line='148' column='1'/>
+        <parameter type-id='7292109c' name='overutilized' filepath='include/trace/hooks/sched.h' line='148' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_cpufreq_transition' mangled-name='__traceiter_android_rvh_cpufreq_transition' filepath='include/trace/hooks/cpufreq.h' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_cpufreq_transition'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cpufreq.h' line='31' column='1'/>
+        <parameter type-id='343c3ae4' name='policy' filepath='include/trace/hooks/cpufreq.h' line='31' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_cpuset_fork' mangled-name='__traceiter_android_rvh_cpuset_fork' filepath='include/trace/hooks/cgroup.h' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_cpuset_fork'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cgroup.h' line='42' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/cgroup.h' line='42' column='1'/>
+        <parameter type-id='7292109c' name='inherit_cpus' filepath='include/trace/hooks/cgroup.h' line='42' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_ctl_dirty_rate' mangled-name='__traceiter_android_rvh_ctl_dirty_rate' filepath='include/trace/hooks/mm.h' line='196' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_ctl_dirty_rate'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='196' column='1'/>
+        <parameter type-id='eaa32e2f' name='unused' filepath='include/trace/hooks/mm.h' line='196' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_dequeue_entity' mangled-name='__traceiter_android_rvh_dequeue_entity' filepath='include/trace/hooks/sched.h' line='354' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_dequeue_entity'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='354' column='1'/>
+        <parameter type-id='a6892387' name='cfs' filepath='include/trace/hooks/sched.h' line='354' column='1'/>
+        <parameter type-id='ff2b3d10' name='se' filepath='include/trace/hooks/sched.h' line='354' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_dequeue_task' mangled-name='__traceiter_android_rvh_dequeue_task' filepath='include/trace/hooks/sched.h' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_dequeue_task'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='42' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='42' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='42' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='include/trace/hooks/sched.h' line='42' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_dequeue_task_fair' mangled-name='__traceiter_android_rvh_dequeue_task_fair' filepath='include/trace/hooks/sched.h' line='366' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_dequeue_task_fair'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='366' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='366' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='366' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='include/trace/hooks/sched.h' line='366' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_die_kernel_fault' mangled-name='__traceiter_android_rvh_die_kernel_fault' filepath='include/trace/hooks/fault.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_die_kernel_fault'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/fault.h' line='16' column='1'/>
+        <parameter type-id='80f4b756' name='msg' filepath='include/trace/hooks/fault.h' line='16' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='include/trace/hooks/fault.h' line='16' column='1'/>
+        <parameter type-id='f0981eeb' name='esr' filepath='include/trace/hooks/fault.h' line='16' column='1'/>
+        <parameter type-id='4616a179' name='regs' filepath='include/trace/hooks/fault.h' line='16' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_dma_buf_stats_teardown' mangled-name='__traceiter_android_rvh_dma_buf_stats_teardown' filepath='include/trace/hooks/dmabuf.h' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_dma_buf_stats_teardown'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dmabuf.h' line='31' column='1'/>
+        <parameter type-id='bd60ed15' name='sysfs_entry' filepath='include/trace/hooks/dmabuf.h' line='31' column='1'/>
+        <parameter type-id='d8e6b335' name='skip_sysfs_release' filepath='include/trace/hooks/dmabuf.h' line='31' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_do_mem_abort' mangled-name='__traceiter_android_rvh_do_mem_abort' filepath='include/trace/hooks/fault.h' line='24' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_do_mem_abort'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/fault.h' line='24' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='include/trace/hooks/fault.h' line='24' column='1'/>
+        <parameter type-id='f0981eeb' name='esr' filepath='include/trace/hooks/fault.h' line='24' column='1'/>
+        <parameter type-id='4616a179' name='regs' filepath='include/trace/hooks/fault.h' line='24' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_do_ptrauth_fault' mangled-name='__traceiter_android_rvh_do_ptrauth_fault' filepath='include/trace/hooks/traps.h' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_do_ptrauth_fault'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/traps.h' line='21' column='1'/>
+        <parameter type-id='4616a179' name='regs' filepath='include/trace/hooks/traps.h' line='21' column='1'/>
+        <parameter type-id='f0981eeb' name='esr' filepath='include/trace/hooks/traps.h' line='21' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_do_sched_yield' mangled-name='__traceiter_android_rvh_do_sched_yield' filepath='include/trace/hooks/sched.h' line='317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_do_sched_yield'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='317' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='317' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_do_sea' mangled-name='__traceiter_android_rvh_do_sea' filepath='include/trace/hooks/fault.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_do_sea'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/fault.h' line='20' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='include/trace/hooks/fault.h' line='20' column='1'/>
+        <parameter type-id='f0981eeb' name='esr' filepath='include/trace/hooks/fault.h' line='20' column='1'/>
+        <parameter type-id='4616a179' name='regs' filepath='include/trace/hooks/fault.h' line='20' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_do_serror' mangled-name='__traceiter_android_rvh_do_serror' filepath='include/trace/hooks/traps.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_do_serror'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/traps.h' line='34' column='1'/>
+        <parameter type-id='4616a179' name='regs' filepath='include/trace/hooks/traps.h' line='34' column='1'/>
+        <parameter type-id='f0981eeb' name='esr' filepath='include/trace/hooks/traps.h' line='34' column='1'/>
+        <parameter type-id='7292109c' name='ret' filepath='include/trace/hooks/traps.h' line='34' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_do_sp_pc_abort' mangled-name='__traceiter_android_rvh_do_sp_pc_abort' filepath='include/trace/hooks/fault.h' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_do_sp_pc_abort'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/fault.h' line='28' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='include/trace/hooks/fault.h' line='28' column='1'/>
+        <parameter type-id='f0981eeb' name='esr' filepath='include/trace/hooks/fault.h' line='28' column='1'/>
+        <parameter type-id='4616a179' name='regs' filepath='include/trace/hooks/fault.h' line='28' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_do_undefinstr' mangled-name='__traceiter_android_rvh_do_undefinstr' filepath='include/trace/hooks/traps.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_do_undefinstr'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/traps.h' line='16' column='1'/>
+        <parameter type-id='4616a179' name='regs' filepath='include/trace/hooks/traps.h' line='16' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_effective_cpu_util' mangled-name='__traceiter_android_rvh_effective_cpu_util' filepath='include/trace/hooks/sched.h' line='402' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_effective_cpu_util'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='402' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='include/trace/hooks/sched.h' line='402' column='1'/>
+        <parameter type-id='7359adad' name='util_cfs' filepath='include/trace/hooks/sched.h' line='402' column='1'/>
+        <parameter type-id='7359adad' name='max' filepath='include/trace/hooks/sched.h' line='402' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='include/trace/hooks/sched.h' line='402' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='402' column='1'/>
+        <parameter type-id='1d2c2b85' name='new_util' filepath='include/trace/hooks/sched.h' line='402' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_enqueue_entity' mangled-name='__traceiter_android_rvh_enqueue_entity' filepath='include/trace/hooks/sched.h' line='350' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_enqueue_entity'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='350' column='1'/>
+        <parameter type-id='a6892387' name='cfs' filepath='include/trace/hooks/sched.h' line='350' column='1'/>
+        <parameter type-id='ff2b3d10' name='se' filepath='include/trace/hooks/sched.h' line='350' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_enqueue_task' mangled-name='__traceiter_android_rvh_enqueue_task' filepath='include/trace/hooks/sched.h' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_enqueue_task'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='38' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='38' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='38' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='include/trace/hooks/sched.h' line='38' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_enqueue_task_fair' mangled-name='__traceiter_android_rvh_enqueue_task_fair' filepath='include/trace/hooks/sched.h' line='362' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_enqueue_task_fair'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='362' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='362' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='362' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='include/trace/hooks/sched.h' line='362' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_entity_tick' mangled-name='__traceiter_android_rvh_entity_tick' filepath='include/trace/hooks/sched.h' line='358' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_entity_tick'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='358' column='1'/>
+        <parameter type-id='a6892387' name='cfs_rq' filepath='include/trace/hooks/sched.h' line='358' column='1'/>
+        <parameter type-id='ff2b3d10' name='se' filepath='include/trace/hooks/sched.h' line='358' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_exit_creds' mangled-name='__traceiter_android_rvh_exit_creds' filepath='include/trace/hooks/creds.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_exit_creds'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/creds.h' line='26' column='1'/>
+        <parameter type-id='b42ffb57' name='task' filepath='include/trace/hooks/creds.h' line='26' column='1'/>
+        <parameter type-id='bc33861a' name='cred' filepath='include/trace/hooks/creds.h' line='26' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_find_busiest_group' mangled-name='__traceiter_android_rvh_find_busiest_group' filepath='include/trace/hooks/sched.h' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_find_busiest_group'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='92' column='1'/>
+        <parameter type-id='f3dcd492' name='busiest' filepath='include/trace/hooks/sched.h' line='92' column='1'/>
+        <parameter type-id='6ed6b432' name='dst_rq' filepath='include/trace/hooks/sched.h' line='92' column='1'/>
+        <parameter type-id='7292109c' name='out_balance' filepath='include/trace/hooks/sched.h' line='92' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_find_busiest_queue' mangled-name='__traceiter_android_rvh_find_busiest_queue' filepath='include/trace/hooks/sched.h' line='119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_find_busiest_queue'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='119' column='1'/>
+        <parameter type-id='95e97e5e' name='dst_cpu' filepath='include/trace/hooks/sched.h' line='119' column='1'/>
+        <parameter type-id='f3dcd492' name='group' filepath='include/trace/hooks/sched.h' line='119' column='1'/>
+        <parameter type-id='74bccedd' name='env_cpus' filepath='include/trace/hooks/sched.h' line='119' column='1'/>
+        <parameter type-id='93fd81c8' name='busiest' filepath='include/trace/hooks/sched.h' line='119' column='1'/>
+        <parameter type-id='7292109c' name='done' filepath='include/trace/hooks/sched.h' line='119' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_find_energy_efficient_cpu' mangled-name='__traceiter_android_rvh_find_energy_efficient_cpu' filepath='include/trace/hooks/sched.h' line='131' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_find_energy_efficient_cpu'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='131' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='131' column='1'/>
+        <parameter type-id='95e97e5e' name='prev_cpu' filepath='include/trace/hooks/sched.h' line='131' column='1'/>
+        <parameter type-id='95e97e5e' name='sync' filepath='include/trace/hooks/sched.h' line='131' column='1'/>
+        <parameter type-id='7292109c' name='new_cpu' filepath='include/trace/hooks/sched.h' line='131' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_find_lowest_rq' mangled-name='__traceiter_android_rvh_find_lowest_rq' filepath='include/trace/hooks/sched.h' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_find_lowest_rq'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='50' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='50' column='1'/>
+        <parameter type-id='74bccedd' name='local_cpu_mask' filepath='include/trace/hooks/sched.h' line='50' column='1'/>
+        <parameter type-id='95e97e5e' name='ret' filepath='include/trace/hooks/sched.h' line='50' column='1'/>
+        <parameter type-id='7292109c' name='lowest_cpu' filepath='include/trace/hooks/sched.h' line='50' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_find_new_ilb' mangled-name='__traceiter_android_rvh_find_new_ilb' filepath='include/trace/hooks/sched.h' line='382' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_find_new_ilb'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='382' column='1'/>
+        <parameter type-id='74bccedd' name='nohz_idle_cpus_mask' filepath='include/trace/hooks/sched.h' line='382' column='1'/>
+        <parameter type-id='7292109c' name='ilb' filepath='include/trace/hooks/sched.h' line='382' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_finish_prio_fork' mangled-name='__traceiter_android_rvh_finish_prio_fork' filepath='include/trace/hooks/sched.h' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_finish_prio_fork'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='59' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='59' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_flush_task' mangled-name='__traceiter_android_rvh_flush_task' filepath='include/trace/hooks/sched.h' line='189' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_flush_task'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='189' column='1'/>
+        <parameter type-id='f23e2572' name='prev' filepath='include/trace/hooks/sched.h' line='189' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_get_nohz_timer_target' mangled-name='__traceiter_android_rvh_get_nohz_timer_target' filepath='include/trace/hooks/sched.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_get_nohz_timer_target'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='79' column='1'/>
+        <parameter type-id='7292109c' name='cpu' filepath='include/trace/hooks/sched.h' line='79' column='1'/>
+        <parameter type-id='d8e6b335' name='done' filepath='include/trace/hooks/sched.h' line='79' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_gic_v3_set_affinity' mangled-name='__traceiter_android_rvh_gic_v3_set_affinity' filepath='include/trace/hooks/gic_v3.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_gic_v3_set_affinity'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/gic_v3.h' line='26' column='1'/>
+        <parameter type-id='1c475548' name='d' filepath='include/trace/hooks/gic_v3.h' line='26' column='1'/>
+        <parameter type-id='5f8a1ac4' name='mask_val' filepath='include/trace/hooks/gic_v3.h' line='26' column='1'/>
+        <parameter type-id='3df9fd28' name='affinity' filepath='include/trace/hooks/gic_v3.h' line='26' column='1'/>
+        <parameter type-id='b50a4934' name='force' filepath='include/trace/hooks/gic_v3.h' line='26' column='1'/>
+        <parameter type-id='eaa32e2f' name='base' filepath='include/trace/hooks/gic_v3.h' line='26' column='1'/>
+        <parameter type-id='eaa32e2f' name='rbase' filepath='include/trace/hooks/gic_v3.h' line='26' column='1'/>
+        <parameter type-id='91ce1af9' name='redist_stride' filepath='include/trace/hooks/gic_v3.h' line='26' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_iommu_setup_dma_ops' mangled-name='__traceiter_android_rvh_iommu_setup_dma_ops' filepath='include/trace/hooks/iommu.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_iommu_setup_dma_ops'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/iommu.h' line='19' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='include/trace/hooks/iommu.h' line='19' column='1'/>
+        <parameter type-id='91ce1af9' name='dma_base' filepath='include/trace/hooks/iommu.h' line='19' column='1'/>
+        <parameter type-id='91ce1af9' name='dma_limit' filepath='include/trace/hooks/iommu.h' line='19' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_irqs_disable' mangled-name='__traceiter_android_rvh_irqs_disable' filepath='include/trace/hooks/preemptirq.h' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_irqs_disable'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/preemptirq.h' line='21' column='1'/>
+        <parameter type-id='7359adad' name='ip' filepath='include/trace/hooks/preemptirq.h' line='21' column='1'/>
+        <parameter type-id='7359adad' name='parent_ip' filepath='include/trace/hooks/preemptirq.h' line='21' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_irqs_enable' mangled-name='__traceiter_android_rvh_irqs_enable' filepath='include/trace/hooks/preemptirq.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_irqs_enable'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/preemptirq.h' line='25' column='1'/>
+        <parameter type-id='7359adad' name='ip' filepath='include/trace/hooks/preemptirq.h' line='25' column='1'/>
+        <parameter type-id='7359adad' name='parent_ip' filepath='include/trace/hooks/preemptirq.h' line='25' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_is_cpu_allowed' mangled-name='__traceiter_android_rvh_is_cpu_allowed' filepath='include/trace/hooks/sched.h' line='75' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_is_cpu_allowed'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='75' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='75' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='include/trace/hooks/sched.h' line='75' column='1'/>
+        <parameter type-id='d8e6b335' name='allowed' filepath='include/trace/hooks/sched.h' line='75' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_memcgv2_calc_decayed_watermark' mangled-name='__traceiter_android_rvh_memcgv2_calc_decayed_watermark' filepath='include/trace/hooks/cgroup.h' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_memcgv2_calc_decayed_watermark'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cgroup.h' line='39' column='1'/>
+        <parameter type-id='223696fb' name='memcg' filepath='include/trace/hooks/cgroup.h' line='39' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_memcgv2_init' mangled-name='__traceiter_android_rvh_memcgv2_init' filepath='include/trace/hooks/cgroup.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_memcgv2_init'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cgroup.h' line='35' column='1'/>
+        <parameter type-id='223696fb' name='memcg' filepath='include/trace/hooks/cgroup.h' line='35' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_migrate_queued_task' mangled-name='__traceiter_android_rvh_migrate_queued_task' filepath='include/trace/hooks/sched.h' line='125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_migrate_queued_task'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='125' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='125' column='1'/>
+        <parameter type-id='d0163a5e' name='rf' filepath='include/trace/hooks/sched.h' line='125' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='125' column='1'/>
+        <parameter type-id='95e97e5e' name='new_cpu' filepath='include/trace/hooks/sched.h' line='125' column='1'/>
+        <parameter type-id='7292109c' name='detached' filepath='include/trace/hooks/sched.h' line='125' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_mmc_cache_card_properties' mangled-name='__traceiter_android_rvh_mmc_cache_card_properties' filepath='include/trace/hooks/mmc.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_mmc_cache_card_properties'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mmc.h' line='55' column='1'/>
+        <parameter type-id='dd575c43' name='host' filepath='include/trace/hooks/mmc.h' line='55' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_mmc_partition_status' mangled-name='__traceiter_android_rvh_mmc_partition_status' filepath='include/trace/hooks/mmc.h' line='75' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_mmc_partition_status'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mmc.h' line='75' column='1'/>
+        <parameter type-id='13d38dcb' name='card' filepath='include/trace/hooks/mmc.h' line='75' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_mmc_sd_cmdline_timing' mangled-name='__traceiter_android_rvh_mmc_sd_cmdline_timing' filepath='include/trace/hooks/mmc.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_mmc_sd_cmdline_timing'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mmc.h' line='79' column='1'/>
+        <parameter type-id='13d38dcb' name='card' filepath='include/trace/hooks/mmc.h' line='79' column='1'/>
+        <parameter type-id='7292109c' name='err' filepath='include/trace/hooks/mmc.h' line='79' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_mmc_sd_dataline_timing' mangled-name='__traceiter_android_rvh_mmc_sd_dataline_timing' filepath='include/trace/hooks/mmc.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_mmc_sd_dataline_timing'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mmc.h' line='83' column='1'/>
+        <parameter type-id='13d38dcb' name='card' filepath='include/trace/hooks/mmc.h' line='83' column='1'/>
+        <parameter type-id='7292109c' name='err' filepath='include/trace/hooks/mmc.h' line='83' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_new_task_stats' mangled-name='__traceiter_android_rvh_new_task_stats' filepath='include/trace/hooks/sched.h' line='185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_new_task_stats'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='185' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='185' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_override_creds' mangled-name='__traceiter_android_rvh_override_creds' filepath='include/trace/hooks/creds.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_override_creds'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/creds.h' line='30' column='1'/>
+        <parameter type-id='b42ffb57' name='task' filepath='include/trace/hooks/creds.h' line='30' column='1'/>
+        <parameter type-id='bc33861a' name='new' filepath='include/trace/hooks/creds.h' line='30' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_panic_unhandled' mangled-name='__traceiter_android_rvh_panic_unhandled' filepath='include/trace/hooks/traps.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_panic_unhandled'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/traps.h' line='26' column='1'/>
+        <parameter type-id='4616a179' name='regs' filepath='include/trace/hooks/traps.h' line='26' column='1'/>
+        <parameter type-id='80f4b756' name='vector' filepath='include/trace/hooks/traps.h' line='26' column='1'/>
+        <parameter type-id='f0981eeb' name='esr' filepath='include/trace/hooks/traps.h' line='26' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_partial_init' mangled-name='__traceiter_android_rvh_partial_init' filepath='include/trace/hooks/mmc.h' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_partial_init'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mmc.h' line='59' column='1'/>
+        <parameter type-id='dd575c43' name='host' filepath='include/trace/hooks/mmc.h' line='59' column='1'/>
+        <parameter type-id='d8e6b335' name='partial_init' filepath='include/trace/hooks/mmc.h' line='59' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_pick_next_entity' mangled-name='__traceiter_android_rvh_pick_next_entity' filepath='include/trace/hooks/sched.h' line='295' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_pick_next_entity'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='295' column='1'/>
+        <parameter type-id='a6892387' name='cfs_rq' filepath='include/trace/hooks/sched.h' line='295' column='1'/>
+        <parameter type-id='ff2b3d10' name='curr' filepath='include/trace/hooks/sched.h' line='295' column='1'/>
+        <parameter type-id='eb11624e' name='se' filepath='include/trace/hooks/sched.h' line='295' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_place_entity' mangled-name='__traceiter_android_rvh_place_entity' filepath='include/trace/hooks/sched.h' line='221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_place_entity'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='221' column='1'/>
+        <parameter type-id='a6892387' name='cfs_rq' filepath='include/trace/hooks/sched.h' line='221' column='1'/>
+        <parameter type-id='ff2b3d10' name='se' filepath='include/trace/hooks/sched.h' line='221' column='1'/>
+        <parameter type-id='95e97e5e' name='initial' filepath='include/trace/hooks/sched.h' line='221' column='1'/>
+        <parameter type-id='3df9fd28' name='vruntime' filepath='include/trace/hooks/sched.h' line='221' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_post_init_entity_util_avg' mangled-name='__traceiter_android_rvh_post_init_entity_util_avg' filepath='include/trace/hooks/sched.h' line='378' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_post_init_entity_util_avg'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='378' column='1'/>
+        <parameter type-id='ff2b3d10' name='se' filepath='include/trace/hooks/sched.h' line='378' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_preempt_disable' mangled-name='__traceiter_android_rvh_preempt_disable' filepath='include/trace/hooks/preemptirq.h' line='13' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_preempt_disable'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/preemptirq.h' line='13' column='1'/>
+        <parameter type-id='7359adad' name='ip' filepath='include/trace/hooks/preemptirq.h' line='13' column='1'/>
+        <parameter type-id='7359adad' name='parent_ip' filepath='include/trace/hooks/preemptirq.h' line='13' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_preempt_enable' mangled-name='__traceiter_android_rvh_preempt_enable' filepath='include/trace/hooks/preemptirq.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_preempt_enable'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/preemptirq.h' line='17' column='1'/>
+        <parameter type-id='7359adad' name='ip' filepath='include/trace/hooks/preemptirq.h' line='17' column='1'/>
+        <parameter type-id='7359adad' name='parent_ip' filepath='include/trace/hooks/preemptirq.h' line='17' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_prepare_prio_fork' mangled-name='__traceiter_android_rvh_prepare_prio_fork' filepath='include/trace/hooks/sched.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_prepare_prio_fork'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='55' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='55' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_psci_cpu_suspend' mangled-name='__traceiter_android_rvh_psci_cpu_suspend' filepath='include/trace/hooks/psci.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_psci_cpu_suspend'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/psci.h' line='17' column='1'/>
+        <parameter type-id='19c2251e' name='state' filepath='include/trace/hooks/psci.h' line='17' column='1'/>
+        <parameter type-id='d8e6b335' name='deny' filepath='include/trace/hooks/psci.h' line='17' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_psci_tos_resident_on' mangled-name='__traceiter_android_rvh_psci_tos_resident_on' filepath='include/trace/hooks/psci.h' line='13' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_psci_tos_resident_on'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/psci.h' line='13' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='include/trace/hooks/psci.h' line='13' column='1'/>
+        <parameter type-id='d8e6b335' name='resident' filepath='include/trace/hooks/psci.h' line='13' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_refrigerator' mangled-name='__traceiter_android_rvh_refrigerator' filepath='include/trace/hooks/cgroup.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_refrigerator'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cgroup.h' line='25' column='1'/>
+        <parameter type-id='b50a4934' name='f' filepath='include/trace/hooks/cgroup.h' line='25' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_replace_next_task_fair' mangled-name='__traceiter_android_rvh_replace_next_task_fair' filepath='include/trace/hooks/sched.h' line='285' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_replace_next_task_fair'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='285' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='285' column='1'/>
+        <parameter type-id='afd4c988' name='p' filepath='include/trace/hooks/sched.h' line='285' column='1'/>
+        <parameter type-id='eb11624e' name='se' filepath='include/trace/hooks/sched.h' line='285' column='1'/>
+        <parameter type-id='d8e6b335' name='repick' filepath='include/trace/hooks/sched.h' line='285' column='1'/>
+        <parameter type-id='b50a4934' name='simple' filepath='include/trace/hooks/sched.h' line='285' column='1'/>
+        <parameter type-id='f23e2572' name='prev' filepath='include/trace/hooks/sched.h' line='285' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_report_bug' mangled-name='__traceiter_android_rvh_report_bug' filepath='include/trace/hooks/bug.h' line='10' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_report_bug'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/bug.h' line='10' column='1'/>
+        <parameter type-id='80f4b756' name='file' filepath='include/trace/hooks/bug.h' line='10' column='1'/>
+        <parameter type-id='f0981eeb' name='line' filepath='include/trace/hooks/bug.h' line='10' column='1'/>
+        <parameter type-id='7359adad' name='bugaddr' filepath='include/trace/hooks/bug.h' line='10' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_revert_creds' mangled-name='__traceiter_android_rvh_revert_creds' filepath='include/trace/hooks/creds.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_revert_creds'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/creds.h' line='34' column='1'/>
+        <parameter type-id='b42ffb57' name='task' filepath='include/trace/hooks/creds.h' line='34' column='1'/>
+        <parameter type-id='bc33861a' name='old' filepath='include/trace/hooks/creds.h' line='34' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_rmqueue_bulk' mangled-name='__traceiter_android_rvh_rmqueue_bulk' filepath='include/trace/hooks/mm.h' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_rmqueue_bulk'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='47' column='1'/>
+        <parameter type-id='eaa32e2f' name='unused' filepath='include/trace/hooks/mm.h' line='47' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_rtmutex_force_update' mangled-name='__traceiter_android_rvh_rtmutex_force_update' filepath='include/trace/hooks/sched.h' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_rtmutex_force_update'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='63' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='63' column='1'/>
+        <parameter type-id='f23e2572' name='pi_task' filepath='include/trace/hooks/sched.h' line='63' column='1'/>
+        <parameter type-id='7292109c' name='update' filepath='include/trace/hooks/sched.h' line='63' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_rtmutex_prepare_setprio' mangled-name='__traceiter_android_rvh_rtmutex_prepare_setprio' filepath='include/trace/hooks/sched.h' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_rtmutex_prepare_setprio'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='67' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='67' column='1'/>
+        <parameter type-id='f23e2572' name='pi_task' filepath='include/trace/hooks/sched.h' line='67' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_rto_next_cpu' mangled-name='__traceiter_android_rvh_rto_next_cpu' filepath='include/trace/hooks/sched.h' line='71' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_rto_next_cpu'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='71' column='1'/>
+        <parameter type-id='95e97e5e' name='rto_cpu' filepath='include/trace/hooks/sched.h' line='71' column='1'/>
+        <parameter type-id='74bccedd' name='rto_mask' filepath='include/trace/hooks/sched.h' line='71' column='1'/>
+        <parameter type-id='7292109c' name='cpu' filepath='include/trace/hooks/sched.h' line='71' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_sched_cpu_dying' mangled-name='__traceiter_android_rvh_sched_cpu_dying' filepath='include/trace/hooks/sched.h' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_sched_cpu_dying'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='205' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='include/trace/hooks/sched.h' line='205' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_sched_cpu_starting' mangled-name='__traceiter_android_rvh_sched_cpu_starting' filepath='include/trace/hooks/sched.h' line='201' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_sched_cpu_starting'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='201' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='include/trace/hooks/sched.h' line='201' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_sched_exec' mangled-name='__traceiter_android_rvh_sched_exec' filepath='include/trace/hooks/sched.h' line='249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_sched_exec'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='249' column='1'/>
+        <parameter type-id='d8e6b335' name='cond' filepath='include/trace/hooks/sched.h' line='249' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_sched_fork' mangled-name='__traceiter_android_rvh_sched_fork' filepath='include/trace/hooks/sched.h' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_sched_fork'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='177' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='177' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_sched_fork_init' mangled-name='__traceiter_android_rvh_sched_fork_init' filepath='include/trace/hooks/sched.h' line='237' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_sched_fork_init'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='237' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='237' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_sched_getaffinity' mangled-name='__traceiter_android_rvh_sched_getaffinity' filepath='include/trace/hooks/sched.h' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_sched_getaffinity'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='156' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='156' column='1'/>
+        <parameter type-id='74bccedd' name='in_mask' filepath='include/trace/hooks/sched.h' line='156' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_sched_newidle_balance' mangled-name='__traceiter_android_rvh_sched_newidle_balance' filepath='include/trace/hooks/sched.h' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_sched_newidle_balance'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='106' column='1'/>
+        <parameter type-id='6ed6b432' name='this_rq' filepath='include/trace/hooks/sched.h' line='106' column='1'/>
+        <parameter type-id='d0163a5e' name='rf' filepath='include/trace/hooks/sched.h' line='106' column='1'/>
+        <parameter type-id='7292109c' name='pulled_task' filepath='include/trace/hooks/sched.h' line='106' column='1'/>
+        <parameter type-id='7292109c' name='done' filepath='include/trace/hooks/sched.h' line='106' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_sched_nohz_balancer_kick' mangled-name='__traceiter_android_rvh_sched_nohz_balancer_kick' filepath='include/trace/hooks/sched.h' line='111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_sched_nohz_balancer_kick'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='111' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='111' column='1'/>
+        <parameter type-id='807869d3' name='flags' filepath='include/trace/hooks/sched.h' line='111' column='1'/>
+        <parameter type-id='7292109c' name='done' filepath='include/trace/hooks/sched.h' line='111' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_sched_rebalance_domains' mangled-name='__traceiter_android_rvh_sched_rebalance_domains' filepath='include/trace/hooks/sched.h' line='115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_sched_rebalance_domains'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='115' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='115' column='1'/>
+        <parameter type-id='7292109c' name='continue_balancing' filepath='include/trace/hooks/sched.h' line='115' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_sched_setaffinity' mangled-name='__traceiter_android_rvh_sched_setaffinity' filepath='include/trace/hooks/sched.h' line='152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_sched_setaffinity'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='152' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='152' column='1'/>
+        <parameter type-id='5f8a1ac4' name='in_mask' filepath='include/trace/hooks/sched.h' line='152' column='1'/>
+        <parameter type-id='7292109c' name='retval' filepath='include/trace/hooks/sched.h' line='152' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_schedule' mangled-name='__traceiter_android_rvh_schedule' filepath='include/trace/hooks/sched.h' line='197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_schedule'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='197' column='1'/>
+        <parameter type-id='f23e2572' name='prev' filepath='include/trace/hooks/sched.h' line='197' column='1'/>
+        <parameter type-id='f23e2572' name='next' filepath='include/trace/hooks/sched.h' line='197' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='197' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_select_fallback_rq' mangled-name='__traceiter_android_rvh_select_fallback_rq' filepath='include/trace/hooks/sched.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_select_fallback_rq'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='29' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='include/trace/hooks/sched.h' line='29' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='29' column='1'/>
+        <parameter type-id='7292109c' name='new_cpu' filepath='include/trace/hooks/sched.h' line='29' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_select_task_rq_dl' mangled-name='__traceiter_android_rvh_select_task_rq_dl' filepath='include/trace/hooks/sched.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_select_task_rq_dl'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='25' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='25' column='1'/>
+        <parameter type-id='95e97e5e' name='prev_cpu' filepath='include/trace/hooks/sched.h' line='25' column='1'/>
+        <parameter type-id='95e97e5e' name='sd_flag' filepath='include/trace/hooks/sched.h' line='25' column='1'/>
+        <parameter type-id='95e97e5e' name='wake_flags' filepath='include/trace/hooks/sched.h' line='25' column='1'/>
+        <parameter type-id='7292109c' name='new_cpu' filepath='include/trace/hooks/sched.h' line='25' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_select_task_rq_fair' mangled-name='__traceiter_android_rvh_select_task_rq_fair' filepath='include/trace/hooks/sched.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_select_task_rq_fair'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='17' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='17' column='1'/>
+        <parameter type-id='95e97e5e' name='prev_cpu' filepath='include/trace/hooks/sched.h' line='17' column='1'/>
+        <parameter type-id='95e97e5e' name='sd_flag' filepath='include/trace/hooks/sched.h' line='17' column='1'/>
+        <parameter type-id='95e97e5e' name='wake_flags' filepath='include/trace/hooks/sched.h' line='17' column='1'/>
+        <parameter type-id='7292109c' name='new_cpu' filepath='include/trace/hooks/sched.h' line='17' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_select_task_rq_rt' mangled-name='__traceiter_android_rvh_select_task_rq_rt' filepath='include/trace/hooks/sched.h' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_select_task_rq_rt'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='21' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='21' column='1'/>
+        <parameter type-id='95e97e5e' name='prev_cpu' filepath='include/trace/hooks/sched.h' line='21' column='1'/>
+        <parameter type-id='95e97e5e' name='sd_flag' filepath='include/trace/hooks/sched.h' line='21' column='1'/>
+        <parameter type-id='95e97e5e' name='wake_flags' filepath='include/trace/hooks/sched.h' line='21' column='1'/>
+        <parameter type-id='7292109c' name='new_cpu' filepath='include/trace/hooks/sched.h' line='21' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_selinux_avc_insert' mangled-name='__traceiter_android_rvh_selinux_avc_insert' filepath='include/trace/hooks/avc.h' line='14' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_selinux_avc_insert'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/avc.h' line='14' column='1'/>
+        <parameter type-id='6222d42d' name='node' filepath='include/trace/hooks/avc.h' line='14' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_selinux_avc_lookup' mangled-name='__traceiter_android_rvh_selinux_avc_lookup' filepath='include/trace/hooks/avc.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_selinux_avc_lookup'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/avc.h' line='26' column='1'/>
+        <parameter type-id='6222d42d' name='node' filepath='include/trace/hooks/avc.h' line='26' column='1'/>
+        <parameter type-id='19c2251e' name='ssid' filepath='include/trace/hooks/avc.h' line='26' column='1'/>
+        <parameter type-id='19c2251e' name='tsid' filepath='include/trace/hooks/avc.h' line='26' column='1'/>
+        <parameter type-id='1dc6a898' name='tclass' filepath='include/trace/hooks/avc.h' line='26' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_selinux_avc_node_delete' mangled-name='__traceiter_android_rvh_selinux_avc_node_delete' filepath='include/trace/hooks/avc.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_selinux_avc_node_delete'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/avc.h' line='18' column='1'/>
+        <parameter type-id='6222d42d' name='node' filepath='include/trace/hooks/avc.h' line='18' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_selinux_avc_node_replace' mangled-name='__traceiter_android_rvh_selinux_avc_node_replace' filepath='include/trace/hooks/avc.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_selinux_avc_node_replace'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/avc.h' line='22' column='1'/>
+        <parameter type-id='6222d42d' name='old' filepath='include/trace/hooks/avc.h' line='22' column='1'/>
+        <parameter type-id='6222d42d' name='new' filepath='include/trace/hooks/avc.h' line='22' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_selinux_is_initialized' mangled-name='__traceiter_android_rvh_selinux_is_initialized' filepath='include/trace/hooks/selinux.h' line='14' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_selinux_is_initialized'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/selinux.h' line='14' column='1'/>
+        <parameter type-id='3f97013a' name='state' filepath='include/trace/hooks/selinux.h' line='14' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_set_balance_anon_file_reclaim' mangled-name='__traceiter_android_rvh_set_balance_anon_file_reclaim' filepath='include/trace/hooks/vmscan.h' line='12' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_set_balance_anon_file_reclaim'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/vmscan.h' line='12' column='1'/>
+        <parameter type-id='d8e6b335' name='balance_anon_file_reclaim' filepath='include/trace/hooks/vmscan.h' line='12' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_set_cpus_allowed_by_task' mangled-name='__traceiter_android_rvh_set_cpus_allowed_by_task' filepath='include/trace/hooks/sched.h' line='312' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_set_cpus_allowed_by_task'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='312' column='1'/>
+        <parameter type-id='5f8a1ac4' name='cpu_valid_mask' filepath='include/trace/hooks/sched.h' line='312' column='1'/>
+        <parameter type-id='5f8a1ac4' name='new_mask' filepath='include/trace/hooks/sched.h' line='312' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='312' column='1'/>
+        <parameter type-id='807869d3' name='dest_cpu' filepath='include/trace/hooks/sched.h' line='312' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_set_cpus_allowed_comm' mangled-name='__traceiter_android_rvh_set_cpus_allowed_comm' filepath='include/trace/hooks/sched.h' line='423' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_set_cpus_allowed_comm'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='423' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='423' column='1'/>
+        <parameter type-id='5f8a1ac4' name='new_mask' filepath='include/trace/hooks/sched.h' line='423' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_set_cpus_allowed_ptr_locked' mangled-name='__traceiter_android_rvh_set_cpus_allowed_ptr_locked' filepath='include/trace/hooks/sched.h' line='307' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_set_cpus_allowed_ptr_locked'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='307' column='1'/>
+        <parameter type-id='5f8a1ac4' name='cpu_valid_mask' filepath='include/trace/hooks/sched.h' line='307' column='1'/>
+        <parameter type-id='5f8a1ac4' name='new_mask' filepath='include/trace/hooks/sched.h' line='307' column='1'/>
+        <parameter type-id='807869d3' name='dest_cpu' filepath='include/trace/hooks/sched.h' line='307' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_set_gfp_zone_flags' mangled-name='__traceiter_android_rvh_set_gfp_zone_flags' filepath='include/trace/hooks/mm.h' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_set_gfp_zone_flags'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='38' column='1'/>
+        <parameter type-id='831e6e93' name='flags' filepath='include/trace/hooks/mm.h' line='38' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_set_iowait' mangled-name='__traceiter_android_rvh_set_iowait' filepath='include/trace/hooks/sched.h' line='139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_set_iowait'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='139' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='139' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='139' column='1'/>
+        <parameter type-id='7292109c' name='should_iowait_boost' filepath='include/trace/hooks/sched.h' line='139' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_set_readahead_gfp_mask' mangled-name='__traceiter_android_rvh_set_readahead_gfp_mask' filepath='include/trace/hooks/mm.h' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_set_readahead_gfp_mask'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='44' column='1'/>
+        <parameter type-id='831e6e93' name='flags' filepath='include/trace/hooks/mm.h' line='44' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_set_skip_swapcache_flags' mangled-name='__traceiter_android_rvh_set_skip_swapcache_flags' filepath='include/trace/hooks/mm.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_set_skip_swapcache_flags'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='35' column='1'/>
+        <parameter type-id='831e6e93' name='flags' filepath='include/trace/hooks/mm.h' line='35' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_set_task_cpu' mangled-name='__traceiter_android_rvh_set_task_cpu' filepath='include/trace/hooks/sched.h' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_set_task_cpu'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='165' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='165' column='1'/>
+        <parameter type-id='f0981eeb' name='new_cpu' filepath='include/trace/hooks/sched.h' line='165' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_set_user_nice' mangled-name='__traceiter_android_rvh_set_user_nice' filepath='include/trace/hooks/sched.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_set_user_nice'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='83' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='83' column='1'/>
+        <parameter type-id='3ccc2590' name='nice' filepath='include/trace/hooks/sched.h' line='83' column='1'/>
+        <parameter type-id='d8e6b335' name='allowed' filepath='include/trace/hooks/sched.h' line='83' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_setscheduler' mangled-name='__traceiter_android_rvh_setscheduler' filepath='include/trace/hooks/sched.h' line='87' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_setscheduler'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='87' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='87' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_show_max_freq' mangled-name='__traceiter_android_rvh_show_max_freq' filepath='include/trace/hooks/cpufreq.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_show_max_freq'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cpufreq.h' line='18' column='1'/>
+        <parameter type-id='343c3ae4' name='policy' filepath='include/trace/hooks/cpufreq.h' line='18' column='1'/>
+        <parameter type-id='807869d3' name='max_freq' filepath='include/trace/hooks/cpufreq.h' line='18' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_tick_entry' mangled-name='__traceiter_android_rvh_tick_entry' filepath='include/trace/hooks/sched.h' line='193' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_tick_entry'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='193' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='193' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_tk_based_time_sync' mangled-name='__traceiter_android_rvh_tk_based_time_sync' filepath='include/trace/hooks/timekeeping.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_tk_based_time_sync'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/timekeeping.h' line='18' column='1'/>
+        <parameter type-id='5509d4f4' name='tk' filepath='include/trace/hooks/timekeeping.h' line='18' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_try_to_wake_up' mangled-name='__traceiter_android_rvh_try_to_wake_up' filepath='include/trace/hooks/sched.h' line='169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_try_to_wake_up'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='169' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='169' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_try_to_wake_up_success' mangled-name='__traceiter_android_rvh_try_to_wake_up_success' filepath='include/trace/hooks/sched.h' line='173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_try_to_wake_up_success'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='173' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='173' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_ttwu_cond' mangled-name='__traceiter_android_rvh_ttwu_cond' filepath='include/trace/hooks/sched.h' line='241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_ttwu_cond'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='241' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='include/trace/hooks/sched.h' line='241' column='1'/>
+        <parameter type-id='d8e6b335' name='cond' filepath='include/trace/hooks/sched.h' line='241' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_uclamp_eff_get' mangled-name='__traceiter_android_rvh_uclamp_eff_get' filepath='include/trace/hooks/sched.h' line='335' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_uclamp_eff_get'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='335' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='335' column='1'/>
+        <parameter type-id='db819146' name='clamp_id' filepath='include/trace/hooks/sched.h' line='335' column='1'/>
+        <parameter type-id='a1ac03ea' name='uclamp_max' filepath='include/trace/hooks/sched.h' line='335' column='1'/>
+        <parameter type-id='a1ac03ea' name='uclamp_eff' filepath='include/trace/hooks/sched.h' line='335' column='1'/>
+        <parameter type-id='7292109c' name='ret' filepath='include/trace/hooks/sched.h' line='335' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_ufs_complete_init' mangled-name='__traceiter_android_rvh_ufs_complete_init' filepath='include/trace/hooks/ufshcd.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_ufs_complete_init'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='29' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='29' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_ufs_reprogram_all_keys' mangled-name='__traceiter_android_rvh_ufs_reprogram_all_keys' filepath='include/trace/hooks/ufshcd.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_ufs_reprogram_all_keys'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='33' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='33' column='1'/>
+        <parameter type-id='7292109c' name='err' filepath='include/trace/hooks/ufshcd.h' line='33' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_update_cpu_capacity' mangled-name='__traceiter_android_rvh_update_cpu_capacity' filepath='include/trace/hooks/sched.h' line='229' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_update_cpu_capacity'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='229' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='include/trace/hooks/sched.h' line='229' column='1'/>
+        <parameter type-id='1d2c2b85' name='capacity' filepath='include/trace/hooks/sched.h' line='229' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_update_cpus_allowed' mangled-name='__traceiter_android_rvh_update_cpus_allowed' filepath='include/trace/hooks/sched.h' line='160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_update_cpus_allowed'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='160' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='160' column='1'/>
+        <parameter type-id='74bccedd' name='cpus_requested' filepath='include/trace/hooks/sched.h' line='160' column='1'/>
+        <parameter type-id='5f8a1ac4' name='new_mask' filepath='include/trace/hooks/sched.h' line='160' column='1'/>
+        <parameter type-id='7292109c' name='ret' filepath='include/trace/hooks/sched.h' line='160' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_update_misfit_status' mangled-name='__traceiter_android_rvh_update_misfit_status' filepath='include/trace/hooks/sched.h' line='233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_update_misfit_status'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='233' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='233' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='233' column='1'/>
+        <parameter type-id='d8e6b335' name='need_update' filepath='include/trace/hooks/sched.h' line='233' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_update_readahead_gfp_mask' mangled-name='__traceiter_android_rvh_update_readahead_gfp_mask' filepath='include/trace/hooks/mm.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_update_readahead_gfp_mask'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='41' column='1'/>
+        <parameter type-id='f57039f0' name='mapping' filepath='include/trace/hooks/mm.h' line='41' column='1'/>
+        <parameter type-id='831e6e93' name='flags' filepath='include/trace/hooks/mm.h' line='41' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_update_rt_rq_load_avg' mangled-name='__traceiter_android_rvh_update_rt_rq_load_avg' filepath='include/trace/hooks/sched.h' line='431' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_update_rt_rq_load_avg'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='431' column='1'/>
+        <parameter type-id='91ce1af9' name='now' filepath='include/trace/hooks/sched.h' line='431' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='431' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/sched.h' line='431' column='1'/>
+        <parameter type-id='95e97e5e' name='running' filepath='include/trace/hooks/sched.h' line='431' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_update_thermal_stats' mangled-name='__traceiter_android_rvh_update_thermal_stats' filepath='include/trace/hooks/topology.h' line='27' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_update_thermal_stats'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/topology.h' line='27' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='include/trace/hooks/topology.h' line='27' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_update_watermark' mangled-name='__traceiter_android_rvh_update_watermark' filepath='include/trace/hooks/cgroup.h' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_update_watermark'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cgroup.h' line='47' column='1'/>
+        <parameter type-id='91ce1af9' name='new' filepath='include/trace/hooks/cgroup.h' line='47' column='1'/>
+        <parameter type-id='ea7fad85' name='counter' filepath='include/trace/hooks/cgroup.h' line='47' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_util_est_update' mangled-name='__traceiter_android_rvh_util_est_update' filepath='include/trace/hooks/sched.h' line='386' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_util_est_update'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='386' column='1'/>
+        <parameter type-id='a6892387' name='cfs_rq' filepath='include/trace/hooks/sched.h' line='386' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='386' column='1'/>
+        <parameter type-id='b50a4934' name='task_sleep' filepath='include/trace/hooks/sched.h' line='386' column='1'/>
+        <parameter type-id='7292109c' name='ret' filepath='include/trace/hooks/sched.h' line='386' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_rvh_wake_up_new_task' mangled-name='__traceiter_android_rvh_wake_up_new_task' filepath='include/trace/hooks/sched.h' line='181' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_rvh_wake_up_new_task'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='181' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='181' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_account_task_time' mangled-name='__traceiter_android_vh_account_task_time' filepath='include/trace/hooks/sched.h' line='419' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_account_task_time'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='419' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='419' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='419' column='1'/>
+        <parameter type-id='95e97e5e' name='user_tick' filepath='include/trace/hooks/sched.h' line='419' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_add_page_to_lrulist' mangled-name='__traceiter_android_vh_add_page_to_lrulist' filepath='include/trace/hooks/mm.h' line='152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_add_page_to_lrulist'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='152' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/mm.h' line='152' column='1'/>
+        <parameter type-id='b50a4934' name='compound' filepath='include/trace/hooks/mm.h' line='152' column='1'/>
+        <parameter type-id='04110eaa' name='lru' filepath='include/trace/hooks/mm.h' line='152' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_aes_decrypt' mangled-name='__traceiter_android_vh_aes_decrypt' filepath='include/trace/hooks/fips140.h' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_aes_decrypt'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/fips140.h' line='44' column='1'/>
+        <parameter type-id='825271e7' name='ctx' filepath='include/trace/hooks/fips140.h' line='44' column='1'/>
+        <parameter type-id='8bff8096' name='out' filepath='include/trace/hooks/fips140.h' line='44' column='1'/>
+        <parameter type-id='bbaf3419' name='in' filepath='include/trace/hooks/fips140.h' line='44' column='1'/>
+        <parameter type-id='7292109c' name='hook_inuse' filepath='include/trace/hooks/fips140.h' line='44' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_aes_encrypt' mangled-name='__traceiter_android_vh_aes_encrypt' filepath='include/trace/hooks/fips140.h' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_aes_encrypt'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/fips140.h' line='37' column='1'/>
+        <parameter type-id='825271e7' name='ctx' filepath='include/trace/hooks/fips140.h' line='37' column='1'/>
+        <parameter type-id='8bff8096' name='out' filepath='include/trace/hooks/fips140.h' line='37' column='1'/>
+        <parameter type-id='bbaf3419' name='in' filepath='include/trace/hooks/fips140.h' line='37' column='1'/>
+        <parameter type-id='7292109c' name='hook_inuse' filepath='include/trace/hooks/fips140.h' line='37' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_aes_expandkey' mangled-name='__traceiter_android_vh_aes_expandkey' filepath='include/trace/hooks/fips140.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_aes_expandkey'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/fips140.h' line='30' column='1'/>
+        <parameter type-id='21370cb4' name='ctx' filepath='include/trace/hooks/fips140.h' line='30' column='1'/>
+        <parameter type-id='bbaf3419' name='in_key' filepath='include/trace/hooks/fips140.h' line='30' column='1'/>
+        <parameter type-id='f0981eeb' name='key_len' filepath='include/trace/hooks/fips140.h' line='30' column='1'/>
+        <parameter type-id='7292109c' name='err' filepath='include/trace/hooks/fips140.h' line='30' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_alloc_flags_cma_adjust' mangled-name='__traceiter_android_vh_alloc_flags_cma_adjust' filepath='include/trace/hooks/mm.h' line='227' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_alloc_flags_cma_adjust'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='227' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='include/trace/hooks/mm.h' line='227' column='1'/>
+        <parameter type-id='807869d3' name='alloc_flags' filepath='include/trace/hooks/mm.h' line='227' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_alloc_highpage_movable_gfp_adjust' mangled-name='__traceiter_android_vh_alloc_highpage_movable_gfp_adjust' filepath='include/trace/hooks/mm.h' line='209' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_alloc_highpage_movable_gfp_adjust'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='209' column='1'/>
+        <parameter type-id='831e6e93' name='gfp_mask' filepath='include/trace/hooks/mm.h' line='209' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_alloc_pages_failure_bypass' mangled-name='__traceiter_android_vh_alloc_pages_failure_bypass' filepath='include/trace/hooks/mm.h' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_alloc_pages_failure_bypass'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='177' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='include/trace/hooks/mm.h' line='177' column='1'/>
+        <parameter type-id='95e97e5e' name='order' filepath='include/trace/hooks/mm.h' line='177' column='1'/>
+        <parameter type-id='95e97e5e' name='alloc_flags' filepath='include/trace/hooks/mm.h' line='177' column='1'/>
+        <parameter type-id='95e97e5e' name='migratetype' filepath='include/trace/hooks/mm.h' line='177' column='1'/>
+        <parameter type-id='9f93c9da' name='page' filepath='include/trace/hooks/mm.h' line='177' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_alloc_pages_reclaim_bypass' mangled-name='__traceiter_android_vh_alloc_pages_reclaim_bypass' filepath='include/trace/hooks/mm.h' line='173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_alloc_pages_reclaim_bypass'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='173' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='include/trace/hooks/mm.h' line='173' column='1'/>
+        <parameter type-id='95e97e5e' name='order' filepath='include/trace/hooks/mm.h' line='173' column='1'/>
+        <parameter type-id='95e97e5e' name='alloc_flags' filepath='include/trace/hooks/mm.h' line='173' column='1'/>
+        <parameter type-id='95e97e5e' name='migratetype' filepath='include/trace/hooks/mm.h' line='173' column='1'/>
+        <parameter type-id='9f93c9da' name='page' filepath='include/trace/hooks/mm.h' line='173' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_alloc_pages_slowpath' mangled-name='__traceiter_android_vh_alloc_pages_slowpath' filepath='include/trace/hooks/mm.h' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_alloc_pages_slowpath'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='59' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='include/trace/hooks/mm.h' line='59' column='1'/>
+        <parameter type-id='f0981eeb' name='order' filepath='include/trace/hooks/mm.h' line='59' column='1'/>
+        <parameter type-id='7359adad' name='delta' filepath='include/trace/hooks/mm.h' line='59' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_alter_futex_plist_add' mangled-name='__traceiter_android_vh_alter_futex_plist_add' filepath='include/trace/hooks/futex.h' line='24' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_alter_futex_plist_add'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/futex.h' line='24' column='1'/>
+        <parameter type-id='afd8be4a' name='node' filepath='include/trace/hooks/futex.h' line='24' column='1'/>
+        <parameter type-id='63de1ba0' name='head' filepath='include/trace/hooks/futex.h' line='24' column='1'/>
+        <parameter type-id='d8e6b335' name='already_on_hb' filepath='include/trace/hooks/futex.h' line='24' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_alter_mutex_list_add' mangled-name='__traceiter_android_vh_alter_mutex_list_add' filepath='include/trace/hooks/dtask.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_alter_mutex_list_add'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
+        <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
+        <parameter type-id='3ca21ae3' name='waiter' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
+        <parameter type-id='e84b031a' name='list' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
+        <parameter type-id='d8e6b335' name='already_on_list' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_alter_rwsem_list_add' mangled-name='__traceiter_android_vh_alter_rwsem_list_add' filepath='include/trace/hooks/rwsem.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_alter_rwsem_list_add'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/rwsem.h' line='29' column='1'/>
+        <parameter type-id='a48f20d2' name='waiter' filepath='include/trace/hooks/rwsem.h' line='29' column='1'/>
+        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/rwsem.h' line='29' column='1'/>
+        <parameter type-id='d8e6b335' name='already_on_list' filepath='include/trace/hooks/rwsem.h' line='29' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_anon_gfp_adjust' mangled-name='__traceiter_android_vh_anon_gfp_adjust' filepath='include/trace/hooks/mm.h' line='212' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_anon_gfp_adjust'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='212' column='1'/>
+        <parameter type-id='831e6e93' name='gfp_mask' filepath='include/trace/hooks/mm.h' line='212' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_arch_set_freq_scale' mangled-name='__traceiter_android_vh_arch_set_freq_scale' filepath='include/trace/hooks/topology.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_arch_set_freq_scale'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/topology.h' line='18' column='1'/>
+        <parameter type-id='5f8a1ac4' name='cpus' filepath='include/trace/hooks/topology.h' line='18' column='1'/>
+        <parameter type-id='7359adad' name='freq' filepath='include/trace/hooks/topology.h' line='18' column='1'/>
+        <parameter type-id='7359adad' name='max' filepath='include/trace/hooks/topology.h' line='18' column='1'/>
+        <parameter type-id='1d2c2b85' name='scale' filepath='include/trace/hooks/topology.h' line='18' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_atomic_remove_fb' mangled-name='__traceiter_android_vh_atomic_remove_fb' filepath='include/trace/hooks/drm_framebuffer.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_atomic_remove_fb'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/drm_framebuffer.h' line='20' column='1'/>
+        <parameter type-id='7b332e1c' name='fb' filepath='include/trace/hooks/drm_framebuffer.h' line='20' column='1'/>
+        <parameter type-id='d8e6b335' name='allow' filepath='include/trace/hooks/drm_framebuffer.h' line='20' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_audio_usb_offload_connect' mangled-name='__traceiter_android_vh_audio_usb_offload_connect' filepath='include/trace/hooks/audio_usboffload.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_audio_usb_offload_connect'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/audio_usboffload.h' line='34' column='1'/>
+        <parameter type-id='8bf48c31' name='intf' filepath='include/trace/hooks/audio_usboffload.h' line='34' column='1'/>
+        <parameter type-id='d86551c2' name='chip' filepath='include/trace/hooks/audio_usboffload.h' line='34' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_audio_usb_offload_ep_action' mangled-name='__traceiter_android_vh_audio_usb_offload_ep_action' filepath='include/trace/hooks/audio_usboffload.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_audio_usb_offload_ep_action'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/audio_usboffload.h' line='26' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='include/trace/hooks/audio_usboffload.h' line='26' column='1'/>
+        <parameter type-id='b50a4934' name='action' filepath='include/trace/hooks/audio_usboffload.h' line='26' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_audio_usb_offload_suspend' mangled-name='__traceiter_android_vh_audio_usb_offload_suspend' filepath='include/trace/hooks/audio_usboffload.h' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_audio_usb_offload_suspend'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/audio_usboffload.h' line='42' column='1'/>
+        <parameter type-id='06b2cd14' name='substream' filepath='include/trace/hooks/audio_usboffload.h' line='42' column='1'/>
+        <parameter type-id='95e97e5e' name='cmd' filepath='include/trace/hooks/audio_usboffload.h' line='42' column='1'/>
+        <parameter type-id='d8e6b335' name='suspend' filepath='include/trace/hooks/audio_usboffload.h' line='42' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_audio_usb_offload_synctype' mangled-name='__traceiter_android_vh_audio_usb_offload_synctype' filepath='include/trace/hooks/audio_usboffload.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_audio_usb_offload_synctype'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/audio_usboffload.h' line='30' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='include/trace/hooks/audio_usboffload.h' line='30' column='1'/>
+        <parameter type-id='95e97e5e' name='attr' filepath='include/trace/hooks/audio_usboffload.h' line='30' column='1'/>
+        <parameter type-id='d8e6b335' name='need_ignore' filepath='include/trace/hooks/audio_usboffload.h' line='30' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_alloc_new_buf_locked' mangled-name='__traceiter_android_vh_binder_alloc_new_buf_locked' filepath='include/trace/hooks/binder.h' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_alloc_new_buf_locked'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='82' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='include/trace/hooks/binder.h' line='82' column='1'/>
+        <parameter type-id='78c01427' name='free_async_space' filepath='include/trace/hooks/binder.h' line='82' column='1'/>
+        <parameter type-id='95e97e5e' name='is_async' filepath='include/trace/hooks/binder.h' line='82' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_del_ref' mangled-name='__traceiter_android_vh_binder_del_ref' filepath='include/trace/hooks/binder.h' line='104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_del_ref'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='104' column='1'/>
+        <parameter type-id='f23e2572' name='proc' filepath='include/trace/hooks/binder.h' line='104' column='1'/>
+        <parameter type-id='8f92235e' name='ref_desc' filepath='include/trace/hooks/binder.h' line='104' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_free_proc' mangled-name='__traceiter_android_vh_binder_free_proc' filepath='include/trace/hooks/binder.h' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_free_proc'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='70' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='70' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_has_work_ilocked' mangled-name='__traceiter_android_vh_binder_has_work_ilocked' filepath='include/trace/hooks/binder.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_has_work_ilocked'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='79' column='1'/>
+        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='79' column='1'/>
+        <parameter type-id='b50a4934' name='do_proc_work' filepath='include/trace/hooks/binder.h' line='79' column='1'/>
+        <parameter type-id='7292109c' name='ret' filepath='include/trace/hooks/binder.h' line='79' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_looper_state_registered' mangled-name='__traceiter_android_vh_binder_looper_state_registered' filepath='include/trace/hooks/binder.h' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_looper_state_registered'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='63' column='1'/>
+        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='63' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='63' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_new_ref' mangled-name='__traceiter_android_vh_binder_new_ref' filepath='include/trace/hooks/binder.h' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_new_ref'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='101' column='1'/>
+        <parameter type-id='f23e2572' name='proc' filepath='include/trace/hooks/binder.h' line='101' column='1'/>
+        <parameter type-id='8f92235e' name='ref_desc' filepath='include/trace/hooks/binder.h' line='101' column='1'/>
+        <parameter type-id='95e97e5e' name='node_debug_id' filepath='include/trace/hooks/binder.h' line='101' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_preset' mangled-name='__traceiter_android_vh_binder_preset' filepath='include/trace/hooks/binder.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_preset'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='93' column='1'/>
+        <parameter type-id='030d0b18' name='hhead' filepath='include/trace/hooks/binder.h' line='93' column='1'/>
+        <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/binder.h' line='93' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_print_transaction_info' mangled-name='__traceiter_android_vh_binder_print_transaction_info' filepath='include/trace/hooks/binder.h' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_print_transaction_info'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
+        <parameter type-id='f8dc9def' name='m' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
+        <parameter type-id='80f4b756' name='prefix' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
+        <parameter type-id='f4c3bb4c' name='t' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_priority_skip' mangled-name='__traceiter_android_vh_binder_priority_skip' filepath='include/trace/hooks/binder.h' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_priority_skip'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='28' column='1'/>
+        <parameter type-id='f23e2572' name='task' filepath='include/trace/hooks/binder.h' line='28' column='1'/>
+        <parameter type-id='d8e6b335' name='skip' filepath='include/trace/hooks/binder.h' line='28' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_proc_transaction' mangled-name='__traceiter_android_vh_binder_proc_transaction' filepath='include/trace/hooks/binder.h' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_proc_transaction'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
+        <parameter type-id='f23e2572' name='caller_task' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
+        <parameter type-id='f23e2572' name='binder_proc_task' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
+        <parameter type-id='f23e2572' name='binder_th_task' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
+        <parameter type-id='95e97e5e' name='node_debug_id' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
+        <parameter type-id='f0981eeb' name='code' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
+        <parameter type-id='b50a4934' name='pending_async' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_proc_transaction_entry' mangled-name='__traceiter_android_vh_binder_proc_transaction_entry' filepath='include/trace/hooks/binder.h' line='46' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_proc_transaction_entry'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+        <parameter type-id='f4c3bb4c' name='t' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+        <parameter type-id='1ae16c8a' name='thread' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+        <parameter type-id='95e97e5e' name='node_debug_id' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+        <parameter type-id='b50a4934' name='pending_async' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+        <parameter type-id='b50a4934' name='sync' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+        <parameter type-id='d8e6b335' name='skip' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_proc_transaction_finish' mangled-name='__traceiter_android_vh_binder_proc_transaction_finish' filepath='include/trace/hooks/binder.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_proc_transaction_finish'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
+        <parameter type-id='f4c3bb4c' name='t' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
+        <parameter type-id='f23e2572' name='binder_th_task' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
+        <parameter type-id='b50a4934' name='pending_async' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
+        <parameter type-id='b50a4934' name='sync' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_read_done' mangled-name='__traceiter_android_vh_binder_read_done' filepath='include/trace/hooks/binder.h' line='76' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_read_done'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='76' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='76' column='1'/>
+        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='76' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_reply' mangled-name='__traceiter_android_vh_binder_reply' filepath='include/trace/hooks/binder.h' line='85' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_reply'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='85' column='1'/>
+        <parameter type-id='d1cf113c' name='target_proc' filepath='include/trace/hooks/binder.h' line='85' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='85' column='1'/>
+        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='85' column='1'/>
+        <parameter type-id='55866c73' name='tr' filepath='include/trace/hooks/binder.h' line='85' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_restore_priority' mangled-name='__traceiter_android_vh_binder_restore_priority' filepath='include/trace/hooks/binder.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_restore_priority'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='34' column='1'/>
+        <parameter type-id='f4c3bb4c' name='t' filepath='include/trace/hooks/binder.h' line='34' column='1'/>
+        <parameter type-id='f23e2572' name='task' filepath='include/trace/hooks/binder.h' line='34' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_select_worklist_ilocked' mangled-name='__traceiter_android_vh_binder_select_worklist_ilocked' filepath='include/trace/hooks/binder.h' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_select_worklist_ilocked'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='51' column='1'/>
+        <parameter type-id='de160490' name='list' filepath='include/trace/hooks/binder.h' line='51' column='1'/>
+        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='51' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='51' column='1'/>
+        <parameter type-id='95e97e5e' name='wait_for_proc_work' filepath='include/trace/hooks/binder.h' line='51' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_set_priority' mangled-name='__traceiter_android_vh_binder_set_priority' filepath='include/trace/hooks/binder.h' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_set_priority'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='31' column='1'/>
+        <parameter type-id='f4c3bb4c' name='t' filepath='include/trace/hooks/binder.h' line='31' column='1'/>
+        <parameter type-id='f23e2572' name='task' filepath='include/trace/hooks/binder.h' line='31' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_thread_read' mangled-name='__traceiter_android_vh_binder_thread_read' filepath='include/trace/hooks/binder.h' line='66' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_thread_read'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='66' column='1'/>
+        <parameter type-id='de160490' name='list' filepath='include/trace/hooks/binder.h' line='66' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='66' column='1'/>
+        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='66' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_thread_release' mangled-name='__traceiter_android_vh_binder_thread_release' filepath='include/trace/hooks/binder.h' line='73' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_thread_release'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='73' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='73' column='1'/>
+        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='73' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_trans' mangled-name='__traceiter_android_vh_binder_trans' filepath='include/trace/hooks/binder.h' line='89' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_trans'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
+        <parameter type-id='d1cf113c' name='target_proc' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
+        <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
+        <parameter type-id='55866c73' name='tr' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_transaction_init' mangled-name='__traceiter_android_vh_binder_transaction_init' filepath='include/trace/hooks/binder.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_transaction_init'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='25' column='1'/>
+        <parameter type-id='f4c3bb4c' name='t' filepath='include/trace/hooks/binder.h' line='25' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_wait_for_work' mangled-name='__traceiter_android_vh_binder_wait_for_work' filepath='include/trace/hooks/binder.h' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_wait_for_work'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='40' column='1'/>
+        <parameter type-id='b50a4934' name='do_proc_work' filepath='include/trace/hooks/binder.h' line='40' column='1'/>
+        <parameter type-id='dd695fa4' name='tsk' filepath='include/trace/hooks/binder.h' line='40' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='40' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_binder_wakeup_ilocked' mangled-name='__traceiter_android_vh_binder_wakeup_ilocked' filepath='include/trace/hooks/binder.h' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_wakeup_ilocked'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='37' column='1'/>
+        <parameter type-id='f23e2572' name='task' filepath='include/trace/hooks/binder.h' line='37' column='1'/>
+        <parameter type-id='b50a4934' name='sync' filepath='include/trace/hooks/binder.h' line='37' column='1'/>
+        <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='37' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_blk_account_io_done' mangled-name='__traceiter_android_vh_blk_account_io_done' filepath='include/trace/hooks/block.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_blk_account_io_done'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/block.h' line='34' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='include/trace/hooks/block.h' line='34' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_blk_alloc_rqs' mangled-name='__traceiter_android_vh_blk_alloc_rqs' filepath='include/trace/hooks/block.h' line='24' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_blk_alloc_rqs'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/block.h' line='24' column='1'/>
+        <parameter type-id='78c01427' name='rq_size' filepath='include/trace/hooks/block.h' line='24' column='1'/>
+        <parameter type-id='cc26d15f' name='set' filepath='include/trace/hooks/block.h' line='24' column='1'/>
+        <parameter type-id='0461ecf5' name='tags' filepath='include/trace/hooks/block.h' line='24' column='1'/>
+        <parameter type-id='f0981eeb' name='hctx_idx' filepath='include/trace/hooks/block.h' line='24' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_blk_rq_ctx_init' mangled-name='__traceiter_android_vh_blk_rq_ctx_init' filepath='include/trace/hooks/block.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_blk_rq_ctx_init'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/block.h' line='29' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='include/trace/hooks/block.h' line='29' column='1'/>
+        <parameter type-id='0461ecf5' name='tags' filepath='include/trace/hooks/block.h' line='29' column='1'/>
+        <parameter type-id='3620a178' name='data' filepath='include/trace/hooks/block.h' line='29' column='1'/>
+        <parameter type-id='91ce1af9' name='alloc_time_ns' filepath='include/trace/hooks/block.h' line='29' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_build_sched_domains' mangled-name='__traceiter_android_vh_build_sched_domains' filepath='include/trace/hooks/sched.h' line='271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_build_sched_domains'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='271' column='1'/>
+        <parameter type-id='b50a4934' name='has_asym' filepath='include/trace/hooks/sched.h' line='271' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_cache_show' mangled-name='__traceiter_android_vh_cache_show' filepath='include/trace/hooks/mm.h' line='65' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_cache_show'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='65' column='1'/>
+        <parameter type-id='f8dc9def' name='m' filepath='include/trace/hooks/mm.h' line='65' column='1'/>
+        <parameter type-id='d225de01' name='sinfo' filepath='include/trace/hooks/mm.h' line='65' column='1'/>
+        <parameter type-id='f3b4aca8' name='s' filepath='include/trace/hooks/mm.h' line='65' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_cgroup_attach' mangled-name='__traceiter_android_vh_cgroup_attach' filepath='include/trace/hooks/cgroup.h' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_cgroup_attach'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cgroup.h' line='28' column='1'/>
+        <parameter type-id='dc91d125' name='ss' filepath='include/trace/hooks/cgroup.h' line='28' column='1'/>
+        <parameter type-id='8cffa561' name='tset' filepath='include/trace/hooks/cgroup.h' line='28' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_cgroup_set_task' mangled-name='__traceiter_android_vh_cgroup_set_task' filepath='include/trace/hooks/cgroup.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_cgroup_set_task'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cgroup.h' line='22' column='1'/>
+        <parameter type-id='95e97e5e' name='ret' filepath='include/trace/hooks/cgroup.h' line='22' column='1'/>
+        <parameter type-id='f23e2572' name='task' filepath='include/trace/hooks/cgroup.h' line='22' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_check_bpf_syscall' mangled-name='__traceiter_android_vh_check_bpf_syscall' filepath='include/trace/hooks/syscall_check.h' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_check_bpf_syscall'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/syscall_check.h' line='31' column='1'/>
+        <parameter type-id='95e97e5e' name='cmd' filepath='include/trace/hooks/syscall_check.h' line='31' column='1'/>
+        <parameter type-id='2d14cfd8' name='attr' filepath='include/trace/hooks/syscall_check.h' line='31' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='include/trace/hooks/syscall_check.h' line='31' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_check_file_open' mangled-name='__traceiter_android_vh_check_file_open' filepath='include/trace/hooks/syscall_check.h' line='27' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_check_file_open'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/syscall_check.h' line='27' column='1'/>
+        <parameter type-id='5d92c9e0' name='file' filepath='include/trace/hooks/syscall_check.h' line='27' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_check_hibernation_swap' mangled-name='__traceiter_android_vh_check_hibernation_swap' filepath='include/trace/hooks/bl_hib.h' line='14' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_check_hibernation_swap'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/bl_hib.h' line='14' column='1'/>
+        <parameter type-id='b88dd945' name='resume_block' filepath='include/trace/hooks/bl_hib.h' line='14' column='1'/>
+        <parameter type-id='d8e6b335' name='hib_swap' filepath='include/trace/hooks/bl_hib.h' line='14' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_check_mmap_file' mangled-name='__traceiter_android_vh_check_mmap_file' filepath='include/trace/hooks/syscall_check.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_check_mmap_file'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/syscall_check.h' line='22' column='1'/>
+        <parameter type-id='5d92c9e0' name='file' filepath='include/trace/hooks/syscall_check.h' line='22' column='1'/>
+        <parameter type-id='7359adad' name='prot' filepath='include/trace/hooks/syscall_check.h' line='22' column='1'/>
+        <parameter type-id='7359adad' name='flag' filepath='include/trace/hooks/syscall_check.h' line='22' column='1'/>
+        <parameter type-id='7359adad' name='ret' filepath='include/trace/hooks/syscall_check.h' line='22' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_check_page_look_around_ref' mangled-name='__traceiter_android_vh_check_page_look_around_ref' filepath='include/trace/hooks/vmscan.h' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_check_page_look_around_ref'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/vmscan.h' line='54' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/vmscan.h' line='54' column='1'/>
+        <parameter type-id='7292109c' name='skip' filepath='include/trace/hooks/vmscan.h' line='54' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_check_uninterruptible_tasks' mangled-name='__traceiter_android_vh_check_uninterruptible_tasks' filepath='include/trace/hooks/hung_task.h' line='12' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_check_uninterruptible_tasks'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/hung_task.h' line='12' column='1'/>
+        <parameter type-id='f23e2572' name='t' filepath='include/trace/hooks/hung_task.h' line='12' column='1'/>
+        <parameter type-id='7359adad' name='timeout' filepath='include/trace/hooks/hung_task.h' line='12' column='1'/>
+        <parameter type-id='d8e6b335' name='need_check' filepath='include/trace/hooks/hung_task.h' line='12' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_check_uninterruptible_tasks_dn' mangled-name='__traceiter_android_vh_check_uninterruptible_tasks_dn' filepath='include/trace/hooks/hung_task.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_check_uninterruptible_tasks_dn'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/hung_task.h' line='17' column='1'/>
+        <parameter type-id='eaa32e2f' name='unused' filepath='include/trace/hooks/hung_task.h' line='17' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_cleanup_old_buffers_bypass' mangled-name='__traceiter_android_vh_cleanup_old_buffers_bypass' filepath='include/trace/hooks/mm.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_cleanup_old_buffers_bypass'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='79' column='1'/>
+        <parameter type-id='7359adad' name='dm_bufio_current_allocated' filepath='include/trace/hooks/mm.h' line='79' column='1'/>
+        <parameter type-id='1d2c2b85' name='max_age_hz' filepath='include/trace/hooks/mm.h' line='79' column='1'/>
+        <parameter type-id='d8e6b335' name='bypass' filepath='include/trace/hooks/mm.h' line='79' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_clear_page_migrating' mangled-name='__traceiter_android_vh_clear_page_migrating' filepath='include/trace/hooks/mm.h' line='249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_clear_page_migrating'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='249' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/mm.h' line='249' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_cma_alloc_retry' mangled-name='__traceiter_android_vh_cma_alloc_retry' filepath='include/trace/hooks/mm.h' line='121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_cma_alloc_retry'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='121' column='1'/>
+        <parameter type-id='26a90f95' name='name' filepath='include/trace/hooks/mm.h' line='121' column='1'/>
+        <parameter type-id='7292109c' name='retry' filepath='include/trace/hooks/mm.h' line='121' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_cma_drain_all_pages_bypass' mangled-name='__traceiter_android_vh_cma_drain_all_pages_bypass' filepath='include/trace/hooks/mm.h' line='84' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_cma_drain_all_pages_bypass'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='84' column='1'/>
+        <parameter type-id='f0981eeb' name='migratetype' filepath='include/trace/hooks/mm.h' line='84' column='1'/>
+        <parameter type-id='d8e6b335' name='bypass' filepath='include/trace/hooks/mm.h' line='84' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_compact_finished' mangled-name='__traceiter_android_vh_compact_finished' filepath='include/trace/hooks/mm.h' line='221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_compact_finished'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='221' column='1'/>
+        <parameter type-id='d8e6b335' name='abort_compact' filepath='include/trace/hooks/mm.h' line='221' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_cpu_idle_enter' mangled-name='__traceiter_android_vh_cpu_idle_enter' filepath='include/trace/hooks/cpuidle.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_cpu_idle_enter'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cpuidle.h' line='18' column='1'/>
+        <parameter type-id='7292109c' name='state' filepath='include/trace/hooks/cpuidle.h' line='18' column='1'/>
+        <parameter type-id='1b0e1d00' name='dev' filepath='include/trace/hooks/cpuidle.h' line='18' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_cpu_idle_exit' mangled-name='__traceiter_android_vh_cpu_idle_exit' filepath='include/trace/hooks/cpuidle.h' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_cpu_idle_exit'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cpuidle.h' line='21' column='1'/>
+        <parameter type-id='95e97e5e' name='state' filepath='include/trace/hooks/cpuidle.h' line='21' column='1'/>
+        <parameter type-id='1b0e1d00' name='dev' filepath='include/trace/hooks/cpuidle.h' line='21' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_cpufreq_acct_update_power' mangled-name='__traceiter_android_vh_cpufreq_acct_update_power' filepath='include/trace/hooks/cpufreq.h' line='27' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_cpufreq_acct_update_power'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cpufreq.h' line='27' column='1'/>
+        <parameter type-id='91ce1af9' name='cputime' filepath='include/trace/hooks/cpufreq.h' line='27' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/cpufreq.h' line='27' column='1'/>
+        <parameter type-id='f0981eeb' name='state' filepath='include/trace/hooks/cpufreq.h' line='27' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_cpufreq_fast_switch' mangled-name='__traceiter_android_vh_cpufreq_fast_switch' filepath='include/trace/hooks/cpufreq.h' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_cpufreq_fast_switch'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cpufreq.h' line='40' column='1'/>
+        <parameter type-id='343c3ae4' name='policy' filepath='include/trace/hooks/cpufreq.h' line='40' column='1'/>
+        <parameter type-id='807869d3' name='target_freq' filepath='include/trace/hooks/cpufreq.h' line='40' column='1'/>
+        <parameter type-id='f0981eeb' name='old_target_freq' filepath='include/trace/hooks/cpufreq.h' line='40' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_cpufreq_offline' mangled-name='__traceiter_android_vh_cpufreq_offline' filepath='include/trace/hooks/cpufreq.h' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_cpufreq_offline'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cpufreq.h' line='50' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='include/trace/hooks/cpufreq.h' line='50' column='1'/>
+        <parameter type-id='95e97e5e' name='val' filepath='include/trace/hooks/cpufreq.h' line='50' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_cpufreq_resolve_freq' mangled-name='__traceiter_android_vh_cpufreq_resolve_freq' filepath='include/trace/hooks/cpufreq.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_cpufreq_resolve_freq'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cpufreq.h' line='35' column='1'/>
+        <parameter type-id='343c3ae4' name='policy' filepath='include/trace/hooks/cpufreq.h' line='35' column='1'/>
+        <parameter type-id='807869d3' name='target_freq' filepath='include/trace/hooks/cpufreq.h' line='35' column='1'/>
+        <parameter type-id='f0981eeb' name='old_target_freq' filepath='include/trace/hooks/cpufreq.h' line='35' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_cpufreq_target' mangled-name='__traceiter_android_vh_cpufreq_target' filepath='include/trace/hooks/cpufreq.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_cpufreq_target'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cpufreq.h' line='45' column='1'/>
+        <parameter type-id='343c3ae4' name='policy' filepath='include/trace/hooks/cpufreq.h' line='45' column='1'/>
+        <parameter type-id='807869d3' name='target_freq' filepath='include/trace/hooks/cpufreq.h' line='45' column='1'/>
+        <parameter type-id='f0981eeb' name='old_target_freq' filepath='include/trace/hooks/cpufreq.h' line='45' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_cpuidle_psci_enter' mangled-name='__traceiter_android_vh_cpuidle_psci_enter' filepath='include/trace/hooks/cpuidle_psci.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_cpuidle_psci_enter'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cpuidle_psci.h' line='19' column='1'/>
+        <parameter type-id='1b0e1d00' name='dev' filepath='include/trace/hooks/cpuidle_psci.h' line='19' column='1'/>
+        <parameter type-id='b50a4934' name='s2idle' filepath='include/trace/hooks/cpuidle_psci.h' line='19' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_cpuidle_psci_exit' mangled-name='__traceiter_android_vh_cpuidle_psci_exit' filepath='include/trace/hooks/cpuidle_psci.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_cpuidle_psci_exit'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/cpuidle_psci.h' line='23' column='1'/>
+        <parameter type-id='1b0e1d00' name='dev' filepath='include/trace/hooks/cpuidle_psci.h' line='23' column='1'/>
+        <parameter type-id='b50a4934' name='s2idle' filepath='include/trace/hooks/cpuidle_psci.h' line='23' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_del_page_from_lrulist' mangled-name='__traceiter_android_vh_del_page_from_lrulist' filepath='include/trace/hooks/mm.h' line='155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_del_page_from_lrulist'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='155' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/mm.h' line='155' column='1'/>
+        <parameter type-id='b50a4934' name='compound' filepath='include/trace/hooks/mm.h' line='155' column='1'/>
+        <parameter type-id='04110eaa' name='lru' filepath='include/trace/hooks/mm.h' line='155' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_direct_io_update_bio' mangled-name='__traceiter_android_vh_direct_io_update_bio' filepath='include/trace/hooks/direct_io.h' line='14' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_direct_io_update_bio'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/direct_io.h' line='14' column='1'/>
+        <parameter type-id='80f25feb' name='iocb' filepath='include/trace/hooks/direct_io.h' line='14' column='1'/>
+        <parameter type-id='fb55efa1' name='bio' filepath='include/trace/hooks/direct_io.h' line='14' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_disable_thermal_cooling_stats' mangled-name='__traceiter_android_vh_disable_thermal_cooling_stats' filepath='include/trace/hooks/thermal.h' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_disable_thermal_cooling_stats'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='53' column='1'/>
+        <parameter type-id='2feec21f' name='cdev' filepath='include/trace/hooks/thermal.h' line='53' column='1'/>
+        <parameter type-id='7292109c' name='disable_stats' filepath='include/trace/hooks/thermal.h' line='53' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_dm_bufio_shrink_scan_bypass' mangled-name='__traceiter_android_vh_dm_bufio_shrink_scan_bypass' filepath='include/trace/hooks/mm.h' line='76' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_dm_bufio_shrink_scan_bypass'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='76' column='1'/>
+        <parameter type-id='7359adad' name='dm_bufio_current_allocated' filepath='include/trace/hooks/mm.h' line='76' column='1'/>
+        <parameter type-id='d8e6b335' name='bypass' filepath='include/trace/hooks/mm.h' line='76' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_dm_update_clone_bio' mangled-name='__traceiter_android_vh_dm_update_clone_bio' filepath='include/trace/hooks/dm.h' line='14' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_dm_update_clone_bio'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dm.h' line='14' column='1'/>
+        <parameter type-id='fb55efa1' name='clone' filepath='include/trace/hooks/dm.h' line='14' column='1'/>
+        <parameter type-id='fb55efa1' name='bio' filepath='include/trace/hooks/dm.h' line='14' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_dma_buf_release' mangled-name='__traceiter_android_vh_dma_buf_release' filepath='include/trace/hooks/dmabuf.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_dma_buf_release'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dmabuf.h' line='20' column='1'/>
+        <parameter type-id='5e4f599b' name='data' filepath='include/trace/hooks/dmabuf.h' line='20' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_dmabuf_heap_flags_validation' mangled-name='__traceiter_android_vh_dmabuf_heap_flags_validation' filepath='include/trace/hooks/dmabuf.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_dmabuf_heap_flags_validation'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dmabuf.h' line='25' column='1'/>
+        <parameter type-id='ea1bdaf6' name='heap' filepath='include/trace/hooks/dmabuf.h' line='25' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='include/trace/hooks/dmabuf.h' line='25' column='1'/>
+        <parameter type-id='f0981eeb' name='fd_flags' filepath='include/trace/hooks/dmabuf.h' line='25' column='1'/>
+        <parameter type-id='f0981eeb' name='heap_flags' filepath='include/trace/hooks/dmabuf.h' line='25' column='1'/>
+        <parameter type-id='d8e6b335' name='skip' filepath='include/trace/hooks/dmabuf.h' line='25' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_do_futex' mangled-name='__traceiter_android_vh_do_futex' filepath='include/trace/hooks/futex.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_do_futex'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/futex.h' line='34' column='1'/>
+        <parameter type-id='95e97e5e' name='cmd' filepath='include/trace/hooks/futex.h' line='34' column='1'/>
+        <parameter type-id='807869d3' name='flags' filepath='include/trace/hooks/futex.h' line='34' column='1'/>
+        <parameter type-id='f9409001' name='uaddr2' filepath='include/trace/hooks/futex.h' line='34' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_do_page_trylock' mangled-name='__traceiter_android_vh_do_page_trylock' filepath='include/trace/hooks/mm.h' line='144' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_do_page_trylock'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='144' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/mm.h' line='144' column='1'/>
+        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/mm.h' line='144' column='1'/>
+        <parameter type-id='d8e6b335' name='got_lock' filepath='include/trace/hooks/mm.h' line='144' column='1'/>
+        <parameter type-id='d8e6b335' name='success' filepath='include/trace/hooks/mm.h' line='144' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_do_send_sig_info' mangled-name='__traceiter_android_vh_do_send_sig_info' filepath='include/trace/hooks/signal.h' line='12' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_do_send_sig_info'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/signal.h' line='12' column='1'/>
+        <parameter type-id='95e97e5e' name='sig' filepath='include/trace/hooks/signal.h' line='12' column='1'/>
+        <parameter type-id='f23e2572' name='killer' filepath='include/trace/hooks/signal.h' line='12' column='1'/>
+        <parameter type-id='f23e2572' name='dst' filepath='include/trace/hooks/signal.h' line='12' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_do_traversal_lruvec' mangled-name='__traceiter_android_vh_do_traversal_lruvec' filepath='include/trace/hooks/mm.h' line='161' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_do_traversal_lruvec'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='161' column='1'/>
+        <parameter type-id='71480a3e' name='lruvec' filepath='include/trace/hooks/mm.h' line='161' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_do_wake_up_sync' mangled-name='__traceiter_android_vh_do_wake_up_sync' filepath='include/trace/hooks/sched.h' line='394' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_do_wake_up_sync'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='394' column='1'/>
+        <parameter type-id='3f8b2ed3' name='wq_head' filepath='include/trace/hooks/sched.h' line='394' column='1'/>
+        <parameter type-id='7292109c' name='done' filepath='include/trace/hooks/sched.h' line='394' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_drain_all_pages_bypass' mangled-name='__traceiter_android_vh_drain_all_pages_bypass' filepath='include/trace/hooks/mm.h' line='71' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_drain_all_pages_bypass'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='71' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='include/trace/hooks/mm.h' line='71' column='1'/>
+        <parameter type-id='f0981eeb' name='order' filepath='include/trace/hooks/mm.h' line='71' column='1'/>
+        <parameter type-id='7359adad' name='alloc_flags' filepath='include/trace/hooks/mm.h' line='71' column='1'/>
+        <parameter type-id='95e97e5e' name='migratetype' filepath='include/trace/hooks/mm.h' line='71' column='1'/>
+        <parameter type-id='7359adad' name='did_some_progress' filepath='include/trace/hooks/mm.h' line='71' column='1'/>
+        <parameter type-id='d8e6b335' name='bypass' filepath='include/trace/hooks/mm.h' line='71' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_drm_atomic_check_modeset' mangled-name='__traceiter_android_vh_drm_atomic_check_modeset' filepath='include/trace/hooks/drm_atomic.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_drm_atomic_check_modeset'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/drm_atomic.h' line='22' column='1'/>
+        <parameter type-id='e3dd029e' name='state' filepath='include/trace/hooks/drm_atomic.h' line='22' column='1'/>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='include/trace/hooks/drm_atomic.h' line='22' column='1'/>
+        <parameter type-id='d8e6b335' name='allow' filepath='include/trace/hooks/drm_atomic.h' line='22' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_dump_throttled_rt_tasks' mangled-name='__traceiter_android_vh_dump_throttled_rt_tasks' filepath='include/trace/hooks/sched.h' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_dump_throttled_rt_tasks'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='96' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='include/trace/hooks/sched.h' line='96' column='1'/>
+        <parameter type-id='91ce1af9' name='clock' filepath='include/trace/hooks/sched.h' line='96' column='1'/>
+        <parameter type-id='fbc017ef' name='rt_period' filepath='include/trace/hooks/sched.h' line='96' column='1'/>
+        <parameter type-id='91ce1af9' name='rt_runtime' filepath='include/trace/hooks/sched.h' line='96' column='1'/>
+        <parameter type-id='9b7c55ef' name='rt_period_timer_expires' filepath='include/trace/hooks/sched.h' line='96' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_dup_task_struct' mangled-name='__traceiter_android_vh_dup_task_struct' filepath='include/trace/hooks/sched.h' line='415' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_dup_task_struct'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='415' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/sched.h' line='415' column='1'/>
+        <parameter type-id='f23e2572' name='orig' filepath='include/trace/hooks/sched.h' line='415' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_enable_thermal_power_throttle' mangled-name='__traceiter_android_vh_enable_thermal_power_throttle' filepath='include/trace/hooks/thermal.h' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_enable_thermal_power_throttle'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='37' column='1'/>
+        <parameter type-id='d8e6b335' name='enable' filepath='include/trace/hooks/thermal.h' line='37' column='1'/>
+        <parameter type-id='d8e6b335' name='override' filepath='include/trace/hooks/thermal.h' line='37' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_encrypt_page' mangled-name='__traceiter_android_vh_encrypt_page' filepath='include/trace/hooks/bl_hib.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_encrypt_page'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/bl_hib.h' line='26' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='include/trace/hooks/bl_hib.h' line='26' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_exit_mm' mangled-name='__traceiter_android_vh_exit_mm' filepath='include/trace/hooks/mm.h' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_exit_mm'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='53' column='1'/>
+        <parameter type-id='df4b7819' name='mm' filepath='include/trace/hooks/mm.h' line='53' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_exit_signal' mangled-name='__traceiter_android_vh_exit_signal' filepath='include/trace/hooks/signal.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_exit_signal'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/signal.h' line='18' column='1'/>
+        <parameter type-id='f23e2572' name='task' filepath='include/trace/hooks/signal.h' line='18' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_free_one_page_bypass' mangled-name='__traceiter_android_vh_free_one_page_bypass' filepath='include/trace/hooks/mm.h' line='202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_free_one_page_bypass'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='202' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/mm.h' line='202' column='1'/>
+        <parameter type-id='0a0aff97' name='zone' filepath='include/trace/hooks/mm.h' line='202' column='1'/>
+        <parameter type-id='95e97e5e' name='order' filepath='include/trace/hooks/mm.h' line='202' column='1'/>
+        <parameter type-id='95e97e5e' name='migratetype' filepath='include/trace/hooks/mm.h' line='202' column='1'/>
+        <parameter type-id='95e97e5e' name='fpi_flags' filepath='include/trace/hooks/mm.h' line='202' column='1'/>
+        <parameter type-id='d8e6b335' name='bypass' filepath='include/trace/hooks/mm.h' line='202' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_free_task' mangled-name='__traceiter_android_vh_free_task' filepath='include/trace/hooks/sched.h' line='321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_free_task'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='321' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='321' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_free_unref_page_bypass' mangled-name='__traceiter_android_vh_free_unref_page_bypass' filepath='include/trace/hooks/mm.h' line='90' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_free_unref_page_bypass'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='90' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/mm.h' line='90' column='1'/>
+        <parameter type-id='95e97e5e' name='order' filepath='include/trace/hooks/mm.h' line='90' column='1'/>
+        <parameter type-id='95e97e5e' name='migratetype' filepath='include/trace/hooks/mm.h' line='90' column='1'/>
+        <parameter type-id='d8e6b335' name='bypass' filepath='include/trace/hooks/mm.h' line='90' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_freq_qos_add_request' mangled-name='__traceiter_android_vh_freq_qos_add_request' filepath='include/trace/hooks/power.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_freq_qos_add_request'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/power.h' line='35' column='1'/>
+        <parameter type-id='1351457a' name='qos' filepath='include/trace/hooks/power.h' line='35' column='1'/>
+        <parameter type-id='3fdf7ca3' name='req' filepath='include/trace/hooks/power.h' line='35' column='1'/>
+        <parameter type-id='1df5cca8' name='type' filepath='include/trace/hooks/power.h' line='35' column='1'/>
+        <parameter type-id='95e97e5e' name='value' filepath='include/trace/hooks/power.h' line='35' column='1'/>
+        <parameter type-id='95e97e5e' name='ret' filepath='include/trace/hooks/power.h' line='35' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_freq_qos_remove_request' mangled-name='__traceiter_android_vh_freq_qos_remove_request' filepath='include/trace/hooks/power.h' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_freq_qos_remove_request'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/power.h' line='44' column='1'/>
+        <parameter type-id='3fdf7ca3' name='req' filepath='include/trace/hooks/power.h' line='44' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_freq_qos_update_request' mangled-name='__traceiter_android_vh_freq_qos_update_request' filepath='include/trace/hooks/power.h' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_freq_qos_update_request'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/power.h' line='40' column='1'/>
+        <parameter type-id='3fdf7ca3' name='req' filepath='include/trace/hooks/power.h' line='40' column='1'/>
+        <parameter type-id='95e97e5e' name='value' filepath='include/trace/hooks/power.h' line='40' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ftrace_dump_buffer' mangled-name='__traceiter_android_vh_ftrace_dump_buffer' filepath='include/trace/hooks/ftrace_dump.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ftrace_dump_buffer'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ftrace_dump.h' line='34' column='1'/>
+        <parameter type-id='fc932690' name='trace_buf' filepath='include/trace/hooks/ftrace_dump.h' line='34' column='1'/>
+        <parameter type-id='d8e6b335' name='dump_printk' filepath='include/trace/hooks/ftrace_dump.h' line='34' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ftrace_format_check' mangled-name='__traceiter_android_vh_ftrace_format_check' filepath='include/trace/hooks/ftrace_dump.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ftrace_format_check'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ftrace_dump.h' line='30' column='1'/>
+        <parameter type-id='d8e6b335' name='ftrace_check' filepath='include/trace/hooks/ftrace_dump.h' line='30' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ftrace_oops_enter' mangled-name='__traceiter_android_vh_ftrace_oops_enter' filepath='include/trace/hooks/ftrace_dump.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ftrace_oops_enter'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ftrace_dump.h' line='18' column='1'/>
+        <parameter type-id='d8e6b335' name='ftrace_check' filepath='include/trace/hooks/ftrace_dump.h' line='18' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ftrace_oops_exit' mangled-name='__traceiter_android_vh_ftrace_oops_exit' filepath='include/trace/hooks/ftrace_dump.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ftrace_oops_exit'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ftrace_dump.h' line='22' column='1'/>
+        <parameter type-id='d8e6b335' name='ftrace_check' filepath='include/trace/hooks/ftrace_dump.h' line='22' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ftrace_size_check' mangled-name='__traceiter_android_vh_ftrace_size_check' filepath='include/trace/hooks/ftrace_dump.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ftrace_size_check'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ftrace_dump.h' line='26' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='include/trace/hooks/ftrace_dump.h' line='26' column='1'/>
+        <parameter type-id='d8e6b335' name='ftrace_check' filepath='include/trace/hooks/ftrace_dump.h' line='26' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_futex_sleep_start' mangled-name='__traceiter_android_vh_futex_sleep_start' filepath='include/trace/hooks/futex.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_futex_sleep_start'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/futex.h' line='30' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/futex.h' line='30' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_futex_wait_end' mangled-name='__traceiter_android_vh_futex_wait_end' filepath='include/trace/hooks/futex.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_futex_wait_end'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/futex.h' line='45' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='include/trace/hooks/futex.h' line='45' column='1'/>
+        <parameter type-id='19c2251e' name='bitset' filepath='include/trace/hooks/futex.h' line='45' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_futex_wait_start' mangled-name='__traceiter_android_vh_futex_wait_start' filepath='include/trace/hooks/futex.h' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_futex_wait_start'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/futex.h' line='40' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='include/trace/hooks/futex.h' line='40' column='1'/>
+        <parameter type-id='19c2251e' name='bitset' filepath='include/trace/hooks/futex.h' line='40' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_futex_wake_this' mangled-name='__traceiter_android_vh_futex_wake_this' filepath='include/trace/hooks/futex.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_futex_wake_this'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/futex.h' line='55' column='1'/>
+        <parameter type-id='95e97e5e' name='ret' filepath='include/trace/hooks/futex.h' line='55' column='1'/>
+        <parameter type-id='95e97e5e' name='nr_wake' filepath='include/trace/hooks/futex.h' line='55' column='1'/>
+        <parameter type-id='95e97e5e' name='target_nr' filepath='include/trace/hooks/futex.h' line='55' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/futex.h' line='55' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_futex_wake_traverse_plist' mangled-name='__traceiter_android_vh_futex_wake_traverse_plist' filepath='include/trace/hooks/futex.h' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_futex_wake_traverse_plist'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/futex.h' line='50' column='1'/>
+        <parameter type-id='63de1ba0' name='chain' filepath='include/trace/hooks/futex.h' line='50' column='1'/>
+        <parameter type-id='7292109c' name='target_nr' filepath='include/trace/hooks/futex.h' line='50' column='1'/>
+        <parameter type-id='cbf1908e' name='key' filepath='include/trace/hooks/futex.h' line='50' column='1'/>
+        <parameter type-id='19c2251e' name='bitset' filepath='include/trace/hooks/futex.h' line='50' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_futex_wake_up_q_finish' mangled-name='__traceiter_android_vh_futex_wake_up_q_finish' filepath='include/trace/hooks/futex.h' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_futex_wake_up_q_finish'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/futex.h' line='60' column='1'/>
+        <parameter type-id='95e97e5e' name='nr_wake' filepath='include/trace/hooks/futex.h' line='60' column='1'/>
+        <parameter type-id='95e97e5e' name='target_nr' filepath='include/trace/hooks/futex.h' line='60' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_get_thermal_zone_device' mangled-name='__traceiter_android_vh_get_thermal_zone_device' filepath='include/trace/hooks/thermal.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_get_thermal_zone_device'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='49' column='1'/>
+        <parameter type-id='404b1300' name='tz' filepath='include/trace/hooks/thermal.h' line='49' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_gic_resume' mangled-name='__traceiter_android_vh_gic_resume' filepath='include/trace/hooks/gic_v3.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_gic_resume'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/gic_v3.h' line='32' column='1'/>
+        <parameter type-id='174bf37c' name='gd' filepath='include/trace/hooks/gic_v3.h' line='32' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_gic_set_affinity' mangled-name='__traceiter_android_vh_gic_set_affinity' filepath='include/trace/hooks/gic.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_gic_set_affinity'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/gic.h' line='26' column='1'/>
+        <parameter type-id='1c475548' name='d' filepath='include/trace/hooks/gic.h' line='26' column='1'/>
+        <parameter type-id='5f8a1ac4' name='mask_val' filepath='include/trace/hooks/gic.h' line='26' column='1'/>
+        <parameter type-id='b50a4934' name='force' filepath='include/trace/hooks/gic.h' line='26' column='1'/>
+        <parameter type-id='8bff8096' name='gic_cpu_map' filepath='include/trace/hooks/gic.h' line='26' column='1'/>
+        <parameter type-id='eaa32e2f' name='reg' filepath='include/trace/hooks/gic.h' line='26' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_gic_suspend' mangled-name='__traceiter_android_vh_gic_suspend' filepath='include/trace/hooks/gic_v3.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_gic_suspend'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/gic_v3.h' line='35' column='1'/>
+        <parameter type-id='174bf37c' name='gd' filepath='include/trace/hooks/gic_v3.h' line='35' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_gic_v2_resume' mangled-name='__traceiter_android_vh_gic_v2_resume' filepath='include/trace/hooks/gic.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_gic_v2_resume'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/gic.h' line='22' column='1'/>
+        <parameter type-id='7544e824' name='domain' filepath='include/trace/hooks/gic.h' line='22' column='1'/>
+        <parameter type-id='eaa32e2f' name='dist_base' filepath='include/trace/hooks/gic.h' line='22' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_handle_failed_page_trylock' mangled-name='__traceiter_android_vh_handle_failed_page_trylock' filepath='include/trace/hooks/vmscan.h' line='24' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_handle_failed_page_trylock'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/vmscan.h' line='24' column='1'/>
+        <parameter type-id='e84b031a' name='page_list' filepath='include/trace/hooks/vmscan.h' line='24' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_handle_tlb_conf' mangled-name='__traceiter_android_vh_handle_tlb_conf' filepath='include/trace/hooks/fault.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_handle_tlb_conf'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/fault.h' line='33' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='include/trace/hooks/fault.h' line='33' column='1'/>
+        <parameter type-id='f0981eeb' name='esr' filepath='include/trace/hooks/fault.h' line='33' column='1'/>
+        <parameter type-id='7292109c' name='ret' filepath='include/trace/hooks/fault.h' line='33' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_init_aes_encrypt' mangled-name='__traceiter_android_vh_init_aes_encrypt' filepath='include/trace/hooks/bl_hib.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_init_aes_encrypt'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/bl_hib.h' line='30' column='1'/>
+        <parameter type-id='eaa32e2f' name='unused' filepath='include/trace/hooks/bl_hib.h' line='30' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_iommu_iovad_alloc_iova' mangled-name='__traceiter_android_vh_iommu_iovad_alloc_iova' filepath='include/trace/hooks/iommu.h' line='24' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_iommu_iovad_alloc_iova'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/iommu.h' line='24' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='include/trace/hooks/iommu.h' line='24' column='1'/>
+        <parameter type-id='0c2c419d' name='iovad' filepath='include/trace/hooks/iommu.h' line='24' column='1'/>
+        <parameter type-id='cf29c9b3' name='iova' filepath='include/trace/hooks/iommu.h' line='24' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='include/trace/hooks/iommu.h' line='24' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_iommu_iovad_free_iova' mangled-name='__traceiter_android_vh_iommu_iovad_free_iova' filepath='include/trace/hooks/iommu.h' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_iommu_iovad_free_iova'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/iommu.h' line='28' column='1'/>
+        <parameter type-id='0c2c419d' name='iovad' filepath='include/trace/hooks/iommu.h' line='28' column='1'/>
+        <parameter type-id='cf29c9b3' name='iova' filepath='include/trace/hooks/iommu.h' line='28' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='include/trace/hooks/iommu.h' line='28' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ipi_stop' mangled-name='__traceiter_android_vh_ipi_stop' filepath='include/trace/hooks/debug.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ipi_stop'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/debug.h' line='18' column='1'/>
+        <parameter type-id='4616a179' name='regs' filepath='include/trace/hooks/debug.h' line='18' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_irqtime_account_process_tick' mangled-name='__traceiter_android_vh_irqtime_account_process_tick' filepath='include/trace/hooks/sched.h' line='325' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_irqtime_account_process_tick'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='325' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='325' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='325' column='1'/>
+        <parameter type-id='95e97e5e' name='user_tick' filepath='include/trace/hooks/sched.h' line='325' column='1'/>
+        <parameter type-id='95e97e5e' name='ticks' filepath='include/trace/hooks/sched.h' line='325' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_is_fpsimd_save' mangled-name='__traceiter_android_vh_is_fpsimd_save' filepath='include/trace/hooks/fpsimd.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_is_fpsimd_save'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/fpsimd.h' line='18' column='1'/>
+        <parameter type-id='f23e2572' name='prev' filepath='include/trace/hooks/fpsimd.h' line='18' column='1'/>
+        <parameter type-id='f23e2572' name='next' filepath='include/trace/hooks/fpsimd.h' line='18' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_jiffies_update' mangled-name='__traceiter_android_vh_jiffies_update' filepath='include/trace/hooks/sched.h' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_jiffies_update'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='101' column='1'/>
+        <parameter type-id='eaa32e2f' name='unused' filepath='include/trace/hooks/sched.h' line='101' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_killed_process' mangled-name='__traceiter_android_vh_killed_process' filepath='include/trace/hooks/signal.h' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_killed_process'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/signal.h' line='21' column='1'/>
+        <parameter type-id='f23e2572' name='killer' filepath='include/trace/hooks/signal.h' line='21' column='1'/>
+        <parameter type-id='f23e2572' name='dst' filepath='include/trace/hooks/signal.h' line='21' column='1'/>
+        <parameter type-id='d8e6b335' name='reap' filepath='include/trace/hooks/signal.h' line='21' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_kmalloc_order_alloced' mangled-name='__traceiter_android_vh_kmalloc_order_alloced' filepath='include/trace/hooks/mm.h' line='218' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_kmalloc_order_alloced'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='218' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/mm.h' line='218' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='include/trace/hooks/mm.h' line='218' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='include/trace/hooks/mm.h' line='218' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_kmalloc_slab' mangled-name='__traceiter_android_vh_kmalloc_slab' filepath='include/trace/hooks/mm.h' line='190' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_kmalloc_slab'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='190' column='1'/>
+        <parameter type-id='f0981eeb' name='index' filepath='include/trace/hooks/mm.h' line='190' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='include/trace/hooks/mm.h' line='190' column='1'/>
+        <parameter type-id='276b90a6' name='s' filepath='include/trace/hooks/mm.h' line='190' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_kswapd_per_node' mangled-name='__traceiter_android_vh_kswapd_per_node' filepath='include/trace/hooks/vmscan.h' line='15' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_kswapd_per_node'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/vmscan.h' line='15' column='1'/>
+        <parameter type-id='95e97e5e' name='nid' filepath='include/trace/hooks/vmscan.h' line='15' column='1'/>
+        <parameter type-id='d8e6b335' name='skip' filepath='include/trace/hooks/vmscan.h' line='15' column='1'/>
+        <parameter type-id='b50a4934' name='run' filepath='include/trace/hooks/vmscan.h' line='15' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_kvmalloc_node_use_vmalloc' mangled-name='__traceiter_android_vh_kvmalloc_node_use_vmalloc' filepath='include/trace/hooks/mm.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_kvmalloc_node_use_vmalloc'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='93' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='include/trace/hooks/mm.h' line='93' column='1'/>
+        <parameter type-id='831e6e93' name='kmalloc_flags' filepath='include/trace/hooks/mm.h' line='93' column='1'/>
+        <parameter type-id='d8e6b335' name='use_vmalloc' filepath='include/trace/hooks/mm.h' line='93' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_logbuf' mangled-name='__traceiter_android_vh_logbuf' filepath='include/trace/hooks/logbuf.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_logbuf'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/logbuf.h' line='19' column='1'/>
+        <parameter type-id='eb711f18' name='rb' filepath='include/trace/hooks/logbuf.h' line='19' column='1'/>
+        <parameter type-id='81955d27' name='r' filepath='include/trace/hooks/logbuf.h' line='19' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_logbuf_pr_cont' mangled-name='__traceiter_android_vh_logbuf_pr_cont' filepath='include/trace/hooks/logbuf.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_logbuf_pr_cont'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/logbuf.h' line='23' column='1'/>
+        <parameter type-id='81955d27' name='r' filepath='include/trace/hooks/logbuf.h' line='23' column='1'/>
+        <parameter type-id='b59d7dce' name='text_len' filepath='include/trace/hooks/logbuf.h' line='23' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_look_around' mangled-name='__traceiter_android_vh_look_around' filepath='include/trace/hooks/mm.h' line='239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_look_around'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='239' column='1'/>
+        <parameter type-id='d132145b' name='pvmw' filepath='include/trace/hooks/mm.h' line='239' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/mm.h' line='239' column='1'/>
+        <parameter type-id='2ae08426' name='vma' filepath='include/trace/hooks/mm.h' line='239' column='1'/>
+        <parameter type-id='7292109c' name='referenced' filepath='include/trace/hooks/mm.h' line='239' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_look_around_migrate_page' mangled-name='__traceiter_android_vh_look_around_migrate_page' filepath='include/trace/hooks/mm.h' line='236' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_look_around_migrate_page'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='236' column='1'/>
+        <parameter type-id='02f11ed4' name='old_page' filepath='include/trace/hooks/mm.h' line='236' column='1'/>
+        <parameter type-id='02f11ed4' name='new_page' filepath='include/trace/hooks/mm.h' line='236' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_loop_prepare_cmd' mangled-name='__traceiter_android_vh_loop_prepare_cmd' filepath='include/trace/hooks/loop.h' line='14' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_loop_prepare_cmd'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/loop.h' line='14' column='1'/>
+        <parameter type-id='fb55efa1' name='bio' filepath='include/trace/hooks/loop.h' line='14' column='1'/>
+        <parameter type-id='80f25feb' name='iocb' filepath='include/trace/hooks/loop.h' line='14' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_madvise_cold_or_pageout' mangled-name='__traceiter_android_vh_madvise_cold_or_pageout' filepath='include/trace/hooks/mm.h' line='193' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_madvise_cold_or_pageout'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='193' column='1'/>
+        <parameter type-id='2ae08426' name='vma' filepath='include/trace/hooks/mm.h' line='193' column='1'/>
+        <parameter type-id='d8e6b335' name='allow_shared' filepath='include/trace/hooks/mm.h' line='193' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_madvise_cold_or_pageout_abort' mangled-name='__traceiter_android_vh_madvise_cold_or_pageout_abort' filepath='include/trace/hooks/mm.h' line='224' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_madvise_cold_or_pageout_abort'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='224' column='1'/>
+        <parameter type-id='2ae08426' name='vma' filepath='include/trace/hooks/mm.h' line='224' column='1'/>
+        <parameter type-id='d8e6b335' name='abort_madvise' filepath='include/trace/hooks/mm.h' line='224' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_map_util_freq' mangled-name='__traceiter_android_vh_map_util_freq' filepath='include/trace/hooks/sched.h' line='253' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_map_util_freq'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='253' column='1'/>
+        <parameter type-id='7359adad' name='util' filepath='include/trace/hooks/sched.h' line='253' column='1'/>
+        <parameter type-id='7359adad' name='freq' filepath='include/trace/hooks/sched.h' line='253' column='1'/>
+        <parameter type-id='7359adad' name='cap' filepath='include/trace/hooks/sched.h' line='253' column='1'/>
+        <parameter type-id='1d2c2b85' name='next_freq' filepath='include/trace/hooks/sched.h' line='253' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_map_util_freq_new' mangled-name='__traceiter_android_vh_map_util_freq_new' filepath='include/trace/hooks/sched.h' line='259' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_map_util_freq_new'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='259' column='1'/>
+        <parameter type-id='7359adad' name='util' filepath='include/trace/hooks/sched.h' line='259' column='1'/>
+        <parameter type-id='7359adad' name='freq' filepath='include/trace/hooks/sched.h' line='259' column='1'/>
+        <parameter type-id='7359adad' name='cap' filepath='include/trace/hooks/sched.h' line='259' column='1'/>
+        <parameter type-id='1d2c2b85' name='next_freq' filepath='include/trace/hooks/sched.h' line='259' column='1'/>
+        <parameter type-id='343c3ae4' name='policy' filepath='include/trace/hooks/sched.h' line='259' column='1'/>
+        <parameter type-id='d8e6b335' name='need_freq_update' filepath='include/trace/hooks/sched.h' line='259' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mark_page_accessed' mangled-name='__traceiter_android_vh_mark_page_accessed' filepath='include/trace/hooks/mm.h' line='167' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mark_page_accessed'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='167' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/mm.h' line='167' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mem_cgroup_alloc' mangled-name='__traceiter_android_vh_mem_cgroup_alloc' filepath='include/trace/hooks/mm.h' line='125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mem_cgroup_alloc'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='125' column='1'/>
+        <parameter type-id='223696fb' name='memcg' filepath='include/trace/hooks/mm.h' line='125' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mem_cgroup_css_offline' mangled-name='__traceiter_android_vh_mem_cgroup_css_offline' filepath='include/trace/hooks/mm.h' line='138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mem_cgroup_css_offline'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='138' column='1'/>
+        <parameter type-id='cfff5953' name='css' filepath='include/trace/hooks/mm.h' line='138' column='1'/>
+        <parameter type-id='223696fb' name='memcg' filepath='include/trace/hooks/mm.h' line='138' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mem_cgroup_css_online' mangled-name='__traceiter_android_vh_mem_cgroup_css_online' filepath='include/trace/hooks/mm.h' line='135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mem_cgroup_css_online'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='135' column='1'/>
+        <parameter type-id='cfff5953' name='css' filepath='include/trace/hooks/mm.h' line='135' column='1'/>
+        <parameter type-id='223696fb' name='memcg' filepath='include/trace/hooks/mm.h' line='135' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mem_cgroup_free' mangled-name='__traceiter_android_vh_mem_cgroup_free' filepath='include/trace/hooks/mm.h' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mem_cgroup_free'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='128' column='1'/>
+        <parameter type-id='223696fb' name='memcg' filepath='include/trace/hooks/mm.h' line='128' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mem_cgroup_id_remove' mangled-name='__traceiter_android_vh_mem_cgroup_id_remove' filepath='include/trace/hooks/mm.h' line='131' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mem_cgroup_id_remove'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='131' column='1'/>
+        <parameter type-id='223696fb' name='memcg' filepath='include/trace/hooks/mm.h' line='131' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_meminfo_proc_show' mangled-name='__traceiter_android_vh_meminfo_proc_show' filepath='include/trace/hooks/mm.h' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_meminfo_proc_show'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='50' column='1'/>
+        <parameter type-id='f8dc9def' name='m' filepath='include/trace/hooks/mm.h' line='50' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mmap_region' mangled-name='__traceiter_android_vh_mmap_region' filepath='include/trace/hooks/mm.h' line='115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mmap_region'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='115' column='1'/>
+        <parameter type-id='2ae08426' name='vma' filepath='include/trace/hooks/mm.h' line='115' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='include/trace/hooks/mm.h' line='115' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mmc_attach_sd' mangled-name='__traceiter_android_vh_mmc_attach_sd' filepath='include/trace/hooks/mmc.h' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mmc_attach_sd'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mmc.h' line='42' column='1'/>
+        <parameter type-id='dd575c43' name='host' filepath='include/trace/hooks/mmc.h' line='42' column='1'/>
+        <parameter type-id='19c2251e' name='ocr' filepath='include/trace/hooks/mmc.h' line='42' column='1'/>
+        <parameter type-id='95e97e5e' name='err' filepath='include/trace/hooks/mmc.h' line='42' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mmc_blk_mq_rw_recovery' mangled-name='__traceiter_android_vh_mmc_blk_mq_rw_recovery' filepath='include/trace/hooks/mmc.h' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mmc_blk_mq_rw_recovery'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mmc.h' line='36' column='1'/>
+        <parameter type-id='13d38dcb' name='card' filepath='include/trace/hooks/mmc.h' line='36' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mmc_blk_reset' mangled-name='__traceiter_android_vh_mmc_blk_reset' filepath='include/trace/hooks/mmc.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mmc_blk_reset'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mmc.h' line='33' column='1'/>
+        <parameter type-id='dd575c43' name='host' filepath='include/trace/hooks/mmc.h' line='33' column='1'/>
+        <parameter type-id='95e97e5e' name='err' filepath='include/trace/hooks/mmc.h' line='33' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mmc_check_status' mangled-name='__traceiter_android_vh_mmc_check_status' filepath='include/trace/hooks/mmc.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mmc_check_status'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mmc.h' line='26' column='1'/>
+        <parameter type-id='298d0a77' name='bd' filepath='include/trace/hooks/mmc.h' line='26' column='1'/>
+        <parameter type-id='7292109c' name='ret' filepath='include/trace/hooks/mmc.h' line='26' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mmc_ffu_update_cid' mangled-name='__traceiter_android_vh_mmc_ffu_update_cid' filepath='include/trace/hooks/mmc.h' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mmc_ffu_update_cid'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mmc.h' line='51' column='1'/>
+        <parameter type-id='dd575c43' name='host' filepath='include/trace/hooks/mmc.h' line='51' column='1'/>
+        <parameter type-id='13d38dcb' name='card' filepath='include/trace/hooks/mmc.h' line='51' column='1'/>
+        <parameter type-id='f9409001' name='cid' filepath='include/trace/hooks/mmc.h' line='51' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mmc_gpio_cd_irqt' mangled-name='__traceiter_android_vh_mmc_gpio_cd_irqt' filepath='include/trace/hooks/mmc.h' line='48' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mmc_gpio_cd_irqt'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mmc.h' line='48' column='1'/>
+        <parameter type-id='dd575c43' name='host' filepath='include/trace/hooks/mmc.h' line='48' column='1'/>
+        <parameter type-id='d8e6b335' name='allow' filepath='include/trace/hooks/mmc.h' line='48' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mmc_sd_update_cmdline_timing' mangled-name='__traceiter_android_vh_mmc_sd_update_cmdline_timing' filepath='include/trace/hooks/mmc.h' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mmc_sd_update_cmdline_timing'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mmc.h' line='67' column='1'/>
+        <parameter type-id='13d38dcb' name='card' filepath='include/trace/hooks/mmc.h' line='67' column='1'/>
+        <parameter type-id='7292109c' name='err' filepath='include/trace/hooks/mmc.h' line='67' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mmc_sd_update_dataline_timing' mangled-name='__traceiter_android_vh_mmc_sd_update_dataline_timing' filepath='include/trace/hooks/mmc.h' line='71' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mmc_sd_update_dataline_timing'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mmc.h' line='71' column='1'/>
+        <parameter type-id='13d38dcb' name='card' filepath='include/trace/hooks/mmc.h' line='71' column='1'/>
+        <parameter type-id='7292109c' name='err' filepath='include/trace/hooks/mmc.h' line='71' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mmc_sdio_pm_flag_set' mangled-name='__traceiter_android_vh_mmc_sdio_pm_flag_set' filepath='include/trace/hooks/mmc.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mmc_sdio_pm_flag_set'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mmc.h' line='30' column='1'/>
+        <parameter type-id='dd575c43' name='host' filepath='include/trace/hooks/mmc.h' line='30' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mmc_update_partition_status' mangled-name='__traceiter_android_vh_mmc_update_partition_status' filepath='include/trace/hooks/mmc.h' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mmc_update_partition_status'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mmc.h' line='63' column='1'/>
+        <parameter type-id='13d38dcb' name='card' filepath='include/trace/hooks/mmc.h' line='63' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mmput' mangled-name='__traceiter_android_vh_mmput' filepath='include/trace/hooks/sched.h' line='435' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mmput'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='435' column='1'/>
+        <parameter type-id='df4b7819' name='mm' filepath='include/trace/hooks/sched.h' line='435' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_modify_thermal_cpu_get_power' mangled-name='__traceiter_android_vh_modify_thermal_cpu_get_power' filepath='include/trace/hooks/thermal.h' line='57' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_modify_thermal_cpu_get_power'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='57' column='1'/>
+        <parameter type-id='343c3ae4' name='policy' filepath='include/trace/hooks/thermal.h' line='57' column='1'/>
+        <parameter type-id='f9409001' name='power' filepath='include/trace/hooks/thermal.h' line='57' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_modify_thermal_request_freq' mangled-name='__traceiter_android_vh_modify_thermal_request_freq' filepath='include/trace/hooks/thermal.h' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_modify_thermal_request_freq'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='21' column='1'/>
+        <parameter type-id='343c3ae4' name='policy' filepath='include/trace/hooks/thermal.h' line='21' column='1'/>
+        <parameter type-id='1d2c2b85' name='request_freq' filepath='include/trace/hooks/thermal.h' line='21' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_modify_thermal_target_freq' mangled-name='__traceiter_android_vh_modify_thermal_target_freq' filepath='include/trace/hooks/thermal.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_modify_thermal_target_freq'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='25' column='1'/>
+        <parameter type-id='343c3ae4' name='policy' filepath='include/trace/hooks/thermal.h' line='25' column='1'/>
+        <parameter type-id='807869d3' name='target_freq' filepath='include/trace/hooks/thermal.h' line='25' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_modify_thermal_throttle_update' mangled-name='__traceiter_android_vh_modify_thermal_throttle_update' filepath='include/trace/hooks/thermal.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_modify_thermal_throttle_update'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='41' column='1'/>
+        <parameter type-id='404b1300' name='tz' filepath='include/trace/hooks/thermal.h' line='41' column='1'/>
+        <parameter type-id='d8e6b335' name='update' filepath='include/trace/hooks/thermal.h' line='41' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mpam_set' mangled-name='__traceiter_android_vh_mpam_set' filepath='include/trace/hooks/mpam.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mpam_set'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mpam.h' line='19' column='1'/>
+        <parameter type-id='f23e2572' name='prev' filepath='include/trace/hooks/mpam.h' line='19' column='1'/>
+        <parameter type-id='f23e2572' name='next' filepath='include/trace/hooks/mpam.h' line='19' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mutex_can_spin_on_owner' mangled-name='__traceiter_android_vh_mutex_can_spin_on_owner' filepath='include/trace/hooks/dtask.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_can_spin_on_owner'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='41' column='1'/>
+        <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='41' column='1'/>
+        <parameter type-id='7292109c' name='retval' filepath='include/trace/hooks/dtask.h' line='41' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mutex_init' mangled-name='__traceiter_android_vh_mutex_init' filepath='include/trace/hooks/dtask.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_init'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='32' column='1'/>
+        <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='32' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mutex_opt_spin_finish' mangled-name='__traceiter_android_vh_mutex_opt_spin_finish' filepath='include/trace/hooks/dtask.h' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_opt_spin_finish'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='38' column='1'/>
+        <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='38' column='1'/>
+        <parameter type-id='b50a4934' name='taken' filepath='include/trace/hooks/dtask.h' line='38' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mutex_opt_spin_start' mangled-name='__traceiter_android_vh_mutex_opt_spin_start' filepath='include/trace/hooks/dtask.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_opt_spin_start'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='35' column='1'/>
+        <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='35' column='1'/>
+        <parameter type-id='d8e6b335' name='time_out' filepath='include/trace/hooks/dtask.h' line='35' column='1'/>
+        <parameter type-id='7292109c' name='cnt' filepath='include/trace/hooks/dtask.h' line='35' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mutex_unlock_slowpath' mangled-name='__traceiter_android_vh_mutex_unlock_slowpath' filepath='include/trace/hooks/dtask.h' line='85' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_unlock_slowpath'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='85' column='1'/>
+        <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='85' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mutex_wait_finish' mangled-name='__traceiter_android_vh_mutex_wait_finish' filepath='include/trace/hooks/dtask.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_wait_finish'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='29' column='1'/>
+        <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='29' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_mutex_wait_start' mangled-name='__traceiter_android_vh_mutex_wait_start' filepath='include/trace/hooks/dtask.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_wait_start'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='26' column='1'/>
+        <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='26' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_oom_check_panic' mangled-name='__traceiter_android_vh_oom_check_panic' filepath='include/trace/hooks/mm.h' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_oom_check_panic'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='68' column='1'/>
+        <parameter type-id='d20b5f3e' name='oc' filepath='include/trace/hooks/mm.h' line='68' column='1'/>
+        <parameter type-id='7292109c' name='ret' filepath='include/trace/hooks/mm.h' line='68' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_page_cache_forced_ra' mangled-name='__traceiter_android_vh_page_cache_forced_ra' filepath='include/trace/hooks/mm.h' line='170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_page_cache_forced_ra'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='170' column='1'/>
+        <parameter type-id='a6cdca2a' name='ractl' filepath='include/trace/hooks/mm.h' line='170' column='1'/>
+        <parameter type-id='7359adad' name='req_count' filepath='include/trace/hooks/mm.h' line='170' column='1'/>
+        <parameter type-id='d8e6b335' name='do_forced_ra' filepath='include/trace/hooks/mm.h' line='170' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_page_referenced_check_bypass' mangled-name='__traceiter_android_vh_page_referenced_check_bypass' filepath='include/trace/hooks/vmscan.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_page_referenced_check_bypass'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/vmscan.h' line='18' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/vmscan.h' line='18' column='1'/>
+        <parameter type-id='7359adad' name='nr_to_scan' filepath='include/trace/hooks/vmscan.h' line='18' column='1'/>
+        <parameter type-id='95e97e5e' name='lru' filepath='include/trace/hooks/vmscan.h' line='18' column='1'/>
+        <parameter type-id='d8e6b335' name='bypass' filepath='include/trace/hooks/vmscan.h' line='18' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_page_should_be_protected' mangled-name='__traceiter_android_vh_page_should_be_protected' filepath='include/trace/hooks/mm.h' line='164' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_page_should_be_protected'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='164' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/mm.h' line='164' column='1'/>
+        <parameter type-id='d8e6b335' name='should_protect' filepath='include/trace/hooks/mm.h' line='164' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_page_trylock_clear' mangled-name='__traceiter_android_vh_page_trylock_clear' filepath='include/trace/hooks/vmscan.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_page_trylock_clear'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/vmscan.h' line='30' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/vmscan.h' line='30' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_page_trylock_get_result' mangled-name='__traceiter_android_vh_page_trylock_get_result' filepath='include/trace/hooks/vmscan.h' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_page_trylock_get_result'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/vmscan.h' line='21' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/vmscan.h' line='21' column='1'/>
+        <parameter type-id='d8e6b335' name='trylock_fail' filepath='include/trace/hooks/vmscan.h' line='21' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_page_trylock_set' mangled-name='__traceiter_android_vh_page_trylock_set' filepath='include/trace/hooks/vmscan.h' line='27' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_page_trylock_set'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/vmscan.h' line='27' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/vmscan.h' line='27' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_pcplist_add_cma_pages_bypass' mangled-name='__traceiter_android_vh_pcplist_add_cma_pages_bypass' filepath='include/trace/hooks/mm.h' line='87' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_pcplist_add_cma_pages_bypass'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='87' column='1'/>
+        <parameter type-id='95e97e5e' name='migratetype' filepath='include/trace/hooks/mm.h' line='87' column='1'/>
+        <parameter type-id='d8e6b335' name='bypass' filepath='include/trace/hooks/mm.h' line='87' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_post_image_save' mangled-name='__traceiter_android_vh_post_image_save' filepath='include/trace/hooks/bl_hib.h' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_post_image_save'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/bl_hib.h' line='38' column='1'/>
+        <parameter type-id='8efea9e5' name='root_swap' filepath='include/trace/hooks/bl_hib.h' line='38' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_print_slabinfo_header' mangled-name='__traceiter_android_vh_print_slabinfo_header' filepath='include/trace/hooks/mm.h' line='62' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_print_slabinfo_header'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='62' column='1'/>
+        <parameter type-id='f8dc9def' name='m' filepath='include/trace/hooks/mm.h' line='62' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_printk_caller' mangled-name='__traceiter_android_vh_printk_caller' filepath='include/trace/hooks/printk.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_printk_caller'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/printk.h' line='19' column='1'/>
+        <parameter type-id='26a90f95' name='caller' filepath='include/trace/hooks/printk.h' line='19' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='include/trace/hooks/printk.h' line='19' column='1'/>
+        <parameter type-id='19c2251e' name='id' filepath='include/trace/hooks/printk.h' line='19' column='1'/>
+        <parameter type-id='7292109c' name='ret' filepath='include/trace/hooks/printk.h' line='19' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_printk_caller_id' mangled-name='__traceiter_android_vh_printk_caller_id' filepath='include/trace/hooks/printk.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_printk_caller_id'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/printk.h' line='16' column='1'/>
+        <parameter type-id='f9409001' name='caller_id' filepath='include/trace/hooks/printk.h' line='16' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_printk_ext_header' mangled-name='__traceiter_android_vh_printk_ext_header' filepath='include/trace/hooks/printk.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_printk_ext_header'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/printk.h' line='22' column='1'/>
+        <parameter type-id='26a90f95' name='caller' filepath='include/trace/hooks/printk.h' line='22' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='include/trace/hooks/printk.h' line='22' column='1'/>
+        <parameter type-id='19c2251e' name='id' filepath='include/trace/hooks/printk.h' line='22' column='1'/>
+        <parameter type-id='7292109c' name='ret' filepath='include/trace/hooks/printk.h' line='22' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_printk_hotplug' mangled-name='__traceiter_android_vh_printk_hotplug' filepath='include/trace/hooks/printk.h' line='12' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_printk_hotplug'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/printk.h' line='12' column='1'/>
+        <parameter type-id='7292109c' name='flag' filepath='include/trace/hooks/printk.h' line='12' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_psi_group' mangled-name='__traceiter_android_vh_psi_group' filepath='include/trace/hooks/psi.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_psi_group'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/psi.h' line='18' column='1'/>
+        <parameter type-id='316cdcd3' name='group' filepath='include/trace/hooks/psi.h' line='18' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ptype_head' mangled-name='__traceiter_android_vh_ptype_head' filepath='include/trace/hooks/net.h' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ptype_head'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/net.h' line='21' column='1'/>
+        <parameter type-id='90532519' name='pt' filepath='include/trace/hooks/net.h' line='21' column='1'/>
+        <parameter type-id='e84b031a' name='vendor_pt' filepath='include/trace/hooks/net.h' line='21' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ra_tuning_max_page' mangled-name='__traceiter_android_vh_ra_tuning_max_page' filepath='include/trace/hooks/mm.h' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ra_tuning_max_page'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='108' column='1'/>
+        <parameter type-id='a6cdca2a' name='ractl' filepath='include/trace/hooks/mm.h' line='108' column='1'/>
+        <parameter type-id='1d2c2b85' name='max_page' filepath='include/trace/hooks/mm.h' line='108' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_record_mutex_lock_starttime' mangled-name='__traceiter_android_vh_record_mutex_lock_starttime' filepath='include/trace/hooks/dtask.h' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_mutex_lock_starttime'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='88' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='88' column='1'/>
+        <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='88' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_record_pcpu_rwsem_starttime' mangled-name='__traceiter_android_vh_record_pcpu_rwsem_starttime' filepath='include/trace/hooks/dtask.h' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_pcpu_rwsem_starttime'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='97' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='97' column='1'/>
+        <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='97' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_record_rtmutex_lock_starttime' mangled-name='__traceiter_android_vh_record_rtmutex_lock_starttime' filepath='include/trace/hooks/dtask.h' line='91' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_rtmutex_lock_starttime'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='91' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='91' column='1'/>
+        <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='91' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_record_rwsem_lock_starttime' mangled-name='__traceiter_android_vh_record_rwsem_lock_starttime' filepath='include/trace/hooks/dtask.h' line='94' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_rwsem_lock_starttime'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='94' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='94' column='1'/>
+        <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='94' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_regmap_update' mangled-name='__traceiter_android_vh_regmap_update' filepath='include/trace/hooks/regmap.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_regmap_update'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/regmap.h' line='23' column='1'/>
+        <parameter type-id='9d19d4a7' name='config' filepath='include/trace/hooks/regmap.h' line='23' column='1'/>
+        <parameter type-id='29af9a71' name='map' filepath='include/trace/hooks/regmap.h' line='23' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rmqueue' mangled-name='__traceiter_android_vh_rmqueue' filepath='include/trace/hooks/mm.h' line='184' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rmqueue'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='184' column='1'/>
+        <parameter type-id='0a0aff97' name='preferred_zone' filepath='include/trace/hooks/mm.h' line='184' column='1'/>
+        <parameter type-id='0a0aff97' name='zone' filepath='include/trace/hooks/mm.h' line='184' column='1'/>
+        <parameter type-id='f0981eeb' name='order' filepath='include/trace/hooks/mm.h' line='184' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_flags' filepath='include/trace/hooks/mm.h' line='184' column='1'/>
+        <parameter type-id='f0981eeb' name='alloc_flags' filepath='include/trace/hooks/mm.h' line='184' column='1'/>
+        <parameter type-id='95e97e5e' name='migratetype' filepath='include/trace/hooks/mm.h' line='184' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rmqueue_bulk_bypass' mangled-name='__traceiter_android_vh_rmqueue_bulk_bypass' filepath='include/trace/hooks/mm.h' line='104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rmqueue_bulk_bypass'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='104' column='1'/>
+        <parameter type-id='f0981eeb' name='order' filepath='include/trace/hooks/mm.h' line='104' column='1'/>
+        <parameter type-id='0e64a118' name='pcp' filepath='include/trace/hooks/mm.h' line='104' column='1'/>
+        <parameter type-id='95e97e5e' name='migratetype' filepath='include/trace/hooks/mm.h' line='104' column='1'/>
+        <parameter type-id='e84b031a' name='list' filepath='include/trace/hooks/mm.h' line='104' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rmqueue_cma_fallback' mangled-name='__traceiter_android_vh_rmqueue_cma_fallback' filepath='include/trace/hooks/mm.h' line='230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rmqueue_cma_fallback'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='230' column='1'/>
+        <parameter type-id='0a0aff97' name='zone' filepath='include/trace/hooks/mm.h' line='230' column='1'/>
+        <parameter type-id='f0981eeb' name='order' filepath='include/trace/hooks/mm.h' line='230' column='1'/>
+        <parameter type-id='9f93c9da' name='page' filepath='include/trace/hooks/mm.h' line='230' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rmqueue_smallest_bypass' mangled-name='__traceiter_android_vh_rmqueue_smallest_bypass' filepath='include/trace/hooks/mm.h' line='199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rmqueue_smallest_bypass'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='199' column='1'/>
+        <parameter type-id='9f93c9da' name='page' filepath='include/trace/hooks/mm.h' line='199' column='1'/>
+        <parameter type-id='0a0aff97' name='zone' filepath='include/trace/hooks/mm.h' line='199' column='1'/>
+        <parameter type-id='95e97e5e' name='order' filepath='include/trace/hooks/mm.h' line='199' column='1'/>
+        <parameter type-id='95e97e5e' name='migratetype' filepath='include/trace/hooks/mm.h' line='199' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rproc_recovery' mangled-name='__traceiter_android_vh_rproc_recovery' filepath='include/trace/hooks/remoteproc.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rproc_recovery'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/remoteproc.h' line='19' column='1'/>
+        <parameter type-id='5771c601' name='rproc' filepath='include/trace/hooks/remoteproc.h' line='19' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rproc_recovery_set' mangled-name='__traceiter_android_vh_rproc_recovery_set' filepath='include/trace/hooks/remoteproc.h' line='24' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rproc_recovery_set'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/remoteproc.h' line='24' column='1'/>
+        <parameter type-id='5771c601' name='rproc' filepath='include/trace/hooks/remoteproc.h' line='24' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rtmutex_wait_finish' mangled-name='__traceiter_android_vh_rtmutex_wait_finish' filepath='include/trace/hooks/dtask.h' line='48' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rtmutex_wait_finish'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='48' column='1'/>
+        <parameter type-id='24f0ce5d' name='lock' filepath='include/trace/hooks/dtask.h' line='48' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rtmutex_wait_start' mangled-name='__traceiter_android_vh_rtmutex_wait_start' filepath='include/trace/hooks/dtask.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rtmutex_wait_start'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='45' column='1'/>
+        <parameter type-id='24f0ce5d' name='lock' filepath='include/trace/hooks/dtask.h' line='45' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rtmutex_waiter_prio' mangled-name='__traceiter_android_vh_rtmutex_waiter_prio' filepath='include/trace/hooks/dtask.h' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rtmutex_waiter_prio'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='108' column='1'/>
+        <parameter type-id='f23e2572' name='task' filepath='include/trace/hooks/dtask.h' line='108' column='1'/>
+        <parameter type-id='7292109c' name='waiter_prio' filepath='include/trace/hooks/dtask.h' line='108' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rwsem_can_spin_on_owner' mangled-name='__traceiter_android_vh_rwsem_can_spin_on_owner' filepath='include/trace/hooks/dtask.h' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_can_spin_on_owner'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='70' column='1'/>
+        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='70' column='1'/>
+        <parameter type-id='d8e6b335' name='ret' filepath='include/trace/hooks/dtask.h' line='70' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rwsem_init' mangled-name='__traceiter_android_vh_rwsem_init' filepath='include/trace/hooks/rwsem.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_init'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/rwsem.h' line='20' column='1'/>
+        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/rwsem.h' line='20' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rwsem_opt_spin_finish' mangled-name='__traceiter_android_vh_rwsem_opt_spin_finish' filepath='include/trace/hooks/dtask.h' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_opt_spin_finish'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='67' column='1'/>
+        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='67' column='1'/>
+        <parameter type-id='b50a4934' name='taken' filepath='include/trace/hooks/dtask.h' line='67' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rwsem_opt_spin_start' mangled-name='__traceiter_android_vh_rwsem_opt_spin_start' filepath='include/trace/hooks/dtask.h' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_opt_spin_start'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='64' column='1'/>
+        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='64' column='1'/>
+        <parameter type-id='d8e6b335' name='time_out' filepath='include/trace/hooks/dtask.h' line='64' column='1'/>
+        <parameter type-id='7292109c' name='cnt' filepath='include/trace/hooks/dtask.h' line='64' column='1'/>
+        <parameter type-id='b50a4934' name='chk_only' filepath='include/trace/hooks/dtask.h' line='64' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rwsem_read_wait_finish' mangled-name='__traceiter_android_vh_rwsem_read_wait_finish' filepath='include/trace/hooks/dtask.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_read_wait_finish'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='55' column='1'/>
+        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='55' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rwsem_read_wait_start' mangled-name='__traceiter_android_vh_rwsem_read_wait_start' filepath='include/trace/hooks/dtask.h' line='52' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_read_wait_start'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='52' column='1'/>
+        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='52' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rwsem_wake' mangled-name='__traceiter_android_vh_rwsem_wake' filepath='include/trace/hooks/rwsem.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_wake'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/rwsem.h' line='23' column='1'/>
+        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/rwsem.h' line='23' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rwsem_wake_finish' mangled-name='__traceiter_android_vh_rwsem_wake_finish' filepath='include/trace/hooks/rwsem.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_wake_finish'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/rwsem.h' line='34' column='1'/>
+        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/rwsem.h' line='34' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rwsem_write_finished' mangled-name='__traceiter_android_vh_rwsem_write_finished' filepath='include/trace/hooks/rwsem.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_write_finished'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/rwsem.h' line='26' column='1'/>
+        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/rwsem.h' line='26' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rwsem_write_wait_finish' mangled-name='__traceiter_android_vh_rwsem_write_wait_finish' filepath='include/trace/hooks/dtask.h' line='61' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_write_wait_finish'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='61' column='1'/>
+        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='61' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_rwsem_write_wait_start' mangled-name='__traceiter_android_vh_rwsem_write_wait_start' filepath='include/trace/hooks/dtask.h' line='58' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_write_wait_start'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='58' column='1'/>
+        <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='58' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_save_cpu_resume' mangled-name='__traceiter_android_vh_save_cpu_resume' filepath='include/trace/hooks/bl_hib.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_save_cpu_resume'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/bl_hib.h' line='18' column='1'/>
+        <parameter type-id='3df9fd28' name='addr' filepath='include/trace/hooks/bl_hib.h' line='18' column='1'/>
+        <parameter type-id='91ce1af9' name='phys_addr' filepath='include/trace/hooks/bl_hib.h' line='18' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_save_hib_resume_bdev' mangled-name='__traceiter_android_vh_save_hib_resume_bdev' filepath='include/trace/hooks/bl_hib.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_save_hib_resume_bdev'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/bl_hib.h' line='22' column='1'/>
+        <parameter type-id='b88dd945' name='hib_resume_bdev' filepath='include/trace/hooks/bl_hib.h' line='22' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_save_track_hash' mangled-name='__traceiter_android_vh_save_track_hash' filepath='include/trace/hooks/mm.h' line='181' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_save_track_hash'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='181' column='1'/>
+        <parameter type-id='b50a4934' name='alloc' filepath='include/trace/hooks/mm.h' line='181' column='1'/>
+        <parameter type-id='17b126a2' name='p' filepath='include/trace/hooks/mm.h' line='181' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_sched_pelt_multiplier' mangled-name='__traceiter_android_vh_sched_pelt_multiplier' filepath='include/trace/hooks/sched.h' line='329' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_sched_pelt_multiplier'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='329' column='1'/>
+        <parameter type-id='f0981eeb' name='old' filepath='include/trace/hooks/sched.h' line='329' column='1'/>
+        <parameter type-id='f0981eeb' name='cur' filepath='include/trace/hooks/sched.h' line='329' column='1'/>
+        <parameter type-id='7292109c' name='ret' filepath='include/trace/hooks/sched.h' line='329' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_sched_setaffinity_early' mangled-name='__traceiter_android_vh_sched_setaffinity_early' filepath='include/trace/hooks/sched.h' line='427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_sched_setaffinity_early'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='427' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/sched.h' line='427' column='1'/>
+        <parameter type-id='5f8a1ac4' name='new_mask' filepath='include/trace/hooks/sched.h' line='427' column='1'/>
+        <parameter type-id='7292109c' name='retval' filepath='include/trace/hooks/sched.h' line='427' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_sched_show_task' mangled-name='__traceiter_android_vh_sched_show_task' filepath='include/trace/hooks/dtask.h' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_sched_show_task'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='74' column='1'/>
+        <parameter type-id='f23e2572' name='task' filepath='include/trace/hooks/dtask.h' line='74' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_sched_stat_runtime_rt' mangled-name='__traceiter_android_vh_sched_stat_runtime_rt' filepath='include/trace/hooks/sched.h' line='374' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_sched_stat_runtime_rt'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='374' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/sched.h' line='374' column='1'/>
+        <parameter type-id='91ce1af9' name='delta' filepath='include/trace/hooks/sched.h' line='374' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_scheduler_tick' mangled-name='__traceiter_android_vh_scheduler_tick' filepath='include/trace/hooks/sched.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_scheduler_tick'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='34' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/hooks/sched.h' line='34' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_sd_update_bus_speed_mode' mangled-name='__traceiter_android_vh_sd_update_bus_speed_mode' filepath='include/trace/hooks/mmc.h' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_sd_update_bus_speed_mode'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mmc.h' line='39' column='1'/>
+        <parameter type-id='13d38dcb' name='card' filepath='include/trace/hooks/mmc.h' line='39' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_sdhci_get_cd' mangled-name='__traceiter_android_vh_sdhci_get_cd' filepath='include/trace/hooks/mmc.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_sdhci_get_cd'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mmc.h' line='45' column='1'/>
+        <parameter type-id='2661e0d9' name='host' filepath='include/trace/hooks/mmc.h' line='45' column='1'/>
+        <parameter type-id='d8e6b335' name='allow' filepath='include/trace/hooks/mmc.h' line='45' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_set_memory_nx' mangled-name='__traceiter_android_vh_set_memory_nx' filepath='include/trace/hooks/memory.h' line='13' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_set_memory_nx'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/memory.h' line='13' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='include/trace/hooks/memory.h' line='13' column='1'/>
+        <parameter type-id='95e97e5e' name='nr_pages' filepath='include/trace/hooks/memory.h' line='13' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_set_memory_rw' mangled-name='__traceiter_android_vh_set_memory_rw' filepath='include/trace/hooks/memory.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_set_memory_rw'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/memory.h' line='17' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='include/trace/hooks/memory.h' line='17' column='1'/>
+        <parameter type-id='95e97e5e' name='nr_pages' filepath='include/trace/hooks/memory.h' line='17' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_set_module_permit_after_init' mangled-name='__traceiter_android_vh_set_module_permit_after_init' filepath='include/trace/hooks/module.h' line='24' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_set_module_permit_after_init'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/module.h' line='24' column='1'/>
+        <parameter type-id='efc8cc9a' name='mod' filepath='include/trace/hooks/module.h' line='24' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_set_module_permit_before_init' mangled-name='__traceiter_android_vh_set_module_permit_before_init' filepath='include/trace/hooks/module.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_set_module_permit_before_init'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/module.h' line='20' column='1'/>
+        <parameter type-id='efc8cc9a' name='mod' filepath='include/trace/hooks/module.h' line='20' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_set_page_migrating' mangled-name='__traceiter_android_vh_set_page_migrating' filepath='include/trace/hooks/mm.h' line='246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_set_page_migrating'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='246' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/mm.h' line='246' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_set_wake_flags' mangled-name='__traceiter_android_vh_set_wake_flags' filepath='include/trace/hooks/sched.h' line='398' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_set_wake_flags'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='398' column='1'/>
+        <parameter type-id='7292109c' name='wake_flags' filepath='include/trace/hooks/sched.h' line='398' column='1'/>
+        <parameter type-id='807869d3' name='mode' filepath='include/trace/hooks/sched.h' line='398' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_setscheduler_uclamp' mangled-name='__traceiter_android_vh_setscheduler_uclamp' filepath='include/trace/hooks/sched.h' line='390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_setscheduler_uclamp'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sched.h' line='390' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/sched.h' line='390' column='1'/>
+        <parameter type-id='95e97e5e' name='clamp_id' filepath='include/trace/hooks/sched.h' line='390' column='1'/>
+        <parameter type-id='f0981eeb' name='value' filepath='include/trace/hooks/sched.h' line='390' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_sha256' mangled-name='__traceiter_android_vh_sha256' filepath='include/trace/hooks/fips140.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_sha256'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/fips140.h' line='23' column='1'/>
+        <parameter type-id='bbaf3419' name='data' filepath='include/trace/hooks/fips140.h' line='23' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='include/trace/hooks/fips140.h' line='23' column='1'/>
+        <parameter type-id='8bff8096' name='out' filepath='include/trace/hooks/fips140.h' line='23' column='1'/>
+        <parameter type-id='7292109c' name='hook_inuse' filepath='include/trace/hooks/fips140.h' line='23' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_should_alloc_pages_retry' mangled-name='__traceiter_android_vh_should_alloc_pages_retry' filepath='include/trace/hooks/mm.h' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_should_alloc_pages_retry'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='96' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='include/trace/hooks/mm.h' line='96' column='1'/>
+        <parameter type-id='95e97e5e' name='order' filepath='include/trace/hooks/mm.h' line='96' column='1'/>
+        <parameter type-id='7292109c' name='alloc_flags' filepath='include/trace/hooks/mm.h' line='96' column='1'/>
+        <parameter type-id='95e97e5e' name='migratetype' filepath='include/trace/hooks/mm.h' line='96' column='1'/>
+        <parameter type-id='0a0aff97' name='preferred_zone' filepath='include/trace/hooks/mm.h' line='96' column='1'/>
+        <parameter type-id='9f93c9da' name='page' filepath='include/trace/hooks/mm.h' line='96' column='1'/>
+        <parameter type-id='d8e6b335' name='should_alloc_retry' filepath='include/trace/hooks/mm.h' line='96' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_show_mapcount_pages' mangled-name='__traceiter_android_vh_show_mapcount_pages' filepath='include/trace/hooks/mm.h' line='158' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_show_mapcount_pages'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='158' column='1'/>
+        <parameter type-id='eaa32e2f' name='unused' filepath='include/trace/hooks/mm.h' line='158' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_show_mem' mangled-name='__traceiter_android_vh_show_mem' filepath='include/trace/hooks/mm.h' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_show_mem'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='56' column='1'/>
+        <parameter type-id='f0981eeb' name='filter' filepath='include/trace/hooks/mm.h' line='56' column='1'/>
+        <parameter type-id='f461c050' name='nodemask' filepath='include/trace/hooks/mm.h' line='56' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_show_resume_epoch_val' mangled-name='__traceiter_android_vh_show_resume_epoch_val' filepath='include/trace/hooks/epoch.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_show_resume_epoch_val'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/epoch.h' line='16' column='1'/>
+        <parameter type-id='91ce1af9' name='resume_cycles' filepath='include/trace/hooks/epoch.h' line='16' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_show_suspend_epoch_val' mangled-name='__traceiter_android_vh_show_suspend_epoch_val' filepath='include/trace/hooks/epoch.h' line='12' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_show_suspend_epoch_val'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/epoch.h' line='12' column='1'/>
+        <parameter type-id='91ce1af9' name='suspend_ns' filepath='include/trace/hooks/epoch.h' line='12' column='1'/>
+        <parameter type-id='91ce1af9' name='suspend_cycles' filepath='include/trace/hooks/epoch.h' line='12' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_shrink_slab_bypass' mangled-name='__traceiter_android_vh_shrink_slab_bypass' filepath='include/trace/hooks/vmscan.h' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_shrink_slab_bypass'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/vmscan.h' line='42' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='include/trace/hooks/vmscan.h' line='42' column='1'/>
+        <parameter type-id='95e97e5e' name='nid' filepath='include/trace/hooks/vmscan.h' line='42' column='1'/>
+        <parameter type-id='223696fb' name='memcg' filepath='include/trace/hooks/vmscan.h' line='42' column='1'/>
+        <parameter type-id='95e97e5e' name='priority' filepath='include/trace/hooks/vmscan.h' line='42' column='1'/>
+        <parameter type-id='d8e6b335' name='bypass' filepath='include/trace/hooks/vmscan.h' line='42' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_skip_swap_map_write' mangled-name='__traceiter_android_vh_skip_swap_map_write' filepath='include/trace/hooks/bl_hib.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_skip_swap_map_write'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/bl_hib.h' line='34' column='1'/>
+        <parameter type-id='d8e6b335' name='skip' filepath='include/trace/hooks/bl_hib.h' line='34' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_slab_page_alloced' mangled-name='__traceiter_android_vh_slab_page_alloced' filepath='include/trace/hooks/mm.h' line='215' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_slab_page_alloced'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='215' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/mm.h' line='215' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='include/trace/hooks/mm.h' line='215' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='include/trace/hooks/mm.h' line='215' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_sync_txn_recvd' mangled-name='__traceiter_android_vh_sync_txn_recvd' filepath='include/trace/hooks/binder.h' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_sync_txn_recvd'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='43' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/binder.h' line='43' column='1'/>
+        <parameter type-id='f23e2572' name='from' filepath='include/trace/hooks/binder.h' line='43' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_syscall_prctl_finished' mangled-name='__traceiter_android_vh_syscall_prctl_finished' filepath='include/trace/hooks/sys.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_syscall_prctl_finished'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sys.h' line='16' column='1'/>
+        <parameter type-id='95e97e5e' name='option' filepath='include/trace/hooks/sys.h' line='16' column='1'/>
+        <parameter type-id='f23e2572' name='task' filepath='include/trace/hooks/sys.h' line='16' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_sysrq_crash' mangled-name='__traceiter_android_vh_sysrq_crash' filepath='include/trace/hooks/sysrqcrash.h' line='13' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_sysrq_crash'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/sysrqcrash.h' line='13' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='include/trace/hooks/sysrqcrash.h' line='13' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_task_blocks_on_rtmutex' mangled-name='__traceiter_android_vh_task_blocks_on_rtmutex' filepath='include/trace/hooks/dtask.h' line='103' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_task_blocks_on_rtmutex'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='103' column='1'/>
+        <parameter type-id='24f0ce5d' name='lock' filepath='include/trace/hooks/dtask.h' line='103' column='1'/>
+        <parameter type-id='54d4ed50' name='waiter' filepath='include/trace/hooks/dtask.h' line='103' column='1'/>
+        <parameter type-id='f23e2572' name='task' filepath='include/trace/hooks/dtask.h' line='103' column='1'/>
+        <parameter type-id='c1d02a64' name='ww_ctx' filepath='include/trace/hooks/dtask.h' line='103' column='1'/>
+        <parameter type-id='807869d3' name='chwalk' filepath='include/trace/hooks/dtask.h' line='103' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_test_clear_look_around_ref' mangled-name='__traceiter_android_vh_test_clear_look_around_ref' filepath='include/trace/hooks/mm.h' line='233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_test_clear_look_around_ref'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='233' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/mm.h' line='233' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_thermal_power_cap' mangled-name='__traceiter_android_vh_thermal_power_cap' filepath='include/trace/hooks/thermal.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_thermal_power_cap'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='45' column='1'/>
+        <parameter type-id='f9409001' name='power_range' filepath='include/trace/hooks/thermal.h' line='45' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_thermal_register' mangled-name='__traceiter_android_vh_thermal_register' filepath='include/trace/hooks/thermal.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_thermal_register'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='29' column='1'/>
+        <parameter type-id='343c3ae4' name='policy' filepath='include/trace/hooks/thermal.h' line='29' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_thermal_unregister' mangled-name='__traceiter_android_vh_thermal_unregister' filepath='include/trace/hooks/thermal.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_thermal_unregister'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='33' column='1'/>
+        <parameter type-id='343c3ae4' name='policy' filepath='include/trace/hooks/thermal.h' line='33' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_timer_calc_index' mangled-name='__traceiter_android_vh_timer_calc_index' filepath='include/trace/hooks/timer.h' line='12' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_timer_calc_index'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/timer.h' line='12' column='1'/>
+        <parameter type-id='f0981eeb' name='lvl' filepath='include/trace/hooks/timer.h' line='12' column='1'/>
+        <parameter type-id='1d2c2b85' name='expires' filepath='include/trace/hooks/timer.h' line='12' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_try_cma_fallback' mangled-name='__traceiter_android_vh_try_cma_fallback' filepath='include/trace/hooks/mm.h' line='243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_try_cma_fallback'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='243' column='1'/>
+        <parameter type-id='0a0aff97' name='zone' filepath='include/trace/hooks/mm.h' line='243' column='1'/>
+        <parameter type-id='f0981eeb' name='order' filepath='include/trace/hooks/mm.h' line='243' column='1'/>
+        <parameter type-id='d8e6b335' name='try_cma' filepath='include/trace/hooks/mm.h' line='243' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_try_to_freeze_todo' mangled-name='__traceiter_android_vh_try_to_freeze_todo' filepath='include/trace/hooks/power.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_try_to_freeze_todo'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/power.h' line='19' column='1'/>
+        <parameter type-id='f0981eeb' name='todo' filepath='include/trace/hooks/power.h' line='19' column='1'/>
+        <parameter type-id='f0981eeb' name='elapsed_msecs' filepath='include/trace/hooks/power.h' line='19' column='1'/>
+        <parameter type-id='b50a4934' name='wq_busy' filepath='include/trace/hooks/power.h' line='19' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_try_to_freeze_todo_logging' mangled-name='__traceiter_android_vh_try_to_freeze_todo_logging' filepath='include/trace/hooks/power.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_try_to_freeze_todo_logging'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/power.h' line='23' column='1'/>
+        <parameter type-id='d8e6b335' name='logging_on' filepath='include/trace/hooks/power.h' line='23' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_try_to_freeze_todo_unfrozen' mangled-name='__traceiter_android_vh_try_to_freeze_todo_unfrozen' filepath='include/trace/hooks/power.h' line='27' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_try_to_freeze_todo_unfrozen'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/power.h' line='27' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/hooks/power.h' line='27' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_try_to_unmap_one' mangled-name='__traceiter_android_vh_try_to_unmap_one' filepath='include/trace/hooks/mm.h' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_try_to_unmap_one'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='118' column='1'/>
+        <parameter type-id='2ae08426' name='vma' filepath='include/trace/hooks/mm.h' line='118' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/mm.h' line='118' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='include/trace/hooks/mm.h' line='118' column='1'/>
+        <parameter type-id='b50a4934' name='ret' filepath='include/trace/hooks/mm.h' line='118' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_tune_inactive_ratio' mangled-name='__traceiter_android_vh_tune_inactive_ratio' filepath='include/trace/hooks/vmscan.h' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_tune_inactive_ratio'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/vmscan.h' line='51' column='1'/>
+        <parameter type-id='1d2c2b85' name='inactive_ratio' filepath='include/trace/hooks/vmscan.h' line='51' column='1'/>
+        <parameter type-id='95e97e5e' name='file' filepath='include/trace/hooks/vmscan.h' line='51' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_tune_mmap_readaround' mangled-name='__traceiter_android_vh_tune_mmap_readaround' filepath='include/trace/hooks/mm.h' line='111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_tune_mmap_readaround'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='111' column='1'/>
+        <parameter type-id='f0981eeb' name='ra_pages' filepath='include/trace/hooks/mm.h' line='111' column='1'/>
+        <parameter type-id='7359adad' name='pgoff' filepath='include/trace/hooks/mm.h' line='111' column='1'/>
+        <parameter type-id='1d2c2b85' name='start' filepath='include/trace/hooks/mm.h' line='111' column='1'/>
+        <parameter type-id='807869d3' name='size' filepath='include/trace/hooks/mm.h' line='111' column='1'/>
+        <parameter type-id='807869d3' name='async_size' filepath='include/trace/hooks/mm.h' line='111' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_tune_scan_type' mangled-name='__traceiter_android_vh_tune_scan_type' filepath='include/trace/hooks/vmscan.h' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_tune_scan_type'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/vmscan.h' line='36' column='1'/>
+        <parameter type-id='26a90f95' name='scan_type' filepath='include/trace/hooks/vmscan.h' line='36' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_tune_swappiness' mangled-name='__traceiter_android_vh_tune_swappiness' filepath='include/trace/hooks/vmscan.h' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_tune_swappiness'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/vmscan.h' line='39' column='1'/>
+        <parameter type-id='7292109c' name='swappiness' filepath='include/trace/hooks/vmscan.h' line='39' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_check_int_errors' mangled-name='__traceiter_android_vh_ufs_check_int_errors' filepath='include/trace/hooks/ufshcd.h' line='62' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_check_int_errors'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='62' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='62' column='1'/>
+        <parameter type-id='b50a4934' name='queue_eh_work' filepath='include/trace/hooks/ufshcd.h' line='62' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_clock_scaling' mangled-name='__traceiter_android_vh_ufs_clock_scaling' filepath='include/trace/hooks/ufshcd.h' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_clock_scaling'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='70' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='70' column='1'/>
+        <parameter type-id='d8e6b335' name='force_out' filepath='include/trace/hooks/ufshcd.h' line='70' column='1'/>
+        <parameter type-id='d8e6b335' name='force_scaling' filepath='include/trace/hooks/ufshcd.h' line='70' column='1'/>
+        <parameter type-id='d8e6b335' name='scale_up' filepath='include/trace/hooks/ufshcd.h' line='70' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_compl_command' mangled-name='__traceiter_android_vh_ufs_compl_command' filepath='include/trace/hooks/ufshcd.h' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_compl_command'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='50' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='50' column='1'/>
+        <parameter type-id='6ca6fa6d' name='lrbp' filepath='include/trace/hooks/ufshcd.h' line='50' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_fill_prdt' mangled-name='__traceiter_android_vh_ufs_fill_prdt' filepath='include/trace/hooks/ufshcd.h' line='24' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_fill_prdt'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='24' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='24' column='1'/>
+        <parameter type-id='6ca6fa6d' name='lrbp' filepath='include/trace/hooks/ufshcd.h' line='24' column='1'/>
+        <parameter type-id='f0981eeb' name='segments' filepath='include/trace/hooks/ufshcd.h' line='24' column='1'/>
+        <parameter type-id='7292109c' name='err' filepath='include/trace/hooks/ufshcd.h' line='24' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_mcq_abort' mangled-name='__traceiter_android_vh_ufs_mcq_abort' filepath='include/trace/hooks/ufshcd.h' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_mcq_abort'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='123' column='1'/>
+        <parameter type-id='0b8718c0' name='cmd' filepath='include/trace/hooks/ufshcd.h' line='123' column='1'/>
+        <parameter type-id='7292109c' name='ret' filepath='include/trace/hooks/ufshcd.h' line='123' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_mcq_clear_cmd' mangled-name='__traceiter_android_vh_ufs_mcq_clear_cmd' filepath='include/trace/hooks/ufshcd.h' line='127' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_mcq_clear_cmd'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='127' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='127' column='1'/>
+        <parameter type-id='95e97e5e' name='tag' filepath='include/trace/hooks/ufshcd.h' line='127' column='1'/>
+        <parameter type-id='7292109c' name='ret' filepath='include/trace/hooks/ufshcd.h' line='127' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_mcq_clear_pending' mangled-name='__traceiter_android_vh_ufs_mcq_clear_pending' filepath='include/trace/hooks/ufshcd.h' line='131' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_mcq_clear_pending'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='131' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='131' column='1'/>
+        <parameter type-id='7292109c' name='ret' filepath='include/trace/hooks/ufshcd.h' line='131' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_mcq_config' mangled-name='__traceiter_android_vh_ufs_mcq_config' filepath='include/trace/hooks/ufshcd.h' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_mcq_config'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='110' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='110' column='1'/>
+        <parameter type-id='7292109c' name='err' filepath='include/trace/hooks/ufshcd.h' line='110' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_mcq_get_outstanding_reqs' mangled-name='__traceiter_android_vh_ufs_mcq_get_outstanding_reqs' filepath='include/trace/hooks/ufshcd.h' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_mcq_get_outstanding_reqs'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='118' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='118' column='1'/>
+        <parameter type-id='9b88c47d' name='outstanding' filepath='include/trace/hooks/ufshcd.h' line='118' column='1'/>
+        <parameter type-id='7292109c' name='nr_tag' filepath='include/trace/hooks/ufshcd.h' line='118' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_mcq_handler' mangled-name='__traceiter_android_vh_ufs_mcq_handler' filepath='include/trace/hooks/ufshcd.h' line='90' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_mcq_handler'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='90' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='90' column='1'/>
+        <parameter type-id='19c2251e' name='intr_status' filepath='include/trace/hooks/ufshcd.h' line='90' column='1'/>
+        <parameter type-id='773b5ace' name='retval' filepath='include/trace/hooks/ufshcd.h' line='90' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_mcq_has_oustanding_reqs' mangled-name='__traceiter_android_vh_ufs_mcq_has_oustanding_reqs' filepath='include/trace/hooks/ufshcd.h' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_mcq_has_oustanding_reqs'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='114' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='114' column='1'/>
+        <parameter type-id='d8e6b335' name='ret' filepath='include/trace/hooks/ufshcd.h' line='114' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_mcq_hba_capabilities' mangled-name='__traceiter_android_vh_ufs_mcq_hba_capabilities' filepath='include/trace/hooks/ufshcd.h' line='98' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_mcq_hba_capabilities'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='98' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='98' column='1'/>
+        <parameter type-id='7292109c' name='err' filepath='include/trace/hooks/ufshcd.h' line='98' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_mcq_make_hba_operational' mangled-name='__traceiter_android_vh_ufs_mcq_make_hba_operational' filepath='include/trace/hooks/ufshcd.h' line='94' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_mcq_make_hba_operational'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='94' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='94' column='1'/>
+        <parameter type-id='7292109c' name='err' filepath='include/trace/hooks/ufshcd.h' line='94' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_mcq_map_tag' mangled-name='__traceiter_android_vh_ufs_mcq_map_tag' filepath='include/trace/hooks/ufshcd.h' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_mcq_map_tag'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='82' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='82' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='include/trace/hooks/ufshcd.h' line='82' column='1'/>
+        <parameter type-id='7292109c' name='tag' filepath='include/trace/hooks/ufshcd.h' line='82' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_mcq_max_tag' mangled-name='__traceiter_android_vh_ufs_mcq_max_tag' filepath='include/trace/hooks/ufshcd.h' line='78' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_mcq_max_tag'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='78' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='78' column='1'/>
+        <parameter type-id='7292109c' name='max_tag' filepath='include/trace/hooks/ufshcd.h' line='78' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_mcq_print_trs' mangled-name='__traceiter_android_vh_ufs_mcq_print_trs' filepath='include/trace/hooks/ufshcd.h' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_mcq_print_trs'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='102' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='102' column='1'/>
+        <parameter type-id='b50a4934' name='pr_prdt' filepath='include/trace/hooks/ufshcd.h' line='102' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_mcq_send_command' mangled-name='__traceiter_android_vh_ufs_mcq_send_command' filepath='include/trace/hooks/ufshcd.h' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_mcq_send_command'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='106' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='106' column='1'/>
+        <parameter type-id='f0981eeb' name='task_tag' filepath='include/trace/hooks/ufshcd.h' line='106' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_mcq_set_sqid' mangled-name='__traceiter_android_vh_ufs_mcq_set_sqid' filepath='include/trace/hooks/ufshcd.h' line='86' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_mcq_set_sqid'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='86' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='86' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='include/trace/hooks/ufshcd.h' line='86' column='1'/>
+        <parameter type-id='6ca6fa6d' name='lrbp' filepath='include/trace/hooks/ufshcd.h' line='86' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_prepare_command' mangled-name='__traceiter_android_vh_ufs_prepare_command' filepath='include/trace/hooks/ufshcd.h' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_prepare_command'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='37' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='37' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='include/trace/hooks/ufshcd.h' line='37' column='1'/>
+        <parameter type-id='6ca6fa6d' name='lrbp' filepath='include/trace/hooks/ufshcd.h' line='37' column='1'/>
+        <parameter type-id='7292109c' name='err' filepath='include/trace/hooks/ufshcd.h' line='37' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_send_command' mangled-name='__traceiter_android_vh_ufs_send_command' filepath='include/trace/hooks/ufshcd.h' line='46' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_send_command'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='46' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='46' column='1'/>
+        <parameter type-id='6ca6fa6d' name='lrbp' filepath='include/trace/hooks/ufshcd.h' line='46' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_send_tm_command' mangled-name='__traceiter_android_vh_ufs_send_tm_command' filepath='include/trace/hooks/ufshcd.h' line='58' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_send_tm_command'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='58' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='58' column='1'/>
+        <parameter type-id='95e97e5e' name='tag' filepath='include/trace/hooks/ufshcd.h' line='58' column='1'/>
+        <parameter type-id='95e97e5e' name='str_t' filepath='include/trace/hooks/ufshcd.h' line='58' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_send_uic_command' mangled-name='__traceiter_android_vh_ufs_send_uic_command' filepath='include/trace/hooks/ufshcd.h' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_send_uic_command'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='54' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='54' column='1'/>
+        <parameter type-id='cdf785b8' name='ucmd' filepath='include/trace/hooks/ufshcd.h' line='54' column='1'/>
+        <parameter type-id='95e97e5e' name='str_t' filepath='include/trace/hooks/ufshcd.h' line='54' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_update_sdev' mangled-name='__traceiter_android_vh_ufs_update_sdev' filepath='include/trace/hooks/ufshcd.h' line='66' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_update_sdev'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='66' column='1'/>
+        <parameter type-id='eb572b74' name='sdev' filepath='include/trace/hooks/ufshcd.h' line='66' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_update_sysfs' mangled-name='__traceiter_android_vh_ufs_update_sysfs' filepath='include/trace/hooks/ufshcd.h' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_update_sysfs'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='42' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='42' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_ufs_use_mcq_hooks' mangled-name='__traceiter_android_vh_ufs_use_mcq_hooks' filepath='include/trace/hooks/ufshcd.h' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_ufs_use_mcq_hooks'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/ufshcd.h' line='74' column='1'/>
+        <parameter type-id='442b8d89' name='hba' filepath='include/trace/hooks/ufshcd.h' line='74' column='1'/>
+        <parameter type-id='d8e6b335' name='use_mcq' filepath='include/trace/hooks/ufshcd.h' line='74' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_unreserve_highatomic_bypass' mangled-name='__traceiter_android_vh_unreserve_highatomic_bypass' filepath='include/trace/hooks/mm.h' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_unreserve_highatomic_bypass'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='101' column='1'/>
+        <parameter type-id='b50a4934' name='force' filepath='include/trace/hooks/mm.h' line='101' column='1'/>
+        <parameter type-id='0a0aff97' name='zone' filepath='include/trace/hooks/mm.h' line='101' column='1'/>
+        <parameter type-id='d8e6b335' name='skip_unreserve_highatomic' filepath='include/trace/hooks/mm.h' line='101' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_update_page_mapcount' mangled-name='__traceiter_android_vh_update_page_mapcount' filepath='include/trace/hooks/mm.h' line='148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_update_page_mapcount'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='148' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='include/trace/hooks/mm.h' line='148' column='1'/>
+        <parameter type-id='b50a4934' name='inc_size' filepath='include/trace/hooks/mm.h' line='148' column='1'/>
+        <parameter type-id='b50a4934' name='compound' filepath='include/trace/hooks/mm.h' line='148' column='1'/>
+        <parameter type-id='d8e6b335' name='first_mapping' filepath='include/trace/hooks/mm.h' line='148' column='1'/>
+        <parameter type-id='d8e6b335' name='success' filepath='include/trace/hooks/mm.h' line='148' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_update_topology_flags_workfn' mangled-name='__traceiter_android_vh_update_topology_flags_workfn' filepath='include/trace/hooks/topology.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_update_topology_flags_workfn'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/topology.h' line='23' column='1'/>
+        <parameter type-id='eaa32e2f' name='unused' filepath='include/trace/hooks/topology.h' line='23' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_usb_new_device_added' mangled-name='__traceiter_android_vh_usb_new_device_added' filepath='include/trace/hooks/usb.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_usb_new_device_added'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/usb.h' line='20' column='1'/>
+        <parameter type-id='25e60cb2' name='udev' filepath='include/trace/hooks/usb.h' line='20' column='1'/>
+        <parameter type-id='7292109c' name='err' filepath='include/trace/hooks/usb.h' line='20' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_use_cma_first_check' mangled-name='__traceiter_android_vh_use_cma_first_check' filepath='include/trace/hooks/mm.h' line='206' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_use_cma_first_check'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='206' column='1'/>
+        <parameter type-id='d8e6b335' name='use_cma_first_check' filepath='include/trace/hooks/mm.h' line='206' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_vmpressure' mangled-name='__traceiter_android_vh_vmpressure' filepath='include/trace/hooks/mm.h' line='141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_vmpressure'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mm.h' line='141' column='1'/>
+        <parameter type-id='223696fb' name='memcg' filepath='include/trace/hooks/mm.h' line='141' column='1'/>
+        <parameter type-id='d8e6b335' name='bypass' filepath='include/trace/hooks/mm.h' line='141' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_watchdog_timer_softlockup' mangled-name='__traceiter_android_vh_watchdog_timer_softlockup' filepath='include/trace/hooks/softlockup.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_watchdog_timer_softlockup'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/softlockup.h' line='16' column='1'/>
+        <parameter type-id='95e97e5e' name='duration' filepath='include/trace/hooks/softlockup.h' line='16' column='1'/>
+        <parameter type-id='4616a179' name='regs' filepath='include/trace/hooks/softlockup.h' line='16' column='1'/>
+        <parameter type-id='b50a4934' name='is_panic' filepath='include/trace/hooks/softlockup.h' line='16' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_android_vh_wq_lockup_pool' mangled-name='__traceiter_android_vh_wq_lockup_pool' filepath='include/trace/hooks/wqlockup.h' line='13' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_wq_lockup_pool'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/wqlockup.h' line='13' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='include/trace/hooks/wqlockup.h' line='13' column='1'/>
+        <parameter type-id='7359adad' name='pool_ts' filepath='include/trace/hooks/wqlockup.h' line='13' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_binder_transaction_received' mangled-name='__traceiter_binder_transaction_received' filepath='drivers/android/./binder_trace.h' line='179' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_binder_transaction_received'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='drivers/android/./binder_trace.h' line='179' column='1'/>
+        <parameter type-id='f4c3bb4c' name='t' filepath='drivers/android/./binder_trace.h' line='179' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_binder_txn_latency_free' mangled-name='__traceiter_binder_txn_latency_free' filepath='drivers/android/./binder_trace.h' line='122' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_binder_txn_latency_free'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='drivers/android/./binder_trace.h' line='122' column='1'/>
+        <parameter type-id='f4c3bb4c' name='t' filepath='drivers/android/./binder_trace.h' line='122' column='1'/>
+        <parameter type-id='95e97e5e' name='from_proc' filepath='drivers/android/./binder_trace.h' line='122' column='1'/>
+        <parameter type-id='95e97e5e' name='from_thread' filepath='drivers/android/./binder_trace.h' line='122' column='1'/>
+        <parameter type-id='95e97e5e' name='to_proc' filepath='drivers/android/./binder_trace.h' line='122' column='1'/>
+        <parameter type-id='95e97e5e' name='to_thread' filepath='drivers/android/./binder_trace.h' line='122' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_block_bio_complete' mangled-name='__traceiter_block_bio_complete' filepath='include/trace/events/block.h' line='233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_block_bio_complete'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/block.h' line='233' column='1'/>
+        <parameter type-id='e7d2a5fc' name='q' filepath='include/trace/events/block.h' line='233' column='1'/>
+        <parameter type-id='fb55efa1' name='bio' filepath='include/trace/events/block.h' line='233' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_block_bio_queue' mangled-name='__traceiter_block_bio_queue' filepath='include/trace/events/block.h' line='332' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_block_bio_queue'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/block.h' line='332' column='1'/>
+        <parameter type-id='fb55efa1' name='bio' filepath='include/trace/events/block.h' line='332' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_block_bio_remap' mangled-name='__traceiter_block_bio_remap' filepath='include/trace/events/block.h' line='456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_block_bio_remap'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/block.h' line='456' column='1'/>
+        <parameter type-id='fb55efa1' name='bio' filepath='include/trace/events/block.h' line='456' column='1'/>
+        <parameter type-id='8504f260' name='dev' filepath='include/trace/events/block.h' line='456' column='1'/>
+        <parameter type-id='a42536cd' name='from' filepath='include/trace/events/block.h' line='456' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_block_getrq' mangled-name='__traceiter_block_getrq' filepath='include/trace/events/block.h' line='343' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_block_getrq'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/block.h' line='343' column='1'/>
+        <parameter type-id='fb55efa1' name='bio' filepath='include/trace/events/block.h' line='343' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_block_rq_complete' mangled-name='__traceiter_block_rq_complete' filepath='include/trace/events/block.h' line='115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_block_rq_complete'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/block.h' line='115' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='include/trace/events/block.h' line='115' column='1'/>
+        <parameter type-id='95e97e5e' name='error' filepath='include/trace/events/block.h' line='115' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_bytes' filepath='include/trace/events/block.h' line='115' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_block_rq_insert' mangled-name='__traceiter_block_rq_insert' filepath='include/trace/events/block.h' line='190' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_block_rq_insert'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/block.h' line='190' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='include/trace/events/block.h' line='190' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_block_rq_issue' mangled-name='__traceiter_block_rq_issue' filepath='include/trace/events/block.h' line='204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_block_rq_issue'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/block.h' line='204' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='include/trace/events/block.h' line='204' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_block_rq_merge' mangled-name='__traceiter_block_rq_merge' filepath='include/trace/events/block.h' line='218' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_block_rq_merge'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/block.h' line='218' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='include/trace/events/block.h' line='218' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_block_rq_requeue' mangled-name='__traceiter_block_rq_requeue' filepath='include/trace/events/block.h' line='73' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_block_rq_requeue'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/block.h' line='73' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='include/trace/events/block.h' line='73' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_block_split' mangled-name='__traceiter_block_split' filepath='include/trace/events/block.h' line='418' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_block_split'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/block.h' line='418' column='1'/>
+        <parameter type-id='fb55efa1' name='bio' filepath='include/trace/events/block.h' line='418' column='1'/>
+        <parameter type-id='f0981eeb' name='new_sector' filepath='include/trace/events/block.h' line='418' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_clock_set_rate' mangled-name='__traceiter_clock_set_rate' filepath='include/trace/events/power.h' line='322' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_clock_set_rate'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/power.h' line='322' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='include/trace/events/power.h' line='322' column='1'/>
+        <parameter type-id='f0981eeb' name='state' filepath='include/trace/events/power.h' line='322' column='1'/>
+        <parameter type-id='f0981eeb' name='cpu_id' filepath='include/trace/events/power.h' line='322' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_cpu_frequency' mangled-name='__traceiter_cpu_frequency' filepath='include/trace/events/power.h' line='145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_cpu_frequency'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/power.h' line='145' column='1'/>
+        <parameter type-id='f0981eeb' name='frequency' filepath='include/trace/events/power.h' line='145' column='1'/>
+        <parameter type-id='f0981eeb' name='cpu_id' filepath='include/trace/events/power.h' line='145' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_cpu_frequency_limits' mangled-name='__traceiter_cpu_frequency_limits' filepath='include/trace/events/power.h' line='152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_cpu_frequency_limits'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/power.h' line='152' column='1'/>
+        <parameter type-id='343c3ae4' name='policy' filepath='include/trace/events/power.h' line='152' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_cpu_idle' mangled-name='__traceiter_cpu_idle' filepath='include/trace/events/power.h' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_cpu_idle'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/power.h' line='36' column='1'/>
+        <parameter type-id='f0981eeb' name='state' filepath='include/trace/events/power.h' line='36' column='1'/>
+        <parameter type-id='f0981eeb' name='cpu_id' filepath='include/trace/events/power.h' line='36' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_device_pm_callback_end' mangled-name='__traceiter_device_pm_callback_end' filepath='include/trace/events/power.h' line='204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_device_pm_callback_end'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/power.h' line='204' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='include/trace/events/power.h' line='204' column='1'/>
+        <parameter type-id='95e97e5e' name='error' filepath='include/trace/events/power.h' line='204' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_device_pm_callback_start' mangled-name='__traceiter_device_pm_callback_start' filepath='include/trace/events/power.h' line='176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_device_pm_callback_start'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/power.h' line='176' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='include/trace/events/power.h' line='176' column='1'/>
+        <parameter type-id='80f4b756' name='pm_ops' filepath='include/trace/events/power.h' line='176' column='1'/>
+        <parameter type-id='95e97e5e' name='event' filepath='include/trace/events/power.h' line='176' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_dma_fence_emit' mangled-name='__traceiter_dma_fence_emit' filepath='include/trace/events/dma_fence.h' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_dma_fence_emit'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/dma_fence.h' line='37' column='1'/>
+        <parameter type-id='28271da3' name='fence' filepath='include/trace/events/dma_fence.h' line='37' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_dwc3_complete_trb' mangled-name='__traceiter_dwc3_complete_trb' filepath='drivers/usb/dwc3/./trace.h' line='285' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_dwc3_complete_trb'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='drivers/usb/dwc3/./trace.h' line='285' column='1'/>
+        <parameter type-id='b31af340' name='dep' filepath='drivers/usb/dwc3/./trace.h' line='285' column='1'/>
+        <parameter type-id='0d6a59e1' name='trb' filepath='drivers/usb/dwc3/./trace.h' line='285' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_dwc3_ctrl_req' mangled-name='__traceiter_dwc3_ctrl_req' filepath='drivers/usb/dwc3/./trace.h' line='98' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_dwc3_ctrl_req'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='drivers/usb/dwc3/./trace.h' line='98' column='1'/>
+        <parameter type-id='016d41e2' name='ctrl' filepath='drivers/usb/dwc3/./trace.h' line='98' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_dwc3_ep_queue' mangled-name='__traceiter_dwc3_ep_queue' filepath='drivers/usb/dwc3/./trace.h' line='145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_dwc3_ep_queue'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='drivers/usb/dwc3/./trace.h' line='145' column='1'/>
+        <parameter type-id='952cef4e' name='req' filepath='drivers/usb/dwc3/./trace.h' line='145' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_dwc3_event' mangled-name='__traceiter_dwc3_event' filepath='drivers/usb/dwc3/./trace.h' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_dwc3_event'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='drivers/usb/dwc3/./trace.h' line='68' column='1'/>
+        <parameter type-id='19c2251e' name='event' filepath='drivers/usb/dwc3/./trace.h' line='68' column='1'/>
+        <parameter type-id='5ac4ba20' name='dwc' filepath='drivers/usb/dwc3/./trace.h' line='68' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_dwc3_readl' mangled-name='__traceiter_dwc3_readl' filepath='drivers/usb/dwc3/./trace.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_dwc3_readl'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='drivers/usb/dwc3/./trace.h' line='41' column='1'/>
+        <parameter type-id='eaa32e2f' name='base' filepath='drivers/usb/dwc3/./trace.h' line='41' column='1'/>
+        <parameter type-id='19c2251e' name='offset' filepath='drivers/usb/dwc3/./trace.h' line='41' column='1'/>
+        <parameter type-id='19c2251e' name='value' filepath='drivers/usb/dwc3/./trace.h' line='41' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_dwc3_writel' mangled-name='__traceiter_dwc3_writel' filepath='drivers/usb/dwc3/./trace.h' line='46' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_dwc3_writel'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='drivers/usb/dwc3/./trace.h' line='46' column='1'/>
+        <parameter type-id='eaa32e2f' name='base' filepath='drivers/usb/dwc3/./trace.h' line='46' column='1'/>
+        <parameter type-id='19c2251e' name='offset' filepath='drivers/usb/dwc3/./trace.h' line='46' column='1'/>
+        <parameter type-id='19c2251e' name='value' filepath='drivers/usb/dwc3/./trace.h' line='46' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_gpu_mem_total' mangled-name='__traceiter_gpu_mem_total' filepath='include/trace/events/gpu_mem.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_gpu_mem_total'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/gpu_mem.h' line='30' column='1'/>
+        <parameter type-id='8f92235e' name='gpu_id' filepath='include/trace/events/gpu_mem.h' line='30' column='1'/>
+        <parameter type-id='8f92235e' name='pid' filepath='include/trace/events/gpu_mem.h' line='30' column='1'/>
+        <parameter type-id='9c313c2d' name='size' filepath='include/trace/events/gpu_mem.h' line='30' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_hrtimer_expire_entry' mangled-name='__traceiter_hrtimer_expire_entry' filepath='include/trace/events/timer.h' line='232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_hrtimer_expire_entry'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/timer.h' line='232' column='1'/>
+        <parameter type-id='08c8d0fa' name='hrtimer' filepath='include/trace/events/timer.h' line='232' column='1'/>
+        <parameter type-id='44372936' name='now' filepath='include/trace/events/timer.h' line='232' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_hrtimer_expire_exit' mangled-name='__traceiter_hrtimer_expire_exit' filepath='include/trace/events/timer.h' line='279' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_hrtimer_expire_exit'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/timer.h' line='279' column='1'/>
+        <parameter type-id='08c8d0fa' name='hrtimer' filepath='include/trace/events/timer.h' line='279' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_ipi_entry' mangled-name='__traceiter_ipi_entry' filepath='include/trace/events/ipi.h' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_ipi_entry'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/ipi.h' line='64' column='1'/>
+        <parameter type-id='80f4b756' name='reason' filepath='include/trace/events/ipi.h' line='64' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_ipi_exit' mangled-name='__traceiter_ipi_exit' filepath='include/trace/events/ipi.h' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_ipi_exit'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/ipi.h' line='80' column='1'/>
+        <parameter type-id='80f4b756' name='reason' filepath='include/trace/events/ipi.h' line='80' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_ipi_raise' mangled-name='__traceiter_ipi_raise' filepath='include/trace/events/ipi.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_ipi_raise'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/ipi.h' line='19' column='1'/>
+        <parameter type-id='5f8a1ac4' name='mask' filepath='include/trace/events/ipi.h' line='19' column='1'/>
+        <parameter type-id='80f4b756' name='reason' filepath='include/trace/events/ipi.h' line='19' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_irq_handler_entry' mangled-name='__traceiter_irq_handler_entry' filepath='include/trace/events/irq.h' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_irq_handler_entry'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/irq.h' line='53' column='1'/>
+        <parameter type-id='95e97e5e' name='irq' filepath='include/trace/events/irq.h' line='53' column='1'/>
+        <parameter type-id='ba361e53' name='action' filepath='include/trace/events/irq.h' line='53' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_irq_handler_exit' mangled-name='__traceiter_irq_handler_exit' filepath='include/trace/events/irq.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_irq_handler_exit'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/irq.h' line='83' column='1'/>
+        <parameter type-id='95e97e5e' name='irq' filepath='include/trace/events/irq.h' line='83' column='1'/>
+        <parameter type-id='ba361e53' name='action' filepath='include/trace/events/irq.h' line='83' column='1'/>
+        <parameter type-id='95e97e5e' name='ret' filepath='include/trace/events/irq.h' line='83' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_kfree_skb' mangled-name='__traceiter_kfree_skb' filepath='include/trace/events/skb.h' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_kfree_skb'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/skb.h' line='44' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='include/trace/events/skb.h' line='44' column='1'/>
+        <parameter type-id='eaa32e2f' name='location' filepath='include/trace/events/skb.h' line='44' column='1'/>
+        <parameter type-id='1cce8201' name='reason' filepath='include/trace/events/skb.h' line='44' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_map' mangled-name='__traceiter_map' filepath='include/trace/events/iommu.h' line='86' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_map'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/iommu.h' line='86' column='1'/>
+        <parameter type-id='7359adad' name='iova' filepath='include/trace/events/iommu.h' line='86' column='1'/>
+        <parameter type-id='2522883d' name='paddr' filepath='include/trace/events/iommu.h' line='86' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='include/trace/events/iommu.h' line='86' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_mm_vmscan_direct_reclaim_begin' mangled-name='__traceiter_mm_vmscan_direct_reclaim_begin' filepath='include/trace/events/vmscan.h' line='122' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_mm_vmscan_direct_reclaim_begin'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/vmscan.h' line='122' column='1'/>
+        <parameter type-id='95e97e5e' name='order' filepath='include/trace/events/vmscan.h' line='122' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_flags' filepath='include/trace/events/vmscan.h' line='122' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_mmap_lock_acquire_returned' mangled-name='__traceiter_mmap_lock_acquire_returned' filepath='include/trace/events/mmap_lock.h' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_mmap_lock_acquire_returned'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/mmap_lock.h' line='44' column='1'/>
+        <parameter type-id='df4b7819' name='mm' filepath='include/trace/events/mmap_lock.h' line='44' column='1'/>
+        <parameter type-id='80f4b756' name='memcg_path' filepath='include/trace/events/mmap_lock.h' line='44' column='1'/>
+        <parameter type-id='b50a4934' name='write' filepath='include/trace/events/mmap_lock.h' line='44' column='1'/>
+        <parameter type-id='b50a4934' name='success' filepath='include/trace/events/mmap_lock.h' line='44' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_mmap_lock_released' mangled-name='__traceiter_mmap_lock_released' filepath='include/trace/events/mmap_lock.h' line='76' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_mmap_lock_released'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/mmap_lock.h' line='76' column='1'/>
+        <parameter type-id='df4b7819' name='mm' filepath='include/trace/events/mmap_lock.h' line='76' column='1'/>
+        <parameter type-id='80f4b756' name='memcg_path' filepath='include/trace/events/mmap_lock.h' line='76' column='1'/>
+        <parameter type-id='b50a4934' name='write' filepath='include/trace/events/mmap_lock.h' line='76' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_mmap_lock_start_locking' mangled-name='__traceiter_mmap_lock_start_locking' filepath='include/trace/events/mmap_lock.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_mmap_lock_start_locking'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/mmap_lock.h' line='16' column='1'/>
+        <parameter type-id='df4b7819' name='mm' filepath='include/trace/events/mmap_lock.h' line='16' column='1'/>
+        <parameter type-id='80f4b756' name='memcg_path' filepath='include/trace/events/mmap_lock.h' line='16' column='1'/>
+        <parameter type-id='b50a4934' name='write' filepath='include/trace/events/mmap_lock.h' line='16' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_net_dev_queue' mangled-name='__traceiter_net_dev_queue' filepath='include/trace/events/net.h' line='143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_net_dev_queue'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/net.h' line='143' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='include/trace/events/net.h' line='143' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_net_dev_xmit' mangled-name='__traceiter_net_dev_xmit' filepath='include/trace/events/net.h' line='71' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_net_dev_xmit'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/net.h' line='71' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='include/trace/events/net.h' line='71' column='1'/>
+        <parameter type-id='95e97e5e' name='rc' filepath='include/trace/events/net.h' line='71' column='1'/>
+        <parameter type-id='68a2d05b' name='dev' filepath='include/trace/events/net.h' line='71' column='1'/>
+        <parameter type-id='f0981eeb' name='skb_len' filepath='include/trace/events/net.h' line='71' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_netif_receive_skb' mangled-name='__traceiter_netif_receive_skb' filepath='include/trace/events/net.h' line='150' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_netif_receive_skb'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/net.h' line='150' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='include/trace/events/net.h' line='150' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_netif_rx' mangled-name='__traceiter_netif_rx' filepath='include/trace/events/net.h' line='157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_netif_rx'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/net.h' line='157' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='include/trace/events/net.h' line='157' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_pelt_cfs_tp' mangled-name='__traceiter_pelt_cfs_tp' filepath='include/trace/events/sched.h' line='715' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_pelt_cfs_tp'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/sched.h' line='715' column='1'/>
+        <parameter type-id='a6892387' name='cfs_rq' filepath='include/trace/events/sched.h' line='715' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_pelt_dl_tp' mangled-name='__traceiter_pelt_dl_tp' filepath='include/trace/events/sched.h' line='723' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_pelt_dl_tp'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/sched.h' line='723' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/events/sched.h' line='723' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_pelt_irq_tp' mangled-name='__traceiter_pelt_irq_tp' filepath='include/trace/events/sched.h' line='731' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_pelt_irq_tp'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/sched.h' line='731' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/events/sched.h' line='731' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_pelt_rt_tp' mangled-name='__traceiter_pelt_rt_tp' filepath='include/trace/events/sched.h' line='719' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_pelt_rt_tp'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/sched.h' line='719' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/events/sched.h' line='719' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_pelt_se_tp' mangled-name='__traceiter_pelt_se_tp' filepath='include/trace/events/sched.h' line='735' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_pelt_se_tp'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/sched.h' line='735' column='1'/>
+        <parameter type-id='ff2b3d10' name='se' filepath='include/trace/events/sched.h' line='735' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_rwmmio_post_read' mangled-name='__traceiter_rwmmio_post_read' filepath='include/trace/events/rwmmio.h' line='85' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_rwmmio_post_read'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/rwmmio.h' line='85' column='1'/>
+        <parameter type-id='7359adad' name='caller' filepath='include/trace/events/rwmmio.h' line='85' column='1'/>
+        <parameter type-id='91ce1af9' name='val' filepath='include/trace/events/rwmmio.h' line='85' column='1'/>
+        <parameter type-id='f9b06939' name='width' filepath='include/trace/events/rwmmio.h' line='85' column='1'/>
+        <parameter type-id='60f8eab0' name='addr' filepath='include/trace/events/rwmmio.h' line='85' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_rwmmio_read' mangled-name='__traceiter_rwmmio_read' filepath='include/trace/events/rwmmio.h' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_rwmmio_read'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/rwmmio.h' line='63' column='1'/>
+        <parameter type-id='7359adad' name='caller' filepath='include/trace/events/rwmmio.h' line='63' column='1'/>
+        <parameter type-id='f9b06939' name='width' filepath='include/trace/events/rwmmio.h' line='63' column='1'/>
+        <parameter type-id='60f8eab0' name='addr' filepath='include/trace/events/rwmmio.h' line='63' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_rwmmio_write' mangled-name='__traceiter_rwmmio_write' filepath='include/trace/events/rwmmio.h' line='13' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_rwmmio_write'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/rwmmio.h' line='13' column='1'/>
+        <parameter type-id='7359adad' name='caller' filepath='include/trace/events/rwmmio.h' line='13' column='1'/>
+        <parameter type-id='91ce1af9' name='val' filepath='include/trace/events/rwmmio.h' line='13' column='1'/>
+        <parameter type-id='f9b06939' name='width' filepath='include/trace/events/rwmmio.h' line='13' column='1'/>
+        <parameter type-id='fe09dd29' name='addr' filepath='include/trace/events/rwmmio.h' line='13' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_sched_cpu_capacity_tp' mangled-name='__traceiter_sched_cpu_capacity_tp' filepath='include/trace/events/sched.h' line='739' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_sched_cpu_capacity_tp'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/sched.h' line='739' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/events/sched.h' line='739' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_sched_overutilized_tp' mangled-name='__traceiter_sched_overutilized_tp' filepath='include/trace/events/sched.h' line='743' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_sched_overutilized_tp'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/sched.h' line='743' column='1'/>
+        <parameter type-id='c13bca88' name='rd' filepath='include/trace/events/sched.h' line='743' column='1'/>
+        <parameter type-id='b50a4934' name='overutilized' filepath='include/trace/events/sched.h' line='743' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_sched_stat_blocked' mangled-name='__traceiter_sched_stat_blocked' filepath='include/trace/events/sched.h' line='483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_sched_stat_blocked'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/sched.h' line='483' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/events/sched.h' line='483' column='1'/>
+        <parameter type-id='91ce1af9' name='delay' filepath='include/trace/events/sched.h' line='483' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_sched_stat_iowait' mangled-name='__traceiter_sched_stat_iowait' filepath='include/trace/events/sched.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_sched_stat_iowait'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/sched.h' line='476' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/events/sched.h' line='476' column='1'/>
+        <parameter type-id='91ce1af9' name='delay' filepath='include/trace/events/sched.h' line='476' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_sched_stat_runtime' mangled-name='__traceiter_sched_stat_runtime' filepath='include/trace/events/sched.h' line='541' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_sched_stat_runtime'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/sched.h' line='541' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/events/sched.h' line='541' column='1'/>
+        <parameter type-id='91ce1af9' name='runtime' filepath='include/trace/events/sched.h' line='541' column='1'/>
+        <parameter type-id='91ce1af9' name='vruntime' filepath='include/trace/events/sched.h' line='541' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_sched_stat_sleep' mangled-name='__traceiter_sched_stat_sleep' filepath='include/trace/events/sched.h' line='468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_sched_stat_sleep'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/sched.h' line='468' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/events/sched.h' line='468' column='1'/>
+        <parameter type-id='91ce1af9' name='delay' filepath='include/trace/events/sched.h' line='468' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_sched_stat_wait' mangled-name='__traceiter_sched_stat_wait' filepath='include/trace/events/sched.h' line='460' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_sched_stat_wait'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/sched.h' line='460' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='include/trace/events/sched.h' line='460' column='1'/>
+        <parameter type-id='91ce1af9' name='delay' filepath='include/trace/events/sched.h' line='460' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_sched_switch' mangled-name='__traceiter_sched_switch' filepath='include/trace/events/sched.h' line='220' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_sched_switch'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/sched.h' line='220' column='1'/>
+        <parameter type-id='b50a4934' name='preempt' filepath='include/trace/events/sched.h' line='220' column='1'/>
+        <parameter type-id='f23e2572' name='prev' filepath='include/trace/events/sched.h' line='220' column='1'/>
+        <parameter type-id='f23e2572' name='next' filepath='include/trace/events/sched.h' line='220' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_sched_update_nr_running_tp' mangled-name='__traceiter_sched_update_nr_running_tp' filepath='include/trace/events/sched.h' line='755' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_sched_update_nr_running_tp'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/sched.h' line='755' column='1'/>
+        <parameter type-id='6ed6b432' name='rq' filepath='include/trace/events/sched.h' line='755' column='1'/>
+        <parameter type-id='95e97e5e' name='change' filepath='include/trace/events/sched.h' line='755' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_sched_util_est_cfs_tp' mangled-name='__traceiter_sched_util_est_cfs_tp' filepath='include/trace/events/sched.h' line='747' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_sched_util_est_cfs_tp'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/sched.h' line='747' column='1'/>
+        <parameter type-id='a6892387' name='cfs_rq' filepath='include/trace/events/sched.h' line='747' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_sched_util_est_se_tp' mangled-name='__traceiter_sched_util_est_se_tp' filepath='include/trace/events/sched.h' line='751' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_sched_util_est_se_tp'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/sched.h' line='751' column='1'/>
+        <parameter type-id='ff2b3d10' name='se' filepath='include/trace/events/sched.h' line='751' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_sched_waking' mangled-name='__traceiter_sched_waking' filepath='include/trace/events/sched.h' line='170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_sched_waking'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/sched.h' line='170' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='include/trace/events/sched.h' line='170' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_suspend_resume' mangled-name='__traceiter_suspend_resume' filepath='include/trace/events/power.h' line='226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_suspend_resume'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/power.h' line='226' column='1'/>
+        <parameter type-id='80f4b756' name='action' filepath='include/trace/events/power.h' line='226' column='1'/>
+        <parameter type-id='95e97e5e' name='val' filepath='include/trace/events/power.h' line='226' column='1'/>
+        <parameter type-id='b50a4934' name='start' filepath='include/trace/events/power.h' line='226' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_task_newtask' mangled-name='__traceiter_task_newtask' filepath='include/trace/events/task.h' line='9' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_task_newtask'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/task.h' line='9' column='1'/>
+        <parameter type-id='f23e2572' name='task' filepath='include/trace/events/task.h' line='9' column='1'/>
+        <parameter type-id='7359adad' name='clone_flags' filepath='include/trace/events/task.h' line='9' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_task_rename' mangled-name='__traceiter_task_rename' filepath='include/trace/events/task.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_task_rename'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/task.h' line='34' column='1'/>
+        <parameter type-id='f23e2572' name='task' filepath='include/trace/events/task.h' line='34' column='1'/>
+        <parameter type-id='80f4b756' name='comm' filepath='include/trace/events/task.h' line='34' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_unmap' mangled-name='__traceiter_unmap' filepath='include/trace/events/iommu.h' line='109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_unmap'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/iommu.h' line='109' column='1'/>
+        <parameter type-id='7359adad' name='iova' filepath='include/trace/events/iommu.h' line='109' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='include/trace/events/iommu.h' line='109' column='1'/>
+        <parameter type-id='b59d7dce' name='unmapped_size' filepath='include/trace/events/iommu.h' line='109' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_usb_gadget_connect' mangled-name='__traceiter_usb_gadget_connect' filepath='drivers/usb/gadget/udc/./trace.h' line='119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_usb_gadget_connect'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='drivers/usb/gadget/udc/./trace.h' line='119' column='1'/>
+        <parameter type-id='49a58c0c' name='g' filepath='drivers/usb/gadget/udc/./trace.h' line='119' column='1'/>
+        <parameter type-id='95e97e5e' name='ret' filepath='drivers/usb/gadget/udc/./trace.h' line='119' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_usb_gadget_disconnect' mangled-name='__traceiter_usb_gadget_disconnect' filepath='drivers/usb/gadget/udc/./trace.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_usb_gadget_disconnect'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='drivers/usb/gadget/udc/./trace.h' line='124' column='1'/>
+        <parameter type-id='49a58c0c' name='g' filepath='drivers/usb/gadget/udc/./trace.h' line='124' column='1'/>
+        <parameter type-id='95e97e5e' name='ret' filepath='drivers/usb/gadget/udc/./trace.h' line='124' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_wbc_writepage' mangled-name='__traceiter_wbc_writepage' filepath='include/trace/events/writeback.h' line='496' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_wbc_writepage'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/writeback.h' line='496' column='1'/>
+        <parameter type-id='c2c60445' name='wbc' filepath='include/trace/events/writeback.h' line='496' column='1'/>
+        <parameter type-id='ef4fae1b' name='bdi' filepath='include/trace/events/writeback.h' line='496' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_workqueue_execute_end' mangled-name='__traceiter_workqueue_execute_end' filepath='include/trace/events/workqueue.h' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_workqueue_execute_end'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/workqueue.h' line='108' column='1'/>
+        <parameter type-id='83c1bde6' name='work' filepath='include/trace/events/workqueue.h' line='108' column='1'/>
+        <parameter type-id='72666d3f' name='function' filepath='include/trace/events/workqueue.h' line='108' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_workqueue_execute_start' mangled-name='__traceiter_workqueue_execute_start' filepath='include/trace/events/workqueue.h' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_workqueue_execute_start'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/workqueue.h' line='82' column='1'/>
+        <parameter type-id='83c1bde6' name='work' filepath='include/trace/events/workqueue.h' line='82' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_xdp_exception' mangled-name='__traceiter_xdp_exception' filepath='include/trace/events/xdp.h' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_xdp_exception'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/xdp.h' line='28' column='1'/>
+        <parameter type-id='2ce52478' name='dev' filepath='include/trace/events/xdp.h' line='28' column='1'/>
+        <parameter type-id='18145275' name='xdp' filepath='include/trace/events/xdp.h' line='28' column='1'/>
+        <parameter type-id='19c2251e' name='act' filepath='include/trace/events/xdp.h' line='28' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__traceiter_xhci_urb_giveback' mangled-name='__traceiter_xhci_urb_giveback' filepath='drivers/usb/host/./xhci-trace.h' line='303' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_xhci_urb_giveback'>
+        <parameter type-id='eaa32e2f' name='__data' filepath='drivers/usb/host/./xhci-trace.h' line='303' column='1'/>
+        <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/host/./xhci-trace.h' line='303' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='__tracepoint_android_fs_dataread_end' type-id='4ca0c298' mangled-name='__tracepoint_android_fs_dataread_end' visibility='default' filepath='include/trace/events/android_fs.h' line='16' column='1' elf-symbol-id='__tracepoint_android_fs_dataread_end'/>
+      <var-decl name='__tracepoint_android_fs_dataread_start' type-id='4ca0c298' mangled-name='__tracepoint_android_fs_dataread_start' visibility='default' filepath='include/trace/events/android_fs.h' line='11' column='1' elf-symbol-id='__tracepoint_android_fs_dataread_start'/>
+      <var-decl name='__tracepoint_android_fs_datawrite_end' type-id='4ca0c298' mangled-name='__tracepoint_android_fs_datawrite_end' visibility='default' filepath='include/trace/events/android_fs.h' line='25' column='1' elf-symbol-id='__tracepoint_android_fs_datawrite_end'/>
+      <var-decl name='__tracepoint_android_fs_datawrite_start' type-id='4ca0c298' mangled-name='__tracepoint_android_fs_datawrite_start' visibility='default' filepath='include/trace/events/android_fs.h' line='20' column='1' elf-symbol-id='__tracepoint_android_fs_datawrite_start'/>
+      <var-decl name='__tracepoint_android_rvh_account_irq' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_account_irq' visibility='default' filepath='include/trace/hooks/sched.h' line='209' column='1' elf-symbol-id='__tracepoint_android_rvh_account_irq'/>
+      <var-decl name='__tracepoint_android_rvh_account_irq_end' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_account_irq_end' visibility='default' filepath='include/trace/hooks/sched.h' line='217' column='1' elf-symbol-id='__tracepoint_android_rvh_account_irq_end'/>
+      <var-decl name='__tracepoint_android_rvh_account_irq_start' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_account_irq_start' visibility='default' filepath='include/trace/hooks/sched.h' line='213' column='1' elf-symbol-id='__tracepoint_android_rvh_account_irq_start'/>
+      <var-decl name='__tracepoint_android_rvh_after_dequeue_task' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_after_dequeue_task' visibility='default' filepath='include/trace/hooks/sched.h' line='344' column='1' elf-symbol-id='__tracepoint_android_rvh_after_dequeue_task'/>
+      <var-decl name='__tracepoint_android_rvh_after_enqueue_task' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_after_enqueue_task' visibility='default' filepath='include/trace/hooks/sched.h' line='340' column='1' elf-symbol-id='__tracepoint_android_rvh_after_enqueue_task'/>
+      <var-decl name='__tracepoint_android_rvh_arm64_serror_panic' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_arm64_serror_panic' visibility='default' filepath='include/trace/hooks/traps.h' line='30' column='1' elf-symbol-id='__tracepoint_android_rvh_arm64_serror_panic'/>
+      <var-decl name='__tracepoint_android_rvh_audio_usb_offload_disconnect' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_audio_usb_offload_disconnect' visibility='default' filepath='include/trace/hooks/audio_usboffload.h' line='38' column='1' elf-symbol-id='__tracepoint_android_rvh_audio_usb_offload_disconnect'/>
+      <var-decl name='__tracepoint_android_rvh_build_perf_domains' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_build_perf_domains' visibility='default' filepath='include/trace/hooks/sched.h' line='225' column='1' elf-symbol-id='__tracepoint_android_rvh_build_perf_domains'/>
+      <var-decl name='__tracepoint_android_rvh_can_migrate_task' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_can_migrate_task' visibility='default' filepath='include/trace/hooks/sched.h' line='46' column='1' elf-symbol-id='__tracepoint_android_rvh_can_migrate_task'/>
+      <var-decl name='__tracepoint_android_rvh_check_preempt_tick' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_check_preempt_tick' visibility='default' filepath='include/trace/hooks/sched.h' line='275' column='1' elf-symbol-id='__tracepoint_android_rvh_check_preempt_tick'/>
+      <var-decl name='__tracepoint_android_rvh_check_preempt_wakeup' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_check_preempt_wakeup' visibility='default' filepath='include/trace/hooks/sched.h' line='300' column='1' elf-symbol-id='__tracepoint_android_rvh_check_preempt_wakeup'/>
+      <var-decl name='__tracepoint_android_rvh_check_preempt_wakeup_ignore' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_check_preempt_wakeup_ignore' visibility='default' filepath='include/trace/hooks/sched.h' line='281' column='1' elf-symbol-id='__tracepoint_android_rvh_check_preempt_wakeup_ignore'/>
+      <var-decl name='__tracepoint_android_rvh_commit_creds' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_commit_creds' visibility='default' filepath='include/trace/hooks/creds.h' line='22' column='1' elf-symbol-id='__tracepoint_android_rvh_commit_creds'/>
+      <var-decl name='__tracepoint_android_rvh_cpu_cgroup_attach' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_cpu_cgroup_attach' visibility='default' filepath='include/trace/hooks/cgroup.h' line='51' column='1' elf-symbol-id='__tracepoint_android_rvh_cpu_cgroup_attach'/>
+      <var-decl name='__tracepoint_android_rvh_cpu_cgroup_can_attach' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_cpu_cgroup_can_attach' visibility='default' filepath='include/trace/hooks/cgroup.h' line='55' column='1' elf-symbol-id='__tracepoint_android_rvh_cpu_cgroup_can_attach'/>
+      <var-decl name='__tracepoint_android_rvh_cpu_cgroup_online' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_cpu_cgroup_online' visibility='default' filepath='include/trace/hooks/cgroup.h' line='59' column='1' elf-symbol-id='__tracepoint_android_rvh_cpu_cgroup_online'/>
+      <var-decl name='__tracepoint_android_rvh_cpu_overutilized' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_cpu_overutilized' visibility='default' filepath='include/trace/hooks/sched.h' line='148' column='1' elf-symbol-id='__tracepoint_android_rvh_cpu_overutilized'/>
+      <var-decl name='__tracepoint_android_rvh_cpufreq_transition' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_cpufreq_transition' visibility='default' filepath='include/trace/hooks/cpufreq.h' line='31' column='1' elf-symbol-id='__tracepoint_android_rvh_cpufreq_transition'/>
+      <var-decl name='__tracepoint_android_rvh_cpuset_fork' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_cpuset_fork' visibility='default' filepath='include/trace/hooks/cgroup.h' line='42' column='1' elf-symbol-id='__tracepoint_android_rvh_cpuset_fork'/>
+      <var-decl name='__tracepoint_android_rvh_ctl_dirty_rate' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_ctl_dirty_rate' visibility='default' filepath='include/trace/hooks/mm.h' line='196' column='1' elf-symbol-id='__tracepoint_android_rvh_ctl_dirty_rate'/>
+      <var-decl name='__tracepoint_android_rvh_dequeue_entity' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_dequeue_entity' visibility='default' filepath='include/trace/hooks/sched.h' line='354' column='1' elf-symbol-id='__tracepoint_android_rvh_dequeue_entity'/>
+      <var-decl name='__tracepoint_android_rvh_dequeue_task' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_dequeue_task' visibility='default' filepath='include/trace/hooks/sched.h' line='42' column='1' elf-symbol-id='__tracepoint_android_rvh_dequeue_task'/>
+      <var-decl name='__tracepoint_android_rvh_dequeue_task_fair' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_dequeue_task_fair' visibility='default' filepath='include/trace/hooks/sched.h' line='366' column='1' elf-symbol-id='__tracepoint_android_rvh_dequeue_task_fair'/>
+      <var-decl name='__tracepoint_android_rvh_die_kernel_fault' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_die_kernel_fault' visibility='default' filepath='include/trace/hooks/fault.h' line='16' column='1' elf-symbol-id='__tracepoint_android_rvh_die_kernel_fault'/>
+      <var-decl name='__tracepoint_android_rvh_dma_buf_stats_teardown' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_dma_buf_stats_teardown' visibility='default' filepath='include/trace/hooks/dmabuf.h' line='31' column='1' elf-symbol-id='__tracepoint_android_rvh_dma_buf_stats_teardown'/>
+      <var-decl name='__tracepoint_android_rvh_do_mem_abort' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_do_mem_abort' visibility='default' filepath='include/trace/hooks/fault.h' line='24' column='1' elf-symbol-id='__tracepoint_android_rvh_do_mem_abort'/>
+      <var-decl name='__tracepoint_android_rvh_do_ptrauth_fault' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_do_ptrauth_fault' visibility='default' filepath='include/trace/hooks/traps.h' line='21' column='1' elf-symbol-id='__tracepoint_android_rvh_do_ptrauth_fault'/>
+      <var-decl name='__tracepoint_android_rvh_do_sched_yield' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_do_sched_yield' visibility='default' filepath='include/trace/hooks/sched.h' line='317' column='1' elf-symbol-id='__tracepoint_android_rvh_do_sched_yield'/>
+      <var-decl name='__tracepoint_android_rvh_do_sea' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_do_sea' visibility='default' filepath='include/trace/hooks/fault.h' line='20' column='1' elf-symbol-id='__tracepoint_android_rvh_do_sea'/>
+      <var-decl name='__tracepoint_android_rvh_do_serror' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_do_serror' visibility='default' filepath='include/trace/hooks/traps.h' line='34' column='1' elf-symbol-id='__tracepoint_android_rvh_do_serror'/>
+      <var-decl name='__tracepoint_android_rvh_do_sp_pc_abort' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_do_sp_pc_abort' visibility='default' filepath='include/trace/hooks/fault.h' line='28' column='1' elf-symbol-id='__tracepoint_android_rvh_do_sp_pc_abort'/>
+      <var-decl name='__tracepoint_android_rvh_do_undefinstr' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_do_undefinstr' visibility='default' filepath='include/trace/hooks/traps.h' line='16' column='1' elf-symbol-id='__tracepoint_android_rvh_do_undefinstr'/>
+      <var-decl name='__tracepoint_android_rvh_effective_cpu_util' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_effective_cpu_util' visibility='default' filepath='include/trace/hooks/sched.h' line='402' column='1' elf-symbol-id='__tracepoint_android_rvh_effective_cpu_util'/>
+      <var-decl name='__tracepoint_android_rvh_enqueue_entity' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_enqueue_entity' visibility='default' filepath='include/trace/hooks/sched.h' line='350' column='1' elf-symbol-id='__tracepoint_android_rvh_enqueue_entity'/>
+      <var-decl name='__tracepoint_android_rvh_enqueue_task' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_enqueue_task' visibility='default' filepath='include/trace/hooks/sched.h' line='38' column='1' elf-symbol-id='__tracepoint_android_rvh_enqueue_task'/>
+      <var-decl name='__tracepoint_android_rvh_enqueue_task_fair' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_enqueue_task_fair' visibility='default' filepath='include/trace/hooks/sched.h' line='362' column='1' elf-symbol-id='__tracepoint_android_rvh_enqueue_task_fair'/>
+      <var-decl name='__tracepoint_android_rvh_entity_tick' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_entity_tick' visibility='default' filepath='include/trace/hooks/sched.h' line='358' column='1' elf-symbol-id='__tracepoint_android_rvh_entity_tick'/>
+      <var-decl name='__tracepoint_android_rvh_exit_creds' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_exit_creds' visibility='default' filepath='include/trace/hooks/creds.h' line='26' column='1' elf-symbol-id='__tracepoint_android_rvh_exit_creds'/>
+      <var-decl name='__tracepoint_android_rvh_find_busiest_group' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_find_busiest_group' visibility='default' filepath='include/trace/hooks/sched.h' line='92' column='1' elf-symbol-id='__tracepoint_android_rvh_find_busiest_group'/>
+      <var-decl name='__tracepoint_android_rvh_find_busiest_queue' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_find_busiest_queue' visibility='default' filepath='include/trace/hooks/sched.h' line='119' column='1' elf-symbol-id='__tracepoint_android_rvh_find_busiest_queue'/>
+      <var-decl name='__tracepoint_android_rvh_find_energy_efficient_cpu' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_find_energy_efficient_cpu' visibility='default' filepath='include/trace/hooks/sched.h' line='131' column='1' elf-symbol-id='__tracepoint_android_rvh_find_energy_efficient_cpu'/>
+      <var-decl name='__tracepoint_android_rvh_find_lowest_rq' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_find_lowest_rq' visibility='default' filepath='include/trace/hooks/sched.h' line='50' column='1' elf-symbol-id='__tracepoint_android_rvh_find_lowest_rq'/>
+      <var-decl name='__tracepoint_android_rvh_find_new_ilb' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_find_new_ilb' visibility='default' filepath='include/trace/hooks/sched.h' line='382' column='1' elf-symbol-id='__tracepoint_android_rvh_find_new_ilb'/>
+      <var-decl name='__tracepoint_android_rvh_finish_prio_fork' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_finish_prio_fork' visibility='default' filepath='include/trace/hooks/sched.h' line='59' column='1' elf-symbol-id='__tracepoint_android_rvh_finish_prio_fork'/>
+      <var-decl name='__tracepoint_android_rvh_flush_task' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_flush_task' visibility='default' filepath='include/trace/hooks/sched.h' line='189' column='1' elf-symbol-id='__tracepoint_android_rvh_flush_task'/>
+      <var-decl name='__tracepoint_android_rvh_get_nohz_timer_target' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_get_nohz_timer_target' visibility='default' filepath='include/trace/hooks/sched.h' line='79' column='1' elf-symbol-id='__tracepoint_android_rvh_get_nohz_timer_target'/>
+      <var-decl name='__tracepoint_android_rvh_gic_v3_set_affinity' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_gic_v3_set_affinity' visibility='default' filepath='include/trace/hooks/gic_v3.h' line='26' column='1' elf-symbol-id='__tracepoint_android_rvh_gic_v3_set_affinity'/>
+      <var-decl name='__tracepoint_android_rvh_iommu_setup_dma_ops' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_iommu_setup_dma_ops' visibility='default' filepath='include/trace/hooks/iommu.h' line='19' column='1' elf-symbol-id='__tracepoint_android_rvh_iommu_setup_dma_ops'/>
+      <var-decl name='__tracepoint_android_rvh_irqs_disable' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_irqs_disable' visibility='default' filepath='include/trace/hooks/preemptirq.h' line='21' column='1' elf-symbol-id='__tracepoint_android_rvh_irqs_disable'/>
+      <var-decl name='__tracepoint_android_rvh_irqs_enable' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_irqs_enable' visibility='default' filepath='include/trace/hooks/preemptirq.h' line='25' column='1' elf-symbol-id='__tracepoint_android_rvh_irqs_enable'/>
+      <var-decl name='__tracepoint_android_rvh_is_cpu_allowed' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_is_cpu_allowed' visibility='default' filepath='include/trace/hooks/sched.h' line='75' column='1' elf-symbol-id='__tracepoint_android_rvh_is_cpu_allowed'/>
+      <var-decl name='__tracepoint_android_rvh_memcgv2_calc_decayed_watermark' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_memcgv2_calc_decayed_watermark' visibility='default' filepath='include/trace/hooks/cgroup.h' line='39' column='1' elf-symbol-id='__tracepoint_android_rvh_memcgv2_calc_decayed_watermark'/>
+      <var-decl name='__tracepoint_android_rvh_memcgv2_init' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_memcgv2_init' visibility='default' filepath='include/trace/hooks/cgroup.h' line='35' column='1' elf-symbol-id='__tracepoint_android_rvh_memcgv2_init'/>
+      <var-decl name='__tracepoint_android_rvh_migrate_queued_task' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_migrate_queued_task' visibility='default' filepath='include/trace/hooks/sched.h' line='125' column='1' elf-symbol-id='__tracepoint_android_rvh_migrate_queued_task'/>
+      <var-decl name='__tracepoint_android_rvh_mmc_cache_card_properties' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_mmc_cache_card_properties' visibility='default' filepath='include/trace/hooks/mmc.h' line='55' column='1' elf-symbol-id='__tracepoint_android_rvh_mmc_cache_card_properties'/>
+      <var-decl name='__tracepoint_android_rvh_mmc_partition_status' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_mmc_partition_status' visibility='default' filepath='include/trace/hooks/mmc.h' line='75' column='1' elf-symbol-id='__tracepoint_android_rvh_mmc_partition_status'/>
+      <var-decl name='__tracepoint_android_rvh_mmc_sd_cmdline_timing' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_mmc_sd_cmdline_timing' visibility='default' filepath='include/trace/hooks/mmc.h' line='79' column='1' elf-symbol-id='__tracepoint_android_rvh_mmc_sd_cmdline_timing'/>
+      <var-decl name='__tracepoint_android_rvh_mmc_sd_dataline_timing' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_mmc_sd_dataline_timing' visibility='default' filepath='include/trace/hooks/mmc.h' line='83' column='1' elf-symbol-id='__tracepoint_android_rvh_mmc_sd_dataline_timing'/>
+      <var-decl name='__tracepoint_android_rvh_new_task_stats' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_new_task_stats' visibility='default' filepath='include/trace/hooks/sched.h' line='185' column='1' elf-symbol-id='__tracepoint_android_rvh_new_task_stats'/>
+      <var-decl name='__tracepoint_android_rvh_override_creds' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_override_creds' visibility='default' filepath='include/trace/hooks/creds.h' line='30' column='1' elf-symbol-id='__tracepoint_android_rvh_override_creds'/>
+      <var-decl name='__tracepoint_android_rvh_panic_unhandled' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_panic_unhandled' visibility='default' filepath='include/trace/hooks/traps.h' line='26' column='1' elf-symbol-id='__tracepoint_android_rvh_panic_unhandled'/>
+      <var-decl name='__tracepoint_android_rvh_partial_init' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_partial_init' visibility='default' filepath='include/trace/hooks/mmc.h' line='59' column='1' elf-symbol-id='__tracepoint_android_rvh_partial_init'/>
+      <var-decl name='__tracepoint_android_rvh_pick_next_entity' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_pick_next_entity' visibility='default' filepath='include/trace/hooks/sched.h' line='295' column='1' elf-symbol-id='__tracepoint_android_rvh_pick_next_entity'/>
+      <var-decl name='__tracepoint_android_rvh_place_entity' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_place_entity' visibility='default' filepath='include/trace/hooks/sched.h' line='221' column='1' elf-symbol-id='__tracepoint_android_rvh_place_entity'/>
+      <var-decl name='__tracepoint_android_rvh_post_init_entity_util_avg' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_post_init_entity_util_avg' visibility='default' filepath='include/trace/hooks/sched.h' line='378' column='1' elf-symbol-id='__tracepoint_android_rvh_post_init_entity_util_avg'/>
+      <var-decl name='__tracepoint_android_rvh_preempt_disable' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_preempt_disable' visibility='default' filepath='include/trace/hooks/preemptirq.h' line='13' column='1' elf-symbol-id='__tracepoint_android_rvh_preempt_disable'/>
+      <var-decl name='__tracepoint_android_rvh_preempt_enable' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_preempt_enable' visibility='default' filepath='include/trace/hooks/preemptirq.h' line='17' column='1' elf-symbol-id='__tracepoint_android_rvh_preempt_enable'/>
+      <var-decl name='__tracepoint_android_rvh_prepare_prio_fork' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_prepare_prio_fork' visibility='default' filepath='include/trace/hooks/sched.h' line='55' column='1' elf-symbol-id='__tracepoint_android_rvh_prepare_prio_fork'/>
+      <var-decl name='__tracepoint_android_rvh_psci_cpu_suspend' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_psci_cpu_suspend' visibility='default' filepath='include/trace/hooks/psci.h' line='17' column='1' elf-symbol-id='__tracepoint_android_rvh_psci_cpu_suspend'/>
+      <var-decl name='__tracepoint_android_rvh_psci_tos_resident_on' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_psci_tos_resident_on' visibility='default' filepath='include/trace/hooks/psci.h' line='13' column='1' elf-symbol-id='__tracepoint_android_rvh_psci_tos_resident_on'/>
+      <var-decl name='__tracepoint_android_rvh_refrigerator' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_refrigerator' visibility='default' filepath='include/trace/hooks/cgroup.h' line='25' column='1' elf-symbol-id='__tracepoint_android_rvh_refrigerator'/>
+      <var-decl name='__tracepoint_android_rvh_replace_next_task_fair' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_replace_next_task_fair' visibility='default' filepath='include/trace/hooks/sched.h' line='285' column='1' elf-symbol-id='__tracepoint_android_rvh_replace_next_task_fair'/>
+      <var-decl name='__tracepoint_android_rvh_report_bug' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_report_bug' visibility='default' filepath='include/trace/hooks/bug.h' line='10' column='1' elf-symbol-id='__tracepoint_android_rvh_report_bug'/>
+      <var-decl name='__tracepoint_android_rvh_revert_creds' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_revert_creds' visibility='default' filepath='include/trace/hooks/creds.h' line='34' column='1' elf-symbol-id='__tracepoint_android_rvh_revert_creds'/>
+      <var-decl name='__tracepoint_android_rvh_rmqueue_bulk' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_rmqueue_bulk' visibility='default' filepath='include/trace/hooks/mm.h' line='47' column='1' elf-symbol-id='__tracepoint_android_rvh_rmqueue_bulk'/>
+      <var-decl name='__tracepoint_android_rvh_rtmutex_force_update' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_rtmutex_force_update' visibility='default' filepath='include/trace/hooks/sched.h' line='63' column='1' elf-symbol-id='__tracepoint_android_rvh_rtmutex_force_update'/>
+      <var-decl name='__tracepoint_android_rvh_rtmutex_prepare_setprio' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_rtmutex_prepare_setprio' visibility='default' filepath='include/trace/hooks/sched.h' line='67' column='1' elf-symbol-id='__tracepoint_android_rvh_rtmutex_prepare_setprio'/>
+      <var-decl name='__tracepoint_android_rvh_rto_next_cpu' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_rto_next_cpu' visibility='default' filepath='include/trace/hooks/sched.h' line='71' column='1' elf-symbol-id='__tracepoint_android_rvh_rto_next_cpu'/>
+      <var-decl name='__tracepoint_android_rvh_sched_cpu_dying' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_sched_cpu_dying' visibility='default' filepath='include/trace/hooks/sched.h' line='205' column='1' elf-symbol-id='__tracepoint_android_rvh_sched_cpu_dying'/>
+      <var-decl name='__tracepoint_android_rvh_sched_cpu_starting' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_sched_cpu_starting' visibility='default' filepath='include/trace/hooks/sched.h' line='201' column='1' elf-symbol-id='__tracepoint_android_rvh_sched_cpu_starting'/>
+      <var-decl name='__tracepoint_android_rvh_sched_exec' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_sched_exec' visibility='default' filepath='include/trace/hooks/sched.h' line='249' column='1' elf-symbol-id='__tracepoint_android_rvh_sched_exec'/>
+      <var-decl name='__tracepoint_android_rvh_sched_fork' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_sched_fork' visibility='default' filepath='include/trace/hooks/sched.h' line='177' column='1' elf-symbol-id='__tracepoint_android_rvh_sched_fork'/>
+      <var-decl name='__tracepoint_android_rvh_sched_fork_init' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_sched_fork_init' visibility='default' filepath='include/trace/hooks/sched.h' line='237' column='1' elf-symbol-id='__tracepoint_android_rvh_sched_fork_init'/>
+      <var-decl name='__tracepoint_android_rvh_sched_getaffinity' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_sched_getaffinity' visibility='default' filepath='include/trace/hooks/sched.h' line='156' column='1' elf-symbol-id='__tracepoint_android_rvh_sched_getaffinity'/>
+      <var-decl name='__tracepoint_android_rvh_sched_newidle_balance' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_sched_newidle_balance' visibility='default' filepath='include/trace/hooks/sched.h' line='106' column='1' elf-symbol-id='__tracepoint_android_rvh_sched_newidle_balance'/>
+      <var-decl name='__tracepoint_android_rvh_sched_nohz_balancer_kick' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_sched_nohz_balancer_kick' visibility='default' filepath='include/trace/hooks/sched.h' line='111' column='1' elf-symbol-id='__tracepoint_android_rvh_sched_nohz_balancer_kick'/>
+      <var-decl name='__tracepoint_android_rvh_sched_rebalance_domains' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_sched_rebalance_domains' visibility='default' filepath='include/trace/hooks/sched.h' line='115' column='1' elf-symbol-id='__tracepoint_android_rvh_sched_rebalance_domains'/>
+      <var-decl name='__tracepoint_android_rvh_sched_setaffinity' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_sched_setaffinity' visibility='default' filepath='include/trace/hooks/sched.h' line='152' column='1' elf-symbol-id='__tracepoint_android_rvh_sched_setaffinity'/>
+      <var-decl name='__tracepoint_android_rvh_schedule' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_schedule' visibility='default' filepath='include/trace/hooks/sched.h' line='197' column='1' elf-symbol-id='__tracepoint_android_rvh_schedule'/>
+      <var-decl name='__tracepoint_android_rvh_select_fallback_rq' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_select_fallback_rq' visibility='default' filepath='include/trace/hooks/sched.h' line='29' column='1' elf-symbol-id='__tracepoint_android_rvh_select_fallback_rq'/>
+      <var-decl name='__tracepoint_android_rvh_select_task_rq_dl' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_select_task_rq_dl' visibility='default' filepath='include/trace/hooks/sched.h' line='25' column='1' elf-symbol-id='__tracepoint_android_rvh_select_task_rq_dl'/>
+      <var-decl name='__tracepoint_android_rvh_select_task_rq_fair' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_select_task_rq_fair' visibility='default' filepath='include/trace/hooks/sched.h' line='17' column='1' elf-symbol-id='__tracepoint_android_rvh_select_task_rq_fair'/>
+      <var-decl name='__tracepoint_android_rvh_select_task_rq_rt' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_select_task_rq_rt' visibility='default' filepath='include/trace/hooks/sched.h' line='21' column='1' elf-symbol-id='__tracepoint_android_rvh_select_task_rq_rt'/>
+      <var-decl name='__tracepoint_android_rvh_selinux_avc_insert' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_selinux_avc_insert' visibility='default' filepath='include/trace/hooks/avc.h' line='14' column='1' elf-symbol-id='__tracepoint_android_rvh_selinux_avc_insert'/>
+      <var-decl name='__tracepoint_android_rvh_selinux_avc_lookup' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_selinux_avc_lookup' visibility='default' filepath='include/trace/hooks/avc.h' line='26' column='1' elf-symbol-id='__tracepoint_android_rvh_selinux_avc_lookup'/>
+      <var-decl name='__tracepoint_android_rvh_selinux_avc_node_delete' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_selinux_avc_node_delete' visibility='default' filepath='include/trace/hooks/avc.h' line='18' column='1' elf-symbol-id='__tracepoint_android_rvh_selinux_avc_node_delete'/>
+      <var-decl name='__tracepoint_android_rvh_selinux_avc_node_replace' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_selinux_avc_node_replace' visibility='default' filepath='include/trace/hooks/avc.h' line='22' column='1' elf-symbol-id='__tracepoint_android_rvh_selinux_avc_node_replace'/>
+      <var-decl name='__tracepoint_android_rvh_selinux_is_initialized' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_selinux_is_initialized' visibility='default' filepath='include/trace/hooks/selinux.h' line='14' column='1' elf-symbol-id='__tracepoint_android_rvh_selinux_is_initialized'/>
+      <var-decl name='__tracepoint_android_rvh_set_balance_anon_file_reclaim' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_set_balance_anon_file_reclaim' visibility='default' filepath='include/trace/hooks/vmscan.h' line='12' column='1' elf-symbol-id='__tracepoint_android_rvh_set_balance_anon_file_reclaim'/>
+      <var-decl name='__tracepoint_android_rvh_set_cpus_allowed_by_task' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_set_cpus_allowed_by_task' visibility='default' filepath='include/trace/hooks/sched.h' line='312' column='1' elf-symbol-id='__tracepoint_android_rvh_set_cpus_allowed_by_task'/>
+      <var-decl name='__tracepoint_android_rvh_set_cpus_allowed_comm' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_set_cpus_allowed_comm' visibility='default' filepath='include/trace/hooks/sched.h' line='423' column='1' elf-symbol-id='__tracepoint_android_rvh_set_cpus_allowed_comm'/>
+      <var-decl name='__tracepoint_android_rvh_set_cpus_allowed_ptr_locked' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_set_cpus_allowed_ptr_locked' visibility='default' filepath='include/trace/hooks/sched.h' line='307' column='1' elf-symbol-id='__tracepoint_android_rvh_set_cpus_allowed_ptr_locked'/>
+      <var-decl name='__tracepoint_android_rvh_set_gfp_zone_flags' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_set_gfp_zone_flags' visibility='default' filepath='include/trace/hooks/mm.h' line='38' column='1' elf-symbol-id='__tracepoint_android_rvh_set_gfp_zone_flags'/>
+      <var-decl name='__tracepoint_android_rvh_set_iowait' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_set_iowait' visibility='default' filepath='include/trace/hooks/sched.h' line='139' column='1' elf-symbol-id='__tracepoint_android_rvh_set_iowait'/>
+      <var-decl name='__tracepoint_android_rvh_set_readahead_gfp_mask' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_set_readahead_gfp_mask' visibility='default' filepath='include/trace/hooks/mm.h' line='44' column='1' elf-symbol-id='__tracepoint_android_rvh_set_readahead_gfp_mask'/>
+      <var-decl name='__tracepoint_android_rvh_set_skip_swapcache_flags' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_set_skip_swapcache_flags' visibility='default' filepath='include/trace/hooks/mm.h' line='35' column='1' elf-symbol-id='__tracepoint_android_rvh_set_skip_swapcache_flags'/>
+      <var-decl name='__tracepoint_android_rvh_set_task_cpu' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_set_task_cpu' visibility='default' filepath='include/trace/hooks/sched.h' line='165' column='1' elf-symbol-id='__tracepoint_android_rvh_set_task_cpu'/>
+      <var-decl name='__tracepoint_android_rvh_set_user_nice' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_set_user_nice' visibility='default' filepath='include/trace/hooks/sched.h' line='83' column='1' elf-symbol-id='__tracepoint_android_rvh_set_user_nice'/>
+      <var-decl name='__tracepoint_android_rvh_setscheduler' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_setscheduler' visibility='default' filepath='include/trace/hooks/sched.h' line='87' column='1' elf-symbol-id='__tracepoint_android_rvh_setscheduler'/>
+      <var-decl name='__tracepoint_android_rvh_show_max_freq' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_show_max_freq' visibility='default' filepath='include/trace/hooks/cpufreq.h' line='18' column='1' elf-symbol-id='__tracepoint_android_rvh_show_max_freq'/>
+      <var-decl name='__tracepoint_android_rvh_tick_entry' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_tick_entry' visibility='default' filepath='include/trace/hooks/sched.h' line='193' column='1' elf-symbol-id='__tracepoint_android_rvh_tick_entry'/>
+      <var-decl name='__tracepoint_android_rvh_tk_based_time_sync' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_tk_based_time_sync' visibility='default' filepath='include/trace/hooks/timekeeping.h' line='18' column='1' elf-symbol-id='__tracepoint_android_rvh_tk_based_time_sync'/>
+      <var-decl name='__tracepoint_android_rvh_try_to_wake_up' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_try_to_wake_up' visibility='default' filepath='include/trace/hooks/sched.h' line='169' column='1' elf-symbol-id='__tracepoint_android_rvh_try_to_wake_up'/>
+      <var-decl name='__tracepoint_android_rvh_try_to_wake_up_success' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_try_to_wake_up_success' visibility='default' filepath='include/trace/hooks/sched.h' line='173' column='1' elf-symbol-id='__tracepoint_android_rvh_try_to_wake_up_success'/>
+      <var-decl name='__tracepoint_android_rvh_ttwu_cond' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_ttwu_cond' visibility='default' filepath='include/trace/hooks/sched.h' line='241' column='1' elf-symbol-id='__tracepoint_android_rvh_ttwu_cond'/>
+      <var-decl name='__tracepoint_android_rvh_uclamp_eff_get' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_uclamp_eff_get' visibility='default' filepath='include/trace/hooks/sched.h' line='335' column='1' elf-symbol-id='__tracepoint_android_rvh_uclamp_eff_get'/>
+      <var-decl name='__tracepoint_android_rvh_ufs_complete_init' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_ufs_complete_init' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='29' column='1' elf-symbol-id='__tracepoint_android_rvh_ufs_complete_init'/>
+      <var-decl name='__tracepoint_android_rvh_ufs_reprogram_all_keys' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_ufs_reprogram_all_keys' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='33' column='1' elf-symbol-id='__tracepoint_android_rvh_ufs_reprogram_all_keys'/>
+      <var-decl name='__tracepoint_android_rvh_update_cpu_capacity' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_update_cpu_capacity' visibility='default' filepath='include/trace/hooks/sched.h' line='229' column='1' elf-symbol-id='__tracepoint_android_rvh_update_cpu_capacity'/>
+      <var-decl name='__tracepoint_android_rvh_update_cpus_allowed' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_update_cpus_allowed' visibility='default' filepath='include/trace/hooks/sched.h' line='160' column='1' elf-symbol-id='__tracepoint_android_rvh_update_cpus_allowed'/>
+      <var-decl name='__tracepoint_android_rvh_update_misfit_status' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_update_misfit_status' visibility='default' filepath='include/trace/hooks/sched.h' line='233' column='1' elf-symbol-id='__tracepoint_android_rvh_update_misfit_status'/>
+      <var-decl name='__tracepoint_android_rvh_update_readahead_gfp_mask' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_update_readahead_gfp_mask' visibility='default' filepath='include/trace/hooks/mm.h' line='41' column='1' elf-symbol-id='__tracepoint_android_rvh_update_readahead_gfp_mask'/>
+      <var-decl name='__tracepoint_android_rvh_update_rt_rq_load_avg' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_update_rt_rq_load_avg' visibility='default' filepath='include/trace/hooks/sched.h' line='431' column='1' elf-symbol-id='__tracepoint_android_rvh_update_rt_rq_load_avg'/>
+      <var-decl name='__tracepoint_android_rvh_update_thermal_stats' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_update_thermal_stats' visibility='default' filepath='include/trace/hooks/topology.h' line='27' column='1' elf-symbol-id='__tracepoint_android_rvh_update_thermal_stats'/>
+      <var-decl name='__tracepoint_android_rvh_update_watermark' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_update_watermark' visibility='default' filepath='include/trace/hooks/cgroup.h' line='47' column='1' elf-symbol-id='__tracepoint_android_rvh_update_watermark'/>
+      <var-decl name='__tracepoint_android_rvh_util_est_update' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_util_est_update' visibility='default' filepath='include/trace/hooks/sched.h' line='386' column='1' elf-symbol-id='__tracepoint_android_rvh_util_est_update'/>
+      <var-decl name='__tracepoint_android_rvh_wake_up_new_task' type-id='4ca0c298' mangled-name='__tracepoint_android_rvh_wake_up_new_task' visibility='default' filepath='include/trace/hooks/sched.h' line='181' column='1' elf-symbol-id='__tracepoint_android_rvh_wake_up_new_task'/>
+      <var-decl name='__tracepoint_android_vh_account_task_time' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_account_task_time' visibility='default' filepath='include/trace/hooks/sched.h' line='419' column='1' elf-symbol-id='__tracepoint_android_vh_account_task_time'/>
+      <var-decl name='__tracepoint_android_vh_add_page_to_lrulist' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_add_page_to_lrulist' visibility='default' filepath='include/trace/hooks/mm.h' line='152' column='1' elf-symbol-id='__tracepoint_android_vh_add_page_to_lrulist'/>
+      <var-decl name='__tracepoint_android_vh_aes_decrypt' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_aes_decrypt' visibility='default' filepath='include/trace/hooks/fips140.h' line='44' column='1' elf-symbol-id='__tracepoint_android_vh_aes_decrypt'/>
+      <var-decl name='__tracepoint_android_vh_aes_encrypt' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_aes_encrypt' visibility='default' filepath='include/trace/hooks/fips140.h' line='37' column='1' elf-symbol-id='__tracepoint_android_vh_aes_encrypt'/>
+      <var-decl name='__tracepoint_android_vh_aes_expandkey' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_aes_expandkey' visibility='default' filepath='include/trace/hooks/fips140.h' line='30' column='1' elf-symbol-id='__tracepoint_android_vh_aes_expandkey'/>
+      <var-decl name='__tracepoint_android_vh_alloc_flags_cma_adjust' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alloc_flags_cma_adjust' visibility='default' filepath='include/trace/hooks/mm.h' line='227' column='1' elf-symbol-id='__tracepoint_android_vh_alloc_flags_cma_adjust'/>
+      <var-decl name='__tracepoint_android_vh_alloc_highpage_movable_gfp_adjust' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alloc_highpage_movable_gfp_adjust' visibility='default' filepath='include/trace/hooks/mm.h' line='209' column='1' elf-symbol-id='__tracepoint_android_vh_alloc_highpage_movable_gfp_adjust'/>
+      <var-decl name='__tracepoint_android_vh_alloc_pages_failure_bypass' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alloc_pages_failure_bypass' visibility='default' filepath='include/trace/hooks/mm.h' line='177' column='1' elf-symbol-id='__tracepoint_android_vh_alloc_pages_failure_bypass'/>
+      <var-decl name='__tracepoint_android_vh_alloc_pages_reclaim_bypass' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alloc_pages_reclaim_bypass' visibility='default' filepath='include/trace/hooks/mm.h' line='173' column='1' elf-symbol-id='__tracepoint_android_vh_alloc_pages_reclaim_bypass'/>
+      <var-decl name='__tracepoint_android_vh_alloc_pages_slowpath' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alloc_pages_slowpath' visibility='default' filepath='include/trace/hooks/mm.h' line='59' column='1' elf-symbol-id='__tracepoint_android_vh_alloc_pages_slowpath'/>
+      <var-decl name='__tracepoint_android_vh_alter_futex_plist_add' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alter_futex_plist_add' visibility='default' filepath='include/trace/hooks/futex.h' line='24' column='1' elf-symbol-id='__tracepoint_android_vh_alter_futex_plist_add'/>
+      <var-decl name='__tracepoint_android_vh_alter_mutex_list_add' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alter_mutex_list_add' visibility='default' filepath='include/trace/hooks/dtask.h' line='79' column='1' elf-symbol-id='__tracepoint_android_vh_alter_mutex_list_add'/>
+      <var-decl name='__tracepoint_android_vh_alter_rwsem_list_add' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alter_rwsem_list_add' visibility='default' filepath='include/trace/hooks/rwsem.h' line='29' column='1' elf-symbol-id='__tracepoint_android_vh_alter_rwsem_list_add'/>
+      <var-decl name='__tracepoint_android_vh_anon_gfp_adjust' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_anon_gfp_adjust' visibility='default' filepath='include/trace/hooks/mm.h' line='212' column='1' elf-symbol-id='__tracepoint_android_vh_anon_gfp_adjust'/>
+      <var-decl name='__tracepoint_android_vh_arch_set_freq_scale' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_arch_set_freq_scale' visibility='default' filepath='include/trace/hooks/topology.h' line='18' column='1' elf-symbol-id='__tracepoint_android_vh_arch_set_freq_scale'/>
+      <var-decl name='__tracepoint_android_vh_atomic_remove_fb' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_atomic_remove_fb' visibility='default' filepath='include/trace/hooks/drm_framebuffer.h' line='20' column='1' elf-symbol-id='__tracepoint_android_vh_atomic_remove_fb'/>
+      <var-decl name='__tracepoint_android_vh_audio_usb_offload_connect' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_audio_usb_offload_connect' visibility='default' filepath='include/trace/hooks/audio_usboffload.h' line='34' column='1' elf-symbol-id='__tracepoint_android_vh_audio_usb_offload_connect'/>
+      <var-decl name='__tracepoint_android_vh_audio_usb_offload_ep_action' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_audio_usb_offload_ep_action' visibility='default' filepath='include/trace/hooks/audio_usboffload.h' line='26' column='1' elf-symbol-id='__tracepoint_android_vh_audio_usb_offload_ep_action'/>
+      <var-decl name='__tracepoint_android_vh_audio_usb_offload_suspend' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_audio_usb_offload_suspend' visibility='default' filepath='include/trace/hooks/audio_usboffload.h' line='42' column='1' elf-symbol-id='__tracepoint_android_vh_audio_usb_offload_suspend'/>
+      <var-decl name='__tracepoint_android_vh_audio_usb_offload_synctype' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_audio_usb_offload_synctype' visibility='default' filepath='include/trace/hooks/audio_usboffload.h' line='30' column='1' elf-symbol-id='__tracepoint_android_vh_audio_usb_offload_synctype'/>
+      <var-decl name='__tracepoint_android_vh_binder_alloc_new_buf_locked' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_alloc_new_buf_locked' visibility='default' filepath='include/trace/hooks/binder.h' line='82' column='1' elf-symbol-id='__tracepoint_android_vh_binder_alloc_new_buf_locked'/>
+      <var-decl name='__tracepoint_android_vh_binder_del_ref' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_del_ref' visibility='default' filepath='include/trace/hooks/binder.h' line='104' column='1' elf-symbol-id='__tracepoint_android_vh_binder_del_ref'/>
+      <var-decl name='__tracepoint_android_vh_binder_free_proc' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_free_proc' visibility='default' filepath='include/trace/hooks/binder.h' line='70' column='1' elf-symbol-id='__tracepoint_android_vh_binder_free_proc'/>
+      <var-decl name='__tracepoint_android_vh_binder_has_work_ilocked' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_has_work_ilocked' visibility='default' filepath='include/trace/hooks/binder.h' line='79' column='1' elf-symbol-id='__tracepoint_android_vh_binder_has_work_ilocked'/>
+      <var-decl name='__tracepoint_android_vh_binder_looper_state_registered' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_looper_state_registered' visibility='default' filepath='include/trace/hooks/binder.h' line='63' column='1' elf-symbol-id='__tracepoint_android_vh_binder_looper_state_registered'/>
+      <var-decl name='__tracepoint_android_vh_binder_new_ref' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_new_ref' visibility='default' filepath='include/trace/hooks/binder.h' line='101' column='1' elf-symbol-id='__tracepoint_android_vh_binder_new_ref'/>
+      <var-decl name='__tracepoint_android_vh_binder_preset' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_preset' visibility='default' filepath='include/trace/hooks/binder.h' line='93' column='1' elf-symbol-id='__tracepoint_android_vh_binder_preset'/>
+      <var-decl name='__tracepoint_android_vh_binder_print_transaction_info' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_print_transaction_info' visibility='default' filepath='include/trace/hooks/binder.h' line='59' column='1' elf-symbol-id='__tracepoint_android_vh_binder_print_transaction_info'/>
+      <var-decl name='__tracepoint_android_vh_binder_priority_skip' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_priority_skip' visibility='default' filepath='include/trace/hooks/binder.h' line='28' column='1' elf-symbol-id='__tracepoint_android_vh_binder_priority_skip'/>
+      <var-decl name='__tracepoint_android_vh_binder_proc_transaction' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_proc_transaction' visibility='default' filepath='include/trace/hooks/binder.h' line='96' column='1' elf-symbol-id='__tracepoint_android_vh_binder_proc_transaction'/>
+      <var-decl name='__tracepoint_android_vh_binder_proc_transaction_entry' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_proc_transaction_entry' visibility='default' filepath='include/trace/hooks/binder.h' line='46' column='1' elf-symbol-id='__tracepoint_android_vh_binder_proc_transaction_entry'/>
+      <var-decl name='__tracepoint_android_vh_binder_proc_transaction_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_proc_transaction_finish' visibility='default' filepath='include/trace/hooks/binder.h' line='55' column='1' elf-symbol-id='__tracepoint_android_vh_binder_proc_transaction_finish'/>
+      <var-decl name='__tracepoint_android_vh_binder_read_done' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_read_done' visibility='default' filepath='include/trace/hooks/binder.h' line='76' column='1' elf-symbol-id='__tracepoint_android_vh_binder_read_done'/>
+      <var-decl name='__tracepoint_android_vh_binder_reply' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_reply' visibility='default' filepath='include/trace/hooks/binder.h' line='85' column='1' elf-symbol-id='__tracepoint_android_vh_binder_reply'/>
+      <var-decl name='__tracepoint_android_vh_binder_restore_priority' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_restore_priority' visibility='default' filepath='include/trace/hooks/binder.h' line='34' column='1' elf-symbol-id='__tracepoint_android_vh_binder_restore_priority'/>
+      <var-decl name='__tracepoint_android_vh_binder_select_worklist_ilocked' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_select_worklist_ilocked' visibility='default' filepath='include/trace/hooks/binder.h' line='51' column='1' elf-symbol-id='__tracepoint_android_vh_binder_select_worklist_ilocked'/>
+      <var-decl name='__tracepoint_android_vh_binder_set_priority' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_set_priority' visibility='default' filepath='include/trace/hooks/binder.h' line='31' column='1' elf-symbol-id='__tracepoint_android_vh_binder_set_priority'/>
+      <var-decl name='__tracepoint_android_vh_binder_thread_read' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_thread_read' visibility='default' filepath='include/trace/hooks/binder.h' line='66' column='1' elf-symbol-id='__tracepoint_android_vh_binder_thread_read'/>
+      <var-decl name='__tracepoint_android_vh_binder_thread_release' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_thread_release' visibility='default' filepath='include/trace/hooks/binder.h' line='73' column='1' elf-symbol-id='__tracepoint_android_vh_binder_thread_release'/>
+      <var-decl name='__tracepoint_android_vh_binder_trans' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_trans' visibility='default' filepath='include/trace/hooks/binder.h' line='89' column='1' elf-symbol-id='__tracepoint_android_vh_binder_trans'/>
+      <var-decl name='__tracepoint_android_vh_binder_transaction_init' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_transaction_init' visibility='default' filepath='include/trace/hooks/binder.h' line='25' column='1' elf-symbol-id='__tracepoint_android_vh_binder_transaction_init'/>
+      <var-decl name='__tracepoint_android_vh_binder_wait_for_work' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_wait_for_work' visibility='default' filepath='include/trace/hooks/binder.h' line='40' column='1' elf-symbol-id='__tracepoint_android_vh_binder_wait_for_work'/>
+      <var-decl name='__tracepoint_android_vh_binder_wakeup_ilocked' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_wakeup_ilocked' visibility='default' filepath='include/trace/hooks/binder.h' line='37' column='1' elf-symbol-id='__tracepoint_android_vh_binder_wakeup_ilocked'/>
+      <var-decl name='__tracepoint_android_vh_blk_account_io_done' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_blk_account_io_done' visibility='default' filepath='include/trace/hooks/block.h' line='34' column='1' elf-symbol-id='__tracepoint_android_vh_blk_account_io_done'/>
+      <var-decl name='__tracepoint_android_vh_blk_alloc_rqs' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_blk_alloc_rqs' visibility='default' filepath='include/trace/hooks/block.h' line='24' column='1' elf-symbol-id='__tracepoint_android_vh_blk_alloc_rqs'/>
+      <var-decl name='__tracepoint_android_vh_blk_rq_ctx_init' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_blk_rq_ctx_init' visibility='default' filepath='include/trace/hooks/block.h' line='29' column='1' elf-symbol-id='__tracepoint_android_vh_blk_rq_ctx_init'/>
+      <var-decl name='__tracepoint_android_vh_build_sched_domains' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_build_sched_domains' visibility='default' filepath='include/trace/hooks/sched.h' line='271' column='1' elf-symbol-id='__tracepoint_android_vh_build_sched_domains'/>
+      <var-decl name='__tracepoint_android_vh_cache_show' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_cache_show' visibility='default' filepath='include/trace/hooks/mm.h' line='65' column='1' elf-symbol-id='__tracepoint_android_vh_cache_show'/>
+      <var-decl name='__tracepoint_android_vh_cgroup_attach' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_cgroup_attach' visibility='default' filepath='include/trace/hooks/cgroup.h' line='28' column='1' elf-symbol-id='__tracepoint_android_vh_cgroup_attach'/>
+      <var-decl name='__tracepoint_android_vh_cgroup_set_task' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_cgroup_set_task' visibility='default' filepath='include/trace/hooks/cgroup.h' line='22' column='1' elf-symbol-id='__tracepoint_android_vh_cgroup_set_task'/>
+      <var-decl name='__tracepoint_android_vh_check_bpf_syscall' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_check_bpf_syscall' visibility='default' filepath='include/trace/hooks/syscall_check.h' line='31' column='1' elf-symbol-id='__tracepoint_android_vh_check_bpf_syscall'/>
+      <var-decl name='__tracepoint_android_vh_check_file_open' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_check_file_open' visibility='default' filepath='include/trace/hooks/syscall_check.h' line='27' column='1' elf-symbol-id='__tracepoint_android_vh_check_file_open'/>
+      <var-decl name='__tracepoint_android_vh_check_hibernation_swap' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_check_hibernation_swap' visibility='default' filepath='include/trace/hooks/bl_hib.h' line='14' column='1' elf-symbol-id='__tracepoint_android_vh_check_hibernation_swap'/>
+      <var-decl name='__tracepoint_android_vh_check_mmap_file' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_check_mmap_file' visibility='default' filepath='include/trace/hooks/syscall_check.h' line='22' column='1' elf-symbol-id='__tracepoint_android_vh_check_mmap_file'/>
+      <var-decl name='__tracepoint_android_vh_check_page_look_around_ref' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_check_page_look_around_ref' visibility='default' filepath='include/trace/hooks/vmscan.h' line='54' column='1' elf-symbol-id='__tracepoint_android_vh_check_page_look_around_ref'/>
+      <var-decl name='__tracepoint_android_vh_check_uninterruptible_tasks' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_check_uninterruptible_tasks' visibility='default' filepath='include/trace/hooks/hung_task.h' line='12' column='1' elf-symbol-id='__tracepoint_android_vh_check_uninterruptible_tasks'/>
+      <var-decl name='__tracepoint_android_vh_check_uninterruptible_tasks_dn' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_check_uninterruptible_tasks_dn' visibility='default' filepath='include/trace/hooks/hung_task.h' line='17' column='1' elf-symbol-id='__tracepoint_android_vh_check_uninterruptible_tasks_dn'/>
+      <var-decl name='__tracepoint_android_vh_cleanup_old_buffers_bypass' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_cleanup_old_buffers_bypass' visibility='default' filepath='include/trace/hooks/mm.h' line='79' column='1' elf-symbol-id='__tracepoint_android_vh_cleanup_old_buffers_bypass'/>
+      <var-decl name='__tracepoint_android_vh_clear_page_migrating' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_clear_page_migrating' visibility='default' filepath='include/trace/hooks/mm.h' line='249' column='1' elf-symbol-id='__tracepoint_android_vh_clear_page_migrating'/>
+      <var-decl name='__tracepoint_android_vh_cma_alloc_retry' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_cma_alloc_retry' visibility='default' filepath='include/trace/hooks/mm.h' line='121' column='1' elf-symbol-id='__tracepoint_android_vh_cma_alloc_retry'/>
+      <var-decl name='__tracepoint_android_vh_cma_drain_all_pages_bypass' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_cma_drain_all_pages_bypass' visibility='default' filepath='include/trace/hooks/mm.h' line='84' column='1' elf-symbol-id='__tracepoint_android_vh_cma_drain_all_pages_bypass'/>
+      <var-decl name='__tracepoint_android_vh_compact_finished' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_compact_finished' visibility='default' filepath='include/trace/hooks/mm.h' line='221' column='1' elf-symbol-id='__tracepoint_android_vh_compact_finished'/>
+      <var-decl name='__tracepoint_android_vh_cpu_idle_enter' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_cpu_idle_enter' visibility='default' filepath='include/trace/hooks/cpuidle.h' line='18' column='1' elf-symbol-id='__tracepoint_android_vh_cpu_idle_enter'/>
+      <var-decl name='__tracepoint_android_vh_cpu_idle_exit' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_cpu_idle_exit' visibility='default' filepath='include/trace/hooks/cpuidle.h' line='21' column='1' elf-symbol-id='__tracepoint_android_vh_cpu_idle_exit'/>
+      <var-decl name='__tracepoint_android_vh_cpufreq_acct_update_power' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_cpufreq_acct_update_power' visibility='default' filepath='include/trace/hooks/cpufreq.h' line='27' column='1' elf-symbol-id='__tracepoint_android_vh_cpufreq_acct_update_power'/>
+      <var-decl name='__tracepoint_android_vh_cpufreq_fast_switch' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_cpufreq_fast_switch' visibility='default' filepath='include/trace/hooks/cpufreq.h' line='40' column='1' elf-symbol-id='__tracepoint_android_vh_cpufreq_fast_switch'/>
+      <var-decl name='__tracepoint_android_vh_cpufreq_offline' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_cpufreq_offline' visibility='default' filepath='include/trace/hooks/cpufreq.h' line='50' column='1' elf-symbol-id='__tracepoint_android_vh_cpufreq_offline'/>
+      <var-decl name='__tracepoint_android_vh_cpufreq_resolve_freq' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_cpufreq_resolve_freq' visibility='default' filepath='include/trace/hooks/cpufreq.h' line='35' column='1' elf-symbol-id='__tracepoint_android_vh_cpufreq_resolve_freq'/>
+      <var-decl name='__tracepoint_android_vh_cpufreq_target' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_cpufreq_target' visibility='default' filepath='include/trace/hooks/cpufreq.h' line='45' column='1' elf-symbol-id='__tracepoint_android_vh_cpufreq_target'/>
+      <var-decl name='__tracepoint_android_vh_cpuidle_psci_enter' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_cpuidle_psci_enter' visibility='default' filepath='include/trace/hooks/cpuidle_psci.h' line='19' column='1' elf-symbol-id='__tracepoint_android_vh_cpuidle_psci_enter'/>
+      <var-decl name='__tracepoint_android_vh_cpuidle_psci_exit' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_cpuidle_psci_exit' visibility='default' filepath='include/trace/hooks/cpuidle_psci.h' line='23' column='1' elf-symbol-id='__tracepoint_android_vh_cpuidle_psci_exit'/>
+      <var-decl name='__tracepoint_android_vh_del_page_from_lrulist' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_del_page_from_lrulist' visibility='default' filepath='include/trace/hooks/mm.h' line='155' column='1' elf-symbol-id='__tracepoint_android_vh_del_page_from_lrulist'/>
+      <var-decl name='__tracepoint_android_vh_direct_io_update_bio' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_direct_io_update_bio' visibility='default' filepath='include/trace/hooks/direct_io.h' line='14' column='1' elf-symbol-id='__tracepoint_android_vh_direct_io_update_bio'/>
+      <var-decl name='__tracepoint_android_vh_disable_thermal_cooling_stats' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_disable_thermal_cooling_stats' visibility='default' filepath='include/trace/hooks/thermal.h' line='53' column='1' elf-symbol-id='__tracepoint_android_vh_disable_thermal_cooling_stats'/>
+      <var-decl name='__tracepoint_android_vh_dm_bufio_shrink_scan_bypass' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_dm_bufio_shrink_scan_bypass' visibility='default' filepath='include/trace/hooks/mm.h' line='76' column='1' elf-symbol-id='__tracepoint_android_vh_dm_bufio_shrink_scan_bypass'/>
+      <var-decl name='__tracepoint_android_vh_dm_update_clone_bio' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_dm_update_clone_bio' visibility='default' filepath='include/trace/hooks/dm.h' line='14' column='1' elf-symbol-id='__tracepoint_android_vh_dm_update_clone_bio'/>
+      <var-decl name='__tracepoint_android_vh_dma_buf_release' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_dma_buf_release' visibility='default' filepath='include/trace/hooks/dmabuf.h' line='20' column='1' elf-symbol-id='__tracepoint_android_vh_dma_buf_release'/>
+      <var-decl name='__tracepoint_android_vh_dmabuf_heap_flags_validation' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_dmabuf_heap_flags_validation' visibility='default' filepath='include/trace/hooks/dmabuf.h' line='25' column='1' elf-symbol-id='__tracepoint_android_vh_dmabuf_heap_flags_validation'/>
+      <var-decl name='__tracepoint_android_vh_do_futex' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_do_futex' visibility='default' filepath='include/trace/hooks/futex.h' line='34' column='1' elf-symbol-id='__tracepoint_android_vh_do_futex'/>
+      <var-decl name='__tracepoint_android_vh_do_page_trylock' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_do_page_trylock' visibility='default' filepath='include/trace/hooks/mm.h' line='144' column='1' elf-symbol-id='__tracepoint_android_vh_do_page_trylock'/>
+      <var-decl name='__tracepoint_android_vh_do_send_sig_info' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_do_send_sig_info' visibility='default' filepath='include/trace/hooks/signal.h' line='12' column='1' elf-symbol-id='__tracepoint_android_vh_do_send_sig_info'/>
+      <var-decl name='__tracepoint_android_vh_do_traversal_lruvec' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_do_traversal_lruvec' visibility='default' filepath='include/trace/hooks/mm.h' line='161' column='1' elf-symbol-id='__tracepoint_android_vh_do_traversal_lruvec'/>
+      <var-decl name='__tracepoint_android_vh_do_wake_up_sync' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_do_wake_up_sync' visibility='default' filepath='include/trace/hooks/sched.h' line='394' column='1' elf-symbol-id='__tracepoint_android_vh_do_wake_up_sync'/>
+      <var-decl name='__tracepoint_android_vh_drain_all_pages_bypass' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_drain_all_pages_bypass' visibility='default' filepath='include/trace/hooks/mm.h' line='71' column='1' elf-symbol-id='__tracepoint_android_vh_drain_all_pages_bypass'/>
+      <var-decl name='__tracepoint_android_vh_drm_atomic_check_modeset' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_drm_atomic_check_modeset' visibility='default' filepath='include/trace/hooks/drm_atomic.h' line='22' column='1' elf-symbol-id='__tracepoint_android_vh_drm_atomic_check_modeset'/>
+      <var-decl name='__tracepoint_android_vh_dump_throttled_rt_tasks' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_dump_throttled_rt_tasks' visibility='default' filepath='include/trace/hooks/sched.h' line='96' column='1' elf-symbol-id='__tracepoint_android_vh_dump_throttled_rt_tasks'/>
+      <var-decl name='__tracepoint_android_vh_dup_task_struct' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_dup_task_struct' visibility='default' filepath='include/trace/hooks/sched.h' line='415' column='1' elf-symbol-id='__tracepoint_android_vh_dup_task_struct'/>
+      <var-decl name='__tracepoint_android_vh_enable_thermal_power_throttle' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_enable_thermal_power_throttle' visibility='default' filepath='include/trace/hooks/thermal.h' line='37' column='1' elf-symbol-id='__tracepoint_android_vh_enable_thermal_power_throttle'/>
+      <var-decl name='__tracepoint_android_vh_encrypt_page' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_encrypt_page' visibility='default' filepath='include/trace/hooks/bl_hib.h' line='26' column='1' elf-symbol-id='__tracepoint_android_vh_encrypt_page'/>
+      <var-decl name='__tracepoint_android_vh_exit_mm' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_exit_mm' visibility='default' filepath='include/trace/hooks/mm.h' line='53' column='1' elf-symbol-id='__tracepoint_android_vh_exit_mm'/>
+      <var-decl name='__tracepoint_android_vh_exit_signal' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_exit_signal' visibility='default' filepath='include/trace/hooks/signal.h' line='18' column='1' elf-symbol-id='__tracepoint_android_vh_exit_signal'/>
+      <var-decl name='__tracepoint_android_vh_free_one_page_bypass' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_free_one_page_bypass' visibility='default' filepath='include/trace/hooks/mm.h' line='202' column='1' elf-symbol-id='__tracepoint_android_vh_free_one_page_bypass'/>
+      <var-decl name='__tracepoint_android_vh_free_task' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_free_task' visibility='default' filepath='include/trace/hooks/sched.h' line='321' column='1' elf-symbol-id='__tracepoint_android_vh_free_task'/>
+      <var-decl name='__tracepoint_android_vh_free_unref_page_bypass' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_free_unref_page_bypass' visibility='default' filepath='include/trace/hooks/mm.h' line='90' column='1' elf-symbol-id='__tracepoint_android_vh_free_unref_page_bypass'/>
+      <var-decl name='__tracepoint_android_vh_freq_qos_add_request' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_freq_qos_add_request' visibility='default' filepath='include/trace/hooks/power.h' line='35' column='1' elf-symbol-id='__tracepoint_android_vh_freq_qos_add_request'/>
+      <var-decl name='__tracepoint_android_vh_freq_qos_remove_request' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_freq_qos_remove_request' visibility='default' filepath='include/trace/hooks/power.h' line='44' column='1' elf-symbol-id='__tracepoint_android_vh_freq_qos_remove_request'/>
+      <var-decl name='__tracepoint_android_vh_freq_qos_update_request' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_freq_qos_update_request' visibility='default' filepath='include/trace/hooks/power.h' line='40' column='1' elf-symbol-id='__tracepoint_android_vh_freq_qos_update_request'/>
+      <var-decl name='__tracepoint_android_vh_ftrace_dump_buffer' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ftrace_dump_buffer' visibility='default' filepath='include/trace/hooks/ftrace_dump.h' line='34' column='1' elf-symbol-id='__tracepoint_android_vh_ftrace_dump_buffer'/>
+      <var-decl name='__tracepoint_android_vh_ftrace_format_check' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ftrace_format_check' visibility='default' filepath='include/trace/hooks/ftrace_dump.h' line='30' column='1' elf-symbol-id='__tracepoint_android_vh_ftrace_format_check'/>
+      <var-decl name='__tracepoint_android_vh_ftrace_oops_enter' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ftrace_oops_enter' visibility='default' filepath='include/trace/hooks/ftrace_dump.h' line='18' column='1' elf-symbol-id='__tracepoint_android_vh_ftrace_oops_enter'/>
+      <var-decl name='__tracepoint_android_vh_ftrace_oops_exit' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ftrace_oops_exit' visibility='default' filepath='include/trace/hooks/ftrace_dump.h' line='22' column='1' elf-symbol-id='__tracepoint_android_vh_ftrace_oops_exit'/>
+      <var-decl name='__tracepoint_android_vh_ftrace_size_check' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ftrace_size_check' visibility='default' filepath='include/trace/hooks/ftrace_dump.h' line='26' column='1' elf-symbol-id='__tracepoint_android_vh_ftrace_size_check'/>
+      <var-decl name='__tracepoint_android_vh_futex_sleep_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_futex_sleep_start' visibility='default' filepath='include/trace/hooks/futex.h' line='30' column='1' elf-symbol-id='__tracepoint_android_vh_futex_sleep_start'/>
+      <var-decl name='__tracepoint_android_vh_futex_wait_end' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_futex_wait_end' visibility='default' filepath='include/trace/hooks/futex.h' line='45' column='1' elf-symbol-id='__tracepoint_android_vh_futex_wait_end'/>
+      <var-decl name='__tracepoint_android_vh_futex_wait_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_futex_wait_start' visibility='default' filepath='include/trace/hooks/futex.h' line='40' column='1' elf-symbol-id='__tracepoint_android_vh_futex_wait_start'/>
+      <var-decl name='__tracepoint_android_vh_futex_wake_this' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_futex_wake_this' visibility='default' filepath='include/trace/hooks/futex.h' line='55' column='1' elf-symbol-id='__tracepoint_android_vh_futex_wake_this'/>
+      <var-decl name='__tracepoint_android_vh_futex_wake_traverse_plist' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_futex_wake_traverse_plist' visibility='default' filepath='include/trace/hooks/futex.h' line='50' column='1' elf-symbol-id='__tracepoint_android_vh_futex_wake_traverse_plist'/>
+      <var-decl name='__tracepoint_android_vh_futex_wake_up_q_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_futex_wake_up_q_finish' visibility='default' filepath='include/trace/hooks/futex.h' line='60' column='1' elf-symbol-id='__tracepoint_android_vh_futex_wake_up_q_finish'/>
+      <var-decl name='__tracepoint_android_vh_get_thermal_zone_device' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_get_thermal_zone_device' visibility='default' filepath='include/trace/hooks/thermal.h' line='49' column='1' elf-symbol-id='__tracepoint_android_vh_get_thermal_zone_device'/>
+      <var-decl name='__tracepoint_android_vh_gic_resume' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_gic_resume' visibility='default' filepath='include/trace/hooks/gic_v3.h' line='32' column='1' elf-symbol-id='__tracepoint_android_vh_gic_resume'/>
+      <var-decl name='__tracepoint_android_vh_gic_set_affinity' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_gic_set_affinity' visibility='default' filepath='include/trace/hooks/gic.h' line='26' column='1' elf-symbol-id='__tracepoint_android_vh_gic_set_affinity'/>
+      <var-decl name='__tracepoint_android_vh_gic_suspend' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_gic_suspend' visibility='default' filepath='include/trace/hooks/gic_v3.h' line='35' column='1' elf-symbol-id='__tracepoint_android_vh_gic_suspend'/>
+      <var-decl name='__tracepoint_android_vh_gic_v2_resume' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_gic_v2_resume' visibility='default' filepath='include/trace/hooks/gic.h' line='22' column='1' elf-symbol-id='__tracepoint_android_vh_gic_v2_resume'/>
+      <var-decl name='__tracepoint_android_vh_handle_failed_page_trylock' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_handle_failed_page_trylock' visibility='default' filepath='include/trace/hooks/vmscan.h' line='24' column='1' elf-symbol-id='__tracepoint_android_vh_handle_failed_page_trylock'/>
+      <var-decl name='__tracepoint_android_vh_handle_tlb_conf' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_handle_tlb_conf' visibility='default' filepath='include/trace/hooks/fault.h' line='33' column='1' elf-symbol-id='__tracepoint_android_vh_handle_tlb_conf'/>
+      <var-decl name='__tracepoint_android_vh_init_aes_encrypt' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_init_aes_encrypt' visibility='default' filepath='include/trace/hooks/bl_hib.h' line='30' column='1' elf-symbol-id='__tracepoint_android_vh_init_aes_encrypt'/>
+      <var-decl name='__tracepoint_android_vh_iommu_iovad_alloc_iova' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_iommu_iovad_alloc_iova' visibility='default' filepath='include/trace/hooks/iommu.h' line='24' column='1' elf-symbol-id='__tracepoint_android_vh_iommu_iovad_alloc_iova'/>
+      <var-decl name='__tracepoint_android_vh_iommu_iovad_free_iova' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_iommu_iovad_free_iova' visibility='default' filepath='include/trace/hooks/iommu.h' line='28' column='1' elf-symbol-id='__tracepoint_android_vh_iommu_iovad_free_iova'/>
+      <var-decl name='__tracepoint_android_vh_ipi_stop' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ipi_stop' visibility='default' filepath='include/trace/hooks/debug.h' line='18' column='1' elf-symbol-id='__tracepoint_android_vh_ipi_stop'/>
+      <var-decl name='__tracepoint_android_vh_irqtime_account_process_tick' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_irqtime_account_process_tick' visibility='default' filepath='include/trace/hooks/sched.h' line='325' column='1' elf-symbol-id='__tracepoint_android_vh_irqtime_account_process_tick'/>
+      <var-decl name='__tracepoint_android_vh_is_fpsimd_save' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_is_fpsimd_save' visibility='default' filepath='include/trace/hooks/fpsimd.h' line='18' column='1' elf-symbol-id='__tracepoint_android_vh_is_fpsimd_save'/>
+      <var-decl name='__tracepoint_android_vh_jiffies_update' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_jiffies_update' visibility='default' filepath='include/trace/hooks/sched.h' line='101' column='1' elf-symbol-id='__tracepoint_android_vh_jiffies_update'/>
+      <var-decl name='__tracepoint_android_vh_killed_process' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_killed_process' visibility='default' filepath='include/trace/hooks/signal.h' line='21' column='1' elf-symbol-id='__tracepoint_android_vh_killed_process'/>
+      <var-decl name='__tracepoint_android_vh_kmalloc_order_alloced' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_kmalloc_order_alloced' visibility='default' filepath='include/trace/hooks/mm.h' line='218' column='1' elf-symbol-id='__tracepoint_android_vh_kmalloc_order_alloced'/>
+      <var-decl name='__tracepoint_android_vh_kmalloc_slab' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_kmalloc_slab' visibility='default' filepath='include/trace/hooks/mm.h' line='190' column='1' elf-symbol-id='__tracepoint_android_vh_kmalloc_slab'/>
+      <var-decl name='__tracepoint_android_vh_kswapd_per_node' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_kswapd_per_node' visibility='default' filepath='include/trace/hooks/vmscan.h' line='15' column='1' elf-symbol-id='__tracepoint_android_vh_kswapd_per_node'/>
+      <var-decl name='__tracepoint_android_vh_kvmalloc_node_use_vmalloc' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_kvmalloc_node_use_vmalloc' visibility='default' filepath='include/trace/hooks/mm.h' line='93' column='1' elf-symbol-id='__tracepoint_android_vh_kvmalloc_node_use_vmalloc'/>
+      <var-decl name='__tracepoint_android_vh_logbuf' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_logbuf' visibility='default' filepath='include/trace/hooks/logbuf.h' line='19' column='1' elf-symbol-id='__tracepoint_android_vh_logbuf'/>
+      <var-decl name='__tracepoint_android_vh_logbuf_pr_cont' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_logbuf_pr_cont' visibility='default' filepath='include/trace/hooks/logbuf.h' line='23' column='1' elf-symbol-id='__tracepoint_android_vh_logbuf_pr_cont'/>
+      <var-decl name='__tracepoint_android_vh_look_around' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_look_around' visibility='default' filepath='include/trace/hooks/mm.h' line='239' column='1' elf-symbol-id='__tracepoint_android_vh_look_around'/>
+      <var-decl name='__tracepoint_android_vh_look_around_migrate_page' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_look_around_migrate_page' visibility='default' filepath='include/trace/hooks/mm.h' line='236' column='1' elf-symbol-id='__tracepoint_android_vh_look_around_migrate_page'/>
+      <var-decl name='__tracepoint_android_vh_loop_prepare_cmd' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_loop_prepare_cmd' visibility='default' filepath='include/trace/hooks/loop.h' line='14' column='1' elf-symbol-id='__tracepoint_android_vh_loop_prepare_cmd'/>
+      <var-decl name='__tracepoint_android_vh_madvise_cold_or_pageout' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_madvise_cold_or_pageout' visibility='default' filepath='include/trace/hooks/mm.h' line='193' column='1' elf-symbol-id='__tracepoint_android_vh_madvise_cold_or_pageout'/>
+      <var-decl name='__tracepoint_android_vh_madvise_cold_or_pageout_abort' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_madvise_cold_or_pageout_abort' visibility='default' filepath='include/trace/hooks/mm.h' line='224' column='1' elf-symbol-id='__tracepoint_android_vh_madvise_cold_or_pageout_abort'/>
+      <var-decl name='__tracepoint_android_vh_map_util_freq' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_map_util_freq' visibility='default' filepath='include/trace/hooks/sched.h' line='253' column='1' elf-symbol-id='__tracepoint_android_vh_map_util_freq'/>
+      <var-decl name='__tracepoint_android_vh_map_util_freq_new' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_map_util_freq_new' visibility='default' filepath='include/trace/hooks/sched.h' line='259' column='1' elf-symbol-id='__tracepoint_android_vh_map_util_freq_new'/>
+      <var-decl name='__tracepoint_android_vh_mark_page_accessed' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mark_page_accessed' visibility='default' filepath='include/trace/hooks/mm.h' line='167' column='1' elf-symbol-id='__tracepoint_android_vh_mark_page_accessed'/>
+      <var-decl name='__tracepoint_android_vh_mem_cgroup_alloc' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mem_cgroup_alloc' visibility='default' filepath='include/trace/hooks/mm.h' line='125' column='1' elf-symbol-id='__tracepoint_android_vh_mem_cgroup_alloc'/>
+      <var-decl name='__tracepoint_android_vh_mem_cgroup_css_offline' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mem_cgroup_css_offline' visibility='default' filepath='include/trace/hooks/mm.h' line='138' column='1' elf-symbol-id='__tracepoint_android_vh_mem_cgroup_css_offline'/>
+      <var-decl name='__tracepoint_android_vh_mem_cgroup_css_online' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mem_cgroup_css_online' visibility='default' filepath='include/trace/hooks/mm.h' line='135' column='1' elf-symbol-id='__tracepoint_android_vh_mem_cgroup_css_online'/>
+      <var-decl name='__tracepoint_android_vh_mem_cgroup_free' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mem_cgroup_free' visibility='default' filepath='include/trace/hooks/mm.h' line='128' column='1' elf-symbol-id='__tracepoint_android_vh_mem_cgroup_free'/>
+      <var-decl name='__tracepoint_android_vh_mem_cgroup_id_remove' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mem_cgroup_id_remove' visibility='default' filepath='include/trace/hooks/mm.h' line='131' column='1' elf-symbol-id='__tracepoint_android_vh_mem_cgroup_id_remove'/>
+      <var-decl name='__tracepoint_android_vh_meminfo_proc_show' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_meminfo_proc_show' visibility='default' filepath='include/trace/hooks/mm.h' line='50' column='1' elf-symbol-id='__tracepoint_android_vh_meminfo_proc_show'/>
+      <var-decl name='__tracepoint_android_vh_mmap_region' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mmap_region' visibility='default' filepath='include/trace/hooks/mm.h' line='115' column='1' elf-symbol-id='__tracepoint_android_vh_mmap_region'/>
+      <var-decl name='__tracepoint_android_vh_mmc_attach_sd' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mmc_attach_sd' visibility='default' filepath='include/trace/hooks/mmc.h' line='42' column='1' elf-symbol-id='__tracepoint_android_vh_mmc_attach_sd'/>
+      <var-decl name='__tracepoint_android_vh_mmc_blk_mq_rw_recovery' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mmc_blk_mq_rw_recovery' visibility='default' filepath='include/trace/hooks/mmc.h' line='36' column='1' elf-symbol-id='__tracepoint_android_vh_mmc_blk_mq_rw_recovery'/>
+      <var-decl name='__tracepoint_android_vh_mmc_blk_reset' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mmc_blk_reset' visibility='default' filepath='include/trace/hooks/mmc.h' line='33' column='1' elf-symbol-id='__tracepoint_android_vh_mmc_blk_reset'/>
+      <var-decl name='__tracepoint_android_vh_mmc_check_status' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mmc_check_status' visibility='default' filepath='include/trace/hooks/mmc.h' line='26' column='1' elf-symbol-id='__tracepoint_android_vh_mmc_check_status'/>
+      <var-decl name='__tracepoint_android_vh_mmc_ffu_update_cid' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mmc_ffu_update_cid' visibility='default' filepath='include/trace/hooks/mmc.h' line='51' column='1' elf-symbol-id='__tracepoint_android_vh_mmc_ffu_update_cid'/>
+      <var-decl name='__tracepoint_android_vh_mmc_gpio_cd_irqt' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mmc_gpio_cd_irqt' visibility='default' filepath='include/trace/hooks/mmc.h' line='48' column='1' elf-symbol-id='__tracepoint_android_vh_mmc_gpio_cd_irqt'/>
+      <var-decl name='__tracepoint_android_vh_mmc_sd_update_cmdline_timing' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mmc_sd_update_cmdline_timing' visibility='default' filepath='include/trace/hooks/mmc.h' line='67' column='1' elf-symbol-id='__tracepoint_android_vh_mmc_sd_update_cmdline_timing'/>
+      <var-decl name='__tracepoint_android_vh_mmc_sd_update_dataline_timing' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mmc_sd_update_dataline_timing' visibility='default' filepath='include/trace/hooks/mmc.h' line='71' column='1' elf-symbol-id='__tracepoint_android_vh_mmc_sd_update_dataline_timing'/>
+      <var-decl name='__tracepoint_android_vh_mmc_sdio_pm_flag_set' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mmc_sdio_pm_flag_set' visibility='default' filepath='include/trace/hooks/mmc.h' line='30' column='1' elf-symbol-id='__tracepoint_android_vh_mmc_sdio_pm_flag_set'/>
+      <var-decl name='__tracepoint_android_vh_mmc_update_partition_status' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mmc_update_partition_status' visibility='default' filepath='include/trace/hooks/mmc.h' line='63' column='1' elf-symbol-id='__tracepoint_android_vh_mmc_update_partition_status'/>
+      <var-decl name='__tracepoint_android_vh_mmput' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mmput' visibility='default' filepath='include/trace/hooks/sched.h' line='435' column='1' elf-symbol-id='__tracepoint_android_vh_mmput'/>
+      <var-decl name='__tracepoint_android_vh_modify_thermal_cpu_get_power' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_modify_thermal_cpu_get_power' visibility='default' filepath='include/trace/hooks/thermal.h' line='57' column='1' elf-symbol-id='__tracepoint_android_vh_modify_thermal_cpu_get_power'/>
+      <var-decl name='__tracepoint_android_vh_modify_thermal_request_freq' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_modify_thermal_request_freq' visibility='default' filepath='include/trace/hooks/thermal.h' line='21' column='1' elf-symbol-id='__tracepoint_android_vh_modify_thermal_request_freq'/>
+      <var-decl name='__tracepoint_android_vh_modify_thermal_target_freq' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_modify_thermal_target_freq' visibility='default' filepath='include/trace/hooks/thermal.h' line='25' column='1' elf-symbol-id='__tracepoint_android_vh_modify_thermal_target_freq'/>
+      <var-decl name='__tracepoint_android_vh_modify_thermal_throttle_update' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_modify_thermal_throttle_update' visibility='default' filepath='include/trace/hooks/thermal.h' line='41' column='1' elf-symbol-id='__tracepoint_android_vh_modify_thermal_throttle_update'/>
+      <var-decl name='__tracepoint_android_vh_mpam_set' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mpam_set' visibility='default' filepath='include/trace/hooks/mpam.h' line='19' column='1' elf-symbol-id='__tracepoint_android_vh_mpam_set'/>
+      <var-decl name='__tracepoint_android_vh_mutex_can_spin_on_owner' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_can_spin_on_owner' visibility='default' filepath='include/trace/hooks/dtask.h' line='41' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_can_spin_on_owner'/>
+      <var-decl name='__tracepoint_android_vh_mutex_init' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_init' visibility='default' filepath='include/trace/hooks/dtask.h' line='32' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_init'/>
+      <var-decl name='__tracepoint_android_vh_mutex_opt_spin_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_opt_spin_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='38' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_opt_spin_finish'/>
+      <var-decl name='__tracepoint_android_vh_mutex_opt_spin_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_opt_spin_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='35' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_opt_spin_start'/>
+      <var-decl name='__tracepoint_android_vh_mutex_unlock_slowpath' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_unlock_slowpath' visibility='default' filepath='include/trace/hooks/dtask.h' line='85' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_unlock_slowpath'/>
+      <var-decl name='__tracepoint_android_vh_mutex_wait_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_wait_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='29' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_wait_finish'/>
+      <var-decl name='__tracepoint_android_vh_mutex_wait_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_wait_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='26' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_wait_start'/>
+      <var-decl name='__tracepoint_android_vh_oom_check_panic' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_oom_check_panic' visibility='default' filepath='include/trace/hooks/mm.h' line='68' column='1' elf-symbol-id='__tracepoint_android_vh_oom_check_panic'/>
+      <var-decl name='__tracepoint_android_vh_page_cache_forced_ra' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_page_cache_forced_ra' visibility='default' filepath='include/trace/hooks/mm.h' line='170' column='1' elf-symbol-id='__tracepoint_android_vh_page_cache_forced_ra'/>
+      <var-decl name='__tracepoint_android_vh_page_referenced_check_bypass' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_page_referenced_check_bypass' visibility='default' filepath='include/trace/hooks/vmscan.h' line='18' column='1' elf-symbol-id='__tracepoint_android_vh_page_referenced_check_bypass'/>
+      <var-decl name='__tracepoint_android_vh_page_should_be_protected' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_page_should_be_protected' visibility='default' filepath='include/trace/hooks/mm.h' line='164' column='1' elf-symbol-id='__tracepoint_android_vh_page_should_be_protected'/>
+      <var-decl name='__tracepoint_android_vh_page_trylock_clear' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_page_trylock_clear' visibility='default' filepath='include/trace/hooks/vmscan.h' line='30' column='1' elf-symbol-id='__tracepoint_android_vh_page_trylock_clear'/>
+      <var-decl name='__tracepoint_android_vh_page_trylock_get_result' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_page_trylock_get_result' visibility='default' filepath='include/trace/hooks/vmscan.h' line='21' column='1' elf-symbol-id='__tracepoint_android_vh_page_trylock_get_result'/>
+      <var-decl name='__tracepoint_android_vh_page_trylock_set' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_page_trylock_set' visibility='default' filepath='include/trace/hooks/vmscan.h' line='27' column='1' elf-symbol-id='__tracepoint_android_vh_page_trylock_set'/>
+      <var-decl name='__tracepoint_android_vh_pcplist_add_cma_pages_bypass' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_pcplist_add_cma_pages_bypass' visibility='default' filepath='include/trace/hooks/mm.h' line='87' column='1' elf-symbol-id='__tracepoint_android_vh_pcplist_add_cma_pages_bypass'/>
+      <var-decl name='__tracepoint_android_vh_post_image_save' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_post_image_save' visibility='default' filepath='include/trace/hooks/bl_hib.h' line='38' column='1' elf-symbol-id='__tracepoint_android_vh_post_image_save'/>
+      <var-decl name='__tracepoint_android_vh_print_slabinfo_header' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_print_slabinfo_header' visibility='default' filepath='include/trace/hooks/mm.h' line='62' column='1' elf-symbol-id='__tracepoint_android_vh_print_slabinfo_header'/>
+      <var-decl name='__tracepoint_android_vh_printk_caller' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_printk_caller' visibility='default' filepath='include/trace/hooks/printk.h' line='19' column='1' elf-symbol-id='__tracepoint_android_vh_printk_caller'/>
+      <var-decl name='__tracepoint_android_vh_printk_caller_id' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_printk_caller_id' visibility='default' filepath='include/trace/hooks/printk.h' line='16' column='1' elf-symbol-id='__tracepoint_android_vh_printk_caller_id'/>
+      <var-decl name='__tracepoint_android_vh_printk_ext_header' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_printk_ext_header' visibility='default' filepath='include/trace/hooks/printk.h' line='22' column='1' elf-symbol-id='__tracepoint_android_vh_printk_ext_header'/>
+      <var-decl name='__tracepoint_android_vh_printk_hotplug' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_printk_hotplug' visibility='default' filepath='include/trace/hooks/printk.h' line='12' column='1' elf-symbol-id='__tracepoint_android_vh_printk_hotplug'/>
+      <var-decl name='__tracepoint_android_vh_psi_group' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_psi_group' visibility='default' filepath='include/trace/hooks/psi.h' line='18' column='1' elf-symbol-id='__tracepoint_android_vh_psi_group'/>
+      <var-decl name='__tracepoint_android_vh_ptype_head' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ptype_head' visibility='default' filepath='include/trace/hooks/net.h' line='21' column='1' elf-symbol-id='__tracepoint_android_vh_ptype_head'/>
+      <var-decl name='__tracepoint_android_vh_ra_tuning_max_page' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ra_tuning_max_page' visibility='default' filepath='include/trace/hooks/mm.h' line='108' column='1' elf-symbol-id='__tracepoint_android_vh_ra_tuning_max_page'/>
+      <var-decl name='__tracepoint_android_vh_record_mutex_lock_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_mutex_lock_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='88' column='1' elf-symbol-id='__tracepoint_android_vh_record_mutex_lock_starttime'/>
+      <var-decl name='__tracepoint_android_vh_record_pcpu_rwsem_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_pcpu_rwsem_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='97' column='1' elf-symbol-id='__tracepoint_android_vh_record_pcpu_rwsem_starttime'/>
+      <var-decl name='__tracepoint_android_vh_record_rtmutex_lock_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_rtmutex_lock_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='91' column='1' elf-symbol-id='__tracepoint_android_vh_record_rtmutex_lock_starttime'/>
+      <var-decl name='__tracepoint_android_vh_record_rwsem_lock_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_rwsem_lock_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='94' column='1' elf-symbol-id='__tracepoint_android_vh_record_rwsem_lock_starttime'/>
+      <var-decl name='__tracepoint_android_vh_regmap_update' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_regmap_update' visibility='default' filepath='include/trace/hooks/regmap.h' line='23' column='1' elf-symbol-id='__tracepoint_android_vh_regmap_update'/>
+      <var-decl name='__tracepoint_android_vh_rmqueue' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rmqueue' visibility='default' filepath='include/trace/hooks/mm.h' line='184' column='1' elf-symbol-id='__tracepoint_android_vh_rmqueue'/>
+      <var-decl name='__tracepoint_android_vh_rmqueue_bulk_bypass' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rmqueue_bulk_bypass' visibility='default' filepath='include/trace/hooks/mm.h' line='104' column='1' elf-symbol-id='__tracepoint_android_vh_rmqueue_bulk_bypass'/>
+      <var-decl name='__tracepoint_android_vh_rmqueue_cma_fallback' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rmqueue_cma_fallback' visibility='default' filepath='include/trace/hooks/mm.h' line='230' column='1' elf-symbol-id='__tracepoint_android_vh_rmqueue_cma_fallback'/>
+      <var-decl name='__tracepoint_android_vh_rmqueue_smallest_bypass' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rmqueue_smallest_bypass' visibility='default' filepath='include/trace/hooks/mm.h' line='199' column='1' elf-symbol-id='__tracepoint_android_vh_rmqueue_smallest_bypass'/>
+      <var-decl name='__tracepoint_android_vh_rproc_recovery' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rproc_recovery' visibility='default' filepath='include/trace/hooks/remoteproc.h' line='19' column='1' elf-symbol-id='__tracepoint_android_vh_rproc_recovery'/>
+      <var-decl name='__tracepoint_android_vh_rproc_recovery_set' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rproc_recovery_set' visibility='default' filepath='include/trace/hooks/remoteproc.h' line='24' column='1' elf-symbol-id='__tracepoint_android_vh_rproc_recovery_set'/>
+      <var-decl name='__tracepoint_android_vh_rtmutex_wait_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rtmutex_wait_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='48' column='1' elf-symbol-id='__tracepoint_android_vh_rtmutex_wait_finish'/>
+      <var-decl name='__tracepoint_android_vh_rtmutex_wait_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rtmutex_wait_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='45' column='1' elf-symbol-id='__tracepoint_android_vh_rtmutex_wait_start'/>
+      <var-decl name='__tracepoint_android_vh_rtmutex_waiter_prio' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rtmutex_waiter_prio' visibility='default' filepath='include/trace/hooks/dtask.h' line='108' column='1' elf-symbol-id='__tracepoint_android_vh_rtmutex_waiter_prio'/>
+      <var-decl name='__tracepoint_android_vh_rwsem_can_spin_on_owner' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_can_spin_on_owner' visibility='default' filepath='include/trace/hooks/dtask.h' line='70' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_can_spin_on_owner'/>
+      <var-decl name='__tracepoint_android_vh_rwsem_init' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_init' visibility='default' filepath='include/trace/hooks/rwsem.h' line='20' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_init'/>
+      <var-decl name='__tracepoint_android_vh_rwsem_opt_spin_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_opt_spin_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='67' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_opt_spin_finish'/>
+      <var-decl name='__tracepoint_android_vh_rwsem_opt_spin_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_opt_spin_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='64' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_opt_spin_start'/>
+      <var-decl name='__tracepoint_android_vh_rwsem_read_wait_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_read_wait_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='55' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_read_wait_finish'/>
+      <var-decl name='__tracepoint_android_vh_rwsem_read_wait_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_read_wait_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='52' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_read_wait_start'/>
+      <var-decl name='__tracepoint_android_vh_rwsem_wake' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_wake' visibility='default' filepath='include/trace/hooks/rwsem.h' line='23' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_wake'/>
+      <var-decl name='__tracepoint_android_vh_rwsem_wake_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_wake_finish' visibility='default' filepath='include/trace/hooks/rwsem.h' line='34' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_wake_finish'/>
+      <var-decl name='__tracepoint_android_vh_rwsem_write_finished' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_write_finished' visibility='default' filepath='include/trace/hooks/rwsem.h' line='26' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_write_finished'/>
+      <var-decl name='__tracepoint_android_vh_rwsem_write_wait_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_write_wait_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='61' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_write_wait_finish'/>
+      <var-decl name='__tracepoint_android_vh_rwsem_write_wait_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_write_wait_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='58' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_write_wait_start'/>
+      <var-decl name='__tracepoint_android_vh_save_cpu_resume' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_save_cpu_resume' visibility='default' filepath='include/trace/hooks/bl_hib.h' line='18' column='1' elf-symbol-id='__tracepoint_android_vh_save_cpu_resume'/>
+      <var-decl name='__tracepoint_android_vh_save_hib_resume_bdev' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_save_hib_resume_bdev' visibility='default' filepath='include/trace/hooks/bl_hib.h' line='22' column='1' elf-symbol-id='__tracepoint_android_vh_save_hib_resume_bdev'/>
+      <var-decl name='__tracepoint_android_vh_save_track_hash' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_save_track_hash' visibility='default' filepath='include/trace/hooks/mm.h' line='181' column='1' elf-symbol-id='__tracepoint_android_vh_save_track_hash'/>
+      <var-decl name='__tracepoint_android_vh_sched_pelt_multiplier' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sched_pelt_multiplier' visibility='default' filepath='include/trace/hooks/sched.h' line='329' column='1' elf-symbol-id='__tracepoint_android_vh_sched_pelt_multiplier'/>
+      <var-decl name='__tracepoint_android_vh_sched_setaffinity_early' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sched_setaffinity_early' visibility='default' filepath='include/trace/hooks/sched.h' line='427' column='1' elf-symbol-id='__tracepoint_android_vh_sched_setaffinity_early'/>
+      <var-decl name='__tracepoint_android_vh_sched_show_task' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sched_show_task' visibility='default' filepath='include/trace/hooks/dtask.h' line='74' column='1' elf-symbol-id='__tracepoint_android_vh_sched_show_task'/>
+      <var-decl name='__tracepoint_android_vh_sched_stat_runtime_rt' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sched_stat_runtime_rt' visibility='default' filepath='include/trace/hooks/sched.h' line='374' column='1' elf-symbol-id='__tracepoint_android_vh_sched_stat_runtime_rt'/>
+      <var-decl name='__tracepoint_android_vh_scheduler_tick' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_scheduler_tick' visibility='default' filepath='include/trace/hooks/sched.h' line='34' column='1' elf-symbol-id='__tracepoint_android_vh_scheduler_tick'/>
+      <var-decl name='__tracepoint_android_vh_sd_update_bus_speed_mode' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sd_update_bus_speed_mode' visibility='default' filepath='include/trace/hooks/mmc.h' line='39' column='1' elf-symbol-id='__tracepoint_android_vh_sd_update_bus_speed_mode'/>
+      <var-decl name='__tracepoint_android_vh_sdhci_get_cd' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sdhci_get_cd' visibility='default' filepath='include/trace/hooks/mmc.h' line='45' column='1' elf-symbol-id='__tracepoint_android_vh_sdhci_get_cd'/>
+      <var-decl name='__tracepoint_android_vh_set_memory_nx' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_set_memory_nx' visibility='default' filepath='include/trace/hooks/memory.h' line='13' column='1' elf-symbol-id='__tracepoint_android_vh_set_memory_nx'/>
+      <var-decl name='__tracepoint_android_vh_set_memory_rw' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_set_memory_rw' visibility='default' filepath='include/trace/hooks/memory.h' line='17' column='1' elf-symbol-id='__tracepoint_android_vh_set_memory_rw'/>
+      <var-decl name='__tracepoint_android_vh_set_module_permit_after_init' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_set_module_permit_after_init' visibility='default' filepath='include/trace/hooks/module.h' line='24' column='1' elf-symbol-id='__tracepoint_android_vh_set_module_permit_after_init'/>
+      <var-decl name='__tracepoint_android_vh_set_module_permit_before_init' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_set_module_permit_before_init' visibility='default' filepath='include/trace/hooks/module.h' line='20' column='1' elf-symbol-id='__tracepoint_android_vh_set_module_permit_before_init'/>
+      <var-decl name='__tracepoint_android_vh_set_page_migrating' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_set_page_migrating' visibility='default' filepath='include/trace/hooks/mm.h' line='246' column='1' elf-symbol-id='__tracepoint_android_vh_set_page_migrating'/>
+      <var-decl name='__tracepoint_android_vh_set_wake_flags' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_set_wake_flags' visibility='default' filepath='include/trace/hooks/sched.h' line='398' column='1' elf-symbol-id='__tracepoint_android_vh_set_wake_flags'/>
+      <var-decl name='__tracepoint_android_vh_setscheduler_uclamp' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_setscheduler_uclamp' visibility='default' filepath='include/trace/hooks/sched.h' line='390' column='1' elf-symbol-id='__tracepoint_android_vh_setscheduler_uclamp'/>
+      <var-decl name='__tracepoint_android_vh_sha256' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sha256' visibility='default' filepath='include/trace/hooks/fips140.h' line='23' column='1' elf-symbol-id='__tracepoint_android_vh_sha256'/>
+      <var-decl name='__tracepoint_android_vh_should_alloc_pages_retry' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_should_alloc_pages_retry' visibility='default' filepath='include/trace/hooks/mm.h' line='96' column='1' elf-symbol-id='__tracepoint_android_vh_should_alloc_pages_retry'/>
+      <var-decl name='__tracepoint_android_vh_show_mapcount_pages' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_show_mapcount_pages' visibility='default' filepath='include/trace/hooks/mm.h' line='158' column='1' elf-symbol-id='__tracepoint_android_vh_show_mapcount_pages'/>
+      <var-decl name='__tracepoint_android_vh_show_mem' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_show_mem' visibility='default' filepath='include/trace/hooks/mm.h' line='56' column='1' elf-symbol-id='__tracepoint_android_vh_show_mem'/>
+      <var-decl name='__tracepoint_android_vh_show_resume_epoch_val' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_show_resume_epoch_val' visibility='default' filepath='include/trace/hooks/epoch.h' line='16' column='1' elf-symbol-id='__tracepoint_android_vh_show_resume_epoch_val'/>
+      <var-decl name='__tracepoint_android_vh_show_suspend_epoch_val' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_show_suspend_epoch_val' visibility='default' filepath='include/trace/hooks/epoch.h' line='12' column='1' elf-symbol-id='__tracepoint_android_vh_show_suspend_epoch_val'/>
+      <var-decl name='__tracepoint_android_vh_shrink_slab_bypass' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_shrink_slab_bypass' visibility='default' filepath='include/trace/hooks/vmscan.h' line='42' column='1' elf-symbol-id='__tracepoint_android_vh_shrink_slab_bypass'/>
+      <var-decl name='__tracepoint_android_vh_skip_swap_map_write' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_skip_swap_map_write' visibility='default' filepath='include/trace/hooks/bl_hib.h' line='34' column='1' elf-symbol-id='__tracepoint_android_vh_skip_swap_map_write'/>
+      <var-decl name='__tracepoint_android_vh_slab_page_alloced' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_slab_page_alloced' visibility='default' filepath='include/trace/hooks/mm.h' line='215' column='1' elf-symbol-id='__tracepoint_android_vh_slab_page_alloced'/>
+      <var-decl name='__tracepoint_android_vh_sync_txn_recvd' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sync_txn_recvd' visibility='default' filepath='include/trace/hooks/binder.h' line='43' column='1' elf-symbol-id='__tracepoint_android_vh_sync_txn_recvd'/>
+      <var-decl name='__tracepoint_android_vh_syscall_prctl_finished' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_syscall_prctl_finished' visibility='default' filepath='include/trace/hooks/sys.h' line='16' column='1' elf-symbol-id='__tracepoint_android_vh_syscall_prctl_finished'/>
+      <var-decl name='__tracepoint_android_vh_sysrq_crash' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sysrq_crash' visibility='default' filepath='include/trace/hooks/sysrqcrash.h' line='13' column='1' elf-symbol-id='__tracepoint_android_vh_sysrq_crash'/>
+      <var-decl name='__tracepoint_android_vh_task_blocks_on_rtmutex' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_task_blocks_on_rtmutex' visibility='default' filepath='include/trace/hooks/dtask.h' line='103' column='1' elf-symbol-id='__tracepoint_android_vh_task_blocks_on_rtmutex'/>
+      <var-decl name='__tracepoint_android_vh_test_clear_look_around_ref' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_test_clear_look_around_ref' visibility='default' filepath='include/trace/hooks/mm.h' line='233' column='1' elf-symbol-id='__tracepoint_android_vh_test_clear_look_around_ref'/>
+      <var-decl name='__tracepoint_android_vh_thermal_power_cap' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_thermal_power_cap' visibility='default' filepath='include/trace/hooks/thermal.h' line='45' column='1' elf-symbol-id='__tracepoint_android_vh_thermal_power_cap'/>
+      <var-decl name='__tracepoint_android_vh_thermal_register' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_thermal_register' visibility='default' filepath='include/trace/hooks/thermal.h' line='29' column='1' elf-symbol-id='__tracepoint_android_vh_thermal_register'/>
+      <var-decl name='__tracepoint_android_vh_thermal_unregister' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_thermal_unregister' visibility='default' filepath='include/trace/hooks/thermal.h' line='33' column='1' elf-symbol-id='__tracepoint_android_vh_thermal_unregister'/>
+      <var-decl name='__tracepoint_android_vh_timer_calc_index' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_timer_calc_index' visibility='default' filepath='include/trace/hooks/timer.h' line='12' column='1' elf-symbol-id='__tracepoint_android_vh_timer_calc_index'/>
+      <var-decl name='__tracepoint_android_vh_try_cma_fallback' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_try_cma_fallback' visibility='default' filepath='include/trace/hooks/mm.h' line='243' column='1' elf-symbol-id='__tracepoint_android_vh_try_cma_fallback'/>
+      <var-decl name='__tracepoint_android_vh_try_to_freeze_todo' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_try_to_freeze_todo' visibility='default' filepath='include/trace/hooks/power.h' line='19' column='1' elf-symbol-id='__tracepoint_android_vh_try_to_freeze_todo'/>
+      <var-decl name='__tracepoint_android_vh_try_to_freeze_todo_logging' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_try_to_freeze_todo_logging' visibility='default' filepath='include/trace/hooks/power.h' line='23' column='1' elf-symbol-id='__tracepoint_android_vh_try_to_freeze_todo_logging'/>
+      <var-decl name='__tracepoint_android_vh_try_to_freeze_todo_unfrozen' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_try_to_freeze_todo_unfrozen' visibility='default' filepath='include/trace/hooks/power.h' line='27' column='1' elf-symbol-id='__tracepoint_android_vh_try_to_freeze_todo_unfrozen'/>
+      <var-decl name='__tracepoint_android_vh_try_to_unmap_one' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_try_to_unmap_one' visibility='default' filepath='include/trace/hooks/mm.h' line='118' column='1' elf-symbol-id='__tracepoint_android_vh_try_to_unmap_one'/>
+      <var-decl name='__tracepoint_android_vh_tune_inactive_ratio' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_tune_inactive_ratio' visibility='default' filepath='include/trace/hooks/vmscan.h' line='51' column='1' elf-symbol-id='__tracepoint_android_vh_tune_inactive_ratio'/>
+      <var-decl name='__tracepoint_android_vh_tune_mmap_readaround' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_tune_mmap_readaround' visibility='default' filepath='include/trace/hooks/mm.h' line='111' column='1' elf-symbol-id='__tracepoint_android_vh_tune_mmap_readaround'/>
+      <var-decl name='__tracepoint_android_vh_tune_scan_type' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_tune_scan_type' visibility='default' filepath='include/trace/hooks/vmscan.h' line='36' column='1' elf-symbol-id='__tracepoint_android_vh_tune_scan_type'/>
+      <var-decl name='__tracepoint_android_vh_tune_swappiness' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_tune_swappiness' visibility='default' filepath='include/trace/hooks/vmscan.h' line='39' column='1' elf-symbol-id='__tracepoint_android_vh_tune_swappiness'/>
+      <var-decl name='__tracepoint_android_vh_ufs_check_int_errors' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_check_int_errors' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='62' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_check_int_errors'/>
+      <var-decl name='__tracepoint_android_vh_ufs_clock_scaling' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_clock_scaling' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='70' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_clock_scaling'/>
+      <var-decl name='__tracepoint_android_vh_ufs_compl_command' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_compl_command' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='50' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_compl_command'/>
+      <var-decl name='__tracepoint_android_vh_ufs_fill_prdt' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_fill_prdt' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='24' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_fill_prdt'/>
+      <var-decl name='__tracepoint_android_vh_ufs_mcq_abort' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_mcq_abort' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='123' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_mcq_abort'/>
+      <var-decl name='__tracepoint_android_vh_ufs_mcq_clear_cmd' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_mcq_clear_cmd' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='127' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_mcq_clear_cmd'/>
+      <var-decl name='__tracepoint_android_vh_ufs_mcq_clear_pending' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_mcq_clear_pending' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='131' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_mcq_clear_pending'/>
+      <var-decl name='__tracepoint_android_vh_ufs_mcq_config' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_mcq_config' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='110' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_mcq_config'/>
+      <var-decl name='__tracepoint_android_vh_ufs_mcq_get_outstanding_reqs' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_mcq_get_outstanding_reqs' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='118' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_mcq_get_outstanding_reqs'/>
+      <var-decl name='__tracepoint_android_vh_ufs_mcq_handler' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_mcq_handler' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='90' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_mcq_handler'/>
+      <var-decl name='__tracepoint_android_vh_ufs_mcq_has_oustanding_reqs' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_mcq_has_oustanding_reqs' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='114' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_mcq_has_oustanding_reqs'/>
+      <var-decl name='__tracepoint_android_vh_ufs_mcq_hba_capabilities' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_mcq_hba_capabilities' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='98' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_mcq_hba_capabilities'/>
+      <var-decl name='__tracepoint_android_vh_ufs_mcq_make_hba_operational' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_mcq_make_hba_operational' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='94' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_mcq_make_hba_operational'/>
+      <var-decl name='__tracepoint_android_vh_ufs_mcq_map_tag' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_mcq_map_tag' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='82' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_mcq_map_tag'/>
+      <var-decl name='__tracepoint_android_vh_ufs_mcq_max_tag' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_mcq_max_tag' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='78' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_mcq_max_tag'/>
+      <var-decl name='__tracepoint_android_vh_ufs_mcq_print_trs' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_mcq_print_trs' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='102' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_mcq_print_trs'/>
+      <var-decl name='__tracepoint_android_vh_ufs_mcq_send_command' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_mcq_send_command' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='106' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_mcq_send_command'/>
+      <var-decl name='__tracepoint_android_vh_ufs_mcq_set_sqid' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_mcq_set_sqid' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='86' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_mcq_set_sqid'/>
+      <var-decl name='__tracepoint_android_vh_ufs_prepare_command' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_prepare_command' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='37' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_prepare_command'/>
+      <var-decl name='__tracepoint_android_vh_ufs_send_command' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_send_command' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='46' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_send_command'/>
+      <var-decl name='__tracepoint_android_vh_ufs_send_tm_command' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_send_tm_command' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='58' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_send_tm_command'/>
+      <var-decl name='__tracepoint_android_vh_ufs_send_uic_command' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_send_uic_command' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='54' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_send_uic_command'/>
+      <var-decl name='__tracepoint_android_vh_ufs_update_sdev' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_update_sdev' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='66' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_update_sdev'/>
+      <var-decl name='__tracepoint_android_vh_ufs_update_sysfs' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_update_sysfs' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='42' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_update_sysfs'/>
+      <var-decl name='__tracepoint_android_vh_ufs_use_mcq_hooks' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ufs_use_mcq_hooks' visibility='default' filepath='include/trace/hooks/ufshcd.h' line='74' column='1' elf-symbol-id='__tracepoint_android_vh_ufs_use_mcq_hooks'/>
+      <var-decl name='__tracepoint_android_vh_unreserve_highatomic_bypass' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_unreserve_highatomic_bypass' visibility='default' filepath='include/trace/hooks/mm.h' line='101' column='1' elf-symbol-id='__tracepoint_android_vh_unreserve_highatomic_bypass'/>
+      <var-decl name='__tracepoint_android_vh_update_page_mapcount' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_update_page_mapcount' visibility='default' filepath='include/trace/hooks/mm.h' line='148' column='1' elf-symbol-id='__tracepoint_android_vh_update_page_mapcount'/>
+      <var-decl name='__tracepoint_android_vh_update_topology_flags_workfn' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_update_topology_flags_workfn' visibility='default' filepath='include/trace/hooks/topology.h' line='23' column='1' elf-symbol-id='__tracepoint_android_vh_update_topology_flags_workfn'/>
+      <var-decl name='__tracepoint_android_vh_usb_new_device_added' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_usb_new_device_added' visibility='default' filepath='include/trace/hooks/usb.h' line='20' column='1' elf-symbol-id='__tracepoint_android_vh_usb_new_device_added'/>
+      <var-decl name='__tracepoint_android_vh_use_cma_first_check' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_use_cma_first_check' visibility='default' filepath='include/trace/hooks/mm.h' line='206' column='1' elf-symbol-id='__tracepoint_android_vh_use_cma_first_check'/>
+      <var-decl name='__tracepoint_android_vh_vmpressure' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_vmpressure' visibility='default' filepath='include/trace/hooks/mm.h' line='141' column='1' elf-symbol-id='__tracepoint_android_vh_vmpressure'/>
+      <var-decl name='__tracepoint_android_vh_watchdog_timer_softlockup' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_watchdog_timer_softlockup' visibility='default' filepath='include/trace/hooks/softlockup.h' line='16' column='1' elf-symbol-id='__tracepoint_android_vh_watchdog_timer_softlockup'/>
+      <var-decl name='__tracepoint_android_vh_wq_lockup_pool' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_wq_lockup_pool' visibility='default' filepath='include/trace/hooks/wqlockup.h' line='13' column='1' elf-symbol-id='__tracepoint_android_vh_wq_lockup_pool'/>
+      <var-decl name='__tracepoint_binder_transaction_received' type-id='4ca0c298' mangled-name='__tracepoint_binder_transaction_received' visibility='default' filepath='drivers/android/./binder_trace.h' line='179' column='1' elf-symbol-id='__tracepoint_binder_transaction_received'/>
+      <var-decl name='__tracepoint_binder_txn_latency_free' type-id='4ca0c298' mangled-name='__tracepoint_binder_txn_latency_free' visibility='default' filepath='drivers/android/./binder_trace.h' line='122' column='1' elf-symbol-id='__tracepoint_binder_txn_latency_free'/>
+      <var-decl name='__tracepoint_block_bio_complete' type-id='4ca0c298' mangled-name='__tracepoint_block_bio_complete' visibility='default' filepath='include/trace/events/block.h' line='233' column='1' elf-symbol-id='__tracepoint_block_bio_complete'/>
+      <var-decl name='__tracepoint_block_bio_queue' type-id='4ca0c298' mangled-name='__tracepoint_block_bio_queue' visibility='default' filepath='include/trace/events/block.h' line='332' column='1' elf-symbol-id='__tracepoint_block_bio_queue'/>
+      <var-decl name='__tracepoint_block_bio_remap' type-id='4ca0c298' mangled-name='__tracepoint_block_bio_remap' visibility='default' filepath='include/trace/events/block.h' line='456' column='1' elf-symbol-id='__tracepoint_block_bio_remap'/>
+      <var-decl name='__tracepoint_block_getrq' type-id='4ca0c298' mangled-name='__tracepoint_block_getrq' visibility='default' filepath='include/trace/events/block.h' line='343' column='1' elf-symbol-id='__tracepoint_block_getrq'/>
+      <var-decl name='__tracepoint_block_rq_complete' type-id='4ca0c298' mangled-name='__tracepoint_block_rq_complete' visibility='default' filepath='include/trace/events/block.h' line='115' column='1' elf-symbol-id='__tracepoint_block_rq_complete'/>
+      <var-decl name='__tracepoint_block_rq_insert' type-id='4ca0c298' mangled-name='__tracepoint_block_rq_insert' visibility='default' filepath='include/trace/events/block.h' line='190' column='1' elf-symbol-id='__tracepoint_block_rq_insert'/>
+      <var-decl name='__tracepoint_block_rq_issue' type-id='4ca0c298' mangled-name='__tracepoint_block_rq_issue' visibility='default' filepath='include/trace/events/block.h' line='204' column='1' elf-symbol-id='__tracepoint_block_rq_issue'/>
+      <var-decl name='__tracepoint_block_rq_merge' type-id='4ca0c298' mangled-name='__tracepoint_block_rq_merge' visibility='default' filepath='include/trace/events/block.h' line='218' column='1' elf-symbol-id='__tracepoint_block_rq_merge'/>
+      <var-decl name='__tracepoint_block_rq_requeue' type-id='4ca0c298' mangled-name='__tracepoint_block_rq_requeue' visibility='default' filepath='include/trace/events/block.h' line='73' column='1' elf-symbol-id='__tracepoint_block_rq_requeue'/>
+      <var-decl name='__tracepoint_block_split' type-id='4ca0c298' mangled-name='__tracepoint_block_split' visibility='default' filepath='include/trace/events/block.h' line='418' column='1' elf-symbol-id='__tracepoint_block_split'/>
+      <var-decl name='__tracepoint_clock_set_rate' type-id='4ca0c298' mangled-name='__tracepoint_clock_set_rate' visibility='default' filepath='include/trace/events/power.h' line='322' column='1' elf-symbol-id='__tracepoint_clock_set_rate'/>
+      <var-decl name='__tracepoint_cpu_frequency' type-id='4ca0c298' mangled-name='__tracepoint_cpu_frequency' visibility='default' filepath='include/trace/events/power.h' line='145' column='1' elf-symbol-id='__tracepoint_cpu_frequency'/>
+      <var-decl name='__tracepoint_cpu_frequency_limits' type-id='4ca0c298' mangled-name='__tracepoint_cpu_frequency_limits' visibility='default' filepath='include/trace/events/power.h' line='152' column='1' elf-symbol-id='__tracepoint_cpu_frequency_limits'/>
+      <var-decl name='__tracepoint_cpu_idle' type-id='4ca0c298' mangled-name='__tracepoint_cpu_idle' visibility='default' filepath='include/trace/events/power.h' line='36' column='1' elf-symbol-id='__tracepoint_cpu_idle'/>
+      <var-decl name='__tracepoint_device_pm_callback_end' type-id='4ca0c298' mangled-name='__tracepoint_device_pm_callback_end' visibility='default' filepath='include/trace/events/power.h' line='204' column='1' elf-symbol-id='__tracepoint_device_pm_callback_end'/>
+      <var-decl name='__tracepoint_device_pm_callback_start' type-id='4ca0c298' mangled-name='__tracepoint_device_pm_callback_start' visibility='default' filepath='include/trace/events/power.h' line='176' column='1' elf-symbol-id='__tracepoint_device_pm_callback_start'/>
+      <var-decl name='__tracepoint_dma_fence_emit' type-id='4ca0c298' mangled-name='__tracepoint_dma_fence_emit' visibility='default' filepath='include/trace/events/dma_fence.h' line='37' column='1' elf-symbol-id='__tracepoint_dma_fence_emit'/>
+      <var-decl name='__tracepoint_dwc3_complete_trb' type-id='4ca0c298' mangled-name='__tracepoint_dwc3_complete_trb' visibility='default' filepath='drivers/usb/dwc3/./trace.h' line='285' column='1' elf-symbol-id='__tracepoint_dwc3_complete_trb'/>
+      <var-decl name='__tracepoint_dwc3_ctrl_req' type-id='4ca0c298' mangled-name='__tracepoint_dwc3_ctrl_req' visibility='default' filepath='drivers/usb/dwc3/./trace.h' line='98' column='1' elf-symbol-id='__tracepoint_dwc3_ctrl_req'/>
+      <var-decl name='__tracepoint_dwc3_ep_queue' type-id='4ca0c298' mangled-name='__tracepoint_dwc3_ep_queue' visibility='default' filepath='drivers/usb/dwc3/./trace.h' line='145' column='1' elf-symbol-id='__tracepoint_dwc3_ep_queue'/>
+      <var-decl name='__tracepoint_dwc3_event' type-id='4ca0c298' mangled-name='__tracepoint_dwc3_event' visibility='default' filepath='drivers/usb/dwc3/./trace.h' line='68' column='1' elf-symbol-id='__tracepoint_dwc3_event'/>
+      <var-decl name='__tracepoint_dwc3_readl' type-id='4ca0c298' mangled-name='__tracepoint_dwc3_readl' visibility='default' filepath='drivers/usb/dwc3/./trace.h' line='41' column='1' elf-symbol-id='__tracepoint_dwc3_readl'/>
+      <var-decl name='__tracepoint_dwc3_writel' type-id='4ca0c298' mangled-name='__tracepoint_dwc3_writel' visibility='default' filepath='drivers/usb/dwc3/./trace.h' line='46' column='1' elf-symbol-id='__tracepoint_dwc3_writel'/>
+      <var-decl name='__tracepoint_gpu_mem_total' type-id='4ca0c298' mangled-name='__tracepoint_gpu_mem_total' visibility='default' filepath='include/trace/events/gpu_mem.h' line='30' column='1' elf-symbol-id='__tracepoint_gpu_mem_total'/>
+      <var-decl name='__tracepoint_hrtimer_expire_entry' type-id='4ca0c298' mangled-name='__tracepoint_hrtimer_expire_entry' visibility='default' filepath='include/trace/events/timer.h' line='232' column='1' elf-symbol-id='__tracepoint_hrtimer_expire_entry'/>
+      <var-decl name='__tracepoint_hrtimer_expire_exit' type-id='4ca0c298' mangled-name='__tracepoint_hrtimer_expire_exit' visibility='default' filepath='include/trace/events/timer.h' line='279' column='1' elf-symbol-id='__tracepoint_hrtimer_expire_exit'/>
+      <var-decl name='__tracepoint_ipi_entry' type-id='4ca0c298' mangled-name='__tracepoint_ipi_entry' visibility='default' filepath='include/trace/events/ipi.h' line='64' column='1' elf-symbol-id='__tracepoint_ipi_entry'/>
+      <var-decl name='__tracepoint_ipi_exit' type-id='4ca0c298' mangled-name='__tracepoint_ipi_exit' visibility='default' filepath='include/trace/events/ipi.h' line='80' column='1' elf-symbol-id='__tracepoint_ipi_exit'/>
+      <var-decl name='__tracepoint_ipi_raise' type-id='4ca0c298' mangled-name='__tracepoint_ipi_raise' visibility='default' filepath='include/trace/events/ipi.h' line='19' column='1' elf-symbol-id='__tracepoint_ipi_raise'/>
+      <var-decl name='__tracepoint_irq_handler_entry' type-id='4ca0c298' mangled-name='__tracepoint_irq_handler_entry' visibility='default' filepath='include/trace/events/irq.h' line='53' column='1' elf-symbol-id='__tracepoint_irq_handler_entry'/>
+      <var-decl name='__tracepoint_irq_handler_exit' type-id='4ca0c298' mangled-name='__tracepoint_irq_handler_exit' visibility='default' filepath='include/trace/events/irq.h' line='83' column='1' elf-symbol-id='__tracepoint_irq_handler_exit'/>
+      <var-decl name='__tracepoint_kfree_skb' type-id='4ca0c298' mangled-name='__tracepoint_kfree_skb' visibility='default' filepath='include/trace/events/skb.h' line='44' column='1' elf-symbol-id='__tracepoint_kfree_skb'/>
+      <var-decl name='__tracepoint_map' type-id='4ca0c298' mangled-name='__tracepoint_map' visibility='default' filepath='include/trace/events/iommu.h' line='86' column='1' elf-symbol-id='__tracepoint_map'/>
+      <var-decl name='__tracepoint_mm_vmscan_direct_reclaim_begin' type-id='4ca0c298' mangled-name='__tracepoint_mm_vmscan_direct_reclaim_begin' visibility='default' filepath='include/trace/events/vmscan.h' line='122' column='1' elf-symbol-id='__tracepoint_mm_vmscan_direct_reclaim_begin'/>
+      <var-decl name='__tracepoint_mmap_lock_acquire_returned' type-id='4ca0c298' mangled-name='__tracepoint_mmap_lock_acquire_returned' visibility='default' filepath='include/trace/events/mmap_lock.h' line='44' column='1' elf-symbol-id='__tracepoint_mmap_lock_acquire_returned'/>
+      <var-decl name='__tracepoint_mmap_lock_released' type-id='4ca0c298' mangled-name='__tracepoint_mmap_lock_released' visibility='default' filepath='include/trace/events/mmap_lock.h' line='76' column='1' elf-symbol-id='__tracepoint_mmap_lock_released'/>
+      <var-decl name='__tracepoint_mmap_lock_start_locking' type-id='4ca0c298' mangled-name='__tracepoint_mmap_lock_start_locking' visibility='default' filepath='include/trace/events/mmap_lock.h' line='16' column='1' elf-symbol-id='__tracepoint_mmap_lock_start_locking'/>
+      <var-decl name='__tracepoint_net_dev_queue' type-id='4ca0c298' mangled-name='__tracepoint_net_dev_queue' visibility='default' filepath='include/trace/events/net.h' line='143' column='1' elf-symbol-id='__tracepoint_net_dev_queue'/>
+      <var-decl name='__tracepoint_net_dev_xmit' type-id='4ca0c298' mangled-name='__tracepoint_net_dev_xmit' visibility='default' filepath='include/trace/events/net.h' line='71' column='1' elf-symbol-id='__tracepoint_net_dev_xmit'/>
+      <var-decl name='__tracepoint_netif_receive_skb' type-id='4ca0c298' mangled-name='__tracepoint_netif_receive_skb' visibility='default' filepath='include/trace/events/net.h' line='150' column='1' elf-symbol-id='__tracepoint_netif_receive_skb'/>
+      <var-decl name='__tracepoint_netif_rx' type-id='4ca0c298' mangled-name='__tracepoint_netif_rx' visibility='default' filepath='include/trace/events/net.h' line='157' column='1' elf-symbol-id='__tracepoint_netif_rx'/>
+      <var-decl name='__tracepoint_pelt_cfs_tp' type-id='4ca0c298' mangled-name='__tracepoint_pelt_cfs_tp' visibility='default' filepath='include/trace/events/sched.h' line='715' column='1' elf-symbol-id='__tracepoint_pelt_cfs_tp'/>
+      <var-decl name='__tracepoint_pelt_dl_tp' type-id='4ca0c298' mangled-name='__tracepoint_pelt_dl_tp' visibility='default' filepath='include/trace/events/sched.h' line='723' column='1' elf-symbol-id='__tracepoint_pelt_dl_tp'/>
+      <var-decl name='__tracepoint_pelt_irq_tp' type-id='4ca0c298' mangled-name='__tracepoint_pelt_irq_tp' visibility='default' filepath='include/trace/events/sched.h' line='731' column='1' elf-symbol-id='__tracepoint_pelt_irq_tp'/>
+      <var-decl name='__tracepoint_pelt_rt_tp' type-id='4ca0c298' mangled-name='__tracepoint_pelt_rt_tp' visibility='default' filepath='include/trace/events/sched.h' line='719' column='1' elf-symbol-id='__tracepoint_pelt_rt_tp'/>
+      <var-decl name='__tracepoint_pelt_se_tp' type-id='4ca0c298' mangled-name='__tracepoint_pelt_se_tp' visibility='default' filepath='include/trace/events/sched.h' line='735' column='1' elf-symbol-id='__tracepoint_pelt_se_tp'/>
+      <var-decl name='__tracepoint_rwmmio_post_read' type-id='4ca0c298' mangled-name='__tracepoint_rwmmio_post_read' visibility='default' filepath='include/trace/events/rwmmio.h' line='85' column='1' elf-symbol-id='__tracepoint_rwmmio_post_read'/>
+      <var-decl name='__tracepoint_rwmmio_read' type-id='4ca0c298' mangled-name='__tracepoint_rwmmio_read' visibility='default' filepath='include/trace/events/rwmmio.h' line='63' column='1' elf-symbol-id='__tracepoint_rwmmio_read'/>
+      <var-decl name='__tracepoint_rwmmio_write' type-id='4ca0c298' mangled-name='__tracepoint_rwmmio_write' visibility='default' filepath='include/trace/events/rwmmio.h' line='13' column='1' elf-symbol-id='__tracepoint_rwmmio_write'/>
+      <var-decl name='__tracepoint_sched_cpu_capacity_tp' type-id='4ca0c298' mangled-name='__tracepoint_sched_cpu_capacity_tp' visibility='default' filepath='include/trace/events/sched.h' line='739' column='1' elf-symbol-id='__tracepoint_sched_cpu_capacity_tp'/>
+      <var-decl name='__tracepoint_sched_overutilized_tp' type-id='4ca0c298' mangled-name='__tracepoint_sched_overutilized_tp' visibility='default' filepath='include/trace/events/sched.h' line='743' column='1' elf-symbol-id='__tracepoint_sched_overutilized_tp'/>
+      <var-decl name='__tracepoint_sched_stat_blocked' type-id='4ca0c298' mangled-name='__tracepoint_sched_stat_blocked' visibility='default' filepath='include/trace/events/sched.h' line='483' column='1' elf-symbol-id='__tracepoint_sched_stat_blocked'/>
+      <var-decl name='__tracepoint_sched_stat_iowait' type-id='4ca0c298' mangled-name='__tracepoint_sched_stat_iowait' visibility='default' filepath='include/trace/events/sched.h' line='476' column='1' elf-symbol-id='__tracepoint_sched_stat_iowait'/>
+      <var-decl name='__tracepoint_sched_stat_runtime' type-id='4ca0c298' mangled-name='__tracepoint_sched_stat_runtime' visibility='default' filepath='include/trace/events/sched.h' line='541' column='1' elf-symbol-id='__tracepoint_sched_stat_runtime'/>
+      <var-decl name='__tracepoint_sched_stat_sleep' type-id='4ca0c298' mangled-name='__tracepoint_sched_stat_sleep' visibility='default' filepath='include/trace/events/sched.h' line='468' column='1' elf-symbol-id='__tracepoint_sched_stat_sleep'/>
+      <var-decl name='__tracepoint_sched_stat_wait' type-id='4ca0c298' mangled-name='__tracepoint_sched_stat_wait' visibility='default' filepath='include/trace/events/sched.h' line='460' column='1' elf-symbol-id='__tracepoint_sched_stat_wait'/>
+      <var-decl name='__tracepoint_sched_switch' type-id='4ca0c298' mangled-name='__tracepoint_sched_switch' visibility='default' filepath='include/trace/events/sched.h' line='220' column='1' elf-symbol-id='__tracepoint_sched_switch'/>
+      <var-decl name='__tracepoint_sched_update_nr_running_tp' type-id='4ca0c298' mangled-name='__tracepoint_sched_update_nr_running_tp' visibility='default' filepath='include/trace/events/sched.h' line='755' column='1' elf-symbol-id='__tracepoint_sched_update_nr_running_tp'/>
+      <var-decl name='__tracepoint_sched_util_est_cfs_tp' type-id='4ca0c298' mangled-name='__tracepoint_sched_util_est_cfs_tp' visibility='default' filepath='include/trace/events/sched.h' line='747' column='1' elf-symbol-id='__tracepoint_sched_util_est_cfs_tp'/>
+      <var-decl name='__tracepoint_sched_util_est_se_tp' type-id='4ca0c298' mangled-name='__tracepoint_sched_util_est_se_tp' visibility='default' filepath='include/trace/events/sched.h' line='751' column='1' elf-symbol-id='__tracepoint_sched_util_est_se_tp'/>
+      <var-decl name='__tracepoint_sched_waking' type-id='4ca0c298' mangled-name='__tracepoint_sched_waking' visibility='default' filepath='include/trace/events/sched.h' line='170' column='1' elf-symbol-id='__tracepoint_sched_waking'/>
+      <var-decl name='__tracepoint_suspend_resume' type-id='4ca0c298' mangled-name='__tracepoint_suspend_resume' visibility='default' filepath='include/trace/events/power.h' line='226' column='1' elf-symbol-id='__tracepoint_suspend_resume'/>
+      <var-decl name='__tracepoint_task_newtask' type-id='4ca0c298' mangled-name='__tracepoint_task_newtask' visibility='default' filepath='include/trace/events/task.h' line='9' column='1' elf-symbol-id='__tracepoint_task_newtask'/>
+      <var-decl name='__tracepoint_task_rename' type-id='4ca0c298' mangled-name='__tracepoint_task_rename' visibility='default' filepath='include/trace/events/task.h' line='34' column='1' elf-symbol-id='__tracepoint_task_rename'/>
+      <var-decl name='__tracepoint_unmap' type-id='4ca0c298' mangled-name='__tracepoint_unmap' visibility='default' filepath='include/trace/events/iommu.h' line='109' column='1' elf-symbol-id='__tracepoint_unmap'/>
+      <var-decl name='__tracepoint_usb_gadget_connect' type-id='4ca0c298' mangled-name='__tracepoint_usb_gadget_connect' visibility='default' filepath='drivers/usb/gadget/udc/./trace.h' line='119' column='1' elf-symbol-id='__tracepoint_usb_gadget_connect'/>
+      <var-decl name='__tracepoint_usb_gadget_disconnect' type-id='4ca0c298' mangled-name='__tracepoint_usb_gadget_disconnect' visibility='default' filepath='drivers/usb/gadget/udc/./trace.h' line='124' column='1' elf-symbol-id='__tracepoint_usb_gadget_disconnect'/>
+      <var-decl name='__tracepoint_wbc_writepage' type-id='4ca0c298' mangled-name='__tracepoint_wbc_writepage' visibility='default' filepath='include/trace/events/writeback.h' line='496' column='1' elf-symbol-id='__tracepoint_wbc_writepage'/>
+      <var-decl name='__tracepoint_workqueue_execute_end' type-id='4ca0c298' mangled-name='__tracepoint_workqueue_execute_end' visibility='default' filepath='include/trace/events/workqueue.h' line='108' column='1' elf-symbol-id='__tracepoint_workqueue_execute_end'/>
+      <var-decl name='__tracepoint_workqueue_execute_start' type-id='4ca0c298' mangled-name='__tracepoint_workqueue_execute_start' visibility='default' filepath='include/trace/events/workqueue.h' line='82' column='1' elf-symbol-id='__tracepoint_workqueue_execute_start'/>
+      <var-decl name='__tracepoint_xdp_exception' type-id='4ca0c298' mangled-name='__tracepoint_xdp_exception' visibility='default' filepath='include/trace/events/xdp.h' line='28' column='1' elf-symbol-id='__tracepoint_xdp_exception'/>
+      <var-decl name='__tracepoint_xhci_urb_giveback' type-id='4ca0c298' mangled-name='__tracepoint_xhci_urb_giveback' visibility='default' filepath='drivers/usb/host/./xhci-trace.h' line='303' column='1' elf-symbol-id='__tracepoint_xhci_urb_giveback'/>
+      <function-decl name='__tty_alloc_driver' mangled-name='__tty_alloc_driver' filepath='drivers/tty/tty_io.c' line='3352' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__tty_alloc_driver'>
+        <parameter type-id='f0981eeb' name='lines' filepath='drivers/tty/tty_io.c' line='3352' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/tty/tty_io.c' line='3352' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/tty/tty_io.c' line='3353' column='1'/>
+        <return type-id='c2b4b27b'/>
+      </function-decl>
+      <function-decl name='__tty_insert_flip_char' mangled-name='__tty_insert_flip_char' filepath='drivers/tty/tty_buffer.c' line='388' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__tty_insert_flip_char'>
+        <parameter type-id='ec77b5b8' name='port' filepath='drivers/tty/tty_buffer.c' line='388' column='1'/>
+        <parameter type-id='002ac4a6' name='ch' filepath='drivers/tty/tty_buffer.c' line='388' column='1'/>
+        <parameter type-id='a84c031d' name='flag' filepath='drivers/tty/tty_buffer.c' line='388' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__typec_altmode_register_driver' mangled-name='__typec_altmode_register_driver' filepath='drivers/usb/typec/bus.c' line='246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__typec_altmode_register_driver'>
+        <parameter type-id='e1932af2' name='drv' filepath='drivers/usb/typec/bus.c' line='246' column='1'/>
+        <parameter type-id='2730d015' name='module' filepath='drivers/usb/typec/bus.c' line='247' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__ubsan_handle_cfi_check_fail_abort' mangled-name='__ubsan_handle_cfi_check_fail_abort' filepath='kernel/cfi.c' line='348' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__ubsan_handle_cfi_check_fail_abort'>
+        <parameter type-id='eaa32e2f' name='data' filepath='kernel/cfi.c' line='348' column='1'/>
+        <parameter type-id='eaa32e2f' name='ptr' filepath='kernel/cfi.c' line='348' column='1'/>
+        <parameter type-id='eaa32e2f' name='vtable' filepath='kernel/cfi.c' line='348' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__udelay' mangled-name='__udelay' filepath='arch/arm64/lib/delay.c' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__udelay'>
+        <parameter type-id='7359adad' name='usecs' filepath='arch/arm64/lib/delay.c' line='49' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__udp4_lib_lookup' mangled-name='__udp4_lib_lookup' filepath='net/ipv4/udp.c' line='485' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__udp4_lib_lookup'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv4/udp.c' line='485' column='1'/>
+        <parameter type-id='78a133c2' name='saddr' filepath='net/ipv4/udp.c' line='485' column='1'/>
+        <parameter type-id='84a5c3d4' name='sport' filepath='net/ipv4/udp.c' line='486' column='1'/>
+        <parameter type-id='78a133c2' name='daddr' filepath='net/ipv4/udp.c' line='486' column='1'/>
+        <parameter type-id='84a5c3d4' name='dport' filepath='net/ipv4/udp.c' line='486' column='1'/>
+        <parameter type-id='95e97e5e' name='dif' filepath='net/ipv4/udp.c' line='486' column='1'/>
+        <parameter type-id='95e97e5e' name='sdif' filepath='net/ipv4/udp.c' line='487' column='1'/>
+        <parameter type-id='115daa23' name='udptable' filepath='net/ipv4/udp.c' line='487' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv4/udp.c' line='487' column='1'/>
+        <return type-id='f772df6d'/>
+      </function-decl>
+      <function-decl name='__udp6_lib_lookup' mangled-name='__udp6_lib_lookup' filepath='net/ipv6/udp.c' line='232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__udp6_lib_lookup'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv6/udp.c' line='232' column='1'/>
+        <parameter type-id='fea9c20b' name='saddr' filepath='net/ipv6/udp.c' line='233' column='1'/>
+        <parameter type-id='84a5c3d4' name='sport' filepath='net/ipv6/udp.c' line='233' column='1'/>
+        <parameter type-id='fea9c20b' name='daddr' filepath='net/ipv6/udp.c' line='234' column='1'/>
+        <parameter type-id='84a5c3d4' name='dport' filepath='net/ipv6/udp.c' line='234' column='1'/>
+        <parameter type-id='95e97e5e' name='dif' filepath='net/ipv6/udp.c' line='235' column='1'/>
+        <parameter type-id='95e97e5e' name='sdif' filepath='net/ipv6/udp.c' line='235' column='1'/>
+        <parameter type-id='115daa23' name='udptable' filepath='net/ipv6/udp.c' line='235' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv6/udp.c' line='236' column='1'/>
+        <return type-id='f772df6d'/>
+      </function-decl>
+      <function-decl name='__uio_register_device' mangled-name='__uio_register_device' filepath='drivers/uio/uio.c' line='916' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__uio_register_device'>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/uio/uio.c' line='916' column='1'/>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/uio/uio.c' line='917' column='1'/>
+        <parameter type-id='fb1092f1' name='info' filepath='drivers/uio/uio.c' line='918' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__unregister_chrdev' mangled-name='__unregister_chrdev' filepath='fs/char_dev.c' line='335' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__unregister_chrdev'>
+        <parameter type-id='f0981eeb' name='major' filepath='fs/char_dev.c' line='335' column='1'/>
+        <parameter type-id='f0981eeb' name='baseminor' filepath='fs/char_dev.c' line='335' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='fs/char_dev.c' line='336' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='fs/char_dev.c' line='336' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__update_load_avg_blocked_se' mangled-name='__update_load_avg_blocked_se' filepath='kernel/sched/pelt.c' line='299' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__update_load_avg_blocked_se'>
+        <parameter type-id='91ce1af9' name='now' filepath='kernel/sched/pelt.c' line='299' column='1'/>
+        <parameter type-id='ff2b3d10' name='se' filepath='kernel/sched/pelt.c' line='299' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__usb_create_hcd' mangled-name='__usb_create_hcd' filepath='drivers/usb/core/hcd.c' line='2570' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__usb_create_hcd'>
+        <parameter type-id='5aa12c86' name='driver' filepath='drivers/usb/core/hcd.c' line='2570' column='1'/>
+        <parameter type-id='fa0b179b' name='sysdev' filepath='drivers/usb/core/hcd.c' line='2571' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/core/hcd.c' line='2571' column='1'/>
+        <parameter type-id='80f4b756' name='bus_name' filepath='drivers/usb/core/hcd.c' line='2571' column='1'/>
+        <parameter type-id='fc4f83c1' name='primary_hcd' filepath='drivers/usb/core/hcd.c' line='2572' column='1'/>
+        <return type-id='fc4f83c1'/>
+      </function-decl>
+      <function-decl name='__usb_get_extra_descriptor' mangled-name='__usb_get_extra_descriptor' filepath='drivers/usb/core/usb.c' line='994' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__usb_get_extra_descriptor'>
+        <parameter type-id='26a90f95' name='buffer' filepath='drivers/usb/core/usb.c' line='994' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='drivers/usb/core/usb.c' line='994' column='1'/>
+        <parameter type-id='002ac4a6' name='type' filepath='drivers/usb/core/usb.c' line='995' column='1'/>
+        <parameter type-id='63e171df' name='ptr' filepath='drivers/usb/core/usb.c' line='995' column='1'/>
+        <parameter type-id='b59d7dce' name='minsize' filepath='drivers/usb/core/usb.c' line='995' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__usecs_to_jiffies' mangled-name='__usecs_to_jiffies' filepath='kernel/time/time.c' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__usecs_to_jiffies'>
+        <parameter type-id='20f5f452' name='u' filepath='kernel/time/time.c' line='563' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='__v4l2_ctrl_modify_range' mangled-name='__v4l2_ctrl_modify_range' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='883' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__v4l2_ctrl_modify_range'>
+        <parameter type-id='4b8b2cf3' name='ctrl' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='883' column='1'/>
+        <parameter type-id='9b7c55ef' name='min' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='884' column='1'/>
+        <parameter type-id='9b7c55ef' name='max' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='884' column='1'/>
+        <parameter type-id='91ce1af9' name='step' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='884' column='1'/>
+        <parameter type-id='9b7c55ef' name='def' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='884' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__v4l2_ctrl_s_ctrl' mangled-name='__v4l2_ctrl_s_ctrl' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='831' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__v4l2_ctrl_s_ctrl'>
+        <parameter type-id='4b8b2cf3' name='ctrl' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='831' column='1'/>
+        <parameter type-id='a7832498' name='val' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='831' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__v4l2_ctrl_s_ctrl_compound' mangled-name='__v4l2_ctrl_s_ctrl_compound' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='867' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__v4l2_ctrl_s_ctrl_compound'>
+        <parameter type-id='4b8b2cf3' name='ctrl' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='867' column='1'/>
+        <parameter type-id='cf13dc99' name='type' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='868' column='1'/>
+        <parameter type-id='eaa32e2f' name='p' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='868' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__v4l2_ctrl_s_ctrl_int64' mangled-name='__v4l2_ctrl_s_ctrl_int64' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='843' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__v4l2_ctrl_s_ctrl_int64'>
+        <parameter type-id='4b8b2cf3' name='ctrl' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='843' column='1'/>
+        <parameter type-id='9b7c55ef' name='val' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='843' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__v4l2_device_register_subdev_nodes' mangled-name='__v4l2_device_register_subdev_nodes' filepath='drivers/media/v4l2-core/v4l2-device.c' line='189' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__v4l2_device_register_subdev_nodes'>
+        <parameter type-id='ddfb71fa' name='v4l2_dev' filepath='drivers/media/v4l2-core/v4l2-device.c' line='189' column='1'/>
+        <parameter type-id='b50a4934' name='read_only' filepath='drivers/media/v4l2-core/v4l2-device.c' line='190' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__v4l2_find_nearest_size' mangled-name='__v4l2_find_nearest_size' filepath='drivers/media/v4l2-core/v4l2-common.c' line='157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__v4l2_find_nearest_size'>
+        <parameter type-id='eaa32e2f' name='array' filepath='drivers/media/v4l2-core/v4l2-common.c' line='157' column='1'/>
+        <parameter type-id='b59d7dce' name='array_size' filepath='drivers/media/v4l2-core/v4l2-common.c' line='157' column='1'/>
+        <parameter type-id='b59d7dce' name='entry_size' filepath='drivers/media/v4l2-core/v4l2-common.c' line='158' column='1'/>
+        <parameter type-id='b59d7dce' name='width_offset' filepath='drivers/media/v4l2-core/v4l2-common.c' line='158' column='1'/>
+        <parameter type-id='b59d7dce' name='height_offset' filepath='drivers/media/v4l2-core/v4l2-common.c' line='159' column='1'/>
+        <parameter type-id='a7832498' name='width' filepath='drivers/media/v4l2-core/v4l2-common.c' line='159' column='1'/>
+        <parameter type-id='a7832498' name='height' filepath='drivers/media/v4l2-core/v4l2-common.c' line='159' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='__video_register_device' mangled-name='__video_register_device' filepath='drivers/media/v4l2-core/v4l2-dev.c' line='879' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__video_register_device'>
+        <parameter type-id='798c29b7' name='vdev' filepath='drivers/media/v4l2-core/v4l2-dev.c' line='879' column='1'/>
+        <parameter type-id='24df61b5' name='type' filepath='drivers/media/v4l2-core/v4l2-dev.c' line='880' column='1'/>
+        <parameter type-id='95e97e5e' name='nr' filepath='drivers/media/v4l2-core/v4l2-dev.c' line='881' column='1'/>
+        <parameter type-id='95e97e5e' name='warn_if_nr_in_use' filepath='drivers/media/v4l2-core/v4l2-dev.c' line='881' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/media/v4l2-core/v4l2-dev.c' line='882' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__vlan_find_dev_deep_rcu' mangled-name='__vlan_find_dev_deep_rcu' filepath='net/8021q/vlan_core.c' line='76' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__vlan_find_dev_deep_rcu'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/8021q/vlan_core.c' line='76' column='1'/>
+        <parameter type-id='84a5c3d4' name='vlan_proto' filepath='net/8021q/vlan_core.c' line='77' column='1'/>
+        <parameter type-id='1dc6a898' name='vlan_id' filepath='net/8021q/vlan_core.c' line='77' column='1'/>
+        <return type-id='68a2d05b'/>
+      </function-decl>
+      <function-decl name='__vmalloc' mangled-name='__vmalloc' filepath='mm/vmalloc.c' line='3159' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__vmalloc'>
+        <parameter type-id='7359adad' name='size' filepath='mm/vmalloc.c' line='3159' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/vmalloc.c' line='3159' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='__wait_on_buffer' mangled-name='__wait_on_buffer' filepath='fs/buffer.c' line='120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__wait_on_buffer'>
+        <parameter type-id='c485c22c' name='bh' filepath='fs/buffer.c' line='120' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__wait_rcu_gp' mangled-name='__wait_rcu_gp' filepath='kernel/rcu/update.c' line='371' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__wait_rcu_gp'>
+        <parameter type-id='b50a4934' name='checktiny' filepath='kernel/rcu/update.c' line='371' column='1'/>
+        <parameter type-id='95e97e5e' name='n' filepath='kernel/rcu/update.c' line='371' column='1'/>
+        <parameter type-id='c7432356' name='crcu_array' filepath='kernel/rcu/update.c' line='371' column='1'/>
+        <parameter type-id='cbba2082' name='rs_array' filepath='kernel/rcu/update.c' line='372' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__wake_up' mangled-name='__wake_up' filepath='kernel/sched/wait.c' line='155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__wake_up'>
+        <parameter type-id='3f8b2ed3' name='wq_head' filepath='kernel/sched/wait.c' line='155' column='1'/>
+        <parameter type-id='f0981eeb' name='mode' filepath='kernel/sched/wait.c' line='155' column='1'/>
+        <parameter type-id='95e97e5e' name='nr_exclusive' filepath='kernel/sched/wait.c' line='156' column='1'/>
+        <parameter type-id='eaa32e2f' name='key' filepath='kernel/sched/wait.c' line='156' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__wake_up_locked' mangled-name='__wake_up_locked' filepath='kernel/sched/wait.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__wake_up_locked'>
+        <parameter type-id='3f8b2ed3' name='wq_head' filepath='kernel/sched/wait.c' line='165' column='1'/>
+        <parameter type-id='f0981eeb' name='mode' filepath='kernel/sched/wait.c' line='165' column='1'/>
+        <parameter type-id='95e97e5e' name='nr' filepath='kernel/sched/wait.c' line='165' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__wake_up_locked_key' mangled-name='__wake_up_locked_key' filepath='kernel/sched/wait.c' line='171' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__wake_up_locked_key'>
+        <parameter type-id='3f8b2ed3' name='wq_head' filepath='kernel/sched/wait.c' line='171' column='1'/>
+        <parameter type-id='f0981eeb' name='mode' filepath='kernel/sched/wait.c' line='171' column='1'/>
+        <parameter type-id='eaa32e2f' name='key' filepath='kernel/sched/wait.c' line='171' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__wake_up_sync' mangled-name='__wake_up_sync' filepath='kernel/sched/wait.c' line='239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__wake_up_sync'>
+        <parameter type-id='3f8b2ed3' name='wq_head' filepath='kernel/sched/wait.c' line='239' column='1'/>
+        <parameter type-id='f0981eeb' name='mode' filepath='kernel/sched/wait.c' line='239' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__wake_up_sync_key' mangled-name='__wake_up_sync_key' filepath='kernel/sched/wait.c' line='200' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__wake_up_sync_key'>
+        <parameter type-id='3f8b2ed3' name='wq_head' filepath='kernel/sched/wait.c' line='200' column='1'/>
+        <parameter type-id='f0981eeb' name='mode' filepath='kernel/sched/wait.c' line='200' column='1'/>
+        <parameter type-id='eaa32e2f' name='key' filepath='kernel/sched/wait.c' line='201' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__warn_printk' mangled-name='__warn_printk' filepath='kernel/panic.c' line='706' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__warn_printk'>
+        <parameter type-id='80f4b756' name='fmt' filepath='kernel/panic.c' line='706' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__xa_alloc' mangled-name='__xa_alloc' filepath='lib/xarray.c' line='1809' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__xa_alloc'>
+        <parameter type-id='60075f2a' name='xa' filepath='lib/xarray.c' line='1809' column='1'/>
+        <parameter type-id='f9409001' name='id' filepath='lib/xarray.c' line='1809' column='1'/>
+        <parameter type-id='eaa32e2f' name='entry' filepath='lib/xarray.c' line='1809' column='1'/>
+        <parameter type-id='5066733a' name='limit' filepath='lib/xarray.c' line='1810' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='lib/xarray.c' line='1810' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__xa_alloc_cyclic' mangled-name='__xa_alloc_cyclic' filepath='lib/xarray.c' line='1858' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__xa_alloc_cyclic'>
+        <parameter type-id='60075f2a' name='xa' filepath='lib/xarray.c' line='1858' column='1'/>
+        <parameter type-id='f9409001' name='id' filepath='lib/xarray.c' line='1858' column='1'/>
+        <parameter type-id='eaa32e2f' name='entry' filepath='lib/xarray.c' line='1858' column='1'/>
+        <parameter type-id='5066733a' name='limit' filepath='lib/xarray.c' line='1859' column='1'/>
+        <parameter type-id='f9409001' name='next' filepath='lib/xarray.c' line='1859' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='lib/xarray.c' line='1859' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__xa_clear_mark' mangled-name='__xa_clear_mark' filepath='lib/xarray.c' line='1915' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__xa_clear_mark'>
+        <parameter type-id='60075f2a' name='xa' filepath='lib/xarray.c' line='1915' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='lib/xarray.c' line='1915' column='1'/>
+        <parameter type-id='933bf462' name='mark' filepath='lib/xarray.c' line='1915' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='__xa_erase' mangled-name='__xa_erase' filepath='lib/xarray.c' line='1491' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__xa_erase'>
+        <parameter type-id='60075f2a' name='xa' filepath='lib/xarray.c' line='1491' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='lib/xarray.c' line='1491' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='__xa_insert' mangled-name='__xa_insert' filepath='lib/xarray.c' line='1640' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__xa_insert'>
+        <parameter type-id='60075f2a' name='xa' filepath='lib/xarray.c' line='1640' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='lib/xarray.c' line='1640' column='1'/>
+        <parameter type-id='eaa32e2f' name='entry' filepath='lib/xarray.c' line='1640' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='lib/xarray.c' line='1640' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='__xa_store' mangled-name='__xa_store' filepath='lib/xarray.c' line='1537' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__xa_store'>
+        <parameter type-id='60075f2a' name='xa' filepath='lib/xarray.c' line='1537' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='lib/xarray.c' line='1537' column='1'/>
+        <parameter type-id='eaa32e2f' name='entry' filepath='lib/xarray.c' line='1537' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='lib/xarray.c' line='1537' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='__xfrm_state_destroy' mangled-name='__xfrm_state_destroy' filepath='net/xfrm/xfrm_state.c' line='662' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__xfrm_state_destroy'>
+        <parameter type-id='328dda6e' name='x' filepath='net/xfrm/xfrm_state.c' line='662' column='1'/>
+        <parameter type-id='b50a4934' name='sync' filepath='net/xfrm/xfrm_state.c' line='662' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_atomic_dec_and_lock' mangled-name='_atomic_dec_and_lock' filepath='lib/dec_and_lock.c' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_atomic_dec_and_lock'>
+        <parameter type-id='8a47abc3' name='atomic' filepath='lib/dec_and_lock.c' line='21' column='1'/>
+        <parameter type-id='cff2d845' name='lock' filepath='lib/dec_and_lock.c' line='21' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='_bcd2bin' mangled-name='_bcd2bin' filepath='lib/bcd.c' line='5' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_bcd2bin'>
+        <parameter type-id='002ac4a6' name='val' filepath='lib/bcd.c' line='5' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='_bin2bcd' mangled-name='_bin2bcd' filepath='lib/bcd.c' line='11' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_bin2bcd'>
+        <parameter type-id='f0981eeb' name='val' filepath='lib/bcd.c' line='11' column='1'/>
+        <return type-id='002ac4a6'/>
+      </function-decl>
+      <function-decl name='_copy_from_iter' mangled-name='_copy_from_iter' filepath='lib/iov_iter.c' line='768' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_copy_from_iter'>
+        <parameter type-id='eaa32e2f' name='addr' filepath='lib/iov_iter.c' line='768' column='1'/>
+        <parameter type-id='b59d7dce' name='bytes' filepath='lib/iov_iter.c' line='768' column='1'/>
+        <parameter type-id='4fa10f9e' name='i' filepath='lib/iov_iter.c' line='768' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='_copy_to_iter' mangled-name='_copy_to_iter' filepath='lib/iov_iter.c' line='663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_copy_to_iter'>
+        <parameter type-id='eaa32e2f' name='addr' filepath='lib/iov_iter.c' line='663' column='1'/>
+        <parameter type-id='b59d7dce' name='bytes' filepath='lib/iov_iter.c' line='663' column='1'/>
+        <parameter type-id='4fa10f9e' name='i' filepath='lib/iov_iter.c' line='663' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='_dev_alert' mangled-name='_dev_alert' filepath='drivers/base/core.c' line='4669' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_dev_alert'>
+        <parameter type-id='8df61054' name='dev' filepath='drivers/base/core.c' line='4669' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/base/core.c' line='4669' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_dev_crit' mangled-name='_dev_crit' filepath='drivers/base/core.c' line='4670' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_dev_crit'>
+        <parameter type-id='8df61054' name='dev' filepath='drivers/base/core.c' line='4670' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/base/core.c' line='4670' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_dev_emerg' mangled-name='_dev_emerg' filepath='drivers/base/core.c' line='4668' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_dev_emerg'>
+        <parameter type-id='8df61054' name='dev' filepath='drivers/base/core.c' line='4668' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/base/core.c' line='4668' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_dev_err' mangled-name='_dev_err' filepath='drivers/base/core.c' line='4671' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_dev_err'>
+        <parameter type-id='8df61054' name='dev' filepath='drivers/base/core.c' line='4671' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/base/core.c' line='4671' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_dev_info' mangled-name='_dev_info' filepath='drivers/base/core.c' line='4674' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_dev_info'>
+        <parameter type-id='8df61054' name='dev' filepath='drivers/base/core.c' line='4674' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/base/core.c' line='4674' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_dev_notice' mangled-name='_dev_notice' filepath='drivers/base/core.c' line='4673' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_dev_notice'>
+        <parameter type-id='8df61054' name='dev' filepath='drivers/base/core.c' line='4673' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/base/core.c' line='4673' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_dev_printk' mangled-name='_dev_printk' filepath='drivers/base/core.c' line='4634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_dev_printk'>
+        <parameter type-id='80f4b756' name='level' filepath='drivers/base/core.c' line='4634' column='1'/>
+        <parameter type-id='8df61054' name='dev' filepath='drivers/base/core.c' line='4634' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/base/core.c' line='4635' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_dev_warn' mangled-name='_dev_warn' filepath='drivers/base/core.c' line='4672' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_dev_warn'>
+        <parameter type-id='8df61054' name='dev' filepath='drivers/base/core.c' line='4672' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/base/core.c' line='4672' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_find_first_bit' mangled-name='_find_first_bit' filepath='lib/find_bit.c' line='78' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_find_first_bit'>
+        <parameter type-id='f9b37274' name='addr' filepath='lib/find_bit.c' line='78' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='lib/find_bit.c' line='78' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='_find_first_zero_bit' mangled-name='_find_first_zero_bit' filepath='lib/find_bit.c' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_find_first_zero_bit'>
+        <parameter type-id='f9b37274' name='addr' filepath='lib/find_bit.c' line='96' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='lib/find_bit.c' line='96' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='_find_last_bit' mangled-name='_find_last_bit' filepath='lib/find_bit.c' line='111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_find_last_bit'>
+        <parameter type-id='f9b37274' name='addr' filepath='lib/find_bit.c' line='111' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='lib/find_bit.c' line='111' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='_find_next_bit' mangled-name='_find_next_bit' filepath='lib/find_bit.c' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_find_next_bit'>
+        <parameter type-id='f9b37274' name='addr1' filepath='lib/find_bit.c' line='32' column='1'/>
+        <parameter type-id='f9b37274' name='addr2' filepath='lib/find_bit.c' line='33' column='1'/>
+        <parameter type-id='7359adad' name='nbits' filepath='lib/find_bit.c' line='33' column='1'/>
+        <parameter type-id='7359adad' name='start' filepath='lib/find_bit.c' line='34' column='1'/>
+        <parameter type-id='7359adad' name='invert' filepath='lib/find_bit.c' line='34' column='1'/>
+        <parameter type-id='7359adad' name='le' filepath='lib/find_bit.c' line='34' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='_printk' mangled-name='_printk' filepath='kernel/printk/printk.c' line='2303' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_printk'>
+        <parameter type-id='80f4b756' name='fmt' filepath='kernel/printk/printk.c' line='2303' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='_printk_deferred' mangled-name='_printk_deferred' filepath='kernel/printk/printk.c' line='3335' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_printk_deferred'>
+        <parameter type-id='80f4b756' name='fmt' filepath='kernel/printk/printk.c' line='3335' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='_raw_read_lock' mangled-name='_raw_read_lock' filepath='kernel/locking/spinlock.c' line='226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_read_lock'>
+        <parameter type-id='6a6de1b0' name='lock' filepath='kernel/locking/spinlock.c' line='226' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_read_lock_bh' mangled-name='_raw_read_lock_bh' filepath='kernel/locking/spinlock.c' line='250' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_read_lock_bh'>
+        <parameter type-id='6a6de1b0' name='lock' filepath='kernel/locking/spinlock.c' line='250' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_read_lock_irq' mangled-name='_raw_read_lock_irq' filepath='kernel/locking/spinlock.c' line='242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_read_lock_irq'>
+        <parameter type-id='6a6de1b0' name='lock' filepath='kernel/locking/spinlock.c' line='242' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_read_lock_irqsave' mangled-name='_raw_read_lock_irqsave' filepath='kernel/locking/spinlock.c' line='234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_read_lock_irqsave'>
+        <parameter type-id='6a6de1b0' name='lock' filepath='kernel/locking/spinlock.c' line='234' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='_raw_read_trylock' mangled-name='_raw_read_trylock' filepath='kernel/locking/spinlock.c' line='218' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_read_trylock'>
+        <parameter type-id='6a6de1b0' name='lock' filepath='kernel/locking/spinlock.c' line='218' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='_raw_read_unlock' mangled-name='_raw_read_unlock' filepath='kernel/locking/spinlock.c' line='258' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_read_unlock'>
+        <parameter type-id='6a6de1b0' name='lock' filepath='kernel/locking/spinlock.c' line='258' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_read_unlock_bh' mangled-name='_raw_read_unlock_bh' filepath='kernel/locking/spinlock.c' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_read_unlock_bh'>
+        <parameter type-id='6a6de1b0' name='lock' filepath='kernel/locking/spinlock.c' line='282' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_read_unlock_irq' mangled-name='_raw_read_unlock_irq' filepath='kernel/locking/spinlock.c' line='274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_read_unlock_irq'>
+        <parameter type-id='6a6de1b0' name='lock' filepath='kernel/locking/spinlock.c' line='274' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_read_unlock_irqrestore' mangled-name='_raw_read_unlock_irqrestore' filepath='kernel/locking/spinlock.c' line='266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_read_unlock_irqrestore'>
+        <parameter type-id='6a6de1b0' name='lock' filepath='kernel/locking/spinlock.c' line='266' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='kernel/locking/spinlock.c' line='266' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_spin_lock' mangled-name='_raw_spin_lock' filepath='kernel/locking/spinlock.c' line='152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_spin_lock'>
+        <parameter type-id='704982b4' name='lock' filepath='kernel/locking/spinlock.c' line='152' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_spin_lock_bh' mangled-name='_raw_spin_lock_bh' filepath='kernel/locking/spinlock.c' line='176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_spin_lock_bh'>
+        <parameter type-id='704982b4' name='lock' filepath='kernel/locking/spinlock.c' line='176' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_spin_lock_irq' mangled-name='_raw_spin_lock_irq' filepath='kernel/locking/spinlock.c' line='168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_spin_lock_irq'>
+        <parameter type-id='704982b4' name='lock' filepath='kernel/locking/spinlock.c' line='168' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_spin_lock_irqsave' mangled-name='_raw_spin_lock_irqsave' filepath='kernel/locking/spinlock.c' line='160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_spin_lock_irqsave'>
+        <parameter type-id='704982b4' name='lock' filepath='kernel/locking/spinlock.c' line='160' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='_raw_spin_trylock' mangled-name='_raw_spin_trylock' filepath='kernel/locking/spinlock.c' line='136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_spin_trylock'>
+        <parameter type-id='704982b4' name='lock' filepath='kernel/locking/spinlock.c' line='136' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='_raw_spin_trylock_bh' mangled-name='_raw_spin_trylock_bh' filepath='kernel/locking/spinlock.c' line='144' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_spin_trylock_bh'>
+        <parameter type-id='704982b4' name='lock' filepath='kernel/locking/spinlock.c' line='144' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='_raw_spin_unlock' mangled-name='_raw_spin_unlock' filepath='kernel/locking/spinlock.c' line='184' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_spin_unlock'>
+        <parameter type-id='704982b4' name='lock' filepath='kernel/locking/spinlock.c' line='184' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_spin_unlock_bh' mangled-name='_raw_spin_unlock_bh' filepath='kernel/locking/spinlock.c' line='208' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_spin_unlock_bh'>
+        <parameter type-id='704982b4' name='lock' filepath='kernel/locking/spinlock.c' line='208' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_spin_unlock_irq' mangled-name='_raw_spin_unlock_irq' filepath='kernel/locking/spinlock.c' line='200' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_spin_unlock_irq'>
+        <parameter type-id='704982b4' name='lock' filepath='kernel/locking/spinlock.c' line='200' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_spin_unlock_irqrestore' mangled-name='_raw_spin_unlock_irqrestore' filepath='kernel/locking/spinlock.c' line='192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_spin_unlock_irqrestore'>
+        <parameter type-id='704982b4' name='lock' filepath='kernel/locking/spinlock.c' line='192' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='kernel/locking/spinlock.c' line='192' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_write_lock' mangled-name='_raw_write_lock' filepath='kernel/locking/spinlock.c' line='298' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_write_lock'>
+        <parameter type-id='6a6de1b0' name='lock' filepath='kernel/locking/spinlock.c' line='298' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_write_lock_bh' mangled-name='_raw_write_lock_bh' filepath='kernel/locking/spinlock.c' line='322' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_write_lock_bh'>
+        <parameter type-id='6a6de1b0' name='lock' filepath='kernel/locking/spinlock.c' line='322' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_write_lock_irq' mangled-name='_raw_write_lock_irq' filepath='kernel/locking/spinlock.c' line='314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_write_lock_irq'>
+        <parameter type-id='6a6de1b0' name='lock' filepath='kernel/locking/spinlock.c' line='314' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_write_lock_irqsave' mangled-name='_raw_write_lock_irqsave' filepath='kernel/locking/spinlock.c' line='306' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_write_lock_irqsave'>
+        <parameter type-id='6a6de1b0' name='lock' filepath='kernel/locking/spinlock.c' line='306' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='_raw_write_trylock' mangled-name='_raw_write_trylock' filepath='kernel/locking/spinlock.c' line='290' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_write_trylock'>
+        <parameter type-id='6a6de1b0' name='lock' filepath='kernel/locking/spinlock.c' line='290' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='_raw_write_unlock' mangled-name='_raw_write_unlock' filepath='kernel/locking/spinlock.c' line='330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_write_unlock'>
+        <parameter type-id='6a6de1b0' name='lock' filepath='kernel/locking/spinlock.c' line='330' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_write_unlock_bh' mangled-name='_raw_write_unlock_bh' filepath='kernel/locking/spinlock.c' line='354' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_write_unlock_bh'>
+        <parameter type-id='6a6de1b0' name='lock' filepath='kernel/locking/spinlock.c' line='354' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_write_unlock_irq' mangled-name='_raw_write_unlock_irq' filepath='kernel/locking/spinlock.c' line='346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_write_unlock_irq'>
+        <parameter type-id='6a6de1b0' name='lock' filepath='kernel/locking/spinlock.c' line='346' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_raw_write_unlock_irqrestore' mangled-name='_raw_write_unlock_irqrestore' filepath='kernel/locking/spinlock.c' line='338' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_raw_write_unlock_irqrestore'>
+        <parameter type-id='6a6de1b0' name='lock' filepath='kernel/locking/spinlock.c' line='338' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='kernel/locking/spinlock.c' line='338' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_snd_ctl_add_follower' mangled-name='_snd_ctl_add_follower' filepath='sound/core/vmaster.c' line='252' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_snd_ctl_add_follower'>
+        <parameter type-id='7a5054b7' name='master' filepath='sound/core/vmaster.c' line='252' column='1'/>
+        <parameter type-id='7a5054b7' name='follower' filepath='sound/core/vmaster.c' line='253' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='sound/core/vmaster.c' line='254' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='_snd_pcm_hw_params_any' mangled-name='_snd_pcm_hw_params_any' filepath='sound/core/pcm_lib.c' line='1530' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_snd_pcm_hw_params_any'>
+        <parameter type-id='363a995e' name='params' filepath='sound/core/pcm_lib.c' line='1530' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_snd_pcm_stream_lock_irqsave' mangled-name='_snd_pcm_stream_lock_irqsave' filepath='sound/core/pcm_native.c' line='164' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_snd_pcm_stream_lock_irqsave'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/core/pcm_native.c' line='164' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <var-decl name='_totalram_pages' type-id='f22a8abb' mangled-name='_totalram_pages' visibility='default' filepath='mm/page_alloc.c' line='273' column='1' elf-symbol-id='_totalram_pages'/>
+      <function-decl name='_trace_android_vh_record_pcpu_rwsem_starttime' mangled-name='_trace_android_vh_record_pcpu_rwsem_starttime' filepath='kernel/locking/percpu-rwsem.c' line='22' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_trace_android_vh_record_pcpu_rwsem_starttime'>
+        <parameter type-id='f23e2572' name='tsk' filepath='kernel/locking/percpu-rwsem.c' line='22' column='1'/>
+        <parameter type-id='7359adad' name='settime' filepath='kernel/locking/percpu-rwsem.c' line='23' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='_vb2_fop_release' mangled-name='_vb2_fop_release' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_vb2_fop_release'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1118' column='1'/>
+        <parameter type-id='e0ea832a' name='lock' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1118' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='access_process_vm' mangled-name='access_process_vm' filepath='mm/memory.c' line='5634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='access_process_vm'>
+        <parameter type-id='f23e2572' name='tsk' filepath='mm/memory.c' line='5634' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='5634' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='mm/memory.c' line='5635' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='mm/memory.c' line='5635' column='1'/>
+        <parameter type-id='f0981eeb' name='gup_flags' filepath='mm/memory.c' line='5635' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ack_all_badblocks' mangled-name='ack_all_badblocks' filepath='block/badblocks.c' line='433' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ack_all_badblocks'>
+        <parameter type-id='5760652c' name='bb' filepath='block/badblocks.c' line='433' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='activate_task' mangled-name='activate_task' filepath='kernel/sched/core.c' line='2043' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='activate_task'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2043' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2043' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='kernel/sched/core.c' line='2043' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='add_cpu' mangled-name='add_cpu' filepath='kernel/cpu.c' line='1498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_cpu'>
+        <parameter type-id='f0981eeb' name='cpu' filepath='kernel/cpu.c' line='1498' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='add_device_randomness' mangled-name='add_device_randomness' filepath='drivers/char/random.c' line='861' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_device_randomness'>
+        <parameter type-id='eaa32e2f' name='buf' filepath='drivers/char/random.c' line='861' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='drivers/char/random.c' line='861' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='add_memory' mangled-name='add_memory' filepath='mm/memory_hotplug.c' line='1481' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_memory'>
+        <parameter type-id='95e97e5e' name='nid' filepath='mm/memory_hotplug.c' line='1481' column='1'/>
+        <parameter type-id='91ce1af9' name='start' filepath='mm/memory_hotplug.c' line='1481' column='1'/>
+        <parameter type-id='91ce1af9' name='size' filepath='mm/memory_hotplug.c' line='1481' column='1'/>
+        <parameter type-id='78ce2680' name='mhp_flags' filepath='mm/memory_hotplug.c' line='1481' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='add_memory_subsection' mangled-name='add_memory_subsection' filepath='mm/memory_hotplug.c' line='1493' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_memory_subsection'>
+        <parameter type-id='95e97e5e' name='nid' filepath='mm/memory_hotplug.c' line='1493' column='1'/>
+        <parameter type-id='91ce1af9' name='start' filepath='mm/memory_hotplug.c' line='1493' column='1'/>
+        <parameter type-id='91ce1af9' name='size' filepath='mm/memory_hotplug.c' line='1493' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='add_random_ready_callback' mangled-name='add_random_ready_callback' filepath='drivers/char/random.c' line='1552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_random_ready_callback'>
+        <parameter type-id='b47c553a' name='rdy' filepath='drivers/char/random.c' line='1552' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='add_swap_extent' mangled-name='add_swap_extent' filepath='mm/swapfile.c' line='2318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_swap_extent'>
+        <parameter type-id='11e11a61' name='sis' filepath='mm/swapfile.c' line='2318' column='1'/>
+        <parameter type-id='7359adad' name='start_page' filepath='mm/swapfile.c' line='2318' column='1'/>
+        <parameter type-id='7359adad' name='nr_pages' filepath='mm/swapfile.c' line='2319' column='1'/>
+        <parameter type-id='a42536cd' name='start_block' filepath='mm/swapfile.c' line='2319' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='add_timer' mangled-name='add_timer' filepath='kernel/time/timer.c' line='1147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_timer'>
+        <parameter type-id='9248e67f' name='timer' filepath='kernel/time/timer.c' line='1147' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='add_timer_on' mangled-name='add_timer_on' filepath='kernel/time/timer.c' line='1161' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_timer_on'>
+        <parameter type-id='9248e67f' name='timer' filepath='kernel/time/timer.c' line='1161' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/time/timer.c' line='1161' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='add_to_page_cache_locked' mangled-name='add_to_page_cache_locked' filepath='mm/filemap.c' line='969' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_to_page_cache_locked'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/filemap.c' line='969' column='1'/>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/filemap.c' line='969' column='1'/>
+        <parameter type-id='7359adad' name='offset' filepath='mm/filemap.c' line='970' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/filemap.c' line='970' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='add_to_page_cache_lru' mangled-name='add_to_page_cache_lru' filepath='mm/filemap.c' line='977' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_to_page_cache_lru'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/filemap.c' line='977' column='1'/>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/filemap.c' line='977' column='1'/>
+        <parameter type-id='7359adad' name='offset' filepath='mm/filemap.c' line='978' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/filemap.c' line='978' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='add_uevent_var' mangled-name='add_uevent_var' filepath='lib/kobject_uevent.c' line='654' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_uevent_var'>
+        <parameter type-id='d9d65b21' name='env' filepath='lib/kobject_uevent.c' line='654' column='1'/>
+        <parameter type-id='80f4b756' name='format' filepath='lib/kobject_uevent.c' line='654' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='add_wait_queue' mangled-name='add_wait_queue' filepath='kernel/sched/wait.c' line='19' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_wait_queue'>
+        <parameter type-id='3f8b2ed3' name='wq_head' filepath='kernel/sched/wait.c' line='19' column='1'/>
+        <parameter type-id='db9d03e3' name='wq_entry' filepath='kernel/sched/wait.c' line='19' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='addrconf_prefix_rcv_add_addr' mangled-name='addrconf_prefix_rcv_add_addr' filepath='net/ipv6/addrconf.c' line='2611' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='addrconf_prefix_rcv_add_addr'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv6/addrconf.c' line='2611' column='1'/>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/ipv6/addrconf.c' line='2611' column='1'/>
+        <parameter type-id='d070dbfd' name='pinfo' filepath='net/ipv6/addrconf.c' line='2612' column='1'/>
+        <parameter type-id='f026b16b' name='in6_dev' filepath='net/ipv6/addrconf.c' line='2613' column='1'/>
+        <parameter type-id='fea9c20b' name='addr' filepath='net/ipv6/addrconf.c' line='2614' column='1'/>
+        <parameter type-id='95e97e5e' name='addr_type' filepath='net/ipv6/addrconf.c' line='2614' column='1'/>
+        <parameter type-id='19c2251e' name='addr_flags' filepath='net/ipv6/addrconf.c' line='2615' column='1'/>
+        <parameter type-id='b50a4934' name='sllao' filepath='net/ipv6/addrconf.c' line='2615' column='1'/>
+        <parameter type-id='b50a4934' name='tokenized' filepath='net/ipv6/addrconf.c' line='2615' column='1'/>
+        <parameter type-id='3f1a6b60' name='valid_lft' filepath='net/ipv6/addrconf.c' line='2616' column='1'/>
+        <parameter type-id='19c2251e' name='prefered_lft' filepath='net/ipv6/addrconf.c' line='2616' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='address_space_init_once' mangled-name='address_space_init_once' filepath='fs/inode.c' line='381' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='address_space_init_once'>
+        <parameter type-id='f57039f0' name='mapping' filepath='fs/inode.c' line='381' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='adjust_managed_page_count' mangled-name='adjust_managed_page_count' filepath='mm/page_alloc.c' line='8526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='adjust_managed_page_count'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/page_alloc.c' line='8526' column='1'/>
+        <parameter type-id='bd54fe1a' name='count' filepath='mm/page_alloc.c' line='8526' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='aead_register_instance' mangled-name='aead_register_instance' filepath='crypto/aead.c' line='286' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='aead_register_instance'>
+        <parameter type-id='f0f856cb' name='tmpl' filepath='crypto/aead.c' line='286' column='1'/>
+        <parameter type-id='69bd57be' name='inst' filepath='crypto/aead.c' line='287' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='aes_encrypt' mangled-name='aes_encrypt' filepath='lib/crypto/aes.c' line='266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='aes_encrypt'>
+        <parameter type-id='825271e7' name='ctx' filepath='lib/crypto/aes.c' line='266' column='1'/>
+        <parameter type-id='8bff8096' name='out' filepath='lib/crypto/aes.c' line='266' column='1'/>
+        <parameter type-id='bbaf3419' name='in' filepath='lib/crypto/aes.c' line='266' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='aes_expandkey' mangled-name='aes_expandkey' filepath='lib/crypto/aes.c' line='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='aes_expandkey'>
+        <parameter type-id='21370cb4' name='ctx' filepath='lib/crypto/aes.c' line='186' column='1'/>
+        <parameter type-id='bbaf3419' name='in_key' filepath='lib/crypto/aes.c' line='186' column='1'/>
+        <parameter type-id='f0981eeb' name='key_len' filepath='lib/crypto/aes.c' line='187' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ahash_register_instance' mangled-name='ahash_register_instance' filepath='crypto/ahash.c' line='632' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ahash_register_instance'>
+        <parameter type-id='f0f856cb' name='tmpl' filepath='crypto/ahash.c' line='632' column='1'/>
+        <parameter type-id='4e602d14' name='inst' filepath='crypto/ahash.c' line='633' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='alarm_cancel' mangled-name='alarm_cancel' filepath='kernel/time/alarmtimer.c' line='429' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alarm_cancel'>
+        <parameter type-id='be65fdd0' name='alarm' filepath='kernel/time/alarmtimer.c' line='429' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='alarm_expires_remaining' mangled-name='alarm_expires_remaining' filepath='kernel/time/alarmtimer.c' line='225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alarm_expires_remaining'>
+        <parameter type-id='7e983261' name='alarm' filepath='kernel/time/alarmtimer.c' line='225' column='1'/>
+        <return type-id='fbc017ef'/>
+      </function-decl>
+      <function-decl name='alarm_forward' mangled-name='alarm_forward' filepath='kernel/time/alarmtimer.c' line='441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alarm_forward'>
+        <parameter type-id='be65fdd0' name='alarm' filepath='kernel/time/alarmtimer.c' line='441' column='1'/>
+        <parameter type-id='fbc017ef' name='now' filepath='kernel/time/alarmtimer.c' line='441' column='1'/>
+        <parameter type-id='fbc017ef' name='interval' filepath='kernel/time/alarmtimer.c' line='441' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='alarm_init' mangled-name='alarm_init' filepath='kernel/time/alarmtimer.c' line='342' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alarm_init'>
+        <parameter type-id='be65fdd0' name='alarm' filepath='kernel/time/alarmtimer.c' line='342' column='1'/>
+        <parameter type-id='6b8d4b77' name='type' filepath='kernel/time/alarmtimer.c' line='342' column='1'/>
+        <parameter type-id='7432d5be' name='function' filepath='kernel/time/alarmtimer.c' line='343' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='alarm_start' mangled-name='alarm_start' filepath='kernel/time/alarmtimer.c' line='356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alarm_start'>
+        <parameter type-id='be65fdd0' name='alarm' filepath='kernel/time/alarmtimer.c' line='356' column='1'/>
+        <parameter type-id='fbc017ef' name='start' filepath='kernel/time/alarmtimer.c' line='356' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='alarm_start_relative' mangled-name='alarm_start_relative' filepath='kernel/time/alarmtimer.c' line='376' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alarm_start_relative'>
+        <parameter type-id='be65fdd0' name='alarm' filepath='kernel/time/alarmtimer.c' line='376' column='1'/>
+        <parameter type-id='fbc017ef' name='start' filepath='kernel/time/alarmtimer.c' line='376' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='alarm_try_to_cancel' mangled-name='alarm_try_to_cancel' filepath='kernel/time/alarmtimer.c' line='405' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alarm_try_to_cancel'>
+        <parameter type-id='be65fdd0' name='alarm' filepath='kernel/time/alarmtimer.c' line='405' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='alarmtimer_get_rtcdev' mangled-name='alarmtimer_get_rtcdev' filepath='kernel/time/alarmtimer.c' line='71' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alarmtimer_get_rtcdev'>
+        <return type-id='5992ae83'/>
+      </function-decl>
+      <function-decl name='alg_test' mangled-name='alg_test' filepath='crypto/testmgr.c' line='66' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alg_test'>
+        <parameter type-id='80f4b756' name='driver' filepath='crypto/testmgr.c' line='66' column='1'/>
+        <parameter type-id='80f4b756' name='alg' filepath='crypto/testmgr.c' line='66' column='1'/>
+        <parameter type-id='19c2251e' name='type' filepath='crypto/testmgr.c' line='66' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='crypto/testmgr.c' line='66' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='all_vm_events' mangled-name='all_vm_events' filepath='mm/vmstat.c' line='130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='all_vm_events'>
+        <parameter type-id='1d2c2b85' name='ret' filepath='mm/vmstat.c' line='130' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='alloc_anon_inode' mangled-name='alloc_anon_inode' filepath='fs/libfs.c' line='1220' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_anon_inode'>
+        <parameter type-id='42c8f564' name='s' filepath='fs/libfs.c' line='1220' column='1'/>
+        <return type-id='7e666abe'/>
+      </function-decl>
+      <function-decl name='alloc_can_err_skb' mangled-name='alloc_can_err_skb' filepath='drivers/net/can/dev/skb.c' line='241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_can_err_skb'>
+        <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/can/dev/skb.c' line='241' column='1'/>
+        <parameter type-id='fb0c6b9f' name='cf' filepath='drivers/net/can/dev/skb.c' line='241' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='alloc_can_skb' mangled-name='alloc_can_skb' filepath='drivers/net/can/dev/skb.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_can_skb'>
+        <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/can/dev/skb.c' line='180' column='1'/>
+        <parameter type-id='fb0c6b9f' name='cf' filepath='drivers/net/can/dev/skb.c' line='180' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='alloc_candev_mqs' mangled-name='alloc_candev_mqs' filepath='drivers/net/can/dev/dev.c' line='240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_candev_mqs'>
+        <parameter type-id='95e97e5e' name='sizeof_priv' filepath='drivers/net/can/dev/dev.c' line='240' column='1'/>
+        <parameter type-id='f0981eeb' name='echo_skb_max' filepath='drivers/net/can/dev/dev.c' line='240' column='1'/>
+        <parameter type-id='f0981eeb' name='txqs' filepath='drivers/net/can/dev/dev.c' line='241' column='1'/>
+        <parameter type-id='f0981eeb' name='rxqs' filepath='drivers/net/can/dev/dev.c' line='241' column='1'/>
+        <return type-id='68a2d05b'/>
+      </function-decl>
+      <function-decl name='alloc_canfd_skb' mangled-name='alloc_canfd_skb' filepath='drivers/net/can/dev/skb.c' line='210' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_canfd_skb'>
+        <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/can/dev/skb.c' line='210' column='1'/>
+        <parameter type-id='8cf60c25' name='cfd' filepath='drivers/net/can/dev/skb.c' line='211' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='alloc_chrdev_region' mangled-name='alloc_chrdev_region' filepath='fs/char_dev.c' line='236' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_chrdev_region'>
+        <parameter type-id='33f86a47' name='dev' filepath='fs/char_dev.c' line='236' column='1'/>
+        <parameter type-id='f0981eeb' name='baseminor' filepath='fs/char_dev.c' line='236' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='fs/char_dev.c' line='236' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='fs/char_dev.c' line='237' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='alloc_contig_range' mangled-name='alloc_contig_range' filepath='mm/page_alloc.c' line='9472' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_contig_range'>
+        <parameter type-id='7359adad' name='start' filepath='mm/page_alloc.c' line='9472' column='1'/>
+        <parameter type-id='7359adad' name='end' filepath='mm/page_alloc.c' line='9472' column='1'/>
+        <parameter type-id='f0981eeb' name='migratetype' filepath='mm/page_alloc.c' line='9473' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/page_alloc.c' line='9473' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='alloc_etherdev_mqs' mangled-name='alloc_etherdev_mqs' filepath='net/ethernet/eth.c' line='390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_etherdev_mqs'>
+        <parameter type-id='95e97e5e' name='sizeof_priv' filepath='net/ethernet/eth.c' line='390' column='1'/>
+        <parameter type-id='f0981eeb' name='txqs' filepath='net/ethernet/eth.c' line='390' column='1'/>
+        <parameter type-id='f0981eeb' name='rxqs' filepath='net/ethernet/eth.c' line='391' column='1'/>
+        <return type-id='68a2d05b'/>
+      </function-decl>
+      <function-decl name='alloc_io_pgtable_ops' mangled-name='alloc_io_pgtable_ops' filepath='drivers/iommu/io-pgtable.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_io_pgtable_ops'>
+        <parameter type-id='28637b68' name='fmt' filepath='drivers/iommu/io-pgtable.c' line='33' column='1'/>
+        <parameter type-id='a6481aea' name='cfg' filepath='drivers/iommu/io-pgtable.c' line='34' column='1'/>
+        <parameter type-id='eaa32e2f' name='cookie' filepath='drivers/iommu/io-pgtable.c' line='35' column='1'/>
+        <return type-id='bf4bdb64'/>
+      </function-decl>
+      <function-decl name='alloc_iova' mangled-name='alloc_iova' filepath='drivers/iommu/iova.c' line='461' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_iova'>
+        <parameter type-id='0c2c419d' name='iovad' filepath='drivers/iommu/iova.c' line='461' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='drivers/iommu/iova.c' line='461' column='1'/>
+        <parameter type-id='7359adad' name='limit_pfn' filepath='drivers/iommu/iova.c' line='462' column='1'/>
+        <parameter type-id='b50a4934' name='size_aligned' filepath='drivers/iommu/iova.c' line='463' column='1'/>
+        <return type-id='b2ea0a72'/>
+      </function-decl>
+      <function-decl name='alloc_netdev_mqs' mangled-name='alloc_netdev_mqs' filepath='net/core/dev.c' line='10802' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_netdev_mqs'>
+        <parameter type-id='95e97e5e' name='sizeof_priv' filepath='net/core/dev.c' line='10802' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='net/core/dev.c' line='10802' column='1'/>
+        <parameter type-id='002ac4a6' name='name_assign_type' filepath='net/core/dev.c' line='10803' column='1'/>
+        <parameter type-id='548eee3a' name='setup' filepath='net/core/dev.c' line='10804' column='1'/>
+        <parameter type-id='f0981eeb' name='txqs' filepath='net/core/dev.c' line='10805' column='1'/>
+        <parameter type-id='f0981eeb' name='rxqs' filepath='net/core/dev.c' line='10805' column='1'/>
+        <return type-id='68a2d05b'/>
+      </function-decl>
+      <function-decl name='alloc_page_buffers' mangled-name='alloc_page_buffers' filepath='fs/buffer.c' line='814' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_page_buffers'>
+        <parameter type-id='02f11ed4' name='page' filepath='fs/buffer.c' line='814' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='fs/buffer.c' line='814' column='1'/>
+        <parameter type-id='b50a4934' name='retry' filepath='fs/buffer.c' line='815' column='1'/>
+        <return type-id='c485c22c'/>
+      </function-decl>
+      <function-decl name='alloc_pages_exact' mangled-name='alloc_pages_exact' filepath='mm/page_alloc.c' line='6023' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_pages_exact'>
+        <parameter type-id='b59d7dce' name='size' filepath='mm/page_alloc.c' line='6023' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/page_alloc.c' line='6023' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='alloc_skb_with_frags' mangled-name='alloc_skb_with_frags' filepath='net/core/skbuff.c' line='6125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_skb_with_frags'>
+        <parameter type-id='7359adad' name='header_len' filepath='net/core/skbuff.c' line='6125' column='1'/>
+        <parameter type-id='7359adad' name='data_len' filepath='net/core/skbuff.c' line='6126' column='1'/>
+        <parameter type-id='95e97e5e' name='max_page_order' filepath='net/core/skbuff.c' line='6127' column='1'/>
+        <parameter type-id='7292109c' name='errcode' filepath='net/core/skbuff.c' line='6128' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='net/core/skbuff.c' line='6129' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='alloc_swapdev_block' mangled-name='alloc_swapdev_block' filepath='kernel/power/swap.c' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_swapdev_block'>
+        <parameter type-id='95e97e5e' name='swap' filepath='kernel/power/swap.c' line='177' column='1'/>
+        <return type-id='a42536cd'/>
+      </function-decl>
+      <function-decl name='alloc_workqueue' mangled-name='alloc_workqueue' filepath='kernel/workqueue.c' line='4303' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_workqueue'>
+        <parameter type-id='80f4b756' name='fmt' filepath='kernel/workqueue.c' line='4303' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='kernel/workqueue.c' line='4304' column='1'/>
+        <parameter type-id='95e97e5e' name='max_active' filepath='kernel/workqueue.c' line='4305' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='242e3d19'/>
+      </function-decl>
+      <var-decl name='amba_bustype' type-id='b31bfc8a' mangled-name='amba_bustype' visibility='default' filepath='drivers/amba/bus.c' line='313' column='1' elf-symbol-id='amba_bustype'/>
+      <function-decl name='amba_driver_register' mangled-name='amba_driver_register' filepath='drivers/amba/bus.c' line='341' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='amba_driver_register'>
+        <parameter type-id='6e829429' name='drv' filepath='drivers/amba/bus.c' line='341' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='amba_driver_unregister' mangled-name='amba_driver_unregister' filepath='drivers/amba/bus.c' line='359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='amba_driver_unregister'>
+        <parameter type-id='6e829429' name='drv' filepath='drivers/amba/bus.c' line='359' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='amba_release_regions' mangled-name='amba_release_regions' filepath='drivers/amba/bus.c' line='819' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='amba_release_regions'>
+        <parameter type-id='ddd322c1' name='dev' filepath='drivers/amba/bus.c' line='819' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='amba_request_regions' mangled-name='amba_request_regions' filepath='drivers/amba/bus.c' line='797' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='amba_request_regions'>
+        <parameter type-id='ddd322c1' name='dev' filepath='drivers/amba/bus.c' line='797' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/amba/bus.c' line='797' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='android_debug_for_each_module' mangled-name='android_debug_for_each_module' filepath='kernel/module.c' line='4852' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='android_debug_for_each_module'>
+        <parameter type-id='841286fc' name='fn' filepath='kernel/module.c' line='4852' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='kernel/module.c' line='4853' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='android_debug_per_cpu_symbol' mangled-name='android_debug_per_cpu_symbol' filepath='drivers/android/android_debug_symbols.c' line='121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='android_debug_per_cpu_symbol'>
+        <parameter type-id='06dde89f' name='symbol' filepath='drivers/android/android_debug_symbols.c' line='121' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='android_debug_symbol' mangled-name='android_debug_symbol' filepath='drivers/android/android_debug_symbols.c' line='104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='android_debug_symbol'>
+        <parameter type-id='9a7fd0a4' name='symbol' filepath='drivers/android/android_debug_symbols.c' line='104' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <var-decl name='android_kmalloc_64_create' type-id='b50a4934' mangled-name='android_kmalloc_64_create' visibility='default' filepath='mm/slab_common.c' line='702' column='1' elf-symbol-id='android_kmalloc_64_create'/>
+      <function-decl name='android_rvh_probe_register' mangled-name='android_rvh_probe_register' filepath='kernel/tracepoint.c' line='841' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='android_rvh_probe_register'>
+        <parameter type-id='08e531de' name='tp' filepath='kernel/tracepoint.c' line='841' column='1'/>
+        <parameter type-id='eaa32e2f' name='probe' filepath='kernel/tracepoint.c' line='841' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='kernel/tracepoint.c' line='841' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='anon_inode_getfd' mangled-name='anon_inode_getfd' filepath='fs/anon_inodes.c' line='197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='anon_inode_getfd'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/anon_inodes.c' line='197' column='1'/>
+        <parameter type-id='61758ee5' name='fops' filepath='fs/anon_inodes.c' line='197' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='fs/anon_inodes.c' line='198' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='fs/anon_inodes.c' line='198' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='anon_inode_getfile' mangled-name='anon_inode_getfile' filepath='fs/anon_inodes.c' line='143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='anon_inode_getfile'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/anon_inodes.c' line='143' column='1'/>
+        <parameter type-id='61758ee5' name='fops' filepath='fs/anon_inodes.c' line='144' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='fs/anon_inodes.c' line='145' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='fs/anon_inodes.c' line='145' column='1'/>
+        <return type-id='77e79a4b'/>
+      </function-decl>
+      <function-decl name='arc4_crypt' mangled-name='arc4_crypt' filepath='lib/crypto/arc4.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='arc4_crypt'>
+        <parameter type-id='980c37b3' name='ctx' filepath='lib/crypto/arc4.c' line='37' column='1'/>
+        <parameter type-id='8bff8096' name='out' filepath='lib/crypto/arc4.c' line='37' column='1'/>
+        <parameter type-id='bbaf3419' name='in' filepath='lib/crypto/arc4.c' line='37' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='lib/crypto/arc4.c' line='37' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='arc4_setkey' mangled-name='arc4_setkey' filepath='lib/crypto/arc4.c' line='13' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='arc4_setkey'>
+        <parameter type-id='980c37b3' name='ctx' filepath='lib/crypto/arc4.c' line='13' column='1'/>
+        <parameter type-id='bbaf3419' name='in_key' filepath='lib/crypto/arc4.c' line='13' column='1'/>
+        <parameter type-id='f0981eeb' name='key_len' filepath='lib/crypto/arc4.c' line='13' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='arch_freq_scale' type-id='7359adad' mangled-name='arch_freq_scale' visibility='default' filepath='drivers/base/arch_topology.c' line='126' column='1' elf-symbol-id='arch_freq_scale'/>
+      <var-decl name='arch_timer_read_counter' type-id='0e70db3e' mangled-name='arch_timer_read_counter' visibility='default' filepath='drivers/clocksource/arm_arch_timer.c' line='190' column='1' elf-symbol-id='arch_timer_read_counter'/>
+      <function-decl name='argv_free' mangled-name='argv_free' filepath='lib/argv_split.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='argv_free'>
+        <parameter type-id='9b23c9ad' name='argv' filepath='lib/argv_split.c' line='35' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='argv_split' mangled-name='argv_split' filepath='lib/argv_split.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='argv_split'>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='lib/argv_split.c' line='60' column='1'/>
+        <parameter type-id='80f4b756' name='str' filepath='lib/argv_split.c' line='60' column='1'/>
+        <parameter type-id='7292109c' name='argcp' filepath='lib/argv_split.c' line='60' column='1'/>
+        <return type-id='9b23c9ad'/>
+      </function-decl>
+      <var-decl name='arm64_const_caps_ready' type-id='237c0d27' mangled-name='arm64_const_caps_ready' visibility='default' filepath='arch/arm64/kernel/cpufeature.c' line='145' column='1' elf-symbol-id='arm64_const_caps_ready'/>
+      <var-decl name='arm64_use_ng_mappings' type-id='b50a4934' mangled-name='arm64_use_ng_mappings' visibility='default' filepath='arch/arm64/kernel/cpufeature.c' line='113' column='1' elf-symbol-id='arm64_use_ng_mappings'/>
+      <function-decl name='arm_smccc_1_1_get_conduit' mangled-name='arm_smccc_1_1_get_conduit' filepath='drivers/firmware/smccc/smccc.c' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='arm_smccc_1_1_get_conduit'>
+        <return type-id='74a8da23'/>
+      </function-decl>
+      <function-decl name='arm_smccc_get_version' mangled-name='arm_smccc_get_version' filepath='drivers/firmware/smccc/smccc.c' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='arm_smccc_get_version'>
+        <return type-id='19c2251e'/>
+      </function-decl>
+      <function-decl name='arp_create' mangled-name='arp_create' filepath='net/ipv4/arp.c' line='523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='arp_create'>
+        <parameter type-id='95e97e5e' name='type' filepath='net/ipv4/arp.c' line='523' column='1'/>
+        <parameter type-id='95e97e5e' name='ptype' filepath='net/ipv4/arp.c' line='523' column='1'/>
+        <parameter type-id='78a133c2' name='dest_ip' filepath='net/ipv4/arp.c' line='523' column='1'/>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/ipv4/arp.c' line='524' column='1'/>
+        <parameter type-id='78a133c2' name='src_ip' filepath='net/ipv4/arp.c' line='524' column='1'/>
+        <parameter type-id='354f7eb9' name='dest_hw' filepath='net/ipv4/arp.c' line='525' column='1'/>
+        <parameter type-id='354f7eb9' name='src_hw' filepath='net/ipv4/arp.c' line='526' column='1'/>
+        <parameter type-id='354f7eb9' name='target_hw' filepath='net/ipv4/arp.c' line='527' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <var-decl name='arp_tbl' type-id='aebe1cff' mangled-name='arp_tbl' visibility='default' filepath='net/ipv4/arp.c' line='152' column='1' elf-symbol-id='arp_tbl'/>
+      <function-decl name='async_schedule_node' mangled-name='async_schedule_node' filepath='kernel/async.c' line='228' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='async_schedule_node'>
+        <parameter type-id='5c19cb0c' name='func' filepath='kernel/async.c' line='228' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='kernel/async.c' line='228' column='1'/>
+        <parameter type-id='95e97e5e' name='node' filepath='kernel/async.c' line='228' column='1'/>
+        <return type-id='a7465fe4'/>
+      </function-decl>
+      <function-decl name='async_schedule_node_domain' mangled-name='async_schedule_node_domain' filepath='kernel/async.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='async_schedule_node_domain'>
+        <parameter type-id='5c19cb0c' name='func' filepath='kernel/async.c' line='165' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='kernel/async.c' line='165' column='1'/>
+        <parameter type-id='95e97e5e' name='node' filepath='kernel/async.c' line='166' column='1'/>
+        <parameter type-id='fc616182' name='domain' filepath='kernel/async.c' line='166' column='1'/>
+        <return type-id='a7465fe4'/>
+      </function-decl>
+      <function-decl name='async_synchronize_cookie' mangled-name='async_synchronize_cookie' filepath='kernel/async.c' line='288' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='async_synchronize_cookie'>
+        <parameter type-id='a7465fe4' name='cookie' filepath='kernel/async.c' line='288' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='async_synchronize_full_domain' mangled-name='async_synchronize_full_domain' filepath='kernel/async.c' line='252' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='async_synchronize_full_domain'>
+        <parameter type-id='fc616182' name='domain' filepath='kernel/async.c' line='252' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='atomic_notifier_call_chain' mangled-name='atomic_notifier_call_chain' filepath='kernel/notifier.c' line='192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_notifier_call_chain'>
+        <parameter type-id='02162584' name='nh' filepath='kernel/notifier.c' line='192' column='1'/>
+        <parameter type-id='7359adad' name='val' filepath='kernel/notifier.c' line='193' column='1'/>
+        <parameter type-id='eaa32e2f' name='v' filepath='kernel/notifier.c' line='193' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='atomic_notifier_chain_register' mangled-name='atomic_notifier_chain_register' filepath='kernel/notifier.c' line='139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_notifier_chain_register'>
+        <parameter type-id='02162584' name='nh' filepath='kernel/notifier.c' line='139' column='1'/>
+        <parameter type-id='d504f73d' name='n' filepath='kernel/notifier.c' line='140' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='atomic_notifier_chain_unregister' mangled-name='atomic_notifier_chain_unregister' filepath='kernel/notifier.c' line='161' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='atomic_notifier_chain_unregister'>
+        <parameter type-id='02162584' name='nh' filepath='kernel/notifier.c' line='161' column='1'/>
+        <parameter type-id='d504f73d' name='n' filepath='kernel/notifier.c' line='162' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='autoremove_wake_function' mangled-name='autoremove_wake_function' filepath='kernel/sched/wait.c' line='418' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='autoremove_wake_function'>
+        <parameter type-id='db9d03e3' name='wq_entry' filepath='kernel/sched/wait.c' line='418' column='1'/>
+        <parameter type-id='f0981eeb' name='mode' filepath='kernel/sched/wait.c' line='418' column='1'/>
+        <parameter type-id='95e97e5e' name='sync' filepath='kernel/sched/wait.c' line='419' column='1'/>
+        <parameter type-id='eaa32e2f' name='key' filepath='kernel/sched/wait.c' line='419' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='available_idle_cpu' mangled-name='available_idle_cpu' filepath='kernel/sched/core.c' line='7244' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='available_idle_cpu'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/core.c' line='7244' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='backlight_device_get_by_type' mangled-name='backlight_device_get_by_type' filepath='drivers/video/backlight/backlight.c' line='468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='backlight_device_get_by_type'>
+        <parameter type-id='e7dc2d8e' name='type' filepath='drivers/video/backlight/backlight.c' line='468' column='1'/>
+        <return type-id='7a76d041'/>
+      </function-decl>
+      <function-decl name='backlight_device_register' mangled-name='backlight_device_register' filepath='drivers/video/backlight/backlight.c' line='393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='backlight_device_register'>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/video/backlight/backlight.c' line='393' column='1'/>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/video/backlight/backlight.c' line='394' column='1'/>
+        <parameter type-id='eaa32e2f' name='devdata' filepath='drivers/video/backlight/backlight.c' line='394' column='1'/>
+        <parameter type-id='a3d6b1c0' name='ops' filepath='drivers/video/backlight/backlight.c' line='394' column='1'/>
+        <parameter type-id='f46152e7' name='props' filepath='drivers/video/backlight/backlight.c' line='395' column='1'/>
+        <return type-id='7a76d041'/>
+      </function-decl>
+      <function-decl name='backlight_device_set_brightness' mangled-name='backlight_device_set_brightness' filepath='drivers/video/backlight/backlight.c' line='230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='backlight_device_set_brightness'>
+        <parameter type-id='7a76d041' name='bd' filepath='drivers/video/backlight/backlight.c' line='230' column='1'/>
+        <parameter type-id='7359adad' name='brightness' filepath='drivers/video/backlight/backlight.c' line='231' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='backlight_device_unregister' mangled-name='backlight_device_unregister' filepath='drivers/video/backlight/backlight.c' line='508' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='backlight_device_unregister'>
+        <parameter type-id='7a76d041' name='bd' filepath='drivers/video/backlight/backlight.c' line='508' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='badblocks_clear' mangled-name='badblocks_clear' filepath='block/badblocks.c' line='331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='badblocks_clear'>
+        <parameter type-id='5760652c' name='bb' filepath='block/badblocks.c' line='331' column='1'/>
+        <parameter type-id='a42536cd' name='s' filepath='block/badblocks.c' line='331' column='1'/>
+        <parameter type-id='95e97e5e' name='sectors' filepath='block/badblocks.c' line='331' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='badblocks_exit' mangled-name='badblocks_exit' filepath='block/badblocks.c' line='593' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='badblocks_exit'>
+        <parameter type-id='5760652c' name='bb' filepath='block/badblocks.c' line='593' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='badblocks_init' mangled-name='badblocks_init' filepath='block/badblocks.c' line='575' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='badblocks_init'>
+        <parameter type-id='5760652c' name='bb' filepath='block/badblocks.c' line='575' column='1'/>
+        <parameter type-id='95e97e5e' name='enable' filepath='block/badblocks.c' line='575' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='badblocks_set' mangled-name='badblocks_set' filepath='block/badblocks.c' line='163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='badblocks_set'>
+        <parameter type-id='5760652c' name='bb' filepath='block/badblocks.c' line='163' column='1'/>
+        <parameter type-id='a42536cd' name='s' filepath='block/badblocks.c' line='163' column='1'/>
+        <parameter type-id='95e97e5e' name='sectors' filepath='block/badblocks.c' line='163' column='1'/>
+        <parameter type-id='95e97e5e' name='acknowledged' filepath='block/badblocks.c' line='164' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='badblocks_show' mangled-name='badblocks_show' filepath='block/badblocks.c' line='467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='badblocks_show'>
+        <parameter type-id='5760652c' name='bb' filepath='block/badblocks.c' line='467' column='1'/>
+        <parameter type-id='26a90f95' name='page' filepath='block/badblocks.c' line='467' column='1'/>
+        <parameter type-id='95e97e5e' name='unack' filepath='block/badblocks.c' line='467' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='badblocks_store' mangled-name='badblocks_store' filepath='block/badblocks.c' line='517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='badblocks_store'>
+        <parameter type-id='5760652c' name='bb' filepath='block/badblocks.c' line='517' column='1'/>
+        <parameter type-id='80f4b756' name='page' filepath='block/badblocks.c' line='517' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='block/badblocks.c' line='517' column='1'/>
+        <parameter type-id='95e97e5e' name='unack' filepath='block/badblocks.c' line='518' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='balance_dirty_pages_ratelimited' mangled-name='balance_dirty_pages_ratelimited' filepath='mm/page-writeback.c' line='1878' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='balance_dirty_pages_ratelimited'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/page-writeback.c' line='1878' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='balance_push_callback' type-id='e3d8ce29' mangled-name='balance_push_callback' visibility='default' filepath='kernel/sched/core.c' line='4803' column='1' elf-symbol-id='balance_push_callback'/>
+      <var-decl name='balloon_aops' type-id='38ce7f2c' mangled-name='balloon_aops' visibility='default' filepath='mm/balloon_compaction.c' line='253' column='1' elf-symbol-id='balloon_aops'/>
+      <function-decl name='balloon_page_alloc' mangled-name='balloon_page_alloc' filepath='mm/balloon_compaction.c' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='balloon_page_alloc'>
+        <return type-id='02f11ed4'/>
+      </function-decl>
+      <function-decl name='balloon_page_dequeue' mangled-name='balloon_page_dequeue' filepath='mm/balloon_compaction.c' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='balloon_page_dequeue'>
+        <parameter type-id='c0f00785' name='b_dev_info' filepath='mm/balloon_compaction.c' line='177' column='1'/>
+        <return type-id='02f11ed4'/>
+      </function-decl>
+      <function-decl name='balloon_page_enqueue' mangled-name='balloon_page_enqueue' filepath='mm/balloon_compaction.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='balloon_page_enqueue'>
+        <parameter type-id='c0f00785' name='b_dev_info' filepath='mm/balloon_compaction.c' line='146' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/balloon_compaction.c' line='147' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='baswap' mangled-name='baswap' filepath='net/bluetooth/lib.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='baswap'>
+        <parameter type-id='c5d02a37' name='dst' filepath='net/bluetooth/lib.c' line='33' column='1'/>
+        <parameter type-id='c3e18af8' name='src' filepath='net/bluetooth/lib.c' line='33' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bcmp' mangled-name='bcmp' filepath='lib/string.c' line='974' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bcmp'>
+        <parameter type-id='eaa32e2f' name='a' filepath='lib/string.c' line='974' column='1'/>
+        <parameter type-id='eaa32e2f' name='b' filepath='lib/string.c' line='974' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='lib/string.c' line='974' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bd_link_disk_holder' mangled-name='bd_link_disk_holder' filepath='block/holder.c' line='73' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bd_link_disk_holder'>
+        <parameter type-id='b88dd945' name='bdev' filepath='block/holder.c' line='73' column='1'/>
+        <parameter type-id='33c599da' name='disk' filepath='block/holder.c' line='73' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bd_unlink_disk_holder' mangled-name='bd_unlink_disk_holder' filepath='block/holder.c' line='139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bd_unlink_disk_holder'>
+        <parameter type-id='b88dd945' name='bdev' filepath='block/holder.c' line='139' column='1'/>
+        <parameter type-id='33c599da' name='disk' filepath='block/holder.c' line='139' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bdev_check_media_change' mangled-name='bdev_check_media_change' filepath='block/disk-events.c' line='275' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bdev_check_media_change'>
+        <parameter type-id='b88dd945' name='bdev' filepath='block/disk-events.c' line='275' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='bdev_read_only' mangled-name='bdev_read_only' filepath='block/genhd.c' line='1416' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bdev_read_only'>
+        <parameter type-id='b88dd945' name='bdev' filepath='block/genhd.c' line='1416' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bdevname' mangled-name='bdevname' filepath='block/genhd.c' line='107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bdevname'>
+        <parameter type-id='b88dd945' name='bdev' filepath='block/genhd.c' line='107' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='block/genhd.c' line='107' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='bdi_alloc' mangled-name='bdi_alloc' filepath='mm/backing-dev.c' line='807' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bdi_alloc'>
+        <parameter type-id='95e97e5e' name='node_id' filepath='mm/backing-dev.c' line='807' column='1'/>
+        <return type-id='ef4fae1b'/>
+      </function-decl>
+      <function-decl name='bdi_dev_name' mangled-name='bdi_dev_name' filepath='mm/backing-dev.c' line='988' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bdi_dev_name'>
+        <parameter type-id='ef4fae1b' name='bdi' filepath='mm/backing-dev.c' line='988' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='bdi_put' mangled-name='bdi_put' filepath='mm/backing-dev.c' line='982' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bdi_put'>
+        <parameter type-id='ef4fae1b' name='bdi' filepath='mm/backing-dev.c' line='982' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bdi_register' mangled-name='bdi_register' filepath='mm/backing-dev.c' line='910' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bdi_register'>
+        <parameter type-id='ef4fae1b' name='bdi' filepath='mm/backing-dev.c' line='910' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='mm/backing-dev.c' line='910' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bgpio_init' mangled-name='bgpio_init' filepath='drivers/gpio/gpio-mmio.c' line='599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bgpio_init'>
+        <parameter type-id='e324928d' name='gc' filepath='drivers/gpio/gpio-mmio.c' line='599' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpio/gpio-mmio.c' line='599' column='1'/>
+        <parameter type-id='7359adad' name='sz' filepath='drivers/gpio/gpio-mmio.c' line='600' column='1'/>
+        <parameter type-id='eaa32e2f' name='dat' filepath='drivers/gpio/gpio-mmio.c' line='600' column='1'/>
+        <parameter type-id='eaa32e2f' name='set' filepath='drivers/gpio/gpio-mmio.c' line='600' column='1'/>
+        <parameter type-id='eaa32e2f' name='clr' filepath='drivers/gpio/gpio-mmio.c' line='601' column='1'/>
+        <parameter type-id='eaa32e2f' name='dirout' filepath='drivers/gpio/gpio-mmio.c' line='601' column='1'/>
+        <parameter type-id='eaa32e2f' name='dirin' filepath='drivers/gpio/gpio-mmio.c' line='601' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/gpio/gpio-mmio.c' line='602' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bin2hex' mangled-name='bin2hex' filepath='lib/hexdump.c' line='95' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bin2hex'>
+        <parameter type-id='26a90f95' name='dst' filepath='lib/hexdump.c' line='95' column='1'/>
+        <parameter type-id='eaa32e2f' name='src' filepath='lib/hexdump.c' line='95' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/hexdump.c' line='95' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='bio_add_page' mangled-name='bio_add_page' filepath='block/bio.c' line='1009' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_add_page'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/bio.c' line='1009' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='block/bio.c' line='1009' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='block/bio.c' line='1010' column='1'/>
+        <parameter type-id='f0981eeb' name='offset' filepath='block/bio.c' line='1010' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bio_alloc_bioset' mangled-name='bio_alloc_bioset' filepath='block/bio.c' line='434' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_alloc_bioset'>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='block/bio.c' line='434' column='1'/>
+        <parameter type-id='8efea9e5' name='nr_iovecs' filepath='block/bio.c' line='434' column='1'/>
+        <parameter type-id='38b1e3a0' name='bs' filepath='block/bio.c' line='435' column='1'/>
+        <return type-id='fb55efa1'/>
+      </function-decl>
+      <function-decl name='bio_associate_blkg' mangled-name='bio_associate_blkg' filepath='block/blk-cgroup.c' line='1869' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_associate_blkg'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-cgroup.c' line='1869' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bio_associate_blkg_from_css' mangled-name='bio_associate_blkg_from_css' filepath='block/blk-cgroup.c' line='1845' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_associate_blkg_from_css'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-cgroup.c' line='1845' column='1'/>
+        <parameter type-id='cfff5953' name='css' filepath='block/blk-cgroup.c' line='1846' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bio_chain' mangled-name='bio_chain' filepath='block/bio.c' line='338' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_chain'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/bio.c' line='338' column='1'/>
+        <parameter type-id='fb55efa1' name='parent' filepath='block/bio.c' line='338' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bio_clone_blkg_association' mangled-name='bio_clone_blkg_association' filepath='block/blk-cgroup.c' line='1891' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_clone_blkg_association'>
+        <parameter type-id='fb55efa1' name='dst' filepath='block/blk-cgroup.c' line='1891' column='1'/>
+        <parameter type-id='fb55efa1' name='src' filepath='block/blk-cgroup.c' line='1891' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bio_clone_fast' mangled-name='bio_clone_fast' filepath='block/bio.c' line='749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_clone_fast'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/bio.c' line='749' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='block/bio.c' line='749' column='1'/>
+        <parameter type-id='38b1e3a0' name='bs' filepath='block/bio.c' line='749' column='1'/>
+        <return type-id='fb55efa1'/>
+      </function-decl>
+      <function-decl name='bio_crypt_set_ctx' mangled-name='bio_crypt_set_ctx' filepath='block/blk-crypto.c' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_crypt_set_ctx'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-crypto.c' line='82' column='1'/>
+        <parameter type-id='9baaf905' name='key' filepath='block/blk-crypto.c' line='82' column='1'/>
+        <parameter type-id='c8fec899' name='dun' filepath='block/blk-crypto.c' line='83' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='block/blk-crypto.c' line='83' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bio_end_io_acct_remapped' mangled-name='bio_end_io_acct_remapped' filepath='block/blk-core.c' line='1362' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_end_io_acct_remapped'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1362' column='1'/>
+        <parameter type-id='7359adad' name='start_time' filepath='block/blk-core.c' line='1362' column='1'/>
+        <parameter type-id='b88dd945' name='orig_bdev' filepath='block/blk-core.c' line='1363' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bio_endio' mangled-name='bio_endio' filepath='block/bio.c' line='1447' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_endio'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/bio.c' line='1447' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bio_init' mangled-name='bio_init' filepath='block/bio.c' line='251' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_init'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/bio.c' line='251' column='1'/>
+        <parameter type-id='cddcb53e' name='table' filepath='block/bio.c' line='251' column='1'/>
+        <parameter type-id='8efea9e5' name='max_vecs' filepath='block/bio.c' line='252' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bio_put' mangled-name='bio_put' filepath='block/bio.c' line='682' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_put'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/bio.c' line='682' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bio_split' mangled-name='bio_split' filepath='block/bio.c' line='1497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_split'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/bio.c' line='1497' column='1'/>
+        <parameter type-id='95e97e5e' name='sectors' filepath='block/bio.c' line='1497' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='block/bio.c' line='1498' column='1'/>
+        <parameter type-id='38b1e3a0' name='bs' filepath='block/bio.c' line='1498' column='1'/>
+        <return type-id='fb55efa1'/>
+      </function-decl>
+      <function-decl name='bio_start_io_acct' mangled-name='bio_start_io_acct' filepath='block/blk-core.c' line='1334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_start_io_acct'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1334' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='bioset_exit' mangled-name='bioset_exit' filepath='block/bio.c' line='1571' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bioset_exit'>
+        <parameter type-id='38b1e3a0' name='bs' filepath='block/bio.c' line='1571' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bioset_init' mangled-name='bioset_init' filepath='block/bio.c' line='1609' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bioset_init'>
+        <parameter type-id='38b1e3a0' name='bs' filepath='block/bio.c' line='1609' column='1'/>
+        <parameter type-id='f0981eeb' name='pool_size' filepath='block/bio.c' line='1610' column='1'/>
+        <parameter type-id='f0981eeb' name='front_pad' filepath='block/bio.c' line='1611' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='block/bio.c' line='1612' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bit_wait' mangled-name='bit_wait' filepath='kernel/sched/wait_bit.c' line='197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bit_wait'>
+        <parameter type-id='307d4a12' name='word' filepath='kernel/sched/wait_bit.c' line='197' column='1'/>
+        <parameter type-id='95e97e5e' name='mode' filepath='kernel/sched/wait_bit.c' line='197' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bit_wait_timeout' mangled-name='bit_wait_timeout' filepath='kernel/sched/wait_bit.c' line='217' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bit_wait_timeout'>
+        <parameter type-id='307d4a12' name='word' filepath='kernel/sched/wait_bit.c' line='217' column='1'/>
+        <parameter type-id='95e97e5e' name='mode' filepath='kernel/sched/wait_bit.c' line='217' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bit_waitqueue' mangled-name='bit_waitqueue' filepath='kernel/sched/wait_bit.c' line='12' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bit_waitqueue'>
+        <parameter type-id='eaa32e2f' name='word' filepath='kernel/sched/wait_bit.c' line='12' column='1'/>
+        <parameter type-id='95e97e5e' name='bit' filepath='kernel/sched/wait_bit.c' line='12' column='1'/>
+        <return type-id='3f8b2ed3'/>
+      </function-decl>
+      <function-decl name='bitmap_alloc' mangled-name='bitmap_alloc' filepath='lib/bitmap.c' line='1388' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bitmap_alloc'>
+        <parameter type-id='f0981eeb' name='nbits' filepath='lib/bitmap.c' line='1388' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='lib/bitmap.c' line='1388' column='1'/>
+        <return type-id='1d2c2b85'/>
+      </function-decl>
+      <function-decl name='bitmap_allocate_region' mangled-name='bitmap_allocate_region' filepath='lib/bitmap.c' line='1357' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bitmap_allocate_region'>
+        <parameter type-id='1d2c2b85' name='bitmap' filepath='lib/bitmap.c' line='1357' column='1'/>
+        <parameter type-id='f0981eeb' name='pos' filepath='lib/bitmap.c' line='1357' column='1'/>
+        <parameter type-id='95e97e5e' name='order' filepath='lib/bitmap.c' line='1357' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bitmap_find_free_region' mangled-name='bitmap_find_free_region' filepath='lib/bitmap.c' line='1315' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bitmap_find_free_region'>
+        <parameter type-id='1d2c2b85' name='bitmap' filepath='lib/bitmap.c' line='1315' column='1'/>
+        <parameter type-id='f0981eeb' name='bits' filepath='lib/bitmap.c' line='1315' column='1'/>
+        <parameter type-id='95e97e5e' name='order' filepath='lib/bitmap.c' line='1315' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bitmap_find_next_zero_area_off' mangled-name='bitmap_find_next_zero_area_off' filepath='lib/bitmap.c' line='406' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bitmap_find_next_zero_area_off'>
+        <parameter type-id='1d2c2b85' name='map' filepath='lib/bitmap.c' line='406' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='lib/bitmap.c' line='407' column='1'/>
+        <parameter type-id='7359adad' name='start' filepath='lib/bitmap.c' line='408' column='1'/>
+        <parameter type-id='f0981eeb' name='nr' filepath='lib/bitmap.c' line='409' column='1'/>
+        <parameter type-id='7359adad' name='align_mask' filepath='lib/bitmap.c' line='410' column='1'/>
+        <parameter type-id='7359adad' name='align_offset' filepath='lib/bitmap.c' line='411' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='bitmap_free' mangled-name='bitmap_free' filepath='lib/bitmap.c' line='1401' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bitmap_free'>
+        <parameter type-id='f9b37274' name='bitmap' filepath='lib/bitmap.c' line='1401' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bitmap_from_arr32' mangled-name='bitmap_from_arr32' filepath='lib/bitmap.c' line='1446' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bitmap_from_arr32'>
+        <parameter type-id='1d2c2b85' name='bitmap' filepath='lib/bitmap.c' line='1446' column='1'/>
+        <parameter type-id='aded214c' name='buf' filepath='lib/bitmap.c' line='1446' column='1'/>
+        <parameter type-id='f0981eeb' name='nbits' filepath='lib/bitmap.c' line='1446' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bitmap_parse' mangled-name='bitmap_parse' filepath='lib/bitmap.c' line='878' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bitmap_parse'>
+        <parameter type-id='80f4b756' name='start' filepath='lib/bitmap.c' line='878' column='1'/>
+        <parameter type-id='f0981eeb' name='buflen' filepath='lib/bitmap.c' line='878' column='1'/>
+        <parameter type-id='1d2c2b85' name='maskp' filepath='lib/bitmap.c' line='879' column='1'/>
+        <parameter type-id='95e97e5e' name='nmaskbits' filepath='lib/bitmap.c' line='879' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bitmap_parselist' mangled-name='bitmap_parselist' filepath='lib/bitmap.c' line='780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bitmap_parselist'>
+        <parameter type-id='80f4b756' name='buf' filepath='lib/bitmap.c' line='780' column='1'/>
+        <parameter type-id='1d2c2b85' name='maskp' filepath='lib/bitmap.c' line='780' column='1'/>
+        <parameter type-id='95e97e5e' name='nmaskbits' filepath='lib/bitmap.c' line='780' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bitmap_print_to_pagebuf' mangled-name='bitmap_print_to_pagebuf' filepath='lib/bitmap.c' line='480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bitmap_print_to_pagebuf'>
+        <parameter type-id='b50a4934' name='list' filepath='lib/bitmap.c' line='480' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='lib/bitmap.c' line='480' column='1'/>
+        <parameter type-id='f9b37274' name='maskp' filepath='lib/bitmap.c' line='480' column='1'/>
+        <parameter type-id='95e97e5e' name='nmaskbits' filepath='lib/bitmap.c' line='481' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bitmap_release_region' mangled-name='bitmap_release_region' filepath='lib/bitmap.c' line='1340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bitmap_release_region'>
+        <parameter type-id='1d2c2b85' name='bitmap' filepath='lib/bitmap.c' line='1340' column='1'/>
+        <parameter type-id='f0981eeb' name='pos' filepath='lib/bitmap.c' line='1340' column='1'/>
+        <parameter type-id='95e97e5e' name='order' filepath='lib/bitmap.c' line='1340' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bitmap_to_arr32' mangled-name='bitmap_to_arr32' filepath='lib/bitmap.c' line='1469' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bitmap_to_arr32'>
+        <parameter type-id='f9409001' name='buf' filepath='lib/bitmap.c' line='1469' column='1'/>
+        <parameter type-id='f9b37274' name='bitmap' filepath='lib/bitmap.c' line='1469' column='1'/>
+        <parameter type-id='f0981eeb' name='nbits' filepath='lib/bitmap.c' line='1469' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bitmap_zalloc' mangled-name='bitmap_zalloc' filepath='lib/bitmap.c' line='1395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bitmap_zalloc'>
+        <parameter type-id='f0981eeb' name='nbits' filepath='lib/bitmap.c' line='1395' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='lib/bitmap.c' line='1395' column='1'/>
+        <return type-id='1d2c2b85'/>
+      </function-decl>
+      <function-decl name='blk_bio_list_merge' mangled-name='blk_bio_list_merge' filepath='block/blk-merge.c' line='1106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_bio_list_merge'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-merge.c' line='1106' column='1'/>
+        <parameter type-id='e84b031a' name='list' filepath='block/blk-merge.c' line='1106' column='1'/>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-merge.c' line='1107' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_segs' filepath='block/blk-merge.c' line='1107' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='blk_cleanup_disk' mangled-name='blk_cleanup_disk' filepath='block/genhd.c' line='1377' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_cleanup_disk'>
+        <parameter type-id='33c599da' name='disk' filepath='block/genhd.c' line='1377' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_cleanup_queue' mangled-name='blk_cleanup_queue' filepath='block/blk-core.c' line='373' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_cleanup_queue'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-core.c' line='373' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_execute_rq' mangled-name='blk_execute_rq' filepath='block/blk-exec.c' line='90' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_execute_rq'>
+        <parameter type-id='33c599da' name='bd_disk' filepath='block/blk-exec.c' line='90' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-exec.c' line='90' column='1'/>
+        <parameter type-id='95e97e5e' name='at_head' filepath='block/blk-exec.c' line='90' column='1'/>
+        <return type-id='f4e2facd'/>
+      </function-decl>
+      <function-decl name='blk_execute_rq_nowait' mangled-name='blk_execute_rq_nowait' filepath='block/blk-exec.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_execute_rq_nowait'>
+        <parameter type-id='33c599da' name='bd_disk' filepath='block/blk-exec.c' line='47' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-exec.c' line='47' column='1'/>
+        <parameter type-id='95e97e5e' name='at_head' filepath='block/blk-exec.c' line='48' column='1'/>
+        <parameter type-id='5afdaa66' name='done' filepath='block/blk-exec.c' line='48' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_finish_plug' mangled-name='blk_finish_plug' filepath='block/blk-core.c' line='1764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_finish_plug'>
+        <parameter type-id='39944481' name='plug' filepath='block/blk-core.c' line='1764' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_freeze_queue_start' mangled-name='blk_freeze_queue_start' filepath='block/blk-mq.c' line='137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_freeze_queue_start'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-mq.c' line='137' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_get_queue' mangled-name='blk_get_queue' filepath='block/blk-core.c' line='624' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_get_queue'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-core.c' line='624' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='blk_get_request' mangled-name='blk_get_request' filepath='block/blk-core.c' line='641' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_get_request'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-core.c' line='641' column='1'/>
+        <parameter type-id='f0981eeb' name='op' filepath='block/blk-core.c' line='641' column='1'/>
+        <parameter type-id='346d62be' name='flags' filepath='block/blk-core.c' line='642' column='1'/>
+        <return type-id='3dad1a48'/>
+      </function-decl>
+      <function-decl name='blk_ksm_get_slot_idx' mangled-name='blk_ksm_get_slot_idx' filepath='block/keyslot-manager.c' line='211' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_ksm_get_slot_idx'>
+        <parameter type-id='5b559658' name='slot' filepath='block/keyslot-manager.c' line='211' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='blk_ksm_init' mangled-name='blk_ksm_init' filepath='block/keyslot-manager.c' line='81' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_ksm_init'>
+        <parameter type-id='bf8a20d2' name='ksm' filepath='block/keyslot-manager.c' line='81' column='1'/>
+        <parameter type-id='f0981eeb' name='num_slots' filepath='block/keyslot-manager.c' line='81' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blk_ksm_init_passthrough' mangled-name='blk_ksm_init_passthrough' filepath='block/keyslot-manager.c' line='624' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_ksm_init_passthrough'>
+        <parameter type-id='bf8a20d2' name='ksm' filepath='block/keyslot-manager.c' line='624' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_ksm_register' mangled-name='blk_ksm_register' filepath='block/keyslot-manager.c' line='446' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_ksm_register'>
+        <parameter type-id='bf8a20d2' name='ksm' filepath='block/keyslot-manager.c' line='446' column='1'/>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/keyslot-manager.c' line='446' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='blk_ksm_reprogram_all_keys' mangled-name='blk_ksm_reprogram_all_keys' filepath='block/keyslot-manager.c' line='413' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_ksm_reprogram_all_keys'>
+        <parameter type-id='bf8a20d2' name='ksm' filepath='block/keyslot-manager.c' line='413' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mark_disk_dead' mangled-name='blk_mark_disk_dead' filepath='block/genhd.c' line='557' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mark_disk_dead'>
+        <parameter type-id='33c599da' name='disk' filepath='block/genhd.c' line='557' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_alloc_request' mangled-name='blk_mq_alloc_request' filepath='block/blk-mq.c' line='412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_alloc_request'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-mq.c' line='412' column='1'/>
+        <parameter type-id='f0981eeb' name='op' filepath='block/blk-mq.c' line='412' column='1'/>
+        <parameter type-id='346d62be' name='flags' filepath='block/blk-mq.c' line='413' column='1'/>
+        <return type-id='3dad1a48'/>
+      </function-decl>
+      <function-decl name='blk_mq_alloc_request_hctx' mangled-name='blk_mq_alloc_request_hctx' filepath='block/blk-mq.c' line='440' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_alloc_request_hctx'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-mq.c' line='440' column='1'/>
+        <parameter type-id='f0981eeb' name='op' filepath='block/blk-mq.c' line='441' column='1'/>
+        <parameter type-id='346d62be' name='flags' filepath='block/blk-mq.c' line='441' column='1'/>
+        <parameter type-id='f0981eeb' name='hctx_idx' filepath='block/blk-mq.c' line='441' column='1'/>
+        <return type-id='3dad1a48'/>
+      </function-decl>
+      <function-decl name='blk_mq_alloc_sq_tag_set' mangled-name='blk_mq_alloc_sq_tag_set' filepath='block/blk-mq.c' line='3578' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_alloc_sq_tag_set'>
+        <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3578' column='1'/>
+        <parameter type-id='e1962c5d' name='ops' filepath='block/blk-mq.c' line='3579' column='1'/>
+        <parameter type-id='f0981eeb' name='queue_depth' filepath='block/blk-mq.c' line='3579' column='1'/>
+        <parameter type-id='f0981eeb' name='set_flags' filepath='block/blk-mq.c' line='3580' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blk_mq_alloc_tag_set' mangled-name='blk_mq_alloc_tag_set' filepath='block/blk-mq.c' line='3481' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_alloc_tag_set'>
+        <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3481' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blk_mq_complete_request' mangled-name='blk_mq_complete_request' filepath='block/blk-mq.c' line='690' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_complete_request'>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-mq.c' line='690' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_complete_request_remote' mangled-name='blk_mq_complete_request_remote' filepath='block/blk-mq.c' line='659' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_complete_request_remote'>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-mq.c' line='659' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='blk_mq_debugfs_rq_show' mangled-name='blk_mq_debugfs_rq_show' filepath='block/blk-mq-debugfs.c' line='356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_debugfs_rq_show'>
+        <parameter type-id='f8dc9def' name='m' filepath='block/blk-mq-debugfs.c' line='356' column='1'/>
+        <parameter type-id='eaa32e2f' name='v' filepath='block/blk-mq-debugfs.c' line='356' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blk_mq_delay_kick_requeue_list' mangled-name='blk_mq_delay_kick_requeue_list' filepath='block/blk-mq.c' line='844' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_delay_kick_requeue_list'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-mq.c' line='844' column='1'/>
+        <parameter type-id='7359adad' name='msecs' filepath='block/blk-mq.c' line='845' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_end_request' mangled-name='blk_mq_end_request' filepath='block/blk-mq.c' line='576' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_end_request'>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-mq.c' line='576' column='1'/>
+        <parameter type-id='f4e2facd' name='error' filepath='block/blk-mq.c' line='576' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_free_request' mangled-name='blk_mq_free_request' filepath='block/blk-mq.c' line='520' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_free_request'>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-mq.c' line='520' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_free_tag_set' mangled-name='blk_mq_free_tag_set' filepath='block/blk-mq.c' line='3593' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_free_tag_set'>
+        <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3593' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_freeze_queue' mangled-name='blk_mq_freeze_queue' filepath='block/blk-mq.c' line='183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_freeze_queue'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-mq.c' line='183' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_freeze_queue_wait' mangled-name='blk_mq_freeze_queue_wait' filepath='block/blk-mq.c' line='151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_freeze_queue_wait'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-mq.c' line='151' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_freeze_queue_wait_timeout' mangled-name='blk_mq_freeze_queue_wait_timeout' filepath='block/blk-mq.c' line='157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_freeze_queue_wait_timeout'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-mq.c' line='157' column='1'/>
+        <parameter type-id='7359adad' name='timeout' filepath='block/blk-mq.c' line='158' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blk_mq_init_queue' mangled-name='blk_mq_init_queue' filepath='block/blk-mq.c' line='3144' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_init_queue'>
+        <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3144' column='1'/>
+        <return type-id='e7d2a5fc'/>
+      </function-decl>
+      <function-decl name='blk_mq_map_queues' mangled-name='blk_mq_map_queues' filepath='block/blk-mq-cpumap.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_map_queues'>
+        <parameter type-id='187ae308' name='qmap' filepath='block/blk-mq-cpumap.c' line='35' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blk_mq_pci_map_queues' mangled-name='blk_mq_pci_map_queues' filepath='block/blk-mq-pci.c' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_pci_map_queues'>
+        <parameter type-id='187ae308' name='qmap' filepath='block/blk-mq-pci.c' line='26' column='1'/>
+        <parameter type-id='85196e3f' name='pdev' filepath='block/blk-mq-pci.c' line='26' column='1'/>
+        <parameter type-id='95e97e5e' name='offset' filepath='block/blk-mq-pci.c' line='27' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blk_mq_queue_inflight' mangled-name='blk_mq_queue_inflight' filepath='block/blk-mq.c' line='880' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_queue_inflight'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-mq.c' line='880' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='blk_mq_quiesce_queue' mangled-name='blk_mq_quiesce_queue' filepath='block/blk-mq.c' line='232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_quiesce_queue'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-mq.c' line='232' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_requeue_request' mangled-name='blk_mq_requeue_request' filepath='block/blk-mq.c' line='765' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_requeue_request'>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-mq.c' line='765' column='1'/>
+        <parameter type-id='b50a4934' name='kick_requeue_list' filepath='block/blk-mq.c' line='765' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_rq_cpu' mangled-name='blk_mq_rq_cpu' filepath='block/blk-mq.c' line='4024' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_rq_cpu'>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-mq.c' line='4024' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='blk_mq_run_hw_queue' mangled-name='blk_mq_run_hw_queue' filepath='block/blk-mq.c' line='1609' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_run_hw_queue'>
+        <parameter type-id='a47d3467' name='hctx' filepath='block/blk-mq.c' line='1609' column='1'/>
+        <parameter type-id='b50a4934' name='async' filepath='block/blk-mq.c' line='1609' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_run_hw_queues' mangled-name='blk_mq_run_hw_queues' filepath='block/blk-mq.c' line='1672' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_run_hw_queues'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-mq.c' line='1672' column='1'/>
+        <parameter type-id='b50a4934' name='async' filepath='block/blk-mq.c' line='1672' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_sched_try_insert_merge' mangled-name='blk_mq_sched_try_insert_merge' filepath='block/blk-mq-sched.c' line='408' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_sched_try_insert_merge'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-mq-sched.c' line='408' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-mq-sched.c' line='408' column='1'/>
+        <parameter type-id='e84b031a' name='free' filepath='block/blk-mq-sched.c' line='409' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='blk_mq_sched_try_merge' mangled-name='blk_mq_sched_try_merge' filepath='block/blk-merge.c' line='1131' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_sched_try_merge'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-merge.c' line='1131' column='1'/>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-merge.c' line='1131' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_segs' filepath='block/blk-merge.c' line='1132' column='1'/>
+        <parameter type-id='79808846' name='merged_request' filepath='block/blk-merge.c' line='1132' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='blk_mq_start_request' mangled-name='blk_mq_start_request' filepath='block/blk-mq.c' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_start_request'>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-mq.c' line='725' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_start_stopped_hw_queues' mangled-name='blk_mq_start_stopped_hw_queues' filepath='block/blk-mq.c' line='1807' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_start_stopped_hw_queues'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-mq.c' line='1807' column='1'/>
+        <parameter type-id='b50a4934' name='async' filepath='block/blk-mq.c' line='1807' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_stop_hw_queue' mangled-name='blk_mq_stop_hw_queue' filepath='block/blk-mq.c' line='1752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_stop_hw_queue'>
+        <parameter type-id='a47d3467' name='hctx' filepath='block/blk-mq.c' line='1752' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_tag_to_rq' mangled-name='blk_mq_tag_to_rq' filepath='block/blk-mq.c' line='852' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_tag_to_rq'>
+        <parameter type-id='0461ecf5' name='tags' filepath='block/blk-mq.c' line='852' column='1'/>
+        <parameter type-id='f0981eeb' name='tag' filepath='block/blk-mq.c' line='852' column='1'/>
+        <return type-id='3dad1a48'/>
+      </function-decl>
+      <function-decl name='blk_mq_tagset_busy_iter' mangled-name='blk_mq_tagset_busy_iter' filepath='block/blk-mq-tag.c' line='379' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_tagset_busy_iter'>
+        <parameter type-id='cc26d15f' name='tagset' filepath='block/blk-mq-tag.c' line='379' column='1'/>
+        <parameter type-id='65a8a3df' name='fn' filepath='block/blk-mq-tag.c' line='380' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='block/blk-mq-tag.c' line='380' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_tagset_wait_completed_request' mangled-name='blk_mq_tagset_wait_completed_request' filepath='block/blk-mq-tag.c' line='409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_tagset_wait_completed_request'>
+        <parameter type-id='cc26d15f' name='tagset' filepath='block/blk-mq-tag.c' line='409' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_unfreeze_queue' mangled-name='blk_mq_unfreeze_queue' filepath='block/blk-mq.c' line='207' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_unfreeze_queue'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-mq.c' line='207' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_unquiesce_queue' mangled-name='blk_mq_unquiesce_queue' filepath='block/blk-mq.c' line='258' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_unquiesce_queue'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-mq.c' line='258' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_update_nr_hw_queues' mangled-name='blk_mq_update_nr_hw_queues' filepath='block/blk-mq.c' line='3805' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_update_nr_hw_queues'>
+        <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3805' column='1'/>
+        <parameter type-id='95e97e5e' name='nr_hw_queues' filepath='block/blk-mq.c' line='3805' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_mq_virtio_map_queues' mangled-name='blk_mq_virtio_map_queues' filepath='block/blk-mq-virtio.c' line='24' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_virtio_map_queues'>
+        <parameter type-id='187ae308' name='qmap' filepath='block/blk-mq-virtio.c' line='24' column='1'/>
+        <parameter type-id='5dbfcbb1' name='vdev' filepath='block/blk-mq-virtio.c' line='25' column='1'/>
+        <parameter type-id='95e97e5e' name='first_vec' filepath='block/blk-mq-virtio.c' line='25' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blk_op_str' mangled-name='blk_op_str' filepath='block/blk-core.c' line='166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_op_str'>
+        <parameter type-id='f0981eeb' name='op' filepath='block/blk-core.c' line='166' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='blk_pm_runtime_init' mangled-name='blk_pm_runtime_init' filepath='block/blk-pm.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_pm_runtime_init'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-pm.c' line='31' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='block/blk-pm.c' line='31' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_put_queue' mangled-name='blk_put_queue' filepath='block/blk-core.c' line='344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_put_queue'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-core.c' line='344' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_put_request' mangled-name='blk_put_request' filepath='block/blk-core.c' line='657' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_put_request'>
+        <parameter type-id='3dad1a48' name='req' filepath='block/blk-core.c' line='657' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_alignment_offset' mangled-name='blk_queue_alignment_offset' filepath='block/blk-settings.c' line='378' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_alignment_offset'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='378' column='1'/>
+        <parameter type-id='f0981eeb' name='offset' filepath='block/blk-settings.c' line='378' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_bounce_limit' mangled-name='blk_queue_bounce_limit' filepath='block/blk-settings.c' line='98' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_bounce_limit'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='98' column='1'/>
+        <parameter type-id='c663ed28' name='bounce' filepath='block/blk-settings.c' line='98' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_chunk_sectors' mangled-name='blk_queue_chunk_sectors' filepath='block/blk-settings.c' line='162' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_chunk_sectors'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='162' column='1'/>
+        <parameter type-id='f0981eeb' name='chunk_sectors' filepath='block/blk-settings.c' line='162' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_dma_alignment' mangled-name='blk_queue_dma_alignment' filepath='block/blk-settings.c' line='742' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_dma_alignment'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='742' column='1'/>
+        <parameter type-id='95e97e5e' name='mask' filepath='block/blk-settings.c' line='742' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_flag_clear' mangled-name='blk_queue_flag_clear' filepath='block/blk-core.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_flag_clear'>
+        <parameter type-id='f0981eeb' name='flag' filepath='block/blk-core.c' line='101' column='1'/>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-core.c' line='101' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_flag_set' mangled-name='blk_queue_flag_set' filepath='block/blk-core.c' line='90' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_flag_set'>
+        <parameter type-id='f0981eeb' name='flag' filepath='block/blk-core.c' line='90' column='1'/>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-core.c' line='90' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_flag_test_and_set' mangled-name='blk_queue_flag_test_and_set' filepath='block/blk-core.c' line='115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_flag_test_and_set'>
+        <parameter type-id='f0981eeb' name='flag' filepath='block/blk-core.c' line='115' column='1'/>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-core.c' line='115' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='blk_queue_io_min' mangled-name='blk_queue_io_min' filepath='block/blk-settings.c' line='437' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_io_min'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='437' column='1'/>
+        <parameter type-id='f0981eeb' name='min' filepath='block/blk-settings.c' line='437' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_io_opt' mangled-name='blk_queue_io_opt' filepath='block/blk-settings.c' line='475' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_io_opt'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='475' column='1'/>
+        <parameter type-id='f0981eeb' name='opt' filepath='block/blk-settings.c' line='475' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_logical_block_size' mangled-name='blk_queue_logical_block_size' filepath='block/blk-settings.c' line='304' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_logical_block_size'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='304' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='block/blk-settings.c' line='304' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_max_discard_sectors' mangled-name='blk_queue_max_discard_sectors' filepath='block/blk-settings.c' line='173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_max_discard_sectors'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='173' column='1'/>
+        <parameter type-id='f0981eeb' name='max_discard_sectors' filepath='block/blk-settings.c' line='174' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_max_discard_segments' mangled-name='blk_queue_max_discard_segments' filepath='block/blk-settings.c' line='263' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_max_discard_segments'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='263' column='1'/>
+        <parameter type-id='8efea9e5' name='max_segments' filepath='block/blk-settings.c' line='264' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_max_hw_sectors' mangled-name='blk_queue_max_hw_sectors' filepath='block/blk-settings.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_max_hw_sectors'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='123' column='1'/>
+        <parameter type-id='f0981eeb' name='max_hw_sectors' filepath='block/blk-settings.c' line='123' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_max_segment_size' mangled-name='blk_queue_max_segment_size' filepath='block/blk-settings.c' line='279' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_max_segment_size'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='279' column='1'/>
+        <parameter type-id='f0981eeb' name='max_size' filepath='block/blk-settings.c' line='279' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_max_segments' mangled-name='blk_queue_max_segments' filepath='block/blk-settings.c' line='242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_max_segments'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='242' column='1'/>
+        <parameter type-id='8efea9e5' name='max_segments' filepath='block/blk-settings.c' line='242' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_max_write_same_sectors' mangled-name='blk_queue_max_write_same_sectors' filepath='block/blk-settings.c' line='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_max_write_same_sectors'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='186' column='1'/>
+        <parameter type-id='f0981eeb' name='max_write_same_sectors' filepath='block/blk-settings.c' line='187' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_max_write_zeroes_sectors' mangled-name='blk_queue_max_write_zeroes_sectors' filepath='block/blk-settings.c' line='199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_max_write_zeroes_sectors'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='199' column='1'/>
+        <parameter type-id='f0981eeb' name='max_write_zeroes_sectors' filepath='block/blk-settings.c' line='200' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_physical_block_size' mangled-name='blk_queue_physical_block_size' filepath='block/blk-settings.c' line='333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_physical_block_size'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='333' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='block/blk-settings.c' line='333' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_rq_timeout' mangled-name='blk_queue_rq_timeout' filepath='block/blk-settings.c' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_rq_timeout'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='21' column='1'/>
+        <parameter type-id='f0981eeb' name='timeout' filepath='block/blk-settings.c' line='21' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_split' mangled-name='blk_queue_split' filepath='block/blk-merge.c' line='379' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_split'>
+        <parameter type-id='334817d1' name='bio' filepath='block/blk-merge.c' line='379' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_update_dma_alignment' mangled-name='blk_queue_update_dma_alignment' filepath='block/blk-settings.c' line='762' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_update_dma_alignment'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='762' column='1'/>
+        <parameter type-id='95e97e5e' name='mask' filepath='block/blk-settings.c' line='762' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_update_dma_pad' mangled-name='blk_queue_update_dma_pad' filepath='block/blk-settings.c' line='688' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_update_dma_pad'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='688' column='1'/>
+        <parameter type-id='f0981eeb' name='mask' filepath='block/blk-settings.c' line='688' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_virt_boundary' mangled-name='blk_queue_virt_boundary' filepath='block/blk-settings.c' line='717' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_virt_boundary'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='717' column='1'/>
+        <parameter type-id='7359adad' name='mask' filepath='block/blk-settings.c' line='717' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_queue_write_cache' mangled-name='blk_queue_write_cache' filepath='block/blk-settings.c' line='792' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_write_cache'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-settings.c' line='792' column='1'/>
+        <parameter type-id='b50a4934' name='wc' filepath='block/blk-settings.c' line='792' column='1'/>
+        <parameter type-id='b50a4934' name='fua' filepath='block/blk-settings.c' line='792' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_rq_map_kern' mangled-name='blk_rq_map_kern' filepath='block/blk-map.c' line='625' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_rq_map_kern'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-map.c' line='625' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-map.c' line='625' column='1'/>
+        <parameter type-id='eaa32e2f' name='kbuf' filepath='block/blk-map.c' line='625' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='block/blk-map.c' line='626' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='block/blk-map.c' line='626' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blk_rq_map_user' mangled-name='blk_rq_map_user' filepath='block/blk-map.c' line='565' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_rq_map_user'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-map.c' line='565' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-map.c' line='565' column='1'/>
+        <parameter type-id='9c9d090c' name='map_data' filepath='block/blk-map.c' line='566' column='1'/>
+        <parameter type-id='eaa32e2f' name='ubuf' filepath='block/blk-map.c' line='566' column='1'/>
+        <parameter type-id='7359adad' name='len' filepath='block/blk-map.c' line='567' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='block/blk-map.c' line='567' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blk_rq_map_user_iov' mangled-name='blk_rq_map_user_iov' filepath='block/blk-map.c' line='521' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_rq_map_user_iov'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-map.c' line='521' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-map.c' line='521' column='1'/>
+        <parameter type-id='9c9d090c' name='map_data' filepath='block/blk-map.c' line='522' column='1'/>
+        <parameter type-id='ab3e2665' name='iter' filepath='block/blk-map.c' line='523' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='block/blk-map.c' line='523' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blk_rq_unmap_user' mangled-name='blk_rq_unmap_user' filepath='block/blk-map.c' line='589' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_rq_unmap_user'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-map.c' line='589' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blk_set_stacking_limits' mangled-name='blk_set_stacking_limits' filepath='block/blk-settings.c' line='71' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_set_stacking_limits'>
+        <parameter type-id='7604ff1d' name='lim' filepath='block/blk-settings.c' line='71' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_start_plug' mangled-name='blk_start_plug' filepath='block/blk-core.c' line='1680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_start_plug'>
+        <parameter type-id='39944481' name='plug' filepath='block/blk-core.c' line='1680' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_stat_enable_accounting' mangled-name='blk_stat_enable_accounting' filepath='block/blk-stat.c' line='187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_stat_enable_accounting'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-stat.c' line='187' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_status_to_errno' mangled-name='blk_status_to_errno' filepath='block/blk-core.c' line='218' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_status_to_errno'>
+        <parameter type-id='f4e2facd' name='status' filepath='block/blk-core.c' line='218' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blk_sync_queue' mangled-name='blk_sync_queue' filepath='block/blk-core.c' line='306' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_sync_queue'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-core.c' line='306' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blk_update_request' mangled-name='blk_update_request' filepath='block/blk-core.c' line='1419' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_update_request'>
+        <parameter type-id='3dad1a48' name='req' filepath='block/blk-core.c' line='1419' column='1'/>
+        <parameter type-id='f4e2facd' name='error' filepath='block/blk-core.c' line='1419' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_bytes' filepath='block/blk-core.c' line='1420' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='blkcg_activate_policy' mangled-name='blkcg_activate_policy' filepath='block/blk-cgroup.c' line='1300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_activate_policy'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-cgroup.c' line='1300' column='1'/>
+        <parameter type-id='0d87d4f6' name='pol' filepath='block/blk-cgroup.c' line='1301' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blkcg_deactivate_policy' mangled-name='blkcg_deactivate_policy' filepath='block/blk-cgroup.c' line='1407' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_deactivate_policy'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-cgroup.c' line='1407' column='1'/>
+        <parameter type-id='0d87d4f6' name='pol' filepath='block/blk-cgroup.c' line='1408' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blkcg_policy_register' mangled-name='blkcg_policy_register' filepath='block/blk-cgroup.c' line='1449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_policy_register'>
+        <parameter type-id='b31a5ea1' name='pol' filepath='block/blk-cgroup.c' line='1449' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blkcg_policy_unregister' mangled-name='blkcg_policy_unregister' filepath='block/blk-cgroup.c' line='1528' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_policy_unregister'>
+        <parameter type-id='b31a5ea1' name='pol' filepath='block/blk-cgroup.c' line='1528' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blkcg_print_blkgs' mangled-name='blkcg_print_blkgs' filepath='block/blk-cgroup.c' line='515' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_print_blkgs'>
+        <parameter type-id='f8dc9def' name='sf' filepath='block/blk-cgroup.c' line='515' column='1'/>
+        <parameter type-id='11bff950' name='blkcg' filepath='block/blk-cgroup.c' line='515' column='1'/>
+        <parameter type-id='c2d8e88b' name='prfill' filepath='block/blk-cgroup.c' line='516' column='1'/>
+        <parameter type-id='0d87d4f6' name='pol' filepath='block/blk-cgroup.c' line='518' column='1'/>
+        <parameter type-id='95e97e5e' name='data' filepath='block/blk-cgroup.c' line='518' column='1'/>
+        <parameter type-id='b50a4934' name='show_total' filepath='block/blk-cgroup.c' line='519' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='blkcg_root' type-id='19b26952' mangled-name='blkcg_root' visibility='default' filepath='block/blk-cgroup.c' line='46' column='1' elf-symbol-id='blkcg_root'/>
+      <function-decl name='blkdev_compat_ptr_ioctl' mangled-name='blkdev_compat_ptr_ioctl' filepath='block/ioctl.c' line='241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkdev_compat_ptr_ioctl'>
+        <parameter type-id='b88dd945' name='bdev' filepath='block/ioctl.c' line='241' column='1'/>
+        <parameter type-id='2665334e' name='mode' filepath='block/ioctl.c' line='241' column='1'/>
+        <parameter type-id='f0981eeb' name='cmd' filepath='block/ioctl.c' line='242' column='1'/>
+        <parameter type-id='7359adad' name='arg' filepath='block/ioctl.c' line='242' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blkdev_get_by_dev' mangled-name='blkdev_get_by_dev' filepath='block/bdev.c' line='790' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkdev_get_by_dev'>
+        <parameter type-id='8504f260' name='dev' filepath='block/bdev.c' line='790' column='1'/>
+        <parameter type-id='2665334e' name='mode' filepath='block/bdev.c' line='790' column='1'/>
+        <parameter type-id='eaa32e2f' name='holder' filepath='block/bdev.c' line='790' column='1'/>
+        <return type-id='b88dd945'/>
+      </function-decl>
+      <function-decl name='blkdev_get_by_path' mangled-name='blkdev_get_by_path' filepath='block/bdev.c' line='877' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkdev_get_by_path'>
+        <parameter type-id='80f4b756' name='path' filepath='block/bdev.c' line='877' column='1'/>
+        <parameter type-id='2665334e' name='mode' filepath='block/bdev.c' line='877' column='1'/>
+        <parameter type-id='eaa32e2f' name='holder' filepath='block/bdev.c' line='878' column='1'/>
+        <return type-id='b88dd945'/>
+      </function-decl>
+      <function-decl name='blkdev_issue_discard' mangled-name='blkdev_issue_discard' filepath='block/blk-lib.c' line='132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkdev_issue_discard'>
+        <parameter type-id='b88dd945' name='bdev' filepath='block/blk-lib.c' line='132' column='1'/>
+        <parameter type-id='a42536cd' name='sector' filepath='block/blk-lib.c' line='132' column='1'/>
+        <parameter type-id='a42536cd' name='nr_sects' filepath='block/blk-lib.c' line='133' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='block/blk-lib.c' line='133' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='block/blk-lib.c' line='133' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blkdev_issue_flush' mangled-name='blkdev_issue_flush' filepath='block/blk-flush.c' line='453' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkdev_issue_flush'>
+        <parameter type-id='b88dd945' name='bdev' filepath='block/blk-flush.c' line='453' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blkdev_issue_zeroout' mangled-name='blkdev_issue_zeroout' filepath='block/blk-lib.c' line='393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkdev_issue_zeroout'>
+        <parameter type-id='b88dd945' name='bdev' filepath='block/blk-lib.c' line='393' column='1'/>
+        <parameter type-id='a42536cd' name='sector' filepath='block/blk-lib.c' line='393' column='1'/>
+        <parameter type-id='a42536cd' name='nr_sects' filepath='block/blk-lib.c' line='394' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='block/blk-lib.c' line='394' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='block/blk-lib.c' line='394' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blkdev_put' mangled-name='blkdev_put' filepath='block/bdev.c' line='898' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkdev_put'>
+        <parameter type-id='b88dd945' name='bdev' filepath='block/bdev.c' line='898' column='1'/>
+        <parameter type-id='2665334e' name='mode' filepath='block/bdev.c' line='898' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blkg_conf_finish' mangled-name='blkg_conf_finish' filepath='block/blk-cgroup.c' line='749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_conf_finish'>
+        <parameter type-id='c6db53f8' name='ctx' filepath='block/blk-cgroup.c' line='749' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blkg_conf_prep' mangled-name='blkg_conf_prep' filepath='block/blk-cgroup.c' line='621' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_conf_prep'>
+        <parameter type-id='11bff950' name='blkcg' filepath='block/blk-cgroup.c' line='621' column='1'/>
+        <parameter type-id='0d87d4f6' name='pol' filepath='block/blk-cgroup.c' line='621' column='1'/>
+        <parameter type-id='26a90f95' name='input' filepath='block/blk-cgroup.c' line='622' column='1'/>
+        <parameter type-id='c6db53f8' name='ctx' filepath='block/blk-cgroup.c' line='622' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blkg_lookup_slowpath' mangled-name='blkg_lookup_slowpath' filepath='block/blk-cgroup.c' line='204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_lookup_slowpath'>
+        <parameter type-id='11bff950' name='blkcg' filepath='block/blk-cgroup.c' line='204' column='1'/>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-cgroup.c' line='205' column='1'/>
+        <parameter type-id='b50a4934' name='update_hint' filepath='block/blk-cgroup.c' line='205' column='1'/>
+        <return type-id='1146dea3'/>
+      </function-decl>
+      <function-decl name='blkg_prfill_rwstat' mangled-name='blkg_prfill_rwstat' filepath='block/blk-cgroup-rwstat.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_prfill_rwstat'>
+        <parameter type-id='f8dc9def' name='sf' filepath='block/blk-cgroup-rwstat.c' line='79' column='1'/>
+        <parameter type-id='3213e875' name='pd' filepath='block/blk-cgroup-rwstat.c' line='79' column='1'/>
+        <parameter type-id='95e97e5e' name='off' filepath='block/blk-cgroup-rwstat.c' line='80' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='blkg_rwstat_exit' mangled-name='blkg_rwstat_exit' filepath='block/blk-cgroup-rwstat.c' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_rwstat_exit'>
+        <parameter type-id='cbc1e303' name='rwstat' filepath='block/blk-cgroup-rwstat.c' line='25' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='blkg_rwstat_init' mangled-name='blkg_rwstat_init' filepath='block/blk-cgroup-rwstat.c' line='8' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_rwstat_init'>
+        <parameter type-id='cbc1e303' name='rwstat' filepath='block/blk-cgroup-rwstat.c' line='8' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='block/blk-cgroup-rwstat.c' line='8' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blkg_rwstat_recursive_sum' mangled-name='blkg_rwstat_recursive_sum' filepath='block/blk-cgroup-rwstat.c' line='103' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_rwstat_recursive_sum'>
+        <parameter type-id='1146dea3' name='blkg' filepath='block/blk-cgroup-rwstat.c' line='103' column='1'/>
+        <parameter type-id='b31a5ea1' name='pol' filepath='block/blk-cgroup-rwstat.c' line='103' column='1'/>
+        <parameter type-id='95e97e5e' name='off' filepath='block/blk-cgroup-rwstat.c' line='104' column='1'/>
+        <parameter type-id='7806f534' name='sum' filepath='block/blk-cgroup-rwstat.c' line='104' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='block_invalidatepage' mangled-name='block_invalidatepage' filepath='fs/buffer.c' line='1502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='block_invalidatepage'>
+        <parameter type-id='02f11ed4' name='page' filepath='fs/buffer.c' line='1502' column='1'/>
+        <parameter type-id='f0981eeb' name='offset' filepath='fs/buffer.c' line='1502' column='1'/>
+        <parameter type-id='f0981eeb' name='length' filepath='fs/buffer.c' line='1503' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='block_is_partially_uptodate' mangled-name='block_is_partially_uptodate' filepath='fs/buffer.c' line='2216' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='block_is_partially_uptodate'>
+        <parameter type-id='02f11ed4' name='page' filepath='fs/buffer.c' line='2216' column='1'/>
+        <parameter type-id='7359adad' name='from' filepath='fs/buffer.c' line='2216' column='1'/>
+        <parameter type-id='7359adad' name='count' filepath='fs/buffer.c' line='2217' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='block_truncate_page' mangled-name='block_truncate_page' filepath='fs/buffer.c' line='2875' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='block_truncate_page'>
+        <parameter type-id='f57039f0' name='mapping' filepath='fs/buffer.c' line='2875' column='1'/>
+        <parameter type-id='69bf7bee' name='from' filepath='fs/buffer.c' line='2876' column='1'/>
+        <parameter type-id='05ca8778' name='get_block' filepath='fs/buffer.c' line='2876' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='block_write_begin' mangled-name='block_write_begin' filepath='fs/buffer.c' line='2111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='block_write_begin'>
+        <parameter type-id='f57039f0' name='mapping' filepath='fs/buffer.c' line='2111' column='1'/>
+        <parameter type-id='69bf7bee' name='pos' filepath='fs/buffer.c' line='2111' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='fs/buffer.c' line='2111' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='fs/buffer.c' line='2112' column='1'/>
+        <parameter type-id='9f93c9da' name='pagep' filepath='fs/buffer.c' line='2112' column='1'/>
+        <parameter type-id='05ca8778' name='get_block' filepath='fs/buffer.c' line='2112' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='block_write_end' mangled-name='block_write_end' filepath='fs/buffer.c' line='2134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='block_write_end'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/buffer.c' line='2134' column='1'/>
+        <parameter type-id='f57039f0' name='mapping' filepath='fs/buffer.c' line='2134' column='1'/>
+        <parameter type-id='69bf7bee' name='pos' filepath='fs/buffer.c' line='2135' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='fs/buffer.c' line='2135' column='1'/>
+        <parameter type-id='f0981eeb' name='copied' filepath='fs/buffer.c' line='2135' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='fs/buffer.c' line='2136' column='1'/>
+        <parameter type-id='eaa32e2f' name='fsdata' filepath='fs/buffer.c' line='2136' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='block_write_full_page' mangled-name='block_write_full_page' filepath='fs/buffer.c' line='2954' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='block_write_full_page'>
+        <parameter type-id='02f11ed4' name='page' filepath='fs/buffer.c' line='2954' column='1'/>
+        <parameter type-id='05ca8778' name='get_block' filepath='fs/buffer.c' line='2954' column='1'/>
+        <parameter type-id='c2c60445' name='wbc' filepath='fs/buffer.c' line='2955' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='blockdev_superblock' type-id='42c8f564' mangled-name='blockdev_superblock' visibility='default' filepath='block/bdev.c' line='457' column='1' elf-symbol-id='blockdev_superblock'/>
+      <function-decl name='blocking_notifier_call_chain' mangled-name='blocking_notifier_call_chain' filepath='kernel/notifier.c' line='306' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blocking_notifier_call_chain'>
+        <parameter type-id='282b7312' name='nh' filepath='kernel/notifier.c' line='306' column='1'/>
+        <parameter type-id='7359adad' name='val' filepath='kernel/notifier.c' line='307' column='1'/>
+        <parameter type-id='eaa32e2f' name='v' filepath='kernel/notifier.c' line='307' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blocking_notifier_chain_register' mangled-name='blocking_notifier_chain_register' filepath='kernel/notifier.c' line='221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blocking_notifier_chain_register'>
+        <parameter type-id='282b7312' name='nh' filepath='kernel/notifier.c' line='221' column='1'/>
+        <parameter type-id='d504f73d' name='n' filepath='kernel/notifier.c' line='222' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='blocking_notifier_chain_unregister' mangled-name='blocking_notifier_chain_unregister' filepath='kernel/notifier.c' line='251' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blocking_notifier_chain_unregister'>
+        <parameter type-id='282b7312' name='nh' filepath='kernel/notifier.c' line='251' column='1'/>
+        <parameter type-id='d504f73d' name='n' filepath='kernel/notifier.c' line='252' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bmap' mangled-name='bmap' filepath='fs/inode.c' line='1709' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bmap'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='1709' column='1'/>
+        <parameter type-id='5c39fc92' name='block' filepath='fs/inode.c' line='1709' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bpf_dispatcher_xdp_func' mangled-name='bpf_dispatcher_xdp_func' filepath='net/core/filter.c' line='10686' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_dispatcher_xdp_func'>
+        <parameter type-id='eaa32e2f' name='ctx' filepath='net/core/filter.c' line='10686' column='1'/>
+        <parameter type-id='acada613' name='insnsi' filepath='net/core/filter.c' line='10686' column='1'/>
+        <parameter type-id='531a7450' name='bpf_func' filepath='net/core/filter.c' line='10686' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <var-decl name='bpf_master_redirect_enabled_key' type-id='237c0d27' mangled-name='bpf_master_redirect_enabled_key' visibility='default' filepath='net/core/filter.c' line='3952' column='1' elf-symbol-id='bpf_master_redirect_enabled_key'/>
+      <function-decl name='bpf_prog_add' mangled-name='bpf_prog_add' filepath='kernel/bpf/syscall.c' line='1922' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_add'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/bpf/syscall.c' line='1922' column='1'/>
+        <parameter type-id='95e97e5e' name='i' filepath='kernel/bpf/syscall.c' line='1922' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_prog_create' mangled-name='bpf_prog_create' filepath='net/core/filter.c' line='1359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_create'>
+        <parameter type-id='50b674cc' name='pfp' filepath='net/core/filter.c' line='1359' column='1'/>
+        <parameter type-id='e93ad915' name='fprog' filepath='net/core/filter.c' line='1359' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bpf_prog_destroy' mangled-name='bpf_prog_destroy' filepath='net/core/filter.c' line='1447' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_destroy'>
+        <parameter type-id='bdcee7ae' name='fp' filepath='net/core/filter.c' line='1447' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_prog_put' mangled-name='bpf_prog_put' filepath='kernel/bpf/syscall.c' line='1813' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_put'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/bpf/syscall.c' line='1813' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_prog_sub' mangled-name='bpf_prog_sub' filepath='kernel/bpf/syscall.c' line='1928' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_sub'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/bpf/syscall.c' line='1928' column='1'/>
+        <parameter type-id='95e97e5e' name='i' filepath='kernel/bpf/syscall.c' line='1928' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='bpf_stats_enabled_key' type-id='237c0d27' mangled-name='bpf_stats_enabled_key' visibility='default' filepath='kernel/bpf/core.c' line='2444' column='1' elf-symbol-id='bpf_stats_enabled_key'/>
+      <function-decl name='bpf_trace_run1' mangled-name='bpf_trace_run1' filepath='kernel/trace/bpf_trace.c' line='1915' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run1'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_trace_run10' mangled-name='bpf_trace_run10' filepath='kernel/trace/bpf_trace.c' line='1924' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run10'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1924' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1924' column='1'/>
+        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1924' column='1'/>
+        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1924' column='1'/>
+        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1924' column='1'/>
+        <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1924' column='1'/>
+        <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1924' column='1'/>
+        <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1924' column='1'/>
+        <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1924' column='1'/>
+        <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1924' column='1'/>
+        <parameter type-id='91ce1af9' name='arg9' filepath='kernel/trace/bpf_trace.c' line='1924' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_trace_run11' mangled-name='bpf_trace_run11' filepath='kernel/trace/bpf_trace.c' line='1925' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run11'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1925' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1925' column='1'/>
+        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1925' column='1'/>
+        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1925' column='1'/>
+        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1925' column='1'/>
+        <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1925' column='1'/>
+        <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1925' column='1'/>
+        <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1925' column='1'/>
+        <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1925' column='1'/>
+        <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1925' column='1'/>
+        <parameter type-id='91ce1af9' name='arg9' filepath='kernel/trace/bpf_trace.c' line='1925' column='1'/>
+        <parameter type-id='91ce1af9' name='arg10' filepath='kernel/trace/bpf_trace.c' line='1925' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_trace_run12' mangled-name='bpf_trace_run12' filepath='kernel/trace/bpf_trace.c' line='1926' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run12'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1926' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1926' column='1'/>
+        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1926' column='1'/>
+        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1926' column='1'/>
+        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1926' column='1'/>
+        <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1926' column='1'/>
+        <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1926' column='1'/>
+        <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1926' column='1'/>
+        <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1926' column='1'/>
+        <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1926' column='1'/>
+        <parameter type-id='91ce1af9' name='arg9' filepath='kernel/trace/bpf_trace.c' line='1926' column='1'/>
+        <parameter type-id='91ce1af9' name='arg10' filepath='kernel/trace/bpf_trace.c' line='1926' column='1'/>
+        <parameter type-id='91ce1af9' name='arg11' filepath='kernel/trace/bpf_trace.c' line='1926' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_trace_run2' mangled-name='bpf_trace_run2' filepath='kernel/trace/bpf_trace.c' line='1916' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run2'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_trace_run3' mangled-name='bpf_trace_run3' filepath='kernel/trace/bpf_trace.c' line='1917' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run3'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1917' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1917' column='1'/>
+        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1917' column='1'/>
+        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1917' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_trace_run4' mangled-name='bpf_trace_run4' filepath='kernel/trace/bpf_trace.c' line='1918' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run4'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1918' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1918' column='1'/>
+        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1918' column='1'/>
+        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1918' column='1'/>
+        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1918' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_trace_run5' mangled-name='bpf_trace_run5' filepath='kernel/trace/bpf_trace.c' line='1919' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run5'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1919' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1919' column='1'/>
+        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1919' column='1'/>
+        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1919' column='1'/>
+        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1919' column='1'/>
+        <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1919' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_trace_run6' mangled-name='bpf_trace_run6' filepath='kernel/trace/bpf_trace.c' line='1920' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run6'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1920' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1920' column='1'/>
+        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1920' column='1'/>
+        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1920' column='1'/>
+        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1920' column='1'/>
+        <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1920' column='1'/>
+        <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1920' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_trace_run7' mangled-name='bpf_trace_run7' filepath='kernel/trace/bpf_trace.c' line='1921' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run7'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1921' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1921' column='1'/>
+        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1921' column='1'/>
+        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1921' column='1'/>
+        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1921' column='1'/>
+        <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1921' column='1'/>
+        <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1921' column='1'/>
+        <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1921' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_trace_run8' mangled-name='bpf_trace_run8' filepath='kernel/trace/bpf_trace.c' line='1922' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run8'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1922' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1922' column='1'/>
+        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1922' column='1'/>
+        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1922' column='1'/>
+        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1922' column='1'/>
+        <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1922' column='1'/>
+        <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1922' column='1'/>
+        <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1922' column='1'/>
+        <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1922' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_trace_run9' mangled-name='bpf_trace_run9' filepath='kernel/trace/bpf_trace.c' line='1923' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run9'>
+        <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1923' column='1'/>
+        <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1923' column='1'/>
+        <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1923' column='1'/>
+        <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1923' column='1'/>
+        <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1923' column='1'/>
+        <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1923' column='1'/>
+        <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1923' column='1'/>
+        <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1923' column='1'/>
+        <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1923' column='1'/>
+        <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1923' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bpf_warn_invalid_xdp_action' mangled-name='bpf_warn_invalid_xdp_action' filepath='net/core/filter.c' line='8231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_warn_invalid_xdp_action'>
+        <parameter type-id='19c2251e' name='act' filepath='net/core/filter.c' line='8231' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='br_fdb_find_port' mangled-name='br_fdb_find_port' filepath='net/bridge/br_fdb.c' line='120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='br_fdb_find_port'>
+        <parameter type-id='2ce52478' name='br_dev' filepath='net/bridge/br_fdb.c' line='120' column='1'/>
+        <parameter type-id='354f7eb9' name='addr' filepath='net/bridge/br_fdb.c' line='121' column='1'/>
+        <parameter type-id='d315442e' name='vid' filepath='net/bridge/br_fdb.c' line='122' column='1'/>
+        <return type-id='68a2d05b'/>
+      </function-decl>
+      <function-decl name='bsearch' mangled-name='bsearch' filepath='lib/bsearch.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bsearch'>
+        <parameter type-id='eaa32e2f' name='key' filepath='lib/bsearch.c' line='31' column='1'/>
+        <parameter type-id='eaa32e2f' name='base' filepath='lib/bsearch.c' line='31' column='1'/>
+        <parameter type-id='b59d7dce' name='num' filepath='lib/bsearch.c' line='31' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='lib/bsearch.c' line='31' column='1'/>
+        <parameter type-id='a08bda3c' name='cmp' filepath='lib/bsearch.c' line='31' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='bsg_job_done' mangled-name='bsg_job_done' filepath='block/bsg-lib.c' line='182' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bsg_job_done'>
+        <parameter type-id='397dd6bb' name='job' filepath='block/bsg-lib.c' line='182' column='1'/>
+        <parameter type-id='95e97e5e' name='result' filepath='block/bsg-lib.c' line='182' column='1'/>
+        <parameter type-id='f0981eeb' name='reply_payload_rcv_len' filepath='block/bsg-lib.c' line='183' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bsg_remove_queue' mangled-name='bsg_remove_queue' filepath='block/bsg-lib.c' line='325' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bsg_remove_queue'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/bsg-lib.c' line='325' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bsg_setup_queue' mangled-name='bsg_setup_queue' filepath='block/bsg-lib.c' line='366' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bsg_setup_queue'>
+        <parameter type-id='fa0b179b' name='dev' filepath='block/bsg-lib.c' line='366' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='block/bsg-lib.c' line='366' column='1'/>
+        <parameter type-id='826d9136' name='job_fn' filepath='block/bsg-lib.c' line='367' column='1'/>
+        <parameter type-id='5646df36' name='timeout' filepath='block/bsg-lib.c' line='367' column='1'/>
+        <parameter type-id='95e97e5e' name='dd_job_size' filepath='block/bsg-lib.c' line='367' column='1'/>
+        <return type-id='e7d2a5fc'/>
+      </function-decl>
+      <function-decl name='bt_err' mangled-name='bt_err' filepath='net/bluetooth/lib.c' line='170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bt_err'>
+        <parameter type-id='80f4b756' name='format' filepath='net/bluetooth/lib.c' line='170' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bt_info' mangled-name='bt_info' filepath='net/bluetooth/lib.c' line='138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bt_info'>
+        <parameter type-id='80f4b756' name='format' filepath='net/bluetooth/lib.c' line='138' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bt_procfs_cleanup' mangled-name='bt_procfs_cleanup' filepath='net/bluetooth/af_bluetooth.c' line='690' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bt_procfs_cleanup'>
+        <parameter type-id='a2bff676' name='net' filepath='net/bluetooth/af_bluetooth.c' line='690' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='net/bluetooth/af_bluetooth.c' line='690' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bt_procfs_init' mangled-name='bt_procfs_init' filepath='net/bluetooth/af_bluetooth.c' line='679' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bt_procfs_init'>
+        <parameter type-id='a2bff676' name='net' filepath='net/bluetooth/af_bluetooth.c' line='679' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='net/bluetooth/af_bluetooth.c' line='679' column='1'/>
+        <parameter type-id='b3f47ee5' name='sk_list' filepath='net/bluetooth/af_bluetooth.c' line='680' column='1'/>
+        <parameter type-id='0131eb61' name='seq_show' filepath='net/bluetooth/af_bluetooth.c' line='681' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bt_sock_link' mangled-name='bt_sock_link' filepath='net/bluetooth/af_bluetooth.c' line='141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bt_sock_link'>
+        <parameter type-id='b3f47ee5' name='l' filepath='net/bluetooth/af_bluetooth.c' line='141' column='1'/>
+        <parameter type-id='f772df6d' name='sk' filepath='net/bluetooth/af_bluetooth.c' line='141' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bt_sock_register' mangled-name='bt_sock_register' filepath='net/bluetooth/af_bluetooth.c' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bt_sock_register'>
+        <parameter type-id='95e97e5e' name='proto' filepath='net/bluetooth/af_bluetooth.c' line='80' column='1'/>
+        <parameter type-id='81a51edb' name='ops' filepath='net/bluetooth/af_bluetooth.c' line='80' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bt_sock_unlink' mangled-name='bt_sock_unlink' filepath='net/bluetooth/af_bluetooth.c' line='149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bt_sock_unlink'>
+        <parameter type-id='b3f47ee5' name='l' filepath='net/bluetooth/af_bluetooth.c' line='149' column='1'/>
+        <parameter type-id='f772df6d' name='sk' filepath='net/bluetooth/af_bluetooth.c' line='149' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bt_sock_unregister' mangled-name='bt_sock_unregister' filepath='net/bluetooth/af_bluetooth.c' line='100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bt_sock_unregister'>
+        <parameter type-id='95e97e5e' name='proto' filepath='net/bluetooth/af_bluetooth.c' line='100' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bt_to_errno' mangled-name='bt_to_errno' filepath='net/bluetooth/lib.c' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bt_to_errno'>
+        <parameter type-id='d315442e' name='code' filepath='net/bluetooth/lib.c' line='45' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bt_warn' mangled-name='bt_warn' filepath='net/bluetooth/lib.c' line='154' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bt_warn'>
+        <parameter type-id='80f4b756' name='format' filepath='net/bluetooth/lib.c' line='154' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='btbcm_set_bdaddr' mangled-name='btbcm_set_bdaddr' filepath='drivers/bluetooth/btbcm.c' line='143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='btbcm_set_bdaddr'>
+        <parameter type-id='9ad862e7' name='hdev' filepath='drivers/bluetooth/btbcm.c' line='143' column='1'/>
+        <parameter type-id='c3e18af8' name='bdaddr' filepath='drivers/bluetooth/btbcm.c' line='143' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='btbcm_setup_apple' mangled-name='btbcm_setup_apple' filepath='drivers/bluetooth/btbcm.c' line='667' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='btbcm_setup_apple'>
+        <parameter type-id='9ad862e7' name='hdev' filepath='drivers/bluetooth/btbcm.c' line='667' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='btbcm_setup_patchram' mangled-name='btbcm_setup_patchram' filepath='drivers/bluetooth/btbcm.c' line='652' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='btbcm_setup_patchram'>
+        <parameter type-id='9ad862e7' name='hdev' filepath='drivers/bluetooth/btbcm.c' line='652' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='buffer_migrate_page' mangled-name='buffer_migrate_page' filepath='mm/migrate.c' line='790' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='buffer_migrate_page'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/migrate.c' line='790' column='1'/>
+        <parameter type-id='02f11ed4' name='newpage' filepath='mm/migrate.c' line='791' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/migrate.c' line='791' column='1'/>
+        <parameter type-id='157252dd' name='mode' filepath='mm/migrate.c' line='791' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='build_skb' mangled-name='build_skb' filepath='net/core/skbuff.c' line='257' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='build_skb'>
+        <parameter type-id='eaa32e2f' name='data' filepath='net/core/skbuff.c' line='257' column='1'/>
+        <parameter type-id='f0981eeb' name='frag_size' filepath='net/core/skbuff.c' line='257' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='bus_find_device' mangled-name='bus_find_device' filepath='drivers/base/bus.c' line='322' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bus_find_device'>
+        <parameter type-id='5e2671f8' name='bus' filepath='drivers/base/bus.c' line='322' column='1'/>
+        <parameter type-id='fa0b179b' name='start' filepath='drivers/base/bus.c' line='323' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/bus.c' line='323' column='1'/>
+        <parameter type-id='92d15ae9' name='match' filepath='drivers/base/bus.c' line='324' column='1'/>
+        <return type-id='fa0b179b'/>
+      </function-decl>
+      <function-decl name='bus_for_each_dev' mangled-name='bus_for_each_dev' filepath='drivers/base/bus.c' line='288' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bus_for_each_dev'>
+        <parameter type-id='5e2671f8' name='bus' filepath='drivers/base/bus.c' line='288' column='1'/>
+        <parameter type-id='fa0b179b' name='start' filepath='drivers/base/bus.c' line='288' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/bus.c' line='289' column='1'/>
+        <parameter type-id='92d15ae9' name='fn' filepath='drivers/base/bus.c' line='289' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bus_for_each_drv' mangled-name='bus_for_each_drv' filepath='drivers/base/bus.c' line='414' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bus_for_each_drv'>
+        <parameter type-id='5e2671f8' name='bus' filepath='drivers/base/bus.c' line='414' column='1'/>
+        <parameter type-id='00c7b870' name='start' filepath='drivers/base/bus.c' line='414' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/bus.c' line='415' column='1'/>
+        <parameter type-id='24a62f42' name='fn' filepath='drivers/base/bus.c' line='415' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bus_register' mangled-name='bus_register' filepath='drivers/base/bus.c' line='783' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bus_register'>
+        <parameter type-id='5e2671f8' name='bus' filepath='drivers/base/bus.c' line='783' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bus_register_notifier' mangled-name='bus_register_notifier' filepath='drivers/base/bus.c' line='882' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bus_register_notifier'>
+        <parameter type-id='5e2671f8' name='bus' filepath='drivers/base/bus.c' line='882' column='1'/>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/base/bus.c' line='882' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bus_set_iommu' mangled-name='bus_set_iommu' filepath='drivers/iommu/iommu.c' line='1904' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bus_set_iommu'>
+        <parameter type-id='5e2671f8' name='bus' filepath='drivers/iommu/iommu.c' line='1904' column='1'/>
+        <parameter type-id='f1ac64d0' name='ops' filepath='drivers/iommu/iommu.c' line='1904' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='bus_unregister' mangled-name='bus_unregister' filepath='drivers/base/bus.c' line='868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bus_unregister'>
+        <parameter type-id='5e2671f8' name='bus' filepath='drivers/base/bus.c' line='868' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='bus_unregister_notifier' mangled-name='bus_unregister_notifier' filepath='drivers/base/bus.c' line='888' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bus_unregister_notifier'>
+        <parameter type-id='5e2671f8' name='bus' filepath='drivers/base/bus.c' line='888' column='1'/>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/base/bus.c' line='888' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cache_line_size' mangled-name='cache_line_size' filepath='arch/arm64/kernel/cacheinfo.c' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cache_line_size'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='call_netdevice_notifiers' mangled-name='call_netdevice_notifiers' filepath='net/core/dev.c' line='2029' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_netdevice_notifiers'>
+        <parameter type-id='7359adad' name='val' filepath='net/core/dev.c' line='2029' column='1'/>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='2029' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='call_rcu' mangled-name='call_rcu' filepath='kernel/rcu/tree.c' line='3072' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu'>
+        <parameter type-id='69c138b1' name='head' filepath='kernel/rcu/tree.c' line='3072' column='1'/>
+        <parameter type-id='4edd56e3' name='func' filepath='kernel/rcu/tree.c' line='3072' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='call_rcu_tasks' mangled-name='call_rcu_tasks' filepath='kernel/rcu/tasks.h' line='565' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_tasks'>
+        <parameter type-id='69c138b1' name='rhp' filepath='kernel/rcu/tasks.h' line='565' column='1'/>
+        <parameter type-id='4edd56e3' name='func' filepath='kernel/rcu/tasks.h' line='565' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='call_rcu_tasks_trace' mangled-name='call_rcu_tasks_trace' filepath='kernel/rcu/tasks.h' line='1238' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_tasks_trace'>
+        <parameter type-id='69c138b1' name='rhp' filepath='kernel/rcu/tasks.h' line='1238' column='1'/>
+        <parameter type-id='4edd56e3' name='func' filepath='kernel/rcu/tasks.h' line='1238' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='call_srcu' mangled-name='call_srcu' filepath='kernel/rcu/srcutree.c' line='903' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_srcu'>
+        <parameter type-id='f7d7131a' name='ssp' filepath='kernel/rcu/srcutree.c' line='903' column='1'/>
+        <parameter type-id='69c138b1' name='rhp' filepath='kernel/rcu/srcutree.c' line='903' column='1'/>
+        <parameter type-id='4edd56e3' name='func' filepath='kernel/rcu/srcutree.c' line='904' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='can_bus_off' mangled-name='can_bus_off' filepath='drivers/net/can/dev/dev.c' line='208' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='can_bus_off'>
+        <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/can/dev/dev.c' line='208' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='can_change_mtu' mangled-name='can_change_mtu' filepath='drivers/net/can/dev/dev.c' line='300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='can_change_mtu'>
+        <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/can/dev/dev.c' line='300' column='1'/>
+        <parameter type-id='95e97e5e' name='new_mtu' filepath='drivers/net/can/dev/dev.c' line='300' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='can_change_state' mangled-name='can_change_state' filepath='drivers/net/can/dev/dev.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='can_change_state'>
+        <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/can/dev/dev.c' line='101' column='1'/>
+        <parameter type-id='ccff656f' name='cf' filepath='drivers/net/can/dev/dev.c' line='101' column='1'/>
+        <parameter type-id='8a54dc38' name='tx_state' filepath='drivers/net/can/dev/dev.c' line='102' column='1'/>
+        <parameter type-id='8a54dc38' name='rx_state' filepath='drivers/net/can/dev/dev.c' line='102' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='can_fd_dlc2len' mangled-name='can_fd_dlc2len' filepath='drivers/net/can/dev/length.c' line='15' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='can_fd_dlc2len'>
+        <parameter type-id='f9b06939' name='dlc' filepath='drivers/net/can/dev/length.c' line='15' column='1'/>
+        <return type-id='f9b06939'/>
+      </function-decl>
+      <function-decl name='can_fd_len2dlc' mangled-name='can_fd_len2dlc' filepath='drivers/net/can/dev/length.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='can_fd_len2dlc'>
+        <parameter type-id='f9b06939' name='len' filepath='drivers/net/can/dev/length.c' line='35' column='1'/>
+        <return type-id='f9b06939'/>
+      </function-decl>
+      <function-decl name='can_free_echo_skb' mangled-name='can_free_echo_skb' filepath='drivers/net/can/dev/skb.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='can_free_echo_skb'>
+        <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/can/dev/skb.c' line='156' column='1'/>
+        <parameter type-id='f0981eeb' name='idx' filepath='drivers/net/can/dev/skb.c' line='156' column='1'/>
+        <parameter type-id='807869d3' name='frame_len_ptr' filepath='drivers/net/can/dev/skb.c' line='157' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='can_get_echo_skb' mangled-name='can_get_echo_skb' filepath='drivers/net/can/dev/skb.c' line='132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='can_get_echo_skb'>
+        <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/can/dev/skb.c' line='132' column='1'/>
+        <parameter type-id='f0981eeb' name='idx' filepath='drivers/net/can/dev/skb.c' line='132' column='1'/>
+        <parameter type-id='807869d3' name='frame_len_ptr' filepath='drivers/net/can/dev/skb.c' line='133' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='can_put_echo_skb' mangled-name='can_put_echo_skb' filepath='drivers/net/can/dev/skb.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='can_put_echo_skb'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='drivers/net/can/dev/skb.c' line='40' column='1'/>
+        <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/can/dev/skb.c' line='40' column='1'/>
+        <parameter type-id='f0981eeb' name='idx' filepath='drivers/net/can/dev/skb.c' line='41' column='1'/>
+        <parameter type-id='f0981eeb' name='frame_len' filepath='drivers/net/can/dev/skb.c' line='41' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='can_rx_offload_add_manual' mangled-name='can_rx_offload_add_manual' filepath='drivers/net/can/dev/rx-offload.c' line='376' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='can_rx_offload_add_manual'>
+        <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/can/dev/rx-offload.c' line='376' column='1'/>
+        <parameter type-id='5b57b9a4' name='offload' filepath='drivers/net/can/dev/rx-offload.c' line='377' column='1'/>
+        <parameter type-id='f0981eeb' name='weight' filepath='drivers/net/can/dev/rx-offload.c' line='378' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='can_rx_offload_del' mangled-name='can_rx_offload_del' filepath='drivers/net/can/dev/rx-offload.c' line='393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='can_rx_offload_del'>
+        <parameter type-id='5b57b9a4' name='offload' filepath='drivers/net/can/dev/rx-offload.c' line='393' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='can_rx_offload_enable' mangled-name='can_rx_offload_enable' filepath='drivers/net/can/dev/rx-offload.c' line='387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='can_rx_offload_enable'>
+        <parameter type-id='5b57b9a4' name='offload' filepath='drivers/net/can/dev/rx-offload.c' line='387' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='can_rx_offload_get_echo_skb' mangled-name='can_rx_offload_get_echo_skb' filepath='drivers/net/can/dev/rx-offload.c' line='242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='can_rx_offload_get_echo_skb'>
+        <parameter type-id='5b57b9a4' name='offload' filepath='drivers/net/can/dev/rx-offload.c' line='242' column='1'/>
+        <parameter type-id='f0981eeb' name='idx' filepath='drivers/net/can/dev/rx-offload.c' line='243' column='1'/>
+        <parameter type-id='19c2251e' name='timestamp' filepath='drivers/net/can/dev/rx-offload.c' line='243' column='1'/>
+        <parameter type-id='807869d3' name='frame_len_ptr' filepath='drivers/net/can/dev/rx-offload.c' line='244' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='can_rx_offload_queue_sorted' mangled-name='can_rx_offload_queue_sorted' filepath='drivers/net/can/dev/rx-offload.c' line='221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='can_rx_offload_queue_sorted'>
+        <parameter type-id='5b57b9a4' name='offload' filepath='drivers/net/can/dev/rx-offload.c' line='221' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='drivers/net/can/dev/rx-offload.c' line='222' column='1'/>
+        <parameter type-id='19c2251e' name='timestamp' filepath='drivers/net/can/dev/rx-offload.c' line='222' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='can_rx_offload_threaded_irq_finish' mangled-name='can_rx_offload_threaded_irq_finish' filepath='drivers/net/can/dev/rx-offload.c' line='302' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='can_rx_offload_threaded_irq_finish'>
+        <parameter type-id='5b57b9a4' name='offload' filepath='drivers/net/can/dev/rx-offload.c' line='302' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='can_skb_get_frame_len' mangled-name='can_skb_get_frame_len' filepath='drivers/net/can/dev/length.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='can_skb_get_frame_len'>
+        <parameter type-id='11f4a000' name='skb' filepath='drivers/net/can/dev/length.c' line='69' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='cancel_delayed_work' mangled-name='cancel_delayed_work' filepath='kernel/workqueue.c' line='3300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cancel_delayed_work'>
+        <parameter type-id='1a7ee447' name='dwork' filepath='kernel/workqueue.c' line='3300' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='cancel_delayed_work_sync' mangled-name='cancel_delayed_work_sync' filepath='kernel/workqueue.c' line='3315' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cancel_delayed_work_sync'>
+        <parameter type-id='1a7ee447' name='dwork' filepath='kernel/workqueue.c' line='3315' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='cancel_work_sync' mangled-name='cancel_work_sync' filepath='kernel/workqueue.c' line='3219' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cancel_work_sync'>
+        <parameter type-id='83c1bde6' name='work' filepath='kernel/workqueue.c' line='3219' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='capable' mangled-name='capable' filepath='kernel/capability.c' line='447' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='capable'>
+        <parameter type-id='95e97e5e' name='cap' filepath='kernel/capability.c' line='447' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='capable_wrt_inode_uidgid' mangled-name='capable_wrt_inode_uidgid' filepath='kernel/capability.c' line='504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='capable_wrt_inode_uidgid'>
+        <parameter type-id='c0ced320' name='mnt_userns' filepath='kernel/capability.c' line='504' column='1'/>
+        <parameter type-id='c5a4eb7f' name='inode' filepath='kernel/capability.c' line='505' column='1'/>
+        <parameter type-id='95e97e5e' name='cap' filepath='kernel/capability.c' line='505' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='cdc_ncm_bind_common' mangled-name='cdc_ncm_bind_common' filepath='drivers/net/usb/cdc_ncm.c' line='819' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cdc_ncm_bind_common'>
+        <parameter type-id='12884b9a' name='dev' filepath='drivers/net/usb/cdc_ncm.c' line='819' column='1'/>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/net/usb/cdc_ncm.c' line='819' column='1'/>
+        <parameter type-id='f9b06939' name='data_altsetting' filepath='drivers/net/usb/cdc_ncm.c' line='819' column='1'/>
+        <parameter type-id='95e97e5e' name='drvflags' filepath='drivers/net/usb/cdc_ncm.c' line='819' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cdc_ncm_change_mtu' mangled-name='cdc_ncm_change_mtu' filepath='drivers/net/usb/cdc_ncm.c' line='796' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cdc_ncm_change_mtu'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/net/usb/cdc_ncm.c' line='796' column='1'/>
+        <parameter type-id='95e97e5e' name='new_mtu' filepath='drivers/net/usb/cdc_ncm.c' line='796' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cdc_ncm_fill_tx_frame' mangled-name='cdc_ncm_fill_tx_frame' filepath='drivers/net/usb/cdc_ncm.c' line='1199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cdc_ncm_fill_tx_frame'>
+        <parameter type-id='12884b9a' name='dev' filepath='drivers/net/usb/cdc_ncm.c' line='1199' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='drivers/net/usb/cdc_ncm.c' line='1199' column='1'/>
+        <parameter type-id='2f162548' name='sign' filepath='drivers/net/usb/cdc_ncm.c' line='1199' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='cdc_ncm_rx_verify_ndp16' mangled-name='cdc_ncm_rx_verify_ndp16' filepath='drivers/net/usb/cdc_ncm.c' line='1649' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cdc_ncm_rx_verify_ndp16'>
+        <parameter type-id='0fbf3cfd' name='skb_in' filepath='drivers/net/usb/cdc_ncm.c' line='1649' column='1'/>
+        <parameter type-id='95e97e5e' name='ndpoffset' filepath='drivers/net/usb/cdc_ncm.c' line='1649' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cdc_ncm_rx_verify_nth16' mangled-name='cdc_ncm_rx_verify_nth16' filepath='drivers/net/usb/cdc_ncm.c' line='1552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cdc_ncm_rx_verify_nth16'>
+        <parameter type-id='c786c422' name='ctx' filepath='drivers/net/usb/cdc_ncm.c' line='1552' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb_in' filepath='drivers/net/usb/cdc_ncm.c' line='1552' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cdc_ncm_select_altsetting' mangled-name='cdc_ncm_select_altsetting' filepath='drivers/net/usb/cdc_ncm.c' line='1031' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cdc_ncm_select_altsetting'>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/net/usb/cdc_ncm.c' line='1031' column='1'/>
+        <return type-id='f9b06939'/>
+      </function-decl>
+      <function-decl name='cdc_ncm_unbind' mangled-name='cdc_ncm_unbind' filepath='drivers/net/usb/cdc_ncm.c' line='993' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cdc_ncm_unbind'>
+        <parameter type-id='12884b9a' name='dev' filepath='drivers/net/usb/cdc_ncm.c' line='993' column='1'/>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/net/usb/cdc_ncm.c' line='993' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cdc_parse_cdc_header' mangled-name='cdc_parse_cdc_header' filepath='drivers/usb/core/message.c' line='2284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cdc_parse_cdc_header'>
+        <parameter type-id='16f45b2c' name='hdr' filepath='drivers/usb/core/message.c' line='2284' column='1'/>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/usb/core/message.c' line='2285' column='1'/>
+        <parameter type-id='8bff8096' name='buffer' filepath='drivers/usb/core/message.c' line='2286' column='1'/>
+        <parameter type-id='95e97e5e' name='buflen' filepath='drivers/usb/core/message.c' line='2287' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cdev_add' mangled-name='cdev_add' filepath='fs/char_dev.c' line='479' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cdev_add'>
+        <parameter type-id='3e6eb939' name='p' filepath='fs/char_dev.c' line='479' column='1'/>
+        <parameter type-id='8504f260' name='dev' filepath='fs/char_dev.c' line='479' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='fs/char_dev.c' line='479' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cdev_alloc' mangled-name='cdev_alloc' filepath='fs/char_dev.c' line='633' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cdev_alloc'>
+        <return type-id='3e6eb939'/>
+      </function-decl>
+      <function-decl name='cdev_del' mangled-name='cdev_del' filepath='fs/char_dev.c' line='594' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cdev_del'>
+        <parameter type-id='3e6eb939' name='p' filepath='fs/char_dev.c' line='594' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cdev_device_add' mangled-name='cdev_device_add' filepath='fs/char_dev.c' line='537' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cdev_device_add'>
+        <parameter type-id='3e6eb939' name='cdev' filepath='fs/char_dev.c' line='537' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='fs/char_dev.c' line='537' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cdev_device_del' mangled-name='cdev_device_del' filepath='fs/char_dev.c' line='571' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cdev_device_del'>
+        <parameter type-id='3e6eb939' name='cdev' filepath='fs/char_dev.c' line='571' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='fs/char_dev.c' line='571' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cdev_init' mangled-name='cdev_init' filepath='fs/char_dev.c' line='651' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cdev_init'>
+        <parameter type-id='3e6eb939' name='cdev' filepath='fs/char_dev.c' line='651' column='1'/>
+        <parameter type-id='61758ee5' name='fops' filepath='fs/char_dev.c' line='651' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ce_aes_expandkey' mangled-name='ce_aes_expandkey' filepath='arch/arm64/crypto/aes-ce-glue.c' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ce_aes_expandkey'>
+        <parameter type-id='21370cb4' name='ctx' filepath='arch/arm64/crypto/aes-ce-glue.c' line='74' column='1'/>
+        <parameter type-id='bbaf3419' name='in_key' filepath='arch/arm64/crypto/aes-ce-glue.c' line='74' column='1'/>
+        <parameter type-id='f0981eeb' name='key_len' filepath='arch/arm64/crypto/aes-ce-glue.c' line='75' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cec_allocate_adapter' mangled-name='cec_allocate_adapter' filepath='drivers/media/cec/core/cec-core.c' line='237' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cec_allocate_adapter'>
+        <parameter type-id='4bc4fd45' name='ops' filepath='drivers/media/cec/core/cec-core.c' line='237' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/cec/core/cec-core.c' line='238' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/media/cec/core/cec-core.c' line='238' column='1'/>
+        <parameter type-id='19c2251e' name='caps' filepath='drivers/media/cec/core/cec-core.c' line='238' column='1'/>
+        <parameter type-id='f9b06939' name='available_las' filepath='drivers/media/cec/core/cec-core.c' line='239' column='1'/>
+        <return type-id='b94a2f7c'/>
+      </function-decl>
+      <function-decl name='cec_delete_adapter' mangled-name='cec_delete_adapter' filepath='drivers/media/cec/core/cec-core.c' line='398' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cec_delete_adapter'>
+        <parameter type-id='b94a2f7c' name='adap' filepath='drivers/media/cec/core/cec-core.c' line='398' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cec_fill_conn_info_from_drm' mangled-name='cec_fill_conn_info_from_drm' filepath='drivers/media/cec/core/cec-adap.c' line='81' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cec_fill_conn_info_from_drm'>
+        <parameter type-id='aa4339b3' name='conn_info' filepath='drivers/media/cec/core/cec-adap.c' line='81' column='1'/>
+        <parameter type-id='0e1f87e5' name='connector' filepath='drivers/media/cec/core/cec-adap.c' line='82' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cec_notifier_cec_adap_register' mangled-name='cec_notifier_cec_adap_register' filepath='drivers/media/cec/core/cec-notifier.c' line='148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cec_notifier_cec_adap_register'>
+        <parameter type-id='fa0b179b' name='hdmi_dev' filepath='drivers/media/cec/core/cec-notifier.c' line='148' column='1'/>
+        <parameter type-id='80f4b756' name='port_name' filepath='drivers/media/cec/core/cec-notifier.c' line='148' column='1'/>
+        <parameter type-id='b94a2f7c' name='adap' filepath='drivers/media/cec/core/cec-notifier.c' line='149' column='1'/>
+        <return type-id='33ceb73d'/>
+      </function-decl>
+      <function-decl name='cec_notifier_cec_adap_unregister' mangled-name='cec_notifier_cec_adap_unregister' filepath='drivers/media/cec/core/cec-notifier.c' line='171' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cec_notifier_cec_adap_unregister'>
+        <parameter type-id='33ceb73d' name='n' filepath='drivers/media/cec/core/cec-notifier.c' line='171' column='1'/>
+        <parameter type-id='b94a2f7c' name='adap' filepath='drivers/media/cec/core/cec-notifier.c' line='172' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cec_notifier_conn_register' mangled-name='cec_notifier_conn_register' filepath='drivers/media/cec/core/cec-notifier.c' line='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cec_notifier_conn_register'>
+        <parameter type-id='fa0b179b' name='hdmi_dev' filepath='drivers/media/cec/core/cec-notifier.c' line='105' column='1'/>
+        <parameter type-id='80f4b756' name='port_name' filepath='drivers/media/cec/core/cec-notifier.c' line='105' column='1'/>
+        <parameter type-id='412c012c' name='conn_info' filepath='drivers/media/cec/core/cec-notifier.c' line='106' column='1'/>
+        <return type-id='33ceb73d'/>
+      </function-decl>
+      <function-decl name='cec_notifier_conn_unregister' mangled-name='cec_notifier_conn_unregister' filepath='drivers/media/cec/core/cec-notifier.c' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cec_notifier_conn_unregister'>
+        <parameter type-id='33ceb73d' name='n' filepath='drivers/media/cec/core/cec-notifier.c' line='129' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cec_notifier_set_phys_addr' mangled-name='cec_notifier_set_phys_addr' filepath='drivers/media/cec/core/cec-notifier.c' line='185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cec_notifier_set_phys_addr'>
+        <parameter type-id='33ceb73d' name='n' filepath='drivers/media/cec/core/cec-notifier.c' line='185' column='1'/>
+        <parameter type-id='1dc6a898' name='pa' filepath='drivers/media/cec/core/cec-notifier.c' line='185' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cec_notifier_set_phys_addr_from_edid' mangled-name='cec_notifier_set_phys_addr_from_edid' filepath='drivers/media/cec/core/cec-notifier.c' line='198' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cec_notifier_set_phys_addr_from_edid'>
+        <parameter type-id='33ceb73d' name='n' filepath='drivers/media/cec/core/cec-notifier.c' line='198' column='1'/>
+        <parameter type-id='776adf76' name='edid' filepath='drivers/media/cec/core/cec-notifier.c' line='199' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cec_received_msg_ts' mangled-name='cec_received_msg_ts' filepath='drivers/media/cec/core/cec-adap.c' line='1042' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cec_received_msg_ts'>
+        <parameter type-id='b94a2f7c' name='adap' filepath='drivers/media/cec/core/cec-adap.c' line='1042' column='1'/>
+        <parameter type-id='ffb3cc6e' name='msg' filepath='drivers/media/cec/core/cec-adap.c' line='1043' column='1'/>
+        <parameter type-id='fbc017ef' name='ts' filepath='drivers/media/cec/core/cec-adap.c' line='1043' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cec_register_adapter' mangled-name='cec_register_adapter' filepath='drivers/media/cec/core/cec-core.c' line='321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cec_register_adapter'>
+        <parameter type-id='b94a2f7c' name='adap' filepath='drivers/media/cec/core/cec-core.c' line='321' column='1'/>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/media/cec/core/cec-core.c' line='322' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cec_s_log_addrs' mangled-name='cec_s_log_addrs' filepath='drivers/media/cec/core/cec-adap.c' line='1821' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cec_s_log_addrs'>
+        <parameter type-id='b94a2f7c' name='adap' filepath='drivers/media/cec/core/cec-adap.c' line='1821' column='1'/>
+        <parameter type-id='ebc04a66' name='log_addrs' filepath='drivers/media/cec/core/cec-adap.c' line='1822' column='1'/>
+        <parameter type-id='b50a4934' name='block' filepath='drivers/media/cec/core/cec-adap.c' line='1822' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cec_s_phys_addr' mangled-name='cec_s_phys_addr' filepath='drivers/media/cec/core/cec-adap.c' line='1617' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cec_s_phys_addr'>
+        <parameter type-id='b94a2f7c' name='adap' filepath='drivers/media/cec/core/cec-adap.c' line='1617' column='1'/>
+        <parameter type-id='1dc6a898' name='phys_addr' filepath='drivers/media/cec/core/cec-adap.c' line='1617' column='1'/>
+        <parameter type-id='b50a4934' name='block' filepath='drivers/media/cec/core/cec-adap.c' line='1617' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cec_s_phys_addr_from_edid' mangled-name='cec_s_phys_addr_from_edid' filepath='drivers/media/cec/core/cec-adap.c' line='1628' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cec_s_phys_addr_from_edid'>
+        <parameter type-id='b94a2f7c' name='adap' filepath='drivers/media/cec/core/cec-adap.c' line='1628' column='1'/>
+        <parameter type-id='776adf76' name='edid' filepath='drivers/media/cec/core/cec-adap.c' line='1629' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cec_transmit_attempt_done_ts' mangled-name='cec_transmit_attempt_done_ts' filepath='drivers/media/cec/core/cec-adap.c' line='691' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cec_transmit_attempt_done_ts'>
+        <parameter type-id='b94a2f7c' name='adap' filepath='drivers/media/cec/core/cec-adap.c' line='691' column='1'/>
+        <parameter type-id='f9b06939' name='status' filepath='drivers/media/cec/core/cec-adap.c' line='692' column='1'/>
+        <parameter type-id='fbc017ef' name='ts' filepath='drivers/media/cec/core/cec-adap.c' line='692' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cec_transmit_done_ts' mangled-name='cec_transmit_done_ts' filepath='drivers/media/cec/core/cec-adap.c' line='594' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cec_transmit_done_ts'>
+        <parameter type-id='b94a2f7c' name='adap' filepath='drivers/media/cec/core/cec-adap.c' line='594' column='1'/>
+        <parameter type-id='f9b06939' name='status' filepath='drivers/media/cec/core/cec-adap.c' line='594' column='1'/>
+        <parameter type-id='f9b06939' name='arb_lost_cnt' filepath='drivers/media/cec/core/cec-adap.c' line='595' column='1'/>
+        <parameter type-id='f9b06939' name='nack_cnt' filepath='drivers/media/cec/core/cec-adap.c' line='595' column='1'/>
+        <parameter type-id='f9b06939' name='low_drive_cnt' filepath='drivers/media/cec/core/cec-adap.c' line='595' column='1'/>
+        <parameter type-id='f9b06939' name='error_cnt' filepath='drivers/media/cec/core/cec-adap.c' line='596' column='1'/>
+        <parameter type-id='fbc017ef' name='ts' filepath='drivers/media/cec/core/cec-adap.c' line='596' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cec_unregister_adapter' mangled-name='cec_unregister_adapter' filepath='drivers/media/cec/core/cec-core.c' line='380' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cec_unregister_adapter'>
+        <parameter type-id='b94a2f7c' name='adap' filepath='drivers/media/cec/core/cec-core.c' line='380' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cgroup_add_dfl_cftypes' mangled-name='cgroup_add_dfl_cftypes' filepath='kernel/cgroup/cgroup.c' line='4319' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cgroup_add_dfl_cftypes'>
+        <parameter type-id='dc91d125' name='ss' filepath='kernel/cgroup/cgroup.c' line='4319' column='1'/>
+        <parameter type-id='03054cfa' name='cfts' filepath='kernel/cgroup/cgroup.c' line='4319' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cgroup_add_legacy_cftypes' mangled-name='cgroup_add_legacy_cftypes' filepath='kernel/cgroup/cgroup.c' line='4337' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cgroup_add_legacy_cftypes'>
+        <parameter type-id='dc91d125' name='ss' filepath='kernel/cgroup/cgroup.c' line='4337' column='1'/>
+        <parameter type-id='03054cfa' name='cfts' filepath='kernel/cgroup/cgroup.c' line='4337' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cgroup_path_ns' mangled-name='cgroup_path_ns' filepath='kernel/cgroup/cgroup.c' line='2310' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cgroup_path_ns'>
+        <parameter type-id='46ff135d' name='cgrp' filepath='kernel/cgroup/cgroup.c' line='2310' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='kernel/cgroup/cgroup.c' line='2310' column='1'/>
+        <parameter type-id='b59d7dce' name='buflen' filepath='kernel/cgroup/cgroup.c' line='2310' column='1'/>
+        <parameter type-id='f774a955' name='ns' filepath='kernel/cgroup/cgroup.c' line='2311' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cgroup_taskset_first' mangled-name='cgroup_taskset_first' filepath='kernel/cgroup/cgroup.c' line='2453' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cgroup_taskset_first'>
+        <parameter type-id='8cffa561' name='tset' filepath='kernel/cgroup/cgroup.c' line='2453' column='1'/>
+        <parameter type-id='e7f9d97b' name='dst_cssp' filepath='kernel/cgroup/cgroup.c' line='2454' column='1'/>
+        <return type-id='f23e2572'/>
+      </function-decl>
+      <function-decl name='cgroup_taskset_next' mangled-name='cgroup_taskset_next' filepath='kernel/cgroup/cgroup.c' line='2471' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cgroup_taskset_next'>
+        <parameter type-id='8cffa561' name='tset' filepath='kernel/cgroup/cgroup.c' line='2471' column='1'/>
+        <parameter type-id='e7f9d97b' name='dst_cssp' filepath='kernel/cgroup/cgroup.c' line='2472' column='1'/>
+        <return type-id='f23e2572'/>
+      </function-decl>
+      <function-decl name='check_preempt_curr' mangled-name='check_preempt_curr' filepath='kernel/sched/core.c' line='2139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='check_preempt_curr'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2139' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2139' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='kernel/sched/core.c' line='2139' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='check_zeroed_user' mangled-name='check_zeroed_user' filepath='lib/usercopy.c' line='61' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='check_zeroed_user'>
+        <parameter type-id='eaa32e2f' name='from' filepath='lib/usercopy.c' line='61' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='lib/usercopy.c' line='61' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='class_create_file_ns' mangled-name='class_create_file_ns' filepath='drivers/base/class.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='class_create_file_ns'>
+        <parameter type-id='67aca04f' name='cls' filepath='drivers/base/class.c' line='88' column='1'/>
+        <parameter type-id='9a53a8a3' name='attr' filepath='drivers/base/class.c' line='88' column='1'/>
+        <parameter type-id='eaa32e2f' name='ns' filepath='drivers/base/class.c' line='89' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='class_destroy' mangled-name='class_destroy' filepath='drivers/base/class.c' line='266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='class_destroy'>
+        <parameter type-id='67aca04f' name='cls' filepath='drivers/base/class.c' line='266' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='class_find_device' mangled-name='class_find_device' filepath='drivers/base/class.c' line='404' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='class_find_device'>
+        <parameter type-id='67aca04f' name='class' filepath='drivers/base/class.c' line='404' column='1'/>
+        <parameter type-id='fa0b179b' name='start' filepath='drivers/base/class.c' line='404' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/class.c' line='405' column='1'/>
+        <parameter type-id='92d15ae9' name='match' filepath='drivers/base/class.c' line='406' column='1'/>
+        <return type-id='fa0b179b'/>
+      </function-decl>
+      <function-decl name='class_for_each_device' mangled-name='class_for_each_device' filepath='drivers/base/class.c' line='357' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='class_for_each_device'>
+        <parameter type-id='67aca04f' name='class' filepath='drivers/base/class.c' line='357' column='1'/>
+        <parameter type-id='fa0b179b' name='start' filepath='drivers/base/class.c' line='357' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/class.c' line='358' column='1'/>
+        <parameter type-id='92d15ae9' name='fn' filepath='drivers/base/class.c' line='358' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='class_interface_unregister' mangled-name='class_interface_unregister' filepath='drivers/base/class.c' line='458' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='class_interface_unregister'>
+        <parameter type-id='ec167ceb' name='class_intf' filepath='drivers/base/class.c' line='458' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='class_remove_file_ns' mangled-name='class_remove_file_ns' filepath='drivers/base/class.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='class_remove_file_ns'>
+        <parameter type-id='67aca04f' name='cls' filepath='drivers/base/class.c' line='101' column='1'/>
+        <parameter type-id='9a53a8a3' name='attr' filepath='drivers/base/class.c' line='101' column='1'/>
+        <parameter type-id='eaa32e2f' name='ns' filepath='drivers/base/class.c' line='102' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='class_unregister' mangled-name='class_unregister' filepath='drivers/base/class.c' line='204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='class_unregister'>
+        <parameter type-id='67aca04f' name='cls' filepath='drivers/base/class.c' line='204' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clean_bdev_aliases' mangled-name='clean_bdev_aliases' filepath='fs/buffer.c' line='1607' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clean_bdev_aliases'>
+        <parameter type-id='b88dd945' name='bdev' filepath='fs/buffer.c' line='1607' column='1'/>
+        <parameter type-id='a42536cd' name='block' filepath='fs/buffer.c' line='1607' column='1'/>
+        <parameter type-id='a42536cd' name='len' filepath='fs/buffer.c' line='1607' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cleancache_register_ops' mangled-name='cleancache_register_ops' filepath='mm/cleancache.c' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cleancache_register_ops'>
+        <parameter type-id='fccfeeec' name='ops' filepath='mm/cleancache.c' line='51' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cleanup_srcu_struct' mangled-name='cleanup_srcu_struct' filepath='kernel/rcu/srcutree.c' line='367' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cleanup_srcu_struct'>
+        <parameter type-id='f7d7131a' name='ssp' filepath='kernel/rcu/srcutree.c' line='367' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clear_inode' mangled-name='clear_inode' filepath='fs/inode.c' line='526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clear_inode'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='526' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clear_nlink' mangled-name='clear_nlink' filepath='fs/inode.c' line='322' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clear_nlink'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='322' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clear_page_dirty_for_io' mangled-name='clear_page_dirty_for_io' filepath='mm/page-writeback.c' line='2692' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clear_page_dirty_for_io'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/page-writeback.c' line='2692' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='clk_bulk_disable' mangled-name='clk_bulk_disable' filepath='drivers/clk/clk-bulk.c' line='211' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_bulk_disable'>
+        <parameter type-id='95e97e5e' name='num_clks' filepath='drivers/clk/clk-bulk.c' line='211' column='1'/>
+        <parameter type-id='f034b024' name='clks' filepath='drivers/clk/clk-bulk.c' line='211' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clk_bulk_enable' mangled-name='clk_bulk_enable' filepath='drivers/clk/clk-bulk.c' line='227' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_bulk_enable'>
+        <parameter type-id='95e97e5e' name='num_clks' filepath='drivers/clk/clk-bulk.c' line='227' column='1'/>
+        <parameter type-id='f034b024' name='clks' filepath='drivers/clk/clk-bulk.c' line='227' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='clk_bulk_get' mangled-name='clk_bulk_get' filepath='drivers/clk/clk-bulk.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_bulk_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-bulk.c' line='114' column='1'/>
+        <parameter type-id='95e97e5e' name='num_clks' filepath='drivers/clk/clk-bulk.c' line='114' column='1'/>
+        <parameter type-id='2942e355' name='clks' filepath='drivers/clk/clk-bulk.c' line='115' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='clk_bulk_get_all' mangled-name='clk_bulk_get_all' filepath='drivers/clk/clk-bulk.c' line='139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_bulk_get_all'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-bulk.c' line='139' column='1'/>
+        <parameter type-id='734c20ed' name='clks' filepath='drivers/clk/clk-bulk.c' line='140' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='clk_bulk_prepare' mangled-name='clk_bulk_prepare' filepath='drivers/clk/clk-bulk.c' line='176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_bulk_prepare'>
+        <parameter type-id='95e97e5e' name='num_clks' filepath='drivers/clk/clk-bulk.c' line='176' column='1'/>
+        <parameter type-id='f034b024' name='clks' filepath='drivers/clk/clk-bulk.c' line='177' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='clk_bulk_put' mangled-name='clk_bulk_put' filepath='drivers/clk/clk-bulk.c' line='72' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_bulk_put'>
+        <parameter type-id='95e97e5e' name='num_clks' filepath='drivers/clk/clk-bulk.c' line='72' column='1'/>
+        <parameter type-id='2942e355' name='clks' filepath='drivers/clk/clk-bulk.c' line='72' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clk_bulk_put_all' mangled-name='clk_bulk_put_all' filepath='drivers/clk/clk-bulk.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_bulk_put_all'>
+        <parameter type-id='95e97e5e' name='num_clks' filepath='drivers/clk/clk-bulk.c' line='128' column='1'/>
+        <parameter type-id='2942e355' name='clks' filepath='drivers/clk/clk-bulk.c' line='128' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clk_bulk_unprepare' mangled-name='clk_bulk_unprepare' filepath='drivers/clk/clk-bulk.c' line='161' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_bulk_unprepare'>
+        <parameter type-id='95e97e5e' name='num_clks' filepath='drivers/clk/clk-bulk.c' line='161' column='1'/>
+        <parameter type-id='f034b024' name='clks' filepath='drivers/clk/clk-bulk.c' line='161' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clk_disable' mangled-name='clk_disable' filepath='drivers/clk/clk.c' line='1012' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_disable'>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clk.c' line='1012' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='clk_divider_ops' type-id='92072f8b' mangled-name='clk_divider_ops' visibility='default' filepath='drivers/clk/clk-divider.c' line='522' column='1' elf-symbol-id='clk_divider_ops'/>
+      <var-decl name='clk_divider_ro_ops' type-id='92072f8b' mangled-name='clk_divider_ro_ops' visibility='default' filepath='drivers/clk/clk-divider.c' line='530' column='1' elf-symbol-id='clk_divider_ro_ops'/>
+      <function-decl name='clk_enable' mangled-name='clk_enable' filepath='drivers/clk/clk.c' line='1177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_enable'>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clk.c' line='1177' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='clk_fixed_factor_ops' type-id='92072f8b' mangled-name='clk_fixed_factor_ops' visibility='default' filepath='drivers/clk/clk-fixed-factor.c' line='60' column='1' elf-symbol-id='clk_fixed_factor_ops'/>
+      <var-decl name='clk_fixed_rate_ops' type-id='92072f8b' mangled-name='clk_fixed_rate_ops' visibility='default' filepath='drivers/clk/clk-fixed-rate.c' line='46' column='1' elf-symbol-id='clk_fixed_rate_ops'/>
+      <var-decl name='clk_fractional_divider_ops' type-id='92072f8b' mangled-name='clk_fractional_divider_ops' visibility='default' filepath='drivers/clk/clk-fractional-divider.c' line='186' column='1' elf-symbol-id='clk_fractional_divider_ops'/>
+      <function-decl name='clk_gate_is_enabled' mangled-name='clk_gate_is_enabled' filepath='drivers/clk/clk-gate.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_gate_is_enabled'>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk-gate.c' line='102' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='clk_gate_ops' type-id='92072f8b' mangled-name='clk_gate_ops' visibility='default' filepath='drivers/clk/clk-gate.c' line='119' column='1' elf-symbol-id='clk_gate_ops'/>
+      <function-decl name='clk_get' mangled-name='clk_get' filepath='drivers/clk/clkdev.c' line='100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clkdev.c' line='100' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/clk/clkdev.c' line='100' column='1'/>
+        <return type-id='7d0bc0eb'/>
+      </function-decl>
+      <function-decl name='clk_get_parent' mangled-name='clk_get_parent' filepath='drivers/clk/clk.c' line='2531' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_get_parent'>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clk.c' line='2531' column='1'/>
+        <return type-id='7d0bc0eb'/>
+      </function-decl>
+      <function-decl name='clk_get_rate' mangled-name='clk_get_rate' filepath='drivers/clk/clk.c' line='1711' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_get_rate'>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clk.c' line='1711' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='clk_get_sys' mangled-name='clk_get_sys' filepath='drivers/clk/clkdev.c' line='94' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_get_sys'>
+        <parameter type-id='80f4b756' name='dev_id' filepath='drivers/clk/clkdev.c' line='94' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/clk/clkdev.c' line='94' column='1'/>
+        <return type-id='7d0bc0eb'/>
+      </function-decl>
+      <function-decl name='clk_hw_get_flags' mangled-name='clk_hw_get_flags' filepath='drivers/clk/clk.c' line='505' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_hw_get_flags'>
+        <parameter type-id='9e6d4b4e' name='hw' filepath='drivers/clk/clk.c' line='505' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='clk_hw_get_name' mangled-name='clk_hw_get_name' filepath='drivers/clk/clk.c' line='272' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_hw_get_name'>
+        <parameter type-id='9e6d4b4e' name='hw' filepath='drivers/clk/clk.c' line='272' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='clk_hw_get_num_parents' mangled-name='clk_hw_get_num_parents' filepath='drivers/clk/clk.c' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_hw_get_num_parents'>
+        <parameter type-id='9e6d4b4e' name='hw' filepath='drivers/clk/clk.c' line='284' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='clk_hw_get_parent' mangled-name='clk_hw_get_parent' filepath='drivers/clk/clk.c' line='290' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_hw_get_parent'>
+        <parameter type-id='9e6d4b4e' name='hw' filepath='drivers/clk/clk.c' line='290' column='1'/>
+        <return type-id='3aaeef89'/>
+      </function-decl>
+      <function-decl name='clk_hw_get_parent_by_index' mangled-name='clk_hw_get_parent_by_index' filepath='drivers/clk/clk.c' line='460' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_hw_get_parent_by_index'>
+        <parameter type-id='9e6d4b4e' name='hw' filepath='drivers/clk/clk.c' line='460' column='1'/>
+        <parameter type-id='f0981eeb' name='index' filepath='drivers/clk/clk.c' line='460' column='1'/>
+        <return type-id='3aaeef89'/>
+      </function-decl>
+      <function-decl name='clk_hw_get_rate' mangled-name='clk_hw_get_rate' filepath='drivers/clk/clk.c' line='491' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_hw_get_rate'>
+        <parameter type-id='9e6d4b4e' name='hw' filepath='drivers/clk/clk.c' line='491' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='clk_hw_is_enabled' mangled-name='clk_hw_is_enabled' filepath='drivers/clk/clk.c' line='523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_hw_is_enabled'>
+        <parameter type-id='9e6d4b4e' name='hw' filepath='drivers/clk/clk.c' line='523' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='clk_hw_is_prepared' mangled-name='clk_hw_is_prepared' filepath='drivers/clk/clk.c' line='511' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_hw_is_prepared'>
+        <parameter type-id='9e6d4b4e' name='hw' filepath='drivers/clk/clk.c' line='511' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='clk_hw_register' mangled-name='clk_hw_register' filepath='drivers/clk/clk.c' line='4069' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_hw_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk.c' line='4069' column='1'/>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk.c' line='4069' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='clk_hw_register_composite' mangled-name='clk_hw_register_composite' filepath='drivers/clk/clk-composite.c' line='320' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_hw_register_composite'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-composite.c' line='320' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/clk/clk-composite.c' line='320' column='1'/>
+        <parameter type-id='13956559' name='parent_names' filepath='drivers/clk/clk-composite.c' line='321' column='1'/>
+        <parameter type-id='95e97e5e' name='num_parents' filepath='drivers/clk/clk-composite.c' line='321' column='1'/>
+        <parameter type-id='3aaeef89' name='mux_hw' filepath='drivers/clk/clk-composite.c' line='322' column='1'/>
+        <parameter type-id='824ffa73' name='mux_ops' filepath='drivers/clk/clk-composite.c' line='322' column='1'/>
+        <parameter type-id='3aaeef89' name='rate_hw' filepath='drivers/clk/clk-composite.c' line='323' column='1'/>
+        <parameter type-id='824ffa73' name='rate_ops' filepath='drivers/clk/clk-composite.c' line='323' column='1'/>
+        <parameter type-id='3aaeef89' name='gate_hw' filepath='drivers/clk/clk-composite.c' line='324' column='1'/>
+        <parameter type-id='824ffa73' name='gate_ops' filepath='drivers/clk/clk-composite.c' line='324' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-composite.c' line='325' column='1'/>
+        <return type-id='3aaeef89'/>
+      </function-decl>
+      <function-decl name='clk_hw_register_fixed_factor' mangled-name='clk_hw_register_fixed_factor' filepath='drivers/clk/clk-fixed-factor.c' line='134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_hw_register_fixed_factor'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-fixed-factor.c' line='134' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/clk/clk-fixed-factor.c' line='135' column='1'/>
+        <parameter type-id='80f4b756' name='parent_name' filepath='drivers/clk/clk-fixed-factor.c' line='135' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-fixed-factor.c' line='135' column='1'/>
+        <parameter type-id='f0981eeb' name='mult' filepath='drivers/clk/clk-fixed-factor.c' line='136' column='1'/>
+        <parameter type-id='f0981eeb' name='div' filepath='drivers/clk/clk-fixed-factor.c' line='136' column='1'/>
+        <return type-id='3aaeef89'/>
+      </function-decl>
+      <function-decl name='clk_hw_round_rate' mangled-name='clk_hw_round_rate' filepath='drivers/clk/clk.c' line='1492' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_hw_round_rate'>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk.c' line='1492' column='1'/>
+        <parameter type-id='7359adad' name='rate' filepath='drivers/clk/clk.c' line='1492' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='clk_hw_set_parent' mangled-name='clk_hw_set_parent' filepath='drivers/clk/clk.c' line='2672' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_hw_set_parent'>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk.c' line='2672' column='1'/>
+        <parameter type-id='3aaeef89' name='parent' filepath='drivers/clk/clk.c' line='2672' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='clk_hw_set_rate_range' mangled-name='clk_hw_set_rate_range' filepath='drivers/clk/clk.c' line='654' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_hw_set_rate_range'>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk.c' line='654' column='1'/>
+        <parameter type-id='7359adad' name='min_rate' filepath='drivers/clk/clk.c' line='654' column='1'/>
+        <parameter type-id='7359adad' name='max_rate' filepath='drivers/clk/clk.c' line='655' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clk_hw_unregister' mangled-name='clk_hw_unregister' filepath='drivers/clk/clk.c' line='4234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_hw_unregister'>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk.c' line='4234' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clk_is_match' mangled-name='clk_is_match' filepath='drivers/clk/clk.c' line='3007' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_is_match'>
+        <parameter type-id='10f66866' name='p' filepath='drivers/clk/clk.c' line='3007' column='1'/>
+        <parameter type-id='10f66866' name='q' filepath='drivers/clk/clk.c' line='3007' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='clk_mux_determine_rate_flags' mangled-name='clk_mux_determine_rate_flags' filepath='drivers/clk/clk.c' line='547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_mux_determine_rate_flags'>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk.c' line='547' column='1'/>
+        <parameter type-id='23a0ad0a' name='req' filepath='drivers/clk/clk.c' line='548' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk.c' line='549' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='clk_mux_index_to_val' mangled-name='clk_mux_index_to_val' filepath='drivers/clk/clk-mux.c' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_mux_index_to_val'>
+        <parameter type-id='f9409001' name='table' filepath='drivers/clk/clk-mux.c' line='70' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='drivers/clk/clk-mux.c' line='70' column='1'/>
+        <parameter type-id='f9b06939' name='index' filepath='drivers/clk/clk-mux.c' line='70' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <var-decl name='clk_mux_ops' type-id='92072f8b' mangled-name='clk_mux_ops' visibility='default' filepath='drivers/clk/clk-mux.c' line='137' column='1' elf-symbol-id='clk_mux_ops'/>
+      <var-decl name='clk_mux_ro_ops' type-id='92072f8b' mangled-name='clk_mux_ro_ops' visibility='default' filepath='drivers/clk/clk-mux.c' line='144' column='1' elf-symbol-id='clk_mux_ro_ops'/>
+      <function-decl name='clk_mux_val_to_index' mangled-name='clk_mux_val_to_index' filepath='drivers/clk/clk-mux.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_mux_val_to_index'>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk-mux.c' line='43' column='1'/>
+        <parameter type-id='f9409001' name='table' filepath='drivers/clk/clk-mux.c' line='43' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='drivers/clk/clk-mux.c' line='43' column='1'/>
+        <parameter type-id='f0981eeb' name='val' filepath='drivers/clk/clk-mux.c' line='44' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='clk_notifier_register' mangled-name='clk_notifier_register' filepath='drivers/clk/clk.c' line='4464' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_notifier_register'>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clk.c' line='4464' column='1'/>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/clk/clk.c' line='4464' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='clk_notifier_unregister' mangled-name='clk_notifier_unregister' filepath='drivers/clk/clk.c' line='4512' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_notifier_unregister'>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clk.c' line='4512' column='1'/>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/clk/clk.c' line='4512' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='clk_prepare' mangled-name='clk_prepare' filepath='drivers/clk/clk.c' line='955' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_prepare'>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clk.c' line='955' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='clk_put' mangled-name='clk_put' filepath='drivers/clk/clkdev.c' line='115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_put'>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clkdev.c' line='115' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clk_register' mangled-name='clk_register' filepath='drivers/clk/clk.c' line='4053' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk.c' line='4053' column='1'/>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk.c' line='4053' column='1'/>
+        <return type-id='7d0bc0eb'/>
+      </function-decl>
+      <function-decl name='clk_register_clkdev' mangled-name='clk_register_clkdev' filepath='drivers/clk/clkdev.c' line='313' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_register_clkdev'>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clkdev.c' line='313' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/clk/clkdev.c' line='313' column='1'/>
+        <parameter type-id='80f4b756' name='dev_id' filepath='drivers/clk/clkdev.c' line='314' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='clk_register_composite' mangled-name='clk_register_composite' filepath='drivers/clk/clk-composite.c' line='349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_register_composite'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-composite.c' line='349' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/clk/clk-composite.c' line='349' column='1'/>
+        <parameter type-id='13956559' name='parent_names' filepath='drivers/clk/clk-composite.c' line='350' column='1'/>
+        <parameter type-id='95e97e5e' name='num_parents' filepath='drivers/clk/clk-composite.c' line='350' column='1'/>
+        <parameter type-id='3aaeef89' name='mux_hw' filepath='drivers/clk/clk-composite.c' line='351' column='1'/>
+        <parameter type-id='824ffa73' name='mux_ops' filepath='drivers/clk/clk-composite.c' line='351' column='1'/>
+        <parameter type-id='3aaeef89' name='rate_hw' filepath='drivers/clk/clk-composite.c' line='352' column='1'/>
+        <parameter type-id='824ffa73' name='rate_ops' filepath='drivers/clk/clk-composite.c' line='352' column='1'/>
+        <parameter type-id='3aaeef89' name='gate_hw' filepath='drivers/clk/clk-composite.c' line='353' column='1'/>
+        <parameter type-id='824ffa73' name='gate_ops' filepath='drivers/clk/clk-composite.c' line='353' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-composite.c' line='354' column='1'/>
+        <return type-id='7d0bc0eb'/>
+      </function-decl>
+      <function-decl name='clk_register_divider_table' mangled-name='clk_register_divider_table' filepath='drivers/clk/clk-divider.c' line='610' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_register_divider_table'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-divider.c' line='610' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/clk/clk-divider.c' line='610' column='1'/>
+        <parameter type-id='80f4b756' name='parent_name' filepath='drivers/clk/clk-divider.c' line='611' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-divider.c' line='611' column='1'/>
+        <parameter type-id='eaa32e2f' name='reg' filepath='drivers/clk/clk-divider.c' line='612' column='1'/>
+        <parameter type-id='f9b06939' name='shift' filepath='drivers/clk/clk-divider.c' line='612' column='1'/>
+        <parameter type-id='f9b06939' name='width' filepath='drivers/clk/clk-divider.c' line='612' column='1'/>
+        <parameter type-id='f9b06939' name='clk_divider_flags' filepath='drivers/clk/clk-divider.c' line='613' column='1'/>
+        <parameter type-id='caf2596f' name='table' filepath='drivers/clk/clk-divider.c' line='613' column='1'/>
+        <parameter type-id='cff2d845' name='lock' filepath='drivers/clk/clk-divider.c' line='614' column='1'/>
+        <return type-id='7d0bc0eb'/>
+      </function-decl>
+      <function-decl name='clk_register_fixed_factor' mangled-name='clk_register_fixed_factor' filepath='drivers/clk/clk-fixed-factor.c' line='143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_register_fixed_factor'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-fixed-factor.c' line='143' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/clk/clk-fixed-factor.c' line='143' column='1'/>
+        <parameter type-id='80f4b756' name='parent_name' filepath='drivers/clk/clk-fixed-factor.c' line='144' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-fixed-factor.c' line='144' column='1'/>
+        <parameter type-id='f0981eeb' name='mult' filepath='drivers/clk/clk-fixed-factor.c' line='145' column='1'/>
+        <parameter type-id='f0981eeb' name='div' filepath='drivers/clk/clk-fixed-factor.c' line='145' column='1'/>
+        <return type-id='7d0bc0eb'/>
+      </function-decl>
+      <function-decl name='clk_register_fixed_rate' mangled-name='clk_register_fixed_rate' filepath='drivers/clk/clk-fixed-rate.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_register_fixed_rate'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-fixed-rate.c' line='101' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/clk/clk-fixed-rate.c' line='101' column='1'/>
+        <parameter type-id='80f4b756' name='parent_name' filepath='drivers/clk/clk-fixed-rate.c' line='102' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-fixed-rate.c' line='102' column='1'/>
+        <parameter type-id='7359adad' name='fixed_rate' filepath='drivers/clk/clk-fixed-rate.c' line='103' column='1'/>
+        <return type-id='7d0bc0eb'/>
+      </function-decl>
+      <function-decl name='clk_register_gate' mangled-name='clk_register_gate' filepath='drivers/clk/clk-gate.c' line='184' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_register_gate'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-gate.c' line='184' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/clk/clk-gate.c' line='184' column='1'/>
+        <parameter type-id='80f4b756' name='parent_name' filepath='drivers/clk/clk-gate.c' line='185' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-gate.c' line='185' column='1'/>
+        <parameter type-id='eaa32e2f' name='reg' filepath='drivers/clk/clk-gate.c' line='186' column='1'/>
+        <parameter type-id='f9b06939' name='bit_idx' filepath='drivers/clk/clk-gate.c' line='186' column='1'/>
+        <parameter type-id='f9b06939' name='clk_gate_flags' filepath='drivers/clk/clk-gate.c' line='187' column='1'/>
+        <parameter type-id='cff2d845' name='lock' filepath='drivers/clk/clk-gate.c' line='187' column='1'/>
+        <return type-id='7d0bc0eb'/>
+      </function-decl>
+      <function-decl name='clk_restore_context' mangled-name='clk_restore_context' filepath='drivers/clk/clk.c' line='1152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_restore_context'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clk_round_rate' mangled-name='clk_round_rate' filepath='drivers/clk/clk.c' line='1517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_round_rate'>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clk.c' line='1517' column='1'/>
+        <parameter type-id='7359adad' name='rate' filepath='drivers/clk/clk.c' line='1517' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='clk_save_context' mangled-name='clk_save_context' filepath='drivers/clk/clk.c' line='1125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_save_context'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='clk_set_parent' mangled-name='clk_set_parent' filepath='drivers/clk/clk.c' line='2695' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_set_parent'>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clk.c' line='2695' column='1'/>
+        <parameter type-id='7d0bc0eb' name='parent' filepath='drivers/clk/clk.c' line='2695' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='clk_set_rate' mangled-name='clk_set_rate' filepath='drivers/clk/clk.c' line='2339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_set_rate'>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clk.c' line='2339' column='1'/>
+        <parameter type-id='7359adad' name='rate' filepath='drivers/clk/clk.c' line='2339' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='clk_sync_state' mangled-name='clk_sync_state' filepath='drivers/clk/clk.c' line='1365' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_sync_state'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk.c' line='1365' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clk_unprepare' mangled-name='clk_unprepare' filepath='drivers/clk/clk.c' line='874' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_unprepare'>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clk.c' line='874' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clk_unregister' mangled-name='clk_unregister' filepath='drivers/clk/clk.c' line='4172' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_unregister'>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clk.c' line='4172' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clk_unregister_fixed_factor' mangled-name='clk_unregister_fixed_factor' filepath='drivers/clk/clk-fixed-factor.c' line='157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_unregister_fixed_factor'>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clk-fixed-factor.c' line='157' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clk_unregister_fixed_rate' mangled-name='clk_unregister_fixed_rate' filepath='drivers/clk/clk-fixed-rate.c' line='115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_unregister_fixed_rate'>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clk-fixed-rate.c' line='115' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clk_unregister_gate' mangled-name='clk_unregister_gate' filepath='drivers/clk/clk-gate.c' line='199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clk_unregister_gate'>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clk-gate.c' line='199' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clkdev_add' mangled-name='clkdev_add' filepath='drivers/clk/clkdev.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clkdev_add'>
+        <parameter type-id='2d9c5390' name='cl' filepath='drivers/clk/clkdev.c' line='128' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clkdev_drop' mangled-name='clkdev_drop' filepath='drivers/clk/clkdev.c' line='259' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clkdev_drop'>
+        <parameter type-id='2d9c5390' name='cl' filepath='drivers/clk/clkdev.c' line='259' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clockevent_delta2ns' mangled-name='clockevent_delta2ns' filepath='kernel/time/clockevents.c' line='85' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clockevent_delta2ns'>
+        <parameter type-id='7359adad' name='latch' filepath='kernel/time/clockevents.c' line='85' column='1'/>
+        <parameter type-id='aff725d5' name='evt' filepath='kernel/time/clockevents.c' line='85' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='clockevents_config_and_register' mangled-name='clockevents_config_and_register' filepath='kernel/time/clockevents.c' line='504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clockevents_config_and_register'>
+        <parameter type-id='aff725d5' name='dev' filepath='kernel/time/clockevents.c' line='504' column='1'/>
+        <parameter type-id='19c2251e' name='freq' filepath='kernel/time/clockevents.c' line='505' column='1'/>
+        <parameter type-id='7359adad' name='min_delta' filepath='kernel/time/clockevents.c' line='505' column='1'/>
+        <parameter type-id='7359adad' name='max_delta' filepath='kernel/time/clockevents.c' line='506' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clockevents_register_device' mangled-name='clockevents_register_device' filepath='kernel/time/clockevents.c' line='443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clockevents_register_device'>
+        <parameter type-id='aff725d5' name='dev' filepath='kernel/time/clockevents.c' line='443' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clocks_calc_mult_shift' mangled-name='clocks_calc_mult_shift' filepath='kernel/time/clocksource.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clocks_calc_mult_shift'>
+        <parameter type-id='f9409001' name='mult' filepath='kernel/time/clocksource.c' line='47' column='1'/>
+        <parameter type-id='f9409001' name='shift' filepath='kernel/time/clocksource.c' line='47' column='1'/>
+        <parameter type-id='19c2251e' name='from' filepath='kernel/time/clocksource.c' line='47' column='1'/>
+        <parameter type-id='19c2251e' name='to' filepath='kernel/time/clocksource.c' line='47' column='1'/>
+        <parameter type-id='19c2251e' name='maxsec' filepath='kernel/time/clocksource.c' line='47' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='clocksource_mmio_init' mangled-name='clocksource_mmio_init' filepath='drivers/clocksource/mmio.c' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clocksource_mmio_init'>
+        <parameter type-id='eaa32e2f' name='base' filepath='drivers/clocksource/mmio.c' line='50' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/clocksource/mmio.c' line='50' column='1'/>
+        <parameter type-id='7359adad' name='hz' filepath='drivers/clocksource/mmio.c' line='51' column='1'/>
+        <parameter type-id='95e97e5e' name='rating' filepath='drivers/clocksource/mmio.c' line='51' column='1'/>
+        <parameter type-id='f0981eeb' name='bits' filepath='drivers/clocksource/mmio.c' line='51' column='1'/>
+        <parameter type-id='34fd0229' name='read' filepath='drivers/clocksource/mmio.c' line='52' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='clocksource_mmio_readl_up' mangled-name='clocksource_mmio_readl_up' filepath='drivers/clocksource/mmio.c' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clocksource_mmio_readl_up'>
+        <parameter type-id='4dfe71de' name='c' filepath='drivers/clocksource/mmio.c' line='20' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='close_candev' mangled-name='close_candev' filepath='drivers/net/can/dev/dev.c' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='close_candev'>
+        <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/can/dev/dev.c' line='395' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='close_fd' mangled-name='close_fd' filepath='fs/file.c' line='663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='close_fd'>
+        <parameter type-id='f0981eeb' name='fd' filepath='fs/file.c' line='663' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cma_alloc' mangled-name='cma_alloc' filepath='mm/cma.c' line='436' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cma_alloc'>
+        <parameter type-id='6f67b38a' name='cma' filepath='mm/cma.c' line='436' column='1'/>
+        <parameter type-id='7359adad' name='count' filepath='mm/cma.c' line='436' column='1'/>
+        <parameter type-id='f0981eeb' name='align' filepath='mm/cma.c' line='437' column='1'/>
+        <parameter type-id='b50a4934' name='no_warn' filepath='mm/cma.c' line='437' column='1'/>
+        <return type-id='02f11ed4'/>
+      </function-decl>
+      <function-decl name='cma_for_each_area' mangled-name='cma_for_each_area' filepath='mm/cma.c' line='599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cma_for_each_area'>
+        <parameter type-id='0b3f2e4c' name='it' filepath='mm/cma.c' line='599' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='mm/cma.c' line='599' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cma_get_name' mangled-name='cma_get_name' filepath='mm/cma.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cma_get_name'>
+        <parameter type-id='4605de5b' name='cma' filepath='mm/cma.c' line='60' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='cma_release' mangled-name='cma_release' filepath='mm/cma.c' line='574' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cma_release'>
+        <parameter type-id='6f67b38a' name='cma' filepath='mm/cma.c' line='574' column='1'/>
+        <parameter type-id='b72f2447' name='pages' filepath='mm/cma.c' line='574' column='1'/>
+        <parameter type-id='7359adad' name='count' filepath='mm/cma.c' line='575' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='compat_ptr_ioctl' mangled-name='compat_ptr_ioctl' filepath='fs/ioctl.c' line='905' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_ptr_ioctl'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/ioctl.c' line='905' column='1'/>
+        <parameter type-id='f0981eeb' name='cmd' filepath='fs/ioctl.c' line='905' column='1'/>
+        <parameter type-id='7359adad' name='arg' filepath='fs/ioctl.c' line='905' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='complete' mangled-name='complete' filepath='kernel/sched/completion.c' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='complete'>
+        <parameter type-id='389faaf7' name='x' filepath='kernel/sched/completion.c' line='28' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='complete_all' mangled-name='complete_all' filepath='kernel/sched/completion.c' line='57' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='complete_all'>
+        <parameter type-id='389faaf7' name='x' filepath='kernel/sched/completion.c' line='57' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='complete_and_exit' mangled-name='complete_and_exit' filepath='kernel/exit.c' line='955' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='complete_and_exit'>
+        <parameter type-id='389faaf7' name='comp' filepath='kernel/exit.c' line='955' column='1'/>
+        <parameter type-id='bd54fe1a' name='code' filepath='kernel/exit.c' line='955' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='completion_done' mangled-name='completion_done' filepath='kernel/sched/completion.c' line='315' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='completion_done'>
+        <parameter type-id='389faaf7' name='x' filepath='kernel/sched/completion.c' line='315' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='component_add' mangled-name='component_add' filepath='drivers/base/component.c' line='734' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='component_add'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/component.c' line='734' column='1'/>
+        <parameter type-id='14f24806' name='ops' filepath='drivers/base/component.c' line='734' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='component_add_typed' mangled-name='component_add_typed' filepath='drivers/base/component.c' line='709' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='component_add_typed'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/component.c' line='709' column='1'/>
+        <parameter type-id='14f24806' name='ops' filepath='drivers/base/component.c' line='709' column='1'/>
+        <parameter type-id='95e97e5e' name='subcomponent' filepath='drivers/base/component.c' line='710' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='component_bind_all' mangled-name='component_bind_all' filepath='drivers/base/component.c' line='624' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='component_bind_all'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/base/component.c' line='624' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/component.c' line='624' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='component_del' mangled-name='component_del' filepath='drivers/base/component.c' line='749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='component_del'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/component.c' line='749' column='1'/>
+        <parameter type-id='14f24806' name='ops' filepath='drivers/base/component.c' line='749' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='component_master_add_with_match' mangled-name='component_master_add_with_match' filepath='drivers/base/component.c' line='459' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='component_master_add_with_match'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/base/component.c' line='459' column='1'/>
+        <parameter type-id='27729729' name='ops' filepath='drivers/base/component.c' line='460' column='1'/>
+        <parameter type-id='7d9421ac' name='match' filepath='drivers/base/component.c' line='461' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='component_master_del' mangled-name='component_master_del' filepath='drivers/base/component.c' line='504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='component_master_del'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/base/component.c' line='504' column='1'/>
+        <parameter type-id='27729729' name='ops' filepath='drivers/base/component.c' line='505' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='component_match_add_release' mangled-name='component_match_add_release' filepath='drivers/base/component.c' line='392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='component_match_add_release'>
+        <parameter type-id='fa0b179b' name='master' filepath='drivers/base/component.c' line='392' column='1'/>
+        <parameter type-id='3630c5f2' name='matchptr' filepath='drivers/base/component.c' line='393' column='1'/>
+        <parameter type-id='680bf43c' name='release' filepath='drivers/base/component.c' line='394' column='1'/>
+        <parameter type-id='92d15ae9' name='compare' filepath='drivers/base/component.c' line='395' column='1'/>
+        <parameter type-id='eaa32e2f' name='compare_data' filepath='drivers/base/component.c' line='395' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='component_match_add_typed' mangled-name='component_match_add_typed' filepath='drivers/base/component.c' line='419' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='component_match_add_typed'>
+        <parameter type-id='fa0b179b' name='master' filepath='drivers/base/component.c' line='419' column='1'/>
+        <parameter type-id='3630c5f2' name='matchptr' filepath='drivers/base/component.c' line='420' column='1'/>
+        <parameter type-id='78e7ce8e' name='compare_typed' filepath='drivers/base/component.c' line='421' column='1'/>
+        <parameter type-id='eaa32e2f' name='compare_data' filepath='drivers/base/component.c' line='421' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='component_unbind_all' mangled-name='component_unbind_all' filepath='drivers/base/component.c' line='541' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='component_unbind_all'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/base/component.c' line='541' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/component.c' line='541' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cond_synchronize_rcu' mangled-name='cond_synchronize_rcu' filepath='kernel/rcu/tree.c' line='3888' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cond_synchronize_rcu'>
+        <parameter type-id='7359adad' name='oldstate' filepath='kernel/rcu/tree.c' line='3888' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='config_ep_by_speed' mangled-name='config_ep_by_speed' filepath='drivers/usb/gadget/composite.c' line='292' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='config_ep_by_speed'>
+        <parameter type-id='49a58c0c' name='g' filepath='drivers/usb/gadget/composite.c' line='292' column='1'/>
+        <parameter type-id='e5411c2c' name='f' filepath='drivers/usb/gadget/composite.c' line='293' column='1'/>
+        <parameter type-id='63a08bf7' name='_ep' filepath='drivers/usb/gadget/composite.c' line='294' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='config_group_init' mangled-name='config_group_init' filepath='fs/configfs/item.c' line='157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='config_group_init'>
+        <parameter type-id='97aff453' name='group' filepath='fs/configfs/item.c' line='157' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='config_group_init_type_name' mangled-name='config_group_init_type_name' filepath='fs/configfs/item.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='config_group_init_type_name'>
+        <parameter type-id='97aff453' name='group' filepath='fs/configfs/item.c' line='92' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='fs/configfs/item.c' line='92' column='1'/>
+        <parameter type-id='596e8e55' name='type' filepath='fs/configfs/item.c' line='93' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='config_item_get' mangled-name='config_item_get' filepath='fs/configfs/item.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='config_item_get'>
+        <parameter type-id='7a29ff27' name='item' filepath='fs/configfs/item.c' line='101' column='1'/>
+        <return type-id='7a29ff27'/>
+      </function-decl>
+      <function-decl name='config_item_put' mangled-name='config_item_put' filepath='fs/configfs/item.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='config_item_put'>
+        <parameter type-id='7a29ff27' name='item' filepath='fs/configfs/item.c' line='146' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='config_item_set_name' mangled-name='config_item_set_name' filepath='fs/configfs/item.c' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='config_item_set_name'>
+        <parameter type-id='7a29ff27' name='item' filepath='fs/configfs/item.c' line='49' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='fs/configfs/item.c' line='49' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='configfs_register_group' mangled-name='configfs_register_group' filepath='fs/configfs/dir.c' line='1728' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='configfs_register_group'>
+        <parameter type-id='97aff453' name='parent_group' filepath='fs/configfs/dir.c' line='1728' column='1'/>
+        <parameter type-id='97aff453' name='group' filepath='fs/configfs/dir.c' line='1729' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='configfs_register_subsystem' mangled-name='configfs_register_subsystem' filepath='fs/configfs/dir.c' line='1849' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='configfs_register_subsystem'>
+        <parameter type-id='598755ca' name='subsys' filepath='fs/configfs/dir.c' line='1849' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='configfs_unregister_subsystem' mangled-name='configfs_unregister_subsystem' filepath='fs/configfs/dir.c' line='1909' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='configfs_unregister_subsystem'>
+        <parameter type-id='598755ca' name='subsys' filepath='fs/configfs/dir.c' line='1909' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='congestion_wait' mangled-name='congestion_wait' filepath='mm/backing-dev.c' line='1035' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='congestion_wait'>
+        <parameter type-id='95e97e5e' name='sync' filepath='mm/backing-dev.c' line='1035' column='1'/>
+        <parameter type-id='bd54fe1a' name='timeout' filepath='mm/backing-dev.c' line='1035' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='console_lock' mangled-name='console_lock' filepath='kernel/printk/printk.c' line='2569' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='console_lock'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='console_printk' type-id='2020bac4' mangled-name='console_printk' visibility='default' filepath='kernel/printk/printk.c' line='66' column='1' elf-symbol-id='console_printk'/>
+      <var-decl name='console_set_on_cmdline' type-id='95e97e5e' mangled-name='console_set_on_cmdline' visibility='default' filepath='kernel/printk/printk.c' line='289' column='1' elf-symbol-id='console_set_on_cmdline'/>
+      <function-decl name='console_stop' mangled-name='console_stop' filepath='kernel/printk/printk.c' line='2876' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='console_stop'>
+        <parameter type-id='b9aa0100' name='console' filepath='kernel/printk/printk.c' line='2876' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='console_suspend_enabled' type-id='b50a4934' mangled-name='console_suspend_enabled' visibility='default' filepath='kernel/printk/printk.c' line='2486' column='1' elf-symbol-id='console_suspend_enabled'/>
+      <function-decl name='console_trylock' mangled-name='console_trylock' filepath='kernel/printk/printk.c' line='2589' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='console_trylock'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='console_unlock' mangled-name='console_unlock' filepath='kernel/printk/printk.c' line='2651' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='console_unlock'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='console_verbose' mangled-name='console_verbose' filepath='kernel/printk/printk.c' line='2502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='console_verbose'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='consume_skb' mangled-name='consume_skb' filepath='net/core/skbuff.c' line='924' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='consume_skb'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='924' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cont_write_begin' mangled-name='cont_write_begin' filepath='fs/buffer.c' line='2451' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cont_write_begin'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/buffer.c' line='2451' column='1'/>
+        <parameter type-id='f57039f0' name='mapping' filepath='fs/buffer.c' line='2451' column='1'/>
+        <parameter type-id='69bf7bee' name='pos' filepath='fs/buffer.c' line='2452' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='fs/buffer.c' line='2452' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='fs/buffer.c' line='2452' column='1'/>
+        <parameter type-id='9f93c9da' name='pagep' filepath='fs/buffer.c' line='2453' column='1'/>
+        <parameter type-id='63e171df' name='fsdata' filepath='fs/buffer.c' line='2453' column='1'/>
+        <parameter type-id='05ca8778' name='get_block' filepath='fs/buffer.c' line='2454' column='1'/>
+        <parameter type-id='b53e8dbb' name='bytes' filepath='fs/buffer.c' line='2454' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='contig_page_data' type-id='54406315' mangled-name='contig_page_data' visibility='default' filepath='mm/memblock.c' line='96' column='1' elf-symbol-id='contig_page_data'/>
+      <function-decl name='copy_from_kernel_nofault' mangled-name='copy_from_kernel_nofault' filepath='mm/maccess.c' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='copy_from_kernel_nofault'>
+        <parameter type-id='eaa32e2f' name='dst' filepath='mm/maccess.c' line='25' column='1'/>
+        <parameter type-id='eaa32e2f' name='src' filepath='mm/maccess.c' line='25' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='mm/maccess.c' line='25' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='copy_from_user_nofault' mangled-name='copy_from_user_nofault' filepath='mm/maccess.c' line='221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='copy_from_user_nofault'>
+        <parameter type-id='eaa32e2f' name='dst' filepath='mm/maccess.c' line='221' column='1'/>
+        <parameter type-id='eaa32e2f' name='src' filepath='mm/maccess.c' line='221' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='mm/maccess.c' line='221' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='copy_from_user_toio' mangled-name='copy_from_user_toio' filepath='sound/core/memory.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='copy_from_user_toio'>
+        <parameter type-id='fe09dd29' name='dst' filepath='sound/core/memory.c' line='55' column='1'/>
+        <parameter type-id='eaa32e2f' name='src' filepath='sound/core/memory.c' line='55' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='sound/core/memory.c' line='55' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='copy_page_from_iter_atomic' mangled-name='copy_page_from_iter_atomic' filepath='lib/iov_iter.c' line='965' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='copy_page_from_iter_atomic'>
+        <parameter type-id='02f11ed4' name='page' filepath='lib/iov_iter.c' line='965' column='1'/>
+        <parameter type-id='f0981eeb' name='offset' filepath='lib/iov_iter.c' line='965' column='1'/>
+        <parameter type-id='b59d7dce' name='bytes' filepath='lib/iov_iter.c' line='965' column='1'/>
+        <parameter type-id='4fa10f9e' name='i' filepath='lib/iov_iter.c' line='966' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='copy_to_user_fromio' mangled-name='copy_to_user_fromio' filepath='sound/core/memory.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='copy_to_user_fromio'>
+        <parameter type-id='eaa32e2f' name='dst' filepath='sound/core/memory.c' line='23' column='1'/>
+        <parameter type-id='60f8eab0' name='src' filepath='sound/core/memory.c' line='23' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='sound/core/memory.c' line='23' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='cpu_all_bits' type-id='afe549fd' mangled-name='cpu_all_bits' visibility='default' filepath='kernel/cpu.c' line='2672' column='1' elf-symbol-id='cpu_all_bits'/>
+      <var-decl name='cpu_bit_bitmap' type-id='f959706c' mangled-name='cpu_bit_bitmap' visibility='default' filepath='kernel/cpu.c' line='2661' column='1' elf-symbol-id='cpu_bit_bitmap'/>
+      <function-decl name='cpu_have_feature' mangled-name='cpu_have_feature' filepath='arch/arm64/kernel/cpufeature.c' line='2868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpu_have_feature'>
+        <parameter type-id='f0981eeb' name='num' filepath='arch/arm64/kernel/cpufeature.c' line='2868' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='cpu_hotplug_disable' mangled-name='cpu_hotplug_disable' filepath='kernel/cpu.c' line='374' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpu_hotplug_disable'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpu_hotplug_enable' mangled-name='cpu_hotplug_enable' filepath='kernel/cpu.c' line='389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpu_hotplug_enable'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='cpu_hwcap_keys' type-id='627ff32f' mangled-name='cpu_hwcap_keys' visibility='default' filepath='arch/arm64/kernel/cpufeature.c' line='158' column='1' elf-symbol-id='cpu_hwcap_keys'/>
+      <var-decl name='cpu_hwcaps' type-id='f05e8e77' mangled-name='cpu_hwcaps' visibility='default' filepath='arch/arm64/kernel/cpufeature.c' line='106' column='1' elf-symbol-id='cpu_hwcaps'/>
+      <var-decl name='cpu_irqtime' type-id='3f278a28' mangled-name='cpu_irqtime' visibility='default' filepath='kernel/sched/cputime.c' line='22' column='1' elf-symbol-id='cpu_irqtime'/>
+      <function-decl name='cpu_is_hotpluggable' mangled-name='cpu_is_hotpluggable' filepath='drivers/base/cpu.c' line='487' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpu_is_hotpluggable'>
+        <parameter type-id='f0981eeb' name='cpu' filepath='drivers/base/cpu.c' line='487' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='cpu_latency_qos_add_request' mangled-name='cpu_latency_qos_add_request' filepath='kernel/power/qos.c' line='267' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpu_latency_qos_add_request'>
+        <parameter type-id='221c3010' name='req' filepath='kernel/power/qos.c' line='267' column='1'/>
+        <parameter type-id='a7832498' name='value' filepath='kernel/power/qos.c' line='267' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpu_latency_qos_remove_request' mangled-name='cpu_latency_qos_remove_request' filepath='kernel/power/qos.c' line='319' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpu_latency_qos_remove_request'>
+        <parameter type-id='221c3010' name='req' filepath='kernel/power/qos.c' line='319' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpu_latency_qos_request_active' mangled-name='cpu_latency_qos_request_active' filepath='kernel/power/qos.c' line='241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpu_latency_qos_request_active'>
+        <parameter type-id='221c3010' name='req' filepath='kernel/power/qos.c' line='241' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='cpu_latency_qos_update_request' mangled-name='cpu_latency_qos_update_request' filepath='kernel/power/qos.c' line='293' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpu_latency_qos_update_request'>
+        <parameter type-id='221c3010' name='req' filepath='kernel/power/qos.c' line='293' column='1'/>
+        <parameter type-id='a7832498' name='new_value' filepath='kernel/power/qos.c' line='293' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='cpu_number' type-id='95e97e5e' mangled-name='cpu_number' visibility='default' filepath='arch/arm64/kernel/smp.c' line='59' column='1' elf-symbol-id='cpu_number'/>
+      <function-decl name='cpu_pm_register_notifier' mangled-name='cpu_pm_register_notifier' filepath='kernel/cpu_pm.c' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpu_pm_register_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='kernel/cpu_pm.c' line='70' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpu_pm_unregister_notifier' mangled-name='cpu_pm_unregister_notifier' filepath='kernel/cpu_pm.c' line='90' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpu_pm_unregister_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='kernel/cpu_pm.c' line='90' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='cpu_scale' type-id='7359adad' mangled-name='cpu_scale' visibility='default' filepath='drivers/base/arch_topology.c' line='154' column='1' elf-symbol-id='cpu_scale'/>
+      <var-decl name='cpu_subsys' type-id='b31bfc8a' mangled-name='cpu_subsys' visibility='default' filepath='drivers/base/cpu.c' line='128' column='1' elf-symbol-id='cpu_subsys'/>
+      <var-decl name='cpu_topology' type-id='366d2368' mangled-name='cpu_topology' visibility='default' filepath='drivers/base/arch_topology.c' line='594' column='1' elf-symbol-id='cpu_topology'/>
+      <function-decl name='cpufreq_add_update_util_hook' mangled-name='cpufreq_add_update_util_hook' filepath='kernel/sched/cpufreq.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_add_update_util_hook'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/cpufreq.c' line='33' column='1'/>
+        <parameter type-id='f681f934' name='data' filepath='kernel/sched/cpufreq.c' line='33' column='1'/>
+        <parameter type-id='2cd87b91' name='func' filepath='kernel/sched/cpufreq.c' line='34' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpufreq_boost_enabled' mangled-name='cpufreq_boost_enabled' filepath='drivers/cpufreq/cpufreq.c' line='2769' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_boost_enabled'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpufreq_cooling_register' mangled-name='cpufreq_cooling_register' filepath='drivers/thermal/cpufreq_cooling.c' line='627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_cooling_register'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/thermal/cpufreq_cooling.c' line='627' column='1'/>
+        <return type-id='2feec21f'/>
+      </function-decl>
+      <function-decl name='cpufreq_cooling_unregister' mangled-name='cpufreq_cooling_unregister' filepath='drivers/thermal/cpufreq_cooling.c' line='686' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_cooling_unregister'>
+        <parameter type-id='2feec21f' name='cdev' filepath='drivers/thermal/cpufreq_cooling.c' line='686' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpufreq_cpu_get' mangled-name='cpufreq_cpu_get' filepath='drivers/cpufreq/cpufreq.c' line='219' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_cpu_get'>
+        <parameter type-id='f0981eeb' name='cpu' filepath='drivers/cpufreq/cpufreq.c' line='219' column='1'/>
+        <return type-id='343c3ae4'/>
+      </function-decl>
+      <function-decl name='cpufreq_cpu_get_raw' mangled-name='cpufreq_cpu_get_raw' filepath='drivers/cpufreq/cpufreq.c' line='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_cpu_get_raw'>
+        <parameter type-id='f0981eeb' name='cpu' filepath='drivers/cpufreq/cpufreq.c' line='186' column='1'/>
+        <return type-id='343c3ae4'/>
+      </function-decl>
+      <function-decl name='cpufreq_cpu_put' mangled-name='cpufreq_cpu_put' filepath='drivers/cpufreq/cpufreq.c' line='247' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_cpu_put'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq.c' line='247' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpufreq_dbs_governor_exit' mangled-name='cpufreq_dbs_governor_exit' filepath='drivers/cpufreq/cpufreq_governor.c' line='477' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_dbs_governor_exit'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq_governor.c' line='477' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpufreq_dbs_governor_init' mangled-name='cpufreq_dbs_governor_init' filepath='drivers/cpufreq/cpufreq_governor.c' line='391' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_dbs_governor_init'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq_governor.c' line='391' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpufreq_dbs_governor_limits' mangled-name='cpufreq_dbs_governor_limits' filepath='drivers/cpufreq/cpufreq_governor.c' line='555' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_dbs_governor_limits'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq_governor.c' line='555' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpufreq_dbs_governor_start' mangled-name='cpufreq_dbs_governor_start' filepath='drivers/cpufreq/cpufreq_governor.c' line='505' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_dbs_governor_start'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq_governor.c' line='505' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpufreq_dbs_governor_stop' mangled-name='cpufreq_dbs_governor_stop' filepath='drivers/cpufreq/cpufreq_governor.c' line='543' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_dbs_governor_stop'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq_governor.c' line='543' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpufreq_disable_fast_switch' mangled-name='cpufreq_disable_fast_switch' filepath='drivers/cpufreq/cpufreq.c' line='521' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_disable_fast_switch'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq.c' line='521' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpufreq_driver_fast_switch' mangled-name='cpufreq_driver_fast_switch' filepath='drivers/cpufreq/cpufreq.c' line='2116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_driver_fast_switch'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq.c' line='2116' column='1'/>
+        <parameter type-id='f0981eeb' name='target_freq' filepath='drivers/cpufreq/cpufreq.c' line='2117' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='cpufreq_driver_resolve_freq' mangled-name='cpufreq_driver_resolve_freq' filepath='drivers/cpufreq/cpufreq.c' line='562' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_driver_resolve_freq'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq.c' line='562' column='1'/>
+        <parameter type-id='f0981eeb' name='target_freq' filepath='drivers/cpufreq/cpufreq.c' line='563' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='cpufreq_driver_target' mangled-name='cpufreq_driver_target' filepath='drivers/cpufreq/cpufreq.c' line='2308' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_driver_target'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq.c' line='2308' column='1'/>
+        <parameter type-id='f0981eeb' name='target_freq' filepath='drivers/cpufreq/cpufreq.c' line='2309' column='1'/>
+        <parameter type-id='f0981eeb' name='relation' filepath='drivers/cpufreq/cpufreq.c' line='2310' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpufreq_enable_boost_support' mangled-name='cpufreq_enable_boost_support' filepath='drivers/cpufreq/cpufreq.c' line='2754' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_enable_boost_support'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpufreq_enable_fast_switch' mangled-name='cpufreq_enable_fast_switch' filepath='drivers/cpufreq/cpufreq.c' line='497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_enable_fast_switch'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq.c' line='497' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='cpufreq_freq_attr_scaling_available_freqs' type-id='9f2d4ea3' mangled-name='cpufreq_freq_attr_scaling_available_freqs' visibility='default' filepath='drivers/cpufreq/freq_table.c' line='280' column='1' elf-symbol-id='cpufreq_freq_attr_scaling_available_freqs'/>
+      <var-decl name='cpufreq_freq_attr_scaling_boost_freqs' type-id='9f2d4ea3' mangled-name='cpufreq_freq_attr_scaling_boost_freqs' visibility='default' filepath='drivers/cpufreq/freq_table.c' line='292' column='1' elf-symbol-id='cpufreq_freq_attr_scaling_boost_freqs'/>
+      <function-decl name='cpufreq_freq_transition_begin' mangled-name='cpufreq_freq_transition_begin' filepath='drivers/cpufreq/cpufreq.c' line='412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_freq_transition_begin'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq.c' line='412' column='1'/>
+        <parameter type-id='857d6f7f' name='freqs' filepath='drivers/cpufreq/cpufreq.c' line='413' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpufreq_freq_transition_end' mangled-name='cpufreq_freq_transition_end' filepath='drivers/cpufreq/cpufreq.c' line='446' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_freq_transition_end'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq.c' line='446' column='1'/>
+        <parameter type-id='857d6f7f' name='freqs' filepath='drivers/cpufreq/cpufreq.c' line='447' column='1'/>
+        <parameter type-id='95e97e5e' name='transition_failed' filepath='drivers/cpufreq/cpufreq.c' line='447' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpufreq_frequency_table_get_index' mangled-name='cpufreq_frequency_table_get_index' filepath='drivers/cpufreq/freq_table.c' line='213' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_frequency_table_get_index'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/freq_table.c' line='213' column='1'/>
+        <parameter type-id='f0981eeb' name='freq' filepath='drivers/cpufreq/freq_table.c' line='214' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpufreq_frequency_table_verify' mangled-name='cpufreq_frequency_table_verify' filepath='drivers/cpufreq/freq_table.c' line='71' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_frequency_table_verify'>
+        <parameter type-id='5aa4f86b' name='policy' filepath='drivers/cpufreq/freq_table.c' line='71' column='1'/>
+        <parameter type-id='3b8b42e1' name='table' filepath='drivers/cpufreq/freq_table.c' line='72' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='cpufreq_generic_attr' type-id='82486e89' mangled-name='cpufreq_generic_attr' visibility='default' filepath='drivers/cpufreq/freq_table.c' line='295' column='1' elf-symbol-id='cpufreq_generic_attr'/>
+      <function-decl name='cpufreq_generic_frequency_table_verify' mangled-name='cpufreq_generic_frequency_table_verify' filepath='drivers/cpufreq/freq_table.c' line='111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_generic_frequency_table_verify'>
+        <parameter type-id='5aa4f86b' name='policy' filepath='drivers/cpufreq/freq_table.c' line='111' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpufreq_generic_get' mangled-name='cpufreq_generic_get' filepath='drivers/cpufreq/cpufreq.c' line='194' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_generic_get'>
+        <parameter type-id='f0981eeb' name='cpu' filepath='drivers/cpufreq/cpufreq.c' line='194' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='cpufreq_generic_suspend' mangled-name='cpufreq_generic_suspend' filepath='drivers/cpufreq/cpufreq.c' line='1858' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_generic_suspend'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq.c' line='1858' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpufreq_get' mangled-name='cpufreq_get' filepath='drivers/cpufreq/cpufreq.c' line='1829' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_get'>
+        <parameter type-id='f0981eeb' name='cpu' filepath='drivers/cpufreq/cpufreq.c' line='1829' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='cpufreq_get_driver_data' mangled-name='cpufreq_get_driver_data' filepath='drivers/cpufreq/cpufreq.c' line='1989' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_get_driver_data'>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='cpufreq_get_policy' mangled-name='cpufreq_get_policy' filepath='drivers/cpufreq/cpufreq.c' line='2500' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_get_policy'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq.c' line='2500' column='1'/>
+        <parameter type-id='f0981eeb' name='cpu' filepath='drivers/cpufreq/cpufreq.c' line='2500' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpufreq_policy_transition_delay_us' mangled-name='cpufreq_policy_transition_delay_us' filepath='drivers/cpufreq/cpufreq.c' line='569' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_policy_transition_delay_us'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq.c' line='569' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='cpufreq_quick_get' mangled-name='cpufreq_quick_get' filepath='drivers/cpufreq/cpufreq.c' line='1749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_quick_get'>
+        <parameter type-id='f0981eeb' name='cpu' filepath='drivers/cpufreq/cpufreq.c' line='1749' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='cpufreq_quick_get_max' mangled-name='cpufreq_quick_get_max' filepath='drivers/cpufreq/cpufreq.c' line='1781' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_quick_get_max'>
+        <parameter type-id='f0981eeb' name='cpu' filepath='drivers/cpufreq/cpufreq.c' line='1781' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='cpufreq_register_driver' mangled-name='cpufreq_register_driver' filepath='drivers/cpufreq/cpufreq.c' line='2804' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_register_driver'>
+        <parameter type-id='eb90c228' name='driver_data' filepath='drivers/cpufreq/cpufreq.c' line='2804' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpufreq_register_governor' mangled-name='cpufreq_register_governor' filepath='drivers/cpufreq/cpufreq.c' line='2437' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_register_governor'>
+        <parameter type-id='6925355c' name='governor' filepath='drivers/cpufreq/cpufreq.c' line='2437' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpufreq_register_notifier' mangled-name='cpufreq_register_notifier' filepath='drivers/cpufreq/cpufreq.c' line='2014' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_register_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/cpufreq/cpufreq.c' line='2014' column='1'/>
+        <parameter type-id='f0981eeb' name='list' filepath='drivers/cpufreq/cpufreq.c' line='2014' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpufreq_remove_update_util_hook' mangled-name='cpufreq_remove_update_util_hook' filepath='kernel/sched/cpufreq.c' line='58' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_remove_update_util_hook'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/cpufreq.c' line='58' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpufreq_table_index_unsorted' mangled-name='cpufreq_table_index_unsorted' filepath='drivers/cpufreq/freq_table.c' line='120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_table_index_unsorted'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/freq_table.c' line='120' column='1'/>
+        <parameter type-id='f0981eeb' name='target_freq' filepath='drivers/cpufreq/freq_table.c' line='121' column='1'/>
+        <parameter type-id='f0981eeb' name='relation' filepath='drivers/cpufreq/freq_table.c' line='122' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpufreq_this_cpu_can_update' mangled-name='cpufreq_this_cpu_can_update' filepath='kernel/sched/cpufreq.c' line='73' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_this_cpu_can_update'>
+        <parameter type-id='343c3ae4' name='policy' filepath='kernel/sched/cpufreq.c' line='73' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='cpufreq_unregister_driver' mangled-name='cpufreq_unregister_driver' filepath='drivers/cpufreq/cpufreq.c' line='2906' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_unregister_driver'>
+        <parameter type-id='eb90c228' name='driver' filepath='drivers/cpufreq/cpufreq.c' line='2906' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpufreq_unregister_governor' mangled-name='cpufreq_unregister_governor' filepath='drivers/cpufreq/cpufreq.c' line='2460' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_unregister_governor'>
+        <parameter type-id='6925355c' name='governor' filepath='drivers/cpufreq/cpufreq.c' line='2460' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpufreq_unregister_notifier' mangled-name='cpufreq_unregister_notifier' filepath='drivers/cpufreq/cpufreq.c' line='2058' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_unregister_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/cpufreq/cpufreq.c' line='2058' column='1'/>
+        <parameter type-id='f0981eeb' name='list' filepath='drivers/cpufreq/cpufreq.c' line='2058' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpufreq_update_limits' mangled-name='cpufreq_update_limits' filepath='drivers/cpufreq/cpufreq.c' line='2663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_update_limits'>
+        <parameter type-id='f0981eeb' name='cpu' filepath='drivers/cpufreq/cpufreq.c' line='2663' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpufreq_update_policy' mangled-name='cpufreq_update_policy' filepath='drivers/cpufreq/cpufreq.c' line='2634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_update_policy'>
+        <parameter type-id='f0981eeb' name='cpu' filepath='drivers/cpufreq/cpufreq.c' line='2634' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='cpufreq_update_util_data' type-id='f681f934' mangled-name='cpufreq_update_util_data' visibility='default' filepath='kernel/sched/cpufreq.c' line='12' column='1' elf-symbol-id='cpufreq_update_util_data'/>
+      <var-decl name='cpuhp_tasks_frozen' type-id='b50a4934' mangled-name='cpuhp_tasks_frozen' visibility='default' filepath='kernel/cpu.c' line='281' column='1' elf-symbol-id='cpuhp_tasks_frozen'/>
+      <function-decl name='cpuidle_driver_state_disabled' mangled-name='cpuidle_driver_state_disabled' filepath='drivers/cpuidle/driver.c' line='357' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpuidle_driver_state_disabled'>
+        <parameter type-id='809cdefc' name='drv' filepath='drivers/cpuidle/driver.c' line='357' column='1'/>
+        <parameter type-id='95e97e5e' name='idx' filepath='drivers/cpuidle/driver.c' line='357' column='1'/>
+        <parameter type-id='b50a4934' name='disable' filepath='drivers/cpuidle/driver.c' line='358' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpuidle_get_cpu_driver' mangled-name='cpuidle_get_cpu_driver' filepath='drivers/cpuidle/driver.c' line='342' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpuidle_get_cpu_driver'>
+        <parameter type-id='1b0e1d00' name='dev' filepath='drivers/cpuidle/driver.c' line='342' column='1'/>
+        <return type-id='809cdefc'/>
+      </function-decl>
+      <function-decl name='cpuidle_get_driver' mangled-name='cpuidle_get_driver' filepath='drivers/cpuidle/driver.c' line='322' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpuidle_get_driver'>
+        <return type-id='809cdefc'/>
+      </function-decl>
+      <function-decl name='cpuidle_governor_latency_req' mangled-name='cpuidle_governor_latency_req' filepath='drivers/cpuidle/governor.c' line='111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpuidle_governor_latency_req'>
+        <parameter type-id='f0981eeb' name='cpu' filepath='drivers/cpuidle/governor.c' line='111' column='1'/>
+        <return type-id='9b7c55ef'/>
+      </function-decl>
+      <function-decl name='cpuidle_pause_and_lock' mangled-name='cpuidle_pause_and_lock' filepath='drivers/cpuidle/cpuidle.c' line='468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpuidle_pause_and_lock'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpuidle_register_governor' mangled-name='cpuidle_register_governor' filepath='drivers/cpuidle/governor.c' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpuidle_register_governor'>
+        <parameter type-id='ef7f4688' name='gov' filepath='drivers/cpuidle/governor.c' line='80' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpuidle_resume_and_unlock' mangled-name='cpuidle_resume_and_unlock' filepath='drivers/cpuidle/cpuidle.c' line='479' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpuidle_resume_and_unlock'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpumask_any_and_distribute' mangled-name='cpumask_any_and_distribute' filepath='lib/cpumask.c' line='246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpumask_any_and_distribute'>
+        <parameter type-id='5f8a1ac4' name='src1p' filepath='lib/cpumask.c' line='246' column='1'/>
+        <parameter type-id='5f8a1ac4' name='src2p' filepath='lib/cpumask.c' line='247' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpumask_any_but' mangled-name='cpumask_any_but' filepath='lib/cpumask.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpumask_any_but'>
+        <parameter type-id='5f8a1ac4' name='mask' filepath='lib/cpumask.c' line='53' column='1'/>
+        <parameter type-id='f0981eeb' name='cpu' filepath='lib/cpumask.c' line='53' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpumask_any_distribute' mangled-name='cpumask_any_distribute' filepath='lib/cpumask.c' line='265' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpumask_any_distribute'>
+        <parameter type-id='5f8a1ac4' name='srcp' filepath='lib/cpumask.c' line='265' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpumask_next' mangled-name='cpumask_next' filepath='lib/cpumask.c' line='17' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpumask_next'>
+        <parameter type-id='95e97e5e' name='n' filepath='lib/cpumask.c' line='17' column='1'/>
+        <parameter type-id='5f8a1ac4' name='srcp' filepath='lib/cpumask.c' line='17' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='cpumask_next_and' mangled-name='cpumask_next_and' filepath='lib/cpumask.c' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpumask_next_and'>
+        <parameter type-id='95e97e5e' name='n' filepath='lib/cpumask.c' line='34' column='1'/>
+        <parameter type-id='5f8a1ac4' name='src1p' filepath='lib/cpumask.c' line='34' column='1'/>
+        <parameter type-id='5f8a1ac4' name='src2p' filepath='lib/cpumask.c' line='35' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpumask_next_wrap' mangled-name='cpumask_next_wrap' filepath='lib/cpumask.c' line='77' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpumask_next_wrap'>
+        <parameter type-id='95e97e5e' name='n' filepath='lib/cpumask.c' line='77' column='1'/>
+        <parameter type-id='5f8a1ac4' name='mask' filepath='lib/cpumask.c' line='77' column='1'/>
+        <parameter type-id='95e97e5e' name='start' filepath='lib/cpumask.c' line='77' column='1'/>
+        <parameter type-id='b50a4934' name='wrap' filepath='lib/cpumask.c' line='77' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpupri_find_fitness' mangled-name='cpupri_find_fitness' filepath='kernel/sched/cpupri.c' line='170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpupri_find_fitness'>
+        <parameter type-id='15c7dfa4' name='cp' filepath='kernel/sched/cpupri.c' line='170' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/cpupri.c' line='170' column='1'/>
+        <parameter type-id='74bccedd' name='lowest_mask' filepath='kernel/sched/cpupri.c' line='171' column='1'/>
+        <parameter type-id='cf77d29f' name='fitness_fn' filepath='kernel/sched/cpupri.c' line='172' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='cpus_read_lock' mangled-name='cpus_read_lock' filepath='kernel/cpu.c' line='308' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpus_read_lock'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpus_read_unlock' mangled-name='cpus_read_unlock' filepath='kernel/cpu.c' line='320' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpus_read_unlock'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='cpuset_cpus_allowed' mangled-name='cpuset_cpus_allowed' filepath='kernel/cgroup/cpuset.c' line='3487' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpuset_cpus_allowed'>
+        <parameter type-id='f23e2572' name='tsk' filepath='kernel/cgroup/cpuset.c' line='3487' column='1'/>
+        <parameter type-id='74bccedd' name='pmask' filepath='kernel/cgroup/cpuset.c' line='3487' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crc16' mangled-name='crc16' filepath='lib/crc16.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crc16'>
+        <parameter type-id='1dc6a898' name='crc' filepath='lib/crc16.c' line='55' column='1'/>
+        <parameter type-id='bbaf3419' name='buffer' filepath='lib/crc16.c' line='55' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='lib/crc16.c' line='55' column='1'/>
+        <return type-id='1dc6a898'/>
+      </function-decl>
+      <function-decl name='crc32_be' mangled-name='crc32_be' filepath='lib/crc32.c' line='340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crc32_be'>
+        <parameter type-id='19c2251e' name='crc' filepath='lib/crc32.c' line='340' column='1'/>
+        <parameter type-id='354f7eb9' name='p' filepath='lib/crc32.c' line='340' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='lib/crc32.c' line='340' column='1'/>
+        <return type-id='19c2251e'/>
+      </function-decl>
+      <function-decl name='crc8' mangled-name='crc8' filepath='lib/crc8.c' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crc8'>
+        <parameter type-id='bbaf3419' name='table' filepath='lib/crc8.c' line='74' column='1'/>
+        <parameter type-id='bbaf3419' name='pdata' filepath='lib/crc8.c' line='74' column='1'/>
+        <parameter type-id='b59d7dce' name='nbytes' filepath='lib/crc8.c' line='74' column='1'/>
+        <parameter type-id='f9b06939' name='crc' filepath='lib/crc8.c' line='74' column='1'/>
+        <return type-id='f9b06939'/>
+      </function-decl>
+      <function-decl name='crc8_populate_msb' mangled-name='crc8_populate_msb' filepath='lib/crc8.c' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crc8_populate_msb'>
+        <parameter type-id='8bff8096' name='table' filepath='lib/crc8.c' line='29' column='1'/>
+        <parameter type-id='f9b06939' name='polynomial' filepath='lib/crc8.c' line='29' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crc_ccitt' mangled-name='crc_ccitt' filepath='lib/crc-ccitt.c' line='99' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crc_ccitt'>
+        <parameter type-id='1dc6a898' name='crc' filepath='lib/crc-ccitt.c' line='99' column='1'/>
+        <parameter type-id='bbaf3419' name='buffer' filepath='lib/crc-ccitt.c' line='99' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='lib/crc-ccitt.c' line='99' column='1'/>
+        <return type-id='1dc6a898'/>
+      </function-decl>
+      <var-decl name='crc_ccitt_table' type-id='765f36d9' mangled-name='crc_ccitt_table' visibility='default' filepath='lib/crc-ccitt.c' line='16' column='1' elf-symbol-id='crc_ccitt_table'/>
+      <function-decl name='create_empty_buffers' mangled-name='create_empty_buffers' filepath='fs/buffer.c' line='1557' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_empty_buffers'>
+        <parameter type-id='02f11ed4' name='page' filepath='fs/buffer.c' line='1557' column='1'/>
+        <parameter type-id='7359adad' name='blocksize' filepath='fs/buffer.c' line='1558' column='1'/>
+        <parameter type-id='7359adad' name='b_state' filepath='fs/buffer.c' line='1558' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='create_function_device' mangled-name='create_function_device' filepath='drivers/usb/gadget/configfs.c' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='create_function_device'>
+        <parameter type-id='26a90f95' name='name' filepath='drivers/usb/gadget/configfs.c' line='28' column='1'/>
+        <return type-id='fa0b179b'/>
+      </function-decl>
+      <function-decl name='crypto_aead_decrypt' mangled-name='crypto_aead_decrypt' filepath='crypto/aead.c' line='100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_aead_decrypt'>
+        <parameter type-id='146bc842' name='req' filepath='crypto/aead.c' line='100' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_aead_encrypt' mangled-name='crypto_aead_encrypt' filepath='crypto/aead.c' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_aead_encrypt'>
+        <parameter type-id='146bc842' name='req' filepath='crypto/aead.c' line='83' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_aead_setauthsize' mangled-name='crypto_aead_setauthsize' filepath='crypto/aead.c' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_aead_setauthsize'>
+        <parameter type-id='a585cbc4' name='tfm' filepath='crypto/aead.c' line='64' column='1'/>
+        <parameter type-id='f0981eeb' name='authsize' filepath='crypto/aead.c' line='64' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_aead_setkey' mangled-name='crypto_aead_setkey' filepath='crypto/aead.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_aead_setkey'>
+        <parameter type-id='a585cbc4' name='tfm' filepath='crypto/aead.c' line='43' column='1'/>
+        <parameter type-id='bbaf3419' name='key' filepath='crypto/aead.c' line='44' column='1'/>
+        <parameter type-id='f0981eeb' name='keylen' filepath='crypto/aead.c' line='44' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_ahash_digest' mangled-name='crypto_ahash_digest' filepath='crypto/ahash.c' line='368' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_ahash_digest'>
+        <parameter type-id='6f3c82ac' name='req' filepath='crypto/ahash.c' line='368' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_ahash_finup' mangled-name='crypto_ahash_finup' filepath='crypto/ahash.c' line='354' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_ahash_finup'>
+        <parameter type-id='6f3c82ac' name='req' filepath='crypto/ahash.c' line='354' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_ahash_setkey' mangled-name='crypto_ahash_setkey' filepath='crypto/ahash.c' line='172' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_ahash_setkey'>
+        <parameter type-id='1351523a' name='tfm' filepath='crypto/ahash.c' line='172' column='1'/>
+        <parameter type-id='bbaf3419' name='key' filepath='crypto/ahash.c' line='172' column='1'/>
+        <parameter type-id='f0981eeb' name='keylen' filepath='crypto/ahash.c' line='173' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='crypto_alg_list' type-id='72f469ec' mangled-name='crypto_alg_list' visibility='default' filepath='crypto/api.c' line='26' column='1' elf-symbol-id='crypto_alg_list'/>
+      <var-decl name='crypto_alg_sem' type-id='f19fdb93' mangled-name='crypto_alg_sem' visibility='default' filepath='crypto/api.c' line='28' column='1' elf-symbol-id='crypto_alg_sem'/>
+      <function-decl name='crypto_alloc_aead' mangled-name='crypto_alloc_aead' filepath='crypto/aead.c' line='214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_alloc_aead'>
+        <parameter type-id='80f4b756' name='alg_name' filepath='crypto/aead.c' line='214' column='1'/>
+        <parameter type-id='19c2251e' name='type' filepath='crypto/aead.c' line='214' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='crypto/aead.c' line='214' column='1'/>
+        <return type-id='a585cbc4'/>
+      </function-decl>
+      <function-decl name='crypto_alloc_ahash' mangled-name='crypto_alloc_ahash' filepath='crypto/ahash.c' line='555' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_alloc_ahash'>
+        <parameter type-id='80f4b756' name='alg_name' filepath='crypto/ahash.c' line='555' column='1'/>
+        <parameter type-id='19c2251e' name='type' filepath='crypto/ahash.c' line='555' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='crypto/ahash.c' line='556' column='1'/>
+        <return type-id='1351523a'/>
+      </function-decl>
+      <function-decl name='crypto_alloc_base' mangled-name='crypto_alloc_base' filepath='crypto/api.c' line='441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_alloc_base'>
+        <parameter type-id='80f4b756' name='alg_name' filepath='crypto/api.c' line='441' column='1'/>
+        <parameter type-id='19c2251e' name='type' filepath='crypto/api.c' line='441' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='crypto/api.c' line='441' column='1'/>
+        <return type-id='dfeb7f6c'/>
+      </function-decl>
+      <function-decl name='crypto_alloc_rng' mangled-name='crypto_alloc_rng' filepath='crypto/rng.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_alloc_rng'>
+        <parameter type-id='80f4b756' name='alg_name' filepath='crypto/rng.c' line='110' column='1'/>
+        <parameter type-id='19c2251e' name='type' filepath='crypto/rng.c' line='110' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='crypto/rng.c' line='110' column='1'/>
+        <return type-id='5474f420'/>
+      </function-decl>
+      <function-decl name='crypto_alloc_shash' mangled-name='crypto_alloc_shash' filepath='crypto/shash.c' line='517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_alloc_shash'>
+        <parameter type-id='80f4b756' name='alg_name' filepath='crypto/shash.c' line='517' column='1'/>
+        <parameter type-id='19c2251e' name='type' filepath='crypto/shash.c' line='517' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='crypto/shash.c' line='518' column='1'/>
+        <return type-id='247dd85c'/>
+      </function-decl>
+      <function-decl name='crypto_alloc_skcipher' mangled-name='crypto_alloc_skcipher' filepath='crypto/skcipher.c' line='753' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_alloc_skcipher'>
+        <parameter type-id='80f4b756' name='alg_name' filepath='crypto/skcipher.c' line='753' column='1'/>
+        <parameter type-id='19c2251e' name='type' filepath='crypto/skcipher.c' line='754' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='crypto/skcipher.c' line='754' column='1'/>
+        <return type-id='72bb8c36'/>
+      </function-decl>
+      <function-decl name='crypto_alloc_sync_skcipher' mangled-name='crypto_alloc_sync_skcipher' filepath='crypto/skcipher.c' line='760' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_alloc_sync_skcipher'>
+        <parameter type-id='80f4b756' name='alg_name' filepath='crypto/skcipher.c' line='761' column='1'/>
+        <parameter type-id='19c2251e' name='type' filepath='crypto/skcipher.c' line='761' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='crypto/skcipher.c' line='761' column='1'/>
+        <return type-id='2e6a2f40'/>
+      </function-decl>
+      <function-decl name='crypto_attr_alg_name' mangled-name='crypto_attr_alg_name' filepath='crypto/algapi.c' line='878' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_attr_alg_name'>
+        <parameter type-id='f28646d2' name='rta' filepath='crypto/algapi.c' line='878' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='crypto_authenc_extractkeys' mangled-name='crypto_authenc_extractkeys' filepath='crypto/authenc.c' line='46' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_authenc_extractkeys'>
+        <parameter type-id='704d2394' name='keys' filepath='crypto/authenc.c' line='46' column='1'/>
+        <parameter type-id='bbaf3419' name='key' filepath='crypto/authenc.c' line='46' column='1'/>
+        <parameter type-id='f0981eeb' name='keylen' filepath='crypto/authenc.c' line='47' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_check_attr_type' mangled-name='crypto_check_attr_type' filepath='crypto/algapi.c' line='862' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_check_attr_type'>
+        <parameter type-id='c161b868' name='tb' filepath='crypto/algapi.c' line='862' column='1'/>
+        <parameter type-id='19c2251e' name='type' filepath='crypto/algapi.c' line='862' column='1'/>
+        <parameter type-id='f9409001' name='mask_ret' filepath='crypto/algapi.c' line='862' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_cipher_encrypt_one' mangled-name='crypto_cipher_encrypt_one' filepath='crypto/cipher.c' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_cipher_encrypt_one'>
+        <parameter type-id='75f72758' name='tfm' filepath='crypto/cipher.c' line='80' column='1'/>
+        <parameter type-id='8bff8096' name='dst' filepath='crypto/cipher.c' line='81' column='1'/>
+        <parameter type-id='bbaf3419' name='src' filepath='crypto/cipher.c' line='81' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_cipher_setkey' mangled-name='crypto_cipher_setkey' filepath='crypto/cipher.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_cipher_setkey'>
+        <parameter type-id='75f72758' name='tfm' filepath='crypto/cipher.c' line='43' column='1'/>
+        <parameter type-id='bbaf3419' name='key' filepath='crypto/cipher.c' line='44' column='1'/>
+        <parameter type-id='f0981eeb' name='keylen' filepath='crypto/cipher.c' line='44' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_comp_compress' mangled-name='crypto_comp_compress' filepath='crypto/compress.c' line='12' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_comp_compress'>
+        <parameter type-id='a064fed8' name='comp' filepath='crypto/compress.c' line='12' column='1'/>
+        <parameter type-id='bbaf3419' name='src' filepath='crypto/compress.c' line='13' column='1'/>
+        <parameter type-id='f0981eeb' name='slen' filepath='crypto/compress.c' line='13' column='1'/>
+        <parameter type-id='8bff8096' name='dst' filepath='crypto/compress.c' line='14' column='1'/>
+        <parameter type-id='807869d3' name='dlen' filepath='crypto/compress.c' line='14' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_comp_decompress' mangled-name='crypto_comp_decompress' filepath='crypto/compress.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_comp_decompress'>
+        <parameter type-id='a064fed8' name='comp' filepath='crypto/compress.c' line='23' column='1'/>
+        <parameter type-id='bbaf3419' name='src' filepath='crypto/compress.c' line='24' column='1'/>
+        <parameter type-id='f0981eeb' name='slen' filepath='crypto/compress.c' line='24' column='1'/>
+        <parameter type-id='8bff8096' name='dst' filepath='crypto/compress.c' line='25' column='1'/>
+        <parameter type-id='807869d3' name='dlen' filepath='crypto/compress.c' line='25' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_dequeue_request' mangled-name='crypto_dequeue_request' filepath='crypto/algapi.c' line='954' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_dequeue_request'>
+        <parameter type-id='1a8fddbe' name='queue' filepath='crypto/algapi.c' line='954' column='1'/>
+        <return type-id='af5eeab9'/>
+      </function-decl>
+      <function-decl name='crypto_destroy_tfm' mangled-name='crypto_destroy_tfm' filepath='crypto/api.c' line='600' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_destroy_tfm'>
+        <parameter type-id='eaa32e2f' name='mem' filepath='crypto/api.c' line='600' column='1'/>
+        <parameter type-id='dfeb7f6c' name='tfm' filepath='crypto/api.c' line='600' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_drop_spawn' mangled-name='crypto_drop_spawn' filepath='crypto/algapi.c' line='729' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_drop_spawn'>
+        <parameter type-id='5f880e0e' name='spawn' filepath='crypto/algapi.c' line='729' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_engine_alloc_init' mangled-name='crypto_engine_alloc_init' filepath='crypto/crypto_engine.c' line='540' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_engine_alloc_init'>
+        <parameter type-id='fa0b179b' name='dev' filepath='crypto/crypto_engine.c' line='540' column='1'/>
+        <parameter type-id='b50a4934' name='rt' filepath='crypto/crypto_engine.c' line='540' column='1'/>
+        <return type-id='2281d68b'/>
+      </function-decl>
+      <function-decl name='crypto_engine_exit' mangled-name='crypto_engine_exit' filepath='crypto/crypto_engine.c' line='553' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_engine_exit'>
+        <parameter type-id='2281d68b' name='engine' filepath='crypto/crypto_engine.c' line='553' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_engine_start' mangled-name='crypto_engine_start' filepath='crypto/crypto_engine.c' line='406' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_engine_start'>
+        <parameter type-id='2281d68b' name='engine' filepath='crypto/crypto_engine.c' line='406' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_enqueue_request' mangled-name='crypto_enqueue_request' filepath='crypto/algapi.c' line='920' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_enqueue_request'>
+        <parameter type-id='1a8fddbe' name='queue' filepath='crypto/algapi.c' line='920' column='1'/>
+        <parameter type-id='af5eeab9' name='request' filepath='crypto/algapi.c' line='921' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_get_default_null_skcipher' mangled-name='crypto_get_default_null_skcipher' filepath='crypto/crypto_null.c' line='153' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_get_default_null_skcipher'>
+        <return type-id='2e6a2f40'/>
+      </function-decl>
+      <function-decl name='crypto_grab_aead' mangled-name='crypto_grab_aead' filepath='crypto/aead.c' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_grab_aead'>
+        <parameter type-id='2476e63c' name='spawn' filepath='crypto/aead.c' line='205' column='1'/>
+        <parameter type-id='708ae4d0' name='inst' filepath='crypto/aead.c' line='206' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='crypto/aead.c' line='207' column='1'/>
+        <parameter type-id='19c2251e' name='type' filepath='crypto/aead.c' line='207' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='crypto/aead.c' line='207' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_grab_ahash' mangled-name='crypto_grab_ahash' filepath='crypto/ahash.c' line='546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_grab_ahash'>
+        <parameter type-id='d797bdf2' name='spawn' filepath='crypto/ahash.c' line='546' column='1'/>
+        <parameter type-id='708ae4d0' name='inst' filepath='crypto/ahash.c' line='547' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='crypto/ahash.c' line='548' column='1'/>
+        <parameter type-id='19c2251e' name='type' filepath='crypto/ahash.c' line='548' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='crypto/ahash.c' line='548' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_grab_shash' mangled-name='crypto_grab_shash' filepath='crypto/shash.c' line='508' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_grab_shash'>
+        <parameter type-id='64015654' name='spawn' filepath='crypto/shash.c' line='508' column='1'/>
+        <parameter type-id='708ae4d0' name='inst' filepath='crypto/shash.c' line='509' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='crypto/shash.c' line='510' column='1'/>
+        <parameter type-id='19c2251e' name='type' filepath='crypto/shash.c' line='510' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='crypto/shash.c' line='510' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_grab_skcipher' mangled-name='crypto_grab_skcipher' filepath='crypto/skcipher.c' line='744' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_grab_skcipher'>
+        <parameter type-id='442ae2b6' name='spawn' filepath='crypto/skcipher.c' line='744' column='1'/>
+        <parameter type-id='708ae4d0' name='inst' filepath='crypto/skcipher.c' line='745' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='crypto/skcipher.c' line='746' column='1'/>
+        <parameter type-id='19c2251e' name='type' filepath='crypto/skcipher.c' line='746' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='crypto/skcipher.c' line='746' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_grab_spawn' mangled-name='crypto_grab_spawn' filepath='crypto/algapi.c' line='694' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_grab_spawn'>
+        <parameter type-id='5f880e0e' name='spawn' filepath='crypto/algapi.c' line='694' column='1'/>
+        <parameter type-id='708ae4d0' name='inst' filepath='crypto/algapi.c' line='694' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='crypto/algapi.c' line='695' column='1'/>
+        <parameter type-id='19c2251e' name='type' filepath='crypto/algapi.c' line='695' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='crypto/algapi.c' line='695' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_has_ahash' mangled-name='crypto_has_ahash' filepath='crypto/ahash.c' line='562' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_has_ahash'>
+        <parameter type-id='80f4b756' name='alg_name' filepath='crypto/ahash.c' line='562' column='1'/>
+        <parameter type-id='19c2251e' name='type' filepath='crypto/ahash.c' line='562' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='crypto/ahash.c' line='562' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_has_alg' mangled-name='crypto_has_alg' filepath='crypto/api.c' line='617' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_has_alg'>
+        <parameter type-id='80f4b756' name='name' filepath='crypto/api.c' line='617' column='1'/>
+        <parameter type-id='19c2251e' name='type' filepath='crypto/api.c' line='617' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='crypto/api.c' line='617' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_inc' mangled-name='crypto_inc' filepath='crypto/algapi.c' line='986' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_inc'>
+        <parameter type-id='8bff8096' name='a' filepath='crypto/algapi.c' line='986' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='crypto/algapi.c' line='986' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_init_queue' mangled-name='crypto_init_queue' filepath='crypto/algapi.c' line='911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_init_queue'>
+        <parameter type-id='1a8fddbe' name='queue' filepath='crypto/algapi.c' line='911' column='1'/>
+        <parameter type-id='f0981eeb' name='max_qlen' filepath='crypto/algapi.c' line='911' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_inst_setname' mangled-name='crypto_inst_setname' filepath='crypto/algapi.c' line='896' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_inst_setname'>
+        <parameter type-id='708ae4d0' name='inst' filepath='crypto/algapi.c' line='896' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='crypto/algapi.c' line='896' column='1'/>
+        <parameter type-id='67f526b5' name='alg' filepath='crypto/algapi.c' line='897' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_mod_put' mangled-name='crypto_mod_put' filepath='crypto/api.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_mod_put'>
+        <parameter type-id='67f526b5' name='alg' filepath='crypto/api.c' line='47' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_put_default_null_skcipher' mangled-name='crypto_put_default_null_skcipher' filepath='crypto/crypto_null.c' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_put_default_null_skcipher'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_register_aead' mangled-name='crypto_register_aead' filepath='crypto/aead.c' line='238' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_register_aead'>
+        <parameter type-id='e4163de3' name='alg' filepath='crypto/aead.c' line='238' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_register_aeads' mangled-name='crypto_register_aeads' filepath='crypto/aead.c' line='257' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_register_aeads'>
+        <parameter type-id='e4163de3' name='algs' filepath='crypto/aead.c' line='257' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='crypto/aead.c' line='257' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_register_ahash' mangled-name='crypto_register_ahash' filepath='crypto/ahash.c' line='584' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_register_ahash'>
+        <parameter type-id='16144ad1' name='alg' filepath='crypto/ahash.c' line='584' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_register_ahashes' mangled-name='crypto_register_ahashes' filepath='crypto/ahash.c' line='603' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_register_ahashes'>
+        <parameter type-id='16144ad1' name='algs' filepath='crypto/ahash.c' line='603' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='crypto/ahash.c' line='603' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_register_alg' mangled-name='crypto_register_alg' filepath='crypto/algapi.c' line='428' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_register_alg'>
+        <parameter type-id='67f526b5' name='alg' filepath='crypto/algapi.c' line='428' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_register_algs' mangled-name='crypto_register_algs' filepath='crypto/algapi.c' line='492' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_register_algs'>
+        <parameter type-id='67f526b5' name='algs' filepath='crypto/algapi.c' line='492' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='crypto/algapi.c' line='492' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_register_rng' mangled-name='crypto_register_rng' filepath='crypto/rng.c' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_register_rng'>
+        <parameter type-id='090a6ee7' name='alg' filepath='crypto/rng.c' line='177' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_register_rngs' mangled-name='crypto_register_rngs' filepath='crypto/rng.c' line='198' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_register_rngs'>
+        <parameter type-id='090a6ee7' name='algs' filepath='crypto/rng.c' line='198' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='crypto/rng.c' line='198' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_register_scomp' mangled-name='crypto_register_scomp' filepath='crypto/scompress.c' line='257' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_register_scomp'>
+        <parameter type-id='6e764b1e' name='alg' filepath='crypto/scompress.c' line='257' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_register_shash' mangled-name='crypto_register_shash' filepath='crypto/shash.c' line='555' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_register_shash'>
+        <parameter type-id='1be0f6ab' name='alg' filepath='crypto/shash.c' line='555' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_register_shashes' mangled-name='crypto_register_shashes' filepath='crypto/shash.c' line='574' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_register_shashes'>
+        <parameter type-id='1be0f6ab' name='algs' filepath='crypto/shash.c' line='574' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='crypto/shash.c' line='574' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_register_skcipher' mangled-name='crypto_register_skcipher' filepath='crypto/skcipher.c' line='810' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_register_skcipher'>
+        <parameter type-id='613dff15' name='alg' filepath='crypto/skcipher.c' line='810' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_register_skciphers' mangled-name='crypto_register_skciphers' filepath='crypto/skcipher.c' line='829' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_register_skciphers'>
+        <parameter type-id='613dff15' name='algs' filepath='crypto/skcipher.c' line='829' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='crypto/skcipher.c' line='829' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_register_template' mangled-name='crypto_register_template' filepath='crypto/algapi.c' line='521' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_register_template'>
+        <parameter type-id='f0f856cb' name='tmpl' filepath='crypto/algapi.c' line='521' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_register_templates' mangled-name='crypto_register_templates' filepath='crypto/algapi.c' line='543' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_register_templates'>
+        <parameter type-id='f0f856cb' name='tmpls' filepath='crypto/algapi.c' line='543' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='crypto/algapi.c' line='543' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_remove_spawns' mangled-name='crypto_remove_spawns' filepath='crypto/algapi.c' line='139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_remove_spawns'>
+        <parameter type-id='67f526b5' name='alg' filepath='crypto/algapi.c' line='139' column='1'/>
+        <parameter type-id='e84b031a' name='list' filepath='crypto/algapi.c' line='139' column='1'/>
+        <parameter type-id='67f526b5' name='nalg' filepath='crypto/algapi.c' line='140' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_req_done' mangled-name='crypto_req_done' filepath='crypto/api.c' line='631' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_req_done'>
+        <parameter type-id='af5eeab9' name='req' filepath='crypto/api.c' line='631' column='1'/>
+        <parameter type-id='95e97e5e' name='err' filepath='crypto/api.c' line='631' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_rng_reset' mangled-name='crypto_rng_reset' filepath='crypto/rng.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_rng_reset'>
+        <parameter type-id='5474f420' name='tfm' filepath='crypto/rng.c' line='31' column='1'/>
+        <parameter type-id='bbaf3419' name='seed' filepath='crypto/rng.c' line='31' column='1'/>
+        <parameter type-id='f0981eeb' name='slen' filepath='crypto/rng.c' line='31' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_sha1_finup' mangled-name='crypto_sha1_finup' filepath='crypto/sha1_generic.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_sha1_finup'>
+        <parameter type-id='32efad44' name='desc' filepath='crypto/sha1_generic.c' line='55' column='1'/>
+        <parameter type-id='bbaf3419' name='data' filepath='crypto/sha1_generic.c' line='55' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='crypto/sha1_generic.c' line='56' column='1'/>
+        <parameter type-id='8bff8096' name='out' filepath='crypto/sha1_generic.c' line='56' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_sha1_update' mangled-name='crypto_sha1_update' filepath='crypto/sha1_generic.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_sha1_update'>
+        <parameter type-id='32efad44' name='desc' filepath='crypto/sha1_generic.c' line='42' column='1'/>
+        <parameter type-id='bbaf3419' name='data' filepath='crypto/sha1_generic.c' line='42' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='crypto/sha1_generic.c' line='43' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_shash_alg_has_setkey' mangled-name='crypto_shash_alg_has_setkey' filepath='crypto/shash.c' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_shash_alg_has_setkey'>
+        <parameter type-id='1be0f6ab' name='alg' filepath='crypto/shash.c' line='36' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='crypto_shash_digest' mangled-name='crypto_shash_digest' filepath='crypto/shash.c' line='204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_shash_digest'>
+        <parameter type-id='32efad44' name='desc' filepath='crypto/shash.c' line='204' column='1'/>
+        <parameter type-id='bbaf3419' name='data' filepath='crypto/shash.c' line='204' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='crypto/shash.c' line='205' column='1'/>
+        <parameter type-id='8bff8096' name='out' filepath='crypto/shash.c' line='205' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_shash_final' mangled-name='crypto_shash_final' filepath='crypto/shash.c' line='163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_shash_final'>
+        <parameter type-id='32efad44' name='desc' filepath='crypto/shash.c' line='163' column='1'/>
+        <parameter type-id='8bff8096' name='out' filepath='crypto/shash.c' line='163' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_shash_finup' mangled-name='crypto_shash_finup' filepath='crypto/shash.c' line='183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_shash_finup'>
+        <parameter type-id='32efad44' name='desc' filepath='crypto/shash.c' line='183' column='1'/>
+        <parameter type-id='bbaf3419' name='data' filepath='crypto/shash.c' line='183' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='crypto/shash.c' line='184' column='1'/>
+        <parameter type-id='8bff8096' name='out' filepath='crypto/shash.c' line='184' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_shash_setkey' mangled-name='crypto_shash_setkey' filepath='crypto/shash.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_shash_setkey'>
+        <parameter type-id='247dd85c' name='tfm' filepath='crypto/shash.c' line='69' column='1'/>
+        <parameter type-id='bbaf3419' name='key' filepath='crypto/shash.c' line='69' column='1'/>
+        <parameter type-id='f0981eeb' name='keylen' filepath='crypto/shash.c' line='70' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_shash_tfm_digest' mangled-name='crypto_shash_tfm_digest' filepath='crypto/shash.c' line='221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_shash_tfm_digest'>
+        <parameter type-id='247dd85c' name='tfm' filepath='crypto/shash.c' line='221' column='1'/>
+        <parameter type-id='bbaf3419' name='data' filepath='crypto/shash.c' line='221' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='crypto/shash.c' line='222' column='1'/>
+        <parameter type-id='8bff8096' name='out' filepath='crypto/shash.c' line='222' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_shash_update' mangled-name='crypto_shash_update' filepath='crypto/shash.c' line='121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_shash_update'>
+        <parameter type-id='32efad44' name='desc' filepath='crypto/shash.c' line='121' column='1'/>
+        <parameter type-id='bbaf3419' name='data' filepath='crypto/shash.c' line='121' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='crypto/shash.c' line='122' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_skcipher_decrypt' mangled-name='crypto_skcipher_decrypt' filepath='crypto/skcipher.c' line='636' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_skcipher_decrypt'>
+        <parameter type-id='c249b570' name='req' filepath='crypto/skcipher.c' line='636' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_skcipher_encrypt' mangled-name='crypto_skcipher_encrypt' filepath='crypto/skcipher.c' line='619' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_skcipher_encrypt'>
+        <parameter type-id='c249b570' name='req' filepath='crypto/skcipher.c' line='619' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_skcipher_setkey' mangled-name='crypto_skcipher_setkey' filepath='crypto/skcipher.c' line='594' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_skcipher_setkey'>
+        <parameter type-id='72bb8c36' name='tfm' filepath='crypto/skcipher.c' line='594' column='1'/>
+        <parameter type-id='bbaf3419' name='key' filepath='crypto/skcipher.c' line='594' column='1'/>
+        <parameter type-id='f0981eeb' name='keylen' filepath='crypto/skcipher.c' line='595' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='crypto_spawn_tfm' mangled-name='crypto_spawn_tfm' filepath='crypto/algapi.c' line='769' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_spawn_tfm'>
+        <parameter type-id='5f880e0e' name='spawn' filepath='crypto/algapi.c' line='769' column='1'/>
+        <parameter type-id='19c2251e' name='type' filepath='crypto/algapi.c' line='769' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='crypto/algapi.c' line='770' column='1'/>
+        <return type-id='dfeb7f6c'/>
+      </function-decl>
+      <function-decl name='crypto_spawn_tfm2' mangled-name='crypto_spawn_tfm2' filepath='crypto/algapi.c' line='795' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_spawn_tfm2'>
+        <parameter type-id='5f880e0e' name='spawn' filepath='crypto/algapi.c' line='795' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='crypto_unregister_aead' mangled-name='crypto_unregister_aead' filepath='crypto/aead.c' line='251' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_unregister_aead'>
+        <parameter type-id='e4163de3' name='alg' filepath='crypto/aead.c' line='251' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_unregister_ahash' mangled-name='crypto_unregister_ahash' filepath='crypto/ahash.c' line='597' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_unregister_ahash'>
+        <parameter type-id='16144ad1' name='alg' filepath='crypto/ahash.c' line='597' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_unregister_alg' mangled-name='crypto_unregister_alg' filepath='crypto/algapi.c' line='470' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_unregister_alg'>
+        <parameter type-id='67f526b5' name='alg' filepath='crypto/algapi.c' line='470' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_unregister_rng' mangled-name='crypto_unregister_rng' filepath='crypto/rng.c' line='192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_unregister_rng'>
+        <parameter type-id='090a6ee7' name='alg' filepath='crypto/rng.c' line='192' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_unregister_rngs' mangled-name='crypto_unregister_rngs' filepath='crypto/rng.c' line='218' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_unregister_rngs'>
+        <parameter type-id='090a6ee7' name='algs' filepath='crypto/rng.c' line='218' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='crypto/rng.c' line='218' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_unregister_scomp' mangled-name='crypto_unregister_scomp' filepath='crypto/scompress.c' line='269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_unregister_scomp'>
+        <parameter type-id='6e764b1e' name='alg' filepath='crypto/scompress.c' line='269' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_unregister_shash' mangled-name='crypto_unregister_shash' filepath='crypto/shash.c' line='568' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_unregister_shash'>
+        <parameter type-id='1be0f6ab' name='alg' filepath='crypto/shash.c' line='568' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_unregister_shashes' mangled-name='crypto_unregister_shashes' filepath='crypto/shash.c' line='594' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_unregister_shashes'>
+        <parameter type-id='1be0f6ab' name='algs' filepath='crypto/shash.c' line='594' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='crypto/shash.c' line='594' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_unregister_skcipher' mangled-name='crypto_unregister_skcipher' filepath='crypto/skcipher.c' line='823' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_unregister_skcipher'>
+        <parameter type-id='613dff15' name='alg' filepath='crypto/skcipher.c' line='823' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_unregister_skciphers' mangled-name='crypto_unregister_skciphers' filepath='crypto/skcipher.c' line='849' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_unregister_skciphers'>
+        <parameter type-id='613dff15' name='algs' filepath='crypto/skcipher.c' line='849' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='crypto/skcipher.c' line='849' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_unregister_template' mangled-name='crypto_unregister_template' filepath='crypto/algapi.c' line='561' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_unregister_template'>
+        <parameter type-id='f0f856cb' name='tmpl' filepath='crypto/algapi.c' line='561' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='crypto_unregister_templates' mangled-name='crypto_unregister_templates' filepath='crypto/algapi.c' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_unregister_templates'>
+        <parameter type-id='f0f856cb' name='tmpls' filepath='crypto/algapi.c' line='590' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='crypto/algapi.c' line='590' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='css_next_child' mangled-name='css_next_child' filepath='kernel/cgroup/cgroup.c' line='4389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='css_next_child'>
+        <parameter type-id='cfff5953' name='pos' filepath='kernel/cgroup/cgroup.c' line='4389' column='1'/>
+        <parameter type-id='cfff5953' name='parent' filepath='kernel/cgroup/cgroup.c' line='4390' column='1'/>
+        <return type-id='cfff5953'/>
+      </function-decl>
+      <function-decl name='css_next_descendant_pre' mangled-name='css_next_descendant_pre' filepath='kernel/cgroup/cgroup.c' line='4459' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='css_next_descendant_pre'>
+        <parameter type-id='cfff5953' name='pos' filepath='kernel/cgroup/cgroup.c' line='4459' column='1'/>
+        <parameter type-id='cfff5953' name='root' filepath='kernel/cgroup/cgroup.c' line='4460' column='1'/>
+        <return type-id='cfff5953'/>
+      </function-decl>
+      <function-decl name='csum_ipv6_magic' mangled-name='csum_ipv6_magic' filepath='arch/arm64/lib/csum.c' line='132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='csum_ipv6_magic'>
+        <parameter type-id='fea9c20b' name='saddr' filepath='arch/arm64/lib/csum.c' line='132' column='1'/>
+        <parameter type-id='fea9c20b' name='daddr' filepath='arch/arm64/lib/csum.c' line='133' column='1'/>
+        <parameter type-id='3f1a6b60' name='len' filepath='arch/arm64/lib/csum.c' line='134' column='1'/>
+        <parameter type-id='8f048e17' name='proto' filepath='arch/arm64/lib/csum.c' line='134' column='1'/>
+        <parameter type-id='fbd88bba' name='csum' filepath='arch/arm64/lib/csum.c' line='134' column='1'/>
+        <return type-id='7dac1e36'/>
+      </function-decl>
+      <function-decl name='csum_partial' mangled-name='csum_partial' filepath='lib/checksum.c' line='125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='csum_partial'>
+        <parameter type-id='eaa32e2f' name='buff' filepath='lib/checksum.c' line='125' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='lib/checksum.c' line='125' column='1'/>
+        <parameter type-id='fbd88bba' name='wsum' filepath='lib/checksum.c' line='125' column='1'/>
+        <return type-id='fbd88bba'/>
+      </function-decl>
+      <function-decl name='csum_tcpudp_nofold' mangled-name='csum_tcpudp_nofold' filepath='lib/checksum.c' line='158' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='csum_tcpudp_nofold'>
+        <parameter type-id='78a133c2' name='saddr' filepath='lib/checksum.c' line='158' column='1'/>
+        <parameter type-id='78a133c2' name='daddr' filepath='lib/checksum.c' line='158' column='1'/>
+        <parameter type-id='3f1a6b60' name='len' filepath='lib/checksum.c' line='159' column='1'/>
+        <parameter type-id='8f048e17' name='proto' filepath='lib/checksum.c' line='159' column='1'/>
+        <parameter type-id='fbd88bba' name='sum' filepath='lib/checksum.c' line='159' column='1'/>
+        <return type-id='fbd88bba'/>
+      </function-decl>
+      <function-decl name='current_time' mangled-name='current_time' filepath='fs/inode.c' line='2281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='current_time'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='2281' column='1'/>
+        <return type-id='40a816ad'/>
+      </function-decl>
+      <function-decl name='current_umask' mangled-name='current_umask' filepath='fs/fs_struct.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='current_umask'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='current_work' mangled-name='current_work' filepath='kernel/workqueue.c' line='4549' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='current_work'>
+        <return type-id='83c1bde6'/>
+      </function-decl>
+      <function-decl name='d_add' mangled-name='d_add' filepath='fs/dcache.c' line='2730' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='d_add'>
+        <parameter type-id='27675065' name='entry' filepath='fs/dcache.c' line='2730' column='1'/>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/dcache.c' line='2730' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='d_add_ci' mangled-name='d_add_ci' filepath='fs/dcache.c' line='2187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='d_add_ci'>
+        <parameter type-id='27675065' name='dentry' filepath='fs/dcache.c' line='2187' column='1'/>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/dcache.c' line='2187' column='1'/>
+        <parameter type-id='b316d9a3' name='name' filepath='fs/dcache.c' line='2188' column='1'/>
+        <return type-id='27675065'/>
+      </function-decl>
+      <function-decl name='d_alloc_name' mangled-name='d_alloc_name' filepath='fs/dcache.c' line='1879' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='d_alloc_name'>
+        <parameter type-id='27675065' name='parent' filepath='fs/dcache.c' line='1879' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='fs/dcache.c' line='1879' column='1'/>
+        <return type-id='27675065'/>
+      </function-decl>
+      <function-decl name='d_delete' mangled-name='d_delete' filepath='fs/dcache.c' line='2494' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='d_delete'>
+        <parameter type-id='27675065' name='dentry' filepath='fs/dcache.c' line='2494' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='d_find_alias' mangled-name='d_find_alias' filepath='fs/dcache.c' line='1035' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='d_find_alias'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/dcache.c' line='1035' column='1'/>
+        <return type-id='27675065'/>
+      </function-decl>
+      <function-decl name='d_instantiate' mangled-name='d_instantiate' filepath='fs/dcache.c' line='2004' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='d_instantiate'>
+        <parameter type-id='27675065' name='entry' filepath='fs/dcache.c' line='2004' column='1'/>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/dcache.c' line='2004' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='d_instantiate_new' mangled-name='d_instantiate_new' filepath='fs/dcache.c' line='2022' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='d_instantiate_new'>
+        <parameter type-id='27675065' name='entry' filepath='fs/dcache.c' line='2022' column='1'/>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/dcache.c' line='2022' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='d_invalidate' mangled-name='d_invalidate' filepath='fs/dcache.c' line='1697' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='d_invalidate'>
+        <parameter type-id='27675065' name='dentry' filepath='fs/dcache.c' line='1697' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='d_make_root' mangled-name='d_make_root' filepath='fs/dcache.c' line='2038' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='d_make_root'>
+        <parameter type-id='7e666abe' name='root_inode' filepath='fs/dcache.c' line='2038' column='1'/>
+        <return type-id='27675065'/>
+      </function-decl>
+      <function-decl name='d_move' mangled-name='d_move' filepath='fs/dcache.c' line='2947' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='d_move'>
+        <parameter type-id='27675065' name='dentry' filepath='fs/dcache.c' line='2947' column='1'/>
+        <parameter type-id='27675065' name='target' filepath='fs/dcache.c' line='2947' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='d_obtain_alias' mangled-name='d_obtain_alias' filepath='fs/dcache.c' line='2144' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='d_obtain_alias'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/dcache.c' line='2144' column='1'/>
+        <return type-id='27675065'/>
+      </function-decl>
+      <function-decl name='d_path' mangled-name='d_path' filepath='fs/d_path.c' line='266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='d_path'>
+        <parameter type-id='a77efac3' name='path' filepath='fs/d_path.c' line='266' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='fs/d_path.c' line='266' column='1'/>
+        <parameter type-id='95e97e5e' name='buflen' filepath='fs/d_path.c' line='266' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='d_splice_alias' mangled-name='d_splice_alias' filepath='fs/dcache.c' line='3054' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='d_splice_alias'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/dcache.c' line='3054' column='1'/>
+        <parameter type-id='27675065' name='dentry' filepath='fs/dcache.c' line='3054' column='1'/>
+        <return type-id='27675065'/>
+      </function-decl>
+      <function-decl name='d_tmpfile' mangled-name='d_tmpfile' filepath='fs/dcache.c' line='3170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='d_tmpfile'>
+        <parameter type-id='27675065' name='dentry' filepath='fs/dcache.c' line='3170' column='1'/>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/dcache.c' line='3170' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dapm_clock_event' mangled-name='dapm_clock_event' filepath='sound/soc/soc-dapm.c' line='1407' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dapm_clock_event'>
+        <parameter type-id='810606ec' name='w' filepath='sound/soc/soc-dapm.c' line='1407' column='1'/>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-dapm.c' line='1408' column='1'/>
+        <parameter type-id='95e97e5e' name='event' filepath='sound/soc/soc-dapm.c' line='1408' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dapm_kcontrol_get_value' mangled-name='dapm_kcontrol_get_value' filepath='sound/soc/soc-dapm.c' line='538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dapm_kcontrol_get_value'>
+        <parameter type-id='7c459358' name='kcontrol' filepath='sound/soc/soc-dapm.c' line='538' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='dapm_pinctrl_event' mangled-name='dapm_pinctrl_event' filepath='sound/soc/soc-dapm.c' line='1382' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dapm_pinctrl_event'>
+        <parameter type-id='810606ec' name='w' filepath='sound/soc/soc-dapm.c' line='1382' column='1'/>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-dapm.c' line='1383' column='1'/>
+        <parameter type-id='95e97e5e' name='event' filepath='sound/soc/soc-dapm.c' line='1383' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dapm_regulator_event' mangled-name='dapm_regulator_event' filepath='sound/soc/soc-dapm.c' line='1348' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dapm_regulator_event'>
+        <parameter type-id='810606ec' name='w' filepath='sound/soc/soc-dapm.c' line='1348' column='1'/>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-dapm.c' line='1349' column='1'/>
+        <parameter type-id='95e97e5e' name='event' filepath='sound/soc/soc-dapm.c' line='1349' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='datagram_poll' mangled-name='datagram_poll' filepath='net/core/datagram.c' line='797' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='datagram_poll'>
+        <parameter type-id='77e79a4b' name='file' filepath='net/core/datagram.c' line='797' column='1'/>
+        <parameter type-id='13103032' name='sock' filepath='net/core/datagram.c' line='797' column='1'/>
+        <parameter type-id='a54c778f' name='wait' filepath='net/core/datagram.c' line='798' column='1'/>
+        <return type-id='8f254b08'/>
+      </function-decl>
+      <function-decl name='dbs_update' mangled-name='dbs_update' filepath='drivers/cpufreq/cpufreq_governor.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dbs_update'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq_governor.c' line='114' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='deactivate_locked_super' mangled-name='deactivate_locked_super' filepath='fs/super.c' line='329' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='deactivate_locked_super'>
+        <parameter type-id='42c8f564' name='s' filepath='fs/super.c' line='329' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='deactivate_task' mangled-name='deactivate_task' filepath='kernel/sched/core.c' line='2054' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='deactivate_task'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2054' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2054' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='kernel/sched/core.c' line='2054' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='debug_locks_off' mangled-name='debug_locks_off' filepath='lib/debug_locks.c' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debug_locks_off'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='debug_locks_silent' type-id='95e97e5e' mangled-name='debug_locks_silent' visibility='default' filepath='lib/debug_locks.c' line='33' column='1' elf-symbol-id='debug_locks_silent'/>
+      <function-decl name='debugfs_attr_read' mangled-name='debugfs_attr_read' filepath='fs/debugfs/file.c' line='366' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_attr_read'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/debugfs/file.c' line='366' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='fs/debugfs/file.c' line='366' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='fs/debugfs/file.c' line='367' column='1'/>
+        <parameter type-id='b53e8dbb' name='ppos' filepath='fs/debugfs/file.c' line='367' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='debugfs_attr_write' mangled-name='debugfs_attr_write' filepath='fs/debugfs/file.c' line='398' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_attr_write'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/debugfs/file.c' line='398' column='1'/>
+        <parameter type-id='80f4b756' name='buf' filepath='fs/debugfs/file.c' line='398' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='fs/debugfs/file.c' line='399' column='1'/>
+        <parameter type-id='b53e8dbb' name='ppos' filepath='fs/debugfs/file.c' line='399' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='debugfs_create_atomic_t' mangled-name='debugfs_create_atomic_t' filepath='fs/debugfs/file.c' line='775' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_create_atomic_t'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/file.c' line='775' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/debugfs/file.c' line='775' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/file.c' line='776' column='1'/>
+        <parameter type-id='8a47abc3' name='value' filepath='fs/debugfs/file.c' line='776' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='debugfs_create_blob' mangled-name='debugfs_create_blob' filepath='fs/debugfs/file.c' line='1005' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_create_blob'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/file.c' line='1005' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/debugfs/file.c' line='1005' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/file.c' line='1006' column='1'/>
+        <parameter type-id='3a843513' name='blob' filepath='fs/debugfs/file.c' line='1007' column='1'/>
+        <return type-id='27675065'/>
+      </function-decl>
+      <function-decl name='debugfs_create_bool' mangled-name='debugfs_create_bool' filepath='fs/debugfs/file.c' line='860' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_create_bool'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/file.c' line='860' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/debugfs/file.c' line='860' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/file.c' line='860' column='1'/>
+        <parameter type-id='d8e6b335' name='value' filepath='fs/debugfs/file.c' line='861' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='debugfs_create_devm_seqfile' mangled-name='debugfs_create_devm_seqfile' filepath='fs/debugfs/file.c' line='1222' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_create_devm_seqfile'>
+        <parameter type-id='fa0b179b' name='dev' filepath='fs/debugfs/file.c' line='1222' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/file.c' line='1222' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/file.c' line='1223' column='1'/>
+        <parameter type-id='0131eb61' name='read_fn' filepath='fs/debugfs/file.c' line='1224' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='debugfs_create_dir' mangled-name='debugfs_create_dir' filepath='fs/debugfs/inode.c' line='555' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_create_dir'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/inode.c' line='555' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/inode.c' line='555' column='1'/>
+        <return type-id='27675065'/>
+      </function-decl>
+      <function-decl name='debugfs_create_file' mangled-name='debugfs_create_file' filepath='fs/debugfs/inode.c' line='454' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_create_file'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/inode.c' line='454' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/debugfs/inode.c' line='454' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/inode.c' line='455' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='fs/debugfs/inode.c' line='455' column='1'/>
+        <parameter type-id='61758ee5' name='fops' filepath='fs/debugfs/inode.c' line='456' column='1'/>
+        <return type-id='27675065'/>
+      </function-decl>
+      <function-decl name='debugfs_create_file_size' mangled-name='debugfs_create_file_size' filepath='fs/debugfs/inode.c' line='524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_create_file_size'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/inode.c' line='524' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/debugfs/inode.c' line='524' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/inode.c' line='525' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='fs/debugfs/inode.c' line='525' column='1'/>
+        <parameter type-id='61758ee5' name='fops' filepath='fs/debugfs/inode.c' line='526' column='1'/>
+        <parameter type-id='69bf7bee' name='file_size' filepath='fs/debugfs/inode.c' line='527' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='debugfs_create_file_unsafe' mangled-name='debugfs_create_file_unsafe' filepath='fs/debugfs/inode.c' line='493' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_create_file_unsafe'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/inode.c' line='493' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/debugfs/inode.c' line='493' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/inode.c' line='494' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='fs/debugfs/inode.c' line='494' column='1'/>
+        <parameter type-id='61758ee5' name='fops' filepath='fs/debugfs/inode.c' line='495' column='1'/>
+        <return type-id='27675065'/>
+      </function-decl>
+      <function-decl name='debugfs_create_regset32' mangled-name='debugfs_create_regset32' filepath='fs/debugfs/file.c' line='1182' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_create_regset32'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/file.c' line='1182' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/debugfs/file.c' line='1182' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/file.c' line='1183' column='1'/>
+        <parameter type-id='62fa2ea7' name='regset' filepath='fs/debugfs/file.c' line='1184' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='debugfs_create_size_t' mangled-name='debugfs_create_size_t' filepath='fs/debugfs/file.c' line='739' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_create_size_t'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/file.c' line='739' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/debugfs/file.c' line='739' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/file.c' line='740' column='1'/>
+        <parameter type-id='78c01427' name='value' filepath='fs/debugfs/file.c' line='740' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='debugfs_create_symlink' mangled-name='debugfs_create_symlink' filepath='fs/debugfs/inode.c' line='658' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_create_symlink'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/inode.c' line='658' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/inode.c' line='658' column='1'/>
+        <parameter type-id='80f4b756' name='target' filepath='fs/debugfs/inode.c' line='659' column='1'/>
+        <return type-id='27675065'/>
+      </function-decl>
+      <function-decl name='debugfs_create_u16' mangled-name='debugfs_create_u16' filepath='fs/debugfs/file.c' line='494' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_create_u16'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/file.c' line='494' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/debugfs/file.c' line='494' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/file.c' line='494' column='1'/>
+        <parameter type-id='26d4d46f' name='value' filepath='fs/debugfs/file.c' line='495' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='debugfs_create_u32' mangled-name='debugfs_create_u32' filepath='fs/debugfs/file.c' line='530' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_create_u32'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/file.c' line='530' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/debugfs/file.c' line='530' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/file.c' line='530' column='1'/>
+        <parameter type-id='f9409001' name='value' filepath='fs/debugfs/file.c' line='531' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='debugfs_create_u64' mangled-name='debugfs_create_u64' filepath='fs/debugfs/file.c' line='567' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_create_u64'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/file.c' line='567' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/debugfs/file.c' line='567' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/file.c' line='567' column='1'/>
+        <parameter type-id='3df9fd28' name='value' filepath='fs/debugfs/file.c' line='568' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='debugfs_create_u8' mangled-name='debugfs_create_u8' filepath='fs/debugfs/file.c' line='458' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_create_u8'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/file.c' line='458' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/debugfs/file.c' line='458' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/file.c' line='458' column='1'/>
+        <parameter type-id='8bff8096' name='value' filepath='fs/debugfs/file.c' line='459' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='debugfs_create_ulong' mangled-name='debugfs_create_ulong' filepath='fs/debugfs/file.c' line='606' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_create_ulong'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/file.c' line='606' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/debugfs/file.c' line='606' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/file.c' line='606' column='1'/>
+        <parameter type-id='1d2c2b85' name='value' filepath='fs/debugfs/file.c' line='607' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='debugfs_create_x32' mangled-name='debugfs_create_x32' filepath='fs/debugfs/file.c' line='687' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_create_x32'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/file.c' line='687' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/debugfs/file.c' line='687' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/file.c' line='687' column='1'/>
+        <parameter type-id='f9409001' name='value' filepath='fs/debugfs/file.c' line='688' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='debugfs_create_x64' mangled-name='debugfs_create_x64' filepath='fs/debugfs/file.c' line='705' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_create_x64'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/file.c' line='705' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/debugfs/file.c' line='705' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/file.c' line='705' column='1'/>
+        <parameter type-id='3df9fd28' name='value' filepath='fs/debugfs/file.c' line='706' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='debugfs_create_x8' mangled-name='debugfs_create_x8' filepath='fs/debugfs/file.c' line='651' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_create_x8'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/file.c' line='651' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/debugfs/file.c' line='651' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/file.c' line='651' column='1'/>
+        <parameter type-id='8bff8096' name='value' filepath='fs/debugfs/file.c' line='652' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='debugfs_file_get' mangled-name='debugfs_file_get' filepath='fs/debugfs/file.c' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_file_get'>
+        <parameter type-id='27675065' name='dentry' filepath='fs/debugfs/file.c' line='82' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='debugfs_file_put' mangled-name='debugfs_file_put' filepath='fs/debugfs/file.c' line='132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_file_put'>
+        <parameter type-id='27675065' name='dentry' filepath='fs/debugfs/file.c' line='132' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='debugfs_initialized' mangled-name='debugfs_initialized' filepath='fs/debugfs/inode.c' line='834' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_initialized'>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='debugfs_lookup' mangled-name='debugfs_lookup' filepath='fs/debugfs/inode.c' line='300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_lookup'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/inode.c' line='300' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/inode.c' line='300' column='1'/>
+        <return type-id='27675065'/>
+      </function-decl>
+      <function-decl name='debugfs_lookup_and_remove' mangled-name='debugfs_lookup_and_remove' filepath='fs/debugfs/inode.c' line='746' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_lookup_and_remove'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/debugfs/inode.c' line='746' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='fs/debugfs/inode.c' line='746' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='debugfs_remove' mangled-name='debugfs_remove' filepath='fs/debugfs/inode.c' line='726' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_remove'>
+        <parameter type-id='27675065' name='dentry' filepath='fs/debugfs/inode.c' line='726' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='debugfs_rename' mangled-name='debugfs_rename' filepath='fs/debugfs/inode.c' line='778' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debugfs_rename'>
+        <parameter type-id='27675065' name='old_dir' filepath='fs/debugfs/inode.c' line='778' column='1'/>
+        <parameter type-id='27675065' name='old_dentry' filepath='fs/debugfs/inode.c' line='778' column='1'/>
+        <parameter type-id='27675065' name='new_dir' filepath='fs/debugfs/inode.c' line='779' column='1'/>
+        <parameter type-id='80f4b756' name='new_name' filepath='fs/debugfs/inode.c' line='779' column='1'/>
+        <return type-id='27675065'/>
+      </function-decl>
+      <function-decl name='dec_node_page_state' mangled-name='dec_node_page_state' filepath='mm/vmstat.c' line='665' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dec_node_page_state'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/vmstat.c' line='665' column='1'/>
+        <parameter type-id='93f9c3d3' name='item' filepath='mm/vmstat.c' line='665' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dec_zone_page_state' mangled-name='dec_zone_page_state' filepath='mm/vmstat.c' line='592' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dec_zone_page_state'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/vmstat.c' line='592' column='1'/>
+        <parameter type-id='a1f2d9a1' name='item' filepath='mm/vmstat.c' line='592' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='default_llseek' mangled-name='default_llseek' filepath='fs/read_write.c' line='236' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='default_llseek'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/read_write.c' line='236' column='1'/>
+        <parameter type-id='69bf7bee' name='offset' filepath='fs/read_write.c' line='236' column='1'/>
+        <parameter type-id='95e97e5e' name='whence' filepath='fs/read_write.c' line='236' column='1'/>
+        <return type-id='69bf7bee'/>
+      </function-decl>
+      <function-decl name='default_wake_function' mangled-name='default_wake_function' filepath='kernel/sched/core.c' line='6918' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='default_wake_function'>
+        <parameter type-id='ba9aa326' name='curr' filepath='kernel/sched/core.c' line='6918' column='1'/>
+        <parameter type-id='f0981eeb' name='mode' filepath='kernel/sched/core.c' line='6918' column='1'/>
+        <parameter type-id='95e97e5e' name='wake_flags' filepath='kernel/sched/core.c' line='6918' column='1'/>
+        <parameter type-id='eaa32e2f' name='key' filepath='kernel/sched/core.c' line='6919' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='deferred_free' mangled-name='deferred_free' filepath='drivers/dma-buf/heaps/deferred-free-helper.c' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='deferred_free'>
+        <parameter type-id='f812e4e9' name='item' filepath='drivers/dma-buf/heaps/deferred-free-helper.c' line='25' column='1'/>
+        <parameter type-id='eddc89a2' name='free' filepath='drivers/dma-buf/heaps/deferred-free-helper.c' line='26' column='1'/>
+        <parameter type-id='b59d7dce' name='nr_pages' filepath='drivers/dma-buf/heaps/deferred-free-helper.c' line='28' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='del_gendisk' mangled-name='del_gendisk' filepath='block/genhd.c' line='583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='del_gendisk'>
+        <parameter type-id='33c599da' name='disk' filepath='block/genhd.c' line='583' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='del_random_ready_callback' mangled-name='del_random_ready_callback' filepath='drivers/char/random.c' line='1583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='del_random_ready_callback'>
+        <parameter type-id='b47c553a' name='rdy' filepath='drivers/char/random.c' line='1583' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='del_timer' mangled-name='del_timer' filepath='kernel/time/timer.c' line='1204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='del_timer'>
+        <parameter type-id='9248e67f' name='timer' filepath='kernel/time/timer.c' line='1204' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='del_timer_sync' mangled-name='del_timer_sync' filepath='kernel/time/timer.c' line='1358' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='del_timer_sync'>
+        <parameter type-id='9248e67f' name='timer' filepath='kernel/time/timer.c' line='1358' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='delayed_work_timer_fn' mangled-name='delayed_work_timer_fn' filepath='kernel/workqueue.c' line='1656' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='delayed_work_timer_fn'>
+        <parameter type-id='9248e67f' name='t' filepath='kernel/workqueue.c' line='1656' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='delete_from_page_cache' mangled-name='delete_from_page_cache' filepath='mm/filemap.c' line='260' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='delete_from_page_cache'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/filemap.c' line='260' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dentry_path_raw' mangled-name='dentry_path_raw' filepath='fs/d_path.c' line='364' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dentry_path_raw'>
+        <parameter type-id='c14d5db2' name='dentry' filepath='fs/d_path.c' line='364' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='fs/d_path.c' line='364' column='1'/>
+        <parameter type-id='95e97e5e' name='buflen' filepath='fs/d_path.c' line='364' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='des_expand_key' mangled-name='des_expand_key' filepath='lib/crypto/des.c' line='699' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='des_expand_key'>
+        <parameter type-id='acd39461' name='ctx' filepath='lib/crypto/des.c' line='699' column='1'/>
+        <parameter type-id='bbaf3419' name='key' filepath='lib/crypto/des.c' line='699' column='1'/>
+        <parameter type-id='f0981eeb' name='keylen' filepath='lib/crypto/des.c' line='699' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='desc_to_gpio' mangled-name='desc_to_gpio' filepath='drivers/gpio/gpiolib.c' line='163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='desc_to_gpio'>
+        <parameter type-id='5bed570d' name='desc' filepath='drivers/gpio/gpiolib.c' line='163' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='destroy_workqueue' mangled-name='destroy_workqueue' filepath='kernel/workqueue.c' line='4422' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='destroy_workqueue'>
+        <parameter type-id='242e3d19' name='wq' filepath='kernel/workqueue.c' line='4422' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_add_pack' mangled-name='dev_add_pack' filepath='net/core/dev.c' line='546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_add_pack'>
+        <parameter type-id='1c079e60' name='pt' filepath='net/core/dev.c' line='546' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_alloc_name' mangled-name='dev_alloc_name' filepath='net/core/dev.c' line='1183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_alloc_name'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='1183' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='net/core/dev.c' line='1183' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='dev_base_lock' type-id='ac16795b' mangled-name='dev_base_lock' visibility='default' filepath='net/core/dev.c' line='195' column='1' elf-symbol-id='dev_base_lock'/>
+      <function-decl name='dev_change_flags' mangled-name='dev_change_flags' filepath='net/core/dev.c' line='8859' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_change_flags'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='8859' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='net/core/dev.c' line='8859' column='1'/>
+        <parameter type-id='5799dc94' name='extack' filepath='net/core/dev.c' line='8860' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_close' mangled-name='dev_close' filepath='net/core/dev.c' line='1622' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_close'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='1622' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_coredumpm' mangled-name='dev_coredumpm' filepath='drivers/base/devcoredump.c' line='323' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_coredumpm'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devcoredump.c' line='323' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/base/devcoredump.c' line='323' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/devcoredump.c' line='324' column='1'/>
+        <parameter type-id='b59d7dce' name='datalen' filepath='drivers/base/devcoredump.c' line='324' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='drivers/base/devcoredump.c' line='324' column='1'/>
+        <parameter type-id='e91f335d' name='read' filepath='drivers/base/devcoredump.c' line='325' column='1'/>
+        <parameter type-id='b7f9d8e6' name='free' filepath='drivers/base/devcoredump.c' line='327' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_coredumpv' mangled-name='dev_coredumpv' filepath='drivers/base/devcoredump.c' line='256' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_coredumpv'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devcoredump.c' line='256' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/devcoredump.c' line='256' column='1'/>
+        <parameter type-id='b59d7dce' name='datalen' filepath='drivers/base/devcoredump.c' line='256' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='drivers/base/devcoredump.c' line='257' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_driver_string' mangled-name='dev_driver_string' filepath='drivers/base/core.c' line='2082' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_driver_string'>
+        <parameter type-id='8df61054' name='dev' filepath='drivers/base/core.c' line='2082' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='dev_err_probe' mangled-name='dev_err_probe' filepath='drivers/base/core.c' line='4705' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_err_probe'>
+        <parameter type-id='8df61054' name='dev' filepath='drivers/base/core.c' line='4705' column='1'/>
+        <parameter type-id='95e97e5e' name='err' filepath='drivers/base/core.c' line='4705' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/base/core.c' line='4705' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_fetch_sw_netstats' mangled-name='dev_fetch_sw_netstats' filepath='net/core/dev.c' line='10712' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_fetch_sw_netstats'>
+        <parameter type-id='bd3860fe' name='s' filepath='net/core/dev.c' line='10712' column='1'/>
+        <parameter type-id='069eeb9e' name='netstats' filepath='net/core/dev.c' line='10713' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_fwnode' mangled-name='dev_fwnode' filepath='drivers/base/property.c' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_fwnode'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/property.c' line='21' column='1'/>
+        <return type-id='4a935625'/>
+      </function-decl>
+      <function-decl name='dev_get_by_index' mangled-name='dev_get_by_index' filepath='net/core/dev.c' line='910' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_get_by_index'>
+        <parameter type-id='a2bff676' name='net' filepath='net/core/dev.c' line='910' column='1'/>
+        <parameter type-id='95e97e5e' name='ifindex' filepath='net/core/dev.c' line='910' column='1'/>
+        <return type-id='68a2d05b'/>
+      </function-decl>
+      <function-decl name='dev_get_by_index_rcu' mangled-name='dev_get_by_index_rcu' filepath='net/core/dev.c' line='885' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_get_by_index_rcu'>
+        <parameter type-id='a2bff676' name='net' filepath='net/core/dev.c' line='885' column='1'/>
+        <parameter type-id='95e97e5e' name='ifindex' filepath='net/core/dev.c' line='885' column='1'/>
+        <return type-id='68a2d05b'/>
+      </function-decl>
+      <function-decl name='dev_get_by_name' mangled-name='dev_get_by_name' filepath='net/core/dev.c' line='837' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_get_by_name'>
+        <parameter type-id='a2bff676' name='net' filepath='net/core/dev.c' line='837' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='net/core/dev.c' line='837' column='1'/>
+        <return type-id='68a2d05b'/>
+      </function-decl>
+      <function-decl name='dev_get_by_name_rcu' mangled-name='dev_get_by_name_rcu' filepath='net/core/dev.c' line='816' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_get_by_name_rcu'>
+        <parameter type-id='a2bff676' name='net' filepath='net/core/dev.c' line='816' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='net/core/dev.c' line='816' column='1'/>
+        <return type-id='68a2d05b'/>
+      </function-decl>
+      <function-decl name='dev_get_regmap' mangled-name='dev_get_regmap' filepath='drivers/base/regmap/regmap.c' line='1572' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_get_regmap'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/regmap/regmap.c' line='1572' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/base/regmap/regmap.c' line='1572' column='1'/>
+        <return type-id='29af9a71'/>
+      </function-decl>
+      <function-decl name='dev_get_stats' mangled-name='dev_get_stats' filepath='net/core/dev.c' line='10685' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_get_stats'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='10685' column='1'/>
+        <parameter type-id='bd3860fe' name='storage' filepath='net/core/dev.c' line='10686' column='1'/>
+        <return type-id='bd3860fe'/>
+      </function-decl>
+      <function-decl name='dev_get_tstats64' mangled-name='dev_get_tstats64' filepath='net/core/dev.c' line='10747' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_get_tstats64'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='10747' column='1'/>
+        <parameter type-id='bd3860fe' name='s' filepath='net/core/dev.c' line='10747' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_mc_sync_multiple' mangled-name='dev_mc_sync_multiple' filepath='net/core/dev_addr_lists.c' line='951' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_mc_sync_multiple'>
+        <parameter type-id='68a2d05b' name='to' filepath='net/core/dev_addr_lists.c' line='951' column='1'/>
+        <parameter type-id='68a2d05b' name='from' filepath='net/core/dev_addr_lists.c' line='951' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_mc_unsync' mangled-name='dev_mc_unsync' filepath='net/core/dev_addr_lists.c' line='976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_mc_unsync'>
+        <parameter type-id='68a2d05b' name='to' filepath='net/core/dev_addr_lists.c' line='976' column='1'/>
+        <parameter type-id='68a2d05b' name='from' filepath='net/core/dev_addr_lists.c' line='976' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_open' mangled-name='dev_open' filepath='net/core/dev.c' line='1522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_open'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='1522' column='1'/>
+        <parameter type-id='5799dc94' name='extack' filepath='net/core/dev.c' line='1522' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_clear_wake_irq' mangled-name='dev_pm_clear_wake_irq' filepath='drivers/base/power/wakeirq.c' line='84' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_clear_wake_irq'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/wakeirq.c' line='84' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_pm_domain_attach' mangled-name='dev_pm_domain_attach' filepath='drivers/base/power/common.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_domain_attach'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/common.c' line='102' column='1'/>
+        <parameter type-id='b50a4934' name='power_on' filepath='drivers/base/power/common.c' line='102' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_domain_attach_by_id' mangled-name='dev_pm_domain_attach_by_id' filepath='drivers/base/power/common.c' line='143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_domain_attach_by_id'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/common.c' line='143' column='1'/>
+        <parameter type-id='f0981eeb' name='index' filepath='drivers/base/power/common.c' line='144' column='1'/>
+        <return type-id='fa0b179b'/>
+      </function-decl>
+      <function-decl name='dev_pm_domain_attach_by_name' mangled-name='dev_pm_domain_attach_by_name' filepath='drivers/base/power/common.c' line='160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_domain_attach_by_name'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/common.c' line='160' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/base/power/common.c' line='161' column='1'/>
+        <return type-id='fa0b179b'/>
+      </function-decl>
+      <function-decl name='dev_pm_domain_detach' mangled-name='dev_pm_domain_detach' filepath='drivers/base/power/common.c' line='183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_domain_detach'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/common.c' line='183' column='1'/>
+        <parameter type-id='b50a4934' name='power_off' filepath='drivers/base/power/common.c' line='183' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_pm_genpd_add_notifier' mangled-name='dev_pm_genpd_add_notifier' filepath='drivers/base/power/domain.c' line='1722' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_genpd_add_notifier'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/domain.c' line='1722' column='1'/>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/base/power/domain.c' line='1722' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_genpd_remove_notifier' mangled-name='dev_pm_genpd_remove_notifier' filepath='drivers/base/power/domain.c' line='1768' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_genpd_remove_notifier'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/domain.c' line='1768' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_genpd_set_next_wakeup' mangled-name='dev_pm_genpd_set_next_wakeup' filepath='drivers/base/power/domain.c' line='477' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_genpd_set_next_wakeup'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/domain.c' line='477' column='1'/>
+        <parameter type-id='fbc017ef' name='next' filepath='drivers/base/power/domain.c' line='477' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_pm_genpd_set_performance_state' mangled-name='dev_pm_genpd_set_performance_state' filepath='drivers/base/power/domain.c' line='435' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_genpd_set_performance_state'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/domain.c' line='435' column='1'/>
+        <parameter type-id='f0981eeb' name='state' filepath='drivers/base/power/domain.c' line='435' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_add' mangled-name='dev_pm_opp_add' filepath='drivers/opp/core.c' line='2610' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_add'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='2610' column='1'/>
+        <parameter type-id='7359adad' name='freq' filepath='drivers/opp/core.c' line='2610' column='1'/>
+        <parameter type-id='7359adad' name='u_volt' filepath='drivers/opp/core.c' line='2610' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_adjust_voltage' mangled-name='dev_pm_opp_adjust_voltage' filepath='drivers/opp/core.c' line='2712' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_adjust_voltage'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='2712' column='1'/>
+        <parameter type-id='7359adad' name='freq' filepath='drivers/opp/core.c' line='2712' column='1'/>
+        <parameter type-id='7359adad' name='u_volt' filepath='drivers/opp/core.c' line='2713' column='1'/>
+        <parameter type-id='7359adad' name='u_volt_min' filepath='drivers/opp/core.c' line='2713' column='1'/>
+        <parameter type-id='7359adad' name='u_volt_max' filepath='drivers/opp/core.c' line='2714' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_disable' mangled-name='dev_pm_opp_disable' filepath='drivers/opp/core.c' line='2803' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_disable'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='2803' column='1'/>
+        <parameter type-id='7359adad' name='freq' filepath='drivers/opp/core.c' line='2803' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_enable' mangled-name='dev_pm_opp_enable' filepath='drivers/opp/core.c' line='2783' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_enable'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='2783' column='1'/>
+        <parameter type-id='7359adad' name='freq' filepath='drivers/opp/core.c' line='2783' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_find_freq_ceil' mangled-name='dev_pm_opp_find_freq_ceil' filepath='drivers/opp/core.c' line='572' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_find_freq_ceil'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='572' column='1'/>
+        <parameter type-id='1d2c2b85' name='freq' filepath='drivers/opp/core.c' line='573' column='1'/>
+        <return type-id='02e48bc6'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_find_freq_ceil_by_volt' mangled-name='dev_pm_opp_find_freq_ceil_by_volt' filepath='drivers/opp/core.c' line='670' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_find_freq_ceil_by_volt'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='670' column='1'/>
+        <parameter type-id='7359adad' name='u_volt' filepath='drivers/opp/core.c' line='671' column='1'/>
+        <return type-id='02e48bc6'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_find_freq_exact' mangled-name='dev_pm_opp_find_freq_exact' filepath='drivers/opp/core.c' line='399' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_find_freq_exact'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='399' column='1'/>
+        <parameter type-id='7359adad' name='freq' filepath='drivers/opp/core.c' line='400' column='1'/>
+        <parameter type-id='b50a4934' name='available' filepath='drivers/opp/core.c' line='401' column='1'/>
+        <return type-id='02e48bc6'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_find_freq_floor' mangled-name='dev_pm_opp_find_freq_floor' filepath='drivers/opp/core.c' line='613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_find_freq_floor'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='613' column='1'/>
+        <parameter type-id='1d2c2b85' name='freq' filepath='drivers/opp/core.c' line='614' column='1'/>
+        <return type-id='02e48bc6'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_free_cpufreq_table' mangled-name='dev_pm_opp_free_cpufreq_table' filepath='drivers/opp/cpu.c' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_free_cpufreq_table'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/cpu.c' line='96' column='1'/>
+        <parameter type-id='873a2591' name='table' filepath='drivers/opp/cpu.c' line='97' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_get_freq' mangled-name='dev_pm_opp_get_freq' filepath='drivers/opp/core.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_get_freq'>
+        <parameter type-id='02e48bc6' name='opp' filepath='drivers/opp/core.c' line='123' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_get_level' mangled-name='dev_pm_opp_get_level' filepath='drivers/opp/core.c' line='141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_get_level'>
+        <parameter type-id='02e48bc6' name='opp' filepath='drivers/opp/core.c' line='141' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_get_max_transition_latency' mangled-name='dev_pm_opp_get_max_transition_latency' filepath='drivers/opp/core.c' line='300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_get_max_transition_latency'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='300' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_get_opp_count' mangled-name='dev_pm_opp_get_opp_count' filepath='drivers/opp/core.c' line='356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_get_opp_count'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='356' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_get_opp_table' mangled-name='dev_pm_opp_get_opp_table' filepath='drivers/opp/core.c' line='1365' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_get_opp_table'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='1365' column='1'/>
+        <return type-id='e62a60bd'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_get_sharing_cpus' mangled-name='dev_pm_opp_get_sharing_cpus' filepath='drivers/opp/cpu.c' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_get_sharing_cpus'>
+        <parameter type-id='fa0b179b' name='cpu_dev' filepath='drivers/opp/cpu.c' line='205' column='1'/>
+        <parameter type-id='74bccedd' name='cpumask' filepath='drivers/opp/cpu.c' line='205' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_get_suspend_opp_freq' mangled-name='dev_pm_opp_get_suspend_opp_freq' filepath='drivers/opp/core.c' line='314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_get_suspend_opp_freq'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='314' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_get_voltage' mangled-name='dev_pm_opp_get_voltage' filepath='drivers/opp/core.c' line='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_get_voltage'>
+        <parameter type-id='02e48bc6' name='opp' filepath='drivers/opp/core.c' line='105' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_init_cpufreq_table' mangled-name='dev_pm_opp_init_cpufreq_table' filepath='drivers/opp/cpu.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_init_cpufreq_table'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/cpu.c' line='43' column='1'/>
+        <parameter type-id='873a2591' name='table' filepath='drivers/opp/cpu.c' line='44' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_of_add_table' mangled-name='dev_pm_opp_of_add_table' filepath='drivers/opp/of.c' line='1132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_of_add_table'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/of.c' line='1132' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_of_add_table_indexed' mangled-name='dev_pm_opp_of_add_table_indexed' filepath='drivers/opp/of.c' line='1148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_of_add_table_indexed'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/of.c' line='1148' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/opp/of.c' line='1148' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_of_cpumask_add_table' mangled-name='dev_pm_opp_of_cpumask_add_table' filepath='drivers/opp/of.c' line='1193' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_of_cpumask_add_table'>
+        <parameter type-id='5f8a1ac4' name='cpumask' filepath='drivers/opp/of.c' line='1193' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_of_cpumask_remove_table' mangled-name='dev_pm_opp_of_cpumask_remove_table' filepath='drivers/opp/of.c' line='1181' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_of_cpumask_remove_table'>
+        <parameter type-id='5f8a1ac4' name='cpumask' filepath='drivers/opp/of.c' line='1181' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_of_find_icc_paths' mangled-name='dev_pm_opp_of_find_icc_paths' filepath='drivers/opp/of.c' line='455' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_of_find_icc_paths'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/of.c' line='455' column='1'/>
+        <parameter type-id='e62a60bd' name='opp_table' filepath='drivers/opp/of.c' line='456' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_of_get_opp_desc_node' mangled-name='dev_pm_opp_of_get_opp_desc_node' filepath='drivers/opp/of.c' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_of_get_opp_desc_node'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/of.c' line='36' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_of_get_sharing_cpus' mangled-name='dev_pm_opp_of_get_sharing_cpus' filepath='drivers/opp/of.c' line='1250' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_of_get_sharing_cpus'>
+        <parameter type-id='fa0b179b' name='cpu_dev' filepath='drivers/opp/of.c' line='1250' column='1'/>
+        <parameter type-id='74bccedd' name='cpumask' filepath='drivers/opp/of.c' line='1251' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_of_register_em' mangled-name='dev_pm_opp_of_register_em' filepath='drivers/opp/of.c' line='1427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_of_register_em'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/of.c' line='1427' column='1'/>
+        <parameter type-id='74bccedd' name='cpus' filepath='drivers/opp/of.c' line='1427' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_of_remove_table' mangled-name='dev_pm_opp_of_remove_table' filepath='drivers/opp/of.c' line='721' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_of_remove_table'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/of.c' line='721' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_put' mangled-name='dev_pm_opp_put' filepath='drivers/opp/core.c' line='1449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_put'>
+        <parameter type-id='02e48bc6' name='opp' filepath='drivers/opp/core.c' line='1449' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_put_clkname' mangled-name='dev_pm_opp_put_clkname' filepath='drivers/opp/core.c' line='2167' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_put_clkname'>
+        <parameter type-id='e62a60bd' name='opp_table' filepath='drivers/opp/core.c' line='2167' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_put_opp_table' mangled-name='dev_pm_opp_put_opp_table' filepath='drivers/opp/core.c' line='1414' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_put_opp_table'>
+        <parameter type-id='e62a60bd' name='opp_table' filepath='drivers/opp/core.c' line='1414' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_put_prop_name' mangled-name='dev_pm_opp_put_prop_name' filepath='drivers/opp/core.c' line='1939' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_put_prop_name'>
+        <parameter type-id='e62a60bd' name='opp_table' filepath='drivers/opp/core.c' line='1939' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_put_regulators' mangled-name='dev_pm_opp_put_regulators' filepath='drivers/opp/core.c' line='2043' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_put_regulators'>
+        <parameter type-id='e62a60bd' name='opp_table' filepath='drivers/opp/core.c' line='2043' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_put_supported_hw' mangled-name='dev_pm_opp_put_supported_hw' filepath='drivers/opp/core.c' line='1854' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_put_supported_hw'>
+        <parameter type-id='e62a60bd' name='opp_table' filepath='drivers/opp/core.c' line='1854' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_remove' mangled-name='dev_pm_opp_remove' filepath='drivers/opp/core.c' line='1462' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_remove'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='1462' column='1'/>
+        <parameter type-id='7359adad' name='freq' filepath='drivers/opp/core.c' line='1462' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_remove_all_dynamic' mangled-name='dev_pm_opp_remove_all_dynamic' filepath='drivers/opp/core.c' line='1564' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_remove_all_dynamic'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='1564' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_set_clkname' mangled-name='dev_pm_opp_set_clkname' filepath='drivers/opp/core.c' line='2122' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_set_clkname'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='2122' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/opp/core.c' line='2122' column='1'/>
+        <return type-id='e62a60bd'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_set_opp' mangled-name='dev_pm_opp_set_opp' filepath='drivers/opp/core.c' line='1156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_set_opp'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='1156' column='1'/>
+        <parameter type-id='02e48bc6' name='opp' filepath='drivers/opp/core.c' line='1156' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_set_prop_name' mangled-name='dev_pm_opp_set_prop_name' filepath='drivers/opp/core.c' line='1906' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_set_prop_name'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='1906' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/opp/core.c' line='1906' column='1'/>
+        <return type-id='e62a60bd'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_set_rate' mangled-name='dev_pm_opp_set_rate' filepath='drivers/opp/core.c' line='1091' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_set_rate'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='1091' column='1'/>
+        <parameter type-id='7359adad' name='target_freq' filepath='drivers/opp/core.c' line='1091' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_set_regulators' mangled-name='dev_pm_opp_set_regulators' filepath='drivers/opp/core.c' line='1963' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_set_regulators'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='1963' column='1'/>
+        <parameter type-id='13956559' name='names' filepath='drivers/opp/core.c' line='1964' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='drivers/opp/core.c' line='1965' column='1'/>
+        <return type-id='e62a60bd'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_set_sharing_cpus' mangled-name='dev_pm_opp_set_sharing_cpus' filepath='drivers/opp/cpu.c' line='155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_set_sharing_cpus'>
+        <parameter type-id='fa0b179b' name='cpu_dev' filepath='drivers/opp/cpu.c' line='155' column='1'/>
+        <parameter type-id='5f8a1ac4' name='cpumask' filepath='drivers/opp/cpu.c' line='156' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_opp_set_supported_hw' mangled-name='dev_pm_opp_set_supported_hw' filepath='drivers/opp/core.c' line='1817' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_opp_set_supported_hw'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='1817' column='1'/>
+        <parameter type-id='aded214c' name='versions' filepath='drivers/opp/core.c' line='1818' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='drivers/opp/core.c' line='1818' column='1'/>
+        <return type-id='e62a60bd'/>
+      </function-decl>
+      <function-decl name='dev_pm_qos_add_notifier' mangled-name='dev_pm_qos_add_notifier' filepath='drivers/base/power/qos.c' line='536' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_qos_add_notifier'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/qos.c' line='536' column='1'/>
+        <parameter type-id='d504f73d' name='notifier' filepath='drivers/base/power/qos.c' line='536' column='1'/>
+        <parameter type-id='c47ba023' name='type' filepath='drivers/base/power/qos.c' line='537' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_qos_add_request' mangled-name='dev_pm_qos_add_request' filepath='drivers/base/power/qos.c' line='389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_qos_add_request'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/qos.c' line='389' column='1'/>
+        <parameter type-id='a80fd1bc' name='req' filepath='drivers/base/power/qos.c' line='389' column='1'/>
+        <parameter type-id='c47ba023' name='type' filepath='drivers/base/power/qos.c' line='390' column='1'/>
+        <parameter type-id='a7832498' name='value' filepath='drivers/base/power/qos.c' line='390' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_qos_expose_latency_tolerance' mangled-name='dev_pm_qos_expose_latency_tolerance' filepath='drivers/base/power/qos.c' line='952' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_qos_expose_latency_tolerance'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/qos.c' line='952' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_qos_hide_latency_tolerance' mangled-name='dev_pm_qos_hide_latency_tolerance' filepath='drivers/base/power/qos.c' line='971' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_qos_hide_latency_tolerance'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/qos.c' line='971' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_pm_qos_read_value' mangled-name='dev_pm_qos_read_value' filepath='drivers/base/power/qos.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_qos_read_value'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/qos.c' line='110' column='1'/>
+        <parameter type-id='c47ba023' name='type' filepath='drivers/base/power/qos.c' line='110' column='1'/>
+        <return type-id='a7832498'/>
+      </function-decl>
+      <function-decl name='dev_pm_qos_remove_notifier' mangled-name='dev_pm_qos_remove_notifier' filepath='drivers/base/power/qos.c' line='586' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_qos_remove_notifier'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/qos.c' line='586' column='1'/>
+        <parameter type-id='d504f73d' name='notifier' filepath='drivers/base/power/qos.c' line='587' column='1'/>
+        <parameter type-id='c47ba023' name='type' filepath='drivers/base/power/qos.c' line='588' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_qos_remove_request' mangled-name='dev_pm_qos_remove_request' filepath='drivers/base/power/qos.c' line='511' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_qos_remove_request'>
+        <parameter type-id='a80fd1bc' name='req' filepath='drivers/base/power/qos.c' line='511' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_qos_update_request' mangled-name='dev_pm_qos_update_request' filepath='drivers/base/power/qos.c' line='464' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_qos_update_request'>
+        <parameter type-id='a80fd1bc' name='req' filepath='drivers/base/power/qos.c' line='464' column='1'/>
+        <parameter type-id='a7832498' name='new_value' filepath='drivers/base/power/qos.c' line='464' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_qos_update_user_latency_tolerance' mangled-name='dev_pm_qos_update_user_latency_tolerance' filepath='drivers/base/power/qos.c' line='905' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_qos_update_user_latency_tolerance'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/qos.c' line='905' column='1'/>
+        <parameter type-id='a7832498' name='val' filepath='drivers/base/power/qos.c' line='905' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_set_dedicated_wake_irq' mangled-name='dev_pm_set_dedicated_wake_irq' filepath='drivers/base/power/wakeirq.c' line='162' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_set_dedicated_wake_irq'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/wakeirq.c' line='162' column='1'/>
+        <parameter type-id='95e97e5e' name='irq' filepath='drivers/base/power/wakeirq.c' line='162' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_pm_set_wake_irq' mangled-name='dev_pm_set_wake_irq' filepath='drivers/base/power/wakeirq.c' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_pm_set_wake_irq'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/wakeirq.c' line='50' column='1'/>
+        <parameter type-id='95e97e5e' name='irq' filepath='drivers/base/power/wakeirq.c' line='50' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_printk_emit' mangled-name='dev_printk_emit' filepath='drivers/base/core.c' line='4609' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_printk_emit'>
+        <parameter type-id='95e97e5e' name='level' filepath='drivers/base/core.c' line='4609' column='1'/>
+        <parameter type-id='8df61054' name='dev' filepath='drivers/base/core.c' line='4609' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/base/core.c' line='4609' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_queue_xmit' mangled-name='dev_queue_xmit' filepath='net/core/dev.c' line='4263' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_queue_xmit'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/dev.c' line='4263' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_remove_pack' mangled-name='dev_remove_pack' filepath='net/core/dev.c' line='601' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_remove_pack'>
+        <parameter type-id='1c079e60' name='pt' filepath='net/core/dev.c' line='601' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_set_mac_address' mangled-name='dev_set_mac_address' filepath='net/core/dev.c' line='9036' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_set_mac_address'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='9036' column='1'/>
+        <parameter type-id='5c0abad8' name='sa' filepath='net/core/dev.c' line='9036' column='1'/>
+        <parameter type-id='5799dc94' name='extack' filepath='net/core/dev.c' line='9037' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_set_mtu' mangled-name='dev_set_mtu' filepath='net/core/dev.c' line='8951' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_set_mtu'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='8951' column='1'/>
+        <parameter type-id='95e97e5e' name='new_mtu' filepath='net/core/dev.c' line='8951' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_set_name' mangled-name='dev_set_name' filepath='drivers/base/core.c' line='3186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_set_name'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='3186' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/base/core.c' line='3186' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_set_threaded' mangled-name='dev_set_threaded' filepath='net/core/dev.c' line='6852' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_set_threaded'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='6852' column='1'/>
+        <parameter type-id='b50a4934' name='threaded' filepath='net/core/dev.c' line='6852' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_to_i3cdev' mangled-name='dev_to_i3cdev' filepath='drivers/i3c/device.c' line='197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_to_i3cdev'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/i3c/device.c' line='197' column='1'/>
+        <return type-id='c062d7a5'/>
+      </function-decl>
+      <function-decl name='dev_trans_start' mangled-name='dev_trans_start' filepath='net/sched/sch_generic.c' line='428' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_trans_start'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/sched/sch_generic.c' line='428' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='dev_uc_sync_multiple' mangled-name='dev_uc_sync_multiple' filepath='net/core/dev_addr_lists.c' line='728' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_uc_sync_multiple'>
+        <parameter type-id='68a2d05b' name='to' filepath='net/core/dev_addr_lists.c' line='728' column='1'/>
+        <parameter type-id='68a2d05b' name='from' filepath='net/core/dev_addr_lists.c' line='728' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dev_uc_unsync' mangled-name='dev_uc_unsync' filepath='net/core/dev_addr_lists.c' line='753' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_uc_unsync'>
+        <parameter type-id='68a2d05b' name='to' filepath='net/core/dev_addr_lists.c' line='753' column='1'/>
+        <parameter type-id='68a2d05b' name='from' filepath='net/core/dev_addr_lists.c' line='753' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dev_valid_name' mangled-name='dev_valid_name' filepath='net/core/dev.c' line='1057' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_valid_name'>
+        <parameter type-id='80f4b756' name='name' filepath='net/core/dev.c' line='1057' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='dev_vprintk_emit' mangled-name='dev_vprintk_emit' filepath='drivers/base/core.c' line='4598' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dev_vprintk_emit'>
+        <parameter type-id='95e97e5e' name='level' filepath='drivers/base/core.c' line='4598' column='1'/>
+        <parameter type-id='8df61054' name='dev' filepath='drivers/base/core.c' line='4598' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/base/core.c' line='4599' column='1'/>
+        <parameter type-id='2aee9912' name='args' filepath='drivers/base/core.c' line='4599' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devfreq_add_device' mangled-name='devfreq_add_device' filepath='drivers/devfreq/devfreq.c' line='781' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_add_device'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/devfreq/devfreq.c' line='781' column='1'/>
+        <parameter type-id='cba10b6e' name='profile' filepath='drivers/devfreq/devfreq.c' line='782' column='1'/>
+        <parameter type-id='80f4b756' name='governor_name' filepath='drivers/devfreq/devfreq.c' line='783' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/devfreq/devfreq.c' line='784' column='1'/>
+        <return type-id='f66fa7f4'/>
+      </function-decl>
+      <function-decl name='devfreq_add_governor' mangled-name='devfreq_add_governor' filepath='drivers/devfreq/devfreq.c' line='1243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_add_governor'>
+        <parameter type-id='247297cd' name='governor' filepath='drivers/devfreq/devfreq.c' line='1243' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devfreq_cooling_em_register' mangled-name='devfreq_cooling_em_register' filepath='drivers/thermal/devfreq_cooling.c' line='485' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_cooling_em_register'>
+        <parameter type-id='f66fa7f4' name='df' filepath='drivers/thermal/devfreq_cooling.c' line='485' column='1'/>
+        <parameter type-id='0b660ebe' name='dfc_power' filepath='drivers/thermal/devfreq_cooling.c' line='486' column='1'/>
+        <return type-id='2feec21f'/>
+      </function-decl>
+      <function-decl name='devfreq_cooling_unregister' mangled-name='devfreq_cooling_unregister' filepath='drivers/thermal/devfreq_cooling.c' line='518' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_cooling_unregister'>
+        <parameter type-id='2feec21f' name='cdev' filepath='drivers/thermal/devfreq_cooling.c' line='518' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devfreq_event_disable_edev' mangled-name='devfreq_event_disable_edev' filepath='drivers/devfreq/devfreq-event.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_event_disable_edev'>
+        <parameter type-id='88146159' name='edev' filepath='drivers/devfreq/devfreq-event.c' line='69' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devfreq_event_enable_edev' mangled-name='devfreq_event_enable_edev' filepath='drivers/devfreq/devfreq-event.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_event_enable_edev'>
+        <parameter type-id='88146159' name='edev' filepath='drivers/devfreq/devfreq-event.c' line='37' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devfreq_event_get_edev_by_phandle' mangled-name='devfreq_event_get_edev_by_phandle' filepath='drivers/devfreq/devfreq-event.c' line='221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_event_get_edev_by_phandle'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/devfreq/devfreq-event.c' line='221' column='1'/>
+        <parameter type-id='80f4b756' name='phandle_name' filepath='drivers/devfreq/devfreq-event.c' line='222' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/devfreq/devfreq-event.c' line='222' column='1'/>
+        <return type-id='88146159'/>
+      </function-decl>
+      <function-decl name='devfreq_event_get_event' mangled-name='devfreq_event_get_event' filepath='drivers/devfreq/devfreq-event.c' line='160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_event_get_event'>
+        <parameter type-id='88146159' name='edev' filepath='drivers/devfreq/devfreq-event.c' line='160' column='1'/>
+        <parameter type-id='d6184118' name='edata' filepath='drivers/devfreq/devfreq-event.c' line='161' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devfreq_get_devfreq_by_node' mangled-name='devfreq_get_devfreq_by_node' filepath='drivers/devfreq/devfreq.c' line='1044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_get_devfreq_by_node'>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/devfreq/devfreq.c' line='1044' column='1'/>
+        <return type-id='f66fa7f4'/>
+      </function-decl>
+      <function-decl name='devfreq_get_devfreq_by_phandle' mangled-name='devfreq_get_devfreq_by_phandle' filepath='drivers/devfreq/devfreq.c' line='1072' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_get_devfreq_by_phandle'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/devfreq/devfreq.c' line='1072' column='1'/>
+        <parameter type-id='80f4b756' name='phandle_name' filepath='drivers/devfreq/devfreq.c' line='1073' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/devfreq/devfreq.c' line='1073' column='1'/>
+        <return type-id='f66fa7f4'/>
+      </function-decl>
+      <function-decl name='devfreq_monitor_resume' mangled-name='devfreq_monitor_resume' filepath='drivers/devfreq/devfreq.c' line='561' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_monitor_resume'>
+        <parameter type-id='f66fa7f4' name='devfreq' filepath='drivers/devfreq/devfreq.c' line='561' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devfreq_monitor_start' mangled-name='devfreq_monitor_start' filepath='drivers/devfreq/devfreq.c' line='483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_monitor_start'>
+        <parameter type-id='f66fa7f4' name='devfreq' filepath='drivers/devfreq/devfreq.c' line='483' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devfreq_monitor_stop' mangled-name='devfreq_monitor_stop' filepath='drivers/devfreq/devfreq.c' line='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_monitor_stop'>
+        <parameter type-id='f66fa7f4' name='devfreq' filepath='drivers/devfreq/devfreq.c' line='513' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devfreq_monitor_suspend' mangled-name='devfreq_monitor_suspend' filepath='drivers/devfreq/devfreq.c' line='534' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_monitor_suspend'>
+        <parameter type-id='f66fa7f4' name='devfreq' filepath='drivers/devfreq/devfreq.c' line='534' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devfreq_recommended_opp' mangled-name='devfreq_recommended_opp' filepath='drivers/devfreq/devfreq.c' line='1999' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_recommended_opp'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/devfreq/devfreq.c' line='1999' column='1'/>
+        <parameter type-id='1d2c2b85' name='freq' filepath='drivers/devfreq/devfreq.c' line='2000' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='drivers/devfreq/devfreq.c' line='2001' column='1'/>
+        <return type-id='02e48bc6'/>
+      </function-decl>
+      <function-decl name='devfreq_register_opp_notifier' mangled-name='devfreq_register_opp_notifier' filepath='drivers/devfreq/devfreq.c' line='2032' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_register_opp_notifier'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/devfreq/devfreq.c' line='2032' column='1'/>
+        <parameter type-id='f66fa7f4' name='devfreq' filepath='drivers/devfreq/devfreq.c' line='2032' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devfreq_remove_device' mangled-name='devfreq_remove_device' filepath='drivers/devfreq/devfreq.c' line='967' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_remove_device'>
+        <parameter type-id='f66fa7f4' name='devfreq' filepath='drivers/devfreq/devfreq.c' line='967' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devfreq_remove_governor' mangled-name='devfreq_remove_governor' filepath='drivers/devfreq/devfreq.c' line='1308' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_remove_governor'>
+        <parameter type-id='247297cd' name='governor' filepath='drivers/devfreq/devfreq.c' line='1308' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devfreq_resume_device' mangled-name='devfreq_resume_device' filepath='drivers/devfreq/devfreq.c' line='1166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_resume_device'>
+        <parameter type-id='f66fa7f4' name='devfreq' filepath='drivers/devfreq/devfreq.c' line='1166' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devfreq_suspend_device' mangled-name='devfreq_suspend_device' filepath='drivers/devfreq/devfreq.c' line='1129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_suspend_device'>
+        <parameter type-id='f66fa7f4' name='devfreq' filepath='drivers/devfreq/devfreq.c' line='1129' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devfreq_unregister_opp_notifier' mangled-name='devfreq_unregister_opp_notifier' filepath='drivers/devfreq/devfreq.c' line='2048' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_unregister_opp_notifier'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/devfreq/devfreq.c' line='2048' column='1'/>
+        <parameter type-id='f66fa7f4' name='devfreq' filepath='drivers/devfreq/devfreq.c' line='2048' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devfreq_update_interval' mangled-name='devfreq_update_interval' filepath='drivers/devfreq/devfreq.c' line='599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_update_interval'>
+        <parameter type-id='f66fa7f4' name='devfreq' filepath='drivers/devfreq/devfreq.c' line='599' column='1'/>
+        <parameter type-id='807869d3' name='delay' filepath='drivers/devfreq/devfreq.c' line='599' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devfreq_update_status' mangled-name='devfreq_update_status' filepath='drivers/devfreq/devfreq.c' line='219' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devfreq_update_status'>
+        <parameter type-id='f66fa7f4' name='devfreq' filepath='drivers/devfreq/devfreq.c' line='219' column='1'/>
+        <parameter type-id='7359adad' name='freq' filepath='drivers/devfreq/devfreq.c' line='219' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_add' mangled-name='device_add' filepath='drivers/base/core.c' line='3285' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_add'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='3285' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_add_disk' mangled-name='device_add_disk' filepath='block/genhd.c' line='393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_add_disk'>
+        <parameter type-id='fa0b179b' name='parent' filepath='block/genhd.c' line='393' column='1'/>
+        <parameter type-id='33c599da' name='disk' filepath='block/genhd.c' line='393' column='1'/>
+        <parameter type-id='c97de1ac' name='groups' filepath='block/genhd.c' line='394' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_add_groups' mangled-name='device_add_groups' filepath='drivers/base/core.c' line='2481' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_add_groups'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='2481' column='1'/>
+        <parameter type-id='c97de1ac' name='groups' filepath='drivers/base/core.c' line='2481' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_attach' mangled-name='device_attach' filepath='drivers/base/dd.c' line='1020' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_attach'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/dd.c' line='1020' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_bind_driver' mangled-name='device_bind_driver' filepath='drivers/base/dd.c' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_bind_driver'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/dd.c' line='476' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_create' mangled-name='device_create' filepath='drivers/base/core.c' line='4098' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_create'>
+        <parameter type-id='67aca04f' name='class' filepath='drivers/base/core.c' line='4098' column='1'/>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/base/core.c' line='4098' column='1'/>
+        <parameter type-id='8504f260' name='devt' filepath='drivers/base/core.c' line='4099' column='1'/>
+        <parameter type-id='eaa32e2f' name='drvdata' filepath='drivers/base/core.c' line='4099' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/base/core.c' line='4099' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='fa0b179b'/>
+      </function-decl>
+      <function-decl name='device_create_bin_file' mangled-name='device_create_bin_file' filepath='drivers/base/core.c' line='2814' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_create_bin_file'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='2814' column='1'/>
+        <parameter type-id='559ac6f0' name='attr' filepath='drivers/base/core.c' line='2815' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_create_file' mangled-name='device_create_file' filepath='drivers/base/core.c' line='2760' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_create_file'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='2760' column='1'/>
+        <parameter type-id='de63df21' name='attr' filepath='drivers/base/core.c' line='2761' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_create_managed_software_node' mangled-name='device_create_managed_software_node' filepath='drivers/base/swnode.c' line='1102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_create_managed_software_node'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/swnode.c' line='1102' column='1'/>
+        <parameter type-id='9e1d140c' name='properties' filepath='drivers/base/swnode.c' line='1103' column='1'/>
+        <parameter type-id='1cc6783c' name='parent' filepath='drivers/base/swnode.c' line='1104' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_create_with_groups' mangled-name='device_create_with_groups' filepath='drivers/base/core.c' line='4139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_create_with_groups'>
+        <parameter type-id='67aca04f' name='class' filepath='drivers/base/core.c' line='4139' column='1'/>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/base/core.c' line='4140' column='1'/>
+        <parameter type-id='8504f260' name='devt' filepath='drivers/base/core.c' line='4140' column='1'/>
+        <parameter type-id='eaa32e2f' name='drvdata' filepath='drivers/base/core.c' line='4141' column='1'/>
+        <parameter type-id='c97de1ac' name='groups' filepath='drivers/base/core.c' line='4142' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/base/core.c' line='4143' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='fa0b179b'/>
+      </function-decl>
+      <function-decl name='device_del' mangled-name='device_del' filepath='drivers/base/core.c' line='3547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_del'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='3547' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='device_destroy' mangled-name='device_destroy' filepath='drivers/base/core.c' line='4164' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_destroy'>
+        <parameter type-id='67aca04f' name='class' filepath='drivers/base/core.c' line='4164' column='1'/>
+        <parameter type-id='8504f260' name='devt' filepath='drivers/base/core.c' line='4164' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='device_find_child' mangled-name='device_find_child' filepath='drivers/base/core.c' line='3778' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_find_child'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/base/core.c' line='3778' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/core.c' line='3778' column='1'/>
+        <parameter type-id='92d15ae9' name='match' filepath='drivers/base/core.c' line='3779' column='1'/>
+        <return type-id='fa0b179b'/>
+      </function-decl>
+      <function-decl name='device_for_each_child' mangled-name='device_for_each_child' filepath='drivers/base/core.c' line='3713' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_for_each_child'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/base/core.c' line='3713' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/core.c' line='3713' column='1'/>
+        <parameter type-id='92d15ae9' name='fn' filepath='drivers/base/core.c' line='3714' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_for_each_child_reverse' mangled-name='device_for_each_child_reverse' filepath='drivers/base/core.c' line='3743' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_for_each_child_reverse'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/base/core.c' line='3743' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/core.c' line='3743' column='1'/>
+        <parameter type-id='92d15ae9' name='fn' filepath='drivers/base/core.c' line='3744' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_get_child_node_count' mangled-name='device_get_child_node_count' filepath='drivers/base/property.c' line='874' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_get_child_node_count'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/property.c' line='874' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='device_get_dma_attr' mangled-name='device_get_dma_attr' filepath='drivers/base/property.c' line='901' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_get_dma_attr'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/property.c' line='901' column='1'/>
+        <return type-id='0f98306c'/>
+      </function-decl>
+      <function-decl name='device_get_mac_address' mangled-name='device_get_mac_address' filepath='drivers/base/property.c' line='1016' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_get_mac_address'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/property.c' line='1016' column='1'/>
+        <parameter type-id='26a90f95' name='addr' filepath='drivers/base/property.c' line='1016' column='1'/>
+        <parameter type-id='95e97e5e' name='alen' filepath='drivers/base/property.c' line='1016' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='device_get_match_data' mangled-name='device_get_match_data' filepath='drivers/base/property.c' line='1284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_get_match_data'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/property.c' line='1284' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='device_get_named_child_node' mangled-name='device_get_named_child_node' filepath='drivers/base/property.c' line='815' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_get_named_child_node'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/property.c' line='815' column='1'/>
+        <parameter type-id='80f4b756' name='childname' filepath='drivers/base/property.c' line='816' column='1'/>
+        <return type-id='4a935625'/>
+      </function-decl>
+      <function-decl name='device_get_next_child_node' mangled-name='device_get_next_child_node' filepath='drivers/base/property.c' line='778' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_get_next_child_node'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/property.c' line='778' column='1'/>
+        <parameter type-id='4a935625' name='child' filepath='drivers/base/property.c' line='779' column='1'/>
+        <return type-id='4a935625'/>
+      </function-decl>
+      <function-decl name='device_get_phy_mode' mangled-name='device_get_phy_mode' filepath='drivers/base/property.c' line='954' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_get_phy_mode'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/property.c' line='954' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_init_wakeup' mangled-name='device_init_wakeup' filepath='drivers/base/power/wakeup.c' line='517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_init_wakeup'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/wakeup.c' line='517' column='1'/>
+        <parameter type-id='b50a4934' name='enable' filepath='drivers/base/power/wakeup.c' line='517' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_initialize' mangled-name='device_initialize' filepath='drivers/base/core.c' line='2873' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_initialize'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='2873' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='device_link_add' mangled-name='device_link_add' filepath='drivers/base/core.c' line='695' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_link_add'>
+        <parameter type-id='fa0b179b' name='consumer' filepath='drivers/base/core.c' line='695' column='1'/>
+        <parameter type-id='fa0b179b' name='supplier' filepath='drivers/base/core.c' line='696' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='drivers/base/core.c' line='696' column='1'/>
+        <return type-id='7acfb3fa'/>
+      </function-decl>
+      <function-decl name='device_link_del' mangled-name='device_link_del' filepath='drivers/base/core.c' line='925' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_link_del'>
+        <parameter type-id='7acfb3fa' name='link' filepath='drivers/base/core.c' line='925' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='device_link_remove' mangled-name='device_link_remove' filepath='drivers/base/core.c' line='941' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_link_remove'>
+        <parameter type-id='eaa32e2f' name='consumer' filepath='drivers/base/core.c' line='941' column='1'/>
+        <parameter type-id='fa0b179b' name='supplier' filepath='drivers/base/core.c' line='941' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='device_match_any' mangled-name='device_match_any' filepath='drivers/base/core.c' line='4847' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_match_any'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='4847' column='1'/>
+        <parameter type-id='eaa32e2f' name='unused' filepath='drivers/base/core.c' line='4847' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_match_fwnode' mangled-name='device_match_fwnode' filepath='drivers/base/core.c' line='4829' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_match_fwnode'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='4829' column='1'/>
+        <parameter type-id='eaa32e2f' name='fwnode' filepath='drivers/base/core.c' line='4829' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_match_name' mangled-name='device_match_name' filepath='drivers/base/core.c' line='4817' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_match_name'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='4817' column='1'/>
+        <parameter type-id='eaa32e2f' name='name' filepath='drivers/base/core.c' line='4817' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_match_of_node' mangled-name='device_match_of_node' filepath='drivers/base/core.c' line='4823' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_match_of_node'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='4823' column='1'/>
+        <parameter type-id='eaa32e2f' name='np' filepath='drivers/base/core.c' line='4823' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_move' mangled-name='device_move' filepath='drivers/base/core.c' line='4274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_move'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='4274' column='1'/>
+        <parameter type-id='fa0b179b' name='new_parent' filepath='drivers/base/core.c' line='4274' column='1'/>
+        <parameter type-id='ba51dfc4' name='dpm_order' filepath='drivers/base/core.c' line='4275' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_node_to_regmap' mangled-name='device_node_to_regmap' filepath='drivers/mfd/syscon.c' line='179' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_node_to_regmap'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/mfd/syscon.c' line='179' column='1'/>
+        <return type-id='29af9a71'/>
+      </function-decl>
+      <function-decl name='device_pm_wait_for_dev' mangled-name='device_pm_wait_for_dev' filepath='drivers/base/power/main.c' line='1990' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_pm_wait_for_dev'>
+        <parameter type-id='fa0b179b' name='subordinate' filepath='drivers/base/power/main.c' line='1990' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/main.c' line='1990' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_property_present' mangled-name='device_property_present' filepath='drivers/base/property.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_property_present'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/property.c' line='35' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/base/property.c' line='35' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='device_property_read_string' mangled-name='device_property_read_string' filepath='drivers/base/property.c' line='202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_property_read_string'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/property.c' line='202' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/base/property.c' line='202' column='1'/>
+        <parameter type-id='7d3cd834' name='val' filepath='drivers/base/property.c' line='203' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_property_read_string_array' mangled-name='device_property_read_string_array' filepath='drivers/base/property.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_property_read_string_array'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/property.c' line='180' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/base/property.c' line='180' column='1'/>
+        <parameter type-id='7d3cd834' name='val' filepath='drivers/base/property.c' line='181' column='1'/>
+        <parameter type-id='b59d7dce' name='nval' filepath='drivers/base/property.c' line='181' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_property_read_u16_array' mangled-name='device_property_read_u16_array' filepath='drivers/base/property.c' line='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_property_read_u16_array'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/property.c' line='105' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/base/property.c' line='105' column='1'/>
+        <parameter type-id='26d4d46f' name='val' filepath='drivers/base/property.c' line='106' column='1'/>
+        <parameter type-id='b59d7dce' name='nval' filepath='drivers/base/property.c' line='106' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_property_read_u32_array' mangled-name='device_property_read_u32_array' filepath='drivers/base/property.c' line='130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_property_read_u32_array'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/property.c' line='130' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/base/property.c' line='130' column='1'/>
+        <parameter type-id='f9409001' name='val' filepath='drivers/base/property.c' line='131' column='1'/>
+        <parameter type-id='b59d7dce' name='nval' filepath='drivers/base/property.c' line='131' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_property_read_u8_array' mangled-name='device_property_read_u8_array' filepath='drivers/base/property.c' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_property_read_u8_array'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/property.c' line='80' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/base/property.c' line='80' column='1'/>
+        <parameter type-id='8bff8096' name='val' filepath='drivers/base/property.c' line='81' column='1'/>
+        <parameter type-id='b59d7dce' name='nval' filepath='drivers/base/property.c' line='81' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_register' mangled-name='device_register' filepath='drivers/base/core.c' line='3483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='3483' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_release_driver' mangled-name='device_release_driver' filepath='drivers/base/dd.c' line='1278' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_release_driver'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/dd.c' line='1278' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='device_remove_bin_file' mangled-name='device_remove_bin_file' filepath='drivers/base/core.c' line='2829' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_remove_bin_file'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='2829' column='1'/>
+        <parameter type-id='559ac6f0' name='attr' filepath='drivers/base/core.c' line='2830' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='device_remove_file' mangled-name='device_remove_file' filepath='drivers/base/core.c' line='2784' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_remove_file'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='2784' column='1'/>
+        <parameter type-id='de63df21' name='attr' filepath='drivers/base/core.c' line='2785' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='device_remove_file_self' mangled-name='device_remove_file_self' filepath='drivers/base/core.c' line='2799' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_remove_file_self'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='2799' column='1'/>
+        <parameter type-id='de63df21' name='attr' filepath='drivers/base/core.c' line='2800' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='device_remove_groups' mangled-name='device_remove_groups' filepath='drivers/base/core.c' line='2487' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_remove_groups'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='2487' column='1'/>
+        <parameter type-id='c97de1ac' name='groups' filepath='drivers/base/core.c' line='2488' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='device_rename' mangled-name='device_rename' filepath='drivers/base/core.c' line='4215' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_rename'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='4215' column='1'/>
+        <parameter type-id='80f4b756' name='new_name' filepath='drivers/base/core.c' line='4215' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_set_of_node_from_dev' mangled-name='device_set_of_node_from_dev' filepath='drivers/base/core.c' line='4802' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_set_of_node_from_dev'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='4802' column='1'/>
+        <parameter type-id='8df61054' name='dev2' filepath='drivers/base/core.c' line='4802' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='device_set_wakeup_capable' mangled-name='device_set_wakeup_capable' filepath='drivers/base/power/wakeup.c' line='487' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_set_wakeup_capable'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/wakeup.c' line='487' column='1'/>
+        <parameter type-id='b50a4934' name='capable' filepath='drivers/base/power/wakeup.c' line='487' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='device_set_wakeup_enable' mangled-name='device_set_wakeup_enable' filepath='drivers/base/power/wakeup.c' line='541' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_set_wakeup_enable'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/wakeup.c' line='541' column='1'/>
+        <parameter type-id='b50a4934' name='enable' filepath='drivers/base/power/wakeup.c' line='541' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_show_bool' mangled-name='device_show_bool' filepath='drivers/base/core.c' line='2200' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_show_bool'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='2200' column='1'/>
+        <parameter type-id='89a2612a' name='attr' filepath='drivers/base/core.c' line='2200' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='drivers/base/core.c' line='2201' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='device_show_int' mangled-name='device_show_int' filepath='drivers/base/core.c' line='2178' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_show_int'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='2178' column='1'/>
+        <parameter type-id='89a2612a' name='attr' filepath='drivers/base/core.c' line='2179' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='drivers/base/core.c' line='2180' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='device_store_bool' mangled-name='device_store_bool' filepath='drivers/base/core.c' line='2188' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_store_bool'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='2188' column='1'/>
+        <parameter type-id='89a2612a' name='attr' filepath='drivers/base/core.c' line='2188' column='1'/>
+        <parameter type-id='80f4b756' name='buf' filepath='drivers/base/core.c' line='2189' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/base/core.c' line='2189' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='device_store_int' mangled-name='device_store_int' filepath='drivers/base/core.c' line='2158' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_store_int'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='2158' column='1'/>
+        <parameter type-id='89a2612a' name='attr' filepath='drivers/base/core.c' line='2159' column='1'/>
+        <parameter type-id='80f4b756' name='buf' filepath='drivers/base/core.c' line='2160' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/base/core.c' line='2160' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='device_unregister' mangled-name='device_unregister' filepath='drivers/base/core.c' line='3622' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_unregister'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='3622' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='device_wakeup_disable' mangled-name='device_wakeup_disable' filepath='drivers/base/power/wakeup.c' line='462' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_wakeup_disable'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/wakeup.c' line='462' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='device_wakeup_enable' mangled-name='device_wakeup_enable' filepath='drivers/base/power/wakeup.c' line='340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_wakeup_enable'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/wakeup.c' line='340' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devlink_alloc_ns' mangled-name='devlink_alloc_ns' filepath='net/core/devlink.c' line='8912' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devlink_alloc_ns'>
+        <parameter type-id='585f57ca' name='ops' filepath='net/core/devlink.c' line='8912' column='1'/>
+        <parameter type-id='b59d7dce' name='priv_size' filepath='net/core/devlink.c' line='8913' column='1'/>
+        <parameter type-id='a2bff676' name='net' filepath='net/core/devlink.c' line='8913' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='net/core/devlink.c' line='8914' column='1'/>
+        <return type-id='e6b84692'/>
+      </function-decl>
+      <function-decl name='devlink_flash_update_status_notify' mangled-name='devlink_flash_update_status_notify' filepath='net/core/devlink.c' line='4188' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devlink_flash_update_status_notify'>
+        <parameter type-id='e6b84692' name='devlink' filepath='net/core/devlink.c' line='4188' column='1'/>
+        <parameter type-id='80f4b756' name='status_msg' filepath='net/core/devlink.c' line='4189' column='1'/>
+        <parameter type-id='80f4b756' name='component' filepath='net/core/devlink.c' line='4190' column='1'/>
+        <parameter type-id='7359adad' name='done' filepath='net/core/devlink.c' line='4191' column='1'/>
+        <parameter type-id='7359adad' name='total' filepath='net/core/devlink.c' line='4192' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devlink_fmsg_binary_pair_nest_end' mangled-name='devlink_fmsg_binary_pair_nest_end' filepath='net/core/devlink.c' line='6240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devlink_fmsg_binary_pair_nest_end'>
+        <parameter type-id='2d44fb50' name='fmsg' filepath='net/core/devlink.c' line='6240' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devlink_fmsg_binary_pair_nest_start' mangled-name='devlink_fmsg_binary_pair_nest_start' filepath='net/core/devlink.c' line='6226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devlink_fmsg_binary_pair_nest_start'>
+        <parameter type-id='2d44fb50' name='fmsg' filepath='net/core/devlink.c' line='6226' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='net/core/devlink.c' line='6227' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devlink_fmsg_binary_put' mangled-name='devlink_fmsg_binary_put' filepath='net/core/devlink.c' line='6318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devlink_fmsg_binary_put'>
+        <parameter type-id='2d44fb50' name='fmsg' filepath='net/core/devlink.c' line='6318' column='1'/>
+        <parameter type-id='eaa32e2f' name='value' filepath='net/core/devlink.c' line='6318' column='1'/>
+        <parameter type-id='1dc6a898' name='value_len' filepath='net/core/devlink.c' line='6319' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devlink_free' mangled-name='devlink_free' filepath='net/core/devlink.c' line='9033' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devlink_free'>
+        <parameter type-id='e6b84692' name='devlink' filepath='net/core/devlink.c' line='9033' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devlink_health_report' mangled-name='devlink_health_report' filepath='net/core/devlink.c' line='7027' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devlink_health_report'>
+        <parameter type-id='d4e0eca9' name='reporter' filepath='net/core/devlink.c' line='7027' column='1'/>
+        <parameter type-id='80f4b756' name='msg' filepath='net/core/devlink.c' line='7028' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv_ctx' filepath='net/core/devlink.c' line='7028' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devlink_health_reporter_create' mangled-name='devlink_health_reporter_create' filepath='net/core/devlink.c' line='6773' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devlink_health_reporter_create'>
+        <parameter type-id='e6b84692' name='devlink' filepath='net/core/devlink.c' line='6773' column='1'/>
+        <parameter type-id='6af1ec35' name='ops' filepath='net/core/devlink.c' line='6774' column='1'/>
+        <parameter type-id='91ce1af9' name='graceful_period' filepath='net/core/devlink.c' line='6775' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='net/core/devlink.c' line='6775' column='1'/>
+        <return type-id='d4e0eca9'/>
+      </function-decl>
+      <function-decl name='devlink_health_reporter_destroy' mangled-name='devlink_health_reporter_destroy' filepath='net/core/devlink.c' line='6826' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devlink_health_reporter_destroy'>
+        <parameter type-id='d4e0eca9' name='reporter' filepath='net/core/devlink.c' line='6826' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devlink_health_reporter_priv' mangled-name='devlink_health_reporter_priv' filepath='net/core/devlink.c' line='6665' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devlink_health_reporter_priv'>
+        <parameter type-id='d4e0eca9' name='reporter' filepath='net/core/devlink.c' line='6665' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='devlink_health_reporter_state_update' mangled-name='devlink_health_reporter_state_update' filepath='net/core/devlink.c' line='7134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devlink_health_reporter_state_update'>
+        <parameter type-id='d4e0eca9' name='reporter' filepath='net/core/devlink.c' line='7134' column='1'/>
+        <parameter type-id='1eecc5c0' name='state' filepath='net/core/devlink.c' line='7135' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devlink_region_create' mangled-name='devlink_region_create' filepath='net/core/devlink.c' line='10431' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devlink_region_create'>
+        <parameter type-id='e6b84692' name='devlink' filepath='net/core/devlink.c' line='10431' column='1'/>
+        <parameter type-id='ffbf24ff' name='ops' filepath='net/core/devlink.c' line='10432' column='1'/>
+        <parameter type-id='19c2251e' name='region_max_snapshots' filepath='net/core/devlink.c' line='10433' column='1'/>
+        <parameter type-id='91ce1af9' name='region_size' filepath='net/core/devlink.c' line='10433' column='1'/>
+        <return type-id='f5292d81'/>
+      </function-decl>
+      <function-decl name='devlink_region_destroy' mangled-name='devlink_region_destroy' filepath='net/core/devlink.c' line='10527' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devlink_region_destroy'>
+        <parameter type-id='f5292d81' name='region' filepath='net/core/devlink.c' line='10527' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devlink_register' mangled-name='devlink_register' filepath='net/core/devlink.c' line='8964' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devlink_register'>
+        <parameter type-id='e6b84692' name='devlink' filepath='net/core/devlink.c' line='8964' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devlink_unregister' mangled-name='devlink_unregister' filepath='net/core/devlink.c' line='8979' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devlink_unregister'>
+        <parameter type-id='e6b84692' name='devlink' filepath='net/core/devlink.c' line='8979' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_add_action' mangled-name='devm_add_action' filepath='drivers/base/devres.c' line='728' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_add_action'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devres.c' line='728' column='1'/>
+        <parameter type-id='b7f9d8e6' name='action' filepath='drivers/base/devres.c' line='728' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/devres.c' line='728' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_alloc_etherdev_mqs' mangled-name='devm_alloc_etherdev_mqs' filepath='net/devres.c' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_alloc_etherdev_mqs'>
+        <parameter type-id='fa0b179b' name='dev' filepath='net/devres.c' line='21' column='1'/>
+        <parameter type-id='95e97e5e' name='sizeof_priv' filepath='net/devres.c' line='21' column='1'/>
+        <parameter type-id='f0981eeb' name='txqs' filepath='net/devres.c' line='22' column='1'/>
+        <parameter type-id='f0981eeb' name='rxqs' filepath='net/devres.c' line='22' column='1'/>
+        <return type-id='68a2d05b'/>
+      </function-decl>
+      <function-decl name='devm_backlight_device_register' mangled-name='devm_backlight_device_register' filepath='drivers/video/backlight/backlight.c' line='602' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_backlight_device_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/video/backlight/backlight.c' line='602' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/video/backlight/backlight.c' line='603' column='1'/>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/video/backlight/backlight.c' line='603' column='1'/>
+        <parameter type-id='eaa32e2f' name='devdata' filepath='drivers/video/backlight/backlight.c' line='603' column='1'/>
+        <parameter type-id='a3d6b1c0' name='ops' filepath='drivers/video/backlight/backlight.c' line='604' column='1'/>
+        <parameter type-id='f46152e7' name='props' filepath='drivers/video/backlight/backlight.c' line='605' column='1'/>
+        <return type-id='7a76d041'/>
+      </function-decl>
+      <function-decl name='devm_backlight_device_unregister' mangled-name='devm_backlight_device_unregister' filepath='drivers/video/backlight/backlight.c' line='636' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_backlight_device_unregister'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/video/backlight/backlight.c' line='636' column='1'/>
+        <parameter type-id='7a76d041' name='bd' filepath='drivers/video/backlight/backlight.c' line='637' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_bitmap_zalloc' mangled-name='devm_bitmap_zalloc' filepath='lib/bitmap.c' line='1432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_bitmap_zalloc'>
+        <parameter type-id='fa0b179b' name='dev' filepath='lib/bitmap.c' line='1432' column='1'/>
+        <parameter type-id='f0981eeb' name='nbits' filepath='lib/bitmap.c' line='1433' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='lib/bitmap.c' line='1433' column='1'/>
+        <return type-id='1d2c2b85'/>
+      </function-decl>
+      <function-decl name='devm_blk_ksm_init' mangled-name='devm_blk_ksm_init' filepath='block/keyslot-manager.c' line='152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_blk_ksm_init'>
+        <parameter type-id='fa0b179b' name='dev' filepath='block/keyslot-manager.c' line='152' column='1'/>
+        <parameter type-id='bf8a20d2' name='ksm' filepath='block/keyslot-manager.c' line='152' column='1'/>
+        <parameter type-id='f0981eeb' name='num_slots' filepath='block/keyslot-manager.c' line='153' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_clk_bulk_get' mangled-name='devm_clk_bulk_get' filepath='drivers/clk/clk-devres.c' line='140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_clk_bulk_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-devres.c' line='140' column='1'/>
+        <parameter type-id='95e97e5e' name='num_clks' filepath='drivers/clk/clk-devres.c' line='140' column='1'/>
+        <parameter type-id='2942e355' name='clks' filepath='drivers/clk/clk-devres.c' line='141' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_clk_bulk_get_all' mangled-name='devm_clk_bulk_get_all' filepath='drivers/clk/clk-devres.c' line='161' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_clk_bulk_get_all'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-devres.c' line='161' column='1'/>
+        <parameter type-id='734c20ed' name='clks' filepath='drivers/clk/clk-devres.c' line='162' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_clk_bulk_get_optional' mangled-name='devm_clk_bulk_get_optional' filepath='drivers/clk/clk-devres.c' line='147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_clk_bulk_get_optional'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-devres.c' line='147' column='1'/>
+        <parameter type-id='95e97e5e' name='num_clks' filepath='drivers/clk/clk-devres.c' line='147' column='1'/>
+        <parameter type-id='2942e355' name='clks' filepath='drivers/clk/clk-devres.c' line='148' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_clk_get' mangled-name='devm_clk_get' filepath='drivers/clk/clk-devres.c' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_clk_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-devres.c' line='63' column='1'/>
+        <parameter type-id='80f4b756' name='id' filepath='drivers/clk/clk-devres.c' line='63' column='1'/>
+        <return type-id='7d0bc0eb'/>
+      </function-decl>
+      <function-decl name='devm_clk_get_optional' mangled-name='devm_clk_get_optional' filepath='drivers/clk/clk-devres.c' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_clk_get_optional'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-devres.c' line='82' column='1'/>
+        <parameter type-id='80f4b756' name='id' filepath='drivers/clk/clk-devres.c' line='82' column='1'/>
+        <return type-id='7d0bc0eb'/>
+      </function-decl>
+      <function-decl name='devm_clk_get_optional_enabled' mangled-name='devm_clk_get_optional_enabled' filepath='drivers/clk/clk-devres.c' line='95' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_clk_get_optional_enabled'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-devres.c' line='95' column='1'/>
+        <parameter type-id='80f4b756' name='id' filepath='drivers/clk/clk-devres.c' line='95' column='1'/>
+        <return type-id='7d0bc0eb'/>
+      </function-decl>
+      <function-decl name='devm_clk_hw_register' mangled-name='devm_clk_hw_register' filepath='drivers/clk/clk.c' line='4290' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_clk_hw_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk.c' line='4290' column='1'/>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk.c' line='4290' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_clk_hw_register_clkdev' mangled-name='devm_clk_hw_register_clkdev' filepath='drivers/clk/clkdev.c' line='403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_clk_hw_register_clkdev'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clkdev.c' line='403' column='1'/>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clkdev.c' line='403' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/clk/clkdev.c' line='404' column='1'/>
+        <parameter type-id='80f4b756' name='dev_id' filepath='drivers/clk/clkdev.c' line='404' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_clk_hw_register_fixed_factor' mangled-name='devm_clk_hw_register_fixed_factor' filepath='drivers/clk/clk-fixed-factor.c' line='181' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_clk_hw_register_fixed_factor'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-fixed-factor.c' line='181' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/clk/clk-fixed-factor.c' line='182' column='1'/>
+        <parameter type-id='80f4b756' name='parent_name' filepath='drivers/clk/clk-fixed-factor.c' line='182' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-fixed-factor.c' line='182' column='1'/>
+        <parameter type-id='f0981eeb' name='mult' filepath='drivers/clk/clk-fixed-factor.c' line='183' column='1'/>
+        <parameter type-id='f0981eeb' name='div' filepath='drivers/clk/clk-fixed-factor.c' line='183' column='1'/>
+        <return type-id='3aaeef89'/>
+      </function-decl>
+      <function-decl name='devm_clk_put' mangled-name='devm_clk_put' filepath='drivers/clk/clk-devres.c' line='195' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_clk_put'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-devres.c' line='195' column='1'/>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/clk/clk-devres.c' line='195' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_clk_register' mangled-name='devm_clk_register' filepath='drivers/clk/clk.c' line='4260' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_clk_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk.c' line='4260' column='1'/>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk.c' line='4260' column='1'/>
+        <return type-id='7d0bc0eb'/>
+      </function-decl>
+      <function-decl name='devm_devfreq_add_device' mangled-name='devm_devfreq_add_device' filepath='drivers/devfreq/devfreq.c' line='1013' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_devfreq_add_device'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/devfreq/devfreq.c' line='1013' column='1'/>
+        <parameter type-id='cba10b6e' name='profile' filepath='drivers/devfreq/devfreq.c' line='1014' column='1'/>
+        <parameter type-id='80f4b756' name='governor_name' filepath='drivers/devfreq/devfreq.c' line='1015' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/devfreq/devfreq.c' line='1016' column='1'/>
+        <return type-id='f66fa7f4'/>
+      </function-decl>
+      <function-decl name='devm_devfreq_event_add_edev' mangled-name='devm_devfreq_event_add_edev' filepath='drivers/devfreq/devfreq-event.c' line='397' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_devfreq_event_add_edev'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/devfreq/devfreq-event.c' line='397' column='1'/>
+        <parameter type-id='72742e5b' name='desc' filepath='drivers/devfreq/devfreq-event.c' line='398' column='1'/>
+        <return type-id='88146159'/>
+      </function-decl>
+      <function-decl name='devm_devfreq_register_notifier' mangled-name='devm_devfreq_register_notifier' filepath='drivers/devfreq/devfreq.c' line='2179' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_devfreq_register_notifier'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/devfreq/devfreq.c' line='2179' column='1'/>
+        <parameter type-id='f66fa7f4' name='devfreq' filepath='drivers/devfreq/devfreq.c' line='2180' column='1'/>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/devfreq/devfreq.c' line='2181' column='1'/>
+        <parameter type-id='f0981eeb' name='list' filepath='drivers/devfreq/devfreq.c' line='2182' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_devfreq_register_opp_notifier' mangled-name='devm_devfreq_register_opp_notifier' filepath='drivers/devfreq/devfreq.c' line='2065' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_devfreq_register_opp_notifier'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/devfreq/devfreq.c' line='2065' column='1'/>
+        <parameter type-id='f66fa7f4' name='devfreq' filepath='drivers/devfreq/devfreq.c' line='2066' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_devfreq_remove_device' mangled-name='devm_devfreq_remove_device' filepath='drivers/devfreq/devfreq.c' line='1114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_devfreq_remove_device'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/devfreq/devfreq.c' line='1114' column='1'/>
+        <parameter type-id='f66fa7f4' name='devfreq' filepath='drivers/devfreq/devfreq.c' line='1114' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_devfreq_unregister_notifier' mangled-name='devm_devfreq_unregister_notifier' filepath='drivers/devfreq/devfreq.c' line='2215' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_devfreq_unregister_notifier'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/devfreq/devfreq.c' line='2215' column='1'/>
+        <parameter type-id='f66fa7f4' name='devfreq' filepath='drivers/devfreq/devfreq.c' line='2216' column='1'/>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/devfreq/devfreq.c' line='2217' column='1'/>
+        <parameter type-id='f0981eeb' name='list' filepath='drivers/devfreq/devfreq.c' line='2218' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_devfreq_unregister_opp_notifier' mangled-name='devm_devfreq_unregister_opp_notifier' filepath='drivers/devfreq/devfreq.c' line='2094' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_devfreq_unregister_opp_notifier'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/devfreq/devfreq.c' line='2094' column='1'/>
+        <parameter type-id='f66fa7f4' name='devfreq' filepath='drivers/devfreq/devfreq.c' line='2095' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_device_add_group' mangled-name='devm_device_add_group' filepath='drivers/base/core.c' line='2532' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_device_add_group'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='2532' column='1'/>
+        <parameter type-id='8ff9530e' name='grp' filepath='drivers/base/core.c' line='2532' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_device_add_groups' mangled-name='devm_device_add_groups' filepath='drivers/base/core.c' line='2584' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_device_add_groups'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='2584' column='1'/>
+        <parameter type-id='c97de1ac' name='groups' filepath='drivers/base/core.c' line='2585' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_device_remove_group' mangled-name='devm_device_remove_group' filepath='drivers/base/core.c' line='2562' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_device_remove_group'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='2562' column='1'/>
+        <parameter type-id='8ff9530e' name='grp' filepath='drivers/base/core.c' line='2563' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_drm_panel_bridge_add' mangled-name='devm_drm_panel_bridge_add' filepath='drivers/gpu/drm/bridge/panel.c' line='270' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_drm_panel_bridge_add'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpu/drm/bridge/panel.c' line='270' column='1'/>
+        <parameter type-id='c5491077' name='panel' filepath='drivers/gpu/drm/bridge/panel.c' line='271' column='1'/>
+        <return type-id='8582e5ec'/>
+      </function-decl>
+      <function-decl name='devm_drm_panel_bridge_add_typed' mangled-name='devm_drm_panel_bridge_add_typed' filepath='drivers/gpu/drm/bridge/panel.c' line='295' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_drm_panel_bridge_add_typed'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpu/drm/bridge/panel.c' line='295' column='1'/>
+        <parameter type-id='c5491077' name='panel' filepath='drivers/gpu/drm/bridge/panel.c' line='296' column='1'/>
+        <parameter type-id='19c2251e' name='connector_type' filepath='drivers/gpu/drm/bridge/panel.c' line='297' column='1'/>
+        <return type-id='8582e5ec'/>
+      </function-decl>
+      <function-decl name='devm_extcon_dev_allocate' mangled-name='devm_extcon_dev_allocate' filepath='drivers/extcon/devres.c' line='65' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_extcon_dev_allocate'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/extcon/devres.c' line='65' column='1'/>
+        <parameter type-id='5b2fd8e8' name='supported_cable' filepath='drivers/extcon/devres.c' line='66' column='1'/>
+        <return type-id='c0d6fada'/>
+      </function-decl>
+      <function-decl name='devm_extcon_dev_register' mangled-name='devm_extcon_dev_register' filepath='drivers/extcon/devres.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_extcon_dev_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/extcon/devres.c' line='118' column='1'/>
+        <parameter type-id='c0d6fada' name='edev' filepath='drivers/extcon/devres.c' line='118' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_extcon_dev_unregister' mangled-name='devm_extcon_dev_unregister' filepath='drivers/extcon/devres.c' line='148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_extcon_dev_unregister'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/extcon/devres.c' line='148' column='1'/>
+        <parameter type-id='c0d6fada' name='edev' filepath='drivers/extcon/devres.c' line='148' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_extcon_register_notifier' mangled-name='devm_extcon_register_notifier' filepath='drivers/extcon/devres.c' line='172' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_extcon_register_notifier'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/extcon/devres.c' line='172' column='1'/>
+        <parameter type-id='c0d6fada' name='edev' filepath='drivers/extcon/devres.c' line='172' column='1'/>
+        <parameter type-id='f0981eeb' name='id' filepath='drivers/extcon/devres.c' line='173' column='1'/>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/extcon/devres.c' line='173' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_extcon_register_notifier_all' mangled-name='devm_extcon_register_notifier_all' filepath='drivers/extcon/devres.c' line='228' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_extcon_register_notifier_all'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/extcon/devres.c' line='228' column='1'/>
+        <parameter type-id='c0d6fada' name='edev' filepath='drivers/extcon/devres.c' line='228' column='1'/>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/extcon/devres.c' line='229' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_free_irq' mangled-name='devm_free_irq' filepath='kernel/irq/devres.c' line='139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_free_irq'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/irq/devres.c' line='139' column='1'/>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/devres.c' line='139' column='1'/>
+        <parameter type-id='eaa32e2f' name='dev_id' filepath='kernel/irq/devres.c' line='139' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_fwnode_gpiod_get_index' mangled-name='devm_fwnode_gpiod_get_index' filepath='drivers/gpio/gpiolib-devres.c' line='202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_fwnode_gpiod_get_index'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpio/gpiolib-devres.c' line='202' column='1'/>
+        <parameter type-id='4a935625' name='fwnode' filepath='drivers/gpio/gpiolib-devres.c' line='203' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/gpio/gpiolib-devres.c' line='204' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/gpio/gpiolib-devres.c' line='204' column='1'/>
+        <parameter type-id='38d4936d' name='flags' filepath='drivers/gpio/gpiolib-devres.c' line='205' column='1'/>
+        <parameter type-id='80f4b756' name='label' filepath='drivers/gpio/gpiolib-devres.c' line='206' column='1'/>
+        <return type-id='26760480'/>
+      </function-decl>
+      <function-decl name='devm_fwnode_pwm_get' mangled-name='devm_fwnode_pwm_get' filepath='drivers/pwm/core.c' line='1141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_fwnode_pwm_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pwm/core.c' line='1141' column='1'/>
+        <parameter type-id='4a935625' name='fwnode' filepath='drivers/pwm/core.c' line='1142' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/pwm/core.c' line='1143' column='1'/>
+        <return type-id='f06adae0'/>
+      </function-decl>
+      <function-decl name='devm_gen_pool_create' mangled-name='devm_gen_pool_create' filepath='lib/genalloc.c' line='829' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_gen_pool_create'>
+        <parameter type-id='fa0b179b' name='dev' filepath='lib/genalloc.c' line='829' column='1'/>
+        <parameter type-id='95e97e5e' name='min_alloc_order' filepath='lib/genalloc.c' line='829' column='1'/>
+        <parameter type-id='95e97e5e' name='nid' filepath='lib/genalloc.c' line='830' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='lib/genalloc.c' line='830' column='1'/>
+        <return type-id='75b9415a'/>
+      </function-decl>
+      <function-decl name='devm_get_clk_from_child' mangled-name='devm_get_clk_from_child' filepath='drivers/clk/clk-devres.c' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_get_clk_from_child'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk-devres.c' line='205' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/clk/clk-devres.c' line='206' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/clk/clk-devres.c' line='206' column='1'/>
+        <return type-id='7d0bc0eb'/>
+      </function-decl>
+      <function-decl name='devm_get_free_pages' mangled-name='devm_get_free_pages' filepath='drivers/base/devres.c' line='1116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_get_free_pages'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devres.c' line='1116' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='drivers/base/devres.c' line='1117' column='1'/>
+        <parameter type-id='f0981eeb' name='order' filepath='drivers/base/devres.c' line='1117' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='devm_gpio_free' mangled-name='devm_gpio_free' filepath='drivers/gpio/gpiolib-devres.c' line='472' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_gpio_free'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpio/gpiolib-devres.c' line='472' column='1'/>
+        <parameter type-id='f0981eeb' name='gpio' filepath='drivers/gpio/gpiolib-devres.c' line='472' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_gpio_request' mangled-name='devm_gpio_request' filepath='drivers/gpio/gpiolib-devres.c' line='410' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_gpio_request'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpio/gpiolib-devres.c' line='410' column='1'/>
+        <parameter type-id='f0981eeb' name='gpio' filepath='drivers/gpio/gpiolib-devres.c' line='410' column='1'/>
+        <parameter type-id='80f4b756' name='label' filepath='drivers/gpio/gpiolib-devres.c' line='410' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_gpio_request_one' mangled-name='devm_gpio_request_one' filepath='drivers/gpio/gpiolib-devres.c' line='439' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_gpio_request_one'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpio/gpiolib-devres.c' line='439' column='1'/>
+        <parameter type-id='f0981eeb' name='gpio' filepath='drivers/gpio/gpiolib-devres.c' line='439' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/gpio/gpiolib-devres.c' line='440' column='1'/>
+        <parameter type-id='80f4b756' name='label' filepath='drivers/gpio/gpiolib-devres.c' line='440' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_gpiochip_add_data_with_key' mangled-name='devm_gpiochip_add_data_with_key' filepath='drivers/gpio/gpiolib-devres.c' line='504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_gpiochip_add_data_with_key'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpio/gpiolib-devres.c' line='504' column='1'/>
+        <parameter type-id='e324928d' name='gc' filepath='drivers/gpio/gpiolib-devres.c' line='504' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/gpio/gpiolib-devres.c' line='504' column='1'/>
+        <parameter type-id='a57283f9' name='lock_key' filepath='drivers/gpio/gpiolib-devres.c' line='505' column='1'/>
+        <parameter type-id='a57283f9' name='request_key' filepath='drivers/gpio/gpiolib-devres.c' line='506' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_gpiod_get' mangled-name='devm_gpiod_get' filepath='drivers/gpio/gpiolib-devres.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_gpiod_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpio/gpiolib-devres.c' line='56' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/gpio/gpiolib-devres.c' line='57' column='1'/>
+        <parameter type-id='38d4936d' name='flags' filepath='drivers/gpio/gpiolib-devres.c' line='58' column='1'/>
+        <return type-id='26760480'/>
+      </function-decl>
+      <function-decl name='devm_gpiod_get_array' mangled-name='devm_gpiod_get_array' filepath='drivers/gpio/gpiolib-devres.c' line='266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_gpiod_get_array'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpio/gpiolib-devres.c' line='266' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/gpio/gpiolib-devres.c' line='267' column='1'/>
+        <parameter type-id='38d4936d' name='flags' filepath='drivers/gpio/gpiolib-devres.c' line='268' column='1'/>
+        <return type-id='58a5c6a3'/>
+      </function-decl>
+      <function-decl name='devm_gpiod_get_index' mangled-name='devm_gpiod_get_index' filepath='drivers/gpio/gpiolib-devres.c' line='93' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_gpiod_get_index'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpio/gpiolib-devres.c' line='93' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/gpio/gpiolib-devres.c' line='94' column='1'/>
+        <parameter type-id='f0981eeb' name='idx' filepath='drivers/gpio/gpiolib-devres.c' line='95' column='1'/>
+        <parameter type-id='38d4936d' name='flags' filepath='drivers/gpio/gpiolib-devres.c' line='96' column='1'/>
+        <return type-id='26760480'/>
+      </function-decl>
+      <function-decl name='devm_gpiod_get_index_optional' mangled-name='devm_gpiod_get_index_optional' filepath='drivers/gpio/gpiolib-devres.c' line='241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_gpiod_get_index_optional'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpio/gpiolib-devres.c' line='241' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/gpio/gpiolib-devres.c' line='242' column='1'/>
+        <parameter type-id='f0981eeb' name='index' filepath='drivers/gpio/gpiolib-devres.c' line='243' column='1'/>
+        <parameter type-id='38d4936d' name='flags' filepath='drivers/gpio/gpiolib-devres.c' line='244' column='1'/>
+        <return type-id='26760480'/>
+      </function-decl>
+      <function-decl name='devm_gpiod_get_optional' mangled-name='devm_gpiod_get_optional' filepath='drivers/gpio/gpiolib-devres.c' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_gpiod_get_optional'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpio/gpiolib-devres.c' line='74' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/gpio/gpiolib-devres.c' line='75' column='1'/>
+        <parameter type-id='38d4936d' name='flags' filepath='drivers/gpio/gpiolib-devres.c' line='76' column='1'/>
+        <return type-id='26760480'/>
+      </function-decl>
+      <function-decl name='devm_gpiod_put' mangled-name='devm_gpiod_put' filepath='drivers/gpio/gpiolib-devres.c' line='325' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_gpiod_put'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpio/gpiolib-devres.c' line='325' column='1'/>
+        <parameter type-id='26760480' name='desc' filepath='drivers/gpio/gpiolib-devres.c' line='325' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_gpiod_put_array' mangled-name='devm_gpiod_put_array' filepath='drivers/gpio/gpiolib-devres.c' line='371' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_gpiod_put_array'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpio/gpiolib-devres.c' line='371' column='1'/>
+        <parameter type-id='58a5c6a3' name='descs' filepath='drivers/gpio/gpiolib-devres.c' line='371' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_hwrng_register' mangled-name='devm_hwrng_register' filepath='drivers/char/hw_random/core.c' line='580' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_hwrng_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/char/hw_random/core.c' line='580' column='1'/>
+        <parameter type-id='c1547255' name='rng' filepath='drivers/char/hw_random/core.c' line='580' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_hwspin_lock_register' mangled-name='devm_hwspin_lock_register' filepath='drivers/hwspinlock/hwspinlock_core.c' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_hwspin_lock_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/hwspinlock/hwspinlock_core.c' line='612' column='1'/>
+        <parameter type-id='b8cd8f00' name='bank' filepath='drivers/hwspinlock/hwspinlock_core.c' line='613' column='1'/>
+        <parameter type-id='9138a099' name='ops' filepath='drivers/hwspinlock/hwspinlock_core.c' line='614' column='1'/>
+        <parameter type-id='95e97e5e' name='base_id' filepath='drivers/hwspinlock/hwspinlock_core.c' line='615' column='1'/>
+        <parameter type-id='95e97e5e' name='num_locks' filepath='drivers/hwspinlock/hwspinlock_core.c' line='615' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_hwspin_lock_request_specific' mangled-name='devm_hwspin_lock_request_specific' filepath='drivers/hwspinlock/hwspinlock_core.c' line='931' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_hwspin_lock_request_specific'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/hwspinlock/hwspinlock_core.c' line='931' column='1'/>
+        <parameter type-id='f0981eeb' name='id' filepath='drivers/hwspinlock/hwspinlock_core.c' line='932' column='1'/>
+        <return type-id='0cb0b26f'/>
+      </function-decl>
+      <function-decl name='devm_hwspin_lock_unregister' mangled-name='devm_hwspin_lock_unregister' filepath='drivers/hwspinlock/hwspinlock_core.c' line='583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_hwspin_lock_unregister'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/hwspinlock/hwspinlock_core.c' line='583' column='1'/>
+        <parameter type-id='b8cd8f00' name='bank' filepath='drivers/hwspinlock/hwspinlock_core.c' line='584' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_i2c_new_dummy_device' mangled-name='devm_i2c_new_dummy_device' filepath='drivers/i2c/i2c-core-base.c' line='1079' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_i2c_new_dummy_device'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/i2c/i2c-core-base.c' line='1079' column='1'/>
+        <parameter type-id='b9af02c3' name='adapter' filepath='drivers/i2c/i2c-core-base.c' line='1080' column='1'/>
+        <parameter type-id='1dc6a898' name='address' filepath='drivers/i2c/i2c-core-base.c' line='1081' column='1'/>
+        <return type-id='3e31633b'/>
+      </function-decl>
+      <function-decl name='devm_iio_channel_get' mangled-name='devm_iio_channel_get' filepath='drivers/iio/inkern.c' line='370' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_iio_channel_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iio/inkern.c' line='370' column='1'/>
+        <parameter type-id='80f4b756' name='channel_name' filepath='drivers/iio/inkern.c' line='371' column='1'/>
+        <return type-id='2712709a'/>
+      </function-decl>
+      <function-decl name='devm_iio_channel_get_all' mangled-name='devm_iio_channel_get_all' filepath='drivers/iio/inkern.c' line='499' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_iio_channel_get_all'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iio/inkern.c' line='499' column='1'/>
+        <return type-id='2712709a'/>
+      </function-decl>
+      <function-decl name='devm_iio_device_alloc' mangled-name='devm_iio_device_alloc' filepath='drivers/iio/industrialio-core.c' line='1725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_iio_device_alloc'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/iio/industrialio-core.c' line='1725' column='1'/>
+        <parameter type-id='95e97e5e' name='sizeof_priv' filepath='drivers/iio/industrialio-core.c' line='1725' column='1'/>
+        <return type-id='226853d2'/>
+      </function-decl>
+      <function-decl name='devm_iio_kfifo_buffer_setup_ext' mangled-name='devm_iio_kfifo_buffer_setup_ext' filepath='drivers/iio/buffer/kfifo_buf.c' line='222' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_iio_kfifo_buffer_setup_ext'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iio/buffer/kfifo_buf.c' line='222' column='1'/>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/buffer/kfifo_buf.c' line='223' column='1'/>
+        <parameter type-id='95e97e5e' name='mode_flags' filepath='drivers/iio/buffer/kfifo_buf.c' line='224' column='1'/>
+        <parameter type-id='7597aac3' name='setup_ops' filepath='drivers/iio/buffer/kfifo_buf.c' line='225' column='1'/>
+        <parameter type-id='cd733e18' name='buffer_attrs' filepath='drivers/iio/buffer/kfifo_buf.c' line='226' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_iio_triggered_buffer_setup_ext' mangled-name='devm_iio_triggered_buffer_setup_ext' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_iio_triggered_buffer_setup_ext'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='104' column='1'/>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='105' column='1'/>
+        <parameter type-id='3fefe9b7' name='h' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='106' column='1'/>
+        <parameter type-id='3fefe9b7' name='thread' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='107' column='1'/>
+        <parameter type-id='7597aac3' name='ops' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='108' column='1'/>
+        <parameter type-id='cd733e18' name='buffer_attrs' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='109' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_input_allocate_device' mangled-name='devm_input_allocate_device' filepath='drivers/input/input.c' line='1984' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_input_allocate_device'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/input/input.c' line='1984' column='1'/>
+        <return type-id='74b427eb'/>
+      </function-decl>
+      <function-decl name='devm_ioremap' mangled-name='devm_ioremap' filepath='lib/devres.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_ioremap'>
+        <parameter type-id='fa0b179b' name='dev' filepath='lib/devres.c' line='68' column='1'/>
+        <parameter type-id='acc63fdf' name='offset' filepath='lib/devres.c' line='68' column='1'/>
+        <parameter type-id='acc63fdf' name='size' filepath='lib/devres.c' line='69' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='devm_ioremap_resource' mangled-name='devm_ioremap_resource' filepath='lib/devres.c' line='199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_ioremap_resource'>
+        <parameter type-id='fa0b179b' name='dev' filepath='lib/devres.c' line='199' column='1'/>
+        <parameter type-id='e153f6de' name='res' filepath='lib/devres.c' line='200' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='devm_ioremap_wc' mangled-name='devm_ioremap_wc' filepath='lib/devres.c' line='98' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_ioremap_wc'>
+        <parameter type-id='fa0b179b' name='dev' filepath='lib/devres.c' line='98' column='1'/>
+        <parameter type-id='acc63fdf' name='offset' filepath='lib/devres.c' line='98' column='1'/>
+        <parameter type-id='acc63fdf' name='size' filepath='lib/devres.c' line='99' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='devm_iounmap' mangled-name='devm_iounmap' filepath='lib/devres.c' line='127' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_iounmap'>
+        <parameter type-id='fa0b179b' name='dev' filepath='lib/devres.c' line='127' column='1'/>
+        <parameter type-id='eaa32e2f' name='addr' filepath='lib/devres.c' line='127' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_irq_alloc_generic_chip' mangled-name='devm_irq_alloc_generic_chip' filepath='kernel/irq/devres.c' line='218' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_irq_alloc_generic_chip'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/irq/devres.c' line='218' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/irq/devres.c' line='218' column='1'/>
+        <parameter type-id='95e97e5e' name='num_ct' filepath='kernel/irq/devres.c' line='218' column='1'/>
+        <parameter type-id='f0981eeb' name='irq_base' filepath='kernel/irq/devres.c' line='219' column='1'/>
+        <parameter type-id='eaa32e2f' name='reg_base' filepath='kernel/irq/devres.c' line='219' column='1'/>
+        <parameter type-id='cdb741d3' name='handler' filepath='kernel/irq/devres.c' line='220' column='1'/>
+        <return type-id='e53d7a90'/>
+      </function-decl>
+      <function-decl name='devm_irq_setup_generic_chip' mangled-name='devm_irq_setup_generic_chip' filepath='kernel/irq/devres.c' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_irq_setup_generic_chip'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/irq/devres.c' line='262' column='1'/>
+        <parameter type-id='e53d7a90' name='gc' filepath='kernel/irq/devres.c' line='262' column='1'/>
+        <parameter type-id='19c2251e' name='msk' filepath='kernel/irq/devres.c' line='263' column='1'/>
+        <parameter type-id='7a1ec3b1' name='flags' filepath='kernel/irq/devres.c' line='263' column='1'/>
+        <parameter type-id='f0981eeb' name='clr' filepath='kernel/irq/devres.c' line='264' column='1'/>
+        <parameter type-id='f0981eeb' name='set' filepath='kernel/irq/devres.c' line='264' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_kasprintf' mangled-name='devm_kasprintf' filepath='drivers/base/devres.c' line='1025' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_kasprintf'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devres.c' line='1025' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='drivers/base/devres.c' line='1025' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/base/devres.c' line='1025' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='devm_kfree' mangled-name='devm_kfree' filepath='drivers/base/devres.c' line='1045' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_kfree'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devres.c' line='1045' column='1'/>
+        <parameter type-id='eaa32e2f' name='p' filepath='drivers/base/devres.c' line='1045' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_kmalloc' mangled-name='devm_kmalloc' filepath='drivers/base/devres.c' line='815' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_kmalloc'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devres.c' line='815' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/base/devres.c' line='815' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='drivers/base/devres.c' line='815' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='devm_kmemdup' mangled-name='devm_kmemdup' filepath='drivers/base/devres.c' line='1071' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_kmemdup'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devres.c' line='1071' column='1'/>
+        <parameter type-id='eaa32e2f' name='src' filepath='drivers/base/devres.c' line='1071' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/base/devres.c' line='1071' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='drivers/base/devres.c' line='1071' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='devm_krealloc' mangled-name='devm_krealloc' filepath='drivers/base/devres.c' line='853' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_krealloc'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devres.c' line='853' column='1'/>
+        <parameter type-id='eaa32e2f' name='ptr' filepath='drivers/base/devres.c' line='853' column='1'/>
+        <parameter type-id='b59d7dce' name='new_size' filepath='drivers/base/devres.c' line='853' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='drivers/base/devres.c' line='853' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='devm_kstrdup' mangled-name='devm_kstrdup' filepath='drivers/base/devres.c' line='944' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_kstrdup'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devres.c' line='944' column='1'/>
+        <parameter type-id='80f4b756' name='s' filepath='drivers/base/devres.c' line='944' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='drivers/base/devres.c' line='944' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='devm_kstrdup_const' mangled-name='devm_kstrdup_const' filepath='drivers/base/devres.c' line='973' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_kstrdup_const'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devres.c' line='973' column='1'/>
+        <parameter type-id='80f4b756' name='s' filepath='drivers/base/devres.c' line='973' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='drivers/base/devres.c' line='973' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='devm_kvasprintf' mangled-name='devm_kvasprintf' filepath='drivers/base/devres.c' line='993' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_kvasprintf'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devres.c' line='993' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='drivers/base/devres.c' line='993' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/base/devres.c' line='993' column='1'/>
+        <parameter type-id='2aee9912' name='ap' filepath='drivers/base/devres.c' line='994' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='devm_led_classdev_register_ext' mangled-name='devm_led_classdev_register_ext' filepath='drivers/leds/led-class.c' line='486' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_led_classdev_register_ext'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/leds/led-class.c' line='486' column='1'/>
+        <parameter type-id='bd1c8eb6' name='led_cdev' filepath='drivers/leds/led-class.c' line='487' column='1'/>
+        <parameter type-id='eebb8ee8' name='init_data' filepath='drivers/leds/led-class.c' line='488' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_led_classdev_unregister' mangled-name='devm_led_classdev_unregister' filepath='drivers/leds/led-class.c' line='525' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_led_classdev_unregister'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/leds/led-class.c' line='525' column='1'/>
+        <parameter type-id='bd1c8eb6' name='led_cdev' filepath='drivers/leds/led-class.c' line='526' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_mbox_controller_register' mangled-name='devm_mbox_controller_register' filepath='drivers/mailbox/mailbox.c' line='579' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_mbox_controller_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/mailbox/mailbox.c' line='579' column='1'/>
+        <parameter type-id='fb648468' name='mbox' filepath='drivers/mailbox/mailbox.c' line='580' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_mdiobus_alloc_size' mangled-name='devm_mdiobus_alloc_size' filepath='drivers/net/phy/mdio_devres.c' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_mdiobus_alloc_size'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/net/phy/mdio_devres.c' line='30' column='1'/>
+        <parameter type-id='95e97e5e' name='sizeof_priv' filepath='drivers/net/phy/mdio_devres.c' line='30' column='1'/>
+        <return type-id='ff47b24b'/>
+      </function-decl>
+      <function-decl name='devm_memremap' mangled-name='devm_memremap' filepath='kernel/iomem.c' line='139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_memremap'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/iomem.c' line='139' column='1'/>
+        <parameter type-id='acc63fdf' name='offset' filepath='kernel/iomem.c' line='139' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/iomem.c' line='140' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='kernel/iomem.c' line='140' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='devm_memunmap' mangled-name='devm_memunmap' filepath='kernel/iomem.c' line='162' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_memunmap'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/iomem.c' line='162' column='1'/>
+        <parameter type-id='eaa32e2f' name='addr' filepath='kernel/iomem.c' line='162' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_mfd_add_devices' mangled-name='devm_mfd_add_devices' filepath='drivers/mfd/mfd-core.c' line='413' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_mfd_add_devices'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/mfd/mfd-core.c' line='413' column='1'/>
+        <parameter type-id='95e97e5e' name='id' filepath='drivers/mfd/mfd-core.c' line='413' column='1'/>
+        <parameter type-id='1447e860' name='cells' filepath='drivers/mfd/mfd-core.c' line='414' column='1'/>
+        <parameter type-id='95e97e5e' name='n_devs' filepath='drivers/mfd/mfd-core.c' line='414' column='1'/>
+        <parameter type-id='c9d64c0d' name='mem_base' filepath='drivers/mfd/mfd-core.c' line='415' column='1'/>
+        <parameter type-id='95e97e5e' name='irq_base' filepath='drivers/mfd/mfd-core.c' line='416' column='1'/>
+        <parameter type-id='7544e824' name='domain' filepath='drivers/mfd/mfd-core.c' line='416' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_nvmem_cell_get' mangled-name='devm_nvmem_cell_get' filepath='drivers/nvmem/core.c' line='1301' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_nvmem_cell_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/nvmem/core.c' line='1301' column='1'/>
+        <parameter type-id='80f4b756' name='id' filepath='drivers/nvmem/core.c' line='1301' column='1'/>
+        <return type-id='4a4ce85f'/>
+      </function-decl>
+      <function-decl name='devm_nvmem_device_get' mangled-name='devm_nvmem_device_get' filepath='drivers/nvmem/core.c' line='1130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_nvmem_device_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/nvmem/core.c' line='1130' column='1'/>
+        <parameter type-id='80f4b756' name='id' filepath='drivers/nvmem/core.c' line='1130' column='1'/>
+        <return type-id='8179bc49'/>
+      </function-decl>
+      <function-decl name='devm_nvmem_register' mangled-name='devm_nvmem_register' filepath='drivers/nvmem/core.c' line='925' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_nvmem_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/nvmem/core.c' line='925' column='1'/>
+        <parameter type-id='7bb280fa' name='config' filepath='drivers/nvmem/core.c' line='926' column='1'/>
+        <return type-id='8179bc49'/>
+      </function-decl>
+      <function-decl name='devm_of_clk_add_hw_provider' mangled-name='devm_of_clk_add_hw_provider' filepath='drivers/clk/clk.c' line='4780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_of_clk_add_hw_provider'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk.c' line='4780' column='1'/>
+        <parameter type-id='a5186342' name='get' filepath='drivers/clk/clk.c' line='4781' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/clk/clk.c' line='4783' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_of_clk_del_provider' mangled-name='devm_of_clk_del_provider' filepath='drivers/clk/clk.c' line='4845' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_of_clk_del_provider'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/clk/clk.c' line='4845' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_of_icc_get' mangled-name='devm_of_icc_get' filepath='drivers/interconnect/core.c' line='402' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_of_icc_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/interconnect/core.c' line='402' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/interconnect/core.c' line='402' column='1'/>
+        <return type-id='b5fdec5e'/>
+      </function-decl>
+      <function-decl name='devm_of_iio_channel_get_by_name' mangled-name='devm_of_iio_channel_get_by_name' filepath='drivers/iio/inkern.c' line='388' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_of_iio_channel_get_by_name'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iio/inkern.c' line='388' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/iio/inkern.c' line='389' column='1'/>
+        <parameter type-id='80f4b756' name='channel_name' filepath='drivers/iio/inkern.c' line='390' column='1'/>
+        <return type-id='2712709a'/>
+      </function-decl>
+      <function-decl name='devm_of_iomap' mangled-name='devm_of_iomap' filepath='lib/devres.c' line='251' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_of_iomap'>
+        <parameter type-id='fa0b179b' name='dev' filepath='lib/devres.c' line='251' column='1'/>
+        <parameter type-id='9a537bbe' name='node' filepath='lib/devres.c' line='251' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='lib/devres.c' line='251' column='1'/>
+        <parameter type-id='9e6a6c02' name='size' filepath='lib/devres.c' line='252' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='devm_of_phy_get' mangled-name='devm_of_phy_get' filepath='drivers/phy/phy-core.c' line='816' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_of_phy_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/phy/phy-core.c' line='816' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/phy/phy-core.c' line='816' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/phy/phy-core.c' line='817' column='1'/>
+        <return type-id='503ff1ba'/>
+      </function-decl>
+      <function-decl name='devm_of_phy_get_by_index' mangled-name='devm_of_phy_get_by_index' filepath='drivers/phy/phy-core.c' line='856' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_of_phy_get_by_index'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/phy/phy-core.c' line='856' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/phy/phy-core.c' line='856' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/phy/phy-core.c' line='857' column='1'/>
+        <return type-id='503ff1ba'/>
+      </function-decl>
+      <function-decl name='devm_of_platform_populate' mangled-name='devm_of_platform_populate' filepath='drivers/of/platform.c' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_of_platform_populate'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/of/platform.c' line='612' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_of_pwm_get' mangled-name='devm_of_pwm_get' filepath='drivers/pwm/core.c' line='1111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_of_pwm_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pwm/core.c' line='1111' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/pwm/core.c' line='1111' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/pwm/core.c' line='1112' column='1'/>
+        <return type-id='f06adae0'/>
+      </function-decl>
+      <function-decl name='devm_pci_alloc_host_bridge' mangled-name='devm_pci_alloc_host_bridge' filepath='drivers/pci/probe.c' line='623' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_pci_alloc_host_bridge'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pci/probe.c' line='623' column='1'/>
+        <parameter type-id='b59d7dce' name='priv' filepath='drivers/pci/probe.c' line='624' column='1'/>
+        <return type-id='cb0dbc3c'/>
+      </function-decl>
+      <function-decl name='devm_pci_remap_cfg_resource' mangled-name='devm_pci_remap_cfg_resource' filepath='drivers/pci/pci.c' line='4269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_pci_remap_cfg_resource'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pci/pci.c' line='4269' column='1'/>
+        <parameter type-id='c9d64c0d' name='res' filepath='drivers/pci/pci.c' line='4270' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='devm_pci_remap_cfgspace' mangled-name='devm_pci_remap_cfgspace' filepath='drivers/pci/pci.c' line='4229' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_pci_remap_cfgspace'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pci/pci.c' line='4229' column='1'/>
+        <parameter type-id='acc63fdf' name='offset' filepath='drivers/pci/pci.c' line='4230' column='1'/>
+        <parameter type-id='acc63fdf' name='size' filepath='drivers/pci/pci.c' line='4231' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='devm_phy_create' mangled-name='devm_phy_create' filepath='drivers/phy/phy-core.c' line='975' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_phy_create'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/phy/phy-core.c' line='975' column='1'/>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/phy/phy-core.c' line='975' column='1'/>
+        <parameter type-id='5424a63a' name='ops' filepath='drivers/phy/phy-core.c' line='976' column='1'/>
+        <return type-id='503ff1ba'/>
+      </function-decl>
+      <function-decl name='devm_phy_get' mangled-name='devm_phy_get' filepath='drivers/phy/phy-core.c' line='762' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_phy_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/phy/phy-core.c' line='762' column='1'/>
+        <parameter type-id='80f4b756' name='string' filepath='drivers/phy/phy-core.c' line='762' column='1'/>
+        <return type-id='503ff1ba'/>
+      </function-decl>
+      <function-decl name='devm_phy_optional_get' mangled-name='devm_phy_optional_get' filepath='drivers/phy/phy-core.c' line='795' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_phy_optional_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/phy/phy-core.c' line='795' column='1'/>
+        <parameter type-id='80f4b756' name='string' filepath='drivers/phy/phy-core.c' line='795' column='1'/>
+        <return type-id='503ff1ba'/>
+      </function-decl>
+      <function-decl name='devm_phy_put' mangled-name='devm_phy_put' filepath='drivers/phy/phy-core.c' line='641' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_phy_put'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/phy/phy-core.c' line='641' column='1'/>
+        <parameter type-id='503ff1ba' name='phy' filepath='drivers/phy/phy-core.c' line='641' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_pinctrl_get' mangled-name='devm_pinctrl_get' filepath='drivers/pinctrl/core.c' line='1362' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_pinctrl_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pinctrl/core.c' line='1362' column='1'/>
+        <return type-id='73ea90c5'/>
+      </function-decl>
+      <function-decl name='devm_pinctrl_put' mangled-name='devm_pinctrl_put' filepath='drivers/pinctrl/core.c' line='1397' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_pinctrl_put'>
+        <parameter type-id='73ea90c5' name='p' filepath='drivers/pinctrl/core.c' line='1397' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_pinctrl_register' mangled-name='devm_pinctrl_register' filepath='drivers/pinctrl/core.c' line='2250' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_pinctrl_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pinctrl/core.c' line='2250' column='1'/>
+        <parameter type-id='d4682107' name='pctldesc' filepath='drivers/pinctrl/core.c' line='2251' column='1'/>
+        <parameter type-id='eaa32e2f' name='driver_data' filepath='drivers/pinctrl/core.c' line='2252' column='1'/>
+        <return type-id='10216dc5'/>
+      </function-decl>
+      <function-decl name='devm_pinctrl_register_and_init' mangled-name='devm_pinctrl_register_and_init' filepath='drivers/pinctrl/core.c' line='2284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_pinctrl_register_and_init'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pinctrl/core.c' line='2284' column='1'/>
+        <parameter type-id='d4682107' name='pctldesc' filepath='drivers/pinctrl/core.c' line='2285' column='1'/>
+        <parameter type-id='eaa32e2f' name='driver_data' filepath='drivers/pinctrl/core.c' line='2286' column='1'/>
+        <parameter type-id='53a00f3d' name='pctldev' filepath='drivers/pinctrl/core.c' line='2287' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_platform_get_and_ioremap_resource' mangled-name='devm_platform_get_and_ioremap_resource' filepath='drivers/base/platform.c' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_platform_get_and_ioremap_resource'>
+        <parameter type-id='db362995' name='pdev' filepath='drivers/base/platform.c' line='97' column='1'/>
+        <parameter type-id='f0981eeb' name='index' filepath='drivers/base/platform.c' line='98' column='1'/>
+        <parameter type-id='e359e165' name='res' filepath='drivers/base/platform.c' line='98' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='devm_platform_ioremap_resource' mangled-name='devm_platform_ioremap_resource' filepath='drivers/base/platform.c' line='120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_platform_ioremap_resource'>
+        <parameter type-id='db362995' name='pdev' filepath='drivers/base/platform.c' line='120' column='1'/>
+        <parameter type-id='f0981eeb' name='index' filepath='drivers/base/platform.c' line='121' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='devm_platform_ioremap_resource_byname' mangled-name='devm_platform_ioremap_resource_byname' filepath='drivers/base/platform.c' line='140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_platform_ioremap_resource_byname'>
+        <parameter type-id='db362995' name='pdev' filepath='drivers/base/platform.c' line='140' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/base/platform.c' line='141' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='devm_pm_clk_create' mangled-name='devm_pm_clk_create' filepath='drivers/base/power/clock_ops.c' line='527' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_pm_clk_create'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/clock_ops.c' line='527' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_pm_opp_of_add_table' mangled-name='devm_pm_opp_of_add_table' filepath='drivers/opp/of.c' line='1103' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_pm_opp_of_add_table'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/of.c' line='1103' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_pm_opp_set_clkname' mangled-name='devm_pm_opp_set_clkname' filepath='drivers/opp/core.c' line='2193' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_pm_opp_set_clkname'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='2193' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/opp/core.c' line='2193' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_pm_opp_set_regulators' mangled-name='devm_pm_opp_set_regulators' filepath='drivers/opp/core.c' line='2095' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_pm_opp_set_regulators'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='2095' column='1'/>
+        <parameter type-id='13956559' name='names' filepath='drivers/opp/core.c' line='2096' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='drivers/opp/core.c' line='2097' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_pm_opp_set_supported_hw' mangled-name='devm_pm_opp_set_supported_hw' filepath='drivers/opp/core.c' line='1882' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_pm_opp_set_supported_hw'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/opp/core.c' line='1882' column='1'/>
+        <parameter type-id='aded214c' name='versions' filepath='drivers/opp/core.c' line='1882' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='drivers/opp/core.c' line='1883' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_pm_runtime_enable' mangled-name='devm_pm_runtime_enable' filepath='drivers/base/power/runtime.c' line='1487' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_pm_runtime_enable'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/runtime.c' line='1487' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_power_supply_get_by_phandle' mangled-name='devm_power_supply_get_by_phandle' filepath='drivers/power/supply/power_supply_core.c' line='628' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_power_supply_get_by_phandle'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/power/supply/power_supply_core.c' line='628' column='1'/>
+        <parameter type-id='80f4b756' name='property' filepath='drivers/power/supply/power_supply_core.c' line='629' column='1'/>
+        <return type-id='c0c93c9e'/>
+      </function-decl>
+      <function-decl name='devm_power_supply_register' mangled-name='devm_power_supply_register' filepath='drivers/power/supply/power_supply_core.c' line='1295' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_power_supply_register'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/power/supply/power_supply_core.c' line='1295' column='1'/>
+        <parameter type-id='cb9cd99f' name='desc' filepath='drivers/power/supply/power_supply_core.c' line='1296' column='1'/>
+        <parameter type-id='048b3ad6' name='cfg' filepath='drivers/power/supply/power_supply_core.c' line='1297' column='1'/>
+        <return type-id='c0c93c9e'/>
+      </function-decl>
+      <function-decl name='devm_pwm_get' mangled-name='devm_pwm_get' filepath='drivers/pwm/core.c' line='1082' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_pwm_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pwm/core.c' line='1082' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/pwm/core.c' line='1082' column='1'/>
+        <return type-id='f06adae0'/>
+      </function-decl>
+      <function-decl name='devm_pwmchip_add' mangled-name='devm_pwmchip_add' filepath='drivers/pwm/core.c' line='331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_pwmchip_add'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pwm/core.c' line='331' column='1'/>
+        <parameter type-id='00cf0c80' name='chip' filepath='drivers/pwm/core.c' line='331' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_qcom_smem_state_get' mangled-name='devm_qcom_smem_state_get' filepath='drivers/soc/qcom/smem_state.c' line='169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_qcom_smem_state_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/soc/qcom/smem_state.c' line='169' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/soc/qcom/smem_state.c' line='170' column='1'/>
+        <parameter type-id='807869d3' name='bit' filepath='drivers/soc/qcom/smem_state.c' line='171' column='1'/>
+        <return type-id='01df4674'/>
+      </function-decl>
+      <function-decl name='devm_rc_allocate_device' mangled-name='devm_rc_allocate_device' filepath='drivers/media/rc/rc-main.c' line='1759' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_rc_allocate_device'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/media/rc/rc-main.c' line='1759' column='1'/>
+        <parameter type-id='d4dbe3db' name='type' filepath='drivers/media/rc/rc-main.c' line='1760' column='1'/>
+        <return type-id='75ae4804'/>
+      </function-decl>
+      <function-decl name='devm_rc_register_device' mangled-name='devm_rc_register_device' filepath='drivers/media/rc/rc-main.c' line='1993' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_rc_register_device'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/media/rc/rc-main.c' line='1993' column='1'/>
+        <parameter type-id='75ae4804' name='dev' filepath='drivers/media/rc/rc-main.c' line='1993' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_regmap_add_irq_chip' mangled-name='devm_regmap_add_irq_chip' filepath='drivers/base/regmap/regmap-irq.c' line='1065' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_regmap_add_irq_chip'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/regmap/regmap-irq.c' line='1065' column='1'/>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap-irq.c' line='1065' column='1'/>
+        <parameter type-id='95e97e5e' name='irq' filepath='drivers/base/regmap/regmap-irq.c' line='1065' column='1'/>
+        <parameter type-id='95e97e5e' name='irq_flags' filepath='drivers/base/regmap/regmap-irq.c' line='1066' column='1'/>
+        <parameter type-id='95e97e5e' name='irq_base' filepath='drivers/base/regmap/regmap-irq.c' line='1066' column='1'/>
+        <parameter type-id='78965926' name='chip' filepath='drivers/base/regmap/regmap-irq.c' line='1067' column='1'/>
+        <parameter type-id='a731d0ec' name='data' filepath='drivers/base/regmap/regmap-irq.c' line='1068' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_regmap_del_irq_chip' mangled-name='devm_regmap_del_irq_chip' filepath='drivers/base/regmap/regmap-irq.c' line='1085' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_regmap_del_irq_chip'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/regmap/regmap-irq.c' line='1085' column='1'/>
+        <parameter type-id='95e97e5e' name='irq' filepath='drivers/base/regmap/regmap-irq.c' line='1085' column='1'/>
+        <parameter type-id='a2782ece' name='data' filepath='drivers/base/regmap/regmap-irq.c' line='1086' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_regmap_field_alloc' mangled-name='devm_regmap_field_alloc' filepath='drivers/base/regmap/regmap.c' line='1298' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_regmap_field_alloc'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/regmap/regmap.c' line='1298' column='1'/>
+        <parameter type-id='29af9a71' name='regmap' filepath='drivers/base/regmap/regmap.c' line='1299' column='1'/>
+        <parameter type-id='d7d5e052' name='reg_field' filepath='drivers/base/regmap/regmap.c' line='1299' column='1'/>
+        <return type-id='476eb32c'/>
+      </function-decl>
+      <function-decl name='devm_regmap_field_bulk_alloc' mangled-name='devm_regmap_field_bulk_alloc' filepath='drivers/base/regmap/regmap.c' line='1361' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_regmap_field_bulk_alloc'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/regmap/regmap.c' line='1361' column='1'/>
+        <parameter type-id='29af9a71' name='regmap' filepath='drivers/base/regmap/regmap.c' line='1362' column='1'/>
+        <parameter type-id='7943d272' name='rm_field' filepath='drivers/base/regmap/regmap.c' line='1363' column='1'/>
+        <parameter type-id='852215f5' name='reg_field' filepath='drivers/base/regmap/regmap.c' line='1364' column='1'/>
+        <parameter type-id='95e97e5e' name='num_fields' filepath='drivers/base/regmap/regmap.c' line='1365' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_regulator_bulk_get' mangled-name='devm_regulator_bulk_get' filepath='drivers/regulator/devres.c' line='145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_regulator_bulk_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/regulator/devres.c' line='145' column='1'/>
+        <parameter type-id='95e97e5e' name='num_consumers' filepath='drivers/regulator/devres.c' line='145' column='1'/>
+        <parameter type-id='776946b4' name='consumers' filepath='drivers/regulator/devres.c' line='146' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_regulator_get' mangled-name='devm_regulator_get' filepath='drivers/regulator/devres.c' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_regulator_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/regulator/devres.c' line='51' column='1'/>
+        <parameter type-id='80f4b756' name='id' filepath='drivers/regulator/devres.c' line='51' column='1'/>
+        <return type-id='850c13f6'/>
+      </function-decl>
+      <function-decl name='devm_regulator_get_exclusive' mangled-name='devm_regulator_get_exclusive' filepath='drivers/regulator/devres.c' line='66' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_regulator_get_exclusive'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/regulator/devres.c' line='66' column='1'/>
+        <parameter type-id='80f4b756' name='id' filepath='drivers/regulator/devres.c' line='67' column='1'/>
+        <return type-id='850c13f6'/>
+      </function-decl>
+      <function-decl name='devm_regulator_get_optional' mangled-name='devm_regulator_get_optional' filepath='drivers/regulator/devres.c' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_regulator_get_optional'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/regulator/devres.c' line='82' column='1'/>
+        <parameter type-id='80f4b756' name='id' filepath='drivers/regulator/devres.c' line='83' column='1'/>
+        <return type-id='850c13f6'/>
+      </function-decl>
+      <function-decl name='devm_regulator_put' mangled-name='devm_regulator_put' filepath='drivers/regulator/devres.c' line='107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_regulator_put'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/devres.c' line='107' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_regulator_register' mangled-name='devm_regulator_register' filepath='drivers/regulator/devres.c' line='185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_regulator_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/regulator/devres.c' line='185' column='1'/>
+        <parameter type-id='5629bd41' name='regulator_desc' filepath='drivers/regulator/devres.c' line='186' column='1'/>
+        <parameter type-id='661ccd0c' name='config' filepath='drivers/regulator/devres.c' line='187' column='1'/>
+        <return type-id='43c38462'/>
+      </function-decl>
+      <function-decl name='devm_regulator_register_notifier' mangled-name='devm_regulator_register_notifier' filepath='drivers/regulator/devres.c' line='366' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_regulator_register_notifier'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/devres.c' line='366' column='1'/>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/regulator/devres.c' line='367' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_regulator_unregister_notifier' mangled-name='devm_regulator_unregister_notifier' filepath='drivers/regulator/devres.c' line='404' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_regulator_unregister_notifier'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/devres.c' line='404' column='1'/>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/regulator/devres.c' line='405' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_release_resource' mangled-name='devm_release_resource' filepath='kernel/resource.c' line='1509' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_release_resource'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/resource.c' line='1509' column='1'/>
+        <parameter type-id='c9d64c0d' name='new' filepath='kernel/resource.c' line='1509' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_remove_action' mangled-name='devm_remove_action' filepath='drivers/base/devres.c' line='754' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_remove_action'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devres.c' line='754' column='1'/>
+        <parameter type-id='b7f9d8e6' name='action' filepath='drivers/base/devres.c' line='754' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/devres.c' line='754' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_request_any_context_irq' mangled-name='devm_request_any_context_irq' filepath='kernel/irq/devres.c' line='99' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_request_any_context_irq'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/irq/devres.c' line='99' column='1'/>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/devres.c' line='99' column='1'/>
+        <parameter type-id='29591c9a' name='handler' filepath='kernel/irq/devres.c' line='100' column='1'/>
+        <parameter type-id='7359adad' name='irqflags' filepath='kernel/irq/devres.c' line='100' column='1'/>
+        <parameter type-id='80f4b756' name='devname' filepath='kernel/irq/devres.c' line='101' column='1'/>
+        <parameter type-id='eaa32e2f' name='dev_id' filepath='kernel/irq/devres.c' line='101' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_request_pci_bus_resources' mangled-name='devm_request_pci_bus_resources' filepath='drivers/pci/bus.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_request_pci_bus_resources'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pci/bus.c' line='114' column='1'/>
+        <parameter type-id='e84b031a' name='resources' filepath='drivers/pci/bus.c' line='115' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_request_threaded_irq' mangled-name='devm_request_threaded_irq' filepath='kernel/irq/devres.c' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_request_threaded_irq'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/irq/devres.c' line='51' column='1'/>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/devres.c' line='51' column='1'/>
+        <parameter type-id='29591c9a' name='handler' filepath='kernel/irq/devres.c' line='52' column='1'/>
+        <parameter type-id='29591c9a' name='thread_fn' filepath='kernel/irq/devres.c' line='52' column='1'/>
+        <parameter type-id='7359adad' name='irqflags' filepath='kernel/irq/devres.c' line='53' column='1'/>
+        <parameter type-id='80f4b756' name='devname' filepath='kernel/irq/devres.c' line='53' column='1'/>
+        <parameter type-id='eaa32e2f' name='dev_id' filepath='kernel/irq/devres.c' line='54' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_reset_control_array_get' mangled-name='devm_reset_control_array_get' filepath='drivers/reset/core.c' line='1214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_reset_control_array_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/reset/core.c' line='1214' column='1'/>
+        <parameter type-id='b50a4934' name='shared' filepath='drivers/reset/core.c' line='1214' column='1'/>
+        <parameter type-id='b50a4934' name='optional' filepath='drivers/reset/core.c' line='1214' column='1'/>
+        <return type-id='9f9b8114'/>
+      </function-decl>
+      <function-decl name='devm_reset_controller_register' mangled-name='devm_reset_controller_register' filepath='drivers/reset/core.c' line='142' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_reset_controller_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/reset/core.c' line='142' column='1'/>
+        <parameter type-id='775147d9' name='rcdev' filepath='drivers/reset/core.c' line='143' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_rtc_allocate_device' mangled-name='devm_rtc_allocate_device' filepath='drivers/rtc/class.c' line='358' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_rtc_allocate_device'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/rtc/class.c' line='358' column='1'/>
+        <return type-id='5992ae83'/>
+      </function-decl>
+      <function-decl name='devm_rtc_device_register' mangled-name='devm_rtc_device_register' filepath='drivers/rtc/class.c' line='445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_rtc_device_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/rtc/class.c' line='445' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/rtc/class.c' line='446' column='1'/>
+        <parameter type-id='b902d9c7' name='ops' filepath='drivers/rtc/class.c' line='447' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/rtc/class.c' line='448' column='1'/>
+        <return type-id='5992ae83'/>
+      </function-decl>
+      <function-decl name='devm_rtc_nvmem_register' mangled-name='devm_rtc_nvmem_register' filepath='drivers/rtc/nvmem.c' line='13' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_rtc_nvmem_register'>
+        <parameter type-id='5992ae83' name='rtc' filepath='drivers/rtc/nvmem.c' line='13' column='1'/>
+        <parameter type-id='d06e7441' name='nvmem_config' filepath='drivers/rtc/nvmem.c' line='14' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_snd_dmaengine_pcm_register' mangled-name='devm_snd_dmaengine_pcm_register' filepath='sound/soc/soc-devres.c' line='139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_snd_dmaengine_pcm_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='sound/soc/soc-devres.c' line='139' column='1'/>
+        <parameter type-id='cf458aec' name='config' filepath='sound/soc/soc-devres.c' line='140' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='sound/soc/soc-devres.c' line='140' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_snd_soc_register_card' mangled-name='devm_snd_soc_register_card' filepath='sound/soc/soc-devres.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_snd_soc_register_card'>
+        <parameter type-id='fa0b179b' name='dev' filepath='sound/soc/soc-devres.c' line='102' column='1'/>
+        <parameter type-id='3059cd0b' name='card' filepath='sound/soc/soc-devres.c' line='102' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_snd_soc_register_component' mangled-name='devm_snd_soc_register_component' filepath='sound/soc/soc-devres.c' line='66' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_snd_soc_register_component'>
+        <parameter type-id='fa0b179b' name='dev' filepath='sound/soc/soc-devres.c' line='66' column='1'/>
+        <parameter type-id='f030c2b8' name='cmpnt_drv' filepath='sound/soc/soc-devres.c' line='67' column='1'/>
+        <parameter type-id='763d26a2' name='dai_drv' filepath='sound/soc/soc-devres.c' line='68' column='1'/>
+        <parameter type-id='95e97e5e' name='num_dai' filepath='sound/soc/soc-devres.c' line='68' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_spi_mem_dirmap_create' mangled-name='devm_spi_mem_dirmap_create' filepath='drivers/spi/spi-mem.c' line='601' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_spi_mem_dirmap_create'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/spi/spi-mem.c' line='601' column='1'/>
+        <parameter type-id='33dc3b1b' name='mem' filepath='drivers/spi/spi-mem.c' line='601' column='1'/>
+        <parameter type-id='1de3f3e7' name='info' filepath='drivers/spi/spi-mem.c' line='602' column='1'/>
+        <return type-id='4f4f2d55'/>
+      </function-decl>
+      <function-decl name='devm_spi_register_controller' mangled-name='devm_spi_register_controller' filepath='drivers/spi/spi.c' line='2972' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_spi_register_controller'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/spi/spi.c' line='2972' column='1'/>
+        <parameter type-id='f22e4524' name='ctlr' filepath='drivers/spi/spi.c' line='2973' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devm_thermal_of_cooling_device_register' mangled-name='devm_thermal_of_cooling_device_register' filepath='drivers/thermal/thermal_core.c' line='1033' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_thermal_of_cooling_device_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/thermal/thermal_core.c' line='1033' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/thermal/thermal_core.c' line='1034' column='1'/>
+        <parameter type-id='26a90f95' name='type' filepath='drivers/thermal/thermal_core.c' line='1035' column='1'/>
+        <parameter type-id='eaa32e2f' name='devdata' filepath='drivers/thermal/thermal_core.c' line='1035' column='1'/>
+        <parameter type-id='6f4dc085' name='ops' filepath='drivers/thermal/thermal_core.c' line='1036' column='1'/>
+        <return type-id='2feec21f'/>
+      </function-decl>
+      <function-decl name='devm_thermal_zone_of_sensor_register' mangled-name='devm_thermal_zone_of_sensor_register' filepath='drivers/thermal/thermal_of.c' line='648' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_thermal_zone_of_sensor_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/thermal/thermal_of.c' line='649' column='1'/>
+        <parameter type-id='95e97e5e' name='sensor_id' filepath='drivers/thermal/thermal_of.c' line='649' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/thermal/thermal_of.c' line='650' column='1'/>
+        <parameter type-id='83036d6c' name='ops' filepath='drivers/thermal/thermal_of.c' line='650' column='1'/>
+        <return type-id='404b1300'/>
+      </function-decl>
+      <function-decl name='devm_thermal_zone_of_sensor_unregister' mangled-name='devm_thermal_zone_of_sensor_unregister' filepath='drivers/thermal/thermal_of.c' line='685' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_thermal_zone_of_sensor_unregister'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/thermal/thermal_of.c' line='685' column='1'/>
+        <parameter type-id='404b1300' name='tzd' filepath='drivers/thermal/thermal_of.c' line='686' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devm_usb_get_phy' mangled-name='devm_usb_get_phy' filepath='drivers/usb/phy/phy.c' line='464' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_usb_get_phy'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/phy/phy.c' line='464' column='1'/>
+        <parameter type-id='d95f4827' name='type' filepath='drivers/usb/phy/phy.c' line='464' column='1'/>
+        <return type-id='ca9354d1'/>
+      </function-decl>
+      <function-decl name='devm_usb_get_phy_by_node' mangled-name='devm_usb_get_phy_by_node' filepath='drivers/usb/phy/phy.c' line='535' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_usb_get_phy_by_node'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/phy/phy.c' line='535' column='1'/>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/usb/phy/phy.c' line='536' column='1'/>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/usb/phy/phy.c' line='537' column='1'/>
+        <return type-id='ca9354d1'/>
+      </function-decl>
+      <function-decl name='devm_usb_get_phy_by_phandle' mangled-name='devm_usb_get_phy_by_phandle' filepath='drivers/usb/phy/phy.c' line='594' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_usb_get_phy_by_phandle'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/phy/phy.c' line='594' column='1'/>
+        <parameter type-id='80f4b756' name='phandle' filepath='drivers/usb/phy/phy.c' line='595' column='1'/>
+        <parameter type-id='f9b06939' name='index' filepath='drivers/usb/phy/phy.c' line='595' column='1'/>
+        <return type-id='ca9354d1'/>
+      </function-decl>
+      <function-decl name='devm_watchdog_register_device' mangled-name='devm_watchdog_register_device' filepath='drivers/watchdog/watchdog_core.c' line='418' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_watchdog_register_device'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/watchdog/watchdog_core.c' line='418' column='1'/>
+        <parameter type-id='7bf5a5e5' name='wdd' filepath='drivers/watchdog/watchdog_core.c' line='419' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devres_add' mangled-name='devres_add' filepath='drivers/base/devres.c' line='238' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devres_add'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devres.c' line='238' column='1'/>
+        <parameter type-id='eaa32e2f' name='res' filepath='drivers/base/devres.c' line='238' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devres_destroy' mangled-name='devres_destroy' filepath='drivers/base/devres.c' line='385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devres_destroy'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devres.c' line='385' column='1'/>
+        <parameter type-id='b6609e5b' name='release' filepath='drivers/base/devres.c' line='385' column='1'/>
+        <parameter type-id='4a798fcf' name='match' filepath='drivers/base/devres.c' line='386' column='1'/>
+        <parameter type-id='eaa32e2f' name='match_data' filepath='drivers/base/devres.c' line='386' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devres_free' mangled-name='devres_free' filepath='drivers/base/devres.c' line='218' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devres_free'>
+        <parameter type-id='eaa32e2f' name='res' filepath='drivers/base/devres.c' line='218' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='devres_open_group' mangled-name='devres_open_group' filepath='drivers/base/devres.c' line='547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devres_open_group'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devres.c' line='547' column='1'/>
+        <parameter type-id='eaa32e2f' name='id' filepath='drivers/base/devres.c' line='547' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='drivers/base/devres.c' line='547' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='devres_release' mangled-name='devres_release' filepath='drivers/base/devres.c' line='415' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devres_release'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devres.c' line='415' column='1'/>
+        <parameter type-id='b6609e5b' name='release' filepath='drivers/base/devres.c' line='415' column='1'/>
+        <parameter type-id='4a798fcf' name='match' filepath='drivers/base/devres.c' line='416' column='1'/>
+        <parameter type-id='eaa32e2f' name='match_data' filepath='drivers/base/devres.c' line='416' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='devres_release_group' mangled-name='devres_release_group' filepath='drivers/base/devres.c' line='663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devres_release_group'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devres.c' line='663' column='1'/>
+        <parameter type-id='eaa32e2f' name='id' filepath='drivers/base/devres.c' line='663' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='disable_irq' mangled-name='disable_irq' filepath='kernel/irq/manage.c' line='737' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='disable_irq'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/manage.c' line='737' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='disable_irq_nosync' mangled-name='disable_irq_nosync' filepath='kernel/irq/manage.c' line='719' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='disable_irq_nosync'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/manage.c' line='719' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='disable_percpu_irq' mangled-name='disable_percpu_irq' filepath='kernel/irq/manage.c' line='2439' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='disable_percpu_irq'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/manage.c' line='2439' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='discard_new_inode' mangled-name='discard_new_inode' filepath='fs/inode.c' line='1013' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='discard_new_inode'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='1013' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='disk_end_io_acct' mangled-name='disk_end_io_acct' filepath='block/blk-core.c' line='1369' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='disk_end_io_acct'>
+        <parameter type-id='33c599da' name='disk' filepath='block/blk-core.c' line='1369' column='1'/>
+        <parameter type-id='f0981eeb' name='op' filepath='block/blk-core.c' line='1369' column='1'/>
+        <parameter type-id='7359adad' name='start_time' filepath='block/blk-core.c' line='1370' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='disk_stack_limits' mangled-name='disk_stack_limits' filepath='block/blk-settings.c' line='664' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='disk_stack_limits'>
+        <parameter type-id='33c599da' name='disk' filepath='block/blk-settings.c' line='664' column='1'/>
+        <parameter type-id='b88dd945' name='bdev' filepath='block/blk-settings.c' line='664' column='1'/>
+        <parameter type-id='a42536cd' name='offset' filepath='block/blk-settings.c' line='665' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='disk_start_io_acct' mangled-name='disk_start_io_acct' filepath='block/blk-core.c' line='1341' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='disk_start_io_acct'>
+        <parameter type-id='33c599da' name='disk' filepath='block/blk-core.c' line='1341' column='1'/>
+        <parameter type-id='f0981eeb' name='sectors' filepath='block/blk-core.c' line='1341' column='1'/>
+        <parameter type-id='f0981eeb' name='op' filepath='block/blk-core.c' line='1342' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='display_timings_release' mangled-name='display_timings_release' filepath='drivers/video/display_timing.c' line='12' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='display_timings_release'>
+        <parameter type-id='32e774d9' name='disp' filepath='drivers/video/display_timing.c' line='12' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='divider_determine_rate' mangled-name='divider_determine_rate' filepath='drivers/clk/clk-divider.c' line='346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='divider_determine_rate'>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk-divider.c' line='346' column='1'/>
+        <parameter type-id='23a0ad0a' name='req' filepath='drivers/clk/clk-divider.c' line='346' column='1'/>
+        <parameter type-id='caf2596f' name='table' filepath='drivers/clk/clk-divider.c' line='347' column='1'/>
+        <parameter type-id='f9b06939' name='width' filepath='drivers/clk/clk-divider.c' line='347' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-divider.c' line='348' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='divider_get_val' mangled-name='divider_get_val' filepath='drivers/clk/clk-divider.c' line='470' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='divider_get_val'>
+        <parameter type-id='7359adad' name='rate' filepath='drivers/clk/clk-divider.c' line='470' column='1'/>
+        <parameter type-id='7359adad' name='parent_rate' filepath='drivers/clk/clk-divider.c' line='470' column='1'/>
+        <parameter type-id='caf2596f' name='table' filepath='drivers/clk/clk-divider.c' line='471' column='1'/>
+        <parameter type-id='f9b06939' name='width' filepath='drivers/clk/clk-divider.c' line='471' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-divider.c' line='472' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='divider_recalc_rate' mangled-name='divider_recalc_rate' filepath='drivers/clk/clk-divider.c' line='130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='divider_recalc_rate'>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk-divider.c' line='130' column='1'/>
+        <parameter type-id='7359adad' name='parent_rate' filepath='drivers/clk/clk-divider.c' line='130' column='1'/>
+        <parameter type-id='f0981eeb' name='val' filepath='drivers/clk/clk-divider.c' line='131' column='1'/>
+        <parameter type-id='caf2596f' name='table' filepath='drivers/clk/clk-divider.c' line='132' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-divider.c' line='133' column='1'/>
+        <parameter type-id='7359adad' name='width' filepath='drivers/clk/clk-divider.c' line='133' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='divider_ro_round_rate_parent' mangled-name='divider_ro_round_rate_parent' filepath='drivers/clk/clk-divider.c' line='406' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='divider_ro_round_rate_parent'>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk-divider.c' line='406' column='1'/>
+        <parameter type-id='3aaeef89' name='parent' filepath='drivers/clk/clk-divider.c' line='406' column='1'/>
+        <parameter type-id='7359adad' name='rate' filepath='drivers/clk/clk-divider.c' line='407' column='1'/>
+        <parameter type-id='1d2c2b85' name='prate' filepath='drivers/clk/clk-divider.c' line='407' column='1'/>
+        <parameter type-id='caf2596f' name='table' filepath='drivers/clk/clk-divider.c' line='408' column='1'/>
+        <parameter type-id='f9b06939' name='width' filepath='drivers/clk/clk-divider.c' line='408' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-divider.c' line='409' column='1'/>
+        <parameter type-id='f0981eeb' name='val' filepath='drivers/clk/clk-divider.c' line='409' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='divider_round_rate_parent' mangled-name='divider_round_rate_parent' filepath='drivers/clk/clk-divider.c' line='384' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='divider_round_rate_parent'>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk-divider.c' line='384' column='1'/>
+        <parameter type-id='3aaeef89' name='parent' filepath='drivers/clk/clk-divider.c' line='384' column='1'/>
+        <parameter type-id='7359adad' name='rate' filepath='drivers/clk/clk-divider.c' line='385' column='1'/>
+        <parameter type-id='1d2c2b85' name='prate' filepath='drivers/clk/clk-divider.c' line='385' column='1'/>
+        <parameter type-id='caf2596f' name='table' filepath='drivers/clk/clk-divider.c' line='386' column='1'/>
+        <parameter type-id='f9b06939' name='width' filepath='drivers/clk/clk-divider.c' line='387' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-divider.c' line='387' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='dma_alloc_attrs' mangled-name='dma_alloc_attrs' filepath='kernel/dma/mapping.c' line='491' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_alloc_attrs'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='491' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/dma/mapping.c' line='491' column='1'/>
+        <parameter type-id='e835b5d8' name='dma_handle' filepath='kernel/dma/mapping.c' line='491' column='1'/>
+        <parameter type-id='3eb7c31c' name='flag' filepath='kernel/dma/mapping.c' line='492' column='1'/>
+        <parameter type-id='7359adad' name='attrs' filepath='kernel/dma/mapping.c' line='492' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='dma_alloc_noncontiguous' mangled-name='dma_alloc_noncontiguous' filepath='kernel/dma/mapping.c' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_alloc_noncontiguous'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='630' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/dma/mapping.c' line='630' column='1'/>
+        <parameter type-id='eea6b025' name='dir' filepath='kernel/dma/mapping.c' line='631' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='kernel/dma/mapping.c' line='631' column='1'/>
+        <parameter type-id='7359adad' name='attrs' filepath='kernel/dma/mapping.c' line='631' column='1'/>
+        <return type-id='4adb0e6a'/>
+      </function-decl>
+      <function-decl name='dma_alloc_pages' mangled-name='dma_alloc_pages' filepath='kernel/dma/mapping.c' line='562' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_alloc_pages'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='562' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/dma/mapping.c' line='562' column='1'/>
+        <parameter type-id='e835b5d8' name='dma_handle' filepath='kernel/dma/mapping.c' line='563' column='1'/>
+        <parameter type-id='eea6b025' name='dir' filepath='kernel/dma/mapping.c' line='563' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='kernel/dma/mapping.c' line='563' column='1'/>
+        <return type-id='02f11ed4'/>
+      </function-decl>
+      <function-decl name='dma_async_device_register' mangled-name='dma_async_device_register' filepath='drivers/dma/dmaengine.c' line='1141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_async_device_register'>
+        <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='1141' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_async_device_unregister' mangled-name='dma_async_device_unregister' filepath='drivers/dma/dmaengine.c' line='1312' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_async_device_unregister'>
+        <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='1312' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_async_tx_descriptor_init' mangled-name='dma_async_tx_descriptor_init' filepath='drivers/dma/dmaengine.c' line='1498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_async_tx_descriptor_init'>
+        <parameter type-id='0e3f80d9' name='tx' filepath='drivers/dma/dmaengine.c' line='1498' column='1'/>
+        <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='1499' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_buf_attach' mangled-name='dma_buf_attach' filepath='drivers/dma-buf/dma-buf.c' line='868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_attach'>
+        <parameter type-id='5e4f599b' name='dmabuf' filepath='drivers/dma-buf/dma-buf.c' line='868' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/dma-buf/dma-buf.c' line='869' column='1'/>
+        <return type-id='e68e04c1'/>
+      </function-decl>
+      <function-decl name='dma_buf_begin_cpu_access' mangled-name='dma_buf_begin_cpu_access' filepath='drivers/dma-buf/dma-buf.c' line='1238' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_begin_cpu_access'>
+        <parameter type-id='5e4f599b' name='dmabuf' filepath='drivers/dma-buf/dma-buf.c' line='1238' column='1'/>
+        <parameter type-id='eea6b025' name='direction' filepath='drivers/dma-buf/dma-buf.c' line='1239' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_buf_begin_cpu_access_partial' mangled-name='dma_buf_begin_cpu_access_partial' filepath='drivers/dma-buf/dma-buf.c' line='1262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_begin_cpu_access_partial'>
+        <parameter type-id='5e4f599b' name='dmabuf' filepath='drivers/dma-buf/dma-buf.c' line='1262' column='1'/>
+        <parameter type-id='eea6b025' name='direction' filepath='drivers/dma-buf/dma-buf.c' line='1263' column='1'/>
+        <parameter type-id='f0981eeb' name='offset' filepath='drivers/dma-buf/dma-buf.c' line='1264' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='drivers/dma-buf/dma-buf.c' line='1264' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_buf_detach' mangled-name='dma_buf_detach' filepath='drivers/dma-buf/dma-buf.c' line='894' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_detach'>
+        <parameter type-id='5e4f599b' name='dmabuf' filepath='drivers/dma-buf/dma-buf.c' line='894' column='1'/>
+        <parameter type-id='e68e04c1' name='attach' filepath='drivers/dma-buf/dma-buf.c' line='894' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_buf_dynamic_attach' mangled-name='dma_buf_dynamic_attach' filepath='drivers/dma-buf/dma-buf.c' line='780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_dynamic_attach'>
+        <parameter type-id='5e4f599b' name='dmabuf' filepath='drivers/dma-buf/dma-buf.c' line='780' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/dma-buf/dma-buf.c' line='780' column='1'/>
+        <parameter type-id='ce74919f' name='importer_ops' filepath='drivers/dma-buf/dma-buf.c' line='781' column='1'/>
+        <parameter type-id='eaa32e2f' name='importer_priv' filepath='drivers/dma-buf/dma-buf.c' line='782' column='1'/>
+        <return type-id='e68e04c1'/>
+      </function-decl>
+      <function-decl name='dma_buf_end_cpu_access' mangled-name='dma_buf_end_cpu_access' filepath='drivers/dma-buf/dma-buf.c' line='1298' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_end_cpu_access'>
+        <parameter type-id='5e4f599b' name='dmabuf' filepath='drivers/dma-buf/dma-buf.c' line='1298' column='1'/>
+        <parameter type-id='eea6b025' name='direction' filepath='drivers/dma-buf/dma-buf.c' line='1299' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_buf_end_cpu_access_partial' mangled-name='dma_buf_end_cpu_access_partial' filepath='drivers/dma-buf/dma-buf.c' line='1314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_end_cpu_access_partial'>
+        <parameter type-id='5e4f599b' name='dmabuf' filepath='drivers/dma-buf/dma-buf.c' line='1314' column='1'/>
+        <parameter type-id='eea6b025' name='direction' filepath='drivers/dma-buf/dma-buf.c' line='1315' column='1'/>
+        <parameter type-id='f0981eeb' name='offset' filepath='drivers/dma-buf/dma-buf.c' line='1316' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='drivers/dma-buf/dma-buf.c' line='1316' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_buf_export' mangled-name='dma_buf_export' filepath='drivers/dma-buf/dma-buf.c' line='568' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_export'>
+        <parameter type-id='aecb451e' name='exp_info' filepath='drivers/dma-buf/dma-buf.c' line='568' column='1'/>
+        <return type-id='5e4f599b'/>
+      </function-decl>
+      <function-decl name='dma_buf_fd' mangled-name='dma_buf_fd' filepath='drivers/dma-buf/dma-buf.c' line='667' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_fd'>
+        <parameter type-id='5e4f599b' name='dmabuf' filepath='drivers/dma-buf/dma-buf.c' line='667' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='drivers/dma-buf/dma-buf.c' line='667' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_buf_get' mangled-name='dma_buf_get' filepath='drivers/dma-buf/dma-buf.c' line='692' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_get'>
+        <parameter type-id='95e97e5e' name='fd' filepath='drivers/dma-buf/dma-buf.c' line='692' column='1'/>
+        <return type-id='5e4f599b'/>
+      </function-decl>
+      <function-decl name='dma_buf_get_flags' mangled-name='dma_buf_get_flags' filepath='drivers/dma-buf/dma-buf.c' line='1449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_get_flags'>
+        <parameter type-id='5e4f599b' name='dmabuf' filepath='drivers/dma-buf/dma-buf.c' line='1449' column='1'/>
+        <parameter type-id='1d2c2b85' name='flags' filepath='drivers/dma-buf/dma-buf.c' line='1449' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_buf_map_attachment' mangled-name='dma_buf_map_attachment' filepath='drivers/dma-buf/dma-buf.c' line='993' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_map_attachment'>
+        <parameter type-id='e68e04c1' name='attach' filepath='drivers/dma-buf/dma-buf.c' line='993' column='1'/>
+        <parameter type-id='eea6b025' name='direction' filepath='drivers/dma-buf/dma-buf.c' line='994' column='1'/>
+        <return type-id='4adb0e6a'/>
+      </function-decl>
+      <function-decl name='dma_buf_mmap' mangled-name='dma_buf_mmap' filepath='drivers/dma-buf/dma-buf.c' line='1344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_mmap'>
+        <parameter type-id='5e4f599b' name='dmabuf' filepath='drivers/dma-buf/dma-buf.c' line='1344' column='1'/>
+        <parameter type-id='2ae08426' name='vma' filepath='drivers/dma-buf/dma-buf.c' line='1344' column='1'/>
+        <parameter type-id='7359adad' name='pgoff' filepath='drivers/dma-buf/dma-buf.c' line='1345' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_buf_move_notify' mangled-name='dma_buf_move_notify' filepath='drivers/dma-buf/dma-buf.c' line='1106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_move_notify'>
+        <parameter type-id='5e4f599b' name='dmabuf' filepath='drivers/dma-buf/dma-buf.c' line='1106' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_buf_pin' mangled-name='dma_buf_pin' filepath='drivers/dma-buf/dma-buf.c' line='935' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_pin'>
+        <parameter type-id='e68e04c1' name='attach' filepath='drivers/dma-buf/dma-buf.c' line='935' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_buf_put' mangled-name='dma_buf_put' filepath='drivers/dma-buf/dma-buf.c' line='720' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_put'>
+        <parameter type-id='5e4f599b' name='dmabuf' filepath='drivers/dma-buf/dma-buf.c' line='720' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_buf_set_name' mangled-name='dma_buf_set_name' filepath='drivers/dma-buf/dma-buf.c' line='373' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_set_name'>
+        <parameter type-id='5e4f599b' name='dmabuf' filepath='drivers/dma-buf/dma-buf.c' line='373' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/dma-buf/dma-buf.c' line='373' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='dma_buf_unmap_attachment' mangled-name='dma_buf_unmap_attachment' filepath='drivers/dma-buf/dma-buf.c' line='1072' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_unmap_attachment'>
+        <parameter type-id='e68e04c1' name='attach' filepath='drivers/dma-buf/dma-buf.c' line='1072' column='1'/>
+        <parameter type-id='4adb0e6a' name='sg_table' filepath='drivers/dma-buf/dma-buf.c' line='1073' column='1'/>
+        <parameter type-id='eea6b025' name='direction' filepath='drivers/dma-buf/dma-buf.c' line='1074' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_buf_unpin' mangled-name='dma_buf_unpin' filepath='drivers/dma-buf/dma-buf.c' line='959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_unpin'>
+        <parameter type-id='e68e04c1' name='attach' filepath='drivers/dma-buf/dma-buf.c' line='959' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_buf_vmap' mangled-name='dma_buf_vmap' filepath='drivers/dma-buf/dma-buf.c' line='1387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_vmap'>
+        <parameter type-id='5e4f599b' name='dmabuf' filepath='drivers/dma-buf/dma-buf.c' line='1387' column='1'/>
+        <parameter type-id='ce092740' name='map' filepath='drivers/dma-buf/dma-buf.c' line='1387' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_buf_vunmap' mangled-name='dma_buf_vunmap' filepath='drivers/dma-buf/dma-buf.c' line='1430' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_vunmap'>
+        <parameter type-id='5e4f599b' name='dmabuf' filepath='drivers/dma-buf/dma-buf.c' line='1430' column='1'/>
+        <parameter type-id='ce092740' name='map' filepath='drivers/dma-buf/dma-buf.c' line='1430' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='dma_contiguous_default_area' type-id='6f67b38a' mangled-name='dma_contiguous_default_area' visibility='default' filepath='kernel/dma/contiguous.c' line='60' column='1' elf-symbol-id='dma_contiguous_default_area'/>
+      <function-decl name='dma_fence_add_callback' mangled-name='dma_fence_add_callback' filepath='drivers/dma-buf/dma-fence.c' line='637' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_add_callback'>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/dma-buf/dma-fence.c' line='637' column='1'/>
+        <parameter type-id='a47516e5' name='cb' filepath='drivers/dma-buf/dma-fence.c' line='637' column='1'/>
+        <parameter type-id='9c175524' name='func' filepath='drivers/dma-buf/dma-fence.c' line='638' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_fence_array_create' mangled-name='dma_fence_array_create' filepath='drivers/dma-buf/dma-fence-array.c' line='154' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_array_create'>
+        <parameter type-id='95e97e5e' name='num_fences' filepath='drivers/dma-buf/dma-fence-array.c' line='154' column='1'/>
+        <parameter type-id='be937eab' name='fences' filepath='drivers/dma-buf/dma-fence-array.c' line='155' column='1'/>
+        <parameter type-id='91ce1af9' name='context' filepath='drivers/dma-buf/dma-fence-array.c' line='156' column='1'/>
+        <parameter type-id='f0981eeb' name='seqno' filepath='drivers/dma-buf/dma-fence-array.c' line='156' column='1'/>
+        <parameter type-id='b50a4934' name='signal_on_any' filepath='drivers/dma-buf/dma-fence-array.c' line='157' column='1'/>
+        <return type-id='34135071'/>
+      </function-decl>
+      <var-decl name='dma_fence_array_ops' type-id='ee0fc87b' mangled-name='dma_fence_array_ops' visibility='default' filepath='drivers/dma-buf/dma-fence-array.c' line='126' column='1' elf-symbol-id='dma_fence_array_ops'/>
+      <function-decl name='dma_fence_chain_init' mangled-name='dma_fence_chain_init' filepath='drivers/dma-buf/dma-fence-chain.c' line='231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_chain_init'>
+        <parameter type-id='e7ca900d' name='chain' filepath='drivers/dma-buf/dma-fence-chain.c' line='231' column='1'/>
+        <parameter type-id='28271da3' name='prev' filepath='drivers/dma-buf/dma-fence-chain.c' line='232' column='1'/>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/dma-buf/dma-fence-chain.c' line='233' column='1'/>
+        <parameter type-id='9c313c2d' name='seqno' filepath='drivers/dma-buf/dma-fence-chain.c' line='234' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='dma_fence_chain_ops' type-id='ee0fc87b' mangled-name='dma_fence_chain_ops' visibility='default' filepath='drivers/dma-buf/dma-fence-chain.c' line='211' column='1' elf-symbol-id='dma_fence_chain_ops'/>
+      <function-decl name='dma_fence_chain_walk' mangled-name='dma_fence_chain_walk' filepath='drivers/dma-buf/dma-fence-chain.c' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_chain_walk'>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/dma-buf/dma-fence-chain.c' line='39' column='1'/>
+        <return type-id='28271da3'/>
+      </function-decl>
+      <function-decl name='dma_fence_context_alloc' mangled-name='dma_fence_context_alloc' filepath='drivers/dma-buf/dma-fence.c' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_context_alloc'>
+        <parameter type-id='f0981eeb' name='num' filepath='drivers/dma-buf/dma-fence.c' line='177' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='dma_fence_default_wait' mangled-name='dma_fence_default_wait' filepath='drivers/dma-buf/dma-fence.c' line='755' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_default_wait'>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/dma-buf/dma-fence.c' line='755' column='1'/>
+        <parameter type-id='b50a4934' name='intr' filepath='drivers/dma-buf/dma-fence.c' line='755' column='1'/>
+        <parameter type-id='bd54fe1a' name='timeout' filepath='drivers/dma-buf/dma-fence.c' line='755' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='dma_fence_enable_sw_signaling' mangled-name='dma_fence_enable_sw_signaling' filepath='drivers/dma-buf/dma-fence.c' line='599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_enable_sw_signaling'>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/dma-buf/dma-fence.c' line='599' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_fence_free' mangled-name='dma_fence_free' filepath='drivers/dma-buf/dma-fence.c' line='561' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_free'>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/dma-buf/dma-fence.c' line='561' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_fence_get_status' mangled-name='dma_fence_get_status' filepath='drivers/dma-buf/dma-fence.c' line='679' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_get_status'>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/dma-buf/dma-fence.c' line='679' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_fence_get_stub' mangled-name='dma_fence_get_stub' filepath='drivers/dma-buf/dma-fence.c' line='130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_get_stub'>
+        <return type-id='28271da3'/>
+      </function-decl>
+      <function-decl name='dma_fence_init' mangled-name='dma_fence_init' filepath='drivers/dma-buf/dma-fence.c' line='929' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_init'>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/dma-buf/dma-fence.c' line='929' column='1'/>
+        <parameter type-id='13d85783' name='ops' filepath='drivers/dma-buf/dma-fence.c' line='929' column='1'/>
+        <parameter type-id='cff2d845' name='lock' filepath='drivers/dma-buf/dma-fence.c' line='930' column='1'/>
+        <parameter type-id='91ce1af9' name='context' filepath='drivers/dma-buf/dma-fence.c' line='930' column='1'/>
+        <parameter type-id='91ce1af9' name='seqno' filepath='drivers/dma-buf/dma-fence.c' line='930' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_fence_match_context' mangled-name='dma_fence_match_context' filepath='drivers/dma-buf/dma-fence-array.c' line='192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_match_context'>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/dma-buf/dma-fence-array.c' line='192' column='1'/>
+        <parameter type-id='91ce1af9' name='context' filepath='drivers/dma-buf/dma-fence-array.c' line='192' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='dma_fence_release' mangled-name='dma_fence_release' filepath='drivers/dma-buf/dma-fence.c' line='519' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_release'>
+        <parameter type-id='aa29ecab' name='kref' filepath='drivers/dma-buf/dma-fence.c' line='519' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_fence_remove_callback' mangled-name='dma_fence_remove_callback' filepath='drivers/dma-buf/dma-fence.c' line='711' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_remove_callback'>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/dma-buf/dma-fence.c' line='711' column='1'/>
+        <parameter type-id='a47516e5' name='cb' filepath='drivers/dma-buf/dma-fence.c' line='711' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='dma_fence_signal' mangled-name='dma_fence_signal' filepath='drivers/dma-buf/dma-fence.c' line='451' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_signal'>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/dma-buf/dma-fence.c' line='451' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_fence_signal_locked' mangled-name='dma_fence_signal_locked' filepath='drivers/dma-buf/dma-fence.c' line='432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_signal_locked'>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/dma-buf/dma-fence.c' line='432' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_fence_signal_timestamp_locked' mangled-name='dma_fence_signal_timestamp_locked' filepath='drivers/dma-buf/dma-fence.c' line='357' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_signal_timestamp_locked'>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/dma-buf/dma-fence.c' line='357' column='1'/>
+        <parameter type-id='fbc017ef' name='timestamp' filepath='drivers/dma-buf/dma-fence.c' line='358' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_fence_wait_any_timeout' mangled-name='dma_fence_wait_any_timeout' filepath='drivers/dma-buf/dma-fence.c' line='845' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_wait_any_timeout'>
+        <parameter type-id='be937eab' name='fences' filepath='drivers/dma-buf/dma-fence.c' line='845' column='1'/>
+        <parameter type-id='8f92235e' name='count' filepath='drivers/dma-buf/dma-fence.c' line='845' column='1'/>
+        <parameter type-id='b50a4934' name='intr' filepath='drivers/dma-buf/dma-fence.c' line='846' column='1'/>
+        <parameter type-id='bd54fe1a' name='timeout' filepath='drivers/dma-buf/dma-fence.c' line='846' column='1'/>
+        <parameter type-id='90421557' name='idx' filepath='drivers/dma-buf/dma-fence.c' line='846' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='dma_fence_wait_timeout' mangled-name='dma_fence_wait_timeout' filepath='drivers/dma-buf/dma-fence.c' line='491' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_wait_timeout'>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/dma-buf/dma-fence.c' line='491' column='1'/>
+        <parameter type-id='b50a4934' name='intr' filepath='drivers/dma-buf/dma-fence.c' line='491' column='1'/>
+        <parameter type-id='bd54fe1a' name='timeout' filepath='drivers/dma-buf/dma-fence.c' line='491' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='dma_free_attrs' mangled-name='dma_free_attrs' filepath='kernel/dma/mapping.c' line='517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_free_attrs'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='517' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/dma/mapping.c' line='517' column='1'/>
+        <parameter type-id='eaa32e2f' name='cpu_addr' filepath='kernel/dma/mapping.c' line='517' column='1'/>
+        <parameter type-id='cf29c9b3' name='dma_handle' filepath='kernel/dma/mapping.c' line='518' column='1'/>
+        <parameter type-id='7359adad' name='attrs' filepath='kernel/dma/mapping.c' line='518' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_free_noncontiguous' mangled-name='dma_free_noncontiguous' filepath='kernel/dma/mapping.c' line='661' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_free_noncontiguous'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='661' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/dma/mapping.c' line='661' column='1'/>
+        <parameter type-id='4adb0e6a' name='sgt' filepath='kernel/dma/mapping.c' line='662' column='1'/>
+        <parameter type-id='eea6b025' name='dir' filepath='kernel/dma/mapping.c' line='662' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_free_pages' mangled-name='dma_free_pages' filepath='kernel/dma/mapping.c' line='585' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_free_pages'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='585' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/dma/mapping.c' line='585' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='kernel/dma/mapping.c' line='585' column='1'/>
+        <parameter type-id='cf29c9b3' name='dma_handle' filepath='kernel/dma/mapping.c' line='586' column='1'/>
+        <parameter type-id='eea6b025' name='dir' filepath='kernel/dma/mapping.c' line='586' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_get_any_slave_channel' mangled-name='dma_get_any_slave_channel' filepath='drivers/dma/dmaengine.c' line='728' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_get_any_slave_channel'>
+        <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='728' column='1'/>
+        <return type-id='27f3f5d8'/>
+      </function-decl>
+      <function-decl name='dma_get_required_mask' mangled-name='dma_get_required_mask' filepath='kernel/dma/mapping.c' line='470' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_get_required_mask'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='470' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='dma_get_sgtable_attrs' mangled-name='dma_get_sgtable_attrs' filepath='kernel/dma/mapping.c' line='388' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_get_sgtable_attrs'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='388' column='1'/>
+        <parameter type-id='4adb0e6a' name='sgt' filepath='kernel/dma/mapping.c' line='388' column='1'/>
+        <parameter type-id='eaa32e2f' name='cpu_addr' filepath='kernel/dma/mapping.c' line='389' column='1'/>
+        <parameter type-id='cf29c9b3' name='dma_addr' filepath='kernel/dma/mapping.c' line='389' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/dma/mapping.c' line='389' column='1'/>
+        <parameter type-id='7359adad' name='attrs' filepath='kernel/dma/mapping.c' line='390' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_get_slave_caps' mangled-name='dma_get_slave_caps' filepath='drivers/dma/dmaengine.c' line='571' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_get_slave_caps'>
+        <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='571' column='1'/>
+        <parameter type-id='d9f19b23' name='caps' filepath='drivers/dma/dmaengine.c' line='571' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_get_slave_channel' mangled-name='dma_get_slave_channel' filepath='drivers/dma/dmaengine.c' line='697' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_get_slave_channel'>
+        <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='697' column='1'/>
+        <return type-id='27f3f5d8'/>
+      </function-decl>
+      <function-decl name='dma_heap_add' mangled-name='dma_heap_add' filepath='drivers/dma-buf/dma-heap.c' line='305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_heap_add'>
+        <parameter type-id='dbe60995' name='exp_info' filepath='drivers/dma-buf/dma-heap.c' line='305' column='1'/>
+        <return type-id='ea1bdaf6'/>
+      </function-decl>
+      <function-decl name='dma_heap_buffer_alloc' mangled-name='dma_heap_buffer_alloc' filepath='drivers/dma-buf/dma-heap.c' line='81' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_heap_buffer_alloc'>
+        <parameter type-id='ea1bdaf6' name='heap' filepath='drivers/dma-buf/dma-heap.c' line='81' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/dma-buf/dma-heap.c' line='81' column='1'/>
+        <parameter type-id='f0981eeb' name='fd_flags' filepath='drivers/dma-buf/dma-heap.c' line='82' column='1'/>
+        <parameter type-id='f0981eeb' name='heap_flags' filepath='drivers/dma-buf/dma-heap.c' line='83' column='1'/>
+        <return type-id='5e4f599b'/>
+      </function-decl>
+      <function-decl name='dma_heap_buffer_free' mangled-name='dma_heap_buffer_free' filepath='drivers/dma-buf/dma-heap.c' line='75' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_heap_buffer_free'>
+        <parameter type-id='5e4f599b' name='dmabuf' filepath='drivers/dma-buf/dma-heap.c' line='75' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_heap_bufferfd_alloc' mangled-name='dma_heap_bufferfd_alloc' filepath='drivers/dma-buf/dma-heap.c' line='107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_heap_bufferfd_alloc'>
+        <parameter type-id='ea1bdaf6' name='heap' filepath='drivers/dma-buf/dma-heap.c' line='107' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/dma-buf/dma-heap.c' line='107' column='1'/>
+        <parameter type-id='f0981eeb' name='fd_flags' filepath='drivers/dma-buf/dma-heap.c' line='108' column='1'/>
+        <parameter type-id='f0981eeb' name='heap_flags' filepath='drivers/dma-buf/dma-heap.c' line='109' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_heap_find' mangled-name='dma_heap_find' filepath='drivers/dma-buf/dma-heap.c' line='57' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_heap_find'>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/dma-buf/dma-heap.c' line='57' column='1'/>
+        <return type-id='ea1bdaf6'/>
+      </function-decl>
+      <function-decl name='dma_heap_get_dev' mangled-name='dma_heap_get_dev' filepath='drivers/dma-buf/dma-heap.c' line='286' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_heap_get_dev'>
+        <parameter type-id='ea1bdaf6' name='heap' filepath='drivers/dma-buf/dma-heap.c' line='286' column='1'/>
+        <return type-id='fa0b179b'/>
+      </function-decl>
+      <function-decl name='dma_heap_get_drvdata' mangled-name='dma_heap_get_drvdata' filepath='drivers/dma-buf/dma-heap.c' line='246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_heap_get_drvdata'>
+        <parameter type-id='ea1bdaf6' name='heap' filepath='drivers/dma-buf/dma-heap.c' line='246' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='dma_heap_get_name' mangled-name='dma_heap_get_name' filepath='drivers/dma-buf/dma-heap.c' line='299' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_heap_get_name'>
+        <parameter type-id='ea1bdaf6' name='heap' filepath='drivers/dma-buf/dma-heap.c' line='299' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='dma_heap_put' mangled-name='dma_heap_put' filepath='drivers/dma-buf/dma-heap.c' line='267' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_heap_put'>
+        <parameter type-id='ea1bdaf6' name='h' filepath='drivers/dma-buf/dma-heap.c' line='267' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_map_page_attrs' mangled-name='dma_map_page_attrs' filepath='kernel/dma/mapping.c' line='142' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_map_page_attrs'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='142' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='kernel/dma/mapping.c' line='142' column='1'/>
+        <parameter type-id='b59d7dce' name='offset' filepath='kernel/dma/mapping.c' line='143' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/dma/mapping.c' line='143' column='1'/>
+        <parameter type-id='eea6b025' name='dir' filepath='kernel/dma/mapping.c' line='143' column='1'/>
+        <parameter type-id='7359adad' name='attrs' filepath='kernel/dma/mapping.c' line='144' column='1'/>
+        <return type-id='cf29c9b3'/>
+      </function-decl>
+      <function-decl name='dma_map_resource' mangled-name='dma_map_resource' filepath='kernel/dma/mapping.c' line='288' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_map_resource'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='288' column='1'/>
+        <parameter type-id='2522883d' name='phys_addr' filepath='kernel/dma/mapping.c' line='288' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/dma/mapping.c' line='289' column='1'/>
+        <parameter type-id='eea6b025' name='dir' filepath='kernel/dma/mapping.c' line='289' column='1'/>
+        <parameter type-id='7359adad' name='attrs' filepath='kernel/dma/mapping.c' line='289' column='1'/>
+        <return type-id='cf29c9b3'/>
+      </function-decl>
+      <function-decl name='dma_map_sg_attrs' mangled-name='dma_map_sg_attrs' filepath='kernel/dma/mapping.c' line='223' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_map_sg_attrs'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='223' column='1'/>
+        <parameter type-id='bf3ef905' name='sg' filepath='kernel/dma/mapping.c' line='223' column='1'/>
+        <parameter type-id='95e97e5e' name='nents' filepath='kernel/dma/mapping.c' line='224' column='1'/>
+        <parameter type-id='eea6b025' name='dir' filepath='kernel/dma/mapping.c' line='224' column='1'/>
+        <parameter type-id='7359adad' name='attrs' filepath='kernel/dma/mapping.c' line='224' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='dma_map_sgtable' mangled-name='dma_map_sgtable' filepath='kernel/dma/mapping.c' line='259' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_map_sgtable'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='259' column='1'/>
+        <parameter type-id='4adb0e6a' name='sgt' filepath='kernel/dma/mapping.c' line='259' column='1'/>
+        <parameter type-id='eea6b025' name='dir' filepath='kernel/dma/mapping.c' line='260' column='1'/>
+        <parameter type-id='7359adad' name='attrs' filepath='kernel/dma/mapping.c' line='260' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_max_mapping_size' mangled-name='dma_max_mapping_size' filepath='kernel/dma/mapping.c' line='769' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_max_mapping_size'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='769' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='dma_mmap_attrs' mangled-name='dma_mmap_attrs' filepath='kernel/dma/mapping.c' line='455' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_mmap_attrs'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='455' column='1'/>
+        <parameter type-id='2ae08426' name='vma' filepath='kernel/dma/mapping.c' line='455' column='1'/>
+        <parameter type-id='eaa32e2f' name='cpu_addr' filepath='kernel/dma/mapping.c' line='456' column='1'/>
+        <parameter type-id='cf29c9b3' name='dma_addr' filepath='kernel/dma/mapping.c' line='456' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/dma/mapping.c' line='456' column='1'/>
+        <parameter type-id='7359adad' name='attrs' filepath='kernel/dma/mapping.c' line='457' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_pool_alloc' mangled-name='dma_pool_alloc' filepath='mm/dmapool.c' line='314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_pool_alloc'>
+        <parameter type-id='ab33c616' name='pool' filepath='mm/dmapool.c' line='314' column='1'/>
+        <parameter type-id='3eb7c31c' name='mem_flags' filepath='mm/dmapool.c' line='314' column='1'/>
+        <parameter type-id='e835b5d8' name='handle' filepath='mm/dmapool.c' line='315' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='dma_pool_create' mangled-name='dma_pool_create' filepath='mm/dmapool.c' line='130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_pool_create'>
+        <parameter type-id='80f4b756' name='name' filepath='mm/dmapool.c' line='130' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='mm/dmapool.c' line='130' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='mm/dmapool.c' line='131' column='1'/>
+        <parameter type-id='b59d7dce' name='align' filepath='mm/dmapool.c' line='131' column='1'/>
+        <parameter type-id='b59d7dce' name='boundary' filepath='mm/dmapool.c' line='131' column='1'/>
+        <return type-id='ab33c616'/>
+      </function-decl>
+      <function-decl name='dma_pool_destroy' mangled-name='dma_pool_destroy' filepath='mm/dmapool.c' line='267' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_pool_destroy'>
+        <parameter type-id='ab33c616' name='pool' filepath='mm/dmapool.c' line='267' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_pool_free' mangled-name='dma_pool_free' filepath='mm/dmapool.c' line='404' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_pool_free'>
+        <parameter type-id='ab33c616' name='pool' filepath='mm/dmapool.c' line='404' column='1'/>
+        <parameter type-id='eaa32e2f' name='vaddr' filepath='mm/dmapool.c' line='404' column='1'/>
+        <parameter type-id='cf29c9b3' name='dma' filepath='mm/dmapool.c' line='404' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_release_channel' mangled-name='dma_release_channel' filepath='drivers/dma/dmaengine.c' line='904' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_release_channel'>
+        <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='904' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_request_chan' mangled-name='dma_request_chan' filepath='drivers/dma/dmaengine.c' line='814' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_request_chan'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/dma/dmaengine.c' line='814' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/dma/dmaengine.c' line='814' column='1'/>
+        <return type-id='27f3f5d8'/>
+      </function-decl>
+      <function-decl name='dma_resv_add_excl_fence' mangled-name='dma_resv_add_excl_fence' filepath='drivers/dma-buf/dma-resv.c' line='285' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_resv_add_excl_fence'>
+        <parameter type-id='340cea9c' name='obj' filepath='drivers/dma-buf/dma-resv.c' line='285' column='1'/>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/dma-buf/dma-resv.c' line='285' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_resv_add_shared_fence' mangled-name='dma_resv_add_shared_fence' filepath='drivers/dma-buf/dma-resv.c' line='240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_resv_add_shared_fence'>
+        <parameter type-id='340cea9c' name='obj' filepath='drivers/dma-buf/dma-resv.c' line='240' column='1'/>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/dma-buf/dma-resv.c' line='240' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_resv_fini' mangled-name='dma_resv_fini' filepath='drivers/dma-buf/dma-resv.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_resv_fini'>
+        <parameter type-id='340cea9c' name='obj' filepath='drivers/dma-buf/dma-resv.c' line='114' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_resv_get_fences' mangled-name='dma_resv_get_fences' filepath='drivers/dma-buf/dma-resv.c' line='411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_resv_get_fences'>
+        <parameter type-id='340cea9c' name='obj' filepath='drivers/dma-buf/dma-resv.c' line='411' column='1'/>
+        <parameter type-id='be937eab' name='pfence_excl' filepath='drivers/dma-buf/dma-resv.c' line='411' column='1'/>
+        <parameter type-id='807869d3' name='pshared_count' filepath='drivers/dma-buf/dma-resv.c' line='412' column='1'/>
+        <parameter type-id='83302513' name='pshared' filepath='drivers/dma-buf/dma-resv.c' line='413' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_resv_init' mangled-name='dma_resv_init' filepath='drivers/dma-buf/dma-resv.c' line='100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_resv_init'>
+        <parameter type-id='340cea9c' name='obj' filepath='drivers/dma-buf/dma-resv.c' line='100' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_resv_reserve_shared' mangled-name='dma_resv_reserve_shared' filepath='drivers/dma-buf/dma-resv.c' line='145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_resv_reserve_shared'>
+        <parameter type-id='340cea9c' name='obj' filepath='drivers/dma-buf/dma-resv.c' line='145' column='1'/>
+        <parameter type-id='f0981eeb' name='num_fences' filepath='drivers/dma-buf/dma-resv.c' line='145' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_resv_test_signaled' mangled-name='dma_resv_test_signaled' filepath='drivers/dma-buf/dma-resv.c' line='616' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_resv_test_signaled'>
+        <parameter type-id='340cea9c' name='obj' filepath='drivers/dma-buf/dma-resv.c' line='616' column='1'/>
+        <parameter type-id='b50a4934' name='test_all' filepath='drivers/dma-buf/dma-resv.c' line='616' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='dma_resv_wait_timeout' mangled-name='dma_resv_wait_timeout' filepath='drivers/dma-buf/dma-resv.c' line='512' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_resv_wait_timeout'>
+        <parameter type-id='340cea9c' name='obj' filepath='drivers/dma-buf/dma-resv.c' line='512' column='1'/>
+        <parameter type-id='b50a4934' name='wait_all' filepath='drivers/dma-buf/dma-resv.c' line='512' column='1'/>
+        <parameter type-id='b50a4934' name='intr' filepath='drivers/dma-buf/dma-resv.c' line='512' column='1'/>
+        <parameter type-id='7359adad' name='timeout' filepath='drivers/dma-buf/dma-resv.c' line='513' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='dma_run_dependencies' mangled-name='dma_run_dependencies' filepath='drivers/dma/dmaengine.c' line='1613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_run_dependencies'>
+        <parameter type-id='0e3f80d9' name='tx' filepath='drivers/dma/dmaengine.c' line='1613' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_set_coherent_mask' mangled-name='dma_set_coherent_mask' filepath='kernel/dma/mapping.c' line='752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_set_coherent_mask'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='752' column='1'/>
+        <parameter type-id='91ce1af9' name='mask' filepath='kernel/dma/mapping.c' line='752' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_set_mask' mangled-name='dma_set_mask' filepath='kernel/dma/mapping.c' line='734' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_set_mask'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='734' column='1'/>
+        <parameter type-id='91ce1af9' name='mask' filepath='kernel/dma/mapping.c' line='734' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_supported' mangled-name='dma_supported' filepath='kernel/dma/mapping.c' line='712' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_supported'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='712' column='1'/>
+        <parameter type-id='91ce1af9' name='mask' filepath='kernel/dma/mapping.c' line='712' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dma_sync_sg_for_cpu' mangled-name='dma_sync_sg_for_cpu' filepath='kernel/dma/mapping.c' line='349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_sync_sg_for_cpu'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='349' column='1'/>
+        <parameter type-id='bf3ef905' name='sg' filepath='kernel/dma/mapping.c' line='349' column='1'/>
+        <parameter type-id='95e97e5e' name='nelems' filepath='kernel/dma/mapping.c' line='350' column='1'/>
+        <parameter type-id='eea6b025' name='dir' filepath='kernel/dma/mapping.c' line='350' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_sync_sg_for_device' mangled-name='dma_sync_sg_for_device' filepath='kernel/dma/mapping.c' line='363' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_sync_sg_for_device'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='363' column='1'/>
+        <parameter type-id='bf3ef905' name='sg' filepath='kernel/dma/mapping.c' line='363' column='1'/>
+        <parameter type-id='95e97e5e' name='nelems' filepath='kernel/dma/mapping.c' line='364' column='1'/>
+        <parameter type-id='eea6b025' name='dir' filepath='kernel/dma/mapping.c' line='364' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_sync_single_for_cpu' mangled-name='dma_sync_single_for_cpu' filepath='kernel/dma/mapping.c' line='321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_sync_single_for_cpu'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='321' column='1'/>
+        <parameter type-id='cf29c9b3' name='addr' filepath='kernel/dma/mapping.c' line='321' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/dma/mapping.c' line='321' column='1'/>
+        <parameter type-id='eea6b025' name='dir' filepath='kernel/dma/mapping.c' line='322' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_sync_single_for_device' mangled-name='dma_sync_single_for_device' filepath='kernel/dma/mapping.c' line='335' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_sync_single_for_device'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='335' column='1'/>
+        <parameter type-id='cf29c9b3' name='addr' filepath='kernel/dma/mapping.c' line='335' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/dma/mapping.c' line='336' column='1'/>
+        <parameter type-id='eea6b025' name='dir' filepath='kernel/dma/mapping.c' line='336' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_sync_wait' mangled-name='dma_sync_wait' filepath='drivers/dma/dmaengine.c' line='520' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_sync_wait'>
+        <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='520' column='1'/>
+        <parameter type-id='6478ea0a' name='cookie' filepath='drivers/dma/dmaengine.c' line='520' column='1'/>
+        <return type-id='02ac9d9d'/>
+      </function-decl>
+      <function-decl name='dma_unmap_page_attrs' mangled-name='dma_unmap_page_attrs' filepath='kernel/dma/mapping.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_unmap_page_attrs'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='165' column='1'/>
+        <parameter type-id='cf29c9b3' name='addr' filepath='kernel/dma/mapping.c' line='165' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/dma/mapping.c' line='165' column='1'/>
+        <parameter type-id='eea6b025' name='dir' filepath='kernel/dma/mapping.c' line='166' column='1'/>
+        <parameter type-id='7359adad' name='attrs' filepath='kernel/dma/mapping.c' line='166' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_unmap_resource' mangled-name='dma_unmap_resource' filepath='kernel/dma/mapping.c' line='309' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_unmap_resource'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='309' column='1'/>
+        <parameter type-id='cf29c9b3' name='addr' filepath='kernel/dma/mapping.c' line='309' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/dma/mapping.c' line='309' column='1'/>
+        <parameter type-id='eea6b025' name='dir' filepath='kernel/dma/mapping.c' line='310' column='1'/>
+        <parameter type-id='7359adad' name='attrs' filepath='kernel/dma/mapping.c' line='310' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_unmap_sg_attrs' mangled-name='dma_unmap_sg_attrs' filepath='kernel/dma/mapping.c' line='272' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_unmap_sg_attrs'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='272' column='1'/>
+        <parameter type-id='bf3ef905' name='sg' filepath='kernel/dma/mapping.c' line='272' column='1'/>
+        <parameter type-id='95e97e5e' name='nents' filepath='kernel/dma/mapping.c' line='273' column='1'/>
+        <parameter type-id='eea6b025' name='dir' filepath='kernel/dma/mapping.c' line='273' column='1'/>
+        <parameter type-id='7359adad' name='attrs' filepath='kernel/dma/mapping.c' line='274' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dma_vmap_noncontiguous' mangled-name='dma_vmap_noncontiguous' filepath='kernel/dma/mapping.c' line='674' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_vmap_noncontiguous'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='674' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/dma/mapping.c' line='674' column='1'/>
+        <parameter type-id='4adb0e6a' name='sgt' filepath='kernel/dma/mapping.c' line='675' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='dma_vunmap_noncontiguous' mangled-name='dma_vunmap_noncontiguous' filepath='kernel/dma/mapping.c' line='686' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_vunmap_noncontiguous'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='686' column='1'/>
+        <parameter type-id='eaa32e2f' name='vaddr' filepath='kernel/dma/mapping.c' line='686' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dmabuf_page_pool_alloc' mangled-name='dmabuf_page_pool_alloc' filepath='drivers/dma-buf/heaps/page_pool.c' line='93' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmabuf_page_pool_alloc'>
+        <parameter type-id='586a9713' name='pool' filepath='drivers/dma-buf/heaps/page_pool.c' line='93' column='1'/>
+        <return type-id='02f11ed4'/>
+      </function-decl>
+      <function-decl name='dmabuf_page_pool_create' mangled-name='dmabuf_page_pool_create' filepath='drivers/dma-buf/heaps/page_pool.c' line='127' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmabuf_page_pool_create'>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='drivers/dma-buf/heaps/page_pool.c' line='127' column='1'/>
+        <parameter type-id='f0981eeb' name='order' filepath='drivers/dma-buf/heaps/page_pool.c' line='127' column='1'/>
+        <return type-id='586a9713'/>
+      </function-decl>
+      <function-decl name='dmabuf_page_pool_destroy' mangled-name='dmabuf_page_pool_destroy' filepath='drivers/dma-buf/heaps/page_pool.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmabuf_page_pool_destroy'>
+        <parameter type-id='586a9713' name='pool' filepath='drivers/dma-buf/heaps/page_pool.c' line='156' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dmabuf_page_pool_free' mangled-name='dmabuf_page_pool_free' filepath='drivers/dma-buf/heaps/page_pool.c' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmabuf_page_pool_free'>
+        <parameter type-id='586a9713' name='pool' filepath='drivers/dma-buf/heaps/page_pool.c' line='108' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='drivers/dma-buf/heaps/page_pool.c' line='108' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dmaengine_get_unmap_data' mangled-name='dmaengine_get_unmap_data' filepath='drivers/dma/dmaengine.c' line='1481' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmaengine_get_unmap_data'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/dma/dmaengine.c' line='1481' column='1'/>
+        <parameter type-id='95e97e5e' name='nr' filepath='drivers/dma/dmaengine.c' line='1481' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='drivers/dma/dmaengine.c' line='1481' column='1'/>
+        <return type-id='e220a5e2'/>
+      </function-decl>
+      <function-decl name='dmaengine_unmap_put' mangled-name='dmaengine_unmap_put' filepath='drivers/dma/dmaengine.c' line='1432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmaengine_unmap_put'>
+        <parameter type-id='e220a5e2' name='unmap' filepath='drivers/dma/dmaengine.c' line='1432' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dmaenginem_async_device_register' mangled-name='dmaenginem_async_device_register' filepath='drivers/dma/dmaengine.c' line='1348' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmaenginem_async_device_register'>
+        <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='1348' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dmam_alloc_attrs' mangled-name='dmam_alloc_attrs' filepath='kernel/dma/mapping.c' line='84' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmam_alloc_attrs'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='84' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/dma/mapping.c' line='84' column='1'/>
+        <parameter type-id='e835b5d8' name='dma_handle' filepath='kernel/dma/mapping.c' line='84' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='kernel/dma/mapping.c' line='85' column='1'/>
+        <parameter type-id='7359adad' name='attrs' filepath='kernel/dma/mapping.c' line='85' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='dmam_free_coherent' mangled-name='dmam_free_coherent' filepath='kernel/dma/mapping.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmam_free_coherent'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/dma/mapping.c' line='60' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/dma/mapping.c' line='60' column='1'/>
+        <parameter type-id='eaa32e2f' name='vaddr' filepath='kernel/dma/mapping.c' line='60' column='1'/>
+        <parameter type-id='cf29c9b3' name='dma_handle' filepath='kernel/dma/mapping.c' line='61' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dmam_pool_create' mangled-name='dmam_pool_create' filepath='mm/dmapool.c' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmam_pool_create'>
+        <parameter type-id='80f4b756' name='name' filepath='mm/dmapool.c' line='498' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='mm/dmapool.c' line='498' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='mm/dmapool.c' line='499' column='1'/>
+        <parameter type-id='b59d7dce' name='align' filepath='mm/dmapool.c' line='499' column='1'/>
+        <parameter type-id='b59d7dce' name='allocation' filepath='mm/dmapool.c' line='499' column='1'/>
+        <return type-id='ab33c616'/>
+      </function-decl>
+      <function-decl name='do_SAK' mangled-name='do_SAK' filepath='drivers/tty/tty_io.c' line='3095' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='do_SAK'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_io.c' line='3095' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='do_exit' mangled-name='do_exit' filepath='kernel/exit.c' line='777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='do_exit'>
+        <parameter type-id='bd54fe1a' name='code' filepath='kernel/exit.c' line='777' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='do_trace_netlink_extack' mangled-name='do_trace_netlink_extack' filepath='net/netlink/af_netlink.c' line='152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='do_trace_netlink_extack'>
+        <parameter type-id='80f4b756' name='msg' filepath='net/netlink/af_netlink.c' line='152' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='do_trace_rcu_torture_read' mangled-name='do_trace_rcu_torture_read' filepath='kernel/rcu/update.c' line='469' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='do_trace_rcu_torture_read'>
+        <parameter type-id='80f4b756' name='rcutorturename' filepath='kernel/rcu/update.c' line='469' column='1'/>
+        <parameter type-id='69c138b1' name='rhp' filepath='kernel/rcu/update.c' line='469' column='1'/>
+        <parameter type-id='7359adad' name='secs' filepath='kernel/rcu/update.c' line='470' column='1'/>
+        <parameter type-id='7359adad' name='c_old' filepath='kernel/rcu/update.c' line='471' column='1'/>
+        <parameter type-id='7359adad' name='c' filepath='kernel/rcu/update.c' line='471' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='do_traversal_all_lruvec' mangled-name='do_traversal_all_lruvec' filepath='mm/memcontrol.c' line='1294' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='do_traversal_all_lruvec'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='do_wait_intr' mangled-name='do_wait_intr' filepath='kernel/sched/wait.c' line='349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='do_wait_intr'>
+        <parameter type-id='03d48e96' name='wq' filepath='kernel/sched/wait.c' line='349' column='1'/>
+        <parameter type-id='ba9aa326' name='wait' filepath='kernel/sched/wait.c' line='349' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='do_wait_intr_irq' mangled-name='do_wait_intr_irq' filepath='kernel/sched/wait.c' line='366' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='do_wait_intr_irq'>
+        <parameter type-id='03d48e96' name='wq' filepath='kernel/sched/wait.c' line='366' column='1'/>
+        <parameter type-id='ba9aa326' name='wait' filepath='kernel/sched/wait.c' line='366' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='dotdot_name' type-id='82c73a4e' mangled-name='dotdot_name' visibility='default' filepath='fs/dcache.c' line='87' column='1' elf-symbol-id='dotdot_name'/>
+      <function-decl name='double_rq_lock' mangled-name='double_rq_lock' filepath='kernel/sched/core.c' line='542' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='double_rq_lock'>
+        <parameter type-id='6ed6b432' name='rq1' filepath='kernel/sched/core.c' line='542' column='1'/>
+        <parameter type-id='6ed6b432' name='rq2' filepath='kernel/sched/core.c' line='542' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='down' mangled-name='down' filepath='kernel/locking/semaphore.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down'>
+        <parameter type-id='a965a5b5' name='sem' filepath='kernel/locking/semaphore.c' line='53' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='down_interruptible' mangled-name='down_interruptible' filepath='kernel/locking/semaphore.c' line='76' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_interruptible'>
+        <parameter type-id='a965a5b5' name='sem' filepath='kernel/locking/semaphore.c' line='76' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='down_killable' mangled-name='down_killable' filepath='kernel/locking/semaphore.c' line='103' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_killable'>
+        <parameter type-id='a965a5b5' name='sem' filepath='kernel/locking/semaphore.c' line='103' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='down_read' mangled-name='down_read' filepath='kernel/locking/rwsem.c' line='1544' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_read'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1544' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='down_read_killable' mangled-name='down_read_killable' filepath='kernel/locking/rwsem.c' line='1567' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_read_killable'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1567' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='down_read_trylock' mangled-name='down_read_trylock' filepath='kernel/locking/rwsem.c' line='1584' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_read_trylock'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1584' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='down_timeout' mangled-name='down_timeout' filepath='kernel/locking/semaphore.c' line='158' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_timeout'>
+        <parameter type-id='a965a5b5' name='sem' filepath='kernel/locking/semaphore.c' line='158' column='1'/>
+        <parameter type-id='bd54fe1a' name='timeout' filepath='kernel/locking/semaphore.c' line='158' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='down_trylock' mangled-name='down_trylock' filepath='kernel/locking/semaphore.c' line='133' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_trylock'>
+        <parameter type-id='a965a5b5' name='sem' filepath='kernel/locking/semaphore.c' line='133' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='down_write' mangled-name='down_write' filepath='kernel/locking/rwsem.c' line='1597' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_write'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1597' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='down_write_killable' mangled-name='down_write_killable' filepath='kernel/locking/rwsem.c' line='1608' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_write_killable'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1608' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='down_write_trylock' mangled-name='down_write_trylock' filepath='kernel/locking/rwsem.c' line='1626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_write_trylock'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1626' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='downgrade_write' mangled-name='downgrade_write' filepath='kernel/locking/rwsem.c' line='1661' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='downgrade_write'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1661' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dput' mangled-name='dput' filepath='fs/dcache.c' line='869' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dput'>
+        <parameter type-id='27675065' name='dentry' filepath='fs/dcache.c' line='869' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dqget' mangled-name='dqget' filepath='fs/quota/dquot.c' line='860' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dqget'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='860' column='1'/>
+        <parameter type-id='72028e1c' name='qid' filepath='fs/quota/dquot.c' line='860' column='1'/>
+        <return type-id='e9a4c848'/>
+      </function-decl>
+      <function-decl name='dql_completed' mangled-name='dql_completed' filepath='lib/dynamic_queue_limits.c' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dql_completed'>
+        <parameter type-id='6fe0e73c' name='dql' filepath='lib/dynamic_queue_limits.c' line='18' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='lib/dynamic_queue_limits.c' line='18' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dql_reset' mangled-name='dql_reset' filepath='lib/dynamic_queue_limits.c' line='116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dql_reset'>
+        <parameter type-id='6fe0e73c' name='dql' filepath='lib/dynamic_queue_limits.c' line='116' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dqput' mangled-name='dqput' filepath='fs/quota/dquot.c' line='766' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dqput'>
+        <parameter type-id='e9a4c848' name='dquot' filepath='fs/quota/dquot.c' line='766' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dquot_acquire' mangled-name='dquot_acquire' filepath='fs/quota/dquot.c' line='426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_acquire'>
+        <parameter type-id='e9a4c848' name='dquot' filepath='fs/quota/dquot.c' line='426' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_alloc' mangled-name='dquot_alloc' filepath='fs/quota/dquot.c' line='825' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_alloc'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='825' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='825' column='1'/>
+        <return type-id='e9a4c848'/>
+      </function-decl>
+      <function-decl name='dquot_alloc_inode' mangled-name='dquot_alloc_inode' filepath='fs/quota/dquot.c' line='1734' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_alloc_inode'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='1734' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_claim_space_nodirty' mangled-name='dquot_claim_space_nodirty' filepath='fs/quota/dquot.c' line='1778' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_claim_space_nodirty'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='1778' column='1'/>
+        <parameter type-id='33341965' name='number' filepath='fs/quota/dquot.c' line='1778' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_commit' mangled-name='dquot_commit' filepath='fs/quota/dquot.c' line='473' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_commit'>
+        <parameter type-id='e9a4c848' name='dquot' filepath='fs/quota/dquot.c' line='473' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_commit_info' mangled-name='dquot_commit_info' filepath='fs/quota/dquot.c' line='2130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_commit_info'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2130' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2130' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_destroy' mangled-name='dquot_destroy' filepath='fs/quota/dquot.c' line='528' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_destroy'>
+        <parameter type-id='e9a4c848' name='dquot' filepath='fs/quota/dquot.c' line='528' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dquot_disable' mangled-name='dquot_disable' filepath='fs/quota/dquot.c' line='2198' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_disable'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2198' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2198' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='fs/quota/dquot.c' line='2198' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_drop' mangled-name='dquot_drop' filepath='fs/quota/dquot.c' line='1593' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_drop'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='1593' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dquot_file_open' mangled-name='dquot_file_open' filepath='fs/quota/dquot.c' line='2168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_file_open'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='2168' column='1'/>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/quota/dquot.c' line='2168' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_free_inode' mangled-name='dquot_free_inode' filepath='fs/quota/dquot.c' line='1917' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_free_inode'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='1917' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dquot_get_dqblk' mangled-name='dquot_get_dqblk' filepath='fs/quota/dquot.c' line='2625' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_get_dqblk'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2625' column='1'/>
+        <parameter type-id='72028e1c' name='qid' filepath='fs/quota/dquot.c' line='2625' column='1'/>
+        <parameter type-id='39341f7e' name='di' filepath='fs/quota/dquot.c' line='2626' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_get_next_dqblk' mangled-name='dquot_get_next_dqblk' filepath='fs/quota/dquot.c' line='2640' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_get_next_dqblk'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2640' column='1'/>
+        <parameter type-id='cc8d835a' name='qid' filepath='fs/quota/dquot.c' line='2640' column='1'/>
+        <parameter type-id='39341f7e' name='di' filepath='fs/quota/dquot.c' line='2641' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_get_next_id' mangled-name='dquot_get_next_id' filepath='fs/quota/dquot.c' line='2138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_get_next_id'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2138' column='1'/>
+        <parameter type-id='cc8d835a' name='qid' filepath='fs/quota/dquot.c' line='2138' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_get_state' mangled-name='dquot_get_state' filepath='fs/quota/dquot.c' line='2777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_get_state'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2777' column='1'/>
+        <parameter type-id='6dcf57f3' name='state' filepath='fs/quota/dquot.c' line='2777' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_initialize' mangled-name='dquot_initialize' filepath='fs/quota/dquot.c' line='1548' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_initialize'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='1548' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_initialize_needed' mangled-name='dquot_initialize_needed' filepath='fs/quota/dquot.c' line='1554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_initialize_needed'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='1554' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='dquot_load_quota_inode' mangled-name='dquot_load_quota_inode' filepath='fs/quota/dquot.c' line='2430' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_load_quota_inode'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='2430' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2430' column='1'/>
+        <parameter type-id='95e97e5e' name='format_id' filepath='fs/quota/dquot.c' line='2430' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='fs/quota/dquot.c' line='2431' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_mark_dquot_dirty' mangled-name='dquot_mark_dquot_dirty' filepath='fs/quota/dquot.c' line='350' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_mark_dquot_dirty'>
+        <parameter type-id='e9a4c848' name='dquot' filepath='fs/quota/dquot.c' line='350' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_quota_off' mangled-name='dquot_quota_off' filepath='fs/quota/dquot.c' line='2304' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_quota_off'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2304' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2304' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_quota_on' mangled-name='dquot_quota_on' filepath='fs/quota/dquot.c' line='2480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_quota_on'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2480' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2480' column='1'/>
+        <parameter type-id='95e97e5e' name='format_id' filepath='fs/quota/dquot.c' line='2480' column='1'/>
+        <parameter type-id='a77efac3' name='path' filepath='fs/quota/dquot.c' line='2481' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_quota_on_mount' mangled-name='dquot_quota_on_mount' filepath='fs/quota/dquot.c' line='2501' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_quota_on_mount'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2501' column='1'/>
+        <parameter type-id='26a90f95' name='qf_name' filepath='fs/quota/dquot.c' line='2501' column='1'/>
+        <parameter type-id='95e97e5e' name='format_id' filepath='fs/quota/dquot.c' line='2502' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2502' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_release' mangled-name='dquot_release' filepath='fs/quota/dquot.c' line='499' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_release'>
+        <parameter type-id='e9a4c848' name='dquot' filepath='fs/quota/dquot.c' line='499' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_resume' mangled-name='dquot_resume' filepath='fs/quota/dquot.c' line='2446' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_resume'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2446' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2446' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_set_dqblk' mangled-name='dquot_set_dqblk' filepath='fs/quota/dquot.c' line='2758' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_set_dqblk'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2758' column='1'/>
+        <parameter type-id='72028e1c' name='qid' filepath='fs/quota/dquot.c' line='2758' column='1'/>
+        <parameter type-id='39341f7e' name='di' filepath='fs/quota/dquot.c' line='2759' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_set_dqinfo' mangled-name='dquot_set_dqinfo' filepath='fs/quota/dquot.c' line='2812' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_set_dqinfo'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2812' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2812' column='1'/>
+        <parameter type-id='66b0cee4' name='ii' filepath='fs/quota/dquot.c' line='2812' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_transfer' mangled-name='dquot_transfer' filepath='fs/quota/dquot.c' line='2088' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_transfer'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='2088' column='1'/>
+        <parameter type-id='ab7bbd67' name='iattr' filepath='fs/quota/dquot.c' line='2088' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dquot_writeback_dquots' mangled-name='dquot_writeback_dquots' filepath='fs/quota/dquot.c' line='632' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_writeback_dquots'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='632' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='632' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drain_workqueue' mangled-name='drain_workqueue' filepath='kernel/workqueue.c' line='2984' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drain_workqueue'>
+        <parameter type-id='242e3d19' name='wq' filepath='kernel/workqueue.c' line='2984' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='driver_attach' mangled-name='driver_attach' filepath='drivers/base/dd.c' line='1179' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='driver_attach'>
+        <parameter type-id='00c7b870' name='drv' filepath='drivers/base/dd.c' line='1179' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='driver_create_file' mangled-name='driver_create_file' filepath='drivers/base/driver.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='driver_create_file'>
+        <parameter type-id='00c7b870' name='drv' filepath='drivers/base/driver.c' line='101' column='1'/>
+        <parameter type-id='1a5996d5' name='attr' filepath='drivers/base/driver.c' line='102' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='driver_find' mangled-name='driver_find' filepath='drivers/base/driver.c' line='214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='driver_find'>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/base/driver.c' line='214' column='1'/>
+        <parameter type-id='5e2671f8' name='bus' filepath='drivers/base/driver.c' line='214' column='1'/>
+        <return type-id='00c7b870'/>
+      </function-decl>
+      <function-decl name='driver_find_device' mangled-name='driver_find_device' filepath='drivers/base/driver.c' line='76' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='driver_find_device'>
+        <parameter type-id='00c7b870' name='drv' filepath='drivers/base/driver.c' line='76' column='1'/>
+        <parameter type-id='fa0b179b' name='start' filepath='drivers/base/driver.c' line='77' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/driver.c' line='77' column='1'/>
+        <parameter type-id='92d15ae9' name='match' filepath='drivers/base/driver.c' line='78' column='1'/>
+        <return type-id='fa0b179b'/>
+      </function-decl>
+      <function-decl name='driver_register' mangled-name='driver_register' filepath='drivers/base/driver.c' line='147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='driver_register'>
+        <parameter type-id='00c7b870' name='drv' filepath='drivers/base/driver.c' line='147' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='driver_remove_file' mangled-name='driver_remove_file' filepath='drivers/base/driver.c' line='119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='driver_remove_file'>
+        <parameter type-id='00c7b870' name='drv' filepath='drivers/base/driver.c' line='119' column='1'/>
+        <parameter type-id='1a5996d5' name='attr' filepath='drivers/base/driver.c' line='120' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='driver_unregister' mangled-name='driver_unregister' filepath='drivers/base/driver.c' line='191' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='driver_unregister'>
+        <parameter type-id='00c7b870' name='drv' filepath='drivers/base/driver.c' line='191' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_add_edid_modes' mangled-name='drm_add_edid_modes' filepath='drivers/gpu/drm/drm_edid.c' line='5358' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_add_edid_modes'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_edid.c' line='5358' column='1'/>
+        <parameter type-id='c91d1bf1' name='edid' filepath='drivers/gpu/drm/drm_edid.c' line='5358' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_add_modes_noedid' mangled-name='drm_add_modes_noedid' filepath='drivers/gpu/drm/drm_edid.c' line='5437' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_add_modes_noedid'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_edid.c' line='5437' column='1'/>
+        <parameter type-id='95e97e5e' name='hdisplay' filepath='drivers/gpu/drm/drm_edid.c' line='5438' column='1'/>
+        <parameter type-id='95e97e5e' name='vdisplay' filepath='drivers/gpu/drm/drm_edid.c' line='5438' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_any_plane_has_format' mangled-name='drm_any_plane_has_format' filepath='drivers/gpu/drm/drm_plane.c' line='819' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_any_plane_has_format'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_plane.c' line='819' column='1'/>
+        <parameter type-id='19c2251e' name='format' filepath='drivers/gpu/drm/drm_plane.c' line='820' column='1'/>
+        <parameter type-id='91ce1af9' name='modifier' filepath='drivers/gpu/drm/drm_plane.c' line='820' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_aperture_remove_conflicting_pci_framebuffers' mangled-name='drm_aperture_remove_conflicting_pci_framebuffers' filepath='drivers/gpu/drm/drm_aperture.c' line='328' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_aperture_remove_conflicting_pci_framebuffers'>
+        <parameter type-id='85196e3f' name='pdev' filepath='drivers/gpu/drm/drm_aperture.c' line='328' column='1'/>
+        <parameter type-id='b4e725f2' name='req_driver' filepath='drivers/gpu/drm/drm_aperture.c' line='329' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_add_affected_connectors' mangled-name='drm_atomic_add_affected_connectors' filepath='drivers/gpu/drm/drm_atomic.c' line='1199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_add_affected_connectors'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic.c' line='1199' column='1'/>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_atomic.c' line='1200' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_add_affected_planes' mangled-name='drm_atomic_add_affected_planes' filepath='drivers/gpu/drm/drm_atomic.c' line='1262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_add_affected_planes'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic.c' line='1262' column='1'/>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_atomic.c' line='1263' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_bridge_chain_disable' mangled-name='drm_atomic_bridge_chain_disable' filepath='drivers/gpu/drm/drm_bridge.c' line='578' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_bridge_chain_disable'>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/drm_bridge.c' line='578' column='1'/>
+        <parameter type-id='e3dd029e' name='old_state' filepath='drivers/gpu/drm/drm_bridge.c' line='579' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_bridge_chain_enable' mangled-name='drm_atomic_bridge_chain_enable' filepath='drivers/gpu/drm/drm_bridge.c' line='706' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_bridge_chain_enable'>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/drm_bridge.c' line='706' column='1'/>
+        <parameter type-id='e3dd029e' name='old_state' filepath='drivers/gpu/drm/drm_bridge.c' line='707' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_bridge_chain_pre_enable' mangled-name='drm_atomic_bridge_chain_pre_enable' filepath='drivers/gpu/drm/drm_bridge.c' line='663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_bridge_chain_pre_enable'>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/drm_bridge.c' line='663' column='1'/>
+        <parameter type-id='e3dd029e' name='old_state' filepath='drivers/gpu/drm/drm_bridge.c' line='664' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_commit' mangled-name='drm_atomic_commit' filepath='drivers/gpu/drm/drm_atomic.c' line='1406' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_commit'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic.c' line='1406' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_get_connector_state' mangled-name='drm_atomic_get_connector_state' filepath='drivers/gpu/drm/drm_atomic.c' line='985' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_get_connector_state'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic.c' line='985' column='1'/>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_atomic.c' line='986' column='1'/>
+        <return type-id='249ef586'/>
+      </function-decl>
+      <function-decl name='drm_atomic_get_crtc_state' mangled-name='drm_atomic_get_crtc_state' filepath='drivers/gpu/drm/drm_atomic.c' line='335' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_get_crtc_state'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic.c' line='335' column='1'/>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_atomic.c' line='336' column='1'/>
+        <return type-id='35078cb9'/>
+      </function-decl>
+      <function-decl name='drm_atomic_get_new_bridge_state' mangled-name='drm_atomic_get_new_bridge_state' filepath='drivers/gpu/drm/drm_atomic.c' line='1125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_get_new_bridge_state'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic.c' line='1125' column='1'/>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/drm_atomic.c' line='1126' column='1'/>
+        <return type-id='67bbaeda'/>
+      </function-decl>
+      <function-decl name='drm_atomic_get_new_connector_for_encoder' mangled-name='drm_atomic_get_new_connector_for_encoder' filepath='drivers/gpu/drm/drm_atomic.c' line='953' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_get_new_connector_for_encoder'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic.c' line='953' column='1'/>
+        <parameter type-id='74d89ebd' name='encoder' filepath='drivers/gpu/drm/drm_atomic.c' line='954' column='1'/>
+        <return type-id='4db02c58'/>
+      </function-decl>
+      <function-decl name='drm_atomic_get_old_connector_for_encoder' mangled-name='drm_atomic_get_old_connector_for_encoder' filepath='drivers/gpu/drm/drm_atomic.c' line='919' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_get_old_connector_for_encoder'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic.c' line='919' column='1'/>
+        <parameter type-id='74d89ebd' name='encoder' filepath='drivers/gpu/drm/drm_atomic.c' line='920' column='1'/>
+        <return type-id='4db02c58'/>
+      </function-decl>
+      <function-decl name='drm_atomic_get_plane_state' mangled-name='drm_atomic_get_plane_state' filepath='drivers/gpu/drm/drm_atomic.c' line='509' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_get_plane_state'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic.c' line='509' column='1'/>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_atomic.c' line='510' column='1'/>
+        <return type-id='d0835005'/>
+      </function-decl>
+      <function-decl name='drm_atomic_get_private_obj_state' mangled-name='drm_atomic_get_private_obj_state' filepath='drivers/gpu/drm/drm_atomic.c' line='811' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_get_private_obj_state'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic.c' line='811' column='1'/>
+        <parameter type-id='11c98e9a' name='obj' filepath='drivers/gpu/drm/drm_atomic.c' line='812' column='1'/>
+        <return type-id='4ea020ae'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_async_commit' mangled-name='drm_atomic_helper_async_commit' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1781' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_async_commit'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1781' column='1'/>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1782' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_bridge_destroy_state' mangled-name='drm_atomic_helper_bridge_destroy_state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_bridge_destroy_state'>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='613' column='1'/>
+        <parameter type-id='67bbaeda' name='state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='614' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_bridge_duplicate_state' mangled-name='drm_atomic_helper_bridge_duplicate_state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='587' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_bridge_duplicate_state'>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='587' column='1'/>
+        <return type-id='67bbaeda'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_bridge_propagate_bus_fmt' mangled-name='drm_atomic_helper_bridge_propagate_bus_fmt' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_bridge_propagate_bus_fmt'>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3524' column='1'/>
+        <parameter type-id='67bbaeda' name='bridge_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3525' column='1'/>
+        <parameter type-id='35078cb9' name='crtc_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3526' column='1'/>
+        <parameter type-id='249ef586' name='conn_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3527' column='1'/>
+        <parameter type-id='19c2251e' name='output_fmt' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3528' column='1'/>
+        <parameter type-id='807869d3' name='num_input_fmts' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3529' column='1'/>
+        <return type-id='f9409001'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_bridge_reset' mangled-name='drm_atomic_helper_bridge_reset' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='648' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_bridge_reset'>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='648' column='1'/>
+        <return type-id='67bbaeda'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_check' mangled-name='drm_atomic_helper_check' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='966' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_check'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='966' column='1'/>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='967' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_check_modeset' mangled-name='drm_atomic_helper_check_modeset' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='607' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_check_modeset'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='607' column='1'/>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='608' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_check_plane_state' mangled-name='drm_atomic_helper_check_plane_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='797' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_check_plane_state'>
+        <parameter type-id='d0835005' name='plane_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='797' column='1'/>
+        <parameter type-id='c9982f26' name='crtc_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='798' column='1'/>
+        <parameter type-id='95e97e5e' name='min_scale' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='799' column='1'/>
+        <parameter type-id='95e97e5e' name='max_scale' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='800' column='1'/>
+        <parameter type-id='b50a4934' name='can_position' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='801' column='1'/>
+        <parameter type-id='b50a4934' name='can_update_disabled' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='802' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_check_planes' mangled-name='drm_atomic_helper_check_planes' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='889' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_check_planes'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='889' column='1'/>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='890' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_cleanup_planes' mangled-name='drm_atomic_helper_cleanup_planes' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2709' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_cleanup_planes'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2709' column='1'/>
+        <parameter type-id='e3dd029e' name='old_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2710' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_commit' mangled-name='drm_atomic_helper_commit' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1834' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_commit'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1834' column='1'/>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1835' column='1'/>
+        <parameter type-id='b50a4934' name='nonblock' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1836' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_commit_cleanup_done' mangled-name='drm_atomic_helper_commit_cleanup_done' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_commit_cleanup_done'>
+        <parameter type-id='e3dd029e' name='old_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2359' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_commit_duplicated_state' mangled-name='drm_atomic_helper_commit_duplicated_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_commit_duplicated_state'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3305' column='1'/>
+        <parameter type-id='d1499e71' name='ctx' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3306' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_commit_hw_done' mangled-name='drm_atomic_helper_commit_hw_done' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_commit_hw_done'>
+        <parameter type-id='e3dd029e' name='old_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2314' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_commit_modeset_disables' mangled-name='drm_atomic_helper_commit_modeset_disables' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1307' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_commit_modeset_disables'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1307' column='1'/>
+        <parameter type-id='e3dd029e' name='old_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1308' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_commit_modeset_enables' mangled-name='drm_atomic_helper_commit_modeset_enables' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1354' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_commit_modeset_enables'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1354' column='1'/>
+        <parameter type-id='e3dd029e' name='old_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1355' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_commit_planes' mangled-name='drm_atomic_helper_commit_planes' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2503' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_commit_planes'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2503' column='1'/>
+        <parameter type-id='e3dd029e' name='old_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2504' column='1'/>
+        <parameter type-id='8f92235e' name='flags' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2505' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_commit_tail' mangled-name='drm_atomic_helper_commit_tail' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1593' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_commit_tail'>
+        <parameter type-id='e3dd029e' name='old_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1593' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_commit_tail_rpm' mangled-name='drm_atomic_helper_commit_tail_rpm' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1623' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_commit_tail_rpm'>
+        <parameter type-id='e3dd029e' name='old_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1623' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_connector_destroy_state' mangled-name='drm_atomic_helper_connector_destroy_state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='537' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_connector_destroy_state'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='537' column='1'/>
+        <parameter type-id='249ef586' name='state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='538' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_connector_duplicate_state' mangled-name='drm_atomic_helper_connector_duplicate_state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='490' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_connector_duplicate_state'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='490' column='1'/>
+        <return type-id='249ef586'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_connector_reset' mangled-name='drm_atomic_helper_connector_reset' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_connector_reset'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='426' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_crtc_destroy_state' mangled-name='drm_atomic_helper_crtc_destroy_state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='227' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_crtc_destroy_state'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='227' column='1'/>
+        <parameter type-id='35078cb9' name='state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='228' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_crtc_duplicate_state' mangled-name='drm_atomic_helper_crtc_duplicate_state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_crtc_duplicate_state'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='168' column='1'/>
+        <return type-id='35078cb9'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_crtc_reset' mangled-name='drm_atomic_helper_crtc_reset' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_crtc_reset'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='111' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_damage_merged' mangled-name='drm_atomic_helper_damage_merged' filepath='drivers/gpu/drm/drm_damage_helper.c' line='305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_damage_merged'>
+        <parameter type-id='ed31fbf8' name='old_state' filepath='drivers/gpu/drm/drm_damage_helper.c' line='305' column='1'/>
+        <parameter type-id='d0835005' name='state' filepath='drivers/gpu/drm/drm_damage_helper.c' line='306' column='1'/>
+        <parameter type-id='c91d6c11' name='rect' filepath='drivers/gpu/drm/drm_damage_helper.c' line='307' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_dirtyfb' mangled-name='drm_atomic_helper_dirtyfb' filepath='drivers/gpu/drm/drm_damage_helper.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_dirtyfb'>
+        <parameter type-id='7b332e1c' name='fb' filepath='drivers/gpu/drm/drm_damage_helper.c' line='106' column='1'/>
+        <parameter type-id='9e99ecc1' name='file_priv' filepath='drivers/gpu/drm/drm_damage_helper.c' line='107' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='drivers/gpu/drm/drm_damage_helper.c' line='107' column='1'/>
+        <parameter type-id='f0981eeb' name='color' filepath='drivers/gpu/drm/drm_damage_helper.c' line='108' column='1'/>
+        <parameter type-id='254852de' name='clips' filepath='drivers/gpu/drm/drm_damage_helper.c' line='108' column='1'/>
+        <parameter type-id='f0981eeb' name='num_clips' filepath='drivers/gpu/drm/drm_damage_helper.c' line='109' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_disable_plane' mangled-name='drm_atomic_helper_disable_plane' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_disable_plane'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2960' column='1'/>
+        <parameter type-id='d1499e71' name='ctx' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2961' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_disable_planes_on_crtc' mangled-name='drm_atomic_helper_disable_planes_on_crtc' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2669' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_disable_planes_on_crtc'>
+        <parameter type-id='35078cb9' name='old_crtc_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2669' column='1'/>
+        <parameter type-id='b50a4934' name='atomic' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2670' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_duplicate_state' mangled-name='drm_atomic_helper_duplicate_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3171' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_duplicate_state'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3171' column='1'/>
+        <parameter type-id='d1499e71' name='ctx' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3172' column='1'/>
+        <return type-id='e3dd029e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_fake_vblank' mangled-name='drm_atomic_helper_fake_vblank' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2276' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_fake_vblank'>
+        <parameter type-id='e3dd029e' name='old_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2276' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_page_flip' mangled-name='drm_atomic_helper_page_flip' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3425' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_page_flip'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3425' column='1'/>
+        <parameter type-id='7b332e1c' name='fb' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3426' column='1'/>
+        <parameter type-id='6301fad2' name='event' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3427' column='1'/>
+        <parameter type-id='8f92235e' name='flags' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3428' column='1'/>
+        <parameter type-id='d1499e71' name='ctx' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3429' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_plane_destroy_state' mangled-name='drm_atomic_helper_plane_destroy_state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='371' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_plane_destroy_state'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='371' column='1'/>
+        <parameter type-id='d0835005' name='state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='372' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_plane_duplicate_state' mangled-name='drm_atomic_helper_plane_duplicate_state' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='325' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_plane_duplicate_state'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='325' column='1'/>
+        <return type-id='d0835005'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_plane_reset' mangled-name='drm_atomic_helper_plane_reset' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_plane_reset'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_atomic_state_helper.c' line='283' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_prepare_planes' mangled-name='drm_atomic_helper_prepare_planes' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2399' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_prepare_planes'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2399' column='1'/>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2400' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_resume' mangled-name='drm_atomic_helper_resume' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3351' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_resume'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3351' column='1'/>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3352' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_set_config' mangled-name='drm_atomic_helper_set_config' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3008' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_set_config'>
+        <parameter type-id='8106240b' name='set' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3008' column='1'/>
+        <parameter type-id='d1499e71' name='ctx' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3009' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_setup_commit' mangled-name='drm_atomic_helper_setup_commit' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_setup_commit'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2100' column='1'/>
+        <parameter type-id='b50a4934' name='nonblock' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2101' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_shutdown' mangled-name='drm_atomic_helper_shutdown' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3131' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_shutdown'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3131' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_suspend' mangled-name='drm_atomic_helper_suspend' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3259' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_suspend'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='3259' column='1'/>
+        <return type-id='e3dd029e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_swap_state' mangled-name='drm_atomic_helper_swap_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2772' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_swap_state'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2772' column='1'/>
+        <parameter type-id='b50a4934' name='stall' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2773' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_update_legacy_modeset_state' mangled-name='drm_atomic_helper_update_legacy_modeset_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_update_legacy_modeset_state'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1149' column='1'/>
+        <parameter type-id='e3dd029e' name='old_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1150' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_update_plane' mangled-name='drm_atomic_helper_update_plane' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2903' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_update_plane'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2903' column='1'/>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2904' column='1'/>
+        <parameter type-id='7b332e1c' name='fb' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2905' column='1'/>
+        <parameter type-id='95e97e5e' name='crtc_x' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2906' column='1'/>
+        <parameter type-id='95e97e5e' name='crtc_y' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2906' column='1'/>
+        <parameter type-id='f0981eeb' name='crtc_w' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2907' column='1'/>
+        <parameter type-id='f0981eeb' name='crtc_h' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2907' column='1'/>
+        <parameter type-id='8f92235e' name='src_x' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2908' column='1'/>
+        <parameter type-id='8f92235e' name='src_y' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2908' column='1'/>
+        <parameter type-id='8f92235e' name='src_w' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2909' column='1'/>
+        <parameter type-id='8f92235e' name='src_h' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2909' column='1'/>
+        <parameter type-id='d1499e71' name='ctx' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2910' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_wait_for_dependencies' mangled-name='drm_atomic_helper_wait_for_dependencies' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2224' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_wait_for_dependencies'>
+        <parameter type-id='e3dd029e' name='old_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='2224' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_wait_for_fences' mangled-name='drm_atomic_helper_wait_for_fences' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_wait_for_fences'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1448' column='1'/>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1449' column='1'/>
+        <parameter type-id='b50a4934' name='pre_swap' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1450' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_wait_for_flip_done' mangled-name='drm_atomic_helper_wait_for_flip_done' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_wait_for_flip_done'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1554' column='1'/>
+        <parameter type-id='e3dd029e' name='old_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1555' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_helper_wait_for_vblanks' mangled-name='drm_atomic_helper_wait_for_vblanks' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1495' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_helper_wait_for_vblanks'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1495' column='1'/>
+        <parameter type-id='e3dd029e' name='old_state' filepath='drivers/gpu/drm/drm_atomic_helper.c' line='1496' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_nonblocking_commit' mangled-name='drm_atomic_nonblocking_commit' filepath='drivers/gpu/drm/drm_atomic.c' line='1435' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_nonblocking_commit'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic.c' line='1435' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_normalize_zpos' mangled-name='drm_atomic_normalize_zpos' filepath='drivers/gpu/drm/drm_blend.c' line='511' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_normalize_zpos'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_blend.c' line='511' column='1'/>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_blend.c' line='512' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_print_new_state' mangled-name='drm_atomic_print_new_state' filepath='drivers/gpu/drm/drm_atomic.c' line='1629' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_print_new_state'>
+        <parameter type-id='f8e48a99' name='state' filepath='drivers/gpu/drm/drm_atomic.c' line='1629' column='1'/>
+        <parameter type-id='7ac48c21' name='p' filepath='drivers/gpu/drm/drm_atomic.c' line='1630' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_private_obj_fini' mangled-name='drm_atomic_private_obj_fini' filepath='drivers/gpu/drm/drm_atomic.c' line='789' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_private_obj_fini'>
+        <parameter type-id='11c98e9a' name='obj' filepath='drivers/gpu/drm/drm_atomic.c' line='789' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_private_obj_init' mangled-name='drm_atomic_private_obj_init' filepath='drivers/gpu/drm/drm_atomic.c' line='767' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_private_obj_init'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic.c' line='767' column='1'/>
+        <parameter type-id='11c98e9a' name='obj' filepath='drivers/gpu/drm/drm_atomic.c' line='768' column='1'/>
+        <parameter type-id='4ea020ae' name='state' filepath='drivers/gpu/drm/drm_atomic.c' line='769' column='1'/>
+        <parameter type-id='515fa1af' name='funcs' filepath='drivers/gpu/drm/drm_atomic.c' line='770' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_set_crtc_for_connector' mangled-name='drm_atomic_set_crtc_for_connector' filepath='drivers/gpu/drm/drm_atomic_uapi.c' line='309' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_set_crtc_for_connector'>
+        <parameter type-id='249ef586' name='conn_state' filepath='drivers/gpu/drm/drm_atomic_uapi.c' line='309' column='1'/>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_atomic_uapi.c' line='310' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_set_crtc_for_plane' mangled-name='drm_atomic_set_crtc_for_plane' filepath='drivers/gpu/drm/drm_atomic_uapi.c' line='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_set_crtc_for_plane'>
+        <parameter type-id='d0835005' name='plane_state' filepath='drivers/gpu/drm/drm_atomic_uapi.c' line='186' column='1'/>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_atomic_uapi.c' line='187' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_set_fb_for_plane' mangled-name='drm_atomic_set_fb_for_plane' filepath='drivers/gpu/drm/drm_atomic_uapi.c' line='238' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_set_fb_for_plane'>
+        <parameter type-id='d0835005' name='plane_state' filepath='drivers/gpu/drm/drm_atomic_uapi.c' line='238' column='1'/>
+        <parameter type-id='7b332e1c' name='fb' filepath='drivers/gpu/drm/drm_atomic_uapi.c' line='239' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_set_fence_for_plane' mangled-name='drm_atomic_set_fence_for_plane' filepath='drivers/gpu/drm/drm_atomic_uapi.c' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_set_fence_for_plane'>
+        <parameter type-id='d0835005' name='plane_state' filepath='drivers/gpu/drm/drm_atomic_uapi.c' line='282' column='1'/>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/gpu/drm/drm_atomic_uapi.c' line='283' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_set_mode_for_crtc' mangled-name='drm_atomic_set_mode_for_crtc' filepath='drivers/gpu/drm/drm_atomic_uapi.c' line='65' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_set_mode_for_crtc'>
+        <parameter type-id='35078cb9' name='state' filepath='drivers/gpu/drm/drm_atomic_uapi.c' line='65' column='1'/>
+        <parameter type-id='745b39e8' name='mode' filepath='drivers/gpu/drm/drm_atomic_uapi.c' line='66' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_set_mode_prop_for_crtc' mangled-name='drm_atomic_set_mode_prop_for_crtc' filepath='drivers/gpu/drm/drm_atomic_uapi.c' line='119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_set_mode_prop_for_crtc'>
+        <parameter type-id='35078cb9' name='state' filepath='drivers/gpu/drm/drm_atomic_uapi.c' line='119' column='1'/>
+        <parameter type-id='c4126d52' name='blob' filepath='drivers/gpu/drm/drm_atomic_uapi.c' line='120' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_state_alloc' mangled-name='drm_atomic_state_alloc' filepath='drivers/gpu/drm/drm_atomic.c' line='159' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_state_alloc'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic.c' line='159' column='1'/>
+        <return type-id='e3dd029e'/>
+      </function-decl>
+      <function-decl name='drm_atomic_state_clear' mangled-name='drm_atomic_state_clear' filepath='drivers/gpu/drm/drm_atomic.c' line='278' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_state_clear'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic.c' line='278' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_state_default_clear' mangled-name='drm_atomic_state_default_clear' filepath='drivers/gpu/drm/drm_atomic.c' line='188' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_state_default_clear'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic.c' line='188' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_state_default_release' mangled-name='drm_atomic_state_default_release' filepath='drivers/gpu/drm/drm_atomic.c' line='104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_state_default_release'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic.c' line='104' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_atomic_state_init' mangled-name='drm_atomic_state_init' filepath='drivers/gpu/drm/drm_atomic.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_atomic_state_init'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic.c' line='123' column='1'/>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_atomic.c' line='123' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_bridge_add' mangled-name='drm_bridge_add' filepath='drivers/gpu/drm/drm_bridge.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_bridge_add'>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/drm_bridge.c' line='102' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_bridge_attach' mangled-name='drm_bridge_attach' filepath='drivers/gpu/drm/drm_bridge.c' line='175' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_bridge_attach'>
+        <parameter type-id='74d89ebd' name='encoder' filepath='drivers/gpu/drm/drm_bridge.c' line='175' column='1'/>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/drm_bridge.c' line='175' column='1'/>
+        <parameter type-id='8582e5ec' name='previous' filepath='drivers/gpu/drm/drm_bridge.c' line='176' column='1'/>
+        <parameter type-id='6a662de1' name='flags' filepath='drivers/gpu/drm/drm_bridge.c' line='177' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_bridge_chain_disable' mangled-name='drm_bridge_chain_disable' filepath='drivers/gpu/drm/drm_bridge.c' line='437' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_bridge_chain_disable'>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/drm_bridge.c' line='437' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_bridge_chain_enable' mangled-name='drm_bridge_chain_enable' filepath='drivers/gpu/drm/drm_bridge.c' line='551' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_bridge_chain_enable'>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/drm_bridge.c' line='551' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_bridge_chain_mode_set' mangled-name='drm_bridge_chain_mode_set' filepath='drivers/gpu/drm/drm_bridge.c' line='494' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_bridge_chain_mode_set'>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/drm_bridge.c' line='494' column='1'/>
+        <parameter type-id='745b39e8' name='mode' filepath='drivers/gpu/drm/drm_bridge.c' line='495' column='1'/>
+        <parameter type-id='745b39e8' name='adjusted_mode' filepath='drivers/gpu/drm/drm_bridge.c' line='496' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_bridge_chain_post_disable' mangled-name='drm_bridge_chain_post_disable' filepath='drivers/gpu/drm/drm_bridge.c' line='467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_bridge_chain_post_disable'>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/drm_bridge.c' line='467' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_bridge_chain_pre_enable' mangled-name='drm_bridge_chain_pre_enable' filepath='drivers/gpu/drm/drm_bridge.c' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_bridge_chain_pre_enable'>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/drm_bridge.c' line='522' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_bridge_connector_disable_hpd' mangled-name='drm_bridge_connector_disable_hpd' filepath='drivers/gpu/drm/drm_bridge_connector.c' line='158' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_bridge_connector_disable_hpd'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_bridge_connector.c' line='158' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_bridge_connector_enable_hpd' mangled-name='drm_bridge_connector_enable_hpd' filepath='drivers/gpu/drm/drm_bridge_connector.c' line='138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_bridge_connector_enable_hpd'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_bridge_connector.c' line='138' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_bridge_connector_init' mangled-name='drm_bridge_connector_init' filepath='drivers/gpu/drm/drm_bridge_connector.c' line='313' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_bridge_connector_init'>
+        <parameter type-id='8898134d' name='drm' filepath='drivers/gpu/drm/drm_bridge_connector.c' line='313' column='1'/>
+        <parameter type-id='74d89ebd' name='encoder' filepath='drivers/gpu/drm/drm_bridge_connector.c' line='314' column='1'/>
+        <return type-id='4db02c58'/>
+      </function-decl>
+      <function-decl name='drm_bridge_detect' mangled-name='drm_bridge_detect' filepath='drivers/gpu/drm/drm_bridge.c' line='1063' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_bridge_detect'>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/drm_bridge.c' line='1063' column='1'/>
+        <return type-id='f7b0e1b4'/>
+      </function-decl>
+      <function-decl name='drm_bridge_hpd_notify' mangled-name='drm_bridge_hpd_notify' filepath='drivers/gpu/drm/drm_bridge.c' line='1198' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_bridge_hpd_notify'>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/drm_bridge.c' line='1198' column='1'/>
+        <parameter type-id='f7b0e1b4' name='status' filepath='drivers/gpu/drm/drm_bridge.c' line='1199' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_bridge_remove' mangled-name='drm_bridge_remove' filepath='drivers/gpu/drm/drm_bridge.c' line='117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_bridge_remove'>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/drm_bridge.c' line='117' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_bus_flags_from_videomode' mangled-name='drm_bus_flags_from_videomode' filepath='drivers/gpu/drm/drm_modes.c' line='673' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_bus_flags_from_videomode'>
+        <parameter type-id='8640fd9e' name='vm' filepath='drivers/gpu/drm/drm_modes.c' line='673' column='1'/>
+        <parameter type-id='f9409001' name='bus_flags' filepath='drivers/gpu/drm/drm_modes.c' line='673' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_calc_timestamping_constants' mangled-name='drm_calc_timestamping_constants' filepath='drivers/gpu/drm/drm_vblank.c' line='608' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_calc_timestamping_constants'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_vblank.c' line='608' column='1'/>
+        <parameter type-id='745b39e8' name='mode' filepath='drivers/gpu/drm/drm_vblank.c' line='609' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_client_buffer_vmap' mangled-name='drm_client_buffer_vmap' filepath='drivers/gpu/drm/drm_client.c' line='312' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_client_buffer_vmap'>
+        <parameter type-id='b78e1fbb' name='buffer' filepath='drivers/gpu/drm/drm_client.c' line='312' column='1'/>
+        <parameter type-id='ce092740' name='map_copy' filepath='drivers/gpu/drm/drm_client.c' line='312' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_client_framebuffer_create' mangled-name='drm_client_framebuffer_create' filepath='drivers/gpu/drm/drm_client.c' line='413' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_client_framebuffer_create'>
+        <parameter type-id='cc1804ea' name='client' filepath='drivers/gpu/drm/drm_client.c' line='413' column='1'/>
+        <parameter type-id='19c2251e' name='width' filepath='drivers/gpu/drm/drm_client.c' line='413' column='1'/>
+        <parameter type-id='19c2251e' name='height' filepath='drivers/gpu/drm/drm_client.c' line='413' column='1'/>
+        <parameter type-id='19c2251e' name='format' filepath='drivers/gpu/drm/drm_client.c' line='413' column='1'/>
+        <return type-id='b78e1fbb'/>
+      </function-decl>
+      <function-decl name='drm_client_framebuffer_delete' mangled-name='drm_client_framebuffer_delete' filepath='drivers/gpu/drm/drm_client.c' line='436' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_client_framebuffer_delete'>
+        <parameter type-id='b78e1fbb' name='buffer' filepath='drivers/gpu/drm/drm_client.c' line='436' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_client_init' mangled-name='drm_client_init' filepath='drivers/gpu/drm/drm_client.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_client_init'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_client.c' line='79' column='1'/>
+        <parameter type-id='cc1804ea' name='client' filepath='drivers/gpu/drm/drm_client.c' line='79' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/gpu/drm/drm_client.c' line='80' column='1'/>
+        <parameter type-id='67ede465' name='funcs' filepath='drivers/gpu/drm/drm_client.c' line='80' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_client_modeset_commit' mangled-name='drm_client_modeset_commit' filepath='drivers/gpu/drm/drm_client_modeset.c' line='1164' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_client_modeset_commit'>
+        <parameter type-id='cc1804ea' name='client' filepath='drivers/gpu/drm/drm_client_modeset.c' line='1164' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_client_modeset_commit_locked' mangled-name='drm_client_modeset_commit_locked' filepath='drivers/gpu/drm/drm_client_modeset.c' line='1139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_client_modeset_commit_locked'>
+        <parameter type-id='cc1804ea' name='client' filepath='drivers/gpu/drm/drm_client_modeset.c' line='1139' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_client_modeset_probe' mangled-name='drm_client_modeset_probe' filepath='drivers/gpu/drm/drm_client_modeset.c' line='765' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_client_modeset_probe'>
+        <parameter type-id='cc1804ea' name='client' filepath='drivers/gpu/drm/drm_client_modeset.c' line='765' column='1'/>
+        <parameter type-id='f0981eeb' name='width' filepath='drivers/gpu/drm/drm_client_modeset.c' line='765' column='1'/>
+        <parameter type-id='f0981eeb' name='height' filepath='drivers/gpu/drm/drm_client_modeset.c' line='765' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_client_register' mangled-name='drm_client_register' filepath='drivers/gpu/drm/drm_client.c' line='126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_client_register'>
+        <parameter type-id='cc1804ea' name='client' filepath='drivers/gpu/drm/drm_client.c' line='126' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_compat_ioctl' mangled-name='drm_compat_ioctl' filepath='drivers/gpu/drm/drm_ioc32.c' line='971' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_compat_ioctl'>
+        <parameter type-id='77e79a4b' name='filp' filepath='drivers/gpu/drm/drm_ioc32.c' line='971' column='1'/>
+        <parameter type-id='f0981eeb' name='cmd' filepath='drivers/gpu/drm/drm_ioc32.c' line='971' column='1'/>
+        <parameter type-id='7359adad' name='arg' filepath='drivers/gpu/drm/drm_ioc32.c' line='971' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='drm_connector_atomic_hdr_metadata_equal' mangled-name='drm_connector_atomic_hdr_metadata_equal' filepath='drivers/gpu/drm/drm_connector.c' line='2211' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_atomic_hdr_metadata_equal'>
+        <parameter type-id='249ef586' name='old_state' filepath='drivers/gpu/drm/drm_connector.c' line='2211' column='1'/>
+        <parameter type-id='249ef586' name='new_state' filepath='drivers/gpu/drm/drm_connector.c' line='2212' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_connector_attach_content_protection_property' mangled-name='drm_connector_attach_content_protection_property' filepath='drivers/gpu/drm/drm_hdcp.c' line='357' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_content_protection_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_hdcp.c' line='358' column='1'/>
+        <parameter type-id='b50a4934' name='hdcp_content_type' filepath='drivers/gpu/drm/drm_hdcp.c' line='358' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_connector_attach_content_type_property' mangled-name='drm_connector_attach_content_type_property' filepath='drivers/gpu/drm/drm_connector.c' line='1396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_content_type_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1396' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_connector_attach_dp_subconnector_property' mangled-name='drm_connector_attach_dp_subconnector_property' filepath='drivers/gpu/drm/drm_connector.c' line='1346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_dp_subconnector_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1346' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_connector_attach_edid_property' mangled-name='drm_connector_attach_edid_property' filepath='drivers/gpu/drm/drm_connector.c' line='370' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_edid_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='370' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_connector_attach_encoder' mangled-name='drm_connector_attach_encoder' filepath='drivers/gpu/drm/drm_connector.c' line='392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_encoder'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='392' column='1'/>
+        <parameter type-id='74d89ebd' name='encoder' filepath='drivers/gpu/drm/drm_connector.c' line='393' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_connector_attach_hdr_output_metadata_property' mangled-name='drm_connector_attach_hdr_output_metadata_property' filepath='drivers/gpu/drm/drm_connector.c' line='2168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_hdr_output_metadata_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2168' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_connector_attach_max_bpc_property' mangled-name='drm_connector_attach_max_bpc_property' filepath='drivers/gpu/drm/drm_connector.c' line='2135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_max_bpc_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2135' column='1'/>
+        <parameter type-id='95e97e5e' name='min' filepath='drivers/gpu/drm/drm_connector.c' line='2136' column='1'/>
+        <parameter type-id='95e97e5e' name='max' filepath='drivers/gpu/drm/drm_connector.c' line='2136' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_connector_attach_vrr_capable_property' mangled-name='drm_connector_attach_vrr_capable_property' filepath='drivers/gpu/drm/drm_connector.c' line='1702' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_vrr_capable_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1703' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_connector_cleanup' mangled-name='drm_connector_cleanup' filepath='drivers/gpu/drm/drm_connector.c' line='444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_cleanup'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='444' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_connector_has_possible_encoder' mangled-name='drm_connector_has_possible_encoder' filepath='drivers/gpu/drm/drm_connector.c' line='424' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_has_possible_encoder'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='424' column='1'/>
+        <parameter type-id='74d89ebd' name='encoder' filepath='drivers/gpu/drm/drm_connector.c' line='425' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_connector_init' mangled-name='drm_connector_init' filepath='drivers/gpu/drm/drm_connector.c' line='219' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_init'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_connector.c' line='219' column='1'/>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='220' column='1'/>
+        <parameter type-id='3fb29739' name='funcs' filepath='drivers/gpu/drm/drm_connector.c' line='221' column='1'/>
+        <parameter type-id='95e97e5e' name='connector_type' filepath='drivers/gpu/drm/drm_connector.c' line='222' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_connector_init_with_ddc' mangled-name='drm_connector_init_with_ddc' filepath='drivers/gpu/drm/drm_connector.c' line='343' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_init_with_ddc'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_connector.c' line='343' column='1'/>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='344' column='1'/>
+        <parameter type-id='3fb29739' name='funcs' filepath='drivers/gpu/drm/drm_connector.c' line='345' column='1'/>
+        <parameter type-id='95e97e5e' name='connector_type' filepath='drivers/gpu/drm/drm_connector.c' line='346' column='1'/>
+        <parameter type-id='b9af02c3' name='ddc' filepath='drivers/gpu/drm/drm_connector.c' line='347' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_connector_list_iter_begin' mangled-name='drm_connector_list_iter_begin' filepath='drivers/gpu/drm/drm_connector.c' line='663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_list_iter_begin'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_connector.c' line='663' column='1'/>
+        <parameter type-id='40a902ec' name='iter' filepath='drivers/gpu/drm/drm_connector.c' line='664' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_connector_list_iter_end' mangled-name='drm_connector_list_iter_end' filepath='drivers/gpu/drm/drm_connector.c' line='738' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_list_iter_end'>
+        <parameter type-id='40a902ec' name='iter' filepath='drivers/gpu/drm/drm_connector.c' line='738' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_connector_list_iter_next' mangled-name='drm_connector_list_iter_next' filepath='drivers/gpu/drm/drm_connector.c' line='699' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_list_iter_next'>
+        <parameter type-id='40a902ec' name='iter' filepath='drivers/gpu/drm/drm_connector.c' line='699' column='1'/>
+        <return type-id='4db02c58'/>
+      </function-decl>
+      <function-decl name='drm_connector_list_update' mangled-name='drm_connector_list_update' filepath='drivers/gpu/drm/drm_modes.c' line='1334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_list_update'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_modes.c' line='1334' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_connector_register' mangled-name='drm_connector_register' filepath='drivers/gpu/drm/drm_connector.c' line='508' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_register'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='508' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_connector_set_panel_orientation' mangled-name='drm_connector_set_panel_orientation' filepath='drivers/gpu/drm/drm_connector.c' line='2266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_set_panel_orientation'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2267' column='1'/>
+        <parameter type-id='59f3d325' name='panel_orientation' filepath='drivers/gpu/drm/drm_connector.c' line='2268' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_connector_set_path_property' mangled-name='drm_connector_set_path_property' filepath='drivers/gpu/drm/drm_connector.c' line='1959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_set_path_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1959' column='1'/>
+        <parameter type-id='80f4b756' name='path' filepath='drivers/gpu/drm/drm_connector.c' line='1960' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_connector_set_vrr_capable_property' mangled-name='drm_connector_set_vrr_capable_property' filepath='drivers/gpu/drm/drm_connector.c' line='2236' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_set_vrr_capable_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2237' column='1'/>
+        <parameter type-id='b50a4934' name='capable' filepath='drivers/gpu/drm/drm_connector.c' line='2237' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_connector_unregister' mangled-name='drm_connector_unregister' filepath='drivers/gpu/drm/drm_connector.c' line='558' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_unregister'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='558' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_connector_update_edid_property' mangled-name='drm_connector_update_edid_property' filepath='drivers/gpu/drm/drm_connector.c' line='2034' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_update_edid_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2034' column='1'/>
+        <parameter type-id='776adf76' name='edid' filepath='drivers/gpu/drm/drm_connector.c' line='2035' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_crtc_accurate_vblank_count' mangled-name='drm_crtc_accurate_vblank_count' filepath='drivers/gpu/drm/drm_vblank.c' line='403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_accurate_vblank_count'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_vblank.c' line='403' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='drm_crtc_add_crc_entry' mangled-name='drm_crtc_add_crc_entry' filepath='drivers/gpu/drm/drm_debugfs_crc.c' line='393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_add_crc_entry'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_debugfs_crc.c' line='393' column='1'/>
+        <parameter type-id='b50a4934' name='has_frame' filepath='drivers/gpu/drm/drm_debugfs_crc.c' line='393' column='1'/>
+        <parameter type-id='8f92235e' name='frame' filepath='drivers/gpu/drm/drm_debugfs_crc.c' line='394' column='1'/>
+        <parameter type-id='90421557' name='crcs' filepath='drivers/gpu/drm/drm_debugfs_crc.c' line='394' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_crtc_arm_vblank_event' mangled-name='drm_crtc_arm_vblank_event' filepath='drivers/gpu/drm/drm_vblank.c' line='1057' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_arm_vblank_event'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_vblank.c' line='1057' column='1'/>
+        <parameter type-id='6301fad2' name='e' filepath='drivers/gpu/drm/drm_vblank.c' line='1058' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_crtc_cleanup' mangled-name='drm_crtc_cleanup' filepath='drivers/gpu/drm/drm_crtc.c' line='424' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_cleanup'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_crtc.c' line='424' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_crtc_enable_color_mgmt' mangled-name='drm_crtc_enable_color_mgmt' filepath='drivers/gpu/drm/drm_color_mgmt.c' line='160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_enable_color_mgmt'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_color_mgmt.c' line='160' column='1'/>
+        <parameter type-id='6e160b14' name='degamma_lut_size' filepath='drivers/gpu/drm/drm_color_mgmt.c' line='161' column='1'/>
+        <parameter type-id='b50a4934' name='has_ctm' filepath='drivers/gpu/drm/drm_color_mgmt.c' line='162' column='1'/>
+        <parameter type-id='6e160b14' name='gamma_lut_size' filepath='drivers/gpu/drm/drm_color_mgmt.c' line='163' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_crtc_from_index' mangled-name='drm_crtc_from_index' filepath='drivers/gpu/drm/drm_crtc.c' line='85' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_from_index'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_crtc.c' line='85' column='1'/>
+        <parameter type-id='95e97e5e' name='idx' filepath='drivers/gpu/drm/drm_crtc.c' line='85' column='1'/>
+        <return type-id='b64ad7cb'/>
+      </function-decl>
+      <function-decl name='drm_crtc_handle_vblank' mangled-name='drm_crtc_handle_vblank' filepath='drivers/gpu/drm/drm_vblank.c' line='2007' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_handle_vblank'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_vblank.c' line='2007' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_crtc_helper_set_config' mangled-name='drm_crtc_helper_set_config' filepath='drivers/gpu/drm/drm_crtc_helper.c' line='516' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_helper_set_config'>
+        <parameter type-id='8106240b' name='set' filepath='drivers/gpu/drm/drm_crtc_helper.c' line='516' column='1'/>
+        <parameter type-id='d1499e71' name='ctx' filepath='drivers/gpu/drm/drm_crtc_helper.c' line='517' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_crtc_helper_set_mode' mangled-name='drm_crtc_helper_set_mode' filepath='drivers/gpu/drm/drm_crtc_helper.c' line='271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_helper_set_mode'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_crtc_helper.c' line='271' column='1'/>
+        <parameter type-id='11e02f83' name='mode' filepath='drivers/gpu/drm/drm_crtc_helper.c' line='272' column='1'/>
+        <parameter type-id='95e97e5e' name='x' filepath='drivers/gpu/drm/drm_crtc_helper.c' line='273' column='1'/>
+        <parameter type-id='95e97e5e' name='y' filepath='drivers/gpu/drm/drm_crtc_helper.c' line='273' column='1'/>
+        <parameter type-id='7b332e1c' name='old_fb' filepath='drivers/gpu/drm/drm_crtc_helper.c' line='274' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_crtc_init' mangled-name='drm_crtc_init' filepath='drivers/gpu/drm/drm_modeset_helper.c' line='169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_init'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_modeset_helper.c' line='169' column='1'/>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_modeset_helper.c' line='169' column='1'/>
+        <parameter type-id='7236c5c8' name='funcs' filepath='drivers/gpu/drm/drm_modeset_helper.c' line='170' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_crtc_init_with_planes' mangled-name='drm_crtc_init_with_planes' filepath='drivers/gpu/drm/drm_crtc.c' line='351' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_init_with_planes'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_crtc.c' line='351' column='1'/>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_crtc.c' line='351' column='1'/>
+        <parameter type-id='a6711537' name='primary' filepath='drivers/gpu/drm/drm_crtc.c' line='352' column='1'/>
+        <parameter type-id='a6711537' name='cursor' filepath='drivers/gpu/drm/drm_crtc.c' line='353' column='1'/>
+        <parameter type-id='7236c5c8' name='funcs' filepath='drivers/gpu/drm/drm_crtc.c' line='354' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/gpu/drm/drm_crtc.c' line='355' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_crtc_send_vblank_event' mangled-name='drm_crtc_send_vblank_event' filepath='drivers/gpu/drm/drm_vblank.c' line='1082' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_send_vblank_event'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_vblank.c' line='1082' column='1'/>
+        <parameter type-id='6301fad2' name='e' filepath='drivers/gpu/drm/drm_vblank.c' line='1083' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_crtc_set_max_vblank_count' mangled-name='drm_crtc_set_max_vblank_count' filepath='drivers/gpu/drm/drm_vblank.c' line='1418' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_set_max_vblank_count'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_vblank.c' line='1418' column='1'/>
+        <parameter type-id='19c2251e' name='max_vblank_count' filepath='drivers/gpu/drm/drm_vblank.c' line='1419' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_crtc_vblank_count' mangled-name='drm_crtc_vblank_count' filepath='drivers/gpu/drm/drm_vblank.c' line='915' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_vblank_count'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_vblank.c' line='915' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='drm_crtc_vblank_count_and_time' mangled-name='drm_crtc_vblank_count_and_time' filepath='drivers/gpu/drm/drm_vblank.c' line='975' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_vblank_count_and_time'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_vblank.c' line='975' column='1'/>
+        <parameter type-id='44372936' name='vblanktime' filepath='drivers/gpu/drm/drm_vblank.c' line='976' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='drm_crtc_vblank_get' mangled-name='drm_crtc_vblank_get' filepath='drivers/gpu/drm/drm_vblank.c' line='1197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_vblank_get'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_vblank.c' line='1197' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_crtc_vblank_helper_get_vblank_timestamp' mangled-name='drm_crtc_vblank_helper_get_vblank_timestamp' filepath='drivers/gpu/drm/drm_vblank.c' line='835' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_vblank_helper_get_vblank_timestamp'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_vblank.c' line='835' column='1'/>
+        <parameter type-id='7292109c' name='max_error' filepath='drivers/gpu/drm/drm_vblank.c' line='836' column='1'/>
+        <parameter type-id='44372936' name='vblank_time' filepath='drivers/gpu/drm/drm_vblank.c' line='837' column='1'/>
+        <parameter type-id='b50a4934' name='in_vblank_irq' filepath='drivers/gpu/drm/drm_vblank.c' line='838' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_crtc_vblank_off' mangled-name='drm_crtc_vblank_off' filepath='drivers/gpu/drm/drm_vblank.c' line='1300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_vblank_off'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_vblank.c' line='1300' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_crtc_vblank_on' mangled-name='drm_crtc_vblank_on' filepath='drivers/gpu/drm/drm_vblank.c' line='1442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_vblank_on'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_vblank.c' line='1442' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_crtc_vblank_put' mangled-name='drm_crtc_vblank_put' filepath='drivers/gpu/drm/drm_vblank.c' line='1232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_vblank_put'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_vblank.c' line='1232' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_crtc_vblank_reset' mangled-name='drm_crtc_vblank_reset' filepath='drivers/gpu/drm/drm_vblank.c' line='1379' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_vblank_reset'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_vblank.c' line='1379' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_crtc_vblank_waitqueue' mangled-name='drm_crtc_vblank_waitqueue' filepath='drivers/gpu/drm/drm_vblank.c' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_vblank_waitqueue'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_vblank.c' line='590' column='1'/>
+        <return type-id='03d48e96'/>
+      </function-decl>
+      <function-decl name='drm_crtc_wait_one_vblank' mangled-name='drm_crtc_wait_one_vblank' filepath='drivers/gpu/drm/drm_vblank.c' line='1283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_wait_one_vblank'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_vblank.c' line='1283' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_cvt_mode' mangled-name='drm_cvt_mode' filepath='drivers/gpu/drm/drm_modes.c' line='140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_cvt_mode'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_modes.c' line='140' column='1'/>
+        <parameter type-id='95e97e5e' name='hdisplay' filepath='drivers/gpu/drm/drm_modes.c' line='140' column='1'/>
+        <parameter type-id='95e97e5e' name='vdisplay' filepath='drivers/gpu/drm/drm_modes.c' line='141' column='1'/>
+        <parameter type-id='95e97e5e' name='vrefresh' filepath='drivers/gpu/drm/drm_modes.c' line='141' column='1'/>
+        <parameter type-id='b50a4934' name='reduced' filepath='drivers/gpu/drm/drm_modes.c' line='142' column='1'/>
+        <parameter type-id='b50a4934' name='interlaced' filepath='drivers/gpu/drm/drm_modes.c' line='142' column='1'/>
+        <parameter type-id='b50a4934' name='margins' filepath='drivers/gpu/drm/drm_modes.c' line='142' column='1'/>
+        <return type-id='11e02f83'/>
+      </function-decl>
+      <function-decl name='drm_debugfs_create_files' mangled-name='drm_debugfs_create_files' filepath='drivers/gpu/drm/drm_debugfs.c' line='176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_debugfs_create_files'>
+        <parameter type-id='09894807' name='files' filepath='drivers/gpu/drm/drm_debugfs.c' line='176' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='drivers/gpu/drm/drm_debugfs.c' line='176' column='1'/>
+        <parameter type-id='27675065' name='root' filepath='drivers/gpu/drm/drm_debugfs.c' line='177' column='1'/>
+        <parameter type-id='6c3b3f8e' name='minor' filepath='drivers/gpu/drm/drm_debugfs.c' line='177' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_default_rgb_quant_range' mangled-name='drm_default_rgb_quant_range' filepath='drivers/gpu/drm/drm_edid.c' line='4815' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_default_rgb_quant_range'>
+        <parameter type-id='745b39e8' name='mode' filepath='drivers/gpu/drm/drm_edid.c' line='4815' column='1'/>
+        <return type-id='5c444b2c'/>
+      </function-decl>
+      <function-decl name='drm_detect_hdmi_monitor' mangled-name='drm_detect_hdmi_monitor' filepath='drivers/gpu/drm/drm_edid.c' line='4730' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_detect_hdmi_monitor'>
+        <parameter type-id='c91d1bf1' name='edid' filepath='drivers/gpu/drm/drm_edid.c' line='4730' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_detect_monitor_audio' mangled-name='drm_detect_monitor_audio' filepath='drivers/gpu/drm/drm_edid.c' line='4768' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_detect_monitor_audio'>
+        <parameter type-id='c91d1bf1' name='edid' filepath='drivers/gpu/drm/drm_edid.c' line='4768' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_dev_alloc' mangled-name='drm_dev_alloc' filepath='drivers/gpu/drm/drm_drv.c' line='721' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dev_alloc'>
+        <parameter type-id='b4e725f2' name='driver' filepath='drivers/gpu/drm/drm_drv.c' line='721' column='1'/>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/gpu/drm/drm_drv.c' line='722' column='1'/>
+        <return type-id='8898134d'/>
+      </function-decl>
+      <function-decl name='drm_dev_dbg' mangled-name='drm_dev_dbg' filepath='drivers/gpu/drm/drm_print.c' line='259' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dev_dbg'>
+        <parameter type-id='8df61054' name='dev' filepath='drivers/gpu/drm/drm_print.c' line='259' column='1'/>
+        <parameter type-id='189697ba' name='category' filepath='drivers/gpu/drm/drm_print.c' line='259' column='1'/>
+        <parameter type-id='80f4b756' name='format' filepath='drivers/gpu/drm/drm_print.c' line='260' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_dev_enter' mangled-name='drm_dev_enter' filepath='drivers/gpu/drm/drm_drv.c' line='425' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dev_enter'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_drv.c' line='425' column='1'/>
+        <parameter type-id='7292109c' name='idx' filepath='drivers/gpu/drm/drm_drv.c' line='425' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_dev_exit' mangled-name='drm_dev_exit' filepath='drivers/gpu/drm/drm_drv.c' line='445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dev_exit'>
+        <parameter type-id='95e97e5e' name='idx' filepath='drivers/gpu/drm/drm_drv.c' line='445' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_dev_get' mangled-name='drm_dev_get' filepath='drivers/gpu/drm/drm_drv.c' line='767' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dev_get'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_drv.c' line='767' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_dev_printk' mangled-name='drm_dev_printk' filepath='drivers/gpu/drm/drm_print.c' line='238' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dev_printk'>
+        <parameter type-id='8df61054' name='dev' filepath='drivers/gpu/drm/drm_print.c' line='238' column='1'/>
+        <parameter type-id='80f4b756' name='level' filepath='drivers/gpu/drm/drm_print.c' line='238' column='1'/>
+        <parameter type-id='80f4b756' name='format' filepath='drivers/gpu/drm/drm_print.c' line='239' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_dev_put' mangled-name='drm_dev_put' filepath='drivers/gpu/drm/drm_drv.c' line='781' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dev_put'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_drv.c' line='781' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_dev_register' mangled-name='drm_dev_register' filepath='drivers/gpu/drm/drm_drv.c' line='864' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dev_register'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_drv.c' line='864' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/gpu/drm/drm_drv.c' line='864' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dev_set_unique' mangled-name='drm_dev_set_unique' filepath='drivers/gpu/drm/drm_drv.c' line='968' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dev_set_unique'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_drv.c' line='968' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/gpu/drm/drm_drv.c' line='968' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dev_unplug' mangled-name='drm_dev_unplug' filepath='drivers/gpu/drm/drm_drv.c' line='461' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dev_unplug'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_drv.c' line='461' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_dev_unregister' mangled-name='drm_dev_unregister' filepath='drivers/gpu/drm/drm_drv.c' line='933' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dev_unregister'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_drv.c' line='933' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_display_info_set_bus_formats' mangled-name='drm_display_info_set_bus_formats' filepath='drivers/gpu/drm/drm_connector.c' line='798' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_display_info_set_bus_formats'>
+        <parameter type-id='939a8d9a' name='info' filepath='drivers/gpu/drm/drm_connector.c' line='798' column='1'/>
+        <parameter type-id='aded214c' name='formats' filepath='drivers/gpu/drm/drm_connector.c' line='799' column='1'/>
+        <parameter type-id='f0981eeb' name='num_formats' filepath='drivers/gpu/drm/drm_connector.c' line='800' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_display_mode_from_videomode' mangled-name='drm_display_mode_from_videomode' filepath='drivers/gpu/drm/drm_modes.c' line='588' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_display_mode_from_videomode'>
+        <parameter type-id='8640fd9e' name='vm' filepath='drivers/gpu/drm/drm_modes.c' line='588' column='1'/>
+        <parameter type-id='11e02f83' name='dmode' filepath='drivers/gpu/drm/drm_modes.c' line='589' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_display_mode_to_videomode' mangled-name='drm_display_mode_to_videomode' filepath='drivers/gpu/drm/drm_modes.c' line='629' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_display_mode_to_videomode'>
+        <parameter type-id='745b39e8' name='dmode' filepath='drivers/gpu/drm/drm_modes.c' line='629' column='1'/>
+        <parameter type-id='83e7c23f' name='vm' filepath='drivers/gpu/drm/drm_modes.c' line='630' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_do_get_edid' mangled-name='drm_do_get_edid' filepath='drivers/gpu/drm/drm_edid.c' line='1937' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_do_get_edid'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_edid.c' line='1937' column='1'/>
+        <parameter type-id='e879a339' name='get_edid_block' filepath='drivers/gpu/drm/drm_edid.c' line='1938' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/gpu/drm/drm_edid.c' line='1940' column='1'/>
+        <return type-id='c91d1bf1'/>
+      </function-decl>
+      <function-decl name='drm_dp_atomic_find_vcpi_slots' mangled-name='drm_dp_atomic_find_vcpi_slots' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4383' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_atomic_find_vcpi_slots'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4383' column='1'/>
+        <parameter type-id='88a6d23d' name='mgr' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4384' column='1'/>
+        <parameter type-id='c45d1018' name='port' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4385' column='1'/>
+        <parameter type-id='95e97e5e' name='pbn' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4385' column='1'/>
+        <parameter type-id='95e97e5e' name='pbn_div' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4386' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dp_atomic_release_vcpi_slots' mangled-name='drm_dp_atomic_release_vcpi_slots' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4478' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_atomic_release_vcpi_slots'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4478' column='1'/>
+        <parameter type-id='88a6d23d' name='mgr' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4479' column='1'/>
+        <parameter type-id='c45d1018' name='port' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4480' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dp_aux_init' mangled-name='drm_dp_aux_init' filepath='drivers/gpu/drm/drm_dp_helper.c' line='1759' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_aux_init'>
+        <parameter type-id='7c5f8cd8' name='aux' filepath='drivers/gpu/drm/drm_dp_helper.c' line='1759' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_dp_aux_register' mangled-name='drm_dp_aux_register' filepath='drivers/gpu/drm/drm_dp_helper.c' line='1800' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_aux_register'>
+        <parameter type-id='7c5f8cd8' name='aux' filepath='drivers/gpu/drm/drm_dp_helper.c' line='1800' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dp_aux_unregister' mangled-name='drm_dp_aux_unregister' filepath='drivers/gpu/drm/drm_dp_helper.c' line='1834' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_aux_unregister'>
+        <parameter type-id='7c5f8cd8' name='aux' filepath='drivers/gpu/drm/drm_dp_helper.c' line='1834' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_dp_bw_code_to_link_rate' mangled-name='drm_dp_bw_code_to_link_rate' filepath='drivers/gpu/drm/drm_dp_helper.c' line='215' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_bw_code_to_link_rate'>
+        <parameter type-id='f9b06939' name='link_bw' filepath='drivers/gpu/drm/drm_dp_helper.c' line='215' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dp_calc_pbn_mode' mangled-name='drm_dp_calc_pbn_mode' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4729' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_calc_pbn_mode'>
+        <parameter type-id='95e97e5e' name='clock' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4729' column='1'/>
+        <parameter type-id='95e97e5e' name='bpp' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4729' column='1'/>
+        <parameter type-id='b50a4934' name='dsc' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4729' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dp_channel_eq_ok' mangled-name='drm_dp_channel_eq_ok' filepath='drivers/gpu/drm/drm_dp_helper.c' line='72' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_channel_eq_ok'>
+        <parameter type-id='bbaf3419' name='link_status' filepath='drivers/gpu/drm/drm_dp_helper.c' line='72' column='1'/>
+        <parameter type-id='95e97e5e' name='lane_count' filepath='drivers/gpu/drm/drm_dp_helper.c' line='73' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_dp_check_act_status' mangled-name='drm_dp_check_act_status' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4690' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_check_act_status'>
+        <parameter type-id='88a6d23d' name='mgr' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4690' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dp_clock_recovery_ok' mangled-name='drm_dp_clock_recovery_ok' filepath='drivers/gpu/drm/drm_dp_helper.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_clock_recovery_ok'>
+        <parameter type-id='bbaf3419' name='link_status' filepath='drivers/gpu/drm/drm_dp_helper.c' line='92' column='1'/>
+        <parameter type-id='95e97e5e' name='lane_count' filepath='drivers/gpu/drm/drm_dp_helper.c' line='93' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_dp_downstream_debug' mangled-name='drm_dp_downstream_debug' filepath='drivers/gpu/drm/drm_dp_helper.c' line='1076' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_downstream_debug'>
+        <parameter type-id='f8dc9def' name='m' filepath='drivers/gpu/drm/drm_dp_helper.c' line='1076' column='1'/>
+        <parameter type-id='bbaf3419' name='dpcd' filepath='drivers/gpu/drm/drm_dp_helper.c' line='1077' column='1'/>
+        <parameter type-id='bbaf3419' name='port_cap' filepath='drivers/gpu/drm/drm_dp_helper.c' line='1078' column='1'/>
+        <parameter type-id='776adf76' name='edid' filepath='drivers/gpu/drm/drm_dp_helper.c' line='1079' column='1'/>
+        <parameter type-id='7c5f8cd8' name='aux' filepath='drivers/gpu/drm/drm_dp_helper.c' line='1080' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_dp_dpcd_read' mangled-name='drm_dp_dpcd_read' filepath='drivers/gpu/drm/drm_dp_helper.c' line='321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_dpcd_read'>
+        <parameter type-id='7c5f8cd8' name='aux' filepath='drivers/gpu/drm/drm_dp_helper.c' line='321' column='1'/>
+        <parameter type-id='f0981eeb' name='offset' filepath='drivers/gpu/drm/drm_dp_helper.c' line='321' column='1'/>
+        <parameter type-id='eaa32e2f' name='buffer' filepath='drivers/gpu/drm/drm_dp_helper.c' line='322' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/gpu/drm/drm_dp_helper.c' line='322' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='drm_dp_dpcd_read_link_status' mangled-name='drm_dp_dpcd_read_link_status' filepath='drivers/gpu/drm/drm_dp_helper.c' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_dpcd_read_link_status'>
+        <parameter type-id='7c5f8cd8' name='aux' filepath='drivers/gpu/drm/drm_dp_helper.c' line='395' column='1'/>
+        <parameter type-id='8bff8096' name='status' filepath='drivers/gpu/drm/drm_dp_helper.c' line='396' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dp_dpcd_write' mangled-name='drm_dp_dpcd_write' filepath='drivers/gpu/drm/drm_dp_helper.c' line='371' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_dpcd_write'>
+        <parameter type-id='7c5f8cd8' name='aux' filepath='drivers/gpu/drm/drm_dp_helper.c' line='371' column='1'/>
+        <parameter type-id='f0981eeb' name='offset' filepath='drivers/gpu/drm/drm_dp_helper.c' line='371' column='1'/>
+        <parameter type-id='eaa32e2f' name='buffer' filepath='drivers/gpu/drm/drm_dp_helper.c' line='372' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/gpu/drm/drm_dp_helper.c' line='372' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='drm_dp_dsc_sink_line_buf_depth' mangled-name='drm_dp_dsc_sink_line_buf_depth' filepath='drivers/gpu/drm/drm_dp_helper.c' line='2107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_dsc_sink_line_buf_depth'>
+        <parameter type-id='bbaf3419' name='dsc_dpcd' filepath='drivers/gpu/drm/drm_dp_helper.c' line='2107' column='1'/>
+        <return type-id='f9b06939'/>
+      </function-decl>
+      <function-decl name='drm_dp_dsc_sink_max_slice_count' mangled-name='drm_dp_dsc_sink_max_slice_count' filepath='drivers/gpu/drm/drm_dp_helper.c' line='2049' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_dsc_sink_max_slice_count'>
+        <parameter type-id='bbaf3419' name='dsc_dpcd' filepath='drivers/gpu/drm/drm_dp_helper.c' line='2049' column='1'/>
+        <parameter type-id='b50a4934' name='is_edp' filepath='drivers/gpu/drm/drm_dp_helper.c' line='2050' column='1'/>
+        <return type-id='f9b06939'/>
+      </function-decl>
+      <function-decl name='drm_dp_find_vcpi_slots' mangled-name='drm_dp_find_vcpi_slots' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4319' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_find_vcpi_slots'>
+        <parameter type-id='88a6d23d' name='mgr' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4319' column='1'/>
+        <parameter type-id='95e97e5e' name='pbn' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4320' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dp_get_adjust_request_pre_emphasis' mangled-name='drm_dp_get_adjust_request_pre_emphasis' filepath='drivers/gpu/drm/drm_dp_helper.c' line='120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_get_adjust_request_pre_emphasis'>
+        <parameter type-id='bbaf3419' name='link_status' filepath='drivers/gpu/drm/drm_dp_helper.c' line='120' column='1'/>
+        <parameter type-id='95e97e5e' name='lane' filepath='drivers/gpu/drm/drm_dp_helper.c' line='121' column='1'/>
+        <return type-id='f9b06939'/>
+      </function-decl>
+      <function-decl name='drm_dp_get_adjust_request_voltage' mangled-name='drm_dp_get_adjust_request_voltage' filepath='drivers/gpu/drm/drm_dp_helper.c' line='107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_get_adjust_request_voltage'>
+        <parameter type-id='bbaf3419' name='link_status' filepath='drivers/gpu/drm/drm_dp_helper.c' line='107' column='1'/>
+        <parameter type-id='95e97e5e' name='lane' filepath='drivers/gpu/drm/drm_dp_helper.c' line='108' column='1'/>
+        <return type-id='f9b06939'/>
+      </function-decl>
+      <function-decl name='drm_dp_link_rate_to_bw_code' mangled-name='drm_dp_link_rate_to_bw_code' filepath='drivers/gpu/drm/drm_dp_helper.c' line='208' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_link_rate_to_bw_code'>
+        <parameter type-id='95e97e5e' name='link_rate' filepath='drivers/gpu/drm/drm_dp_helper.c' line='208' column='1'/>
+        <return type-id='f9b06939'/>
+      </function-decl>
+      <function-decl name='drm_dp_link_train_channel_eq_delay' mangled-name='drm_dp_link_train_channel_eq_delay' filepath='drivers/gpu/drm/drm_dp_helper.c' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_link_train_channel_eq_delay'>
+        <parameter type-id='977bbc93' name='aux' filepath='drivers/gpu/drm/drm_dp_helper.c' line='177' column='1'/>
+        <parameter type-id='bbaf3419' name='dpcd' filepath='drivers/gpu/drm/drm_dp_helper.c' line='178' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_dp_link_train_clock_recovery_delay' mangled-name='drm_dp_link_train_clock_recovery_delay' filepath='drivers/gpu/drm/drm_dp_helper.c' line='143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_link_train_clock_recovery_delay'>
+        <parameter type-id='977bbc93' name='aux' filepath='drivers/gpu/drm/drm_dp_helper.c' line='143' column='1'/>
+        <parameter type-id='bbaf3419' name='dpcd' filepath='drivers/gpu/drm/drm_dp_helper.c' line='144' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_dp_mst_allocate_vcpi' mangled-name='drm_dp_mst_allocate_vcpi' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4520' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_mst_allocate_vcpi'>
+        <parameter type-id='88a6d23d' name='mgr' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4520' column='1'/>
+        <parameter type-id='c45d1018' name='port' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4521' column='1'/>
+        <parameter type-id='95e97e5e' name='pbn' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4521' column='1'/>
+        <parameter type-id='95e97e5e' name='slots' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4521' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_dp_mst_deallocate_vcpi' mangled-name='drm_dp_mst_deallocate_vcpi' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4600' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_mst_deallocate_vcpi'>
+        <parameter type-id='88a6d23d' name='mgr' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4600' column='1'/>
+        <parameter type-id='c45d1018' name='port' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4601' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_dp_mst_detect_port' mangled-name='drm_dp_mst_detect_port' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_mst_detect_port'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4231' column='1'/>
+        <parameter type-id='d1499e71' name='ctx' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4232' column='1'/>
+        <parameter type-id='88a6d23d' name='mgr' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4233' column='1'/>
+        <parameter type-id='c45d1018' name='port' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4234' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dp_mst_dump_topology' mangled-name='drm_dp_mst_dump_topology' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4848' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_mst_dump_topology'>
+        <parameter type-id='f8dc9def' name='m' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4848' column='1'/>
+        <parameter type-id='88a6d23d' name='mgr' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4849' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_dp_mst_get_edid' mangled-name='drm_dp_mst_get_edid' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4287' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_mst_get_edid'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4287' column='1'/>
+        <parameter type-id='88a6d23d' name='mgr' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4287' column='1'/>
+        <parameter type-id='c45d1018' name='port' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4287' column='1'/>
+        <return type-id='c91d1bf1'/>
+      </function-decl>
+      <function-decl name='drm_dp_mst_get_port_malloc' mangled-name='drm_dp_mst_get_port_malloc' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='1548' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_mst_get_port_malloc'>
+        <parameter type-id='c45d1018' name='port' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='1548' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_dp_mst_hpd_irq' mangled-name='drm_dp_mst_hpd_irq' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4194' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_mst_hpd_irq'>
+        <parameter type-id='88a6d23d' name='mgr' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4194' column='1'/>
+        <parameter type-id='8bff8096' name='esi' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4194' column='1'/>
+        <parameter type-id='d8e6b335' name='handled' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4194' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dp_mst_put_port_malloc' mangled-name='drm_dp_mst_put_port_malloc' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='1566' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_mst_put_port_malloc'>
+        <parameter type-id='c45d1018' name='port' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='1566' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_dp_mst_reset_vcpi_slots' mangled-name='drm_dp_mst_reset_vcpi_slots' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4581' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_mst_reset_vcpi_slots'>
+        <parameter type-id='88a6d23d' name='mgr' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4581' column='1'/>
+        <parameter type-id='c45d1018' name='port' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='4581' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_dp_mst_topology_mgr_destroy' mangled-name='drm_dp_mst_topology_mgr_destroy' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='5553' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_mst_topology_mgr_destroy'>
+        <parameter type-id='88a6d23d' name='mgr' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='5553' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_dp_mst_topology_mgr_init' mangled-name='drm_dp_mst_topology_mgr_init' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='5481' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_mst_topology_mgr_init'>
+        <parameter type-id='88a6d23d' name='mgr' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='5481' column='1'/>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='5482' column='1'/>
+        <parameter type-id='7c5f8cd8' name='aux' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='5482' column='1'/>
+        <parameter type-id='95e97e5e' name='max_dpcd_transaction_bytes' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='5483' column='1'/>
+        <parameter type-id='95e97e5e' name='max_payloads' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='5483' column='1'/>
+        <parameter type-id='95e97e5e' name='max_lane_count' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='5484' column='1'/>
+        <parameter type-id='95e97e5e' name='max_link_rate' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='5484' column='1'/>
+        <parameter type-id='95e97e5e' name='conn_base_id' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='5485' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dp_mst_topology_mgr_set_mst' mangled-name='drm_dp_mst_topology_mgr_set_mst' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='3706' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_mst_topology_mgr_set_mst'>
+        <parameter type-id='88a6d23d' name='mgr' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='3706' column='1'/>
+        <parameter type-id='b50a4934' name='mst_state' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='3706' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dp_read_dpcd_caps' mangled-name='drm_dp_read_dpcd_caps' filepath='drivers/gpu/drm/drm_dp_helper.c' line='644' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_read_dpcd_caps'>
+        <parameter type-id='7c5f8cd8' name='aux' filepath='drivers/gpu/drm/drm_dp_helper.c' line='644' column='1'/>
+        <parameter type-id='8bff8096' name='dpcd' filepath='drivers/gpu/drm/drm_dp_helper.c' line='645' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dp_read_sink_count' mangled-name='drm_dp_read_sink_count' filepath='drivers/gpu/drm/drm_dp_helper.c' line='1267' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_read_sink_count'>
+        <parameter type-id='7c5f8cd8' name='aux' filepath='drivers/gpu/drm/drm_dp_helper.c' line='1267' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dp_send_power_updown_phy' mangled-name='drm_dp_send_power_updown_phy' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='3217' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_send_power_updown_phy'>
+        <parameter type-id='88a6d23d' name='mgr' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='3217' column='1'/>
+        <parameter type-id='c45d1018' name='port' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='3218' column='1'/>
+        <parameter type-id='b50a4934' name='power_up' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='3218' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dp_set_subconnector_property' mangled-name='drm_dp_set_subconnector_property' filepath='drivers/gpu/drm/drm_dp_helper.c' line='1219' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_set_subconnector_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_dp_helper.c' line='1219' column='1'/>
+        <parameter type-id='f7b0e1b4' name='status' filepath='drivers/gpu/drm/drm_dp_helper.c' line='1220' column='1'/>
+        <parameter type-id='bbaf3419' name='dpcd' filepath='drivers/gpu/drm/drm_dp_helper.c' line='1221' column='1'/>
+        <parameter type-id='bbaf3419' name='port_cap' filepath='drivers/gpu/drm/drm_dp_helper.c' line='1222' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_dp_update_payload_part1' mangled-name='drm_dp_update_payload_part1' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='3368' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_update_payload_part1'>
+        <parameter type-id='88a6d23d' name='mgr' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='3368' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dp_update_payload_part2' mangled-name='drm_dp_update_payload_part2' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='3494' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dp_update_payload_part2'>
+        <parameter type-id='88a6d23d' name='mgr' filepath='drivers/gpu/drm/drm_dp_mst_topology.c' line='3494' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dsc_compute_rc_parameters' mangled-name='drm_dsc_compute_rc_parameters' filepath='drivers/gpu/drm/drm_dsc.c' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dsc_compute_rc_parameters'>
+        <parameter type-id='b21554fc' name='vdsc_cfg' filepath='drivers/gpu/drm/drm_dsc.c' line='282' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_dsc_pps_payload_pack' mangled-name='drm_dsc_pps_payload_pack' filepath='drivers/gpu/drm/drm_dsc.c' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dsc_pps_payload_pack'>
+        <parameter type-id='fe3087c9' name='pps_payload' filepath='drivers/gpu/drm/drm_dsc.c' line='96' column='1'/>
+        <parameter type-id='fb7c1d0f' name='dsc_cfg' filepath='drivers/gpu/drm/drm_dsc.c' line='97' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_edid_block_valid' mangled-name='drm_edid_block_valid' filepath='drivers/gpu/drm/drm_edid.c' line='1660' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_edid_block_valid'>
+        <parameter type-id='8bff8096' name='raw_edid' filepath='drivers/gpu/drm/drm_edid.c' line='1660' column='1'/>
+        <parameter type-id='95e97e5e' name='block' filepath='drivers/gpu/drm/drm_edid.c' line='1660' column='1'/>
+        <parameter type-id='b50a4934' name='print_bad_edid' filepath='drivers/gpu/drm/drm_edid.c' line='1660' column='1'/>
+        <parameter type-id='d8e6b335' name='edid_corrupt' filepath='drivers/gpu/drm/drm_edid.c' line='1661' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_edid_duplicate' mangled-name='drm_edid_duplicate' filepath='drivers/gpu/drm/drm_edid.c' line='2107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_edid_duplicate'>
+        <parameter type-id='776adf76' name='edid' filepath='drivers/gpu/drm/drm_edid.c' line='2107' column='1'/>
+        <return type-id='c91d1bf1'/>
+      </function-decl>
+      <function-decl name='drm_edid_get_monitor_name' mangled-name='drm_edid_get_monitor_name' filepath='drivers/gpu/drm/drm_edid.c' line='4443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_edid_get_monitor_name'>
+        <parameter type-id='c91d1bf1' name='edid' filepath='drivers/gpu/drm/drm_edid.c' line='4443' column='1'/>
+        <parameter type-id='26a90f95' name='name' filepath='drivers/gpu/drm/drm_edid.c' line='4443' column='1'/>
+        <parameter type-id='95e97e5e' name='bufsize' filepath='drivers/gpu/drm/drm_edid.c' line='4443' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_edid_header_is_valid' mangled-name='drm_edid_header_is_valid' filepath='drivers/gpu/drm/drm_edid.c' line='1571' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_edid_header_is_valid'>
+        <parameter type-id='bbaf3419' name='raw_edid' filepath='drivers/gpu/drm/drm_edid.c' line='1571' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_edid_is_valid' mangled-name='drm_edid_is_valid' filepath='drivers/gpu/drm/drm_edid.c' line='1753' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_edid_is_valid'>
+        <parameter type-id='c91d1bf1' name='edid' filepath='drivers/gpu/drm/drm_edid.c' line='1753' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_edid_to_sad' mangled-name='drm_edid_to_sad' filepath='drivers/gpu/drm/drm_edid.c' line='4573' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_edid_to_sad'>
+        <parameter type-id='c91d1bf1' name='edid' filepath='drivers/gpu/drm/drm_edid.c' line='4573' column='1'/>
+        <parameter type-id='3ce232db' name='sads' filepath='drivers/gpu/drm/drm_edid.c' line='4573' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_edid_to_speaker_allocation' mangled-name='drm_edid_to_speaker_allocation' filepath='drivers/gpu/drm/drm_edid.c' line='4635' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_edid_to_speaker_allocation'>
+        <parameter type-id='c91d1bf1' name='edid' filepath='drivers/gpu/drm/drm_edid.c' line='4635' column='1'/>
+        <parameter type-id='1f37a7f4' name='sadb' filepath='drivers/gpu/drm/drm_edid.c' line='4635' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_encoder_cleanup' mangled-name='drm_encoder_cleanup' filepath='drivers/gpu/drm/drm_encoder.c' line='182' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_encoder_cleanup'>
+        <parameter type-id='74d89ebd' name='encoder' filepath='drivers/gpu/drm/drm_encoder.c' line='182' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_encoder_init' mangled-name='drm_encoder_init' filepath='drivers/gpu/drm/drm_encoder.c' line='158' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_encoder_init'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_encoder.c' line='158' column='1'/>
+        <parameter type-id='74d89ebd' name='encoder' filepath='drivers/gpu/drm/drm_encoder.c' line='159' column='1'/>
+        <parameter type-id='1701f1ac' name='funcs' filepath='drivers/gpu/drm/drm_encoder.c' line='160' column='1'/>
+        <parameter type-id='95e97e5e' name='encoder_type' filepath='drivers/gpu/drm/drm_encoder.c' line='161' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/gpu/drm/drm_encoder.c' line='161' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_event_cancel_free' mangled-name='drm_event_cancel_free' filepath='drivers/gpu/drm/drm_file.c' line='759' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_event_cancel_free'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_file.c' line='759' column='1'/>
+        <parameter type-id='16ab0351' name='p' filepath='drivers/gpu/drm/drm_file.c' line='760' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_event_reserve_init' mangled-name='drm_event_reserve_init' filepath='drivers/gpu/drm/drm_file.c' line='734' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_event_reserve_init'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_file.c' line='734' column='1'/>
+        <parameter type-id='9e99ecc1' name='file_priv' filepath='drivers/gpu/drm/drm_file.c' line='735' column='1'/>
+        <parameter type-id='16ab0351' name='p' filepath='drivers/gpu/drm/drm_file.c' line='736' column='1'/>
+        <parameter type-id='5b35aab5' name='e' filepath='drivers/gpu/drm/drm_file.c' line='737' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_event_reserve_init_locked' mangled-name='drm_event_reserve_init_locked' filepath='drivers/gpu/drm/drm_file.c' line='692' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_event_reserve_init_locked'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_file.c' line='692' column='1'/>
+        <parameter type-id='9e99ecc1' name='file_priv' filepath='drivers/gpu/drm/drm_file.c' line='693' column='1'/>
+        <parameter type-id='16ab0351' name='p' filepath='drivers/gpu/drm/drm_file.c' line='694' column='1'/>
+        <parameter type-id='5b35aab5' name='e' filepath='drivers/gpu/drm/drm_file.c' line='695' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_fb_cma_get_gem_addr' mangled-name='drm_fb_cma_get_gem_addr' filepath='drivers/gpu/drm/drm_fb_cma_helper.c' line='65' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_fb_cma_get_gem_addr'>
+        <parameter type-id='7b332e1c' name='fb' filepath='drivers/gpu/drm/drm_fb_cma_helper.c' line='65' column='1'/>
+        <parameter type-id='d0835005' name='state' filepath='drivers/gpu/drm/drm_fb_cma_helper.c' line='66' column='1'/>
+        <parameter type-id='f0981eeb' name='plane' filepath='drivers/gpu/drm/drm_fb_cma_helper.c' line='67' column='1'/>
+        <return type-id='cf29c9b3'/>
+      </function-decl>
+      <function-decl name='drm_fb_cma_get_gem_obj' mangled-name='drm_fb_cma_get_gem_obj' filepath='drivers/gpu/drm/drm_fb_cma_helper.c' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_fb_cma_get_gem_obj'>
+        <parameter type-id='7b332e1c' name='fb' filepath='drivers/gpu/drm/drm_fb_cma_helper.c' line='41' column='1'/>
+        <parameter type-id='f0981eeb' name='plane' filepath='drivers/gpu/drm/drm_fb_cma_helper.c' line='42' column='1'/>
+        <return type-id='faa9576a'/>
+      </function-decl>
+      <function-decl name='drm_flip_work_cleanup' mangled-name='drm_flip_work_cleanup' filepath='drivers/gpu/drm/drm_flip_work.c' line='166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_flip_work_cleanup'>
+        <parameter type-id='705eaeca' name='work' filepath='drivers/gpu/drm/drm_flip_work.c' line='166' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_flip_work_commit' mangled-name='drm_flip_work_commit' filepath='drivers/gpu/drm/drm_flip_work.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_flip_work_commit'>
+        <parameter type-id='705eaeca' name='work' filepath='drivers/gpu/drm/drm_flip_work.c' line='101' column='1'/>
+        <parameter type-id='242e3d19' name='wq' filepath='drivers/gpu/drm/drm_flip_work.c' line='102' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_flip_work_init' mangled-name='drm_flip_work_init' filepath='drivers/gpu/drm/drm_flip_work.c' line='147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_flip_work_init'>
+        <parameter type-id='705eaeca' name='work' filepath='drivers/gpu/drm/drm_flip_work.c' line='147' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/gpu/drm/drm_flip_work.c' line='148' column='1'/>
+        <parameter type-id='12758247' name='func' filepath='drivers/gpu/drm/drm_flip_work.c' line='148' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_flip_work_queue' mangled-name='drm_flip_work_queue' filepath='drivers/gpu/drm/drm_flip_work.c' line='76' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_flip_work_queue'>
+        <parameter type-id='705eaeca' name='work' filepath='drivers/gpu/drm/drm_flip_work.c' line='76' column='1'/>
+        <parameter type-id='eaa32e2f' name='val' filepath='drivers/gpu/drm/drm_flip_work.c' line='76' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_format_info' mangled-name='drm_format_info' filepath='drivers/gpu/drm/drm_fourcc.c' line='299' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_format_info'>
+        <parameter type-id='19c2251e' name='format' filepath='drivers/gpu/drm/drm_fourcc.c' line='299' column='1'/>
+        <return type-id='f10b2208'/>
+      </function-decl>
+      <function-decl name='drm_framebuffer_cleanup' mangled-name='drm_framebuffer_cleanup' filepath='drivers/gpu/drm/drm_framebuffer.c' line='944' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_framebuffer_cleanup'>
+        <parameter type-id='7b332e1c' name='fb' filepath='drivers/gpu/drm/drm_framebuffer.c' line='944' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_framebuffer_init' mangled-name='drm_framebuffer_init' filepath='drivers/gpu/drm/drm_framebuffer.c' line='846' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_framebuffer_init'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_framebuffer.c' line='846' column='1'/>
+        <parameter type-id='7b332e1c' name='fb' filepath='drivers/gpu/drm/drm_framebuffer.c' line='846' column='1'/>
+        <parameter type-id='8e992c3d' name='funcs' filepath='drivers/gpu/drm/drm_framebuffer.c' line='847' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_framebuffer_lookup' mangled-name='drm_framebuffer_lookup' filepath='drivers/gpu/drm/drm_framebuffer.c' line='885' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_framebuffer_lookup'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_framebuffer.c' line='885' column='1'/>
+        <parameter type-id='9e99ecc1' name='file_priv' filepath='drivers/gpu/drm/drm_framebuffer.c' line='886' column='1'/>
+        <parameter type-id='8f92235e' name='id' filepath='drivers/gpu/drm/drm_framebuffer.c' line='887' column='1'/>
+        <return type-id='7b332e1c'/>
+      </function-decl>
+      <function-decl name='drm_framebuffer_remove' mangled-name='drm_framebuffer_remove' filepath='drivers/gpu/drm/drm_framebuffer.c' line='1107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_framebuffer_remove'>
+        <parameter type-id='7b332e1c' name='fb' filepath='drivers/gpu/drm/drm_framebuffer.c' line='1107' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_framebuffer_unregister_private' mangled-name='drm_framebuffer_unregister_private' filepath='drivers/gpu/drm/drm_framebuffer.c' line='913' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_framebuffer_unregister_private'>
+        <parameter type-id='7b332e1c' name='fb' filepath='drivers/gpu/drm/drm_framebuffer.c' line='913' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_cleanup_shadow_fb' mangled-name='drm_gem_cleanup_shadow_fb' filepath='drivers/gpu/drm/drm_gem_atomic_helper.c' line='356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_cleanup_shadow_fb'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_gem_atomic_helper.c' line='356' column='1'/>
+        <parameter type-id='d0835005' name='plane_state' filepath='drivers/gpu/drm/drm_gem_atomic_helper.c' line='356' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_cma_dumb_create' mangled-name='drm_gem_cma_dumb_create' filepath='drivers/gpu/drm/drm_gem_cma_helper.c' line='279' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_cma_dumb_create'>
+        <parameter type-id='9e99ecc1' name='file_priv' filepath='drivers/gpu/drm/drm_gem_cma_helper.c' line='279' column='1'/>
+        <parameter type-id='8898134d' name='drm' filepath='drivers/gpu/drm/drm_gem_cma_helper.c' line='280' column='1'/>
+        <parameter type-id='28cbbf40' name='args' filepath='drivers/gpu/drm/drm_gem_cma_helper.c' line='281' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_cma_prime_import_sg_table' mangled-name='drm_gem_cma_prime_import_sg_table' filepath='drivers/gpu/drm/drm_gem_cma_helper.c' line='443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_cma_prime_import_sg_table'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_gem_cma_helper.c' line='443' column='1'/>
+        <parameter type-id='e68e04c1' name='attach' filepath='drivers/gpu/drm/drm_gem_cma_helper.c' line='444' column='1'/>
+        <parameter type-id='4adb0e6a' name='sgt' filepath='drivers/gpu/drm/drm_gem_cma_helper.c' line='445' column='1'/>
+        <return type-id='abd62a96'/>
+      </function-decl>
+      <var-decl name='drm_gem_cma_vm_ops' type-id='92e9b57c' mangled-name='drm_gem_cma_vm_ops' visibility='default' filepath='drivers/gpu/drm/drm_gem_cma_helper.c' line='294' column='1' elf-symbol-id='drm_gem_cma_vm_ops'/>
+      <function-decl name='drm_gem_cma_vmap' mangled-name='drm_gem_cma_vmap' filepath='drivers/gpu/drm/drm_gem_cma_helper.c' line='483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_cma_vmap'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem_cma_helper.c' line='483' column='1'/>
+        <parameter type-id='ce092740' name='map' filepath='drivers/gpu/drm/drm_gem_cma_helper.c' line='483' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_create_mmap_offset' mangled-name='drm_gem_create_mmap_offset' filepath='drivers/gpu/drm/drm_gem.c' line='483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_create_mmap_offset'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem.c' line='483' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_dmabuf_mmap' mangled-name='drm_gem_dmabuf_mmap' filepath='drivers/gpu/drm/drm_prime.c' line='776' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_dmabuf_mmap'>
+        <parameter type-id='5e4f599b' name='dma_buf' filepath='drivers/gpu/drm/drm_prime.c' line='776' column='1'/>
+        <parameter type-id='2ae08426' name='vma' filepath='drivers/gpu/drm/drm_prime.c' line='776' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_dmabuf_release' mangled-name='drm_gem_dmabuf_release' filepath='drivers/gpu/drm/drm_prime.c' line='271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_dmabuf_release'>
+        <parameter type-id='5e4f599b' name='dma_buf' filepath='drivers/gpu/drm/drm_prime.c' line='271' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_dmabuf_vmap' mangled-name='drm_gem_dmabuf_vmap' filepath='drivers/gpu/drm/drm_prime.c' line='678' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_dmabuf_vmap'>
+        <parameter type-id='5e4f599b' name='dma_buf' filepath='drivers/gpu/drm/drm_prime.c' line='678' column='1'/>
+        <parameter type-id='ce092740' name='map' filepath='drivers/gpu/drm/drm_prime.c' line='678' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_dmabuf_vunmap' mangled-name='drm_gem_dmabuf_vunmap' filepath='drivers/gpu/drm/drm_prime.c' line='694' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_dmabuf_vunmap'>
+        <parameter type-id='5e4f599b' name='dma_buf' filepath='drivers/gpu/drm/drm_prime.c' line='694' column='1'/>
+        <parameter type-id='ce092740' name='map' filepath='drivers/gpu/drm/drm_prime.c' line='694' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_fb_begin_cpu_access' mangled-name='drm_gem_fb_begin_cpu_access' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='417' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_fb_begin_cpu_access'>
+        <parameter type-id='7b332e1c' name='fb' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='417' column='1'/>
+        <parameter type-id='eea6b025' name='dir' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='417' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_fb_create' mangled-name='drm_gem_fb_create' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='268' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_fb_create'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='268' column='1'/>
+        <parameter type-id='9e99ecc1' name='file' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='268' column='1'/>
+        <parameter type-id='92ed24a5' name='mode_cmd' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='269' column='1'/>
+        <return type-id='7b332e1c'/>
+      </function-decl>
+      <function-decl name='drm_gem_fb_create_handle' mangled-name='drm_gem_fb_create_handle' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_fb_create_handle'>
+        <parameter type-id='7b332e1c' name='fb' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='115' column='1'/>
+        <parameter type-id='9e99ecc1' name='file' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='115' column='1'/>
+        <parameter type-id='807869d3' name='handle' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='116' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_fb_destroy' mangled-name='drm_gem_fb_destroy' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='90' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_fb_destroy'>
+        <parameter type-id='7b332e1c' name='fb' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='90' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_fb_get_obj' mangled-name='drm_gem_fb_get_obj' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_fb_get_obj'>
+        <parameter type-id='7b332e1c' name='fb' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='50' column='1'/>
+        <parameter type-id='f0981eeb' name='plane' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='51' column='1'/>
+        <return type-id='abd62a96'/>
+      </function-decl>
+      <function-decl name='drm_gem_fb_vmap' mangled-name='drm_gem_fb_vmap' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_fb_vmap'>
+        <parameter type-id='7b332e1c' name='fb' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='334' column='1'/>
+        <parameter type-id='ce092740' name='map' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='335' column='1'/>
+        <parameter type-id='ce092740' name='data' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='336' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_fb_vunmap' mangled-name='drm_gem_fb_vunmap' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_fb_vunmap'>
+        <parameter type-id='7b332e1c' name='fb' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='385' column='1'/>
+        <parameter type-id='ce092740' name='map' filepath='drivers/gpu/drm/drm_gem_framebuffer_helper.c' line='386' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_fence_array_add' mangled-name='drm_gem_fence_array_add' filepath='drivers/gpu/drm/drm_gem.c' line='1274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_fence_array_add'>
+        <parameter type-id='60075f2a' name='fence_array' filepath='drivers/gpu/drm/drm_gem.c' line='1274' column='1'/>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/gpu/drm/drm_gem.c' line='1275' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_fence_array_add_implicit' mangled-name='drm_gem_fence_array_add_implicit' filepath='drivers/gpu/drm/drm_gem.c' line='1324' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_fence_array_add_implicit'>
+        <parameter type-id='60075f2a' name='fence_array' filepath='drivers/gpu/drm/drm_gem.c' line='1324' column='1'/>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem.c' line='1325' column='1'/>
+        <parameter type-id='b50a4934' name='write' filepath='drivers/gpu/drm/drm_gem.c' line='1326' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_free_mmap_offset' mangled-name='drm_gem_free_mmap_offset' filepath='drivers/gpu/drm/drm_gem.c' line='434' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_free_mmap_offset'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem.c' line='434' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_get_pages' mangled-name='drm_gem_get_pages' filepath='drivers/gpu/drm/drm_gem.c' line='525' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_get_pages'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem.c' line='525' column='1'/>
+        <return type-id='9f93c9da'/>
+      </function-decl>
+      <function-decl name='drm_gem_handle_create' mangled-name='drm_gem_handle_create' filepath='drivers/gpu/drm/drm_gem.c' line='412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_handle_create'>
+        <parameter type-id='9e99ecc1' name='file_priv' filepath='drivers/gpu/drm/drm_gem.c' line='412' column='1'/>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem.c' line='413' column='1'/>
+        <parameter type-id='f9409001' name='handlep' filepath='drivers/gpu/drm/drm_gem.c' line='414' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_handle_delete' mangled-name='drm_gem_handle_delete' filepath='drivers/gpu/drm/drm_gem.c' line='258' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_handle_delete'>
+        <parameter type-id='9e99ecc1' name='filp' filepath='drivers/gpu/drm/drm_gem.c' line='258' column='1'/>
+        <parameter type-id='19c2251e' name='handle' filepath='drivers/gpu/drm/drm_gem.c' line='258' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_lock_reservations' mangled-name='drm_gem_lock_reservations' filepath='drivers/gpu/drm/drm_gem.c' line='1197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_lock_reservations'>
+        <parameter type-id='3e2545f4' name='objs' filepath='drivers/gpu/drm/drm_gem.c' line='1197' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='drivers/gpu/drm/drm_gem.c' line='1197' column='1'/>
+        <parameter type-id='c1d02a64' name='acquire_ctx' filepath='drivers/gpu/drm/drm_gem.c' line='1198' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_map_attach' mangled-name='drm_gem_map_attach' filepath='drivers/gpu/drm/drm_prime.c' line='578' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_map_attach'>
+        <parameter type-id='5e4f599b' name='dma_buf' filepath='drivers/gpu/drm/drm_prime.c' line='578' column='1'/>
+        <parameter type-id='e68e04c1' name='attach' filepath='drivers/gpu/drm/drm_prime.c' line='579' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_map_detach' mangled-name='drm_gem_map_detach' filepath='drivers/gpu/drm/drm_prime.c' line='596' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_map_detach'>
+        <parameter type-id='5e4f599b' name='dma_buf' filepath='drivers/gpu/drm/drm_prime.c' line='596' column='1'/>
+        <parameter type-id='e68e04c1' name='attach' filepath='drivers/gpu/drm/drm_prime.c' line='597' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_map_dma_buf' mangled-name='drm_gem_map_dma_buf' filepath='drivers/gpu/drm/drm_prime.c' line='617' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_map_dma_buf'>
+        <parameter type-id='e68e04c1' name='attach' filepath='drivers/gpu/drm/drm_prime.c' line='617' column='1'/>
+        <parameter type-id='eea6b025' name='dir' filepath='drivers/gpu/drm/drm_prime.c' line='618' column='1'/>
+        <return type-id='4adb0e6a'/>
+      </function-decl>
+      <function-decl name='drm_gem_mmap' mangled-name='drm_gem_mmap' filepath='drivers/gpu/drm/drm_gem.c' line='1074' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_mmap'>
+        <parameter type-id='77e79a4b' name='filp' filepath='drivers/gpu/drm/drm_gem.c' line='1074' column='1'/>
+        <parameter type-id='2ae08426' name='vma' filepath='drivers/gpu/drm/drm_gem.c' line='1074' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_mmap_obj' mangled-name='drm_gem_mmap_obj' filepath='drivers/gpu/drm/drm_gem.c' line='1015' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_mmap_obj'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem.c' line='1015' column='1'/>
+        <parameter type-id='7359adad' name='obj_size' filepath='drivers/gpu/drm/drm_gem.c' line='1015' column='1'/>
+        <parameter type-id='2ae08426' name='vma' filepath='drivers/gpu/drm/drm_gem.c' line='1016' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_object_free' mangled-name='drm_gem_object_free' filepath='drivers/gpu/drm/drm_gem.c' line='949' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_object_free'>
+        <parameter type-id='aa29ecab' name='kref' filepath='drivers/gpu/drm/drm_gem.c' line='949' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_object_init' mangled-name='drm_gem_object_init' filepath='drivers/gpu/drm/drm_gem.c' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_object_init'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_gem.c' line='124' column='1'/>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem.c' line='125' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/gpu/drm/drm_gem.c' line='125' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_object_lookup' mangled-name='drm_gem_object_lookup' filepath='drivers/gpu/drm/drm_gem.c' line='724' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_object_lookup'>
+        <parameter type-id='9e99ecc1' name='filp' filepath='drivers/gpu/drm/drm_gem.c' line='724' column='1'/>
+        <parameter type-id='19c2251e' name='handle' filepath='drivers/gpu/drm/drm_gem.c' line='724' column='1'/>
+        <return type-id='abd62a96'/>
+      </function-decl>
+      <function-decl name='drm_gem_object_release' mangled-name='drm_gem_object_release' filepath='drivers/gpu/drm/drm_gem.c' line='928' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_object_release'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem.c' line='928' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_objects_lookup' mangled-name='drm_gem_objects_lookup' filepath='drivers/gpu/drm/drm_gem.c' line='674' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_objects_lookup'>
+        <parameter type-id='9e99ecc1' name='filp' filepath='drivers/gpu/drm/drm_gem.c' line='674' column='1'/>
+        <parameter type-id='eaa32e2f' name='bo_handles' filepath='drivers/gpu/drm/drm_gem.c' line='674' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='drivers/gpu/drm/drm_gem.c' line='675' column='1'/>
+        <parameter type-id='b2acfc7a' name='objs_out' filepath='drivers/gpu/drm/drm_gem.c' line='675' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_plane_helper_prepare_fb' mangled-name='drm_gem_plane_helper_prepare_fb' filepath='drivers/gpu/drm/drm_gem_atomic_helper.c' line='144' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_plane_helper_prepare_fb'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_gem_atomic_helper.c' line='144' column='1'/>
+        <parameter type-id='d0835005' name='state' filepath='drivers/gpu/drm/drm_gem_atomic_helper.c' line='144' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_prepare_shadow_fb' mangled-name='drm_gem_prepare_shadow_fb' filepath='drivers/gpu/drm/drm_gem_atomic_helper.c' line='329' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_prepare_shadow_fb'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_gem_atomic_helper.c' line='329' column='1'/>
+        <parameter type-id='d0835005' name='plane_state' filepath='drivers/gpu/drm/drm_gem_atomic_helper.c' line='329' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_prime_export' mangled-name='drm_gem_prime_export' filepath='drivers/gpu/drm/drm_prime.c' line='878' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_prime_export'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_prime.c' line='878' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='drivers/gpu/drm/drm_prime.c' line='879' column='1'/>
+        <return type-id='5e4f599b'/>
+      </function-decl>
+      <function-decl name='drm_gem_prime_fd_to_handle' mangled-name='drm_gem_prime_fd_to_handle' filepath='drivers/gpu/drm/drm_prime.c' line='297' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_prime_fd_to_handle'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_prime.c' line='297' column='1'/>
+        <parameter type-id='9e99ecc1' name='file_priv' filepath='drivers/gpu/drm/drm_prime.c' line='298' column='1'/>
+        <parameter type-id='95e97e5e' name='prime_fd' filepath='drivers/gpu/drm/drm_prime.c' line='298' column='1'/>
+        <parameter type-id='90421557' name='handle' filepath='drivers/gpu/drm/drm_prime.c' line='299' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_prime_handle_to_fd' mangled-name='drm_gem_prime_handle_to_fd' filepath='drivers/gpu/drm/drm_prime.c' line='426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_prime_handle_to_fd'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_prime.c' line='426' column='1'/>
+        <parameter type-id='9e99ecc1' name='file_priv' filepath='drivers/gpu/drm/drm_prime.c' line='427' column='1'/>
+        <parameter type-id='8f92235e' name='handle' filepath='drivers/gpu/drm/drm_prime.c' line='427' column='1'/>
+        <parameter type-id='8f92235e' name='flags' filepath='drivers/gpu/drm/drm_prime.c' line='428' column='1'/>
+        <parameter type-id='7292109c' name='prime_fd' filepath='drivers/gpu/drm/drm_prime.c' line='429' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_prime_import' mangled-name='drm_gem_prime_import' filepath='drivers/gpu/drm/drm_prime.c' line='980' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_prime_import'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_prime.c' line='980' column='1'/>
+        <parameter type-id='5e4f599b' name='dma_buf' filepath='drivers/gpu/drm/drm_prime.c' line='981' column='1'/>
+        <return type-id='abd62a96'/>
+      </function-decl>
+      <function-decl name='drm_gem_prime_import_dev' mangled-name='drm_gem_prime_import_dev' filepath='drivers/gpu/drm/drm_prime.c' line='910' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_prime_import_dev'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_prime.c' line='910' column='1'/>
+        <parameter type-id='5e4f599b' name='dma_buf' filepath='drivers/gpu/drm/drm_prime.c' line='911' column='1'/>
+        <parameter type-id='fa0b179b' name='attach_dev' filepath='drivers/gpu/drm/drm_prime.c' line='912' column='1'/>
+        <return type-id='abd62a96'/>
+      </function-decl>
+      <function-decl name='drm_gem_prime_mmap' mangled-name='drm_gem_prime_mmap' filepath='drivers/gpu/drm/drm_prime.c' line='714' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_prime_mmap'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_prime.c' line='714' column='1'/>
+        <parameter type-id='2ae08426' name='vma' filepath='drivers/gpu/drm/drm_prime.c' line='714' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_private_object_init' mangled-name='drm_gem_private_object_init' filepath='drivers/gpu/drm/drm_gem.c' line='151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_private_object_init'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_gem.c' line='151' column='1'/>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem.c' line='152' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/gpu/drm/drm_gem.c' line='152' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_put_pages' mangled-name='drm_gem_put_pages' filepath='drivers/gpu/drm/drm_gem.c' line='592' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_put_pages'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem.c' line='592' column='1'/>
+        <parameter type-id='9f93c9da' name='pages' filepath='drivers/gpu/drm/drm_gem.c' line='592' column='1'/>
+        <parameter type-id='b50a4934' name='dirty' filepath='drivers/gpu/drm/drm_gem.c' line='593' column='1'/>
+        <parameter type-id='b50a4934' name='accessed' filepath='drivers/gpu/drm/drm_gem.c' line='593' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_shmem_create' mangled-name='drm_gem_shmem_create' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_shmem_create'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='108' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='108' column='1'/>
+        <return type-id='970cb2d9'/>
+      </function-decl>
+      <function-decl name='drm_gem_shmem_dumb_create' mangled-name='drm_gem_shmem_dumb_create' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='494' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_shmem_dumb_create'>
+        <parameter type-id='9e99ecc1' name='file' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='494' column='1'/>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='494' column='1'/>
+        <parameter type-id='28cbbf40' name='args' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='495' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_shmem_free_object' mangled-name='drm_gem_shmem_free_object' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_shmem_free_object'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='121' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_shmem_get_pages_sgt' mangled-name='drm_gem_shmem_get_pages_sgt' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='684' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_shmem_get_pages_sgt'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='684' column='1'/>
+        <return type-id='4adb0e6a'/>
+      </function-decl>
+      <function-decl name='drm_gem_shmem_get_sg_table' mangled-name='drm_gem_shmem_get_sg_table' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='658' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_shmem_get_sg_table'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='658' column='1'/>
+        <return type-id='4adb0e6a'/>
+      </function-decl>
+      <function-decl name='drm_gem_shmem_madvise' mangled-name='drm_gem_shmem_madvise' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='416' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_shmem_madvise'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='416' column='1'/>
+        <parameter type-id='95e97e5e' name='madv' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='416' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_shmem_mmap' mangled-name='drm_gem_shmem_mmap' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='595' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_shmem_mmap'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='595' column='1'/>
+        <parameter type-id='2ae08426' name='vma' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='595' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_shmem_pin' mangled-name='drm_gem_shmem_pin' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_shmem_pin'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='235' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_shmem_prime_import_sg_table' mangled-name='drm_gem_shmem_prime_import_sg_table' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='738' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_shmem_prime_import_sg_table'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='738' column='1'/>
+        <parameter type-id='e68e04c1' name='attach' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='739' column='1'/>
+        <parameter type-id='4adb0e6a' name='sgt' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='740' column='1'/>
+        <return type-id='abd62a96'/>
+      </function-decl>
+      <function-decl name='drm_gem_shmem_print_info' mangled-name='drm_gem_shmem_print_info' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='633' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_shmem_print_info'>
+        <parameter type-id='7ac48c21' name='p' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='633' column='1'/>
+        <parameter type-id='f0981eeb' name='indent' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='633' column='1'/>
+        <parameter type-id='e8a41089' name='obj' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='634' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_shmem_purge_locked' mangled-name='drm_gem_shmem_purge_locked' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='433' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_shmem_purge_locked'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='433' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_shmem_put_pages' mangled-name='drm_gem_shmem_put_pages' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='217' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_shmem_put_pages'>
+        <parameter type-id='970cb2d9' name='shmem' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='217' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_shmem_unpin' mangled-name='drm_gem_shmem_unpin' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='252' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_shmem_unpin'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='252' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_shmem_vmap' mangled-name='drm_gem_shmem_vmap' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_shmem_vmap'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='330' column='1'/>
+        <parameter type-id='ce092740' name='map' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='330' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_gem_shmem_vunmap' mangled-name='drm_gem_shmem_vunmap' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='378' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_shmem_vunmap'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='378' column='1'/>
+        <parameter type-id='ce092740' name='map' filepath='drivers/gpu/drm/drm_gem_shmem_helper.c' line='378' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_unlock_reservations' mangled-name='drm_gem_unlock_reservations' filepath='drivers/gpu/drm/drm_gem.c' line='1249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_unlock_reservations'>
+        <parameter type-id='3e2545f4' name='objs' filepath='drivers/gpu/drm/drm_gem.c' line='1249' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='drivers/gpu/drm/drm_gem.c' line='1249' column='1'/>
+        <parameter type-id='c1d02a64' name='acquire_ctx' filepath='drivers/gpu/drm/drm_gem.c' line='1250' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_unmap_dma_buf' mangled-name='drm_gem_unmap_dma_buf' filepath='drivers/gpu/drm/drm_prime.c' line='654' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_unmap_dma_buf'>
+        <parameter type-id='e68e04c1' name='attach' filepath='drivers/gpu/drm/drm_prime.c' line='654' column='1'/>
+        <parameter type-id='4adb0e6a' name='sgt' filepath='drivers/gpu/drm/drm_prime.c' line='655' column='1'/>
+        <parameter type-id='eea6b025' name='dir' filepath='drivers/gpu/drm/drm_prime.c' line='656' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_vm_close' mangled-name='drm_gem_vm_close' filepath='drivers/gpu/drm/drm_gem.c' line='983' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_vm_close'>
+        <parameter type-id='2ae08426' name='vma' filepath='drivers/gpu/drm/drm_gem.c' line='983' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_gem_vm_open' mangled-name='drm_gem_vm_open' filepath='drivers/gpu/drm/drm_gem.c' line='968' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_gem_vm_open'>
+        <parameter type-id='2ae08426' name='vma' filepath='drivers/gpu/drm/drm_gem.c' line='968' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_get_connector_status_name' mangled-name='drm_get_connector_status_name' filepath='drivers/gpu/drm/drm_connector.c' line='614' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_get_connector_status_name'>
+        <parameter type-id='f7b0e1b4' name='status' filepath='drivers/gpu/drm/drm_connector.c' line='614' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='drm_get_connector_type_name' mangled-name='drm_get_connector_type_name' filepath='drivers/gpu/drm/drm_connector.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_get_connector_type_name'>
+        <parameter type-id='f0981eeb' name='type' filepath='drivers/gpu/drm/drm_connector.c' line='123' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='drm_get_edid' mangled-name='drm_get_edid' filepath='drivers/gpu/drm/drm_edid.c' line='2055' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_get_edid'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_edid.c' line='2055' column='1'/>
+        <parameter type-id='b9af02c3' name='adapter' filepath='drivers/gpu/drm/drm_edid.c' line='2056' column='1'/>
+        <return type-id='c91d1bf1'/>
+      </function-decl>
+      <function-decl name='drm_get_format_info' mangled-name='drm_get_format_info' filepath='drivers/gpu/drm/drm_fourcc.c' line='319' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_get_format_info'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_fourcc.c' line='319' column='1'/>
+        <parameter type-id='92ed24a5' name='mode_cmd' filepath='drivers/gpu/drm/drm_fourcc.c' line='320' column='1'/>
+        <return type-id='f10b2208'/>
+      </function-decl>
+      <function-decl name='drm_handle_vblank' mangled-name='drm_handle_vblank' filepath='drivers/gpu/drm/drm_vblank.c' line='1933' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_handle_vblank'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_vblank.c' line='1933' column='1'/>
+        <parameter type-id='f0981eeb' name='pipe' filepath='drivers/gpu/drm/drm_vblank.c' line='1933' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_hdcp_check_ksvs_revoked' mangled-name='drm_hdcp_check_ksvs_revoked' filepath='drivers/gpu/drm/drm_hdcp.c' line='285' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_hdcp_check_ksvs_revoked'>
+        <parameter type-id='8898134d' name='drm_dev' filepath='drivers/gpu/drm/drm_hdcp.c' line='285' column='1'/>
+        <parameter type-id='8bff8096' name='ksvs' filepath='drivers/gpu/drm/drm_hdcp.c' line='285' column='1'/>
+        <parameter type-id='19c2251e' name='ksv_count' filepath='drivers/gpu/drm/drm_hdcp.c' line='286' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_hdcp_update_content_protection' mangled-name='drm_hdcp_update_content_protection' filepath='drivers/gpu/drm/drm_hdcp.c' line='409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_hdcp_update_content_protection'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_hdcp.c' line='409' column='1'/>
+        <parameter type-id='91ce1af9' name='val' filepath='drivers/gpu/drm/drm_hdcp.c' line='410' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_hdmi_avi_infoframe_colorspace' mangled-name='drm_hdmi_avi_infoframe_colorspace' filepath='drivers/gpu/drm/drm_edid.c' line='5755' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_hdmi_avi_infoframe_colorspace'>
+        <parameter type-id='19ddc3a6' name='frame' filepath='drivers/gpu/drm/drm_edid.c' line='5755' column='1'/>
+        <parameter type-id='c9ecdb13' name='conn_state' filepath='drivers/gpu/drm/drm_edid.c' line='5756' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_hdmi_avi_infoframe_from_display_mode' mangled-name='drm_hdmi_avi_infoframe_from_display_mode' filepath='drivers/gpu/drm/drm_edid.c' line='5638' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_hdmi_avi_infoframe_from_display_mode'>
+        <parameter type-id='19ddc3a6' name='frame' filepath='drivers/gpu/drm/drm_edid.c' line='5638' column='1'/>
+        <parameter type-id='0e1f87e5' name='connector' filepath='drivers/gpu/drm/drm_edid.c' line='5639' column='1'/>
+        <parameter type-id='745b39e8' name='mode' filepath='drivers/gpu/drm/drm_edid.c' line='5640' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_hdmi_avi_infoframe_quant_range' mangled-name='drm_hdmi_avi_infoframe_quant_range' filepath='drivers/gpu/drm/drm_edid.c' line='5785' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_hdmi_avi_infoframe_quant_range'>
+        <parameter type-id='19ddc3a6' name='frame' filepath='drivers/gpu/drm/drm_edid.c' line='5785' column='1'/>
+        <parameter type-id='0e1f87e5' name='connector' filepath='drivers/gpu/drm/drm_edid.c' line='5786' column='1'/>
+        <parameter type-id='745b39e8' name='mode' filepath='drivers/gpu/drm/drm_edid.c' line='5787' column='1'/>
+        <parameter type-id='5c444b2c' name='rgb_quant_range' filepath='drivers/gpu/drm/drm_edid.c' line='5788' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_hdmi_infoframe_set_hdr_metadata' mangled-name='drm_hdmi_infoframe_set_hdr_metadata' filepath='drivers/gpu/drm/drm_edid.c' line='5524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_hdmi_infoframe_set_hdr_metadata'>
+        <parameter type-id='6ddb149f' name='frame' filepath='drivers/gpu/drm/drm_edid.c' line='5524' column='1'/>
+        <parameter type-id='c9ecdb13' name='conn_state' filepath='drivers/gpu/drm/drm_edid.c' line='5525' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_hdmi_vendor_infoframe_from_display_mode' mangled-name='drm_hdmi_vendor_infoframe_from_display_mode' filepath='drivers/gpu/drm/drm_edid.c' line='5889' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_hdmi_vendor_infoframe_from_display_mode'>
+        <parameter type-id='8ba5499a' name='frame' filepath='drivers/gpu/drm/drm_edid.c' line='5889' column='1'/>
+        <parameter type-id='0e1f87e5' name='connector' filepath='drivers/gpu/drm/drm_edid.c' line='5890' column='1'/>
+        <parameter type-id='745b39e8' name='mode' filepath='drivers/gpu/drm/drm_edid.c' line='5891' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_helper_connector_dpms' mangled-name='drm_helper_connector_dpms' filepath='drivers/gpu/drm/drm_crtc_helper.c' line='867' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_helper_connector_dpms'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_crtc_helper.c' line='867' column='1'/>
+        <parameter type-id='95e97e5e' name='mode' filepath='drivers/gpu/drm/drm_crtc_helper.c' line='867' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_helper_disable_unused_functions' mangled-name='drm_helper_disable_unused_functions' filepath='drivers/gpu/drm/drm_crtc_helper.c' line='219' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_helper_disable_unused_functions'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_crtc_helper.c' line='219' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_helper_force_disable_all' mangled-name='drm_helper_force_disable_all' filepath='drivers/gpu/drm/drm_crtc_helper.c' line='1002' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_helper_force_disable_all'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_crtc_helper.c' line='1002' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_helper_hpd_irq_event' mangled-name='drm_helper_hpd_irq_event' filepath='drivers/gpu/drm/drm_probe_helper.c' line='822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_helper_hpd_irq_event'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_probe_helper.c' line='822' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_helper_mode_fill_fb_struct' mangled-name='drm_helper_mode_fill_fb_struct' filepath='drivers/gpu/drm/drm_modeset_helper.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_helper_mode_fill_fb_struct'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_modeset_helper.c' line='79' column='1'/>
+        <parameter type-id='7b332e1c' name='fb' filepath='drivers/gpu/drm/drm_modeset_helper.c' line='80' column='1'/>
+        <parameter type-id='92ed24a5' name='mode_cmd' filepath='drivers/gpu/drm/drm_modeset_helper.c' line='81' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_helper_probe_detect' mangled-name='drm_helper_probe_detect' filepath='drivers/gpu/drm/drm_probe_helper.c' line='328' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_helper_probe_detect'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_probe_helper.c' line='328' column='1'/>
+        <parameter type-id='d1499e71' name='ctx' filepath='drivers/gpu/drm/drm_probe_helper.c' line='329' column='1'/>
+        <parameter type-id='b50a4934' name='force' filepath='drivers/gpu/drm/drm_probe_helper.c' line='330' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_helper_probe_single_connector_modes' mangled-name='drm_helper_probe_single_connector_modes' filepath='drivers/gpu/drm/drm_probe_helper.c' line='416' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_helper_probe_single_connector_modes'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_probe_helper.c' line='416' column='1'/>
+        <parameter type-id='8f92235e' name='maxX' filepath='drivers/gpu/drm/drm_probe_helper.c' line='417' column='1'/>
+        <parameter type-id='8f92235e' name='maxY' filepath='drivers/gpu/drm/drm_probe_helper.c' line='417' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_helper_resume_force_mode' mangled-name='drm_helper_resume_force_mode' filepath='drivers/gpu/drm/drm_crtc_helper.c' line='940' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_helper_resume_force_mode'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_crtc_helper.c' line='940' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_ioctl' mangled-name='drm_ioctl' filepath='drivers/gpu/drm/drm_ioctl.c' line='824' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_ioctl'>
+        <parameter type-id='77e79a4b' name='filp' filepath='drivers/gpu/drm/drm_ioctl.c' line='824' column='1'/>
+        <parameter type-id='f0981eeb' name='cmd' filepath='drivers/gpu/drm/drm_ioctl.c' line='825' column='1'/>
+        <parameter type-id='7359adad' name='arg' filepath='drivers/gpu/drm/drm_ioctl.c' line='825' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='drm_ioctl_kernel' mangled-name='drm_ioctl_kernel' filepath='drivers/gpu/drm/drm_ioctl.c' line='784' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_ioctl_kernel'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/gpu/drm/drm_ioctl.c' line='784' column='1'/>
+        <parameter type-id='e2cefc47' name='func' filepath='drivers/gpu/drm/drm_ioctl.c' line='784' column='1'/>
+        <parameter type-id='eaa32e2f' name='kdata' filepath='drivers/gpu/drm/drm_ioctl.c' line='784' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='drivers/gpu/drm/drm_ioctl.c' line='785' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='drm_is_current_master' mangled-name='drm_is_current_master' filepath='drivers/gpu/drm/drm_auth.c' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_is_current_master'>
+        <parameter type-id='9e99ecc1' name='fpriv' filepath='drivers/gpu/drm/drm_auth.c' line='82' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_kms_helper_hotplug_event' mangled-name='drm_kms_helper_hotplug_event' filepath='drivers/gpu/drm/drm_probe_helper.c' line='609' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_kms_helper_hotplug_event'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_probe_helper.c' line='609' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_kms_helper_is_poll_worker' mangled-name='drm_kms_helper_is_poll_worker' filepath='drivers/gpu/drm/drm_probe_helper.c' line='727' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_kms_helper_is_poll_worker'>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_kms_helper_poll_disable' mangled-name='drm_kms_helper_poll_disable' filepath='drivers/gpu/drm/drm_probe_helper.c' line='749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_kms_helper_poll_disable'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_probe_helper.c' line='749' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_kms_helper_poll_enable' mangled-name='drm_kms_helper_poll_enable' filepath='drivers/gpu/drm/drm_probe_helper.c' line='242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_kms_helper_poll_enable'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_probe_helper.c' line='242' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_kms_helper_poll_fini' mangled-name='drm_kms_helper_poll_fini' filepath='drivers/gpu/drm/drm_probe_helper.c' line='789' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_kms_helper_poll_fini'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_probe_helper.c' line='789' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_kms_helper_poll_init' mangled-name='drm_kms_helper_poll_init' filepath='drivers/gpu/drm/drm_probe_helper.c' line='776' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_kms_helper_poll_init'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_probe_helper.c' line='776' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_master_get' mangled-name='drm_master_get' filepath='drivers/gpu/drm/drm_auth.c' line='387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_master_get'>
+        <parameter type-id='07df1a3d' name='master' filepath='drivers/gpu/drm/drm_auth.c' line='387' column='1'/>
+        <return type-id='07df1a3d'/>
+      </function-decl>
+      <function-decl name='drm_master_put' mangled-name='drm_master_put' filepath='drivers/gpu/drm/drm_auth.c' line='443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_master_put'>
+        <parameter type-id='7b361235' name='master' filepath='drivers/gpu/drm/drm_auth.c' line='443' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_match_cea_mode' mangled-name='drm_match_cea_mode' filepath='drivers/gpu/drm/drm_edid.c' line='3426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_match_cea_mode'>
+        <parameter type-id='745b39e8' name='to_match' filepath='drivers/gpu/drm/drm_edid.c' line='3426' column='1'/>
+        <return type-id='f9b06939'/>
+      </function-decl>
+      <function-decl name='drm_mm_init' mangled-name='drm_mm_init' filepath='drivers/gpu/drm/drm_mm.c' line='966' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mm_init'>
+        <parameter type-id='0ee978f1' name='mm' filepath='drivers/gpu/drm/drm_mm.c' line='966' column='1'/>
+        <parameter type-id='91ce1af9' name='start' filepath='drivers/gpu/drm/drm_mm.c' line='966' column='1'/>
+        <parameter type-id='91ce1af9' name='size' filepath='drivers/gpu/drm/drm_mm.c' line='966' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_mm_insert_node_in_range' mangled-name='drm_mm_insert_node_in_range' filepath='drivers/gpu/drm/drm_mm.c' line='517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mm_insert_node_in_range'>
+        <parameter type-id='60f31a4e' name='mm' filepath='drivers/gpu/drm/drm_mm.c' line='517' column='1'/>
+        <parameter type-id='7c50e73f' name='node' filepath='drivers/gpu/drm/drm_mm.c' line='518' column='1'/>
+        <parameter type-id='91ce1af9' name='size' filepath='drivers/gpu/drm/drm_mm.c' line='519' column='1'/>
+        <parameter type-id='91ce1af9' name='alignment' filepath='drivers/gpu/drm/drm_mm.c' line='519' column='1'/>
+        <parameter type-id='7359adad' name='color' filepath='drivers/gpu/drm/drm_mm.c' line='520' column='1'/>
+        <parameter type-id='91ce1af9' name='range_start' filepath='drivers/gpu/drm/drm_mm.c' line='521' column='1'/>
+        <parameter type-id='91ce1af9' name='range_end' filepath='drivers/gpu/drm/drm_mm.c' line='521' column='1'/>
+        <parameter type-id='24e1ec7e' name='mode' filepath='drivers/gpu/drm/drm_mm.c' line='522' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_mm_print' mangled-name='drm_mm_print' filepath='drivers/gpu/drm/drm_mm.c' line='1022' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mm_print'>
+        <parameter type-id='402c0a9e' name='mm' filepath='drivers/gpu/drm/drm_mm.c' line='1022' column='1'/>
+        <parameter type-id='7ac48c21' name='p' filepath='drivers/gpu/drm/drm_mm.c' line='1022' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_mm_remove_node' mangled-name='drm_mm_remove_node' filepath='drivers/gpu/drm/drm_mm.c' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mm_remove_node'>
+        <parameter type-id='6368b074' name='node' filepath='drivers/gpu/drm/drm_mm.c' line='630' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_mm_reserve_node' mangled-name='drm_mm_reserve_node' filepath='drivers/gpu/drm/drm_mm.c' line='453' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mm_reserve_node'>
+        <parameter type-id='0ee978f1' name='mm' filepath='drivers/gpu/drm/drm_mm.c' line='453' column='1'/>
+        <parameter type-id='6368b074' name='node' filepath='drivers/gpu/drm/drm_mm.c' line='453' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_mm_takedown' mangled-name='drm_mm_takedown' filepath='drivers/gpu/drm/drm_mm.c' line='996' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mm_takedown'>
+        <parameter type-id='0ee978f1' name='mm' filepath='drivers/gpu/drm/drm_mm.c' line='996' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_mode_config_cleanup' mangled-name='drm_mode_config_cleanup' filepath='drivers/gpu/drm/drm_mode_config.c' line='483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_config_cleanup'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_mode_config.c' line='483' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_mode_config_helper_resume' mangled-name='drm_mode_config_helper_resume' filepath='drivers/gpu/drm/drm_modeset_helper.c' line='231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_config_helper_resume'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_modeset_helper.c' line='231' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_mode_config_helper_suspend' mangled-name='drm_mode_config_helper_suspend' filepath='drivers/gpu/drm/drm_modeset_helper.c' line='195' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_config_helper_suspend'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_modeset_helper.c' line='195' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_mode_config_reset' mangled-name='drm_mode_config_reset' filepath='drivers/gpu/drm/drm_mode_config.c' line='181' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_config_reset'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_mode_config.c' line='181' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_mode_convert_to_umode' mangled-name='drm_mode_convert_to_umode' filepath='drivers/gpu/drm/drm_modes.c' line='1898' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_convert_to_umode'>
+        <parameter type-id='1bd40de0' name='out' filepath='drivers/gpu/drm/drm_modes.c' line='1898' column='1'/>
+        <parameter type-id='745b39e8' name='in' filepath='drivers/gpu/drm/drm_modes.c' line='1899' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_mode_convert_umode' mangled-name='drm_mode_convert_umode' filepath='drivers/gpu/drm/drm_modes.c' line='1955' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_convert_umode'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_modes.c' line='1955' column='1'/>
+        <parameter type-id='11e02f83' name='out' filepath='drivers/gpu/drm/drm_modes.c' line='1956' column='1'/>
+        <parameter type-id='4b939911' name='in' filepath='drivers/gpu/drm/drm_modes.c' line='1957' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_mode_copy' mangled-name='drm_mode_copy' filepath='drivers/gpu/drm/drm_modes.c' line='886' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_copy'>
+        <parameter type-id='11e02f83' name='dst' filepath='drivers/gpu/drm/drm_modes.c' line='886' column='1'/>
+        <parameter type-id='745b39e8' name='src' filepath='drivers/gpu/drm/drm_modes.c' line='886' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_mode_create' mangled-name='drm_mode_create' filepath='drivers/gpu/drm/drm_modes.c' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_modes.c' line='70' column='1'/>
+        <return type-id='11e02f83'/>
+      </function-decl>
+      <function-decl name='drm_mode_create_dp_colorspace_property' mangled-name='drm_mode_create_dp_colorspace_property' filepath='drivers/gpu/drm/drm_connector.c' line='1876' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_dp_colorspace_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1876' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_mode_create_hdmi_colorspace_property' mangled-name='drm_mode_create_hdmi_colorspace_property' filepath='drivers/gpu/drm/drm_connector.c' line='1847' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_hdmi_colorspace_property'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1847' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_mode_create_scaling_mode_property' mangled-name='drm_mode_create_scaling_mode_property' filepath='drivers/gpu/drm/drm_connector.c' line='1611' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_scaling_mode_property'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_connector.c' line='1611' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_mode_create_tile_group' mangled-name='drm_mode_create_tile_group' filepath='drivers/gpu/drm/drm_connector.c' line='2631' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_tile_group'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_connector.c' line='2631' column='1'/>
+        <parameter type-id='80f4b756' name='topology' filepath='drivers/gpu/drm/drm_connector.c' line='2632' column='1'/>
+        <return type-id='c6c44b9f'/>
+      </function-decl>
+      <function-decl name='drm_mode_crtc_set_gamma_size' mangled-name='drm_mode_crtc_set_gamma_size' filepath='drivers/gpu/drm/drm_color_mgmt.c' line='202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_crtc_set_gamma_size'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_color_mgmt.c' line='202' column='1'/>
+        <parameter type-id='95e97e5e' name='gamma_size' filepath='drivers/gpu/drm/drm_color_mgmt.c' line='203' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_mode_debug_printmodeline' mangled-name='drm_mode_debug_printmodeline' filepath='drivers/gpu/drm/drm_modes.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_debug_printmodeline'>
+        <parameter type-id='745b39e8' name='mode' filepath='drivers/gpu/drm/drm_modes.c' line='54' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_mode_destroy' mangled-name='drm_mode_destroy' filepath='drivers/gpu/drm/drm_modes.c' line='89' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_destroy'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_modes.c' line='89' column='1'/>
+        <parameter type-id='11e02f83' name='mode' filepath='drivers/gpu/drm/drm_modes.c' line='89' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_mode_duplicate' mangled-name='drm_mode_duplicate' filepath='drivers/gpu/drm/drm_modes.c' line='906' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_duplicate'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_modes.c' line='906' column='1'/>
+        <parameter type-id='745b39e8' name='mode' filepath='drivers/gpu/drm/drm_modes.c' line='907' column='1'/>
+        <return type-id='11e02f83'/>
+      </function-decl>
+      <function-decl name='drm_mode_equal' mangled-name='drm_mode_equal' filepath='drivers/gpu/drm/drm_modes.c' line='1024' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_equal'>
+        <parameter type-id='745b39e8' name='mode1' filepath='drivers/gpu/drm/drm_modes.c' line='1024' column='1'/>
+        <parameter type-id='745b39e8' name='mode2' filepath='drivers/gpu/drm/drm_modes.c' line='1025' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_mode_equal_no_clocks' mangled-name='drm_mode_equal_no_clocks' filepath='drivers/gpu/drm/drm_modes.c' line='1047' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_equal_no_clocks'>
+        <parameter type-id='745b39e8' name='mode1' filepath='drivers/gpu/drm/drm_modes.c' line='1047' column='1'/>
+        <parameter type-id='745b39e8' name='mode2' filepath='drivers/gpu/drm/drm_modes.c' line='1048' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_mode_find_dmt' mangled-name='drm_mode_find_dmt' filepath='drivers/gpu/drm/drm_edid.c' line='2229' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_find_dmt'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_edid.c' line='2229' column='1'/>
+        <parameter type-id='95e97e5e' name='hsize' filepath='drivers/gpu/drm/drm_edid.c' line='2230' column='1'/>
+        <parameter type-id='95e97e5e' name='vsize' filepath='drivers/gpu/drm/drm_edid.c' line='2230' column='1'/>
+        <parameter type-id='95e97e5e' name='fresh' filepath='drivers/gpu/drm/drm_edid.c' line='2230' column='1'/>
+        <parameter type-id='b50a4934' name='rb' filepath='drivers/gpu/drm/drm_edid.c' line='2231' column='1'/>
+        <return type-id='11e02f83'/>
+      </function-decl>
+      <function-decl name='drm_mode_get_hv_timing' mangled-name='drm_mode_get_hv_timing' filepath='drivers/gpu/drm/drm_modes.c' line='788' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_get_hv_timing'>
+        <parameter type-id='745b39e8' name='mode' filepath='drivers/gpu/drm/drm_modes.c' line='788' column='1'/>
+        <parameter type-id='7292109c' name='hdisplay' filepath='drivers/gpu/drm/drm_modes.c' line='789' column='1'/>
+        <parameter type-id='7292109c' name='vdisplay' filepath='drivers/gpu/drm/drm_modes.c' line='789' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_mode_is_420_also' mangled-name='drm_mode_is_420_also' filepath='drivers/gpu/drm/drm_modes.c' line='2051' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_is_420_also'>
+        <parameter type-id='f3b1f9bd' name='display' filepath='drivers/gpu/drm/drm_modes.c' line='2051' column='1'/>
+        <parameter type-id='745b39e8' name='mode' filepath='drivers/gpu/drm/drm_modes.c' line='2052' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_mode_is_420_only' mangled-name='drm_mode_is_420_only' filepath='drivers/gpu/drm/drm_modes.c' line='2031' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_is_420_only'>
+        <parameter type-id='f3b1f9bd' name='display' filepath='drivers/gpu/drm/drm_modes.c' line='2031' column='1'/>
+        <parameter type-id='745b39e8' name='mode' filepath='drivers/gpu/drm/drm_modes.c' line='2032' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_mode_match' mangled-name='drm_mode_match' filepath='drivers/gpu/drm/drm_modes.c' line='980' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_match'>
+        <parameter type-id='745b39e8' name='mode1' filepath='drivers/gpu/drm/drm_modes.c' line='980' column='1'/>
+        <parameter type-id='745b39e8' name='mode2' filepath='drivers/gpu/drm/drm_modes.c' line='981' column='1'/>
+        <parameter type-id='f0981eeb' name='match_flags' filepath='drivers/gpu/drm/drm_modes.c' line='982' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_mode_object_find' mangled-name='drm_mode_object_find' filepath='drivers/gpu/drm/drm_mode_object.c' line='173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_object_find'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_mode_object.c' line='173' column='1'/>
+        <parameter type-id='9e99ecc1' name='file_priv' filepath='drivers/gpu/drm/drm_mode_object.c' line='174' column='1'/>
+        <parameter type-id='8f92235e' name='id' filepath='drivers/gpu/drm/drm_mode_object.c' line='175' column='1'/>
+        <parameter type-id='8f92235e' name='type' filepath='drivers/gpu/drm/drm_mode_object.c' line='175' column='1'/>
+        <return type-id='c5417630'/>
+      </function-decl>
+      <function-decl name='drm_mode_object_get' mangled-name='drm_mode_object_get' filepath='drivers/gpu/drm/drm_mode_object.c' line='209' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_object_get'>
+        <parameter type-id='c5417630' name='obj' filepath='drivers/gpu/drm/drm_mode_object.c' line='209' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_mode_object_put' mangled-name='drm_mode_object_put' filepath='drivers/gpu/drm/drm_mode_object.c' line='192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_object_put'>
+        <parameter type-id='c5417630' name='obj' filepath='drivers/gpu/drm/drm_mode_object.c' line='192' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_mode_probed_add' mangled-name='drm_mode_probed_add' filepath='drivers/gpu/drm/drm_modes.c' line='107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_probed_add'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_modes.c' line='107' column='1'/>
+        <parameter type-id='11e02f83' name='mode' filepath='drivers/gpu/drm/drm_modes.c' line='108' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_mode_prune_invalid' mangled-name='drm_mode_prune_invalid' filepath='drivers/gpu/drm/drm_modes.c' line='1255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_prune_invalid'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_modes.c' line='1255' column='1'/>
+        <parameter type-id='e84b031a' name='mode_list' filepath='drivers/gpu/drm/drm_modes.c' line='1256' column='1'/>
+        <parameter type-id='b50a4934' name='verbose' filepath='drivers/gpu/drm/drm_modes.c' line='1256' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_mode_set_crtcinfo' mangled-name='drm_mode_set_crtcinfo' filepath='drivers/gpu/drm/drm_modes.c' line='814' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_set_crtcinfo'>
+        <parameter type-id='11e02f83' name='p' filepath='drivers/gpu/drm/drm_modes.c' line='814' column='1'/>
+        <parameter type-id='95e97e5e' name='adjust_flags' filepath='drivers/gpu/drm/drm_modes.c' line='814' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_mode_set_name' mangled-name='drm_mode_set_name' filepath='drivers/gpu/drm/drm_modes.c' line='740' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_set_name'>
+        <parameter type-id='11e02f83' name='mode' filepath='drivers/gpu/drm/drm_modes.c' line='740' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_mode_sort' mangled-name='drm_mode_sort' filepath='drivers/gpu/drm/drm_modes.c' line='1317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_sort'>
+        <parameter type-id='e84b031a' name='mode_list' filepath='drivers/gpu/drm/drm_modes.c' line='1317' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_mode_validate_size' mangled-name='drm_mode_validate_size' filepath='drivers/gpu/drm/drm_modes.c' line='1151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_validate_size'>
+        <parameter type-id='745b39e8' name='mode' filepath='drivers/gpu/drm/drm_modes.c' line='1151' column='1'/>
+        <parameter type-id='95e97e5e' name='maxX' filepath='drivers/gpu/drm/drm_modes.c' line='1152' column='1'/>
+        <parameter type-id='95e97e5e' name='maxY' filepath='drivers/gpu/drm/drm_modes.c' line='1152' column='1'/>
+        <return type-id='4fb62cb0'/>
+      </function-decl>
+      <function-decl name='drm_mode_vrefresh' mangled-name='drm_mode_vrefresh' filepath='drivers/gpu/drm/drm_modes.c' line='758' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_vrefresh'>
+        <parameter type-id='745b39e8' name='mode' filepath='drivers/gpu/drm/drm_modes.c' line='758' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_modeset_acquire_fini' mangled-name='drm_modeset_acquire_fini' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_modeset_acquire_fini'>
+        <parameter type-id='d1499e71' name='ctx' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='214' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_modeset_acquire_init' mangled-name='drm_modeset_acquire_init' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='198' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_modeset_acquire_init'>
+        <parameter type-id='d1499e71' name='ctx' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='198' column='1'/>
+        <parameter type-id='8f92235e' name='flags' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='199' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_modeset_backoff' mangled-name='drm_modeset_backoff' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='294' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_modeset_backoff'>
+        <parameter type-id='d1499e71' name='ctx' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='294' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_modeset_drop_locks' mangled-name='drm_modeset_drop_locks' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_modeset_drop_locks'>
+        <parameter type-id='d1499e71' name='ctx' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='226' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_modeset_lock' mangled-name='drm_modeset_lock' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='338' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_modeset_lock'>
+        <parameter type-id='b4b06bb8' name='lock' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='338' column='1'/>
+        <parameter type-id='d1499e71' name='ctx' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='339' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_modeset_lock_all' mangled-name='drm_modeset_lock_all' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='95' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_modeset_lock_all'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='95' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_modeset_lock_all_ctx' mangled-name='drm_modeset_lock_all_ctx' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_modeset_lock_all_ctx'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='395' column='1'/>
+        <parameter type-id='d1499e71' name='ctx' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='396' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_modeset_lock_init' mangled-name='drm_modeset_lock_init' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='313' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_modeset_lock_init'>
+        <parameter type-id='b4b06bb8' name='lock' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='313' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_modeset_unlock' mangled-name='drm_modeset_unlock' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='368' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_modeset_unlock'>
+        <parameter type-id='b4b06bb8' name='lock' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='368' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_modeset_unlock_all' mangled-name='drm_modeset_unlock_all' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_modeset_unlock_all'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_modeset_lock.c' line='149' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_object_attach_property' mangled-name='drm_object_attach_property' filepath='drivers/gpu/drm/drm_mode_object.c' line='231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_object_attach_property'>
+        <parameter type-id='c5417630' name='obj' filepath='drivers/gpu/drm/drm_mode_object.c' line='231' column='1'/>
+        <parameter type-id='26ea5d4c' name='property' filepath='drivers/gpu/drm/drm_mode_object.c' line='232' column='1'/>
+        <parameter type-id='9c313c2d' name='init_val' filepath='drivers/gpu/drm/drm_mode_object.c' line='233' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_object_property_set_value' mangled-name='drm_object_property_set_value' filepath='drivers/gpu/drm/drm_mode_object.c' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_object_property_set_value'>
+        <parameter type-id='c5417630' name='obj' filepath='drivers/gpu/drm/drm_mode_object.c' line='281' column='1'/>
+        <parameter type-id='26ea5d4c' name='property' filepath='drivers/gpu/drm/drm_mode_object.c' line='282' column='1'/>
+        <parameter type-id='9c313c2d' name='val' filepath='drivers/gpu/drm/drm_mode_object.c' line='282' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_of_component_match_add' mangled-name='drm_of_component_match_add' filepath='drivers/gpu/drm/drm_of.c' line='91' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_of_component_match_add'>
+        <parameter type-id='fa0b179b' name='master' filepath='drivers/gpu/drm/drm_of.c' line='91' column='1'/>
+        <parameter type-id='3630c5f2' name='matchptr' filepath='drivers/gpu/drm/drm_of.c' line='92' column='1'/>
+        <parameter type-id='92d15ae9' name='compare' filepath='drivers/gpu/drm/drm_of.c' line='93' column='1'/>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/gpu/drm/drm_of.c' line='94' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_of_component_probe' mangled-name='drm_of_component_probe' filepath='drivers/gpu/drm/drm_of.c' line='115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_of_component_probe'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpu/drm/drm_of.c' line='115' column='1'/>
+        <parameter type-id='92d15ae9' name='compare_of' filepath='drivers/gpu/drm/drm_of.c' line='116' column='1'/>
+        <parameter type-id='27729729' name='m_ops' filepath='drivers/gpu/drm/drm_of.c' line='117' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_of_crtc_port_mask' mangled-name='drm_of_crtc_port_mask' filepath='drivers/gpu/drm/drm_of.c' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_of_crtc_port_mask'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_of.c' line='34' column='1'/>
+        <parameter type-id='9a537bbe' name='port' filepath='drivers/gpu/drm/drm_of.c' line='35' column='1'/>
+        <return type-id='8f92235e'/>
+      </function-decl>
+      <function-decl name='drm_of_encoder_active_endpoint' mangled-name='drm_of_encoder_active_endpoint' filepath='drivers/gpu/drm/drm_of.c' line='196' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_of_encoder_active_endpoint'>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/gpu/drm/drm_of.c' line='196' column='1'/>
+        <parameter type-id='74d89ebd' name='encoder' filepath='drivers/gpu/drm/drm_of.c' line='197' column='1'/>
+        <parameter type-id='a5eb3c12' name='endpoint' filepath='drivers/gpu/drm/drm_of.c' line='198' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_of_find_panel_or_bridge' mangled-name='drm_of_find_panel_or_bridge' filepath='drivers/gpu/drm/drm_of.c' line='239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_of_find_panel_or_bridge'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/gpu/drm/drm_of.c' line='239' column='1'/>
+        <parameter type-id='95e97e5e' name='port' filepath='drivers/gpu/drm/drm_of.c' line='240' column='1'/>
+        <parameter type-id='95e97e5e' name='endpoint' filepath='drivers/gpu/drm/drm_of.c' line='240' column='1'/>
+        <parameter type-id='ef04c267' name='panel' filepath='drivers/gpu/drm/drm_of.c' line='241' column='1'/>
+        <parameter type-id='f30fb6b2' name='bridge' filepath='drivers/gpu/drm/drm_of.c' line='242' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_of_find_possible_crtcs' mangled-name='drm_of_find_possible_crtcs' filepath='drivers/gpu/drm/drm_of.c' line='62' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_of_find_possible_crtcs'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_of.c' line='62' column='1'/>
+        <parameter type-id='9a537bbe' name='port' filepath='drivers/gpu/drm/drm_of.c' line='63' column='1'/>
+        <return type-id='8f92235e'/>
+      </function-decl>
+      <function-decl name='drm_open' mangled-name='drm_open' filepath='drivers/gpu/drm/drm_file.c' line='410' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_open'>
+        <parameter type-id='7e666abe' name='inode' filepath='drivers/gpu/drm/drm_file.c' line='410' column='1'/>
+        <parameter type-id='77e79a4b' name='filp' filepath='drivers/gpu/drm/drm_file.c' line='410' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_panel_add' mangled-name='drm_panel_add' filepath='drivers/gpu/drm/drm_panel.c' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_panel_add'>
+        <parameter type-id='c5491077' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='74' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_panel_bridge_add_typed' mangled-name='drm_panel_bridge_add_typed' filepath='drivers/gpu/drm/bridge/panel.c' line='202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_panel_bridge_add_typed'>
+        <parameter type-id='c5491077' name='panel' filepath='drivers/gpu/drm/bridge/panel.c' line='202' column='1'/>
+        <parameter type-id='19c2251e' name='connector_type' filepath='drivers/gpu/drm/bridge/panel.c' line='203' column='1'/>
+        <return type-id='8582e5ec'/>
+      </function-decl>
+      <function-decl name='drm_panel_bridge_connector' mangled-name='drm_panel_bridge_connector' filepath='drivers/gpu/drm/bridge/panel.c' line='327' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_panel_bridge_connector'>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/bridge/panel.c' line='327' column='1'/>
+        <return type-id='4db02c58'/>
+      </function-decl>
+      <function-decl name='drm_panel_bridge_remove' mangled-name='drm_panel_bridge_remove' filepath='drivers/gpu/drm/bridge/panel.c' line='237' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_panel_bridge_remove'>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/bridge/panel.c' line='237' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_panel_disable' mangled-name='drm_panel_disable' filepath='drivers/gpu/drm/drm_panel.c' line='183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_panel_disable'>
+        <parameter type-id='c5491077' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='183' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_panel_dp_aux_backlight' mangled-name='drm_panel_dp_aux_backlight' filepath='drivers/gpu/drm/drm_dp_helper.c' line='3505' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_panel_dp_aux_backlight'>
+        <parameter type-id='c5491077' name='panel' filepath='drivers/gpu/drm/drm_dp_helper.c' line='3505' column='1'/>
+        <parameter type-id='7c5f8cd8' name='aux' filepath='drivers/gpu/drm/drm_dp_helper.c' line='3505' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_panel_enable' mangled-name='drm_panel_enable' filepath='drivers/gpu/drm/drm_panel.c' line='151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_panel_enable'>
+        <parameter type-id='c5491077' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='151' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_panel_get_modes' mangled-name='drm_panel_get_modes' filepath='drivers/gpu/drm/drm_panel.c' line='213' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_panel_get_modes'>
+        <parameter type-id='c5491077' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='213' column='1'/>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_panel.c' line='214' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_panel_init' mangled-name='drm_panel_init' filepath='drivers/gpu/drm/drm_panel.c' line='57' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_panel_init'>
+        <parameter type-id='c5491077' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='57' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpu/drm/drm_panel.c' line='57' column='1'/>
+        <parameter type-id='cda6c21a' name='funcs' filepath='drivers/gpu/drm/drm_panel.c' line='58' column='1'/>
+        <parameter type-id='95e97e5e' name='connector_type' filepath='drivers/gpu/drm/drm_panel.c' line='58' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_panel_of_backlight' mangled-name='drm_panel_of_backlight' filepath='drivers/gpu/drm/drm_panel.c' line='329' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_panel_of_backlight'>
+        <parameter type-id='c5491077' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='329' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_panel_prepare' mangled-name='drm_panel_prepare' filepath='drivers/gpu/drm/drm_panel.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_panel_prepare'>
+        <parameter type-id='c5491077' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='106' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_panel_remove' mangled-name='drm_panel_remove' filepath='drivers/gpu/drm/drm_panel.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_panel_remove'>
+        <parameter type-id='c5491077' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='88' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_panel_unprepare' mangled-name='drm_panel_unprepare' filepath='drivers/gpu/drm/drm_panel.c' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_panel_unprepare'>
+        <parameter type-id='c5491077' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='129' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_plane_cleanup' mangled-name='drm_plane_cleanup' filepath='drivers/gpu/drm/drm_plane.c' line='527' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_plane_cleanup'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_plane.c' line='527' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_plane_create_alpha_property' mangled-name='drm_plane_create_alpha_property' filepath='drivers/gpu/drm/drm_blend.c' line='219' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_plane_create_alpha_property'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_blend.c' line='219' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_plane_create_blend_mode_property' mangled-name='drm_plane_create_blend_mode_property' filepath='drivers/gpu/drm/drm_blend.c' line='572' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_plane_create_blend_mode_property'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_blend.c' line='572' column='1'/>
+        <parameter type-id='f0981eeb' name='supported_modes' filepath='drivers/gpu/drm/drm_blend.c' line='573' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_plane_create_color_properties' mangled-name='drm_plane_create_color_properties' filepath='drivers/gpu/drm/drm_color_mgmt.c' line='523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_plane_create_color_properties'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_color_mgmt.c' line='523' column='1'/>
+        <parameter type-id='19c2251e' name='supported_encodings' filepath='drivers/gpu/drm/drm_color_mgmt.c' line='524' column='1'/>
+        <parameter type-id='19c2251e' name='supported_ranges' filepath='drivers/gpu/drm/drm_color_mgmt.c' line='525' column='1'/>
+        <parameter type-id='e57e5f2b' name='default_encoding' filepath='drivers/gpu/drm/drm_color_mgmt.c' line='526' column='1'/>
+        <parameter type-id='322e1b47' name='default_range' filepath='drivers/gpu/drm/drm_color_mgmt.c' line='527' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_plane_create_rotation_property' mangled-name='drm_plane_create_rotation_property' filepath='drivers/gpu/drm/drm_blend.c' line='272' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_plane_create_rotation_property'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_blend.c' line='272' column='1'/>
+        <parameter type-id='f0981eeb' name='rotation' filepath='drivers/gpu/drm/drm_blend.c' line='273' column='1'/>
+        <parameter type-id='f0981eeb' name='supported_rotations' filepath='drivers/gpu/drm/drm_blend.c' line='274' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_plane_create_scaling_filter_property' mangled-name='drm_plane_create_scaling_filter_property' filepath='drivers/gpu/drm/drm_plane.c' line='1560' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_plane_create_scaling_filter_property'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_plane.c' line='1560' column='1'/>
+        <parameter type-id='f0981eeb' name='supported_filters' filepath='drivers/gpu/drm/drm_plane.c' line='1561' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_plane_create_zpos_immutable_property' mangled-name='drm_plane_create_zpos_immutable_property' filepath='drivers/gpu/drm/drm_blend.c' line='408' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_plane_create_zpos_immutable_property'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_blend.c' line='408' column='1'/>
+        <parameter type-id='f0981eeb' name='zpos' filepath='drivers/gpu/drm/drm_blend.c' line='409' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_plane_create_zpos_property' mangled-name='drm_plane_create_zpos_property' filepath='drivers/gpu/drm/drm_blend.c' line='369' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_plane_create_zpos_property'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_blend.c' line='369' column='1'/>
+        <parameter type-id='f0981eeb' name='zpos' filepath='drivers/gpu/drm/drm_blend.c' line='370' column='1'/>
+        <parameter type-id='f0981eeb' name='min' filepath='drivers/gpu/drm/drm_blend.c' line='371' column='1'/>
+        <parameter type-id='f0981eeb' name='max' filepath='drivers/gpu/drm/drm_blend.c' line='371' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_plane_enable_fb_damage_clips' mangled-name='drm_plane_enable_fb_damage_clips' filepath='drivers/gpu/drm/drm_plane.c' line='1444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_plane_enable_fb_damage_clips'>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_plane.c' line='1444' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_plane_from_index' mangled-name='drm_plane_from_index' filepath='drivers/gpu/drm/drm_plane.c' line='566' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_plane_from_index'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_plane.c' line='566' column='1'/>
+        <parameter type-id='95e97e5e' name='idx' filepath='drivers/gpu/drm/drm_plane.c' line='566' column='1'/>
+        <return type-id='a6711537'/>
+      </function-decl>
+      <function-decl name='drm_poll' mangled-name='drm_poll' filepath='drivers/gpu/drm/drm_file.c' line='654' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_poll'>
+        <parameter type-id='77e79a4b' name='filp' filepath='drivers/gpu/drm/drm_file.c' line='654' column='1'/>
+        <parameter type-id='f0acc909' name='wait' filepath='drivers/gpu/drm/drm_file.c' line='654' column='1'/>
+        <return type-id='8f254b08'/>
+      </function-decl>
+      <function-decl name='drm_prime_gem_destroy' mangled-name='drm_prime_gem_destroy' filepath='drivers/gpu/drm/drm_prime.c' line='1049' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_prime_gem_destroy'>
+        <parameter type-id='abd62a96' name='obj' filepath='drivers/gpu/drm/drm_prime.c' line='1049' column='1'/>
+        <parameter type-id='4adb0e6a' name='sg' filepath='drivers/gpu/drm/drm_prime.c' line='1049' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_prime_pages_to_sg' mangled-name='drm_prime_pages_to_sg' filepath='drivers/gpu/drm/drm_prime.c' line='812' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_prime_pages_to_sg'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_prime.c' line='812' column='1'/>
+        <parameter type-id='9f93c9da' name='pages' filepath='drivers/gpu/drm/drm_prime.c' line='813' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_pages' filepath='drivers/gpu/drm/drm_prime.c' line='813' column='1'/>
+        <return type-id='4adb0e6a'/>
+      </function-decl>
+      <function-decl name='drm_prime_sg_to_dma_addr_array' mangled-name='drm_prime_sg_to_dma_addr_array' filepath='drivers/gpu/drm/drm_prime.c' line='1026' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_prime_sg_to_dma_addr_array'>
+        <parameter type-id='4adb0e6a' name='sgt' filepath='drivers/gpu/drm/drm_prime.c' line='1026' column='1'/>
+        <parameter type-id='e835b5d8' name='addrs' filepath='drivers/gpu/drm/drm_prime.c' line='1026' column='1'/>
+        <parameter type-id='95e97e5e' name='max_entries' filepath='drivers/gpu/drm/drm_prime.c' line='1027' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_prime_sg_to_page_array' mangled-name='drm_prime_sg_to_page_array' filepath='drivers/gpu/drm/drm_prime.c' line='999' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_prime_sg_to_page_array'>
+        <parameter type-id='4adb0e6a' name='sgt' filepath='drivers/gpu/drm/drm_prime.c' line='999' column='1'/>
+        <parameter type-id='9f93c9da' name='pages' filepath='drivers/gpu/drm/drm_prime.c' line='1000' column='1'/>
+        <parameter type-id='95e97e5e' name='max_entries' filepath='drivers/gpu/drm/drm_prime.c' line='1001' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_print_bits' mangled-name='drm_print_bits' filepath='drivers/gpu/drm/drm_print.c' line='217' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_print_bits'>
+        <parameter type-id='7ac48c21' name='p' filepath='drivers/gpu/drm/drm_print.c' line='217' column='1'/>
+        <parameter type-id='7359adad' name='value' filepath='drivers/gpu/drm/drm_print.c' line='217' column='1'/>
+        <parameter type-id='13956559' name='bits' filepath='drivers/gpu/drm/drm_print.c' line='218' column='1'/>
+        <parameter type-id='f0981eeb' name='nbits' filepath='drivers/gpu/drm/drm_print.c' line='218' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_printf' mangled-name='drm_printf' filepath='drivers/gpu/drm/drm_print.c' line='197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_printf'>
+        <parameter type-id='7ac48c21' name='p' filepath='drivers/gpu/drm/drm_print.c' line='197' column='1'/>
+        <parameter type-id='80f4b756' name='f' filepath='drivers/gpu/drm/drm_print.c' line='197' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_probe_ddc' mangled-name='drm_probe_ddc' filepath='drivers/gpu/drm/drm_edid.c' line='2037' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_probe_ddc'>
+        <parameter type-id='b9af02c3' name='adapter' filepath='drivers/gpu/drm/drm_edid.c' line='2037' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_property_add_enum' mangled-name='drm_property_add_enum' filepath='drivers/gpu/drm/drm_property.c' line='390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_property_add_enum'>
+        <parameter type-id='26ea5d4c' name='property' filepath='drivers/gpu/drm/drm_property.c' line='390' column='1'/>
+        <parameter type-id='9c313c2d' name='value' filepath='drivers/gpu/drm/drm_property.c' line='391' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/gpu/drm/drm_property.c' line='391' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_property_blob_get' mangled-name='drm_property_blob_get' filepath='drivers/gpu/drm/drm_property.c' line='634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_property_blob_get'>
+        <parameter type-id='c4126d52' name='blob' filepath='drivers/gpu/drm/drm_property.c' line='634' column='1'/>
+        <return type-id='c4126d52'/>
+      </function-decl>
+      <function-decl name='drm_property_blob_put' mangled-name='drm_property_blob_put' filepath='drivers/gpu/drm/drm_property.c' line='603' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_property_blob_put'>
+        <parameter type-id='c4126d52' name='blob' filepath='drivers/gpu/drm/drm_property.c' line='603' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_property_create' mangled-name='drm_property_create' filepath='drivers/gpu/drm/drm_property.c' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_property_create'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_property.c' line='96' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='drivers/gpu/drm/drm_property.c' line='97' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/gpu/drm/drm_property.c' line='97' column='1'/>
+        <parameter type-id='95e97e5e' name='num_values' filepath='drivers/gpu/drm/drm_property.c' line='98' column='1'/>
+        <return type-id='26ea5d4c'/>
+      </function-decl>
+      <function-decl name='drm_property_create_bitmask' mangled-name='drm_property_create_bitmask' filepath='drivers/gpu/drm/drm_property.c' line='210' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_property_create_bitmask'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_property.c' line='210' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='drivers/gpu/drm/drm_property.c' line='211' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/gpu/drm/drm_property.c' line='211' column='1'/>
+        <parameter type-id='b807105c' name='props' filepath='drivers/gpu/drm/drm_property.c' line='212' column='1'/>
+        <parameter type-id='95e97e5e' name='num_props' filepath='drivers/gpu/drm/drm_property.c' line='213' column='1'/>
+        <parameter type-id='9c313c2d' name='supported_bits' filepath='drivers/gpu/drm/drm_property.c' line='214' column='1'/>
+        <return type-id='26ea5d4c'/>
+      </function-decl>
+      <function-decl name='drm_property_create_blob' mangled-name='drm_property_create_blob' filepath='drivers/gpu/drm/drm_property.c' line='558' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_property_create_blob'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_property.c' line='558' column='1'/>
+        <parameter type-id='b59d7dce' name='length' filepath='drivers/gpu/drm/drm_property.c' line='558' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/gpu/drm/drm_property.c' line='559' column='1'/>
+        <return type-id='c4126d52'/>
+      </function-decl>
+      <function-decl name='drm_property_create_bool' mangled-name='drm_property_create_bool' filepath='drivers/gpu/drm/drm_property.c' line='369' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_property_create_bool'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_property.c' line='369' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='drivers/gpu/drm/drm_property.c' line='370' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/gpu/drm/drm_property.c' line='370' column='1'/>
+        <return type-id='26ea5d4c'/>
+      </function-decl>
+      <function-decl name='drm_property_create_enum' mangled-name='drm_property_create_enum' filepath='drivers/gpu/drm/drm_property.c' line='162' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_property_create_enum'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_property.c' line='162' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='drivers/gpu/drm/drm_property.c' line='163' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/gpu/drm/drm_property.c' line='163' column='1'/>
+        <parameter type-id='b807105c' name='props' filepath='drivers/gpu/drm/drm_property.c' line='164' column='1'/>
+        <parameter type-id='95e97e5e' name='num_values' filepath='drivers/gpu/drm/drm_property.c' line='165' column='1'/>
+        <return type-id='26ea5d4c'/>
+      </function-decl>
+      <function-decl name='drm_property_create_range' mangled-name='drm_property_create_range' filepath='drivers/gpu/drm/drm_property.c' line='277' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_property_create_range'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_property.c' line='277' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='drivers/gpu/drm/drm_property.c' line='278' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/gpu/drm/drm_property.c' line='278' column='1'/>
+        <parameter type-id='9c313c2d' name='min' filepath='drivers/gpu/drm/drm_property.c' line='279' column='1'/>
+        <parameter type-id='9c313c2d' name='max' filepath='drivers/gpu/drm/drm_property.c' line='279' column='1'/>
+        <return type-id='26ea5d4c'/>
+      </function-decl>
+      <function-decl name='drm_property_create_signed_range' mangled-name='drm_property_create_signed_range' filepath='drivers/gpu/drm/drm_property.c' line='305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_property_create_signed_range'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_property.c' line='305' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='drivers/gpu/drm/drm_property.c' line='306' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/gpu/drm/drm_property.c' line='306' column='1'/>
+        <parameter type-id='9da381c4' name='min' filepath='drivers/gpu/drm/drm_property.c' line='307' column='1'/>
+        <parameter type-id='9da381c4' name='max' filepath='drivers/gpu/drm/drm_property.c' line='307' column='1'/>
+        <return type-id='26ea5d4c'/>
+      </function-decl>
+      <function-decl name='drm_property_destroy' mangled-name='drm_property_destroy' filepath='drivers/gpu/drm/drm_property.c' line='442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_property_destroy'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_property.c' line='442' column='1'/>
+        <parameter type-id='26ea5d4c' name='property' filepath='drivers/gpu/drm/drm_property.c' line='442' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_property_lookup_blob' mangled-name='drm_property_lookup_blob' filepath='drivers/gpu/drm/drm_property.c' line='653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_property_lookup_blob'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_property.c' line='653' column='1'/>
+        <parameter type-id='8f92235e' name='id' filepath='drivers/gpu/drm/drm_property.c' line='654' column='1'/>
+        <return type-id='c4126d52'/>
+      </function-decl>
+      <function-decl name='drm_property_replace_blob' mangled-name='drm_property_replace_blob' filepath='drivers/gpu/drm/drm_property.c' line='741' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_property_replace_blob'>
+        <parameter type-id='210253e8' name='blob' filepath='drivers/gpu/drm/drm_property.c' line='741' column='1'/>
+        <parameter type-id='c4126d52' name='new_blob' filepath='drivers/gpu/drm/drm_property.c' line='742' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_property_replace_global_blob' mangled-name='drm_property_replace_global_blob' filepath='drivers/gpu/drm/drm_property.c' line='693' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_property_replace_global_blob'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_property.c' line='693' column='1'/>
+        <parameter type-id='210253e8' name='replace' filepath='drivers/gpu/drm/drm_property.c' line='694' column='1'/>
+        <parameter type-id='b59d7dce' name='length' filepath='drivers/gpu/drm/drm_property.c' line='695' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/gpu/drm/drm_property.c' line='696' column='1'/>
+        <parameter type-id='c5417630' name='obj_holds_id' filepath='drivers/gpu/drm/drm_property.c' line='697' column='1'/>
+        <parameter type-id='26ea5d4c' name='prop_holds_id' filepath='drivers/gpu/drm/drm_property.c' line='698' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_put_dev' mangled-name='drm_put_dev' filepath='drivers/gpu/drm/drm_drv.c' line='399' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_put_dev'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_drv.c' line='399' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_puts' mangled-name='drm_puts' filepath='drivers/gpu/drm/drm_print.c' line='183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_puts'>
+        <parameter type-id='7ac48c21' name='p' filepath='drivers/gpu/drm/drm_print.c' line='183' column='1'/>
+        <parameter type-id='80f4b756' name='str' filepath='drivers/gpu/drm/drm_print.c' line='183' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_read' mangled-name='drm_read' filepath='drivers/gpu/drm/drm_file.c' line='569' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_read'>
+        <parameter type-id='77e79a4b' name='filp' filepath='drivers/gpu/drm/drm_file.c' line='569' column='1'/>
+        <parameter type-id='26a90f95' name='buffer' filepath='drivers/gpu/drm/drm_file.c' line='569' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='drivers/gpu/drm/drm_file.c' line='570' column='1'/>
+        <parameter type-id='b53e8dbb' name='offset' filepath='drivers/gpu/drm/drm_file.c' line='570' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='drm_rect_calc_hscale' mangled-name='drm_rect_calc_hscale' filepath='drivers/gpu/drm/drm_rect.c' line='169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_rect_calc_hscale'>
+        <parameter type-id='7d69a4de' name='src' filepath='drivers/gpu/drm/drm_rect.c' line='169' column='1'/>
+        <parameter type-id='7d69a4de' name='dst' filepath='drivers/gpu/drm/drm_rect.c' line='170' column='1'/>
+        <parameter type-id='95e97e5e' name='min_hscale' filepath='drivers/gpu/drm/drm_rect.c' line='171' column='1'/>
+        <parameter type-id='95e97e5e' name='max_hscale' filepath='drivers/gpu/drm/drm_rect.c' line='171' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_rect_calc_vscale' mangled-name='drm_rect_calc_vscale' filepath='drivers/gpu/drm/drm_rect.c' line='204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_rect_calc_vscale'>
+        <parameter type-id='7d69a4de' name='src' filepath='drivers/gpu/drm/drm_rect.c' line='204' column='1'/>
+        <parameter type-id='7d69a4de' name='dst' filepath='drivers/gpu/drm/drm_rect.c' line='205' column='1'/>
+        <parameter type-id='95e97e5e' name='min_vscale' filepath='drivers/gpu/drm/drm_rect.c' line='206' column='1'/>
+        <parameter type-id='95e97e5e' name='max_vscale' filepath='drivers/gpu/drm/drm_rect.c' line='206' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_rect_clip_scaled' mangled-name='drm_rect_clip_scaled' filepath='drivers/gpu/drm/drm_rect.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_rect_clip_scaled'>
+        <parameter type-id='c91d6c11' name='src' filepath='drivers/gpu/drm/drm_rect.c' line='92' column='1'/>
+        <parameter type-id='c91d6c11' name='dst' filepath='drivers/gpu/drm/drm_rect.c' line='92' column='1'/>
+        <parameter type-id='7d69a4de' name='clip' filepath='drivers/gpu/drm/drm_rect.c' line='93' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_rect_intersect' mangled-name='drm_rect_intersect' filepath='drivers/gpu/drm/drm_rect.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_rect_intersect'>
+        <parameter type-id='c91d6c11' name='r1' filepath='drivers/gpu/drm/drm_rect.c' line='44' column='1'/>
+        <parameter type-id='7d69a4de' name='r2' filepath='drivers/gpu/drm/drm_rect.c' line='44' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_release' mangled-name='drm_release' filepath='drivers/gpu/drm/drm_file.c' line='484' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_release'>
+        <parameter type-id='7e666abe' name='inode' filepath='drivers/gpu/drm/drm_file.c' line='484' column='1'/>
+        <parameter type-id='77e79a4b' name='filp' filepath='drivers/gpu/drm/drm_file.c' line='484' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_rotation_simplify' mangled-name='drm_rotation_simplify' filepath='drivers/gpu/drm/drm_blend.c' line='325' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_rotation_simplify'>
+        <parameter type-id='f0981eeb' name='rotation' filepath='drivers/gpu/drm/drm_blend.c' line='325' column='1'/>
+        <parameter type-id='f0981eeb' name='supported_rotations' filepath='drivers/gpu/drm/drm_blend.c' line='326' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='drm_scdc_read' mangled-name='drm_scdc_read' filepath='drivers/gpu/drm/drm_scdc_helper.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_scdc_read'>
+        <parameter type-id='b9af02c3' name='adapter' filepath='drivers/gpu/drm/drm_scdc_helper.c' line='53' column='1'/>
+        <parameter type-id='f9b06939' name='offset' filepath='drivers/gpu/drm/drm_scdc_helper.c' line='53' column='1'/>
+        <parameter type-id='eaa32e2f' name='buffer' filepath='drivers/gpu/drm/drm_scdc_helper.c' line='53' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/gpu/drm/drm_scdc_helper.c' line='54' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='drm_scdc_set_high_tmds_clock_ratio' mangled-name='drm_scdc_set_high_tmds_clock_ratio' filepath='drivers/gpu/drm/drm_scdc_helper.c' line='219' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_scdc_set_high_tmds_clock_ratio'>
+        <parameter type-id='b9af02c3' name='adapter' filepath='drivers/gpu/drm/drm_scdc_helper.c' line='219' column='1'/>
+        <parameter type-id='b50a4934' name='set' filepath='drivers/gpu/drm/drm_scdc_helper.c' line='219' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_scdc_set_scrambling' mangled-name='drm_scdc_set_scrambling' filepath='drivers/gpu/drm/drm_scdc_helper.c' line='164' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_scdc_set_scrambling'>
+        <parameter type-id='b9af02c3' name='adapter' filepath='drivers/gpu/drm/drm_scdc_helper.c' line='164' column='1'/>
+        <parameter type-id='b50a4934' name='enable' filepath='drivers/gpu/drm/drm_scdc_helper.c' line='164' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='drm_scdc_write' mangled-name='drm_scdc_write' filepath='drivers/gpu/drm/drm_scdc_helper.c' line='93' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_scdc_write'>
+        <parameter type-id='b9af02c3' name='adapter' filepath='drivers/gpu/drm/drm_scdc_helper.c' line='93' column='1'/>
+        <parameter type-id='f9b06939' name='offset' filepath='drivers/gpu/drm/drm_scdc_helper.c' line='93' column='1'/>
+        <parameter type-id='eaa32e2f' name='buffer' filepath='drivers/gpu/drm/drm_scdc_helper.c' line='94' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/gpu/drm/drm_scdc_helper.c' line='94' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='drm_self_refresh_helper_alter_state' mangled-name='drm_self_refresh_helper_alter_state' filepath='drivers/gpu/drm/drm_self_refresh_helper.c' line='187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_self_refresh_helper_alter_state'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_self_refresh_helper.c' line='187' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_self_refresh_helper_cleanup' mangled-name='drm_self_refresh_helper_cleanup' filepath='drivers/gpu/drm/drm_self_refresh_helper.c' line='268' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_self_refresh_helper_cleanup'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_self_refresh_helper.c' line='268' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_self_refresh_helper_init' mangled-name='drm_self_refresh_helper_init' filepath='drivers/gpu/drm/drm_self_refresh_helper.c' line='232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_self_refresh_helper_init'>
+        <parameter type-id='b64ad7cb' name='crtc' filepath='drivers/gpu/drm/drm_self_refresh_helper.c' line='232' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_self_refresh_helper_update_avg_times' mangled-name='drm_self_refresh_helper_update_avg_times' filepath='drivers/gpu/drm/drm_self_refresh_helper.c' line='145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_self_refresh_helper_update_avg_times'>
+        <parameter type-id='e3dd029e' name='state' filepath='drivers/gpu/drm/drm_self_refresh_helper.c' line='145' column='1'/>
+        <parameter type-id='f0981eeb' name='commit_time_ms' filepath='drivers/gpu/drm/drm_self_refresh_helper.c' line='146' column='1'/>
+        <parameter type-id='f0981eeb' name='new_self_refresh_mask' filepath='drivers/gpu/drm/drm_self_refresh_helper.c' line='147' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_send_event' mangled-name='drm_send_event' filepath='drivers/gpu/drm/drm_file.c' line='867' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_send_event'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_file.c' line='867' column='1'/>
+        <parameter type-id='16ab0351' name='e' filepath='drivers/gpu/drm/drm_file.c' line='867' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_send_event_locked' mangled-name='drm_send_event_locked' filepath='drivers/gpu/drm/drm_file.c' line='846' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_send_event_locked'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_file.c' line='846' column='1'/>
+        <parameter type-id='16ab0351' name='e' filepath='drivers/gpu/drm/drm_file.c' line='846' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_send_event_timestamp_locked' mangled-name='drm_send_event_timestamp_locked' filepath='drivers/gpu/drm/drm_file.c' line='825' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_send_event_timestamp_locked'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_file.c' line='825' column='1'/>
+        <parameter type-id='16ab0351' name='e' filepath='drivers/gpu/drm/drm_file.c' line='826' column='1'/>
+        <parameter type-id='fbc017ef' name='timestamp' filepath='drivers/gpu/drm/drm_file.c' line='826' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_set_preferred_mode' mangled-name='drm_set_preferred_mode' filepath='drivers/gpu/drm/drm_edid.c' line='5484' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_set_preferred_mode'>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_edid.c' line='5484' column='1'/>
+        <parameter type-id='95e97e5e' name='hpref' filepath='drivers/gpu/drm/drm_edid.c' line='5485' column='1'/>
+        <parameter type-id='95e97e5e' name='vpref' filepath='drivers/gpu/drm/drm_edid.c' line='5485' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_simple_display_pipe_attach_bridge' mangled-name='drm_simple_display_pipe_attach_bridge' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_simple_display_pipe_attach_bridge'>
+        <parameter type-id='478ed79d' name='pipe' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='359' column='1'/>
+        <parameter type-id='8582e5ec' name='bridge' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='360' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_simple_display_pipe_init' mangled-name='drm_simple_display_pipe_init' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_simple_display_pipe_init'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='390' column='1'/>
+        <parameter type-id='478ed79d' name='pipe' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='391' column='1'/>
+        <parameter type-id='c81c0868' name='funcs' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='392' column='1'/>
+        <parameter type-id='a6798dcc' name='formats' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='393' column='1'/>
+        <parameter type-id='f0981eeb' name='format_count' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='393' column='1'/>
+        <parameter type-id='713a56f5' name='format_modifiers' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='394' column='1'/>
+        <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='395' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_simple_encoder_init' mangled-name='drm_simple_encoder_init' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_simple_encoder_init'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='68' column='1'/>
+        <parameter type-id='74d89ebd' name='encoder' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='69' column='1'/>
+        <parameter type-id='95e97e5e' name='encoder_type' filepath='drivers/gpu/drm/drm_simple_kms_helper.c' line='70' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_state_dump' mangled-name='drm_state_dump' filepath='drivers/gpu/drm/drm_atomic.c' line='1711' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_state_dump'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_atomic.c' line='1711' column='1'/>
+        <parameter type-id='7ac48c21' name='p' filepath='drivers/gpu/drm/drm_atomic.c' line='1711' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_syncobj_add_point' mangled-name='drm_syncobj_add_point' filepath='drivers/gpu/drm/drm_syncobj.c' line='285' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_syncobj_add_point'>
+        <parameter type-id='919f23a5' name='syncobj' filepath='drivers/gpu/drm/drm_syncobj.c' line='285' column='1'/>
+        <parameter type-id='e7ca900d' name='chain' filepath='drivers/gpu/drm/drm_syncobj.c' line='286' column='1'/>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/gpu/drm/drm_syncobj.c' line='287' column='1'/>
+        <parameter type-id='9c313c2d' name='point' filepath='drivers/gpu/drm/drm_syncobj.c' line='288' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_syncobj_create' mangled-name='drm_syncobj_create' filepath='drivers/gpu/drm/drm_syncobj.c' line='491' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_syncobj_create'>
+        <parameter type-id='cc84fa1d' name='out_syncobj' filepath='drivers/gpu/drm/drm_syncobj.c' line='491' column='1'/>
+        <parameter type-id='8f92235e' name='flags' filepath='drivers/gpu/drm/drm_syncobj.c' line='491' column='1'/>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/gpu/drm/drm_syncobj.c' line='492' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_syncobj_find' mangled-name='drm_syncobj_find' filepath='drivers/gpu/drm/drm_syncobj.c' line='222' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_syncobj_find'>
+        <parameter type-id='9e99ecc1' name='file_private' filepath='drivers/gpu/drm/drm_syncobj.c' line='222' column='1'/>
+        <parameter type-id='19c2251e' name='handle' filepath='drivers/gpu/drm/drm_syncobj.c' line='223' column='1'/>
+        <return type-id='919f23a5'/>
+      </function-decl>
+      <function-decl name='drm_syncobj_find_fence' mangled-name='drm_syncobj_find_fence' filepath='drivers/gpu/drm/drm_syncobj.c' line='382' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_syncobj_find_fence'>
+        <parameter type-id='9e99ecc1' name='file_private' filepath='drivers/gpu/drm/drm_syncobj.c' line='382' column='1'/>
+        <parameter type-id='19c2251e' name='handle' filepath='drivers/gpu/drm/drm_syncobj.c' line='383' column='1'/>
+        <parameter type-id='91ce1af9' name='point' filepath='drivers/gpu/drm/drm_syncobj.c' line='383' column='1'/>
+        <parameter type-id='91ce1af9' name='flags' filepath='drivers/gpu/drm/drm_syncobj.c' line='383' column='1'/>
+        <parameter type-id='be937eab' name='fence' filepath='drivers/gpu/drm/drm_syncobj.c' line='384' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_syncobj_free' mangled-name='drm_syncobj_free' filepath='drivers/gpu/drm/drm_syncobj.c' line='469' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_syncobj_free'>
+        <parameter type-id='aa29ecab' name='kref' filepath='drivers/gpu/drm/drm_syncobj.c' line='469' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_syncobj_get_fd' mangled-name='drm_syncobj_get_fd' filepath='drivers/gpu/drm/drm_syncobj.c' line='609' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_syncobj_get_fd'>
+        <parameter type-id='919f23a5' name='syncobj' filepath='drivers/gpu/drm/drm_syncobj.c' line='609' column='1'/>
+        <parameter type-id='7292109c' name='p_fd' filepath='drivers/gpu/drm/drm_syncobj.c' line='609' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_syncobj_get_handle' mangled-name='drm_syncobj_get_handle' filepath='drivers/gpu/drm/drm_syncobj.c' line='532' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_syncobj_get_handle'>
+        <parameter type-id='9e99ecc1' name='file_private' filepath='drivers/gpu/drm/drm_syncobj.c' line='532' column='1'/>
+        <parameter type-id='919f23a5' name='syncobj' filepath='drivers/gpu/drm/drm_syncobj.c' line='533' column='1'/>
+        <parameter type-id='f9409001' name='handle' filepath='drivers/gpu/drm/drm_syncobj.c' line='533' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_syncobj_replace_fence' mangled-name='drm_syncobj_replace_fence' filepath='drivers/gpu/drm/drm_syncobj.c' line='321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_syncobj_replace_fence'>
+        <parameter type-id='919f23a5' name='syncobj' filepath='drivers/gpu/drm/drm_syncobj.c' line='321' column='1'/>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/gpu/drm/drm_syncobj.c' line='322' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_timeout_abs_to_jiffies' mangled-name='drm_timeout_abs_to_jiffies' filepath='drivers/gpu/drm/drm_syncobj.c' line='1165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_timeout_abs_to_jiffies'>
+        <parameter type-id='9da381c4' name='timeout_nsec' filepath='drivers/gpu/drm/drm_syncobj.c' line='1165' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='drm_universal_plane_init' mangled-name='drm_universal_plane_init' filepath='drivers/gpu/drm/drm_plane.c' line='382' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_universal_plane_init'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_plane.c' line='382' column='1'/>
+        <parameter type-id='a6711537' name='plane' filepath='drivers/gpu/drm/drm_plane.c' line='382' column='1'/>
+        <parameter type-id='8f92235e' name='possible_crtcs' filepath='drivers/gpu/drm/drm_plane.c' line='383' column='1'/>
+        <parameter type-id='cfd5d066' name='funcs' filepath='drivers/gpu/drm/drm_plane.c' line='384' column='1'/>
+        <parameter type-id='a6798dcc' name='formats' filepath='drivers/gpu/drm/drm_plane.c' line='385' column='1'/>
+        <parameter type-id='f0981eeb' name='format_count' filepath='drivers/gpu/drm/drm_plane.c' line='385' column='1'/>
+        <parameter type-id='713a56f5' name='format_modifiers' filepath='drivers/gpu/drm/drm_plane.c' line='386' column='1'/>
+        <parameter type-id='5eed3c85' name='type' filepath='drivers/gpu/drm/drm_plane.c' line='387' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/gpu/drm/drm_plane.c' line='388' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_vblank_init' mangled-name='drm_vblank_init' filepath='drivers/gpu/drm/drm_vblank.c' line='523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_vblank_init'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_vblank.c' line='523' column='1'/>
+        <parameter type-id='f0981eeb' name='num_crtcs' filepath='drivers/gpu/drm/drm_vblank.c' line='523' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_wait_one_vblank' mangled-name='drm_wait_one_vblank' filepath='drivers/gpu/drm/drm_vblank.c' line='1249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_wait_one_vblank'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_vblank.c' line='1249' column='1'/>
+        <parameter type-id='f0981eeb' name='pipe' filepath='drivers/gpu/drm/drm_vblank.c' line='1249' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_writeback_cleanup_job' mangled-name='drm_writeback_cleanup_job' filepath='drivers/gpu/drm/drm_writeback.c' line='314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_writeback_cleanup_job'>
+        <parameter type-id='7b4ee155' name='job' filepath='drivers/gpu/drm/drm_writeback.c' line='314' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_writeback_connector_init' mangled-name='drm_writeback_connector_init' filepath='drivers/gpu/drm/drm_writeback.c' line='173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_writeback_connector_init'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_writeback.c' line='173' column='1'/>
+        <parameter type-id='2944961d' name='wb_connector' filepath='drivers/gpu/drm/drm_writeback.c' line='174' column='1'/>
+        <parameter type-id='3fb29739' name='con_funcs' filepath='drivers/gpu/drm/drm_writeback.c' line='175' column='1'/>
+        <parameter type-id='32162fa7' name='enc_helper_funcs' filepath='drivers/gpu/drm/drm_writeback.c' line='176' column='1'/>
+        <parameter type-id='aded214c' name='formats' filepath='drivers/gpu/drm/drm_writeback.c' line='177' column='1'/>
+        <parameter type-id='95e97e5e' name='n_formats' filepath='drivers/gpu/drm/drm_writeback.c' line='177' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drm_writeback_queue_job' mangled-name='drm_writeback_queue_job' filepath='drivers/gpu/drm/drm_writeback.c' line='299' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_writeback_queue_job'>
+        <parameter type-id='2944961d' name='wb_connector' filepath='drivers/gpu/drm/drm_writeback.c' line='299' column='1'/>
+        <parameter type-id='249ef586' name='conn_state' filepath='drivers/gpu/drm/drm_writeback.c' line='300' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drm_writeback_signal_completion' mangled-name='drm_writeback_signal_completion' filepath='drivers/gpu/drm/drm_writeback.c' line='366' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_writeback_signal_completion'>
+        <parameter type-id='2944961d' name='wb_connector' filepath='drivers/gpu/drm/drm_writeback.c' line='366' column='1'/>
+        <parameter type-id='95e97e5e' name='status' filepath='drivers/gpu/drm/drm_writeback.c' line='367' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='drmm_kmalloc' mangled-name='drmm_kmalloc' filepath='drivers/gpu/drm/drm_managed.c' line='188' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drmm_kmalloc'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_managed.c' line='188' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/gpu/drm/drm_managed.c' line='188' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='drivers/gpu/drm/drm_managed.c' line='188' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='drmm_mode_config_init' mangled-name='drmm_mode_config_init' filepath='drivers/gpu/drm/drm_mode_config.c' line='399' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drmm_mode_config_init'>
+        <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_mode_config.c' line='399' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='drop_nlink' mangled-name='drop_nlink' filepath='fs/inode.c' line='305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drop_nlink'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='305' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dst_release' mangled-name='dst_release' filepath='net/core/dst.c' line='167' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dst_release'>
+        <parameter type-id='141b6427' name='dst' filepath='net/core/dst.c' line='167' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='dummy_irq_chip' type-id='0f5f7920' mangled-name='dummy_irq_chip' visibility='default' filepath='kernel/irq/dummychip.c' line='53' column='1' elf-symbol-id='dummy_irq_chip'/>
+      <function-decl name='dump_backtrace' mangled-name='dump_backtrace' filepath='arch/arm64/kernel/stacktrace.c' line='161' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dump_backtrace'>
+        <parameter type-id='4616a179' name='regs' filepath='arch/arm64/kernel/stacktrace.c' line='161' column='1'/>
+        <parameter type-id='f23e2572' name='tsk' filepath='arch/arm64/kernel/stacktrace.c' line='161' column='1'/>
+        <parameter type-id='80f4b756' name='loglvl' filepath='arch/arm64/kernel/stacktrace.c' line='162' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dump_stack' mangled-name='dump_stack' filepath='lib/dump_stack.c' line='111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dump_stack'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dw_handle_msi_irq' mangled-name='dw_handle_msi_irq' filepath='drivers/pci/controller/dwc/pcie-designware-host.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dw_handle_msi_irq'>
+        <parameter type-id='d91dfd7a' name='pp' filepath='drivers/pci/controller/dwc/pcie-designware-host.c' line='56' column='1'/>
+        <return type-id='4bdecfd7'/>
+      </function-decl>
+      <function-decl name='dw_pcie_ep_init' mangled-name='dw_pcie_ep_init' filepath='drivers/pci/controller/dwc/pcie-designware-ep.c' line='675' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dw_pcie_ep_init'>
+        <parameter type-id='69a866d8' name='ep' filepath='drivers/pci/controller/dwc/pcie-designware-ep.c' line='675' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dw_pcie_find_capability' mangled-name='dw_pcie_find_capability' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='46' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dw_pcie_find_capability'>
+        <parameter type-id='8bf55d78' name='pci' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='46' column='1'/>
+        <parameter type-id='f9b06939' name='cap' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='46' column='1'/>
+        <return type-id='f9b06939'/>
+      </function-decl>
+      <function-decl name='dw_pcie_find_ext_capability' mangled-name='dw_pcie_find_ext_capability' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dw_pcie_find_ext_capability'>
+        <parameter type-id='8bf55d78' name='pci' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='101' column='1'/>
+        <parameter type-id='f9b06939' name='cap' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='101' column='1'/>
+        <return type-id='1dc6a898'/>
+      </function-decl>
+      <function-decl name='dw_pcie_host_deinit' mangled-name='dw_pcie_host_deinit' filepath='drivers/pci/controller/dwc/pcie-designware-host.c' line='437' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dw_pcie_host_deinit'>
+        <parameter type-id='d91dfd7a' name='pp' filepath='drivers/pci/controller/dwc/pcie-designware-host.c' line='437' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dw_pcie_host_init' mangled-name='dw_pcie_host_init' filepath='drivers/pci/controller/dwc/pcie-designware-host.c' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dw_pcie_host_init'>
+        <parameter type-id='d91dfd7a' name='pp' filepath='drivers/pci/controller/dwc/pcie-designware-host.c' line='281' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dw_pcie_link_up' mangled-name='dw_pcie_link_up' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dw_pcie_link_up'>
+        <parameter type-id='8bf55d78' name='pci' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='552' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dw_pcie_own_conf_map_bus' mangled-name='dw_pcie_own_conf_map_bus' filepath='drivers/pci/controller/dwc/pcie-designware-host.c' line='523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dw_pcie_own_conf_map_bus'>
+        <parameter type-id='d1feb554' name='bus' filepath='drivers/pci/controller/dwc/pcie-designware-host.c' line='523' column='1'/>
+        <parameter type-id='f0981eeb' name='devfn' filepath='drivers/pci/controller/dwc/pcie-designware-host.c' line='523' column='1'/>
+        <parameter type-id='95e97e5e' name='where' filepath='drivers/pci/controller/dwc/pcie-designware-host.c' line='523' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='dw_pcie_read' mangled-name='dw_pcie_read' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dw_pcie_read'>
+        <parameter type-id='eaa32e2f' name='addr' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='107' column='1'/>
+        <parameter type-id='95e97e5e' name='size' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='107' column='1'/>
+        <parameter type-id='f9409001' name='val' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='107' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dw_pcie_read_dbi' mangled-name='dw_pcie_read_dbi' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dw_pcie_read_dbi'>
+        <parameter type-id='8bf55d78' name='pci' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='147' column='1'/>
+        <parameter type-id='19c2251e' name='reg' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='147' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='147' column='1'/>
+        <return type-id='19c2251e'/>
+      </function-decl>
+      <function-decl name='dw_pcie_setup_rc' mangled-name='dw_pcie_setup_rc' filepath='drivers/pci/controller/dwc/pcie-designware-host.c' line='541' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dw_pcie_setup_rc'>
+        <parameter type-id='d91dfd7a' name='pp' filepath='drivers/pci/controller/dwc/pcie-designware-host.c' line='541' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='dw_pcie_wait_for_link' mangled-name='dw_pcie_wait_for_link' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dw_pcie_wait_for_link'>
+        <parameter type-id='8bf55d78' name='pci' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='533' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dw_pcie_write' mangled-name='dw_pcie_write' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dw_pcie_write'>
+        <parameter type-id='eaa32e2f' name='addr' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='129' column='1'/>
+        <parameter type-id='95e97e5e' name='size' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='129' column='1'/>
+        <parameter type-id='19c2251e' name='val' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='129' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='dw_pcie_write_dbi' mangled-name='dw_pcie_write_dbi' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dw_pcie_write_dbi'>
+        <parameter type-id='8bf55d78' name='pci' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='163' column='1'/>
+        <parameter type-id='19c2251e' name='reg' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='163' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='163' column='1'/>
+        <parameter type-id='19c2251e' name='val' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='163' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='edac_device_add_device' mangled-name='edac_device_add_device' filepath='drivers/edac/edac_device.c' line='450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_add_device'>
+        <parameter type-id='b7d8b860' name='edac_dev' filepath='drivers/edac/edac_device.c' line='450' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='edac_device_alloc_ctl_info' mangled-name='edac_device_alloc_ctl_info' filepath='drivers/edac/edac_device.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_alloc_ctl_info'>
+        <parameter type-id='f0981eeb' name='sz_private' filepath='drivers/edac/edac_device.c' line='54' column='1'/>
+        <parameter type-id='26a90f95' name='edac_device_name' filepath='drivers/edac/edac_device.c' line='55' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_instances' filepath='drivers/edac/edac_device.c' line='55' column='1'/>
+        <parameter type-id='26a90f95' name='edac_block_name' filepath='drivers/edac/edac_device.c' line='56' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_blocks' filepath='drivers/edac/edac_device.c' line='56' column='1'/>
+        <parameter type-id='f0981eeb' name='offset_value' filepath='drivers/edac/edac_device.c' line='57' column='1'/>
+        <parameter type-id='b52eac2e' name='attrib_spec' filepath='drivers/edac/edac_device.c' line='58' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_attrib' filepath='drivers/edac/edac_device.c' line='58' column='1'/>
+        <parameter type-id='95e97e5e' name='device_index' filepath='drivers/edac/edac_device.c' line='59' column='1'/>
+        <return type-id='b7d8b860'/>
+      </function-decl>
+      <function-decl name='edac_device_alloc_index' mangled-name='edac_device_alloc_index' filepath='drivers/edac/edac_device.c' line='442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_alloc_index'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='edac_device_del_device' mangled-name='edac_device_del_device' filepath='drivers/edac/edac_device.c' line='502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_del_device'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/edac/edac_device.c' line='502' column='1'/>
+        <return type-id='b7d8b860'/>
+      </function-decl>
+      <function-decl name='edac_device_free_ctl_info' mangled-name='edac_device_free_ctl_info' filepath='drivers/edac/edac_device.c' line='232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_free_ctl_info'>
+        <parameter type-id='b7d8b860' name='ctl_info' filepath='drivers/edac/edac_device.c' line='232' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='edac_device_handle_ce_count' mangled-name='edac_device_handle_ce_count' filepath='drivers/edac/edac_device.c' line='556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_handle_ce_count'>
+        <parameter type-id='b7d8b860' name='edac_dev' filepath='drivers/edac/edac_device.c' line='556' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='drivers/edac/edac_device.c' line='557' column='1'/>
+        <parameter type-id='95e97e5e' name='inst_nr' filepath='drivers/edac/edac_device.c' line='557' column='1'/>
+        <parameter type-id='95e97e5e' name='block_nr' filepath='drivers/edac/edac_device.c' line='557' column='1'/>
+        <parameter type-id='80f4b756' name='msg' filepath='drivers/edac/edac_device.c' line='558' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='edac_device_handle_ue_count' mangled-name='edac_device_handle_ue_count' filepath='drivers/edac/edac_device.c' line='602' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_handle_ue_count'>
+        <parameter type-id='b7d8b860' name='edac_dev' filepath='drivers/edac/edac_device.c' line='602' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='drivers/edac/edac_device.c' line='603' column='1'/>
+        <parameter type-id='95e97e5e' name='inst_nr' filepath='drivers/edac/edac_device.c' line='603' column='1'/>
+        <parameter type-id='95e97e5e' name='block_nr' filepath='drivers/edac/edac_device.c' line='603' column='1'/>
+        <parameter type-id='80f4b756' name='msg' filepath='drivers/edac/edac_device.c' line='604' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ehci_handshake' mangled-name='ehci_handshake' filepath='drivers/usb/host/ehci-hcd.c' line='149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ehci_handshake'>
+        <parameter type-id='21c375e6' name='ehci' filepath='drivers/usb/host/ehci-hcd.c' line='149' column='1'/>
+        <parameter type-id='eaa32e2f' name='ptr' filepath='drivers/usb/host/ehci-hcd.c' line='149' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='drivers/usb/host/ehci-hcd.c' line='150' column='1'/>
+        <parameter type-id='19c2251e' name='done' filepath='drivers/usb/host/ehci-hcd.c' line='150' column='1'/>
+        <parameter type-id='95e97e5e' name='usec' filepath='drivers/usb/host/ehci-hcd.c' line='150' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ehci_hub_control' mangled-name='ehci_hub_control' filepath='drivers/usb/host/ehci-hub.c' line='731' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ehci_hub_control'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/host/ehci-hub.c' line='732' column='1'/>
+        <parameter type-id='1dc6a898' name='typeReq' filepath='drivers/usb/host/ehci-hub.c' line='733' column='1'/>
+        <parameter type-id='1dc6a898' name='wValue' filepath='drivers/usb/host/ehci-hub.c' line='734' column='1'/>
+        <parameter type-id='1dc6a898' name='wIndex' filepath='drivers/usb/host/ehci-hub.c' line='735' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='drivers/usb/host/ehci-hub.c' line='736' column='1'/>
+        <parameter type-id='1dc6a898' name='wLength' filepath='drivers/usb/host/ehci-hub.c' line='737' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ehci_init_driver' mangled-name='ehci_init_driver' filepath='drivers/usb/host/ehci-hcd.c' line='1267' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ehci_init_driver'>
+        <parameter type-id='c07d5ba3' name='drv' filepath='drivers/usb/host/ehci-hcd.c' line='1267' column='1'/>
+        <parameter type-id='843888b8' name='over' filepath='drivers/usb/host/ehci-hcd.c' line='1268' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ehci_resume' mangled-name='ehci_resume' filepath='drivers/usb/host/ehci-hcd.c' line='1144' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ehci_resume'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/host/ehci-hcd.c' line='1144' column='1'/>
+        <parameter type-id='b50a4934' name='force_reset' filepath='drivers/usb/host/ehci-hcd.c' line='1144' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ehci_setup' mangled-name='ehci_setup' filepath='drivers/usb/host/ehci-hcd.c' line='679' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ehci_setup'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/host/ehci-hcd.c' line='679' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ehci_suspend' mangled-name='ehci_suspend' filepath='drivers/usb/host/ehci-hcd.c' line='1110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ehci_suspend'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/host/ehci-hcd.c' line='1110' column='1'/>
+        <parameter type-id='b50a4934' name='do_wakeup' filepath='drivers/usb/host/ehci-hcd.c' line='1110' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='elevator_alloc' mangled-name='elevator_alloc' filepath='block/elevator.c' line='164' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='elevator_alloc'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/elevator.c' line='164' column='1'/>
+        <parameter type-id='4a89adae' name='e' filepath='block/elevator.c' line='165' column='1'/>
+        <return type-id='07d0a3e7'/>
+      </function-decl>
+      <function-decl name='elv_bio_merge_ok' mangled-name='elv_bio_merge_ok' filepath='block/elevator.c' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='elv_bio_merge_ok'>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/elevator.c' line='74' column='1'/>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/elevator.c' line='74' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='elv_rb_add' mangled-name='elv_rb_add' filepath='block/elevator.c' line='254' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='elv_rb_add'>
+        <parameter type-id='c5bcc2c0' name='root' filepath='block/elevator.c' line='254' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/elevator.c' line='254' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='elv_rb_del' mangled-name='elv_rb_del' filepath='block/elevator.c' line='275' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='elv_rb_del'>
+        <parameter type-id='c5bcc2c0' name='root' filepath='block/elevator.c' line='275' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/elevator.c' line='275' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='elv_rb_find' mangled-name='elv_rb_find' filepath='block/elevator.c' line='283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='elv_rb_find'>
+        <parameter type-id='c5bcc2c0' name='root' filepath='block/elevator.c' line='283' column='1'/>
+        <parameter type-id='a42536cd' name='sector' filepath='block/elevator.c' line='283' column='1'/>
+        <return type-id='3dad1a48'/>
+      </function-decl>
+      <function-decl name='elv_rb_former_request' mangled-name='elv_rb_former_request' filepath='block/elevator.c' line='824' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='elv_rb_former_request'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/elevator.c' line='824' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/elevator.c' line='825' column='1'/>
+        <return type-id='3dad1a48'/>
+      </function-decl>
+      <function-decl name='elv_rb_latter_request' mangled-name='elv_rb_latter_request' filepath='block/elevator.c' line='836' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='elv_rb_latter_request'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/elevator.c' line='836' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/elevator.c' line='837' column='1'/>
+        <return type-id='3dad1a48'/>
+      </function-decl>
+      <function-decl name='elv_register' mangled-name='elv_register' filepath='block/elevator.c' line='529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='elv_register'>
+        <parameter type-id='4a89adae' name='e' filepath='block/elevator.c' line='529' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='elv_rqhash_add' mangled-name='elv_rqhash_add' filepath='block/elevator.c' line='213' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='elv_rqhash_add'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/elevator.c' line='213' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/elevator.c' line='213' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='elv_rqhash_del' mangled-name='elv_rqhash_del' filepath='block/elevator.c' line='206' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='elv_rqhash_del'>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/elevator.c' line='206' column='1'/>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/elevator.c' line='206' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='elv_unregister' mangled-name='elv_unregister' filepath='block/elevator.c' line='565' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='elv_unregister'>
+        <parameter type-id='4a89adae' name='e' filepath='block/elevator.c' line='565' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='em_cpu_get' mangled-name='em_cpu_get' filepath='kernel/power/energy_model.c' line='239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='em_cpu_get'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/power/energy_model.c' line='239' column='1'/>
+        <return type-id='ce714046'/>
+      </function-decl>
+      <function-decl name='em_dev_register_perf_domain' mangled-name='em_dev_register_perf_domain' filepath='kernel/power/energy_model.c' line='274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='em_dev_register_perf_domain'>
+        <parameter type-id='fa0b179b' name='dev' filepath='kernel/power/energy_model.c' line='274' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_states' filepath='kernel/power/energy_model.c' line='274' column='1'/>
+        <parameter type-id='8ab4431c' name='cb' filepath='kernel/power/energy_model.c' line='275' column='1'/>
+        <parameter type-id='3ca207ec' name='cpus' filepath='kernel/power/energy_model.c' line='275' column='1'/>
+        <parameter type-id='b50a4934' name='milliwatts' filepath='kernel/power/energy_model.c' line='276' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='emergency_restart' mangled-name='emergency_restart' filepath='kernel/reboot.c' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='emergency_restart'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='enable_irq' mangled-name='enable_irq' filepath='kernel/irq/manage.c' line='824' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='enable_irq'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/manage.c' line='824' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='enable_percpu_irq' mangled-name='enable_percpu_irq' filepath='kernel/irq/manage.c' line='2375' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='enable_percpu_irq'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/manage.c' line='2375' column='1'/>
+        <parameter type-id='f0981eeb' name='type' filepath='kernel/irq/manage.c' line='2375' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='end_buffer_read_sync' mangled-name='end_buffer_read_sync' filepath='fs/buffer.c' line='157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='end_buffer_read_sync'>
+        <parameter type-id='c485c22c' name='bh' filepath='fs/buffer.c' line='157' column='1'/>
+        <parameter type-id='95e97e5e' name='uptodate' filepath='fs/buffer.c' line='157' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='end_buffer_write_sync' mangled-name='end_buffer_write_sync' filepath='fs/buffer.c' line='164' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='end_buffer_write_sync'>
+        <parameter type-id='c485c22c' name='bh' filepath='fs/buffer.c' line='164' column='1'/>
+        <parameter type-id='95e97e5e' name='uptodate' filepath='fs/buffer.c' line='164' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='end_page_writeback' mangled-name='end_page_writeback' filepath='mm/filemap.c' line='1582' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='end_page_writeback'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/filemap.c' line='1582' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='errseq_set' mangled-name='errseq_set' filepath='lib/errseq.c' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='errseq_set'>
+        <parameter type-id='a07ff496' name='eseq' filepath='lib/errseq.c' line='59' column='1'/>
+        <parameter type-id='95e97e5e' name='err' filepath='lib/errseq.c' line='59' column='1'/>
+        <return type-id='1da55f79'/>
+      </function-decl>
+      <function-decl name='eth_commit_mac_addr_change' mangled-name='eth_commit_mac_addr_change' filepath='net/ethernet/eth.c' line='303' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eth_commit_mac_addr_change'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/ethernet/eth.c' line='303' column='1'/>
+        <parameter type-id='eaa32e2f' name='p' filepath='net/ethernet/eth.c' line='303' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='eth_get_headlen' mangled-name='eth_get_headlen' filepath='net/ethernet/eth.c' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eth_get_headlen'>
+        <parameter type-id='2ce52478' name='dev' filepath='net/ethernet/eth.c' line='124' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='net/ethernet/eth.c' line='124' column='1'/>
+        <parameter type-id='19c2251e' name='len' filepath='net/ethernet/eth.c' line='124' column='1'/>
+        <return type-id='19c2251e'/>
+      </function-decl>
+      <function-decl name='eth_header' mangled-name='eth_header' filepath='net/ethernet/eth.c' line='78' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eth_header'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ethernet/eth.c' line='78' column='1'/>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/ethernet/eth.c' line='78' column='1'/>
+        <parameter type-id='8efea9e5' name='type' filepath='net/ethernet/eth.c' line='79' column='1'/>
+        <parameter type-id='eaa32e2f' name='daddr' filepath='net/ethernet/eth.c' line='80' column='1'/>
+        <parameter type-id='eaa32e2f' name='saddr' filepath='net/ethernet/eth.c' line='80' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='net/ethernet/eth.c' line='80' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='eth_header_cache' mangled-name='eth_header_cache' filepath='net/ethernet/eth.c' line='228' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eth_header_cache'>
+        <parameter type-id='b5fb9c17' name='neigh' filepath='net/ethernet/eth.c' line='228' column='1'/>
+        <parameter type-id='236f06da' name='hh' filepath='net/ethernet/eth.c' line='228' column='1'/>
+        <parameter type-id='84a5c3d4' name='type' filepath='net/ethernet/eth.c' line='228' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='eth_header_cache_update' mangled-name='eth_header_cache_update' filepath='net/ethernet/eth.c' line='260' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eth_header_cache_update'>
+        <parameter type-id='236f06da' name='hh' filepath='net/ethernet/eth.c' line='260' column='1'/>
+        <parameter type-id='2ce52478' name='dev' filepath='net/ethernet/eth.c' line='261' column='1'/>
+        <parameter type-id='354f7eb9' name='haddr' filepath='net/ethernet/eth.c' line='262' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='eth_header_parse' mangled-name='eth_header_parse' filepath='net/ethernet/eth.c' line='212' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eth_header_parse'>
+        <parameter type-id='11f4a000' name='skb' filepath='net/ethernet/eth.c' line='212' column='1'/>
+        <parameter type-id='cf536864' name='haddr' filepath='net/ethernet/eth.c' line='212' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='eth_mac_addr' mangled-name='eth_mac_addr' filepath='net/ethernet/eth.c' line='321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eth_mac_addr'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/ethernet/eth.c' line='321' column='1'/>
+        <parameter type-id='eaa32e2f' name='p' filepath='net/ethernet/eth.c' line='321' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='eth_platform_get_mac_address' mangled-name='eth_platform_get_mac_address' filepath='net/ethernet/eth.c' line='506' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eth_platform_get_mac_address'>
+        <parameter type-id='fa0b179b' name='dev' filepath='net/ethernet/eth.c' line='506' column='1'/>
+        <parameter type-id='8bff8096' name='mac_addr' filepath='net/ethernet/eth.c' line='506' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='eth_prepare_mac_addr_change' mangled-name='eth_prepare_mac_addr_change' filepath='net/ethernet/eth.c' line='286' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eth_prepare_mac_addr_change'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/ethernet/eth.c' line='286' column='1'/>
+        <parameter type-id='eaa32e2f' name='p' filepath='net/ethernet/eth.c' line='286' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='eth_type_trans' mangled-name='eth_type_trans' filepath='net/ethernet/eth.c' line='154' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eth_type_trans'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ethernet/eth.c' line='154' column='1'/>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/ethernet/eth.c' line='154' column='1'/>
+        <return type-id='84a5c3d4'/>
+      </function-decl>
+      <function-decl name='eth_validate_addr' mangled-name='eth_validate_addr' filepath='net/ethernet/eth.c' line='333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eth_validate_addr'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/ethernet/eth.c' line='333' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ether_setup' mangled-name='ether_setup' filepath='net/ethernet/eth.c' line='356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ether_setup'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/ethernet/eth.c' line='356' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ethnl_cable_test_amplitude' mangled-name='ethnl_cable_test_amplitude' filepath='net/ethtool/cabletest.c' line='360' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ethnl_cable_test_amplitude'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='net/ethtool/cabletest.c' line='360' column='1'/>
+        <parameter type-id='f9b06939' name='pair' filepath='net/ethtool/cabletest.c' line='361' column='1'/>
+        <parameter type-id='9b7e9486' name='mV' filepath='net/ethtool/cabletest.c' line='361' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ethnl_cable_test_fault_length' mangled-name='ethnl_cable_test_fault_length' filepath='net/ethtool/cabletest.c' line='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ethnl_cable_test_fault_length'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='net/ethtool/cabletest.c' line='186' column='1'/>
+        <parameter type-id='f9b06939' name='pair' filepath='net/ethtool/cabletest.c' line='186' column='1'/>
+        <parameter type-id='19c2251e' name='cm' filepath='net/ethtool/cabletest.c' line='186' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ethnl_cable_test_pulse' mangled-name='ethnl_cable_test_pulse' filepath='net/ethtool/cabletest.c' line='385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ethnl_cable_test_pulse'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='net/ethtool/cabletest.c' line='385' column='1'/>
+        <parameter type-id='1dc6a898' name='mV' filepath='net/ethtool/cabletest.c' line='385' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ethnl_cable_test_result' mangled-name='ethnl_cable_test_result' filepath='net/ethtool/cabletest.c' line='163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ethnl_cable_test_result'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='net/ethtool/cabletest.c' line='163' column='1'/>
+        <parameter type-id='f9b06939' name='pair' filepath='net/ethtool/cabletest.c' line='163' column='1'/>
+        <parameter type-id='f9b06939' name='result' filepath='net/ethtool/cabletest.c' line='163' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ethnl_cable_test_step' mangled-name='ethnl_cable_test_step' filepath='net/ethtool/cabletest.c' line='406' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ethnl_cable_test_step'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='net/ethtool/cabletest.c' line='406' column='1'/>
+        <parameter type-id='19c2251e' name='first' filepath='net/ethtool/cabletest.c' line='406' column='1'/>
+        <parameter type-id='19c2251e' name='last' filepath='net/ethtool/cabletest.c' line='406' column='1'/>
+        <parameter type-id='19c2251e' name='step' filepath='net/ethtool/cabletest.c' line='407' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ethtool_convert_legacy_u32_to_link_mode' mangled-name='ethtool_convert_legacy_u32_to_link_mode' filepath='net/ethtool/ioctl.c' line='335' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ethtool_convert_legacy_u32_to_link_mode'>
+        <parameter type-id='1d2c2b85' name='dst' filepath='net/ethtool/ioctl.c' line='335' column='1'/>
+        <parameter type-id='19c2251e' name='legacy_u32' filepath='net/ethtool/ioctl.c' line='336' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ethtool_convert_link_mode_to_legacy_u32' mangled-name='ethtool_convert_link_mode_to_legacy_u32' filepath='net/ethtool/ioctl.c' line='344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ethtool_convert_link_mode_to_legacy_u32'>
+        <parameter type-id='f9409001' name='legacy_u32' filepath='net/ethtool/ioctl.c' line='344' column='1'/>
+        <parameter type-id='f9b37274' name='src' filepath='net/ethtool/ioctl.c' line='345' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='ethtool_op_get_link' mangled-name='ethtool_op_get_link' filepath='net/ethtool/ioctl.c' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ethtool_op_get_link'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/ethtool/ioctl.c' line='41' column='1'/>
+        <return type-id='19c2251e'/>
+      </function-decl>
+      <function-decl name='ethtool_op_get_ts_info' mangled-name='ethtool_op_get_ts_info' filepath='net/ethtool/ioctl.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ethtool_op_get_ts_info'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/ethtool/ioctl.c' line='47' column='1'/>
+        <parameter type-id='fa058983' name='info' filepath='net/ethtool/ioctl.c' line='47' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ethtool_sprintf' mangled-name='ethtool_sprintf' filepath='net/ethtool/ioctl.c' line='1945' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ethtool_sprintf'>
+        <parameter type-id='1f37a7f4' name='data' filepath='net/ethtool/ioctl.c' line='1945' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='net/ethtool/ioctl.c' line='1945' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ethtool_virtdev_set_link_ksettings' mangled-name='ethtool_virtdev_set_link_ksettings' filepath='net/ethtool/ioctl.c' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ethtool_virtdev_set_link_ksettings'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/ethtool/ioctl.c' line='612' column='1'/>
+        <parameter type-id='b2c34f11' name='cmd' filepath='net/ethtool/ioctl.c' line='613' column='1'/>
+        <parameter type-id='f9409001' name='dev_speed' filepath='net/ethtool/ioctl.c' line='614' column='1'/>
+        <parameter type-id='8bff8096' name='dev_duplex' filepath='net/ethtool/ioctl.c' line='614' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='event_triggers_call' mangled-name='event_triggers_call' filepath='kernel/trace/trace_events_trigger.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='event_triggers_call'>
+        <parameter type-id='3d4ca6d2' name='file' filepath='kernel/trace/trace_events_trigger.c' line='56' column='1'/>
+        <parameter type-id='573a5ee9' name='buffer' filepath='kernel/trace/trace_events_trigger.c' line='57' column='1'/>
+        <parameter type-id='eaa32e2f' name='rec' filepath='kernel/trace/trace_events_trigger.c' line='57' column='1'/>
+        <parameter type-id='3275e929' name='event' filepath='kernel/trace/trace_events_trigger.c' line='58' column='1'/>
+        <return type-id='21b4096c'/>
+      </function-decl>
+      <function-decl name='eventfd_ctx_fdget' mangled-name='eventfd_ctx_fdget' filepath='fs/eventfd.c' line='380' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_fdget'>
+        <parameter type-id='95e97e5e' name='fd' filepath='fs/eventfd.c' line='380' column='1'/>
+        <return type-id='71f2e203'/>
+      </function-decl>
+      <function-decl name='eventfd_ctx_fileget' mangled-name='eventfd_ctx_fileget' filepath='fs/eventfd.c' line='401' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_fileget'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/eventfd.c' line='401' column='1'/>
+        <return type-id='71f2e203'/>
+      </function-decl>
+      <function-decl name='eventfd_ctx_put' mangled-name='eventfd_ctx_put' filepath='fs/eventfd.c' line='115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_put'>
+        <parameter type-id='71f2e203' name='ctx' filepath='fs/eventfd.c' line='115' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='eventfd_ctx_remove_wait_queue' mangled-name='eventfd_ctx_remove_wait_queue' filepath='fs/eventfd.c' line='210' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_remove_wait_queue'>
+        <parameter type-id='71f2e203' name='ctx' filepath='fs/eventfd.c' line='210' column='1'/>
+        <parameter type-id='ba9aa326' name='wait' filepath='fs/eventfd.c' line='210' column='1'/>
+        <parameter type-id='30dcd536' name='cnt' filepath='fs/eventfd.c' line='211' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='eventfd_signal' mangled-name='eventfd_signal' filepath='fs/eventfd.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_signal'>
+        <parameter type-id='71f2e203' name='ctx' filepath='fs/eventfd.c' line='88' column='1'/>
+        <parameter type-id='d3130597' name='n' filepath='fs/eventfd.c' line='88' column='1'/>
+        <return type-id='d3130597'/>
+      </function-decl>
+      <function-decl name='evict_inodes' mangled-name='evict_inodes' filepath='fs/inode.c' line='634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='evict_inodes'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/inode.c' line='634' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='extcon_dev_register' mangled-name='extcon_dev_register' filepath='drivers/extcon/extcon.c' line='1084' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='extcon_dev_register'>
+        <parameter type-id='c0d6fada' name='edev' filepath='drivers/extcon/extcon.c' line='1084' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='extcon_find_edev_by_node' mangled-name='extcon_find_edev_by_node' filepath='drivers/extcon/extcon.c' line='1344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='extcon_find_edev_by_node'>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/extcon/extcon.c' line='1344' column='1'/>
+        <return type-id='c0d6fada'/>
+      </function-decl>
+      <function-decl name='extcon_get_edev_by_phandle' mangled-name='extcon_get_edev_by_phandle' filepath='drivers/extcon/extcon.c' line='1366' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='extcon_get_edev_by_phandle'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/extcon/extcon.c' line='1366' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/extcon/extcon.c' line='1366' column='1'/>
+        <return type-id='c0d6fada'/>
+      </function-decl>
+      <function-decl name='extcon_get_edev_name' mangled-name='extcon_get_edev_name' filepath='drivers/extcon/extcon.c' line='1413' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='extcon_get_edev_name'>
+        <parameter type-id='c0d6fada' name='edev' filepath='drivers/extcon/extcon.c' line='1413' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='extcon_get_extcon_dev' mangled-name='extcon_get_extcon_dev' filepath='drivers/extcon/extcon.c' line='869' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='extcon_get_extcon_dev'>
+        <parameter type-id='80f4b756' name='extcon_name' filepath='drivers/extcon/extcon.c' line='869' column='1'/>
+        <return type-id='c0d6fada'/>
+      </function-decl>
+      <function-decl name='extcon_get_property' mangled-name='extcon_get_property' filepath='drivers/extcon/extcon.c' line='615' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='extcon_get_property'>
+        <parameter type-id='c0d6fada' name='edev' filepath='drivers/extcon/extcon.c' line='615' column='1'/>
+        <parameter type-id='f0981eeb' name='id' filepath='drivers/extcon/extcon.c' line='615' column='1'/>
+        <parameter type-id='f0981eeb' name='prop' filepath='drivers/extcon/extcon.c' line='616' column='1'/>
+        <parameter type-id='50842338' name='prop_val' filepath='drivers/extcon/extcon.c' line='617' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='extcon_get_property_capability' mangled-name='extcon_get_property_capability' filepath='drivers/extcon/extcon.c' line='782' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='extcon_get_property_capability'>
+        <parameter type-id='c0d6fada' name='edev' filepath='drivers/extcon/extcon.c' line='782' column='1'/>
+        <parameter type-id='f0981eeb' name='id' filepath='drivers/extcon/extcon.c' line='782' column='1'/>
+        <parameter type-id='f0981eeb' name='prop' filepath='drivers/extcon/extcon.c' line='783' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='extcon_get_state' mangled-name='extcon_get_state' filepath='drivers/extcon/extcon.c' line='489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='extcon_get_state'>
+        <parameter type-id='c0d6fada' name='edev' filepath='drivers/extcon/extcon.c' line='489' column='1'/>
+        <parameter type-id='f0981eeb' name='id' filepath='drivers/extcon/extcon.c' line='489' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='extcon_register_notifier' mangled-name='extcon_register_notifier' filepath='drivers/extcon/extcon.c' line='901' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='extcon_register_notifier'>
+        <parameter type-id='c0d6fada' name='edev' filepath='drivers/extcon/extcon.c' line='901' column='1'/>
+        <parameter type-id='f0981eeb' name='id' filepath='drivers/extcon/extcon.c' line='901' column='1'/>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/extcon/extcon.c' line='902' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='extcon_set_property' mangled-name='extcon_set_property' filepath='drivers/extcon/extcon.c' line='694' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='extcon_set_property'>
+        <parameter type-id='c0d6fada' name='edev' filepath='drivers/extcon/extcon.c' line='694' column='1'/>
+        <parameter type-id='f0981eeb' name='id' filepath='drivers/extcon/extcon.c' line='694' column='1'/>
+        <parameter type-id='f0981eeb' name='prop' filepath='drivers/extcon/extcon.c' line='695' column='1'/>
+        <parameter type-id='282b2805' name='prop_val' filepath='drivers/extcon/extcon.c' line='696' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='extcon_set_property_capability' mangled-name='extcon_set_property_capability' filepath='drivers/extcon/extcon.c' line='816' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='extcon_set_property_capability'>
+        <parameter type-id='c0d6fada' name='edev' filepath='drivers/extcon/extcon.c' line='816' column='1'/>
+        <parameter type-id='f0981eeb' name='id' filepath='drivers/extcon/extcon.c' line='816' column='1'/>
+        <parameter type-id='f0981eeb' name='prop' filepath='drivers/extcon/extcon.c' line='817' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='extcon_set_state' mangled-name='extcon_set_state' filepath='drivers/extcon/extcon.c' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='extcon_set_state'>
+        <parameter type-id='c0d6fada' name='edev' filepath='drivers/extcon/extcon.c' line='522' column='1'/>
+        <parameter type-id='f0981eeb' name='id' filepath='drivers/extcon/extcon.c' line='522' column='1'/>
+        <parameter type-id='b50a4934' name='state' filepath='drivers/extcon/extcon.c' line='522' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='extcon_set_state_sync' mangled-name='extcon_set_state_sync' filepath='drivers/extcon/extcon.c' line='577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='extcon_set_state_sync'>
+        <parameter type-id='c0d6fada' name='edev' filepath='drivers/extcon/extcon.c' line='577' column='1'/>
+        <parameter type-id='f0981eeb' name='id' filepath='drivers/extcon/extcon.c' line='577' column='1'/>
+        <parameter type-id='b50a4934' name='state' filepath='drivers/extcon/extcon.c' line='577' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='extcon_sync' mangled-name='extcon_sync' filepath='drivers/extcon/extcon.c' line='408' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='extcon_sync'>
+        <parameter type-id='c0d6fada' name='edev' filepath='drivers/extcon/extcon.c' line='408' column='1'/>
+        <parameter type-id='f0981eeb' name='id' filepath='drivers/extcon/extcon.c' line='408' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='extcon_unregister_notifier' mangled-name='extcon_unregister_notifier' filepath='drivers/extcon/extcon.c' line='930' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='extcon_unregister_notifier'>
+        <parameter type-id='c0d6fada' name='edev' filepath='drivers/extcon/extcon.c' line='930' column='1'/>
+        <parameter type-id='f0981eeb' name='id' filepath='drivers/extcon/extcon.c' line='930' column='1'/>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/extcon/extcon.c' line='931' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fasync_helper' mangled-name='fasync_helper' filepath='fs/fcntl.c' line='991' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fasync_helper'>
+        <parameter type-id='95e97e5e' name='fd' filepath='fs/fcntl.c' line='991' column='1'/>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/fcntl.c' line='991' column='1'/>
+        <parameter type-id='95e97e5e' name='on' filepath='fs/fcntl.c' line='991' column='1'/>
+        <parameter type-id='dc750055' name='fapp' filepath='fs/fcntl.c' line='991' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fault_in_iov_iter_readable' mangled-name='fault_in_iov_iter_readable' filepath='lib/iov_iter.c' line='446' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fault_in_iov_iter_readable'>
+        <parameter type-id='ab3e2665' name='i' filepath='lib/iov_iter.c' line='446' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='lib/iov_iter.c' line='446' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='fault_in_safe_writeable' mangled-name='fault_in_safe_writeable' filepath='mm/gup.c' line='1751' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fault_in_safe_writeable'>
+        <parameter type-id='80f4b756' name='uaddr' filepath='mm/gup.c' line='1751' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='mm/gup.c' line='1751' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='fb_get_options' mangled-name='fb_get_options' filepath='drivers/video/fbdev/core/fb_cmdline.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fb_get_options'>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/video/fbdev/core/fb_cmdline.c' line='35' column='1'/>
+        <parameter type-id='9b23c9ad' name='option' filepath='drivers/video/fbdev/core/fb_cmdline.c' line='35' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fd_install' mangled-name='fd_install' filepath='fs/file.c' line='602' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fd_install'>
+        <parameter type-id='f0981eeb' name='fd' filepath='fs/file.c' line='602' column='1'/>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/file.c' line='602' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='fget' mangled-name='fget' filepath='fs/file.c' line='952' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fget'>
+        <parameter type-id='f0981eeb' name='fd' filepath='fs/file.c' line='952' column='1'/>
+        <return type-id='77e79a4b'/>
+      </function-decl>
+      <function-decl name='fiemap_fill_next_extent' mangled-name='fiemap_fill_next_extent' filepath='fs/ioctl.c' line='115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fiemap_fill_next_extent'>
+        <parameter type-id='890caaa5' name='fieinfo' filepath='fs/ioctl.c' line='115' column='1'/>
+        <parameter type-id='91ce1af9' name='logical' filepath='fs/ioctl.c' line='115' column='1'/>
+        <parameter type-id='91ce1af9' name='phys' filepath='fs/ioctl.c' line='116' column='1'/>
+        <parameter type-id='91ce1af9' name='len' filepath='fs/ioctl.c' line='116' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='fs/ioctl.c' line='116' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fiemap_prep' mangled-name='fiemap_prep' filepath='fs/ioctl.c' line='167' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fiemap_prep'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/ioctl.c' line='167' column='1'/>
+        <parameter type-id='890caaa5' name='fieinfo' filepath='fs/ioctl.c' line='167' column='1'/>
+        <parameter type-id='91ce1af9' name='start' filepath='fs/ioctl.c' line='168' column='1'/>
+        <parameter type-id='3df9fd28' name='len' filepath='fs/ioctl.c' line='168' column='1'/>
+        <parameter type-id='19c2251e' name='supported_flags' filepath='fs/ioctl.c' line='168' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='file_check_and_advance_wb_err' mangled-name='file_check_and_advance_wb_err' filepath='mm/filemap.c' line='760' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='file_check_and_advance_wb_err'>
+        <parameter type-id='77e79a4b' name='file' filepath='mm/filemap.c' line='760' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='file_modified' mangled-name='file_modified' filepath='fs/inode.c' line='1985' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='file_modified'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/inode.c' line='1985' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='file_path' mangled-name='file_path' filepath='fs/open.c' line='943' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='file_path'>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/open.c' line='943' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='fs/open.c' line='943' column='1'/>
+        <parameter type-id='95e97e5e' name='buflen' filepath='fs/open.c' line='943' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='file_ra_state_init' mangled-name='file_ra_state_init' filepath='mm/readahead.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='file_ra_state_init'>
+        <parameter type-id='66ec8db7' name='ra' filepath='mm/readahead.c' line='35' column='1'/>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/readahead.c' line='35' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='file_remove_privs' mangled-name='file_remove_privs' filepath='fs/inode.c' line='1908' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='file_remove_privs'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/inode.c' line='1908' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='file_update_time' mangled-name='file_update_time' filepath='fs/inode.c' line='1949' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='file_update_time'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/inode.c' line='1949' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='file_write_and_wait_range' mangled-name='file_write_and_wait_range' filepath='mm/filemap.c' line='804' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='file_write_and_wait_range'>
+        <parameter type-id='77e79a4b' name='file' filepath='mm/filemap.c' line='804' column='1'/>
+        <parameter type-id='69bf7bee' name='lstart' filepath='mm/filemap.c' line='804' column='1'/>
+        <parameter type-id='69bf7bee' name='lend' filepath='mm/filemap.c' line='804' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fileattr_fill_flags' mangled-name='fileattr_fill_flags' filepath='fs/ioctl.c' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fileattr_fill_flags'>
+        <parameter type-id='526bed22' name='fa' filepath='fs/ioctl.c' line='498' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='fs/ioctl.c' line='498' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='filemap_check_errors' mangled-name='filemap_check_errors' filepath='mm/filemap.c' line='356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='filemap_check_errors'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/filemap.c' line='356' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='filemap_fault' mangled-name='filemap_fault' filepath='mm/filemap.c' line='3047' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='filemap_fault'>
+        <parameter type-id='d02f4143' name='vmf' filepath='mm/filemap.c' line='3047' column='1'/>
+        <return type-id='e9265215'/>
+      </function-decl>
+      <function-decl name='filemap_fdatawait_range' mangled-name='filemap_fdatawait_range' filepath='mm/filemap.c' line='560' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='filemap_fdatawait_range'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/filemap.c' line='560' column='1'/>
+        <parameter type-id='69bf7bee' name='start_byte' filepath='mm/filemap.c' line='560' column='1'/>
+        <parameter type-id='69bf7bee' name='end_byte' filepath='mm/filemap.c' line='561' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='filemap_fdatawrite' mangled-name='filemap_fdatawrite' filepath='mm/filemap.c' line='442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='filemap_fdatawrite'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/filemap.c' line='442' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='filemap_fdatawrite_range' mangled-name='filemap_fdatawrite_range' filepath='mm/filemap.c' line='448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='filemap_fdatawrite_range'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/filemap.c' line='448' column='1'/>
+        <parameter type-id='69bf7bee' name='start' filepath='mm/filemap.c' line='448' column='1'/>
+        <parameter type-id='69bf7bee' name='end' filepath='mm/filemap.c' line='449' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='filemap_flush' mangled-name='filemap_flush' filepath='mm/filemap.c' line='464' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='filemap_flush'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/filemap.c' line='464' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='filemap_map_pages' mangled-name='filemap_map_pages' filepath='mm/filemap.c' line='3342' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='filemap_map_pages'>
+        <parameter type-id='d02f4143' name='vmf' filepath='mm/filemap.c' line='3342' column='1'/>
+        <parameter type-id='7359adad' name='start_pgoff' filepath='mm/filemap.c' line='3343' column='1'/>
+        <parameter type-id='7359adad' name='end_pgoff' filepath='mm/filemap.c' line='3343' column='1'/>
+        <return type-id='e9265215'/>
+      </function-decl>
+      <function-decl name='filemap_read' mangled-name='filemap_read' filepath='mm/filemap.c' line='2603' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='filemap_read'>
+        <parameter type-id='80f25feb' name='iocb' filepath='mm/filemap.c' line='2603' column='1'/>
+        <parameter type-id='4fa10f9e' name='iter' filepath='mm/filemap.c' line='2603' column='1'/>
+        <parameter type-id='79a0948f' name='already_read' filepath='mm/filemap.c' line='2604' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='filemap_write_and_wait_range' mangled-name='filemap_write_and_wait_range' filepath='mm/filemap.c' line='698' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='filemap_write_and_wait_range'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/filemap.c' line='698' column='1'/>
+        <parameter type-id='69bf7bee' name='lstart' filepath='mm/filemap.c' line='699' column='1'/>
+        <parameter type-id='69bf7bee' name='lend' filepath='mm/filemap.c' line='699' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='filp_close' mangled-name='filp_close' filepath='fs/open.c' line='1332' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='filp_close'>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/open.c' line='1332' column='1'/>
+        <parameter type-id='bc5666d5' name='id' filepath='fs/open.c' line='1332' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='filp_open_block' mangled-name='filp_open_block' filepath='fs/open.c' line='1187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='filp_open_block'>
+        <parameter type-id='80f4b756' name='filename' filepath='fs/open.c' line='1187' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='fs/open.c' line='1187' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/open.c' line='1187' column='1'/>
+        <return type-id='77e79a4b'/>
+      </function-decl>
+      <function-decl name='find_extend_vma' mangled-name='find_extend_vma' filepath='mm/mmap.c' line='2605' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='find_extend_vma'>
+        <parameter type-id='df4b7819' name='mm' filepath='mm/mmap.c' line='2605' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='mm/mmap.c' line='2605' column='1'/>
+        <return type-id='2ae08426'/>
+      </function-decl>
+      <function-decl name='find_get_pid' mangled-name='find_get_pid' filepath='kernel/pid.c' line='461' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='find_get_pid'>
+        <parameter type-id='587f89d2' name='nr' filepath='kernel/pid.c' line='461' column='1'/>
+        <return type-id='b94e5398'/>
+      </function-decl>
+      <function-decl name='find_inode_nowait' mangled-name='find_inode_nowait' filepath='fs/inode.c' line='1438' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='find_inode_nowait'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/inode.c' line='1438' column='1'/>
+        <parameter type-id='7359adad' name='hashval' filepath='fs/inode.c' line='1439' column='1'/>
+        <parameter type-id='16e253c0' name='match' filepath='fs/inode.c' line='1440' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='fs/inode.c' line='1442' column='1'/>
+        <return type-id='7e666abe'/>
+      </function-decl>
+      <function-decl name='find_iova' mangled-name='find_iova' filepath='drivers/iommu/iova.c' line='524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='find_iova'>
+        <parameter type-id='0c2c419d' name='iovad' filepath='drivers/iommu/iova.c' line='524' column='1'/>
+        <parameter type-id='7359adad' name='pfn' filepath='drivers/iommu/iova.c' line='524' column='1'/>
+        <return type-id='b2ea0a72'/>
+      </function-decl>
+      <function-decl name='find_pid_ns' mangled-name='find_pid_ns' filepath='kernel/pid.c' line='309' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='find_pid_ns'>
+        <parameter type-id='95e97e5e' name='nr' filepath='kernel/pid.c' line='309' column='1'/>
+        <parameter type-id='b816e1d0' name='ns' filepath='kernel/pid.c' line='309' column='1'/>
+        <return type-id='b94e5398'/>
+      </function-decl>
+      <function-decl name='find_task_by_vpid' mangled-name='find_task_by_vpid' filepath='kernel/pid.c' line='420' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='find_task_by_vpid'>
+        <parameter type-id='587f89d2' name='vnr' filepath='kernel/pid.c' line='420' column='1'/>
+        <return type-id='f23e2572'/>
+      </function-decl>
+      <function-decl name='find_user' mangled-name='find_user' filepath='kernel/user.c' line='174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='find_user'>
+        <parameter type-id='d80b72e6' name='uid' filepath='kernel/user.c' line='174' column='1'/>
+        <return type-id='273a7d34'/>
+      </function-decl>
+      <function-decl name='find_vm_area' mangled-name='find_vm_area' filepath='mm/vmalloc.c' line='2507' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='find_vm_area'>
+        <parameter type-id='eaa32e2f' name='addr' filepath='mm/vmalloc.c' line='2507' column='1'/>
+        <return type-id='d295dab2'/>
+      </function-decl>
+      <function-decl name='find_vpid' mangled-name='find_vpid' filepath='kernel/pid.c' line='315' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='find_vpid'>
+        <parameter type-id='95e97e5e' name='nr' filepath='kernel/pid.c' line='315' column='1'/>
+        <return type-id='b94e5398'/>
+      </function-decl>
+      <function-decl name='finish_wait' mangled-name='finish_wait' filepath='kernel/sched/wait.c' line='392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='finish_wait'>
+        <parameter type-id='3f8b2ed3' name='wq_head' filepath='kernel/sched/wait.c' line='392' column='1'/>
+        <parameter type-id='db9d03e3' name='wq_entry' filepath='kernel/sched/wait.c' line='392' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='firmware_request_nowarn' mangled-name='firmware_request_nowarn' filepath='drivers/base/firmware_loader/main.c' line='979' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='firmware_request_nowarn'>
+        <parameter type-id='6c2331f5' name='firmware' filepath='drivers/base/firmware_loader/main.c' line='979' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/base/firmware_loader/main.c' line='979' column='1'/>
+        <parameter type-id='fa0b179b' name='device' filepath='drivers/base/firmware_loader/main.c' line='980' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fixed_size_llseek' mangled-name='fixed_size_llseek' filepath='fs/read_write.c' line='162' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fixed_size_llseek'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/read_write.c' line='162' column='1'/>
+        <parameter type-id='69bf7bee' name='offset' filepath='fs/read_write.c' line='162' column='1'/>
+        <parameter type-id='95e97e5e' name='whence' filepath='fs/read_write.c' line='162' column='1'/>
+        <parameter type-id='69bf7bee' name='size' filepath='fs/read_write.c' line='162' column='1'/>
+        <return type-id='69bf7bee'/>
+      </function-decl>
+      <function-decl name='flow_block_cb_setup_simple' mangled-name='flow_block_cb_setup_simple' filepath='net/core/flow_offload.c' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='flow_block_cb_setup_simple'>
+        <parameter type-id='73bb9b25' name='f' filepath='net/core/flow_offload.c' line='281' column='1'/>
+        <parameter type-id='e84b031a' name='driver_block_list' filepath='net/core/flow_offload.c' line='282' column='1'/>
+        <parameter type-id='18a1ba64' name='cb' filepath='net/core/flow_offload.c' line='283' column='1'/>
+        <parameter type-id='eaa32e2f' name='cb_ident' filepath='net/core/flow_offload.c' line='284' column='1'/>
+        <parameter type-id='eaa32e2f' name='cb_priv' filepath='net/core/flow_offload.c' line='284' column='1'/>
+        <parameter type-id='b50a4934' name='ingress_only' filepath='net/core/flow_offload.c' line='285' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='flow_keys_basic_dissector' type-id='379be6ec' mangled-name='flow_keys_basic_dissector' visibility='default' filepath='net/core/flow_dissector.c' line='1821' column='1' elf-symbol-id='flow_keys_basic_dissector'/>
+      <function-decl name='flow_rule_match_basic' mangled-name='flow_rule_match_basic' filepath='net/core/flow_offload.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='flow_rule_match_basic'>
+        <parameter type-id='c9242457' name='rule' filepath='net/core/flow_offload.c' line='44' column='1'/>
+        <parameter type-id='dcf452cc' name='out' filepath='net/core/flow_offload.c' line='45' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='flow_rule_match_eth_addrs' mangled-name='flow_rule_match_eth_addrs' filepath='net/core/flow_offload.c' line='58' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='flow_rule_match_eth_addrs'>
+        <parameter type-id='c9242457' name='rule' filepath='net/core/flow_offload.c' line='58' column='1'/>
+        <parameter type-id='3a7e53b2' name='out' filepath='net/core/flow_offload.c' line='59' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='flow_rule_match_ipv4_addrs' mangled-name='flow_rule_match_ipv4_addrs' filepath='net/core/flow_offload.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='flow_rule_match_ipv4_addrs'>
+        <parameter type-id='c9242457' name='rule' filepath='net/core/flow_offload.c' line='79' column='1'/>
+        <parameter type-id='2833a0ca' name='out' filepath='net/core/flow_offload.c' line='80' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='flow_rule_match_ports' mangled-name='flow_rule_match_ports' filepath='net/core/flow_offload.c' line='100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='flow_rule_match_ports'>
+        <parameter type-id='c9242457' name='rule' filepath='net/core/flow_offload.c' line='100' column='1'/>
+        <parameter type-id='0949fa0e' name='out' filepath='net/core/flow_offload.c' line='101' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='flow_rule_match_vlan' mangled-name='flow_rule_match_vlan' filepath='net/core/flow_offload.c' line='65' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='flow_rule_match_vlan'>
+        <parameter type-id='c9242457' name='rule' filepath='net/core/flow_offload.c' line='65' column='1'/>
+        <parameter type-id='688dd15d' name='out' filepath='net/core/flow_offload.c' line='66' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='flush_dcache_page' mangled-name='flush_dcache_page' filepath='arch/arm64/mm/flush.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='flush_dcache_page'>
+        <parameter type-id='02f11ed4' name='page' filepath='arch/arm64/mm/flush.c' line='69' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='flush_delayed_fput' mangled-name='flush_delayed_fput' filepath='fs/file_table.c' line='321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='flush_delayed_fput'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='flush_delayed_work' mangled-name='flush_delayed_work' filepath='kernel/workqueue.c' line='3237' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='flush_delayed_work'>
+        <parameter type-id='1a7ee447' name='dwork' filepath='kernel/workqueue.c' line='3237' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='flush_signals' mangled-name='flush_signals' filepath='kernel/signal.c' line='479' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='flush_signals'>
+        <parameter type-id='f23e2572' name='t' filepath='kernel/signal.c' line='479' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='flush_work' mangled-name='flush_work' filepath='kernel/workqueue.c' line='3117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='flush_work'>
+        <parameter type-id='83c1bde6' name='work' filepath='kernel/workqueue.c' line='3117' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='flush_workqueue' mangled-name='flush_workqueue' filepath='kernel/workqueue.c' line='2822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='flush_workqueue'>
+        <parameter type-id='242e3d19' name='wq' filepath='kernel/workqueue.c' line='2822' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='follow_pfn' mangled-name='follow_pfn' filepath='mm/memory.c' line='5431' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='follow_pfn'>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='5431' column='1'/>
+        <parameter type-id='7359adad' name='address' filepath='mm/memory.c' line='5431' column='1'/>
+        <parameter type-id='1d2c2b85' name='pfn' filepath='mm/memory.c' line='5432' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='font_vga_8x16' type-id='d2d06e23' mangled-name='font_vga_8x16' visibility='default' filepath='lib/fonts/font_8x16.c' line='4625' column='1' elf-symbol-id='font_vga_8x16'/>
+      <function-decl name='for_each_kernel_tracepoint' mangled-name='for_each_kernel_tracepoint' filepath='kernel/tracepoint.c' line='746' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='for_each_kernel_tracepoint'>
+        <parameter type-id='aba164d7' name='fct' filepath='kernel/tracepoint.c' line='746' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='kernel/tracepoint.c' line='747' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='fpsimd_context_busy' type-id='b50a4934' mangled-name='fpsimd_context_busy' visibility='default' filepath='arch/arm64/kernel/fpsimd.c' line='166' column='1' elf-symbol-id='fpsimd_context_busy'/>
+      <function-decl name='fput' mangled-name='fput' filepath='fs/file_table.c' line='350' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fput'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/file_table.c' line='350' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='frame_vector_create' mangled-name='frame_vector_create' filepath='drivers/media/common/videobuf2/frame_vector.c' line='153' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='frame_vector_create'>
+        <parameter type-id='f0981eeb' name='nr_frames' filepath='drivers/media/common/videobuf2/frame_vector.c' line='153' column='1'/>
+        <return type-id='d9fbdc06'/>
+      </function-decl>
+      <function-decl name='frame_vector_destroy' mangled-name='frame_vector_destroy' filepath='drivers/media/common/videobuf2/frame_vector.c' line='185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='frame_vector_destroy'>
+        <parameter type-id='d9fbdc06' name='vec' filepath='drivers/media/common/videobuf2/frame_vector.c' line='185' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='frame_vector_to_pages' mangled-name='frame_vector_to_pages' filepath='drivers/media/common/videobuf2/frame_vector.c' line='104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='frame_vector_to_pages'>
+        <parameter type-id='d9fbdc06' name='vec' filepath='drivers/media/common/videobuf2/frame_vector.c' line='104' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='frame_vector_to_pfns' mangled-name='frame_vector_to_pfns' filepath='drivers/media/common/videobuf2/frame_vector.c' line='130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='frame_vector_to_pfns'>
+        <parameter type-id='d9fbdc06' name='vec' filepath='drivers/media/common/videobuf2/frame_vector.c' line='130' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='free_buffer_head' mangled-name='free_buffer_head' filepath='fs/buffer.c' line='3324' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_buffer_head'>
+        <parameter type-id='c485c22c' name='bh' filepath='fs/buffer.c' line='3324' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='free_candev' mangled-name='free_candev' filepath='drivers/net/can/dev/dev.c' line='293' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_candev'>
+        <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/can/dev/dev.c' line='293' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='free_contig_range' mangled-name='free_contig_range' filepath='mm/page_alloc.c' line='9706' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_contig_range'>
+        <parameter type-id='7359adad' name='pfn' filepath='mm/page_alloc.c' line='9706' column='1'/>
+        <parameter type-id='7359adad' name='nr_pages' filepath='mm/page_alloc.c' line='9706' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='free_io_pgtable_ops' mangled-name='free_io_pgtable_ops' filepath='drivers/iommu/io-pgtable.c' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_io_pgtable_ops'>
+        <parameter type-id='bf4bdb64' name='ops' filepath='drivers/iommu/io-pgtable.c' line='63' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='free_irq' mangled-name='free_irq' filepath='kernel/irq/manage.c' line='2027' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_irq'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/manage.c' line='2027' column='1'/>
+        <parameter type-id='eaa32e2f' name='dev_id' filepath='kernel/irq/manage.c' line='2027' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='free_netdev' mangled-name='free_netdev' filepath='net/core/dev.c' line='10928' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_netdev'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='10928' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='free_pages' mangled-name='free_pages' filepath='mm/page_alloc.c' line='5856' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_pages'>
+        <parameter type-id='7359adad' name='addr' filepath='mm/page_alloc.c' line='5856' column='1'/>
+        <parameter type-id='f0981eeb' name='order' filepath='mm/page_alloc.c' line='5856' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='free_pages_exact' mangled-name='free_pages_exact' filepath='mm/page_alloc.c' line='6069' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_pages_exact'>
+        <parameter type-id='eaa32e2f' name='virt' filepath='mm/page_alloc.c' line='6069' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='mm/page_alloc.c' line='6069' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='free_percpu' mangled-name='free_percpu' filepath='mm/percpu.c' line='2264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_percpu'>
+        <parameter type-id='eaa32e2f' name='ptr' filepath='mm/percpu.c' line='2264' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='free_percpu_irq' mangled-name='free_percpu_irq' filepath='kernel/irq/manage.c' line='2531' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_percpu_irq'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/manage.c' line='2531' column='1'/>
+        <parameter type-id='eaa32e2f' name='dev_id' filepath='kernel/irq/manage.c' line='2531' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='free_uid' mangled-name='free_uid' filepath='kernel/user.c' line='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_uid'>
+        <parameter type-id='273a7d34' name='up' filepath='kernel/user.c' line='186' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='freeze_bdev' mangled-name='freeze_bdev' filepath='block/bdev.c' line='236' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='freeze_bdev'>
+        <parameter type-id='b88dd945' name='bdev' filepath='block/bdev.c' line='236' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='freeze_super' mangled-name='freeze_super' filepath='fs/super.c' line='1668' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='freeze_super'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/super.c' line='1668' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='freezer_cgrp_subsys' type-id='1d115fd5' mangled-name='freezer_cgrp_subsys' visibility='default' filepath='kernel/cgroup/legacy_freezer.c' line='473' column='1' elf-symbol-id='freezer_cgrp_subsys'/>
+      <function-decl name='freezing_slow_path' mangled-name='freezing_slow_path' filepath='kernel/freezer.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='freezing_slow_path'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/freezer.c' line='38' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='freq_qos_add_notifier' mangled-name='freq_qos_add_notifier' filepath='kernel/power/qos.c' line='621' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='freq_qos_add_notifier'>
+        <parameter type-id='1351457a' name='qos' filepath='kernel/power/qos.c' line='621' column='1'/>
+        <parameter type-id='1df5cca8' name='type' filepath='kernel/power/qos.c' line='622' column='1'/>
+        <parameter type-id='d504f73d' name='notifier' filepath='kernel/power/qos.c' line='623' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='freq_qos_add_request' mangled-name='freq_qos_add_request' filepath='kernel/power/qos.c' line='531' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='freq_qos_add_request'>
+        <parameter type-id='1351457a' name='qos' filepath='kernel/power/qos.c' line='531' column='1'/>
+        <parameter type-id='3fdf7ca3' name='req' filepath='kernel/power/qos.c' line='532' column='1'/>
+        <parameter type-id='1df5cca8' name='type' filepath='kernel/power/qos.c' line='533' column='1'/>
+        <parameter type-id='a7832498' name='value' filepath='kernel/power/qos.c' line='533' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='freq_qos_remove_notifier' mangled-name='freq_qos_remove_notifier' filepath='kernel/power/qos.c' line='654' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='freq_qos_remove_notifier'>
+        <parameter type-id='1351457a' name='qos' filepath='kernel/power/qos.c' line='654' column='1'/>
+        <parameter type-id='1df5cca8' name='type' filepath='kernel/power/qos.c' line='655' column='1'/>
+        <parameter type-id='d504f73d' name='notifier' filepath='kernel/power/qos.c' line='656' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='freq_qos_remove_request' mangled-name='freq_qos_remove_request' filepath='kernel/power/qos.c' line='595' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='freq_qos_remove_request'>
+        <parameter type-id='3fdf7ca3' name='req' filepath='kernel/power/qos.c' line='595' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='freq_qos_update_request' mangled-name='freq_qos_update_request' filepath='kernel/power/qos.c' line='568' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='freq_qos_update_request'>
+        <parameter type-id='3fdf7ca3' name='req' filepath='kernel/power/qos.c' line='568' column='1'/>
+        <parameter type-id='a7832498' name='new_value' filepath='kernel/power/qos.c' line='568' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='fs_bio_set' type-id='dfa886b2' mangled-name='fs_bio_set' visibility='default' filepath='block/bio.c' line='66' column='1' elf-symbol-id='fs_bio_set'/>
+      <function-decl name='fs_ftype_to_dtype' mangled-name='fs_ftype_to_dtype' filepath='fs/fs_types.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fs_ftype_to_dtype'>
+        <parameter type-id='f0981eeb' name='filetype' filepath='fs/fs_types.c' line='37' column='1'/>
+        <return type-id='002ac4a6'/>
+      </function-decl>
+      <var-decl name='fs_kobj' type-id='d30bdc51' mangled-name='fs_kobj' visibility='default' filepath='fs/namespace.c' line='88' column='1' elf-symbol-id='fs_kobj'/>
+      <function-decl name='fs_param_is_string' mangled-name='fs_param_is_string' filepath='fs/fs_parser.c' line='255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fs_param_is_string'>
+        <parameter type-id='e27a9d68' name='log' filepath='fs/fs_parser.c' line='255' column='1'/>
+        <parameter type-id='8d4f223b' name='p' filepath='fs/fs_parser.c' line='255' column='1'/>
+        <parameter type-id='75615bf0' name='param' filepath='fs/fs_parser.c' line='256' column='1'/>
+        <parameter type-id='59cc1ae8' name='result' filepath='fs/fs_parser.c' line='256' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fs_param_is_u32' mangled-name='fs_param_is_u32' filepath='fs/fs_parser.c' line='210' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fs_param_is_u32'>
+        <parameter type-id='e27a9d68' name='log' filepath='fs/fs_parser.c' line='210' column='1'/>
+        <parameter type-id='8d4f223b' name='p' filepath='fs/fs_parser.c' line='210' column='1'/>
+        <parameter type-id='75615bf0' name='param' filepath='fs/fs_parser.c' line='211' column='1'/>
+        <parameter type-id='59cc1ae8' name='result' filepath='fs/fs_parser.c' line='211' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_decrypt_bio' mangled-name='fscrypt_decrypt_bio' filepath='fs/crypto/bio.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_decrypt_bio'>
+        <parameter type-id='fb55efa1' name='bio' filepath='fs/crypto/bio.c' line='31' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='fscrypt_dio_supported' mangled-name='fscrypt_dio_supported' filepath='fs/crypto/inline_crypt.c' line='419' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_dio_supported'>
+        <parameter type-id='80f25feb' name='iocb' filepath='fs/crypto/inline_crypt.c' line='419' column='1'/>
+        <parameter type-id='4fa10f9e' name='iter' filepath='fs/crypto/inline_crypt.c' line='419' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='fscrypt_drop_inode' mangled-name='fscrypt_drop_inode' filepath='fs/crypto/keysetup.c' line='795' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_drop_inode'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/crypto/keysetup.c' line='795' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_encrypt_pagecache_blocks' mangled-name='fscrypt_encrypt_pagecache_blocks' filepath='fs/crypto/crypto.c' line='172' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_encrypt_pagecache_blocks'>
+        <parameter type-id='02f11ed4' name='page' filepath='fs/crypto/crypto.c' line='172' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='fs/crypto/crypto.c' line='173' column='1'/>
+        <parameter type-id='f0981eeb' name='offs' filepath='fs/crypto/crypto.c' line='174' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_flags' filepath='fs/crypto/crypto.c' line='175' column='1'/>
+        <return type-id='02f11ed4'/>
+      </function-decl>
+      <function-decl name='fscrypt_file_open' mangled-name='fscrypt_file_open' filepath='fs/crypto/hooks.c' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_file_open'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/crypto/hooks.c' line='30' column='1'/>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/crypto/hooks.c' line='30' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_fname_alloc_buffer' mangled-name='fscrypt_fname_alloc_buffer' filepath='fs/crypto/fname.c' line='287' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_fname_alloc_buffer'>
+        <parameter type-id='19c2251e' name='max_encrypted_len' filepath='fs/crypto/fname.c' line='287' column='1'/>
+        <parameter type-id='8b145ad8' name='crypto_str' filepath='fs/crypto/fname.c' line='288' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_fname_disk_to_usr' mangled-name='fscrypt_fname_disk_to_usr' filepath='fs/crypto/fname.c' line='337' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_fname_disk_to_usr'>
+        <parameter type-id='c5a4eb7f' name='inode' filepath='fs/crypto/fname.c' line='337' column='1'/>
+        <parameter type-id='19c2251e' name='hash' filepath='fs/crypto/fname.c' line='338' column='1'/>
+        <parameter type-id='19c2251e' name='minor_hash' filepath='fs/crypto/fname.c' line='338' column='1'/>
+        <parameter type-id='69d01989' name='iname' filepath='fs/crypto/fname.c' line='339' column='1'/>
+        <parameter type-id='8b145ad8' name='oname' filepath='fs/crypto/fname.c' line='340' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_fname_free_buffer' mangled-name='fscrypt_fname_free_buffer' filepath='fs/crypto/fname.c' line='307' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_fname_free_buffer'>
+        <parameter type-id='8b145ad8' name='crypto_str' filepath='fs/crypto/fname.c' line='307' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='fscrypt_fname_siphash' mangled-name='fscrypt_fname_siphash' filepath='fs/crypto/fname.c' line='538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_fname_siphash'>
+        <parameter type-id='c5a4eb7f' name='dir' filepath='fs/crypto/fname.c' line='538' column='1'/>
+        <parameter type-id='43a0eb6c' name='name' filepath='fs/crypto/fname.c' line='538' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='fscrypt_free_bounce_page' mangled-name='fscrypt_free_bounce_page' filepath='fs/crypto/crypto.c' line='62' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_free_bounce_page'>
+        <parameter type-id='02f11ed4' name='bounce_page' filepath='fs/crypto/crypto.c' line='62' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='fscrypt_free_inode' mangled-name='fscrypt_free_inode' filepath='fs/crypto/keysetup.c' line='776' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_free_inode'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/crypto/keysetup.c' line='776' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='fscrypt_get_symlink' mangled-name='fscrypt_get_symlink' filepath='fs/crypto/hooks.c' line='308' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_get_symlink'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/crypto/hooks.c' line='308' column='1'/>
+        <parameter type-id='eaa32e2f' name='caddr' filepath='fs/crypto/hooks.c' line='308' column='1'/>
+        <parameter type-id='f0981eeb' name='max_size' filepath='fs/crypto/hooks.c' line='309' column='1'/>
+        <parameter type-id='26cad514' name='done' filepath='fs/crypto/hooks.c' line='310' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='fscrypt_has_permitted_context' mangled-name='fscrypt_has_permitted_context' filepath='fs/crypto/policy.c' line='598' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_has_permitted_context'>
+        <parameter type-id='7e666abe' name='parent' filepath='fs/crypto/policy.c' line='598' column='1'/>
+        <parameter type-id='7e666abe' name='child' filepath='fs/crypto/policy.c' line='598' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_ioctl_add_key' mangled-name='fscrypt_ioctl_add_key' filepath='fs/crypto/keyring.c' line='702' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_ioctl_add_key'>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/crypto/keyring.c' line='702' column='1'/>
+        <parameter type-id='eaa32e2f' name='_uarg' filepath='fs/crypto/keyring.c' line='702' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_ioctl_get_key_status' mangled-name='fscrypt_ioctl_get_key_status' filepath='fs/crypto/keyring.c' line='1123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_ioctl_get_key_status'>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/crypto/keyring.c' line='1123' column='1'/>
+        <parameter type-id='eaa32e2f' name='uarg' filepath='fs/crypto/keyring.c' line='1123' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_ioctl_get_nonce' mangled-name='fscrypt_ioctl_get_nonce' filepath='fs/crypto/policy.c' line='561' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_ioctl_get_nonce'>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/crypto/policy.c' line='561' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='fs/crypto/policy.c' line='561' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_ioctl_get_policy' mangled-name='fscrypt_ioctl_get_policy' filepath='fs/crypto/policy.c' line='510' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_ioctl_get_policy'>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/crypto/policy.c' line='510' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='fs/crypto/policy.c' line='510' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_ioctl_get_policy_ex' mangled-name='fscrypt_ioctl_get_policy_ex' filepath='fs/crypto/policy.c' line='529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_ioctl_get_policy_ex'>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/crypto/policy.c' line='529' column='1'/>
+        <parameter type-id='eaa32e2f' name='uarg' filepath='fs/crypto/policy.c' line='529' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_ioctl_remove_key' mangled-name='fscrypt_ioctl_remove_key' filepath='fs/crypto/keyring.c' line='1086' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_ioctl_remove_key'>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/crypto/keyring.c' line='1086' column='1'/>
+        <parameter type-id='eaa32e2f' name='uarg' filepath='fs/crypto/keyring.c' line='1086' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_ioctl_remove_key_all_users' mangled-name='fscrypt_ioctl_remove_key_all_users' filepath='fs/crypto/keyring.c' line='1092' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_ioctl_remove_key_all_users'>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/crypto/keyring.c' line='1092' column='1'/>
+        <parameter type-id='eaa32e2f' name='uarg' filepath='fs/crypto/keyring.c' line='1092' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_ioctl_set_policy' mangled-name='fscrypt_ioctl_set_policy' filepath='fs/crypto/policy.c' line='444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_ioctl_set_policy'>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/crypto/policy.c' line='444' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='fs/crypto/policy.c' line='444' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_limit_io_blocks' mangled-name='fscrypt_limit_io_blocks' filepath='fs/crypto/inline_crypt.c' line='472' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_limit_io_blocks'>
+        <parameter type-id='c5a4eb7f' name='inode' filepath='fs/crypto/inline_crypt.c' line='472' column='1'/>
+        <parameter type-id='91ce1af9' name='lblk' filepath='fs/crypto/inline_crypt.c' line='472' column='1'/>
+        <parameter type-id='91ce1af9' name='nr_blocks' filepath='fs/crypto/inline_crypt.c' line='472' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='fscrypt_match_name' mangled-name='fscrypt_match_name' filepath='fs/crypto/fname.c' line='505' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_match_name'>
+        <parameter type-id='8197734d' name='fname' filepath='fs/crypto/fname.c' line='505' column='1'/>
+        <parameter type-id='bbaf3419' name='de_name' filepath='fs/crypto/fname.c' line='506' column='1'/>
+        <parameter type-id='19c2251e' name='de_name_len' filepath='fs/crypto/fname.c' line='506' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='fscrypt_mergeable_bio' mangled-name='fscrypt_mergeable_bio' filepath='fs/crypto/inline_crypt.c' line='357' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_mergeable_bio'>
+        <parameter type-id='fb55efa1' name='bio' filepath='fs/crypto/inline_crypt.c' line='357' column='1'/>
+        <parameter type-id='c5a4eb7f' name='inode' filepath='fs/crypto/inline_crypt.c' line='357' column='1'/>
+        <parameter type-id='91ce1af9' name='next_lblk' filepath='fs/crypto/inline_crypt.c' line='358' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='fscrypt_prepare_new_inode' mangled-name='fscrypt_prepare_new_inode' filepath='fs/crypto/keysetup.c' line='722' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_prepare_new_inode'>
+        <parameter type-id='7e666abe' name='dir' filepath='fs/crypto/keysetup.c' line='722' column='1'/>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/crypto/keysetup.c' line='722' column='1'/>
+        <parameter type-id='d8e6b335' name='encrypt_ret' filepath='fs/crypto/keysetup.c' line='723' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_prepare_symlink' mangled-name='fscrypt_prepare_symlink' filepath='fs/crypto/hooks.c' line='193' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_prepare_symlink'>
+        <parameter type-id='7e666abe' name='dir' filepath='fs/crypto/hooks.c' line='193' column='1'/>
+        <parameter type-id='80f4b756' name='target' filepath='fs/crypto/hooks.c' line='193' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='fs/crypto/hooks.c' line='194' column='1'/>
+        <parameter type-id='f0981eeb' name='max_len' filepath='fs/crypto/hooks.c' line='194' column='1'/>
+        <parameter type-id='8b145ad8' name='disk_link' filepath='fs/crypto/hooks.c' line='195' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_put_encryption_info' mangled-name='fscrypt_put_encryption_info' filepath='fs/crypto/keysetup.c' line='762' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_put_encryption_info'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/crypto/keysetup.c' line='762' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='fscrypt_set_bio_crypt_ctx' mangled-name='fscrypt_set_bio_crypt_ctx' filepath='fs/crypto/inline_crypt.c' line='269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_set_bio_crypt_ctx'>
+        <parameter type-id='fb55efa1' name='bio' filepath='fs/crypto/inline_crypt.c' line='269' column='1'/>
+        <parameter type-id='c5a4eb7f' name='inode' filepath='fs/crypto/inline_crypt.c' line='269' column='1'/>
+        <parameter type-id='91ce1af9' name='first_lblk' filepath='fs/crypto/inline_crypt.c' line='270' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='fs/crypto/inline_crypt.c' line='270' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='fscrypt_set_context' mangled-name='fscrypt_set_context' filepath='fs/crypto/policy.c' line='685' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_set_context'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/crypto/policy.c' line='685' column='1'/>
+        <parameter type-id='eaa32e2f' name='fs_data' filepath='fs/crypto/policy.c' line='685' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_set_test_dummy_encryption' mangled-name='fscrypt_set_test_dummy_encryption' filepath='fs/crypto/policy.c' line='727' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_set_test_dummy_encryption'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/crypto/policy.c' line='727' column='1'/>
+        <parameter type-id='80f4b756' name='arg' filepath='fs/crypto/policy.c' line='727' column='1'/>
+        <parameter type-id='09c5d446' name='dummy_policy' filepath='fs/crypto/policy.c' line='728' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_setup_filename' mangled-name='fscrypt_setup_filename' filepath='fs/crypto/fname.c' line='412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_setup_filename'>
+        <parameter type-id='7e666abe' name='dir' filepath='fs/crypto/fname.c' line='412' column='1'/>
+        <parameter type-id='43a0eb6c' name='iname' filepath='fs/crypto/fname.c' line='412' column='1'/>
+        <parameter type-id='95e97e5e' name='lookup' filepath='fs/crypto/fname.c' line='413' column='1'/>
+        <parameter type-id='f61d3a1e' name='fname' filepath='fs/crypto/fname.c' line='413' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_show_test_dummy_encryption' mangled-name='fscrypt_show_test_dummy_encryption' filepath='fs/crypto/policy.c' line='807' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_show_test_dummy_encryption'>
+        <parameter type-id='f8dc9def' name='seq' filepath='fs/crypto/policy.c' line='807' column='1'/>
+        <parameter type-id='a84c031d' name='sep' filepath='fs/crypto/policy.c' line='807' column='1'/>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/crypto/policy.c' line='808' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='fscrypt_symlink_getattr' mangled-name='fscrypt_symlink_getattr' filepath='fs/crypto/hooks.c' line='404' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_symlink_getattr'>
+        <parameter type-id='a77efac3' name='path' filepath='fs/crypto/hooks.c' line='404' column='1'/>
+        <parameter type-id='0e87f9be' name='stat' filepath='fs/crypto/hooks.c' line='404' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fscrypt_zeroout_range' mangled-name='fscrypt_zeroout_range' filepath='fs/crypto/bio.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fscrypt_zeroout_range'>
+        <parameter type-id='c5a4eb7f' name='inode' filepath='fs/crypto/bio.c' line='110' column='1'/>
+        <parameter type-id='7359adad' name='lblk' filepath='fs/crypto/bio.c' line='110' column='1'/>
+        <parameter type-id='a42536cd' name='pblk' filepath='fs/crypto/bio.c' line='111' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='fs/crypto/bio.c' line='111' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fsg_common_create_luns' mangled-name='fsg_common_create_luns' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='2850' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fsg_common_create_luns'>
+        <parameter type-id='8f32e025' name='common' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='2850' column='1'/>
+        <parameter type-id='ddc27a70' name='cfg' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='2850' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fsg_common_set_cdev' mangled-name='fsg_common_set_cdev' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='2704' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fsg_common_set_cdev'>
+        <parameter type-id='8f32e025' name='common' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='2704' column='1'/>
+        <parameter type-id='2a895c01' name='cdev' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='2705' column='1'/>
+        <parameter type-id='b50a4934' name='can_stall' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='2705' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fsg_common_set_inquiry_string' mangled-name='fsg_common_set_inquiry_string' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='2874' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fsg_common_set_inquiry_string'>
+        <parameter type-id='8f32e025' name='common' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='2874' column='1'/>
+        <parameter type-id='80f4b756' name='vn' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='2874' column='1'/>
+        <parameter type-id='80f4b756' name='pn' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='2875' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='fsg_common_set_sysfs' mangled-name='fsg_common_set_sysfs' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='2613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fsg_common_set_sysfs'>
+        <parameter type-id='8f32e025' name='common' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='2613' column='1'/>
+        <parameter type-id='b50a4934' name='sysfs' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='2613' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='fsg_config_from_params' mangled-name='fsg_config_from_params' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='3470' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fsg_config_from_params'>
+        <parameter type-id='ddc27a70' name='cfg' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='3470' column='1'/>
+        <parameter type-id='dbce2b7c' name='params' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='3471' column='1'/>
+        <parameter type-id='f0981eeb' name='fsg_num_buffers' filepath='drivers/usb/gadget/function/f_mass_storage.c' line='3472' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='fsverity_cleanup_inode' mangled-name='fsverity_cleanup_inode' filepath='fs/verity/open.c' line='387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fsverity_cleanup_inode'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/verity/open.c' line='387' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='fsverity_enqueue_verify_work' mangled-name='fsverity_enqueue_verify_work' filepath='fs/verity/verify.c' line='273' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fsverity_enqueue_verify_work'>
+        <parameter type-id='83c1bde6' name='work' filepath='fs/verity/verify.c' line='273' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='fsverity_file_open' mangled-name='fsverity_file_open' filepath='fs/verity/open.c' line='345' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fsverity_file_open'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/verity/open.c' line='345' column='1'/>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/verity/open.c' line='345' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fsverity_ioctl_enable' mangled-name='fsverity_ioctl_enable' filepath='fs/verity/enable.c' line='340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fsverity_ioctl_enable'>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/verity/enable.c' line='340' column='1'/>
+        <parameter type-id='eaa32e2f' name='uarg' filepath='fs/verity/enable.c' line='340' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fsverity_ioctl_measure' mangled-name='fsverity_ioctl_measure' filepath='fs/verity/measure.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fsverity_ioctl_measure'>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/verity/measure.c' line='23' column='1'/>
+        <parameter type-id='eaa32e2f' name='_uarg' filepath='fs/verity/measure.c' line='23' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fsverity_ioctl_read_metadata' mangled-name='fsverity_ioctl_read_metadata' filepath='fs/verity/read_metadata.c' line='152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fsverity_ioctl_read_metadata'>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/verity/read_metadata.c' line='152' column='1'/>
+        <parameter type-id='eaa32e2f' name='uarg' filepath='fs/verity/read_metadata.c' line='152' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fsverity_prepare_setattr' mangled-name='fsverity_prepare_setattr' filepath='fs/verity/open.c' line='370' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fsverity_prepare_setattr'>
+        <parameter type-id='27675065' name='dentry' filepath='fs/verity/open.c' line='370' column='1'/>
+        <parameter type-id='ab7bbd67' name='attr' filepath='fs/verity/open.c' line='370' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fsverity_verify_bio' mangled-name='fsverity_verify_bio' filepath='fs/verity/verify.c' line='223' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fsverity_verify_bio'>
+        <parameter type-id='fb55efa1' name='bio' filepath='fs/verity/verify.c' line='223' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='fsverity_verify_page' mangled-name='fsverity_verify_page' filepath='fs/verity/verify.c' line='189' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fsverity_verify_page'>
+        <parameter type-id='02f11ed4' name='page' filepath='fs/verity/verify.c' line='189' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='fsync_bdev' mangled-name='fsync_bdev' filepath='block/bdev.c' line='212' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fsync_bdev'>
+        <parameter type-id='b88dd945' name='bdev' filepath='block/bdev.c' line='212' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ftrace_dump' mangled-name='ftrace_dump' filepath='kernel/trace/trace.c' line='9915' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ftrace_dump'>
+        <parameter type-id='9be0e7e4' name='oops_dump_mode' filepath='kernel/trace/trace.c' line='9915' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='full_name_hash' mangled-name='full_name_hash' filepath='fs/namei.c' line='2087' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='full_name_hash'>
+        <parameter type-id='eaa32e2f' name='salt' filepath='fs/namei.c' line='2087' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='fs/namei.c' line='2087' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='fs/namei.c' line='2087' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='fwnode_connection_find_match' mangled-name='fwnode_connection_find_match' filepath='drivers/base/property.c' line='1348' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_connection_find_match'>
+        <parameter type-id='4a935625' name='fwnode' filepath='drivers/base/property.c' line='1348' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/base/property.c' line='1349' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/property.c' line='1349' column='1'/>
+        <parameter type-id='2517d133' name='match' filepath='drivers/base/property.c' line='1350' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='fwnode_device_is_available' mangled-name='fwnode_device_is_available' filepath='drivers/base/property.c' line='858' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_device_is_available'>
+        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='858' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='fwnode_find_reference' mangled-name='fwnode_find_reference' filepath='drivers/base/property.c' line='516' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_find_reference'>
+        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='516' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/base/property.c' line='517' column='1'/>
+        <parameter type-id='f0981eeb' name='index' filepath='drivers/base/property.c' line='518' column='1'/>
+        <return type-id='4a935625'/>
+      </function-decl>
+      <function-decl name='fwnode_get_name' mangled-name='fwnode_get_name' filepath='drivers/base/property.c' line='583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_get_name'>
+        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='583' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='fwnode_get_next_child_node' mangled-name='fwnode_get_next_child_node' filepath='drivers/base/property.c' line='741' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_get_next_child_node'>
+        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='741' column='1'/>
+        <parameter type-id='4a935625' name='child' filepath='drivers/base/property.c' line='742' column='1'/>
+        <return type-id='4a935625'/>
+      </function-decl>
+      <function-decl name='fwnode_get_parent' mangled-name='fwnode_get_parent' filepath='drivers/base/property.c' line='608' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_get_parent'>
+        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='608' column='1'/>
+        <return type-id='4a935625'/>
+      </function-decl>
+      <function-decl name='fwnode_gpiod_get_index' mangled-name='fwnode_gpiod_get_index' filepath='drivers/gpio/gpiolib.c' line='3745' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_gpiod_get_index'>
+        <parameter type-id='4a935625' name='fwnode' filepath='drivers/gpio/gpiolib.c' line='3745' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/gpio/gpiolib.c' line='3746' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/gpio/gpiolib.c' line='3746' column='1'/>
+        <parameter type-id='38d4936d' name='flags' filepath='drivers/gpio/gpiolib.c' line='3747' column='1'/>
+        <parameter type-id='80f4b756' name='label' filepath='drivers/gpio/gpiolib.c' line='3748' column='1'/>
+        <return type-id='26760480'/>
+      </function-decl>
+      <function-decl name='fwnode_graph_get_next_endpoint' mangled-name='fwnode_graph_get_next_endpoint' filepath='drivers/base/property.c' line='1055' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_get_next_endpoint'>
+        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='1055' column='1'/>
+        <parameter type-id='4a935625' name='prev' filepath='drivers/base/property.c' line='1056' column='1'/>
+        <return type-id='4a935625'/>
+      </function-decl>
+      <function-decl name='fwnode_graph_get_port_parent' mangled-name='fwnode_graph_get_port_parent' filepath='drivers/base/property.c' line='1094' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_get_port_parent'>
+        <parameter type-id='7837cd88' name='endpoint' filepath='drivers/base/property.c' line='1094' column='1'/>
+        <return type-id='4a935625'/>
+      </function-decl>
+      <function-decl name='fwnode_graph_get_remote_endpoint' mangled-name='fwnode_graph_get_remote_endpoint' filepath='drivers/base/property.c' line='1147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_get_remote_endpoint'>
+        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='1147' column='1'/>
+        <return type-id='4a935625'/>
+      </function-decl>
+      <function-decl name='fwnode_graph_get_remote_port_parent' mangled-name='fwnode_graph_get_remote_port_parent' filepath='drivers/base/property.c' line='1114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_get_remote_port_parent'>
+        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='1114' column='1'/>
+        <return type-id='4a935625'/>
+      </function-decl>
+      <function-decl name='fwnode_graph_parse_endpoint' mangled-name='fwnode_graph_parse_endpoint' filepath='drivers/base/property.c' line='1275' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_parse_endpoint'>
+        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='1275' column='1'/>
+        <parameter type-id='41b1c13c' name='endpoint' filepath='drivers/base/property.c' line='1276' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fwnode_handle_get' mangled-name='fwnode_handle_get' filepath='drivers/base/property.c' line='828' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_handle_get'>
+        <parameter type-id='4a935625' name='fwnode' filepath='drivers/base/property.c' line='828' column='1'/>
+        <return type-id='4a935625'/>
+      </function-decl>
+      <function-decl name='fwnode_handle_put' mangled-name='fwnode_handle_put' filepath='drivers/base/property.c' line='845' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_handle_put'>
+        <parameter type-id='4a935625' name='fwnode' filepath='drivers/base/property.c' line='845' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='fwnode_property_get_reference_args' mangled-name='fwnode_property_get_reference_args' filepath='drivers/base/property.c' line='482' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_property_get_reference_args'>
+        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='482' column='1'/>
+        <parameter type-id='80f4b756' name='prop' filepath='drivers/base/property.c' line='483' column='1'/>
+        <parameter type-id='80f4b756' name='nargs_prop' filepath='drivers/base/property.c' line='483' column='1'/>
+        <parameter type-id='f0981eeb' name='nargs' filepath='drivers/base/property.c' line='484' column='1'/>
+        <parameter type-id='f0981eeb' name='index' filepath='drivers/base/property.c' line='484' column='1'/>
+        <parameter type-id='861f302a' name='args' filepath='drivers/base/property.c' line='485' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fwnode_property_present' mangled-name='fwnode_property_present' filepath='drivers/base/property.c' line='46' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_property_present'>
+        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='46' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/base/property.c' line='47' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='fwnode_property_read_string' mangled-name='fwnode_property_read_string' filepath='drivers/base/property.c' line='406' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_property_read_string'>
+        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='406' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/base/property.c' line='407' column='1'/>
+        <parameter type-id='7d3cd834' name='val' filepath='drivers/base/property.c' line='407' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fwnode_property_read_u16_array' mangled-name='fwnode_property_read_u16_array' filepath='drivers/base/property.c' line='294' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_property_read_u16_array'>
+        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='294' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/base/property.c' line='295' column='1'/>
+        <parameter type-id='26d4d46f' name='val' filepath='drivers/base/property.c' line='295' column='1'/>
+        <parameter type-id='b59d7dce' name='nval' filepath='drivers/base/property.c' line='295' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fwnode_property_read_u32_array' mangled-name='fwnode_property_read_u32_array' filepath='drivers/base/property.c' line='320' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_property_read_u32_array'>
+        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='320' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/base/property.c' line='321' column='1'/>
+        <parameter type-id='f9409001' name='val' filepath='drivers/base/property.c' line='321' column='1'/>
+        <parameter type-id='b59d7dce' name='nval' filepath='drivers/base/property.c' line='321' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fwnode_property_read_u64_array' mangled-name='fwnode_property_read_u64_array' filepath='drivers/base/property.c' line='346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_property_read_u64_array'>
+        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='346' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/base/property.c' line='347' column='1'/>
+        <parameter type-id='3df9fd28' name='val' filepath='drivers/base/property.c' line='347' column='1'/>
+        <parameter type-id='b59d7dce' name='nval' filepath='drivers/base/property.c' line='347' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='fwnode_usb_role_switch_get' mangled-name='fwnode_usb_role_switch_get' filepath='drivers/usb/roles/class.c' line='149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_usb_role_switch_get'>
+        <parameter type-id='4a935625' name='fwnode' filepath='drivers/usb/roles/class.c' line='149' column='1'/>
+        <return type-id='3e3cd44f'/>
+      </function-decl>
+      <function-decl name='g_audio_cleanup' mangled-name='g_audio_cleanup' filepath='drivers/usb/gadget/function/u_audio.c' line='1166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='g_audio_cleanup'>
+        <parameter type-id='36cb26c7' name='g_audio' filepath='drivers/usb/gadget/function/u_audio.c' line='1166' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='g_audio_setup' mangled-name='g_audio_setup' filepath='drivers/usb/gadget/function/u_audio.c' line='944' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='g_audio_setup'>
+        <parameter type-id='36cb26c7' name='g_audio' filepath='drivers/usb/gadget/function/u_audio.c' line='944' column='1'/>
+        <parameter type-id='80f4b756' name='pcm_name' filepath='drivers/usb/gadget/function/u_audio.c' line='944' column='1'/>
+        <parameter type-id='80f4b756' name='card_name' filepath='drivers/usb/gadget/function/u_audio.c' line='945' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gcd' mangled-name='gcd' filepath='lib/math/gcd.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gcd'>
+        <parameter type-id='7359adad' name='a' filepath='lib/math/gcd.c' line='23' column='1'/>
+        <parameter type-id='7359adad' name='b' filepath='lib/math/gcd.c' line='23' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='gen_pool_add_owner' mangled-name='gen_pool_add_owner' filepath='lib/genalloc.c' line='184' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_add_owner'>
+        <parameter type-id='75b9415a' name='pool' filepath='lib/genalloc.c' line='184' column='1'/>
+        <parameter type-id='7359adad' name='virt' filepath='lib/genalloc.c' line='184' column='1'/>
+        <parameter type-id='2522883d' name='phys' filepath='lib/genalloc.c' line='184' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='lib/genalloc.c' line='185' column='1'/>
+        <parameter type-id='95e97e5e' name='nid' filepath='lib/genalloc.c' line='185' column='1'/>
+        <parameter type-id='eaa32e2f' name='owner' filepath='lib/genalloc.c' line='185' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gen_pool_alloc_algo_owner' mangled-name='gen_pool_alloc_algo_owner' filepath='lib/genalloc.c' line='277' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_alloc_algo_owner'>
+        <parameter type-id='75b9415a' name='pool' filepath='lib/genalloc.c' line='277' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='lib/genalloc.c' line='277' column='1'/>
+        <parameter type-id='00278b91' name='algo' filepath='lib/genalloc.c' line='278' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='lib/genalloc.c' line='278' column='1'/>
+        <parameter type-id='63e171df' name='owner' filepath='lib/genalloc.c' line='278' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='gen_pool_avail' mangled-name='gen_pool_avail' filepath='lib/genalloc.c' line='580' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_avail'>
+        <parameter type-id='75b9415a' name='pool' filepath='lib/genalloc.c' line='580' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='gen_pool_best_fit' mangled-name='gen_pool_best_fit' filepath='lib/genalloc.c' line='754' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_best_fit'>
+        <parameter type-id='1d2c2b85' name='map' filepath='lib/genalloc.c' line='754' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='lib/genalloc.c' line='754' column='1'/>
+        <parameter type-id='7359adad' name='start' filepath='lib/genalloc.c' line='755' column='1'/>
+        <parameter type-id='f0981eeb' name='nr' filepath='lib/genalloc.c' line='755' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='lib/genalloc.c' line='755' column='1'/>
+        <parameter type-id='75b9415a' name='pool' filepath='lib/genalloc.c' line='756' column='1'/>
+        <parameter type-id='7359adad' name='start_addr' filepath='lib/genalloc.c' line='756' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='gen_pool_create' mangled-name='gen_pool_create' filepath='lib/genalloc.c' line='153' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_create'>
+        <parameter type-id='95e97e5e' name='min_alloc_order' filepath='lib/genalloc.c' line='153' column='1'/>
+        <parameter type-id='95e97e5e' name='nid' filepath='lib/genalloc.c' line='153' column='1'/>
+        <return type-id='75b9415a'/>
+      </function-decl>
+      <function-decl name='gen_pool_destroy' mangled-name='gen_pool_destroy' filepath='lib/genalloc.c' line='242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_destroy'>
+        <parameter type-id='75b9415a' name='pool' filepath='lib/genalloc.c' line='242' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gen_pool_dma_alloc' mangled-name='gen_pool_dma_alloc' filepath='lib/genalloc.c' line='341' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_dma_alloc'>
+        <parameter type-id='75b9415a' name='pool' filepath='lib/genalloc.c' line='341' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='lib/genalloc.c' line='341' column='1'/>
+        <parameter type-id='e835b5d8' name='dma' filepath='lib/genalloc.c' line='341' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='gen_pool_dma_alloc_align' mangled-name='gen_pool_dma_alloc_align' filepath='lib/genalloc.c' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_dma_alloc_align'>
+        <parameter type-id='75b9415a' name='pool' filepath='lib/genalloc.c' line='395' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='lib/genalloc.c' line='395' column='1'/>
+        <parameter type-id='e835b5d8' name='dma' filepath='lib/genalloc.c' line='396' column='1'/>
+        <parameter type-id='95e97e5e' name='align' filepath='lib/genalloc.c' line='396' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='gen_pool_dma_zalloc' mangled-name='gen_pool_dma_zalloc' filepath='lib/genalloc.c' line='419' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_dma_zalloc'>
+        <parameter type-id='75b9415a' name='pool' filepath='lib/genalloc.c' line='419' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='lib/genalloc.c' line='419' column='1'/>
+        <parameter type-id='e835b5d8' name='dma' filepath='lib/genalloc.c' line='419' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='gen_pool_dma_zalloc_align' mangled-name='gen_pool_dma_zalloc_align' filepath='lib/genalloc.c' line='466' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_dma_zalloc_align'>
+        <parameter type-id='75b9415a' name='pool' filepath='lib/genalloc.c' line='466' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='lib/genalloc.c' line='466' column='1'/>
+        <parameter type-id='e835b5d8' name='dma' filepath='lib/genalloc.c' line='467' column='1'/>
+        <parameter type-id='95e97e5e' name='align' filepath='lib/genalloc.c' line='467' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='gen_pool_first_fit_align' mangled-name='gen_pool_first_fit_align' filepath='lib/genalloc.c' line='666' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_first_fit_align'>
+        <parameter type-id='1d2c2b85' name='map' filepath='lib/genalloc.c' line='666' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='lib/genalloc.c' line='666' column='1'/>
+        <parameter type-id='7359adad' name='start' filepath='lib/genalloc.c' line='667' column='1'/>
+        <parameter type-id='f0981eeb' name='nr' filepath='lib/genalloc.c' line='667' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='lib/genalloc.c' line='667' column='1'/>
+        <parameter type-id='75b9415a' name='pool' filepath='lib/genalloc.c' line='668' column='1'/>
+        <parameter type-id='7359adad' name='start_addr' filepath='lib/genalloc.c' line='668' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='gen_pool_first_fit_order_align' mangled-name='gen_pool_first_fit_order_align' filepath='lib/genalloc.c' line='729' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_first_fit_order_align'>
+        <parameter type-id='1d2c2b85' name='map' filepath='lib/genalloc.c' line='729' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='lib/genalloc.c' line='730' column='1'/>
+        <parameter type-id='7359adad' name='start' filepath='lib/genalloc.c' line='730' column='1'/>
+        <parameter type-id='f0981eeb' name='nr' filepath='lib/genalloc.c' line='731' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='lib/genalloc.c' line='731' column='1'/>
+        <parameter type-id='75b9415a' name='pool' filepath='lib/genalloc.c' line='731' column='1'/>
+        <parameter type-id='7359adad' name='start_addr' filepath='lib/genalloc.c' line='732' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='gen_pool_fixed_alloc' mangled-name='gen_pool_fixed_alloc' filepath='lib/genalloc.c' line='694' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_fixed_alloc'>
+        <parameter type-id='1d2c2b85' name='map' filepath='lib/genalloc.c' line='694' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='lib/genalloc.c' line='694' column='1'/>
+        <parameter type-id='7359adad' name='start' filepath='lib/genalloc.c' line='695' column='1'/>
+        <parameter type-id='f0981eeb' name='nr' filepath='lib/genalloc.c' line='695' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='lib/genalloc.c' line='695' column='1'/>
+        <parameter type-id='75b9415a' name='pool' filepath='lib/genalloc.c' line='696' column='1'/>
+        <parameter type-id='7359adad' name='start_addr' filepath='lib/genalloc.c' line='696' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='gen_pool_for_each_chunk' mangled-name='gen_pool_for_each_chunk' filepath='lib/genalloc.c' line='531' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_for_each_chunk'>
+        <parameter type-id='75b9415a' name='pool' filepath='lib/genalloc.c' line='531' column='1'/>
+        <parameter type-id='7c778562' name='func' filepath='lib/genalloc.c' line='532' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='lib/genalloc.c' line='533' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gen_pool_free_owner' mangled-name='gen_pool_free_owner' filepath='lib/genalloc.c' line='487' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_free_owner'>
+        <parameter type-id='75b9415a' name='pool' filepath='lib/genalloc.c' line='487' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='lib/genalloc.c' line='487' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='lib/genalloc.c' line='487' column='1'/>
+        <parameter type-id='63e171df' name='owner' filepath='lib/genalloc.c' line='488' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gen_pool_get' mangled-name='gen_pool_get' filepath='lib/genalloc.c' line='806' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='lib/genalloc.c' line='806' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='lib/genalloc.c' line='806' column='1'/>
+        <return type-id='75b9415a'/>
+      </function-decl>
+      <function-decl name='gen_pool_has_addr' mangled-name='gen_pool_has_addr' filepath='lib/genalloc.c' line='553' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_has_addr'>
+        <parameter type-id='75b9415a' name='pool' filepath='lib/genalloc.c' line='553' column='1'/>
+        <parameter type-id='7359adad' name='start' filepath='lib/genalloc.c' line='553' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='lib/genalloc.c' line='554' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='gen_pool_set_algo' mangled-name='gen_pool_set_algo' filepath='lib/genalloc.c' line='622' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_set_algo'>
+        <parameter type-id='75b9415a' name='pool' filepath='lib/genalloc.c' line='622' column='1'/>
+        <parameter type-id='00278b91' name='algo' filepath='lib/genalloc.c' line='622' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='lib/genalloc.c' line='622' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gen_pool_size' mangled-name='gen_pool_size' filepath='lib/genalloc.c' line='599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_size'>
+        <parameter type-id='75b9415a' name='pool' filepath='lib/genalloc.c' line='599' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='gen_pool_virt_to_phys' mangled-name='gen_pool_virt_to_phys' filepath='lib/genalloc.c' line='217' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gen_pool_virt_to_phys'>
+        <parameter type-id='75b9415a' name='pool' filepath='lib/genalloc.c' line='217' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='lib/genalloc.c' line='217' column='1'/>
+        <return type-id='2522883d'/>
+      </function-decl>
+      <function-decl name='generate_random_uuid' mangled-name='generate_random_uuid' filepath='lib/uuid.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generate_random_uuid'>
+        <parameter type-id='cf536864' name='uuid' filepath='lib/uuid.c' line='33' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='generic_block_bmap' mangled-name='generic_block_bmap' filepath='fs/buffer.c' line='2987' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_block_bmap'>
+        <parameter type-id='f57039f0' name='mapping' filepath='fs/buffer.c' line='2987' column='1'/>
+        <parameter type-id='a42536cd' name='block' filepath='fs/buffer.c' line='2987' column='1'/>
+        <parameter type-id='05ca8778' name='get_block' filepath='fs/buffer.c' line='2988' column='1'/>
+        <return type-id='a42536cd'/>
+      </function-decl>
+      <function-decl name='generic_cont_expand_simple' mangled-name='generic_cont_expand_simple' filepath='fs/buffer.c' line='2351' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_cont_expand_simple'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/buffer.c' line='2351' column='1'/>
+        <parameter type-id='69bf7bee' name='size' filepath='fs/buffer.c' line='2351' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='generic_device_group' mangled-name='generic_device_group' filepath='drivers/iommu/iommu.c' line='1458' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_device_group'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1458' column='1'/>
+        <return type-id='0b19fc54'/>
+      </function-decl>
+      <function-decl name='generic_error_remove_page' mangled-name='generic_error_remove_page' filepath='mm/truncate.c' line='226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_error_remove_page'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/truncate.c' line='226' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/truncate.c' line='226' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='generic_fadvise' mangled-name='generic_fadvise' filepath='mm/fadvise.c' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_fadvise'>
+        <parameter type-id='77e79a4b' name='file' filepath='mm/fadvise.c' line='32' column='1'/>
+        <parameter type-id='69bf7bee' name='offset' filepath='mm/fadvise.c' line='32' column='1'/>
+        <parameter type-id='69bf7bee' name='len' filepath='mm/fadvise.c' line='32' column='1'/>
+        <parameter type-id='95e97e5e' name='advice' filepath='mm/fadvise.c' line='32' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='generic_fh_to_dentry' mangled-name='generic_fh_to_dentry' filepath='fs/libfs.c' line='1032' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_fh_to_dentry'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/libfs.c' line='1032' column='1'/>
+        <parameter type-id='f7d748c2' name='fid' filepath='fs/libfs.c' line='1032' column='1'/>
+        <parameter type-id='95e97e5e' name='fh_len' filepath='fs/libfs.c' line='1033' column='1'/>
+        <parameter type-id='95e97e5e' name='fh_type' filepath='fs/libfs.c' line='1033' column='1'/>
+        <parameter type-id='14a7c87f' name='get_inode' filepath='fs/libfs.c' line='1033' column='1'/>
+        <return type-id='27675065'/>
+      </function-decl>
+      <function-decl name='generic_fh_to_parent' mangled-name='generic_fh_to_parent' filepath='fs/libfs.c' line='1065' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_fh_to_parent'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/libfs.c' line='1065' column='1'/>
+        <parameter type-id='f7d748c2' name='fid' filepath='fs/libfs.c' line='1065' column='1'/>
+        <parameter type-id='95e97e5e' name='fh_len' filepath='fs/libfs.c' line='1066' column='1'/>
+        <parameter type-id='95e97e5e' name='fh_type' filepath='fs/libfs.c' line='1066' column='1'/>
+        <parameter type-id='14a7c87f' name='get_inode' filepath='fs/libfs.c' line='1066' column='1'/>
+        <return type-id='27675065'/>
+      </function-decl>
+      <function-decl name='generic_file_direct_write' mangled-name='generic_file_direct_write' filepath='mm/filemap.c' line='3692' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_file_direct_write'>
+        <parameter type-id='80f25feb' name='iocb' filepath='mm/filemap.c' line='3692' column='1'/>
+        <parameter type-id='4fa10f9e' name='from' filepath='mm/filemap.c' line='3692' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='generic_file_fsync' mangled-name='generic_file_fsync' filepath='fs/libfs.c' line='1139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_file_fsync'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/libfs.c' line='1139' column='1'/>
+        <parameter type-id='69bf7bee' name='start' filepath='fs/libfs.c' line='1139' column='1'/>
+        <parameter type-id='69bf7bee' name='end' filepath='fs/libfs.c' line='1139' column='1'/>
+        <parameter type-id='95e97e5e' name='datasync' filepath='fs/libfs.c' line='1140' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='generic_file_llseek' mangled-name='generic_file_llseek' filepath='fs/read_write.c' line='144' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_file_llseek'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/read_write.c' line='144' column='1'/>
+        <parameter type-id='69bf7bee' name='offset' filepath='fs/read_write.c' line='144' column='1'/>
+        <parameter type-id='95e97e5e' name='whence' filepath='fs/read_write.c' line='144' column='1'/>
+        <return type-id='69bf7bee'/>
+      </function-decl>
+      <function-decl name='generic_file_llseek_size' mangled-name='generic_file_llseek_size' filepath='fs/read_write.c' line='86' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_file_llseek_size'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/read_write.c' line='86' column='1'/>
+        <parameter type-id='69bf7bee' name='offset' filepath='fs/read_write.c' line='86' column='1'/>
+        <parameter type-id='95e97e5e' name='whence' filepath='fs/read_write.c' line='86' column='1'/>
+        <parameter type-id='69bf7bee' name='maxsize' filepath='fs/read_write.c' line='87' column='1'/>
+        <parameter type-id='69bf7bee' name='eof' filepath='fs/read_write.c' line='87' column='1'/>
+        <return type-id='69bf7bee'/>
+      </function-decl>
+      <function-decl name='generic_file_mmap' mangled-name='generic_file_mmap' filepath='mm/filemap.c' line='3443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_file_mmap'>
+        <parameter type-id='77e79a4b' name='file' filepath='mm/filemap.c' line='3443' column='1'/>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/filemap.c' line='3443' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='generic_file_open' mangled-name='generic_file_open' filepath='fs/open.c' line='1409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_file_open'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/open.c' line='1409' column='1'/>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/open.c' line='1409' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='generic_file_read_iter' mangled-name='generic_file_read_iter' filepath='mm/filemap.c' line='2734' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_file_read_iter'>
+        <parameter type-id='80f25feb' name='iocb' filepath='mm/filemap.c' line='2734' column='1'/>
+        <parameter type-id='4fa10f9e' name='iter' filepath='mm/filemap.c' line='2734' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='generic_file_splice_read' mangled-name='generic_file_splice_read' filepath='fs/splice.c' line='298' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_file_splice_read'>
+        <parameter type-id='77e79a4b' name='in' filepath='fs/splice.c' line='298' column='1'/>
+        <parameter type-id='b53e8dbb' name='ppos' filepath='fs/splice.c' line='298' column='1'/>
+        <parameter type-id='15d29710' name='pipe' filepath='fs/splice.c' line='299' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='fs/splice.c' line='299' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='fs/splice.c' line='300' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='generic_file_write_iter' mangled-name='generic_file_write_iter' filepath='mm/filemap.c' line='3983' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_file_write_iter'>
+        <parameter type-id='80f25feb' name='iocb' filepath='mm/filemap.c' line='3983' column='1'/>
+        <parameter type-id='4fa10f9e' name='from' filepath='mm/filemap.c' line='3983' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='generic_fillattr' mangled-name='generic_fillattr' filepath='fs/stat.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_fillattr'>
+        <parameter type-id='c0ced320' name='mnt_userns' filepath='fs/stat.c' line='43' column='1'/>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/stat.c' line='43' column='1'/>
+        <parameter type-id='0e87f9be' name='stat' filepath='fs/stat.c' line='44' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='generic_handle_domain_irq' mangled-name='generic_handle_domain_irq' filepath='kernel/irq/irqdesc.c' line='676' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_handle_domain_irq'>
+        <parameter type-id='7544e824' name='domain' filepath='kernel/irq/irqdesc.c' line='676' column='1'/>
+        <parameter type-id='f0981eeb' name='hwirq' filepath='kernel/irq/irqdesc.c' line='676' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='generic_handle_irq' mangled-name='generic_handle_irq' filepath='kernel/irq/irqdesc.c' line='659' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_handle_irq'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/irqdesc.c' line='659' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='generic_iommu_put_resv_regions' mangled-name='generic_iommu_put_resv_regions' filepath='drivers/iommu/iommu.c' line='2852' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_iommu_put_resv_regions'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2852' column='1'/>
+        <parameter type-id='e84b031a' name='list' filepath='drivers/iommu/iommu.c' line='2852' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='generic_key_instantiate' mangled-name='generic_key_instantiate' filepath='security/keys/key.c' line='1121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_key_instantiate'>
+        <parameter type-id='204a4632' name='key' filepath='security/keys/key.c' line='1121' column='1'/>
+        <parameter type-id='4eae5cb0' name='prep' filepath='security/keys/key.c' line='1121' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='generic_mii_ioctl' mangled-name='generic_mii_ioctl' filepath='drivers/net/mii.c' line='582' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_mii_ioctl'>
+        <parameter type-id='f0150b1d' name='mii_if' filepath='drivers/net/mii.c' line='582' column='1'/>
+        <parameter type-id='eb5662e5' name='mii_data' filepath='drivers/net/mii.c' line='583' column='1'/>
+        <parameter type-id='95e97e5e' name='cmd' filepath='drivers/net/mii.c' line='583' column='1'/>
+        <parameter type-id='807869d3' name='duplex_chg_out' filepath='drivers/net/mii.c' line='584' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='generic_perform_write' mangled-name='generic_perform_write' filepath='mm/filemap.c' line='3796' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_perform_write'>
+        <parameter type-id='77e79a4b' name='file' filepath='mm/filemap.c' line='3796' column='1'/>
+        <parameter type-id='4fa10f9e' name='i' filepath='mm/filemap.c' line='3797' column='1'/>
+        <parameter type-id='69bf7bee' name='pos' filepath='mm/filemap.c' line='3797' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='generic_permission' mangled-name='generic_permission' filepath='fs/namei.c' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_permission'>
+        <parameter type-id='c0ced320' name='mnt_userns' filepath='fs/namei.c' line='395' column='1'/>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/namei.c' line='395' column='1'/>
+        <parameter type-id='95e97e5e' name='mask' filepath='fs/namei.c' line='396' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='generic_read_dir' mangled-name='generic_read_dir' filepath='fs/libfs.c' line='225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_read_dir'>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/libfs.c' line='225' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='fs/libfs.c' line='225' column='1'/>
+        <parameter type-id='b59d7dce' name='siz' filepath='fs/libfs.c' line='225' column='1'/>
+        <parameter type-id='b53e8dbb' name='ppos' filepath='fs/libfs.c' line='225' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <var-decl name='generic_ro_fops' type-id='b8ae588d' mangled-name='generic_ro_fops' visibility='default' filepath='fs/read_write.c' line='28' column='1' elf-symbol-id='generic_ro_fops'/>
+      <function-decl name='generic_set_encrypted_ci_d_ops' mangled-name='generic_set_encrypted_ci_d_ops' filepath='fs/libfs.c' line='1495' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_set_encrypted_ci_d_ops'>
+        <parameter type-id='27675065' name='dentry' filepath='fs/libfs.c' line='1495' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='generic_shutdown_super' mangled-name='generic_shutdown_super' filepath='fs/super.c' line='442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_shutdown_super'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/super.c' line='442' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='generic_write_checks' mangled-name='generic_write_checks' filepath='fs/read_write.c' line='1654' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_write_checks'>
+        <parameter type-id='80f25feb' name='iocb' filepath='fs/read_write.c' line='1654' column='1'/>
+        <parameter type-id='4fa10f9e' name='from' filepath='fs/read_write.c' line='1654' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='generic_write_end' mangled-name='generic_write_end' filepath='fs/buffer.c' line='2170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_write_end'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/buffer.c' line='2170' column='1'/>
+        <parameter type-id='f57039f0' name='mapping' filepath='fs/buffer.c' line='2170' column='1'/>
+        <parameter type-id='69bf7bee' name='pos' filepath='fs/buffer.c' line='2171' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='fs/buffer.c' line='2171' column='1'/>
+        <parameter type-id='f0981eeb' name='copied' filepath='fs/buffer.c' line='2171' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='fs/buffer.c' line='2172' column='1'/>
+        <parameter type-id='eaa32e2f' name='fsdata' filepath='fs/buffer.c' line='2172' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='geni_icc_disable' mangled-name='geni_icc_disable' filepath='drivers/soc/qcom/qcom-geni-se.c' line='857' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='geni_icc_disable'>
+        <parameter type-id='e03898a9' name='se' filepath='drivers/soc/qcom/qcom-geni-se.c' line='857' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='geni_icc_enable' mangled-name='geni_icc_enable' filepath='drivers/soc/qcom/qcom-geni-se.c' line='840' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='geni_icc_enable'>
+        <parameter type-id='e03898a9' name='se' filepath='drivers/soc/qcom/qcom-geni-se.c' line='840' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='geni_icc_get' mangled-name='geni_icc_get' filepath='drivers/soc/qcom/qcom-geni-se.c' line='783' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='geni_icc_get'>
+        <parameter type-id='e03898a9' name='se' filepath='drivers/soc/qcom/qcom-geni-se.c' line='783' column='1'/>
+        <parameter type-id='80f4b756' name='icc_ddr' filepath='drivers/soc/qcom/qcom-geni-se.c' line='783' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='geni_icc_set_bw' mangled-name='geni_icc_set_bw' filepath='drivers/soc/qcom/qcom-geni-se.c' line='812' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='geni_icc_set_bw'>
+        <parameter type-id='e03898a9' name='se' filepath='drivers/soc/qcom/qcom-geni-se.c' line='812' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='geni_se_clk_freq_match' mangled-name='geni_se_clk_freq_match' filepath='drivers/soc/qcom/qcom-geni-se.c' line='629' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='geni_se_clk_freq_match'>
+        <parameter type-id='e03898a9' name='se' filepath='drivers/soc/qcom/qcom-geni-se.c' line='629' column='1'/>
+        <parameter type-id='7359adad' name='req_freq' filepath='drivers/soc/qcom/qcom-geni-se.c' line='629' column='1'/>
+        <parameter type-id='807869d3' name='index' filepath='drivers/soc/qcom/qcom-geni-se.c' line='630' column='1'/>
+        <parameter type-id='1d2c2b85' name='res_freq' filepath='drivers/soc/qcom/qcom-geni-se.c' line='630' column='1'/>
+        <parameter type-id='b50a4934' name='exact' filepath='drivers/soc/qcom/qcom-geni-se.c' line='631' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='geni_se_config_packing' mangled-name='geni_se_config_packing' filepath='drivers/soc/qcom/qcom-geni-se.c' line='439' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='geni_se_config_packing'>
+        <parameter type-id='e03898a9' name='se' filepath='drivers/soc/qcom/qcom-geni-se.c' line='439' column='1'/>
+        <parameter type-id='95e97e5e' name='bpw' filepath='drivers/soc/qcom/qcom-geni-se.c' line='439' column='1'/>
+        <parameter type-id='95e97e5e' name='pack_words' filepath='drivers/soc/qcom/qcom-geni-se.c' line='439' column='1'/>
+        <parameter type-id='b50a4934' name='msb_to_lsb' filepath='drivers/soc/qcom/qcom-geni-se.c' line='440' column='1'/>
+        <parameter type-id='b50a4934' name='tx_cfg' filepath='drivers/soc/qcom/qcom-geni-se.c' line='440' column='1'/>
+        <parameter type-id='b50a4934' name='rx_cfg' filepath='drivers/soc/qcom/qcom-geni-se.c' line='440' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='geni_se_get_qup_hw_version' mangled-name='geni_se_get_qup_hw_version' filepath='drivers/soc/qcom/qcom-geni-se.c' line='184' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='geni_se_get_qup_hw_version'>
+        <parameter type-id='e03898a9' name='se' filepath='drivers/soc/qcom/qcom-geni-se.c' line='184' column='1'/>
+        <return type-id='19c2251e'/>
+      </function-decl>
+      <function-decl name='geni_se_init' mangled-name='geni_se_init' filepath='drivers/soc/qcom/qcom-geni-se.c' line='244' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='geni_se_init'>
+        <parameter type-id='e03898a9' name='se' filepath='drivers/soc/qcom/qcom-geni-se.c' line='244' column='1'/>
+        <parameter type-id='19c2251e' name='rx_wm' filepath='drivers/soc/qcom/qcom-geni-se.c' line='244' column='1'/>
+        <parameter type-id='19c2251e' name='rx_rfr' filepath='drivers/soc/qcom/qcom-geni-se.c' line='244' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='geni_se_resources_off' mangled-name='geni_se_resources_off' filepath='drivers/soc/qcom/qcom-geni-se.c' line='510' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='geni_se_resources_off'>
+        <parameter type-id='e03898a9' name='se' filepath='drivers/soc/qcom/qcom-geni-se.c' line='510' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='geni_se_resources_on' mangled-name='geni_se_resources_on' filepath='drivers/soc/qcom/qcom-geni-se.c' line='550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='geni_se_resources_on'>
+        <parameter type-id='e03898a9' name='se' filepath='drivers/soc/qcom/qcom-geni-se.c' line='550' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='geni_se_rx_dma_prep' mangled-name='geni_se_rx_dma_prep' filepath='drivers/soc/qcom/qcom-geni-se.c' line='723' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='geni_se_rx_dma_prep'>
+        <parameter type-id='e03898a9' name='se' filepath='drivers/soc/qcom/qcom-geni-se.c' line='723' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='drivers/soc/qcom/qcom-geni-se.c' line='723' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/soc/qcom/qcom-geni-se.c' line='723' column='1'/>
+        <parameter type-id='e835b5d8' name='iova' filepath='drivers/soc/qcom/qcom-geni-se.c' line='724' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='geni_se_rx_dma_unprep' mangled-name='geni_se_rx_dma_unprep' filepath='drivers/soc/qcom/qcom-geni-se.c' line='774' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='geni_se_rx_dma_unprep'>
+        <parameter type-id='e03898a9' name='se' filepath='drivers/soc/qcom/qcom-geni-se.c' line='774' column='1'/>
+        <parameter type-id='cf29c9b3' name='iova' filepath='drivers/soc/qcom/qcom-geni-se.c' line='774' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/soc/qcom/qcom-geni-se.c' line='774' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='geni_se_select_mode' mangled-name='geni_se_select_mode' filepath='drivers/soc/qcom/qcom-geni-se.c' line='356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='geni_se_select_mode'>
+        <parameter type-id='e03898a9' name='se' filepath='drivers/soc/qcom/qcom-geni-se.c' line='356' column='1'/>
+        <parameter type-id='79c8c088' name='mode' filepath='drivers/soc/qcom/qcom-geni-se.c' line='356' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='geni_se_tx_dma_prep' mangled-name='geni_se_tx_dma_prep' filepath='drivers/soc/qcom/qcom-geni-se.c' line='687' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='geni_se_tx_dma_prep'>
+        <parameter type-id='e03898a9' name='se' filepath='drivers/soc/qcom/qcom-geni-se.c' line='687' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='drivers/soc/qcom/qcom-geni-se.c' line='687' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/soc/qcom/qcom-geni-se.c' line='687' column='1'/>
+        <parameter type-id='e835b5d8' name='iova' filepath='drivers/soc/qcom/qcom-geni-se.c' line='688' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='geni_se_tx_dma_unprep' mangled-name='geni_se_tx_dma_unprep' filepath='drivers/soc/qcom/qcom-geni-se.c' line='757' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='geni_se_tx_dma_unprep'>
+        <parameter type-id='e03898a9' name='se' filepath='drivers/soc/qcom/qcom-geni-se.c' line='757' column='1'/>
+        <parameter type-id='cf29c9b3' name='iova' filepath='drivers/soc/qcom/qcom-geni-se.c' line='757' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/soc/qcom/qcom-geni-se.c' line='757' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='genl_notify' mangled-name='genl_notify' filepath='net/netlink/genetlink.c' line='1490' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genl_notify'>
+        <parameter type-id='63d7819b' name='family' filepath='net/netlink/genetlink.c' line='1490' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/netlink/genetlink.c' line='1490' column='1'/>
+        <parameter type-id='31b542ce' name='info' filepath='net/netlink/genetlink.c' line='1491' column='1'/>
+        <parameter type-id='19c2251e' name='group' filepath='net/netlink/genetlink.c' line='1491' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='net/netlink/genetlink.c' line='1491' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='genl_register_family' mangled-name='genl_register_family' filepath='net/netlink/genetlink.c' line='384' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genl_register_family'>
+        <parameter type-id='8f6b937a' name='family' filepath='net/netlink/genetlink.c' line='384' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genl_unregister_family' mangled-name='genl_unregister_family' filepath='net/netlink/genetlink.c' line='453' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genl_unregister_family'>
+        <parameter type-id='63d7819b' name='family' filepath='net/netlink/genetlink.c' line='453' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genlmsg_multicast_allns' mangled-name='genlmsg_multicast_allns' filepath='net/netlink/genetlink.c' line='1478' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genlmsg_multicast_allns'>
+        <parameter type-id='63d7819b' name='family' filepath='net/netlink/genetlink.c' line='1478' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/netlink/genetlink.c' line='1479' column='1'/>
+        <parameter type-id='19c2251e' name='portid' filepath='net/netlink/genetlink.c' line='1479' column='1'/>
+        <parameter type-id='f0981eeb' name='group' filepath='net/netlink/genetlink.c' line='1480' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='net/netlink/genetlink.c' line='1480' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genlmsg_put' mangled-name='genlmsg_put' filepath='net/netlink/genetlink.c' line='488' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genlmsg_put'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/netlink/genetlink.c' line='488' column='1'/>
+        <parameter type-id='19c2251e' name='portid' filepath='net/netlink/genetlink.c' line='488' column='1'/>
+        <parameter type-id='19c2251e' name='seq' filepath='net/netlink/genetlink.c' line='488' column='1'/>
+        <parameter type-id='63d7819b' name='family' filepath='net/netlink/genetlink.c' line='489' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='net/netlink/genetlink.c' line='489' column='1'/>
+        <parameter type-id='f9b06939' name='cmd' filepath='net/netlink/genetlink.c' line='489' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='genphy_aneg_done' mangled-name='genphy_aneg_done' filepath='drivers/net/phy/phy_device.c' line='2249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_aneg_done'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='2249' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_c45_an_config_aneg' mangled-name='genphy_c45_an_config_aneg' filepath='drivers/net/phy/phy-c45.c' line='134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_c45_an_config_aneg'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-c45.c' line='134' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_c45_aneg_done' mangled-name='genphy_c45_aneg_done' filepath='drivers/net/phy/phy-c45.c' line='243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_c45_aneg_done'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-c45.c' line='243' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_c45_check_and_restart_aneg' mangled-name='genphy_c45_check_and_restart_aneg' filepath='drivers/net/phy/phy-c45.c' line='211' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_c45_check_and_restart_aneg'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-c45.c' line='211' column='1'/>
+        <parameter type-id='b50a4934' name='restart' filepath='drivers/net/phy/phy-c45.c' line='211' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_c45_loopback' mangled-name='genphy_c45_loopback' filepath='drivers/net/phy/phy-c45.c' line='606' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_c45_loopback'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-c45.c' line='606' column='1'/>
+        <parameter type-id='b50a4934' name='enable' filepath='drivers/net/phy/phy-c45.c' line='606' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_c45_pma_read_abilities' mangled-name='genphy_c45_pma_read_abilities' filepath='drivers/net/phy/phy-c45.c' line='450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_c45_pma_read_abilities'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-c45.c' line='450' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_c45_pma_setup_forced' mangled-name='genphy_c45_pma_setup_forced' filepath='drivers/net/phy/phy-c45.c' line='58' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_c45_pma_setup_forced'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-c45.c' line='58' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_c45_read_link' mangled-name='genphy_c45_read_link' filepath='drivers/net/phy/phy-c45.c' line='259' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_c45_read_link'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-c45.c' line='259' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_c45_read_lpa' mangled-name='genphy_c45_read_lpa' filepath='drivers/net/phy/phy-c45.c' line='320' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_c45_read_lpa'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-c45.c' line='320' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_c45_read_status' mangled-name='genphy_c45_read_status' filepath='drivers/net/phy/phy-c45.c' line='545' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_c45_read_status'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-c45.c' line='545' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_check_and_restart_aneg' mangled-name='genphy_check_and_restart_aneg' filepath='drivers/net/phy/phy_device.c' line='2135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_check_and_restart_aneg'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='2135' column='1'/>
+        <parameter type-id='b50a4934' name='restart' filepath='drivers/net/phy/phy_device.c' line='2135' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_handle_interrupt_no_ack' mangled-name='genphy_handle_interrupt_no_ack' filepath='drivers/net/phy/phy_device.c' line='2530' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_handle_interrupt_no_ack'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='2530' column='1'/>
+        <return type-id='4bdecfd7'/>
+      </function-decl>
+      <function-decl name='genphy_read_abilities' mangled-name='genphy_read_abilities' filepath='drivers/net/phy/phy_device.c' line='2552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_read_abilities'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='2552' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_read_lpa' mangled-name='genphy_read_lpa' filepath='drivers/net/phy/phy_device.c' line='2310' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_read_lpa'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='2310' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_read_mmd_unsupported' mangled-name='genphy_read_mmd_unsupported' filepath='drivers/net/phy/phy_device.c' line='2597' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_read_mmd_unsupported'>
+        <parameter type-id='7efbcaaf' name='phdev' filepath='drivers/net/phy/phy_device.c' line='2597' column='1'/>
+        <parameter type-id='95e97e5e' name='devad' filepath='drivers/net/phy/phy_device.c' line='2597' column='1'/>
+        <parameter type-id='1dc6a898' name='regnum' filepath='drivers/net/phy/phy_device.c' line='2597' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_read_status' mangled-name='genphy_read_status' filepath='drivers/net/phy/phy_device.c' line='2396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_read_status'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='2396' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_read_status_fixed' mangled-name='genphy_read_status_fixed' filepath='drivers/net/phy/phy_device.c' line='2364' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_read_status_fixed'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='2364' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_restart_aneg' mangled-name='genphy_restart_aneg' filepath='drivers/net/phy/phy_device.c' line='2120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_restart_aneg'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='2120' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_resume' mangled-name='genphy_resume' filepath='drivers/net/phy/phy_device.c' line='2616' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_resume'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='2616' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_setup_forced' mangled-name='genphy_setup_forced' filepath='drivers/net/phy/phy_device.c' line='2012' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_setup_forced'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='2012' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_soft_reset' mangled-name='genphy_soft_reset' filepath='drivers/net/phy/phy_device.c' line='2500' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_soft_reset'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='2500' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_suspend' mangled-name='genphy_suspend' filepath='drivers/net/phy/phy_device.c' line='2610' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_suspend'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='2610' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_update_link' mangled-name='genphy_update_link' filepath='drivers/net/phy/phy_device.c' line='2265' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_update_link'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='2265' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='genphy_write_mmd_unsupported' mangled-name='genphy_write_mmd_unsupported' filepath='drivers/net/phy/phy_device.c' line='2603' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_write_mmd_unsupported'>
+        <parameter type-id='7efbcaaf' name='phdev' filepath='drivers/net/phy/phy_device.c' line='2603' column='1'/>
+        <parameter type-id='95e97e5e' name='devnum' filepath='drivers/net/phy/phy_device.c' line='2603' column='1'/>
+        <parameter type-id='1dc6a898' name='regnum' filepath='drivers/net/phy/phy_device.c' line='2604' column='1'/>
+        <parameter type-id='1dc6a898' name='val' filepath='drivers/net/phy/phy_device.c' line='2604' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='get_cpu_device' mangled-name='get_cpu_device' filepath='drivers/base/cpu.c' line='391' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_device'>
+        <parameter type-id='f0981eeb' name='cpu' filepath='drivers/base/cpu.c' line='391' column='1'/>
+        <return type-id='fa0b179b'/>
+      </function-decl>
+      <function-decl name='get_cpu_idle_time' mangled-name='get_cpu_idle_time' filepath='drivers/cpufreq/cpufreq.c' line='151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_idle_time'>
+        <parameter type-id='f0981eeb' name='cpu' filepath='drivers/cpufreq/cpufreq.c' line='151' column='1'/>
+        <parameter type-id='3df9fd28' name='wall' filepath='drivers/cpufreq/cpufreq.c' line='151' column='1'/>
+        <parameter type-id='95e97e5e' name='io_busy' filepath='drivers/cpufreq/cpufreq.c' line='151' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='get_cpu_idle_time_us' mangled-name='get_cpu_idle_time_us' filepath='kernel/time/tick-sched.c' line='698' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_idle_time_us'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/time/tick-sched.c' line='698' column='1'/>
+        <parameter type-id='3df9fd28' name='last_update_time' filepath='kernel/time/tick-sched.c' line='698' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='get_cpu_iowait_time_us' mangled-name='get_cpu_iowait_time_us' filepath='kernel/time/tick-sched.c' line='739' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_cpu_iowait_time_us'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/time/tick-sched.c' line='739' column='1'/>
+        <parameter type-id='3df9fd28' name='last_update_time' filepath='kernel/time/tick-sched.c' line='739' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='get_device' mangled-name='get_device' filepath='drivers/base/core.c' line='3498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_device'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='3498' column='1'/>
+        <return type-id='fa0b179b'/>
+      </function-decl>
+      <function-decl name='get_device_system_crosststamp' mangled-name='get_device_system_crosststamp' filepath='kernel/time/timekeeping.c' line='1189' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_device_system_crosststamp'>
+        <parameter type-id='d5d36d38' name='get_time_fn' filepath='kernel/time/timekeeping.c' line='1189' column='1'/>
+        <parameter type-id='eaa32e2f' name='ctx' filepath='kernel/time/timekeeping.c' line='1193' column='1'/>
+        <parameter type-id='9e33b18d' name='history_begin' filepath='kernel/time/timekeeping.c' line='1194' column='1'/>
+        <parameter type-id='587b4de3' name='xtstamp' filepath='kernel/time/timekeeping.c' line='1195' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='get_each_dmabuf' mangled-name='get_each_dmabuf' filepath='drivers/dma-buf/dma-buf.c' line='48' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_each_dmabuf'>
+        <parameter type-id='dcbbb1fc' name='callback' filepath='drivers/dma-buf/dma-buf.c' line='48' column='1'/>
+        <parameter type-id='eaa32e2f' name='private' filepath='drivers/dma-buf/dma-buf.c' line='49' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='get_each_object_track' mangled-name='get_each_object_track' filepath='mm/slub.c' line='693' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_each_object_track'>
+        <parameter type-id='f3b4aca8' name='s' filepath='mm/slub.c' line='693' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/slub.c' line='694' column='1'/>
+        <parameter type-id='aaa40ef7' name='alloc' filepath='mm/slub.c' line='694' column='1'/>
+        <parameter type-id='aaaad27f' name='fn' filepath='mm/slub.c' line='695' column='1'/>
+        <parameter type-id='eaa32e2f' name='private' filepath='mm/slub.c' line='696' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='get_fs_type' mangled-name='get_fs_type' filepath='fs/filesystems.c' line='273' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_fs_type'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/filesystems.c' line='273' column='1'/>
+        <return type-id='21e53d44'/>
+      </function-decl>
+      <function-decl name='get_governor_parent_kobj' mangled-name='get_governor_parent_kobj' filepath='drivers/cpufreq/cpufreq.c' line='117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_governor_parent_kobj'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq.c' line='117' column='1'/>
+        <return type-id='d30bdc51'/>
+      </function-decl>
+      <function-decl name='get_kernel_pages' mangled-name='get_kernel_pages' filepath='mm/swap.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_kernel_pages'>
+        <parameter type-id='5199c30d' name='kiov' filepath='mm/swap.c' line='165' column='1'/>
+        <parameter type-id='95e97e5e' name='nr_segs' filepath='mm/swap.c' line='165' column='1'/>
+        <parameter type-id='95e97e5e' name='write' filepath='mm/swap.c' line='165' column='1'/>
+        <parameter type-id='9f93c9da' name='pages' filepath='mm/swap.c' line='166' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='get_net_ns_by_fd' mangled-name='get_net_ns_by_fd' filepath='net/core/net_namespace.c' line='659' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_net_ns_by_fd'>
+        <parameter type-id='95e97e5e' name='fd' filepath='net/core/net_namespace.c' line='659' column='1'/>
+        <return type-id='a2bff676'/>
+      </function-decl>
+      <function-decl name='get_net_ns_by_pid' mangled-name='get_net_ns_by_pid' filepath='net/core/net_namespace.c' line='681' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_net_ns_by_pid'>
+        <parameter type-id='587f89d2' name='pid' filepath='net/core/net_namespace.c' line='681' column='1'/>
+        <return type-id='a2bff676'/>
+      </function-decl>
+      <function-decl name='get_next_ino' mangled-name='get_next_ino' filepath='fs/inode.c' line='901' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_next_ino'>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='get_option' mangled-name='get_option' filepath='lib/cmdline.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_option'>
+        <parameter type-id='9b23c9ad' name='str' filepath='lib/cmdline.c' line='56' column='1'/>
+        <parameter type-id='7292109c' name='pint' filepath='lib/cmdline.c' line='56' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='get_options' mangled-name='get_options' filepath='lib/cmdline.c' line='107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_options'>
+        <parameter type-id='80f4b756' name='str' filepath='lib/cmdline.c' line='107' column='1'/>
+        <parameter type-id='95e97e5e' name='nints' filepath='lib/cmdline.c' line='107' column='1'/>
+        <parameter type-id='7292109c' name='ints' filepath='lib/cmdline.c' line='107' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='get_page_owner_handle' mangled-name='get_page_owner_handle' filepath='mm/page_owner.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_page_owner_handle'>
+        <parameter type-id='459ae684' name='page_ext' filepath='mm/page_owner.c' line='101' column='1'/>
+        <parameter type-id='7359adad' name='pfn' filepath='mm/page_owner.c' line='101' column='1'/>
+        <return type-id='613ae993'/>
+      </function-decl>
+      <function-decl name='get_pfnblock_flags_mask' mangled-name='get_pfnblock_flags_mask' filepath='mm/page_alloc.c' line='591' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_pfnblock_flags_mask'>
+        <parameter type-id='b72f2447' name='page' filepath='mm/page_alloc.c' line='591' column='1'/>
+        <parameter type-id='7359adad' name='pfn' filepath='mm/page_alloc.c' line='592' column='1'/>
+        <parameter type-id='7359adad' name='mask' filepath='mm/page_alloc.c' line='592' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='get_pid_task' mangled-name='get_pid_task' filepath='kernel/pid.c' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_pid_task'>
+        <parameter type-id='b94e5398' name='pid' filepath='kernel/pid.c' line='449' column='1'/>
+        <parameter type-id='ce78cf46' name='type' filepath='kernel/pid.c' line='449' column='1'/>
+        <return type-id='f23e2572'/>
+      </function-decl>
+      <function-decl name='get_random_bytes' mangled-name='get_random_bytes' filepath='drivers/char/random.c' line='444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_random_bytes'>
+        <parameter type-id='eaa32e2f' name='buf' filepath='drivers/char/random.c' line='444' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='drivers/char/random.c' line='444' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='get_random_u32' mangled-name='get_random_u32' filepath='drivers/char/random.c' line='561' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_random_u32'>
+        <return type-id='19c2251e'/>
+      </function-decl>
+      <function-decl name='get_random_u64' mangled-name='get_random_u64' filepath='drivers/char/random.c' line='560' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_random_u64'>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='get_sg_io_hdr' mangled-name='get_sg_io_hdr' filepath='drivers/scsi/scsi_ioctl.c' line='690' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_sg_io_hdr'>
+        <parameter type-id='75d4b09d' name='hdr' filepath='drivers/scsi/scsi_ioctl.c' line='690' column='1'/>
+        <parameter type-id='eaa32e2f' name='argp' filepath='drivers/scsi/scsi_ioctl.c' line='690' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='get_slabinfo' mangled-name='get_slabinfo' filepath='mm/slub.c' line='6256' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_slabinfo'>
+        <parameter type-id='f3b4aca8' name='s' filepath='mm/slub.c' line='6256' column='1'/>
+        <parameter type-id='d225de01' name='sinfo' filepath='mm/slub.c' line='6256' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='get_state_synchronize_rcu' mangled-name='get_state_synchronize_rcu' filepath='kernel/rcu/tree.c' line='3790' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_state_synchronize_rcu'>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='get_state_synchronize_srcu' mangled-name='get_state_synchronize_srcu' filepath='kernel/rcu/srcutree.c' line='1025' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_state_synchronize_srcu'>
+        <parameter type-id='f7d7131a' name='ssp' filepath='kernel/rcu/srcutree.c' line='1025' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='get_task_cred' mangled-name='get_task_cred' filepath='kernel/cred.c' line='199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_task_cred'>
+        <parameter type-id='f23e2572' name='task' filepath='kernel/cred.c' line='199' column='1'/>
+        <return type-id='bc33861a'/>
+      </function-decl>
+      <function-decl name='get_task_mm' mangled-name='get_task_mm' filepath='kernel/fork.c' line='1358' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_task_mm'>
+        <parameter type-id='f23e2572' name='task' filepath='kernel/fork.c' line='1358' column='1'/>
+        <return type-id='df4b7819'/>
+      </function-decl>
+      <function-decl name='get_task_pid' mangled-name='get_task_pid' filepath='kernel/pid.c' line='439' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_task_pid'>
+        <parameter type-id='f23e2572' name='task' filepath='kernel/pid.c' line='439' column='1'/>
+        <parameter type-id='ce78cf46' name='type' filepath='kernel/pid.c' line='439' column='1'/>
+        <return type-id='b94e5398'/>
+      </function-decl>
+      <function-decl name='get_thermal_instance' mangled-name='get_thermal_instance' filepath='drivers/thermal/thermal_helpers.c' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_thermal_instance'>
+        <parameter type-id='404b1300' name='tz' filepath='drivers/thermal/thermal_helpers.c' line='45' column='1'/>
+        <parameter type-id='2feec21f' name='cdev' filepath='drivers/thermal/thermal_helpers.c' line='46' column='1'/>
+        <parameter type-id='95e97e5e' name='trip' filepath='drivers/thermal/thermal_helpers.c' line='46' column='1'/>
+        <return type-id='7bf821a0'/>
+      </function-decl>
+      <function-decl name='get_tree_bdev' mangled-name='get_tree_bdev' filepath='fs/super.c' line='1238' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_tree_bdev'>
+        <parameter type-id='5760dcb0' name='fc' filepath='fs/super.c' line='1238' column='1'/>
+        <parameter type-id='30341fa1' name='fill_super' filepath='fs/super.c' line='1239' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='get_tree_single' mangled-name='get_tree_single' filepath='fs/super.c' line='1184' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_tree_single'>
+        <parameter type-id='5760dcb0' name='fc' filepath='fs/super.c' line='1184' column='1'/>
+        <parameter type-id='30341fa1' name='fill_super' filepath='fs/super.c' line='1185' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='get_unmapped_area' mangled-name='get_unmapped_area' filepath='mm/mmap.c' line='2239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_unmapped_area'>
+        <parameter type-id='77e79a4b' name='file' filepath='mm/mmap.c' line='2239' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='mm/mmap.c' line='2239' column='1'/>
+        <parameter type-id='7359adad' name='len' filepath='mm/mmap.c' line='2239' column='1'/>
+        <parameter type-id='7359adad' name='pgoff' filepath='mm/mmap.c' line='2240' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='mm/mmap.c' line='2240' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='get_unused_fd_flags' mangled-name='get_unused_fd_flags' filepath='fs/file.c' line='562' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_unused_fd_flags'>
+        <parameter type-id='f0981eeb' name='flags' filepath='fs/file.c' line='562' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='get_user_ifreq' mangled-name='get_user_ifreq' filepath='net/socket.c' line='3158' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_user_ifreq'>
+        <parameter type-id='d494b97c' name='ifr' filepath='net/socket.c' line='3158' column='1'/>
+        <parameter type-id='63e171df' name='ifrdata' filepath='net/socket.c' line='3158' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='net/socket.c' line='3158' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='get_user_pages' mangled-name='get_user_pages' filepath='mm/gup.c' line='2119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_user_pages'>
+        <parameter type-id='7359adad' name='start' filepath='mm/gup.c' line='2119' column='1'/>
+        <parameter type-id='7359adad' name='nr_pages' filepath='mm/gup.c' line='2119' column='1'/>
+        <parameter type-id='f0981eeb' name='gup_flags' filepath='mm/gup.c' line='2120' column='1'/>
+        <parameter type-id='9f93c9da' name='pages' filepath='mm/gup.c' line='2120' column='1'/>
+        <parameter type-id='8b6fdee4' name='vmas' filepath='mm/gup.c' line='2121' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='get_user_pages_fast' mangled-name='get_user_pages_fast' filepath='mm/gup.c' line='2990' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_user_pages_fast'>
+        <parameter type-id='7359adad' name='start' filepath='mm/gup.c' line='2990' column='1'/>
+        <parameter type-id='95e97e5e' name='nr_pages' filepath='mm/gup.c' line='2990' column='1'/>
+        <parameter type-id='f0981eeb' name='gup_flags' filepath='mm/gup.c' line='2991' column='1'/>
+        <parameter type-id='9f93c9da' name='pages' filepath='mm/gup.c' line='2991' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='get_user_pages_locked' mangled-name='get_user_pages_locked' filepath='mm/gup.c' line='2165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_user_pages_locked'>
+        <parameter type-id='7359adad' name='start' filepath='mm/gup.c' line='2165' column='1'/>
+        <parameter type-id='7359adad' name='nr_pages' filepath='mm/gup.c' line='2165' column='1'/>
+        <parameter type-id='f0981eeb' name='gup_flags' filepath='mm/gup.c' line='2166' column='1'/>
+        <parameter type-id='9f93c9da' name='pages' filepath='mm/gup.c' line='2166' column='1'/>
+        <parameter type-id='7292109c' name='locked' filepath='mm/gup.c' line='2167' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='get_user_pages_remote' mangled-name='get_user_pages_remote' filepath='mm/gup.c' line='2072' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_user_pages_remote'>
+        <parameter type-id='df4b7819' name='mm' filepath='mm/gup.c' line='2072' column='1'/>
+        <parameter type-id='7359adad' name='start' filepath='mm/gup.c' line='2073' column='1'/>
+        <parameter type-id='7359adad' name='nr_pages' filepath='mm/gup.c' line='2073' column='1'/>
+        <parameter type-id='f0981eeb' name='gup_flags' filepath='mm/gup.c' line='2074' column='1'/>
+        <parameter type-id='9f93c9da' name='pages' filepath='mm/gup.c' line='2074' column='1'/>
+        <parameter type-id='8b6fdee4' name='vmas' filepath='mm/gup.c' line='2075' column='1'/>
+        <parameter type-id='7292109c' name='locked' filepath='mm/gup.c' line='2075' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='get_vaddr_frames' mangled-name='get_vaddr_frames' filepath='drivers/media/common/videobuf2/frame_vector.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_vaddr_frames'>
+        <parameter type-id='7359adad' name='start' filepath='drivers/media/common/videobuf2/frame_vector.c' line='35' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_frames' filepath='drivers/media/common/videobuf2/frame_vector.c' line='35' column='1'/>
+        <parameter type-id='d9fbdc06' name='vec' filepath='drivers/media/common/videobuf2/frame_vector.c' line='36' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='get_wchan' mangled-name='get_wchan' filepath='arch/arm64/kernel/process.c' line='534' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_wchan'>
+        <parameter type-id='f23e2572' name='p' filepath='arch/arm64/kernel/process.c' line='534' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='get_zeroed_page' mangled-name='get_zeroed_page' filepath='mm/page_alloc.c' line='5817' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_zeroed_page'>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/page_alloc.c' line='5817' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='getboottime64' mangled-name='getboottime64' filepath='kernel/time/timekeeping.c' line='2232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='getboottime64'>
+        <parameter type-id='4151733d' name='ts' filepath='kernel/time/timekeeping.c' line='2232' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gether_cleanup' mangled-name='gether_cleanup' filepath='drivers/usb/gadget/function/u_ether.c' line='1060' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gether_cleanup'>
+        <parameter type-id='a15a118e' name='dev' filepath='drivers/usb/gadget/function/u_ether.c' line='1060' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gether_connect' mangled-name='gether_connect' filepath='drivers/usb/gadget/function/u_ether.c' line='1087' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gether_connect'>
+        <parameter type-id='04b6a8dc' name='link' filepath='drivers/usb/gadget/function/u_ether.c' line='1087' column='1'/>
+        <return type-id='68a2d05b'/>
+      </function-decl>
+      <function-decl name='gether_disconnect' mangled-name='gether_disconnect' filepath='drivers/usb/gadget/function/u_ether.c' line='1165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gether_disconnect'>
+        <parameter type-id='04b6a8dc' name='link' filepath='drivers/usb/gadget/function/u_ether.c' line='1165' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gether_get_dev_addr' mangled-name='gether_get_dev_addr' filepath='drivers/usb/gadget/function/u_ether.c' line='925' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gether_get_dev_addr'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/usb/gadget/function/u_ether.c' line='925' column='1'/>
+        <parameter type-id='26a90f95' name='dev_addr' filepath='drivers/usb/gadget/function/u_ether.c' line='925' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='drivers/usb/gadget/function/u_ether.c' line='925' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gether_get_host_addr' mangled-name='gether_get_host_addr' filepath='drivers/usb/gadget/function/u_ether.c' line='954' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gether_get_host_addr'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/usb/gadget/function/u_ether.c' line='954' column='1'/>
+        <parameter type-id='26a90f95' name='host_addr' filepath='drivers/usb/gadget/function/u_ether.c' line='954' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='drivers/usb/gadget/function/u_ether.c' line='954' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gether_get_host_addr_u8' mangled-name='gether_get_host_addr_u8' filepath='drivers/usb/gadget/function/u_ether.c' line='986' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gether_get_host_addr_u8'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/usb/gadget/function/u_ether.c' line='986' column='1'/>
+        <parameter type-id='8bff8096' name='host_mac' filepath='drivers/usb/gadget/function/u_ether.c' line='986' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gether_get_ifname' mangled-name='gether_get_ifname' filepath='drivers/usb/gadget/function/u_ether.c' line='1013' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gether_get_ifname'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/usb/gadget/function/u_ether.c' line='1013' column='1'/>
+        <parameter type-id='26a90f95' name='name' filepath='drivers/usb/gadget/function/u_ether.c' line='1013' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='drivers/usb/gadget/function/u_ether.c' line='1013' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gether_get_qmult' mangled-name='gether_get_qmult' filepath='drivers/usb/gadget/function/u_ether.c' line='1004' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gether_get_qmult'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/usb/gadget/function/u_ether.c' line='1004' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='gether_register_netdev' mangled-name='gether_register_netdev' filepath='drivers/usb/gadget/function/u_ether.c' line='869' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gether_register_netdev'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/usb/gadget/function/u_ether.c' line='869' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gether_set_dev_addr' mangled-name='gether_set_dev_addr' filepath='drivers/usb/gadget/function/u_ether.c' line='911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gether_set_dev_addr'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/usb/gadget/function/u_ether.c' line='911' column='1'/>
+        <parameter type-id='80f4b756' name='dev_addr' filepath='drivers/usb/gadget/function/u_ether.c' line='911' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gether_set_gadget' mangled-name='gether_set_gadget' filepath='drivers/usb/gadget/function/u_ether.c' line='901' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gether_set_gadget'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/usb/gadget/function/u_ether.c' line='901' column='1'/>
+        <parameter type-id='49a58c0c' name='g' filepath='drivers/usb/gadget/function/u_ether.c' line='901' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gether_set_host_addr' mangled-name='gether_set_host_addr' filepath='drivers/usb/gadget/function/u_ether.c' line='941' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gether_set_host_addr'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/usb/gadget/function/u_ether.c' line='941' column='1'/>
+        <parameter type-id='80f4b756' name='host_addr' filepath='drivers/usb/gadget/function/u_ether.c' line='941' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gether_set_ifname' mangled-name='gether_set_ifname' filepath='drivers/usb/gadget/function/u_ether.c' line='1026' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gether_set_ifname'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/usb/gadget/function/u_ether.c' line='1026' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/usb/gadget/function/u_ether.c' line='1026' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='drivers/usb/gadget/function/u_ether.c' line='1026' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gether_set_qmult' mangled-name='gether_set_qmult' filepath='drivers/usb/gadget/function/u_ether.c' line='995' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gether_set_qmult'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/usb/gadget/function/u_ether.c' line='995' column='1'/>
+        <parameter type-id='f0981eeb' name='qmult' filepath='drivers/usb/gadget/function/u_ether.c' line='995' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gether_setup_name_default' mangled-name='gether_setup_name_default' filepath='drivers/usb/gadget/function/u_ether.c' line='825' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gether_setup_name_default'>
+        <parameter type-id='80f4b756' name='netname' filepath='drivers/usb/gadget/function/u_ether.c' line='825' column='1'/>
+        <return type-id='68a2d05b'/>
+      </function-decl>
+      <function-decl name='gf128mul_lle' mangled-name='gf128mul_lle' filepath='crypto/gf128mul.c' line='170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gf128mul_lle'>
+        <parameter type-id='342f43d1' name='r' filepath='crypto/gf128mul.c' line='170' column='1'/>
+        <parameter type-id='2a82ed9c' name='b' filepath='crypto/gf128mul.c' line='170' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gic_cpu_init' mangled-name='gic_cpu_init' filepath='drivers/irqchip/irq-gic-v3.c' line='1175' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gic_cpu_init'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gic_dist_init' mangled-name='gic_dist_init' filepath='drivers/irqchip/irq-gic-v3.c' line='831' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gic_dist_init'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gic_dist_wait_for_rwp' mangled-name='gic_dist_wait_for_rwp' filepath='drivers/irqchip/irq-gic-v3.c' line='220' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gic_dist_wait_for_rwp'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='gic_nonsecure_priorities' type-id='237c0d27' mangled-name='gic_nonsecure_priorities' visibility='default' filepath='drivers/irqchip/irq-gic-v3.c' line='95' column='1' elf-symbol-id='gic_nonsecure_priorities'/>
+      <function-decl name='gic_resume' mangled-name='gic_resume' filepath='drivers/irqchip/irq-gic-v3.c' line='1399' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gic_resume'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gic_v2_resume' mangled-name='gic_v2_resume' filepath='drivers/irqchip/irq-gic.c' line='403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gic_v2_resume'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='glob_match' mangled-name='glob_match' filepath='lib/glob.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='glob_match'>
+        <parameter type-id='80f4b756' name='pat' filepath='lib/glob.c' line='40' column='1'/>
+        <parameter type-id='80f4b756' name='str' filepath='lib/glob.c' line='40' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='gov_attr_set_get' mangled-name='gov_attr_set_get' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='52' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gov_attr_set_get'>
+        <parameter type-id='902fed1a' name='attr_set' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='52' column='1'/>
+        <parameter type-id='e84b031a' name='list_node' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='52' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gov_attr_set_init' mangled-name='gov_attr_set_init' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gov_attr_set_init'>
+        <parameter type-id='902fed1a' name='attr_set' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='43' column='1'/>
+        <parameter type-id='e84b031a' name='list_node' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='43' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gov_attr_set_put' mangled-name='gov_attr_set_put' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='61' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gov_attr_set_put'>
+        <parameter type-id='902fed1a' name='attr_set' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='61' column='1'/>
+        <parameter type-id='e84b031a' name='list_node' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='61' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='gov_update_cpu_data' mangled-name='gov_update_cpu_data' filepath='drivers/cpufreq/cpufreq_governor.c' line='95' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gov_update_cpu_data'>
+        <parameter type-id='280461d5' name='dbs_data' filepath='drivers/cpufreq/cpufreq_governor.c' line='95' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='governor_sysfs_ops' type-id='0f840455' mangled-name='governor_sysfs_ops' visibility='default' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='37' column='1' elf-symbol-id='governor_sysfs_ops'/>
+      <function-decl name='gpio_free' mangled-name='gpio_free' filepath='drivers/gpio/gpiolib-legacy.c' line='9' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpio_free'>
+        <parameter type-id='f0981eeb' name='gpio' filepath='drivers/gpio/gpiolib-legacy.c' line='9' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gpio_free_array' mangled-name='gpio_free_array' filepath='drivers/gpio/gpiolib-legacy.c' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpio_free_array'>
+        <parameter type-id='33fb8cab' name='array' filepath='drivers/gpio/gpiolib-legacy.c' line='108' column='1'/>
+        <parameter type-id='b59d7dce' name='num' filepath='drivers/gpio/gpiolib-legacy.c' line='108' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gpio_request' mangled-name='gpio_request' filepath='drivers/gpio/gpiolib-legacy.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpio_request'>
+        <parameter type-id='f0981eeb' name='gpio' filepath='drivers/gpio/gpiolib-legacy.c' line='68' column='1'/>
+        <parameter type-id='80f4b756' name='label' filepath='drivers/gpio/gpiolib-legacy.c' line='68' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpio_request_array' mangled-name='gpio_request_array' filepath='drivers/gpio/gpiolib-legacy.c' line='85' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpio_request_array'>
+        <parameter type-id='33fb8cab' name='array' filepath='drivers/gpio/gpiolib-legacy.c' line='85' column='1'/>
+        <parameter type-id='b59d7dce' name='num' filepath='drivers/gpio/gpiolib-legacy.c' line='85' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpio_request_one' mangled-name='gpio_request_one' filepath='drivers/gpio/gpiolib-legacy.c' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpio_request_one'>
+        <parameter type-id='f0981eeb' name='gpio' filepath='drivers/gpio/gpiolib-legacy.c' line='21' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/gpio/gpiolib-legacy.c' line='21' column='1'/>
+        <parameter type-id='80f4b756' name='label' filepath='drivers/gpio/gpiolib-legacy.c' line='21' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpio_to_desc' mangled-name='gpio_to_desc' filepath='drivers/gpio/gpiolib.c' line='107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpio_to_desc'>
+        <parameter type-id='f0981eeb' name='gpio' filepath='drivers/gpio/gpiolib.c' line='107' column='1'/>
+        <return type-id='26760480'/>
+      </function-decl>
+      <function-decl name='gpiochip_add_data_with_key' mangled-name='gpiochip_add_data_with_key' filepath='drivers/gpio/gpiolib.c' line='592' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiochip_add_data_with_key'>
+        <parameter type-id='e324928d' name='gc' filepath='drivers/gpio/gpiolib.c' line='592' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/gpio/gpiolib.c' line='592' column='1'/>
+        <parameter type-id='a57283f9' name='lock_key' filepath='drivers/gpio/gpiolib.c' line='593' column='1'/>
+        <parameter type-id='a57283f9' name='request_key' filepath='drivers/gpio/gpiolib.c' line='594' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpiochip_add_pin_range' mangled-name='gpiochip_add_pin_range' filepath='drivers/gpio/gpiolib.c' line='1822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiochip_add_pin_range'>
+        <parameter type-id='e324928d' name='gc' filepath='drivers/gpio/gpiolib.c' line='1822' column='1'/>
+        <parameter type-id='80f4b756' name='pinctl_name' filepath='drivers/gpio/gpiolib.c' line='1822' column='1'/>
+        <parameter type-id='f0981eeb' name='gpio_offset' filepath='drivers/gpio/gpiolib.c' line='1823' column='1'/>
+        <parameter type-id='f0981eeb' name='pin_offset' filepath='drivers/gpio/gpiolib.c' line='1823' column='1'/>
+        <parameter type-id='f0981eeb' name='npins' filepath='drivers/gpio/gpiolib.c' line='1824' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpiochip_find' mangled-name='gpiochip_find' filepath='drivers/gpio/gpiolib.c' line='917' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiochip_find'>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/gpio/gpiolib.c' line='917' column='1'/>
+        <parameter type-id='7a52b9cd' name='match' filepath='drivers/gpio/gpiolib.c' line='918' column='1'/>
+        <return type-id='e324928d'/>
+      </function-decl>
+      <function-decl name='gpiochip_generic_config' mangled-name='gpiochip_generic_config' filepath='drivers/gpio/gpiolib.c' line='1743' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiochip_generic_config'>
+        <parameter type-id='e324928d' name='gc' filepath='drivers/gpio/gpiolib.c' line='1743' column='1'/>
+        <parameter type-id='f0981eeb' name='offset' filepath='drivers/gpio/gpiolib.c' line='1743' column='1'/>
+        <parameter type-id='7359adad' name='config' filepath='drivers/gpio/gpiolib.c' line='1744' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpiochip_generic_free' mangled-name='gpiochip_generic_free' filepath='drivers/gpio/gpiolib.c' line='1726' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiochip_generic_free'>
+        <parameter type-id='e324928d' name='gc' filepath='drivers/gpio/gpiolib.c' line='1726' column='1'/>
+        <parameter type-id='f0981eeb' name='offset' filepath='drivers/gpio/gpiolib.c' line='1726' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gpiochip_generic_request' mangled-name='gpiochip_generic_request' filepath='drivers/gpio/gpiolib.c' line='1710' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiochip_generic_request'>
+        <parameter type-id='e324928d' name='gc' filepath='drivers/gpio/gpiolib.c' line='1710' column='1'/>
+        <parameter type-id='f0981eeb' name='offset' filepath='drivers/gpio/gpiolib.c' line='1710' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpiochip_get_data' mangled-name='gpiochip_get_data' filepath='drivers/gpio/gpiolib.c' line='850' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiochip_get_data'>
+        <parameter type-id='e324928d' name='gc' filepath='drivers/gpio/gpiolib.c' line='850' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='gpiochip_line_is_irq' mangled-name='gpiochip_line_is_irq' filepath='drivers/gpio/gpiolib.c' line='3287' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiochip_line_is_irq'>
+        <parameter type-id='e324928d' name='gc' filepath='drivers/gpio/gpiolib.c' line='3287' column='1'/>
+        <parameter type-id='f0981eeb' name='offset' filepath='drivers/gpio/gpiolib.c' line='3287' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='gpiochip_line_is_valid' mangled-name='gpiochip_line_is_valid' filepath='drivers/gpio/gpiolib.c' line='482' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiochip_line_is_valid'>
+        <parameter type-id='a171e66c' name='gc' filepath='drivers/gpio/gpiolib.c' line='482' column='1'/>
+        <parameter type-id='f0981eeb' name='offset' filepath='drivers/gpio/gpiolib.c' line='483' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='gpiochip_lock_as_irq' mangled-name='gpiochip_lock_as_irq' filepath='drivers/gpio/gpiolib.c' line='3189' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiochip_lock_as_irq'>
+        <parameter type-id='e324928d' name='gc' filepath='drivers/gpio/gpiolib.c' line='3189' column='1'/>
+        <parameter type-id='f0981eeb' name='offset' filepath='drivers/gpio/gpiolib.c' line='3189' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpiochip_remove' mangled-name='gpiochip_remove' filepath='drivers/gpio/gpiolib.c' line='862' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiochip_remove'>
+        <parameter type-id='e324928d' name='gc' filepath='drivers/gpio/gpiolib.c' line='862' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gpiochip_unlock_as_irq' mangled-name='gpiochip_unlock_as_irq' filepath='drivers/gpio/gpiolib.c' line='3243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiochip_unlock_as_irq'>
+        <parameter type-id='e324928d' name='gc' filepath='drivers/gpio/gpiolib.c' line='3243' column='1'/>
+        <parameter type-id='f0981eeb' name='offset' filepath='drivers/gpio/gpiolib.c' line='3243' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gpiod_cansleep' mangled-name='gpiod_cansleep' filepath='drivers/gpio/gpiolib.c' line='3108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_cansleep'>
+        <parameter type-id='5bed570d' name='desc' filepath='drivers/gpio/gpiolib.c' line='3108' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpiod_count' mangled-name='gpiod_count' filepath='drivers/gpio/gpiolib.c' line='3778' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_count'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpio/gpiolib.c' line='3778' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/gpio/gpiolib.c' line='3778' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpiod_direction_input' mangled-name='gpiod_direction_input' filepath='drivers/gpio/gpiolib.c' line='2264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_direction_input'>
+        <parameter type-id='26760480' name='desc' filepath='drivers/gpio/gpiolib.c' line='2264' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpiod_direction_output' mangled-name='gpiod_direction_output' filepath='drivers/gpio/gpiolib.c' line='2383' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_direction_output'>
+        <parameter type-id='26760480' name='desc' filepath='drivers/gpio/gpiolib.c' line='2383' column='1'/>
+        <parameter type-id='95e97e5e' name='value' filepath='drivers/gpio/gpiolib.c' line='2383' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpiod_direction_output_raw' mangled-name='gpiod_direction_output_raw' filepath='drivers/gpio/gpiolib.c' line='2364' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_direction_output_raw'>
+        <parameter type-id='26760480' name='desc' filepath='drivers/gpio/gpiolib.c' line='2364' column='1'/>
+        <parameter type-id='95e97e5e' name='value' filepath='drivers/gpio/gpiolib.c' line='2364' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpiod_get' mangled-name='gpiod_get' filepath='drivers/gpio/gpiolib.c' line='3805' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpio/gpiolib.c' line='3805' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/gpio/gpiolib.c' line='3805' column='1'/>
+        <parameter type-id='38d4936d' name='flags' filepath='drivers/gpio/gpiolib.c' line='3806' column='1'/>
+        <return type-id='26760480'/>
+      </function-decl>
+      <function-decl name='gpiod_get_direction' mangled-name='gpiod_get_direction' filepath='drivers/gpio/gpiolib.c' line='213' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_get_direction'>
+        <parameter type-id='26760480' name='desc' filepath='drivers/gpio/gpiolib.c' line='213' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpiod_get_index' mangled-name='gpiod_get_index' filepath='drivers/gpio/gpiolib.c' line='3913' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_get_index'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpio/gpiolib.c' line='3913' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/gpio/gpiolib.c' line='3914' column='1'/>
+        <parameter type-id='f0981eeb' name='idx' filepath='drivers/gpio/gpiolib.c' line='3915' column='1'/>
+        <parameter type-id='38d4936d' name='flags' filepath='drivers/gpio/gpiolib.c' line='3916' column='1'/>
+        <return type-id='26760480'/>
+      </function-decl>
+      <function-decl name='gpiod_get_optional' mangled-name='gpiod_get_optional' filepath='drivers/gpio/gpiolib.c' line='3822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_get_optional'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpio/gpiolib.c' line='3822' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/gpio/gpiolib.c' line='3823' column='1'/>
+        <parameter type-id='38d4936d' name='flags' filepath='drivers/gpio/gpiolib.c' line='3824' column='1'/>
+        <return type-id='26760480'/>
+      </function-decl>
+      <function-decl name='gpiod_get_raw_value' mangled-name='gpiod_get_raw_value' filepath='drivers/gpio/gpiolib.c' line='2708' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_get_raw_value'>
+        <parameter type-id='5bed570d' name='desc' filepath='drivers/gpio/gpiolib.c' line='2708' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpiod_get_raw_value_cansleep' mangled-name='gpiod_get_raw_value_cansleep' filepath='drivers/gpio/gpiolib.c' line='3356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_get_raw_value_cansleep'>
+        <parameter type-id='5bed570d' name='desc' filepath='drivers/gpio/gpiolib.c' line='3356' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpiod_get_value' mangled-name='gpiod_get_value' filepath='drivers/gpio/gpiolib.c' line='2727' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_get_value'>
+        <parameter type-id='5bed570d' name='desc' filepath='drivers/gpio/gpiolib.c' line='2727' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpiod_get_value_cansleep' mangled-name='gpiod_get_value_cansleep' filepath='drivers/gpio/gpiolib.c' line='3373' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_get_value_cansleep'>
+        <parameter type-id='5bed570d' name='desc' filepath='drivers/gpio/gpiolib.c' line='3373' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpiod_is_active_low' mangled-name='gpiod_is_active_low' filepath='drivers/gpio/gpiolib.c' line='2512' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_is_active_low'>
+        <parameter type-id='5bed570d' name='desc' filepath='drivers/gpio/gpiolib.c' line='2512' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpiod_put' mangled-name='gpiod_put' filepath='drivers/gpio/gpiolib.c' line='4289' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_put'>
+        <parameter type-id='26760480' name='desc' filepath='drivers/gpio/gpiolib.c' line='4289' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gpiod_set_array_value_cansleep' mangled-name='gpiod_set_array_value_cansleep' filepath='drivers/gpio/gpiolib.c' line='3533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_set_array_value_cansleep'>
+        <parameter type-id='f0981eeb' name='array_size' filepath='drivers/gpio/gpiolib.c' line='3533' column='1'/>
+        <parameter type-id='35c9579e' name='desc_array' filepath='drivers/gpio/gpiolib.c' line='3534' column='1'/>
+        <parameter type-id='ae0aa6a2' name='array_info' filepath='drivers/gpio/gpiolib.c' line='3535' column='1'/>
+        <parameter type-id='1d2c2b85' name='value_bitmap' filepath='drivers/gpio/gpiolib.c' line='3536' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpiod_set_consumer_name' mangled-name='gpiod_set_consumer_name' filepath='drivers/gpio/gpiolib.c' line='3120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_set_consumer_name'>
+        <parameter type-id='26760480' name='desc' filepath='drivers/gpio/gpiolib.c' line='3120' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/gpio/gpiolib.c' line='3120' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpiod_set_debounce' mangled-name='gpiod_set_debounce' filepath='drivers/gpio/gpiolib.c' line='2473' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_set_debounce'>
+        <parameter type-id='26760480' name='desc' filepath='drivers/gpio/gpiolib.c' line='2473' column='1'/>
+        <parameter type-id='f0981eeb' name='debounce' filepath='drivers/gpio/gpiolib.c' line='2473' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gpiod_set_raw_value' mangled-name='gpiod_set_raw_value' filepath='drivers/gpio/gpiolib.c' line='3002' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_set_raw_value'>
+        <parameter type-id='26760480' name='desc' filepath='drivers/gpio/gpiolib.c' line='3002' column='1'/>
+        <parameter type-id='95e97e5e' name='value' filepath='drivers/gpio/gpiolib.c' line='3002' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gpiod_set_raw_value_cansleep' mangled-name='gpiod_set_raw_value_cansleep' filepath='drivers/gpio/gpiolib.c' line='3453' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_set_raw_value_cansleep'>
+        <parameter type-id='26760480' name='desc' filepath='drivers/gpio/gpiolib.c' line='3453' column='1'/>
+        <parameter type-id='95e97e5e' name='value' filepath='drivers/gpio/gpiolib.c' line='3453' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gpiod_set_value' mangled-name='gpiod_set_value' filepath='drivers/gpio/gpiolib.c' line='3043' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_set_value'>
+        <parameter type-id='26760480' name='desc' filepath='drivers/gpio/gpiolib.c' line='3043' column='1'/>
+        <parameter type-id='95e97e5e' name='value' filepath='drivers/gpio/gpiolib.c' line='3043' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gpiod_set_value_cansleep' mangled-name='gpiod_set_value_cansleep' filepath='drivers/gpio/gpiolib.c' line='3471' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_set_value_cansleep'>
+        <parameter type-id='26760480' name='desc' filepath='drivers/gpio/gpiolib.c' line='3471' column='1'/>
+        <parameter type-id='95e97e5e' name='value' filepath='drivers/gpio/gpiolib.c' line='3471' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gpiod_to_chip' mangled-name='gpiod_to_chip' filepath='drivers/gpio/gpiolib.c' line='174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_to_chip'>
+        <parameter type-id='5bed570d' name='desc' filepath='drivers/gpio/gpiolib.c' line='174' column='1'/>
+        <return type-id='e324928d'/>
+      </function-decl>
+      <function-decl name='gpiod_to_irq' mangled-name='gpiod_to_irq' filepath='drivers/gpio/gpiolib.c' line='3143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpiod_to_irq'>
+        <parameter type-id='5bed570d' name='desc' filepath='drivers/gpio/gpiolib.c' line='3143' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='grab_cache_page_write_begin' mangled-name='grab_cache_page_write_begin' filepath='mm/filemap.c' line='3778' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='grab_cache_page_write_begin'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/filemap.c' line='3778' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='mm/filemap.c' line='3779' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='mm/filemap.c' line='3779' column='1'/>
+        <return type-id='02f11ed4'/>
+      </function-decl>
+      <function-decl name='gre_add_protocol' mangled-name='gre_add_protocol' filepath='net/ipv4/gre_demux.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gre_add_protocol'>
+        <parameter type-id='36c88299' name='proto' filepath='net/ipv4/gre_demux.c' line='31' column='1'/>
+        <parameter type-id='f9b06939' name='version' filepath='net/ipv4/gre_demux.c' line='31' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gre_del_protocol' mangled-name='gre_del_protocol' filepath='net/ipv4/gre_demux.c' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gre_del_protocol'>
+        <parameter type-id='36c88299' name='proto' filepath='net/ipv4/gre_demux.c' line='41' column='1'/>
+        <parameter type-id='f9b06939' name='version' filepath='net/ipv4/gre_demux.c' line='41' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gro_cells_destroy' mangled-name='gro_cells_destroy' filepath='net/core/gro_cells.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gro_cells_destroy'>
+        <parameter type-id='2c36d3bb' name='gcells' filepath='net/core/gro_cells.c' line='92' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gro_cells_init' mangled-name='gro_cells_init' filepath='net/core/gro_cells.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gro_cells_init'>
+        <parameter type-id='2c36d3bb' name='gcells' filepath='net/core/gro_cells.c' line='69' column='1'/>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/gro_cells.c' line='69' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gro_cells_receive' mangled-name='gro_cells_receive' filepath='net/core/gro_cells.c' line='12' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gro_cells_receive'>
+        <parameter type-id='2c36d3bb' name='gcells' filepath='net/core/gro_cells.c' line='12' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/gro_cells.c' line='12' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gs_alloc_req' mangled-name='gs_alloc_req' filepath='drivers/usb/gadget/function/u_serial.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gs_alloc_req'>
+        <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/function/u_serial.c' line='165' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='drivers/usb/gadget/function/u_serial.c' line='165' column='1'/>
+        <parameter type-id='3eb7c31c' name='kmalloc_flags' filepath='drivers/usb/gadget/function/u_serial.c' line='165' column='1'/>
+        <return type-id='1a494567'/>
+      </function-decl>
+      <function-decl name='gs_free_req' mangled-name='gs_free_req' filepath='drivers/usb/gadget/function/u_serial.c' line='189' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gs_free_req'>
+        <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/function/u_serial.c' line='189' column='1'/>
+        <parameter type-id='1a494567' name='req' filepath='drivers/usb/gadget/function/u_serial.c' line='189' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gserial_alloc_line' mangled-name='gserial_alloc_line' filepath='drivers/usb/gadget/function/u_serial.c' line='1267' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_alloc_line'>
+        <parameter type-id='cf536864' name='line_num' filepath='drivers/usb/gadget/function/u_serial.c' line='1267' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gserial_connect' mangled-name='gserial_connect' filepath='drivers/usb/gadget/function/u_serial.c' line='1299' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_connect'>
+        <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1299' column='1'/>
+        <parameter type-id='f9b06939' name='port_num' filepath='drivers/usb/gadget/function/u_serial.c' line='1299' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='gserial_disconnect' mangled-name='gserial_disconnect' filepath='drivers/usb/gadget/function/u_serial.c' line='1375' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_disconnect'>
+        <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1375' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gserial_free_line' mangled-name='gserial_free_line' filepath='drivers/usb/gadget/function/u_serial.c' line='1202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_free_line'>
+        <parameter type-id='002ac4a6' name='port_num' filepath='drivers/usb/gadget/function/u_serial.c' line='1202' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gserial_resume' mangled-name='gserial_resume' filepath='drivers/usb/gadget/function/u_serial.c' line='1443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_resume'>
+        <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1443' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='gserial_suspend' mangled-name='gserial_suspend' filepath='drivers/usb/gadget/function/u_serial.c' line='1423' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_suspend'>
+        <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1423' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='guid_gen' mangled-name='guid_gen' filepath='lib/uuid.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='guid_gen'>
+        <parameter type-id='e8a80ab7' name='lu' filepath='lib/uuid.c' line='60' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='handle_bad_irq' mangled-name='handle_bad_irq' filepath='kernel/irq/handle.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='handle_bad_irq'>
+        <parameter type-id='76c7d88b' name='desc' filepath='kernel/irq/handle.c' line='31' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='handle_edge_irq' mangled-name='handle_edge_irq' filepath='kernel/irq/chip.c' line='793' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='handle_edge_irq'>
+        <parameter type-id='76c7d88b' name='desc' filepath='kernel/irq/chip.c' line='793' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='handle_fasteoi_ack_irq' mangled-name='handle_fasteoi_ack_irq' filepath='kernel/irq/chip.c' line='1213' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='handle_fasteoi_ack_irq'>
+        <parameter type-id='76c7d88b' name='desc' filepath='kernel/irq/chip.c' line='1213' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='handle_fasteoi_irq' mangled-name='handle_fasteoi_irq' filepath='kernel/irq/chip.c' line='707' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='handle_fasteoi_irq'>
+        <parameter type-id='76c7d88b' name='desc' filepath='kernel/irq/chip.c' line='707' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='handle_level_irq' mangled-name='handle_level_irq' filepath='kernel/irq/chip.c' line='648' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='handle_level_irq'>
+        <parameter type-id='76c7d88b' name='desc' filepath='kernel/irq/chip.c' line='648' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='handle_nested_irq' mangled-name='handle_nested_irq' filepath='kernel/irq/chip.c' line='462' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='handle_nested_irq'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/chip.c' line='462' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='handle_simple_irq' mangled-name='handle_simple_irq' filepath='kernel/irq/chip.c' line='556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='handle_simple_irq'>
+        <parameter type-id='76c7d88b' name='desc' filepath='kernel/irq/chip.c' line='556' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='handle_sysrq' mangled-name='handle_sysrq' filepath='drivers/tty/sysrq.c' line='637' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='handle_sysrq'>
+        <parameter type-id='95e97e5e' name='key' filepath='drivers/tty/sysrq.c' line='637' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='hashlen_string' mangled-name='hashlen_string' filepath='fs/namei.c' line='2108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hashlen_string'>
+        <parameter type-id='eaa32e2f' name='salt' filepath='fs/namei.c' line='2108' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='fs/namei.c' line='2108' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='have_governor_per_policy' mangled-name='have_governor_per_policy' filepath='drivers/cpufreq/cpufreq.c' line='109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='have_governor_per_policy'>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='hci_alloc_dev_priv' mangled-name='hci_alloc_dev_priv' filepath='net/bluetooth/hci_core.c' line='3763' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_alloc_dev_priv'>
+        <parameter type-id='95e97e5e' name='sizeof_priv' filepath='net/bluetooth/hci_core.c' line='3763' column='1'/>
+        <return type-id='9ad862e7'/>
+      </function-decl>
+      <function-decl name='hci_cmd_sync' mangled-name='hci_cmd_sync' filepath='net/bluetooth/hci_core.c' line='4331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_cmd_sync'>
+        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4331' column='1'/>
+        <parameter type-id='1dc6a898' name='opcode' filepath='net/bluetooth/hci_core.c' line='4331' column='1'/>
+        <parameter type-id='19c2251e' name='plen' filepath='net/bluetooth/hci_core.c' line='4331' column='1'/>
+        <parameter type-id='eaa32e2f' name='param' filepath='net/bluetooth/hci_core.c' line='4332' column='1'/>
+        <parameter type-id='19c2251e' name='timeout' filepath='net/bluetooth/hci_core.c' line='4332' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='hci_free_dev' mangled-name='hci_free_dev' filepath='net/bluetooth/hci_core.c' line='3891' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_free_dev'>
+        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='3891' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='hci_recv_diag' mangled-name='hci_recv_diag' filepath='net/bluetooth/hci_core.c' line='4160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_recv_diag'>
+        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4160' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/bluetooth/hci_core.c' line='4160' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hci_recv_frame' mangled-name='hci_recv_frame' filepath='net/bluetooth/hci_core.c' line='4130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_recv_frame'>
+        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4130' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/bluetooth/hci_core.c' line='4130' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hci_register_dev' mangled-name='hci_register_dev' filepath='net/bluetooth/hci_core.c' line='3899' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_register_dev'>
+        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='3899' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hci_unregister_dev' mangled-name='hci_unregister_dev' filepath='net/bluetooth/hci_core.c' line='4015' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_unregister_dev'>
+        <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4015' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='hdmi_audio_infoframe_init' mangled-name='hdmi_audio_infoframe_init' filepath='drivers/video/hdmi.c' line='353' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hdmi_audio_infoframe_init'>
+        <parameter type-id='309bd9ee' name='frame' filepath='drivers/video/hdmi.c' line='353' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hdmi_audio_infoframe_pack' mangled-name='hdmi_audio_infoframe_pack' filepath='drivers/video/hdmi.c' line='469' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hdmi_audio_infoframe_pack'>
+        <parameter type-id='309bd9ee' name='frame' filepath='drivers/video/hdmi.c' line='469' column='1'/>
+        <parameter type-id='eaa32e2f' name='buffer' filepath='drivers/video/hdmi.c' line='470' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/video/hdmi.c' line='470' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='hdmi_avi_infoframe_check' mangled-name='hdmi_avi_infoframe_check' filepath='drivers/video/hdmi.c' line='89' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hdmi_avi_infoframe_check'>
+        <parameter type-id='19ddc3a6' name='frame' filepath='drivers/video/hdmi.c' line='89' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hdmi_avi_infoframe_init' mangled-name='hdmi_avi_infoframe_init' filepath='drivers/video/hdmi.c' line='57' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hdmi_avi_infoframe_init'>
+        <parameter type-id='19ddc3a6' name='frame' filepath='drivers/video/hdmi.c' line='57' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='hdmi_avi_infoframe_pack' mangled-name='hdmi_avi_infoframe_pack' filepath='drivers/video/hdmi.c' line='200' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hdmi_avi_infoframe_pack'>
+        <parameter type-id='19ddc3a6' name='frame' filepath='drivers/video/hdmi.c' line='200' column='1'/>
+        <parameter type-id='eaa32e2f' name='buffer' filepath='drivers/video/hdmi.c' line='201' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/video/hdmi.c' line='201' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='hdmi_drm_infoframe_init' mangled-name='hdmi_drm_infoframe_init' filepath='drivers/video/hdmi.c' line='660' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hdmi_drm_infoframe_init'>
+        <parameter type-id='6ddb149f' name='frame' filepath='drivers/video/hdmi.c' line='660' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hdmi_drm_infoframe_pack' mangled-name='hdmi_drm_infoframe_pack' filepath='drivers/video/hdmi.c' line='784' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hdmi_drm_infoframe_pack'>
+        <parameter type-id='6ddb149f' name='frame' filepath='drivers/video/hdmi.c' line='784' column='1'/>
+        <parameter type-id='eaa32e2f' name='buffer' filepath='drivers/video/hdmi.c' line='785' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/video/hdmi.c' line='785' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='hdmi_drm_infoframe_pack_only' mangled-name='hdmi_drm_infoframe_pack_only' filepath='drivers/video/hdmi.c' line='711' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hdmi_drm_infoframe_pack_only'>
+        <parameter type-id='12886dd0' name='frame' filepath='drivers/video/hdmi.c' line='711' column='1'/>
+        <parameter type-id='eaa32e2f' name='buffer' filepath='drivers/video/hdmi.c' line='712' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/video/hdmi.c' line='712' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='hdmi_infoframe_pack' mangled-name='hdmi_infoframe_pack' filepath='drivers/video/hdmi.c' line='948' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hdmi_infoframe_pack'>
+        <parameter type-id='885b5549' name='frame' filepath='drivers/video/hdmi.c' line='948' column='1'/>
+        <parameter type-id='eaa32e2f' name='buffer' filepath='drivers/video/hdmi.c' line='949' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/video/hdmi.c' line='949' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='hdmi_infoframe_unpack' mangled-name='hdmi_infoframe_unpack' filepath='drivers/video/hdmi.c' line='1879' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hdmi_infoframe_unpack'>
+        <parameter type-id='885b5549' name='frame' filepath='drivers/video/hdmi.c' line='1879' column='1'/>
+        <parameter type-id='eaa32e2f' name='buffer' filepath='drivers/video/hdmi.c' line='1880' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/video/hdmi.c' line='1880' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hdmi_spd_infoframe_init' mangled-name='hdmi_spd_infoframe_init' filepath='drivers/video/hdmi.c' line='221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hdmi_spd_infoframe_init'>
+        <parameter type-id='e7e2ea67' name='frame' filepath='drivers/video/hdmi.c' line='221' column='1'/>
+        <parameter type-id='80f4b756' name='vendor' filepath='drivers/video/hdmi.c' line='222' column='1'/>
+        <parameter type-id='80f4b756' name='product' filepath='drivers/video/hdmi.c' line='222' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hdmi_spd_infoframe_pack' mangled-name='hdmi_spd_infoframe_pack' filepath='drivers/video/hdmi.c' line='334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hdmi_spd_infoframe_pack'>
+        <parameter type-id='e7e2ea67' name='frame' filepath='drivers/video/hdmi.c' line='334' column='1'/>
+        <parameter type-id='eaa32e2f' name='buffer' filepath='drivers/video/hdmi.c' line='335' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/video/hdmi.c' line='335' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='hdmi_vendor_infoframe_init' mangled-name='hdmi_vendor_infoframe_init' filepath='drivers/video/hdmi.c' line='488' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hdmi_vendor_infoframe_init'>
+        <parameter type-id='8ba5499a' name='frame' filepath='drivers/video/hdmi.c' line='488' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hdmi_vendor_infoframe_pack' mangled-name='hdmi_vendor_infoframe_pack' filepath='drivers/video/hdmi.c' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hdmi_vendor_infoframe_pack'>
+        <parameter type-id='8ba5499a' name='frame' filepath='drivers/video/hdmi.c' line='630' column='1'/>
+        <parameter type-id='eaa32e2f' name='buffer' filepath='drivers/video/hdmi.c' line='631' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/video/hdmi.c' line='631' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='hex2bin' mangled-name='hex2bin' filepath='lib/hexdump.c' line='71' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hex2bin'>
+        <parameter type-id='8bff8096' name='dst' filepath='lib/hexdump.c' line='71' column='1'/>
+        <parameter type-id='80f4b756' name='src' filepath='lib/hexdump.c' line='71' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/hexdump.c' line='71' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='hex_asc' type-id='8945ea40' mangled-name='hex_asc' visibility='default' filepath='lib/hexdump.c' line='14' column='1' elf-symbol-id='hex_asc'/>
+      <var-decl name='hex_asc_upper' type-id='8945ea40' mangled-name='hex_asc_upper' visibility='default' filepath='lib/hexdump.c' line='16' column='1' elf-symbol-id='hex_asc_upper'/>
+      <function-decl name='hex_dump_to_buffer' mangled-name='hex_dump_to_buffer' filepath='lib/hexdump.c' line='135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hex_dump_to_buffer'>
+        <parameter type-id='eaa32e2f' name='buf' filepath='lib/hexdump.c' line='135' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='lib/hexdump.c' line='135' column='1'/>
+        <parameter type-id='95e97e5e' name='rowsize' filepath='lib/hexdump.c' line='135' column='1'/>
+        <parameter type-id='95e97e5e' name='groupsize' filepath='lib/hexdump.c' line='135' column='1'/>
+        <parameter type-id='26a90f95' name='linebuf' filepath='lib/hexdump.c' line='136' column='1'/>
+        <parameter type-id='b59d7dce' name='linebuflen' filepath='lib/hexdump.c' line='136' column='1'/>
+        <parameter type-id='b50a4934' name='ascii' filepath='lib/hexdump.c' line='136' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hex_to_bin' mangled-name='hex_to_bin' filepath='lib/hexdump.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hex_to_bin'>
+        <parameter type-id='002ac4a6' name='ch' filepath='lib/hexdump.c' line='53' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hid_add_device' mangled-name='hid_add_device' filepath='drivers/hid/hid-core.c' line='2401' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hid_add_device'>
+        <parameter type-id='37175e4d' name='hdev' filepath='drivers/hid/hid-core.c' line='2401' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hid_alloc_report_buf' mangled-name='hid_alloc_report_buf' filepath='drivers/hid/hid-core.c' line='1653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hid_alloc_report_buf'>
+        <parameter type-id='5b4284d1' name='report' filepath='drivers/hid/hid-core.c' line='1653' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='drivers/hid/hid-core.c' line='1653' column='1'/>
+        <return type-id='8bff8096'/>
+      </function-decl>
+      <function-decl name='hid_allocate_device' mangled-name='hid_allocate_device' filepath='drivers/hid/hid-core.c' line='2471' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hid_allocate_device'>
+        <return type-id='37175e4d'/>
+      </function-decl>
+      <var-decl name='hid_debug' type-id='95e97e5e' mangled-name='hid_debug' visibility='default' filepath='drivers/hid/hid-core.c' line='45' column='1' elf-symbol-id='hid_debug'/>
+      <function-decl name='hid_destroy_device' mangled-name='hid_destroy_device' filepath='drivers/hid/hid-core.c' line='2517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hid_destroy_device'>
+        <parameter type-id='37175e4d' name='hdev' filepath='drivers/hid/hid-core.c' line='2517' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='hid_hw_close' mangled-name='hid_hw_close' filepath='drivers/hid/hid-core.c' line='2135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hid_hw_close'>
+        <parameter type-id='37175e4d' name='hdev' filepath='drivers/hid/hid-core.c' line='2135' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='hid_hw_open' mangled-name='hid_hw_open' filepath='drivers/hid/hid-core.c' line='2107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hid_hw_open'>
+        <parameter type-id='37175e4d' name='hdev' filepath='drivers/hid/hid-core.c' line='2107' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hid_hw_start' mangled-name='hid_hw_start' filepath='drivers/hid/hid-core.c' line='2065' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hid_hw_start'>
+        <parameter type-id='37175e4d' name='hdev' filepath='drivers/hid/hid-core.c' line='2065' column='1'/>
+        <parameter type-id='f0981eeb' name='connect_mask' filepath='drivers/hid/hid-core.c' line='2065' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hid_hw_stop' mangled-name='hid_hw_stop' filepath='drivers/hid/hid-core.c' line='2092' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hid_hw_stop'>
+        <parameter type-id='37175e4d' name='hdev' filepath='drivers/hid/hid-core.c' line='2092' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='hid_input_report' mangled-name='hid_input_report' filepath='drivers/hid/hid-core.c' line='1825' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hid_input_report'>
+        <parameter type-id='37175e4d' name='hid' filepath='drivers/hid/hid-core.c' line='1825' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='drivers/hid/hid-core.c' line='1825' column='1'/>
+        <parameter type-id='8bff8096' name='data' filepath='drivers/hid/hid-core.c' line='1825' column='1'/>
+        <parameter type-id='19c2251e' name='size' filepath='drivers/hid/hid-core.c' line='1825' column='1'/>
+        <parameter type-id='95e97e5e' name='interrupt' filepath='drivers/hid/hid-core.c' line='1825' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hid_open_report' mangled-name='hid_open_report' filepath='drivers/hid/hid-core.c' line='1195' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hid_open_report'>
+        <parameter type-id='37175e4d' name='device' filepath='drivers/hid/hid-core.c' line='1195' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hid_parse_report' mangled-name='hid_parse_report' filepath='drivers/hid/hid-core.c' line='942' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hid_parse_report'>
+        <parameter type-id='37175e4d' name='hid' filepath='drivers/hid/hid-core.c' line='942' column='1'/>
+        <parameter type-id='474e5dcc' name='start' filepath='drivers/hid/hid-core.c' line='942' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='drivers/hid/hid-core.c' line='942' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hid_report_raw_event' mangled-name='hid_report_raw_event' filepath='drivers/hid/hid-core.c' line='1754' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hid_report_raw_event'>
+        <parameter type-id='37175e4d' name='hid' filepath='drivers/hid/hid-core.c' line='1754' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='drivers/hid/hid-core.c' line='1754' column='1'/>
+        <parameter type-id='8bff8096' name='data' filepath='drivers/hid/hid-core.c' line='1754' column='1'/>
+        <parameter type-id='19c2251e' name='size' filepath='drivers/hid/hid-core.c' line='1754' column='1'/>
+        <parameter type-id='95e97e5e' name='interrupt' filepath='drivers/hid/hid-core.c' line='1755' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hid_unregister_driver' mangled-name='hid_unregister_driver' filepath='drivers/hid/hid-core.c' line='2578' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hid_unregister_driver'>
+        <parameter type-id='cbd2074d' name='hdrv' filepath='drivers/hid/hid-core.c' line='2578' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='hidinput_calc_abs_res' mangled-name='hidinput_calc_abs_res' filepath='drivers/hid/hid-input.c' line='200' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hidinput_calc_abs_res'>
+        <parameter type-id='10e0cdbc' name='field' filepath='drivers/hid/hid-input.c' line='200' column='1'/>
+        <parameter type-id='d315442e' name='code' filepath='drivers/hid/hid-input.c' line='200' column='1'/>
+        <return type-id='3158a266'/>
+      </function-decl>
+      <var-decl name='high_memory' type-id='eaa32e2f' mangled-name='high_memory' visibility='default' filepath='mm/memory.c' line='109' column='1' elf-symbol-id='high_memory'/>
+      <function-decl name='housekeeping_cpumask' mangled-name='housekeeping_cpumask' filepath='kernel/sched/isolation.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='housekeeping_cpumask'>
+        <parameter type-id='174b493d' name='flags' filepath='kernel/sched/isolation.c' line='40' column='1'/>
+        <return type-id='5f8a1ac4'/>
+      </function-decl>
+      <var-decl name='housekeeping_overridden' type-id='237c0d27' mangled-name='housekeeping_overridden' visibility='default' filepath='kernel/sched/isolation.c' line='12' column='1' elf-symbol-id='housekeeping_overridden'/>
+      <function-decl name='housekeeping_test_cpu' mangled-name='housekeeping_test_cpu' filepath='kernel/sched/isolation.c' line='57' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='housekeeping_test_cpu'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/isolation.c' line='57' column='1'/>
+        <parameter type-id='174b493d' name='flags' filepath='kernel/sched/isolation.c' line='57' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='hrtimer_active' mangled-name='hrtimer_active' filepath='kernel/time/hrtimer.c' line='1604' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hrtimer_active'>
+        <parameter type-id='1ce53783' name='timer' filepath='kernel/time/hrtimer.c' line='1604' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='hrtimer_cancel' mangled-name='hrtimer_cancel' filepath='kernel/time/hrtimer.c' line='1438' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hrtimer_cancel'>
+        <parameter type-id='08c8d0fa' name='timer' filepath='kernel/time/hrtimer.c' line='1438' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hrtimer_forward' mangled-name='hrtimer_forward' filepath='kernel/time/hrtimer.c' line='1037' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hrtimer_forward'>
+        <parameter type-id='08c8d0fa' name='timer' filepath='kernel/time/hrtimer.c' line='1037' column='1'/>
+        <parameter type-id='fbc017ef' name='now' filepath='kernel/time/hrtimer.c' line='1037' column='1'/>
+        <parameter type-id='fbc017ef' name='interval' filepath='kernel/time/hrtimer.c' line='1037' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='hrtimer_init' mangled-name='hrtimer_init' filepath='kernel/time/hrtimer.c' line='1589' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hrtimer_init'>
+        <parameter type-id='08c8d0fa' name='timer' filepath='kernel/time/hrtimer.c' line='1589' column='1'/>
+        <parameter type-id='a1c3b834' name='clock_id' filepath='kernel/time/hrtimer.c' line='1589' column='1'/>
+        <parameter type-id='88326653' name='mode' filepath='kernel/time/hrtimer.c' line='1590' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='hrtimer_init_sleeper' mangled-name='hrtimer_init_sleeper' filepath='kernel/time/hrtimer.c' line='2007' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hrtimer_init_sleeper'>
+        <parameter type-id='6972ad8b' name='sl' filepath='kernel/time/hrtimer.c' line='2007' column='1'/>
+        <parameter type-id='a1c3b834' name='clock_id' filepath='kernel/time/hrtimer.c' line='2007' column='1'/>
+        <parameter type-id='88326653' name='mode' filepath='kernel/time/hrtimer.c' line='2008' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='hrtimer_resolution' type-id='f0981eeb' mangled-name='hrtimer_resolution' visibility='default' filepath='kernel/time/hrtimer.c' line='709' column='1' elf-symbol-id='hrtimer_resolution'/>
+      <function-decl name='hrtimer_sleeper_start_expires' mangled-name='hrtimer_sleeper_start_expires' filepath='kernel/time/hrtimer.c' line='1952' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hrtimer_sleeper_start_expires'>
+        <parameter type-id='6972ad8b' name='sl' filepath='kernel/time/hrtimer.c' line='1952' column='1'/>
+        <parameter type-id='88326653' name='mode' filepath='kernel/time/hrtimer.c' line='1953' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='hrtimer_start_range_ns' mangled-name='hrtimer_start_range_ns' filepath='kernel/time/hrtimer.c' line='1280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hrtimer_start_range_ns'>
+        <parameter type-id='08c8d0fa' name='timer' filepath='kernel/time/hrtimer.c' line='1280' column='1'/>
+        <parameter type-id='fbc017ef' name='tim' filepath='kernel/time/hrtimer.c' line='1280' column='1'/>
+        <parameter type-id='91ce1af9' name='delta_ns' filepath='kernel/time/hrtimer.c' line='1281' column='1'/>
+        <parameter type-id='9bedc94f' name='mode' filepath='kernel/time/hrtimer.c' line='1281' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='hrtimer_try_to_cancel' mangled-name='hrtimer_try_to_cancel' filepath='kernel/time/hrtimer.c' line='1316' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hrtimer_try_to_cancel'>
+        <parameter type-id='08c8d0fa' name='timer' filepath='kernel/time/hrtimer.c' line='1316' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hvc_alloc' mangled-name='hvc_alloc' filepath='drivers/tty/hvc/hvc_console.c' line='911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hvc_alloc'>
+        <parameter type-id='8f92235e' name='vtermno' filepath='drivers/tty/hvc/hvc_console.c' line='911' column='1'/>
+        <parameter type-id='95e97e5e' name='data' filepath='drivers/tty/hvc/hvc_console.c' line='911' column='1'/>
+        <parameter type-id='f319e2c5' name='ops' filepath='drivers/tty/hvc/hvc_console.c' line='912' column='1'/>
+        <parameter type-id='95e97e5e' name='outbuf_size' filepath='drivers/tty/hvc/hvc_console.c' line='913' column='1'/>
+        <return type-id='352b95f6'/>
+      </function-decl>
+      <function-decl name='hvc_instantiate' mangled-name='hvc_instantiate' filepath='drivers/tty/hvc/hvc_console.c' line='285' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hvc_instantiate'>
+        <parameter type-id='8f92235e' name='vtermno' filepath='drivers/tty/hvc/hvc_console.c' line='285' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/tty/hvc/hvc_console.c' line='285' column='1'/>
+        <parameter type-id='f319e2c5' name='ops' filepath='drivers/tty/hvc/hvc_console.c' line='285' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hvc_kick' mangled-name='hvc_kick' filepath='drivers/tty/hvc/hvc_console.c' line='313' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hvc_kick'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='hvc_poll' mangled-name='hvc_poll' filepath='drivers/tty/hvc/hvc_console.c' line='762' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hvc_poll'>
+        <parameter type-id='352b95f6' name='hp' filepath='drivers/tty/hvc/hvc_console.c' line='762' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hvc_remove' mangled-name='hvc_remove' filepath='drivers/tty/hvc/hvc_console.c' line='979' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hvc_remove'>
+        <parameter type-id='352b95f6' name='hp' filepath='drivers/tty/hvc/hvc_console.c' line='979' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hwrng_register' mangled-name='hwrng_register' filepath='drivers/char/hw_random/core.c' line='463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hwrng_register'>
+        <parameter type-id='c1547255' name='rng' filepath='drivers/char/hw_random/core.c' line='463' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hwrng_unregister' mangled-name='hwrng_unregister' filepath='drivers/char/hw_random/core.c' line='530' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hwrng_unregister'>
+        <parameter type-id='c1547255' name='rng' filepath='drivers/char/hw_random/core.c' line='530' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='hwspin_lock_free' mangled-name='hwspin_lock_free' filepath='drivers/hwspinlock/hwspinlock_core.c' line='800' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hwspin_lock_free'>
+        <parameter type-id='0cb0b26f' name='hwlock' filepath='drivers/hwspinlock/hwspinlock_core.c' line='800' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hwspin_lock_get_id' mangled-name='hwspin_lock_get_id' filepath='drivers/hwspinlock/hwspinlock_core.c' line='685' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hwspin_lock_get_id'>
+        <parameter type-id='0cb0b26f' name='hwlock' filepath='drivers/hwspinlock/hwspinlock_core.c' line='685' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hwspin_lock_register' mangled-name='hwspin_lock_register' filepath='drivers/hwspinlock/hwspinlock_core.c' line='486' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hwspin_lock_register'>
+        <parameter type-id='b8cd8f00' name='bank' filepath='drivers/hwspinlock/hwspinlock_core.c' line='486' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/hwspinlock/hwspinlock_core.c' line='486' column='1'/>
+        <parameter type-id='9138a099' name='ops' filepath='drivers/hwspinlock/hwspinlock_core.c' line='487' column='1'/>
+        <parameter type-id='95e97e5e' name='base_id' filepath='drivers/hwspinlock/hwspinlock_core.c' line='487' column='1'/>
+        <parameter type-id='95e97e5e' name='num_locks' filepath='drivers/hwspinlock/hwspinlock_core.c' line='487' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='hwspin_lock_request' mangled-name='hwspin_lock_request' filepath='drivers/hwspinlock/hwspinlock_core.c' line='709' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hwspin_lock_request'>
+        <return type-id='0cb0b26f'/>
+      </function-decl>
+      <function-decl name='hwspin_lock_request_specific' mangled-name='hwspin_lock_request_specific' filepath='drivers/hwspinlock/hwspinlock_core.c' line='752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hwspin_lock_request_specific'>
+        <parameter type-id='f0981eeb' name='id' filepath='drivers/hwspinlock/hwspinlock_core.c' line='752' column='1'/>
+        <return type-id='0cb0b26f'/>
+      </function-decl>
+      <function-decl name='hwspin_lock_unregister' mangled-name='hwspin_lock_unregister' filepath='drivers/hwspinlock/hwspinlock_core.c' line='534' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hwspin_lock_unregister'>
+        <parameter type-id='b8cd8f00' name='bank' filepath='drivers/hwspinlock/hwspinlock_core.c' line='534' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='hypervisor_kobj' type-id='d30bdc51' mangled-name='hypervisor_kobj' visibility='default' filepath='drivers/base/hypervisor.c' line='15' column='1' elf-symbol-id='hypervisor_kobj'/>
+      <var-decl name='i2c_adapter_type' type-id='bdae35f4' mangled-name='i2c_adapter_type' visibility='default' filepath='drivers/i2c/i2c-core-base.c' line='1296' column='1' elf-symbol-id='i2c_adapter_type'/>
+      <function-decl name='i2c_add_adapter' mangled-name='i2c_add_adapter' filepath='drivers/i2c/i2c-core-base.c' line='1562' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_add_adapter'>
+        <parameter type-id='b9af02c3' name='adapter' filepath='drivers/i2c/i2c-core-base.c' line='1562' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i2c_add_numbered_adapter' mangled-name='i2c_add_numbered_adapter' filepath='drivers/i2c/i2c-core-base.c' line='1611' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_add_numbered_adapter'>
+        <parameter type-id='b9af02c3' name='adap' filepath='drivers/i2c/i2c-core-base.c' line='1611' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i2c_bit_add_bus' mangled-name='i2c_bit_add_bus' filepath='drivers/i2c/algos/i2c-algo-bit.c' line='681' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_bit_add_bus'>
+        <parameter type-id='b9af02c3' name='adap' filepath='drivers/i2c/algos/i2c-algo-bit.c' line='681' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i2c_bit_add_numbered_bus' mangled-name='i2c_bit_add_numbered_bus' filepath='drivers/i2c/algos/i2c-algo-bit.c' line='687' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_bit_add_numbered_bus'>
+        <parameter type-id='b9af02c3' name='adap' filepath='drivers/i2c/algos/i2c-algo-bit.c' line='687' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='i2c_bus_type' type-id='b31bfc8a' mangled-name='i2c_bus_type' visibility='default' filepath='drivers/i2c/i2c-core-base.c' line='675' column='1' elf-symbol-id='i2c_bus_type'/>
+      <var-decl name='i2c_client_type' type-id='bdae35f4' mangled-name='i2c_client_type' visibility='default' filepath='drivers/i2c/i2c-core-base.c' line='684' column='1' elf-symbol-id='i2c_client_type'/>
+      <function-decl name='i2c_clients_command' mangled-name='i2c_clients_command' filepath='drivers/i2c/i2c-core-base.c' line='1920' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_clients_command'>
+        <parameter type-id='b9af02c3' name='adap' filepath='drivers/i2c/i2c-core-base.c' line='1920' column='1'/>
+        <parameter type-id='f0981eeb' name='cmd' filepath='drivers/i2c/i2c-core-base.c' line='1920' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='drivers/i2c/i2c-core-base.c' line='1920' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='i2c_del_adapter' mangled-name='i2c_del_adapter' filepath='drivers/i2c/i2c-core-base.c' line='1666' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_del_adapter'>
+        <parameter type-id='b9af02c3' name='adap' filepath='drivers/i2c/i2c-core-base.c' line='1666' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='i2c_del_driver' mangled-name='i2c_del_driver' filepath='drivers/i2c/i2c-core-base.c' line='1889' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_del_driver'>
+        <parameter type-id='29ffcb70' name='driver' filepath='drivers/i2c/i2c-core-base.c' line='1889' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='i2c_for_each_dev' mangled-name='i2c_for_each_dev' filepath='drivers/i2c/i2c-core-base.c' line='1824' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_for_each_dev'>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/i2c/i2c-core-base.c' line='1824' column='1'/>
+        <parameter type-id='92d15ae9' name='fn' filepath='drivers/i2c/i2c-core-base.c' line='1824' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i2c_generic_scl_recovery' mangled-name='i2c_generic_scl_recovery' filepath='drivers/i2c/i2c-core-base.c' line='200' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_generic_scl_recovery'>
+        <parameter type-id='b9af02c3' name='adap' filepath='drivers/i2c/i2c-core-base.c' line='200' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i2c_get_adapter' mangled-name='i2c_get_adapter' filepath='drivers/i2c/i2c-core-base.c' line='2442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_get_adapter'>
+        <parameter type-id='95e97e5e' name='nr' filepath='drivers/i2c/i2c-core-base.c' line='2442' column='1'/>
+        <return type-id='b9af02c3'/>
+      </function-decl>
+      <function-decl name='i2c_get_device_id' mangled-name='i2c_get_device_id' filepath='drivers/i2c/i2c-core-base.c' line='2218' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_get_device_id'>
+        <parameter type-id='7ea54338' name='client' filepath='drivers/i2c/i2c-core-base.c' line='2218' column='1'/>
+        <parameter type-id='390f38a5' name='id' filepath='drivers/i2c/i2c-core-base.c' line='2219' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i2c_get_dma_safe_msg_buf' mangled-name='i2c_get_dma_safe_msg_buf' filepath='drivers/i2c/i2c-core-base.c' line='2485' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_get_dma_safe_msg_buf'>
+        <parameter type-id='cd44bc95' name='msg' filepath='drivers/i2c/i2c-core-base.c' line='2485' column='1'/>
+        <parameter type-id='f0981eeb' name='threshold' filepath='drivers/i2c/i2c-core-base.c' line='2485' column='1'/>
+        <return type-id='8bff8096'/>
+      </function-decl>
+      <function-decl name='i2c_match_id' mangled-name='i2c_match_id' filepath='drivers/i2c/i2c-core-base.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_match_id'>
+        <parameter type-id='49e46a4d' name='id' filepath='drivers/i2c/i2c-core-base.c' line='101' column='1'/>
+        <parameter type-id='7ea54338' name='client' filepath='drivers/i2c/i2c-core-base.c' line='102' column='1'/>
+        <return type-id='49e46a4d'/>
+      </function-decl>
+      <function-decl name='i2c_new_ancillary_device' mangled-name='i2c_new_ancillary_device' filepath='drivers/i2c/i2c-core-base.c' line='1120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_new_ancillary_device'>
+        <parameter type-id='3e31633b' name='client' filepath='drivers/i2c/i2c-core-base.c' line='1120' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/i2c/i2c-core-base.c' line='1121' column='1'/>
+        <parameter type-id='1dc6a898' name='default_addr' filepath='drivers/i2c/i2c-core-base.c' line='1122' column='1'/>
+        <return type-id='3e31633b'/>
+      </function-decl>
+      <function-decl name='i2c_new_client_device' mangled-name='i2c_new_client_device' filepath='drivers/i2c/i2c-core-base.c' line='915' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_new_client_device'>
+        <parameter type-id='b9af02c3' name='adap' filepath='drivers/i2c/i2c-core-base.c' line='915' column='1'/>
+        <parameter type-id='88139c0a' name='info' filepath='drivers/i2c/i2c-core-base.c' line='915' column='1'/>
+        <return type-id='3e31633b'/>
+      </function-decl>
+      <function-decl name='i2c_new_dummy_device' mangled-name='i2c_new_dummy_device' filepath='drivers/i2c/i2c-core-base.c' line='1054' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_new_dummy_device'>
+        <parameter type-id='b9af02c3' name='adapter' filepath='drivers/i2c/i2c-core-base.c' line='1054' column='1'/>
+        <parameter type-id='1dc6a898' name='address' filepath='drivers/i2c/i2c-core-base.c' line='1054' column='1'/>
+        <return type-id='3e31633b'/>
+      </function-decl>
+      <function-decl name='i2c_new_scanned_device' mangled-name='i2c_new_scanned_device' filepath='drivers/i2c/i2c-core-base.c' line='2401' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_new_scanned_device'>
+        <parameter type-id='b9af02c3' name='adap' filepath='drivers/i2c/i2c-core-base.c' line='2401' column='1'/>
+        <parameter type-id='fae597a1' name='info' filepath='drivers/i2c/i2c-core-base.c' line='2402' column='1'/>
+        <parameter type-id='31347b7a' name='addr_list' filepath='drivers/i2c/i2c-core-base.c' line='2403' column='1'/>
+        <parameter type-id='9194e9f3' name='probe' filepath='drivers/i2c/i2c-core-base.c' line='2404' column='1'/>
+        <return type-id='3e31633b'/>
+      </function-decl>
+      <function-decl name='i2c_parse_fw_timings' mangled-name='i2c_parse_fw_timings' filepath='drivers/i2c/i2c-core-base.c' line='1795' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_parse_fw_timings'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/i2c/i2c-core-base.c' line='1795' column='1'/>
+        <parameter type-id='d19fb227' name='t' filepath='drivers/i2c/i2c-core-base.c' line='1795' column='1'/>
+        <parameter type-id='b50a4934' name='use_defaults' filepath='drivers/i2c/i2c-core-base.c' line='1795' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='i2c_put_adapter' mangled-name='i2c_put_adapter' filepath='drivers/i2c/i2c-core-base.c' line='2462' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_put_adapter'>
+        <parameter type-id='b9af02c3' name='adap' filepath='drivers/i2c/i2c-core-base.c' line='2462' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='i2c_put_dma_safe_msg_buf' mangled-name='i2c_put_dma_safe_msg_buf' filepath='drivers/i2c/i2c-core-base.c' line='2513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_put_dma_safe_msg_buf'>
+        <parameter type-id='8bff8096' name='buf' filepath='drivers/i2c/i2c-core-base.c' line='2513' column='1'/>
+        <parameter type-id='cd44bc95' name='msg' filepath='drivers/i2c/i2c-core-base.c' line='2513' column='1'/>
+        <parameter type-id='b50a4934' name='xferred' filepath='drivers/i2c/i2c-core-base.c' line='2513' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='i2c_recover_bus' mangled-name='i2c_recover_bus' filepath='drivers/i2c/i2c-core-base.c' line='271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_recover_bus'>
+        <parameter type-id='b9af02c3' name='adap' filepath='drivers/i2c/i2c-core-base.c' line='271' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i2c_register_driver' mangled-name='i2c_register_driver' filepath='drivers/i2c/i2c-core-base.c' line='1848' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_register_driver'>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/i2c/i2c-core-base.c' line='1848' column='1'/>
+        <parameter type-id='29ffcb70' name='driver' filepath='drivers/i2c/i2c-core-base.c' line='1848' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i2c_smbus_read_byte' mangled-name='i2c_smbus_read_byte' filepath='drivers/i2c/i2c-core-smbus.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_smbus_read_byte'>
+        <parameter type-id='7ea54338' name='client' filepath='drivers/i2c/i2c-core-smbus.c' line='101' column='1'/>
+        <return type-id='a7832498'/>
+      </function-decl>
+      <function-decl name='i2c_smbus_read_byte_data' mangled-name='i2c_smbus_read_byte_data' filepath='drivers/i2c/i2c-core-smbus.c' line='136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_smbus_read_byte_data'>
+        <parameter type-id='7ea54338' name='client' filepath='drivers/i2c/i2c-core-smbus.c' line='136' column='1'/>
+        <parameter type-id='f9b06939' name='command' filepath='drivers/i2c/i2c-core-smbus.c' line='136' column='1'/>
+        <return type-id='a7832498'/>
+      </function-decl>
+      <function-decl name='i2c_smbus_read_i2c_block_data' mangled-name='i2c_smbus_read_i2c_block_data' filepath='drivers/i2c/i2c-core-smbus.c' line='266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_smbus_read_i2c_block_data'>
+        <parameter type-id='7ea54338' name='client' filepath='drivers/i2c/i2c-core-smbus.c' line='266' column='1'/>
+        <parameter type-id='f9b06939' name='command' filepath='drivers/i2c/i2c-core-smbus.c' line='266' column='1'/>
+        <parameter type-id='f9b06939' name='length' filepath='drivers/i2c/i2c-core-smbus.c' line='267' column='1'/>
+        <parameter type-id='8bff8096' name='values' filepath='drivers/i2c/i2c-core-smbus.c' line='267' column='1'/>
+        <return type-id='a7832498'/>
+      </function-decl>
+      <function-decl name='i2c_smbus_read_word_data' mangled-name='i2c_smbus_read_word_data' filepath='drivers/i2c/i2c-core-smbus.c' line='176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_smbus_read_word_data'>
+        <parameter type-id='7ea54338' name='client' filepath='drivers/i2c/i2c-core-smbus.c' line='176' column='1'/>
+        <parameter type-id='f9b06939' name='command' filepath='drivers/i2c/i2c-core-smbus.c' line='176' column='1'/>
+        <return type-id='a7832498'/>
+      </function-decl>
+      <function-decl name='i2c_smbus_write_byte' mangled-name='i2c_smbus_write_byte' filepath='drivers/i2c/i2c-core-smbus.c' line='121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_smbus_write_byte'>
+        <parameter type-id='7ea54338' name='client' filepath='drivers/i2c/i2c-core-smbus.c' line='121' column='1'/>
+        <parameter type-id='f9b06939' name='value' filepath='drivers/i2c/i2c-core-smbus.c' line='121' column='1'/>
+        <return type-id='a7832498'/>
+      </function-decl>
+      <function-decl name='i2c_smbus_write_byte_data' mangled-name='i2c_smbus_write_byte_data' filepath='drivers/i2c/i2c-core-smbus.c' line='157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_smbus_write_byte_data'>
+        <parameter type-id='7ea54338' name='client' filepath='drivers/i2c/i2c-core-smbus.c' line='157' column='1'/>
+        <parameter type-id='f9b06939' name='command' filepath='drivers/i2c/i2c-core-smbus.c' line='157' column='1'/>
+        <parameter type-id='f9b06939' name='value' filepath='drivers/i2c/i2c-core-smbus.c' line='158' column='1'/>
+        <return type-id='a7832498'/>
+      </function-decl>
+      <function-decl name='i2c_smbus_write_i2c_block_data' mangled-name='i2c_smbus_write_i2c_block_data' filepath='drivers/i2c/i2c-core-smbus.c' line='286' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_smbus_write_i2c_block_data'>
+        <parameter type-id='7ea54338' name='client' filepath='drivers/i2c/i2c-core-smbus.c' line='286' column='1'/>
+        <parameter type-id='f9b06939' name='command' filepath='drivers/i2c/i2c-core-smbus.c' line='286' column='1'/>
+        <parameter type-id='f9b06939' name='length' filepath='drivers/i2c/i2c-core-smbus.c' line='287' column='1'/>
+        <parameter type-id='bbaf3419' name='values' filepath='drivers/i2c/i2c-core-smbus.c' line='287' column='1'/>
+        <return type-id='a7832498'/>
+      </function-decl>
+      <function-decl name='i2c_smbus_write_word_data' mangled-name='i2c_smbus_write_word_data' filepath='drivers/i2c/i2c-core-smbus.c' line='197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_smbus_write_word_data'>
+        <parameter type-id='7ea54338' name='client' filepath='drivers/i2c/i2c-core-smbus.c' line='197' column='1'/>
+        <parameter type-id='f9b06939' name='command' filepath='drivers/i2c/i2c-core-smbus.c' line='197' column='1'/>
+        <parameter type-id='1dc6a898' name='value' filepath='drivers/i2c/i2c-core-smbus.c' line='198' column='1'/>
+        <return type-id='a7832498'/>
+      </function-decl>
+      <function-decl name='i2c_smbus_xfer' mangled-name='i2c_smbus_xfer' filepath='drivers/i2c/i2c-core-smbus.c' line='534' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_smbus_xfer'>
+        <parameter type-id='b9af02c3' name='adapter' filepath='drivers/i2c/i2c-core-smbus.c' line='534' column='1'/>
+        <parameter type-id='1dc6a898' name='addr' filepath='drivers/i2c/i2c-core-smbus.c' line='534' column='1'/>
+        <parameter type-id='8efea9e5' name='flags' filepath='drivers/i2c/i2c-core-smbus.c' line='535' column='1'/>
+        <parameter type-id='a84c031d' name='read_write' filepath='drivers/i2c/i2c-core-smbus.c' line='535' column='1'/>
+        <parameter type-id='f9b06939' name='command' filepath='drivers/i2c/i2c-core-smbus.c' line='536' column='1'/>
+        <parameter type-id='95e97e5e' name='protocol' filepath='drivers/i2c/i2c-core-smbus.c' line='536' column='1'/>
+        <parameter type-id='a556dccb' name='data' filepath='drivers/i2c/i2c-core-smbus.c' line='536' column='1'/>
+        <return type-id='a7832498'/>
+      </function-decl>
+      <function-decl name='i2c_transfer' mangled-name='i2c_transfer' filepath='drivers/i2c/i2c-core-base.c' line='2144' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_transfer'>
+        <parameter type-id='b9af02c3' name='adap' filepath='drivers/i2c/i2c-core-base.c' line='2144' column='1'/>
+        <parameter type-id='cd44bc95' name='msgs' filepath='drivers/i2c/i2c-core-base.c' line='2144' column='1'/>
+        <parameter type-id='95e97e5e' name='num' filepath='drivers/i2c/i2c-core-base.c' line='2144' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i2c_transfer_buffer_flags' mangled-name='i2c_transfer_buffer_flags' filepath='drivers/i2c/i2c-core-base.c' line='2190' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_transfer_buffer_flags'>
+        <parameter type-id='7ea54338' name='client' filepath='drivers/i2c/i2c-core-base.c' line='2190' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='drivers/i2c/i2c-core-base.c' line='2190' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='drivers/i2c/i2c-core-base.c' line='2191' column='1'/>
+        <parameter type-id='1dc6a898' name='flags' filepath='drivers/i2c/i2c-core-base.c' line='2191' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i2c_unregister_device' mangled-name='i2c_unregister_device' filepath='drivers/i2c/i2c-core-base.c' line='995' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_unregister_device'>
+        <parameter type-id='3e31633b' name='client' filepath='drivers/i2c/i2c-core-base.c' line='995' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='i2c_verify_adapter' mangled-name='i2c_verify_adapter' filepath='drivers/i2c/i2c-core-base.c' line='1311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_verify_adapter'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/i2c/i2c-core-base.c' line='1311' column='1'/>
+        <return type-id='b9af02c3'/>
+      </function-decl>
+      <function-decl name='i2c_verify_client' mangled-name='i2c_verify_client' filepath='drivers/i2c/i2c-core-base.c' line='701' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i2c_verify_client'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/i2c/i2c-core-base.c' line='701' column='1'/>
+        <return type-id='3e31633b'/>
+      </function-decl>
+      <function-decl name='i3c_device_disable_ibi' mangled-name='i3c_device_disable_ibi' filepath='drivers/i3c/device.c' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_device_disable_ibi'>
+        <parameter type-id='c062d7a5' name='dev' filepath='drivers/i3c/device.c' line='83' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i3c_device_do_priv_xfers' mangled-name='i3c_device_do_priv_xfers' filepath='drivers/i3c/device.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_device_do_priv_xfers'>
+        <parameter type-id='c062d7a5' name='dev' filepath='drivers/i3c/device.c' line='31' column='1'/>
+        <parameter type-id='ffef58ec' name='xfers' filepath='drivers/i3c/device.c' line='32' column='1'/>
+        <parameter type-id='95e97e5e' name='nxfers' filepath='drivers/i3c/device.c' line='33' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i3c_device_enable_ibi' mangled-name='i3c_device_enable_ibi' filepath='drivers/i3c/device.c' line='112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_device_enable_ibi'>
+        <parameter type-id='c062d7a5' name='dev' filepath='drivers/i3c/device.c' line='112' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i3c_device_free_ibi' mangled-name='i3c_device_free_ibi' filepath='drivers/i3c/device.c' line='167' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_device_free_ibi'>
+        <parameter type-id='c062d7a5' name='dev' filepath='drivers/i3c/device.c' line='167' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='i3c_device_get_info' mangled-name='i3c_device_get_info' filepath='drivers/i3c/device.c' line='61' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_device_get_info'>
+        <parameter type-id='c062d7a5' name='dev' filepath='drivers/i3c/device.c' line='61' column='1'/>
+        <parameter type-id='28714cc4' name='info' filepath='drivers/i3c/device.c' line='62' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='i3c_device_match_id' mangled-name='i3c_device_match_id' filepath='drivers/i3c/device.c' line='211' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_device_match_id'>
+        <parameter type-id='c062d7a5' name='i3cdev' filepath='drivers/i3c/device.c' line='211' column='1'/>
+        <parameter type-id='af6bced6' name='id_table' filepath='drivers/i3c/device.c' line='212' column='1'/>
+        <return type-id='af6bced6'/>
+      </function-decl>
+      <function-decl name='i3c_device_request_ibi' mangled-name='i3c_device_request_ibi' filepath='drivers/i3c/device.c' line='139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_device_request_ibi'>
+        <parameter type-id='c062d7a5' name='dev' filepath='drivers/i3c/device.c' line='139' column='1'/>
+        <parameter type-id='d0ddd4b8' name='req' filepath='drivers/i3c/device.c' line='140' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i3c_driver_register_with_owner' mangled-name='i3c_driver_register_with_owner' filepath='drivers/i3c/device.c' line='260' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_driver_register_with_owner'>
+        <parameter type-id='554d9945' name='drv' filepath='drivers/i3c/device.c' line='260' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/i3c/device.c' line='260' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i3c_driver_unregister' mangled-name='i3c_driver_unregister' filepath='drivers/i3c/device.c' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_driver_unregister'>
+        <parameter type-id='554d9945' name='drv' filepath='drivers/i3c/device.c' line='281' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='i3c_generic_ibi_alloc_pool' mangled-name='i3c_generic_ibi_alloc_pool' filepath='drivers/i3c/master.c' line='2325' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_generic_ibi_alloc_pool'>
+        <parameter type-id='e9b5d134' name='dev' filepath='drivers/i3c/master.c' line='2325' column='1'/>
+        <parameter type-id='d0ddd4b8' name='req' filepath='drivers/i3c/master.c' line='2326' column='1'/>
+        <return type-id='d9481436'/>
+      </function-decl>
+      <function-decl name='i3c_generic_ibi_free_pool' mangled-name='i3c_generic_ibi_free_pool' filepath='drivers/i3c/master.c' line='2291' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_generic_ibi_free_pool'>
+        <parameter type-id='d9481436' name='pool' filepath='drivers/i3c/master.c' line='2291' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='i3c_generic_ibi_get_free_slot' mangled-name='i3c_generic_ibi_get_free_slot' filepath='drivers/i3c/master.c' line='2387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_generic_ibi_get_free_slot'>
+        <parameter type-id='d9481436' name='pool' filepath='drivers/i3c/master.c' line='2387' column='1'/>
+        <return type-id='80cda266'/>
+      </function-decl>
+      <function-decl name='i3c_generic_ibi_recycle_slot' mangled-name='i3c_generic_ibi_recycle_slot' filepath='drivers/i3c/master.c' line='2411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_generic_ibi_recycle_slot'>
+        <parameter type-id='d9481436' name='pool' filepath='drivers/i3c/master.c' line='2411' column='1'/>
+        <parameter type-id='80cda266' name='s' filepath='drivers/i3c/master.c' line='2412' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='i3c_master_add_i3c_dev_locked' mangled-name='i3c_master_add_i3c_dev_locked' filepath='drivers/i3c/master.c' line='1850' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_master_add_i3c_dev_locked'>
+        <parameter type-id='0ac68794' name='master' filepath='drivers/i3c/master.c' line='1850' column='1'/>
+        <parameter type-id='f9b06939' name='addr' filepath='drivers/i3c/master.c' line='1851' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i3c_master_defslvs_locked' mangled-name='i3c_master_defslvs_locked' filepath='drivers/i3c/master.c' line='894' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_master_defslvs_locked'>
+        <parameter type-id='0ac68794' name='master' filepath='drivers/i3c/master.c' line='894' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i3c_master_disec_locked' mangled-name='i3c_master_disec_locked' filepath='drivers/i3c/master.c' line='847' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_master_disec_locked'>
+        <parameter type-id='0ac68794' name='master' filepath='drivers/i3c/master.c' line='847' column='1'/>
+        <parameter type-id='f9b06939' name='addr' filepath='drivers/i3c/master.c' line='847' column='1'/>
+        <parameter type-id='f9b06939' name='evts' filepath='drivers/i3c/master.c' line='848' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i3c_master_do_daa' mangled-name='i3c_master_do_daa' filepath='drivers/i3c/master.c' line='1530' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_master_do_daa'>
+        <parameter type-id='0ac68794' name='master' filepath='drivers/i3c/master.c' line='1530' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i3c_master_enec_locked' mangled-name='i3c_master_enec_locked' filepath='drivers/i3c/master.c' line='868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_master_enec_locked'>
+        <parameter type-id='0ac68794' name='master' filepath='drivers/i3c/master.c' line='868' column='1'/>
+        <parameter type-id='f9b06939' name='addr' filepath='drivers/i3c/master.c' line='868' column='1'/>
+        <parameter type-id='f9b06939' name='evts' filepath='drivers/i3c/master.c' line='869' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i3c_master_entdaa_locked' mangled-name='i3c_master_entdaa_locked' filepath='drivers/i3c/master.c' line='794' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_master_entdaa_locked'>
+        <parameter type-id='0ac68794' name='master' filepath='drivers/i3c/master.c' line='794' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i3c_master_get_free_addr' mangled-name='i3c_master_get_free_addr' filepath='drivers/i3c/master.c' line='714' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_master_get_free_addr'>
+        <parameter type-id='0ac68794' name='master' filepath='drivers/i3c/master.c' line='714' column='1'/>
+        <parameter type-id='f9b06939' name='start_addr' filepath='drivers/i3c/master.c' line='715' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i3c_master_queue_ibi' mangled-name='i3c_master_queue_ibi' filepath='drivers/i3c/master.c' line='2238' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_master_queue_ibi'>
+        <parameter type-id='e9b5d134' name='dev' filepath='drivers/i3c/master.c' line='2238' column='1'/>
+        <parameter type-id='80cda266' name='slot' filepath='drivers/i3c/master.c' line='2238' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='i3c_master_register' mangled-name='i3c_master_register' filepath='drivers/i3c/master.c' line='2462' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_master_register'>
+        <parameter type-id='0ac68794' name='master' filepath='drivers/i3c/master.c' line='2462' column='1'/>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/i3c/master.c' line='2463' column='1'/>
+        <parameter type-id='b37211ac' name='ops' filepath='drivers/i3c/master.c' line='2464' column='1'/>
+        <parameter type-id='b50a4934' name='secondary' filepath='drivers/i3c/master.c' line='2465' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i3c_master_set_info' mangled-name='i3c_master_set_info' filepath='drivers/i3c/master.c' line='1573' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_master_set_info'>
+        <parameter type-id='0ac68794' name='master' filepath='drivers/i3c/master.c' line='1573' column='1'/>
+        <parameter type-id='e7a3c515' name='info' filepath='drivers/i3c/master.c' line='1574' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i3c_master_unregister' mangled-name='i3c_master_unregister' filepath='drivers/i3c/master.c' line='2583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3c_master_unregister'>
+        <parameter type-id='0ac68794' name='master' filepath='drivers/i3c/master.c' line='2583' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='i3cdev_to_dev' mangled-name='i3cdev_to_dev' filepath='drivers/i3c/device.c' line='185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='i3cdev_to_dev'>
+        <parameter type-id='c062d7a5' name='i3cdev' filepath='drivers/i3c/device.c' line='185' column='1'/>
+        <return type-id='fa0b179b'/>
+      </function-decl>
+      <function-decl name='icc_disable' mangled-name='icc_disable' filepath='drivers/interconnect/core.c' line='702' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='icc_disable'>
+        <parameter type-id='b5fdec5e' name='path' filepath='drivers/interconnect/core.c' line='702' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='icc_enable' mangled-name='icc_enable' filepath='drivers/interconnect/core.c' line='696' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='icc_enable'>
+        <parameter type-id='b5fdec5e' name='path' filepath='drivers/interconnect/core.c' line='696' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='icc_get' mangled-name='icc_get' filepath='drivers/interconnect/core.c' line='724' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='icc_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/interconnect/core.c' line='724' column='1'/>
+        <parameter type-id='2448a865' name='src_id' filepath='drivers/interconnect/core.c' line='724' column='1'/>
+        <parameter type-id='2448a865' name='dst_id' filepath='drivers/interconnect/core.c' line='724' column='1'/>
+        <return type-id='b5fdec5e'/>
+      </function-decl>
+      <function-decl name='icc_link_create' mangled-name='icc_link_create' filepath='drivers/interconnect/core.c' line='874' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='icc_link_create'>
+        <parameter type-id='18d76f87' name='node' filepath='drivers/interconnect/core.c' line='874' column='1'/>
+        <parameter type-id='2448a865' name='dst_id' filepath='drivers/interconnect/core.c' line='874' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='icc_node_add' mangled-name='icc_node_add' filepath='drivers/interconnect/core.c' line='964' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='icc_node_add'>
+        <parameter type-id='18d76f87' name='node' filepath='drivers/interconnect/core.c' line='964' column='1'/>
+        <parameter type-id='e68dc824' name='provider' filepath='drivers/interconnect/core.c' line='964' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='icc_node_create' mangled-name='icc_node_create' filepath='drivers/interconnect/core.c' line='821' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='icc_node_create'>
+        <parameter type-id='95e97e5e' name='id' filepath='drivers/interconnect/core.c' line='821' column='1'/>
+        <return type-id='18d76f87'/>
+      </function-decl>
+      <function-decl name='icc_node_del' mangled-name='icc_node_del' filepath='drivers/interconnect/core.c' line='1003' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='icc_node_del'>
+        <parameter type-id='18d76f87' name='node' filepath='drivers/interconnect/core.c' line='1003' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='icc_node_destroy' mangled-name='icc_node_destroy' filepath='drivers/interconnect/core.c' line='839' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='icc_node_destroy'>
+        <parameter type-id='95e97e5e' name='id' filepath='drivers/interconnect/core.c' line='839' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='icc_nodes_remove' mangled-name='icc_nodes_remove' filepath='drivers/interconnect/core.c' line='1019' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='icc_nodes_remove'>
+        <parameter type-id='e68dc824' name='provider' filepath='drivers/interconnect/core.c' line='1019' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='icc_provider_add' mangled-name='icc_provider_add' filepath='drivers/interconnect/core.c' line='1041' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='icc_provider_add'>
+        <parameter type-id='e68dc824' name='provider' filepath='drivers/interconnect/core.c' line='1041' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='icc_provider_del' mangled-name='icc_provider_del' filepath='drivers/interconnect/core.c' line='1067' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='icc_provider_del'>
+        <parameter type-id='e68dc824' name='provider' filepath='drivers/interconnect/core.c' line='1067' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='icc_put' mangled-name='icc_put' filepath='drivers/interconnect/core.c' line='763' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='icc_put'>
+        <parameter type-id='b5fdec5e' name='path' filepath='drivers/interconnect/core.c' line='763' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='icc_set_bw' mangled-name='icc_set_bw' filepath='drivers/interconnect/core.c' line='622' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='icc_set_bw'>
+        <parameter type-id='b5fdec5e' name='path' filepath='drivers/interconnect/core.c' line='622' column='1'/>
+        <parameter type-id='19c2251e' name='avg_bw' filepath='drivers/interconnect/core.c' line='622' column='1'/>
+        <parameter type-id='19c2251e' name='peak_bw' filepath='drivers/interconnect/core.c' line='622' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='icc_set_tag' mangled-name='icc_set_tag' filepath='drivers/interconnect/core.c' line='573' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='icc_set_tag'>
+        <parameter type-id='b5fdec5e' name='path' filepath='drivers/interconnect/core.c' line='573' column='1'/>
+        <parameter type-id='19c2251e' name='tag' filepath='drivers/interconnect/core.c' line='573' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='icc_std_aggregate' mangled-name='icc_std_aggregate' filepath='drivers/interconnect/core.c' line='311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='icc_std_aggregate'>
+        <parameter type-id='18d76f87' name='node' filepath='drivers/interconnect/core.c' line='311' column='1'/>
+        <parameter type-id='19c2251e' name='tag' filepath='drivers/interconnect/core.c' line='311' column='1'/>
+        <parameter type-id='19c2251e' name='avg_bw' filepath='drivers/interconnect/core.c' line='311' column='1'/>
+        <parameter type-id='19c2251e' name='peak_bw' filepath='drivers/interconnect/core.c' line='312' column='1'/>
+        <parameter type-id='f9409001' name='agg_avg' filepath='drivers/interconnect/core.c' line='312' column='1'/>
+        <parameter type-id='f9409001' name='agg_peak' filepath='drivers/interconnect/core.c' line='312' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='icc_sync_state' mangled-name='icc_sync_state' filepath='drivers/interconnect/core.c' line='1110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='icc_sync_state'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/interconnect/core.c' line='1110' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='icmp6_send' mangled-name='icmp6_send' filepath='net/ipv6/icmp.c' line='448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='icmp6_send'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv6/icmp.c' line='448' column='1'/>
+        <parameter type-id='f9b06939' name='type' filepath='net/ipv6/icmp.c' line='448' column='1'/>
+        <parameter type-id='f9b06939' name='code' filepath='net/ipv6/icmp.c' line='448' column='1'/>
+        <parameter type-id='3f1a6b60' name='info' filepath='net/ipv6/icmp.c' line='448' column='1'/>
+        <parameter type-id='fea9c20b' name='force_saddr' filepath='net/ipv6/icmp.c' line='449' column='1'/>
+        <parameter type-id='12256de8' name='parm' filepath='net/ipv6/icmp.c' line='450' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ida_alloc_range' mangled-name='ida_alloc_range' filepath='lib/idr.c' line='380' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ida_alloc_range'>
+        <parameter type-id='a9e764bb' name='ida' filepath='lib/idr.c' line='380' column='1'/>
+        <parameter type-id='f0981eeb' name='min' filepath='lib/idr.c' line='380' column='1'/>
+        <parameter type-id='f0981eeb' name='max' filepath='lib/idr.c' line='380' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='lib/idr.c' line='381' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ida_destroy' mangled-name='ida_destroy' filepath='lib/idr.c' line='541' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ida_destroy'>
+        <parameter type-id='a9e764bb' name='ida' filepath='lib/idr.c' line='541' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ida_free' mangled-name='ida_free' filepath='lib/idr.c' line='487' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ida_free'>
+        <parameter type-id='a9e764bb' name='ida' filepath='lib/idr.c' line='487' column='1'/>
+        <parameter type-id='f0981eeb' name='id' filepath='lib/idr.c' line='487' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='idr_alloc' mangled-name='idr_alloc' filepath='lib/idr.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='idr_alloc'>
+        <parameter type-id='301185b4' name='idr' filepath='lib/idr.c' line='79' column='1'/>
+        <parameter type-id='eaa32e2f' name='ptr' filepath='lib/idr.c' line='79' column='1'/>
+        <parameter type-id='95e97e5e' name='start' filepath='lib/idr.c' line='79' column='1'/>
+        <parameter type-id='95e97e5e' name='end' filepath='lib/idr.c' line='79' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='lib/idr.c' line='79' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='idr_alloc_cyclic' mangled-name='idr_alloc_cyclic' filepath='lib/idr.c' line='117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='idr_alloc_cyclic'>
+        <parameter type-id='301185b4' name='idr' filepath='lib/idr.c' line='117' column='1'/>
+        <parameter type-id='eaa32e2f' name='ptr' filepath='lib/idr.c' line='117' column='1'/>
+        <parameter type-id='95e97e5e' name='start' filepath='lib/idr.c' line='117' column='1'/>
+        <parameter type-id='95e97e5e' name='end' filepath='lib/idr.c' line='117' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='lib/idr.c' line='117' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='idr_alloc_u32' mangled-name='idr_alloc_u32' filepath='lib/idr.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='idr_alloc_u32'>
+        <parameter type-id='301185b4' name='idr' filepath='lib/idr.c' line='33' column='1'/>
+        <parameter type-id='eaa32e2f' name='ptr' filepath='lib/idr.c' line='33' column='1'/>
+        <parameter type-id='f9409001' name='nextid' filepath='lib/idr.c' line='33' column='1'/>
+        <parameter type-id='7359adad' name='max' filepath='lib/idr.c' line='34' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='lib/idr.c' line='34' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='idr_destroy' mangled-name='idr_destroy' filepath='lib/radix-tree.c' line='1558' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='idr_destroy'>
+        <parameter type-id='301185b4' name='idr' filepath='lib/radix-tree.c' line='1558' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='idr_find' mangled-name='idr_find' filepath='lib/idr.c' line='172' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='idr_find'>
+        <parameter type-id='c79c8089' name='idr' filepath='lib/idr.c' line='172' column='1'/>
+        <parameter type-id='7359adad' name='id' filepath='lib/idr.c' line='172' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='idr_for_each' mangled-name='idr_for_each' filepath='lib/idr.c' line='195' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='idr_for_each'>
+        <parameter type-id='c79c8089' name='idr' filepath='lib/idr.c' line='195' column='1'/>
+        <parameter type-id='f4f5b664' name='fn' filepath='lib/idr.c' line='196' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='lib/idr.c' line='196' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='idr_get_next' mangled-name='idr_get_next' filepath='lib/idr.c' line='264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='idr_get_next'>
+        <parameter type-id='301185b4' name='idr' filepath='lib/idr.c' line='264' column='1'/>
+        <parameter type-id='7292109c' name='nextid' filepath='lib/idr.c' line='264' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='idr_preload' mangled-name='idr_preload' filepath='lib/radix-tree.c' line='1468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='idr_preload'>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='lib/radix-tree.c' line='1468' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='idr_remove' mangled-name='idr_remove' filepath='lib/idr.c' line='152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='idr_remove'>
+        <parameter type-id='301185b4' name='idr' filepath='lib/idr.c' line='152' column='1'/>
+        <parameter type-id='7359adad' name='id' filepath='lib/idr.c' line='152' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='idr_replace' mangled-name='idr_replace' filepath='lib/idr.c' line='290' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='idr_replace'>
+        <parameter type-id='301185b4' name='idr' filepath='lib/idr.c' line='290' column='1'/>
+        <parameter type-id='eaa32e2f' name='ptr' filepath='lib/idr.c' line='290' column='1'/>
+        <parameter type-id='7359adad' name='id' filepath='lib/idr.c' line='290' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='ieee802154_alloc_hw' mangled-name='ieee802154_alloc_hw' filepath='net/mac802154/main.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ieee802154_alloc_hw'>
+        <parameter type-id='b59d7dce' name='priv_data_len' filepath='net/mac802154/main.c' line='47' column='1'/>
+        <parameter type-id='3f26598b' name='ops' filepath='net/mac802154/main.c' line='47' column='1'/>
+        <return type-id='c67366c7'/>
+      </function-decl>
+      <function-decl name='ieee802154_free_hw' mangled-name='ieee802154_free_hw' filepath='net/mac802154/main.c' line='116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ieee802154_free_hw'>
+        <parameter type-id='c67366c7' name='hw' filepath='net/mac802154/main.c' line='116' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ieee802154_register_hw' mangled-name='ieee802154_register_hw' filepath='net/mac802154/main.c' line='140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ieee802154_register_hw'>
+        <parameter type-id='c67366c7' name='hw' filepath='net/mac802154/main.c' line='140' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ieee802154_rx_irqsafe' mangled-name='ieee802154_rx_irqsafe' filepath='net/mac802154/rx.c' line='294' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ieee802154_rx_irqsafe'>
+        <parameter type-id='c67366c7' name='hw' filepath='net/mac802154/rx.c' line='294' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/mac802154/rx.c' line='294' column='1'/>
+        <parameter type-id='f9b06939' name='lqi' filepath='net/mac802154/rx.c' line='294' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ieee802154_unregister_hw' mangled-name='ieee802154_unregister_hw' filepath='net/mac802154/main.c' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ieee802154_unregister_hw'>
+        <parameter type-id='c67366c7' name='hw' filepath='net/mac802154/main.c' line='205' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ieee802154_wake_queue' mangled-name='ieee802154_wake_queue' filepath='net/mac802154/util.c' line='16' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ieee802154_wake_queue'>
+        <parameter type-id='c67366c7' name='hw' filepath='net/mac802154/util.c' line='16' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ieee802154_xmit_complete' mangled-name='ieee802154_xmit_complete' filepath='net/mac802154/util.c' line='58' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ieee802154_xmit_complete'>
+        <parameter type-id='c67366c7' name='hw' filepath='net/mac802154/util.c' line='58' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/mac802154/util.c' line='58' column='1'/>
+        <parameter type-id='b50a4934' name='ifs_handling' filepath='net/mac802154/util.c' line='59' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iget5_locked' mangled-name='iget5_locked' filepath='fs/inode.c' line='1150' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iget5_locked'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/inode.c' line='1150' column='1'/>
+        <parameter type-id='7359adad' name='hashval' filepath='fs/inode.c' line='1150' column='1'/>
+        <parameter type-id='1b7a05dc' name='test' filepath='fs/inode.c' line='1151' column='1'/>
+        <parameter type-id='1b7a05dc' name='set' filepath='fs/inode.c' line='1152' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='fs/inode.c' line='1152' column='1'/>
+        <return type-id='7e666abe'/>
+      </function-decl>
+      <function-decl name='iget_failed' mangled-name='iget_failed' filepath='fs/bad_inode.c' line='246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iget_failed'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/bad_inode.c' line='246' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iget_locked' mangled-name='iget_locked' filepath='fs/inode.c' line='1183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iget_locked'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/inode.c' line='1183' column='1'/>
+        <parameter type-id='7359adad' name='ino' filepath='fs/inode.c' line='1183' column='1'/>
+        <return type-id='7e666abe'/>
+      </function-decl>
+      <var-decl name='ignore_console_lock_warning' type-id='49178f86' mangled-name='ignore_console_lock_warning' visibility='default' filepath='kernel/printk/printk.c' line='74' column='1' elf-symbol-id='ignore_console_lock_warning'/>
+      <function-decl name='igrab' mangled-name='igrab' filepath='fs/inode.c' line='1302' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='igrab'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='1302' column='1'/>
+        <return type-id='7e666abe'/>
+      </function-decl>
+      <function-decl name='ihold' mangled-name='ihold' filepath='fs/inode.c' line='424' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ihold'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='424' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iio_alloc_pollfunc' mangled-name='iio_alloc_pollfunc' filepath='drivers/iio/industrialio-trigger.c' line='361' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_alloc_pollfunc'>
+        <parameter type-id='3fefe9b7' name='h' filepath='drivers/iio/industrialio-trigger.c' line='361' column='1'/>
+        <parameter type-id='3fefe9b7' name='thread' filepath='drivers/iio/industrialio-trigger.c' line='362' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='drivers/iio/industrialio-trigger.c' line='363' column='1'/>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/industrialio-trigger.c' line='364' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/iio/industrialio-trigger.c' line='365' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='9add1da7'/>
+      </function-decl>
+      <function-decl name='iio_buffer_init' mangled-name='iio_buffer_init' filepath='drivers/iio/industrialio-buffer.c' line='234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_buffer_init'>
+        <parameter type-id='aa9ea333' name='buffer' filepath='drivers/iio/industrialio-buffer.c' line='234' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iio_buffer_put' mangled-name='iio_buffer_put' filepath='drivers/iio/industrialio-buffer.c' line='1783' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_buffer_put'>
+        <parameter type-id='aa9ea333' name='buffer' filepath='drivers/iio/industrialio-buffer.c' line='1783' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iio_channel_get' mangled-name='iio_channel_get' filepath='drivers/iio/inkern.c' line='339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_channel_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iio/inkern.c' line='339' column='1'/>
+        <parameter type-id='80f4b756' name='channel_name' filepath='drivers/iio/inkern.c' line='340' column='1'/>
+        <return type-id='2712709a'/>
+      </function-decl>
+      <function-decl name='iio_channel_get_all' mangled-name='iio_channel_get_all' filepath='drivers/iio/inkern.c' line='409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_channel_get_all'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iio/inkern.c' line='409' column='1'/>
+        <return type-id='2712709a'/>
+      </function-decl>
+      <function-decl name='iio_channel_release' mangled-name='iio_channel_release' filepath='drivers/iio/inkern.c' line='356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_channel_release'>
+        <parameter type-id='2712709a' name='channel' filepath='drivers/iio/inkern.c' line='356' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iio_channel_release_all' mangled-name='iio_channel_release_all' filepath='drivers/iio/inkern.c' line='482' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_channel_release_all'>
+        <parameter type-id='2712709a' name='channels' filepath='drivers/iio/inkern.c' line='482' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iio_dealloc_pollfunc' mangled-name='iio_dealloc_pollfunc' filepath='drivers/iio/industrialio-trigger.c' line='390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_dealloc_pollfunc'>
+        <parameter type-id='9add1da7' name='pf' filepath='drivers/iio/industrialio-trigger.c' line='390' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iio_device_alloc' mangled-name='iio_device_alloc' filepath='drivers/iio/industrialio-core.c' line='1648' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_device_alloc'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/iio/industrialio-core.c' line='1648' column='1'/>
+        <parameter type-id='95e97e5e' name='sizeof_priv' filepath='drivers/iio/industrialio-core.c' line='1648' column='1'/>
+        <return type-id='226853d2'/>
+      </function-decl>
+      <function-decl name='iio_device_attach_buffer' mangled-name='iio_device_attach_buffer' filepath='drivers/iio/industrialio-buffer.c' line='1803' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_device_attach_buffer'>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/industrialio-buffer.c' line='1803' column='1'/>
+        <parameter type-id='aa9ea333' name='buffer' filepath='drivers/iio/industrialio-buffer.c' line='1804' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iio_device_claim_direct_mode' mangled-name='iio_device_claim_direct_mode' filepath='drivers/iio/industrialio-core.c' line='2048' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_device_claim_direct_mode'>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/industrialio-core.c' line='2048' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iio_device_free' mangled-name='iio_device_free' filepath='drivers/iio/industrialio-core.c' line='1702' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_device_free'>
+        <parameter type-id='226853d2' name='dev' filepath='drivers/iio/industrialio-core.c' line='1702' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iio_device_id' mangled-name='iio_device_id' filepath='drivers/iio/industrialio-core.c' line='179' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_device_id'>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/industrialio-core.c' line='179' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iio_device_release_direct_mode' mangled-name='iio_device_release_direct_mode' filepath='drivers/iio/industrialio-core.c' line='2069' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_device_release_direct_mode'>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/industrialio-core.c' line='2069' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iio_device_unregister' mangled-name='iio_device_unregister' filepath='drivers/iio/industrialio-core.c' line='1996' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_device_unregister'>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/industrialio-core.c' line='1996' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iio_get_channel_type' mangled-name='iio_get_channel_type' filepath='drivers/iio/inkern.c' line='869' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_get_channel_type'>
+        <parameter type-id='2712709a' name='chan' filepath='drivers/iio/inkern.c' line='869' column='1'/>
+        <parameter type-id='4a2371f8' name='type' filepath='drivers/iio/inkern.c' line='869' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iio_get_time_ns' mangled-name='iio_get_time_ns' filepath='drivers/iio/industrialio-core.c' line='297' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_get_time_ns'>
+        <parameter type-id='78041e8f' name='indio_dev' filepath='drivers/iio/industrialio-core.c' line='297' column='1'/>
+        <return type-id='9b7c55ef'/>
+      </function-decl>
+      <function-decl name='iio_kfifo_allocate' mangled-name='iio_kfifo_allocate' filepath='drivers/iio/buffer/kfifo_buf.c' line='153' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_kfifo_allocate'>
+        <return type-id='aa9ea333'/>
+      </function-decl>
+      <function-decl name='iio_kfifo_free' mangled-name='iio_kfifo_free' filepath='drivers/iio/buffer/kfifo_buf.c' line='171' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_kfifo_free'>
+        <parameter type-id='aa9ea333' name='r' filepath='drivers/iio/buffer/kfifo_buf.c' line='171' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iio_pollfunc_store_time' mangled-name='iio_pollfunc_store_time' filepath='drivers/iio/industrialio-trigger.c' line='351' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_pollfunc_store_time'>
+        <parameter type-id='95e97e5e' name='irq' filepath='drivers/iio/industrialio-trigger.c' line='351' column='1'/>
+        <parameter type-id='eaa32e2f' name='p' filepath='drivers/iio/industrialio-trigger.c' line='351' column='1'/>
+        <return type-id='4bdecfd7'/>
+      </function-decl>
+      <function-decl name='iio_push_event' mangled-name='iio_push_event' filepath='drivers/iio/industrialio-event.c' line='66' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_push_event'>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/industrialio-event.c' line='66' column='1'/>
+        <parameter type-id='91ce1af9' name='ev_code' filepath='drivers/iio/industrialio-event.c' line='66' column='1'/>
+        <parameter type-id='9b7c55ef' name='timestamp' filepath='drivers/iio/industrialio-event.c' line='66' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iio_push_to_buffers' mangled-name='iio_push_to_buffers' filepath='drivers/iio/industrialio-buffer.c' line='1732' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_push_to_buffers'>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/industrialio-buffer.c' line='1732' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/iio/industrialio-buffer.c' line='1732' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iio_read_channel_attribute' mangled-name='iio_read_channel_attribute' filepath='drivers/iio/inkern.c' line='681' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_read_channel_attribute'>
+        <parameter type-id='2712709a' name='chan' filepath='drivers/iio/inkern.c' line='681' column='1'/>
+        <parameter type-id='7292109c' name='val' filepath='drivers/iio/inkern.c' line='681' column='1'/>
+        <parameter type-id='7292109c' name='val2' filepath='drivers/iio/inkern.c' line='681' column='1'/>
+        <parameter type-id='cda049ab' name='attribute' filepath='drivers/iio/inkern.c' line='682' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iio_read_channel_processed' mangled-name='iio_read_channel_processed' filepath='drivers/iio/inkern.c' line='740' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_read_channel_processed'>
+        <parameter type-id='2712709a' name='chan' filepath='drivers/iio/inkern.c' line='740' column='1'/>
+        <parameter type-id='7292109c' name='val' filepath='drivers/iio/inkern.c' line='740' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iio_read_channel_raw' mangled-name='iio_read_channel_raw' filepath='drivers/iio/inkern.c' line='544' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_read_channel_raw'>
+        <parameter type-id='2712709a' name='chan' filepath='drivers/iio/inkern.c' line='544' column='1'/>
+        <parameter type-id='7292109c' name='val' filepath='drivers/iio/inkern.c' line='544' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iio_read_channel_scale' mangled-name='iio_read_channel_scale' filepath='drivers/iio/inkern.c' line='747' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_read_channel_scale'>
+        <parameter type-id='2712709a' name='chan' filepath='drivers/iio/inkern.c' line='747' column='1'/>
+        <parameter type-id='7292109c' name='val' filepath='drivers/iio/inkern.c' line='747' column='1'/>
+        <parameter type-id='7292109c' name='val2' filepath='drivers/iio/inkern.c' line='747' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iio_read_const_attr' mangled-name='iio_read_const_attr' filepath='drivers/iio/industrialio-core.c' line='247' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_read_const_attr'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iio/industrialio-core.c' line='247' column='1'/>
+        <parameter type-id='89a2612a' name='attr' filepath='drivers/iio/industrialio-core.c' line='248' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='drivers/iio/industrialio-core.c' line='249' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='iio_read_mount_matrix' mangled-name='iio_read_mount_matrix' filepath='drivers/iio/industrialio-core.c' line='627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_read_mount_matrix'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iio/industrialio-core.c' line='627' column='1'/>
+        <parameter type-id='e02525e8' name='matrix' filepath='drivers/iio/industrialio-core.c' line='627' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iio_show_mount_matrix' mangled-name='iio_show_mount_matrix' filepath='drivers/iio/industrialio-core.c' line='597' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_show_mount_matrix'>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/industrialio-core.c' line='597' column='1'/>
+        <parameter type-id='e475ab95' name='priv' filepath='drivers/iio/industrialio-core.c' line='597' column='1'/>
+        <parameter type-id='f74174a4' name='chan' filepath='drivers/iio/industrialio-core.c' line='598' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='drivers/iio/industrialio-core.c' line='598' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='iio_trigger_alloc' mangled-name='iio_trigger_alloc' filepath='drivers/iio/industrialio-trigger.c' line='613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_trigger_alloc'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/iio/industrialio-trigger.c' line='613' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/iio/industrialio-trigger.c' line='613' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='54e54fbb'/>
+      </function-decl>
+      <function-decl name='iio_trigger_free' mangled-name='iio_trigger_free' filepath='drivers/iio/industrialio-trigger.c' line='626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_trigger_free'>
+        <parameter type-id='54e54fbb' name='trig' filepath='drivers/iio/industrialio-trigger.c' line='626' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iio_trigger_generic_data_rdy_poll' mangled-name='iio_trigger_generic_data_rdy_poll' filepath='drivers/iio/industrialio-trigger.c' line='215' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_trigger_generic_data_rdy_poll'>
+        <parameter type-id='95e97e5e' name='irq' filepath='drivers/iio/industrialio-trigger.c' line='215' column='1'/>
+        <parameter type-id='eaa32e2f' name='private' filepath='drivers/iio/industrialio-trigger.c' line='215' column='1'/>
+        <return type-id='4bdecfd7'/>
+      </function-decl>
+      <function-decl name='iio_trigger_notify_done' mangled-name='iio_trigger_notify_done' filepath='drivers/iio/industrialio-trigger.c' line='239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_trigger_notify_done'>
+        <parameter type-id='54e54fbb' name='trig' filepath='drivers/iio/industrialio-trigger.c' line='239' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iio_trigger_poll' mangled-name='iio_trigger_poll' filepath='drivers/iio/industrialio-trigger.c' line='198' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_trigger_poll'>
+        <parameter type-id='54e54fbb' name='trig' filepath='drivers/iio/industrialio-trigger.c' line='198' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iio_trigger_unregister' mangled-name='iio_trigger_unregister' filepath='drivers/iio/industrialio-trigger.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_trigger_unregister'>
+        <parameter type-id='54e54fbb' name='trig_info' filepath='drivers/iio/industrialio-trigger.c' line='106' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iio_triggered_buffer_cleanup' mangled-name='iio_triggered_buffer_cleanup' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_triggered_buffer_cleanup'>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='92' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iio_triggered_buffer_setup_ext' mangled-name='iio_triggered_buffer_setup_ext' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_triggered_buffer_setup_ext'>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='38' column='1'/>
+        <parameter type-id='3fefe9b7' name='h' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='39' column='1'/>
+        <parameter type-id='3fefe9b7' name='thread' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='40' column='1'/>
+        <parameter type-id='7597aac3' name='setup_ops' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='41' column='1'/>
+        <parameter type-id='cd733e18' name='buffer_attrs' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='42' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iio_update_buffers' mangled-name='iio_update_buffers' filepath='drivers/iio/industrialio-buffer.c' line='1149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_update_buffers'>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/industrialio-buffer.c' line='1149' column='1'/>
+        <parameter type-id='aa9ea333' name='insert_buffer' filepath='drivers/iio/industrialio-buffer.c' line='1150' column='1'/>
+        <parameter type-id='aa9ea333' name='remove_buffer' filepath='drivers/iio/industrialio-buffer.c' line='1151' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iio_validate_scan_mask_onehot' mangled-name='iio_validate_scan_mask_onehot' filepath='drivers/iio/industrialio-buffer.c' line='1689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_validate_scan_mask_onehot'>
+        <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/industrialio-buffer.c' line='1689' column='1'/>
+        <parameter type-id='f9b37274' name='mask' filepath='drivers/iio/industrialio-buffer.c' line='1690' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='iio_write_channel_attribute' mangled-name='iio_write_channel_attribute' filepath='drivers/iio/inkern.c' line='896' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_write_channel_attribute'>
+        <parameter type-id='2712709a' name='chan' filepath='drivers/iio/inkern.c' line='896' column='1'/>
+        <parameter type-id='95e97e5e' name='val' filepath='drivers/iio/inkern.c' line='896' column='1'/>
+        <parameter type-id='95e97e5e' name='val2' filepath='drivers/iio/inkern.c' line='896' column='1'/>
+        <parameter type-id='cda049ab' name='attribute' filepath='drivers/iio/inkern.c' line='897' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iio_write_channel_raw' mangled-name='iio_write_channel_raw' filepath='drivers/iio/inkern.c' line='916' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_write_channel_raw'>
+        <parameter type-id='2712709a' name='chan' filepath='drivers/iio/inkern.c' line='916' column='1'/>
+        <parameter type-id='95e97e5e' name='val' filepath='drivers/iio/inkern.c' line='916' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ilookup' mangled-name='ilookup' filepath='fs/inode.c' line='1393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ilookup'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/inode.c' line='1393' column='1'/>
+        <parameter type-id='7359adad' name='ino' filepath='fs/inode.c' line='1393' column='1'/>
+        <return type-id='7e666abe'/>
+      </function-decl>
+      <function-decl name='ilookup5' mangled-name='ilookup5' filepath='fs/inode.c' line='1368' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ilookup5'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/inode.c' line='1368' column='1'/>
+        <parameter type-id='7359adad' name='hashval' filepath='fs/inode.c' line='1368' column='1'/>
+        <parameter type-id='1b7a05dc' name='test' filepath='fs/inode.c' line='1369' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='fs/inode.c' line='1369' column='1'/>
+        <return type-id='7e666abe'/>
+      </function-decl>
+      <function-decl name='import_iovec' mangled-name='import_iovec' filepath='lib/iov_iter.c' line='2006' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='import_iovec'>
+        <parameter type-id='95e97e5e' name='type' filepath='lib/iov_iter.c' line='2006' column='1'/>
+        <parameter type-id='2c556848' name='uvec' filepath='lib/iov_iter.c' line='2006' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_segs' filepath='lib/iov_iter.c' line='2007' column='1'/>
+        <parameter type-id='f0981eeb' name='fast_segs' filepath='lib/iov_iter.c' line='2007' column='1'/>
+        <parameter type-id='5d3cb3f9' name='iovp' filepath='lib/iov_iter.c' line='2008' column='1'/>
+        <parameter type-id='4fa10f9e' name='i' filepath='lib/iov_iter.c' line='2008' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='in4_pton' mangled-name='in4_pton' filepath='net/core/utils.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='in4_pton'>
+        <parameter type-id='80f4b756' name='src' filepath='net/core/utils.c' line='118' column='1'/>
+        <parameter type-id='95e97e5e' name='srclen' filepath='net/core/utils.c' line='118' column='1'/>
+        <parameter type-id='8bff8096' name='dst' filepath='net/core/utils.c' line='119' column='1'/>
+        <parameter type-id='95e97e5e' name='delim' filepath='net/core/utils.c' line='120' column='1'/>
+        <parameter type-id='7d3cd834' name='end' filepath='net/core/utils.c' line='120' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='in6_dev_finish_destroy' mangled-name='in6_dev_finish_destroy' filepath='net/ipv6/addrconf_core.c' line='255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='in6_dev_finish_destroy'>
+        <parameter type-id='f026b16b' name='idev' filepath='net/ipv6/addrconf_core.c' line='255' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='in6_pton' mangled-name='in6_pton' filepath='net/core/utils.c' line='184' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='in6_pton'>
+        <parameter type-id='80f4b756' name='src' filepath='net/core/utils.c' line='184' column='1'/>
+        <parameter type-id='95e97e5e' name='srclen' filepath='net/core/utils.c' line='184' column='1'/>
+        <parameter type-id='8bff8096' name='dst' filepath='net/core/utils.c' line='185' column='1'/>
+        <parameter type-id='95e97e5e' name='delim' filepath='net/core/utils.c' line='186' column='1'/>
+        <parameter type-id='7d3cd834' name='end' filepath='net/core/utils.c' line='186' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='in_aton' mangled-name='in_aton' filepath='net/core/utils.c' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='in_aton'>
+        <parameter type-id='80f4b756' name='str' filepath='net/core/utils.c' line='50' column='1'/>
+        <return type-id='78a133c2'/>
+      </function-decl>
+      <function-decl name='in_egroup_p' mangled-name='in_egroup_p' filepath='kernel/groups.c' line='226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='in_egroup_p'>
+        <parameter type-id='094d8048' name='grp' filepath='kernel/groups.c' line='226' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='in_group_p' mangled-name='in_group_p' filepath='kernel/groups.c' line='214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='in_group_p'>
+        <parameter type-id='094d8048' name='grp' filepath='kernel/groups.c' line='214' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='inc_nlink' mangled-name='inc_nlink' filepath='fs/inode.c' line='361' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inc_nlink'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='361' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='inc_node_page_state' mangled-name='inc_node_page_state' filepath='mm/vmstat.c' line='659' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inc_node_page_state'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/vmstat.c' line='659' column='1'/>
+        <parameter type-id='93f9c3d3' name='item' filepath='mm/vmstat.c' line='659' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='inc_zone_page_state' mangled-name='inc_zone_page_state' filepath='mm/vmstat.c' line='586' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inc_zone_page_state'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/vmstat.c' line='586' column='1'/>
+        <parameter type-id='a1f2d9a1' name='item' filepath='mm/vmstat.c' line='586' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='inet6_ioctl' mangled-name='inet6_ioctl' filepath='net/ipv6/af_inet6.c' line='569' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inet6_ioctl'>
+        <parameter type-id='13103032' name='sock' filepath='net/ipv6/af_inet6.c' line='569' column='1'/>
+        <parameter type-id='f0981eeb' name='cmd' filepath='net/ipv6/af_inet6.c' line='569' column='1'/>
+        <parameter type-id='7359adad' name='arg' filepath='net/ipv6/af_inet6.c' line='569' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='inet_csk_get_port' mangled-name='inet_csk_get_port' filepath='net/ipv4/inet_connection_sock.c' line='366' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inet_csk_get_port'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/ipv4/inet_connection_sock.c' line='366' column='1'/>
+        <parameter type-id='8efea9e5' name='snum' filepath='net/ipv4/inet_connection_sock.c' line='366' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='inet_dev_addr_type' mangled-name='inet_dev_addr_type' filepath='net/ipv4/fib_frontend.c' line='248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inet_dev_addr_type'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv4/fib_frontend.c' line='248' column='1'/>
+        <parameter type-id='2ce52478' name='dev' filepath='net/ipv4/fib_frontend.c' line='248' column='1'/>
+        <parameter type-id='78a133c2' name='addr' filepath='net/ipv4/fib_frontend.c' line='249' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='inet_diag_bc_sk' mangled-name='inet_diag_bc_sk' filepath='net/ipv4/inet_diag.c' line='787' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inet_diag_bc_sk'>
+        <parameter type-id='0f2a7ce5' name='bc' filepath='net/ipv4/inet_diag.c' line='787' column='1'/>
+        <parameter type-id='f772df6d' name='sk' filepath='net/ipv4/inet_diag.c' line='787' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='inet_diag_register' mangled-name='inet_diag_register' filepath='net/ipv4/inet_diag.c' line='1410' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inet_diag_register'>
+        <parameter type-id='e0e7d15f' name='h' filepath='net/ipv4/inet_diag.c' line='1410' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='inet_diag_unregister' mangled-name='inet_diag_unregister' filepath='net/ipv4/inet_diag.c' line='1430' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inet_diag_unregister'>
+        <parameter type-id='e0e7d15f' name='h' filepath='net/ipv4/inet_diag.c' line='1430' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='inet_ioctl' mangled-name='inet_ioctl' filepath='net/ipv4/af_inet.c' line='933' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inet_ioctl'>
+        <parameter type-id='13103032' name='sock' filepath='net/ipv4/af_inet.c' line='933' column='1'/>
+        <parameter type-id='f0981eeb' name='cmd' filepath='net/ipv4/af_inet.c' line='933' column='1'/>
+        <parameter type-id='7359adad' name='arg' filepath='net/ipv4/af_inet.c' line='933' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='inet_proto_csum_replace4' mangled-name='inet_proto_csum_replace4' filepath='net/core/utils.c' line='425' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inet_proto_csum_replace4'>
+        <parameter type-id='91b10e59' name='sum' filepath='net/core/utils.c' line='425' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/utils.c' line='425' column='1'/>
+        <parameter type-id='78a133c2' name='from' filepath='net/core/utils.c' line='426' column='1'/>
+        <parameter type-id='78a133c2' name='to' filepath='net/core/utils.c' line='426' column='1'/>
+        <parameter type-id='b50a4934' name='pseudohdr' filepath='net/core/utils.c' line='426' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='inet_select_addr' mangled-name='inet_select_addr' filepath='net/ipv4/devinet.c' line='1300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inet_select_addr'>
+        <parameter type-id='2ce52478' name='dev' filepath='net/ipv4/devinet.c' line='1300' column='1'/>
+        <parameter type-id='78a133c2' name='dst' filepath='net/ipv4/devinet.c' line='1300' column='1'/>
+        <parameter type-id='95e97e5e' name='scope' filepath='net/ipv4/devinet.c' line='1300' column='1'/>
+        <return type-id='78a133c2'/>
+      </function-decl>
+      <function-decl name='inet_sk_diag_fill' mangled-name='inet_sk_diag_fill' filepath='net/ipv4/inet_diag.c' line='234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inet_sk_diag_fill'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/ipv4/inet_diag.c' line='234' column='1'/>
+        <parameter type-id='774fc7fd' name='icsk' filepath='net/ipv4/inet_diag.c' line='234' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv4/inet_diag.c' line='235' column='1'/>
+        <parameter type-id='07b9ee34' name='cb' filepath='net/ipv4/inet_diag.c' line='235' column='1'/>
+        <parameter type-id='26bebc56' name='req' filepath='net/ipv4/inet_diag.c' line='236' column='1'/>
+        <parameter type-id='1dc6a898' name='nlmsg_flags' filepath='net/ipv4/inet_diag.c' line='237' column='1'/>
+        <parameter type-id='b50a4934' name='net_admin' filepath='net/ipv4/inet_diag.c' line='237' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='init_dummy_netdev' mangled-name='init_dummy_netdev' filepath='net/core/dev.c' line='10409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='init_dummy_netdev'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='10409' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='init_iova_domain' mangled-name='init_iova_domain' filepath='drivers/iommu/iova.c' line='75' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='init_iova_domain'>
+        <parameter type-id='0c2c419d' name='iovad' filepath='drivers/iommu/iova.c' line='75' column='1'/>
+        <parameter type-id='7359adad' name='granule' filepath='drivers/iommu/iova.c' line='75' column='1'/>
+        <parameter type-id='7359adad' name='start_pfn' filepath='drivers/iommu/iova.c' line='76' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='init_net' type-id='bd965180' mangled-name='init_net' visibility='default' filepath='net/core/net_namespace.c' line='47' column='1' elf-symbol-id='init_net'/>
+      <var-decl name='init_on_free' type-id='237c0d27' mangled-name='init_on_free' visibility='default' filepath='mm/page_alloc.c' line='283' column='1' elf-symbol-id='init_on_free'/>
+      <var-decl name='init_pid_ns' type-id='0252e252' mangled-name='init_pid_ns' visibility='default' filepath='kernel/pid.c' line='75' column='1' elf-symbol-id='init_pid_ns'/>
+      <function-decl name='init_pseudo' mangled-name='init_pseudo' filepath='fs/libfs.c' line='369' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='init_pseudo'>
+        <parameter type-id='5760dcb0' name='fc' filepath='fs/libfs.c' line='369' column='1'/>
+        <parameter type-id='7359adad' name='magic' filepath='fs/libfs.c' line='370' column='1'/>
+        <return type-id='79f85ebf'/>
+      </function-decl>
+      <function-decl name='init_special_inode' mangled-name='init_special_inode' filepath='fs/inode.c' line='2097' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='init_special_inode'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='2097' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/inode.c' line='2097' column='1'/>
+        <parameter type-id='8504f260' name='rdev' filepath='fs/inode.c' line='2097' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='init_srcu_struct' mangled-name='init_srcu_struct' filepath='kernel/rcu/srcutree.c' line='207' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='init_srcu_struct'>
+        <parameter type-id='f7d7131a' name='ssp' filepath='kernel/rcu/srcutree.c' line='207' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='init_task' type-id='bc3f1924' mangled-name='init_task' visibility='default' filepath='init/init_task.c' line='64' column='1' elf-symbol-id='init_task'/>
+      <function-decl name='init_timer_key' mangled-name='init_timer_key' filepath='kernel/time/timer.c' line='818' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='init_timer_key'>
+        <parameter type-id='9248e67f' name='timer' filepath='kernel/time/timer.c' line='818' column='1'/>
+        <parameter type-id='9582ad9a' name='func' filepath='kernel/time/timer.c' line='819' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='kernel/time/timer.c' line='819' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/time/timer.c' line='820' column='1'/>
+        <parameter type-id='a57283f9' name='key' filepath='kernel/time/timer.c' line='820' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='init_user_ns' type-id='8c178e22' mangled-name='init_user_ns' visibility='default' filepath='kernel/user.c' line='29' column='1' elf-symbol-id='init_user_ns'/>
+      <var-decl name='init_uts_ns' type-id='44f52e9d' mangled-name='init_uts_ns' visibility='default' filepath='init/version.c' line='20' column='1' elf-symbol-id='init_uts_ns'/>
+      <function-decl name='init_wait_entry' mangled-name='init_wait_entry' filepath='kernel/sched/wait.c' line='297' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='init_wait_entry'>
+        <parameter type-id='db9d03e3' name='wq_entry' filepath='kernel/sched/wait.c' line='297' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='kernel/sched/wait.c' line='297' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='inode_dio_wait' mangled-name='inode_dio_wait' filepath='fs/inode.c' line='2203' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inode_dio_wait'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='2203' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='inode_get_bytes' mangled-name='inode_get_bytes' filepath='fs/stat.c' line='772' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inode_get_bytes'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/stat.c' line='772' column='1'/>
+        <return type-id='69bf7bee'/>
+      </function-decl>
+      <function-decl name='inode_init_once' mangled-name='inode_init_once' filepath='fs/inode.c' line='393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inode_init_once'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='393' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='inode_init_owner' mangled-name='inode_init_owner' filepath='fs/inode.c' line='2130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inode_init_owner'>
+        <parameter type-id='c0ced320' name='mnt_userns' filepath='fs/inode.c' line='2130' column='1'/>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='2130' column='1'/>
+        <parameter type-id='c5a4eb7f' name='dir' filepath='fs/inode.c' line='2131' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/inode.c' line='2131' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='inode_needs_sync' mangled-name='inode_needs_sync' filepath='fs/inode.c' line='2004' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inode_needs_sync'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='2004' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='inode_newsize_ok' mangled-name='inode_newsize_ok' filepath='fs/attr.c' line='248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inode_newsize_ok'>
+        <parameter type-id='c5a4eb7f' name='inode' filepath='fs/attr.c' line='248' column='1'/>
+        <parameter type-id='69bf7bee' name='offset' filepath='fs/attr.c' line='248' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='inode_nohighmem' mangled-name='inode_nohighmem' filepath='fs/inode.c' line='2234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inode_nohighmem'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='2234' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='inode_owner_or_capable' mangled-name='inode_owner_or_capable' filepath='fs/inode.c' line='2160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inode_owner_or_capable'>
+        <parameter type-id='c0ced320' name='mnt_userns' filepath='fs/inode.c' line='2160' column='1'/>
+        <parameter type-id='c5a4eb7f' name='inode' filepath='fs/inode.c' line='2161' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='inode_set_bytes' mangled-name='inode_set_bytes' filepath='fs/stat.c' line='784' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inode_set_bytes'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/stat.c' line='784' column='1'/>
+        <parameter type-id='69bf7bee' name='bytes' filepath='fs/stat.c' line='784' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='inode_set_flags' mangled-name='inode_set_flags' filepath='fs/inode.c' line='2226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inode_set_flags'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='2226' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='fs/inode.c' line='2226' column='1'/>
+        <parameter type-id='f0981eeb' name='mask' filepath='fs/inode.c' line='2227' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='input_alloc_absinfo' mangled-name='input_alloc_absinfo' filepath='drivers/input/input.c' line='502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_alloc_absinfo'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input.c' line='502' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='input_allocate_device' mangled-name='input_allocate_device' filepath='drivers/input/input.c' line='1919' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_allocate_device'>
+        <return type-id='74b427eb'/>
+      </function-decl>
+      <function-decl name='input_close_device' mangled-name='input_close_device' filepath='drivers/input/input.c' line='686' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_close_device'>
+        <parameter type-id='bef1b918' name='handle' filepath='drivers/input/input.c' line='686' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='input_device_enabled' mangled-name='input_device_enabled' filepath='drivers/input/input.c' line='2247' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_device_enabled'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input.c' line='2247' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='input_event' mangled-name='input_event' filepath='drivers/input/input.c' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_event'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input.c' line='449' column='1'/>
+        <parameter type-id='f0981eeb' name='type' filepath='drivers/input/input.c' line='450' column='1'/>
+        <parameter type-id='f0981eeb' name='code' filepath='drivers/input/input.c' line='450' column='1'/>
+        <parameter type-id='95e97e5e' name='value' filepath='drivers/input/input.c' line='450' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='input_ff_create' mangled-name='input_ff_create' filepath='drivers/input/ff-core.c' line='305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_ff_create'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/ff-core.c' line='305' column='1'/>
+        <parameter type-id='f0981eeb' name='max_effects' filepath='drivers/input/ff-core.c' line='305' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='input_ff_create_memless' mangled-name='input_ff_create_memless' filepath='drivers/input/ff-memless.c' line='510' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_ff_create_memless'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/ff-memless.c' line='510' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/input/ff-memless.c' line='510' column='1'/>
+        <parameter type-id='2d974d69' name='play_effect' filepath='drivers/input/ff-memless.c' line='511' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='input_ff_destroy' mangled-name='input_ff_destroy' filepath='drivers/input/ff-core.c' line='365' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_ff_destroy'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/ff-core.c' line='365' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='input_free_device' mangled-name='input_free_device' filepath='drivers/input/input.c' line='2024' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_free_device'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input.c' line='2024' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='input_mt_assign_slots' mangled-name='input_mt_assign_slots' filepath='drivers/input/input-mt.c' line='440' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_mt_assign_slots'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input-mt.c' line='440' column='1'/>
+        <parameter type-id='7292109c' name='slots' filepath='drivers/input/input-mt.c' line='440' column='1'/>
+        <parameter type-id='2c1e3f15' name='pos' filepath='drivers/input/input-mt.c' line='441' column='1'/>
+        <parameter type-id='95e97e5e' name='num_pos' filepath='drivers/input/input-mt.c' line='441' column='1'/>
+        <parameter type-id='95e97e5e' name='dmax' filepath='drivers/input/input-mt.c' line='442' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='input_mt_destroy_slots' mangled-name='input_mt_destroy_slots' filepath='drivers/input/input-mt.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_mt_destroy_slots'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input-mt.c' line='110' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='input_mt_drop_unused' mangled-name='input_mt_drop_unused' filepath='drivers/input/input-mt.c' line='276' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_mt_drop_unused'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input-mt.c' line='276' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='input_mt_get_slot_by_key' mangled-name='input_mt_get_slot_by_key' filepath='drivers/input/input-mt.c' line='475' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_mt_get_slot_by_key'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input-mt.c' line='475' column='1'/>
+        <parameter type-id='95e97e5e' name='key' filepath='drivers/input/input-mt.c' line='475' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='input_mt_init_slots' mangled-name='input_mt_init_slots' filepath='drivers/input/input-mt.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_mt_init_slots'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input-mt.c' line='38' column='1'/>
+        <parameter type-id='f0981eeb' name='num_slots' filepath='drivers/input/input-mt.c' line='38' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='drivers/input/input-mt.c' line='39' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='input_mt_report_finger_count' mangled-name='input_mt_report_finger_count' filepath='drivers/input/input-mt.c' line='174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_mt_report_finger_count'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input-mt.c' line='174' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='drivers/input/input-mt.c' line='174' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='input_mt_report_pointer_emulation' mangled-name='input_mt_report_pointer_emulation' filepath='drivers/input/input-mt.c' line='195' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_mt_report_pointer_emulation'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input-mt.c' line='195' column='1'/>
+        <parameter type-id='b50a4934' name='use_count' filepath='drivers/input/input-mt.c' line='195' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='input_mt_report_slot_state' mangled-name='input_mt_report_slot_state' filepath='drivers/input/input-mt.c' line='134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_mt_report_slot_state'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input-mt.c' line='134' column='1'/>
+        <parameter type-id='f0981eeb' name='tool_type' filepath='drivers/input/input-mt.c' line='135' column='1'/>
+        <parameter type-id='b50a4934' name='active' filepath='drivers/input/input-mt.c' line='135' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='input_mt_sync_frame' mangled-name='input_mt_sync_frame' filepath='drivers/input/input-mt.c' line='295' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_mt_sync_frame'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input-mt.c' line='295' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='input_open_device' mangled-name='input_open_device' filepath='drivers/input/input.c' line='615' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_open_device'>
+        <parameter type-id='bef1b918' name='handle' filepath='drivers/input/input.c' line='615' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='input_register_device' mangled-name='input_register_device' filepath='drivers/input/input.c' line='2278' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_register_device'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input.c' line='2278' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='input_register_handle' mangled-name='input_register_handle' filepath='drivers/input/input.c' line='2503' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_register_handle'>
+        <parameter type-id='bef1b918' name='handle' filepath='drivers/input/input.c' line='2503' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='input_register_handler' mangled-name='input_register_handler' filepath='drivers/input/input.c' line='2412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_register_handler'>
+        <parameter type-id='4938abae' name='handler' filepath='drivers/input/input.c' line='2412' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='input_scancode_to_scalar' mangled-name='input_scancode_to_scalar' filepath='drivers/input/input.c' line='778' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_scancode_to_scalar'>
+        <parameter type-id='d1a6cf39' name='ke' filepath='drivers/input/input.c' line='778' column='1'/>
+        <parameter type-id='807869d3' name='scancode' filepath='drivers/input/input.c' line='779' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='input_set_abs_params' mangled-name='input_set_abs_params' filepath='drivers/input/input.c' line='520' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_set_abs_params'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input.c' line='520' column='1'/>
+        <parameter type-id='f0981eeb' name='axis' filepath='drivers/input/input.c' line='520' column='1'/>
+        <parameter type-id='95e97e5e' name='min' filepath='drivers/input/input.c' line='521' column='1'/>
+        <parameter type-id='95e97e5e' name='max' filepath='drivers/input/input.c' line='521' column='1'/>
+        <parameter type-id='95e97e5e' name='fuzz' filepath='drivers/input/input.c' line='521' column='1'/>
+        <parameter type-id='95e97e5e' name='flat' filepath='drivers/input/input.c' line='521' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='input_set_capability' mangled-name='input_set_capability' filepath='drivers/input/input.c' line='2086' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_set_capability'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input.c' line='2086' column='1'/>
+        <parameter type-id='f0981eeb' name='type' filepath='drivers/input/input.c' line='2086' column='1'/>
+        <parameter type-id='f0981eeb' name='code' filepath='drivers/input/input.c' line='2086' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='input_set_poll_interval' mangled-name='input_set_poll_interval' filepath='drivers/input/input-poller.c' line='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_set_poll_interval'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input-poller.c' line='105' column='1'/>
+        <parameter type-id='f0981eeb' name='interval' filepath='drivers/input/input-poller.c' line='105' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='input_set_timestamp' mangled-name='input_set_timestamp' filepath='drivers/input/input.c' line='2051' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_set_timestamp'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input.c' line='2051' column='1'/>
+        <parameter type-id='fbc017ef' name='timestamp' filepath='drivers/input/input.c' line='2051' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='input_setup_polling' mangled-name='input_setup_polling' filepath='drivers/input/input-poller.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_setup_polling'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input-poller.c' line='68' column='1'/>
+        <parameter type-id='b44880ea' name='poll_fn' filepath='drivers/input/input-poller.c' line='69' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='input_unregister_device' mangled-name='input_unregister_device' filepath='drivers/input/input.c' line='2385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_unregister_device'>
+        <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input.c' line='2385' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='input_unregister_handle' mangled-name='input_unregister_handle' filepath='drivers/input/input.c' line='2553' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_unregister_handle'>
+        <parameter type-id='bef1b918' name='handle' filepath='drivers/input/input.c' line='2553' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='input_unregister_handler' mangled-name='input_unregister_handler' filepath='drivers/input/input.c' line='2442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_unregister_handler'>
+        <parameter type-id='4938abae' name='handler' filepath='drivers/input/input.c' line='2442' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='insert_inode_locked' mangled-name='insert_inode_locked' filepath='fs/inode.c' line='1543' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='insert_inode_locked'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='1543' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='int_pow' mangled-name='int_pow' filepath='lib/math/int_pow.c' line='19' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='int_pow'>
+        <parameter type-id='91ce1af9' name='base' filepath='lib/math/int_pow.c' line='19' column='1'/>
+        <parameter type-id='f0981eeb' name='exp' filepath='lib/math/int_pow.c' line='19' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='int_sqrt' mangled-name='int_sqrt' filepath='lib/math/int_sqrt.c' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='int_sqrt'>
+        <parameter type-id='7359adad' name='x' filepath='lib/math/int_sqrt.c' line='20' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='interval_tree_insert' mangled-name='interval_tree_insert' filepath='lib/interval_tree.c' line='10' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='interval_tree_insert'>
+        <parameter type-id='c7ea70e0' name='node' filepath='lib/interval_tree.c' line='10' column='1'/>
+        <parameter type-id='9e8dca7d' name='root' filepath='lib/interval_tree.c' line='10' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='interval_tree_iter_first' mangled-name='interval_tree_iter_first' filepath='lib/interval_tree.c' line='10' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='interval_tree_iter_first'>
+        <parameter type-id='9e8dca7d' name='root' filepath='lib/interval_tree.c' line='10' column='1'/>
+        <parameter type-id='7359adad' name='start' filepath='lib/interval_tree.c' line='10' column='1'/>
+        <parameter type-id='7359adad' name='last' filepath='lib/interval_tree.c' line='10' column='1'/>
+        <return type-id='c7ea70e0'/>
+      </function-decl>
+      <function-decl name='interval_tree_iter_next' mangled-name='interval_tree_iter_next' filepath='lib/interval_tree.c' line='10' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='interval_tree_iter_next'>
+        <parameter type-id='c7ea70e0' name='node' filepath='lib/interval_tree.c' line='10' column='1'/>
+        <parameter type-id='7359adad' name='start' filepath='lib/interval_tree.c' line='10' column='1'/>
+        <parameter type-id='7359adad' name='last' filepath='lib/interval_tree.c' line='10' column='1'/>
+        <return type-id='c7ea70e0'/>
+      </function-decl>
+      <function-decl name='interval_tree_remove' mangled-name='interval_tree_remove' filepath='lib/interval_tree.c' line='10' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='interval_tree_remove'>
+        <parameter type-id='c7ea70e0' name='node' filepath='lib/interval_tree.c' line='10' column='1'/>
+        <parameter type-id='9e8dca7d' name='root' filepath='lib/interval_tree.c' line='10' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='invalidate_bdev' mangled-name='invalidate_bdev' filepath='block/bdev.c' line='81' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='invalidate_bdev'>
+        <parameter type-id='b88dd945' name='bdev' filepath='block/bdev.c' line='81' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='invalidate_bh_lrus' mangled-name='invalidate_bh_lrus' filepath='fs/buffer.c' line='1424' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='invalidate_bh_lrus'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='invalidate_inode_buffers' mangled-name='invalidate_inode_buffers' filepath='fs/buffer.c' line='761' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='invalidate_inode_buffers'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/buffer.c' line='761' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='invalidate_mapping_pages' mangled-name='invalidate_mapping_pages' filepath='mm/truncate.c' line='530' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='invalidate_mapping_pages'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/truncate.c' line='530' column='1'/>
+        <parameter type-id='7359adad' name='start' filepath='mm/truncate.c' line='531' column='1'/>
+        <parameter type-id='7359adad' name='end' filepath='mm/truncate.c' line='531' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <var-decl name='io_cgrp_subsys_on_dfl_key' type-id='49a0ad34' mangled-name='io_cgrp_subsys_on_dfl_key' visibility='default' filepath='include/linux/cgroup_subsys.h' line='25' column='1' elf-symbol-id='io_cgrp_subsys_on_dfl_key'/>
+      <function-decl name='io_schedule' mangled-name='io_schedule' filepath='kernel/sched/core.c' line='8630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='io_schedule'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='io_schedule_timeout' mangled-name='io_schedule_timeout' filepath='kernel/sched/core.c' line='8617' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='io_schedule_timeout'>
+        <parameter type-id='bd54fe1a' name='timeout' filepath='kernel/sched/core.c' line='8617' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='ioc_lookup_icq' mangled-name='ioc_lookup_icq' filepath='block/blk-ioc.c' line='333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ioc_lookup_icq'>
+        <parameter type-id='d042cfad' name='ioc' filepath='block/blk-ioc.c' line='333' column='1'/>
+        <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-ioc.c' line='333' column='1'/>
+        <return type-id='7c6e0e0c'/>
+      </function-decl>
+      <function-decl name='iomap_dio_complete' mangled-name='iomap_dio_complete' filepath='fs/iomap/direct-io.c' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iomap_dio_complete'>
+        <parameter type-id='22159b04' name='dio' filepath='fs/iomap/direct-io.c' line='80' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <var-decl name='iomem_resource' type-id='5218160d' mangled-name='iomem_resource' visibility='default' filepath='kernel/resource.c' line='41' column='1' elf-symbol-id='iomem_resource'/>
+      <function-decl name='iommu_alloc_resv_region' mangled-name='iommu_alloc_resv_region' filepath='drivers/iommu/iommu.c' line='2861' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_alloc_resv_region'>
+        <parameter type-id='2522883d' name='start' filepath='drivers/iommu/iommu.c' line='2861' column='1'/>
+        <parameter type-id='b59d7dce' name='length' filepath='drivers/iommu/iommu.c' line='2862' column='1'/>
+        <parameter type-id='95e97e5e' name='prot' filepath='drivers/iommu/iommu.c' line='2862' column='1'/>
+        <parameter type-id='256c2037' name='type' filepath='drivers/iommu/iommu.c' line='2863' column='1'/>
+        <return type-id='24b0cc5e'/>
+      </function-decl>
+      <function-decl name='iommu_attach_device' mangled-name='iommu_attach_device' filepath='drivers/iommu/iommu.c' line='2017' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_attach_device'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2017' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2017' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_attach_group' mangled-name='iommu_attach_group' filepath='drivers/iommu/iommu.c' line='2359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_attach_group'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2359' column='1'/>
+        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='2359' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_aux_attach_device' mangled-name='iommu_aux_attach_device' filepath='drivers/iommu/iommu.c' line='3034' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_aux_attach_device'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='3034' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='3034' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_aux_detach_device' mangled-name='iommu_aux_detach_device' filepath='drivers/iommu/iommu.c' line='3048' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_aux_detach_device'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='3048' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='3048' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iommu_aux_get_pasid' mangled-name='iommu_aux_get_pasid' filepath='drivers/iommu/iommu.c' line='3057' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_aux_get_pasid'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='3057' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='3057' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_detach_device' mangled-name='iommu_detach_device' filepath='drivers/iommu/iommu.c' line='2278' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_detach_device'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2278' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2278' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iommu_dev_enable_feature' mangled-name='iommu_dev_enable_feature' filepath='drivers/iommu/iommu.c' line='2980' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_dev_enable_feature'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2980' column='1'/>
+        <parameter type-id='29d28711' name='feat' filepath='drivers/iommu/iommu.c' line='2980' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_dev_feature_enabled' mangled-name='iommu_dev_feature_enabled' filepath='drivers/iommu/iommu.c' line='3011' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_dev_feature_enabled'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='3011' column='1'/>
+        <parameter type-id='29d28711' name='feat' filepath='drivers/iommu/iommu.c' line='3011' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='iommu_device_link' mangled-name='iommu_device_link' filepath='drivers/iommu/iommu-sysfs.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_device_link'>
+        <parameter type-id='2f00283d' name='iommu' filepath='drivers/iommu/iommu-sysfs.c' line='106' column='1'/>
+        <parameter type-id='fa0b179b' name='link' filepath='drivers/iommu/iommu-sysfs.c' line='106' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_device_register' mangled-name='iommu_device_register' filepath='drivers/iommu/iommu.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_device_register'>
+        <parameter type-id='2f00283d' name='iommu' filepath='drivers/iommu/iommu.c' line='165' column='1'/>
+        <parameter type-id='f1ac64d0' name='ops' filepath='drivers/iommu/iommu.c' line='166' column='1'/>
+        <parameter type-id='fa0b179b' name='hwdev' filepath='drivers/iommu/iommu.c' line='166' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_device_sysfs_add' mangled-name='iommu_device_sysfs_add' filepath='drivers/iommu/iommu-sysfs.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_device_sysfs_add'>
+        <parameter type-id='2f00283d' name='iommu' filepath='drivers/iommu/iommu-sysfs.c' line='54' column='1'/>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/iommu/iommu-sysfs.c' line='55' column='1'/>
+        <parameter type-id='c97de1ac' name='groups' filepath='drivers/iommu/iommu-sysfs.c' line='56' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/iommu/iommu-sysfs.c' line='57' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_device_sysfs_remove' mangled-name='iommu_device_sysfs_remove' filepath='drivers/iommu/iommu-sysfs.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_device_sysfs_remove'>
+        <parameter type-id='2f00283d' name='iommu' filepath='drivers/iommu/iommu-sysfs.c' line='92' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iommu_device_unlink' mangled-name='iommu_device_unlink' filepath='drivers/iommu/iommu-sysfs.c' line='127' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_device_unlink'>
+        <parameter type-id='2f00283d' name='iommu' filepath='drivers/iommu/iommu-sysfs.c' line='127' column='1'/>
+        <parameter type-id='fa0b179b' name='link' filepath='drivers/iommu/iommu-sysfs.c' line='127' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iommu_device_unregister' mangled-name='iommu_device_unregister' filepath='drivers/iommu/iommu.c' line='183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_device_unregister'>
+        <parameter type-id='2f00283d' name='iommu' filepath='drivers/iommu/iommu.c' line='183' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iommu_dma_enable_best_fit_algo' mangled-name='iommu_dma_enable_best_fit_algo' filepath='drivers/iommu/dma-iommu.c' line='429' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_dma_enable_best_fit_algo'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/dma-iommu.c' line='429' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_dma_get_resv_regions' mangled-name='iommu_dma_get_resv_regions' filepath='drivers/iommu/dma-iommu.c' line='194' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_dma_get_resv_regions'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/dma-iommu.c' line='194' column='1'/>
+        <parameter type-id='e84b031a' name='list' filepath='drivers/iommu/dma-iommu.c' line='194' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iommu_domain_alloc' mangled-name='iommu_domain_alloc' filepath='drivers/iommu/iommu.c' line='1990' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_domain_alloc'>
+        <parameter type-id='5e2671f8' name='bus' filepath='drivers/iommu/iommu.c' line='1990' column='1'/>
+        <return type-id='bff05edb'/>
+      </function-decl>
+      <function-decl name='iommu_domain_free' mangled-name='iommu_domain_free' filepath='drivers/iommu/iommu.c' line='1996' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_domain_free'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='1996' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iommu_fwspec_add_ids' mangled-name='iommu_fwspec_add_ids' filepath='drivers/iommu/iommu.c' line='2951' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_fwspec_add_ids'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2951' column='1'/>
+        <parameter type-id='f9409001' name='ids' filepath='drivers/iommu/iommu.c' line='2951' column='1'/>
+        <parameter type-id='95e97e5e' name='num_ids' filepath='drivers/iommu/iommu.c' line='2951' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_fwspec_free' mangled-name='iommu_fwspec_free' filepath='drivers/iommu/iommu.c' line='2939' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_fwspec_free'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2939' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iommu_get_dma_cookie' mangled-name='iommu_get_dma_cookie' filepath='drivers/iommu/dma-iommu.c' line='112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_get_dma_cookie'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/dma-iommu.c' line='112' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_get_domain_for_dev' mangled-name='iommu_get_domain_for_dev' filepath='drivers/iommu/iommu.c' line='2300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_get_domain_for_dev'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2300' column='1'/>
+        <return type-id='bff05edb'/>
+      </function-decl>
+      <function-decl name='iommu_get_msi_cookie' mangled-name='iommu_get_msi_cookie' filepath='drivers/iommu/dma-iommu.c' line='137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_get_msi_cookie'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/dma-iommu.c' line='137' column='1'/>
+        <parameter type-id='cf29c9b3' name='base' filepath='drivers/iommu/dma-iommu.c' line='137' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_group_alloc' mangled-name='iommu_group_alloc' filepath='drivers/iommu/iommu.c' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_alloc'>
+        <return type-id='0b19fc54'/>
+      </function-decl>
+      <function-decl name='iommu_group_for_each_dev' mangled-name='iommu_group_for_each_dev' filepath='drivers/iommu/iommu.c' line='1033' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_for_each_dev'>
+        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1033' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/iommu/iommu.c' line='1033' column='1'/>
+        <parameter type-id='92d15ae9' name='fn' filepath='drivers/iommu/iommu.c' line='1034' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_group_get' mangled-name='iommu_group_get' filepath='drivers/iommu/iommu.c' line='1054' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1054' column='1'/>
+        <return type-id='0b19fc54'/>
+      </function-decl>
+      <function-decl name='iommu_group_get_iommudata' mangled-name='iommu_group_get_iommudata' filepath='drivers/iommu/iommu.c' line='729' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_get_iommudata'>
+        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='729' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='iommu_group_put' mangled-name='iommu_group_put' filepath='drivers/iommu/iommu.c' line='1086' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_put'>
+        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1086' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iommu_group_ref_get' mangled-name='iommu_group_ref_get' filepath='drivers/iommu/iommu.c' line='1072' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_ref_get'>
+        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1072' column='1'/>
+        <return type-id='0b19fc54'/>
+      </function-decl>
+      <function-decl name='iommu_group_register_notifier' mangled-name='iommu_group_register_notifier' filepath='drivers/iommu/iommu.c' line='1102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_register_notifier'>
+        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1102' column='1'/>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/iommu/iommu.c' line='1103' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_group_remove_device' mangled-name='iommu_group_remove_device' filepath='drivers/iommu/iommu.c' line='957' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_remove_device'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='957' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iommu_group_set_iommudata' mangled-name='iommu_group_set_iommudata' filepath='drivers/iommu/iommu.c' line='745' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_set_iommudata'>
+        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='745' column='1'/>
+        <parameter type-id='eaa32e2f' name='iommu_data' filepath='drivers/iommu/iommu.c' line='745' column='1'/>
+        <parameter type-id='b7f9d8e6' name='release' filepath='drivers/iommu/iommu.c' line='746' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iommu_group_set_name' mangled-name='iommu_group_set_name' filepath='drivers/iommu/iommu.c' line='761' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_set_name'>
+        <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='761' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/iommu/iommu.c' line='761' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_iova_to_phys' mangled-name='iommu_iova_to_phys' filepath='drivers/iommu/iommu.c' line='2412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_iova_to_phys'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2412' column='1'/>
+        <parameter type-id='cf29c9b3' name='iova' filepath='drivers/iommu/iommu.c' line='2412' column='1'/>
+        <return type-id='2522883d'/>
+      </function-decl>
+      <function-decl name='iommu_map' mangled-name='iommu_map' filepath='drivers/iommu/iommu.c' line='2575' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_map'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2575' column='1'/>
+        <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2575' column='1'/>
+        <parameter type-id='2522883d' name='paddr' filepath='drivers/iommu/iommu.c' line='2576' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/iommu/iommu.c' line='2576' column='1'/>
+        <parameter type-id='95e97e5e' name='prot' filepath='drivers/iommu/iommu.c' line='2576' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_map_atomic' mangled-name='iommu_map_atomic' filepath='drivers/iommu/iommu.c' line='2583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_map_atomic'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2583' column='1'/>
+        <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2583' column='1'/>
+        <parameter type-id='2522883d' name='paddr' filepath='drivers/iommu/iommu.c' line='2584' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/iommu/iommu.c' line='2584' column='1'/>
+        <parameter type-id='95e97e5e' name='prot' filepath='drivers/iommu/iommu.c' line='2584' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_map_sg' mangled-name='iommu_map_sg' filepath='drivers/iommu/iommu.c' line='2737' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_map_sg'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2737' column='1'/>
+        <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2737' column='1'/>
+        <parameter type-id='bf3ef905' name='sg' filepath='drivers/iommu/iommu.c' line='2738' column='1'/>
+        <parameter type-id='f0981eeb' name='nents' filepath='drivers/iommu/iommu.c' line='2738' column='1'/>
+        <parameter type-id='95e97e5e' name='prot' filepath='drivers/iommu/iommu.c' line='2738' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='iommu_present' mangled-name='iommu_present' filepath='drivers/iommu/iommu.c' line='1927' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_present'>
+        <parameter type-id='5e2671f8' name='bus' filepath='drivers/iommu/iommu.c' line='1927' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='iommu_put_dma_cookie' mangled-name='iommu_put_dma_cookie' filepath='drivers/iommu/dma-iommu.c' line='164' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_put_dma_cookie'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/dma-iommu.c' line='164' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iommu_register_device_fault_handler' mangled-name='iommu_register_device_fault_handler' filepath='drivers/iommu/iommu.c' line='1141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_register_device_fault_handler'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1141' column='1'/>
+        <parameter type-id='a84f5b46' name='handler' filepath='drivers/iommu/iommu.c' line='1142' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/iommu/iommu.c' line='1143' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_report_device_fault' mangled-name='iommu_report_device_fault' filepath='drivers/iommu/iommu.c' line='1226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_report_device_fault'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1226' column='1'/>
+        <parameter type-id='af233abc' name='evt' filepath='drivers/iommu/iommu.c' line='1226' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_set_fault_handler' mangled-name='iommu_set_fault_handler' filepath='drivers/iommu/iommu.c' line='1954' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_set_fault_handler'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='1954' column='1'/>
+        <parameter type-id='a01c3626' name='handler' filepath='drivers/iommu/iommu.c' line='1955' column='1'/>
+        <parameter type-id='eaa32e2f' name='token' filepath='drivers/iommu/iommu.c' line='1956' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iommu_set_pgtable_quirks' mangled-name='iommu_set_pgtable_quirks' filepath='drivers/iommu/iommu.c' line='2815' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_set_pgtable_quirks'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2815' column='1'/>
+        <parameter type-id='7359adad' name='quirk' filepath='drivers/iommu/iommu.c' line='2816' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iommu_unmap' mangled-name='iommu_unmap' filepath='drivers/iommu/iommu.c' line='2657' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_unmap'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2657' column='1'/>
+        <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2658' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/iommu/iommu.c' line='2658' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='iommu_unregister_device_fault_handler' mangled-name='iommu_unregister_device_fault_handler' filepath='drivers/iommu/iommu.c' line='1186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_unregister_device_fault_handler'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1186' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='ioport_resource' type-id='5218160d' mangled-name='ioport_resource' visibility='default' filepath='kernel/resource.c' line='33' column='1' elf-symbol-id='ioport_resource'/>
+      <function-decl name='ioremap_cache' mangled-name='ioremap_cache' filepath='arch/arm64/mm/ioremap.c' line='247' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ioremap_cache'>
+        <parameter type-id='2522883d' name='phys_addr' filepath='arch/arm64/mm/ioremap.c' line='247' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='arch/arm64/mm/ioremap.c' line='247' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='iounmap' mangled-name='iounmap' filepath='arch/arm64/mm/ioremap.c' line='234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iounmap'>
+        <parameter type-id='fe09dd29' name='io_addr' filepath='arch/arm64/mm/ioremap.c' line='234' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iov_iter_advance' mangled-name='iov_iter_advance' filepath='lib/iov_iter.c' line='1073' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iov_iter_advance'>
+        <parameter type-id='4fa10f9e' name='i' filepath='lib/iov_iter.c' line='1073' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='lib/iov_iter.c' line='1073' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iov_iter_alignment' mangled-name='iov_iter_alignment' filepath='lib/iov_iter.c' line='1322' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iov_iter_alignment'>
+        <parameter type-id='ab3e2665' name='i' filepath='lib/iov_iter.c' line='1322' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='iov_iter_bvec' mangled-name='iov_iter_bvec' filepath='lib/iov_iter.c' line='1197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iov_iter_bvec'>
+        <parameter type-id='4fa10f9e' name='i' filepath='lib/iov_iter.c' line='1197' column='1'/>
+        <parameter type-id='f0981eeb' name='direction' filepath='lib/iov_iter.c' line='1197' column='1'/>
+        <parameter type-id='15c9a01b' name='bvec' filepath='lib/iov_iter.c' line='1198' column='1'/>
+        <parameter type-id='7359adad' name='nr_segs' filepath='lib/iov_iter.c' line='1198' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/iov_iter.c' line='1199' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iov_iter_get_pages' mangled-name='iov_iter_get_pages' filepath='lib/iov_iter.c' line='1521' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iov_iter_get_pages'>
+        <parameter type-id='4fa10f9e' name='i' filepath='lib/iov_iter.c' line='1521' column='1'/>
+        <parameter type-id='9f93c9da' name='pages' filepath='lib/iov_iter.c' line='1522' column='1'/>
+        <parameter type-id='b59d7dce' name='maxsize' filepath='lib/iov_iter.c' line='1522' column='1'/>
+        <parameter type-id='f0981eeb' name='maxpages' filepath='lib/iov_iter.c' line='1522' column='1'/>
+        <parameter type-id='78c01427' name='start' filepath='lib/iov_iter.c' line='1523' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='iov_iter_init' mangled-name='iov_iter_init' filepath='lib/iov_iter.c' line='510' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iov_iter_init'>
+        <parameter type-id='4fa10f9e' name='i' filepath='lib/iov_iter.c' line='510' column='1'/>
+        <parameter type-id='f0981eeb' name='direction' filepath='lib/iov_iter.c' line='510' column='1'/>
+        <parameter type-id='2c556848' name='iov' filepath='lib/iov_iter.c' line='511' column='1'/>
+        <parameter type-id='7359adad' name='nr_segs' filepath='lib/iov_iter.c' line='511' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/iov_iter.c' line='512' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iov_iter_kvec' mangled-name='iov_iter_kvec' filepath='lib/iov_iter.c' line='1181' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iov_iter_kvec'>
+        <parameter type-id='4fa10f9e' name='i' filepath='lib/iov_iter.c' line='1181' column='1'/>
+        <parameter type-id='f0981eeb' name='direction' filepath='lib/iov_iter.c' line='1181' column='1'/>
+        <parameter type-id='5199c30d' name='kvec' filepath='lib/iov_iter.c' line='1182' column='1'/>
+        <parameter type-id='7359adad' name='nr_segs' filepath='lib/iov_iter.c' line='1182' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/iov_iter.c' line='1183' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iov_iter_revert' mangled-name='iov_iter_revert' filepath='lib/iov_iter.c' line='1093' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iov_iter_revert'>
+        <parameter type-id='4fa10f9e' name='i' filepath='lib/iov_iter.c' line='1093' column='1'/>
+        <parameter type-id='b59d7dce' name='unroll' filepath='lib/iov_iter.c' line='1093' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iov_iter_single_seg_count' mangled-name='iov_iter_single_seg_count' filepath='lib/iov_iter.c' line='1169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iov_iter_single_seg_count'>
+        <parameter type-id='ab3e2665' name='i' filepath='lib/iov_iter.c' line='1169' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='iov_iter_zero' mangled-name='iov_iter_zero' filepath='lib/iov_iter.c' line='952' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iov_iter_zero'>
+        <parameter type-id='b59d7dce' name='bytes' filepath='lib/iov_iter.c' line='952' column='1'/>
+        <parameter type-id='4fa10f9e' name='i' filepath='lib/iov_iter.c' line='952' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='iova_cache_get' mangled-name='iova_cache_get' filepath='drivers/iommu/iova.c' line='401' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iova_cache_get'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iova_cache_put' mangled-name='iova_cache_put' filepath='drivers/iommu/iova.c' line='433' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iova_cache_put'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ip6_find_1stfragopt' mangled-name='ip6_find_1stfragopt' filepath='net/ipv6/output_core.c' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ip6_find_1stfragopt'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv6/output_core.c' line='64' column='1'/>
+        <parameter type-id='1f37a7f4' name='nexthdr' filepath='net/ipv6/output_core.c' line='64' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ip6_local_out' mangled-name='ip6_local_out' filepath='net/ipv6/output_core.c' line='155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ip6_local_out'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv6/output_core.c' line='155' column='1'/>
+        <parameter type-id='f772df6d' name='sk' filepath='net/ipv6/output_core.c' line='155' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv6/output_core.c' line='155' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ip6_redirect' mangled-name='ip6_redirect' filepath='net/ipv6/route.c' line='3145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ip6_redirect'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv6/route.c' line='3145' column='1'/>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv6/route.c' line='3145' column='1'/>
+        <parameter type-id='95e97e5e' name='oif' filepath='net/ipv6/route.c' line='3145' column='1'/>
+        <parameter type-id='19c2251e' name='mark' filepath='net/ipv6/route.c' line='3145' column='1'/>
+        <parameter type-id='d80b72e6' name='uid' filepath='net/ipv6/route.c' line='3146' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ip6_route_me_harder' mangled-name='ip6_route_me_harder' filepath='net/ipv6/netfilter.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ip6_route_me_harder'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv6/netfilter.c' line='23' column='1'/>
+        <parameter type-id='f772df6d' name='sk_partial' filepath='net/ipv6/netfilter.c' line='23' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv6/netfilter.c' line='23' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ip6_route_output_flags' mangled-name='ip6_route_output_flags' filepath='net/ipv6/route.c' line='2633' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ip6_route_output_flags'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv6/route.c' line='2633' column='1'/>
+        <parameter type-id='78e7cf52' name='sk' filepath='net/ipv6/route.c' line='2634' column='1'/>
+        <parameter type-id='a99cde64' name='fl6' filepath='net/ipv6/route.c' line='2635' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='net/ipv6/route.c' line='2636' column='1'/>
+        <return type-id='141b6427'/>
+      </function-decl>
+      <function-decl name='ip6_update_pmtu' mangled-name='ip6_update_pmtu' filepath='net/ipv6/route.c' line='2930' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ip6_update_pmtu'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv6/route.c' line='2930' column='1'/>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv6/route.c' line='2930' column='1'/>
+        <parameter type-id='78a133c2' name='mtu' filepath='net/ipv6/route.c' line='2930' column='1'/>
+        <parameter type-id='95e97e5e' name='oif' filepath='net/ipv6/route.c' line='2931' column='1'/>
+        <parameter type-id='19c2251e' name='mark' filepath='net/ipv6/route.c' line='2931' column='1'/>
+        <parameter type-id='d80b72e6' name='uid' filepath='net/ipv6/route.c' line='2931' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ip6t_alloc_initial_table' mangled-name='ip6t_alloc_initial_table' filepath='net/ipv6/netfilter/ip6_tables.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ip6t_alloc_initial_table'>
+        <parameter type-id='e52e19bf' name='info' filepath='net/ipv6/netfilter/ip6_tables.c' line='40' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='ip6t_do_table' mangled-name='ip6t_do_table' filepath='net/ipv6/netfilter/ip6_tables.c' line='250' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ip6t_do_table'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv6/netfilter/ip6_tables.c' line='250' column='1'/>
+        <parameter type-id='309a5a26' name='state' filepath='net/ipv6/netfilter/ip6_tables.c' line='251' column='1'/>
+        <parameter type-id='95610bd4' name='table' filepath='net/ipv6/netfilter/ip6_tables.c' line='252' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='ip6t_register_table' mangled-name='ip6t_register_table' filepath='net/ipv6/netfilter/ip6_tables.c' line='1726' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ip6t_register_table'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv6/netfilter/ip6_tables.c' line='1726' column='1'/>
+        <parameter type-id='e52e19bf' name='table' filepath='net/ipv6/netfilter/ip6_tables.c' line='1726' column='1'/>
+        <parameter type-id='aef516a6' name='repl' filepath='net/ipv6/netfilter/ip6_tables.c' line='1727' column='1'/>
+        <parameter type-id='27db53a1' name='template_ops' filepath='net/ipv6/netfilter/ip6_tables.c' line='1728' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ip_compute_csum' mangled-name='ip_compute_csum' filepath='lib/checksum.c' line='142' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ip_compute_csum'>
+        <parameter type-id='eaa32e2f' name='buff' filepath='lib/checksum.c' line='142' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='lib/checksum.c' line='142' column='1'/>
+        <return type-id='7dac1e36'/>
+      </function-decl>
+      <function-decl name='ip_local_deliver' mangled-name='ip_local_deliver' filepath='net/ipv4/ip_input.c' line='240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ip_local_deliver'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv4/ip_input.c' line='240' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ip_local_out' mangled-name='ip_local_out' filepath='net/ipv4/ip_output.c' line='120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ip_local_out'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv4/ip_output.c' line='120' column='1'/>
+        <parameter type-id='f772df6d' name='sk' filepath='net/ipv4/ip_output.c' line='120' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv4/ip_output.c' line='120' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ip_route_me_harder' mangled-name='ip_route_me_harder' filepath='net/ipv4/netfilter.c' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ip_route_me_harder'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv4/netfilter.c' line='20' column='1'/>
+        <parameter type-id='f772df6d' name='sk' filepath='net/ipv4/netfilter.c' line='20' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv4/netfilter.c' line='20' column='1'/>
+        <parameter type-id='f0981eeb' name='addr_type' filepath='net/ipv4/netfilter.c' line='20' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ip_route_output_flow' mangled-name='ip_route_output_flow' filepath='net/ipv4/route.c' line='2879' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ip_route_output_flow'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv4/route.c' line='2879' column='1'/>
+        <parameter type-id='a198549e' name='flp4' filepath='net/ipv4/route.c' line='2879' column='1'/>
+        <parameter type-id='78e7cf52' name='sk' filepath='net/ipv4/route.c' line='2880' column='1'/>
+        <return type-id='c8f5869f'/>
+      </function-decl>
+      <function-decl name='ip_send_check' mangled-name='ip_send_check' filepath='net/ipv4/ip_output.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ip_send_check'>
+        <parameter type-id='53be694c' name='iph' filepath='net/ipv4/ip_output.c' line='92' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ipcomp_destroy' mangled-name='ipcomp_destroy' filepath='net/xfrm/xfrm_ipcomp.c' line='316' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ipcomp_destroy'>
+        <parameter type-id='328dda6e' name='x' filepath='net/xfrm/xfrm_ipcomp.c' line='316' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ipcomp_init_state' mangled-name='ipcomp_init_state' filepath='net/xfrm/xfrm_ipcomp.c' line='329' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ipcomp_init_state'>
+        <parameter type-id='328dda6e' name='x' filepath='net/xfrm/xfrm_ipcomp.c' line='329' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ipcomp_input' mangled-name='ipcomp_input' filepath='net/xfrm/xfrm_ipcomp.c' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ipcomp_input'>
+        <parameter type-id='328dda6e' name='x' filepath='net/xfrm/xfrm_ipcomp.c' line='97' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/xfrm/xfrm_ipcomp.c' line='97' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ipcomp_output' mangled-name='ipcomp_output' filepath='net/xfrm/xfrm_ipcomp.c' line='158' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ipcomp_output'>
+        <parameter type-id='328dda6e' name='x' filepath='net/xfrm/xfrm_ipcomp.c' line='158' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/xfrm/xfrm_ipcomp.c' line='158' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ipi_desc_get' mangled-name='ipi_desc_get' filepath='arch/arm64/kernel/smp.c' line='1152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ipi_desc_get'>
+        <return type-id='9d9a0573'/>
+      </function-decl>
+      <function-decl name='iput' mangled-name='iput' filepath='fs/inode.c' line='1675' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iput'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='1675' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ipv4_redirect' mangled-name='ipv4_redirect' filepath='net/ipv4/route.c' line='1169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ipv4_redirect'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv4/route.c' line='1169' column='1'/>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv4/route.c' line='1169' column='1'/>
+        <parameter type-id='95e97e5e' name='oif' filepath='net/ipv4/route.c' line='1170' column='1'/>
+        <parameter type-id='f9b06939' name='protocol' filepath='net/ipv4/route.c' line='1170' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ipv4_update_pmtu' mangled-name='ipv4_update_pmtu' filepath='net/ipv4/route.c' line='1077' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ipv4_update_pmtu'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv4/route.c' line='1077' column='1'/>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv4/route.c' line='1077' column='1'/>
+        <parameter type-id='19c2251e' name='mtu' filepath='net/ipv4/route.c' line='1077' column='1'/>
+        <parameter type-id='95e97e5e' name='oif' filepath='net/ipv4/route.c' line='1078' column='1'/>
+        <parameter type-id='f9b06939' name='protocol' filepath='net/ipv4/route.c' line='1078' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ipv6_chk_addr' mangled-name='ipv6_chk_addr' filepath='net/ipv6/addrconf.c' line='1897' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ipv6_chk_addr'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv6/addrconf.c' line='1897' column='1'/>
+        <parameter type-id='fea9c20b' name='addr' filepath='net/ipv6/addrconf.c' line='1897' column='1'/>
+        <parameter type-id='2ce52478' name='dev' filepath='net/ipv6/addrconf.c' line='1898' column='1'/>
+        <parameter type-id='95e97e5e' name='strict' filepath='net/ipv6/addrconf.c' line='1898' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ipv6_dev_get_saddr' mangled-name='ipv6_dev_get_saddr' filepath='net/ipv6/addrconf.c' line='1751' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ipv6_dev_get_saddr'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv6/addrconf.c' line='1751' column='1'/>
+        <parameter type-id='2ce52478' name='dst_dev' filepath='net/ipv6/addrconf.c' line='1751' column='1'/>
+        <parameter type-id='fea9c20b' name='daddr' filepath='net/ipv6/addrconf.c' line='1752' column='1'/>
+        <parameter type-id='f0981eeb' name='prefs' filepath='net/ipv6/addrconf.c' line='1752' column='1'/>
+        <parameter type-id='ed512028' name='saddr' filepath='net/ipv6/addrconf.c' line='1753' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ipv6_ext_hdr' mangled-name='ipv6_ext_hdr' filepath='net/ipv6/exthdrs_core.c' line='13' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ipv6_ext_hdr'>
+        <parameter type-id='f9b06939' name='nexthdr' filepath='net/ipv6/exthdrs_core.c' line='13' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='ipv6_find_hdr' mangled-name='ipv6_find_hdr' filepath='net/ipv6/exthdrs_core.c' line='188' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ipv6_find_hdr'>
+        <parameter type-id='11f4a000' name='skb' filepath='net/ipv6/exthdrs_core.c' line='188' column='1'/>
+        <parameter type-id='807869d3' name='offset' filepath='net/ipv6/exthdrs_core.c' line='188' column='1'/>
+        <parameter type-id='95e97e5e' name='target' filepath='net/ipv6/exthdrs_core.c' line='189' column='1'/>
+        <parameter type-id='e9e550dd' name='fragoff' filepath='net/ipv6/exthdrs_core.c' line='189' column='1'/>
+        <parameter type-id='7292109c' name='flags' filepath='net/ipv6/exthdrs_core.c' line='189' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ipv6_select_ident' mangled-name='ipv6_select_ident' filepath='net/ipv6/output_core.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ipv6_select_ident'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv6/output_core.c' line='53' column='1'/>
+        <parameter type-id='fea9c20b' name='daddr' filepath='net/ipv6/output_core.c' line='54' column='1'/>
+        <parameter type-id='fea9c20b' name='saddr' filepath='net/ipv6/output_core.c' line='55' column='1'/>
+        <return type-id='78a133c2'/>
+      </function-decl>
+      <function-decl name='ipv6_skip_exthdr' mangled-name='ipv6_skip_exthdr' filepath='net/ipv6/exthdrs_core.c' line='72' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ipv6_skip_exthdr'>
+        <parameter type-id='11f4a000' name='skb' filepath='net/ipv6/exthdrs_core.c' line='72' column='1'/>
+        <parameter type-id='95e97e5e' name='start' filepath='net/ipv6/exthdrs_core.c' line='72' column='1'/>
+        <parameter type-id='8bff8096' name='nexthdrp' filepath='net/ipv6/exthdrs_core.c' line='72' column='1'/>
+        <parameter type-id='769cf345' name='frag_offp' filepath='net/ipv6/exthdrs_core.c' line='73' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='ipv6_stub' type-id='ab989fa8' mangled-name='ipv6_stub' visibility='default' filepath='net/ipv6/addrconf_core.c' line='207' column='1' elf-symbol-id='ipv6_stub'/>
+      <function-decl name='ir_raw_event_handle' mangled-name='ir_raw_event_handle' filepath='drivers/media/rc/rc-ir-raw.c' line='229' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ir_raw_event_handle'>
+        <parameter type-id='75ae4804' name='dev' filepath='drivers/media/rc/rc-ir-raw.c' line='229' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ir_raw_event_store' mangled-name='ir_raw_event_store' filepath='drivers/media/rc/rc-ir-raw.c' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ir_raw_event_store'>
+        <parameter type-id='75ae4804' name='dev' filepath='drivers/media/rc/rc-ir-raw.c' line='74' column='1'/>
+        <parameter type-id='4a06e68e' name='ev' filepath='drivers/media/rc/rc-ir-raw.c' line='74' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ir_raw_event_store_edge' mangled-name='ir_raw_event_store_edge' filepath='drivers/media/rc/rc-ir-raw.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ir_raw_event_store_edge'>
+        <parameter type-id='75ae4804' name='dev' filepath='drivers/media/rc/rc-ir-raw.c' line='102' column='1'/>
+        <parameter type-id='b50a4934' name='pulse' filepath='drivers/media/rc/rc-ir-raw.c' line='102' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ir_raw_gen_manchester' mangled-name='ir_raw_gen_manchester' filepath='drivers/media/rc/rc-ir-raw.c' line='318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ir_raw_gen_manchester'>
+        <parameter type-id='2cdd142c' name='ev' filepath='drivers/media/rc/rc-ir-raw.c' line='318' column='1'/>
+        <parameter type-id='f0981eeb' name='max' filepath='drivers/media/rc/rc-ir-raw.c' line='318' column='1'/>
+        <parameter type-id='dc0b2825' name='timings' filepath='drivers/media/rc/rc-ir-raw.c' line='319' column='1'/>
+        <parameter type-id='f0981eeb' name='n' filepath='drivers/media/rc/rc-ir-raw.c' line='320' column='1'/>
+        <parameter type-id='91ce1af9' name='data' filepath='drivers/media/rc/rc-ir-raw.c' line='320' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ir_raw_gen_pd' mangled-name='ir_raw_gen_pd' filepath='drivers/media/rc/rc-ir-raw.c' line='400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ir_raw_gen_pd'>
+        <parameter type-id='2cdd142c' name='ev' filepath='drivers/media/rc/rc-ir-raw.c' line='400' column='1'/>
+        <parameter type-id='f0981eeb' name='max' filepath='drivers/media/rc/rc-ir-raw.c' line='400' column='1'/>
+        <parameter type-id='20e3ee03' name='timings' filepath='drivers/media/rc/rc-ir-raw.c' line='401' column='1'/>
+        <parameter type-id='f0981eeb' name='n' filepath='drivers/media/rc/rc-ir-raw.c' line='402' column='1'/>
+        <parameter type-id='91ce1af9' name='data' filepath='drivers/media/rc/rc-ir-raw.c' line='402' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ir_raw_gen_pl' mangled-name='ir_raw_gen_pl' filepath='drivers/media/rc/rc-ir-raw.c' line='459' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ir_raw_gen_pl'>
+        <parameter type-id='2cdd142c' name='ev' filepath='drivers/media/rc/rc-ir-raw.c' line='459' column='1'/>
+        <parameter type-id='f0981eeb' name='max' filepath='drivers/media/rc/rc-ir-raw.c' line='459' column='1'/>
+        <parameter type-id='00d033eb' name='timings' filepath='drivers/media/rc/rc-ir-raw.c' line='460' column='1'/>
+        <parameter type-id='f0981eeb' name='n' filepath='drivers/media/rc/rc-ir-raw.c' line='461' column='1'/>
+        <parameter type-id='91ce1af9' name='data' filepath='drivers/media/rc/rc-ir-raw.c' line='461' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ir_raw_handler_register' mangled-name='ir_raw_handler_register' filepath='drivers/media/rc/rc-ir-raw.c' line='692' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ir_raw_handler_register'>
+        <parameter type-id='55cfdcaa' name='ir_raw_handler' filepath='drivers/media/rc/rc-ir-raw.c' line='692' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ir_raw_handler_unregister' mangled-name='ir_raw_handler_unregister' filepath='drivers/media/rc/rc-ir-raw.c' line='703' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ir_raw_handler_unregister'>
+        <parameter type-id='55cfdcaa' name='ir_raw_handler' filepath='drivers/media/rc/rc-ir-raw.c' line='703' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='irq_check_status_bit' mangled-name='irq_check_status_bit' filepath='kernel/irq/manage.c' line='2931' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_check_status_bit'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/manage.c' line='2931' column='1'/>
+        <parameter type-id='f0981eeb' name='bitmask' filepath='kernel/irq/manage.c' line='2931' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='irq_chip_ack_parent' mangled-name='irq_chip_ack_parent' filepath='kernel/irq/chip.c' line='1383' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_chip_ack_parent'>
+        <parameter type-id='1c475548' name='data' filepath='kernel/irq/chip.c' line='1383' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='irq_chip_disable_parent' mangled-name='irq_chip_disable_parent' filepath='kernel/irq/chip.c' line='1369' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_chip_disable_parent'>
+        <parameter type-id='1c475548' name='data' filepath='kernel/irq/chip.c' line='1369' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='irq_chip_enable_parent' mangled-name='irq_chip_enable_parent' filepath='kernel/irq/chip.c' line='1354' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_chip_enable_parent'>
+        <parameter type-id='1c475548' name='data' filepath='kernel/irq/chip.c' line='1354' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='irq_chip_eoi_parent' mangled-name='irq_chip_eoi_parent' filepath='kernel/irq/chip.c' line='1427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_chip_eoi_parent'>
+        <parameter type-id='1c475548' name='data' filepath='kernel/irq/chip.c' line='1427' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='irq_chip_get_parent_state' mangled-name='irq_chip_get_parent_state' filepath='kernel/irq/chip.c' line='1336' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_chip_get_parent_state'>
+        <parameter type-id='1c475548' name='data' filepath='kernel/irq/chip.c' line='1336' column='1'/>
+        <parameter type-id='0187da1b' name='which' filepath='kernel/irq/chip.c' line='1337' column='1'/>
+        <parameter type-id='d8e6b335' name='state' filepath='kernel/irq/chip.c' line='1338' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_chip_mask_parent' mangled-name='irq_chip_mask_parent' filepath='kernel/irq/chip.c' line='1394' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_chip_mask_parent'>
+        <parameter type-id='1c475548' name='data' filepath='kernel/irq/chip.c' line='1394' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='irq_chip_retrigger_hierarchy' mangled-name='irq_chip_retrigger_hierarchy' filepath='kernel/irq/chip.c' line='1478' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_chip_retrigger_hierarchy'>
+        <parameter type-id='1c475548' name='data' filepath='kernel/irq/chip.c' line='1478' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_chip_set_affinity_parent' mangled-name='irq_chip_set_affinity_parent' filepath='kernel/irq/chip.c' line='1442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_chip_set_affinity_parent'>
+        <parameter type-id='1c475548' name='data' filepath='kernel/irq/chip.c' line='1442' column='1'/>
+        <parameter type-id='5f8a1ac4' name='dest' filepath='kernel/irq/chip.c' line='1443' column='1'/>
+        <parameter type-id='b50a4934' name='force' filepath='kernel/irq/chip.c' line='1443' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_chip_set_parent_state' mangled-name='irq_chip_set_parent_state' filepath='kernel/irq/chip.c' line='1314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_chip_set_parent_state'>
+        <parameter type-id='1c475548' name='data' filepath='kernel/irq/chip.c' line='1314' column='1'/>
+        <parameter type-id='0187da1b' name='which' filepath='kernel/irq/chip.c' line='1315' column='1'/>
+        <parameter type-id='b50a4934' name='val' filepath='kernel/irq/chip.c' line='1316' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_chip_set_type_parent' mangled-name='irq_chip_set_type_parent' filepath='kernel/irq/chip.c' line='1460' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_chip_set_type_parent'>
+        <parameter type-id='1c475548' name='data' filepath='kernel/irq/chip.c' line='1460' column='1'/>
+        <parameter type-id='f0981eeb' name='type' filepath='kernel/irq/chip.c' line='1460' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_chip_set_vcpu_affinity_parent' mangled-name='irq_chip_set_vcpu_affinity_parent' filepath='kernel/irq/chip.c' line='1493' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_chip_set_vcpu_affinity_parent'>
+        <parameter type-id='1c475548' name='data' filepath='kernel/irq/chip.c' line='1493' column='1'/>
+        <parameter type-id='eaa32e2f' name='vcpu_info' filepath='kernel/irq/chip.c' line='1493' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_chip_set_wake_parent' mangled-name='irq_chip_set_wake_parent' filepath='kernel/irq/chip.c' line='1509' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_chip_set_wake_parent'>
+        <parameter type-id='1c475548' name='data' filepath='kernel/irq/chip.c' line='1509' column='1'/>
+        <parameter type-id='f0981eeb' name='on' filepath='kernel/irq/chip.c' line='1509' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_chip_unmask_parent' mangled-name='irq_chip_unmask_parent' filepath='kernel/irq/chip.c' line='1416' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_chip_unmask_parent'>
+        <parameter type-id='1c475548' name='data' filepath='kernel/irq/chip.c' line='1416' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='irq_create_fwspec_mapping' mangled-name='irq_create_fwspec_mapping' filepath='kernel/irq/irqdomain.c' line='810' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_create_fwspec_mapping'>
+        <parameter type-id='2869bb38' name='fwspec' filepath='kernel/irq/irqdomain.c' line='810' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='irq_create_mapping_affinity' mangled-name='irq_create_mapping_affinity' filepath='kernel/irq/irqdomain.c' line='748' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_create_mapping_affinity'>
+        <parameter type-id='7544e824' name='domain' filepath='kernel/irq/irqdomain.c' line='748' column='1'/>
+        <parameter type-id='88370ce9' name='hwirq' filepath='kernel/irq/irqdomain.c' line='749' column='1'/>
+        <parameter type-id='07779cd9' name='affinity' filepath='kernel/irq/irqdomain.c' line='750' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='irq_create_of_mapping' mangled-name='irq_create_of_mapping' filepath='kernel/irq/irqdomain.c' line='908' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_create_of_mapping'>
+        <parameter type-id='51a94113' name='irq_data' filepath='kernel/irq/irqdomain.c' line='908' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='irq_dispose_mapping' mangled-name='irq_dispose_mapping' filepath='kernel/irq/irqdomain.c' line='923' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_dispose_mapping'>
+        <parameter type-id='f0981eeb' name='virq' filepath='kernel/irq/irqdomain.c' line='923' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='irq_do_set_affinity' mangled-name='irq_do_set_affinity' filepath='kernel/irq/manage.c' line='220' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_do_set_affinity'>
+        <parameter type-id='1c475548' name='data' filepath='kernel/irq/manage.c' line='220' column='1'/>
+        <parameter type-id='5f8a1ac4' name='mask' filepath='kernel/irq/manage.c' line='220' column='1'/>
+        <parameter type-id='b50a4934' name='force' filepath='kernel/irq/manage.c' line='221' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_domain_add_legacy' mangled-name='irq_domain_add_legacy' filepath='kernel/irq/irqdomain.c' line='392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_domain_add_legacy'>
+        <parameter type-id='9a537bbe' name='of_node' filepath='kernel/irq/irqdomain.c' line='392' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='kernel/irq/irqdomain.c' line='393' column='1'/>
+        <parameter type-id='f0981eeb' name='first_irq' filepath='kernel/irq/irqdomain.c' line='394' column='1'/>
+        <parameter type-id='88370ce9' name='first_hwirq' filepath='kernel/irq/irqdomain.c' line='395' column='1'/>
+        <parameter type-id='2c202856' name='ops' filepath='kernel/irq/irqdomain.c' line='396' column='1'/>
+        <parameter type-id='eaa32e2f' name='host_data' filepath='kernel/irq/irqdomain.c' line='397' column='1'/>
+        <return type-id='7544e824'/>
+      </function-decl>
+      <function-decl name='irq_domain_alloc_irqs_parent' mangled-name='irq_domain_alloc_irqs_parent' filepath='kernel/irq/irqdomain.c' line='1782' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_domain_alloc_irqs_parent'>
+        <parameter type-id='7544e824' name='domain' filepath='kernel/irq/irqdomain.c' line='1782' column='1'/>
+        <parameter type-id='f0981eeb' name='irq_base' filepath='kernel/irq/irqdomain.c' line='1783' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_irqs' filepath='kernel/irq/irqdomain.c' line='1783' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='kernel/irq/irqdomain.c' line='1784' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_domain_associate_many' mangled-name='irq_domain_associate_many' filepath='kernel/irq/irqdomain.c' line='650' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_domain_associate_many'>
+        <parameter type-id='7544e824' name='domain' filepath='kernel/irq/irqdomain.c' line='650' column='1'/>
+        <parameter type-id='f0981eeb' name='irq_base' filepath='kernel/irq/irqdomain.c' line='650' column='1'/>
+        <parameter type-id='88370ce9' name='hwirq_base' filepath='kernel/irq/irqdomain.c' line='651' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='kernel/irq/irqdomain.c' line='651' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='irq_domain_create_hierarchy' mangled-name='irq_domain_create_hierarchy' filepath='kernel/irq/irqdomain.c' line='1152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_domain_create_hierarchy'>
+        <parameter type-id='7544e824' name='parent' filepath='kernel/irq/irqdomain.c' line='1152' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='kernel/irq/irqdomain.c' line='1153' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='kernel/irq/irqdomain.c' line='1154' column='1'/>
+        <parameter type-id='4a935625' name='fwnode' filepath='kernel/irq/irqdomain.c' line='1155' column='1'/>
+        <parameter type-id='2c202856' name='ops' filepath='kernel/irq/irqdomain.c' line='1156' column='1'/>
+        <parameter type-id='eaa32e2f' name='host_data' filepath='kernel/irq/irqdomain.c' line='1157' column='1'/>
+        <return type-id='7544e824'/>
+      </function-decl>
+      <function-decl name='irq_domain_disconnect_hierarchy' mangled-name='irq_domain_disconnect_hierarchy' filepath='kernel/irq/irqdomain.c' line='1269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_domain_disconnect_hierarchy'>
+        <parameter type-id='7544e824' name='domain' filepath='kernel/irq/irqdomain.c' line='1269' column='1'/>
+        <parameter type-id='f0981eeb' name='virq' filepath='kernel/irq/irqdomain.c' line='1270' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_domain_free_irqs_common' mangled-name='irq_domain_free_irqs_common' filepath='kernel/irq/irqdomain.c' line='1428' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_domain_free_irqs_common'>
+        <parameter type-id='7544e824' name='domain' filepath='kernel/irq/irqdomain.c' line='1428' column='1'/>
+        <parameter type-id='f0981eeb' name='virq' filepath='kernel/irq/irqdomain.c' line='1428' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_irqs' filepath='kernel/irq/irqdomain.c' line='1429' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='irq_domain_free_irqs_parent' mangled-name='irq_domain_free_irqs_parent' filepath='kernel/irq/irqdomain.c' line='1800' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_domain_free_irqs_parent'>
+        <parameter type-id='7544e824' name='domain' filepath='kernel/irq/irqdomain.c' line='1800' column='1'/>
+        <parameter type-id='f0981eeb' name='irq_base' filepath='kernel/irq/irqdomain.c' line='1801' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_irqs' filepath='kernel/irq/irqdomain.c' line='1801' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='irq_domain_get_irq_data' mangled-name='irq_domain_get_irq_data' filepath='kernel/irq/irqdomain.c' line='1361' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_domain_get_irq_data'>
+        <parameter type-id='7544e824' name='domain' filepath='kernel/irq/irqdomain.c' line='1361' column='1'/>
+        <parameter type-id='f0981eeb' name='virq' filepath='kernel/irq/irqdomain.c' line='1362' column='1'/>
+        <return type-id='1c475548'/>
+      </function-decl>
+      <function-decl name='irq_domain_remove' mangled-name='irq_domain_remove' filepath='kernel/irq/irqdomain.c' line='272' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_domain_remove'>
+        <parameter type-id='7544e824' name='domain' filepath='kernel/irq/irqdomain.c' line='272' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='irq_domain_set_hwirq_and_chip' mangled-name='irq_domain_set_hwirq_and_chip' filepath='kernel/irq/irqdomain.c' line='1383' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_domain_set_hwirq_and_chip'>
+        <parameter type-id='7544e824' name='domain' filepath='kernel/irq/irqdomain.c' line='1383' column='1'/>
+        <parameter type-id='f0981eeb' name='virq' filepath='kernel/irq/irqdomain.c' line='1383' column='1'/>
+        <parameter type-id='88370ce9' name='hwirq' filepath='kernel/irq/irqdomain.c' line='1384' column='1'/>
+        <parameter type-id='8846a616' name='chip' filepath='kernel/irq/irqdomain.c' line='1384' column='1'/>
+        <parameter type-id='eaa32e2f' name='chip_data' filepath='kernel/irq/irqdomain.c' line='1385' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_domain_set_info' mangled-name='irq_domain_set_info' filepath='kernel/irq/irqdomain.c' line='1411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_domain_set_info'>
+        <parameter type-id='7544e824' name='domain' filepath='kernel/irq/irqdomain.c' line='1411' column='1'/>
+        <parameter type-id='f0981eeb' name='virq' filepath='kernel/irq/irqdomain.c' line='1411' column='1'/>
+        <parameter type-id='88370ce9' name='hwirq' filepath='kernel/irq/irqdomain.c' line='1412' column='1'/>
+        <parameter type-id='8846a616' name='chip' filepath='kernel/irq/irqdomain.c' line='1412' column='1'/>
+        <parameter type-id='eaa32e2f' name='chip_data' filepath='kernel/irq/irqdomain.c' line='1413' column='1'/>
+        <parameter type-id='cdb741d3' name='handler' filepath='kernel/irq/irqdomain.c' line='1413' column='1'/>
+        <parameter type-id='eaa32e2f' name='handler_data' filepath='kernel/irq/irqdomain.c' line='1414' column='1'/>
+        <parameter type-id='80f4b756' name='handler_name' filepath='kernel/irq/irqdomain.c' line='1414' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='irq_domain_simple_ops' type-id='a4974438' mangled-name='irq_domain_simple_ops' visibility='default' filepath='kernel/irq/irqdomain.c' line='1058' column='1' elf-symbol-id='irq_domain_simple_ops'/>
+      <function-decl name='irq_domain_update_bus_token' mangled-name='irq_domain_update_bus_token' filepath='kernel/irq/irqdomain.c' line='299' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_domain_update_bus_token'>
+        <parameter type-id='7544e824' name='domain' filepath='kernel/irq/irqdomain.c' line='299' column='1'/>
+        <parameter type-id='385b8018' name='bus_token' filepath='kernel/irq/irqdomain.c' line='300' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='irq_domain_xlate_onecell' mangled-name='irq_domain_xlate_onecell' filepath='kernel/irq/irqdomain.c' line='1001' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_domain_xlate_onecell'>
+        <parameter type-id='7544e824' name='d' filepath='kernel/irq/irqdomain.c' line='1001' column='1'/>
+        <parameter type-id='9a537bbe' name='ctrlr' filepath='kernel/irq/irqdomain.c' line='1001' column='1'/>
+        <parameter type-id='aded214c' name='intspec' filepath='kernel/irq/irqdomain.c' line='1002' column='1'/>
+        <parameter type-id='f0981eeb' name='intsize' filepath='kernel/irq/irqdomain.c' line='1002' column='1'/>
+        <parameter type-id='1d2c2b85' name='out_hwirq' filepath='kernel/irq/irqdomain.c' line='1003' column='1'/>
+        <parameter type-id='807869d3' name='out_type' filepath='kernel/irq/irqdomain.c' line='1003' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_domain_xlate_onetwocell' mangled-name='irq_domain_xlate_onetwocell' filepath='kernel/irq/irqdomain.c' line='1042' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_domain_xlate_onetwocell'>
+        <parameter type-id='7544e824' name='d' filepath='kernel/irq/irqdomain.c' line='1042' column='1'/>
+        <parameter type-id='9a537bbe' name='ctrlr' filepath='kernel/irq/irqdomain.c' line='1043' column='1'/>
+        <parameter type-id='aded214c' name='intspec' filepath='kernel/irq/irqdomain.c' line='1044' column='1'/>
+        <parameter type-id='f0981eeb' name='intsize' filepath='kernel/irq/irqdomain.c' line='1044' column='1'/>
+        <parameter type-id='1d2c2b85' name='out_hwirq' filepath='kernel/irq/irqdomain.c' line='1045' column='1'/>
+        <parameter type-id='807869d3' name='out_type' filepath='kernel/irq/irqdomain.c' line='1045' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_domain_xlate_twocell' mangled-name='irq_domain_xlate_twocell' filepath='kernel/irq/irqdomain.c' line='1020' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_domain_xlate_twocell'>
+        <parameter type-id='7544e824' name='d' filepath='kernel/irq/irqdomain.c' line='1020' column='1'/>
+        <parameter type-id='9a537bbe' name='ctrlr' filepath='kernel/irq/irqdomain.c' line='1020' column='1'/>
+        <parameter type-id='aded214c' name='intspec' filepath='kernel/irq/irqdomain.c' line='1021' column='1'/>
+        <parameter type-id='f0981eeb' name='intsize' filepath='kernel/irq/irqdomain.c' line='1021' column='1'/>
+        <parameter type-id='ebc26324' name='out_hwirq' filepath='kernel/irq/irqdomain.c' line='1022' column='1'/>
+        <parameter type-id='807869d3' name='out_type' filepath='kernel/irq/irqdomain.c' line='1022' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_find_matching_fwspec' mangled-name='irq_find_matching_fwspec' filepath='kernel/irq/irqdomain.c' line='426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_find_matching_fwspec'>
+        <parameter type-id='2869bb38' name='fwspec' filepath='kernel/irq/irqdomain.c' line='426' column='1'/>
+        <parameter type-id='385b8018' name='bus_token' filepath='kernel/irq/irqdomain.c' line='427' column='1'/>
+        <return type-id='7544e824'/>
+      </function-decl>
+      <function-decl name='irq_force_affinity' mangled-name='irq_force_affinity' filepath='kernel/irq/manage.c' line='499' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_force_affinity'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/manage.c' line='499' column='1'/>
+        <parameter type-id='5f8a1ac4' name='cpumask' filepath='kernel/irq/manage.c' line='499' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_gc_ack_set_bit' mangled-name='irq_gc_ack_set_bit' filepath='kernel/irq/generic-chip.c' line='111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_gc_ack_set_bit'>
+        <parameter type-id='1c475548' name='d' filepath='kernel/irq/generic-chip.c' line='111' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='irq_gc_mask_clr_bit' mangled-name='irq_gc_mask_clr_bit' filepath='kernel/irq/generic-chip.c' line='75' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_gc_mask_clr_bit'>
+        <parameter type-id='1c475548' name='d' filepath='kernel/irq/generic-chip.c' line='75' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='irq_gc_mask_set_bit' mangled-name='irq_gc_mask_set_bit' filepath='kernel/irq/generic-chip.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_gc_mask_set_bit'>
+        <parameter type-id='1c475548' name='d' filepath='kernel/irq/generic-chip.c' line='55' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='irq_generic_chip_ops' type-id='0926e4bd' mangled-name='irq_generic_chip_ops' visibility='default' filepath='kernel/irq/generic-chip.c' line='451' column='1' elf-symbol-id='irq_generic_chip_ops'/>
+      <function-decl name='irq_get_domain_generic_chip' mangled-name='irq_get_domain_generic_chip' filepath='kernel/irq/generic-chip.c' line='363' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_get_domain_generic_chip'>
+        <parameter type-id='7544e824' name='d' filepath='kernel/irq/generic-chip.c' line='363' column='1'/>
+        <parameter type-id='f0981eeb' name='hw_irq' filepath='kernel/irq/generic-chip.c' line='363' column='1'/>
+        <return type-id='e53d7a90'/>
+      </function-decl>
+      <function-decl name='irq_get_irq_data' mangled-name='irq_get_irq_data' filepath='kernel/irq/chip.c' line='159' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_get_irq_data'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/chip.c' line='159' column='1'/>
+        <return type-id='1c475548'/>
+      </function-decl>
+      <function-decl name='irq_get_irqchip_state' mangled-name='irq_get_irqchip_state' filepath='kernel/irq/manage.c' line='2835' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_get_irqchip_state'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/manage.c' line='2835' column='1'/>
+        <parameter type-id='0187da1b' name='which' filepath='kernel/irq/manage.c' line='2835' column='1'/>
+        <parameter type-id='d8e6b335' name='state' filepath='kernel/irq/manage.c' line='2836' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_modify_status' mangled-name='irq_modify_status' filepath='kernel/irq/chip.c' line='1101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_modify_status'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/chip.c' line='1101' column='1'/>
+        <parameter type-id='7359adad' name='clr' filepath='kernel/irq/chip.c' line='1101' column='1'/>
+        <parameter type-id='7359adad' name='set' filepath='kernel/irq/chip.c' line='1101' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='irq_of_parse_and_map' mangled-name='irq_of_parse_and_map' filepath='drivers/of/irq.c' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_of_parse_and_map'>
+        <parameter type-id='9a537bbe' name='dev' filepath='drivers/of/irq.c' line='36' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/of/irq.c' line='36' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='irq_set_affinity' mangled-name='irq_set_affinity' filepath='kernel/irq/manage.c' line='482' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_set_affinity'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/manage.c' line='482' column='1'/>
+        <parameter type-id='5f8a1ac4' name='cpumask' filepath='kernel/irq/manage.c' line='482' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_set_affinity_hint' mangled-name='irq_set_affinity_hint' filepath='kernel/irq/manage.c' line='505' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_set_affinity_hint'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/manage.c' line='505' column='1'/>
+        <parameter type-id='5f8a1ac4' name='m' filepath='kernel/irq/manage.c' line='505' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_set_affinity_notifier' mangled-name='irq_set_affinity_notifier' filepath='kernel/irq/manage.c' line='558' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_set_affinity_notifier'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/manage.c' line='558' column='1'/>
+        <parameter type-id='7ca8e198' name='notify' filepath='kernel/irq/manage.c' line='558' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_set_chained_handler_and_data' mangled-name='irq_set_chained_handler_and_data' filepath='kernel/irq/chip.c' line='1076' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_set_chained_handler_and_data'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/chip.c' line='1076' column='1'/>
+        <parameter type-id='cdb741d3' name='handle' filepath='kernel/irq/chip.c' line='1076' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='kernel/irq/chip.c' line='1077' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='irq_set_chip' mangled-name='irq_set_chip' filepath='kernel/irq/chip.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_set_chip'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/chip.c' line='42' column='1'/>
+        <parameter type-id='8846a616' name='chip' filepath='kernel/irq/chip.c' line='42' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_set_chip_and_handler_name' mangled-name='irq_set_chip_and_handler_name' filepath='kernel/irq/chip.c' line='1093' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_set_chip_and_handler_name'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/chip.c' line='1093' column='1'/>
+        <parameter type-id='8846a616' name='chip' filepath='kernel/irq/chip.c' line='1093' column='1'/>
+        <parameter type-id='cdb741d3' name='handle' filepath='kernel/irq/chip.c' line='1094' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/irq/chip.c' line='1094' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='irq_set_chip_data' mangled-name='irq_set_chip_data' filepath='kernel/irq/chip.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_set_chip_data'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/chip.c' line='146' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='kernel/irq/chip.c' line='146' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_set_handler_data' mangled-name='irq_set_handler_data' filepath='kernel/irq/chip.c' line='91' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_set_handler_data'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/chip.c' line='91' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='kernel/irq/chip.c' line='91' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_set_irq_type' mangled-name='irq_set_irq_type' filepath='kernel/irq/chip.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_set_irq_type'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/chip.c' line='69' column='1'/>
+        <parameter type-id='f0981eeb' name='type' filepath='kernel/irq/chip.c' line='69' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_set_irq_wake' mangled-name='irq_set_irq_wake' filepath='kernel/irq/manage.c' line='888' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_set_irq_wake'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/manage.c' line='888' column='1'/>
+        <parameter type-id='f0981eeb' name='on' filepath='kernel/irq/manage.c' line='888' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_set_irqchip_state' mangled-name='irq_set_irqchip_state' filepath='kernel/irq/manage.c' line='2868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_set_irqchip_state'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/manage.c' line='2868' column='1'/>
+        <parameter type-id='0187da1b' name='which' filepath='kernel/irq/manage.c' line='2868' column='1'/>
+        <parameter type-id='b50a4934' name='val' filepath='kernel/irq/manage.c' line='2869' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_set_parent' mangled-name='irq_set_parent' filepath='kernel/irq/manage.c' line='1011' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_set_parent'>
+        <parameter type-id='95e97e5e' name='irq' filepath='kernel/irq/manage.c' line='1011' column='1'/>
+        <parameter type-id='95e97e5e' name='parent_irq' filepath='kernel/irq/manage.c' line='1011' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='irq_setup_alt_chip' mangled-name='irq_setup_alt_chip' filepath='kernel/irq/generic-chip.c' line='515' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_setup_alt_chip'>
+        <parameter type-id='1c475548' name='d' filepath='kernel/irq/generic-chip.c' line='515' column='1'/>
+        <parameter type-id='f0981eeb' name='type' filepath='kernel/irq/generic-chip.c' line='515' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='irq_stat' type-id='715fcff2' mangled-name='irq_stat' visibility='default' filepath='kernel/softirq.c' line='58' column='1' elf-symbol-id='irq_stat'/>
+      <function-decl name='irq_to_desc' mangled-name='irq_to_desc' filepath='kernel/irq/irqdesc.c' line='354' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_to_desc'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/irqdesc.c' line='354' column='1'/>
+        <return type-id='76c7d88b'/>
+      </function-decl>
+      <function-decl name='irq_work_queue' mangled-name='irq_work_queue' filepath='kernel/irq_work.c' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_work_queue'>
+        <parameter type-id='44bef697' name='work' filepath='kernel/irq_work.c' line='67' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='irq_work_queue_on' mangled-name='irq_work_queue_on' filepath='kernel/irq_work.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_work_queue_on'>
+        <parameter type-id='44bef697' name='work' filepath='kernel/irq_work.c' line='88' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/irq_work.c' line='88' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='irq_work_run' mangled-name='irq_work_run' filepath='kernel/irq_work.c' line='184' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_work_run'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='irq_work_sync' mangled-name='irq_work_sync' filepath='kernel/irq_work.c' line='204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_work_sync'>
+        <parameter type-id='44bef697' name='work' filepath='kernel/irq_work.c' line='204' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='irqchip_fwnode_ops' type-id='2eb8da02' mangled-name='irqchip_fwnode_ops' visibility='default' filepath='kernel/irq/irqdomain.c' line='55' column='1' elf-symbol-id='irqchip_fwnode_ops'/>
+      <function-decl name='is_ashmem_file' mangled-name='is_ashmem_file' filepath='drivers/staging/android/ashmem.c' line='940' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='is_ashmem_file'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/staging/android/ashmem.c' line='940' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='is_bad_inode' mangled-name='is_bad_inode' filepath='fs/bad_inode.c' line='233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='is_bad_inode'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/bad_inode.c' line='233' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='is_console_locked' mangled-name='is_console_locked' filepath='kernel/printk/printk.c' line='2603' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='is_console_locked'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='is_dma_buf_file' mangled-name='is_dma_buf_file' filepath='drivers/dma-buf/dma-buf.c' line='479' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='is_dma_buf_file'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/dma-buf/dma-buf.c' line='479' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='is_virtio_device' mangled-name='is_virtio_device' filepath='drivers/virtio/virtio.c' line='439' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='is_virtio_device'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/virtio/virtio.c' line='439' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='is_vmalloc_addr' mangled-name='is_vmalloc_addr' filepath='mm/vmalloc.c' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='is_vmalloc_addr'>
+        <parameter type-id='eaa32e2f' name='x' filepath='mm/vmalloc.c' line='74' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='isolate_and_split_free_page' mangled-name='isolate_and_split_free_page' filepath='mm/compaction.c' line='767' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='isolate_and_split_free_page'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/compaction.c' line='767' column='1'/>
+        <parameter type-id='e84b031a' name='list' filepath='mm/compaction.c' line='768' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='isolate_anon_lru_page' mangled-name='isolate_anon_lru_page' filepath='mm/page_alloc.c' line='598' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='isolate_anon_lru_page'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/page_alloc.c' line='598' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iter_file_splice_write' mangled-name='iter_file_splice_write' filepath='fs/splice.c' line='618' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iter_file_splice_write'>
+        <parameter type-id='15d29710' name='pipe' filepath='fs/splice.c' line='618' column='1'/>
+        <parameter type-id='77e79a4b' name='out' filepath='fs/splice.c' line='618' column='1'/>
+        <parameter type-id='b53e8dbb' name='ppos' filepath='fs/splice.c' line='619' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='fs/splice.c' line='619' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='fs/splice.c' line='619' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='iterate_dir' mangled-name='iterate_dir' filepath='fs/readdir.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iterate_dir'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/readdir.c' line='40' column='1'/>
+        <parameter type-id='b80a6036' name='ctx' filepath='fs/readdir.c' line='40' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iterate_fd' mangled-name='iterate_fd' filepath='fs/file.c' line='1325' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iterate_fd'>
+        <parameter type-id='16c53416' name='files' filepath='fs/file.c' line='1325' column='1'/>
+        <parameter type-id='f0981eeb' name='n' filepath='fs/file.c' line='1325' column='1'/>
+        <parameter type-id='d092647b' name='f' filepath='fs/file.c' line='1326' column='1'/>
+        <parameter type-id='eaa32e2f' name='p' filepath='fs/file.c' line='1327' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iterate_supers_type' mangled-name='iterate_supers_type' filepath='fs/super.c' line='727' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iterate_supers_type'>
+        <parameter type-id='21e53d44' name='type' filepath='fs/super.c' line='727' column='1'/>
+        <parameter type-id='46530b39' name='f' filepath='fs/super.c' line='728' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='fs/super.c' line='728' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='iunique' mangled-name='iunique' filepath='fs/inode.c' line='1277' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iunique'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/inode.c' line='1277' column='1'/>
+        <parameter type-id='2aa75eef' name='max_reserved' filepath='fs/inode.c' line='1277' column='1'/>
+        <return type-id='2aa75eef'/>
+      </function-decl>
+      <function-decl name='iw_handler_get_spy' mangled-name='iw_handler_get_spy' filepath='net/wireless/wext-spy.c' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iw_handler_get_spy'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/wireless/wext-spy.c' line='74' column='1'/>
+        <parameter type-id='4780e252' name='info' filepath='net/wireless/wext-spy.c' line='75' column='1'/>
+        <parameter type-id='00e2a7ce' name='wrqu' filepath='net/wireless/wext-spy.c' line='76' column='1'/>
+        <parameter type-id='26a90f95' name='extra' filepath='net/wireless/wext-spy.c' line='77' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iw_handler_get_thrspy' mangled-name='iw_handler_get_thrspy' filepath='net/wireless/wext-spy.c' line='137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iw_handler_get_thrspy'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/wireless/wext-spy.c' line='137' column='1'/>
+        <parameter type-id='4780e252' name='info' filepath='net/wireless/wext-spy.c' line='138' column='1'/>
+        <parameter type-id='00e2a7ce' name='wrqu' filepath='net/wireless/wext-spy.c' line='139' column='1'/>
+        <parameter type-id='26a90f95' name='extra' filepath='net/wireless/wext-spy.c' line='140' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iw_handler_set_spy' mangled-name='iw_handler_set_spy' filepath='net/wireless/wext-spy.c' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iw_handler_set_spy'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/wireless/wext-spy.c' line='26' column='1'/>
+        <parameter type-id='4780e252' name='info' filepath='net/wireless/wext-spy.c' line='27' column='1'/>
+        <parameter type-id='00e2a7ce' name='wrqu' filepath='net/wireless/wext-spy.c' line='28' column='1'/>
+        <parameter type-id='26a90f95' name='extra' filepath='net/wireless/wext-spy.c' line='29' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iw_handler_set_thrspy' mangled-name='iw_handler_set_thrspy' filepath='net/wireless/wext-spy.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iw_handler_set_thrspy'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/wireless/wext-spy.c' line='110' column='1'/>
+        <parameter type-id='4780e252' name='info' filepath='net/wireless/wext-spy.c' line='111' column='1'/>
+        <parameter type-id='00e2a7ce' name='wrqu' filepath='net/wireless/wext-spy.c' line='112' column='1'/>
+        <parameter type-id='26a90f95' name='extra' filepath='net/wireless/wext-spy.c' line='113' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='iwe_stream_add_event' mangled-name='iwe_stream_add_event' filepath='net/wireless/wext-core.c' line='1127' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iwe_stream_add_event'>
+        <parameter type-id='4780e252' name='info' filepath='net/wireless/wext-core.c' line='1127' column='1'/>
+        <parameter type-id='26a90f95' name='stream' filepath='net/wireless/wext-core.c' line='1127' column='1'/>
+        <parameter type-id='26a90f95' name='ends' filepath='net/wireless/wext-core.c' line='1128' column='1'/>
+        <parameter type-id='4f46bd9c' name='iwe' filepath='net/wireless/wext-core.c' line='1128' column='1'/>
+        <parameter type-id='95e97e5e' name='event_len' filepath='net/wireless/wext-core.c' line='1128' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='iwe_stream_add_point' mangled-name='iwe_stream_add_point' filepath='net/wireless/wext-core.c' line='1148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iwe_stream_add_point'>
+        <parameter type-id='4780e252' name='info' filepath='net/wireless/wext-core.c' line='1148' column='1'/>
+        <parameter type-id='26a90f95' name='stream' filepath='net/wireless/wext-core.c' line='1148' column='1'/>
+        <parameter type-id='26a90f95' name='ends' filepath='net/wireless/wext-core.c' line='1149' column='1'/>
+        <parameter type-id='4f46bd9c' name='iwe' filepath='net/wireless/wext-core.c' line='1149' column='1'/>
+        <parameter type-id='26a90f95' name='extra' filepath='net/wireless/wext-core.c' line='1149' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='iwe_stream_add_value' mangled-name='iwe_stream_add_value' filepath='net/wireless/wext-core.c' line='1171' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iwe_stream_add_value'>
+        <parameter type-id='4780e252' name='info' filepath='net/wireless/wext-core.c' line='1171' column='1'/>
+        <parameter type-id='26a90f95' name='event' filepath='net/wireless/wext-core.c' line='1171' column='1'/>
+        <parameter type-id='26a90f95' name='value' filepath='net/wireless/wext-core.c' line='1172' column='1'/>
+        <parameter type-id='26a90f95' name='ends' filepath='net/wireless/wext-core.c' line='1172' column='1'/>
+        <parameter type-id='4f46bd9c' name='iwe' filepath='net/wireless/wext-core.c' line='1172' column='1'/>
+        <parameter type-id='95e97e5e' name='event_len' filepath='net/wireless/wext-core.c' line='1173' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='jiffies64_to_msecs' mangled-name='jiffies64_to_msecs' filepath='kernel/time/time.c' line='701' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='jiffies64_to_msecs'>
+        <parameter type-id='49c81889' name='j' filepath='kernel/time/time.c' line='701' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='jiffies64_to_nsecs' mangled-name='jiffies64_to_nsecs' filepath='kernel/time/time.c' line='691' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='jiffies64_to_nsecs'>
+        <parameter type-id='91ce1af9' name='j' filepath='kernel/time/time.c' line='691' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <var-decl name='jiffies_64' type-id='91ce1af9' mangled-name='jiffies_64' visibility='default' filepath='kernel/time/timer.c' line='64' column='1' elf-symbol-id='jiffies_64'/>
+      <function-decl name='jiffies_64_to_clock_t' mangled-name='jiffies_64_to_clock_t' filepath='kernel/time/time.c' line='652' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='jiffies_64_to_clock_t'>
+        <parameter type-id='91ce1af9' name='x' filepath='kernel/time/time.c' line='652' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='jiffies_to_msecs' mangled-name='jiffies_to_msecs' filepath='kernel/time/time.c' line='374' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='jiffies_to_msecs'>
+        <parameter type-id='9cbd1c16' name='j' filepath='kernel/time/time.c' line='374' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='jiffies_to_usecs' mangled-name='jiffies_to_usecs' filepath='kernel/time/time.c' line='391' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='jiffies_to_usecs'>
+        <parameter type-id='9cbd1c16' name='j' filepath='kernel/time/time.c' line='391' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <var-decl name='kasan_flag_enabled' type-id='237c0d27' mangled-name='kasan_flag_enabled' visibility='default' filepath='mm/kasan/hw_tags.c' line='56' column='1' elf-symbol-id='kasan_flag_enabled'/>
+      <function-decl name='kasprintf' mangled-name='kasprintf' filepath='lib/kasprintf.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kasprintf'>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='lib/kasprintf.c' line='53' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='lib/kasprintf.c' line='53' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='kern_mount' mangled-name='kern_mount' filepath='fs/namespace.c' line='4390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kern_mount'>
+        <parameter type-id='21e53d44' name='type' filepath='fs/namespace.c' line='4390' column='1'/>
+        <return type-id='549da823'/>
+      </function-decl>
+      <function-decl name='kern_path' mangled-name='kern_path' filepath='fs/namei.c' line='2567' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kern_path'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/namei.c' line='2567' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='fs/namei.c' line='2567' column='1'/>
+        <parameter type-id='bcfe6314' name='path' filepath='fs/namei.c' line='2567' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kern_unmount' mangled-name='kern_unmount' filepath='fs/namespace.c' line='4405' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kern_unmount'>
+        <parameter type-id='549da823' name='mnt' filepath='fs/namespace.c' line='4405' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kernel_bind' mangled-name='kernel_bind' filepath='net/socket.c' line='3384' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernel_bind'>
+        <parameter type-id='13103032' name='sock' filepath='net/socket.c' line='3384' column='1'/>
+        <parameter type-id='5c0abad8' name='addr' filepath='net/socket.c' line='3384' column='1'/>
+        <parameter type-id='95e97e5e' name='addrlen' filepath='net/socket.c' line='3384' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kernel_connect' mangled-name='kernel_connect' filepath='net/socket.c' line='3453' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernel_connect'>
+        <parameter type-id='13103032' name='sock' filepath='net/socket.c' line='3453' column='1'/>
+        <parameter type-id='5c0abad8' name='addr' filepath='net/socket.c' line='3453' column='1'/>
+        <parameter type-id='95e97e5e' name='addrlen' filepath='net/socket.c' line='3453' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='net/socket.c' line='3454' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='kernel_cpustat' type-id='7b5f27b3' mangled-name='kernel_cpustat' visibility='default' filepath='kernel/sched/core.c' line='5287' column='1' elf-symbol-id='kernel_cpustat'/>
+      <function-decl name='kernel_getsockname' mangled-name='kernel_getsockname' filepath='net/socket.c' line='3469' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernel_getsockname'>
+        <parameter type-id='13103032' name='sock' filepath='net/socket.c' line='3469' column='1'/>
+        <parameter type-id='5c0abad8' name='addr' filepath='net/socket.c' line='3469' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='kernel_kobj' type-id='d30bdc51' mangled-name='kernel_kobj' visibility='default' filepath='kernel/ksysfs.c' line='213' column='1' elf-symbol-id='kernel_kobj'/>
+      <function-decl name='kernel_neon_begin' mangled-name='kernel_neon_begin' filepath='arch/arm64/kernel/fpsimd.c' line='1283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernel_neon_begin'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kernel_neon_end' mangled-name='kernel_neon_end' filepath='arch/arm64/kernel/fpsimd.c' line='1309' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernel_neon_end'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kernel_param_lock' mangled-name='kernel_param_lock' filepath='kernel/params.c' line='602' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernel_param_lock'>
+        <parameter type-id='2730d015' name='mod' filepath='kernel/params.c' line='602' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kernel_param_unlock' mangled-name='kernel_param_unlock' filepath='kernel/params.c' line='607' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernel_param_unlock'>
+        <parameter type-id='2730d015' name='mod' filepath='kernel/params.c' line='607' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kernel_power_off' mangled-name='kernel_power_off' filepath='kernel/reboot.c' line='290' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernel_power_off'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kernel_recvmsg' mangled-name='kernel_recvmsg' filepath='net/socket.c' line='985' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernel_recvmsg'>
+        <parameter type-id='13103032' name='sock' filepath='net/socket.c' line='985' column='1'/>
+        <parameter type-id='6b9b777a' name='msg' filepath='net/socket.c' line='985' column='1'/>
+        <parameter type-id='9c68341e' name='vec' filepath='net/socket.c' line='986' column='1'/>
+        <parameter type-id='b59d7dce' name='num' filepath='net/socket.c' line='986' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='net/socket.c' line='986' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='net/socket.c' line='986' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kernel_restart' mangled-name='kernel_restart' filepath='kernel/reboot.c' line='247' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernel_restart'>
+        <parameter type-id='26a90f95' name='cmd' filepath='kernel/reboot.c' line='247' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kernel_sendmsg' mangled-name='kernel_sendmsg' filepath='net/socket.c' line='740' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernel_sendmsg'>
+        <parameter type-id='13103032' name='sock' filepath='net/socket.c' line='740' column='1'/>
+        <parameter type-id='6b9b777a' name='msg' filepath='net/socket.c' line='740' column='1'/>
+        <parameter type-id='9c68341e' name='vec' filepath='net/socket.c' line='741' column='1'/>
+        <parameter type-id='b59d7dce' name='num' filepath='net/socket.c' line='741' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='net/socket.c' line='741' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kernel_sigaction' mangled-name='kernel_sigaction' filepath='kernel/signal.c' line='4093' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernel_sigaction'>
+        <parameter type-id='95e97e5e' name='sig' filepath='kernel/signal.c' line='4093' column='1'/>
+        <parameter type-id='8cdd9566' name='action' filepath='kernel/signal.c' line='4093' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kernel_sock_shutdown' mangled-name='kernel_sock_shutdown' filepath='net/socket.c' line='3546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernel_sock_shutdown'>
+        <parameter type-id='13103032' name='sock' filepath='net/socket.c' line='3546' column='1'/>
+        <parameter type-id='45c08bac' name='how' filepath='net/socket.c' line='3546' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kernfs_find_and_get_ns' mangled-name='kernfs_find_and_get_ns' filepath='fs/kernfs/dir.c' line='865' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernfs_find_and_get_ns'>
+        <parameter type-id='150efd3f' name='parent' filepath='fs/kernfs/dir.c' line='865' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='fs/kernfs/dir.c' line='866' column='1'/>
+        <parameter type-id='eaa32e2f' name='ns' filepath='fs/kernfs/dir.c' line='866' column='1'/>
+        <return type-id='150efd3f'/>
+      </function-decl>
+      <function-decl name='kernfs_get' mangled-name='kernfs_get' filepath='fs/kernfs/dir.c' line='501' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernfs_get'>
+        <parameter type-id='150efd3f' name='kn' filepath='fs/kernfs/dir.c' line='501' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kernfs_notify' mangled-name='kernfs_notify' filepath='fs/kernfs/file.c' line='913' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernfs_notify'>
+        <parameter type-id='150efd3f' name='kn' filepath='fs/kernfs/file.c' line='913' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kernfs_path_from_node' mangled-name='kernfs_path_from_node' filepath='fs/kernfs/dir.c' line='218' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernfs_path_from_node'>
+        <parameter type-id='150efd3f' name='to' filepath='fs/kernfs/dir.c' line='218' column='1'/>
+        <parameter type-id='150efd3f' name='from' filepath='fs/kernfs/dir.c' line='218' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='fs/kernfs/dir.c' line='219' column='1'/>
+        <parameter type-id='b59d7dce' name='buflen' filepath='fs/kernfs/dir.c' line='219' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kernfs_put' mangled-name='kernfs_put' filepath='fs/kernfs/dir.c' line='516' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernfs_put'>
+        <parameter type-id='150efd3f' name='kn' filepath='fs/kernfs/dir.c' line='516' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='key_create_or_update' mangled-name='key_create_or_update' filepath='security/keys/key.c' line='816' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='key_create_or_update'>
+        <parameter type-id='28804ffa' name='keyring_ref' filepath='security/keys/key.c' line='816' column='1'/>
+        <parameter type-id='80f4b756' name='type' filepath='security/keys/key.c' line='817' column='1'/>
+        <parameter type-id='80f4b756' name='description' filepath='security/keys/key.c' line='818' column='1'/>
+        <parameter type-id='eaa32e2f' name='payload' filepath='security/keys/key.c' line='819' column='1'/>
+        <parameter type-id='b59d7dce' name='plen' filepath='security/keys/key.c' line='820' column='1'/>
+        <parameter type-id='296adac1' name='perm' filepath='security/keys/key.c' line='821' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='security/keys/key.c' line='822' column='1'/>
+        <return type-id='28804ffa'/>
+      </function-decl>
+      <function-decl name='key_invalidate' mangled-name='key_invalidate' filepath='security/keys/key.c' line='1094' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='key_invalidate'>
+        <parameter type-id='204a4632' name='key' filepath='security/keys/key.c' line='1094' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='key_put' mangled-name='key_put' filepath='security/keys/key.c' line='647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='key_put'>
+        <parameter type-id='204a4632' name='key' filepath='security/keys/key.c' line='647' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='key_revoke' mangled-name='key_revoke' filepath='security/keys/key.c' line='1058' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='key_revoke'>
+        <parameter type-id='204a4632' name='key' filepath='security/keys/key.c' line='1058' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='key_validate' mangled-name='key_validate' filepath='security/keys/permission.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='key_validate'>
+        <parameter type-id='7572cb33' name='key' filepath='security/keys/permission.c' line='102' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='keyring_alloc' mangled-name='keyring_alloc' filepath='security/keys/keyring.c' line='517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='keyring_alloc'>
+        <parameter type-id='80f4b756' name='description' filepath='security/keys/keyring.c' line='517' column='1'/>
+        <parameter type-id='d80b72e6' name='uid' filepath='security/keys/keyring.c' line='517' column='1'/>
+        <parameter type-id='094d8048' name='gid' filepath='security/keys/keyring.c' line='517' column='1'/>
+        <parameter type-id='bc33861a' name='cred' filepath='security/keys/keyring.c' line='518' column='1'/>
+        <parameter type-id='296adac1' name='perm' filepath='security/keys/keyring.c' line='518' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='security/keys/keyring.c' line='519' column='1'/>
+        <parameter type-id='92daca01' name='restrict_link' filepath='security/keys/keyring.c' line='520' column='1'/>
+        <parameter type-id='204a4632' name='dest' filepath='security/keys/keyring.c' line='521' column='1'/>
+        <return type-id='204a4632'/>
+      </function-decl>
+      <function-decl name='kfree' mangled-name='kfree' filepath='mm/slub.c' line='4564' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kfree'>
+        <parameter type-id='eaa32e2f' name='x' filepath='mm/slub.c' line='4564' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kfree_const' mangled-name='kfree_const' filepath='mm/util.c' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kfree_const'>
+        <parameter type-id='eaa32e2f' name='x' filepath='mm/util.c' line='41' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kfree_link' mangled-name='kfree_link' filepath='fs/libfs.c' line='1214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kfree_link'>
+        <parameter type-id='eaa32e2f' name='p' filepath='fs/libfs.c' line='1214' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kfree_sensitive' mangled-name='kfree_sensitive' filepath='mm/slab_common.c' line='1283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kfree_sensitive'>
+        <parameter type-id='eaa32e2f' name='p' filepath='mm/slab_common.c' line='1283' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kfree_skb' mangled-name='kfree_skb' filepath='net/core/skbuff.c' line='786' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kfree_skb'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='786' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kfree_skb_list' mangled-name='kfree_skb_list' filepath='net/core/skbuff.c' line='796' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kfree_skb_list'>
+        <parameter type-id='0fbf3cfd' name='segs' filepath='net/core/skbuff.c' line='796' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kfree_skb_reason' mangled-name='kfree_skb_reason' filepath='net/core/skbuff.c' line='771' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kfree_skb_reason'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='771' column='1'/>
+        <parameter type-id='1cce8201' name='reason' filepath='net/core/skbuff.c' line='771' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kick_all_cpus_sync' mangled-name='kick_all_cpus_sync' filepath='kernel/smp.c' line='1155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kick_all_cpus_sync'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kill_anon_super' mangled-name='kill_anon_super' filepath='fs/super.c' line='1064' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kill_anon_super'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/super.c' line='1064' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kill_block_super' mangled-name='kill_block_super' filepath='fs/super.c' line='1399' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kill_block_super'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/super.c' line='1399' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kill_fasync' mangled-name='kill_fasync' filepath='fs/fcntl.c' line='1028' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kill_fasync'>
+        <parameter type-id='dc750055' name='fp' filepath='fs/fcntl.c' line='1028' column='1'/>
+        <parameter type-id='95e97e5e' name='sig' filepath='fs/fcntl.c' line='1028' column='1'/>
+        <parameter type-id='95e97e5e' name='band' filepath='fs/fcntl.c' line='1028' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kill_litter_super' mangled-name='kill_litter_super' filepath='fs/super.c' line='1072' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kill_litter_super'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/super.c' line='1072' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kill_pid' mangled-name='kill_pid' filepath='kernel/signal.c' line='1915' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kill_pid'>
+        <parameter type-id='b94e5398' name='pid' filepath='kernel/signal.c' line='1915' column='1'/>
+        <parameter type-id='95e97e5e' name='sig' filepath='kernel/signal.c' line='1915' column='1'/>
+        <parameter type-id='95e97e5e' name='priv' filepath='kernel/signal.c' line='1915' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='kimage_voffset' type-id='91ce1af9' mangled-name='kimage_voffset' visibility='default' filepath='arch/arm64/mm/mmu.c' line='51' column='1' elf-symbol-id='kimage_voffset'/>
+      <var-decl name='kmalloc_caches' type-id='ca73f4da' mangled-name='kmalloc_caches' visibility='default' filepath='mm/slab_common.c' line='697' column='1' elf-symbol-id='kmalloc_caches'/>
+      <function-decl name='kmalloc_order' mangled-name='kmalloc_order' filepath='mm/slab_common.c' line='966' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kmalloc_order'>
+        <parameter type-id='b59d7dce' name='size' filepath='mm/slab_common.c' line='966' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='mm/slab_common.c' line='966' column='1'/>
+        <parameter type-id='f0981eeb' name='order' filepath='mm/slab_common.c' line='966' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='kmalloc_order_trace' mangled-name='kmalloc_order_trace' filepath='mm/slab_common.c' line='992' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kmalloc_order_trace'>
+        <parameter type-id='b59d7dce' name='size' filepath='mm/slab_common.c' line='992' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='mm/slab_common.c' line='992' column='1'/>
+        <parameter type-id='f0981eeb' name='order' filepath='mm/slab_common.c' line='992' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='kmem_cache_alloc' mangled-name='kmem_cache_alloc' filepath='mm/slub.c' line='3251' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kmem_cache_alloc'>
+        <parameter type-id='f3b4aca8' name='s' filepath='mm/slub.c' line='3251' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfpflags' filepath='mm/slub.c' line='3251' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='kmem_cache_alloc_bulk' mangled-name='kmem_cache_alloc_bulk' filepath='mm/slub.c' line='3666' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kmem_cache_alloc_bulk'>
+        <parameter type-id='f3b4aca8' name='s' filepath='mm/slub.c' line='3666' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='mm/slub.c' line='3666' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='mm/slub.c' line='3666' column='1'/>
+        <parameter type-id='63e171df' name='p' filepath='mm/slub.c' line='3667' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kmem_cache_alloc_trace' mangled-name='kmem_cache_alloc_trace' filepath='mm/slub.c' line='3263' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kmem_cache_alloc_trace'>
+        <parameter type-id='f3b4aca8' name='s' filepath='mm/slub.c' line='3263' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfpflags' filepath='mm/slub.c' line='3263' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='mm/slub.c' line='3263' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='kmem_cache_create' mangled-name='kmem_cache_create' filepath='mm/slab_common.c' line='419' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kmem_cache_create'>
+        <parameter type-id='80f4b756' name='name' filepath='mm/slab_common.c' line='419' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='mm/slab_common.c' line='419' column='1'/>
+        <parameter type-id='f0981eeb' name='align' filepath='mm/slab_common.c' line='419' column='1'/>
+        <parameter type-id='f7fe96cb' name='flags' filepath='mm/slab_common.c' line='420' column='1'/>
+        <parameter type-id='b7f9d8e6' name='ctor' filepath='mm/slab_common.c' line='420' column='1'/>
+        <return type-id='f3b4aca8'/>
+      </function-decl>
+      <function-decl name='kmem_cache_create_usercopy' mangled-name='kmem_cache_create_usercopy' filepath='mm/slab_common.c' line='310' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kmem_cache_create_usercopy'>
+        <parameter type-id='80f4b756' name='name' filepath='mm/slab_common.c' line='310' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='mm/slab_common.c' line='311' column='1'/>
+        <parameter type-id='f0981eeb' name='align' filepath='mm/slab_common.c' line='311' column='1'/>
+        <parameter type-id='f7fe96cb' name='flags' filepath='mm/slab_common.c' line='312' column='1'/>
+        <parameter type-id='f0981eeb' name='useroffset' filepath='mm/slab_common.c' line='313' column='1'/>
+        <parameter type-id='f0981eeb' name='usersize' filepath='mm/slab_common.c' line='313' column='1'/>
+        <parameter type-id='b7f9d8e6' name='ctor' filepath='mm/slab_common.c' line='314' column='1'/>
+        <return type-id='f3b4aca8'/>
+      </function-decl>
+      <function-decl name='kmem_cache_destroy' mangled-name='kmem_cache_destroy' filepath='mm/slab_common.c' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kmem_cache_destroy'>
+        <parameter type-id='f3b4aca8' name='s' filepath='mm/slab_common.c' line='498' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kmem_cache_free' mangled-name='kmem_cache_free' filepath='mm/slub.c' line='3530' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kmem_cache_free'>
+        <parameter type-id='f3b4aca8' name='s' filepath='mm/slub.c' line='3530' column='1'/>
+        <parameter type-id='eaa32e2f' name='x' filepath='mm/slub.c' line='3530' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kmem_cache_free_bulk' mangled-name='kmem_cache_free_bulk' filepath='mm/slub.c' line='3647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kmem_cache_free_bulk'>
+        <parameter type-id='f3b4aca8' name='s' filepath='mm/slub.c' line='3647' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='mm/slub.c' line='3647' column='1'/>
+        <parameter type-id='63e171df' name='p' filepath='mm/slub.c' line='3647' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kmem_cache_shrink' mangled-name='kmem_cache_shrink' filepath='mm/slab_common.c' line='533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kmem_cache_shrink'>
+        <parameter type-id='f3b4aca8' name='cachep' filepath='mm/slab_common.c' line='533' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kmemdup' mangled-name='kmemdup' filepath='mm/util.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kmemdup'>
+        <parameter type-id='eaa32e2f' name='src' filepath='mm/util.c' line='128' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='mm/util.c' line='128' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='mm/util.c' line='128' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='kmemdup_nul' mangled-name='kmemdup_nul' filepath='mm/util.c' line='148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kmemdup_nul'>
+        <parameter type-id='80f4b756' name='s' filepath='mm/util.c' line='148' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='mm/util.c' line='148' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='mm/util.c' line='148' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='kmsg_dump_get_buffer' mangled-name='kmsg_dump_get_buffer' filepath='kernel/printk/printk.c' line='3570' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kmsg_dump_get_buffer'>
+        <parameter type-id='79480fd1' name='iter' filepath='kernel/printk/printk.c' line='3570' column='1'/>
+        <parameter type-id='b50a4934' name='syslog' filepath='kernel/printk/printk.c' line='3570' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='kernel/printk/printk.c' line='3571' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/printk/printk.c' line='3571' column='1'/>
+        <parameter type-id='78c01427' name='len_out' filepath='kernel/printk/printk.c' line='3571' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='kmsg_dump_get_line' mangled-name='kmsg_dump_get_line' filepath='kernel/printk/printk.c' line='3512' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kmsg_dump_get_line'>
+        <parameter type-id='79480fd1' name='iter' filepath='kernel/printk/printk.c' line='3512' column='1'/>
+        <parameter type-id='b50a4934' name='syslog' filepath='kernel/printk/printk.c' line='3512' column='1'/>
+        <parameter type-id='26a90f95' name='line' filepath='kernel/printk/printk.c' line='3513' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/printk/printk.c' line='3513' column='1'/>
+        <parameter type-id='78c01427' name='len' filepath='kernel/printk/printk.c' line='3513' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='kmsg_dump_register' mangled-name='kmsg_dump_register' filepath='kernel/printk/printk.c' line='3395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kmsg_dump_register'>
+        <parameter type-id='a83d0951' name='dumper' filepath='kernel/printk/printk.c' line='3395' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kmsg_dump_rewind' mangled-name='kmsg_dump_rewind' filepath='kernel/printk/printk.c' line='3644' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kmsg_dump_rewind'>
+        <parameter type-id='79480fd1' name='iter' filepath='kernel/printk/printk.c' line='3644' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kmsg_dump_unregister' mangled-name='kmsg_dump_unregister' filepath='kernel/printk/printk.c' line='3424' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kmsg_dump_unregister'>
+        <parameter type-id='a83d0951' name='dumper' filepath='kernel/printk/printk.c' line='3424' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='kobj_sysfs_ops' type-id='0f840455' mangled-name='kobj_sysfs_ops' visibility='default' filepath='lib/kobject.c' line='868' column='1' elf-symbol-id='kobj_sysfs_ops'/>
+      <function-decl name='kobject_add' mangled-name='kobject_add' filepath='lib/kobject.c' line='434' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kobject_add'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='lib/kobject.c' line='434' column='1'/>
+        <parameter type-id='d30bdc51' name='parent' filepath='lib/kobject.c' line='434' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='lib/kobject.c' line='435' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kobject_create_and_add' mangled-name='kobject_create_and_add' filepath='lib/kobject.c' line='813' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kobject_create_and_add'>
+        <parameter type-id='80f4b756' name='name' filepath='lib/kobject.c' line='813' column='1'/>
+        <parameter type-id='d30bdc51' name='parent' filepath='lib/kobject.c' line='813' column='1'/>
+        <return type-id='d30bdc51'/>
+      </function-decl>
+      <function-decl name='kobject_del' mangled-name='kobject_del' filepath='lib/kobject.c' line='643' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kobject_del'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='lib/kobject.c' line='643' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kobject_get' mangled-name='kobject_get' filepath='lib/kobject.c' line='660' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kobject_get'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='lib/kobject.c' line='660' column='1'/>
+        <return type-id='d30bdc51'/>
+      </function-decl>
+      <function-decl name='kobject_get_path' mangled-name='kobject_get_path' filepath='lib/kobject.c' line='175' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kobject_get_path'>
+        <parameter type-id='35ee6b40' name='kobj' filepath='lib/kobject.c' line='175' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='lib/kobject.c' line='175' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='kobject_init' mangled-name='kobject_init' filepath='lib/kobject.c' line='357' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kobject_init'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='lib/kobject.c' line='357' column='1'/>
+        <parameter type-id='c48b394e' name='ktype' filepath='lib/kobject.c' line='357' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kobject_init_and_add' mangled-name='kobject_init_and_add' filepath='lib/kobject.c' line='472' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kobject_init_and_add'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='lib/kobject.c' line='472' column='1'/>
+        <parameter type-id='c48b394e' name='ktype' filepath='lib/kobject.c' line='472' column='1'/>
+        <parameter type-id='d30bdc51' name='parent' filepath='lib/kobject.c' line='473' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='lib/kobject.c' line='473' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kobject_put' mangled-name='kobject_put' filepath='lib/kobject.c' line='754' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kobject_put'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='lib/kobject.c' line='754' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kobject_set_name' mangled-name='kobject_set_name' filepath='lib/kobject.c' line='332' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kobject_set_name'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='lib/kobject.c' line='332' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='lib/kobject.c' line='332' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kobject_uevent' mangled-name='kobject_uevent' filepath='lib/kobject_uevent.c' line='640' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kobject_uevent'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='lib/kobject_uevent.c' line='640' column='1'/>
+        <parameter type-id='7d635811' name='action' filepath='lib/kobject_uevent.c' line='640' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kobject_uevent_env' mangled-name='kobject_uevent_env' filepath='lib/kobject_uevent.c' line='457' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kobject_uevent_env'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='lib/kobject_uevent.c' line='457' column='1'/>
+        <parameter type-id='7d635811' name='action' filepath='lib/kobject_uevent.c' line='457' column='1'/>
+        <parameter type-id='9b23c9ad' name='envp_ext' filepath='lib/kobject_uevent.c' line='458' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='krealloc' mangled-name='krealloc' filepath='mm/slab_common.c' line='1255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='krealloc'>
+        <parameter type-id='eaa32e2f' name='p' filepath='mm/slab_common.c' line='1255' column='1'/>
+        <parameter type-id='b59d7dce' name='new_size' filepath='mm/slab_common.c' line='1255' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='mm/slab_common.c' line='1255' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='kset_create_and_add' mangled-name='kset_create_and_add' filepath='lib/kobject.c' line='1013' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kset_create_and_add'>
+        <parameter type-id='80f4b756' name='name' filepath='lib/kobject.c' line='1013' column='1'/>
+        <parameter type-id='86462700' name='uevent_ops' filepath='lib/kobject.c' line='1014' column='1'/>
+        <parameter type-id='d30bdc51' name='parent_kobj' filepath='lib/kobject.c' line='1015' column='1'/>
+        <return type-id='89b70200'/>
+      </function-decl>
+      <function-decl name='kset_find_obj' mangled-name='kset_find_obj' filepath='lib/kobject.c' line='916' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kset_find_obj'>
+        <parameter type-id='89b70200' name='kset' filepath='lib/kobject.c' line='916' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='lib/kobject.c' line='916' column='1'/>
+        <return type-id='d30bdc51'/>
+      </function-decl>
+      <function-decl name='kset_register' mangled-name='kset_register' filepath='lib/kobject.c' line='878' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kset_register'>
+        <parameter type-id='89b70200' name='k' filepath='lib/kobject.c' line='878' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kset_unregister' mangled-name='kset_unregister' filepath='lib/kobject.c' line='898' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kset_unregister'>
+        <parameter type-id='89b70200' name='k' filepath='lib/kobject.c' line='898' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ksize' mangled-name='ksize' filepath='mm/slab_common.c' line='1309' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ksize'>
+        <parameter type-id='eaa32e2f' name='objp' filepath='mm/slab_common.c' line='1309' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <var-decl name='ksoftirqd' type-id='f23e2572' mangled-name='ksoftirqd' visibility='default' filepath='kernel/softirq.c' line='64' column='1' elf-symbol-id='ksoftirqd'/>
+      <var-decl name='kstat' type-id='153750ef' mangled-name='kstat' visibility='default' filepath='kernel/sched/core.c' line='5286' column='1' elf-symbol-id='kstat'/>
+      <function-decl name='kstat_irqs_cpu' mangled-name='kstat_irqs_cpu' filepath='kernel/irq/irqdesc.c' line='939' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstat_irqs_cpu'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/irqdesc.c' line='939' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/irq/irqdesc.c' line='939' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='kstat_irqs_usr' mangled-name='kstat_irqs_usr' filepath='kernel/irq/irqdesc.c' line='981' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstat_irqs_usr'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/irqdesc.c' line='981' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='kstrdup' mangled-name='kstrdup' filepath='mm/util.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrdup'>
+        <parameter type-id='80f4b756' name='s' filepath='mm/util.c' line='55' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='mm/util.c' line='55' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='kstrdup_const' mangled-name='kstrdup_const' filepath='mm/util.c' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrdup_const'>
+        <parameter type-id='80f4b756' name='s' filepath='mm/util.c' line='82' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='mm/util.c' line='82' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='kstrdup_quotable_cmdline' mangled-name='kstrdup_quotable_cmdline' filepath='lib/string_helpers.c' line='621' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrdup_quotable_cmdline'>
+        <parameter type-id='f23e2572' name='task' filepath='lib/string_helpers.c' line='621' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='lib/string_helpers.c' line='621' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='kstrndup' mangled-name='kstrndup' filepath='mm/util.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrndup'>
+        <parameter type-id='80f4b756' name='s' filepath='mm/util.c' line='101' column='1'/>
+        <parameter type-id='b59d7dce' name='max' filepath='mm/util.c' line='101' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='mm/util.c' line='101' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='kstrtobool' mangled-name='kstrtobool' filepath='lib/kstrtox.c' line='336' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrtobool'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/kstrtox.c' line='336' column='1'/>
+        <parameter type-id='d8e6b335' name='res' filepath='lib/kstrtox.c' line='336' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kstrtobool_from_user' mangled-name='kstrtobool_from_user' filepath='lib/kstrtox.c' line='379' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrtobool_from_user'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/kstrtox.c' line='379' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/kstrtox.c' line='379' column='1'/>
+        <parameter type-id='d8e6b335' name='res' filepath='lib/kstrtox.c' line='379' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kstrtoint' mangled-name='kstrtoint' filepath='lib/kstrtox.c' line='252' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrtoint'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/kstrtox.c' line='252' column='1'/>
+        <parameter type-id='f0981eeb' name='base' filepath='lib/kstrtox.c' line='252' column='1'/>
+        <parameter type-id='7292109c' name='res' filepath='lib/kstrtox.c' line='252' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kstrtoint_from_user' mangled-name='kstrtoint_from_user' filepath='lib/kstrtox.c' line='411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrtoint_from_user'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/kstrtox.c' line='411' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/kstrtox.c' line='411' column='1'/>
+        <parameter type-id='f0981eeb' name='base' filepath='lib/kstrtox.c' line='411' column='1'/>
+        <parameter type-id='7292109c' name='res' filepath='lib/kstrtox.c' line='411' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kstrtol_from_user' mangled-name='kstrtol_from_user' filepath='lib/kstrtox.c' line='409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrtol_from_user'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/kstrtox.c' line='409' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/kstrtox.c' line='409' column='1'/>
+        <parameter type-id='f0981eeb' name='base' filepath='lib/kstrtox.c' line='409' column='1'/>
+        <parameter type-id='3ccc2590' name='res' filepath='lib/kstrtox.c' line='409' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kstrtoll' mangled-name='kstrtoll' filepath='lib/kstrtox.c' line='151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrtoll'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/kstrtox.c' line='151' column='1'/>
+        <parameter type-id='f0981eeb' name='base' filepath='lib/kstrtox.c' line='151' column='1'/>
+        <parameter type-id='8b97c2dc' name='res' filepath='lib/kstrtox.c' line='151' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kstrtos16' mangled-name='kstrtos16' filepath='lib/kstrtox.c' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrtos16'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/kstrtox.c' line='282' column='1'/>
+        <parameter type-id='f0981eeb' name='base' filepath='lib/kstrtox.c' line='282' column='1'/>
+        <parameter type-id='81ac2ac5' name='res' filepath='lib/kstrtox.c' line='282' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kstrtos8' mangled-name='kstrtos8' filepath='lib/kstrtox.c' line='312' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrtos8'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/kstrtox.c' line='312' column='1'/>
+        <parameter type-id='f0981eeb' name='base' filepath='lib/kstrtox.c' line='312' column='1'/>
+        <parameter type-id='01b75fec' name='res' filepath='lib/kstrtox.c' line='312' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kstrtos8_from_user' mangled-name='kstrtos8_from_user' filepath='lib/kstrtox.c' line='415' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrtos8_from_user'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/kstrtox.c' line='415' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/kstrtox.c' line='415' column='1'/>
+        <parameter type-id='f0981eeb' name='base' filepath='lib/kstrtox.c' line='415' column='1'/>
+        <parameter type-id='01b75fec' name='res' filepath='lib/kstrtox.c' line='415' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kstrtou16' mangled-name='kstrtou16' filepath='lib/kstrtox.c' line='267' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrtou16'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/kstrtox.c' line='267' column='1'/>
+        <parameter type-id='f0981eeb' name='base' filepath='lib/kstrtox.c' line='267' column='1'/>
+        <parameter type-id='26d4d46f' name='res' filepath='lib/kstrtox.c' line='267' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kstrtou16_from_user' mangled-name='kstrtou16_from_user' filepath='lib/kstrtox.c' line='412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrtou16_from_user'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/kstrtox.c' line='412' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/kstrtox.c' line='412' column='1'/>
+        <parameter type-id='f0981eeb' name='base' filepath='lib/kstrtox.c' line='412' column='1'/>
+        <parameter type-id='26d4d46f' name='res' filepath='lib/kstrtox.c' line='412' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kstrtou8' mangled-name='kstrtou8' filepath='lib/kstrtox.c' line='297' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrtou8'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/kstrtox.c' line='297' column='1'/>
+        <parameter type-id='f0981eeb' name='base' filepath='lib/kstrtox.c' line='297' column='1'/>
+        <parameter type-id='8bff8096' name='res' filepath='lib/kstrtox.c' line='297' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kstrtou8_from_user' mangled-name='kstrtou8_from_user' filepath='lib/kstrtox.c' line='414' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrtou8_from_user'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/kstrtox.c' line='414' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/kstrtox.c' line='414' column='1'/>
+        <parameter type-id='f0981eeb' name='base' filepath='lib/kstrtox.c' line='414' column='1'/>
+        <parameter type-id='8bff8096' name='res' filepath='lib/kstrtox.c' line='414' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kstrtouint' mangled-name='kstrtouint' filepath='lib/kstrtox.c' line='222' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrtouint'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/kstrtox.c' line='222' column='1'/>
+        <parameter type-id='f0981eeb' name='base' filepath='lib/kstrtox.c' line='222' column='1'/>
+        <parameter type-id='807869d3' name='res' filepath='lib/kstrtox.c' line='222' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kstrtouint_from_user' mangled-name='kstrtouint_from_user' filepath='lib/kstrtox.c' line='410' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrtouint_from_user'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/kstrtox.c' line='410' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/kstrtox.c' line='410' column='1'/>
+        <parameter type-id='f0981eeb' name='base' filepath='lib/kstrtox.c' line='410' column='1'/>
+        <parameter type-id='807869d3' name='res' filepath='lib/kstrtox.c' line='410' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kstrtoul_from_user' mangled-name='kstrtoul_from_user' filepath='lib/kstrtox.c' line='408' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrtoul_from_user'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/kstrtox.c' line='408' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/kstrtox.c' line='408' column='1'/>
+        <parameter type-id='f0981eeb' name='base' filepath='lib/kstrtox.c' line='408' column='1'/>
+        <parameter type-id='1d2c2b85' name='res' filepath='lib/kstrtox.c' line='408' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kstrtoull' mangled-name='kstrtoull' filepath='lib/kstrtox.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrtoull'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/kstrtox.c' line='128' column='1'/>
+        <parameter type-id='f0981eeb' name='base' filepath='lib/kstrtox.c' line='128' column='1'/>
+        <parameter type-id='a0c47697' name='res' filepath='lib/kstrtox.c' line='128' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kstrtoull_from_user' mangled-name='kstrtoull_from_user' filepath='lib/kstrtox.c' line='406' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstrtoull_from_user'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/kstrtox.c' line='406' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/kstrtox.c' line='406' column='1'/>
+        <parameter type-id='f0981eeb' name='base' filepath='lib/kstrtox.c' line='406' column='1'/>
+        <parameter type-id='a0c47697' name='res' filepath='lib/kstrtox.c' line='406' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kswapd' mangled-name='kswapd' filepath='mm/vmscan.c' line='7103' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kswapd'>
+        <parameter type-id='eaa32e2f' name='p' filepath='mm/vmscan.c' line='7103' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ksys_sync_helper' mangled-name='ksys_sync_helper' filepath='kernel/power/main.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ksys_sync_helper'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kthread_bind' mangled-name='kthread_bind' filepath='kernel/kthread.c' line='496' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_bind'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/kthread.c' line='496' column='1'/>
+        <parameter type-id='f0981eeb' name='cpu' filepath='kernel/kthread.c' line='496' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kthread_bind_mask' mangled-name='kthread_bind_mask' filepath='kernel/kthread.c' line='481' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_bind_mask'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/kthread.c' line='481' column='1'/>
+        <parameter type-id='5f8a1ac4' name='mask' filepath='kernel/kthread.c' line='481' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kthread_blkcg' mangled-name='kthread_blkcg' filepath='kernel/kthread.c' line='1460' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_blkcg'>
+        <return type-id='cfff5953'/>
+      </function-decl>
+      <function-decl name='kthread_cancel_delayed_work_sync' mangled-name='kthread_cancel_delayed_work_sync' filepath='kernel/kthread.c' line='1295' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_cancel_delayed_work_sync'>
+        <parameter type-id='d56697f1' name='dwork' filepath='kernel/kthread.c' line='1295' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='kthread_cancel_work_sync' mangled-name='kthread_cancel_work_sync' filepath='kernel/kthread.c' line='1280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_cancel_work_sync'>
+        <parameter type-id='401eb95c' name='work' filepath='kernel/kthread.c' line='1280' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='kthread_create_on_node' mangled-name='kthread_create_on_node' filepath='kernel/kthread.c' line='444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_create_on_node'>
+        <parameter type-id='b9b212f5' name='threadfn' filepath='kernel/kthread.c' line='444' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='kernel/kthread.c' line='445' column='1'/>
+        <parameter type-id='95e97e5e' name='node' filepath='kernel/kthread.c' line='445' column='1'/>
+        <parameter type-id='80f4b756' name='namefmt' filepath='kernel/kthread.c' line='446' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='f23e2572'/>
+      </function-decl>
+      <function-decl name='kthread_create_worker' mangled-name='kthread_create_worker' filepath='kernel/kthread.c' line='824' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_create_worker'>
+        <parameter type-id='f0981eeb' name='flags' filepath='kernel/kthread.c' line='824' column='1'/>
+        <parameter type-id='80f4b756' name='namefmt' filepath='kernel/kthread.c' line='824' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='c41f4539'/>
+      </function-decl>
+      <function-decl name='kthread_delayed_work_timer_fn' mangled-name='kthread_delayed_work_timer_fn' filepath='kernel/kthread.c' line='960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_delayed_work_timer_fn'>
+        <parameter type-id='9248e67f' name='t' filepath='kernel/kthread.c' line='960' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kthread_destroy_worker' mangled-name='kthread_destroy_worker' filepath='kernel/kthread.c' line='1328' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_destroy_worker'>
+        <parameter type-id='c41f4539' name='worker' filepath='kernel/kthread.c' line='1328' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kthread_flush_work' mangled-name='kthread_flush_work' filepath='kernel/kthread.c' line='1071' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_flush_work'>
+        <parameter type-id='401eb95c' name='work' filepath='kernel/kthread.c' line='1071' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kthread_flush_worker' mangled-name='kthread_flush_worker' filepath='kernel/kthread.c' line='1308' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_flush_worker'>
+        <parameter type-id='c41f4539' name='worker' filepath='kernel/kthread.c' line='1308' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kthread_freezable_should_stop' mangled-name='kthread_freezable_should_stop' filepath='kernel/kthread.c' line='172' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_freezable_should_stop'>
+        <parameter type-id='d8e6b335' name='was_frozen' filepath='kernel/kthread.c' line='172' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='kthread_mod_delayed_work' mangled-name='kthread_mod_delayed_work' filepath='kernel/kthread.c' line='1180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_mod_delayed_work'>
+        <parameter type-id='c41f4539' name='worker' filepath='kernel/kthread.c' line='1180' column='1'/>
+        <parameter type-id='d56697f1' name='dwork' filepath='kernel/kthread.c' line='1181' column='1'/>
+        <parameter type-id='7359adad' name='delay' filepath='kernel/kthread.c' line='1182' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='kthread_park' mangled-name='kthread_park' filepath='kernel/kthread.c' line='594' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_park'>
+        <parameter type-id='f23e2572' name='k' filepath='kernel/kthread.c' line='594' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kthread_parkme' mangled-name='kthread_parkme' filepath='kernel/kthread.c' line='265' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_parkme'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kthread_queue_delayed_work' mangled-name='kthread_queue_delayed_work' filepath='kernel/kthread.c' line='1033' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_queue_delayed_work'>
+        <parameter type-id='c41f4539' name='worker' filepath='kernel/kthread.c' line='1033' column='1'/>
+        <parameter type-id='d56697f1' name='dwork' filepath='kernel/kthread.c' line='1034' column='1'/>
+        <parameter type-id='7359adad' name='delay' filepath='kernel/kthread.c' line='1035' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='kthread_queue_work' mangled-name='kthread_queue_work' filepath='kernel/kthread.c' line='936' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_queue_work'>
+        <parameter type-id='c41f4539' name='worker' filepath='kernel/kthread.c' line='936' column='1'/>
+        <parameter type-id='401eb95c' name='work' filepath='kernel/kthread.c' line='937' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='kthread_should_park' mangled-name='kthread_should_park' filepath='kernel/kthread.c' line='157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_should_park'>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='kthread_should_stop' mangled-name='kthread_should_stop' filepath='kernel/kthread.c' line='134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_should_stop'>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='kthread_stop' mangled-name='kthread_stop' filepath='kernel/kthread.c' line='638' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_stop'>
+        <parameter type-id='f23e2572' name='k' filepath='kernel/kthread.c' line='638' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='kthread_unpark' mangled-name='kthread_unpark' filepath='kernel/kthread.c' line='563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_unpark'>
+        <parameter type-id='f23e2572' name='k' filepath='kernel/kthread.c' line='563' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kthread_worker_fn' mangled-name='kthread_worker_fn' filepath='kernel/kthread.c' line='724' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kthread_worker_fn'>
+        <parameter type-id='eaa32e2f' name='worker_ptr' filepath='kernel/kthread.c' line='724' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ktime_add_safe' mangled-name='ktime_add_safe' filepath='kernel/time/hrtimer.c' line='327' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ktime_add_safe'>
+        <parameter type-id='ddb8523f' name='lhs' filepath='kernel/time/hrtimer.c' line='327' column='1'/>
+        <parameter type-id='ddb8523f' name='rhs' filepath='kernel/time/hrtimer.c' line='327' column='1'/>
+        <return type-id='fbc017ef'/>
+      </function-decl>
+      <function-decl name='ktime_get' mangled-name='ktime_get' filepath='kernel/time/timekeeping.c' line='820' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ktime_get'>
+        <return type-id='fbc017ef'/>
+      </function-decl>
+      <function-decl name='ktime_get_boot_fast_ns' mangled-name='ktime_get_boot_fast_ns' filepath='kernel/time/timekeeping.c' line='530' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ktime_get_boot_fast_ns'>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='ktime_get_coarse_real_ts64' mangled-name='ktime_get_coarse_real_ts64' filepath='kernel/time/timekeeping.c' line='2241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ktime_get_coarse_real_ts64'>
+        <parameter type-id='4151733d' name='ts' filepath='kernel/time/timekeeping.c' line='2241' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ktime_get_coarse_ts64' mangled-name='ktime_get_coarse_ts64' filepath='kernel/time/timekeeping.c' line='2254' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ktime_get_coarse_ts64'>
+        <parameter type-id='4151733d' name='ts' filepath='kernel/time/timekeeping.c' line='2254' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ktime_get_coarse_with_offset' mangled-name='ktime_get_coarse_with_offset' filepath='kernel/time/timekeeping.c' line='884' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ktime_get_coarse_with_offset'>
+        <parameter type-id='73bb584e' name='offs' filepath='kernel/time/timekeeping.c' line='884' column='1'/>
+        <return type-id='fbc017ef'/>
+      </function-decl>
+      <function-decl name='ktime_get_mono_fast_ns' mangled-name='ktime_get_mono_fast_ns' filepath='kernel/time/timekeeping.c' line='488' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ktime_get_mono_fast_ns'>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='ktime_get_raw' mangled-name='ktime_get_raw' filepath='kernel/time/timekeeping.c' line='927' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ktime_get_raw'>
+        <return type-id='fbc017ef'/>
+      </function-decl>
+      <function-decl name='ktime_get_raw_ts64' mangled-name='ktime_get_raw_ts64' filepath='kernel/time/timekeeping.c' line='1503' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ktime_get_raw_ts64'>
+        <parameter type-id='4151733d' name='ts' filepath='kernel/time/timekeeping.c' line='1503' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ktime_get_real_seconds' mangled-name='ktime_get_real_seconds' filepath='kernel/time/timekeeping.c' line='1004' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ktime_get_real_seconds'>
+        <return type-id='1afd27ac'/>
+      </function-decl>
+      <function-decl name='ktime_get_real_ts64' mangled-name='ktime_get_real_ts64' filepath='kernel/time/timekeeping.c' line='799' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ktime_get_real_ts64'>
+        <parameter type-id='4151733d' name='ts' filepath='kernel/time/timekeeping.c' line='799' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ktime_get_seconds' mangled-name='ktime_get_seconds' filepath='kernel/time/timekeeping.c' line='985' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ktime_get_seconds'>
+        <return type-id='1afd27ac'/>
+      </function-decl>
+      <function-decl name='ktime_get_snapshot' mangled-name='ktime_get_snapshot' filepath='kernel/time/timekeeping.c' line='1039' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ktime_get_snapshot'>
+        <parameter type-id='9e33b18d' name='systime_snapshot' filepath='kernel/time/timekeeping.c' line='1039' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ktime_get_ts64' mangled-name='ktime_get_ts64' filepath='kernel/time/timekeeping.c' line='953' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ktime_get_ts64'>
+        <parameter type-id='4151733d' name='ts' filepath='kernel/time/timekeeping.c' line='953' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ktime_get_with_offset' mangled-name='ktime_get_with_offset' filepath='kernel/time/timekeeping.c' line='863' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ktime_get_with_offset'>
+        <parameter type-id='73bb584e' name='offs' filepath='kernel/time/timekeeping.c' line='863' column='1'/>
+        <return type-id='fbc017ef'/>
+      </function-decl>
+      <function-decl name='kvasprintf' mangled-name='kvasprintf' filepath='lib/kasprintf.c' line='15' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kvasprintf'>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='lib/kasprintf.c' line='15' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='lib/kasprintf.c' line='15' column='1'/>
+        <parameter type-id='2aee9912' name='ap' filepath='lib/kasprintf.c' line='15' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='kvfree' mangled-name='kvfree' filepath='mm/util.c' line='659' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kvfree'>
+        <parameter type-id='eaa32e2f' name='addr' filepath='mm/util.c' line='659' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kvfree_call_rcu' mangled-name='kvfree_call_rcu' filepath='kernel/rcu/tree.c' line='3552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kvfree_call_rcu'>
+        <parameter type-id='69c138b1' name='head' filepath='kernel/rcu/tree.c' line='3552' column='1'/>
+        <parameter type-id='4edd56e3' name='func' filepath='kernel/rcu/tree.c' line='3552' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='kvmalloc_node' mangled-name='kvmalloc_node' filepath='mm/util.c' line='598' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kvmalloc_node'>
+        <parameter type-id='b59d7dce' name='size' filepath='mm/util.c' line='598' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='mm/util.c' line='598' column='1'/>
+        <parameter type-id='95e97e5e' name='node' filepath='mm/util.c' line='598' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='l2cap_is_socket' mangled-name='l2cap_is_socket' filepath='net/bluetooth/l2cap_sock.c' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2cap_is_socket'>
+        <parameter type-id='13103032' name='sock' filepath='net/bluetooth/l2cap_sock.c' line='49' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='l2tp_session_create' mangled-name='l2tp_session_create' filepath='net/l2tp/l2tp_core.c' line='1583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_create'>
+        <parameter type-id='95e97e5e' name='priv_size' filepath='net/l2tp/l2tp_core.c' line='1583' column='1'/>
+        <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='1583' column='1'/>
+        <parameter type-id='19c2251e' name='session_id' filepath='net/l2tp/l2tp_core.c' line='1583' column='1'/>
+        <parameter type-id='19c2251e' name='peer_session_id' filepath='net/l2tp/l2tp_core.c' line='1584' column='1'/>
+        <parameter type-id='0357a19d' name='cfg' filepath='net/l2tp/l2tp_core.c' line='1584' column='1'/>
+        <return type-id='d35aee0a'/>
+      </function-decl>
+      <function-decl name='l2tp_session_delete' mangled-name='l2tp_session_delete' filepath='net/l2tp/l2tp_core.c' line='1550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_delete'>
+        <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='1550' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='l2tp_session_get_nth' mangled-name='l2tp_session_get_nth' filepath='net/l2tp/l2tp_core.c' line='286' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_get_nth'>
+        <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='286' column='1'/>
+        <parameter type-id='95e97e5e' name='nth' filepath='net/l2tp/l2tp_core.c' line='286' column='1'/>
+        <return type-id='d35aee0a'/>
+      </function-decl>
+      <function-decl name='l2tp_session_register' mangled-name='l2tp_session_register' filepath='net/l2tp/l2tp_core.c' line='337' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_register'>
+        <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='337' column='1'/>
+        <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='338' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='l2tp_session_set_header_len' mangled-name='l2tp_session_set_header_len' filepath='net/l2tp/l2tp_core.c' line='1568' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_set_header_len'>
+        <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='1568' column='1'/>
+        <parameter type-id='95e97e5e' name='version' filepath='net/l2tp/l2tp_core.c' line='1568' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='l2tp_tunnel_create' mangled-name='l2tp_tunnel_create' filepath='net/l2tp/l2tp_core.c' line='1390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_create'>
+        <parameter type-id='95e97e5e' name='fd' filepath='net/l2tp/l2tp_core.c' line='1390' column='1'/>
+        <parameter type-id='95e97e5e' name='version' filepath='net/l2tp/l2tp_core.c' line='1390' column='1'/>
+        <parameter type-id='19c2251e' name='tunnel_id' filepath='net/l2tp/l2tp_core.c' line='1390' column='1'/>
+        <parameter type-id='19c2251e' name='peer_tunnel_id' filepath='net/l2tp/l2tp_core.c' line='1390' column='1'/>
+        <parameter type-id='88850643' name='cfg' filepath='net/l2tp/l2tp_core.c' line='1391' column='1'/>
+        <parameter type-id='383758d6' name='tunnelp' filepath='net/l2tp/l2tp_core.c' line='1391' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='l2tp_tunnel_delete' mangled-name='l2tp_tunnel_delete' filepath='net/l2tp/l2tp_core.c' line='1540' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_delete'>
+        <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='1540' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='l2tp_tunnel_get' mangled-name='l2tp_tunnel_get' filepath='net/l2tp/l2tp_core.c' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_get'>
+        <parameter type-id='f91cf277' name='net' filepath='net/l2tp/l2tp_core.c' line='205' column='1'/>
+        <parameter type-id='19c2251e' name='tunnel_id' filepath='net/l2tp/l2tp_core.c' line='205' column='1'/>
+        <return type-id='2d83a1b8'/>
+      </function-decl>
+      <function-decl name='l2tp_tunnel_get_nth' mangled-name='l2tp_tunnel_get_nth' filepath='net/l2tp/l2tp_core.c' line='222' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_get_nth'>
+        <parameter type-id='f91cf277' name='net' filepath='net/l2tp/l2tp_core.c' line='222' column='1'/>
+        <parameter type-id='95e97e5e' name='nth' filepath='net/l2tp/l2tp_core.c' line='222' column='1'/>
+        <return type-id='2d83a1b8'/>
+      </function-decl>
+      <function-decl name='l2tp_tunnel_get_session' mangled-name='l2tp_tunnel_get_session' filepath='net/l2tp/l2tp_core.c' line='243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_get_session'>
+        <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='243' column='1'/>
+        <parameter type-id='19c2251e' name='session_id' filepath='net/l2tp/l2tp_core.c' line='244' column='1'/>
+        <return type-id='d35aee0a'/>
+      </function-decl>
+      <function-decl name='l2tp_tunnel_register' mangled-name='l2tp_tunnel_register' filepath='net/l2tp/l2tp_core.c' line='1456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_register'>
+        <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='1456' column='1'/>
+        <parameter type-id='a2bff676' name='net' filepath='net/l2tp/l2tp_core.c' line='1456' column='1'/>
+        <parameter type-id='88850643' name='cfg' filepath='net/l2tp/l2tp_core.c' line='1457' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='l2tp_udp_encap_recv' mangled-name='l2tp_udp_encap_recv' filepath='net/l2tp/l2tp_core.c' line='896' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_udp_encap_recv'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/l2tp/l2tp_core.c' line='896' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/l2tp/l2tp_core.c' line='896' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='l2tp_xmit_skb' mangled-name='l2tp_xmit_skb' filepath='net/l2tp/l2tp_core.c' line='1104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_xmit_skb'>
+        <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='1104' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/l2tp/l2tp_core.c' line='1104' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='led_classdev_flash_register_ext' mangled-name='led_classdev_flash_register_ext' filepath='drivers/leds/led-class-flash.c' line='283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_classdev_flash_register_ext'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/leds/led-class-flash.c' line='283' column='1'/>
+        <parameter type-id='26deddb9' name='fled_cdev' filepath='drivers/leds/led-class-flash.c' line='284' column='1'/>
+        <parameter type-id='eebb8ee8' name='init_data' filepath='drivers/leds/led-class-flash.c' line='285' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='led_classdev_flash_unregister' mangled-name='led_classdev_flash_unregister' filepath='drivers/leds/led-class-flash.c' line='319' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_classdev_flash_unregister'>
+        <parameter type-id='26deddb9' name='fled_cdev' filepath='drivers/leds/led-class-flash.c' line='319' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='led_classdev_register_ext' mangled-name='led_classdev_register_ext' filepath='drivers/leds/led-class.c' line='339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_classdev_register_ext'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/leds/led-class.c' line='339' column='1'/>
+        <parameter type-id='bd1c8eb6' name='led_cdev' filepath='drivers/leds/led-class.c' line='340' column='1'/>
+        <parameter type-id='eebb8ee8' name='init_data' filepath='drivers/leds/led-class.c' line='341' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='led_classdev_unregister' mangled-name='led_classdev_unregister' filepath='drivers/leds/led-class.c' line='439' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_classdev_unregister'>
+        <parameter type-id='bd1c8eb6' name='led_cdev' filepath='drivers/leds/led-class.c' line='439' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='led_colors' type-id='80c2a296' mangled-name='led_colors' visibility='default' filepath='drivers/leds/led-core.c' line='28' column='1' elf-symbol-id='led_colors'/>
+      <function-decl name='led_get_default_pattern' mangled-name='led_get_default_pattern' filepath='drivers/leds/led-core.c' line='321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_get_default_pattern'>
+        <parameter type-id='bd1c8eb6' name='led_cdev' filepath='drivers/leds/led-core.c' line='321' column='1'/>
+        <parameter type-id='807869d3' name='size' filepath='drivers/leds/led-core.c' line='321' column='1'/>
+        <return type-id='f9409001'/>
+      </function-decl>
+      <function-decl name='led_get_flash_fault' mangled-name='led_get_flash_fault' filepath='drivers/leds/led-class-flash.c' line='404' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_get_flash_fault'>
+        <parameter type-id='26deddb9' name='fled_cdev' filepath='drivers/leds/led-class-flash.c' line='404' column='1'/>
+        <parameter type-id='f9409001' name='fault' filepath='drivers/leds/led-class-flash.c' line='404' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='led_init_default_state_get' mangled-name='led_init_default_state_get' filepath='drivers/leds/led-core.c' line='481' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_init_default_state_get'>
+        <parameter type-id='4a935625' name='fwnode' filepath='drivers/leds/led-core.c' line='481' column='1'/>
+        <return type-id='0abd3de9'/>
+      </function-decl>
+      <function-decl name='led_set_brightness' mangled-name='led_set_brightness' filepath='drivers/leds/led-core.c' line='241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_set_brightness'>
+        <parameter type-id='bd1c8eb6' name='led_cdev' filepath='drivers/leds/led-core.c' line='241' column='1'/>
+        <parameter type-id='f0981eeb' name='brightness' filepath='drivers/leds/led-core.c' line='241' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='led_set_brightness_sync' mangled-name='led_set_brightness_sync' filepath='drivers/leds/led-core.c' line='291' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_set_brightness_sync'>
+        <parameter type-id='bd1c8eb6' name='led_cdev' filepath='drivers/leds/led-core.c' line='291' column='1'/>
+        <parameter type-id='f0981eeb' name='value' filepath='drivers/leds/led-core.c' line='291' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='led_set_flash_brightness' mangled-name='led_set_flash_brightness' filepath='drivers/leds/led-class-flash.c' line='410' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_set_flash_brightness'>
+        <parameter type-id='26deddb9' name='fled_cdev' filepath='drivers/leds/led-class-flash.c' line='410' column='1'/>
+        <parameter type-id='19c2251e' name='brightness' filepath='drivers/leds/led-class-flash.c' line='411' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='led_set_flash_timeout' mangled-name='led_set_flash_timeout' filepath='drivers/leds/led-class-flash.c' line='389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_set_flash_timeout'>
+        <parameter type-id='26deddb9' name='fled_cdev' filepath='drivers/leds/led-class-flash.c' line='389' column='1'/>
+        <parameter type-id='19c2251e' name='timeout' filepath='drivers/leds/led-class-flash.c' line='389' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='led_sysfs_disable' mangled-name='led_sysfs_disable' filepath='drivers/leds/led-core.c' line='347' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_sysfs_disable'>
+        <parameter type-id='bd1c8eb6' name='led_cdev' filepath='drivers/leds/led-core.c' line='347' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='led_sysfs_enable' mangled-name='led_sysfs_enable' filepath='drivers/leds/led-core.c' line='356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_sysfs_enable'>
+        <parameter type-id='bd1c8eb6' name='led_cdev' filepath='drivers/leds/led-core.c' line='356' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='led_trigger_blink_oneshot' mangled-name='led_trigger_blink_oneshot' filepath='drivers/leds/led-triggers.c' line='424' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_trigger_blink_oneshot'>
+        <parameter type-id='db6d90a1' name='trig' filepath='drivers/leds/led-triggers.c' line='424' column='1'/>
+        <parameter type-id='1d2c2b85' name='delay_on' filepath='drivers/leds/led-triggers.c' line='425' column='1'/>
+        <parameter type-id='1d2c2b85' name='delay_off' filepath='drivers/leds/led-triggers.c' line='426' column='1'/>
+        <parameter type-id='95e97e5e' name='invert' filepath='drivers/leds/led-triggers.c' line='427' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='led_trigger_event' mangled-name='led_trigger_event' filepath='drivers/leds/led-triggers.c' line='377' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_trigger_event'>
+        <parameter type-id='db6d90a1' name='trig' filepath='drivers/leds/led-triggers.c' line='377' column='1'/>
+        <parameter type-id='fa598f35' name='brightness' filepath='drivers/leds/led-triggers.c' line='378' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='led_trigger_register' mangled-name='led_trigger_register' filepath='drivers/leds/led-triggers.c' line='283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_trigger_register'>
+        <parameter type-id='db6d90a1' name='trig' filepath='drivers/leds/led-triggers.c' line='283' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='led_trigger_register_simple' mangled-name='led_trigger_register_simple' filepath='drivers/leds/led-triggers.c' line='433' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_trigger_register_simple'>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/leds/led-triggers.c' line='433' column='1'/>
+        <parameter type-id='f87a8ad1' name='tp' filepath='drivers/leds/led-triggers.c' line='433' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='led_trigger_remove' mangled-name='led_trigger_remove' filepath='drivers/leds/led-triggers.c' line='238' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_trigger_remove'>
+        <parameter type-id='bd1c8eb6' name='led_cdev' filepath='drivers/leds/led-triggers.c' line='238' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='led_trigger_unregister' mangled-name='led_trigger_unregister' filepath='drivers/leds/led-triggers.c' line='323' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_trigger_unregister'>
+        <parameter type-id='db6d90a1' name='trig' filepath='drivers/leds/led-triggers.c' line='323' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='led_trigger_unregister_simple' mangled-name='led_trigger_unregister_simple' filepath='drivers/leds/led-triggers.c' line='457' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_trigger_unregister_simple'>
+        <parameter type-id='db6d90a1' name='trig' filepath='drivers/leds/led-triggers.c' line='457' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='led_update_brightness' mangled-name='led_update_brightness' filepath='drivers/leds/led-core.c' line='305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_update_brightness'>
+        <parameter type-id='bd1c8eb6' name='led_cdev' filepath='drivers/leds/led-core.c' line='305' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='led_update_flash_brightness' mangled-name='led_update_flash_brightness' filepath='drivers/leds/led-class-flash.c' line='426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_update_flash_brightness'>
+        <parameter type-id='26deddb9' name='fled_cdev' filepath='drivers/leds/led-class-flash.c' line='426' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='linear_range_get_max_value' mangled-name='linear_range_get_max_value' filepath='lib/linear_ranges.c' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='linear_range_get_max_value'>
+        <parameter type-id='0c90828b' name='r' filepath='lib/linear_ranges.c' line='70' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='linear_range_get_selector_within' mangled-name='linear_range_get_selector_within' filepath='lib/linear_ranges.c' line='255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='linear_range_get_selector_within'>
+        <parameter type-id='0c90828b' name='r' filepath='lib/linear_ranges.c' line='255' column='1'/>
+        <parameter type-id='f0981eeb' name='val' filepath='lib/linear_ranges.c' line='256' column='1'/>
+        <parameter type-id='807869d3' name='selector' filepath='lib/linear_ranges.c' line='256' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='linear_range_get_value' mangled-name='linear_range_get_value' filepath='lib/linear_ranges.c' line='87' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='linear_range_get_value'>
+        <parameter type-id='0c90828b' name='r' filepath='lib/linear_ranges.c' line='87' column='1'/>
+        <parameter type-id='f0981eeb' name='selector' filepath='lib/linear_ranges.c' line='87' column='1'/>
+        <parameter type-id='807869d3' name='val' filepath='lib/linear_ranges.c' line='88' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='linkwatch_fire_event' mangled-name='linkwatch_fire_event' filepath='net/core/link_watch.c' line='257' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='linkwatch_fire_event'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/link_watch.c' line='257' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='list_sort' mangled-name='list_sort' filepath='lib/list_sort.c' line='185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='list_sort'>
+        <parameter type-id='eaa32e2f' name='priv' filepath='lib/list_sort.c' line='185' column='1'/>
+        <parameter type-id='e84b031a' name='head' filepath='lib/list_sort.c' line='185' column='1'/>
+        <parameter type-id='9c752ec9' name='cmp' filepath='lib/list_sort.c' line='185' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ll_rw_block' mangled-name='ll_rw_block' filepath='fs/buffer.c' line='3092' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ll_rw_block'>
+        <parameter type-id='95e97e5e' name='op' filepath='fs/buffer.c' line='3092' column='1'/>
+        <parameter type-id='95e97e5e' name='op_flags' filepath='fs/buffer.c' line='3092' column='1'/>
+        <parameter type-id='95e97e5e' name='nr' filepath='fs/buffer.c' line='3092' column='1'/>
+        <parameter type-id='64906f72' name='bhs' filepath='fs/buffer.c' line='3092' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='llist_add_batch' mangled-name='llist_add_batch' filepath='lib/llist.c' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='llist_add_batch'>
+        <parameter type-id='023b769e' name='new_first' filepath='lib/llist.c' line='26' column='1'/>
+        <parameter type-id='023b769e' name='new_last' filepath='lib/llist.c' line='26' column='1'/>
+        <parameter type-id='b0222d74' name='head' filepath='lib/llist.c' line='27' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='llist_reverse_order' mangled-name='llist_reverse_order' filepath='lib/llist.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='llist_reverse_order'>
+        <parameter type-id='023b769e' name='head' filepath='lib/llist.c' line='79' column='1'/>
+        <return type-id='023b769e'/>
+      </function-decl>
+      <function-decl name='load_nls' mangled-name='load_nls' filepath='fs/nls/nls_base.c' line='291' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='load_nls'>
+        <parameter type-id='26a90f95' name='charset' filepath='fs/nls/nls_base.c' line='291' column='1'/>
+        <return type-id='b084f8bb'/>
+      </function-decl>
+      <function-decl name='load_nls_default' mangled-name='load_nls_default' filepath='fs/nls/nls_base.c' line='532' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='load_nls_default'>
+        <return type-id='b084f8bb'/>
+      </function-decl>
+      <function-decl name='lock_sock_nested' mangled-name='lock_sock_nested' filepath='net/core/sock.c' line='3229' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lock_sock_nested'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/core/sock.c' line='3229' column='1'/>
+        <parameter type-id='95e97e5e' name='subclass' filepath='net/core/sock.c' line='3229' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='lockref_get' mangled-name='lockref_get' filepath='lib/lockref.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lockref_get'>
+        <parameter type-id='5bfdb453' name='lockref' filepath='lib/lockref.c' line='43' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='log_abnormal_wakeup_reason' mangled-name='log_abnormal_wakeup_reason' filepath='kernel/power/wakeup_reason.c' line='249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='log_abnormal_wakeup_reason'>
+        <parameter type-id='80f4b756' name='fmt' filepath='kernel/power/wakeup_reason.c' line='249' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='log_post_read_mmio' mangled-name='log_post_read_mmio' filepath='lib/trace_readwrite.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='log_post_read_mmio'>
+        <parameter type-id='91ce1af9' name='val' filepath='lib/trace_readwrite.c' line='40' column='1'/>
+        <parameter type-id='f9b06939' name='width' filepath='lib/trace_readwrite.c' line='40' column='1'/>
+        <parameter type-id='60f8eab0' name='addr' filepath='lib/trace_readwrite.c' line='40' column='1'/>
+        <parameter type-id='7359adad' name='caller_addr' filepath='lib/trace_readwrite.c' line='41' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='log_post_write_mmio' mangled-name='log_post_write_mmio' filepath='lib/trace_readwrite.c' line='24' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='log_post_write_mmio'>
+        <parameter type-id='91ce1af9' name='val' filepath='lib/trace_readwrite.c' line='24' column='1'/>
+        <parameter type-id='f9b06939' name='width' filepath='lib/trace_readwrite.c' line='24' column='1'/>
+        <parameter type-id='fe09dd29' name='addr' filepath='lib/trace_readwrite.c' line='24' column='1'/>
+        <parameter type-id='7359adad' name='caller_addr' filepath='lib/trace_readwrite.c' line='25' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='log_read_mmio' mangled-name='log_read_mmio' filepath='lib/trace_readwrite.c' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='log_read_mmio'>
+        <parameter type-id='f9b06939' name='width' filepath='lib/trace_readwrite.c' line='32' column='1'/>
+        <parameter type-id='60f8eab0' name='addr' filepath='lib/trace_readwrite.c' line='32' column='1'/>
+        <parameter type-id='7359adad' name='caller_addr' filepath='lib/trace_readwrite.c' line='33' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='log_suspend_abort_reason' mangled-name='log_suspend_abort_reason' filepath='kernel/power/wakeup_reason.c' line='239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='log_suspend_abort_reason'>
+        <parameter type-id='80f4b756' name='fmt' filepath='kernel/power/wakeup_reason.c' line='239' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='log_threaded_irq_wakeup_reason' mangled-name='log_threaded_irq_wakeup_reason' filepath='kernel/power/wakeup_reason.c' line='173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='log_threaded_irq_wakeup_reason'>
+        <parameter type-id='95e97e5e' name='irq' filepath='kernel/power/wakeup_reason.c' line='173' column='1'/>
+        <parameter type-id='95e97e5e' name='parent_irq' filepath='kernel/power/wakeup_reason.c' line='173' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='log_write_mmio' mangled-name='log_write_mmio' filepath='lib/trace_readwrite.c' line='16' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='log_write_mmio'>
+        <parameter type-id='91ce1af9' name='val' filepath='lib/trace_readwrite.c' line='16' column='1'/>
+        <parameter type-id='f9b06939' name='width' filepath='lib/trace_readwrite.c' line='16' column='1'/>
+        <parameter type-id='fe09dd29' name='addr' filepath='lib/trace_readwrite.c' line='16' column='1'/>
+        <parameter type-id='7359adad' name='caller_addr' filepath='lib/trace_readwrite.c' line='17' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='logfc' mangled-name='logfc' filepath='fs/fs_context.c' line='385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='logfc'>
+        <parameter type-id='d1a78aeb' name='log' filepath='fs/fs_context.c' line='385' column='1'/>
+        <parameter type-id='80f4b756' name='prefix' filepath='fs/fs_context.c' line='385' column='1'/>
+        <parameter type-id='a84c031d' name='level' filepath='fs/fs_context.c' line='385' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='fs/fs_context.c' line='385' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='lookup_bdev' mangled-name='lookup_bdev' filepath='block/bdev.c' line='970' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lookup_bdev'>
+        <parameter type-id='80f4b756' name='pathname' filepath='block/bdev.c' line='970' column='1'/>
+        <parameter type-id='33f86a47' name='dev' filepath='block/bdev.c' line='970' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='lookup_page_ext' mangled-name='lookup_page_ext' filepath='mm/page_ext.c' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lookup_page_ext'>
+        <parameter type-id='b72f2447' name='page' filepath='mm/page_ext.c' line='262' column='1'/>
+        <return type-id='459ae684'/>
+      </function-decl>
+      <var-decl name='loops_per_jiffy' type-id='7359adad' mangled-name='loops_per_jiffy' visibility='default' filepath='init/main.c' line='233' column='1' elf-symbol-id='loops_per_jiffy'/>
+      <function-decl name='lru_cache_add' mangled-name='lru_cache_add' filepath='mm/swap.c' line='482' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lru_cache_add'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/swap.c' line='482' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='lzo1x_1_compress' mangled-name='lzo1x_1_compress' filepath='lib/lzo/lzo1x_compress.c' line='381' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzo1x_1_compress'>
+        <parameter type-id='354f7eb9' name='in' filepath='lib/lzo/lzo1x_compress.c' line='381' column='1'/>
+        <parameter type-id='b59d7dce' name='in_len' filepath='lib/lzo/lzo1x_compress.c' line='381' column='1'/>
+        <parameter type-id='cf536864' name='out' filepath='lib/lzo/lzo1x_compress.c' line='382' column='1'/>
+        <parameter type-id='78c01427' name='out_len' filepath='lib/lzo/lzo1x_compress.c' line='382' column='1'/>
+        <parameter type-id='eaa32e2f' name='wrkmem' filepath='lib/lzo/lzo1x_compress.c' line='383' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='lzo1x_decompress_safe' mangled-name='lzo1x_decompress_safe' filepath='lib/lzo/lzo1x_decompress_safe.c' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzo1x_decompress_safe'>
+        <parameter type-id='354f7eb9' name='in' filepath='lib/lzo/lzo1x_decompress_safe.c' line='39' column='1'/>
+        <parameter type-id='b59d7dce' name='in_len' filepath='lib/lzo/lzo1x_decompress_safe.c' line='39' column='1'/>
+        <parameter type-id='cf536864' name='out' filepath='lib/lzo/lzo1x_decompress_safe.c' line='40' column='1'/>
+        <parameter type-id='78c01427' name='out_len' filepath='lib/lzo/lzo1x_decompress_safe.c' line='40' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='lzorle1x_1_compress' mangled-name='lzorle1x_1_compress' filepath='lib/lzo/lzo1x_compress.c' line='388' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzorle1x_1_compress'>
+        <parameter type-id='354f7eb9' name='in' filepath='lib/lzo/lzo1x_compress.c' line='388' column='1'/>
+        <parameter type-id='b59d7dce' name='in_len' filepath='lib/lzo/lzo1x_compress.c' line='388' column='1'/>
+        <parameter type-id='cf536864' name='out' filepath='lib/lzo/lzo1x_compress.c' line='389' column='1'/>
+        <parameter type-id='78c01427' name='out_len' filepath='lib/lzo/lzo1x_compress.c' line='389' column='1'/>
+        <parameter type-id='eaa32e2f' name='wrkmem' filepath='lib/lzo/lzo1x_compress.c' line='390' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mac_pton' mangled-name='mac_pton' filepath='lib/net_utils.c' line='7' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mac_pton'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/net_utils.c' line='7' column='1'/>
+        <parameter type-id='8bff8096' name='mac' filepath='lib/net_utils.c' line='7' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='make_bad_inode' mangled-name='make_bad_inode' filepath='fs/bad_inode.c' line='207' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='make_bad_inode'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/bad_inode.c' line='207' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mangle_path' mangled-name='mangle_path' filepath='fs/seq_file.c' line='456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mangle_path'>
+        <parameter type-id='26a90f95' name='s' filepath='fs/seq_file.c' line='456' column='1'/>
+        <parameter type-id='80f4b756' name='p' filepath='fs/seq_file.c' line='456' column='1'/>
+        <parameter type-id='80f4b756' name='esc' filepath='fs/seq_file.c' line='456' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='mark_buffer_async_write' mangled-name='mark_buffer_async_write' filepath='fs/buffer.c' line='418' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mark_buffer_async_write'>
+        <parameter type-id='c485c22c' name='bh' filepath='fs/buffer.c' line='418' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mark_buffer_dirty' mangled-name='mark_buffer_dirty' filepath='fs/buffer.c' line='1082' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mark_buffer_dirty'>
+        <parameter type-id='c485c22c' name='bh' filepath='fs/buffer.c' line='1082' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mark_buffer_write_io_error' mangled-name='mark_buffer_write_io_error' filepath='fs/buffer.c' line='1117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mark_buffer_write_io_error'>
+        <parameter type-id='c485c22c' name='bh' filepath='fs/buffer.c' line='1117' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mark_page_accessed' mangled-name='mark_page_accessed' filepath='mm/swap.c' line='436' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mark_page_accessed'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/swap.c' line='436' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='match_hex' mangled-name='match_hex' filepath='lib/parser.c' line='264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='match_hex'>
+        <parameter type-id='4d03589b' name='s' filepath='lib/parser.c' line='264' column='1'/>
+        <parameter type-id='7292109c' name='result' filepath='lib/parser.c' line='264' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='match_int' mangled-name='match_int' filepath='lib/parser.c' line='191' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='match_int'>
+        <parameter type-id='4d03589b' name='s' filepath='lib/parser.c' line='191' column='1'/>
+        <parameter type-id='7292109c' name='result' filepath='lib/parser.c' line='191' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='match_octal' mangled-name='match_octal' filepath='lib/parser.c' line='248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='match_octal'>
+        <parameter type-id='4d03589b' name='s' filepath='lib/parser.c' line='248' column='1'/>
+        <parameter type-id='7292109c' name='result' filepath='lib/parser.c' line='248' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='match_strdup' mangled-name='match_strdup' filepath='lib/parser.c' line='358' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='match_strdup'>
+        <parameter type-id='aade06e2' name='s' filepath='lib/parser.c' line='358' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='match_string' mangled-name='match_string' filepath='lib/string.c' line='735' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='match_string'>
+        <parameter type-id='13956559' name='array' filepath='lib/string.c' line='735' column='1'/>
+        <parameter type-id='b59d7dce' name='n' filepath='lib/string.c' line='735' column='1'/>
+        <parameter type-id='80f4b756' name='string' filepath='lib/string.c' line='735' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='match_token' mangled-name='match_token' filepath='lib/parser.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='match_token'>
+        <parameter type-id='26a90f95' name='s' filepath='lib/parser.c' line='106' column='1'/>
+        <parameter type-id='a58c17e3' name='table' filepath='lib/parser.c' line='106' column='1'/>
+        <parameter type-id='4d03589b' name='args' filepath='lib/parser.c' line='106' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mbox_chan_received_data' mangled-name='mbox_chan_received_data' filepath='drivers/mailbox/mailbox.c' line='152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mbox_chan_received_data'>
+        <parameter type-id='339c87e8' name='chan' filepath='drivers/mailbox/mailbox.c' line='152' column='1'/>
+        <parameter type-id='eaa32e2f' name='mssg' filepath='drivers/mailbox/mailbox.c' line='152' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mbox_chan_txdone' mangled-name='mbox_chan_txdone' filepath='drivers/mailbox/mailbox.c' line='170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mbox_chan_txdone'>
+        <parameter type-id='339c87e8' name='chan' filepath='drivers/mailbox/mailbox.c' line='170' column='1'/>
+        <parameter type-id='95e97e5e' name='r' filepath='drivers/mailbox/mailbox.c' line='170' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mbox_client_txdone' mangled-name='mbox_client_txdone' filepath='drivers/mailbox/mailbox.c' line='191' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mbox_client_txdone'>
+        <parameter type-id='339c87e8' name='chan' filepath='drivers/mailbox/mailbox.c' line='191' column='1'/>
+        <parameter type-id='95e97e5e' name='r' filepath='drivers/mailbox/mailbox.c' line='191' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mbox_controller_register' mangled-name='mbox_controller_register' filepath='drivers/mailbox/mailbox.c' line='478' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mbox_controller_register'>
+        <parameter type-id='fb648468' name='mbox' filepath='drivers/mailbox/mailbox.c' line='478' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mbox_controller_unregister' mangled-name='mbox_controller_unregister' filepath='drivers/mailbox/mailbox.c' line='529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mbox_controller_unregister'>
+        <parameter type-id='fb648468' name='mbox' filepath='drivers/mailbox/mailbox.c' line='529' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mbox_free_channel' mangled-name='mbox_free_channel' filepath='drivers/mailbox/mailbox.c' line='438' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mbox_free_channel'>
+        <parameter type-id='339c87e8' name='chan' filepath='drivers/mailbox/mailbox.c' line='438' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mbox_request_channel' mangled-name='mbox_request_channel' filepath='drivers/mailbox/mailbox.c' line='331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mbox_request_channel'>
+        <parameter type-id='aeae13b9' name='cl' filepath='drivers/mailbox/mailbox.c' line='331' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/mailbox/mailbox.c' line='331' column='1'/>
+        <return type-id='339c87e8'/>
+      </function-decl>
+      <function-decl name='mbox_request_channel_byname' mangled-name='mbox_request_channel_byname' filepath='drivers/mailbox/mailbox.c' line='402' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mbox_request_channel_byname'>
+        <parameter type-id='aeae13b9' name='cl' filepath='drivers/mailbox/mailbox.c' line='402' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/mailbox/mailbox.c' line='403' column='1'/>
+        <return type-id='339c87e8'/>
+      </function-decl>
+      <function-decl name='mbox_send_message' mangled-name='mbox_send_message' filepath='drivers/mailbox/mailbox.c' line='250' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mbox_send_message'>
+        <parameter type-id='339c87e8' name='chan' filepath='drivers/mailbox/mailbox.c' line='250' column='1'/>
+        <parameter type-id='eaa32e2f' name='mssg' filepath='drivers/mailbox/mailbox.c' line='250' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mctrl_gpio_disable_ms' mangled-name='mctrl_gpio_disable_ms' filepath='drivers/tty/serial/serial_mctrl_gpio.c' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mctrl_gpio_disable_ms'>
+        <parameter type-id='967c9384' name='gpios' filepath='drivers/tty/serial/serial_mctrl_gpio.c' line='281' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mctrl_gpio_enable_ms' mangled-name='mctrl_gpio_enable_ms' filepath='drivers/tty/serial/serial_mctrl_gpio.c' line='256' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mctrl_gpio_enable_ms'>
+        <parameter type-id='967c9384' name='gpios' filepath='drivers/tty/serial/serial_mctrl_gpio.c' line='256' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mctrl_gpio_get' mangled-name='mctrl_gpio_get' filepath='drivers/tty/serial/serial_mctrl_gpio.c' line='76' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mctrl_gpio_get'>
+        <parameter type-id='967c9384' name='gpios' filepath='drivers/tty/serial/serial_mctrl_gpio.c' line='76' column='1'/>
+        <parameter type-id='807869d3' name='mctrl' filepath='drivers/tty/serial/serial_mctrl_gpio.c' line='76' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='mctrl_gpio_init' mangled-name='mctrl_gpio_init' filepath='drivers/tty/serial/serial_mctrl_gpio.c' line='192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mctrl_gpio_init'>
+        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_mctrl_gpio.c' line='192' column='1'/>
+        <parameter type-id='f0981eeb' name='idx' filepath='drivers/tty/serial/serial_mctrl_gpio.c' line='192' column='1'/>
+        <return type-id='967c9384'/>
+      </function-decl>
+      <function-decl name='mctrl_gpio_set' mangled-name='mctrl_gpio_set' filepath='drivers/tty/serial/serial_mctrl_gpio.c' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mctrl_gpio_set'>
+        <parameter type-id='967c9384' name='gpios' filepath='drivers/tty/serial/serial_mctrl_gpio.c' line='45' column='1'/>
+        <parameter type-id='f0981eeb' name='mctrl' filepath='drivers/tty/serial/serial_mctrl_gpio.c' line='45' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mdio_device_create' mangled-name='mdio_device_create' filepath='drivers/net/phy/mdio_device.c' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdio_device_create'>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_device.c' line='49' column='1'/>
+        <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_device.c' line='49' column='1'/>
+        <return type-id='efa21d3b'/>
+      </function-decl>
+      <function-decl name='mdio_device_free' mangled-name='mdio_device_free' filepath='drivers/net/phy/mdio_device.c' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdio_device_free'>
+        <parameter type-id='efa21d3b' name='mdiodev' filepath='drivers/net/phy/mdio_device.c' line='26' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mdio_device_reset' mangled-name='mdio_device_reset' filepath='drivers/net/phy/mdio_device.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdio_device_reset'>
+        <parameter type-id='efa21d3b' name='mdiodev' filepath='drivers/net/phy/mdio_device.c' line='118' column='1'/>
+        <parameter type-id='95e97e5e' name='value' filepath='drivers/net/phy/mdio_device.c' line='118' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mdiobus_alloc_size' mangled-name='mdiobus_alloc_size' filepath='drivers/net/phy/mdio_bus.c' line='142' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_alloc_size'>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/net/phy/mdio_bus.c' line='142' column='1'/>
+        <return type-id='ff47b24b'/>
+      </function-decl>
+      <function-decl name='mdiobus_free' mangled-name='mdiobus_free' filepath='drivers/net/phy/mdio_bus.c' line='658' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_free'>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='658' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mdiobus_get_phy' mangled-name='mdiobus_get_phy' filepath='drivers/net/phy/mdio_bus.c' line='109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_get_phy'>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='109' column='1'/>
+        <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='109' column='1'/>
+        <return type-id='7efbcaaf'/>
+      </function-decl>
+      <function-decl name='mdiobus_is_registered_device' mangled-name='mdiobus_is_registered_device' filepath='drivers/net/phy/mdio_bus.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_is_registered_device'>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='128' column='1'/>
+        <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='128' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='mdiobus_read' mangled-name='mdiobus_read' filepath='drivers/net/phy/mdio_bus.c' line='862' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_read'>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='862' column='1'/>
+        <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='862' column='1'/>
+        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='862' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mdiobus_unregister' mangled-name='mdiobus_unregister' filepath='drivers/net/phy/mdio_bus.c' line='621' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_unregister'>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='621' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mdiobus_write' mangled-name='mdiobus_write' filepath='drivers/net/phy/mdio_bus.c' line='911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_write'>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='911' column='1'/>
+        <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='911' column='1'/>
+        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='911' column='1'/>
+        <parameter type-id='1dc6a898' name='val' filepath='drivers/net/phy/mdio_bus.c' line='911' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='media_create_intf_link' mangled-name='media_create_intf_link' filepath='drivers/media/mc/mc-entity.c' line='968' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_create_intf_link'>
+        <parameter type-id='19e05b5f' name='entity' filepath='drivers/media/mc/mc-entity.c' line='968' column='1'/>
+        <parameter type-id='afe1ccd7' name='intf' filepath='drivers/media/mc/mc-entity.c' line='969' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='drivers/media/mc/mc-entity.c' line='970' column='1'/>
+        <return type-id='b4de78ea'/>
+      </function-decl>
+      <function-decl name='media_create_pad_link' mangled-name='media_create_pad_link' filepath='drivers/media/mc/mc-entity.c' line='660' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_create_pad_link'>
+        <parameter type-id='19e05b5f' name='source' filepath='drivers/media/mc/mc-entity.c' line='660' column='1'/>
+        <parameter type-id='1dc6a898' name='source_pad' filepath='drivers/media/mc/mc-entity.c' line='660' column='1'/>
+        <parameter type-id='19e05b5f' name='sink' filepath='drivers/media/mc/mc-entity.c' line='661' column='1'/>
+        <parameter type-id='1dc6a898' name='sink_pad' filepath='drivers/media/mc/mc-entity.c' line='661' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='drivers/media/mc/mc-entity.c' line='661' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='media_create_pad_links' mangled-name='media_create_pad_links' filepath='drivers/media/mc/mc-entity.c' line='716' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_create_pad_links'>
+        <parameter type-id='4e756b23' name='mdev' filepath='drivers/media/mc/mc-entity.c' line='716' column='1'/>
+        <parameter type-id='51bb592e' name='source_function' filepath='drivers/media/mc/mc-entity.c' line='717' column='1'/>
+        <parameter type-id='19e05b5f' name='source' filepath='drivers/media/mc/mc-entity.c' line='718' column='1'/>
+        <parameter type-id='d5c0a628' name='source_pad' filepath='drivers/media/mc/mc-entity.c' line='719' column='1'/>
+        <parameter type-id='51bb592e' name='sink_function' filepath='drivers/media/mc/mc-entity.c' line='720' column='1'/>
+        <parameter type-id='19e05b5f' name='sink' filepath='drivers/media/mc/mc-entity.c' line='721' column='1'/>
+        <parameter type-id='d5c0a628' name='sink_pad' filepath='drivers/media/mc/mc-entity.c' line='722' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='drivers/media/mc/mc-entity.c' line='723' column='1'/>
+        <parameter type-id='4ab96a04' name='allow_both_undefined' filepath='drivers/media/mc/mc-entity.c' line='724' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='media_device_cleanup' mangled-name='media_device_cleanup' filepath='drivers/media/mc/mc-device.c' line='722' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_device_cleanup'>
+        <parameter type-id='e2929c1c' name='mdev' filepath='drivers/media/mc/mc-device.c' line='722' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='media_device_init' mangled-name='media_device_init' filepath='drivers/media/mc/mc-device.c' line='704' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_device_init'>
+        <parameter type-id='e2929c1c' name='mdev' filepath='drivers/media/mc/mc-device.c' line='704' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='media_device_register_entity' mangled-name='media_device_register_entity' filepath='drivers/media/mc/mc-device.c' line='616' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_device_register_entity'>
+        <parameter type-id='e2929c1c' name='mdev' filepath='drivers/media/mc/mc-device.c' line='616' column='1'/>
+        <parameter type-id='19e05b5f' name='entity' filepath='drivers/media/mc/mc-device.c' line='617' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='media_device_register_entity_notify' mangled-name='media_device_register_entity_notify' filepath='drivers/media/mc/mc-device.c' line='773' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_device_register_entity_notify'>
+        <parameter type-id='e2929c1c' name='mdev' filepath='drivers/media/mc/mc-device.c' line='773' column='1'/>
+        <parameter type-id='12054f29' name='nptr' filepath='drivers/media/mc/mc-device.c' line='774' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='media_device_unregister' mangled-name='media_device_unregister' filepath='drivers/media/mc/mc-device.c' line='801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_device_unregister'>
+        <parameter type-id='e2929c1c' name='mdev' filepath='drivers/media/mc/mc-device.c' line='801' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='media_device_unregister_entity' mangled-name='media_device_unregister_entity' filepath='drivers/media/mc/mc-device.c' line='681' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_device_unregister_entity'>
+        <parameter type-id='19e05b5f' name='entity' filepath='drivers/media/mc/mc-device.c' line='681' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='media_devnode_create' mangled-name='media_devnode_create' filepath='drivers/media/mc/mc-entity.c' line='940' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_devnode_create'>
+        <parameter type-id='e2929c1c' name='mdev' filepath='drivers/media/mc/mc-entity.c' line='940' column='1'/>
+        <parameter type-id='19c2251e' name='type' filepath='drivers/media/mc/mc-entity.c' line='941' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='drivers/media/mc/mc-entity.c' line='941' column='1'/>
+        <parameter type-id='19c2251e' name='major' filepath='drivers/media/mc/mc-entity.c' line='942' column='1'/>
+        <parameter type-id='19c2251e' name='minor' filepath='drivers/media/mc/mc-entity.c' line='942' column='1'/>
+        <return type-id='8114c6c9'/>
+      </function-decl>
+      <function-decl name='media_devnode_remove' mangled-name='media_devnode_remove' filepath='drivers/media/mc/mc-entity.c' line='960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_devnode_remove'>
+        <parameter type-id='8114c6c9' name='devnode' filepath='drivers/media/mc/mc-entity.c' line='960' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='media_entity_find_link' mangled-name='media_entity_find_link' filepath='drivers/media/mc/mc-entity.c' line='890' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_entity_find_link'>
+        <parameter type-id='50a51839' name='source' filepath='drivers/media/mc/mc-entity.c' line='890' column='1'/>
+        <parameter type-id='50a51839' name='sink' filepath='drivers/media/mc/mc-entity.c' line='890' column='1'/>
+        <return type-id='b4de78ea'/>
+      </function-decl>
+      <function-decl name='media_entity_pads_init' mangled-name='media_entity_pads_init' filepath='drivers/media/mc/mc-entity.c' line='197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_entity_pads_init'>
+        <parameter type-id='19e05b5f' name='entity' filepath='drivers/media/mc/mc-entity.c' line='197' column='1'/>
+        <parameter type-id='1dc6a898' name='num_pads' filepath='drivers/media/mc/mc-entity.c' line='197' column='1'/>
+        <parameter type-id='50a51839' name='pads' filepath='drivers/media/mc/mc-entity.c' line='198' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='media_entity_remote_pad' mangled-name='media_entity_remote_pad' filepath='drivers/media/mc/mc-entity.c' line='906' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_entity_remote_pad'>
+        <parameter type-id='42a2b4e8' name='pad' filepath='drivers/media/mc/mc-entity.c' line='906' column='1'/>
+        <return type-id='50a51839'/>
+      </function-decl>
+      <function-decl name='media_entity_remove_links' mangled-name='media_entity_remove_links' filepath='drivers/media/mc/mc-entity.c' line='793' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_entity_remove_links'>
+        <parameter type-id='19e05b5f' name='entity' filepath='drivers/media/mc/mc-entity.c' line='793' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='media_entity_setup_link' mangled-name='media_entity_setup_link' filepath='drivers/media/mc/mc-entity.c' line='877' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_entity_setup_link'>
+        <parameter type-id='b4de78ea' name='link' filepath='drivers/media/mc/mc-entity.c' line='877' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='drivers/media/mc/mc-entity.c' line='877' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='media_get_pad_index' mangled-name='media_get_pad_index' filepath='drivers/media/mc/mc-entity.c' line='633' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_get_pad_index'>
+        <parameter type-id='19e05b5f' name='entity' filepath='drivers/media/mc/mc-entity.c' line='633' column='1'/>
+        <parameter type-id='b50a4934' name='is_sink' filepath='drivers/media/mc/mc-entity.c' line='633' column='1'/>
+        <parameter type-id='ec7f70f4' name='sig_type' filepath='drivers/media/mc/mc-entity.c' line='634' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='media_graph_walk_cleanup' mangled-name='media_graph_walk_cleanup' filepath='drivers/media/mc/mc-entity.c' line='288' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_graph_walk_cleanup'>
+        <parameter type-id='375e0126' name='graph' filepath='drivers/media/mc/mc-entity.c' line='288' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='media_graph_walk_init' mangled-name='media_graph_walk_init' filepath='drivers/media/mc/mc-entity.c' line='277' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_graph_walk_init'>
+        <parameter type-id='375e0126' name='graph' filepath='drivers/media/mc/mc-entity.c' line='278' column='1'/>
+        <parameter type-id='e2929c1c' name='mdev' filepath='drivers/media/mc/mc-entity.c' line='278' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='media_graph_walk_next' mangled-name='media_graph_walk_next' filepath='drivers/media/mc/mc-entity.c' line='346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_graph_walk_next'>
+        <parameter type-id='375e0126' name='graph' filepath='drivers/media/mc/mc-entity.c' line='346' column='1'/>
+        <return type-id='19e05b5f'/>
+      </function-decl>
+      <function-decl name='media_graph_walk_start' mangled-name='media_graph_walk_start' filepath='drivers/media/mc/mc-entity.c' line='294' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_graph_walk_start'>
+        <parameter type-id='375e0126' name='graph' filepath='drivers/media/mc/mc-entity.c' line='294' column='1'/>
+        <parameter type-id='19e05b5f' name='entity' filepath='drivers/media/mc/mc-entity.c' line='295' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='media_pipeline_start' mangled-name='media_pipeline_start' filepath='drivers/media/mc/mc-entity.c' line='533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_pipeline_start'>
+        <parameter type-id='19e05b5f' name='entity' filepath='drivers/media/mc/mc-entity.c' line='533' column='1'/>
+        <parameter type-id='4ffae8c8' name='pipe' filepath='drivers/media/mc/mc-entity.c' line='534' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='media_pipeline_stop' mangled-name='media_pipeline_stop' filepath='drivers/media/mc/mc-entity.c' line='575' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_pipeline_stop'>
+        <parameter type-id='19e05b5f' name='entity' filepath='drivers/media/mc/mc-entity.c' line='575' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='media_request_get_by_fd' mangled-name='media_request_get_by_fd' filepath='drivers/media/mc/mc-request.c' line='247' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_request_get_by_fd'>
+        <parameter type-id='e2929c1c' name='mdev' filepath='drivers/media/mc/mc-request.c' line='247' column='1'/>
+        <parameter type-id='95e97e5e' name='request_fd' filepath='drivers/media/mc/mc-request.c' line='247' column='1'/>
+        <return type-id='ac429605'/>
+      </function-decl>
+      <function-decl name='media_request_object_complete' mangled-name='media_request_object_complete' filepath='drivers/media/mc/mc-request.c' line='483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_request_object_complete'>
+        <parameter type-id='347d8ccd' name='obj' filepath='drivers/media/mc/mc-request.c' line='483' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='media_request_put' mangled-name='media_request_put' filepath='drivers/media/mc/mc-request.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_request_put'>
+        <parameter type-id='ac429605' name='req' filepath='drivers/media/mc/mc-request.c' line='79' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mem_cgroup_from_id' mangled-name='mem_cgroup_from_id' filepath='mm/memcontrol.c' line='5155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mem_cgroup_from_id'>
+        <parameter type-id='8efea9e5' name='id' filepath='mm/memcontrol.c' line='5155' column='1'/>
+        <return type-id='223696fb'/>
+      </function-decl>
+      <function-decl name='mem_cgroup_update_lru_size' mangled-name='mem_cgroup_update_lru_size' filepath='mm/memcontrol.c' line='1324' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mem_cgroup_update_lru_size'>
+        <parameter type-id='71480a3e' name='lruvec' filepath='mm/memcontrol.c' line='1324' column='1'/>
+        <parameter type-id='04110eaa' name='lru' filepath='mm/memcontrol.c' line='1324' column='1'/>
+        <parameter type-id='95e97e5e' name='zid' filepath='mm/memcontrol.c' line='1325' column='1'/>
+        <parameter type-id='95e97e5e' name='nr_pages' filepath='mm/memcontrol.c' line='1325' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mem_dump_obj' mangled-name='mem_dump_obj' filepath='mm/util.c' line='1111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mem_dump_obj'>
+        <parameter type-id='eaa32e2f' name='object' filepath='mm/util.c' line='1111' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mem_encrypt_active' mangled-name='mem_encrypt_active' filepath='arch/arm64/mm/mem_encrypt.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mem_encrypt_active'>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <var-decl name='mem_section' type-id='e66f2caa' mangled-name='mem_section' visibility='default' filepath='mm/sparse.c' line='27' column='1' elf-symbol-id='mem_section'/>
+      <function-decl name='memblock_end_of_DRAM' mangled-name='memblock_end_of_DRAM' filepath='mm/memblock.c' line='1649' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='memblock_end_of_DRAM'>
+        <return type-id='2522883d'/>
+      </function-decl>
+      <function-decl name='memblock_free' mangled-name='memblock_free' filepath='mm/memblock.c' line='826' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='memblock_free'>
+        <parameter type-id='2522883d' name='base' filepath='mm/memblock.c' line='826' column='1'/>
+        <parameter type-id='2522883d' name='size' filepath='mm/memblock.c' line='826' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='memchr_inv' mangled-name='memchr_inv' filepath='lib/string.c' line='1099' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='memchr_inv'>
+        <parameter type-id='eaa32e2f' name='start' filepath='lib/string.c' line='1099' column='1'/>
+        <parameter type-id='95e97e5e' name='c' filepath='lib/string.c' line='1099' column='1'/>
+        <parameter type-id='b59d7dce' name='bytes' filepath='lib/string.c' line='1099' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='memcpy_and_pad' mangled-name='memcpy_and_pad' filepath='lib/string_helpers.c' line='708' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='memcpy_and_pad'>
+        <parameter type-id='eaa32e2f' name='dest' filepath='lib/string_helpers.c' line='708' column='1'/>
+        <parameter type-id='b59d7dce' name='dest_len' filepath='lib/string_helpers.c' line='708' column='1'/>
+        <parameter type-id='eaa32e2f' name='src' filepath='lib/string_helpers.c' line='708' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/string_helpers.c' line='708' column='1'/>
+        <parameter type-id='95e97e5e' name='pad' filepath='lib/string_helpers.c' line='709' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='memdup_user' mangled-name='memdup_user' filepath='mm/util.c' line='173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='memdup_user'>
+        <parameter type-id='eaa32e2f' name='src' filepath='mm/util.c' line='173' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='mm/util.c' line='173' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='memdup_user_nul' mangled-name='memdup_user_nul' filepath='mm/util.c' line='255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='memdup_user_nul'>
+        <parameter type-id='eaa32e2f' name='src' filepath='mm/util.c' line='255' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='mm/util.c' line='255' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='memory_block_size_bytes' mangled-name='memory_block_size_bytes' filepath='drivers/base/memory.c' line='112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='memory_block_size_bytes'>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <var-decl name='memory_cgrp_subsys' type-id='1d115fd5' mangled-name='memory_cgrp_subsys' visibility='default' filepath='mm/memcontrol.c' line='6615' column='1' elf-symbol-id='memory_cgrp_subsys'/>
+      <var-decl name='memory_cgrp_subsys_enabled_key' type-id='49a0ad34' mangled-name='memory_cgrp_subsys_enabled_key' visibility='default' filepath='include/linux/cgroup_subsys.h' line='29' column='1' elf-symbol-id='memory_cgrp_subsys_enabled_key'/>
+      <function-decl name='memory_read_from_buffer' mangled-name='memory_read_from_buffer' filepath='fs/libfs.c' line='799' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='memory_read_from_buffer'>
+        <parameter type-id='eaa32e2f' name='to' filepath='fs/libfs.c' line='799' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='fs/libfs.c' line='799' column='1'/>
+        <parameter type-id='b53e8dbb' name='ppos' filepath='fs/libfs.c' line='799' column='1'/>
+        <parameter type-id='eaa32e2f' name='from' filepath='fs/libfs.c' line='800' column='1'/>
+        <parameter type-id='b59d7dce' name='available' filepath='fs/libfs.c' line='800' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='memparse' mangled-name='memparse' filepath='lib/cmdline.c' line='150' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='memparse'>
+        <parameter type-id='80f4b756' name='ptr' filepath='lib/cmdline.c' line='150' column='1'/>
+        <parameter type-id='9b23c9ad' name='retptr' filepath='lib/cmdline.c' line='150' column='1'/>
+        <return type-id='0d77e947'/>
+      </function-decl>
+      <function-decl name='mempool_alloc' mangled-name='mempool_alloc' filepath='mm/mempool.c' line='375' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mempool_alloc'>
+        <parameter type-id='78713e8f' name='pool' filepath='mm/mempool.c' line='375' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/mempool.c' line='375' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='mempool_alloc_pages' mangled-name='mempool_alloc_pages' filepath='mm/mempool.c' line='545' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mempool_alloc_pages'>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/mempool.c' line='545' column='1'/>
+        <parameter type-id='eaa32e2f' name='pool_data' filepath='mm/mempool.c' line='545' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='mempool_alloc_slab' mangled-name='mempool_alloc_slab' filepath='mm/mempool.c' line='509' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mempool_alloc_slab'>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/mempool.c' line='509' column='1'/>
+        <parameter type-id='eaa32e2f' name='pool_data' filepath='mm/mempool.c' line='509' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='mempool_create' mangled-name='mempool_create' filepath='mm/mempool.c' line='253' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mempool_create'>
+        <parameter type-id='95e97e5e' name='min_nr' filepath='mm/mempool.c' line='253' column='1'/>
+        <parameter type-id='8bf6d789' name='alloc_fn' filepath='mm/mempool.c' line='253' column='1'/>
+        <parameter type-id='a4c19f22' name='free_fn' filepath='mm/mempool.c' line='254' column='1'/>
+        <parameter type-id='eaa32e2f' name='pool_data' filepath='mm/mempool.c' line='254' column='1'/>
+        <return type-id='78713e8f'/>
+      </function-decl>
+      <function-decl name='mempool_create_node' mangled-name='mempool_create_node' filepath='mm/mempool.c' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mempool_create_node'>
+        <parameter type-id='95e97e5e' name='min_nr' filepath='mm/mempool.c' line='261' column='1'/>
+        <parameter type-id='8bf6d789' name='alloc_fn' filepath='mm/mempool.c' line='261' column='1'/>
+        <parameter type-id='a4c19f22' name='free_fn' filepath='mm/mempool.c' line='262' column='1'/>
+        <parameter type-id='eaa32e2f' name='pool_data' filepath='mm/mempool.c' line='262' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/mempool.c' line='263' column='1'/>
+        <parameter type-id='95e97e5e' name='node_id' filepath='mm/mempool.c' line='263' column='1'/>
+        <return type-id='78713e8f'/>
+      </function-decl>
+      <function-decl name='mempool_destroy' mangled-name='mempool_destroy' filepath='mm/mempool.c' line='170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mempool_destroy'>
+        <parameter type-id='78713e8f' name='pool' filepath='mm/mempool.c' line='170' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mempool_free' mangled-name='mempool_free' filepath='mm/mempool.c' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mempool_free'>
+        <parameter type-id='eaa32e2f' name='element' filepath='mm/mempool.c' line='452' column='1'/>
+        <parameter type-id='78713e8f' name='pool' filepath='mm/mempool.c' line='452' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mempool_free_pages' mangled-name='mempool_free_pages' filepath='mm/mempool.c' line='552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mempool_free_pages'>
+        <parameter type-id='eaa32e2f' name='element' filepath='mm/mempool.c' line='552' column='1'/>
+        <parameter type-id='eaa32e2f' name='pool_data' filepath='mm/mempool.c' line='552' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mempool_free_slab' mangled-name='mempool_free_slab' filepath='mm/mempool.c' line='517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mempool_free_slab'>
+        <parameter type-id='eaa32e2f' name='element' filepath='mm/mempool.c' line='517' column='1'/>
+        <parameter type-id='eaa32e2f' name='pool_data' filepath='mm/mempool.c' line='517' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mempool_kfree' mangled-name='mempool_kfree' filepath='mm/mempool.c' line='535' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mempool_kfree'>
+        <parameter type-id='eaa32e2f' name='element' filepath='mm/mempool.c' line='535' column='1'/>
+        <parameter type-id='eaa32e2f' name='pool_data' filepath='mm/mempool.c' line='535' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mempool_kmalloc' mangled-name='mempool_kmalloc' filepath='mm/mempool.c' line='528' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mempool_kmalloc'>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/mempool.c' line='528' column='1'/>
+        <parameter type-id='eaa32e2f' name='pool_data' filepath='mm/mempool.c' line='528' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='mempool_resize' mangled-name='mempool_resize' filepath='mm/mempool.c' line='299' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mempool_resize'>
+        <parameter type-id='78713e8f' name='pool' filepath='mm/mempool.c' line='299' column='1'/>
+        <parameter type-id='95e97e5e' name='new_min_nr' filepath='mm/mempool.c' line='299' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='memremap' mangled-name='memremap' filepath='kernel/iomem.c' line='71' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='memremap'>
+        <parameter type-id='acc63fdf' name='offset' filepath='kernel/iomem.c' line='71' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/iomem.c' line='71' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='kernel/iomem.c' line='71' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='memset32' mangled-name='memset32' filepath='lib/string.c' line='839' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='memset32'>
+        <parameter type-id='90421557' name='s' filepath='lib/string.c' line='839' column='1'/>
+        <parameter type-id='8f92235e' name='v' filepath='lib/string.c' line='839' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/string.c' line='839' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='memset64' mangled-name='memset64' filepath='lib/string.c' line='861' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='memset64'>
+        <parameter type-id='5d6479ae' name='s' filepath='lib/string.c' line='861' column='1'/>
+        <parameter type-id='9c313c2d' name='v' filepath='lib/string.c' line='861' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/string.c' line='861' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <var-decl name='memstart_addr' type-id='9b7c55ef' mangled-name='memstart_addr' visibility='default' filepath='arch/arm64/mm/init.c' line='55' column='1' elf-symbol-id='memstart_addr'/>
+      <function-decl name='memunmap' mangled-name='memunmap' filepath='kernel/iomem.c' line='122' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='memunmap'>
+        <parameter type-id='eaa32e2f' name='addr' filepath='kernel/iomem.c' line='122' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mfd_add_devices' mangled-name='mfd_add_devices' filepath='drivers/mfd/mfd-core.c' line='325' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mfd_add_devices'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/mfd/mfd-core.c' line='325' column='1'/>
+        <parameter type-id='95e97e5e' name='id' filepath='drivers/mfd/mfd-core.c' line='325' column='1'/>
+        <parameter type-id='1447e860' name='cells' filepath='drivers/mfd/mfd-core.c' line='326' column='1'/>
+        <parameter type-id='95e97e5e' name='n_devs' filepath='drivers/mfd/mfd-core.c' line='326' column='1'/>
+        <parameter type-id='c9d64c0d' name='mem_base' filepath='drivers/mfd/mfd-core.c' line='327' column='1'/>
+        <parameter type-id='95e97e5e' name='irq_base' filepath='drivers/mfd/mfd-core.c' line='328' column='1'/>
+        <parameter type-id='7544e824' name='domain' filepath='drivers/mfd/mfd-core.c' line='328' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mfd_remove_devices' mangled-name='mfd_remove_devices' filepath='drivers/mfd/mfd-core.c' line='383' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mfd_remove_devices'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/mfd/mfd-core.c' line='383' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='migrate_page_copy' mangled-name='migrate_page_copy' filepath='mm/migrate.c' line='625' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='migrate_page_copy'>
+        <parameter type-id='02f11ed4' name='newpage' filepath='mm/migrate.c' line='625' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/migrate.c' line='625' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='migrate_page_move_mapping' mangled-name='migrate_page_move_mapping' filepath='mm/migrate.c' line='388' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='migrate_page_move_mapping'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/migrate.c' line='388' column='1'/>
+        <parameter type-id='02f11ed4' name='newpage' filepath='mm/migrate.c' line='389' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/migrate.c' line='389' column='1'/>
+        <parameter type-id='95e97e5e' name='extra_count' filepath='mm/migrate.c' line='389' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='migrate_page_states' mangled-name='migrate_page_states' filepath='mm/migrate.c' line='551' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='migrate_page_states'>
+        <parameter type-id='02f11ed4' name='newpage' filepath='mm/migrate.c' line='551' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/migrate.c' line='551' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='migrate_pages' mangled-name='migrate_pages' filepath='mm/migrate.c' line='1454' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='migrate_pages'>
+        <parameter type-id='e84b031a' name='from' filepath='mm/migrate.c' line='1454' column='1'/>
+        <parameter type-id='355404d0' name='get_new_page' filepath='mm/migrate.c' line='1454' column='1'/>
+        <parameter type-id='7d2f2ada' name='put_new_page' filepath='mm/migrate.c' line='1455' column='1'/>
+        <parameter type-id='7359adad' name='private' filepath='mm/migrate.c' line='1455' column='1'/>
+        <parameter type-id='157252dd' name='mode' filepath='mm/migrate.c' line='1456' column='1'/>
+        <parameter type-id='95e97e5e' name='reason' filepath='mm/migrate.c' line='1456' column='1'/>
+        <parameter type-id='807869d3' name='ret_succeeded' filepath='mm/migrate.c' line='1456' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='migrate_swap' mangled-name='migrate_swap' filepath='kernel/sched/core.c' line='3231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='migrate_swap'>
+        <parameter type-id='f23e2572' name='cur' filepath='kernel/sched/core.c' line='3231' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='3231' column='1'/>
+        <parameter type-id='95e97e5e' name='target_cpu' filepath='kernel/sched/core.c' line='3232' column='1'/>
+        <parameter type-id='95e97e5e' name='curr_cpu' filepath='kernel/sched/core.c' line='3232' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mii_check_media' mangled-name='mii_check_media' filepath='drivers/net/mii.c' line='502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mii_check_media'>
+        <parameter type-id='f0150b1d' name='mii' filepath='drivers/net/mii.c' line='502' column='1'/>
+        <parameter type-id='f0981eeb' name='ok_to_print' filepath='drivers/net/mii.c' line='503' column='1'/>
+        <parameter type-id='f0981eeb' name='init_media' filepath='drivers/net/mii.c' line='504' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='mii_ethtool_get_link_ksettings' mangled-name='mii_ethtool_get_link_ksettings' filepath='drivers/net/mii.c' line='142' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mii_ethtool_get_link_ksettings'>
+        <parameter type-id='f0150b1d' name='mii' filepath='drivers/net/mii.c' line='142' column='1'/>
+        <parameter type-id='70de91e2' name='cmd' filepath='drivers/net/mii.c' line='143' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mii_ethtool_gset' mangled-name='mii_ethtool_gset' filepath='drivers/net/mii.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mii_ethtool_gset'>
+        <parameter type-id='f0150b1d' name='mii' filepath='drivers/net/mii.c' line='53' column='1'/>
+        <parameter type-id='d064f511' name='ecmd' filepath='drivers/net/mii.c' line='53' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mii_ethtool_set_link_ksettings' mangled-name='mii_ethtool_set_link_ksettings' filepath='drivers/net/mii.c' line='327' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mii_ethtool_set_link_ksettings'>
+        <parameter type-id='f0150b1d' name='mii' filepath='drivers/net/mii.c' line='327' column='1'/>
+        <parameter type-id='b2c34f11' name='cmd' filepath='drivers/net/mii.c' line='328' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mii_link_ok' mangled-name='mii_link_ok' filepath='drivers/net/mii.c' line='442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mii_link_ok'>
+        <parameter type-id='f0150b1d' name='mii' filepath='drivers/net/mii.c' line='442' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mii_nway_restart' mangled-name='mii_nway_restart' filepath='drivers/net/mii.c' line='457' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mii_nway_restart'>
+        <parameter type-id='f0150b1d' name='mii' filepath='drivers/net/mii.c' line='457' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_attach' mangled-name='mipi_dsi_attach' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='323' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_attach'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='323' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_compression_mode' mangled-name='mipi_dsi_compression_mode' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='562' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_compression_mode'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='562' column='1'/>
+        <parameter type-id='b50a4934' name='enable' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='562' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_create_packet' mangled-name='mipi_dsi_create_packet' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_create_packet'>
+        <parameter type-id='368a0122' name='packet' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='442' column='1'/>
+        <parameter type-id='001b67aa' name='msg' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='443' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_dcs_enter_sleep_mode' mangled-name='mipi_dsi_dcs_enter_sleep_mode' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='895' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_dcs_enter_sleep_mode'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='895' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_dcs_exit_sleep_mode' mangled-name='mipi_dsi_dcs_exit_sleep_mode' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='914' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_dcs_exit_sleep_mode'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='914' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_dcs_get_display_brightness' mangled-name='mipi_dsi_dcs_get_display_brightness' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_dcs_get_display_brightness'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1128' column='1'/>
+        <parameter type-id='26d4d46f' name='brightness' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1129' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_dcs_read' mangled-name='mipi_dsi_dcs_read' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='786' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_dcs_read'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='786' column='1'/>
+        <parameter type-id='f9b06939' name='cmd' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='786' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='786' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='787' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_dcs_set_column_address' mangled-name='mipi_dsi_dcs_set_column_address' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='973' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_dcs_set_column_address'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='973' column='1'/>
+        <parameter type-id='1dc6a898' name='start' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='973' column='1'/>
+        <parameter type-id='1dc6a898' name='end' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='974' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_dcs_set_display_brightness' mangled-name='mipi_dsi_dcs_set_display_brightness' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_dcs_set_display_brightness'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1105' column='1'/>
+        <parameter type-id='1dc6a898' name='brightness' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1106' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_dcs_set_display_off' mangled-name='mipi_dsi_dcs_set_display_off' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='933' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_dcs_set_display_off'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='933' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_dcs_set_display_on' mangled-name='mipi_dsi_dcs_set_display_on' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='952' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_dcs_set_display_on'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='952' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_dcs_set_page_address' mangled-name='mipi_dsi_dcs_set_page_address' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='997' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_dcs_set_page_address'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='997' column='1'/>
+        <parameter type-id='1dc6a898' name='start' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='997' column='1'/>
+        <parameter type-id='1dc6a898' name='end' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='998' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_dcs_set_pixel_format' mangled-name='mipi_dsi_dcs_set_pixel_format' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1062' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_dcs_set_pixel_format'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1062' column='1'/>
+        <parameter type-id='f9b06939' name='format' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1062' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_dcs_set_tear_off' mangled-name='mipi_dsi_dcs_set_tear_off' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1019' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_dcs_set_tear_off'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1019' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_dcs_set_tear_on' mangled-name='mipi_dsi_dcs_set_tear_on' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1039' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_dcs_set_tear_on'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1039' column='1'/>
+        <parameter type-id='fab62dae' name='mode' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1040' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_dcs_set_tear_scanline' mangled-name='mipi_dsi_dcs_set_tear_scanline' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1083' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_dcs_set_tear_scanline'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1083' column='1'/>
+        <parameter type-id='1dc6a898' name='scanline' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1083' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_dcs_soft_reset' mangled-name='mipi_dsi_dcs_soft_reset' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='826' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_dcs_soft_reset'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='826' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_dcs_write' mangled-name='mipi_dsi_dcs_write' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='746' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_dcs_write'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='746' column='1'/>
+        <parameter type-id='f9b06939' name='cmd' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='746' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='747' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='747' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_dcs_write_buffer' mangled-name='mipi_dsi_dcs_write_buffer' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='703' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_dcs_write_buffer'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='703' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='704' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='704' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_detach' mangled-name='mipi_dsi_detach' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='338' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_detach'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='338' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_device_register_full' mangled-name='mipi_dsi_device_register_full' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='201' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_device_register_full'>
+        <parameter type-id='c149fe34' name='host' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='201' column='1'/>
+        <parameter type-id='4b2c3420' name='info' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='202' column='1'/>
+        <return type-id='182be7cc'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_device_unregister' mangled-name='mipi_dsi_device_unregister' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_device_unregister'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='243' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_driver_register_full' mangled-name='mipi_dsi_driver_register_full' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1229' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_driver_register_full'>
+        <parameter type-id='0588e2f0' name='drv' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1229' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1230' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_driver_unregister' mangled-name='mipi_dsi_driver_unregister' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1252' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_driver_unregister'>
+        <parameter type-id='0588e2f0' name='drv' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='1252' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_generic_read' mangled-name='mipi_dsi_generic_read' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='659' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_generic_read'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='659' column='1'/>
+        <parameter type-id='eaa32e2f' name='params' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='659' column='1'/>
+        <parameter type-id='b59d7dce' name='num_params' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='660' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='660' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='660' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_generic_write' mangled-name='mipi_dsi_generic_write' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='614' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_generic_write'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='614' column='1'/>
+        <parameter type-id='eaa32e2f' name='payload' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='614' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='615' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_host_register' mangled-name='mipi_dsi_host_register' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_host_register'>
+        <parameter type-id='c149fe34' name='host' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='280' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_host_unregister' mangled-name='mipi_dsi_host_unregister' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='309' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_host_unregister'>
+        <parameter type-id='c149fe34' name='host' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='309' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_packet_format_is_long' mangled-name='mipi_dsi_packet_format_is_long' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='408' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_packet_format_is_long'>
+        <parameter type-id='f9b06939' name='type' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='408' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_picture_parameter_set' mangled-name='mipi_dsi_picture_parameter_set' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='587' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_picture_parameter_set'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='587' column='1'/>
+        <parameter type-id='2b4a193c' name='pps' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='588' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='mipi_dsi_set_maximum_return_packet_size' mangled-name='mipi_dsi_set_maximum_return_packet_size' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='536' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mipi_dsi_set_maximum_return_packet_size'>
+        <parameter type-id='182be7cc' name='dsi' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='536' column='1'/>
+        <parameter type-id='1dc6a898' name='value' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='537' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='misc_deregister' mangled-name='misc_deregister' filepath='drivers/char/misc.c' line='239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='misc_deregister'>
+        <parameter type-id='c63257f7' name='misc' filepath='drivers/char/misc.c' line='239' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='misc_register' mangled-name='misc_register' filepath='drivers/char/misc.c' line='173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='misc_register'>
+        <parameter type-id='c63257f7' name='misc' filepath='drivers/char/misc.c' line='173' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mktime64' mangled-name='mktime64' filepath='kernel/time/time.c' line='431' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mktime64'>
+        <parameter type-id='20f5f452' name='year0' filepath='kernel/time/time.c' line='431' column='1'/>
+        <parameter type-id='20f5f452' name='mon0' filepath='kernel/time/time.c' line='431' column='1'/>
+        <parameter type-id='20f5f452' name='day' filepath='kernel/time/time.c' line='432' column='1'/>
+        <parameter type-id='20f5f452' name='hour' filepath='kernel/time/time.c' line='432' column='1'/>
+        <parameter type-id='20f5f452' name='min' filepath='kernel/time/time.c' line='433' column='1'/>
+        <parameter type-id='20f5f452' name='sec' filepath='kernel/time/time.c' line='433' column='1'/>
+        <return type-id='1afd27ac'/>
+      </function-decl>
+      <function-decl name='mmc_add_host' mangled-name='mmc_add_host' filepath='drivers/mmc/core/host.c' line='610' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_add_host'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/host.c' line='610' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_alloc_host' mangled-name='mmc_alloc_host' filepath='drivers/mmc/core/host.c' line='523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_alloc_host'>
+        <parameter type-id='95e97e5e' name='extra' filepath='drivers/mmc/core/host.c' line='523' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/mmc/core/host.c' line='523' column='1'/>
+        <return type-id='dd575c43'/>
+      </function-decl>
+      <function-decl name='mmc_can_gpio_cd' mangled-name='mmc_can_gpio_cd' filepath='drivers/mmc/core/slot-gpio.c' line='208' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_can_gpio_cd'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/slot-gpio.c' line='208' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='mmc_card_is_blockaddr' mangled-name='mmc_card_is_blockaddr' filepath='drivers/mmc/core/core.c' line='1985' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_card_is_blockaddr'>
+        <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/core.c' line='1985' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='mmc_cmdq_disable' mangled-name='mmc_cmdq_disable' filepath='drivers/mmc/core/mmc_ops.c' line='1001' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_cmdq_disable'>
+        <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/mmc_ops.c' line='1001' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_cmdq_enable' mangled-name='mmc_cmdq_enable' filepath='drivers/mmc/core/mmc_ops.c' line='995' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_cmdq_enable'>
+        <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/mmc_ops.c' line='995' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_cqe_post_req' mangled-name='mmc_cqe_post_req' filepath='drivers/mmc/core/core.c' line='516' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_cqe_post_req'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/core.c' line='516' column='1'/>
+        <parameter type-id='47f117d4' name='mrq' filepath='drivers/mmc/core/core.c' line='516' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmc_cqe_request_done' mangled-name='mmc_cqe_request_done' filepath='drivers/mmc/core/core.c' line='482' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_cqe_request_done'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/core.c' line='482' column='1'/>
+        <parameter type-id='47f117d4' name='mrq' filepath='drivers/mmc/core/core.c' line='482' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmc_detect_change' mangled-name='mmc_detect_change' filepath='drivers/mmc/core/core.c' line='1439' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_detect_change'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/core.c' line='1439' column='1'/>
+        <parameter type-id='7359adad' name='delay' filepath='drivers/mmc/core/core.c' line='1439' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmc_execute_tuning' mangled-name='mmc_execute_tuning' filepath='drivers/mmc/core/core.c' line='922' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_execute_tuning'>
+        <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/core.c' line='922' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_free_host' mangled-name='mmc_free_host' filepath='drivers/mmc/core/host.c' line='663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_free_host'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/host.c' line='663' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmc_get_card' mangled-name='mmc_get_card' filepath='drivers/mmc/core/core.c' line='857' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_get_card'>
+        <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/core.c' line='857' column='1'/>
+        <parameter type-id='f1e196e0' name='ctx' filepath='drivers/mmc/core/core.c' line='857' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmc_get_ext_csd' mangled-name='mmc_get_ext_csd' filepath='drivers/mmc/core/mmc_ops.c' line='342' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_get_ext_csd'>
+        <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/mmc_ops.c' line='342' column='1'/>
+        <parameter type-id='1f37a7f4' name='new_ext_csd' filepath='drivers/mmc/core/mmc_ops.c' line='342' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_gpio_get_cd' mangled-name='mmc_gpio_get_cd' filepath='drivers/mmc/core/slot-gpio.c' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_gpio_get_cd'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/slot-gpio.c' line='80' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_gpio_get_ro' mangled-name='mmc_gpio_get_ro' filepath='drivers/mmc/core/slot-gpio.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_gpio_get_ro'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/slot-gpio.c' line='69' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_gpio_set_cd_wake' mangled-name='mmc_gpio_set_cd_wake' filepath='drivers/mmc/core/slot-gpio.c' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_gpio_set_cd_wake'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/slot-gpio.c' line='129' column='1'/>
+        <parameter type-id='b50a4934' name='on' filepath='drivers/mmc/core/slot-gpio.c' line='129' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_gpiod_request_cd' mangled-name='mmc_gpiod_request_cd' filepath='drivers/mmc/core/slot-gpio.c' line='176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_gpiod_request_cd'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/slot-gpio.c' line='176' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/mmc/core/slot-gpio.c' line='176' column='1'/>
+        <parameter type-id='f0981eeb' name='idx' filepath='drivers/mmc/core/slot-gpio.c' line='177' column='1'/>
+        <parameter type-id='b50a4934' name='override_active_level' filepath='drivers/mmc/core/slot-gpio.c' line='177' column='1'/>
+        <parameter type-id='f0981eeb' name='debounce' filepath='drivers/mmc/core/slot-gpio.c' line='178' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_gpiod_request_ro' mangled-name='mmc_gpiod_request_ro' filepath='drivers/mmc/core/slot-gpio.c' line='225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_gpiod_request_ro'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/slot-gpio.c' line='225' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/mmc/core/slot-gpio.c' line='225' column='1'/>
+        <parameter type-id='f0981eeb' name='idx' filepath='drivers/mmc/core/slot-gpio.c' line='226' column='1'/>
+        <parameter type-id='f0981eeb' name='debounce' filepath='drivers/mmc/core/slot-gpio.c' line='226' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_hs200_tuning' mangled-name='mmc_hs200_tuning' filepath='drivers/mmc/core/mmc.c' line='1570' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_hs200_tuning'>
+        <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/mmc.c' line='1570' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_hw_reset' mangled-name='mmc_hw_reset' filepath='drivers/mmc/core/core.c' line='2025' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_hw_reset'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/core.c' line='2025' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_issue_type' mangled-name='mmc_issue_type' filepath='drivers/mmc/core/queue.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_issue_type'>
+        <parameter type-id='49b40d32' name='mq' filepath='drivers/mmc/core/queue.c' line='60' column='1'/>
+        <parameter type-id='3dad1a48' name='req' filepath='drivers/mmc/core/queue.c' line='60' column='1'/>
+        <return type-id='013ef24c'/>
+      </function-decl>
+      <function-decl name='mmc_of_parse' mangled-name='mmc_of_parse' filepath='drivers/mmc/core/host.c' line='277' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_of_parse'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/host.c' line='277' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_of_parse_voltage' mangled-name='mmc_of_parse_voltage' filepath='drivers/mmc/core/host.c' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_of_parse_voltage'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/host.c' line='449' column='1'/>
+        <parameter type-id='f9409001' name='mask' filepath='drivers/mmc/core/host.c' line='449' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_prepare_busy_cmd' mangled-name='mmc_prepare_busy_cmd' filepath='drivers/mmc/core/mmc_ops.c' line='529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_prepare_busy_cmd'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/mmc_ops.c' line='529' column='1'/>
+        <parameter type-id='6df3750c' name='cmd' filepath='drivers/mmc/core/mmc_ops.c' line='529' column='1'/>
+        <parameter type-id='f0981eeb' name='timeout_ms' filepath='drivers/mmc/core/mmc_ops.c' line='530' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='mmc_put_card' mangled-name='mmc_put_card' filepath='drivers/mmc/core/core.c' line='868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_put_card'>
+        <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/core.c' line='868' column='1'/>
+        <parameter type-id='f1e196e0' name='ctx' filepath='drivers/mmc/core/core.c' line='868' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmc_pwrseq_register' mangled-name='mmc_pwrseq_register' filepath='drivers/mmc/core/pwrseq.c' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_pwrseq_register'>
+        <parameter type-id='0d786921' name='pwrseq' filepath='drivers/mmc/core/pwrseq.c' line='96' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_pwrseq_unregister' mangled-name='mmc_pwrseq_unregister' filepath='drivers/mmc/core/pwrseq.c' line='109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_pwrseq_unregister'>
+        <parameter type-id='0d786921' name='pwrseq' filepath='drivers/mmc/core/pwrseq.c' line='109' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmc_regulator_get_supply' mangled-name='mmc_regulator_get_supply' filepath='drivers/mmc/core/regulator.c' line='245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_regulator_get_supply'>
+        <parameter type-id='dd575c43' name='mmc' filepath='drivers/mmc/core/regulator.c' line='245' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_regulator_set_ocr' mangled-name='mmc_regulator_set_ocr' filepath='drivers/mmc/core/regulator.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_regulator_set_ocr'>
+        <parameter type-id='dd575c43' name='mmc' filepath='drivers/mmc/core/regulator.c' line='106' column='1'/>
+        <parameter type-id='850c13f6' name='supply' filepath='drivers/mmc/core/regulator.c' line='107' column='1'/>
+        <parameter type-id='8efea9e5' name='vdd_bit' filepath='drivers/mmc/core/regulator.c' line='108' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_regulator_set_vqmmc' mangled-name='mmc_regulator_set_vqmmc' filepath='drivers/mmc/core/regulator.c' line='179' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_regulator_set_vqmmc'>
+        <parameter type-id='dd575c43' name='mmc' filepath='drivers/mmc/core/regulator.c' line='179' column='1'/>
+        <parameter type-id='3b590e48' name='ios' filepath='drivers/mmc/core/regulator.c' line='179' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_release_host' mangled-name='mmc_release_host' filepath='drivers/mmc/core/core.c' line='828' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_release_host'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/core.c' line='828' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmc_remove_host' mangled-name='mmc_remove_host' filepath='drivers/mmc/core/host.c' line='642' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_remove_host'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/host.c' line='642' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmc_request_done' mangled-name='mmc_request_done' filepath='drivers/mmc/core/core.c' line='139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_request_done'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/core.c' line='139' column='1'/>
+        <parameter type-id='47f117d4' name='mrq' filepath='drivers/mmc/core/core.c' line='139' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmc_retune_hold' mangled-name='mmc_retune_hold' filepath='drivers/mmc/core/host.c' line='163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_retune_hold'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/host.c' line='163' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmc_retune_release' mangled-name='mmc_retune_release' filepath='drivers/mmc/core/host.c' line='171' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_retune_release'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/host.c' line='171' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmc_retune_timer_stop' mangled-name='mmc_retune_timer_stop' filepath='drivers/mmc/core/host.c' line='157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_retune_timer_stop'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/host.c' line='157' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmc_select_bus_width' mangled-name='mmc_select_bus_width' filepath='drivers/mmc/core/mmc.c' line='999' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_select_bus_width'>
+        <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/mmc.c' line='999' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_select_card' mangled-name='mmc_select_card' filepath='drivers/mmc/core/mmc_ops.c' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_select_card'>
+        <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/mmc_ops.c' line='108' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_select_hs' mangled-name='mmc_select_hs' filepath='drivers/mmc/core/mmc.c' line='1069' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_select_hs'>
+        <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/mmc.c' line='1069' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_select_hs400' mangled-name='mmc_select_hs400' filepath='drivers/mmc/core/mmc.c' line='1159' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_select_hs400'>
+        <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/mmc.c' line='1159' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_select_hs_ddr' mangled-name='mmc_select_hs_ddr' filepath='drivers/mmc/core/mmc.c' line='1088' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_select_hs_ddr'>
+        <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/mmc.c' line='1088' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_select_timing' mangled-name='mmc_select_timing' filepath='drivers/mmc/core/mmc.c' line='1539' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_select_timing'>
+        <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/mmc.c' line='1539' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_send_status' mangled-name='mmc_send_status' filepath='drivers/mmc/core/mmc_ops.c' line='85' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_send_status'>
+        <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/mmc_ops.c' line='85' column='1'/>
+        <parameter type-id='f9409001' name='status' filepath='drivers/mmc/core/mmc_ops.c' line='85' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_send_tuning' mangled-name='mmc_send_tuning' filepath='drivers/mmc/core/mmc_ops.c' line='639' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_send_tuning'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/mmc_ops.c' line='639' column='1'/>
+        <parameter type-id='19c2251e' name='opcode' filepath='drivers/mmc/core/mmc_ops.c' line='639' column='1'/>
+        <parameter type-id='7292109c' name='cmd_error' filepath='drivers/mmc/core/mmc_ops.c' line='639' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_set_blocklen' mangled-name='mmc_set_blocklen' filepath='drivers/mmc/core/core.c' line='1991' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_set_blocklen'>
+        <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/core.c' line='1991' column='1'/>
+        <parameter type-id='f0981eeb' name='blocklen' filepath='drivers/mmc/core/core.c' line='1991' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_set_bus_mode' mangled-name='mmc_set_bus_mode' filepath='drivers/mmc/core/core.c' line='960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_set_bus_mode'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/core.c' line='960' column='1'/>
+        <parameter type-id='f0981eeb' name='mode' filepath='drivers/mmc/core/core.c' line='960' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmc_set_bus_width' mangled-name='mmc_set_bus_width' filepath='drivers/mmc/core/core.c' line='970' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_set_bus_width'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/core.c' line='970' column='1'/>
+        <parameter type-id='f0981eeb' name='width' filepath='drivers/mmc/core/core.c' line='970' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmc_set_clock' mangled-name='mmc_set_clock' filepath='drivers/mmc/core/core.c' line='910' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_set_clock'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/core.c' line='910' column='1'/>
+        <parameter type-id='f0981eeb' name='hz' filepath='drivers/mmc/core/core.c' line='910' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmc_set_data_timeout' mangled-name='mmc_set_data_timeout' filepath='drivers/mmc/core/core.c' line='649' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_set_data_timeout'>
+        <parameter type-id='6de64ec1' name='data' filepath='drivers/mmc/core/core.c' line='649' column='1'/>
+        <parameter type-id='652034a8' name='card' filepath='drivers/mmc/core/core.c' line='649' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmc_set_initial_state' mangled-name='mmc_set_initial_state' filepath='drivers/mmc/core/core.c' line='980' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_set_initial_state'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/core.c' line='980' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmc_set_timing' mangled-name='mmc_set_timing' filepath='drivers/mmc/core/core.c' line='1274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_set_timing'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/core.c' line='1274' column='1'/>
+        <parameter type-id='f0981eeb' name='timing' filepath='drivers/mmc/core/core.c' line='1274' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmc_sw_reset' mangled-name='mmc_sw_reset' filepath='drivers/mmc/core/core.c' line='2038' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_sw_reset'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/core.c' line='2038' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_switch' mangled-name='mmc_switch' filepath='drivers/mmc/core/mmc_ops.c' line='631' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_switch'>
+        <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/mmc_ops.c' line='631' column='1'/>
+        <parameter type-id='f9b06939' name='set' filepath='drivers/mmc/core/mmc_ops.c' line='631' column='1'/>
+        <parameter type-id='f9b06939' name='index' filepath='drivers/mmc/core/mmc_ops.c' line='631' column='1'/>
+        <parameter type-id='f9b06939' name='value' filepath='drivers/mmc/core/mmc_ops.c' line='631' column='1'/>
+        <parameter type-id='f0981eeb' name='timeout_ms' filepath='drivers/mmc/core/mmc_ops.c' line='632' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_wait_for_cmd' mangled-name='mmc_wait_for_cmd' filepath='drivers/mmc/core/core.c' line='622' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_wait_for_cmd'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/core.c' line='622' column='1'/>
+        <parameter type-id='6df3750c' name='cmd' filepath='drivers/mmc/core/core.c' line='622' column='1'/>
+        <parameter type-id='95e97e5e' name='retries' filepath='drivers/mmc/core/core.c' line='622' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mmc_wait_for_req' mangled-name='mmc_wait_for_req' filepath='drivers/mmc/core/core.c' line='603' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_wait_for_req'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/core.c' line='603' column='1'/>
+        <parameter type-id='47f117d4' name='mrq' filepath='drivers/mmc/core/core.c' line='603' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmput' mangled-name='mmput' filepath='kernel/fork.c' line='1188' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmput'>
+        <parameter type-id='df4b7819' name='mm' filepath='kernel/fork.c' line='1188' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mmu_notifier_synchronize' mangled-name='mmu_notifier_synchronize' filepath='mm/mmu_notifier.c' line='1118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmu_notifier_synchronize'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mnt_drop_write_file' mangled-name='mnt_drop_write_file' filepath='fs/namespace.c' line='465' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mnt_drop_write_file'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/namespace.c' line='465' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mnt_want_write_file' mangled-name='mnt_want_write_file' filepath='fs/namespace.c' line='417' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mnt_want_write_file'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/namespace.c' line='417' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mod_delayed_work_on' mangled-name='mod_delayed_work_on' filepath='kernel/workqueue.c' line='1746' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mod_delayed_work_on'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/workqueue.c' line='1746' column='1'/>
+        <parameter type-id='242e3d19' name='wq' filepath='kernel/workqueue.c' line='1746' column='1'/>
+        <parameter type-id='1a7ee447' name='dwork' filepath='kernel/workqueue.c' line='1747' column='1'/>
+        <parameter type-id='7359adad' name='delay' filepath='kernel/workqueue.c' line='1747' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='mod_node_page_state' mangled-name='mod_node_page_state' filepath='mm/vmstat.c' line='647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mod_node_page_state'>
+        <parameter type-id='c876a7a5' name='pgdat' filepath='mm/vmstat.c' line='647' column='1'/>
+        <parameter type-id='93f9c3d3' name='item' filepath='mm/vmstat.c' line='647' column='1'/>
+        <parameter type-id='bd54fe1a' name='delta' filepath='mm/vmstat.c' line='648' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mod_timer' mangled-name='mod_timer' filepath='kernel/time/timer.c' line='1112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mod_timer'>
+        <parameter type-id='9248e67f' name='timer' filepath='kernel/time/timer.c' line='1112' column='1'/>
+        <parameter type-id='7359adad' name='expires' filepath='kernel/time/timer.c' line='1112' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mod_timer_pending' mangled-name='mod_timer_pending' filepath='kernel/time/timer.c' line='1086' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mod_timer_pending'>
+        <parameter type-id='9248e67f' name='timer' filepath='kernel/time/timer.c' line='1086' column='1'/>
+        <parameter type-id='7359adad' name='expires' filepath='kernel/time/timer.c' line='1086' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='module_layout' mangled-name='module_layout' filepath='kernel/module.c' line='4872' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='module_layout'>
+        <parameter type-id='2730d015' name='mod' filepath='kernel/module.c' line='4872' column='1'/>
+        <parameter type-id='3a498c74' name='ver' filepath='kernel/module.c' line='4873' column='1'/>
+        <parameter type-id='a7c6e908' name='kp' filepath='kernel/module.c' line='4874' column='1'/>
+        <parameter type-id='eefd7061' name='ks' filepath='kernel/module.c' line='4875' column='1'/>
+        <parameter type-id='e525e121' name='tp' filepath='kernel/module.c' line='4876' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='module_put' mangled-name='module_put' filepath='kernel/module.c' line='1093' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='module_put'>
+        <parameter type-id='2730d015' name='module' filepath='kernel/module.c' line='1093' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mount_bdev' mangled-name='mount_bdev' filepath='fs/super.c' line='1324' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mount_bdev'>
+        <parameter type-id='21e53d44' name='fs_type' filepath='fs/super.c' line='1324' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='fs/super.c' line='1325' column='1'/>
+        <parameter type-id='80f4b756' name='dev_name' filepath='fs/super.c' line='1325' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='fs/super.c' line='1325' column='1'/>
+        <parameter type-id='e18b930d' name='fill_super' filepath='fs/super.c' line='1326' column='1'/>
+        <return type-id='27675065'/>
+      </function-decl>
+      <function-decl name='mpage_readahead' mangled-name='mpage_readahead' filepath='fs/mpage.c' line='413' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mpage_readahead'>
+        <parameter type-id='a6cdca2a' name='rac' filepath='fs/mpage.c' line='413' column='1'/>
+        <parameter type-id='05ca8778' name='get_block' filepath='fs/mpage.c' line='413' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mpage_readpage' mangled-name='mpage_readpage' filepath='fs/mpage.c' line='436' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mpage_readpage'>
+        <parameter type-id='02f11ed4' name='page' filepath='fs/mpage.c' line='436' column='1'/>
+        <parameter type-id='05ca8778' name='get_block' filepath='fs/mpage.c' line='436' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mpage_writepages' mangled-name='mpage_writepages' filepath='fs/mpage.c' line='730' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mpage_writepages'>
+        <parameter type-id='f57039f0' name='mapping' filepath='fs/mpage.c' line='730' column='1'/>
+        <parameter type-id='c2c60445' name='wbc' filepath='fs/mpage.c' line='731' column='1'/>
+        <parameter type-id='05ca8778' name='get_block' filepath='fs/mpage.c' line='731' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mpi_alloc' mangled-name='mpi_alloc' filepath='lib/mpi/mpiutil.c' line='87' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mpi_alloc'>
+        <parameter type-id='f0981eeb' name='nlimbs' filepath='lib/mpi/mpiutil.c' line='87' column='1'/>
+        <return type-id='af3fb410'/>
+      </function-decl>
+      <function-decl name='mpi_cmp' mangled-name='mpi_cmp' filepath='lib/mpi/mpi-cmp.c' line='84' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mpi_cmp'>
+        <parameter type-id='af3fb410' name='u' filepath='lib/mpi/mpi-cmp.c' line='84' column='1'/>
+        <parameter type-id='af3fb410' name='v' filepath='lib/mpi/mpi-cmp.c' line='84' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mpi_cmp_ui' mangled-name='mpi_cmp_ui' filepath='lib/mpi/mpi-cmp.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mpi_cmp_ui'>
+        <parameter type-id='af3fb410' name='u' filepath='lib/mpi/mpi-cmp.c' line='23' column='1'/>
+        <parameter type-id='7359adad' name='v' filepath='lib/mpi/mpi-cmp.c' line='23' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mpi_free' mangled-name='mpi_free' filepath='lib/mpi/mpiutil.c' line='175' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mpi_free'>
+        <parameter type-id='af3fb410' name='a' filepath='lib/mpi/mpiutil.c' line='175' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mpi_get_buffer' mangled-name='mpi_get_buffer' filepath='lib/mpi/mpicoder.c' line='310' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mpi_get_buffer'>
+        <parameter type-id='af3fb410' name='a' filepath='lib/mpi/mpicoder.c' line='310' column='1'/>
+        <parameter type-id='807869d3' name='nbytes' filepath='lib/mpi/mpicoder.c' line='310' column='1'/>
+        <parameter type-id='7292109c' name='sign' filepath='lib/mpi/mpicoder.c' line='310' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='mpi_get_nbits' mangled-name='mpi_get_nbits' filepath='lib/mpi/mpi-bit.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mpi_get_nbits'>
+        <parameter type-id='af3fb410' name='a' filepath='lib/mpi/mpi-bit.c' line='40' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='mpi_powm' mangled-name='mpi_powm' filepath='lib/mpi/mpi-pow.c' line='24' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mpi_powm'>
+        <parameter type-id='af3fb410' name='res' filepath='lib/mpi/mpi-pow.c' line='24' column='1'/>
+        <parameter type-id='af3fb410' name='base' filepath='lib/mpi/mpi-pow.c' line='24' column='1'/>
+        <parameter type-id='af3fb410' name='exp' filepath='lib/mpi/mpi-pow.c' line='24' column='1'/>
+        <parameter type-id='af3fb410' name='mod' filepath='lib/mpi/mpi-pow.c' line='24' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mpi_read_raw_data' mangled-name='mpi_read_raw_data' filepath='lib/mpi/mpicoder.c' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mpi_read_raw_data'>
+        <parameter type-id='eaa32e2f' name='xbuffer' filepath='lib/mpi/mpicoder.c' line='36' column='1'/>
+        <parameter type-id='b59d7dce' name='nbytes' filepath='lib/mpi/mpicoder.c' line='36' column='1'/>
+        <return type-id='af3fb410'/>
+      </function-decl>
+      <function-decl name='msi_desc_to_pci_sysdata' mangled-name='msi_desc_to_pci_sysdata' filepath='drivers/pci/msi.c' line='1276' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='msi_desc_to_pci_sysdata'>
+        <parameter type-id='b11825ce' name='desc' filepath='drivers/pci/msi.c' line='1276' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='msleep' mangled-name='msleep' filepath='kernel/time/timer.c' line='2040' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='msleep'>
+        <parameter type-id='f0981eeb' name='msecs' filepath='kernel/time/timer.c' line='2040' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='msleep_interruptible' mangled-name='msleep_interruptible' filepath='kernel/time/timer.c' line='2054' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='msleep_interruptible'>
+        <parameter type-id='f0981eeb' name='msecs' filepath='kernel/time/timer.c' line='2054' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='mul_u64_u64_div_u64' mangled-name='mul_u64_u64_div_u64' filepath='lib/math/div64.c' line='197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mul_u64_u64_div_u64'>
+        <parameter type-id='91ce1af9' name='a' filepath='lib/math/div64.c' line='197' column='1'/>
+        <parameter type-id='91ce1af9' name='b' filepath='lib/math/div64.c' line='197' column='1'/>
+        <parameter type-id='91ce1af9' name='c' filepath='lib/math/div64.c' line='197' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='mutex_is_locked' mangled-name='mutex_is_locked' filepath='kernel/locking/mutex.c' line='89' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_is_locked'>
+        <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='89' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='mutex_lock' mangled-name='mutex_lock' filepath='kernel/locking/mutex.c' line='283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_lock'>
+        <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='283' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='mutex_lock_interruptible' mangled-name='mutex_lock_interruptible' filepath='kernel/locking/mutex.c' line='948' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_lock_interruptible'>
+        <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='948' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mutex_lock_killable' mangled-name='mutex_lock_killable' filepath='kernel/locking/mutex.c' line='972' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_lock_killable'>
+        <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='972' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mutex_trylock' mangled-name='mutex_trylock' filepath='kernel/locking/mutex.c' line='1052' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_trylock'>
+        <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='1052' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='mutex_unlock' mangled-name='mutex_unlock' filepath='kernel/locking/mutex.c' line='548' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_unlock'>
+        <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='548' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='n_tty_ioctl_helper' mangled-name='n_tty_ioctl_helper' filepath='drivers/tty/tty_ioctl.c' line='882' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='n_tty_ioctl_helper'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_ioctl.c' line='882' column='1'/>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/tty/tty_ioctl.c' line='882' column='1'/>
+        <parameter type-id='f0981eeb' name='cmd' filepath='drivers/tty/tty_ioctl.c' line='883' column='1'/>
+        <parameter type-id='7359adad' name='arg' filepath='drivers/tty/tty_ioctl.c' line='883' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='name_to_dev_t' mangled-name='name_to_dev_t' filepath='init/do_mounts.c' line='278' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='name_to_dev_t'>
+        <parameter type-id='80f4b756' name='name' filepath='init/do_mounts.c' line='278' column='1'/>
+        <return type-id='8504f260'/>
+      </function-decl>
+      <var-decl name='names_cachep' type-id='f3b4aca8' mangled-name='names_cachep' visibility='default' filepath='fs/dcache.c' line='3246' column='1' elf-symbol-id='names_cachep'/>
+      <function-decl name='napi_build_skb' mangled-name='napi_build_skb' filepath='net/core/skbuff.c' line='327' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='napi_build_skb'>
+        <parameter type-id='eaa32e2f' name='data' filepath='net/core/skbuff.c' line='327' column='1'/>
+        <parameter type-id='f0981eeb' name='frag_size' filepath='net/core/skbuff.c' line='327' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='napi_complete_done' mangled-name='napi_complete_done' filepath='net/core/dev.c' line='6561' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='napi_complete_done'>
+        <parameter type-id='c50361c5' name='n' filepath='net/core/dev.c' line='6561' column='1'/>
+        <parameter type-id='95e97e5e' name='work_done' filepath='net/core/dev.c' line='6561' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='napi_consume_skb' mangled-name='napi_consume_skb' filepath='net/core/skbuff.c' line='986' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='napi_consume_skb'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='986' column='1'/>
+        <parameter type-id='95e97e5e' name='budget' filepath='net/core/skbuff.c' line='986' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='napi_disable' mangled-name='napi_disable' filepath='net/core/dev.c' line='6932' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='napi_disable'>
+        <parameter type-id='c50361c5' name='n' filepath='net/core/dev.c' line='6932' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='napi_enable' mangled-name='napi_enable' filepath='net/core/dev.c' line='6957' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='napi_enable'>
+        <parameter type-id='c50361c5' name='n' filepath='net/core/dev.c' line='6957' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='napi_get_frags' mangled-name='napi_get_frags' filepath='net/core/dev.c' line='6273' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='napi_get_frags'>
+        <parameter type-id='c50361c5' name='napi' filepath='net/core/dev.c' line='6273' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='napi_gro_flush' mangled-name='napi_gro_flush' filepath='net/core/dev.c' line='5932' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='napi_gro_flush'>
+        <parameter type-id='c50361c5' name='napi' filepath='net/core/dev.c' line='5932' column='1'/>
+        <parameter type-id='b50a4934' name='flush_old' filepath='net/core/dev.c' line='5932' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='napi_gro_frags' mangled-name='napi_gro_frags' filepath='net/core/dev.c' line='6357' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='napi_gro_frags'>
+        <parameter type-id='c50361c5' name='napi' filepath='net/core/dev.c' line='6357' column='1'/>
+        <return type-id='dc1b1685'/>
+      </function-decl>
+      <function-decl name='napi_gro_receive' mangled-name='napi_gro_receive' filepath='net/core/dev.c' line='6228' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='napi_gro_receive'>
+        <parameter type-id='c50361c5' name='napi' filepath='net/core/dev.c' line='6228' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/dev.c' line='6228' column='1'/>
+        <return type-id='dc1b1685'/>
+      </function-decl>
+      <function-decl name='napi_schedule_prep' mangled-name='napi_schedule_prep' filepath='net/core/dev.c' line='6518' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='napi_schedule_prep'>
+        <parameter type-id='c50361c5' name='n' filepath='net/core/dev.c' line='6518' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <var-decl name='nd_tbl' type-id='aebe1cff' mangled-name='nd_tbl' visibility='default' filepath='net/ipv6/ndisc.c' line='109' column='1' elf-symbol-id='nd_tbl'/>
+      <function-decl name='ndo_dflt_fdb_add' mangled-name='ndo_dflt_fdb_add' filepath='net/core/rtnetlink.c' line='3957' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ndo_dflt_fdb_add'>
+        <parameter type-id='ccc13476' name='ndm' filepath='net/core/rtnetlink.c' line='3957' column='1'/>
+        <parameter type-id='30864cdc' name='tb' filepath='net/core/rtnetlink.c' line='3958' column='1'/>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/rtnetlink.c' line='3959' column='1'/>
+        <parameter type-id='354f7eb9' name='addr' filepath='net/core/rtnetlink.c' line='3960' column='1'/>
+        <parameter type-id='1dc6a898' name='vid' filepath='net/core/rtnetlink.c' line='3960' column='1'/>
+        <parameter type-id='1dc6a898' name='flags' filepath='net/core/rtnetlink.c' line='3961' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='neigh_destroy' mangled-name='neigh_destroy' filepath='net/core/neighbour.c' line='823' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='neigh_destroy'>
+        <parameter type-id='3c330066' name='neigh' filepath='net/core/neighbour.c' line='823' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='neigh_lookup' mangled-name='neigh_lookup' filepath='net/core/neighbour.c' line='553' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='neigh_lookup'>
+        <parameter type-id='6bbe39a7' name='tbl' filepath='net/core/neighbour.c' line='553' column='1'/>
+        <parameter type-id='eaa32e2f' name='pkey' filepath='net/core/neighbour.c' line='553' column='1'/>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/neighbour.c' line='554' column='1'/>
+        <return type-id='3c330066'/>
+      </function-decl>
+      <function-decl name='neigh_resolve_output' mangled-name='neigh_resolve_output' filepath='net/core/neighbour.c' line='1473' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='neigh_resolve_output'>
+        <parameter type-id='3c330066' name='neigh' filepath='net/core/neighbour.c' line='1473' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/neighbour.c' line='1473' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='net_namespace_list' type-id='72f469ec' mangled-name='net_namespace_list' visibility='default' filepath='net/core/net_namespace.c' line='36' column='1' elf-symbol-id='net_namespace_list'/>
+      <var-decl name='net_ns_type_operations' type-id='a4a37730' mangled-name='net_ns_type_operations' visibility='default' filepath='net/core/net-sysfs.c' line='1859' column='1' elf-symbol-id='net_ns_type_operations'/>
+      <function-decl name='net_ratelimit' mangled-name='net_ratelimit' filepath='net/core/utils.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='net_ratelimit'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='net_selftest' mangled-name='net_selftest' filepath='net/core/selftests.c' line='369' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='net_selftest'>
+        <parameter type-id='68a2d05b' name='ndev' filepath='net/core/selftests.c' line='369' column='1'/>
+        <parameter type-id='469e947f' name='etest' filepath='net/core/selftests.c' line='369' column='1'/>
+        <parameter type-id='3df9fd28' name='buf' filepath='net/core/selftests.c' line='369' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='net_selftest_get_count' mangled-name='net_selftest_get_count' filepath='net/core/selftests.c' line='392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='net_selftest_get_count'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='net_selftest_get_strings' mangled-name='net_selftest_get_strings' filepath='net/core/selftests.c' line='398' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='net_selftest_get_strings'>
+        <parameter type-id='8bff8096' name='data' filepath='net/core/selftests.c' line='398' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netdev_alert' mangled-name='netdev_alert' filepath='net/core/dev.c' line='11498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_alert'>
+        <parameter type-id='2ce52478' name='dev' filepath='net/core/dev.c' line='11498' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='net/core/dev.c' line='11498' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netdev_change_features' mangled-name='netdev_change_features' filepath='net/core/dev.c' line='10081' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_change_features'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='10081' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netdev_err' mangled-name='netdev_err' filepath='net/core/dev.c' line='11500' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_err'>
+        <parameter type-id='2ce52478' name='dev' filepath='net/core/dev.c' line='11500' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='net/core/dev.c' line='11500' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netdev_increment_features' mangled-name='netdev_increment_features' filepath='net/core/dev.c' line='11365' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_increment_features'>
+        <parameter type-id='f9f4b16f' name='all' filepath='net/core/dev.c' line='11365' column='1'/>
+        <parameter type-id='f9f4b16f' name='one' filepath='net/core/dev.c' line='11366' column='1'/>
+        <parameter type-id='f9f4b16f' name='mask' filepath='net/core/dev.c' line='11366' column='1'/>
+        <return type-id='f9f4b16f'/>
+      </function-decl>
+      <function-decl name='netdev_info' mangled-name='netdev_info' filepath='net/core/dev.c' line='11503' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_info'>
+        <parameter type-id='2ce52478' name='dev' filepath='net/core/dev.c' line='11503' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='net/core/dev.c' line='11503' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netdev_lower_state_changed' mangled-name='netdev_lower_state_changed' filepath='net/core/dev.c' line='8538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_lower_state_changed'>
+        <parameter type-id='68a2d05b' name='lower_dev' filepath='net/core/dev.c' line='8538' column='1'/>
+        <parameter type-id='eaa32e2f' name='lower_state_info' filepath='net/core/dev.c' line='8539' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netdev_master_upper_dev_link' mangled-name='netdev_master_upper_dev_link' filepath='net/core/dev.c' line='8200' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_master_upper_dev_link'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='8200' column='1'/>
+        <parameter type-id='68a2d05b' name='upper_dev' filepath='net/core/dev.c' line='8201' column='1'/>
+        <parameter type-id='eaa32e2f' name='upper_priv' filepath='net/core/dev.c' line='8202' column='1'/>
+        <parameter type-id='eaa32e2f' name='upper_info' filepath='net/core/dev.c' line='8202' column='1'/>
+        <parameter type-id='5799dc94' name='extack' filepath='net/core/dev.c' line='8203' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='netdev_notice' mangled-name='netdev_notice' filepath='net/core/dev.c' line='11502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_notice'>
+        <parameter type-id='2ce52478' name='dev' filepath='net/core/dev.c' line='11502' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='net/core/dev.c' line='11502' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netdev_notify_peers' mangled-name='netdev_notify_peers' filepath='net/core/dev.c' line='1432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_notify_peers'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='1432' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netdev_pick_tx' mangled-name='netdev_pick_tx' filepath='net/core/dev.c' line='4071' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_pick_tx'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='4071' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/dev.c' line='4071' column='1'/>
+        <parameter type-id='68a2d05b' name='sb_dev' filepath='net/core/dev.c' line='4072' column='1'/>
+        <return type-id='1dc6a898'/>
+      </function-decl>
+      <function-decl name='netdev_printk' mangled-name='netdev_printk' filepath='net/core/dev.c' line='11463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_printk'>
+        <parameter type-id='80f4b756' name='level' filepath='net/core/dev.c' line='11463' column='1'/>
+        <parameter type-id='2ce52478' name='dev' filepath='net/core/dev.c' line='11463' column='1'/>
+        <parameter type-id='80f4b756' name='format' filepath='net/core/dev.c' line='11464' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netdev_rss_key_fill' mangled-name='netdev_rss_key_fill' filepath='net/ethtool/ioctl.c' line='1038' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_rss_key_fill'>
+        <parameter type-id='eaa32e2f' name='buffer' filepath='net/ethtool/ioctl.c' line='1038' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='net/ethtool/ioctl.c' line='1038' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netdev_rx_handler_register' mangled-name='netdev_rx_handler_register' filepath='net/core/dev.c' line='5182' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_rx_handler_register'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='5182' column='1'/>
+        <parameter type-id='da1cb816' name='rx_handler' filepath='net/core/dev.c' line='5183' column='1'/>
+        <parameter type-id='eaa32e2f' name='rx_handler_data' filepath='net/core/dev.c' line='5184' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='netdev_rx_handler_unregister' mangled-name='netdev_rx_handler_unregister' filepath='net/core/dev.c' line='5208' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_rx_handler_unregister'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='5208' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netdev_set_default_ethtool_ops' mangled-name='netdev_set_default_ethtool_ops' filepath='net/core/dev.c' line='10774' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_set_default_ethtool_ops'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='10774' column='1'/>
+        <parameter type-id='bdf901f8' name='ops' filepath='net/core/dev.c' line='10775' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netdev_set_num_tc' mangled-name='netdev_set_num_tc' filepath='net/core/dev.c' line='2830' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_set_num_tc'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='2830' column='1'/>
+        <parameter type-id='f9b06939' name='num_tc' filepath='net/core/dev.c' line='2830' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='netdev_set_tc_queue' mangled-name='netdev_set_tc_queue' filepath='net/core/dev.c' line='2816' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_set_tc_queue'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='2816' column='1'/>
+        <parameter type-id='f9b06939' name='tc' filepath='net/core/dev.c' line='2816' column='1'/>
+        <parameter type-id='1dc6a898' name='count' filepath='net/core/dev.c' line='2816' column='1'/>
+        <parameter type-id='1dc6a898' name='offset' filepath='net/core/dev.c' line='2816' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='netdev_state_change' mangled-name='netdev_state_change' filepath='net/core/dev.c' line='1389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_state_change'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='1389' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netdev_stats_to_stats64' mangled-name='netdev_stats_to_stats64' filepath='net/core/dev.c' line='10651' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_stats_to_stats64'>
+        <parameter type-id='bd3860fe' name='stats64' filepath='net/core/dev.c' line='10651' column='1'/>
+        <parameter type-id='b3215180' name='netdev_stats' filepath='net/core/dev.c' line='10652' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netdev_update_features' mangled-name='netdev_update_features' filepath='net/core/dev.c' line='10064' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_update_features'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='10064' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netdev_upper_dev_link' mangled-name='netdev_upper_dev_link' filepath='net/core/dev.c' line='8172' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_upper_dev_link'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='8172' column='1'/>
+        <parameter type-id='68a2d05b' name='upper_dev' filepath='net/core/dev.c' line='8173' column='1'/>
+        <parameter type-id='5799dc94' name='extack' filepath='net/core/dev.c' line='8174' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='netdev_upper_dev_unlink' mangled-name='netdev_upper_dev_unlink' filepath='net/core/dev.c' line='8255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_upper_dev_unlink'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='8255' column='1'/>
+        <parameter type-id='68a2d05b' name='upper_dev' filepath='net/core/dev.c' line='8256' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netdev_upper_get_next_dev_rcu' mangled-name='netdev_upper_get_next_dev_rcu' filepath='net/core/dev.c' line='7368' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_upper_get_next_dev_rcu'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='7368' column='1'/>
+        <parameter type-id='de160490' name='iter' filepath='net/core/dev.c' line='7369' column='1'/>
+        <return type-id='68a2d05b'/>
+      </function-decl>
+      <function-decl name='netdev_warn' mangled-name='netdev_warn' filepath='net/core/dev.c' line='11501' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_warn'>
+        <parameter type-id='2ce52478' name='dev' filepath='net/core/dev.c' line='11501' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='net/core/dev.c' line='11501' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netif_carrier_off' mangled-name='netif_carrier_off' filepath='net/sched/sch_generic.c' line='542' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netif_carrier_off'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/sched/sch_generic.c' line='542' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netif_carrier_on' mangled-name='netif_carrier_on' filepath='net/sched/sch_generic.c' line='523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netif_carrier_on'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/sched/sch_generic.c' line='523' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netif_device_attach' mangled-name='netif_device_attach' filepath='net/core/dev.c' line='3154' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netif_device_attach'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='3154' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netif_device_detach' mangled-name='netif_device_detach' filepath='net/core/dev.c' line='3139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netif_device_detach'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='3139' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netif_napi_add' mangled-name='netif_napi_add' filepath='net/core/dev.c' line='6896' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netif_napi_add'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='6896' column='1'/>
+        <parameter type-id='c50361c5' name='napi' filepath='net/core/dev.c' line='6896' column='1'/>
+        <parameter type-id='f07d90b4' name='poll' filepath='net/core/dev.c' line='6897' column='1'/>
+        <parameter type-id='95e97e5e' name='weight' filepath='net/core/dev.c' line='6897' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netif_receive_skb' mangled-name='netif_receive_skb' filepath='net/core/dev.c' line='5722' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netif_receive_skb'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/dev.c' line='5722' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='netif_receive_skb_list' mangled-name='netif_receive_skb_list' filepath='net/core/dev.c' line='5745' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netif_receive_skb_list'>
+        <parameter type-id='e84b031a' name='head' filepath='net/core/dev.c' line='5745' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netif_rx' mangled-name='netif_rx' filepath='net/core/dev.c' line='4956' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netif_rx'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/dev.c' line='4956' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='netif_rx_ni' mangled-name='netif_rx_ni' filepath='net/core/dev.c' line='4969' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netif_rx_ni'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/dev.c' line='4969' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='netif_schedule_queue' mangled-name='netif_schedule_queue' filepath='net/core/dev.c' line='3074' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netif_schedule_queue'>
+        <parameter type-id='35b28c4f' name='txq' filepath='net/core/dev.c' line='3074' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netif_set_real_num_rx_queues' mangled-name='netif_set_real_num_rx_queues' filepath='net/core/dev.c' line='2965' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netif_set_real_num_rx_queues'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='2965' column='1'/>
+        <parameter type-id='f0981eeb' name='rxq' filepath='net/core/dev.c' line='2965' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='netif_set_real_num_tx_queues' mangled-name='netif_set_real_num_tx_queues' filepath='net/core/dev.c' line='2913' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netif_set_real_num_tx_queues'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='2913' column='1'/>
+        <parameter type-id='f0981eeb' name='txq' filepath='net/core/dev.c' line='2913' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='netif_set_xps_queue' mangled-name='netif_set_xps_queue' filepath='net/core/dev.c' line='2777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netif_set_xps_queue'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='2777' column='1'/>
+        <parameter type-id='5f8a1ac4' name='mask' filepath='net/core/dev.c' line='2777' column='1'/>
+        <parameter type-id='1dc6a898' name='index' filepath='net/core/dev.c' line='2778' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='netif_stacked_transfer_operstate' mangled-name='netif_stacked_transfer_operstate' filepath='net/core/dev.c' line='10097' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netif_stacked_transfer_operstate'>
+        <parameter type-id='2ce52478' name='rootdev' filepath='net/core/dev.c' line='10097' column='1'/>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='10098' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netif_tx_stop_all_queues' mangled-name='netif_tx_stop_all_queues' filepath='net/core/dev.c' line='10205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netif_tx_stop_all_queues'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='10205' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netif_tx_wake_queue' mangled-name='netif_tx_wake_queue' filepath='net/core/dev.c' line='3086' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netif_tx_wake_queue'>
+        <parameter type-id='35b28c4f' name='dev_queue' filepath='net/core/dev.c' line='3086' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netlink_ack' mangled-name='netlink_ack' filepath='net/netlink/af_netlink.c' line='2406' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_ack'>
+        <parameter type-id='0fbf3cfd' name='in_skb' filepath='net/netlink/af_netlink.c' line='2406' column='1'/>
+        <parameter type-id='c2074578' name='nlh' filepath='net/netlink/af_netlink.c' line='2406' column='1'/>
+        <parameter type-id='95e97e5e' name='err' filepath='net/netlink/af_netlink.c' line='2406' column='1'/>
+        <parameter type-id='f1dc7839' name='extack' filepath='net/netlink/af_netlink.c' line='2407' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netlink_broadcast' mangled-name='netlink_broadcast' filepath='net/netlink/af_netlink.c' line='1559' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_broadcast'>
+        <parameter type-id='f772df6d' name='ssk' filepath='net/netlink/af_netlink.c' line='1559' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/netlink/af_netlink.c' line='1559' column='1'/>
+        <parameter type-id='19c2251e' name='portid' filepath='net/netlink/af_netlink.c' line='1559' column='1'/>
+        <parameter type-id='19c2251e' name='group' filepath='net/netlink/af_netlink.c' line='1560' column='1'/>
+        <parameter type-id='3eb7c31c' name='allocation' filepath='net/netlink/af_netlink.c' line='1560' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='netlink_kernel_release' mangled-name='netlink_kernel_release' filepath='net/netlink/af_netlink.c' line='2105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_kernel_release'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/netlink/af_netlink.c' line='2105' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='netlink_net_capable' mangled-name='netlink_net_capable' filepath='net/netlink/af_netlink.c' line='921' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_net_capable'>
+        <parameter type-id='11f4a000' name='skb' filepath='net/netlink/af_netlink.c' line='921' column='1'/>
+        <parameter type-id='95e97e5e' name='cap' filepath='net/netlink/af_netlink.c' line='921' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='netlink_register_notifier' mangled-name='netlink_register_notifier' filepath='net/netlink/af_netlink.c' line='2744' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_register_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='net/netlink/af_netlink.c' line='2744' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='netlink_unicast' mangled-name='netlink_unicast' filepath='net/netlink/af_netlink.c' line='1339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_unicast'>
+        <parameter type-id='f772df6d' name='ssk' filepath='net/netlink/af_netlink.c' line='1339' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/netlink/af_netlink.c' line='1339' column='1'/>
+        <parameter type-id='19c2251e' name='portid' filepath='net/netlink/af_netlink.c' line='1340' column='1'/>
+        <parameter type-id='95e97e5e' name='nonblock' filepath='net/netlink/af_netlink.c' line='1340' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='netlink_unregister_notifier' mangled-name='netlink_unregister_notifier' filepath='net/netlink/af_netlink.c' line='2750' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_unregister_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='net/netlink/af_netlink.c' line='2750' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='new_inode' mangled-name='new_inode' filepath='fs/inode.c' line='960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='new_inode'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/inode.c' line='960' column='1'/>
+        <return type-id='7e666abe'/>
+      </function-decl>
+      <function-decl name='next_arg' mangled-name='next_arg' filepath='include/linux/kernel.h' line='229' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='next_arg'>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='9b23c9ad'/>
+        <parameter type-id='9b23c9ad'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='nf_conntrack_destroy' mangled-name='nf_conntrack_destroy' filepath='net/netfilter/core.c' line='666' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nf_conntrack_destroy'>
+        <parameter type-id='96b07343' name='nfct' filepath='net/netfilter/core.c' line='666' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='nf_conntrack_find_get' mangled-name='nf_conntrack_find_get' filepath='net/netfilter/nf_conntrack_core.c' line='847' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nf_conntrack_find_get'>
+        <parameter type-id='a2bff676' name='net' filepath='net/netfilter/nf_conntrack_core.c' line='847' column='1'/>
+        <parameter type-id='be6c9a11' name='zone' filepath='net/netfilter/nf_conntrack_core.c' line='847' column='1'/>
+        <parameter type-id='5a1b3f53' name='tuple' filepath='net/netfilter/nf_conntrack_core.c' line='848' column='1'/>
+        <return type-id='60eba7df'/>
+      </function-decl>
+      <function-decl name='nf_conntrack_register_notifier' mangled-name='nf_conntrack_register_notifier' filepath='net/netfilter/nf_conntrack_ecache.c' line='267' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nf_conntrack_register_notifier'>
+        <parameter type-id='a2bff676' name='net' filepath='net/netfilter/nf_conntrack_ecache.c' line='267' column='1'/>
+        <parameter type-id='9d3627ee' name='new' filepath='net/netfilter/nf_conntrack_ecache.c' line='268' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='nf_ct_attach' mangled-name='nf_ct_attach' filepath='net/netfilter/core.c' line='652' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nf_ct_attach'>
+        <parameter type-id='0fbf3cfd' name='new' filepath='net/netfilter/core.c' line='652' column='1'/>
+        <parameter type-id='11f4a000' name='skb' filepath='net/netfilter/core.c' line='652' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='nf_ct_delete' mangled-name='nf_ct_delete' filepath='net/netfilter/nf_conntrack_core.c' line='694' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nf_ct_delete'>
+        <parameter type-id='8c493d8a' name='ct' filepath='net/netfilter/nf_conntrack_core.c' line='694' column='1'/>
+        <parameter type-id='19c2251e' name='portid' filepath='net/netfilter/nf_conntrack_core.c' line='694' column='1'/>
+        <parameter type-id='95e97e5e' name='report' filepath='net/netfilter/nf_conntrack_core.c' line='694' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='nf_ct_destroy' mangled-name='nf_ct_destroy' filepath='net/netfilter/nf_conntrack_core.c' line='632' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nf_ct_destroy'>
+        <parameter type-id='96b07343' name='nfct' filepath='net/netfilter/nf_conntrack_core.c' line='632' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='nf_ct_get_tuplepr' mangled-name='nf_ct_get_tuplepr' filepath='net/netfilter/nf_conntrack_core.c' line='432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nf_ct_get_tuplepr'>
+        <parameter type-id='11f4a000' name='skb' filepath='net/netfilter/nf_conntrack_core.c' line='432' column='1'/>
+        <parameter type-id='f0981eeb' name='nhoff' filepath='net/netfilter/nf_conntrack_core.c' line='432' column='1'/>
+        <parameter type-id='ea2e3595' name='l3num' filepath='net/netfilter/nf_conntrack_core.c' line='433' column='1'/>
+        <parameter type-id='a2bff676' name='net' filepath='net/netfilter/nf_conntrack_core.c' line='434' column='1'/>
+        <parameter type-id='66d2e8f0' name='tuple' filepath='net/netfilter/nf_conntrack_core.c' line='434' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='nf_ct_invert_tuple' mangled-name='nf_ct_invert_tuple' filepath='net/netfilter/nf_conntrack_core.c' line='448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nf_ct_invert_tuple'>
+        <parameter type-id='66d2e8f0' name='inverse' filepath='net/netfilter/nf_conntrack_core.c' line='448' column='1'/>
+        <parameter type-id='5a1b3f53' name='orig' filepath='net/netfilter/nf_conntrack_core.c' line='449' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='nf_ct_l4proto_find' mangled-name='nf_ct_l4proto_find' filepath='net/netfilter/nf_conntrack_proto.c' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nf_ct_l4proto_find'>
+        <parameter type-id='f9b06939' name='l4proto' filepath='net/netfilter/nf_conntrack_proto.c' line='97' column='1'/>
+        <return type-id='c5fb563f'/>
+      </function-decl>
+      <function-decl name='nf_register_net_hook' mangled-name='nf_register_net_hook' filepath='net/netfilter/core.c' line='515' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nf_register_net_hook'>
+        <parameter type-id='a2bff676' name='net' filepath='net/netfilter/core.c' line='515' column='1'/>
+        <parameter type-id='27db53a1' name='reg' filepath='net/netfilter/core.c' line='515' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='nf_register_net_hooks' mangled-name='nf_register_net_hooks' filepath='net/netfilter/core.c' line='545' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nf_register_net_hooks'>
+        <parameter type-id='a2bff676' name='net' filepath='net/netfilter/core.c' line='545' column='1'/>
+        <parameter type-id='27db53a1' name='reg' filepath='net/netfilter/core.c' line='545' column='1'/>
+        <parameter type-id='f0981eeb' name='n' filepath='net/netfilter/core.c' line='546' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='nf_unregister_net_hook' mangled-name='nf_unregister_net_hook' filepath='net/netfilter/core.c' line='487' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nf_unregister_net_hook'>
+        <parameter type-id='a2bff676' name='net' filepath='net/netfilter/core.c' line='487' column='1'/>
+        <parameter type-id='27db53a1' name='reg' filepath='net/netfilter/core.c' line='487' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='nf_unregister_net_hooks' mangled-name='nf_unregister_net_hooks' filepath='net/netfilter/core.c' line='565' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nf_unregister_net_hooks'>
+        <parameter type-id='a2bff676' name='net' filepath='net/netfilter/core.c' line='565' column='1'/>
+        <parameter type-id='27db53a1' name='reg' filepath='net/netfilter/core.c' line='565' column='1'/>
+        <parameter type-id='f0981eeb' name='hookcount' filepath='net/netfilter/core.c' line='566' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='nla_append' mangled-name='nla_append' filepath='lib/nlattr.c' line='1116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_append'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1116' column='1'/>
+        <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1116' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1116' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='nla_find' mangled-name='nla_find' filepath='lib/nlattr.c' line='701' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_find'>
+        <parameter type-id='0f2a7ce5' name='head' filepath='lib/nlattr.c' line='701' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='lib/nlattr.c' line='701' column='1'/>
+        <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='701' column='1'/>
+        <return type-id='6fcaf91e'/>
+      </function-decl>
+      <function-decl name='nla_memcpy' mangled-name='nla_memcpy' filepath='lib/nlattr.c' line='792' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_memcpy'>
+        <parameter type-id='eaa32e2f' name='dest' filepath='lib/nlattr.c' line='792' column='1'/>
+        <parameter type-id='0f2a7ce5' name='src' filepath='lib/nlattr.c' line='792' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='lib/nlattr.c' line='792' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='nla_put' mangled-name='nla_put' filepath='lib/nlattr.c' line='1050' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_put'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1050' column='1'/>
+        <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='1050' column='1'/>
+        <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1050' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1050' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='nla_put_64bit' mangled-name='nla_put_64bit' filepath='lib/nlattr.c' line='1071' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_put_64bit'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1071' column='1'/>
+        <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='1071' column='1'/>
+        <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1071' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1072' column='1'/>
+        <parameter type-id='95e97e5e' name='padattr' filepath='lib/nlattr.c' line='1072' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='nla_put_nohdr' mangled-name='nla_put_nohdr' filepath='lib/nlattr.c' line='1097' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_put_nohdr'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1097' column='1'/>
+        <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1097' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1097' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='nla_reserve' mangled-name='nla_reserve' filepath='lib/nlattr.c' line='923' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_reserve'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='923' column='1'/>
+        <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='923' column='1'/>
+        <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='923' column='1'/>
+        <return type-id='6fcaf91e'/>
+      </function-decl>
+      <function-decl name='nla_reserve_64bit' mangled-name='nla_reserve_64bit' filepath='lib/nlattr.c' line='946' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_reserve_64bit'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='946' column='1'/>
+        <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='946' column='1'/>
+        <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='946' column='1'/>
+        <parameter type-id='95e97e5e' name='padattr' filepath='lib/nlattr.c' line='947' column='1'/>
+        <return type-id='6fcaf91e'/>
+      </function-decl>
+      <function-decl name='nla_strscpy' mangled-name='nla_strscpy' filepath='lib/nlattr.c' line='728' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_strscpy'>
+        <parameter type-id='26a90f95' name='dst' filepath='lib/nlattr.c' line='728' column='1'/>
+        <parameter type-id='0f2a7ce5' name='nla' filepath='lib/nlattr.c' line='728' column='1'/>
+        <parameter type-id='b59d7dce' name='dstsize' filepath='lib/nlattr.c' line='728' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='no_llseek' mangled-name='no_llseek' filepath='fs/read_write.c' line='230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='no_llseek'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/read_write.c' line='230' column='1'/>
+        <parameter type-id='69bf7bee' name='offset' filepath='fs/read_write.c' line='230' column='1'/>
+        <parameter type-id='95e97e5e' name='whence' filepath='fs/read_write.c' line='230' column='1'/>
+        <return type-id='69bf7bee'/>
+      </function-decl>
+      <var-decl name='node_states' type-id='bb8315c6' mangled-name='node_states' visibility='default' filepath='mm/page_alloc.c' line='259' column='1' elf-symbol-id='node_states'/>
+      <function-decl name='nonseekable_open' mangled-name='nonseekable_open' filepath='fs/open.c' line='1424' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nonseekable_open'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/open.c' line='1424' column='1'/>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/open.c' line='1424' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='noop_backing_dev_info' type-id='c0badb3b' mangled-name='noop_backing_dev_info' visibility='default' filepath='mm/backing-dev.c' line='18' column='1' elf-symbol-id='noop_backing_dev_info'/>
+      <function-decl name='noop_direct_IO' mangled-name='noop_direct_IO' filepath='fs/libfs.c' line='1201' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='noop_direct_IO'>
+        <parameter type-id='80f25feb' name='iocb' filepath='fs/libfs.c' line='1201' column='1'/>
+        <parameter type-id='4fa10f9e' name='iter' filepath='fs/libfs.c' line='1201' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='noop_llseek' mangled-name='noop_llseek' filepath='fs/read_write.c' line='224' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='noop_llseek'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/read_write.c' line='224' column='1'/>
+        <parameter type-id='69bf7bee' name='offset' filepath='fs/read_write.c' line='224' column='1'/>
+        <parameter type-id='95e97e5e' name='whence' filepath='fs/read_write.c' line='224' column='1'/>
+        <return type-id='69bf7bee'/>
+      </function-decl>
+      <function-decl name='notify_change' mangled-name='notify_change' filepath='fs/attr.c' line='388' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='notify_change'>
+        <parameter type-id='c0ced320' name='mnt_userns' filepath='fs/attr.c' line='388' column='1'/>
+        <parameter type-id='27675065' name='dentry' filepath='fs/attr.c' line='388' column='1'/>
+        <parameter type-id='ab7bbd67' name='attr' filepath='fs/attr.c' line='389' column='1'/>
+        <parameter type-id='8f39c6fc' name='delegated_inode' filepath='fs/attr.c' line='389' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='nr_cpu_ids' type-id='f0981eeb' mangled-name='nr_cpu_ids' visibility='default' filepath='kernel/smp.c' line='1073' column='1' elf-symbol-id='nr_cpu_ids'/>
+      <function-decl name='nr_free_buffer_pages' mangled-name='nr_free_buffer_pages' filepath='mm/page_alloc.c' line='6122' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nr_free_buffer_pages'>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='nr_ipi_get' mangled-name='nr_ipi_get' filepath='arch/arm64/kernel/smp.c' line='1146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nr_ipi_get'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='nr_irqs' type-id='95e97e5e' mangled-name='nr_irqs' visibility='default' filepath='kernel/irq/irqdesc.c' line='130' column='1' elf-symbol-id='nr_irqs'/>
+      <var-decl name='nr_swap_pages' type-id='f22a8abb' mangled-name='nr_swap_pages' visibility='default' filepath='mm/swapfile.c' line='55' column='1' elf-symbol-id='nr_swap_pages'/>
+      <function-decl name='ns_capable' mangled-name='ns_capable' filepath='kernel/capability.c' line='394' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ns_capable'>
+        <parameter type-id='c0ced320' name='ns' filepath='kernel/capability.c' line='394' column='1'/>
+        <parameter type-id='95e97e5e' name='cap' filepath='kernel/capability.c' line='394' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='ns_to_kernel_old_timeval' mangled-name='ns_to_kernel_old_timeval' filepath='kernel/time/time.c' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ns_to_kernel_old_timeval'>
+        <parameter type-id='d238557f' name='nsec' filepath='kernel/time/time.c' line='452' column='1'/>
+        <return type-id='4595b96b'/>
+      </function-decl>
+      <function-decl name='ns_to_timespec64' mangled-name='ns_to_timespec64' filepath='kernel/time/time.c' line='506' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ns_to_timespec64'>
+        <parameter type-id='d238557f' name='nsec' filepath='kernel/time/time.c' line='506' column='1'/>
+        <return type-id='40a816ad'/>
+      </function-decl>
+      <function-decl name='nsec_to_clock_t' mangled-name='nsec_to_clock_t' filepath='kernel/time/time.c' line='674' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nsec_to_clock_t'>
+        <parameter type-id='91ce1af9' name='x' filepath='kernel/time/time.c' line='674' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='nsecs_to_jiffies' mangled-name='nsecs_to_jiffies' filepath='kernel/time/time.c' line='755' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nsecs_to_jiffies'>
+        <parameter type-id='91ce1af9' name='n' filepath='kernel/time/time.c' line='755' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='nvdimm_bus_register' mangled-name='nvdimm_bus_register' filepath='drivers/nvdimm/bus.c' line='340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvdimm_bus_register'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/nvdimm/bus.c' line='340' column='1'/>
+        <parameter type-id='0e23c133' name='nd_desc' filepath='drivers/nvdimm/bus.c' line='341' column='1'/>
+        <return type-id='c7ee6915'/>
+      </function-decl>
+      <function-decl name='nvdimm_bus_unregister' mangled-name='nvdimm_bus_unregister' filepath='drivers/nvdimm/bus.c' line='384' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvdimm_bus_unregister'>
+        <parameter type-id='c7ee6915' name='nvdimm_bus' filepath='drivers/nvdimm/bus.c' line='384' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='nvdimm_pmem_region_create' mangled-name='nvdimm_pmem_region_create' filepath='drivers/nvdimm/region_devs.c' line='1160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvdimm_pmem_region_create'>
+        <parameter type-id='c7ee6915' name='nvdimm_bus' filepath='drivers/nvdimm/region_devs.c' line='1160' column='1'/>
+        <parameter type-id='22ab35e2' name='ndr_desc' filepath='drivers/nvdimm/region_devs.c' line='1161' column='1'/>
+        <return type-id='14dc741a'/>
+      </function-decl>
+      <function-decl name='nvmem_cell_get' mangled-name='nvmem_cell_get' filepath='drivers/nvmem/core.c' line='1268' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvmem_cell_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/nvmem/core.c' line='1268' column='1'/>
+        <parameter type-id='80f4b756' name='id' filepath='drivers/nvmem/core.c' line='1268' column='1'/>
+        <return type-id='4a4ce85f'/>
+      </function-decl>
+      <function-decl name='nvmem_cell_put' mangled-name='nvmem_cell_put' filepath='drivers/nvmem/core.c' line='1354' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvmem_cell_put'>
+        <parameter type-id='4a4ce85f' name='cell' filepath='drivers/nvmem/core.c' line='1354' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='nvmem_cell_read' mangled-name='nvmem_cell_read' filepath='drivers/nvmem/core.c' line='1426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvmem_cell_read'>
+        <parameter type-id='4a4ce85f' name='cell' filepath='drivers/nvmem/core.c' line='1426' column='1'/>
+        <parameter type-id='78c01427' name='len' filepath='drivers/nvmem/core.c' line='1426' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='nvmem_cell_read_u32' mangled-name='nvmem_cell_read_u32' filepath='drivers/nvmem/core.c' line='1606' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvmem_cell_read_u32'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/nvmem/core.c' line='1606' column='1'/>
+        <parameter type-id='80f4b756' name='cell_id' filepath='drivers/nvmem/core.c' line='1606' column='1'/>
+        <parameter type-id='f9409001' name='val' filepath='drivers/nvmem/core.c' line='1606' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='nvmem_cell_read_variable_le_u32' mangled-name='nvmem_cell_read_variable_le_u32' filepath='drivers/nvmem/core.c' line='1669' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvmem_cell_read_variable_le_u32'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/nvmem/core.c' line='1669' column='1'/>
+        <parameter type-id='80f4b756' name='cell_id' filepath='drivers/nvmem/core.c' line='1669' column='1'/>
+        <parameter type-id='f9409001' name='val' filepath='drivers/nvmem/core.c' line='1670' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='nvmem_cell_write' mangled-name='nvmem_cell_write' filepath='drivers/nvmem/core.c' line='1511' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvmem_cell_write'>
+        <parameter type-id='4a4ce85f' name='cell' filepath='drivers/nvmem/core.c' line='1511' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='drivers/nvmem/core.c' line='1511' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/nvmem/core.c' line='1511' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='nvmem_device_get' mangled-name='nvmem_device_get' filepath='drivers/nvmem/core.c' line='1044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvmem_device_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/nvmem/core.c' line='1044' column='1'/>
+        <parameter type-id='80f4b756' name='dev_name' filepath='drivers/nvmem/core.c' line='1044' column='1'/>
+        <return type-id='8179bc49'/>
+      </function-decl>
+      <function-decl name='nvmem_device_put' mangled-name='nvmem_device_put' filepath='drivers/nvmem/core.c' line='1114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvmem_device_put'>
+        <parameter type-id='8179bc49' name='nvmem' filepath='drivers/nvmem/core.c' line='1114' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='nvmem_device_read' mangled-name='nvmem_device_read' filepath='drivers/nvmem/core.c' line='1791' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvmem_device_read'>
+        <parameter type-id='8179bc49' name='nvmem' filepath='drivers/nvmem/core.c' line='1791' column='1'/>
+        <parameter type-id='f0981eeb' name='offset' filepath='drivers/nvmem/core.c' line='1792' column='1'/>
+        <parameter type-id='b59d7dce' name='bytes' filepath='drivers/nvmem/core.c' line='1793' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='drivers/nvmem/core.c' line='1793' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='nvmem_device_write' mangled-name='nvmem_device_write' filepath='drivers/nvmem/core.c' line='1819' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvmem_device_write'>
+        <parameter type-id='8179bc49' name='nvmem' filepath='drivers/nvmem/core.c' line='1819' column='1'/>
+        <parameter type-id='f0981eeb' name='offset' filepath='drivers/nvmem/core.c' line='1820' column='1'/>
+        <parameter type-id='b59d7dce' name='bytes' filepath='drivers/nvmem/core.c' line='1821' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='drivers/nvmem/core.c' line='1821' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='nvmem_register' mangled-name='nvmem_register' filepath='drivers/nvmem/core.c' line='748' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvmem_register'>
+        <parameter type-id='7bb280fa' name='config' filepath='drivers/nvmem/core.c' line='748' column='1'/>
+        <return type-id='8179bc49'/>
+      </function-decl>
+      <function-decl name='nvmem_unregister' mangled-name='nvmem_unregister' filepath='drivers/nvmem/core.c' line='903' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nvmem_unregister'>
+        <parameter type-id='8179bc49' name='nvmem' filepath='drivers/nvmem/core.c' line='903' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='of_add_property' mangled-name='of_add_property' filepath='drivers/of/base.c' line='1834' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_add_property'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/base.c' line='1834' column='1'/>
+        <parameter type-id='ddcd89c6' name='prop' filepath='drivers/of/base.c' line='1834' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_address_to_resource' mangled-name='of_address_to_resource' filepath='drivers/of/address.c' line='844' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_address_to_resource'>
+        <parameter type-id='9a537bbe' name='dev' filepath='drivers/of/address.c' line='844' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/of/address.c' line='844' column='1'/>
+        <parameter type-id='c9d64c0d' name='r' filepath='drivers/of/address.c' line='845' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_alias_get_highest_id' mangled-name='of_alias_get_highest_id' filepath='drivers/of/base.c' line='2146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_alias_get_highest_id'>
+        <parameter type-id='80f4b756' name='stem' filepath='drivers/of/base.c' line='2146' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_alias_get_id' mangled-name='of_alias_get_id' filepath='drivers/of/base.c' line='2065' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_alias_get_id'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/base.c' line='2065' column='1'/>
+        <parameter type-id='80f4b756' name='stem' filepath='drivers/of/base.c' line='2065' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_clk_add_hw_provider' mangled-name='of_clk_add_hw_provider' filepath='drivers/clk/clk.c' line='4706' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_clk_add_hw_provider'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/clk/clk.c' line='4706' column='1'/>
+        <parameter type-id='a5186342' name='get' filepath='drivers/clk/clk.c' line='4707' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/clk/clk.c' line='4709' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_clk_add_provider' mangled-name='of_clk_add_provider' filepath='drivers/clk/clk.c' line='4664' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_clk_add_provider'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/clk/clk.c' line='4664' column='1'/>
+        <parameter type-id='f1c652ac' name='clk_src_get' filepath='drivers/clk/clk.c' line='4665' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/clk/clk.c' line='4667' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_clk_del_provider' mangled-name='of_clk_del_provider' filepath='drivers/clk/clk.c' line='4810' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_clk_del_provider'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/clk/clk.c' line='4810' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='of_clk_get' mangled-name='of_clk_get' filepath='drivers/clk/clk.c' line='5010' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_clk_get'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/clk/clk.c' line='5010' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/clk/clk.c' line='5010' column='1'/>
+        <return type-id='7d0bc0eb'/>
+      </function-decl>
+      <function-decl name='of_clk_get_by_name' mangled-name='of_clk_get_by_name' filepath='drivers/clk/clk.c' line='5025' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_clk_get_by_name'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/clk/clk.c' line='5025' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/clk/clk.c' line='5025' column='1'/>
+        <return type-id='7d0bc0eb'/>
+      </function-decl>
+      <function-decl name='of_clk_get_from_provider' mangled-name='of_clk_get_from_provider' filepath='drivers/clk/clk.c' line='4976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_clk_get_from_provider'>
+        <parameter type-id='51a94113' name='clkspec' filepath='drivers/clk/clk.c' line='4976' column='1'/>
+        <return type-id='7d0bc0eb'/>
+      </function-decl>
+      <function-decl name='of_clk_get_parent_count' mangled-name='of_clk_get_parent_count' filepath='drivers/clk/clk.c' line='5040' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_clk_get_parent_count'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/clk/clk.c' line='5040' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='of_clk_get_parent_name' mangled-name='of_clk_get_parent_name' filepath='drivers/clk/clk.c' line='5052' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_clk_get_parent_name'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/clk/clk.c' line='5052' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/clk/clk.c' line='5052' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='of_clk_hw_onecell_get' mangled-name='of_clk_hw_onecell_get' filepath='drivers/clk/clk.c' line='4642' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_clk_hw_onecell_get'>
+        <parameter type-id='51a94113' name='clkspec' filepath='drivers/clk/clk.c' line='4642' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/clk/clk.c' line='4642' column='1'/>
+        <return type-id='3aaeef89'/>
+      </function-decl>
+      <function-decl name='of_clk_hw_register' mangled-name='of_clk_hw_register' filepath='drivers/clk/clk.c' line='4087' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_clk_hw_register'>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/clk/clk.c' line='4087' column='1'/>
+        <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk.c' line='4087' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_clk_hw_simple_get' mangled-name='of_clk_hw_simple_get' filepath='drivers/clk/clk.c' line='4621' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_clk_hw_simple_get'>
+        <parameter type-id='51a94113' name='clkspec' filepath='drivers/clk/clk.c' line='4621' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/clk/clk.c' line='4621' column='1'/>
+        <return type-id='3aaeef89'/>
+      </function-decl>
+      <function-decl name='of_clk_set_defaults' mangled-name='of_clk_set_defaults' filepath='drivers/clk/clk-conf.c' line='139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_clk_set_defaults'>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/clk/clk-conf.c' line='139' column='1'/>
+        <parameter type-id='b50a4934' name='clk_supplier' filepath='drivers/clk/clk-conf.c' line='139' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_clk_src_onecell_get' mangled-name='of_clk_src_onecell_get' filepath='drivers/clk/clk.c' line='4627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_clk_src_onecell_get'>
+        <parameter type-id='51a94113' name='clkspec' filepath='drivers/clk/clk.c' line='4627' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/clk/clk.c' line='4627' column='1'/>
+        <return type-id='7d0bc0eb'/>
+      </function-decl>
+      <function-decl name='of_clk_src_simple_get' mangled-name='of_clk_src_simple_get' filepath='drivers/clk/clk.c' line='4614' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_clk_src_simple_get'>
+        <parameter type-id='51a94113' name='clkspec' filepath='drivers/clk/clk.c' line='4614' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/clk/clk.c' line='4615' column='1'/>
+        <return type-id='7d0bc0eb'/>
+      </function-decl>
+      <function-decl name='of_count_phandle_with_args' mangled-name='of_count_phandle_with_args' filepath='drivers/of/base.c' line='1769' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_count_phandle_with_args'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/base.c' line='1769' column='1'/>
+        <parameter type-id='80f4b756' name='list_name' filepath='drivers/of/base.c' line='1769' column='1'/>
+        <parameter type-id='80f4b756' name='cells_name' filepath='drivers/of/base.c' line='1770' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_cpu_node_to_id' mangled-name='of_cpu_node_to_id' filepath='drivers/of/base.c' line='401' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_cpu_node_to_id'>
+        <parameter type-id='9a537bbe' name='cpu_node' filepath='drivers/of/base.c' line='401' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_cpufreq_cooling_register' mangled-name='of_cpufreq_cooling_register' filepath='drivers/thermal/cpufreq_cooling.c' line='653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_cpufreq_cooling_register'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/thermal/cpufreq_cooling.c' line='653' column='1'/>
+        <return type-id='2feec21f'/>
+      </function-decl>
+      <function-decl name='of_css' mangled-name='of_css' filepath='kernel/cgroup/cgroup.c' line='655' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_css'>
+        <parameter type-id='8212a608' name='of' filepath='kernel/cgroup/cgroup.c' line='655' column='1'/>
+        <return type-id='cfff5953'/>
+      </function-decl>
+      <function-decl name='of_devfreq_cooling_register' mangled-name='of_devfreq_cooling_register' filepath='drivers/thermal/devfreq_cooling.c' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_devfreq_cooling_register'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/thermal/devfreq_cooling.c' line='452' column='1'/>
+        <parameter type-id='f66fa7f4' name='df' filepath='drivers/thermal/devfreq_cooling.c' line='452' column='1'/>
+        <return type-id='2feec21f'/>
+      </function-decl>
+      <function-decl name='of_devfreq_cooling_register_power' mangled-name='of_devfreq_cooling_register_power' filepath='drivers/thermal/devfreq_cooling.c' line='355' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_devfreq_cooling_register_power'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/thermal/devfreq_cooling.c' line='355' column='1'/>
+        <parameter type-id='f66fa7f4' name='df' filepath='drivers/thermal/devfreq_cooling.c' line='355' column='1'/>
+        <parameter type-id='0b660ebe' name='dfc_power' filepath='drivers/thermal/devfreq_cooling.c' line='356' column='1'/>
+        <return type-id='2feec21f'/>
+      </function-decl>
+      <function-decl name='of_device_get_match_data' mangled-name='of_device_get_match_data' filepath='drivers/of/device.c' line='232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_device_get_match_data'>
+        <parameter type-id='8df61054' name='dev' filepath='drivers/of/device.c' line='232' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='of_device_is_available' mangled-name='of_device_is_available' filepath='drivers/of/base.c' line='618' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_device_is_available'>
+        <parameter type-id='0afa6ea3' name='device' filepath='drivers/of/base.c' line='618' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='of_device_is_compatible' mangled-name='of_device_is_compatible' filepath='drivers/of/base.c' line='526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_device_is_compatible'>
+        <parameter type-id='0afa6ea3' name='device' filepath='drivers/of/base.c' line='526' column='1'/>
+        <parameter type-id='80f4b756' name='compat' filepath='drivers/of/base.c' line='527' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_device_modalias' mangled-name='of_device_modalias' filepath='drivers/of/device.c' line='315' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_device_modalias'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/of/device.c' line='315' column='1'/>
+        <parameter type-id='26a90f95' name='str' filepath='drivers/of/device.c' line='315' column='1'/>
+        <parameter type-id='79a0948f' name='len' filepath='drivers/of/device.c' line='315' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='of_device_request_module' mangled-name='of_device_request_module' filepath='drivers/of/device.c' line='283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_device_request_module'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/of/device.c' line='283' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_device_uevent_modalias' mangled-name='of_device_uevent_modalias' filepath='drivers/of/device.c' line='371' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_device_uevent_modalias'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/of/device.c' line='371' column='1'/>
+        <parameter type-id='d9d65b21' name='env' filepath='drivers/of/device.c' line='371' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_dma_configure_id' mangled-name='of_dma_configure_id' filepath='drivers/of/device.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_dma_configure_id'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/of/device.c' line='114' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/device.c' line='114' column='1'/>
+        <parameter type-id='b50a4934' name='force_dma' filepath='drivers/of/device.c' line='115' column='1'/>
+        <parameter type-id='aded214c' name='id' filepath='drivers/of/device.c' line='115' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_dma_controller_free' mangled-name='of_dma_controller_free' filepath='drivers/dma/of-dma.c' line='153' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_dma_controller_free'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/dma/of-dma.c' line='153' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='of_dma_controller_register' mangled-name='of_dma_controller_register' filepath='drivers/dma/of-dma.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_dma_controller_register'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/dma/of-dma.c' line='118' column='1'/>
+        <parameter type-id='04d80927' name='of_dma_xlate' filepath='drivers/dma/of-dma.c' line='119' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/dma/of-dma.c' line='121' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_dma_is_coherent' mangled-name='of_dma_is_coherent' filepath='drivers/of/address.c' line='1059' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_dma_is_coherent'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/address.c' line='1059' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='of_dma_simple_xlate' mangled-name='of_dma_simple_xlate' filepath='drivers/dma/of-dma.c' line='321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_dma_simple_xlate'>
+        <parameter type-id='51a94113' name='dma_spec' filepath='drivers/dma/of-dma.c' line='321' column='1'/>
+        <parameter type-id='2f9b8041' name='ofdma' filepath='drivers/dma/of-dma.c' line='322' column='1'/>
+        <return type-id='27f3f5d8'/>
+      </function-decl>
+      <function-decl name='of_dma_xlate_by_chan_id' mangled-name='of_dma_xlate_by_chan_id' filepath='drivers/dma/of-dma.c' line='351' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_dma_xlate_by_chan_id'>
+        <parameter type-id='51a94113' name='dma_spec' filepath='drivers/dma/of-dma.c' line='351' column='1'/>
+        <parameter type-id='2f9b8041' name='ofdma' filepath='drivers/dma/of-dma.c' line='352' column='1'/>
+        <return type-id='27f3f5d8'/>
+      </function-decl>
+      <function-decl name='of_drm_find_bridge' mangled-name='of_drm_find_bridge' filepath='drivers/gpu/drm/drm_bridge.c' line='1218' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_drm_find_bridge'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/gpu/drm/drm_bridge.c' line='1218' column='1'/>
+        <return type-id='8582e5ec'/>
+      </function-decl>
+      <function-decl name='of_drm_find_panel' mangled-name='of_drm_find_panel' filepath='drivers/gpu/drm/drm_panel.c' line='243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_drm_find_panel'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/gpu/drm/drm_panel.c' line='243' column='1'/>
+        <return type-id='c5491077'/>
+      </function-decl>
+      <function-decl name='of_drm_get_panel_orientation' mangled-name='of_drm_get_panel_orientation' filepath='drivers/gpu/drm/drm_panel.c' line='277' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_drm_get_panel_orientation'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/gpu/drm/drm_panel.c' line='277' column='1'/>
+        <parameter type-id='83de9118' name='orientation' filepath='drivers/gpu/drm/drm_panel.c' line='278' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_fdt_unflatten_tree' mangled-name='of_fdt_unflatten_tree' filepath='drivers/of/fdt.c' line='454' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_fdt_unflatten_tree'>
+        <parameter type-id='f9b37274' name='blob' filepath='drivers/of/fdt.c' line='454' column='1'/>
+        <parameter type-id='9a537bbe' name='dad' filepath='drivers/of/fdt.c' line='455' column='1'/>
+        <parameter type-id='856b89fc' name='mynodes' filepath='drivers/of/fdt.c' line='456' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='of_find_all_nodes' mangled-name='of_find_all_nodes' filepath='drivers/of/base.c' line='251' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_find_all_nodes'>
+        <parameter type-id='9a537bbe' name='prev' filepath='drivers/of/base.c' line='251' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_find_backlight_by_node' mangled-name='of_find_backlight_by_node' filepath='drivers/video/backlight/backlight.c' line='665' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_find_backlight_by_node'>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/video/backlight/backlight.c' line='665' column='1'/>
+        <return type-id='7a76d041'/>
+      </function-decl>
+      <function-decl name='of_find_compatible_node' mangled-name='of_find_compatible_node' filepath='drivers/of/base.c' line='1055' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_find_compatible_node'>
+        <parameter type-id='9a537bbe' name='from' filepath='drivers/of/base.c' line='1055' column='1'/>
+        <parameter type-id='80f4b756' name='type' filepath='drivers/of/base.c' line='1056' column='1'/>
+        <parameter type-id='80f4b756' name='compatible' filepath='drivers/of/base.c' line='1056' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_find_device_by_node' mangled-name='of_find_device_by_node' filepath='drivers/of/platform.c' line='48' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_find_device_by_node'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/platform.c' line='48' column='1'/>
+        <return type-id='db362995'/>
+      </function-decl>
+      <function-decl name='of_find_i2c_adapter_by_node' mangled-name='of_find_i2c_adapter_by_node' filepath='drivers/i2c/i2c-core-of.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_find_i2c_adapter_by_node'>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/i2c/i2c-core-of.c' line='146' column='1'/>
+        <return type-id='b9af02c3'/>
+      </function-decl>
+      <function-decl name='of_find_i2c_device_by_node' mangled-name='of_find_i2c_device_by_node' filepath='drivers/i2c/i2c-core-of.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_find_i2c_device_by_node'>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/i2c/i2c-core-of.c' line='128' column='1'/>
+        <return type-id='3e31633b'/>
+      </function-decl>
+      <function-decl name='of_find_matching_node_and_match' mangled-name='of_find_matching_node_and_match' filepath='drivers/of/base.c' line='1162' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_find_matching_node_and_match'>
+        <parameter type-id='9a537bbe' name='from' filepath='drivers/of/base.c' line='1162' column='1'/>
+        <parameter type-id='e5ce629e' name='matches' filepath='drivers/of/base.c' line='1163' column='1'/>
+        <parameter type-id='77e5615c' name='match' filepath='drivers/of/base.c' line='1164' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_find_mipi_dsi_host_by_node' mangled-name='of_find_mipi_dsi_host_by_node' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_find_mipi_dsi_host_by_node'>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/gpu/drm/drm_mipi_dsi.c' line='261' column='1'/>
+        <return type-id='c149fe34'/>
+      </function-decl>
+      <function-decl name='of_find_node_by_name' mangled-name='of_find_node_by_name' filepath='drivers/of/base.c' line='997' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_find_node_by_name'>
+        <parameter type-id='9a537bbe' name='from' filepath='drivers/of/base.c' line='997' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/of/base.c' line='998' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_find_node_by_phandle' mangled-name='of_find_node_by_phandle' filepath='drivers/of/base.c' line='1222' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_find_node_by_phandle'>
+        <parameter type-id='6e394fba' name='handle' filepath='drivers/of/base.c' line='1222' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_find_node_by_type' mangled-name='of_find_node_by_type' filepath='drivers/of/base.c' line='1025' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_find_node_by_type'>
+        <parameter type-id='9a537bbe' name='from' filepath='drivers/of/base.c' line='1025' column='1'/>
+        <parameter type-id='80f4b756' name='type' filepath='drivers/of/base.c' line='1026' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_find_node_opts_by_path' mangled-name='of_find_node_opts_by_path' filepath='drivers/of/base.c' line='939' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_find_node_opts_by_path'>
+        <parameter type-id='80f4b756' name='path' filepath='drivers/of/base.c' line='939' column='1'/>
+        <parameter type-id='7d3cd834' name='opts' filepath='drivers/of/base.c' line='939' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_find_node_with_property' mangled-name='of_find_node_with_property' filepath='drivers/of/base.c' line='1084' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_find_node_with_property'>
+        <parameter type-id='9a537bbe' name='from' filepath='drivers/of/base.c' line='1084' column='1'/>
+        <parameter type-id='80f4b756' name='prop_name' filepath='drivers/of/base.c' line='1085' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_find_property' mangled-name='of_find_property' filepath='drivers/of/base.c' line='211' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_find_property'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/base.c' line='211' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/of/base.c' line='212' column='1'/>
+        <parameter type-id='7292109c' name='lenp' filepath='drivers/of/base.c' line='213' column='1'/>
+        <return type-id='ddcd89c6'/>
+      </function-decl>
+      <var-decl name='of_fwnode_ops' type-id='2eb8da02' mangled-name='of_fwnode_ops' visibility='default' filepath='drivers/of/property.c' line='1459' column='1' elf-symbol-id='of_fwnode_ops'/>
+      <function-decl name='of_gen_pool_get' mangled-name='of_gen_pool_get' filepath='lib/genalloc.c' line='879' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_gen_pool_get'>
+        <parameter type-id='9a537bbe' name='np' filepath='lib/genalloc.c' line='879' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='lib/genalloc.c' line='880' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='lib/genalloc.c' line='880' column='1'/>
+        <return type-id='75b9415a'/>
+      </function-decl>
+      <function-decl name='of_genpd_add_device' mangled-name='of_genpd_add_device' filepath='drivers/base/power/domain.c' line='2445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_genpd_add_device'>
+        <parameter type-id='51a94113' name='genpdspec' filepath='drivers/base/power/domain.c' line='2445' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/domain.c' line='2445' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_genpd_add_provider_onecell' mangled-name='of_genpd_add_provider_onecell' filepath='drivers/base/power/domain.c' line='2289' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_genpd_add_provider_onecell'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/base/power/domain.c' line='2289' column='1'/>
+        <parameter type-id='29f0ac2f' name='data' filepath='drivers/base/power/domain.c' line='2290' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_genpd_add_provider_simple' mangled-name='of_genpd_add_provider_simple' filepath='drivers/base/power/domain.c' line='2236' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_genpd_add_provider_simple'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/base/power/domain.c' line='2236' column='1'/>
+        <parameter type-id='855e3679' name='genpd' filepath='drivers/base/power/domain.c' line='2237' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_genpd_add_subdomain' mangled-name='of_genpd_add_subdomain' filepath='drivers/base/power/domain.c' line='2476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_genpd_add_subdomain'>
+        <parameter type-id='51a94113' name='parent_spec' filepath='drivers/base/power/domain.c' line='2476' column='1'/>
+        <parameter type-id='51a94113' name='subdomain_spec' filepath='drivers/base/power/domain.c' line='2477' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_genpd_del_provider' mangled-name='of_genpd_del_provider' filepath='drivers/base/power/domain.c' line='2364' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_genpd_del_provider'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/base/power/domain.c' line='2364' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='of_get_child_by_name' mangled-name='of_get_child_by_name' filepath='drivers/of/base.c' line='873' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_get_child_by_name'>
+        <parameter type-id='0afa6ea3' name='node' filepath='drivers/of/base.c' line='873' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/of/base.c' line='874' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_get_compatible_child' mangled-name='of_get_compatible_child' filepath='drivers/of/base.c' line='848' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_get_compatible_child'>
+        <parameter type-id='0afa6ea3' name='parent' filepath='drivers/of/base.c' line='848' column='1'/>
+        <parameter type-id='80f4b756' name='compatible' filepath='drivers/of/base.c' line='849' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_get_cpu_node' mangled-name='of_get_cpu_node' filepath='drivers/of/base.c' line='381' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_get_cpu_node'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='drivers/of/base.c' line='381' column='1'/>
+        <parameter type-id='807869d3' name='thread' filepath='drivers/of/base.c' line='381' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_get_display_timing' mangled-name='of_get_display_timing' filepath='drivers/video/of_display_timing.c' line='119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_get_display_timing'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/video/of_display_timing.c' line='119' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/video/of_display_timing.c' line='119' column='1'/>
+        <parameter type-id='a569b9de' name='dt' filepath='drivers/video/of_display_timing.c' line='120' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_get_display_timings' mangled-name='of_get_display_timings' filepath='drivers/video/of_display_timing.c' line='144' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_get_display_timings'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/video/of_display_timing.c' line='144' column='1'/>
+        <return type-id='32e774d9'/>
+      </function-decl>
+      <function-decl name='of_get_drm_display_mode' mangled-name='of_get_drm_display_mode' filepath='drivers/gpu/drm/drm_modes.c' line='708' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_get_drm_display_mode'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/gpu/drm/drm_modes.c' line='708' column='1'/>
+        <parameter type-id='11e02f83' name='dmode' filepath='drivers/gpu/drm/drm_modes.c' line='709' column='1'/>
+        <parameter type-id='f9409001' name='bus_flags' filepath='drivers/gpu/drm/drm_modes.c' line='709' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/gpu/drm/drm_modes.c' line='710' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_get_i2c_adapter_by_node' mangled-name='of_get_i2c_adapter_by_node' filepath='drivers/i2c/i2c-core-of.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_get_i2c_adapter_by_node'>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/i2c/i2c-core-of.c' line='165' column='1'/>
+        <return type-id='b9af02c3'/>
+      </function-decl>
+      <function-decl name='of_get_mac_address' mangled-name='of_get_mac_address' filepath='net/core/of_net.c' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_get_mac_address'>
+        <parameter type-id='9a537bbe' name='np' filepath='net/core/of_net.c' line='124' column='1'/>
+        <parameter type-id='8bff8096' name='addr' filepath='net/core/of_net.c' line='124' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_get_named_gpio_flags' mangled-name='of_get_named_gpio_flags' filepath='drivers/gpio/gpiolib-of.c' line='278' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_get_named_gpio_flags'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/gpio/gpiolib-of.c' line='278' column='1'/>
+        <parameter type-id='80f4b756' name='list_name' filepath='drivers/gpio/gpiolib-of.c' line='278' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/gpio/gpiolib-of.c' line='279' column='1'/>
+        <parameter type-id='38fe9344' name='flags' filepath='drivers/gpio/gpiolib-of.c' line='279' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_get_next_available_child' mangled-name='of_get_next_available_child' filepath='drivers/of/base.c' line='772' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_get_next_available_child'>
+        <parameter type-id='0afa6ea3' name='node' filepath='drivers/of/base.c' line='772' column='1'/>
+        <parameter type-id='9a537bbe' name='prev' filepath='drivers/of/base.c' line='773' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_get_next_child' mangled-name='of_get_next_child' filepath='drivers/of/base.c' line='751' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_get_next_child'>
+        <parameter type-id='0afa6ea3' name='node' filepath='drivers/of/base.c' line='751' column='1'/>
+        <parameter type-id='9a537bbe' name='prev' filepath='drivers/of/base.c' line='752' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_get_next_parent' mangled-name='of_get_next_parent' filepath='drivers/of/base.c' line='709' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_get_next_parent'>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/of/base.c' line='709' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_get_parent' mangled-name='of_get_parent' filepath='drivers/of/base.c' line='683' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_get_parent'>
+        <parameter type-id='0afa6ea3' name='node' filepath='drivers/of/base.c' line='683' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_get_pci_domain_nr' mangled-name='of_get_pci_domain_nr' filepath='drivers/pci/of.c' line='216' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_get_pci_domain_nr'>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/pci/of.c' line='216' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_get_phy_mode' mangled-name='of_get_phy_mode' filepath='net/core/of_net.c' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_get_phy_mode'>
+        <parameter type-id='9a537bbe' name='np' filepath='net/core/of_net.c' line='26' column='1'/>
+        <parameter type-id='14061e47' name='interface' filepath='net/core/of_net.c' line='26' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_get_property' mangled-name='of_get_property' filepath='drivers/of/base.c' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_get_property'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/base.c' line='281' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/of/base.c' line='281' column='1'/>
+        <parameter type-id='7292109c' name='lenp' filepath='drivers/of/base.c' line='282' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='of_get_regulator_init_data' mangled-name='of_get_regulator_init_data' filepath='drivers/regulator/of_regulator.c' line='335' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_get_regulator_init_data'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/regulator/of_regulator.c' line='335' column='1'/>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/regulator/of_regulator.c' line='336' column='1'/>
+        <parameter type-id='5629bd41' name='desc' filepath='drivers/regulator/of_regulator.c' line='337' column='1'/>
+        <return type-id='d287fe92'/>
+      </function-decl>
+      <function-decl name='of_get_required_opp_performance_state' mangled-name='of_get_required_opp_performance_state' filepath='drivers/opp/of.c' line='1314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_get_required_opp_performance_state'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/opp/of.c' line='1314' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/opp/of.c' line='1314' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_get_videomode' mangled-name='of_get_videomode' filepath='drivers/video/of_videomode.c' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_get_videomode'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/video/of_videomode.c' line='30' column='1'/>
+        <parameter type-id='83e7c23f' name='vm' filepath='drivers/video/of_videomode.c' line='30' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/video/of_videomode.c' line='31' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_graph_get_endpoint_by_regs' mangled-name='of_graph_get_endpoint_by_regs' filepath='drivers/of/property.c' line='707' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_graph_get_endpoint_by_regs'>
+        <parameter type-id='0afa6ea3' name='parent' filepath='drivers/of/property.c' line='708' column='1'/>
+        <parameter type-id='95e97e5e' name='port_reg' filepath='drivers/of/property.c' line='708' column='1'/>
+        <parameter type-id='95e97e5e' name='reg' filepath='drivers/of/property.c' line='708' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_graph_get_endpoint_count' mangled-name='of_graph_get_endpoint_count' filepath='drivers/of/property.c' line='810' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_graph_get_endpoint_count'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/property.c' line='810' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_graph_get_next_endpoint' mangled-name='of_graph_get_next_endpoint' filepath='drivers/of/property.c' line='638' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_graph_get_next_endpoint'>
+        <parameter type-id='0afa6ea3' name='parent' filepath='drivers/of/property.c' line='638' column='1'/>
+        <parameter type-id='9a537bbe' name='prev' filepath='drivers/of/property.c' line='639' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_graph_get_port_by_id' mangled-name='of_graph_get_port_by_id' filepath='drivers/of/property.c' line='606' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_graph_get_port_by_id'>
+        <parameter type-id='9a537bbe' name='parent' filepath='drivers/of/property.c' line='606' column='1'/>
+        <parameter type-id='19c2251e' name='id' filepath='drivers/of/property.c' line='606' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_graph_get_port_parent' mangled-name='of_graph_get_port_parent' filepath='drivers/of/property.c' line='745' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_graph_get_port_parent'>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/of/property.c' line='745' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_graph_get_remote_endpoint' mangled-name='of_graph_get_remote_endpoint' filepath='drivers/of/property.c' line='731' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_graph_get_remote_endpoint'>
+        <parameter type-id='0afa6ea3' name='node' filepath='drivers/of/property.c' line='731' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_graph_get_remote_node' mangled-name='of_graph_get_remote_node' filepath='drivers/of/property.c' line='831' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_graph_get_remote_node'>
+        <parameter type-id='0afa6ea3' name='node' filepath='drivers/of/property.c' line='831' column='1'/>
+        <parameter type-id='19c2251e' name='port' filepath='drivers/of/property.c' line='832' column='1'/>
+        <parameter type-id='19c2251e' name='endpoint' filepath='drivers/of/property.c' line='832' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_graph_get_remote_port' mangled-name='of_graph_get_remote_port' filepath='drivers/of/property.c' line='798' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_graph_get_remote_port'>
+        <parameter type-id='0afa6ea3' name='node' filepath='drivers/of/property.c' line='798' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_graph_get_remote_port_parent' mangled-name='of_graph_get_remote_port_parent' filepath='drivers/of/property.c' line='775' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_graph_get_remote_port_parent'>
+        <parameter type-id='0afa6ea3' name='node' filepath='drivers/of/property.c' line='776' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_graph_is_present' mangled-name='of_graph_is_present' filepath='drivers/of/property.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_graph_is_present'>
+        <parameter type-id='0afa6ea3' name='node' filepath='drivers/of/property.c' line='40' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='of_graph_parse_endpoint' mangled-name='of_graph_parse_endpoint' filepath='drivers/of/property.c' line='574' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_graph_parse_endpoint'>
+        <parameter type-id='0afa6ea3' name='node' filepath='drivers/of/property.c' line='574' column='1'/>
+        <parameter type-id='a5eb3c12' name='endpoint' filepath='drivers/of/property.c' line='575' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_hwspin_lock_get_id' mangled-name='of_hwspin_lock_get_id' filepath='drivers/hwspinlock/hwspinlock_core.c' line='339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_hwspin_lock_get_id'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/hwspinlock/hwspinlock_core.c' line='339' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/hwspinlock/hwspinlock_core.c' line='339' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_hwspin_lock_get_id_byname' mangled-name='of_hwspin_lock_get_id_byname' filepath='drivers/hwspinlock/hwspinlock_core.c' line='406' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_hwspin_lock_get_id_byname'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/hwspinlock/hwspinlock_core.c' line='406' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/hwspinlock/hwspinlock_core.c' line='406' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_icc_get' mangled-name='of_icc_get' filepath='drivers/interconnect/core.c' line='533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_icc_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/interconnect/core.c' line='533' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/interconnect/core.c' line='533' column='1'/>
+        <return type-id='b5fdec5e'/>
+      </function-decl>
+      <function-decl name='of_icc_xlate_onecell' mangled-name='of_icc_xlate_onecell' filepath='drivers/interconnect/core.c' line='331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_icc_xlate_onecell'>
+        <parameter type-id='51a94113' name='spec' filepath='drivers/interconnect/core.c' line='331' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/interconnect/core.c' line='332' column='1'/>
+        <return type-id='18d76f87'/>
+      </function-decl>
+      <function-decl name='of_io_request_and_map' mangled-name='of_io_request_and_map' filepath='drivers/of/address.c' line='886' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_io_request_and_map'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/address.c' line='886' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/of/address.c' line='886' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/of/address.c' line='887' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='of_iomap' mangled-name='of_iomap' filepath='drivers/of/address.c' line='858' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_iomap'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/address.c' line='858' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/of/address.c' line='858' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='of_irq_find_parent' mangled-name='of_irq_find_parent' filepath='drivers/of/irq.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_irq_find_parent'>
+        <parameter type-id='9a537bbe' name='child' filepath='drivers/of/irq.c' line='54' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_irq_get' mangled-name='of_irq_get' filepath='drivers/of/irq.c' line='387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_irq_get'>
+        <parameter type-id='9a537bbe' name='dev' filepath='drivers/of/irq.c' line='387' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/of/irq.c' line='387' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_irq_get_byname' mangled-name='of_irq_get_byname' filepath='drivers/of/irq.c' line='414' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_irq_get_byname'>
+        <parameter type-id='9a537bbe' name='dev' filepath='drivers/of/irq.c' line='414' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/of/irq.c' line='414' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_irq_parse_and_map_pci' mangled-name='of_irq_parse_and_map_pci' filepath='drivers/pci/of.c' line='529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_irq_parse_and_map_pci'>
+        <parameter type-id='947f31e6' name='dev' filepath='drivers/pci/of.c' line='529' column='1'/>
+        <parameter type-id='f9b06939' name='slot' filepath='drivers/pci/of.c' line='529' column='1'/>
+        <parameter type-id='f9b06939' name='pin' filepath='drivers/pci/of.c' line='529' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_irq_parse_one' mangled-name='of_irq_parse_one' filepath='drivers/of/irq.c' line='286' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_irq_parse_one'>
+        <parameter type-id='9a537bbe' name='device' filepath='drivers/of/irq.c' line='286' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/of/irq.c' line='286' column='1'/>
+        <parameter type-id='51a94113' name='out_irq' filepath='drivers/of/irq.c' line='286' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_irq_to_resource' mangled-name='of_irq_to_resource' filepath='drivers/of/irq.c' line='349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_irq_to_resource'>
+        <parameter type-id='9a537bbe' name='dev' filepath='drivers/of/irq.c' line='349' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/of/irq.c' line='349' column='1'/>
+        <parameter type-id='c9d64c0d' name='r' filepath='drivers/of/irq.c' line='349' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_irq_to_resource_table' mangled-name='of_irq_to_resource_table' filepath='drivers/of/irq.c' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_irq_to_resource_table'>
+        <parameter type-id='9a537bbe' name='dev' filepath='drivers/of/irq.c' line='452' column='1'/>
+        <parameter type-id='c9d64c0d' name='res' filepath='drivers/of/irq.c' line='452' column='1'/>
+        <parameter type-id='95e97e5e' name='nr_irqs' filepath='drivers/of/irq.c' line='453' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_machine_is_compatible' mangled-name='of_machine_is_compatible' filepath='drivers/of/base.c' line='568' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_machine_is_compatible'>
+        <parameter type-id='80f4b756' name='compat' filepath='drivers/of/base.c' line='568' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_match_device' mangled-name='of_match_device' filepath='drivers/of/device.c' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_match_device'>
+        <parameter type-id='e5ce629e' name='matches' filepath='drivers/of/device.c' line='28' column='1'/>
+        <parameter type-id='8df61054' name='dev' filepath='drivers/of/device.c' line='29' column='1'/>
+        <return type-id='e5ce629e'/>
+      </function-decl>
+      <function-decl name='of_match_node' mangled-name='of_match_node' filepath='drivers/of/base.c' line='1136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_match_node'>
+        <parameter type-id='e5ce629e' name='matches' filepath='drivers/of/base.c' line='1136' column='1'/>
+        <parameter type-id='0afa6ea3' name='node' filepath='drivers/of/base.c' line='1137' column='1'/>
+        <return type-id='e5ce629e'/>
+      </function-decl>
+      <function-decl name='of_mdio_find_bus' mangled-name='of_mdio_find_bus' filepath='drivers/net/phy/mdio_bus.c' line='432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_mdio_find_bus'>
+        <parameter type-id='9a537bbe' name='mdio_bus_np' filepath='drivers/net/phy/mdio_bus.c' line='432' column='1'/>
+        <return type-id='ff47b24b'/>
+      </function-decl>
+      <function-decl name='of_mdiobus_register' mangled-name='of_mdiobus_register' filepath='drivers/net/mdio/of_mdio.c' line='149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_mdiobus_register'>
+        <parameter type-id='ff47b24b' name='mdio' filepath='drivers/net/mdio/of_mdio.c' line='149' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/net/mdio/of_mdio.c' line='149' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_modalias_node' mangled-name='of_modalias_node' filepath='drivers/of/base.c' line='1201' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_modalias_node'>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/of/base.c' line='1201' column='1'/>
+        <parameter type-id='26a90f95' name='modalias' filepath='drivers/of/base.c' line='1201' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='drivers/of/base.c' line='1201' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_n_addr_cells' mangled-name='of_n_addr_cells' filepath='drivers/of/base.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_n_addr_cells'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/base.c' line='102' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_n_size_cells' mangled-name='of_n_size_cells' filepath='drivers/of/base.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_n_size_cells'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/base.c' line='123' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_node_name_eq' mangled-name='of_node_name_eq' filepath='drivers/of/base.c' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_node_name_eq'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/base.c' line='59' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/of/base.c' line='59' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='of_nvmem_cell_get' mangled-name='of_nvmem_cell_get' filepath='drivers/nvmem/core.c' line='1221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_nvmem_cell_get'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/nvmem/core.c' line='1221' column='1'/>
+        <parameter type-id='80f4b756' name='id' filepath='drivers/nvmem/core.c' line='1221' column='1'/>
+        <return type-id='4a4ce85f'/>
+      </function-decl>
+      <function-decl name='of_nvmem_device_get' mangled-name='of_nvmem_device_get' filepath='drivers/nvmem/core.c' line='1014' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_nvmem_device_get'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/nvmem/core.c' line='1014' column='1'/>
+        <parameter type-id='80f4b756' name='id' filepath='drivers/nvmem/core.c' line='1014' column='1'/>
+        <return type-id='8179bc49'/>
+      </function-decl>
+      <function-decl name='of_parse_phandle' mangled-name='of_parse_phandle' filepath='drivers/of/base.c' line='1463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_parse_phandle'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/base.c' line='1463' column='1'/>
+        <parameter type-id='80f4b756' name='phandle_name' filepath='drivers/of/base.c' line='1464' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/of/base.c' line='1464' column='1'/>
+        <return type-id='9a537bbe'/>
+      </function-decl>
+      <function-decl name='of_parse_phandle_with_args' mangled-name='of_parse_phandle_with_args' filepath='drivers/of/base.c' line='1511' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_parse_phandle_with_args'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/base.c' line='1511' column='1'/>
+        <parameter type-id='80f4b756' name='list_name' filepath='drivers/of/base.c' line='1511' column='1'/>
+        <parameter type-id='80f4b756' name='cells_name' filepath='drivers/of/base.c' line='1512' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/of/base.c' line='1512' column='1'/>
+        <parameter type-id='51a94113' name='out_args' filepath='drivers/of/base.c' line='1513' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_parse_phandle_with_fixed_args' mangled-name='of_parse_phandle_with_fixed_args' filepath='drivers/of/base.c' line='1743' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_parse_phandle_with_fixed_args'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/base.c' line='1743' column='1'/>
+        <parameter type-id='80f4b756' name='list_name' filepath='drivers/of/base.c' line='1744' column='1'/>
+        <parameter type-id='95e97e5e' name='cell_count' filepath='drivers/of/base.c' line='1744' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/of/base.c' line='1745' column='1'/>
+        <parameter type-id='51a94113' name='out_args' filepath='drivers/of/base.c' line='1745' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_pci_get_devfn' mangled-name='of_pci_get_devfn' filepath='drivers/pci/of.c' line='160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_pci_get_devfn'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/pci/of.c' line='160' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_pci_get_max_link_speed' mangled-name='of_pci_get_max_link_speed' filepath='drivers/pci/of.c' line='619' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_pci_get_max_link_speed'>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/pci/of.c' line='619' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_pci_parse_bus_range' mangled-name='of_pci_parse_bus_range' filepath='drivers/pci/of.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_pci_parse_bus_range'>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/pci/of.c' line='180' column='1'/>
+        <parameter type-id='c9d64c0d' name='res' filepath='drivers/pci/of.c' line='180' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_pci_range_parser_init' mangled-name='of_pci_range_parser_init' filepath='drivers/of/address.c' line='694' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_pci_range_parser_init'>
+        <parameter type-id='f12d6b61' name='parser' filepath='drivers/of/address.c' line='694' column='1'/>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/of/address.c' line='695' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_pci_range_parser_one' mangled-name='of_pci_range_parser_one' filepath='drivers/of/address.c' line='709' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_pci_range_parser_one'>
+        <parameter type-id='f12d6b61' name='parser' filepath='drivers/of/address.c' line='709' column='1'/>
+        <parameter type-id='aea1d5b5' name='range' filepath='drivers/of/address.c' line='710' column='1'/>
+        <return type-id='aea1d5b5'/>
+      </function-decl>
+      <function-decl name='of_pci_range_to_resource' mangled-name='of_pci_range_to_resource' filepath='drivers/of/address.c' line='224' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_pci_range_to_resource'>
+        <parameter type-id='aea1d5b5' name='range' filepath='drivers/of/address.c' line='224' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/address.c' line='225' column='1'/>
+        <parameter type-id='c9d64c0d' name='res' filepath='drivers/of/address.c' line='225' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_phandle_iterator_init' mangled-name='of_phandle_iterator_init' filepath='drivers/of/base.c' line='1266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_phandle_iterator_init'>
+        <parameter type-id='58cfaa0e' name='it' filepath='drivers/of/base.c' line='1266' column='1'/>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/base.c' line='1267' column='1'/>
+        <parameter type-id='80f4b756' name='list_name' filepath='drivers/of/base.c' line='1268' column='1'/>
+        <parameter type-id='80f4b756' name='cells_name' filepath='drivers/of/base.c' line='1269' column='1'/>
+        <parameter type-id='95e97e5e' name='cell_count' filepath='drivers/of/base.c' line='1270' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_phandle_iterator_next' mangled-name='of_phandle_iterator_next' filepath='drivers/of/base.c' line='1299' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_phandle_iterator_next'>
+        <parameter type-id='58cfaa0e' name='it' filepath='drivers/of/base.c' line='1299' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_phy_connect' mangled-name='of_phy_connect' filepath='drivers/net/mdio/of_mdio.c' line='280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_phy_connect'>
+        <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/mdio/of_mdio.c' line='280' column='1'/>
+        <parameter type-id='9a537bbe' name='phy_np' filepath='drivers/net/mdio/of_mdio.c' line='281' column='1'/>
+        <parameter type-id='548eee3a' name='hndlr' filepath='drivers/net/mdio/of_mdio.c' line='282' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='drivers/net/mdio/of_mdio.c' line='282' column='1'/>
+        <parameter type-id='d61bf978' name='iface' filepath='drivers/net/mdio/of_mdio.c' line='283' column='1'/>
+        <return type-id='7efbcaaf'/>
+      </function-decl>
+      <function-decl name='of_phy_deregister_fixed_link' mangled-name='of_phy_deregister_fixed_link' filepath='drivers/net/mdio/of_mdio.c' line='430' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_phy_deregister_fixed_link'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/net/mdio/of_mdio.c' line='430' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='of_phy_find_device' mangled-name='of_phy_find_device' filepath='drivers/net/mdio/of_mdio.c' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_phy_find_device'>
+        <parameter type-id='9a537bbe' name='phy_np' filepath='drivers/net/mdio/of_mdio.c' line='262' column='1'/>
+        <return type-id='7efbcaaf'/>
+      </function-decl>
+      <function-decl name='of_phy_is_fixed_link' mangled-name='of_phy_is_fixed_link' filepath='drivers/net/mdio/of_mdio.c' line='354' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_phy_is_fixed_link'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/net/mdio/of_mdio.c' line='354' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='of_phy_register_fixed_link' mangled-name='of_phy_register_fixed_link' filepath='drivers/net/mdio/of_mdio.c' line='380' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_phy_register_fixed_link'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/net/mdio/of_mdio.c' line='380' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_phy_simple_xlate' mangled-name='of_phy_simple_xlate' filepath='drivers/phy/phy-core.c' line='663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_phy_simple_xlate'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/phy/phy-core.c' line='663' column='1'/>
+        <parameter type-id='51a94113' name='args' filepath='drivers/phy/phy-core.c' line='664' column='1'/>
+        <return type-id='503ff1ba'/>
+      </function-decl>
+      <function-decl name='of_platform_depopulate' mangled-name='of_platform_depopulate' filepath='drivers/of/platform.c' line='589' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_platform_depopulate'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/of/platform.c' line='589' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='of_platform_device_create' mangled-name='of_platform_device_create' filepath='drivers/of/platform.c' line='209' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_platform_device_create'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/platform.c' line='209' column='1'/>
+        <parameter type-id='80f4b756' name='bus_id' filepath='drivers/of/platform.c' line='210' column='1'/>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/of/platform.c' line='211' column='1'/>
+        <return type-id='db362995'/>
+      </function-decl>
+      <function-decl name='of_platform_device_destroy' mangled-name='of_platform_device_destroy' filepath='drivers/of/platform.c' line='556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_platform_device_destroy'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/of/platform.c' line='556' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/of/platform.c' line='556' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_platform_populate' mangled-name='of_platform_populate' filepath='drivers/of/platform.c' line='467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_platform_populate'>
+        <parameter type-id='9a537bbe' name='root' filepath='drivers/of/platform.c' line='467' column='1'/>
+        <parameter type-id='e5ce629e' name='matches' filepath='drivers/of/platform.c' line='468' column='1'/>
+        <parameter type-id='fcc1e09e' name='lookup' filepath='drivers/of/platform.c' line='469' column='1'/>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/of/platform.c' line='470' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_pm_clk_add_clks' mangled-name='of_pm_clk_add_clks' filepath='drivers/base/power/clock_ops.c' line='305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_pm_clk_add_clks'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/clock_ops.c' line='305' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_prop_next_string' mangled-name='of_prop_next_string' filepath='drivers/of/property.c' line='549' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_prop_next_string'>
+        <parameter type-id='ddcd89c6' name='prop' filepath='drivers/of/property.c' line='549' column='1'/>
+        <parameter type-id='80f4b756' name='cur' filepath='drivers/of/property.c' line='549' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='of_prop_next_u32' mangled-name='of_prop_next_u32' filepath='drivers/of/property.c' line='526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_prop_next_u32'>
+        <parameter type-id='ddcd89c6' name='prop' filepath='drivers/of/property.c' line='526' column='1'/>
+        <parameter type-id='90144368' name='cur' filepath='drivers/of/property.c' line='526' column='1'/>
+        <parameter type-id='f9409001' name='pu' filepath='drivers/of/property.c' line='527' column='1'/>
+        <return type-id='90144368'/>
+      </function-decl>
+      <function-decl name='of_property_count_elems_of_size' mangled-name='of_property_count_elems_of_size' filepath='drivers/of/property.c' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_property_count_elems_of_size'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/property.c' line='70' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/of/property.c' line='71' column='1'/>
+        <parameter type-id='95e97e5e' name='elem_size' filepath='drivers/of/property.c' line='71' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_property_match_string' mangled-name='of_property_match_string' filepath='drivers/of/property.c' line='460' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_property_match_string'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/property.c' line='460' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/of/property.c' line='460' column='1'/>
+        <parameter type-id='80f4b756' name='string' filepath='drivers/of/property.c' line='461' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_property_read_string' mangled-name='of_property_read_string' filepath='drivers/of/property.c' line='436' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_property_read_string'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/property.c' line='436' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/of/property.c' line='436' column='1'/>
+        <parameter type-id='7d3cd834' name='out_string' filepath='drivers/of/property.c' line='437' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_property_read_string_helper' mangled-name='of_property_read_string_helper' filepath='drivers/of/property.c' line='499' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_property_read_string_helper'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/property.c' line='499' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/of/property.c' line='500' column='1'/>
+        <parameter type-id='7d3cd834' name='out_strs' filepath='drivers/of/property.c' line='500' column='1'/>
+        <parameter type-id='b59d7dce' name='sz' filepath='drivers/of/property.c' line='501' column='1'/>
+        <parameter type-id='95e97e5e' name='skip' filepath='drivers/of/property.c' line='501' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_property_read_u32_index' mangled-name='of_property_read_u32_index' filepath='drivers/of/property.c' line='143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_property_read_u32_index'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/property.c' line='143' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/of/property.c' line='144' column='1'/>
+        <parameter type-id='19c2251e' name='index' filepath='drivers/of/property.c' line='145' column='1'/>
+        <parameter type-id='f9409001' name='out_value' filepath='drivers/of/property.c' line='145' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_property_read_u64' mangled-name='of_property_read_u64' filepath='drivers/of/property.c' line='355' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_property_read_u64'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/property.c' line='355' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/of/property.c' line='355' column='1'/>
+        <parameter type-id='3df9fd28' name='out_value' filepath='drivers/of/property.c' line='356' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_property_read_u64_index' mangled-name='of_property_read_u64_index' filepath='drivers/of/property.c' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_property_read_u64_index'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/property.c' line='177' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/of/property.c' line='178' column='1'/>
+        <parameter type-id='19c2251e' name='index' filepath='drivers/of/property.c' line='179' column='1'/>
+        <parameter type-id='3df9fd28' name='out_value' filepath='drivers/of/property.c' line='179' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_property_read_variable_u16_array' mangled-name='of_property_read_variable_u16_array' filepath='drivers/of/property.c' line='267' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_property_read_variable_u16_array'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/property.c' line='267' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/of/property.c' line='268' column='1'/>
+        <parameter type-id='26d4d46f' name='out_values' filepath='drivers/of/property.c' line='268' column='1'/>
+        <parameter type-id='b59d7dce' name='sz_min' filepath='drivers/of/property.c' line='269' column='1'/>
+        <parameter type-id='b59d7dce' name='sz_max' filepath='drivers/of/property.c' line='269' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_property_read_variable_u32_array' mangled-name='of_property_read_variable_u32_array' filepath='drivers/of/property.c' line='314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_property_read_variable_u32_array'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/property.c' line='314' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/of/property.c' line='315' column='1'/>
+        <parameter type-id='f9409001' name='out_values' filepath='drivers/of/property.c' line='315' column='1'/>
+        <parameter type-id='b59d7dce' name='sz_min' filepath='drivers/of/property.c' line='316' column='1'/>
+        <parameter type-id='b59d7dce' name='sz_max' filepath='drivers/of/property.c' line='316' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_property_read_variable_u64_array' mangled-name='of_property_read_variable_u64_array' filepath='drivers/of/property.c' line='392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_property_read_variable_u64_array'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/property.c' line='392' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/of/property.c' line='393' column='1'/>
+        <parameter type-id='3df9fd28' name='out_values' filepath='drivers/of/property.c' line='393' column='1'/>
+        <parameter type-id='b59d7dce' name='sz_min' filepath='drivers/of/property.c' line='394' column='1'/>
+        <parameter type-id='b59d7dce' name='sz_max' filepath='drivers/of/property.c' line='394' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_property_read_variable_u8_array' mangled-name='of_property_read_variable_u8_array' filepath='drivers/of/property.c' line='217' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_property_read_variable_u8_array'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/of/property.c' line='217' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='drivers/of/property.c' line='218' column='1'/>
+        <parameter type-id='8bff8096' name='out_values' filepath='drivers/of/property.c' line='218' column='1'/>
+        <parameter type-id='b59d7dce' name='sz_min' filepath='drivers/of/property.c' line='219' column='1'/>
+        <parameter type-id='b59d7dce' name='sz_max' filepath='drivers/of/property.c' line='219' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_pwm_get' mangled-name='of_pwm_get' filepath='drivers/pwm/core.c' line='763' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_pwm_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pwm/core.c' line='763' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/pwm/core.c' line='763' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/pwm/core.c' line='764' column='1'/>
+        <return type-id='f06adae0'/>
+      </function-decl>
+      <function-decl name='of_pwm_xlate_with_flags' mangled-name='of_pwm_xlate_with_flags' filepath='drivers/pwm/core.c' line='125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_pwm_xlate_with_flags'>
+        <parameter type-id='00cf0c80' name='pc' filepath='drivers/pwm/core.c' line='125' column='1'/>
+        <parameter type-id='af02a266' name='args' filepath='drivers/pwm/core.c' line='125' column='1'/>
+        <return type-id='f06adae0'/>
+      </function-decl>
+      <function-decl name='of_regulator_match' mangled-name='of_regulator_match' filepath='drivers/regulator/of_regulator.c' line='387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_regulator_match'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/regulator/of_regulator.c' line='387' column='1'/>
+        <parameter type-id='9a537bbe' name='node' filepath='drivers/regulator/of_regulator.c' line='387' column='1'/>
+        <parameter type-id='7353ff84' name='matches' filepath='drivers/regulator/of_regulator.c' line='388' column='1'/>
+        <parameter type-id='f0981eeb' name='num_matches' filepath='drivers/regulator/of_regulator.c' line='389' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_remove_property' mangled-name='of_remove_property' filepath='drivers/of/base.c' line='1886' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_remove_property'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/base.c' line='1886' column='1'/>
+        <parameter type-id='ddcd89c6' name='prop' filepath='drivers/of/base.c' line='1886' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_reserved_mem_device_init_by_idx' mangled-name='of_reserved_mem_device_init_by_idx' filepath='drivers/of/of_reserved_mem.c' line='341' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_reserved_mem_device_init_by_idx'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/of/of_reserved_mem.c' line='341' column='1'/>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/of_reserved_mem.c' line='342' column='1'/>
+        <parameter type-id='95e97e5e' name='idx' filepath='drivers/of/of_reserved_mem.c' line='342' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_reserved_mem_device_release' mangled-name='of_reserved_mem_device_release' filepath='drivers/of/of_reserved_mem.c' line='415' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_reserved_mem_device_release'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/of/of_reserved_mem.c' line='415' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='of_reserved_mem_lookup' mangled-name='of_reserved_mem_lookup' filepath='drivers/of/of_reserved_mem.c' line='445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_reserved_mem_lookup'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/of/of_reserved_mem.c' line='445' column='1'/>
+        <return type-id='f7f718cb'/>
+      </function-decl>
+      <function-decl name='of_reset_control_array_get' mangled-name='of_reset_control_array_get' filepath='drivers/reset/core.c' line='1161' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_reset_control_array_get'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/reset/core.c' line='1161' column='1'/>
+        <parameter type-id='b50a4934' name='shared' filepath='drivers/reset/core.c' line='1161' column='1'/>
+        <parameter type-id='b50a4934' name='optional' filepath='drivers/reset/core.c' line='1161' column='1'/>
+        <parameter type-id='b50a4934' name='acquired' filepath='drivers/reset/core.c' line='1162' column='1'/>
+        <return type-id='9f9b8114'/>
+      </function-decl>
+      <var-decl name='of_root' type-id='9a537bbe' mangled-name='of_root' visibility='default' filepath='drivers/of/base.c' line='36' column='1' elf-symbol-id='of_root'/>
+      <function-decl name='of_thermal_get_ntrips' mangled-name='of_thermal_get_ntrips' filepath='drivers/thermal/thermal_of.c' line='119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_thermal_get_ntrips'>
+        <parameter type-id='404b1300' name='tz' filepath='drivers/thermal/thermal_of.c' line='119' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='of_thermal_get_trip_points' mangled-name='of_thermal_get_trip_points' filepath='drivers/thermal/thermal_of.c' line='162' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_thermal_get_trip_points'>
+        <parameter type-id='404b1300' name='tz' filepath='drivers/thermal/thermal_of.c' line='162' column='1'/>
+        <return type-id='3837a2c7'/>
+      </function-decl>
+      <function-decl name='of_thermal_is_trip_valid' mangled-name='of_thermal_is_trip_valid' filepath='drivers/thermal/thermal_of.c' line='140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_thermal_is_trip_valid'>
+        <parameter type-id='404b1300' name='tz' filepath='drivers/thermal/thermal_of.c' line='140' column='1'/>
+        <parameter type-id='95e97e5e' name='trip' filepath='drivers/thermal/thermal_of.c' line='140' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='of_translate_address' mangled-name='of_translate_address' filepath='drivers/of/address.c' line='566' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_translate_address'>
+        <parameter type-id='9a537bbe' name='dev' filepath='drivers/of/address.c' line='566' column='1'/>
+        <parameter type-id='90144368' name='in_addr' filepath='drivers/of/address.c' line='566' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='of_usb_get_phy_mode' mangled-name='of_usb_get_phy_mode' filepath='drivers/usb/phy/of.c' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_usb_get_phy_mode'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/usb/phy/of.c' line='28' column='1'/>
+        <return type-id='46b5771e'/>
+      </function-decl>
+      <function-decl name='of_usb_host_tpl_support' mangled-name='of_usb_host_tpl_support' filepath='drivers/usb/common/common.c' line='328' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_usb_host_tpl_support'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/usb/common/common.c' line='328' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='of_usb_update_otg_caps' mangled-name='of_usb_update_otg_caps' filepath='drivers/usb/common/common.c' line='342' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_usb_update_otg_caps'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/usb/common/common.c' line='342' column='1'/>
+        <parameter type-id='451a0588' name='otg_caps' filepath='drivers/usb/common/common.c' line='343' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='on_each_cpu_cond_mask' mangled-name='on_each_cpu_cond_mask' filepath='kernel/smp.c' line='1126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='on_each_cpu_cond_mask'>
+        <parameter type-id='82fddac3' name='cond_func' filepath='kernel/smp.c' line='1126' column='1'/>
+        <parameter type-id='89714567' name='func' filepath='kernel/smp.c' line='1126' column='1'/>
+        <parameter type-id='eaa32e2f' name='info' filepath='kernel/smp.c' line='1127' column='1'/>
+        <parameter type-id='b50a4934' name='wait' filepath='kernel/smp.c' line='1127' column='1'/>
+        <parameter type-id='5f8a1ac4' name='mask' filepath='kernel/smp.c' line='1127' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='oops_in_progress' type-id='95e97e5e' mangled-name='oops_in_progress' visibility='default' filepath='kernel/printk/printk.c' line='81' column='1' elf-symbol-id='oops_in_progress'/>
+      <function-decl name='open_candev' mangled-name='open_candev' filepath='drivers/net/can/dev/dev.c' line='341' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='open_candev'>
+        <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/can/dev/dev.c' line='341' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='orderly_poweroff' mangled-name='orderly_poweroff' filepath='kernel/reboot.c' line='497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='orderly_poweroff'>
+        <parameter type-id='b50a4934' name='force' filepath='kernel/reboot.c' line='497' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='out_of_line_wait_on_bit_lock' mangled-name='out_of_line_wait_on_bit_lock' filepath='kernel/sched/wait_bit.c' line='111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='out_of_line_wait_on_bit_lock'>
+        <parameter type-id='eaa32e2f' name='word' filepath='kernel/sched/wait_bit.c' line='111' column='1'/>
+        <parameter type-id='95e97e5e' name='bit' filepath='kernel/sched/wait_bit.c' line='111' column='1'/>
+        <parameter type-id='50c74428' name='action' filepath='kernel/sched/wait_bit.c' line='112' column='1'/>
+        <parameter type-id='f0981eeb' name='mode' filepath='kernel/sched/wait_bit.c' line='112' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='out_of_line_wait_on_bit_timeout' mangled-name='out_of_line_wait_on_bit_timeout' filepath='kernel/sched/wait_bit.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='out_of_line_wait_on_bit_timeout'>
+        <parameter type-id='eaa32e2f' name='word' filepath='kernel/sched/wait_bit.c' line='69' column='1'/>
+        <parameter type-id='95e97e5e' name='bit' filepath='kernel/sched/wait_bit.c' line='69' column='1'/>
+        <parameter type-id='50c74428' name='action' filepath='kernel/sched/wait_bit.c' line='69' column='1'/>
+        <parameter type-id='f0981eeb' name='mode' filepath='kernel/sched/wait_bit.c' line='70' column='1'/>
+        <parameter type-id='7359adad' name='timeout' filepath='kernel/sched/wait_bit.c' line='70' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='overflowgid' type-id='95e97e5e' mangled-name='overflowgid' visibility='default' filepath='kernel/sys.c' line='144' column='1' elf-symbol-id='overflowgid'/>
+      <var-decl name='overflowuid' type-id='95e97e5e' mangled-name='overflowuid' visibility='default' filepath='kernel/sys.c' line='143' column='1' elf-symbol-id='overflowuid'/>
+      <function-decl name='page_cache_next_miss' mangled-name='page_cache_next_miss' filepath='mm/filemap.c' line='1751' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_cache_next_miss'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/filemap.c' line='1751' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='mm/filemap.c' line='1752' column='1'/>
+        <parameter type-id='7359adad' name='max_scan' filepath='mm/filemap.c' line='1752' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='page_cache_prev_miss' mangled-name='page_cache_prev_miss' filepath='mm/filemap.c' line='1787' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_cache_prev_miss'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/filemap.c' line='1787' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='mm/filemap.c' line='1788' column='1'/>
+        <parameter type-id='7359adad' name='max_scan' filepath='mm/filemap.c' line='1788' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='page_cache_ra_unbounded' mangled-name='page_cache_ra_unbounded' filepath='mm/readahead.c' line='185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_cache_ra_unbounded'>
+        <parameter type-id='a6cdca2a' name='ractl' filepath='mm/readahead.c' line='185' column='1'/>
+        <parameter type-id='7359adad' name='nr_to_read' filepath='mm/readahead.c' line='186' column='1'/>
+        <parameter type-id='7359adad' name='lookahead_size' filepath='mm/readahead.c' line='186' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='page_cache_sync_ra' mangled-name='page_cache_sync_ra' filepath='mm/readahead.c' line='568' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_cache_sync_ra'>
+        <parameter type-id='a6cdca2a' name='ractl' filepath='mm/readahead.c' line='568' column='1'/>
+        <parameter type-id='7359adad' name='req_count' filepath='mm/readahead.c' line='569' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='page_endio' mangled-name='page_endio' filepath='mm/filemap.c' line='1616' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_endio'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/filemap.c' line='1616' column='1'/>
+        <parameter type-id='b50a4934' name='is_write' filepath='mm/filemap.c' line='1616' column='1'/>
+        <parameter type-id='95e97e5e' name='err' filepath='mm/filemap.c' line='1616' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='page_frag_alloc_align' mangled-name='page_frag_alloc_align' filepath='mm/page_alloc.c' line='5907' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_frag_alloc_align'>
+        <parameter type-id='34e4f518' name='nc' filepath='mm/page_alloc.c' line='5907' column='1'/>
+        <parameter type-id='f0981eeb' name='fragsz' filepath='mm/page_alloc.c' line='5908' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/page_alloc.c' line='5908' column='1'/>
+        <parameter type-id='f0981eeb' name='align_mask' filepath='mm/page_alloc.c' line='5909' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='page_frag_free' mangled-name='page_frag_free' filepath='mm/page_alloc.c' line='5983' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_frag_free'>
+        <parameter type-id='eaa32e2f' name='addr' filepath='mm/page_alloc.c' line='5983' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='page_get_link' mangled-name='page_get_link' filepath='fs/namei.c' line='5019' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_get_link'>
+        <parameter type-id='27675065' name='dentry' filepath='fs/namei.c' line='5019' column='1'/>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/namei.c' line='5019' column='1'/>
+        <parameter type-id='26cad514' name='callback' filepath='fs/namei.c' line='5020' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='page_is_ram' mangled-name='page_is_ram' filepath='kernel/resource.c' line='474' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_is_ram'>
+        <parameter type-id='7359adad' name='pfn' filepath='kernel/resource.c' line='474' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='page_mapped' mangled-name='page_mapped' filepath='mm/util.c' line='772' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_mapped'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/util.c' line='772' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='page_mapping' mangled-name='page_mapping' filepath='mm/util.c' line='802' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_mapping'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/util.c' line='802' column='1'/>
+        <return type-id='f57039f0'/>
+      </function-decl>
+      <function-decl name='page_pool_alloc_pages' mangled-name='page_pool_alloc_pages' filepath='net/core/page_pool.c' line='333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_pool_alloc_pages'>
+        <parameter type-id='a832c6b9' name='pool' filepath='net/core/page_pool.c' line='333' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='net/core/page_pool.c' line='333' column='1'/>
+        <return type-id='02f11ed4'/>
+      </function-decl>
+      <function-decl name='page_pool_create' mangled-name='page_pool_create' filepath='net/core/page_pool.c' line='113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_pool_create'>
+        <parameter type-id='910759c1' name='params' filepath='net/core/page_pool.c' line='113' column='1'/>
+        <return type-id='a832c6b9'/>
+      </function-decl>
+      <function-decl name='page_pool_destroy' mangled-name='page_pool_destroy' filepath='net/core/page_pool.c' line='724' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_pool_destroy'>
+        <parameter type-id='a832c6b9' name='pool' filepath='net/core/page_pool.c' line='724' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='page_pool_put_page' mangled-name='page_pool_put_page' filepath='net/core/page_pool.c' line='499' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_pool_put_page'>
+        <parameter type-id='a832c6b9' name='pool' filepath='net/core/page_pool.c' line='499' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='net/core/page_pool.c' line='499' column='1'/>
+        <parameter type-id='f0981eeb' name='dma_sync_size' filepath='net/core/page_pool.c' line='500' column='1'/>
+        <parameter type-id='b50a4934' name='allow_direct' filepath='net/core/page_pool.c' line='500' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='page_pool_release_page' mangled-name='page_pool_release_page' filepath='net/core/page_pool.c' line='372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_pool_release_page'>
+        <parameter type-id='a832c6b9' name='pool' filepath='net/core/page_pool.c' line='372' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='net/core/page_pool.c' line='372' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='page_referenced' mangled-name='page_referenced' filepath='mm/rmap.c' line='886' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_referenced'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/rmap.c' line='886' column='1'/>
+        <parameter type-id='95e97e5e' name='is_locked' filepath='mm/rmap.c' line='887' column='1'/>
+        <parameter type-id='223696fb' name='memcg' filepath='mm/rmap.c' line='888' column='1'/>
+        <parameter type-id='1d2c2b85' name='vm_flags' filepath='mm/rmap.c' line='889' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='page_reporting_register' mangled-name='page_reporting_register' filepath='mm/page_reporting.c' line='320' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_reporting_register'>
+        <parameter type-id='b99d5f36' name='prdev' filepath='mm/page_reporting.c' line='320' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='page_reporting_unregister' mangled-name='page_reporting_unregister' filepath='mm/page_reporting.c' line='360' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_reporting_unregister'>
+        <parameter type-id='b99d5f36' name='prdev' filepath='mm/page_reporting.c' line='360' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='page_symlink' mangled-name='page_symlink' filepath='fs/namei.c' line='5100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_symlink'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/namei.c' line='5100' column='1'/>
+        <parameter type-id='80f4b756' name='symname' filepath='fs/namei.c' line='5100' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='fs/namei.c' line='5100' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='page_to_lruvec' mangled-name='page_to_lruvec' filepath='mm/memcontrol.c' line='1284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_to_lruvec'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/memcontrol.c' line='1284' column='1'/>
+        <parameter type-id='8845292c' name='pgdat' filepath='mm/memcontrol.c' line='1284' column='1'/>
+        <return type-id='71480a3e'/>
+      </function-decl>
+      <function-decl name='page_zero_new_buffers' mangled-name='page_zero_new_buffers' filepath='fs/buffer.c' line='1882' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_zero_new_buffers'>
+        <parameter type-id='02f11ed4' name='page' filepath='fs/buffer.c' line='1882' column='1'/>
+        <parameter type-id='f0981eeb' name='from' filepath='fs/buffer.c' line='1882' column='1'/>
+        <parameter type-id='f0981eeb' name='to' filepath='fs/buffer.c' line='1882' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pagecache_get_page' mangled-name='pagecache_get_page' filepath='mm/filemap.c' line='1888' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pagecache_get_page'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/filemap.c' line='1888' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='mm/filemap.c' line='1888' column='1'/>
+        <parameter type-id='95e97e5e' name='fgp_flags' filepath='mm/filemap.c' line='1889' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/filemap.c' line='1889' column='1'/>
+        <return type-id='02f11ed4'/>
+      </function-decl>
+      <function-decl name='pagecache_write_begin' mangled-name='pagecache_write_begin' filepath='mm/filemap.c' line='3650' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pagecache_write_begin'>
+        <parameter type-id='77e79a4b' name='file' filepath='mm/filemap.c' line='3650' column='1'/>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/filemap.c' line='3650' column='1'/>
+        <parameter type-id='69bf7bee' name='pos' filepath='mm/filemap.c' line='3651' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='mm/filemap.c' line='3651' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='mm/filemap.c' line='3651' column='1'/>
+        <parameter type-id='9f93c9da' name='pagep' filepath='mm/filemap.c' line='3652' column='1'/>
+        <parameter type-id='63e171df' name='fsdata' filepath='mm/filemap.c' line='3652' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pagecache_write_end' mangled-name='pagecache_write_end' filepath='mm/filemap.c' line='3661' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pagecache_write_end'>
+        <parameter type-id='77e79a4b' name='file' filepath='mm/filemap.c' line='3661' column='1'/>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/filemap.c' line='3661' column='1'/>
+        <parameter type-id='69bf7bee' name='pos' filepath='mm/filemap.c' line='3662' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='mm/filemap.c' line='3662' column='1'/>
+        <parameter type-id='f0981eeb' name='copied' filepath='mm/filemap.c' line='3662' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/filemap.c' line='3663' column='1'/>
+        <parameter type-id='eaa32e2f' name='fsdata' filepath='mm/filemap.c' line='3663' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pagevec_lookup_range' mangled-name='pagevec_lookup_range' filepath='mm/swap.c' line='1147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pagevec_lookup_range'>
+        <parameter type-id='f7d3421a' name='pvec' filepath='mm/swap.c' line='1147' column='1'/>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/swap.c' line='1148' column='1'/>
+        <parameter type-id='1d2c2b85' name='start' filepath='mm/swap.c' line='1148' column='1'/>
+        <parameter type-id='7359adad' name='end' filepath='mm/swap.c' line='1148' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='pagevec_lookup_range_tag' mangled-name='pagevec_lookup_range_tag' filepath='mm/swap.c' line='1156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pagevec_lookup_range_tag'>
+        <parameter type-id='f7d3421a' name='pvec' filepath='mm/swap.c' line='1156' column='1'/>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/swap.c' line='1157' column='1'/>
+        <parameter type-id='1d2c2b85' name='index' filepath='mm/swap.c' line='1157' column='1'/>
+        <parameter type-id='7359adad' name='end' filepath='mm/swap.c' line='1157' column='1'/>
+        <parameter type-id='933bf462' name='tag' filepath='mm/swap.c' line='1158' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='panic' mangled-name='panic' filepath='kernel/panic.c' line='245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='panic'>
+        <parameter type-id='80f4b756' name='fmt' filepath='kernel/panic.c' line='245' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='panic_notifier_list' type-id='dbd58f6e' mangled-name='panic_notifier_list' visibility='default' filepath='kernel/panic.c' line='74' column='1' elf-symbol-id='panic_notifier_list'/>
+      <var-decl name='panic_timeout' type-id='95e97e5e' mangled-name='panic_timeout' visibility='default' filepath='kernel/panic.c' line='63' column='1' elf-symbol-id='panic_timeout'/>
+      <var-decl name='param_array_ops' type-id='95d0d4e8' mangled-name='param_array_ops' visibility='default' filepath='kernel/params.c' line='503' column='1' elf-symbol-id='param_array_ops'/>
+      <function-decl name='param_get_bool' mangled-name='param_get_bool' filepath='kernel/params.c' line='317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='param_get_bool'>
+        <parameter type-id='26a90f95' name='buffer' filepath='kernel/params.c' line='317' column='1'/>
+        <parameter type-id='edcbd723' name='kp' filepath='kernel/params.c' line='317' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='param_get_charp' mangled-name='param_get_charp' filepath='kernel/params.c' line='287' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='param_get_charp'>
+        <parameter type-id='26a90f95' name='buffer' filepath='kernel/params.c' line='287' column='1'/>
+        <parameter type-id='edcbd723' name='kp' filepath='kernel/params.c' line='287' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='param_get_hexint' mangled-name='param_get_hexint' filepath='kernel/params.c' line='244' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='param_get_hexint'>
+        <parameter type-id='26a90f95' name='buffer' filepath='kernel/params.c' line='244' column='1'/>
+        <parameter type-id='edcbd723' name='kp' filepath='kernel/params.c' line='244' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='param_get_int' mangled-name='param_get_int' filepath='kernel/params.c' line='239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='param_get_int'>
+        <parameter type-id='26a90f95' name='buffer' filepath='kernel/params.c' line='239' column='1'/>
+        <parameter type-id='edcbd723' name='kp' filepath='kernel/params.c' line='239' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='param_get_short' mangled-name='param_get_short' filepath='kernel/params.c' line='237' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='param_get_short'>
+        <parameter type-id='26a90f95' name='buffer' filepath='kernel/params.c' line='237' column='1'/>
+        <parameter type-id='edcbd723' name='kp' filepath='kernel/params.c' line='237' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='param_get_string' mangled-name='param_get_string' filepath='kernel/params.c' line='524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='param_get_string'>
+        <parameter type-id='26a90f95' name='buffer' filepath='kernel/params.c' line='524' column='1'/>
+        <parameter type-id='edcbd723' name='kp' filepath='kernel/params.c' line='524' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='param_get_uint' mangled-name='param_get_uint' filepath='kernel/params.c' line='240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='param_get_uint'>
+        <parameter type-id='26a90f95' name='buffer' filepath='kernel/params.c' line='240' column='1'/>
+        <parameter type-id='edcbd723' name='kp' filepath='kernel/params.c' line='240' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='param_get_ullong' mangled-name='param_get_ullong' filepath='kernel/params.c' line='243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='param_get_ullong'>
+        <parameter type-id='26a90f95' name='buffer' filepath='kernel/params.c' line='243' column='1'/>
+        <parameter type-id='edcbd723' name='kp' filepath='kernel/params.c' line='243' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='param_get_ulong' mangled-name='param_get_ulong' filepath='kernel/params.c' line='242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='param_get_ulong'>
+        <parameter type-id='26a90f95' name='buffer' filepath='kernel/params.c' line='242' column='1'/>
+        <parameter type-id='edcbd723' name='kp' filepath='kernel/params.c' line='242' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='param_ops_bint' type-id='95d0d4e8' mangled-name='param_ops_bint' visibility='default' filepath='kernel/params.c' line='405' column='1' elf-symbol-id='param_ops_bint'/>
+      <var-decl name='param_ops_bool' type-id='95d0d4e8' mangled-name='param_ops_bool' visibility='default' filepath='kernel/params.c' line='324' column='1' elf-symbol-id='param_ops_bool'/>
+      <var-decl name='param_ops_byte' type-id='95d0d4e8' mangled-name='param_ops_byte' visibility='default' filepath='kernel/params.c' line='236' column='1' elf-symbol-id='param_ops_byte'/>
+      <var-decl name='param_ops_charp' type-id='95d0d4e8' mangled-name='param_ops_charp' visibility='default' filepath='kernel/params.c' line='299' column='1' elf-symbol-id='param_ops_charp'/>
+      <var-decl name='param_ops_hexint' type-id='95d0d4e8' mangled-name='param_ops_hexint' visibility='default' filepath='kernel/params.c' line='244' column='1' elf-symbol-id='param_ops_hexint'/>
+      <var-decl name='param_ops_int' type-id='95d0d4e8' mangled-name='param_ops_int' visibility='default' filepath='kernel/params.c' line='239' column='1' elf-symbol-id='param_ops_int'/>
+      <var-decl name='param_ops_long' type-id='95d0d4e8' mangled-name='param_ops_long' visibility='default' filepath='kernel/params.c' line='241' column='1' elf-symbol-id='param_ops_long'/>
+      <var-decl name='param_ops_short' type-id='95d0d4e8' mangled-name='param_ops_short' visibility='default' filepath='kernel/params.c' line='237' column='1' elf-symbol-id='param_ops_short'/>
+      <var-decl name='param_ops_string' type-id='95d0d4e8' mangled-name='param_ops_string' visibility='default' filepath='kernel/params.c' line='531' column='1' elf-symbol-id='param_ops_string'/>
+      <var-decl name='param_ops_uint' type-id='95d0d4e8' mangled-name='param_ops_uint' visibility='default' filepath='kernel/params.c' line='240' column='1' elf-symbol-id='param_ops_uint'/>
+      <var-decl name='param_ops_ullong' type-id='95d0d4e8' mangled-name='param_ops_ullong' visibility='default' filepath='kernel/params.c' line='243' column='1' elf-symbol-id='param_ops_ullong'/>
+      <var-decl name='param_ops_ulong' type-id='95d0d4e8' mangled-name='param_ops_ulong' visibility='default' filepath='kernel/params.c' line='242' column='1' elf-symbol-id='param_ops_ulong'/>
+      <var-decl name='param_ops_ushort' type-id='95d0d4e8' mangled-name='param_ops_ushort' visibility='default' filepath='kernel/params.c' line='238' column='1' elf-symbol-id='param_ops_ushort'/>
+      <function-decl name='param_set_bool' mangled-name='param_set_bool' filepath='kernel/params.c' line='307' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='param_set_bool'>
+        <parameter type-id='80f4b756' name='val' filepath='kernel/params.c' line='307' column='1'/>
+        <parameter type-id='edcbd723' name='kp' filepath='kernel/params.c' line='307' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='param_set_charp' mangled-name='param_set_charp' filepath='kernel/params.c' line='264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='param_set_charp'>
+        <parameter type-id='80f4b756' name='val' filepath='kernel/params.c' line='264' column='1'/>
+        <parameter type-id='edcbd723' name='kp' filepath='kernel/params.c' line='264' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='param_set_copystring' mangled-name='param_set_copystring' filepath='kernel/params.c' line='510' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='param_set_copystring'>
+        <parameter type-id='80f4b756' name='val' filepath='kernel/params.c' line='510' column='1'/>
+        <parameter type-id='edcbd723' name='kp' filepath='kernel/params.c' line='510' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='param_set_hexint' mangled-name='param_set_hexint' filepath='kernel/params.c' line='244' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='param_set_hexint'>
+        <parameter type-id='80f4b756' name='val' filepath='kernel/params.c' line='244' column='1'/>
+        <parameter type-id='edcbd723' name='kp' filepath='kernel/params.c' line='244' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='param_set_int' mangled-name='param_set_int' filepath='kernel/params.c' line='239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='param_set_int'>
+        <parameter type-id='80f4b756' name='val' filepath='kernel/params.c' line='239' column='1'/>
+        <parameter type-id='edcbd723' name='kp' filepath='kernel/params.c' line='239' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='param_set_uint' mangled-name='param_set_uint' filepath='kernel/params.c' line='240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='param_set_uint'>
+        <parameter type-id='80f4b756' name='val' filepath='kernel/params.c' line='240' column='1'/>
+        <parameter type-id='edcbd723' name='kp' filepath='kernel/params.c' line='240' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='param_set_uint_minmax' mangled-name='param_set_uint_minmax' filepath='kernel/params.c' line='246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='param_set_uint_minmax'>
+        <parameter type-id='80f4b756' name='val' filepath='kernel/params.c' line='246' column='1'/>
+        <parameter type-id='edcbd723' name='kp' filepath='kernel/params.c' line='246' column='1'/>
+        <parameter type-id='f0981eeb' name='min' filepath='kernel/params.c' line='247' column='1'/>
+        <parameter type-id='f0981eeb' name='max' filepath='kernel/params.c' line='247' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='param_set_ulong' mangled-name='param_set_ulong' filepath='kernel/params.c' line='242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='param_set_ulong'>
+        <parameter type-id='80f4b756' name='val' filepath='kernel/params.c' line='242' column='1'/>
+        <parameter type-id='edcbd723' name='kp' filepath='kernel/params.c' line='242' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='passthru_features_check' mangled-name='passthru_features_check' filepath='net/core/dev.c' line='3506' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='passthru_features_check'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/dev.c' line='3506' column='1'/>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='3507' column='1'/>
+        <parameter type-id='f9f4b16f' name='features' filepath='net/core/dev.c' line='3508' column='1'/>
+        <return type-id='f9f4b16f'/>
+      </function-decl>
+      <function-decl name='path_put' mangled-name='path_put' filepath='fs/namei.c' line='555' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='path_put'>
+        <parameter type-id='a77efac3' name='path' filepath='fs/namei.c' line='555' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_add_resource' mangled-name='pci_add_resource' filepath='drivers/pci/bus.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_add_resource'>
+        <parameter type-id='e84b031a' name='resources' filepath='drivers/pci/bus.c' line='35' column='1'/>
+        <parameter type-id='c9d64c0d' name='res' filepath='drivers/pci/bus.c' line='35' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_add_resource_offset' mangled-name='pci_add_resource_offset' filepath='drivers/pci/bus.c' line='19' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_add_resource_offset'>
+        <parameter type-id='e84b031a' name='resources' filepath='drivers/pci/bus.c' line='19' column='1'/>
+        <parameter type-id='c9d64c0d' name='res' filepath='drivers/pci/bus.c' line='19' column='1'/>
+        <parameter type-id='acc63fdf' name='offset' filepath='drivers/pci/bus.c' line='20' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_aer_clear_nonfatal_status' mangled-name='pci_aer_clear_nonfatal_status' filepath='drivers/pci/pcie/aer.c' line='254' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_aer_clear_nonfatal_status'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pcie/aer.c' line='254' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_alloc_irq_vectors_affinity' mangled-name='pci_alloc_irq_vectors_affinity' filepath='drivers/pci/msi.c' line='1134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_alloc_irq_vectors_affinity'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/msi.c' line='1134' column='1'/>
+        <parameter type-id='f0981eeb' name='min_vecs' filepath='drivers/pci/msi.c' line='1134' column='1'/>
+        <parameter type-id='f0981eeb' name='max_vecs' filepath='drivers/pci/msi.c' line='1135' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='drivers/pci/msi.c' line='1135' column='1'/>
+        <parameter type-id='8a876638' name='affd' filepath='drivers/pci/msi.c' line='1136' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_assign_resource' mangled-name='pci_assign_resource' filepath='drivers/pci/setup-res.c' line='321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_assign_resource'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/setup-res.c' line='321' column='1'/>
+        <parameter type-id='95e97e5e' name='resno' filepath='drivers/pci/setup-res.c' line='321' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_assign_unassigned_bus_resources' mangled-name='pci_assign_unassigned_bus_resources' filepath='drivers/pci/setup-bus.c' line='2277' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_assign_unassigned_bus_resources'>
+        <parameter type-id='d1feb554' name='bus' filepath='drivers/pci/setup-bus.c' line='2277' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_ats_supported' mangled-name='pci_ats_supported' filepath='drivers/pci/ats.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_ats_supported'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/ats.c' line='40' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='pci_bus_add_devices' mangled-name='pci_bus_add_devices' filepath='drivers/pci/bus.c' line='359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_bus_add_devices'>
+        <parameter type-id='b425394d' name='bus' filepath='drivers/pci/bus.c' line='359' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_bus_assign_resources' mangled-name='pci_bus_assign_resources' filepath='drivers/pci/setup-bus.c' line='1415' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_bus_assign_resources'>
+        <parameter type-id='b425394d' name='bus' filepath='drivers/pci/setup-bus.c' line='1415' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_bus_resource_n' mangled-name='pci_bus_resource_n' filepath='drivers/pci/bus.c' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_bus_resource_n'>
+        <parameter type-id='b425394d' name='bus' filepath='drivers/pci/bus.c' line='63' column='1'/>
+        <parameter type-id='95e97e5e' name='n' filepath='drivers/pci/bus.c' line='63' column='1'/>
+        <return type-id='c9d64c0d'/>
+      </function-decl>
+      <function-decl name='pci_bus_size_bridges' mangled-name='pci_bus_size_bridges' filepath='drivers/pci/setup-bus.c' line='1332' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_bus_size_bridges'>
+        <parameter type-id='d1feb554' name='bus' filepath='drivers/pci/setup-bus.c' line='1332' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='pci_bus_type' type-id='b31bfc8a' mangled-name='pci_bus_type' visibility='default' filepath='drivers/pci/pci-driver.c' line='1613' column='1' elf-symbol-id='pci_bus_type'/>
+      <function-decl name='pci_check_and_mask_intx' mangled-name='pci_check_and_mask_intx' filepath='drivers/pci/pci.c' line='4619' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_check_and_mask_intx'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='4619' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='pci_check_and_unmask_intx' mangled-name='pci_check_and_unmask_intx' filepath='drivers/pci/pci.c' line='4633' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_check_and_unmask_intx'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='4633' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='pci_choose_state' mangled-name='pci_choose_state' filepath='drivers/pci/pci.c' line='1394' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_choose_state'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='1394' column='1'/>
+        <parameter type-id='08496218' name='state' filepath='drivers/pci/pci.c' line='1394' column='1'/>
+        <return type-id='49c32219'/>
+      </function-decl>
+      <function-decl name='pci_clear_master' mangled-name='pci_clear_master' filepath='drivers/pci/pci.c' line='4383' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_clear_master'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='4383' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_clear_mwi' mangled-name='pci_clear_mwi' filepath='drivers/pci/pci.c' line='4504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_clear_mwi'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='4504' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_common_swizzle' mangled-name='pci_common_swizzle' filepath='drivers/pci/pci.c' line='3839' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_common_swizzle'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='3839' column='1'/>
+        <parameter type-id='8bff8096' name='pinp' filepath='drivers/pci/pci.c' line='3839' column='1'/>
+        <return type-id='f9b06939'/>
+      </function-decl>
+      <function-decl name='pci_dev_get' mangled-name='pci_dev_get' filepath='drivers/pci/pci-driver.c' line='1491' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_dev_get'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci-driver.c' line='1491' column='1'/>
+        <return type-id='85196e3f'/>
+      </function-decl>
+      <function-decl name='pci_dev_present' mangled-name='pci_dev_present' filepath='drivers/pci/search.c' line='377' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_dev_present'>
+        <parameter type-id='92fc8aa5' name='ids' filepath='drivers/pci/search.c' line='377' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_dev_put' mangled-name='pci_dev_put' filepath='drivers/pci/pci-driver.c' line='1506' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_dev_put'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci-driver.c' line='1506' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_device_group' mangled-name='pci_device_group' filepath='drivers/iommu/iommu.c' line='1468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_device_group'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1468' column='1'/>
+        <return type-id='0b19fc54'/>
+      </function-decl>
+      <function-decl name='pci_device_is_present' mangled-name='pci_device_is_present' filepath='drivers/pci/pci.c' line='6370' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_device_is_present'>
+        <parameter type-id='85196e3f' name='pdev' filepath='drivers/pci/pci.c' line='6370' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='pci_disable_ats' mangled-name='pci_disable_ats' filepath='drivers/pci/ats.c' line='94' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_disable_ats'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/ats.c' line='94' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_disable_device' mangled-name='pci_disable_device' filepath='drivers/pci/pci.c' line='2168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_disable_device'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='2168' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_disable_link_state' mangled-name='pci_disable_link_state' filepath='drivers/pci/pcie/aspm.c' line='1118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_disable_link_state'>
+        <parameter type-id='85196e3f' name='pdev' filepath='drivers/pci/pcie/aspm.c' line='1118' column='1'/>
+        <parameter type-id='95e97e5e' name='state' filepath='drivers/pci/pcie/aspm.c' line='1118' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_disable_msi' mangled-name='pci_disable_msi' filepath='drivers/pci/msi.c' line='887' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_disable_msi'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/msi.c' line='887' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_disable_msix' mangled-name='pci_disable_msix' filepath='drivers/pci/msi.c' line='974' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_disable_msix'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/msi.c' line='974' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_disable_pcie_error_reporting' mangled-name='pci_disable_pcie_error_reporting' filepath='drivers/pci/pcie/aer.c' line='242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_disable_pcie_error_reporting'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pcie/aer.c' line='242' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_disable_sriov' mangled-name='pci_disable_sriov' filepath='drivers/pci/iov.c' line='1040' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_disable_sriov'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/iov.c' line='1040' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_enable_atomic_ops_to_root' mangled-name='pci_enable_atomic_ops_to_root' filepath='drivers/pci/pci.c' line='3722' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_enable_atomic_ops_to_root'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='3722' column='1'/>
+        <parameter type-id='19c2251e' name='cap_mask' filepath='drivers/pci/pci.c' line='3722' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_enable_ats' mangled-name='pci_enable_ats' filepath='drivers/pci/ats.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_enable_ats'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/ats.c' line='56' column='1'/>
+        <parameter type-id='95e97e5e' name='ps' filepath='drivers/pci/ats.c' line='56' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_enable_device' mangled-name='pci_enable_device' filepath='drivers/pci/pci.c' line='1975' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_enable_device'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='1975' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_enable_device_mem' mangled-name='pci_enable_device_mem' filepath='drivers/pci/pci.c' line='1958' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_enable_device_mem'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='1958' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_enable_msi' mangled-name='pci_enable_msi' filepath='drivers/pci/msi.c' line='1052' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_enable_msi'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/msi.c' line='1052' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_enable_msix_range' mangled-name='pci_enable_msix_range' filepath='drivers/pci/msi.c' line='1109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_enable_msix_range'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/msi.c' line='1109' column='1'/>
+        <parameter type-id='682fb763' name='entries' filepath='drivers/pci/msi.c' line='1109' column='1'/>
+        <parameter type-id='95e97e5e' name='minvec' filepath='drivers/pci/msi.c' line='1110' column='1'/>
+        <parameter type-id='95e97e5e' name='maxvec' filepath='drivers/pci/msi.c' line='1110' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_enable_pcie_error_reporting' mangled-name='pci_enable_pcie_error_reporting' filepath='drivers/pci/pcie/aer.c' line='230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_enable_pcie_error_reporting'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pcie/aer.c' line='230' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_enable_sriov' mangled-name='pci_enable_sriov' filepath='drivers/pci/iov.c' line='1025' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_enable_sriov'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/iov.c' line='1025' column='1'/>
+        <parameter type-id='95e97e5e' name='nr_virtfn' filepath='drivers/pci/iov.c' line='1025' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_enable_wake' mangled-name='pci_enable_wake' filepath='drivers/pci/pci.c' line='2532' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_enable_wake'>
+        <parameter type-id='85196e3f' name='pci_dev' filepath='drivers/pci/pci.c' line='2532' column='1'/>
+        <parameter type-id='49c32219' name='state' filepath='drivers/pci/pci.c' line='2532' column='1'/>
+        <parameter type-id='b50a4934' name='enable' filepath='drivers/pci/pci.c' line='2532' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_epc_map_addr' mangled-name='pci_epc_map_addr' filepath='drivers/pci/endpoint/pci-epc-core.c' line='461' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_epc_map_addr'>
+        <parameter type-id='108dbc98' name='epc' filepath='drivers/pci/endpoint/pci-epc-core.c' line='461' column='1'/>
+        <parameter type-id='f9b06939' name='func_no' filepath='drivers/pci/endpoint/pci-epc-core.c' line='461' column='1'/>
+        <parameter type-id='f9b06939' name='vfunc_no' filepath='drivers/pci/endpoint/pci-epc-core.c' line='461' column='1'/>
+        <parameter type-id='2522883d' name='phys_addr' filepath='drivers/pci/endpoint/pci-epc-core.c' line='462' column='1'/>
+        <parameter type-id='91ce1af9' name='pci_addr' filepath='drivers/pci/endpoint/pci-epc-core.c' line='462' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/pci/endpoint/pci-epc-core.c' line='462' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_epc_mem_alloc_addr' mangled-name='pci_epc_mem_alloc_addr' filepath='drivers/pci/endpoint/pci-epc-mem.c' line='168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_epc_mem_alloc_addr'>
+        <parameter type-id='108dbc98' name='epc' filepath='drivers/pci/endpoint/pci-epc-mem.c' line='168' column='1'/>
+        <parameter type-id='ff752d64' name='phys_addr' filepath='drivers/pci/endpoint/pci-epc-mem.c' line='169' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/pci/endpoint/pci-epc-mem.c' line='169' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='pci_epc_mem_free_addr' mangled-name='pci_epc_mem_free_addr' filepath='drivers/pci/endpoint/pci-epc-mem.c' line='234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_epc_mem_free_addr'>
+        <parameter type-id='108dbc98' name='epc' filepath='drivers/pci/endpoint/pci-epc-mem.c' line='234' column='1'/>
+        <parameter type-id='2522883d' name='phys_addr' filepath='drivers/pci/endpoint/pci-epc-mem.c' line='234' column='1'/>
+        <parameter type-id='eaa32e2f' name='virt_addr' filepath='drivers/pci/endpoint/pci-epc-mem.c' line='235' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/pci/endpoint/pci-epc-mem.c' line='235' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_epc_set_bar' mangled-name='pci_epc_set_bar' filepath='drivers/pci/endpoint/pci-epc-core.c' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_epc_set_bar'>
+        <parameter type-id='108dbc98' name='epc' filepath='drivers/pci/endpoint/pci-epc-core.c' line='522' column='1'/>
+        <parameter type-id='f9b06939' name='func_no' filepath='drivers/pci/endpoint/pci-epc-core.c' line='522' column='1'/>
+        <parameter type-id='f9b06939' name='vfunc_no' filepath='drivers/pci/endpoint/pci-epc-core.c' line='522' column='1'/>
+        <parameter type-id='0f1b379b' name='epf_bar' filepath='drivers/pci/endpoint/pci-epc-core.c' line='523' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_epc_unmap_addr' mangled-name='pci_epc_unmap_addr' filepath='drivers/pci/endpoint/pci-epc-core.c' line='432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_epc_unmap_addr'>
+        <parameter type-id='108dbc98' name='epc' filepath='drivers/pci/endpoint/pci-epc-core.c' line='432' column='1'/>
+        <parameter type-id='f9b06939' name='func_no' filepath='drivers/pci/endpoint/pci-epc-core.c' line='432' column='1'/>
+        <parameter type-id='f9b06939' name='vfunc_no' filepath='drivers/pci/endpoint/pci-epc-core.c' line='432' column='1'/>
+        <parameter type-id='2522883d' name='phys_addr' filepath='drivers/pci/endpoint/pci-epc-core.c' line='433' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_find_bus' mangled-name='pci_find_bus' filepath='drivers/pci/search.c' line='141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_find_bus'>
+        <parameter type-id='95e97e5e' name='domain' filepath='drivers/pci/search.c' line='141' column='1'/>
+        <parameter type-id='95e97e5e' name='busnr' filepath='drivers/pci/search.c' line='141' column='1'/>
+        <return type-id='d1feb554'/>
+      </function-decl>
+      <function-decl name='pci_find_capability' mangled-name='pci_find_capability' filepath='drivers/pci/pci.c' line='487' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_find_capability'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='487' column='1'/>
+        <parameter type-id='95e97e5e' name='cap' filepath='drivers/pci/pci.c' line='487' column='1'/>
+        <return type-id='f9b06939'/>
+      </function-decl>
+      <function-decl name='pci_find_ext_capability' mangled-name='pci_find_ext_capability' filepath='drivers/pci/pci.c' line='592' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_find_ext_capability'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='592' column='1'/>
+        <parameter type-id='95e97e5e' name='cap' filepath='drivers/pci/pci.c' line='592' column='1'/>
+        <return type-id='1dc6a898'/>
+      </function-decl>
+      <function-decl name='pci_find_next_bus' mangled-name='pci_find_next_bus' filepath='drivers/pci/search.c' line='166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_find_next_bus'>
+        <parameter type-id='b425394d' name='from' filepath='drivers/pci/search.c' line='166' column='1'/>
+        <return type-id='d1feb554'/>
+      </function-decl>
+      <function-decl name='pci_find_next_capability' mangled-name='pci_find_next_capability' filepath='drivers/pci/pci.c' line='441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_find_next_capability'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='441' column='1'/>
+        <parameter type-id='f9b06939' name='pos' filepath='drivers/pci/pci.c' line='441' column='1'/>
+        <parameter type-id='95e97e5e' name='cap' filepath='drivers/pci/pci.c' line='441' column='1'/>
+        <return type-id='f9b06939'/>
+      </function-decl>
+      <function-decl name='pci_free_irq' mangled-name='pci_free_irq' filepath='drivers/pci/irq.c' line='72' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_free_irq'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/irq.c' line='72' column='1'/>
+        <parameter type-id='f0981eeb' name='nr' filepath='drivers/pci/irq.c' line='72' column='1'/>
+        <parameter type-id='eaa32e2f' name='dev_id' filepath='drivers/pci/irq.c' line='72' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_free_irq_vectors' mangled-name='pci_free_irq_vectors' filepath='drivers/pci/msi.c' line='1187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_free_irq_vectors'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/msi.c' line='1187' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_free_resource_list' mangled-name='pci_free_resource_list' filepath='drivers/pci/bus.c' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_free_resource_list'>
+        <parameter type-id='e84b031a' name='resources' filepath='drivers/pci/bus.c' line='41' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_generic_config_read' mangled-name='pci_generic_config_read' filepath='drivers/pci/access.c' line='77' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_generic_config_read'>
+        <parameter type-id='d1feb554' name='bus' filepath='drivers/pci/access.c' line='77' column='1'/>
+        <parameter type-id='f0981eeb' name='devfn' filepath='drivers/pci/access.c' line='77' column='1'/>
+        <parameter type-id='95e97e5e' name='where' filepath='drivers/pci/access.c' line='78' column='1'/>
+        <parameter type-id='95e97e5e' name='size' filepath='drivers/pci/access.c' line='78' column='1'/>
+        <parameter type-id='f9409001' name='val' filepath='drivers/pci/access.c' line='78' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_generic_config_read32' mangled-name='pci_generic_config_read32' filepath='drivers/pci/access.c' line='119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_generic_config_read32'>
+        <parameter type-id='d1feb554' name='bus' filepath='drivers/pci/access.c' line='119' column='1'/>
+        <parameter type-id='f0981eeb' name='devfn' filepath='drivers/pci/access.c' line='119' column='1'/>
+        <parameter type-id='95e97e5e' name='where' filepath='drivers/pci/access.c' line='120' column='1'/>
+        <parameter type-id='95e97e5e' name='size' filepath='drivers/pci/access.c' line='120' column='1'/>
+        <parameter type-id='f9409001' name='val' filepath='drivers/pci/access.c' line='120' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_generic_config_write' mangled-name='pci_generic_config_write' filepath='drivers/pci/access.c' line='99' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_generic_config_write'>
+        <parameter type-id='d1feb554' name='bus' filepath='drivers/pci/access.c' line='99' column='1'/>
+        <parameter type-id='f0981eeb' name='devfn' filepath='drivers/pci/access.c' line='99' column='1'/>
+        <parameter type-id='95e97e5e' name='where' filepath='drivers/pci/access.c' line='100' column='1'/>
+        <parameter type-id='95e97e5e' name='size' filepath='drivers/pci/access.c' line='100' column='1'/>
+        <parameter type-id='19c2251e' name='val' filepath='drivers/pci/access.c' line='100' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_generic_config_write32' mangled-name='pci_generic_config_write32' filepath='drivers/pci/access.c' line='139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_generic_config_write32'>
+        <parameter type-id='d1feb554' name='bus' filepath='drivers/pci/access.c' line='139' column='1'/>
+        <parameter type-id='f0981eeb' name='devfn' filepath='drivers/pci/access.c' line='139' column='1'/>
+        <parameter type-id='95e97e5e' name='where' filepath='drivers/pci/access.c' line='140' column='1'/>
+        <parameter type-id='95e97e5e' name='size' filepath='drivers/pci/access.c' line='140' column='1'/>
+        <parameter type-id='19c2251e' name='val' filepath='drivers/pci/access.c' line='140' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_get_device' mangled-name='pci_get_device' filepath='drivers/pci/search.c' line='330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_get_device'>
+        <parameter type-id='f0981eeb' name='vendor' filepath='drivers/pci/search.c' line='330' column='1'/>
+        <parameter type-id='f0981eeb' name='device' filepath='drivers/pci/search.c' line='330' column='1'/>
+        <parameter type-id='85196e3f' name='from' filepath='drivers/pci/search.c' line='331' column='1'/>
+        <return type-id='85196e3f'/>
+      </function-decl>
+      <function-decl name='pci_get_domain_bus_and_slot' mangled-name='pci_get_domain_bus_and_slot' filepath='drivers/pci/search.c' line='228' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_get_domain_bus_and_slot'>
+        <parameter type-id='95e97e5e' name='domain' filepath='drivers/pci/search.c' line='228' column='1'/>
+        <parameter type-id='f0981eeb' name='bus' filepath='drivers/pci/search.c' line='228' column='1'/>
+        <parameter type-id='f0981eeb' name='devfn' filepath='drivers/pci/search.c' line='229' column='1'/>
+        <return type-id='85196e3f'/>
+      </function-decl>
+      <function-decl name='pci_get_slot' mangled-name='pci_get_slot' filepath='drivers/pci/search.c' line='194' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_get_slot'>
+        <parameter type-id='d1feb554' name='bus' filepath='drivers/pci/search.c' line='194' column='1'/>
+        <parameter type-id='f0981eeb' name='devfn' filepath='drivers/pci/search.c' line='194' column='1'/>
+        <return type-id='85196e3f'/>
+      </function-decl>
+      <function-decl name='pci_host_probe' mangled-name='pci_host_probe' filepath='drivers/pci/probe.c' line='3022' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_host_probe'>
+        <parameter type-id='cb0dbc3c' name='bridge' filepath='drivers/pci/probe.c' line='3022' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_intx' mangled-name='pci_intx' filepath='drivers/pci/pci.c' line='4542' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_intx'>
+        <parameter type-id='85196e3f' name='pdev' filepath='drivers/pci/pci.c' line='4542' column='1'/>
+        <parameter type-id='95e97e5e' name='enable' filepath='drivers/pci/pci.c' line='4542' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_iomap' mangled-name='pci_iomap' filepath='lib/pci_iomap.c' line='111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_iomap'>
+        <parameter type-id='85196e3f' name='dev' filepath='lib/pci_iomap.c' line='111' column='1'/>
+        <parameter type-id='95e97e5e' name='bar' filepath='lib/pci_iomap.c' line='111' column='1'/>
+        <parameter type-id='7359adad' name='maxlen' filepath='lib/pci_iomap.c' line='111' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='pci_iomap_range' mangled-name='pci_iomap_range' filepath='lib/pci_iomap.c' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_iomap_range'>
+        <parameter type-id='85196e3f' name='dev' filepath='lib/pci_iomap.c' line='28' column='1'/>
+        <parameter type-id='95e97e5e' name='bar' filepath='lib/pci_iomap.c' line='29' column='1'/>
+        <parameter type-id='7359adad' name='offset' filepath='lib/pci_iomap.c' line='30' column='1'/>
+        <parameter type-id='7359adad' name='maxlen' filepath='lib/pci_iomap.c' line='31' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='pci_ioremap_bar' mangled-name='pci_ioremap_bar' filepath='drivers/pci/pci.c' line='233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_ioremap_bar'>
+        <parameter type-id='85196e3f' name='pdev' filepath='drivers/pci/pci.c' line='233' column='1'/>
+        <parameter type-id='95e97e5e' name='bar' filepath='drivers/pci/pci.c' line='233' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='pci_ioremap_wc_bar' mangled-name='pci_ioremap_wc_bar' filepath='drivers/pci/pci.c' line='239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_ioremap_wc_bar'>
+        <parameter type-id='85196e3f' name='pdev' filepath='drivers/pci/pci.c' line='239' column='1'/>
+        <parameter type-id='95e97e5e' name='bar' filepath='drivers/pci/pci.c' line='239' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='pci_iounmap' mangled-name='pci_iounmap' filepath='lib/pci_iomap.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_iounmap'>
+        <parameter type-id='85196e3f' name='dev' filepath='lib/pci_iomap.c' line='165' column='1'/>
+        <parameter type-id='eaa32e2f' name='p' filepath='lib/pci_iomap.c' line='165' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_irq_get_affinity' mangled-name='pci_irq_get_affinity' filepath='drivers/pci/msi.c' line='1245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_irq_get_affinity'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/msi.c' line='1245' column='1'/>
+        <parameter type-id='95e97e5e' name='nr' filepath='drivers/pci/msi.c' line='1245' column='1'/>
+        <return type-id='5f8a1ac4'/>
+      </function-decl>
+      <function-decl name='pci_irq_vector' mangled-name='pci_irq_vector' filepath='drivers/pci/msi.c' line='1206' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_irq_vector'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/msi.c' line='1206' column='1'/>
+        <parameter type-id='f0981eeb' name='nr' filepath='drivers/pci/msi.c' line='1206' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_load_and_free_saved_state' mangled-name='pci_load_and_free_saved_state' filepath='drivers/pci/pci.c' line='1815' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_load_and_free_saved_state'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='1815' column='1'/>
+        <parameter type-id='6efc6709' name='state' filepath='drivers/pci/pci.c' line='1816' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_load_saved_state' mangled-name='pci_load_saved_state' filepath='drivers/pci/pci.c' line='1778' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_load_saved_state'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='1778' column='1'/>
+        <parameter type-id='e4acc659' name='state' filepath='drivers/pci/pci.c' line='1779' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_lock_rescan_remove' mangled-name='pci_lock_rescan_remove' filepath='drivers/pci/probe.c' line='3261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_lock_rescan_remove'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_map_rom' mangled-name='pci_map_rom' filepath='drivers/pci/rom.c' line='136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_map_rom'>
+        <parameter type-id='85196e3f' name='pdev' filepath='drivers/pci/rom.c' line='136' column='1'/>
+        <parameter type-id='78c01427' name='size' filepath='drivers/pci/rom.c' line='136' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='pci_match_id' mangled-name='pci_match_id' filepath='drivers/pci/pci-driver.c' line='104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_match_id'>
+        <parameter type-id='92fc8aa5' name='ids' filepath='drivers/pci/pci-driver.c' line='104' column='1'/>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci-driver.c' line='105' column='1'/>
+        <return type-id='92fc8aa5'/>
+      </function-decl>
+      <function-decl name='pci_msi_create_irq_domain' mangled-name='pci_msi_create_irq_domain' filepath='drivers/pci/msi.c' line='1412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_msi_create_irq_domain'>
+        <parameter type-id='4a935625' name='fwnode' filepath='drivers/pci/msi.c' line='1412' column='1'/>
+        <parameter type-id='a9bcccf8' name='info' filepath='drivers/pci/msi.c' line='1413' column='1'/>
+        <parameter type-id='7544e824' name='parent' filepath='drivers/pci/msi.c' line='1414' column='1'/>
+        <return type-id='7544e824'/>
+      </function-decl>
+      <function-decl name='pci_msi_enabled' mangled-name='pci_msi_enabled' filepath='drivers/pci/msi.c' line='995' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_msi_enabled'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_msi_mask_irq' mangled-name='pci_msi_mask_irq' filepath='drivers/pci/msi.c' line='225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_msi_mask_irq'>
+        <parameter type-id='1c475548' name='data' filepath='drivers/pci/msi.c' line='225' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_msi_unmask_irq' mangled-name='pci_msi_unmask_irq' filepath='drivers/pci/msi.c' line='237' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_msi_unmask_irq'>
+        <parameter type-id='1c475548' name='data' filepath='drivers/pci/msi.c' line='237' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_msi_vec_count' mangled-name='pci_msi_vec_count' filepath='drivers/pci/msi.c' line='850' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_msi_vec_count'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/msi.c' line='850' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_msix_vec_count' mangled-name='pci_msix_vec_count' filepath='drivers/pci/msi.c' line='905' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_msix_vec_count'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/msi.c' line='905' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_num_vf' mangled-name='pci_num_vf' filepath='drivers/pci/iov.c' line='1057' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_num_vf'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/iov.c' line='1057' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_pio_to_address' mangled-name='pci_pio_to_address' filepath='drivers/pci/pci.c' line='4103' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_pio_to_address'>
+        <parameter type-id='7359adad' name='pio' filepath='drivers/pci/pci.c' line='4103' column='1'/>
+        <return type-id='2522883d'/>
+      </function-decl>
+      <function-decl name='pci_read_config_byte' mangled-name='pci_read_config_byte' filepath='drivers/pci/access.c' line='526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_read_config_byte'>
+        <parameter type-id='947f31e6' name='dev' filepath='drivers/pci/access.c' line='526' column='1'/>
+        <parameter type-id='95e97e5e' name='where' filepath='drivers/pci/access.c' line='526' column='1'/>
+        <parameter type-id='8bff8096' name='val' filepath='drivers/pci/access.c' line='526' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_read_config_dword' mangled-name='pci_read_config_dword' filepath='drivers/pci/access.c' line='546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_read_config_dword'>
+        <parameter type-id='947f31e6' name='dev' filepath='drivers/pci/access.c' line='546' column='1'/>
+        <parameter type-id='95e97e5e' name='where' filepath='drivers/pci/access.c' line='546' column='1'/>
+        <parameter type-id='f9409001' name='val' filepath='drivers/pci/access.c' line='547' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_read_config_word' mangled-name='pci_read_config_word' filepath='drivers/pci/access.c' line='536' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_read_config_word'>
+        <parameter type-id='947f31e6' name='dev' filepath='drivers/pci/access.c' line='536' column='1'/>
+        <parameter type-id='95e97e5e' name='where' filepath='drivers/pci/access.c' line='536' column='1'/>
+        <parameter type-id='26d4d46f' name='val' filepath='drivers/pci/access.c' line='536' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_rebar_get_possible_sizes' mangled-name='pci_rebar_get_possible_sizes' filepath='drivers/pci/pci.c' line='3642' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_rebar_get_possible_sizes'>
+        <parameter type-id='85196e3f' name='pdev' filepath='drivers/pci/pci.c' line='3642' column='1'/>
+        <parameter type-id='95e97e5e' name='bar' filepath='drivers/pci/pci.c' line='3642' column='1'/>
+        <return type-id='19c2251e'/>
+      </function-decl>
+      <function-decl name='pci_release_region' mangled-name='pci_release_region' filepath='drivers/pci/pci.c' line='3862' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_release_region'>
+        <parameter type-id='85196e3f' name='pdev' filepath='drivers/pci/pci.c' line='3862' column='1'/>
+        <parameter type-id='95e97e5e' name='bar' filepath='drivers/pci/pci.c' line='3862' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_release_regions' mangled-name='pci_release_regions' filepath='drivers/pci/pci.c' line='4020' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_release_regions'>
+        <parameter type-id='85196e3f' name='pdev' filepath='drivers/pci/pci.c' line='4020' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_release_resource' mangled-name='pci_release_resource' filepath='drivers/pci/setup-res.c' line='405' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_release_resource'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/setup-res.c' line='405' column='1'/>
+        <parameter type-id='95e97e5e' name='resno' filepath='drivers/pci/setup-res.c' line='405' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_release_selected_regions' mangled-name='pci_release_selected_regions' filepath='drivers/pci/pci.c' line='3959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_release_selected_regions'>
+        <parameter type-id='85196e3f' name='pdev' filepath='drivers/pci/pci.c' line='3959' column='1'/>
+        <parameter type-id='95e97e5e' name='bars' filepath='drivers/pci/pci.c' line='3959' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_remap_iospace' mangled-name='pci_remap_iospace' filepath='drivers/pci/pci.c' line='4140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_remap_iospace'>
+        <parameter type-id='e153f6de' name='res' filepath='drivers/pci/pci.c' line='4140' column='1'/>
+        <parameter type-id='2522883d' name='phys_addr' filepath='drivers/pci/pci.c' line='4140' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_remove_root_bus' mangled-name='pci_remove_root_bus' filepath='drivers/pci/remove.c' line='148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_remove_root_bus'>
+        <parameter type-id='d1feb554' name='bus' filepath='drivers/pci/remove.c' line='148' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_request_irq' mangled-name='pci_request_irq' filepath='drivers/pci/irq.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_request_irq'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/irq.c' line='33' column='1'/>
+        <parameter type-id='f0981eeb' name='nr' filepath='drivers/pci/irq.c' line='33' column='1'/>
+        <parameter type-id='29591c9a' name='handler' filepath='drivers/pci/irq.c' line='33' column='1'/>
+        <parameter type-id='29591c9a' name='thread_fn' filepath='drivers/pci/irq.c' line='34' column='1'/>
+        <parameter type-id='eaa32e2f' name='dev_id' filepath='drivers/pci/irq.c' line='34' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/pci/irq.c' line='34' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_request_region' mangled-name='pci_request_region' filepath='drivers/pci/pci.c' line='3945' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_request_region'>
+        <parameter type-id='85196e3f' name='pdev' filepath='drivers/pci/pci.c' line='3945' column='1'/>
+        <parameter type-id='95e97e5e' name='bar' filepath='drivers/pci/pci.c' line='3945' column='1'/>
+        <parameter type-id='80f4b756' name='res_name' filepath='drivers/pci/pci.c' line='3945' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_request_regions' mangled-name='pci_request_regions' filepath='drivers/pci/pci.c' line='4039' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_request_regions'>
+        <parameter type-id='85196e3f' name='pdev' filepath='drivers/pci/pci.c' line='4039' column='1'/>
+        <parameter type-id='80f4b756' name='res_name' filepath='drivers/pci/pci.c' line='4039' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_request_selected_regions' mangled-name='pci_request_selected_regions' filepath='drivers/pci/pci.c' line='3995' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_request_selected_regions'>
+        <parameter type-id='85196e3f' name='pdev' filepath='drivers/pci/pci.c' line='3995' column='1'/>
+        <parameter type-id='95e97e5e' name='bars' filepath='drivers/pci/pci.c' line='3995' column='1'/>
+        <parameter type-id='80f4b756' name='res_name' filepath='drivers/pci/pci.c' line='3996' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_rescan_bus' mangled-name='pci_rescan_bus' filepath='drivers/pci/probe.c' line='3243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_rescan_bus'>
+        <parameter type-id='d1feb554' name='bus' filepath='drivers/pci/probe.c' line='3243' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='pci_reset_function' mangled-name='pci_reset_function' filepath='drivers/pci/pci.c' line='5375' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_reset_function'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='5375' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_resize_resource' mangled-name='pci_resize_resource' filepath='drivers/pci/setup-res.c' line='421' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_resize_resource'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/setup-res.c' line='421' column='1'/>
+        <parameter type-id='95e97e5e' name='resno' filepath='drivers/pci/setup-res.c' line='421' column='1'/>
+        <parameter type-id='95e97e5e' name='size' filepath='drivers/pci/setup-res.c' line='421' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_restore_msi_state' mangled-name='pci_restore_msi_state' filepath='drivers/pci/msi.c' line='457' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_restore_msi_state'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/msi.c' line='457' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_restore_state' mangled-name='pci_restore_state' filepath='drivers/pci/pci.c' line='1691' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_restore_state'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='1691' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_save_state' mangled-name='pci_save_state' filepath='drivers/pci/pci.c' line='1575' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_save_state'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='1575' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_scan_child_bus' mangled-name='pci_scan_child_bus' filepath='drivers/pci/probe.c' line='2967' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_scan_child_bus'>
+        <parameter type-id='d1feb554' name='bus' filepath='drivers/pci/probe.c' line='2967' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='pci_scan_root_bus_bridge' mangled-name='pci_scan_root_bus_bridge' filepath='drivers/pci/probe.c' line='3116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_scan_root_bus_bridge'>
+        <parameter type-id='cb0dbc3c' name='bridge' filepath='drivers/pci/probe.c' line='3116' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_select_bars' mangled-name='pci_select_bars' filepath='drivers/pci/pci.c' line='6217' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_select_bars'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='6217' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='drivers/pci/pci.c' line='6217' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_set_master' mangled-name='pci_set_master' filepath='drivers/pci/pci.c' line='4372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_set_master'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='4372' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_set_mwi' mangled-name='pci_set_mwi' filepath='drivers/pci/pci.c' line='4435' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_set_mwi'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='4435' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_set_power_state' mangled-name='pci_set_power_state' filepath='drivers/pci/pci.c' line='1334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_set_power_state'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='1334' column='1'/>
+        <parameter type-id='49c32219' name='state' filepath='drivers/pci/pci.c' line='1334' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_sriov_configure_simple' mangled-name='pci_sriov_configure_simple' filepath='drivers/pci/iov.c' line='1163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_sriov_configure_simple'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/iov.c' line='1163' column='1'/>
+        <parameter type-id='95e97e5e' name='nr_virtfn' filepath='drivers/pci/iov.c' line='1163' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_sriov_set_totalvfs' mangled-name='pci_sriov_set_totalvfs' filepath='drivers/pci/iov.c' line='1120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_sriov_set_totalvfs'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/iov.c' line='1120' column='1'/>
+        <parameter type-id='1dc6a898' name='numvfs' filepath='drivers/pci/iov.c' line='1120' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_stop_and_remove_bus_device' mangled-name='pci_stop_and_remove_bus_device' filepath='drivers/pci/remove.c' line='115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_stop_and_remove_bus_device'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/remove.c' line='115' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_stop_and_remove_bus_device_locked' mangled-name='pci_stop_and_remove_bus_device_locked' filepath='drivers/pci/remove.c' line='122' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_stop_and_remove_bus_device_locked'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/remove.c' line='122' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_stop_root_bus' mangled-name='pci_stop_root_bus' filepath='drivers/pci/remove.c' line='130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_stop_root_bus'>
+        <parameter type-id='d1feb554' name='bus' filepath='drivers/pci/remove.c' line='130' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_store_saved_state' mangled-name='pci_store_saved_state' filepath='drivers/pci/pci.c' line='1739' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_store_saved_state'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='1739' column='1'/>
+        <return type-id='e4acc659'/>
+      </function-decl>
+      <function-decl name='pci_unlock_rescan_remove' mangled-name='pci_unlock_rescan_remove' filepath='drivers/pci/probe.c' line='3267' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_unlock_rescan_remove'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_unmap_iospace' mangled-name='pci_unmap_iospace' filepath='drivers/pci/pci.c' line='4172' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_unmap_iospace'>
+        <parameter type-id='c9d64c0d' name='res' filepath='drivers/pci/pci.c' line='4172' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_unmap_rom' mangled-name='pci_unmap_rom' filepath='drivers/pci/rom.c' line='187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_unmap_rom'>
+        <parameter type-id='85196e3f' name='pdev' filepath='drivers/pci/rom.c' line='187' column='1'/>
+        <parameter type-id='eaa32e2f' name='rom' filepath='drivers/pci/rom.c' line='187' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_unregister_driver' mangled-name='pci_unregister_driver' filepath='drivers/pci/pci-driver.c' line='1421' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_unregister_driver'>
+        <parameter type-id='85b59624' name='drv' filepath='drivers/pci/pci-driver.c' line='1421' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_vfs_assigned' mangled-name='pci_vfs_assigned' filepath='drivers/pci/iov.c' line='1073' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_vfs_assigned'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/iov.c' line='1073' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_wait_for_pending_transaction' mangled-name='pci_wait_for_pending_transaction' filepath='drivers/pci/pci.c' line='4645' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_wait_for_pending_transaction'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='4645' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_wake_from_d3' mangled-name='pci_wake_from_d3' filepath='drivers/pci/pci.c' line='2555' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_wake_from_d3'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='2555' column='1'/>
+        <parameter type-id='b50a4934' name='enable' filepath='drivers/pci/pci.c' line='2555' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_walk_bus' mangled-name='pci_walk_bus' filepath='drivers/pci/bus.c' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_walk_bus'>
+        <parameter type-id='d1feb554' name='top' filepath='drivers/pci/bus.c' line='395' column='1'/>
+        <parameter type-id='82fb5c77' name='cb' filepath='drivers/pci/bus.c' line='395' column='1'/>
+        <parameter type-id='eaa32e2f' name='userdata' filepath='drivers/pci/bus.c' line='396' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pci_write_config_byte' mangled-name='pci_write_config_byte' filepath='drivers/pci/access.c' line='557' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_write_config_byte'>
+        <parameter type-id='947f31e6' name='dev' filepath='drivers/pci/access.c' line='557' column='1'/>
+        <parameter type-id='95e97e5e' name='where' filepath='drivers/pci/access.c' line='557' column='1'/>
+        <parameter type-id='f9b06939' name='val' filepath='drivers/pci/access.c' line='557' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_write_config_dword' mangled-name='pci_write_config_dword' filepath='drivers/pci/access.c' line='573' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_write_config_dword'>
+        <parameter type-id='947f31e6' name='dev' filepath='drivers/pci/access.c' line='573' column='1'/>
+        <parameter type-id='95e97e5e' name='where' filepath='drivers/pci/access.c' line='573' column='1'/>
+        <parameter type-id='19c2251e' name='val' filepath='drivers/pci/access.c' line='574' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pci_write_config_word' mangled-name='pci_write_config_word' filepath='drivers/pci/access.c' line='565' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_write_config_word'>
+        <parameter type-id='947f31e6' name='dev' filepath='drivers/pci/access.c' line='565' column='1'/>
+        <parameter type-id='95e97e5e' name='where' filepath='drivers/pci/access.c' line='565' column='1'/>
+        <parameter type-id='1dc6a898' name='val' filepath='drivers/pci/access.c' line='565' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pcibios_resource_to_bus' mangled-name='pcibios_resource_to_bus' filepath='drivers/pci/host-bridge.c' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pcibios_resource_to_bus'>
+        <parameter type-id='d1feb554' name='bus' filepath='drivers/pci/host-bridge.c' line='51' column='1'/>
+        <parameter type-id='e045254b' name='region' filepath='drivers/pci/host-bridge.c' line='51' column='1'/>
+        <parameter type-id='c9d64c0d' name='res' filepath='drivers/pci/host-bridge.c' line='52' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pcie_aspm_enabled' mangled-name='pcie_aspm_enabled' filepath='drivers/pci/pcie/aspm.c' line='1174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pcie_aspm_enabled'>
+        <parameter type-id='85196e3f' name='pdev' filepath='drivers/pci/pcie/aspm.c' line='1174' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='pcie_bus_configure_settings' mangled-name='pcie_bus_configure_settings' filepath='drivers/pci/probe.c' line='2775' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pcie_bus_configure_settings'>
+        <parameter type-id='d1feb554' name='bus' filepath='drivers/pci/probe.c' line='2775' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pcie_capability_clear_and_set_word' mangled-name='pcie_capability_clear_and_set_word' filepath='drivers/pci/access.c' line='492' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pcie_capability_clear_and_set_word'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/access.c' line='492' column='1'/>
+        <parameter type-id='95e97e5e' name='pos' filepath='drivers/pci/access.c' line='492' column='1'/>
+        <parameter type-id='1dc6a898' name='clear' filepath='drivers/pci/access.c' line='493' column='1'/>
+        <parameter type-id='1dc6a898' name='set' filepath='drivers/pci/access.c' line='493' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pcie_capability_read_dword' mangled-name='pcie_capability_read_dword' filepath='drivers/pci/access.c' line='440' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pcie_capability_read_dword'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/access.c' line='440' column='1'/>
+        <parameter type-id='95e97e5e' name='pos' filepath='drivers/pci/access.c' line='440' column='1'/>
+        <parameter type-id='f9409001' name='val' filepath='drivers/pci/access.c' line='440' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pcie_capability_read_word' mangled-name='pcie_capability_read_word' filepath='drivers/pci/access.c' line='405' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pcie_capability_read_word'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/access.c' line='405' column='1'/>
+        <parameter type-id='95e97e5e' name='pos' filepath='drivers/pci/access.c' line='405' column='1'/>
+        <parameter type-id='26d4d46f' name='val' filepath='drivers/pci/access.c' line='405' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pcie_capability_write_word' mangled-name='pcie_capability_write_word' filepath='drivers/pci/access.c' line='468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pcie_capability_write_word'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/access.c' line='468' column='1'/>
+        <parameter type-id='95e97e5e' name='pos' filepath='drivers/pci/access.c' line='468' column='1'/>
+        <parameter type-id='1dc6a898' name='val' filepath='drivers/pci/access.c' line='468' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pcie_get_mps' mangled-name='pcie_get_mps' filepath='drivers/pci/pci.c' line='5992' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pcie_get_mps'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='5992' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='pcie_link_speed' type-id='32625dbc' mangled-name='pcie_link_speed' visibility='default' filepath='drivers/pci/probe.c' line='675' column='1' elf-symbol-id='pcie_link_speed'/>
+      <function-decl name='pcie_set_mps' mangled-name='pcie_set_mps' filepath='drivers/pci/pci.c' line='6010' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pcie_set_mps'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='6010' column='1'/>
+        <parameter type-id='95e97e5e' name='mps' filepath='drivers/pci/pci.c' line='6010' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pcim_enable_device' mangled-name='pcim_enable_device' filepath='drivers/pci/pci.c' line='2048' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pcim_enable_device'>
+        <parameter type-id='85196e3f' name='pdev' filepath='drivers/pci/pci.c' line='2048' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pcim_iomap_regions' mangled-name='pcim_iomap_regions' filepath='lib/devres.c' line='435' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pcim_iomap_regions'>
+        <parameter type-id='85196e3f' name='pdev' filepath='lib/devres.c' line='435' column='1'/>
+        <parameter type-id='95e97e5e' name='mask' filepath='lib/devres.c' line='435' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='lib/devres.c' line='435' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pcim_iomap_table' mangled-name='pcim_iomap_table' filepath='lib/devres.c' line='361' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pcim_iomap_table'>
+        <parameter type-id='85196e3f' name='pdev' filepath='lib/devres.c' line='361' column='1'/>
+        <return type-id='7acd98a2'/>
+      </function-decl>
+      <function-decl name='pcim_iounmap_regions' mangled-name='pcim_iounmap_regions' filepath='lib/devres.c' line='512' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pcim_iounmap_regions'>
+        <parameter type-id='85196e3f' name='pdev' filepath='lib/devres.c' line='512' column='1'/>
+        <parameter type-id='95e97e5e' name='mask' filepath='lib/devres.c' line='512' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pcix_get_mmrbc' mangled-name='pcix_get_mmrbc' filepath='drivers/pci/pci.c' line='5870' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pcix_get_mmrbc'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='5870' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pcix_set_mmrbc' mangled-name='pcix_set_mmrbc' filepath='drivers/pci/pci.c' line='5895' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pcix_set_mmrbc'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='5895' column='1'/>
+        <parameter type-id='95e97e5e' name='mmrbc' filepath='drivers/pci/pci.c' line='5895' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pcpu_nr_pages' mangled-name='pcpu_nr_pages' filepath='mm/percpu.c' line='3363' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pcpu_nr_pages'>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='per_cpu_ptr_to_phys' mangled-name='per_cpu_ptr_to_phys' filepath='mm/percpu.c' line='2379' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='per_cpu_ptr_to_phys'>
+        <parameter type-id='eaa32e2f' name='addr' filepath='mm/percpu.c' line='2379' column='1'/>
+        <return type-id='2522883d'/>
+      </function-decl>
+      <function-decl name='percpu_counter_add_batch' mangled-name='percpu_counter_add_batch' filepath='lib/percpu_counter.c' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='percpu_counter_add_batch'>
+        <parameter type-id='84c6078d' name='fbc' filepath='lib/percpu_counter.c' line='82' column='1'/>
+        <parameter type-id='9b7c55ef' name='amount' filepath='lib/percpu_counter.c' line='82' column='1'/>
+        <parameter type-id='a7832498' name='batch' filepath='lib/percpu_counter.c' line='82' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='percpu_counter_batch' type-id='95e97e5e' mangled-name='percpu_counter_batch' visibility='default' filepath='lib/percpu_counter.c' line='184' column='1' elf-symbol-id='percpu_counter_batch'/>
+      <function-decl name='percpu_counter_destroy' mangled-name='percpu_counter_destroy' filepath='lib/percpu_counter.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='percpu_counter_destroy'>
+        <parameter type-id='84c6078d' name='fbc' filepath='lib/percpu_counter.c' line='165' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='percpu_counter_set' mangled-name='percpu_counter_set' filepath='lib/percpu_counter.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='percpu_counter_set'>
+        <parameter type-id='84c6078d' name='fbc' filepath='lib/percpu_counter.c' line='60' column='1'/>
+        <parameter type-id='9b7c55ef' name='amount' filepath='lib/percpu_counter.c' line='60' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='percpu_down_write' mangled-name='percpu_down_write' filepath='kernel/locking/percpu-rwsem.c' line='231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='percpu_down_write'>
+        <parameter type-id='652d9ef9' name='sem' filepath='kernel/locking/percpu-rwsem.c' line='231' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='percpu_free_rwsem' mangled-name='percpu_free_rwsem' filepath='kernel/locking/percpu-rwsem.c' line='48' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='percpu_free_rwsem'>
+        <parameter type-id='652d9ef9' name='sem' filepath='kernel/locking/percpu-rwsem.c' line='48' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='percpu_ref_exit' mangled-name='percpu_ref_exit' filepath='lib/percpu-refcount.c' line='130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='percpu_ref_exit'>
+        <parameter type-id='60219102' name='ref' filepath='lib/percpu-refcount.c' line='130' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='percpu_ref_init' mangled-name='percpu_ref_init' filepath='lib/percpu-refcount.c' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='percpu_ref_init'>
+        <parameter type-id='60219102' name='ref' filepath='lib/percpu-refcount.c' line='63' column='1'/>
+        <parameter type-id='903b12fe' name='release' filepath='lib/percpu-refcount.c' line='63' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='lib/percpu-refcount.c' line='64' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='lib/percpu-refcount.c' line='64' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='percpu_ref_is_zero' mangled-name='percpu_ref_is_zero' filepath='lib/percpu-refcount.c' line='409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='percpu_ref_is_zero'>
+        <parameter type-id='60219102' name='ref' filepath='lib/percpu-refcount.c' line='409' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='percpu_ref_switch_to_atomic_sync' mangled-name='percpu_ref_switch_to_atomic_sync' filepath='lib/percpu-refcount.c' line='327' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='percpu_ref_switch_to_atomic_sync'>
+        <parameter type-id='60219102' name='ref' filepath='lib/percpu-refcount.c' line='327' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='percpu_ref_switch_to_percpu' mangled-name='percpu_ref_switch_to_percpu' filepath='lib/percpu-refcount.c' line='352' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='percpu_ref_switch_to_percpu'>
+        <parameter type-id='60219102' name='ref' filepath='lib/percpu-refcount.c' line='352' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='percpu_up_write' mangled-name='percpu_up_write' filepath='kernel/locking/percpu-rwsem.c' line='260' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='percpu_up_write'>
+        <parameter type-id='652d9ef9' name='sem' filepath='kernel/locking/percpu-rwsem.c' line='260' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='perf_aux_output_begin' mangled-name='perf_aux_output_begin' filepath='kernel/events/ring_buffer.c' line='361' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_aux_output_begin'>
+        <parameter type-id='d3b23a45' name='handle' filepath='kernel/events/ring_buffer.c' line='361' column='1'/>
+        <parameter type-id='2bf16f59' name='event' filepath='kernel/events/ring_buffer.c' line='362' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='perf_aux_output_end' mangled-name='perf_aux_output_end' filepath='kernel/events/ring_buffer.c' line='477' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_aux_output_end'>
+        <parameter type-id='d3b23a45' name='handle' filepath='kernel/events/ring_buffer.c' line='477' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='kernel/events/ring_buffer.c' line='477' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='perf_aux_output_flag' mangled-name='perf_aux_output_flag' filepath='kernel/events/ring_buffer.c' line='334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_aux_output_flag'>
+        <parameter type-id='d3b23a45' name='handle' filepath='kernel/events/ring_buffer.c' line='334' column='1'/>
+        <parameter type-id='91ce1af9' name='flags' filepath='kernel/events/ring_buffer.c' line='334' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='perf_event_addr_filters_sync' mangled-name='perf_event_addr_filters_sync' filepath='kernel/events/core.c' line='3190' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_addr_filters_sync'>
+        <parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='3190' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='perf_event_create_kernel_counter' mangled-name='perf_event_create_kernel_counter' filepath='kernel/events/core.c' line='12581' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_create_kernel_counter'>
+        <parameter type-id='20862e61' name='attr' filepath='kernel/events/core.c' line='12581' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/events/core.c' line='12581' column='1'/>
+        <parameter type-id='f23e2572' name='task' filepath='kernel/events/core.c' line='12582' column='1'/>
+        <parameter type-id='20a2e4e6' name='overflow_handler' filepath='kernel/events/core.c' line='12583' column='1'/>
+        <parameter type-id='eaa32e2f' name='context' filepath='kernel/events/core.c' line='12584' column='1'/>
+        <return type-id='2bf16f59'/>
+      </function-decl>
+      <function-decl name='perf_event_disable' mangled-name='perf_event_disable' filepath='kernel/events/core.c' line='2552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_disable'>
+        <parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='2552' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='perf_event_enable' mangled-name='perf_event_enable' filepath='kernel/events/core.c' line='3090' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_enable'>
+        <parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='3090' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='perf_event_pause' mangled-name='perf_event_pause' filepath='kernel/events/core.c' line='5546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_pause'>
+        <parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='5546' column='1'/>
+        <parameter type-id='b50a4934' name='reset' filepath='kernel/events/core.c' line='5546' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='perf_event_read_local' mangled-name='perf_event_read_local' filepath='kernel/events/core.c' line='4522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_read_local'>
+        <parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='4522' column='1'/>
+        <parameter type-id='3df9fd28' name='value' filepath='kernel/events/core.c' line='4522' column='1'/>
+        <parameter type-id='3df9fd28' name='enabled' filepath='kernel/events/core.c' line='4523' column='1'/>
+        <parameter type-id='3df9fd28' name='running' filepath='kernel/events/core.c' line='4523' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='perf_event_read_value' mangled-name='perf_event_read_value' filepath='kernel/events/core.c' line='5328' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_read_value'>
+        <parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='5328' column='1'/>
+        <parameter type-id='3df9fd28' name='enabled' filepath='kernel/events/core.c' line='5328' column='1'/>
+        <parameter type-id='3df9fd28' name='running' filepath='kernel/events/core.c' line='5328' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='perf_event_release_kernel' mangled-name='perf_event_release_kernel' filepath='kernel/events/core.c' line='5181' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_release_kernel'>
+        <parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='5181' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='perf_event_update_userpage' mangled-name='perf_event_update_userpage' filepath='kernel/events/core.c' line='5927' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_event_update_userpage'>
+        <parameter type-id='2bf16f59' name='event' filepath='kernel/events/core.c' line='5927' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='perf_get_aux' mangled-name='perf_get_aux' filepath='kernel/events/ring_buffer.c' line='557' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_get_aux'>
+        <parameter type-id='d3b23a45' name='handle' filepath='kernel/events/ring_buffer.c' line='557' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='perf_pmu_migrate_context' mangled-name='perf_pmu_migrate_context' filepath='kernel/events/core.c' line='12660' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_pmu_migrate_context'>
+        <parameter type-id='0906f5b9' name='pmu' filepath='kernel/events/core.c' line='12660' column='1'/>
+        <parameter type-id='95e97e5e' name='src_cpu' filepath='kernel/events/core.c' line='12660' column='1'/>
+        <parameter type-id='95e97e5e' name='dst_cpu' filepath='kernel/events/core.c' line='12660' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='perf_pmu_register' mangled-name='perf_pmu_register' filepath='kernel/events/core.c' line='11129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_pmu_register'>
+        <parameter type-id='0906f5b9' name='pmu' filepath='kernel/events/core.c' line='11129' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/events/core.c' line='11129' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='kernel/events/core.c' line='11129' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='perf_pmu_unregister' mangled-name='perf_pmu_unregister' filepath='kernel/events/core.c' line='11265' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_pmu_unregister'>
+        <parameter type-id='0906f5b9' name='pmu' filepath='kernel/events/core.c' line='11265' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='perf_trace_buf_alloc' mangled-name='perf_trace_buf_alloc' filepath='kernel/trace/trace_event_perf.c' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_trace_buf_alloc'>
+        <parameter type-id='95e97e5e' name='size' filepath='kernel/trace/trace_event_perf.c' line='396' column='1'/>
+        <parameter type-id='a89ff5a9' name='regs' filepath='kernel/trace/trace_event_perf.c' line='396' column='1'/>
+        <parameter type-id='7292109c' name='rctxp' filepath='kernel/trace/trace_event_perf.c' line='396' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='perf_trace_run_bpf_submit' mangled-name='perf_trace_run_bpf_submit' filepath='kernel/events/core.c' line='9767' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_trace_run_bpf_submit'>
+        <parameter type-id='eaa32e2f' name='raw_data' filepath='kernel/events/core.c' line='9767' column='1'/>
+        <parameter type-id='95e97e5e' name='size' filepath='kernel/events/core.c' line='9767' column='1'/>
+        <parameter type-id='95e97e5e' name='rctx' filepath='kernel/events/core.c' line='9767' column='1'/>
+        <parameter type-id='23d6768c' name='call' filepath='kernel/events/core.c' line='9768' column='1'/>
+        <parameter type-id='91ce1af9' name='count' filepath='kernel/events/core.c' line='9768' column='1'/>
+        <parameter type-id='4616a179' name='regs' filepath='kernel/events/core.c' line='9769' column='1'/>
+        <parameter type-id='030d0b18' name='head' filepath='kernel/events/core.c' line='9769' column='1'/>
+        <parameter type-id='f23e2572' name='task' filepath='kernel/events/core.c' line='9770' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pfn_is_map_memory' mangled-name='pfn_is_map_memory' filepath='arch/arm64/mm/init.c' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pfn_is_map_memory'>
+        <parameter type-id='7359adad' name='pfn' filepath='arch/arm64/mm/init.c' line='205' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_attached_info' mangled-name='phy_attached_info' filepath='drivers/net/phy/phy_device.c' line='1206' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_attached_info'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='1206' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='phy_basic_features' type-id='f05e8e77' mangled-name='phy_basic_features' visibility='default' filepath='drivers/net/phy/phy_device.c' line='41' column='1' elf-symbol-id='phy_basic_features'/>
+      <var-decl name='phy_basic_t1_features' type-id='f05e8e77' mangled-name='phy_basic_t1_features' visibility='default' filepath='drivers/net/phy/phy_device.c' line='44' column='1' elf-symbol-id='phy_basic_t1_features'/>
+      <function-decl name='phy_calibrate' mangled-name='phy_calibrate' filepath='drivers/phy/phy-core.c' line='437' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_calibrate'>
+        <parameter type-id='503ff1ba' name='phy' filepath='drivers/phy/phy-core.c' line='437' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_config_aneg' mangled-name='phy_config_aneg' filepath='drivers/net/phy/phy.c' line='664' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_config_aneg'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy.c' line='664' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_configure' mangled-name='phy_configure' filepath='drivers/phy/phy-core.c' line='463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_configure'>
+        <parameter type-id='503ff1ba' name='phy' filepath='drivers/phy/phy-core.c' line='463' column='1'/>
+        <parameter type-id='9d3cfa5c' name='opts' filepath='drivers/phy/phy-core.c' line='463' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_connect' mangled-name='phy_connect' filepath='drivers/net/phy/phy_device.c' line='1086' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_connect'>
+        <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/phy/phy_device.c' line='1086' column='1'/>
+        <parameter type-id='80f4b756' name='bus_id' filepath='drivers/net/phy/phy_device.c' line='1086' column='1'/>
+        <parameter type-id='548eee3a' name='handler' filepath='drivers/net/phy/phy_device.c' line='1087' column='1'/>
+        <parameter type-id='d61bf978' name='interface' filepath='drivers/net/phy/phy_device.c' line='1088' column='1'/>
+        <return type-id='7efbcaaf'/>
+      </function-decl>
+      <function-decl name='phy_connect_direct' mangled-name='phy_connect_direct' filepath='drivers/net/phy/phy_device.c' line='1050' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_connect_direct'>
+        <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/phy/phy_device.c' line='1050' column='1'/>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='1050' column='1'/>
+        <parameter type-id='548eee3a' name='handler' filepath='drivers/net/phy/phy_device.c' line='1051' column='1'/>
+        <parameter type-id='d61bf978' name='interface' filepath='drivers/net/phy/phy_device.c' line='1052' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_disconnect' mangled-name='phy_disconnect' filepath='drivers/net/phy/phy_device.c' line='1118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_disconnect'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='1118' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phy_do_ioctl_running' mangled-name='phy_do_ioctl_running' filepath='drivers/net/phy/phy.c' line='414' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_do_ioctl_running'>
+        <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/phy/phy.c' line='414' column='1'/>
+        <parameter type-id='d494b97c' name='ifr' filepath='drivers/net/phy/phy.c' line='414' column='1'/>
+        <parameter type-id='95e97e5e' name='cmd' filepath='drivers/net/phy/phy.c' line='414' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_drivers_register' mangled-name='phy_drivers_register' filepath='drivers/net/phy/phy_device.c' line='3179' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_drivers_register'>
+        <parameter type-id='e812884b' name='new_driver' filepath='drivers/net/phy/phy_device.c' line='3179' column='1'/>
+        <parameter type-id='95e97e5e' name='n' filepath='drivers/net/phy/phy_device.c' line='3179' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/net/phy/phy_device.c' line='3180' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_drivers_unregister' mangled-name='phy_drivers_unregister' filepath='drivers/net/phy/phy_device.c' line='3202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_drivers_unregister'>
+        <parameter type-id='e812884b' name='drv' filepath='drivers/net/phy/phy_device.c' line='3202' column='1'/>
+        <parameter type-id='95e97e5e' name='n' filepath='drivers/net/phy/phy_device.c' line='3202' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phy_error' mangled-name='phy_error' filepath='drivers/net/phy/phy.c' line='952' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_error'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy.c' line='952' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phy_ethtool_get_eee' mangled-name='phy_ethtool_get_eee' filepath='drivers/net/phy/phy.c' line='1340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_ethtool_get_eee'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy.c' line='1340' column='1'/>
+        <parameter type-id='eced47f6' name='data' filepath='drivers/net/phy/phy.c' line='1340' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_ethtool_get_link_ksettings' mangled-name='phy_ethtool_get_link_ksettings' filepath='drivers/net/phy/phy.c' line='1449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_ethtool_get_link_ksettings'>
+        <parameter type-id='68a2d05b' name='ndev' filepath='drivers/net/phy/phy.c' line='1449' column='1'/>
+        <parameter type-id='70de91e2' name='cmd' filepath='drivers/net/phy/phy.c' line='1450' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_ethtool_get_wol' mangled-name='phy_ethtool_get_wol' filepath='drivers/net/phy/phy.c' line='1442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_ethtool_get_wol'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy.c' line='1442' column='1'/>
+        <parameter type-id='fde1bbcb' name='wol' filepath='drivers/net/phy/phy.c' line='1442' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phy_ethtool_ksettings_get' mangled-name='phy_ethtool_ksettings_get' filepath='drivers/net/phy/phy.c' line='258' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_ethtool_ksettings_get'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy.c' line='258' column='1'/>
+        <parameter type-id='70de91e2' name='cmd' filepath='drivers/net/phy/phy.c' line='259' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phy_ethtool_ksettings_set' mangled-name='phy_ethtool_ksettings_set' filepath='drivers/net/phy/phy.c' line='782' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_ethtool_ksettings_set'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy.c' line='782' column='1'/>
+        <parameter type-id='b2c34f11' name='cmd' filepath='drivers/net/phy/phy.c' line='783' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_ethtool_nway_reset' mangled-name='phy_ethtool_nway_reset' filepath='drivers/net/phy/phy.c' line='1479' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_ethtool_nway_reset'>
+        <parameter type-id='68a2d05b' name='ndev' filepath='drivers/net/phy/phy.c' line='1479' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_ethtool_set_eee' mangled-name='phy_ethtool_set_eee' filepath='drivers/net/phy/phy.c' line='1379' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_ethtool_set_eee'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy.c' line='1379' column='1'/>
+        <parameter type-id='eced47f6' name='data' filepath='drivers/net/phy/phy.c' line='1379' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_ethtool_set_link_ksettings' mangled-name='phy_ethtool_set_link_ksettings' filepath='drivers/net/phy/phy.c' line='1463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_ethtool_set_link_ksettings'>
+        <parameter type-id='68a2d05b' name='ndev' filepath='drivers/net/phy/phy.c' line='1463' column='1'/>
+        <parameter type-id='b2c34f11' name='cmd' filepath='drivers/net/phy/phy.c' line='1464' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_ethtool_set_wol' mangled-name='phy_ethtool_set_wol' filepath='drivers/net/phy/phy.c' line='1427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_ethtool_set_wol'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy.c' line='1427' column='1'/>
+        <parameter type-id='fde1bbcb' name='wol' filepath='drivers/net/phy/phy.c' line='1427' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_exit' mangled-name='phy_exit' filepath='drivers/phy/phy-core.c' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_exit'>
+        <parameter type-id='503ff1ba' name='phy' filepath='drivers/phy/phy-core.c' line='261' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_find_first' mangled-name='phy_find_first' filepath='drivers/net/phy/phy_device.c' line='998' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_find_first'>
+        <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/phy_device.c' line='998' column='1'/>
+        <return type-id='7efbcaaf'/>
+      </function-decl>
+      <var-decl name='phy_gbit_features' type-id='f05e8e77' mangled-name='phy_gbit_features' visibility='default' filepath='drivers/net/phy/phy_device.c' line='47' column='1' elf-symbol-id='phy_gbit_features'/>
+      <var-decl name='phy_gbit_fibre_features' type-id='f05e8e77' mangled-name='phy_gbit_fibre_features' visibility='default' filepath='drivers/net/phy/phy_device.c' line='50' column='1' elf-symbol-id='phy_gbit_fibre_features'/>
+      <function-decl name='phy_get' mangled-name='phy_get' filepath='drivers/phy/phy-core.c' line='694' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/phy/phy-core.c' line='694' column='1'/>
+        <parameter type-id='80f4b756' name='string' filepath='drivers/phy/phy-core.c' line='694' column='1'/>
+        <return type-id='503ff1ba'/>
+      </function-decl>
+      <function-decl name='phy_get_eee_err' mangled-name='phy_get_eee_err' filepath='drivers/net/phy/phy.c' line='1323' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_get_eee_err'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy.c' line='1323' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_get_pause' mangled-name='phy_get_pause' filepath='drivers/net/phy/phy_device.c' line='2805' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_get_pause'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='2805' column='1'/>
+        <parameter type-id='d8e6b335' name='tx_pause' filepath='drivers/net/phy/phy_device.c' line='2805' column='1'/>
+        <parameter type-id='d8e6b335' name='rx_pause' filepath='drivers/net/phy/phy_device.c' line='2805' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phy_init' mangled-name='phy_init' filepath='drivers/phy/phy-core.c' line='232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_init'>
+        <parameter type-id='503ff1ba' name='phy' filepath='drivers/phy/phy-core.c' line='232' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_init_eee' mangled-name='phy_init_eee' filepath='drivers/net/phy/phy.c' line='1255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_init_eee'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy.c' line='1255' column='1'/>
+        <parameter type-id='b50a4934' name='clk_stop_enable' filepath='drivers/net/phy/phy.c' line='1255' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_init_hw' mangled-name='phy_init_hw' filepath='drivers/net/phy/phy_device.c' line='1166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_init_hw'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='1166' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_loopback' mangled-name='phy_loopback' filepath='drivers/net/phy/phy_device.c' line='1832' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_loopback'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='1832' column='1'/>
+        <parameter type-id='b50a4934' name='enable' filepath='drivers/net/phy/phy_device.c' line='1832' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_mac_interrupt' mangled-name='phy_mac_interrupt' filepath='drivers/net/phy/phy.c' line='1214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_mac_interrupt'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy.c' line='1214' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phy_mii_ioctl' mangled-name='phy_mii_ioctl' filepath='drivers/net/phy/phy.c' line='294' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_mii_ioctl'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy.c' line='294' column='1'/>
+        <parameter type-id='d494b97c' name='ifr' filepath='drivers/net/phy/phy.c' line='294' column='1'/>
+        <parameter type-id='95e97e5e' name='cmd' filepath='drivers/net/phy/phy.c' line='294' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_mipi_dphy_get_default_config' mangled-name='phy_mipi_dphy_get_default_config' filepath='drivers/phy/phy-core-mipi-dphy.c' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_mipi_dphy_get_default_config'>
+        <parameter type-id='7359adad' name='pixel_clock' filepath='drivers/phy/phy-core-mipi-dphy.c' line='20' column='1'/>
+        <parameter type-id='f0981eeb' name='bpp' filepath='drivers/phy/phy-core-mipi-dphy.c' line='21' column='1'/>
+        <parameter type-id='f0981eeb' name='lanes' filepath='drivers/phy/phy-core-mipi-dphy.c' line='22' column='1'/>
+        <parameter type-id='37cfc122' name='cfg' filepath='drivers/phy/phy-core-mipi-dphy.c' line='23' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_modify' mangled-name='phy_modify' filepath='drivers/net/phy/phy-core.c' line='631' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_modify'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-core.c' line='631' column='1'/>
+        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/phy-core.c' line='631' column='1'/>
+        <parameter type-id='1dc6a898' name='mask' filepath='drivers/net/phy/phy-core.c' line='631' column='1'/>
+        <parameter type-id='1dc6a898' name='set' filepath='drivers/net/phy/phy-core.c' line='631' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_modify_changed' mangled-name='phy_modify_changed' filepath='drivers/net/phy/phy-core.c' line='587' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_modify_changed'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-core.c' line='587' column='1'/>
+        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/phy-core.c' line='587' column='1'/>
+        <parameter type-id='1dc6a898' name='mask' filepath='drivers/net/phy/phy-core.c' line='587' column='1'/>
+        <parameter type-id='1dc6a898' name='set' filepath='drivers/net/phy/phy-core.c' line='587' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_modify_mmd' mangled-name='phy_modify_mmd' filepath='drivers/net/phy/phy-core.c' line='737' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_modify_mmd'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-core.c' line='737' column='1'/>
+        <parameter type-id='95e97e5e' name='devad' filepath='drivers/net/phy/phy-core.c' line='737' column='1'/>
+        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/phy-core.c' line='737' column='1'/>
+        <parameter type-id='1dc6a898' name='mask' filepath='drivers/net/phy/phy-core.c' line='738' column='1'/>
+        <parameter type-id='1dc6a898' name='set' filepath='drivers/net/phy/phy-core.c' line='738' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_modify_mmd_changed' mangled-name='phy_modify_mmd_changed' filepath='drivers/net/phy/phy-core.c' line='689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_modify_mmd_changed'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-core.c' line='689' column='1'/>
+        <parameter type-id='95e97e5e' name='devad' filepath='drivers/net/phy/phy-core.c' line='689' column='1'/>
+        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/phy-core.c' line='689' column='1'/>
+        <parameter type-id='1dc6a898' name='mask' filepath='drivers/net/phy/phy-core.c' line='690' column='1'/>
+        <parameter type-id='1dc6a898' name='set' filepath='drivers/net/phy/phy-core.c' line='690' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_modify_paged' mangled-name='phy_modify_paged' filepath='drivers/net/phy/phy-core.c' line='923' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_modify_paged'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-core.c' line='923' column='1'/>
+        <parameter type-id='95e97e5e' name='page' filepath='drivers/net/phy/phy-core.c' line='923' column='1'/>
+        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/phy-core.c' line='923' column='1'/>
+        <parameter type-id='1dc6a898' name='mask' filepath='drivers/net/phy/phy-core.c' line='924' column='1'/>
+        <parameter type-id='1dc6a898' name='set' filepath='drivers/net/phy/phy-core.c' line='924' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_modify_paged_changed' mangled-name='phy_modify_paged_changed' filepath='drivers/net/phy/phy-core.c' line='900' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_modify_paged_changed'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-core.c' line='900' column='1'/>
+        <parameter type-id='95e97e5e' name='page' filepath='drivers/net/phy/phy-core.c' line='900' column='1'/>
+        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/phy-core.c' line='900' column='1'/>
+        <parameter type-id='1dc6a898' name='mask' filepath='drivers/net/phy/phy-core.c' line='901' column='1'/>
+        <parameter type-id='1dc6a898' name='set' filepath='drivers/net/phy/phy-core.c' line='901' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_pm_runtime_get_sync' mangled-name='phy_pm_runtime_get_sync' filepath='drivers/phy/phy-core.c' line='166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_pm_runtime_get_sync'>
+        <parameter type-id='503ff1ba' name='phy' filepath='drivers/phy/phy-core.c' line='166' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_pm_runtime_put_sync' mangled-name='phy_pm_runtime_put_sync' filepath='drivers/phy/phy-core.c' line='196' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_pm_runtime_put_sync'>
+        <parameter type-id='503ff1ba' name='phy' filepath='drivers/phy/phy-core.c' line='196' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_power_off' mangled-name='phy_power_off' filepath='drivers/phy/phy-core.c' line='332' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_power_off'>
+        <parameter type-id='503ff1ba' name='phy' filepath='drivers/phy/phy-core.c' line='332' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_power_on' mangled-name='phy_power_on' filepath='drivers/phy/phy-core.c' line='290' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_power_on'>
+        <parameter type-id='503ff1ba' name='phy' filepath='drivers/phy/phy-core.c' line='290' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_print_status' mangled-name='phy_print_status' filepath='drivers/net/phy/phy.c' line='113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_print_status'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy.c' line='113' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phy_put' mangled-name='phy_put' filepath='drivers/phy/phy-core.c' line='626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_put'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/phy/phy-core.c' line='626' column='1'/>
+        <parameter type-id='503ff1ba' name='phy' filepath='drivers/phy/phy-core.c' line='626' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phy_read_mmd' mangled-name='phy_read_mmd' filepath='drivers/net/phy/phy-core.c' line='503' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_read_mmd'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-core.c' line='503' column='1'/>
+        <parameter type-id='95e97e5e' name='devad' filepath='drivers/net/phy/phy-core.c' line='503' column='1'/>
+        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/phy-core.c' line='503' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_read_paged' mangled-name='phy_read_paged' filepath='drivers/net/phy/phy-core.c' line='857' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_read_paged'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-core.c' line='857' column='1'/>
+        <parameter type-id='95e97e5e' name='page' filepath='drivers/net/phy/phy-core.c' line='857' column='1'/>
+        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/phy-core.c' line='857' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_remove_link_mode' mangled-name='phy_remove_link_mode' filepath='drivers/net/phy/phy_device.c' line='2662' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_remove_link_mode'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='2662' column='1'/>
+        <parameter type-id='19c2251e' name='link_mode' filepath='drivers/net/phy/phy_device.c' line='2662' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phy_reset' mangled-name='phy_reset' filepath='drivers/phy/phy-core.c' line='406' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_reset'>
+        <parameter type-id='503ff1ba' name='phy' filepath='drivers/phy/phy-core.c' line='406' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_reset_after_clk_enable' mangled-name='phy_reset_after_clk_enable' filepath='drivers/net/phy/phy_device.c' line='1876' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_reset_after_clk_enable'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='1876' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_resolve_aneg_linkmode' mangled-name='phy_resolve_aneg_linkmode' filepath='drivers/net/phy/phy-core.c' line='362' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_resolve_aneg_linkmode'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-core.c' line='362' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phy_resolve_aneg_pause' mangled-name='phy_resolve_aneg_pause' filepath='drivers/net/phy/phy-core.c' line='342' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_resolve_aneg_pause'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-core.c' line='342' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phy_restore_page' mangled-name='phy_restore_page' filepath='drivers/net/phy/phy-core.c' line='826' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_restore_page'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-core.c' line='826' column='1'/>
+        <parameter type-id='95e97e5e' name='oldpage' filepath='drivers/net/phy/phy-core.c' line='826' column='1'/>
+        <parameter type-id='95e97e5e' name='ret' filepath='drivers/net/phy/phy-core.c' line='826' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_resume' mangled-name='phy_resume' filepath='drivers/net/phy/phy_device.c' line='1820' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_resume'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='1820' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_save_page' mangled-name='phy_save_page' filepath='drivers/net/phy/phy-core.c' line='774' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_save_page'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-core.c' line='774' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_select_page' mangled-name='phy_select_page' filepath='drivers/net/phy/phy-core.c' line='792' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_select_page'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-core.c' line='792' column='1'/>
+        <parameter type-id='95e97e5e' name='page' filepath='drivers/net/phy/phy-core.c' line='792' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_set_max_speed' mangled-name='phy_set_max_speed' filepath='drivers/net/phy/phy-core.c' line='276' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_set_max_speed'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-core.c' line='276' column='1'/>
+        <parameter type-id='19c2251e' name='max_speed' filepath='drivers/net/phy/phy-core.c' line='276' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_set_mode_ext' mangled-name='phy_set_mode_ext' filepath='drivers/phy/phy-core.c' line='359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_set_mode_ext'>
+        <parameter type-id='503ff1ba' name='phy' filepath='drivers/phy/phy-core.c' line='359' column='1'/>
+        <parameter type-id='79ba09b7' name='mode' filepath='drivers/phy/phy-core.c' line='359' column='1'/>
+        <parameter type-id='95e97e5e' name='submode' filepath='drivers/phy/phy-core.c' line='359' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_set_sym_pause' mangled-name='phy_set_sym_pause' filepath='drivers/net/phy/phy_device.c' line='2731' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_set_sym_pause'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='2731' column='1'/>
+        <parameter type-id='b50a4934' name='rx' filepath='drivers/net/phy/phy_device.c' line='2731' column='1'/>
+        <parameter type-id='b50a4934' name='tx' filepath='drivers/net/phy/phy_device.c' line='2731' column='1'/>
+        <parameter type-id='b50a4934' name='autoneg' filepath='drivers/net/phy/phy_device.c' line='2732' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phy_sfp_attach' mangled-name='phy_sfp_attach' filepath='drivers/net/phy/phy_device.c' line='1302' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_sfp_attach'>
+        <parameter type-id='eaa32e2f' name='upstream' filepath='drivers/net/phy/phy_device.c' line='1302' column='1'/>
+        <parameter type-id='6daf6abd' name='bus' filepath='drivers/net/phy/phy_device.c' line='1302' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phy_sfp_detach' mangled-name='phy_sfp_detach' filepath='drivers/net/phy/phy_device.c' line='1319' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_sfp_detach'>
+        <parameter type-id='eaa32e2f' name='upstream' filepath='drivers/net/phy/phy_device.c' line='1319' column='1'/>
+        <parameter type-id='6daf6abd' name='bus' filepath='drivers/net/phy/phy_device.c' line='1319' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phy_sfp_probe' mangled-name='phy_sfp_probe' filepath='drivers/net/phy/phy_device.c' line='1334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_sfp_probe'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='1334' column='1'/>
+        <parameter type-id='969cbe90' name='ops' filepath='drivers/net/phy/phy_device.c' line='1335' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_start' mangled-name='phy_start' filepath='drivers/net/phy/phy.c' line='1097' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_start'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy.c' line='1097' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phy_start_aneg' mangled-name='phy_start_aneg' filepath='drivers/net/phy/phy.c' line='754' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_start_aneg'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy.c' line='754' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_stop' mangled-name='phy_stop' filepath='drivers/net/phy/phy.c' line='1050' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_stop'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy.c' line='1050' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phy_support_sym_pause' mangled-name='phy_support_sym_pause' filepath='drivers/net/phy/phy_device.c' line='2701' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_support_sym_pause'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='2701' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phy_suspend' mangled-name='phy_suspend' filepath='drivers/net/phy/phy_device.c' line='1776' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_suspend'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='1776' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_trigger_machine' mangled-name='phy_trigger_machine' filepath='drivers/net/phy/phy.c' line='441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_trigger_machine'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy.c' line='441' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phy_validate' mangled-name='phy_validate' filepath='drivers/phy/phy-core.c' line='497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_validate'>
+        <parameter type-id='503ff1ba' name='phy' filepath='drivers/phy/phy-core.c' line='497' column='1'/>
+        <parameter type-id='79ba09b7' name='mode' filepath='drivers/phy/phy-core.c' line='497' column='1'/>
+        <parameter type-id='95e97e5e' name='submode' filepath='drivers/phy/phy-core.c' line='497' column='1'/>
+        <parameter type-id='9d3cfa5c' name='opts' filepath='drivers/phy/phy-core.c' line='498' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_write_mmd' mangled-name='phy_write_mmd' filepath='drivers/net/phy/phy-core.c' line='562' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_write_mmd'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-core.c' line='562' column='1'/>
+        <parameter type-id='95e97e5e' name='devad' filepath='drivers/net/phy/phy-core.c' line='562' column='1'/>
+        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/phy-core.c' line='562' column='1'/>
+        <parameter type-id='1dc6a898' name='val' filepath='drivers/net/phy/phy-core.c' line='562' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phy_write_paged' mangled-name='phy_write_paged' filepath='drivers/net/phy/phy-core.c' line='878' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_write_paged'>
+        <parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-core.c' line='878' column='1'/>
+        <parameter type-id='95e97e5e' name='page' filepath='drivers/net/phy/phy-core.c' line='878' column='1'/>
+        <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/phy-core.c' line='878' column='1'/>
+        <parameter type-id='1dc6a898' name='val' filepath='drivers/net/phy/phy-core.c' line='878' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phylink_connect_phy' mangled-name='phylink_connect_phy' filepath='drivers/net/phy/phylink.c' line='1085' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_connect_phy'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1085' column='1'/>
+        <parameter type-id='7efbcaaf' name='phy' filepath='drivers/net/phy/phylink.c' line='1085' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phylink_create' mangled-name='phylink_create' filepath='drivers/net/phy/phylink.c' line='838' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_create'>
+        <parameter type-id='0dc3586b' name='config' filepath='drivers/net/phy/phylink.c' line='838' column='1'/>
+        <parameter type-id='4a935625' name='fwnode' filepath='drivers/net/phy/phylink.c' line='839' column='1'/>
+        <parameter type-id='d61bf978' name='iface' filepath='drivers/net/phy/phylink.c' line='840' column='1'/>
+        <parameter type-id='f6203fc2' name='mac_ops' filepath='drivers/net/phy/phylink.c' line='841' column='1'/>
+        <return type-id='56f3c6ca'/>
+      </function-decl>
+      <function-decl name='phylink_destroy' mangled-name='phylink_destroy' filepath='drivers/net/phy/phylink.c' line='938' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_destroy'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='938' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phylink_disconnect_phy' mangled-name='phylink_disconnect_phy' filepath='drivers/net/phy/phylink.c' line='1185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_disconnect_phy'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1185' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phylink_ethtool_get_eee' mangled-name='phylink_ethtool_get_eee' filepath='drivers/net/phy/phylink.c' line='1863' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_get_eee'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1863' column='1'/>
+        <parameter type-id='eced47f6' name='eee' filepath='drivers/net/phy/phylink.c' line='1863' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phylink_ethtool_get_pauseparam' mangled-name='phylink_ethtool_get_pauseparam' filepath='drivers/net/phy/phylink.c' line='1720' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_get_pauseparam'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1720' column='1'/>
+        <parameter type-id='ab38066e' name='pause' filepath='drivers/net/phy/phylink.c' line='1721' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phylink_ethtool_get_wol' mangled-name='phylink_ethtool_get_wol' filepath='drivers/net/phy/phylink.c' line='1421' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_get_wol'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1421' column='1'/>
+        <parameter type-id='fde1bbcb' name='wol' filepath='drivers/net/phy/phylink.c' line='1421' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phylink_ethtool_ksettings_get' mangled-name='phylink_ethtool_ksettings_get' filepath='drivers/net/phy/phylink.c' line='1488' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_ksettings_get'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1488' column='1'/>
+        <parameter type-id='70de91e2' name='kset' filepath='drivers/net/phy/phylink.c' line='1489' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phylink_ethtool_ksettings_set' mangled-name='phylink_ethtool_ksettings_set' filepath='drivers/net/phy/phylink.c' line='1538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_ksettings_set'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1538' column='1'/>
+        <parameter type-id='b2c34f11' name='kset' filepath='drivers/net/phy/phylink.c' line='1539' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phylink_ethtool_nway_reset' mangled-name='phylink_ethtool_nway_reset' filepath='drivers/net/phy/phylink.c' line='1701' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_nway_reset'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1701' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phylink_ethtool_set_eee' mangled-name='phylink_ethtool_set_eee' filepath='drivers/net/phy/phylink.c' line='1881' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_set_eee'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1881' column='1'/>
+        <parameter type-id='eced47f6' name='eee' filepath='drivers/net/phy/phylink.c' line='1881' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phylink_ethtool_set_pauseparam' mangled-name='phylink_ethtool_set_pauseparam' filepath='drivers/net/phy/phylink.c' line='1736' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_set_pauseparam'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1736' column='1'/>
+        <parameter type-id='ab38066e' name='pause' filepath='drivers/net/phy/phylink.c' line='1737' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phylink_ethtool_set_wol' mangled-name='phylink_ethtool_set_wol' filepath='drivers/net/phy/phylink.c' line='1444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_set_wol'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1444' column='1'/>
+        <parameter type-id='fde1bbcb' name='wol' filepath='drivers/net/phy/phylink.c' line='1444' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phylink_get_eee_err' mangled-name='phylink_get_eee_err' filepath='drivers/net/phy/phylink.c' line='1827' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_get_eee_err'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1827' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phylink_mac_change' mangled-name='phylink_mac_change' filepath='drivers/net/phy/phylink.c' line='1213' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_mac_change'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1213' column='1'/>
+        <parameter type-id='b50a4934' name='up' filepath='drivers/net/phy/phylink.c' line='1213' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phylink_mii_ioctl' mangled-name='phylink_mii_ioctl' filepath='drivers/net/phy/phylink.c' line='2064' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_mii_ioctl'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='2064' column='1'/>
+        <parameter type-id='d494b97c' name='ifr' filepath='drivers/net/phy/phylink.c' line='2064' column='1'/>
+        <parameter type-id='95e97e5e' name='cmd' filepath='drivers/net/phy/phylink.c' line='2064' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phylink_of_phy_connect' mangled-name='phylink_of_phy_connect' filepath='drivers/net/phy/phylink.c' line='1119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_of_phy_connect'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1119' column='1'/>
+        <parameter type-id='9a537bbe' name='dn' filepath='drivers/net/phy/phylink.c' line='1119' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='drivers/net/phy/phylink.c' line='1120' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phylink_resume' mangled-name='phylink_resume' filepath='drivers/net/phy/phylink.c' line='1381' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_resume'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1381' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phylink_set_pcs' mangled-name='phylink_set_pcs' filepath='drivers/net/phy/phylink.c' line='922' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_set_pcs'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='922' column='1'/>
+        <parameter type-id='944c4ff9' name='pcs' filepath='drivers/net/phy/phylink.c' line='922' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phylink_set_port_modes' mangled-name='phylink_set_port_modes' filepath='drivers/net/phy/phylink.c' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_set_port_modes'>
+        <parameter type-id='1d2c2b85' name='mask' filepath='drivers/net/phy/phylink.c' line='124' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phylink_speed_down' mangled-name='phylink_speed_down' filepath='drivers/net/phy/phylink.c' line='2136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_speed_down'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='2136' column='1'/>
+        <parameter type-id='b50a4934' name='sync' filepath='drivers/net/phy/phylink.c' line='2136' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phylink_speed_up' mangled-name='phylink_speed_up' filepath='drivers/net/phy/phylink.c' line='2159' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_speed_up'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='2159' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='phylink_start' mangled-name='phylink_start' filepath='drivers/net/phy/phylink.c' line='1239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_start'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1239' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phylink_stop' mangled-name='phylink_stop' filepath='drivers/net/phy/phylink.c' line='1313' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_stop'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1313' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='phylink_suspend' mangled-name='phylink_suspend' filepath='drivers/net/phy/phylink.c' line='1344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_suspend'>
+        <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1344' column='1'/>
+        <parameter type-id='b50a4934' name='mac_wol' filepath='drivers/net/phy/phylink.c' line='1344' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pick_highest_pushable_task' mangled-name='pick_highest_pushable_task' filepath='kernel/sched/rt.c' line='1795' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pick_highest_pushable_task'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/rt.c' line='1795' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/rt.c' line='1795' column='1'/>
+        <return type-id='f23e2572'/>
+      </function-decl>
+      <function-decl name='pick_migrate_task' mangled-name='pick_migrate_task' filepath='kernel/sched/core.c' line='9037' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pick_migrate_task'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='9037' column='1'/>
+        <return type-id='f23e2572'/>
+      </function-decl>
+      <function-decl name='pid_nr_ns' mangled-name='pid_nr_ns' filepath='kernel/pid.c' line='473' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pid_nr_ns'>
+        <parameter type-id='b94e5398' name='pid' filepath='kernel/pid.c' line='473' column='1'/>
+        <parameter type-id='b816e1d0' name='ns' filepath='kernel/pid.c' line='473' column='1'/>
+        <return type-id='587f89d2'/>
+      </function-decl>
+      <function-decl name='pid_task' mangled-name='pid_task' filepath='kernel/pid.c' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pid_task'>
+        <parameter type-id='b94e5398' name='pid' filepath='kernel/pid.c' line='396' column='1'/>
+        <parameter type-id='ce78cf46' name='type' filepath='kernel/pid.c' line='396' column='1'/>
+        <return type-id='f23e2572'/>
+      </function-decl>
+      <function-decl name='pid_vnr' mangled-name='pid_vnr' filepath='kernel/pid.c' line='487' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pid_vnr'>
+        <parameter type-id='b94e5398' name='pid' filepath='kernel/pid.c' line='487' column='1'/>
+        <return type-id='587f89d2'/>
+      </function-decl>
+      <function-decl name='pin_get_name' mangled-name='pin_get_name' filepath='drivers/pinctrl/core.c' line='167' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pin_get_name'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/core.c' line='167' column='1'/>
+        <parameter type-id='20f5f452' name='pin' filepath='drivers/pinctrl/core.c' line='167' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='pin_user_pages' mangled-name='pin_user_pages' filepath='mm/gup.c' line='3127' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pin_user_pages'>
+        <parameter type-id='7359adad' name='start' filepath='mm/gup.c' line='3127' column='1'/>
+        <parameter type-id='7359adad' name='nr_pages' filepath='mm/gup.c' line='3127' column='1'/>
+        <parameter type-id='f0981eeb' name='gup_flags' filepath='mm/gup.c' line='3128' column='1'/>
+        <parameter type-id='9f93c9da' name='pages' filepath='mm/gup.c' line='3128' column='1'/>
+        <parameter type-id='8b6fdee4' name='vmas' filepath='mm/gup.c' line='3129' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='pin_user_pages_fast' mangled-name='pin_user_pages_fast' filepath='mm/gup.c' line='3023' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pin_user_pages_fast'>
+        <parameter type-id='7359adad' name='start' filepath='mm/gup.c' line='3023' column='1'/>
+        <parameter type-id='95e97e5e' name='nr_pages' filepath='mm/gup.c' line='3023' column='1'/>
+        <parameter type-id='f0981eeb' name='gup_flags' filepath='mm/gup.c' line='3024' column='1'/>
+        <parameter type-id='9f93c9da' name='pages' filepath='mm/gup.c' line='3024' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pin_user_pages_remote' mangled-name='pin_user_pages_remote' filepath='mm/gup.c' line='3094' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pin_user_pages_remote'>
+        <parameter type-id='df4b7819' name='mm' filepath='mm/gup.c' line='3094' column='1'/>
+        <parameter type-id='7359adad' name='start' filepath='mm/gup.c' line='3095' column='1'/>
+        <parameter type-id='7359adad' name='nr_pages' filepath='mm/gup.c' line='3095' column='1'/>
+        <parameter type-id='f0981eeb' name='gup_flags' filepath='mm/gup.c' line='3096' column='1'/>
+        <parameter type-id='9f93c9da' name='pages' filepath='mm/gup.c' line='3096' column='1'/>
+        <parameter type-id='8b6fdee4' name='vmas' filepath='mm/gup.c' line='3097' column='1'/>
+        <parameter type-id='7292109c' name='locked' filepath='mm/gup.c' line='3097' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='pinconf_generic_dt_free_map' mangled-name='pinconf_generic_dt_free_map' filepath='drivers/pinctrl/pinconf-generic.c' line='409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinconf_generic_dt_free_map'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/pinconf-generic.c' line='409' column='1'/>
+        <parameter type-id='9638d26e' name='map' filepath='drivers/pinctrl/pinconf-generic.c' line='410' column='1'/>
+        <parameter type-id='f0981eeb' name='num_maps' filepath='drivers/pinctrl/pinconf-generic.c' line='411' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pinconf_generic_dt_node_to_map' mangled-name='pinconf_generic_dt_node_to_map' filepath='drivers/pinctrl/pinconf-generic.c' line='376' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinconf_generic_dt_node_to_map'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/pinconf-generic.c' line='376' column='1'/>
+        <parameter type-id='9a537bbe' name='np_config' filepath='drivers/pinctrl/pinconf-generic.c' line='377' column='1'/>
+        <parameter type-id='bf73010c' name='map' filepath='drivers/pinctrl/pinconf-generic.c' line='377' column='1'/>
+        <parameter type-id='807869d3' name='num_maps' filepath='drivers/pinctrl/pinconf-generic.c' line='378' column='1'/>
+        <parameter type-id='95da6d1c' name='type' filepath='drivers/pinctrl/pinconf-generic.c' line='378' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinconf_generic_dump_config' mangled-name='pinconf_generic_dump_config' filepath='drivers/pinctrl/pinconf-generic.c' line='130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinconf_generic_dump_config'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/pinconf-generic.c' line='130' column='1'/>
+        <parameter type-id='f8dc9def' name='s' filepath='drivers/pinctrl/pinconf-generic.c' line='131' column='1'/>
+        <parameter type-id='7359adad' name='config' filepath='drivers/pinctrl/pinconf-generic.c' line='131' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pinconf_generic_parse_dt_config' mangled-name='pinconf_generic_parse_dt_config' filepath='drivers/pinctrl/pinconf-generic.c' line='239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinconf_generic_parse_dt_config'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/pinctrl/pinconf-generic.c' line='239' column='1'/>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/pinconf-generic.c' line='240' column='1'/>
+        <parameter type-id='9b88c47d' name='configs' filepath='drivers/pinctrl/pinconf-generic.c' line='241' column='1'/>
+        <parameter type-id='807869d3' name='nconfigs' filepath='drivers/pinctrl/pinconf-generic.c' line='242' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_add_gpio_range' mangled-name='pinctrl_add_gpio_range' filepath='drivers/pinctrl/core.c' line='403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_add_gpio_range'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/core.c' line='403' column='1'/>
+        <parameter type-id='e7faa6fb' name='range' filepath='drivers/pinctrl/core.c' line='404' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pinctrl_count_index_with_args' mangled-name='pinctrl_count_index_with_args' filepath='drivers/pinctrl/devicetree.c' line='349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_count_index_with_args'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/pinctrl/devicetree.c' line='349' column='1'/>
+        <parameter type-id='80f4b756' name='list_name' filepath='drivers/pinctrl/devicetree.c' line='350' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_dev_get_drvdata' mangled-name='pinctrl_dev_get_drvdata' filepath='drivers/pinctrl/core.c' line='87' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_dev_get_drvdata'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/core.c' line='87' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='pinctrl_enable' mangled-name='pinctrl_enable' filepath='drivers/pinctrl/core.c' line='2095' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_enable'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/core.c' line='2095' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_force_default' mangled-name='pinctrl_force_default' filepath='drivers/pinctrl/core.c' line='1514' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_force_default'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/core.c' line='1514' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_force_sleep' mangled-name='pinctrl_force_sleep' filepath='drivers/pinctrl/core.c' line='1502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_force_sleep'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/core.c' line='1502' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_generic_add_group' mangled-name='pinctrl_generic_add_group' filepath='drivers/pinctrl/core.c' line='627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_generic_add_group'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/core.c' line='627' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/pinctrl/core.c' line='627' column='1'/>
+        <parameter type-id='7292109c' name='pins' filepath='drivers/pinctrl/core.c' line='628' column='1'/>
+        <parameter type-id='95e97e5e' name='num_pins' filepath='drivers/pinctrl/core.c' line='628' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/pinctrl/core.c' line='628' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_generic_get_group' mangled-name='pinctrl_generic_get_group' filepath='drivers/pinctrl/core.c' line='583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_generic_get_group'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/core.c' line='583' column='1'/>
+        <parameter type-id='f0981eeb' name='selector' filepath='drivers/pinctrl/core.c' line='584' column='1'/>
+        <return type-id='ec488e1a'/>
+      </function-decl>
+      <function-decl name='pinctrl_generic_get_group_count' mangled-name='pinctrl_generic_get_group_count' filepath='drivers/pinctrl/core.c' line='524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_generic_get_group_count'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/core.c' line='524' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_generic_get_group_name' mangled-name='pinctrl_generic_get_group_name' filepath='drivers/pinctrl/core.c' line='535' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_generic_get_group_name'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/core.c' line='535' column='1'/>
+        <parameter type-id='f0981eeb' name='selector' filepath='drivers/pinctrl/core.c' line='536' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='pinctrl_generic_get_group_pins' mangled-name='pinctrl_generic_get_group_pins' filepath='drivers/pinctrl/core.c' line='556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_generic_get_group_pins'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/core.c' line='556' column='1'/>
+        <parameter type-id='f0981eeb' name='selector' filepath='drivers/pinctrl/core.c' line='557' column='1'/>
+        <parameter type-id='4e523966' name='pins' filepath='drivers/pinctrl/core.c' line='558' column='1'/>
+        <parameter type-id='807869d3' name='num_pins' filepath='drivers/pinctrl/core.c' line='559' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_generic_remove_group' mangled-name='pinctrl_generic_remove_group' filepath='drivers/pinctrl/core.c' line='666' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_generic_remove_group'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/core.c' line='666' column='1'/>
+        <parameter type-id='f0981eeb' name='selector' filepath='drivers/pinctrl/core.c' line='667' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_get' mangled-name='pinctrl_get' filepath='drivers/pinctrl/core.c' line='1114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pinctrl/core.c' line='1114' column='1'/>
+        <return type-id='73ea90c5'/>
+      </function-decl>
+      <function-decl name='pinctrl_gpio_direction_input' mangled-name='pinctrl_gpio_direction_input' filepath='drivers/pinctrl/core.c' line='865' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_gpio_direction_input'>
+        <parameter type-id='f0981eeb' name='gpio' filepath='drivers/pinctrl/core.c' line='865' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_gpio_direction_output' mangled-name='pinctrl_gpio_direction_output' filepath='drivers/pinctrl/core.c' line='879' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_gpio_direction_output'>
+        <parameter type-id='f0981eeb' name='gpio' filepath='drivers/pinctrl/core.c' line='879' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_gpio_set_config' mangled-name='pinctrl_gpio_set_config' filepath='drivers/pinctrl/core.c' line='894' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_gpio_set_config'>
+        <parameter type-id='f0981eeb' name='gpio' filepath='drivers/pinctrl/core.c' line='894' column='1'/>
+        <parameter type-id='7359adad' name='config' filepath='drivers/pinctrl/core.c' line='894' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_lookup_state' mangled-name='pinctrl_lookup_state' filepath='drivers/pinctrl/core.c' line='1205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_lookup_state'>
+        <parameter type-id='73ea90c5' name='p' filepath='drivers/pinctrl/core.c' line='1205' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/pinctrl/core.c' line='1206' column='1'/>
+        <return type-id='f418ceb3'/>
+      </function-decl>
+      <function-decl name='pinctrl_parse_index_with_args' mangled-name='pinctrl_parse_index_with_args' filepath='drivers/pinctrl/devicetree.c' line='408' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_parse_index_with_args'>
+        <parameter type-id='0afa6ea3' name='np' filepath='drivers/pinctrl/devicetree.c' line='408' column='1'/>
+        <parameter type-id='80f4b756' name='list_name' filepath='drivers/pinctrl/devicetree.c' line='409' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/pinctrl/devicetree.c' line='409' column='1'/>
+        <parameter type-id='51a94113' name='out_args' filepath='drivers/pinctrl/devicetree.c' line='410' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_pm_select_default_state' mangled-name='pinctrl_pm_select_default_state' filepath='drivers/pinctrl/core.c' line='1588' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_pm_select_default_state'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pinctrl/core.c' line='1588' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_pm_select_idle_state' mangled-name='pinctrl_pm_select_idle_state' filepath='drivers/pinctrl/core.c' line='1611' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_pm_select_idle_state'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pinctrl/core.c' line='1611' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_pm_select_sleep_state' mangled-name='pinctrl_pm_select_sleep_state' filepath='drivers/pinctrl/core.c' line='1598' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_pm_select_sleep_state'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pinctrl/core.c' line='1598' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_put' mangled-name='pinctrl_put' filepath='drivers/pinctrl/core.c' line='1194' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_put'>
+        <parameter type-id='73ea90c5' name='p' filepath='drivers/pinctrl/core.c' line='1194' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pinctrl_register' mangled-name='pinctrl_register' filepath='drivers/pinctrl/core.c' line='2132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_register'>
+        <parameter type-id='d4682107' name='pctldesc' filepath='drivers/pinctrl/core.c' line='2132' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pinctrl/core.c' line='2133' column='1'/>
+        <parameter type-id='eaa32e2f' name='driver_data' filepath='drivers/pinctrl/core.c' line='2133' column='1'/>
+        <return type-id='10216dc5'/>
+      </function-decl>
+      <function-decl name='pinctrl_register_and_init' mangled-name='pinctrl_register_and_init' filepath='drivers/pinctrl/core.c' line='2160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_register_and_init'>
+        <parameter type-id='d4682107' name='pctldesc' filepath='drivers/pinctrl/core.c' line='2160' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pinctrl/core.c' line='2161' column='1'/>
+        <parameter type-id='eaa32e2f' name='driver_data' filepath='drivers/pinctrl/core.c' line='2161' column='1'/>
+        <parameter type-id='53a00f3d' name='pctldev' filepath='drivers/pinctrl/core.c' line='2162' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_remove_gpio_range' mangled-name='pinctrl_remove_gpio_range' filepath='drivers/pinctrl/core.c' line='509' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_remove_gpio_range'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/core.c' line='509' column='1'/>
+        <parameter type-id='e7faa6fb' name='range' filepath='drivers/pinctrl/core.c' line='510' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pinctrl_select_default_state' mangled-name='pinctrl_select_default_state' filepath='drivers/pinctrl/core.c' line='1573' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_select_default_state'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/pinctrl/core.c' line='1573' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_select_state' mangled-name='pinctrl_select_state' filepath='drivers/pinctrl/core.c' line='1341' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_select_state'>
+        <parameter type-id='73ea90c5' name='p' filepath='drivers/pinctrl/core.c' line='1341' column='1'/>
+        <parameter type-id='f418ceb3' name='state' filepath='drivers/pinctrl/core.c' line='1341' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_unregister' mangled-name='pinctrl_unregister' filepath='drivers/pinctrl/core.c' line='2188' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_unregister'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/core.c' line='2188' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pinctrl_utils_add_map_configs' mangled-name='pinctrl_utils_add_map_configs' filepath='drivers/pinctrl/pinctrl-utils.c' line='73' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_utils_add_map_configs'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/pinctrl-utils.c' line='73' column='1'/>
+        <parameter type-id='bf73010c' name='map' filepath='drivers/pinctrl/pinctrl-utils.c' line='74' column='1'/>
+        <parameter type-id='807869d3' name='reserved_maps' filepath='drivers/pinctrl/pinctrl-utils.c' line='74' column='1'/>
+        <parameter type-id='807869d3' name='num_maps' filepath='drivers/pinctrl/pinctrl-utils.c' line='75' column='1'/>
+        <parameter type-id='80f4b756' name='group' filepath='drivers/pinctrl/pinctrl-utils.c' line='75' column='1'/>
+        <parameter type-id='1d2c2b85' name='configs' filepath='drivers/pinctrl/pinctrl-utils.c' line='76' column='1'/>
+        <parameter type-id='f0981eeb' name='num_configs' filepath='drivers/pinctrl/pinctrl-utils.c' line='76' column='1'/>
+        <parameter type-id='95da6d1c' name='type' filepath='drivers/pinctrl/pinctrl-utils.c' line='77' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_utils_add_map_mux' mangled-name='pinctrl_utils_add_map_mux' filepath='drivers/pinctrl/pinctrl-utils.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_utils_add_map_mux'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/pinctrl-utils.c' line='56' column='1'/>
+        <parameter type-id='bf73010c' name='map' filepath='drivers/pinctrl/pinctrl-utils.c' line='57' column='1'/>
+        <parameter type-id='807869d3' name='reserved_maps' filepath='drivers/pinctrl/pinctrl-utils.c' line='57' column='1'/>
+        <parameter type-id='807869d3' name='num_maps' filepath='drivers/pinctrl/pinctrl-utils.c' line='58' column='1'/>
+        <parameter type-id='80f4b756' name='group' filepath='drivers/pinctrl/pinctrl-utils.c' line='58' column='1'/>
+        <parameter type-id='80f4b756' name='function' filepath='drivers/pinctrl/pinctrl-utils.c' line='59' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinctrl_utils_free_map' mangled-name='pinctrl_utils_free_map' filepath='drivers/pinctrl/pinctrl-utils.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_utils_free_map'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/pinctrl-utils.c' line='123' column='1'/>
+        <parameter type-id='9638d26e' name='map' filepath='drivers/pinctrl/pinctrl-utils.c' line='124' column='1'/>
+        <parameter type-id='f0981eeb' name='num_maps' filepath='drivers/pinctrl/pinctrl-utils.c' line='124' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pinctrl_utils_reserve_map' mangled-name='pinctrl_utils_reserve_map' filepath='drivers/pinctrl/pinctrl-utils.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinctrl_utils_reserve_map'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/pinctrl-utils.c' line='31' column='1'/>
+        <parameter type-id='bf73010c' name='map' filepath='drivers/pinctrl/pinctrl-utils.c' line='32' column='1'/>
+        <parameter type-id='807869d3' name='reserved_maps' filepath='drivers/pinctrl/pinctrl-utils.c' line='32' column='1'/>
+        <parameter type-id='807869d3' name='num_maps' filepath='drivers/pinctrl/pinctrl-utils.c' line='33' column='1'/>
+        <parameter type-id='f0981eeb' name='reserve' filepath='drivers/pinctrl/pinctrl-utils.c' line='33' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinmux_generic_add_function' mangled-name='pinmux_generic_add_function' filepath='drivers/pinctrl/pinmux.c' line='876' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinmux_generic_add_function'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/pinmux.c' line='876' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/pinctrl/pinmux.c' line='877' column='1'/>
+        <parameter type-id='7d3cd834' name='groups' filepath='drivers/pinctrl/pinmux.c' line='878' column='1'/>
+        <parameter type-id='20f5f452' name='num_groups' filepath='drivers/pinctrl/pinmux.c' line='879' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/pinctrl/pinmux.c' line='880' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinmux_generic_get_function' mangled-name='pinmux_generic_get_function' filepath='drivers/pinctrl/pinmux.c' line='854' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinmux_generic_get_function'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/pinmux.c' line='854' column='1'/>
+        <parameter type-id='f0981eeb' name='selector' filepath='drivers/pinctrl/pinmux.c' line='855' column='1'/>
+        <return type-id='d06ad2cb'/>
+      </function-decl>
+      <function-decl name='pinmux_generic_get_function_count' mangled-name='pinmux_generic_get_function_count' filepath='drivers/pinctrl/pinmux.c' line='795' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinmux_generic_get_function_count'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/pinmux.c' line='795' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinmux_generic_get_function_groups' mangled-name='pinmux_generic_get_function_groups' filepath='drivers/pinctrl/pinmux.c' line='828' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinmux_generic_get_function_groups'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/pinmux.c' line='828' column='1'/>
+        <parameter type-id='f0981eeb' name='selector' filepath='drivers/pinctrl/pinmux.c' line='829' column='1'/>
+        <parameter type-id='472eb409' name='groups' filepath='drivers/pinctrl/pinmux.c' line='830' column='1'/>
+        <parameter type-id='de9ce8e8' name='num_groups' filepath='drivers/pinctrl/pinmux.c' line='831' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pinmux_generic_get_function_name' mangled-name='pinmux_generic_get_function_name' filepath='drivers/pinctrl/pinmux.c' line='807' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinmux_generic_get_function_name'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/pinmux.c' line='807' column='1'/>
+        <parameter type-id='f0981eeb' name='selector' filepath='drivers/pinctrl/pinmux.c' line='808' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='pinmux_generic_remove_function' mangled-name='pinmux_generic_remove_function' filepath='drivers/pinctrl/pinmux.c' line='918' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pinmux_generic_remove_function'>
+        <parameter type-id='10216dc5' name='pctldev' filepath='drivers/pinctrl/pinmux.c' line='918' column='1'/>
+        <parameter type-id='f0981eeb' name='selector' filepath='drivers/pinctrl/pinmux.c' line='919' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pipe_lock' mangled-name='pipe_lock' filepath='fs/pipe.c' line='84' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pipe_lock'>
+        <parameter type-id='15d29710' name='pipe' filepath='fs/pipe.c' line='84' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pipe_unlock' mangled-name='pipe_unlock' filepath='fs/pipe.c' line='93' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pipe_unlock'>
+        <parameter type-id='15d29710' name='pipe' filepath='fs/pipe.c' line='93' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pktgen_xfrm_outer_mode_output' mangled-name='pktgen_xfrm_outer_mode_output' filepath='net/xfrm/xfrm_output.c' line='483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pktgen_xfrm_outer_mode_output'>
+        <parameter type-id='328dda6e' name='x' filepath='net/xfrm/xfrm_output.c' line='483' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/xfrm/xfrm_output.c' line='483' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pkvm_iommu_finalize' mangled-name='pkvm_iommu_finalize' filepath='arch/arm64/kvm/iommu.c' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pkvm_iommu_finalize'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pkvm_iommu_resume' mangled-name='pkvm_iommu_resume' filepath='arch/arm64/kvm/iommu.c' line='52' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pkvm_iommu_resume'>
+        <parameter type-id='fa0b179b' name='dev' filepath='arch/arm64/kvm/iommu.c' line='52' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pkvm_iommu_s2mpu_register' mangled-name='pkvm_iommu_s2mpu_register' filepath='arch/arm64/kvm/iommu/s2mpu.c' line='72' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pkvm_iommu_s2mpu_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='arch/arm64/kvm/iommu/s2mpu.c' line='72' column='1'/>
+        <parameter type-id='2522883d' name='addr' filepath='arch/arm64/kvm/iommu/s2mpu.c' line='72' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pkvm_iommu_suspend' mangled-name='pkvm_iommu_suspend' filepath='arch/arm64/kvm/iommu.c' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pkvm_iommu_suspend'>
+        <parameter type-id='fa0b179b' name='dev' filepath='arch/arm64/kvm/iommu.c' line='45' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pkvm_iommu_sysmmu_sync_register' mangled-name='pkvm_iommu_sysmmu_sync_register' filepath='arch/arm64/kvm/iommu/s2mpu.c' line='104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pkvm_iommu_sysmmu_sync_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='arch/arm64/kvm/iommu/s2mpu.c' line='104' column='1'/>
+        <parameter type-id='2522883d' name='addr' filepath='arch/arm64/kvm/iommu/s2mpu.c' line='104' column='1'/>
+        <parameter type-id='fa0b179b' name='parent' filepath='arch/arm64/kvm/iommu/s2mpu.c' line='105' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='platform_bus' type-id='66e487eb' mangled-name='platform_bus' visibility='default' filepath='drivers/base/platform.c' line='40' column='1' elf-symbol-id='platform_bus'/>
+      <var-decl name='platform_bus_type' type-id='b31bfc8a' mangled-name='platform_bus_type' visibility='default' filepath='drivers/base/platform.c' line='1474' column='1' elf-symbol-id='platform_bus_type'/>
+      <function-decl name='platform_device_add' mangled-name='platform_device_add' filepath='drivers/base/platform.c' line='651' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_device_add'>
+        <parameter type-id='db362995' name='pdev' filepath='drivers/base/platform.c' line='651' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='platform_device_add_data' mangled-name='platform_device_add_data' filepath='drivers/base/platform.c' line='627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_device_add_data'>
+        <parameter type-id='db362995' name='pdev' filepath='drivers/base/platform.c' line='627' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/platform.c' line='627' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/base/platform.c' line='628' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='platform_device_add_resources' mangled-name='platform_device_add_resources' filepath='drivers/base/platform.c' line='599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_device_add_resources'>
+        <parameter type-id='db362995' name='pdev' filepath='drivers/base/platform.c' line='599' column='1'/>
+        <parameter type-id='e153f6de' name='res' filepath='drivers/base/platform.c' line='600' column='1'/>
+        <parameter type-id='f0981eeb' name='num' filepath='drivers/base/platform.c' line='600' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='platform_device_alloc' mangled-name='platform_device_alloc' filepath='drivers/base/platform.c' line='571' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_device_alloc'>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/base/platform.c' line='571' column='1'/>
+        <parameter type-id='95e97e5e' name='id' filepath='drivers/base/platform.c' line='571' column='1'/>
+        <return type-id='db362995'/>
+      </function-decl>
+      <function-decl name='platform_device_del' mangled-name='platform_device_del' filepath='drivers/base/platform.c' line='741' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_device_del'>
+        <parameter type-id='db362995' name='pdev' filepath='drivers/base/platform.c' line='741' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='platform_device_put' mangled-name='platform_device_put' filepath='drivers/base/platform.c' line='543' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_device_put'>
+        <parameter type-id='db362995' name='pdev' filepath='drivers/base/platform.c' line='543' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='platform_device_register' mangled-name='platform_device_register' filepath='drivers/base/platform.c' line='766' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_device_register'>
+        <parameter type-id='db362995' name='pdev' filepath='drivers/base/platform.c' line='766' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='platform_device_register_full' mangled-name='platform_device_register_full' filepath='drivers/base/platform.c' line='797' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_device_register_full'>
+        <parameter type-id='91d6c443' name='pdevinfo' filepath='drivers/base/platform.c' line='798' column='1'/>
+        <return type-id='db362995'/>
+      </function-decl>
+      <function-decl name='platform_device_unregister' mangled-name='platform_device_unregister' filepath='drivers/base/platform.c' line='782' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_device_unregister'>
+        <parameter type-id='db362995' name='pdev' filepath='drivers/base/platform.c' line='782' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='platform_driver_unregister' mangled-name='platform_driver_unregister' filepath='drivers/base/platform.c' line='866' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_driver_unregister'>
+        <parameter type-id='d53c2eb5' name='drv' filepath='drivers/base/platform.c' line='866' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='platform_find_device_by_driver' mangled-name='platform_find_device_by_driver' filepath='drivers/base/platform.c' line='1498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_find_device_by_driver'>
+        <parameter type-id='fa0b179b' name='start' filepath='drivers/base/platform.c' line='1498' column='1'/>
+        <parameter type-id='d5ddffb9' name='drv' filepath='drivers/base/platform.c' line='1499' column='1'/>
+        <return type-id='fa0b179b'/>
+      </function-decl>
+      <function-decl name='platform_get_irq' mangled-name='platform_get_irq' filepath='drivers/base/platform.c' line='256' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_get_irq'>
+        <parameter type-id='db362995' name='dev' filepath='drivers/base/platform.c' line='256' column='1'/>
+        <parameter type-id='f0981eeb' name='num' filepath='drivers/base/platform.c' line='256' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='platform_get_irq_byname' mangled-name='platform_get_irq_byname' filepath='drivers/base/platform.c' line='464' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_get_irq_byname'>
+        <parameter type-id='db362995' name='dev' filepath='drivers/base/platform.c' line='464' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/base/platform.c' line='464' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='platform_get_irq_byname_optional' mangled-name='platform_get_irq_byname_optional' filepath='drivers/base/platform.c' line='486' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_get_irq_byname_optional'>
+        <parameter type-id='db362995' name='dev' filepath='drivers/base/platform.c' line='486' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/base/platform.c' line='487' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='platform_get_irq_optional' mangled-name='platform_get_irq_optional' filepath='drivers/base/platform.c' line='169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_get_irq_optional'>
+        <parameter type-id='db362995' name='dev' filepath='drivers/base/platform.c' line='169' column='1'/>
+        <parameter type-id='f0981eeb' name='num' filepath='drivers/base/platform.c' line='169' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='platform_get_resource' mangled-name='platform_get_resource' filepath='drivers/base/platform.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_get_resource'>
+        <parameter type-id='db362995' name='dev' filepath='drivers/base/platform.c' line='53' column='1'/>
+        <parameter type-id='f0981eeb' name='type' filepath='drivers/base/platform.c' line='54' column='1'/>
+        <parameter type-id='f0981eeb' name='num' filepath='drivers/base/platform.c' line='54' column='1'/>
+        <return type-id='c9d64c0d'/>
+      </function-decl>
+      <function-decl name='platform_get_resource_byname' mangled-name='platform_get_resource_byname' filepath='drivers/base/platform.c' line='415' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_get_resource_byname'>
+        <parameter type-id='db362995' name='dev' filepath='drivers/base/platform.c' line='415' column='1'/>
+        <parameter type-id='f0981eeb' name='type' filepath='drivers/base/platform.c' line='416' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/base/platform.c' line='417' column='1'/>
+        <return type-id='c9d64c0d'/>
+      </function-decl>
+      <function-decl name='platform_irq_count' mangled-name='platform_irq_count' filepath='drivers/base/platform.c' line='274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_irq_count'>
+        <parameter type-id='db362995' name='dev' filepath='drivers/base/platform.c' line='274' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='platform_irqchip_probe' mangled-name='platform_irqchip_probe' filepath='drivers/irqchip/irqchip.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_irqchip_probe'>
+        <parameter type-id='db362995' name='pdev' filepath='drivers/irqchip/irqchip.c' line='35' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='platform_msi_domain_alloc_irqs' mangled-name='platform_msi_domain_alloc_irqs' filepath='drivers/base/platform-msi.c' line='258' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_msi_domain_alloc_irqs'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/platform-msi.c' line='258' column='1'/>
+        <parameter type-id='f0981eeb' name='nvec' filepath='drivers/base/platform-msi.c' line='258' column='1'/>
+        <parameter type-id='c335ba2b' name='write_msi_msg' filepath='drivers/base/platform-msi.c' line='259' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='platform_msi_domain_free_irqs' mangled-name='platform_msi_domain_free_irqs' filepath='drivers/base/platform-msi.c' line='299' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_msi_domain_free_irqs'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/platform-msi.c' line='299' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='platform_unregister_drivers' mangled-name='platform_unregister_drivers' filepath='drivers/base/platform.c' line='1056' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='platform_unregister_drivers'>
+        <parameter type-id='77e06080' name='drivers' filepath='drivers/base/platform.c' line='1056' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='drivers/base/platform.c' line='1057' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pm_clk_add' mangled-name='pm_clk_add' filepath='drivers/base/power/clock_ops.c' line='240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_clk_add'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/clock_ops.c' line='240' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/base/power/clock_ops.c' line='240' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_clk_add_clk' mangled-name='pm_clk_add_clk' filepath='drivers/base/power/clock_ops.c' line='256' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_clk_add_clk'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/clock_ops.c' line='256' column='1'/>
+        <parameter type-id='7d0bc0eb' name='clk' filepath='drivers/base/power/clock_ops.c' line='256' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_clk_create' mangled-name='pm_clk_create' filepath='drivers/base/power/clock_ops.c' line='480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_clk_create'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/clock_ops.c' line='480' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_clk_destroy' mangled-name='pm_clk_destroy' filepath='drivers/base/power/clock_ops.c' line='494' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_clk_destroy'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/clock_ops.c' line='494' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pm_clk_resume' mangled-name='pm_clk_resume' filepath='drivers/base/power/clock_ops.c' line='581' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_clk_resume'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/clock_ops.c' line='581' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_clk_suspend' mangled-name='pm_clk_suspend' filepath='drivers/base/power/clock_ops.c' line='543' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_clk_suspend'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/clock_ops.c' line='543' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_generic_resume' mangled-name='pm_generic_resume' filepath='drivers/base/power/generic_ops.c' line='241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_generic_resume'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/generic_ops.c' line='241' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_generic_runtime_resume' mangled-name='pm_generic_runtime_resume' filepath='drivers/base/power/generic_ops.c' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_generic_runtime_resume'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/generic_ops.c' line='39' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_generic_runtime_suspend' mangled-name='pm_generic_runtime_suspend' filepath='drivers/base/power/generic_ops.c' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_generic_runtime_suspend'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/generic_ops.c' line='20' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_generic_suspend' mangled-name='pm_generic_suspend' filepath='drivers/base/power/generic_ops.c' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_generic_suspend'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/generic_ops.c' line='97' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_genpd_add_device' mangled-name='pm_genpd_add_device' filepath='drivers/base/power/domain.c' line='1635' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_genpd_add_device'>
+        <parameter type-id='855e3679' name='genpd' filepath='drivers/base/power/domain.c' line='1635' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/domain.c' line='1635' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_genpd_add_subdomain' mangled-name='pm_genpd_add_subdomain' filepath='drivers/base/power/domain.c' line='1862' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_genpd_add_subdomain'>
+        <parameter type-id='855e3679' name='genpd' filepath='drivers/base/power/domain.c' line='1862' column='1'/>
+        <parameter type-id='855e3679' name='subdomain' filepath='drivers/base/power/domain.c' line='1863' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_genpd_init' mangled-name='pm_genpd_init' filepath='drivers/base/power/domain.c' line='1961' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_genpd_init'>
+        <parameter type-id='855e3679' name='genpd' filepath='drivers/base/power/domain.c' line='1961' column='1'/>
+        <parameter type-id='5db9bd89' name='gov' filepath='drivers/base/power/domain.c' line='1962' column='1'/>
+        <parameter type-id='b50a4934' name='is_off' filepath='drivers/base/power/domain.c' line='1962' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_genpd_remove' mangled-name='pm_genpd_remove' filepath='drivers/base/power/domain.c' line='2089' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_genpd_remove'>
+        <parameter type-id='855e3679' name='genpd' filepath='drivers/base/power/domain.c' line='2089' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_genpd_remove_device' mangled-name='pm_genpd_remove_device' filepath='drivers/base/power/domain.c' line='1696' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_genpd_remove_device'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/domain.c' line='1696' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_genpd_remove_subdomain' mangled-name='pm_genpd_remove_subdomain' filepath='drivers/base/power/domain.c' line='1880' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_genpd_remove_subdomain'>
+        <parameter type-id='855e3679' name='genpd' filepath='drivers/base/power/domain.c' line='1880' column='1'/>
+        <parameter type-id='855e3679' name='subdomain' filepath='drivers/base/power/domain.c' line='1881' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_get_active_wakeup_sources' mangled-name='pm_get_active_wakeup_sources' filepath='drivers/base/power/wakeup.c' line='880' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_get_active_wakeup_sources'>
+        <parameter type-id='26a90f95' name='pending_wakeup_source' filepath='drivers/base/power/wakeup.c' line='880' column='1'/>
+        <parameter type-id='b59d7dce' name='max' filepath='drivers/base/power/wakeup.c' line='880' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='pm_power_off' type-id='953b12f8' mangled-name='pm_power_off' visibility='default' filepath='arch/arm64/kernel/process.c' line='69' column='1' elf-symbol-id='pm_power_off'/>
+      <var-decl name='pm_power_off_prepare' type-id='953b12f8' mangled-name='pm_power_off_prepare' visibility='default' filepath='kernel/reboot.c' line='56' column='1' elf-symbol-id='pm_power_off_prepare'/>
+      <function-decl name='pm_print_active_wakeup_sources' mangled-name='pm_print_active_wakeup_sources' filepath='drivers/base/power/wakeup.c' line='911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_print_active_wakeup_sources'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pm_relax' mangled-name='pm_relax' filepath='drivers/base/power/wakeup.c' line='778' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_relax'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/wakeup.c' line='778' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pm_runtime_allow' mangled-name='pm_runtime_allow' filepath='drivers/base/power/runtime.c' line='1524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_runtime_allow'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/runtime.c' line='1524' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pm_runtime_autosuspend_expiration' mangled-name='pm_runtime_autosuspend_expiration' filepath='drivers/base/power/runtime.c' line='163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_runtime_autosuspend_expiration'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/runtime.c' line='163' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='pm_runtime_barrier' mangled-name='pm_runtime_barrier' filepath='drivers/base/power/runtime.c' line='1373' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_runtime_barrier'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/runtime.c' line='1373' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_runtime_enable' mangled-name='pm_runtime_enable' filepath='drivers/base/power/runtime.c' line='1451' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_runtime_enable'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/runtime.c' line='1451' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pm_runtime_forbid' mangled-name='pm_runtime_forbid' filepath='drivers/base/power/runtime.c' line='1503' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_runtime_forbid'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/runtime.c' line='1503' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pm_runtime_force_resume' mangled-name='pm_runtime_force_resume' filepath='drivers/base/power/runtime.c' line='1869' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_runtime_force_resume'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/runtime.c' line='1869' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_runtime_force_suspend' mangled-name='pm_runtime_force_suspend' filepath='drivers/base/power/runtime.c' line='1821' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_runtime_force_suspend'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/runtime.c' line='1821' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_runtime_get_if_active' mangled-name='pm_runtime_get_if_active' filepath='drivers/base/power/runtime.c' line='1165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_runtime_get_if_active'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/runtime.c' line='1165' column='1'/>
+        <parameter type-id='b50a4934' name='ign_usage_count' filepath='drivers/base/power/runtime.c' line='1165' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_runtime_irq_safe' mangled-name='pm_runtime_irq_safe' filepath='drivers/base/power/runtime.c' line='1570' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_runtime_irq_safe'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/runtime.c' line='1570' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pm_runtime_no_callbacks' mangled-name='pm_runtime_no_callbacks' filepath='drivers/base/power/runtime.c' line='1549' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_runtime_no_callbacks'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/runtime.c' line='1549' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pm_runtime_set_autosuspend_delay' mangled-name='pm_runtime_set_autosuspend_delay' filepath='drivers/base/power/runtime.c' line='1628' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_runtime_set_autosuspend_delay'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/runtime.c' line='1628' column='1'/>
+        <parameter type-id='95e97e5e' name='delay' filepath='drivers/base/power/runtime.c' line='1628' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pm_schedule_suspend' mangled-name='pm_schedule_suspend' filepath='drivers/base/power/runtime.c' line='1013' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_schedule_suspend'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/runtime.c' line='1013' column='1'/>
+        <parameter type-id='f0981eeb' name='delay' filepath='drivers/base/power/runtime.c' line='1013' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pm_stay_awake' mangled-name='pm_stay_awake' filepath='drivers/base/power/wakeup.c' line='669' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_stay_awake'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/wakeup.c' line='669' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pm_suspend_default_s2idle' mangled-name='pm_suspend_default_s2idle' filepath='kernel/power/suspend.c' line='71' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_suspend_default_s2idle'>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <var-decl name='pm_suspend_global_flags' type-id='f0981eeb' mangled-name='pm_suspend_global_flags' visibility='default' filepath='kernel/power/suspend.c' line='55' column='1' elf-symbol-id='pm_suspend_global_flags'/>
+      <var-decl name='pm_suspend_target_state' type-id='e884daa5' mangled-name='pm_suspend_target_state' visibility='default' filepath='kernel/power/suspend.c' line='52' column='1' elf-symbol-id='pm_suspend_target_state'/>
+      <function-decl name='pm_system_wakeup' mangled-name='pm_system_wakeup' filepath='drivers/base/power/wakeup.c' line='973' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_system_wakeup'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pm_wakeup_dev_event' mangled-name='pm_wakeup_dev_event' filepath='drivers/base/power/wakeup.c' line='867' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_wakeup_dev_event'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/wakeup.c' line='867' column='1'/>
+        <parameter type-id='f0981eeb' name='msec' filepath='drivers/base/power/wakeup.c' line='867' column='1'/>
+        <parameter type-id='b50a4934' name='hard' filepath='drivers/base/power/wakeup.c' line='867' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pm_wakeup_ws_event' mangled-name='pm_wakeup_ws_event' filepath='drivers/base/power/wakeup.c' line='828' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pm_wakeup_ws_event'>
+        <parameter type-id='1ea237a6' name='ws' filepath='drivers/base/power/wakeup.c' line='828' column='1'/>
+        <parameter type-id='f0981eeb' name='msec' filepath='drivers/base/power/wakeup.c' line='828' column='1'/>
+        <parameter type-id='b50a4934' name='hard' filepath='drivers/base/power/wakeup.c' line='828' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='pm_wq' type-id='242e3d19' mangled-name='pm_wq' visibility='default' filepath='kernel/power/main.c' line='934' column='1' elf-symbol-id='pm_wq'/>
+      <function-decl name='policy_has_boost_freq' mangled-name='policy_has_boost_freq' filepath='drivers/cpufreq/freq_table.c' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='policy_has_boost_freq'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/freq_table.c' line='18' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='poll_state_synchronize_rcu' mangled-name='poll_state_synchronize_rcu' filepath='kernel/rcu/tree.c' line='3859' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='poll_state_synchronize_rcu'>
+        <parameter type-id='7359adad' name='oldstate' filepath='kernel/rcu/tree.c' line='3859' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='poll_state_synchronize_srcu' mangled-name='poll_state_synchronize_srcu' filepath='kernel/rcu/srcutree.c' line='1075' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='poll_state_synchronize_srcu'>
+        <parameter type-id='f7d7131a' name='ssp' filepath='kernel/rcu/srcutree.c' line='1075' column='1'/>
+        <parameter type-id='7359adad' name='cookie' filepath='kernel/rcu/srcutree.c' line='1075' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <var-decl name='posix_acl_access_xattr_handler' type-id='e4f938dc' mangled-name='posix_acl_access_xattr_handler' visibility='default' filepath='fs/posix_acl.c' line='977' column='1' elf-symbol-id='posix_acl_access_xattr_handler'/>
+      <function-decl name='posix_acl_alloc' mangled-name='posix_acl_alloc' filepath='fs/posix_acl.c' line='189' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='posix_acl_alloc'>
+        <parameter type-id='95e97e5e' name='count' filepath='fs/posix_acl.c' line='189' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='fs/posix_acl.c' line='189' column='1'/>
+        <return type-id='2871909b'/>
+      </function-decl>
+      <function-decl name='posix_acl_chmod' mangled-name='posix_acl_chmod' filepath='fs/posix_acl.c' line='591' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='posix_acl_chmod'>
+        <parameter type-id='c0ced320' name='mnt_userns' filepath='fs/posix_acl.c' line='591' column='1'/>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/posix_acl.c' line='591' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/posix_acl.c' line='592' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='posix_acl_default_xattr_handler' type-id='e4f938dc' mangled-name='posix_acl_default_xattr_handler' visibility='default' filepath='fs/posix_acl.c' line='986' column='1' elf-symbol-id='posix_acl_default_xattr_handler'/>
+      <function-decl name='posix_acl_equiv_mode' mangled-name='posix_acl_equiv_mode' filepath='fs/posix_acl.c' line='291' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='posix_acl_equiv_mode'>
+        <parameter type-id='96d3e4ba' name='acl' filepath='fs/posix_acl.c' line='291' column='1'/>
+        <parameter type-id='c484cc9e' name='mode_p' filepath='fs/posix_acl.c' line='291' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='posix_acl_from_xattr' mangled-name='posix_acl_from_xattr' filepath='fs/posix_acl.c' line='796' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='posix_acl_from_xattr'>
+        <parameter type-id='c0ced320' name='user_ns' filepath='fs/posix_acl.c' line='796' column='1'/>
+        <parameter type-id='eaa32e2f' name='value' filepath='fs/posix_acl.c' line='797' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='fs/posix_acl.c' line='797' column='1'/>
+        <return type-id='2871909b'/>
+      </function-decl>
+      <function-decl name='power_supply_changed' mangled-name='power_supply_changed' filepath='drivers/power/supply/power_supply_core.c' line='121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='power_supply_changed'>
+        <parameter type-id='c0c93c9e' name='psy' filepath='drivers/power/supply/power_supply_core.c' line='121' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='power_supply_find_ocv2cap_table' mangled-name='power_supply_find_ocv2cap_table' filepath='drivers/power/supply/power_supply_core.c' line='938' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='power_supply_find_ocv2cap_table'>
+        <parameter type-id='78ba63ff' name='info' filepath='drivers/power/supply/power_supply_core.c' line='938' column='1'/>
+        <parameter type-id='95e97e5e' name='temp' filepath='drivers/power/supply/power_supply_core.c' line='939' column='1'/>
+        <parameter type-id='7292109c' name='table_len' filepath='drivers/power/supply/power_supply_core.c' line='939' column='1'/>
+        <return type-id='be6833bc'/>
+      </function-decl>
+      <function-decl name='power_supply_get_battery_info' mangled-name='power_supply_get_battery_info' filepath='drivers/power/supply/power_supply_core.c' line='652' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='power_supply_get_battery_info'>
+        <parameter type-id='c0c93c9e' name='psy' filepath='drivers/power/supply/power_supply_core.c' line='652' column='1'/>
+        <parameter type-id='78ba63ff' name='info' filepath='drivers/power/supply/power_supply_core.c' line='653' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='power_supply_get_by_name' mangled-name='power_supply_get_by_name' filepath='drivers/power/supply/power_supply_core.c' line='467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='power_supply_get_by_name'>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/power/supply/power_supply_core.c' line='467' column='1'/>
+        <return type-id='c0c93c9e'/>
+      </function-decl>
+      <function-decl name='power_supply_get_by_phandle' mangled-name='power_supply_get_by_phandle' filepath='drivers/power/supply/power_supply_core.c' line='516' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='power_supply_get_by_phandle'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/power/supply/power_supply_core.c' line='516' column='1'/>
+        <parameter type-id='80f4b756' name='property' filepath='drivers/power/supply/power_supply_core.c' line='517' column='1'/>
+        <return type-id='c0c93c9e'/>
+      </function-decl>
+      <function-decl name='power_supply_get_by_phandle_array' mangled-name='power_supply_get_by_phandle_array' filepath='drivers/power/supply/power_supply_core.c' line='583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='power_supply_get_by_phandle_array'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/power/supply/power_supply_core.c' line='583' column='1'/>
+        <parameter type-id='80f4b756' name='property' filepath='drivers/power/supply/power_supply_core.c' line='584' column='1'/>
+        <parameter type-id='30ca8f5c' name='psy' filepath='drivers/power/supply/power_supply_core.c' line='585' column='1'/>
+        <parameter type-id='79a0948f' name='size' filepath='drivers/power/supply/power_supply_core.c' line='586' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='power_supply_get_drvdata' mangled-name='power_supply_get_drvdata' filepath='drivers/power/supply/power_supply_core.c' line='1374' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='power_supply_get_drvdata'>
+        <parameter type-id='c0c93c9e' name='psy' filepath='drivers/power/supply/power_supply_core.c' line='1374' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='power_supply_get_property' mangled-name='power_supply_get_property' filepath='drivers/power/supply/power_supply_core.c' line='979' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='power_supply_get_property'>
+        <parameter type-id='c0c93c9e' name='psy' filepath='drivers/power/supply/power_supply_core.c' line='979' column='1'/>
+        <parameter type-id='5f78aa17' name='psp' filepath='drivers/power/supply/power_supply_core.c' line='980' column='1'/>
+        <parameter type-id='2e53d20f' name='val' filepath='drivers/power/supply/power_supply_core.c' line='981' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='power_supply_is_system_supplied' mangled-name='power_supply_is_system_supplied' filepath='drivers/power/supply/power_supply_core.c' line='372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='power_supply_is_system_supplied'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='power_supply_ocv2cap_simple' mangled-name='power_supply_ocv2cap_simple' filepath='drivers/power/supply/power_supply_core.c' line='913' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='power_supply_ocv2cap_simple'>
+        <parameter type-id='be6833bc' name='table' filepath='drivers/power/supply/power_supply_core.c' line='913' column='1'/>
+        <parameter type-id='95e97e5e' name='table_len' filepath='drivers/power/supply/power_supply_core.c' line='914' column='1'/>
+        <parameter type-id='95e97e5e' name='ocv' filepath='drivers/power/supply/power_supply_core.c' line='914' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='power_supply_powers' mangled-name='power_supply_powers' filepath='drivers/power/supply/power_supply_core.c' line='1025' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='power_supply_powers'>
+        <parameter type-id='c0c93c9e' name='psy' filepath='drivers/power/supply/power_supply_core.c' line='1025' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/power/supply/power_supply_core.c' line='1025' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='power_supply_put' mangled-name='power_supply_put' filepath='drivers/power/supply/power_supply_core.c' line='489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='power_supply_put'>
+        <parameter type-id='c0c93c9e' name='psy' filepath='drivers/power/supply/power_supply_core.c' line='489' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='power_supply_put_battery_info' mangled-name='power_supply_put_battery_info' filepath='drivers/power/supply/power_supply_core.c' line='846' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='power_supply_put_battery_info'>
+        <parameter type-id='c0c93c9e' name='psy' filepath='drivers/power/supply/power_supply_core.c' line='846' column='1'/>
+        <parameter type-id='78ba63ff' name='info' filepath='drivers/power/supply/power_supply_core.c' line='847' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='power_supply_reg_notifier' mangled-name='power_supply_reg_notifier' filepath='drivers/power/supply/power_supply_core.c' line='1038' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='power_supply_reg_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/power/supply/power_supply_core.c' line='1038' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='power_supply_register' mangled-name='power_supply_register' filepath='drivers/power/supply/power_supply_core.c' line='1242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='power_supply_register'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/power/supply/power_supply_core.c' line='1242' column='1'/>
+        <parameter type-id='cb9cd99f' name='desc' filepath='drivers/power/supply/power_supply_core.c' line='1243' column='1'/>
+        <parameter type-id='048b3ad6' name='cfg' filepath='drivers/power/supply/power_supply_core.c' line='1244' column='1'/>
+        <return type-id='c0c93c9e'/>
+      </function-decl>
+      <function-decl name='power_supply_set_property' mangled-name='power_supply_set_property' filepath='drivers/power/supply/power_supply_core.c' line='993' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='power_supply_set_property'>
+        <parameter type-id='c0c93c9e' name='psy' filepath='drivers/power/supply/power_supply_core.c' line='993' column='1'/>
+        <parameter type-id='5f78aa17' name='psp' filepath='drivers/power/supply/power_supply_core.c' line='994' column='1'/>
+        <parameter type-id='f3abafd4' name='val' filepath='drivers/power/supply/power_supply_core.c' line='995' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='power_supply_temp2resist_simple' mangled-name='power_supply_temp2resist_simple' filepath='drivers/power/supply/power_supply_core.c' line='875' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='power_supply_temp2resist_simple'>
+        <parameter type-id='1fba25e2' name='table' filepath='drivers/power/supply/power_supply_core.c' line='875' column='1'/>
+        <parameter type-id='95e97e5e' name='table_len' filepath='drivers/power/supply/power_supply_core.c' line='876' column='1'/>
+        <parameter type-id='95e97e5e' name='temp' filepath='drivers/power/supply/power_supply_core.c' line='876' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='power_supply_unreg_notifier' mangled-name='power_supply_unreg_notifier' filepath='drivers/power/supply/power_supply_core.c' line='1044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='power_supply_unreg_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/power/supply/power_supply_core.c' line='1044' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='power_supply_unregister' mangled-name='power_supply_unregister' filepath='drivers/power/supply/power_supply_core.c' line='1359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='power_supply_unregister'>
+        <parameter type-id='c0c93c9e' name='psy' filepath='drivers/power/supply/power_supply_core.c' line='1359' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='powercap_register_control_type' mangled-name='powercap_register_control_type' filepath='drivers/powercap/powercap_sys.c' line='603' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='powercap_register_control_type'>
+        <parameter type-id='89df2ee9' name='control_type' filepath='drivers/powercap/powercap_sys.c' line='604' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/powercap/powercap_sys.c' line='605' column='1'/>
+        <parameter type-id='3e221989' name='ops' filepath='drivers/powercap/powercap_sys.c' line='606' column='1'/>
+        <return type-id='89df2ee9'/>
+      </function-decl>
+      <function-decl name='powercap_register_zone' mangled-name='powercap_register_zone' filepath='drivers/powercap/powercap_sys.c' line='481' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='powercap_register_zone'>
+        <parameter type-id='2cb4dc09' name='power_zone' filepath='drivers/powercap/powercap_sys.c' line='482' column='1'/>
+        <parameter type-id='89df2ee9' name='control_type' filepath='drivers/powercap/powercap_sys.c' line='483' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/powercap/powercap_sys.c' line='484' column='1'/>
+        <parameter type-id='2cb4dc09' name='parent' filepath='drivers/powercap/powercap_sys.c' line='485' column='1'/>
+        <parameter type-id='21710b39' name='ops' filepath='drivers/powercap/powercap_sys.c' line='486' column='1'/>
+        <parameter type-id='95e97e5e' name='nr_constraints' filepath='drivers/powercap/powercap_sys.c' line='487' column='1'/>
+        <parameter type-id='b0d746a7' name='const_ops' filepath='drivers/powercap/powercap_sys.c' line='488' column='1'/>
+        <return type-id='2cb4dc09'/>
+      </function-decl>
+      <function-decl name='powercap_unregister_control_type' mangled-name='powercap_unregister_control_type' filepath='drivers/powercap/powercap_sys.c' line='643' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='powercap_unregister_control_type'>
+        <parameter type-id='89df2ee9' name='control_type' filepath='drivers/powercap/powercap_sys.c' line='643' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='powercap_unregister_zone' mangled-name='powercap_unregister_zone' filepath='drivers/powercap/powercap_sys.c' line='587' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='powercap_unregister_zone'>
+        <parameter type-id='89df2ee9' name='control_type' filepath='drivers/powercap/powercap_sys.c' line='587' column='1'/>
+        <parameter type-id='2cb4dc09' name='power_zone' filepath='drivers/powercap/powercap_sys.c' line='588' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ppp_channel_index' mangled-name='ppp_channel_index' filepath='drivers/net/ppp/ppp_generic.c' line='2912' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ppp_channel_index'>
+        <parameter type-id='b8e94b0b' name='chan' filepath='drivers/net/ppp/ppp_generic.c' line='2912' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ppp_dev_name' mangled-name='ppp_dev_name' filepath='drivers/net/ppp/ppp_generic.c' line='2941' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ppp_dev_name'>
+        <parameter type-id='b8e94b0b' name='chan' filepath='drivers/net/ppp/ppp_generic.c' line='2941' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='ppp_input' mangled-name='ppp_input' filepath='drivers/net/ppp/ppp_generic.c' line='2277' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ppp_input'>
+        <parameter type-id='b8e94b0b' name='chan' filepath='drivers/net/ppp/ppp_generic.c' line='2277' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='drivers/net/ppp/ppp_generic.c' line='2277' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ppp_input_error' mangled-name='ppp_input_error' filepath='drivers/net/ppp/ppp_generic.c' line='2320' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ppp_input_error'>
+        <parameter type-id='b8e94b0b' name='chan' filepath='drivers/net/ppp/ppp_generic.c' line='2320' column='1'/>
+        <parameter type-id='95e97e5e' name='code' filepath='drivers/net/ppp/ppp_generic.c' line='2320' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ppp_output_wakeup' mangled-name='ppp_output_wakeup' filepath='drivers/net/ppp/ppp_generic.c' line='3001' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ppp_output_wakeup'>
+        <parameter type-id='b8e94b0b' name='chan' filepath='drivers/net/ppp/ppp_generic.c' line='3001' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ppp_register_channel' mangled-name='ppp_register_channel' filepath='drivers/net/ppp/ppp_generic.c' line='2870' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ppp_register_channel'>
+        <parameter type-id='b8e94b0b' name='chan' filepath='drivers/net/ppp/ppp_generic.c' line='2870' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ppp_register_compressor' mangled-name='ppp_register_compressor' filepath='drivers/net/ppp/ppp_generic.c' line='3220' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ppp_register_compressor'>
+        <parameter type-id='a3e624c2' name='cp' filepath='drivers/net/ppp/ppp_generic.c' line='3220' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ppp_register_net_channel' mangled-name='ppp_register_net_channel' filepath='drivers/net/ppp/ppp_generic.c' line='2876' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ppp_register_net_channel'>
+        <parameter type-id='a2bff676' name='net' filepath='drivers/net/ppp/ppp_generic.c' line='2876' column='1'/>
+        <parameter type-id='b8e94b0b' name='chan' filepath='drivers/net/ppp/ppp_generic.c' line='2876' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ppp_unit_number' mangled-name='ppp_unit_number' filepath='drivers/net/ppp/ppp_generic.c' line='2924' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ppp_unit_number'>
+        <parameter type-id='b8e94b0b' name='chan' filepath='drivers/net/ppp/ppp_generic.c' line='2924' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ppp_unregister_channel' mangled-name='ppp_unregister_channel' filepath='drivers/net/ppp/ppp_generic.c' line='2961' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ppp_unregister_channel'>
+        <parameter type-id='b8e94b0b' name='chan' filepath='drivers/net/ppp/ppp_generic.c' line='2961' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ppp_unregister_compressor' mangled-name='ppp_unregister_compressor' filepath='drivers/net/ppp/ppp_generic.c' line='3242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ppp_unregister_compressor'>
+        <parameter type-id='a3e624c2' name='cp' filepath='drivers/net/ppp/ppp_generic.c' line='3242' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pppox_compat_ioctl' mangled-name='pppox_compat_ioctl' filepath='drivers/net/ppp/pppox.c' line='103' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pppox_compat_ioctl'>
+        <parameter type-id='13103032' name='sock' filepath='drivers/net/ppp/pppox.c' line='103' column='1'/>
+        <parameter type-id='f0981eeb' name='cmd' filepath='drivers/net/ppp/pppox.c' line='103' column='1'/>
+        <parameter type-id='7359adad' name='arg' filepath='drivers/net/ppp/pppox.c' line='103' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pppox_ioctl' mangled-name='pppox_ioctl' filepath='drivers/net/ppp/pppox.c' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pppox_ioctl'>
+        <parameter type-id='13103032' name='sock' filepath='drivers/net/ppp/pppox.c' line='67' column='1'/>
+        <parameter type-id='f0981eeb' name='cmd' filepath='drivers/net/ppp/pppox.c' line='67' column='1'/>
+        <parameter type-id='7359adad' name='arg' filepath='drivers/net/ppp/pppox.c' line='67' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pppox_unbind_sock' mangled-name='pppox_unbind_sock' filepath='drivers/net/ppp/pppox.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pppox_unbind_sock'>
+        <parameter type-id='f772df6d' name='sk' filepath='drivers/net/ppp/pppox.c' line='53' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pps_event' mangled-name='pps_event' filepath='drivers/pps/kapi.c' line='159' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pps_event'>
+        <parameter type-id='587a9d8d' name='pps' filepath='drivers/pps/kapi.c' line='159' column='1'/>
+        <parameter type-id='3331b9af' name='ts' filepath='drivers/pps/kapi.c' line='159' column='1'/>
+        <parameter type-id='95e97e5e' name='event' filepath='drivers/pps/kapi.c' line='159' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/pps/kapi.c' line='160' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pps_register_source' mangled-name='pps_register_source' filepath='drivers/pps/kapi.c' line='65' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pps_register_source'>
+        <parameter type-id='2c4b1613' name='info' filepath='drivers/pps/kapi.c' line='65' column='1'/>
+        <parameter type-id='95e97e5e' name='default_params' filepath='drivers/pps/kapi.c' line='66' column='1'/>
+        <return type-id='587a9d8d'/>
+      </function-decl>
+      <function-decl name='pps_unregister_source' mangled-name='pps_unregister_source' filepath='drivers/pps/kapi.c' line='136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pps_unregister_source'>
+        <parameter type-id='587a9d8d' name='pps' filepath='drivers/pps/kapi.c' line='136' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='prandom_bytes' mangled-name='prandom_bytes' filepath='lib/random32.c' line='400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='prandom_bytes'>
+        <parameter type-id='eaa32e2f' name='buf' filepath='lib/random32.c' line='400' column='1'/>
+        <parameter type-id='b59d7dce' name='bytes' filepath='lib/random32.c' line='400' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='prandom_u32' mangled-name='prandom_u32' filepath='lib/random32.c' line='385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='prandom_u32'>
+        <return type-id='19c2251e'/>
+      </function-decl>
+      <function-decl name='preempt_schedule' mangled-name='preempt_schedule' filepath='kernel/sched/core.c' line='6698' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='preempt_schedule'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='preempt_schedule_notrace' mangled-name='preempt_schedule_notrace' filepath='kernel/sched/core.c' line='6732' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='preempt_schedule_notrace'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='prepare_kernel_cred' mangled-name='prepare_kernel_cred' filepath='kernel/cred.c' line='718' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='prepare_kernel_cred'>
+        <parameter type-id='f23e2572' name='daemon' filepath='kernel/cred.c' line='718' column='1'/>
+        <return type-id='10cfb911'/>
+      </function-decl>
+      <function-decl name='prepare_to_wait' mangled-name='prepare_to_wait' filepath='kernel/sched/wait.c' line='265' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='prepare_to_wait'>
+        <parameter type-id='3f8b2ed3' name='wq_head' filepath='kernel/sched/wait.c' line='265' column='1'/>
+        <parameter type-id='db9d03e3' name='wq_entry' filepath='kernel/sched/wait.c' line='265' column='1'/>
+        <parameter type-id='95e97e5e' name='state' filepath='kernel/sched/wait.c' line='265' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='prepare_to_wait_event' mangled-name='prepare_to_wait_event' filepath='kernel/sched/wait.c' line='306' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='prepare_to_wait_event'>
+        <parameter type-id='3f8b2ed3' name='wq_head' filepath='kernel/sched/wait.c' line='306' column='1'/>
+        <parameter type-id='db9d03e3' name='wq_entry' filepath='kernel/sched/wait.c' line='306' column='1'/>
+        <parameter type-id='95e97e5e' name='state' filepath='kernel/sched/wait.c' line='306' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='prepare_to_wait_exclusive' mangled-name='prepare_to_wait_exclusive' filepath='kernel/sched/wait.c' line='280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='prepare_to_wait_exclusive'>
+        <parameter type-id='3f8b2ed3' name='wq_head' filepath='kernel/sched/wait.c' line='280' column='1'/>
+        <parameter type-id='db9d03e3' name='wq_entry' filepath='kernel/sched/wait.c' line='280' column='1'/>
+        <parameter type-id='95e97e5e' name='state' filepath='kernel/sched/wait.c' line='280' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='print_hex_dump' mangled-name='print_hex_dump' filepath='lib/hexdump.c' line='269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='print_hex_dump'>
+        <parameter type-id='80f4b756' name='level' filepath='lib/hexdump.c' line='269' column='1'/>
+        <parameter type-id='80f4b756' name='prefix_str' filepath='lib/hexdump.c' line='269' column='1'/>
+        <parameter type-id='95e97e5e' name='prefix_type' filepath='lib/hexdump.c' line='269' column='1'/>
+        <parameter type-id='95e97e5e' name='rowsize' filepath='lib/hexdump.c' line='270' column='1'/>
+        <parameter type-id='95e97e5e' name='groupsize' filepath='lib/hexdump.c' line='270' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='lib/hexdump.c' line='271' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='lib/hexdump.c' line='271' column='1'/>
+        <parameter type-id='b50a4934' name='ascii' filepath='lib/hexdump.c' line='271' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='printk_timed_ratelimit' mangled-name='printk_timed_ratelimit' filepath='kernel/printk/printk.c' line='3371' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='printk_timed_ratelimit'>
+        <parameter type-id='1d2c2b85' name='caller_jiffies' filepath='kernel/printk/printk.c' line='3371' column='1'/>
+        <parameter type-id='f0981eeb' name='interval_msecs' filepath='kernel/printk/printk.c' line='3372' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='proc_create' mangled-name='proc_create' filepath='fs/proc/generic.c' line='582' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='proc_create'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/proc/generic.c' line='582' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/proc/generic.c' line='582' column='1'/>
+        <parameter type-id='d077e928' name='parent' filepath='fs/proc/generic.c' line='583' column='1'/>
+        <parameter type-id='33d70f0f' name='proc_ops' filepath='fs/proc/generic.c' line='584' column='1'/>
+        <return type-id='d077e928'/>
+      </function-decl>
+      <function-decl name='proc_create_data' mangled-name='proc_create_data' filepath='fs/proc/generic.c' line='567' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='proc_create_data'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/proc/generic.c' line='567' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/proc/generic.c' line='567' column='1'/>
+        <parameter type-id='d077e928' name='parent' filepath='fs/proc/generic.c' line='568' column='1'/>
+        <parameter type-id='33d70f0f' name='proc_ops' filepath='fs/proc/generic.c' line='569' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='fs/proc/generic.c' line='569' column='1'/>
+        <return type-id='d077e928'/>
+      </function-decl>
+      <function-decl name='proc_create_net_data' mangled-name='proc_create_net_data' filepath='fs/proc/proc_net.c' line='104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='proc_create_net_data'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/proc/proc_net.c' line='104' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/proc/proc_net.c' line='104' column='1'/>
+        <parameter type-id='d077e928' name='parent' filepath='fs/proc/proc_net.c' line='105' column='1'/>
+        <parameter type-id='943a1b48' name='ops' filepath='fs/proc/proc_net.c' line='105' column='1'/>
+        <parameter type-id='f0981eeb' name='state_size' filepath='fs/proc/proc_net.c' line='106' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='fs/proc/proc_net.c' line='106' column='1'/>
+        <return type-id='d077e928'/>
+      </function-decl>
+      <function-decl name='proc_create_seq_private' mangled-name='proc_create_seq_private' filepath='fs/proc/generic.c' line='616' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='proc_create_seq_private'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/proc/generic.c' line='616' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/proc/generic.c' line='616' column='1'/>
+        <parameter type-id='d077e928' name='parent' filepath='fs/proc/generic.c' line='617' column='1'/>
+        <parameter type-id='943a1b48' name='ops' filepath='fs/proc/generic.c' line='617' column='1'/>
+        <parameter type-id='f0981eeb' name='state_size' filepath='fs/proc/generic.c' line='618' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='fs/proc/generic.c' line='618' column='1'/>
+        <return type-id='d077e928'/>
+      </function-decl>
+      <function-decl name='proc_create_single_data' mangled-name='proc_create_single_data' filepath='fs/proc/generic.c' line='647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='proc_create_single_data'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/proc/generic.c' line='647' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/proc/generic.c' line='647' column='1'/>
+        <parameter type-id='d077e928' name='parent' filepath='fs/proc/generic.c' line='648' column='1'/>
+        <parameter type-id='0131eb61' name='show' filepath='fs/proc/generic.c' line='649' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='fs/proc/generic.c' line='649' column='1'/>
+        <return type-id='d077e928'/>
+      </function-decl>
+      <function-decl name='proc_dointvec' mangled-name='proc_dointvec' filepath='kernel/sysctl.c' line='850' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='proc_dointvec'>
+        <parameter type-id='631dc3c1' name='table' filepath='kernel/sysctl.c' line='850' column='1'/>
+        <parameter type-id='95e97e5e' name='write' filepath='kernel/sysctl.c' line='850' column='1'/>
+        <parameter type-id='eaa32e2f' name='buffer' filepath='kernel/sysctl.c' line='850' column='1'/>
+        <parameter type-id='78c01427' name='lenp' filepath='kernel/sysctl.c' line='851' column='1'/>
+        <parameter type-id='b53e8dbb' name='ppos' filepath='kernel/sysctl.c' line='851' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='proc_dointvec_minmax' mangled-name='proc_dointvec_minmax' filepath='kernel/sysctl.c' line='1007' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='proc_dointvec_minmax'>
+        <parameter type-id='631dc3c1' name='table' filepath='kernel/sysctl.c' line='1007' column='1'/>
+        <parameter type-id='95e97e5e' name='write' filepath='kernel/sysctl.c' line='1007' column='1'/>
+        <parameter type-id='eaa32e2f' name='buffer' filepath='kernel/sysctl.c' line='1008' column='1'/>
+        <parameter type-id='78c01427' name='lenp' filepath='kernel/sysctl.c' line='1008' column='1'/>
+        <parameter type-id='b53e8dbb' name='ppos' filepath='kernel/sysctl.c' line='1008' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='proc_dostring' mangled-name='proc_dostring' filepath='kernel/sysctl.c' line='372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='proc_dostring'>
+        <parameter type-id='631dc3c1' name='table' filepath='kernel/sysctl.c' line='372' column='1'/>
+        <parameter type-id='95e97e5e' name='write' filepath='kernel/sysctl.c' line='372' column='1'/>
+        <parameter type-id='eaa32e2f' name='buffer' filepath='kernel/sysctl.c' line='373' column='1'/>
+        <parameter type-id='78c01427' name='lenp' filepath='kernel/sysctl.c' line='373' column='1'/>
+        <parameter type-id='b53e8dbb' name='ppos' filepath='kernel/sysctl.c' line='373' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='proc_douintvec_minmax' mangled-name='proc_douintvec_minmax' filepath='kernel/sysctl.c' line='1076' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='proc_douintvec_minmax'>
+        <parameter type-id='631dc3c1' name='table' filepath='kernel/sysctl.c' line='1076' column='1'/>
+        <parameter type-id='95e97e5e' name='write' filepath='kernel/sysctl.c' line='1076' column='1'/>
+        <parameter type-id='eaa32e2f' name='buffer' filepath='kernel/sysctl.c' line='1077' column='1'/>
+        <parameter type-id='78c01427' name='lenp' filepath='kernel/sysctl.c' line='1077' column='1'/>
+        <parameter type-id='b53e8dbb' name='ppos' filepath='kernel/sysctl.c' line='1077' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='proc_get_parent_data' mangled-name='proc_get_parent_data' filepath='fs/proc/generic.c' line='783' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='proc_get_parent_data'>
+        <parameter type-id='c5a4eb7f' name='inode' filepath='fs/proc/generic.c' line='783' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='proc_mkdir' mangled-name='proc_mkdir' filepath='fs/proc/generic.c' line='518' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='proc_mkdir'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/proc/generic.c' line='518' column='1'/>
+        <parameter type-id='d077e928' name='parent' filepath='fs/proc/generic.c' line='519' column='1'/>
+        <return type-id='d077e928'/>
+      </function-decl>
+      <function-decl name='proc_mkdir_data' mangled-name='proc_mkdir_data' filepath='fs/proc/generic.c' line='504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='proc_mkdir_data'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/proc/generic.c' line='504' column='1'/>
+        <parameter type-id='2594b00f' name='mode' filepath='fs/proc/generic.c' line='504' column='1'/>
+        <parameter type-id='d077e928' name='parent' filepath='fs/proc/generic.c' line='505' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='fs/proc/generic.c' line='505' column='1'/>
+        <return type-id='d077e928'/>
+      </function-decl>
+      <function-decl name='proc_remove' mangled-name='proc_remove' filepath='fs/proc/generic.c' line='790' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='proc_remove'>
+        <parameter type-id='d077e928' name='de' filepath='fs/proc/generic.c' line='790' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='proc_set_size' mangled-name='proc_set_size' filepath='fs/proc/generic.c' line='662' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='proc_set_size'>
+        <parameter type-id='d077e928' name='de' filepath='fs/proc/generic.c' line='662' column='1'/>
+        <parameter type-id='69bf7bee' name='size' filepath='fs/proc/generic.c' line='662' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='proc_set_user' mangled-name='proc_set_user' filepath='fs/proc/generic.c' line='668' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='proc_set_user'>
+        <parameter type-id='d077e928' name='de' filepath='fs/proc/generic.c' line='668' column='1'/>
+        <parameter type-id='d80b72e6' name='uid' filepath='fs/proc/generic.c' line='668' column='1'/>
+        <parameter type-id='094d8048' name='gid' filepath='fs/proc/generic.c' line='668' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='proc_symlink' mangled-name='proc_symlink' filepath='fs/proc/generic.c' line='459' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='proc_symlink'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/proc/generic.c' line='459' column='1'/>
+        <parameter type-id='d077e928' name='parent' filepath='fs/proc/generic.c' line='460' column='1'/>
+        <parameter type-id='80f4b756' name='dest' filepath='fs/proc/generic.c' line='460' column='1'/>
+        <return type-id='d077e928'/>
+      </function-decl>
+      <function-decl name='proto_register' mangled-name='proto_register' filepath='net/core/sock.c' line='3666' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='proto_register'>
+        <parameter type-id='d2524501' name='prot' filepath='net/core/sock.c' line='3666' column='1'/>
+        <parameter type-id='95e97e5e' name='alloc_slab' filepath='net/core/sock.c' line='3666' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='proto_unregister' mangled-name='proto_unregister' filepath='net/core/sock.c' line='3716' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='proto_unregister'>
+        <parameter type-id='d2524501' name='prot' filepath='net/core/sock.c' line='3716' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ps2_begin_command' mangled-name='ps2_begin_command' filepath='drivers/input/serio/libps2.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ps2_begin_command'>
+        <parameter type-id='e357ec39' name='ps2dev' filepath='drivers/input/serio/libps2.c' line='101' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ps2_cmd_aborted' mangled-name='ps2_cmd_aborted' filepath='drivers/input/serio/libps2.c' line='480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ps2_cmd_aborted'>
+        <parameter type-id='e357ec39' name='ps2dev' filepath='drivers/input/serio/libps2.c' line='480' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ps2_command' mangled-name='ps2_command' filepath='drivers/input/serio/libps2.c' line='327' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ps2_command'>
+        <parameter type-id='e357ec39' name='ps2dev' filepath='drivers/input/serio/libps2.c' line='327' column='1'/>
+        <parameter type-id='8bff8096' name='param' filepath='drivers/input/serio/libps2.c' line='327' column='1'/>
+        <parameter type-id='f0981eeb' name='command' filepath='drivers/input/serio/libps2.c' line='327' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ps2_drain' mangled-name='ps2_drain' filepath='drivers/input/serio/libps2.c' line='122' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ps2_drain'>
+        <parameter type-id='e357ec39' name='ps2dev' filepath='drivers/input/serio/libps2.c' line='122' column='1'/>
+        <parameter type-id='b59d7dce' name='maxbytes' filepath='drivers/input/serio/libps2.c' line='122' column='1'/>
+        <parameter type-id='f0981eeb' name='timeout' filepath='drivers/input/serio/libps2.c' line='122' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ps2_end_command' mangled-name='ps2_end_command' filepath='drivers/input/serio/libps2.c' line='109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ps2_end_command'>
+        <parameter type-id='e357ec39' name='ps2dev' filepath='drivers/input/serio/libps2.c' line='109' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ps2_handle_ack' mangled-name='ps2_handle_ack' filepath='drivers/input/serio/libps2.c' line='390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ps2_handle_ack'>
+        <parameter type-id='e357ec39' name='ps2dev' filepath='drivers/input/serio/libps2.c' line='390' column='1'/>
+        <parameter type-id='f9b06939' name='data' filepath='drivers/input/serio/libps2.c' line='390' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='ps2_handle_response' mangled-name='ps2_handle_response' filepath='drivers/input/serio/libps2.c' line='460' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ps2_handle_response'>
+        <parameter type-id='e357ec39' name='ps2dev' filepath='drivers/input/serio/libps2.c' line='460' column='1'/>
+        <parameter type-id='f9b06939' name='data' filepath='drivers/input/serio/libps2.c' line='460' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='ps2_init' mangled-name='ps2_init' filepath='drivers/input/serio/libps2.c' line='376' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ps2_init'>
+        <parameter type-id='e357ec39' name='ps2dev' filepath='drivers/input/serio/libps2.c' line='376' column='1'/>
+        <parameter type-id='95dc69d1' name='serio' filepath='drivers/input/serio/libps2.c' line='376' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ps2_sendbyte' mangled-name='ps2_sendbyte' filepath='drivers/input/serio/libps2.c' line='86' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ps2_sendbyte'>
+        <parameter type-id='e357ec39' name='ps2dev' filepath='drivers/input/serio/libps2.c' line='86' column='1'/>
+        <parameter type-id='f9b06939' name='byte' filepath='drivers/input/serio/libps2.c' line='86' column='1'/>
+        <parameter type-id='f0981eeb' name='timeout' filepath='drivers/input/serio/libps2.c' line='86' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ps2_sliced_command' mangled-name='ps2_sliced_command' filepath='drivers/input/serio/libps2.c' line='347' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ps2_sliced_command'>
+        <parameter type-id='e357ec39' name='ps2dev' filepath='drivers/input/serio/libps2.c' line='347' column='1'/>
+        <parameter type-id='f9b06939' name='command' filepath='drivers/input/serio/libps2.c' line='347' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='psi_system' type-id='12878ab3' mangled-name='psi_system' visibility='default' filepath='kernel/sched/psi.c' line='188' column='1' elf-symbol-id='psi_system'/>
+      <function-decl name='pskb_expand_head' mangled-name='pskb_expand_head' filepath='net/core/skbuff.c' line='1711' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pskb_expand_head'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='1711' column='1'/>
+        <parameter type-id='95e97e5e' name='nhead' filepath='net/core/skbuff.c' line='1711' column='1'/>
+        <parameter type-id='95e97e5e' name='ntail' filepath='net/core/skbuff.c' line='1711' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='net/core/skbuff.c' line='1712' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pskb_trim_rcsum_slow' mangled-name='pskb_trim_rcsum_slow' filepath='net/core/skbuff.c' line='2193' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pskb_trim_rcsum_slow'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='2193' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='net/core/skbuff.c' line='2193' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pstore_register' mangled-name='pstore_register' filepath='fs/pstore/platform.c' line='562' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pstore_register'>
+        <parameter type-id='54ec2a4d' name='psi' filepath='fs/pstore/platform.c' line='562' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pstore_unregister' mangled-name='pstore_unregister' filepath='fs/pstore/platform.c' line='629' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pstore_unregister'>
+        <parameter type-id='54ec2a4d' name='psi' filepath='fs/pstore/platform.c' line='629' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ptp_clock_event' mangled-name='ptp_clock_event' filepath='drivers/ptp/ptp_clock.c' line='352' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ptp_clock_event'>
+        <parameter type-id='bf6dbc08' name='ptp' filepath='drivers/ptp/ptp_clock.c' line='352' column='1'/>
+        <parameter type-id='3b42a26d' name='event' filepath='drivers/ptp/ptp_clock.c' line='352' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ptp_clock_index' mangled-name='ptp_clock_index' filepath='drivers/ptp/ptp_clock.c' line='379' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ptp_clock_index'>
+        <parameter type-id='bf6dbc08' name='ptp' filepath='drivers/ptp/ptp_clock.c' line='379' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ptp_clock_register' mangled-name='ptp_clock_register' filepath='drivers/ptp/ptp_clock.c' line='196' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ptp_clock_register'>
+        <parameter type-id='513f51db' name='info' filepath='drivers/ptp/ptp_clock.c' line='196' column='1'/>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/ptp/ptp_clock.c' line='197' column='1'/>
+        <return type-id='bf6dbc08'/>
+      </function-decl>
+      <function-decl name='ptp_clock_unregister' mangled-name='ptp_clock_unregister' filepath='drivers/ptp/ptp_clock.c' line='328' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ptp_clock_unregister'>
+        <parameter type-id='bf6dbc08' name='ptp' filepath='drivers/ptp/ptp_clock.c' line='328' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ptp_find_pin' mangled-name='ptp_find_pin' filepath='drivers/ptp/ptp_clock.c' line='385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ptp_find_pin'>
+        <parameter type-id='bf6dbc08' name='ptp' filepath='drivers/ptp/ptp_clock.c' line='385' column='1'/>
+        <parameter type-id='bddbbc91' name='func' filepath='drivers/ptp/ptp_clock.c' line='386' column='1'/>
+        <parameter type-id='f0981eeb' name='chan' filepath='drivers/ptp/ptp_clock.c' line='386' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='public_key_verify_signature' mangled-name='public_key_verify_signature' filepath='crypto/asymmetric_keys/public_key.c' line='377' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='public_key_verify_signature'>
+        <parameter type-id='217d2215' name='pkey' filepath='crypto/asymmetric_keys/public_key.c' line='377' column='1'/>
+        <parameter type-id='2a733fb2' name='sig' filepath='crypto/asymmetric_keys/public_key.c' line='378' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='put_device' mangled-name='put_device' filepath='drivers/base/core.c' line='3508' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='put_device'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='3508' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='put_disk' mangled-name='put_disk' filepath='block/genhd.c' line='1361' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='put_disk'>
+        <parameter type-id='33c599da' name='disk' filepath='block/genhd.c' line='1361' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='put_iova_domain' mangled-name='put_iova_domain' filepath='drivers/iommu/iova.c' line='782' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='put_iova_domain'>
+        <parameter type-id='0c2c419d' name='iovad' filepath='drivers/iommu/iova.c' line='782' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='put_pages_list' mangled-name='put_pages_list' filepath='mm/swap.c' line='140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='put_pages_list'>
+        <parameter type-id='e84b031a' name='pages' filepath='mm/swap.c' line='140' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='put_pid' mangled-name='put_pid' filepath='kernel/pid.c' line='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='put_pid'>
+        <parameter type-id='b94e5398' name='pid' filepath='kernel/pid.c' line='105' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='put_sg_io_hdr' mangled-name='put_sg_io_hdr' filepath='drivers/scsi/scsi_ioctl.c' line='647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='put_sg_io_hdr'>
+        <parameter type-id='8a390024' name='hdr' filepath='drivers/scsi/scsi_ioctl.c' line='647' column='1'/>
+        <parameter type-id='eaa32e2f' name='argp' filepath='drivers/scsi/scsi_ioctl.c' line='647' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='put_unused_fd' mangled-name='put_unused_fd' filepath='fs/file.c' line='576' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='put_unused_fd'>
+        <parameter type-id='f0981eeb' name='fd' filepath='fs/file.c' line='576' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='put_user_ifreq' mangled-name='put_user_ifreq' filepath='net/socket.c' line='3183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='put_user_ifreq'>
+        <parameter type-id='d494b97c' name='ifr' filepath='net/socket.c' line='3183' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='net/socket.c' line='3183' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='put_vaddr_frames' mangled-name='put_vaddr_frames' filepath='drivers/media/common/videobuf2/frame_vector.c' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='put_vaddr_frames'>
+        <parameter type-id='d9fbdc06' name='vec' filepath='drivers/media/common/videobuf2/frame_vector.c' line='74' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='putback_movable_pages' mangled-name='putback_movable_pages' filepath='mm/migrate.c' line='142' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='putback_movable_pages'>
+        <parameter type-id='e84b031a' name='l' filepath='mm/migrate.c' line='142' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pwm_adjust_config' mangled-name='pwm_adjust_config' filepath='drivers/pwm/core.c' line='652' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pwm_adjust_config'>
+        <parameter type-id='f06adae0' name='pwm' filepath='drivers/pwm/core.c' line='652' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pwm_apply_state' mangled-name='pwm_apply_state' filepath='drivers/pwm/core.c' line='530' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pwm_apply_state'>
+        <parameter type-id='f06adae0' name='pwm' filepath='drivers/pwm/core.c' line='530' column='1'/>
+        <parameter type-id='73a11e20' name='state' filepath='drivers/pwm/core.c' line='530' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pwm_free' mangled-name='pwm_free' filepath='drivers/pwm/core.c' line='418' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pwm_free'>
+        <parameter type-id='f06adae0' name='pwm' filepath='drivers/pwm/core.c' line='418' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pwm_get_chip_data' mangled-name='pwm_get_chip_data' filepath='drivers/pwm/core.c' line='204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pwm_get_chip_data'>
+        <parameter type-id='f06adae0' name='pwm' filepath='drivers/pwm/core.c' line='204' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='pwm_put' mangled-name='pwm_put' filepath='drivers/pwm/core.c' line='1042' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pwm_put'>
+        <parameter type-id='f06adae0' name='pwm' filepath='drivers/pwm/core.c' line='1042' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='pwm_request' mangled-name='pwm_request' filepath='drivers/pwm/core.c' line='353' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pwm_request'>
+        <parameter type-id='95e97e5e' name='pwm' filepath='drivers/pwm/core.c' line='353' column='1'/>
+        <parameter type-id='80f4b756' name='label' filepath='drivers/pwm/core.c' line='353' column='1'/>
+        <return type-id='f06adae0'/>
+      </function-decl>
+      <function-decl name='pwm_set_chip_data' mangled-name='pwm_set_chip_data' filepath='drivers/pwm/core.c' line='187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pwm_set_chip_data'>
+        <parameter type-id='f06adae0' name='pwm' filepath='drivers/pwm/core.c' line='187' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/pwm/core.c' line='187' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pwmchip_add' mangled-name='pwmchip_add' filepath='drivers/pwm/core.c' line='242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pwmchip_add'>
+        <parameter type-id='00cf0c80' name='chip' filepath='drivers/pwm/core.c' line='242' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='pwmchip_remove' mangled-name='pwmchip_remove' filepath='drivers/pwm/core.c' line='307' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pwmchip_remove'>
+        <parameter type-id='00cf0c80' name='chip' filepath='drivers/pwm/core.c' line='307' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='qcom_smem_state_get' mangled-name='qcom_smem_state_get' filepath='drivers/soc/qcom/smem_state.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='qcom_smem_state_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/soc/qcom/smem_state.c' line='88' column='1'/>
+        <parameter type-id='80f4b756' name='con_id' filepath='drivers/soc/qcom/smem_state.c' line='89' column='1'/>
+        <parameter type-id='807869d3' name='bit' filepath='drivers/soc/qcom/smem_state.c' line='90' column='1'/>
+        <return type-id='01df4674'/>
+      </function-decl>
+      <function-decl name='qcom_smem_state_put' mangled-name='qcom_smem_state_put' filepath='drivers/soc/qcom/smem_state.c' line='147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='qcom_smem_state_put'>
+        <parameter type-id='01df4674' name='state' filepath='drivers/soc/qcom/smem_state.c' line='147' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='qcom_smem_state_register' mangled-name='qcom_smem_state_register' filepath='drivers/soc/qcom/smem_state.c' line='197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='qcom_smem_state_register'>
+        <parameter type-id='9a537bbe' name='of_node' filepath='drivers/soc/qcom/smem_state.c' line='197' column='1'/>
+        <parameter type-id='b86c9da0' name='ops' filepath='drivers/soc/qcom/smem_state.c' line='198' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/soc/qcom/smem_state.c' line='199' column='1'/>
+        <return type-id='01df4674'/>
+      </function-decl>
+      <function-decl name='qcom_smem_state_unregister' mangled-name='qcom_smem_state_unregister' filepath='drivers/soc/qcom/smem_state.c' line='225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='qcom_smem_state_unregister'>
+        <parameter type-id='01df4674' name='state' filepath='drivers/soc/qcom/smem_state.c' line='225' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='qcom_smem_state_update_bits' mangled-name='qcom_smem_state_update_bits' filepath='drivers/soc/qcom/smem_state.c' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='qcom_smem_state_update_bits'>
+        <parameter type-id='01df4674' name='state' filepath='drivers/soc/qcom/smem_state.c' line='45' column='1'/>
+        <parameter type-id='19c2251e' name='mask' filepath='drivers/soc/qcom/smem_state.c' line='46' column='1'/>
+        <parameter type-id='19c2251e' name='value' filepath='drivers/soc/qcom/smem_state.c' line='47' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='queue_delayed_work_on' mangled-name='queue_delayed_work_on' filepath='kernel/workqueue.c' line='1708' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='queue_delayed_work_on'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/workqueue.c' line='1708' column='1'/>
+        <parameter type-id='242e3d19' name='wq' filepath='kernel/workqueue.c' line='1708' column='1'/>
+        <parameter type-id='1a7ee447' name='dwork' filepath='kernel/workqueue.c' line='1709' column='1'/>
+        <parameter type-id='7359adad' name='delay' filepath='kernel/workqueue.c' line='1709' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='queue_work_on' mangled-name='queue_work_on' filepath='kernel/workqueue.c' line='1554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='queue_work_on'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/workqueue.c' line='1554' column='1'/>
+        <parameter type-id='242e3d19' name='wq' filepath='kernel/workqueue.c' line='1554' column='1'/>
+        <parameter type-id='83c1bde6' name='work' filepath='kernel/workqueue.c' line='1555' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='radix_tree_delete' mangled-name='radix_tree_delete' filepath='lib/radix-tree.c' line='1444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='radix_tree_delete'>
+        <parameter type-id='60075f2a' name='root' filepath='lib/radix-tree.c' line='1444' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='lib/radix-tree.c' line='1444' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='radix_tree_delete_item' mangled-name='radix_tree_delete_item' filepath='lib/radix-tree.c' line='1412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='radix_tree_delete_item'>
+        <parameter type-id='60075f2a' name='root' filepath='lib/radix-tree.c' line='1412' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='lib/radix-tree.c' line='1413' column='1'/>
+        <parameter type-id='eaa32e2f' name='item' filepath='lib/radix-tree.c' line='1413' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='radix_tree_gang_lookup' mangled-name='radix_tree_gang_lookup' filepath='lib/radix-tree.c' line='1261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='radix_tree_gang_lookup'>
+        <parameter type-id='bb0f13d1' name='root' filepath='lib/radix-tree.c' line='1261' column='1'/>
+        <parameter type-id='63e171df' name='results' filepath='lib/radix-tree.c' line='1261' column='1'/>
+        <parameter type-id='7359adad' name='first_index' filepath='lib/radix-tree.c' line='1262' column='1'/>
+        <parameter type-id='f0981eeb' name='max_items' filepath='lib/radix-tree.c' line='1262' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='radix_tree_gang_lookup_tag' mangled-name='radix_tree_gang_lookup_tag' filepath='lib/radix-tree.c' line='1301' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='radix_tree_gang_lookup_tag'>
+        <parameter type-id='bb0f13d1' name='root' filepath='lib/radix-tree.c' line='1301' column='1'/>
+        <parameter type-id='63e171df' name='results' filepath='lib/radix-tree.c' line='1301' column='1'/>
+        <parameter type-id='7359adad' name='first_index' filepath='lib/radix-tree.c' line='1302' column='1'/>
+        <parameter type-id='f0981eeb' name='max_items' filepath='lib/radix-tree.c' line='1302' column='1'/>
+        <parameter type-id='f0981eeb' name='tag' filepath='lib/radix-tree.c' line='1303' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='radix_tree_insert' mangled-name='radix_tree_insert' filepath='lib/radix-tree.c' line='701' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='radix_tree_insert'>
+        <parameter type-id='60075f2a' name='root' filepath='lib/radix-tree.c' line='701' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='lib/radix-tree.c' line='701' column='1'/>
+        <parameter type-id='eaa32e2f' name='item' filepath='lib/radix-tree.c' line='702' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='radix_tree_iter_delete' mangled-name='radix_tree_iter_delete' filepath='lib/radix-tree.c' line='1393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='radix_tree_iter_delete'>
+        <parameter type-id='60075f2a' name='root' filepath='lib/radix-tree.c' line='1393' column='1'/>
+        <parameter type-id='0cbbabe1' name='iter' filepath='lib/radix-tree.c' line='1394' column='1'/>
+        <parameter type-id='63e171df' name='slot' filepath='lib/radix-tree.c' line='1394' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='radix_tree_iter_resume' mangled-name='radix_tree_iter_resume' filepath='lib/radix-tree.c' line='1134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='radix_tree_iter_resume'>
+        <parameter type-id='63e171df' name='slot' filepath='lib/radix-tree.c' line='1134' column='1'/>
+        <parameter type-id='0cbbabe1' name='iter' filepath='lib/radix-tree.c' line='1135' column='1'/>
+        <return type-id='63e171df'/>
+      </function-decl>
+      <function-decl name='radix_tree_lookup' mangled-name='radix_tree_lookup' filepath='lib/radix-tree.c' line='815' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='radix_tree_lookup'>
+        <parameter type-id='bb0f13d1' name='root' filepath='lib/radix-tree.c' line='815' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='lib/radix-tree.c' line='815' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='radix_tree_lookup_slot' mangled-name='radix_tree_lookup_slot' filepath='lib/radix-tree.c' line='792' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='radix_tree_lookup_slot'>
+        <parameter type-id='bb0f13d1' name='root' filepath='lib/radix-tree.c' line='792' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='lib/radix-tree.c' line='793' column='1'/>
+        <return type-id='63e171df'/>
+      </function-decl>
+      <function-decl name='radix_tree_maybe_preload' mangled-name='radix_tree_maybe_preload' filepath='lib/radix-tree.c' line='376' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='radix_tree_maybe_preload'>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='lib/radix-tree.c' line='376' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='radix_tree_next_chunk' mangled-name='radix_tree_next_chunk' filepath='lib/radix-tree.c' line='1153' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='radix_tree_next_chunk'>
+        <parameter type-id='bb0f13d1' name='root' filepath='lib/radix-tree.c' line='1153' column='1'/>
+        <parameter type-id='0cbbabe1' name='iter' filepath='lib/radix-tree.c' line='1154' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='lib/radix-tree.c' line='1154' column='1'/>
+        <return type-id='63e171df'/>
+      </function-decl>
+      <function-decl name='radix_tree_preload' mangled-name='radix_tree_preload' filepath='lib/radix-tree.c' line='363' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='radix_tree_preload'>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='lib/radix-tree.c' line='363' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='radix_tree_replace_slot' mangled-name='radix_tree_replace_slot' filepath='lib/radix-tree.c' line='912' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='radix_tree_replace_slot'>
+        <parameter type-id='60075f2a' name='root' filepath='lib/radix-tree.c' line='912' column='1'/>
+        <parameter type-id='63e171df' name='slot' filepath='lib/radix-tree.c' line='913' column='1'/>
+        <parameter type-id='eaa32e2f' name='item' filepath='lib/radix-tree.c' line='913' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='radix_tree_tag_clear' mangled-name='radix_tree_tag_clear' filepath='lib/radix-tree.c' line='1027' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='radix_tree_tag_clear'>
+        <parameter type-id='60075f2a' name='root' filepath='lib/radix-tree.c' line='1027' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='lib/radix-tree.c' line='1028' column='1'/>
+        <parameter type-id='f0981eeb' name='tag' filepath='lib/radix-tree.c' line='1028' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='radix_tree_tag_get' mangled-name='radix_tree_tag_get' filepath='lib/radix-tree.c' line='1079' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='radix_tree_tag_get'>
+        <parameter type-id='bb0f13d1' name='root' filepath='lib/radix-tree.c' line='1079' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='lib/radix-tree.c' line='1080' column='1'/>
+        <parameter type-id='f0981eeb' name='tag' filepath='lib/radix-tree.c' line='1080' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='radix_tree_tag_set' mangled-name='radix_tree_tag_set' filepath='lib/radix-tree.c' line='965' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='radix_tree_tag_set'>
+        <parameter type-id='60075f2a' name='root' filepath='lib/radix-tree.c' line='965' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='lib/radix-tree.c' line='966' column='1'/>
+        <parameter type-id='f0981eeb' name='tag' filepath='lib/radix-tree.c' line='966' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='rational_best_approximation' mangled-name='rational_best_approximation' filepath='lib/math/rational.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rational_best_approximation'>
+        <parameter type-id='7359adad' name='given_numerator' filepath='lib/math/rational.c' line='36' column='1'/>
+        <parameter type-id='7359adad' name='given_denominator' filepath='lib/math/rational.c' line='36' column='1'/>
+        <parameter type-id='7359adad' name='max_numerator' filepath='lib/math/rational.c' line='37' column='1'/>
+        <parameter type-id='7359adad' name='max_denominator' filepath='lib/math/rational.c' line='37' column='1'/>
+        <parameter type-id='1d2c2b85' name='best_numerator' filepath='lib/math/rational.c' line='38' column='1'/>
+        <parameter type-id='1d2c2b85' name='best_denominator' filepath='lib/math/rational.c' line='38' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='raw_notifier_call_chain' mangled-name='raw_notifier_call_chain' filepath='kernel/notifier.c' line='388' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='raw_notifier_call_chain'>
+        <parameter type-id='dc20ab67' name='nh' filepath='kernel/notifier.c' line='388' column='1'/>
+        <parameter type-id='7359adad' name='val' filepath='kernel/notifier.c' line='389' column='1'/>
+        <parameter type-id='eaa32e2f' name='v' filepath='kernel/notifier.c' line='389' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='raw_notifier_chain_register' mangled-name='raw_notifier_chain_register' filepath='kernel/notifier.c' line='340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='raw_notifier_chain_register'>
+        <parameter type-id='dc20ab67' name='nh' filepath='kernel/notifier.c' line='340' column='1'/>
+        <parameter type-id='d504f73d' name='n' filepath='kernel/notifier.c' line='341' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='raw_notifier_chain_unregister' mangled-name='raw_notifier_chain_unregister' filepath='kernel/notifier.c' line='357' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='raw_notifier_chain_unregister'>
+        <parameter type-id='dc20ab67' name='nh' filepath='kernel/notifier.c' line='357' column='1'/>
+        <parameter type-id='d504f73d' name='n' filepath='kernel/notifier.c' line='358' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='raw_spin_rq_lock_nested' mangled-name='raw_spin_rq_lock_nested' filepath='kernel/sched/core.c' line='482' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='raw_spin_rq_lock_nested'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='482' column='1'/>
+        <parameter type-id='95e97e5e' name='subclass' filepath='kernel/sched/core.c' line='482' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='raw_spin_rq_unlock' mangled-name='raw_spin_rq_unlock' filepath='kernel/sched/core.c' line='532' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='raw_spin_rq_unlock'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='532' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='raw_v4_hashinfo' type-id='51ee3086' mangled-name='raw_v4_hashinfo' visibility='default' filepath='net/ipv4/raw.c' line='88' column='1' elf-symbol-id='raw_v4_hashinfo'/>
+      <var-decl name='raw_v6_hashinfo' type-id='51ee3086' mangled-name='raw_v6_hashinfo' visibility='default' filepath='net/ipv6/raw.c' line='64' column='1' elf-symbol-id='raw_v6_hashinfo'/>
+      <function-decl name='rb_erase' mangled-name='rb_erase' filepath='lib/rbtree.c' line='440' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rb_erase'>
+        <parameter type-id='e6532500' name='node' filepath='lib/rbtree.c' line='440' column='1'/>
+        <parameter type-id='c5bcc2c0' name='root' filepath='lib/rbtree.c' line='440' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rb_first' mangled-name='rb_first' filepath='lib/rbtree.c' line='466' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rb_first'>
+        <parameter type-id='c4139a7d' name='root' filepath='lib/rbtree.c' line='466' column='1'/>
+        <return type-id='e6532500'/>
+      </function-decl>
+      <function-decl name='rb_first_postorder' mangled-name='rb_first_postorder' filepath='lib/rbtree.c' line='623' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rb_first_postorder'>
+        <parameter type-id='c4139a7d' name='root' filepath='lib/rbtree.c' line='623' column='1'/>
+        <return type-id='e6532500'/>
+      </function-decl>
+      <function-decl name='rb_insert_color' mangled-name='rb_insert_color' filepath='lib/rbtree.c' line='434' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rb_insert_color'>
+        <parameter type-id='e6532500' name='node' filepath='lib/rbtree.c' line='434' column='1'/>
+        <parameter type-id='c5bcc2c0' name='root' filepath='lib/rbtree.c' line='434' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rb_last' mangled-name='rb_last' filepath='lib/rbtree.c' line='479' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rb_last'>
+        <parameter type-id='c4139a7d' name='root' filepath='lib/rbtree.c' line='479' column='1'/>
+        <return type-id='e6532500'/>
+      </function-decl>
+      <function-decl name='rb_next' mangled-name='rb_next' filepath='lib/rbtree.c' line='492' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rb_next'>
+        <parameter type-id='47b73425' name='node' filepath='lib/rbtree.c' line='492' column='1'/>
+        <return type-id='e6532500'/>
+      </function-decl>
+      <function-decl name='rb_next_postorder' mangled-name='rb_next_postorder' filepath='lib/rbtree.c' line='604' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rb_next_postorder'>
+        <parameter type-id='47b73425' name='node' filepath='lib/rbtree.c' line='604' column='1'/>
+        <return type-id='e6532500'/>
+      </function-decl>
+      <function-decl name='rb_prev' mangled-name='rb_prev' filepath='lib/rbtree.c' line='524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rb_prev'>
+        <parameter type-id='47b73425' name='node' filepath='lib/rbtree.c' line='524' column='1'/>
+        <return type-id='e6532500'/>
+      </function-decl>
+      <function-decl name='rb_replace_node' mangled-name='rb_replace_node' filepath='lib/rbtree.c' line='553' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rb_replace_node'>
+        <parameter type-id='e6532500' name='victim' filepath='lib/rbtree.c' line='553' column='1'/>
+        <parameter type-id='e6532500' name='new' filepath='lib/rbtree.c' line='553' column='1'/>
+        <parameter type-id='c5bcc2c0' name='root' filepath='lib/rbtree.c' line='554' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rc_allocate_device' mangled-name='rc_allocate_device' filepath='drivers/media/rc/rc-main.c' line='1699' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rc_allocate_device'>
+        <parameter type-id='d4dbe3db' name='type' filepath='drivers/media/rc/rc-main.c' line='1699' column='1'/>
+        <return type-id='75ae4804'/>
+      </function-decl>
+      <function-decl name='rc_free_device' mangled-name='rc_free_device' filepath='drivers/media/rc/rc-main.c' line='1738' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rc_free_device'>
+        <parameter type-id='75ae4804' name='dev' filepath='drivers/media/rc/rc-main.c' line='1738' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rc_keydown' mangled-name='rc_keydown' filepath='drivers/media/rc/rc-main.c' line='848' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rc_keydown'>
+        <parameter type-id='75ae4804' name='dev' filepath='drivers/media/rc/rc-main.c' line='848' column='1'/>
+        <parameter type-id='17862576' name='protocol' filepath='drivers/media/rc/rc-main.c' line='848' column='1'/>
+        <parameter type-id='91ce1af9' name='scancode' filepath='drivers/media/rc/rc-main.c' line='848' column='1'/>
+        <parameter type-id='f9b06939' name='toggle' filepath='drivers/media/rc/rc-main.c' line='849' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rc_map_register' mangled-name='rc_map_register' filepath='drivers/media/rc/rc-main.c' line='135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rc_map_register'>
+        <parameter type-id='31d2664e' name='map' filepath='drivers/media/rc/rc-main.c' line='135' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rc_map_unregister' mangled-name='rc_map_unregister' filepath='drivers/media/rc/rc-main.c' line='144' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rc_map_unregister'>
+        <parameter type-id='31d2664e' name='map' filepath='drivers/media/rc/rc-main.c' line='144' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rc_register_device' mangled-name='rc_register_device' filepath='drivers/media/rc/rc-main.c' line='1890' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rc_register_device'>
+        <parameter type-id='75ae4804' name='dev' filepath='drivers/media/rc/rc-main.c' line='1890' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rc_repeat' mangled-name='rc_repeat' filepath='drivers/media/rc/rc-main.c' line='737' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rc_repeat'>
+        <parameter type-id='75ae4804' name='dev' filepath='drivers/media/rc/rc-main.c' line='737' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rc_unregister_device' mangled-name='rc_unregister_device' filepath='drivers/media/rc/rc-main.c' line='2015' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rc_unregister_device'>
+        <parameter type-id='75ae4804' name='dev' filepath='drivers/media/rc/rc-main.c' line='2015' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rcu_barrier' mangled-name='rcu_barrier' filepath='kernel/rcu/tree.c' line='4009' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rcu_barrier_tasks' mangled-name='rcu_barrier_tasks' filepath='kernel/rcu/tasks.h' line='601' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_tasks'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rcu_barrier_tasks_trace' mangled-name='rcu_barrier_tasks_trace' filepath='kernel/rcu/tasks.h' line='1274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_tasks_trace'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rcu_bind_current_to_nocb' mangled-name='rcu_bind_current_to_nocb' filepath='kernel/rcu/tree_nocb.h' line='1303' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_bind_current_to_nocb'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rcu_check_boost_fail' mangled-name='rcu_check_boost_fail' filepath='kernel/rcu/tree_stall.h' line='761' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_check_boost_fail'>
+        <parameter type-id='7359adad' name='gp_state' filepath='kernel/rcu/tree_stall.h' line='761' column='1'/>
+        <parameter type-id='7292109c' name='cpup' filepath='kernel/rcu/tree_stall.h' line='761' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <var-decl name='rcu_cpu_stall_suppress' type-id='95e97e5e' mangled-name='rcu_cpu_stall_suppress' visibility='default' filepath='kernel/rcu/update.c' line='497' column='1' elf-symbol-id='rcu_cpu_stall_suppress'/>
+      <var-decl name='rcu_cpu_stall_suppress_at_boot' type-id='95e97e5e' mangled-name='rcu_cpu_stall_suppress_at_boot' visibility='default' filepath='kernel/rcu/update.c' line='506' column='1' elf-symbol-id='rcu_cpu_stall_suppress_at_boot'/>
+      <function-decl name='rcu_expedite_gp' mangled-name='rcu_expedite_gp' filepath='kernel/rcu/update.c' line='169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_expedite_gp'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rcu_force_quiescent_state' mangled-name='rcu_force_quiescent_state' filepath='kernel/rcu/tree.c' line='2670' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_force_quiescent_state'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rcu_fwd_progress_check' mangled-name='rcu_fwd_progress_check' filepath='kernel/rcu/tree_stall.h' line='933' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_fwd_progress_check'>
+        <parameter type-id='7359adad' name='j' filepath='kernel/rcu/tree_stall.h' line='933' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rcu_get_gp_kthreads_prio' mangled-name='rcu_get_gp_kthreads_prio' filepath='kernel/rcu/tree.c' line='196' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_get_gp_kthreads_prio'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rcu_get_gp_seq' mangled-name='rcu_get_gp_seq' filepath='kernel/rcu/tree.c' line='558' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_get_gp_seq'>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='rcu_gp_is_expedited' mangled-name='rcu_gp_is_expedited' filepath='kernel/rcu/update.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_gp_is_expedited'>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='rcu_gp_is_normal' mangled-name='rcu_gp_is_normal' filepath='kernel/rcu/update.c' line='140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_gp_is_normal'>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='rcu_gp_set_torture_wait' mangled-name='rcu_gp_set_torture_wait' filepath='kernel/rcu/tree.c' line='1704' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_gp_set_torture_wait'>
+        <parameter type-id='95e97e5e' name='duration' filepath='kernel/rcu/tree.c' line='1704' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rcu_idle_enter' mangled-name='rcu_idle_enter' filepath='kernel/rcu/tree.c' line='652' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_idle_enter'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rcu_idle_exit' mangled-name='rcu_idle_exit' filepath='kernel/rcu/tree.c' line='893' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_idle_exit'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rcu_inkernel_boot_has_ended' mangled-name='rcu_inkernel_boot_has_ended' filepath='kernel/rcu/update.c' line='206' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_inkernel_boot_has_ended'>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='rcu_is_watching' mangled-name='rcu_is_watching' filepath='kernel/rcu/tree.c' line='1117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_is_watching'>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='rcu_jiffies_till_stall_check' mangled-name='rcu_jiffies_till_stall_check' filepath='kernel/rcu/tree_stall.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_jiffies_till_stall_check'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rcu_nocb_cpu_deoffload' mangled-name='rcu_nocb_cpu_deoffload' filepath='kernel/rcu/tree_nocb.h' line='1020' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_nocb_cpu_deoffload'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/rcu/tree_nocb.h' line='1020' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rcu_nocb_cpu_offload' mangled-name='rcu_nocb_cpu_offload' filepath='kernel/rcu/tree_nocb.h' line='1090' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_nocb_cpu_offload'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/rcu/tree_nocb.h' line='1090' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rcu_read_unlock_trace_special' mangled-name='rcu_read_unlock_trace_special' filepath='kernel/rcu/tasks.h' line='879' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_read_unlock_trace_special'>
+        <parameter type-id='f23e2572' name='t' filepath='kernel/rcu/tasks.h' line='879' column='1'/>
+        <parameter type-id='95e97e5e' name='nesting' filepath='kernel/rcu/tasks.h' line='879' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rcu_unexpedite_gp' mangled-name='rcu_unexpedite_gp' filepath='kernel/rcu/update.c' line='184' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_unexpedite_gp'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rcutorture_get_gp_data' mangled-name='rcutorture_get_gp_data' filepath='kernel/rcu/tree.c' line='587' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcutorture_get_gp_data'>
+        <parameter type-id='f63583e2' name='test_type' filepath='kernel/rcu/tree.c' line='587' column='1'/>
+        <parameter type-id='7292109c' name='flags' filepath='kernel/rcu/tree.c' line='587' column='1'/>
+        <parameter type-id='1d2c2b85' name='gp_seq' filepath='kernel/rcu/tree.c' line='588' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rcuwait_wake_up' mangled-name='rcuwait_wake_up' filepath='kernel/exit.c' line='280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcuwait_wake_up'>
+        <parameter type-id='9b25216e' name='w' filepath='kernel/exit.c' line='280' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rdev_get_dev' mangled-name='rdev_get_dev' filepath='drivers/regulator/core.c' line='5840' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rdev_get_dev'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/core.c' line='5840' column='1'/>
+        <return type-id='fa0b179b'/>
+      </function-decl>
+      <function-decl name='rdev_get_drvdata' mangled-name='rdev_get_drvdata' filepath='drivers/regulator/core.c' line='5800' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rdev_get_drvdata'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/core.c' line='5800' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='rdev_get_id' mangled-name='rdev_get_id' filepath='drivers/regulator/core.c' line='5834' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rdev_get_id'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/core.c' line='5834' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rdev_get_regmap' mangled-name='rdev_get_regmap' filepath='drivers/regulator/core.c' line='5846' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rdev_get_regmap'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/core.c' line='5846' column='1'/>
+        <return type-id='29af9a71'/>
+      </function-decl>
+      <function-decl name='read_cache_page' mangled-name='read_cache_page' filepath='mm/filemap.c' line='3617' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='read_cache_page'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/filemap.c' line='3617' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='mm/filemap.c' line='3618' column='1'/>
+        <parameter type-id='83ac4446' name='filler' filepath='mm/filemap.c' line='3619' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='mm/filemap.c' line='3620' column='1'/>
+        <return type-id='02f11ed4'/>
+      </function-decl>
+      <function-decl name='read_cache_page_gfp' mangled-name='read_cache_page_gfp' filepath='mm/filemap.c' line='3642' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='read_cache_page_gfp'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/filemap.c' line='3642' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='mm/filemap.c' line='3643' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='mm/filemap.c' line='3644' column='1'/>
+        <return type-id='02f11ed4'/>
+      </function-decl>
+      <function-decl name='read_sanitised_ftr_reg' mangled-name='read_sanitised_ftr_reg' filepath='arch/arm64/kernel/cpufeature.c' line='1236' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='read_sanitised_ftr_reg'>
+        <parameter type-id='19c2251e' name='id' filepath='arch/arm64/kernel/cpufeature.c' line='1236' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='readahead_gfp_mask' mangled-name='readahead_gfp_mask' filepath='mm/readahead.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='readahead_gfp_mask'>
+        <parameter type-id='f57039f0' name='x' filepath='mm/readahead.c' line='118' column='1'/>
+        <return type-id='3eb7c31c'/>
+      </function-decl>
+      <var-decl name='reboot_mode' type-id='fdb20761' mangled-name='reboot_mode' visibility='default' filepath='kernel/reboot.c' line='35' column='1' elf-symbol-id='reboot_mode'/>
+      <function-decl name='rebuild_sched_domains' mangled-name='rebuild_sched_domains' filepath='kernel/cgroup/cpuset.c' line='1108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rebuild_sched_domains'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='reciprocal_value' mangled-name='reciprocal_value' filepath='lib/math/reciprocal_div.c' line='17' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='reciprocal_value'>
+        <parameter type-id='19c2251e' name='d' filepath='lib/math/reciprocal_div.c' line='17' column='1'/>
+        <return type-id='80ebe7f7'/>
+      </function-decl>
+      <function-decl name='reclaim_pages' mangled-name='reclaim_pages' filepath='mm/vmscan.c' line='2478' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='reclaim_pages'>
+        <parameter type-id='e84b031a' name='page_list' filepath='mm/vmscan.c' line='2478' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='reclaim_shmem_address_space' mangled-name='reclaim_shmem_address_space' filepath='mm/shmem.c' line='4253' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='reclaim_shmem_address_space'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/shmem.c' line='4253' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='redirty_page_for_writepage' mangled-name='redirty_page_for_writepage' filepath='mm/page-writeback.c' line='2575' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='redirty_page_for_writepage'>
+        <parameter type-id='c2c60445' name='wbc' filepath='mm/page-writeback.c' line='2575' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/page-writeback.c' line='2575' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='refcount_dec_and_lock' mangled-name='refcount_dec_and_lock' filepath='lib/refcount.c' line='144' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='refcount_dec_and_lock'>
+        <parameter type-id='35a0b4f8' name='r' filepath='lib/refcount.c' line='144' column='1'/>
+        <parameter type-id='cff2d845' name='lock' filepath='lib/refcount.c' line='144' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='refcount_dec_and_mutex_lock' mangled-name='refcount_dec_and_mutex_lock' filepath='lib/refcount.c' line='113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='refcount_dec_and_mutex_lock'>
+        <parameter type-id='35a0b4f8' name='r' filepath='lib/refcount.c' line='113' column='1'/>
+        <parameter type-id='e0ea832a' name='lock' filepath='lib/refcount.c' line='113' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='refcount_dec_not_one' mangled-name='refcount_dec_not_one' filepath='lib/refcount.c' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='refcount_dec_not_one'>
+        <parameter type-id='35a0b4f8' name='r' filepath='lib/refcount.c' line='74' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='refcount_warn_saturate' mangled-name='refcount_warn_saturate' filepath='lib/refcount.c' line='13' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='refcount_warn_saturate'>
+        <parameter type-id='35a0b4f8' name='r' filepath='lib/refcount.c' line='13' column='1'/>
+        <parameter type-id='ff0618be' name='t' filepath='lib/refcount.c' line='13' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='refresh_frequency_limits' mangled-name='refresh_frequency_limits' filepath='drivers/cpufreq/cpufreq.c' line='1146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='refresh_frequency_limits'>
+        <parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq.c' line='1146' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='regcache_cache_bypass' mangled-name='regcache_cache_bypass' filepath='drivers/base/regmap/regcache.c' line='545' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regcache_cache_bypass'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regcache.c' line='545' column='1'/>
+        <parameter type-id='b50a4934' name='enable' filepath='drivers/base/regmap/regcache.c' line='545' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='regcache_cache_only' mangled-name='regcache_cache_only' filepath='drivers/base/regmap/regcache.c' line='501' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regcache_cache_only'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regcache.c' line='501' column='1'/>
+        <parameter type-id='b50a4934' name='enable' filepath='drivers/base/regmap/regcache.c' line='501' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='regcache_drop_region' mangled-name='regcache_drop_region' filepath='drivers/base/regmap/regcache.c' line='469' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regcache_drop_region'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regcache.c' line='469' column='1'/>
+        <parameter type-id='f0981eeb' name='min' filepath='drivers/base/regmap/regcache.c' line='469' column='1'/>
+        <parameter type-id='f0981eeb' name='max' filepath='drivers/base/regmap/regcache.c' line='470' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regcache_mark_dirty' mangled-name='regcache_mark_dirty' filepath='drivers/base/regmap/regcache.c' line='525' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regcache_mark_dirty'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regcache.c' line='525' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='regcache_sync' mangled-name='regcache_sync' filepath='drivers/base/regmap/regcache.c' line='339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regcache_sync'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regcache.c' line='339' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regcache_sync_region' mangled-name='regcache_sync_region' filepath='drivers/base/regmap/regcache.c' line='411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regcache_sync_region'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regcache.c' line='411' column='1'/>
+        <parameter type-id='f0981eeb' name='min' filepath='drivers/base/regmap/regcache.c' line='411' column='1'/>
+        <parameter type-id='f0981eeb' name='max' filepath='drivers/base/regmap/regcache.c' line='412' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_candev' mangled-name='register_candev' filepath='drivers/net/can/dev/dev.c' line='463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_candev'>
+        <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/can/dev/dev.c' line='463' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_chrdev_region' mangled-name='register_chrdev_region' filepath='fs/char_dev.c' line='200' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_chrdev_region'>
+        <parameter type-id='8504f260' name='from' filepath='fs/char_dev.c' line='200' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='fs/char_dev.c' line='200' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='fs/char_dev.c' line='200' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_console' mangled-name='register_console' filepath='kernel/printk/printk.c' line='2980' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_console'>
+        <parameter type-id='b9aa0100' name='newcon' filepath='kernel/printk/printk.c' line='2980' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='register_die_notifier' mangled-name='register_die_notifier' filepath='kernel/notifier.c' line='533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_die_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='kernel/notifier.c' line='533' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_filesystem' mangled-name='register_filesystem' filepath='fs/filesystems.c' line='72' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_filesystem'>
+        <parameter type-id='21e53d44' name='fs' filepath='fs/filesystems.c' line='72' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_ftrace_export' mangled-name='register_ftrace_export' filepath='kernel/trace/trace.c' line='390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_ftrace_export'>
+        <parameter type-id='15dccca9' name='export' filepath='kernel/trace/trace.c' line='390' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_inet6addr_notifier' mangled-name='register_inet6addr_notifier' filepath='net/ipv6/addrconf_core.c' line='95' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_inet6addr_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='net/ipv6/addrconf_core.c' line='95' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_inetaddr_notifier' mangled-name='register_inetaddr_notifier' filepath='net/ipv4/devinet.c' line='1450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_inetaddr_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='net/ipv4/devinet.c' line='1450' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_kernel_break_hook' mangled-name='register_kernel_break_hook' filepath='arch/arm64/kernel/debug-monitors.c' line='294' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_kernel_break_hook'>
+        <parameter type-id='26d099e0' name='hook' filepath='arch/arm64/kernel/debug-monitors.c' line='294' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='register_key_type' mangled-name='register_key_type' filepath='security/keys/key.c' line='1151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_key_type'>
+        <parameter type-id='d0a699d1' name='ktype' filepath='security/keys/key.c' line='1151' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_kprobe' mangled-name='register_kprobe' filepath='kernel/kprobes.c' line='1601' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_kprobe'>
+        <parameter type-id='0d97a11a' name='p' filepath='kernel/kprobes.c' line='1601' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_kretprobe' mangled-name='register_kretprobe' filepath='kernel/kprobes.c' line='1990' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_kretprobe'>
+        <parameter type-id='d15edd25' name='rp' filepath='kernel/kprobes.c' line='1990' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_memory_notifier' mangled-name='register_memory_notifier' filepath='drivers/base/memory.c' line='93' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_memory_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/base/memory.c' line='93' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_module_notifier' mangled-name='register_module_notifier' filepath='kernel/module.c' line='305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_module_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='kernel/module.c' line='305' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_net_sysctl' mangled-name='register_net_sysctl' filepath='net/sysctl_net.c' line='163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_net_sysctl'>
+        <parameter type-id='a2bff676' name='net' filepath='net/sysctl_net.c' line='163' column='1'/>
+        <parameter type-id='80f4b756' name='path' filepath='net/sysctl_net.c' line='164' column='1'/>
+        <parameter type-id='631dc3c1' name='table' filepath='net/sysctl_net.c' line='164' column='1'/>
+        <return type-id='11b101bb'/>
+      </function-decl>
+      <function-decl name='register_netdev' mangled-name='register_netdev' filepath='net/core/dev.c' line='10456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_netdev'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='10456' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_netdevice' mangled-name='register_netdevice' filepath='net/core/dev.c' line='10234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_netdevice'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='10234' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_netdevice_notifier' mangled-name='register_netdevice_notifier' filepath='net/core/dev.c' line='1780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_netdevice_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='net/core/dev.c' line='1780' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_netevent_notifier' mangled-name='register_netevent_notifier' filepath='net/core/netevent.c' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_netevent_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='net/core/netevent.c' line='28' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_oom_notifier' mangled-name='register_oom_notifier' filepath='mm/oom_kill.c' line='1075' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_oom_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='mm/oom_kill.c' line='1075' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_pernet_device' mangled-name='register_pernet_device' filepath='net/core/net_namespace.c' line='1299' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_pernet_device'>
+        <parameter type-id='d6907f4c' name='ops' filepath='net/core/net_namespace.c' line='1299' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_pernet_subsys' mangled-name='register_pernet_subsys' filepath='net/core/net_namespace.c' line='1253' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_pernet_subsys'>
+        <parameter type-id='d6907f4c' name='ops' filepath='net/core/net_namespace.c' line='1253' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_pm_notifier' mangled-name='register_pm_notifier' filepath='kernel/power/main.c' line='71' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_pm_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='kernel/power/main.c' line='71' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_pppox_proto' mangled-name='register_pppox_proto' filepath='drivers/net/ppp/pppox.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_pppox_proto'>
+        <parameter type-id='95e97e5e' name='proto_num' filepath='drivers/net/ppp/pppox.c' line='37' column='1'/>
+        <parameter type-id='c447bc38' name='pp' filepath='drivers/net/ppp/pppox.c' line='37' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_qdisc' mangled-name='register_qdisc' filepath='net/sched/sch_api.c' line='130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_qdisc'>
+        <parameter type-id='d6369c88' name='qops' filepath='net/sched/sch_api.c' line='130' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_reboot_notifier' mangled-name='register_reboot_notifier' filepath='kernel/reboot.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_reboot_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='kernel/reboot.c' line='92' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_restart_handler' mangled-name='register_restart_handler' filepath='kernel/reboot.c' line='184' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_restart_handler'>
+        <parameter type-id='d504f73d' name='nb' filepath='kernel/reboot.c' line='184' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_shrinker' mangled-name='register_shrinker' filepath='mm/vmscan.c' line='675' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_shrinker'>
+        <parameter type-id='4be14597' name='shrinker' filepath='mm/vmscan.c' line='675' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_syscore_ops' mangled-name='register_syscore_ops' filepath='drivers/base/syscore.c' line='22' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_syscore_ops'>
+        <parameter type-id='cbd24a98' name='ops' filepath='drivers/base/syscore.c' line='22' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='register_sysctl' mangled-name='register_sysctl' filepath='fs/proc/proc_sysctl.c' line='1383' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_sysctl'>
+        <parameter type-id='80f4b756' name='path' filepath='fs/proc/proc_sysctl.c' line='1383' column='1'/>
+        <parameter type-id='631dc3c1' name='table' filepath='fs/proc/proc_sysctl.c' line='1383' column='1'/>
+        <return type-id='11b101bb'/>
+      </function-decl>
+      <function-decl name='register_sysctl_table' mangled-name='register_sysctl_table' filepath='fs/proc/proc_sysctl.c' line='1627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_sysctl_table'>
+        <parameter type-id='631dc3c1' name='table' filepath='fs/proc/proc_sysctl.c' line='1627' column='1'/>
+        <return type-id='11b101bb'/>
+      </function-decl>
+      <function-decl name='register_tcf_proto_ops' mangled-name='register_tcf_proto_ops' filepath='net/sched/cls_api.c' line='158' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_tcf_proto_ops'>
+        <parameter type-id='84c1f5fe' name='ops' filepath='net/sched/cls_api.c' line='158' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_tracepoint_module_notifier' mangled-name='register_tracepoint_module_notifier' filepath='kernel/tracepoint.c' line='588' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_tracepoint_module_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='kernel/tracepoint.c' line='588' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_virtio_device' mangled-name='register_virtio_device' filepath='drivers/virtio/virtio.c' line='386' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_virtio_device'>
+        <parameter type-id='5dbfcbb1' name='dev' filepath='drivers/virtio/virtio.c' line='386' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_virtio_driver' mangled-name='register_virtio_driver' filepath='drivers/virtio/virtio.c' line='320' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_virtio_driver'>
+        <parameter type-id='f350dc99' name='driver' filepath='drivers/virtio/virtio.c' line='320' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_vmap_purge_notifier' mangled-name='register_vmap_purge_notifier' filepath='mm/vmalloc.c' line='1607' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_vmap_purge_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='mm/vmalloc.c' line='1607' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='register_wide_hw_breakpoint' mangled-name='register_wide_hw_breakpoint' filepath='kernel/events/hw_breakpoint.c' line='559' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_wide_hw_breakpoint'>
+        <parameter type-id='20862e61' name='attr' filepath='kernel/events/hw_breakpoint.c' line='559' column='1'/>
+        <parameter type-id='20a2e4e6' name='triggered' filepath='kernel/events/hw_breakpoint.c' line='560' column='1'/>
+        <parameter type-id='eaa32e2f' name='context' filepath='kernel/events/hw_breakpoint.c' line='561' column='1'/>
+        <return type-id='a0127209'/>
+      </function-decl>
+      <function-decl name='regmap_add_irq_chip' mangled-name='regmap_add_irq_chip' filepath='drivers/base/regmap/regmap-irq.c' line='930' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_add_irq_chip'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap-irq.c' line='930' column='1'/>
+        <parameter type-id='95e97e5e' name='irq' filepath='drivers/base/regmap/regmap-irq.c' line='930' column='1'/>
+        <parameter type-id='95e97e5e' name='irq_flags' filepath='drivers/base/regmap/regmap-irq.c' line='930' column='1'/>
+        <parameter type-id='95e97e5e' name='irq_base' filepath='drivers/base/regmap/regmap-irq.c' line='931' column='1'/>
+        <parameter type-id='78965926' name='chip' filepath='drivers/base/regmap/regmap-irq.c' line='931' column='1'/>
+        <parameter type-id='a731d0ec' name='data' filepath='drivers/base/regmap/regmap-irq.c' line='932' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_async_complete' mangled-name='regmap_async_complete' filepath='drivers/base/regmap/regmap.c' line='3199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_async_complete'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='3199' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_attach_dev' mangled-name='regmap_attach_dev' filepath='drivers/base/regmap/regmap.c' line='638' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_attach_dev'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/regmap/regmap.c' line='638' column='1'/>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='638' column='1'/>
+        <parameter type-id='9d19d4a7' name='config' filepath='drivers/base/regmap/regmap.c' line='639' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_bulk_read' mangled-name='regmap_bulk_read' filepath='drivers/base/regmap/regmap.c' line='2995' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_bulk_read'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='2995' column='1'/>
+        <parameter type-id='f0981eeb' name='reg' filepath='drivers/base/regmap/regmap.c' line='2995' column='1'/>
+        <parameter type-id='eaa32e2f' name='val' filepath='drivers/base/regmap/regmap.c' line='2995' column='1'/>
+        <parameter type-id='b59d7dce' name='val_count' filepath='drivers/base/regmap/regmap.c' line='2996' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_bulk_write' mangled-name='regmap_bulk_write' filepath='drivers/base/regmap/regmap.c' line='2251' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_bulk_write'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='2251' column='1'/>
+        <parameter type-id='f0981eeb' name='reg' filepath='drivers/base/regmap/regmap.c' line='2251' column='1'/>
+        <parameter type-id='eaa32e2f' name='val' filepath='drivers/base/regmap/regmap.c' line='2251' column='1'/>
+        <parameter type-id='b59d7dce' name='val_count' filepath='drivers/base/regmap/regmap.c' line='2252' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_check_range_table' mangled-name='regmap_check_range_table' filepath='drivers/base/regmap/regmap.c' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_check_range_table'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='74' column='1'/>
+        <parameter type-id='f0981eeb' name='reg' filepath='drivers/base/regmap/regmap.c' line='74' column='1'/>
+        <parameter type-id='76a7b3fe' name='table' filepath='drivers/base/regmap/regmap.c' line='75' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='regmap_del_irq_chip' mangled-name='regmap_del_irq_chip' filepath='drivers/base/regmap/regmap-irq.c' line='947' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_del_irq_chip'>
+        <parameter type-id='95e97e5e' name='irq' filepath='drivers/base/regmap/regmap-irq.c' line='947' column='1'/>
+        <parameter type-id='a2782ece' name='d' filepath='drivers/base/regmap/regmap-irq.c' line='947' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='regmap_exit' mangled-name='regmap_exit' filepath='drivers/base/regmap/regmap.c' line='1515' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_exit'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='1515' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='regmap_field_read' mangled-name='regmap_field_read' filepath='drivers/base/regmap/regmap.c' line='2935' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_field_read'>
+        <parameter type-id='476eb32c' name='field' filepath='drivers/base/regmap/regmap.c' line='2935' column='1'/>
+        <parameter type-id='807869d3' name='val' filepath='drivers/base/regmap/regmap.c' line='2935' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_field_update_bits_base' mangled-name='regmap_field_update_bits_base' filepath='drivers/base/regmap/regmap.c' line='2194' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_field_update_bits_base'>
+        <parameter type-id='476eb32c' name='field' filepath='drivers/base/regmap/regmap.c' line='2194' column='1'/>
+        <parameter type-id='f0981eeb' name='mask' filepath='drivers/base/regmap/regmap.c' line='2195' column='1'/>
+        <parameter type-id='f0981eeb' name='val' filepath='drivers/base/regmap/regmap.c' line='2195' column='1'/>
+        <parameter type-id='d8e6b335' name='change' filepath='drivers/base/regmap/regmap.c' line='2196' column='1'/>
+        <parameter type-id='b50a4934' name='async' filepath='drivers/base/regmap/regmap.c' line='2196' column='1'/>
+        <parameter type-id='b50a4934' name='force' filepath='drivers/base/regmap/regmap.c' line='2196' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_get_device' mangled-name='regmap_get_device' filepath='drivers/base/regmap/regmap.c' line='1590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_get_device'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='1590' column='1'/>
+        <return type-id='fa0b179b'/>
+      </function-decl>
+      <function-decl name='regmap_get_reg_stride' mangled-name='regmap_get_reg_stride' filepath='drivers/base/regmap/regmap.c' line='3321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_get_reg_stride'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='3321' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_get_val_bytes' mangled-name='regmap_get_val_bytes' filepath='drivers/base/regmap/regmap.c' line='3290' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_get_val_bytes'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='3290' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_irq_chip_get_base' mangled-name='regmap_irq_chip_get_base' filepath='drivers/base/regmap/regmap-irq.c' line='1106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_irq_chip_get_base'>
+        <parameter type-id='a2782ece' name='data' filepath='drivers/base/regmap/regmap-irq.c' line='1106' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_irq_get_domain' mangled-name='regmap_irq_get_domain' filepath='drivers/base/regmap/regmap-irq.c' line='1141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_irq_get_domain'>
+        <parameter type-id='a2782ece' name='data' filepath='drivers/base/regmap/regmap-irq.c' line='1141' column='1'/>
+        <return type-id='7544e824'/>
+      </function-decl>
+      <function-decl name='regmap_irq_get_virq' mangled-name='regmap_irq_get_virq' filepath='drivers/base/regmap/regmap-irq.c' line='1121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_irq_get_virq'>
+        <parameter type-id='a2782ece' name='data' filepath='drivers/base/regmap/regmap-irq.c' line='1121' column='1'/>
+        <parameter type-id='95e97e5e' name='irq' filepath='drivers/base/regmap/regmap-irq.c' line='1121' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_mmio_detach_clk' mangled-name='regmap_mmio_detach_clk' filepath='drivers/base/regmap/regmap-mmio.c' line='442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_mmio_detach_clk'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap-mmio.c' line='442' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='regmap_multi_reg_write' mangled-name='regmap_multi_reg_write' filepath='drivers/base/regmap/regmap.c' line='2558' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_multi_reg_write'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='2558' column='1'/>
+        <parameter type-id='0472a368' name='regs' filepath='drivers/base/regmap/regmap.c' line='2558' column='1'/>
+        <parameter type-id='95e97e5e' name='num_regs' filepath='drivers/base/regmap/regmap.c' line='2559' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_multi_reg_write_bypassed' mangled-name='regmap_multi_reg_write_bypassed' filepath='drivers/base/regmap/regmap.c' line='2591' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_multi_reg_write_bypassed'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='2591' column='1'/>
+        <parameter type-id='0472a368' name='regs' filepath='drivers/base/regmap/regmap.c' line='2592' column='1'/>
+        <parameter type-id='95e97e5e' name='num_regs' filepath='drivers/base/regmap/regmap.c' line='2593' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_noinc_read' mangled-name='regmap_noinc_read' filepath='drivers/base/regmap/regmap.c' line='2884' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_noinc_read'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='2884' column='1'/>
+        <parameter type-id='f0981eeb' name='reg' filepath='drivers/base/regmap/regmap.c' line='2884' column='1'/>
+        <parameter type-id='eaa32e2f' name='val' filepath='drivers/base/regmap/regmap.c' line='2885' column='1'/>
+        <parameter type-id='b59d7dce' name='val_len' filepath='drivers/base/regmap/regmap.c' line='2885' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_noinc_write' mangled-name='regmap_noinc_write' filepath='drivers/base/regmap/regmap.c' line='2135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_noinc_write'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='2135' column='1'/>
+        <parameter type-id='f0981eeb' name='reg' filepath='drivers/base/regmap/regmap.c' line='2135' column='1'/>
+        <parameter type-id='eaa32e2f' name='val' filepath='drivers/base/regmap/regmap.c' line='2136' column='1'/>
+        <parameter type-id='b59d7dce' name='val_len' filepath='drivers/base/regmap/regmap.c' line='2136' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_raw_read' mangled-name='regmap_raw_read' filepath='drivers/base/regmap/regmap.c' line='2788' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_raw_read'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='2788' column='1'/>
+        <parameter type-id='f0981eeb' name='reg' filepath='drivers/base/regmap/regmap.c' line='2788' column='1'/>
+        <parameter type-id='eaa32e2f' name='val' filepath='drivers/base/regmap/regmap.c' line='2788' column='1'/>
+        <parameter type-id='b59d7dce' name='val_len' filepath='drivers/base/regmap/regmap.c' line='2789' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_raw_write' mangled-name='regmap_raw_write' filepath='drivers/base/regmap/regmap.c' line='2094' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_raw_write'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='2094' column='1'/>
+        <parameter type-id='f0981eeb' name='reg' filepath='drivers/base/regmap/regmap.c' line='2094' column='1'/>
+        <parameter type-id='eaa32e2f' name='val' filepath='drivers/base/regmap/regmap.c' line='2095' column='1'/>
+        <parameter type-id='b59d7dce' name='val_len' filepath='drivers/base/regmap/regmap.c' line='2095' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_raw_write_async' mangled-name='regmap_raw_write_async' filepath='drivers/base/regmap/regmap.c' line='2635' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_raw_write_async'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='2635' column='1'/>
+        <parameter type-id='f0981eeb' name='reg' filepath='drivers/base/regmap/regmap.c' line='2635' column='1'/>
+        <parameter type-id='eaa32e2f' name='val' filepath='drivers/base/regmap/regmap.c' line='2636' column='1'/>
+        <parameter type-id='b59d7dce' name='val_len' filepath='drivers/base/regmap/regmap.c' line='2636' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_read' mangled-name='regmap_read' filepath='drivers/base/regmap/regmap.c' line='2760' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_read'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='2760' column='1'/>
+        <parameter type-id='f0981eeb' name='reg' filepath='drivers/base/regmap/regmap.c' line='2760' column='1'/>
+        <parameter type-id='807869d3' name='val' filepath='drivers/base/regmap/regmap.c' line='2760' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_register_patch' mangled-name='regmap_register_patch' filepath='drivers/base/regmap/regmap.c' line='3240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_register_patch'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='3240' column='1'/>
+        <parameter type-id='0472a368' name='regs' filepath='drivers/base/regmap/regmap.c' line='3240' column='1'/>
+        <parameter type-id='95e97e5e' name='num_regs' filepath='drivers/base/regmap/regmap.c' line='3241' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_reinit_cache' mangled-name='regmap_reinit_cache' filepath='drivers/base/regmap/regmap.c' line='1481' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_reinit_cache'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='1481' column='1'/>
+        <parameter type-id='9d19d4a7' name='config' filepath='drivers/base/regmap/regmap.c' line='1481' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_update_bits_base' mangled-name='regmap_update_bits_base' filepath='drivers/base/regmap/regmap.c' line='3115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_update_bits_base'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='3115' column='1'/>
+        <parameter type-id='f0981eeb' name='reg' filepath='drivers/base/regmap/regmap.c' line='3115' column='1'/>
+        <parameter type-id='f0981eeb' name='mask' filepath='drivers/base/regmap/regmap.c' line='3116' column='1'/>
+        <parameter type-id='f0981eeb' name='val' filepath='drivers/base/regmap/regmap.c' line='3116' column='1'/>
+        <parameter type-id='d8e6b335' name='change' filepath='drivers/base/regmap/regmap.c' line='3117' column='1'/>
+        <parameter type-id='b50a4934' name='async' filepath='drivers/base/regmap/regmap.c' line='3117' column='1'/>
+        <parameter type-id='b50a4934' name='force' filepath='drivers/base/regmap/regmap.c' line='3117' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regmap_write' mangled-name='regmap_write' filepath='drivers/base/regmap/regmap.c' line='1990' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regmap_write'>
+        <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regmap.c' line='1990' column='1'/>
+        <parameter type-id='f0981eeb' name='reg' filepath='drivers/base/regmap/regmap.c' line='1990' column='1'/>
+        <parameter type-id='f0981eeb' name='val' filepath='drivers/base/regmap/regmap.c' line='1990' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_allow_bypass' mangled-name='regulator_allow_bypass' filepath='drivers/regulator/core.c' line='4734' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_allow_bypass'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='4734' column='1'/>
+        <parameter type-id='b50a4934' name='enable' filepath='drivers/regulator/core.c' line='4734' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_bulk_disable' mangled-name='regulator_bulk_disable' filepath='drivers/regulator/core.c' line='4942' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_bulk_disable'>
+        <parameter type-id='95e97e5e' name='num_consumers' filepath='drivers/regulator/core.c' line='4942' column='1'/>
+        <parameter type-id='776946b4' name='consumers' filepath='drivers/regulator/core.c' line='4943' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_bulk_enable' mangled-name='regulator_bulk_enable' filepath='drivers/regulator/core.c' line='4893' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_bulk_enable'>
+        <parameter type-id='95e97e5e' name='num_consumers' filepath='drivers/regulator/core.c' line='4893' column='1'/>
+        <parameter type-id='776946b4' name='consumers' filepath='drivers/regulator/core.c' line='4894' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_bulk_free' mangled-name='regulator_bulk_free' filepath='drivers/regulator/core.c' line='5011' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_bulk_free'>
+        <parameter type-id='95e97e5e' name='num_consumers' filepath='drivers/regulator/core.c' line='5011' column='1'/>
+        <parameter type-id='776946b4' name='consumers' filepath='drivers/regulator/core.c' line='5012' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='regulator_bulk_get' mangled-name='regulator_bulk_get' filepath='drivers/regulator/core.c' line='4838' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_bulk_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/regulator/core.c' line='4838' column='1'/>
+        <parameter type-id='95e97e5e' name='num_consumers' filepath='drivers/regulator/core.c' line='4838' column='1'/>
+        <parameter type-id='776946b4' name='consumers' filepath='drivers/regulator/core.c' line='4839' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_count_voltages' mangled-name='regulator_count_voltages' filepath='drivers/regulator/core.c' line='3250' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_count_voltages'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='3250' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_desc_list_voltage_linear_range' mangled-name='regulator_desc_list_voltage_linear_range' filepath='drivers/regulator/helpers.c' line='617' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_desc_list_voltage_linear_range'>
+        <parameter type-id='5629bd41' name='desc' filepath='drivers/regulator/helpers.c' line='617' column='1'/>
+        <parameter type-id='f0981eeb' name='selector' filepath='drivers/regulator/helpers.c' line='618' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_disable' mangled-name='regulator_disable' filepath='drivers/regulator/core.c' line='3018' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_disable'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='3018' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_disable_regmap' mangled-name='regulator_disable_regmap' filepath='drivers/regulator/helpers.c' line='85' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_disable_regmap'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/helpers.c' line='85' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_enable' mangled-name='regulator_enable' filepath='drivers/regulator/core.c' line='2911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_enable'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='2911' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_enable_regmap' mangled-name='regulator_enable_regmap' filepath='drivers/regulator/helpers.c' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_enable_regmap'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/helpers.c' line='59' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_force_disable' mangled-name='regulator_force_disable' filepath='drivers/regulator/core.c' line='3067' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_force_disable'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='3067' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_get' mangled-name='regulator_get' filepath='drivers/regulator/core.c' line='2266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/regulator/core.c' line='2266' column='1'/>
+        <parameter type-id='80f4b756' name='id' filepath='drivers/regulator/core.c' line='2266' column='1'/>
+        <return type-id='850c13f6'/>
+      </function-decl>
+      <function-decl name='regulator_get_current_limit' mangled-name='regulator_get_current_limit' filepath='drivers/regulator/core.c' line='4538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_get_current_limit'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='4538' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_get_current_limit_regmap' mangled-name='regulator_get_current_limit_regmap' filepath='drivers/regulator/helpers.c' line='849' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_get_current_limit_regmap'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/helpers.c' line='849' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_get_drvdata' mangled-name='regulator_get_drvdata' filepath='drivers/regulator/core.c' line='5813' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_get_drvdata'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='5813' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='regulator_get_linear_step' mangled-name='regulator_get_linear_step' filepath='drivers/regulator/core.c' line='3360' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_get_linear_step'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='3360' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='regulator_get_mode' mangled-name='regulator_get_mode' filepath='drivers/regulator/core.c' line='4616' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_get_mode'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='4616' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='regulator_get_optional' mangled-name='regulator_get_optional' filepath='drivers/regulator/core.c' line='2319' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_get_optional'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/regulator/core.c' line='2319' column='1'/>
+        <parameter type-id='80f4b756' name='id' filepath='drivers/regulator/core.c' line='2319' column='1'/>
+        <return type-id='850c13f6'/>
+      </function-decl>
+      <function-decl name='regulator_get_voltage' mangled-name='regulator_get_voltage' filepath='drivers/regulator/core.c' line='4454' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_get_voltage'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='4454' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_get_voltage_rdev' mangled-name='regulator_get_voltage_rdev' filepath='drivers/regulator/core.c' line='4399' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_get_voltage_rdev'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/core.c' line='4399' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_get_voltage_sel_regmap' mangled-name='regulator_get_voltage_sel_regmap' filepath='drivers/regulator/helpers.c' line='235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_get_voltage_sel_regmap'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/helpers.c' line='235' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_is_enabled' mangled-name='regulator_is_enabled' filepath='drivers/regulator/core.c' line='3227' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_is_enabled'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='3227' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_is_enabled_regmap' mangled-name='regulator_is_enabled_regmap' filepath='drivers/regulator/helpers.c' line='27' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_is_enabled_regmap'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/helpers.c' line='27' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_is_supported_voltage' mangled-name='regulator_is_supported_voltage' filepath='drivers/regulator/core.c' line='3377' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_is_supported_voltage'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='3377' column='1'/>
+        <parameter type-id='95e97e5e' name='min_uV' filepath='drivers/regulator/core.c' line='3378' column='1'/>
+        <parameter type-id='95e97e5e' name='max_uV' filepath='drivers/regulator/core.c' line='3378' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_list_voltage' mangled-name='regulator_list_voltage' filepath='drivers/regulator/core.c' line='3274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_list_voltage'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='3274' column='1'/>
+        <parameter type-id='f0981eeb' name='selector' filepath='drivers/regulator/core.c' line='3274' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_list_voltage_linear' mangled-name='regulator_list_voltage_linear' filepath='drivers/regulator/helpers.c' line='548' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_list_voltage_linear'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/helpers.c' line='548' column='1'/>
+        <parameter type-id='f0981eeb' name='selector' filepath='drivers/regulator/helpers.c' line='549' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_list_voltage_linear_range' mangled-name='regulator_list_voltage_linear_range' filepath='drivers/regulator/helpers.c' line='645' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_list_voltage_linear_range'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/helpers.c' line='645' column='1'/>
+        <parameter type-id='f0981eeb' name='selector' filepath='drivers/regulator/helpers.c' line='646' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_list_voltage_table' mangled-name='regulator_list_voltage_table' filepath='drivers/regulator/helpers.c' line='662' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_list_voltage_table'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/helpers.c' line='662' column='1'/>
+        <parameter type-id='f0981eeb' name='selector' filepath='drivers/regulator/helpers.c' line='663' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_map_voltage_ascend' mangled-name='regulator_map_voltage_ascend' filepath='drivers/regulator/helpers.c' line='330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_map_voltage_ascend'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/helpers.c' line='330' column='1'/>
+        <parameter type-id='95e97e5e' name='min_uV' filepath='drivers/regulator/helpers.c' line='331' column='1'/>
+        <parameter type-id='95e97e5e' name='max_uV' filepath='drivers/regulator/helpers.c' line='331' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_map_voltage_iterate' mangled-name='regulator_map_voltage_iterate' filepath='drivers/regulator/helpers.c' line='292' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_map_voltage_iterate'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/helpers.c' line='292' column='1'/>
+        <parameter type-id='95e97e5e' name='min_uV' filepath='drivers/regulator/helpers.c' line='293' column='1'/>
+        <parameter type-id='95e97e5e' name='max_uV' filepath='drivers/regulator/helpers.c' line='293' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_map_voltage_linear' mangled-name='regulator_map_voltage_linear' filepath='drivers/regulator/helpers.c' line='361' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_map_voltage_linear'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/helpers.c' line='361' column='1'/>
+        <parameter type-id='95e97e5e' name='min_uV' filepath='drivers/regulator/helpers.c' line='362' column='1'/>
+        <parameter type-id='95e97e5e' name='max_uV' filepath='drivers/regulator/helpers.c' line='362' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_map_voltage_linear_range' mangled-name='regulator_map_voltage_linear_range' filepath='drivers/regulator/helpers.c' line='407' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_map_voltage_linear_range'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/helpers.c' line='407' column='1'/>
+        <parameter type-id='95e97e5e' name='min_uV' filepath='drivers/regulator/helpers.c' line='408' column='1'/>
+        <parameter type-id='95e97e5e' name='max_uV' filepath='drivers/regulator/helpers.c' line='408' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_notifier_call_chain' mangled-name='regulator_notifier_call_chain' filepath='drivers/regulator/core.c' line='5032' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_notifier_call_chain'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/core.c' line='5032' column='1'/>
+        <parameter type-id='7359adad' name='event' filepath='drivers/regulator/core.c' line='5033' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/regulator/core.c' line='5033' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_put' mangled-name='regulator_put' filepath='drivers/regulator/core.c' line='2379' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_put'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='2379' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='regulator_register' mangled-name='regulator_register' filepath='drivers/regulator/core.c' line='5426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_register'>
+        <parameter type-id='5629bd41' name='regulator_desc' filepath='drivers/regulator/core.c' line='5426' column='1'/>
+        <parameter type-id='661ccd0c' name='cfg' filepath='drivers/regulator/core.c' line='5427' column='1'/>
+        <return type-id='43c38462'/>
+      </function-decl>
+      <function-decl name='regulator_register_notifier' mangled-name='regulator_register_notifier' filepath='drivers/regulator/core.c' line='4791' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_register_notifier'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='4791' column='1'/>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/regulator/core.c' line='4792' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_set_active_discharge_regmap' mangled-name='regulator_set_active_discharge_regmap' filepath='drivers/regulator/helpers.c' line='770' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_set_active_discharge_regmap'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/helpers.c' line='770' column='1'/>
+        <parameter type-id='b50a4934' name='enable' filepath='drivers/regulator/helpers.c' line='771' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_set_current_limit' mangled-name='regulator_set_current_limit' filepath='drivers/regulator/core.c' line='4483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_set_current_limit'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='4483' column='1'/>
+        <parameter type-id='95e97e5e' name='min_uA' filepath='drivers/regulator/core.c' line='4484' column='1'/>
+        <parameter type-id='95e97e5e' name='max_uA' filepath='drivers/regulator/core.c' line='4484' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_set_current_limit_regmap' mangled-name='regulator_set_current_limit_regmap' filepath='drivers/regulator/helpers.c' line='797' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_set_current_limit_regmap'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/helpers.c' line='797' column='1'/>
+        <parameter type-id='95e97e5e' name='min_uA' filepath='drivers/regulator/helpers.c' line='798' column='1'/>
+        <parameter type-id='95e97e5e' name='max_uA' filepath='drivers/regulator/helpers.c' line='798' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_set_load' mangled-name='regulator_set_load' filepath='drivers/regulator/core.c' line='4703' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_set_load'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='4703' column='1'/>
+        <parameter type-id='95e97e5e' name='uA_load' filepath='drivers/regulator/core.c' line='4703' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_set_mode' mangled-name='regulator_set_mode' filepath='drivers/regulator/core.c' line='4555' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_set_mode'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='4555' column='1'/>
+        <parameter type-id='f0981eeb' name='mode' filepath='drivers/regulator/core.c' line='4555' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_set_ramp_delay_regmap' mangled-name='regulator_set_ramp_delay_regmap' filepath='drivers/regulator/helpers.c' line='946' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_set_ramp_delay_regmap'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/helpers.c' line='946' column='1'/>
+        <parameter type-id='95e97e5e' name='ramp_delay' filepath='drivers/regulator/helpers.c' line='946' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_set_voltage' mangled-name='regulator_set_voltage' filepath='drivers/regulator/core.c' line='4136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_set_voltage'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='4136' column='1'/>
+        <parameter type-id='95e97e5e' name='min_uV' filepath='drivers/regulator/core.c' line='4136' column='1'/>
+        <parameter type-id='95e97e5e' name='max_uV' filepath='drivers/regulator/core.c' line='4136' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_set_voltage_sel_regmap' mangled-name='regulator_set_voltage_sel_regmap' filepath='drivers/regulator/helpers.c' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_set_voltage_sel_regmap'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/helpers.c' line='261' column='1'/>
+        <parameter type-id='f0981eeb' name='sel' filepath='drivers/regulator/helpers.c' line='261' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_set_voltage_time' mangled-name='regulator_set_voltage_time' filepath='drivers/regulator/core.c' line='4246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_set_voltage_time'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='4246' column='1'/>
+        <parameter type-id='95e97e5e' name='old_uV' filepath='drivers/regulator/core.c' line='4247' column='1'/>
+        <parameter type-id='95e97e5e' name='new_uV' filepath='drivers/regulator/core.c' line='4247' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_set_voltage_time_sel' mangled-name='regulator_set_voltage_time_sel' filepath='drivers/regulator/core.c' line='4303' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_set_voltage_time_sel'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/core.c' line='4303' column='1'/>
+        <parameter type-id='f0981eeb' name='old_selector' filepath='drivers/regulator/core.c' line='4304' column='1'/>
+        <parameter type-id='f0981eeb' name='new_selector' filepath='drivers/regulator/core.c' line='4305' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_sync_voltage' mangled-name='regulator_sync_voltage' filepath='drivers/regulator/core.c' line='4355' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_sync_voltage'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='4355' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='regulator_unregister' mangled-name='regulator_unregister' filepath='drivers/regulator/core.c' line='5678' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_unregister'>
+        <parameter type-id='43c38462' name='rdev' filepath='drivers/regulator/core.c' line='5678' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='regulator_unregister_notifier' mangled-name='regulator_unregister_notifier' filepath='drivers/regulator/core.c' line='4806' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regulator_unregister_notifier'>
+        <parameter type-id='850c13f6' name='regulator' filepath='drivers/regulator/core.c' line='4806' column='1'/>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/regulator/core.c' line='4807' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='relay_close' mangled-name='relay_close' filepath='kernel/relay.c' line='755' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='relay_close'>
+        <parameter type-id='e6634369' name='chan' filepath='kernel/relay.c' line='755' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='relay_file_operations' type-id='b8ae588d' mangled-name='relay_file_operations' visibility='default' filepath='kernel/relay.c' line='1241' column='1' elf-symbol-id='relay_file_operations'/>
+      <function-decl name='relay_flush' mangled-name='relay_flush' filepath='kernel/relay.c' line='788' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='relay_flush'>
+        <parameter type-id='e6634369' name='chan' filepath='kernel/relay.c' line='788' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='relay_open' mangled-name='relay_open' filepath='kernel/relay.c' line='477' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='relay_open'>
+        <parameter type-id='80f4b756' name='base_filename' filepath='kernel/relay.c' line='477' column='1'/>
+        <parameter type-id='27675065' name='parent' filepath='kernel/relay.c' line='478' column='1'/>
+        <parameter type-id='b59d7dce' name='subbuf_size' filepath='kernel/relay.c' line='479' column='1'/>
+        <parameter type-id='b59d7dce' name='n_subbufs' filepath='kernel/relay.c' line='480' column='1'/>
+        <parameter type-id='322da3c9' name='cb' filepath='kernel/relay.c' line='481' column='1'/>
+        <parameter type-id='eaa32e2f' name='private_data' filepath='kernel/relay.c' line='482' column='1'/>
+        <return type-id='e6634369'/>
+      </function-decl>
+      <function-decl name='relay_reset' mangled-name='relay_reset' filepath='kernel/relay.c' line='322' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='relay_reset'>
+        <parameter type-id='e6634369' name='chan' filepath='kernel/relay.c' line='322' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='relay_subbufs_consumed' mangled-name='relay_subbufs_consumed' filepath='kernel/relay.c' line='729' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='relay_subbufs_consumed'>
+        <parameter type-id='e6634369' name='chan' filepath='kernel/relay.c' line='729' column='1'/>
+        <parameter type-id='f0981eeb' name='cpu' filepath='kernel/relay.c' line='730' column='1'/>
+        <parameter type-id='b59d7dce' name='subbufs_consumed' filepath='kernel/relay.c' line='731' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='relay_switch_subbuf' mangled-name='relay_switch_subbuf' filepath='kernel/relay.c' line='662' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='relay_switch_subbuf'>
+        <parameter type-id='da363123' name='buf' filepath='kernel/relay.c' line='662' column='1'/>
+        <parameter type-id='b59d7dce' name='length' filepath='kernel/relay.c' line='662' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='release_firmware' mangled-name='release_firmware' filepath='drivers/base/firmware_loader/main.c' line='1133' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='release_firmware'>
+        <parameter type-id='fce0537d' name='fw' filepath='drivers/base/firmware_loader/main.c' line='1133' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='release_pages' mangled-name='release_pages' filepath='mm/swap.c' line='932' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='release_pages'>
+        <parameter type-id='9f93c9da' name='pages' filepath='mm/swap.c' line='932' column='1'/>
+        <parameter type-id='95e97e5e' name='nr' filepath='mm/swap.c' line='932' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='release_resource' mangled-name='release_resource' filepath='kernel/resource.c' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='release_resource'>
+        <parameter type-id='c9d64c0d' name='old' filepath='kernel/resource.c' line='284' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='release_sock' mangled-name='release_sock' filepath='net/core/sock.c' line='3243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='release_sock'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/core/sock.c' line='3243' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='remap_pfn_range' mangled-name='remap_pfn_range' filepath='mm/memory.c' line='2511' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='remap_pfn_range'>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2511' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2511' column='1'/>
+        <parameter type-id='7359adad' name='pfn' filepath='mm/memory.c' line='2512' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='mm/memory.c' line='2512' column='1'/>
+        <parameter type-id='2e2dcbd3' name='prot' filepath='mm/memory.c' line='2512' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='remap_vmalloc_range' mangled-name='remap_vmalloc_range' filepath='mm/vmalloc.c' line='3531' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='remap_vmalloc_range'>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/vmalloc.c' line='3531' column='1'/>
+        <parameter type-id='eaa32e2f' name='addr' filepath='mm/vmalloc.c' line='3531' column='1'/>
+        <parameter type-id='7359adad' name='pgoff' filepath='mm/vmalloc.c' line='3532' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='remove_cpu' mangled-name='remove_cpu' filepath='kernel/cpu.c' line='1246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='remove_cpu'>
+        <parameter type-id='f0981eeb' name='cpu' filepath='kernel/cpu.c' line='1246' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='remove_memory_subsection' mangled-name='remove_memory_subsection' filepath='mm/memory_hotplug.c' line='2301' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='remove_memory_subsection'>
+        <parameter type-id='91ce1af9' name='start' filepath='mm/memory_hotplug.c' line='2301' column='1'/>
+        <parameter type-id='91ce1af9' name='size' filepath='mm/memory_hotplug.c' line='2301' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='remove_proc_entry' mangled-name='remove_proc_entry' filepath='fs/proc/generic.c' line='686' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='remove_proc_entry'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/proc/generic.c' line='686' column='1'/>
+        <parameter type-id='d077e928' name='parent' filepath='fs/proc/generic.c' line='686' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='remove_proc_subtree' mangled-name='remove_proc_subtree' filepath='fs/proc/generic.c' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='remove_proc_subtree'>
+        <parameter type-id='80f4b756' name='name' filepath='fs/proc/generic.c' line='725' column='1'/>
+        <parameter type-id='d077e928' name='parent' filepath='fs/proc/generic.c' line='725' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='remove_wait_queue' mangled-name='remove_wait_queue' filepath='kernel/sched/wait.c' line='52' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='remove_wait_queue'>
+        <parameter type-id='3f8b2ed3' name='wq_head' filepath='kernel/sched/wait.c' line='52' column='1'/>
+        <parameter type-id='db9d03e3' name='wq_entry' filepath='kernel/sched/wait.c' line='52' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='report_iommu_fault' mangled-name='report_iommu_fault' filepath='drivers/iommu/iommu.c' line='2775' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='report_iommu_fault'>
+        <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2775' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2775' column='1'/>
+        <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2776' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='drivers/iommu/iommu.c' line='2776' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='request_any_context_irq' mangled-name='request_any_context_irq' filepath='kernel/irq/manage.c' line='2255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='request_any_context_irq'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/manage.c' line='2255' column='1'/>
+        <parameter type-id='29591c9a' name='handler' filepath='kernel/irq/manage.c' line='2255' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='kernel/irq/manage.c' line='2256' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/irq/manage.c' line='2256' column='1'/>
+        <parameter type-id='eaa32e2f' name='dev_id' filepath='kernel/irq/manage.c' line='2256' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='request_firmware' mangled-name='request_firmware' filepath='drivers/base/firmware_loader/main.c' line='952' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='request_firmware'>
+        <parameter type-id='6c2331f5' name='firmware_p' filepath='drivers/base/firmware_loader/main.c' line='952' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/base/firmware_loader/main.c' line='952' column='1'/>
+        <parameter type-id='fa0b179b' name='device' filepath='drivers/base/firmware_loader/main.c' line='953' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='request_firmware_direct' mangled-name='request_firmware_direct' filepath='drivers/base/firmware_loader/main.c' line='1004' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='request_firmware_direct'>
+        <parameter type-id='6c2331f5' name='firmware_p' filepath='drivers/base/firmware_loader/main.c' line='1004' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/base/firmware_loader/main.c' line='1005' column='1'/>
+        <parameter type-id='fa0b179b' name='device' filepath='drivers/base/firmware_loader/main.c' line='1005' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='request_firmware_into_buf' mangled-name='request_firmware_into_buf' filepath='drivers/base/firmware_loader/main.c' line='1082' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='request_firmware_into_buf'>
+        <parameter type-id='6c2331f5' name='firmware_p' filepath='drivers/base/firmware_loader/main.c' line='1082' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/base/firmware_loader/main.c' line='1082' column='1'/>
+        <parameter type-id='fa0b179b' name='device' filepath='drivers/base/firmware_loader/main.c' line='1083' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='drivers/base/firmware_loader/main.c' line='1083' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/base/firmware_loader/main.c' line='1083' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='request_firmware_nowait' mangled-name='request_firmware_nowait' filepath='drivers/base/firmware_loader/main.c' line='1195' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='request_firmware_nowait'>
+        <parameter type-id='2730d015' name='module' filepath='drivers/base/firmware_loader/main.c' line='1196' column='1'/>
+        <parameter type-id='b50a4934' name='uevent' filepath='drivers/base/firmware_loader/main.c' line='1196' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/base/firmware_loader/main.c' line='1197' column='1'/>
+        <parameter type-id='fa0b179b' name='device' filepath='drivers/base/firmware_loader/main.c' line='1197' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='drivers/base/firmware_loader/main.c' line='1197' column='1'/>
+        <parameter type-id='eaa32e2f' name='context' filepath='drivers/base/firmware_loader/main.c' line='1197' column='1'/>
+        <parameter type-id='c8e4e392' name='cont' filepath='drivers/base/firmware_loader/main.c' line='1198' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='request_key_tag' mangled-name='request_key_tag' filepath='security/keys/request_key.c' line='693' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='request_key_tag'>
+        <parameter type-id='d0a699d1' name='type' filepath='security/keys/request_key.c' line='693' column='1'/>
+        <parameter type-id='80f4b756' name='description' filepath='security/keys/request_key.c' line='694' column='1'/>
+        <parameter type-id='fce14c5f' name='domain_tag' filepath='security/keys/request_key.c' line='695' column='1'/>
+        <parameter type-id='80f4b756' name='callout_info' filepath='security/keys/request_key.c' line='696' column='1'/>
+        <return type-id='204a4632'/>
+      </function-decl>
+      <function-decl name='request_threaded_irq' mangled-name='request_threaded_irq' filepath='kernel/irq/manage.c' line='2147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='request_threaded_irq'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/manage.c' line='2147' column='1'/>
+        <parameter type-id='29591c9a' name='handler' filepath='kernel/irq/manage.c' line='2147' column='1'/>
+        <parameter type-id='29591c9a' name='thread_fn' filepath='kernel/irq/manage.c' line='2148' column='1'/>
+        <parameter type-id='7359adad' name='irqflags' filepath='kernel/irq/manage.c' line='2148' column='1'/>
+        <parameter type-id='80f4b756' name='devname' filepath='kernel/irq/manage.c' line='2149' column='1'/>
+        <parameter type-id='eaa32e2f' name='dev_id' filepath='kernel/irq/manage.c' line='2149' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='resched_curr' mangled-name='resched_curr' filepath='kernel/sched/core.c' line='985' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='resched_curr'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='985' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='reservation_ww_class' type-id='f0dc3c34' mangled-name='reservation_ww_class' visibility='default' filepath='drivers/dma-buf/dma-resv.c' line='53' column='1' elf-symbol-id='reservation_ww_class'/>
+      <function-decl name='reset_control_assert' mangled-name='reset_control_assert' filepath='drivers/reset/core.c' line='441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='reset_control_assert'>
+        <parameter type-id='9f9b8114' name='rstc' filepath='drivers/reset/core.c' line='441' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='reset_control_deassert' mangled-name='reset_control_deassert' filepath='drivers/reset/core.c' line='529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='reset_control_deassert'>
+        <parameter type-id='9f9b8114' name='rstc' filepath='drivers/reset/core.c' line='529' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='reset_control_put' mangled-name='reset_control_put' filepath='drivers/reset/core.c' line='995' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='reset_control_put'>
+        <parameter type-id='9f9b8114' name='rstc' filepath='drivers/reset/core.c' line='995' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='reset_control_reset' mangled-name='reset_control_reset' filepath='drivers/reset/core.c' line='326' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='reset_control_reset'>
+        <parameter type-id='9f9b8114' name='rstc' filepath='drivers/reset/core.c' line='326' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='reset_control_status' mangled-name='reset_control_status' filepath='drivers/reset/core.c' line='604' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='reset_control_status'>
+        <parameter type-id='9f9b8114' name='rstc' filepath='drivers/reset/core.c' line='604' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='reset_controller_register' mangled-name='reset_controller_register' filepath='drivers/reset/core.c' line='99' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='reset_controller_register'>
+        <parameter type-id='775147d9' name='rcdev' filepath='drivers/reset/core.c' line='99' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='reset_controller_unregister' mangled-name='reset_controller_unregister' filepath='drivers/reset/core.c' line='120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='reset_controller_unregister'>
+        <parameter type-id='775147d9' name='rcdev' filepath='drivers/reset/core.c' line='120' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='return_address' mangled-name='return_address' filepath='arch/arm64/kernel/return_address.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='return_address'>
+        <parameter type-id='f0981eeb' name='level' filepath='arch/arm64/kernel/return_address.c' line='35' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='rfkill_alloc' mangled-name='rfkill_alloc' filepath='net/rfkill/core.c' line='951' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rfkill_alloc'>
+        <parameter type-id='80f4b756' name='name' filepath='net/rfkill/core.c' line='951' column='1'/>
+        <parameter type-id='fa0b179b' name='parent' filepath='net/rfkill/core.c' line='952' column='1'/>
+        <parameter type-id='c3f0f7d9' name='type' filepath='net/rfkill/core.c' line='953' column='1'/>
+        <parameter type-id='6a6a70e7' name='ops' filepath='net/rfkill/core.c' line='954' column='1'/>
+        <parameter type-id='eaa32e2f' name='ops_data' filepath='net/rfkill/core.c' line='955' column='1'/>
+        <return type-id='c5b94c75'/>
+      </function-decl>
+      <function-decl name='rfkill_blocked' mangled-name='rfkill_blocked' filepath='net/rfkill/core.c' line='937' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rfkill_blocked'>
+        <parameter type-id='c5b94c75' name='rfkill' filepath='net/rfkill/core.c' line='937' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='rfkill_destroy' mangled-name='rfkill_destroy' filepath='net/rfkill/core.c' line='1128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rfkill_destroy'>
+        <parameter type-id='c5b94c75' name='rfkill' filepath='net/rfkill/core.c' line='1128' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rfkill_init_sw_state' mangled-name='rfkill_init_sw_state' filepath='net/rfkill/core.c' line='606' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rfkill_init_sw_state'>
+        <parameter type-id='c5b94c75' name='rfkill' filepath='net/rfkill/core.c' line='606' column='1'/>
+        <parameter type-id='b50a4934' name='blocked' filepath='net/rfkill/core.c' line='606' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rfkill_register' mangled-name='rfkill_register' filepath='net/rfkill/core.c' line='1034' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rfkill_register'>
+        <parameter type-id='c5b94c75' name='rfkill' filepath='net/rfkill/core.c' line='1034' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rfkill_resume_polling' mangled-name='rfkill_resume_polling' filepath='net/rfkill/core.c' line='873' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rfkill_resume_polling'>
+        <parameter type-id='c5b94c75' name='rfkill' filepath='net/rfkill/core.c' line='873' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rfkill_set_hw_state_reason' mangled-name='rfkill_set_hw_state_reason' filepath='net/rfkill/core.c' line='529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rfkill_set_hw_state_reason'>
+        <parameter type-id='c5b94c75' name='rfkill' filepath='net/rfkill/core.c' line='529' column='1'/>
+        <parameter type-id='b50a4934' name='blocked' filepath='net/rfkill/core.c' line='530' column='1'/>
+        <parameter type-id='7359adad' name='reason' filepath='net/rfkill/core.c' line='530' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='rfkill_set_states' mangled-name='rfkill_set_states' filepath='net/rfkill/core.c' line='620' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rfkill_set_states'>
+        <parameter type-id='c5b94c75' name='rfkill' filepath='net/rfkill/core.c' line='620' column='1'/>
+        <parameter type-id='b50a4934' name='sw' filepath='net/rfkill/core.c' line='620' column='1'/>
+        <parameter type-id='b50a4934' name='hw' filepath='net/rfkill/core.c' line='620' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rfkill_set_sw_state' mangled-name='rfkill_set_sw_state' filepath='net/rfkill/core.c' line='579' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rfkill_set_sw_state'>
+        <parameter type-id='c5b94c75' name='rfkill' filepath='net/rfkill/core.c' line='579' column='1'/>
+        <parameter type-id='b50a4934' name='blocked' filepath='net/rfkill/core.c' line='579' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='rfkill_unregister' mangled-name='rfkill_unregister' filepath='net/rfkill/core.c' line='1104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rfkill_unregister'>
+        <parameter type-id='c5b94c75' name='rfkill' filepath='net/rfkill/core.c' line='1104' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='rfs_needed' type-id='237c0d27' mangled-name='rfs_needed' visibility='default' filepath='net/core/dev.c' line='4373' column='1' elf-symbol-id='rfs_needed'/>
+      <function-decl name='rhashtable_destroy' mangled-name='rhashtable_destroy' filepath='lib/rhashtable.c' line='1168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rhashtable_destroy'>
+        <parameter type-id='e6726ce3' name='ht' filepath='lib/rhashtable.c' line='1168' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rhashtable_free_and_destroy' mangled-name='rhashtable_free_and_destroy' filepath='lib/rhashtable.c' line='1130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rhashtable_free_and_destroy'>
+        <parameter type-id='e6726ce3' name='ht' filepath='lib/rhashtable.c' line='1130' column='1'/>
+        <parameter type-id='debb4ee8' name='free_fn' filepath='lib/rhashtable.c' line='1131' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='lib/rhashtable.c' line='1132' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rhashtable_init' mangled-name='rhashtable_init' filepath='lib/rhashtable.c' line='1015' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rhashtable_init'>
+        <parameter type-id='e6726ce3' name='ht' filepath='lib/rhashtable.c' line='1015' column='1'/>
+        <parameter type-id='44dbf2cd' name='params' filepath='lib/rhashtable.c' line='1016' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rhashtable_insert_slow' mangled-name='rhashtable_insert_slow' filepath='lib/rhashtable.c' line='629' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rhashtable_insert_slow'>
+        <parameter type-id='e6726ce3' name='ht' filepath='lib/rhashtable.c' line='629' column='1'/>
+        <parameter type-id='eaa32e2f' name='key' filepath='lib/rhashtable.c' line='629' column='1'/>
+        <parameter type-id='3cc8739a' name='obj' filepath='lib/rhashtable.c' line='630' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='rhltable_init' mangled-name='rhltable_init' filepath='lib/rhashtable.c' line='1086' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rhltable_init'>
+        <parameter type-id='3c304633' name='hlt' filepath='lib/rhashtable.c' line='1086' column='1'/>
+        <parameter type-id='44dbf2cd' name='params' filepath='lib/rhashtable.c' line='1086' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rht_bucket_nested' mangled-name='rht_bucket_nested' filepath='lib/rhashtable.c' line='1203' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rht_bucket_nested'>
+        <parameter type-id='6a4a6779' name='tbl' filepath='lib/rhashtable.c' line='1204' column='1'/>
+        <parameter type-id='f0981eeb' name='hash' filepath='lib/rhashtable.c' line='1204' column='1'/>
+        <return type-id='33f7eff4'/>
+      </function-decl>
+      <function-decl name='rht_bucket_nested_insert' mangled-name='rht_bucket_nested_insert' filepath='lib/rhashtable.c' line='1214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rht_bucket_nested_insert'>
+        <parameter type-id='e6726ce3' name='ht' filepath='lib/rhashtable.c' line='1215' column='1'/>
+        <parameter type-id='35e7a722' name='tbl' filepath='lib/rhashtable.c' line='1215' column='1'/>
+        <parameter type-id='f0981eeb' name='hash' filepath='lib/rhashtable.c' line='1215' column='1'/>
+        <return type-id='33f7eff4'/>
+      </function-decl>
+      <function-decl name='rng_is_initialized' mangled-name='rng_is_initialized' filepath='drivers/char/random.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rng_is_initialized'>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <var-decl name='root_mem_cgroup' type-id='223696fb' mangled-name='root_mem_cgroup' visibility='default' filepath='mm/memcontrol.c' line='80' column='1' elf-symbol-id='root_mem_cgroup'/>
+      <var-decl name='root_task_group' type-id='2d863538' mangled-name='root_task_group' visibility='default' filepath='kernel/sched/core.c' line='9532' column='1' elf-symbol-id='root_task_group'/>
+      <function-decl name='round_jiffies' mangled-name='round_jiffies' filepath='kernel/time/timer.c' line='390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='round_jiffies'>
+        <parameter type-id='7359adad' name='j' filepath='kernel/time/timer.c' line='390' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='round_jiffies_relative' mangled-name='round_jiffies_relative' filepath='kernel/time/timer.c' line='411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='round_jiffies_relative'>
+        <parameter type-id='7359adad' name='j' filepath='kernel/time/timer.c' line='411' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='round_jiffies_up' mangled-name='round_jiffies_up' filepath='kernel/time/timer.c' line='461' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='round_jiffies_up'>
+        <parameter type-id='7359adad' name='j' filepath='kernel/time/timer.c' line='461' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='rpmsg_chrdev_eptdev_create' mangled-name='rpmsg_chrdev_eptdev_create' filepath='drivers/rpmsg/rpmsg_char.c' line='468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_chrdev_eptdev_create'>
+        <parameter type-id='41ebc58b' name='rpdev' filepath='drivers/rpmsg/rpmsg_char.c' line='468' column='1'/>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/rpmsg/rpmsg_char.c' line='468' column='1'/>
+        <parameter type-id='e2b27ed1' name='chinfo' filepath='drivers/rpmsg/rpmsg_char.c' line='469' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rpmsg_chrdev_eptdev_destroy' mangled-name='rpmsg_chrdev_eptdev_destroy' filepath='drivers/rpmsg/rpmsg_char.c' line='73' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_chrdev_eptdev_destroy'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/rpmsg/rpmsg_char.c' line='73' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/rpmsg/rpmsg_char.c' line='73' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='rpmsg_class' type-id='67aca04f' mangled-name='rpmsg_class' visibility='default' filepath='drivers/rpmsg/rpmsg_core.c' line='23' column='1' elf-symbol-id='rpmsg_class'/>
+      <function-decl name='rpmsg_create_channel' mangled-name='rpmsg_create_channel' filepath='drivers/rpmsg/rpmsg_core.c' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_create_channel'>
+        <parameter type-id='41ebc58b' name='rpdev' filepath='drivers/rpmsg/rpmsg_core.c' line='34' column='1'/>
+        <parameter type-id='cc769659' name='chinfo' filepath='drivers/rpmsg/rpmsg_core.c' line='35' column='1'/>
+        <return type-id='41ebc58b'/>
+      </function-decl>
+      <function-decl name='rpmsg_create_ept' mangled-name='rpmsg_create_ept' filepath='drivers/rpmsg/rpmsg_core.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_create_ept'>
+        <parameter type-id='41ebc58b' name='rpdev' filepath='drivers/rpmsg/rpmsg_core.c' line='110' column='1'/>
+        <parameter type-id='f0966175' name='cb' filepath='drivers/rpmsg/rpmsg_core.c' line='111' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/rpmsg/rpmsg_core.c' line='111' column='1'/>
+        <parameter type-id='e2b27ed1' name='chinfo' filepath='drivers/rpmsg/rpmsg_core.c' line='112' column='1'/>
+        <return type-id='feb59272'/>
+      </function-decl>
+      <function-decl name='rpmsg_destroy_ept' mangled-name='rpmsg_destroy_ept' filepath='drivers/rpmsg/rpmsg_core.c' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_destroy_ept'>
+        <parameter type-id='feb59272' name='ept' filepath='drivers/rpmsg/rpmsg_core.c' line='129' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rpmsg_find_device' mangled-name='rpmsg_find_device' filepath='drivers/rpmsg/rpmsg_core.c' line='412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_find_device'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/rpmsg/rpmsg_core.c' line='412' column='1'/>
+        <parameter type-id='cc769659' name='chinfo' filepath='drivers/rpmsg/rpmsg_core.c' line='413' column='1'/>
+        <return type-id='fa0b179b'/>
+      </function-decl>
+      <function-decl name='rpmsg_get_signals' mangled-name='rpmsg_get_signals' filepath='drivers/rpmsg/rpmsg_core.c' line='339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_get_signals'>
+        <parameter type-id='feb59272' name='ept' filepath='drivers/rpmsg/rpmsg_core.c' line='339' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rpmsg_poll' mangled-name='rpmsg_poll' filepath='drivers/rpmsg/rpmsg_core.c' line='290' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_poll'>
+        <parameter type-id='feb59272' name='ept' filepath='drivers/rpmsg/rpmsg_core.c' line='290' column='1'/>
+        <parameter type-id='77e79a4b' name='filp' filepath='drivers/rpmsg/rpmsg_core.c' line='290' column='1'/>
+        <parameter type-id='a54c778f' name='wait' filepath='drivers/rpmsg/rpmsg_core.c' line='291' column='1'/>
+        <return type-id='8f254b08'/>
+      </function-decl>
+      <function-decl name='rpmsg_register_device' mangled-name='rpmsg_register_device' filepath='drivers/rpmsg/rpmsg_core.c' line='634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_register_device'>
+        <parameter type-id='41ebc58b' name='rpdev' filepath='drivers/rpmsg/rpmsg_core.c' line='634' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rpmsg_release_channel' mangled-name='rpmsg_release_channel' filepath='drivers/rpmsg/rpmsg_core.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_release_channel'>
+        <parameter type-id='41ebc58b' name='rpdev' filepath='drivers/rpmsg/rpmsg_core.c' line='56' column='1'/>
+        <parameter type-id='cc769659' name='chinfo' filepath='drivers/rpmsg/rpmsg_core.c' line='57' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rpmsg_rx_done' mangled-name='rpmsg_rx_done' filepath='drivers/rpmsg/rpmsg_core.c' line='376' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_rx_done'>
+        <parameter type-id='feb59272' name='ept' filepath='drivers/rpmsg/rpmsg_core.c' line='376' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/rpmsg/rpmsg_core.c' line='376' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rpmsg_send' mangled-name='rpmsg_send' filepath='drivers/rpmsg/rpmsg_core.c' line='154' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_send'>
+        <parameter type-id='feb59272' name='ept' filepath='drivers/rpmsg/rpmsg_core.c' line='154' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/rpmsg/rpmsg_core.c' line='154' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='drivers/rpmsg/rpmsg_core.c' line='154' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rpmsg_sendto' mangled-name='rpmsg_sendto' filepath='drivers/rpmsg/rpmsg_core.c' line='183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_sendto'>
+        <parameter type-id='feb59272' name='ept' filepath='drivers/rpmsg/rpmsg_core.c' line='183' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/rpmsg/rpmsg_core.c' line='183' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='drivers/rpmsg/rpmsg_core.c' line='183' column='1'/>
+        <parameter type-id='19c2251e' name='dst' filepath='drivers/rpmsg/rpmsg_core.c' line='183' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rpmsg_set_signals' mangled-name='rpmsg_set_signals' filepath='drivers/rpmsg/rpmsg_core.c' line='358' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_set_signals'>
+        <parameter type-id='feb59272' name='ept' filepath='drivers/rpmsg/rpmsg_core.c' line='358' column='1'/>
+        <parameter type-id='19c2251e' name='set' filepath='drivers/rpmsg/rpmsg_core.c' line='358' column='1'/>
+        <parameter type-id='19c2251e' name='clear' filepath='drivers/rpmsg/rpmsg_core.c' line='358' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rpmsg_trysend' mangled-name='rpmsg_trysend' filepath='drivers/rpmsg/rpmsg_core.c' line='243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_trysend'>
+        <parameter type-id='feb59272' name='ept' filepath='drivers/rpmsg/rpmsg_core.c' line='243' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/rpmsg/rpmsg_core.c' line='243' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='drivers/rpmsg/rpmsg_core.c' line='243' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rpmsg_unregister_device' mangled-name='rpmsg_unregister_device' filepath='drivers/rpmsg/rpmsg_core.c' line='658' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_unregister_device'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/rpmsg/rpmsg_core.c' line='658' column='1'/>
+        <parameter type-id='cc769659' name='chinfo' filepath='drivers/rpmsg/rpmsg_core.c' line='659' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rproc_add' mangled-name='rproc_add' filepath='drivers/remoteproc/remoteproc_core.c' line='2378' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_add'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2378' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rproc_add_carveout' mangled-name='rproc_add_carveout' filepath='drivers/remoteproc/remoteproc_core.c' line='1004' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_add_carveout'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='1004' column='1'/>
+        <parameter type-id='abf87da2' name='mem' filepath='drivers/remoteproc/remoteproc_core.c' line='1004' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rproc_add_subdev' mangled-name='rproc_add_subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2741' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_add_subdev'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2741' column='1'/>
+        <parameter type-id='3591079f' name='subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2741' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rproc_alloc' mangled-name='rproc_alloc' filepath='drivers/remoteproc/remoteproc_core.c' line='2552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_alloc'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/remoteproc/remoteproc_core.c' line='2552' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/remoteproc/remoteproc_core.c' line='2552' column='1'/>
+        <parameter type-id='48daa4cd' name='ops' filepath='drivers/remoteproc/remoteproc_core.c' line='2553' column='1'/>
+        <parameter type-id='80f4b756' name='firmware' filepath='drivers/remoteproc/remoteproc_core.c' line='2554' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='drivers/remoteproc/remoteproc_core.c' line='2554' column='1'/>
+        <return type-id='5771c601'/>
+      </function-decl>
+      <function-decl name='rproc_boot' mangled-name='rproc_boot' filepath='drivers/remoteproc/remoteproc_core.c' line='2031' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_boot'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2031' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rproc_coredump' mangled-name='rproc_coredump' filepath='drivers/remoteproc/remoteproc_coredump.c' line='235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_coredump'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_coredump.c' line='235' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rproc_coredump_add_custom_segment' mangled-name='rproc_coredump_add_custom_segment' filepath='drivers/remoteproc/remoteproc_coredump.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_coredump_add_custom_segment'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_coredump.c' line='79' column='1'/>
+        <parameter type-id='cf29c9b3' name='da' filepath='drivers/remoteproc/remoteproc_coredump.c' line='80' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/remoteproc/remoteproc_coredump.c' line='80' column='1'/>
+        <parameter type-id='244b1321' name='dumpfn' filepath='drivers/remoteproc/remoteproc_coredump.c' line='81' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/remoteproc/remoteproc_coredump.c' line='85' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rproc_coredump_add_segment' mangled-name='rproc_coredump_add_segment' filepath='drivers/remoteproc/remoteproc_coredump.c' line='48' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_coredump_add_segment'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_coredump.c' line='48' column='1'/>
+        <parameter type-id='cf29c9b3' name='da' filepath='drivers/remoteproc/remoteproc_coredump.c' line='48' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/remoteproc/remoteproc_coredump.c' line='48' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rproc_coredump_cleanup' mangled-name='rproc_coredump_cleanup' filepath='drivers/remoteproc/remoteproc_coredump.c' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_coredump_cleanup'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_coredump.c' line='26' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rproc_coredump_set_elf_info' mangled-name='rproc_coredump_set_elf_info' filepath='drivers/remoteproc/remoteproc_coredump.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_coredump_set_elf_info'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_coredump.c' line='114' column='1'/>
+        <parameter type-id='f9b06939' name='class' filepath='drivers/remoteproc/remoteproc_coredump.c' line='114' column='1'/>
+        <parameter type-id='1dc6a898' name='machine' filepath='drivers/remoteproc/remoteproc_coredump.c' line='114' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rproc_coredump_using_sections' mangled-name='rproc_coredump_using_sections' filepath='drivers/remoteproc/remoteproc_coredump.c' line='345' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_coredump_using_sections'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_coredump.c' line='345' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rproc_da_to_va' mangled-name='rproc_da_to_va' filepath='drivers/remoteproc/remoteproc_core.c' line='196' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_da_to_va'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='196' column='1'/>
+        <parameter type-id='91ce1af9' name='da' filepath='drivers/remoteproc/remoteproc_core.c' line='196' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/remoteproc/remoteproc_core.c' line='196' column='1'/>
+        <parameter type-id='d8e6b335' name='is_iomem' filepath='drivers/remoteproc/remoteproc_core.c' line='196' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='rproc_del' mangled-name='rproc_del' filepath='drivers/remoteproc/remoteproc_core.c' line='2665' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_del'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2665' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rproc_del_carveout' mangled-name='rproc_del_carveout' filepath='drivers/remoteproc/remoteproc_core.c' line='1017' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_del_carveout'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='1017' column='1'/>
+        <parameter type-id='abf87da2' name='mem' filepath='drivers/remoteproc/remoteproc_core.c' line='1017' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rproc_elf_find_loaded_rsc_table' mangled-name='rproc_elf_find_loaded_rsc_table' filepath='drivers/remoteproc/remoteproc_elf_loader.c' line='372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_elf_find_loaded_rsc_table'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_elf_loader.c' line='372' column='1'/>
+        <parameter type-id='fce0537d' name='fw' filepath='drivers/remoteproc/remoteproc_elf_loader.c' line='373' column='1'/>
+        <return type-id='954953c8'/>
+      </function-decl>
+      <function-decl name='rproc_elf_get_boot_addr' mangled-name='rproc_elf_get_boot_addr' filepath='drivers/remoteproc/remoteproc_elf_loader.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_elf_get_boot_addr'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_elf_loader.c' line='128' column='1'/>
+        <parameter type-id='fce0537d' name='fw' filepath='drivers/remoteproc/remoteproc_elf_loader.c' line='128' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='rproc_elf_load_rsc_table' mangled-name='rproc_elf_load_rsc_table' filepath='drivers/remoteproc/remoteproc_elf_loader.c' line='326' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_elf_load_rsc_table'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_elf_loader.c' line='326' column='1'/>
+        <parameter type-id='fce0537d' name='fw' filepath='drivers/remoteproc/remoteproc_elf_loader.c' line='326' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rproc_elf_load_segments' mangled-name='rproc_elf_load_segments' filepath='drivers/remoteproc/remoteproc_elf_loader.c' line='160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_elf_load_segments'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_elf_loader.c' line='160' column='1'/>
+        <parameter type-id='fce0537d' name='fw' filepath='drivers/remoteproc/remoteproc_elf_loader.c' line='160' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rproc_elf_sanity_check' mangled-name='rproc_elf_sanity_check' filepath='drivers/remoteproc/remoteproc_elf_loader.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_elf_sanity_check'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_elf_loader.c' line='37' column='1'/>
+        <parameter type-id='fce0537d' name='fw' filepath='drivers/remoteproc/remoteproc_elf_loader.c' line='37' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rproc_free' mangled-name='rproc_free' filepath='drivers/remoteproc/remoteproc_core.c' line='2628' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_free'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2628' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rproc_get_by_child' mangled-name='rproc_get_by_child' filepath='drivers/remoteproc/remoteproc_core.c' line='2764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_get_by_child'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/remoteproc/remoteproc_core.c' line='2764' column='1'/>
+        <return type-id='5771c601'/>
+      </function-decl>
+      <function-decl name='rproc_get_by_phandle' mangled-name='rproc_get_by_phandle' filepath='drivers/remoteproc/remoteproc_core.c' line='2221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_get_by_phandle'>
+        <parameter type-id='6e394fba' name='phandle' filepath='drivers/remoteproc/remoteproc_core.c' line='2221' column='1'/>
+        <return type-id='5771c601'/>
+      </function-decl>
+      <function-decl name='rproc_mem_entry_free' mangled-name='rproc_mem_entry_free' filepath='drivers/remoteproc/remoteproc_core.c' line='1085' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_mem_entry_free'>
+        <parameter type-id='abf87da2' name='mem' filepath='drivers/remoteproc/remoteproc_core.c' line='1085' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rproc_mem_entry_init' mangled-name='rproc_mem_entry_init' filepath='drivers/remoteproc/remoteproc_core.c' line='1048' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_mem_entry_init'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/remoteproc/remoteproc_core.c' line='1048' column='1'/>
+        <parameter type-id='eaa32e2f' name='va' filepath='drivers/remoteproc/remoteproc_core.c' line='1049' column='1'/>
+        <parameter type-id='cf29c9b3' name='dma' filepath='drivers/remoteproc/remoteproc_core.c' line='1049' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/remoteproc/remoteproc_core.c' line='1049' column='1'/>
+        <parameter type-id='19c2251e' name='da' filepath='drivers/remoteproc/remoteproc_core.c' line='1049' column='1'/>
+        <parameter type-id='06412f4e' name='alloc' filepath='drivers/remoteproc/remoteproc_core.c' line='1050' column='1'/>
+        <parameter type-id='06412f4e' name='release' filepath='drivers/remoteproc/remoteproc_core.c' line='1051' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/remoteproc/remoteproc_core.c' line='1052' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='abf87da2'/>
+      </function-decl>
+      <function-decl name='rproc_of_parse_firmware' mangled-name='rproc_of_parse_firmware' filepath='drivers/remoteproc/remoteproc_core.c' line='1143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_of_parse_firmware'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/remoteproc/remoteproc_core.c' line='1143' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/remoteproc/remoteproc_core.c' line='1143' column='1'/>
+        <parameter type-id='7d3cd834' name='fw_name' filepath='drivers/remoteproc/remoteproc_core.c' line='1143' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rproc_of_resm_mem_entry_init' mangled-name='rproc_of_resm_mem_entry_init' filepath='drivers/remoteproc/remoteproc_core.c' line='1107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_of_resm_mem_entry_init'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/remoteproc/remoteproc_core.c' line='1107' column='1'/>
+        <parameter type-id='19c2251e' name='of_resm_idx' filepath='drivers/remoteproc/remoteproc_core.c' line='1107' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/remoteproc/remoteproc_core.c' line='1107' column='1'/>
+        <parameter type-id='19c2251e' name='da' filepath='drivers/remoteproc/remoteproc_core.c' line='1108' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/remoteproc/remoteproc_core.c' line='1108' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='abf87da2'/>
+      </function-decl>
+      <function-decl name='rproc_put' mangled-name='rproc_put' filepath='drivers/remoteproc/remoteproc_core.c' line='2643' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_put'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2643' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rproc_remove_subdev' mangled-name='rproc_remove_subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_remove_subdev'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2752' column='1'/>
+        <parameter type-id='3591079f' name='subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2752' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rproc_report_crash' mangled-name='rproc_report_crash' filepath='drivers/remoteproc/remoteproc_core.c' line='2786' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_report_crash'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2786' column='1'/>
+        <parameter type-id='25751b8f' name='type' filepath='drivers/remoteproc/remoteproc_core.c' line='2786' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rproc_set_firmware' mangled-name='rproc_set_firmware' filepath='drivers/remoteproc/remoteproc_core.c' line='2276' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_set_firmware'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2276' column='1'/>
+        <parameter type-id='80f4b756' name='fw_name' filepath='drivers/remoteproc/remoteproc_core.c' line='2276' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rproc_shutdown' mangled-name='rproc_shutdown' filepath='drivers/remoteproc/remoteproc_core.c' line='2109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_shutdown'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2109' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rproc_vq_interrupt' mangled-name='rproc_vq_interrupt' filepath='drivers/remoteproc/remoteproc_virtio.c' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_vq_interrupt'>
+        <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_virtio.c' line='51' column='1'/>
+        <parameter type-id='95e97e5e' name='notifyid' filepath='drivers/remoteproc/remoteproc_virtio.c' line='51' column='1'/>
+        <return type-id='4bdecfd7'/>
+      </function-decl>
+      <var-decl name='rps_cpu_mask' type-id='19c2251e' mangled-name='rps_cpu_mask' visibility='default' filepath='net/core/dev.c' line='4368' column='1' elf-symbol-id='rps_cpu_mask'/>
+      <var-decl name='rps_needed' type-id='237c0d27' mangled-name='rps_needed' visibility='default' filepath='net/core/dev.c' line='4371' column='1' elf-symbol-id='rps_needed'/>
+      <var-decl name='rps_sock_flow_table' type-id='2293f1dd' mangled-name='rps_sock_flow_table' visibility='default' filepath='net/core/dev.c' line='4366' column='1' elf-symbol-id='rps_sock_flow_table'/>
+      <function-decl name='rq_flush_dcache_pages' mangled-name='rq_flush_dcache_pages' filepath='block/blk-core.c' line='1518' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rq_flush_dcache_pages'>
+        <parameter type-id='3dad1a48' name='rq' filepath='block/blk-core.c' line='1518' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rt6_lookup' mangled-name='rt6_lookup' filepath='net/ipv6/route.c' line='1262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rt6_lookup'>
+        <parameter type-id='a2bff676' name='net' filepath='net/ipv6/route.c' line='1262' column='1'/>
+        <parameter type-id='fea9c20b' name='daddr' filepath='net/ipv6/route.c' line='1262' column='1'/>
+        <parameter type-id='fea9c20b' name='saddr' filepath='net/ipv6/route.c' line='1263' column='1'/>
+        <parameter type-id='95e97e5e' name='oif' filepath='net/ipv6/route.c' line='1263' column='1'/>
+        <parameter type-id='11f4a000' name='skb' filepath='net/ipv6/route.c' line='1264' column='1'/>
+        <parameter type-id='95e97e5e' name='strict' filepath='net/ipv6/route.c' line='1264' column='1'/>
+        <return type-id='6ceb7782'/>
+      </function-decl>
+      <function-decl name='rt_mutex_lock' mangled-name='rt_mutex_lock' filepath='kernel/locking/rtmutex_api.c' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rt_mutex_lock'>
+        <parameter type-id='3992a90f' name='lock' filepath='kernel/locking/rtmutex_api.c' line='64' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rt_mutex_trylock' mangled-name='rt_mutex_trylock' filepath='kernel/locking/rtmutex_api.c' line='98' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rt_mutex_trylock'>
+        <parameter type-id='3992a90f' name='lock' filepath='kernel/locking/rtmutex_api.c' line='98' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rt_mutex_unlock' mangled-name='rt_mutex_unlock' filepath='kernel/locking/rtmutex_api.c' line='120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rt_mutex_unlock'>
+        <parameter type-id='3992a90f' name='lock' filepath='kernel/locking/rtmutex_api.c' line='120' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rtc_add_group' mangled-name='rtc_add_group' filepath='drivers/rtc/sysfs.c' line='348' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtc_add_group'>
+        <parameter type-id='5992ae83' name='rtc' filepath='drivers/rtc/sysfs.c' line='348' column='1'/>
+        <parameter type-id='8ff9530e' name='grp' filepath='drivers/rtc/sysfs.c' line='348' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rtc_class_close' mangled-name='rtc_class_close' filepath='drivers/rtc/interface.c' line='703' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtc_class_close'>
+        <parameter type-id='5992ae83' name='rtc' filepath='drivers/rtc/interface.c' line='703' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rtc_class_open' mangled-name='rtc_class_open' filepath='drivers/rtc/interface.c' line='683' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtc_class_open'>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/rtc/interface.c' line='683' column='1'/>
+        <return type-id='5992ae83'/>
+      </function-decl>
+      <function-decl name='rtc_ktime_to_tm' mangled-name='rtc_ktime_to_tm' filepath='drivers/rtc/lib.c' line='187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtc_ktime_to_tm'>
+        <parameter type-id='fbc017ef' name='kt' filepath='drivers/rtc/lib.c' line='187' column='1'/>
+        <return type-id='fa8285d4'/>
+      </function-decl>
+      <function-decl name='rtc_read_alarm' mangled-name='rtc_read_alarm' filepath='drivers/rtc/interface.c' line='386' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtc_read_alarm'>
+        <parameter type-id='5992ae83' name='rtc' filepath='drivers/rtc/interface.c' line='386' column='1'/>
+        <parameter type-id='6d120807' name='alarm' filepath='drivers/rtc/interface.c' line='386' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rtc_read_time' mangled-name='rtc_read_time' filepath='drivers/rtc/interface.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtc_read_time'>
+        <parameter type-id='5992ae83' name='rtc' filepath='drivers/rtc/interface.c' line='110' column='1'/>
+        <parameter type-id='2b8e7a42' name='tm' filepath='drivers/rtc/interface.c' line='110' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rtc_set_alarm' mangled-name='rtc_set_alarm' filepath='drivers/rtc/interface.c' line='448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtc_set_alarm'>
+        <parameter type-id='5992ae83' name='rtc' filepath='drivers/rtc/interface.c' line='448' column='1'/>
+        <parameter type-id='6d120807' name='alarm' filepath='drivers/rtc/interface.c' line='448' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rtc_set_time' mangled-name='rtc_set_time' filepath='drivers/rtc/interface.c' line='126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtc_set_time'>
+        <parameter type-id='5992ae83' name='rtc' filepath='drivers/rtc/interface.c' line='126' column='1'/>
+        <parameter type-id='2b8e7a42' name='tm' filepath='drivers/rtc/interface.c' line='126' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rtc_time64_to_tm' mangled-name='rtc_time64_to_tm' filepath='drivers/rtc/lib.c' line='52' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtc_time64_to_tm'>
+        <parameter type-id='1afd27ac' name='time' filepath='drivers/rtc/lib.c' line='52' column='1'/>
+        <parameter type-id='2b8e7a42' name='tm' filepath='drivers/rtc/lib.c' line='52' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rtc_tm_to_ktime' mangled-name='rtc_tm_to_ktime' filepath='drivers/rtc/lib.c' line='178' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtc_tm_to_ktime'>
+        <parameter type-id='fa8285d4' name='tm' filepath='drivers/rtc/lib.c' line='178' column='1'/>
+        <return type-id='fbc017ef'/>
+      </function-decl>
+      <function-decl name='rtc_tm_to_time64' mangled-name='rtc_tm_to_time64' filepath='drivers/rtc/lib.c' line='168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtc_tm_to_time64'>
+        <parameter type-id='2b8e7a42' name='tm' filepath='drivers/rtc/lib.c' line='168' column='1'/>
+        <return type-id='1afd27ac'/>
+      </function-decl>
+      <function-decl name='rtc_update_irq' mangled-name='rtc_update_irq' filepath='drivers/rtc/interface.c' line='672' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtc_update_irq'>
+        <parameter type-id='5992ae83' name='rtc' filepath='drivers/rtc/interface.c' line='672' column='1'/>
+        <parameter type-id='7359adad' name='num' filepath='drivers/rtc/interface.c' line='673' column='1'/>
+        <parameter type-id='7359adad' name='events' filepath='drivers/rtc/interface.c' line='673' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rtc_valid_tm' mangled-name='rtc_valid_tm' filepath='drivers/rtc/lib.c' line='147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtc_valid_tm'>
+        <parameter type-id='2b8e7a42' name='tm' filepath='drivers/rtc/lib.c' line='147' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rtnl_is_locked' mangled-name='rtnl_is_locked' filepath='net/core/rtnetlink.c' line='122' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtnl_is_locked'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rtnl_link_register' mangled-name='rtnl_link_register' filepath='net/core/rtnetlink.c' line='398' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtnl_link_register'>
+        <parameter type-id='959ab461' name='ops' filepath='net/core/rtnetlink.c' line='398' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rtnl_link_unregister' mangled-name='rtnl_link_unregister' filepath='net/core/rtnetlink.c' line='480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtnl_link_unregister'>
+        <parameter type-id='959ab461' name='ops' filepath='net/core/rtnetlink.c' line='480' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rtnl_lock' mangled-name='rtnl_lock' filepath='net/core/rtnetlink.c' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtnl_lock'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='rtnl_trylock' mangled-name='rtnl_trylock' filepath='net/core/rtnetlink.c' line='116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtnl_trylock'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rtnl_unicast' mangled-name='rtnl_unicast' filepath='net/core/rtnetlink.c' line='717' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtnl_unicast'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/rtnetlink.c' line='717' column='1'/>
+        <parameter type-id='a2bff676' name='net' filepath='net/core/rtnetlink.c' line='717' column='1'/>
+        <parameter type-id='19c2251e' name='pid' filepath='net/core/rtnetlink.c' line='717' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='rtnl_unlock' mangled-name='rtnl_unlock' filepath='net/core/rtnetlink.c' line='109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rtnl_unlock'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='runqueues' type-id='d5ee6a94' mangled-name='runqueues' visibility='default' filepath='kernel/sched/core.c' line='58' column='1' elf-symbol-id='runqueues'/>
+      <function-decl name='sb800_prefetch' mangled-name='sb800_prefetch' filepath='drivers/usb/host/pci-quirks.c' line='194' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sb800_prefetch'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/host/pci-quirks.c' line='194' column='1'/>
+        <parameter type-id='95e97e5e' name='on' filepath='drivers/usb/host/pci-quirks.c' line='194' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sb_min_blocksize' mangled-name='sb_min_blocksize' filepath='block/bdev.c' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sb_min_blocksize'>
+        <parameter type-id='42c8f564' name='sb' filepath='block/bdev.c' line='177' column='1'/>
+        <parameter type-id='95e97e5e' name='size' filepath='block/bdev.c' line='177' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sb_set_blocksize' mangled-name='sb_set_blocksize' filepath='block/bdev.c' line='164' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sb_set_blocksize'>
+        <parameter type-id='42c8f564' name='sb' filepath='block/bdev.c' line='164' column='1'/>
+        <parameter type-id='95e97e5e' name='size' filepath='block/bdev.c' line='164' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sbitmap_add_wait_queue' mangled-name='sbitmap_add_wait_queue' filepath='lib/sbitmap.c' line='667' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sbitmap_add_wait_queue'>
+        <parameter type-id='75396bad' name='sbq' filepath='lib/sbitmap.c' line='667' column='1'/>
+        <parameter type-id='cdff193b' name='ws' filepath='lib/sbitmap.c' line='668' column='1'/>
+        <parameter type-id='2c01b31d' name='sbq_wait' filepath='lib/sbitmap.c' line='669' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sbitmap_any_bit_set' mangled-name='sbitmap_any_bit_set' filepath='lib/sbitmap.c' line='300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sbitmap_any_bit_set'>
+        <parameter type-id='24e47bfc' name='sb' filepath='lib/sbitmap.c' line='300' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='sbitmap_del_wait_queue' mangled-name='sbitmap_del_wait_queue' filepath='lib/sbitmap.c' line='679' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sbitmap_del_wait_queue'>
+        <parameter type-id='2c01b31d' name='sbq_wait' filepath='lib/sbitmap.c' line='679' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sbitmap_init_node' mangled-name='sbitmap_init_node' filepath='lib/sbitmap.c' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sbitmap_init_node'>
+        <parameter type-id='56033689' name='sb' filepath='lib/sbitmap.c' line='83' column='1'/>
+        <parameter type-id='f0981eeb' name='depth' filepath='lib/sbitmap.c' line='83' column='1'/>
+        <parameter type-id='95e97e5e' name='shift' filepath='lib/sbitmap.c' line='83' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='lib/sbitmap.c' line='84' column='1'/>
+        <parameter type-id='95e97e5e' name='node' filepath='lib/sbitmap.c' line='84' column='1'/>
+        <parameter type-id='b50a4934' name='round_robin' filepath='lib/sbitmap.c' line='84' column='1'/>
+        <parameter type-id='b50a4934' name='alloc_hint' filepath='lib/sbitmap.c' line='85' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sbitmap_queue_clear' mangled-name='sbitmap_queue_clear' filepath='lib/sbitmap.c' line='580' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sbitmap_queue_clear'>
+        <parameter type-id='75396bad' name='sbq' filepath='lib/sbitmap.c' line='580' column='1'/>
+        <parameter type-id='f0981eeb' name='nr' filepath='lib/sbitmap.c' line='580' column='1'/>
+        <parameter type-id='f0981eeb' name='cpu' filepath='lib/sbitmap.c' line='581' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sbitmap_queue_init_node' mangled-name='sbitmap_queue_init_node' filepath='lib/sbitmap.c' line='429' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sbitmap_queue_init_node'>
+        <parameter type-id='75396bad' name='sbq' filepath='lib/sbitmap.c' line='429' column='1'/>
+        <parameter type-id='f0981eeb' name='depth' filepath='lib/sbitmap.c' line='429' column='1'/>
+        <parameter type-id='95e97e5e' name='shift' filepath='lib/sbitmap.c' line='430' column='1'/>
+        <parameter type-id='b50a4934' name='round_robin' filepath='lib/sbitmap.c' line='430' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='lib/sbitmap.c' line='430' column='1'/>
+        <parameter type-id='95e97e5e' name='node' filepath='lib/sbitmap.c' line='430' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sbitmap_queue_min_shallow_depth' mangled-name='sbitmap_queue_min_shallow_depth' filepath='lib/sbitmap.c' line='501' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sbitmap_queue_min_shallow_depth'>
+        <parameter type-id='75396bad' name='sbq' filepath='lib/sbitmap.c' line='501' column='1'/>
+        <parameter type-id='f0981eeb' name='min_shallow_depth' filepath='lib/sbitmap.c' line='502' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sbitmap_queue_resize' mangled-name='sbitmap_queue_resize' filepath='lib/sbitmap.c' line='479' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sbitmap_queue_resize'>
+        <parameter type-id='75396bad' name='sbq' filepath='lib/sbitmap.c' line='479' column='1'/>
+        <parameter type-id='f0981eeb' name='depth' filepath='lib/sbitmap.c' line='479' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sbitmap_queue_show' mangled-name='sbitmap_queue_show' filepath='lib/sbitmap.c' line='631' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sbitmap_queue_show'>
+        <parameter type-id='75396bad' name='sbq' filepath='lib/sbitmap.c' line='631' column='1'/>
+        <parameter type-id='f8dc9def' name='m' filepath='lib/sbitmap.c' line='631' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='scatterwalk_ffwd' mangled-name='scatterwalk_ffwd' filepath='crypto/scatterwalk.c' line='72' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scatterwalk_ffwd'>
+        <parameter type-id='bf3ef905' name='dst' filepath='crypto/scatterwalk.c' line='72' column='1'/>
+        <parameter type-id='bf3ef905' name='src' filepath='crypto/scatterwalk.c' line='73' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='crypto/scatterwalk.c' line='74' column='1'/>
+        <return type-id='bf3ef905'/>
+      </function-decl>
+      <function-decl name='scatterwalk_map_and_copy' mangled-name='scatterwalk_map_and_copy' filepath='crypto/scatterwalk.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scatterwalk_map_and_copy'>
+        <parameter type-id='eaa32e2f' name='buf' filepath='crypto/scatterwalk.c' line='55' column='1'/>
+        <parameter type-id='bf3ef905' name='sg' filepath='crypto/scatterwalk.c' line='55' column='1'/>
+        <parameter type-id='f0981eeb' name='start' filepath='crypto/scatterwalk.c' line='56' column='1'/>
+        <parameter type-id='f0981eeb' name='nbytes' filepath='crypto/scatterwalk.c' line='56' column='1'/>
+        <parameter type-id='95e97e5e' name='out' filepath='crypto/scatterwalk.c' line='56' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sched_clock' mangled-name='sched_clock' filepath='kernel/time/sched_clock.c' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_clock'>
+        <return type-id='0d77e947'/>
+      </function-decl>
+      <function-decl name='sched_clock_register' mangled-name='sched_clock_register' filepath='kernel/time/sched_clock.c' line='153' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_clock_register'>
+        <parameter type-id='0e70db3e' name='read' filepath='kernel/time/sched_clock.c' line='153' column='1'/>
+        <parameter type-id='95e97e5e' name='bits' filepath='kernel/time/sched_clock.c' line='153' column='1'/>
+        <parameter type-id='7359adad' name='rate' filepath='kernel/time/sched_clock.c' line='153' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='sched_feat_keys' type-id='98c5d52c' mangled-name='sched_feat_keys' visibility='default' filepath='kernel/sched/debug.c' line='80' column='1' elf-symbol-id='sched_feat_keys'/>
+      <var-decl name='sched_feat_names' type-id='3a06f3b2' mangled-name='sched_feat_names' visibility='default' filepath='kernel/sched/debug.c' line='51' column='1' elf-symbol-id='sched_feat_names'/>
+      <function-decl name='sched_set_fifo' mangled-name='sched_set_fifo' filepath='kernel/sched/core.c' line='7813' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_set_fifo'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7813' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sched_set_fifo_low' mangled-name='sched_set_fifo_low' filepath='kernel/sched/core.c' line='7823' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_set_fifo_low'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7823' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sched_set_normal' mangled-name='sched_set_normal' filepath='kernel/sched/core.c' line='7830' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_set_normal'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7830' column='1'/>
+        <parameter type-id='95e97e5e' name='nice' filepath='kernel/sched/core.c' line='7830' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sched_setattr' mangled-name='sched_setattr' filepath='kernel/sched/core.c' line='7763' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setattr'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7763' column='1'/>
+        <parameter type-id='8abbb6c3' name='attr' filepath='kernel/sched/core.c' line='7763' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sched_setattr_nocheck' mangled-name='sched_setattr_nocheck' filepath='kernel/sched/core.c' line='7769' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setattr_nocheck'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7769' column='1'/>
+        <parameter type-id='8abbb6c3' name='attr' filepath='kernel/sched/core.c' line='7769' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sched_setscheduler' mangled-name='sched_setscheduler' filepath='kernel/sched/core.c' line='7756' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setscheduler'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7756' column='1'/>
+        <parameter type-id='95e97e5e' name='policy' filepath='kernel/sched/core.c' line='7756' column='1'/>
+        <parameter type-id='36fca399' name='param' filepath='kernel/sched/core.c' line='7757' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sched_setscheduler_nocheck' mangled-name='sched_setscheduler_nocheck' filepath='kernel/sched/core.c' line='7788' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setscheduler_nocheck'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7788' column='1'/>
+        <parameter type-id='95e97e5e' name='policy' filepath='kernel/sched/core.c' line='7788' column='1'/>
+        <parameter type-id='36fca399' name='param' filepath='kernel/sched/core.c' line='7789' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sched_show_task' mangled-name='sched_show_task' filepath='kernel/sched/core.c' line='8765' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_show_task'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='8765' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sched_trace_cfs_rq_avg' mangled-name='sched_trace_cfs_rq_avg' filepath='kernel/sched/fair.c' line='12135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_cfs_rq_avg'>
+        <parameter type-id='a6892387' name='cfs_rq' filepath='kernel/sched/fair.c' line='12135' column='1'/>
+        <return type-id='847e6fee'/>
+      </function-decl>
+      <function-decl name='sched_trace_cfs_rq_cpu' mangled-name='sched_trace_cfs_rq_cpu' filepath='kernel/sched/fair.c' line='12159' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_cfs_rq_cpu'>
+        <parameter type-id='a6892387' name='cfs_rq' filepath='kernel/sched/fair.c' line='12159' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sched_trace_cfs_rq_path' mangled-name='sched_trace_cfs_rq_path' filepath='kernel/sched/fair.c' line='12145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_cfs_rq_path'>
+        <parameter type-id='a6892387' name='cfs_rq' filepath='kernel/sched/fair.c' line='12145' column='1'/>
+        <parameter type-id='26a90f95' name='str' filepath='kernel/sched/fair.c' line='12145' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='kernel/sched/fair.c' line='12145' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='sched_trace_rd_span' mangled-name='sched_trace_rd_span' filepath='kernel/sched/fair.c' line='12213' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_rd_span'>
+        <parameter type-id='c13bca88' name='rd' filepath='kernel/sched/fair.c' line='12213' column='1'/>
+        <return type-id='5f8a1ac4'/>
+      </function-decl>
+      <function-decl name='sched_trace_rq_avg_dl' mangled-name='sched_trace_rq_avg_dl' filepath='kernel/sched/fair.c' line='12175' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_rq_avg_dl'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/fair.c' line='12175' column='1'/>
+        <return type-id='847e6fee'/>
+      </function-decl>
+      <function-decl name='sched_trace_rq_avg_irq' mangled-name='sched_trace_rq_avg_irq' filepath='kernel/sched/fair.c' line='12185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_rq_avg_irq'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/fair.c' line='12185' column='1'/>
+        <return type-id='847e6fee'/>
+      </function-decl>
+      <function-decl name='sched_trace_rq_avg_rt' mangled-name='sched_trace_rq_avg_rt' filepath='kernel/sched/fair.c' line='12165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_rq_avg_rt'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/fair.c' line='12165' column='1'/>
+        <return type-id='847e6fee'/>
+      </function-decl>
+      <function-decl name='sched_trace_rq_cpu' mangled-name='sched_trace_rq_cpu' filepath='kernel/sched/fair.c' line='12195' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_rq_cpu'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/fair.c' line='12195' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='sched_uclamp_used' type-id='237c0d27' mangled-name='sched_uclamp_used' visibility='default' filepath='kernel/sched/core.c' line='1315' column='1' elf-symbol-id='sched_uclamp_used'/>
+      <function-decl name='schedule' mangled-name='schedule' filepath='kernel/sched/core.c' line='6582' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='schedule'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='schedule_hrtimeout' mangled-name='schedule_hrtimeout' filepath='kernel/time/hrtimer.c' line='2384' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='schedule_hrtimeout'>
+        <parameter type-id='44372936' name='expires' filepath='kernel/time/hrtimer.c' line='2384' column='1'/>
+        <parameter type-id='9bedc94f' name='mode' filepath='kernel/time/hrtimer.c' line='2385' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='schedule_timeout' mangled-name='schedule_timeout' filepath='kernel/time/timer.c' line='1851' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='schedule_timeout'>
+        <parameter type-id='bd54fe1a' name='timeout' filepath='kernel/time/timer.c' line='1851' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='schedule_timeout_interruptible' mangled-name='schedule_timeout_interruptible' filepath='kernel/time/timer.c' line='1907' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='schedule_timeout_interruptible'>
+        <parameter type-id='bd54fe1a' name='timeout' filepath='kernel/time/timer.c' line='1907' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='schedule_timeout_killable' mangled-name='schedule_timeout_killable' filepath='kernel/time/timer.c' line='1914' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='schedule_timeout_killable'>
+        <parameter type-id='bd54fe1a' name='timeout' filepath='kernel/time/timer.c' line='1914' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='schedule_timeout_uninterruptible' mangled-name='schedule_timeout_uninterruptible' filepath='kernel/time/timer.c' line='1921' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='schedule_timeout_uninterruptible'>
+        <parameter type-id='bd54fe1a' name='timeout' filepath='kernel/time/timer.c' line='1921' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='scmi_driver_register' mangled-name='scmi_driver_register' filepath='drivers/firmware/arm_scmi/bus.c' line='130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scmi_driver_register'>
+        <parameter type-id='7f2f8862' name='driver' filepath='drivers/firmware/arm_scmi/bus.c' line='130' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/firmware/arm_scmi/bus.c' line='130' column='1'/>
+        <parameter type-id='80f4b756' name='mod_name' filepath='drivers/firmware/arm_scmi/bus.c' line='131' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='scmi_driver_unregister' mangled-name='scmi_driver_unregister' filepath='drivers/firmware/arm_scmi/bus.c' line='155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scmi_driver_unregister'>
+        <parameter type-id='7f2f8862' name='driver' filepath='drivers/firmware/arm_scmi/bus.c' line='155' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='scmi_protocol_register' mangled-name='scmi_protocol_register' filepath='drivers/firmware/arm_scmi/bus.c' line='235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scmi_protocol_register'>
+        <parameter type-id='fb7f0749' name='proto' filepath='drivers/firmware/arm_scmi/bus.c' line='235' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='scmi_protocol_unregister' mangled-name='scmi_protocol_unregister' filepath='drivers/firmware/arm_scmi/bus.c' line='265' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scmi_protocol_unregister'>
+        <parameter type-id='fb7f0749' name='proto' filepath='drivers/firmware/arm_scmi/bus.c' line='265' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='scnprintf' mangled-name='scnprintf' filepath='lib/vsprintf.c' line='2957' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scnprintf'>
+        <parameter type-id='26a90f95' name='buf' filepath='lib/vsprintf.c' line='2957' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='lib/vsprintf.c' line='2957' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='lib/vsprintf.c' line='2957' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='scsi_add_host_with_dma' mangled-name='scsi_add_host_with_dma' filepath='drivers/scsi/hosts.c' line='209' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_add_host_with_dma'>
+        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/hosts.c' line='209' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/hosts.c' line='209' column='1'/>
+        <parameter type-id='fa0b179b' name='dma_dev' filepath='drivers/scsi/hosts.c' line='210' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='scsi_autopm_get_device' mangled-name='scsi_autopm_get_device' filepath='drivers/scsi/scsi_pm.c' line='298' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_autopm_get_device'>
+        <parameter type-id='eb572b74' name='sdev' filepath='drivers/scsi/scsi_pm.c' line='298' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='scsi_autopm_put_device' mangled-name='scsi_autopm_put_device' filepath='drivers/scsi/scsi_pm.c' line='311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_autopm_put_device'>
+        <parameter type-id='eb572b74' name='sdev' filepath='drivers/scsi/scsi_pm.c' line='311' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='scsi_block_requests' mangled-name='scsi_block_requests' filepath='drivers/scsi/scsi_lib.c' line='1972' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_block_requests'>
+        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_lib.c' line='1972' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='scsi_block_when_processing_errors' mangled-name='scsi_block_when_processing_errors' filepath='drivers/scsi/scsi_error.c' line='371' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_block_when_processing_errors'>
+        <parameter type-id='eb572b74' name='sdev' filepath='drivers/scsi/scsi_error.c' line='371' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='scsi_change_queue_depth' mangled-name='scsi_change_queue_depth' filepath='drivers/scsi/scsi.c' line='226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_change_queue_depth'>
+        <parameter type-id='eb572b74' name='sdev' filepath='drivers/scsi/scsi.c' line='226' column='1'/>
+        <parameter type-id='95e97e5e' name='depth' filepath='drivers/scsi/scsi.c' line='226' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='scsi_cmd_allowed' mangled-name='scsi_cmd_allowed' filepath='drivers/scsi/scsi_ioctl.c' line='248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_cmd_allowed'>
+        <parameter type-id='cf536864' name='cmd' filepath='drivers/scsi/scsi_ioctl.c' line='248' column='1'/>
+        <parameter type-id='2665334e' name='mode' filepath='drivers/scsi/scsi_ioctl.c' line='248' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <var-decl name='scsi_command_size_tbl' type-id='561570b5' mangled-name='scsi_command_size_tbl' visibility='default' filepath='drivers/scsi/scsi_common.c' line='17' column='1' elf-symbol-id='scsi_command_size_tbl'/>
+      <function-decl name='scsi_device_get' mangled-name='scsi_device_get' filepath='drivers/scsi/scsi.c' line='536' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_device_get'>
+        <parameter type-id='eb572b74' name='sdev' filepath='drivers/scsi/scsi.c' line='536' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='scsi_device_lookup' mangled-name='scsi_device_lookup' filepath='drivers/scsi/scsi.c' line='748' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_device_lookup'>
+        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi.c' line='748' column='1'/>
+        <parameter type-id='6e160b14' name='channel' filepath='drivers/scsi/scsi.c' line='749' column='1'/>
+        <parameter type-id='6e160b14' name='id' filepath='drivers/scsi/scsi.c' line='749' column='1'/>
+        <parameter type-id='91ce1af9' name='lun' filepath='drivers/scsi/scsi.c' line='749' column='1'/>
+        <return type-id='eb572b74'/>
+      </function-decl>
+      <function-decl name='scsi_device_put' mangled-name='scsi_device_put' filepath='drivers/scsi/scsi.c' line='561' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_device_put'>
+        <parameter type-id='eb572b74' name='sdev' filepath='drivers/scsi/scsi.c' line='561' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='scsi_device_quiesce' mangled-name='scsi_device_quiesce' filepath='drivers/scsi/scsi_lib.c' line='2547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_device_quiesce'>
+        <parameter type-id='eb572b74' name='sdev' filepath='drivers/scsi/scsi_lib.c' line='2547' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='scsi_dma_map' mangled-name='scsi_dma_map' filepath='drivers/scsi/scsi_lib_dma.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_dma_map'>
+        <parameter type-id='0b8718c0' name='cmd' filepath='drivers/scsi/scsi_lib_dma.c' line='23' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='scsi_dma_unmap' mangled-name='scsi_dma_unmap' filepath='drivers/scsi/scsi_lib_dma.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_dma_unmap'>
+        <parameter type-id='0b8718c0' name='cmd' filepath='drivers/scsi/scsi_lib_dma.c' line='43' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='scsi_eh_prep_cmnd' mangled-name='scsi_eh_prep_cmnd' filepath='drivers/scsi/scsi_error.c' line='989' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_eh_prep_cmnd'>
+        <parameter type-id='0b8718c0' name='scmd' filepath='drivers/scsi/scsi_error.c' line='989' column='1'/>
+        <parameter type-id='075d8b9f' name='ses' filepath='drivers/scsi/scsi_error.c' line='989' column='1'/>
+        <parameter type-id='cf536864' name='cmnd' filepath='drivers/scsi/scsi_error.c' line='990' column='1'/>
+        <parameter type-id='95e97e5e' name='cmnd_size' filepath='drivers/scsi/scsi_error.c' line='990' column='1'/>
+        <parameter type-id='f0981eeb' name='sense_bytes' filepath='drivers/scsi/scsi_error.c' line='990' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='scsi_eh_ready_devs' mangled-name='scsi_eh_ready_devs' filepath='drivers/scsi/scsi_error.c' line='2113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_eh_ready_devs'>
+        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_error.c' line='2113' column='1'/>
+        <parameter type-id='e84b031a' name='work_q' filepath='drivers/scsi/scsi_error.c' line='2114' column='1'/>
+        <parameter type-id='e84b031a' name='done_q' filepath='drivers/scsi/scsi_error.c' line='2115' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='scsi_eh_restore_cmnd' mangled-name='scsi_eh_restore_cmnd' filepath='drivers/scsi/scsi_error.c' line='1060' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_eh_restore_cmnd'>
+        <parameter type-id='0b8718c0' name='scmd' filepath='drivers/scsi/scsi_error.c' line='1060' column='1'/>
+        <parameter type-id='075d8b9f' name='ses' filepath='drivers/scsi/scsi_error.c' line='1060' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='scsi_get_host_dev' mangled-name='scsi_get_host_dev' filepath='drivers/scsi/scsi_scan.c' line='1971' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_get_host_dev'>
+        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_scan.c' line='1971' column='1'/>
+        <return type-id='eb572b74'/>
+      </function-decl>
+      <function-decl name='scsi_host_alloc' mangled-name='scsi_host_alloc' filepath='drivers/scsi/hosts.c' line='376' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_host_alloc'>
+        <parameter type-id='36265581' name='sht' filepath='drivers/scsi/hosts.c' line='376' column='1'/>
+        <parameter type-id='95e97e5e' name='privsize' filepath='drivers/scsi/hosts.c' line='376' column='1'/>
+        <return type-id='a970a64c'/>
+      </function-decl>
+      <function-decl name='scsi_host_lookup' mangled-name='scsi_host_lookup' filepath='drivers/scsi/hosts.c' line='538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_host_lookup'>
+        <parameter type-id='8efea9e5' name='hostnum' filepath='drivers/scsi/hosts.c' line='538' column='1'/>
+        <return type-id='a970a64c'/>
+      </function-decl>
+      <function-decl name='scsi_host_put' mangled-name='scsi_host_put' filepath='drivers/scsi/hosts.c' line='596' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_host_put'>
+        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/hosts.c' line='596' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='scsi_ioctl' mangled-name='scsi_ioctl' filepath='drivers/scsi/scsi_ioctl.c' line='894' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_ioctl'>
+        <parameter type-id='eb572b74' name='sdev' filepath='drivers/scsi/scsi_ioctl.c' line='894' column='1'/>
+        <parameter type-id='33c599da' name='disk' filepath='drivers/scsi/scsi_ioctl.c' line='894' column='1'/>
+        <parameter type-id='2665334e' name='mode' filepath='drivers/scsi/scsi_ioctl.c' line='894' column='1'/>
+        <parameter type-id='95e97e5e' name='cmd' filepath='drivers/scsi/scsi_ioctl.c' line='895' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='drivers/scsi/scsi_ioctl.c' line='895' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='scsi_ioctl_block_when_processing_errors' mangled-name='scsi_ioctl_block_when_processing_errors' filepath='drivers/scsi/scsi_ioctl.c' line='978' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_ioctl_block_when_processing_errors'>
+        <parameter type-id='eb572b74' name='sdev' filepath='drivers/scsi/scsi_ioctl.c' line='978' column='1'/>
+        <parameter type-id='95e97e5e' name='cmd' filepath='drivers/scsi/scsi_ioctl.c' line='978' column='1'/>
+        <parameter type-id='b50a4934' name='ndelay' filepath='drivers/scsi/scsi_ioctl.c' line='979' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='scsi_is_host_device' mangled-name='scsi_is_host_device' filepath='drivers/scsi/hosts.c' line='613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_is_host_device'>
+        <parameter type-id='8df61054' name='dev' filepath='drivers/scsi/hosts.c' line='613' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='scsi_normalize_sense' mangled-name='scsi_normalize_sense' filepath='drivers/scsi/scsi_common.c' line='147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_normalize_sense'>
+        <parameter type-id='bbaf3419' name='sense_buffer' filepath='drivers/scsi/scsi_common.c' line='147' column='1'/>
+        <parameter type-id='95e97e5e' name='sb_len' filepath='drivers/scsi/scsi_common.c' line='147' column='1'/>
+        <parameter type-id='991b8213' name='sshdr' filepath='drivers/scsi/scsi_common.c' line='148' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='scsi_print_command' mangled-name='scsi_print_command' filepath='drivers/scsi/scsi_logging.c' line='178' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_print_command'>
+        <parameter type-id='0b8718c0' name='cmd' filepath='drivers/scsi/scsi_logging.c' line='178' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='scsi_print_sense_hdr' mangled-name='scsi_print_sense_hdr' filepath='drivers/scsi/scsi_logging.c' line='359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_print_sense_hdr'>
+        <parameter type-id='0f176ec1' name='sdev' filepath='drivers/scsi/scsi_logging.c' line='359' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/scsi/scsi_logging.c' line='359' column='1'/>
+        <parameter type-id='d6a0d460' name='sshdr' filepath='drivers/scsi/scsi_logging.c' line='360' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='scsi_register_driver' mangled-name='scsi_register_driver' filepath='drivers/scsi/scsi_sysfs.c' line='1591' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_register_driver'>
+        <parameter type-id='00c7b870' name='drv' filepath='drivers/scsi/scsi_sysfs.c' line='1591' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='scsi_register_interface' mangled-name='scsi_register_interface' filepath='drivers/scsi/scsi_sysfs.c' line='1599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_register_interface'>
+        <parameter type-id='ec167ceb' name='intf' filepath='drivers/scsi/scsi_sysfs.c' line='1599' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='scsi_remove_device' mangled-name='scsi_remove_device' filepath='drivers/scsi/scsi_sysfs.c' line='1513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_remove_device'>
+        <parameter type-id='eb572b74' name='sdev' filepath='drivers/scsi/scsi_sysfs.c' line='1513' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='scsi_remove_host' mangled-name='scsi_remove_host' filepath='drivers/scsi/hosts.c' line='164' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_remove_host'>
+        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/hosts.c' line='164' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='scsi_report_bus_reset' mangled-name='scsi_report_bus_reset' filepath='drivers/scsi/scsi_error.c' line='2318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_report_bus_reset'>
+        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_error.c' line='2318' column='1'/>
+        <parameter type-id='95e97e5e' name='channel' filepath='drivers/scsi/scsi_error.c' line='2318' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='scsi_report_device_reset' mangled-name='scsi_report_device_reset' filepath='drivers/scsi/scsi_error.c' line='2351' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_report_device_reset'>
+        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_error.c' line='2351' column='1'/>
+        <parameter type-id='95e97e5e' name='channel' filepath='drivers/scsi/scsi_error.c' line='2351' column='1'/>
+        <parameter type-id='95e97e5e' name='target' filepath='drivers/scsi/scsi_error.c' line='2351' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='scsi_scan_host' mangled-name='scsi_scan_host' filepath='drivers/scsi/scsi_scan.c' line='1911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_scan_host'>
+        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_scan.c' line='1911' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='scsi_schedule_eh' mangled-name='scsi_schedule_eh' filepath='drivers/scsi/scsi_error.c' line='84' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_schedule_eh'>
+        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_error.c' line='84' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='scsi_sense_desc_find' mangled-name='scsi_sense_desc_find' filepath='drivers/scsi/scsi_common.c' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_sense_desc_find'>
+        <parameter type-id='bbaf3419' name='sense_buffer' filepath='drivers/scsi/scsi_common.c' line='205' column='1'/>
+        <parameter type-id='95e97e5e' name='sb_len' filepath='drivers/scsi/scsi_common.c' line='205' column='1'/>
+        <parameter type-id='95e97e5e' name='desc_type' filepath='drivers/scsi/scsi_common.c' line='206' column='1'/>
+        <return type-id='bbaf3419'/>
+      </function-decl>
+      <function-decl name='scsi_test_unit_ready' mangled-name='scsi_test_unit_ready' filepath='drivers/scsi/scsi_lib.c' line='2209' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_test_unit_ready'>
+        <parameter type-id='eb572b74' name='sdev' filepath='drivers/scsi/scsi_lib.c' line='2209' column='1'/>
+        <parameter type-id='95e97e5e' name='timeout' filepath='drivers/scsi/scsi_lib.c' line='2209' column='1'/>
+        <parameter type-id='95e97e5e' name='retries' filepath='drivers/scsi/scsi_lib.c' line='2209' column='1'/>
+        <parameter type-id='991b8213' name='sshdr' filepath='drivers/scsi/scsi_lib.c' line='2210' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='scsi_unblock_requests' mangled-name='scsi_unblock_requests' filepath='drivers/scsi/scsi_lib.c' line='1988' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_unblock_requests'>
+        <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_lib.c' line='1988' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdev_prefix_printk' mangled-name='sdev_prefix_printk' filepath='drivers/scsi/scsi_logging.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdev_prefix_printk'>
+        <parameter type-id='80f4b756' name='level' filepath='drivers/scsi/scsi_logging.c' line='54' column='1'/>
+        <parameter type-id='0f176ec1' name='sdev' filepath='drivers/scsi/scsi_logging.c' line='54' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/scsi/scsi_logging.c' line='55' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='drivers/scsi/scsi_logging.c' line='55' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdhci_add_host' mangled-name='sdhci_add_host' filepath='drivers/mmc/host/sdhci.c' line='4859' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_add_host'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='4859' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sdhci_adma_write_desc' mangled-name='sdhci_adma_write_desc' filepath='drivers/mmc/host/sdhci.c' line='689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_adma_write_desc'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='689' column='1'/>
+        <parameter type-id='63e171df' name='desc' filepath='drivers/mmc/host/sdhci.c' line='689' column='1'/>
+        <parameter type-id='cf29c9b3' name='addr' filepath='drivers/mmc/host/sdhci.c' line='690' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='drivers/mmc/host/sdhci.c' line='690' column='1'/>
+        <parameter type-id='f0981eeb' name='cmd' filepath='drivers/mmc/host/sdhci.c' line='690' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdhci_cleanup_host' mangled-name='sdhci_cleanup_host' filepath='drivers/mmc/host/sdhci.c' line='4770' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_cleanup_host'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='4770' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdhci_cqe_disable' mangled-name='sdhci_cqe_disable' filepath='drivers/mmc/host/sdhci.c' line='3935' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_cqe_disable'>
+        <parameter type-id='dd575c43' name='mmc' filepath='drivers/mmc/host/sdhci.c' line='3935' column='1'/>
+        <parameter type-id='b50a4934' name='recovery' filepath='drivers/mmc/host/sdhci.c' line='3935' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdhci_cqe_enable' mangled-name='sdhci_cqe_enable' filepath='drivers/mmc/host/sdhci.c' line='3891' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_cqe_enable'>
+        <parameter type-id='dd575c43' name='mmc' filepath='drivers/mmc/host/sdhci.c' line='3891' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdhci_cqe_irq' mangled-name='sdhci_cqe_irq' filepath='drivers/mmc/host/sdhci.c' line='3959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_cqe_irq'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='3959' column='1'/>
+        <parameter type-id='19c2251e' name='intmask' filepath='drivers/mmc/host/sdhci.c' line='3959' column='1'/>
+        <parameter type-id='7292109c' name='cmd_error' filepath='drivers/mmc/host/sdhci.c' line='3959' column='1'/>
+        <parameter type-id='7292109c' name='data_error' filepath='drivers/mmc/host/sdhci.c' line='3960' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='sdhci_dumpregs' mangled-name='sdhci_dumpregs' filepath='drivers/mmc/host/sdhci.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_dumpregs'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='56' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdhci_enable_clk' mangled-name='sdhci_enable_clk' filepath='drivers/mmc/host/sdhci.c' line='1958' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_enable_clk'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='1958' column='1'/>
+        <parameter type-id='1dc6a898' name='clk' filepath='drivers/mmc/host/sdhci.c' line='1958' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdhci_enable_v4_mode' mangled-name='sdhci_enable_v4_mode' filepath='drivers/mmc/host/sdhci.c' line='144' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_enable_v4_mode'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='144' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdhci_execute_tuning' mangled-name='sdhci_execute_tuning' filepath='drivers/mmc/host/sdhci.c' line='2867' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_execute_tuning'>
+        <parameter type-id='dd575c43' name='mmc' filepath='drivers/mmc/host/sdhci.c' line='2867' column='1'/>
+        <parameter type-id='19c2251e' name='opcode' filepath='drivers/mmc/host/sdhci.c' line='2867' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sdhci_get_property' mangled-name='sdhci_get_property' filepath='drivers/mmc/host/sdhci-pltfm.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_get_property'>
+        <parameter type-id='db362995' name='pdev' filepath='drivers/mmc/host/sdhci-pltfm.c' line='79' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdhci_pltfm_free' mangled-name='sdhci_pltfm_free' filepath='drivers/mmc/host/sdhci-pltfm.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_pltfm_free'>
+        <parameter type-id='db362995' name='pdev' filepath='drivers/mmc/host/sdhci-pltfm.c' line='165' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdhci_pltfm_init' mangled-name='sdhci_pltfm_init' filepath='drivers/mmc/host/sdhci-pltfm.c' line='116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_pltfm_init'>
+        <parameter type-id='db362995' name='pdev' filepath='drivers/mmc/host/sdhci-pltfm.c' line='116' column='1'/>
+        <parameter type-id='168dc242' name='pdata' filepath='drivers/mmc/host/sdhci-pltfm.c' line='117' column='1'/>
+        <parameter type-id='b59d7dce' name='priv_size' filepath='drivers/mmc/host/sdhci-pltfm.c' line='118' column='1'/>
+        <return type-id='2661e0d9'/>
+      </function-decl>
+      <function-decl name='sdhci_remove_host' mangled-name='sdhci_remove_host' filepath='drivers/mmc/host/sdhci.c' line='4880' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_remove_host'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='4880' column='1'/>
+        <parameter type-id='95e97e5e' name='dead' filepath='drivers/mmc/host/sdhci.c' line='4880' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdhci_request' mangled-name='sdhci_request' filepath='drivers/mmc/host/sdhci.c' line='2156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_request'>
+        <parameter type-id='dd575c43' name='mmc' filepath='drivers/mmc/host/sdhci.c' line='2156' column='1'/>
+        <parameter type-id='47f117d4' name='mrq' filepath='drivers/mmc/host/sdhci.c' line='2156' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdhci_request_atomic' mangled-name='sdhci_request_atomic' filepath='drivers/mmc/host/sdhci.c' line='2188' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_request_atomic'>
+        <parameter type-id='dd575c43' name='mmc' filepath='drivers/mmc/host/sdhci.c' line='2188' column='1'/>
+        <parameter type-id='47f117d4' name='mrq' filepath='drivers/mmc/host/sdhci.c' line='2188' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sdhci_reset' mangled-name='sdhci_reset' filepath='drivers/mmc/host/sdhci.c' line='204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_reset'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='204' column='1'/>
+        <parameter type-id='f9b06939' name='mask' filepath='drivers/mmc/host/sdhci.c' line='204' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdhci_resume_host' mangled-name='sdhci_resume_host' filepath='drivers/mmc/host/sdhci.c' line='3771' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_resume_host'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='3771' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sdhci_runtime_resume_host' mangled-name='sdhci_runtime_resume_host' filepath='drivers/mmc/host/sdhci.c' line='3832' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_runtime_resume_host'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='3832' column='1'/>
+        <parameter type-id='95e97e5e' name='soft_reset' filepath='drivers/mmc/host/sdhci.c' line='3832' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sdhci_runtime_suspend_host' mangled-name='sdhci_runtime_suspend_host' filepath='drivers/mmc/host/sdhci.c' line='3810' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_runtime_suspend_host'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='3810' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sdhci_set_bus_width' mangled-name='sdhci_set_bus_width' filepath='drivers/mmc/host/sdhci.c' line='2222' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_set_bus_width'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='2222' column='1'/>
+        <parameter type-id='95e97e5e' name='width' filepath='drivers/mmc/host/sdhci.c' line='2222' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdhci_set_power_noreg' mangled-name='sdhci_set_power_noreg' filepath='drivers/mmc/host/sdhci.c' line='2041' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_set_power_noreg'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='2041' column='1'/>
+        <parameter type-id='002ac4a6' name='mode' filepath='drivers/mmc/host/sdhci.c' line='2041' column='1'/>
+        <parameter type-id='8efea9e5' name='vdd' filepath='drivers/mmc/host/sdhci.c' line='2042' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdhci_set_uhs_signaling' mangled-name='sdhci_set_uhs_signaling' filepath='drivers/mmc/host/sdhci.c' line='2242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_set_uhs_signaling'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='2242' column='1'/>
+        <parameter type-id='f0981eeb' name='timing' filepath='drivers/mmc/host/sdhci.c' line='2242' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdhci_setup_host' mangled-name='sdhci_setup_host' filepath='drivers/mmc/host/sdhci.c' line='4221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_setup_host'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='4221' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sdhci_suspend_host' mangled-name='sdhci_suspend_host' filepath='drivers/mmc/host/sdhci.c' line='3752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_suspend_host'>
+        <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='3752' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sdio_align_size' mangled-name='sdio_align_size' filepath='drivers/mmc/core/sdio_io.c' line='233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_align_size'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='233' column='1'/>
+        <parameter type-id='f0981eeb' name='sz' filepath='drivers/mmc/core/sdio_io.c' line='233' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='sdio_claim_host' mangled-name='sdio_claim_host' filepath='drivers/mmc/core/sdio_io.c' line='27' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_claim_host'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='27' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdio_claim_irq' mangled-name='sdio_claim_irq' filepath='drivers/mmc/core/sdio_irq.c' line='299' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_claim_irq'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_irq.c' line='299' column='1'/>
+        <parameter type-id='1d186b8b' name='handler' filepath='drivers/mmc/core/sdio_irq.c' line='299' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sdio_disable_func' mangled-name='sdio_disable_func' filepath='drivers/mmc/core/sdio_io.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_disable_func'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='110' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sdio_enable_func' mangled-name='sdio_enable_func' filepath='drivers/mmc/core/sdio_io.c' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_enable_func'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='59' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sdio_f0_readb' mangled-name='sdio_f0_readb' filepath='drivers/mmc/core/sdio_io.c' line='631' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_f0_readb'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='631' column='1'/>
+        <parameter type-id='f0981eeb' name='addr' filepath='drivers/mmc/core/sdio_io.c' line='631' column='1'/>
+        <parameter type-id='7292109c' name='err_ret' filepath='drivers/mmc/core/sdio_io.c' line='632' column='1'/>
+        <return type-id='002ac4a6'/>
+      </function-decl>
+      <function-decl name='sdio_f0_writeb' mangled-name='sdio_f0_writeb' filepath='drivers/mmc/core/sdio_io.c' line='667' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_f0_writeb'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='667' column='1'/>
+        <parameter type-id='002ac4a6' name='b' filepath='drivers/mmc/core/sdio_io.c' line='667' column='1'/>
+        <parameter type-id='f0981eeb' name='addr' filepath='drivers/mmc/core/sdio_io.c' line='667' column='1'/>
+        <parameter type-id='7292109c' name='err_ret' filepath='drivers/mmc/core/sdio_io.c' line='668' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdio_get_host_pm_caps' mangled-name='sdio_get_host_pm_caps' filepath='drivers/mmc/core/sdio_io.c' line='700' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_get_host_pm_caps'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='700' column='1'/>
+        <return type-id='208a5a8d'/>
+      </function-decl>
+      <function-decl name='sdio_memcpy_fromio' mangled-name='sdio_memcpy_fromio' filepath='drivers/mmc/core/sdio_io.c' line='468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_memcpy_fromio'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='468' column='1'/>
+        <parameter type-id='eaa32e2f' name='dst' filepath='drivers/mmc/core/sdio_io.c' line='468' column='1'/>
+        <parameter type-id='f0981eeb' name='addr' filepath='drivers/mmc/core/sdio_io.c' line='469' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='drivers/mmc/core/sdio_io.c' line='469' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sdio_memcpy_toio' mangled-name='sdio_memcpy_toio' filepath='drivers/mmc/core/sdio_io.c' line='485' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_memcpy_toio'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='485' column='1'/>
+        <parameter type-id='f0981eeb' name='addr' filepath='drivers/mmc/core/sdio_io.c' line='485' column='1'/>
+        <parameter type-id='eaa32e2f' name='src' filepath='drivers/mmc/core/sdio_io.c' line='486' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='drivers/mmc/core/sdio_io.c' line='486' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sdio_readb' mangled-name='sdio_readb' filepath='drivers/mmc/core/sdio_io.c' line='380' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_readb'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='380' column='1'/>
+        <parameter type-id='f0981eeb' name='addr' filepath='drivers/mmc/core/sdio_io.c' line='380' column='1'/>
+        <parameter type-id='7292109c' name='err_ret' filepath='drivers/mmc/core/sdio_io.c' line='380' column='1'/>
+        <return type-id='f9b06939'/>
+      </function-decl>
+      <function-decl name='sdio_readl' mangled-name='sdio_readl' filepath='drivers/mmc/core/sdio_io.c' line='584' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_readl'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='584' column='1'/>
+        <parameter type-id='f0981eeb' name='addr' filepath='drivers/mmc/core/sdio_io.c' line='584' column='1'/>
+        <parameter type-id='7292109c' name='err_ret' filepath='drivers/mmc/core/sdio_io.c' line='584' column='1'/>
+        <return type-id='19c2251e'/>
+      </function-decl>
+      <function-decl name='sdio_readsb' mangled-name='sdio_readsb' filepath='drivers/mmc/core/sdio_io.c' line='502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_readsb'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='502' column='1'/>
+        <parameter type-id='eaa32e2f' name='dst' filepath='drivers/mmc/core/sdio_io.c' line='502' column='1'/>
+        <parameter type-id='f0981eeb' name='addr' filepath='drivers/mmc/core/sdio_io.c' line='502' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='drivers/mmc/core/sdio_io.c' line='503' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sdio_readw' mangled-name='sdio_readw' filepath='drivers/mmc/core/sdio_io.c' line='536' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_readw'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='536' column='1'/>
+        <parameter type-id='f0981eeb' name='addr' filepath='drivers/mmc/core/sdio_io.c' line='536' column='1'/>
+        <parameter type-id='7292109c' name='err_ret' filepath='drivers/mmc/core/sdio_io.c' line='536' column='1'/>
+        <return type-id='1dc6a898'/>
+      </function-decl>
+      <function-decl name='sdio_register_driver' mangled-name='sdio_register_driver' filepath='drivers/mmc/core/sdio_bus.c' line='270' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_register_driver'>
+        <parameter type-id='710bea3d' name='drv' filepath='drivers/mmc/core/sdio_bus.c' line='270' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sdio_release_host' mangled-name='sdio_release_host' filepath='drivers/mmc/core/sdio_io.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_release_host'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='43' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdio_release_irq' mangled-name='sdio_release_irq' filepath='drivers/mmc/core/sdio_irq.c' line='342' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_release_irq'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_irq.c' line='342' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sdio_retune_crc_disable' mangled-name='sdio_retune_crc_disable' filepath='drivers/mmc/core/sdio_io.c' line='759' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_retune_crc_disable'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='759' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdio_retune_crc_enable' mangled-name='sdio_retune_crc_enable' filepath='drivers/mmc/core/sdio_io.c' line='771' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_retune_crc_enable'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='771' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdio_retune_hold_now' mangled-name='sdio_retune_hold_now' filepath='drivers/mmc/core/sdio_io.c' line='794' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_retune_hold_now'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='794' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdio_retune_release' mangled-name='sdio_retune_release' filepath='drivers/mmc/core/sdio_io.c' line='810' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_retune_release'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='810' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdio_set_block_size' mangled-name='sdio_set_block_size' filepath='drivers/mmc/core/sdio_io.c' line='159' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_set_block_size'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='159' column='1'/>
+        <parameter type-id='f0981eeb' name='blksz' filepath='drivers/mmc/core/sdio_io.c' line='159' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sdio_set_host_pm_flags' mangled-name='sdio_set_host_pm_flags' filepath='drivers/mmc/core/sdio_io.c' line='722' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_set_host_pm_flags'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='722' column='1'/>
+        <parameter type-id='208a5a8d' name='flags' filepath='drivers/mmc/core/sdio_io.c' line='722' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sdio_signal_irq' mangled-name='sdio_signal_irq' filepath='drivers/mmc/core/sdio_irq.c' line='132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_signal_irq'>
+        <parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/sdio_irq.c' line='132' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdio_unregister_driver' mangled-name='sdio_unregister_driver' filepath='drivers/mmc/core/sdio_bus.c' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_unregister_driver'>
+        <parameter type-id='710bea3d' name='drv' filepath='drivers/mmc/core/sdio_bus.c' line='282' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdio_writeb' mangled-name='sdio_writeb' filepath='drivers/mmc/core/sdio_io.c' line='412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_writeb'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='412' column='1'/>
+        <parameter type-id='f9b06939' name='b' filepath='drivers/mmc/core/sdio_io.c' line='412' column='1'/>
+        <parameter type-id='f0981eeb' name='addr' filepath='drivers/mmc/core/sdio_io.c' line='412' column='1'/>
+        <parameter type-id='7292109c' name='err_ret' filepath='drivers/mmc/core/sdio_io.c' line='412' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdio_writeb_readb' mangled-name='sdio_writeb_readb' filepath='drivers/mmc/core/sdio_io.c' line='441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_writeb_readb'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='441' column='1'/>
+        <parameter type-id='f9b06939' name='write_byte' filepath='drivers/mmc/core/sdio_io.c' line='441' column='1'/>
+        <parameter type-id='f0981eeb' name='addr' filepath='drivers/mmc/core/sdio_io.c' line='442' column='1'/>
+        <parameter type-id='7292109c' name='err_ret' filepath='drivers/mmc/core/sdio_io.c' line='442' column='1'/>
+        <return type-id='f9b06939'/>
+      </function-decl>
+      <function-decl name='sdio_writel' mangled-name='sdio_writel' filepath='drivers/mmc/core/sdio_io.c' line='609' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_writel'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='609' column='1'/>
+        <parameter type-id='19c2251e' name='b' filepath='drivers/mmc/core/sdio_io.c' line='609' column='1'/>
+        <parameter type-id='f0981eeb' name='addr' filepath='drivers/mmc/core/sdio_io.c' line='609' column='1'/>
+        <parameter type-id='7292109c' name='err_ret' filepath='drivers/mmc/core/sdio_io.c' line='609' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sdio_writesb' mangled-name='sdio_writesb' filepath='drivers/mmc/core/sdio_io.c' line='519' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_writesb'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='519' column='1'/>
+        <parameter type-id='f0981eeb' name='addr' filepath='drivers/mmc/core/sdio_io.c' line='519' column='1'/>
+        <parameter type-id='eaa32e2f' name='src' filepath='drivers/mmc/core/sdio_io.c' line='519' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='drivers/mmc/core/sdio_io.c' line='520' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sdio_writew' mangled-name='sdio_writew' filepath='drivers/mmc/core/sdio_io.c' line='561' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdio_writew'>
+        <parameter type-id='c1880945' name='func' filepath='drivers/mmc/core/sdio_io.c' line='561' column='1'/>
+        <parameter type-id='1dc6a898' name='b' filepath='drivers/mmc/core/sdio_io.c' line='561' column='1'/>
+        <parameter type-id='f0981eeb' name='addr' filepath='drivers/mmc/core/sdio_io.c' line='561' column='1'/>
+        <parameter type-id='7292109c' name='err_ret' filepath='drivers/mmc/core/sdio_io.c' line='561' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='security_file_ioctl' mangled-name='security_file_ioctl' filepath='security/security.c' line='1554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='security_file_ioctl'>
+        <parameter type-id='77e79a4b' name='file' filepath='security/security.c' line='1554' column='1'/>
+        <parameter type-id='f0981eeb' name='cmd' filepath='security/security.c' line='1554' column='1'/>
+        <parameter type-id='7359adad' name='arg' filepath='security/security.c' line='1554' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='security_inode_init_security' mangled-name='security_inode_init_security' filepath='security/security.c' line='1088' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='security_inode_init_security'>
+        <parameter type-id='7e666abe' name='inode' filepath='security/security.c' line='1088' column='1'/>
+        <parameter type-id='7e666abe' name='dir' filepath='security/security.c' line='1088' column='1'/>
+        <parameter type-id='43a0eb6c' name='qstr' filepath='security/security.c' line='1089' column='1'/>
+        <parameter type-id='417f6926' name='initxattrs' filepath='security/security.c' line='1090' column='1'/>
+        <parameter type-id='eaa32e2f' name='fs_data' filepath='security/security.c' line='1090' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='security_sk_classify_flow' mangled-name='security_sk_classify_flow' filepath='security/security.c' line='2293' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='security_sk_classify_flow'>
+        <parameter type-id='f772df6d' name='sk' filepath='security/security.c' line='2293' column='1'/>
+        <parameter type-id='b4888646' name='flic' filepath='security/security.c' line='2293' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='select_fallback_rq' mangled-name='select_fallback_rq' filepath='kernel/sched/core.c' line='3423' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='select_fallback_rq'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/core.c' line='3423' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='3423' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='send_sig' mangled-name='send_sig' filepath='kernel/signal.c' line='1655' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='send_sig'>
+        <parameter type-id='95e97e5e' name='sig' filepath='kernel/signal.c' line='1655' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/signal.c' line='1655' column='1'/>
+        <parameter type-id='95e97e5e' name='priv' filepath='kernel/signal.c' line='1655' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='send_sig_info' mangled-name='send_sig_info' filepath='kernel/signal.c' line='1638' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='send_sig_info'>
+        <parameter type-id='95e97e5e' name='sig' filepath='kernel/signal.c' line='1638' column='1'/>
+        <parameter type-id='0effb5d0' name='info' filepath='kernel/signal.c' line='1638' column='1'/>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/signal.c' line='1638' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='send_sig_mceerr' mangled-name='send_sig_mceerr' filepath='kernel/signal.c' line='1774' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='send_sig_mceerr'>
+        <parameter type-id='95e97e5e' name='code' filepath='kernel/signal.c' line='1774' column='1'/>
+        <parameter type-id='eaa32e2f' name='addr' filepath='kernel/signal.c' line='1774' column='1'/>
+        <parameter type-id='a2185560' name='lsb' filepath='kernel/signal.c' line='1774' column='1'/>
+        <parameter type-id='f23e2572' name='t' filepath='kernel/signal.c' line='1774' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='seq_buf_printf' mangled-name='seq_buf_printf' filepath='lib/seq_buf.c' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='seq_buf_printf'>
+        <parameter type-id='d898930c' name='s' filepath='lib/seq_buf.c' line='83' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='lib/seq_buf.c' line='83' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='seq_escape' mangled-name='seq_escape' filepath='fs/seq_file.c' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='seq_escape'>
+        <parameter type-id='f8dc9def' name='m' filepath='fs/seq_file.c' line='396' column='1'/>
+        <parameter type-id='80f4b756' name='s' filepath='fs/seq_file.c' line='396' column='1'/>
+        <parameter type-id='80f4b756' name='esc' filepath='fs/seq_file.c' line='396' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='seq_file_path' mangled-name='seq_file_path' filepath='fs/seq_file.c' line='514' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='seq_file_path'>
+        <parameter type-id='f8dc9def' name='m' filepath='fs/seq_file.c' line='514' column='1'/>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/seq_file.c' line='514' column='1'/>
+        <parameter type-id='80f4b756' name='esc' filepath='fs/seq_file.c' line='514' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='seq_hex_dump' mangled-name='seq_hex_dump' filepath='fs/seq_file.c' line='880' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='seq_hex_dump'>
+        <parameter type-id='f8dc9def' name='m' filepath='fs/seq_file.c' line='880' column='1'/>
+        <parameter type-id='80f4b756' name='prefix_str' filepath='fs/seq_file.c' line='880' column='1'/>
+        <parameter type-id='95e97e5e' name='prefix_type' filepath='fs/seq_file.c' line='880' column='1'/>
+        <parameter type-id='95e97e5e' name='rowsize' filepath='fs/seq_file.c' line='881' column='1'/>
+        <parameter type-id='95e97e5e' name='groupsize' filepath='fs/seq_file.c' line='881' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='fs/seq_file.c' line='881' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='fs/seq_file.c' line='881' column='1'/>
+        <parameter type-id='b50a4934' name='ascii' filepath='fs/seq_file.c' line='882' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='seq_list_next' mangled-name='seq_list_next' filepath='fs/seq_file.c' line='940' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='seq_list_next'>
+        <parameter type-id='eaa32e2f' name='v' filepath='fs/seq_file.c' line='940' column='1'/>
+        <parameter type-id='e84b031a' name='head' filepath='fs/seq_file.c' line='940' column='1'/>
+        <parameter type-id='b53e8dbb' name='ppos' filepath='fs/seq_file.c' line='940' column='1'/>
+        <return type-id='e84b031a'/>
+      </function-decl>
+      <function-decl name='seq_list_start' mangled-name='seq_list_start' filepath='fs/seq_file.c' line='919' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='seq_list_start'>
+        <parameter type-id='e84b031a' name='head' filepath='fs/seq_file.c' line='919' column='1'/>
+        <parameter type-id='69bf7bee' name='pos' filepath='fs/seq_file.c' line='919' column='1'/>
+        <return type-id='e84b031a'/>
+      </function-decl>
+      <function-decl name='seq_lseek' mangled-name='seq_lseek' filepath='fs/seq_file.c' line='308' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='seq_lseek'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/seq_file.c' line='308' column='1'/>
+        <parameter type-id='69bf7bee' name='offset' filepath='fs/seq_file.c' line='308' column='1'/>
+        <parameter type-id='95e97e5e' name='whence' filepath='fs/seq_file.c' line='308' column='1'/>
+        <return type-id='69bf7bee'/>
+      </function-decl>
+      <function-decl name='seq_open' mangled-name='seq_open' filepath='fs/seq_file.c' line='57' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='seq_open'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/seq_file.c' line='57' column='1'/>
+        <parameter type-id='943a1b48' name='op' filepath='fs/seq_file.c' line='57' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='seq_open_private' mangled-name='seq_open_private' filepath='fs/seq_file.c' line='672' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='seq_open_private'>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/seq_file.c' line='672' column='1'/>
+        <parameter type-id='943a1b48' name='ops' filepath='fs/seq_file.c' line='672' column='1'/>
+        <parameter type-id='95e97e5e' name='psize' filepath='fs/seq_file.c' line='673' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='seq_printf' mangled-name='seq_printf' filepath='fs/seq_file.c' line='417' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='seq_printf'>
+        <parameter type-id='f8dc9def' name='m' filepath='fs/seq_file.c' line='417' column='1'/>
+        <parameter type-id='80f4b756' name='f' filepath='fs/seq_file.c' line='417' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='seq_putc' mangled-name='seq_putc' filepath='fs/seq_file.c' line='679' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='seq_putc'>
+        <parameter type-id='f8dc9def' name='m' filepath='fs/seq_file.c' line='679' column='1'/>
+        <parameter type-id='a84c031d' name='c' filepath='fs/seq_file.c' line='679' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='seq_puts' mangled-name='seq_puts' filepath='fs/seq_file.c' line='688' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='seq_puts'>
+        <parameter type-id='f8dc9def' name='m' filepath='fs/seq_file.c' line='688' column='1'/>
+        <parameter type-id='80f4b756' name='s' filepath='fs/seq_file.c' line='688' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='seq_read' mangled-name='seq_read' filepath='fs/seq_file.c' line='151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='seq_read'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/seq_file.c' line='151' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='fs/seq_file.c' line='151' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='fs/seq_file.c' line='151' column='1'/>
+        <parameter type-id='b53e8dbb' name='ppos' filepath='fs/seq_file.c' line='151' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='seq_release' mangled-name='seq_release' filepath='fs/seq_file.c' line='352' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='seq_release'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/seq_file.c' line='352' column='1'/>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/seq_file.c' line='352' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='seq_release_private' mangled-name='seq_release_private' filepath='fs/seq_file.c' line='636' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='seq_release_private'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/seq_file.c' line='636' column='1'/>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/seq_file.c' line='636' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='seq_vprintf' mangled-name='seq_vprintf' filepath='fs/seq_file.c' line='402' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='seq_vprintf'>
+        <parameter type-id='f8dc9def' name='m' filepath='fs/seq_file.c' line='402' column='1'/>
+        <parameter type-id='80f4b756' name='f' filepath='fs/seq_file.c' line='402' column='1'/>
+        <parameter type-id='2aee9912' name='args' filepath='fs/seq_file.c' line='402' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='seq_write' mangled-name='seq_write' filepath='fs/seq_file.c' line='846' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='seq_write'>
+        <parameter type-id='f8dc9def' name='seq' filepath='fs/seq_file.c' line='846' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='fs/seq_file.c' line='846' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='fs/seq_file.c' line='846' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='serial8250_do_pm' mangled-name='serial8250_do_pm' filepath='drivers/tty/serial/8250/8250_port.c' line='2932' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serial8250_do_pm'>
+        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/8250/8250_port.c' line='2932' column='1'/>
+        <parameter type-id='f0981eeb' name='state' filepath='drivers/tty/serial/8250/8250_port.c' line='2932' column='1'/>
+        <parameter type-id='f0981eeb' name='oldstate' filepath='drivers/tty/serial/8250/8250_port.c' line='2933' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='serial8250_do_set_termios' mangled-name='serial8250_do_set_termios' filepath='drivers/tty/serial/8250/8250_port.c' line='2758' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serial8250_do_set_termios'>
+        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/8250/8250_port.c' line='2758' column='1'/>
+        <parameter type-id='e55856e5' name='termios' filepath='drivers/tty/serial/8250/8250_port.c' line='2758' column='1'/>
+        <parameter type-id='e55856e5' name='old' filepath='drivers/tty/serial/8250/8250_port.c' line='2759' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='serial8250_do_shutdown' mangled-name='serial8250_do_shutdown' filepath='drivers/tty/serial/8250/8250_port.c' line='2457' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serial8250_do_shutdown'>
+        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/8250/8250_port.c' line='2457' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='serial8250_do_startup' mangled-name='serial8250_do_startup' filepath='drivers/tty/serial/8250/8250_port.c' line='2171' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serial8250_do_startup'>
+        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/8250/8250_port.c' line='2171' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='serial8250_get_port' mangled-name='serial8250_get_port' filepath='drivers/tty/serial/8250/8250_core.c' line='402' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serial8250_get_port'>
+        <parameter type-id='95e97e5e' name='line' filepath='drivers/tty/serial/8250/8250_core.c' line='402' column='1'/>
+        <return type-id='b26c7631'/>
+      </function-decl>
+      <function-decl name='serial8250_modem_status' mangled-name='serial8250_modem_status' filepath='drivers/tty/serial/8250/8250_port.c' line='1860' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serial8250_modem_status'>
+        <parameter type-id='b26c7631' name='up' filepath='drivers/tty/serial/8250/8250_port.c' line='1860' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='serial8250_register_8250_port' mangled-name='serial8250_register_8250_port' filepath='drivers/tty/serial/8250/8250_core.c' line='978' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serial8250_register_8250_port'>
+        <parameter type-id='f9e5d11e' name='up' filepath='drivers/tty/serial/8250/8250_core.c' line='978' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='serial8250_resume_port' mangled-name='serial8250_resume_port' filepath='drivers/tty/serial/8250/8250_core.c' line='775' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serial8250_resume_port'>
+        <parameter type-id='95e97e5e' name='line' filepath='drivers/tty/serial/8250/8250_core.c' line='775' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='serial8250_rpm_get' mangled-name='serial8250_rpm_get' filepath='drivers/tty/serial/8250/8250_port.c' line='564' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serial8250_rpm_get'>
+        <parameter type-id='b26c7631' name='p' filepath='drivers/tty/serial/8250/8250_port.c' line='564' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='serial8250_rpm_put' mangled-name='serial8250_rpm_put' filepath='drivers/tty/serial/8250/8250_port.c' line='572' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serial8250_rpm_put'>
+        <parameter type-id='b26c7631' name='p' filepath='drivers/tty/serial/8250/8250_port.c' line='572' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='serial8250_rpm_put_tx' mangled-name='serial8250_rpm_put_tx' filepath='drivers/tty/serial/8250/8250_port.c' line='721' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serial8250_rpm_put_tx'>
+        <parameter type-id='b26c7631' name='p' filepath='drivers/tty/serial/8250/8250_port.c' line='721' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='serial8250_rx_chars' mangled-name='serial8250_rx_chars' filepath='drivers/tty/serial/8250/8250_port.c' line='1782' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serial8250_rx_chars'>
+        <parameter type-id='b26c7631' name='up' filepath='drivers/tty/serial/8250/8250_port.c' line='1782' column='1'/>
+        <parameter type-id='002ac4a6' name='lsr' filepath='drivers/tty/serial/8250/8250_port.c' line='1782' column='1'/>
+        <return type-id='002ac4a6'/>
+      </function-decl>
+      <function-decl name='serial8250_suspend_port' mangled-name='serial8250_suspend_port' filepath='drivers/tty/serial/8250/8250_core.c' line='751' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serial8250_suspend_port'>
+        <parameter type-id='95e97e5e' name='line' filepath='drivers/tty/serial/8250/8250_core.c' line='751' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='serial8250_tx_chars' mangled-name='serial8250_tx_chars' filepath='drivers/tty/serial/8250/8250_port.c' line='1799' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serial8250_tx_chars'>
+        <parameter type-id='b26c7631' name='up' filepath='drivers/tty/serial/8250/8250_port.c' line='1799' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='serial8250_unregister_port' mangled-name='serial8250_unregister_port' filepath='drivers/tty/serial/8250/8250_core.c' line='1132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serial8250_unregister_port'>
+        <parameter type-id='95e97e5e' name='line' filepath='drivers/tty/serial/8250/8250_core.c' line='1132' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='serio_close' mangled-name='serio_close' filepath='drivers/input/serio/serio.c' line='983' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serio_close'>
+        <parameter type-id='95dc69d1' name='serio' filepath='drivers/input/serio/serio.c' line='983' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='serio_interrupt' mangled-name='serio_interrupt' filepath='drivers/input/serio/serio.c' line='992' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serio_interrupt'>
+        <parameter type-id='95dc69d1' name='serio' filepath='drivers/input/serio/serio.c' line='992' column='1'/>
+        <parameter type-id='002ac4a6' name='data' filepath='drivers/input/serio/serio.c' line='993' column='1'/>
+        <parameter type-id='f0981eeb' name='dfl' filepath='drivers/input/serio/serio.c' line='993' column='1'/>
+        <return type-id='4bdecfd7'/>
+      </function-decl>
+      <function-decl name='serio_open' mangled-name='serio_open' filepath='drivers/input/serio/serio.c' line='970' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serio_open'>
+        <parameter type-id='95dc69d1' name='serio' filepath='drivers/input/serio/serio.c' line='970' column='1'/>
+        <parameter type-id='1065554a' name='drv' filepath='drivers/input/serio/serio.c' line='970' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='serio_reconnect' mangled-name='serio_reconnect' filepath='drivers/input/serio/serio.c' line='685' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serio_reconnect'>
+        <parameter type-id='95dc69d1' name='serio' filepath='drivers/input/serio/serio.c' line='685' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='serio_rescan' mangled-name='serio_rescan' filepath='drivers/input/serio/serio.c' line='679' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serio_rescan'>
+        <parameter type-id='95dc69d1' name='serio' filepath='drivers/input/serio/serio.c' line='679' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='serio_unregister_child_port' mangled-name='serio_unregister_child_port' filepath='drivers/input/serio/serio.c' line='717' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serio_unregister_child_port'>
+        <parameter type-id='95dc69d1' name='serio' filepath='drivers/input/serio/serio.c' line='717' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='serio_unregister_driver' mangled-name='serio_unregister_driver' filepath='drivers/input/serio/serio.c' line='852' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serio_unregister_driver'>
+        <parameter type-id='1065554a' name='drv' filepath='drivers/input/serio/serio.c' line='852' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='serio_unregister_port' mangled-name='serio_unregister_port' filepath='drivers/input/serio/serio.c' line='705' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='serio_unregister_port'>
+        <parameter type-id='95dc69d1' name='serio' filepath='drivers/input/serio/serio.c' line='705' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='set_bh_page' mangled-name='set_bh_page' filepath='fs/buffer.c' line='1444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_bh_page'>
+        <parameter type-id='c485c22c' name='bh' filepath='fs/buffer.c' line='1444' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='fs/buffer.c' line='1445' column='1'/>
+        <parameter type-id='7359adad' name='offset' filepath='fs/buffer.c' line='1445' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='set_blocksize' mangled-name='set_blocksize' filepath='block/bdev.c' line='143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_blocksize'>
+        <parameter type-id='b88dd945' name='bdev' filepath='block/bdev.c' line='143' column='1'/>
+        <parameter type-id='95e97e5e' name='size' filepath='block/bdev.c' line='143' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='set_cached_acl' mangled-name='set_cached_acl' filepath='fs/posix_acl.c' line='75' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cached_acl'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/posix_acl.c' line='75' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='fs/posix_acl.c' line='75' column='1'/>
+        <parameter type-id='2871909b' name='acl' filepath='fs/posix_acl.c' line='75' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='set_capacity' mangled-name='set_capacity' filepath='block/genhd.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_capacity'>
+        <parameter type-id='33c599da' name='disk' filepath='block/genhd.c' line='55' column='1'/>
+        <parameter type-id='a42536cd' name='sectors' filepath='block/genhd.c' line='55' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='set_capacity_and_notify' mangled-name='set_capacity_and_notify' filepath='block/genhd.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_capacity_and_notify'>
+        <parameter type-id='33c599da' name='disk' filepath='block/genhd.c' line='69' column='1'/>
+        <parameter type-id='a42536cd' name='size' filepath='block/genhd.c' line='69' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='set_cpus_allowed_ptr' mangled-name='set_cpus_allowed_ptr' filepath='kernel/sched/core.c' line='2955' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpus_allowed_ptr'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2955' column='1'/>
+        <parameter type-id='5f8a1ac4' name='new_mask' filepath='kernel/sched/core.c' line='2955' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='set_disk_ro' mangled-name='set_disk_ro' filepath='block/genhd.c' line='1403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_disk_ro'>
+        <parameter type-id='33c599da' name='disk' filepath='block/genhd.c' line='1403' column='1'/>
+        <parameter type-id='b50a4934' name='read_only' filepath='block/genhd.c' line='1403' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='set_freezable' mangled-name='set_freezable' filepath='kernel/freezer.c' line='173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_freezable'>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='set_next_entity' mangled-name='set_next_entity' filepath='kernel/sched/fair.c' line='4686' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_next_entity'>
+        <parameter type-id='a6892387' name='cfs_rq' filepath='kernel/sched/fair.c' line='4686' column='1'/>
+        <parameter type-id='ff2b3d10' name='se' filepath='kernel/sched/fair.c' line='4686' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='set_nlink' mangled-name='set_nlink' filepath='fs/inode.c' line='339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_nlink'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='339' column='1'/>
+        <parameter type-id='f0981eeb' name='nlink' filepath='fs/inode.c' line='339' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='set_normalized_timespec64' mangled-name='set_normalized_timespec64' filepath='kernel/time/time.c' line='478' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_normalized_timespec64'>
+        <parameter type-id='4151733d' name='ts' filepath='kernel/time/time.c' line='478' column='1'/>
+        <parameter type-id='1afd27ac' name='sec' filepath='kernel/time/time.c' line='478' column='1'/>
+        <parameter type-id='9b7c55ef' name='nsec' filepath='kernel/time/time.c' line='478' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='set_page_dirty' mangled-name='set_page_dirty' filepath='mm/page-writeback.c' line='2593' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_page_dirty'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/page-writeback.c' line='2593' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='set_page_dirty_lock' mangled-name='set_page_dirty_lock' filepath='mm/page-writeback.c' line='2631' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_page_dirty_lock'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/page-writeback.c' line='2631' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='set_task_cpu' mangled-name='set_task_cpu' filepath='kernel/sched/core.c' line='3095' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_task_cpu'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='3095' column='1'/>
+        <parameter type-id='f0981eeb' name='new_cpu' filepath='kernel/sched/core.c' line='3095' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='set_task_ioprio' mangled-name='set_task_ioprio' filepath='block/ioprio.c' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_task_ioprio'>
+        <parameter type-id='f23e2572' name='task' filepath='block/ioprio.c' line='36' column='1'/>
+        <parameter type-id='95e97e5e' name='ioprio' filepath='block/ioprio.c' line='36' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='set_user_nice' mangled-name='set_user_nice' filepath='kernel/sched/core.c' line='7093' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_user_nice'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7093' column='1'/>
+        <parameter type-id='bd54fe1a' name='nice' filepath='kernel/sched/core.c' line='7093' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='setattr_copy' mangled-name='setattr_copy' filepath='fs/attr.c' line='305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='setattr_copy'>
+        <parameter type-id='c0ced320' name='mnt_userns' filepath='fs/attr.c' line='305' column='1'/>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/attr.c' line='305' column='1'/>
+        <parameter type-id='5df17806' name='attr' filepath='fs/attr.c' line='306' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='setattr_prepare' mangled-name='setattr_prepare' filepath='fs/attr.c' line='166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='setattr_prepare'>
+        <parameter type-id='c0ced320' name='mnt_userns' filepath='fs/attr.c' line='166' column='1'/>
+        <parameter type-id='27675065' name='dentry' filepath='fs/attr.c' line='166' column='1'/>
+        <parameter type-id='ab7bbd67' name='attr' filepath='fs/attr.c' line='167' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sg_alloc_table' mangled-name='sg_alloc_table' filepath='lib/scatterlist.c' line='371' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_alloc_table'>
+        <parameter type-id='4adb0e6a' name='table' filepath='lib/scatterlist.c' line='371' column='1'/>
+        <parameter type-id='f0981eeb' name='nents' filepath='lib/scatterlist.c' line='371' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='lib/scatterlist.c' line='371' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sg_alloc_table_chained' mangled-name='sg_alloc_table_chained' filepath='lib/sg_pool.c' line='112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_alloc_table_chained'>
+        <parameter type-id='4adb0e6a' name='table' filepath='lib/sg_pool.c' line='112' column='1'/>
+        <parameter type-id='95e97e5e' name='nents' filepath='lib/sg_pool.c' line='112' column='1'/>
+        <parameter type-id='bf3ef905' name='first_chunk' filepath='lib/sg_pool.c' line='113' column='1'/>
+        <parameter type-id='f0981eeb' name='nents_first_chunk' filepath='lib/sg_pool.c' line='113' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sg_alloc_table_from_pages_segment' mangled-name='sg_alloc_table_from_pages_segment' filepath='lib/scatterlist.c' line='565' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_alloc_table_from_pages_segment'>
+        <parameter type-id='4adb0e6a' name='sgt' filepath='lib/scatterlist.c' line='565' column='1'/>
+        <parameter type-id='9f93c9da' name='pages' filepath='lib/scatterlist.c' line='565' column='1'/>
+        <parameter type-id='f0981eeb' name='n_pages' filepath='lib/scatterlist.c' line='566' column='1'/>
+        <parameter type-id='f0981eeb' name='offset' filepath='lib/scatterlist.c' line='566' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='lib/scatterlist.c' line='567' column='1'/>
+        <parameter type-id='f0981eeb' name='max_segment' filepath='lib/scatterlist.c' line='567' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='lib/scatterlist.c' line='568' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sg_copy_buffer' mangled-name='sg_copy_buffer' filepath='lib/scatterlist.c' line='951' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_copy_buffer'>
+        <parameter type-id='bf3ef905' name='sgl' filepath='lib/scatterlist.c' line='951' column='1'/>
+        <parameter type-id='f0981eeb' name='nents' filepath='lib/scatterlist.c' line='951' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='lib/scatterlist.c' line='951' column='1'/>
+        <parameter type-id='b59d7dce' name='buflen' filepath='lib/scatterlist.c' line='952' column='1'/>
+        <parameter type-id='ad707ada' name='skip' filepath='lib/scatterlist.c' line='952' column='1'/>
+        <parameter type-id='b50a4934' name='to_buffer' filepath='lib/scatterlist.c' line='952' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='sg_copy_from_buffer' mangled-name='sg_copy_from_buffer' filepath='lib/scatterlist.c' line='997' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_copy_from_buffer'>
+        <parameter type-id='bf3ef905' name='sgl' filepath='lib/scatterlist.c' line='997' column='1'/>
+        <parameter type-id='f0981eeb' name='nents' filepath='lib/scatterlist.c' line='997' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='lib/scatterlist.c' line='998' column='1'/>
+        <parameter type-id='b59d7dce' name='buflen' filepath='lib/scatterlist.c' line='998' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='sg_copy_to_buffer' mangled-name='sg_copy_to_buffer' filepath='lib/scatterlist.c' line='1014' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_copy_to_buffer'>
+        <parameter type-id='bf3ef905' name='sgl' filepath='lib/scatterlist.c' line='1014' column='1'/>
+        <parameter type-id='f0981eeb' name='nents' filepath='lib/scatterlist.c' line='1014' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='lib/scatterlist.c' line='1015' column='1'/>
+        <parameter type-id='b59d7dce' name='buflen' filepath='lib/scatterlist.c' line='1015' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='sg_free_table' mangled-name='sg_free_table' filepath='lib/scatterlist.c' line='254' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_free_table'>
+        <parameter type-id='4adb0e6a' name='table' filepath='lib/scatterlist.c' line='254' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sg_free_table_chained' mangled-name='sg_free_table_chained' filepath='lib/sg_pool.c' line='84' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_free_table_chained'>
+        <parameter type-id='4adb0e6a' name='table' filepath='lib/sg_pool.c' line='84' column='1'/>
+        <parameter type-id='f0981eeb' name='nents_first_chunk' filepath='lib/sg_pool.c' line='85' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sg_init_one' mangled-name='sg_init_one' filepath='lib/scatterlist.c' line='138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_init_one'>
+        <parameter type-id='bf3ef905' name='sg' filepath='lib/scatterlist.c' line='138' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='lib/scatterlist.c' line='138' column='1'/>
+        <parameter type-id='f0981eeb' name='buflen' filepath='lib/scatterlist.c' line='138' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sg_init_table' mangled-name='sg_init_table' filepath='lib/scatterlist.c' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_init_table'>
+        <parameter type-id='bf3ef905' name='sgl' filepath='lib/scatterlist.c' line='124' column='1'/>
+        <parameter type-id='f0981eeb' name='nents' filepath='lib/scatterlist.c' line='124' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sg_last' mangled-name='sg_last' filepath='lib/scatterlist.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_last'>
+        <parameter type-id='bf3ef905' name='sgl' filepath='lib/scatterlist.c' line='101' column='1'/>
+        <parameter type-id='f0981eeb' name='nents' filepath='lib/scatterlist.c' line='101' column='1'/>
+        <return type-id='bf3ef905'/>
+      </function-decl>
+      <function-decl name='sg_miter_next' mangled-name='sg_miter_next' filepath='lib/scatterlist.c' line='875' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_miter_next'>
+        <parameter type-id='a462f2f9' name='miter' filepath='lib/scatterlist.c' line='875' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='sg_miter_skip' mangled-name='sg_miter_skip' filepath='lib/scatterlist.c' line='838' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_miter_skip'>
+        <parameter type-id='a462f2f9' name='miter' filepath='lib/scatterlist.c' line='838' column='1'/>
+        <parameter type-id='ad707ada' name='offset' filepath='lib/scatterlist.c' line='838' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='sg_miter_start' mangled-name='sg_miter_start' filepath='lib/scatterlist.c' line='786' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_miter_start'>
+        <parameter type-id='a462f2f9' name='miter' filepath='lib/scatterlist.c' line='786' column='1'/>
+        <parameter type-id='bf3ef905' name='sgl' filepath='lib/scatterlist.c' line='786' column='1'/>
+        <parameter type-id='f0981eeb' name='nents' filepath='lib/scatterlist.c' line='787' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='lib/scatterlist.c' line='787' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sg_miter_stop' mangled-name='sg_miter_stop' filepath='lib/scatterlist.c' line='912' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_miter_stop'>
+        <parameter type-id='a462f2f9' name='miter' filepath='lib/scatterlist.c' line='912' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sg_nents' mangled-name='sg_nents' filepath='lib/scatterlist.c' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_nents'>
+        <parameter type-id='bf3ef905' name='sg' filepath='lib/scatterlist.c' line='45' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sg_nents_for_len' mangled-name='sg_nents_for_len' filepath='lib/scatterlist.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_nents_for_len'>
+        <parameter type-id='bf3ef905' name='sg' filepath='lib/scatterlist.c' line='68' column='1'/>
+        <parameter type-id='91ce1af9' name='len' filepath='lib/scatterlist.c' line='68' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sg_next' mangled-name='sg_next' filepath='lib/scatterlist.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_next'>
+        <parameter type-id='bf3ef905' name='sg' filepath='lib/scatterlist.c' line='23' column='1'/>
+        <return type-id='bf3ef905'/>
+      </function-decl>
+      <function-decl name='sg_pcopy_from_buffer' mangled-name='sg_pcopy_from_buffer' filepath='lib/scatterlist.c' line='1032' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_pcopy_from_buffer'>
+        <parameter type-id='bf3ef905' name='sgl' filepath='lib/scatterlist.c' line='1032' column='1'/>
+        <parameter type-id='f0981eeb' name='nents' filepath='lib/scatterlist.c' line='1032' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='lib/scatterlist.c' line='1033' column='1'/>
+        <parameter type-id='b59d7dce' name='buflen' filepath='lib/scatterlist.c' line='1033' column='1'/>
+        <parameter type-id='ad707ada' name='skip' filepath='lib/scatterlist.c' line='1033' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='sg_pcopy_to_buffer' mangled-name='sg_pcopy_to_buffer' filepath='lib/scatterlist.c' line='1050' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_pcopy_to_buffer'>
+        <parameter type-id='bf3ef905' name='sgl' filepath='lib/scatterlist.c' line='1050' column='1'/>
+        <parameter type-id='f0981eeb' name='nents' filepath='lib/scatterlist.c' line='1050' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='lib/scatterlist.c' line='1051' column='1'/>
+        <parameter type-id='b59d7dce' name='buflen' filepath='lib/scatterlist.c' line='1051' column='1'/>
+        <parameter type-id='ad707ada' name='skip' filepath='lib/scatterlist.c' line='1051' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='sg_zero_buffer' mangled-name='sg_zero_buffer' filepath='lib/scatterlist.c' line='1066' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_zero_buffer'>
+        <parameter type-id='bf3ef905' name='sgl' filepath='lib/scatterlist.c' line='1066' column='1'/>
+        <parameter type-id='f0981eeb' name='nents' filepath='lib/scatterlist.c' line='1066' column='1'/>
+        <parameter type-id='b59d7dce' name='buflen' filepath='lib/scatterlist.c' line='1067' column='1'/>
+        <parameter type-id='ad707ada' name='skip' filepath='lib/scatterlist.c' line='1067' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='sget_fc' mangled-name='sget_fc' filepath='fs/super.c' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sget_fc'>
+        <parameter type-id='5760dcb0' name='fc' filepath='fs/super.c' line='522' column='1'/>
+        <parameter type-id='30341fa1' name='test' filepath='fs/super.c' line='523' column='1'/>
+        <parameter type-id='30341fa1' name='set' filepath='fs/super.c' line='524' column='1'/>
+        <return type-id='42c8f564'/>
+      </function-decl>
+      <function-decl name='shash_free_singlespawn_instance' mangled-name='shash_free_singlespawn_instance' filepath='crypto/shash.c' line='619' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='shash_free_singlespawn_instance'>
+        <parameter type-id='9414c4b6' name='inst' filepath='crypto/shash.c' line='619' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='shash_register_instance' mangled-name='shash_register_instance' filepath='crypto/shash.c' line='603' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='shash_register_instance'>
+        <parameter type-id='f0f856cb' name='tmpl' filepath='crypto/shash.c' line='603' column='1'/>
+        <parameter type-id='9414c4b6' name='inst' filepath='crypto/shash.c' line='604' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='shmem_file_setup' mangled-name='shmem_file_setup' filepath='mm/shmem.c' line='4155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='shmem_file_setup'>
+        <parameter type-id='80f4b756' name='name' filepath='mm/shmem.c' line='4155' column='1'/>
+        <parameter type-id='69bf7bee' name='size' filepath='mm/shmem.c' line='4155' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='mm/shmem.c' line='4155' column='1'/>
+        <return type-id='77e79a4b'/>
+      </function-decl>
+      <function-decl name='shmem_read_mapping_page_gfp' mangled-name='shmem_read_mapping_page_gfp' filepath='mm/shmem.c' line='4223' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='shmem_read_mapping_page_gfp'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/shmem.c' line='4223' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='mm/shmem.c' line='4224' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='mm/shmem.c' line='4224' column='1'/>
+        <return type-id='02f11ed4'/>
+      </function-decl>
+      <function-decl name='shmem_truncate_range' mangled-name='shmem_truncate_range' filepath='mm/shmem.c' line='1062' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='shmem_truncate_range'>
+        <parameter type-id='7e666abe' name='inode' filepath='mm/shmem.c' line='1062' column='1'/>
+        <parameter type-id='69bf7bee' name='lstart' filepath='mm/shmem.c' line='1062' column='1'/>
+        <parameter type-id='69bf7bee' name='lend' filepath='mm/shmem.c' line='1062' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='show_class_attr_string' mangled-name='show_class_attr_string' filepath='drivers/base/class.c' line='480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='show_class_attr_string'>
+        <parameter type-id='67aca04f' name='class' filepath='drivers/base/class.c' line='480' column='1'/>
+        <parameter type-id='9cc1ac3e' name='attr' filepath='drivers/base/class.c' line='481' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='drivers/base/class.c' line='481' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='show_rcu_gp_kthreads' mangled-name='show_rcu_gp_kthreads' filepath='kernel/rcu/tree_stall.h' line='805' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='show_rcu_gp_kthreads'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='show_rcu_tasks_classic_gp_kthread' mangled-name='show_rcu_tasks_classic_gp_kthread' filepath='kernel/rcu/tasks.h' line='622' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='show_rcu_tasks_classic_gp_kthread'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='show_rcu_tasks_trace_gp_kthread' mangled-name='show_rcu_tasks_trace_gp_kthread' filepath='kernel/rcu/tasks.h' line='1304' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='show_rcu_tasks_trace_gp_kthread'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='show_regs' mangled-name='show_regs' filepath='arch/arm64/kernel/process.c' line='245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='show_regs'>
+        <parameter type-id='4616a179' name='regs' filepath='arch/arm64/kernel/process.c' line='245' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='shrink_dcache_sb' mangled-name='shrink_dcache_sb' filepath='fs/dcache.c' line='1289' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='shrink_dcache_sb'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/dcache.c' line='1289' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='shrink_slab' mangled-name='shrink_slab' filepath='mm/vmscan.c' line='909' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='shrink_slab'>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/vmscan.c' line='909' column='1'/>
+        <parameter type-id='95e97e5e' name='nid' filepath='mm/vmscan.c' line='909' column='1'/>
+        <parameter type-id='223696fb' name='memcg' filepath='mm/vmscan.c' line='910' column='1'/>
+        <parameter type-id='95e97e5e' name='priority' filepath='mm/vmscan.c' line='911' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='si_mem_available' mangled-name='si_mem_available' filepath='mm/page_alloc.c' line='6134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='si_mem_available'>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='si_meminfo' mangled-name='si_meminfo' filepath='mm/page_alloc.c' line='6180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='si_meminfo'>
+        <parameter type-id='0f561784' name='val' filepath='mm/page_alloc.c' line='6180' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='si_swapinfo' mangled-name='si_swapinfo' filepath='mm/swapfile.c' line='3408' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='si_swapinfo'>
+        <parameter type-id='0f561784' name='val' filepath='mm/swapfile.c' line='3408' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sigprocmask' mangled-name='sigprocmask' filepath='kernel/signal.c' line='3090' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sigprocmask'>
+        <parameter type-id='95e97e5e' name='how' filepath='kernel/signal.c' line='3090' column='1'/>
+        <parameter type-id='9e80f729' name='set' filepath='kernel/signal.c' line='3090' column='1'/>
+        <parameter type-id='9e80f729' name='oldset' filepath='kernel/signal.c' line='3090' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='simple_attr_open' mangled-name='simple_attr_open' filepath='fs/libfs.c' line='902' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='simple_attr_open'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/libfs.c' line='902' column='1'/>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/libfs.c' line='902' column='1'/>
+        <parameter type-id='dffc7428' name='get' filepath='fs/libfs.c' line='903' column='1'/>
+        <parameter type-id='0fb09eeb' name='set' filepath='fs/libfs.c' line='903' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='fs/libfs.c' line='904' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='simple_attr_read' mangled-name='simple_attr_read' filepath='fs/libfs.c' line='932' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='simple_attr_read'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/libfs.c' line='932' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='fs/libfs.c' line='932' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='fs/libfs.c' line='933' column='1'/>
+        <parameter type-id='b53e8dbb' name='ppos' filepath='fs/libfs.c' line='933' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='simple_attr_release' mangled-name='simple_attr_release' filepath='fs/libfs.c' line='924' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='simple_attr_release'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/libfs.c' line='924' column='1'/>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/libfs.c' line='924' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='simple_attr_write' mangled-name='simple_attr_write' filepath='fs/libfs.c' line='1006' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='simple_attr_write'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/libfs.c' line='1006' column='1'/>
+        <parameter type-id='80f4b756' name='buf' filepath='fs/libfs.c' line='1006' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='fs/libfs.c' line='1007' column='1'/>
+        <parameter type-id='b53e8dbb' name='ppos' filepath='fs/libfs.c' line='1007' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <var-decl name='simple_dir_inode_operations' type-id='c8e0fb8e' mangled-name='simple_dir_inode_operations' visibility='default' filepath='fs/libfs.c' line='241' column='1' elf-symbol-id='simple_dir_inode_operations'/>
+      <var-decl name='simple_dir_operations' type-id='b8ae588d' mangled-name='simple_dir_operations' visibility='default' filepath='fs/libfs.c' line='231' column='1' elf-symbol-id='simple_dir_operations'/>
+      <function-decl name='simple_get_link' mangled-name='simple_get_link' filepath='fs/libfs.c' line='1281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='simple_get_link'>
+        <parameter type-id='27675065' name='dentry' filepath='fs/libfs.c' line='1281' column='1'/>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/libfs.c' line='1281' column='1'/>
+        <parameter type-id='26cad514' name='done' filepath='fs/libfs.c' line='1282' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='simple_open' mangled-name='simple_open' filepath='fs/libfs.c' line='386' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='simple_open'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/libfs.c' line='386' column='1'/>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/libfs.c' line='386' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='simple_read_from_buffer' mangled-name='simple_read_from_buffer' filepath='fs/libfs.c' line='729' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='simple_read_from_buffer'>
+        <parameter type-id='eaa32e2f' name='to' filepath='fs/libfs.c' line='729' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='fs/libfs.c' line='729' column='1'/>
+        <parameter type-id='b53e8dbb' name='ppos' filepath='fs/libfs.c' line='729' column='1'/>
+        <parameter type-id='eaa32e2f' name='from' filepath='fs/libfs.c' line='730' column='1'/>
+        <parameter type-id='b59d7dce' name='available' filepath='fs/libfs.c' line='730' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='simple_statfs' mangled-name='simple_statfs' filepath='fs/libfs.c' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='simple_statfs'>
+        <parameter type-id='27675065' name='dentry' filepath='fs/libfs.c' line='41' column='1'/>
+        <parameter type-id='087d687b' name='buf' filepath='fs/libfs.c' line='41' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='simple_strtol' mangled-name='simple_strtol' filepath='include/linux/kstrtox.h' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='simple_strtol'>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='9b23c9ad'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='simple_strtoll' mangled-name='simple_strtoll' filepath='lib/vsprintf.c' line='154' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='simple_strtoll'>
+        <parameter type-id='80f4b756' name='cp' filepath='lib/vsprintf.c' line='154' column='1'/>
+        <parameter type-id='9b23c9ad' name='endp' filepath='lib/vsprintf.c' line='154' column='1'/>
+        <parameter type-id='f0981eeb' name='base' filepath='lib/vsprintf.c' line='154' column='1'/>
+        <return type-id='1eb56b1e'/>
+      </function-decl>
+      <function-decl name='simple_strtoul' mangled-name='simple_strtoul' filepath='lib/vsprintf.c' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='simple_strtoul'>
+        <parameter type-id='80f4b756' name='cp' filepath='lib/vsprintf.c' line='108' column='1'/>
+        <parameter type-id='9b23c9ad' name='endp' filepath='lib/vsprintf.c' line='108' column='1'/>
+        <parameter type-id='f0981eeb' name='base' filepath='lib/vsprintf.c' line='108' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='simple_strtoull' mangled-name='simple_strtoull' filepath='include/linux/kstrtox.h' line='147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='simple_strtoull'>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='9b23c9ad'/>
+        <parameter type-id='f0981eeb'/>
+        <return type-id='0d77e947'/>
+      </function-decl>
+      <function-decl name='simple_write_to_buffer' mangled-name='simple_write_to_buffer' filepath='fs/libfs.c' line='764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='simple_write_to_buffer'>
+        <parameter type-id='eaa32e2f' name='to' filepath='fs/libfs.c' line='764' column='1'/>
+        <parameter type-id='b59d7dce' name='available' filepath='fs/libfs.c' line='764' column='1'/>
+        <parameter type-id='b53e8dbb' name='ppos' filepath='fs/libfs.c' line='764' column='1'/>
+        <parameter type-id='eaa32e2f' name='from' filepath='fs/libfs.c' line='765' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='fs/libfs.c' line='765' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='single_open' mangled-name='single_open' filepath='fs/seq_file.c' line='588' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='single_open'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/seq_file.c' line='588' column='1'/>
+        <parameter type-id='0131eb61' name='show' filepath='fs/seq_file.c' line='588' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='fs/seq_file.c' line='589' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='single_open_size' mangled-name='single_open_size' filepath='fs/seq_file.c' line='609' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='single_open_size'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/seq_file.c' line='609' column='1'/>
+        <parameter type-id='0131eb61' name='show' filepath='fs/seq_file.c' line='609' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='fs/seq_file.c' line='610' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='fs/seq_file.c' line='610' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='single_release' mangled-name='single_release' filepath='fs/seq_file.c' line='627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='single_release'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/seq_file.c' line='627' column='1'/>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/seq_file.c' line='627' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sk_alloc' mangled-name='sk_alloc' filepath='net/core/sock.c' line='1895' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sk_alloc'>
+        <parameter type-id='a2bff676' name='net' filepath='net/core/sock.c' line='1895' column='1'/>
+        <parameter type-id='95e97e5e' name='family' filepath='net/core/sock.c' line='1895' column='1'/>
+        <parameter type-id='3eb7c31c' name='priority' filepath='net/core/sock.c' line='1895' column='1'/>
+        <parameter type-id='d2524501' name='prot' filepath='net/core/sock.c' line='1896' column='1'/>
+        <parameter type-id='95e97e5e' name='kern' filepath='net/core/sock.c' line='1896' column='1'/>
+        <return type-id='f772df6d'/>
+      </function-decl>
+      <function-decl name='sk_error_report' mangled-name='sk_error_report' filepath='net/core/sock.c' line='339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sk_error_report'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/core/sock.c' line='339' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sk_free' mangled-name='sk_free' filepath='net/core/sock.c' line='1998' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sk_free'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/core/sock.c' line='1998' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sk_setup_caps' mangled-name='sk_setup_caps' filepath='net/core/sock.c' line='2170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sk_setup_caps'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/core/sock.c' line='2170' column='1'/>
+        <parameter type-id='141b6427' name='dst' filepath='net/core/sock.c' line='2170' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='skb_add_rx_frag' mangled-name='skb_add_rx_frag' filepath='net/core/skbuff.c' line='606' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_add_rx_frag'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='606' column='1'/>
+        <parameter type-id='95e97e5e' name='i' filepath='net/core/skbuff.c' line='606' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='net/core/skbuff.c' line='606' column='1'/>
+        <parameter type-id='95e97e5e' name='off' filepath='net/core/skbuff.c' line='606' column='1'/>
+        <parameter type-id='95e97e5e' name='size' filepath='net/core/skbuff.c' line='607' column='1'/>
+        <parameter type-id='f0981eeb' name='truesize' filepath='net/core/skbuff.c' line='607' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='skb_append_pagefrags' mangled-name='skb_append_pagefrags' filepath='net/core/skbuff.c' line='3842' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_append_pagefrags'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='3842' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='net/core/skbuff.c' line='3842' column='1'/>
+        <parameter type-id='95e97e5e' name='offset' filepath='net/core/skbuff.c' line='3843' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='net/core/skbuff.c' line='3843' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='skb_checksum' mangled-name='skb_checksum' filepath='net/core/skbuff.c' line='2943' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_checksum'>
+        <parameter type-id='11f4a000' name='skb' filepath='net/core/skbuff.c' line='2943' column='1'/>
+        <parameter type-id='95e97e5e' name='offset' filepath='net/core/skbuff.c' line='2943' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='net/core/skbuff.c' line='2944' column='1'/>
+        <parameter type-id='fbd88bba' name='csum' filepath='net/core/skbuff.c' line='2944' column='1'/>
+        <return type-id='fbd88bba'/>
+      </function-decl>
+      <function-decl name='skb_checksum_help' mangled-name='skb_checksum_help' filepath='net/core/dev.c' line='3226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_checksum_help'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/dev.c' line='3226' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='skb_clone' mangled-name='skb_clone' filepath='net/core/skbuff.c' line='1529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_clone'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='1529' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='net/core/skbuff.c' line='1529' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='skb_clone_sk' mangled-name='skb_clone_sk' filepath='net/core/skbuff.c' line='4867' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_clone_sk'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4867' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='skb_coalesce_rx_frag' mangled-name='skb_coalesce_rx_frag' filepath='net/core/skbuff.c' line='616' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_coalesce_rx_frag'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='616' column='1'/>
+        <parameter type-id='95e97e5e' name='i' filepath='net/core/skbuff.c' line='616' column='1'/>
+        <parameter type-id='95e97e5e' name='size' filepath='net/core/skbuff.c' line='616' column='1'/>
+        <parameter type-id='f0981eeb' name='truesize' filepath='net/core/skbuff.c' line='617' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='skb_complete_wifi_ack' mangled-name='skb_complete_wifi_ack' filepath='net/core/skbuff.c' line='5019' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_complete_wifi_ack'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5019' column='1'/>
+        <parameter type-id='b50a4934' name='acked' filepath='net/core/skbuff.c' line='5019' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='skb_copy' mangled-name='skb_copy' filepath='net/core/skbuff.c' line='1608' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_copy'>
+        <parameter type-id='11f4a000' name='skb' filepath='net/core/skbuff.c' line='1608' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='net/core/skbuff.c' line='1608' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='skb_copy_bits' mangled-name='skb_copy_bits' filepath='net/core/skbuff.c' line='2378' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_copy_bits'>
+        <parameter type-id='11f4a000' name='skb' filepath='net/core/skbuff.c' line='2378' column='1'/>
+        <parameter type-id='95e97e5e' name='offset' filepath='net/core/skbuff.c' line='2378' column='1'/>
+        <parameter type-id='eaa32e2f' name='to' filepath='net/core/skbuff.c' line='2378' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='net/core/skbuff.c' line='2378' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='skb_copy_datagram_from_iter' mangled-name='skb_copy_datagram_from_iter' filepath='net/core/datagram.c' line='547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_copy_datagram_from_iter'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/datagram.c' line='547' column='1'/>
+        <parameter type-id='95e97e5e' name='offset' filepath='net/core/datagram.c' line='547' column='1'/>
+        <parameter type-id='4fa10f9e' name='from' filepath='net/core/datagram.c' line='548' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='net/core/datagram.c' line='549' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='skb_copy_datagram_iter' mangled-name='skb_copy_datagram_iter' filepath='net/core/datagram.c' line='529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_copy_datagram_iter'>
+        <parameter type-id='11f4a000' name='skb' filepath='net/core/datagram.c' line='529' column='1'/>
+        <parameter type-id='95e97e5e' name='offset' filepath='net/core/datagram.c' line='529' column='1'/>
+        <parameter type-id='4fa10f9e' name='to' filepath='net/core/datagram.c' line='530' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='net/core/datagram.c' line='530' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='skb_copy_expand' mangled-name='skb_copy_expand' filepath='net/core/skbuff.c' line='1919' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_copy_expand'>
+        <parameter type-id='11f4a000' name='skb' filepath='net/core/skbuff.c' line='1919' column='1'/>
+        <parameter type-id='95e97e5e' name='newheadroom' filepath='net/core/skbuff.c' line='1920' column='1'/>
+        <parameter type-id='95e97e5e' name='newtailroom' filepath='net/core/skbuff.c' line='1920' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='net/core/skbuff.c' line='1921' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='skb_copy_ubufs' mangled-name='skb_copy_ubufs' filepath='net/core/skbuff.c' line='1441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_copy_ubufs'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='1441' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='net/core/skbuff.c' line='1441' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='skb_cow_data' mangled-name='skb_cow_data' filepath='net/core/skbuff.c' line='4688' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_cow_data'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4688' column='1'/>
+        <parameter type-id='95e97e5e' name='tailbits' filepath='net/core/skbuff.c' line='4688' column='1'/>
+        <parameter type-id='a10cc675' name='trailer' filepath='net/core/skbuff.c' line='4688' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='skb_dequeue' mangled-name='skb_dequeue' filepath='net/core/skbuff.c' line='3269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_dequeue'>
+        <parameter type-id='03c386c6' name='list' filepath='net/core/skbuff.c' line='3269' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='skb_dequeue_tail' mangled-name='skb_dequeue_tail' filepath='net/core/skbuff.c' line='3289' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_dequeue_tail'>
+        <parameter type-id='03c386c6' name='list' filepath='net/core/skbuff.c' line='3289' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='skb_dump' mangled-name='skb_dump' filepath='net/core/skbuff.c' line='813' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_dump'>
+        <parameter type-id='80f4b756' name='level' filepath='net/core/skbuff.c' line='813' column='1'/>
+        <parameter type-id='11f4a000' name='skb' filepath='net/core/skbuff.c' line='813' column='1'/>
+        <parameter type-id='b50a4934' name='full_pkt' filepath='net/core/skbuff.c' line='813' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='skb_ensure_writable' mangled-name='skb_ensure_writable' filepath='net/core/skbuff.c' line='5754' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_ensure_writable'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5754' column='1'/>
+        <parameter type-id='95e97e5e' name='write_len' filepath='net/core/skbuff.c' line='5754' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='skb_free_datagram' mangled-name='skb_free_datagram' filepath='net/core/datagram.c' line='323' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_free_datagram'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/core/datagram.c' line='323' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/datagram.c' line='323' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='skb_page_frag_refill' mangled-name='skb_page_frag_refill' filepath='net/core/sock.c' line='2617' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_page_frag_refill'>
+        <parameter type-id='f0981eeb' name='sz' filepath='net/core/sock.c' line='2617' column='1'/>
+        <parameter type-id='a8d434b7' name='pfrag' filepath='net/core/sock.c' line='2617' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='net/core/sock.c' line='2617' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='skb_partial_csum_set' mangled-name='skb_partial_csum_set' filepath='net/core/skbuff.c' line='5057' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_partial_csum_set'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5057' column='1'/>
+        <parameter type-id='1dc6a898' name='start' filepath='net/core/skbuff.c' line='5057' column='1'/>
+        <parameter type-id='1dc6a898' name='off' filepath='net/core/skbuff.c' line='5057' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='skb_pull' mangled-name='skb_pull' filepath='net/core/skbuff.c' line='2081' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_pull'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='2081' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='net/core/skbuff.c' line='2081' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='skb_pull_rcsum' mangled-name='skb_pull_rcsum' filepath='net/core/skbuff.c' line='3871' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_pull_rcsum'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='3871' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='net/core/skbuff.c' line='3871' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='skb_push' mangled-name='skb_push' filepath='net/core/skbuff.c' line='2061' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_push'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='2061' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='net/core/skbuff.c' line='2061' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='skb_put' mangled-name='skb_put' filepath='net/core/skbuff.c' line='2040' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_put'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='2040' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='net/core/skbuff.c' line='2040' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='skb_queue_head' mangled-name='skb_queue_head' filepath='net/core/skbuff.c' line='3354' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_queue_head'>
+        <parameter type-id='03c386c6' name='list' filepath='net/core/skbuff.c' line='3354' column='1'/>
+        <parameter type-id='0fbf3cfd' name='newsk' filepath='net/core/skbuff.c' line='3354' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='skb_queue_purge' mangled-name='skb_queue_purge' filepath='net/core/skbuff.c' line='3309' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_queue_purge'>
+        <parameter type-id='03c386c6' name='list' filepath='net/core/skbuff.c' line='3309' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='skb_queue_tail' mangled-name='skb_queue_tail' filepath='net/core/skbuff.c' line='3375' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_queue_tail'>
+        <parameter type-id='03c386c6' name='list' filepath='net/core/skbuff.c' line='3375' column='1'/>
+        <parameter type-id='0fbf3cfd' name='newsk' filepath='net/core/skbuff.c' line='3375' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='skb_realloc_headroom' mangled-name='skb_realloc_headroom' filepath='net/core/skbuff.c' line='1799' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_realloc_headroom'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='1799' column='1'/>
+        <parameter type-id='f0981eeb' name='headroom' filepath='net/core/skbuff.c' line='1799' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='skb_recv_datagram' mangled-name='skb_recv_datagram' filepath='net/core/datagram.c' line='312' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_recv_datagram'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/core/datagram.c' line='312' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='net/core/datagram.c' line='312' column='1'/>
+        <parameter type-id='95e97e5e' name='noblock' filepath='net/core/datagram.c' line='313' column='1'/>
+        <parameter type-id='7292109c' name='err' filepath='net/core/datagram.c' line='313' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='skb_scrub_packet' mangled-name='skb_scrub_packet' filepath='net/core/skbuff.c' line='5522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_scrub_packet'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5522' column='1'/>
+        <parameter type-id='b50a4934' name='xnet' filepath='net/core/skbuff.c' line='5522' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='skb_set_owner_w' mangled-name='skb_set_owner_w' filepath='net/core/sock.c' line='2234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_set_owner_w'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/sock.c' line='2234' column='1'/>
+        <parameter type-id='f772df6d' name='sk' filepath='net/core/sock.c' line='2234' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='skb_split' mangled-name='skb_split' filepath='net/core/skbuff.c' line='3493' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_split'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='3493' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb1' filepath='net/core/skbuff.c' line='3493' column='1'/>
+        <parameter type-id='51bb592e' name='len' filepath='net/core/skbuff.c' line='3493' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='skb_store_bits' mangled-name='skb_store_bits' filepath='net/core/skbuff.c' line='2781' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_store_bits'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='2781' column='1'/>
+        <parameter type-id='95e97e5e' name='offset' filepath='net/core/skbuff.c' line='2781' column='1'/>
+        <parameter type-id='eaa32e2f' name='from' filepath='net/core/skbuff.c' line='2781' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='net/core/skbuff.c' line='2781' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='skb_to_sgvec' mangled-name='skb_to_sgvec' filepath='net/core/skbuff.c' line='4630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_to_sgvec'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4630' column='1'/>
+        <parameter type-id='bf3ef905' name='sg' filepath='net/core/skbuff.c' line='4630' column='1'/>
+        <parameter type-id='95e97e5e' name='offset' filepath='net/core/skbuff.c' line='4630' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='net/core/skbuff.c' line='4630' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='skb_to_sgvec_nomark' mangled-name='skb_to_sgvec_nomark' filepath='net/core/skbuff.c' line='4662' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_to_sgvec_nomark'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4662' column='1'/>
+        <parameter type-id='bf3ef905' name='sg' filepath='net/core/skbuff.c' line='4662' column='1'/>
+        <parameter type-id='95e97e5e' name='offset' filepath='net/core/skbuff.c' line='4663' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='net/core/skbuff.c' line='4663' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='skb_trim' mangled-name='skb_trim' filepath='net/core/skbuff.c' line='2096' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_trim'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='2096' column='1'/>
+        <parameter type-id='f0981eeb' name='len' filepath='net/core/skbuff.c' line='2096' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='skb_tstamp_tx' mangled-name='skb_tstamp_tx' filepath='net/core/skbuff.c' line='5011' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_tstamp_tx'>
+        <parameter type-id='0fbf3cfd' name='orig_skb' filepath='net/core/skbuff.c' line='5011' column='1'/>
+        <parameter type-id='68197365' name='hwtstamps' filepath='net/core/skbuff.c' line='5012' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='skb_unlink' mangled-name='skb_unlink' filepath='net/core/skbuff.c' line='3395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_unlink'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='3395' column='1'/>
+        <parameter type-id='03c386c6' name='list' filepath='net/core/skbuff.c' line='3395' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='skb_vlan_untag' mangled-name='skb_vlan_untag' filepath='net/core/skbuff.c' line='5713' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_vlan_untag'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5713' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='skcipher_alloc_instance_simple' mangled-name='skcipher_alloc_instance_simple' filepath='crypto/skcipher.c' line='929' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skcipher_alloc_instance_simple'>
+        <parameter type-id='f0f856cb' name='tmpl' filepath='crypto/skcipher.c' line='930' column='1'/>
+        <parameter type-id='c161b868' name='tb' filepath='crypto/skcipher.c' line='930' column='1'/>
+        <return type-id='8e5a8430'/>
+      </function-decl>
+      <function-decl name='skcipher_register_instance' mangled-name='skcipher_register_instance' filepath='crypto/skcipher.c' line='858' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skcipher_register_instance'>
+        <parameter type-id='f0f856cb' name='tmpl' filepath='crypto/skcipher.c' line='858' column='1'/>
+        <parameter type-id='8e5a8430' name='inst' filepath='crypto/skcipher.c' line='859' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='skcipher_walk_aead_decrypt' mangled-name='skcipher_walk_aead_decrypt' filepath='crypto/skcipher.c' line='556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skcipher_walk_aead_decrypt'>
+        <parameter type-id='74439606' name='walk' filepath='crypto/skcipher.c' line='556' column='1'/>
+        <parameter type-id='146bc842' name='req' filepath='crypto/skcipher.c' line='557' column='1'/>
+        <parameter type-id='b50a4934' name='atomic' filepath='crypto/skcipher.c' line='557' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='skcipher_walk_aead_encrypt' mangled-name='skcipher_walk_aead_encrypt' filepath='crypto/skcipher.c' line='547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skcipher_walk_aead_encrypt'>
+        <parameter type-id='74439606' name='walk' filepath='crypto/skcipher.c' line='547' column='1'/>
+        <parameter type-id='146bc842' name='req' filepath='crypto/skcipher.c' line='548' column='1'/>
+        <parameter type-id='b50a4934' name='atomic' filepath='crypto/skcipher.c' line='548' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='skcipher_walk_done' mangled-name='skcipher_walk_done' filepath='crypto/skcipher.c' line='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skcipher_walk_done'>
+        <parameter type-id='74439606' name='walk' filepath='crypto/skcipher.c' line='105' column='1'/>
+        <parameter type-id='95e97e5e' name='err' filepath='crypto/skcipher.c' line='105' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='skcipher_walk_virt' mangled-name='skcipher_walk_virt' filepath='crypto/skcipher.c' line='477' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skcipher_walk_virt'>
+        <parameter type-id='74439606' name='walk' filepath='crypto/skcipher.c' line='477' column='1'/>
+        <parameter type-id='c249b570' name='req' filepath='crypto/skcipher.c' line='478' column='1'/>
+        <parameter type-id='b50a4934' name='atomic' filepath='crypto/skcipher.c' line='478' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='skip_spaces' mangled-name='skip_spaces' filepath='include/linux/string.h' line='72' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skip_spaces'>
+        <parameter type-id='80f4b756'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='slhc_compress' mangled-name='slhc_compress' filepath='drivers/net/slip/slhc.c' line='227' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='slhc_compress'>
+        <parameter type-id='b87ee0a0' name='comp' filepath='drivers/net/slip/slhc.c' line='227' column='1'/>
+        <parameter type-id='cf536864' name='icp' filepath='drivers/net/slip/slhc.c' line='227' column='1'/>
+        <parameter type-id='95e97e5e' name='isize' filepath='drivers/net/slip/slhc.c' line='227' column='1'/>
+        <parameter type-id='cf536864' name='ocp' filepath='drivers/net/slip/slhc.c' line='228' column='1'/>
+        <parameter type-id='ae4d32ca' name='cpp' filepath='drivers/net/slip/slhc.c' line='228' column='1'/>
+        <parameter type-id='95e97e5e' name='compress_cid' filepath='drivers/net/slip/slhc.c' line='228' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='slhc_free' mangled-name='slhc_free' filepath='drivers/net/slip/slhc.c' line='154' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='slhc_free'>
+        <parameter type-id='b87ee0a0' name='comp' filepath='drivers/net/slip/slhc.c' line='154' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='slhc_init' mangled-name='slhc_init' filepath='drivers/net/slip/slhc.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='slhc_init'>
+        <parameter type-id='95e97e5e' name='rslots' filepath='drivers/net/slip/slhc.c' line='92' column='1'/>
+        <parameter type-id='95e97e5e' name='tslots' filepath='drivers/net/slip/slhc.c' line='92' column='1'/>
+        <return type-id='b87ee0a0'/>
+      </function-decl>
+      <function-decl name='slhc_remember' mangled-name='slhc_remember' filepath='drivers/net/slip/slhc.c' line='644' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='slhc_remember'>
+        <parameter type-id='b87ee0a0' name='comp' filepath='drivers/net/slip/slhc.c' line='644' column='1'/>
+        <parameter type-id='cf536864' name='icp' filepath='drivers/net/slip/slhc.c' line='644' column='1'/>
+        <parameter type-id='95e97e5e' name='isize' filepath='drivers/net/slip/slhc.c' line='644' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='slhc_toss' mangled-name='slhc_toss' filepath='drivers/net/slip/slhc.c' line='695' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='slhc_toss'>
+        <parameter type-id='b87ee0a0' name='comp' filepath='drivers/net/slip/slhc.c' line='695' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='slhc_uncompress' mangled-name='slhc_uncompress' filepath='drivers/net/slip/slhc.c' line='493' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='slhc_uncompress'>
+        <parameter type-id='b87ee0a0' name='comp' filepath='drivers/net/slip/slhc.c' line='493' column='1'/>
+        <parameter type-id='cf536864' name='icp' filepath='drivers/net/slip/slhc.c' line='493' column='1'/>
+        <parameter type-id='95e97e5e' name='isize' filepath='drivers/net/slip/slhc.c' line='493' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='smp_call_function' mangled-name='smp_call_function' filepath='kernel/smp.c' line='1012' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='smp_call_function'>
+        <parameter type-id='89714567' name='func' filepath='kernel/smp.c' line='1012' column='1'/>
+        <parameter type-id='eaa32e2f' name='info' filepath='kernel/smp.c' line='1012' column='1'/>
+        <parameter type-id='95e97e5e' name='wait' filepath='kernel/smp.c' line='1012' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='smp_call_function_any' mangled-name='smp_call_function_any' filepath='kernel/smp.c' line='826' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='smp_call_function_any'>
+        <parameter type-id='5f8a1ac4' name='mask' filepath='kernel/smp.c' line='826' column='1'/>
+        <parameter type-id='89714567' name='func' filepath='kernel/smp.c' line='827' column='1'/>
+        <parameter type-id='eaa32e2f' name='info' filepath='kernel/smp.c' line='827' column='1'/>
+        <parameter type-id='95e97e5e' name='wait' filepath='kernel/smp.c' line='827' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='smp_call_function_many' mangled-name='smp_call_function_many' filepath='kernel/smp.c' line='990' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='smp_call_function_many'>
+        <parameter type-id='5f8a1ac4' name='mask' filepath='kernel/smp.c' line='990' column='1'/>
+        <parameter type-id='89714567' name='func' filepath='kernel/smp.c' line='991' column='1'/>
+        <parameter type-id='eaa32e2f' name='info' filepath='kernel/smp.c' line='991' column='1'/>
+        <parameter type-id='b50a4934' name='wait' filepath='kernel/smp.c' line='991' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='smp_call_function_single' mangled-name='smp_call_function_single' filepath='kernel/smp.c' line='709' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='smp_call_function_single'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/smp.c' line='709' column='1'/>
+        <parameter type-id='89714567' name='func' filepath='kernel/smp.c' line='709' column='1'/>
+        <parameter type-id='eaa32e2f' name='info' filepath='kernel/smp.c' line='709' column='1'/>
+        <parameter type-id='95e97e5e' name='wait' filepath='kernel/smp.c' line='710' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='smp_call_function_single_async' mangled-name='smp_call_function_single_async' filepath='kernel/smp.c' line='789' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='smp_call_function_single_async'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/smp.c' line='789' column='1'/>
+        <parameter type-id='d5df7665' name='csd' filepath='kernel/smp.c' line='789' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='smp_call_on_cpu' mangled-name='smp_call_on_cpu' filepath='kernel/smp.c' line='1220' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='smp_call_on_cpu'>
+        <parameter type-id='f0981eeb' name='cpu' filepath='kernel/smp.c' line='1220' column='1'/>
+        <parameter type-id='b9b212f5' name='func' filepath='kernel/smp.c' line='1220' column='1'/>
+        <parameter type-id='eaa32e2f' name='par' filepath='kernel/smp.c' line='1220' column='1'/>
+        <parameter type-id='b50a4934' name='phys' filepath='kernel/smp.c' line='1220' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='smpboot_register_percpu_thread' mangled-name='smpboot_register_percpu_thread' filepath='kernel/smpboot.c' line='289' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='smpboot_register_percpu_thread'>
+        <parameter type-id='150fd0b2' name='plug_thread' filepath='kernel/smpboot.c' line='289' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='smpboot_unregister_percpu_thread' mangled-name='smpboot_unregister_percpu_thread' filepath='kernel/smpboot.c' line='318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='smpboot_unregister_percpu_thread'>
+        <parameter type-id='150fd0b2' name='plug_thread' filepath='kernel/smpboot.c' line='318' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snapshot_get_image_size' mangled-name='snapshot_get_image_size' filepath='kernel/power/snapshot.c' line='2077' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snapshot_get_image_size'>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='snd_card_add_dev_attr' mangled-name='snd_card_add_dev_attr' filepath='sound/core/init.c' line='837' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_card_add_dev_attr'>
+        <parameter type-id='52704eb7' name='card' filepath='sound/core/init.c' line='837' column='1'/>
+        <parameter type-id='8ff9530e' name='group' filepath='sound/core/init.c' line='838' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_card_disconnect' mangled-name='snd_card_disconnect' filepath='sound/core/init.c' line='486' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_card_disconnect'>
+        <parameter type-id='52704eb7' name='card' filepath='sound/core/init.c' line='486' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_card_free' mangled-name='snd_card_free' filepath='sound/core/init.c' line='635' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_card_free'>
+        <parameter type-id='52704eb7' name='card' filepath='sound/core/init.c' line='635' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_card_new' mangled-name='snd_card_new' filepath='sound/core/init.c' line='163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_card_new'>
+        <parameter type-id='fa0b179b' name='parent' filepath='sound/core/init.c' line='163' column='1'/>
+        <parameter type-id='95e97e5e' name='idx' filepath='sound/core/init.c' line='163' column='1'/>
+        <parameter type-id='80f4b756' name='xid' filepath='sound/core/init.c' line='163' column='1'/>
+        <parameter type-id='2730d015' name='module' filepath='sound/core/init.c' line='164' column='1'/>
+        <parameter type-id='95e97e5e' name='extra_size' filepath='sound/core/init.c' line='164' column='1'/>
+        <parameter type-id='63cbc127' name='card_ret' filepath='sound/core/init.c' line='165' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_card_ref' mangled-name='snd_card_ref' filepath='sound/core/init.c' line='374' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_card_ref'>
+        <parameter type-id='95e97e5e' name='idx' filepath='sound/core/init.c' line='374' column='1'/>
+        <return type-id='52704eb7'/>
+      </function-decl>
+      <function-decl name='snd_card_register' mangled-name='snd_card_register' filepath='sound/core/init.c' line='871' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_card_register'>
+        <parameter type-id='52704eb7' name='card' filepath='sound/core/init.c' line='871' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_card_rw_proc_new' mangled-name='snd_card_rw_proc_new' filepath='sound/core/info.c' line='872' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_card_rw_proc_new'>
+        <parameter type-id='52704eb7' name='card' filepath='sound/core/info.c' line='872' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='sound/core/info.c' line='872' column='1'/>
+        <parameter type-id='eaa32e2f' name='private_data' filepath='sound/core/info.c' line='873' column='1'/>
+        <parameter type-id='f695e0b6' name='read' filepath='sound/core/info.c' line='874' column='1'/>
+        <parameter type-id='f695e0b6' name='write' filepath='sound/core/info.c' line='876' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_component_add' mangled-name='snd_component_add' filepath='sound/core/init.c' line='1030' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_component_add'>
+        <parameter type-id='52704eb7' name='card' filepath='sound/core/init.c' line='1030' column='1'/>
+        <parameter type-id='80f4b756' name='component' filepath='sound/core/init.c' line='1030' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_compr_malloc_pages' mangled-name='snd_compr_malloc_pages' filepath='sound/core/compress_offload.c' line='489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_compr_malloc_pages'>
+        <parameter type-id='b7c1d7d5' name='stream' filepath='sound/core/compress_offload.c' line='489' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='sound/core/compress_offload.c' line='489' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_compr_stop_error' mangled-name='snd_compr_stop_error' filepath='sound/core/compress_offload.c' line='822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_compr_stop_error'>
+        <parameter type-id='b7c1d7d5' name='stream' filepath='sound/core/compress_offload.c' line='822' column='1'/>
+        <parameter type-id='33158de9' name='state' filepath='sound/core/compress_offload.c' line='823' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_ctl_add' mangled-name='snd_ctl_add' filepath='sound/core/control.c' line='543' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_add'>
+        <parameter type-id='52704eb7' name='card' filepath='sound/core/control.c' line='543' column='1'/>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/core/control.c' line='543' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_ctl_add_vmaster_hook' mangled-name='snd_ctl_add_vmaster_hook' filepath='sound/core/vmaster.c' line='447' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_add_vmaster_hook'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/core/vmaster.c' line='447' column='1'/>
+        <parameter type-id='1ed1e4cd' name='hook' filepath='sound/core/vmaster.c' line='448' column='1'/>
+        <parameter type-id='eaa32e2f' name='private_data' filepath='sound/core/vmaster.c' line='449' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_ctl_apply_vmaster_followers' mangled-name='snd_ctl_apply_vmaster_followers' filepath='sound/core/vmaster.c' line='499' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_apply_vmaster_followers'>
+        <parameter type-id='7a5054b7' name='kctl' filepath='sound/core/vmaster.c' line='499' column='1'/>
+        <parameter type-id='be4e3fad' name='func' filepath='sound/core/vmaster.c' line='500' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='sound/core/vmaster.c' line='503' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_ctl_boolean_mono_info' mangled-name='snd_ctl_boolean_mono_info' filepath='sound/core/control.c' line='2367' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_boolean_mono_info'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/core/control.c' line='2367' column='1'/>
+        <parameter type-id='0e291009' name='uinfo' filepath='sound/core/control.c' line='2368' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_ctl_boolean_stereo_info' mangled-name='snd_ctl_boolean_stereo_info' filepath='sound/core/control.c' line='2387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_boolean_stereo_info'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/core/control.c' line='2387' column='1'/>
+        <parameter type-id='0e291009' name='uinfo' filepath='sound/core/control.c' line='2388' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_ctl_enum_info' mangled-name='snd_ctl_enum_info' filepath='sound/core/control.c' line='2411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_enum_info'>
+        <parameter type-id='0e291009' name='info' filepath='sound/core/control.c' line='2411' column='1'/>
+        <parameter type-id='f0981eeb' name='channels' filepath='sound/core/control.c' line='2411' column='1'/>
+        <parameter type-id='f0981eeb' name='items' filepath='sound/core/control.c' line='2412' column='1'/>
+        <parameter type-id='13956559' name='names' filepath='sound/core/control.c' line='2412' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_ctl_find_id' mangled-name='snd_ctl_find_id' filepath='sound/core/control.c' line='807' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_find_id'>
+        <parameter type-id='52704eb7' name='card' filepath='sound/core/control.c' line='807' column='1'/>
+        <parameter type-id='eaeee79a' name='id' filepath='sound/core/control.c' line='808' column='1'/>
+        <return type-id='7a5054b7'/>
+      </function-decl>
+      <function-decl name='snd_ctl_make_virtual_master' mangled-name='snd_ctl_make_virtual_master' filepath='sound/core/vmaster.c' line='392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_make_virtual_master'>
+        <parameter type-id='26a90f95' name='name' filepath='sound/core/vmaster.c' line='392' column='1'/>
+        <parameter type-id='5b2fd8e8' name='tlv' filepath='sound/core/vmaster.c' line='393' column='1'/>
+        <return type-id='7a5054b7'/>
+      </function-decl>
+      <function-decl name='snd_ctl_new1' mangled-name='snd_ctl_new1' filepath='sound/core/control.c' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_new1'>
+        <parameter type-id='31e035f7' name='ncontrol' filepath='sound/core/control.c' line='261' column='1'/>
+        <parameter type-id='eaa32e2f' name='private_data' filepath='sound/core/control.c' line='262' column='1'/>
+        <return type-id='7a5054b7'/>
+      </function-decl>
+      <function-decl name='snd_ctl_notify' mangled-name='snd_ctl_notify' filepath='sound/core/control.c' line='148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_notify'>
+        <parameter type-id='52704eb7' name='card' filepath='sound/core/control.c' line='148' column='1'/>
+        <parameter type-id='f0981eeb' name='mask' filepath='sound/core/control.c' line='148' column='1'/>
+        <parameter type-id='eaeee79a' name='id' filepath='sound/core/control.c' line='149' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_ctl_remove' mangled-name='snd_ctl_remove' filepath='sound/core/control.c' line='602' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_remove'>
+        <parameter type-id='52704eb7' name='card' filepath='sound/core/control.c' line='602' column='1'/>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/core/control.c' line='602' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_ctl_sync_vmaster' mangled-name='snd_ctl_sync_vmaster' filepath='sound/core/vmaster.c' line='467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_sync_vmaster'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/core/vmaster.c' line='467' column='1'/>
+        <parameter type-id='b50a4934' name='hook_only' filepath='sound/core/vmaster.c' line='467' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_device_disconnect' mangled-name='snd_device_disconnect' filepath='sound/core/device.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_device_disconnect'>
+        <parameter type-id='52704eb7' name='card' filepath='sound/core/device.c' line='106' column='1'/>
+        <parameter type-id='eaa32e2f' name='device_data' filepath='sound/core/device.c' line='106' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_device_free' mangled-name='snd_device_free' filepath='sound/core/device.c' line='130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_device_free'>
+        <parameter type-id='52704eb7' name='card' filepath='sound/core/device.c' line='130' column='1'/>
+        <parameter type-id='eaa32e2f' name='device_data' filepath='sound/core/device.c' line='130' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_device_new' mangled-name='snd_device_new' filepath='sound/core/device.c' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_device_new'>
+        <parameter type-id='52704eb7' name='card' filepath='sound/core/device.c' line='29' column='1'/>
+        <parameter type-id='43cb465b' name='type' filepath='sound/core/device.c' line='29' column='1'/>
+        <parameter type-id='eaa32e2f' name='device_data' filepath='sound/core/device.c' line='30' column='1'/>
+        <parameter type-id='c00b0b11' name='ops' filepath='sound/core/device.c' line='30' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_devm_card_new' mangled-name='snd_devm_card_new' filepath='sound/core/init.c' line='217' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_devm_card_new'>
+        <parameter type-id='fa0b179b' name='parent' filepath='sound/core/init.c' line='217' column='1'/>
+        <parameter type-id='95e97e5e' name='idx' filepath='sound/core/init.c' line='217' column='1'/>
+        <parameter type-id='80f4b756' name='xid' filepath='sound/core/init.c' line='217' column='1'/>
+        <parameter type-id='2730d015' name='module' filepath='sound/core/init.c' line='218' column='1'/>
+        <parameter type-id='b59d7dce' name='extra_size' filepath='sound/core/init.c' line='218' column='1'/>
+        <parameter type-id='63cbc127' name='card_ret' filepath='sound/core/init.c' line='219' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_dma_alloc_pages' mangled-name='snd_dma_alloc_pages' filepath='sound/core/memalloc.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_dma_alloc_pages'>
+        <parameter type-id='95e97e5e' name='type' filepath='sound/core/memalloc.c' line='54' column='1'/>
+        <parameter type-id='fa0b179b' name='device' filepath='sound/core/memalloc.c' line='54' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='sound/core/memalloc.c' line='54' column='1'/>
+        <parameter type-id='a02b8cd2' name='dmab' filepath='sound/core/memalloc.c' line='55' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_dma_free_pages' mangled-name='snd_dma_free_pages' filepath='sound/core/memalloc.c' line='116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_dma_free_pages'>
+        <parameter type-id='a02b8cd2' name='dmab' filepath='sound/core/memalloc.c' line='116' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_dmaengine_pcm_close_release_chan' mangled-name='snd_dmaengine_pcm_close_release_chan' filepath='sound/core/pcm_dmaengine.c' line='369' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_dmaengine_pcm_close_release_chan'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/core/pcm_dmaengine.c' line='369' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_dmaengine_pcm_get_chan' mangled-name='snd_dmaengine_pcm_get_chan' filepath='sound/core/pcm_dmaengine.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_dmaengine_pcm_get_chan'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/core/pcm_dmaengine.c' line='35' column='1'/>
+        <return type-id='27f3f5d8'/>
+      </function-decl>
+      <function-decl name='snd_dmaengine_pcm_open' mangled-name='snd_dmaengine_pcm_open' filepath='sound/core/pcm_dmaengine.c' line='300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_dmaengine_pcm_open'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/core/pcm_dmaengine.c' line='300' column='1'/>
+        <parameter type-id='27f3f5d8' name='chan' filepath='sound/core/pcm_dmaengine.c' line='301' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_dmaengine_pcm_pointer' mangled-name='snd_dmaengine_pcm_pointer' filepath='sound/core/pcm_dmaengine.c' line='244' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_dmaengine_pcm_pointer'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/core/pcm_dmaengine.c' line='244' column='1'/>
+        <return type-id='df412e35'/>
+      </function-decl>
+      <function-decl name='snd_dmaengine_pcm_prepare_slave_config' mangled-name='snd_dmaengine_pcm_prepare_slave_config' filepath='sound/soc/soc-generic-dmaengine-pcm.c' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_dmaengine_pcm_prepare_slave_config'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/soc/soc-generic-dmaengine-pcm.c' line='50' column='1'/>
+        <parameter type-id='363a995e' name='params' filepath='sound/soc/soc-generic-dmaengine-pcm.c' line='51' column='1'/>
+        <parameter type-id='4f22192a' name='slave_config' filepath='sound/soc/soc-generic-dmaengine-pcm.c' line='51' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_dmaengine_pcm_refine_runtime_hwparams' mangled-name='snd_dmaengine_pcm_refine_runtime_hwparams' filepath='sound/core/pcm_dmaengine.c' line='393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_dmaengine_pcm_refine_runtime_hwparams'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/core/pcm_dmaengine.c' line='394' column='1'/>
+        <parameter type-id='878ad4de' name='dma_data' filepath='sound/core/pcm_dmaengine.c' line='395' column='1'/>
+        <parameter type-id='17e4a02a' name='hw' filepath='sound/core/pcm_dmaengine.c' line='396' column='1'/>
+        <parameter type-id='27f3f5d8' name='chan' filepath='sound/core/pcm_dmaengine.c' line='397' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_dmaengine_pcm_set_config_from_dai_data' mangled-name='snd_dmaengine_pcm_set_config_from_dai_data' filepath='sound/core/pcm_dmaengine.c' line='104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_dmaengine_pcm_set_config_from_dai_data'>
+        <parameter type-id='17aa52a9' name='substream' filepath='sound/core/pcm_dmaengine.c' line='105' column='1'/>
+        <parameter type-id='e3459429' name='dma_data' filepath='sound/core/pcm_dmaengine.c' line='106' column='1'/>
+        <parameter type-id='4f22192a' name='slave_config' filepath='sound/core/pcm_dmaengine.c' line='107' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_dmaengine_pcm_trigger' mangled-name='snd_dmaengine_pcm_trigger' filepath='sound/core/pcm_dmaengine.c' line='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_dmaengine_pcm_trigger'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/core/pcm_dmaengine.c' line='186' column='1'/>
+        <parameter type-id='95e97e5e' name='cmd' filepath='sound/core/pcm_dmaengine.c' line='186' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='snd_ecards_limit' type-id='95e97e5e' mangled-name='snd_ecards_limit' visibility='default' filepath='sound/core/sound.c' line='40' column='1' elf-symbol-id='snd_ecards_limit'/>
+      <function-decl name='snd_hwdep_new' mangled-name='snd_hwdep_new' filepath='sound/core/hwdep.c' line='359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_hwdep_new'>
+        <parameter type-id='52704eb7' name='card' filepath='sound/core/hwdep.c' line='359' column='1'/>
+        <parameter type-id='26a90f95' name='id' filepath='sound/core/hwdep.c' line='359' column='1'/>
+        <parameter type-id='95e97e5e' name='device' filepath='sound/core/hwdep.c' line='359' column='1'/>
+        <parameter type-id='358adba9' name='rhwdep' filepath='sound/core/hwdep.c' line='360' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_hwparams_to_dma_slave_config' mangled-name='snd_hwparams_to_dma_slave_config' filepath='sound/core/pcm_dmaengine.c' line='52' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_hwparams_to_dma_slave_config'>
+        <parameter type-id='17aa52a9' name='substream' filepath='sound/core/pcm_dmaengine.c' line='52' column='1'/>
+        <parameter type-id='9b87bc37' name='params' filepath='sound/core/pcm_dmaengine.c' line='53' column='1'/>
+        <parameter type-id='4f22192a' name='slave_config' filepath='sound/core/pcm_dmaengine.c' line='54' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_info_create_card_entry' mangled-name='snd_info_create_card_entry' filepath='sound/core/info.c' line='738' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_info_create_card_entry'>
+        <parameter type-id='52704eb7' name='card' filepath='sound/core/info.c' line='738' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='sound/core/info.c' line='739' column='1'/>
+        <parameter type-id='b9608bfc' name='parent' filepath='sound/core/info.c' line='740' column='1'/>
+        <return type-id='b9608bfc'/>
+      </function-decl>
+      <function-decl name='snd_info_create_module_entry' mangled-name='snd_info_create_module_entry' filepath='sound/core/info.c' line='718' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_info_create_module_entry'>
+        <parameter type-id='2730d015' name='module' filepath='sound/core/info.c' line='718' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='sound/core/info.c' line='719' column='1'/>
+        <parameter type-id='b9608bfc' name='parent' filepath='sound/core/info.c' line='720' column='1'/>
+        <return type-id='b9608bfc'/>
+      </function-decl>
+      <function-decl name='snd_info_free_entry' mangled-name='snd_info_free_entry' filepath='sound/core/info.c' line='766' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_info_free_entry'>
+        <parameter type-id='b9608bfc' name='entry' filepath='sound/core/info.c' line='766' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_info_get_line' mangled-name='snd_info_get_line' filepath='sound/core/info.c' line='604' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_info_get_line'>
+        <parameter type-id='00aa6a0e' name='buffer' filepath='sound/core/info.c' line='604' column='1'/>
+        <parameter type-id='26a90f95' name='line' filepath='sound/core/info.c' line='604' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='sound/core/info.c' line='604' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_info_register' mangled-name='snd_info_register' filepath='sound/core/info.c' line='840' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_info_register'>
+        <parameter type-id='b9608bfc' name='entry' filepath='sound/core/info.c' line='840' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_interval_ranges' mangled-name='snd_interval_ranges' filepath='sound/core/pcm_lib.c' line='1043' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_interval_ranges'>
+        <parameter type-id='732e15ce' name='i' filepath='sound/core/pcm_lib.c' line='1043' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='sound/core/pcm_lib.c' line='1043' column='1'/>
+        <parameter type-id='1d0ab711' name='ranges' filepath='sound/core/pcm_lib.c' line='1044' column='1'/>
+        <parameter type-id='f0981eeb' name='mask' filepath='sound/core/pcm_lib.c' line='1044' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_interval_refine' mangled-name='snd_interval_refine' filepath='sound/core/pcm_lib.c' line='580' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_interval_refine'>
+        <parameter type-id='732e15ce' name='i' filepath='sound/core/pcm_lib.c' line='580' column='1'/>
+        <parameter type-id='1d0ab711' name='v' filepath='sound/core/pcm_lib.c' line='580' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_jack_new' mangled-name='snd_jack_new' filepath='sound/core/jack.c' line='490' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_jack_new'>
+        <parameter type-id='52704eb7' name='card' filepath='sound/core/jack.c' line='490' column='1'/>
+        <parameter type-id='80f4b756' name='id' filepath='sound/core/jack.c' line='490' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='sound/core/jack.c' line='490' column='1'/>
+        <parameter type-id='bd753fd6' name='jjack' filepath='sound/core/jack.c' line='491' column='1'/>
+        <parameter type-id='b50a4934' name='initial_kctl' filepath='sound/core/jack.c' line='491' column='1'/>
+        <parameter type-id='b50a4934' name='phantom_jack' filepath='sound/core/jack.c' line='491' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_jack_report' mangled-name='snd_jack_report' filepath='sound/core/jack.c' line='636' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_jack_report'>
+        <parameter type-id='0f5a7eb8' name='jack' filepath='sound/core/jack.c' line='636' column='1'/>
+        <parameter type-id='95e97e5e' name='status' filepath='sound/core/jack.c' line='636' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_jack_set_key' mangled-name='snd_jack_set_key' filepath='sound/core/jack.c' line='613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_jack_set_key'>
+        <parameter type-id='0f5a7eb8' name='jack' filepath='sound/core/jack.c' line='613' column='1'/>
+        <parameter type-id='7851d449' name='type' filepath='sound/core/jack.c' line='613' column='1'/>
+        <parameter type-id='95e97e5e' name='keytype' filepath='sound/core/jack.c' line='614' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pci_quirk_lookup' mangled-name='snd_pci_quirk_lookup' filepath='sound/core/misc.c' line='139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pci_quirk_lookup'>
+        <parameter type-id='85196e3f' name='pci' filepath='sound/core/misc.c' line='139' column='1'/>
+        <parameter type-id='c55bcf2d' name='list' filepath='sound/core/misc.c' line='139' column='1'/>
+        <return type-id='c55bcf2d'/>
+      </function-decl>
+      <function-decl name='snd_pci_quirk_lookup_id' mangled-name='snd_pci_quirk_lookup_id' filepath='sound/core/misc.c' line='111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pci_quirk_lookup_id'>
+        <parameter type-id='1dc6a898' name='vendor' filepath='sound/core/misc.c' line='111' column='1'/>
+        <parameter type-id='1dc6a898' name='device' filepath='sound/core/misc.c' line='111' column='1'/>
+        <parameter type-id='c55bcf2d' name='list' filepath='sound/core/misc.c' line='112' column='1'/>
+        <return type-id='c55bcf2d'/>
+      </function-decl>
+      <function-decl name='snd_pcm_add_chmap_ctls' mangled-name='snd_pcm_add_chmap_ctls' filepath='sound/core/pcm_lib.c' line='2466' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_add_chmap_ctls'>
+        <parameter type-id='4c9f335b' name='pcm' filepath='sound/core/pcm_lib.c' line='2466' column='1'/>
+        <parameter type-id='95e97e5e' name='stream' filepath='sound/core/pcm_lib.c' line='2466' column='1'/>
+        <parameter type-id='ddec2084' name='chmap' filepath='sound/core/pcm_lib.c' line='2467' column='1'/>
+        <parameter type-id='95e97e5e' name='max_channels' filepath='sound/core/pcm_lib.c' line='2468' column='1'/>
+        <parameter type-id='7359adad' name='private_value' filepath='sound/core/pcm_lib.c' line='2469' column='1'/>
+        <parameter type-id='ce765417' name='info_ret' filepath='sound/core/pcm_lib.c' line='2470' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_create_iec958_consumer_default' mangled-name='snd_pcm_create_iec958_consumer_default' filepath='sound/core/pcm_iec958.c' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_create_iec958_consumer_default'>
+        <parameter type-id='8bff8096' name='cs' filepath='sound/core/pcm_iec958.c' line='29' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='sound/core/pcm_iec958.c' line='29' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_fill_iec958_consumer' mangled-name='snd_pcm_fill_iec958_consumer' filepath='sound/core/pcm_iec958.c' line='133' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_fill_iec958_consumer'>
+        <parameter type-id='17a05af6' name='runtime' filepath='sound/core/pcm_iec958.c' line='133' column='1'/>
+        <parameter type-id='8bff8096' name='cs' filepath='sound/core/pcm_iec958.c' line='134' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='sound/core/pcm_iec958.c' line='134' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_fill_iec958_consumer_hw_params' mangled-name='snd_pcm_fill_iec958_consumer_hw_params' filepath='sound/core/pcm_iec958.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_fill_iec958_consumer_hw_params'>
+        <parameter type-id='363a995e' name='params' filepath='sound/core/pcm_iec958.c' line='156' column='1'/>
+        <parameter type-id='8bff8096' name='cs' filepath='sound/core/pcm_iec958.c' line='157' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='sound/core/pcm_iec958.c' line='157' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_format_big_endian' mangled-name='snd_pcm_format_big_endian' filepath='sound/core/pcm_misc.c' line='332' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_format_big_endian'>
+        <parameter type-id='67fa9bd5' name='format' filepath='sound/core/pcm_misc.c' line='332' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_format_linear' mangled-name='snd_pcm_format_linear' filepath='sound/core/pcm_misc.c' line='300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_format_linear'>
+        <parameter type-id='67fa9bd5' name='format' filepath='sound/core/pcm_misc.c' line='300' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_format_physical_width' mangled-name='snd_pcm_format_physical_width' filepath='sound/core/pcm_misc.c' line='369' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_format_physical_width'>
+        <parameter type-id='67fa9bd5' name='format' filepath='sound/core/pcm_misc.c' line='369' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_format_set_silence' mangled-name='snd_pcm_format_set_silence' filepath='sound/core/pcm_misc.c' line='424' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_format_set_silence'>
+        <parameter type-id='67fa9bd5' name='format' filepath='sound/core/pcm_misc.c' line='424' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='sound/core/pcm_misc.c' line='424' column='1'/>
+        <parameter type-id='f0981eeb' name='samples' filepath='sound/core/pcm_misc.c' line='424' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_format_unsigned' mangled-name='snd_pcm_format_unsigned' filepath='sound/core/pcm_misc.c' line='283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_format_unsigned'>
+        <parameter type-id='67fa9bd5' name='format' filepath='sound/core/pcm_misc.c' line='283' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_format_width' mangled-name='snd_pcm_format_width' filepath='sound/core/pcm_misc.c' line='350' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_format_width'>
+        <parameter type-id='67fa9bd5' name='format' filepath='sound/core/pcm_misc.c' line='350' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_hw_constraint_eld' mangled-name='snd_pcm_hw_constraint_eld' filepath='sound/core/pcm_drm_eld.c' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_hw_constraint_eld'>
+        <parameter type-id='17a05af6' name='runtime' filepath='sound/core/pcm_drm_eld.c' line='80' column='1'/>
+        <parameter type-id='eaa32e2f' name='eld' filepath='sound/core/pcm_drm_eld.c' line='80' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_hw_constraint_integer' mangled-name='snd_pcm_hw_constraint_integer' filepath='sound/core/pcm_lib.c' line='1219' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_hw_constraint_integer'>
+        <parameter type-id='17a05af6' name='runtime' filepath='sound/core/pcm_lib.c' line='1219' column='1'/>
+        <parameter type-id='6b55ba25' name='var' filepath='sound/core/pcm_lib.c' line='1219' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_hw_constraint_list' mangled-name='snd_pcm_hw_constraint_list' filepath='sound/core/pcm_lib.c' line='1270' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_hw_constraint_list'>
+        <parameter type-id='17a05af6' name='runtime' filepath='sound/core/pcm_lib.c' line='1270' column='1'/>
+        <parameter type-id='f0981eeb' name='cond' filepath='sound/core/pcm_lib.c' line='1271' column='1'/>
+        <parameter type-id='6b55ba25' name='var' filepath='sound/core/pcm_lib.c' line='1272' column='1'/>
+        <parameter type-id='a5cedbd3' name='l' filepath='sound/core/pcm_lib.c' line='1273' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_hw_constraint_mask64' mangled-name='snd_pcm_hw_constraint_mask64' filepath='sound/core/pcm_lib.c' line='1195' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_hw_constraint_mask64'>
+        <parameter type-id='17a05af6' name='runtime' filepath='sound/core/pcm_lib.c' line='1195' column='1'/>
+        <parameter type-id='6b55ba25' name='var' filepath='sound/core/pcm_lib.c' line='1195' column='1'/>
+        <parameter type-id='f1f7b9a4' name='mask' filepath='sound/core/pcm_lib.c' line='1196' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_hw_constraint_minmax' mangled-name='snd_pcm_hw_constraint_minmax' filepath='sound/core/pcm_lib.c' line='1238' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_hw_constraint_minmax'>
+        <parameter type-id='17a05af6' name='runtime' filepath='sound/core/pcm_lib.c' line='1238' column='1'/>
+        <parameter type-id='6b55ba25' name='var' filepath='sound/core/pcm_lib.c' line='1238' column='1'/>
+        <parameter type-id='f0981eeb' name='min' filepath='sound/core/pcm_lib.c' line='1239' column='1'/>
+        <parameter type-id='f0981eeb' name='max' filepath='sound/core/pcm_lib.c' line='1239' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_hw_constraint_ratnums' mangled-name='snd_pcm_hw_constraint_ratnums' filepath='sound/core/pcm_lib.c' line='1336' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_hw_constraint_ratnums'>
+        <parameter type-id='17a05af6' name='runtime' filepath='sound/core/pcm_lib.c' line='1336' column='1'/>
+        <parameter type-id='f0981eeb' name='cond' filepath='sound/core/pcm_lib.c' line='1337' column='1'/>
+        <parameter type-id='6b55ba25' name='var' filepath='sound/core/pcm_lib.c' line='1338' column='1'/>
+        <parameter type-id='4edb5fc7' name='r' filepath='sound/core/pcm_lib.c' line='1339' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_hw_constraint_step' mangled-name='snd_pcm_hw_constraint_step' filepath='sound/core/pcm_lib.c' line='1443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_hw_constraint_step'>
+        <parameter type-id='17a05af6' name='runtime' filepath='sound/core/pcm_lib.c' line='1443' column='1'/>
+        <parameter type-id='f0981eeb' name='cond' filepath='sound/core/pcm_lib.c' line='1444' column='1'/>
+        <parameter type-id='6b55ba25' name='var' filepath='sound/core/pcm_lib.c' line='1445' column='1'/>
+        <parameter type-id='7359adad' name='step' filepath='sound/core/pcm_lib.c' line='1446' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_hw_limit_rates' mangled-name='snd_pcm_hw_limit_rates' filepath='sound/core/pcm_misc.c' line='494' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_hw_limit_rates'>
+        <parameter type-id='17e4a02a' name='hw' filepath='sound/core/pcm_misc.c' line='494' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_hw_rule_add' mangled-name='snd_pcm_hw_rule_add' filepath='sound/core/pcm_lib.c' line='1119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_hw_rule_add'>
+        <parameter type-id='17a05af6' name='runtime' filepath='sound/core/pcm_lib.c' line='1119' column='1'/>
+        <parameter type-id='f0981eeb' name='cond' filepath='sound/core/pcm_lib.c' line='1119' column='1'/>
+        <parameter type-id='95e97e5e' name='var' filepath='sound/core/pcm_lib.c' line='1120' column='1'/>
+        <parameter type-id='58d3b2a5' name='func' filepath='sound/core/pcm_lib.c' line='1121' column='1'/>
+        <parameter type-id='eaa32e2f' name='private' filepath='sound/core/pcm_lib.c' line='1121' column='1'/>
+        <parameter type-id='95e97e5e' name='dep' filepath='sound/core/pcm_lib.c' line='1122' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_kernel_ioctl' mangled-name='snd_pcm_kernel_ioctl' filepath='sound/core/pcm_native.c' line='3406' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_kernel_ioctl'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/core/pcm_native.c' line='3406' column='1'/>
+        <parameter type-id='f0981eeb' name='cmd' filepath='sound/core/pcm_native.c' line='3407' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='sound/core/pcm_native.c' line='3407' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_lib_default_mmap' mangled-name='snd_pcm_lib_default_mmap' filepath='sound/core/pcm_native.c' line='3794' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_lib_default_mmap'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/core/pcm_native.c' line='3794' column='1'/>
+        <parameter type-id='2ae08426' name='area' filepath='sound/core/pcm_native.c' line='3795' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_lib_free_pages' mangled-name='snd_pcm_lib_free_pages' filepath='sound/core/pcm_memory.c' line='447' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_lib_free_pages'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/core/pcm_memory.c' line='447' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_lib_ioctl' mangled-name='snd_pcm_lib_ioctl' filepath='sound/core/pcm_lib.c' line='1765' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_lib_ioctl'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/core/pcm_lib.c' line='1765' column='1'/>
+        <parameter type-id='f0981eeb' name='cmd' filepath='sound/core/pcm_lib.c' line='1766' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='sound/core/pcm_lib.c' line='1766' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_lib_malloc_pages' mangled-name='snd_pcm_lib_malloc_pages' filepath='sound/core/pcm_memory.c' line='386' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_lib_malloc_pages'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/core/pcm_memory.c' line='386' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='sound/core/pcm_memory.c' line='386' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_lib_preallocate_free_for_all' mangled-name='snd_pcm_lib_preallocate_free_for_all' filepath='sound/core/pcm_memory.c' line='112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_lib_preallocate_free_for_all'>
+        <parameter type-id='4c9f335b' name='pcm' filepath='sound/core/pcm_memory.c' line='112' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_pcm_lib_preallocate_pages' mangled-name='snd_pcm_lib_preallocate_pages' filepath='sound/core/pcm_memory.c' line='292' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_lib_preallocate_pages'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/core/pcm_memory.c' line='292' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='sound/core/pcm_memory.c' line='293' column='1'/>
+        <parameter type-id='fa0b179b' name='data' filepath='sound/core/pcm_memory.c' line='293' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='sound/core/pcm_memory.c' line='294' column='1'/>
+        <parameter type-id='b59d7dce' name='max' filepath='sound/core/pcm_memory.c' line='294' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_pcm_lib_preallocate_pages_for_all' mangled-name='snd_pcm_lib_preallocate_pages_for_all' filepath='sound/core/pcm_memory.c' line='311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_lib_preallocate_pages_for_all'>
+        <parameter type-id='4c9f335b' name='pcm' filepath='sound/core/pcm_memory.c' line='311' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='sound/core/pcm_memory.c' line='312' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='sound/core/pcm_memory.c' line='312' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='sound/core/pcm_memory.c' line='313' column='1'/>
+        <parameter type-id='b59d7dce' name='max' filepath='sound/core/pcm_memory.c' line='313' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_pcm_new' mangled-name='snd_pcm_new' filepath='sound/core/pcm.c' line='773' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_new'>
+        <parameter type-id='52704eb7' name='card' filepath='sound/core/pcm.c' line='773' column='1'/>
+        <parameter type-id='80f4b756' name='id' filepath='sound/core/pcm.c' line='773' column='1'/>
+        <parameter type-id='95e97e5e' name='device' filepath='sound/core/pcm.c' line='773' column='1'/>
+        <parameter type-id='95e97e5e' name='playback_count' filepath='sound/core/pcm.c' line='774' column='1'/>
+        <parameter type-id='95e97e5e' name='capture_count' filepath='sound/core/pcm.c' line='774' column='1'/>
+        <parameter type-id='0f9dfae3' name='rpcm' filepath='sound/core/pcm.c' line='774' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_period_elapsed' mangled-name='snd_pcm_period_elapsed' filepath='sound/core/pcm_lib.c' line='1840' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_period_elapsed'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/core/pcm_lib.c' line='1840' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_pcm_rate_bit_to_rate' mangled-name='snd_pcm_rate_bit_to_rate' filepath='sound/core/pcm_misc.c' line='538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_rate_bit_to_rate'>
+        <parameter type-id='f0981eeb' name='rate_bit' filepath='sound/core/pcm_misc.c' line='538' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='snd_pcm_rate_range_to_bits' mangled-name='snd_pcm_rate_range_to_bits' filepath='sound/core/pcm_misc.c' line='599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_rate_range_to_bits'>
+        <parameter type-id='f0981eeb' name='rate_min' filepath='sound/core/pcm_misc.c' line='599' column='1'/>
+        <parameter type-id='f0981eeb' name='rate_max' filepath='sound/core/pcm_misc.c' line='600' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='snd_pcm_rate_to_rate_bit' mangled-name='snd_pcm_rate_to_rate_bit' filepath='sound/core/pcm_misc.c' line='520' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_rate_to_rate_bit'>
+        <parameter type-id='f0981eeb' name='rate' filepath='sound/core/pcm_misc.c' line='520' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='snd_pcm_set_managed_buffer' mangled-name='snd_pcm_set_managed_buffer' filepath='sound/core/pcm_memory.c' line='348' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_set_managed_buffer'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/core/pcm_memory.c' line='348' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='sound/core/pcm_memory.c' line='348' column='1'/>
+        <parameter type-id='fa0b179b' name='data' filepath='sound/core/pcm_memory.c' line='349' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='sound/core/pcm_memory.c' line='349' column='1'/>
+        <parameter type-id='b59d7dce' name='max' filepath='sound/core/pcm_memory.c' line='349' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_set_managed_buffer_all' mangled-name='snd_pcm_set_managed_buffer_all' filepath='sound/core/pcm_memory.c' line='367' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_set_managed_buffer_all'>
+        <parameter type-id='4c9f335b' name='pcm' filepath='sound/core/pcm_memory.c' line='367' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='sound/core/pcm_memory.c' line='367' column='1'/>
+        <parameter type-id='fa0b179b' name='data' filepath='sound/core/pcm_memory.c' line='368' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='sound/core/pcm_memory.c' line='369' column='1'/>
+        <parameter type-id='b59d7dce' name='max' filepath='sound/core/pcm_memory.c' line='369' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_set_ops' mangled-name='snd_pcm_set_ops' filepath='sound/core/pcm_lib.c' line='481' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_set_ops'>
+        <parameter type-id='4c9f335b' name='pcm' filepath='sound/core/pcm_lib.c' line='481' column='1'/>
+        <parameter type-id='95e97e5e' name='direction' filepath='sound/core/pcm_lib.c' line='481' column='1'/>
+        <parameter type-id='f63b1a17' name='ops' filepath='sound/core/pcm_lib.c' line='482' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_pcm_set_sync' mangled-name='snd_pcm_set_sync' filepath='sound/core/pcm_lib.c' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_set_sync'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/core/pcm_lib.c' line='498' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='snd_pcm_std_chmaps' type-id='93f82aba' mangled-name='snd_pcm_std_chmaps' visibility='default' filepath='sound/core/pcm_lib.c' line='2307' column='1' elf-symbol-id='snd_pcm_std_chmaps'/>
+      <function-decl name='snd_pcm_stop' mangled-name='snd_pcm_stop' filepath='sound/core/pcm_native.c' line='1535' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_stop'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/core/pcm_native.c' line='1535' column='1'/>
+        <parameter type-id='33158de9' name='state' filepath='sound/core/pcm_native.c' line='1535' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_stop_xrun' mangled-name='snd_pcm_stop_xrun' filepath='sound/core/pcm_native.c' line='1565' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_stop_xrun'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/core/pcm_native.c' line='1565' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_pcm_stream_unlock_irqrestore' mangled-name='snd_pcm_stream_unlock_irqrestore' filepath='sound/core/pcm_native.c' line='195' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_stream_unlock_irqrestore'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/core/pcm_native.c' line='195' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='sound/core/pcm_native.c' line='196' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_pcm_suspend_all' mangled-name='snd_pcm_suspend_all' filepath='sound/core/pcm_native.c' line='1745' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_pcm_suspend_all'>
+        <parameter type-id='4c9f335b' name='pcm' filepath='sound/core/pcm_native.c' line='1745' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_sgbuf_get_addr' mangled-name='snd_sgbuf_get_addr' filepath='sound/core/memalloc.c' line='196' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_sgbuf_get_addr'>
+        <parameter type-id='a02b8cd2' name='dmab' filepath='sound/core/memalloc.c' line='196' column='1'/>
+        <parameter type-id='b59d7dce' name='offset' filepath='sound/core/memalloc.c' line='196' column='1'/>
+        <return type-id='cf29c9b3'/>
+      </function-decl>
+      <function-decl name='snd_sgbuf_get_chunk_size' mangled-name='snd_sgbuf_get_chunk_size' filepath='sound/core/memalloc.c' line='230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_sgbuf_get_chunk_size'>
+        <parameter type-id='a02b8cd2' name='dmab' filepath='sound/core/memalloc.c' line='230' column='1'/>
+        <parameter type-id='f0981eeb' name='ofs' filepath='sound/core/memalloc.c' line='231' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='sound/core/memalloc.c' line='231' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='snd_soc_add_card_controls' mangled-name='snd_soc_add_card_controls' filepath='sound/soc/soc-core.c' line='2285' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_add_card_controls'>
+        <parameter type-id='3059cd0b' name='soc_card' filepath='sound/soc/soc-core.c' line='2285' column='1'/>
+        <parameter type-id='31e035f7' name='controls' filepath='sound/soc/soc-core.c' line='2286' column='1'/>
+        <parameter type-id='95e97e5e' name='num_controls' filepath='sound/soc/soc-core.c' line='2286' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_add_component' mangled-name='snd_soc_add_component' filepath='sound/soc/soc-core.c' line='2618' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_add_component'>
+        <parameter type-id='807b7702' name='component' filepath='sound/soc/soc-core.c' line='2618' column='1'/>
+        <parameter type-id='763d26a2' name='dai_drv' filepath='sound/soc/soc-core.c' line='2619' column='1'/>
+        <parameter type-id='95e97e5e' name='num_dai' filepath='sound/soc/soc-core.c' line='2620' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_add_component_controls' mangled-name='snd_soc_add_component_controls' filepath='sound/soc/soc-core.c' line='2265' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_add_component_controls'>
+        <parameter type-id='807b7702' name='component' filepath='sound/soc/soc-core.c' line='2265' column='1'/>
+        <parameter type-id='31e035f7' name='controls' filepath='sound/soc/soc-core.c' line='2266' column='1'/>
+        <parameter type-id='f0981eeb' name='num_controls' filepath='sound/soc/soc-core.c' line='2266' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_add_dai_controls' mangled-name='snd_soc_add_dai_controls' filepath='sound/soc/soc-core.c' line='2305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_add_dai_controls'>
+        <parameter type-id='1c936db9' name='dai' filepath='sound/soc/soc-core.c' line='2305' column='1'/>
+        <parameter type-id='31e035f7' name='controls' filepath='sound/soc/soc-core.c' line='2306' column='1'/>
+        <parameter type-id='95e97e5e' name='num_controls' filepath='sound/soc/soc-core.c' line='2306' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_bytes_get' mangled-name='snd_soc_bytes_get' filepath='sound/soc/soc-ops.c' line='669' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_bytes_get'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='669' column='1'/>
+        <parameter type-id='144a5d4c' name='ucontrol' filepath='sound/soc/soc-ops.c' line='670' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_bytes_info' mangled-name='snd_soc_bytes_info' filepath='sound/soc/soc-ops.c' line='656' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_bytes_info'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='656' column='1'/>
+        <parameter type-id='0e291009' name='uinfo' filepath='sound/soc/soc-ops.c' line='657' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_bytes_info_ext' mangled-name='snd_soc_bytes_info_ext' filepath='sound/soc/soc-ops.c' line='789' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_bytes_info_ext'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='789' column='1'/>
+        <parameter type-id='0e291009' name='ucontrol' filepath='sound/soc/soc-ops.c' line='790' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_bytes_put' mangled-name='snd_soc_bytes_put' filepath='sound/soc/soc-ops.c' line='706' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_bytes_put'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='706' column='1'/>
+        <parameter type-id='144a5d4c' name='ucontrol' filepath='sound/soc/soc-ops.c' line='707' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_bytes_tlv_callback' mangled-name='snd_soc_bytes_tlv_callback' filepath='sound/soc/soc-ops.c' line='801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_bytes_tlv_callback'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='801' column='1'/>
+        <parameter type-id='95e97e5e' name='op_flag' filepath='sound/soc/soc-ops.c' line='801' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='sound/soc/soc-ops.c' line='802' column='1'/>
+        <parameter type-id='807869d3' name='tlv' filepath='sound/soc/soc-ops.c' line='802' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_card_get_kcontrol' mangled-name='snd_soc_card_get_kcontrol' filepath='sound/soc/soc-card.c' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_card_get_kcontrol'>
+        <parameter type-id='3059cd0b' name='soc_card' filepath='sound/soc/soc-card.c' line='29' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='sound/soc/soc-card.c' line='30' column='1'/>
+        <return type-id='7a5054b7'/>
+      </function-decl>
+      <function-decl name='snd_soc_card_jack_new' mangled-name='snd_soc_card_jack_new' filepath='sound/soc/soc-card.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_card_jack_new'>
+        <parameter type-id='3059cd0b' name='card' filepath='sound/soc/soc-card.c' line='60' column='1'/>
+        <parameter type-id='80f4b756' name='id' filepath='sound/soc/soc-card.c' line='60' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='sound/soc/soc-card.c' line='60' column='1'/>
+        <parameter type-id='12a060a4' name='jack' filepath='sound/soc/soc-card.c' line='61' column='1'/>
+        <parameter type-id='fcd78288' name='pins' filepath='sound/soc/soc-card.c' line='62' column='1'/>
+        <parameter type-id='f0981eeb' name='num_pins' filepath='sound/soc/soc-card.c' line='62' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_component_async_complete' mangled-name='snd_soc_component_async_complete' filepath='sound/soc/soc-component.c' line='894' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_component_async_complete'>
+        <parameter type-id='807b7702' name='component' filepath='sound/soc/soc-component.c' line='894' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_soc_component_disable_pin' mangled-name='snd_soc_component_disable_pin' filepath='sound/soc/soc-component.c' line='169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_component_disable_pin'>
+        <parameter type-id='807b7702' name='component' filepath='sound/soc/soc-component.c' line='169' column='1'/>
+        <parameter type-id='80f4b756' name='pin' filepath='sound/soc/soc-component.c' line='170' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_component_enable_pin' mangled-name='snd_soc_component_enable_pin' filepath='sound/soc/soc-component.c' line='151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_component_enable_pin'>
+        <parameter type-id='807b7702' name='component' filepath='sound/soc/soc-component.c' line='151' column='1'/>
+        <parameter type-id='80f4b756' name='pin' filepath='sound/soc/soc-component.c' line='152' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_component_exit_regmap' mangled-name='snd_soc_component_exit_regmap' filepath='sound/soc/soc-component.c' line='419' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_component_exit_regmap'>
+        <parameter type-id='807b7702' name='component' filepath='sound/soc/soc-component.c' line='419' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_soc_component_force_enable_pin' mangled-name='snd_soc_component_force_enable_pin' filepath='sound/soc/soc-component.c' line='214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_component_force_enable_pin'>
+        <parameter type-id='807b7702' name='component' filepath='sound/soc/soc-component.c' line='214' column='1'/>
+        <parameter type-id='80f4b756' name='pin' filepath='sound/soc/soc-component.c' line='215' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_component_get_pin_status' mangled-name='snd_soc_component_get_pin_status' filepath='sound/soc/soc-component.c' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_component_get_pin_status'>
+        <parameter type-id='807b7702' name='component' filepath='sound/soc/soc-component.c' line='205' column='1'/>
+        <parameter type-id='80f4b756' name='pin' filepath='sound/soc/soc-component.c' line='206' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_component_init_regmap' mangled-name='snd_soc_component_init_regmap' filepath='sound/soc/soc-component.c' line='400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_component_init_regmap'>
+        <parameter type-id='807b7702' name='component' filepath='sound/soc/soc-component.c' line='400' column='1'/>
+        <parameter type-id='29af9a71' name='regmap' filepath='sound/soc/soc-component.c' line='401' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_soc_component_initialize' mangled-name='snd_soc_component_initialize' filepath='sound/soc/soc-core.c' line='2595' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_component_initialize'>
+        <parameter type-id='807b7702' name='component' filepath='sound/soc/soc-core.c' line='2595' column='1'/>
+        <parameter type-id='f030c2b8' name='driver' filepath='sound/soc/soc-core.c' line='2596' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='sound/soc/soc-core.c' line='2597' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_component_read' mangled-name='snd_soc_component_read' filepath='sound/soc/soc-component.c' line='711' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_component_read'>
+        <parameter type-id='807b7702' name='component' filepath='sound/soc/soc-component.c' line='711' column='1'/>
+        <parameter type-id='f0981eeb' name='reg' filepath='sound/soc/soc-component.c' line='712' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='snd_soc_component_read_field' mangled-name='snd_soc_component_read_field' filepath='sound/soc/soc-component.c' line='854' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_component_read_field'>
+        <parameter type-id='807b7702' name='component' filepath='sound/soc/soc-component.c' line='854' column='1'/>
+        <parameter type-id='f0981eeb' name='reg' filepath='sound/soc/soc-component.c' line='855' column='1'/>
+        <parameter type-id='f0981eeb' name='mask' filepath='sound/soc/soc-component.c' line='855' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='snd_soc_component_set_jack' mangled-name='snd_soc_component_set_jack' filepath='sound/soc/soc-component.c' line='241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_component_set_jack'>
+        <parameter type-id='807b7702' name='component' filepath='sound/soc/soc-component.c' line='241' column='1'/>
+        <parameter type-id='12a060a4' name='jack' filepath='sound/soc/soc-component.c' line='242' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='sound/soc/soc-component.c' line='242' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_component_set_pll' mangled-name='snd_soc_component_set_pll' filepath='sound/soc/soc-component.c' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_component_set_pll'>
+        <parameter type-id='807b7702' name='component' filepath='sound/soc/soc-component.c' line='108' column='1'/>
+        <parameter type-id='95e97e5e' name='pll_id' filepath='sound/soc/soc-component.c' line='108' column='1'/>
+        <parameter type-id='95e97e5e' name='source' filepath='sound/soc/soc-component.c' line='109' column='1'/>
+        <parameter type-id='f0981eeb' name='freq_in' filepath='sound/soc/soc-component.c' line='109' column='1'/>
+        <parameter type-id='f0981eeb' name='freq_out' filepath='sound/soc/soc-component.c' line='110' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_component_set_sysclk' mangled-name='snd_soc_component_set_sysclk' filepath='sound/soc/soc-component.c' line='84' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_component_set_sysclk'>
+        <parameter type-id='807b7702' name='component' filepath='sound/soc/soc-component.c' line='84' column='1'/>
+        <parameter type-id='95e97e5e' name='clk_id' filepath='sound/soc/soc-component.c' line='85' column='1'/>
+        <parameter type-id='95e97e5e' name='source' filepath='sound/soc/soc-component.c' line='85' column='1'/>
+        <parameter type-id='f0981eeb' name='freq' filepath='sound/soc/soc-component.c' line='85' column='1'/>
+        <parameter type-id='95e97e5e' name='dir' filepath='sound/soc/soc-component.c' line='86' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_component_update_bits' mangled-name='snd_soc_component_update_bits' filepath='sound/soc/soc-component.c' line='791' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_component_update_bits'>
+        <parameter type-id='807b7702' name='component' filepath='sound/soc/soc-component.c' line='791' column='1'/>
+        <parameter type-id='f0981eeb' name='reg' filepath='sound/soc/soc-component.c' line='792' column='1'/>
+        <parameter type-id='f0981eeb' name='mask' filepath='sound/soc/soc-component.c' line='792' column='1'/>
+        <parameter type-id='f0981eeb' name='val' filepath='sound/soc/soc-component.c' line='792' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_component_update_bits_async' mangled-name='snd_soc_component_update_bits_async' filepath='sound/soc/soc-component.c' line='827' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_component_update_bits_async'>
+        <parameter type-id='807b7702' name='component' filepath='sound/soc/soc-component.c' line='827' column='1'/>
+        <parameter type-id='f0981eeb' name='reg' filepath='sound/soc/soc-component.c' line='828' column='1'/>
+        <parameter type-id='f0981eeb' name='mask' filepath='sound/soc/soc-component.c' line='828' column='1'/>
+        <parameter type-id='f0981eeb' name='val' filepath='sound/soc/soc-component.c' line='828' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_component_write' mangled-name='snd_soc_component_write' filepath='sound/soc/soc-component.c' line='746' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_component_write'>
+        <parameter type-id='807b7702' name='component' filepath='sound/soc/soc-component.c' line='746' column='1'/>
+        <parameter type-id='f0981eeb' name='reg' filepath='sound/soc/soc-component.c' line='747' column='1'/>
+        <parameter type-id='f0981eeb' name='val' filepath='sound/soc/soc-component.c' line='747' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_component_write_field' mangled-name='snd_soc_component_write_field' filepath='sound/soc/soc-component.c' line='876' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_component_write_field'>
+        <parameter type-id='807b7702' name='component' filepath='sound/soc/soc-component.c' line='876' column='1'/>
+        <parameter type-id='f0981eeb' name='reg' filepath='sound/soc/soc-component.c' line='877' column='1'/>
+        <parameter type-id='f0981eeb' name='mask' filepath='sound/soc/soc-component.c' line='877' column='1'/>
+        <parameter type-id='f0981eeb' name='val' filepath='sound/soc/soc-component.c' line='878' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dai_active' mangled-name='snd_soc_dai_active' filepath='sound/soc/soc-dai.c' line='539' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dai_active'>
+        <parameter type-id='1c936db9' name='dai' filepath='sound/soc/soc-dai.c' line='539' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dai_get_channel_map' mangled-name='snd_soc_dai_get_channel_map' filepath='sound/soc/soc-dai.c' line='326' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dai_get_channel_map'>
+        <parameter type-id='1c936db9' name='dai' filepath='sound/soc/soc-dai.c' line='326' column='1'/>
+        <parameter type-id='807869d3' name='tx_num' filepath='sound/soc/soc-dai.c' line='327' column='1'/>
+        <parameter type-id='807869d3' name='tx_slot' filepath='sound/soc/soc-dai.c' line='327' column='1'/>
+        <parameter type-id='807869d3' name='rx_num' filepath='sound/soc/soc-dai.c' line='328' column='1'/>
+        <parameter type-id='807869d3' name='rx_slot' filepath='sound/soc/soc-dai.c' line='328' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dai_link_set_capabilities' mangled-name='snd_soc_dai_link_set_capabilities' filepath='sound/soc/soc-dai.c' line='493' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dai_link_set_capabilities'>
+        <parameter type-id='af5a73b0' name='dai_link' filepath='sound/soc/soc-dai.c' line='493' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_soc_dai_set_bclk_ratio' mangled-name='snd_soc_dai_set_bclk_ratio' filepath='sound/soc/soc-dai.c' line='125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dai_set_bclk_ratio'>
+        <parameter type-id='1c936db9' name='dai' filepath='sound/soc/soc-dai.c' line='125' column='1'/>
+        <parameter type-id='f0981eeb' name='ratio' filepath='sound/soc/soc-dai.c' line='125' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dai_set_channel_map' mangled-name='snd_soc_dai_set_channel_map' filepath='sound/soc/soc-dai.c' line='302' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dai_set_channel_map'>
+        <parameter type-id='1c936db9' name='dai' filepath='sound/soc/soc-dai.c' line='302' column='1'/>
+        <parameter type-id='f0981eeb' name='tx_num' filepath='sound/soc/soc-dai.c' line='303' column='1'/>
+        <parameter type-id='807869d3' name='tx_slot' filepath='sound/soc/soc-dai.c' line='303' column='1'/>
+        <parameter type-id='f0981eeb' name='rx_num' filepath='sound/soc/soc-dai.c' line='304' column='1'/>
+        <parameter type-id='807869d3' name='rx_slot' filepath='sound/soc/soc-dai.c' line='304' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dai_set_clkdiv' mangled-name='snd_soc_dai_set_clkdiv' filepath='sound/soc/soc-dai.c' line='78' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dai_set_clkdiv'>
+        <parameter type-id='1c936db9' name='dai' filepath='sound/soc/soc-dai.c' line='78' column='1'/>
+        <parameter type-id='95e97e5e' name='div_id' filepath='sound/soc/soc-dai.c' line='79' column='1'/>
+        <parameter type-id='95e97e5e' name='div' filepath='sound/soc/soc-dai.c' line='79' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dai_set_fmt' mangled-name='snd_soc_dai_set_fmt' filepath='sound/soc/soc-dai.c' line='207' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dai_set_fmt'>
+        <parameter type-id='1c936db9' name='dai' filepath='sound/soc/soc-dai.c' line='207' column='1'/>
+        <parameter type-id='f0981eeb' name='fmt' filepath='sound/soc/soc-dai.c' line='207' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dai_set_pll' mangled-name='snd_soc_dai_set_pll' filepath='sound/soc/soc-dai.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dai_set_pll'>
+        <parameter type-id='1c936db9' name='dai' filepath='sound/soc/soc-dai.c' line='101' column='1'/>
+        <parameter type-id='95e97e5e' name='pll_id' filepath='sound/soc/soc-dai.c' line='101' column='1'/>
+        <parameter type-id='95e97e5e' name='source' filepath='sound/soc/soc-dai.c' line='101' column='1'/>
+        <parameter type-id='f0981eeb' name='freq_in' filepath='sound/soc/soc-dai.c' line='102' column='1'/>
+        <parameter type-id='f0981eeb' name='freq_out' filepath='sound/soc/soc-dai.c' line='102' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dai_set_sysclk' mangled-name='snd_soc_dai_set_sysclk' filepath='sound/soc/soc-dai.c' line='52' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dai_set_sysclk'>
+        <parameter type-id='1c936db9' name='dai' filepath='sound/soc/soc-dai.c' line='52' column='1'/>
+        <parameter type-id='95e97e5e' name='clk_id' filepath='sound/soc/soc-dai.c' line='52' column='1'/>
+        <parameter type-id='f0981eeb' name='freq' filepath='sound/soc/soc-dai.c' line='53' column='1'/>
+        <parameter type-id='95e97e5e' name='dir' filepath='sound/soc/soc-dai.c' line='53' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dai_set_tdm_slot' mangled-name='snd_soc_dai_set_tdm_slot' filepath='sound/soc/soc-dai.c' line='266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dai_set_tdm_slot'>
+        <parameter type-id='1c936db9' name='dai' filepath='sound/soc/soc-dai.c' line='266' column='1'/>
+        <parameter type-id='f0981eeb' name='tx_mask' filepath='sound/soc/soc-dai.c' line='267' column='1'/>
+        <parameter type-id='f0981eeb' name='rx_mask' filepath='sound/soc/soc-dai.c' line='267' column='1'/>
+        <parameter type-id='95e97e5e' name='slots' filepath='sound/soc/soc-dai.c' line='268' column='1'/>
+        <parameter type-id='95e97e5e' name='slot_width' filepath='sound/soc/soc-dai.c' line='268' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dai_set_tristate' mangled-name='snd_soc_dai_set_tristate' filepath='sound/soc/soc-dai.c' line='347' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dai_set_tristate'>
+        <parameter type-id='1c936db9' name='dai' filepath='sound/soc/soc-dai.c' line='347' column='1'/>
+        <parameter type-id='95e97e5e' name='tristate' filepath='sound/soc/soc-dai.c' line='347' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_daifmt_clock_provider_from_bitmap' mangled-name='snd_soc_daifmt_clock_provider_from_bitmap' filepath='sound/soc/soc-core.c' line='3030' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_daifmt_clock_provider_from_bitmap'>
+        <parameter type-id='f0981eeb' name='bit_frame' filepath='sound/soc/soc-core.c' line='3030' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='snd_soc_daifmt_parse_clock_provider_raw' mangled-name='snd_soc_daifmt_parse_clock_provider_raw' filepath='sound/soc/soc-core.c' line='3140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_daifmt_parse_clock_provider_raw'>
+        <parameter type-id='9a537bbe' name='np' filepath='sound/soc/soc-core.c' line='3140' column='1'/>
+        <parameter type-id='80f4b756' name='prefix' filepath='sound/soc/soc-core.c' line='3141' column='1'/>
+        <parameter type-id='856b89fc' name='bitclkmaster' filepath='sound/soc/soc-core.c' line='3142' column='1'/>
+        <parameter type-id='856b89fc' name='framemaster' filepath='sound/soc/soc-core.c' line='3143' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='snd_soc_daifmt_parse_format' mangled-name='snd_soc_daifmt_parse_format' filepath='sound/soc/soc-core.c' line='3053' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_daifmt_parse_format'>
+        <parameter type-id='9a537bbe' name='np' filepath='sound/soc/soc-core.c' line='3053' column='1'/>
+        <parameter type-id='80f4b756' name='prefix' filepath='sound/soc/soc-core.c' line='3054' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_add_routes' mangled-name='snd_soc_dapm_add_routes' filepath='sound/soc/soc-dapm.c' line='3102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_add_routes'>
+        <parameter type-id='70d004a5' name='dapm' filepath='sound/soc/soc-dapm.c' line='3102' column='1'/>
+        <parameter type-id='8f3d28b8' name='route' filepath='sound/soc/soc-dapm.c' line='3103' column='1'/>
+        <parameter type-id='95e97e5e' name='num' filepath='sound/soc/soc-dapm.c' line='3103' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_disable_pin' mangled-name='snd_soc_dapm_disable_pin' filepath='sound/soc/soc-dapm.c' line='4651' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_disable_pin'>
+        <parameter type-id='70d004a5' name='dapm' filepath='sound/soc/soc-dapm.c' line='4651' column='1'/>
+        <parameter type-id='80f4b756' name='pin' filepath='sound/soc/soc-dapm.c' line='4652' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_disable_pin_unlocked' mangled-name='snd_soc_dapm_disable_pin_unlocked' filepath='sound/soc/soc-dapm.c' line='4634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_disable_pin_unlocked'>
+        <parameter type-id='70d004a5' name='dapm' filepath='sound/soc/soc-dapm.c' line='4634' column='1'/>
+        <parameter type-id='80f4b756' name='pin' filepath='sound/soc/soc-dapm.c' line='4635' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_enable_pin' mangled-name='snd_soc_dapm_enable_pin' filepath='sound/soc/soc-dapm.c' line='4540' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_enable_pin'>
+        <parameter type-id='70d004a5' name='dapm' filepath='sound/soc/soc-dapm.c' line='4540' column='1'/>
+        <parameter type-id='80f4b756' name='pin' filepath='sound/soc/soc-dapm.c' line='4540' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_force_bias_level' mangled-name='snd_soc_dapm_force_bias_level' filepath='sound/soc/soc-dapm.c' line='699' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_force_bias_level'>
+        <parameter type-id='70d004a5' name='dapm' filepath='sound/soc/soc-dapm.c' line='699' column='1'/>
+        <parameter type-id='f078c744' name='level' filepath='sound/soc/soc-dapm.c' line='700' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_force_enable_pin' mangled-name='snd_soc_dapm_force_enable_pin' filepath='sound/soc/soc-dapm.c' line='4607' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_force_enable_pin'>
+        <parameter type-id='70d004a5' name='dapm' filepath='sound/soc/soc-dapm.c' line='4607' column='1'/>
+        <parameter type-id='80f4b756' name='pin' filepath='sound/soc/soc-dapm.c' line='4608' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_force_enable_pin_unlocked' mangled-name='snd_soc_dapm_force_enable_pin_unlocked' filepath='sound/soc/soc-dapm.c' line='4568' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_force_enable_pin_unlocked'>
+        <parameter type-id='70d004a5' name='dapm' filepath='sound/soc/soc-dapm.c' line='4568' column='1'/>
+        <parameter type-id='80f4b756' name='pin' filepath='sound/soc/soc-dapm.c' line='4569' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_get_enum_double' mangled-name='snd_soc_dapm_get_enum_double' filepath='sound/soc/soc-dapm.c' line='3461' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_get_enum_double'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-dapm.c' line='3461' column='1'/>
+        <parameter type-id='144a5d4c' name='ucontrol' filepath='sound/soc/soc-dapm.c' line='3462' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_get_pin_status' mangled-name='snd_soc_dapm_get_pin_status' filepath='sound/soc/soc-dapm.c' line='4726' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_get_pin_status'>
+        <parameter type-id='70d004a5' name='dapm' filepath='sound/soc/soc-dapm.c' line='4726' column='1'/>
+        <parameter type-id='80f4b756' name='pin' filepath='sound/soc/soc-dapm.c' line='4727' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_get_pin_switch' mangled-name='snd_soc_dapm_get_pin_switch' filepath='sound/soc/soc-dapm.c' line='3578' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_get_pin_switch'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-dapm.c' line='3578' column='1'/>
+        <parameter type-id='144a5d4c' name='ucontrol' filepath='sound/soc/soc-dapm.c' line='3579' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_get_volsw' mangled-name='snd_soc_dapm_get_volsw' filepath='sound/soc/soc-dapm.c' line='3311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_get_volsw'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-dapm.c' line='3311' column='1'/>
+        <parameter type-id='144a5d4c' name='ucontrol' filepath='sound/soc/soc-dapm.c' line='3312' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_ignore_suspend' mangled-name='snd_soc_dapm_ignore_suspend' filepath='sound/soc/soc-dapm.c' line='4749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_ignore_suspend'>
+        <parameter type-id='70d004a5' name='dapm' filepath='sound/soc/soc-dapm.c' line='4749' column='1'/>
+        <parameter type-id='80f4b756' name='pin' filepath='sound/soc/soc-dapm.c' line='4750' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_info_pin_switch' mangled-name='snd_soc_dapm_info_pin_switch' filepath='sound/soc/soc-dapm.c' line='3560' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_info_pin_switch'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-dapm.c' line='3560' column='1'/>
+        <parameter type-id='0e291009' name='uinfo' filepath='sound/soc/soc-dapm.c' line='3561' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_kcontrol_dapm' mangled-name='snd_soc_dapm_kcontrol_dapm' filepath='sound/soc/soc-dapm.c' line='596' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_kcontrol_dapm'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-dapm.c' line='597' column='1'/>
+        <return type-id='70d004a5'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_kcontrol_widget' mangled-name='snd_soc_dapm_kcontrol_widget' filepath='sound/soc/soc-dapm.c' line='581' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_kcontrol_widget'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-dapm.c' line='582' column='1'/>
+        <return type-id='810606ec'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_mixer_update_power' mangled-name='snd_soc_dapm_mixer_update_power' filepath='sound/soc/soc-dapm.c' line='2368' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_mixer_update_power'>
+        <parameter type-id='70d004a5' name='dapm' filepath='sound/soc/soc-dapm.c' line='2368' column='1'/>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-dapm.c' line='2369' column='1'/>
+        <parameter type-id='95e97e5e' name='connect' filepath='sound/soc/soc-dapm.c' line='2369' column='1'/>
+        <parameter type-id='33146de3' name='update' filepath='sound/soc/soc-dapm.c' line='2370' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_mux_update_power' mangled-name='snd_soc_dapm_mux_update_power' filepath='sound/soc/soc-dapm.c' line='2303' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_mux_update_power'>
+        <parameter type-id='70d004a5' name='dapm' filepath='sound/soc/soc-dapm.c' line='2303' column='1'/>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-dapm.c' line='2304' column='1'/>
+        <parameter type-id='95e97e5e' name='mux' filepath='sound/soc/soc-dapm.c' line='2304' column='1'/>
+        <parameter type-id='acf1578a' name='e' filepath='sound/soc/soc-dapm.c' line='2304' column='1'/>
+        <parameter type-id='33146de3' name='update' filepath='sound/soc/soc-dapm.c' line='2305' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_new_control' mangled-name='snd_soc_dapm_new_control' filepath='sound/soc/soc-dapm.c' line='3781' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_new_control'>
+        <parameter type-id='70d004a5' name='dapm' filepath='sound/soc/soc-dapm.c' line='3781' column='1'/>
+        <parameter type-id='dae78f89' name='widget' filepath='sound/soc/soc-dapm.c' line='3782' column='1'/>
+        <return type-id='810606ec'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_new_controls' mangled-name='snd_soc_dapm_new_controls' filepath='sound/soc/soc-dapm.c' line='3804' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_new_controls'>
+        <parameter type-id='70d004a5' name='dapm' filepath='sound/soc/soc-dapm.c' line='3804' column='1'/>
+        <parameter type-id='dae78f89' name='widget' filepath='sound/soc/soc-dapm.c' line='3805' column='1'/>
+        <parameter type-id='95e97e5e' name='num' filepath='sound/soc/soc-dapm.c' line='3806' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_new_widgets' mangled-name='snd_soc_dapm_new_widgets' filepath='sound/soc/soc-dapm.c' line='3237' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_new_widgets'>
+        <parameter type-id='3059cd0b' name='card' filepath='sound/soc/soc-dapm.c' line='3237' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_put_enum_double' mangled-name='snd_soc_dapm_put_enum_double' filepath='sound/soc/soc-dapm.c' line='3498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_put_enum_double'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-dapm.c' line='3498' column='1'/>
+        <parameter type-id='144a5d4c' name='ucontrol' filepath='sound/soc/soc-dapm.c' line='3499' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_put_pin_switch' mangled-name='snd_soc_dapm_put_pin_switch' filepath='sound/soc/soc-dapm.c' line='3601' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_put_pin_switch'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-dapm.c' line='3601' column='1'/>
+        <parameter type-id='144a5d4c' name='ucontrol' filepath='sound/soc/soc-dapm.c' line='3602' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_put_volsw' mangled-name='snd_soc_dapm_put_volsw' filepath='sound/soc/soc-dapm.c' line='3370' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_put_volsw'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-dapm.c' line='3370' column='1'/>
+        <parameter type-id='144a5d4c' name='ucontrol' filepath='sound/soc/soc-dapm.c' line='3371' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_sync' mangled-name='snd_soc_dapm_sync' filepath='sound/soc/soc-dapm.c' line='2640' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_sync'>
+        <parameter type-id='70d004a5' name='dapm' filepath='sound/soc/soc-dapm.c' line='2640' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_sync_unlocked' mangled-name='snd_soc_dapm_sync_unlocked' filepath='sound/soc/soc-dapm.c' line='2618' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_sync_unlocked'>
+        <parameter type-id='70d004a5' name='dapm' filepath='sound/soc/soc-dapm.c' line='2618' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dapm_weak_routes' mangled-name='snd_soc_dapm_weak_routes' filepath='sound/soc/soc-dapm.c' line='3210' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dapm_weak_routes'>
+        <parameter type-id='70d004a5' name='dapm' filepath='sound/soc/soc-dapm.c' line='3210' column='1'/>
+        <parameter type-id='8f3d28b8' name='route' filepath='sound/soc/soc-dapm.c' line='3211' column='1'/>
+        <parameter type-id='95e97e5e' name='num' filepath='sound/soc/soc-dapm.c' line='3211' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_dpcm_get_substream' mangled-name='snd_soc_dpcm_get_substream' filepath='sound/soc/soc-pcm.c' line='2984' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_dpcm_get_substream'>
+        <parameter type-id='95316552' name='be' filepath='sound/soc/soc-pcm.c' line='2984' column='1'/>
+        <parameter type-id='95e97e5e' name='stream' filepath='sound/soc/soc-pcm.c' line='2984' column='1'/>
+        <return type-id='06b2cd14'/>
+      </function-decl>
+      <function-decl name='snd_soc_find_dai' mangled-name='snd_soc_find_dai' filepath='sound/soc/soc-core.c' line='811' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_find_dai'>
+        <parameter type-id='18cfbc8f' name='dlc' filepath='sound/soc/soc-core.c' line='812' column='1'/>
+        <return type-id='1c936db9'/>
+      </function-decl>
+      <function-decl name='snd_soc_find_dai_with_mutex' mangled-name='snd_soc_find_dai_with_mutex' filepath='sound/soc/soc-core.c' line='837' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_find_dai_with_mutex'>
+        <parameter type-id='18cfbc8f' name='dlc' filepath='sound/soc/soc-core.c' line='838' column='1'/>
+        <return type-id='1c936db9'/>
+      </function-decl>
+      <function-decl name='snd_soc_get_dai_name' mangled-name='snd_soc_get_dai_name' filepath='sound/soc/soc-core.c' line='3234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_get_dai_name'>
+        <parameter type-id='af02a266' name='args' filepath='sound/soc/soc-core.c' line='3234' column='1'/>
+        <parameter type-id='7d3cd834' name='dai_name' filepath='sound/soc/soc-core.c' line='3235' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_get_enum_double' mangled-name='snd_soc_get_enum_double' filepath='sound/soc/soc-ops.c' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_get_enum_double'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='59' column='1'/>
+        <parameter type-id='144a5d4c' name='ucontrol' filepath='sound/soc/soc-ops.c' line='60' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_get_pcm_runtime' mangled-name='snd_soc_get_pcm_runtime' filepath='sound/soc/soc-core.c' line='346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_get_pcm_runtime'>
+        <parameter type-id='3059cd0b' name='card' filepath='sound/soc/soc-core.c' line='346' column='1'/>
+        <parameter type-id='af5a73b0' name='dai_link' filepath='sound/soc/soc-core.c' line='347' column='1'/>
+        <return type-id='95316552'/>
+      </function-decl>
+      <function-decl name='snd_soc_get_volsw' mangled-name='snd_soc_get_volsw' filepath='sound/soc/soc-ops.c' line='236' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_get_volsw'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='236' column='1'/>
+        <parameter type-id='144a5d4c' name='ucontrol' filepath='sound/soc/soc-ops.c' line='237' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_get_volsw_range' mangled-name='snd_soc_get_volsw_range' filepath='sound/soc/soc-ops.c' line='586' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_get_volsw_range'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='586' column='1'/>
+        <parameter type-id='144a5d4c' name='ucontrol' filepath='sound/soc/soc-ops.c' line='587' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_get_volsw_sx' mangled-name='snd_soc_get_volsw_sx' filepath='sound/soc/soc-ops.c' line='378' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_get_volsw_sx'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='378' column='1'/>
+        <parameter type-id='144a5d4c' name='ucontrol' filepath='sound/soc/soc-ops.c' line='379' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_get_xr_sx' mangled-name='snd_soc_get_xr_sx' filepath='sound/soc/soc-ops.c' line='860' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_get_xr_sx'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='860' column='1'/>
+        <parameter type-id='144a5d4c' name='ucontrol' filepath='sound/soc/soc-ops.c' line='861' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_info_enum_double' mangled-name='snd_soc_info_enum_double' filepath='sound/soc/soc-ops.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_info_enum_double'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='40' column='1'/>
+        <parameter type-id='0e291009' name='uinfo' filepath='sound/soc/soc-ops.c' line='41' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_info_multi_ext' mangled-name='snd_soc_info_multi_ext' filepath='sound/soc/soc-core.c' line='3211' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_info_multi_ext'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-core.c' line='3211' column='1'/>
+        <parameter type-id='0e291009' name='uinfo' filepath='sound/soc/soc-core.c' line='3212' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_info_volsw' mangled-name='snd_soc_info_volsw' filepath='sound/soc/soc-ops.c' line='175' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_info_volsw'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='175' column='1'/>
+        <parameter type-id='0e291009' name='uinfo' filepath='sound/soc/soc-ops.c' line='176' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_info_volsw_range' mangled-name='snd_soc_info_volsw_range' filepath='sound/soc/soc-ops.c' line='483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_info_volsw_range'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='483' column='1'/>
+        <parameter type-id='0e291009' name='uinfo' filepath='sound/soc/soc-ops.c' line='484' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_info_volsw_sx' mangled-name='snd_soc_info_volsw_sx' filepath='sound/soc/soc-ops.c' line='210' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_info_volsw_sx'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='210' column='1'/>
+        <parameter type-id='0e291009' name='uinfo' filepath='sound/soc/soc-ops.c' line='211' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_info_xr_sx' mangled-name='snd_soc_info_xr_sx' filepath='sound/soc/soc-ops.c' line='833' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_info_xr_sx'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='833' column='1'/>
+        <parameter type-id='0e291009' name='uinfo' filepath='sound/soc/soc-ops.c' line='834' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_jack_add_gpios' mangled-name='snd_soc_jack_add_gpios' filepath='sound/soc/soc-jack.c' line='311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_jack_add_gpios'>
+        <parameter type-id='12a060a4' name='jack' filepath='sound/soc/soc-jack.c' line='311' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='sound/soc/soc-jack.c' line='311' column='1'/>
+        <parameter type-id='3c269e0e' name='gpios' filepath='sound/soc/soc-jack.c' line='312' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_jack_free_gpios' mangled-name='snd_soc_jack_free_gpios' filepath='sound/soc/soc-jack.c' line='446' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_jack_free_gpios'>
+        <parameter type-id='12a060a4' name='jack' filepath='sound/soc/soc-jack.c' line='446' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='sound/soc/soc-jack.c' line='446' column='1'/>
+        <parameter type-id='3c269e0e' name='gpios' filepath='sound/soc/soc-jack.c' line='447' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_soc_jack_notifier_register' mangled-name='snd_soc_jack_notifier_register' filepath='sound/soc/soc-jack.c' line='181' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_jack_notifier_register'>
+        <parameter type-id='12a060a4' name='jack' filepath='sound/soc/soc-jack.c' line='181' column='1'/>
+        <parameter type-id='d504f73d' name='nb' filepath='sound/soc/soc-jack.c' line='182' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_soc_jack_report' mangled-name='snd_soc_jack_report' filepath='sound/soc/soc-jack.c' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_jack_report'>
+        <parameter type-id='12a060a4' name='jack' filepath='sound/soc/soc-jack.c' line='34' column='1'/>
+        <parameter type-id='95e97e5e' name='status' filepath='sound/soc/soc-jack.c' line='34' column='1'/>
+        <parameter type-id='95e97e5e' name='mask' filepath='sound/soc/soc-jack.c' line='34' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_soc_limit_volume' mangled-name='snd_soc_limit_volume' filepath='sound/soc/soc-ops.c' line='634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_limit_volume'>
+        <parameter type-id='3059cd0b' name='card' filepath='sound/soc/soc-ops.c' line='634' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='sound/soc/soc-ops.c' line='635' column='1'/>
+        <parameter type-id='95e97e5e' name='max' filepath='sound/soc/soc-ops.c' line='635' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_lookup_component' mangled-name='snd_soc_lookup_component' filepath='sound/soc/soc-core.c' line='332' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_lookup_component'>
+        <parameter type-id='fa0b179b' name='dev' filepath='sound/soc/soc-core.c' line='332' column='1'/>
+        <parameter type-id='80f4b756' name='driver_name' filepath='sound/soc/soc-core.c' line='333' column='1'/>
+        <return type-id='807b7702'/>
+      </function-decl>
+      <function-decl name='snd_soc_lookup_component_nolocked' mangled-name='snd_soc_lookup_component_nolocked' filepath='sound/soc/soc-core.c' line='312' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_lookup_component_nolocked'>
+        <parameter type-id='fa0b179b' name='dev' filepath='sound/soc/soc-core.c' line='312' column='1'/>
+        <parameter type-id='80f4b756' name='driver_name' filepath='sound/soc/soc-core.c' line='312' column='1'/>
+        <return type-id='807b7702'/>
+      </function-decl>
+      <function-decl name='snd_soc_new_compress' mangled-name='snd_soc_new_compress' filepath='sound/soc/soc-compress.c' line='514' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_new_compress'>
+        <parameter type-id='95316552' name='rtd' filepath='sound/soc/soc-compress.c' line='514' column='1'/>
+        <parameter type-id='95e97e5e' name='num' filepath='sound/soc/soc-compress.c' line='514' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_of_get_dai_link_codecs' mangled-name='snd_soc_of_get_dai_link_codecs' filepath='sound/soc/soc-core.c' line='3351' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_of_get_dai_link_codecs'>
+        <parameter type-id='fa0b179b' name='dev' filepath='sound/soc/soc-core.c' line='3351' column='1'/>
+        <parameter type-id='9a537bbe' name='of_node' filepath='sound/soc/soc-core.c' line='3352' column='1'/>
+        <parameter type-id='af5a73b0' name='dai_link' filepath='sound/soc/soc-core.c' line='3353' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_of_get_dai_name' mangled-name='snd_soc_of_get_dai_name' filepath='sound/soc/soc-core.c' line='3298' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_of_get_dai_name'>
+        <parameter type-id='9a537bbe' name='of_node' filepath='sound/soc/soc-core.c' line='3298' column='1'/>
+        <parameter type-id='7d3cd834' name='dai_name' filepath='sound/soc/soc-core.c' line='3299' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_of_get_slot_mask' mangled-name='snd_soc_of_get_slot_mask' filepath='sound/soc/soc-core.c' line='2851' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_of_get_slot_mask'>
+        <parameter type-id='9a537bbe' name='np' filepath='sound/soc/soc-core.c' line='2851' column='1'/>
+        <parameter type-id='80f4b756' name='prop_name' filepath='sound/soc/soc-core.c' line='2852' column='1'/>
+        <parameter type-id='807869d3' name='mask' filepath='sound/soc/soc-core.c' line='2853' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_of_parse_audio_routing' mangled-name='snd_soc_of_parse_audio_routing' filepath='sound/soc/soc-core.c' line='2925' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_of_parse_audio_routing'>
+        <parameter type-id='3059cd0b' name='card' filepath='sound/soc/soc-core.c' line='2925' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='sound/soc/soc-core.c' line='2926' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_of_parse_audio_simple_widgets' mangled-name='snd_soc_of_parse_audio_simple_widgets' filepath='sound/soc/soc-core.c' line='2771' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_of_parse_audio_simple_widgets'>
+        <parameter type-id='3059cd0b' name='card' filepath='sound/soc/soc-core.c' line='2771' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='sound/soc/soc-core.c' line='2772' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_of_parse_aux_devs' mangled-name='snd_soc_of_parse_aux_devs' filepath='sound/soc/soc-core.c' line='2976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_of_parse_aux_devs'>
+        <parameter type-id='3059cd0b' name='card' filepath='sound/soc/soc-core.c' line='2976' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='sound/soc/soc-core.c' line='2976' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_of_parse_card_name' mangled-name='snd_soc_of_parse_card_name' filepath='sound/soc/soc-core.c' line='2734' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_of_parse_card_name'>
+        <parameter type-id='3059cd0b' name='card' filepath='sound/soc/soc-core.c' line='2734' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='sound/soc/soc-core.c' line='2735' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_of_parse_node_prefix' mangled-name='snd_soc_of_parse_node_prefix' filepath='sound/soc/soc-core.c' line='2906' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_of_parse_node_prefix'>
+        <parameter type-id='9a537bbe' name='np' filepath='sound/soc/soc-core.c' line='2906' column='1'/>
+        <parameter type-id='f10279fe' name='codec_conf' filepath='sound/soc/soc-core.c' line='2907' column='1'/>
+        <parameter type-id='9a537bbe' name='of_node' filepath='sound/soc/soc-core.c' line='2908' column='1'/>
+        <parameter type-id='80f4b756' name='propname' filepath='sound/soc/soc-core.c' line='2909' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_soc_of_parse_tdm_slot' mangled-name='snd_soc_of_parse_tdm_slot' filepath='sound/soc/soc-core.c' line='2870' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_of_parse_tdm_slot'>
+        <parameter type-id='9a537bbe' name='np' filepath='sound/soc/soc-core.c' line='2870' column='1'/>
+        <parameter type-id='807869d3' name='tx_mask' filepath='sound/soc/soc-core.c' line='2871' column='1'/>
+        <parameter type-id='807869d3' name='rx_mask' filepath='sound/soc/soc-core.c' line='2872' column='1'/>
+        <parameter type-id='807869d3' name='slots' filepath='sound/soc/soc-core.c' line='2873' column='1'/>
+        <parameter type-id='807869d3' name='slot_width' filepath='sound/soc/soc-core.c' line='2874' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_of_put_dai_link_codecs' mangled-name='snd_soc_of_put_dai_link_codecs' filepath='sound/soc/soc-core.c' line='3323' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_of_put_dai_link_codecs'>
+        <parameter type-id='af5a73b0' name='dai_link' filepath='sound/soc/soc-core.c' line='3323' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_soc_params_to_bclk' mangled-name='snd_soc_params_to_bclk' filepath='sound/soc/soc-utils.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_params_to_bclk'>
+        <parameter type-id='363a995e' name='params' filepath='sound/soc/soc-utils.c' line='42' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_params_to_frame_size' mangled-name='snd_soc_params_to_frame_size' filepath='sound/soc/soc-utils.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_params_to_frame_size'>
+        <parameter type-id='363a995e' name='params' filepath='sound/soc/soc-utils.c' line='23' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='snd_soc_pm_ops' type-id='86af1d10' mangled-name='snd_soc_pm_ops' visibility='default' filepath='sound/soc/soc-core.c' line='2174' column='1' elf-symbol-id='snd_soc_pm_ops'/>
+      <function-decl name='snd_soc_poweroff' mangled-name='snd_soc_poweroff' filepath='sound/soc/soc-core.c' line='2150' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_poweroff'>
+        <parameter type-id='fa0b179b' name='dev' filepath='sound/soc/soc-core.c' line='2150' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_put_enum_double' mangled-name='snd_soc_put_enum_double' filepath='sound/soc/soc-ops.c' line='90' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_put_enum_double'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='90' column='1'/>
+        <parameter type-id='144a5d4c' name='ucontrol' filepath='sound/soc/soc-ops.c' line='91' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_put_volsw' mangled-name='snd_soc_put_volsw' filepath='sound/soc/soc-ops.c' line='296' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_put_volsw'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='296' column='1'/>
+        <parameter type-id='144a5d4c' name='ucontrol' filepath='sound/soc/soc-ops.c' line='297' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_put_volsw_range' mangled-name='snd_soc_put_volsw_range' filepath='sound/soc/soc-ops.c' line='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_put_volsw_range'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='513' column='1'/>
+        <parameter type-id='144a5d4c' name='ucontrol' filepath='sound/soc/soc-ops.c' line='514' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_put_volsw_sx' mangled-name='snd_soc_put_volsw_sx' filepath='sound/soc/soc-ops.c' line='415' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_put_volsw_sx'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='415' column='1'/>
+        <parameter type-id='144a5d4c' name='ucontrol' filepath='sound/soc/soc-ops.c' line='416' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_put_xr_sx' mangled-name='snd_soc_put_xr_sx' filepath='sound/soc/soc-ops.c' line='905' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_put_xr_sx'>
+        <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/soc/soc-ops.c' line='905' column='1'/>
+        <parameter type-id='144a5d4c' name='ucontrol' filepath='sound/soc/soc-ops.c' line='906' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_register_card' mangled-name='snd_soc_register_card' filepath='sound/soc/soc-core.c' line='2321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_register_card'>
+        <parameter type-id='3059cd0b' name='card' filepath='sound/soc/soc-core.c' line='2321' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_register_component' mangled-name='snd_soc_register_component' filepath='sound/soc/soc-core.c' line='2665' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_register_component'>
+        <parameter type-id='fa0b179b' name='dev' filepath='sound/soc/soc-core.c' line='2665' column='1'/>
+        <parameter type-id='f030c2b8' name='component_driver' filepath='sound/soc/soc-core.c' line='2666' column='1'/>
+        <parameter type-id='763d26a2' name='dai_drv' filepath='sound/soc/soc-core.c' line='2667' column='1'/>
+        <parameter type-id='95e97e5e' name='num_dai' filepath='sound/soc/soc-core.c' line='2668' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_resume' mangled-name='snd_soc_resume' filepath='sound/soc/soc-core.c' line='712' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_resume'>
+        <parameter type-id='fa0b179b' name='dev' filepath='sound/soc/soc-core.c' line='712' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_rtdcom_lookup' mangled-name='snd_soc_rtdcom_lookup' filepath='sound/soc/soc-core.c' line='279' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_rtdcom_lookup'>
+        <parameter type-id='95316552' name='rtd' filepath='sound/soc/soc-core.c' line='279' column='1'/>
+        <parameter type-id='80f4b756' name='driver_name' filepath='sound/soc/soc-core.c' line='280' column='1'/>
+        <return type-id='807b7702'/>
+      </function-decl>
+      <function-decl name='snd_soc_runtime_calc_hw' mangled-name='snd_soc_runtime_calc_hw' filepath='sound/soc/soc-pcm.c' line='557' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_runtime_calc_hw'>
+        <parameter type-id='95316552' name='rtd' filepath='sound/soc/soc-pcm.c' line='557' column='1'/>
+        <parameter type-id='17e4a02a' name='hw' filepath='sound/soc/soc-pcm.c' line='558' column='1'/>
+        <parameter type-id='95e97e5e' name='stream' filepath='sound/soc/soc-pcm.c' line='558' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_runtime_set_dai_fmt' mangled-name='snd_soc_runtime_set_dai_fmt' filepath='sound/soc/soc-core.c' line='1233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_runtime_set_dai_fmt'>
+        <parameter type-id='95316552' name='rtd' filepath='sound/soc/soc-core.c' line='1233' column='1'/>
+        <parameter type-id='f0981eeb' name='dai_fmt' filepath='sound/soc/soc-core.c' line='1234' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_set_runtime_hwparams' mangled-name='snd_soc_set_runtime_hwparams' filepath='sound/soc/soc-pcm.c' line='327' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_set_runtime_hwparams'>
+        <parameter type-id='06b2cd14' name='substream' filepath='sound/soc/soc-pcm.c' line='327' column='1'/>
+        <parameter type-id='d661a615' name='hw' filepath='sound/soc/soc-pcm.c' line='328' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_tplg_component_load' mangled-name='snd_soc_tplg_component_load' filepath='sound/soc/soc-topology.c' line='2641' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_tplg_component_load'>
+        <parameter type-id='807b7702' name='comp' filepath='sound/soc/soc-topology.c' line='2641' column='1'/>
+        <parameter type-id='76e6e22f' name='ops' filepath='sound/soc/soc-topology.c' line='2642' column='1'/>
+        <parameter type-id='fce0537d' name='fw' filepath='sound/soc/soc-topology.c' line='2642' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_tplg_component_remove' mangled-name='snd_soc_tplg_component_remove' filepath='sound/soc/soc-topology.c' line='2680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_tplg_component_remove'>
+        <parameter type-id='807b7702' name='comp' filepath='sound/soc/soc-topology.c' line='2680' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_tplg_widget_bind_event' mangled-name='snd_soc_tplg_widget_bind_event' filepath='sound/soc/soc-topology.c' line='596' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_tplg_widget_bind_event'>
+        <parameter type-id='810606ec' name='w' filepath='sound/soc/soc-topology.c' line='596' column='1'/>
+        <parameter type-id='46c30e4c' name='events' filepath='sound/soc/soc-topology.c' line='597' column='1'/>
+        <parameter type-id='95e97e5e' name='num_events' filepath='sound/soc/soc-topology.c' line='598' column='1'/>
+        <parameter type-id='1dc6a898' name='event_type' filepath='sound/soc/soc-topology.c' line='598' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_unregister_card' mangled-name='snd_soc_unregister_card' filepath='sound/soc/soc-core.c' line='2354' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_unregister_card'>
+        <parameter type-id='3059cd0b' name='card' filepath='sound/soc/soc-core.c' line='2354' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_soc_unregister_component' mangled-name='snd_soc_unregister_component' filepath='sound/soc/soc-core.c' line='2718' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_unregister_component'>
+        <parameter type-id='fa0b179b' name='dev' filepath='sound/soc/soc-core.c' line='2718' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_timer_close' mangled-name='snd_timer_close' filepath='sound/core/timer.c' line='455' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_timer_close'>
+        <parameter type-id='0d08ac62' name='timeri' filepath='sound/core/timer.c' line='455' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_timer_instance_free' mangled-name='snd_timer_instance_free' filepath='sound/core/timer.c' line='160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_timer_instance_free'>
+        <parameter type-id='0d08ac62' name='timeri' filepath='sound/core/timer.c' line='160' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_timer_instance_new' mangled-name='snd_timer_instance_new' filepath='sound/core/timer.c' line='138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_timer_instance_new'>
+        <parameter type-id='80f4b756' name='owner' filepath='sound/core/timer.c' line='138' column='1'/>
+        <return type-id='0d08ac62'/>
+      </function-decl>
+      <function-decl name='snd_timer_interrupt' mangled-name='snd_timer_interrupt' filepath='sound/core/timer.c' line='840' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_timer_interrupt'>
+        <parameter type-id='6ee1a870' name='timer' filepath='sound/core/timer.c' line='840' column='1'/>
+        <parameter type-id='7359adad' name='ticks_left' filepath='sound/core/timer.c' line='840' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_timer_open' mangled-name='snd_timer_open' filepath='sound/core/timer.c' line='289' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_timer_open'>
+        <parameter type-id='0d08ac62' name='timeri' filepath='sound/core/timer.c' line='289' column='1'/>
+        <parameter type-id='25ea0608' name='tid' filepath='sound/core/timer.c' line='290' column='1'/>
+        <parameter type-id='f0981eeb' name='slave_id' filepath='sound/core/timer.c' line='291' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_timer_start' mangled-name='snd_timer_start' filepath='sound/core/timer.c' line='689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_timer_start'>
+        <parameter type-id='0d08ac62' name='timeri' filepath='sound/core/timer.c' line='689' column='1'/>
+        <parameter type-id='f0981eeb' name='ticks' filepath='sound/core/timer.c' line='689' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_timer_stop' mangled-name='snd_timer_stop' filepath='sound/core/timer.c' line='705' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_timer_stop'>
+        <parameter type-id='0d08ac62' name='timeri' filepath='sound/core/timer.c' line='705' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_usb_autoresume' mangled-name='snd_usb_autoresume' filepath='sound/usb/card.c' line='1008' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_usb_autoresume'>
+        <parameter type-id='d86551c2' name='chip' filepath='sound/usb/card.c' line='1008' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_usb_autosuspend' mangled-name='snd_usb_autosuspend' filepath='sound/usb/card.c' line='1031' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_usb_autosuspend'>
+        <parameter type-id='d86551c2' name='chip' filepath='sound/usb/card.c' line='1031' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_usb_endpoint_close' mangled-name='snd_usb_endpoint_close' filepath='sound/usb/endpoint.c' line='893' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_usb_endpoint_close'>
+        <parameter type-id='d86551c2' name='chip' filepath='sound/usb/endpoint.c' line='893' column='1'/>
+        <parameter type-id='d59ce2e7' name='ep' filepath='sound/usb/endpoint.c' line='894' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='snd_usb_endpoint_configure' mangled-name='snd_usb_endpoint_configure' filepath='sound/usb/endpoint.c' line='1341' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_usb_endpoint_configure'>
+        <parameter type-id='d86551c2' name='chip' filepath='sound/usb/endpoint.c' line='1341' column='1'/>
+        <parameter type-id='d59ce2e7' name='ep' filepath='sound/usb/endpoint.c' line='1342' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='snd_usb_endpoint_open' mangled-name='snd_usb_endpoint_open' filepath='sound/usb/endpoint.c' line='747' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_usb_endpoint_open'>
+        <parameter type-id='d86551c2' name='chip' filepath='sound/usb/endpoint.c' line='747' column='1'/>
+        <parameter type-id='836adb0d' name='fp' filepath='sound/usb/endpoint.c' line='748' column='1'/>
+        <parameter type-id='9b87bc37' name='params' filepath='sound/usb/endpoint.c' line='749' column='1'/>
+        <parameter type-id='b50a4934' name='is_sync_ep' filepath='sound/usb/endpoint.c' line='750' column='1'/>
+        <return type-id='d59ce2e7'/>
+      </function-decl>
+      <function-decl name='snprintf' mangled-name='snprintf' filepath='include/linux/kernel.h' line='204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snprintf'>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='80f4b756'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='soc_device_match' mangled-name='soc_device_match' filepath='drivers/base/soc.c' line='241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='soc_device_match'>
+        <parameter type-id='76f001ad' name='matches' filepath='drivers/base/soc.c' line='242' column='1'/>
+        <return type-id='76f001ad'/>
+      </function-decl>
+      <function-decl name='soc_device_register' mangled-name='soc_device_register' filepath='drivers/base/soc.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='soc_device_register'>
+        <parameter type-id='2dbbe856' name='soc_dev_attr' filepath='drivers/base/soc.c' line='114' column='1'/>
+        <return type-id='97eb1967'/>
+      </function-decl>
+      <function-decl name='soc_device_unregister' mangled-name='soc_device_unregister' filepath='drivers/base/soc.c' line='172' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='soc_device_unregister'>
+        <parameter type-id='97eb1967' name='soc_dev' filepath='drivers/base/soc.c' line='172' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sock_alloc_send_pskb' mangled-name='sock_alloc_send_pskb' filepath='net/core/sock.c' line='2473' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_alloc_send_pskb'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/core/sock.c' line='2473' column='1'/>
+        <parameter type-id='7359adad' name='header_len' filepath='net/core/sock.c' line='2473' column='1'/>
+        <parameter type-id='7359adad' name='data_len' filepath='net/core/sock.c' line='2474' column='1'/>
+        <parameter type-id='95e97e5e' name='noblock' filepath='net/core/sock.c' line='2474' column='1'/>
+        <parameter type-id='7292109c' name='errcode' filepath='net/core/sock.c' line='2475' column='1'/>
+        <parameter type-id='95e97e5e' name='max_page_order' filepath='net/core/sock.c' line='2475' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='sock_alloc_send_skb' mangled-name='sock_alloc_send_skb' filepath='net/core/sock.c' line='2517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_alloc_send_skb'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/core/sock.c' line='2517' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='net/core/sock.c' line='2517' column='1'/>
+        <parameter type-id='95e97e5e' name='noblock' filepath='net/core/sock.c' line='2518' column='1'/>
+        <parameter type-id='7292109c' name='errcode' filepath='net/core/sock.c' line='2518' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='sock_create_kern' mangled-name='sock_create_kern' filepath='net/socket.c' line='1534' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_create_kern'>
+        <parameter type-id='a2bff676' name='net' filepath='net/socket.c' line='1534' column='1'/>
+        <parameter type-id='95e97e5e' name='family' filepath='net/socket.c' line='1534' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='net/socket.c' line='1534' column='1'/>
+        <parameter type-id='95e97e5e' name='protocol' filepath='net/socket.c' line='1534' column='1'/>
+        <parameter type-id='1a7bb5c8' name='res' filepath='net/socket.c' line='1534' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sock_diag_destroy' mangled-name='sock_diag_destroy' filepath='net/core/sock_diag.c' line='297' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_diag_destroy'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/core/sock_diag.c' line='297' column='1'/>
+        <parameter type-id='95e97e5e' name='err' filepath='net/core/sock_diag.c' line='297' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sock_edemux' mangled-name='sock_edemux' filepath='net/ipv4/inet_hashtables.c' line='386' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_edemux'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv4/inet_hashtables.c' line='386' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sock_efree' mangled-name='sock_efree' filepath='net/core/sock.c' line='2304' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_efree'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/sock.c' line='2304' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sock_gettstamp' mangled-name='sock_gettstamp' filepath='net/core/sock.c' line='3294' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_gettstamp'>
+        <parameter type-id='13103032' name='sock' filepath='net/core/sock.c' line='3294' column='1'/>
+        <parameter type-id='eaa32e2f' name='userstamp' filepath='net/core/sock.c' line='3294' column='1'/>
+        <parameter type-id='b50a4934' name='timeval' filepath='net/core/sock.c' line='3295' column='1'/>
+        <parameter type-id='b50a4934' name='time32' filepath='net/core/sock.c' line='3295' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sock_i_uid' mangled-name='sock_i_uid' filepath='net/core/sock.c' line='2322' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_i_uid'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/core/sock.c' line='2322' column='1'/>
+        <return type-id='d80b72e6'/>
+      </function-decl>
+      <function-decl name='sock_init_data' mangled-name='sock_init_data' filepath='net/core/sock.c' line='3219' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_init_data'>
+        <parameter type-id='13103032' name='sock' filepath='net/core/sock.c' line='3219' column='1'/>
+        <parameter type-id='f772df6d' name='sk' filepath='net/core/sock.c' line='3219' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sock_no_accept' mangled-name='sock_no_accept' filepath='net/core/sock.c' line='2927' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_no_accept'>
+        <parameter type-id='13103032' name='sock' filepath='net/core/sock.c' line='2927' column='1'/>
+        <parameter type-id='13103032' name='newsock' filepath='net/core/sock.c' line='2927' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='net/core/sock.c' line='2927' column='1'/>
+        <parameter type-id='b50a4934' name='kern' filepath='net/core/sock.c' line='2928' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sock_no_bind' mangled-name='sock_no_bind' filepath='net/core/sock.c' line='2908' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_no_bind'>
+        <parameter type-id='13103032' name='sock' filepath='net/core/sock.c' line='2908' column='1'/>
+        <parameter type-id='5c0abad8' name='saddr' filepath='net/core/sock.c' line='2908' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='net/core/sock.c' line='2908' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sock_no_connect' mangled-name='sock_no_connect' filepath='net/core/sock.c' line='2914' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_no_connect'>
+        <parameter type-id='13103032' name='sock' filepath='net/core/sock.c' line='2914' column='1'/>
+        <parameter type-id='5c0abad8' name='saddr' filepath='net/core/sock.c' line='2914' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='net/core/sock.c' line='2915' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='net/core/sock.c' line='2915' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sock_no_getname' mangled-name='sock_no_getname' filepath='net/core/sock.c' line='2934' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_no_getname'>
+        <parameter type-id='13103032' name='sock' filepath='net/core/sock.c' line='2934' column='1'/>
+        <parameter type-id='5c0abad8' name='saddr' filepath='net/core/sock.c' line='2934' column='1'/>
+        <parameter type-id='95e97e5e' name='peer' filepath='net/core/sock.c' line='2935' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sock_no_listen' mangled-name='sock_no_listen' filepath='net/core/sock.c' line='2947' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_no_listen'>
+        <parameter type-id='13103032' name='sock' filepath='net/core/sock.c' line='2947' column='1'/>
+        <parameter type-id='95e97e5e' name='backlog' filepath='net/core/sock.c' line='2947' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sock_no_mmap' mangled-name='sock_no_mmap' filepath='net/core/sock.c' line='2978' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_no_mmap'>
+        <parameter type-id='77e79a4b' name='file' filepath='net/core/sock.c' line='2978' column='1'/>
+        <parameter type-id='13103032' name='sock' filepath='net/core/sock.c' line='2978' column='1'/>
+        <parameter type-id='2ae08426' name='vma' filepath='net/core/sock.c' line='2978' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sock_no_recvmsg' mangled-name='sock_no_recvmsg' filepath='net/core/sock.c' line='2971' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_no_recvmsg'>
+        <parameter type-id='13103032' name='sock' filepath='net/core/sock.c' line='2971' column='1'/>
+        <parameter type-id='6b9b777a' name='m' filepath='net/core/sock.c' line='2971' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='net/core/sock.c' line='2971' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='net/core/sock.c' line='2972' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sock_no_sendmsg' mangled-name='sock_no_sendmsg' filepath='net/core/sock.c' line='2959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_no_sendmsg'>
+        <parameter type-id='13103032' name='sock' filepath='net/core/sock.c' line='2959' column='1'/>
+        <parameter type-id='6b9b777a' name='m' filepath='net/core/sock.c' line='2959' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='net/core/sock.c' line='2959' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sock_no_sendpage' mangled-name='sock_no_sendpage' filepath='net/core/sock.c' line='3000' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_no_sendpage'>
+        <parameter type-id='13103032' name='sock' filepath='net/core/sock.c' line='3000' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='net/core/sock.c' line='3000' column='1'/>
+        <parameter type-id='95e97e5e' name='offset' filepath='net/core/sock.c' line='3000' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='net/core/sock.c' line='3000' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='net/core/sock.c' line='3000' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='sock_no_shutdown' mangled-name='sock_no_shutdown' filepath='net/core/sock.c' line='2953' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_no_shutdown'>
+        <parameter type-id='13103032' name='sock' filepath='net/core/sock.c' line='2953' column='1'/>
+        <parameter type-id='95e97e5e' name='how' filepath='net/core/sock.c' line='2953' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sock_no_socketpair' mangled-name='sock_no_socketpair' filepath='net/core/sock.c' line='2921' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_no_socketpair'>
+        <parameter type-id='13103032' name='sock1' filepath='net/core/sock.c' line='2921' column='1'/>
+        <parameter type-id='13103032' name='sock2' filepath='net/core/sock.c' line='2921' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sock_queue_rcv_skb' mangled-name='sock_queue_rcv_skb' filepath='net/core/sock.c' line='494' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_queue_rcv_skb'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/core/sock.c' line='494' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/sock.c' line='494' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sock_recvmsg' mangled-name='sock_recvmsg' filepath='net/socket.c' line='961' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_recvmsg'>
+        <parameter type-id='13103032' name='sock' filepath='net/socket.c' line='961' column='1'/>
+        <parameter type-id='6b9b777a' name='msg' filepath='net/socket.c' line='961' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='net/socket.c' line='961' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sock_register' mangled-name='sock_register' filepath='net/socket.c' line='3034' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_register'>
+        <parameter type-id='81a51edb' name='ops' filepath='net/socket.c' line='3034' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sock_release' mangled-name='sock_release' filepath='net/socket.c' line='675' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_release'>
+        <parameter type-id='13103032' name='sock' filepath='net/socket.c' line='675' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sock_setsockopt' mangled-name='sock_setsockopt' filepath='net/core/sock.c' line='959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_setsockopt'>
+        <parameter type-id='13103032' name='sock' filepath='net/core/sock.c' line='959' column='1'/>
+        <parameter type-id='95e97e5e' name='level' filepath='net/core/sock.c' line='959' column='1'/>
+        <parameter type-id='95e97e5e' name='optname' filepath='net/core/sock.c' line='959' column='1'/>
+        <parameter type-id='298d29fd' name='optval' filepath='net/core/sock.c' line='960' column='1'/>
+        <parameter type-id='f0981eeb' name='optlen' filepath='net/core/sock.c' line='960' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sock_unregister' mangled-name='sock_unregister' filepath='net/socket.c' line='3071' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_unregister'>
+        <parameter type-id='95e97e5e' name='family' filepath='net/socket.c' line='3071' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sock_wfree' mangled-name='sock_wfree' filepath='net/core/sock.c' line='2200' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_wfree'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/sock.c' line='2200' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sock_wmalloc' mangled-name='sock_wmalloc' filepath='net/core/sock.c' line='2347' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sock_wmalloc'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/core/sock.c' line='2347' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='net/core/sock.c' line='2347' column='1'/>
+        <parameter type-id='95e97e5e' name='force' filepath='net/core/sock.c' line='2347' column='1'/>
+        <parameter type-id='3eb7c31c' name='priority' filepath='net/core/sock.c' line='2348' column='1'/>
+        <return type-id='0fbf3cfd'/>
+      </function-decl>
+      <function-decl name='sockfd_lookup' mangled-name='sockfd_lookup' filepath='net/socket.c' line='525' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sockfd_lookup'>
+        <parameter type-id='95e97e5e' name='fd' filepath='net/socket.c' line='525' column='1'/>
+        <parameter type-id='7292109c' name='err' filepath='net/socket.c' line='525' column='1'/>
+        <return type-id='13103032'/>
+      </function-decl>
+      <var-decl name='softnet_data' type-id='035aa62d' mangled-name='softnet_data' visibility='default' filepath='net/core/dev.c' line='409' column='1' elf-symbol-id='softnet_data'/>
+      <function-decl name='sort' mangled-name='sort' filepath='lib/sort.c' line='266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sort'>
+        <parameter type-id='eaa32e2f' name='base' filepath='lib/sort.c' line='266' column='1'/>
+        <parameter type-id='b59d7dce' name='num' filepath='lib/sort.c' line='266' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='lib/sort.c' line='266' column='1'/>
+        <parameter type-id='a08bda3c' name='cmp_func' filepath='lib/sort.c' line='267' column='1'/>
+        <parameter type-id='a271c445' name='swap_func' filepath='lib/sort.c' line='268' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='spi_alloc_device' mangled-name='spi_alloc_device' filepath='drivers/spi/spi.c' line='539' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_alloc_device'>
+        <parameter type-id='f22e4524' name='ctlr' filepath='drivers/spi/spi.c' line='539' column='1'/>
+        <return type-id='e90f4666'/>
+      </function-decl>
+      <function-decl name='spi_async' mangled-name='spi_async' filepath='drivers/spi/spi.c' line='3832' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_async'>
+        <parameter type-id='e90f4666' name='spi' filepath='drivers/spi/spi.c' line='3832' column='1'/>
+        <parameter type-id='bb7889ed' name='message' filepath='drivers/spi/spi.c' line='3832' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spi_bus_lock' mangled-name='spi_bus_lock' filepath='drivers/spi/spi.c' line='4043' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_bus_lock'>
+        <parameter type-id='f22e4524' name='ctlr' filepath='drivers/spi/spi.c' line='4043' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='spi_bus_type' type-id='b31bfc8a' mangled-name='spi_bus_type' visibility='default' filepath='drivers/spi/spi.c' line='431' column='1' elf-symbol-id='spi_bus_type'/>
+      <function-decl name='spi_bus_unlock' mangled-name='spi_bus_unlock' filepath='drivers/spi/spi.c' line='4072' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_bus_unlock'>
+        <parameter type-id='f22e4524' name='ctlr' filepath='drivers/spi/spi.c' line='4072' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spi_busnum_to_master' mangled-name='spi_busnum_to_master' filepath='drivers/spi/spi.c' line='3106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_busnum_to_master'>
+        <parameter type-id='1dc6a898' name='bus_num' filepath='drivers/spi/spi.c' line='3106' column='1'/>
+        <return type-id='f22e4524'/>
+      </function-decl>
+      <function-decl name='spi_controller_resume' mangled-name='spi_controller_resume' filepath='drivers/spi/spi.c' line='3070' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_controller_resume'>
+        <parameter type-id='f22e4524' name='ctlr' filepath='drivers/spi/spi.c' line='3070' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spi_controller_suspend' mangled-name='spi_controller_suspend' filepath='drivers/spi/spi.c' line='3054' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_controller_suspend'>
+        <parameter type-id='f22e4524' name='ctlr' filepath='drivers/spi/spi.c' line='3054' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spi_delay_exec' mangled-name='spi_delay_exec' filepath='drivers/spi/spi.c' line='1292' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_delay_exec'>
+        <parameter type-id='652fafc9' name='_delay' filepath='drivers/spi/spi.c' line='1292' column='1'/>
+        <parameter type-id='7c11f655' name='xfer' filepath='drivers/spi/spi.c' line='1292' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spi_delay_to_ns' mangled-name='spi_delay_to_ns' filepath='drivers/spi/spi.c' line='1253' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_delay_to_ns'>
+        <parameter type-id='652fafc9' name='_delay' filepath='drivers/spi/spi.c' line='1253' column='1'/>
+        <parameter type-id='7c11f655' name='xfer' filepath='drivers/spi/spi.c' line='1253' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spi_finalize_current_message' mangled-name='spi_finalize_current_message' filepath='drivers/spi/spi.c' line='1810' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_finalize_current_message'>
+        <parameter type-id='f22e4524' name='ctlr' filepath='drivers/spi/spi.c' line='1810' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='spi_finalize_current_transfer' mangled-name='spi_finalize_current_transfer' filepath='drivers/spi/spi.c' line='1451' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_finalize_current_transfer'>
+        <parameter type-id='f22e4524' name='ctlr' filepath='drivers/spi/spi.c' line='1451' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='spi_get_device_id' mangled-name='spi_get_device_id' filepath='drivers/spi/spi.c' line='330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_get_device_id'>
+        <parameter type-id='06f4c6ad' name='sdev' filepath='drivers/spi/spi.c' line='330' column='1'/>
+        <return type-id='07695d8b'/>
+      </function-decl>
+      <function-decl name='spi_get_next_queued_message' mangled-name='spi_get_next_queued_message' filepath='drivers/spi/spi.c' line='1788' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_get_next_queued_message'>
+        <parameter type-id='f22e4524' name='ctlr' filepath='drivers/spi/spi.c' line='1788' column='1'/>
+        <return type-id='bb7889ed'/>
+      </function-decl>
+      <function-decl name='spi_mem_adjust_op_size' mangled-name='spi_mem_adjust_op_size' filepath='drivers/spi/spi-mem.c' line='442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_mem_adjust_op_size'>
+        <parameter type-id='33dc3b1b' name='mem' filepath='drivers/spi/spi-mem.c' line='442' column='1'/>
+        <parameter type-id='1cf47bfb' name='op' filepath='drivers/spi/spi-mem.c' line='442' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spi_mem_default_supports_op' mangled-name='spi_mem_default_supports_op' filepath='drivers/spi/spi-mem.c' line='173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_mem_default_supports_op'>
+        <parameter type-id='33dc3b1b' name='mem' filepath='drivers/spi/spi-mem.c' line='173' column='1'/>
+        <parameter type-id='10593a44' name='op' filepath='drivers/spi/spi-mem.c' line='174' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='spi_mem_dirmap_read' mangled-name='spi_mem_dirmap_read' filepath='drivers/spi/spi-mem.c' line='666' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_mem_dirmap_read'>
+        <parameter type-id='4f4f2d55' name='desc' filepath='drivers/spi/spi-mem.c' line='666' column='1'/>
+        <parameter type-id='91ce1af9' name='offs' filepath='drivers/spi/spi-mem.c' line='667' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/spi/spi-mem.c' line='667' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='drivers/spi/spi-mem.c' line='667' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='spi_mem_dirmap_write' mangled-name='spi_mem_dirmap_write' filepath='drivers/spi/spi-mem.c' line='712' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_mem_dirmap_write'>
+        <parameter type-id='4f4f2d55' name='desc' filepath='drivers/spi/spi-mem.c' line='712' column='1'/>
+        <parameter type-id='91ce1af9' name='offs' filepath='drivers/spi/spi-mem.c' line='713' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/spi/spi-mem.c' line='713' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='drivers/spi/spi-mem.c' line='713' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='spi_mem_driver_register_with_owner' mangled-name='spi_mem_driver_register_with_owner' filepath='drivers/spi/spi-mem.c' line='887' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_mem_driver_register_with_owner'>
+        <parameter type-id='a31786f0' name='memdrv' filepath='drivers/spi/spi-mem.c' line='887' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/spi/spi-mem.c' line='888' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spi_mem_driver_unregister' mangled-name='spi_mem_driver_unregister' filepath='drivers/spi/spi-mem.c' line='904' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_mem_driver_unregister'>
+        <parameter type-id='a31786f0' name='memdrv' filepath='drivers/spi/spi-mem.c' line='904' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='spi_mem_dtr_supports_op' mangled-name='spi_mem_dtr_supports_op' filepath='drivers/spi/spi-mem.c' line='163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_mem_dtr_supports_op'>
+        <parameter type-id='33dc3b1b' name='mem' filepath='drivers/spi/spi-mem.c' line='163' column='1'/>
+        <parameter type-id='10593a44' name='op' filepath='drivers/spi/spi-mem.c' line='164' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='spi_mem_exec_op' mangled-name='spi_mem_exec_op' filepath='drivers/spi/spi-mem.c' line='299' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_mem_exec_op'>
+        <parameter type-id='33dc3b1b' name='mem' filepath='drivers/spi/spi-mem.c' line='299' column='1'/>
+        <parameter type-id='10593a44' name='op' filepath='drivers/spi/spi-mem.c' line='299' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spi_mem_get_name' mangled-name='spi_mem_get_name' filepath='drivers/spi/spi-mem.c' line='421' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_mem_get_name'>
+        <parameter type-id='33dc3b1b' name='mem' filepath='drivers/spi/spi-mem.c' line='421' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='spi_mem_supports_op' mangled-name='spi_mem_supports_op' filepath='drivers/spi/spi-mem.c' line='239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_mem_supports_op'>
+        <parameter type-id='33dc3b1b' name='mem' filepath='drivers/spi/spi-mem.c' line='239' column='1'/>
+        <parameter type-id='10593a44' name='op' filepath='drivers/spi/spi-mem.c' line='239' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='spi_new_device' mangled-name='spi_new_device' filepath='drivers/spi/spi.c' line='714' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_new_device'>
+        <parameter type-id='f22e4524' name='ctlr' filepath='drivers/spi/spi.c' line='714' column='1'/>
+        <parameter type-id='71dcfea7' name='chip' filepath='drivers/spi/spi.c' line='715' column='1'/>
+        <return type-id='e90f4666'/>
+      </function-decl>
+      <function-decl name='spi_register_controller' mangled-name='spi_register_controller' filepath='drivers/spi/spi.c' line='2819' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_register_controller'>
+        <parameter type-id='f22e4524' name='ctlr' filepath='drivers/spi/spi.c' line='2819' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spi_setup' mangled-name='spi_setup' filepath='drivers/spi/spi.c' line='3481' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_setup'>
+        <parameter type-id='e90f4666' name='spi' filepath='drivers/spi/spi.c' line='3481' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spi_sync' mangled-name='spi_sync' filepath='drivers/spi/spi.c' line='3994' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_sync'>
+        <parameter type-id='e90f4666' name='spi' filepath='drivers/spi/spi.c' line='3994' column='1'/>
+        <parameter type-id='bb7889ed' name='message' filepath='drivers/spi/spi.c' line='3994' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spi_sync_locked' mangled-name='spi_sync_locked' filepath='drivers/spi/spi.c' line='4022' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_sync_locked'>
+        <parameter type-id='e90f4666' name='spi' filepath='drivers/spi/spi.c' line='4022' column='1'/>
+        <parameter type-id='bb7889ed' name='message' filepath='drivers/spi/spi.c' line='4022' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spi_unregister_controller' mangled-name='spi_unregister_controller' filepath='drivers/spi/spi.c' line='3012' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_unregister_controller'>
+        <parameter type-id='f22e4524' name='ctlr' filepath='drivers/spi/spi.c' line='3012' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='spi_unregister_device' mangled-name='spi_unregister_device' filepath='drivers/spi/spi.c' line='771' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_unregister_device'>
+        <parameter type-id='e90f4666' name='spi' filepath='drivers/spi/spi.c' line='771' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='spi_write_then_read' mangled-name='spi_write_then_read' filepath='drivers/spi/spi.c' line='4107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spi_write_then_read'>
+        <parameter type-id='e90f4666' name='spi' filepath='drivers/spi/spi.c' line='4107' column='1'/>
+        <parameter type-id='eaa32e2f' name='txbuf' filepath='drivers/spi/spi.c' line='4108' column='1'/>
+        <parameter type-id='f0981eeb' name='n_tx' filepath='drivers/spi/spi.c' line='4108' column='1'/>
+        <parameter type-id='eaa32e2f' name='rxbuf' filepath='drivers/spi/spi.c' line='4109' column='1'/>
+        <parameter type-id='f0981eeb' name='n_rx' filepath='drivers/spi/spi.c' line='4109' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='split_page' mangled-name='split_page' filepath='mm/page_alloc.c' line='3739' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='split_page'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/page_alloc.c' line='3739' column='1'/>
+        <parameter type-id='f0981eeb' name='order' filepath='mm/page_alloc.c' line='3739' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='spmi_controller_add' mangled-name='spmi_controller_add' filepath='drivers/spmi/spmi.c' line='519' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spmi_controller_add'>
+        <parameter type-id='d5cbf711' name='ctrl' filepath='drivers/spmi/spmi.c' line='519' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spmi_controller_alloc' mangled-name='spmi_controller_alloc' filepath='drivers/spmi/spmi.c' line='424' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spmi_controller_alloc'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/spmi/spmi.c' line='424' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/spmi/spmi.c' line='425' column='1'/>
+        <return type-id='d5cbf711'/>
+      </function-decl>
+      <function-decl name='spmi_controller_remove' mangled-name='spmi_controller_remove' filepath='drivers/spmi/spmi.c' line='558' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spmi_controller_remove'>
+        <parameter type-id='d5cbf711' name='ctrl' filepath='drivers/spmi/spmi.c' line='558' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='spmi_ext_register_read' mangled-name='spmi_ext_register_read' filepath='drivers/spmi/spmi.c' line='163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spmi_ext_register_read'>
+        <parameter type-id='893447fb' name='sdev' filepath='drivers/spmi/spmi.c' line='163' column='1'/>
+        <parameter type-id='f9b06939' name='addr' filepath='drivers/spmi/spmi.c' line='163' column='1'/>
+        <parameter type-id='8bff8096' name='buf' filepath='drivers/spmi/spmi.c' line='163' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/spmi/spmi.c' line='164' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spmi_ext_register_readl' mangled-name='spmi_ext_register_readl' filepath='drivers/spmi/spmi.c' line='185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spmi_ext_register_readl'>
+        <parameter type-id='893447fb' name='sdev' filepath='drivers/spmi/spmi.c' line='185' column='1'/>
+        <parameter type-id='1dc6a898' name='addr' filepath='drivers/spmi/spmi.c' line='185' column='1'/>
+        <parameter type-id='8bff8096' name='buf' filepath='drivers/spmi/spmi.c' line='185' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/spmi/spmi.c' line='186' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spmi_ext_register_write' mangled-name='spmi_ext_register_write' filepath='drivers/spmi/spmi.c' line='240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spmi_ext_register_write'>
+        <parameter type-id='893447fb' name='sdev' filepath='drivers/spmi/spmi.c' line='240' column='1'/>
+        <parameter type-id='f9b06939' name='addr' filepath='drivers/spmi/spmi.c' line='240' column='1'/>
+        <parameter type-id='bbaf3419' name='buf' filepath='drivers/spmi/spmi.c' line='240' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/spmi/spmi.c' line='241' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spmi_ext_register_writel' mangled-name='spmi_ext_register_writel' filepath='drivers/spmi/spmi.c' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spmi_ext_register_writel'>
+        <parameter type-id='893447fb' name='sdev' filepath='drivers/spmi/spmi.c' line='262' column='1'/>
+        <parameter type-id='1dc6a898' name='addr' filepath='drivers/spmi/spmi.c' line='262' column='1'/>
+        <parameter type-id='bbaf3419' name='buf' filepath='drivers/spmi/spmi.c' line='262' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/spmi/spmi.c' line='263' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spmi_register_read' mangled-name='spmi_register_read' filepath='drivers/spmi/spmi.c' line='142' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spmi_register_read'>
+        <parameter type-id='893447fb' name='sdev' filepath='drivers/spmi/spmi.c' line='142' column='1'/>
+        <parameter type-id='f9b06939' name='addr' filepath='drivers/spmi/spmi.c' line='142' column='1'/>
+        <parameter type-id='8bff8096' name='buf' filepath='drivers/spmi/spmi.c' line='142' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spmi_register_write' mangled-name='spmi_register_write' filepath='drivers/spmi/spmi.c' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spmi_register_write'>
+        <parameter type-id='893447fb' name='sdev' filepath='drivers/spmi/spmi.c' line='205' column='1'/>
+        <parameter type-id='f9b06939' name='addr' filepath='drivers/spmi/spmi.c' line='205' column='1'/>
+        <parameter type-id='f9b06939' name='data' filepath='drivers/spmi/spmi.c' line='205' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='spmi_register_zero_write' mangled-name='spmi_register_zero_write' filepath='drivers/spmi/spmi.c' line='223' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='spmi_register_zero_write'>
+        <parameter type-id='893447fb' name='sdev' filepath='drivers/spmi/spmi.c' line='223' column='1'/>
+        <parameter type-id='f9b06939' name='data' filepath='drivers/spmi/spmi.c' line='223' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sprint_symbol' mangled-name='sprint_symbol' filepath='kernel/kallsyms.c' line='471' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sprint_symbol'>
+        <parameter type-id='26a90f95' name='buffer' filepath='kernel/kallsyms.c' line='471' column='1'/>
+        <parameter type-id='7359adad' name='address' filepath='kernel/kallsyms.c' line='471' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sprint_symbol_no_offset' mangled-name='sprint_symbol_no_offset' filepath='kernel/kallsyms.c' line='505' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sprint_symbol_no_offset'>
+        <parameter type-id='26a90f95' name='buffer' filepath='kernel/kallsyms.c' line='505' column='1'/>
+        <parameter type-id='7359adad' name='address' filepath='kernel/kallsyms.c' line='505' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sprintf' mangled-name='sprintf' filepath='lib/vsprintf.c' line='3002' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sprintf'>
+        <parameter type-id='26a90f95' name='buf' filepath='lib/vsprintf.c' line='3002' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='lib/vsprintf.c' line='3002' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='srcu_barrier' mangled-name='srcu_barrier' filepath='kernel/rcu/srcutree.c' line='1104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='srcu_barrier'>
+        <parameter type-id='f7d7131a' name='ssp' filepath='kernel/rcu/srcutree.c' line='1104' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='srcu_batches_completed' mangled-name='srcu_batches_completed' filepath='kernel/rcu/srcutree.c' line='1162' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='srcu_batches_completed'>
+        <parameter type-id='f7d7131a' name='ssp' filepath='kernel/rcu/srcutree.c' line='1162' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='srcu_init_notifier_head' mangled-name='srcu_init_notifier_head' filepath='kernel/notifier.c' line='503' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='srcu_init_notifier_head'>
+        <parameter type-id='b2cb1838' name='nh' filepath='kernel/notifier.c' line='503' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='srcu_notifier_call_chain' mangled-name='srcu_notifier_call_chain' filepath='kernel/notifier.c' line='478' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='srcu_notifier_call_chain'>
+        <parameter type-id='b2cb1838' name='nh' filepath='kernel/notifier.c' line='478' column='1'/>
+        <parameter type-id='7359adad' name='val' filepath='kernel/notifier.c' line='479' column='1'/>
+        <parameter type-id='eaa32e2f' name='v' filepath='kernel/notifier.c' line='479' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='srcu_notifier_chain_register' mangled-name='srcu_notifier_chain_register' filepath='kernel/notifier.c' line='411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='srcu_notifier_chain_register'>
+        <parameter type-id='b2cb1838' name='nh' filepath='kernel/notifier.c' line='411' column='1'/>
+        <parameter type-id='d504f73d' name='n' filepath='kernel/notifier.c' line='412' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='srcu_notifier_chain_unregister' mangled-name='srcu_notifier_chain_unregister' filepath='kernel/notifier.c' line='441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='srcu_notifier_chain_unregister'>
+        <parameter type-id='b2cb1838' name='nh' filepath='kernel/notifier.c' line='441' column='1'/>
+        <parameter type-id='d504f73d' name='n' filepath='kernel/notifier.c' line='442' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='srcu_torture_stats_print' mangled-name='srcu_torture_stats_print' filepath='kernel/rcu/srcutree.c' line='1340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='srcu_torture_stats_print'>
+        <parameter type-id='f7d7131a' name='ssp' filepath='kernel/rcu/srcutree.c' line='1340' column='1'/>
+        <parameter type-id='26a90f95' name='tt' filepath='kernel/rcu/srcutree.c' line='1340' column='1'/>
+        <parameter type-id='26a90f95' name='tf' filepath='kernel/rcu/srcutree.c' line='1340' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='srcutorture_get_gp_data' mangled-name='srcutorture_get_gp_data' filepath='kernel/rcu/srcutree.c' line='1329' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='srcutorture_get_gp_data'>
+        <parameter type-id='f63583e2' name='test_type' filepath='kernel/rcu/srcutree.c' line='1329' column='1'/>
+        <parameter type-id='f7d7131a' name='ssp' filepath='kernel/rcu/srcutree.c' line='1330' column='1'/>
+        <parameter type-id='7292109c' name='flags' filepath='kernel/rcu/srcutree.c' line='1330' column='1'/>
+        <parameter type-id='1d2c2b85' name='gp_seq' filepath='kernel/rcu/srcutree.c' line='1331' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sscanf' mangled-name='sscanf' filepath='lib/vsprintf.c' line='3697' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sscanf'>
+        <parameter type-id='80f4b756' name='buf' filepath='lib/vsprintf.c' line='3697' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='lib/vsprintf.c' line='3697' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='stack_depot_fetch' mangled-name='stack_depot_fetch' filepath='lib/stackdepot.c' line='225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='stack_depot_fetch'>
+        <parameter type-id='613ae993' name='handle' filepath='lib/stackdepot.c' line='225' column='1'/>
+        <parameter type-id='9b88c47d' name='entries' filepath='lib/stackdepot.c' line='226' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='stack_depot_save' mangled-name='stack_depot_save' filepath='lib/stackdepot.c' line='379' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='stack_depot_save'>
+        <parameter type-id='1d2c2b85' name='entries' filepath='lib/stackdepot.c' line='379' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_entries' filepath='lib/stackdepot.c' line='380' column='1'/>
+        <parameter type-id='3eb7c31c' name='alloc_flags' filepath='lib/stackdepot.c' line='381' column='1'/>
+        <return type-id='613ae993'/>
+      </function-decl>
+      <function-decl name='stack_trace_print' mangled-name='stack_trace_print' filepath='kernel/stacktrace.c' line='24' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='stack_trace_print'>
+        <parameter type-id='f9b37274' name='entries' filepath='kernel/stacktrace.c' line='24' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_entries' filepath='kernel/stacktrace.c' line='24' column='1'/>
+        <parameter type-id='95e97e5e' name='spaces' filepath='kernel/stacktrace.c' line='25' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='stack_trace_save' mangled-name='stack_trace_save' filepath='kernel/stacktrace.c' line='112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='stack_trace_save'>
+        <parameter type-id='1d2c2b85' name='store' filepath='kernel/stacktrace.c' line='112' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='kernel/stacktrace.c' line='112' column='1'/>
+        <parameter type-id='f0981eeb' name='skipnr' filepath='kernel/stacktrace.c' line='113' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='stack_trace_save_regs' mangled-name='stack_trace_save_regs' filepath='kernel/stacktrace.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='stack_trace_save_regs'>
+        <parameter type-id='4616a179' name='regs' filepath='kernel/stacktrace.c' line='165' column='1'/>
+        <parameter type-id='1d2c2b85' name='store' filepath='kernel/stacktrace.c' line='165' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='kernel/stacktrace.c' line='166' column='1'/>
+        <parameter type-id='f0981eeb' name='skipnr' filepath='kernel/stacktrace.c' line='166' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='stack_trace_save_tsk' mangled-name='stack_trace_save_tsk' filepath='kernel/stacktrace.c' line='136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='stack_trace_save_tsk'>
+        <parameter type-id='f23e2572' name='tsk' filepath='kernel/stacktrace.c' line='136' column='1'/>
+        <parameter type-id='1d2c2b85' name='store' filepath='kernel/stacktrace.c' line='136' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='kernel/stacktrace.c' line='137' column='1'/>
+        <parameter type-id='f0981eeb' name='skipnr' filepath='kernel/stacktrace.c' line='137' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='start_backtrace' mangled-name='start_backtrace' filepath='arch/arm64/kernel/stacktrace.c' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='start_backtrace'>
+        <parameter type-id='14c728aa' name='frame' filepath='arch/arm64/kernel/stacktrace.c' line='36' column='1'/>
+        <parameter type-id='7359adad' name='fp' filepath='arch/arm64/kernel/stacktrace.c' line='36' column='1'/>
+        <parameter type-id='7359adad' name='pc' filepath='arch/arm64/kernel/stacktrace.c' line='37' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='start_poll_synchronize_rcu' mangled-name='start_poll_synchronize_rcu' filepath='kernel/rcu/tree.c' line='3813' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='start_poll_synchronize_rcu'>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='start_poll_synchronize_srcu' mangled-name='start_poll_synchronize_srcu' filepath='kernel/rcu/srcutree.c' line='1044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='start_poll_synchronize_srcu'>
+        <parameter type-id='f7d7131a' name='ssp' filepath='kernel/rcu/srcutree.c' line='1044' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='start_tty' mangled-name='start_tty' filepath='drivers/tty/tty_io.c' line='820' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='start_tty'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_io.c' line='820' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='static_key_disable' mangled-name='static_key_disable' filepath='kernel/jump_label.c' line='212' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='static_key_disable'>
+        <parameter type-id='f8840c23' name='key' filepath='kernel/jump_label.c' line='212' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='static_key_enable' mangled-name='static_key_enable' filepath='kernel/jump_label.c' line='187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='static_key_enable'>
+        <parameter type-id='f8840c23' name='key' filepath='kernel/jump_label.c' line='187' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='static_key_slow_dec' mangled-name='static_key_slow_dec' filepath='kernel/jump_label.c' line='267' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='static_key_slow_dec'>
+        <parameter type-id='f8840c23' name='key' filepath='kernel/jump_label.c' line='267' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='static_key_slow_inc' mangled-name='static_key_slow_inc' filepath='kernel/jump_label.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='static_key_slow_inc'>
+        <parameter type-id='f8840c23' name='key' filepath='kernel/jump_label.c' line='156' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='stop_machine' mangled-name='stop_machine' filepath='kernel/stop_machine.c' line='626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='stop_machine'>
+        <parameter type-id='87dfefa3' name='fn' filepath='kernel/stop_machine.c' line='626' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='kernel/stop_machine.c' line='626' column='1'/>
+        <parameter type-id='5f8a1ac4' name='cpus' filepath='kernel/stop_machine.c' line='626' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='stop_one_cpu' mangled-name='stop_one_cpu' filepath='kernel/stop_machine.c' line='139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='stop_one_cpu'>
+        <parameter type-id='f0981eeb' name='cpu' filepath='kernel/stop_machine.c' line='139' column='1'/>
+        <parameter type-id='87dfefa3' name='fn' filepath='kernel/stop_machine.c' line='139' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='kernel/stop_machine.c' line='139' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='stop_one_cpu_nowait' mangled-name='stop_one_cpu_nowait' filepath='kernel/stop_machine.c' line='385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='stop_one_cpu_nowait'>
+        <parameter type-id='f0981eeb' name='cpu' filepath='kernel/stop_machine.c' line='385' column='1'/>
+        <parameter type-id='87dfefa3' name='fn' filepath='kernel/stop_machine.c' line='385' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='kernel/stop_machine.c' line='385' column='1'/>
+        <parameter type-id='cc8decc0' name='work_buf' filepath='kernel/stop_machine.c' line='386' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='stop_tty' mangled-name='stop_tty' filepath='drivers/tty/tty_io.c' line='789' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='stop_tty'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_io.c' line='789' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='store_sampling_rate' mangled-name='store_sampling_rate' filepath='drivers/cpufreq/cpufreq_governor.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='store_sampling_rate'>
+        <parameter type-id='902fed1a' name='attr_set' filepath='drivers/cpufreq/cpufreq_governor.c' line='44' column='1'/>
+        <parameter type-id='80f4b756' name='buf' filepath='drivers/cpufreq/cpufreq_governor.c' line='44' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='drivers/cpufreq/cpufreq_governor.c' line='45' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='stpcpy' mangled-name='stpcpy' filepath='lib/string.c' line='291' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='stpcpy'>
+        <parameter type-id='266fe297' name='dest' filepath='lib/string.c' line='291' column='1'/>
+        <parameter type-id='9d26089a' name='src' filepath='lib/string.c' line='291' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='strcasecmp' mangled-name='strcasecmp' filepath='lib/string.c' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strcasecmp'>
+        <parameter type-id='80f4b756' name='s1' filepath='lib/string.c' line='70' column='1'/>
+        <parameter type-id='80f4b756' name='s2' filepath='lib/string.c' line='70' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='strcat' mangled-name='strcat' filepath='lib/string.c' line='305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strcat'>
+        <parameter type-id='26a90f95' name='dest' filepath='lib/string.c' line='305' column='1'/>
+        <parameter type-id='80f4b756' name='src' filepath='lib/string.c' line='305' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='strchrnul' mangled-name='strchrnul' filepath='lib/string.c' line='450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strchrnul'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/string.c' line='450' column='1'/>
+        <parameter type-id='95e97e5e' name='c' filepath='lib/string.c' line='450' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='strcmp' mangled-name='strcmp' filepath='include/linux/string.h' line='48' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strcmp'>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='80f4b756'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='strcpy' mangled-name='strcpy' filepath='lib/string.c' line='89' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strcpy'>
+        <parameter type-id='26a90f95' name='dest' filepath='lib/string.c' line='89' column='1'/>
+        <parameter type-id='80f4b756' name='src' filepath='lib/string.c' line='89' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='strcspn' mangled-name='strcspn' filepath='lib/string.c' line='623' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strcspn'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/string.c' line='623' column='1'/>
+        <parameter type-id='80f4b756' name='reject' filepath='lib/string.c' line='623' column='1'/>
+        <return type-id='9e19ad6e'/>
+      </function-decl>
+      <function-decl name='stream_open' mangled-name='stream_open' filepath='fs/open.c' line='1442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='stream_open'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/open.c' line='1442' column='1'/>
+        <parameter type-id='77e79a4b' name='filp' filepath='fs/open.c' line='1442' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='strim' mangled-name='strim' filepath='lib/string.c' line='539' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strim'>
+        <parameter type-id='26a90f95' name='s' filepath='lib/string.c' line='539' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='string_get_size' mangled-name='string_get_size' filepath='lib/string_helpers.c' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='string_get_size'>
+        <parameter type-id='91ce1af9' name='size' filepath='lib/string_helpers.c' line='34' column='1'/>
+        <parameter type-id='91ce1af9' name='blk_size' filepath='lib/string_helpers.c' line='34' column='1'/>
+        <parameter type-id='5a685f5f' name='units' filepath='lib/string_helpers.c' line='34' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='lib/string_helpers.c' line='35' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='lib/string_helpers.c' line='35' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='strlcat' mangled-name='strlcat' filepath='lib/string.c' line='354' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strlcat'>
+        <parameter type-id='26a90f95' name='dest' filepath='lib/string.c' line='354' column='1'/>
+        <parameter type-id='80f4b756' name='src' filepath='lib/string.c' line='354' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/string.c' line='354' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='strlcpy' mangled-name='strlcpy' filepath='lib/string.c' line='141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strlcpy'>
+        <parameter type-id='26a90f95' name='dest' filepath='lib/string.c' line='141' column='1'/>
+        <parameter type-id='80f4b756' name='src' filepath='lib/string.c' line='141' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='lib/string.c' line='141' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='strncasecmp' mangled-name='strncasecmp' filepath='lib/string.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strncasecmp'>
+        <parameter type-id='80f4b756' name='s1' filepath='lib/string.c' line='44' column='1'/>
+        <parameter type-id='80f4b756' name='s2' filepath='lib/string.c' line='44' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='lib/string.c' line='44' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='strncat' mangled-name='strncat' filepath='lib/string.c' line='328' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strncat'>
+        <parameter type-id='26a90f95' name='dest' filepath='lib/string.c' line='328' column='1'/>
+        <parameter type-id='80f4b756' name='src' filepath='lib/string.c' line='328' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/string.c' line='328' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='strnchr' mangled-name='strnchr' filepath='lib/string.c' line='504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strnchr'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/string.c' line='504' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/string.c' line='504' column='1'/>
+        <parameter type-id='95e97e5e' name='c' filepath='lib/string.c' line='504' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='strncmp' mangled-name='strncmp' filepath='include/linux/string.h' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strncmp'>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='9e19ad6e'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='strncpy' mangled-name='strncpy' filepath='lib/string.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strncpy'>
+        <parameter type-id='26a90f95' name='dest' filepath='lib/string.c' line='114' column='1'/>
+        <parameter type-id='80f4b756' name='src' filepath='lib/string.c' line='114' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/string.c' line='114' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='strncpy_from_user' mangled-name='strncpy_from_user' filepath='lib/strncpy_from_user.c' line='113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strncpy_from_user'>
+        <parameter type-id='26a90f95' name='dst' filepath='lib/strncpy_from_user.c' line='113' column='1'/>
+        <parameter type-id='80f4b756' name='src' filepath='lib/strncpy_from_user.c' line='113' column='1'/>
+        <parameter type-id='bd54fe1a' name='count' filepath='lib/strncpy_from_user.c' line='113' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='strndup_user' mangled-name='strndup_user' filepath='mm/util.c' line='223' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strndup_user'>
+        <parameter type-id='80f4b756' name='s' filepath='mm/util.c' line='223' column='1'/>
+        <parameter type-id='bd54fe1a' name='n' filepath='mm/util.c' line='223' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='strnstr' mangled-name='strnstr' filepath='lib/string.c' line='1038' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strnstr'>
+        <parameter type-id='80f4b756' name='s1' filepath='lib/string.c' line='1038' column='1'/>
+        <parameter type-id='80f4b756' name='s2' filepath='lib/string.c' line='1038' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='lib/string.c' line='1038' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='strpbrk' mangled-name='strpbrk' filepath='lib/string.c' line='647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strpbrk'>
+        <parameter type-id='80f4b756' name='cs' filepath='lib/string.c' line='647' column='1'/>
+        <parameter type-id='80f4b756' name='ct' filepath='lib/string.c' line='647' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='strreplace' mangled-name='strreplace' filepath='lib/string.c' line='1153' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strreplace'>
+        <parameter type-id='26a90f95' name='s' filepath='lib/string.c' line='1153' column='1'/>
+        <parameter type-id='a84c031d' name='old' filepath='lib/string.c' line='1153' column='1'/>
+        <parameter type-id='a84c031d' name='new' filepath='lib/string.c' line='1153' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='strscpy' mangled-name='strscpy' filepath='lib/string.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strscpy'>
+        <parameter type-id='26a90f95' name='dest' filepath='lib/string.c' line='180' column='1'/>
+        <parameter type-id='80f4b756' name='src' filepath='lib/string.c' line='180' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/string.c' line='180' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='strscpy_pad' mangled-name='strscpy_pad' filepath='lib/string.c' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strscpy_pad'>
+        <parameter type-id='26a90f95' name='dest' filepath='lib/string.c' line='261' column='1'/>
+        <parameter type-id='80f4b756' name='src' filepath='lib/string.c' line='261' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='lib/string.c' line='261' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='strsep' mangled-name='strsep' filepath='lib/string.c' line='674' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strsep'>
+        <parameter type-id='9b23c9ad' name='s' filepath='lib/string.c' line='674' column='1'/>
+        <parameter type-id='80f4b756' name='ct' filepath='lib/string.c' line='674' column='1'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='strspn' mangled-name='strspn' filepath='lib/string.c' line='596' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strspn'>
+        <parameter type-id='80f4b756' name='s' filepath='lib/string.c' line='596' column='1'/>
+        <parameter type-id='80f4b756' name='accept' filepath='lib/string.c' line='596' column='1'/>
+        <return type-id='9e19ad6e'/>
+      </function-decl>
+      <function-decl name='strstr' mangled-name='strstr' filepath='include/linux/string.h' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='strstr'>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='80f4b756'/>
+        <return type-id='26a90f95'/>
+      </function-decl>
+      <function-decl name='submit_bh' mangled-name='submit_bh' filepath='fs/buffer.c' line='3060' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='submit_bh'>
+        <parameter type-id='95e97e5e' name='op' filepath='fs/buffer.c' line='3060' column='1'/>
+        <parameter type-id='95e97e5e' name='op_flags' filepath='fs/buffer.c' line='3060' column='1'/>
+        <parameter type-id='c485c22c' name='bh' filepath='fs/buffer.c' line='3060' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='submit_bio' mangled-name='submit_bio' filepath='block/blk-core.c' line='1061' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='submit_bio'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1061' column='1'/>
+        <return type-id='041bc907'/>
+      </function-decl>
+      <function-decl name='submit_bio_noacct' mangled-name='submit_bio_noacct' filepath='block/blk-core.c' line='1029' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='submit_bio_noacct'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1029' column='1'/>
+        <return type-id='041bc907'/>
+      </function-decl>
+      <function-decl name='submit_bio_wait' mangled-name='submit_bio_wait' filepath='block/bio.c' line='1223' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='submit_bio_wait'>
+        <parameter type-id='fb55efa1' name='bio' filepath='block/bio.c' line='1223' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='subsys_system_register' mangled-name='subsys_system_register' filepath='drivers/base/bus.c' line='1138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='subsys_system_register'>
+        <parameter type-id='5e2671f8' name='subsys' filepath='drivers/base/bus.c' line='1138' column='1'/>
+        <parameter type-id='c97de1ac' name='groups' filepath='drivers/base/bus.c' line='1139' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='suspend_set_ops' mangled-name='suspend_set_ops' filepath='kernel/power/suspend.c' line='203' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='suspend_set_ops'>
+        <parameter type-id='9d109fcf' name='ops' filepath='kernel/power/suspend.c' line='203' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='symbol_put_addr' mangled-name='symbol_put_addr' filepath='kernel/module.c' line='1034' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='symbol_put_addr'>
+        <parameter type-id='eaa32e2f' name='addr' filepath='kernel/module.c' line='1034' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sync_blockdev' mangled-name='sync_blockdev' filepath='block/bdev.c' line='199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sync_blockdev'>
+        <parameter type-id='b88dd945' name='bdev' filepath='block/bdev.c' line='199' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sync_dirty_buffer' mangled-name='sync_dirty_buffer' filepath='fs/buffer.c' line='3168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sync_dirty_buffer'>
+        <parameter type-id='c485c22c' name='bh' filepath='fs/buffer.c' line='3168' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sync_file_create' mangled-name='sync_file_create' filepath='drivers/dma-buf/sync_file.c' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sync_file_create'>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/dma-buf/sync_file.c' line='64' column='1'/>
+        <return type-id='6a6b0b01'/>
+      </function-decl>
+      <function-decl name='sync_file_get_fence' mangled-name='sync_file_get_fence' filepath='drivers/dma-buf/sync_file.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sync_file_get_fence'>
+        <parameter type-id='95e97e5e' name='fd' filepath='drivers/dma-buf/sync_file.c' line='102' column='1'/>
+        <return type-id='28271da3'/>
+      </function-decl>
+      <function-decl name='sync_filesystem' mangled-name='sync_filesystem' filepath='fs/sync.c' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sync_filesystem'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/sync.c' line='30' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sync_inode_metadata' mangled-name='sync_inode_metadata' filepath='fs/fs-writeback.c' line='2791' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sync_inode_metadata'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/fs-writeback.c' line='2791' column='1'/>
+        <parameter type-id='95e97e5e' name='wait' filepath='fs/fs-writeback.c' line='2791' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sync_inodes_sb' mangled-name='sync_inodes_sb' filepath='fs/fs-writeback.c' line='2722' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sync_inodes_sb'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/fs-writeback.c' line='2722' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sync_mapping_buffers' mangled-name='sync_mapping_buffers' filepath='fs/buffer.c' line='541' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sync_mapping_buffers'>
+        <parameter type-id='f57039f0' name='mapping' filepath='fs/buffer.c' line='541' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='synchronize_irq' mangled-name='synchronize_irq' filepath='kernel/irq/manage.c' line='126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_irq'>
+        <parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/manage.c' line='126' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='synchronize_net' mangled-name='synchronize_net' filepath='net/core/dev.c' line='10982' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_net'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='synchronize_rcu' mangled-name='synchronize_rcu' filepath='kernel/rcu/tree.c' line='3768' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='synchronize_rcu_expedited' mangled-name='synchronize_rcu_expedited' filepath='kernel/rcu/tree_exp.h' line='904' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_expedited'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='synchronize_rcu_tasks' mangled-name='synchronize_rcu_tasks' filepath='kernel/rcu/tasks.h' line='589' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_tasks'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='synchronize_rcu_tasks_trace' mangled-name='synchronize_rcu_tasks_trace' filepath='kernel/rcu/tasks.h' line='1261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_tasks_trace'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='synchronize_srcu' mangled-name='synchronize_srcu' filepath='kernel/rcu/srcutree.c' line='1006' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_srcu'>
+        <parameter type-id='f7d7131a' name='ssp' filepath='kernel/rcu/srcutree.c' line='1006' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='synchronize_srcu_expedited' mangled-name='synchronize_srcu_expedited' filepath='kernel/rcu/srcutree.c' line='953' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_srcu_expedited'>
+        <parameter type-id='f7d7131a' name='ssp' filepath='kernel/rcu/srcutree.c' line='953' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='synth_event_create' mangled-name='synth_event_create' filepath='kernel/trace/trace_events_synth.c' line='1351' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synth_event_create'>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/trace/trace_events_synth.c' line='1351' column='1'/>
+        <parameter type-id='b2647a04' name='fields' filepath='kernel/trace/trace_events_synth.c' line='1351' column='1'/>
+        <parameter type-id='f0981eeb' name='n_fields' filepath='kernel/trace/trace_events_synth.c' line='1352' column='1'/>
+        <parameter type-id='2730d015' name='mod' filepath='kernel/trace/trace_events_synth.c' line='1352' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='synth_event_delete' mangled-name='synth_event_delete' filepath='kernel/trace/trace_events_synth.c' line='1404' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synth_event_delete'>
+        <parameter type-id='80f4b756' name='event_name' filepath='kernel/trace/trace_events_synth.c' line='1404' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='sys_tz' type-id='6751193a' mangled-name='sys_tz' visibility='default' filepath='kernel/time/time.c' line='50' column='1' elf-symbol-id='sys_tz'/>
+      <function-decl name='syscon_node_to_regmap' mangled-name='syscon_node_to_regmap' filepath='drivers/mfd/syscon.c' line='185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='syscon_node_to_regmap'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/mfd/syscon.c' line='185' column='1'/>
+        <return type-id='29af9a71'/>
+      </function-decl>
+      <function-decl name='syscon_regmap_lookup_by_compatible' mangled-name='syscon_regmap_lookup_by_compatible' filepath='drivers/mfd/syscon.c' line='194' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='syscon_regmap_lookup_by_compatible'>
+        <parameter type-id='80f4b756' name='s' filepath='drivers/mfd/syscon.c' line='194' column='1'/>
+        <return type-id='29af9a71'/>
+      </function-decl>
+      <function-decl name='syscon_regmap_lookup_by_phandle' mangled-name='syscon_regmap_lookup_by_phandle' filepath='drivers/mfd/syscon.c' line='210' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='syscon_regmap_lookup_by_phandle'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/mfd/syscon.c' line='210' column='1'/>
+        <parameter type-id='80f4b756' name='property' filepath='drivers/mfd/syscon.c' line='211' column='1'/>
+        <return type-id='29af9a71'/>
+      </function-decl>
+      <function-decl name='syscon_regmap_lookup_by_phandle_args' mangled-name='syscon_regmap_lookup_by_phandle_args' filepath='drivers/mfd/syscon.c' line='231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='syscon_regmap_lookup_by_phandle_args'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/mfd/syscon.c' line='231' column='1'/>
+        <parameter type-id='80f4b756' name='property' filepath='drivers/mfd/syscon.c' line='232' column='1'/>
+        <parameter type-id='95e97e5e' name='arg_count' filepath='drivers/mfd/syscon.c' line='233' column='1'/>
+        <parameter type-id='807869d3' name='out_args' filepath='drivers/mfd/syscon.c' line='234' column='1'/>
+        <return type-id='29af9a71'/>
+      </function-decl>
+      <function-decl name='syscon_regmap_lookup_by_phandle_optional' mangled-name='syscon_regmap_lookup_by_phandle_optional' filepath='drivers/mfd/syscon.c' line='265' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='syscon_regmap_lookup_by_phandle_optional'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/mfd/syscon.c' line='265' column='1'/>
+        <parameter type-id='80f4b756' name='property' filepath='drivers/mfd/syscon.c' line='266' column='1'/>
+        <return type-id='29af9a71'/>
+      </function-decl>
+      <var-decl name='sysctl_sched_features' type-id='f0981eeb' mangled-name='sysctl_sched_features' visibility='default' filepath='kernel/sched/core.c' line='71' column='1' elf-symbol-id='sysctl_sched_features'/>
+      <var-decl name='sysctl_sched_latency' type-id='f0981eeb' mangled-name='sysctl_sched_latency' visibility='default' filepath='kernel/sched/fair.c' line='42' column='1' elf-symbol-id='sysctl_sched_latency'/>
+      <var-decl name='sysctl_vals' type-id='1fc64662' mangled-name='sysctl_vals' visibility='default' filepath='fs/proc/proc_sysctl.c' line='29' column='1' elf-symbol-id='sysctl_vals'/>
+      <var-decl name='sysctl_vals_new' type-id='dcbdbf4a' mangled-name='sysctl_vals_new' visibility='default' filepath='fs/proc/proc_sysctl.c' line='31' column='1' elf-symbol-id='sysctl_vals_new'/>
+      <function-decl name='sysfb_disable' mangled-name='sysfb_disable' filepath='drivers/firmware/sysfb.c' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfb_disable'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sysfs_add_file_to_group' mangled-name='sysfs_add_file_to_group' filepath='fs/sysfs/file.c' line='369' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_add_file_to_group'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/file.c' line='369' column='1'/>
+        <parameter type-id='cfe4f8a2' name='attr' filepath='fs/sysfs/file.c' line='370' column='1'/>
+        <parameter type-id='80f4b756' name='group' filepath='fs/sysfs/file.c' line='370' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sysfs_add_link_to_group' mangled-name='sysfs_add_link_to_group' filepath='fs/sysfs/group.c' line='382' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_add_link_to_group'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/group.c' line='382' column='1'/>
+        <parameter type-id='80f4b756' name='group_name' filepath='fs/sysfs/group.c' line='382' column='1'/>
+        <parameter type-id='d30bdc51' name='target' filepath='fs/sysfs/group.c' line='383' column='1'/>
+        <parameter type-id='80f4b756' name='link_name' filepath='fs/sysfs/group.c' line='383' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sysfs_create_bin_file' mangled-name='sysfs_create_bin_file' filepath='fs/sysfs/file.c' line='548' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_create_bin_file'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/file.c' line='548' column='1'/>
+        <parameter type-id='559ac6f0' name='attr' filepath='fs/sysfs/file.c' line='549' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sysfs_create_file_ns' mangled-name='sysfs_create_file_ns' filepath='fs/sysfs/file.c' line='333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_create_file_ns'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/file.c' line='333' column='1'/>
+        <parameter type-id='cfe4f8a2' name='attr' filepath='fs/sysfs/file.c' line='333' column='1'/>
+        <parameter type-id='eaa32e2f' name='ns' filepath='fs/sysfs/file.c' line='334' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sysfs_create_files' mangled-name='sysfs_create_files' filepath='fs/sysfs/file.c' line='349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_create_files'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/file.c' line='349' column='1'/>
+        <parameter type-id='cb460785' name='ptr' filepath='fs/sysfs/file.c' line='349' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sysfs_create_group' mangled-name='sysfs_create_group' filepath='fs/sysfs/group.c' line='172' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_create_group'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/group.c' line='172' column='1'/>
+        <parameter type-id='8ff9530e' name='grp' filepath='fs/sysfs/group.c' line='173' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sysfs_create_groups' mangled-name='sysfs_create_groups' filepath='fs/sysfs/group.c' line='212' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_create_groups'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/group.c' line='212' column='1'/>
+        <parameter type-id='c97de1ac' name='groups' filepath='fs/sysfs/group.c' line='213' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sysfs_create_link' mangled-name='sysfs_create_link' filepath='fs/sysfs/symlink.c' line='89' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_create_link'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/symlink.c' line='89' column='1'/>
+        <parameter type-id='d30bdc51' name='target' filepath='fs/sysfs/symlink.c' line='89' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='fs/sysfs/symlink.c' line='90' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sysfs_create_mount_point' mangled-name='sysfs_create_mount_point' filepath='fs/sysfs/dir.c' line='135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_create_mount_point'>
+        <parameter type-id='d30bdc51' name='parent_kobj' filepath='fs/sysfs/dir.c' line='135' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='fs/sysfs/dir.c' line='135' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sysfs_emit' mangled-name='sysfs_emit' filepath='fs/sysfs/file.c' line='732' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_emit'>
+        <parameter type-id='26a90f95' name='buf' filepath='fs/sysfs/file.c' line='732' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='fs/sysfs/file.c' line='732' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sysfs_emit_at' mangled-name='sysfs_emit_at' filepath='fs/sysfs/file.c' line='760' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_emit_at'>
+        <parameter type-id='26a90f95' name='buf' filepath='fs/sysfs/file.c' line='760' column='1'/>
+        <parameter type-id='95e97e5e' name='at' filepath='fs/sysfs/file.c' line='760' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='fs/sysfs/file.c' line='760' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sysfs_merge_group' mangled-name='sysfs_merge_group' filepath='fs/sysfs/group.c' line='326' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_merge_group'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/group.c' line='326' column='1'/>
+        <parameter type-id='8ff9530e' name='grp' filepath='fs/sysfs/group.c' line='327' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sysfs_notify' mangled-name='sysfs_notify' filepath='fs/sysfs/file.c' line='183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_notify'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/file.c' line='183' column='1'/>
+        <parameter type-id='80f4b756' name='dir' filepath='fs/sysfs/file.c' line='183' column='1'/>
+        <parameter type-id='80f4b756' name='attr' filepath='fs/sysfs/file.c' line='183' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sysfs_remove_bin_file' mangled-name='sysfs_remove_bin_file' filepath='fs/sysfs/file.c' line='568' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_remove_bin_file'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/file.c' line='568' column='1'/>
+        <parameter type-id='559ac6f0' name='attr' filepath='fs/sysfs/file.c' line='569' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sysfs_remove_file_from_group' mangled-name='sysfs_remove_file_from_group' filepath='fs/sysfs/file.c' line='524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_remove_file_from_group'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/file.c' line='524' column='1'/>
+        <parameter type-id='cfe4f8a2' name='attr' filepath='fs/sysfs/file.c' line='525' column='1'/>
+        <parameter type-id='80f4b756' name='group' filepath='fs/sysfs/file.c' line='525' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sysfs_remove_file_ns' mangled-name='sysfs_remove_file_ns' filepath='fs/sysfs/file.c' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_remove_file_ns'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/file.c' line='476' column='1'/>
+        <parameter type-id='cfe4f8a2' name='attr' filepath='fs/sysfs/file.c' line='476' column='1'/>
+        <parameter type-id='eaa32e2f' name='ns' filepath='fs/sysfs/file.c' line='477' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sysfs_remove_files' mangled-name='sysfs_remove_files' filepath='fs/sysfs/file.c' line='509' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_remove_files'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/file.c' line='509' column='1'/>
+        <parameter type-id='cb460785' name='ptr' filepath='fs/sysfs/file.c' line='509' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sysfs_remove_group' mangled-name='sysfs_remove_group' filepath='fs/sysfs/group.c' line='270' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_remove_group'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/group.c' line='270' column='1'/>
+        <parameter type-id='8ff9530e' name='grp' filepath='fs/sysfs/group.c' line='271' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sysfs_remove_groups' mangled-name='sysfs_remove_groups' filepath='fs/sysfs/group.c' line='305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_remove_groups'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/group.c' line='305' column='1'/>
+        <parameter type-id='c97de1ac' name='groups' filepath='fs/sysfs/group.c' line='306' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sysfs_remove_link' mangled-name='sysfs_remove_link' filepath='fs/sysfs/symlink.c' line='143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_remove_link'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/symlink.c' line='143' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='fs/sysfs/symlink.c' line='143' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sysfs_remove_link_from_group' mangled-name='sysfs_remove_link_from_group' filepath='fs/sysfs/group.c' line='405' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_remove_link_from_group'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/group.c' line='405' column='1'/>
+        <parameter type-id='80f4b756' name='group_name' filepath='fs/sysfs/group.c' line='405' column='1'/>
+        <parameter type-id='80f4b756' name='link_name' filepath='fs/sysfs/group.c' line='406' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sysfs_remove_mount_point' mangled-name='sysfs_remove_mount_point' filepath='fs/sysfs/dir.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_remove_mount_point'>
+        <parameter type-id='d30bdc51' name='parent_kobj' filepath='fs/sysfs/dir.c' line='156' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='fs/sysfs/dir.c' line='156' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sysfs_streq' mangled-name='sysfs_streq' filepath='lib/string.c' line='701' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_streq'>
+        <parameter type-id='80f4b756' name='s1' filepath='lib/string.c' line='701' column='1'/>
+        <parameter type-id='80f4b756' name='s2' filepath='lib/string.c' line='701' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='sysfs_unmerge_group' mangled-name='sysfs_unmerge_group' filepath='fs/sysfs/group.c' line='360' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_unmerge_group'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/group.c' line='360' column='1'/>
+        <parameter type-id='8ff9530e' name='grp' filepath='fs/sysfs/group.c' line='361' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='sysfs_update_group' mangled-name='sysfs_update_group' filepath='fs/sysfs/group.c' line='255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_update_group'>
+        <parameter type-id='d30bdc51' name='kobj' filepath='fs/sysfs/group.c' line='255' column='1'/>
+        <parameter type-id='8ff9530e' name='grp' filepath='fs/sysfs/group.c' line='256' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='sysrq_mask' mangled-name='sysrq_mask' filepath='drivers/tty/sysrq.c' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysrq_mask'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='system_32bit_el0_cpumask' mangled-name='system_32bit_el0_cpumask' filepath='arch/arm64/kernel/cpufeature.c' line='1335' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='system_32bit_el0_cpumask'>
+        <return type-id='5f8a1ac4'/>
+      </function-decl>
+      <var-decl name='system_freezable_power_efficient_wq' type-id='242e3d19' mangled-name='system_freezable_power_efficient_wq' visibility='default' filepath='kernel/workqueue.c' line='376' column='1' elf-symbol-id='system_freezable_power_efficient_wq'/>
+      <var-decl name='system_freezable_wq' type-id='242e3d19' mangled-name='system_freezable_wq' visibility='default' filepath='kernel/workqueue.c' line='372' column='1' elf-symbol-id='system_freezable_wq'/>
+      <var-decl name='system_freezing_cnt' type-id='49178f86' mangled-name='system_freezing_cnt' visibility='default' filepath='kernel/freezer.c' line='17' column='1' elf-symbol-id='system_freezing_cnt'/>
+      <var-decl name='system_highpri_wq' type-id='242e3d19' mangled-name='system_highpri_wq' visibility='default' filepath='kernel/workqueue.c' line='366' column='1' elf-symbol-id='system_highpri_wq'/>
+      <var-decl name='system_long_wq' type-id='242e3d19' mangled-name='system_long_wq' visibility='default' filepath='kernel/workqueue.c' line='368' column='1' elf-symbol-id='system_long_wq'/>
+      <var-decl name='system_power_efficient_wq' type-id='242e3d19' mangled-name='system_power_efficient_wq' visibility='default' filepath='kernel/workqueue.c' line='374' column='1' elf-symbol-id='system_power_efficient_wq'/>
+      <var-decl name='system_state' type-id='2ead22b4' mangled-name='system_state' visibility='default' filepath='init/main.c' line='131' column='1' elf-symbol-id='system_state'/>
+      <var-decl name='system_unbound_wq' type-id='242e3d19' mangled-name='system_unbound_wq' visibility='default' filepath='kernel/workqueue.c' line='370' column='1' elf-symbol-id='system_unbound_wq'/>
+      <var-decl name='system_wq' type-id='242e3d19' mangled-name='system_wq' visibility='default' filepath='kernel/workqueue.c' line='364' column='1' elf-symbol-id='system_wq'/>
+      <function-decl name='tag_pages_for_writeback' mangled-name='tag_pages_for_writeback' filepath='mm/page-writeback.c' line='2126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tag_pages_for_writeback'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/page-writeback.c' line='2126' column='1'/>
+        <parameter type-id='7359adad' name='start' filepath='mm/page-writeback.c' line='2127' column='1'/>
+        <parameter type-id='7359adad' name='end' filepath='mm/page-writeback.c' line='2127' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='task_active_pid_ns' mangled-name='task_active_pid_ns' filepath='kernel/pid.c' line='508' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='task_active_pid_ns'>
+        <parameter type-id='f23e2572' name='tsk' filepath='kernel/pid.c' line='508' column='1'/>
+        <return type-id='b816e1d0'/>
+      </function-decl>
+      <function-decl name='task_may_not_preempt' mangled-name='task_may_not_preempt' filepath='kernel/sched/rt.c' line='1493' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='task_may_not_preempt'>
+        <parameter type-id='f23e2572' name='task' filepath='kernel/sched/rt.c' line='1493' column='1'/>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/rt.c' line='1493' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='task_rq_lock' mangled-name='task_rq_lock' filepath='kernel/sched/core.c' line='586' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='task_rq_lock'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='586' column='1'/>
+        <parameter type-id='d0163a5e' name='rf' filepath='kernel/sched/core.c' line='586' column='1'/>
+        <return type-id='6ed6b432'/>
+      </function-decl>
+      <function-decl name='task_sched_runtime' mangled-name='task_sched_runtime' filepath='kernel/sched/core.c' line='5314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='task_sched_runtime'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='5314' column='1'/>
+        <return type-id='0d77e947'/>
+      </function-decl>
+      <function-decl name='tasklet_init' mangled-name='tasklet_init' filepath='kernel/softirq.c' line='840' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tasklet_init'>
+        <parameter type-id='59f1923f' name='t' filepath='kernel/softirq.c' line='840' column='1'/>
+        <parameter type-id='08b16374' name='func' filepath='kernel/softirq.c' line='841' column='1'/>
+        <parameter type-id='7359adad' name='data' filepath='kernel/softirq.c' line='841' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tasklet_kill' mangled-name='tasklet_kill' filepath='kernel/softirq.c' line='878' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tasklet_kill'>
+        <parameter type-id='59f1923f' name='t' filepath='kernel/softirq.c' line='878' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tasklet_setup' mangled-name='tasklet_setup' filepath='kernel/softirq.c' line='828' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tasklet_setup'>
+        <parameter type-id='59f1923f' name='t' filepath='kernel/softirq.c' line='828' column='1'/>
+        <parameter type-id='02da239e' name='callback' filepath='kernel/softirq.c' line='829' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tasklet_unlock_wait' mangled-name='tasklet_unlock_wait' filepath='kernel/softirq.c' line='901' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tasklet_unlock_wait'>
+        <parameter type-id='59f1923f' name='t' filepath='kernel/softirq.c' line='901' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='tasklist_lock' type-id='ac16795b' mangled-name='tasklist_lock' visibility='default' filepath='kernel/fork.c' line='147' column='1' elf-symbol-id='tasklist_lock'/>
+      <function-decl name='tcf_action_exec' mangled-name='tcf_action_exec' filepath='net/sched/act_api.c' line='723' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcf_action_exec'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/sched/act_api.c' line='723' column='1'/>
+        <parameter type-id='981420b7' name='actions' filepath='net/sched/act_api.c' line='723' column='1'/>
+        <parameter type-id='95e97e5e' name='nr_actions' filepath='net/sched/act_api.c' line='724' column='1'/>
+        <parameter type-id='e638cd0c' name='res' filepath='net/sched/act_api.c' line='724' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tcf_exts_destroy' mangled-name='tcf_exts_destroy' filepath='net/sched/cls_api.c' line='3027' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcf_exts_destroy'>
+        <parameter type-id='6c257353' name='exts' filepath='net/sched/cls_api.c' line='3027' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tcf_exts_dump' mangled-name='tcf_exts_dump' filepath='net/sched/cls_api.c' line='3114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcf_exts_dump'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/sched/cls_api.c' line='3114' column='1'/>
+        <parameter type-id='6c257353' name='exts' filepath='net/sched/cls_api.c' line='3114' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tcf_exts_dump_stats' mangled-name='tcf_exts_dump_stats' filepath='net/sched/cls_api.c' line='3181' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcf_exts_dump_stats'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/sched/cls_api.c' line='3181' column='1'/>
+        <parameter type-id='6c257353' name='exts' filepath='net/sched/cls_api.c' line='3181' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tcf_exts_validate' mangled-name='tcf_exts_validate' filepath='net/sched/cls_api.c' line='3039' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcf_exts_validate'>
+        <parameter type-id='a2bff676' name='net' filepath='net/sched/cls_api.c' line='3039' column='1'/>
+        <parameter type-id='6dca061b' name='tp' filepath='net/sched/cls_api.c' line='3039' column='1'/>
+        <parameter type-id='30864cdc' name='tb' filepath='net/sched/cls_api.c' line='3039' column='1'/>
+        <parameter type-id='6fcaf91e' name='rate_tlv' filepath='net/sched/cls_api.c' line='3040' column='1'/>
+        <parameter type-id='6c257353' name='exts' filepath='net/sched/cls_api.c' line='3040' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='net/sched/cls_api.c' line='3041' column='1'/>
+        <parameter type-id='5799dc94' name='extack' filepath='net/sched/cls_api.c' line='3041' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tcf_queue_work' mangled-name='tcf_queue_work' filepath='net/sched/cls_api.c' line='202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcf_queue_work'>
+        <parameter type-id='b325c82b' name='rwork' filepath='net/sched/cls_api.c' line='202' column='1'/>
+        <parameter type-id='72666d3f' name='func' filepath='net/sched/cls_api.c' line='202' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <var-decl name='tcp_hashinfo' type-id='3482ac54' mangled-name='tcp_hashinfo' visibility='default' filepath='net/ipv4/tcp_ipv4.c' line='91' column='1' elf-symbol-id='tcp_hashinfo'/>
+      <function-decl name='tcp_register_congestion_control' mangled-name='tcp_register_congestion_control' filepath='net/ipv4/tcp_cong.c' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcp_register_congestion_control'>
+        <parameter type-id='58c93391' name='ca' filepath='net/ipv4/tcp_cong.c' line='70' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tcp_reno_cong_avoid' mangled-name='tcp_reno_cong_avoid' filepath='net/ipv4/tcp_cong.c' line='436' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcp_reno_cong_avoid'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/ipv4/tcp_cong.c' line='436' column='1'/>
+        <parameter type-id='19c2251e' name='ack' filepath='net/ipv4/tcp_cong.c' line='436' column='1'/>
+        <parameter type-id='19c2251e' name='acked' filepath='net/ipv4/tcp_cong.c' line='436' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tcp_reno_ssthresh' mangled-name='tcp_reno_ssthresh' filepath='net/ipv4/tcp_cong.c' line='455' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcp_reno_ssthresh'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/ipv4/tcp_cong.c' line='455' column='1'/>
+        <return type-id='19c2251e'/>
+      </function-decl>
+      <function-decl name='tcp_reno_undo_cwnd' mangled-name='tcp_reno_undo_cwnd' filepath='net/ipv4/tcp_cong.c' line='463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcp_reno_undo_cwnd'>
+        <parameter type-id='f772df6d' name='sk' filepath='net/ipv4/tcp_cong.c' line='463' column='1'/>
+        <return type-id='19c2251e'/>
+      </function-decl>
+      <function-decl name='tcp_slow_start' mangled-name='tcp_slow_start' filepath='net/ipv4/tcp_cong.c' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcp_slow_start'>
+        <parameter type-id='de885ea5' name='tp' filepath='net/ipv4/tcp_cong.c' line='396' column='1'/>
+        <parameter type-id='19c2251e' name='acked' filepath='net/ipv4/tcp_cong.c' line='396' column='1'/>
+        <return type-id='19c2251e'/>
+      </function-decl>
+      <function-decl name='tcp_unregister_congestion_control' mangled-name='tcp_unregister_congestion_control' filepath='net/ipv4/tcp_cong.c' line='104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcp_unregister_congestion_control'>
+        <parameter type-id='58c93391' name='ca' filepath='net/ipv4/tcp_cong.c' line='104' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tcpci_get_tcpm_port' mangled-name='tcpci_get_tcpm_port' filepath='drivers/usb/typec/tcpm/tcpci.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpci_get_tcpm_port'>
+        <parameter type-id='eefe253e' name='tcpci' filepath='drivers/usb/typec/tcpm/tcpci.c' line='54' column='1'/>
+        <return type-id='426e425b'/>
+      </function-decl>
+      <function-decl name='tcpci_irq' mangled-name='tcpci_irq' filepath='drivers/usb/typec/tcpm/tcpci.c' line='661' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpci_irq'>
+        <parameter type-id='eefe253e' name='tcpci' filepath='drivers/usb/typec/tcpm/tcpci.c' line='661' column='1'/>
+        <return type-id='4bdecfd7'/>
+      </function-decl>
+      <function-decl name='tcpci_register_port' mangled-name='tcpci_register_port' filepath='drivers/usb/typec/tcpm/tcpci.c' line='773' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpci_register_port'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/typec/tcpm/tcpci.c' line='773' column='1'/>
+        <parameter type-id='b6733265' name='data' filepath='drivers/usb/typec/tcpm/tcpci.c' line='773' column='1'/>
+        <return type-id='eefe253e'/>
+      </function-decl>
+      <function-decl name='tcpci_unregister_port' mangled-name='tcpci_unregister_port' filepath='drivers/usb/typec/tcpm/tcpci.c' line='829' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpci_unregister_port'>
+        <parameter type-id='eefe253e' name='tcpci' filepath='drivers/usb/typec/tcpm/tcpci.c' line='829' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tcpm_cc_change' mangled-name='tcpm_cc_change' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5440' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_cc_change'>
+        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5440' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tcpm_is_debouncing' mangled-name='tcpm_is_debouncing' filepath='drivers/usb/typec/tcpm/tcpm.c' line='984' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_is_debouncing'>
+        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='984' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='tcpm_pd_hard_reset' mangled-name='tcpm_pd_hard_reset' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5458' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_pd_hard_reset'>
+        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5458' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tcpm_pd_receive' mangled-name='tcpm_pd_receive' filepath='drivers/usb/typec/tcpm/tcpm.c' line='2962' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_pd_receive'>
+        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='2962' column='1'/>
+        <parameter type-id='d7f1fb72' name='msg' filepath='drivers/usb/typec/tcpm/tcpm.c' line='2962' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tcpm_pd_transmit_complete' mangled-name='tcpm_pd_transmit_complete' filepath='drivers/usb/typec/tcpm/tcpm.c' line='922' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_pd_transmit_complete'>
+        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='922' column='1'/>
+        <parameter type-id='a2f9e316' name='status' filepath='drivers/usb/typec/tcpm/tcpm.c' line='923' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tcpm_register_port' mangled-name='tcpm_register_port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_register_port'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6432' column='1'/>
+        <parameter type-id='15b1f129' name='tcpc' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6432' column='1'/>
+        <return type-id='426e425b'/>
+      </function-decl>
+      <function-decl name='tcpm_sink_frs' mangled-name='tcpm_sink_frs' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_sink_frs'>
+        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5467' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tcpm_sourcing_vbus' mangled-name='tcpm_sourcing_vbus' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_sourcing_vbus'>
+        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5476' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tcpm_tcpc_reset' mangled-name='tcpm_tcpc_reset' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5990' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_tcpc_reset'>
+        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5990' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tcpm_unregister_port' mangled-name='tcpm_unregister_port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6534' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_unregister_port'>
+        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6534' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tcpm_update_sink_capabilities' mangled-name='tcpm_update_sink_capabilities' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_update_sink_capabilities'>
+        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6134' column='1'/>
+        <parameter type-id='aded214c' name='pdo' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6134' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_pdo' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6134' column='1'/>
+        <parameter type-id='f0981eeb' name='operating_snk_mw' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6135' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tcpm_vbus_change' mangled-name='tcpm_vbus_change' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_vbus_change'>
+        <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5449' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='thaw_bdev' mangled-name='thaw_bdev' filepath='block/bdev.c' line='274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thaw_bdev'>
+        <parameter type-id='b88dd945' name='bdev' filepath='block/bdev.c' line='274' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='thaw_super' mangled-name='thaw_super' filepath='fs/super.c' line='1779' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thaw_super'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/super.c' line='1779' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='thermal_cdev_update' mangled-name='thermal_cdev_update' filepath='drivers/thermal/thermal_helpers.c' line='222' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thermal_cdev_update'>
+        <parameter type-id='2feec21f' name='cdev' filepath='drivers/thermal/thermal_helpers.c' line='222' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='thermal_cooling_device_register' mangled-name='thermal_cooling_device_register' filepath='drivers/thermal/thermal_core.c' line='978' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thermal_cooling_device_register'>
+        <parameter type-id='80f4b756' name='type' filepath='drivers/thermal/thermal_core.c' line='978' column='1'/>
+        <parameter type-id='eaa32e2f' name='devdata' filepath='drivers/thermal/thermal_core.c' line='978' column='1'/>
+        <parameter type-id='6f4dc085' name='ops' filepath='drivers/thermal/thermal_core.c' line='979' column='1'/>
+        <return type-id='2feec21f'/>
+      </function-decl>
+      <function-decl name='thermal_cooling_device_unregister' mangled-name='thermal_cooling_device_unregister' filepath='drivers/thermal/thermal_core.c' line='1075' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thermal_cooling_device_unregister'>
+        <parameter type-id='2feec21f' name='cdev' filepath='drivers/thermal/thermal_core.c' line='1075' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='thermal_of_cooling_device_register' mangled-name='thermal_of_cooling_device_register' filepath='drivers/thermal/thermal_core.c' line='1001' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thermal_of_cooling_device_register'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/thermal/thermal_core.c' line='1001' column='1'/>
+        <parameter type-id='80f4b756' name='type' filepath='drivers/thermal/thermal_core.c' line='1002' column='1'/>
+        <parameter type-id='eaa32e2f' name='devdata' filepath='drivers/thermal/thermal_core.c' line='1002' column='1'/>
+        <parameter type-id='6f4dc085' name='ops' filepath='drivers/thermal/thermal_core.c' line='1003' column='1'/>
+        <return type-id='2feec21f'/>
+      </function-decl>
+      <var-decl name='thermal_pressure' type-id='7359adad' mangled-name='thermal_pressure' visibility='default' filepath='drivers/base/arch_topology.c' line='162' column='1' elf-symbol-id='thermal_pressure'/>
+      <function-decl name='thermal_zone_bind_cooling_device' mangled-name='thermal_zone_bind_cooling_device' filepath='drivers/thermal/thermal_core.c' line='622' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thermal_zone_bind_cooling_device'>
+        <parameter type-id='404b1300' name='tz' filepath='drivers/thermal/thermal_core.c' line='622' column='1'/>
+        <parameter type-id='95e97e5e' name='trip' filepath='drivers/thermal/thermal_core.c' line='623' column='1'/>
+        <parameter type-id='2feec21f' name='cdev' filepath='drivers/thermal/thermal_core.c' line='624' column='1'/>
+        <parameter type-id='7359adad' name='upper' filepath='drivers/thermal/thermal_core.c' line='625' column='1'/>
+        <parameter type-id='7359adad' name='lower' filepath='drivers/thermal/thermal_core.c' line='625' column='1'/>
+        <parameter type-id='f0981eeb' name='weight' filepath='drivers/thermal/thermal_core.c' line='626' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='thermal_zone_device_disable' mangled-name='thermal_zone_device_disable' filepath='drivers/thermal/thermal_core.c' line='468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thermal_zone_device_disable'>
+        <parameter type-id='404b1300' name='tz' filepath='drivers/thermal/thermal_core.c' line='468' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='thermal_zone_device_enable' mangled-name='thermal_zone_device_enable' filepath='drivers/thermal/thermal_core.c' line='462' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thermal_zone_device_enable'>
+        <parameter type-id='404b1300' name='tz' filepath='drivers/thermal/thermal_core.c' line='462' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='thermal_zone_device_register' mangled-name='thermal_zone_device_register' filepath='drivers/thermal/thermal_core.c' line='1190' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thermal_zone_device_register'>
+        <parameter type-id='80f4b756' name='type' filepath='drivers/thermal/thermal_core.c' line='1190' column='1'/>
+        <parameter type-id='95e97e5e' name='trips' filepath='drivers/thermal/thermal_core.c' line='1190' column='1'/>
+        <parameter type-id='95e97e5e' name='mask' filepath='drivers/thermal/thermal_core.c' line='1190' column='1'/>
+        <parameter type-id='eaa32e2f' name='devdata' filepath='drivers/thermal/thermal_core.c' line='1191' column='1'/>
+        <parameter type-id='1e6fe389' name='ops' filepath='drivers/thermal/thermal_core.c' line='1191' column='1'/>
+        <parameter type-id='e2cbf964' name='tzp' filepath='drivers/thermal/thermal_core.c' line='1192' column='1'/>
+        <parameter type-id='95e97e5e' name='passive_delay' filepath='drivers/thermal/thermal_core.c' line='1192' column='1'/>
+        <parameter type-id='95e97e5e' name='polling_delay' filepath='drivers/thermal/thermal_core.c' line='1193' column='1'/>
+        <return type-id='404b1300'/>
+      </function-decl>
+      <function-decl name='thermal_zone_device_unregister' mangled-name='thermal_zone_device_unregister' filepath='drivers/thermal/thermal_core.c' line='1337' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thermal_zone_device_unregister'>
+        <parameter type-id='404b1300' name='tz' filepath='drivers/thermal/thermal_core.c' line='1337' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='thermal_zone_device_update' mangled-name='thermal_zone_device_update' filepath='drivers/thermal/thermal_core.c' line='487' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thermal_zone_device_update'>
+        <parameter type-id='404b1300' name='tz' filepath='drivers/thermal/thermal_core.c' line='487' column='1'/>
+        <parameter type-id='b5808f5e' name='event' filepath='drivers/thermal/thermal_core.c' line='488' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='thermal_zone_get_temp' mangled-name='thermal_zone_get_temp' filepath='drivers/thermal/thermal_helpers.c' line='78' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thermal_zone_get_temp'>
+        <parameter type-id='404b1300' name='tz' filepath='drivers/thermal/thermal_helpers.c' line='78' column='1'/>
+        <parameter type-id='7292109c' name='temp' filepath='drivers/thermal/thermal_helpers.c' line='78' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='thermal_zone_get_zone_by_name' mangled-name='thermal_zone_get_zone_by_name' filepath='drivers/thermal/thermal_core.c' line='1405' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thermal_zone_get_zone_by_name'>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/thermal/thermal_core.c' line='1405' column='1'/>
+        <return type-id='404b1300'/>
+      </function-decl>
+      <function-decl name='thermal_zone_of_sensor_register' mangled-name='thermal_zone_of_sensor_register' filepath='drivers/thermal/thermal_of.c' line='523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thermal_zone_of_sensor_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/thermal/thermal_of.c' line='523' column='1'/>
+        <parameter type-id='95e97e5e' name='sensor_id' filepath='drivers/thermal/thermal_of.c' line='523' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/thermal/thermal_of.c' line='523' column='1'/>
+        <parameter type-id='83036d6c' name='ops' filepath='drivers/thermal/thermal_of.c' line='524' column='1'/>
+        <return type-id='404b1300'/>
+      </function-decl>
+      <function-decl name='thermal_zone_of_sensor_unregister' mangled-name='thermal_zone_of_sensor_unregister' filepath='drivers/thermal/thermal_of.c' line='581' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thermal_zone_of_sensor_unregister'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/thermal/thermal_of.c' line='581' column='1'/>
+        <parameter type-id='404b1300' name='tzd' filepath='drivers/thermal/thermal_of.c' line='582' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='thermal_zone_unbind_cooling_device' mangled-name='thermal_zone_unbind_cooling_device' filepath='drivers/thermal/thermal_core.c' line='747' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thermal_zone_unbind_cooling_device'>
+        <parameter type-id='404b1300' name='tz' filepath='drivers/thermal/thermal_core.c' line='747' column='1'/>
+        <parameter type-id='95e97e5e' name='trip' filepath='drivers/thermal/thermal_core.c' line='748' column='1'/>
+        <parameter type-id='2feec21f' name='cdev' filepath='drivers/thermal/thermal_core.c' line='749' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='thread_group_cputime_adjusted' mangled-name='thread_group_cputime_adjusted' filepath='kernel/sched/cputime.c' line='646' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thread_group_cputime_adjusted'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/cputime.c' line='646' column='1'/>
+        <parameter type-id='3df9fd28' name='ut' filepath='kernel/sched/cputime.c' line='646' column='1'/>
+        <parameter type-id='3df9fd28' name='st' filepath='kernel/sched/cputime.c' line='646' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tick_nohz_get_idle_calls_cpu' mangled-name='tick_nohz_get_idle_calls_cpu' filepath='kernel/time/tick-sched.c' line='1236' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tick_nohz_get_idle_calls_cpu'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/time/tick-sched.c' line='1236' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='tick_nohz_get_sleep_length' mangled-name='tick_nohz_get_sleep_length' filepath='kernel/time/tick-sched.c' line='1196' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tick_nohz_get_sleep_length'>
+        <parameter type-id='44372936' name='delta_next' filepath='kernel/time/tick-sched.c' line='1196' column='1'/>
+        <return type-id='fbc017ef'/>
+      </function-decl>
+      <function-decl name='time64_to_tm' mangled-name='time64_to_tm' filepath='kernel/time/timeconv.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='time64_to_tm'>
+        <parameter type-id='1afd27ac' name='totalsecs' filepath='kernel/time/timeconv.c' line='47' column='1'/>
+        <parameter type-id='95e97e5e' name='offset' filepath='kernel/time/timeconv.c' line='47' column='1'/>
+        <parameter type-id='d915a820' name='result' filepath='kernel/time/timeconv.c' line='47' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='timecounter_cyc2time' mangled-name='timecounter_cyc2time' filepath='kernel/time/timecounter.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='timecounter_cyc2time'>
+        <parameter type-id='1d3bf953' name='tc' filepath='kernel/time/timecounter.c' line='79' column='1'/>
+        <parameter type-id='91ce1af9' name='cycle_tstamp' filepath='kernel/time/timecounter.c' line='80' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='timecounter_init' mangled-name='timecounter_init' filepath='kernel/time/timecounter.c' line='8' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='timecounter_init'>
+        <parameter type-id='b548a676' name='tc' filepath='kernel/time/timecounter.c' line='8' column='1'/>
+        <parameter type-id='51a502f8' name='cc' filepath='kernel/time/timecounter.c' line='9' column='1'/>
+        <parameter type-id='91ce1af9' name='start_tstamp' filepath='kernel/time/timecounter.c' line='10' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='timecounter_read' mangled-name='timecounter_read' filepath='kernel/time/timecounter.c' line='52' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='timecounter_read'>
+        <parameter type-id='b548a676' name='tc' filepath='kernel/time/timecounter.c' line='52' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='timer_of_init' mangled-name='timer_of_init' filepath='drivers/clocksource/timer-of.c' line='168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='timer_of_init'>
+        <parameter type-id='9a537bbe' name='np' filepath='drivers/clocksource/timer-of.c' line='168' column='1'/>
+        <parameter type-id='b2168730' name='to' filepath='drivers/clocksource/timer-of.c' line='168' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='timer_reduce' mangled-name='timer_reduce' filepath='kernel/time/timer.c' line='1127' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='timer_reduce'>
+        <parameter type-id='9248e67f' name='timer' filepath='kernel/time/timer.c' line='1127' column='1'/>
+        <parameter type-id='7359adad' name='expires' filepath='kernel/time/timer.c' line='1127' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='timer_unstable_counter_workaround' type-id='aa357a64' mangled-name='timer_unstable_counter_workaround' visibility='default' filepath='drivers/clocksource/arm_arch_timer.c' line='395' column='1' elf-symbol-id='timer_unstable_counter_workaround'/>
+      <function-decl name='timespec64_to_jiffies' mangled-name='timespec64_to_jiffies' filepath='kernel/time/time.c' line='588' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='timespec64_to_jiffies'>
+        <parameter type-id='0817f042' name='value' filepath='kernel/time/time.c' line='588' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='timestamp_truncate' mangled-name='timestamp_truncate' filepath='fs/inode.c' line='2249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='timestamp_truncate'>
+        <parameter type-id='40a816ad' name='t' filepath='fs/inode.c' line='2249' column='1'/>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='2249' column='1'/>
+        <return type-id='40a816ad'/>
+      </function-decl>
+      <function-decl name='topology_clear_scale_freq_source' mangled-name='topology_clear_scale_freq_source' filepath='drivers/base/arch_topology.c' line='89' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='topology_clear_scale_freq_source'>
+        <parameter type-id='1be23a1f' name='source' filepath='drivers/base/arch_topology.c' line='89' column='1'/>
+        <parameter type-id='5f8a1ac4' name='cpus' filepath='drivers/base/arch_topology.c' line='90' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='topology_set_thermal_pressure' mangled-name='topology_set_thermal_pressure' filepath='drivers/base/arch_topology.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='topology_set_thermal_pressure'>
+        <parameter type-id='5f8a1ac4' name='cpus' filepath='drivers/base/arch_topology.c' line='165' column='1'/>
+        <parameter type-id='7359adad' name='th_pressure' filepath='drivers/base/arch_topology.c' line='166' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='topology_update_done' type-id='b50a4934' mangled-name='topology_update_done' visibility='default' filepath='drivers/base/arch_topology.c' line='212' column='1' elf-symbol-id='topology_update_done'/>
+      <function-decl name='touch_atime' mangled-name='touch_atime' filepath='fs/inode.c' line='1836' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='touch_atime'>
+        <parameter type-id='a77efac3' name='path' filepath='fs/inode.c' line='1836' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='touch_buffer' mangled-name='touch_buffer' filepath='fs/buffer.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='touch_buffer'>
+        <parameter type-id='c485c22c' name='bh' filepath='fs/buffer.c' line='60' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='touch_softlockup_watchdog' mangled-name='touch_softlockup_watchdog' filepath='kernel/watchdog.c' line='275' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='touch_softlockup_watchdog'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='touchscreen_parse_properties' mangled-name='touchscreen_parse_properties' filepath='drivers/input/touchscreen.c' line='65' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='touchscreen_parse_properties'>
+        <parameter type-id='74b427eb' name='input' filepath='drivers/input/touchscreen.c' line='65' column='1'/>
+        <parameter type-id='b50a4934' name='multitouch' filepath='drivers/input/touchscreen.c' line='65' column='1'/>
+        <parameter type-id='dddca5ae' name='prop' filepath='drivers/input/touchscreen.c' line='66' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='touchscreen_report_pos' mangled-name='touchscreen_report_pos' filepath='drivers/input/touchscreen.c' line='195' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='touchscreen_report_pos'>
+        <parameter type-id='74b427eb' name='input' filepath='drivers/input/touchscreen.c' line='195' column='1'/>
+        <parameter type-id='587448dd' name='prop' filepath='drivers/input/touchscreen.c' line='196' column='1'/>
+        <parameter type-id='f0981eeb' name='x' filepath='drivers/input/touchscreen.c' line='197' column='1'/>
+        <parameter type-id='f0981eeb' name='y' filepath='drivers/input/touchscreen.c' line='197' column='1'/>
+        <parameter type-id='b50a4934' name='multitouch' filepath='drivers/input/touchscreen.c' line='198' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='trace_array_destroy' mangled-name='trace_array_destroy' filepath='kernel/trace/trace.c' line='9423' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_destroy'>
+        <parameter type-id='898c1076' name='this_tr' filepath='kernel/trace/trace.c' line='9423' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='trace_array_get_by_name' mangled-name='trace_array_get_by_name' filepath='kernel/trace/trace.c' line='9359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_get_by_name'>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/trace/trace.c' line='9359' column='1'/>
+        <return type-id='898c1076'/>
+      </function-decl>
+      <function-decl name='trace_array_init_printk' mangled-name='trace_array_init_printk' filepath='kernel/trace/trace.c' line='3536' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_init_printk'>
+        <parameter type-id='898c1076' name='tr' filepath='kernel/trace/trace.c' line='3536' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='trace_array_printk' mangled-name='trace_array_printk' filepath='kernel/trace/trace.c' line='3505' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_printk'>
+        <parameter type-id='898c1076' name='tr' filepath='kernel/trace/trace.c' line='3505' column='1'/>
+        <parameter type-id='7359adad' name='ip' filepath='kernel/trace/trace.c' line='3506' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='kernel/trace/trace.c' line='3506' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='trace_array_put' mangled-name='trace_array_put' filepath='kernel/trace/trace.c' line='479' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_put'>
+        <parameter type-id='898c1076' name='this_tr' filepath='kernel/trace/trace.c' line='479' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='trace_clock_local' mangled-name='trace_clock_local' filepath='kernel/trace/trace_clock.c' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_clock_local'>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='trace_define_field' mangled-name='trace_define_field' filepath='kernel/trace/trace_events.c' line='142' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_define_field'>
+        <parameter type-id='23d6768c' name='call' filepath='kernel/trace/trace_events.c' line='142' column='1'/>
+        <parameter type-id='80f4b756' name='type' filepath='kernel/trace/trace_events.c' line='142' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='kernel/trace/trace_events.c' line='143' column='1'/>
+        <parameter type-id='95e97e5e' name='offset' filepath='kernel/trace/trace_events.c' line='143' column='1'/>
+        <parameter type-id='95e97e5e' name='size' filepath='kernel/trace/trace_events.c' line='143' column='1'/>
+        <parameter type-id='95e97e5e' name='is_signed' filepath='kernel/trace/trace_events.c' line='143' column='1'/>
+        <parameter type-id='95e97e5e' name='filter_type' filepath='kernel/trace/trace_events.c' line='144' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='trace_event_buffer_commit' mangled-name='trace_event_buffer_commit' filepath='kernel/trace/trace.c' line='2924' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_event_buffer_commit'>
+        <parameter type-id='9f548f9a' name='fbuffer' filepath='kernel/trace/trace.c' line='2924' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='trace_event_buffer_reserve' mangled-name='trace_event_buffer_reserve' filepath='kernel/trace/trace_events.c' line='478' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_event_buffer_reserve'>
+        <parameter type-id='9f548f9a' name='fbuffer' filepath='kernel/trace/trace_events.c' line='478' column='1'/>
+        <parameter type-id='3d4ca6d2' name='trace_file' filepath='kernel/trace/trace_events.c' line='479' column='1'/>
+        <parameter type-id='7359adad' name='len' filepath='kernel/trace/trace_events.c' line='480' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='trace_event_ignore_this_pid' mangled-name='trace_event_ignore_this_pid' filepath='kernel/trace/trace_events.c' line='459' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_event_ignore_this_pid'>
+        <parameter type-id='3d4ca6d2' name='trace_file' filepath='kernel/trace/trace_events.c' line='459' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='trace_event_printf' mangled-name='trace_event_printf' filepath='kernel/trace/trace_output.c' line='315' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_event_printf'>
+        <parameter type-id='18881289' name='iter' filepath='kernel/trace/trace_output.c' line='315' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='kernel/trace/trace_output.c' line='315' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='trace_event_raw_init' mangled-name='trace_event_raw_init' filepath='kernel/trace/trace_events.c' line='445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_event_raw_init'>
+        <parameter type-id='23d6768c' name='call' filepath='kernel/trace/trace_events.c' line='445' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='trace_event_reg' mangled-name='trace_event_reg' filepath='kernel/trace/trace_events.c' line='510' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_event_reg'>
+        <parameter type-id='23d6768c' name='call' filepath='kernel/trace/trace_events.c' line='510' column='1'/>
+        <parameter type-id='7fa6eeb8' name='type' filepath='kernel/trace/trace_events.c' line='511' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='kernel/trace/trace_events.c' line='511' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='trace_get_event_file' mangled-name='trace_get_event_file' filepath='kernel/trace/trace_events.c' line='3078' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_get_event_file'>
+        <parameter type-id='80f4b756' name='instance' filepath='kernel/trace/trace_events.c' line='3078' column='1'/>
+        <parameter type-id='80f4b756' name='system' filepath='kernel/trace/trace_events.c' line='3079' column='1'/>
+        <parameter type-id='80f4b756' name='event' filepath='kernel/trace/trace_events.c' line='3080' column='1'/>
+        <return type-id='3d4ca6d2'/>
+      </function-decl>
+      <function-decl name='trace_handle_return' mangled-name='trace_handle_return' filepath='kernel/trace/trace.c' line='2615' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_handle_return'>
+        <parameter type-id='fc932690' name='s' filepath='kernel/trace/trace.c' line='2615' column='1'/>
+        <return type-id='b1a0a119'/>
+      </function-decl>
+      <function-decl name='trace_output_call' mangled-name='trace_output_call' filepath='kernel/trace/trace_output.c' line='336' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_output_call'>
+        <parameter type-id='18881289' name='iter' filepath='kernel/trace/trace_output.c' line='336' column='1'/>
+        <parameter type-id='26a90f95' name='name' filepath='kernel/trace/trace_output.c' line='336' column='1'/>
+        <parameter type-id='26a90f95' name='fmt' filepath='kernel/trace/trace_output.c' line='336' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='trace_print_array_seq' mangled-name='trace_print_array_seq' filepath='kernel/trace/trace_output.c' line='233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_print_array_seq'>
+        <parameter type-id='fc932690' name='p' filepath='kernel/trace/trace_output.c' line='233' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='kernel/trace/trace_output.c' line='233' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='kernel/trace/trace_output.c' line='233' column='1'/>
+        <parameter type-id='b59d7dce' name='el_size' filepath='kernel/trace/trace_output.c' line='234' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='trace_print_bitmask_seq' mangled-name='trace_print_bitmask_seq' filepath='kernel/trace/trace_output.c' line='193' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_print_bitmask_seq'>
+        <parameter type-id='fc932690' name='p' filepath='kernel/trace/trace_output.c' line='193' column='1'/>
+        <parameter type-id='eaa32e2f' name='bitmask_ptr' filepath='kernel/trace/trace_output.c' line='193' column='1'/>
+        <parameter type-id='f0981eeb' name='bitmask_size' filepath='kernel/trace/trace_output.c' line='194' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='trace_print_flags_seq' mangled-name='trace_print_flags_seq' filepath='kernel/trace/trace_output.c' line='65' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_print_flags_seq'>
+        <parameter type-id='fc932690' name='p' filepath='kernel/trace/trace_output.c' line='65' column='1'/>
+        <parameter type-id='80f4b756' name='delim' filepath='kernel/trace/trace_output.c' line='65' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='kernel/trace/trace_output.c' line='66' column='1'/>
+        <parameter type-id='49526a0d' name='flag_array' filepath='kernel/trace/trace_output.c' line='67' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='trace_print_hex_dump_seq' mangled-name='trace_print_hex_dump_seq' filepath='kernel/trace/trace_output.c' line='278' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_print_hex_dump_seq'>
+        <parameter type-id='fc932690' name='p' filepath='kernel/trace/trace_output.c' line='278' column='1'/>
+        <parameter type-id='80f4b756' name='prefix_str' filepath='kernel/trace/trace_output.c' line='278' column='1'/>
+        <parameter type-id='95e97e5e' name='prefix_type' filepath='kernel/trace/trace_output.c' line='279' column='1'/>
+        <parameter type-id='95e97e5e' name='rowsize' filepath='kernel/trace/trace_output.c' line='279' column='1'/>
+        <parameter type-id='95e97e5e' name='groupsize' filepath='kernel/trace/trace_output.c' line='279' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='kernel/trace/trace_output.c' line='280' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='kernel/trace/trace_output.c' line='280' column='1'/>
+        <parameter type-id='b50a4934' name='ascii' filepath='kernel/trace/trace_output.c' line='280' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='trace_print_hex_seq' mangled-name='trace_print_hex_seq' filepath='kernel/trace/trace_output.c' line='217' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_print_hex_seq'>
+        <parameter type-id='fc932690' name='p' filepath='kernel/trace/trace_output.c' line='217' column='1'/>
+        <parameter type-id='354f7eb9' name='buf' filepath='kernel/trace/trace_output.c' line='217' column='1'/>
+        <parameter type-id='95e97e5e' name='buf_len' filepath='kernel/trace/trace_output.c' line='217' column='1'/>
+        <parameter type-id='b50a4934' name='concatenate' filepath='kernel/trace/trace_output.c' line='218' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='trace_print_symbols_seq' mangled-name='trace_print_symbols_seq' filepath='kernel/trace/trace_output.c' line='103' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_print_symbols_seq'>
+        <parameter type-id='fc932690' name='p' filepath='kernel/trace/trace_output.c' line='103' column='1'/>
+        <parameter type-id='7359adad' name='val' filepath='kernel/trace/trace_output.c' line='103' column='1'/>
+        <parameter type-id='49526a0d' name='symbol_array' filepath='kernel/trace/trace_output.c' line='104' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='trace_raw_output_prep' mangled-name='trace_raw_output_prep' filepath='kernel/trace/trace_output.c' line='292' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_raw_output_prep'>
+        <parameter type-id='18881289' name='iter' filepath='kernel/trace/trace_output.c' line='292' column='1'/>
+        <parameter type-id='fb7d87a1' name='trace_event' filepath='kernel/trace/trace_output.c' line='293' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='trace_seq_printf' mangled-name='trace_seq_printf' filepath='kernel/trace/trace_seq.c' line='81' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_seq_printf'>
+        <parameter type-id='fc932690' name='s' filepath='kernel/trace/trace_seq.c' line='81' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='kernel/trace/trace_seq.c' line='81' column='1'/>
+        <parameter is-variadic='yes'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='trace_seq_putc' mangled-name='trace_seq_putc' filepath='kernel/trace/trace_seq.c' line='233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_seq_putc'>
+        <parameter type-id='fc932690' name='s' filepath='kernel/trace/trace_seq.c' line='233' column='1'/>
+        <parameter type-id='002ac4a6' name='c' filepath='kernel/trace/trace_seq.c' line='233' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='trace_set_clr_event' mangled-name='trace_set_clr_event' filepath='kernel/trace/trace_events.c' line='1115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_set_clr_event'>
+        <parameter type-id='80f4b756' name='system' filepath='kernel/trace/trace_events.c' line='1115' column='1'/>
+        <parameter type-id='80f4b756' name='event' filepath='kernel/trace/trace_events.c' line='1115' column='1'/>
+        <parameter type-id='95e97e5e' name='set' filepath='kernel/trace/trace_events.c' line='1115' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tracepoint_probe_register' mangled-name='tracepoint_probe_register' filepath='kernel/tracepoint.c' line='529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tracepoint_probe_register'>
+        <parameter type-id='08e531de' name='tp' filepath='kernel/tracepoint.c' line='529' column='1'/>
+        <parameter type-id='eaa32e2f' name='probe' filepath='kernel/tracepoint.c' line='529' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='kernel/tracepoint.c' line='529' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tracepoint_probe_register_prio' mangled-name='tracepoint_probe_register_prio' filepath='kernel/tracepoint.c' line='501' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tracepoint_probe_register_prio'>
+        <parameter type-id='08e531de' name='tp' filepath='kernel/tracepoint.c' line='501' column='1'/>
+        <parameter type-id='eaa32e2f' name='probe' filepath='kernel/tracepoint.c' line='501' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='kernel/tracepoint.c' line='502' column='1'/>
+        <parameter type-id='95e97e5e' name='prio' filepath='kernel/tracepoint.c' line='502' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tracepoint_probe_unregister' mangled-name='tracepoint_probe_unregister' filepath='kernel/tracepoint.c' line='543' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tracepoint_probe_unregister'>
+        <parameter type-id='08e531de' name='tp' filepath='kernel/tracepoint.c' line='543' column='1'/>
+        <parameter type-id='eaa32e2f' name='probe' filepath='kernel/tracepoint.c' line='543' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='kernel/tracepoint.c' line='543' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='tracepoint_srcu' type-id='e4a7867c' mangled-name='tracepoint_srcu' visibility='default' filepath='kernel/tracepoint.c' line='28' column='1' elf-symbol-id='tracepoint_srcu'/>
+      <function-decl name='tracing_off' mangled-name='tracing_off' filepath='kernel/trace/trace.c' line='1448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tracing_off'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='truncate_inode_pages' mangled-name='truncate_inode_pages' filepath='mm/truncate.c' line='423' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='truncate_inode_pages'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/truncate.c' line='423' column='1'/>
+        <parameter type-id='69bf7bee' name='lstart' filepath='mm/truncate.c' line='423' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='truncate_inode_pages_final' mangled-name='truncate_inode_pages_final' filepath='mm/truncate.c' line='438' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='truncate_inode_pages_final'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/truncate.c' line='438' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='truncate_inode_pages_range' mangled-name='truncate_inode_pages_range' filepath='mm/truncate.c' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='truncate_inode_pages_range'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/truncate.c' line='282' column='1'/>
+        <parameter type-id='69bf7bee' name='lstart' filepath='mm/truncate.c' line='283' column='1'/>
+        <parameter type-id='69bf7bee' name='lend' filepath='mm/truncate.c' line='283' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='truncate_pagecache' mangled-name='truncate_pagecache' filepath='mm/truncate.c' line='720' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='truncate_pagecache'>
+        <parameter type-id='7e666abe' name='inode' filepath='mm/truncate.c' line='720' column='1'/>
+        <parameter type-id='69bf7bee' name='newsize' filepath='mm/truncate.c' line='720' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='truncate_pagecache_range' mangled-name='truncate_pagecache_range' filepath='mm/truncate.c' line='828' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='truncate_pagecache_range'>
+        <parameter type-id='7e666abe' name='inode' filepath='mm/truncate.c' line='828' column='1'/>
+        <parameter type-id='69bf7bee' name='lstart' filepath='mm/truncate.c' line='828' column='1'/>
+        <parameter type-id='69bf7bee' name='lend' filepath='mm/truncate.c' line='828' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='truncate_setsize' mangled-name='truncate_setsize' filepath='mm/truncate.c' line='753' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='truncate_setsize'>
+        <parameter type-id='7e666abe' name='inode' filepath='mm/truncate.c' line='753' column='1'/>
+        <parameter type-id='69bf7bee' name='newsize' filepath='mm/truncate.c' line='753' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='try_module_get' mangled-name='try_module_get' filepath='kernel/module.c' line='1074' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='try_module_get'>
+        <parameter type-id='2730d015' name='module' filepath='kernel/module.c' line='1074' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='try_to_del_timer_sync' mangled-name='try_to_del_timer_sync' filepath='kernel/time/timer.c' line='1229' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='try_to_del_timer_sync'>
+        <parameter type-id='9248e67f' name='timer' filepath='kernel/time/timer.c' line='1229' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='try_to_free_mem_cgroup_pages' mangled-name='try_to_free_mem_cgroup_pages' filepath='mm/vmscan.c' line='6520' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='try_to_free_mem_cgroup_pages'>
+        <parameter type-id='223696fb' name='memcg' filepath='mm/vmscan.c' line='6520' column='1'/>
+        <parameter type-id='7359adad' name='nr_pages' filepath='mm/vmscan.c' line='6521' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/vmscan.c' line='6522' column='1'/>
+        <parameter type-id='b50a4934' name='may_swap' filepath='mm/vmscan.c' line='6523' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='try_to_release_page' mangled-name='try_to_release_page' filepath='mm/filemap.c' line='4018' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='try_to_release_page'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/filemap.c' line='4018' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/filemap.c' line='4018' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='try_to_writeback_inodes_sb' mangled-name='try_to_writeback_inodes_sb' filepath='fs/fs-writeback.c' line='2705' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='try_to_writeback_inodes_sb'>
+        <parameter type-id='42c8f564' name='sb' filepath='fs/fs-writeback.c' line='2705' column='1'/>
+        <parameter type-id='c1602c7a' name='reason' filepath='fs/fs-writeback.c' line='2705' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='try_wait_for_completion' mangled-name='try_wait_for_completion' filepath='kernel/sched/completion.c' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='try_wait_for_completion'>
+        <parameter type-id='389faaf7' name='x' filepath='kernel/sched/completion.c' line='282' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='tso_build_data' mangled-name='tso_build_data' filepath='net/core/tso.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tso_build_data'>
+        <parameter type-id='11f4a000' name='skb' filepath='net/core/tso.c' line='54' column='1'/>
+        <parameter type-id='c47bdd44' name='tso' filepath='net/core/tso.c' line='54' column='1'/>
+        <parameter type-id='95e97e5e' name='size' filepath='net/core/tso.c' line='54' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tso_build_hdr' mangled-name='tso_build_hdr' filepath='net/core/tso.c' line='16' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tso_build_hdr'>
+        <parameter type-id='11f4a000' name='skb' filepath='net/core/tso.c' line='16' column='1'/>
+        <parameter type-id='26a90f95' name='hdr' filepath='net/core/tso.c' line='16' column='1'/>
+        <parameter type-id='c47bdd44' name='tso' filepath='net/core/tso.c' line='16' column='1'/>
+        <parameter type-id='95e97e5e' name='size' filepath='net/core/tso.c' line='17' column='1'/>
+        <parameter type-id='b50a4934' name='is_last' filepath='net/core/tso.c' line='17' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tso_count_descs' mangled-name='tso_count_descs' filepath='net/core/tso.c' line='9' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tso_count_descs'>
+        <parameter type-id='11f4a000' name='skb' filepath='net/core/tso.c' line='9' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tso_start' mangled-name='tso_start' filepath='net/core/tso.c' line='72' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tso_start'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/tso.c' line='72' column='1'/>
+        <parameter type-id='c47bdd44' name='tso' filepath='net/core/tso.c' line='72' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ttm_bo_bulk_move_lru_tail' mangled-name='ttm_bo_bulk_move_lru_tail' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_bulk_move_lru_tail'>
+        <parameter type-id='92bac3a5' name='bulk' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='128' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ttm_bo_eviction_valuable' mangled-name='ttm_bo_eviction_valuable' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='571' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_eviction_valuable'>
+        <parameter type-id='9d57e433' name='bo' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='571' column='1'/>
+        <parameter type-id='2e6aa127' name='place' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='572' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='ttm_bo_init_reserved' mangled-name='ttm_bo_init_reserved' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='999' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_init_reserved'>
+        <parameter type-id='2a9f6bcb' name='bdev' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='999' column='1'/>
+        <parameter type-id='9d57e433' name='bo' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='1000' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='1001' column='1'/>
+        <parameter type-id='db1f3944' name='type' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='1002' column='1'/>
+        <parameter type-id='1d36520e' name='placement' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='1003' column='1'/>
+        <parameter type-id='8f92235e' name='page_alignment' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='1004' column='1'/>
+        <parameter type-id='7c3e509a' name='ctx' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='1005' column='1'/>
+        <parameter type-id='4adb0e6a' name='sg' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='1006' column='1'/>
+        <parameter type-id='340cea9c' name='resv' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='1007' column='1'/>
+        <parameter type-id='7c7fffd6' name='destroy' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='1008' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ttm_bo_kmap' mangled-name='ttm_bo_kmap' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='337' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_kmap'>
+        <parameter type-id='9d57e433' name='bo' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='337' column='1'/>
+        <parameter type-id='7359adad' name='start_page' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='338' column='1'/>
+        <parameter type-id='7359adad' name='num_pages' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='338' column='1'/>
+        <parameter type-id='cc6dfde6' name='map' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='339' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ttm_bo_kunmap' mangled-name='ttm_bo_kunmap' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='364' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_kunmap'>
+        <parameter type-id='cc6dfde6' name='map' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='364' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ttm_bo_lock_delayed_workqueue' mangled-name='ttm_bo_lock_delayed_workqueue' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='477' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_lock_delayed_workqueue'>
+        <parameter type-id='2a9f6bcb' name='bdev' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='477' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ttm_bo_mem_space' mangled-name='ttm_bo_mem_space' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='812' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_mem_space'>
+        <parameter type-id='9d57e433' name='bo' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='812' column='1'/>
+        <parameter type-id='1d36520e' name='placement' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='813' column='1'/>
+        <parameter type-id='813f4995' name='mem' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='814' column='1'/>
+        <parameter type-id='7c3e509a' name='ctx' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='815' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ttm_bo_mmap_obj' mangled-name='ttm_bo_mmap_obj' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='457' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_mmap_obj'>
+        <parameter type-id='2ae08426' name='vma' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='457' column='1'/>
+        <parameter type-id='9d57e433' name='bo' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='457' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ttm_bo_move_accel_cleanup' mangled-name='ttm_bo_move_accel_cleanup' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='545' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_move_accel_cleanup'>
+        <parameter type-id='9d57e433' name='bo' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='545' column='1'/>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='546' column='1'/>
+        <parameter type-id='b50a4934' name='evict' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='547' column='1'/>
+        <parameter type-id='b50a4934' name='pipeline' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='548' column='1'/>
+        <parameter type-id='c0a9211d' name='new_mem' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='549' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ttm_bo_move_memcpy' mangled-name='ttm_bo_move_memcpy' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_move_memcpy'>
+        <parameter type-id='9d57e433' name='bo' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='135' column='1'/>
+        <parameter type-id='7c3e509a' name='ctx' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='136' column='1'/>
+        <parameter type-id='c0a9211d' name='dst_mem' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='137' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ttm_bo_move_to_lru_tail' mangled-name='ttm_bo_move_to_lru_tail' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='90' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_move_to_lru_tail'>
+        <parameter type-id='9d57e433' name='bo' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='90' column='1'/>
+        <parameter type-id='c0a9211d' name='mem' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='91' column='1'/>
+        <parameter type-id='92bac3a5' name='bulk' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='92' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ttm_bo_put' mangled-name='ttm_bo_put' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='471' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_put'>
+        <parameter type-id='9d57e433' name='bo' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='471' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ttm_bo_unlock_delayed_workqueue' mangled-name='ttm_bo_unlock_delayed_workqueue' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_unlock_delayed_workqueue'>
+        <parameter type-id='2a9f6bcb' name='bdev' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='483' column='1'/>
+        <parameter type-id='95e97e5e' name='resched' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='483' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ttm_bo_validate' mangled-name='ttm_bo_validate' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='964' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_validate'>
+        <parameter type-id='9d57e433' name='bo' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='964' column='1'/>
+        <parameter type-id='1d36520e' name='placement' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='965' column='1'/>
+        <parameter type-id='7c3e509a' name='ctx' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='966' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ttm_bo_vm_access' mangled-name='ttm_bo_vm_access' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='414' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_vm_access'>
+        <parameter type-id='2ae08426' name='vma' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='414' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='414' column='1'/>
+        <parameter type-id='eaa32e2f' name='buf' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='415' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='415' column='1'/>
+        <parameter type-id='95e97e5e' name='write' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='415' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ttm_bo_vm_close' mangled-name='ttm_bo_vm_close' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='366' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_vm_close'>
+        <parameter type-id='2ae08426' name='vma' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='366' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ttm_bo_vm_dummy_page' mangled-name='ttm_bo_vm_dummy_page' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='297' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_vm_dummy_page'>
+        <parameter type-id='d02f4143' name='vmf' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='297' column='1'/>
+        <parameter type-id='2e2dcbd3' name='prot' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='297' column='1'/>
+        <return type-id='e9265215'/>
+      </function-decl>
+      <function-decl name='ttm_bo_vm_fault_reserved' mangled-name='ttm_bo_vm_fault_reserved' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_vm_fault_reserved'>
+        <parameter type-id='d02f4143' name='vmf' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='192' column='1'/>
+        <parameter type-id='2e2dcbd3' name='prot' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='193' column='1'/>
+        <parameter type-id='7359adad' name='num_prefault' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='194' column='1'/>
+        <return type-id='e9265215'/>
+      </function-decl>
+      <function-decl name='ttm_bo_vm_open' mangled-name='ttm_bo_vm_open' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_vm_open'>
+        <parameter type-id='2ae08426' name='vma' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='356' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ttm_bo_vm_reserve' mangled-name='ttm_bo_vm_reserve' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_vm_reserve'>
+        <parameter type-id='9d57e433' name='bo' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='129' column='1'/>
+        <parameter type-id='d02f4143' name='vmf' filepath='drivers/gpu/drm/ttm/ttm_bo_vm.c' line='130' column='1'/>
+        <return type-id='e9265215'/>
+      </function-decl>
+      <function-decl name='ttm_bo_vmap' mangled-name='ttm_bo_vmap' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_vmap'>
+        <parameter type-id='9d57e433' name='bo' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='389' column='1'/>
+        <parameter type-id='ce092740' name='map' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='389' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ttm_bo_vunmap' mangled-name='ttm_bo_vunmap' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_vunmap'>
+        <parameter type-id='9d57e433' name='bo' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='448' column='1'/>
+        <parameter type-id='ce092740' name='map' filepath='drivers/gpu/drm/ttm/ttm_bo_util.c' line='448' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ttm_bo_wait' mangled-name='ttm_bo_wait' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='1112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_bo_wait'>
+        <parameter type-id='9d57e433' name='bo' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='1112' column='1'/>
+        <parameter type-id='b50a4934' name='interruptible' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='1113' column='1'/>
+        <parameter type-id='b50a4934' name='no_wait' filepath='drivers/gpu/drm/ttm/ttm_bo.c' line='1113' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ttm_device_fini' mangled-name='ttm_device_fini' filepath='drivers/gpu/drm/ttm/ttm_device.c' line='232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_device_fini'>
+        <parameter type-id='2a9f6bcb' name='bdev' filepath='drivers/gpu/drm/ttm/ttm_device.c' line='232' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ttm_device_init' mangled-name='ttm_device_init' filepath='drivers/gpu/drm/ttm/ttm_device.c' line='199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_device_init'>
+        <parameter type-id='2a9f6bcb' name='bdev' filepath='drivers/gpu/drm/ttm/ttm_device.c' line='199' column='1'/>
+        <parameter type-id='3f3e1f0b' name='funcs' filepath='drivers/gpu/drm/ttm/ttm_device.c' line='199' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/gpu/drm/ttm/ttm_device.c' line='200' column='1'/>
+        <parameter type-id='f57039f0' name='mapping' filepath='drivers/gpu/drm/ttm/ttm_device.c' line='200' column='1'/>
+        <parameter type-id='0c6d12d5' name='vma_manager' filepath='drivers/gpu/drm/ttm/ttm_device.c' line='201' column='1'/>
+        <parameter type-id='b50a4934' name='use_dma_alloc' filepath='drivers/gpu/drm/ttm/ttm_device.c' line='202' column='1'/>
+        <parameter type-id='b50a4934' name='use_dma32' filepath='drivers/gpu/drm/ttm/ttm_device.c' line='202' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ttm_eu_backoff_reservation' mangled-name='ttm_eu_backoff_reservation' filepath='drivers/gpu/drm/ttm/ttm_execbuf_util.c' line='46' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_eu_backoff_reservation'>
+        <parameter type-id='c1d02a64' name='ticket' filepath='drivers/gpu/drm/ttm/ttm_execbuf_util.c' line='46' column='1'/>
+        <parameter type-id='e84b031a' name='list' filepath='drivers/gpu/drm/ttm/ttm_execbuf_util.c' line='47' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ttm_eu_fence_buffer_objects' mangled-name='ttm_eu_fence_buffer_objects' filepath='drivers/gpu/drm/ttm/ttm_execbuf_util.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_eu_fence_buffer_objects'>
+        <parameter type-id='c1d02a64' name='ticket' filepath='drivers/gpu/drm/ttm/ttm_execbuf_util.c' line='146' column='1'/>
+        <parameter type-id='e84b031a' name='list' filepath='drivers/gpu/drm/ttm/ttm_execbuf_util.c' line='147' column='1'/>
+        <parameter type-id='28271da3' name='fence' filepath='drivers/gpu/drm/ttm/ttm_execbuf_util.c' line='148' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ttm_eu_reserve_buffers' mangled-name='ttm_eu_reserve_buffers' filepath='drivers/gpu/drm/ttm/ttm_execbuf_util.c' line='78' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_eu_reserve_buffers'>
+        <parameter type-id='c1d02a64' name='ticket' filepath='drivers/gpu/drm/ttm/ttm_execbuf_util.c' line='78' column='1'/>
+        <parameter type-id='e84b031a' name='list' filepath='drivers/gpu/drm/ttm/ttm_execbuf_util.c' line='79' column='1'/>
+        <parameter type-id='b50a4934' name='intr' filepath='drivers/gpu/drm/ttm/ttm_execbuf_util.c' line='79' column='1'/>
+        <parameter type-id='e84b031a' name='dups' filepath='drivers/gpu/drm/ttm/ttm_execbuf_util.c' line='80' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='ttm_glob' type-id='e5e722f6' mangled-name='ttm_glob' visibility='default' filepath='drivers/gpu/drm/ttm/ttm_device.c' line='44' column='1' elf-symbol-id='ttm_glob'/>
+      <function-decl name='ttm_pool_alloc' mangled-name='ttm_pool_alloc' filepath='drivers/gpu/drm/ttm/ttm_pool.c' line='419' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_pool_alloc'>
+        <parameter type-id='90dad87b' name='pool' filepath='drivers/gpu/drm/ttm/ttm_pool.c' line='419' column='1'/>
+        <parameter type-id='c21baddd' name='tt' filepath='drivers/gpu/drm/ttm/ttm_pool.c' line='419' column='1'/>
+        <parameter type-id='7c3e509a' name='ctx' filepath='drivers/gpu/drm/ttm/ttm_pool.c' line='420' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ttm_pool_debugfs' mangled-name='ttm_pool_debugfs' filepath='drivers/gpu/drm/ttm/ttm_pool.c' line='688' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_pool_debugfs'>
+        <parameter type-id='90dad87b' name='pool' filepath='drivers/gpu/drm/ttm/ttm_pool.c' line='688' column='1'/>
+        <parameter type-id='f8dc9def' name='m' filepath='drivers/gpu/drm/ttm/ttm_pool.c' line='688' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ttm_pool_free' mangled-name='ttm_pool_free' filepath='drivers/gpu/drm/ttm/ttm_pool.c' line='534' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_pool_free'>
+        <parameter type-id='90dad87b' name='pool' filepath='drivers/gpu/drm/ttm/ttm_pool.c' line='534' column='1'/>
+        <parameter type-id='c21baddd' name='tt' filepath='drivers/gpu/drm/ttm/ttm_pool.c' line='534' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ttm_range_man_fini' mangled-name='ttm_range_man_fini' filepath='drivers/gpu/drm/ttm/ttm_range_manager.c' line='176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_range_man_fini'>
+        <parameter type-id='2a9f6bcb' name='bdev' filepath='drivers/gpu/drm/ttm/ttm_range_manager.c' line='176' column='1'/>
+        <parameter type-id='f0981eeb' name='type' filepath='drivers/gpu/drm/ttm/ttm_range_manager.c' line='177' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ttm_range_man_init' mangled-name='ttm_range_man_init' filepath='drivers/gpu/drm/ttm/ttm_range_manager.c' line='141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_range_man_init'>
+        <parameter type-id='2a9f6bcb' name='bdev' filepath='drivers/gpu/drm/ttm/ttm_range_manager.c' line='141' column='1'/>
+        <parameter type-id='f0981eeb' name='type' filepath='drivers/gpu/drm/ttm/ttm_range_manager.c' line='142' column='1'/>
+        <parameter type-id='b50a4934' name='use_tt' filepath='drivers/gpu/drm/ttm/ttm_range_manager.c' line='142' column='1'/>
+        <parameter type-id='7359adad' name='p_size' filepath='drivers/gpu/drm/ttm/ttm_range_manager.c' line='143' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ttm_resource_free' mangled-name='ttm_resource_free' filepath='drivers/gpu/drm/ttm/ttm_resource.c' line='57' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_resource_free'>
+        <parameter type-id='9d57e433' name='bo' filepath='drivers/gpu/drm/ttm/ttm_resource.c' line='57' column='1'/>
+        <parameter type-id='813f4995' name='res' filepath='drivers/gpu/drm/ttm/ttm_resource.c' line='57' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ttm_resource_init' mangled-name='ttm_resource_init' filepath='drivers/gpu/drm/ttm/ttm_resource.c' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_resource_init'>
+        <parameter type-id='9d57e433' name='bo' filepath='drivers/gpu/drm/ttm/ttm_resource.c' line='32' column='1'/>
+        <parameter type-id='2e6aa127' name='place' filepath='drivers/gpu/drm/ttm/ttm_resource.c' line='33' column='1'/>
+        <parameter type-id='c0a9211d' name='res' filepath='drivers/gpu/drm/ttm/ttm_resource.c' line='34' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ttm_resource_manager_evict_all' mangled-name='ttm_resource_manager_evict_all' filepath='drivers/gpu/drm/ttm/ttm_resource.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_resource_manager_evict_all'>
+        <parameter type-id='2a9f6bcb' name='bdev' filepath='drivers/gpu/drm/ttm/ttm_resource.c' line='101' column='1'/>
+        <parameter type-id='40735a95' name='man' filepath='drivers/gpu/drm/ttm/ttm_resource.c' line='102' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ttm_resource_manager_init' mangled-name='ttm_resource_manager_init' filepath='drivers/gpu/drm/ttm/ttm_resource.c' line='78' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_resource_manager_init'>
+        <parameter type-id='40735a95' name='man' filepath='drivers/gpu/drm/ttm/ttm_resource.c' line='78' column='1'/>
+        <parameter type-id='7359adad' name='p_size' filepath='drivers/gpu/drm/ttm/ttm_resource.c' line='79' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ttm_sg_tt_init' mangled-name='ttm_sg_tt_init' filepath='drivers/gpu/drm/ttm/ttm_tt.c' line='179' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_sg_tt_init'>
+        <parameter type-id='c21baddd' name='ttm' filepath='drivers/gpu/drm/ttm/ttm_tt.c' line='179' column='1'/>
+        <parameter type-id='9d57e433' name='bo' filepath='drivers/gpu/drm/ttm/ttm_tt.c' line='179' column='1'/>
+        <parameter type-id='8f92235e' name='page_flags' filepath='drivers/gpu/drm/ttm/ttm_tt.c' line='180' column='1'/>
+        <parameter type-id='4aed510d' name='caching' filepath='drivers/gpu/drm/ttm/ttm_tt.c' line='180' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ttm_tt_destroy_common' mangled-name='ttm_tt_destroy_common' filepath='drivers/gpu/drm/ttm/ttm_tt.c' line='125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_tt_destroy_common'>
+        <parameter type-id='2a9f6bcb' name='bdev' filepath='drivers/gpu/drm/ttm/ttm_tt.c' line='125' column='1'/>
+        <parameter type-id='c21baddd' name='ttm' filepath='drivers/gpu/drm/ttm/ttm_tt.c' line='125' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ttm_tt_fini' mangled-name='ttm_tt_fini' filepath='drivers/gpu/drm/ttm/ttm_tt.c' line='168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ttm_tt_fini'>
+        <parameter type-id='c21baddd' name='ttm' filepath='drivers/gpu/drm/ttm/ttm_tt.c' line='168' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_chars_in_buffer' mangled-name='tty_chars_in_buffer' filepath='drivers/tty/tty_ioctl.c' line='57' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_chars_in_buffer'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_ioctl.c' line='57' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='tty_dev_name_to_number' mangled-name='tty_dev_name_to_number' filepath='drivers/tty/tty_io.c' line='344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_dev_name_to_number'>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/tty/tty_io.c' line='344' column='1'/>
+        <parameter type-id='33f86a47' name='number' filepath='drivers/tty/tty_io.c' line='344' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tty_driver_flush_buffer' mangled-name='tty_driver_flush_buffer' filepath='drivers/tty/tty_ioctl.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_driver_flush_buffer'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_ioctl.c' line='92' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_driver_kref_put' mangled-name='tty_driver_kref_put' filepath='drivers/tty/tty_io.c' line='3437' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_driver_kref_put'>
+        <parameter type-id='c2b4b27b' name='driver' filepath='drivers/tty/tty_io.c' line='3437' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_encode_baud_rate' mangled-name='tty_encode_baud_rate' filepath='drivers/tty/tty_baudrate.c' line='238' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_encode_baud_rate'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_baudrate.c' line='238' column='1'/>
+        <parameter type-id='6a8e8a14' name='ibaud' filepath='drivers/tty/tty_baudrate.c' line='238' column='1'/>
+        <parameter type-id='6a8e8a14' name='obaud' filepath='drivers/tty/tty_baudrate.c' line='238' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_flip_buffer_push' mangled-name='tty_flip_buffer_push' filepath='drivers/tty/tty_buffer.c' line='556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_flip_buffer_push'>
+        <parameter type-id='ec77b5b8' name='port' filepath='drivers/tty/tty_buffer.c' line='556' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_get_char_size' mangled-name='tty_get_char_size' filepath='drivers/tty/tty_ioctl.c' line='289' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_get_char_size'>
+        <parameter type-id='f0981eeb' name='cflag' filepath='drivers/tty/tty_ioctl.c' line='289' column='1'/>
+        <return type-id='002ac4a6'/>
+      </function-decl>
+      <function-decl name='tty_hangup' mangled-name='tty_hangup' filepath='drivers/tty/tty_io.c' line='692' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_hangup'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_io.c' line='692' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_insert_flip_string_fixed_flag' mangled-name='tty_insert_flip_string_fixed_flag' filepath='drivers/tty/tty_buffer.c' line='314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_insert_flip_string_fixed_flag'>
+        <parameter type-id='ec77b5b8' name='port' filepath='drivers/tty/tty_buffer.c' line='314' column='1'/>
+        <parameter type-id='354f7eb9' name='chars' filepath='drivers/tty/tty_buffer.c' line='315' column='1'/>
+        <parameter type-id='a84c031d' name='flag' filepath='drivers/tty/tty_buffer.c' line='315' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/tty/tty_buffer.c' line='315' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tty_kclose' mangled-name='tty_kclose' filepath='drivers/tty/tty_io.c' line='1673' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_kclose'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_io.c' line='1673' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_kopen_exclusive' mangled-name='tty_kopen_exclusive' filepath='drivers/tty/tty_io.c' line='2020' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_kopen_exclusive'>
+        <parameter type-id='8504f260' name='device' filepath='drivers/tty/tty_io.c' line='2020' column='1'/>
+        <return type-id='572fbdca'/>
+      </function-decl>
+      <function-decl name='tty_kref_put' mangled-name='tty_kref_put' filepath='drivers/tty/tty_io.c' line='1580' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_kref_put'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_io.c' line='1580' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_ldisc_deref' mangled-name='tty_ldisc_deref' filepath='drivers/tty/tty_ldisc.c' line='290' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_ldisc_deref'>
+        <parameter type-id='e0bbd59c' name='ld' filepath='drivers/tty/tty_ldisc.c' line='290' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_ldisc_flush' mangled-name='tty_ldisc_flush' filepath='drivers/tty/tty_ldisc.c' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_ldisc_flush'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_ldisc.c' line='396' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_ldisc_ref' mangled-name='tty_ldisc_ref' filepath='drivers/tty/tty_ldisc.c' line='269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_ldisc_ref'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_ldisc.c' line='269' column='1'/>
+        <return type-id='e0bbd59c'/>
+      </function-decl>
+      <function-decl name='tty_lock' mangled-name='tty_lock' filepath='drivers/tty/tty_mutex.c' line='15' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_lock'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_mutex.c' line='15' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_mode_ioctl' mangled-name='tty_mode_ioctl' filepath='drivers/tty/tty_ioctl.c' line='708' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_mode_ioctl'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_ioctl.c' line='708' column='1'/>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/tty/tty_ioctl.c' line='708' column='1'/>
+        <parameter type-id='f0981eeb' name='cmd' filepath='drivers/tty/tty_ioctl.c' line='709' column='1'/>
+        <parameter type-id='7359adad' name='arg' filepath='drivers/tty/tty_ioctl.c' line='709' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tty_port_close' mangled-name='tty_port_close' filepath='drivers/tty/tty_port.c' line='636' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_port_close'>
+        <parameter type-id='ec77b5b8' name='port' filepath='drivers/tty/tty_port.c' line='636' column='1'/>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_port.c' line='636' column='1'/>
+        <parameter type-id='77e79a4b' name='filp' filepath='drivers/tty/tty_port.c' line='637' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_port_destroy' mangled-name='tty_port_destroy' filepath='drivers/tty/tty_port.c' line='247' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_port_destroy'>
+        <parameter type-id='ec77b5b8' name='port' filepath='drivers/tty/tty_port.c' line='247' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_port_hangup' mangled-name='tty_port_hangup' filepath='drivers/tty/tty_port.c' line='346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_port_hangup'>
+        <parameter type-id='ec77b5b8' name='port' filepath='drivers/tty/tty_port.c' line='346' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_port_init' mangled-name='tty_port_init' filepath='drivers/tty/tty_port.c' line='62' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_port_init'>
+        <parameter type-id='ec77b5b8' name='port' filepath='drivers/tty/tty_port.c' line='62' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_port_install' mangled-name='tty_port_install' filepath='drivers/tty/tty_port.c' line='659' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_port_install'>
+        <parameter type-id='ec77b5b8' name='port' filepath='drivers/tty/tty_port.c' line='659' column='1'/>
+        <parameter type-id='c2b4b27b' name='driver' filepath='drivers/tty/tty_port.c' line='659' column='1'/>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_port.c' line='660' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tty_port_link_device' mangled-name='tty_port_link_device' filepath='drivers/tty/tty_port.c' line='89' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_port_link_device'>
+        <parameter type-id='ec77b5b8' name='port' filepath='drivers/tty/tty_port.c' line='89' column='1'/>
+        <parameter type-id='c2b4b27b' name='driver' filepath='drivers/tty/tty_port.c' line='90' column='1'/>
+        <parameter type-id='f0981eeb' name='index' filepath='drivers/tty/tty_port.c' line='90' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_port_open' mangled-name='tty_port_open' filepath='drivers/tty/tty_port.c' line='675' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_port_open'>
+        <parameter type-id='ec77b5b8' name='port' filepath='drivers/tty/tty_port.c' line='675' column='1'/>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_port.c' line='675' column='1'/>
+        <parameter type-id='77e79a4b' name='filp' filepath='drivers/tty/tty_port.c' line='676' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tty_port_put' mangled-name='tty_port_put' filepath='drivers/tty/tty_port.c' line='270' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_port_put'>
+        <parameter type-id='ec77b5b8' name='port' filepath='drivers/tty/tty_port.c' line='270' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_port_register_device' mangled-name='tty_port_register_device' filepath='drivers/tty/tty_port.c' line='109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_port_register_device'>
+        <parameter type-id='ec77b5b8' name='port' filepath='drivers/tty/tty_port.c' line='109' column='1'/>
+        <parameter type-id='c2b4b27b' name='driver' filepath='drivers/tty/tty_port.c' line='110' column='1'/>
+        <parameter type-id='f0981eeb' name='index' filepath='drivers/tty/tty_port.c' line='110' column='1'/>
+        <parameter type-id='fa0b179b' name='device' filepath='drivers/tty/tty_port.c' line='111' column='1'/>
+        <return type-id='fa0b179b'/>
+      </function-decl>
+      <function-decl name='tty_port_tty_get' mangled-name='tty_port_tty_get' filepath='drivers/tty/tty_port.c' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_port_tty_get'>
+        <parameter type-id='ec77b5b8' name='port' filepath='drivers/tty/tty_port.c' line='284' column='1'/>
+        <return type-id='572fbdca'/>
+      </function-decl>
+      <function-decl name='tty_port_tty_hangup' mangled-name='tty_port_tty_hangup' filepath='drivers/tty/tty_port.c' line='372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_port_tty_hangup'>
+        <parameter type-id='ec77b5b8' name='port' filepath='drivers/tty/tty_port.c' line='372' column='1'/>
+        <parameter type-id='b50a4934' name='check_clocal' filepath='drivers/tty/tty_port.c' line='372' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_port_tty_wakeup' mangled-name='tty_port_tty_wakeup' filepath='drivers/tty/tty_port.c' line='387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_port_tty_wakeup'>
+        <parameter type-id='ec77b5b8' name='port' filepath='drivers/tty/tty_port.c' line='387' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_register_driver' mangled-name='tty_register_driver' filepath='drivers/tty/tty_io.c' line='3446' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_register_driver'>
+        <parameter type-id='c2b4b27b' name='driver' filepath='drivers/tty/tty_io.c' line='3446' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tty_register_ldisc' mangled-name='tty_register_ldisc' filepath='drivers/tty/tty_ldisc.c' line='61' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_register_ldisc'>
+        <parameter type-id='9d632ac5' name='new_ldisc' filepath='drivers/tty/tty_ldisc.c' line='61' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tty_schedule_flip' mangled-name='tty_schedule_flip' filepath='drivers/tty/tty_buffer.c' line='658' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_schedule_flip'>
+        <parameter type-id='ec77b5b8' name='port' filepath='drivers/tty/tty_buffer.c' line='658' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_set_ldisc' mangled-name='tty_set_ldisc' filepath='drivers/tty/tty_ldisc.c' line='541' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_set_ldisc'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_ldisc.c' line='541' column='1'/>
+        <parameter type-id='95e97e5e' name='disc' filepath='drivers/tty/tty_ldisc.c' line='541' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tty_set_termios' mangled-name='tty_set_termios' filepath='drivers/tty/tty_ioctl.c' line='338' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_set_termios'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_ioctl.c' line='338' column='1'/>
+        <parameter type-id='e55856e5' name='new_termios' filepath='drivers/tty/tty_ioctl.c' line='338' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tty_standard_install' mangled-name='tty_standard_install' filepath='drivers/tty/tty_io.c' line='1292' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_standard_install'>
+        <parameter type-id='c2b4b27b' name='driver' filepath='drivers/tty/tty_io.c' line='1292' column='1'/>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_io.c' line='1292' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='tty_std_termios' type-id='2f8662b5' mangled-name='tty_std_termios' visibility='default' filepath='drivers/tty/tty_io.c' line='123' column='1' elf-symbol-id='tty_std_termios'/>
+      <function-decl name='tty_termios_baud_rate' mangled-name='tty_termios_baud_rate' filepath='drivers/tty/tty_baudrate.c' line='58' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_termios_baud_rate'>
+        <parameter type-id='e55856e5' name='termios' filepath='drivers/tty/tty_baudrate.c' line='58' column='1'/>
+        <return type-id='6a8e8a14'/>
+      </function-decl>
+      <function-decl name='tty_termios_copy_hw' mangled-name='tty_termios_copy_hw' filepath='drivers/tty/tty_ioctl.c' line='252' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_termios_copy_hw'>
+        <parameter type-id='e55856e5' name='new' filepath='drivers/tty/tty_ioctl.c' line='252' column='1'/>
+        <parameter type-id='e55856e5' name='old' filepath='drivers/tty/tty_ioctl.c' line='252' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_termios_encode_baud_rate' mangled-name='tty_termios_encode_baud_rate' filepath='drivers/tty/tty_baudrate.c' line='142' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_termios_encode_baud_rate'>
+        <parameter type-id='e55856e5' name='termios' filepath='drivers/tty/tty_baudrate.c' line='142' column='1'/>
+        <parameter type-id='6a8e8a14' name='ibaud' filepath='drivers/tty/tty_baudrate.c' line='143' column='1'/>
+        <parameter type-id='6a8e8a14' name='obaud' filepath='drivers/tty/tty_baudrate.c' line='143' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_termios_hw_change' mangled-name='tty_termios_hw_change' filepath='drivers/tty/tty_ioctl.c' line='272' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_termios_hw_change'>
+        <parameter type-id='d705010a' name='a' filepath='drivers/tty/tty_ioctl.c' line='272' column='1'/>
+        <parameter type-id='d705010a' name='b' filepath='drivers/tty/tty_ioctl.c' line='272' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='tty_unlock' mangled-name='tty_unlock' filepath='drivers/tty/tty_mutex.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_unlock'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_mutex.c' line='37' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_unregister_device' mangled-name='tty_unregister_device' filepath='drivers/tty/tty_io.c' line='3332' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_unregister_device'>
+        <parameter type-id='c2b4b27b' name='driver' filepath='drivers/tty/tty_io.c' line='3332' column='1'/>
+        <parameter type-id='f0981eeb' name='index' filepath='drivers/tty/tty_io.c' line='3332' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_unregister_driver' mangled-name='tty_unregister_driver' filepath='drivers/tty/tty_io.c' line='3508' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_unregister_driver'>
+        <parameter type-id='c2b4b27b' name='driver' filepath='drivers/tty/tty_io.c' line='3508' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_unregister_ldisc' mangled-name='tty_unregister_ldisc' filepath='drivers/tty/tty_ldisc.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_unregister_ldisc'>
+        <parameter type-id='9d632ac5' name='ldisc' filepath='drivers/tty/tty_ldisc.c' line='88' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_unthrottle' mangled-name='tty_unthrottle' filepath='drivers/tty/tty_ioctl.c' line='112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_unthrottle'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_ioctl.c' line='112' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_vhangup' mangled-name='tty_vhangup' filepath='drivers/tty/tty_io.c' line='708' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_vhangup'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_io.c' line='708' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_wakeup' mangled-name='tty_wakeup' filepath='drivers/tty/tty_io.c' line='526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_wakeup'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_io.c' line='526' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='tty_write_room' mangled-name='tty_write_room' filepath='drivers/tty/tty_ioctl.c' line='76' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_write_room'>
+        <parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_ioctl.c' line='76' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='typec_altmode2port' mangled-name='typec_altmode2port' filepath='drivers/usb/typec/class.c' line='317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_altmode2port'>
+        <parameter type-id='02913b69' name='alt' filepath='drivers/usb/typec/class.c' line='317' column='1'/>
+        <return type-id='b977ca56'/>
+      </function-decl>
+      <function-decl name='typec_altmode_attention' mangled-name='typec_altmode_attention' filepath='drivers/usb/typec/bus.c' line='157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_altmode_attention'>
+        <parameter type-id='02913b69' name='adev' filepath='drivers/usb/typec/bus.c' line='157' column='1'/>
+        <parameter type-id='19c2251e' name='vdo' filepath='drivers/usb/typec/bus.c' line='157' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='typec_altmode_enter' mangled-name='typec_altmode_enter' filepath='drivers/usb/typec/bus.c' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_altmode_enter'>
+        <parameter type-id='02913b69' name='adev' filepath='drivers/usb/typec/bus.c' line='97' column='1'/>
+        <parameter type-id='f9409001' name='vdo' filepath='drivers/usb/typec/bus.c' line='97' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='typec_altmode_exit' mangled-name='typec_altmode_exit' filepath='drivers/usb/typec/bus.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_altmode_exit'>
+        <parameter type-id='02913b69' name='adev' filepath='drivers/usb/typec/bus.c' line='128' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='typec_altmode_get_partner' mangled-name='typec_altmode_get_partner' filepath='drivers/usb/typec/bus.c' line='201' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_altmode_get_partner'>
+        <parameter type-id='02913b69' name='adev' filepath='drivers/usb/typec/bus.c' line='201' column='1'/>
+        <return type-id='9aa82888'/>
+      </function-decl>
+      <function-decl name='typec_altmode_notify' mangled-name='typec_altmode_notify' filepath='drivers/usb/typec/bus.c' line='57' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_altmode_notify'>
+        <parameter type-id='02913b69' name='adev' filepath='drivers/usb/typec/bus.c' line='57' column='1'/>
+        <parameter type-id='7359adad' name='conf' filepath='drivers/usb/typec/bus.c' line='58' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/usb/typec/bus.c' line='58' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='typec_altmode_unregister_driver' mangled-name='typec_altmode_unregister_driver' filepath='drivers/usb/typec/bus.c' line='259' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_altmode_unregister_driver'>
+        <parameter type-id='e1932af2' name='drv' filepath='drivers/usb/typec/bus.c' line='259' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='typec_altmode_update_active' mangled-name='typec_altmode_update_active' filepath='drivers/usb/typec/class.c' line='288' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_altmode_update_active'>
+        <parameter type-id='02913b69' name='adev' filepath='drivers/usb/typec/class.c' line='288' column='1'/>
+        <parameter type-id='b50a4934' name='active' filepath='drivers/usb/typec/class.c' line='288' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='typec_altmode_vdm' mangled-name='typec_altmode_vdm' filepath='drivers/usb/typec/bus.c' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_altmode_vdm'>
+        <parameter type-id='02913b69' name='adev' filepath='drivers/usb/typec/bus.c' line='177' column='1'/>
+        <parameter type-id='51bb592e' name='header' filepath='drivers/usb/typec/bus.c' line='178' column='1'/>
+        <parameter type-id='aded214c' name='vdo' filepath='drivers/usb/typec/bus.c' line='178' column='1'/>
+        <parameter type-id='95e97e5e' name='count' filepath='drivers/usb/typec/bus.c' line='178' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='typec_find_port_data_role' mangled-name='typec_find_port_data_role' filepath='drivers/usb/typec/class.c' line='1795' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_find_port_data_role'>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/usb/typec/class.c' line='1795' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='typec_find_port_power_role' mangled-name='typec_find_port_power_role' filepath='drivers/usb/typec/class.c' line='1766' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_find_port_power_role'>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/usb/typec/class.c' line='1766' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='typec_find_power_role' mangled-name='typec_find_power_role' filepath='drivers/usb/typec/class.c' line='1781' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_find_power_role'>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/usb/typec/class.c' line='1781' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='typec_get_drvdata' mangled-name='typec_get_drvdata' filepath='drivers/usb/typec/class.c' line='1892' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_get_drvdata'>
+        <parameter type-id='b977ca56' name='port' filepath='drivers/usb/typec/class.c' line='1892' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='typec_get_negotiated_svdm_version' mangled-name='typec_get_negotiated_svdm_version' filepath='drivers/usb/typec/class.c' line='1872' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_get_negotiated_svdm_version'>
+        <parameter type-id='b977ca56' name='port' filepath='drivers/usb/typec/class.c' line='1872' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='typec_match_altmode' mangled-name='typec_match_altmode' filepath='drivers/usb/typec/bus.c' line='278' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_match_altmode'>
+        <parameter type-id='4da04a79' name='altmodes' filepath='drivers/usb/typec/bus.c' line='278' column='1'/>
+        <parameter type-id='b59d7dce' name='n' filepath='drivers/usb/typec/bus.c' line='279' column='1'/>
+        <parameter type-id='1dc6a898' name='svid' filepath='drivers/usb/typec/bus.c' line='279' column='1'/>
+        <parameter type-id='f9b06939' name='mode' filepath='drivers/usb/typec/bus.c' line='279' column='1'/>
+        <return type-id='02913b69'/>
+      </function-decl>
+      <function-decl name='typec_mux_get_drvdata' mangled-name='typec_mux_get_drvdata' filepath='drivers/usb/typec/mux.c' line='380' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_mux_get_drvdata'>
+        <parameter type-id='374b228b' name='mux' filepath='drivers/usb/typec/mux.c' line='380' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='typec_mux_register' mangled-name='typec_mux_register' filepath='drivers/usb/typec/mux.c' line='324' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_mux_register'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/usb/typec/mux.c' line='324' column='1'/>
+        <parameter type-id='233fa2f2' name='desc' filepath='drivers/usb/typec/mux.c' line='324' column='1'/>
+        <return type-id='374b228b'/>
+      </function-decl>
+      <function-decl name='typec_mux_set' mangled-name='typec_mux_set' filepath='drivers/usb/typec/mux.c' line='294' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_mux_set'>
+        <parameter type-id='374b228b' name='mux' filepath='drivers/usb/typec/mux.c' line='294' column='1'/>
+        <parameter type-id='d03b0979' name='state' filepath='drivers/usb/typec/mux.c' line='294' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='typec_mux_unregister' mangled-name='typec_mux_unregister' filepath='drivers/usb/typec/mux.c' line='367' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_mux_unregister'>
+        <parameter type-id='374b228b' name='mux' filepath='drivers/usb/typec/mux.c' line='367' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='typec_partner_register_altmode' mangled-name='typec_partner_register_altmode' filepath='drivers/usb/typec/class.c' line='768' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_partner_register_altmode'>
+        <parameter type-id='33ca4bbb' name='partner' filepath='drivers/usb/typec/class.c' line='768' column='1'/>
+        <parameter type-id='064c3738' name='desc' filepath='drivers/usb/typec/class.c' line='769' column='1'/>
+        <return type-id='02913b69'/>
+      </function-decl>
+      <function-decl name='typec_partner_set_identity' mangled-name='typec_partner_set_identity' filepath='drivers/usb/typec/class.c' line='689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_partner_set_identity'>
+        <parameter type-id='33ca4bbb' name='partner' filepath='drivers/usb/typec/class.c' line='689' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='typec_port_register_altmode' mangled-name='typec_port_register_altmode' filepath='drivers/usb/typec/class.c' line='1952' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_port_register_altmode'>
+        <parameter type-id='b977ca56' name='port' filepath='drivers/usb/typec/class.c' line='1952' column='1'/>
+        <parameter type-id='064c3738' name='desc' filepath='drivers/usb/typec/class.c' line='1953' column='1'/>
+        <return type-id='02913b69'/>
+      </function-decl>
+      <function-decl name='typec_register_partner' mangled-name='typec_register_partner' filepath='drivers/usb/typec/class.c' line='798' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_register_partner'>
+        <parameter type-id='b977ca56' name='port' filepath='drivers/usb/typec/class.c' line='798' column='1'/>
+        <parameter type-id='a5263fbd' name='desc' filepath='drivers/usb/typec/class.c' line='799' column='1'/>
+        <return type-id='33ca4bbb'/>
+      </function-decl>
+      <function-decl name='typec_register_port' mangled-name='typec_register_port' filepath='drivers/usb/typec/class.c' line='2035' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_register_port'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/usb/typec/class.c' line='2035' column='1'/>
+        <parameter type-id='287e28ea' name='cap' filepath='drivers/usb/typec/class.c' line='2036' column='1'/>
+        <return type-id='b977ca56'/>
+      </function-decl>
+      <function-decl name='typec_set_data_role' mangled-name='typec_set_data_role' filepath='drivers/usb/typec/class.c' line='1632' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_set_data_role'>
+        <parameter type-id='b977ca56' name='port' filepath='drivers/usb/typec/class.c' line='1632' column='1'/>
+        <parameter type-id='e453a0cb' name='role' filepath='drivers/usb/typec/class.c' line='1632' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='typec_set_mode' mangled-name='typec_set_mode' filepath='drivers/usb/typec/class.c' line='1849' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_set_mode'>
+        <parameter type-id='b977ca56' name='port' filepath='drivers/usb/typec/class.c' line='1849' column='1'/>
+        <parameter type-id='95e97e5e' name='mode' filepath='drivers/usb/typec/class.c' line='1849' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='typec_set_orientation' mangled-name='typec_set_orientation' filepath='drivers/usb/typec/class.c' line='1812' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_set_orientation'>
+        <parameter type-id='b977ca56' name='port' filepath='drivers/usb/typec/class.c' line='1812' column='1'/>
+        <parameter type-id='131b0a9c' name='orientation' filepath='drivers/usb/typec/class.c' line='1813' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='typec_set_pwr_opmode' mangled-name='typec_set_pwr_opmode' filepath='drivers/usb/typec/class.c' line='1701' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_set_pwr_opmode'>
+        <parameter type-id='b977ca56' name='port' filepath='drivers/usb/typec/class.c' line='1701' column='1'/>
+        <parameter type-id='44ea1984' name='opmode' filepath='drivers/usb/typec/class.c' line='1702' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='typec_set_pwr_role' mangled-name='typec_set_pwr_role' filepath='drivers/usb/typec/class.c' line='1661' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_set_pwr_role'>
+        <parameter type-id='b977ca56' name='port' filepath='drivers/usb/typec/class.c' line='1661' column='1'/>
+        <parameter type-id='ad61830a' name='role' filepath='drivers/usb/typec/class.c' line='1661' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='typec_set_vconn_role' mangled-name='typec_set_vconn_role' filepath='drivers/usb/typec/class.c' line='1680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_set_vconn_role'>
+        <parameter type-id='b977ca56' name='port' filepath='drivers/usb/typec/class.c' line='1680' column='1'/>
+        <parameter type-id='ad61830a' name='role' filepath='drivers/usb/typec/class.c' line='1680' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='typec_switch_get_drvdata' mangled-name='typec_switch_get_drvdata' filepath='drivers/usb/typec/mux.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_switch_get_drvdata'>
+        <parameter type-id='5d33005f' name='sw' filepath='drivers/usb/typec/mux.c' line='180' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='typec_switch_register' mangled-name='typec_switch_register' filepath='drivers/usb/typec/mux.c' line='113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_switch_register'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/usb/typec/mux.c' line='113' column='1'/>
+        <parameter type-id='e6db9214' name='desc' filepath='drivers/usb/typec/mux.c' line='114' column='1'/>
+        <return type-id='5d33005f'/>
+      </function-decl>
+      <function-decl name='typec_switch_unregister' mangled-name='typec_switch_unregister' filepath='drivers/usb/typec/mux.c' line='167' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_switch_unregister'>
+        <parameter type-id='5d33005f' name='sw' filepath='drivers/usb/typec/mux.c' line='167' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='typec_unregister_altmode' mangled-name='typec_unregister_altmode' filepath='drivers/usb/typec/class.c' line='580' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_unregister_altmode'>
+        <parameter type-id='02913b69' name='adev' filepath='drivers/usb/typec/class.c' line='580' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='typec_unregister_partner' mangled-name='typec_unregister_partner' filepath='drivers/usb/typec/class.c' line='846' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_unregister_partner'>
+        <parameter type-id='33ca4bbb' name='partner' filepath='drivers/usb/typec/class.c' line='846' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='typec_unregister_port' mangled-name='typec_unregister_port' filepath='drivers/usb/typec/class.c' line='2143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='typec_unregister_port'>
+        <parameter type-id='b977ca56' name='port' filepath='drivers/usb/typec/class.c' line='2143' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='u_audio_get_mute' mangled-name='u_audio_get_mute' filepath='drivers/usb/gadget/function/u_audio.c' line='681' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='u_audio_get_mute'>
+        <parameter type-id='36cb26c7' name='audio_dev' filepath='drivers/usb/gadget/function/u_audio.c' line='681' column='1'/>
+        <parameter type-id='95e97e5e' name='playback' filepath='drivers/usb/gadget/function/u_audio.c' line='681' column='1'/>
+        <parameter type-id='7292109c' name='val' filepath='drivers/usb/gadget/function/u_audio.c' line='681' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='u_audio_get_volume' mangled-name='u_audio_get_volume' filepath='drivers/usb/gadget/function/u_audio.c' line='634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='u_audio_get_volume'>
+        <parameter type-id='36cb26c7' name='audio_dev' filepath='drivers/usb/gadget/function/u_audio.c' line='634' column='1'/>
+        <parameter type-id='95e97e5e' name='playback' filepath='drivers/usb/gadget/function/u_audio.c' line='634' column='1'/>
+        <parameter type-id='81ac2ac5' name='val' filepath='drivers/usb/gadget/function/u_audio.c' line='634' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='u_audio_set_mute' mangled-name='u_audio_set_mute' filepath='drivers/usb/gadget/function/u_audio.c' line='700' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='u_audio_set_mute'>
+        <parameter type-id='36cb26c7' name='audio_dev' filepath='drivers/usb/gadget/function/u_audio.c' line='700' column='1'/>
+        <parameter type-id='95e97e5e' name='playback' filepath='drivers/usb/gadget/function/u_audio.c' line='700' column='1'/>
+        <parameter type-id='95e97e5e' name='val' filepath='drivers/usb/gadget/function/u_audio.c' line='700' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='u_audio_set_volume' mangled-name='u_audio_set_volume' filepath='drivers/usb/gadget/function/u_audio.c' line='653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='u_audio_set_volume'>
+        <parameter type-id='36cb26c7' name='audio_dev' filepath='drivers/usb/gadget/function/u_audio.c' line='653' column='1'/>
+        <parameter type-id='95e97e5e' name='playback' filepath='drivers/usb/gadget/function/u_audio.c' line='653' column='1'/>
+        <parameter type-id='9b7e9486' name='val' filepath='drivers/usb/gadget/function/u_audio.c' line='653' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='u_audio_start_capture' mangled-name='u_audio_start_capture' filepath='drivers/usb/gadget/function/u_audio.c' line='468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='u_audio_start_capture'>
+        <parameter type-id='36cb26c7' name='audio_dev' filepath='drivers/usb/gadget/function/u_audio.c' line='468' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='u_audio_start_playback' mangled-name='u_audio_start_playback' filepath='drivers/usb/gadget/function/u_audio.c' line='557' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='u_audio_start_playback'>
+        <parameter type-id='36cb26c7' name='audio_dev' filepath='drivers/usb/gadget/function/u_audio.c' line='557' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='u_audio_stop_capture' mangled-name='u_audio_stop_capture' filepath='drivers/usb/gadget/function/u_audio.c' line='547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='u_audio_stop_capture'>
+        <parameter type-id='36cb26c7' name='audio_dev' filepath='drivers/usb/gadget/function/u_audio.c' line='547' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='u_audio_stop_playback' mangled-name='u_audio_stop_playback' filepath='drivers/usb/gadget/function/u_audio.c' line='626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='u_audio_stop_playback'>
+        <parameter type-id='36cb26c7' name='audio_dev' filepath='drivers/usb/gadget/function/u_audio.c' line='626' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='uart_add_one_port' mangled-name='uart_add_one_port' filepath='drivers/tty/serial/serial_core.c' line='2910' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_add_one_port'>
+        <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2910' column='1'/>
+        <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='2910' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='uart_console_device' mangled-name='uart_console_device' filepath='drivers/tty/serial/serial_core.c' line='2667' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_console_device'>
+        <parameter type-id='b9aa0100' name='co' filepath='drivers/tty/serial/serial_core.c' line='2667' column='1'/>
+        <parameter type-id='7292109c' name='index' filepath='drivers/tty/serial/serial_core.c' line='2667' column='1'/>
+        <return type-id='c2b4b27b'/>
+      </function-decl>
+      <function-decl name='uart_console_write' mangled-name='uart_console_write' filepath='drivers/tty/serial/serial_core.c' line='1962' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_console_write'>
+        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='1962' column='1'/>
+        <parameter type-id='80f4b756' name='s' filepath='drivers/tty/serial/serial_core.c' line='1962' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='drivers/tty/serial/serial_core.c' line='1963' column='1'/>
+        <parameter type-id='c6b7d75f' name='putchar' filepath='drivers/tty/serial/serial_core.c' line='1964' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='uart_get_baud_rate' mangled-name='uart_get_baud_rate' filepath='drivers/tty/serial/serial_core.c' line='369' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_get_baud_rate'>
+        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='369' column='1'/>
+        <parameter type-id='e55856e5' name='termios' filepath='drivers/tty/serial/serial_core.c' line='369' column='1'/>
+        <parameter type-id='e55856e5' name='old' filepath='drivers/tty/serial/serial_core.c' line='370' column='1'/>
+        <parameter type-id='f0981eeb' name='min' filepath='drivers/tty/serial/serial_core.c' line='370' column='1'/>
+        <parameter type-id='f0981eeb' name='max' filepath='drivers/tty/serial/serial_core.c' line='370' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='uart_get_divisor' mangled-name='uart_get_divisor' filepath='drivers/tty/serial/serial_core.c' line='459' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_get_divisor'>
+        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='459' column='1'/>
+        <parameter type-id='f0981eeb' name='baud' filepath='drivers/tty/serial/serial_core.c' line='459' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='uart_get_rs485_mode' mangled-name='uart_get_rs485_mode' filepath='drivers/tty/serial/serial_core.c' line='3271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_get_rs485_mode'>
+        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='3271' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='uart_handle_cts_change' mangled-name='uart_handle_cts_change' filepath='drivers/tty/serial/serial_core.c' line='3151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_handle_cts_change'>
+        <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='3151' column='1'/>
+        <parameter type-id='f0981eeb' name='status' filepath='drivers/tty/serial/serial_core.c' line='3151' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='uart_handle_dcd_change' mangled-name='uart_handle_dcd_change' filepath='drivers/tty/serial/serial_core.c' line='3116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_handle_dcd_change'>
+        <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='3116' column='1'/>
+        <parameter type-id='f0981eeb' name='status' filepath='drivers/tty/serial/serial_core.c' line='3116' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='uart_insert_char' mangled-name='uart_insert_char' filepath='drivers/tty/serial/serial_core.c' line='3187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_insert_char'>
+        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='3187' column='1'/>
+        <parameter type-id='f0981eeb' name='status' filepath='drivers/tty/serial/serial_core.c' line='3187' column='1'/>
+        <parameter type-id='f0981eeb' name='overrun' filepath='drivers/tty/serial/serial_core.c' line='3188' column='1'/>
+        <parameter type-id='f0981eeb' name='ch' filepath='drivers/tty/serial/serial_core.c' line='3188' column='1'/>
+        <parameter type-id='f0981eeb' name='flag' filepath='drivers/tty/serial/serial_core.c' line='3188' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='uart_parse_options' mangled-name='uart_parse_options' filepath='drivers/tty/serial/serial_core.c' line='2073' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_parse_options'>
+        <parameter type-id='80f4b756' name='options' filepath='drivers/tty/serial/serial_core.c' line='2073' column='1'/>
+        <parameter type-id='7292109c' name='baud' filepath='drivers/tty/serial/serial_core.c' line='2073' column='1'/>
+        <parameter type-id='7292109c' name='parity' filepath='drivers/tty/serial/serial_core.c' line='2073' column='1'/>
+        <parameter type-id='7292109c' name='bits' filepath='drivers/tty/serial/serial_core.c' line='2074' column='1'/>
+        <parameter type-id='7292109c' name='flow' filepath='drivers/tty/serial/serial_core.c' line='2074' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='uart_register_driver' mangled-name='uart_register_driver' filepath='drivers/tty/serial/serial_core.c' line='2584' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_register_driver'>
+        <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2584' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='uart_remove_one_port' mangled-name='uart_remove_one_port' filepath='drivers/tty/serial/serial_core.c' line='3012' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_remove_one_port'>
+        <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='3012' column='1'/>
+        <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='3012' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='uart_resume_port' mangled-name='uart_resume_port' filepath='drivers/tty/serial/serial_core.c' line='2258' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_resume_port'>
+        <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2258' column='1'/>
+        <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='2258' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='uart_set_options' mangled-name='uart_set_options' filepath='drivers/tty/serial/serial_core.c' line='2100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_set_options'>
+        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='2100' column='1'/>
+        <parameter type-id='b9aa0100' name='co' filepath='drivers/tty/serial/serial_core.c' line='2100' column='1'/>
+        <parameter type-id='95e97e5e' name='baud' filepath='drivers/tty/serial/serial_core.c' line='2101' column='1'/>
+        <parameter type-id='95e97e5e' name='parity' filepath='drivers/tty/serial/serial_core.c' line='2101' column='1'/>
+        <parameter type-id='95e97e5e' name='bits' filepath='drivers/tty/serial/serial_core.c' line='2101' column='1'/>
+        <parameter type-id='95e97e5e' name='flow' filepath='drivers/tty/serial/serial_core.c' line='2101' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='uart_suspend_port' mangled-name='uart_suspend_port' filepath='drivers/tty/serial/serial_core.c' line='2195' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_suspend_port'>
+        <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2195' column='1'/>
+        <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='2195' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='uart_try_toggle_sysrq' mangled-name='uart_try_toggle_sysrq' filepath='drivers/tty/serial/serial_core.c' line='3230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_try_toggle_sysrq'>
+        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='3230' column='1'/>
+        <parameter type-id='f0981eeb' name='ch' filepath='drivers/tty/serial/serial_core.c' line='3230' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='uart_unregister_driver' mangled-name='uart_unregister_driver' filepath='drivers/tty/serial/serial_core.c' line='2653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_unregister_driver'>
+        <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2653' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='uart_update_timeout' mangled-name='uart_update_timeout' filepath='drivers/tty/serial/serial_core.c' line='333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_update_timeout'>
+        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='333' column='1'/>
+        <parameter type-id='f0981eeb' name='cflag' filepath='drivers/tty/serial/serial_core.c' line='333' column='1'/>
+        <parameter type-id='f0981eeb' name='baud' filepath='drivers/tty/serial/serial_core.c' line='334' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='uart_write_wakeup' mangled-name='uart_write_wakeup' filepath='drivers/tty/serial/serial_core.c' line='103' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_write_wakeup'>
+        <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='103' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='uclamp_eff_value' mangled-name='uclamp_eff_value' filepath='kernel/sched/core.c' line='1504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uclamp_eff_value'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='1504' column='1'/>
+        <parameter type-id='db819146' name='clamp_id' filepath='kernel/sched/core.c' line='1504' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='ucsi_connector_change' mangled-name='ucsi_connector_change' filepath='drivers/usb/typec/ucsi/ucsi.c' line='848' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ucsi_connector_change'>
+        <parameter type-id='2c25e09d' name='ucsi' filepath='drivers/usb/typec/ucsi/ucsi.c' line='848' column='1'/>
+        <parameter type-id='f9b06939' name='num' filepath='drivers/usb/typec/ucsi/ucsi.c' line='848' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ucsi_create' mangled-name='ucsi_create' filepath='drivers/usb/typec/ucsi/ucsi.c' line='1321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ucsi_create'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/typec/ucsi/ucsi.c' line='1321' column='1'/>
+        <parameter type-id='0749da8f' name='ops' filepath='drivers/usb/typec/ucsi/ucsi.c' line='1321' column='1'/>
+        <return type-id='2c25e09d'/>
+      </function-decl>
+      <function-decl name='ucsi_destroy' mangled-name='ucsi_destroy' filepath='drivers/usb/typec/ucsi/ucsi.c' line='1347' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ucsi_destroy'>
+        <parameter type-id='2c25e09d' name='ucsi' filepath='drivers/usb/typec/ucsi/ucsi.c' line='1347' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ucsi_get_drvdata' mangled-name='ucsi_get_drvdata' filepath='drivers/usb/typec/ucsi/ucsi.c' line='1299' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ucsi_get_drvdata'>
+        <parameter type-id='2c25e09d' name='ucsi' filepath='drivers/usb/typec/ucsi/ucsi.c' line='1299' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='ucsi_register' mangled-name='ucsi_register' filepath='drivers/usb/typec/ucsi/ucsi.c' line='1359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ucsi_register'>
+        <parameter type-id='2c25e09d' name='ucsi' filepath='drivers/usb/typec/ucsi/ucsi.c' line='1359' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ucsi_send_command' mangled-name='ucsi_send_command' filepath='drivers/usb/typec/ucsi/ucsi.c' line='153' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ucsi_send_command'>
+        <parameter type-id='2c25e09d' name='ucsi' filepath='drivers/usb/typec/ucsi/ucsi.c' line='153' column='1'/>
+        <parameter type-id='91ce1af9' name='command' filepath='drivers/usb/typec/ucsi/ucsi.c' line='153' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/usb/typec/ucsi/ucsi.c' line='154' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/usb/typec/ucsi/ucsi.c' line='154' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ucsi_set_drvdata' mangled-name='ucsi_set_drvdata' filepath='drivers/usb/typec/ucsi/ucsi.c' line='1310' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ucsi_set_drvdata'>
+        <parameter type-id='2c25e09d' name='ucsi' filepath='drivers/usb/typec/ucsi/ucsi.c' line='1310' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/usb/typec/ucsi/ucsi.c' line='1310' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ucsi_unregister' mangled-name='ucsi_unregister' filepath='drivers/usb/typec/ucsi/ucsi.c' line='1385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ucsi_unregister'>
+        <parameter type-id='2c25e09d' name='ucsi' filepath='drivers/usb/typec/ucsi/ucsi.c' line='1385' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='udp4_hwcsum' mangled-name='udp4_hwcsum' filepath='net/ipv4/udp.c' line='827' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='udp4_hwcsum'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv4/udp.c' line='827' column='1'/>
+        <parameter type-id='78a133c2' name='src' filepath='net/ipv4/udp.c' line='827' column='1'/>
+        <parameter type-id='78a133c2' name='dst' filepath='net/ipv4/udp.c' line='827' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='udp_table' type-id='9a516b13' mangled-name='udp_table' visibility='default' filepath='net/ipv4/udp.c' line='120' column='1' elf-symbol-id='udp_table'/>
+      <function-decl name='ufshcd_add_command_trace' mangled-name='ufshcd_add_command_trace' filepath='drivers/scsi/ufs/ufshcd.c' line='387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_add_command_trace'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='387' column='1'/>
+        <parameter type-id='f0981eeb' name='tag' filepath='drivers/scsi/ufs/ufshcd.c' line='387' column='1'/>
+        <parameter type-id='b5952621' name='str_t' filepath='drivers/scsi/ufs/ufshcd.c' line='388' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ufshcd_alloc_host' mangled-name='ufshcd_alloc_host' filepath='drivers/scsi/ufs/ufshcd.c' line='9599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_alloc_host'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9599' column='1'/>
+        <parameter type-id='f38ff799' name='hba_handle' filepath='drivers/scsi/ufs/ufshcd.c' line='9599' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_auto_hibern8_update' mangled-name='ufshcd_auto_hibern8_update' filepath='drivers/scsi/ufs/ufshcd.c' line='4240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_auto_hibern8_update'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4240' column='1'/>
+        <parameter type-id='19c2251e' name='ahit' filepath='drivers/scsi/ufs/ufshcd.c' line='4240' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ufshcd_bkops_ctrl' mangled-name='ufshcd_bkops_ctrl' filepath='drivers/scsi/ufs/ufshcd.c' line='5651' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_bkops_ctrl'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='5651' column='1'/>
+        <parameter type-id='462d2624' name='status' filepath='drivers/scsi/ufs/ufshcd.c' line='5652' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_clk_scaling_start_busy' mangled-name='ufshcd_clk_scaling_start_busy' filepath='drivers/scsi/ufs/ufshcd.c' line='2020' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_clk_scaling_start_busy'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='2020' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ufshcd_clk_scaling_update_busy' mangled-name='ufshcd_clk_scaling_update_busy' filepath='drivers/scsi/ufs/ufshcd.c' line='2056' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_clk_scaling_update_busy'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='2056' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ufshcd_config_pwr_mode' mangled-name='ufshcd_config_pwr_mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_config_pwr_mode'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4450' column='1'/>
+        <parameter type-id='35f4156d' name='desired_pwr_mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4451' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_dealloc_host' mangled-name='ufshcd_dealloc_host' filepath='drivers/scsi/ufs/ufshcd.c' line='9571' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dealloc_host'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='9571' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ufshcd_delay_us' mangled-name='ufshcd_delay_us' filepath='drivers/scsi/ufs/ufshcd.c' line='641' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_delay_us'>
+        <parameter type-id='7359adad' name='us' filepath='drivers/scsi/ufs/ufshcd.c' line='641' column='1'/>
+        <parameter type-id='7359adad' name='tolerance' filepath='drivers/scsi/ufs/ufshcd.c' line='641' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ufshcd_dme_configure_adapt' mangled-name='ufshcd_dme_configure_adapt' filepath='drivers/scsi/ufs/ufshcd.c' line='3838' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dme_configure_adapt'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3838' column='1'/>
+        <parameter type-id='95e97e5e' name='agreed_gear' filepath='drivers/scsi/ufs/ufshcd.c' line='3839' column='1'/>
+        <parameter type-id='95e97e5e' name='adapt_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3840' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_dme_get_attr' mangled-name='ufshcd_dme_get_attr' filepath='drivers/scsi/ufs/ufshcd.c' line='3962' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dme_get_attr'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3962' column='1'/>
+        <parameter type-id='19c2251e' name='attr_sel' filepath='drivers/scsi/ufs/ufshcd.c' line='3962' column='1'/>
+        <parameter type-id='f9409001' name='mib_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3963' column='1'/>
+        <parameter type-id='f9b06939' name='peer' filepath='drivers/scsi/ufs/ufshcd.c' line='3963' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_dme_set_attr' mangled-name='ufshcd_dme_set_attr' filepath='drivers/scsi/ufs/ufshcd.c' line='3918' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dme_set_attr'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3918' column='1'/>
+        <parameter type-id='19c2251e' name='attr_sel' filepath='drivers/scsi/ufs/ufshcd.c' line='3918' column='1'/>
+        <parameter type-id='f9b06939' name='attr_set' filepath='drivers/scsi/ufs/ufshcd.c' line='3919' column='1'/>
+        <parameter type-id='19c2251e' name='mib_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3919' column='1'/>
+        <parameter type-id='f9b06939' name='peer' filepath='drivers/scsi/ufs/ufshcd.c' line='3919' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_dump_regs' mangled-name='ufshcd_dump_regs' filepath='drivers/scsi/ufs/ufshcd.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dump_regs'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='114' column='1'/>
+        <parameter type-id='b59d7dce' name='offset' filepath='drivers/scsi/ufs/ufshcd.c' line='114' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='drivers/scsi/ufs/ufshcd.c' line='114' column='1'/>
+        <parameter type-id='80f4b756' name='prefix' filepath='drivers/scsi/ufs/ufshcd.c' line='115' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_fixup_dev_quirks' mangled-name='ufshcd_fixup_dev_quirks' filepath='drivers/scsi/ufs/ufshcd.c' line='7631' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_fixup_dev_quirks'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='7631' column='1'/>
+        <parameter type-id='c5251c27' name='fixups' filepath='drivers/scsi/ufs/ufshcd.c' line='7631' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ufshcd_get_local_unipro_ver' mangled-name='ufshcd_get_local_unipro_ver' filepath='drivers/scsi/ufs/ufshcd.c' line='945' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_get_local_unipro_ver'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='945' column='1'/>
+        <return type-id='19c2251e'/>
+      </function-decl>
+      <function-decl name='ufshcd_get_pwr_dev_param' mangled-name='ufshcd_get_pwr_dev_param' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='222' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_get_pwr_dev_param'>
+        <parameter type-id='9c02cf50' name='pltfrm_param' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='222' column='1'/>
+        <parameter type-id='35f4156d' name='dev_max' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='223' column='1'/>
+        <parameter type-id='35f4156d' name='agreed_pwr' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='224' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_get_vreg' mangled-name='ufshcd_get_vreg' filepath='drivers/scsi/ufs/ufshcd.c' line='8418' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_get_vreg'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='8418' column='1'/>
+        <parameter type-id='ae670bfa' name='vreg' filepath='drivers/scsi/ufs/ufshcd.c' line='8418' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_hba_enable' mangled-name='ufshcd_hba_enable' filepath='drivers/scsi/ufs/ufshcd.c' line='4666' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_hba_enable'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4666' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_hba_stop' mangled-name='ufshcd_hba_stop' filepath='drivers/scsi/ufs/ufshcd.c' line='4580' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_hba_stop'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4580' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ufshcd_hold' mangled-name='ufshcd_hold' filepath='drivers/scsi/ufs/ufshcd.c' line='1706' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_hold'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='1706' column='1'/>
+        <parameter type-id='b50a4934' name='async' filepath='drivers/scsi/ufs/ufshcd.c' line='1706' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_init_pwr_dev_param' mangled-name='ufshcd_init_pwr_dev_param' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='310' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_init_pwr_dev_param'>
+        <parameter type-id='9c02cf50' name='dev_param' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='310' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ufshcd_link_recovery' mangled-name='ufshcd_link_recovery' filepath='drivers/scsi/ufs/ufshcd.c' line='4160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_link_recovery'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4160' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_make_hba_operational' mangled-name='ufshcd_make_hba_operational' filepath='drivers/scsi/ufs/ufshcd.c' line='4525' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_make_hba_operational'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4525' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_map_desc_id_to_length' mangled-name='ufshcd_map_desc_id_to_length' filepath='drivers/scsi/ufs/ufshcd.c' line='3372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_map_desc_id_to_length'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3372' column='1'/>
+        <parameter type-id='32c9d5cb' name='desc_id' filepath='drivers/scsi/ufs/ufshcd.c' line='3372' column='1'/>
+        <parameter type-id='7292109c' name='desc_len' filepath='drivers/scsi/ufs/ufshcd.c' line='3373' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ufshcd_pltfrm_init' mangled-name='ufshcd_pltfrm_init' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_pltfrm_init'>
+        <parameter type-id='db362995' name='pdev' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='334' column='1'/>
+        <parameter type-id='52ab0d0f' name='vops' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='335' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_pltfrm_shutdown' mangled-name='ufshcd_pltfrm_shutdown' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_pltfrm_shutdown'>
+        <parameter type-id='db362995' name='pdev' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='192' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ufshcd_populate_vreg' mangled-name='ufshcd_populate_vreg' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='122' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_populate_vreg'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='122' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='122' column='1'/>
+        <parameter type-id='5c379870' name='out_vreg' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='123' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_query_attr' mangled-name='ufshcd_query_attr' filepath='drivers/scsi/ufs/ufshcd.c' line='3179' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_attr'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3179' column='1'/>
+        <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3179' column='1'/>
+        <parameter type-id='75eb1735' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3180' column='1'/>
+        <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3180' column='1'/>
+        <parameter type-id='f9b06939' name='selector' filepath='drivers/scsi/ufs/ufshcd.c' line='3180' column='1'/>
+        <parameter type-id='f9409001' name='attr_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3180' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_query_attr_retry' mangled-name='ufshcd_query_attr_retry' filepath='drivers/scsi/ufs/ufshcd.c' line='3245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_attr_retry'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3245' column='1'/>
+        <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3246' column='1'/>
+        <parameter type-id='75eb1735' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3246' column='1'/>
+        <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3246' column='1'/>
+        <parameter type-id='f9b06939' name='selector' filepath='drivers/scsi/ufs/ufshcd.c' line='3246' column='1'/>
+        <parameter type-id='f9409001' name='attr_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3247' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_query_descriptor_retry' mangled-name='ufshcd_query_descriptor_retry' filepath='drivers/scsi/ufs/ufshcd.c' line='3346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_descriptor_retry'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3346' column='1'/>
+        <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3347' column='1'/>
+        <parameter type-id='32c9d5cb' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3348' column='1'/>
+        <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3348' column='1'/>
+        <parameter type-id='f9b06939' name='selector' filepath='drivers/scsi/ufs/ufshcd.c' line='3349' column='1'/>
+        <parameter type-id='8bff8096' name='desc_buf' filepath='drivers/scsi/ufs/ufshcd.c' line='3350' column='1'/>
+        <parameter type-id='7292109c' name='buf_len' filepath='drivers/scsi/ufs/ufshcd.c' line='3350' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_query_flag' mangled-name='ufshcd_query_flag' filepath='drivers/scsi/ufs/ufshcd.c' line='3109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_flag'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3109' column='1'/>
+        <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3109' column='1'/>
+        <parameter type-id='92ace17c' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3110' column='1'/>
+        <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3110' column='1'/>
+        <parameter type-id='d8e6b335' name='flag_res' filepath='drivers/scsi/ufs/ufshcd.c' line='3110' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_query_flag_retry' mangled-name='ufshcd_query_flag_retry' filepath='drivers/scsi/ufs/ufshcd.c' line='3075' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_flag_retry'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3075' column='1'/>
+        <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3076' column='1'/>
+        <parameter type-id='92ace17c' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3076' column='1'/>
+        <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3076' column='1'/>
+        <parameter type-id='d8e6b335' name='flag_res' filepath='drivers/scsi/ufs/ufshcd.c' line='3076' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_read_desc_param' mangled-name='ufshcd_read_desc_param' filepath='drivers/scsi/ufs/ufshcd.c' line='3408' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_read_desc_param'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3408' column='1'/>
+        <parameter type-id='32c9d5cb' name='desc_id' filepath='drivers/scsi/ufs/ufshcd.c' line='3409' column='1'/>
+        <parameter type-id='95e97e5e' name='desc_index' filepath='drivers/scsi/ufs/ufshcd.c' line='3410' column='1'/>
+        <parameter type-id='f9b06939' name='param_offset' filepath='drivers/scsi/ufs/ufshcd.c' line='3411' column='1'/>
+        <parameter type-id='8bff8096' name='param_read_buf' filepath='drivers/scsi/ufs/ufshcd.c' line='3412' column='1'/>
+        <parameter type-id='f9b06939' name='param_size' filepath='drivers/scsi/ufs/ufshcd.c' line='3413' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_release' mangled-name='ufshcd_release' filepath='drivers/scsi/ufs/ufshcd.c' line='1885' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_release'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='1885' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ufshcd_remove' mangled-name='ufshcd_remove' filepath='drivers/scsi/ufs/ufshcd.c' line='9498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_remove'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='9498' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ufshcd_resume_complete' mangled-name='ufshcd_resume_complete' filepath='drivers/scsi/ufs/ufshcd.c' line='9880' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_resume_complete'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9880' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='ufshcd_runtime_resume' mangled-name='ufshcd_runtime_resume' filepath='drivers/scsi/ufs/ufshcd.c' line='9457' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_runtime_resume'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9457' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_runtime_suspend' mangled-name='ufshcd_runtime_suspend' filepath='drivers/scsi/ufs/ufshcd.c' line='9432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_runtime_suspend'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9432' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_shutdown' mangled-name='ufshcd_shutdown' filepath='drivers/scsi/ufs/ufshcd.c' line='9482' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_shutdown'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='9482' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_suspend_prepare' mangled-name='ufshcd_suspend_prepare' filepath='drivers/scsi/ufs/ufshcd.c' line='9891' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_suspend_prepare'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9891' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_system_freeze' mangled-name='ufshcd_system_freeze' filepath='drivers/scsi/ufs/ufshcd.c' line='9518' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_system_freeze'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9518' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_system_restore' mangled-name='ufshcd_system_restore' filepath='drivers/scsi/ufs/ufshcd.c' line='9526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_system_restore'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9526' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_system_resume' mangled-name='ufshcd_system_resume' filepath='drivers/scsi/ufs/ufshcd.c' line='9402' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_system_resume'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9402' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_system_suspend' mangled-name='ufshcd_system_suspend' filepath='drivers/scsi/ufs/ufshcd.c' line='9375' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_system_suspend'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9375' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_system_thaw' mangled-name='ufshcd_system_thaw' filepath='drivers/scsi/ufs/ufshcd.c' line='9560' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_system_thaw'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9560' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_transfer_rsp_status' mangled-name='ufshcd_transfer_rsp_status' filepath='drivers/scsi/ufs/ufshcd.c' line='5190' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_transfer_rsp_status'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='5190' column='1'/>
+        <parameter type-id='6ca6fa6d' name='lrbp' filepath='drivers/scsi/ufs/ufshcd.c' line='5190' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_uic_change_pwr_mode' mangled-name='ufshcd_uic_change_pwr_mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4133' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_uic_change_pwr_mode'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4133' column='1'/>
+        <parameter type-id='f9b06939' name='mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4133' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_uic_hibern8_enter' mangled-name='ufshcd_uic_hibern8_enter' filepath='drivers/scsi/ufs/ufshcd.c' line='4189' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_uic_hibern8_enter'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4189' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_uic_hibern8_exit' mangled-name='ufshcd_uic_hibern8_exit' filepath='drivers/scsi/ufs/ufshcd.c' line='4213' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_uic_hibern8_exit'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4213' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ufshcd_update_evt_hist' mangled-name='ufshcd_update_evt_hist' filepath='drivers/scsi/ufs/ufshcd.c' line='4729' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_update_evt_hist'>
+        <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4729' column='1'/>
+        <parameter type-id='19c2251e' name='id' filepath='drivers/scsi/ufs/ufshcd.c' line='4729' column='1'/>
+        <parameter type-id='19c2251e' name='val' filepath='drivers/scsi/ufs/ufshcd.c' line='4729' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='uio_unregister_device' mangled-name='uio_unregister_device' filepath='drivers/uio/uio.c' line='1042' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uio_unregister_device'>
+        <parameter type-id='fb1092f1' name='info' filepath='drivers/uio/uio.c' line='1042' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unload_nls' mangled-name='unload_nls' filepath='fs/nls/nls_base.c' line='296' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unload_nls'>
+        <parameter type-id='b084f8bb' name='nls' filepath='fs/nls/nls_base.c' line='296' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unlock_buffer' mangled-name='unlock_buffer' filepath='fs/buffer.c' line='73' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unlock_buffer'>
+        <parameter type-id='c485c22c' name='bh' filepath='fs/buffer.c' line='73' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unlock_new_inode' mangled-name='unlock_new_inode' filepath='fs/inode.c' line='1001' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unlock_new_inode'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='1001' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unlock_page' mangled-name='unlock_page' filepath='mm/filemap.c' line='1507' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unlock_page'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/filemap.c' line='1507' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unmap_mapping_range' mangled-name='unmap_mapping_range' filepath='mm/memory.c' line='3625' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unmap_mapping_range'>
+        <parameter type-id='f57039f0' name='mapping' filepath='mm/memory.c' line='3625' column='1'/>
+        <parameter type-id='bf352dfe' name='holebegin' filepath='mm/memory.c' line='3626' column='1'/>
+        <parameter type-id='bf352dfe' name='holelen' filepath='mm/memory.c' line='3626' column='1'/>
+        <parameter type-id='95e97e5e' name='even_cows' filepath='mm/memory.c' line='3626' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unpin_user_page' mangled-name='unpin_user_page' filepath='mm/gup.c' line='251' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unpin_user_page'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/gup.c' line='251' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unpin_user_pages' mangled-name='unpin_user_pages' filepath='mm/gup.c' line='416' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unpin_user_pages'>
+        <parameter type-id='9f93c9da' name='pages' filepath='mm/gup.c' line='416' column='1'/>
+        <parameter type-id='7359adad' name='npages' filepath='mm/gup.c' line='416' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unpin_user_pages_dirty_lock' mangled-name='unpin_user_pages_dirty_lock' filepath='mm/gup.c' line='331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unpin_user_pages_dirty_lock'>
+        <parameter type-id='9f93c9da' name='pages' filepath='mm/gup.c' line='331' column='1'/>
+        <parameter type-id='7359adad' name='npages' filepath='mm/gup.c' line='331' column='1'/>
+        <parameter type-id='b50a4934' name='make_dirty' filepath='mm/gup.c' line='332' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_blkdev' mangled-name='unregister_blkdev' filepath='block/genhd.c' line='299' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_blkdev'>
+        <parameter type-id='f0981eeb' name='major' filepath='block/genhd.c' line='299' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='block/genhd.c' line='299' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_candev' mangled-name='unregister_candev' filepath='drivers/net/can/dev/dev.c' line='496' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_candev'>
+        <parameter type-id='68a2d05b' name='dev' filepath='drivers/net/can/dev/dev.c' line='496' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_chrdev_region' mangled-name='unregister_chrdev_region' filepath='fs/char_dev.c' line='311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_chrdev_region'>
+        <parameter type-id='8504f260' name='from' filepath='fs/char_dev.c' line='311' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='fs/char_dev.c' line='311' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_console' mangled-name='unregister_console' filepath='kernel/printk/printk.c' line='3116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_console'>
+        <parameter type-id='b9aa0100' name='console' filepath='kernel/printk/printk.c' line='3116' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='unregister_die_notifier' mangled-name='unregister_die_notifier' filepath='kernel/notifier.c' line='539' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_die_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='kernel/notifier.c' line='539' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='unregister_filesystem' mangled-name='unregister_filesystem' filepath='fs/filesystems.c' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_filesystem'>
+        <parameter type-id='21e53d44' name='fs' filepath='fs/filesystems.c' line='108' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='unregister_ftrace_export' mangled-name='unregister_ftrace_export' filepath='kernel/trace/trace.c' line='405' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_ftrace_export'>
+        <parameter type-id='15dccca9' name='export' filepath='kernel/trace/trace.c' line='405' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='unregister_inet6addr_notifier' mangled-name='unregister_inet6addr_notifier' filepath='net/ipv6/addrconf_core.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_inet6addr_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='net/ipv6/addrconf_core.c' line='101' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='unregister_inetaddr_notifier' mangled-name='unregister_inetaddr_notifier' filepath='net/ipv4/devinet.c' line='1456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_inetaddr_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='net/ipv4/devinet.c' line='1456' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='unregister_key_type' mangled-name='unregister_key_type' filepath='security/keys/key.c' line='1187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_key_type'>
+        <parameter type-id='d0a699d1' name='ktype' filepath='security/keys/key.c' line='1187' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_kprobe' mangled-name='unregister_kprobe' filepath='kernel/kprobes.c' line='1823' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_kprobe'>
+        <parameter type-id='0d97a11a' name='p' filepath='kernel/kprobes.c' line='1823' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_kretprobe' mangled-name='unregister_kretprobe' filepath='kernel/kprobes.c' line='2076' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_kretprobe'>
+        <parameter type-id='d15edd25' name='rp' filepath='kernel/kprobes.c' line='2076' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_memory_notifier' mangled-name='unregister_memory_notifier' filepath='drivers/base/memory.c' line='99' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_memory_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/base/memory.c' line='99' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_module_notifier' mangled-name='unregister_module_notifier' filepath='kernel/module.c' line='311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_module_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='kernel/module.c' line='311' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='unregister_net_sysctl_table' mangled-name='unregister_net_sysctl_table' filepath='net/sysctl_net.c' line='173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_net_sysctl_table'>
+        <parameter type-id='11b101bb' name='header' filepath='net/sysctl_net.c' line='173' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_netdev' mangled-name='unregister_netdev' filepath='net/core/dev.c' line='11138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_netdev'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='11138' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_netdevice_many' mangled-name='unregister_netdevice_many' filepath='net/core/dev.c' line='11027' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_netdevice_many'>
+        <parameter type-id='e84b031a' name='head' filepath='net/core/dev.c' line='11027' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_netdevice_notifier' mangled-name='unregister_netdevice_notifier' filepath='net/core/dev.c' line='1827' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_netdevice_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='net/core/dev.c' line='1827' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='unregister_netdevice_queue' mangled-name='unregister_netdevice_queue' filepath='net/core/dev.c' line='11005' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_netdevice_queue'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='11005' column='1'/>
+        <parameter type-id='e84b031a' name='head' filepath='net/core/dev.c' line='11005' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_netevent_notifier' mangled-name='unregister_netevent_notifier' filepath='net/core/netevent.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_netevent_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='net/core/netevent.c' line='44' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='unregister_oom_notifier' mangled-name='unregister_oom_notifier' filepath='mm/oom_kill.c' line='1081' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_oom_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='mm/oom_kill.c' line='1081' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='unregister_pernet_device' mangled-name='unregister_pernet_device' filepath='net/core/net_namespace.c' line='1320' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_pernet_device'>
+        <parameter type-id='d6907f4c' name='ops' filepath='net/core/net_namespace.c' line='1320' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_pernet_subsys' mangled-name='unregister_pernet_subsys' filepath='net/core/net_namespace.c' line='1272' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_pernet_subsys'>
+        <parameter type-id='d6907f4c' name='ops' filepath='net/core/net_namespace.c' line='1272' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_pm_notifier' mangled-name='unregister_pm_notifier' filepath='kernel/power/main.c' line='77' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_pm_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='kernel/power/main.c' line='77' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='unregister_pppox_proto' mangled-name='unregister_pppox_proto' filepath='drivers/net/ppp/pppox.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_pppox_proto'>
+        <parameter type-id='95e97e5e' name='proto_num' filepath='drivers/net/ppp/pppox.c' line='47' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_qdisc' mangled-name='unregister_qdisc' filepath='net/sched/sch_api.c' line='174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_qdisc'>
+        <parameter type-id='d6369c88' name='qops' filepath='net/sched/sch_api.c' line='174' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='unregister_reboot_notifier' mangled-name='unregister_reboot_notifier' filepath='kernel/reboot.c' line='107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_reboot_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='kernel/reboot.c' line='107' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='unregister_restart_handler' mangled-name='unregister_restart_handler' filepath='kernel/reboot.c' line='199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_restart_handler'>
+        <parameter type-id='d504f73d' name='nb' filepath='kernel/reboot.c' line='199' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='unregister_rpmsg_driver' mangled-name='unregister_rpmsg_driver' filepath='drivers/rpmsg/rpmsg_core.c' line='696' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_rpmsg_driver'>
+        <parameter type-id='7331a99f' name='rpdrv' filepath='drivers/rpmsg/rpmsg_core.c' line='696' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_shrinker' mangled-name='unregister_shrinker' filepath='mm/vmscan.c' line='689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_shrinker'>
+        <parameter type-id='4be14597' name='shrinker' filepath='mm/vmscan.c' line='689' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_syscore_ops' mangled-name='unregister_syscore_ops' filepath='drivers/base/syscore.c' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_syscore_ops'>
+        <parameter type-id='cbd24a98' name='ops' filepath='drivers/base/syscore.c' line='34' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_sysctl_table' mangled-name='unregister_sysctl_table' filepath='fs/proc/proc_sysctl.c' line='1695' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_sysctl_table'>
+        <parameter type-id='11b101bb' name='header' filepath='fs/proc/proc_sysctl.c' line='1695' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_tcf_proto_ops' mangled-name='unregister_tcf_proto_ops' filepath='net/sched/cls_api.c' line='178' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_tcf_proto_ops'>
+        <parameter type-id='84c1f5fe' name='ops' filepath='net/sched/cls_api.c' line='178' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='unregister_virtio_device' mangled-name='unregister_virtio_device' filepath='drivers/virtio/virtio.c' line='445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_virtio_device'>
+        <parameter type-id='5dbfcbb1' name='dev' filepath='drivers/virtio/virtio.c' line='445' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_virtio_driver' mangled-name='unregister_virtio_driver' filepath='drivers/virtio/virtio.c' line='329' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_virtio_driver'>
+        <parameter type-id='f350dc99' name='driver' filepath='drivers/virtio/virtio.c' line='329' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='unregister_vmap_purge_notifier' mangled-name='unregister_vmap_purge_notifier' filepath='mm/vmalloc.c' line='1613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_vmap_purge_notifier'>
+        <parameter type-id='d504f73d' name='nb' filepath='mm/vmalloc.c' line='1613' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='unregister_wide_hw_breakpoint' mangled-name='unregister_wide_hw_breakpoint' filepath='kernel/events/hw_breakpoint.c' line='596' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_wide_hw_breakpoint'>
+        <parameter type-id='a0127209' name='cpu_events' filepath='kernel/events/hw_breakpoint.c' line='596' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='up' mangled-name='up' filepath='kernel/locking/semaphore.c' line='182' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='up'>
+        <parameter type-id='a965a5b5' name='sem' filepath='kernel/locking/semaphore.c' line='182' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='up_read' mangled-name='up_read' filepath='kernel/locking/rwsem.c' line='1640' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='up_read'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1640' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='up_write' mangled-name='up_write' filepath='kernel/locking/rwsem.c' line='1650' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='up_write'>
+        <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1650' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='update_devfreq' mangled-name='update_devfreq' filepath='drivers/devfreq/devfreq.c' line='445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='update_devfreq'>
+        <parameter type-id='f66fa7f4' name='devfreq' filepath='drivers/devfreq/devfreq.c' line='445' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='update_rq_clock' mangled-name='update_rq_clock' filepath='kernel/sched/core.c' line='684' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='update_rq_clock'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='684' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_add_config' mangled-name='usb_add_config' filepath='drivers/usb/gadget/composite.c' line='1013' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_add_config'>
+        <parameter type-id='2a895c01' name='cdev' filepath='drivers/usb/gadget/composite.c' line='1013' column='1'/>
+        <parameter type-id='ee27b7c6' name='config' filepath='drivers/usb/gadget/composite.c' line='1014' column='1'/>
+        <parameter type-id='82b599aa' name='bind' filepath='drivers/usb/gadget/composite.c' line='1015' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_add_function' mangled-name='usb_add_function' filepath='drivers/usb/gadget/composite.c' line='314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_add_function'>
+        <parameter type-id='ee27b7c6' name='config' filepath='drivers/usb/gadget/composite.c' line='314' column='1'/>
+        <parameter type-id='e5411c2c' name='function' filepath='drivers/usb/gadget/composite.c' line='315' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_add_gadget' mangled-name='usb_add_gadget' filepath='drivers/usb/gadget/udc/core.c' line='1296' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_add_gadget'>
+        <parameter type-id='49a58c0c' name='gadget' filepath='drivers/usb/gadget/udc/core.c' line='1296' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_add_gadget_udc' mangled-name='usb_add_gadget_udc' filepath='drivers/usb/gadget/udc/core.c' line='1422' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_add_gadget_udc'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/usb/gadget/udc/core.c' line='1422' column='1'/>
+        <parameter type-id='49a58c0c' name='gadget' filepath='drivers/usb/gadget/udc/core.c' line='1422' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_add_hcd' mangled-name='usb_add_hcd' filepath='drivers/usb/core/hcd.c' line='2814' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_add_hcd'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/core/hcd.c' line='2814' column='1'/>
+        <parameter type-id='f0981eeb' name='irqnum' filepath='drivers/usb/core/hcd.c' line='2815' column='1'/>
+        <parameter type-id='7359adad' name='irqflags' filepath='drivers/usb/core/hcd.c' line='2815' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_add_phy_dev' mangled-name='usb_add_phy_dev' filepath='drivers/usb/phy/phy.c' line='715' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_add_phy_dev'>
+        <parameter type-id='ca9354d1' name='x' filepath='drivers/usb/phy/phy.c' line='715' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_alloc_coherent' mangled-name='usb_alloc_coherent' filepath='drivers/usb/core/usb.c' line='1046' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_alloc_coherent'>
+        <parameter type-id='25e60cb2' name='dev' filepath='drivers/usb/core/usb.c' line='1046' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/usb/core/usb.c' line='1046' column='1'/>
+        <parameter type-id='3eb7c31c' name='mem_flags' filepath='drivers/usb/core/usb.c' line='1046' column='1'/>
+        <parameter type-id='e835b5d8' name='dma' filepath='drivers/usb/core/usb.c' line='1047' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='usb_alloc_dev' mangled-name='usb_alloc_dev' filepath='drivers/usb/core/usb.c' line='696' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_alloc_dev'>
+        <parameter type-id='25e60cb2' name='parent' filepath='drivers/usb/core/usb.c' line='696' column='1'/>
+        <parameter type-id='3ab7d422' name='bus' filepath='drivers/usb/core/usb.c' line='697' column='1'/>
+        <parameter type-id='f0981eeb' name='port1' filepath='drivers/usb/core/usb.c' line='697' column='1'/>
+        <return type-id='25e60cb2'/>
+      </function-decl>
+      <function-decl name='usb_alloc_urb' mangled-name='usb_alloc_urb' filepath='drivers/usb/core/urb.c' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_alloc_urb'>
+        <parameter type-id='95e97e5e' name='iso_packets' filepath='drivers/usb/core/urb.c' line='70' column='1'/>
+        <parameter type-id='3eb7c31c' name='mem_flags' filepath='drivers/usb/core/urb.c' line='70' column='1'/>
+        <return type-id='ab85b8f2'/>
+      </function-decl>
+      <function-decl name='usb_amd_dev_put' mangled-name='usb_amd_dev_put' filepath='drivers/usb/host/pci-quirks.c' line='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_amd_dev_put'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_amd_prefetch_quirk' mangled-name='usb_amd_prefetch_quirk' filepath='drivers/usb/host/pci-quirks.c' line='315' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_amd_prefetch_quirk'>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='usb_amd_quirk_pll_check' mangled-name='usb_amd_quirk_pll_check' filepath='drivers/usb/host/pci-quirks.c' line='323' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_amd_quirk_pll_check'>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='usb_amd_quirk_pll_disable' mangled-name='usb_amd_quirk_pll_disable' filepath='drivers/usb/host/pci-quirks.c' line='457' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_amd_quirk_pll_disable'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_amd_quirk_pll_enable' mangled-name='usb_amd_quirk_pll_enable' filepath='drivers/usb/host/pci-quirks.c' line='507' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_amd_quirk_pll_enable'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_anchor_empty' mangled-name='usb_anchor_empty' filepath='drivers/usb/core/urb.c' line='1046' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_anchor_empty'>
+        <parameter type-id='bd300bf3' name='anchor' filepath='drivers/usb/core/urb.c' line='1046' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_anchor_urb' mangled-name='usb_anchor_urb' filepath='drivers/usb/core/urb.c' line='126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_anchor_urb'>
+        <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/urb.c' line='126' column='1'/>
+        <parameter type-id='bd300bf3' name='anchor' filepath='drivers/usb/core/urb.c' line='126' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_assign_descriptors' mangled-name='usb_assign_descriptors' filepath='drivers/usb/gadget/config.c' line='159' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_assign_descriptors'>
+        <parameter type-id='e5411c2c' name='f' filepath='drivers/usb/gadget/config.c' line='159' column='1'/>
+        <parameter type-id='f363a725' name='fs' filepath='drivers/usb/gadget/config.c' line='160' column='1'/>
+        <parameter type-id='f363a725' name='hs' filepath='drivers/usb/gadget/config.c' line='161' column='1'/>
+        <parameter type-id='f363a725' name='ss' filepath='drivers/usb/gadget/config.c' line='162' column='1'/>
+        <parameter type-id='f363a725' name='ssp' filepath='drivers/usb/gadget/config.c' line='163' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_autopm_get_interface' mangled-name='usb_autopm_get_interface' filepath='drivers/usb/core/driver.c' line='1809' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_autopm_get_interface'>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/usb/core/driver.c' line='1809' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_autopm_get_interface_async' mangled-name='usb_autopm_get_interface_async' filepath='drivers/usb/core/driver.c' line='1842' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_autopm_get_interface_async'>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/usb/core/driver.c' line='1842' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_autopm_get_interface_no_resume' mangled-name='usb_autopm_get_interface_no_resume' filepath='drivers/usb/core/driver.c' line='1867' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_autopm_get_interface_no_resume'>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/usb/core/driver.c' line='1867' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_autopm_put_interface' mangled-name='usb_autopm_put_interface' filepath='drivers/usb/core/driver.c' line='1731' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_autopm_put_interface'>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/usb/core/driver.c' line='1731' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_autopm_put_interface_async' mangled-name='usb_autopm_put_interface_async' filepath='drivers/usb/core/driver.c' line='1759' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_autopm_put_interface_async'>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/usb/core/driver.c' line='1759' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_autopm_put_interface_no_suspend' mangled-name='usb_autopm_put_interface_no_suspend' filepath='drivers/usb/core/driver.c' line='1781' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_autopm_put_interface_no_suspend'>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/usb/core/driver.c' line='1781' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_bulk_msg' mangled-name='usb_bulk_msg' filepath='drivers/usb/core/message.c' line='363' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_bulk_msg'>
+        <parameter type-id='25e60cb2' name='usb_dev' filepath='drivers/usb/core/message.c' line='363' column='1'/>
+        <parameter type-id='f0981eeb' name='pipe' filepath='drivers/usb/core/message.c' line='363' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/usb/core/message.c' line='364' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='drivers/usb/core/message.c' line='364' column='1'/>
+        <parameter type-id='7292109c' name='actual_length' filepath='drivers/usb/core/message.c' line='364' column='1'/>
+        <parameter type-id='95e97e5e' name='timeout' filepath='drivers/usb/core/message.c' line='364' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='usb_bus_idr' type-id='37ce495e' mangled-name='usb_bus_idr' visibility='default' filepath='drivers/usb/core/hcd.c' line='85' column='1' elf-symbol-id='usb_bus_idr'/>
+      <var-decl name='usb_bus_idr_lock' type-id='925167dc' mangled-name='usb_bus_idr_lock' visibility='default' filepath='drivers/usb/core/hcd.c' line='92' column='1' elf-symbol-id='usb_bus_idr_lock'/>
+      <function-decl name='usb_calc_bus_time' mangled-name='usb_calc_bus_time' filepath='drivers/usb/core/hcd.c' line='1094' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_calc_bus_time'>
+        <parameter type-id='95e97e5e' name='speed' filepath='drivers/usb/core/hcd.c' line='1094' column='1'/>
+        <parameter type-id='95e97e5e' name='is_input' filepath='drivers/usb/core/hcd.c' line='1094' column='1'/>
+        <parameter type-id='95e97e5e' name='isoc' filepath='drivers/usb/core/hcd.c' line='1094' column='1'/>
+        <parameter type-id='95e97e5e' name='bytecount' filepath='drivers/usb/core/hcd.c' line='1094' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='usb_choose_configuration' mangled-name='usb_choose_configuration' filepath='drivers/usb/core/generic.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_choose_configuration'>
+        <parameter type-id='25e60cb2' name='udev' filepath='drivers/usb/core/generic.c' line='56' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_clear_halt' mangled-name='usb_clear_halt' filepath='drivers/usb/core/message.c' line='1208' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_clear_halt'>
+        <parameter type-id='25e60cb2' name='dev' filepath='drivers/usb/core/message.c' line='1208' column='1'/>
+        <parameter type-id='95e97e5e' name='pipe' filepath='drivers/usb/core/message.c' line='1208' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_composite_probe' mangled-name='usb_composite_probe' filepath='drivers/usb/gadget/composite.c' line='2493' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_composite_probe'>
+        <parameter type-id='c64e62ba' name='driver' filepath='drivers/usb/gadget/composite.c' line='2493' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_composite_setup_continue' mangled-name='usb_composite_setup_continue' filepath='drivers/usb/gadget/composite.c' line='2537' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_composite_setup_continue'>
+        <parameter type-id='2a895c01' name='cdev' filepath='drivers/usb/gadget/composite.c' line='2537' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_composite_unregister' mangled-name='usb_composite_unregister' filepath='drivers/usb/gadget/composite.c' line='2521' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_composite_unregister'>
+        <parameter type-id='c64e62ba' name='driver' filepath='drivers/usb/gadget/composite.c' line='2521' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_control_msg' mangled-name='usb_control_msg' filepath='drivers/usb/core/message.c' line='136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_control_msg'>
+        <parameter type-id='25e60cb2' name='dev' filepath='drivers/usb/core/message.c' line='136' column='1'/>
+        <parameter type-id='f0981eeb' name='pipe' filepath='drivers/usb/core/message.c' line='136' column='1'/>
+        <parameter type-id='8f048e17' name='request' filepath='drivers/usb/core/message.c' line='136' column='1'/>
+        <parameter type-id='8f048e17' name='requesttype' filepath='drivers/usb/core/message.c' line='137' column='1'/>
+        <parameter type-id='d315442e' name='value' filepath='drivers/usb/core/message.c' line='137' column='1'/>
+        <parameter type-id='d315442e' name='index' filepath='drivers/usb/core/message.c' line='137' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/usb/core/message.c' line='137' column='1'/>
+        <parameter type-id='d315442e' name='size' filepath='drivers/usb/core/message.c' line='138' column='1'/>
+        <parameter type-id='95e97e5e' name='timeout' filepath='drivers/usb/core/message.c' line='138' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_control_msg_recv' mangled-name='usb_control_msg_recv' filepath='drivers/usb/core/message.c' line='263' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_control_msg_recv'>
+        <parameter type-id='25e60cb2' name='dev' filepath='drivers/usb/core/message.c' line='263' column='1'/>
+        <parameter type-id='8f048e17' name='endpoint' filepath='drivers/usb/core/message.c' line='263' column='1'/>
+        <parameter type-id='8f048e17' name='request' filepath='drivers/usb/core/message.c' line='263' column='1'/>
+        <parameter type-id='8f048e17' name='requesttype' filepath='drivers/usb/core/message.c' line='264' column='1'/>
+        <parameter type-id='d315442e' name='value' filepath='drivers/usb/core/message.c' line='264' column='1'/>
+        <parameter type-id='d315442e' name='index' filepath='drivers/usb/core/message.c' line='264' column='1'/>
+        <parameter type-id='eaa32e2f' name='driver_data' filepath='drivers/usb/core/message.c' line='265' column='1'/>
+        <parameter type-id='d315442e' name='size' filepath='drivers/usb/core/message.c' line='265' column='1'/>
+        <parameter type-id='95e97e5e' name='timeout' filepath='drivers/usb/core/message.c' line='265' column='1'/>
+        <parameter type-id='3eb7c31c' name='memflags' filepath='drivers/usb/core/message.c' line='266' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_control_msg_send' mangled-name='usb_control_msg_send' filepath='drivers/usb/core/message.c' line='198' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_control_msg_send'>
+        <parameter type-id='25e60cb2' name='dev' filepath='drivers/usb/core/message.c' line='198' column='1'/>
+        <parameter type-id='8f048e17' name='endpoint' filepath='drivers/usb/core/message.c' line='198' column='1'/>
+        <parameter type-id='8f048e17' name='request' filepath='drivers/usb/core/message.c' line='198' column='1'/>
+        <parameter type-id='8f048e17' name='requesttype' filepath='drivers/usb/core/message.c' line='199' column='1'/>
+        <parameter type-id='d315442e' name='value' filepath='drivers/usb/core/message.c' line='199' column='1'/>
+        <parameter type-id='d315442e' name='index' filepath='drivers/usb/core/message.c' line='199' column='1'/>
+        <parameter type-id='eaa32e2f' name='driver_data' filepath='drivers/usb/core/message.c' line='200' column='1'/>
+        <parameter type-id='d315442e' name='size' filepath='drivers/usb/core/message.c' line='200' column='1'/>
+        <parameter type-id='95e97e5e' name='timeout' filepath='drivers/usb/core/message.c' line='200' column='1'/>
+        <parameter type-id='3eb7c31c' name='memflags' filepath='drivers/usb/core/message.c' line='201' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_copy_descriptors' mangled-name='usb_copy_descriptors' filepath='drivers/usb/gadget/config.c' line='122' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_copy_descriptors'>
+        <parameter type-id='f363a725' name='src' filepath='drivers/usb/gadget/config.c' line='122' column='1'/>
+        <return type-id='f363a725'/>
+      </function-decl>
+      <function-decl name='usb_create_hcd' mangled-name='usb_create_hcd' filepath='drivers/usb/core/hcd.c' line='2671' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_create_hcd'>
+        <parameter type-id='5aa12c86' name='driver' filepath='drivers/usb/core/hcd.c' line='2671' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/core/hcd.c' line='2672' column='1'/>
+        <parameter type-id='80f4b756' name='bus_name' filepath='drivers/usb/core/hcd.c' line='2672' column='1'/>
+        <return type-id='fc4f83c1'/>
+      </function-decl>
+      <function-decl name='usb_create_shared_hcd' mangled-name='usb_create_shared_hcd' filepath='drivers/usb/core/hcd.c' line='2648' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_create_shared_hcd'>
+        <parameter type-id='5aa12c86' name='driver' filepath='drivers/usb/core/hcd.c' line='2648' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/core/hcd.c' line='2649' column='1'/>
+        <parameter type-id='80f4b756' name='bus_name' filepath='drivers/usb/core/hcd.c' line='2649' column='1'/>
+        <parameter type-id='fc4f83c1' name='primary_hcd' filepath='drivers/usb/core/hcd.c' line='2650' column='1'/>
+        <return type-id='fc4f83c1'/>
+      </function-decl>
+      <var-decl name='usb_debug_root' type-id='27675065' mangled-name='usb_debug_root' visibility='default' filepath='drivers/usb/common/common.c' line='416' column='1' elf-symbol-id='usb_debug_root'/>
+      <function-decl name='usb_decode_ctrl' mangled-name='usb_decode_ctrl' filepath='drivers/usb/common/debug.c' line='299' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_decode_ctrl'>
+        <parameter type-id='26a90f95' name='str' filepath='drivers/usb/common/debug.c' line='299' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/usb/common/debug.c' line='299' column='1'/>
+        <parameter type-id='8f048e17' name='bRequestType' filepath='drivers/usb/common/debug.c' line='299' column='1'/>
+        <parameter type-id='8f048e17' name='bRequest' filepath='drivers/usb/common/debug.c' line='300' column='1'/>
+        <parameter type-id='d315442e' name='wValue' filepath='drivers/usb/common/debug.c' line='300' column='1'/>
+        <parameter type-id='d315442e' name='wIndex' filepath='drivers/usb/common/debug.c' line='300' column='1'/>
+        <parameter type-id='d315442e' name='wLength' filepath='drivers/usb/common/debug.c' line='301' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='usb_decode_interval' mangled-name='usb_decode_interval' filepath='drivers/usb/common/common.c' line='231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_decode_interval'>
+        <parameter type-id='428819c0' name='epd' filepath='drivers/usb/common/common.c' line='231' column='1'/>
+        <parameter type-id='4e532009' name='speed' filepath='drivers/usb/common/common.c' line='232' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='usb_del_gadget' mangled-name='usb_del_gadget' filepath='drivers/usb/gadget/udc/core.c' line='1454' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_del_gadget'>
+        <parameter type-id='49a58c0c' name='gadget' filepath='drivers/usb/gadget/udc/core.c' line='1454' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_del_gadget_udc' mangled-name='usb_del_gadget_udc' filepath='drivers/usb/gadget/udc/core.c' line='1487' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_del_gadget_udc'>
+        <parameter type-id='49a58c0c' name='gadget' filepath='drivers/usb/gadget/udc/core.c' line='1487' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_deregister' mangled-name='usb_deregister' filepath='drivers/usb/core/driver.c' line='1095' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_deregister'>
+        <parameter type-id='46ae908a' name='driver' filepath='drivers/usb/core/driver.c' line='1095' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_deregister_dev' mangled-name='usb_deregister_dev' filepath='drivers/usb/core/file.c' line='230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_deregister_dev'>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/usb/core/file.c' line='230' column='1'/>
+        <parameter type-id='63cfef1d' name='class_driver' filepath='drivers/usb/core/file.c' line='231' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_disable_autosuspend' mangled-name='usb_disable_autosuspend' filepath='drivers/usb/core/driver.c' line='1648' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_disable_autosuspend'>
+        <parameter type-id='25e60cb2' name='udev' filepath='drivers/usb/core/driver.c' line='1648' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_disabled' mangled-name='usb_disabled' filepath='drivers/usb/core/usb.c' line='58' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_disabled'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_driver_claim_interface' mangled-name='usb_driver_claim_interface' filepath='drivers/usb/core/driver.c' line='535' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_driver_claim_interface'>
+        <parameter type-id='46ae908a' name='driver' filepath='drivers/usb/core/driver.c' line='535' column='1'/>
+        <parameter type-id='8bf48c31' name='iface' filepath='drivers/usb/core/driver.c' line='536' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/usb/core/driver.c' line='536' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_driver_release_interface' mangled-name='usb_driver_release_interface' filepath='drivers/usb/core/driver.c' line='609' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_driver_release_interface'>
+        <parameter type-id='46ae908a' name='driver' filepath='drivers/usb/core/driver.c' line='609' column='1'/>
+        <parameter type-id='8bf48c31' name='iface' filepath='drivers/usb/core/driver.c' line='610' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_driver_set_configuration' mangled-name='usb_driver_set_configuration' filepath='drivers/usb/core/message.c' line='2248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_driver_set_configuration'>
+        <parameter type-id='25e60cb2' name='udev' filepath='drivers/usb/core/message.c' line='2248' column='1'/>
+        <parameter type-id='95e97e5e' name='config' filepath='drivers/usb/core/message.c' line='2248' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_enable_autosuspend' mangled-name='usb_enable_autosuspend' filepath='drivers/usb/core/driver.c' line='1633' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_enable_autosuspend'>
+        <parameter type-id='25e60cb2' name='udev' filepath='drivers/usb/core/driver.c' line='1633' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_ep_alloc_request' mangled-name='usb_ep_alloc_request' filepath='drivers/usb/gadget/udc/core.c' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_ep_alloc_request'>
+        <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/udc/core.c' line='177' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_flags' filepath='drivers/usb/gadget/udc/core.c' line='178' column='1'/>
+        <return type-id='1a494567'/>
+      </function-decl>
+      <function-decl name='usb_ep_autoconfig' mangled-name='usb_ep_autoconfig' filepath='drivers/usb/gadget/epautoconf.c' line='149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_ep_autoconfig'>
+        <parameter type-id='49a58c0c' name='gadget' filepath='drivers/usb/gadget/epautoconf.c' line='150' column='1'/>
+        <parameter type-id='a07d0491' name='desc' filepath='drivers/usb/gadget/epautoconf.c' line='151' column='1'/>
+        <return type-id='63a08bf7'/>
+      </function-decl>
+      <function-decl name='usb_ep_clear_halt' mangled-name='usb_ep_clear_halt' filepath='drivers/usb/gadget/udc/core.c' line='371' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_ep_clear_halt'>
+        <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/udc/core.c' line='371' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_ep_dequeue' mangled-name='usb_ep_dequeue' filepath='drivers/usb/gadget/udc/core.c' line='311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_ep_dequeue'>
+        <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/udc/core.c' line='311' column='1'/>
+        <parameter type-id='1a494567' name='req' filepath='drivers/usb/gadget/udc/core.c' line='311' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_ep_disable' mangled-name='usb_ep_disable' filepath='drivers/usb/gadget/udc/core.c' line='143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_ep_disable'>
+        <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/udc/core.c' line='143' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_ep_enable' mangled-name='usb_ep_enable' filepath='drivers/usb/gadget/udc/core.c' line='98' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_ep_enable'>
+        <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/udc/core.c' line='98' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_ep_fifo_flush' mangled-name='usb_ep_fifo_flush' filepath='drivers/usb/gadget/udc/core.c' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_ep_fifo_flush'>
+        <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/udc/core.c' line='452' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_ep_free_request' mangled-name='usb_ep_free_request' filepath='drivers/usb/gadget/udc/core.c' line='199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_ep_free_request'>
+        <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/udc/core.c' line='199' column='1'/>
+        <parameter type-id='1a494567' name='req' filepath='drivers/usb/gadget/udc/core.c' line='200' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_ep_queue' mangled-name='usb_ep_queue' filepath='drivers/usb/gadget/udc/core.c' line='275' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_ep_queue'>
+        <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/udc/core.c' line='275' column='1'/>
+        <parameter type-id='1a494567' name='req' filepath='drivers/usb/gadget/udc/core.c' line='276' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp_flags' filepath='drivers/usb/gadget/udc/core.c' line='276' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_ep_set_halt' mangled-name='usb_ep_set_halt' filepath='drivers/usb/gadget/udc/core.c' line='345' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_ep_set_halt'>
+        <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/udc/core.c' line='345' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_ep_set_maxpacket_limit' mangled-name='usb_ep_set_maxpacket_limit' filepath='drivers/usb/gadget/udc/core.c' line='66' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_ep_set_maxpacket_limit'>
+        <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/udc/core.c' line='66' column='1'/>
+        <parameter type-id='f0981eeb' name='maxpacket_limit' filepath='drivers/usb/gadget/udc/core.c' line='67' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_ep_type_string' mangled-name='usb_ep_type_string' filepath='drivers/usb/common/common.c' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_ep_type_string'>
+        <parameter type-id='95e97e5e' name='ep_type' filepath='drivers/usb/common/common.c' line='34' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='usb_find_common_endpoints' mangled-name='usb_find_common_endpoints' filepath='drivers/usb/core/usb.c' line='134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_find_common_endpoints'>
+        <parameter type-id='2ac920d2' name='alt' filepath='drivers/usb/core/usb.c' line='134' column='1'/>
+        <parameter type-id='5fce7261' name='bulk_in' filepath='drivers/usb/core/usb.c' line='135' column='1'/>
+        <parameter type-id='5fce7261' name='bulk_out' filepath='drivers/usb/core/usb.c' line='136' column='1'/>
+        <parameter type-id='5fce7261' name='int_in' filepath='drivers/usb/core/usb.c' line='137' column='1'/>
+        <parameter type-id='5fce7261' name='int_out' filepath='drivers/usb/core/usb.c' line='138' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_find_interface' mangled-name='usb_find_interface' filepath='drivers/usb/core/usb.c' line='427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_find_interface'>
+        <parameter type-id='46ae908a' name='drv' filepath='drivers/usb/core/usb.c' line='427' column='1'/>
+        <parameter type-id='95e97e5e' name='minor' filepath='drivers/usb/core/usb.c' line='427' column='1'/>
+        <return type-id='8bf48c31'/>
+      </function-decl>
+      <function-decl name='usb_free_all_descriptors' mangled-name='usb_free_all_descriptors' filepath='drivers/usb/gadget/config.c' line='202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_free_all_descriptors'>
+        <parameter type-id='e5411c2c' name='f' filepath='drivers/usb/gadget/config.c' line='202' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_free_coherent' mangled-name='usb_free_coherent' filepath='drivers/usb/core/usb.c' line='1066' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_free_coherent'>
+        <parameter type-id='25e60cb2' name='dev' filepath='drivers/usb/core/usb.c' line='1066' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/usb/core/usb.c' line='1066' column='1'/>
+        <parameter type-id='eaa32e2f' name='addr' filepath='drivers/usb/core/usb.c' line='1066' column='1'/>
+        <parameter type-id='cf29c9b3' name='dma' filepath='drivers/usb/core/usb.c' line='1067' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_free_urb' mangled-name='usb_free_urb' filepath='drivers/usb/core/urb.c' line='93' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_free_urb'>
+        <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/urb.c' line='93' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_function_register' mangled-name='usb_function_register' filepath='drivers/usb/gadget/functions.c' line='91' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_function_register'>
+        <parameter type-id='f666bcc1' name='newf' filepath='drivers/usb/gadget/functions.c' line='91' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_function_unregister' mangled-name='usb_function_unregister' filepath='drivers/usb/gadget/functions.c' line='111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_function_unregister'>
+        <parameter type-id='f666bcc1' name='fd' filepath='drivers/usb/gadget/functions.c' line='111' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_gadget_activate' mangled-name='usb_gadget_activate' filepath='drivers/usb/gadget/udc/core.c' line='793' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_gadget_activate'>
+        <parameter type-id='49a58c0c' name='gadget' filepath='drivers/usb/gadget/udc/core.c' line='793' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_gadget_connect' mangled-name='usb_gadget_connect' filepath='drivers/usb/gadget/udc/core.c' line='670' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_gadget_connect'>
+        <parameter type-id='49a58c0c' name='gadget' filepath='drivers/usb/gadget/udc/core.c' line='670' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_gadget_deactivate' mangled-name='usb_gadget_deactivate' filepath='drivers/usb/gadget/udc/core.c' line='757' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_gadget_deactivate'>
+        <parameter type-id='49a58c0c' name='gadget' filepath='drivers/usb/gadget/udc/core.c' line='757' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_gadget_disconnect' mangled-name='usb_gadget_disconnect' filepath='drivers/usb/gadget/udc/core.c' line='712' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_gadget_disconnect'>
+        <parameter type-id='49a58c0c' name='gadget' filepath='drivers/usb/gadget/udc/core.c' line='712' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_gadget_giveback_request' mangled-name='usb_gadget_giveback_request' filepath='drivers/usb/gadget/udc/core.c' line='906' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_gadget_giveback_request'>
+        <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/udc/core.c' line='906' column='1'/>
+        <parameter type-id='1a494567' name='req' filepath='drivers/usb/gadget/udc/core.c' line='907' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_gadget_map_request' mangled-name='usb_gadget_map_request' filepath='drivers/usb/gadget/udc/core.c' line='861' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_gadget_map_request'>
+        <parameter type-id='49a58c0c' name='gadget' filepath='drivers/usb/gadget/udc/core.c' line='861' column='1'/>
+        <parameter type-id='1a494567' name='req' filepath='drivers/usb/gadget/udc/core.c' line='862' column='1'/>
+        <parameter type-id='95e97e5e' name='is_in' filepath='drivers/usb/gadget/udc/core.c' line='862' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_gadget_map_request_by_dev' mangled-name='usb_gadget_map_request_by_dev' filepath='drivers/usb/gadget/udc/core.c' line='820' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_gadget_map_request_by_dev'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/gadget/udc/core.c' line='820' column='1'/>
+        <parameter type-id='1a494567' name='req' filepath='drivers/usb/gadget/udc/core.c' line='821' column='1'/>
+        <parameter type-id='95e97e5e' name='is_in' filepath='drivers/usb/gadget/udc/core.c' line='821' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_gadget_probe_driver' mangled-name='usb_gadget_probe_driver' filepath='drivers/usb/gadget/udc/core.c' line='1541' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_gadget_probe_driver'>
+        <parameter type-id='9762ede1' name='driver' filepath='drivers/usb/gadget/udc/core.c' line='1541' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_gadget_set_selfpowered' mangled-name='usb_gadget_set_selfpowered' filepath='drivers/usb/gadget/udc/core.c' line='522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_gadget_set_selfpowered'>
+        <parameter type-id='49a58c0c' name='gadget' filepath='drivers/usb/gadget/udc/core.c' line='522' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_gadget_set_state' mangled-name='usb_gadget_set_state' filepath='drivers/usb/gadget/udc/core.c' line='1038' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_gadget_set_state'>
+        <parameter type-id='49a58c0c' name='gadget' filepath='drivers/usb/gadget/udc/core.c' line='1038' column='1'/>
+        <parameter type-id='901a91cb' name='state' filepath='drivers/usb/gadget/udc/core.c' line='1039' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_gadget_udc_reset' mangled-name='usb_gadget_udc_reset' filepath='drivers/usb/gadget/udc/core.c' line='1089' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_gadget_udc_reset'>
+        <parameter type-id='49a58c0c' name='gadget' filepath='drivers/usb/gadget/udc/core.c' line='1089' column='1'/>
+        <parameter type-id='9762ede1' name='driver' filepath='drivers/usb/gadget/udc/core.c' line='1090' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_gadget_unmap_request' mangled-name='usb_gadget_unmap_request' filepath='drivers/usb/gadget/udc/core.c' line='887' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_gadget_unmap_request'>
+        <parameter type-id='49a58c0c' name='gadget' filepath='drivers/usb/gadget/udc/core.c' line='887' column='1'/>
+        <parameter type-id='1a494567' name='req' filepath='drivers/usb/gadget/udc/core.c' line='888' column='1'/>
+        <parameter type-id='95e97e5e' name='is_in' filepath='drivers/usb/gadget/udc/core.c' line='888' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_gadget_unmap_request_by_dev' mangled-name='usb_gadget_unmap_request_by_dev' filepath='drivers/usb/gadget/udc/core.c' line='868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_gadget_unmap_request_by_dev'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/gadget/udc/core.c' line='868' column='1'/>
+        <parameter type-id='1a494567' name='req' filepath='drivers/usb/gadget/udc/core.c' line='869' column='1'/>
+        <parameter type-id='95e97e5e' name='is_in' filepath='drivers/usb/gadget/udc/core.c' line='869' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_gadget_unregister_driver' mangled-name='usb_gadget_unregister_driver' filepath='drivers/usb/gadget/udc/core.c' line='1592' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_gadget_unregister_driver'>
+        <parameter type-id='9762ede1' name='driver' filepath='drivers/usb/gadget/udc/core.c' line='1592' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_gadget_vbus_connect' mangled-name='usb_gadget_vbus_connect' filepath='drivers/usb/gadget/udc/core.c' line='581' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_gadget_vbus_connect'>
+        <parameter type-id='49a58c0c' name='gadget' filepath='drivers/usb/gadget/udc/core.c' line='581' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_gadget_vbus_disconnect' mangled-name='usb_gadget_vbus_disconnect' filepath='drivers/usb/gadget/udc/core.c' line='642' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_gadget_vbus_disconnect'>
+        <parameter type-id='49a58c0c' name='gadget' filepath='drivers/usb/gadget/udc/core.c' line='642' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_gadget_wakeup' mangled-name='usb_gadget_wakeup' filepath='drivers/usb/gadget/udc/core.c' line='495' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_gadget_wakeup'>
+        <parameter type-id='49a58c0c' name='gadget' filepath='drivers/usb/gadget/udc/core.c' line='495' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_get_dev' mangled-name='usb_get_dev' filepath='drivers/usb/core/usb.c' line='816' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_get_dev'>
+        <parameter type-id='25e60cb2' name='dev' filepath='drivers/usb/core/usb.c' line='816' column='1'/>
+        <return type-id='25e60cb2'/>
+      </function-decl>
+      <function-decl name='usb_get_dr_mode' mangled-name='usb_get_dr_mode' filepath='drivers/usb/common/common.c' line='190' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_get_dr_mode'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/common/common.c' line='190' column='1'/>
+        <return type-id='d291aaf1'/>
+      </function-decl>
+      <function-decl name='usb_get_from_anchor' mangled-name='usb_get_from_anchor' filepath='drivers/usb/core/urb.c' line='991' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_get_from_anchor'>
+        <parameter type-id='bd300bf3' name='anchor' filepath='drivers/usb/core/urb.c' line='991' column='1'/>
+        <return type-id='ab85b8f2'/>
+      </function-decl>
+      <function-decl name='usb_get_function' mangled-name='usb_get_function' filepath='drivers/usb/gadget/functions.c' line='57' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_get_function'>
+        <parameter type-id='6614aa5e' name='fi' filepath='drivers/usb/gadget/functions.c' line='57' column='1'/>
+        <return type-id='e5411c2c'/>
+      </function-decl>
+      <function-decl name='usb_get_function_instance' mangled-name='usb_get_function_instance' filepath='drivers/usb/gadget/functions.c' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_get_function_instance'>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/usb/gadget/functions.c' line='39' column='1'/>
+        <return type-id='6614aa5e'/>
+      </function-decl>
+      <function-decl name='usb_get_intf' mangled-name='usb_get_intf' filepath='drivers/usb/core/usb.c' line='850' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_get_intf'>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/usb/core/usb.c' line='850' column='1'/>
+        <return type-id='8bf48c31'/>
+      </function-decl>
+      <function-decl name='usb_get_maximum_speed' mangled-name='usb_get_maximum_speed' filepath='drivers/usb/common/common.c' line='107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_get_maximum_speed'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/common/common.c' line='107' column='1'/>
+        <return type-id='4e532009'/>
+      </function-decl>
+      <function-decl name='usb_get_maximum_ssp_rate' mangled-name='usb_get_maximum_ssp_rate' filepath='drivers/usb/common/common.c' line='134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_get_maximum_ssp_rate'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/common/common.c' line='134' column='1'/>
+        <return type-id='a9ea967a'/>
+      </function-decl>
+      <function-decl name='usb_get_role_switch_default_mode' mangled-name='usb_get_role_switch_default_mode' filepath='drivers/usb/common/common.c' line='210' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_get_role_switch_default_mode'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/common/common.c' line='210' column='1'/>
+        <return type-id='d291aaf1'/>
+      </function-decl>
+      <function-decl name='usb_gstrings_attach' mangled-name='usb_gstrings_attach' filepath='drivers/usb/gadget/composite.c' line='1401' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_gstrings_attach'>
+        <parameter type-id='2a895c01' name='cdev' filepath='drivers/usb/gadget/composite.c' line='1401' column='1'/>
+        <parameter type-id='fa0eba8f' name='sp' filepath='drivers/usb/gadget/composite.c' line='1402' column='1'/>
+        <parameter type-id='f0981eeb' name='n_strings' filepath='drivers/usb/gadget/composite.c' line='1402' column='1'/>
+        <return type-id='3b7e997b'/>
+      </function-decl>
+      <function-decl name='usb_hc_died' mangled-name='usb_hc_died' filepath='drivers/usb/core/hcd.c' line='2518' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hc_died'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/core/hcd.c' line='2518' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_hcd_check_unlink_urb' mangled-name='usb_hcd_check_unlink_urb' filepath='drivers/usb/core/hcd.c' line='1211' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hcd_check_unlink_urb'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/core/hcd.c' line='1211' column='1'/>
+        <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/hcd.c' line='1211' column='1'/>
+        <parameter type-id='95e97e5e' name='status' filepath='drivers/usb/core/hcd.c' line='1212' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_hcd_end_port_resume' mangled-name='usb_hcd_end_port_resume' filepath='drivers/usb/core/hcd.c' line='1068' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hcd_end_port_resume'>
+        <parameter type-id='3ab7d422' name='bus' filepath='drivers/usb/core/hcd.c' line='1068' column='1'/>
+        <parameter type-id='95e97e5e' name='portnum' filepath='drivers/usb/core/hcd.c' line='1068' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_hcd_giveback_urb' mangled-name='usb_hcd_giveback_urb' filepath='drivers/usb/core/hcd.c' line='1737' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hcd_giveback_urb'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/core/hcd.c' line='1737' column='1'/>
+        <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/hcd.c' line='1737' column='1'/>
+        <parameter type-id='95e97e5e' name='status' filepath='drivers/usb/core/hcd.c' line='1737' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_hcd_irq' mangled-name='usb_hcd_irq' filepath='drivers/usb/core/hcd.c' line='2477' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hcd_irq'>
+        <parameter type-id='95e97e5e' name='irq' filepath='drivers/usb/core/hcd.c' line='2477' column='1'/>
+        <parameter type-id='eaa32e2f' name='__hcd' filepath='drivers/usb/core/hcd.c' line='2477' column='1'/>
+        <return type-id='4bdecfd7'/>
+      </function-decl>
+      <function-decl name='usb_hcd_is_primary_hcd' mangled-name='usb_hcd_is_primary_hcd' filepath='drivers/usb/core/hcd.c' line='2720' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hcd_is_primary_hcd'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/core/hcd.c' line='2720' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_hcd_link_urb_to_ep' mangled-name='usb_hcd_link_urb_to_ep' filepath='drivers/usb/core/hcd.c' line='1153' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hcd_link_urb_to_ep'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/core/hcd.c' line='1153' column='1'/>
+        <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/hcd.c' line='1153' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_hcd_map_urb_for_dma' mangled-name='usb_hcd_map_urb_for_dma' filepath='drivers/usb/core/hcd.c' line='1406' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hcd_map_urb_for_dma'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/core/hcd.c' line='1406' column='1'/>
+        <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/hcd.c' line='1406' column='1'/>
+        <parameter type-id='3eb7c31c' name='mem_flags' filepath='drivers/usb/core/hcd.c' line='1407' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='usb_hcd_pci_pm_ops' type-id='86af1d10' mangled-name='usb_hcd_pci_pm_ops' visibility='default' filepath='drivers/usb/core/hcd-pci.c' line='614' column='1' elf-symbol-id='usb_hcd_pci_pm_ops'/>
+      <function-decl name='usb_hcd_pci_probe' mangled-name='usb_hcd_pci_probe' filepath='drivers/usb/core/hcd-pci.c' line='174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hcd_pci_probe'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/usb/core/hcd-pci.c' line='174' column='1'/>
+        <parameter type-id='92fc8aa5' name='id' filepath='drivers/usb/core/hcd-pci.c' line='174' column='1'/>
+        <parameter type-id='5aa12c86' name='driver' filepath='drivers/usb/core/hcd-pci.c' line='175' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_hcd_pci_remove' mangled-name='usb_hcd_pci_remove' filepath='drivers/usb/core/hcd-pci.c' line='317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hcd_pci_remove'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/usb/core/hcd-pci.c' line='317' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_hcd_pci_shutdown' mangled-name='usb_hcd_pci_shutdown' filepath='drivers/usb/core/hcd-pci.c' line='365' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hcd_pci_shutdown'>
+        <parameter type-id='85196e3f' name='dev' filepath='drivers/usb/core/hcd-pci.c' line='365' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_hcd_platform_shutdown' mangled-name='usb_hcd_platform_shutdown' filepath='drivers/usb/core/hcd.c' line='3096' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hcd_platform_shutdown'>
+        <parameter type-id='db362995' name='dev' filepath='drivers/usb/core/hcd.c' line='3096' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_hcd_poll_rh_status' mangled-name='usb_hcd_poll_rh_status' filepath='drivers/usb/core/hcd.c' line='752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hcd_poll_rh_status'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/core/hcd.c' line='752' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_hcd_resume_root_hub' mangled-name='usb_hcd_resume_root_hub' filepath='drivers/usb/core/hcd.c' line='2408' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hcd_resume_root_hub'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/core/hcd.c' line='2408' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_hcd_start_port_resume' mangled-name='usb_hcd_start_port_resume' filepath='drivers/usb/core/hcd.c' line='1046' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hcd_start_port_resume'>
+        <parameter type-id='3ab7d422' name='bus' filepath='drivers/usb/core/hcd.c' line='1046' column='1'/>
+        <parameter type-id='95e97e5e' name='portnum' filepath='drivers/usb/core/hcd.c' line='1046' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_hcd_unlink_urb_from_ep' mangled-name='usb_hcd_unlink_urb_from_ep' filepath='drivers/usb/core/hcd.c' line='1244' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hcd_unlink_urb_from_ep'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/core/hcd.c' line='1244' column='1'/>
+        <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/hcd.c' line='1244' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_hcd_unmap_urb_for_dma' mangled-name='usb_hcd_unmap_urb_for_dma' filepath='drivers/usb/core/hcd.c' line='1359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hcd_unmap_urb_for_dma'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/core/hcd.c' line='1359' column='1'/>
+        <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/hcd.c' line='1359' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='usb_hcds_loaded' type-id='7359adad' mangled-name='usb_hcds_loaded' visibility='default' filepath='drivers/usb/core/hcd.c' line='81' column='1' elf-symbol-id='usb_hcds_loaded'/>
+      <var-decl name='usb_hid_driver' type-id='0e5e2ca6' mangled-name='usb_hid_driver' visibility='default' filepath='drivers/hid/usbhid/hid-core.c' line='1321' column='1' elf-symbol-id='usb_hid_driver'/>
+      <function-decl name='usb_hub_clear_tt_buffer' mangled-name='usb_hub_clear_tt_buffer' filepath='drivers/usb/core/hub.c' line='869' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hub_clear_tt_buffer'>
+        <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/hub.c' line='869' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_hub_find_child' mangled-name='usb_hub_find_child' filepath='drivers/usb/core/hub.c' line='6274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hub_find_child'>
+        <parameter type-id='25e60cb2' name='hdev' filepath='drivers/usb/core/hub.c' line='6274' column='1'/>
+        <parameter type-id='95e97e5e' name='port1' filepath='drivers/usb/core/hub.c' line='6275' column='1'/>
+        <return type-id='25e60cb2'/>
+      </function-decl>
+      <function-decl name='usb_ifnum_to_if' mangled-name='usb_ifnum_to_if' filepath='drivers/usb/core/usb.c' line='347' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_ifnum_to_if'>
+        <parameter type-id='ca2b80c9' name='dev' filepath='drivers/usb/core/usb.c' line='347' column='1'/>
+        <parameter type-id='f0981eeb' name='ifnum' filepath='drivers/usb/core/usb.c' line='348' column='1'/>
+        <return type-id='8bf48c31'/>
+      </function-decl>
+      <function-decl name='usb_init_urb' mangled-name='usb_init_urb' filepath='drivers/usb/core/urb.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_init_urb'>
+        <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/urb.c' line='43' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_initialize_gadget' mangled-name='usb_initialize_gadget' filepath='drivers/usb/gadget/udc/core.c' line='1273' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_initialize_gadget'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/usb/gadget/udc/core.c' line='1273' column='1'/>
+        <parameter type-id='49a58c0c' name='gadget' filepath='drivers/usb/gadget/udc/core.c' line='1273' column='1'/>
+        <parameter type-id='dd787f72' name='release' filepath='drivers/usb/gadget/udc/core.c' line='1274' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_interface_id' mangled-name='usb_interface_id' filepath='drivers/usb/gadget/composite.c' line='479' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_interface_id'>
+        <parameter type-id='ee27b7c6' name='config' filepath='drivers/usb/gadget/composite.c' line='479' column='1'/>
+        <parameter type-id='e5411c2c' name='function' filepath='drivers/usb/gadget/composite.c' line='480' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_interrupt_msg' mangled-name='usb_interrupt_msg' filepath='drivers/usb/core/message.c' line='324' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_interrupt_msg'>
+        <parameter type-id='25e60cb2' name='usb_dev' filepath='drivers/usb/core/message.c' line='324' column='1'/>
+        <parameter type-id='f0981eeb' name='pipe' filepath='drivers/usb/core/message.c' line='324' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/usb/core/message.c' line='325' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='drivers/usb/core/message.c' line='325' column='1'/>
+        <parameter type-id='7292109c' name='actual_length' filepath='drivers/usb/core/message.c' line='325' column='1'/>
+        <parameter type-id='95e97e5e' name='timeout' filepath='drivers/usb/core/message.c' line='325' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_kill_anchored_urbs' mangled-name='usb_kill_anchored_urbs' filepath='drivers/usb/core/urb.c' line='821' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_kill_anchored_urbs'>
+        <parameter type-id='bd300bf3' name='anchor' filepath='drivers/usb/core/urb.c' line='821' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_kill_urb' mangled-name='usb_kill_urb' filepath='drivers/usb/core/urb.c' line='712' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_kill_urb'>
+        <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/urb.c' line='712' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_lock_device_for_reset' mangled-name='usb_lock_device_for_reset' filepath='drivers/usb/core/usb.c' line='935' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_lock_device_for_reset'>
+        <parameter type-id='25e60cb2' name='udev' filepath='drivers/usb/core/usb.c' line='935' column='1'/>
+        <parameter type-id='ad22f238' name='iface' filepath='drivers/usb/core/usb.c' line='936' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_match_id' mangled-name='usb_match_id' filepath='drivers/usb/core/driver.c' line='802' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_match_id'>
+        <parameter type-id='8bf48c31' name='interface' filepath='drivers/usb/core/driver.c' line='802' column='1'/>
+        <parameter type-id='bc57058f' name='id' filepath='drivers/usb/core/driver.c' line='803' column='1'/>
+        <return type-id='bc57058f'/>
+      </function-decl>
+      <function-decl name='usb_match_one_id' mangled-name='usb_match_one_id' filepath='drivers/usb/core/driver.c' line='709' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_match_one_id'>
+        <parameter type-id='8bf48c31' name='interface' filepath='drivers/usb/core/driver.c' line='709' column='1'/>
+        <parameter type-id='bc57058f' name='id' filepath='drivers/usb/core/driver.c' line='710' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_mon_deregister' mangled-name='usb_mon_deregister' filepath='drivers/usb/core/hcd.c' line='3166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_mon_deregister'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_mon_register' mangled-name='usb_mon_register' filepath='drivers/usb/core/hcd.c' line='3154' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_mon_register'>
+        <parameter type-id='77292cc0' name='ops' filepath='drivers/usb/core/hcd.c' line='3154' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_os_desc_prepare_interf_dir' mangled-name='usb_os_desc_prepare_interf_dir' filepath='drivers/usb/gadget/configfs.c' line='1234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_os_desc_prepare_interf_dir'>
+        <parameter type-id='97aff453' name='parent' filepath='drivers/usb/gadget/configfs.c' line='1235' column='1'/>
+        <parameter type-id='95e97e5e' name='n_interf' filepath='drivers/usb/gadget/configfs.c' line='1236' column='1'/>
+        <parameter type-id='b6338998' name='desc' filepath='drivers/usb/gadget/configfs.c' line='1237' column='1'/>
+        <parameter type-id='9b23c9ad' name='names' filepath='drivers/usb/gadget/configfs.c' line='1238' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/usb/gadget/configfs.c' line='1239' column='1'/>
+        <return type-id='97aff453'/>
+      </function-decl>
+      <function-decl name='usb_otg_state_string' mangled-name='usb_otg_state_string' filepath='drivers/usb/common/common.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_otg_state_string'>
+        <parameter type-id='4c0c8157' name='state' filepath='drivers/usb/common/common.c' line='43' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='usb_phy_get_charger_current' mangled-name='usb_phy_get_charger_current' filepath='drivers/usb/phy/phy.c' line='280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_phy_get_charger_current'>
+        <parameter type-id='ca9354d1' name='usb_phy' filepath='drivers/usb/phy/phy.c' line='280' column='1'/>
+        <parameter type-id='807869d3' name='min' filepath='drivers/usb/phy/phy.c' line='281' column='1'/>
+        <parameter type-id='807869d3' name='max' filepath='drivers/usb/phy/phy.c' line='281' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_phy_set_charger_current' mangled-name='usb_phy_set_charger_current' filepath='drivers/usb/phy/phy.c' line='231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_phy_set_charger_current'>
+        <parameter type-id='ca9354d1' name='usb_phy' filepath='drivers/usb/phy/phy.c' line='231' column='1'/>
+        <parameter type-id='f0981eeb' name='mA' filepath='drivers/usb/phy/phy.c' line='231' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_phy_set_charger_state' mangled-name='usb_phy_set_charger_state' filepath='drivers/usb/phy/phy.c' line='317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_phy_set_charger_state'>
+        <parameter type-id='ca9354d1' name='usb_phy' filepath='drivers/usb/phy/phy.c' line='317' column='1'/>
+        <parameter type-id='6d659af5' name='state' filepath='drivers/usb/phy/phy.c' line='318' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_phy_set_event' mangled-name='usb_phy_set_event' filepath='drivers/usb/phy/phy.c' line='766' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_phy_set_event'>
+        <parameter type-id='ca9354d1' name='x' filepath='drivers/usb/phy/phy.c' line='766' column='1'/>
+        <parameter type-id='7359adad' name='event' filepath='drivers/usb/phy/phy.c' line='766' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_pipe_type_check' mangled-name='usb_pipe_type_check' filepath='drivers/usb/core/urb.c' line='203' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_pipe_type_check'>
+        <parameter type-id='25e60cb2' name='dev' filepath='drivers/usb/core/urb.c' line='203' column='1'/>
+        <parameter type-id='f0981eeb' name='pipe' filepath='drivers/usb/core/urb.c' line='203' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_poison_anchored_urbs' mangled-name='usb_poison_anchored_urbs' filepath='drivers/usb/core/urb.c' line='859' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_poison_anchored_urbs'>
+        <parameter type-id='bd300bf3' name='anchor' filepath='drivers/usb/core/urb.c' line='859' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_poison_urb' mangled-name='usb_poison_urb' filepath='drivers/usb/core/urb.c' line='759' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_poison_urb'>
+        <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/urb.c' line='759' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_put_dev' mangled-name='usb_put_dev' filepath='drivers/usb/core/usb.c' line='831' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_put_dev'>
+        <parameter type-id='25e60cb2' name='dev' filepath='drivers/usb/core/usb.c' line='831' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_put_function' mangled-name='usb_put_function' filepath='drivers/usb/gadget/functions.c' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_put_function'>
+        <parameter type-id='e5411c2c' name='f' filepath='drivers/usb/gadget/functions.c' line='82' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_put_function_instance' mangled-name='usb_put_function_instance' filepath='drivers/usb/gadget/functions.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_put_function_instance'>
+        <parameter type-id='6614aa5e' name='fi' filepath='drivers/usb/gadget/functions.c' line='69' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_put_hcd' mangled-name='usb_put_hcd' filepath='drivers/usb/core/hcd.c' line='2713' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_put_hcd'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/core/hcd.c' line='2713' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_put_intf' mangled-name='usb_put_intf' filepath='drivers/usb/core/usb.c' line='866' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_put_intf'>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/usb/core/usb.c' line='866' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_queue_reset_device' mangled-name='usb_queue_reset_device' filepath='drivers/usb/core/hub.c' line='6254' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_queue_reset_device'>
+        <parameter type-id='8bf48c31' name='iface' filepath='drivers/usb/core/hub.c' line='6254' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_register_dev' mangled-name='usb_register_dev' filepath='drivers/usb/core/file.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_register_dev'>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/usb/core/file.c' line='156' column='1'/>
+        <parameter type-id='63cfef1d' name='class_driver' filepath='drivers/usb/core/file.c' line='157' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_register_driver' mangled-name='usb_register_driver' filepath='drivers/usb/core/driver.c' line='1042' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_register_driver'>
+        <parameter type-id='46ae908a' name='new_driver' filepath='drivers/usb/core/driver.c' line='1042' column='1'/>
+        <parameter type-id='2730d015' name='owner' filepath='drivers/usb/core/driver.c' line='1042' column='1'/>
+        <parameter type-id='80f4b756' name='mod_name' filepath='drivers/usb/core/driver.c' line='1043' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_register_notify' mangled-name='usb_register_notify' filepath='drivers/usb/core/notify.c' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_register_notify'>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/usb/core/notify.c' line='29' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_remove_function' mangled-name='usb_remove_function' filepath='drivers/usb/gadget/composite.c' line='367' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_remove_function'>
+        <parameter type-id='ee27b7c6' name='c' filepath='drivers/usb/gadget/composite.c' line='367' column='1'/>
+        <parameter type-id='e5411c2c' name='f' filepath='drivers/usb/gadget/composite.c' line='367' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_remove_hcd' mangled-name='usb_remove_hcd' filepath='drivers/usb/core/hcd.c' line='3034' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_remove_hcd'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/core/hcd.c' line='3034' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_remove_phy' mangled-name='usb_remove_phy' filepath='drivers/usb/phy/phy.c' line='748' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_remove_phy'>
+        <parameter type-id='ca9354d1' name='x' filepath='drivers/usb/phy/phy.c' line='748' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_reset_device' mangled-name='usb_reset_device' filepath='drivers/usb/core/hub.c' line='6136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_reset_device'>
+        <parameter type-id='25e60cb2' name='udev' filepath='drivers/usb/core/hub.c' line='6136' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_reset_endpoint' mangled-name='usb_reset_endpoint' filepath='drivers/usb/core/message.c' line='1318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_reset_endpoint'>
+        <parameter type-id='25e60cb2' name='dev' filepath='drivers/usb/core/message.c' line='1318' column='1'/>
+        <parameter type-id='f0981eeb' name='epaddr' filepath='drivers/usb/core/message.c' line='1318' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_role_string' mangled-name='usb_role_string' filepath='drivers/usb/roles/class.c' line='220' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_role_string'>
+        <parameter type-id='c675b073' name='role' filepath='drivers/usb/roles/class.c' line='220' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='usb_role_switch_find_by_fwnode' mangled-name='usb_role_switch_find_by_fwnode' filepath='drivers/usb/roles/class.c' line='187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_role_switch_find_by_fwnode'>
+        <parameter type-id='7837cd88' name='fwnode' filepath='drivers/usb/roles/class.c' line='187' column='1'/>
+        <return type-id='3e3cd44f'/>
+      </function-decl>
+      <function-decl name='usb_role_switch_get' mangled-name='usb_role_switch_get' filepath='drivers/usb/roles/class.c' line='126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_role_switch_get'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/roles/class.c' line='126' column='1'/>
+        <return type-id='3e3cd44f'/>
+      </function-decl>
+      <function-decl name='usb_role_switch_get_drvdata' mangled-name='usb_role_switch_get_drvdata' filepath='drivers/usb/roles/class.c' line='388' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_role_switch_get_drvdata'>
+        <parameter type-id='3e3cd44f' name='sw' filepath='drivers/usb/roles/class.c' line='388' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='usb_role_switch_put' mangled-name='usb_role_switch_put' filepath='drivers/usb/roles/class.c' line='170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_role_switch_put'>
+        <parameter type-id='3e3cd44f' name='sw' filepath='drivers/usb/roles/class.c' line='170' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_role_switch_register' mangled-name='usb_role_switch_register' filepath='drivers/usb/roles/class.c' line='318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_role_switch_register'>
+        <parameter type-id='fa0b179b' name='parent' filepath='drivers/usb/roles/class.c' line='318' column='1'/>
+        <parameter type-id='143d32b2' name='desc' filepath='drivers/usb/roles/class.c' line='319' column='1'/>
+        <return type-id='3e3cd44f'/>
+      </function-decl>
+      <function-decl name='usb_role_switch_set_role' mangled-name='usb_role_switch_set_role' filepath='drivers/usb/roles/class.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_role_switch_set_role'>
+        <parameter type-id='3e3cd44f' name='sw' filepath='drivers/usb/roles/class.c' line='42' column='1'/>
+        <parameter type-id='c675b073' name='role' filepath='drivers/usb/roles/class.c' line='42' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_role_switch_unregister' mangled-name='usb_role_switch_unregister' filepath='drivers/usb/roles/class.c' line='366' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_role_switch_unregister'>
+        <parameter type-id='3e3cd44f' name='sw' filepath='drivers/usb/roles/class.c' line='366' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_root_hub_lost_power' mangled-name='usb_root_hub_lost_power' filepath='drivers/usb/core/hub.c' line='3970' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_root_hub_lost_power'>
+        <parameter type-id='25e60cb2' name='rhdev' filepath='drivers/usb/core/hub.c' line='3970' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_scuttle_anchored_urbs' mangled-name='usb_scuttle_anchored_urbs' filepath='drivers/usb/core/urb.c' line='1018' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_scuttle_anchored_urbs'>
+        <parameter type-id='bd300bf3' name='anchor' filepath='drivers/usb/core/urb.c' line='1018' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_set_device_state' mangled-name='usb_set_device_state' filepath='drivers/usb/core/hub.c' line='2050' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_set_device_state'>
+        <parameter type-id='25e60cb2' name='udev' filepath='drivers/usb/core/hub.c' line='2050' column='1'/>
+        <parameter type-id='901a91cb' name='new_state' filepath='drivers/usb/core/hub.c' line='2051' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_set_interface' mangled-name='usb_set_interface' filepath='drivers/usb/core/message.c' line='1527' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_set_interface'>
+        <parameter type-id='25e60cb2' name='dev' filepath='drivers/usb/core/message.c' line='1527' column='1'/>
+        <parameter type-id='95e97e5e' name='interface' filepath='drivers/usb/core/message.c' line='1527' column='1'/>
+        <parameter type-id='95e97e5e' name='alternate' filepath='drivers/usb/core/message.c' line='1527' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_sg_cancel' mangled-name='usb_sg_cancel' filepath='drivers/usb/core/message.c' line='720' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_sg_cancel'>
+        <parameter type-id='56f81414' name='io' filepath='drivers/usb/core/message.c' line='720' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_sg_init' mangled-name='usb_sg_init' filepath='drivers/usb/core/message.c' line='501' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_sg_init'>
+        <parameter type-id='56f81414' name='io' filepath='drivers/usb/core/message.c' line='501' column='1'/>
+        <parameter type-id='25e60cb2' name='dev' filepath='drivers/usb/core/message.c' line='501' column='1'/>
+        <parameter type-id='f0981eeb' name='pipe' filepath='drivers/usb/core/message.c' line='502' column='1'/>
+        <parameter type-id='f0981eeb' name='period' filepath='drivers/usb/core/message.c' line='502' column='1'/>
+        <parameter type-id='bf3ef905' name='sg' filepath='drivers/usb/core/message.c' line='502' column='1'/>
+        <parameter type-id='95e97e5e' name='nents' filepath='drivers/usb/core/message.c' line='503' column='1'/>
+        <parameter type-id='b59d7dce' name='length' filepath='drivers/usb/core/message.c' line='503' column='1'/>
+        <parameter type-id='3eb7c31c' name='mem_flags' filepath='drivers/usb/core/message.c' line='503' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_sg_wait' mangled-name='usb_sg_wait' filepath='drivers/usb/core/message.c' line='650' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_sg_wait'>
+        <parameter type-id='56f81414' name='io' filepath='drivers/usb/core/message.c' line='650' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_show_dynids' mangled-name='usb_show_dynids' filepath='drivers/usb/core/driver.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_show_dynids'>
+        <parameter type-id='32c73a29' name='dynids' filepath='drivers/usb/core/driver.c' line='114' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='drivers/usb/core/driver.c' line='114' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='usb_speed_string' mangled-name='usb_speed_string' filepath='drivers/usb/common/common.c' line='91' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_speed_string'>
+        <parameter type-id='4e532009' name='speed' filepath='drivers/usb/common/common.c' line='91' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='usb_store_new_id' mangled-name='usb_store_new_id' filepath='drivers/usb/core/driver.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_store_new_id'>
+        <parameter type-id='32c73a29' name='dynids' filepath='drivers/usb/core/driver.c' line='42' column='1'/>
+        <parameter type-id='bc57058f' name='id_table' filepath='drivers/usb/core/driver.c' line='43' column='1'/>
+        <parameter type-id='00c7b870' name='driver' filepath='drivers/usb/core/driver.c' line='44' column='1'/>
+        <parameter type-id='80f4b756' name='buf' filepath='drivers/usb/core/driver.c' line='45' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='drivers/usb/core/driver.c' line='45' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='usb_string' mangled-name='usb_string' filepath='drivers/usb/core/message.c' line='967' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_string'>
+        <parameter type-id='25e60cb2' name='dev' filepath='drivers/usb/core/message.c' line='967' column='1'/>
+        <parameter type-id='95e97e5e' name='index' filepath='drivers/usb/core/message.c' line='967' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='drivers/usb/core/message.c' line='967' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='drivers/usb/core/message.c' line='967' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_string_id' mangled-name='usb_string_id' filepath='drivers/usb/gadget/composite.c' line='1288' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_string_id'>
+        <parameter type-id='2a895c01' name='cdev' filepath='drivers/usb/gadget/composite.c' line='1288' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_submit_urb' mangled-name='usb_submit_urb' filepath='drivers/usb/core/urb.c' line='367' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_submit_urb'>
+        <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/urb.c' line='367' column='1'/>
+        <parameter type-id='3eb7c31c' name='mem_flags' filepath='drivers/usb/core/urb.c' line='367' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_udc_vbus_handler' mangled-name='usb_udc_vbus_handler' filepath='drivers/usb/gadget/udc/core.c' line='1069' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_udc_vbus_handler'>
+        <parameter type-id='49a58c0c' name='gadget' filepath='drivers/usb/gadget/udc/core.c' line='1069' column='1'/>
+        <parameter type-id='b50a4934' name='status' filepath='drivers/usb/gadget/udc/core.c' line='1069' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_unanchor_urb' mangled-name='usb_unanchor_urb' filepath='drivers/usb/core/urb.c' line='164' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_unanchor_urb'>
+        <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/urb.c' line='164' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_unlink_anchored_urbs' mangled-name='usb_unlink_anchored_urbs' filepath='drivers/usb/core/urb.c' line='918' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_unlink_anchored_urbs'>
+        <parameter type-id='bd300bf3' name='anchor' filepath='drivers/usb/core/urb.c' line='918' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_unlink_urb' mangled-name='usb_unlink_urb' filepath='drivers/usb/core/urb.c' line='673' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_unlink_urb'>
+        <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/urb.c' line='673' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usb_unpoison_urb' mangled-name='usb_unpoison_urb' filepath='drivers/usb/core/urb.c' line='780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_unpoison_urb'>
+        <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/urb.c' line='780' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_unregister_notify' mangled-name='usb_unregister_notify' filepath='drivers/usb/core/notify.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_unregister_notify'>
+        <parameter type-id='d504f73d' name='nb' filepath='drivers/usb/core/notify.c' line='42' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usb_wakeup_notification' mangled-name='usb_wakeup_notification' filepath='drivers/usb/core/hub.c' line='700' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_wakeup_notification'>
+        <parameter type-id='25e60cb2' name='hdev' filepath='drivers/usb/core/hub.c' line='700' column='1'/>
+        <parameter type-id='f0981eeb' name='portnum' filepath='drivers/usb/core/hub.c' line='701' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usbnet_cdc_unbind' mangled-name='usbnet_cdc_unbind' filepath='drivers/net/usb/cdc_ether.c' line='360' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_cdc_unbind'>
+        <parameter type-id='12884b9a' name='dev' filepath='drivers/net/usb/cdc_ether.c' line='360' column='1'/>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/net/usb/cdc_ether.c' line='360' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usbnet_change_mtu' mangled-name='usbnet_change_mtu' filepath='drivers/net/usb/usbnet.c' line='392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_change_mtu'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/net/usb/usbnet.c' line='392' column='1'/>
+        <parameter type-id='95e97e5e' name='new_mtu' filepath='drivers/net/usb/usbnet.c' line='392' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usbnet_defer_kevent' mangled-name='usbnet_defer_kevent' filepath='drivers/net/usb/usbnet.c' line='468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_defer_kevent'>
+        <parameter type-id='12884b9a' name='dev' filepath='drivers/net/usb/usbnet.c' line='468' column='1'/>
+        <parameter type-id='95e97e5e' name='work' filepath='drivers/net/usb/usbnet.c' line='468' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usbnet_disconnect' mangled-name='usbnet_disconnect' filepath='drivers/net/usb/usbnet.c' line='1597' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_disconnect'>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/net/usb/usbnet.c' line='1597' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usbnet_generic_cdc_bind' mangled-name='usbnet_generic_cdc_bind' filepath='drivers/net/usb/cdc_ether.c' line='112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_generic_cdc_bind'>
+        <parameter type-id='12884b9a' name='dev' filepath='drivers/net/usb/cdc_ether.c' line='112' column='1'/>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/net/usb/cdc_ether.c' line='112' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usbnet_get_drvinfo' mangled-name='usbnet_get_drvinfo' filepath='drivers/net/usb/usbnet.c' line='1050' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_get_drvinfo'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/net/usb/usbnet.c' line='1050' column='1'/>
+        <parameter type-id='8c4c4029' name='info' filepath='drivers/net/usb/usbnet.c' line='1050' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usbnet_get_endpoints' mangled-name='usbnet_get_endpoints' filepath='drivers/net/usb/usbnet.c' line='95' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_get_endpoints'>
+        <parameter type-id='12884b9a' name='dev' filepath='drivers/net/usb/usbnet.c' line='95' column='1'/>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/net/usb/usbnet.c' line='95' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usbnet_get_ethernet_addr' mangled-name='usbnet_get_ethernet_addr' filepath='drivers/net/usb/usbnet.c' line='166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_get_ethernet_addr'>
+        <parameter type-id='12884b9a' name='dev' filepath='drivers/net/usb/usbnet.c' line='166' column='1'/>
+        <parameter type-id='95e97e5e' name='iMACAddress' filepath='drivers/net/usb/usbnet.c' line='166' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usbnet_get_link' mangled-name='usbnet_get_link' filepath='drivers/net/usb/usbnet.c' line='1022' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_get_link'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/net/usb/usbnet.c' line='1022' column='1'/>
+        <return type-id='19c2251e'/>
+      </function-decl>
+      <function-decl name='usbnet_get_link_ksettings_mii' mangled-name='usbnet_get_link_ksettings_mii' filepath='drivers/net/usb/usbnet.c' line='965' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_get_link_ksettings_mii'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/net/usb/usbnet.c' line='965' column='1'/>
+        <parameter type-id='70de91e2' name='cmd' filepath='drivers/net/usb/usbnet.c' line='966' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usbnet_get_msglevel' mangled-name='usbnet_get_msglevel' filepath='drivers/net/usb/usbnet.c' line='1061' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_get_msglevel'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/net/usb/usbnet.c' line='1061' column='1'/>
+        <return type-id='19c2251e'/>
+      </function-decl>
+      <function-decl name='usbnet_link_change' mangled-name='usbnet_link_change' filepath='drivers/net/usb/usbnet.c' line='1979' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_link_change'>
+        <parameter type-id='12884b9a' name='dev' filepath='drivers/net/usb/usbnet.c' line='1979' column='1'/>
+        <parameter type-id='b50a4934' name='link' filepath='drivers/net/usb/usbnet.c' line='1979' column='1'/>
+        <parameter type-id='b50a4934' name='need_reset' filepath='drivers/net/usb/usbnet.c' line='1979' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usbnet_nway_reset' mangled-name='usbnet_nway_reset' filepath='drivers/net/usb/usbnet.c' line='1039' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_nway_reset'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/net/usb/usbnet.c' line='1039' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usbnet_open' mangled-name='usbnet_open' filepath='drivers/net/usb/usbnet.c' line='873' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_open'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/net/usb/usbnet.c' line='873' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usbnet_probe' mangled-name='usbnet_probe' filepath='drivers/net/usb/usbnet.c' line='1662' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_probe'>
+        <parameter type-id='8bf48c31' name='udev' filepath='drivers/net/usb/usbnet.c' line='1662' column='1'/>
+        <parameter type-id='bc57058f' name='prod' filepath='drivers/net/usb/usbnet.c' line='1662' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usbnet_read_cmd' mangled-name='usbnet_read_cmd' filepath='drivers/net/usb/usbnet.c' line='2062' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_read_cmd'>
+        <parameter type-id='12884b9a' name='dev' filepath='drivers/net/usb/usbnet.c' line='2062' column='1'/>
+        <parameter type-id='f9b06939' name='cmd' filepath='drivers/net/usb/usbnet.c' line='2062' column='1'/>
+        <parameter type-id='f9b06939' name='reqtype' filepath='drivers/net/usb/usbnet.c' line='2062' column='1'/>
+        <parameter type-id='1dc6a898' name='value' filepath='drivers/net/usb/usbnet.c' line='2063' column='1'/>
+        <parameter type-id='1dc6a898' name='index' filepath='drivers/net/usb/usbnet.c' line='2063' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/net/usb/usbnet.c' line='2063' column='1'/>
+        <parameter type-id='1dc6a898' name='size' filepath='drivers/net/usb/usbnet.c' line='2063' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usbnet_read_cmd_nopm' mangled-name='usbnet_read_cmd_nopm' filepath='drivers/net/usb/usbnet.c' line='2098' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_read_cmd_nopm'>
+        <parameter type-id='12884b9a' name='dev' filepath='drivers/net/usb/usbnet.c' line='2098' column='1'/>
+        <parameter type-id='f9b06939' name='cmd' filepath='drivers/net/usb/usbnet.c' line='2098' column='1'/>
+        <parameter type-id='f9b06939' name='reqtype' filepath='drivers/net/usb/usbnet.c' line='2098' column='1'/>
+        <parameter type-id='1dc6a898' name='value' filepath='drivers/net/usb/usbnet.c' line='2099' column='1'/>
+        <parameter type-id='1dc6a898' name='index' filepath='drivers/net/usb/usbnet.c' line='2099' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/net/usb/usbnet.c' line='2099' column='1'/>
+        <parameter type-id='1dc6a898' name='size' filepath='drivers/net/usb/usbnet.c' line='2099' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usbnet_resume' mangled-name='usbnet_resume' filepath='drivers/net/usb/usbnet.c' line='1902' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_resume'>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/net/usb/usbnet.c' line='1902' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usbnet_set_link_ksettings_mii' mangled-name='usbnet_set_link_ksettings_mii' filepath='drivers/net/usb/usbnet.c' line='1000' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_set_link_ksettings_mii'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/net/usb/usbnet.c' line='1000' column='1'/>
+        <parameter type-id='b2c34f11' name='cmd' filepath='drivers/net/usb/usbnet.c' line='1001' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usbnet_set_msglevel' mangled-name='usbnet_set_msglevel' filepath='drivers/net/usb/usbnet.c' line='1069' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_set_msglevel'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/net/usb/usbnet.c' line='1069' column='1'/>
+        <parameter type-id='19c2251e' name='level' filepath='drivers/net/usb/usbnet.c' line='1069' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usbnet_skb_return' mangled-name='usbnet_skb_return' filepath='drivers/net/usb/usbnet.c' line='322' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_skb_return'>
+        <parameter type-id='12884b9a' name='dev' filepath='drivers/net/usb/usbnet.c' line='322' column='1'/>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='drivers/net/usb/usbnet.c' line='322' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usbnet_start_xmit' mangled-name='usbnet_start_xmit' filepath='drivers/net/usb/usbnet.c' line='1351' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_start_xmit'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='drivers/net/usb/usbnet.c' line='1351' column='1'/>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/net/usb/usbnet.c' line='1352' column='1'/>
+        <return type-id='6849a88c'/>
+      </function-decl>
+      <function-decl name='usbnet_stop' mangled-name='usbnet_stop' filepath='drivers/net/usb/usbnet.c' line='813' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_stop'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/net/usb/usbnet.c' line='813' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usbnet_suspend' mangled-name='usbnet_suspend' filepath='drivers/net/usb/usbnet.c' line='1869' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_suspend'>
+        <parameter type-id='8bf48c31' name='intf' filepath='drivers/net/usb/usbnet.c' line='1869' column='1'/>
+        <parameter type-id='08496218' name='message' filepath='drivers/net/usb/usbnet.c' line='1869' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usbnet_tx_timeout' mangled-name='usbnet_tx_timeout' filepath='drivers/net/usb/usbnet.c' line='1301' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_tx_timeout'>
+        <parameter type-id='68a2d05b' name='net' filepath='drivers/net/usb/usbnet.c' line='1301' column='1'/>
+        <parameter type-id='f0981eeb' name='txqueue' filepath='drivers/net/usb/usbnet.c' line='1301' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usbnet_unlink_rx_urbs' mangled-name='usbnet_unlink_rx_urbs' filepath='drivers/net/usb/usbnet.c' line='766' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_unlink_rx_urbs'>
+        <parameter type-id='12884b9a' name='dev' filepath='drivers/net/usb/usbnet.c' line='766' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usbnet_update_max_qlen' mangled-name='usbnet_update_max_qlen' filepath='drivers/net/usb/usbnet.c' line='357' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_update_max_qlen'>
+        <parameter type-id='12884b9a' name='dev' filepath='drivers/net/usb/usbnet.c' line='357' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usbnet_write_cmd' mangled-name='usbnet_write_cmd' filepath='drivers/net/usb/usbnet.c' line='2080' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_write_cmd'>
+        <parameter type-id='12884b9a' name='dev' filepath='drivers/net/usb/usbnet.c' line='2080' column='1'/>
+        <parameter type-id='f9b06939' name='cmd' filepath='drivers/net/usb/usbnet.c' line='2080' column='1'/>
+        <parameter type-id='f9b06939' name='reqtype' filepath='drivers/net/usb/usbnet.c' line='2080' column='1'/>
+        <parameter type-id='1dc6a898' name='value' filepath='drivers/net/usb/usbnet.c' line='2081' column='1'/>
+        <parameter type-id='1dc6a898' name='index' filepath='drivers/net/usb/usbnet.c' line='2081' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/net/usb/usbnet.c' line='2081' column='1'/>
+        <parameter type-id='1dc6a898' name='size' filepath='drivers/net/usb/usbnet.c' line='2081' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usbnet_write_cmd_async' mangled-name='usbnet_write_cmd_async' filepath='drivers/net/usb/usbnet.c' line='2136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_write_cmd_async'>
+        <parameter type-id='12884b9a' name='dev' filepath='drivers/net/usb/usbnet.c' line='2136' column='1'/>
+        <parameter type-id='f9b06939' name='cmd' filepath='drivers/net/usb/usbnet.c' line='2136' column='1'/>
+        <parameter type-id='f9b06939' name='reqtype' filepath='drivers/net/usb/usbnet.c' line='2136' column='1'/>
+        <parameter type-id='1dc6a898' name='value' filepath='drivers/net/usb/usbnet.c' line='2137' column='1'/>
+        <parameter type-id='1dc6a898' name='index' filepath='drivers/net/usb/usbnet.c' line='2137' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/net/usb/usbnet.c' line='2137' column='1'/>
+        <parameter type-id='1dc6a898' name='size' filepath='drivers/net/usb/usbnet.c' line='2137' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='usbnet_write_cmd_nopm' mangled-name='usbnet_write_cmd_nopm' filepath='drivers/net/usb/usbnet.c' line='2110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_write_cmd_nopm'>
+        <parameter type-id='12884b9a' name='dev' filepath='drivers/net/usb/usbnet.c' line='2110' column='1'/>
+        <parameter type-id='f9b06939' name='cmd' filepath='drivers/net/usb/usbnet.c' line='2110' column='1'/>
+        <parameter type-id='f9b06939' name='reqtype' filepath='drivers/net/usb/usbnet.c' line='2110' column='1'/>
+        <parameter type-id='1dc6a898' name='value' filepath='drivers/net/usb/usbnet.c' line='2111' column='1'/>
+        <parameter type-id='1dc6a898' name='index' filepath='drivers/net/usb/usbnet.c' line='2111' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/net/usb/usbnet.c' line='2111' column='1'/>
+        <parameter type-id='1dc6a898' name='size' filepath='drivers/net/usb/usbnet.c' line='2112' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='user_destroy' mangled-name='user_destroy' filepath='security/keys/user_defined.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='user_destroy'>
+        <parameter type-id='204a4632' name='key' filepath='security/keys/user_defined.c' line='146' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='user_read' mangled-name='user_read' filepath='security/keys/user_defined.c' line='171' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='user_read'>
+        <parameter type-id='7572cb33' name='key' filepath='security/keys/user_defined.c' line='171' column='1'/>
+        <parameter type-id='26a90f95' name='buffer' filepath='security/keys/user_defined.c' line='171' column='1'/>
+        <parameter type-id='b59d7dce' name='buflen' filepath='security/keys/user_defined.c' line='171' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='user_revoke' mangled-name='user_revoke' filepath='security/keys/user_defined.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='user_revoke'>
+        <parameter type-id='204a4632' name='key' filepath='security/keys/user_defined.c' line='128' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='usleep_range_state' mangled-name='usleep_range_state' filepath='kernel/time/timer.c' line='2077' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usleep_range_state'>
+        <parameter type-id='7359adad' name='min' filepath='kernel/time/timer.c' line='2077' column='1'/>
+        <parameter type-id='7359adad' name='max' filepath='kernel/time/timer.c' line='2077' column='1'/>
+        <parameter type-id='f0981eeb' name='state' filepath='kernel/time/timer.c' line='2078' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='utf16s_to_utf8s' mangled-name='utf16s_to_utf8s' filepath='fs/nls/nls_base.c' line='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='utf16s_to_utf8s'>
+        <parameter type-id='f077d3f8' name='pwcs' filepath='fs/nls/nls_base.c' line='186' column='1'/>
+        <parameter type-id='95e97e5e' name='inlen' filepath='fs/nls/nls_base.c' line='186' column='1'/>
+        <parameter type-id='11d12470' name='endian' filepath='fs/nls/nls_base.c' line='186' column='1'/>
+        <parameter type-id='8bff8096' name='s' filepath='fs/nls/nls_base.c' line='187' column='1'/>
+        <parameter type-id='95e97e5e' name='maxout' filepath='fs/nls/nls_base.c' line='187' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='utf8_casefold' mangled-name='utf8_casefold' filepath='fs/unicode/utf8-core.c' line='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='utf8_casefold'>
+        <parameter type-id='a8463e24' name='um' filepath='fs/unicode/utf8-core.c' line='105' column='1'/>
+        <parameter type-id='43a0eb6c' name='str' filepath='fs/unicode/utf8-core.c' line='105' column='1'/>
+        <parameter type-id='cf536864' name='dest' filepath='fs/unicode/utf8-core.c' line='106' column='1'/>
+        <parameter type-id='b59d7dce' name='dlen' filepath='fs/unicode/utf8-core.c' line='106' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='utf8_load' mangled-name='utf8_load' filepath='fs/unicode/utf8-core.c' line='195' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='utf8_load'>
+        <parameter type-id='80f4b756' name='version' filepath='fs/unicode/utf8-core.c' line='195' column='1'/>
+        <return type-id='72835629'/>
+      </function-decl>
+      <function-decl name='utf8_strncasecmp_folded' mangled-name='utf8_strncasecmp_folded' filepath='fs/unicode/utf8-core.c' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='utf8_strncasecmp_folded'>
+        <parameter type-id='a8463e24' name='um' filepath='fs/unicode/utf8-core.c' line='80' column='1'/>
+        <parameter type-id='43a0eb6c' name='cf' filepath='fs/unicode/utf8-core.c' line='81' column='1'/>
+        <parameter type-id='43a0eb6c' name='s1' filepath='fs/unicode/utf8-core.c' line='82' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='utf8_to_utf32' mangled-name='utf8_to_utf32' filepath='fs/nls/nls_base.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='utf8_to_utf32'>
+        <parameter type-id='bbaf3419' name='s' filepath='fs/nls/nls_base.c' line='55' column='1'/>
+        <parameter type-id='95e97e5e' name='inlen' filepath='fs/nls/nls_base.c' line='55' column='1'/>
+        <parameter type-id='9a88b2e3' name='pu' filepath='fs/nls/nls_base.c' line='55' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='utf8_unload' mangled-name='utf8_unload' filepath='fs/unicode/utf8-core.c' line='230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='utf8_unload'>
+        <parameter type-id='72835629' name='um' filepath='fs/unicode/utf8-core.c' line='230' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='utf8s_to_utf16s' mangled-name='utf8s_to_utf16s' filepath='fs/nls/nls_base.c' line='132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='utf8s_to_utf16s'>
+        <parameter type-id='bbaf3419' name='s' filepath='fs/nls/nls_base.c' line='132' column='1'/>
+        <parameter type-id='95e97e5e' name='inlen' filepath='fs/nls/nls_base.c' line='132' column='1'/>
+        <parameter type-id='11d12470' name='endian' filepath='fs/nls/nls_base.c' line='132' column='1'/>
+        <parameter type-id='323d93c1' name='pwcs' filepath='fs/nls/nls_base.c' line='133' column='1'/>
+        <parameter type-id='95e97e5e' name='maxout' filepath='fs/nls/nls_base.c' line='133' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='uuid_gen' mangled-name='uuid_gen' filepath='lib/uuid.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uuid_gen'>
+        <parameter type-id='f1397309' name='bu' filepath='lib/uuid.c' line='68' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='uuid_null' type-id='21109a44' mangled-name='uuid_null' visibility='default' filepath='lib/uuid.c' line='18' column='1' elf-symbol-id='uuid_null'/>
+      <function-decl name='uuid_parse' mangled-name='uuid_parse' filepath='lib/uuid.c' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uuid_parse'>
+        <parameter type-id='80f4b756' name='uuid' filepath='lib/uuid.c' line='129' column='1'/>
+        <parameter type-id='f1397309' name='u' filepath='lib/uuid.c' line='129' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_compat_ioctl32' mangled-name='v4l2_compat_ioctl32' filepath='drivers/media/v4l2-core/v4l2-compat-ioctl32.c' line='1234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_compat_ioctl32'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-compat-ioctl32.c' line='1234' column='1'/>
+        <parameter type-id='f0981eeb' name='cmd' filepath='drivers/media/v4l2-core/v4l2-compat-ioctl32.c' line='1234' column='1'/>
+        <parameter type-id='7359adad' name='arg' filepath='drivers/media/v4l2-core/v4l2-compat-ioctl32.c' line='1234' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_add_handler' mangled-name='v4l2_ctrl_add_handler' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1548' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_add_handler'>
+        <parameter type-id='2b59fa5e' name='hdl' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1548' column='1'/>
+        <parameter type-id='2b59fa5e' name='add' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1549' column='1'/>
+        <parameter type-id='3177a274' name='filter' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1550' column='1'/>
+        <parameter type-id='b50a4934' name='from_other_dev' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1551' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_auto_cluster' mangled-name='v4l2_ctrl_auto_cluster' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_auto_cluster'>
+        <parameter type-id='f0981eeb' name='ncontrols' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1626' column='1'/>
+        <parameter type-id='c517999b' name='controls' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1626' column='1'/>
+        <parameter type-id='f9b06939' name='manual_val' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1627' column='1'/>
+        <parameter type-id='b50a4934' name='set_volatile' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1627' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_cluster' mangled-name='v4l2_ctrl_cluster' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1605' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_cluster'>
+        <parameter type-id='f0981eeb' name='ncontrols' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1605' column='1'/>
+        <parameter type-id='c517999b' name='controls' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1605' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_find' mangled-name='v4l2_ctrl_find' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1069' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_find'>
+        <parameter type-id='2b59fa5e' name='hdl' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1069' column='1'/>
+        <parameter type-id='19c2251e' name='id' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1069' column='1'/>
+        <return type-id='4b8b2cf3'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_g_ctrl' mangled-name='v4l2_ctrl_g_ctrl' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='805' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_g_ctrl'>
+        <parameter type-id='4b8b2cf3' name='ctrl' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='805' column='1'/>
+        <return type-id='a7832498'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_g_ctrl_int64' mangled-name='v4l2_ctrl_g_ctrl_int64' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='818' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_g_ctrl_int64'>
+        <parameter type-id='4b8b2cf3' name='ctrl' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='818' column='1'/>
+        <return type-id='9b7c55ef'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_get_name' mangled-name='v4l2_ctrl_get_name' filepath='drivers/media/v4l2-core/v4l2-ctrls-defs.c' line='742' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_get_name'>
+        <parameter type-id='19c2251e' name='id' filepath='drivers/media/v4l2-core/v4l2-ctrls-defs.c' line='742' column='1'/>
+        <return type-id='80f4b756'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_handler_free' mangled-name='v4l2_ctrl_handler_free' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='968' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_handler_free'>
+        <parameter type-id='2b59fa5e' name='hdl' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='968' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_handler_init_class' mangled-name='v4l2_ctrl_handler_init_class' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='948' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_handler_init_class'>
+        <parameter type-id='2b59fa5e' name='hdl' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='948' column='1'/>
+        <parameter type-id='f0981eeb' name='nr_of_controls_hint' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='949' column='1'/>
+        <parameter type-id='a57283f9' name='key' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='950' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='950' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_handler_setup' mangled-name='v4l2_ctrl_handler_setup' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1855' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_handler_setup'>
+        <parameter type-id='2b59fa5e' name='hdl' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1855' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_log_status' mangled-name='v4l2_ctrl_log_status' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='1120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_log_status'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='1120' column='1'/>
+        <parameter type-id='eaa32e2f' name='fh' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='1120' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_new_custom' mangled-name='v4l2_ctrl_new_custom' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1371' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_new_custom'>
+        <parameter type-id='2b59fa5e' name='hdl' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1371' column='1'/>
+        <parameter type-id='45c81897' name='cfg' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1372' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1372' column='1'/>
+        <return type-id='4b8b2cf3'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_new_int_menu' mangled-name='v4l2_ctrl_new_int_menu' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_new_int_menu'>
+        <parameter type-id='2b59fa5e' name='hdl' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1524' column='1'/>
+        <parameter type-id='1086b623' name='ops' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1525' column='1'/>
+        <parameter type-id='19c2251e' name='id' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1526' column='1'/>
+        <parameter type-id='f9b06939' name='_max' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1526' column='1'/>
+        <parameter type-id='f9b06939' name='_def' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1526' column='1'/>
+        <parameter type-id='43ae54cf' name='qmenu_int' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1526' column='1'/>
+        <return type-id='4b8b2cf3'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_new_std' mangled-name='v4l2_ctrl_new_std' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1415' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_new_std'>
+        <parameter type-id='2b59fa5e' name='hdl' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1415' column='1'/>
+        <parameter type-id='1086b623' name='ops' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1416' column='1'/>
+        <parameter type-id='19c2251e' name='id' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1417' column='1'/>
+        <parameter type-id='9b7c55ef' name='min' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1417' column='1'/>
+        <parameter type-id='9b7c55ef' name='max' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1417' column='1'/>
+        <parameter type-id='91ce1af9' name='step' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1417' column='1'/>
+        <parameter type-id='9b7c55ef' name='def' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1417' column='1'/>
+        <return type-id='4b8b2cf3'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_new_std_menu' mangled-name='v4l2_ctrl_new_std_menu' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1437' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_new_std_menu'>
+        <parameter type-id='2b59fa5e' name='hdl' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1437' column='1'/>
+        <parameter type-id='1086b623' name='ops' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1438' column='1'/>
+        <parameter type-id='19c2251e' name='id' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1439' column='1'/>
+        <parameter type-id='f9b06939' name='_max' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1439' column='1'/>
+        <parameter type-id='91ce1af9' name='mask' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1439' column='1'/>
+        <parameter type-id='f9b06939' name='_def' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1439' column='1'/>
+        <return type-id='4b8b2cf3'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_new_std_menu_items' mangled-name='v4l2_ctrl_new_std_menu_items' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1470' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_new_std_menu_items'>
+        <parameter type-id='2b59fa5e' name='hdl' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1470' column='1'/>
+        <parameter type-id='1086b623' name='ops' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1471' column='1'/>
+        <parameter type-id='19c2251e' name='id' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1471' column='1'/>
+        <parameter type-id='f9b06939' name='_max' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1471' column='1'/>
+        <parameter type-id='91ce1af9' name='mask' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1472' column='1'/>
+        <parameter type-id='f9b06939' name='_def' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1472' column='1'/>
+        <parameter type-id='13956559' name='qmenu' filepath='drivers/media/v4l2-core/v4l2-ctrls-core.c' line='1472' column='1'/>
+        <return type-id='4b8b2cf3'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_poll' mangled-name='v4l2_ctrl_poll' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='1216' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_poll'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='1216' column='1'/>
+        <parameter type-id='f0acc909' name='wait' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='1216' column='1'/>
+        <return type-id='8f254b08'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_request_complete' mangled-name='v4l2_ctrl_request_complete' filepath='drivers/media/v4l2-core/v4l2-ctrls-request.c' line='324' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_request_complete'>
+        <parameter type-id='ac429605' name='req' filepath='drivers/media/v4l2-core/v4l2-ctrls-request.c' line='324' column='1'/>
+        <parameter type-id='2b59fa5e' name='main_hdl' filepath='drivers/media/v4l2-core/v4l2-ctrls-request.c' line='325' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_request_setup' mangled-name='v4l2_ctrl_request_setup' filepath='drivers/media/v4l2-core/v4l2-ctrls-request.c' line='395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_request_setup'>
+        <parameter type-id='ac429605' name='req' filepath='drivers/media/v4l2-core/v4l2-ctrls-request.c' line='395' column='1'/>
+        <parameter type-id='2b59fa5e' name='main_hdl' filepath='drivers/media/v4l2-core/v4l2-ctrls-request.c' line='396' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_subdev_log_status' mangled-name='v4l2_ctrl_subdev_log_status' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='1132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_subdev_log_status'>
+        <parameter type-id='f5438ac7' name='sd' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='1132' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_subdev_subscribe_event' mangled-name='v4l2_ctrl_subdev_subscribe_event' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='1204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_subdev_subscribe_event'>
+        <parameter type-id='f5438ac7' name='sd' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='1204' column='1'/>
+        <parameter type-id='b7db9582' name='fh' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='1204' column='1'/>
+        <parameter type-id='8edac644' name='sub' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='1205' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_ctrl_subscribe_event' mangled-name='v4l2_ctrl_subscribe_event' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='1195' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_ctrl_subscribe_event'>
+        <parameter type-id='b7db9582' name='fh' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='1195' column='1'/>
+        <parameter type-id='d8c85275' name='sub' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='1196' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_device_register' mangled-name='v4l2_device_register' filepath='drivers/media/v4l2-core/v4l2-device.c' line='17' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_device_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/media/v4l2-core/v4l2-device.c' line='17' column='1'/>
+        <parameter type-id='ddfb71fa' name='v4l2_dev' filepath='drivers/media/v4l2-core/v4l2-device.c' line='17' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_device_register_subdev' mangled-name='v4l2_device_register_subdev' filepath='drivers/media/v4l2-core/v4l2-device.c' line='111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_device_register_subdev'>
+        <parameter type-id='ddfb71fa' name='v4l2_dev' filepath='drivers/media/v4l2-core/v4l2-device.c' line='111' column='1'/>
+        <parameter type-id='f5438ac7' name='sd' filepath='drivers/media/v4l2-core/v4l2-device.c' line='112' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_device_set_name' mangled-name='v4l2_device_set_name' filepath='drivers/media/v4l2-core/v4l2-device.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_device_set_name'>
+        <parameter type-id='ddfb71fa' name='v4l2_dev' filepath='drivers/media/v4l2-core/v4l2-device.c' line='60' column='1'/>
+        <parameter type-id='80f4b756' name='basename' filepath='drivers/media/v4l2-core/v4l2-device.c' line='60' column='1'/>
+        <parameter type-id='8a47abc3' name='instance' filepath='drivers/media/v4l2-core/v4l2-device.c' line='61' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_device_unregister' mangled-name='v4l2_device_unregister' filepath='drivers/media/v4l2-core/v4l2-device.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_device_unregister'>
+        <parameter type-id='ddfb71fa' name='v4l2_dev' filepath='drivers/media/v4l2-core/v4l2-device.c' line='88' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_device_unregister_subdev' mangled-name='v4l2_device_unregister_subdev' filepath='drivers/media/v4l2-core/v4l2-device.c' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_device_unregister_subdev'>
+        <parameter type-id='f5438ac7' name='sd' filepath='drivers/media/v4l2-core/v4l2-device.c' line='261' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_event_dequeue' mangled-name='v4l2_event_dequeue' filepath='drivers/media/v4l2-core/v4l2-event.c' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_event_dequeue'>
+        <parameter type-id='b7db9582' name='fh' filepath='drivers/media/v4l2-core/v4l2-event.c' line='59' column='1'/>
+        <parameter type-id='a5c94ccc' name='event' filepath='drivers/media/v4l2-core/v4l2-event.c' line='59' column='1'/>
+        <parameter type-id='95e97e5e' name='nonblocking' filepath='drivers/media/v4l2-core/v4l2-event.c' line='60' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_event_pending' mangled-name='v4l2_event_pending' filepath='drivers/media/v4l2-core/v4l2-event.c' line='184' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_event_pending'>
+        <parameter type-id='b7db9582' name='fh' filepath='drivers/media/v4l2-core/v4l2-event.c' line='184' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_event_queue' mangled-name='v4l2_event_queue' filepath='drivers/media/v4l2-core/v4l2-event.c' line='153' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_event_queue'>
+        <parameter type-id='798c29b7' name='vdev' filepath='drivers/media/v4l2-core/v4l2-event.c' line='153' column='1'/>
+        <parameter type-id='52009e4b' name='ev' filepath='drivers/media/v4l2-core/v4l2-event.c' line='153' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_event_queue_fh' mangled-name='v4l2_event_queue_fh' filepath='drivers/media/v4l2-core/v4l2-event.c' line='173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_event_queue_fh'>
+        <parameter type-id='b7db9582' name='fh' filepath='drivers/media/v4l2-core/v4l2-event.c' line='173' column='1'/>
+        <parameter type-id='52009e4b' name='ev' filepath='drivers/media/v4l2-core/v4l2-event.c' line='173' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_event_subdev_unsubscribe' mangled-name='v4l2_event_subdev_unsubscribe' filepath='drivers/media/v4l2-core/v4l2-event.c' line='332' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_event_subdev_unsubscribe'>
+        <parameter type-id='f5438ac7' name='sd' filepath='drivers/media/v4l2-core/v4l2-event.c' line='332' column='1'/>
+        <parameter type-id='b7db9582' name='fh' filepath='drivers/media/v4l2-core/v4l2-event.c' line='332' column='1'/>
+        <parameter type-id='8edac644' name='sub' filepath='drivers/media/v4l2-core/v4l2-event.c' line='333' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_event_subscribe' mangled-name='v4l2_event_subscribe' filepath='drivers/media/v4l2-core/v4l2-event.c' line='223' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_event_subscribe'>
+        <parameter type-id='b7db9582' name='fh' filepath='drivers/media/v4l2-core/v4l2-event.c' line='223' column='1'/>
+        <parameter type-id='d8c85275' name='sub' filepath='drivers/media/v4l2-core/v4l2-event.c' line='224' column='1'/>
+        <parameter type-id='f0981eeb' name='elems' filepath='drivers/media/v4l2-core/v4l2-event.c' line='224' column='1'/>
+        <parameter type-id='d66d2cad' name='ops' filepath='drivers/media/v4l2-core/v4l2-event.c' line='225' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_event_unsubscribe' mangled-name='v4l2_event_unsubscribe' filepath='drivers/media/v4l2-core/v4l2-event.c' line='300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_event_unsubscribe'>
+        <parameter type-id='b7db9582' name='fh' filepath='drivers/media/v4l2-core/v4l2-event.c' line='300' column='1'/>
+        <parameter type-id='d8c85275' name='sub' filepath='drivers/media/v4l2-core/v4l2-event.c' line='301' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_fh_add' mangled-name='v4l2_fh_add' filepath='drivers/media/v4l2-core/v4l2-fh.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_fh_add'>
+        <parameter type-id='b7db9582' name='fh' filepath='drivers/media/v4l2-core/v4l2-fh.c' line='44' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_fh_del' mangled-name='v4l2_fh_del' filepath='drivers/media/v4l2-core/v4l2-fh.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_fh_del'>
+        <parameter type-id='b7db9582' name='fh' filepath='drivers/media/v4l2-core/v4l2-fh.c' line='69' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_fh_exit' mangled-name='v4l2_fh_exit' filepath='drivers/media/v4l2-core/v4l2-fh.c' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_fh_exit'>
+        <parameter type-id='b7db9582' name='fh' filepath='drivers/media/v4l2-core/v4l2-fh.c' line='80' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_fh_init' mangled-name='v4l2_fh_init' filepath='drivers/media/v4l2-core/v4l2-fh.c' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_fh_init'>
+        <parameter type-id='b7db9582' name='fh' filepath='drivers/media/v4l2-core/v4l2-fh.c' line='21' column='1'/>
+        <parameter type-id='798c29b7' name='vdev' filepath='drivers/media/v4l2-core/v4l2-fh.c' line='21' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_fh_is_singular' mangled-name='v4l2_fh_is_singular' filepath='drivers/media/v4l2-core/v4l2-fh.c' line='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_fh_is_singular'>
+        <parameter type-id='b7db9582' name='fh' filepath='drivers/media/v4l2-core/v4l2-fh.c' line='105' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_fh_open' mangled-name='v4l2_fh_open' filepath='drivers/media/v4l2-core/v4l2-fh.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_fh_open'>
+        <parameter type-id='77e79a4b' name='filp' filepath='drivers/media/v4l2-core/v4l2-fh.c' line='55' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_fh_release' mangled-name='v4l2_fh_release' filepath='drivers/media/v4l2-core/v4l2-fh.c' line='91' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_fh_release'>
+        <parameter type-id='77e79a4b' name='filp' filepath='drivers/media/v4l2-core/v4l2-fh.c' line='91' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_format_info' mangled-name='v4l2_format_info' filepath='drivers/media/v4l2-core/v4l2-common.c' line='234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_format_info'>
+        <parameter type-id='19c2251e' name='format' filepath='drivers/media/v4l2-core/v4l2-common.c' line='234' column='1'/>
+        <return type-id='2af873af'/>
+      </function-decl>
+      <function-decl name='v4l2_g_ctrl' mangled-name='v4l2_g_ctrl' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='723' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_g_ctrl'>
+        <parameter type-id='2b59fa5e' name='hdl' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='723' column='1'/>
+        <parameter type-id='bcd28457' name='control' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='723' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_g_parm_cap' mangled-name='v4l2_g_parm_cap' filepath='drivers/media/v4l2-core/v4l2-common.c' line='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_g_parm_cap'>
+        <parameter type-id='798c29b7' name='vdev' filepath='drivers/media/v4l2-core/v4l2-common.c' line='186' column='1'/>
+        <parameter type-id='f5438ac7' name='sd' filepath='drivers/media/v4l2-core/v4l2-common.c' line='187' column='1'/>
+        <parameter type-id='cd10cf8e' name='a' filepath='drivers/media/v4l2-core/v4l2-common.c' line='187' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_i2c_new_subdev' mangled-name='v4l2_i2c_new_subdev' filepath='drivers/media/v4l2-core/v4l2-i2c.c' line='119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_i2c_new_subdev'>
+        <parameter type-id='ddfb71fa' name='v4l2_dev' filepath='drivers/media/v4l2-core/v4l2-i2c.c' line='119' column='1'/>
+        <parameter type-id='b9af02c3' name='adapter' filepath='drivers/media/v4l2-core/v4l2-i2c.c' line='120' column='1'/>
+        <parameter type-id='80f4b756' name='client_type' filepath='drivers/media/v4l2-core/v4l2-i2c.c' line='121' column='1'/>
+        <parameter type-id='f9b06939' name='addr' filepath='drivers/media/v4l2-core/v4l2-i2c.c' line='122' column='1'/>
+        <parameter type-id='31347b7a' name='probe_addrs' filepath='drivers/media/v4l2-core/v4l2-i2c.c' line='123' column='1'/>
+        <return type-id='f5438ac7'/>
+      </function-decl>
+      <function-decl name='v4l2_i2c_subdev_init' mangled-name='v4l2_i2c_subdev_init' filepath='drivers/media/v4l2-core/v4l2-i2c.c' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_i2c_subdev_init'>
+        <parameter type-id='f5438ac7' name='sd' filepath='drivers/media/v4l2-core/v4l2-i2c.c' line='45' column='1'/>
+        <parameter type-id='3e31633b' name='client' filepath='drivers/media/v4l2-core/v4l2-i2c.c' line='45' column='1'/>
+        <parameter type-id='040770fb' name='ops' filepath='drivers/media/v4l2-core/v4l2-i2c.c' line='46' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_buf_copy_metadata' mangled-name='v4l2_m2m_buf_copy_metadata' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_buf_copy_metadata'>
+        <parameter type-id='6d9d7f04' name='out_vb' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1271' column='1'/>
+        <parameter type-id='9a42d4cd' name='cap_vb' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1272' column='1'/>
+        <parameter type-id='b50a4934' name='copy_frame_flags' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1273' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_buf_queue' mangled-name='v4l2_m2m_buf_queue' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1252' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_buf_queue'>
+        <parameter type-id='2c7f1dc4' name='m2m_ctx' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1252' column='1'/>
+        <parameter type-id='9a42d4cd' name='vbuf' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1253' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_buf_remove' mangled-name='v4l2_m2m_buf_remove' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='172' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_buf_remove'>
+        <parameter type-id='c8acc294' name='q_ctx' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='172' column='1'/>
+        <return type-id='9a42d4cd'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_ctx_init' mangled-name='v4l2_m2m_ctx_init' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1193' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_ctx_init'>
+        <parameter type-id='b50ade7a' name='m2m_dev' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1193' column='1'/>
+        <parameter type-id='eaa32e2f' name='drv_priv' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1194' column='1'/>
+        <parameter type-id='2291cc15' name='queue_init' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1195' column='1'/>
+        <return type-id='2c7f1dc4'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_ctx_release' mangled-name='v4l2_m2m_ctx_release' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_ctx_release'>
+        <parameter type-id='2c7f1dc4' name='m2m_ctx' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1240' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_dqbuf' mangled-name='v4l2_m2m_dqbuf' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='796' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_dqbuf'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='796' column='1'/>
+        <parameter type-id='2c7f1dc4' name='m2m_ctx' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='796' column='1'/>
+        <parameter type-id='a90d9002' name='buf' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='797' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_fop_mmap' mangled-name='v4l2_m2m_fop_mmap' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1572' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_fop_mmap'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1572' column='1'/>
+        <parameter type-id='2ae08426' name='vma' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1572' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_fop_poll' mangled-name='v4l2_m2m_fop_poll' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1580' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_fop_poll'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1580' column='1'/>
+        <parameter type-id='a54c778f' name='wait' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1580' column='1'/>
+        <return type-id='8f254b08'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_get_curr_priv' mangled-name='v4l2_m2m_get_curr_priv' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_get_curr_priv'>
+        <parameter type-id='b50ade7a' name='m2m_dev' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='232' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_get_vq' mangled-name='v4l2_m2m_get_vq' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_get_vq'>
+        <parameter type-id='2c7f1dc4' name='m2m_ctx' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='123' column='1'/>
+        <parameter type-id='1abf108f' name='type' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='124' column='1'/>
+        <return type-id='a05f1ecd'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_init' mangled-name='v4l2_m2m_init' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_init'>
+        <parameter type-id='22f8026c' name='m2m_ops' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1166' column='1'/>
+        <return type-id='b50ade7a'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_ioctl_create_bufs' mangled-name='v4l2_m2m_ioctl_create_bufs' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_ioctl_create_bufs'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1349' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1349' column='1'/>
+        <parameter type-id='0bb617a4' name='create' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1350' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_ioctl_dqbuf' mangled-name='v4l2_m2m_ioctl_dqbuf' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1376' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_ioctl_dqbuf'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1376' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1376' column='1'/>
+        <parameter type-id='a90d9002' name='buf' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1377' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_ioctl_expbuf' mangled-name='v4l2_m2m_ioctl_expbuf' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1394' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_ioctl_expbuf'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1394' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1394' column='1'/>
+        <parameter type-id='5606e640' name='eb' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1395' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_ioctl_prepare_buf' mangled-name='v4l2_m2m_ioctl_prepare_buf' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_ioctl_prepare_buf'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1385' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1385' column='1'/>
+        <parameter type-id='a90d9002' name='buf' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1386' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_ioctl_qbuf' mangled-name='v4l2_m2m_ioctl_qbuf' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1367' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_ioctl_qbuf'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1367' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1367' column='1'/>
+        <parameter type-id='a90d9002' name='buf' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1368' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_ioctl_querybuf' mangled-name='v4l2_m2m_ioctl_querybuf' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1358' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_ioctl_querybuf'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1358' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1358' column='1'/>
+        <parameter type-id='a90d9002' name='buf' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1359' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_ioctl_reqbufs' mangled-name='v4l2_m2m_ioctl_reqbufs' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_ioctl_reqbufs'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1340' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1340' column='1'/>
+        <parameter type-id='e4330308' name='rb' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1341' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_ioctl_streamoff' mangled-name='v4l2_m2m_ioctl_streamoff' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_ioctl_streamoff'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1412' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1412' column='1'/>
+        <parameter type-id='1abf108f' name='type' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1413' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_ioctl_streamon' mangled-name='v4l2_m2m_ioctl_streamon' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_ioctl_streamon'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1403' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1403' column='1'/>
+        <parameter type-id='1abf108f' name='type' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1404' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_job_finish' mangled-name='v4l2_m2m_job_finish' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_job_finish'>
+        <parameter type-id='b50ade7a' name='m2m_dev' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='483' column='1'/>
+        <parameter type-id='2c7f1dc4' name='m2m_ctx' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='484' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_mmap' mangled-name='v4l2_m2m_mmap' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='981' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_mmap'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='981' column='1'/>
+        <parameter type-id='2c7f1dc4' name='m2m_ctx' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='981' column='1'/>
+        <parameter type-id='2ae08426' name='vma' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='982' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_next_buf' mangled-name='v4l2_m2m_next_buf' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_next_buf'>
+        <parameter type-id='c8acc294' name='q_ctx' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='136' column='1'/>
+        <return type-id='9a42d4cd'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_poll' mangled-name='v4l2_m2m_poll' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='947' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_poll'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='947' column='1'/>
+        <parameter type-id='2c7f1dc4' name='m2m_ctx' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='947' column='1'/>
+        <parameter type-id='f0acc909' name='wait' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='948' column='1'/>
+        <return type-id='8f254b08'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_qbuf' mangled-name='v4l2_m2m_qbuf' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='757' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_qbuf'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='757' column='1'/>
+        <parameter type-id='2c7f1dc4' name='m2m_ctx' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='757' column='1'/>
+        <parameter type-id='a90d9002' name='buf' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='758' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_querybuf' mangled-name='v4l2_m2m_querybuf' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='605' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_querybuf'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='605' column='1'/>
+        <parameter type-id='2c7f1dc4' name='m2m_ctx' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='605' column='1'/>
+        <parameter type-id='a90d9002' name='buf' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='606' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_register_media_controller' mangled-name='v4l2_m2m_register_media_controller' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1074' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_register_media_controller'>
+        <parameter type-id='b50ade7a' name='m2m_dev' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1074' column='1'/>
+        <parameter type-id='798c29b7' name='vdev' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1075' column='1'/>
+        <parameter type-id='95e97e5e' name='function' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1075' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_release' mangled-name='v4l2_m2m_release' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_release'>
+        <parameter type-id='b50ade7a' name='m2m_dev' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1187' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_reqbufs' mangled-name='v4l2_m2m_reqbufs' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='571' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_reqbufs'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='571' column='1'/>
+        <parameter type-id='2c7f1dc4' name='m2m_ctx' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='571' column='1'/>
+        <parameter type-id='e4330308' name='reqbufs' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='572' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_request_queue' mangled-name='v4l2_m2m_request_queue' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1292' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_request_queue'>
+        <parameter type-id='ac429605' name='req' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='1292' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_resume' mangled-name='v4l2_m2m_resume' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='559' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_resume'>
+        <parameter type-id='b50ade7a' name='m2m_dev' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='559' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_streamoff' mangled-name='v4l2_m2m_streamoff' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_streamoff'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='868' column='1'/>
+        <parameter type-id='2c7f1dc4' name='m2m_ctx' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='868' column='1'/>
+        <parameter type-id='1abf108f' name='type' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='869' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_streamon' mangled-name='v4l2_m2m_streamon' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='853' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_streamon'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='853' column='1'/>
+        <parameter type-id='2c7f1dc4' name='m2m_ctx' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='853' column='1'/>
+        <parameter type-id='1abf108f' name='type' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='854' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_suspend' mangled-name='v4l2_m2m_suspend' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='543' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_suspend'>
+        <parameter type-id='b50ade7a' name='m2m_dev' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='543' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_try_schedule' mangled-name='v4l2_m2m_try_schedule' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_try_schedule'>
+        <parameter type-id='2c7f1dc4' name='m2m_ctx' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='385' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_m2m_unregister_media_controller' mangled-name='v4l2_m2m_unregister_media_controller' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='999' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_m2m_unregister_media_controller'>
+        <parameter type-id='b50ade7a' name='m2m_dev' filepath='drivers/media/v4l2-core/v4l2-mem2mem.c' line='999' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_match_dv_timings' mangled-name='v4l2_match_dv_timings' filepath='drivers/media/v4l2-core/v4l2-dv-timings.c' line='267' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_match_dv_timings'>
+        <parameter type-id='4e30d787' name='t1' filepath='drivers/media/v4l2-core/v4l2-dv-timings.c' line='267' column='1'/>
+        <parameter type-id='4e30d787' name='t2' filepath='drivers/media/v4l2-core/v4l2-dv-timings.c' line='268' column='1'/>
+        <parameter type-id='f0981eeb' name='pclock_delta' filepath='drivers/media/v4l2-core/v4l2-dv-timings.c' line='269' column='1'/>
+        <parameter type-id='b50a4934' name='match_reduced_fps' filepath='drivers/media/v4l2-core/v4l2-dv-timings.c' line='269' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='v4l2_pipeline_link_notify' mangled-name='v4l2_pipeline_link_notify' filepath='drivers/media/v4l2-core/v4l2-mc.c' line='556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_pipeline_link_notify'>
+        <parameter type-id='b4de78ea' name='link' filepath='drivers/media/v4l2-core/v4l2-mc.c' line='556' column='1'/>
+        <parameter type-id='19c2251e' name='flags' filepath='drivers/media/v4l2-core/v4l2-mc.c' line='556' column='1'/>
+        <parameter type-id='f0981eeb' name='notification' filepath='drivers/media/v4l2-core/v4l2-mc.c' line='557' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_s_ctrl' mangled-name='v4l2_s_ctrl' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='781' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_s_ctrl'>
+        <parameter type-id='b7db9582' name='fh' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='781' column='1'/>
+        <parameter type-id='2b59fa5e' name='hdl' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='781' column='1'/>
+        <parameter type-id='bcd28457' name='control' filepath='drivers/media/v4l2-core/v4l2-ctrls-api.c' line='782' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_s_parm_cap' mangled-name='v4l2_s_parm_cap' filepath='drivers/media/v4l2-core/v4l2-common.c' line='207' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_s_parm_cap'>
+        <parameter type-id='798c29b7' name='vdev' filepath='drivers/media/v4l2-core/v4l2-common.c' line='207' column='1'/>
+        <parameter type-id='f5438ac7' name='sd' filepath='drivers/media/v4l2-core/v4l2-common.c' line='208' column='1'/>
+        <parameter type-id='cd10cf8e' name='a' filepath='drivers/media/v4l2-core/v4l2-common.c' line='208' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_spi_new_subdev' mangled-name='v4l2_spi_new_subdev' filepath='drivers/media/v4l2-core/v4l2-spi.c' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_spi_new_subdev'>
+        <parameter type-id='ddfb71fa' name='v4l2_dev' filepath='drivers/media/v4l2-core/v4l2-spi.c' line='36' column='1'/>
+        <parameter type-id='f22e4524' name='master' filepath='drivers/media/v4l2-core/v4l2-spi.c' line='37' column='1'/>
+        <parameter type-id='71dcfea7' name='info' filepath='drivers/media/v4l2-core/v4l2-spi.c' line='38' column='1'/>
+        <return type-id='f5438ac7'/>
+      </function-decl>
+      <function-decl name='v4l2_spi_subdev_init' mangled-name='v4l2_spi_subdev_init' filepath='drivers/media/v4l2-core/v4l2-spi.c' line='19' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_spi_subdev_init'>
+        <parameter type-id='f5438ac7' name='sd' filepath='drivers/media/v4l2-core/v4l2-spi.c' line='19' column='1'/>
+        <parameter type-id='e90f4666' name='spi' filepath='drivers/media/v4l2-core/v4l2-spi.c' line='19' column='1'/>
+        <parameter type-id='040770fb' name='ops' filepath='drivers/media/v4l2-core/v4l2-spi.c' line='20' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_src_change_event_subscribe' mangled-name='v4l2_src_change_event_subscribe' filepath='drivers/media/v4l2-core/v4l2-event.c' line='359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_src_change_event_subscribe'>
+        <parameter type-id='b7db9582' name='fh' filepath='drivers/media/v4l2-core/v4l2-event.c' line='359' column='1'/>
+        <parameter type-id='d8c85275' name='sub' filepath='drivers/media/v4l2-core/v4l2-event.c' line='360' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='v4l2_subdev_call_wrappers' type-id='3a7813d3' mangled-name='v4l2_subdev_call_wrappers' visibility='default' filepath='drivers/media/v4l2-core/v4l2-subdev.c' line='349' column='1' elf-symbol-id='v4l2_subdev_call_wrappers'/>
+      <function-decl name='v4l2_subdev_init' mangled-name='v4l2_subdev_init' filepath='drivers/media/v4l2-core/v4l2-subdev.c' line='920' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_subdev_init'>
+        <parameter type-id='f5438ac7' name='sd' filepath='drivers/media/v4l2-core/v4l2-subdev.c' line='920' column='1'/>
+        <parameter type-id='040770fb' name='ops' filepath='drivers/media/v4l2-core/v4l2-subdev.c' line='920' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='v4l2_subdev_link_validate' mangled-name='v4l2_subdev_link_validate' filepath='drivers/media/v4l2-core/v4l2-subdev.c' line='845' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_subdev_link_validate'>
+        <parameter type-id='b4de78ea' name='link' filepath='drivers/media/v4l2-core/v4l2-subdev.c' line='845' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l2_subdev_link_validate_default' mangled-name='v4l2_subdev_link_validate_default' filepath='drivers/media/v4l2-core/v4l2-subdev.c' line='768' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l2_subdev_link_validate_default'>
+        <parameter type-id='f5438ac7' name='sd' filepath='drivers/media/v4l2-core/v4l2-subdev.c' line='768' column='1'/>
+        <parameter type-id='b4de78ea' name='link' filepath='drivers/media/v4l2-core/v4l2-subdev.c' line='769' column='1'/>
+        <parameter type-id='cdea97c3' name='source_fmt' filepath='drivers/media/v4l2-core/v4l2-subdev.c' line='770' column='1'/>
+        <parameter type-id='cdea97c3' name='sink_fmt' filepath='drivers/media/v4l2-core/v4l2-subdev.c' line='771' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='v4l_bound_align_image' mangled-name='v4l_bound_align_image' filepath='drivers/media/v4l2-core/v4l2-common.c' line='119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='v4l_bound_align_image'>
+        <parameter type-id='f9409001' name='w' filepath='drivers/media/v4l2-core/v4l2-common.c' line='119' column='1'/>
+        <parameter type-id='f0981eeb' name='wmin' filepath='drivers/media/v4l2-core/v4l2-common.c' line='119' column='1'/>
+        <parameter type-id='f0981eeb' name='wmax' filepath='drivers/media/v4l2-core/v4l2-common.c' line='119' column='1'/>
+        <parameter type-id='f0981eeb' name='walign' filepath='drivers/media/v4l2-core/v4l2-common.c' line='120' column='1'/>
+        <parameter type-id='f9409001' name='h' filepath='drivers/media/v4l2-core/v4l2-common.c' line='121' column='1'/>
+        <parameter type-id='f0981eeb' name='hmin' filepath='drivers/media/v4l2-core/v4l2-common.c' line='121' column='1'/>
+        <parameter type-id='f0981eeb' name='hmax' filepath='drivers/media/v4l2-core/v4l2-common.c' line='121' column='1'/>
+        <parameter type-id='f0981eeb' name='halign' filepath='drivers/media/v4l2-core/v4l2-common.c' line='122' column='1'/>
+        <parameter type-id='f0981eeb' name='salign' filepath='drivers/media/v4l2-core/v4l2-common.c' line='122' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='vabits_actual' type-id='91ce1af9' mangled-name='vabits_actual' visibility='default' filepath='arch/arm64/mm/mmu.c' line='48' column='1' elf-symbol-id='vabits_actual'/>
+      <function-decl name='vb2_buffer_done' mangled-name='vb2_buffer_done' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1028' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_buffer_done'>
+        <parameter type-id='85535682' name='vb' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1028' column='1'/>
+        <parameter type-id='550876cf' name='state' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1028' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='vb2_common_vm_ops' type-id='92e9b57c' mangled-name='vb2_common_vm_ops' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-memops.c' line='121' column='1' elf-symbol-id='vb2_common_vm_ops'/>
+      <function-decl name='vb2_core_dqbuf' mangled-name='vb2_core_dqbuf' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1914' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_core_dqbuf'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1914' column='1'/>
+        <parameter type-id='807869d3' name='pindex' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1914' column='1'/>
+        <parameter type-id='eaa32e2f' name='pb' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1914' column='1'/>
+        <parameter type-id='b50a4934' name='nonblocking' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1915' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_core_expbuf' mangled-name='vb2_core_expbuf' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2198' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_core_expbuf'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2198' column='1'/>
+        <parameter type-id='7292109c' name='fd' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2198' column='1'/>
+        <parameter type-id='f0981eeb' name='type' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2198' column='1'/>
+        <parameter type-id='f0981eeb' name='index' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2199' column='1'/>
+        <parameter type-id='f0981eeb' name='plane' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2199' column='1'/>
+        <parameter type-id='f0981eeb' name='flags' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2199' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_core_poll' mangled-name='vb2_core_poll' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2431' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_core_poll'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2431' column='1'/>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2431' column='1'/>
+        <parameter type-id='a54c778f' name='wait' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2432' column='1'/>
+        <return type-id='8f254b08'/>
+      </function-decl>
+      <function-decl name='vb2_core_qbuf' mangled-name='vb2_core_qbuf' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1611' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_core_qbuf'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1611' column='1'/>
+        <parameter type-id='f0981eeb' name='index' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1611' column='1'/>
+        <parameter type-id='eaa32e2f' name='pb' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1611' column='1'/>
+        <parameter type-id='ac429605' name='req' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1612' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_core_querybuf' mangled-name='vb2_core_querybuf' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='644' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_core_querybuf'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='644' column='1'/>
+        <parameter type-id='f0981eeb' name='index' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='644' column='1'/>
+        <parameter type-id='eaa32e2f' name='pb' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='644' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vb2_core_queue_init' mangled-name='vb2_core_queue_init' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2378' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_core_queue_init'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2378' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_core_queue_release' mangled-name='vb2_core_queue_release' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2421' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_core_queue_release'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2421' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vb2_core_reqbufs' mangled-name='vb2_core_reqbufs' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='736' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_core_reqbufs'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='736' column='1'/>
+        <parameter type-id='c861c904' name='memory' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='736' column='1'/>
+        <parameter type-id='807869d3' name='count' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='737' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_core_streamoff' mangled-name='vb2_core_streamoff' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_core_streamoff'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2128' column='1'/>
+        <parameter type-id='f0981eeb' name='type' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2128' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_core_streamon' mangled-name='vb2_core_streamon' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2075' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_core_streamon'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2075' column='1'/>
+        <parameter type-id='f0981eeb' name='type' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2075' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_create_bufs' mangled-name='vb2_create_bufs' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='748' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_create_bufs'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='748' column='1'/>
+        <parameter type-id='0bb617a4' name='create' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='748' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_create_framevec' mangled-name='vb2_create_framevec' filepath='drivers/media/common/videobuf2/videobuf2-memops.c' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_create_framevec'>
+        <parameter type-id='7359adad' name='start' filepath='drivers/media/common/videobuf2/videobuf2-memops.c' line='36' column='1'/>
+        <parameter type-id='7359adad' name='length' filepath='drivers/media/common/videobuf2/videobuf2-memops.c' line='37' column='1'/>
+        <return type-id='d9fbdc06'/>
+      </function-decl>
+      <function-decl name='vb2_destroy_framevec' mangled-name='vb2_destroy_framevec' filepath='drivers/media/common/videobuf2/videobuf2-memops.c' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_destroy_framevec'>
+        <parameter type-id='d9fbdc06' name='vec' filepath='drivers/media/common/videobuf2/videobuf2-memops.c' line='74' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='vb2_dma_contig_memops' type-id='23cb2797' mangled-name='vb2_dma_contig_memops' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-dma-contig.c' line='708' column='1' elf-symbol-id='vb2_dma_contig_memops'/>
+      <function-decl name='vb2_dma_contig_set_max_seg_size' mangled-name='vb2_dma_contig_set_max_seg_size' filepath='drivers/media/common/videobuf2/videobuf2-dma-contig.c' line='751' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_dma_contig_set_max_seg_size'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/media/common/videobuf2/videobuf2-dma-contig.c' line='751' column='1'/>
+        <parameter type-id='f0981eeb' name='size' filepath='drivers/media/common/videobuf2/videobuf2-dma-contig.c' line='751' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='vb2_dma_sg_memops' type-id='23cb2797' mangled-name='vb2_dma_sg_memops' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-dma-sg.c' line='652' column='1' elf-symbol-id='vb2_dma_sg_memops'/>
+      <function-decl name='vb2_dqbuf' mangled-name='vb2_dqbuf' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='827' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_dqbuf'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='827' column='1'/>
+        <parameter type-id='a90d9002' name='b' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='827' column='1'/>
+        <parameter type-id='b50a4934' name='nonblocking' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='827' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_expbuf' mangled-name='vb2_expbuf' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='878' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_expbuf'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='878' column='1'/>
+        <parameter type-id='5606e640' name='eb' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='878' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_fop_mmap' mangled-name='vb2_fop_mmap' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_fop_mmap'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1110' column='1'/>
+        <parameter type-id='2ae08426' name='vma' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1110' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_fop_poll' mangled-name='vb2_fop_poll' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1191' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_fop_poll'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1191' column='1'/>
+        <parameter type-id='a54c778f' name='wait' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1191' column='1'/>
+        <return type-id='8f254b08'/>
+      </function-decl>
+      <function-decl name='vb2_fop_read' mangled-name='vb2_fop_read' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1167' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_fop_read'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1167' column='1'/>
+        <parameter type-id='26a90f95' name='buf' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1167' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1168' column='1'/>
+        <parameter type-id='b53e8dbb' name='ppos' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1168' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='vb2_fop_release' mangled-name='vb2_fop_release' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_fop_release'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1134' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_ioctl_create_bufs' mangled-name='vb2_ioctl_create_bufs' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1011' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_ioctl_create_bufs'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1011' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1011' column='1'/>
+        <parameter type-id='0bb617a4' name='p' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1012' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_ioctl_dqbuf' mangled-name='vb2_ioctl_dqbuf' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1068' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_ioctl_dqbuf'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1068' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1068' column='1'/>
+        <parameter type-id='a90d9002' name='p' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1068' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_ioctl_expbuf' mangled-name='vb2_ioctl_expbuf' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1098' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_ioctl_expbuf'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1098' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1098' column='1'/>
+        <parameter type-id='5606e640' name='p' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1098' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_ioctl_prepare_buf' mangled-name='vb2_ioctl_prepare_buf' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1038' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_ioctl_prepare_buf'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1038' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1038' column='1'/>
+        <parameter type-id='a90d9002' name='p' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1039' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_ioctl_qbuf' mangled-name='vb2_ioctl_qbuf' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1058' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_ioctl_qbuf'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1058' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1058' column='1'/>
+        <parameter type-id='a90d9002' name='p' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1058' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_ioctl_querybuf' mangled-name='vb2_ioctl_querybuf' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1049' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_ioctl_querybuf'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1049' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1049' column='1'/>
+        <parameter type-id='a90d9002' name='p' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1049' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_ioctl_reqbufs' mangled-name='vb2_ioctl_reqbufs' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='991' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_ioctl_reqbufs'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='991' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='991' column='1'/>
+        <parameter type-id='e4330308' name='p' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='992' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_ioctl_streamoff' mangled-name='vb2_ioctl_streamoff' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1088' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_ioctl_streamoff'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1088' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1088' column='1'/>
+        <parameter type-id='1abf108f' name='i' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1088' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_ioctl_streamon' mangled-name='vb2_ioctl_streamon' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1078' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_ioctl_streamon'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1078' column='1'/>
+        <parameter type-id='eaa32e2f' name='priv' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1078' column='1'/>
+        <parameter type-id='1abf108f' name='i' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1078' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_mmap' mangled-name='vb2_mmap' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_mmap'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2271' column='1'/>
+        <parameter type-id='2ae08426' name='vma' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2271' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_ops_wait_finish' mangled-name='vb2_ops_wait_finish' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1278' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_ops_wait_finish'>
+        <parameter type-id='a05f1ecd' name='vq' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1278' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vb2_ops_wait_prepare' mangled-name='vb2_ops_wait_prepare' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1272' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_ops_wait_prepare'>
+        <parameter type-id='a05f1ecd' name='vq' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1272' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vb2_plane_cookie' mangled-name='vb2_plane_cookie' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1019' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_plane_cookie'>
+        <parameter type-id='85535682' name='vb' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1019' column='1'/>
+        <parameter type-id='f0981eeb' name='plane_no' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1019' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='vb2_plane_vaddr' mangled-name='vb2_plane_vaddr' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1009' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_plane_vaddr'>
+        <parameter type-id='85535682' name='vb' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1009' column='1'/>
+        <parameter type-id='f0981eeb' name='plane_no' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1009' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='vb2_poll' mangled-name='vb2_poll' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='956' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_poll'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='956' column='1'/>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='956' column='1'/>
+        <parameter type-id='a54c778f' name='wait' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='956' column='1'/>
+        <return type-id='8f254b08'/>
+      </function-decl>
+      <function-decl name='vb2_prepare_buf' mangled-name='vb2_prepare_buf' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='729' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_prepare_buf'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='729' column='1'/>
+        <parameter type-id='e2929c1c' name='mdev' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='729' column='1'/>
+        <parameter type-id='a90d9002' name='b' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='730' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_qbuf' mangled-name='vb2_qbuf' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='806' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_qbuf'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='806' column='1'/>
+        <parameter type-id='e2929c1c' name='mdev' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='806' column='1'/>
+        <parameter type-id='a90d9002' name='b' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='807' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_querybuf' mangled-name='vb2_querybuf' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='679' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_querybuf'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='679' column='1'/>
+        <parameter type-id='a90d9002' name='b' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='679' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_queue_init' mangled-name='vb2_queue_init' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='930' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_queue_init'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='930' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_queue_release' mangled-name='vb2_queue_release' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='936' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_queue_release'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='936' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vb2_read' mangled-name='vb2_read' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2883' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_read'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2883' column='1'/>
+        <parameter type-id='26a90f95' name='data' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2883' column='1'/>
+        <parameter type-id='b59d7dce' name='count' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2883' column='1'/>
+        <parameter type-id='b53e8dbb' name='ppos' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2884' column='1'/>
+        <parameter type-id='95e97e5e' name='nonblocking' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='2884' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='vb2_reqbufs' mangled-name='vb2_reqbufs' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='720' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_reqbufs'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='720' column='1'/>
+        <parameter type-id='e4330308' name='req' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='720' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_request_object_is_buffer' mangled-name='vb2_request_object_is_buffer' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_request_object_is_buffer'>
+        <parameter type-id='347d8ccd' name='obj' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1497' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='vb2_request_queue' mangled-name='vb2_request_queue' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_request_queue'>
+        <parameter type-id='ac429605' name='req' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1317' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vb2_request_validate' mangled-name='vb2_request_validate' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1290' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_request_validate'>
+        <parameter type-id='ac429605' name='req' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1290' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_streamoff' mangled-name='vb2_streamoff' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_streamoff'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='868' column='1'/>
+        <parameter type-id='1abf108f' name='type' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='868' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vb2_streamon' mangled-name='vb2_streamon' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='858' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_streamon'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='858' column='1'/>
+        <parameter type-id='1abf108f' name='type' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='858' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='vb2_vmalloc_memops' type-id='23cb2797' mangled-name='vb2_vmalloc_memops' visibility='default' filepath='drivers/media/common/videobuf2/videobuf2-vmalloc.c' line='428' column='1' elf-symbol-id='vb2_vmalloc_memops'/>
+      <function-decl name='vb2_wait_for_all_buffers' mangled-name='vb2_wait_for_all_buffers' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1885' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vb2_wait_for_all_buffers'>
+        <parameter type-id='a05f1ecd' name='q' filepath='drivers/media/common/videobuf2/videobuf2-core.c' line='1885' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vchan_dma_desc_free_list' mangled-name='vchan_dma_desc_free_list' filepath='drivers/dma/virt-dma.c' line='112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vchan_dma_desc_free_list'>
+        <parameter type-id='6c3dd54a' name='vc' filepath='drivers/dma/virt-dma.c' line='112' column='1'/>
+        <parameter type-id='e84b031a' name='head' filepath='drivers/dma/virt-dma.c' line='112' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vchan_find_desc' mangled-name='vchan_find_desc' filepath='drivers/dma/virt-dma.c' line='66' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vchan_find_desc'>
+        <parameter type-id='6c3dd54a' name='vc' filepath='drivers/dma/virt-dma.c' line='66' column='1'/>
+        <parameter type-id='6478ea0a' name='cookie' filepath='drivers/dma/virt-dma.c' line='67' column='1'/>
+        <return type-id='5264cf1d'/>
+      </function-decl>
+      <function-decl name='vchan_init' mangled-name='vchan_init' filepath='drivers/dma/virt-dma.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vchan_init'>
+        <parameter type-id='6c3dd54a' name='vc' filepath='drivers/dma/virt-dma.c' line='123' column='1'/>
+        <parameter type-id='c60ba652' name='dmadev' filepath='drivers/dma/virt-dma.c' line='123' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vchan_tx_desc_free' mangled-name='vchan_tx_desc_free' filepath='drivers/dma/virt-dma.c' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vchan_tx_desc_free'>
+        <parameter type-id='0e3f80d9' name='tx' filepath='drivers/dma/virt-dma.c' line='49' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vchan_tx_submit' mangled-name='vchan_tx_submit' filepath='drivers/dma/virt-dma.c' line='19' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vchan_tx_submit'>
+        <parameter type-id='0e3f80d9' name='tx' filepath='drivers/dma/virt-dma.c' line='19' column='1'/>
+        <return type-id='6478ea0a'/>
+      </function-decl>
+      <function-decl name='verify_pkcs7_signature' mangled-name='verify_pkcs7_signature' filepath='certs/system_keyring.c' line='267' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='verify_pkcs7_signature'>
+        <parameter type-id='eaa32e2f' name='data' filepath='certs/system_keyring.c' line='267' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='certs/system_keyring.c' line='267' column='1'/>
+        <parameter type-id='eaa32e2f' name='raw_pkcs7' filepath='certs/system_keyring.c' line='268' column='1'/>
+        <parameter type-id='b59d7dce' name='pkcs7_len' filepath='certs/system_keyring.c' line='268' column='1'/>
+        <parameter type-id='204a4632' name='trusted_keys' filepath='certs/system_keyring.c' line='269' column='1'/>
+        <parameter type-id='ce22776d' name='usage' filepath='certs/system_keyring.c' line='270' column='1'/>
+        <parameter type-id='fd0db729' name='view_content' filepath='certs/system_keyring.c' line='271' column='1'/>
+        <parameter type-id='eaa32e2f' name='ctx' filepath='certs/system_keyring.c' line='274' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vfree' mangled-name='vfree' filepath='mm/vmalloc.c' line='2720' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vfree'>
+        <parameter type-id='eaa32e2f' name='addr' filepath='mm/vmalloc.c' line='2720' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vfs_fsync' mangled-name='vfs_fsync' filepath='fs/sync.c' line='200' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vfs_fsync'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/sync.c' line='200' column='1'/>
+        <parameter type-id='95e97e5e' name='datasync' filepath='fs/sync.c' line='200' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vfs_fsync_range' mangled-name='vfs_fsync_range' filepath='fs/sync.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vfs_fsync_range'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/sync.c' line='180' column='1'/>
+        <parameter type-id='69bf7bee' name='start' filepath='fs/sync.c' line='180' column='1'/>
+        <parameter type-id='69bf7bee' name='end' filepath='fs/sync.c' line='180' column='1'/>
+        <parameter type-id='95e97e5e' name='datasync' filepath='fs/sync.c' line='180' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vfs_llseek' mangled-name='vfs_llseek' filepath='fs/read_write.c' line='291' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vfs_llseek'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/read_write.c' line='291' column='1'/>
+        <parameter type-id='69bf7bee' name='offset' filepath='fs/read_write.c' line='291' column='1'/>
+        <parameter type-id='95e97e5e' name='whence' filepath='fs/read_write.c' line='291' column='1'/>
+        <return type-id='69bf7bee'/>
+      </function-decl>
+      <function-decl name='vfs_setpos' mangled-name='vfs_setpos' filepath='fs/read_write.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vfs_setpos'>
+        <parameter type-id='77e79a4b' name='file' filepath='fs/read_write.c' line='54' column='1'/>
+        <parameter type-id='69bf7bee' name='offset' filepath='fs/read_write.c' line='54' column='1'/>
+        <parameter type-id='69bf7bee' name='maxsize' filepath='fs/read_write.c' line='54' column='1'/>
+        <return type-id='69bf7bee'/>
+      </function-decl>
+      <function-decl name='vhost_add_used_and_signal' mangled-name='vhost_add_used_and_signal' filepath='drivers/vhost/vhost.c' line='2492' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_add_used_and_signal'>
+        <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='2492' column='1'/>
+        <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2493' column='1'/>
+        <parameter type-id='f0981eeb' name='head' filepath='drivers/vhost/vhost.c' line='2494' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='drivers/vhost/vhost.c' line='2494' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vhost_dev_check_owner' mangled-name='vhost_dev_check_owner' filepath='drivers/vhost/vhost.c' line='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_dev_check_owner'>
+        <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='513' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='vhost_dev_cleanup' mangled-name='vhost_dev_cleanup' filepath='drivers/vhost/vhost.c' line='692' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_dev_cleanup'>
+        <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='692' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vhost_dev_init' mangled-name='vhost_dev_init' filepath='drivers/vhost/vhost.c' line='467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_dev_init'>
+        <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='467' column='1'/>
+        <parameter type-id='3f18c0ee' name='vqs' filepath='drivers/vhost/vhost.c' line='468' column='1'/>
+        <parameter type-id='95e97e5e' name='nvqs' filepath='drivers/vhost/vhost.c' line='468' column='1'/>
+        <parameter type-id='95e97e5e' name='iov_limit' filepath='drivers/vhost/vhost.c' line='469' column='1'/>
+        <parameter type-id='95e97e5e' name='weight' filepath='drivers/vhost/vhost.c' line='469' column='1'/>
+        <parameter type-id='95e97e5e' name='byte_weight' filepath='drivers/vhost/vhost.c' line='469' column='1'/>
+        <parameter type-id='b50a4934' name='use_worker' filepath='drivers/vhost/vhost.c' line='470' column='1'/>
+        <parameter type-id='850009e4' name='msg_handler' filepath='drivers/vhost/vhost.c' line='471' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vhost_dev_ioctl' mangled-name='vhost_dev_ioctl' filepath='drivers/vhost/vhost.c' line='1764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_dev_ioctl'>
+        <parameter type-id='db1a91a3' name='d' filepath='drivers/vhost/vhost.c' line='1764' column='1'/>
+        <parameter type-id='f0981eeb' name='ioctl' filepath='drivers/vhost/vhost.c' line='1764' column='1'/>
+        <parameter type-id='eaa32e2f' name='argp' filepath='drivers/vhost/vhost.c' line='1764' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='vhost_dev_stop' mangled-name='vhost_dev_stop' filepath='drivers/vhost/vhost.c' line='659' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_dev_stop'>
+        <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='659' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vhost_disable_notify' mangled-name='vhost_disable_notify' filepath='drivers/vhost/vhost.c' line='2568' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_disable_notify'>
+        <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='2568' column='1'/>
+        <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2568' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vhost_enable_notify' mangled-name='vhost_enable_notify' filepath='drivers/vhost/vhost.c' line='2530' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_enable_notify'>
+        <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='2530' column='1'/>
+        <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2530' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='vhost_get_vq_desc' mangled-name='vhost_get_vq_desc' filepath='drivers/vhost/vhost.c' line='2215' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_get_vq_desc'>
+        <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2215' column='1'/>
+        <parameter type-id='cc4b1be9' name='iov' filepath='drivers/vhost/vhost.c' line='2216' column='1'/>
+        <parameter type-id='f0981eeb' name='iov_size' filepath='drivers/vhost/vhost.c' line='2216' column='1'/>
+        <parameter type-id='807869d3' name='out_num' filepath='drivers/vhost/vhost.c' line='2217' column='1'/>
+        <parameter type-id='807869d3' name='in_num' filepath='drivers/vhost/vhost.c' line='2217' column='1'/>
+        <parameter type-id='caa8cb44' name='log' filepath='drivers/vhost/vhost.c' line='2218' column='1'/>
+        <parameter type-id='807869d3' name='log_num' filepath='drivers/vhost/vhost.c' line='2218' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vhost_log_access_ok' mangled-name='vhost_log_access_ok' filepath='drivers/vhost/vhost.c' line='1386' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_log_access_ok'>
+        <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='1386' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='vhost_poll_flush' mangled-name='vhost_poll_flush' filepath='drivers/vhost/vhost.c' line='250' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_poll_flush'>
+        <parameter type-id='3b230a09' name='poll' filepath='drivers/vhost/vhost.c' line='250' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vhost_vq_access_ok' mangled-name='vhost_vq_access_ok' filepath='drivers/vhost/vhost.c' line='1418' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_vq_access_ok'>
+        <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='1418' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='vhost_vq_init_access' mangled-name='vhost_vq_init_access' filepath='drivers/vhost/vhost.c' line='2018' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_vq_init_access'>
+        <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2018' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vhost_vring_ioctl' mangled-name='vhost_vring_ioctl' filepath='drivers/vhost/vhost.c' line='1591' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_vring_ioctl'>
+        <parameter type-id='db1a91a3' name='d' filepath='drivers/vhost/vhost.c' line='1591' column='1'/>
+        <parameter type-id='f0981eeb' name='ioctl' filepath='drivers/vhost/vhost.c' line='1591' column='1'/>
+        <parameter type-id='eaa32e2f' name='argp' filepath='drivers/vhost/vhost.c' line='1591' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='video_devdata' mangled-name='video_devdata' filepath='drivers/media/v4l2-core/v4l2-dev.c' line='235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='video_devdata'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-dev.c' line='235' column='1'/>
+        <return type-id='798c29b7'/>
+      </function-decl>
+      <function-decl name='video_device_alloc' mangled-name='video_device_alloc' filepath='drivers/media/v4l2-core/v4l2-dev.c' line='145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='video_device_alloc'>
+        <return type-id='798c29b7'/>
+      </function-decl>
+      <function-decl name='video_device_release' mangled-name='video_device_release' filepath='drivers/media/v4l2-core/v4l2-dev.c' line='151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='video_device_release'>
+        <parameter type-id='798c29b7' name='vdev' filepath='drivers/media/v4l2-core/v4l2-dev.c' line='151' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='video_device_release_empty' mangled-name='video_device_release_empty' filepath='drivers/media/v4l2-core/v4l2-dev.c' line='157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='video_device_release_empty'>
+        <parameter type-id='798c29b7' name='vdev' filepath='drivers/media/v4l2-core/v4l2-dev.c' line='157' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='video_ioctl2' mangled-name='video_ioctl2' filepath='drivers/media/v4l2-core/v4l2-ioctl.c' line='3369' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='video_ioctl2'>
+        <parameter type-id='77e79a4b' name='file' filepath='drivers/media/v4l2-core/v4l2-ioctl.c' line='3369' column='1'/>
+        <parameter type-id='f0981eeb' name='cmd' filepath='drivers/media/v4l2-core/v4l2-ioctl.c' line='3370' column='1'/>
+        <parameter type-id='7359adad' name='arg' filepath='drivers/media/v4l2-core/v4l2-ioctl.c' line='3370' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='video_unregister_device' mangled-name='video_unregister_device' filepath='drivers/media/v4l2-core/v4l2-dev.c' line='1080' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='video_unregister_device'>
+        <parameter type-id='798c29b7' name='vdev' filepath='drivers/media/v4l2-core/v4l2-dev.c' line='1080' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='videomode_from_timing' mangled-name='videomode_from_timing' filepath='drivers/video/videomode.c' line='13' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='videomode_from_timing'>
+        <parameter type-id='911a5831' name='dt' filepath='drivers/video/videomode.c' line='13' column='1'/>
+        <parameter type-id='83e7c23f' name='vm' filepath='drivers/video/videomode.c' line='14' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='videomode_from_timings' mangled-name='videomode_from_timings' filepath='drivers/video/videomode.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='videomode_from_timings'>
+        <parameter type-id='0e289f54' name='disp' filepath='drivers/video/videomode.c' line='31' column='1'/>
+        <parameter type-id='83e7c23f' name='vm' filepath='drivers/video/videomode.c' line='32' column='1'/>
+        <parameter type-id='f0981eeb' name='index' filepath='drivers/video/videomode.c' line='32' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_break_device' mangled-name='virtio_break_device' filepath='drivers/virtio/virtio_ring.c' line='2412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_break_device'>
+        <parameter type-id='5dbfcbb1' name='dev' filepath='drivers/virtio/virtio_ring.c' line='2412' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='virtio_check_driver_offered_feature' mangled-name='virtio_check_driver_offered_feature' filepath='drivers/virtio/virtio.c' line='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_check_driver_offered_feature'>
+        <parameter type-id='b8574f7c' name='vdev' filepath='drivers/virtio/virtio.c' line='105' column='1'/>
+        <parameter type-id='f0981eeb' name='fbit' filepath='drivers/virtio/virtio.c' line='106' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='virtio_config_changed' mangled-name='virtio_config_changed' filepath='drivers/virtio/virtio.c' line='135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_config_changed'>
+        <parameter type-id='5dbfcbb1' name='dev' filepath='drivers/virtio/virtio.c' line='135' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='virtio_device_freeze' mangled-name='virtio_device_freeze' filepath='drivers/virtio/virtio.c' line='455' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_device_freeze'>
+        <parameter type-id='5dbfcbb1' name='dev' filepath='drivers/virtio/virtio.c' line='455' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_device_restore' mangled-name='virtio_device_restore' filepath='drivers/virtio/virtio.c' line='470' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_device_restore'>
+        <parameter type-id='5dbfcbb1' name='dev' filepath='drivers/virtio/virtio.c' line='470' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_max_dma_size' mangled-name='virtio_max_dma_size' filepath='drivers/virtio/virtio_ring.c' line='266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_max_dma_size'>
+        <parameter type-id='5dbfcbb1' name='vdev' filepath='drivers/virtio/virtio_ring.c' line='266' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='virtio_transport_connect' mangled-name='virtio_transport_connect' filepath='net/vmw_vsock/virtio_transport_common.c' line='755' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_connect'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='755' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_transport_deliver_tap_pkt' mangled-name='virtio_transport_deliver_tap_pkt' filepath='net/vmw_vsock/virtio_transport_common.c' line='170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_deliver_tap_pkt'>
+        <parameter type-id='ac22ee2f' name='pkt' filepath='net/vmw_vsock/virtio_transport_common.c' line='170' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='virtio_transport_destruct' mangled-name='virtio_transport_destruct' filepath='net/vmw_vsock/virtio_transport_common.c' line='807' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_destruct'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='807' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='virtio_transport_dgram_allow' mangled-name='virtio_transport_dgram_allow' filepath='net/vmw_vsock/virtio_transport_common.c' line='749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_dgram_allow'>
+        <parameter type-id='19c2251e' name='cid' filepath='net/vmw_vsock/virtio_transport_common.c' line='749' column='1'/>
+        <parameter type-id='19c2251e' name='port' filepath='net/vmw_vsock/virtio_transport_common.c' line='749' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='virtio_transport_dgram_bind' mangled-name='virtio_transport_dgram_bind' filepath='net/vmw_vsock/virtio_transport_common.c' line='742' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_dgram_bind'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='742' column='1'/>
+        <parameter type-id='b6a6ca60' name='addr' filepath='net/vmw_vsock/virtio_transport_common.c' line='743' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_transport_dgram_dequeue' mangled-name='virtio_transport_dgram_dequeue' filepath='net/vmw_vsock/virtio_transport_common.c' line='533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_dgram_dequeue'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='533' column='1'/>
+        <parameter type-id='6b9b777a' name='msg' filepath='net/vmw_vsock/virtio_transport_common.c' line='534' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='net/vmw_vsock/virtio_transport_common.c' line='535' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='net/vmw_vsock/virtio_transport_common.c' line='535' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_transport_dgram_enqueue' mangled-name='virtio_transport_dgram_enqueue' filepath='net/vmw_vsock/virtio_transport_common.c' line='782' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_dgram_enqueue'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='782' column='1'/>
+        <parameter type-id='b6a6ca60' name='remote_addr' filepath='net/vmw_vsock/virtio_transport_common.c' line='783' column='1'/>
+        <parameter type-id='6b9b777a' name='msg' filepath='net/vmw_vsock/virtio_transport_common.c' line='784' column='1'/>
+        <parameter type-id='b59d7dce' name='dgram_len' filepath='net/vmw_vsock/virtio_transport_common.c' line='785' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_transport_do_socket_init' mangled-name='virtio_transport_do_socket_init' filepath='net/vmw_vsock/virtio_transport_common.c' line='592' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_do_socket_init'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='592' column='1'/>
+        <parameter type-id='ecb0ce18' name='psk' filepath='net/vmw_vsock/virtio_transport_common.c' line='593' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_transport_free_pkt' mangled-name='virtio_transport_free_pkt' filepath='net/vmw_vsock/virtio_transport_common.c' line='1347' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_free_pkt'>
+        <parameter type-id='ac22ee2f' name='pkt' filepath='net/vmw_vsock/virtio_transport_common.c' line='1347' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='virtio_transport_notify_buffer_size' mangled-name='virtio_transport_notify_buffer_size' filepath='net/vmw_vsock/virtio_transport_common.c' line='623' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_notify_buffer_size'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='623' column='1'/>
+        <parameter type-id='3df9fd28' name='val' filepath='net/vmw_vsock/virtio_transport_common.c' line='623' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='virtio_transport_notify_poll_in' mangled-name='virtio_transport_notify_poll_in' filepath='net/vmw_vsock/virtio_transport_common.c' line='637' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_notify_poll_in'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='637' column='1'/>
+        <parameter type-id='b59d7dce' name='target' filepath='net/vmw_vsock/virtio_transport_common.c' line='638' column='1'/>
+        <parameter type-id='d8e6b335' name='data_ready_now' filepath='net/vmw_vsock/virtio_transport_common.c' line='639' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_transport_notify_poll_out' mangled-name='virtio_transport_notify_poll_out' filepath='net/vmw_vsock/virtio_transport_common.c' line='651' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_notify_poll_out'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='651' column='1'/>
+        <parameter type-id='b59d7dce' name='target' filepath='net/vmw_vsock/virtio_transport_common.c' line='652' column='1'/>
+        <parameter type-id='d8e6b335' name='space_avail_now' filepath='net/vmw_vsock/virtio_transport_common.c' line='653' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_transport_notify_recv_init' mangled-name='virtio_transport_notify_recv_init' filepath='net/vmw_vsock/virtio_transport_common.c' line='667' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_notify_recv_init'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='667' column='1'/>
+        <parameter type-id='b59d7dce' name='target' filepath='net/vmw_vsock/virtio_transport_common.c' line='668' column='1'/>
+        <parameter type-id='c777e389' name='data' filepath='net/vmw_vsock/virtio_transport_common.c' line='668' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_transport_notify_recv_post_dequeue' mangled-name='virtio_transport_notify_recv_post_dequeue' filepath='net/vmw_vsock/virtio_transport_common.c' line='688' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_notify_recv_post_dequeue'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='688' column='1'/>
+        <parameter type-id='b59d7dce' name='target' filepath='net/vmw_vsock/virtio_transport_common.c' line='689' column='1'/>
+        <parameter type-id='79a0948f' name='copied' filepath='net/vmw_vsock/virtio_transport_common.c' line='689' column='1'/>
+        <parameter type-id='b50a4934' name='data_read' filepath='net/vmw_vsock/virtio_transport_common.c' line='689' column='1'/>
+        <parameter type-id='c777e389' name='data' filepath='net/vmw_vsock/virtio_transport_common.c' line='690' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_transport_notify_recv_pre_block' mangled-name='virtio_transport_notify_recv_pre_block' filepath='net/vmw_vsock/virtio_transport_common.c' line='674' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_notify_recv_pre_block'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='674' column='1'/>
+        <parameter type-id='b59d7dce' name='target' filepath='net/vmw_vsock/virtio_transport_common.c' line='675' column='1'/>
+        <parameter type-id='c777e389' name='data' filepath='net/vmw_vsock/virtio_transport_common.c' line='675' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_transport_notify_recv_pre_dequeue' mangled-name='virtio_transport_notify_recv_pre_dequeue' filepath='net/vmw_vsock/virtio_transport_common.c' line='681' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_notify_recv_pre_dequeue'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='681' column='1'/>
+        <parameter type-id='b59d7dce' name='target' filepath='net/vmw_vsock/virtio_transport_common.c' line='682' column='1'/>
+        <parameter type-id='c777e389' name='data' filepath='net/vmw_vsock/virtio_transport_common.c' line='682' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_transport_notify_send_init' mangled-name='virtio_transport_notify_send_init' filepath='net/vmw_vsock/virtio_transport_common.c' line='696' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_notify_send_init'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='696' column='1'/>
+        <parameter type-id='6f074813' name='data' filepath='net/vmw_vsock/virtio_transport_common.c' line='697' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_transport_notify_send_post_enqueue' mangled-name='virtio_transport_notify_send_post_enqueue' filepath='net/vmw_vsock/virtio_transport_common.c' line='717' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_notify_send_post_enqueue'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='717' column='1'/>
+        <parameter type-id='79a0948f' name='written' filepath='net/vmw_vsock/virtio_transport_common.c' line='718' column='1'/>
+        <parameter type-id='6f074813' name='data' filepath='net/vmw_vsock/virtio_transport_common.c' line='718' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_transport_notify_send_pre_block' mangled-name='virtio_transport_notify_send_pre_block' filepath='net/vmw_vsock/virtio_transport_common.c' line='703' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_notify_send_pre_block'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='703' column='1'/>
+        <parameter type-id='6f074813' name='data' filepath='net/vmw_vsock/virtio_transport_common.c' line='704' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_transport_notify_send_pre_enqueue' mangled-name='virtio_transport_notify_send_pre_enqueue' filepath='net/vmw_vsock/virtio_transport_common.c' line='710' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_notify_send_pre_enqueue'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='710' column='1'/>
+        <parameter type-id='6f074813' name='data' filepath='net/vmw_vsock/virtio_transport_common.c' line='711' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_transport_recv_pkt' mangled-name='virtio_transport_recv_pkt' filepath='net/vmw_vsock/virtio_transport_common.c' line='1246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_recv_pkt'>
+        <parameter type-id='2bfa174e' name='t' filepath='net/vmw_vsock/virtio_transport_common.c' line='1246' column='1'/>
+        <parameter type-id='ac22ee2f' name='pkt' filepath='net/vmw_vsock/virtio_transport_common.c' line='1247' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='virtio_transport_release' mangled-name='virtio_transport_release' filepath='net/vmw_vsock/virtio_transport_common.c' line='974' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_release'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='974' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='virtio_transport_seqpacket_dequeue' mangled-name='virtio_transport_seqpacket_dequeue' filepath='net/vmw_vsock/virtio_transport_common.c' line='501' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_seqpacket_dequeue'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='501' column='1'/>
+        <parameter type-id='6b9b777a' name='msg' filepath='net/vmw_vsock/virtio_transport_common.c' line='502' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='net/vmw_vsock/virtio_transport_common.c' line='503' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='virtio_transport_seqpacket_enqueue' mangled-name='virtio_transport_seqpacket_enqueue' filepath='net/vmw_vsock/virtio_transport_common.c' line='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_seqpacket_enqueue'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='513' column='1'/>
+        <parameter type-id='6b9b777a' name='msg' filepath='net/vmw_vsock/virtio_transport_common.c' line='514' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='net/vmw_vsock/virtio_transport_common.c' line='515' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_transport_seqpacket_has_data' mangled-name='virtio_transport_seqpacket_has_data' filepath='net/vmw_vsock/virtio_transport_common.c' line='554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_seqpacket_has_data'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='554' column='1'/>
+        <return type-id='19c2251e'/>
+      </function-decl>
+      <function-decl name='virtio_transport_shutdown' mangled-name='virtio_transport_shutdown' filepath='net/vmw_vsock/virtio_transport_common.c' line='766' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_shutdown'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='766' column='1'/>
+        <parameter type-id='95e97e5e' name='mode' filepath='net/vmw_vsock/virtio_transport_common.c' line='766' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtio_transport_stream_allow' mangled-name='virtio_transport_stream_allow' filepath='net/vmw_vsock/virtio_transport_common.c' line='736' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_stream_allow'>
+        <parameter type-id='19c2251e' name='cid' filepath='net/vmw_vsock/virtio_transport_common.c' line='736' column='1'/>
+        <parameter type-id='19c2251e' name='port' filepath='net/vmw_vsock/virtio_transport_common.c' line='736' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='virtio_transport_stream_dequeue' mangled-name='virtio_transport_stream_dequeue' filepath='net/vmw_vsock/virtio_transport_common.c' line='489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_stream_dequeue'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='489' column='1'/>
+        <parameter type-id='6b9b777a' name='msg' filepath='net/vmw_vsock/virtio_transport_common.c' line='490' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='net/vmw_vsock/virtio_transport_common.c' line='491' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='net/vmw_vsock/virtio_transport_common.c' line='491' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='virtio_transport_stream_enqueue' mangled-name='virtio_transport_stream_enqueue' filepath='net/vmw_vsock/virtio_transport_common.c' line='792' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_stream_enqueue'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='792' column='1'/>
+        <parameter type-id='6b9b777a' name='msg' filepath='net/vmw_vsock/virtio_transport_common.c' line='793' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='net/vmw_vsock/virtio_transport_common.c' line='794' column='1'/>
+        <return type-id='79a0948f'/>
+      </function-decl>
+      <function-decl name='virtio_transport_stream_has_data' mangled-name='virtio_transport_stream_has_data' filepath='net/vmw_vsock/virtio_transport_common.c' line='541' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_stream_has_data'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='541' column='1'/>
+        <return type-id='9b7c55ef'/>
+      </function-decl>
+      <function-decl name='virtio_transport_stream_has_space' mangled-name='virtio_transport_stream_has_space' filepath='net/vmw_vsock/virtio_transport_common.c' line='579' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_stream_has_space'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='579' column='1'/>
+        <return type-id='9b7c55ef'/>
+      </function-decl>
+      <function-decl name='virtio_transport_stream_is_active' mangled-name='virtio_transport_stream_is_active' filepath='net/vmw_vsock/virtio_transport_common.c' line='730' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_stream_is_active'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='730' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='virtio_transport_stream_rcvhiwat' mangled-name='virtio_transport_stream_rcvhiwat' filepath='net/vmw_vsock/virtio_transport_common.c' line='724' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtio_transport_stream_rcvhiwat'>
+        <parameter type-id='ecb0ce18' name='vsk' filepath='net/vmw_vsock/virtio_transport_common.c' line='724' column='1'/>
+        <return type-id='91ce1af9'/>
+      </function-decl>
+      <function-decl name='virtqueue_add_inbuf' mangled-name='virtqueue_add_inbuf' filepath='drivers/virtio/virtio_ring.c' line='1896' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_add_inbuf'>
+        <parameter type-id='91d0de51' name='vq' filepath='drivers/virtio/virtio_ring.c' line='1896' column='1'/>
+        <parameter type-id='bf3ef905' name='sg' filepath='drivers/virtio/virtio_ring.c' line='1897' column='1'/>
+        <parameter type-id='f0981eeb' name='num' filepath='drivers/virtio/virtio_ring.c' line='1897' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/virtio/virtio_ring.c' line='1898' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='drivers/virtio/virtio_ring.c' line='1899' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtqueue_add_inbuf_ctx' mangled-name='virtqueue_add_inbuf_ctx' filepath='drivers/virtio/virtio_ring.c' line='1919' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_add_inbuf_ctx'>
+        <parameter type-id='91d0de51' name='vq' filepath='drivers/virtio/virtio_ring.c' line='1919' column='1'/>
+        <parameter type-id='bf3ef905' name='sg' filepath='drivers/virtio/virtio_ring.c' line='1920' column='1'/>
+        <parameter type-id='f0981eeb' name='num' filepath='drivers/virtio/virtio_ring.c' line='1920' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/virtio/virtio_ring.c' line='1921' column='1'/>
+        <parameter type-id='eaa32e2f' name='ctx' filepath='drivers/virtio/virtio_ring.c' line='1922' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='drivers/virtio/virtio_ring.c' line='1923' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtqueue_add_outbuf' mangled-name='virtqueue_add_outbuf' filepath='drivers/virtio/virtio_ring.c' line='1874' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_add_outbuf'>
+        <parameter type-id='91d0de51' name='vq' filepath='drivers/virtio/virtio_ring.c' line='1874' column='1'/>
+        <parameter type-id='bf3ef905' name='sg' filepath='drivers/virtio/virtio_ring.c' line='1875' column='1'/>
+        <parameter type-id='f0981eeb' name='num' filepath='drivers/virtio/virtio_ring.c' line='1875' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/virtio/virtio_ring.c' line='1876' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='drivers/virtio/virtio_ring.c' line='1877' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtqueue_add_sgs' mangled-name='virtqueue_add_sgs' filepath='drivers/virtio/virtio_ring.c' line='1840' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_add_sgs'>
+        <parameter type-id='91d0de51' name='_vq' filepath='drivers/virtio/virtio_ring.c' line='1840' column='1'/>
+        <parameter type-id='3f2244fd' name='sgs' filepath='drivers/virtio/virtio_ring.c' line='1841' column='1'/>
+        <parameter type-id='f0981eeb' name='out_sgs' filepath='drivers/virtio/virtio_ring.c' line='1842' column='1'/>
+        <parameter type-id='f0981eeb' name='in_sgs' filepath='drivers/virtio/virtio_ring.c' line='1843' column='1'/>
+        <parameter type-id='eaa32e2f' name='data' filepath='drivers/virtio/virtio_ring.c' line='1844' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='drivers/virtio/virtio_ring.c' line='1845' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='virtqueue_detach_unused_buf' mangled-name='virtqueue_detach_unused_buf' filepath='drivers/virtio/virtio_ring.c' line='2143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_detach_unused_buf'>
+        <parameter type-id='91d0de51' name='_vq' filepath='drivers/virtio/virtio_ring.c' line='2143' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='virtqueue_disable_cb' mangled-name='virtqueue_disable_cb' filepath='drivers/virtio/virtio_ring.c' line='2034' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_disable_cb'>
+        <parameter type-id='91d0de51' name='_vq' filepath='drivers/virtio/virtio_ring.c' line='2034' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='virtqueue_enable_cb' mangled-name='virtqueue_enable_cb' filepath='drivers/virtio/virtio_ring.c' line='2102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_enable_cb'>
+        <parameter type-id='91d0de51' name='_vq' filepath='drivers/virtio/virtio_ring.c' line='2102' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='virtqueue_enable_cb_delayed' mangled-name='virtqueue_enable_cb_delayed' filepath='drivers/virtio/virtio_ring.c' line='2123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_enable_cb_delayed'>
+        <parameter type-id='91d0de51' name='_vq' filepath='drivers/virtio/virtio_ring.c' line='2123' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='virtqueue_enable_cb_prepare' mangled-name='virtqueue_enable_cb_prepare' filepath='drivers/virtio/virtio_ring.c' line='2057' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_enable_cb_prepare'>
+        <parameter type-id='91d0de51' name='_vq' filepath='drivers/virtio/virtio_ring.c' line='2057' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='virtqueue_get_avail_addr' mangled-name='virtqueue_get_avail_addr' filepath='drivers/virtio/virtio_ring.c' line='2440' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_get_avail_addr'>
+        <parameter type-id='91d0de51' name='_vq' filepath='drivers/virtio/virtio_ring.c' line='2440' column='1'/>
+        <return type-id='cf29c9b3'/>
+      </function-decl>
+      <function-decl name='virtqueue_get_buf' mangled-name='virtqueue_get_buf' filepath='drivers/virtio/virtio_ring.c' line='2020' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_get_buf'>
+        <parameter type-id='91d0de51' name='_vq' filepath='drivers/virtio/virtio_ring.c' line='2020' column='1'/>
+        <parameter type-id='807869d3' name='len' filepath='drivers/virtio/virtio_ring.c' line='2020' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='virtqueue_get_buf_ctx' mangled-name='virtqueue_get_buf_ctx' filepath='drivers/virtio/virtio_ring.c' line='2010' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_get_buf_ctx'>
+        <parameter type-id='91d0de51' name='_vq' filepath='drivers/virtio/virtio_ring.c' line='2010' column='1'/>
+        <parameter type-id='807869d3' name='len' filepath='drivers/virtio/virtio_ring.c' line='2010' column='1'/>
+        <parameter type-id='63e171df' name='ctx' filepath='drivers/virtio/virtio_ring.c' line='2011' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='virtqueue_get_desc_addr' mangled-name='virtqueue_get_desc_addr' filepath='drivers/virtio/virtio_ring.c' line='2427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_get_desc_addr'>
+        <parameter type-id='91d0de51' name='_vq' filepath='drivers/virtio/virtio_ring.c' line='2427' column='1'/>
+        <return type-id='cf29c9b3'/>
+      </function-decl>
+      <function-decl name='virtqueue_get_used_addr' mangled-name='virtqueue_get_used_addr' filepath='drivers/virtio/virtio_ring.c' line='2454' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_get_used_addr'>
+        <parameter type-id='91d0de51' name='_vq' filepath='drivers/virtio/virtio_ring.c' line='2454' column='1'/>
+        <return type-id='cf29c9b3'/>
+      </function-decl>
+      <function-decl name='virtqueue_get_vring_size' mangled-name='virtqueue_get_vring_size' filepath='drivers/virtio/virtio_ring.c' line='2391' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_get_vring_size'>
+        <parameter type-id='91d0de51' name='_vq' filepath='drivers/virtio/virtio_ring.c' line='2391' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='virtqueue_is_broken' mangled-name='virtqueue_is_broken' filepath='drivers/virtio/virtio_ring.c' line='2400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_is_broken'>
+        <parameter type-id='91d0de51' name='_vq' filepath='drivers/virtio/virtio_ring.c' line='2400' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='virtqueue_kick' mangled-name='virtqueue_kick' filepath='drivers/virtio/virtio_ring.c' line='1985' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_kick'>
+        <parameter type-id='91d0de51' name='vq' filepath='drivers/virtio/virtio_ring.c' line='1985' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='virtqueue_kick_prepare' mangled-name='virtqueue_kick_prepare' filepath='drivers/virtio/virtio_ring.c' line='1940' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_kick_prepare'>
+        <parameter type-id='91d0de51' name='_vq' filepath='drivers/virtio/virtio_ring.c' line='1940' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='virtqueue_notify' mangled-name='virtqueue_notify' filepath='drivers/virtio/virtio_ring.c' line='1957' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_notify'>
+        <parameter type-id='91d0de51' name='_vq' filepath='drivers/virtio/virtio_ring.c' line='1957' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='virtqueue_poll' mangled-name='virtqueue_poll' filepath='drivers/virtio/virtio_ring.c' line='2078' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='virtqueue_poll'>
+        <parameter type-id='91d0de51' name='_vq' filepath='drivers/virtio/virtio_ring.c' line='2078' column='1'/>
+        <parameter type-id='f0981eeb' name='last_used_idx' filepath='drivers/virtio/virtio_ring.c' line='2078' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='vlan_uses_dev' mangled-name='vlan_uses_dev' filepath='net/8021q/vlan_core.c' line='444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vlan_uses_dev'>
+        <parameter type-id='2ce52478' name='dev' filepath='net/8021q/vlan_core.c' line='444' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='vlan_vid_add' mangled-name='vlan_vid_add' filepath='net/8021q/vlan_core.c' line='318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vlan_vid_add'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/8021q/vlan_core.c' line='318' column='1'/>
+        <parameter type-id='84a5c3d4' name='proto' filepath='net/8021q/vlan_core.c' line='318' column='1'/>
+        <parameter type-id='1dc6a898' name='vid' filepath='net/8021q/vlan_core.c' line='318' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vlan_vid_del' mangled-name='vlan_vid_del' filepath='net/8021q/vlan_core.c' line='371' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vlan_vid_del'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/8021q/vlan_core.c' line='371' column='1'/>
+        <parameter type-id='84a5c3d4' name='proto' filepath='net/8021q/vlan_core.c' line='371' column='1'/>
+        <parameter type-id='1dc6a898' name='vid' filepath='net/8021q/vlan_core.c' line='371' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vlan_vids_add_by_dev' mangled-name='vlan_vids_add_by_dev' filepath='net/8021q/vlan_core.c' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vlan_vids_add_by_dev'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/8021q/vlan_core.c' line='396' column='1'/>
+        <parameter type-id='2ce52478' name='by_dev' filepath='net/8021q/vlan_core.c' line='397' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vlan_vids_del_by_dev' mangled-name='vlan_vids_del_by_dev' filepath='net/8021q/vlan_core.c' line='427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vlan_vids_del_by_dev'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/8021q/vlan_core.c' line='427' column='1'/>
+        <parameter type-id='2ce52478' name='by_dev' filepath='net/8021q/vlan_core.c' line='428' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='vm_event_states' type-id='8c8f5291' mangled-name='vm_event_states' visibility='default' filepath='mm/vmstat.c' line='107' column='1' elf-symbol-id='vm_event_states'/>
+      <function-decl name='vm_get_page_prot' mangled-name='vm_get_page_prot' filepath='mm/mmap.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_get_page_prot'>
+        <parameter type-id='7359adad' name='vm_flags' filepath='mm/mmap.c' line='118' column='1'/>
+        <return type-id='2e2dcbd3'/>
+      </function-decl>
+      <function-decl name='vm_insert_page' mangled-name='vm_insert_page' filepath='mm/memory.c' line='2006' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_insert_page'>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2006' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2006' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/memory.c' line='2007' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vm_iomap_memory' mangled-name='vm_iomap_memory' filepath='mm/memory.c' line='2542' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_iomap_memory'>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2542' column='1'/>
+        <parameter type-id='2522883d' name='start' filepath='mm/memory.c' line='2542' column='1'/>
+        <parameter type-id='7359adad' name='len' filepath='mm/memory.c' line='2542' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vm_map_pages' mangled-name='vm_map_pages' filepath='mm/memory.c' line='2076' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_map_pages'>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2076' column='1'/>
+        <parameter type-id='9f93c9da' name='pages' filepath='mm/memory.c' line='2076' column='1'/>
+        <parameter type-id='7359adad' name='num' filepath='mm/memory.c' line='2077' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vm_map_ram' mangled-name='vm_map_ram' filepath='mm/vmalloc.c' line='2192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_map_ram'>
+        <parameter type-id='9f93c9da' name='pages' filepath='mm/vmalloc.c' line='2192' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='mm/vmalloc.c' line='2192' column='1'/>
+        <parameter type-id='95e97e5e' name='node' filepath='mm/vmalloc.c' line='2192' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='vm_memory_committed' mangled-name='vm_memory_committed' filepath='mm/util.c' line='963' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_memory_committed'>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='vm_mmap' mangled-name='vm_mmap' filepath='mm/util.c' line='566' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_mmap'>
+        <parameter type-id='77e79a4b' name='file' filepath='mm/util.c' line='566' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='mm/util.c' line='566' column='1'/>
+        <parameter type-id='7359adad' name='len' filepath='mm/util.c' line='567' column='1'/>
+        <parameter type-id='7359adad' name='prot' filepath='mm/util.c' line='567' column='1'/>
+        <parameter type-id='7359adad' name='flag' filepath='mm/util.c' line='568' column='1'/>
+        <parameter type-id='7359adad' name='offset' filepath='mm/util.c' line='568' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='vm_munmap' mangled-name='vm_munmap' filepath='mm/mmap.c' line='2959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_munmap'>
+        <parameter type-id='7359adad' name='start' filepath='mm/mmap.c' line='2959' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='mm/mmap.c' line='2959' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='vm_node_stat' type-id='a08a3908' mangled-name='vm_node_stat' visibility='default' filepath='mm/vmstat.c' line='163' column='1' elf-symbol-id='vm_node_stat'/>
+      <function-decl name='vm_unmap_aliases' mangled-name='vm_unmap_aliases' filepath='mm/vmalloc.c' line='2136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_unmap_aliases'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vm_unmap_ram' mangled-name='vm_unmap_ram' filepath='mm/vmalloc.c' line='2150' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_unmap_ram'>
+        <parameter type-id='eaa32e2f' name='mem' filepath='mm/vmalloc.c' line='2150' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='mm/vmalloc.c' line='2150' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='vm_zone_stat' type-id='84a8f722' mangled-name='vm_zone_stat' visibility='default' filepath='mm/vmstat.c' line='162' column='1' elf-symbol-id='vm_zone_stat'/>
+      <function-decl name='vmalloc' mangled-name='vmalloc' filepath='mm/vmalloc.c' line='3178' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmalloc'>
+        <parameter type-id='7359adad' name='size' filepath='mm/vmalloc.c' line='3178' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='vmalloc_nr_pages' mangled-name='vmalloc_nr_pages' filepath='mm/vmalloc.c' line='803' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmalloc_nr_pages'>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='vmalloc_to_page' mangled-name='vmalloc_to_page' filepath='mm/vmalloc.c' line='651' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmalloc_to_page'>
+        <parameter type-id='eaa32e2f' name='vmalloc_addr' filepath='mm/vmalloc.c' line='651' column='1'/>
+        <return type-id='02f11ed4'/>
+      </function-decl>
+      <function-decl name='vmalloc_to_pfn' mangled-name='vmalloc_to_pfn' filepath='mm/vmalloc.c' line='711' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmalloc_to_pfn'>
+        <parameter type-id='eaa32e2f' name='vmalloc_addr' filepath='mm/vmalloc.c' line='711' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='vmalloc_user' mangled-name='vmalloc_user' filepath='mm/vmalloc.c' line='3231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmalloc_user'>
+        <parameter type-id='7359adad' name='size' filepath='mm/vmalloc.c' line='3231' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='vmap' mangled-name='vmap' filepath='mm/vmalloc.c' line='2768' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmap'>
+        <parameter type-id='9f93c9da' name='pages' filepath='mm/vmalloc.c' line='2768' column='1'/>
+        <parameter type-id='f0981eeb' name='count' filepath='mm/vmalloc.c' line='2768' column='1'/>
+        <parameter type-id='7359adad' name='flags' filepath='mm/vmalloc.c' line='2769' column='1'/>
+        <parameter type-id='2e2dcbd3' name='prot' filepath='mm/vmalloc.c' line='2769' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='vmemdup_user' mangled-name='vmemdup_user' filepath='mm/util.c' line='199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmemdup_user'>
+        <parameter type-id='eaa32e2f' name='src' filepath='mm/util.c' line='199' column='1'/>
+        <parameter type-id='b59d7dce' name='len' filepath='mm/util.c' line='199' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='vmf_insert_mixed' mangled-name='vmf_insert_mixed' filepath='mm/memory.c' line='2325' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmf_insert_mixed'>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2325' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2325' column='1'/>
+        <parameter type-id='abe59ef3' name='pfn' filepath='mm/memory.c' line='2326' column='1'/>
+        <return type-id='e9265215'/>
+      </function-decl>
+      <function-decl name='vmf_insert_pfn' mangled-name='vmf_insert_pfn' filepath='mm/memory.c' line='2225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmf_insert_pfn'>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2225' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2225' column='1'/>
+        <parameter type-id='7359adad' name='pfn' filepath='mm/memory.c' line='2226' column='1'/>
+        <return type-id='e9265215'/>
+      </function-decl>
+      <function-decl name='vmf_insert_pfn_prot' mangled-name='vmf_insert_pfn_prot' filepath='mm/memory.c' line='2177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmf_insert_pfn_prot'>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2177' column='1'/>
+        <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2177' column='1'/>
+        <parameter type-id='7359adad' name='pfn' filepath='mm/memory.c' line='2178' column='1'/>
+        <parameter type-id='2e2dcbd3' name='pgprot' filepath='mm/memory.c' line='2178' column='1'/>
+        <return type-id='e9265215'/>
+      </function-decl>
+      <function-decl name='vprintk' mangled-name='vprintk' filepath='kernel/printk/printk_safe.c' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vprintk'>
+        <parameter type-id='80f4b756' name='fmt' filepath='kernel/printk/printk_safe.c' line='29' column='1'/>
+        <parameter type-id='2aee9912' name='args' filepath='kernel/printk/printk_safe.c' line='29' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vprintk_emit' mangled-name='vprintk_emit' filepath='kernel/printk/printk.c' line='2253' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vprintk_emit'>
+        <parameter type-id='95e97e5e' name='facility' filepath='kernel/printk/printk.c' line='2253' column='1'/>
+        <parameter type-id='95e97e5e' name='level' filepath='kernel/printk/printk.c' line='2253' column='1'/>
+        <parameter type-id='da8b7bcd' name='dev_info' filepath='kernel/printk/printk.c' line='2254' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='kernel/printk/printk.c' line='2255' column='1'/>
+        <parameter type-id='2aee9912' name='args' filepath='kernel/printk/printk.c' line='2255' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vring_create_virtqueue' mangled-name='vring_create_virtqueue' filepath='drivers/virtio/virtio_ring.c' line='2268' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vring_create_virtqueue'>
+        <parameter type-id='f0981eeb' name='index' filepath='drivers/virtio/virtio_ring.c' line='2269' column='1'/>
+        <parameter type-id='f0981eeb' name='num' filepath='drivers/virtio/virtio_ring.c' line='2270' column='1'/>
+        <parameter type-id='f0981eeb' name='vring_align' filepath='drivers/virtio/virtio_ring.c' line='2271' column='1'/>
+        <parameter type-id='5dbfcbb1' name='vdev' filepath='drivers/virtio/virtio_ring.c' line='2272' column='1'/>
+        <parameter type-id='b50a4934' name='weak_barriers' filepath='drivers/virtio/virtio_ring.c' line='2273' column='1'/>
+        <parameter type-id='b50a4934' name='may_reduce_num' filepath='drivers/virtio/virtio_ring.c' line='2274' column='1'/>
+        <parameter type-id='b50a4934' name='context' filepath='drivers/virtio/virtio_ring.c' line='2275' column='1'/>
+        <parameter type-id='3098d84b' name='notify' filepath='drivers/virtio/virtio_ring.c' line='2276' column='1'/>
+        <parameter type-id='c881e0a0' name='callback' filepath='drivers/virtio/virtio_ring.c' line='2277' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/virtio/virtio_ring.c' line='2278' column='1'/>
+        <return type-id='91d0de51'/>
+      </function-decl>
+      <function-decl name='vring_del_virtqueue' mangled-name='vring_del_virtqueue' filepath='drivers/virtio/virtio_ring.c' line='2315' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vring_del_virtqueue'>
+        <parameter type-id='91d0de51' name='_vq' filepath='drivers/virtio/virtio_ring.c' line='2315' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vring_interrupt' mangled-name='vring_interrupt' filepath='drivers/virtio/virtio_ring.c' line='2157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vring_interrupt'>
+        <parameter type-id='95e97e5e' name='irq' filepath='drivers/virtio/virtio_ring.c' line='2157' column='1'/>
+        <parameter type-id='eaa32e2f' name='_vq' filepath='drivers/virtio/virtio_ring.c' line='2157' column='1'/>
+        <return type-id='4bdecfd7'/>
+      </function-decl>
+      <function-decl name='vring_new_virtqueue' mangled-name='vring_new_virtqueue' filepath='drivers/virtio/virtio_ring.c' line='2293' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vring_new_virtqueue'>
+        <parameter type-id='f0981eeb' name='index' filepath='drivers/virtio/virtio_ring.c' line='2293' column='1'/>
+        <parameter type-id='f0981eeb' name='num' filepath='drivers/virtio/virtio_ring.c' line='2294' column='1'/>
+        <parameter type-id='f0981eeb' name='vring_align' filepath='drivers/virtio/virtio_ring.c' line='2295' column='1'/>
+        <parameter type-id='5dbfcbb1' name='vdev' filepath='drivers/virtio/virtio_ring.c' line='2296' column='1'/>
+        <parameter type-id='b50a4934' name='weak_barriers' filepath='drivers/virtio/virtio_ring.c' line='2297' column='1'/>
+        <parameter type-id='b50a4934' name='context' filepath='drivers/virtio/virtio_ring.c' line='2298' column='1'/>
+        <parameter type-id='eaa32e2f' name='pages' filepath='drivers/virtio/virtio_ring.c' line='2299' column='1'/>
+        <parameter type-id='3098d84b' name='notify' filepath='drivers/virtio/virtio_ring.c' line='2300' column='1'/>
+        <parameter type-id='c881e0a0' name='callback' filepath='drivers/virtio/virtio_ring.c' line='2301' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/virtio/virtio_ring.c' line='2302' column='1'/>
+        <return type-id='91d0de51'/>
+      </function-decl>
+      <function-decl name='vring_transport_features' mangled-name='vring_transport_features' filepath='drivers/virtio/virtio_ring.c' line='2358' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vring_transport_features'>
+        <parameter type-id='5dbfcbb1' name='vdev' filepath='drivers/virtio/virtio_ring.c' line='2358' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vscnprintf' mangled-name='vscnprintf' filepath='lib/vsprintf.c' line='2905' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vscnprintf'>
+        <parameter type-id='26a90f95' name='buf' filepath='lib/vsprintf.c' line='2905' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='lib/vsprintf.c' line='2905' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='lib/vsprintf.c' line='2905' column='1'/>
+        <parameter type-id='2aee9912' name='args' filepath='lib/vsprintf.c' line='2905' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vsnprintf' mangled-name='vsnprintf' filepath='include/linux/kernel.h' line='206' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vsnprintf'>
+        <parameter type-id='26a90f95'/>
+        <parameter type-id='b59d7dce'/>
+        <parameter type-id='80f4b756'/>
+        <parameter type-id='2aee9912'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vsock_core_register' mangled-name='vsock_core_register' filepath='net/vmw_vsock/af_vsock.c' line='2343' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vsock_core_register'>
+        <parameter type-id='c6c5bd96' name='t' filepath='net/vmw_vsock/af_vsock.c' line='2343' column='1'/>
+        <parameter type-id='95e97e5e' name='features' filepath='net/vmw_vsock/af_vsock.c' line='2343' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vsock_core_unregister' mangled-name='vsock_core_unregister' filepath='net/vmw_vsock/af_vsock.c' line='2399' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vsock_core_unregister'>
+        <parameter type-id='c6c5bd96' name='t' filepath='net/vmw_vsock/af_vsock.c' line='2399' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vsock_for_each_connected_socket' mangled-name='vsock_for_each_connected_socket' filepath='net/vmw_vsock/af_vsock.c' line='336' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vsock_for_each_connected_socket'>
+        <parameter type-id='841969d0' name='fn' filepath='net/vmw_vsock/af_vsock.c' line='336' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vsprintf' mangled-name='vsprintf' filepath='lib/vsprintf.c' line='2984' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vsprintf'>
+        <parameter type-id='26a90f95' name='buf' filepath='lib/vsprintf.c' line='2984' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='lib/vsprintf.c' line='2984' column='1'/>
+        <parameter type-id='2aee9912' name='args' filepath='lib/vsprintf.c' line='2984' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vsscanf' mangled-name='vsscanf' filepath='lib/vsprintf.c' line='3418' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vsscanf'>
+        <parameter type-id='80f4b756' name='buf' filepath='lib/vsprintf.c' line='3418' column='1'/>
+        <parameter type-id='80f4b756' name='fmt' filepath='lib/vsprintf.c' line='3418' column='1'/>
+        <parameter type-id='2aee9912' name='args' filepath='lib/vsprintf.c' line='3418' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='vunmap' mangled-name='vunmap' filepath='mm/vmalloc.c' line='2744' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vunmap'>
+        <parameter type-id='eaa32e2f' name='addr' filepath='mm/vmalloc.c' line='2744' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='vzalloc' mangled-name='vzalloc' filepath='mm/vmalloc.c' line='3215' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vzalloc'>
+        <parameter type-id='7359adad' name='size' filepath='mm/vmalloc.c' line='3215' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='vzalloc_node' mangled-name='vzalloc_node' filepath='mm/vmalloc.c' line='3271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vzalloc_node'>
+        <parameter type-id='7359adad' name='size' filepath='mm/vmalloc.c' line='3271' column='1'/>
+        <parameter type-id='95e97e5e' name='node' filepath='mm/vmalloc.c' line='3271' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='wait_for_completion' mangled-name='wait_for_completion' filepath='kernel/sched/completion.c' line='136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wait_for_completion'>
+        <parameter type-id='389faaf7' name='x' filepath='kernel/sched/completion.c' line='136' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='wait_for_completion_interruptible' mangled-name='wait_for_completion_interruptible' filepath='kernel/sched/completion.c' line='204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wait_for_completion_interruptible'>
+        <parameter type-id='389faaf7' name='x' filepath='kernel/sched/completion.c' line='204' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='wait_for_completion_interruptible_timeout' mangled-name='wait_for_completion_interruptible_timeout' filepath='kernel/sched/completion.c' line='225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wait_for_completion_interruptible_timeout'>
+        <parameter type-id='389faaf7' name='x' filepath='kernel/sched/completion.c' line='225' column='1'/>
+        <parameter type-id='7359adad' name='timeout' filepath='kernel/sched/completion.c' line='226' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='wait_for_completion_io' mangled-name='wait_for_completion_io' filepath='kernel/sched/completion.c' line='169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wait_for_completion_io'>
+        <parameter type-id='389faaf7' name='x' filepath='kernel/sched/completion.c' line='169' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='wait_for_completion_io_timeout' mangled-name='wait_for_completion_io_timeout' filepath='kernel/sched/completion.c' line='189' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wait_for_completion_io_timeout'>
+        <parameter type-id='389faaf7' name='x' filepath='kernel/sched/completion.c' line='189' column='1'/>
+        <parameter type-id='7359adad' name='timeout' filepath='kernel/sched/completion.c' line='189' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='wait_for_completion_killable' mangled-name='wait_for_completion_killable' filepath='kernel/sched/completion.c' line='241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wait_for_completion_killable'>
+        <parameter type-id='389faaf7' name='x' filepath='kernel/sched/completion.c' line='241' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='wait_for_completion_killable_timeout' mangled-name='wait_for_completion_killable_timeout' filepath='kernel/sched/completion.c' line='263' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wait_for_completion_killable_timeout'>
+        <parameter type-id='389faaf7' name='x' filepath='kernel/sched/completion.c' line='263' column='1'/>
+        <parameter type-id='7359adad' name='timeout' filepath='kernel/sched/completion.c' line='264' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='wait_for_completion_timeout' mangled-name='wait_for_completion_timeout' filepath='kernel/sched/completion.c' line='155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wait_for_completion_timeout'>
+        <parameter type-id='389faaf7' name='x' filepath='kernel/sched/completion.c' line='155' column='1'/>
+        <parameter type-id='7359adad' name='timeout' filepath='kernel/sched/completion.c' line='155' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='wait_for_device_probe' mangled-name='wait_for_device_probe' filepath='drivers/base/dd.c' line='723' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wait_for_device_probe'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='wait_for_stable_page' mangled-name='wait_for_stable_page' filepath='mm/page-writeback.c' line='2918' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wait_for_stable_page'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/page-writeback.c' line='2918' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='wait_on_page_bit' mangled-name='wait_on_page_bit' filepath='mm/filemap.c' line='1414' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wait_on_page_bit'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/filemap.c' line='1414' column='1'/>
+        <parameter type-id='95e97e5e' name='bit_nr' filepath='mm/filemap.c' line='1414' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='wait_on_page_writeback' mangled-name='wait_on_page_writeback' filepath='mm/page-writeback.c' line='2885' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wait_on_page_writeback'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/page-writeback.c' line='2885' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='wait_woken' mangled-name='wait_woken' filepath='kernel/sched/wait.c' line='455' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wait_woken'>
+        <parameter type-id='db9d03e3' name='wq_entry' filepath='kernel/sched/wait.c' line='455' column='1'/>
+        <parameter type-id='f0981eeb' name='mode' filepath='kernel/sched/wait.c' line='455' column='1'/>
+        <parameter type-id='bd54fe1a' name='timeout' filepath='kernel/sched/wait.c' line='455' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='wake_bit_function' mangled-name='wake_bit_function' filepath='kernel/sched/wait_bit.c' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wake_bit_function'>
+        <parameter type-id='db9d03e3' name='wq_entry' filepath='kernel/sched/wait_bit.c' line='21' column='1'/>
+        <parameter type-id='f0981eeb' name='mode' filepath='kernel/sched/wait_bit.c' line='21' column='1'/>
+        <parameter type-id='95e97e5e' name='sync' filepath='kernel/sched/wait_bit.c' line='21' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='kernel/sched/wait_bit.c' line='21' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='wake_up_bit' mangled-name='wake_up_bit' filepath='kernel/sched/wait_bit.c' line='147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wake_up_bit'>
+        <parameter type-id='eaa32e2f' name='word' filepath='kernel/sched/wait_bit.c' line='147' column='1'/>
+        <parameter type-id='95e97e5e' name='bit' filepath='kernel/sched/wait_bit.c' line='147' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='wake_up_if_idle' mangled-name='wake_up_if_idle' filepath='kernel/sched/core.c' line='3799' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wake_up_if_idle'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/core.c' line='3799' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='wake_up_process' mangled-name='wake_up_process' filepath='kernel/sched/core.c' line='4316' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wake_up_process'>
+        <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='4316' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='wakeup_source_add' mangled-name='wakeup_source_add' filepath='drivers/base/power/wakeup.c' line='175' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wakeup_source_add'>
+        <parameter type-id='1ea237a6' name='ws' filepath='drivers/base/power/wakeup.c' line='175' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='wakeup_source_create' mangled-name='wakeup_source_create' filepath='drivers/base/power/wakeup.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wakeup_source_create'>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/base/power/wakeup.c' line='88' column='1'/>
+        <return type-id='1ea237a6'/>
+      </function-decl>
+      <function-decl name='wakeup_source_destroy' mangled-name='wakeup_source_destroy' filepath='drivers/base/power/wakeup.c' line='160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wakeup_source_destroy'>
+        <parameter type-id='1ea237a6' name='ws' filepath='drivers/base/power/wakeup.c' line='160' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='wakeup_source_register' mangled-name='wakeup_source_register' filepath='drivers/base/power/wakeup.c' line='222' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wakeup_source_register'>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/power/wakeup.c' line='222' column='1'/>
+        <parameter type-id='80f4b756' name='name' filepath='drivers/base/power/wakeup.c' line='223' column='1'/>
+        <return type-id='1ea237a6'/>
+      </function-decl>
+      <function-decl name='wakeup_source_remove' mangled-name='wakeup_source_remove' filepath='drivers/base/power/wakeup.c' line='196' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wakeup_source_remove'>
+        <parameter type-id='1ea237a6' name='ws' filepath='drivers/base/power/wakeup.c' line='196' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='wakeup_source_unregister' mangled-name='wakeup_source_unregister' filepath='drivers/base/power/wakeup.c' line='247' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wakeup_source_unregister'>
+        <parameter type-id='1ea237a6' name='ws' filepath='drivers/base/power/wakeup.c' line='247' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='wakeup_sources_read_lock' mangled-name='wakeup_sources_read_lock' filepath='drivers/base/power/wakeup.c' line='265' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wakeup_sources_read_lock'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='wakeup_sources_read_unlock' mangled-name='wakeup_sources_read_unlock' filepath='drivers/base/power/wakeup.c' line='275' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wakeup_sources_read_unlock'>
+        <parameter type-id='95e97e5e' name='idx' filepath='drivers/base/power/wakeup.c' line='275' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='wakeup_sources_walk_next' mangled-name='wakeup_sources_walk_next' filepath='drivers/base/power/wakeup.c' line='304' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wakeup_sources_walk_next'>
+        <parameter type-id='1ea237a6' name='ws' filepath='drivers/base/power/wakeup.c' line='304' column='1'/>
+        <return type-id='1ea237a6'/>
+      </function-decl>
+      <function-decl name='wakeup_sources_walk_start' mangled-name='wakeup_sources_walk_start' filepath='drivers/base/power/wakeup.c' line='289' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wakeup_sources_walk_start'>
+        <return type-id='1ea237a6'/>
+      </function-decl>
+      <function-decl name='watchdog_init_timeout' mangled-name='watchdog_init_timeout' filepath='drivers/watchdog/watchdog_core.c' line='115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='watchdog_init_timeout'>
+        <parameter type-id='7bf5a5e5' name='wdd' filepath='drivers/watchdog/watchdog_core.c' line='115' column='1'/>
+        <parameter type-id='f0981eeb' name='timeout_parm' filepath='drivers/watchdog/watchdog_core.c' line='116' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='drivers/watchdog/watchdog_core.c' line='116' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='watchdog_register_device' mangled-name='watchdog_register_device' filepath='drivers/watchdog/watchdog_core.c' line='346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='watchdog_register_device'>
+        <parameter type-id='7bf5a5e5' name='wdd' filepath='drivers/watchdog/watchdog_core.c' line='346' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='watchdog_set_restart_priority' mangled-name='watchdog_set_restart_priority' filepath='drivers/watchdog/watchdog_core.c' line='230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='watchdog_set_restart_priority'>
+        <parameter type-id='7bf5a5e5' name='wdd' filepath='drivers/watchdog/watchdog_core.c' line='230' column='1'/>
+        <parameter type-id='95e97e5e' name='priority' filepath='drivers/watchdog/watchdog_core.c' line='230' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='watchdog_unregister_device' mangled-name='watchdog_unregister_device' filepath='drivers/watchdog/watchdog_core.c' line='392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='watchdog_unregister_device'>
+        <parameter type-id='7bf5a5e5' name='wdd' filepath='drivers/watchdog/watchdog_core.c' line='392' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='wbc_account_cgroup_owner' mangled-name='wbc_account_cgroup_owner' filepath='fs/fs-writeback.c' line='855' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wbc_account_cgroup_owner'>
+        <parameter type-id='c2c60445' name='wbc' filepath='fs/fs-writeback.c' line='855' column='1'/>
+        <parameter type-id='02f11ed4' name='page' filepath='fs/fs-writeback.c' line='855' column='1'/>
+        <parameter type-id='b59d7dce' name='bytes' filepath='fs/fs-writeback.c' line='856' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='wireless_nlevent_flush' mangled-name='wireless_nlevent_flush' filepath='net/wireless/wext-core.c' line='345' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wireless_nlevent_flush'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='wireless_send_event' mangled-name='wireless_send_event' filepath='net/wireless/wext-core.c' line='451' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wireless_send_event'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/wireless/wext-core.c' line='451' column='1'/>
+        <parameter type-id='f0981eeb' name='cmd' filepath='net/wireless/wext-core.c' line='452' column='1'/>
+        <parameter type-id='00e2a7ce' name='wrqu' filepath='net/wireless/wext-core.c' line='453' column='1'/>
+        <parameter type-id='80f4b756' name='extra' filepath='net/wireless/wext-core.c' line='454' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='woken_wake_function' mangled-name='woken_wake_function' filepath='kernel/sched/wait.c' line='480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='woken_wake_function'>
+        <parameter type-id='db9d03e3' name='wq_entry' filepath='kernel/sched/wait.c' line='480' column='1'/>
+        <parameter type-id='f0981eeb' name='mode' filepath='kernel/sched/wait.c' line='480' column='1'/>
+        <parameter type-id='95e97e5e' name='sync' filepath='kernel/sched/wait.c' line='481' column='1'/>
+        <parameter type-id='eaa32e2f' name='key' filepath='kernel/sched/wait.c' line='481' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='work_busy' mangled-name='work_busy' filepath='kernel/workqueue.c' line='4625' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='work_busy'>
+        <parameter type-id='83c1bde6' name='work' filepath='kernel/workqueue.c' line='4625' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='work_on_cpu' mangled-name='work_on_cpu' filepath='kernel/workqueue.c' line='5227' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='work_on_cpu'>
+        <parameter type-id='95e97e5e' name='cpu' filepath='kernel/workqueue.c' line='5227' column='1'/>
+        <parameter type-id='68883d61' name='fn' filepath='kernel/workqueue.c' line='5227' column='1'/>
+        <parameter type-id='eaa32e2f' name='arg' filepath='kernel/workqueue.c' line='5227' column='1'/>
+        <return type-id='bd54fe1a'/>
+      </function-decl>
+      <function-decl name='wq_worker_comm' mangled-name='wq_worker_comm' filepath='kernel/workqueue.c' line='4933' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wq_worker_comm'>
+        <parameter type-id='26a90f95' name='buf' filepath='kernel/workqueue.c' line='4933' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='kernel/workqueue.c' line='4933' column='1'/>
+        <parameter type-id='f23e2572' name='task' filepath='kernel/workqueue.c' line='4933' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='write_dirty_buffer' mangled-name='write_dirty_buffer' filepath='fs/buffer.c' line='3121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='write_dirty_buffer'>
+        <parameter type-id='c485c22c' name='bh' filepath='fs/buffer.c' line='3121' column='1'/>
+        <parameter type-id='95e97e5e' name='op_flags' filepath='fs/buffer.c' line='3121' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='write_inode_now' mangled-name='write_inode_now' filepath='fs/fs-writeback.c' line='2765' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='write_inode_now'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/fs-writeback.c' line='2765' column='1'/>
+        <parameter type-id='95e97e5e' name='sync' filepath='fs/fs-writeback.c' line='2765' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='write_one_page' mangled-name='write_one_page' filepath='mm/page-writeback.c' line='2396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='write_one_page'>
+        <parameter type-id='02f11ed4' name='page' filepath='mm/page-writeback.c' line='2396' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ww_mutex_lock' mangled-name='ww_mutex_lock' filepath='kernel/locking/mutex.c' line='1070' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ww_mutex_lock'>
+        <parameter type-id='7533ba6f' name='lock' filepath='kernel/locking/mutex.c' line='1070' column='1'/>
+        <parameter type-id='c1d02a64' name='ctx' filepath='kernel/locking/mutex.c' line='1070' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ww_mutex_lock_interruptible' mangled-name='ww_mutex_lock_interruptible' filepath='kernel/locking/mutex.c' line='1085' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ww_mutex_lock_interruptible'>
+        <parameter type-id='7533ba6f' name='lock' filepath='kernel/locking/mutex.c' line='1085' column='1'/>
+        <parameter type-id='c1d02a64' name='ctx' filepath='kernel/locking/mutex.c' line='1085' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='ww_mutex_unlock' mangled-name='ww_mutex_unlock' filepath='kernel/locking/mutex.c' line='572' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ww_mutex_unlock'>
+        <parameter type-id='7533ba6f' name='lock' filepath='kernel/locking/mutex.c' line='572' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xa_destroy' mangled-name='xa_destroy' filepath='lib/xarray.c' line='2204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xa_destroy'>
+        <parameter type-id='60075f2a' name='xa' filepath='lib/xarray.c' line='2204' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xa_erase' mangled-name='xa_erase' filepath='lib/xarray.c' line='1510' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xa_erase'>
+        <parameter type-id='60075f2a' name='xa' filepath='lib/xarray.c' line='1510' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='lib/xarray.c' line='1510' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='xa_find' mangled-name='xa_find' filepath='lib/xarray.c' line='2010' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xa_find'>
+        <parameter type-id='60075f2a' name='xa' filepath='lib/xarray.c' line='2010' column='1'/>
+        <parameter type-id='1d2c2b85' name='indexp' filepath='lib/xarray.c' line='2010' column='1'/>
+        <parameter type-id='7359adad' name='max' filepath='lib/xarray.c' line='2011' column='1'/>
+        <parameter type-id='933bf462' name='filter' filepath='lib/xarray.c' line='2011' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='xa_find_after' mangled-name='xa_find_after' filepath='lib/xarray.c' line='2060' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xa_find_after'>
+        <parameter type-id='60075f2a' name='xa' filepath='lib/xarray.c' line='2060' column='1'/>
+        <parameter type-id='1d2c2b85' name='indexp' filepath='lib/xarray.c' line='2060' column='1'/>
+        <parameter type-id='7359adad' name='max' filepath='lib/xarray.c' line='2061' column='1'/>
+        <parameter type-id='933bf462' name='filter' filepath='lib/xarray.c' line='2061' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='xa_get_mark' mangled-name='xa_get_mark' filepath='lib/xarray.c' line='1937' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xa_get_mark'>
+        <parameter type-id='60075f2a' name='xa' filepath='lib/xarray.c' line='1937' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='lib/xarray.c' line='1937' column='1'/>
+        <parameter type-id='933bf462' name='mark' filepath='lib/xarray.c' line='1937' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='xa_load' mangled-name='xa_load' filepath='lib/xarray.c' line='1453' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xa_load'>
+        <parameter type-id='60075f2a' name='xa' filepath='lib/xarray.c' line='1453' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='lib/xarray.c' line='1453' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='xa_store' mangled-name='xa_store' filepath='lib/xarray.c' line='1574' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xa_store'>
+        <parameter type-id='60075f2a' name='xa' filepath='lib/xarray.c' line='1574' column='1'/>
+        <parameter type-id='7359adad' name='index' filepath='lib/xarray.c' line='1574' column='1'/>
+        <parameter type-id='eaa32e2f' name='entry' filepath='lib/xarray.c' line='1574' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='lib/xarray.c' line='1574' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='xas_load' mangled-name='xas_load' filepath='lib/xarray.c' line='231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xas_load'>
+        <parameter type-id='77b05ed6' name='xas' filepath='lib/xarray.c' line='231' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='xas_nomem' mangled-name='xas_nomem' filepath='lib/xarray.c' line='297' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xas_nomem'>
+        <parameter type-id='77b05ed6' name='xas' filepath='lib/xarray.c' line='297' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='lib/xarray.c' line='297' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='xas_store' mangled-name='xas_store' filepath='lib/xarray.c' line='774' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xas_store'>
+        <parameter type-id='77b05ed6' name='xas' filepath='lib/xarray.c' line='774' column='1'/>
+        <parameter type-id='eaa32e2f' name='entry' filepath='lib/xarray.c' line='774' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='xdp_convert_zc_to_xdp_frame' mangled-name='xdp_convert_zc_to_xdp_frame' filepath='net/core/xdp.c' line='506' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_convert_zc_to_xdp_frame'>
+        <parameter type-id='38ed603d' name='xdp' filepath='net/core/xdp.c' line='506' column='1'/>
+        <return type-id='cb1c5129'/>
+      </function-decl>
+      <function-decl name='xdp_do_flush' mangled-name='xdp_do_flush' filepath='net/core/filter.c' line='3927' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_do_flush'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xdp_do_redirect' mangled-name='xdp_do_redirect' filepath='net/core/filter.c' line='3977' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_do_redirect'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/filter.c' line='3977' column='1'/>
+        <parameter type-id='38ed603d' name='xdp' filepath='net/core/filter.c' line='3977' column='1'/>
+        <parameter type-id='bdcee7ae' name='xdp_prog' filepath='net/core/filter.c' line='3978' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xdp_master_redirect' mangled-name='xdp_master_redirect' filepath='net/core/filter.c' line='3955' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_master_redirect'>
+        <parameter type-id='38ed603d' name='xdp' filepath='net/core/filter.c' line='3955' column='1'/>
+        <return type-id='19c2251e'/>
+      </function-decl>
+      <function-decl name='xdp_return_frame' mangled-name='xdp_return_frame' filepath='net/core/xdp.c' line='410' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_return_frame'>
+        <parameter type-id='cb1c5129' name='xdpf' filepath='net/core/xdp.c' line='410' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xdp_return_frame_rx_napi' mangled-name='xdp_return_frame_rx_napi' filepath='net/core/xdp.c' line='416' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_return_frame_rx_napi'>
+        <parameter type-id='cb1c5129' name='xdpf' filepath='net/core/xdp.c' line='416' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xdp_rxq_info_is_reg' mangled-name='xdp_rxq_info_is_reg' filepath='net/core/xdp.c' line='202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_rxq_info_is_reg'>
+        <parameter type-id='8e35a44c' name='xdp_rxq' filepath='net/core/xdp.c' line='202' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='xdp_rxq_info_reg' mangled-name='xdp_rxq_info_reg' filepath='net/core/xdp.c' line='167' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_rxq_info_reg'>
+        <parameter type-id='8e35a44c' name='xdp_rxq' filepath='net/core/xdp.c' line='167' column='1'/>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/core/xdp.c' line='168' column='1'/>
+        <parameter type-id='19c2251e' name='queue_index' filepath='net/core/xdp.c' line='168' column='1'/>
+        <parameter type-id='f0981eeb' name='napi_id' filepath='net/core/xdp.c' line='168' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xdp_rxq_info_reg_mem_model' mangled-name='xdp_rxq_info_reg_mem_model' filepath='net/core/xdp.c' line='348' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_rxq_info_reg_mem_model'>
+        <parameter type-id='8e35a44c' name='xdp_rxq' filepath='net/core/xdp.c' line='348' column='1'/>
+        <parameter type-id='8abc4a7f' name='type' filepath='net/core/xdp.c' line='349' column='1'/>
+        <parameter type-id='eaa32e2f' name='allocator' filepath='net/core/xdp.c' line='349' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xdp_rxq_info_unreg' mangled-name='xdp_rxq_info_unreg' filepath='net/core/xdp.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_rxq_info_unreg'>
+        <parameter type-id='8e35a44c' name='xdp_rxq' filepath='net/core/xdp.c' line='146' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xdp_rxq_info_unreg_mem_model' mangled-name='xdp_rxq_info_unreg_mem_model' filepath='net/core/xdp.c' line='135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_rxq_info_unreg_mem_model'>
+        <parameter type-id='8e35a44c' name='xdp_rxq' filepath='net/core/xdp.c' line='135' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xdp_warn' mangled-name='xdp_warn' filepath='net/core/xdp.c' line='546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_warn'>
+        <parameter type-id='80f4b756' name='msg' filepath='net/core/xdp.c' line='546' column='1'/>
+        <parameter type-id='80f4b756' name='func' filepath='net/core/xdp.c' line='546' column='1'/>
+        <parameter type-id='2448a865' name='line' filepath='net/core/xdp.c' line='546' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xfrm4_protocol_deregister' mangled-name='xfrm4_protocol_deregister' filepath='net/ipv4/xfrm4_protocol.c' line='264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm4_protocol_deregister'>
+        <parameter type-id='5a0e9b53' name='handler' filepath='net/ipv4/xfrm4_protocol.c' line='264' column='1'/>
+        <parameter type-id='002ac4a6' name='protocol' filepath='net/ipv4/xfrm4_protocol.c' line='265' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xfrm4_protocol_register' mangled-name='xfrm4_protocol_register' filepath='net/ipv4/xfrm4_protocol.c' line='217' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm4_protocol_register'>
+        <parameter type-id='5a0e9b53' name='handler' filepath='net/ipv4/xfrm4_protocol.c' line='217' column='1'/>
+        <parameter type-id='002ac4a6' name='protocol' filepath='net/ipv4/xfrm4_protocol.c' line='218' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xfrm4_rcv' mangled-name='xfrm4_rcv' filepath='net/ipv4/xfrm4_input.c' line='169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm4_rcv'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv4/xfrm4_input.c' line='169' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xfrm4_tunnel_deregister' mangled-name='xfrm4_tunnel_deregister' filepath='net/ipv4/tunnel4.c' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm4_tunnel_deregister'>
+        <parameter type-id='f68cfba1' name='handler' filepath='net/ipv4/tunnel4.c' line='63' column='1'/>
+        <parameter type-id='8efea9e5' name='family' filepath='net/ipv4/tunnel4.c' line='63' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xfrm4_tunnel_register' mangled-name='xfrm4_tunnel_register' filepath='net/ipv4/tunnel4.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm4_tunnel_register'>
+        <parameter type-id='f68cfba1' name='handler' filepath='net/ipv4/tunnel4.c' line='31' column='1'/>
+        <parameter type-id='8efea9e5' name='family' filepath='net/ipv4/tunnel4.c' line='31' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xfrm6_protocol_deregister' mangled-name='xfrm6_protocol_deregister' filepath='net/ipv6/xfrm6_protocol.c' line='280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm6_protocol_deregister'>
+        <parameter type-id='679c2b79' name='handler' filepath='net/ipv6/xfrm6_protocol.c' line='280' column='1'/>
+        <parameter type-id='002ac4a6' name='protocol' filepath='net/ipv6/xfrm6_protocol.c' line='281' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xfrm6_protocol_register' mangled-name='xfrm6_protocol_register' filepath='net/ipv6/xfrm6_protocol.c' line='233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm6_protocol_register'>
+        <parameter type-id='679c2b79' name='handler' filepath='net/ipv6/xfrm6_protocol.c' line='233' column='1'/>
+        <parameter type-id='002ac4a6' name='protocol' filepath='net/ipv6/xfrm6_protocol.c' line='234' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xfrm6_rcv' mangled-name='xfrm6_rcv' filepath='net/ipv6/xfrm6_input.c' line='173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm6_rcv'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv6/xfrm6_input.c' line='173' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xfrm_aalg_get_byname' mangled-name='xfrm_aalg_get_byname' filepath='net/xfrm/xfrm_algo.c' line='705' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_aalg_get_byname'>
+        <parameter type-id='80f4b756' name='name' filepath='net/xfrm/xfrm_algo.c' line='705' column='1'/>
+        <parameter type-id='95e97e5e' name='probe' filepath='net/xfrm/xfrm_algo.c' line='705' column='1'/>
+        <return type-id='dc64b956'/>
+      </function-decl>
+      <function-decl name='xfrm_init_state' mangled-name='xfrm_init_state' filepath='net/xfrm/xfrm_state.c' line='2690' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_init_state'>
+        <parameter type-id='328dda6e' name='x' filepath='net/xfrm/xfrm_state.c' line='2690' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xfrm_input' mangled-name='xfrm_input' filepath='net/xfrm/xfrm_input.c' line='460' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_input'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/xfrm/xfrm_input.c' line='460' column='1'/>
+        <parameter type-id='95e97e5e' name='nexthdr' filepath='net/xfrm/xfrm_input.c' line='460' column='1'/>
+        <parameter type-id='78a133c2' name='spi' filepath='net/xfrm/xfrm_input.c' line='460' column='1'/>
+        <parameter type-id='95e97e5e' name='encap_type' filepath='net/xfrm/xfrm_input.c' line='460' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xfrm_input_resume' mangled-name='xfrm_input_resume' filepath='net/xfrm/xfrm_input.c' line='758' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_input_resume'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/xfrm/xfrm_input.c' line='758' column='1'/>
+        <parameter type-id='95e97e5e' name='nexthdr' filepath='net/xfrm/xfrm_input.c' line='758' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xfrm_lookup' mangled-name='xfrm_lookup' filepath='net/xfrm/xfrm_policy.c' line='3190' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_lookup'>
+        <parameter type-id='a2bff676' name='net' filepath='net/xfrm/xfrm_policy.c' line='3190' column='1'/>
+        <parameter type-id='141b6427' name='dst_orig' filepath='net/xfrm/xfrm_policy.c' line='3190' column='1'/>
+        <parameter type-id='c76694b7' name='fl' filepath='net/xfrm/xfrm_policy.c' line='3191' column='1'/>
+        <parameter type-id='78e7cf52' name='sk' filepath='net/xfrm/xfrm_policy.c' line='3191' column='1'/>
+        <parameter type-id='95e97e5e' name='flags' filepath='net/xfrm/xfrm_policy.c' line='3192' column='1'/>
+        <return type-id='141b6427'/>
+      </function-decl>
+      <function-decl name='xfrm_output_resume' mangled-name='xfrm_output_resume' filepath='net/xfrm/xfrm_output.c' line='582' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_output_resume'>
+        <parameter type-id='0fbf3cfd' name='skb' filepath='net/xfrm/xfrm_output.c' line='582' column='1'/>
+        <parameter type-id='95e97e5e' name='err' filepath='net/xfrm/xfrm_output.c' line='582' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xfrm_register_type' mangled-name='xfrm_register_type' filepath='net/xfrm/xfrm_state.c' line='202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_register_type'>
+        <parameter type-id='4e812b7a' name='type' filepath='net/xfrm/xfrm_state.c' line='202' column='1'/>
+        <parameter type-id='8efea9e5' name='family' filepath='net/xfrm/xfrm_state.c' line='202' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xfrm_state_afinfo_get_rcu' mangled-name='xfrm_state_afinfo_get_rcu' filepath='net/xfrm/xfrm_state.c' line='2543' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_state_afinfo_get_rcu'>
+        <parameter type-id='f0981eeb' name='family' filepath='net/xfrm/xfrm_state.c' line='2543' column='1'/>
+        <return type-id='1ec7f524'/>
+      </function-decl>
+      <function-decl name='xfrm_state_alloc' mangled-name='xfrm_state_alloc' filepath='net/xfrm/xfrm_state.c' line='631' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_state_alloc'>
+        <parameter type-id='a2bff676' name='net' filepath='net/xfrm/xfrm_state.c' line='631' column='1'/>
+        <return type-id='328dda6e'/>
+      </function-decl>
+      <function-decl name='xfrm_state_insert' mangled-name='xfrm_state_insert' filepath='net/xfrm/xfrm_state.c' line='1332' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_state_insert'>
+        <parameter type-id='328dda6e' name='x' filepath='net/xfrm/xfrm_state.c' line='1332' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xfrm_state_lookup' mangled-name='xfrm_state_lookup' filepath='net/xfrm/xfrm_state.c' line='1809' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_state_lookup'>
+        <parameter type-id='a2bff676' name='net' filepath='net/xfrm/xfrm_state.c' line='1809' column='1'/>
+        <parameter type-id='19c2251e' name='mark' filepath='net/xfrm/xfrm_state.c' line='1809' column='1'/>
+        <parameter type-id='c40b00f7' name='daddr' filepath='net/xfrm/xfrm_state.c' line='1809' column='1'/>
+        <parameter type-id='78a133c2' name='spi' filepath='net/xfrm/xfrm_state.c' line='1809' column='1'/>
+        <parameter type-id='f9b06939' name='proto' filepath='net/xfrm/xfrm_state.c' line='1810' column='1'/>
+        <parameter type-id='8efea9e5' name='family' filepath='net/xfrm/xfrm_state.c' line='1810' column='1'/>
+        <return type-id='328dda6e'/>
+      </function-decl>
+      <function-decl name='xfrm_state_lookup_byspi' mangled-name='xfrm_state_lookup_byspi' filepath='net/xfrm/xfrm_state.c' line='1251' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_state_lookup_byspi'>
+        <parameter type-id='a2bff676' name='net' filepath='net/xfrm/xfrm_state.c' line='1251' column='1'/>
+        <parameter type-id='78a133c2' name='spi' filepath='net/xfrm/xfrm_state.c' line='1251' column='1'/>
+        <parameter type-id='8efea9e5' name='family' filepath='net/xfrm/xfrm_state.c' line='1252' column='1'/>
+        <return type-id='328dda6e'/>
+      </function-decl>
+      <function-decl name='xfrm_stateonly_find' mangled-name='xfrm_stateonly_find' filepath='net/xfrm/xfrm_state.c' line='1218' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_stateonly_find'>
+        <parameter type-id='a2bff676' name='net' filepath='net/xfrm/xfrm_state.c' line='1218' column='1'/>
+        <parameter type-id='19c2251e' name='mark' filepath='net/xfrm/xfrm_state.c' line='1218' column='1'/>
+        <parameter type-id='19c2251e' name='if_id' filepath='net/xfrm/xfrm_state.c' line='1218' column='1'/>
+        <parameter type-id='47a1c9f4' name='daddr' filepath='net/xfrm/xfrm_state.c' line='1219' column='1'/>
+        <parameter type-id='47a1c9f4' name='saddr' filepath='net/xfrm/xfrm_state.c' line='1219' column='1'/>
+        <parameter type-id='8efea9e5' name='family' filepath='net/xfrm/xfrm_state.c' line='1220' column='1'/>
+        <parameter type-id='f9b06939' name='mode' filepath='net/xfrm/xfrm_state.c' line='1220' column='1'/>
+        <parameter type-id='f9b06939' name='proto' filepath='net/xfrm/xfrm_state.c' line='1220' column='1'/>
+        <parameter type-id='19c2251e' name='reqid' filepath='net/xfrm/xfrm_state.c' line='1220' column='1'/>
+        <return type-id='328dda6e'/>
+      </function-decl>
+      <function-decl name='xfrm_unregister_type' mangled-name='xfrm_unregister_type' filepath='net/xfrm/xfrm_state.c' line='248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_unregister_type'>
+        <parameter type-id='4e812b7a' name='type' filepath='net/xfrm/xfrm_state.c' line='248' column='1'/>
+        <parameter type-id='8efea9e5' name='family' filepath='net/xfrm/xfrm_state.c' line='248' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xhci_add_endpoint' mangled-name='xhci_add_endpoint' filepath='drivers/usb/host/xhci.c' line='1991' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_add_endpoint'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/host/xhci.c' line='1991' column='1'/>
+        <parameter type-id='25e60cb2' name='udev' filepath='drivers/usb/host/xhci.c' line='1991' column='1'/>
+        <parameter type-id='15adb516' name='ep' filepath='drivers/usb/host/xhci.c' line='1992' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xhci_alloc_command' mangled-name='xhci_alloc_command' filepath='drivers/usb/host/xhci-mem.c' line='1744' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_alloc_command'>
+        <parameter type-id='0c65b409' name='xhci' filepath='drivers/usb/host/xhci-mem.c' line='1744' column='1'/>
+        <parameter type-id='b50a4934' name='allocate_completion' filepath='drivers/usb/host/xhci-mem.c' line='1745' column='1'/>
+        <parameter type-id='3eb7c31c' name='mem_flags' filepath='drivers/usb/host/xhci-mem.c' line='1745' column='1'/>
+        <return type-id='5a32bd4b'/>
+      </function-decl>
+      <function-decl name='xhci_alloc_erst' mangled-name='xhci_alloc_erst' filepath='drivers/usb/host/xhci-mem.c' line='1805' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_alloc_erst'>
+        <parameter type-id='0c65b409' name='xhci' filepath='drivers/usb/host/xhci-mem.c' line='1805' column='1'/>
+        <parameter type-id='52a50596' name='evt_ring' filepath='drivers/usb/host/xhci-mem.c' line='1806' column='1'/>
+        <parameter type-id='d7409d08' name='erst' filepath='drivers/usb/host/xhci-mem.c' line='1807' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='drivers/usb/host/xhci-mem.c' line='1808' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xhci_check_bandwidth' mangled-name='xhci_check_bandwidth' filepath='drivers/usb/host/xhci.c' line='3027' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_check_bandwidth'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/host/xhci.c' line='3027' column='1'/>
+        <parameter type-id='25e60cb2' name='udev' filepath='drivers/usb/host/xhci.c' line='3027' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xhci_drop_endpoint' mangled-name='xhci_drop_endpoint' filepath='drivers/usb/host/xhci.c' line='1908' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_drop_endpoint'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/host/xhci.c' line='1908' column='1'/>
+        <parameter type-id='25e60cb2' name='udev' filepath='drivers/usb/host/xhci.c' line='1908' column='1'/>
+        <parameter type-id='15adb516' name='ep' filepath='drivers/usb/host/xhci.c' line='1909' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xhci_free_command' mangled-name='xhci_free_command' filepath='drivers/usb/host/xhci-mem.c' line='1795' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_free_command'>
+        <parameter type-id='0c65b409' name='xhci' filepath='drivers/usb/host/xhci-mem.c' line='1795' column='1'/>
+        <parameter type-id='5a32bd4b' name='command' filepath='drivers/usb/host/xhci-mem.c' line='1796' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xhci_free_erst' mangled-name='xhci_free_erst' filepath='drivers/usb/host/xhci-mem.c' line='1836' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_free_erst'>
+        <parameter type-id='0c65b409' name='xhci' filepath='drivers/usb/host/xhci-mem.c' line='1836' column='1'/>
+        <parameter type-id='d7409d08' name='erst' filepath='drivers/usb/host/xhci-mem.c' line='1836' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xhci_gen_setup' mangled-name='xhci_gen_setup' filepath='drivers/usb/host/xhci.c' line='5238' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_gen_setup'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/host/xhci.c' line='5238' column='1'/>
+        <parameter type-id='67f831c0' name='get_quirks' filepath='drivers/usb/host/xhci.c' line='5238' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xhci_get_endpoint_index' mangled-name='xhci_get_endpoint_index' filepath='drivers/usb/host/xhci.c' line='1462' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_get_endpoint_index'>
+        <parameter type-id='a07d0491' name='desc' filepath='drivers/usb/host/xhci.c' line='1462' column='1'/>
+        <return type-id='f0981eeb'/>
+      </function-decl>
+      <function-decl name='xhci_get_ep_ctx' mangled-name='xhci_get_ep_ctx' filepath='drivers/usb/host/xhci-mem.c' line='525' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_get_ep_ctx'>
+        <parameter type-id='0c65b409' name='xhci' filepath='drivers/usb/host/xhci-mem.c' line='525' column='1'/>
+        <parameter type-id='971e404f' name='ctx' filepath='drivers/usb/host/xhci-mem.c' line='526' column='1'/>
+        <parameter type-id='f0981eeb' name='ep_index' filepath='drivers/usb/host/xhci-mem.c' line='527' column='1'/>
+        <return type-id='216753a5'/>
+      </function-decl>
+      <function-decl name='xhci_init_driver' mangled-name='xhci_init_driver' filepath='drivers/usb/host/xhci.c' line='5485' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_init_driver'>
+        <parameter type-id='c07d5ba3' name='drv' filepath='drivers/usb/host/xhci.c' line='5485' column='1'/>
+        <parameter type-id='9a55ba3d' name='over' filepath='drivers/usb/host/xhci.c' line='5486' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xhci_queue_stop_endpoint' mangled-name='xhci_queue_stop_endpoint' filepath='drivers/usb/host/xhci-ring.c' line='4445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_queue_stop_endpoint'>
+        <parameter type-id='0c65b409' name='xhci' filepath='drivers/usb/host/xhci-ring.c' line='4445' column='1'/>
+        <parameter type-id='5a32bd4b' name='cmd' filepath='drivers/usb/host/xhci-ring.c' line='4445' column='1'/>
+        <parameter type-id='95e97e5e' name='slot_id' filepath='drivers/usb/host/xhci-ring.c' line='4446' column='1'/>
+        <parameter type-id='f0981eeb' name='ep_index' filepath='drivers/usb/host/xhci-ring.c' line='4446' column='1'/>
+        <parameter type-id='95e97e5e' name='suspend' filepath='drivers/usb/host/xhci-ring.c' line='4446' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xhci_reset_bandwidth' mangled-name='xhci_reset_bandwidth' filepath='drivers/usb/host/xhci.c' line='3126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_reset_bandwidth'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/host/xhci.c' line='3126' column='1'/>
+        <parameter type-id='25e60cb2' name='udev' filepath='drivers/usb/host/xhci.c' line='3126' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xhci_resume' mangled-name='xhci_resume' filepath='drivers/usb/host/xhci.c' line='1109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_resume'>
+        <parameter type-id='0c65b409' name='xhci' filepath='drivers/usb/host/xhci.c' line='1109' column='1'/>
+        <parameter type-id='b50a4934' name='hibernated' filepath='drivers/usb/host/xhci.c' line='1109' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xhci_ring_alloc' mangled-name='xhci_ring_alloc' filepath='drivers/usb/host/xhci-mem.c' line='372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_ring_alloc'>
+        <parameter type-id='0c65b409' name='xhci' filepath='drivers/usb/host/xhci-mem.c' line='372' column='1'/>
+        <parameter type-id='f0981eeb' name='num_segs' filepath='drivers/usb/host/xhci-mem.c' line='373' column='1'/>
+        <parameter type-id='f0981eeb' name='cycle_state' filepath='drivers/usb/host/xhci-mem.c' line='373' column='1'/>
+        <parameter type-id='b61681fc' name='type' filepath='drivers/usb/host/xhci-mem.c' line='374' column='1'/>
+        <parameter type-id='f0981eeb' name='max_packet' filepath='drivers/usb/host/xhci-mem.c' line='374' column='1'/>
+        <parameter type-id='3eb7c31c' name='flags' filepath='drivers/usb/host/xhci-mem.c' line='374' column='1'/>
+        <return type-id='52a50596'/>
+      </function-decl>
+      <function-decl name='xhci_ring_cmd_db' mangled-name='xhci_ring_cmd_db' filepath='drivers/usb/host/xhci-ring.c' line='322' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_ring_cmd_db'>
+        <parameter type-id='0c65b409' name='xhci' filepath='drivers/usb/host/xhci-ring.c' line='322' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xhci_ring_free' mangled-name='xhci_ring_free' filepath='drivers/usb/host/xhci-mem.c' line='280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_ring_free'>
+        <parameter type-id='0c65b409' name='xhci' filepath='drivers/usb/host/xhci-mem.c' line='280' column='1'/>
+        <parameter type-id='52a50596' name='ring' filepath='drivers/usb/host/xhci-mem.c' line='280' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xhci_run' mangled-name='xhci_run' filepath='drivers/usb/host/xhci.c' line='641' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_run'>
+        <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/host/xhci.c' line='641' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xhci_suspend' mangled-name='xhci_suspend' filepath='drivers/usb/host/xhci.c' line='994' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_suspend'>
+        <parameter type-id='0c65b409' name='xhci' filepath='drivers/usb/host/xhci.c' line='994' column='1'/>
+        <parameter type-id='b50a4934' name='do_wakeup' filepath='drivers/usb/host/xhci.c' line='994' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xhci_trb_virt_to_dma' mangled-name='xhci_trb_virt_to_dma' filepath='drivers/usb/host/xhci-ring.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_trb_virt_to_dma'>
+        <parameter type-id='9689f21b' name='seg' filepath='drivers/usb/host/xhci-ring.c' line='69' column='1'/>
+        <parameter type-id='2e0bb6d4' name='trb' filepath='drivers/usb/host/xhci-ring.c' line='70' column='1'/>
+        <return type-id='cf29c9b3'/>
+      </function-decl>
+      <function-decl name='xp_alloc' mangled-name='xp_alloc' filepath='net/xdp/xsk_buff_pool.c' line='485' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xp_alloc'>
+        <parameter type-id='81e0c1b8' name='pool' filepath='net/xdp/xsk_buff_pool.c' line='485' column='1'/>
+        <return type-id='38ed603d'/>
+      </function-decl>
+      <function-decl name='xp_dma_map' mangled-name='xp_dma_map' filepath='net/xdp/xsk_buff_pool.c' line='375' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xp_dma_map'>
+        <parameter type-id='81e0c1b8' name='pool' filepath='net/xdp/xsk_buff_pool.c' line='375' column='1'/>
+        <parameter type-id='fa0b179b' name='dev' filepath='net/xdp/xsk_buff_pool.c' line='375' column='1'/>
+        <parameter type-id='7359adad' name='attrs' filepath='net/xdp/xsk_buff_pool.c' line='376' column='1'/>
+        <parameter type-id='9f93c9da' name='pages' filepath='net/xdp/xsk_buff_pool.c' line='376' column='1'/>
+        <parameter type-id='19c2251e' name='nr_pages' filepath='net/xdp/xsk_buff_pool.c' line='376' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xp_dma_sync_for_cpu_slow' mangled-name='xp_dma_sync_for_cpu_slow' filepath='net/xdp/xsk_buff_pool.c' line='543' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xp_dma_sync_for_cpu_slow'>
+        <parameter type-id='2d82dfd6' name='xskb' filepath='net/xdp/xsk_buff_pool.c' line='543' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xp_dma_sync_for_device_slow' mangled-name='xp_dma_sync_for_device_slow' filepath='net/xdp/xsk_buff_pool.c' line='550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xp_dma_sync_for_device_slow'>
+        <parameter type-id='81e0c1b8' name='pool' filepath='net/xdp/xsk_buff_pool.c' line='550' column='1'/>
+        <parameter type-id='cf29c9b3' name='dma' filepath='net/xdp/xsk_buff_pool.c' line='550' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='net/xdp/xsk_buff_pool.c' line='551' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xp_dma_unmap' mangled-name='xp_dma_unmap' filepath='net/xdp/xsk_buff_pool.c' line='325' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xp_dma_unmap'>
+        <parameter type-id='81e0c1b8' name='pool' filepath='net/xdp/xsk_buff_pool.c' line='325' column='1'/>
+        <parameter type-id='7359adad' name='attrs' filepath='net/xdp/xsk_buff_pool.c' line='325' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xp_free' mangled-name='xp_free' filepath='net/xdp/xsk_buff_pool.c' line='520' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xp_free'>
+        <parameter type-id='2d82dfd6' name='xskb' filepath='net/xdp/xsk_buff_pool.c' line='520' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xp_raw_get_dma' mangled-name='xp_raw_get_dma' filepath='net/xdp/xsk_buff_pool.c' line='534' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xp_raw_get_dma'>
+        <parameter type-id='81e0c1b8' name='pool' filepath='net/xdp/xsk_buff_pool.c' line='534' column='1'/>
+        <parameter type-id='91ce1af9' name='addr' filepath='net/xdp/xsk_buff_pool.c' line='534' column='1'/>
+        <return type-id='cf29c9b3'/>
+      </function-decl>
+      <function-decl name='xp_set_rxq_info' mangled-name='xp_set_rxq_info' filepath='net/xdp/xsk_buff_pool.c' line='94' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xp_set_rxq_info'>
+        <parameter type-id='81e0c1b8' name='pool' filepath='net/xdp/xsk_buff_pool.c' line='94' column='1'/>
+        <parameter type-id='8e35a44c' name='rxq' filepath='net/xdp/xsk_buff_pool.c' line='94' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xsk_clear_rx_need_wakeup' mangled-name='xsk_clear_rx_need_wakeup' filepath='net/xdp/xsk.c' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xsk_clear_rx_need_wakeup'>
+        <parameter type-id='81e0c1b8' name='pool' filepath='net/xdp/xsk.c' line='64' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xsk_get_pool_from_qid' mangled-name='xsk_get_pool_from_qid' filepath='net/xdp/xsk.c' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xsk_get_pool_from_qid'>
+        <parameter type-id='68a2d05b' name='dev' filepath='net/xdp/xsk.c' line='97' column='1'/>
+        <parameter type-id='1dc6a898' name='queue_id' filepath='net/xdp/xsk.c' line='98' column='1'/>
+        <return type-id='81e0c1b8'/>
+      </function-decl>
+      <function-decl name='xsk_set_rx_need_wakeup' mangled-name='xsk_set_rx_need_wakeup' filepath='net/xdp/xsk.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xsk_set_rx_need_wakeup'>
+        <parameter type-id='81e0c1b8' name='pool' filepath='net/xdp/xsk.c' line='37' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xsk_set_tx_need_wakeup' mangled-name='xsk_set_tx_need_wakeup' filepath='net/xdp/xsk.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xsk_set_tx_need_wakeup'>
+        <parameter type-id='81e0c1b8' name='pool' filepath='net/xdp/xsk.c' line='47' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xsk_tx_completed' mangled-name='xsk_tx_completed' filepath='net/xdp/xsk.c' line='311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xsk_tx_completed'>
+        <parameter type-id='81e0c1b8' name='pool' filepath='net/xdp/xsk.c' line='311' column='1'/>
+        <parameter type-id='19c2251e' name='nb_entries' filepath='net/xdp/xsk.c' line='311' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xsk_tx_peek_desc' mangled-name='xsk_tx_peek_desc' filepath='net/xdp/xsk.c' line='331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xsk_tx_peek_desc'>
+        <parameter type-id='81e0c1b8' name='pool' filepath='net/xdp/xsk.c' line='331' column='1'/>
+        <parameter type-id='045e4a95' name='desc' filepath='net/xdp/xsk.c' line='331' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='xsk_tx_release' mangled-name='xsk_tx_release' filepath='net/xdp/xsk.c' line='317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xsk_tx_release'>
+        <parameter type-id='81e0c1b8' name='pool' filepath='net/xdp/xsk.c' line='317' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xsk_uses_need_wakeup' mangled-name='xsk_uses_need_wakeup' filepath='net/xdp/xsk.c' line='91' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xsk_uses_need_wakeup'>
+        <parameter type-id='81e0c1b8' name='pool' filepath='net/xdp/xsk.c' line='91' column='1'/>
+        <return type-id='b50a4934'/>
+      </function-decl>
+      <function-decl name='xt_hook_ops_alloc' mangled-name='xt_hook_ops_alloc' filepath='net/netfilter/x_tables.c' line='1732' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xt_hook_ops_alloc'>
+        <parameter type-id='e52e19bf' name='table' filepath='net/netfilter/x_tables.c' line='1732' column='1'/>
+        <parameter type-id='c8f8b049' name='fn' filepath='net/netfilter/x_tables.c' line='1732' column='1'/>
+        <return type-id='f7d53868'/>
+      </function-decl>
+      <function-decl name='xt_register_match' mangled-name='xt_register_match' filepath='net/netfilter/x_tables.c' line='139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xt_register_match'>
+        <parameter type-id='e25f5feb' name='match' filepath='net/netfilter/x_tables.c' line='139' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xt_register_matches' mangled-name='xt_register_matches' filepath='net/netfilter/x_tables.c' line='162' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xt_register_matches'>
+        <parameter type-id='e25f5feb' name='match' filepath='net/netfilter/x_tables.c' line='162' column='1'/>
+        <parameter type-id='f0981eeb' name='n' filepath='net/netfilter/x_tables.c' line='162' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xt_register_target' mangled-name='xt_register_target' filepath='net/netfilter/x_tables.c' line='89' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xt_register_target'>
+        <parameter type-id='49ac960b' name='target' filepath='net/netfilter/x_tables.c' line='89' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='xt_register_targets' mangled-name='xt_register_targets' filepath='net/netfilter/x_tables.c' line='112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xt_register_targets'>
+        <parameter type-id='49ac960b' name='target' filepath='net/netfilter/x_tables.c' line='112' column='1'/>
+        <parameter type-id='f0981eeb' name='n' filepath='net/netfilter/x_tables.c' line='112' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <var-decl name='xt_tee_enabled' type-id='00205383' mangled-name='xt_tee_enabled' visibility='default' filepath='net/netfilter/x_tables.c' line='1322' column='1' elf-symbol-id='xt_tee_enabled'/>
+      <function-decl name='xt_unregister_match' mangled-name='xt_unregister_match' filepath='net/netfilter/x_tables.c' line='151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xt_unregister_match'>
+        <parameter type-id='e25f5feb' name='match' filepath='net/netfilter/x_tables.c' line='151' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xt_unregister_matches' mangled-name='xt_unregister_matches' filepath='net/netfilter/x_tables.c' line='182' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xt_unregister_matches'>
+        <parameter type-id='e25f5feb' name='match' filepath='net/netfilter/x_tables.c' line='182' column='1'/>
+        <parameter type-id='f0981eeb' name='n' filepath='net/netfilter/x_tables.c' line='182' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xt_unregister_target' mangled-name='xt_unregister_target' filepath='net/netfilter/x_tables.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xt_unregister_target'>
+        <parameter type-id='49ac960b' name='target' filepath='net/netfilter/x_tables.c' line='101' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='xt_unregister_targets' mangled-name='xt_unregister_targets' filepath='net/netfilter/x_tables.c' line='132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xt_unregister_targets'>
+        <parameter type-id='49ac960b' name='target' filepath='net/netfilter/x_tables.c' line='132' column='1'/>
+        <parameter type-id='f0981eeb' name='n' filepath='net/netfilter/x_tables.c' line='132' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='yield' mangled-name='yield' filepath='kernel/sched/core.c' line='8517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='yield'>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='zap_vma_ptes' mangled-name='zap_vma_ptes' filepath='mm/memory.c' line='1768' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zap_vma_ptes'>
+        <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='1768' column='1'/>
+        <parameter type-id='7359adad' name='address' filepath='mm/memory.c' line='1768' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='mm/memory.c' line='1769' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <var-decl name='zero_pfn' type-id='7359adad' mangled-name='zero_pfn' visibility='default' filepath='mm/memory.c' line='144' column='1' elf-symbol-id='zero_pfn'/>
+      <function-decl name='zlib_deflate' mangled-name='zlib_deflate' filepath='lib/zlib_deflate/deflate.c' line='329' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zlib_deflate'>
+        <parameter type-id='fb4f8c25' name='strm' filepath='lib/zlib_deflate/deflate.c' line='330' column='1'/>
+        <parameter type-id='95e97e5e' name='flush' filepath='lib/zlib_deflate/deflate.c' line='331' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='zlib_deflateEnd' mangled-name='zlib_deflateEnd' filepath='lib/zlib_deflate/deflate.c' line='468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zlib_deflateEnd'>
+        <parameter type-id='fb4f8c25' name='strm' filepath='lib/zlib_deflate/deflate.c' line='469' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='zlib_deflateInit2' mangled-name='zlib_deflateInit2' filepath='lib/zlib_deflate/deflate.c' line='188' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zlib_deflateInit2'>
+        <parameter type-id='fb4f8c25' name='strm' filepath='lib/zlib_deflate/deflate.c' line='189' column='1'/>
+        <parameter type-id='95e97e5e' name='level' filepath='lib/zlib_deflate/deflate.c' line='190' column='1'/>
+        <parameter type-id='95e97e5e' name='method' filepath='lib/zlib_deflate/deflate.c' line='191' column='1'/>
+        <parameter type-id='95e97e5e' name='windowBits' filepath='lib/zlib_deflate/deflate.c' line='192' column='1'/>
+        <parameter type-id='95e97e5e' name='memLevel' filepath='lib/zlib_deflate/deflate.c' line='193' column='1'/>
+        <parameter type-id='95e97e5e' name='strategy' filepath='lib/zlib_deflate/deflate.c' line='194' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='zlib_deflateReset' mangled-name='zlib_deflateReset' filepath='lib/zlib_deflate/deflate.c' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zlib_deflateReset'>
+        <parameter type-id='fb4f8c25' name='strm' filepath='lib/zlib_deflate/deflate.c' line='283' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='zlib_deflate_workspacesize' mangled-name='zlib_deflate_workspacesize' filepath='lib/zlib_deflate/deflate.c' line='1127' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zlib_deflate_workspacesize'>
+        <parameter type-id='95e97e5e' name='windowBits' filepath='lib/zlib_deflate/deflate.c' line='1127' column='1'/>
+        <parameter type-id='95e97e5e' name='memLevel' filepath='lib/zlib_deflate/deflate.c' line='1127' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='zlib_inflate' mangled-name='zlib_inflate' filepath='lib/zlib_inflate/inflate.c' line='331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zlib_inflate'>
+        <parameter type-id='fb4f8c25' name='strm' filepath='lib/zlib_inflate/inflate.c' line='331' column='1'/>
+        <parameter type-id='95e97e5e' name='flush' filepath='lib/zlib_inflate/inflate.c' line='331' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='zlib_inflateEnd' mangled-name='zlib_inflateEnd' filepath='lib/zlib_inflate/inflate.c' line='770' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zlib_inflateEnd'>
+        <parameter type-id='fb4f8c25' name='strm' filepath='lib/zlib_inflate/inflate.c' line='770' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='zlib_inflateIncomp' mangled-name='zlib_inflateIncomp' filepath='lib/zlib_inflate/inflate.c' line='785' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zlib_inflateIncomp'>
+        <parameter type-id='369435a4' name='z' filepath='lib/zlib_inflate/inflate.c' line='785' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='zlib_inflateInit2' mangled-name='zlib_inflateInit2' filepath='lib/zlib_inflate/inflate.c' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zlib_inflateInit2'>
+        <parameter type-id='fb4f8c25' name='strm' filepath='lib/zlib_inflate/inflate.c' line='59' column='1'/>
+        <parameter type-id='95e97e5e' name='windowBits' filepath='lib/zlib_inflate/inflate.c' line='59' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='zlib_inflateReset' mangled-name='zlib_inflateReset' filepath='lib/zlib_inflate/inflate.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zlib_inflateReset'>
+        <parameter type-id='fb4f8c25' name='strm' filepath='lib/zlib_inflate/inflate.c' line='33' column='1'/>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+      <function-decl name='zlib_inflate_workspacesize' mangled-name='zlib_inflate_workspacesize' filepath='lib/zlib_inflate/inflate.c' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zlib_inflate_workspacesize'>
+        <return type-id='95e97e5e'/>
+      </function-decl>
+    </abi-instr>
+  </abi-corpus>
+  <abi-corpus version='2.1' path='zsmalloc.ko' architecture='elf-arm-aarch64'>
+    <elf-function-symbols>
+      <elf-symbol name='zs_compact' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5da67adc'/>
+      <elf-symbol name='zs_create_pool' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbcf1f0e6'/>
+      <elf-symbol name='zs_destroy_pool' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc69b7ee5'/>
+      <elf-symbol name='zs_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x958df3ac'/>
+      <elf-symbol name='zs_get_total_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcbe56bc2'/>
+      <elf-symbol name='zs_huge_class_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3d8baf3b'/>
+      <elf-symbol name='zs_malloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb29533ee'/>
+      <elf-symbol name='zs_map_object' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc341ae6d'/>
+      <elf-symbol name='zs_pool_stats' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7cceaf92'/>
+      <elf-symbol name='zs_unmap_object' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x924c46f8'/>
+    </elf-function-symbols>
+    <abi-instr address-size='64' language='LANG_C89' path='mm/zsmalloc.c'>
+      <function-decl name='zs_compact' mangled-name='zs_compact' filepath='mm/zsmalloc.c' line='2293' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zs_compact'>
+        <parameter type-id='06d9546d' name='pool' filepath='mm/zsmalloc.c' line='2293' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='zs_create_pool' mangled-name='zs_create_pool' filepath='mm/zsmalloc.c' line='2383' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zs_create_pool'>
+        <parameter type-id='80f4b756' name='name' filepath='mm/zsmalloc.c' line='2383' column='1'/>
+        <return type-id='06d9546d'/>
+      </function-decl>
+      <function-decl name='zs_destroy_pool' mangled-name='zs_destroy_pool' filepath='mm/zsmalloc.c' line='2499' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zs_destroy_pool'>
+        <parameter type-id='06d9546d' name='pool' filepath='mm/zsmalloc.c' line='2499' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='zs_free' mangled-name='zs_free' filepath='mm/zsmalloc.c' line='1489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zs_free'>
+        <parameter type-id='06d9546d' name='pool' filepath='mm/zsmalloc.c' line='1489' column='1'/>
+        <parameter type-id='7359adad' name='handle' filepath='mm/zsmalloc.c' line='1489' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='zs_get_total_pages' mangled-name='zs_get_total_pages' filepath='mm/zsmalloc.c' line='1220' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zs_get_total_pages'>
+        <parameter type-id='06d9546d' name='pool' filepath='mm/zsmalloc.c' line='1220' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='zs_huge_class_size' mangled-name='zs_huge_class_size' filepath='mm/zsmalloc.c' line='1351' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zs_huge_class_size'>
+        <parameter type-id='06d9546d' name='pool' filepath='mm/zsmalloc.c' line='1351' column='1'/>
+        <return type-id='b59d7dce'/>
+      </function-decl>
+      <function-decl name='zs_malloc' mangled-name='zs_malloc' filepath='mm/zsmalloc.c' line='1409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zs_malloc'>
+        <parameter type-id='06d9546d' name='pool' filepath='mm/zsmalloc.c' line='1409' column='1'/>
+        <parameter type-id='b59d7dce' name='size' filepath='mm/zsmalloc.c' line='1409' column='1'/>
+        <parameter type-id='3eb7c31c' name='gfp' filepath='mm/zsmalloc.c' line='1409' column='1'/>
+        <return type-id='7359adad'/>
+      </function-decl>
+      <function-decl name='zs_map_object' mangled-name='zs_map_object' filepath='mm/zsmalloc.c' line='1241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zs_map_object'>
+        <parameter type-id='06d9546d' name='pool' filepath='mm/zsmalloc.c' line='1241' column='1'/>
+        <parameter type-id='7359adad' name='handle' filepath='mm/zsmalloc.c' line='1241' column='1'/>
+        <parameter type-id='e60459a5' name='mm' filepath='mm/zsmalloc.c' line='1242' column='1'/>
+        <return type-id='eaa32e2f'/>
+      </function-decl>
+      <function-decl name='zs_pool_stats' mangled-name='zs_pool_stats' filepath='mm/zsmalloc.c' line='2313' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zs_pool_stats'>
+        <parameter type-id='06d9546d' name='pool' filepath='mm/zsmalloc.c' line='2313' column='1'/>
+        <parameter type-id='8344857d' name='stats' filepath='mm/zsmalloc.c' line='2313' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+      <function-decl name='zs_unmap_object' mangled-name='zs_unmap_object' filepath='mm/zsmalloc.c' line='1300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zs_unmap_object'>
+        <parameter type-id='06d9546d' name='pool' filepath='mm/zsmalloc.c' line='1300' column='1'/>
+        <parameter type-id='7359adad' name='handle' filepath='mm/zsmalloc.c' line='1300' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
+    </abi-instr>
+  </abi-corpus>
+</abi-corpus-group>
+<!--
+     libabigail: abidw: 2.1.0SOONG BUILD NUMBER PLACEHOLDER
+-->
diff --git a/android/abi_gki_aarch64_amlogic b/android/abi_gki_aarch64_amlogic
new file mode 100644
index 0000000..a11cb15
--- /dev/null
+++ b/android/abi_gki_aarch64_amlogic
@@ -0,0 +1,2263 @@
+[abi_symbol_list]
+  add_cpu
+  add_timer
+  add_uevent_var
+  add_wait_queue
+  adjust_managed_page_count
+  alloc_anon_inode
+  alloc_chrdev_region
+  alloc_etherdev_mqs
+  alloc_netdev_mqs
+  __alloc_pages
+  alloc_pages_exact
+  __alloc_percpu
+  __alloc_percpu_gfp
+  __alloc_skb
+  alloc_workqueue
+  android_rvh_probe_register
+  anon_inode_getfd
+  anon_inode_getfile
+  arc4_crypt
+  arc4_setkey
+  __arch_clear_user
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  __arm_smccc_hvc
+  __arm_smccc_smc
+  atomic_notifier_call_chain
+  atomic_notifier_chain_register
+  atomic_notifier_chain_unregister
+  backlight_device_register
+  backlight_device_unregister
+  balance_dirty_pages_ratelimited
+  bcmp
+  bio_add_page
+  bio_alloc_bioset
+  bio_associate_blkg
+  bio_chain
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_put
+  bio_start_io_acct
+  __bitmap_and
+  __bitmap_andnot
+  __bitmap_clear
+  bitmap_find_next_zero_area_off
+  bitmap_free
+  __bitmap_or
+  bitmap_parselist
+  __bitmap_set
+  __bitmap_shift_left
+  __bitmap_shift_right
+  __bitmap_weight
+  __bitmap_xor
+  bitmap_zalloc
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blkdev_issue_discard
+  blk_finish_plug
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  blk_start_plug
+  __blockdev_direct_IO
+  blockdev_superblock
+  blocking_notifier_call_chain
+  blocking_notifier_chain_register
+  blocking_notifier_chain_unregister
+  block_truncate_page
+  block_write_begin
+  block_write_end
+  block_write_full_page
+  bpf_dispatcher_xdp_func
+  bpf_master_redirect_enabled_key
+  bpf_prog_put
+  bpf_stats_enabled_key
+  bpf_trace_run10
+  bpf_trace_run1
+  bpf_trace_run2
+  bpf_trace_run3
+  bpf_trace_run4
+  bpf_trace_run5
+  bpf_trace_run6
+  bpf_trace_run7
+  bpf_trace_run8
+  bpf_warn_invalid_xdp_action
+  __bread_gfp
+  __brelse
+  bus_for_each_dev
+  bus_register
+  bus_register_notifier
+  bus_unregister
+  bus_unregister_notifier
+  cache_line_size
+  call_rcu
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  cancel_work_sync
+  capable
+  cdev_add
+  cdev_alloc
+  cdev_del
+  cdev_device_add
+  cdev_device_del
+  cdev_init
+  cec_notifier_set_phys_addr
+  cec_notifier_set_phys_addr_from_edid
+  __cfi_slowpath_diag
+  __check_object_size
+  __class_create
+  class_create_file_ns
+  class_destroy
+  class_find_device
+  __class_register
+  class_remove_file_ns
+  class_unregister
+  clean_bdev_aliases
+  clear_inode
+  clear_nlink
+  clear_page
+  __ClearPageMovable
+  clk_bulk_disable
+  clk_bulk_enable
+  clk_bulk_prepare
+  clk_bulk_unprepare
+  clk_disable
+  clk_divider_ops
+  clk_enable
+  clk_fixed_factor_ops
+  clk_gate_ops
+  clk_get
+  __clk_get_hw
+  __clk_get_name
+  clk_get_parent
+  clk_get_rate
+  clk_get_sys
+  clk_hw_get_flags
+  clk_hw_get_name
+  clk_hw_get_num_parents
+  clk_hw_get_parent
+  clk_hw_get_parent_by_index
+  clk_hw_get_rate
+  clk_hw_is_enabled
+  clk_hw_round_rate
+  clk_hw_set_parent
+  __clk_is_enabled
+  clk_mux_determine_rate_flags
+  clk_mux_index_to_val
+  clk_mux_ops
+  clk_mux_ro_ops
+  clk_mux_val_to_index
+  clk_notifier_register
+  clk_notifier_unregister
+  clk_prepare
+  clk_put
+  clk_register
+  clk_register_composite
+  clk_round_rate
+  clk_set_parent
+  clk_set_rate
+  clk_unprepare
+  cma_alloc
+  cma_for_each_area
+  cma_get_name
+  cma_release
+  compat_ptr_ioctl
+  complete
+  complete_all
+  complete_and_exit
+  completion_done
+  component_add
+  component_bind_all
+  component_del
+  component_master_add_with_match
+  component_master_del
+  component_match_add_release
+  component_unbind_all
+  console_printk
+  __const_udelay
+  consume_skb
+  contig_page_data
+  copy_from_kernel_nofault
+  copy_page_from_iter_atomic
+  cpu_all_bits
+  cpu_bit_bitmap
+  cpufreq_boost_enabled
+  cpufreq_generic_attr
+  cpufreq_generic_frequency_table_verify
+  cpufreq_generic_suspend
+  cpufreq_get_policy
+  cpufreq_register_driver
+  cpufreq_unregister_driver
+  cpu_have_feature
+  cpu_hotplug_disable
+  cpu_hotplug_enable
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpumask_next
+  cpumask_next_and
+  cpu_number
+  __cpu_online_mask
+  __cpu_possible_mask
+  cpus_read_lock
+  cpus_read_unlock
+  cpu_subsys
+  cpu_topology
+  crc32_be
+  crc32_le
+  create_empty_buffers
+  crypto_aead_decrypt
+  crypto_aead_encrypt
+  crypto_aead_setauthsize
+  crypto_aead_setkey
+  crypto_ahash_digest
+  crypto_ahash_setkey
+  crypto_alloc_aead
+  crypto_alloc_ahash
+  crypto_alloc_base
+  crypto_alloc_shash
+  crypto_alloc_skcipher
+  crypto_cipher_encrypt_one
+  crypto_cipher_setkey
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_dequeue_request
+  crypto_destroy_tfm
+  crypto_enqueue_request
+  crypto_has_alg
+  crypto_init_queue
+  __crypto_memneq
+  crypto_register_ahash
+  crypto_register_shash
+  crypto_register_skcipher
+  crypto_sha1_finup
+  crypto_sha1_update
+  crypto_shash_digest
+  crypto_shash_final
+  crypto_shash_finup
+  crypto_shash_setkey
+  crypto_shash_update
+  crypto_skcipher_decrypt
+  crypto_skcipher_encrypt
+  crypto_skcipher_setkey
+  crypto_unregister_ahash
+  crypto_unregister_shash
+  crypto_unregister_skcipher
+  __crypto_xor
+  css_next_descendant_pre
+  csum_ipv6_magic
+  csum_partial
+  _ctype
+  current_time
+  current_umask
+  debugfs_attr_read
+  debugfs_attr_write
+  debugfs_create_blob
+  debugfs_create_bool
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_create_u32
+  debugfs_create_u64
+  debugfs_lookup
+  debugfs_remove
+  debugfs_rename
+  dec_zone_page_state
+  default_llseek
+  default_wake_function
+  delayed_work_timer_fn
+  del_gendisk
+  del_timer
+  del_timer_sync
+  dentry_path_raw
+  des_expand_key
+  destroy_workqueue
+  dev_alloc_name
+  __dev_change_net_namespace
+  dev_close
+  _dev_crit
+  dev_driver_string
+  _dev_err
+  dev_err_probe
+  dev_fetch_sw_netstats
+  dev_fwnode
+  __dev_get_by_index
+  dev_get_by_index
+  __dev_get_by_name
+  dev_get_by_name
+  dev_get_regmap
+  device_add
+  device_add_disk
+  device_create
+  device_create_file
+  device_create_managed_software_node
+  device_del
+  device_destroy
+  device_for_each_child
+  device_get_child_node_count
+  device_get_match_data
+  device_get_phy_mode
+  device_initialize
+  device_init_wakeup
+  device_link_add
+  device_link_del
+  device_property_present
+  device_property_read_string
+  device_property_read_u32_array
+  device_register
+  device_remove_file
+  device_rename
+  __device_reset
+  device_set_wakeup_capable
+  device_set_wakeup_enable
+  device_unregister
+  _dev_info
+  __dev_kfree_skb_any
+  devm_add_action
+  devm_alloc_etherdev_mqs
+  devm_clk_bulk_get_all
+  devm_clk_get
+  devm_clk_get_optional
+  devm_clk_hw_register
+  devm_clk_hw_register_clkdev
+  devm_clk_put
+  devm_clk_register
+  devm_extcon_dev_allocate
+  devm_extcon_dev_register
+  devm_free_irq
+  devm_gpiod_get
+  devm_gpiod_get_index
+  devm_gpiod_get_optional
+  devm_gpiod_put
+  devm_gpio_request
+  devm_gpio_request_one
+  devm_hwrng_register
+  devm_iio_channel_get
+  devm_iio_device_alloc
+  devm_input_allocate_device
+  devm_ioremap
+  devm_ioremap_resource
+  devm_iounmap
+  devm_kasprintf
+  devm_kfree
+  devm_kmalloc
+  devm_kmemdup
+  devm_kstrdup
+  devm_kvasprintf
+  devm_mbox_controller_register
+  devm_nvmem_cell_get
+  devm_of_clk_add_hw_provider
+  devm_of_phy_get
+  devm_of_pwm_get
+  devm_pci_alloc_host_bridge
+  devm_pci_remap_cfg_resource
+  devm_phy_get
+  devm_pinctrl_get
+  devm_pinctrl_put
+  devm_pinctrl_register
+  devm_platform_ioremap_resource
+  devm_platform_ioremap_resource_byname
+  devm_pwm_get
+  devm_regmap_field_alloc
+  __devm_regmap_init_i2c
+  __devm_regmap_init_mmio_clk
+  devm_regulator_bulk_get
+  devm_regulator_get
+  devm_regulator_get_optional
+  devm_regulator_put
+  devm_regulator_register
+  __devm_release_region
+  __devm_request_region
+  devm_request_threaded_irq
+  __devm_reset_control_get
+  devm_reset_controller_register
+  devm_rtc_allocate_device
+  __devm_rtc_register_device
+  devm_snd_soc_register_card
+  devm_snd_soc_register_component
+  devm_spi_register_controller
+  devm_thermal_zone_of_sensor_register
+  devm_usb_get_phy
+  devm_usb_get_phy_by_phandle
+  devm_watchdog_register_device
+  _dev_notice
+  dev_open
+  dev_pm_clear_wake_irq
+  dev_pm_domain_attach_by_id
+  dev_pm_domain_attach_by_name
+  dev_pm_domain_detach
+  dev_pm_opp_find_freq_ceil
+  dev_pm_opp_free_cpufreq_table
+  dev_pm_opp_get_opp_count
+  dev_pm_opp_get_opp_table
+  dev_pm_opp_get_voltage
+  dev_pm_opp_init_cpufreq_table
+  dev_pm_opp_of_add_table
+  dev_pm_opp_of_add_table_indexed
+  dev_pm_opp_of_cpumask_remove_table
+  dev_pm_opp_of_register_em
+  dev_pm_opp_of_remove_table
+  dev_pm_opp_put
+  dev_pm_opp_put_opp_table
+  dev_pm_opp_put_regulators
+  dev_pm_opp_set_regulators
+  dev_pm_set_wake_irq
+  _dev_printk
+  dev_queue_xmit
+  devres_add
+  __devres_alloc_node
+  devres_free
+  dev_set_name
+  _dev_warn
+  d_find_alias
+  d_instantiate
+  disable_irq
+  disable_irq_nosync
+  discard_new_inode
+  disk_end_io_acct
+  disk_start_io_acct
+  divider_get_val
+  divider_recalc_rate
+  divider_ro_round_rate_parent
+  divider_round_rate_parent
+  dma_alloc_attrs
+  dma_buf_attach
+  dma_buf_begin_cpu_access
+  dma_buf_detach
+  dma_buf_end_cpu_access
+  dma_buf_export
+  dma_buf_fd
+  dma_buf_get
+  dma_buf_map_attachment
+  dma_buf_mmap
+  dmabuf_page_pool_alloc
+  dmabuf_page_pool_create
+  dmabuf_page_pool_destroy
+  dmabuf_page_pool_free
+  dma_buf_put
+  dma_buf_unmap_attachment
+  dma_buf_vmap
+  dma_buf_vunmap
+  dma_contiguous_default_area
+  dma_fence_add_callback
+  dma_fence_context_alloc
+  dma_fence_default_wait
+  dma_fence_free
+  dma_fence_get_status
+  dma_fence_get_stub
+  dma_fence_init
+  dma_fence_release
+  dma_fence_remove_callback
+  dma_fence_signal
+  dma_fence_signal_locked
+  dma_fence_wait_timeout
+  dma_free_attrs
+  dma_heap_add
+  dma_heap_buffer_alloc
+  dma_heap_buffer_free
+  dma_heap_find
+  dma_heap_get_dev
+  dma_heap_get_drvdata
+  dma_heap_get_name
+  d_make_root
+  dmam_alloc_attrs
+  dma_map_page_attrs
+  dma_map_sg_attrs
+  dma_map_sgtable
+  dmam_free_coherent
+  dma_resv_add_excl_fence
+  dma_set_coherent_mask
+  dma_set_mask
+  dma_sync_sg_for_cpu
+  dma_sync_sg_for_device
+  dma_sync_single_for_cpu
+  dma_sync_single_for_device
+  dma_unmap_page_attrs
+  dma_unmap_sg_attrs
+  d_obtain_alias
+  do_SAK
+  do_trace_netlink_extack
+  do_traversal_all_lruvec
+  down
+  downgrade_write
+  down_interruptible
+  down_read
+  down_timeout
+  down_trylock
+  down_write
+  down_write_trylock
+  d_path
+  dput
+  dql_completed
+  dql_reset
+  driver_unregister
+  drm_add_modes_noedid
+  drm_atomic_add_affected_connectors
+  drm_atomic_commit
+  drm_atomic_get_connector_state
+  drm_atomic_get_crtc_state
+  drm_atomic_get_new_connector_for_encoder
+  drm_atomic_get_plane_state
+  drm_atomic_get_private_obj_state
+  drm_atomic_helper_async_commit
+  drm_atomic_helper_check
+  drm_atomic_helper_cleanup_planes
+  drm_atomic_helper_commit_cleanup_done
+  drm_atomic_helper_commit_tail
+  drm_atomic_helper_commit_tail_rpm
+  __drm_atomic_helper_connector_destroy_state
+  drm_atomic_helper_connector_destroy_state
+  __drm_atomic_helper_connector_duplicate_state
+  drm_atomic_helper_connector_duplicate_state
+  __drm_atomic_helper_connector_reset
+  drm_atomic_helper_connector_reset
+  __drm_atomic_helper_crtc_destroy_state
+  __drm_atomic_helper_crtc_duplicate_state
+  drm_atomic_helper_disable_plane
+  drm_atomic_helper_page_flip
+  __drm_atomic_helper_plane_destroy_state
+  __drm_atomic_helper_plane_duplicate_state
+  __drm_atomic_helper_plane_reset
+  drm_atomic_helper_prepare_planes
+  __drm_atomic_helper_private_obj_duplicate_state
+  drm_atomic_helper_resume
+  drm_atomic_helper_set_config
+  drm_atomic_helper_setup_commit
+  drm_atomic_helper_suspend
+  drm_atomic_helper_swap_state
+  drm_atomic_helper_update_plane
+  drm_atomic_helper_wait_for_dependencies
+  drm_atomic_helper_wait_for_fences
+  drm_atomic_private_obj_init
+  drm_atomic_set_crtc_for_connector
+  drm_atomic_set_crtc_for_plane
+  drm_atomic_set_fb_for_plane
+  drm_atomic_set_mode_for_crtc
+  drm_atomic_set_mode_prop_for_crtc
+  drm_atomic_state_alloc
+  drm_atomic_state_clear
+  __drm_atomic_state_free
+  drm_compat_ioctl
+  drm_connector_attach_content_protection_property
+  drm_connector_attach_content_type_property
+  drm_connector_attach_encoder
+  drm_connector_attach_max_bpc_property
+  drm_connector_attach_vrr_capable_property
+  drm_connector_cleanup
+  drm_connector_init
+  drm_connector_list_iter_begin
+  drm_connector_list_iter_next
+  drm_connector_set_vrr_capable_property
+  drm_connector_unregister
+  drm_connector_update_edid_property
+  drm_crtc_accurate_vblank_count
+  drm_crtc_add_crc_entry
+  drm_crtc_arm_vblank_event
+  drm_crtc_cleanup
+  __drm_crtc_commit_free
+  drm_crtc_enable_color_mgmt
+  drm_crtc_from_index
+  drm_crtc_handle_vblank
+  drm_crtc_init_with_planes
+  drm_crtc_send_vblank_event
+  drm_crtc_vblank_get
+  drm_crtc_vblank_helper_get_vblank_timestamp
+  drm_crtc_vblank_off
+  drm_crtc_vblank_on
+  __drm_dbg
+  drm_debugfs_create_files
+  drm_dev_alloc
+  drm_dev_put
+  drm_dev_register
+  drm_dev_unregister
+  drm_encoder_cleanup
+  drm_encoder_init
+  __drm_err
+  drm_format_info
+  drm_framebuffer_cleanup
+  drm_framebuffer_init
+  drm_framebuffer_lookup
+  drm_gem_cma_vm_ops
+  drm_gem_create_mmap_offset
+  drm_gem_free_mmap_offset
+  drm_gem_handle_create
+  drm_gem_handle_delete
+  drm_gem_mmap
+  drm_gem_object_free
+  drm_gem_object_init
+  drm_gem_object_lookup
+  drm_gem_object_release
+  drm_gem_prime_export
+  drm_gem_prime_fd_to_handle
+  drm_gem_prime_handle_to_fd
+  drm_gem_prime_import
+  drm_gem_prime_mmap
+  drm_gem_vm_close
+  drm_hdcp_update_content_protection
+  drm_helper_hpd_irq_event
+  drm_helper_mode_fill_fb_struct
+  drm_helper_probe_single_connector_modes
+  drm_ioctl
+  drm_kms_helper_hotplug_event
+  drm_kms_helper_poll_disable
+  drm_kms_helper_poll_enable
+  drm_kms_helper_poll_fini
+  drm_kms_helper_poll_init
+  drmm_mode_config_init
+  drm_mode_config_cleanup
+  drm_mode_config_reset
+  drm_mode_create
+  drm_mode_crtc_set_gamma_size
+  drm_mode_debug_printmodeline
+  drm_mode_duplicate
+  drm_mode_get_hv_timing
+  drm_mode_object_find
+  drm_mode_object_put
+  drm_mode_probed_add
+  drm_modeset_acquire_fini
+  drm_modeset_acquire_init
+  drm_modeset_backoff
+  drm_mode_set_crtcinfo
+  drm_modeset_drop_locks
+  drm_modeset_lock
+  drm_modeset_lock_all
+  drm_modeset_unlock
+  drm_modeset_unlock_all
+  drm_mode_vrefresh
+  drm_object_attach_property
+  drm_open
+  drm_plane_cleanup
+  drm_plane_create_alpha_property
+  drm_plane_create_blend_mode_property
+  drm_plane_create_rotation_property
+  drm_plane_create_zpos_property
+  drm_poll
+  drm_prime_gem_destroy
+  drm_printf
+  drm_property_add_enum
+  drm_property_blob_get
+  drm_property_blob_put
+  drm_property_create
+  drm_property_create_bool
+  drm_property_create_enum
+  drm_property_create_range
+  drm_property_destroy
+  drm_property_lookup_blob
+  drm_property_replace_blob
+  drm_read
+  drm_release
+  drm_self_refresh_helper_update_avg_times
+  drm_universal_plane_init
+  drm_vblank_init
+  drm_writeback_connector_init
+  drm_writeback_queue_job
+  drm_writeback_signal_completion
+  drop_nlink
+  d_splice_alias
+  dump_stack
+  dw_pcie_find_capability
+  dw_pcie_host_deinit
+  dw_pcie_host_init
+  dw_pcie_own_conf_map_bus
+  dw_pcie_read_dbi
+  dw_pcie_setup_rc
+  dw_pcie_wait_for_link
+  dw_pcie_write_dbi
+  enable_irq
+  end_buffer_read_sync
+  ether_setup
+  eth_header
+  eth_header_parse
+  eth_mac_addr
+  ethtool_convert_legacy_u32_to_link_mode
+  ethtool_convert_link_mode_to_legacy_u32
+  ethtool_op_get_link
+  ethtool_op_get_ts_info
+  eth_type_trans
+  eth_validate_addr
+  event_triggers_call
+  extcon_dev_register
+  extcon_set_state
+  extcon_set_state_sync
+  fasync_helper
+  fault_in_iov_iter_readable
+  __fdget
+  fd_install
+  fget
+  fiemap_fill_next_extent
+  fiemap_prep
+  filemap_fdatawait_range
+  filemap_fdatawrite
+  filemap_fdatawrite_range
+  filemap_flush
+  filemap_write_and_wait_range
+  file_remove_privs
+  file_update_time
+  _find_first_bit
+  _find_first_zero_bit
+  find_get_pid
+  _find_last_bit
+  _find_next_bit
+  __find_vma
+  find_vm_area
+  find_vpid
+  finish_wait
+  flow_block_cb_setup_simple
+  flow_rule_match_basic
+  flow_rule_match_ipv4_addrs
+  flow_rule_match_ports
+  flow_rule_match_vlan
+  flush_dcache_page
+  flush_delayed_work
+  flush_signals
+  flush_work
+  flush_workqueue
+  fpsimd_context_busy
+  fput
+  free_irq
+  free_netdev
+  __free_pages
+  free_pages
+  free_pages_exact
+  free_percpu
+  freezing_slow_path
+  fs_bio_set
+  fs_param_is_string
+  fs_param_is_u32
+  __fs_parse
+  fsync_bdev
+  fwnode_device_is_available
+  fwnode_get_name
+  fwnode_graph_get_next_endpoint
+  fwnode_graph_get_port_parent
+  fwnode_graph_get_remote_endpoint
+  fwnode_graph_get_remote_port_parent
+  fwnode_graph_parse_endpoint
+  fwnode_handle_get
+  fwnode_handle_put
+  fwnode_property_get_reference_args
+  fwnode_property_present
+  fwnode_property_read_string
+  fwnode_property_read_u32_array
+  fwnode_property_read_u64_array
+  gcd
+  generic_block_bmap
+  generic_fh_to_dentry
+  generic_fh_to_parent
+  generic_file_fsync
+  generic_file_llseek
+  generic_file_mmap
+  generic_file_open
+  generic_file_read_iter
+  generic_file_splice_read
+  __generic_file_write_iter
+  generic_fillattr
+  generic_handle_irq
+  generic_permission
+  generic_read_dir
+  generic_write_checks
+  generic_write_end
+  genlmsg_multicast_allns
+  genlmsg_put
+  genl_register_family
+  genl_unregister_family
+  genphy_aneg_done
+  genphy_read_status
+  genphy_restart_aneg
+  genphy_resume
+  genphy_soft_reset
+  genphy_suspend
+  genphy_update_link
+  gen_pool_add_owner
+  gen_pool_alloc_algo_owner
+  gen_pool_avail
+  gen_pool_best_fit
+  gen_pool_create
+  gen_pool_destroy
+  gen_pool_first_fit_align
+  gen_pool_first_fit_order_align
+  gen_pool_free_owner
+  gen_pool_has_addr
+  gen_pool_set_algo
+  gen_pool_size
+  gen_pool_virt_to_phys
+  __getblk_gfp
+  get_cpu_device
+  get_cpu_idle_time_us
+  get_cpu_iowait_time_us
+  get_device
+  get_device_system_crosststamp
+  __get_free_pages
+  get_kernel_pages
+  get_net_ns_by_fd
+  get_net_ns_by_pid
+  get_pfnblock_flags_mask
+  get_random_bytes
+  get_random_u32
+  get_random_u64
+  get_tree_bdev
+  get_unused_fd_flags
+  get_user_pages
+  get_user_pages_fast
+  get_zeroed_page
+  gic_nonsecure_priorities
+  gpiochip_add_data_with_key
+  gpiochip_generic_config
+  gpiochip_generic_free
+  gpiochip_generic_request
+  gpiochip_get_data
+  gpiod_count
+  gpiod_direction_input
+  gpiod_direction_output
+  gpiod_direction_output_raw
+  gpiod_get
+  gpiod_get_index
+  gpiod_get_optional
+  gpiod_get_raw_value
+  gpiod_get_raw_value_cansleep
+  gpiod_get_value
+  gpiod_get_value_cansleep
+  gpiod_put
+  gpiod_set_consumer_name
+  gpiod_set_raw_value
+  gpiod_set_raw_value_cansleep
+  gpiod_set_value
+  gpiod_set_value_cansleep
+  gpiod_to_irq
+  gpio_free
+  gpio_request
+  gpio_to_desc
+  grab_cache_page_write_begin
+  handle_fasteoi_irq
+  handle_simple_irq
+  handle_sysrq
+  hdmi_audio_infoframe_init
+  hdmi_audio_infoframe_pack
+  hdmi_avi_infoframe_init
+  hdmi_avi_infoframe_pack
+  hdmi_drm_infoframe_init
+  hdmi_drm_infoframe_pack
+  hdmi_infoframe_unpack
+  hdmi_spd_infoframe_pack
+  hdmi_vendor_infoframe_init
+  hdmi_vendor_infoframe_pack
+  hex2bin
+  hex_asc
+  hex_dump_to_buffer
+  high_memory
+  hrtimer_active
+  hrtimer_cancel
+  hrtimer_forward
+  hrtimer_init
+  hrtimer_start_range_ns
+  __hw_addr_init
+  __hw_addr_sync
+  __hw_addr_unsync
+  hwspin_lock_register
+  hwspin_lock_unregister
+  i2c_adapter_type
+  i2c_add_adapter
+  i2c_bus_type
+  i2c_del_adapter
+  i2c_del_driver
+  i2c_for_each_dev
+  i2c_get_adapter
+  i2c_new_client_device
+  i2c_parse_fw_timings
+  i2c_put_adapter
+  i2c_register_driver
+  i2c_smbus_read_byte_data
+  i2c_smbus_write_byte_data
+  i2c_smbus_xfer
+  i2c_transfer
+  i2c_transfer_buffer_flags
+  i2c_unregister_device
+  i2c_verify_client
+  I_BDEV
+  ida_alloc_range
+  ida_free
+  idr_alloc
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_get_next
+  idr_remove
+  idr_replace
+  iget5_locked
+  iget_failed
+  ihold
+  iio_buffer_init
+  iio_buffer_put
+  iio_device_attach_buffer
+  __iio_device_register
+  iio_device_unregister
+  iio_get_time_ns
+  iio_push_to_buffers
+  iio_read_channel_processed
+  ilookup
+  inc_nlink
+  inc_zone_page_state
+  in_egroup_p
+  inet_csk_get_port
+  init_net
+  init_pseudo
+  __init_rwsem
+  init_special_inode
+  __init_swait_queue_head
+  init_task
+  init_timer_key
+  init_uts_ns
+  init_wait_entry
+  __init_waitqueue_head
+  inode_dio_wait
+  inode_get_bytes
+  inode_init_once
+  inode_init_owner
+  inode_needs_sync
+  inode_newsize_ok
+  inode_nohighmem
+  inode_set_bytes
+  input_allocate_device
+  input_event
+  input_free_device
+  input_register_device
+  input_set_capability
+  input_unregister_device
+  insert_inode_locked
+  invalidate_bdev
+  invalidate_inode_buffers
+  iomem_resource
+  iommu_device_register
+  iommu_device_sysfs_add
+  iommu_device_sysfs_remove
+  iommu_device_unregister
+  __ioremap
+  ioremap_cache
+  iounmap
+  iov_iter_init
+  iov_iter_revert
+  iov_iter_zero
+  iput
+  __ipv6_addr_type
+  irq_chip_eoi_parent
+  irq_chip_mask_parent
+  irq_chip_retrigger_hierarchy
+  irq_chip_set_affinity_parent
+  irq_chip_set_type_parent
+  irq_chip_unmask_parent
+  irq_create_fwspec_mapping
+  irq_dispose_mapping
+  __irq_domain_add
+  irq_domain_alloc_irqs_parent
+  irq_domain_create_hierarchy
+  irq_domain_free_irqs_parent
+  irq_domain_get_irq_data
+  irq_domain_remove
+  irq_domain_set_hwirq_and_chip
+  irq_domain_set_info
+  irq_find_matching_fwspec
+  irq_of_parse_and_map
+  __irq_resolve_mapping
+  irq_set_affinity_hint
+  irq_set_chained_handler_and_data
+  __irq_set_handler
+  irq_set_handler_data
+  irq_set_irq_wake
+  irq_stat
+  irq_to_desc
+  is_bad_inode
+  is_vmalloc_addr
+  iter_file_splice_write
+  iwe_stream_add_event
+  iwe_stream_add_point
+  iwe_stream_add_value
+  jiffies_64
+  jiffies
+  jiffies_to_msecs
+  jiffies_to_usecs
+  kasan_flag_enabled
+  kasprintf
+  kernel_cpustat
+  kernel_kobj
+  kernel_neon_begin
+  kernel_neon_end
+  kernel_param_lock
+  kernel_param_unlock
+  kernel_restart
+  kernel_sigaction
+  kern_mount
+  kern_unmount
+  key_create_or_update
+  key_put
+  keyring_alloc
+  __kfifo_alloc
+  __kfifo_free
+  __kfifo_from_user
+  __kfifo_in
+  __kfifo_init
+  __kfifo_in_r
+  __kfifo_out
+  __kfifo_out_peek
+  __kfifo_out_r
+  __kfifo_to_user
+  kfree
+  kfree_link
+  kfree_sensitive
+  kfree_skb
+  kfree_skb_list
+  kfree_skb_reason
+  kill_anon_super
+  kill_block_super
+  kill_fasync
+  kill_pid
+  kimage_voffset
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order_trace
+  kmem_cache_alloc
+  kmem_cache_alloc_trace
+  kmem_cache_create
+  kmem_cache_destroy
+  kmem_cache_free
+  kmemdup
+  kobject_create_and_add
+  kobject_init_and_add
+  kobject_put
+  kobject_uevent
+  kobject_uevent_env
+  krealloc
+  kstrdup
+  kstrdup_const
+  kstrtobool
+  kstrtobool_from_user
+  kstrtoint
+  kstrtoll
+  kstrtos8
+  kstrtou16
+  kstrtou8
+  kstrtou8_from_user
+  kstrtouint
+  kstrtouint_from_user
+  kstrtoull
+  kthread_bind
+  kthread_create_on_node
+  __kthread_init_worker
+  kthread_queue_work
+  kthread_should_stop
+  kthread_stop
+  kthread_worker_fn
+  ktime_get
+  ktime_get_coarse_with_offset
+  ktime_get_mono_fast_ns
+  ktime_get_raw
+  ktime_get_raw_ts64
+  ktime_get_real_seconds
+  ktime_get_real_ts64
+  ktime_get_seconds
+  ktime_get_ts64
+  ktime_get_with_offset
+  kvfree
+  kvfree_call_rcu
+  kvmalloc_node
+  led_classdev_register_ext
+  led_classdev_unregister
+  led_trigger_blink_oneshot
+  led_trigger_event
+  led_trigger_register
+  led_trigger_register_simple
+  led_trigger_unregister
+  led_trigger_unregister_simple
+  __list_add_valid
+  __list_del_entry_valid
+  ll_rw_block
+  load_nls
+  load_nls_default
+  __local_bh_enable_ip
+  __lock_buffer
+  __lock_page
+  lockref_get
+  logfc
+  loops_per_jiffy
+  mac_pton
+  make_bad_inode
+  mangle_path
+  mark_buffer_dirty
+  __mark_inode_dirty
+  mbox_chan_received_data
+  mbox_chan_txdone
+  mbox_controller_register
+  mbox_controller_unregister
+  mbox_free_channel
+  mbox_request_channel
+  mbox_request_channel_byname
+  mbox_send_message
+  mdiobus_alloc_size
+  mdiobus_free
+  mdiobus_get_phy
+  mdiobus_read
+  mdiobus_unregister
+  mdiobus_write
+  mdio_device_create
+  mdio_device_free
+  media_create_pad_link
+  media_entity_remote_pad
+  media_pipeline_start
+  media_pipeline_stop
+  memchr
+  memcmp
+  memcpy
+  __memcpy_fromio
+  __memcpy_toio
+  memdup_user
+  memmove
+  memory_cgrp_subsys_enabled_key
+  memparse
+  memremap
+  mem_section
+  memset64
+  memset
+  __memset_io
+  memstart_addr
+  memunmap
+  migrate_pages
+  misc_deregister
+  misc_register
+  __mmap_lock_do_trace_acquire_returned
+  __mmap_lock_do_trace_released
+  __mmap_lock_do_trace_start_locking
+  mmc_add_host
+  mmc_alloc_host
+  mmc_card_is_blockaddr
+  __mmc_claim_host
+  mmc_cmdq_disable
+  mmc_cmdq_enable
+  mmc_cqe_request_done
+  mmc_detect_change
+  mmc_free_host
+  mmc_gpio_get_cd
+  mmc_of_parse
+  mmc_regulator_get_supply
+  mmc_regulator_set_ocr
+  mmc_regulator_set_vqmmc
+  mmc_release_host
+  mmc_remove_host
+  mmc_request_done
+  mmc_send_tuning
+  mmc_set_data_timeout
+  mmc_switch
+  mmc_sw_reset
+  mmc_wait_for_cmd
+  mmc_wait_for_req
+  __mmdrop
+  mod_delayed_work_on
+  mod_node_page_state
+  mod_timer
+  module_layout
+  module_put
+  mpage_readahead
+  mpage_readpage
+  mpage_writepages
+  __msecs_to_jiffies
+  msleep
+  msleep_interruptible
+  __mutex_init
+  mutex_is_locked
+  mutex_lock
+  mutex_lock_interruptible
+  mutex_trylock
+  mutex_unlock
+  names_cachep
+  __napi_alloc_skb
+  napi_complete_done
+  napi_disable
+  napi_enable
+  napi_gro_receive
+  __napi_schedule
+  napi_schedule_prep
+  netdev_alert
+  __netdev_alloc_skb
+  netdev_err
+  netdev_info
+  netdev_pick_tx
+  netdev_printk
+  netdev_rss_key_fill
+  netdev_set_default_ethtool_ops
+  netdev_update_features
+  netdev_warn
+  netif_carrier_off
+  netif_carrier_on
+  netif_device_attach
+  netif_device_detach
+  netif_napi_add
+  __netif_napi_del
+  netif_receive_skb
+  netif_receive_skb_list
+  netif_rx
+  netif_rx_ni
+  netif_schedule_queue
+  netif_set_real_num_rx_queues
+  netif_set_real_num_tx_queues
+  netif_set_xps_queue
+  netif_tx_stop_all_queues
+  netif_tx_wake_queue
+  netlink_broadcast
+  __netlink_kernel_create
+  netlink_kernel_release
+  netlink_register_notifier
+  netlink_unicast
+  netlink_unregister_notifier
+  net_ns_type_operations
+  net_ratelimit
+  new_inode
+  next_arg
+  nla_append
+  nla_find
+  nla_memcpy
+  __nla_parse
+  nla_put_64bit
+  nla_put
+  nla_put_nohdr
+  nla_reserve
+  nla_strscpy
+  __nla_validate
+  __nlmsg_put
+  no_llseek
+  nonseekable_open
+  noop_backing_dev_info
+  noop_llseek
+  nr_cpu_ids
+  ns_capable
+  ns_to_timespec64
+  __num_online_cpus
+  nvmem_cell_read
+  of_address_to_resource
+  of_alias_get_id
+  of_clk_add_provider
+  of_clk_get
+  of_clk_get_by_name
+  of_clk_hw_onecell_get
+  of_clk_set_defaults
+  of_clk_src_onecell_get
+  of_device_get_match_data
+  of_device_is_available
+  of_device_is_compatible
+  of_dma_configure_id
+  of_dma_is_coherent
+  of_find_compatible_node
+  of_find_device_by_node
+  of_find_i2c_adapter_by_node
+  of_find_node_by_name
+  of_find_node_by_phandle
+  of_find_node_by_type
+  of_find_node_opts_by_path
+  of_find_property
+  of_fwnode_ops
+  of_genpd_add_provider_onecell
+  of_get_child_by_name
+  of_get_compatible_child
+  of_get_i2c_adapter_by_node
+  of_get_mac_address
+  of_get_named_gpio_flags
+  of_get_next_available_child
+  of_get_next_child
+  of_get_parent
+  of_get_phy_mode
+  of_get_property
+  of_get_regulator_init_data
+  of_graph_get_remote_port_parent
+  of_iomap
+  of_irq_find_parent
+  of_irq_get
+  of_irq_get_byname
+  of_irq_parse_one
+  of_machine_is_compatible
+  of_match_device
+  of_match_node
+  of_mdiobus_register
+  of_mdio_find_bus
+  of_parse_phandle
+  of_parse_phandle_with_args
+  of_phy_is_fixed_link
+  of_platform_depopulate
+  of_platform_populate
+  of_property_count_elems_of_size
+  of_property_match_string
+  of_property_read_string
+  of_property_read_string_helper
+  of_property_read_u32_index
+  of_property_read_u64
+  of_property_read_variable_u16_array
+  of_property_read_variable_u32_array
+  of_property_read_variable_u8_array
+  of_prop_next_u32
+  of_pwm_xlate_with_flags
+  of_reserved_mem_device_init_by_idx
+  of_reserved_mem_device_release
+  of_reserved_mem_lookup
+  of_reset_control_array_get
+  __of_reset_control_get
+  of_thermal_get_ntrips
+  of_thermal_is_trip_valid
+  oops_in_progress
+  overflowgid
+  overflowuid
+  pagecache_get_page
+  pagecache_write_begin
+  pagecache_write_end
+  page_endio
+  __page_mapcount
+  page_mapping
+  __page_pinner_failure_detect
+  __page_pinner_put_page
+  page_pool_alloc_pages
+  page_pool_create
+  page_pool_destroy
+  page_pool_put_page
+  page_pool_release_page
+  panic
+  panic_notifier_list
+  param_array_ops
+  param_get_charp
+  param_get_hexint
+  param_get_int
+  param_get_short
+  param_get_string
+  param_ops_bool
+  param_ops_byte
+  param_ops_charp
+  param_ops_int
+  param_ops_long
+  param_ops_short
+  param_ops_string
+  param_ops_uint
+  param_ops_ullong
+  param_ops_ulong
+  param_ops_ushort
+  param_set_charp
+  param_set_copystring
+  param_set_hexint
+  param_set_int
+  pci_choose_state
+  pci_disable_device
+  pci_enable_device
+  pci_find_next_bus
+  pci_generic_config_read
+  pci_generic_config_write
+  pci_get_device
+  pci_host_probe
+  pci_lock_rescan_remove
+  pci_msi_create_irq_domain
+  pci_msi_enabled
+  pci_msi_mask_irq
+  pci_msi_unmask_irq
+  pci_read_config_dword
+  pci_remove_root_bus
+  pci_rescan_bus
+  pci_set_power_state
+  pci_stop_and_remove_bus_device_locked
+  pci_stop_root_bus
+  pci_unlock_rescan_remove
+  pci_write_config_byte
+  pci_write_config_dword
+  PDE_DATA
+  __per_cpu_offset
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  pfn_is_map_memory
+  phy_attached_info
+  phy_drivers_register
+  phy_drivers_unregister
+  phy_error
+  phy_exit
+  phy_init
+  phy_init_eee
+  phylink_connect_phy
+  phylink_create
+  phylink_destroy
+  phylink_disconnect_phy
+  phylink_ethtool_get_eee
+  phylink_ethtool_get_pauseparam
+  phylink_ethtool_get_wol
+  phylink_ethtool_ksettings_get
+  phylink_ethtool_ksettings_set
+  phylink_ethtool_nway_reset
+  phylink_ethtool_set_eee
+  phylink_ethtool_set_pauseparam
+  phylink_ethtool_set_wol
+  phylink_get_eee_err
+  phylink_mii_ioctl
+  phylink_of_phy_connect
+  phylink_resume
+  phylink_set_pcs
+  phylink_set_port_modes
+  phylink_speed_down
+  phylink_speed_up
+  phylink_start
+  phylink_stop
+  phylink_suspend
+  phy_power_off
+  phy_power_on
+  phy_print_status
+  phy_trigger_machine
+  pid_task
+  pinconf_generic_dt_free_map
+  pinconf_generic_dt_node_to_map
+  pinctrl_dev_get_drvdata
+  pinctrl_lookup_state
+  pinctrl_pm_select_default_state
+  pinctrl_pm_select_sleep_state
+  pinctrl_select_state
+  pinctrl_utils_free_map
+  pin_user_pages
+  pin_user_pages_fast
+  pin_user_pages_remote
+  platform_bus_type
+  platform_device_add
+  platform_device_add_data
+  platform_device_add_resources
+  platform_device_alloc
+  platform_device_del
+  platform_device_put
+  platform_device_register
+  platform_device_register_full
+  platform_device_unregister
+  __platform_driver_probe
+  __platform_driver_register
+  platform_driver_unregister
+  platform_get_irq
+  platform_get_irq_byname
+  platform_get_irq_byname_optional
+  platform_get_resource
+  platform_get_resource_byname
+  pm_genpd_add_subdomain
+  pm_genpd_init
+  pm_genpd_remove
+  pm_power_off
+  __pm_relax
+  pm_relax
+  pm_runtime_allow
+  __pm_runtime_disable
+  pm_runtime_enable
+  pm_runtime_forbid
+  pm_runtime_force_resume
+  pm_runtime_force_suspend
+  __pm_runtime_idle
+  pm_runtime_irq_safe
+  __pm_runtime_resume
+  pm_runtime_set_autosuspend_delay
+  __pm_runtime_set_status
+  __pm_runtime_suspend
+  __pm_runtime_use_autosuspend
+  __pm_stay_awake
+  pm_stay_awake
+  pm_wakeup_dev_event
+  pm_wakeup_ws_event
+  pm_wq
+  posix_acl_chmod
+  prandom_bytes
+  prandom_u32
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait_event
+  print_hex_dump
+  _printk
+  __printk_ratelimit
+  proc_create
+  proc_create_data
+  proc_dointvec
+  proc_get_parent_data
+  proc_mkdir
+  proc_mkdir_data
+  proc_remove
+  __pskb_copy_fclone
+  pskb_expand_head
+  __pskb_pull_tail
+  ___pskb_trim
+  ptp_clock_event
+  ptp_clock_index
+  ptp_clock_register
+  ptp_clock_unregister
+  putback_movable_pages
+  put_device
+  __put_net
+  __put_page
+  put_pid
+  __put_task_struct
+  put_unused_fd
+  pwm_adjust_config
+  pwm_apply_state
+  pwmchip_add
+  pwmchip_remove
+  pwm_get_chip_data
+  pwm_set_chip_data
+  queue_delayed_work_on
+  queue_work_on
+  ___ratelimit
+  raw_notifier_call_chain
+  raw_notifier_chain_register
+  raw_notifier_chain_unregister
+  _raw_read_lock
+  _raw_read_lock_bh
+  _raw_read_unlock
+  _raw_read_unlock_bh
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irq
+  _raw_spin_lock_irqsave
+  _raw_spin_trylock
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irq
+  _raw_spin_unlock_irqrestore
+  _raw_write_lock
+  _raw_write_lock_bh
+  _raw_write_lock_irqsave
+  _raw_write_unlock
+  _raw_write_unlock_bh
+  _raw_write_unlock_irqrestore
+  rb_erase
+  rb_first
+  rb_insert_color
+  rb_last
+  rb_next
+  rb_prev
+  rb_replace_node
+  rcu_barrier
+  __rcu_read_lock
+  __rcu_read_unlock
+  rdev_get_drvdata
+  read_cache_page
+  read_sanitised_ftr_reg
+  rebuild_sched_domains
+  refcount_warn_saturate
+  __refrigerator
+  regcache_cache_only
+  regcache_mark_dirty
+  regcache_sync
+  __register_blkdev
+  __register_chrdev
+  register_chrdev_region
+  register_console
+  register_die_notifier
+  register_filesystem
+  register_inet6addr_notifier
+  register_inetaddr_notifier
+  register_kprobe
+  register_kretprobe
+  register_module_notifier
+  register_netdev
+  register_netdevice
+  register_netdevice_notifier
+  register_oom_notifier
+  register_pernet_device
+  register_pm_notifier
+  register_reboot_notifier
+  register_restart_handler
+  register_shrinker
+  register_syscore_ops
+  register_sysctl_table
+  register_wide_hw_breakpoint
+  regmap_field_read
+  regmap_field_update_bits_base
+  regmap_irq_chip_get_base
+  regmap_multi_reg_write
+  regmap_raw_write
+  regmap_read
+  regmap_update_bits_base
+  regmap_write
+  regulator_bulk_disable
+  regulator_bulk_enable
+  regulator_count_voltages
+  regulator_disable
+  regulator_enable
+  regulator_get_optional
+  regulator_get_voltage
+  regulator_list_voltage
+  regulator_map_voltage_iterate
+  regulator_put
+  regulator_set_voltage
+  relay_close
+  relay_file_operations
+  relay_flush
+  relay_open
+  relay_switch_subbuf
+  release_firmware
+  __release_region
+  release_resource
+  remap_pfn_range
+  remap_vmalloc_range
+  remove_cpu
+  remove_proc_entry
+  remove_wait_queue
+  request_firmware
+  request_firmware_nowait
+  __request_module
+  __request_region
+  request_threaded_irq
+  reset_control_assert
+  reset_control_deassert
+  reset_control_put
+  reset_control_reset
+  return_address
+  rfkill_alloc
+  rfkill_blocked
+  rfkill_destroy
+  rfkill_init_sw_state
+  rfkill_register
+  rfkill_resume_polling
+  rfkill_set_hw_state_reason
+  rfkill_set_sw_state
+  rfkill_unregister
+  rfs_needed
+  rhashtable_free_and_destroy
+  rhashtable_insert_slow
+  rhltable_init
+  __rht_bucket_nested
+  rht_bucket_nested
+  rht_bucket_nested_insert
+  round_jiffies
+  round_jiffies_relative
+  round_jiffies_up
+  rps_cpu_mask
+  rps_sock_flow_table
+  rtc_add_group
+  rtc_time64_to_tm
+  rtc_tm_to_time64
+  rtc_update_irq
+  rtnl_is_locked
+  rtnl_link_register
+  rtnl_link_unregister
+  rtnl_lock
+  rtnl_trylock
+  rtnl_unlock
+  runqueues
+  sb_set_blocksize
+  scatterwalk_map_and_copy
+  sched_clock
+  sched_setattr_nocheck
+  sched_set_fifo_low
+  sched_set_normal
+  sched_setscheduler
+  sched_setscheduler_nocheck
+  sched_show_task
+  schedule
+  schedule_timeout
+  schedule_timeout_interruptible
+  schedule_timeout_killable
+  scnprintf
+  sdio_align_size
+  sdio_claim_host
+  sdio_claim_irq
+  sdio_disable_func
+  sdio_enable_func
+  sdio_f0_readb
+  sdio_f0_writeb
+  sdio_get_host_pm_caps
+  sdio_memcpy_fromio
+  sdio_memcpy_toio
+  sdio_readb
+  sdio_readl
+  sdio_readsb
+  sdio_readw
+  sdio_register_driver
+  sdio_release_host
+  sdio_release_irq
+  sdio_retune_crc_disable
+  sdio_retune_crc_enable
+  sdio_retune_hold_now
+  sdio_retune_release
+  sdio_set_block_size
+  sdio_set_host_pm_flags
+  sdio_unregister_driver
+  sdio_writeb
+  sdio_writel
+  sdio_writesb
+  sdio_writew
+  send_sig
+  seq_lseek
+  seq_open
+  seq_printf
+  seq_putc
+  seq_puts
+  seq_read
+  seq_release
+  seq_write
+  setattr_copy
+  setattr_prepare
+  set_bh_page
+  set_capacity
+  set_capacity_and_notify
+  set_cpus_allowed_ptr
+  set_freezable
+  set_next_entity
+  set_nlink
+  set_normalized_timespec64
+  set_page_dirty
+  __set_page_dirty_buffers
+  set_page_dirty_lock
+  __SetPageMovable
+  set_user_nice
+  sg_alloc_table
+  sg_alloc_table_from_pages_segment
+  sg_copy_from_buffer
+  sg_copy_to_buffer
+  sg_free_table
+  sg_init_one
+  sg_init_table
+  sg_nents
+  sg_next
+  __sg_page_iter_next
+  __sg_page_iter_start
+  show_class_attr_string
+  show_regs
+  simple_attr_open
+  simple_attr_read
+  simple_attr_release
+  simple_attr_write
+  simple_open
+  simple_read_from_buffer
+  simple_strtol
+  simple_strtoul
+  simple_write_to_buffer
+  single_open
+  single_open_size
+  single_release
+  skb_add_rx_frag
+  skb_checksum_help
+  skb_clone
+  skb_clone_sk
+  skb_complete_wifi_ack
+  skb_copy
+  skb_copy_bits
+  skb_copy_datagram_iter
+  skb_copy_expand
+  skb_dequeue
+  skb_ensure_writable
+  __skb_get_hash
+  __skb_gso_segment
+  __skb_pad
+  skb_pull
+  skb_pull_rcsum
+  skb_push
+  skb_put
+  skb_queue_head
+  skb_queue_purge
+  skb_queue_tail
+  skb_realloc_headroom
+  skb_scrub_packet
+  skb_trim
+  skb_tstamp_tx
+  skip_spaces
+  smpboot_register_percpu_thread
+  smp_call_function
+  smp_call_function_single
+  snd_ctl_add
+  snd_ctl_boolean_mono_info
+  snd_ctl_enum_info
+  snd_ctl_new1
+  snd_dma_alloc_pages
+  snd_dma_free_pages
+  snd_pcm_format_width
+  snd_pcm_hw_constraint_integer
+  snd_pcm_kernel_ioctl
+  snd_pcm_lib_default_mmap
+  snd_pcm_lib_free_pages
+  snd_pcm_lib_ioctl
+  snd_pcm_lib_malloc_pages
+  snd_pcm_lib_preallocate_pages
+  snd_pcm_period_elapsed
+  snd_pcm_rate_to_rate_bit
+  snd_pcm_stop
+  snd_pcm_stop_xrun
+  _snd_pcm_stream_lock_irqsave
+  snd_pcm_stream_unlock_irqrestore
+  snd_soc_add_card_controls
+  snd_soc_add_component_controls
+  snd_soc_add_dai_controls
+  snd_soc_bytes_info_ext
+  snd_soc_bytes_tlv_callback
+  snd_soc_card_jack_new
+  snd_soc_component_read
+  snd_soc_component_update_bits
+  snd_soc_component_write
+  snd_soc_daifmt_clock_provider_from_bitmap
+  snd_soc_daifmt_parse_clock_provider_raw
+  snd_soc_daifmt_parse_format
+  snd_soc_dai_set_fmt
+  snd_soc_dai_set_sysclk
+  snd_soc_dai_set_tdm_slot
+  snd_soc_dapm_get_enum_double
+  snd_soc_dapm_put_enum_double
+  snd_soc_get_volsw
+  snd_soc_get_volsw_range
+  snd_soc_info_enum_double
+  snd_soc_info_volsw
+  snd_soc_info_volsw_range
+  snd_soc_jack_free_gpios
+  snd_soc_jack_report
+  snd_soc_of_get_dai_link_codecs
+  snd_soc_of_get_dai_name
+  snd_soc_of_get_slot_mask
+  snd_soc_of_parse_audio_routing
+  snd_soc_of_parse_audio_simple_widgets
+  snd_soc_of_parse_card_name
+  snd_soc_of_parse_tdm_slot
+  snd_soc_pm_ops
+  snd_soc_put_volsw
+  snd_soc_put_volsw_range
+  snd_soc_register_component
+  snd_soc_set_runtime_hwparams
+  snd_soc_unregister_component
+  snprintf
+  __sock_create
+  sock_release
+  sock_wfree
+  sort
+  __spi_alloc_controller
+  spi_alloc_device
+  spi_busnum_to_master
+  spi_controller_resume
+  spi_controller_suspend
+  spi_finalize_current_message
+  spi_finalize_current_transfer
+  spi_mem_adjust_op_size
+  spi_mem_default_supports_op
+  spi_mem_supports_op
+  spi_new_device
+  __spi_register_driver
+  spi_setup
+  spi_sync
+  split_page
+  sprintf
+  sprint_symbol
+  sscanf
+  __stack_chk_fail
+  stack_trace_print
+  stack_trace_save
+  static_key_disable
+  static_key_enable
+  static_key_slow_dec
+  static_key_slow_inc
+  stpcpy
+  strcasecmp
+  strcat
+  strchr
+  strchrnul
+  strcmp
+  strcpy
+  strcspn
+  stream_open
+  strim
+  strlcpy
+  strlen
+  strncasecmp
+  strncat
+  strnchr
+  strncmp
+  strncpy
+  strncpy_from_user
+  strnlen
+  strnstr
+  strpbrk
+  strrchr
+  strscpy
+  strsep
+  strspn
+  strstr
+  submit_bh
+  submit_bio
+  submit_bio_wait
+  __sw_hweight16
+  __sw_hweight32
+  __sw_hweight64
+  __sw_hweight8
+  __symbol_get
+  __symbol_put
+  symbol_put_addr
+  sync_blockdev
+  sync_dirty_buffer
+  sync_file_create
+  sync_file_get_fence
+  sync_filesystem
+  synchronize_irq
+  synchronize_net
+  synchronize_rcu
+  sync_inode_metadata
+  sync_mapping_buffers
+  syscon_node_to_regmap
+  syscon_regmap_lookup_by_phandle
+  sysctl_sched_latency
+  sysfs_create_file_ns
+  sysfs_create_group
+  sysfs_create_link
+  sysfs_emit
+  __sysfs_match_string
+  sysfs_remove_bin_file
+  sysfs_remove_file_ns
+  sysfs_remove_group
+  sysfs_remove_link
+  sysfs_streq
+  sysrq_mask
+  system_freezable_wq
+  system_freezing_cnt
+  system_highpri_wq
+  system_power_efficient_wq
+  system_unbound_wq
+  system_wq
+  sys_tz
+  __tasklet_hi_schedule
+  tasklet_init
+  tasklet_kill
+  __tasklet_schedule
+  tasklet_setup
+  tasklet_unlock_wait
+  task_may_not_preempt
+  thermal_cooling_device_unregister
+  thermal_of_cooling_device_register
+  thermal_zone_device_unregister
+  thermal_zone_device_update
+  thermal_zone_get_zone_by_name
+  thermal_zone_of_sensor_unregister
+  time64_to_tm
+  timespec64_to_jiffies
+  _totalram_pages
+  trace_clock_local
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_handle_return
+  __traceiter_android_rvh_arm64_serror_panic
+  __traceiter_android_rvh_check_preempt_tick
+  __traceiter_android_rvh_check_preempt_wakeup
+  __traceiter_android_rvh_do_sea
+  __traceiter_android_rvh_enqueue_task
+  __traceiter_android_rvh_gic_v3_set_affinity
+  __traceiter_android_rvh_iommu_setup_dma_ops
+  __traceiter_android_rvh_panic_unhandled
+  __traceiter_android_rvh_place_entity
+  __traceiter_android_rvh_replace_next_task_fair
+  __traceiter_android_rvh_schedule
+  __traceiter_android_rvh_select_task_rq_rt
+  __traceiter_android_rvh_tick_entry
+  __traceiter_android_vh_cma_drain_all_pages_bypass
+  __traceiter_android_vh_cpu_idle_enter
+  __traceiter_android_vh_cpu_idle_exit
+  __traceiter_android_vh_do_traversal_lruvec
+  __traceiter_android_vh_dump_throttled_rt_tasks
+  __traceiter_android_vh_ftrace_format_check
+  __traceiter_android_vh_iommu_iovad_free_iova
+  __traceiter_android_vh_mem_cgroup_alloc
+  __traceiter_android_vh_mmc_sd_update_cmdline_timing
+  __traceiter_android_vh_mmc_sd_update_dataline_timing
+  __traceiter_android_vh_rmqueue
+  __traceiter_android_vh_sched_show_task
+  __traceiter_gpu_mem_total
+  __traceiter_irq_handler_entry
+  __traceiter_irq_handler_exit
+  __traceiter_mmap_lock_acquire_returned
+  __traceiter_mmap_lock_released
+  __traceiter_mmap_lock_start_locking
+  __traceiter_sched_switch
+  __traceiter_xdp_exception
+  trace_output_call
+  __tracepoint_android_rvh_arm64_serror_panic
+  __tracepoint_android_rvh_check_preempt_tick
+  __tracepoint_android_rvh_check_preempt_wakeup
+  __tracepoint_android_rvh_do_sea
+  __tracepoint_android_rvh_enqueue_task
+  __tracepoint_android_rvh_gic_v3_set_affinity
+  __tracepoint_android_rvh_iommu_setup_dma_ops
+  __tracepoint_android_rvh_panic_unhandled
+  __tracepoint_android_rvh_place_entity
+  __tracepoint_android_rvh_replace_next_task_fair
+  __tracepoint_android_rvh_schedule
+  __tracepoint_android_rvh_select_task_rq_rt
+  __tracepoint_android_rvh_tick_entry
+  __tracepoint_android_vh_cma_drain_all_pages_bypass
+  __tracepoint_android_vh_cpu_idle_enter
+  __tracepoint_android_vh_cpu_idle_exit
+  __tracepoint_android_vh_do_traversal_lruvec
+  __tracepoint_android_vh_dump_throttled_rt_tasks
+  __tracepoint_android_vh_ftrace_format_check
+  __tracepoint_android_vh_iommu_iovad_free_iova
+  __tracepoint_android_vh_mem_cgroup_alloc
+  __tracepoint_android_vh_mmc_sd_update_cmdline_timing
+  __tracepoint_android_vh_mmc_sd_update_dataline_timing
+  __tracepoint_android_vh_rmqueue
+  __tracepoint_android_vh_sched_show_task
+  __tracepoint_gpu_mem_total
+  __tracepoint_irq_handler_entry
+  __tracepoint_irq_handler_exit
+  __tracepoint_mmap_lock_acquire_returned
+  __tracepoint_mmap_lock_released
+  __tracepoint_mmap_lock_start_locking
+  tracepoint_probe_register
+  tracepoint_probe_unregister
+  __tracepoint_sched_switch
+  __tracepoint_xdp_exception
+  trace_print_array_seq
+  trace_print_flags_seq
+  trace_print_symbols_seq
+  __trace_puts
+  trace_raw_output_prep
+  truncate_inode_pages_final
+  truncate_pagecache
+  truncate_setsize
+  try_module_get
+  try_wait_for_completion
+  tty_flip_buffer_push
+  uart_add_one_port
+  uart_console_device
+  uart_console_write
+  uart_get_baud_rate
+  uart_insert_char
+  uart_parse_options
+  uart_register_driver
+  uart_remove_one_port
+  uart_resume_port
+  uart_set_options
+  uart_suspend_port
+  uart_try_toggle_sysrq
+  uart_unregister_driver
+  uart_update_timeout
+  uart_write_wakeup
+  __ubsan_handle_cfi_check_fail_abort
+  __udelay
+  __uio_register_device
+  uio_unregister_device
+  unload_nls
+  unlock_buffer
+  unlock_new_inode
+  unlock_page
+  unmap_mapping_range
+  unpin_user_page
+  unpin_user_pages
+  unregister_blkdev
+  __unregister_chrdev
+  unregister_chrdev_region
+  unregister_filesystem
+  unregister_inet6addr_notifier
+  unregister_inetaddr_notifier
+  unregister_kprobe
+  unregister_kretprobe
+  unregister_module_notifier
+  unregister_netdev
+  unregister_netdevice_many
+  unregister_netdevice_notifier
+  unregister_netdevice_queue
+  unregister_oom_notifier
+  unregister_pernet_device
+  unregister_pm_notifier
+  unregister_reboot_notifier
+  unregister_shrinker
+  unregister_sysctl_table
+  unregister_wide_hw_breakpoint
+  up
+  update_rq_clock
+  up_read
+  up_write
+  usb_add_gadget_udc
+  usb_add_hcd
+  usb_add_phy_dev
+  usb_alloc_urb
+  usb_anchor_urb
+  usb_autopm_get_interface
+  usb_autopm_put_interface
+  usb_control_msg
+  usb_create_hcd
+  usb_del_gadget_udc
+  usb_deregister
+  usb_disable_autosuspend
+  usb_driver_claim_interface
+  usb_driver_release_interface
+  usb_ep_set_maxpacket_limit
+  usb_free_urb
+  usb_gadget_probe_driver
+  usb_gadget_unregister_driver
+  usb_get_from_anchor
+  usb_hcd_check_unlink_urb
+  usb_hcd_giveback_urb
+  usb_hcd_resume_root_hub
+  usb_ifnum_to_if
+  usb_interrupt_msg
+  usb_kill_anchored_urbs
+  usb_put_hcd
+  usb_register_driver
+  usb_remove_hcd
+  usb_scuttle_anchored_urbs
+  usb_set_interface
+  usb_submit_urb
+  usb_unanchor_urb
+  __usecs_to_jiffies
+  usleep_range_state
+  utf16s_to_utf8s
+  utf8_to_utf32
+  uuid_null
+  v4l2_ctrl_add_handler
+  v4l2_ctrl_find
+  v4l2_ctrl_handler_free
+  v4l2_ctrl_handler_init_class
+  v4l2_ctrl_handler_setup
+  v4l2_ctrl_new_custom
+  v4l2_ctrl_new_int_menu
+  v4l2_ctrl_new_std
+  __v4l2_ctrl_s_ctrl
+  __v4l2_ctrl_s_ctrl_int64
+  v4l2_ctrl_subscribe_event
+  v4l2_device_register
+  v4l2_device_register_subdev
+  v4l2_device_unregister
+  v4l2_device_unregister_subdev
+  v4l2_event_queue_fh
+  v4l2_event_subdev_unsubscribe
+  v4l2_event_subscribe
+  v4l2_event_unsubscribe
+  v4l2_fh_add
+  v4l2_fh_del
+  v4l2_fh_exit
+  v4l2_fh_init
+  v4l2_fh_open
+  __v4l2_find_nearest_size
+  v4l2_i2c_subdev_init
+  v4l2_m2m_buf_queue
+  v4l2_m2m_buf_remove
+  v4l2_m2m_ctx_init
+  v4l2_m2m_ctx_release
+  v4l2_m2m_dqbuf
+  v4l2_m2m_fop_mmap
+  v4l2_m2m_fop_poll
+  v4l2_m2m_get_vq
+  v4l2_m2m_init
+  v4l2_m2m_ioctl_create_bufs
+  v4l2_m2m_ioctl_expbuf
+  v4l2_m2m_ioctl_querybuf
+  v4l2_m2m_ioctl_reqbufs
+  v4l2_m2m_ioctl_streamoff
+  v4l2_m2m_ioctl_streamon
+  v4l2_m2m_job_finish
+  v4l2_m2m_next_buf
+  v4l2_m2m_qbuf
+  v4l2_m2m_release
+  v4l2_m2m_try_schedule
+  v4l2_src_change_event_subscribe
+  v4l2_subdev_link_validate
+  v4l_bound_align_image
+  vabits_actual
+  vb2_buffer_done
+  vb2_dma_contig_memops
+  vb2_dma_sg_memops
+  vb2_fop_mmap
+  vb2_fop_poll
+  vb2_fop_read
+  vb2_fop_release
+  vb2_ioctl_create_bufs
+  vb2_ioctl_dqbuf
+  vb2_ioctl_expbuf
+  vb2_ioctl_prepare_buf
+  vb2_ioctl_qbuf
+  vb2_ioctl_querybuf
+  vb2_ioctl_reqbufs
+  vb2_ioctl_streamoff
+  vb2_ioctl_streamon
+  vb2_ops_wait_finish
+  vb2_ops_wait_prepare
+  vb2_plane_cookie
+  vb2_plane_vaddr
+  vb2_queue_init
+  vb2_queue_release
+  verify_pkcs7_signature
+  vfree
+  vfs_fsync
+  vfs_fsync_range
+  video_devdata
+  video_device_alloc
+  video_device_release
+  video_ioctl2
+  __video_register_device
+  video_unregister_device
+  vmalloc
+  vmalloc_to_page
+  vmalloc_to_pfn
+  vmalloc_user
+  vmap
+  vm_event_states
+  vmf_insert_pfn_prot
+  vm_insert_page
+  vm_unmap_aliases
+  vm_zone_stat
+  vprintk
+  vscnprintf
+  vsnprintf
+  vsprintf
+  vunmap
+  vzalloc
+  wait_for_completion
+  wait_for_completion_interruptible
+  wait_for_completion_interruptible_timeout
+  wait_for_completion_killable
+  wait_for_completion_timeout
+  __wait_on_buffer
+  wait_on_page_bit
+  wait_woken
+  __wake_up
+  wake_up_process
+  wakeup_source_register
+  wakeup_source_unregister
+  __wake_up_sync
+  __warn_printk
+  wireless_nlevent_flush
+  wireless_send_event
+  work_busy
+  write_inode_now
+  xdp_convert_zc_to_xdp_frame
+  xdp_do_flush
+  xdp_do_redirect
+  xdp_master_redirect
+  xdp_return_frame
+  xdp_return_frame_rx_napi
+  xdp_rxq_info_is_reg
+  xdp_rxq_info_reg
+  xdp_rxq_info_reg_mem_model
+  xdp_rxq_info_unreg
+  xdp_rxq_info_unreg_mem_model
+  xdp_warn
+  xp_alloc
+  xp_dma_map
+  xp_dma_sync_for_cpu_slow
+  xp_dma_sync_for_device_slow
+  xp_dma_unmap
+  xp_free
+  xp_raw_get_dma
+  xp_set_rxq_info
+  xsk_clear_rx_need_wakeup
+  xsk_get_pool_from_qid
+  xsk_set_rx_need_wakeup
+  xsk_set_tx_need_wakeup
+  xsk_tx_completed
+  xsk_tx_peek_desc
+  xsk_tx_release
+  xsk_uses_need_wakeup
+  yield
+  zs_compact
+  zs_create_pool
+  zs_destroy_pool
+  zs_free
+  zs_get_total_pages
+  zs_huge_class_size
+  zs_malloc
+  zs_map_object
+  zs_pool_stats
+  zs_unmap_object
diff --git a/android/abi_gki_aarch64_db845c b/android/abi_gki_aarch64_db845c
new file mode 100644
index 0000000..f7b65dc
--- /dev/null
+++ b/android/abi_gki_aarch64_db845c
@@ -0,0 +1,2019 @@
+[abi_symbol_list]
+# commonly used symbols
+  add_uevent_var
+  alloc_io_pgtable_ops
+  __alloc_skb
+  alloc_workqueue
+  android_kmalloc_64_create
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  bcmp
+  blocking_notifier_call_chain
+  blocking_notifier_chain_register
+  blocking_notifier_chain_unregister
+  bpf_trace_run1
+  bpf_trace_run2
+  bpf_trace_run3
+  bpf_trace_run4
+  bpf_trace_run5
+  bpf_trace_run6
+  bpf_trace_run8
+  bus_register
+  bus_unregister
+  call_rcu
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  cancel_work_sync
+  capable
+  cdev_device_add
+  cdev_device_del
+  cdev_init
+  __cfi_slowpath_diag
+  __check_object_size
+  __class_register
+  class_unregister
+  clk_bulk_disable
+  clk_bulk_enable
+  clk_bulk_prepare
+  clk_bulk_unprepare
+  clk_disable
+  clk_enable
+  clk_fixed_rate_ops
+  clk_get
+  __clk_get_name
+  clk_get_rate
+  clk_hw_get_name
+  clk_hw_get_parent
+  clk_hw_get_rate
+  clk_hw_register
+  clk_prepare
+  clk_put
+  clk_round_rate
+  clk_set_rate
+  clk_sync_state
+  clk_unprepare
+  complete
+  complete_all
+  completion_done
+  __const_udelay
+  consume_skb
+  _copy_from_iter
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpumask_next
+  cpu_number
+  __cpu_online_mask
+  __cpu_possible_mask
+  crc32_le
+  crypto_alloc_shash
+  crypto_destroy_tfm
+  crypto_shash_setkey
+  crypto_shash_update
+  _ctype
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_create_u32
+  debugfs_create_x32
+  debugfs_remove
+  default_llseek
+  delayed_work_timer_fn
+  del_timer
+  del_timer_sync
+  destroy_workqueue
+  dev_close
+  dev_coredumpv
+  dev_driver_string
+  _dev_err
+  dev_err_probe
+  dev_get_regmap
+  device_add
+  device_del
+  device_find_child
+  device_for_each_child
+  device_get_match_data
+  device_get_named_child_node
+  device_initialize
+  device_init_wakeup
+  device_property_present
+  device_property_read_u32_array
+  device_register
+  device_set_wakeup_capable
+  device_unregister
+  device_wakeup_enable
+  _dev_info
+  __dev_kfree_skb_any
+  devm_add_action
+  devm_clk_bulk_get
+  devm_clk_bulk_get_all
+  devm_clk_get
+  devm_clk_get_optional
+  devm_clk_hw_register
+  devm_free_irq
+  devm_gpiochip_add_data_with_key
+  devm_gpiod_get
+  devm_gpiod_get_optional
+  devm_ioremap
+  devm_ioremap_resource
+  devm_ioremap_wc
+  devm_iounmap
+  devm_kasprintf
+  devm_kfree
+  devm_kmalloc
+  devm_mbox_controller_register
+  devm_memremap
+  devm_of_clk_add_hw_provider
+  devm_of_icc_get
+  __devm_of_phy_provider_register
+  devm_of_platform_populate
+  devm_phy_create
+  devm_phy_get
+  devm_pinctrl_register
+  devm_platform_get_and_ioremap_resource
+  devm_platform_ioremap_resource
+  devm_pm_opp_of_add_table
+  devm_pm_opp_set_clkname
+  devm_regmap_add_irq_chip
+  devm_regmap_field_alloc
+  __devm_regmap_init
+  __devm_regmap_init_i2c
+  __devm_regmap_init_mmio_clk
+  devm_regulator_bulk_get
+  devm_regulator_get
+  devm_regulator_get_optional
+  devm_regulator_register
+  devm_request_threaded_irq
+  __devm_reset_control_get
+  devm_reset_controller_register
+  devm_snd_soc_register_card
+  devm_snd_soc_register_component
+  __devm_spi_alloc_controller
+  devm_spi_register_controller
+  devm_thermal_zone_of_sensor_register
+  devm_watchdog_register_device
+  _dev_notice
+  dev_pm_domain_attach_by_name
+  dev_pm_domain_detach
+  dev_pm_genpd_set_performance_state
+  dev_pm_opp_add
+  dev_pm_opp_find_freq_ceil
+  dev_pm_opp_find_freq_exact
+  dev_pm_opp_find_freq_floor
+  dev_pm_opp_get_level
+  dev_pm_opp_get_opp_count
+  dev_pm_opp_of_find_icc_paths
+  dev_pm_opp_put
+  dev_pm_opp_set_opp
+  dev_pm_opp_set_rate
+  dev_set_name
+  _dev_warn
+  disable_irq
+  disable_irq_nosync
+  divider_get_val
+  divider_recalc_rate
+  divider_round_rate_parent
+  dma_alloc_attrs
+  dma_buf_export
+  dma_fence_context_alloc
+  dma_fence_init
+  dma_fence_release
+  dma_fence_signal
+  dma_fence_wait_timeout
+  dma_free_attrs
+  dmam_alloc_attrs
+  dma_map_page_attrs
+  dma_map_sg_attrs
+  dma_map_sgtable
+  dma_mmap_attrs
+  dma_release_channel
+  dma_request_chan
+  dma_set_coherent_mask
+  dma_set_mask
+  dma_sync_single_for_cpu
+  dma_sync_single_for_device
+  dma_unmap_page_attrs
+  dma_unmap_sg_attrs
+  down_read
+  driver_register
+  driver_unregister
+  drm_add_edid_modes
+  drm_atomic_helper_connector_destroy_state
+  drm_atomic_helper_connector_duplicate_state
+  drm_atomic_helper_connector_reset
+  drm_bridge_add
+  drm_bridge_hpd_notify
+  drm_bridge_remove
+  drm_connector_attach_encoder
+  drm_connector_cleanup
+  drm_connector_init
+  drm_connector_update_edid_property
+  drm_do_get_edid
+  __drm_err
+  drm_get_edid
+  drm_hdmi_avi_infoframe_from_display_mode
+  drm_helper_probe_single_connector_modes
+  drm_kms_helper_hotplug_event
+  drm_mode_vrefresh
+  enable_irq
+  eth_type_trans
+  event_triggers_call
+  _find_first_bit
+  _find_first_zero_bit
+  _find_next_bit
+  finish_wait
+  firmware_request_nowarn
+  flush_delayed_work
+  flush_work
+  flush_workqueue
+  free_io_pgtable_ops
+  free_irq
+  __free_pages
+  free_pages
+  free_percpu
+  gcd
+  generic_handle_domain_irq
+  generic_handle_irq
+  geni_icc_disable
+  geni_icc_enable
+  geni_icc_get
+  geni_icc_set_bw
+  geni_se_config_packing
+  geni_se_init
+  geni_se_resources_off
+  geni_se_resources_on
+  geni_se_select_mode
+  get_device
+  get_random_bytes
+  gic_nonsecure_priorities
+  gpiochip_add_data_with_key
+  gpiochip_add_pin_range
+  gpiochip_generic_free
+  gpiochip_generic_request
+  gpiochip_get_data
+  gpiochip_remove
+  gpiod_direction_output
+  gpiod_direction_output_raw
+  gpiod_get_value_cansleep
+  gpiod_set_consumer_name
+  gpiod_set_raw_value
+  gpiod_set_value
+  gpiod_set_value_cansleep
+  gpiod_to_irq
+  gpio_to_desc
+  handle_edge_irq
+  handle_level_irq
+  handle_nested_irq
+  handle_simple_irq
+  hdmi_audio_infoframe_init
+  i2c_adapter_type
+  i2c_add_adapter
+  i2c_add_numbered_adapter
+  i2c_del_adapter
+  i2c_del_driver
+  i2c_parse_fw_timings
+  i2c_put_adapter
+  i2c_register_driver
+  __i2c_smbus_xfer
+  i2c_smbus_xfer
+  i2c_transfer
+  icc_link_create
+  icc_node_add
+  icc_node_create
+  icc_nodes_remove
+  icc_provider_add
+  icc_provider_del
+  icc_set_bw
+  icc_sync_state
+  ida_alloc_range
+  ida_free
+  idr_alloc
+  idr_alloc_cyclic
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_get_next
+  idr_remove
+  iio_read_channel_processed
+  init_dummy_netdev
+  init_net
+  __init_swait_queue_head
+  init_timer_key
+  init_uts_ns
+  init_wait_entry
+  __init_waitqueue_head
+  iomem_resource
+  iommu_attach_device
+  iommu_detach_device
+  iommu_domain_alloc
+  iommu_domain_free
+  iommu_present
+  iommu_unmap
+  __ioread32_copy
+  __ioremap
+  iounmap
+  iov_iter_revert
+  __iowrite32_copy
+  irq_chip_disable_parent
+  irq_chip_enable_parent
+  irq_chip_eoi_parent
+  irq_chip_mask_parent
+  irq_chip_set_affinity_parent
+  irq_chip_set_parent_state
+  irq_chip_set_type_parent
+  irq_chip_set_vcpu_affinity_parent
+  irq_chip_set_wake_parent
+  irq_chip_unmask_parent
+  __irq_domain_add
+  irq_domain_free_irqs_common
+  irq_domain_remove
+  irq_domain_xlate_onecell
+  irq_domain_xlate_twocell
+  irq_find_matching_fwspec
+  irq_get_irq_data
+  irq_modify_status
+  irq_of_parse_and_map
+  __irq_resolve_mapping
+  irq_set_chained_handler_and_data
+  irq_set_chip_and_handler_name
+  irq_set_chip_data
+  irq_set_irq_wake
+  is_vmalloc_addr
+  jiffies
+  jiffies_to_msecs
+  jiffies_to_usecs
+  kasan_flag_enabled
+  kasprintf
+  kernel_connect
+  kernel_getsockname
+  kernel_recvmsg
+  kernel_sendmsg
+  kfree
+  kfree_const
+  kfree_sensitive
+  kfree_skb
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order_trace
+  kmem_cache_alloc
+  kmem_cache_alloc_trace
+  kmem_cache_create
+  kmem_cache_destroy
+  kmem_cache_free
+  kmemdup
+  kstrdup
+  kstrdup_const
+  kstrtoint
+  kstrtouint
+  kthread_create_on_node
+  kthread_should_stop
+  kthread_stop
+  ktime_get
+  ktime_get_mono_fast_ns
+  ktime_get_real_ts64
+  ktime_get_with_offset
+  kvfree
+  kvfree_call_rcu
+  kvmalloc_node
+  __list_add_valid
+  __list_del_entry_valid
+  __local_bh_enable_ip
+  log_post_read_mmio
+  log_post_write_mmio
+  log_read_mmio
+  log_write_mmio
+  mbox_client_txdone
+  mbox_free_channel
+  mbox_request_channel
+  mbox_send_message
+  memcpy
+  __memcpy_fromio
+  __memcpy_toio
+  memmove
+  memparse
+  memremap
+  memset
+  __memset_io
+  memstart_addr
+  memunmap
+  mipi_dsi_attach
+  mipi_dsi_detach
+  mipi_dsi_device_register_full
+  mipi_dsi_device_unregister
+  misc_deregister
+  misc_register
+  mod_delayed_work_on
+  mod_timer
+  module_layout
+  __msecs_to_jiffies
+  msleep
+  __mutex_init
+  mutex_is_locked
+  mutex_lock
+  mutex_unlock
+  napi_complete_done
+  napi_disable
+  napi_enable
+  __napi_schedule
+  napi_schedule_prep
+  __netdev_alloc_skb
+  netdev_err
+  netdev_info
+  netif_napi_add
+  __netif_napi_del
+  netif_tx_wake_queue
+  __nla_parse
+  nla_put
+  no_llseek
+  nr_cpu_ids
+  __num_online_cpus
+  nvmem_cell_get
+  nvmem_cell_put
+  nvmem_cell_read
+  of_address_to_resource
+  of_alias_get_id
+  of_clk_add_hw_provider
+  of_clk_del_provider
+  of_clk_hw_onecell_get
+  of_clk_hw_simple_get
+  of_clk_set_defaults
+  of_device_get_match_data
+  of_device_is_compatible
+  of_device_uevent_modalias
+  of_dma_configure_id
+  of_find_device_by_node
+  of_find_mipi_dsi_host_by_node
+  of_find_property
+  of_fwnode_ops
+  of_genpd_add_provider_onecell
+  of_genpd_del_provider
+  of_get_child_by_name
+  of_get_named_gpio_flags
+  of_get_next_available_child
+  of_get_next_child
+  of_get_property
+  of_get_regulator_init_data
+  of_graph_get_remote_node
+  of_graph_parse_endpoint
+  of_icc_xlate_onecell
+  of_iomap
+  of_irq_get
+  of_irq_get_byname
+  of_match_device
+  of_match_node
+  of_node_name_eq
+  of_parse_phandle
+  of_parse_phandle_with_args
+  of_parse_phandle_with_fixed_args
+  of_phy_simple_xlate
+  of_platform_depopulate
+  of_platform_populate
+  of_property_count_elems_of_size
+  of_property_read_string
+  of_property_read_string_helper
+  of_property_read_u32_index
+  of_property_read_variable_u32_array
+  of_property_read_variable_u8_array
+  of_prop_next_u32
+  of_reserved_mem_lookup
+  param_ops_bool
+  param_ops_charp
+  param_ops_int
+  param_ops_uint
+  pci_clear_master
+  pci_disable_device
+  pcie_capability_read_word
+  pcie_capability_write_word
+  pci_enable_device
+  pci_iomap
+  pci_iounmap
+  pci_read_config_dword
+  __pci_register_driver
+  pci_release_region
+  pci_request_region
+  pci_set_master
+  pci_unregister_driver
+  __per_cpu_offset
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  phy_exit
+  phy_init
+  phy_power_off
+  phy_power_on
+  pinconf_generic_dt_node_to_map
+  pinctrl_dev_get_drvdata
+  pinctrl_pm_select_default_state
+  pinctrl_pm_select_sleep_state
+  pinctrl_utils_free_map
+  platform_bus_type
+  platform_device_register_full
+  platform_device_unregister
+  __platform_driver_register
+  platform_driver_unregister
+  platform_get_irq
+  platform_get_irq_byname
+  platform_get_resource
+  platform_get_resource_byname
+  pm_genpd_add_subdomain
+  pm_genpd_init
+  __pm_runtime_disable
+  pm_runtime_enable
+  pm_runtime_forbid
+  pm_runtime_force_resume
+  pm_runtime_force_suspend
+  __pm_runtime_idle
+  __pm_runtime_resume
+  pm_runtime_set_autosuspend_delay
+  __pm_runtime_set_status
+  __pm_runtime_suspend
+  __pm_runtime_use_autosuspend
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait_event
+  _printk
+  pskb_expand_head
+  __pskb_pull_tail
+  put_device
+  __put_task_struct
+  qcom_smem_state_register
+  qcom_smem_state_unregister
+  queue_delayed_work_on
+  queue_work_on
+  radix_tree_insert
+  radix_tree_lookup
+  radix_tree_next_chunk
+  ___ratelimit
+  rational_best_approximation
+  _raw_read_lock
+  _raw_read_unlock
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irq
+  _raw_spin_lock_irqsave
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irq
+  _raw_spin_unlock_irqrestore
+  _raw_write_lock
+  _raw_write_lock_bh
+  _raw_write_unlock
+  _raw_write_unlock_bh
+  rb_erase
+  rb_insert_color
+  rcu_barrier
+  __rcu_read_lock
+  __rcu_read_unlock
+  rdev_get_drvdata
+  refcount_warn_saturate
+  regcache_cache_only
+  regcache_mark_dirty
+  regcache_sync
+  register_netdevice_notifier
+  register_reboot_notifier
+  __register_rpmsg_driver
+  register_shrinker
+  regmap_bulk_read
+  regmap_bulk_write
+  regmap_field_read
+  regmap_field_update_bits_base
+  __regmap_init
+  regmap_irq_get_virq
+  regmap_multi_reg_write
+  regmap_read
+  regmap_register_patch
+  regmap_update_bits_base
+  regmap_write
+  regulator_bulk_disable
+  regulator_bulk_enable
+  regulator_bulk_get
+  regulator_disable
+  regulator_disable_regmap
+  regulator_enable
+  regulator_enable_regmap
+  regulator_is_enabled_regmap
+  regulator_set_load
+  regulator_set_voltage
+  release_firmware
+  __release_region
+  remap_pfn_range
+  request_firmware
+  request_firmware_direct
+  request_firmware_into_buf
+  __request_region
+  request_threaded_irq
+  reset_control_assert
+  reset_control_deassert
+  reset_control_put
+  reset_control_reset
+  round_jiffies_up
+  rpmsg_register_device
+  rpmsg_send
+  rpmsg_unregister_device
+  rproc_add
+  rproc_add_subdev
+  rproc_alloc
+  rproc_coredump_add_custom_segment
+  rproc_coredump_set_elf_info
+  rproc_del
+  rproc_free
+  rproc_remove_subdev
+  rtnl_is_locked
+  rtnl_lock
+  rtnl_unlock
+  sched_set_fifo_low
+  schedule
+  schedule_timeout
+  scnprintf
+  seq_lseek
+  seq_printf
+  seq_puts
+  seq_read
+  sg_alloc_table
+  sg_free_table
+  sg_init_table
+  sg_next
+  __sg_page_iter_start
+  simple_read_from_buffer
+  single_open
+  single_release
+  skb_clone
+  skb_copy
+  skb_copy_bits
+  skb_dequeue
+  skb_pull
+  skb_push
+  skb_put
+  skb_queue_head
+  skb_queue_purge
+  skb_queue_tail
+  skb_trim
+  sk_free
+  snd_pcm_format_width
+  snd_soc_add_component_controls
+  snd_soc_component_init_regmap
+  snd_soc_component_read
+  snd_soc_component_read_field
+  snd_soc_component_update_bits
+  snd_soc_component_write
+  snd_soc_component_write_field
+  snd_soc_dai_set_fmt
+  snd_soc_dai_set_sysclk
+  snd_soc_dapm_add_routes
+  snd_soc_dapm_get_enum_double
+  snd_soc_dapm_get_volsw
+  snd_soc_dapm_kcontrol_dapm
+  snd_soc_dapm_kcontrol_widget
+  snd_soc_dapm_mixer_update_power
+  snd_soc_dapm_mux_update_power
+  snd_soc_dapm_put_enum_double
+  snd_soc_dapm_put_volsw
+  snd_soc_get_enum_double
+  snd_soc_get_volsw
+  snd_soc_info_enum_double
+  snd_soc_info_volsw
+  snd_soc_jack_report
+  snd_soc_put_enum_double
+  snd_soc_put_volsw
+  snprintf
+  sock_create_kern
+  sock_release
+  sort
+  __spi_alloc_controller
+  spi_controller_resume
+  spi_controller_suspend
+  spi_finalize_current_transfer
+  spi_register_controller
+  spi_unregister_controller
+  sprintf
+  sscanf
+  __stack_chk_fail
+  strcmp
+  strcpy
+  strlcpy
+  strlen
+  strncmp
+  strncpy
+  strnlen
+  strpbrk
+  strscpy
+  strscpy_pad
+  strsep
+  __sw_hweight16
+  __sw_hweight32
+  __sw_hweight64
+  __sw_hweight8
+  synchronize_irq
+  synchronize_net
+  synchronize_rcu
+  syscon_node_to_regmap
+  syscon_regmap_lookup_by_phandle
+  sysfs_create_link
+  sysfs_emit
+  sysfs_remove_link
+  system_power_efficient_wq
+  system_wq
+  tasklet_init
+  tasklet_kill
+  __tasklet_schedule
+  tasklet_setup
+  tasklet_unlock_wait
+  thermal_cooling_device_register
+  thermal_cooling_device_unregister
+  thermal_zone_device_update
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_handle_return
+  trace_raw_output_prep
+  __ubsan_handle_cfi_check_fail_abort
+  __udelay
+  unregister_chrdev_region
+  unregister_netdevice_notifier
+  unregister_netdevice_queue
+  unregister_reboot_notifier
+  unregister_rpmsg_driver
+  unregister_shrinker
+  up_read
+  usb_disabled
+  __usecs_to_jiffies
+  usleep_range_state
+  vabits_actual
+  vfree
+  vmalloc
+  vmap
+  vunmap
+  vzalloc
+  wait_for_completion_interruptible
+  wait_for_completion_timeout
+  __wake_up
+  wake_up_process
+  __warn_printk
+  watchdog_init_timeout
+  xa_erase
+  xa_find
+  xa_find_after
+
+# required by apr.ko
+  rpmsg_trysend
+
+# required by arm_smmu.ko
+  amba_bustype
+  bus_set_iommu
+  device_link_add
+  device_match_fwnode
+  devm_krealloc
+  driver_find_device
+  generic_device_group
+  generic_iommu_put_resv_regions
+  iommu_alloc_resv_region
+  iommu_device_register
+  iommu_device_sysfs_add
+  iommu_device_sysfs_remove
+  iommu_device_unregister
+  iommu_dma_get_resv_regions
+  iommu_fwspec_add_ids
+  iommu_fwspec_free
+  iommu_group_ref_get
+  of_dma_is_coherent
+  pci_bus_type
+  pci_device_group
+  report_iommu_fault
+
+# required by ath10k_core.ko
+  cpu_latency_qos_add_request
+  cpu_latency_qos_remove_request
+  device_get_mac_address
+  device_set_wakeup_enable
+  guid_gen
+  __kfifo_alloc
+  __kfifo_free
+  param_ops_ulong
+  skb_dequeue_tail
+  skb_realloc_headroom
+  strlcat
+
+# required by ath10k_pci.ko
+  pci_disable_msi
+  pci_enable_msi
+  pci_write_config_dword
+
+# required by ath10k_snoc.ko
+  __bitmap_clear
+  devm_clk_bulk_get_optional
+  iommu_map
+
+# required by ath11k.ko
+  crypto_shash_final
+  memcpy_and_pad
+
+# required by ath11k_ahb.ko
+  rproc_boot
+  rproc_get_by_phandle
+  rproc_shutdown
+
+# required by ath11k_pci.ko
+  pci_alloc_irq_vectors_affinity
+  pci_assign_resource
+  pci_free_irq_vectors
+  pci_irq_vector
+  pci_read_config_word
+
+# required by bam_dma.ko
+  dma_async_device_register
+  dma_async_device_unregister
+  dma_async_tx_descriptor_init
+  dma_get_slave_channel
+  of_dma_controller_free
+  of_dma_controller_register
+  pm_runtime_irq_safe
+  vchan_dma_desc_free_list
+  vchan_find_desc
+  vchan_init
+  vchan_tx_desc_free
+  vchan_tx_submit
+
+# required by cfg80211.ko
+  bpf_trace_run10
+  bpf_trace_run7
+  debugfs_rename
+  __dev_change_net_namespace
+  __dev_get_by_index
+  dev_get_by_index
+  device_rename
+  do_trace_netlink_extack
+  genlmsg_multicast_allns
+  genlmsg_put
+  genl_register_family
+  genl_unregister_family
+  get_net_ns_by_fd
+  get_net_ns_by_pid
+  inet_csk_get_port
+  key_create_or_update
+  key_put
+  keyring_alloc
+  ktime_get_coarse_with_offset
+  memcmp
+  netif_rx_ni
+  netlink_broadcast
+  netlink_register_notifier
+  netlink_unicast
+  netlink_unregister_notifier
+  net_ns_type_operations
+  nla_find
+  nla_memcpy
+  nla_put_64bit
+  nla_reserve
+  __nla_validate
+  __put_net
+  register_netdevice
+  register_pernet_device
+  request_firmware_nowait
+  rfkill_alloc
+  rfkill_blocked
+  rfkill_destroy
+  rfkill_register
+  rfkill_resume_polling
+  rfkill_set_hw_state_reason
+  rfkill_unregister
+  skb_add_rx_frag
+  __sock_create
+  trace_print_array_seq
+  unregister_pernet_device
+  verify_pkcs7_signature
+  wireless_nlevent_flush
+
+# required by clk-qcom.ko
+  __clk_determine_rate
+  clk_fixed_factor_ops
+  clk_hw_get_flags
+  clk_hw_get_num_parents
+  clk_hw_get_parent_by_index
+  clk_hw_is_enabled
+  clk_hw_round_rate
+  __clk_is_enabled
+  __clk_mux_determine_rate_closest
+  divider_ro_round_rate_parent
+  of_find_node_opts_by_path
+  pm_genpd_remove_subdomain
+
+# required by clk-rpmh.ko
+  clk_hw_is_prepared
+
+# required by clk-spmi-pmic-div.ko
+  __ndelay
+  of_clk_get_parent_name
+
+# required by cmd-db.ko
+  seq_putc
+
+# required by cqhci.ko
+  devm_blk_ksm_init
+  dmam_free_coherent
+  mmc_cqe_request_done
+
+# required by display-connector.ko
+  drm_atomic_get_new_bridge_state
+  drm_atomic_helper_bridge_destroy_state
+  drm_atomic_helper_bridge_duplicate_state
+  drm_atomic_helper_bridge_reset
+  drm_probe_ddc
+  of_get_i2c_adapter_by_node
+
+# required by extcon-usb-gpio.ko
+  devm_extcon_dev_allocate
+  devm_extcon_dev_register
+  extcon_set_state_sync
+  gpiod_set_debounce
+
+# required by fastrpc.ko
+  dma_buf_attach
+  dma_buf_detach
+  dma_buf_fd
+  dma_buf_get
+  dma_buf_map_attachment
+  dma_buf_put
+  dma_buf_unmap_attachment
+  dma_get_sgtable_attrs
+  __find_vma
+  __mmap_lock_do_trace_acquire_returned
+  __mmap_lock_do_trace_released
+  __mmap_lock_do_trace_start_locking
+  __traceiter_mmap_lock_acquire_returned
+  __traceiter_mmap_lock_released
+  __traceiter_mmap_lock_start_locking
+  __tracepoint_mmap_lock_acquire_returned
+  __tracepoint_mmap_lock_released
+  __tracepoint_mmap_lock_start_locking
+
+# required by gpio-regulator.ko
+  devm_gpiod_get_index
+  devm_kmemdup
+  devm_kstrdup
+  gpiod_count
+  gpiod_get_optional
+
+# required by gpu-sched.ko
+  dma_fence_add_callback
+  dma_fence_remove_callback
+  kthread_park
+  kthread_parkme
+  kthread_should_park
+  kthread_unpark
+  wait_for_completion
+
+# required by i2c-designware-core.ko
+  i2c_generic_scl_recovery
+  i2c_recover_bus
+
+# required by i2c-designware-platform.ko
+  pm_suspend_global_flags
+
+# required by i2c-dev.ko
+  bus_register_notifier
+  bus_unregister_notifier
+  __class_create
+  class_destroy
+  i2c_bus_type
+  i2c_for_each_dev
+  i2c_get_adapter
+  i2c_transfer_buffer_flags
+  i2c_verify_client
+  memdup_user
+  register_chrdev_region
+
+# required by i2c-mux-pca954x.ko
+  device_create_file
+  device_remove_file
+  i2c_get_device_id
+  i2c_smbus_read_byte
+  i2c_smbus_write_byte
+  irq_create_mapping_affinity
+  irq_dispose_mapping
+  irq_domain_simple_ops
+
+# required by i2c-mux.ko
+  __i2c_transfer
+  rt_mutex_lock
+  rt_mutex_trylock
+  rt_mutex_unlock
+
+# required by i2c-qcom-geni.ko
+  geni_se_rx_dma_prep
+  geni_se_rx_dma_unprep
+  geni_se_tx_dma_prep
+  geni_se_tx_dma_unprep
+  i2c_get_dma_safe_msg_buf
+  i2c_put_dma_safe_msg_buf
+
+# required by i2c-rk3x.ko
+  clk_notifier_register
+  clk_notifier_unregister
+
+# required by icc-bcm-voter.ko
+  list_sort
+  of_property_match_string
+
+# required by icc-osm-l3.ko
+  icc_std_aggregate
+
+# required by llcc-qcom.ko
+  devm_platform_ioremap_resource_byname
+
+# required by lmh.ko
+  of_cpu_node_to_id
+
+# required by lontium-lt9611uxc.ko
+  print_hex_dump
+  regmap_noinc_read
+  regmap_noinc_write
+
+# required by lpass-gfm-sm8250.ko
+  __clk_mux_determine_rate
+  devm_pm_clk_create
+  devm_pm_runtime_enable
+  of_pm_clk_add_clks
+  pm_clk_resume
+  pm_clk_suspend
+
+# required by mac80211.ko
+  alloc_netdev_mqs
+  __alloc_percpu_gfp
+  arc4_crypt
+  arc4_setkey
+  crc32_be
+  crypto_aead_decrypt
+  crypto_aead_encrypt
+  crypto_aead_setauthsize
+  crypto_aead_setkey
+  crypto_alloc_aead
+  crypto_alloc_skcipher
+  __crypto_memneq
+  crypto_shash_digest
+  crypto_shash_finup
+  crypto_skcipher_decrypt
+  crypto_skcipher_encrypt
+  crypto_skcipher_setkey
+  __crypto_xor
+  dev_alloc_name
+  dev_fetch_sw_netstats
+  _dev_printk
+  dev_queue_xmit
+  ether_setup
+  eth_mac_addr
+  ethtool_op_get_link
+  free_netdev
+  get_random_u32
+  __hw_addr_init
+  __hw_addr_sync
+  __hw_addr_unsync
+  kernel_param_lock
+  kernel_param_unlock
+  kfree_skb_list
+  ktime_get_seconds
+  napi_gro_receive
+  netdev_set_default_ethtool_ops
+  netif_carrier_off
+  netif_carrier_on
+  netif_receive_skb
+  netif_receive_skb_list
+  netif_rx
+  netif_tx_stop_all_queues
+  net_ratelimit
+  prandom_bytes
+  ___pskb_trim
+  rb_next
+  rb_prev
+  register_inet6addr_notifier
+  register_inetaddr_notifier
+  rhashtable_free_and_destroy
+  rhashtable_insert_slow
+  rhltable_init
+  __rht_bucket_nested
+  rht_bucket_nested
+  rht_bucket_nested_insert
+  round_jiffies
+  round_jiffies_relative
+  sg_init_one
+  skb_checksum_help
+  skb_clone_sk
+  skb_complete_wifi_ack
+  skb_copy_expand
+  skb_ensure_writable
+  __skb_get_hash
+  __skb_gso_segment
+  system_freezable_wq
+  unregister_inet6addr_notifier
+  unregister_inetaddr_notifier
+  unregister_netdevice_many
+
+# required by mcp251xfd.ko
+  alloc_candev_mqs
+  alloc_can_err_skb
+  alloc_canfd_skb
+  alloc_can_skb
+  can_bus_off
+  can_change_mtu
+  can_change_state
+  can_fd_dlc2len
+  can_fd_len2dlc
+  can_put_echo_skb
+  can_rx_offload_add_manual
+  can_rx_offload_del
+  can_rx_offload_enable
+  can_rx_offload_get_echo_skb
+  can_rx_offload_queue_sorted
+  can_rx_offload_threaded_irq_finish
+  can_skb_get_frame_len
+  close_candev
+  devm_gpiod_put
+  dql_completed
+  dql_reset
+  free_candev
+  netdev_notice
+  netdev_warn
+  netif_schedule_queue
+  open_candev
+  register_candev
+  regmap_get_val_bytes
+  regmap_raw_write
+  spi_async
+  spi_get_device_id
+  __spi_register_driver
+  spi_setup
+  spi_sync
+  spi_write_then_read
+  timecounter_cyc2time
+  timecounter_init
+  timecounter_read
+  unregister_candev
+  __vmalloc
+
+# required by mhi.ko
+  pm_wakeup_dev_event
+  prandom_u32
+  _raw_read_lock_bh
+  _raw_read_lock_irq
+  _raw_read_lock_irqsave
+  _raw_read_unlock_bh
+  _raw_read_unlock_irq
+  _raw_read_unlock_irqrestore
+  _raw_write_lock_irq
+  _raw_write_lock_irqsave
+  _raw_write_unlock_irq
+  _raw_write_unlock_irqrestore
+
+# required by michael_mic.ko
+  crypto_register_shash
+  crypto_unregister_shash
+
+# required by msm.ko
+  __bitmap_andnot
+  __bitmap_weight
+  clk_get_parent
+  clk_set_parent
+  component_add
+  component_bind_all
+  component_del
+  component_master_add_with_match
+  component_master_del
+  component_unbind_all
+  debugfs_create_bool
+  debugfs_create_u64
+  dev_coredumpm
+  devfreq_cooling_unregister
+  devfreq_recommended_opp
+  devfreq_resume_device
+  devfreq_suspend_device
+  __devm_clk_hw_register_divider
+  devm_clk_hw_register_fixed_factor
+  __devm_clk_hw_register_mux
+  devm_clk_register
+  devm_devfreq_add_device
+  devm_pm_opp_set_supported_hw
+  devm_regulator_get_exclusive
+  dev_pm_opp_get_freq
+  dev_pm_opp_get_voltage
+  dma_resv_add_excl_fence
+  dma_resv_add_shared_fence
+  dma_resv_reserve_shared
+  dma_resv_wait_timeout
+  drm_atomic_get_private_obj_state
+  drm_atomic_helper_check
+  drm_atomic_helper_check_plane_state
+  drm_atomic_helper_cleanup_planes
+  drm_atomic_helper_commit
+  drm_atomic_helper_commit_hw_done
+  drm_atomic_helper_commit_modeset_disables
+  drm_atomic_helper_commit_modeset_enables
+  drm_atomic_helper_commit_planes
+  __drm_atomic_helper_crtc_destroy_state
+  drm_atomic_helper_crtc_destroy_state
+  __drm_atomic_helper_crtc_duplicate_state
+  drm_atomic_helper_crtc_duplicate_state
+  __drm_atomic_helper_crtc_reset
+  drm_atomic_helper_crtc_reset
+  drm_atomic_helper_dirtyfb
+  drm_atomic_helper_disable_plane
+  drm_atomic_helper_duplicate_state
+  drm_atomic_helper_page_flip
+  __drm_atomic_helper_plane_destroy_state
+  drm_atomic_helper_plane_destroy_state
+  __drm_atomic_helper_plane_duplicate_state
+  drm_atomic_helper_plane_duplicate_state
+  __drm_atomic_helper_plane_reset
+  drm_atomic_helper_plane_reset
+  __drm_atomic_helper_private_obj_duplicate_state
+  drm_atomic_helper_set_config
+  drm_atomic_helper_shutdown
+  drm_atomic_helper_update_plane
+  drm_atomic_print_new_state
+  drm_atomic_private_obj_fini
+  drm_atomic_private_obj_init
+  __drm_atomic_state_free
+  drm_bridge_attach
+  drm_bridge_connector_enable_hpd
+  drm_bridge_connector_init
+  drm_bridge_detect
+  drm_compat_ioctl
+  drm_connector_has_possible_encoder
+  drm_connector_list_iter_begin
+  drm_connector_list_iter_end
+  drm_connector_list_iter_next
+  drm_crtc_cleanup
+  drm_crtc_enable_color_mgmt
+  drm_crtc_handle_vblank
+  drm_crtc_init_with_planes
+  drm_crtc_send_vblank_event
+  drm_crtc_set_max_vblank_count
+  drm_crtc_vblank_get
+  drm_crtc_vblank_helper_get_vblank_timestamp
+  drm_crtc_vblank_off
+  drm_crtc_vblank_on
+  drm_crtc_vblank_put
+  __drm_dbg
+  __drm_debug
+  drm_debugfs_create_files
+  drm_detect_hdmi_monitor
+  drm_detect_monitor_audio
+  drm_dev_alloc
+  drm_dev_dbg
+  drm_dev_printk
+  drm_dev_put
+  drm_dev_register
+  drm_dev_unregister
+  drm_dp_aux_register
+  drm_dp_aux_unregister
+  drm_dp_bw_code_to_link_rate
+  drm_dp_channel_eq_ok
+  drm_dp_clock_recovery_ok
+  drm_dp_dpcd_read
+  drm_dp_dpcd_read_link_status
+  drm_dp_dpcd_write
+  drm_dp_get_adjust_request_pre_emphasis
+  drm_dp_get_adjust_request_voltage
+  drm_dp_link_rate_to_bw_code
+  drm_dp_link_train_channel_eq_delay
+  drm_dp_link_train_clock_recovery_delay
+  drm_dp_read_sink_count
+  drm_edid_block_valid
+  drm_encoder_cleanup
+  drm_encoder_init
+  drm_flip_work_cleanup
+  drm_flip_work_commit
+  drm_flip_work_init
+  drm_flip_work_queue
+  drm_format_info
+  drm_framebuffer_init
+  drm_gem_create_mmap_offset
+  drm_gem_fb_create_handle
+  drm_gem_fb_destroy
+  drm_gem_fb_get_obj
+  drm_gem_fence_array_add
+  drm_gem_fence_array_add_implicit
+  drm_gem_free_mmap_offset
+  drm_gem_get_pages
+  drm_gem_handle_create
+  drm_gem_mmap
+  drm_gem_object_free
+  drm_gem_object_init
+  drm_gem_object_lookup
+  drm_gem_object_release
+  drm_gem_plane_helper_prepare_fb
+  drm_gem_prime_fd_to_handle
+  drm_gem_prime_handle_to_fd
+  drm_gem_prime_mmap
+  drm_gem_private_object_init
+  drm_gem_put_pages
+  drm_gem_vm_close
+  drm_gem_vm_open
+  drm_get_format_info
+  drm_handle_vblank
+  drm_helper_hpd_irq_event
+  drm_helper_mode_fill_fb_struct
+  drm_ioctl
+  drm_kms_helper_poll_fini
+  drm_kms_helper_poll_init
+  drm_mm_init
+  drm_mm_insert_node_in_range
+  drmm_mode_config_init
+  drm_mm_print
+  drm_mm_remove_node
+  drm_mm_takedown
+  drm_mode_config_cleanup
+  drm_mode_config_helper_resume
+  drm_mode_config_helper_suspend
+  drm_mode_config_reset
+  drm_mode_copy
+  drm_mode_debug_printmodeline
+  drm_mode_destroy
+  drm_mode_duplicate
+  drm_mode_object_find
+  drm_mode_object_put
+  drm_mode_probed_add
+  drm_modeset_acquire_fini
+  drm_modeset_acquire_init
+  drm_modeset_backoff
+  drm_modeset_drop_locks
+  drm_modeset_lock
+  drm_modeset_lock_all
+  drm_modeset_lock_all_ctx
+  drm_modeset_lock_init
+  drm_modeset_unlock
+  drm_modeset_unlock_all
+  drm_object_attach_property
+  drm_of_component_match_add
+  drm_open
+  drm_panel_disable
+  drm_panel_enable
+  drm_panel_get_modes
+  drm_panel_prepare
+  drm_panel_unprepare
+  drm_plane_cleanup
+  drm_plane_create_alpha_property
+  drm_plane_create_blend_mode_property
+  drm_plane_create_rotation_property
+  drm_plane_create_zpos_property
+  drm_plane_enable_fb_damage_clips
+  drm_poll
+  drm_prime_gem_destroy
+  drm_prime_pages_to_sg
+  drm_prime_sg_to_page_array
+  drm_printf
+  __drm_printfn_coredump
+  __drm_printfn_info
+  __drm_printfn_seq_file
+  drm_puts
+  __drm_puts_coredump
+  __drm_puts_seq_file
+  drm_read
+  drm_rect_calc_hscale
+  drm_rect_calc_vscale
+  drm_rect_intersect
+  drm_release
+  drm_rotation_simplify
+  drm_state_dump
+  drm_syncobj_add_point
+  drm_syncobj_find
+  drm_syncobj_find_fence
+  drm_syncobj_free
+  drm_syncobj_replace_fence
+  drm_universal_plane_init
+  drm_vblank_init
+  fd_install
+  generic_file_llseek
+  get_pid_task
+  get_unused_fd_flags
+  gpiod_direction_input
+  gpiod_get_value
+  hdmi_audio_infoframe_pack
+  hdmi_infoframe_pack
+  hrtimer_init
+  hrtimer_start_range_ns
+  invalidate_mapping_pages
+  iommu_map_sg
+  iommu_set_fault_handler
+  iommu_set_pgtable_quirks
+  kstrdup_quotable_cmdline
+  kstrtouint_from_user
+  kthread_create_worker
+  kthread_destroy_worker
+  kthread_queue_work
+  memdup_user_nul
+  mipi_dsi_create_packet
+  mipi_dsi_host_register
+  mipi_dsi_host_unregister
+  mipi_dsi_packet_format_is_long
+  mutex_lock_interruptible
+  mutex_trylock
+  noop_llseek
+  nr_swap_pages
+  nsecs_to_jiffies
+  nvmem_cell_read_variable_le_u32
+  of_devfreq_cooling_register
+  of_device_is_available
+  of_drm_find_bridge
+  of_drm_find_panel
+  of_find_matching_node_and_match
+  of_get_compatible_child
+  of_graph_get_endpoint_by_regs
+  of_graph_get_next_endpoint
+  of_graph_get_remote_port_parent
+  of_icc_get
+  phy_calibrate
+  phy_configure
+  pid_task
+  pm_runtime_get_if_active
+  put_pid
+  put_unused_fd
+  register_vmap_purge_notifier
+  reservation_ww_class
+  sched_set_fifo
+  schedule_timeout_interruptible
+  __sg_page_iter_dma_next
+  shmem_truncate_range
+  simple_attr_open
+  simple_attr_read
+  simple_attr_release
+  simple_attr_write
+  simple_open
+  strstr
+  sync_file_create
+  sync_file_get_fence
+  unmap_mapping_range
+  unregister_vmap_purge_notifier
+  vmf_insert_mixed
+  vm_get_page_prot
+  vscnprintf
+  vsnprintf
+  ww_mutex_lock
+  ww_mutex_lock_interruptible
+  ww_mutex_unlock
+  xa_destroy
+
+# required by msm_serial.ko
+  do_SAK
+  handle_sysrq
+  sysrq_mask
+  tty_flip_buffer_push
+  __tty_insert_flip_char
+  tty_termios_baud_rate
+  tty_termios_encode_baud_rate
+  uart_add_one_port
+  uart_get_baud_rate
+  uart_register_driver
+  uart_remove_one_port
+  uart_resume_port
+  uart_suspend_port
+  uart_try_toggle_sysrq
+  uart_unregister_driver
+  uart_update_timeout
+  uart_write_wakeup
+
+# required by ns.ko
+  kernel_bind
+  radix_tree_delete
+  radix_tree_iter_resume
+
+# required by nvmem_qfprom.ko
+  devm_nvmem_register
+
+# required by ohci-hcd.ko
+  dma_pool_alloc
+  dma_pool_create
+  dma_pool_destroy
+  dma_pool_free
+  gen_pool_dma_alloc_align
+  gen_pool_dma_zalloc_align
+  gen_pool_free_owner
+  get_zeroed_page
+  sb800_prefetch
+  schedule_timeout_uninterruptible
+  usb_amd_dev_put
+  usb_amd_quirk_pll_disable
+  usb_amd_quirk_pll_enable
+  usb_calc_bus_time
+  usb_debug_root
+  usb_hcd_check_unlink_urb
+  usb_hcd_giveback_urb
+  usb_hc_died
+  usb_hcd_link_urb_to_ep
+  usb_hcd_poll_rh_status
+  usb_hcd_resume_root_hub
+  usb_hcds_loaded
+  usb_hcd_unlink_urb_from_ep
+  usb_root_hub_lost_power
+
+# required by ohci-pci.ko
+  pci_dev_put
+  pci_get_slot
+  pci_match_id
+  usb_amd_prefetch_quirk
+  usb_amd_quirk_pll_check
+  usb_hcd_pci_pm_ops
+  usb_hcd_pci_probe
+  usb_hcd_pci_remove
+  usb_hcd_pci_shutdown
+
+# required by ohci-platform.ko
+  devm_reset_control_array_get
+  of_clk_get
+  usb_add_hcd
+  usb_create_hcd
+  usb_hcd_platform_shutdown
+  usb_put_hcd
+  usb_remove_hcd
+
+# required by phy-qcom-qmp.ko
+  devm_get_clk_from_child
+  __of_reset_control_get
+
+# required by phy-qcom-qusb2.ko
+  devm_nvmem_cell_get
+
+# required by phy-qcom-usb-hs.ko
+  extcon_get_edev_by_phandle
+  extcon_get_state
+  extcon_register_notifier
+  extcon_unregister_notifier
+
+# required by pinctrl-msm.ko
+  device_property_read_u16_array
+  gpiochip_line_is_valid
+  gpiochip_lock_as_irq
+  gpiochip_unlock_as_irq
+  handle_bad_irq
+  handle_fasteoi_ack_irq
+  handle_fasteoi_irq
+  module_put
+  pinctrl_force_default
+  pinctrl_force_sleep
+  pm_power_off
+  register_restart_handler
+  try_module_get
+  unregister_restart_handler
+
+# required by pinctrl-spmi-gpio.ko
+  irq_chip_ack_parent
+  of_irq_find_parent
+
+# required by pinctrl-spmi-mpp.ko
+  platform_irq_count
+
+# required by pm8941-pwrkey.ko
+  devm_input_allocate_device
+  input_event
+  input_register_device
+  input_set_capability
+
+# required by q6asm-dai.ko
+  snd_dma_alloc_pages
+  snd_dma_free_pages
+  snd_pcm_hw_constraint_integer
+  snd_pcm_hw_constraint_list
+  snd_pcm_hw_constraint_minmax
+  snd_pcm_hw_constraint_step
+  snd_pcm_period_elapsed
+  snd_pcm_set_managed_buffer_all
+  snd_soc_new_compress
+  snd_soc_set_runtime_hwparams
+
+# required by qcom-cpufreq-hw.ko
+  cpufreq_cpu_get_raw
+  cpufreq_enable_boost_support
+  cpufreq_freq_attr_scaling_available_freqs
+  cpufreq_freq_attr_scaling_boost_freqs
+  cpufreq_generic_frequency_table_verify
+  cpufreq_get_driver_data
+  cpufreq_register_driver
+  cpufreq_unregister_driver
+  cpu_scale
+  dev_pm_opp_adjust_voltage
+  dev_pm_opp_disable
+  dev_pm_opp_enable
+  dev_pm_opp_of_add_table
+  dev_pm_opp_of_cpumask_remove_table
+  dev_pm_opp_of_register_em
+  dev_pm_opp_remove_all_dynamic
+  dev_pm_opp_set_sharing_cpus
+  get_cpu_device
+  of_get_cpu_node
+  policy_has_boost_freq
+  system_highpri_wq
+  topology_set_thermal_pressure
+
+# required by qcom-pdc.ko
+  irq_chip_get_parent_state
+  irq_chip_retrigger_hierarchy
+  irq_domain_alloc_irqs_parent
+  irq_domain_create_hierarchy
+  irq_domain_disconnect_hierarchy
+  irq_domain_set_hwirq_and_chip
+  irq_domain_update_bus_token
+  platform_irqchip_probe
+
+# required by qcom-pmic-typec.ko
+  dev_fwnode
+  fwnode_handle_put
+  fwnode_property_read_string
+  fwnode_usb_role_switch_get
+  typec_find_port_data_role
+  typec_find_port_power_role
+  typec_register_port
+  typec_set_orientation
+  typec_unregister_port
+  usb_role_switch_put
+  usb_role_switch_set_role
+
+# required by qcom-rpmh-regulator.ko
+  regulator_list_voltage_linear_range
+
+# required by qcom-scm.ko
+  __arm_smccc_smc
+  __cpu_present_mask
+  kimage_voffset
+
+# required by qcom-spmi-adc-tm5.ko
+  devm_of_iio_channel_get_by_name
+
+# required by qcom-spmi-adc5.ko
+  devm_iio_device_alloc
+  __devm_iio_device_register
+
+# required by qcom-spmi-pmic.ko
+  __spmi_driver_register
+
+# required by qcom-spmi-temp-alarm.ko
+  devm_iio_channel_get
+  of_thermal_get_ntrips
+  of_thermal_get_trip_points
+  of_thermal_is_trip_valid
+
+# required by qcom-wdt.ko
+  platform_get_irq_optional
+
+# required by qcom_aoss.ko
+  clk_hw_unregister
+  devm_thermal_of_cooling_device_register
+  pm_genpd_remove
+
+# required by qcom_common.ko
+  rproc_coredump_add_segment
+  rproc_coredump_using_sections
+  srcu_init_notifier_head
+  srcu_notifier_call_chain
+  srcu_notifier_chain_register
+  srcu_notifier_chain_unregister
+
+# required by qcom_glink.ko
+  device_add_groups
+
+# required by qcom_hwspinlock.ko
+  devm_hwspin_lock_register
+
+# required by qcom_pil_info.ko
+  of_find_compatible_node
+
+# required by qcom_q6v5.ko
+  devm_qcom_smem_state_get
+  qcom_smem_state_update_bits
+  rproc_report_crash
+
+# required by qcom_q6v5_wcss.ko
+  rproc_elf_get_boot_addr
+
+# required by qcom_rpmh.ko
+  bitmap_find_next_zero_area_off
+  __bitmap_set
+  cpu_pm_register_notifier
+  _raw_spin_trylock
+
+# required by qcom_spmi-regulator.ko
+  smp_call_function_single
+
+# required by qcom_sysmon.ko
+  rproc_get_by_child
+  try_wait_for_completion
+
+# required by qcom_tsens.ko
+  debugfs_lookup
+
+# required by qcom_usb_vbus-regulator.ko
+  regulator_get_current_limit_regmap
+  regulator_set_current_limit_regmap
+
+# required by qrtr-tun.ko
+  _copy_to_iter
+
+# required by qrtr.ko
+  autoremove_wake_function
+  datagram_poll
+  do_wait_intr_irq
+  get_user_ifreq
+  lock_sock_nested
+  proto_register
+  proto_unregister
+  put_user_ifreq
+  radix_tree_iter_delete
+  refcount_dec_and_mutex_lock
+  release_sock
+  sk_alloc
+  skb_copy_datagram_iter
+  skb_free_datagram
+  __skb_pad
+  skb_recv_datagram
+  skb_set_owner_w
+  sk_error_report
+  sock_alloc_send_skb
+  sock_gettstamp
+  sock_init_data
+  sock_no_accept
+  sock_no_listen
+  sock_no_mmap
+  sock_no_sendpage
+  sock_no_shutdown
+  sock_no_socketpair
+  sock_queue_rcv_skb
+  sock_register
+  sock_unregister
+  __xa_alloc
+  __xa_insert
+  xa_load
+
+# required by reboot-mode.ko
+  devres_add
+  __devres_alloc_node
+  devres_free
+  devres_release
+
+# required by regmap-spmi.ko
+  spmi_ext_register_read
+  spmi_ext_register_readl
+  spmi_ext_register_write
+  spmi_ext_register_writel
+  spmi_register_read
+  spmi_register_write
+  spmi_register_zero_write
+
+# required by rmtfs_mem.ko
+  alloc_chrdev_region
+
+# required by rpmsg_ns.ko
+  rpmsg_create_channel
+  rpmsg_create_ept
+  rpmsg_release_channel
+
+# required by rtc-pm8xxx.ko
+  devm_request_any_context_irq
+  devm_rtc_allocate_device
+  __devm_rtc_register_device
+  rtc_time64_to_tm
+  rtc_tm_to_time64
+  rtc_update_irq
+
+# required by sdhci-msm.ko
+  mmc_of_parse
+  mmc_regulator_get_supply
+  mmc_regulator_set_ocr
+  mmc_regulator_set_vqmmc
+  mmc_send_tuning
+  regulator_is_supported_voltage
+  __reset_control_get
+  __sdhci_add_host
+  sdhci_add_host
+  sdhci_cleanup_host
+  sdhci_cqe_disable
+  sdhci_cqe_enable
+  sdhci_cqe_irq
+  sdhci_enable_clk
+  sdhci_get_property
+  sdhci_pltfm_free
+  sdhci_pltfm_init
+  sdhci_remove_host
+  sdhci_reset
+  sdhci_set_bus_width
+  sdhci_set_power_noreg
+  __sdhci_set_timeout
+  sdhci_setup_host
+
+# required by slim-qcom-ngd-ctrl.ko
+  platform_device_add
+  platform_device_alloc
+
+# required by smem.ko
+  hwspin_lock_free
+  hwspin_lock_request_specific
+  __hwspin_lock_timeout
+  __hwspin_unlock
+  of_hwspin_lock_get_id
+
+# required by snd-soc-hdmi-codec.ko
+  snd_ctl_add
+  snd_ctl_new1
+  snd_pcm_add_chmap_ctls
+  snd_pcm_create_iec958_consumer_default
+  snd_pcm_fill_iec958_consumer
+  snd_pcm_fill_iec958_consumer_hw_params
+  snd_pcm_hw_constraint_eld
+
+# required by snd-soc-lpass-va-macro.ko
+  dapm_regulator_event
+  regcache_sync_region
+
+# required by snd-soc-qcom-common.ko
+  snd_soc_dai_link_set_capabilities
+  snd_soc_of_get_dai_link_codecs
+  snd_soc_of_get_dai_name
+  snd_soc_of_parse_audio_routing
+  snd_soc_of_parse_aux_devs
+  snd_soc_of_parse_card_name
+
+# required by snd-soc-rt5663.ko
+  regcache_cache_bypass
+  snd_soc_dapm_disable_pin
+  snd_soc_dapm_force_enable_pin
+  snd_soc_dapm_new_controls
+  snd_soc_dapm_sync
+
+# required by snd-soc-sdm845.ko
+  snd_jack_set_key
+  snd_soc_card_jack_new
+  snd_soc_component_set_jack
+  snd_soc_dai_get_channel_map
+  snd_soc_dai_set_channel_map
+  snd_soc_dai_set_tdm_slot
+
+# required by snd-soc-wcd9335.ko
+  kmemdup_nul
+  strnstr
+
+# required by snd-soc-wcd934x.ko
+  kstrndup
+
+# required by socinfo.ko
+  add_device_randomness
+  soc_device_register
+  soc_device_unregister
+
+# required by soundwire-bus.ko
+  devm_device_add_group
+  devm_device_add_groups
+  dev_pm_domain_attach
+  fwnode_property_present
+  fwnode_property_read_u32_array
+  pm_generic_runtime_resume
+  pm_generic_runtime_suspend
+
+# required by spi-geni-qcom.ko
+  geni_se_clk_freq_match
+  geni_se_get_qup_hw_version
+
+# required by spi-pl022.ko
+  amba_driver_register
+  amba_driver_unregister
+  amba_release_regions
+  amba_request_regions
+  __dma_request_channel
+  loops_per_jiffy
+  pinctrl_pm_select_idle_state
+  spi_delay_exec
+  spi_finalize_current_message
+  spi_get_next_queued_message
+
+# required by spi-qcom-qspi.ko
+  icc_disable
+  icc_enable
+
+# required by spmi-pmic-arb.ko
+  irq_domain_set_info
+  spmi_controller_add
+  spmi_controller_alloc
+  spmi_controller_remove
+
+# required by system_heap.ko
+  dmabuf_page_pool_alloc
+  dmabuf_page_pool_create
+  dmabuf_page_pool_destroy
+  dmabuf_page_pool_free
+  dma_heap_add
+  dma_heap_get_dev
+  dma_heap_get_name
+  dma_sync_sg_for_cpu
+  dma_sync_sg_for_device
+  __sg_page_iter_next
+
+# required by ufs_qcom.ko
+  phy_set_mode_ext
+  ufshcd_dme_configure_adapt
+  ufshcd_dme_get_attr
+  ufshcd_dme_set_attr
+  ufshcd_dump_regs
+  ufshcd_get_local_unipro_ver
+  ufshcd_get_pwr_dev_param
+  ufshcd_init_pwr_dev_param
+  ufshcd_pltfrm_init
+  ufshcd_pltfrm_shutdown
+  ufshcd_remove
+  ufshcd_resume_complete
+  ufshcd_runtime_resume
+  ufshcd_runtime_suspend
+  ufshcd_suspend_prepare
+  ufshcd_system_freeze
+  ufshcd_system_restore
+  ufshcd_system_resume
+  ufshcd_system_suspend
+  ufshcd_system_thaw
+
+# required by ulpi.ko
+  of_device_modalias
+  of_device_request_module
+  __request_module
+
+# required by wcd934x.ko
+  mfd_add_devices
+  mfd_remove_devices
+
+# required by zram.ko
+  __alloc_percpu
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_start_io_acct
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  crypto_alloc_base
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_has_alg
+  del_gendisk
+  device_add_disk
+  disk_end_io_acct
+  disk_start_io_acct
+  down_write
+  flush_dcache_page
+  fsync_bdev
+  __get_free_pages
+  __init_rwsem
+  kstrtou16
+  kstrtoull
+  memset64
+  page_endio
+  __register_blkdev
+  set_capacity
+  set_capacity_and_notify
+  sysfs_streq
+  unregister_blkdev
+  up_write
+  zs_compact
+  zs_create_pool
+  zs_destroy_pool
+  zs_free
+  zs_get_total_pages
+  zs_huge_class_size
+  zs_malloc
+  zs_map_object
+  zs_pool_stats
+  zs_unmap_object
+
+# required by zsmalloc.ko
+  alloc_anon_inode
+  __alloc_pages
+  __ClearPageMovable
+  contig_page_data
+  dec_zone_page_state
+  inc_zone_page_state
+  init_pseudo
+  iput
+  kern_mount
+  kern_unmount
+  kill_anon_super
+  page_mapping
+  __put_page
+  __SetPageMovable
+  unlock_page
+  wait_on_page_bit
+
+# preserved by --additions-only
+  drm_connector_init_with_ddc
+  led_classdev_register_ext
+  led_classdev_unregister
+  led_colors
+  led_set_brightness
+  of_clk_get_by_name
+  snd_soc_get_volsw_sx
+  snd_soc_info_volsw_sx
+  snd_soc_put_volsw_sx
+  stpcpy
diff --git a/android/abi_gki_aarch64_exynos b/android/abi_gki_aarch64_exynos
new file mode 100644
index 0000000..177a147
--- /dev/null
+++ b/android/abi_gki_aarch64_exynos
@@ -0,0 +1,2383 @@
+[abi_symbol_list]
+  activate_task
+  add_cpu
+  add_timer
+  add_timer_on
+  adjust_managed_page_count
+  alarm_cancel
+  alarm_init
+  alarm_start_relative
+  alloc_anon_inode
+  alloc_chrdev_region
+  alloc_netdev_mqs
+  __alloc_pages
+  __alloc_percpu
+  __alloc_skb
+  alloc_workqueue
+  amba_driver_register
+  amba_driver_unregister
+  android_debug_symbol
+  android_rvh_probe_register
+  anon_inode_getfd
+  anon_inode_getfile
+  __arch_clear_user
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arch_freq_scale
+  arch_timer_read_counter
+  argv_free
+  argv_split
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  __arm_smccc_hvc
+  __arm_smccc_smc
+  atomic_notifier_call_chain
+  atomic_notifier_chain_register
+  atomic_notifier_chain_unregister
+  autoremove_wake_function
+  available_idle_cpu
+  backlight_device_register
+  backlight_device_unregister
+  balance_push_callback
+  bcmp
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_start_io_acct
+  __bitmap_andnot
+  __bitmap_clear
+  __bitmap_complement
+  bitmap_free
+  __bitmap_or
+  bitmap_parse
+  bitmap_parselist
+  bitmap_print_to_pagebuf
+  __bitmap_set
+  __bitmap_shift_left
+  bitmap_to_arr32
+  __bitmap_weight
+  __bitmap_xor
+  bitmap_zalloc
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blk_ksm_init
+  blk_ksm_reprogram_all_keys
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  blocking_notifier_call_chain
+  blocking_notifier_chain_register
+  blocking_notifier_chain_unregister
+  bpf_trace_run10
+  bpf_trace_run11
+  bpf_trace_run12
+  bpf_trace_run1
+  bpf_trace_run2
+  bpf_trace_run3
+  bpf_trace_run4
+  bpf_trace_run5
+  bpf_trace_run6
+  bpf_trace_run7
+  bpf_trace_run8
+  bpf_trace_run9
+  bsearch
+  build_skb
+  bus_find_device
+  bus_for_each_dev
+  bus_register
+  bus_register_notifier
+  bus_set_iommu
+  bus_unregister
+  bus_unregister_notifier
+  cache_line_size
+  call_rcu
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  cancel_work_sync
+  capable
+  cdev_add
+  cdev_alloc
+  cdev_del
+  cdev_device_add
+  cdev_device_del
+  cdev_init
+  __cfi_slowpath_diag
+  cgroup_taskset_first
+  cgroup_taskset_next
+  __check_object_size
+  check_preempt_curr
+  __class_create
+  class_create_file_ns
+  class_destroy
+  class_find_device
+  __class_register
+  class_unregister
+  clear_page
+  __ClearPageMovable
+  clk_bulk_disable
+  clk_bulk_enable
+  clk_bulk_prepare
+  clk_bulk_unprepare
+  clk_disable
+  clk_enable
+  clk_get
+  __clk_get_hw
+  clk_get_rate
+  clk_hw_get_name
+  clk_hw_get_parent
+  clk_hw_get_rate
+  __clk_is_enabled
+  clk_prepare
+  clk_put
+  clk_register
+  clk_register_clkdev
+  clk_register_fixed_factor
+  clk_register_fixed_rate
+  clk_register_gate
+  clk_set_parent
+  clk_set_rate
+  clk_unprepare
+  clockevents_config_and_register
+  clocks_calc_mult_shift
+  __clocksource_register_scale
+  cma_alloc
+  cma_release
+  complete
+  complete_all
+  complete_and_exit
+  completion_done
+  component_add
+  component_bind_all
+  component_del
+  component_master_add_with_match
+  component_master_del
+  component_match_add_release
+  component_unbind_all
+  config_ep_by_speed
+  config_group_init_type_name
+  console_lock
+  console_printk
+  console_stop
+  console_suspend_enabled
+  console_trylock
+  console_unlock
+  __const_udelay
+  consume_skb
+  contig_page_data
+  copy_from_kernel_nofault
+  __cpu_active_mask
+  cpu_all_bits
+  cpu_bit_bitmap
+  cpufreq_add_update_util_hook
+  cpufreq_cpu_get
+  cpufreq_cpu_put
+  cpufreq_disable_fast_switch
+  cpufreq_driver_fast_switch
+  __cpufreq_driver_target
+  cpufreq_enable_fast_switch
+  cpufreq_freq_transition_begin
+  cpufreq_freq_transition_end
+  cpufreq_frequency_table_get_index
+  cpufreq_generic_attr
+  cpufreq_get_policy
+  cpufreq_quick_get
+  cpufreq_quick_get_max
+  cpufreq_register_driver
+  cpufreq_register_governor
+  cpufreq_register_notifier
+  cpufreq_remove_update_util_hook
+  cpufreq_this_cpu_can_update
+  cpufreq_unregister_notifier
+  cpu_hotplug_disable
+  cpu_hotplug_enable
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  __cpuhp_setup_state_cpuslocked
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  cpuhp_tasks_frozen
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpuidle_get_cpu_driver
+  cpuidle_governor_latency_req
+  cpuidle_pause_and_lock
+  cpuidle_register_governor
+  cpuidle_resume_and_unlock
+  cpumask_next
+  cpumask_next_and
+  cpu_number
+  __cpu_online_mask
+  cpu_pm_register_notifier
+  __cpu_possible_mask
+  cpu_scale
+  cpus_read_lock
+  cpus_read_unlock
+  cpu_subsys
+  cpu_topology
+  crc32_le
+  crc_ccitt
+  crypto_alloc_base
+  crypto_alloc_shash
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_destroy_tfm
+  crypto_has_alg
+  crypto_shash_digest
+  crypto_shash_final
+  crypto_shash_update
+  _ctype
+  dapm_pinctrl_event
+  dapm_regulator_event
+  deactivate_task
+  debugfs_attr_read
+  debugfs_attr_write
+  debugfs_create_blob
+  debugfs_create_bool
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_create_file_size
+  debugfs_create_symlink
+  debugfs_create_u32
+  debugfs_create_x32
+  debugfs_create_x64
+  debugfs_remove
+  debugfs_rename
+  dec_zone_page_state
+  default_llseek
+  deferred_free
+  delayed_work_timer_fn
+  del_gendisk
+  del_timer
+  del_timer_sync
+  desc_to_gpio
+  destroy_workqueue
+  _dev_alert
+  dev_alloc_name
+  __dev_change_net_namespace
+  dev_close
+  _dev_crit
+  dev_driver_string
+  _dev_emerg
+  _dev_err
+  dev_err_probe
+  devfreq_add_device
+  devfreq_add_governor
+  devfreq_get_devfreq_by_phandle
+  devfreq_monitor_resume
+  devfreq_monitor_start
+  devfreq_monitor_stop
+  devfreq_monitor_suspend
+  devfreq_recommended_opp
+  devfreq_register_opp_notifier
+  devfreq_remove_device
+  devfreq_remove_governor
+  devfreq_resume_device
+  devfreq_suspend_device
+  devfreq_unregister_opp_notifier
+  devfreq_update_interval
+  __dev_get_by_index
+  dev_get_by_index
+  dev_get_by_name
+  dev_get_regmap
+  device_add
+  device_add_disk
+  device_create
+  device_create_bin_file
+  device_create_file
+  device_create_managed_software_node
+  device_del
+  device_destroy
+  device_for_each_child
+  device_get_child_node_count
+  device_get_dma_attr
+  device_get_next_child_node
+  device_initialize
+  device_init_wakeup
+  device_link_add
+  device_link_del
+  device_property_present
+  device_property_read_string_array
+  device_property_read_u32_array
+  device_register
+  device_remove_file
+  device_rename
+  device_set_wakeup_enable
+  device_show_bool
+  device_show_int
+  device_store_bool
+  device_store_int
+  device_unregister
+  device_wakeup_enable
+  _dev_info
+  __dev_kfree_skb_any
+  devm_add_action
+  devm_backlight_device_register
+  devm_backlight_device_unregister
+  devm_clk_bulk_get_all
+  devm_clk_get
+  devm_clk_get_optional
+  devm_clk_put
+  devm_devfreq_register_notifier
+  devm_devfreq_unregister_notifier
+  __devm_drm_dev_alloc
+  devm_drm_panel_bridge_add_typed
+  devm_extcon_dev_allocate
+  devm_extcon_dev_register
+  devm_free_irq
+  devm_gen_pool_create
+  devm_gpiochip_add_data_with_key
+  devm_gpiod_get
+  devm_gpiod_get_index
+  devm_gpiod_get_optional
+  devm_gpio_request_one
+  devm_hwrng_register
+  devm_i2c_new_dummy_device
+  devm_iio_device_alloc
+  __devm_iio_device_register
+  devm_input_allocate_device
+  devm_ioremap
+  devm_ioremap_resource
+  devm_iounmap
+  __devm_irq_alloc_descs
+  devm_kasprintf
+  devm_kfree
+  devm_kmalloc
+  devm_kmemdup
+  devm_krealloc
+  devm_kstrdup
+  devm_led_classdev_register_ext
+  devm_mfd_add_devices
+  __devm_of_phy_provider_register
+  devm_phy_create
+  devm_phy_get
+  devm_phy_put
+  devm_pinctrl_get
+  devm_pinctrl_put
+  devm_pinctrl_register
+  devm_platform_ioremap_resource
+  devm_platform_ioremap_resource_byname
+  __devm_regmap_init_i2c
+  __devm_regmap_init_mmio_clk
+  devm_regulator_bulk_get
+  devm_regulator_get
+  devm_regulator_get_optional
+  devm_regulator_register
+  __devm_release_region
+  __devm_request_region
+  devm_request_threaded_irq
+  __devm_reset_control_get
+  devm_rtc_device_register
+  devm_snd_dmaengine_pcm_register
+  devm_snd_soc_register_card
+  devm_snd_soc_register_component
+  devm_thermal_zone_of_sensor_register
+  devm_usb_get_phy_by_phandle
+  _dev_notice
+  dev_pm_opp_add
+  dev_pm_opp_disable
+  dev_pm_opp_find_freq_ceil
+  dev_pm_opp_find_freq_ceil_by_volt
+  dev_pm_opp_find_freq_exact
+  dev_pm_opp_find_freq_floor
+  dev_pm_opp_get_freq
+  dev_pm_opp_get_opp_count
+  dev_pm_opp_get_voltage
+  dev_pm_opp_of_add_table
+  dev_pm_opp_of_register_em
+  dev_pm_opp_of_remove_table
+  dev_pm_opp_put
+  dev_pm_opp_put_regulators
+  dev_pm_opp_set_regulators
+  dev_pm_qos_add_notifier
+  dev_pm_qos_add_request
+  dev_pm_qos_read_value
+  dev_pm_qos_remove_request
+  dev_pm_qos_update_request
+  dev_queue_xmit
+  devres_add
+  __devres_alloc_node
+  devres_free
+  devres_release
+  dev_set_name
+  dev_vprintk_emit
+  _dev_warn
+  disable_irq
+  disable_irq_nosync
+  disk_end_io_acct
+  disk_start_io_acct
+  dma_alloc_attrs
+  dma_async_device_register
+  dma_async_device_unregister
+  dma_async_tx_descriptor_init
+  dma_buf_attach
+  dma_buf_begin_cpu_access
+  dma_buf_begin_cpu_access_partial
+  dma_buf_detach
+  dma_buf_dynamic_attach
+  dma_buf_end_cpu_access
+  dma_buf_end_cpu_access_partial
+  dma_buf_export
+  dma_buf_fd
+  dma_buf_get
+  dma_buf_get_flags
+  dma_buf_map_attachment
+  dma_buf_mmap
+  dma_buf_move_notify
+  dmabuf_page_pool_alloc
+  dmabuf_page_pool_create
+  dmabuf_page_pool_destroy
+  dmabuf_page_pool_free
+  dma_buf_pin
+  dma_buf_put
+  dma_buf_unmap_attachment
+  dma_buf_unpin
+  dma_buf_vmap
+  dma_buf_vunmap
+  dmaengine_unmap_put
+  dma_fence_add_callback
+  dma_fence_array_create
+  dma_fence_chain_init
+  dma_fence_chain_ops
+  dma_fence_chain_walk
+  dma_fence_context_alloc
+  dma_fence_default_wait
+  dma_fence_enable_sw_signaling
+  dma_fence_free
+  dma_fence_get_status
+  dma_fence_get_stub
+  dma_fence_init
+  dma_fence_release
+  dma_fence_remove_callback
+  dma_fence_signal
+  dma_fence_signal_locked
+  dma_fence_wait_any_timeout
+  dma_fence_wait_timeout
+  dma_free_attrs
+  dma_get_required_mask
+  dma_get_slave_caps
+  dma_get_slave_channel
+  dma_heap_add
+  dma_heap_buffer_alloc
+  dma_heap_buffer_free
+  dma_heap_find
+  dma_heap_get_dev
+  dma_heap_get_drvdata
+  dma_heap_get_name
+  dma_heap_put
+  dmam_alloc_attrs
+  dma_map_page_attrs
+  dma_map_resource
+  dma_map_sg_attrs
+  dma_map_sgtable
+  dmam_free_coherent
+  dma_mmap_attrs
+  dma_release_channel
+  dma_request_chan
+  dma_resv_add_excl_fence
+  dma_resv_add_shared_fence
+  dma_resv_get_fences
+  dma_resv_reserve_shared
+  dma_resv_test_signaled
+  dma_resv_wait_timeout
+  dma_set_coherent_mask
+  dma_set_mask
+  dma_sync_sg_for_cpu
+  dma_sync_sg_for_device
+  dma_sync_single_for_cpu
+  dma_sync_single_for_device
+  dma_unmap_page_attrs
+  dma_unmap_resource
+  dma_unmap_sg_attrs
+  __do_once_done
+  __do_once_start
+  do_SAK
+  do_trace_netlink_extack
+  double_rq_lock
+  do_wait_intr
+  down
+  downgrade_write
+  down_interruptible
+  down_read
+  down_read_killable
+  down_read_trylock
+  down_trylock
+  down_write
+  down_write_trylock
+  d_path
+  dql_completed
+  dql_reset
+  drain_workqueue
+  driver_register
+  driver_unregister
+  drm_add_edid_modes
+  drm_any_plane_has_format
+  drm_aperture_remove_conflicting_pci_framebuffers
+  drm_atomic_add_affected_connectors
+  drm_atomic_add_affected_planes
+  drm_atomic_bridge_chain_disable
+  drm_atomic_commit
+  drm_atomic_get_connector_state
+  drm_atomic_get_crtc_state
+  drm_atomic_get_plane_state
+  drm_atomic_get_private_obj_state
+  drm_atomic_helper_check
+  drm_atomic_helper_check_modeset
+  drm_atomic_helper_check_planes
+  drm_atomic_helper_check_plane_state
+  drm_atomic_helper_cleanup_planes
+  drm_atomic_helper_commit
+  drm_atomic_helper_commit_cleanup_done
+  drm_atomic_helper_commit_duplicated_state
+  drm_atomic_helper_commit_hw_done
+  drm_atomic_helper_commit_modeset_disables
+  drm_atomic_helper_commit_modeset_enables
+  drm_atomic_helper_commit_planes
+  drm_atomic_helper_commit_tail
+  __drm_atomic_helper_connector_destroy_state
+  drm_atomic_helper_connector_destroy_state
+  __drm_atomic_helper_connector_duplicate_state
+  drm_atomic_helper_connector_duplicate_state
+  drm_atomic_helper_connector_reset
+  __drm_atomic_helper_crtc_destroy_state
+  drm_atomic_helper_crtc_destroy_state
+  __drm_atomic_helper_crtc_duplicate_state
+  drm_atomic_helper_crtc_duplicate_state
+  drm_atomic_helper_crtc_reset
+  drm_atomic_helper_disable_plane
+  drm_atomic_helper_fake_vblank
+  drm_atomic_helper_page_flip
+  __drm_atomic_helper_plane_destroy_state
+  drm_atomic_helper_plane_destroy_state
+  __drm_atomic_helper_plane_duplicate_state
+  drm_atomic_helper_plane_duplicate_state
+  drm_atomic_helper_plane_reset
+  drm_atomic_helper_prepare_planes
+  __drm_atomic_helper_private_obj_duplicate_state
+  drm_atomic_helper_set_config
+  drm_atomic_helper_setup_commit
+  drm_atomic_helper_swap_state
+  drm_atomic_helper_update_plane
+  drm_atomic_helper_wait_for_dependencies
+  drm_atomic_normalize_zpos
+  drm_atomic_private_obj_fini
+  drm_atomic_private_obj_init
+  drm_atomic_set_crtc_for_plane
+  drm_atomic_set_fb_for_plane
+  drm_atomic_state_alloc
+  drm_atomic_state_clear
+  __drm_atomic_state_free
+  drm_bridge_add
+  drm_bridge_attach
+  drm_bridge_chain_mode_set
+  drm_bridge_remove
+  drm_calc_timestamping_constants
+  drm_compat_ioctl
+  drm_connector_attach_dp_subconnector_property
+  drm_connector_attach_encoder
+  drm_connector_cleanup
+  drm_connector_init
+  drm_connector_init_with_ddc
+  drm_connector_list_iter_begin
+  drm_connector_list_iter_end
+  drm_connector_list_iter_next
+  drm_connector_register
+  drm_connector_unregister
+  drm_connector_update_edid_property
+  drm_crtc_add_crc_entry
+  drm_crtc_arm_vblank_event
+  drm_crtc_cleanup
+  __drm_crtc_commit_free
+  drm_crtc_enable_color_mgmt
+  drm_crtc_handle_vblank
+  drm_crtc_helper_set_config
+  drm_crtc_helper_set_mode
+  drm_crtc_init
+  drm_crtc_init_with_planes
+  drm_crtc_send_vblank_event
+  drm_crtc_vblank_count
+  drm_crtc_vblank_get
+  drm_crtc_vblank_helper_get_vblank_timestamp
+  drm_crtc_vblank_off
+  drm_crtc_vblank_on
+  drm_crtc_vblank_put
+  drm_crtc_wait_one_vblank
+  drm_cvt_mode
+  __drm_dbg
+  drm_detect_hdmi_monitor
+  drm_dev_alloc
+  drm_dev_dbg
+  drm_dev_enter
+  drm_dev_exit
+  drm_dev_printk
+  drm_dev_put
+  drm_dev_register
+  drm_dev_unplug
+  drm_dev_unregister
+  drm_display_mode_to_videomode
+  drm_dp_aux_init
+  drm_dp_aux_register
+  drm_dp_aux_unregister
+  drm_dp_bw_code_to_link_rate
+  drm_dp_channel_eq_ok
+  drm_dp_clock_recovery_ok
+  drm_dp_dpcd_read
+  drm_dp_dpcd_read_link_status
+  drm_dp_dpcd_write
+  drm_dp_get_adjust_request_pre_emphasis
+  drm_dp_get_adjust_request_voltage
+  drm_dp_link_rate_to_bw_code
+  drm_dp_link_train_channel_eq_delay
+  drm_dp_link_train_clock_recovery_delay
+  drm_dp_set_subconnector_property
+  drm_edid_header_is_valid
+  drm_edid_is_valid
+  drm_edid_to_sad
+  drm_edid_to_speaker_allocation
+  drm_encoder_cleanup
+  drm_encoder_init
+  __drm_err
+  drm_format_info
+  drm_framebuffer_cleanup
+  drm_framebuffer_init
+  drm_framebuffer_unregister_private
+  drm_gem_create_mmap_offset
+  drm_gem_dmabuf_mmap
+  drm_gem_dmabuf_release
+  drm_gem_dmabuf_vmap
+  drm_gem_dmabuf_vunmap
+  drm_gem_fb_begin_cpu_access
+  drm_gem_fb_create_handle
+  drm_gem_fb_destroy
+  drm_gem_handle_create
+  drm_gem_mmap
+  drm_gem_object_free
+  drm_gem_object_lookup
+  drm_gem_object_release
+  drm_gem_prime_export
+  drm_gem_prime_fd_to_handle
+  drm_gem_prime_handle_to_fd
+  drm_gem_prime_import_dev
+  drm_gem_prime_mmap
+  drm_gem_private_object_init
+  drm_gem_vm_close
+  drm_gem_vm_open
+  drm_get_edid
+  drm_get_format_info
+  drm_handle_vblank
+  drm_hdmi_avi_infoframe_from_display_mode
+  drm_hdmi_infoframe_set_hdr_metadata
+  drm_helper_connector_dpms
+  drm_helper_disable_unused_functions
+  drm_helper_force_disable_all
+  drm_helper_hpd_irq_event
+  drm_helper_mode_fill_fb_struct
+  drm_helper_probe_single_connector_modes
+  drm_helper_resume_force_mode
+  drm_ioctl
+  drm_is_current_master
+  drm_kms_helper_hotplug_event
+  drm_kms_helper_is_poll_worker
+  drm_kms_helper_poll_disable
+  drm_kms_helper_poll_enable
+  drm_kms_helper_poll_fini
+  drm_kms_helper_poll_init
+  drm_match_cea_mode
+  drm_mm_init
+  drm_mm_insert_node_in_range
+  drmm_mode_config_init
+  drm_mm_print
+  drm_mm_remove_node
+  drm_mm_reserve_node
+  drm_mm_takedown
+  drm_mode_config_cleanup
+  drm_mode_config_helper_resume
+  drm_mode_config_helper_suspend
+  drm_mode_config_reset
+  drm_mode_convert_to_umode
+  drm_mode_copy
+  drm_mode_create_scaling_mode_property
+  drm_mode_crtc_set_gamma_size
+  drm_mode_debug_printmodeline
+  drm_mode_destroy
+  drm_mode_duplicate
+  drm_mode_equal
+  drm_mode_is_420_only
+  drm_mode_match
+  drm_mode_probed_add
+  drm_modeset_acquire_fini
+  drm_modeset_acquire_init
+  drm_modeset_backoff
+  drm_mode_set_crtcinfo
+  drm_modeset_drop_locks
+  drm_modeset_lock
+  drm_modeset_lock_all
+  drm_modeset_lock_all_ctx
+  drm_mode_set_name
+  drm_modeset_unlock
+  drm_modeset_unlock_all
+  drm_mode_sort
+  drm_mode_vrefresh
+  drm_object_attach_property
+  drm_open
+  drm_panel_add
+  drm_panel_disable
+  drm_panel_enable
+  drm_panel_get_modes
+  drm_panel_init
+  drm_panel_prepare
+  drm_panel_remove
+  drm_panel_unprepare
+  drm_plane_cleanup
+  drm_plane_create_alpha_property
+  drm_plane_create_blend_mode_property
+  drm_plane_create_rotation_property
+  drm_plane_create_zpos_property
+  drm_poll
+  drm_prime_gem_destroy
+  drm_prime_pages_to_sg
+  drm_prime_sg_to_dma_addr_array
+  drm_print_bits
+  drm_printf
+  __drm_printfn_info
+  __drm_printfn_seq_file
+  drm_property_blob_get
+  drm_property_blob_put
+  drm_property_create
+  drm_property_create_bitmask
+  drm_property_create_blob
+  drm_property_create_bool
+  drm_property_create_enum
+  drm_property_create_range
+  drm_property_create_signed_range
+  drm_property_lookup_blob
+  drm_property_replace_blob
+  __drm_puts_seq_file
+  drm_read
+  drm_rect_clip_scaled
+  drm_rect_intersect
+  drm_release
+  drm_rotation_simplify
+  drm_set_preferred_mode
+  drm_simple_encoder_init
+  drm_syncobj_add_point
+  drm_syncobj_create
+  drm_syncobj_find
+  drm_syncobj_find_fence
+  drm_syncobj_free
+  drm_syncobj_get_fd
+  drm_syncobj_get_handle
+  drm_syncobj_replace_fence
+  drm_universal_plane_init
+  drm_vblank_init
+  drm_wait_one_vblank
+  drm_writeback_cleanup_job
+  drm_writeback_connector_init
+  drm_writeback_queue_job
+  drm_writeback_signal_completion
+  dump_backtrace
+  dump_stack
+  dw_handle_msi_irq
+  dw_pcie_host_init
+  dw_pcie_own_conf_map_bus
+  dw_pcie_read
+  dw_pcie_setup_rc
+  dw_pcie_write
+  __dynamic_pr_debug
+  enable_irq
+  ether_setup
+  eth_type_trans
+  event_triggers_call
+  extcon_get_state
+  extcon_set_state_sync
+  fb_mode_option
+  __fdget
+  fd_install
+  fget
+  _find_first_bit
+  _find_first_zero_bit
+  find_get_pid
+  _find_next_bit
+  find_task_by_vpid
+  __find_vma
+  find_vpid
+  finish_wait
+  firmware_request_nowarn
+  flush_dcache_page
+  flush_delayed_work
+  flush_work
+  flush_workqueue
+  fput
+  free_irq
+  free_netdev
+  __free_pages
+  free_pages
+  free_percpu
+  freezing_slow_path
+  freq_qos_add_request
+  freq_qos_remove_request
+  freq_qos_update_request
+  fsync_bdev
+  fwnode_get_name
+  fwnode_property_read_string
+  fwnode_property_read_u32_array
+  gcd
+  generic_file_llseek
+  generic_handle_domain_irq
+  generic_handle_irq
+  genlmsg_multicast_allns
+  genlmsg_put
+  genl_register_family
+  genl_unregister_family
+  gen_pool_add_owner
+  gen_pool_alloc_algo_owner
+  gen_pool_avail
+  gen_pool_create
+  gen_pool_destroy
+  gen_pool_first_fit_align
+  gen_pool_free_owner
+  gen_pool_has_addr
+  gen_pool_size
+  get_cpu_device
+  get_cpu_idle_time
+  get_device
+  __get_free_pages
+  get_net_ns_by_fd
+  get_net_ns_by_pid
+  get_options
+  get_pid_task
+  get_random_bytes
+  get_random_u32
+  __get_task_comm
+  get_task_mm
+  get_thermal_instance
+  get_unused_fd_flags
+  get_user_pages
+  get_user_pages_fast
+  get_zeroed_page
+  gic_nonsecure_priorities
+  gpiochip_add_data_with_key
+  gpiochip_add_pin_range
+  gpiochip_generic_free
+  gpiochip_generic_request
+  gpiochip_get_data
+  gpiochip_lock_as_irq
+  gpiochip_remove
+  gpiochip_unlock_as_irq
+  gpiod_cansleep
+  gpiod_direction_input
+  gpiod_direction_output
+  gpiod_direction_output_raw
+  gpiod_get_raw_value
+  gpiod_get_raw_value_cansleep
+  gpiod_get_value_cansleep
+  gpiod_set_raw_value
+  gpiod_set_value
+  gpiod_set_value_cansleep
+  gpiod_to_irq
+  gpio_free
+  gpio_request
+  gpio_request_one
+  gpio_to_desc
+  gserial_alloc_line
+  gserial_connect
+  gserial_disconnect
+  handle_edge_irq
+  handle_level_irq
+  handle_nested_irq
+  handle_simple_irq
+  handle_sysrq
+  hdmi_avi_infoframe_pack
+  hdmi_drm_infoframe_pack_only
+  hex_dump_to_buffer
+  housekeeping_cpumask
+  hrtimer_active
+  hrtimer_cancel
+  hrtimer_forward
+  __hrtimer_get_remaining
+  hrtimer_init
+  hrtimer_start_range_ns
+  hrtimer_try_to_cancel
+  i2c_adapter_type
+  i2c_add_adapter
+  i2c_add_numbered_adapter
+  i2c_bit_add_bus
+  i2c_bit_add_numbered_bus
+  i2c_bus_type
+  i2c_del_adapter
+  i2c_del_driver
+  i2c_for_each_dev
+  i2c_get_adapter
+  i2c_new_client_device
+  i2c_new_dummy_device
+  i2c_put_adapter
+  i2c_register_driver
+  i2c_smbus_read_byte_data
+  i2c_smbus_read_i2c_block_data
+  i2c_smbus_read_word_data
+  i2c_smbus_write_byte_data
+  i2c_smbus_write_i2c_block_data
+  i2c_smbus_write_word_data
+  i2c_smbus_xfer
+  i2c_transfer
+  i2c_transfer_buffer_flags
+  i2c_unregister_device
+  i2c_verify_client
+  i3c_device_do_priv_xfers
+  i3c_generic_ibi_alloc_pool
+  i3c_generic_ibi_free_pool
+  i3c_generic_ibi_get_free_slot
+  i3c_generic_ibi_recycle_slot
+  i3c_master_add_i3c_dev_locked
+  i3c_master_defslvs_locked
+  i3c_master_disec_locked
+  i3c_master_do_daa
+  i3c_master_enec_locked
+  i3c_master_entdaa_locked
+  i3c_master_get_free_addr
+  i3c_master_queue_ibi
+  i3c_master_register
+  i3c_master_set_info
+  i3c_master_unregister
+  ida_alloc_range
+  ida_destroy
+  ida_free
+  idr_alloc
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_get_next
+  idr_remove
+  idr_replace
+  ignore_console_lock_warning
+  iio_device_alloc
+  iio_device_free
+  __iio_device_register
+  iio_device_unregister
+  in4_pton
+  in6_pton
+  inc_zone_page_state
+  inet_csk_get_port
+  init_dummy_netdev
+  init_net
+  init_pseudo
+  __init_rwsem
+  __init_swait_queue_head
+  init_task
+  init_timer_key
+  init_uts_ns
+  init_wait_entry
+  __init_waitqueue_head
+  input_allocate_device
+  input_close_device
+  input_event
+  input_ff_create
+  input_free_device
+  input_mt_destroy_slots
+  input_mt_init_slots
+  input_mt_report_slot_state
+  input_open_device
+  input_register_device
+  input_register_handle
+  input_register_handler
+  input_set_abs_params
+  input_set_capability
+  input_unregister_device
+  input_unregister_handle
+  int_pow
+  int_sqrt
+  iomem_resource
+  iommu_alloc_resv_region
+  iommu_device_register
+  iommu_device_sysfs_add
+  iommu_device_sysfs_remove
+  iommu_device_unlink
+  iommu_device_unregister
+  iommu_dma_enable_best_fit_algo
+  iommu_fwspec_add_ids
+  iommu_fwspec_free
+  iommu_get_dma_cookie
+  iommu_get_domain_for_dev
+  iommu_group_alloc
+  iommu_group_for_each_dev
+  iommu_group_get
+  iommu_group_get_iommudata
+  iommu_group_set_iommudata
+  iommu_group_set_name
+  iommu_iova_to_phys
+  iommu_map
+  iommu_map_sg
+  iommu_put_dma_cookie
+  iommu_register_device_fault_handler
+  iommu_report_device_fault
+  iommu_unmap
+  iommu_unregister_device_fault_handler
+  __ioremap
+  iounmap
+  ip_send_check
+  iput
+  __irq_alloc_descs
+  irq_create_mapping_affinity
+  __irq_domain_add
+  irq_domain_get_irq_data
+  irq_domain_remove
+  irq_domain_set_info
+  irq_domain_xlate_onetwocell
+  irq_domain_xlate_twocell
+  irq_force_affinity
+  irq_get_irqchip_state
+  irq_get_irq_data
+  irq_modify_status
+  irq_of_parse_and_map
+  __irq_resolve_mapping
+  irq_set_affinity_hint
+  irq_set_chained_handler_and_data
+  irq_set_chip
+  irq_set_chip_and_handler_name
+  irq_set_chip_data
+  __irq_set_handler
+  irq_set_handler_data
+  irq_set_irqchip_state
+  irq_set_irq_wake
+  irq_to_desc
+  irq_work_queue
+  irq_work_sync
+  is_console_locked
+  is_dma_buf_file
+  is_vmalloc_addr
+  iterate_fd
+  jiffies_64_to_clock_t
+  jiffies64_to_msecs
+  jiffies
+  jiffies_to_msecs
+  jiffies_to_usecs
+  kasan_flag_enabled
+  kasprintf
+  kernel_kobj
+  kern_mount
+  kern_unmount
+  key_create_or_update
+  key_put
+  keyring_alloc
+  __kfifo_alloc
+  __kfifo_free
+  __kfifo_in
+  __kfifo_out
+  __kfifo_to_user
+  kfree
+  kfree_const
+  kfree_sensitive
+  kfree_skb
+  kfree_skb_list
+  kill_anon_super
+  kimage_voffset
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order_trace
+  kmem_cache_alloc
+  kmem_cache_alloc_trace
+  kmem_cache_create
+  kmem_cache_create_usercopy
+  kmem_cache_destroy
+  kmem_cache_free
+  kmemdup
+  kobject_add
+  kobject_create_and_add
+  kobject_del
+  kobject_get
+  kobject_init
+  kobject_init_and_add
+  kobject_put
+  kobject_uevent
+  kobject_uevent_env
+  krealloc
+  kstat
+  kstrdup
+  kstrdup_const
+  kstrndup
+  kstrtobool
+  kstrtobool_from_user
+  kstrtoint
+  kstrtoint_from_user
+  kstrtol_from_user
+  kstrtoll
+  kstrtou16
+  kstrtou8
+  kstrtouint
+  kstrtouint_from_user
+  kstrtoull
+  kstrtoull_from_user
+  kthread_bind
+  kthread_bind_mask
+  kthread_cancel_delayed_work_sync
+  kthread_cancel_work_sync
+  kthread_create_on_node
+  kthread_create_worker
+  kthread_delayed_work_timer_fn
+  kthread_destroy_worker
+  kthread_flush_work
+  __kthread_init_worker
+  kthread_mod_delayed_work
+  kthread_park
+  kthread_parkme
+  kthread_queue_work
+  kthread_should_park
+  kthread_should_stop
+  kthread_stop
+  kthread_unpark
+  kthread_worker_fn
+  ktime_get
+  ktime_get_coarse_with_offset
+  ktime_get_mono_fast_ns
+  ktime_get_raw
+  ktime_get_raw_ts64
+  ktime_get_real_seconds
+  ktime_get_real_ts64
+  ktime_get_ts64
+  ktime_get_with_offset
+  kvasprintf
+  kvfree
+  kvfree_call_rcu
+  kvmalloc_node
+  linkwatch_fire_event
+  __list_add_valid
+  __list_del_entry_valid
+  list_sort
+  llist_add_batch
+  __local_bh_enable_ip
+  __lock_page
+  loops_per_jiffy
+  match_string
+  memchr
+  memcmp
+  memcpy
+  __memcpy_fromio
+  __memcpy_toio
+  memdup_user
+  mem_encrypt_active
+  memmove
+  memory_read_from_buffer
+  memparse
+  mem_section
+  memset64
+  memset
+  __memset_io
+  memstart_addr
+  mfd_add_devices
+  mfd_remove_devices
+  mipi_dsi_attach
+  mipi_dsi_compression_mode
+  mipi_dsi_create_packet
+  mipi_dsi_dcs_get_display_brightness
+  mipi_dsi_dcs_read
+  mipi_dsi_dcs_set_column_address
+  mipi_dsi_dcs_set_display_brightness
+  mipi_dsi_dcs_set_page_address
+  mipi_dsi_dcs_write_buffer
+  mipi_dsi_detach
+  mipi_dsi_device_register_full
+  mipi_dsi_driver_register_full
+  mipi_dsi_driver_unregister
+  mipi_dsi_host_register
+  mipi_dsi_host_unregister
+  mipi_dsi_packet_format_is_long
+  mipi_dsi_picture_parameter_set
+  misc_deregister
+  misc_register
+  mmc_add_host
+  mmc_alloc_host
+  mmc_can_gpio_cd
+  mmc_detect_change
+  mmc_free_host
+  mmc_gpio_get_cd
+  mmc_gpio_get_ro
+  mmc_of_parse
+  mmc_regulator_get_supply
+  mmc_regulator_set_ocr
+  mmc_regulator_set_vqmmc
+  mmc_remove_host
+  mmc_request_done
+  mmc_wait_for_req
+  __mmdrop
+  mmput
+  mmu_notifier_synchronize
+  mod_delayed_work_on
+  mod_timer
+  module_layout
+  module_put
+  __msecs_to_jiffies
+  msleep
+  msleep_interruptible
+  __mutex_init
+  mutex_is_locked
+  mutex_lock
+  mutex_lock_interruptible
+  mutex_trylock
+  mutex_unlock
+  names_cachep
+  __napi_alloc_skb
+  napi_build_skb
+  napi_complete_done
+  napi_disable
+  napi_enable
+  napi_gro_receive
+  __napi_schedule
+  napi_schedule_prep
+  __netdev_alloc_skb
+  netdev_err
+  netif_carrier_off
+  netif_carrier_on
+  netif_napi_add
+  __netif_napi_del
+  netif_receive_skb
+  netif_rx_ni
+  netif_schedule_queue
+  netif_tx_stop_all_queues
+  netif_tx_wake_queue
+  netlink_broadcast
+  netlink_register_notifier
+  netlink_unicast
+  netlink_unregister_notifier
+  net_ns_type_operations
+  nla_find
+  nla_memcpy
+  __nla_parse
+  nla_put_64bit
+  nla_put
+  nla_put_nohdr
+  nla_reserve
+  __nla_validate
+  no_llseek
+  nonseekable_open
+  noop_llseek
+  nr_cpu_ids
+  nr_irqs
+  nsecs_to_jiffies
+  nsec_to_clock_t
+  ns_to_kernel_old_timeval
+  ns_to_timespec64
+  __num_online_cpus
+  of_add_property
+  of_address_to_resource
+  of_alias_get_highest_id
+  of_alias_get_id
+  of_clk_add_provider
+  of_clk_get
+  of_clk_get_by_name
+  of_clk_src_onecell_get
+  of_count_phandle_with_args
+  of_cpu_node_to_id
+  of_device_get_match_data
+  of_device_is_available
+  of_device_is_compatible
+  of_dma_controller_free
+  of_dma_controller_register
+  of_dma_is_coherent
+  of_drm_find_bridge
+  of_drm_find_panel
+  of_find_compatible_node
+  of_find_device_by_node
+  of_find_i2c_device_by_node
+  of_find_matching_node_and_match
+  of_find_node_by_name
+  of_find_node_by_phandle
+  of_find_node_by_type
+  of_find_node_opts_by_path
+  of_find_node_with_property
+  of_find_property
+  of_fwnode_ops
+  of_genpd_add_provider_simple
+  of_get_child_by_name
+  of_get_cpu_node
+  of_get_named_gpio_flags
+  of_get_next_available_child
+  of_get_next_child
+  of_get_property
+  of_get_regulator_init_data
+  of_get_videomode
+  of_iomap
+  of_irq_get_byname
+  of_irq_parse_one
+  of_machine_is_compatible
+  of_match_device
+  of_match_node
+  of_n_addr_cells
+  of_node_name_eq
+  of_n_size_cells
+  of_parse_phandle
+  of_parse_phandle_with_args
+  of_parse_phandle_with_fixed_args
+  of_phandle_iterator_init
+  of_phandle_iterator_next
+  of_platform_populate
+  of_property_count_elems_of_size
+  of_property_match_string
+  of_property_read_string
+  of_property_read_string_helper
+  of_property_read_u32_index
+  of_property_read_u64
+  of_property_read_variable_u16_array
+  of_property_read_variable_u32_array
+  of_property_read_variable_u8_array
+  of_prop_next_string
+  of_prop_next_u32
+  of_pwm_xlate_with_flags
+  of_reserved_mem_device_init_by_idx
+  of_reserved_mem_device_release
+  of_reserved_mem_lookup
+  of_root
+  of_thermal_get_ntrips
+  of_usb_host_tpl_support
+  oops_in_progress
+  page_endio
+  page_mapping
+  panic
+  panic_notifier_list
+  param_array_ops
+  param_get_charp
+  param_ops_bint
+  param_ops_bool
+  param_ops_byte
+  param_ops_charp
+  param_ops_hexint
+  param_ops_int
+  param_ops_long
+  param_ops_string
+  param_ops_uint
+  param_ops_ullong
+  param_ops_ulong
+  param_set_charp
+  param_set_uint
+  param_set_ulong
+  pci_alloc_irq_vectors_affinity
+  pci_assign_resource
+  pci_assign_unassigned_bus_resources
+  pci_bus_resource_n
+  pci_bus_type
+  pci_clear_master
+  pci_disable_device
+  pcie_get_mps
+  pci_enable_atomic_ops_to_root
+  pci_enable_device
+  pci_enable_pcie_error_reporting
+  pci_enable_wake
+  pcie_set_mps
+  pci_find_bus
+  pci_find_ext_capability
+  pci_free_irq_vectors
+  pci_generic_config_read
+  pci_generic_config_write
+  pci_get_device
+  pci_irq_vector
+  pci_load_saved_state
+  pci_map_rom
+  pcim_enable_device
+  pcim_iomap_regions
+  pcim_iomap_table
+  pci_msix_vec_count
+  pci_read_config_dword
+  pci_read_config_word
+  pci_rebar_get_possible_sizes
+  __pci_register_driver
+  pci_release_regions
+  pci_release_resource
+  pci_rescan_bus
+  pci_reset_function
+  pci_resize_resource
+  pci_restore_state
+  pci_save_state
+  pci_set_master
+  pci_set_power_state
+  pci_store_saved_state
+  pci_unmap_rom
+  pci_unregister_driver
+  pci_wait_for_pending_transaction
+  pci_wake_from_d3
+  pci_write_config_dword
+  pci_write_config_word
+  PDE_DATA
+  __per_cpu_offset
+  perf_event_update_userpage
+  perf_pmu_register
+  perf_pmu_unregister
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  pfn_is_map_memory
+  phy_configure
+  phy_init
+  phy_power_off
+  phy_power_on
+  phy_reset
+  pid_task
+  pinconf_generic_dt_node_to_map
+  pinctrl_add_gpio_range
+  pinctrl_dev_get_drvdata
+  pinctrl_force_sleep
+  pinctrl_get
+  pinctrl_lookup_state
+  pinctrl_pm_select_default_state
+  pinctrl_pm_select_sleep_state
+  pinctrl_put
+  pinctrl_remove_gpio_range
+  pinctrl_select_state
+  pinctrl_utils_free_map
+  pin_get_name
+  pin_user_pages
+  pin_user_pages_fast
+  pin_user_pages_remote
+  platform_bus_type
+  platform_device_add
+  platform_device_add_resources
+  platform_device_alloc
+  platform_device_del
+  platform_device_put
+  platform_device_register
+  platform_device_register_full
+  platform_device_unregister
+  __platform_driver_probe
+  __platform_driver_register
+  platform_driver_unregister
+  platform_find_device_by_driver
+  platform_get_irq
+  platform_get_irq_byname
+  platform_get_resource
+  platform_get_resource_byname
+  __platform_register_drivers
+  pm_genpd_add_subdomain
+  pm_genpd_init
+  pm_power_off
+  __pm_relax
+  pm_relax
+  pm_runtime_allow
+  pm_runtime_barrier
+  __pm_runtime_disable
+  pm_runtime_enable
+  pm_runtime_forbid
+  pm_runtime_force_resume
+  pm_runtime_force_suspend
+  pm_runtime_get_if_active
+  __pm_runtime_idle
+  pm_runtime_irq_safe
+  pm_runtime_no_callbacks
+  __pm_runtime_resume
+  pm_runtime_set_autosuspend_delay
+  __pm_runtime_set_status
+  __pm_runtime_suspend
+  __pm_runtime_use_autosuspend
+  __pm_stay_awake
+  pm_stay_awake
+  pm_suspend_global_flags
+  pm_wakeup_dev_event
+  pm_wakeup_ws_event
+  power_supply_changed
+  power_supply_get_by_name
+  power_supply_get_drvdata
+  power_supply_get_property
+  power_supply_put
+  power_supply_register
+  power_supply_set_property
+  power_supply_unregister
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait_event
+  print_hex_dump
+  _printk
+  __printk_ratelimit
+  printk_timed_ratelimit
+  proc_create
+  proc_create_data
+  proc_create_seq_private
+  proc_mkdir
+  proc_remove
+  proc_set_size
+  proc_set_user
+  proc_symlink
+  __pskb_pull_tail
+  put_device
+  __put_net
+  __put_page
+  put_pid
+  __put_task_struct
+  put_unused_fd
+  pwmchip_add
+  pwmchip_remove
+  pwm_get_chip_data
+  pwm_set_chip_data
+  queue_delayed_work_on
+  queue_work_on
+  ___ratelimit
+  raw_notifier_call_chain
+  raw_notifier_chain_register
+  raw_notifier_chain_unregister
+  _raw_read_lock
+  _raw_read_lock_bh
+  _raw_read_lock_irqsave
+  _raw_read_unlock
+  _raw_read_unlock_bh
+  _raw_read_unlock_irqrestore
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irq
+  _raw_spin_lock_irqsave
+  raw_spin_rq_lock_nested
+  raw_spin_rq_unlock
+  _raw_spin_trylock
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irq
+  _raw_spin_unlock_irqrestore
+  _raw_write_lock
+  _raw_write_lock_bh
+  _raw_write_lock_irqsave
+  _raw_write_trylock
+  _raw_write_unlock
+  _raw_write_unlock_bh
+  _raw_write_unlock_irqrestore
+  rb_erase
+  __rb_erase_color
+  rb_first
+  rb_first_postorder
+  __rb_insert_augmented
+  rb_insert_color
+  rb_next
+  rb_next_postorder
+  rb_prev
+  rb_replace_node
+  rcu_barrier
+  __rcu_read_lock
+  __rcu_read_unlock
+  rdev_get_drvdata
+  rdev_get_id
+  reciprocal_value
+  refcount_warn_saturate
+  refresh_frequency_limits
+  __refrigerator
+  regcache_cache_bypass
+  regcache_cache_only
+  regcache_mark_dirty
+  regcache_sync
+  __register_blkdev
+  __register_chrdev
+  register_chrdev_region
+  register_console
+  register_die_notifier
+  register_inet6addr_notifier
+  register_inetaddr_notifier
+  register_netdev
+  register_netdevice
+  register_netdevice_notifier
+  register_oom_notifier
+  register_pernet_device
+  register_pm_notifier
+  register_reboot_notifier
+  register_restart_handler
+  register_shrinker
+  register_syscore_ops
+  regmap_async_complete
+  regmap_bulk_read
+  regmap_bulk_write
+  regmap_multi_reg_write
+  regmap_multi_reg_write_bypassed
+  regmap_raw_read
+  regmap_raw_write
+  regmap_raw_write_async
+  regmap_read
+  regmap_register_patch
+  regmap_reinit_cache
+  regmap_update_bits_base
+  regmap_write
+  regulator_bulk_disable
+  regulator_bulk_enable
+  regulator_disable
+  regulator_enable
+  regulator_force_disable
+  regulator_get
+  regulator_get_optional
+  regulator_get_voltage
+  regulator_is_enabled
+  regulator_list_voltage_linear
+  regulator_map_voltage_linear
+  regulator_put
+  regulator_set_mode
+  regulator_set_voltage
+  release_firmware
+  release_pages
+  __release_region
+  remap_pfn_range
+  remap_vmalloc_range
+  remove_cpu
+  remove_proc_entry
+  request_firmware
+  request_firmware_direct
+  request_firmware_into_buf
+  request_firmware_nowait
+  __request_module
+  __request_region
+  request_threaded_irq
+  resched_curr
+  reset_control_assert
+  reset_control_deassert
+  return_address
+  rfkill_alloc
+  rfkill_blocked
+  rfkill_destroy
+  rfkill_register
+  rfkill_resume_polling
+  rfkill_set_hw_state_reason
+  rfkill_unregister
+  rps_needed
+  rtc_class_close
+  rtc_class_open
+  rtc_read_time
+  rtc_set_time
+  rtc_time64_to_tm
+  rtc_tm_to_time64
+  rtc_update_irq
+  rtc_valid_tm
+  rtnl_is_locked
+  rtnl_lock
+  rtnl_unlock
+  runqueues
+  sched_clock
+  sched_feat_keys
+  sched_feat_names
+  sched_set_fifo_low
+  sched_setscheduler
+  sched_setscheduler_nocheck
+  sched_uclamp_used
+  schedule
+  schedule_timeout
+  schedule_timeout_interruptible
+  scnprintf
+  scsi_block_when_processing_errors
+  scsi_dma_unmap
+  scsi_eh_ready_devs
+  __scsi_execute
+  scsi_print_sense_hdr
+  sdev_prefix_printk
+  sdio_signal_irq
+  seq_lseek
+  seq_open
+  __seq_open_private
+  seq_printf
+  seq_putc
+  seq_puts
+  seq_read
+  seq_release
+  seq_release_private
+  seq_write
+  set_capacity
+  set_capacity_and_notify
+  set_cpus_allowed_ptr
+  set_next_entity
+  set_normalized_timespec64
+  set_page_dirty_lock
+  __SetPageMovable
+  set_task_cpu
+  sg_alloc_table
+  sg_alloc_table_from_pages_segment
+  sg_free_table
+  sg_init_one
+  sg_init_table
+  sg_miter_next
+  sg_miter_start
+  sg_miter_stop
+  sg_nents_for_len
+  sg_next
+  __sg_page_iter_next
+  __sg_page_iter_start
+  si_meminfo
+  simple_attr_open
+  simple_attr_read
+  simple_attr_release
+  simple_attr_write
+  simple_open
+  simple_read_from_buffer
+  simple_strtol
+  simple_strtoul
+  simple_write_to_buffer
+  single_open
+  single_open_size
+  single_release
+  skb_add_rx_frag
+  skb_clone
+  skb_copy
+  skb_copy_bits
+  skb_copy_expand
+  skb_dequeue
+  skb_dequeue_tail
+  skb_pull
+  skb_push
+  skb_put
+  skb_queue_head
+  skb_queue_purge
+  skb_queue_tail
+  skb_realloc_headroom
+  skb_split
+  skb_trim
+  smp_call_function
+  smp_call_function_any
+  smp_call_function_many
+  smp_call_function_single
+  smp_call_function_single_async
+  smp_call_on_cpu
+  snd_compr_stop_error
+  snd_ctl_add
+  snd_ctl_new1
+  snd_ctl_notify
+  snd_device_free
+  snd_dma_alloc_pages
+  snd_dmaengine_pcm_prepare_slave_config
+  snd_dma_free_pages
+  snd_hwdep_new
+  snd_jack_set_key
+  snd_pcm_format_physical_width
+  snd_pcm_format_width
+  snd_pcm_hw_constraint_integer
+  snd_pcm_hw_constraint_list
+  snd_pcm_lib_free_pages
+  snd_pcm_lib_ioctl
+  snd_pcm_lib_malloc_pages
+  snd_pcm_lib_preallocate_free_for_all
+  snd_pcm_lib_preallocate_pages
+  snd_pcm_period_elapsed
+  snd_pcm_rate_range_to_bits
+  snd_soc_add_component_controls
+  snd_soc_bytes_info_ext
+  snd_soc_bytes_tlv_callback
+  snd_soc_card_get_kcontrol
+  snd_soc_card_jack_new
+  snd_soc_component_async_complete
+  snd_soc_component_disable_pin
+  snd_soc_component_force_enable_pin
+  snd_soc_component_init_regmap
+  snd_soc_component_read
+  snd_soc_component_set_pll
+  snd_soc_component_set_sysclk
+  snd_soc_component_update_bits
+  snd_soc_component_update_bits_async
+  snd_soc_component_write
+  snd_soc_daifmt_clock_provider_from_bitmap
+  snd_soc_daifmt_parse_clock_provider_raw
+  snd_soc_daifmt_parse_format
+  snd_soc_dai_set_bclk_ratio
+  snd_soc_dai_set_channel_map
+  snd_soc_dai_set_sysclk
+  snd_soc_dai_set_tdm_slot
+  snd_soc_dai_set_tristate
+  snd_soc_dapm_add_routes
+  snd_soc_dapm_disable_pin
+  snd_soc_dapm_enable_pin
+  snd_soc_dapm_get_enum_double
+  snd_soc_dapm_get_pin_status
+  snd_soc_dapm_get_pin_switch
+  snd_soc_dapm_get_volsw
+  snd_soc_dapm_ignore_suspend
+  snd_soc_dapm_info_pin_switch
+  snd_soc_dapm_kcontrol_dapm
+  snd_soc_dapm_mixer_update_power
+  snd_soc_dapm_new_control
+  snd_soc_dapm_new_controls
+  snd_soc_dapm_put_enum_double
+  snd_soc_dapm_put_pin_switch
+  snd_soc_dapm_put_volsw
+  snd_soc_dapm_sync
+  snd_soc_dapm_weak_routes
+  snd_soc_find_dai
+  snd_soc_find_dai_with_mutex
+  snd_soc_get_enum_double
+  snd_soc_get_pcm_runtime
+  snd_soc_get_volsw
+  snd_soc_get_volsw_sx
+  snd_soc_get_xr_sx
+  snd_soc_info_enum_double
+  snd_soc_info_volsw
+  snd_soc_info_volsw_sx
+  snd_soc_info_xr_sx
+  snd_soc_jack_report
+  snd_soc_lookup_component
+  snd_soc_new_compress
+  snd_soc_of_get_dai_link_codecs
+  snd_soc_of_get_dai_name
+  snd_soc_of_parse_audio_routing
+  snd_soc_of_put_dai_link_codecs
+  snd_soc_params_to_bclk
+  snd_soc_pm_ops
+  snd_soc_put_enum_double
+  snd_soc_put_volsw
+  snd_soc_put_volsw_sx
+  snd_soc_put_xr_sx
+  snd_soc_register_card
+  snd_soc_register_component
+  snd_soc_set_runtime_hwparams
+  snd_soc_tplg_component_load
+  snd_soc_tplg_component_remove
+  snd_soc_tplg_widget_bind_event
+  snd_soc_unregister_card
+  snd_soc_unregister_component
+  snprintf
+  soc_device_register
+  __sock_create
+  sock_release
+  softnet_data
+  sort
+  __spi_alloc_controller
+  spi_controller_resume
+  spi_controller_suspend
+  spi_delay_exec
+  spi_finalize_current_message
+  spi_register_controller
+  __spi_register_driver
+  spi_setup
+  spi_sync
+  spi_unregister_controller
+  split_page
+  sprintf
+  sprint_symbol
+  srcu_init_notifier_head
+  srcu_notifier_call_chain
+  srcu_notifier_chain_register
+  srcu_notifier_chain_unregister
+  sscanf
+  __stack_chk_fail
+  stack_trace_save_tsk
+  start_backtrace
+  static_key_disable
+  static_key_slow_dec
+  static_key_slow_inc
+  stop_machine
+  stop_one_cpu_nowait
+  stpcpy
+  strcasecmp
+  strcat
+  strchr
+  strcmp
+  strcpy
+  strcspn
+  stream_open
+  strim
+  strlcat
+  strlcpy
+  strlen
+  strncasecmp
+  strncat
+  strnchr
+  strncmp
+  strncpy
+  strnlen
+  strnstr
+  strpbrk
+  strrchr
+  strreplace
+  strscpy
+  strsep
+  strstr
+  subsys_system_register
+  __sw_hweight16
+  __sw_hweight32
+  __sw_hweight64
+  __sw_hweight8
+  sync_file_create
+  sync_file_get_fence
+  synchronize_irq
+  synchronize_net
+  synchronize_rcu
+  syscon_regmap_lookup_by_phandle
+  sysctl_sched_features
+  sysfs_add_file_to_group
+  sysfs_create_bin_file
+  sysfs_create_file_ns
+  sysfs_create_files
+  sysfs_create_group
+  sysfs_create_groups
+  sysfs_create_link
+  sysfs_emit
+  __sysfs_match_string
+  sysfs_notify
+  sysfs_remove_bin_file
+  sysfs_remove_file_from_group
+  sysfs_remove_file_ns
+  sysfs_remove_files
+  sysfs_remove_group
+  sysfs_remove_link
+  sysfs_streq
+  sysrq_mask
+  system_32bit_el0_cpumask
+  system_freezable_wq
+  system_freezing_cnt
+  system_highpri_wq
+  system_long_wq
+  system_power_efficient_wq
+  system_state
+  system_unbound_wq
+  system_wq
+  sys_tz
+  __tasklet_hi_schedule
+  tasklet_init
+  tasklet_kill
+  __tasklet_schedule
+  tasklet_setup
+  __task_pid_nr_ns
+  task_rq_lock
+  tcp_register_congestion_control
+  tcp_reno_cong_avoid
+  tcp_reno_ssthresh
+  tcp_reno_undo_cwnd
+  tcp_slow_start
+  tcp_unregister_congestion_control
+  thermal_cdev_update
+  thermal_cooling_device_unregister
+  thermal_of_cooling_device_register
+  thermal_zone_device_disable
+  thermal_zone_device_enable
+  thermal_zone_device_update
+  thermal_zone_get_temp
+  thermal_zone_get_zone_by_name
+  thermal_zone_of_sensor_register
+  thermal_zone_of_sensor_unregister
+  tick_nohz_get_sleep_length
+  time64_to_tm
+  topology_set_thermal_pressure
+  _totalram_pages
+  touch_softlockup_watchdog
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_handle_return
+  __traceiter_android_rvh_can_migrate_task
+  __traceiter_android_rvh_check_preempt_wakeup
+  __traceiter_android_rvh_cpu_cgroup_attach
+  __traceiter_android_rvh_cpu_cgroup_can_attach
+  __traceiter_android_rvh_cpufreq_transition
+  __traceiter_android_rvh_dequeue_task
+  __traceiter_android_rvh_do_sched_yield
+  __traceiter_android_rvh_enqueue_task
+  __traceiter_android_rvh_find_busiest_queue
+  __traceiter_android_rvh_find_lowest_rq
+  __traceiter_android_rvh_find_new_ilb
+  __traceiter_android_rvh_flush_task
+  __traceiter_android_rvh_gic_v3_set_affinity
+  __traceiter_android_rvh_post_init_entity_util_avg
+  __traceiter_android_rvh_replace_next_task_fair
+  __traceiter_android_rvh_sched_fork_init
+  __traceiter_android_rvh_sched_newidle_balance
+  __traceiter_android_rvh_sched_nohz_balancer_kick
+  __traceiter_android_rvh_sched_rebalance_domains
+  __traceiter_android_rvh_schedule
+  __traceiter_android_rvh_select_fallback_rq
+  __traceiter_android_rvh_select_task_rq_fair
+  __traceiter_android_rvh_select_task_rq_rt
+  __traceiter_android_rvh_set_task_cpu
+  __traceiter_android_rvh_tick_entry
+  __traceiter_android_rvh_update_misfit_status
+  __traceiter_android_rvh_wake_up_new_task
+  __traceiter_android_vh_arch_set_freq_scale
+  __traceiter_android_vh_binder_restore_priority
+  __traceiter_android_vh_binder_set_priority
+  __traceiter_android_vh_binder_wakeup_ilocked
+  __traceiter_android_vh_cpu_idle_enter
+  __traceiter_android_vh_cpu_idle_exit
+  __traceiter_android_vh_do_wake_up_sync
+  __traceiter_android_vh_gic_set_affinity
+  __traceiter_android_vh_ipi_stop
+  __traceiter_android_vh_logbuf
+  __traceiter_android_vh_logbuf_pr_cont
+  __traceiter_android_vh_scheduler_tick
+  __traceiter_android_vh_set_wake_flags
+  __traceiter_android_vh_show_mem
+  __traceiter_android_vh_ufs_check_int_errors
+  __traceiter_android_vh_ufs_compl_command
+  __traceiter_binder_transaction_received
+  __traceiter_clock_set_rate
+  __traceiter_device_pm_callback_end
+  __traceiter_device_pm_callback_start
+  __traceiter_dwc3_ep_queue
+  __traceiter_dwc3_readl
+  __traceiter_dwc3_writel
+  __traceiter_gpu_mem_total
+  __traceiter_hrtimer_expire_entry
+  __traceiter_hrtimer_expire_exit
+  __traceiter_ipi_entry
+  __traceiter_ipi_exit
+  __traceiter_ipi_raise
+  __traceiter_irq_handler_entry
+  __traceiter_irq_handler_exit
+  __traceiter_pelt_cfs_tp
+  __traceiter_pelt_dl_tp
+  __traceiter_pelt_irq_tp
+  __traceiter_pelt_rt_tp
+  __traceiter_pelt_se_tp
+  __traceiter_rwmmio_post_read
+  __traceiter_rwmmio_read
+  __traceiter_rwmmio_write
+  __traceiter_sched_overutilized_tp
+  __traceiter_sched_switch
+  __traceiter_suspend_resume
+  __traceiter_workqueue_execute_end
+  __traceiter_workqueue_execute_start
+  trace_output_call
+  __tracepoint_android_rvh_can_migrate_task
+  __tracepoint_android_rvh_check_preempt_wakeup
+  __tracepoint_android_rvh_cpu_cgroup_attach
+  __tracepoint_android_rvh_cpu_cgroup_can_attach
+  __tracepoint_android_rvh_cpufreq_transition
+  __tracepoint_android_rvh_dequeue_task
+  __tracepoint_android_rvh_do_sched_yield
+  __tracepoint_android_rvh_enqueue_task
+  __tracepoint_android_rvh_find_busiest_queue
+  __tracepoint_android_rvh_find_lowest_rq
+  __tracepoint_android_rvh_find_new_ilb
+  __tracepoint_android_rvh_flush_task
+  __tracepoint_android_rvh_gic_v3_set_affinity
+  __tracepoint_android_rvh_post_init_entity_util_avg
+  __tracepoint_android_rvh_replace_next_task_fair
+  __tracepoint_android_rvh_sched_fork_init
+  __tracepoint_android_rvh_sched_newidle_balance
+  __tracepoint_android_rvh_sched_nohz_balancer_kick
+  __tracepoint_android_rvh_sched_rebalance_domains
+  __tracepoint_android_rvh_schedule
+  __tracepoint_android_rvh_select_fallback_rq
+  __tracepoint_android_rvh_select_task_rq_fair
+  __tracepoint_android_rvh_select_task_rq_rt
+  __tracepoint_android_rvh_set_task_cpu
+  __tracepoint_android_rvh_tick_entry
+  __tracepoint_android_rvh_update_misfit_status
+  __tracepoint_android_rvh_wake_up_new_task
+  __tracepoint_android_vh_arch_set_freq_scale
+  __tracepoint_android_vh_binder_restore_priority
+  __tracepoint_android_vh_binder_set_priority
+  __tracepoint_android_vh_binder_wakeup_ilocked
+  __tracepoint_android_vh_cpu_idle_enter
+  __tracepoint_android_vh_cpu_idle_exit
+  __tracepoint_android_vh_do_wake_up_sync
+  __tracepoint_android_vh_gic_set_affinity
+  __tracepoint_android_vh_ipi_stop
+  __tracepoint_android_vh_logbuf
+  __tracepoint_android_vh_logbuf_pr_cont
+  __tracepoint_android_vh_scheduler_tick
+  __tracepoint_android_vh_set_wake_flags
+  __tracepoint_android_vh_show_mem
+  __tracepoint_android_vh_ufs_check_int_errors
+  __tracepoint_android_vh_ufs_compl_command
+  __tracepoint_binder_transaction_received
+  __tracepoint_clock_set_rate
+  __tracepoint_device_pm_callback_end
+  __tracepoint_device_pm_callback_start
+  __tracepoint_dwc3_ep_queue
+  __tracepoint_dwc3_readl
+  __tracepoint_dwc3_writel
+  __tracepoint_gpu_mem_total
+  __tracepoint_hrtimer_expire_entry
+  __tracepoint_hrtimer_expire_exit
+  __tracepoint_ipi_entry
+  __tracepoint_ipi_exit
+  __tracepoint_ipi_raise
+  __tracepoint_irq_handler_entry
+  __tracepoint_irq_handler_exit
+  __tracepoint_pelt_cfs_tp
+  __tracepoint_pelt_dl_tp
+  __tracepoint_pelt_irq_tp
+  __tracepoint_pelt_rt_tp
+  __tracepoint_pelt_se_tp
+  tracepoint_probe_register
+  tracepoint_probe_unregister
+  __tracepoint_rwmmio_post_read
+  __tracepoint_rwmmio_read
+  __tracepoint_rwmmio_write
+  __tracepoint_sched_overutilized_tp
+  __tracepoint_sched_switch
+  __tracepoint_suspend_resume
+  __tracepoint_workqueue_execute_end
+  __tracepoint_workqueue_execute_start
+  trace_print_array_seq
+  trace_print_flags_seq
+  trace_print_symbols_seq
+  trace_raw_output_prep
+  try_module_get
+  ttm_bo_bulk_move_lru_tail
+  ttm_bo_eviction_valuable
+  ttm_bo_init_reserved
+  ttm_bo_kmap
+  ttm_bo_kunmap
+  ttm_bo_lock_delayed_workqueue
+  ttm_bo_mem_space
+  ttm_bo_mmap_obj
+  ttm_bo_move_accel_cleanup
+  ttm_bo_move_memcpy
+  ttm_bo_move_to_lru_tail
+  ttm_bo_put
+  ttm_bo_unlock_delayed_workqueue
+  ttm_bo_validate
+  ttm_bo_vm_access
+  ttm_bo_vmap
+  ttm_bo_vm_close
+  ttm_bo_vm_dummy_page
+  ttm_bo_vm_fault_reserved
+  ttm_bo_vm_open
+  ttm_bo_vm_reserve
+  ttm_bo_vunmap
+  ttm_bo_wait
+  ttm_device_fini
+  ttm_device_init
+  ttm_eu_backoff_reservation
+  ttm_eu_fence_buffer_objects
+  ttm_eu_reserve_buffers
+  ttm_glob
+  ttm_pool_alloc
+  ttm_pool_debugfs
+  ttm_pool_free
+  ttm_range_man_fini
+  ttm_range_man_init
+  ttm_resource_free
+  ttm_resource_init
+  ttm_resource_manager_evict_all
+  ttm_resource_manager_init
+  ttm_sg_tt_init
+  ttm_tt_destroy_common
+  ttm_tt_fini
+  tty_dev_name_to_number
+  tty_flip_buffer_push
+  tty_insert_flip_string_fixed_flag
+  tty_kclose
+  tty_kopen_exclusive
+  tty_kref_put
+  tty_lock
+  tty_mode_ioctl
+  tty_port_tty_get
+  tty_register_ldisc
+  tty_set_ldisc
+  tty_set_termios
+  tty_unlock
+  tty_unregister_ldisc
+  typec_get_drvdata
+  typec_register_partner
+  typec_register_port
+  typec_set_data_role
+  typec_set_pwr_opmode
+  typec_set_pwr_role
+  typec_unregister_partner
+  typec_unregister_port
+  uart_add_one_port
+  uart_console_write
+  uart_get_baud_rate
+  uart_parse_options
+  uart_register_driver
+  uart_remove_one_port
+  uart_resume_port
+  uart_set_options
+  uart_suspend_port
+  uart_try_toggle_sysrq
+  uart_unregister_driver
+  uart_update_timeout
+  uart_write_wakeup
+  __ubsan_handle_cfi_check_fail_abort
+  uclamp_eff_value
+  __udelay
+  ufshcd_auto_hibern8_update
+  ufshcd_dme_set_attr
+  ufshcd_hba_stop
+  ufshcd_hold
+  ufshcd_make_hba_operational
+  ufshcd_pltfrm_init
+  ufshcd_query_flag_retry
+  ufshcd_release
+  ufshcd_remove
+  ufshcd_resume_complete
+  ufshcd_shutdown
+  ufshcd_suspend_prepare
+  ufshcd_system_resume
+  ufshcd_system_suspend
+  unlock_page
+  unmap_mapping_range
+  unpin_user_page
+  unregister_blkdev
+  __unregister_chrdev
+  unregister_chrdev_region
+  unregister_inet6addr_notifier
+  unregister_inetaddr_notifier
+  unregister_netdev
+  unregister_netdevice_notifier
+  unregister_netdevice_queue
+  unregister_oom_notifier
+  unregister_pernet_device
+  unregister_pm_notifier
+  unregister_reboot_notifier
+  unregister_shrinker
+  up
+  update_devfreq
+  update_rq_clock
+  up_read
+  up_write
+  usb_add_function
+  usb_add_hcd
+  usb_choose_configuration
+  usb_copy_descriptors
+  __usb_create_hcd
+  usb_disabled
+  usb_enable_autosuspend
+  usb_ep_alloc_request
+  usb_ep_autoconfig
+  usb_ep_free_request
+  usb_ep_queue
+  usb_function_register
+  usb_function_unregister
+  usb_gadget_set_state
+  usb_hcd_is_primary_hcd
+  usb_hub_find_child
+  usb_interface_id
+  usb_otg_state_string
+  usb_put_function_instance
+  usb_put_hcd
+  usb_register_notify
+  usb_remove_hcd
+  usb_speed_string
+  usb_string_id
+  usb_unregister_notify
+  __usecs_to_jiffies
+  usleep_range_state
+  v4l2_ctrl_handler_free
+  v4l2_ctrl_handler_init_class
+  v4l2_ctrl_handler_setup
+  v4l2_ctrl_log_status
+  v4l2_ctrl_new_custom
+  v4l2_ctrl_new_std
+  v4l2_ctrl_new_std_menu
+  v4l2_ctrl_poll
+  v4l2_ctrl_subscribe_event
+  v4l2_device_register
+  v4l2_device_register_subdev
+  v4l2_device_set_name
+  v4l2_device_unregister
+  v4l2_device_unregister_subdev
+  v4l2_event_unsubscribe
+  v4l2_fh_add
+  v4l2_fh_del
+  v4l2_fh_exit
+  v4l2_fh_init
+  v4l2_fh_is_singular
+  v4l2_fh_open
+  v4l2_fh_release
+  v4l2_i2c_subdev_init
+  v4l2_m2m_buf_queue
+  v4l2_m2m_buf_remove
+  v4l2_m2m_ctx_init
+  v4l2_m2m_ctx_release
+  v4l2_m2m_dqbuf
+  v4l2_m2m_fop_mmap
+  v4l2_m2m_fop_poll
+  v4l2_m2m_get_curr_priv
+  v4l2_m2m_get_vq
+  v4l2_m2m_init
+  v4l2_m2m_ioctl_dqbuf
+  v4l2_m2m_ioctl_querybuf
+  v4l2_m2m_ioctl_reqbufs
+  v4l2_m2m_ioctl_streamoff
+  v4l2_m2m_ioctl_streamon
+  v4l2_m2m_job_finish
+  v4l2_m2m_mmap
+  v4l2_m2m_next_buf
+  v4l2_m2m_poll
+  v4l2_m2m_qbuf
+  v4l2_m2m_querybuf
+  v4l2_m2m_release
+  v4l2_m2m_reqbufs
+  v4l2_m2m_streamoff
+  v4l2_m2m_streamon
+  v4l2_m2m_try_schedule
+  v4l2_match_dv_timings
+  v4l2_subdev_call_wrappers
+  v4l2_subdev_init
+  v4l_bound_align_image
+  vabits_actual
+  vb2_buffer_done
+  vb2_dma_sg_memops
+  vb2_dqbuf
+  vb2_mmap
+  vb2_ops_wait_finish
+  vb2_ops_wait_prepare
+  vb2_plane_cookie
+  vb2_plane_vaddr
+  vb2_poll
+  vb2_prepare_buf
+  vb2_qbuf
+  vb2_querybuf
+  vb2_queue_init
+  vb2_queue_release
+  vb2_reqbufs
+  vb2_streamoff
+  vb2_streamon
+  vb2_wait_for_all_buffers
+  verify_pkcs7_signature
+  vfree
+  video_devdata
+  video_device_alloc
+  video_device_release
+  video_device_release_empty
+  video_ioctl2
+  __video_register_device
+  video_unregister_device
+  vmalloc
+  vmalloc_to_page
+  vmalloc_to_pfn
+  vmalloc_user
+  vmap
+  vmf_insert_pfn_prot
+  vm_get_page_prot
+  vm_iomap_memory
+  vprintk_emit
+  vscnprintf
+  vsnprintf
+  vsprintf
+  vunmap
+  vzalloc
+  wait_for_completion
+  wait_for_completion_interruptible
+  wait_for_completion_interruptible_timeout
+  wait_for_completion_killable
+  wait_for_completion_timeout
+  __wake_up
+  wake_up_if_idle
+  __wake_up_locked
+  __wake_up_locked_key
+  wake_up_process
+  wakeup_source_add
+  wakeup_source_register
+  wakeup_source_remove
+  wakeup_source_unregister
+  __wake_up_sync
+  __wake_up_sync_key
+  __warn_printk
+  watchdog_init_timeout
+  watchdog_register_device
+  watchdog_set_restart_priority
+  watchdog_unregister_device
+  wireless_nlevent_flush
+  work_busy
+  ww_mutex_lock
+  ww_mutex_lock_interruptible
+  ww_mutex_unlock
+  xa_destroy
+  __xa_erase
+  xa_load
+  __xa_store
+  xhci_gen_setup
+  xhci_init_driver
+  xhci_resume
+  xhci_run
+  xhci_suspend
+  zs_compact
+  zs_create_pool
+  zs_destroy_pool
+  zs_free
+  zs_get_total_pages
+  zs_huge_class_size
+  zs_malloc
+  zs_map_object
+  zs_pool_stats
+  zs_unmap_object
diff --git a/android/abi_gki_aarch64_exynos_wear b/android/abi_gki_aarch64_exynos_wear
new file mode 100644
index 0000000..022ac61
--- /dev/null
+++ b/android/abi_gki_aarch64_exynos_wear
@@ -0,0 +1,1696 @@
+[abi_symbol_list]
+  activate_task
+  add_cpu
+  add_timer
+  add_timer_on
+  adjust_managed_page_count
+  alarm_cancel
+  alarm_init
+  alarm_start_relative
+  alloc_anon_inode
+  alloc_chrdev_region
+  alloc_netdev_mqs
+  __alloc_pages
+  __alloc_percpu
+  __alloc_skb
+  alloc_workqueue
+  amba_driver_register
+  amba_driver_unregister
+  android_debug_symbol
+  android_kmalloc_64_create
+  android_rvh_probe_register
+  anon_inode_getfd
+  anon_inode_getfile
+  __arch_clear_user
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  __arm_smccc_hvc
+  __arm_smccc_smc
+  atomic_notifier_call_chain
+  atomic_notifier_chain_register
+  atomic_notifier_chain_unregister
+  autoremove_wake_function
+  available_idle_cpu
+  backlight_device_unregister
+  balance_push_callback
+  bcmp
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_start_io_acct
+  bitmap_parse
+  bitmap_parselist
+  bitmap_print_to_pagebuf
+  bitmap_to_arr32
+  __bitmap_weight
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blkdev_get_by_path
+  blkdev_put
+  blk_execute_rq
+  blk_get_request
+  blk_ksm_init_passthrough
+  blk_put_request
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  blocking_notifier_call_chain
+  blocking_notifier_chain_register
+  blocking_notifier_chain_unregister
+  bpf_trace_run10
+  bpf_trace_run11
+  bpf_trace_run1
+  bpf_trace_run2
+  bpf_trace_run3
+  bpf_trace_run4
+  bpf_trace_run5
+  bpf_trace_run6
+  bpf_trace_run7
+  bpf_trace_run8
+  bpf_trace_run9
+  bus_find_device
+  bus_for_each_dev
+  bus_register
+  bus_set_iommu
+  bus_unregister
+  cache_line_size
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  cancel_work_sync
+  capable
+  cdev_add
+  cdev_alloc
+  cdev_del
+  cdev_init
+  __cfi_slowpath_diag
+  cgroup_taskset_first
+  cgroup_taskset_next
+  __check_object_size
+  check_preempt_curr
+  __class_create
+  class_create_file_ns
+  class_destroy
+  class_find_device
+  __class_register
+  class_unregister
+  clear_page
+  __ClearPageMovable
+  clk_disable
+  clk_enable
+  clk_get
+  __clk_get_hw
+  clk_get_rate
+  clk_hw_get_parent
+  __clk_is_enabled
+  clk_prepare
+  clk_put
+  clk_register
+  clk_register_clkdev
+  clk_register_fixed_factor
+  clk_register_fixed_rate
+  clk_set_parent
+  clk_set_rate
+  clk_unprepare
+  clockevents_config_and_register
+  __clocksource_register_scale
+  cma_alloc
+  cma_release
+  complete
+  complete_all
+  complete_and_exit
+  completion_done
+  config_ep_by_speed
+  config_group_init_type_name
+  console_lock
+  console_stop
+  console_suspend_enabled
+  console_trylock
+  console_unlock
+  __const_udelay
+  consume_skb
+  contig_page_data
+  copy_from_kernel_nofault
+  __cpu_active_mask
+  cpu_all_bits
+  cpu_bit_bitmap
+  cpufreq_add_update_util_hook
+  cpufreq_cpu_get
+  cpufreq_cpu_put
+  cpufreq_disable_fast_switch
+  cpufreq_driver_fast_switch
+  __cpufreq_driver_target
+  cpufreq_enable_fast_switch
+  cpufreq_freq_transition_begin
+  cpufreq_freq_transition_end
+  cpufreq_frequency_table_get_index
+  cpufreq_generic_attr
+  cpufreq_quick_get
+  cpufreq_register_driver
+  cpufreq_register_governor
+  cpufreq_register_notifier
+  cpufreq_remove_update_util_hook
+  cpufreq_this_cpu_can_update
+  cpufreq_unregister_notifier
+  cpu_hotplug_disable
+  cpu_hotplug_enable
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  __cpuhp_setup_state_cpuslocked
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  cpuhp_tasks_frozen
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpuidle_get_cpu_driver
+  cpuidle_governor_latency_req
+  cpuidle_register_governor
+  cpumask_next
+  cpumask_next_and
+  cpu_number
+  __cpu_online_mask
+  cpu_pm_register_notifier
+  __cpu_possible_mask
+  cpu_scale
+  cpus_read_lock
+  cpus_read_unlock
+  cpu_subsys
+  cpu_topology
+  crc32_le
+  crypto_alloc_base
+  crypto_alloc_shash
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_destroy_tfm
+  crypto_has_alg
+  __crypto_memneq
+  crypto_shash_final
+  crypto_shash_update
+  _ctype
+  dapm_pinctrl_event
+  dapm_regulator_event
+  deactivate_task
+  debugfs_attr_read
+  debugfs_attr_write
+  debugfs_create_bool
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_create_symlink
+  debugfs_create_u32
+  debugfs_create_x32
+  debugfs_create_x64
+  debugfs_remove
+  debugfs_rename
+  dec_zone_page_state
+  default_llseek
+  deferred_free
+  delayed_work_timer_fn
+  del_gendisk
+  del_timer
+  del_timer_sync
+  destroy_workqueue
+  dev_alloc_name
+  __dev_change_net_namespace
+  dev_close
+  _dev_crit
+  dev_driver_string
+  _dev_emerg
+  _dev_err
+  dev_err_probe
+  devfreq_add_device
+  devfreq_add_governor
+  devfreq_recommended_opp
+  devfreq_register_opp_notifier
+  devfreq_remove_device
+  devfreq_unregister_opp_notifier
+  __dev_get_by_index
+  dev_get_by_index
+  dev_get_by_name
+  dev_get_regmap
+  dev_get_tstats64
+  device_add
+  device_add_disk
+  device_create
+  device_create_bin_file
+  device_create_file
+  device_create_managed_software_node
+  device_del
+  device_destroy
+  device_for_each_child
+  device_initialize
+  device_init_wakeup
+  device_link_add
+  device_link_del
+  device_property_present
+  device_property_read_string_array
+  device_property_read_u32_array
+  device_register
+  device_remove_file
+  device_rename
+  device_set_wakeup_enable
+  device_show_bool
+  device_show_int
+  device_store_bool
+  device_store_int
+  device_unregister
+  device_wakeup_enable
+  _dev_info
+  __dev_kfree_skb_any
+  devm_add_action
+  devm_backlight_device_register
+  devm_blk_ksm_init
+  devm_clk_get
+  devm_clk_get_optional
+  devm_free_irq
+  devm_gen_pool_create
+  devm_gpiochip_add_data_with_key
+  devm_hwrng_register
+  devm_i2c_new_dummy_device
+  devm_input_allocate_device
+  devm_ioremap
+  devm_ioremap_resource
+  devm_iounmap
+  __devm_irq_alloc_descs
+  devm_kasprintf
+  devm_kfree
+  devm_kmalloc
+  devm_kmemdup
+  devm_krealloc
+  devm_kstrdup
+  __devm_of_phy_provider_register
+  devm_phy_create
+  devm_phy_get
+  devm_pinctrl_get
+  devm_pinctrl_register
+  devm_platform_ioremap_resource
+  __devm_regmap_init
+  __devm_regmap_init_mmio_clk
+  devm_regulator_get
+  devm_regulator_get_optional
+  devm_regulator_register
+  __devm_request_region
+  devm_request_threaded_irq
+  __devm_reset_control_get
+  devm_rtc_device_register
+  devm_snd_dmaengine_pcm_register
+  devm_snd_soc_register_card
+  devm_snd_soc_register_component
+  devm_usb_get_phy_by_phandle
+  _dev_notice
+  dev_pm_opp_add
+  dev_pm_opp_disable
+  dev_pm_opp_find_freq_ceil
+  dev_pm_opp_find_freq_ceil_by_volt
+  dev_pm_opp_find_freq_exact
+  dev_pm_opp_find_freq_floor
+  dev_pm_opp_get_freq
+  dev_pm_opp_get_opp_count
+  dev_pm_opp_get_voltage
+  dev_pm_opp_of_add_table
+  dev_pm_opp_of_register_em
+  dev_pm_opp_of_remove_table
+  dev_pm_opp_put
+  dev_pm_opp_put_regulators
+  dev_pm_opp_set_regulators
+  dev_pm_qos_add_notifier
+  dev_pm_qos_add_request
+  dev_pm_qos_remove_request
+  dev_pm_qos_update_request
+  dev_queue_xmit
+  devres_add
+  __devres_alloc_node
+  dev_set_name
+  dev_vprintk_emit
+  _dev_warn
+  disable_irq
+  disable_irq_nosync
+  disable_percpu_irq
+  disk_end_io_acct
+  disk_start_io_acct
+  dma_alloc_attrs
+  dma_async_device_register
+  dma_async_device_unregister
+  dma_async_tx_descriptor_init
+  dma_buf_attach
+  dma_buf_begin_cpu_access
+  dma_buf_begin_cpu_access_partial
+  dma_buf_detach
+  dma_buf_end_cpu_access
+  dma_buf_end_cpu_access_partial
+  dma_buf_export
+  dma_buf_fd
+  dma_buf_get
+  dma_buf_get_flags
+  dma_buf_map_attachment
+  dma_buf_mmap
+  dmabuf_page_pool_alloc
+  dmabuf_page_pool_create
+  dmabuf_page_pool_destroy
+  dmabuf_page_pool_free
+  dma_buf_put
+  dma_buf_unmap_attachment
+  dma_buf_vmap
+  dma_buf_vunmap
+  dmaengine_unmap_put
+  dma_fence_add_callback
+  dma_fence_context_alloc
+  dma_fence_default_wait
+  dma_fence_get_status
+  dma_fence_init
+  dma_fence_release
+  dma_fence_remove_callback
+  dma_fence_signal
+  dma_fence_wait_timeout
+  dma_free_attrs
+  dma_get_slave_caps
+  dma_get_slave_channel
+  dma_heap_add
+  dma_heap_buffer_alloc
+  dma_heap_buffer_free
+  dma_heap_find
+  dma_heap_get_dev
+  dma_heap_get_drvdata
+  dma_heap_get_name
+  dma_heap_put
+  dmam_alloc_attrs
+  dma_map_page_attrs
+  dma_map_resource
+  dma_map_sg_attrs
+  dma_map_sgtable
+  dmam_free_coherent
+  dma_mmap_attrs
+  dma_release_channel
+  dma_request_chan
+  dma_set_coherent_mask
+  dma_set_mask
+  dma_sync_sg_for_cpu
+  dma_sync_sg_for_device
+  dma_sync_single_for_cpu
+  dma_sync_single_for_device
+  dma_unmap_page_attrs
+  dma_unmap_resource
+  dma_unmap_sg_attrs
+  __do_once_done
+  __do_once_start
+  do_SAK
+  do_trace_netlink_extack
+  do_wait_intr
+  down
+  downgrade_write
+  down_read
+  down_trylock
+  down_write
+  d_path
+  dql_completed
+  dql_reset
+  driver_find
+  driver_find_device
+  driver_register
+  driver_unregister
+  dump_backtrace
+  dump_stack
+  enable_irq
+  enable_percpu_irq
+  end_buffer_read_sync
+  ether_setup
+  eth_platform_get_mac_address
+  ethtool_op_get_link
+  ethtool_op_get_ts_info
+  eth_type_trans
+  eth_validate_addr
+  event_triggers_call
+  fb_mode_option
+  fd_install
+  _find_first_bit
+  find_get_pid
+  _find_next_bit
+  __find_vma
+  find_vpid
+  finish_wait
+  firmware_request_nowarn
+  flush_dcache_page
+  flush_delayed_work
+  flush_work
+  flush_workqueue
+  for_each_kernel_tracepoint
+  fput
+  free_irq
+  free_netdev
+  __free_pages
+  free_pages
+  free_percpu
+  free_percpu_irq
+  freezing_slow_path
+  freq_qos_add_request
+  freq_qos_remove_request
+  freq_qos_update_request
+  fsync_bdev
+  gcd
+  generic_file_llseek
+  generic_handle_domain_irq
+  generic_handle_irq
+  generic_mii_ioctl
+  genlmsg_multicast_allns
+  genlmsg_put
+  genl_register_family
+  genl_unregister_family
+  gen_pool_add_owner
+  gen_pool_alloc_algo_owner
+  gen_pool_avail
+  gen_pool_create
+  gen_pool_destroy
+  gen_pool_first_fit_align
+  gen_pool_free_owner
+  gen_pool_size
+  __getblk_gfp
+  get_cpu_device
+  get_device
+  __get_free_pages
+  get_net_ns_by_fd
+  get_net_ns_by_pid
+  get_pid_task
+  get_random_bytes
+  __get_task_comm
+  get_task_mm
+  get_thermal_instance
+  get_unused_fd_flags
+  get_user_pages
+  get_user_pages_fast
+  get_zeroed_page
+  gic_nonsecure_priorities
+  gpiochip_generic_free
+  gpiochip_generic_request
+  gpiochip_get_data
+  gpiochip_lock_as_irq
+  gpiochip_unlock_as_irq
+  gpiod_direction_input
+  gpiod_direction_output_raw
+  gpiod_get_raw_value
+  gpiod_set_raw_value
+  gpiod_to_irq
+  gpio_free
+  gpio_request
+  gpio_request_one
+  gpio_to_desc
+  gserial_alloc_line
+  gserial_connect
+  gserial_disconnect
+  handle_edge_irq
+  handle_level_irq
+  handle_nested_irq
+  handle_sysrq
+  hex_dump_to_buffer
+  housekeeping_cpumask
+  hrtimer_active
+  hrtimer_cancel
+  hrtimer_forward
+  __hrtimer_get_remaining
+  hrtimer_init
+  hrtimer_start_range_ns
+  hrtimer_try_to_cancel
+  i2c_add_numbered_adapter
+  i2c_del_adapter
+  i2c_del_driver
+  i2c_register_driver
+  i2c_transfer_buffer_flags
+  i2c_unregister_device
+  ida_alloc_range
+  ida_free
+  idr_alloc
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_remove
+  ignore_console_lock_warning
+  iio_device_alloc
+  iio_device_free
+  __iio_device_register
+  iio_device_unregister
+  in4_pton
+  in6_pton
+  inc_zone_page_state
+  inet_csk_get_port
+  init_dummy_netdev
+  init_net
+  init_pseudo
+  __init_rwsem
+  __init_swait_queue_head
+  init_task
+  init_timer_key
+  init_uts_ns
+  init_wait_entry
+  __init_waitqueue_head
+  input_allocate_device
+  input_close_device
+  input_event
+  input_free_device
+  input_mt_init_slots
+  input_mt_report_slot_state
+  input_open_device
+  input_register_device
+  input_register_handle
+  input_register_handler
+  input_set_abs_params
+  input_set_capability
+  input_unregister_device
+  input_unregister_handle
+  int_pow
+  iomem_resource
+  iommu_alloc_resv_region
+  iommu_device_register
+  iommu_device_sysfs_add
+  iommu_device_sysfs_remove
+  iommu_device_unlink
+  iommu_device_unregister
+  iommu_fwspec_add_ids
+  iommu_fwspec_free
+  iommu_get_dma_cookie
+  iommu_get_domain_for_dev
+  iommu_group_alloc
+  iommu_group_for_each_dev
+  iommu_group_get
+  iommu_group_get_iommudata
+  iommu_group_set_iommudata
+  iommu_group_set_name
+  iommu_iova_to_phys
+  iommu_map
+  iommu_map_sg
+  iommu_put_dma_cookie
+  iommu_register_device_fault_handler
+  iommu_report_device_fault
+  iommu_unmap
+  iommu_unregister_device_fault_handler
+  __ioremap
+  iounmap
+  ip_send_check
+  iput
+  irq_create_mapping_affinity
+  __irq_domain_add
+  irq_domain_get_irq_data
+  irq_domain_remove
+  irq_domain_set_info
+  irq_domain_xlate_onetwocell
+  irq_domain_xlate_twocell
+  irq_force_affinity
+  irq_get_irqchip_state
+  irq_get_irq_data
+  irq_modify_status
+  irq_of_parse_and_map
+  __irq_resolve_mapping
+  irq_set_affinity_hint
+  irq_set_chained_handler_and_data
+  irq_set_chip
+  irq_set_chip_and_handler_name
+  irq_set_chip_data
+  __irq_set_handler
+  irq_set_handler_data
+  irq_set_irqchip_state
+  irq_set_irq_wake
+  irq_to_desc
+  irq_work_queue
+  irq_work_sync
+  is_console_locked
+  is_dma_buf_file
+  is_vmalloc_addr
+  iterate_fd
+  jiffies
+  jiffies_to_msecs
+  jiffies_to_usecs
+  kasan_flag_enabled
+  kasprintf
+  kernel_kobj
+  kern_mount
+  kern_unmount
+  key_create_or_update
+  key_put
+  keyring_alloc
+  __kfifo_alloc
+  __kfifo_free
+  __kfifo_in
+  __kfifo_out
+  __kfifo_to_user
+  kfree
+  kfree_const
+  kfree_sensitive
+  kfree_skb
+  kill_anon_super
+  kimage_voffset
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order_trace
+  kmem_cache_alloc
+  kmem_cache_alloc_trace
+  kmem_cache_create
+  kmem_cache_destroy
+  kmem_cache_free
+  kmemdup
+  kobject_create_and_add
+  kobject_get
+  kobject_init_and_add
+  kobject_put
+  kobject_uevent
+  kobject_uevent_env
+  krealloc
+  kstat
+  kstrdup
+  kstrndup
+  kstrtobool
+  kstrtobool_from_user
+  kstrtoint
+  kstrtoint_from_user
+  kstrtol_from_user
+  kstrtoll
+  kstrtou16
+  kstrtou8
+  kstrtouint
+  kstrtouint_from_user
+  kstrtoull
+  kstrtoull_from_user
+  kthread_bind
+  kthread_cancel_delayed_work_sync
+  kthread_cancel_work_sync
+  kthread_create_on_node
+  kthread_delayed_work_timer_fn
+  kthread_flush_work
+  kthread_flush_worker
+  __kthread_init_worker
+  kthread_mod_delayed_work
+  kthread_queue_work
+  kthread_should_stop
+  kthread_stop
+  kthread_worker_fn
+  ktime_get
+  ktime_get_coarse_with_offset
+  ktime_get_mono_fast_ns
+  ktime_get_raw
+  ktime_get_raw_ts64
+  ktime_get_real_seconds
+  ktime_get_real_ts64
+  ktime_get_ts64
+  ktime_get_with_offset
+  kvasprintf
+  kvfree
+  kvfree_call_rcu
+  kvmalloc_node
+  linkwatch_fire_event
+  __list_add_valid
+  __list_del_entry_valid
+  list_sort
+  __local_bh_enable_ip
+  __lock_buffer
+  __lock_page
+  log_post_read_mmio
+  log_post_write_mmio
+  log_read_mmio
+  log_write_mmio
+  loops_per_jiffy
+  match_string
+  memchr
+  memcmp
+  memcpy
+  __memcpy_fromio
+  __memcpy_toio
+  memdup_user
+  memmove
+  memory_read_from_buffer
+  memparse
+  mem_section
+  memset64
+  memset
+  __memset_io
+  memstart_addr
+  mfd_add_devices
+  mfd_remove_devices
+  mii_ethtool_get_link_ksettings
+  mii_ethtool_gset
+  mii_ethtool_set_link_ksettings
+  mii_nway_restart
+  misc_deregister
+  misc_register
+  mmc_add_host
+  mmc_alloc_host
+  mmc_can_gpio_cd
+  mmc_cqe_request_done
+  mmc_detect_change
+  mmc_free_host
+  mmc_gpio_get_cd
+  mmc_gpio_get_ro
+  mmc_hw_reset
+  mmc_of_parse
+  mmc_regulator_get_supply
+  mmc_regulator_set_ocr
+  mmc_regulator_set_vqmmc
+  mmc_remove_host
+  mmc_request_done
+  mmc_wait_for_req
+  __mmdrop
+  mmput
+  mod_delayed_work_on
+  mod_timer
+  module_layout
+  module_put
+  __msecs_to_jiffies
+  msleep
+  msleep_interruptible
+  __mutex_init
+  mutex_is_locked
+  mutex_lock
+  mutex_lock_interruptible
+  mutex_trylock
+  mutex_unlock
+  napi_complete_done
+  napi_disable
+  napi_enable
+  napi_gro_flush
+  napi_gro_receive
+  __napi_schedule
+  napi_schedule_prep
+  __netdev_alloc_skb
+  netdev_err
+  netdev_info
+  netdev_warn
+  netif_carrier_off
+  netif_carrier_on
+  netif_napi_add
+  __netif_napi_del
+  netif_receive_skb
+  netif_rx_ni
+  netif_schedule_queue
+  netif_tx_stop_all_queues
+  netif_tx_wake_queue
+  netlink_broadcast
+  netlink_register_notifier
+  netlink_unicast
+  netlink_unregister_notifier
+  net_ns_type_operations
+  net_ratelimit
+  nla_find
+  nla_memcpy
+  __nla_parse
+  nla_put_64bit
+  nla_put
+  nla_put_nohdr
+  nla_reserve
+  __nla_validate
+  no_llseek
+  nonseekable_open
+  noop_llseek
+  nr_cpu_ids
+  nr_irqs
+  nsecs_to_jiffies
+  ns_to_kernel_old_timeval
+  ns_to_timespec64
+  __num_online_cpus
+  of_address_to_resource
+  of_alias_get_id
+  of_clk_add_provider
+  of_clk_get
+  of_clk_get_by_name
+  of_clk_src_onecell_get
+  of_count_phandle_with_args
+  of_device_get_match_data
+  of_device_is_available
+  of_device_is_compatible
+  of_dma_controller_free
+  of_dma_controller_register
+  of_dma_is_coherent
+  of_find_compatible_node
+  of_find_device_by_node
+  of_find_i2c_device_by_node
+  of_find_matching_node_and_match
+  of_find_node_by_name
+  of_find_node_by_type
+  of_find_node_opts_by_path
+  of_find_node_with_property
+  of_find_property
+  of_fwnode_ops
+  of_genpd_add_provider_simple
+  of_get_child_by_name
+  of_get_cpu_node
+  of_get_named_gpio_flags
+  of_get_next_available_child
+  of_get_next_child
+  of_get_property
+  of_get_regulator_init_data
+  of_iomap
+  of_irq_get_byname
+  of_irq_parse_one
+  of_machine_is_compatible
+  of_match_device
+  of_match_node
+  of_n_addr_cells
+  of_node_name_eq
+  of_n_size_cells
+  of_parse_phandle
+  of_parse_phandle_with_fixed_args
+  of_phandle_iterator_init
+  of_phandle_iterator_next
+  of_platform_device_create
+  of_platform_populate
+  of_property_count_elems_of_size
+  of_property_match_string
+  of_property_read_string
+  of_property_read_string_helper
+  of_property_read_u32_index
+  of_property_read_variable_u32_array
+  of_property_read_variable_u8_array
+  of_prop_next_string
+  of_prop_next_u32
+  of_pwm_xlate_with_flags
+  of_reserved_mem_device_init_by_idx
+  of_reserved_mem_device_release
+  of_reserved_mem_lookup
+  of_root
+  of_thermal_get_ntrips
+  of_usb_host_tpl_support
+  oops_in_progress
+  page_endio
+  page_mapping
+  panic
+  panic_notifier_list
+  param_array_ops
+  param_ops_bool
+  param_ops_byte
+  param_ops_charp
+  param_ops_int
+  param_ops_long
+  param_ops_string
+  param_ops_uint
+  param_ops_ullong
+  param_ops_ulong
+  pci_bus_type
+  PDE_DATA
+  __per_cpu_offset
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  pfn_is_map_memory
+  phy_init
+  phy_power_off
+  phy_power_on
+  pid_task
+  pinctrl_add_gpio_range
+  pinctrl_dev_get_drvdata
+  pinctrl_force_sleep
+  pinctrl_get
+  pinctrl_lookup_state
+  pinctrl_put
+  pinctrl_remove_gpio_range
+  pinctrl_select_state
+  pin_get_name
+  pin_user_pages
+  pin_user_pages_remote
+  platform_bus_type
+  platform_device_add
+  platform_device_add_resources
+  platform_device_alloc
+  platform_device_del
+  platform_device_put
+  platform_device_register
+  platform_device_register_full
+  platform_device_unregister
+  __platform_driver_register
+  platform_driver_unregister
+  platform_get_irq
+  platform_get_irq_byname
+  platform_get_resource
+  platform_get_resource_byname
+  __platform_register_drivers
+  pm_genpd_add_subdomain
+  pm_genpd_init
+  pm_power_off
+  __pm_relax
+  pm_relax
+  pm_runtime_allow
+  pm_runtime_barrier
+  __pm_runtime_disable
+  pm_runtime_enable
+  pm_runtime_forbid
+  pm_runtime_force_resume
+  pm_runtime_force_suspend
+  pm_runtime_get_if_active
+  __pm_runtime_idle
+  pm_runtime_irq_safe
+  pm_runtime_no_callbacks
+  __pm_runtime_resume
+  pm_runtime_set_autosuspend_delay
+  __pm_runtime_set_status
+  __pm_runtime_suspend
+  __pm_runtime_use_autosuspend
+  __pm_stay_awake
+  pm_stay_awake
+  pm_system_wakeup
+  pm_wakeup_dev_event
+  pm_wakeup_ws_event
+  power_supply_changed
+  power_supply_get_by_name
+  power_supply_get_drvdata
+  power_supply_get_property
+  power_supply_put
+  power_supply_register
+  power_supply_set_property
+  power_supply_unregister
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait_event
+  print_hex_dump
+  _printk
+  __printk_ratelimit
+  proc_create
+  proc_create_data
+  proc_create_seq_private
+  proc_mkdir
+  proc_remove
+  proc_set_size
+  proc_set_user
+  proc_symlink
+  pskb_expand_head
+  __pskb_pull_tail
+  put_device
+  __put_net
+  __put_page
+  put_pid
+  __put_task_struct
+  put_unused_fd
+  pwmchip_add
+  pwmchip_remove
+  pwm_get_chip_data
+  pwm_set_chip_data
+  queue_delayed_work_on
+  queue_work_on
+  ___ratelimit
+  raw_notifier_call_chain
+  raw_notifier_chain_register
+  raw_notifier_chain_unregister
+  _raw_read_lock
+  _raw_read_lock_bh
+  _raw_read_lock_irqsave
+  _raw_read_unlock
+  _raw_read_unlock_bh
+  _raw_read_unlock_irqrestore
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irq
+  _raw_spin_lock_irqsave
+  raw_spin_rq_lock_nested
+  raw_spin_rq_unlock
+  _raw_spin_trylock
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irq
+  _raw_spin_unlock_irqrestore
+  _raw_write_lock
+  _raw_write_lock_bh
+  _raw_write_lock_irqsave
+  _raw_write_trylock
+  _raw_write_unlock
+  _raw_write_unlock_bh
+  _raw_write_unlock_irqrestore
+  rb_erase
+  rb_first
+  rb_insert_color
+  rb_next
+  rb_prev
+  rb_replace_node
+  __rcu_read_lock
+  __rcu_read_unlock
+  rdev_get_drvdata
+  rdev_get_id
+  reciprocal_value
+  refcount_warn_saturate
+  refresh_frequency_limits
+  __refrigerator
+  regcache_cache_bypass
+  regcache_cache_only
+  regcache_mark_dirty
+  regcache_sync
+  __register_blkdev
+  __register_chrdev
+  register_console
+  register_die_notifier
+  register_inet6addr_notifier
+  register_inetaddr_notifier
+  register_kretprobe
+  register_netdev
+  register_netdevice
+  register_netdevice_notifier
+  register_oom_notifier
+  register_pernet_device
+  register_pm_notifier
+  register_reboot_notifier
+  register_restart_handler
+  register_shrinker
+  register_syscore_ops
+  regmap_multi_reg_write
+  regmap_read
+  regmap_update_bits_base
+  regmap_write
+  regulator_disable
+  regulator_enable
+  regulator_get
+  regulator_get_optional
+  regulator_is_enabled
+  regulator_list_voltage_linear
+  regulator_map_voltage_linear
+  regulator_put
+  regulator_set_voltage
+  release_firmware
+  release_pages
+  __release_region
+  remap_pfn_range
+  remap_vmalloc_range
+  remove_cpu
+  remove_proc_entry
+  request_firmware
+  request_firmware_direct
+  request_firmware_nowait
+  __request_module
+  __request_percpu_irq
+  __request_region
+  request_threaded_irq
+  resched_curr
+  reset_control_assert
+  reset_control_deassert
+  return_address
+  rfkill_alloc
+  rfkill_blocked
+  rfkill_destroy
+  rfkill_register
+  rfkill_resume_polling
+  rfkill_set_hw_state_reason
+  rfkill_unregister
+  rps_needed
+  rtc_class_close
+  rtc_class_open
+  rtc_read_time
+  rtc_set_time
+  rtc_time64_to_tm
+  rtc_tm_to_time64
+  rtc_update_irq
+  rtc_valid_tm
+  rtnl_is_locked
+  rtnl_lock
+  rtnl_unlock
+  runqueues
+  sched_clock
+  sched_clock_register
+  sched_feat_keys
+  sched_feat_names
+  sched_setscheduler
+  sched_setscheduler_nocheck
+  sched_uclamp_used
+  schedule
+  schedule_timeout
+  scnprintf
+  sdio_signal_irq
+  seq_lseek
+  seq_open
+  __seq_open_private
+  seq_printf
+  seq_putc
+  seq_puts
+  seq_read
+  seq_release
+  seq_release_private
+  seq_write
+  set_capacity
+  set_capacity_and_notify
+  set_cpus_allowed_ptr
+  set_next_entity
+  set_page_dirty_lock
+  __SetPageMovable
+  set_task_cpu
+  sg_alloc_table
+  sg_free_table
+  sg_init_one
+  sg_init_table
+  sg_miter_next
+  sg_miter_start
+  sg_miter_stop
+  sg_nents_for_len
+  sg_next
+  __sg_page_iter_next
+  __sg_page_iter_start
+  simple_attr_open
+  simple_attr_read
+  simple_attr_release
+  simple_attr_write
+  simple_open
+  simple_read_from_buffer
+  simple_strtol
+  simple_strtoul
+  simple_write_to_buffer
+  single_open
+  single_open_size
+  single_release
+  skb_add_rx_frag
+  skb_clone
+  skb_copy
+  skb_copy_bits
+  skb_copy_expand
+  skb_dequeue
+  skb_dequeue_tail
+  skb_pull
+  skb_push
+  skb_put
+  skb_queue_head
+  skb_queue_purge
+  skb_queue_tail
+  skb_realloc_headroom
+  skb_trim
+  smp_call_function
+  smp_call_function_many
+  smp_call_function_single
+  smp_call_function_single_async
+  smp_call_on_cpu
+  snd_device_free
+  snd_dma_alloc_pages
+  snd_dmaengine_pcm_prepare_slave_config
+  snd_dma_free_pages
+  snd_hwdep_new
+  snd_pcm_format_physical_width
+  snd_pcm_format_width
+  snd_pcm_lib_free_pages
+  snd_pcm_lib_ioctl
+  snd_pcm_lib_malloc_pages
+  snd_pcm_lib_preallocate_free_for_all
+  snd_pcm_lib_preallocate_pages
+  snd_pcm_period_elapsed
+  snd_soc_add_component_controls
+  snd_soc_bytes_info_ext
+  snd_soc_bytes_tlv_callback
+  snd_soc_component_async_complete
+  snd_soc_component_init_regmap
+  snd_soc_component_read
+  snd_soc_component_set_pll
+  snd_soc_component_set_sysclk
+  snd_soc_component_update_bits
+  snd_soc_component_update_bits_async
+  snd_soc_component_write
+  snd_soc_daifmt_clock_provider_from_bitmap
+  snd_soc_daifmt_parse_clock_provider_raw
+  snd_soc_daifmt_parse_format
+  snd_soc_dai_set_channel_map
+  snd_soc_dai_set_sysclk
+  snd_soc_dai_set_tdm_slot
+  snd_soc_dapm_add_routes
+  snd_soc_dapm_disable_pin
+  snd_soc_dapm_enable_pin
+  snd_soc_dapm_get_enum_double
+  snd_soc_dapm_get_pin_status
+  snd_soc_dapm_get_pin_switch
+  snd_soc_dapm_get_volsw
+  snd_soc_dapm_ignore_suspend
+  snd_soc_dapm_info_pin_switch
+  snd_soc_dapm_kcontrol_dapm
+  snd_soc_dapm_new_control
+  snd_soc_dapm_new_controls
+  snd_soc_dapm_put_enum_double
+  snd_soc_dapm_put_pin_switch
+  snd_soc_dapm_put_volsw
+  snd_soc_dapm_sync
+  snd_soc_dapm_weak_routes
+  snd_soc_find_dai
+  snd_soc_get_enum_double
+  snd_soc_get_pcm_runtime
+  snd_soc_get_volsw
+  snd_soc_get_xr_sx
+  snd_soc_info_enum_double
+  snd_soc_info_volsw
+  snd_soc_info_volsw_sx
+  snd_soc_info_xr_sx
+  snd_soc_lookup_component
+  snd_soc_new_compress
+  snd_soc_of_get_dai_link_codecs
+  snd_soc_of_get_dai_name
+  snd_soc_of_parse_audio_routing
+  snd_soc_of_put_dai_link_codecs
+  snd_soc_params_to_bclk
+  snd_soc_pm_ops
+  snd_soc_put_enum_double
+  snd_soc_put_volsw
+  snd_soc_put_xr_sx
+  snd_soc_register_card
+  snd_soc_register_component
+  snd_soc_set_runtime_hwparams
+  snd_soc_tplg_component_load
+  snd_soc_tplg_component_remove
+  snd_soc_tplg_widget_bind_event
+  snd_soc_unregister_card
+  snd_soc_unregister_component
+  snprintf
+  soc_device_register
+  __sock_create
+  sock_release
+  softnet_data
+  sort
+  __spi_alloc_controller
+  spi_controller_resume
+  spi_controller_suspend
+  spi_delay_exec
+  spi_finalize_current_message
+  spi_register_controller
+  __spi_register_driver
+  spi_setup
+  spi_sync
+  spi_unregister_controller
+  sprintf
+  srcu_init_notifier_head
+  srcu_notifier_call_chain
+  srcu_notifier_chain_register
+  srcu_notifier_chain_unregister
+  sscanf
+  __stack_chk_fail
+  stack_trace_save_tsk
+  start_backtrace
+  static_key_disable
+  static_key_slow_dec
+  static_key_slow_inc
+  stop_one_cpu_nowait
+  stpcpy
+  strcasecmp
+  strcat
+  strchr
+  strcmp
+  strcpy
+  strcspn
+  stream_open
+  strim
+  strlcat
+  strlcpy
+  strlen
+  strncasecmp
+  strncat
+  strncmp
+  strncpy
+  strnlen
+  strpbrk
+  strrchr
+  strscpy
+  strsep
+  strspn
+  strstr
+  submit_bh
+  subsys_system_register
+  __sw_hweight16
+  __sw_hweight32
+  __sw_hweight64
+  __sw_hweight8
+  sync_file_create
+  sync_file_get_fence
+  synchronize_irq
+  synchronize_net
+  synchronize_rcu
+  syscon_regmap_lookup_by_phandle
+  sysctl_sched_features
+  sysfb_disable
+  sysfs_add_file_to_group
+  sysfs_create_bin_file
+  sysfs_create_file_ns
+  sysfs_create_group
+  sysfs_create_groups
+  sysfs_create_link
+  sysfs_emit
+  __sysfs_match_string
+  sysfs_notify
+  sysfs_remove_bin_file
+  sysfs_remove_file_ns
+  sysfs_remove_group
+  sysfs_remove_link
+  sysfs_streq
+  sysrq_mask
+  system_32bit_el0_cpumask
+  system_freezing_cnt
+  system_power_efficient_wq
+  system_state
+  system_unbound_wq
+  system_wq
+  sys_tz
+  __tasklet_hi_schedule
+  tasklet_init
+  tasklet_kill
+  __tasklet_schedule
+  task_rq_lock
+  tcp_register_congestion_control
+  tcp_reno_cong_avoid
+  tcp_reno_ssthresh
+  tcp_reno_undo_cwnd
+  tcp_slow_start
+  tcp_unregister_congestion_control
+  thermal_cdev_update
+  thermal_of_cooling_device_register
+  thermal_zone_device_disable
+  thermal_zone_device_enable
+  thermal_zone_device_update
+  thermal_zone_get_zone_by_name
+  thermal_zone_of_sensor_register
+  thermal_zone_of_sensor_unregister
+  tick_nohz_get_sleep_length
+  time64_to_tm
+  topology_set_thermal_pressure
+  _totalram_pages
+  touch_softlockup_watchdog
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_handle_return
+  __traceiter_android_rvh_can_migrate_task
+  __traceiter_android_rvh_check_preempt_wakeup
+  __traceiter_android_rvh_cpu_cgroup_can_attach
+  __traceiter_android_rvh_dequeue_task
+  __traceiter_android_rvh_do_sched_yield
+  __traceiter_android_rvh_enqueue_task
+  __traceiter_android_rvh_find_busiest_queue
+  __traceiter_android_rvh_find_lowest_rq
+  __traceiter_android_rvh_find_new_ilb
+  __traceiter_android_rvh_post_init_entity_util_avg
+  __traceiter_android_rvh_replace_next_task_fair
+  __traceiter_android_rvh_sched_fork_init
+  __traceiter_android_rvh_sched_newidle_balance
+  __traceiter_android_rvh_sched_nohz_balancer_kick
+  __traceiter_android_rvh_sched_rebalance_domains
+  __traceiter_android_rvh_schedule
+  __traceiter_android_rvh_select_fallback_rq
+  __traceiter_android_rvh_select_task_rq_fair
+  __traceiter_android_rvh_select_task_rq_rt
+  __traceiter_android_rvh_set_task_cpu
+  __traceiter_android_rvh_tick_entry
+  __traceiter_android_rvh_update_misfit_status
+  __traceiter_android_rvh_wake_up_new_task
+  __traceiter_android_vh_arch_set_freq_scale
+  __traceiter_android_vh_binder_restore_priority
+  __traceiter_android_vh_binder_set_priority
+  __traceiter_android_vh_binder_wakeup_ilocked
+  __traceiter_android_vh_cpu_idle_enter
+  __traceiter_android_vh_cpu_idle_exit
+  __traceiter_android_vh_ipi_stop
+  __traceiter_android_vh_logbuf
+  __traceiter_android_vh_logbuf_pr_cont
+  __traceiter_android_vh_meminfo_proc_show
+  __traceiter_android_vh_scheduler_tick
+  __traceiter_android_vh_show_mem
+  __traceiter_binder_transaction_received
+  __traceiter_clock_set_rate
+  __traceiter_device_pm_callback_end
+  __traceiter_device_pm_callback_start
+  __traceiter_dwc3_ep_queue
+  __traceiter_dwc3_readl
+  __traceiter_dwc3_writel
+  __traceiter_gpu_mem_total
+  __traceiter_hrtimer_expire_entry
+  __traceiter_hrtimer_expire_exit
+  __traceiter_ipi_entry
+  __traceiter_ipi_exit
+  __traceiter_ipi_raise
+  __traceiter_irq_handler_entry
+  __traceiter_irq_handler_exit
+  __traceiter_pelt_cfs_tp
+  __traceiter_pelt_dl_tp
+  __traceiter_pelt_irq_tp
+  __traceiter_pelt_rt_tp
+  __traceiter_pelt_se_tp
+  __traceiter_rwmmio_post_read
+  __traceiter_rwmmio_read
+  __traceiter_rwmmio_write
+  __traceiter_sched_overutilized_tp
+  __traceiter_sched_switch
+  __traceiter_suspend_resume
+  __traceiter_workqueue_execute_end
+  __traceiter_workqueue_execute_start
+  trace_output_call
+  __tracepoint_android_rvh_can_migrate_task
+  __tracepoint_android_rvh_check_preempt_wakeup
+  __tracepoint_android_rvh_cpu_cgroup_can_attach
+  __tracepoint_android_rvh_dequeue_task
+  __tracepoint_android_rvh_do_sched_yield
+  __tracepoint_android_rvh_enqueue_task
+  __tracepoint_android_rvh_find_busiest_queue
+  __tracepoint_android_rvh_find_lowest_rq
+  __tracepoint_android_rvh_find_new_ilb
+  __tracepoint_android_rvh_post_init_entity_util_avg
+  __tracepoint_android_rvh_replace_next_task_fair
+  __tracepoint_android_rvh_sched_fork_init
+  __tracepoint_android_rvh_sched_newidle_balance
+  __tracepoint_android_rvh_sched_nohz_balancer_kick
+  __tracepoint_android_rvh_sched_rebalance_domains
+  __tracepoint_android_rvh_schedule
+  __tracepoint_android_rvh_select_fallback_rq
+  __tracepoint_android_rvh_select_task_rq_fair
+  __tracepoint_android_rvh_select_task_rq_rt
+  __tracepoint_android_rvh_set_task_cpu
+  __tracepoint_android_rvh_tick_entry
+  __tracepoint_android_rvh_update_misfit_status
+  __tracepoint_android_rvh_wake_up_new_task
+  __tracepoint_android_vh_arch_set_freq_scale
+  __tracepoint_android_vh_binder_restore_priority
+  __tracepoint_android_vh_binder_set_priority
+  __tracepoint_android_vh_binder_wakeup_ilocked
+  __tracepoint_android_vh_cpu_idle_enter
+  __tracepoint_android_vh_cpu_idle_exit
+  __tracepoint_android_vh_ipi_stop
+  __tracepoint_android_vh_logbuf
+  __tracepoint_android_vh_logbuf_pr_cont
+  __tracepoint_android_vh_meminfo_proc_show
+  __tracepoint_android_vh_scheduler_tick
+  __tracepoint_android_vh_show_mem
+  __tracepoint_binder_transaction_received
+  __tracepoint_clock_set_rate
+  __tracepoint_device_pm_callback_end
+  __tracepoint_device_pm_callback_start
+  __tracepoint_dwc3_ep_queue
+  __tracepoint_dwc3_readl
+  __tracepoint_dwc3_writel
+  __tracepoint_gpu_mem_total
+  __tracepoint_hrtimer_expire_entry
+  __tracepoint_hrtimer_expire_exit
+  __tracepoint_ipi_entry
+  __tracepoint_ipi_exit
+  __tracepoint_ipi_raise
+  __tracepoint_irq_handler_entry
+  __tracepoint_irq_handler_exit
+  __tracepoint_pelt_cfs_tp
+  __tracepoint_pelt_dl_tp
+  __tracepoint_pelt_irq_tp
+  __tracepoint_pelt_rt_tp
+  __tracepoint_pelt_se_tp
+  tracepoint_probe_register
+  tracepoint_probe_unregister
+  __tracepoint_rwmmio_post_read
+  __tracepoint_rwmmio_read
+  __tracepoint_rwmmio_write
+  __tracepoint_sched_overutilized_tp
+  __tracepoint_sched_switch
+  __tracepoint_suspend_resume
+  __tracepoint_workqueue_execute_end
+  __tracepoint_workqueue_execute_start
+  trace_print_array_seq
+  trace_print_flags_seq
+  trace_print_symbols_seq
+  trace_raw_output_prep
+  try_module_get
+  tty_flip_buffer_push
+  tty_insert_flip_string_fixed_flag
+  tty_kref_put
+  tty_port_tty_get
+  uart_add_one_port
+  uart_console_write
+  uart_get_baud_rate
+  uart_parse_options
+  uart_register_driver
+  uart_remove_one_port
+  uart_resume_port
+  uart_set_options
+  uart_suspend_port
+  uart_try_toggle_sysrq
+  uart_unregister_driver
+  uart_update_timeout
+  uart_write_wakeup
+  __ubsan_handle_cfi_check_fail_abort
+  uclamp_eff_value
+  __udelay
+  unlock_page
+  unmap_mapping_range
+  unpin_user_page
+  unregister_blkdev
+  __unregister_chrdev
+  unregister_chrdev_region
+  unregister_inet6addr_notifier
+  unregister_inetaddr_notifier
+  unregister_kretprobe
+  unregister_netdev
+  unregister_netdevice_notifier
+  unregister_netdevice_queue
+  unregister_oom_notifier
+  unregister_pernet_device
+  unregister_pm_notifier
+  unregister_reboot_notifier
+  unregister_shrinker
+  up
+  update_devfreq
+  update_rq_clock
+  up_read
+  up_write
+  usb_add_function
+  usb_add_hcd
+  usb_copy_descriptors
+  __usb_create_hcd
+  usb_deregister
+  usb_disabled
+  usb_enable_autosuspend
+  usb_ep_alloc_request
+  usb_ep_autoconfig
+  usb_ep_free_request
+  usb_ep_queue
+  usb_function_register
+  usb_function_unregister
+  usb_gadget_set_state
+  usb_hcd_is_primary_hcd
+  usb_hub_find_child
+  usb_interface_id
+  usbnet_disconnect
+  usbnet_get_endpoints
+  usbnet_get_msglevel
+  usbnet_link_change
+  usbnet_nway_reset
+  usbnet_open
+  usbnet_probe
+  usbnet_read_cmd
+  usbnet_read_cmd_nopm
+  usbnet_resume
+  usbnet_set_msglevel
+  usbnet_skb_return
+  usbnet_start_xmit
+  usbnet_stop
+  usbnet_suspend
+  usbnet_tx_timeout
+  usbnet_update_max_qlen
+  usbnet_write_cmd
+  usbnet_write_cmd_async
+  usbnet_write_cmd_nopm
+  usb_otg_state_string
+  usb_put_function_instance
+  usb_put_hcd
+  usb_register_driver
+  usb_register_notify
+  usb_remove_hcd
+  usb_speed_string
+  usb_string_id
+  usb_unregister_notify
+  __usecs_to_jiffies
+  usleep_range_state
+  v4l2_ctrl_handler_free
+  v4l2_ctrl_handler_init_class
+  v4l2_ctrl_handler_setup
+  v4l2_ctrl_new_custom
+  v4l2_ctrl_new_std
+  v4l2_device_register
+  v4l2_device_register_subdev
+  __v4l2_device_register_subdev_nodes
+  v4l2_device_unregister
+  v4l2_device_unregister_subdev
+  v4l2_fh_add
+  v4l2_fh_del
+  v4l2_fh_exit
+  v4l2_fh_init
+  v4l2_m2m_buf_queue
+  v4l2_m2m_buf_remove
+  v4l2_m2m_ctx_init
+  v4l2_m2m_ctx_release
+  v4l2_m2m_dqbuf
+  v4l2_m2m_get_curr_priv
+  v4l2_m2m_get_vq
+  v4l2_m2m_init
+  v4l2_m2m_job_finish
+  v4l2_m2m_mmap
+  v4l2_m2m_next_buf
+  v4l2_m2m_poll
+  v4l2_m2m_qbuf
+  v4l2_m2m_release
+  v4l2_m2m_reqbufs
+  v4l2_m2m_streamoff
+  v4l2_m2m_streamon
+  v4l2_m2m_try_schedule
+  v4l2_subdev_call_wrappers
+  v4l2_subdev_init
+  v4l_bound_align_image
+  vabits_actual
+  vb2_buffer_done
+  vb2_dma_sg_memops
+  vb2_dqbuf
+  vb2_plane_cookie
+  vb2_plane_vaddr
+  vb2_poll
+  vb2_qbuf
+  vb2_querybuf
+  vb2_queue_init
+  vb2_queue_release
+  vb2_reqbufs
+  vb2_streamoff
+  vb2_streamon
+  verify_pkcs7_signature
+  vfree
+  video_devdata
+  video_device_alloc
+  video_device_release
+  video_ioctl2
+  __video_register_device
+  video_unregister_device
+  vmalloc
+  vmalloc_to_page
+  vmalloc_to_pfn
+  vmalloc_user
+  vmap
+  vmf_insert_pfn_prot
+  vm_get_page_prot
+  vm_iomap_memory
+  vprintk_emit
+  vscnprintf
+  vsnprintf
+  vunmap
+  vzalloc
+  wait_for_completion
+  wait_for_completion_interruptible
+  wait_for_completion_interruptible_timeout
+  wait_for_completion_killable
+  wait_for_completion_timeout
+  __wait_on_buffer
+  wait_on_page_bit
+  __wake_up
+  wake_up_if_idle
+  __wake_up_locked_key
+  wake_up_process
+  wakeup_source_add
+  wakeup_source_register
+  wakeup_source_remove
+  wakeup_source_unregister
+  __wake_up_sync
+  __warn_printk
+  watchdog_init_timeout
+  watchdog_register_device
+  watchdog_set_restart_priority
+  watchdog_unregister_device
+  wireless_nlevent_flush
+  work_busy
+  write_dirty_buffer
+  xhci_gen_setup
+  xhci_init_driver
+  xhci_resume
+  xhci_run
+  xhci_suspend
+  zs_compact
+  zs_create_pool
+  zs_destroy_pool
+  zs_free
+  zs_get_total_pages
+  zs_huge_class_size
+  zs_malloc
+  zs_map_object
+  zs_pool_stats
+  zs_unmap_object
diff --git a/android/abi_gki_aarch64_exynosauto b/android/abi_gki_aarch64_exynosauto
new file mode 100644
index 0000000..8a141d7
--- /dev/null
+++ b/android/abi_gki_aarch64_exynosauto
@@ -0,0 +1,2169 @@
+[abi_symbol_list]
+  add_timer
+  add_wait_queue
+  alloc_anon_inode
+  alloc_chrdev_region
+  alloc_etherdev_mqs
+  alloc_netdev_mqs
+  __alloc_pages
+  __alloc_percpu
+  __alloc_skb
+  alloc_workqueue
+  amba_driver_register
+  amba_driver_unregister
+  android_debug_for_each_module
+  android_debug_symbol
+  android_kmalloc_64_create
+  anon_inode_getfd
+  anon_inode_getfile
+  __arch_clear_user
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arch_timer_read_counter
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  __arm_smccc_smc
+  atomic_notifier_call_chain
+  atomic_notifier_chain_register
+  atomic_notifier_chain_unregister
+  autoremove_wake_function
+  backlight_device_register
+  backlight_device_unregister
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_start_io_acct
+  __bitmap_and
+  __bitmap_andnot
+  __bitmap_clear
+  __bitmap_complement
+  bitmap_find_free_region
+  bitmap_free
+  bitmap_parselist
+  bitmap_print_to_pagebuf
+  bitmap_release_region
+  __bitmap_set
+  __bitmap_weight
+  __bitmap_xor
+  bitmap_zalloc
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blk_execute_rq
+  blk_get_request
+  blk_ksm_init_passthrough
+  __blk_mq_alloc_disk
+  blk_mq_alloc_tag_set
+  blk_mq_complete_request
+  blk_mq_end_request
+  blk_mq_free_tag_set
+  blk_mq_quiesce_queue
+  blk_mq_start_request
+  blk_mq_start_stopped_hw_queues
+  blk_mq_stop_hw_queue
+  blk_mq_unquiesce_queue
+  blk_mq_virtio_map_queues
+  blk_put_request
+  blk_queue_alignment_offset
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_discard_segments
+  blk_queue_max_hw_sectors
+  blk_queue_max_segments
+  blk_queue_max_segment_size
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  blk_queue_write_cache
+  blk_rq_map_kern
+  __blk_rq_map_sg
+  blk_status_to_errno
+  blocking_notifier_call_chain
+  blocking_notifier_chain_register
+  blocking_notifier_chain_unregister
+  bpf_dispatcher_xdp_func
+  bpf_master_redirect_enabled_key
+  bpf_prog_add
+  bpf_prog_put
+  bpf_prog_sub
+  bpf_stats_enabled_key
+  bpf_trace_run1
+  bpf_trace_run2
+  bpf_trace_run3
+  bpf_trace_run4
+  bpf_trace_run5
+  bpf_trace_run6
+  bpf_trace_run9
+  bpf_warn_invalid_xdp_action
+  build_skb
+  bus_find_device
+  bus_register_notifier
+  bus_set_iommu
+  bus_unregister_notifier
+  cache_line_size
+  call_netdevice_notifiers
+  call_rcu
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  cancel_work_sync
+  capable
+  cdev_add
+  cdev_alloc
+  cdev_del
+  cdev_device_add
+  cdev_device_del
+  cdev_init
+  cec_allocate_adapter
+  cec_delete_adapter
+  cec_received_msg_ts
+  cec_register_adapter
+  cec_s_phys_addr
+  cec_s_phys_addr_from_edid
+  cec_transmit_attempt_done_ts
+  cec_transmit_done_ts
+  cec_unregister_adapter
+  __cfi_slowpath_diag
+  __check_object_size
+  __class_create
+  class_destroy
+  __class_register
+  class_unregister
+  clear_page
+  __ClearPageMovable
+  clk_disable
+  clk_enable
+  clk_gate_ops
+  clk_get
+  __clk_get_hw
+  __clk_get_name
+  clk_get_rate
+  clk_hw_get_parent
+  clk_hw_register_composite
+  clk_hw_unregister
+  __clk_is_enabled
+  clk_mux_ops
+  clk_prepare
+  clk_put
+  clk_register
+  clk_register_clkdev
+  clk_register_fixed_factor
+  clk_register_fixed_rate
+  clk_set_parent
+  clk_set_rate
+  clk_unprepare
+  clk_unregister
+  cma_alloc
+  cma_release
+  complete
+  complete_all
+  complete_and_exit
+  component_add
+  component_bind_all
+  component_del
+  component_master_add_with_match
+  component_master_del
+  component_unbind_all
+  console_trylock
+  console_unlock
+  __const_udelay
+  consume_skb
+  contig_page_data
+  copy_from_user_nofault
+  __cpu_active_mask
+  cpu_bit_bitmap
+  cpufreq_cpu_get
+  cpufreq_cpu_get_raw
+  cpufreq_cpu_put
+  __cpufreq_driver_target
+  cpufreq_freq_transition_begin
+  cpufreq_freq_transition_end
+  cpufreq_frequency_table_verify
+  cpufreq_generic_attr
+  cpufreq_register_driver
+  cpufreq_table_index_unsorted
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  __cpuhp_setup_state_cpuslocked
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  cpuhp_tasks_frozen
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpumask_next
+  cpumask_next_wrap
+  cpu_number
+  __cpu_online_mask
+  cpu_pm_register_notifier
+  cpu_pm_unregister_notifier
+  __cpu_possible_mask
+  __cpu_present_mask
+  cpus_read_lock
+  cpus_read_unlock
+  crc32_le
+  crypto_alloc_base
+  crypto_alloc_shash
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_destroy_tfm
+  crypto_has_alg
+  __crypto_memneq
+  crypto_shash_final
+  crypto_shash_update
+  _ctype
+  current_work
+  debugfs_attr_read
+  debugfs_attr_write
+  debugfs_create_blob
+  debugfs_create_bool
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_create_file_size
+  debugfs_create_u32
+  debugfs_create_x32
+  debugfs_lookup
+  debugfs_remove
+  debugfs_rename
+  dec_zone_page_state
+  default_llseek
+  default_wake_function
+  deferred_free
+  delayed_work_timer_fn
+  del_gendisk
+  del_timer
+  del_timer_sync
+  destroy_workqueue
+  dev_close
+  _dev_crit
+  dev_driver_string
+  _dev_emerg
+  _dev_err
+  dev_err_probe
+  devfreq_add_device
+  devfreq_add_governor
+  devfreq_monitor_resume
+  devfreq_monitor_start
+  devfreq_monitor_stop
+  devfreq_monitor_suspend
+  devfreq_recommended_opp
+  devfreq_remove_device
+  devfreq_remove_governor
+  devfreq_update_interval
+  dev_fwnode
+  dev_get_stats
+  device_add_disk
+  device_create
+  device_create_file
+  device_create_managed_software_node
+  device_destroy
+  device_for_each_child
+  device_get_dma_attr
+  device_get_match_data
+  device_get_phy_mode
+  device_initialize
+  device_init_wakeup
+  device_link_add
+  device_link_del
+  device_property_present
+  device_property_read_u32_array
+  device_property_read_u8_array
+  device_register
+  device_remove_file
+  device_rename
+  device_set_wakeup_capable
+  device_set_wakeup_enable
+  device_unregister
+  _dev_info
+  __dev_kfree_skb_any
+  devm_add_action
+  devm_alloc_etherdev_mqs
+  devm_clk_get
+  devm_clk_get_optional
+  devm_clk_put
+  dev_mc_sync_multiple
+  dev_mc_unsync
+  devm_devfreq_register_notifier
+  devm_devfreq_unregister_notifier
+  __devm_drm_dev_alloc
+  devm_free_irq
+  devm_gen_pool_create
+  devm_get_free_pages
+  devm_gpiochip_add_data_with_key
+  devm_gpiod_get
+  devm_gpiod_get_optional
+  devm_gpio_request_one
+  devm_hwrng_register
+  devm_i2c_new_dummy_device
+  devm_ioremap
+  devm_ioremap_resource
+  devm_iounmap
+  __devm_irq_alloc_descs
+  devm_kasprintf
+  devm_kfree
+  devm_kmalloc
+  devm_kmemdup
+  devm_kstrdup
+  devm_mfd_add_devices
+  __devm_of_phy_provider_register
+  devm_pci_alloc_host_bridge
+  devm_phy_create
+  devm_phy_get
+  devm_pinctrl_get
+  devm_pinctrl_register
+  devm_platform_ioremap_resource
+  devm_platform_ioremap_resource_byname
+  __devm_regmap_init
+  __devm_regmap_init_i2c
+  __devm_regmap_init_mmio_clk
+  devm_regulator_bulk_get
+  devm_regulator_get
+  devm_regulator_register
+  __devm_request_region
+  devm_request_threaded_irq
+  __devm_reset_control_get
+  devm_rtc_device_register
+  devm_snd_dmaengine_pcm_register
+  devm_snd_soc_register_card
+  devm_snd_soc_register_component
+  devm_thermal_zone_of_sensor_register
+  _dev_notice
+  dev_open
+  dev_pm_opp_add
+  dev_pm_opp_find_freq_ceil
+  dev_pm_opp_get_voltage
+  dev_pm_opp_of_add_table
+  dev_pm_opp_of_remove_table
+  dev_pm_opp_put
+  dev_pm_opp_put_regulators
+  dev_pm_opp_set_regulators
+  dev_pm_qos_add_request
+  dev_pm_qos_read_value
+  dev_pm_qos_remove_request
+  dev_pm_qos_update_request
+  _dev_printk
+  dev_queue_xmit
+  devres_add
+  __devres_alloc_node
+  devres_free
+  devres_release
+  dev_set_mtu
+  dev_set_name
+  dev_uc_sync_multiple
+  dev_uc_unsync
+  _dev_warn
+  disable_irq
+  disable_irq_nosync
+  disk_end_io_acct
+  disk_start_io_acct
+  display_timings_release
+  dma_alloc_attrs
+  dma_async_device_register
+  dma_async_device_unregister
+  dma_async_tx_descriptor_init
+  dma_buf_attach
+  dma_buf_begin_cpu_access
+  dma_buf_detach
+  dma_buf_dynamic_attach
+  dma_buf_end_cpu_access
+  dma_buf_export
+  dma_buf_fd
+  dma_buf_get
+  dma_buf_get_flags
+  dma_buf_map_attachment
+  dma_buf_mmap
+  dma_buf_move_notify
+  dmabuf_page_pool_alloc
+  dmabuf_page_pool_create
+  dmabuf_page_pool_destroy
+  dmabuf_page_pool_free
+  dma_buf_pin
+  dma_buf_put
+  dma_buf_unmap_attachment
+  dma_buf_unpin
+  dma_buf_vmap
+  dma_buf_vunmap
+  dmaengine_get_unmap_data
+  dmaengine_unmap_put
+  dma_fence_add_callback
+  dma_fence_array_create
+  dma_fence_chain_init
+  dma_fence_chain_ops
+  dma_fence_chain_walk
+  dma_fence_context_alloc
+  dma_fence_default_wait
+  dma_fence_enable_sw_signaling
+  dma_fence_get_status
+  dma_fence_get_stub
+  dma_fence_init
+  dma_fence_release
+  dma_fence_remove_callback
+  dma_fence_signal
+  dma_fence_signal_locked
+  dma_fence_wait_any_timeout
+  dma_fence_wait_timeout
+  dma_free_attrs
+  dma_get_required_mask
+  dma_get_slave_caps
+  dma_get_slave_channel
+  dma_heap_add
+  dma_heap_buffer_alloc
+  dma_heap_buffer_free
+  dma_heap_find
+  dma_heap_get_dev
+  dma_heap_get_drvdata
+  dma_heap_get_name
+  dma_heap_put
+  dmam_alloc_attrs
+  dma_map_page_attrs
+  dma_map_resource
+  dma_map_sg_attrs
+  dma_map_sgtable
+  dma_mmap_attrs
+  dma_release_channel
+  dma_request_chan
+  __dma_request_channel
+  dma_resv_add_excl_fence
+  dma_resv_add_shared_fence
+  dma_resv_get_fences
+  dma_resv_reserve_shared
+  dma_resv_test_signaled
+  dma_resv_wait_timeout
+  dma_set_coherent_mask
+  dma_set_mask
+  dma_sync_sg_for_cpu
+  dma_sync_sg_for_device
+  dma_sync_single_for_cpu
+  dma_sync_single_for_device
+  dma_sync_wait
+  dma_unmap_page_attrs
+  dma_unmap_resource
+  dma_unmap_sg_attrs
+  do_SAK
+  do_trace_netlink_extack
+  do_wait_intr
+  down
+  downgrade_write
+  down_interruptible
+  down_read
+  down_read_killable
+  down_read_trylock
+  down_trylock
+  down_write
+  down_write_trylock
+  d_path
+  dql_completed
+  dql_reset
+  drain_workqueue
+  driver_unregister
+  drm_add_edid_modes
+  drm_add_modes_noedid
+  drm_any_plane_has_format
+  drm_aperture_remove_conflicting_pci_framebuffers
+  drm_atomic_bridge_chain_enable
+  drm_atomic_bridge_chain_pre_enable
+  drm_atomic_get_crtc_state
+  drm_atomic_helper_check
+  drm_atomic_helper_check_plane_state
+  drm_atomic_helper_cleanup_planes
+  drm_atomic_helper_commit
+  drm_atomic_helper_commit_modeset_disables
+  drm_atomic_helper_commit_planes
+  __drm_atomic_helper_connector_destroy_state
+  drm_atomic_helper_connector_destroy_state
+  __drm_atomic_helper_connector_duplicate_state
+  drm_atomic_helper_connector_duplicate_state
+  drm_atomic_helper_connector_reset
+  drm_atomic_helper_crtc_destroy_state
+  drm_atomic_helper_crtc_duplicate_state
+  drm_atomic_helper_crtc_reset
+  drm_atomic_helper_disable_plane
+  drm_atomic_helper_disable_planes_on_crtc
+  drm_atomic_helper_fake_vblank
+  drm_atomic_helper_page_flip
+  __drm_atomic_helper_plane_destroy_state
+  drm_atomic_helper_plane_destroy_state
+  __drm_atomic_helper_plane_duplicate_state
+  drm_atomic_helper_plane_duplicate_state
+  __drm_atomic_helper_plane_reset
+  drm_atomic_helper_plane_reset
+  drm_atomic_helper_set_config
+  drm_atomic_helper_shutdown
+  drm_atomic_helper_update_plane
+  drm_atomic_helper_wait_for_vblanks
+  drm_bridge_add
+  drm_bridge_attach
+  drm_bridge_hpd_notify
+  drm_bridge_remove
+  drm_calc_timestamping_constants
+  drm_compat_ioctl
+  drm_connector_attach_dp_subconnector_property
+  drm_connector_attach_encoder
+  drm_connector_cleanup
+  drm_connector_init
+  drm_connector_init_with_ddc
+  drm_connector_list_iter_begin
+  drm_connector_list_iter_end
+  drm_connector_list_iter_next
+  drm_connector_register
+  drm_connector_set_path_property
+  drm_connector_unregister
+  drm_connector_update_edid_property
+  drm_crtc_arm_vblank_event
+  drm_crtc_cleanup
+  __drm_crtc_commit_free
+  drm_crtc_handle_vblank
+  drm_crtc_helper_set_config
+  drm_crtc_helper_set_mode
+  drm_crtc_init
+  drm_crtc_init_with_planes
+  drm_crtc_send_vblank_event
+  drm_crtc_vblank_count
+  drm_crtc_vblank_get
+  drm_crtc_vblank_helper_get_vblank_timestamp
+  drm_crtc_vblank_off
+  drm_crtc_vblank_on
+  drm_crtc_vblank_put
+  drm_crtc_vblank_waitqueue
+  drm_cvt_mode
+  __drm_dbg
+  drm_debugfs_create_files
+  drm_detect_hdmi_monitor
+  drm_dev_alloc
+  drm_dev_dbg
+  drm_dev_enter
+  drm_dev_exit
+  drm_dev_printk
+  drm_dev_put
+  drm_dev_register
+  drm_dev_unplug
+  drm_dev_unregister
+  drm_display_mode_from_videomode
+  drm_display_mode_to_videomode
+  drm_do_get_edid
+  drm_dp_aux_init
+  drm_dp_aux_register
+  drm_dp_aux_unregister
+  drm_dp_bw_code_to_link_rate
+  drm_dp_calc_pbn_mode
+  drm_dp_channel_eq_ok
+  drm_dp_check_act_status
+  drm_dp_clock_recovery_ok
+  drm_dp_downstream_debug
+  drm_dp_dpcd_read
+  drm_dp_dpcd_read_link_status
+  drm_dp_dpcd_write
+  drm_dp_dsc_sink_line_buf_depth
+  drm_dp_dsc_sink_max_slice_count
+  drm_dp_find_vcpi_slots
+  drm_dp_get_adjust_request_pre_emphasis
+  drm_dp_get_adjust_request_voltage
+  drm_dp_link_rate_to_bw_code
+  drm_dp_link_train_channel_eq_delay
+  drm_dp_link_train_clock_recovery_delay
+  drm_dp_mst_allocate_vcpi
+  drm_dp_mst_deallocate_vcpi
+  drm_dp_mst_detect_port
+  drm_dp_mst_hpd_irq
+  drm_dp_mst_reset_vcpi_slots
+  drm_dp_mst_topology_mgr_init
+  drm_dp_mst_topology_mgr_set_mst
+  drm_dp_set_subconnector_property
+  drm_dp_update_payload_part1
+  drm_dp_update_payload_part2
+  drm_dsc_compute_rc_parameters
+  drm_dsc_pps_payload_pack
+  drm_edid_header_is_valid
+  drm_edid_is_valid
+  drm_edid_to_sad
+  drm_edid_to_speaker_allocation
+  drm_encoder_cleanup
+  drm_encoder_init
+  __drm_err
+  drm_flip_work_cleanup
+  drm_flip_work_commit
+  drm_flip_work_init
+  drm_flip_work_queue
+  drm_format_info
+  drm_framebuffer_cleanup
+  drm_framebuffer_init
+  drm_framebuffer_unregister_private
+  drm_gem_create_mmap_offset
+  drm_gem_dmabuf_mmap
+  drm_gem_dmabuf_release
+  drm_gem_dmabuf_vmap
+  drm_gem_dmabuf_vunmap
+  drm_gem_fb_create_handle
+  drm_gem_fb_destroy
+  drm_gem_handle_create
+  drm_gem_mmap
+  drm_gem_object_free
+  drm_gem_object_lookup
+  drm_gem_object_release
+  drm_gem_prime_export
+  drm_gem_prime_fd_to_handle
+  drm_gem_prime_handle_to_fd
+  drm_gem_prime_mmap
+  drm_gem_private_object_init
+  drm_gem_vm_close
+  drm_gem_vm_open
+  drm_get_connector_status_name
+  drm_get_edid
+  drm_get_format_info
+  drm_handle_vblank
+  drm_hdmi_avi_infoframe_from_display_mode
+  drm_helper_connector_dpms
+  drm_helper_disable_unused_functions
+  drm_helper_force_disable_all
+  drm_helper_hpd_irq_event
+  drm_helper_mode_fill_fb_struct
+  drm_helper_probe_detect
+  drm_helper_probe_single_connector_modes
+  drm_helper_resume_force_mode
+  drm_ioctl
+  drm_is_current_master
+  drm_kms_helper_hotplug_event
+  drm_kms_helper_is_poll_worker
+  drm_kms_helper_poll_disable
+  drm_kms_helper_poll_enable
+  drm_kms_helper_poll_fini
+  drm_kms_helper_poll_init
+  drm_mm_init
+  drm_mm_insert_node_in_range
+  drmm_mode_config_init
+  drm_mm_print
+  drm_mm_remove_node
+  drm_mm_reserve_node
+  drm_mm_takedown
+  drm_mode_config_cleanup
+  drm_mode_config_helper_resume
+  drm_mode_config_helper_suspend
+  drm_mode_config_reset
+  drm_mode_copy
+  drm_mode_create
+  drm_mode_create_scaling_mode_property
+  drm_mode_crtc_set_gamma_size
+  drm_mode_duplicate
+  drm_mode_object_get
+  drm_mode_object_put
+  drm_mode_probed_add
+  drm_mode_set_crtcinfo
+  drm_modeset_lock
+  drm_modeset_lock_all
+  drm_mode_set_name
+  drm_modeset_unlock
+  drm_modeset_unlock_all
+  drm_mode_vrefresh
+  drm_object_attach_property
+  drm_of_component_match_add
+  drm_of_crtc_port_mask
+  drm_of_find_possible_crtcs
+  drm_open
+  drm_panel_add
+  drm_panel_disable
+  drm_panel_enable
+  drm_panel_get_modes
+  drm_panel_init
+  drm_panel_prepare
+  drm_panel_remove
+  drm_panel_unprepare
+  drm_plane_cleanup
+  drm_plane_create_alpha_property
+  drm_plane_create_blend_mode_property
+  drm_plane_create_zpos_immutable_property
+  drm_plane_create_zpos_property
+  drm_poll
+  drm_prime_gem_destroy
+  drm_prime_pages_to_sg
+  drm_prime_sg_to_dma_addr_array
+  drm_print_bits
+  drm_printf
+  __drm_printfn_info
+  __drm_printfn_seq_file
+  drm_property_create_enum
+  drm_property_create_range
+  __drm_puts_seq_file
+  drm_read
+  drm_release
+  drm_rotation_simplify
+  drm_set_preferred_mode
+  drm_simple_encoder_init
+  drm_state_dump
+  drm_syncobj_add_point
+  drm_syncobj_create
+  drm_syncobj_find
+  drm_syncobj_find_fence
+  drm_syncobj_free
+  drm_syncobj_get_fd
+  drm_syncobj_get_handle
+  drm_syncobj_replace_fence
+  drm_universal_plane_init
+  drm_vblank_init
+  drm_writeback_connector_init
+  drm_writeback_queue_job
+  drm_writeback_signal_completion
+  dump_backtrace
+  dump_stack
+  dw_pcie_ep_init
+  dw_pcie_host_init
+  dw_pcie_own_conf_map_bus
+  dw_pcie_read
+  dw_pcie_read_dbi
+  dw_pcie_setup_rc
+  dw_pcie_write
+  dw_pcie_write_dbi
+  enable_irq
+  eth_commit_mac_addr_change
+  ether_setup
+  eth_mac_addr
+  ethnl_cable_test_amplitude
+  ethnl_cable_test_fault_length
+  ethnl_cable_test_pulse
+  ethnl_cable_test_result
+  ethnl_cable_test_step
+  eth_prepare_mac_addr_change
+  ethtool_convert_legacy_u32_to_link_mode
+  ethtool_convert_link_mode_to_legacy_u32
+  __ethtool_get_link_ksettings
+  ethtool_op_get_link
+  ethtool_op_get_ts_info
+  ethtool_sprintf
+  ethtool_virtdev_set_link_ksettings
+  eth_type_trans
+  eth_validate_addr
+  event_triggers_call
+  fasync_helper
+  __fdget
+  fd_install
+  _find_first_bit
+  _find_first_zero_bit
+  find_get_pid
+  _find_next_bit
+  __find_vma
+  finish_wait
+  flow_block_cb_setup_simple
+  flow_keys_basic_dissector
+  flow_rule_match_basic
+  flow_rule_match_ipv4_addrs
+  flow_rule_match_ports
+  flow_rule_match_vlan
+  flush_dcache_page
+  flush_delayed_work
+  flush_work
+  flush_workqueue
+  fput
+  frame_vector_create
+  frame_vector_destroy
+  frame_vector_to_pages
+  free_irq
+  free_netdev
+  __free_pages
+  free_pages
+  free_percpu
+  freezing_slow_path
+  freq_qos_add_request
+  freq_qos_update_request
+  fsync_bdev
+  gcd
+  generic_file_llseek
+  generic_handle_domain_irq
+  generic_handle_irq
+  genphy_c45_an_config_aneg
+  genphy_c45_aneg_done
+  genphy_c45_check_and_restart_aneg
+  genphy_c45_loopback
+  genphy_c45_pma_read_abilities
+  genphy_c45_pma_setup_forced
+  genphy_c45_read_link
+  genphy_c45_read_lpa
+  genphy_check_and_restart_aneg
+  __genphy_config_aneg
+  genphy_handle_interrupt_no_ack
+  genphy_read_abilities
+  genphy_read_lpa
+  genphy_read_mmd_unsupported
+  genphy_read_status
+  genphy_read_status_fixed
+  genphy_resume
+  genphy_setup_forced
+  genphy_soft_reset
+  genphy_suspend
+  genphy_update_link
+  genphy_write_mmd_unsupported
+  gen_pool_add_owner
+  gen_pool_alloc_algo_owner
+  gen_pool_avail
+  gen_pool_create
+  gen_pool_destroy
+  gen_pool_first_fit_align
+  gen_pool_free_owner
+  gen_pool_size
+  get_cpu_device
+  get_device
+  __get_free_pages
+  get_random_bytes
+  get_random_u32
+  __get_task_comm
+  get_task_mm
+  get_task_pid
+  get_unused_fd_flags
+  get_user_pages
+  get_user_pages_fast
+  get_vaddr_frames
+  get_zeroed_page
+  gic_nonsecure_priorities
+  gpiochip_generic_free
+  gpiochip_generic_request
+  gpiochip_get_data
+  gpiochip_lock_as_irq
+  gpiochip_unlock_as_irq
+  gpiod_direction_input
+  gpiod_direction_output_raw
+  gpiod_get_raw_value
+  gpiod_set_raw_value
+  gpiod_set_raw_value_cansleep
+  gpiod_set_value_cansleep
+  gpiod_to_irq
+  gpio_free
+  gpio_request
+  gpio_request_one
+  gpio_to_desc
+  handle_edge_irq
+  handle_level_irq
+  handle_nested_irq
+  handle_simple_irq
+  handle_sysrq
+  hdmi_audio_infoframe_init
+  hdmi_avi_infoframe_init
+  hdmi_avi_infoframe_pack
+  hex_dump_to_buffer
+  hrtimer_active
+  hrtimer_cancel
+  hrtimer_forward
+  hrtimer_init
+  hrtimer_start_range_ns
+  hrtimer_try_to_cancel
+  hvc_alloc
+  hvc_instantiate
+  hvc_kick
+  hvc_poll
+  hvc_remove
+  __hvc_resize
+  hwrng_register
+  hwrng_unregister
+  i2c_adapter_type
+  i2c_add_adapter
+  i2c_add_numbered_adapter
+  i2c_bit_add_bus
+  i2c_bus_type
+  i2c_del_adapter
+  i2c_del_driver
+  i2c_for_each_dev
+  i2c_get_adapter
+  i2c_new_ancillary_device
+  i2c_new_client_device
+  i2c_put_adapter
+  i2c_register_driver
+  i2c_smbus_xfer
+  i2c_transfer
+  i2c_transfer_buffer_flags
+  i2c_unregister_device
+  i2c_verify_client
+  i3c_generic_ibi_alloc_pool
+  i3c_generic_ibi_free_pool
+  i3c_generic_ibi_get_free_slot
+  i3c_generic_ibi_recycle_slot
+  i3c_master_add_i3c_dev_locked
+  i3c_master_defslvs_locked
+  i3c_master_disec_locked
+  i3c_master_do_daa
+  i3c_master_enec_locked
+  i3c_master_entdaa_locked
+  i3c_master_get_free_addr
+  i3c_master_queue_ibi
+  i3c_master_register
+  i3c_master_set_info
+  i3c_master_unregister
+  ida_alloc_range
+  ida_destroy
+  ida_free
+  idr_alloc
+  idr_alloc_cyclic
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_get_next
+  idr_remove
+  idr_replace
+  in4_pton
+  in6_pton
+  inc_zone_page_state
+  init_pseudo
+  __init_rwsem
+  __init_swait_queue_head
+  init_task
+  init_timer_key
+  init_wait_entry
+  __init_waitqueue_head
+  input_alloc_absinfo
+  input_allocate_device
+  input_close_device
+  input_event
+  input_free_device
+  input_mt_init_slots
+  input_open_device
+  input_register_device
+  input_register_handle
+  input_register_handler
+  input_set_abs_params
+  input_unregister_device
+  input_unregister_handle
+  int_pow
+  iomem_resource
+  iommu_alloc_resv_region
+  iommu_device_register
+  iommu_device_sysfs_add
+  iommu_device_sysfs_remove
+  iommu_device_unlink
+  iommu_device_unregister
+  iommu_fwspec_add_ids
+  iommu_fwspec_free
+  iommu_get_dma_cookie
+  iommu_get_domain_for_dev
+  iommu_group_alloc
+  iommu_group_for_each_dev
+  iommu_group_get
+  iommu_group_get_iommudata
+  iommu_group_remove_device
+  iommu_group_set_iommudata
+  iommu_group_set_name
+  iommu_iova_to_phys
+  iommu_map
+  iommu_map_sg
+  iommu_put_dma_cookie
+  iommu_register_device_fault_handler
+  iommu_report_device_fault
+  iommu_unmap
+  iommu_unregister_device_fault_handler
+  __ioremap
+  ioremap_cache
+  iounmap
+  iput
+  __irq_alloc_descs
+  irq_chip_ack_parent
+  irq_chip_mask_parent
+  irq_chip_unmask_parent
+  irq_create_mapping_affinity
+  irq_create_of_mapping
+  irq_dispose_mapping
+  __irq_domain_add
+  irq_domain_get_irq_data
+  irq_domain_remove
+  irq_domain_set_info
+  irq_domain_update_bus_token
+  irq_domain_xlate_twocell
+  irq_find_matching_fwspec
+  irq_get_irq_data
+  irq_modify_status
+  irq_of_parse_and_map
+  __irq_resolve_mapping
+  irq_set_affinity_hint
+  irq_set_chained_handler_and_data
+  irq_set_chip_and_handler_name
+  irq_set_chip_data
+  irq_set_irq_wake
+  irq_to_desc
+  is_dma_buf_file
+  is_vmalloc_addr
+  iterate_fd
+  jiffies64_to_msecs
+  jiffies
+  jiffies_to_msecs
+  jiffies_to_usecs
+  kasan_flag_enabled
+  kasprintf
+  kernel_kobj
+  kernel_neon_begin
+  kernel_neon_end
+  kern_mount
+  kern_unmount
+  __kfifo_in
+  __kfifo_out
+  kfree
+  kfree_const
+  kill_anon_super
+  kill_fasync
+  kimage_voffset
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order_trace
+  kmem_cache_alloc
+  kmem_cache_alloc_trace
+  kmem_cache_create
+  kmem_cache_destroy
+  kmem_cache_free
+  kmemdup
+  kmsg_dump_get_line
+  kmsg_dump_rewind
+  kobject_create_and_add
+  kobject_del
+  kobject_get
+  kobject_init_and_add
+  kobject_put
+  kobject_uevent
+  krealloc
+  kset_create_and_add
+  kset_unregister
+  kstat
+  kstrdup
+  kstrdup_const
+  kstrndup
+  kstrtobool
+  kstrtobool_from_user
+  kstrtoint
+  kstrtoint_from_user
+  kstrtol_from_user
+  kstrtoll
+  kstrtou16
+  kstrtou8
+  kstrtouint
+  kstrtouint_from_user
+  kstrtoull
+  kthread_create_on_node
+  kthread_flush_work
+  kthread_flush_worker
+  __kthread_init_worker
+  kthread_park
+  kthread_parkme
+  kthread_queue_work
+  kthread_should_park
+  kthread_should_stop
+  kthread_stop
+  kthread_unpark
+  kthread_worker_fn
+  ktime_get
+  ktime_get_mono_fast_ns
+  ktime_get_raw
+  ktime_get_raw_ts64
+  ktime_get_real_seconds
+  ktime_get_real_ts64
+  ktime_get_ts64
+  ktime_get_with_offset
+  kvfree
+  kvfree_call_rcu
+  kvmalloc_node
+  __list_add_valid
+  __list_del_entry_valid
+  __local_bh_enable_ip
+  __lock_page
+  log_post_read_mmio
+  log_post_write_mmio
+  log_read_mmio
+  log_write_mmio
+  loops_per_jiffy
+  mdiobus_alloc_size
+  mdiobus_free
+  mdiobus_get_phy
+  __mdiobus_read
+  mdiobus_read
+  __mdiobus_register
+  mdiobus_unregister
+  __mdiobus_write
+  mdiobus_write
+  mdio_device_create
+  mdio_device_free
+  memchr
+  memcpy
+  __memcpy_fromio
+  __memcpy_toio
+  memdup_user
+  mem_encrypt_active
+  memmove
+  memparse
+  mem_section
+  memset64
+  memset
+  __memset_io
+  memstart_addr
+  mfd_add_devices
+  mfd_remove_devices
+  mipi_dsi_attach
+  mipi_dsi_detach
+  mipi_dsi_device_register_full
+  mipi_dsi_device_unregister
+  mipi_dsi_driver_register_full
+  mipi_dsi_driver_unregister
+  mipi_dsi_host_register
+  mipi_dsi_host_unregister
+  misc_deregister
+  misc_register
+  __mmdrop
+  mmput
+  mmu_notifier_synchronize
+  mod_delayed_work_on
+  mod_timer
+  module_layout
+  module_put
+  __msecs_to_jiffies
+  msleep
+  msleep_interruptible
+  __mutex_init
+  mutex_is_locked
+  mutex_lock
+  mutex_lock_interruptible
+  mutex_trylock
+  mutex_unlock
+  __napi_alloc_skb
+  napi_complete_done
+  napi_consume_skb
+  napi_disable
+  napi_enable
+  napi_gro_receive
+  __napi_schedule
+  __napi_schedule_irqoff
+  napi_schedule_prep
+  netdev_alert
+  __netdev_alloc_skb
+  netdev_change_features
+  netdev_err
+  netdev_increment_features
+  netdev_info
+  netdev_lower_state_changed
+  netdev_master_upper_dev_link
+  netdev_notify_peers
+  netdev_pick_tx
+  netdev_rss_key_fill
+  netdev_rx_handler_register
+  netdev_rx_handler_unregister
+  netdev_update_features
+  netdev_upper_dev_unlink
+  netdev_warn
+  netif_carrier_off
+  netif_carrier_on
+  netif_device_attach
+  netif_device_detach
+  netif_napi_add
+  __netif_napi_del
+  netif_receive_skb
+  netif_rx
+  netif_schedule_queue
+  netif_set_real_num_rx_queues
+  netif_set_real_num_tx_queues
+  __netif_set_xps_queue
+  netif_tx_stop_all_queues
+  netif_tx_wake_queue
+  net_ratelimit
+  nf_conntrack_destroy
+  no_llseek
+  nonseekable_open
+  noop_llseek
+  nr_cpu_ids
+  nr_irqs
+  nsecs_to_jiffies
+  ns_to_timespec64
+  __num_online_cpus
+  of_address_to_resource
+  of_alias_get_id
+  of_clk_add_hw_provider
+  of_clk_add_provider
+  of_clk_del_provider
+  of_clk_get
+  of_clk_get_by_name
+  of_clk_hw_onecell_get
+  of_clk_src_onecell_get
+  of_count_phandle_with_args
+  of_device_get_match_data
+  of_device_is_available
+  of_device_is_compatible
+  of_dma_controller_free
+  of_dma_controller_register
+  of_dma_is_coherent
+  of_drm_find_bridge
+  of_drm_find_panel
+  of_find_compatible_node
+  of_find_device_by_node
+  of_find_matching_node_and_match
+  of_find_mipi_dsi_host_by_node
+  of_find_node_by_name
+  of_find_node_opts_by_path
+  of_find_node_with_property
+  of_find_property
+  of_genpd_add_provider_simple
+  of_get_child_by_name
+  of_get_display_timings
+  of_get_mac_address
+  of_get_named_gpio_flags
+  of_get_next_child
+  of_get_phy_mode
+  of_get_property
+  of_get_regulator_init_data
+  of_graph_get_endpoint_by_regs
+  of_graph_get_endpoint_count
+  of_graph_get_next_endpoint
+  of_graph_get_port_by_id
+  of_graph_get_remote_node
+  of_graph_get_remote_port
+  of_graph_get_remote_port_parent
+  of_graph_parse_endpoint
+  of_iomap
+  of_irq_find_parent
+  of_irq_parse_one
+  of_machine_is_compatible
+  of_match_device
+  of_match_node
+  of_mdiobus_register
+  of_n_addr_cells
+  of_node_name_eq
+  of_n_size_cells
+  of_parse_phandle
+  of_phandle_iterator_init
+  of_phandle_iterator_next
+  of_phy_deregister_fixed_link
+  of_phy_is_fixed_link
+  of_phy_register_fixed_link
+  of_platform_populate
+  of_property_count_elems_of_size
+  of_property_read_string
+  of_property_read_string_helper
+  of_property_read_u32_index
+  of_property_read_variable_u16_array
+  of_property_read_variable_u32_array
+  of_property_read_variable_u8_array
+  of_prop_next_string
+  of_prop_next_u32
+  of_reserved_mem_device_init_by_idx
+  of_reserved_mem_device_release
+  of_reserved_mem_lookup
+  of_root
+  of_thermal_get_ntrips
+  of_thermal_is_trip_valid
+  oops_in_progress
+  page_endio
+  page_mapping
+  page_pool_alloc_pages
+  page_pool_create
+  page_pool_destroy
+  page_pool_put_page
+  page_pool_release_page
+  panic
+  panic_notifier_list
+  param_array_ops
+  param_get_bool
+  param_get_string
+  param_ops_bint
+  param_ops_bool
+  param_ops_byte
+  param_ops_charp
+  param_ops_hexint
+  param_ops_int
+  param_ops_long
+  param_ops_string
+  param_ops_uint
+  param_set_bool
+  param_set_copystring
+  passthru_features_check
+  pci_alloc_irq_vectors_affinity
+  pci_assign_unassigned_bus_resources
+  pci_bus_resource_n
+  pci_bus_type
+  pci_clear_master
+  pci_device_is_present
+  pci_disable_device
+  pci_disable_sriov
+  pcie_get_mps
+  pci_enable_atomic_ops_to_root
+  pci_enable_device
+  pci_enable_pcie_error_reporting
+  pci_enable_sriov
+  pci_epc_map_addr
+  pci_epc_mem_alloc_addr
+  pci_epc_mem_free_addr
+  pci_epc_set_bar
+  pci_epc_unmap_addr
+  pcie_set_mps
+  pci_find_bus
+  pci_find_capability
+  pci_find_ext_capability
+  pci_find_next_capability
+  pci_free_irq_vectors
+  pci_generic_config_read
+  pci_generic_config_write
+  pci_get_device
+  pci_host_probe
+  pci_iomap
+  pci_iomap_range
+  pci_iounmap
+  pci_irq_get_affinity
+  pci_irq_vector
+  pci_load_saved_state
+  pci_lock_rescan_remove
+  pci_map_rom
+  pci_msi_create_irq_domain
+  pci_msi_mask_irq
+  pci_msi_unmask_irq
+  pci_msix_vec_count
+  pci_num_vf
+  pci_read_config_byte
+  pci_read_config_dword
+  pci_read_config_word
+  pci_rebar_get_possible_sizes
+  __pci_register_driver
+  pci_release_region
+  pci_release_resource
+  pci_release_selected_regions
+  pci_remove_root_bus
+  pci_request_region
+  pci_request_selected_regions
+  pci_rescan_bus
+  pci_reset_function
+  pci_resize_resource
+  pci_restore_state
+  pci_save_state
+  pci_set_master
+  pci_stop_root_bus
+  pci_store_saved_state
+  pci_unlock_rescan_remove
+  pci_unmap_rom
+  pci_unregister_driver
+  pci_vfs_assigned
+  pci_wait_for_pending_transaction
+  pci_write_config_dword
+  pci_write_config_word
+  PDE_DATA
+  __per_cpu_offset
+  perf_event_update_userpage
+  perf_pmu_register
+  perf_pmu_unregister
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  pfn_is_map_memory
+  phy_attached_info
+  phy_basic_t1_features
+  phy_config_aneg
+  phy_configure
+  phy_disconnect
+  phy_drivers_register
+  phy_drivers_unregister
+  phy_error
+  phy_ethtool_get_eee
+  phy_ethtool_ksettings_get
+  phy_ethtool_ksettings_set
+  phy_ethtool_nway_reset
+  phy_ethtool_set_eee
+  phy_exit
+  phy_gbit_fibre_features
+  phy_get_eee_err
+  phy_init
+  phy_init_eee
+  phylink_connect_phy
+  phylink_create
+  phylink_destroy
+  phylink_disconnect_phy
+  phylink_ethtool_get_eee
+  phylink_ethtool_get_pauseparam
+  phylink_ethtool_get_wol
+  phylink_ethtool_ksettings_get
+  phylink_ethtool_ksettings_set
+  phylink_ethtool_nway_reset
+  phylink_ethtool_set_eee
+  phylink_ethtool_set_pauseparam
+  phylink_ethtool_set_wol
+  phylink_get_eee_err
+  phylink_mii_ioctl
+  phylink_of_phy_connect
+  phylink_resume
+  phylink_set_pcs
+  phylink_set_port_modes
+  phylink_speed_down
+  phylink_speed_up
+  phylink_start
+  phylink_stop
+  phylink_suspend
+  phy_mac_interrupt
+  phy_mii_ioctl
+  __phy_modify
+  phy_modify
+  phy_modify_changed
+  phy_modify_mmd
+  phy_modify_mmd_changed
+  phy_modify_paged
+  phy_modify_paged_changed
+  phy_power_off
+  phy_power_on
+  phy_read_mmd
+  phy_read_paged
+  phy_resolve_aneg_pause
+  phy_restore_page
+  phy_resume
+  phy_save_page
+  phy_select_page
+  phy_sfp_attach
+  phy_sfp_detach
+  phy_sfp_probe
+  phy_start_aneg
+  phy_stop
+  phy_suspend
+  phy_trigger_machine
+  phy_write_mmd
+  phy_write_paged
+  pid_task
+  pinctrl_add_gpio_range
+  pinctrl_dev_get_drvdata
+  pinctrl_lookup_state
+  pinctrl_pm_select_default_state
+  pinctrl_pm_select_sleep_state
+  pinctrl_remove_gpio_range
+  pinctrl_select_state
+  pin_user_pages
+  pin_user_pages_fast
+  pin_user_pages_remote
+  pipe_lock
+  pipe_unlock
+  platform_bus_type
+  platform_device_add
+  platform_device_add_resources
+  platform_device_alloc
+  platform_device_del
+  platform_device_put
+  platform_device_register_full
+  platform_device_unregister
+  __platform_driver_probe
+  __platform_driver_register
+  platform_driver_unregister
+  platform_find_device_by_driver
+  platform_get_irq
+  platform_get_irq_byname
+  platform_get_irq_byname_optional
+  platform_get_resource
+  platform_get_resource_byname
+  __platform_register_drivers
+  platform_unregister_drivers
+  pm_genpd_add_subdomain
+  pm_genpd_init
+  pm_power_off
+  __pm_relax
+  pm_relax
+  pm_runtime_allow
+  __pm_runtime_disable
+  pm_runtime_enable
+  pm_runtime_forbid
+  pm_runtime_force_resume
+  pm_runtime_force_suspend
+  __pm_runtime_idle
+  pm_runtime_irq_safe
+  pm_runtime_no_callbacks
+  __pm_runtime_resume
+  pm_runtime_set_autosuspend_delay
+  __pm_runtime_set_status
+  __pm_runtime_suspend
+  __pm_runtime_use_autosuspend
+  __pm_stay_awake
+  pm_stay_awake
+  pm_suspend_global_flags
+  pm_wakeup_dev_event
+  pm_wakeup_ws_event
+  prandom_bytes
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait
+  prepare_to_wait_event
+  print_hex_dump
+  _printk
+  __printk_ratelimit
+  proc_create
+  proc_create_data
+  proc_mkdir
+  proc_set_size
+  __pskb_pull_tail
+  ptp_clock_event
+  ptp_clock_index
+  ptp_clock_register
+  ptp_clock_unregister
+  put_device
+  __put_page
+  put_pid
+  __put_task_struct
+  put_unused_fd
+  put_vaddr_frames
+  pwmchip_add
+  pwmchip_remove
+  pwm_get_chip_data
+  pwm_set_chip_data
+  queue_delayed_work_on
+  queue_work_on
+  radix_tree_delete
+  radix_tree_insert
+  radix_tree_iter_delete
+  radix_tree_lookup
+  radix_tree_next_chunk
+  ___ratelimit
+  _raw_read_lock
+  _raw_read_lock_irqsave
+  _raw_read_unlock
+  _raw_read_unlock_irqrestore
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irq
+  _raw_spin_lock_irqsave
+  _raw_spin_trylock
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irq
+  _raw_spin_unlock_irqrestore
+  _raw_write_lock
+  _raw_write_lock_irqsave
+  _raw_write_unlock
+  _raw_write_unlock_irqrestore
+  rb_erase
+  __rb_erase_color
+  rb_first
+  rb_first_postorder
+  __rb_insert_augmented
+  rb_insert_color
+  rb_next
+  rb_next_postorder
+  rb_prev
+  rb_replace_node
+  rcu_barrier
+  __rcu_read_lock
+  __rcu_read_unlock
+  rdev_get_drvdata
+  rdev_get_id
+  refcount_dec_and_mutex_lock
+  refcount_warn_saturate
+  __refrigerator
+  regcache_cache_only
+  regcache_mark_dirty
+  regcache_sync
+  __register_blkdev
+  __register_chrdev
+  register_chrdev_region
+  register_console
+  register_die_notifier
+  register_module_notifier
+  register_netdev
+  register_netdevice_notifier
+  register_oom_notifier
+  register_pm_notifier
+  register_reboot_notifier
+  register_restart_handler
+  register_shrinker
+  register_syscore_ops
+  register_virtio_device
+  register_virtio_driver
+  regmap_bulk_write
+  regmap_multi_reg_write
+  regmap_read
+  regmap_register_patch
+  regmap_update_bits_base
+  regmap_write
+  regulator_bulk_disable
+  regulator_bulk_enable
+  regulator_disable
+  regulator_enable
+  regulator_get
+  regulator_get_optional
+  regulator_get_voltage
+  regulator_is_enabled
+  regulator_list_voltage_linear
+  regulator_map_voltage_linear
+  regulator_put
+  regulator_register
+  regulator_set_load
+  regulator_set_voltage
+  regulator_unregister
+  release_firmware
+  release_pages
+  __release_region
+  remap_pfn_range
+  remap_vmalloc_range
+  remove_cpu
+  remove_proc_entry
+  remove_wait_queue
+  request_firmware
+  request_firmware_direct
+  request_firmware_into_buf
+  __request_region
+  request_threaded_irq
+  reset_control_assert
+  reset_control_deassert
+  reset_control_reset
+  return_address
+  rtc_time64_to_tm
+  rtc_update_irq
+  rtc_valid_tm
+  rtnl_is_locked
+  rtnl_lock
+  rtnl_unlock
+  sched_clock
+  sched_set_fifo
+  sched_set_fifo_low
+  schedule
+  schedule_timeout
+  scnprintf
+  scsi_block_when_processing_errors
+  __scsi_execute
+  scsi_print_sense_hdr
+  scsi_schedule_eh
+  sdev_prefix_printk
+  seq_hex_dump
+  seq_lseek
+  seq_open
+  seq_printf
+  seq_putc
+  seq_puts
+  seq_read
+  seq_release
+  seq_write
+  set_capacity
+  set_capacity_and_notify
+  set_cpus_allowed_ptr
+  set_disk_ro
+  set_freezable
+  set_normalized_timespec64
+  set_page_dirty_lock
+  __SetPageMovable
+  set_user_nice
+  sg_alloc_table
+  sg_alloc_table_chained
+  sg_alloc_table_from_pages_segment
+  sg_free_table
+  sg_free_table_chained
+  sg_init_one
+  sg_init_table
+  sg_miter_next
+  sg_miter_start
+  sg_miter_stop
+  sg_next
+  __sg_page_iter_next
+  __sg_page_iter_start
+  sigprocmask
+  si_meminfo
+  simple_attr_open
+  simple_attr_read
+  simple_attr_release
+  simple_attr_write
+  simple_open
+  simple_read_from_buffer
+  simple_strtoul
+  simple_write_to_buffer
+  single_open
+  single_release
+  skb_add_rx_frag
+  skb_coalesce_rx_frag
+  __skb_flow_dissect
+  skb_page_frag_refill
+  skb_partial_csum_set
+  skb_pull
+  skb_put
+  skb_to_sgvec
+  skb_tstamp_tx
+  sk_error_report
+  smp_call_function
+  smp_call_function_single
+  smp_call_on_cpu
+  snd_ctl_add
+  snd_ctl_enum_info
+  snd_ctl_new1
+  snd_dmaengine_pcm_prepare_slave_config
+  snd_pcm_add_chmap_ctls
+  snd_pcm_create_iec958_consumer_default
+  snd_pcm_fill_iec958_consumer
+  snd_pcm_fill_iec958_consumer_hw_params
+  snd_pcm_format_width
+  snd_pcm_hw_constraint_eld
+  snd_pcm_hw_constraint_integer
+  snd_pcm_lib_free_pages
+  snd_pcm_lib_ioctl
+  snd_pcm_lib_malloc_pages
+  snd_pcm_lib_preallocate_free_for_all
+  snd_pcm_lib_preallocate_pages
+  snd_pcm_period_elapsed
+  snd_soc_add_component_controls
+  snd_soc_component_init_regmap
+  snd_soc_component_read
+  snd_soc_component_update_bits
+  snd_soc_component_write
+  snd_soc_dai_set_fmt
+  snd_soc_dai_set_tdm_slot
+  snd_soc_dai_set_tristate
+  snd_soc_dapm_add_routes
+  snd_soc_dapm_get_enum_double
+  snd_soc_dapm_get_volsw
+  snd_soc_dapm_kcontrol_widget
+  snd_soc_dapm_mux_update_power
+  snd_soc_dapm_new_control
+  snd_soc_dapm_new_controls
+  snd_soc_dapm_put_enum_double
+  snd_soc_dapm_put_volsw
+  snd_soc_get_volsw
+  snd_soc_info_enum_double
+  snd_soc_info_volsw
+  snd_soc_jack_report
+  snd_soc_of_get_dai_link_codecs
+  snd_soc_of_get_dai_name
+  snd_soc_of_parse_audio_routing
+  snd_soc_of_put_dai_link_codecs
+  snd_soc_pm_ops
+  snd_soc_put_volsw
+  snd_soc_set_runtime_hwparams
+  snd_soc_unregister_component
+  snprintf
+  soc_device_register
+  softnet_data
+  sort
+  __spi_alloc_controller
+  spi_controller_resume
+  spi_controller_suspend
+  spi_delay_exec
+  spi_finalize_current_message
+  spi_register_controller
+  __spi_register_driver
+  spi_setup
+  spi_sync
+  spi_unregister_controller
+  __splice_from_pipe
+  split_page
+  sprintf
+  sprint_symbol
+  sscanf
+  __stack_chk_fail
+  start_backtrace
+  static_key_slow_dec
+  static_key_slow_inc
+  strcasecmp
+  strcat
+  strchr
+  strcmp
+  strcpy
+  strcspn
+  stream_open
+  strim
+  string_get_size
+  strlcat
+  strlcpy
+  strlen
+  strncasecmp
+  strncmp
+  strncpy
+  strnlen
+  strnstr
+  strpbrk
+  strrchr
+  strscpy
+  strsep
+  strstr
+  subsys_system_register
+  __sw_hweight32
+  __sw_hweight64
+  sync_file_create
+  sync_file_get_fence
+  synchronize_irq
+  synchronize_net
+  synchronize_rcu
+  syscon_node_to_regmap
+  syscon_regmap_lookup_by_phandle
+  sysfs_add_file_to_group
+  sysfs_create_bin_file
+  sysfs_create_file_ns
+  sysfs_create_files
+  sysfs_create_group
+  sysfs_create_groups
+  sysfs_create_link
+  sysfs_emit
+  __sysfs_match_string
+  sysfs_notify
+  sysfs_remove_bin_file
+  sysfs_remove_file_from_group
+  sysfs_remove_file_ns
+  sysfs_remove_files
+  sysfs_remove_group
+  sysfs_remove_link
+  sysfs_streq
+  sysrq_mask
+  system_freezing_cnt
+  system_state
+  system_unbound_wq
+  system_wq
+  sys_tz
+  tasklet_init
+  tasklet_kill
+  __tasklet_schedule
+  tasklet_setup
+  __task_pid_nr_ns
+  thermal_zone_device_update
+  thermal_zone_of_sensor_register
+  thermal_zone_of_sensor_unregister
+  time64_to_tm
+  _totalram_pages
+  touch_softlockup_watchdog
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_handle_return
+  __traceiter_android_vh_ipi_stop
+  __traceiter_android_vh_logbuf
+  __traceiter_android_vh_logbuf_pr_cont
+  __traceiter_android_vh_show_mem
+  __traceiter_android_vh_ufs_fill_prdt
+  __traceiter_cpu_idle
+  __traceiter_device_pm_callback_end
+  __traceiter_device_pm_callback_start
+  __traceiter_gpu_mem_total
+  __traceiter_hrtimer_expire_entry
+  __traceiter_hrtimer_expire_exit
+  __traceiter_irq_handler_entry
+  __traceiter_irq_handler_exit
+  __traceiter_rwmmio_post_read
+  __traceiter_rwmmio_read
+  __traceiter_rwmmio_write
+  __traceiter_sched_switch
+  __traceiter_suspend_resume
+  __traceiter_workqueue_execute_end
+  __traceiter_workqueue_execute_start
+  __traceiter_xdp_exception
+  trace_output_call
+  __tracepoint_android_vh_ipi_stop
+  __tracepoint_android_vh_logbuf
+  __tracepoint_android_vh_logbuf_pr_cont
+  __tracepoint_android_vh_show_mem
+  __tracepoint_android_vh_ufs_fill_prdt
+  __tracepoint_cpu_idle
+  __tracepoint_device_pm_callback_end
+  __tracepoint_device_pm_callback_start
+  __tracepoint_gpu_mem_total
+  __tracepoint_hrtimer_expire_entry
+  __tracepoint_hrtimer_expire_exit
+  __tracepoint_irq_handler_entry
+  __tracepoint_irq_handler_exit
+  tracepoint_probe_register
+  __tracepoint_rwmmio_post_read
+  __tracepoint_rwmmio_read
+  __tracepoint_rwmmio_write
+  __tracepoint_sched_switch
+  __tracepoint_suspend_resume
+  __tracepoint_workqueue_execute_end
+  __tracepoint_workqueue_execute_start
+  __tracepoint_xdp_exception
+  trace_print_array_seq
+  trace_print_flags_seq
+  trace_print_symbols_seq
+  trace_raw_output_prep
+  try_module_get
+  ttm_bo_bulk_move_lru_tail
+  ttm_bo_eviction_valuable
+  ttm_bo_init_reserved
+  ttm_bo_kmap
+  ttm_bo_kunmap
+  ttm_bo_lock_delayed_workqueue
+  ttm_bo_mem_space
+  ttm_bo_mmap_obj
+  ttm_bo_move_accel_cleanup
+  ttm_bo_move_memcpy
+  ttm_bo_move_to_lru_tail
+  ttm_bo_put
+  ttm_bo_unlock_delayed_workqueue
+  ttm_bo_validate
+  ttm_bo_vm_access
+  ttm_bo_vmap
+  ttm_bo_vm_close
+  ttm_bo_vm_dummy_page
+  ttm_bo_vm_fault_reserved
+  ttm_bo_vm_open
+  ttm_bo_vm_reserve
+  ttm_bo_vunmap
+  ttm_bo_wait
+  ttm_device_fini
+  ttm_device_init
+  ttm_eu_backoff_reservation
+  ttm_eu_fence_buffer_objects
+  ttm_eu_reserve_buffers
+  ttm_glob
+  ttm_pool_alloc
+  ttm_pool_debugfs
+  ttm_pool_free
+  ttm_range_man_fini
+  ttm_range_man_init
+  ttm_resource_free
+  ttm_resource_init
+  ttm_resource_manager_evict_all
+  ttm_resource_manager_init
+  ttm_sg_tt_init
+  ttm_tt_destroy_common
+  ttm_tt_fini
+  __tty_alloc_driver
+  tty_driver_kref_put
+  tty_flip_buffer_push
+  tty_insert_flip_string_fixed_flag
+  tty_kref_put
+  tty_port_close
+  tty_port_destroy
+  tty_port_hangup
+  tty_port_init
+  tty_port_link_device
+  tty_port_open
+  tty_port_tty_get
+  tty_register_driver
+  tty_std_termios
+  tty_unregister_driver
+  typec_register_partner
+  typec_register_port
+  typec_set_data_role
+  typec_set_pwr_opmode
+  typec_set_pwr_role
+  typec_unregister_partner
+  typec_unregister_port
+  uart_add_one_port
+  uart_console_write
+  uart_get_baud_rate
+  uart_parse_options
+  uart_register_driver
+  uart_remove_one_port
+  uart_resume_port
+  uart_set_options
+  uart_suspend_port
+  uart_try_toggle_sysrq
+  uart_unregister_driver
+  uart_update_timeout
+  uart_write_wakeup
+  __ubsan_handle_cfi_check_fail_abort
+  __udelay
+  ufshcd_config_pwr_mode
+  ufshcd_dme_get_attr
+  ufshcd_dump_regs
+  ufshcd_link_recovery
+  ufshcd_pltfrm_init
+  ufshcd_remove
+  ufshcd_shutdown
+  ufshcd_system_resume
+  ufshcd_system_suspend
+  unlock_page
+  unmap_mapping_range
+  unpin_user_page
+  unregister_blkdev
+  __unregister_chrdev
+  unregister_chrdev_region
+  unregister_console
+  unregister_netdev
+  unregister_netdevice_notifier
+  unregister_netdevice_queue
+  unregister_oom_notifier
+  unregister_pm_notifier
+  unregister_reboot_notifier
+  unregister_shrinker
+  unregister_virtio_device
+  unregister_virtio_driver
+  up
+  up_read
+  up_write
+  usb_gadget_set_state
+  usb_otg_state_string
+  __usecs_to_jiffies
+  usleep_range_state
+  uuid_gen
+  v4l2_ctrl_handler_free
+  v4l2_ctrl_handler_init_class
+  v4l2_ctrl_handler_setup
+  v4l2_ctrl_new_custom
+  v4l2_ctrl_new_std
+  v4l2_device_register
+  v4l2_device_register_subdev
+  v4l2_device_unregister
+  v4l2_device_unregister_subdev
+  v4l2_fh_add
+  v4l2_fh_del
+  v4l2_fh_exit
+  v4l2_fh_init
+  v4l2_m2m_buf_queue
+  v4l2_m2m_buf_remove
+  v4l2_m2m_ctx_init
+  v4l2_m2m_ctx_release
+  v4l2_m2m_dqbuf
+  v4l2_m2m_get_curr_priv
+  v4l2_m2m_get_vq
+  v4l2_m2m_init
+  v4l2_m2m_job_finish
+  v4l2_m2m_mmap
+  v4l2_m2m_next_buf
+  v4l2_m2m_poll
+  v4l2_m2m_qbuf
+  v4l2_m2m_querybuf
+  v4l2_m2m_release
+  v4l2_m2m_reqbufs
+  v4l2_m2m_streamoff
+  v4l2_m2m_streamon
+  v4l2_m2m_try_schedule
+  v4l2_subdev_call_wrappers
+  v4l2_subdev_init
+  v4l_bound_align_image
+  vabits_actual
+  vb2_buffer_done
+  vb2_dma_sg_memops
+  vb2_dqbuf
+  vb2_mmap
+  vb2_plane_cookie
+  vb2_plane_vaddr
+  vb2_poll
+  vb2_qbuf
+  vb2_querybuf
+  vb2_queue_init
+  vb2_queue_release
+  vb2_reqbufs
+  vb2_streamoff
+  vb2_streamon
+  vfree
+  video_devdata
+  video_device_alloc
+  video_device_release
+  video_ioctl2
+  videomode_from_timings
+  __video_register_device
+  video_unregister_device
+  virtio_break_device
+  virtio_check_driver_offered_feature
+  virtio_config_changed
+  virtio_device_freeze
+  virtio_device_restore
+  virtio_max_dma_size
+  virtio_transport_connect
+  virtio_transport_deliver_tap_pkt
+  virtio_transport_destruct
+  virtio_transport_dgram_allow
+  virtio_transport_dgram_bind
+  virtio_transport_dgram_dequeue
+  virtio_transport_dgram_enqueue
+  virtio_transport_do_socket_init
+  virtio_transport_free_pkt
+  virtio_transport_notify_buffer_size
+  virtio_transport_notify_poll_in
+  virtio_transport_notify_poll_out
+  virtio_transport_notify_recv_init
+  virtio_transport_notify_recv_post_dequeue
+  virtio_transport_notify_recv_pre_block
+  virtio_transport_notify_recv_pre_dequeue
+  virtio_transport_notify_send_init
+  virtio_transport_notify_send_post_enqueue
+  virtio_transport_notify_send_pre_block
+  virtio_transport_notify_send_pre_enqueue
+  virtio_transport_recv_pkt
+  virtio_transport_release
+  virtio_transport_seqpacket_dequeue
+  virtio_transport_seqpacket_enqueue
+  virtio_transport_seqpacket_has_data
+  virtio_transport_shutdown
+  virtio_transport_stream_allow
+  virtio_transport_stream_dequeue
+  virtio_transport_stream_enqueue
+  virtio_transport_stream_has_data
+  virtio_transport_stream_has_space
+  virtio_transport_stream_is_active
+  virtio_transport_stream_rcvhiwat
+  virtqueue_add_inbuf
+  virtqueue_add_inbuf_ctx
+  virtqueue_add_outbuf
+  virtqueue_add_sgs
+  virtqueue_detach_unused_buf
+  virtqueue_disable_cb
+  virtqueue_enable_cb
+  virtqueue_enable_cb_delayed
+  virtqueue_enable_cb_prepare
+  virtqueue_get_avail_addr
+  virtqueue_get_buf
+  virtqueue_get_buf_ctx
+  virtqueue_get_desc_addr
+  virtqueue_get_used_addr
+  virtqueue_get_vring_size
+  virtqueue_is_broken
+  virtqueue_kick
+  virtqueue_kick_prepare
+  virtqueue_notify
+  virtqueue_poll
+  vlan_uses_dev
+  vlan_vid_add
+  vlan_vid_del
+  vlan_vids_add_by_dev
+  vlan_vids_del_by_dev
+  __vmalloc
+  vmalloc
+  vmalloc_to_page
+  vmalloc_user
+  vmap
+  vmf_insert_pfn_prot
+  vm_insert_page
+  vprintk
+  vring_create_virtqueue
+  vring_del_virtqueue
+  vring_interrupt
+  vring_transport_features
+  vscnprintf
+  vsnprintf
+  vsock_core_register
+  vsock_core_unregister
+  vsock_for_each_connected_socket
+  vunmap
+  vzalloc
+  wait_for_completion
+  wait_for_completion_interruptible
+  wait_for_completion_interruptible_timeout
+  wait_for_completion_killable
+  wait_for_completion_timeout
+  wait_on_page_bit
+  __wake_up
+  __wake_up_locked
+  wake_up_process
+  wakeup_source_add
+  wakeup_source_register
+  wakeup_source_unregister
+  __warn_printk
+  watchdog_init_timeout
+  watchdog_register_device
+  watchdog_set_restart_priority
+  watchdog_unregister_device
+  work_busy
+  ww_mutex_lock
+  ww_mutex_lock_interruptible
+  ww_mutex_unlock
+  xa_destroy
+  __xa_erase
+  xa_load
+  __xa_store
+  xdp_convert_zc_to_xdp_frame
+  xdp_do_flush
+  xdp_do_redirect
+  xdp_master_redirect
+  xdp_return_frame
+  xdp_return_frame_rx_napi
+  xdp_rxq_info_is_reg
+  xdp_rxq_info_reg
+  xdp_rxq_info_reg_mem_model
+  xdp_rxq_info_unreg
+  xdp_rxq_info_unreg_mem_model
+  xdp_warn
+  xp_alloc
+  xp_dma_map
+  xp_dma_sync_for_cpu_slow
+  xp_dma_sync_for_device_slow
+  xp_dma_unmap
+  xp_free
+  xp_raw_get_dma
+  xp_set_rxq_info
+  xsk_clear_rx_need_wakeup
+  xsk_get_pool_from_qid
+  xsk_set_rx_need_wakeup
+  xsk_set_tx_need_wakeup
+  xsk_tx_completed
+  xsk_tx_peek_desc
+  xsk_tx_release
+  xsk_uses_need_wakeup
+  zs_compact
+  zs_create_pool
+  zs_destroy_pool
+  zs_free
+  zs_get_total_pages
+  zs_huge_class_size
+  zs_malloc
+  zs_map_object
+  zs_pool_stats
+  zs_unmap_object
diff --git a/android/abi_gki_aarch64_fips140 b/android/abi_gki_aarch64_fips140
new file mode 100644
index 0000000..b3df000
--- /dev/null
+++ b/android/abi_gki_aarch64_fips140
@@ -0,0 +1,149 @@
+[abi_symbol_list]
+# commonly used symbols
+  module_layout
+  __put_task_struct
+
+# required by fips140.ko
+  add_random_ready_callback
+  aead_register_instance
+  ahash_register_instance
+  arch_timer_read_counter
+  bcmp
+  cancel_work_sync
+  __cfi_slowpath_diag
+  complete_all
+  completion_done
+  cpu_have_feature
+  crypto_aead_decrypt
+  crypto_aead_encrypt
+  crypto_aead_setauthsize
+  crypto_aead_setkey
+  crypto_ahash_finup
+  crypto_ahash_setkey
+  crypto_alg_list
+  crypto_alg_sem
+  crypto_alloc_aead
+  crypto_alloc_base
+  crypto_alloc_rng
+  crypto_alloc_shash
+  crypto_alloc_skcipher
+  crypto_attr_alg_name
+  crypto_check_attr_type
+  crypto_cipher_encrypt_one
+  crypto_cipher_setkey
+  crypto_destroy_tfm
+  crypto_drop_spawn
+  crypto_get_default_null_skcipher
+  crypto_grab_aead
+  crypto_grab_ahash
+  crypto_grab_shash
+  crypto_grab_skcipher
+  crypto_grab_spawn
+  crypto_inst_setname
+  crypto_put_default_null_skcipher
+  crypto_register_aead
+  crypto_register_aeads
+  crypto_register_ahash
+  crypto_register_ahashes
+  crypto_register_alg
+  crypto_register_algs
+  crypto_register_rng
+  crypto_register_rngs
+  crypto_register_shash
+  crypto_register_shashes
+  crypto_register_skcipher
+  crypto_register_skciphers
+  crypto_register_template
+  crypto_register_templates
+  crypto_remove_spawns
+  crypto_req_done
+  crypto_rng_reset
+  crypto_shash_alg_has_setkey
+  crypto_shash_digest
+  crypto_shash_final
+  crypto_shash_finup
+  crypto_shash_setkey
+  crypto_shash_tfm_digest
+  crypto_shash_update
+  crypto_skcipher_decrypt
+  crypto_skcipher_encrypt
+  crypto_skcipher_setkey
+  crypto_spawn_tfm2
+  crypto_spawn_tfm
+  crypto_unregister_aead
+  crypto_unregister_alg
+  crypto_unregister_rng
+  crypto_unregister_rngs
+  crypto_unregister_shash
+  crypto_unregister_shashes
+  crypto_unregister_skciphers
+  crypto_unregister_template
+  crypto_unregister_templates
+  del_random_ready_callback
+  down_write
+  fpsimd_context_busy
+  get_random_bytes
+  __init_swait_queue_head
+  irq_stat
+  kasan_flag_enabled
+  kernel_neon_begin
+  kernel_neon_end
+  kfree
+  kfree_sensitive
+  __kmalloc
+  kmalloc_caches
+  kmem_cache_alloc_trace
+  kmemdup
+  ktime_get
+  __list_add_valid
+  __list_del_entry_valid
+  memcpy
+  memset
+  __mutex_init
+  mutex_lock
+  mutex_unlock
+  panic
+  preempt_schedule
+  preempt_schedule_notrace
+  _printk
+  queue_work_on
+  ___ratelimit
+  _raw_spin_lock
+  _raw_spin_unlock
+  refcount_warn_saturate
+  rng_is_initialized
+  scatterwalk_ffwd
+  scatterwalk_map_and_copy
+  sg_init_one
+  sg_init_table
+  sg_next
+  shash_free_singlespawn_instance
+  shash_register_instance
+  skcipher_alloc_instance_simple
+  skcipher_register_instance
+  skcipher_walk_aead_decrypt
+  skcipher_walk_aead_encrypt
+  skcipher_walk_done
+  skcipher_walk_virt
+  snprintf
+  __stack_chk_fail
+  strcmp
+  strlcat
+  strlcpy
+  strlen
+  strncmp
+  system_wq
+  __traceiter_android_vh_aes_decrypt
+  __traceiter_android_vh_aes_encrypt
+  __traceiter_android_vh_aes_expandkey
+  __traceiter_android_vh_sha256
+  __tracepoint_android_vh_aes_decrypt
+  __tracepoint_android_vh_aes_encrypt
+  __tracepoint_android_vh_aes_expandkey
+  __tracepoint_android_vh_sha256
+  tracepoint_probe_register
+  __ubsan_handle_cfi_check_fail_abort
+  up_write
+  wait_for_completion
+  xa_load
+  xa_store
diff --git a/android/abi_gki_aarch64_galaxy b/android/abi_gki_aarch64_galaxy
new file mode 100644
index 0000000..6864985
--- /dev/null
+++ b/android/abi_gki_aarch64_galaxy
@@ -0,0 +1,155 @@
+[abi_symbol_list]
+  __alloc_percpu_gfp
+  bdevname
+  blkcg_activate_policy
+  blkcg_deactivate_policy
+  blkcg_policy_register
+  blkcg_policy_unregister
+  blkcg_root
+  blkdev_get_by_dev
+  blkdev_get_by_path
+  blkdev_issue_flush
+  blkg_lookup_slowpath
+  blk_mq_free_request
+  blk_mq_sched_try_insert_merge
+  blk_mq_sched_try_merge
+  blk_queue_rq_timeout
+  cdc_ncm_bind_common
+  cdc_ncm_change_mtu
+  cdc_ncm_fill_tx_frame
+  cdc_ncm_rx_verify_ndp16
+  cdc_ncm_rx_verify_nth16
+  cdc_ncm_select_altsetting
+  cdc_ncm_unbind
+  class_create_file_ns
+  class_remove_file_ns
+  cleancache_register_ops
+  copy_page
+  crc16
+  create_function_device
+  css_next_descendant_pre
+  _dev_alert
+  devm_bitmap_zalloc
+  drm_edid_get_monitor_name
+  drm_edid_is_valid
+  elevator_alloc
+  elv_bio_merge_ok
+  elv_rb_add
+  elv_rb_del
+  elv_rb_find
+  elv_rb_former_request
+  elv_rb_latter_request
+  elv_register
+  elv_rqhash_add
+  elv_rqhash_del
+  elv_unregister
+  file_ra_state_init
+  file_write_and_wait_range
+  generic_perform_write
+  generic_write_checks
+  get_options
+  get_random_u64
+  gs_alloc_req
+  gserial_free_line
+  gserial_resume
+  gserial_suspend
+  gs_free_req
+  hid_hw_close
+  hid_hw_open
+  __kfifo_out_peek
+  __kfree_skb
+  kmsg_dump_get_line
+  kstrtos16
+  kthread_blkcg
+  log_suspend_abort_reason
+  name_to_dev_t
+  netlink_ack
+  of_css
+  of_find_all_nodes
+  phy_connect_direct
+  phy_find_first
+  phy_get_pause
+  phy_resolve_aneg_linkmode
+  pinctrl_get
+  proc_set_size
+  pstore_register
+  pstore_unregister
+  pwm_put
+  regulator_get_current_limit
+  rfkill_set_sw_state
+  sbitmap_queue_min_shallow_depth
+  skb_copy_ubufs
+  smpboot_unregister_percpu_thread
+  snd_soc_add_card_controls
+  snd_soc_component_enable_pin
+  snd_soc_component_get_pin_status
+  stack_trace_save_regs
+  _trace_android_vh_record_pcpu_rwsem_starttime
+  __traceiter_android_rvh_arm64_serror_panic
+  __traceiter_android_rvh_die_kernel_fault
+  __traceiter_android_rvh_do_mem_abort
+  __traceiter_android_rvh_do_ptrauth_fault
+  __traceiter_android_rvh_do_sea
+  __traceiter_android_rvh_do_sp_pc_abort
+  __traceiter_android_rvh_do_undefinstr
+  __traceiter_android_rvh_panic_unhandled
+  __traceiter_android_rvh_ufs_complete_init
+  __traceiter_android_vh_meminfo_proc_show
+  __traceiter_android_vh_ptype_head
+  __traceiter_android_vh_rtmutex_wait_finish
+  __traceiter_android_vh_rtmutex_wait_start
+  __traceiter_android_vh_rwsem_read_wait_finish
+  __traceiter_android_vh_rwsem_write_wait_finish
+  __traceiter_android_vh_sched_show_task
+  __traceiter_android_vh_show_mem
+  __traceiter_android_vh_try_to_freeze_todo
+  __traceiter_android_vh_try_to_freeze_todo_unfrozen
+  __traceiter_android_vh_watchdog_timer_softlockup
+  __traceiter_android_vh_wq_lockup_pool
+  __traceiter_block_rq_insert
+  __traceiter_hrtimer_expire_entry
+  __traceiter_hrtimer_expire_exit
+  __traceiter_irq_handler_entry
+  __traceiter_irq_handler_exit
+  __traceiter_kfree_skb
+  __traceiter_workqueue_execute_start
+  __tracepoint_android_rvh_arm64_serror_panic
+  __tracepoint_android_rvh_die_kernel_fault
+  __tracepoint_android_rvh_do_mem_abort
+  __tracepoint_android_rvh_do_ptrauth_fault
+  __tracepoint_android_rvh_do_sea
+  __tracepoint_android_rvh_do_sp_pc_abort
+  __tracepoint_android_rvh_do_undefinstr
+  __tracepoint_android_rvh_panic_unhandled
+  __tracepoint_android_rvh_ufs_complete_init
+  __tracepoint_android_vh_meminfo_proc_show
+  __tracepoint_android_vh_ptype_head
+  __tracepoint_android_vh_rtmutex_wait_finish
+  __tracepoint_android_vh_rtmutex_wait_start
+  __tracepoint_android_vh_rwsem_read_wait_finish
+  __tracepoint_android_vh_rwsem_write_wait_finish
+  __tracepoint_android_vh_sched_show_task
+  __tracepoint_android_vh_show_mem
+  __tracepoint_android_vh_try_to_freeze_todo
+  __tracepoint_android_vh_try_to_freeze_todo_unfrozen
+  __tracepoint_android_vh_watchdog_timer_softlockup
+  __tracepoint_android_vh_wq_lockup_pool
+  __tracepoint_block_rq_insert
+  __tracepoint_hrtimer_expire_entry
+  __tracepoint_hrtimer_expire_exit
+  __tracepoint_irq_handler_entry
+  __tracepoint_irq_handler_exit
+  __tracepoint_kfree_skb
+  __tracepoint_workqueue_execute_start
+  usb_alloc_dev
+  usb_deregister_dev
+  usb_find_interface
+  usb_hid_driver
+  usbnet_cdc_unbind
+  usbnet_defer_kevent
+  usbnet_generic_cdc_bind
+  usb_poison_anchored_urbs
+  usb_register_dev
+  usb_set_device_state
+  vfs_fsync_range
+  __vlan_find_dev_deep_rcu
diff --git a/android/abi_gki_aarch64_general b/android/abi_gki_aarch64_general
new file mode 100644
index 0000000..3bf31f0
--- /dev/null
+++ b/android/abi_gki_aarch64_general
@@ -0,0 +1,2082 @@
+[abi_symbol_list]
+  activate_task
+  add_cpu
+  add_device_randomness
+  add_memory
+  add_timer
+  add_uevent_var
+  add_wait_queue
+  adjust_managed_page_count
+  alloc_anon_inode
+  alloc_chrdev_region
+  alloc_etherdev_mqs
+  alloc_io_pgtable_ops
+  alloc_netdev_mqs
+  __alloc_pages
+  __alloc_percpu
+  __alloc_skb
+  alloc_skb_with_frags
+  alloc_workqueue
+  amba_bustype
+  amba_driver_register
+  amba_driver_unregister
+  android_rvh_probe_register
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arch_freq_scale
+  arch_timer_read_counter
+  argv_free
+  argv_split
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  __arm_smccc_smc
+  atomic_notifier_call_chain
+  atomic_notifier_chain_register
+  atomic_notifier_chain_unregister
+  autoremove_wake_function
+  available_idle_cpu
+  backlight_device_get_by_type
+  backlight_device_register
+  backlight_device_set_brightness
+  backlight_device_unregister
+  __balance_callbacks
+  balance_push_callback
+  bcmp
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_start_io_acct
+  bitmap_allocate_region
+  __bitmap_clear
+  bitmap_find_next_zero_area_off
+  __bitmap_or
+  bitmap_print_to_pagebuf
+  bitmap_release_region
+  __bitmap_set
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  blocking_notifier_call_chain
+  blocking_notifier_chain_register
+  blocking_notifier_chain_unregister
+  bpf_trace_run10
+  bpf_trace_run11
+  bpf_trace_run12
+  bpf_trace_run1
+  bpf_trace_run2
+  bpf_trace_run3
+  bpf_trace_run4
+  bpf_trace_run5
+  bpf_trace_run6
+  bpf_trace_run7
+  bpf_trace_run8
+  bpf_trace_run9
+  build_skb
+  bus_find_device
+  bus_for_each_dev
+  bus_register
+  bus_set_iommu
+  bus_unregister
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  cancel_work_sync
+  capable
+  cdev_add
+  cdev_del
+  cdev_device_add
+  cdev_device_del
+  cdev_init
+  __cfi_slowpath_diag
+  cgroup_taskset_first
+  cgroup_taskset_next
+  __check_object_size
+  check_preempt_curr
+  check_zeroed_user
+  __class_create
+  class_destroy
+  class_find_device
+  class_for_each_device
+  __class_register
+  class_unregister
+  cleanup_srcu_struct
+  clear_page
+  __ClearPageMovable
+  clk_bulk_disable
+  clk_bulk_enable
+  clk_bulk_prepare
+  clk_bulk_unprepare
+  __clk_determine_rate
+  clk_disable
+  clk_enable
+  clk_fixed_factor_ops
+  clk_fixed_rate_ops
+  clk_get
+  __clk_get_hw
+  __clk_get_name
+  clk_get_parent
+  clk_get_rate
+  clk_hw_get_flags
+  clk_hw_get_name
+  clk_hw_get_num_parents
+  clk_hw_get_parent
+  clk_hw_get_parent_by_index
+  clk_hw_get_rate
+  clk_hw_is_enabled
+  clk_hw_is_prepared
+  clk_hw_register
+  clk_hw_round_rate
+  clk_hw_unregister
+  __clk_is_enabled
+  __clk_mux_determine_rate_closest
+  clk_prepare
+  clk_put
+  clk_round_rate
+  clk_set_parent
+  clk_set_rate
+  clk_sync_state
+  clk_unprepare
+  cma_alloc
+  cma_release
+  compat_ptr_ioctl
+  complete
+  complete_all
+  completion_done
+  component_add
+  component_bind_all
+  component_del
+  component_master_add_with_match
+  component_master_del
+  component_match_add_release
+  component_unbind_all
+  config_ep_by_speed
+  configfs_register_group
+  configfs_register_subsystem
+  configfs_unregister_subsystem
+  config_group_init
+  config_group_init_type_name
+  config_item_get
+  config_item_put
+  config_item_set_name
+  console_stop
+  console_suspend_enabled
+  __const_udelay
+  consume_skb
+  contig_page_data
+  __cpu_active_mask
+  cpu_bit_bitmap
+  cpufreq_cpu_get
+  cpufreq_cpu_get_raw
+  cpufreq_cpu_put
+  cpufreq_dbs_governor_exit
+  cpufreq_dbs_governor_init
+  cpufreq_dbs_governor_limits
+  cpufreq_dbs_governor_start
+  cpufreq_dbs_governor_stop
+  cpufreq_disable_fast_switch
+  cpufreq_driver_fast_switch
+  cpufreq_driver_resolve_freq
+  __cpufreq_driver_target
+  cpufreq_enable_boost_support
+  cpufreq_enable_fast_switch
+  cpufreq_freq_attr_scaling_available_freqs
+  cpufreq_freq_attr_scaling_boost_freqs
+  cpufreq_generic_frequency_table_verify
+  cpufreq_get_driver_data
+  cpufreq_get_policy
+  cpufreq_register_driver
+  cpufreq_register_governor
+  cpufreq_register_notifier
+  cpufreq_table_index_unsorted
+  cpufreq_unregister_driver
+  cpufreq_unregister_governor
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  __cpuhp_setup_state_cpuslocked
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpuidle_governor_latency_req
+  cpuidle_register_governor
+  cpu_irqtime
+  cpu_latency_qos_add_request
+  cpu_latency_qos_remove_request
+  cpu_latency_qos_request_active
+  cpu_latency_qos_update_request
+  cpumask_any_and_distribute
+  cpumask_next
+  cpumask_next_and
+  cpu_number
+  __cpu_online_mask
+  cpu_pm_register_notifier
+  cpu_pm_unregister_notifier
+  __cpu_possible_mask
+  __cpu_present_mask
+  cpupri_find_fitness
+  cpu_scale
+  cpus_read_lock
+  cpus_read_unlock
+  cpu_subsys
+  cpu_topology
+  crypto_alloc_base
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_destroy_tfm
+  crypto_has_alg
+  css_next_child
+  csum_ipv6_magic
+  csum_partial
+  csum_tcpudp_nofold
+  _ctype
+  datagram_poll
+  dbs_update
+  deactivate_task
+  debugfs_attr_read
+  debugfs_attr_write
+  debugfs_create_bool
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_create_file_unsafe
+  debugfs_create_u16
+  debugfs_create_u32
+  debugfs_create_u64
+  debugfs_create_u8
+  debugfs_create_ulong
+  debugfs_create_x32
+  debugfs_create_x64
+  debugfs_create_x8
+  debugfs_file_get
+  debugfs_file_put
+  debugfs_lookup
+  debugfs_remove
+  dec_node_page_state
+  dec_zone_page_state
+  default_llseek
+  deferred_free
+  delayed_work_timer_fn
+  del_gendisk
+  del_timer
+  del_timer_sync
+  destroy_workqueue
+  dev_coredumpm
+  dev_coredumpv
+  _dev_crit
+  dev_driver_string
+  _dev_emerg
+  _dev_err
+  dev_err_probe
+  devfreq_add_device
+  devfreq_add_governor
+  devfreq_cooling_unregister
+  devfreq_get_devfreq_by_node
+  devfreq_remove_device
+  devfreq_remove_governor
+  devfreq_resume_device
+  devfreq_suspend_device
+  dev_fwnode
+  __dev_get_by_index
+  dev_get_by_name
+  dev_get_regmap
+  dev_get_stats
+  device_add
+  device_add_disk
+  device_add_groups
+  device_create
+  device_create_file
+  device_create_with_groups
+  device_destroy
+  device_find_child
+  device_for_each_child
+  device_get_child_node_count
+  device_get_match_data
+  device_get_next_child_node
+  device_initialize
+  device_init_wakeup
+  device_link_add
+  device_match_fwnode
+  device_match_name
+  device_property_present
+  device_property_read_string
+  device_property_read_u16_array
+  device_property_read_u32_array
+  device_register
+  device_remove_file
+  device_show_int
+  device_store_int
+  device_unregister
+  device_wakeup_disable
+  _dev_info
+  __dev_kfree_skb_any
+  devm_add_action
+  devm_blk_ksm_init
+  devm_clk_bulk_get
+  devm_clk_bulk_get_all
+  devm_clk_get
+  devm_clk_get_optional
+  devm_clk_hw_register
+  devm_clk_put
+  devm_clk_register
+  devm_extcon_dev_allocate
+  devm_extcon_dev_register
+  devm_free_irq
+  devm_gen_pool_create
+  devm_gpiod_get_optional
+  devm_gpio_request
+  devm_gpio_request_one
+  devm_hwspin_lock_register
+  devm_iio_channel_get
+  devm_iio_device_alloc
+  __devm_iio_device_register
+  devm_input_allocate_device
+  devm_ioremap
+  devm_ioremap_resource
+  devm_ioremap_wc
+  devm_iounmap
+  devm_kasprintf
+  devm_kfree
+  devm_kmalloc
+  devm_kmemdup
+  devm_krealloc
+  devm_kstrdup
+  devm_led_classdev_register_ext
+  devm_mbox_controller_register
+  devm_mfd_add_devices
+  devm_nvmem_device_get
+  devm_nvmem_register
+  devm_of_clk_add_hw_provider
+  devm_of_clk_del_provider
+  devm_of_icc_get
+  __devm_of_phy_provider_register
+  devm_of_platform_populate
+  devm_of_pwm_get
+  devm_phy_create
+  devm_pinctrl_get
+  devm_pinctrl_put
+  devm_pinctrl_register
+  devm_platform_ioremap_resource
+  devm_pm_opp_of_add_table
+  devm_pm_opp_set_clkname
+  devm_power_supply_register
+  devm_regmap_field_alloc
+  __devm_regmap_init
+  __devm_regmap_init_i2c
+  __devm_regmap_init_mmio_clk
+  devm_regulator_bulk_get
+  devm_regulator_get
+  devm_regulator_get_exclusive
+  devm_regulator_get_optional
+  devm_regulator_put
+  devm_regulator_register
+  devm_regulator_register_notifier
+  __devm_request_region
+  devm_request_threaded_irq
+  __devm_reset_control_get
+  devm_reset_controller_register
+  devm_snd_soc_register_component
+  __devm_spi_alloc_controller
+  devm_thermal_of_cooling_device_register
+  devm_thermal_zone_of_sensor_register
+  devm_usb_get_phy_by_node
+  _dev_notice
+  dev_pm_domain_attach_by_name
+  dev_pm_domain_detach
+  dev_pm_genpd_add_notifier
+  dev_pm_genpd_remove_notifier
+  dev_pm_genpd_set_next_wakeup
+  dev_pm_genpd_set_performance_state
+  dev_pm_opp_add
+  dev_pm_opp_adjust_voltage
+  dev_pm_opp_disable
+  dev_pm_opp_enable
+  dev_pm_opp_find_freq_ceil
+  dev_pm_opp_find_freq_exact
+  dev_pm_opp_find_freq_floor
+  dev_pm_opp_get_opp_count
+  dev_pm_opp_get_voltage
+  dev_pm_opp_of_add_table
+  dev_pm_opp_of_cpumask_remove_table
+  dev_pm_opp_of_find_icc_paths
+  dev_pm_opp_of_register_em
+  dev_pm_opp_of_remove_table
+  dev_pm_opp_put
+  dev_pm_opp_put_clkname
+  dev_pm_opp_remove_all_dynamic
+  dev_pm_opp_set_clkname
+  dev_pm_opp_set_opp
+  dev_pm_opp_set_rate
+  dev_pm_opp_set_sharing_cpus
+  dev_pm_qos_add_notifier
+  dev_pm_qos_add_request
+  dev_pm_qos_remove_notifier
+  dev_pm_qos_remove_request
+  dev_pm_qos_update_request
+  dev_queue_xmit
+  devres_add
+  __devres_alloc_node
+  devres_free
+  devres_release
+  dev_set_name
+  _dev_warn
+  disable_irq
+  disable_irq_nosync
+  disable_percpu_irq
+  disk_end_io_acct
+  disk_start_io_acct
+  divider_get_val
+  divider_recalc_rate
+  divider_ro_round_rate_parent
+  divider_round_rate_parent
+  dma_alloc_attrs
+  dma_alloc_pages
+  dma_async_device_register
+  dma_async_device_unregister
+  dma_async_tx_descriptor_init
+  dma_buf_attach
+  dma_buf_begin_cpu_access
+  dma_buf_begin_cpu_access_partial
+  dma_buf_detach
+  dma_buf_end_cpu_access
+  dma_buf_end_cpu_access_partial
+  dma_buf_export
+  dma_buf_get
+  dma_buf_map_attachment
+  dma_buf_put
+  dma_buf_unmap_attachment
+  dma_buf_vmap
+  dma_buf_vunmap
+  dma_fence_add_callback
+  dma_fence_array_create
+  dma_fence_array_ops
+  dma_fence_context_alloc
+  dma_fence_default_wait
+  dma_fence_free
+  dma_fence_get_status
+  dma_fence_init
+  dma_fence_release
+  dma_fence_remove_callback
+  dma_fence_signal
+  dma_fence_signal_locked
+  dma_fence_signal_timestamp_locked
+  dma_fence_wait_timeout
+  dma_free_attrs
+  dma_free_pages
+  dma_get_sgtable_attrs
+  dma_get_slave_channel
+  dma_heap_add
+  dma_heap_find
+  dma_heap_get_dev
+  dma_heap_get_drvdata
+  dma_heap_get_name
+  dmam_alloc_attrs
+  dma_map_page_attrs
+  dma_map_resource
+  dma_map_sg_attrs
+  dma_map_sgtable
+  dmam_free_coherent
+  dma_mmap_attrs
+  dma_release_channel
+  dma_request_chan
+  dma_resv_fini
+  dma_resv_init
+  dma_resv_wait_timeout
+  dma_set_coherent_mask
+  dma_set_mask
+  dma_sync_sg_for_cpu
+  dma_sync_sg_for_device
+  dma_sync_single_for_cpu
+  dma_sync_single_for_device
+  dma_unmap_page_attrs
+  dma_unmap_resource
+  dma_unmap_sg_attrs
+  do_trace_netlink_extack
+  double_rq_lock
+  do_wait_intr
+  down
+  down_interruptible
+  down_read
+  down_write
+  d_path
+  dput
+  drain_workqueue
+  driver_find_device
+  driver_register
+  driver_unregister
+  drm_add_edid_modes
+  drm_atomic_commit
+  drm_atomic_get_connector_state
+  drm_atomic_get_crtc_state
+  drm_atomic_get_plane_state
+  drm_atomic_helper_check
+  drm_atomic_helper_cleanup_planes
+  drm_atomic_helper_commit_duplicated_state
+  drm_atomic_helper_commit_hw_done
+  drm_atomic_helper_commit_modeset_disables
+  drm_atomic_helper_commit_modeset_enables
+  drm_atomic_helper_commit_planes
+  __drm_atomic_helper_connector_destroy_state
+  __drm_atomic_helper_connector_duplicate_state
+  __drm_atomic_helper_connector_reset
+  __drm_atomic_helper_crtc_destroy_state
+  __drm_atomic_helper_crtc_duplicate_state
+  drm_atomic_helper_dirtyfb
+  drm_atomic_helper_disable_plane
+  drm_atomic_helper_duplicate_state
+  drm_atomic_helper_page_flip
+  __drm_atomic_helper_plane_duplicate_state
+  drm_atomic_helper_prepare_planes
+  drm_atomic_helper_set_config
+  drm_atomic_helper_shutdown
+  drm_atomic_helper_swap_state
+  drm_atomic_helper_update_legacy_modeset_state
+  drm_atomic_helper_update_plane
+  drm_atomic_helper_wait_for_fences
+  drm_atomic_helper_wait_for_vblanks
+  drm_atomic_set_crtc_for_connector
+  drm_atomic_set_crtc_for_plane
+  drm_atomic_set_fb_for_plane
+  drm_atomic_set_fence_for_plane
+  drm_atomic_set_mode_for_crtc
+  drm_atomic_state_alloc
+  drm_atomic_state_clear
+  drm_atomic_state_default_clear
+  drm_atomic_state_default_release
+  __drm_atomic_state_free
+  drm_atomic_state_init
+  drm_bridge_attach
+  drm_bridge_chain_disable
+  drm_bridge_chain_enable
+  drm_bridge_chain_mode_set
+  drm_bridge_chain_post_disable
+  drm_bridge_chain_pre_enable
+  drm_client_init
+  drm_client_modeset_commit_locked
+  drm_client_register
+  drm_compat_ioctl
+  drm_connector_attach_encoder
+  drm_connector_cleanup
+  drm_connector_init
+  drm_connector_list_iter_begin
+  drm_connector_list_iter_end
+  drm_connector_list_iter_next
+  drm_connector_unregister
+  drm_connector_update_edid_property
+  drm_crtc_cleanup
+  drm_crtc_handle_vblank
+  drm_crtc_init_with_planes
+  drm_crtc_send_vblank_event
+  drm_crtc_set_max_vblank_count
+  drm_crtc_vblank_off
+  drm_crtc_vblank_on
+  drm_crtc_vblank_reset
+  drm_crtc_wait_one_vblank
+  __drm_dbg
+  __drm_debug
+  drm_detect_hdmi_monitor
+  drm_dev_alloc
+  drm_dev_dbg
+  drm_dev_printk
+  drm_dev_put
+  drm_dev_register
+  drm_dev_unregister
+  drm_encoder_cleanup
+  drm_encoder_init
+  __drm_err
+  drm_event_reserve_init_locked
+  drm_format_info
+  drm_framebuffer_init
+  drm_framebuffer_lookup
+  drm_gem_create_mmap_offset
+  drm_gem_fb_create_handle
+  drm_gem_fb_destroy
+  drm_gem_fb_get_obj
+  drm_gem_get_pages
+  drm_gem_handle_create
+  drm_gem_mmap
+  drm_gem_mmap_obj
+  drm_gem_object_free
+  drm_gem_object_init
+  drm_gem_object_lookup
+  drm_gem_object_release
+  drm_gem_prime_fd_to_handle
+  drm_gem_prime_handle_to_fd
+  drm_gem_private_object_init
+  drm_gem_put_pages
+  drm_gem_vm_close
+  drm_gem_vm_open
+  drm_get_edid
+  drm_get_format_info
+  drm_helper_mode_fill_fb_struct
+  drm_helper_probe_single_connector_modes
+  drm_ioctl
+  drm_is_current_master
+  drm_kms_helper_poll_disable
+  drm_kms_helper_poll_enable
+  drm_kms_helper_poll_fini
+  drm_kms_helper_poll_init
+  drm_mm_init
+  drm_mm_insert_node_in_range
+  drmm_mode_config_init
+  drm_mm_remove_node
+  drm_mm_takedown
+  drm_mode_config_cleanup
+  drm_mode_config_reset
+  drm_mode_copy
+  drm_mode_debug_printmodeline
+  drm_mode_duplicate
+  drm_mode_equal
+  drm_mode_match
+  drm_mode_object_find
+  drm_mode_object_get
+  drm_mode_object_put
+  drm_mode_probed_add
+  drm_modeset_acquire_fini
+  drm_modeset_acquire_init
+  drm_modeset_backoff
+  drm_mode_set_crtcinfo
+  drm_modeset_drop_locks
+  drm_modeset_lock
+  drm_modeset_lock_all_ctx
+  drm_mode_vrefresh
+  drm_object_attach_property
+  drm_object_property_set_value
+  drm_of_component_match_add
+  drm_open
+  drm_panel_add
+  drm_panel_init
+  drm_panel_remove
+  drm_plane_cleanup
+  drm_plane_create_rotation_property
+  drm_poll
+  drm_prime_gem_destroy
+  drm_prime_pages_to_sg
+  drm_printf
+  __drm_printfn_coredump
+  drm_property_blob_get
+  drm_property_blob_put
+  drm_property_create
+  drm_property_create_bitmask
+  drm_property_create_blob
+  drm_property_create_enum
+  drm_property_create_range
+  drm_property_lookup_blob
+  __drm_puts_coredump
+  drm_read
+  drm_release
+  drm_rotation_simplify
+  drm_send_event_locked
+  drm_set_preferred_mode
+  drm_universal_plane_init
+  drm_vblank_init
+  __dynamic_dev_dbg
+  enable_irq
+  enable_percpu_irq
+  ether_setup
+  eth_mac_addr
+  eth_type_trans
+  event_triggers_call
+  extcon_get_edev_by_phandle
+  extcon_get_edev_name
+  extcon_get_property
+  extcon_get_state
+  extcon_register_notifier
+  extcon_set_state
+  extcon_set_state_sync
+  fd_install
+  fget
+  _find_first_bit
+  _find_first_zero_bit
+  _find_next_bit
+  __find_vma
+  find_vpid
+  finish_wait
+  firmware_request_nowarn
+  flush_dcache_page
+  flush_delayed_work
+  flush_work
+  flush_workqueue
+  fput
+  free_io_pgtable_ops
+  free_irq
+  free_netdev
+  __free_pages
+  free_pages
+  free_percpu
+  free_percpu_irq
+  freq_qos_add_request
+  freq_qos_remove_request
+  freq_qos_update_request
+  fsync_bdev
+  fwnode_find_reference
+  fwnode_get_name
+  fwnode_get_next_child_node
+  fwnode_handle_get
+  fwnode_handle_put
+  fwnode_property_present
+  fwnode_property_read_string
+  fwnode_property_read_u32_array
+  generic_device_group
+  generic_handle_domain_irq
+  generic_handle_irq
+  generic_iommu_put_resv_regions
+  geni_icc_disable
+  geni_icc_enable
+  geni_icc_get
+  geni_icc_set_bw
+  geni_se_clk_freq_match
+  geni_se_config_packing
+  geni_se_get_qup_hw_version
+  geni_se_init
+  geni_se_resources_off
+  geni_se_resources_on
+  geni_se_rx_dma_prep
+  geni_se_rx_dma_unprep
+  geni_se_select_mode
+  geni_se_tx_dma_prep
+  geni_se_tx_dma_unprep
+  genlmsg_put
+  genl_register_family
+  genl_unregister_family
+  gen_pool_add_owner
+  gen_pool_alloc_algo_owner
+  gen_pool_avail
+  gen_pool_best_fit
+  gen_pool_create
+  gen_pool_destroy
+  gen_pool_first_fit_order_align
+  gen_pool_free_owner
+  gen_pool_has_addr
+  gen_pool_set_algo
+  gen_pool_size
+  gen_pool_virt_to_phys
+  getboottime64
+  get_cpu_device
+  get_cpu_idle_time_us
+  get_device
+  __get_free_pages
+  get_governor_parent_kobj
+  get_pfnblock_flags_mask
+  get_pid_task
+  get_random_bytes
+  get_random_u32
+  __get_task_comm
+  get_task_mm
+  get_task_pid
+  get_unmapped_area
+  get_unused_fd_flags
+  get_user_ifreq
+  get_user_pages
+  gic_nonsecure_priorities
+  gov_attr_set_init
+  gov_attr_set_put
+  governor_sysfs_ops
+  gov_update_cpu_data
+  gpiochip_add_data_with_key
+  gpiochip_add_pin_range
+  gpiochip_generic_free
+  gpiochip_generic_request
+  gpiochip_get_data
+  gpiochip_line_is_valid
+  gpiochip_lock_as_irq
+  gpiochip_remove
+  gpiochip_unlock_as_irq
+  gpiod_direction_input
+  gpiod_direction_output
+  gpiod_direction_output_raw
+  gpiod_get_optional
+  gpiod_get_raw_value
+  gpiod_get_value
+  gpiod_set_raw_value
+  gpiod_set_value_cansleep
+  gpiod_to_irq
+  gpio_free
+  gpio_request
+  gpio_request_one
+  gpio_to_desc
+  gro_cells_destroy
+  gro_cells_init
+  gro_cells_receive
+  handle_bad_irq
+  handle_edge_irq
+  handle_fasteoi_ack_irq
+  handle_fasteoi_irq
+  handle_level_irq
+  handle_nested_irq
+  handle_sysrq
+  hashlen_string
+  hex_dump_to_buffer
+  housekeeping_cpumask
+  housekeeping_overridden
+  housekeeping_test_cpu
+  hrtimer_active
+  hrtimer_cancel
+  __hrtimer_get_remaining
+  hrtimer_init
+  hrtimer_start_range_ns
+  hrtimer_try_to_cancel
+  hwspin_lock_free
+  hwspin_lock_request_specific
+  __hwspin_lock_timeout
+  __hwspin_unlock
+  i2c_add_adapter
+  i2c_del_adapter
+  i2c_del_driver
+  i2c_get_dma_safe_msg_buf
+  i2c_put_dma_safe_msg_buf
+  i2c_register_driver
+  i2c_transfer
+  icc_get
+  icc_link_create
+  icc_node_add
+  icc_node_create
+  icc_node_del
+  icc_node_destroy
+  icc_provider_add
+  icc_provider_del
+  icc_put
+  icc_set_bw
+  icc_set_tag
+  ida_alloc_range
+  ida_free
+  idr_alloc
+  idr_alloc_cyclic
+  idr_alloc_u32
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_get_next
+  idr_preload
+  idr_remove
+  idr_replace
+  iio_device_alloc
+  iio_device_free
+  __iio_device_register
+  iio_device_unregister
+  iio_read_channel_processed
+  inc_node_page_state
+  inc_zone_page_state
+  in_egroup_p
+  init_dummy_netdev
+  init_iova_domain
+  init_net
+  init_pseudo
+  __init_rwsem
+  init_srcu_struct
+  __init_swait_queue_head
+  init_task
+  init_timer_key
+  init_uts_ns
+  init_wait_entry
+  __init_waitqueue_head
+  input_close_device
+  input_event
+  input_ff_create
+  input_open_device
+  input_register_device
+  input_register_handle
+  input_register_handler
+  input_set_capability
+  input_unregister_device
+  input_unregister_handle
+  input_unregister_handler
+  interval_tree_insert
+  interval_tree_iter_first
+  interval_tree_iter_next
+  interval_tree_remove
+  int_sqrt
+  iomem_resource
+  iommu_alloc_resv_region
+  iommu_attach_device
+  iommu_detach_device
+  iommu_device_register
+  iommu_device_sysfs_add
+  iommu_device_sysfs_remove
+  iommu_device_unregister
+  iommu_dma_enable_best_fit_algo
+  iommu_dma_get_resv_regions
+  iommu_domain_alloc
+  iommu_domain_free
+  iommu_fwspec_add_ids
+  iommu_fwspec_free
+  iommu_get_domain_for_dev
+  iommu_get_msi_cookie
+  iommu_group_for_each_dev
+  iommu_group_get
+  iommu_group_get_iommudata
+  iommu_group_put
+  iommu_group_ref_get
+  iommu_group_set_iommudata
+  iommu_iova_to_phys
+  iommu_map
+  iommu_map_sg
+  iommu_present
+  iommu_put_dma_cookie
+  iommu_set_fault_handler
+  iommu_set_pgtable_quirks
+  iommu_unmap
+  __ioread32_copy
+  __ioremap
+  iounmap
+  __iowrite32_copy
+  ip_compute_csum
+  ipi_desc_get
+  iput
+  ipv6_ext_hdr
+  ipv6_skip_exthdr
+  irq_check_status_bit
+  irq_chip_ack_parent
+  irq_chip_disable_parent
+  irq_chip_enable_parent
+  irq_chip_eoi_parent
+  irq_chip_mask_parent
+  irq_chip_set_affinity_parent
+  irq_chip_set_parent_state
+  irq_chip_set_type_parent
+  irq_chip_set_vcpu_affinity_parent
+  irq_chip_set_wake_parent
+  irq_chip_unmask_parent
+  irq_dispose_mapping
+  __irq_domain_add
+  irq_domain_alloc_irqs_parent
+  irq_domain_create_hierarchy
+  irq_domain_disconnect_hierarchy
+  irq_domain_free_irqs_common
+  irq_domain_remove
+  irq_domain_set_hwirq_and_chip
+  irq_domain_set_info
+  irq_domain_update_bus_token
+  irq_domain_xlate_onecell
+  irq_domain_xlate_twocell
+  irq_find_matching_fwspec
+  irq_get_irq_data
+  irq_modify_status
+  irq_of_parse_and_map
+  __irq_resolve_mapping
+  irq_set_affinity_hint
+  irq_set_affinity_notifier
+  irq_set_chained_handler_and_data
+  irq_set_chip_and_handler_name
+  irq_set_chip_data
+  irq_set_irqchip_state
+  irq_set_irq_type
+  irq_set_irq_wake
+  irq_set_parent
+  irq_to_desc
+  irq_work_queue
+  irq_work_queue_on
+  irq_work_sync
+  isolate_and_split_free_page
+  isolate_anon_lru_page
+  is_vmalloc_addr
+  jiffies
+  jiffies_to_msecs
+  jiffies_to_usecs
+  kasan_flag_enabled
+  kasprintf
+  kernel_bind
+  kernel_connect
+  kernel_getsockname
+  kernel_kobj
+  kernel_power_off
+  kernel_recvmsg
+  kernel_sendmsg
+  kernfs_find_and_get_ns
+  kernfs_notify
+  kernfs_put
+  kern_mount
+  kern_unmount
+  kfree
+  kfree_const
+  kfree_sensitive
+  kfree_skb
+  kill_anon_super
+  kimage_vaddr
+  kimage_voffset
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order_trace
+  kmem_cache_alloc
+  kmem_cache_alloc_trace
+  kmem_cache_create
+  kmem_cache_destroy
+  kmem_cache_free
+  kmemdup
+  kobject_add
+  kobject_create_and_add
+  kobject_del
+  kobject_init
+  kobject_init_and_add
+  kobject_put
+  kobject_set_name
+  kobject_uevent
+  kobject_uevent_env
+  kobj_sysfs_ops
+  krealloc
+  kset_create_and_add
+  ksoftirqd
+  kstat
+  kstat_irqs_cpu
+  kstat_irqs_usr
+  kstrdup
+  kstrdup_const
+  kstrndup
+  kstrtobool
+  kstrtoint
+  kstrtoint_from_user
+  kstrtoll
+  kstrtos8_from_user
+  kstrtou16
+  kstrtou16_from_user
+  kstrtou8
+  kstrtou8_from_user
+  kstrtouint
+  kstrtouint_from_user
+  kstrtoul_from_user
+  kstrtoull
+  kstrtoull_from_user
+  kthread_bind_mask
+  kthread_cancel_delayed_work_sync
+  kthread_cancel_work_sync
+  kthread_create_on_node
+  kthread_create_worker
+  kthread_delayed_work_timer_fn
+  kthread_destroy_worker
+  kthread_flush_work
+  kthread_flush_worker
+  __kthread_init_worker
+  kthread_mod_delayed_work
+  kthread_queue_delayed_work
+  kthread_queue_work
+  kthread_should_stop
+  kthread_stop
+  kthread_worker_fn
+  ktime_get
+  ktime_get_mono_fast_ns
+  ktime_get_real_seconds
+  ktime_get_real_ts64
+  ktime_get_with_offset
+  kvfree
+  kvmalloc_node
+  led_classdev_flash_register_ext
+  led_classdev_flash_unregister
+  led_classdev_unregister
+  __list_add_valid
+  __list_del_entry_valid
+  list_sort
+  llist_add_batch
+  llist_reverse_order
+  __local_bh_enable_ip
+  __lock_page
+  lock_sock_nested
+  log_post_read_mmio
+  log_post_write_mmio
+  log_read_mmio
+  log_write_mmio
+  match_string
+  mbox_chan_received_data
+  mbox_chan_txdone
+  mbox_client_txdone
+  mbox_controller_register
+  mbox_controller_unregister
+  mbox_free_channel
+  mbox_request_channel
+  mbox_send_message
+  memblock_end_of_DRAM
+  memblock_free
+  __memcat_p
+  memcpy
+  __memcpy_fromio
+  __memcpy_toio
+  memdup_user
+  memmove
+  memory_block_size_bytes
+  memory_read_from_buffer
+  memparse
+  mempool_alloc
+  mempool_create
+  mempool_destroy
+  mempool_free
+  memremap
+  mem_section
+  memset64
+  memset
+  __memset_io
+  memstart_addr
+  memunmap
+  migrate_pages
+  migrate_swap
+  __migrate_task
+  mipi_dsi_create_packet
+  mipi_dsi_dcs_set_display_brightness
+  mipi_dsi_dcs_set_tear_off
+  mipi_dsi_host_register
+  mipi_dsi_host_unregister
+  misc_deregister
+  misc_register
+  __mmap_lock_do_trace_acquire_returned
+  __mmap_lock_do_trace_released
+  __mmap_lock_do_trace_start_locking
+  mmc_cqe_request_done
+  mmc_of_parse
+  mmc_regulator_get_supply
+  mmc_regulator_set_ocr
+  mmc_regulator_set_vqmmc
+  mmc_send_tuning
+  mmput
+  mod_delayed_work_on
+  mod_node_page_state
+  mod_timer
+  module_layout
+  module_put
+  __msecs_to_jiffies
+  msleep
+  msleep_interruptible
+  __mutex_init
+  mutex_is_locked
+  mutex_lock
+  mutex_lock_interruptible
+  mutex_trylock
+  mutex_unlock
+  napi_complete_done
+  napi_disable
+  napi_enable
+  __napi_schedule
+  napi_schedule_prep
+  __netdev_alloc_skb
+  netdev_master_upper_dev_link
+  netdev_rx_handler_register
+  netdev_rx_handler_unregister
+  netdev_upper_dev_link
+  netdev_upper_dev_unlink
+  netif_carrier_off
+  netif_carrier_on
+  netif_device_attach
+  netif_device_detach
+  netif_napi_add
+  __netif_napi_del
+  netif_receive_skb
+  netif_rx
+  netif_rx_ni
+  netif_schedule_queue
+  netif_tx_wake_queue
+  netlink_unicast
+  nla_memcpy
+  nla_put
+  __nlmsg_put
+  no_llseek
+  nonseekable_open
+  noop_llseek
+  nr_cpu_ids
+  nr_ipi_get
+  nr_irqs
+  ns_capable
+  nsecs_to_jiffies
+  __num_online_cpus
+  nvmem_cell_get
+  nvmem_cell_put
+  nvmem_cell_read
+  nvmem_cell_read_u32
+  nvmem_cell_write
+  nvmem_device_read
+  nvmem_device_write
+  of_address_to_resource
+  of_alias_get_id
+  of_clk_add_hw_provider
+  of_clk_add_provider
+  of_clk_del_provider
+  of_clk_hw_simple_get
+  of_clk_src_onecell_get
+  of_clk_src_simple_get
+  of_count_phandle_with_args
+  of_cpu_node_to_id
+  of_devfreq_cooling_register
+  of_device_get_match_data
+  of_device_is_available
+  of_device_is_compatible
+  of_dma_configure_id
+  of_dma_controller_free
+  of_dma_controller_register
+  of_dma_is_coherent
+  of_drm_find_bridge
+  of_drm_find_panel
+  of_find_compatible_node
+  of_find_device_by_node
+  of_find_matching_node_and_match
+  of_find_node_by_name
+  of_find_node_by_phandle
+  of_find_node_opts_by_path
+  of_find_node_with_property
+  of_find_property
+  of_fwnode_ops
+  of_genpd_add_provider_onecell
+  of_genpd_add_provider_simple
+  of_genpd_del_provider
+  __of_get_address
+  of_get_child_by_name
+  of_get_cpu_node
+  of_get_named_gpio_flags
+  of_get_next_available_child
+  of_get_next_child
+  of_get_next_parent
+  of_get_parent
+  of_get_property
+  of_get_regulator_init_data
+  of_get_required_opp_performance_state
+  of_graph_get_next_endpoint
+  of_graph_get_port_parent
+  of_graph_get_remote_endpoint
+  of_graph_get_remote_node
+  of_graph_get_remote_port_parent
+  of_graph_is_present
+  of_graph_parse_endpoint
+  of_hwspin_lock_get_id
+  of_icc_get
+  of_icc_xlate_onecell
+  of_iomap
+  of_irq_find_parent
+  of_irq_get
+  of_irq_get_byname
+  of_match_device
+  of_match_node
+  of_n_addr_cells
+  of_node_name_eq
+  of_n_size_cells
+  of_parse_phandle
+  of_parse_phandle_with_args
+  of_parse_phandle_with_fixed_args
+  of_phandle_iterator_init
+  of_phandle_iterator_next
+  of_platform_depopulate
+  of_platform_device_create
+  of_platform_device_destroy
+  of_platform_populate
+  of_property_count_elems_of_size
+  of_property_match_string
+  of_property_read_string
+  of_property_read_string_helper
+  of_property_read_u32_index
+  of_property_read_u64
+  of_property_read_variable_u32_array
+  of_property_read_variable_u8_array
+  of_prop_next_string
+  of_prop_next_u32
+  of_reserved_mem_device_init_by_idx
+  of_reserved_mem_device_release
+  of_reserved_mem_lookup
+  of_root
+  of_thermal_get_ntrips
+  of_thermal_get_trip_points
+  of_thermal_is_trip_valid
+  of_translate_address
+  page_endio
+  page_mapping
+  panic
+  panic_notifier_list
+  panic_timeout
+  param_get_int
+  param_ops_bool
+  param_ops_byte
+  param_ops_charp
+  param_ops_int
+  param_ops_string
+  param_ops_uint
+  param_set_bool
+  pci_bus_type
+  pci_clear_master
+  pci_device_group
+  pci_disable_device
+  pci_enable_device
+  pci_release_region
+  pci_request_region
+  pci_set_master
+  __per_cpu_offset
+  perf_aux_output_begin
+  perf_aux_output_end
+  perf_aux_output_flag
+  perf_event_create_kernel_counter
+  perf_event_enable
+  perf_event_read_local
+  perf_event_read_value
+  perf_event_release_kernel
+  perf_get_aux
+  perf_pmu_register
+  perf_pmu_unregister
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  pick_highest_pushable_task
+  pick_migrate_task
+  pinconf_generic_dt_node_to_map
+  pinctrl_dev_get_drvdata
+  pinctrl_force_default
+  pinctrl_force_sleep
+  pinctrl_lookup_state
+  pinctrl_pm_select_default_state
+  pinctrl_pm_select_sleep_state
+  pinctrl_select_state
+  pinctrl_utils_free_map
+  platform_bus_type
+  platform_device_add
+  platform_device_alloc
+  platform_device_del
+  platform_device_put
+  platform_device_register_full
+  platform_device_unregister
+  __platform_driver_register
+  platform_driver_unregister
+  platform_get_irq
+  platform_get_irq_byname
+  platform_get_resource
+  platform_get_resource_byname
+  platform_irqchip_probe
+  platform_irq_count
+  platform_msi_domain_alloc_irqs
+  platform_msi_domain_free_irqs
+  pm_clk_add
+  pm_clk_create
+  pm_clk_destroy
+  pm_clk_resume
+  pm_clk_suspend
+  pm_genpd_add_subdomain
+  pm_genpd_init
+  pm_genpd_remove
+  pm_genpd_remove_subdomain
+  pm_power_off
+  __pm_relax
+  pm_relax
+  pm_runtime_allow
+  pm_runtime_barrier
+  __pm_runtime_disable
+  pm_runtime_enable
+  pm_runtime_forbid
+  pm_runtime_force_resume
+  pm_runtime_force_suspend
+  __pm_runtime_idle
+  pm_runtime_no_callbacks
+  __pm_runtime_resume
+  pm_runtime_set_autosuspend_delay
+  __pm_runtime_set_status
+  __pm_runtime_suspend
+  __pm_runtime_use_autosuspend
+  __pm_stay_awake
+  pm_stay_awake
+  pm_system_wakeup
+  pm_wakeup_dev_event
+  pm_wakeup_ws_event
+  policy_has_boost_freq
+  power_supply_changed
+  power_supply_get_by_name
+  power_supply_get_drvdata
+  power_supply_get_property
+  power_supply_put
+  power_supply_reg_notifier
+  power_supply_set_property
+  power_supply_unreg_notifier
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait_event
+  print_hex_dump
+  _printk
+  _printk_deferred
+  proc_dointvec
+  proc_dointvec_minmax
+  proc_dostring
+  proc_douintvec_minmax
+  proto_register
+  proto_unregister
+  pskb_expand_head
+  __pskb_pull_tail
+  ___pskb_trim
+  putback_movable_pages
+  put_device
+  put_iova_domain
+  __put_page
+  put_pid
+  __put_task_struct
+  put_unused_fd
+  put_user_ifreq
+  pwm_apply_state
+  pwmchip_add
+  pwmchip_remove
+  qcom_smem_state_get
+  qcom_smem_state_register
+  qcom_smem_state_unregister
+  qcom_smem_state_update_bits
+  queue_delayed_work_on
+  queue_work_on
+  radix_tree_insert
+  radix_tree_iter_delete
+  radix_tree_lookup
+  radix_tree_next_chunk
+  ___ratelimit
+  rational_best_approximation
+  raw_notifier_call_chain
+  raw_notifier_chain_register
+  raw_notifier_chain_unregister
+  _raw_read_lock
+  _raw_read_lock_bh
+  _raw_read_lock_irq
+  _raw_read_lock_irqsave
+  _raw_read_unlock
+  _raw_read_unlock_bh
+  _raw_read_unlock_irq
+  _raw_read_unlock_irqrestore
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irq
+  _raw_spin_lock_irqsave
+  raw_spin_rq_lock_nested
+  raw_spin_rq_unlock
+  _raw_spin_trylock
+  _raw_spin_trylock_bh
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irq
+  _raw_spin_unlock_irqrestore
+  _raw_write_lock
+  _raw_write_lock_bh
+  _raw_write_lock_irq
+  _raw_write_lock_irqsave
+  _raw_write_unlock
+  _raw_write_unlock_bh
+  _raw_write_unlock_irq
+  _raw_write_unlock_irqrestore
+  rb_erase
+  rb_first
+  rb_insert_color
+  rb_last
+  rb_next
+  rb_prev
+  __rcu_read_lock
+  __rcu_read_unlock
+  rdev_get_drvdata
+  reboot_mode
+  rebuild_sched_domains
+  refcount_dec_not_one
+  refcount_warn_saturate
+  __register_blkdev
+  __register_chrdev
+  register_kretprobe
+  register_memory_notifier
+  register_netdev
+  register_netdevice
+  register_netdevice_notifier
+  register_pm_notifier
+  register_reboot_notifier
+  register_restart_handler
+  __register_rpmsg_driver
+  register_shrinker
+  register_syscore_ops
+  register_sysctl_table
+  regmap_bulk_read
+  regmap_bulk_write
+  regmap_check_range_table
+  regmap_field_read
+  regmap_field_update_bits_base
+  __regmap_init
+  regmap_mmio_detach_clk
+  regmap_multi_reg_write
+  regmap_raw_write
+  regmap_read
+  regmap_update_bits_base
+  regmap_write
+  regulator_allow_bypass
+  regulator_bulk_disable
+  regulator_bulk_enable
+  regulator_count_voltages
+  regulator_disable
+  regulator_enable
+  regulator_force_disable
+  regulator_get
+  regulator_get_drvdata
+  regulator_get_mode
+  regulator_get_voltage
+  regulator_get_voltage_rdev
+  regulator_is_enabled
+  regulator_is_supported_voltage
+  regulator_list_voltage_linear
+  regulator_notifier_call_chain
+  regulator_put
+  regulator_register
+  regulator_register_notifier
+  regulator_set_current_limit
+  regulator_set_load
+  regulator_set_mode
+  regulator_set_voltage
+  regulator_unregister
+  regulator_unregister_notifier
+  release_firmware
+  release_sock
+  remap_pfn_range
+  remove_cpu
+  remove_wait_queue
+  report_iommu_fault
+  request_firmware
+  request_firmware_into_buf
+  request_firmware_nowait
+  __request_percpu_irq
+  request_threaded_irq
+  resched_curr
+  reset_control_assert
+  reset_control_deassert
+  return_address
+  root_task_group
+  rpmsg_get_signals
+  rpmsg_poll
+  rpmsg_register_device
+  rpmsg_send
+  rpmsg_set_signals
+  rpmsg_trysend
+  rpmsg_unregister_device
+  rproc_add
+  rproc_add_subdev
+  rproc_alloc
+  rproc_coredump
+  rproc_coredump_add_custom_segment
+  rproc_coredump_add_segment
+  rproc_coredump_cleanup
+  rproc_coredump_set_elf_info
+  rproc_del
+  rproc_free
+  rproc_remove_subdev
+  rproc_report_crash
+  rtnl_is_locked
+  rtnl_link_register
+  rtnl_link_unregister
+  rtnl_trylock
+  rtnl_unicast
+  rtnl_unlock
+  runqueues
+  sched_clock
+  sched_feat_keys
+  sched_feat_names
+  sched_setattr
+  sched_set_fifo
+  sched_set_normal
+  sched_setscheduler
+  sched_setscheduler_nocheck
+  sched_trace_rd_span
+  sched_uclamp_used
+  schedule
+  schedule_timeout
+  scnprintf
+  __sdhci_add_host
+  sdhci_add_host
+  sdhci_cleanup_host
+  sdhci_cqe_disable
+  sdhci_cqe_enable
+  sdhci_cqe_irq
+  sdhci_enable_clk
+  sdhci_get_property
+  sdhci_pltfm_free
+  sdhci_pltfm_init
+  sdhci_remove_host
+  sdhci_reset
+  sdhci_set_bus_width
+  sdhci_set_power_noreg
+  __sdhci_set_timeout
+  sdhci_setup_host
+  select_fallback_rq
+  seq_lseek
+  seq_open
+  seq_printf
+  seq_putc
+  seq_puts
+  seq_read
+  seq_release
+  set_capacity
+  set_capacity_and_notify
+  set_cpus_allowed_ptr
+  set_next_entity
+  set_normalized_timespec64
+  set_page_dirty_lock
+  __SetPageMovable
+  set_task_cpu
+  set_user_nice
+  sg_alloc_table
+  sg_alloc_table_from_pages_segment
+  sg_free_table
+  sg_init_table
+  sg_miter_next
+  sg_miter_start
+  sg_miter_stop
+  sg_next
+  __sg_page_iter_dma_next
+  __sg_page_iter_next
+  __sg_page_iter_start
+  shmem_read_mapping_page_gfp
+  show_regs
+  simple_attr_open
+  simple_attr_release
+  simple_open
+  simple_read_from_buffer
+  single_open
+  single_release
+  sk_alloc
+  skb_add_rx_frag
+  skb_append_pagefrags
+  skb_checksum
+  skb_clone
+  skb_copy
+  skb_copy_bits
+  skb_copy_datagram_from_iter
+  skb_copy_datagram_iter
+  skb_copy_expand
+  skb_dequeue
+  skb_free_datagram
+  __skb_gso_segment
+  __skb_pad
+  skb_pull
+  skb_push
+  skb_put
+  skb_queue_head
+  skb_queue_purge
+  skb_queue_tail
+  skb_recv_datagram
+  skb_set_owner_w
+  skb_store_bits
+  skb_trim
+  sk_error_report
+  sk_free
+  skip_spaces
+  smp_call_function_single
+  smp_call_function_single_async
+  snd_pcm_format_width
+  snd_soc_dapm_get_enum_double
+  snd_soc_dapm_put_enum_double
+  snd_soc_info_enum_double
+  snd_soc_info_volsw
+  snd_soc_register_component
+  snd_soc_unregister_component
+  snprintf
+  soc_device_register
+  soc_device_unregister
+  sock_alloc_send_pskb
+  sock_create_kern
+  sock_gettstamp
+  sock_init_data
+  sock_no_accept
+  sock_no_listen
+  sock_no_mmap
+  sock_no_sendpage
+  sock_no_shutdown
+  sock_no_socketpair
+  sock_queue_rcv_skb
+  sock_register
+  sock_release
+  sock_setsockopt
+  sock_unregister
+  sort
+  __spi_alloc_controller
+  spi_bus_lock
+  spi_bus_type
+  spi_bus_unlock
+  spi_controller_resume
+  spi_controller_suspend
+  spi_finalize_current_transfer
+  spi_register_controller
+  __spi_register_driver
+  spi_setup
+  spi_sync
+  spi_sync_locked
+  spi_unregister_controller
+  spmi_controller_add
+  spmi_controller_alloc
+  spmi_controller_remove
+  __spmi_driver_register
+  spmi_ext_register_read
+  spmi_ext_register_readl
+  spmi_ext_register_write
+  spmi_ext_register_writel
+  spmi_register_read
+  spmi_register_write
+  spmi_register_zero_write
+  sprintf
+  srcu_init_notifier_head
+  srcu_notifier_call_chain
+  srcu_notifier_chain_register
+  srcu_notifier_chain_unregister
+  __srcu_read_lock
+  __srcu_read_unlock
+  sscanf
+  __stack_chk_fail
+  static_key_disable
+  stop_machine
+  stop_one_cpu
+  stop_one_cpu_nowait
+  store_sampling_rate
+  strcasecmp
+  strcmp
+  strcpy
+  strim
+  strlcat
+  strlcpy
+  strlen
+  strncasecmp
+  strncat
+  strnchr
+  strncmp
+  strncpy
+  strnlen
+  strnstr
+  strpbrk
+  strrchr
+  strreplace
+  strscpy
+  strsep
+  strstr
+  __sw_hweight32
+  __sw_hweight64
+  sync_file_create
+  sync_file_get_fence
+  synchronize_irq
+  synchronize_net
+  synchronize_rcu
+  synchronize_srcu
+  syscon_node_to_regmap
+  syscon_regmap_lookup_by_phandle
+  sysctl_sched_features
+  sysctl_vals
+  sysfs_add_file_to_group
+  sysfs_add_link_to_group
+  sysfs_create_bin_file
+  sysfs_create_file_ns
+  sysfs_create_files
+  sysfs_create_group
+  sysfs_create_groups
+  sysfs_create_link
+  sysfs_emit
+  __sysfs_match_string
+  sysfs_notify
+  sysfs_remove_bin_file
+  sysfs_remove_file_from_group
+  sysfs_remove_file_ns
+  sysfs_remove_files
+  sysfs_remove_group
+  sysfs_remove_groups
+  sysfs_remove_link
+  sysfs_remove_link_from_group
+  sysfs_streq
+  sysrq_mask
+  system_32bit_el0_cpumask
+  system_highpri_wq
+  system_state
+  system_unbound_wq
+  system_wq
+  tasklet_init
+  tasklet_kill
+  __tasklet_schedule
+  tasklist_lock
+  task_may_not_preempt
+  __task_rq_lock
+  thermal_cdev_update
+  thermal_cooling_device_register
+  thermal_cooling_device_unregister
+  thermal_of_cooling_device_register
+  thermal_pressure
+  thermal_zone_device_enable
+  thermal_zone_device_register
+  thermal_zone_device_unregister
+  thermal_zone_device_update
+  thermal_zone_get_temp
+  thermal_zone_get_zone_by_name
+  thermal_zone_of_sensor_register
+  thermal_zone_of_sensor_unregister
+  tick_nohz_get_sleep_length
+  topology_clear_scale_freq_source
+  topology_set_thermal_pressure
+  topology_update_done
+  _totalram_pages
+  trace_array_put
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_handle_return
+  __traceiter_android_rvh_account_irq_end
+  __traceiter_android_rvh_account_irq_start
+  __traceiter_android_rvh_after_dequeue_task
+  __traceiter_android_rvh_after_enqueue_task
+  __traceiter_android_rvh_build_perf_domains
+  __traceiter_android_rvh_can_migrate_task
+  __traceiter_android_rvh_check_preempt_wakeup
+  __traceiter_android_rvh_cpu_cgroup_attach
+  __traceiter_android_rvh_cpu_cgroup_online
+  __traceiter_android_rvh_do_sched_yield
+  __traceiter_android_rvh_find_busiest_queue
+  __traceiter_android_rvh_find_lowest_rq
+  __traceiter_android_rvh_flush_task
+  __traceiter_android_rvh_get_nohz_timer_target
+  __traceiter_android_rvh_iommu_setup_dma_ops
+  __traceiter_android_rvh_is_cpu_allowed
+  __traceiter_android_rvh_new_task_stats
+  __traceiter_android_rvh_replace_next_task_fair
+  __traceiter_android_rvh_rto_next_cpu
+  __traceiter_android_rvh_sched_cpu_dying
+  __traceiter_android_rvh_sched_cpu_starting
+  __traceiter_android_rvh_sched_exec
+  __traceiter_android_rvh_sched_fork_init
+  __traceiter_android_rvh_sched_getaffinity
+  __traceiter_android_rvh_sched_newidle_balance
+  __traceiter_android_rvh_sched_nohz_balancer_kick
+  __traceiter_android_rvh_sched_setaffinity
+  __traceiter_android_rvh_schedule
+  __traceiter_android_rvh_select_task_rq_fair
+  __traceiter_android_rvh_select_task_rq_rt
+  __traceiter_android_rvh_set_cpus_allowed_by_task
+  __traceiter_android_rvh_set_task_cpu
+  __traceiter_android_rvh_show_max_freq
+  __traceiter_android_rvh_tick_entry
+  __traceiter_android_rvh_try_to_wake_up
+  __traceiter_android_rvh_ttwu_cond
+  __traceiter_android_rvh_update_cpu_capacity
+  __traceiter_android_rvh_update_cpus_allowed
+  __traceiter_android_rvh_update_misfit_status
+  __traceiter_android_rvh_update_thermal_stats
+  __traceiter_android_rvh_wake_up_new_task
+  __traceiter_android_vh_binder_restore_priority
+  __traceiter_android_vh_binder_set_priority
+  __traceiter_android_vh_binder_wakeup_ilocked
+  __traceiter_android_vh_cpu_idle_enter
+  __traceiter_android_vh_cpu_idle_exit
+  __traceiter_android_vh_disable_thermal_cooling_stats
+  __traceiter_android_vh_ipi_stop
+  __traceiter_android_vh_jiffies_update
+  __traceiter_android_vh_printk_hotplug
+  __traceiter_android_vh_rproc_recovery
+  __traceiter_android_vh_rproc_recovery_set
+  __traceiter_android_vh_scheduler_tick
+  __traceiter_android_vh_timer_calc_index
+  __traceiter_android_vh_update_topology_flags_workfn
+  __traceiter_cpu_frequency_limits
+  __traceiter_gpu_mem_total
+  __traceiter_ipi_entry
+  __traceiter_ipi_raise
+  __traceiter_mmap_lock_acquire_returned
+  __traceiter_mmap_lock_released
+  __traceiter_mmap_lock_start_locking
+  __traceiter_sched_overutilized_tp
+  __traceiter_sched_switch
+  __traceiter_suspend_resume
+  __tracepoint_android_rvh_account_irq_end
+  __tracepoint_android_rvh_account_irq_start
+  __tracepoint_android_rvh_after_dequeue_task
+  __tracepoint_android_rvh_after_enqueue_task
+  __tracepoint_android_rvh_build_perf_domains
+  __tracepoint_android_rvh_can_migrate_task
+  __tracepoint_android_rvh_check_preempt_wakeup
+  __tracepoint_android_rvh_cpu_cgroup_attach
+  __tracepoint_android_rvh_cpu_cgroup_online
+  __tracepoint_android_rvh_do_sched_yield
+  __tracepoint_android_rvh_find_busiest_queue
+  __tracepoint_android_rvh_find_lowest_rq
+  __tracepoint_android_rvh_flush_task
+  __tracepoint_android_rvh_get_nohz_timer_target
+  __tracepoint_android_rvh_iommu_setup_dma_ops
+  __tracepoint_android_rvh_is_cpu_allowed
+  __tracepoint_android_rvh_new_task_stats
+  __tracepoint_android_rvh_replace_next_task_fair
+  __tracepoint_android_rvh_rto_next_cpu
+  __tracepoint_android_rvh_sched_cpu_dying
+  __tracepoint_android_rvh_sched_cpu_starting
+  __tracepoint_android_rvh_sched_exec
+  __tracepoint_android_rvh_sched_fork_init
+  __tracepoint_android_rvh_sched_getaffinity
+  __tracepoint_android_rvh_sched_newidle_balance
+  __tracepoint_android_rvh_sched_nohz_balancer_kick
+  __tracepoint_android_rvh_sched_setaffinity
+  __tracepoint_android_rvh_schedule
+  __tracepoint_android_rvh_select_task_rq_fair
+  __tracepoint_android_rvh_select_task_rq_rt
+  __tracepoint_android_rvh_set_cpus_allowed_by_task
+  __tracepoint_android_rvh_set_task_cpu
+  __tracepoint_android_rvh_show_max_freq
+  __tracepoint_android_rvh_tick_entry
+  __tracepoint_android_rvh_try_to_wake_up
+  __tracepoint_android_rvh_ttwu_cond
+  __tracepoint_android_rvh_update_cpu_capacity
+  __tracepoint_android_rvh_update_cpus_allowed
+  __tracepoint_android_rvh_update_misfit_status
+  __tracepoint_android_rvh_update_thermal_stats
+  __tracepoint_android_rvh_wake_up_new_task
+  __tracepoint_android_vh_binder_restore_priority
+  __tracepoint_android_vh_binder_set_priority
+  __tracepoint_android_vh_binder_wakeup_ilocked
+  __tracepoint_android_vh_cpu_idle_enter
+  __tracepoint_android_vh_cpu_idle_exit
+  __tracepoint_android_vh_disable_thermal_cooling_stats
+  __tracepoint_android_vh_ipi_stop
+  __tracepoint_android_vh_jiffies_update
+  __tracepoint_android_vh_printk_hotplug
+  __tracepoint_android_vh_rproc_recovery
+  __tracepoint_android_vh_rproc_recovery_set
+  __tracepoint_android_vh_scheduler_tick
+  __tracepoint_android_vh_timer_calc_index
+  __tracepoint_android_vh_update_topology_flags_workfn
+  __tracepoint_cpu_frequency_limits
+  __tracepoint_gpu_mem_total
+  __tracepoint_ipi_entry
+  __tracepoint_ipi_raise
+  __tracepoint_mmap_lock_acquire_returned
+  __tracepoint_mmap_lock_released
+  __tracepoint_mmap_lock_start_locking
+  tracepoint_probe_register
+  tracepoint_probe_register_prio
+  tracepoint_probe_unregister
+  __tracepoint_sched_overutilized_tp
+  __tracepoint_sched_switch
+  __tracepoint_suspend_resume
+  trace_print_array_seq
+  trace_print_flags_seq
+  trace_print_symbols_seq
+  trace_raw_output_prep
+  trace_seq_printf
+  trace_seq_putc
+  tracing_off
+  try_module_get
+  try_wait_for_completion
+  tty_flip_buffer_push
+  __tty_insert_flip_char
+  tty_insert_flip_string_fixed_flag
+  uart_add_one_port
+  uart_get_baud_rate
+  uart_insert_char
+  uart_register_driver
+  uart_remove_one_port
+  uart_resume_port
+  uart_suspend_port
+  uart_try_toggle_sysrq
+  uart_unregister_driver
+  uart_update_timeout
+  uart_write_wakeup
+  __ubsan_handle_cfi_check_fail_abort
+  uclamp_eff_value
+  ucsi_connector_change
+  ucsi_create
+  ucsi_destroy
+  ucsi_get_drvdata
+  ucsi_register
+  ucsi_set_drvdata
+  ucsi_unregister
+  __udelay
+  __uio_register_device
+  uio_unregister_device
+  unlock_page
+  unregister_blkdev
+  __unregister_chrdev
+  unregister_chrdev_region
+  unregister_kretprobe
+  unregister_netdev
+  unregister_netdevice_many
+  unregister_netdevice_notifier
+  unregister_netdevice_queue
+  unregister_pm_notifier
+  unregister_reboot_notifier
+  unregister_restart_handler
+  unregister_rpmsg_driver
+  unregister_shrinker
+  up
+  update_devfreq
+  update_rq_clock
+  up_read
+  up_write
+  usb_add_phy_dev
+  usb_assign_descriptors
+  usb_composite_setup_continue
+  usb_control_msg_recv
+  usb_control_msg_send
+  usb_decode_ctrl
+  usb_deregister
+  usb_ep_alloc_request
+  usb_ep_autoconfig
+  usb_ep_dequeue
+  usb_ep_disable
+  usb_ep_enable
+  usb_ep_free_request
+  usb_ep_queue
+  usb_ep_set_halt
+  usb_free_all_descriptors
+  usb_function_register
+  usb_function_unregister
+  usb_gadget_wakeup
+  usb_interface_id
+  usb_phy_set_charger_current
+  usb_put_function_instance
+  usb_register_driver
+  usb_register_notify
+  usb_remove_phy
+  usb_role_string
+  usb_role_switch_find_by_fwnode
+  usb_role_switch_get_drvdata
+  usb_role_switch_register
+  usb_role_switch_set_role
+  usb_role_switch_unregister
+  usb_speed_string
+  usb_string_id
+  usb_unregister_notify
+  __usecs_to_jiffies
+  usleep_range_state
+  vabits_actual
+  vchan_dma_desc_free_list
+  vchan_init
+  vchan_tx_desc_free
+  vchan_tx_submit
+  vfree
+  vmalloc
+  vmalloc_to_page
+  vmalloc_to_pfn
+  vmap
+  vmemdup_user
+  vmf_insert_mixed
+  vmf_insert_pfn
+  vm_get_page_prot
+  vm_insert_page
+  vm_iomap_memory
+  vm_map_pages
+  vscnprintf
+  vsnprintf
+  vunmap
+  vzalloc
+  wait_for_completion
+  wait_for_completion_interruptible
+  wait_for_completion_interruptible_timeout
+  wait_for_completion_timeout
+  wait_woken
+  __wake_up
+  wake_up_if_idle
+  __wake_up_locked
+  wake_up_process
+  wakeup_source_add
+  wakeup_source_register
+  wakeup_source_remove
+  wakeup_source_unregister
+  __wake_up_sync
+  __warn_printk
+  woken_wake_function
+  ww_mutex_lock
+  ww_mutex_unlock
+  __xa_alloc
+  __xa_alloc_cyclic
+  xa_destroy
+  xa_erase
+  xa_find
+  xa_find_after
+  __xa_insert
+  xa_load
+  xa_store
+  zs_compact
+  zs_create_pool
+  zs_destroy_pool
+  zs_free
+  zs_get_total_pages
+  zs_huge_class_size
+  zs_malloc
+  zs_map_object
+  zs_pool_stats
+  zs_unmap_object
diff --git a/android/abi_gki_aarch64_honor b/android/abi_gki_aarch64_honor
new file mode 100644
index 0000000..b9b6369
--- /dev/null
+++ b/android/abi_gki_aarch64_honor
@@ -0,0 +1,21 @@
+[abi_symbol_list]
+  __traceiter_android_rvh_dma_buf_stats_teardown
+  __traceiter_android_vh_alter_mutex_list_add
+  __traceiter_android_vh_alter_rwsem_list_add
+  __traceiter_android_vh_mutex_init
+  __traceiter_android_vh_mutex_unlock_slowpath
+  __traceiter_android_vh_mutex_wait_finish
+  __traceiter_android_vh_mutex_wait_start
+  __traceiter_android_vh_rwsem_init
+  __traceiter_android_vh_rwsem_wake
+  __traceiter_android_vh_rwsem_write_finished
+  __tracepoint_android_rvh_dma_buf_stats_teardown
+  __tracepoint_android_vh_alter_mutex_list_add
+  __tracepoint_android_vh_alter_rwsem_list_add
+  __tracepoint_android_vh_mutex_init
+  __tracepoint_android_vh_mutex_unlock_slowpath
+  __tracepoint_android_vh_mutex_wait_finish
+  __tracepoint_android_vh_mutex_wait_start
+  __tracepoint_android_vh_rwsem_init
+  __tracepoint_android_vh_rwsem_wake
+  __tracepoint_android_vh_rwsem_write_finished
diff --git a/android/abi_gki_aarch64_imx b/android/abi_gki_aarch64_imx
new file mode 100644
index 0000000..3069e67
--- /dev/null
+++ b/android/abi_gki_aarch64_imx
@@ -0,0 +1,2475 @@
+[abi_symbol_list]
+# commonly used symbols
+  add_wait_queue
+  alloc_chrdev_region
+  alloc_etherdev_mqs
+  alloc_netdev_mqs
+  __alloc_pages
+  alloc_pages_exact
+  __alloc_percpu
+  __alloc_skb
+  alloc_workqueue
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  __arm_smccc_smc
+  atomic_notifier_call_chain
+  atomic_notifier_chain_register
+  atomic_notifier_chain_unregister
+  bcmp
+  __bitmap_and
+  __bitmap_complement
+  blocking_notifier_call_chain
+  blocking_notifier_chain_register
+  blocking_notifier_chain_unregister
+  bpf_trace_run1
+  bpf_trace_run2
+  bpf_trace_run3
+  bpf_trace_run4
+  bpf_trace_run5
+  bpf_trace_run6
+  bsearch
+  bus_register
+  bus_unregister
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  cancel_work_sync
+  capable
+  cdev_add
+  cdev_del
+  cdev_init
+  cec_allocate_adapter
+  cec_delete_adapter
+  cec_received_msg_ts
+  cec_register_adapter
+  cec_transmit_attempt_done_ts
+  cec_unregister_adapter
+  __cfi_slowpath_diag
+  __check_object_size
+  __class_create
+  class_destroy
+  __class_register
+  class_unregister
+  clk_bulk_enable
+  clk_bulk_prepare
+  clk_bulk_unprepare
+  clk_disable
+  clk_enable
+  clk_get
+  __clk_get_name
+  clk_get_parent
+  clk_get_rate
+  __clk_hw_register_divider
+  clk_hw_register_fixed_factor
+  __clk_hw_register_fixed_rate
+  __clk_hw_register_gate
+  __clk_hw_register_mux
+  clk_is_match
+  clk_prepare
+  clk_put
+  clk_round_rate
+  clk_set_parent
+  clk_set_rate
+  clk_unprepare
+  clockevents_config_and_register
+  complete
+  complete_all
+  completion_done
+  component_add
+  component_bind_all
+  component_del
+  component_master_add_with_match
+  component_master_del
+  component_unbind_all
+  __const_udelay
+  consume_skb
+  cpu_bit_bitmap
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpu_latency_qos_add_request
+  cpu_latency_qos_remove_request
+  cpumask_next
+  cpu_number
+  __cpu_online_mask
+  __cpu_possible_mask
+  crc32_le
+  crypto_destroy_tfm
+  _ctype
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_remove
+  default_llseek
+  default_wake_function
+  delayed_work_timer_fn
+  del_timer
+  del_timer_sync
+  destroy_workqueue
+  dev_alloc_name
+  dev_close
+  _dev_crit
+  dev_driver_string
+  _dev_err
+  dev_err_probe
+  dev_fwnode
+  device_add
+  device_create
+  device_create_file
+  device_del
+  device_destroy
+  device_for_each_child
+  device_get_child_node_count
+  device_get_match_data
+  device_get_next_child_node
+  device_initialize
+  device_init_wakeup
+  device_link_add
+  device_link_del
+  device_property_present
+  device_property_read_u32_array
+  device_register
+  device_remove_file
+  __device_reset
+  device_set_wakeup_capable
+  device_set_wakeup_enable
+  device_unregister
+  _dev_info
+  __dev_kfree_skb_any
+  devm_add_action
+  devm_backlight_device_register
+  devm_clk_bulk_get
+  devm_clk_get
+  devm_clk_get_optional
+  devm_device_add_group
+  __devm_drm_dev_alloc
+  devm_drm_panel_bridge_add
+  devm_extcon_dev_allocate
+  devm_extcon_dev_register
+  devm_free_irq
+  devm_get_clk_from_child
+  devm_gpiochip_add_data_with_key
+  devm_gpiod_get
+  devm_gpiod_get_index
+  devm_gpiod_get_optional
+  devm_gpio_request_one
+  devm_iio_device_alloc
+  devm_input_allocate_device
+  devm_ioremap
+  devm_ioremap_resource
+  devm_ioremap_wc
+  devm_kasprintf
+  devm_kfree
+  devm_kmalloc
+  devm_kmemdup
+  devm_led_classdev_register_ext
+  __devm_of_phy_provider_register
+  devm_phy_create
+  devm_phy_get
+  devm_pinctrl_get
+  devm_pinctrl_put
+  devm_platform_get_and_ioremap_resource
+  devm_platform_ioremap_resource
+  devm_pwmchip_add
+  __devm_regmap_init
+  __devm_regmap_init_i2c
+  __devm_regmap_init_mmio_clk
+  devm_regulator_bulk_get
+  devm_regulator_get
+  devm_regulator_get_optional
+  devm_regulator_register
+  devm_request_threaded_irq
+  __devm_reset_control_get
+  devm_reset_controller_register
+  devm_snd_dmaengine_pcm_register
+  devm_snd_soc_register_card
+  devm_snd_soc_register_component
+  devm_spi_register_controller
+  devm_thermal_zone_of_sensor_register
+  devm_usb_get_phy_by_phandle
+  devm_watchdog_register_device
+  dev_pm_domain_attach_by_id
+  dev_pm_domain_attach_by_name
+  dev_pm_domain_detach
+  dev_pm_set_wake_irq
+  devres_add
+  __devres_alloc_node
+  devres_free
+  dev_set_name
+  _dev_warn
+  disable_irq
+  disable_irq_nosync
+  dma_alloc_attrs
+  dma_async_device_register
+  dma_async_device_unregister
+  dma_async_tx_descriptor_init
+  dma_buf_attach
+  dma_buf_detach
+  dma_buf_export
+  dma_buf_fd
+  dma_buf_get
+  dma_buf_map_attachment
+  dma_buf_put
+  dma_buf_unmap_attachment
+  dma_fence_context_alloc
+  dma_fence_default_wait
+  dma_fence_init
+  dma_fence_release
+  dma_fence_signal_locked
+  dma_fence_wait_timeout
+  dma_free_attrs
+  dma_heap_add
+  dma_heap_get_dev
+  dma_heap_get_drvdata
+  dma_heap_get_name
+  dmam_alloc_attrs
+  dma_map_page_attrs
+  dma_map_sg_attrs
+  dma_map_sgtable
+  dmam_free_coherent
+  dma_mmap_attrs
+  dma_pool_alloc
+  dma_pool_create
+  dma_pool_destroy
+  dma_pool_free
+  dma_release_channel
+  dma_request_chan
+  __dma_request_channel
+  dma_set_coherent_mask
+  dma_set_mask
+  dma_sync_sg_for_cpu
+  dma_sync_sg_for_device
+  dma_sync_single_for_cpu
+  dma_sync_single_for_device
+  dma_unmap_page_attrs
+  dma_unmap_sg_attrs
+  do_SAK
+  down_interruptible
+  down_read
+  down_trylock
+  down_write
+  driver_register
+  driver_unregister
+  drm_add_edid_modes
+  drm_atomic_get_crtc_state
+  drm_atomic_get_new_bridge_state
+  drm_atomic_get_new_connector_for_encoder
+  drm_atomic_helper_bridge_destroy_state
+  drm_atomic_helper_bridge_duplicate_state
+  drm_atomic_helper_bridge_reset
+  drm_atomic_helper_check
+  drm_atomic_helper_check_plane_state
+  drm_atomic_helper_cleanup_planes
+  drm_atomic_helper_commit
+  drm_atomic_helper_commit_hw_done
+  drm_atomic_helper_commit_modeset_disables
+  drm_atomic_helper_commit_modeset_enables
+  drm_atomic_helper_commit_planes
+  drm_atomic_helper_commit_tail_rpm
+  drm_atomic_helper_connector_destroy_state
+  drm_atomic_helper_connector_duplicate_state
+  drm_atomic_helper_connector_reset
+  __drm_atomic_helper_crtc_destroy_state
+  drm_atomic_helper_crtc_destroy_state
+  __drm_atomic_helper_crtc_duplicate_state
+  drm_atomic_helper_crtc_duplicate_state
+  drm_atomic_helper_crtc_reset
+  drm_atomic_helper_disable_plane
+  drm_atomic_helper_page_flip
+  drm_atomic_helper_plane_destroy_state
+  drm_atomic_helper_plane_duplicate_state
+  drm_atomic_helper_plane_reset
+  drm_atomic_helper_set_config
+  drm_atomic_helper_shutdown
+  drm_atomic_helper_update_plane
+  drm_atomic_helper_wait_for_vblanks
+  drm_bridge_add
+  drm_bridge_attach
+  drm_bridge_connector_init
+  drm_bridge_hpd_notify
+  drm_bridge_remove
+  drm_compat_ioctl
+  drm_connector_attach_encoder
+  drm_connector_cleanup
+  drm_connector_init
+  drm_connector_unregister
+  drm_connector_update_edid_property
+  drm_crtc_arm_vblank_event
+  drm_crtc_cleanup
+  drm_crtc_handle_vblank
+  drm_crtc_init_with_planes
+  drm_crtc_send_vblank_event
+  drm_crtc_vblank_get
+  drm_crtc_vblank_off
+  drm_crtc_vblank_on
+  __drm_dbg
+  drm_default_rgb_quant_range
+  drm_detect_hdmi_monitor
+  drm_detect_monitor_audio
+  drm_dev_alloc
+  drm_dev_dbg
+  drm_dev_printk
+  drm_dev_put
+  drm_dev_register
+  drm_dev_unregister
+  drm_display_info_set_bus_formats
+  drm_display_mode_from_videomode
+  drm_display_mode_to_videomode
+  drm_do_get_edid
+  drm_encoder_cleanup
+  drm_encoder_init
+  __drm_err
+  drm_fb_cma_get_gem_obj
+  drm_gem_cma_dumb_create
+  drm_gem_cma_prime_import_sg_table
+  drm_gem_fb_create
+  drm_gem_mmap
+  drm_gem_object_free
+  drm_gem_prime_fd_to_handle
+  drm_gem_prime_handle_to_fd
+  drm_gem_prime_mmap
+  drm_get_edid
+  drm_hdmi_avi_infoframe_from_display_mode
+  drm_hdmi_avi_infoframe_quant_range
+  drm_hdmi_infoframe_set_hdr_metadata
+  drm_hdmi_vendor_infoframe_from_display_mode
+  drm_helper_hpd_irq_event
+  drm_helper_probe_single_connector_modes
+  drm_ioctl
+  drm_kms_helper_hotplug_event
+  drm_kms_helper_poll_fini
+  drm_kms_helper_poll_init
+  drm_match_cea_mode
+  drmm_mode_config_init
+  drm_mode_config_cleanup
+  drm_mode_config_helper_resume
+  drm_mode_config_helper_suspend
+  drm_mode_config_reset
+  drm_mode_copy
+  drm_mode_destroy
+  drm_mode_duplicate
+  drm_mode_equal
+  drm_mode_find_dmt
+  drm_mode_is_420_also
+  drm_mode_is_420_only
+  drm_mode_probed_add
+  drm_mode_set_name
+  drm_mode_vrefresh
+  drm_object_attach_property
+  drm_of_component_match_add
+  drm_of_find_panel_or_bridge
+  drm_of_find_possible_crtcs
+  drm_open
+  drm_panel_add
+  drm_panel_disable
+  drm_panel_init
+  drm_panel_of_backlight
+  drm_panel_remove
+  drm_panel_unprepare
+  drm_plane_cleanup
+  drm_plane_create_zpos_immutable_property
+  drm_poll
+  drm_read
+  drm_release
+  drm_simple_encoder_init
+  drm_universal_plane_init
+  drm_vblank_init
+  dump_stack
+  enable_irq
+  ether_setup
+  ethnl_cable_test_fault_length
+  ethnl_cable_test_result
+  ethtool_op_get_link
+  eth_type_trans
+  eth_validate_addr
+  event_triggers_call
+  extcon_set_state_sync
+  fd_install
+  _find_first_bit
+  _find_next_bit
+  finish_wait
+  flush_delayed_work
+  flush_work
+  flush_workqueue
+  fput
+  free_irq
+  free_netdev
+  __free_pages
+  free_pages_exact
+  free_percpu
+  fwnode_graph_get_next_endpoint
+  fwnode_graph_get_port_parent
+  fwnode_graph_get_remote_port_parent
+  fwnode_handle_put
+  fwnode_property_present
+  fwnode_property_read_string
+  fwnode_property_read_u32_array
+  fwnode_property_read_u64_array
+  gcd
+  generic_handle_domain_irq
+  __genphy_config_aneg
+  genphy_read_abilities
+  genphy_read_mmd_unsupported
+  genphy_read_status
+  genphy_resume
+  genphy_soft_reset
+  genphy_suspend
+  genphy_update_link
+  genphy_write_mmd_unsupported
+  gen_pool_free_owner
+  get_cpu_device
+  get_device
+  get_random_bytes
+  get_unused_fd_flags
+  gic_nonsecure_priorities
+  gpiochip_add_data_with_key
+  gpiochip_generic_free
+  gpiochip_generic_request
+  gpiochip_get_data
+  gpiochip_remove
+  gpiod_direction_output
+  gpiod_direction_output_raw
+  gpiod_get_optional
+  gpiod_get_value
+  gpiod_get_value_cansleep
+  gpiod_set_consumer_name
+  gpiod_set_raw_value
+  gpiod_set_raw_value_cansleep
+  gpiod_set_value_cansleep
+  gpiod_to_irq
+  gpio_request
+  gpio_to_desc
+  handle_edge_irq
+  handle_level_irq
+  handle_nested_irq
+  handle_sysrq
+  hdmi_audio_infoframe_init
+  hdmi_audio_infoframe_pack
+  hdmi_avi_infoframe_pack
+  hdmi_drm_infoframe_pack
+  hdmi_vendor_infoframe_pack
+  hex_dump_to_buffer
+  i2c_add_adapter
+  i2c_del_adapter
+  i2c_del_driver
+  i2c_generic_scl_recovery
+  i2c_new_dummy_device
+  i2c_put_adapter
+  i2c_recover_bus
+  i2c_register_driver
+  i2c_smbus_read_byte_data
+  i2c_smbus_write_byte_data
+  i2c_transfer
+  i2c_transfer_buffer_flags
+  i2c_unregister_device
+  ida_alloc_range
+  ida_free
+  idr_alloc
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_get_next
+  idr_preload
+  idr_remove
+  iio_device_attach_buffer
+  iio_device_claim_direct_mode
+  __iio_device_register
+  iio_device_release_direct_mode
+  iio_device_unregister
+  iio_get_time_ns
+  iio_push_event
+  iio_push_to_buffers
+  init_net
+  __init_swait_queue_head
+  init_timer_key
+  init_wait_entry
+  __init_waitqueue_head
+  input_alloc_absinfo
+  input_event
+  input_mt_init_slots
+  input_mt_report_slot_state
+  input_mt_sync_frame
+  input_register_device
+  input_set_abs_params
+  input_set_capability
+  iomem_resource
+  __ioremap
+  iounmap
+  __irq_domain_add
+  irq_domain_add_legacy
+  irq_domain_remove
+  irq_domain_simple_ops
+  irq_get_irq_data
+  irq_modify_status
+  irq_of_parse_and_map
+  __irq_resolve_mapping
+  irq_set_chained_handler_and_data
+  irq_set_chip_and_handler_name
+  irq_set_chip_data
+  irq_set_irq_wake
+  is_vmalloc_addr
+  jiffies
+  jiffies_to_msecs
+  jiffies_to_usecs
+  kasan_flag_enabled
+  kasprintf
+  __kfifo_alloc
+  __kfifo_free
+  __kfifo_in
+  __kfifo_out
+  kfree
+  kfree_sensitive
+  kfree_skb
+  kimage_voffset
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order_trace
+  kmem_cache_alloc
+  kmem_cache_alloc_trace
+  kmem_cache_create
+  kmem_cache_destroy
+  kmem_cache_free
+  kmemdup
+  kobject_create_and_add
+  kobject_uevent_env
+  krealloc
+  kstrdup
+  kstrtoint
+  kstrtou16
+  kstrtouint
+  kstrtoull
+  kthread_create_on_node
+  kthread_should_stop
+  kthread_stop
+  ktime_get
+  ktime_get_mono_fast_ns
+  ktime_get_real_ts64
+  ktime_get_with_offset
+  kvfree_call_rcu
+  led_init_default_state_get
+  __list_add_valid
+  __list_del_entry_valid
+  __local_bh_enable_ip
+  mbox_free_channel
+  mbox_request_channel_byname
+  mbox_send_message
+  __mdiobus_read
+  mdiobus_read
+  mdiobus_write
+  media_create_pad_link
+  media_device_cleanup
+  media_device_init
+  __media_device_register
+  media_device_unregister
+  media_entity_pads_init
+  media_entity_remote_pad
+  memcmp
+  memcpy
+  __memcpy_fromio
+  __memcpy_toio
+  memdup_user
+  memmove
+  memparse
+  memset
+  memstart_addr
+  mipi_dsi_attach
+  mipi_dsi_create_packet
+  mipi_dsi_dcs_enter_sleep_mode
+  mipi_dsi_dcs_exit_sleep_mode
+  mipi_dsi_dcs_get_display_brightness
+  mipi_dsi_dcs_set_display_brightness
+  mipi_dsi_dcs_set_display_off
+  mipi_dsi_dcs_set_display_on
+  mipi_dsi_dcs_set_pixel_format
+  mipi_dsi_dcs_set_tear_on
+  mipi_dsi_dcs_set_tear_scanline
+  mipi_dsi_dcs_soft_reset
+  mipi_dsi_detach
+  mipi_dsi_device_register_full
+  mipi_dsi_device_unregister
+  mipi_dsi_driver_register_full
+  mipi_dsi_driver_unregister
+  mipi_dsi_generic_write
+  mipi_dsi_host_register
+  mipi_dsi_host_unregister
+  misc_deregister
+  misc_register
+  mod_delayed_work_on
+  mod_timer
+  module_layout
+  module_put
+  __msecs_to_jiffies
+  msleep
+  __mutex_init
+  mutex_is_locked
+  mutex_lock
+  mutex_lock_interruptible
+  mutex_unlock
+  napi_complete_done
+  napi_disable
+  napi_enable
+  napi_gro_receive
+  __napi_schedule
+  napi_schedule_prep
+  __netdev_alloc_skb
+  netdev_err
+  netdev_info
+  netif_carrier_off
+  netif_carrier_on
+  netif_device_attach
+  netif_device_detach
+  netif_napi_add
+  netif_receive_skb
+  netif_rx
+  netif_rx_ni
+  netif_tx_stop_all_queues
+  netif_tx_wake_queue
+  netlink_broadcast
+  net_ratelimit
+  __nla_parse
+  nla_put
+  no_llseek
+  noop_llseek
+  nr_cpu_ids
+  __num_online_cpus
+  of_address_to_resource
+  of_alias_get_id
+  of_clk_add_hw_provider
+  of_clk_get
+  of_clk_get_by_name
+  of_clk_hw_onecell_get
+  of_count_phandle_with_args
+  of_device_get_match_data
+  of_device_is_available
+  of_device_is_compatible
+  of_device_modalias
+  of_device_uevent_modalias
+  of_dma_controller_register
+  of_drm_find_bridge
+  of_find_compatible_node
+  of_find_device_by_node
+  of_find_i2c_device_by_node
+  of_find_matching_node_and_match
+  of_find_mipi_dsi_host_by_node
+  of_find_node_by_name
+  of_find_node_by_phandle
+  of_find_node_opts_by_path
+  of_find_property
+  of_genpd_add_provider_simple
+  of_genpd_del_provider
+  of_get_child_by_name
+  of_get_compatible_child
+  of_get_named_gpio_flags
+  of_get_next_available_child
+  of_get_next_child
+  of_get_parent
+  of_get_property
+  of_get_regulator_init_data
+  of_graph_get_next_endpoint
+  of_graph_get_port_by_id
+  of_graph_get_remote_node
+  of_graph_get_remote_port_parent
+  of_iomap
+  of_machine_is_compatible
+  of_match_device
+  of_match_node
+  of_node_name_eq
+  of_parse_phandle
+  of_parse_phandle_with_args
+  of_parse_phandle_with_fixed_args
+  of_phandle_iterator_init
+  of_phandle_iterator_next
+  of_phy_simple_xlate
+  of_platform_depopulate
+  of_platform_populate
+  of_property_count_elems_of_size
+  of_property_match_string
+  of_property_read_string
+  of_property_read_string_helper
+  of_property_read_u32_index
+  of_property_read_variable_u32_array
+  of_reserved_mem_device_init_by_idx
+  of_reserved_mem_lookup
+  of_thermal_get_trip_points
+  of_usb_get_phy_mode
+  oops_in_progress
+  param_array_ops
+  param_ops_bool
+  param_ops_charp
+  param_ops_int
+  param_ops_uint
+  param_ops_ulong
+  pci_read_config_dword
+  __per_cpu_offset
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  pfn_is_map_memory
+  phy_drivers_register
+  phy_drivers_unregister
+  phy_error
+  phy_exit
+  phy_init
+  phy_init_hw
+  __phy_modify
+  phy_modify
+  phy_modify_changed
+  phy_modify_mmd
+  phy_power_off
+  phy_power_on
+  phy_read_mmd
+  phy_trigger_machine
+  phy_write_mmd
+  pinctrl_dev_get_drvdata
+  pinctrl_lookup_state
+  pinctrl_pm_select_default_state
+  pinctrl_pm_select_sleep_state
+  pinctrl_select_state
+  platform_bus_type
+  platform_device_add
+  platform_device_add_data
+  platform_device_alloc
+  platform_device_put
+  platform_device_register
+  platform_device_register_full
+  platform_device_unregister
+  __platform_driver_register
+  platform_driver_unregister
+  platform_get_irq
+  platform_get_irq_byname
+  platform_get_irq_optional
+  platform_get_resource
+  platform_get_resource_byname
+  platform_irq_count
+  pm_genpd_init
+  pm_genpd_remove
+  pm_runtime_allow
+  __pm_runtime_disable
+  pm_runtime_enable
+  pm_runtime_forbid
+  pm_runtime_force_resume
+  pm_runtime_force_suspend
+  __pm_runtime_idle
+  pm_runtime_no_callbacks
+  __pm_runtime_resume
+  pm_runtime_set_autosuspend_delay
+  __pm_runtime_set_status
+  __pm_runtime_suspend
+  __pm_runtime_use_autosuspend
+  pm_system_wakeup
+  pm_wakeup_dev_event
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait_event
+  _printk
+  pskb_expand_head
+  __pskb_pull_tail
+  put_device
+  __put_page
+  __put_task_struct
+  pwm_apply_state
+  queue_delayed_work_on
+  queue_work_on
+  ___ratelimit
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irq
+  _raw_spin_lock_irqsave
+  _raw_spin_trylock
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irq
+  _raw_spin_unlock_irqrestore
+  rb_erase
+  rb_insert_color
+  __rcu_read_lock
+  __rcu_read_unlock
+  rdev_get_drvdata
+  refcount_warn_saturate
+  regcache_cache_only
+  regcache_mark_dirty
+  regcache_sync
+  regcache_sync_region
+  __register_chrdev
+  register_inet6addr_notifier
+  register_inetaddr_notifier
+  register_netdev
+  register_netdevice
+  register_netdevice_notifier
+  register_pm_notifier
+  register_reboot_notifier
+  __register_rpmsg_driver
+  register_virtio_driver
+  regmap_attach_dev
+  regmap_bulk_read
+  regmap_bulk_write
+  regmap_read
+  regmap_register_patch
+  regmap_update_bits_base
+  regmap_write
+  regulator_bulk_disable
+  regulator_bulk_enable
+  regulator_disable
+  regulator_disable_regmap
+  regulator_enable
+  regulator_enable_regmap
+  regulator_get_voltage_sel_regmap
+  regulator_is_enabled
+  regulator_is_enabled_regmap
+  regulator_list_voltage_table
+  regulator_set_voltage
+  regulator_set_voltage_sel_regmap
+  regulator_set_voltage_time_sel
+  release_firmware
+  __release_region
+  remap_pfn_range
+  remove_proc_entry
+  remove_wait_queue
+  request_firmware
+  request_firmware_nowait
+  __request_module
+  __request_region
+  request_threaded_irq
+  reset_control_assert
+  reset_control_deassert
+  rpmsg_register_device
+  rpmsg_send
+  rpmsg_sendto
+  rproc_add
+  rproc_add_carveout
+  rproc_alloc
+  rproc_coredump_add_segment
+  rproc_del
+  rproc_elf_get_boot_addr
+  rproc_elf_load_rsc_table
+  rproc_elf_sanity_check
+  rproc_free
+  rproc_mem_entry_init
+  rproc_vq_interrupt
+  rtc_time64_to_tm
+  rtc_tm_to_time64
+  rtc_update_irq
+  rtnl_is_locked
+  rtnl_lock
+  rtnl_unlock
+  schedule
+  schedule_timeout
+  scmi_driver_register
+  scmi_driver_unregister
+  scnprintf
+  seq_lseek
+  seq_printf
+  seq_puts
+  seq_read
+  sg_alloc_table
+  sg_alloc_table_from_pages_segment
+  sg_free_table
+  sg_init_one
+  sg_init_table
+  sg_next
+  __sg_page_iter_next
+  __sg_page_iter_start
+  simple_open
+  simple_read_from_buffer
+  simple_strtoul
+  single_open
+  single_release
+  skb_clone
+  skb_copy_bits
+  skb_pull
+  skb_push
+  skb_put
+  skb_trim
+  snd_ctl_boolean_mono_info
+  snd_dma_alloc_pages
+  snd_dmaengine_pcm_prepare_slave_config
+  snd_dma_free_pages
+  snd_pcm_format_physical_width
+  snd_pcm_format_width
+  snd_pcm_hw_constraint_integer
+  snd_pcm_hw_constraint_list
+  snd_pcm_hw_constraint_step
+  snd_pcm_hw_rule_add
+  snd_pcm_period_elapsed
+  snd_pcm_set_managed_buffer
+  snd_soc_add_component_controls
+  snd_soc_card_jack_new
+  snd_soc_component_read
+  snd_soc_component_update_bits
+  snd_soc_component_write
+  snd_soc_dai_active
+  snd_soc_daifmt_parse_clock_provider_raw
+  snd_soc_daifmt_parse_format
+  snd_soc_dai_link_set_capabilities
+  snd_soc_dai_set_fmt
+  snd_soc_dai_set_sysclk
+  snd_soc_dai_set_tdm_slot
+  snd_soc_dapm_add_routes
+  snd_soc_dapm_disable_pin
+  snd_soc_dapm_get_enum_double
+  snd_soc_dapm_get_volsw
+  snd_soc_dapm_ignore_suspend
+  snd_soc_dapm_kcontrol_dapm
+  snd_soc_dapm_new_controls
+  snd_soc_dapm_put_enum_double
+  snd_soc_dapm_put_volsw
+  snd_soc_dpcm_get_substream
+  snd_soc_get_enum_double
+  snd_soc_get_pcm_runtime
+  snd_soc_get_volsw
+  snd_soc_info_enum_double
+  snd_soc_info_volsw
+  snd_soc_jack_report
+  snd_soc_of_get_dai_name
+  snd_soc_of_parse_audio_routing
+  snd_soc_of_parse_card_name
+  snd_soc_of_parse_tdm_slot
+  snd_soc_params_to_bclk
+  snd_soc_pm_ops
+  snd_soc_put_enum_double
+  snd_soc_put_volsw
+  snd_soc_set_runtime_hwparams
+  snprintf
+  soc_device_match
+  sort
+  __spi_alloc_controller
+  spi_mem_default_supports_op
+  __spi_register_driver
+  sprintf
+  sscanf
+  __stack_chk_fail
+  strcasecmp
+  strchr
+  strcmp
+  strcpy
+  strlcpy
+  strlen
+  strncmp
+  strncpy
+  strrchr
+  strscpy
+  strsep
+  strstr
+  __sw_hweight16
+  __sw_hweight32
+  __sw_hweight64
+  __sw_hweight8
+  sync_file_create
+  sync_file_get_fence
+  synchronize_irq
+  synchronize_net
+  synchronize_rcu
+  syscon_node_to_regmap
+  syscon_regmap_lookup_by_compatible
+  syscon_regmap_lookup_by_phandle
+  sysfs_create_file_ns
+  sysfs_create_files
+  sysfs_create_group
+  sysfs_emit
+  sysfs_remove_file_ns
+  sysfs_remove_group
+  sysrq_mask
+  system_power_efficient_wq
+  system_wq
+  tasklet_init
+  tasklet_kill
+  __tasklet_schedule
+  tasklet_setup
+  thermal_cooling_device_unregister
+  thermal_of_cooling_device_register
+  timer_of_init
+  touchscreen_parse_properties
+  touchscreen_report_pos
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_handle_return
+  trace_raw_output_prep
+  try_module_get
+  tty_encode_baud_rate
+  tty_flip_buffer_push
+  __tty_insert_flip_char
+  tty_insert_flip_string_fixed_flag
+  tty_kref_put
+  tty_port_tty_get
+  tty_termios_baud_rate
+  uart_add_one_port
+  uart_console_device
+  uart_console_write
+  uart_get_baud_rate
+  uart_get_rs485_mode
+  uart_parse_options
+  uart_register_driver
+  uart_remove_one_port
+  uart_resume_port
+  uart_set_options
+  uart_suspend_port
+  uart_try_toggle_sysrq
+  uart_unregister_driver
+  uart_update_timeout
+  uart_write_wakeup
+  __ubsan_handle_cfi_check_fail_abort
+  __udelay
+  __unregister_chrdev
+  unregister_chrdev_region
+  unregister_inet6addr_notifier
+  unregister_inetaddr_notifier
+  unregister_netdev
+  unregister_netdevice_notifier
+  unregister_netdevice_queue
+  unregister_rpmsg_driver
+  unregister_virtio_driver
+  up
+  up_read
+  up_write
+  usb_add_phy_dev
+  usb_autopm_get_interface
+  usb_autopm_put_interface
+  usb_control_msg
+  usb_disabled
+  usb_remove_phy
+  usleep_range_state
+  v4l2_ctrl_handler_free
+  v4l2_ctrl_handler_init_class
+  v4l2_ctrl_handler_setup
+  v4l2_ctrl_new_custom
+  v4l2_ctrl_new_std
+  v4l2_ctrl_new_std_menu
+  v4l2_ctrl_subscribe_event
+  v4l2_device_register
+  v4l2_device_register_subdev
+  __v4l2_device_register_subdev_nodes
+  v4l2_device_unregister
+  v4l2_device_unregister_subdev
+  v4l2_event_pending
+  v4l2_event_queue
+  v4l2_event_subscribe
+  v4l2_event_unsubscribe
+  v4l2_fh_add
+  v4l2_fh_del
+  v4l2_fh_exit
+  v4l2_fh_init
+  v4l2_i2c_subdev_init
+  v4l2_subdev_call_wrappers
+  v4l2_subdev_init
+  v4l2_subdev_link_validate
+  v4l_bound_align_image
+  vabits_actual
+  vb2_buffer_done
+  vb2_dma_contig_memops
+  vb2_dqbuf
+  vb2_expbuf
+  vb2_fop_mmap
+  vb2_fop_poll
+  vb2_mmap
+  vb2_ops_wait_finish
+  vb2_ops_wait_prepare
+  vb2_plane_cookie
+  vb2_plane_vaddr
+  vb2_poll
+  vb2_qbuf
+  vb2_querybuf
+  vb2_queue_init
+  vb2_queue_release
+  vb2_reqbufs
+  vb2_streamoff
+  vb2_streamon
+  vchan_dma_desc_free_list
+  vchan_find_desc
+  vchan_init
+  vchan_tx_desc_free
+  vchan_tx_submit
+  vfree
+  video_devdata
+  video_device_alloc
+  video_device_release
+  video_device_release_empty
+  video_ioctl2
+  __video_register_device
+  video_unregister_device
+  virtqueue_add_inbuf
+  virtqueue_add_outbuf
+  virtqueue_get_buf
+  virtqueue_get_vring_size
+  virtqueue_kick
+  virtqueue_kick_prepare
+  virtqueue_notify
+  vmalloc
+  vmalloc_to_page
+  vmap
+  vsnprintf
+  vunmap
+  vzalloc
+  wait_for_completion
+  wait_for_completion_interruptible
+  wait_for_completion_interruptible_timeout
+  wait_for_completion_timeout
+  __wake_up
+  wake_up_process
+  __warn_printk
+  watchdog_init_timeout
+
+# required by adv7511.ko
+  cec_s_phys_addr
+  cec_s_phys_addr_from_edid
+  cec_transmit_done_ts
+  drm_get_connector_status_name
+  hdmi_avi_infoframe_init
+  i2c_new_ancillary_device
+
+# required by at803x.ko
+  genphy_read_lpa
+  mdio_device_reset
+  phy_resolve_aneg_pause
+
+# required by cdns_mhdp_drmcore.ko
+  drm_connector_attach_content_protection_property
+  drm_dp_aux_register
+  drm_dp_aux_unregister
+  drm_dp_bw_code_to_link_rate
+  drm_dp_dpcd_read
+  drm_dp_link_rate_to_bw_code
+  drm_hdcp_check_ksvs_revoked
+  drm_hdcp_update_content_protection
+  drm_hdmi_avi_infoframe_colorspace
+  drm_mode_create_hdmi_colorspace_property
+  drm_modeset_lock
+  drm_modeset_unlock
+  hdmi_avi_infoframe_check
+  seq_write
+
+# required by cfg80211.ko
+  bpf_trace_run10
+  bpf_trace_run7
+  debugfs_rename
+  __dev_change_net_namespace
+  __dev_get_by_index
+  dev_get_by_index
+  device_rename
+  do_trace_netlink_extack
+  genlmsg_multicast_allns
+  genlmsg_put
+  genl_register_family
+  genl_unregister_family
+  get_net_ns_by_fd
+  get_net_ns_by_pid
+  inet_csk_get_port
+  init_uts_ns
+  key_create_or_update
+  key_put
+  keyring_alloc
+  ktime_get_coarse_with_offset
+  netlink_register_notifier
+  netlink_unicast
+  netlink_unregister_notifier
+  net_ns_type_operations
+  nla_find
+  nla_memcpy
+  nla_put_64bit
+  nla_reserve
+  __nla_validate
+  of_prop_next_u32
+  __put_net
+  register_pernet_device
+  rfkill_alloc
+  rfkill_blocked
+  rfkill_destroy
+  rfkill_register
+  rfkill_resume_polling
+  rfkill_set_hw_state_reason
+  rfkill_unregister
+  skb_add_rx_frag
+  __sock_create
+  sock_release
+  sysfs_create_link
+  sysfs_remove_link
+  trace_print_array_seq
+  unregister_pernet_device
+  verify_pkcs7_signature
+  wireless_nlevent_flush
+
+# required by ci_hdrc.ko
+  debugfs_lookup
+  devm_extcon_register_notifier
+  devm_usb_get_phy
+  ehci_handshake
+  ehci_hub_control
+  ehci_init_driver
+  ehci_setup
+  extcon_get_edev_by_phandle
+  extcon_get_state
+  of_usb_host_tpl_support
+  of_usb_update_otg_caps
+  phy_set_mode_ext
+  platform_device_add_resources
+  usb_add_gadget_udc
+  usb_add_hcd
+  __usb_create_hcd
+  usb_debug_root
+  usb_del_gadget_udc
+  usb_ep_alloc_request
+  usb_ep_clear_halt
+  usb_ep_disable
+  usb_ep_enable
+  usb_ep_fifo_flush
+  usb_ep_free_request
+  usb_ep_set_halt
+  usb_ep_set_maxpacket_limit
+  usb_gadget_connect
+  usb_gadget_disconnect
+  usb_gadget_giveback_request
+  usb_gadget_map_request_by_dev
+  usb_gadget_set_state
+  usb_gadget_udc_reset
+  usb_gadget_unmap_request
+  usb_gadget_unmap_request_by_dev
+  usb_gadget_vbus_connect
+  usb_gadget_vbus_disconnect
+  usb_get_dr_mode
+  usb_get_maximum_speed
+  usb_hcd_irq
+  usb_hcd_map_urb_for_dma
+  usb_hcd_unmap_urb_for_dma
+  usb_phy_set_charger_current
+  usb_phy_set_charger_state
+  usb_phy_set_event
+  usb_put_hcd
+  usb_remove_hcd
+  usb_role_switch_get_drvdata
+  usb_role_switch_register
+  usb_role_switch_unregister
+  usb_udc_vbus_handler
+
+# required by clk-imx8ulp.ko
+  devm_of_clk_add_hw_provider
+
+# required by cma_heap.ko
+  cma_alloc
+  cma_get_name
+  cma_release
+  dma_contiguous_default_area
+
+# required by cp210x.ko
+  tty_termios_hw_change
+
+# required by cpufreq-dt.ko
+  cpufreq_enable_boost_support
+  cpufreq_freq_attr_scaling_available_freqs
+  cpufreq_freq_attr_scaling_boost_freqs
+  cpufreq_generic_frequency_table_verify
+  cpufreq_generic_get
+  cpufreq_generic_suspend
+  cpufreq_register_driver
+  cpufreq_unregister_driver
+  dev_pm_opp_free_cpufreq_table
+  dev_pm_opp_get_max_transition_latency
+  dev_pm_opp_get_opp_count
+  dev_pm_opp_get_sharing_cpus
+  dev_pm_opp_get_suspend_opp_freq
+  dev_pm_opp_init_cpufreq_table
+  dev_pm_opp_of_cpumask_add_table
+  dev_pm_opp_of_cpumask_remove_table
+  dev_pm_opp_of_get_sharing_cpus
+  dev_pm_opp_of_register_em
+  dev_pm_opp_put_regulators
+  dev_pm_opp_set_rate
+  dev_pm_opp_set_regulators
+  dev_pm_opp_set_sharing_cpus
+  policy_has_boost_freq
+
+# required by cqhci.ko
+  devm_blk_ksm_init
+  mmc_cqe_request_done
+
+# required by drm_dp_aux_bus.ko
+  device_for_each_child_reverse
+  dev_pm_domain_attach
+
+# required by dummy_battery.ko
+  power_supply_register
+  power_supply_unregister
+
+# required by dw-hdmi-cec.ko
+  cec_notifier_cec_adap_register
+  cec_notifier_cec_adap_unregister
+  devm_remove_action
+
+# required by dw-hdmi.ko
+  cec_fill_conn_info_from_drm
+  cec_notifier_conn_register
+  cec_notifier_conn_unregister
+  cec_notifier_set_phys_addr
+  cec_notifier_set_phys_addr_from_edid
+  drm_connector_atomic_hdr_metadata_equal
+  drm_connector_attach_hdr_output_metadata_property
+  drm_connector_attach_max_bpc_property
+  drm_connector_init_with_ddc
+  drm_scdc_read
+  drm_scdc_set_high_tmds_clock_ratio
+  drm_scdc_set_scrambling
+  drm_scdc_write
+  of_get_i2c_adapter_by_node
+  of_graph_get_endpoint_by_regs
+
+# required by dw_hdmi-imx.ko
+  devm_phy_optional_get
+  __drmm_simple_encoder_alloc
+  drm_of_encoder_active_endpoint
+
+# required by elants_i2c.ko
+  i2c_smbus_xfer
+
+# required by fb.ko
+  console_lock
+  console_unlock
+  fb_mode_option
+  ignore_console_lock_warning
+  int_sqrt
+  is_console_locked
+  of_get_videomode
+  proc_create_seq_private
+  simple_strtol
+  vm_get_page_prot
+  vm_iomap_memory
+
+# required by fb_fence.ko
+  put_unused_fd
+  system_unbound_wq
+
+# required by fec.ko
+  ethtool_op_get_ts_info
+  mdiobus_alloc_size
+  mdiobus_free
+  mdiobus_is_registered_device
+  mdiobus_unregister
+  netdev_pick_tx
+  netif_schedule_queue
+  net_selftest
+  net_selftest_get_count
+  net_selftest_get_strings
+  ns_to_timespec64
+  of_get_mac_address
+  of_get_phy_mode
+  of_mdiobus_register
+  of_phy_connect
+  of_phy_deregister_fixed_link
+  of_phy_find_device
+  of_phy_is_fixed_link
+  of_phy_register_fixed_link
+  param_ops_byte
+  phy_attached_info
+  phy_connect
+  phy_disconnect
+  phy_ethtool_get_eee
+  phy_ethtool_get_link_ksettings
+  phy_ethtool_nway_reset
+  phy_ethtool_set_eee
+  phy_ethtool_set_link_ksettings
+  phy_init_eee
+  phy_mii_ioctl
+  phy_print_status
+  phy_remove_link_mode
+  phy_reset_after_clk_enable
+  phy_set_max_speed
+  phy_set_sym_pause
+  phy_start
+  phy_start_aneg
+  phy_stop
+  phy_support_sym_pause
+  platform_get_irq_byname_optional
+  ptp_clock_event
+  ptp_clock_index
+  ptp_clock_register
+  ptp_clock_unregister
+  skb_tstamp_tx
+  timecounter_cyc2time
+  timecounter_init
+  timecounter_read
+  tso_build_data
+  tso_build_hdr
+  tso_count_descs
+  tso_start
+
+# required by fp9931-core.ko
+  devm_mfd_add_devices
+
+# required by fp9931-regulator.ko
+  gpiod_get_raw_value
+
+# required by fsl-edma-v3.ko
+  dma_get_slave_channel
+  of_dma_controller_free
+
+# required by fsl_imx8_ddr_perf.ko
+  bitmap_print_to_pagebuf
+  cpumask_any_but
+  irq_set_affinity
+  of_irq_get
+  perf_pmu_migrate_context
+  perf_pmu_register
+  perf_pmu_unregister
+
+# required by fsl_lpuart.ko
+  add_timer
+  console_suspend_enabled
+
+# required by ftdi_sio.ko
+  kstrtou8
+
+# required by galcore.ko
+  anon_inode_getfd
+  cache_line_size
+  dev_pm_opp_add
+  dev_pm_opp_remove
+  dma_fence_array_ops
+  dma_fence_signal
+  down
+  driver_create_file
+  driver_remove_file
+  drm_gem_handle_create
+  drm_gem_object_lookup
+  drm_gem_object_release
+  drm_gem_private_object_init
+  __find_vma
+  find_vpid
+  get_user_pages
+  hrtimer_resolution
+  iommu_attach_device
+  iommu_domain_alloc
+  iommu_domain_free
+  iommu_map
+  iommu_set_fault_handler
+  iommu_unmap
+  kstrtoint_from_user
+  ktime_get_ts64
+  mem_section
+  mutex_trylock
+  param_ops_ullong
+  pid_task
+  reset_control_reset
+  schedule_hrtimeout
+  __task_pid_nr_ns
+  _totalram_pages
+  __traceiter_gpu_mem_total
+  __tracepoint_gpu_mem_total
+  vm_mmap
+  vm_munmap
+  vm_zone_stat
+
+# required by goodix.ko
+  gpiod_direction_input
+
+# required by gpio-imx-rpmsg.ko
+  generic_handle_irq
+  __irq_alloc_descs
+
+# required by gpio-ir-recv.ko
+  devm_rc_allocate_device
+  devm_rc_register_device
+  ir_raw_event_store_edge
+
+# required by gpio-mxc.ko
+  bgpio_init
+  __devm_irq_alloc_descs
+  devm_irq_alloc_generic_chip
+  devm_irq_setup_generic_chip
+  gpiochip_lock_as_irq
+  gpiochip_unlock_as_irq
+  irq_gc_ack_set_bit
+  irq_gc_mask_clr_bit
+  irq_gc_mask_set_bit
+  __irq_set_handler
+  register_syscore_ops
+
+# required by gpio-pca953x.ko
+  __bitmap_or
+  __bitmap_replace
+  __bitmap_xor
+  handle_simple_irq
+
+# required by gpio-regulator.ko
+  devm_kstrdup
+  gpiod_count
+
+# required by gpio-reset.ko
+  reset_controller_register
+  reset_controller_unregister
+
+# required by gpio-switch.ko
+  typec_switch_get_drvdata
+  typec_switch_register
+  typec_switch_unregister
+
+# required by gpio-vf610.ko
+  pinctrl_gpio_direction_input
+  pinctrl_gpio_direction_output
+
+# required by hwmon.ko
+  devres_release
+  kobject_uevent
+  kstrtoll
+  strpbrk
+  sysfs_notify
+  thermal_zone_device_update
+
+# required by i2c-imx-lpi2c.ko
+  i2c_get_dma_safe_msg_buf
+  i2c_put_dma_safe_msg_buf
+  pinctrl_pm_select_idle_state
+
+# required by i2c-imx.ko
+  clk_notifier_register
+  clk_notifier_unregister
+  i2c_add_numbered_adapter
+
+# required by imx-cpufreq-dt.ko
+  clk_bulk_get
+  clk_bulk_put
+  dev_pm_opp_put_supported_hw
+  dev_pm_opp_set_supported_hw
+  nvmem_cell_read_u32
+
+# required by imx-dcnano-drm.ko
+  drm_crtc_vblank_helper_get_vblank_timestamp
+  drm_crtc_vblank_put
+  drm_gem_plane_helper_prepare_fb
+  of_graph_parse_endpoint
+
+# required by imx-dcss.ko
+  devm_clk_put
+  devm_iounmap
+  drm_atomic_get_connector_state
+  drm_atomic_helper_check_modeset
+  drm_atomic_helper_check_planes
+  drm_atomic_helper_disable_planes_on_crtc
+  drm_atomic_normalize_zpos
+  drm_bridge_connector_disable_hpd
+  drm_bridge_connector_enable_hpd
+  drm_gem_prime_import
+  drm_plane_create_alpha_property
+  drm_plane_create_color_properties
+  drm_plane_create_rotation_property
+  drm_plane_create_scaling_filter_property
+  drm_property_create_range
+
+# required by imx-dsp.ko
+  device_set_of_node_from_dev
+
+# required by imx-lcdif-crtc.ko
+  drm_atomic_add_affected_connectors
+  drm_property_destroy
+  drm_self_refresh_helper_cleanup
+  drm_self_refresh_helper_init
+
+# required by imx-mailbox.ko
+  devm_mbox_controller_register
+  mbox_chan_received_data
+  mbox_chan_txdone
+
+# required by imx-pcm-rpmsg.ko
+  __pm_relax
+  __pm_stay_awake
+  snd_soc_lookup_component
+  wakeup_source_register
+  wakeup_source_unregister
+
+# required by imx-sdma.ko
+  gen_pool_dma_alloc
+  of_gen_pool_get
+
+# required by imx.ko
+  hrtimer_init
+  hrtimer_start_range_ns
+  hrtimer_try_to_cancel
+  mctrl_gpio_disable_ms
+  mctrl_gpio_enable_ms
+  mctrl_gpio_get
+  mctrl_gpio_init
+  mctrl_gpio_set
+  rational_best_approximation
+  tty_termios_encode_baud_rate
+  uart_get_divisor
+  uart_handle_cts_change
+  uart_handle_dcd_change
+
+# required by imx2_wdt.ko
+  __platform_driver_probe
+  watchdog_set_restart_priority
+
+# required by imx8-isi-capture.ko
+  media_graph_walk_cleanup
+  media_graph_walk_init
+  media_graph_walk_next
+  media_graph_walk_start
+  v4l2_fh_open
+  v4l2_g_parm_cap
+  v4l2_s_parm_cap
+  _vb2_fop_release
+  vb2_ioctl_create_bufs
+  vb2_ioctl_dqbuf
+  vb2_ioctl_expbuf
+  vb2_ioctl_prepare_buf
+  vb2_ioctl_qbuf
+  vb2_ioctl_querybuf
+  vb2_ioctl_reqbufs
+  vb2_ioctl_streamoff
+  vb2_ioctl_streamon
+
+# required by imx8-isi-mem2mem.ko
+  v4l2_m2m_buf_queue
+  v4l2_m2m_buf_remove
+  v4l2_m2m_ctx_init
+  v4l2_m2m_ctx_release
+  v4l2_m2m_fop_mmap
+  v4l2_m2m_fop_poll
+  v4l2_m2m_get_curr_priv
+  v4l2_m2m_get_vq
+  v4l2_m2m_init
+  v4l2_m2m_ioctl_create_bufs
+  v4l2_m2m_ioctl_dqbuf
+  v4l2_m2m_ioctl_expbuf
+  v4l2_m2m_ioctl_prepare_buf
+  v4l2_m2m_ioctl_qbuf
+  v4l2_m2m_ioctl_querybuf
+  v4l2_m2m_ioctl_reqbufs
+  v4l2_m2m_ioctl_streamoff
+  v4l2_m2m_ioctl_streamon
+  v4l2_m2m_job_finish
+  v4l2_m2m_next_buf
+  v4l2_m2m_release
+
+# required by imx8m_pm_domains.ko
+  of_genpd_add_subdomain
+
+# required by imx8mm_thermal.ko
+  thermal_zone_bind_cooling_device
+
+# required by imx8mp-ldb.ko
+  devm_of_phy_get
+
+# required by imx_dsp_rproc.ko
+  rproc_da_to_va
+  rproc_of_parse_firmware
+
+# required by imx_rproc.ko
+  rproc_elf_find_loaded_rsc_table
+  rproc_elf_load_segments
+
+# required by imxdrm.ko
+  component_match_add_release
+
+# required by industrialio-triggered-buffer.ko
+  iio_alloc_pollfunc
+  iio_dealloc_pollfunc
+  iio_device_id
+
+# required by irq-imx-irqsteer.ko
+  irq_domain_xlate_onecell
+
+# required by kfifo_buf.ko
+  iio_buffer_init
+  iio_buffer_put
+  __kfifo_to_user
+
+# required by leds-gpio.ko
+  devm_fwnode_gpiod_get_index
+  gpiod_cansleep
+  gpiod_set_value
+
+# required by leds-pwm.ko
+  devm_fwnode_pwm_get
+  of_fwnode_ops
+
+# required by lpa_ctrl.ko
+  sysfs_create_groups
+
+# required by mac80211.ko
+  __alloc_percpu_gfp
+  arc4_crypt
+  arc4_setkey
+  call_rcu
+  crc32_be
+  crypto_aead_decrypt
+  crypto_aead_encrypt
+  crypto_aead_setauthsize
+  crypto_aead_setkey
+  crypto_alloc_aead
+  crypto_alloc_shash
+  crypto_alloc_skcipher
+  __crypto_memneq
+  crypto_shash_digest
+  crypto_shash_finup
+  crypto_shash_setkey
+  crypto_shash_update
+  crypto_skcipher_decrypt
+  crypto_skcipher_encrypt
+  crypto_skcipher_setkey
+  __crypto_xor
+  dev_fetch_sw_netstats
+  _dev_printk
+  dev_queue_xmit
+  eth_mac_addr
+  get_random_u32
+  __hw_addr_init
+  __hw_addr_sync
+  __hw_addr_unsync
+  kernel_param_lock
+  kernel_param_unlock
+  kfree_skb_list
+  ktime_get_seconds
+  kvfree
+  kvmalloc_node
+  netdev_set_default_ethtool_ops
+  netif_receive_skb_list
+  prandom_bytes
+  ___pskb_trim
+  rb_next
+  rb_prev
+  rcu_barrier
+  rhashtable_free_and_destroy
+  rhashtable_insert_slow
+  rhltable_init
+  __rht_bucket_nested
+  rht_bucket_nested
+  rht_bucket_nested_insert
+  round_jiffies
+  round_jiffies_relative
+  round_jiffies_up
+  skb_checksum_help
+  skb_clone_sk
+  skb_complete_wifi_ack
+  skb_copy
+  skb_copy_expand
+  skb_dequeue
+  skb_ensure_writable
+  __skb_get_hash
+  __skb_gso_segment
+  skb_queue_head
+  skb_queue_purge
+  skb_queue_tail
+  system_freezable_wq
+  tasklet_unlock_wait
+  unregister_netdevice_many
+  __usecs_to_jiffies
+
+# required by micrel.ko
+  genphy_restart_aneg
+
+# required by moal.ko
+  in4_pton
+  init_dummy_netdev
+  iwe_stream_add_event
+  iwe_stream_add_point
+  iwe_stream_add_value
+  iw_handler_get_spy
+  iw_handler_get_thrspy
+  iw_handler_set_spy
+  iw_handler_set_thrspy
+  ktime_get_raw_ts64
+  mmc_hw_reset
+  mmc_set_data_timeout
+  mmc_wait_for_req
+  __netif_napi_del
+  __netlink_kernel_create
+  netlink_kernel_release
+  panic
+  param_ops_ushort
+  pci_choose_state
+  pci_disable_device
+  pci_disable_msi
+  pci_disable_msix
+  pci_enable_device
+  pci_enable_msi
+  pci_enable_msix_range
+  pci_enable_wake
+  pci_iomap
+  pci_iounmap
+  __pci_register_driver
+  pci_release_region
+  pci_request_region
+  pci_reset_function
+  pci_restore_state
+  pci_save_state
+  pci_set_master
+  pci_set_power_state
+  pci_unregister_driver
+  PDE_DATA
+  prandom_u32
+  proc_create_data
+  proc_mkdir
+  request_firmware_direct
+  schedule_timeout_uninterruptible
+  sdio_claim_host
+  sdio_claim_irq
+  sdio_disable_func
+  sdio_enable_func
+  sdio_f0_readb
+  sdio_f0_writeb
+  sdio_get_host_pm_caps
+  sdio_readb
+  sdio_readsb
+  sdio_register_driver
+  sdio_release_host
+  sdio_release_irq
+  sdio_set_block_size
+  sdio_set_host_pm_flags
+  sdio_unregister_driver
+  sdio_writeb
+  sdio_writesb
+  skb_realloc_headroom
+  strcat
+  strim
+  strncasecmp
+  vprintk
+  wireless_send_event
+
+# required by mpl3115.ko
+  i2c_smbus_read_i2c_block_data
+  iio_trigger_notify_done
+
+# required by mtd.ko
+  bdi_alloc
+  bdi_put
+  bdi_register
+  deactivate_locked_super
+  fixed_size_llseek
+  generic_shutdown_super
+  lockref_get
+  logfc
+  lookup_bdev
+  __module_get
+  nvmem_register
+  nvmem_unregister
+  of_prop_next_string
+  proc_create_single_data
+  sget_fc
+  sysfs_remove_files
+  unregister_reboot_notifier
+
+# required by mux-core.ko
+  class_find_device
+  device_match_of_node
+  down_killable
+  ida_destroy
+
+# required by mux-mmio.ko
+  dev_get_regmap
+  devm_regmap_field_alloc
+  regmap_field_update_bits_base
+
+# required by mx6s_capture.ko
+  vb2_read
+
+# required by mxc-clk.ko
+  __clk_determine_rate
+  clk_divider_ops
+  clk_divider_ro_ops
+  clk_fractional_divider_ops
+  clk_gate_is_enabled
+  clk_gate_ops
+  __clk_get_hw
+  clk_hw_get_name
+  clk_hw_get_parent_by_index
+  clk_hw_is_enabled
+  clk_hw_register
+  clk_hw_register_composite
+  clk_hw_unregister
+  clk_mux_index_to_val
+  clk_mux_ops
+  clk_mux_ro_ops
+  clk_unregister
+  divider_get_val
+  divider_recalc_rate
+  of_clk_get_from_provider
+
+# required by mxc_epdc_v2_fb.ko
+  fb_get_options
+  strncat
+
+# required by mxs-dma.ko
+  dmaenginem_async_device_register
+
+# required by mxsfb.ko
+  devm_drm_panel_bridge_add_typed
+  drm_atomic_add_affected_planes
+  drm_connector_list_iter_begin
+  drm_connector_list_iter_end
+  drm_connector_list_iter_next
+  drm_get_format_info
+
+# required by nvmem-imx-ocotp.ko
+  devm_nvmem_register
+
+# required by nwl-dsi.ko
+  drm_bridge_chain_enable
+  drm_mode_debug_printmodeline
+  drm_panel_bridge_add_typed
+  drm_panel_bridge_remove
+  phy_configure
+  phy_mipi_dphy_get_default_config
+  phy_validate
+
+# required by ofpart.ko
+  of_n_addr_cells
+  of_n_size_cells
+
+# required by ov5640.ko
+  v4l2_ctrl_auto_cluster
+  v4l2_ctrl_new_std_menu_items
+  __v4l2_ctrl_s_ctrl_int64
+  v4l2_ctrl_subdev_log_status
+  v4l2_ctrl_subdev_subscribe_event
+  v4l2_event_subdev_unsubscribe
+  __v4l2_find_nearest_size
+
+# required by panel-rocktech-hx8394f.ko
+  mipi_dsi_dcs_write_buffer
+
+# required by panel-simple.ko
+  drm_bus_flags_from_videomode
+  drm_connector_set_panel_orientation
+  drm_mode_create
+  drm_panel_dp_aux_backlight
+  of_drm_get_panel_orientation
+  of_find_i2c_adapter_by_node
+  of_get_display_timing
+  videomode_from_timing
+
+# required by pca9450-regulator.ko
+  regulator_desc_list_voltage_linear_range
+  regulator_list_voltage_linear_range
+  regulator_set_ramp_delay_regmap
+
+# required by pci-imx6.ko
+  dw_pcie_find_capability
+  dw_pcie_find_ext_capability
+  dw_pcie_host_init
+  dw_pcie_link_up
+  dw_pcie_read
+  dw_pcie_read_dbi
+  dw_pcie_setup_rc
+  dw_pcie_wait_for_link
+  dw_pcie_write_dbi
+  pci_msi_enabled
+  phy_calibrate
+  regulator_get_voltage
+
+# required by pfuze100-regulator.ko
+  of_regulator_match
+  pm_power_off_prepare
+  rdev_get_id
+  regulator_list_voltage_linear
+  regulator_map_voltage_ascend
+
+# required by phy-fsl-imx8mq-usb.ko
+  power_supply_get_by_phandle
+  power_supply_get_property
+  power_supply_put
+  power_supply_reg_notifier
+  power_supply_set_property
+  power_supply_unreg_notifier
+
+# required by phy-fsl-samsung-hdmi.ko
+  devm_clk_register
+  of_clk_add_provider
+  of_clk_del_provider
+  of_clk_src_simple_get
+
+# required by phy-generic.ko
+  devm_regulator_get_exclusive
+  regulator_set_current_limit
+
+# required by pinctrl-imx.ko
+  devm_pinctrl_register_and_init
+  pinconf_generic_parse_dt_config
+  pinctrl_enable
+  pinctrl_force_default
+  pinctrl_force_sleep
+  pinctrl_generic_get_group
+  pinctrl_generic_get_group_count
+  pinctrl_generic_get_group_name
+  pinctrl_generic_get_group_pins
+  pin_get_name
+  pinmux_generic_get_function
+  pinmux_generic_get_function_count
+  pinmux_generic_get_function_groups
+  pinmux_generic_get_function_name
+  radix_tree_insert
+
+# required by pwm-rpmsg-imx.ko
+  of_pwm_xlate_with_flags
+
+# required by pwm_bl.ko
+  backlight_device_register
+  backlight_device_unregister
+  devm_pwm_get
+  pwm_free
+  pwm_request
+
+# required by pwrseq_simple.ko
+  bitmap_alloc
+  devm_gpiod_get_array
+  gpiod_set_array_value_cansleep
+  mmc_pwrseq_register
+  mmc_pwrseq_unregister
+
+# required by pxp_device.ko
+  dma_get_sgtable_attrs
+
+# required by pxp_dma_v3.ko
+  freezing_slow_path
+  __refrigerator
+  set_freezable
+  system_freezing_cnt
+
+# required by qoriq_thermal.ko
+  of_thermal_get_ntrips
+  thermal_zone_of_sensor_unregister
+
+# required by realtek.ko
+  genphy_handle_interrupt_no_ack
+  __mdiobus_write
+  phy_basic_t1_features
+  phy_modify_paged
+  phy_modify_paged_changed
+  phy_read_paged
+  phy_restore_page
+  phy_select_page
+  phy_write_paged
+
+# required by regmap-i3c.ko
+  dev_to_i3cdev
+  i3c_device_do_priv_xfers
+
+# required by reset-dispmix.ko
+  __regmap_init_mmio_clk
+
+# required by rpmsg_life_cycle.ko
+  pm_suspend_target_state
+  remove_cpu
+
+# required by rpmsg_ns.ko
+  rpmsg_create_channel
+  rpmsg_create_ept
+  rpmsg_release_channel
+
+# required by rtc-imx-rpmsg.ko
+  devm_rtc_device_register
+
+# required by rtc-snvs.ko
+  devm_rtc_allocate_device
+  __devm_rtc_register_device
+
+# required by scmi_pm_domain.ko
+  of_genpd_add_provider_onecell
+
+# required by sdhci-esdhc-imx.ko
+  mmc_gpio_get_cd
+  mmc_gpio_get_ro
+  mmc_gpio_set_cd_wake
+  mmc_of_parse
+  mmc_of_parse_voltage
+  mmc_retune_timer_stop
+  mmc_send_tuning
+  pinctrl_select_default_state
+  sdhci_add_host
+  sdhci_cqe_disable
+  sdhci_cqe_enable
+  sdhci_cqe_irq
+  sdhci_dumpregs
+  sdhci_execute_tuning
+  sdhci_pltfm_free
+  sdhci_pltfm_init
+  sdhci_remove_host
+  sdhci_reset
+  sdhci_resume_host
+  sdhci_runtime_resume_host
+  sdhci_runtime_suspend_host
+  sdhci_suspend_host
+
+# required by sec-dsim.ko
+  drm_atomic_helper_bridge_propagate_bus_fmt
+  drm_panel_enable
+  drm_panel_get_modes
+  drm_panel_prepare
+  of_drm_find_panel
+
+# required by secure_heap.ko
+  deferred_free
+  gen_pool_add_owner
+  gen_pool_alloc_algo_owner
+  gen_pool_create
+  gen_pool_destroy
+
+# required by snd-soc-fsl-asoc-card.ko
+  snd_soc_dai_set_pll
+  snd_soc_dapm_enable_pin
+  snd_soc_jack_notifier_register
+
+# required by snd-soc-fsl-asrc.ko
+  snd_dmaengine_pcm_refine_runtime_hwparams
+  snd_pcm_set_managed_buffer_all
+  snd_soc_lookup_component_nolocked
+
+# required by snd-soc-fsl-easrc.ko
+  snd_pcm_format_big_endian
+  snd_pcm_format_linear
+  snd_pcm_format_unsigned
+  snd_soc_info_xr_sx
+
+# required by snd-soc-fsl-esai.ko
+  snd_dmaengine_pcm_set_config_from_dai_data
+  snd_hwparams_to_dma_slave_config
+
+# required by snd-soc-fsl-micfil.ko
+  kobject_put
+  snd_soc_get_volsw_sx
+  snd_soc_info_volsw_sx
+  snd_soc_put_volsw_sx
+
+# required by snd-soc-fsl-spdif.ko
+  regcache_cache_bypass
+  snd_soc_add_dai_controls
+
+# required by snd-soc-hdmi-codec.ko
+  snd_ctl_add
+  snd_ctl_new1
+  snd_pcm_add_chmap_ctls
+  snd_pcm_create_iec958_consumer_default
+  snd_pcm_fill_iec958_consumer
+  snd_pcm_fill_iec958_consumer_hw_params
+  snd_pcm_hw_constraint_eld
+
+# required by snd-soc-imx-card.ko
+  snd_interval_refine
+  snd_soc_of_get_dai_link_codecs
+
+# required by snd-soc-imx-hdmi.ko
+  snd_pcm_hw_constraint_minmax
+  snd_soc_component_set_jack
+
+# required by snd-soc-imx-pcm512x-rpmsg.ko
+  i2c_get_adapter
+  i2c_smbus_read_byte
+  snd_soc_dai_set_bclk_ratio
+  snd_soc_limit_volume
+
+# required by snd-soc-imx-rpmsg.ko
+  snd_soc_get_dai_name
+
+# required by snd-soc-rpmsg-ak4497.ko
+  gpio_free
+
+# required by snd-soc-rpmsg-pcm512x.ko
+  devm_regulator_register_notifier
+  snd_ctl_boolean_stereo_info
+  snd_interval_ranges
+  snd_pcm_hw_constraint_ratnums
+  snd_soc_params_to_frame_size
+
+# required by snd-soc-simple-card-utils.ko
+  devm_kvasprintf
+  snd_soc_component_set_sysclk
+  snd_soc_daifmt_clock_provider_from_bitmap
+  snd_soc_dapm_get_pin_switch
+  snd_soc_dapm_info_pin_switch
+  snd_soc_dapm_put_pin_switch
+  snd_soc_jack_add_gpios
+  snd_soc_of_parse_audio_simple_widgets
+  snd_soc_runtime_calc_hw
+
+# required by snd-soc-simple-card.ko
+  snd_soc_of_parse_aux_devs
+  snd_soc_of_parse_node_prefix
+
+# required by snd-soc-tpa6130a2.ko
+  devm_gpio_request
+
+# required by snd-soc-wm8994.ko
+  devm_clk_bulk_get_optional
+  regmap_irq_get_virq
+  regmap_raw_write
+  snd_soc_bytes_get
+  snd_soc_bytes_info
+  snd_soc_bytes_put
+  snd_soc_component_init_regmap
+  snd_soc_dapm_disable_pin_unlocked
+  snd_soc_dapm_force_bias_level
+  snd_soc_dapm_force_enable_pin
+  snd_soc_dapm_force_enable_pin_unlocked
+  snd_soc_dapm_sync
+  snd_soc_dapm_sync_unlocked
+  try_wait_for_completion
+
+# required by snd-sof.ko
+  __iowrite32_copy
+  pci_write_config_dword
+  simple_write_to_buffer
+  snd_compr_malloc_pages
+  snd_sgbuf_get_addr
+  snd_soc_find_dai
+  snd_soc_rtdcom_lookup
+  snd_soc_tplg_component_load
+  snd_soc_tplg_component_remove
+  snd_soc_tplg_widget_bind_event
+  strnlen
+
+# required by snvs_pwrkey.ko
+  pm_relax
+
+# required by soc-imx8m.ko
+  of_root
+  soc_device_register
+
+# required by spi-bitbang.ko
+  spi_finalize_current_transfer
+  spi_register_controller
+  spi_unregister_controller
+
+# required by spi-imx.ko
+  sg_last
+
+# required by spi-nor.ko
+  devm_spi_mem_dirmap_create
+  memory_read_from_buffer
+  spi_mem_adjust_op_size
+  spi_mem_dirmap_read
+  spi_mem_dirmap_write
+  spi_mem_driver_register_with_owner
+  spi_mem_driver_unregister
+  spi_mem_exec_op
+  spi_mem_get_name
+  spi_mem_supports_op
+
+# required by spi-nxp-fspi.ko
+  spi_mem_dtr_supports_op
+
+# required by spidev.ko
+  spi_setup
+  spi_sync
+  stream_open
+
+# required by st_lsm6dsx.ko
+  __devm_iio_device_register
+  iio_read_mount_matrix
+  iio_show_mount_matrix
+
+# required by st_lsm6dsx_i3c.ko
+  i3c_device_match_id
+  i3c_driver_register_with_owner
+  i3c_driver_unregister
+
+# required by st_lsm6dsx_spi.ko
+  __devm_regmap_init_spi
+  spi_get_device_id
+
+# required by synaptics_dsx_i2c.ko
+  input_allocate_device
+  input_free_device
+  input_unregister_device
+
+# required by system_heap.ko
+  dmabuf_page_pool_alloc
+  dmabuf_page_pool_create
+  dmabuf_page_pool_destroy
+  dmabuf_page_pool_free
+
+# required by timer-imx-tpm.ko
+  clocksource_mmio_init
+  clocksource_mmio_readl_up
+  sched_clock_register
+
+# required by trusty-ipc.ko
+  _copy_from_iter
+  _copy_to_iter
+  dma_buf_vmap
+  dma_buf_vunmap
+  fget
+  import_iovec
+  strncpy_from_user
+  virtqueue_detach_unused_buf
+  wait_woken
+  woken_wake_function
+
+# required by trusty-irq.ko
+  disable_percpu_irq
+  enable_percpu_irq
+  free_percpu_irq
+  irq_create_of_mapping
+  of_irq_find_parent
+  __request_percpu_irq
+
+# required by trusty-log.ko
+  panic_notifier_list
+  seq_open
+  seq_release
+
+# required by trusty-virtio.ko
+  register_virtio_device
+  unregister_virtio_device
+  vring_del_virtqueue
+  vring_interrupt
+  vring_new_virtqueue
+
+# required by ulpi.ko
+  add_uevent_var
+  of_clk_set_defaults
+  of_device_request_module
+
+# required by usbserial.ko
+  driver_attach
+  schedule_timeout_interruptible
+  seq_putc
+  __tty_alloc_driver
+  tty_driver_kref_put
+  tty_hangup
+  tty_ldisc_deref
+  tty_ldisc_ref
+  tty_port_close
+  tty_port_destroy
+  tty_port_hangup
+  tty_port_init
+  tty_port_open
+  tty_port_register_device
+  tty_port_tty_wakeup
+  tty_register_driver
+  tty_standard_install
+  tty_std_termios
+  tty_termios_copy_hw
+  tty_unregister_device
+  tty_unregister_driver
+  tty_vhangup
+  usb_alloc_urb
+  usb_deregister
+  usb_driver_claim_interface
+  usb_driver_release_interface
+  usb_free_urb
+  usb_get_dev
+  usb_get_intf
+  usb_kill_urb
+  usb_match_id
+  usb_match_one_id
+  usb_poison_urb
+  usb_put_dev
+  usb_put_intf
+  usb_register_driver
+  usb_show_dynids
+  usb_store_new_id
+  usb_submit_urb
+  usb_unpoison_urb
+
+# required by v4l2-async.ko
+  _dev_notice
+  fwnode_handle_get
+  i2c_verify_client
+
+# required by v4l2-fwnode.ko
+  fwnode_device_is_available
+  fwnode_get_name
+  fwnode_graph_get_remote_endpoint
+  fwnode_graph_parse_endpoint
+  fwnode_property_get_reference_args
+  kstrdup_const
+
+# required by virtio_rpmsg_bus.ko
+  rpmsg_find_device
+  rpmsg_unregister_device
+  virtio_check_driver_offered_feature
+  virtqueue_disable_cb
+  virtqueue_enable_cb
+
+# required by vsiv4l2.ko
+  v4l2_event_dequeue
+  v4l2_event_queue_fh
+  v4l2_src_change_event_subscribe
+  vb2_create_bufs
+  vb2_prepare_buf
+
+# required by vvcam-video.ko
+  media_entity_remove_links
+  v4l2_ctrl_poll
+
+# required by wm8994.ko
+  gpiod_get_raw_value_cansleep
+  irq_create_mapping_affinity
+  irq_domain_xlate_twocell
+  mfd_add_devices
+  mfd_remove_devices
+  regmap_add_irq_chip
+  regmap_del_irq_chip
+  regmap_reinit_cache
+  regulator_bulk_free
+  regulator_bulk_get
+
+# required by zram.ko
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_start_io_acct
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  crypto_alloc_base
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_has_alg
+  del_gendisk
+  device_add_disk
+  disk_end_io_acct
+  disk_start_io_acct
+  flush_dcache_page
+  free_pages
+  fsync_bdev
+  __get_free_pages
+  __init_rwsem
+  memset64
+  page_endio
+  __register_blkdev
+  set_capacity
+  set_capacity_and_notify
+  __sysfs_match_string
+  sysfs_streq
+  unregister_blkdev
+  zs_compact
+  zs_create_pool
+  zs_destroy_pool
+  zs_free
+  zs_get_total_pages
+  zs_huge_class_size
+  zs_malloc
+  zs_map_object
+  zs_pool_stats
+  zs_unmap_object
+
+# required by zsmalloc.ko
+  alloc_anon_inode
+  __ClearPageMovable
+  contig_page_data
+  dec_zone_page_state
+  inc_zone_page_state
+  init_pseudo
+  iput
+  kern_mount
+  kern_unmount
+  kill_anon_super
+  page_mapping
+  _raw_read_lock
+  _raw_read_unlock
+  _raw_write_lock
+  _raw_write_unlock
+  register_shrinker
+  __SetPageMovable
+  unlock_page
+  unregister_shrinker
+  wait_on_page_bit
diff --git a/android/abi_gki_aarch64_lenovo b/android/abi_gki_aarch64_lenovo
new file mode 100644
index 0000000..cdd5b77
--- /dev/null
+++ b/android/abi_gki_aarch64_lenovo
@@ -0,0 +1,956 @@
+[abi_symbol_list]
+# commonly used symbols
+  alloc_chrdev_region
+  __alloc_pages
+  __alloc_skb
+  alloc_workqueue
+  android_kmalloc_64_create
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  bcmp
+  bitmap_find_free_region
+  bitmap_release_region
+  bitmap_zalloc
+  bpf_trace_run1
+  bpf_trace_run2
+  bpf_trace_run3
+  bpf_trace_run4
+  bpf_trace_run5
+  bus_for_each_dev
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  cancel_work_sync
+  cdev_add
+  cdev_del
+  cdev_init
+  __cfi_slowpath_diag
+  __check_object_size
+  __class_create
+  class_destroy
+  __class_register
+  class_unregister
+  __ClearPageMovable
+  clk_disable
+  clk_enable
+  clk_get_rate
+  clk_prepare
+  clk_put
+  clk_unprepare
+  cma_alloc
+  cma_release
+  complete
+  complete_all
+  __const_udelay
+  consume_skb
+  cpu_bit_bitmap
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpumask_next
+  cpu_number
+  __cpu_online_mask
+  __cpu_possible_mask
+  _ctype
+  debugfs_attr_read
+  debugfs_attr_write
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_remove
+  default_llseek
+  delayed_work_timer_fn
+  del_timer_sync
+  destroy_workqueue
+  dev_close
+  dev_driver_string
+  _dev_err
+  device_create
+  device_destroy
+  device_initialize
+  device_property_present
+  device_property_read_u32_array
+  _dev_info
+  devm_gpiod_get_optional
+  devm_ioremap
+  devm_ioremap_resource
+  devm_kfree
+  devm_kmalloc
+  devm_platform_ioremap_resource
+  __devm_regmap_init
+  __devm_request_region
+  devm_request_threaded_irq
+  _dev_notice
+  dev_set_name
+  _dev_warn
+  disable_irq
+  dma_alloc_attrs
+  dma_buf_attach
+  dma_buf_detach
+  dma_buf_export
+  dma_buf_get
+  dma_buf_map_attachment
+  dma_buf_put
+  dma_buf_unmap_attachment
+  dma_contiguous_default_area
+  dma_free_attrs
+  dma_heap_add
+  dma_heap_get_drvdata
+  dma_heap_get_name
+  dmam_alloc_attrs
+  dma_map_page_attrs
+  dma_map_sgtable
+  dmam_free_coherent
+  dma_set_coherent_mask
+  dma_set_mask
+  dma_sync_sg_for_cpu
+  dma_sync_sg_for_device
+  dma_sync_single_for_device
+  dma_unmap_page_attrs
+  dma_unmap_sg_attrs
+  down_interruptible
+  down_read
+  down_write
+  dump_stack
+  enable_irq
+  eth_type_trans
+  event_triggers_call
+  _find_first_bit
+  _find_first_zero_bit
+  __find_vma
+  finish_wait
+  flush_work
+  free_irq
+  __free_pages
+  free_pages
+  gcd
+  __get_free_pages
+  gic_nonsecure_priorities
+  hrtimer_cancel
+  hrtimer_forward
+  hrtimer_init
+  hrtimer_start_range_ns
+  i2c_get_adapter
+  i2c_put_adapter
+  i2c_transfer
+  init_net
+  __init_rwsem
+  __init_swait_queue_head
+  init_timer_key
+  init_wait_entry
+  __init_waitqueue_head
+  iomem_resource
+  __ioremap
+  iounmap
+  iput
+  irq_get_irq_data
+  irq_of_parse_and_map
+  irq_set_affinity
+  is_vmalloc_addr
+  jiffies
+  jiffies_to_msecs
+  kasan_flag_enabled
+  kfree
+  kfree_skb
+  kimage_voffset
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order_trace
+  kmem_cache_alloc_trace
+  kobject_create_and_add
+  kobject_init_and_add
+  kobject_put
+  kstrdup
+  kstrtoint
+  kstrtoint_from_user
+  kstrtouint
+  kstrtoull
+  kthread_create_on_node
+  kthread_should_stop
+  kthread_stop
+  ktime_get
+  ktime_get_mono_fast_ns
+  ktime_get_real_ts64
+  ktime_get_with_offset
+  kvfree
+  kvmalloc_node
+  __list_add_valid
+  __list_del_entry_valid
+  log_post_read_mmio
+  log_post_write_mmio
+  log_read_mmio
+  log_write_mmio
+  memcmp
+  memcpy
+  memdup_user
+  memmove
+  memset
+  memstart_addr
+  misc_deregister
+  misc_register
+  mod_delayed_work_on
+  mod_timer
+  module_layout
+  __msecs_to_jiffies
+  msleep
+  __mutex_init
+  mutex_is_locked
+  mutex_lock
+  mutex_unlock
+  __netdev_alloc_skb
+  netif_rx_ni
+  netlink_unicast
+  nla_put
+  no_llseek
+  nr_cpu_ids
+  of_address_to_resource
+  of_device_is_compatible
+  of_dma_is_coherent
+  of_find_device_by_node
+  of_find_property
+  of_get_child_by_name
+  of_get_next_available_child
+  of_get_next_child
+  of_iomap
+  of_irq_get
+  of_parse_phandle
+  of_property_read_string
+  of_property_read_variable_u32_array
+  of_reserved_mem_lookup
+  panic
+  param_ops_bool
+  param_ops_charp
+  param_ops_int
+  param_ops_string
+  param_ops_uint
+  param_ops_ulong
+  param_ops_ushort
+  pci_disable_device
+  pci_enable_device
+  pci_find_capability
+  pci_get_device
+  pci_set_power_state
+  __per_cpu_offset
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  pfn_is_map_memory
+  platform_device_register
+  platform_device_unregister
+  __platform_driver_register
+  platform_driver_unregister
+  platform_get_irq
+  platform_get_irq_byname
+  platform_get_irq_byname_optional
+  platform_get_resource
+  __pm_runtime_disable
+  pm_runtime_enable
+  __pm_runtime_idle
+  __pm_runtime_resume
+  __pm_runtime_set_status
+  __pm_runtime_suspend
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait_event
+  _printk
+  proc_create
+  put_device
+  __put_page
+  __put_task_struct
+  queue_delayed_work_on
+  queue_work_on
+  ___ratelimit
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irqsave
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irqrestore
+  rb_erase
+  rb_insert_color
+  __rcu_read_lock
+  __rcu_read_unlock
+  refcount_warn_saturate
+  register_chrdev_region
+  register_netdevice
+  register_netdevice_notifier
+  register_shrinker
+  regmap_read
+  regmap_write
+  release_firmware
+  __release_region
+  remap_pfn_range
+  request_firmware
+  __request_region
+  request_threaded_irq
+  reset_control_assert
+  reset_control_deassert
+  rfkill_alloc
+  rfkill_destroy
+  rfkill_register
+  rfkill_unregister
+  rtnl_is_locked
+  rtnl_lock
+  rtnl_unlock
+  sched_clock
+  schedule
+  schedule_timeout
+  scnprintf
+  seq_lseek
+  seq_open
+  seq_printf
+  seq_puts
+  seq_read
+  seq_release
+  __SetPageMovable
+  sg_alloc_table
+  sg_alloc_table_from_pages_segment
+  sg_free_table
+  sg_next
+  simple_attr_open
+  simple_attr_release
+  simple_open
+  simple_read_from_buffer
+  single_open
+  single_release
+  skb_pull
+  skb_push
+  snprintf
+  sprintf
+  sscanf
+  __stack_chk_fail
+  strcmp
+  strcpy
+  strlcpy
+  strlen
+  strncmp
+  strncpy
+  strnlen
+  strstr
+  __sw_hweight32
+  __sw_hweight64
+  synchronize_net
+  synchronize_rcu
+  sysfs_create_file_ns
+  sysfs_create_group
+  sysfs_emit
+  sysfs_remove_group
+  sysfs_streq
+  system_wq
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_handle_return
+  trace_print_array_seq
+  trace_raw_output_prep
+  __ubsan_handle_cfi_check_fail_abort
+  __udelay
+  unlock_page
+  __unregister_chrdev
+  unregister_chrdev_region
+  unregister_netdevice_notifier
+  unregister_netdevice_queue
+  unregister_shrinker
+  up
+  up_read
+  up_write
+  usleep_range_state
+  vabits_actual
+  vfree
+  vmalloc
+  vmap
+  vmf_insert_pfn_prot
+  vsnprintf
+  vunmap
+  vzalloc
+  wait_for_completion_timeout
+  __wake_up
+  wake_up_process
+  __warn_printk
+
+# required by access_monitor.ko
+  devm_iounmap
+  devm_of_iomap
+  of_property_read_string_helper
+
+# required by arm_dsu_pmu.ko
+  bitmap_from_arr32
+  bitmap_print_to_pagebuf
+  cpumask_any_but
+  dev_fwnode
+  devm_kasprintf
+  of_count_phandle_with_args
+  of_cpu_node_to_id
+  of_fwnode_ops
+  perf_event_update_userpage
+  perf_pmu_migrate_context
+  perf_pmu_register
+  perf_pmu_unregister
+
+# required by arm_smmu_v3.ko
+  alloc_io_pgtable_ops
+  amba_bustype
+  bitmap_free
+  bus_set_iommu
+  device_match_fwnode
+  devm_add_action
+  driver_find_device
+  free_io_pgtable_ops
+  generic_device_group
+  generic_iommu_put_resv_regions
+  iommu_alloc_resv_region
+  iommu_device_register
+  iommu_device_sysfs_add
+  iommu_device_sysfs_remove
+  iommu_device_unregister
+  iommu_dma_get_resv_regions
+  iommu_fwspec_add_ids
+  iommu_fwspec_free
+  iommu_report_device_fault
+  of_find_node_with_property
+  of_parse_phandle_with_args
+  pci_ats_supported
+  pci_bus_type
+  pci_device_group
+  pci_disable_ats
+  pci_enable_ats
+  platform_bus_type
+  platform_msi_domain_alloc_irqs
+  platform_msi_domain_free_irqs
+  __xa_alloc
+  xa_erase
+
+# required by bcmdhd.ko
+  add_timer
+  alloc_etherdev_mqs
+  bitmap_parse
+  capable
+  complete_and_exit
+  del_timer
+  __dev_kfree_skb_any
+  disable_irq_nosync
+  down
+  free_netdev
+  get_random_bytes
+  get_random_u32
+  gpiod_direction_output_raw
+  gpio_free
+  gpio_to_desc
+  iwe_stream_add_event
+  iwe_stream_add_point
+  iwe_stream_add_value
+  __kfifo_free
+  __kfifo_in
+  __kfifo_init
+  __kfifo_out
+  kobject_uevent
+  __local_bh_enable_ip
+  napi_complete_done
+  napi_disable
+  napi_enable
+  napi_gro_receive
+  __napi_schedule
+  napi_schedule_prep
+  netdev_update_features
+  netif_napi_add
+  __netif_napi_del
+  netif_receive_skb
+  netif_rx
+  netif_tx_wake_queue
+  __netlink_kernel_create
+  netlink_kernel_release
+  nla_put_nohdr
+  __nlmsg_put
+  ns_to_timespec64
+  pci_alloc_irq_vectors_affinity
+  pci_enable_wake
+  pci_find_ext_capability
+  pci_free_irq_vectors
+  pci_load_and_free_saved_state
+  pci_load_saved_state
+  pci_read_config_dword
+  __pci_register_driver
+  pci_restore_state
+  pci_save_state
+  pci_set_master
+  pci_store_saved_state
+  pci_unregister_driver
+  pci_write_config_dword
+  __pm_relax
+  __pm_stay_awake
+  pm_wakeup_ws_event
+  pskb_expand_head
+  register_inetaddr_notifier
+  register_netdev
+  register_pm_notifier
+  register_reboot_notifier
+  rtc_time64_to_tm
+  sched_set_fifo_low
+  set_cpus_allowed_ptr
+  simple_strtol
+  simple_strtoul
+  skb_clone
+  skb_copy
+  skb_dequeue
+  skb_queue_purge
+  skb_queue_tail
+  sock_wfree
+  sprint_symbol
+  strcat
+  strchr
+  strncasecmp
+  strncat
+  strrchr
+  strsep
+  strspn
+  sys_tz
+  tasklet_init
+  tasklet_kill
+  __tasklet_schedule
+  unregister_inetaddr_notifier
+  unregister_netdev
+  unregister_pm_notifier
+  unregister_reboot_notifier
+  vprintk
+  wakeup_source_register
+  wakeup_source_unregister
+  wireless_send_event
+  work_busy
+
+# required by cfg80211.ko
+  bpf_trace_run10
+  bpf_trace_run6
+  bpf_trace_run7
+  bpf_trace_run8
+  crc32_le
+  debugfs_rename
+  __dev_change_net_namespace
+  __dev_get_by_index
+  dev_get_by_index
+  device_add
+  device_del
+  device_rename
+  do_trace_netlink_extack
+  flush_delayed_work
+  genlmsg_multicast_allns
+  genlmsg_put
+  genl_register_family
+  genl_unregister_family
+  get_net_ns_by_fd
+  get_net_ns_by_pid
+  inet_csk_get_port
+  init_uts_ns
+  key_create_or_update
+  key_put
+  keyring_alloc
+  kfree_sensitive
+  kmemdup
+  kobject_uevent_env
+  ktime_get_coarse_with_offset
+  kvfree_call_rcu
+  netdev_err
+  netlink_broadcast
+  netlink_register_notifier
+  netlink_unregister_notifier
+  net_ns_type_operations
+  nla_find
+  nla_memcpy
+  __nla_parse
+  nla_put_64bit
+  nla_reserve
+  __nla_validate
+  of_prop_next_u32
+  platform_device_register_full
+  __pskb_pull_tail
+  __put_net
+  register_pernet_device
+  request_firmware_nowait
+  rfkill_blocked
+  rfkill_resume_polling
+  rfkill_set_hw_state_reason
+  skb_add_rx_frag
+  skb_copy_bits
+  skb_put
+  skb_trim
+  __sock_create
+  sock_release
+  __sw_hweight16
+  __sw_hweight8
+  sysfs_create_link
+  sysfs_remove_link
+  system_power_efficient_wq
+  unregister_pernet_device
+  verify_pkcs7_signature
+  wireless_nlevent_flush
+
+# required by ci700.ko
+  __arm_smccc_smc
+  kernel_kobj
+  of_device_is_available
+  of_find_matching_node_and_match
+  PDE_DATA
+  proc_mkdir
+
+# required by cma_heap.ko
+  cma_get_name
+
+# required by dma-buf-test-exporter.ko
+  dma_buf_begin_cpu_access
+  dma_buf_end_cpu_access
+  dma_buf_fd
+  dma_map_sg_attrs
+
+# required by dwc3-smartsilicon.ko
+  device_set_wakeup_capable
+  irq_set_irq_wake
+  of_get_compatible_child
+  of_platform_depopulate
+  of_platform_populate
+  sysfs_create_groups
+  usb_speed_string
+
+# required by fr.ko
+  find_task_by_vpid
+  iommu_get_domain_for_dev
+  iommu_iova_to_phys
+  remove_proc_entry
+
+# required by hantrodec.ko
+  of_dma_configure_id
+  vmalloc_to_page
+
+# required by hantroenc.ko
+  __register_chrdev
+
+# required by i2c-designware-core.ko
+  i2c_add_numbered_adapter
+  i2c_generic_scl_recovery
+  i2c_recover_bus
+  regmap_update_bits_base
+
+# required by i2c-designware-platform.ko
+  device_get_match_data
+  devm_clk_get_optional
+  __devm_reset_control_get
+  i2c_del_adapter
+  i2c_parse_fw_timings
+  pm_runtime_set_autosuspend_delay
+  __pm_runtime_use_autosuspend
+  pm_suspend_global_flags
+  syscon_node_to_regmap
+
+# required by i2c-dev.ko
+  bus_register_notifier
+  bus_unregister_notifier
+  cdev_device_add
+  cdev_device_del
+  device_for_each_child
+  i2c_adapter_type
+  i2c_bus_type
+  i2c_for_each_dev
+  i2c_smbus_xfer
+  i2c_transfer_buffer_flags
+  i2c_verify_client
+
+# required by kutf.ko
+  debugfs_create_file_unsafe
+  debugfs_create_u32
+  strnchr
+  strpbrk
+
+# required by mali_kbase.ko
+  anon_inode_getfd
+  __arch_clear_user
+  __bitmap_andnot
+  __bitmap_equal
+  __bitmap_or
+  __bitmap_weight
+  __bitmap_xor
+  cache_line_size
+  clear_page
+  __clk_is_enabled
+  clk_notifier_register
+  clk_notifier_unregister
+  clk_set_rate
+  completion_done
+  debugfs_create_bool
+  devfreq_add_device
+  devfreq_cooling_unregister
+  devfreq_recommended_opp
+  devfreq_register_opp_notifier
+  devfreq_remove_device
+  devfreq_resume_device
+  devfreq_suspend_device
+  devfreq_unregister_opp_notifier
+  device_create_file
+  device_remove_file
+  dev_pm_opp_find_freq_ceil
+  dev_pm_opp_find_freq_exact
+  dev_pm_opp_find_freq_floor
+  dev_pm_opp_get_opp_count
+  dev_pm_opp_get_voltage
+  dev_pm_opp_of_add_table
+  dev_pm_opp_of_remove_table
+  dev_pm_opp_put
+  dev_pm_opp_put_regulators
+  dev_pm_opp_set_regulators
+  dma_buf_mmap
+  dma_fence_add_callback
+  dma_fence_context_alloc
+  dma_fence_default_wait
+  dma_fence_get_status
+  dma_fence_init
+  dma_fence_release
+  dma_fence_remove_callback
+  dma_fence_signal
+  dma_sync_single_for_cpu
+  downgrade_write
+  down_read_trylock
+  fd_install
+  find_get_pid
+  _find_next_bit
+  flush_workqueue
+  fput
+  generic_file_llseek
+  get_device
+  get_unused_fd_flags
+  get_user_pages
+  get_user_pages_fast
+  hrtimer_active
+  kobject_del
+  kstrndup
+  kstrtobool_from_user
+  kstrtouint_from_user
+  ktime_get_raw
+  ktime_get_raw_ts64
+  __lock_page
+  memchr
+  __mmdrop
+  module_put
+  msleep_interruptible
+  mutex_trylock
+  nonseekable_open
+  of_clk_get
+  of_devfreq_cooling_register_power
+  of_find_compatible_node
+  of_get_property
+  of_machine_is_compatible
+  of_property_count_elems_of_size
+  of_property_read_u64
+  of_property_read_variable_u64_array
+  of_property_read_variable_u8_array
+  param_array_ops
+  param_ops_byte
+  pid_task
+  pin_user_pages
+  pin_user_pages_remote
+  put_pid
+  _raw_spin_trylock
+  rb_first
+  rb_next
+  rb_prev
+  rb_replace_node
+  register_oom_notifier
+  regulator_disable
+  regulator_enable
+  regulator_get_optional
+  regulator_put
+  regulator_set_voltage
+  remap_vmalloc_range
+  __seq_open_private
+  seq_putc
+  seq_release_private
+  seq_write
+  set_page_dirty_lock
+  shmem_file_setup
+  strcspn
+  strscpy
+  sync_file_create
+  sync_file_get_fence
+  synchronize_irq
+  sysfs_remove_file_ns
+  system_highpri_wq
+  system_long_wq
+  thermal_zone_get_zone_by_name
+  _totalram_pages
+  __traceiter_gpu_mem_total
+  trace_output_call
+  __tracepoint_gpu_mem_total
+  trace_print_flags_seq
+  trace_print_symbols_seq
+  try_module_get
+  unmap_mapping_range
+  unpin_user_page
+  unregister_oom_notifier
+  vmalloc_user
+  wait_for_completion
+
+# required by pcie-smsi.ko
+  cpumask_next_and
+  device_init_wakeup
+  device_release_driver
+  devm_pci_alloc_host_bridge
+  devm_pci_remap_cfg_resource
+  devm_release_resource
+  generic_handle_domain_irq
+  generic_handle_irq
+  gpiod_get_value
+  gpiod_set_value_cansleep
+  handle_edge_irq
+  handle_simple_irq
+  __irq_alloc_descs
+  irq_chip_ack_parent
+  irq_chip_mask_parent
+  irq_chip_unmask_parent
+  irq_dispose_mapping
+  __irq_domain_add
+  irq_domain_associate_many
+  irq_domain_get_irq_data
+  irq_domain_remove
+  irq_domain_set_info
+  irq_domain_update_bus_token
+  __irq_resolve_mapping
+  irq_set_chained_handler_and_data
+  irq_set_chip_and_handler_name
+  irq_set_chip_data
+  irq_to_desc
+  nr_irqs
+  of_match_device
+  of_pci_get_max_link_speed
+  pci_disable_link_state
+  pcie_capability_clear_and_set_word
+  pcie_link_speed
+  pci_generic_config_read
+  pci_generic_config_write
+  pci_host_probe
+  pci_lock_rescan_remove
+  pci_msi_create_irq_domain
+  pci_msi_enabled
+  pci_msi_mask_irq
+  pci_msi_unmask_irq
+  pci_pio_to_address
+  pci_read_config_byte
+  pci_read_config_word
+  pci_remove_root_bus
+  pci_stop_root_bus
+  pci_unlock_rescan_remove
+  platform_get_resource_byname
+  simple_write_to_buffer
+
+# required by smsi-mailbox-ap2rpm.ko
+  mbox_free_channel
+  mbox_request_channel_byname
+
+# required by smsi-mailbox.ko
+  devm_mbox_controller_register
+  mbox_chan_received_data
+  __memcpy_fromio
+  __memcpy_toio
+
+# required by smsi_busmon.ko
+  arch_timer_read_counter
+
+# required by smsi_wdt.ko
+  autoremove_wake_function
+  irq_force_affinity
+  kthread_bind
+  of_irq_parse_one
+  prepare_to_wait
+  sched_set_fifo
+  watchdog_init_timeout
+  watchdog_register_device
+  watchdog_set_restart_priority
+  watchdog_unregister_device
+
+# required by system_heap.ko
+  dmabuf_page_pool_alloc
+  dmabuf_page_pool_create
+  dmabuf_page_pool_destroy
+  dmabuf_page_pool_free
+  dma_heap_get_dev
+  __sg_page_iter_next
+  __sg_page_iter_start
+
+# required by vvcam_dw200.ko
+  devm_free_irq
+
+# required by vvcam_sensor.ko
+  i2c_new_client_device
+  i2c_unregister_device
+
+# required by zram.ko
+  __alloc_percpu
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_start_io_acct
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  crypto_alloc_base
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_destroy_tfm
+  crypto_has_alg
+  del_gendisk
+  device_add_disk
+  disk_end_io_acct
+  disk_start_io_acct
+  flush_dcache_page
+  free_percpu
+  fsync_bdev
+  idr_alloc
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_remove
+  kstrtou16
+  memparse
+  memset64
+  __num_online_cpus
+  page_endio
+  __register_blkdev
+  set_capacity
+  set_capacity_and_notify
+  unregister_blkdev
+  zs_compact
+  zs_create_pool
+  zs_destroy_pool
+  zs_free
+  zs_get_total_pages
+  zs_huge_class_size
+  zs_malloc
+  zs_map_object
+  zs_pool_stats
+  zs_unmap_object
+
+# required by zsmalloc.ko
+  alloc_anon_inode
+  contig_page_data
+  dec_zone_page_state
+  inc_zone_page_state
+  init_pseudo
+  kern_mount
+  kern_unmount
+  kill_anon_super
+  kmem_cache_alloc
+  kmem_cache_create
+  kmem_cache_destroy
+  kmem_cache_free
+  page_mapping
+  _raw_read_lock
+  _raw_read_unlock
+  _raw_write_lock
+  _raw_write_unlock
+  wait_on_page_bit
diff --git a/android/abi_gki_aarch64_microsoft b/android/abi_gki_aarch64_microsoft
new file mode 100644
index 0000000..2caeb24
--- /dev/null
+++ b/android/abi_gki_aarch64_microsoft
@@ -0,0 +1,10 @@
+[abi_symbol_list]
+# required by igb.ko
+  dev_trans_start
+  eth_get_headlen
+  flow_rule_match_eth_addrs
+  __hw_addr_sync_dev
+  __hw_addr_unsync_dev
+  ndo_dflt_fdb_add
+  pci_sriov_set_totalvfs
+  ptp_find_pin
diff --git a/android/abi_gki_aarch64_moto b/android/abi_gki_aarch64_moto
new file mode 100644
index 0000000..0091657
--- /dev/null
+++ b/android/abi_gki_aarch64_moto
@@ -0,0 +1,3 @@
+[abi_symbol_list]
+  __traceiter_android_vh_tune_mmap_readaround
+  __tracepoint_android_vh_tune_mmap_readaround
diff --git a/android/abi_gki_aarch64_mtk b/android/abi_gki_aarch64_mtk
new file mode 100644
index 0000000..957a1e3
--- /dev/null
+++ b/android/abi_gki_aarch64_mtk
@@ -0,0 +1,2634 @@
+[abi_symbol_list]
+  access_process_vm
+  activate_task
+  add_timer
+  add_uevent_var
+  add_wait_queue
+  adjust_managed_page_count
+  alarm_cancel
+  alarm_init
+  alarm_start
+  alarm_start_relative
+  alarm_try_to_cancel
+  alloc_anon_inode
+  alloc_chrdev_region
+  alloc_etherdev_mqs
+  alloc_io_pgtable_ops
+  __alloc_pages
+  alloc_pages_exact
+  __alloc_percpu
+  __alloc_skb
+  alloc_workqueue
+  all_vm_events
+  android_debug_symbol
+  android_rvh_probe_register
+  anon_inode_getfd
+  anon_inode_getfile
+  __arch_clear_user
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arch_freq_scale
+  arch_timer_read_counter
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  arm_smccc_1_1_get_conduit
+  arm_smccc_1_2_hvc
+  arm_smccc_1_2_smc
+  arm_smccc_get_version
+  __arm_smccc_hvc
+  __arm_smccc_smc
+  arp_create
+  arp_tbl
+  async_schedule_node
+  atomic_notifier_call_chain
+  atomic_notifier_chain_register
+  atomic_notifier_chain_unregister
+  autoremove_wake_function
+  balance_push_callback
+  _bcd2bin
+  bcmp
+  _bin2bcd
+  bio_add_page
+  bio_alloc_bioset
+  bio_associate_blkg
+  bio_chain
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_init
+  bio_put
+  bio_start_io_acct
+  __bitmap_andnot
+  __bitmap_clear
+  __bitmap_equal
+  bitmap_find_free_region
+  bitmap_find_next_zero_area_off
+  bitmap_free
+  bitmap_from_arr32
+  __bitmap_or
+  bitmap_print_to_pagebuf
+  bitmap_release_region
+  __bitmap_set
+  __bitmap_subset
+  bitmap_to_arr32
+  __bitmap_weight
+  bitmap_zalloc
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blkdev_get_by_dev
+  blkdev_put
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  blk_status_to_errno
+  blocking_notifier_call_chain
+  blocking_notifier_chain_register
+  blocking_notifier_chain_unregister
+  bpf_trace_run12
+  bpf_trace_run1
+  bpf_trace_run2
+  bpf_trace_run3
+  bpf_trace_run4
+  bpf_trace_run5
+  bpf_trace_run6
+  bpf_trace_run7
+  bpf_trace_run8
+  bpf_trace_run9
+  bus_register
+  bus_set_iommu
+  bus_unregister
+  cache_line_size
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  cancel_work_sync
+  cdev_add
+  cdev_alloc
+  cdev_del
+  cdev_device_add
+  cdev_device_del
+  cdev_init
+  __cfi_slowpath_diag
+  cgroup_taskset_first
+  cgroup_taskset_next
+  __check_object_size
+  check_preempt_curr
+  __class_create
+  class_destroy
+  class_find_device
+  class_for_each_device
+  __class_register
+  class_unregister
+  clear_page
+  __ClearPageMovable
+  clk_bulk_disable
+  clk_bulk_enable
+  clk_bulk_prepare
+  clk_bulk_put
+  clk_bulk_put_all
+  clk_bulk_unprepare
+  clk_disable
+  clk_divider_ops
+  clk_enable
+  clk_gate_ops
+  clk_get
+  __clk_get_hw
+  __clk_get_name
+  clk_get_parent
+  clk_get_rate
+  clk_hw_get_name
+  clk_hw_get_num_parents
+  clk_hw_get_parent
+  clk_hw_get_parent_by_index
+  clk_hw_get_rate
+  clk_hw_is_enabled
+  clk_hw_is_prepared
+  __clk_is_enabled
+  clk_mux_ops
+  clk_notifier_register
+  clk_prepare
+  clk_put
+  clk_register
+  clk_register_composite
+  clk_register_divider_table
+  clk_register_fixed_factor
+  clk_register_fixed_rate
+  clk_set_parent
+  clk_set_rate
+  clk_unprepare
+  clockevents_config_and_register
+  clocks_calc_mult_shift
+  clocksource_mmio_init
+  clocksource_mmio_readl_up
+  cma_alloc
+  cma_release
+  compat_ptr_ioctl
+  complete
+  complete_all
+  completion_done
+  component_add
+  component_add_typed
+  component_bind_all
+  component_del
+  component_master_add_with_match
+  component_master_del
+  component_match_add_release
+  component_match_add_typed
+  component_unbind_all
+  config_ep_by_speed
+  config_group_init_type_name
+  console_drivers
+  console_suspend_enabled
+  __const_udelay
+  consume_skb
+  contig_page_data
+  _copy_from_iter
+  copy_from_kernel_nofault
+  copy_from_user_toio
+  _copy_to_iter
+  copy_to_user_fromio
+  __cpu_active_mask
+  cpu_all_bits
+  cpu_bit_bitmap
+  cpufreq_add_update_util_hook
+  cpufreq_cpu_get
+  cpufreq_cpu_put
+  cpufreq_disable_fast_switch
+  cpufreq_driver_fast_switch
+  cpufreq_driver_resolve_freq
+  __cpufreq_driver_target
+  cpufreq_enable_fast_switch
+  cpufreq_generic_attr
+  cpufreq_generic_frequency_table_verify
+  cpufreq_get_policy
+  cpufreq_policy_transition_delay_us
+  cpufreq_quick_get
+  cpufreq_register_driver
+  cpufreq_register_governor
+  cpufreq_remove_update_util_hook
+  cpufreq_table_index_unsorted
+  cpufreq_this_cpu_can_update
+  cpufreq_unregister_driver
+  cpufreq_unregister_governor
+  cpufreq_update_limits
+  cpu_hotplug_disable
+  cpu_hotplug_enable
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpuidle_driver_state_disabled
+  cpuidle_get_driver
+  cpuidle_pause_and_lock
+  cpuidle_resume_and_unlock
+  cpu_latency_qos_add_request
+  cpu_latency_qos_remove_request
+  cpu_latency_qos_update_request
+  cpumask_any_but
+  cpumask_any_distribute
+  cpumask_next
+  cpumask_next_and
+  cpu_number
+  __cpu_online_mask
+  cpu_pm_register_notifier
+  cpu_pm_unregister_notifier
+  __cpu_possible_mask
+  __cpu_present_mask
+  cpu_scale
+  cpus_read_lock
+  cpus_read_unlock
+  cpu_subsys
+  cpu_topology
+  crc32_le
+  crc8
+  crc8_populate_msb
+  crypto_alloc_base
+  crypto_alloc_shash
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_destroy_tfm
+  crypto_has_alg
+  crypto_shash_final
+  crypto_shash_setkey
+  crypto_shash_update
+  _ctype
+  dapm_clock_event
+  dapm_kcontrol_get_value
+  dapm_regulator_event
+  deactivate_task
+  debugfs_attr_read
+  debugfs_attr_write
+  debugfs_create_blob
+  debugfs_create_bool
+  debugfs_create_devm_seqfile
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_create_regset32
+  debugfs_create_symlink
+  debugfs_create_u16
+  debugfs_create_u32
+  debugfs_create_u64
+  debugfs_create_u8
+  debugfs_create_x32
+  debugfs_lookup
+  debugfs_remove
+  dec_zone_page_state
+  default_llseek
+  delayed_work_timer_fn
+  del_gendisk
+  del_timer
+  del_timer_sync
+  desc_to_gpio
+  destroy_workqueue
+  dev_base_lock
+  dev_driver_string
+  _dev_err
+  dev_err_probe
+  devfreq_add_device
+  devfreq_add_governor
+  devfreq_cooling_unregister
+  devfreq_get_devfreq_by_phandle
+  devfreq_monitor_resume
+  devfreq_monitor_start
+  devfreq_monitor_stop
+  devfreq_monitor_suspend
+  devfreq_recommended_opp
+  devfreq_register_opp_notifier
+  devfreq_remove_device
+  devfreq_remove_governor
+  devfreq_resume_device
+  devfreq_suspend_device
+  devfreq_unregister_opp_notifier
+  devfreq_update_interval
+  dev_fwnode
+  dev_get_by_name
+  dev_get_regmap
+  dev_get_stats
+  dev_get_tstats64
+  device_add
+  device_add_disk
+  device_attach
+  device_create
+  device_create_bin_file
+  device_create_file
+  device_create_with_groups
+  device_del
+  device_destroy
+  device_for_each_child
+  device_get_child_node_count
+  device_get_match_data
+  device_get_next_child_node
+  device_initialize
+  device_init_wakeup
+  device_link_add
+  device_link_remove
+  device_match_any
+  device_node_to_regmap
+  device_property_present
+  device_property_read_string
+  device_property_read_u32_array
+  device_register
+  device_release_driver
+  device_remove_bin_file
+  device_remove_file
+  device_rename
+  device_set_of_node_from_dev
+  device_set_wakeup_capable
+  device_show_bool
+  device_store_bool
+  device_unregister
+  _dev_info
+  __dev_kfree_skb_any
+  devlink_alloc_ns
+  devlink_flash_update_status_notify
+  devlink_fmsg_binary_pair_nest_end
+  devlink_fmsg_binary_pair_nest_start
+  devlink_fmsg_binary_put
+  devlink_free
+  devlink_health_report
+  devlink_health_reporter_create
+  devlink_health_reporter_destroy
+  devlink_health_reporter_priv
+  devlink_health_reporter_state_update
+  devlink_region_create
+  devlink_region_destroy
+  devlink_register
+  devlink_unregister
+  devm_add_action
+  __devm_alloc_percpu
+  devm_blk_ksm_init
+  devm_clk_bulk_get
+  devm_clk_bulk_get_all
+  devm_clk_bulk_get_optional
+  devm_clk_get
+  devm_clk_get_optional
+  devm_clk_get_optional_enabled
+  devm_clk_put
+  devm_clk_register
+  devm_devfreq_add_device
+  devm_devfreq_register_notifier
+  devm_devfreq_register_opp_notifier
+  devm_devfreq_remove_device
+  devm_devfreq_unregister_notifier
+  devm_devfreq_unregister_opp_notifier
+  devm_extcon_dev_allocate
+  devm_extcon_dev_register
+  devm_extcon_register_notifier
+  devm_free_irq
+  devm_fwnode_pwm_get
+  devm_gpiochip_add_data_with_key
+  devm_gpiod_get
+  devm_gpiod_get_index
+  devm_gpiod_get_optional
+  devm_gpiod_put
+  devm_gpio_free
+  devm_gpio_request
+  devm_gpio_request_one
+  devm_hwrng_register
+  devm_i2c_new_dummy_device
+  devm_iio_channel_get
+  devm_iio_channel_get_all
+  devm_iio_device_alloc
+  __devm_iio_device_register
+  devm_iio_triggered_buffer_setup_ext
+  devm_input_allocate_device
+  devm_ioremap
+  devm_ioremap_resource
+  devm_ioremap_wc
+  devm_iounmap
+  devm_kasprintf
+  devm_kfree
+  devm_kmalloc
+  devm_led_classdev_register_ext
+  devm_led_classdev_unregister
+  devm_mbox_controller_register
+  devm_mdiobus_alloc_size
+  __devm_mdiobus_register
+  devm_memremap
+  devm_mfd_add_devices
+  devm_nvmem_cell_get
+  devm_nvmem_device_get
+  devm_nvmem_register
+  devm_of_phy_get_by_index
+  __devm_of_phy_provider_register
+  devm_of_platform_populate
+  devm_pci_alloc_host_bridge
+  devm_phy_create
+  devm_phy_get
+  devm_phy_optional_get
+  devm_pinctrl_get
+  devm_pinctrl_put
+  devm_pinctrl_register_and_init
+  devm_platform_get_and_ioremap_resource
+  devm_platform_ioremap_resource
+  devm_platform_ioremap_resource_byname
+  devm_power_supply_get_by_phandle
+  devm_power_supply_register
+  devm_rc_allocate_device
+  devm_rc_register_device
+  devm_regmap_add_irq_chip
+  devm_regmap_field_alloc
+  devm_regmap_field_bulk_alloc
+  __devm_regmap_init
+  __devm_regmap_init_i2c
+  __devm_regmap_init_mmio_clk
+  devm_regulator_get
+  devm_regulator_get_exclusive
+  devm_regulator_get_optional
+  devm_regulator_put
+  devm_regulator_register
+  devm_regulator_register_notifier
+  devm_regulator_unregister_notifier
+  devm_request_threaded_irq
+  __devm_reset_control_get
+  devm_reset_controller_register
+  devm_rtc_allocate_device
+  devm_rtc_nvmem_register
+  __devm_rtc_register_device
+  devm_snd_soc_register_card
+  devm_snd_soc_register_component
+  devm_spi_register_controller
+  devm_thermal_zone_of_sensor_register
+  devm_watchdog_register_device
+  _dev_notice
+  dev_pm_clear_wake_irq
+  dev_pm_domain_attach_by_id
+  dev_pm_domain_attach_by_name
+  dev_pm_domain_detach
+  dev_pm_genpd_add_notifier
+  dev_pm_genpd_set_performance_state
+  dev_pm_opp_add
+  dev_pm_opp_find_freq_ceil
+  dev_pm_opp_find_freq_exact
+  dev_pm_opp_find_freq_floor
+  dev_pm_opp_get_freq
+  dev_pm_opp_get_level
+  dev_pm_opp_get_opp_count
+  dev_pm_opp_get_opp_table
+  dev_pm_opp_get_voltage
+  dev_pm_opp_of_add_table
+  dev_pm_opp_of_add_table_indexed
+  dev_pm_opp_of_remove_table
+  dev_pm_opp_put
+  dev_pm_opp_put_opp_table
+  dev_pm_opp_put_regulators
+  dev_pm_opp_remove_all_dynamic
+  dev_pm_opp_set_regulators
+  dev_pm_qos_update_request
+  dev_pm_set_dedicated_wake_irq
+  _dev_printk
+  devres_add
+  __devres_alloc_node
+  devres_free
+  devres_release
+  dev_set_mac_address
+  dev_set_name
+  _dev_warn
+  disable_irq
+  disable_irq_nosync
+  disable_percpu_irq
+  disk_end_io_acct
+  disk_start_io_acct
+  dma_alloc_attrs
+  dma_async_device_register
+  dma_async_device_unregister
+  dma_async_tx_descriptor_init
+  dma_buf_attach
+  dma_buf_begin_cpu_access
+  dma_buf_detach
+  dma_buf_end_cpu_access
+  dma_buf_export
+  dma_buf_fd
+  dma_buf_get
+  dma_buf_map_attachment
+  dma_buf_mmap
+  dmabuf_page_pool_alloc
+  dmabuf_page_pool_create
+  dmabuf_page_pool_destroy
+  dmabuf_page_pool_free
+  dma_buf_put
+  dma_buf_unmap_attachment
+  dma_buf_vmap
+  dma_buf_vunmap
+  dma_fence_add_callback
+  dma_fence_array_create
+  dma_fence_array_ops
+  dma_fence_context_alloc
+  dma_fence_default_wait
+  dma_fence_free
+  dma_fence_get_status
+  dma_fence_init
+  dma_fence_release
+  dma_fence_remove_callback
+  dma_fence_signal
+  dma_fence_signal_locked
+  dma_fence_signal_timestamp_locked
+  dma_fence_wait_timeout
+  dma_free_attrs
+  dma_get_sgtable_attrs
+  dma_heap_add
+  dma_heap_buffer_alloc
+  dma_heap_bufferfd_alloc
+  dma_heap_buffer_free
+  dma_heap_find
+  dma_heap_get_dev
+  dma_heap_get_drvdata
+  dma_heap_get_name
+  dma_heap_put
+  dmam_alloc_attrs
+  dma_map_page_attrs
+  dma_map_resource
+  dma_map_sg_attrs
+  dma_map_sgtable
+  dmam_free_coherent
+  dma_mmap_attrs
+  dma_pool_alloc
+  dma_pool_create
+  dma_pool_destroy
+  dma_pool_free
+  dma_resv_add_excl_fence
+  dma_resv_reserve_shared
+  dma_run_dependencies
+  dma_set_coherent_mask
+  dma_set_mask
+  dma_sync_sg_for_cpu
+  dma_sync_sg_for_device
+  dma_sync_single_for_cpu
+  dma_sync_single_for_device
+  dma_unmap_page_attrs
+  dma_unmap_resource
+  dma_unmap_sg_attrs
+  do_exit
+  double_rq_lock
+  do_wait_intr_irq
+  down
+  downgrade_write
+  down_interruptible
+  down_read
+  down_read_trylock
+  down_timeout
+  down_trylock
+  down_write
+  down_write_killable
+  d_path
+  dput
+  drain_workqueue
+  driver_create_file
+  driver_remove_file
+  driver_unregister
+  drm_add_edid_modes
+  drm_add_modes_noedid
+  drm_atomic_add_affected_connectors
+  drm_atomic_get_crtc_state
+  drm_atomic_helper_check
+  drm_atomic_helper_check_plane_state
+  drm_atomic_helper_cleanup_planes
+  drm_atomic_helper_commit_modeset_disables
+  drm_atomic_helper_commit_modeset_enables
+  drm_atomic_helper_commit_planes
+  drm_atomic_helper_connector_destroy_state
+  drm_atomic_helper_connector_duplicate_state
+  drm_atomic_helper_connector_reset
+  __drm_atomic_helper_crtc_destroy_state
+  __drm_atomic_helper_crtc_duplicate_state
+  drm_atomic_helper_disable_plane
+  drm_atomic_helper_page_flip
+  __drm_atomic_helper_plane_destroy_state
+  __drm_atomic_helper_plane_duplicate_state
+  drm_atomic_helper_prepare_planes
+  drm_atomic_helper_resume
+  drm_atomic_helper_set_config
+  drm_atomic_helper_shutdown
+  drm_atomic_helper_suspend
+  drm_atomic_helper_swap_state
+  drm_atomic_helper_update_plane
+  drm_atomic_helper_wait_for_vblanks
+  drm_atomic_state_clear
+  drm_atomic_state_default_release
+  __drm_atomic_state_free
+  drm_atomic_state_init
+  drm_bridge_attach
+  drm_calc_timestamping_constants
+  drm_compat_ioctl
+  drm_connector_attach_encoder
+  drm_connector_cleanup
+  drm_connector_init
+  drm_connector_update_edid_property
+  drm_crtc_cleanup
+  drm_crtc_handle_vblank
+  drm_crtc_init_with_planes
+  drm_crtc_send_vblank_event
+  drm_crtc_vblank_get
+  drm_crtc_vblank_off
+  drm_crtc_vblank_on
+  drm_crtc_vblank_put
+  __drm_dbg
+  drm_dev_alloc
+  drm_dev_put
+  drm_dev_register
+  drm_dev_unregister
+  drm_display_mode_to_videomode
+  drm_dp_aux_init
+  drm_dp_aux_register
+  drm_dp_channel_eq_ok
+  drm_dp_clock_recovery_ok
+  drm_dp_dpcd_read
+  drm_dp_dpcd_write
+  drm_dp_link_train_channel_eq_delay
+  drm_dp_link_train_clock_recovery_delay
+  drm_dp_read_dpcd_caps
+  drm_edid_duplicate
+  drm_edid_to_sad
+  drm_encoder_cleanup
+  drm_encoder_init
+  __drm_err
+  drm_format_info
+  drm_framebuffer_cleanup
+  drm_framebuffer_init
+  drm_framebuffer_lookup
+  drm_framebuffer_remove
+  drm_gem_cma_vm_ops
+  drm_gem_create_mmap_offset
+  drm_gem_handle_create
+  drm_gem_mmap
+  drm_gem_mmap_obj
+  drm_gem_object_free
+  drm_gem_object_init
+  drm_gem_object_lookup
+  drm_gem_object_release
+  drm_gem_prime_fd_to_handle
+  drm_gem_prime_handle_to_fd
+  drm_gem_prime_import
+  drm_gem_vm_close
+  drm_get_edid
+  drm_helper_hpd_irq_event
+  drm_helper_mode_fill_fb_struct
+  drm_helper_probe_single_connector_modes
+  drm_ioctl
+  drm_is_current_master
+  drm_kms_helper_poll_disable
+  drm_kms_helper_poll_enable
+  drm_kms_helper_poll_fini
+  drm_kms_helper_poll_init
+  drmm_mode_config_init
+  drm_mode_config_cleanup
+  drm_mode_config_reset
+  drm_mode_copy
+  drm_mode_crtc_set_gamma_size
+  drm_mode_duplicate
+  drm_mode_equal
+  drm_mode_object_find
+  drm_mode_object_put
+  drm_mode_probed_add
+  drm_mode_set_crtcinfo
+  drm_mode_set_name
+  drm_mode_validate_size
+  drm_mode_vrefresh
+  drm_object_attach_property
+  drm_open
+  drm_panel_add
+  drm_panel_disable
+  drm_panel_enable
+  drm_panel_get_modes
+  drm_panel_init
+  drm_panel_prepare
+  drm_panel_remove
+  drm_panel_unprepare
+  drm_plane_cleanup
+  drm_poll
+  drm_prime_gem_destroy
+  drm_property_blob_put
+  drm_property_create_blob
+  drm_property_create_range
+  drm_property_lookup_blob
+  drm_property_replace_global_blob
+  drm_read
+  drm_release
+  drm_universal_plane_init
+  drm_vblank_init
+  drm_writeback_connector_init
+  drm_writeback_queue_job
+  drm_writeback_signal_completion
+  dump_stack
+  em_cpu_get
+  em_dev_register_perf_domain
+  enable_irq
+  enable_percpu_irq
+  eth_header
+  eth_header_cache
+  eth_header_cache_update
+  eth_header_parse
+  eth_mac_addr
+  eth_platform_get_mac_address
+  ethtool_op_get_link
+  ethtool_op_get_ts_info
+  eth_type_trans
+  eth_validate_addr
+  event_triggers_call
+  extcon_get_edev_by_phandle
+  extcon_get_state
+  extcon_set_state_sync
+  fd_install
+  fget
+  file_path
+  filp_close
+  filp_open_block
+  _find_first_bit
+  _find_first_zero_bit
+  find_get_pid
+  _find_next_bit
+  find_pid_ns
+  find_task_by_vpid
+  __find_vma
+  find_vpid
+  finish_wait
+  flush_dcache_page
+  flush_delayed_work
+  flush_work
+  flush_workqueue
+  follow_pfn
+  font_vga_8x16
+  for_each_kernel_tracepoint
+  fput
+  frame_vector_create
+  frame_vector_destroy
+  frame_vector_to_pages
+  frame_vector_to_pfns
+  free_irq
+  free_netdev
+  __free_pages
+  free_pages
+  free_pages_exact
+  free_percpu
+  free_percpu_irq
+  freezing_slow_path
+  freq_qos_add_notifier
+  freq_qos_add_request
+  freq_qos_remove_notifier
+  freq_qos_remove_request
+  freq_qos_update_request
+  fs_bio_set
+  fsg_common_create_luns
+  fsg_common_set_cdev
+  fsg_common_set_inquiry_string
+  fsg_common_set_sysfs
+  fsg_config_from_params
+  fsync_bdev
+  fwnode_device_is_available
+  fwnode_get_name
+  fwnode_graph_get_next_endpoint
+  fwnode_graph_get_port_parent
+  fwnode_graph_get_remote_endpoint
+  fwnode_graph_get_remote_port_parent
+  fwnode_graph_parse_endpoint
+  fwnode_handle_get
+  fwnode_handle_put
+  fwnode_property_get_reference_args
+  fwnode_property_present
+  fwnode_property_read_string
+  fwnode_property_read_u32_array
+  fwnode_property_read_u64_array
+  g_audio_cleanup
+  g_audio_setup
+  gcd
+  generic_file_llseek
+  generic_handle_domain_irq
+  generic_handle_irq
+  generic_iommu_put_resv_regions
+  generic_mii_ioctl
+  genlmsg_put
+  genl_register_family
+  genl_unregister_family
+  genphy_resume
+  gen_pool_add_owner
+  gen_pool_alloc_algo_owner
+  gen_pool_avail
+  gen_pool_best_fit
+  gen_pool_create
+  gen_pool_destroy
+  gen_pool_dma_alloc_align
+  gen_pool_dma_zalloc
+  gen_pool_for_each_chunk
+  gen_pool_free_owner
+  gen_pool_has_addr
+  gen_pool_set_algo
+  gen_pool_size
+  gen_pool_virt_to_phys
+  get_cpu_device
+  get_cpu_idle_time
+  get_cpu_idle_time_us
+  get_cpu_iowait_time_us
+  get_device
+  get_each_dmabuf
+  __get_free_pages
+  get_governor_parent_kobj
+  gether_cleanup
+  gether_connect
+  gether_disconnect
+  gether_get_dev_addr
+  gether_get_host_addr
+  gether_get_host_addr_u8
+  gether_get_ifname
+  gether_get_qmult
+  gether_register_netdev
+  gether_set_dev_addr
+  gether_set_gadget
+  gether_set_host_addr
+  gether_set_ifname
+  gether_set_qmult
+  gether_setup_name_default
+  get_kernel_pages
+  get_pid_task
+  get_random_bytes
+  get_random_u32
+  __get_task_comm
+  get_task_mm
+  get_unused_fd_flags
+  get_user_pages
+  get_user_pages_fast
+  get_user_pages_remote
+  get_vaddr_frames
+  get_zeroed_page
+  gic_nonsecure_priorities
+  gov_attr_set_get
+  gov_attr_set_init
+  gov_attr_set_put
+  governor_sysfs_ops
+  gpiochip_add_data_with_key
+  gpiochip_generic_free
+  gpiochip_generic_request
+  gpiochip_get_data
+  gpiochip_lock_as_irq
+  gpiochip_unlock_as_irq
+  gpiod_direction_input
+  gpiod_direction_output
+  gpiod_direction_output_raw
+  gpiod_get_raw_value
+  gpiod_get_value
+  gpiod_get_value_cansleep
+  gpiod_set_debounce
+  gpiod_set_raw_value
+  gpiod_set_value
+  gpiod_set_value_cansleep
+  gpiod_to_irq
+  gpio_free
+  gpio_request
+  gpio_to_desc
+  handle_edge_irq
+  handle_fasteoi_irq
+  handle_level_irq
+  handle_nested_irq
+  handle_simple_irq
+  have_governor_per_policy
+  hdmi_spd_infoframe_init
+  hdmi_spd_infoframe_pack
+  hex_asc
+  hex_to_bin
+  hid_add_device
+  hid_allocate_device
+  hid_debug
+  hid_destroy_device
+  hid_input_report
+  hid_parse_report
+  hrtimer_active
+  hrtimer_cancel
+  hrtimer_forward
+  hrtimer_init
+  hrtimer_start_range_ns
+  hrtimer_try_to_cancel
+  i2c_add_adapter
+  i2c_del_adapter
+  i2c_del_driver
+  i2c_get_adapter
+  i2c_get_dma_safe_msg_buf
+  i2c_put_dma_safe_msg_buf
+  i2c_register_driver
+  i2c_smbus_read_byte_data
+  i2c_smbus_read_i2c_block_data
+  i2c_smbus_write_byte_data
+  i2c_smbus_write_i2c_block_data
+  i2c_smbus_write_word_data
+  i2c_transfer
+  i2c_transfer_buffer_flags
+  i2c_unregister_device
+  i2c_verify_client
+  icc_link_create
+  icc_node_add
+  icc_node_create
+  icc_node_del
+  icc_node_destroy
+  icc_provider_add
+  icc_provider_del
+  icc_put
+  icc_set_bw
+  icc_sync_state
+  ida_alloc_range
+  ida_destroy
+  ida_free
+  idr_alloc
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_get_next
+  idr_remove
+  iio_alloc_pollfunc
+  iio_buffer_init
+  iio_buffer_put
+  iio_channel_get
+  iio_channel_release
+  iio_dealloc_pollfunc
+  iio_device_attach_buffer
+  iio_device_id
+  __iio_device_register
+  iio_device_unregister
+  iio_get_channel_type
+  iio_get_time_ns
+  iio_push_to_buffers
+  iio_read_channel_attribute
+  iio_read_channel_processed
+  iio_read_channel_raw
+  iio_trigger_notify_done
+  inc_zone_page_state
+  in_egroup_p
+  init_net
+  init_pseudo
+  __init_rwsem
+  __init_swait_queue_head
+  init_task
+  init_timer_key
+  init_uts_ns
+  init_wait_entry
+  __init_waitqueue_head
+  input_allocate_device
+  input_device_enabled
+  input_event
+  input_free_device
+  input_mt_init_slots
+  input_mt_report_slot_state
+  input_mt_sync_frame
+  input_register_device
+  input_set_abs_params
+  input_set_capability
+  input_unregister_device
+  iomem_resource
+  iommu_alloc_resv_region
+  iommu_device_register
+  iommu_device_sysfs_add
+  iommu_device_sysfs_remove
+  iommu_device_unregister
+  iommu_fwspec_add_ids
+  iommu_fwspec_free
+  iommu_get_domain_for_dev
+  iommu_group_alloc
+  iommu_group_ref_get
+  iommu_iova_to_phys
+  iommu_map
+  iommu_map_sg
+  iommu_present
+  iommu_unmap
+  __ioremap
+  ioremap_cache
+  iounmap
+  iput
+  ipv6_skip_exthdr
+  irq_chip_ack_parent
+  irq_chip_mask_parent
+  irq_chip_unmask_parent
+  irq_create_mapping_affinity
+  irq_create_of_mapping
+  irq_dispose_mapping
+  __irq_domain_add
+  irq_domain_free_irqs_common
+  irq_domain_get_irq_data
+  irq_domain_remove
+  irq_domain_set_info
+  irq_domain_simple_ops
+  irq_domain_xlate_onetwocell
+  irq_domain_xlate_twocell
+  irq_get_irqchip_state
+  irq_get_irq_data
+  irq_modify_status
+  irq_of_parse_and_map
+  __irq_resolve_mapping
+  irq_set_affinity
+  irq_set_affinity_hint
+  irq_set_chained_handler_and_data
+  irq_set_chip
+  irq_set_chip_and_handler_name
+  irq_set_chip_data
+  irq_set_irq_type
+  irq_set_irq_wake
+  irq_set_parent
+  irq_stat
+  irq_to_desc
+  irq_work_queue
+  irq_work_run
+  irq_work_sync
+  is_dma_buf_file
+  is_vmalloc_addr
+  iterate_dir
+  iterate_fd
+  jiffies_64_to_clock_t
+  jiffies
+  jiffies_to_msecs
+  jiffies_to_usecs
+  kasan_flag_enabled
+  kasprintf
+  kernel_cpustat
+  kernel_kobj
+  kernel_power_off
+  kernel_restart
+  kernel_sigaction
+  kernfs_find_and_get_ns
+  kernfs_notify
+  kernfs_path_from_node
+  kernfs_put
+  kern_mount
+  kern_unmount
+  __kfifo_alloc
+  __kfifo_free
+  __kfifo_in
+  __kfifo_init
+  __kfifo_out
+  __kfifo_to_user
+  kfree
+  kfree_const
+  kfree_sensitive
+  kfree_skb
+  kill_anon_super
+  kimage_vaddr
+  kimage_voffset
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order_trace
+  kmem_cache_alloc
+  kmem_cache_alloc_trace
+  kmem_cache_create
+  kmem_cache_destroy
+  kmem_cache_free
+  kobject_create_and_add
+  kobject_del
+  kobject_init_and_add
+  kobject_put
+  kobject_uevent
+  kobject_uevent_env
+  krealloc
+  ksoftirqd
+  kstrdup
+  kstrdup_const
+  kstrndup
+  kstrtobool
+  kstrtobool_from_user
+  kstrtoint
+  kstrtoint_from_user
+  kstrtol_from_user
+  kstrtoll
+  kstrtos16
+  kstrtou16
+  kstrtou8
+  kstrtouint
+  kstrtouint_from_user
+  kstrtoul_from_user
+  kstrtoull
+  kstrtoull_from_user
+  ksys_sync_helper
+  kthread_bind
+  kthread_bind_mask
+  kthread_cancel_work_sync
+  kthread_create_on_node
+  kthread_create_worker
+  kthread_destroy_worker
+  kthread_flush_work
+  kthread_flush_worker
+  __kthread_init_worker
+  kthread_queue_work
+  kthread_should_stop
+  kthread_stop
+  kthread_worker_fn
+  ktime_get
+  ktime_get_coarse_ts64
+  ktime_get_mono_fast_ns
+  ktime_get_raw
+  ktime_get_raw_ts64
+  ktime_get_real_ts64
+  ktime_get_ts64
+  ktime_get_with_offset
+  kvfree
+  kvfree_call_rcu
+  kvmalloc_node
+  led_classdev_flash_register_ext
+  led_classdev_flash_unregister
+  led_get_flash_fault
+  led_init_default_state_get
+  led_set_brightness_sync
+  led_set_flash_brightness
+  led_set_flash_timeout
+  led_sysfs_disable
+  led_sysfs_enable
+  led_trigger_remove
+  led_update_brightness
+  led_update_flash_brightness
+  linear_range_get_max_value
+  linear_range_get_selector_within
+  linear_range_get_value
+  __list_add_valid
+  __list_del_entry_valid
+  list_sort
+  __local_bh_enable_ip
+  __lock_page
+  log_threaded_irq_wakeup_reason
+  loops_per_jiffy
+  match_hex
+  match_int
+  match_token
+  mbox_chan_received_data
+  mbox_client_txdone
+  mbox_controller_register
+  mbox_controller_unregister
+  mbox_free_channel
+  mbox_request_channel
+  mbox_send_message
+  mdiobus_alloc_size
+  mdiobus_free
+  __mdiobus_register
+  mdiobus_unregister
+  media_create_intf_link
+  media_create_pad_link
+  media_device_cleanup
+  media_device_init
+  __media_device_register
+  media_device_unregister
+  media_devnode_create
+  media_devnode_remove
+  media_entity_pads_init
+  media_entity_remote_pad
+  media_entity_remove_links
+  media_graph_walk_next
+  media_graph_walk_start
+  media_pipeline_start
+  media_pipeline_stop
+  media_request_get_by_fd
+  media_request_object_complete
+  media_request_put
+  memblock_end_of_DRAM
+  memchr
+  memcmp
+  memcpy
+  __memcpy_fromio
+  __memcpy_toio
+  memdup_user
+  memmove
+  memory_read_from_buffer
+  memparse
+  memremap
+  mem_section
+  memset64
+  memset
+  __memset_io
+  memstart_addr
+  memunmap
+  migrate_swap
+  mii_check_media
+  mii_ethtool_get_link_ksettings
+  mii_ethtool_gset
+  mii_ethtool_set_link_ksettings
+  mii_link_ok
+  mii_nway_restart
+  mipi_dsi_attach
+  mipi_dsi_dcs_read
+  mipi_dsi_dcs_write
+  mipi_dsi_dcs_write_buffer
+  mipi_dsi_detach
+  mipi_dsi_driver_register_full
+  mipi_dsi_driver_unregister
+  mipi_dsi_generic_read
+  mipi_dsi_generic_write
+  mipi_dsi_host_register
+  mipi_dsi_host_unregister
+  misc_deregister
+  misc_register
+  mktime64
+  __mmap_lock_do_trace_acquire_returned
+  __mmap_lock_do_trace_released
+  __mmap_lock_do_trace_start_locking
+  mmc_add_host
+  mmc_alloc_host
+  mmc_can_gpio_cd
+  mmc_cmdq_disable
+  mmc_cmdq_enable
+  mmc_cqe_request_done
+  mmc_detect_change
+  mmc_free_host
+  mmc_get_card
+  mmc_get_ext_csd
+  mmc_gpio_get_cd
+  mmc_gpio_get_ro
+  mmc_hw_reset
+  mmc_of_parse
+  mmc_put_card
+  mmc_regulator_get_supply
+  mmc_regulator_set_ocr
+  mmc_regulator_set_vqmmc
+  mmc_remove_host
+  mmc_request_done
+  mmc_send_tuning
+  mmc_set_data_timeout
+  mmc_switch
+  mmc_wait_for_req
+  __mmdrop
+  mmput
+  mod_delayed_work_on
+  mod_timer
+  mod_timer_pending
+  module_layout
+  module_put
+  __msecs_to_jiffies
+  msleep
+  msleep_interruptible
+  mul_u64_u64_div_u64
+  __mutex_init
+  mutex_is_locked
+  mutex_lock
+  mutex_lock_interruptible
+  mutex_lock_killable
+  mutex_trylock
+  mutex_unlock
+  napi_disable
+  napi_enable
+  napi_gro_flush
+  napi_gro_receive
+  __napi_schedule
+  napi_schedule_prep
+  nd_tbl
+  neigh_destroy
+  neigh_lookup
+  __netdev_alloc_frag_align
+  __netdev_alloc_skb
+  netdev_err
+  netdev_info
+  netdev_stats_to_stats64
+  netdev_upper_get_next_dev_rcu
+  netdev_warn
+  netif_carrier_off
+  netif_carrier_on
+  netif_napi_add
+  netif_receive_skb
+  netif_receive_skb_list
+  netif_rx
+  netif_rx_ni
+  netif_tx_wake_queue
+  __netlink_kernel_create
+  netlink_kernel_release
+  netlink_unicast
+  net_namespace_list
+  net_selftest
+  net_selftest_get_count
+  net_selftest_get_strings
+  nf_register_net_hooks
+  nf_unregister_net_hooks
+  nla_put
+  __nlmsg_put
+  no_llseek
+  nonseekable_open
+  nr_cpu_ids
+  nsecs_to_jiffies
+  ns_to_timespec64
+  n_tty_ioctl_helper
+  __num_online_cpus
+  nvmem_cell_get
+  nvmem_cell_put
+  nvmem_cell_read
+  nvmem_cell_read_u32
+  nvmem_cell_read_variable_le_u32
+  nvmem_cell_write
+  nvmem_device_get
+  nvmem_device_put
+  nvmem_device_read
+  of_address_to_resource
+  of_alias_get_id
+  of_clk_add_provider
+  of_clk_del_provider
+  of_clk_get
+  of_clk_get_by_name
+  of_clk_get_from_provider
+  of_clk_get_parent_count
+  of_clk_src_onecell_get
+  of_clk_src_simple_get
+  of_count_phandle_with_args
+  of_cpu_node_to_id
+  of_devfreq_cooling_register_power
+  of_device_get_match_data
+  of_device_is_available
+  of_device_is_compatible
+  of_dma_configure_id
+  of_dma_controller_free
+  of_dma_controller_register
+  of_dma_is_coherent
+  of_dma_xlate_by_chan_id
+  of_drm_find_bridge
+  of_drm_find_panel
+  of_find_backlight_by_node
+  of_find_compatible_node
+  of_find_device_by_node
+  of_find_matching_node_and_match
+  of_find_node_by_name
+  of_find_node_by_phandle
+  of_find_node_opts_by_path
+  of_find_node_with_property
+  of_find_property
+  of_fwnode_ops
+  of_genpd_add_device
+  of_genpd_add_provider_onecell
+  __of_get_address
+  of_get_child_by_name
+  of_get_cpu_node
+  of_get_named_gpio_flags
+  of_get_next_available_child
+  of_get_next_child
+  of_get_next_parent
+  of_get_parent
+  of_get_pci_domain_nr
+  of_get_property
+  of_get_regulator_init_data
+  of_graph_get_next_endpoint
+  of_graph_get_remote_node
+  of_graph_get_remote_port_parent
+  of_icc_get
+  of_icc_xlate_onecell
+  of_iomap
+  of_irq_find_parent
+  of_irq_get
+  of_irq_parse_one
+  of_irq_to_resource_table
+  of_machine_is_compatible
+  of_match_device
+  of_match_node
+  of_parse_phandle
+  of_parse_phandle_with_args
+  of_parse_phandle_with_fixed_args
+  of_phandle_iterator_init
+  of_phandle_iterator_next
+  of_phy_simple_xlate
+  of_platform_depopulate
+  of_platform_device_create
+  of_platform_populate
+  of_property_count_elems_of_size
+  of_property_match_string
+  of_property_read_string
+  of_property_read_string_helper
+  of_property_read_u32_index
+  of_property_read_u64
+  of_property_read_u64_index
+  of_property_read_variable_u16_array
+  of_property_read_variable_u32_array
+  of_property_read_variable_u64_array
+  of_property_read_variable_u8_array
+  of_prop_next_string
+  of_prop_next_u32
+  of_remove_property
+  of_reserved_mem_device_init_by_idx
+  of_reserved_mem_lookup
+  of_root
+  of_thermal_get_trip_points
+  of_translate_address
+  on_each_cpu_cond_mask
+  oops_in_progress
+  page_endio
+  page_mapping
+  panic
+  panic_notifier_list
+  param_array_ops
+  param_get_bool
+  param_get_charp
+  param_get_int
+  param_get_uint
+  param_get_ulong
+  param_ops_bool
+  param_ops_byte
+  param_ops_charp
+  param_ops_int
+  param_ops_string
+  param_ops_uint
+  param_set_bool
+  param_set_charp
+  param_set_uint
+  param_set_ulong
+  pci_generic_config_read32
+  pci_generic_config_write32
+  pci_host_probe
+  pci_lock_rescan_remove
+  pci_msi_create_irq_domain
+  pci_msi_mask_irq
+  pci_msi_unmask_irq
+  pci_pio_to_address
+  pci_remove_root_bus
+  pci_stop_root_bus
+  pci_unlock_rescan_remove
+  PDE_DATA
+  __per_cpu_offset
+  perf_event_create_kernel_counter
+  perf_event_disable
+  perf_event_enable
+  perf_event_release_kernel
+  perf_event_update_userpage
+  perf_pmu_migrate_context
+  perf_pmu_register
+  perf_pmu_unregister
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  pfn_is_map_memory
+  phy_attached_info
+  phy_basic_features
+  phy_connect
+  phy_disconnect
+  phy_do_ioctl_running
+  phy_ethtool_get_link_ksettings
+  phy_ethtool_nway_reset
+  phy_ethtool_set_link_ksettings
+  phy_exit
+  phy_gbit_features
+  phy_get
+  phy_init
+  phy_loopback
+  phy_power_off
+  phy_power_on
+  phy_print_status
+  phy_put
+  phy_set_mode_ext
+  phy_start
+  phy_stop
+  phy_suspend
+  pid_task
+  pinconf_generic_parse_dt_config
+  pinctrl_dev_get_drvdata
+  pinctrl_enable
+  pinctrl_gpio_direction_input
+  pinctrl_gpio_direction_output
+  pinctrl_lookup_state
+  pinctrl_pm_select_default_state
+  pinctrl_pm_select_sleep_state
+  pinctrl_put
+  pinctrl_select_state
+  pinctrl_utils_add_map_configs
+  pinctrl_utils_free_map
+  pinctrl_utils_reserve_map
+  pin_user_pages
+  pin_user_pages_fast
+  pin_user_pages_remote
+  platform_bus_type
+  platform_device_add
+  platform_device_add_data
+  platform_device_alloc
+  platform_device_del
+  platform_device_put
+  platform_device_register
+  platform_device_register_full
+  platform_device_unregister
+  __platform_driver_probe
+  __platform_driver_register
+  platform_driver_unregister
+  platform_find_device_by_driver
+  platform_get_irq
+  platform_get_irq_byname
+  platform_get_irq_byname_optional
+  platform_get_irq_optional
+  platform_get_resource
+  platform_get_resource_byname
+  __platform_register_drivers
+  platform_unregister_drivers
+  pm_genpd_add_device
+  pm_genpd_add_subdomain
+  pm_genpd_init
+  pm_genpd_remove
+  pm_genpd_remove_device
+  pm_get_active_wakeup_sources
+  __pm_relax
+  pm_relax
+  __pm_runtime_disable
+  pm_runtime_enable
+  pm_runtime_forbid
+  pm_runtime_force_resume
+  pm_runtime_force_suspend
+  pm_runtime_get_if_active
+  __pm_runtime_idle
+  __pm_runtime_resume
+  pm_runtime_set_autosuspend_delay
+  __pm_runtime_set_status
+  __pm_runtime_suspend
+  __pm_runtime_use_autosuspend
+  __pm_stay_awake
+  pm_stay_awake
+  pm_suspend_default_s2idle
+  pm_system_wakeup
+  pm_wakeup_dev_event
+  pm_wakeup_ws_event
+  pm_wq
+  power_supply_changed
+  power_supply_get_by_name
+  power_supply_get_drvdata
+  power_supply_get_property
+  power_supply_put
+  power_supply_register
+  power_supply_reg_notifier
+  power_supply_set_property
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait_event
+  print_hex_dump
+  _printk
+  _printk_deferred
+  proc_create
+  proc_create_data
+  proc_create_single_data
+  proc_dointvec_minmax
+  proc_mkdir
+  proc_remove
+  proc_set_user
+  pskb_expand_head
+  put_device
+  __put_page
+  put_pid
+  __put_task_struct
+  put_unused_fd
+  put_vaddr_frames
+  pwm_apply_state
+  pwmchip_add
+  pwmchip_remove
+  queue_delayed_work_on
+  queue_work_on
+  ___ratelimit
+  raw_notifier_call_chain
+  raw_notifier_chain_register
+  raw_notifier_chain_unregister
+  _raw_read_lock
+  _raw_read_lock_bh
+  _raw_read_lock_irqsave
+  _raw_read_trylock
+  _raw_read_unlock
+  _raw_read_unlock_bh
+  _raw_read_unlock_irqrestore
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irq
+  _raw_spin_lock_irqsave
+  raw_spin_rq_lock_nested
+  raw_spin_rq_unlock
+  _raw_spin_trylock
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irq
+  _raw_spin_unlock_irqrestore
+  _raw_write_lock
+  _raw_write_lock_bh
+  _raw_write_lock_irqsave
+  _raw_write_unlock
+  _raw_write_unlock_bh
+  _raw_write_unlock_irqrestore
+  rb_erase
+  rb_first
+  rb_insert_color
+  rb_next
+  rb_prev
+  rb_replace_node
+  rc_allocate_device
+  rc_free_device
+  rc_register_device
+  rcu_idle_enter
+  rcu_idle_exit
+  rc_unregister_device
+  __rcu_read_lock
+  __rcu_read_unlock
+  rdev_get_dev
+  rdev_get_drvdata
+  rdev_get_id
+  rdev_get_regmap
+  refcount_warn_saturate
+  __refrigerator
+  regcache_cache_only
+  regcache_mark_dirty
+  regcache_sync
+  __register_blkdev
+  __register_chrdev
+  register_chrdev_region
+  register_die_notifier
+  register_kprobe
+  register_module_notifier
+  register_netdev
+  register_netdevice_notifier
+  register_oom_notifier
+  register_pernet_subsys
+  register_pm_notifier
+  register_reboot_notifier
+  __register_rpmsg_driver
+  register_shrinker
+  register_syscore_ops
+  register_sysctl_table
+  register_tracepoint_module_notifier
+  register_virtio_device
+  register_virtio_driver
+  regmap_bulk_read
+  regmap_bulk_write
+  regmap_field_read
+  regmap_field_update_bits_base
+  __regmap_init
+  regmap_irq_get_domain
+  regmap_raw_read
+  regmap_raw_write
+  regmap_read
+  regmap_update_bits_base
+  regmap_write
+  regulator_count_voltages
+  regulator_disable
+  regulator_disable_regmap
+  regulator_enable
+  regulator_enable_regmap
+  regulator_get
+  regulator_get_current_limit_regmap
+  regulator_get_mode
+  regulator_get_optional
+  regulator_get_voltage
+  regulator_get_voltage_sel_regmap
+  regulator_is_enabled
+  regulator_is_enabled_regmap
+  regulator_list_voltage
+  regulator_list_voltage_linear
+  regulator_list_voltage_linear_range
+  regulator_list_voltage_table
+  regulator_map_voltage_iterate
+  regulator_map_voltage_linear
+  regulator_map_voltage_linear_range
+  regulator_notifier_call_chain
+  regulator_put
+  regulator_set_active_discharge_regmap
+  regulator_set_current_limit
+  regulator_set_current_limit_regmap
+  regulator_set_mode
+  regulator_set_voltage
+  regulator_set_voltage_sel_regmap
+  regulator_set_voltage_time
+  regulator_set_voltage_time_sel
+  regulator_sync_voltage
+  release_firmware
+  release_pages
+  __release_region
+  remap_pfn_range
+  remap_vmalloc_range
+  remove_proc_entry
+  remove_proc_subtree
+  remove_wait_queue
+  request_firmware
+  __request_percpu_irq
+  __request_region
+  request_threaded_irq
+  reset_control_assert
+  reset_control_deassert
+  reset_controller_register
+  reset_control_reset
+  rpmsg_create_ept
+  rpmsg_destroy_ept
+  rpmsg_find_device
+  rpmsg_register_device
+  rpmsg_send
+  rpmsg_trysend
+  rpmsg_unregister_device
+  rproc_add
+  rproc_add_subdev
+  rproc_alloc
+  rproc_boot
+  rproc_del
+  rproc_free
+  rproc_get_by_phandle
+  rproc_put
+  rproc_remove_subdev
+  rproc_report_crash
+  rproc_shutdown
+  rps_needed
+  rtc_ktime_to_tm
+  rtc_time64_to_tm
+  rtc_tm_to_ktime
+  rtc_tm_to_time64
+  rtc_update_irq
+  rtc_valid_tm
+  rtnl_lock
+  rtnl_unlock
+  runqueues
+  sched_clock
+  sched_clock_register
+  sched_feat_keys
+  sched_setattr_nocheck
+  sched_set_fifo
+  sched_set_normal
+  sched_setscheduler
+  sched_setscheduler_nocheck
+  sched_show_task
+  sched_uclamp_used
+  schedule
+  schedule_timeout
+  scmi_driver_register
+  scmi_driver_unregister
+  scmi_protocol_register
+  scnprintf
+  scsi_autopm_get_device
+  scsi_autopm_put_device
+  scsi_device_get
+  scsi_device_put
+  scsi_device_quiesce
+  __scsi_execute
+  __scsi_iterate_devices
+  scsi_print_sense_hdr
+  sdio_claim_host
+  sdio_claim_irq
+  sdio_disable_func
+  sdio_enable_func
+  sdio_f0_readb
+  sdio_f0_writeb
+  sdio_get_host_pm_caps
+  sdio_readb
+  sdio_readl
+  sdio_readsb
+  sdio_register_driver
+  sdio_release_host
+  sdio_release_irq
+  sdio_set_block_size
+  sdio_set_host_pm_flags
+  sdio_signal_irq
+  sdio_unregister_driver
+  sdio_writeb
+  sdio_writel
+  sdio_writesb
+  security_file_ioctl
+  send_sig
+  seq_hex_dump
+  seq_lseek
+  seq_open
+  seq_open_private
+  seq_printf
+  seq_putc
+  seq_puts
+  seq_read
+  seq_release
+  seq_release_private
+  seq_write
+  serial8250_do_set_termios
+  serial8250_do_shutdown
+  serial8250_do_startup
+  serial8250_get_port
+  serial8250_register_8250_port
+  serial8250_resume_port
+  serial8250_rpm_get
+  serial8250_rpm_put
+  serial8250_suspend_port
+  serial8250_unregister_port
+  set_capacity
+  set_capacity_and_notify
+  set_cpus_allowed_ptr
+  set_normalized_timespec64
+  set_page_dirty_lock
+  __SetPageMovable
+  set_task_cpu
+  set_user_nice
+  sg_alloc_table
+  sg_alloc_table_from_pages_segment
+  sg_copy_from_buffer
+  sg_copy_to_buffer
+  sg_free_table
+  sg_init_one
+  sg_init_table
+  sg_miter_next
+  sg_miter_start
+  sg_miter_stop
+  sg_next
+  __sg_page_iter_next
+  __sg_page_iter_start
+  shmem_file_setup
+  si_mem_available
+  si_meminfo
+  simple_attr_open
+  simple_attr_read
+  simple_attr_release
+  simple_attr_write
+  simple_open
+  simple_read_from_buffer
+  simple_write_to_buffer
+  single_open
+  single_open_size
+  single_release
+  skb_add_rx_frag
+  skb_clone
+  skb_copy_expand
+  skb_dequeue
+  skb_pull
+  skb_push
+  skb_put
+  skb_queue_tail
+  skb_realloc_headroom
+  skb_split
+  skb_trim
+  smp_call_function
+  smp_call_function_single
+  snd_card_add_dev_attr
+  snd_ctl_boolean_mono_info
+  snd_jack_set_key
+  snd_pcm_format_physical_width
+  snd_pcm_format_width
+  snd_pcm_hw_constraint_integer
+  snd_pcm_hw_constraint_minmax
+  snd_pcm_hw_constraint_step
+  snd_pcm_lib_free_pages
+  snd_pcm_lib_malloc_pages
+  snd_pcm_lib_preallocate_free_for_all
+  snd_pcm_lib_preallocate_pages_for_all
+  snd_pcm_period_elapsed
+  snd_pcm_set_ops
+  snd_soc_add_component_controls
+  snd_soc_bytes_info_ext
+  snd_soc_bytes_tlv_callback
+  snd_soc_card_jack_new
+  snd_soc_component_exit_regmap
+  snd_soc_component_init_regmap
+  snd_soc_component_read
+  snd_soc_component_set_jack
+  snd_soc_component_update_bits
+  snd_soc_component_write
+  snd_soc_dai_set_sysclk
+  snd_soc_dapm_add_routes
+  snd_soc_dapm_disable_pin
+  snd_soc_dapm_enable_pin
+  snd_soc_dapm_get_enum_double
+  snd_soc_dapm_get_pin_switch
+  snd_soc_dapm_get_volsw
+  snd_soc_dapm_info_pin_switch
+  snd_soc_dapm_new_controls
+  snd_soc_dapm_new_widgets
+  snd_soc_dapm_put_enum_double
+  snd_soc_dapm_put_pin_switch
+  snd_soc_dapm_put_volsw
+  snd_soc_dapm_sync
+  snd_soc_get_volsw
+  snd_soc_info_enum_double
+  snd_soc_info_volsw
+  snd_soc_jack_report
+  snd_soc_new_compress
+  snd_soc_of_get_dai_link_codecs
+  snd_soc_poweroff
+  snd_soc_put_volsw
+  snd_soc_register_component
+  snd_soc_resume
+  snd_soc_rtdcom_lookup
+  snd_soc_set_runtime_hwparams
+  snd_soc_unregister_component
+  snprintf
+  soc_device_register
+  soc_device_unregister
+  sort
+  __spi_alloc_controller
+  spi_bus_type
+  spi_delay_to_ns
+  spi_finalize_current_transfer
+  __spi_register_driver
+  spi_setup
+  spi_sync
+  spmi_controller_add
+  spmi_controller_alloc
+  spmi_controller_remove
+  __spmi_driver_register
+  spmi_ext_register_read
+  spmi_ext_register_readl
+  spmi_ext_register_write
+  spmi_ext_register_writel
+  spmi_register_read
+  spmi_register_write
+  spmi_register_zero_write
+  sprintf
+  sprint_symbol
+  sprint_symbol_no_offset
+  srcu_init_notifier_head
+  srcu_notifier_call_chain
+  srcu_notifier_chain_register
+  srcu_notifier_chain_unregister
+  sscanf
+  __stack_chk_fail
+  stack_trace_save
+  static_key_slow_dec
+  static_key_slow_inc
+  stop_one_cpu_nowait
+  stpcpy
+  strcasecmp
+  strchr
+  strcmp
+  strcpy
+  strcspn
+  strim
+  strlcat
+  strlcpy
+  strlen
+  strncasecmp
+  strncat
+  strncmp
+  strncpy
+  strncpy_from_user
+  strnlen
+  strnstr
+  strrchr
+  strreplace
+  strscpy
+  strsep
+  strstr
+  submit_bio
+  submit_bio_wait
+  suspend_set_ops
+  __sw_hweight32
+  __sw_hweight64
+  sync_file_create
+  sync_file_get_fence
+  synchronize_irq
+  synchronize_net
+  synchronize_rcu
+  syscon_node_to_regmap
+  syscon_regmap_lookup_by_compatible
+  syscon_regmap_lookup_by_phandle
+  syscon_regmap_lookup_by_phandle_optional
+  sysfs_create_bin_file
+  sysfs_create_file_ns
+  sysfs_create_group
+  sysfs_create_link
+  sysfs_emit
+  __sysfs_match_string
+  sysfs_merge_group
+  sysfs_remove_bin_file
+  sysfs_remove_file_ns
+  sysfs_remove_group
+  sysfs_remove_link
+  sysfs_streq
+  system_freezable_power_efficient_wq
+  system_freezable_wq
+  system_freezing_cnt
+  system_highpri_wq
+  system_long_wq
+  system_power_efficient_wq
+  system_state
+  system_unbound_wq
+  system_wq
+  sys_tz
+  task_active_pid_ns
+  __tasklet_hi_schedule
+  tasklet_init
+  tasklet_kill
+  __tasklet_schedule
+  tasklet_setup
+  __task_pid_nr_ns
+  __task_rq_lock
+  task_sched_runtime
+  thermal_cooling_device_unregister
+  thermal_of_cooling_device_register
+  thermal_pressure
+  thermal_zone_device_update
+  thermal_zone_get_temp
+  thermal_zone_get_zone_by_name
+  tick_nohz_get_idle_calls_cpu
+  timecounter_init
+  timecounter_read
+  timer_of_init
+  timer_unstable_counter_workaround
+  topology_clear_scale_freq_source
+  topology_set_thermal_pressure
+  _totalram_pages
+  __trace_bprintk
+  __trace_bputs
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_handle_return
+  __traceiter_android_rvh_after_enqueue_task
+  __traceiter_android_rvh_audio_usb_offload_disconnect
+  __traceiter_android_rvh_can_migrate_task
+  __traceiter_android_rvh_commit_creds
+  __traceiter_android_rvh_cpu_overutilized
+  __traceiter_android_rvh_dequeue_task
+  __traceiter_android_rvh_dequeue_task_fair
+  __traceiter_android_rvh_enqueue_task
+  __traceiter_android_rvh_enqueue_task_fair
+  __traceiter_android_rvh_exit_creds
+  __traceiter_android_rvh_find_busiest_group
+  __traceiter_android_rvh_find_busiest_queue
+  __traceiter_android_rvh_find_energy_efficient_cpu
+  __traceiter_android_rvh_find_lowest_rq
+  __traceiter_android_rvh_find_new_ilb
+  __traceiter_android_rvh_finish_prio_fork
+  __traceiter_android_rvh_get_nohz_timer_target
+  __traceiter_android_rvh_is_cpu_allowed
+  __traceiter_android_rvh_new_task_stats
+  __traceiter_android_rvh_override_creds
+  __traceiter_android_rvh_prepare_prio_fork
+  __traceiter_android_rvh_revert_creds
+  __traceiter_android_rvh_rmqueue_bulk
+  __traceiter_android_rvh_rtmutex_prepare_setprio
+  __traceiter_android_rvh_rto_next_cpu
+  __traceiter_android_rvh_sched_newidle_balance
+  __traceiter_android_rvh_select_task_rq_fair
+  __traceiter_android_rvh_select_task_rq_rt
+  __traceiter_android_rvh_selinux_avc_insert
+  __traceiter_android_rvh_selinux_avc_lookup
+  __traceiter_android_rvh_selinux_avc_node_delete
+  __traceiter_android_rvh_selinux_avc_node_replace
+  __traceiter_android_rvh_selinux_is_initialized
+  __traceiter_android_rvh_set_cpus_allowed_by_task
+  __traceiter_android_rvh_set_cpus_allowed_ptr_locked
+  __traceiter_android_rvh_setscheduler
+  __traceiter_android_rvh_set_user_nice
+  __traceiter_android_rvh_tick_entry
+  __traceiter_android_rvh_update_cpu_capacity
+  __traceiter_android_vh_alter_futex_plist_add
+  __traceiter_android_vh_alter_rwsem_list_add
+  __traceiter_android_vh_arch_set_freq_scale
+  __traceiter_android_vh_binder_restore_priority
+  __traceiter_android_vh_binder_set_priority
+  __traceiter_android_vh_binder_transaction_init
+  __traceiter_android_vh_cgroup_attach
+  __traceiter_android_vh_cgroup_set_task
+  __traceiter_android_vh_check_bpf_syscall
+  __traceiter_android_vh_check_file_open
+  __traceiter_android_vh_check_mmap_file
+  __traceiter_android_vh_check_uninterruptible_tasks
+  __traceiter_android_vh_cpufreq_offline
+  __traceiter_android_vh_iommu_iovad_alloc_iova
+  __traceiter_android_vh_iommu_iovad_free_iova
+  __traceiter_android_vh_is_fpsimd_save
+  __traceiter_android_vh_logbuf
+  __traceiter_android_vh_rwsem_init
+  __traceiter_android_vh_rwsem_wake
+  __traceiter_android_vh_rwsem_write_finished
+  __traceiter_android_vh_sched_pelt_multiplier
+  __traceiter_android_vh_scheduler_tick
+  __traceiter_android_vh_set_memory_nx
+  __traceiter_android_vh_set_memory_rw
+  __traceiter_android_vh_set_module_permit_after_init
+  __traceiter_android_vh_set_module_permit_before_init
+  __traceiter_android_vh_set_wake_flags
+  __traceiter_android_vh_show_resume_epoch_val
+  __traceiter_android_vh_show_suspend_epoch_val
+  __traceiter_android_vh_syscall_prctl_finished
+  __traceiter_cpu_frequency
+  __traceiter_gpu_mem_total
+  __traceiter_mmap_lock_acquire_returned
+  __traceiter_mmap_lock_released
+  __traceiter_mmap_lock_start_locking
+  __traceiter_pelt_se_tp
+  __traceiter_sched_update_nr_running_tp
+  __traceiter_task_newtask
+  __traceiter_xhci_urb_giveback
+  trace_output_call
+  __tracepoint_android_rvh_after_enqueue_task
+  __tracepoint_android_rvh_audio_usb_offload_disconnect
+  __tracepoint_android_rvh_can_migrate_task
+  __tracepoint_android_rvh_commit_creds
+  __tracepoint_android_rvh_cpu_overutilized
+  __tracepoint_android_rvh_dequeue_task
+  __tracepoint_android_rvh_dequeue_task_fair
+  __tracepoint_android_rvh_enqueue_task
+  __tracepoint_android_rvh_enqueue_task_fair
+  __tracepoint_android_rvh_exit_creds
+  __tracepoint_android_rvh_find_busiest_group
+  __tracepoint_android_rvh_find_busiest_queue
+  __tracepoint_android_rvh_find_energy_efficient_cpu
+  __tracepoint_android_rvh_find_lowest_rq
+  __tracepoint_android_rvh_find_new_ilb
+  __tracepoint_android_rvh_finish_prio_fork
+  __tracepoint_android_rvh_get_nohz_timer_target
+  __tracepoint_android_rvh_is_cpu_allowed
+  __tracepoint_android_rvh_new_task_stats
+  __tracepoint_android_rvh_override_creds
+  __tracepoint_android_rvh_prepare_prio_fork
+  __tracepoint_android_rvh_revert_creds
+  __tracepoint_android_rvh_rmqueue_bulk
+  __tracepoint_android_rvh_rtmutex_prepare_setprio
+  __tracepoint_android_rvh_rto_next_cpu
+  __tracepoint_android_rvh_sched_newidle_balance
+  __tracepoint_android_rvh_select_task_rq_fair
+  __tracepoint_android_rvh_select_task_rq_rt
+  __tracepoint_android_rvh_selinux_avc_insert
+  __tracepoint_android_rvh_selinux_avc_lookup
+  __tracepoint_android_rvh_selinux_avc_node_delete
+  __tracepoint_android_rvh_selinux_avc_node_replace
+  __tracepoint_android_rvh_selinux_is_initialized
+  __tracepoint_android_rvh_set_cpus_allowed_by_task
+  __tracepoint_android_rvh_set_cpus_allowed_ptr_locked
+  __tracepoint_android_rvh_setscheduler
+  __tracepoint_android_rvh_set_user_nice
+  __tracepoint_android_rvh_tick_entry
+  __tracepoint_android_rvh_update_cpu_capacity
+  __tracepoint_android_vh_alter_futex_plist_add
+  __tracepoint_android_vh_alter_rwsem_list_add
+  __tracepoint_android_vh_arch_set_freq_scale
+  __tracepoint_android_vh_binder_restore_priority
+  __tracepoint_android_vh_binder_set_priority
+  __tracepoint_android_vh_binder_transaction_init
+  __tracepoint_android_vh_cgroup_attach
+  __tracepoint_android_vh_cgroup_set_task
+  __tracepoint_android_vh_check_bpf_syscall
+  __tracepoint_android_vh_check_file_open
+  __tracepoint_android_vh_check_mmap_file
+  __tracepoint_android_vh_check_uninterruptible_tasks
+  __tracepoint_android_vh_cpufreq_offline
+  __tracepoint_android_vh_iommu_iovad_alloc_iova
+  __tracepoint_android_vh_iommu_iovad_free_iova
+  __tracepoint_android_vh_is_fpsimd_save
+  __tracepoint_android_vh_logbuf
+  __tracepoint_android_vh_rwsem_init
+  __tracepoint_android_vh_rwsem_wake
+  __tracepoint_android_vh_rwsem_write_finished
+  __tracepoint_android_vh_sched_pelt_multiplier
+  __tracepoint_android_vh_scheduler_tick
+  __tracepoint_android_vh_set_memory_nx
+  __tracepoint_android_vh_set_memory_rw
+  __tracepoint_android_vh_set_module_permit_after_init
+  __tracepoint_android_vh_set_module_permit_before_init
+  __tracepoint_android_vh_set_wake_flags
+  __tracepoint_android_vh_show_resume_epoch_val
+  __tracepoint_android_vh_show_suspend_epoch_val
+  __tracepoint_android_vh_syscall_prctl_finished
+  __tracepoint_cpu_frequency
+  __tracepoint_gpu_mem_total
+  __tracepoint_mmap_lock_acquire_returned
+  __tracepoint_mmap_lock_released
+  __tracepoint_mmap_lock_start_locking
+  __tracepoint_pelt_se_tp
+  tracepoint_probe_register
+  tracepoint_probe_unregister
+  __tracepoint_sched_update_nr_running_tp
+  tracepoint_srcu
+  __tracepoint_task_newtask
+  __tracepoint_xhci_urb_giveback
+  trace_print_array_seq
+  trace_print_flags_seq
+  trace_print_symbols_seq
+  __trace_puts
+  trace_raw_output_prep
+  trace_seq_printf
+  trace_seq_putc
+  tracing_off
+  try_module_get
+  try_wait_for_completion
+  tty_chars_in_buffer
+  tty_driver_flush_buffer
+  tty_flip_buffer_push
+  tty_get_char_size
+  tty_insert_flip_string_fixed_flag
+  tty_ldisc_flush
+  tty_register_ldisc
+  tty_set_termios
+  tty_termios_baud_rate
+  tty_termios_encode_baud_rate
+  tty_unregister_ldisc
+  tty_write_room
+  typec_mux_get_drvdata
+  typec_mux_register
+  typec_mux_set
+  typec_mux_unregister
+  typec_partner_set_identity
+  typec_register_partner
+  typec_register_port
+  typec_set_data_role
+  typec_set_orientation
+  typec_set_pwr_opmode
+  typec_set_pwr_role
+  typec_set_vconn_role
+  typec_switch_get_drvdata
+  typec_switch_register
+  typec_switch_unregister
+  typec_unregister_partner
+  typec_unregister_port
+  uart_get_baud_rate
+  uart_get_divisor
+  uart_update_timeout
+  u_audio_get_mute
+  u_audio_get_volume
+  u_audio_set_mute
+  u_audio_set_volume
+  u_audio_start_capture
+  u_audio_start_playback
+  u_audio_stop_capture
+  u_audio_stop_playback
+  __ubsan_handle_cfi_check_fail_abort
+  uclamp_eff_value
+  __udelay
+  ufshcd_add_command_trace
+  ufshcd_clk_scaling_start_busy
+  ufshcd_clk_scaling_update_busy
+  ufshcd_delay_us
+  ufshcd_dme_configure_adapt
+  ufshcd_dme_get_attr
+  ufshcd_dme_set_attr
+  ufshcd_dump_regs
+  ufshcd_fixup_dev_quirks
+  ufshcd_get_pwr_dev_param
+  ufshcd_get_vreg
+  ufshcd_hba_enable
+  ufshcd_hba_stop
+  ufshcd_init_pwr_dev_param
+  ufshcd_link_recovery
+  ufshcd_make_hba_operational
+  ufshcd_pltfrm_init
+  ufshcd_pltfrm_shutdown
+  ufshcd_populate_vreg
+  ufshcd_query_attr
+  ufshcd_query_descriptor_retry
+  ufshcd_query_flag
+  ufshcd_read_desc_param
+  ufshcd_remove
+  ufshcd_resume_complete
+  ufshcd_runtime_resume
+  ufshcd_runtime_suspend
+  ufshcd_suspend_prepare
+  ufshcd_system_resume
+  ufshcd_system_suspend
+  ufshcd_transfer_rsp_status
+  ufshcd_uic_change_pwr_mode
+  ufshcd_uic_hibern8_exit
+  ufshcd_update_evt_hist
+  unlock_page
+  unmap_mapping_range
+  unpin_user_page
+  unpin_user_pages
+  unregister_blkdev
+  __unregister_chrdev
+  unregister_chrdev_region
+  unregister_die_notifier
+  unregister_module_notifier
+  unregister_netdev
+  unregister_netdevice_notifier
+  unregister_oom_notifier
+  unregister_pernet_subsys
+  unregister_pm_notifier
+  unregister_reboot_notifier
+  unregister_rpmsg_driver
+  unregister_shrinker
+  unregister_sysctl_table
+  unregister_virtio_device
+  unregister_virtio_driver
+  up
+  update_devfreq
+  update_rq_clock
+  up_read
+  up_write
+  usb_add_config
+  usb_add_function
+  usb_add_gadget_udc
+  usb_add_hcd
+  usb_assign_descriptors
+  usb_composite_probe
+  usb_composite_unregister
+  usb_copy_descriptors
+  usb_create_hcd
+  usb_create_shared_hcd
+  usb_debug_root
+  usb_decode_interval
+  usb_del_gadget_udc
+  usb_deregister
+  usb_disabled
+  usb_ep_alloc_request
+  usb_ep_autoconfig
+  usb_ep_dequeue
+  usb_ep_disable
+  usb_ep_enable
+  usb_ep_free_request
+  usb_ep_queue
+  usb_ep_set_halt
+  usb_ep_set_maxpacket_limit
+  usb_ep_type_string
+  usb_free_all_descriptors
+  usb_function_register
+  usb_function_unregister
+  usb_gadget_connect
+  usb_gadget_disconnect
+  usb_gadget_giveback_request
+  usb_gadget_map_request
+  usb_gadget_probe_driver
+  usb_gadget_set_selfpowered
+  usb_gadget_set_state
+  usb_gadget_unmap_request
+  usb_get_dr_mode
+  usb_get_function
+  usb_get_function_instance
+  usb_get_maximum_speed
+  usb_get_role_switch_default_mode
+  usb_gstrings_attach
+  usb_hcd_end_port_resume
+  usb_hcd_is_primary_hcd
+  usb_hcd_poll_rh_status
+  usb_hcd_start_port_resume
+  usb_hub_clear_tt_buffer
+  usb_interface_id
+  usbnet_change_mtu
+  usbnet_disconnect
+  usbnet_get_drvinfo
+  usbnet_get_endpoints
+  usbnet_get_ethernet_addr
+  usbnet_get_link
+  usbnet_get_link_ksettings_mii
+  usbnet_get_msglevel
+  usbnet_link_change
+  usbnet_nway_reset
+  usbnet_open
+  usbnet_probe
+  usbnet_read_cmd
+  usbnet_read_cmd_nopm
+  usbnet_resume
+  usbnet_set_link_ksettings_mii
+  usbnet_set_msglevel
+  usbnet_skb_return
+  usbnet_start_xmit
+  usbnet_stop
+  usbnet_suspend
+  usbnet_tx_timeout
+  usbnet_unlink_rx_urbs
+  usbnet_update_max_qlen
+  usbnet_write_cmd
+  usbnet_write_cmd_async
+  usbnet_write_cmd_nopm
+  usb_os_desc_prepare_interf_dir
+  usb_put_function
+  usb_put_function_instance
+  usb_put_hcd
+  usb_register_driver
+  usb_remove_function
+  usb_remove_hcd
+  usb_role_string
+  usb_role_switch_get
+  usb_role_switch_get_drvdata
+  usb_role_switch_register
+  usb_role_switch_set_role
+  usb_role_switch_unregister
+  usb_speed_string
+  usb_string_id
+  usb_wakeup_notification
+  __usecs_to_jiffies
+  usleep_range_state
+  uuid_null
+  v4l2_compat_ioctl32
+  v4l2_ctrl_find
+  v4l2_ctrl_g_ctrl
+  v4l2_ctrl_g_ctrl_int64
+  v4l2_ctrl_handler_free
+  v4l2_ctrl_handler_init_class
+  v4l2_ctrl_handler_setup
+  __v4l2_ctrl_modify_range
+  v4l2_ctrl_new_custom
+  v4l2_ctrl_new_std
+  v4l2_ctrl_new_std_menu
+  v4l2_ctrl_new_std_menu_items
+  v4l2_ctrl_request_complete
+  v4l2_ctrl_request_setup
+  __v4l2_ctrl_s_ctrl
+  __v4l2_ctrl_s_ctrl_compound
+  v4l2_ctrl_subdev_subscribe_event
+  v4l2_ctrl_subscribe_event
+  v4l2_device_register
+  v4l2_device_register_subdev
+  __v4l2_device_register_subdev_nodes
+  v4l2_device_unregister
+  v4l2_device_unregister_subdev
+  v4l2_event_queue
+  v4l2_event_queue_fh
+  v4l2_event_subdev_unsubscribe
+  v4l2_event_subscribe
+  v4l2_event_unsubscribe
+  v4l2_fh_add
+  v4l2_fh_del
+  v4l2_fh_exit
+  v4l2_fh_init
+  v4l2_fh_is_singular
+  v4l2_fh_open
+  __v4l2_find_nearest_size
+  v4l2_format_info
+  v4l2_i2c_subdev_init
+  v4l2_m2m_buf_copy_metadata
+  v4l2_m2m_buf_queue
+  v4l2_m2m_buf_remove
+  v4l2_m2m_ctx_init
+  v4l2_m2m_ctx_release
+  v4l2_m2m_dqbuf
+  v4l2_m2m_fop_mmap
+  v4l2_m2m_fop_poll
+  v4l2_m2m_get_curr_priv
+  v4l2_m2m_get_vq
+  v4l2_m2m_init
+  v4l2_m2m_ioctl_create_bufs
+  v4l2_m2m_ioctl_dqbuf
+  v4l2_m2m_ioctl_expbuf
+  v4l2_m2m_ioctl_prepare_buf
+  v4l2_m2m_ioctl_qbuf
+  v4l2_m2m_ioctl_querybuf
+  v4l2_m2m_ioctl_reqbufs
+  v4l2_m2m_ioctl_streamoff
+  v4l2_m2m_ioctl_streamon
+  v4l2_m2m_job_finish
+  v4l2_m2m_next_buf
+  v4l2_m2m_qbuf
+  v4l2_m2m_register_media_controller
+  v4l2_m2m_release
+  v4l2_m2m_request_queue
+  v4l2_m2m_resume
+  v4l2_m2m_streamoff
+  v4l2_m2m_suspend
+  v4l2_m2m_try_schedule
+  v4l2_m2m_unregister_media_controller
+  v4l2_pipeline_link_notify
+  v4l2_src_change_event_subscribe
+  v4l2_subdev_call_wrappers
+  v4l2_subdev_init
+  v4l2_subdev_link_validate
+  v4l2_subdev_link_validate_default
+  v4l_bound_align_image
+  vabits_actual
+  vb2_buffer_done
+  vb2_common_vm_ops
+  vb2_create_framevec
+  vb2_destroy_framevec
+  vb2_dma_contig_memops
+  vb2_fop_mmap
+  vb2_fop_poll
+  vb2_fop_release
+  vb2_ioctl_create_bufs
+  vb2_ioctl_dqbuf
+  vb2_ioctl_expbuf
+  vb2_ioctl_prepare_buf
+  vb2_ioctl_qbuf
+  vb2_ioctl_querybuf
+  vb2_ioctl_reqbufs
+  vb2_ioctl_streamoff
+  vb2_ioctl_streamon
+  vb2_ops_wait_finish
+  vb2_ops_wait_prepare
+  vb2_plane_cookie
+  vb2_plane_vaddr
+  vb2_queue_init
+  vb2_queue_release
+  vb2_request_object_is_buffer
+  vb2_request_queue
+  vb2_request_validate
+  vchan_dma_desc_free_list
+  vchan_init
+  vchan_tx_desc_free
+  vchan_tx_submit
+  vfree
+  video_devdata
+  video_device_alloc
+  video_device_release
+  video_device_release_empty
+  video_ioctl2
+  __video_register_device
+  video_unregister_device
+  virtqueue_add_inbuf
+  virtqueue_add_outbuf
+  virtqueue_detach_unused_buf
+  virtqueue_get_buf
+  virtqueue_get_vring_size
+  virtqueue_kick_prepare
+  virtqueue_notify
+  vmalloc
+  vmalloc_to_page
+  vmalloc_to_pfn
+  vmalloc_user
+  vmap
+  vm_event_states
+  vmf_insert_pfn_prot
+  vm_map_ram
+  vm_node_stat
+  vm_unmap_ram
+  vm_zone_stat
+  vring_del_virtqueue
+  vring_interrupt
+  vring_new_virtqueue
+  vscnprintf
+  vsnprintf
+  vsprintf
+  vunmap
+  vzalloc
+  wait_for_completion
+  wait_for_completion_interruptible
+  wait_for_completion_interruptible_timeout
+  wait_for_completion_killable
+  wait_for_completion_killable_timeout
+  wait_for_completion_timeout
+  wait_woken
+  __wake_up
+  __wake_up_locked
+  wake_up_process
+  wakeup_source_add
+  wakeup_source_create
+  wakeup_source_destroy
+  wakeup_source_register
+  wakeup_source_remove
+  wakeup_source_unregister
+  __warn_printk
+  watchdog_init_timeout
+  watchdog_set_restart_priority
+  woken_wake_function
+  work_busy
+  work_on_cpu
+  ww_mutex_lock
+  ww_mutex_unlock
+  xhci_add_endpoint
+  xhci_check_bandwidth
+  xhci_drop_endpoint
+  xhci_gen_setup
+  xhci_get_endpoint_index
+  xhci_get_ep_ctx
+  xhci_init_driver
+  xhci_reset_bandwidth
+  zlib_deflate
+  zlib_deflateEnd
+  zlib_deflateInit2
+  zlib_deflateReset
+  zlib_deflate_workspacesize
+
+# preserved by --additions-only
+  alloc_netdev_mqs
+  build_skb
+  clkdev_add
+  clkdev_drop
+  clk_register_gate
+  clk_unregister_gate
+  cpufreq_frequency_table_get_index
+  dev_change_flags
+  do_trace_netlink_extack
+  ether_setup
+  gpio_request_one
+  hci_alloc_dev_priv
+  hci_free_dev
+  hci_recv_frame
+  hci_register_dev
+  hci_unregister_dev
+  hdmi_audio_infoframe_init
+  hex_dump_to_buffer
+  kthread_cancel_delayed_work_sync
+  kthread_delayed_work_timer_fn
+  kthread_queue_delayed_work
+  napi_complete_done
+  __napi_schedule_irqoff
+  netif_device_attach
+  netif_device_detach
+  netif_tx_stop_all_queues
+  netlink_broadcast
+  __nla_parse
+  nla_put_nohdr
+  nla_strscpy
+  page_pool_alloc_pages
+  page_pool_create
+  page_pool_put_page
+  pci_alloc_irq_vectors_affinity
+  pci_choose_state
+  pci_free_irq_vectors
+  pci_irq_vector
+  pcim_enable_device
+  pcim_iomap_regions
+  pcim_iomap_table
+  pcim_iounmap_regions
+  __pci_register_driver
+  pci_restore_state
+  pci_save_state
+  pci_set_master
+  pci_set_power_state
+  pci_unregister_driver
+  radix_tree_maybe_preload
+  _raw_spin_trylock_bh
+  register_inetaddr_notifier
+  regmap_multi_reg_write
+  regmap_register_patch
+  request_firmware_nowait
+  rtnl_is_locked
+  sched_setattr
+  sched_set_fifo_low
+  sg_pcopy_from_buffer
+  sg_pcopy_to_buffer
+  skb_copy
+  skb_pull_rcsum
+  skb_queue_head
+  skb_queue_purge
+  snd_ctl_add
+  snd_ctl_new1
+  snd_pcm_add_chmap_ctls
+  snd_pcm_create_iec958_consumer_default
+  snd_pcm_fill_iec958_consumer
+  snd_pcm_fill_iec958_consumer_hw_params
+  snd_pcm_hw_constraint_eld
+  snd_soc_add_component
+  snd_soc_component_initialize
+  snd_soc_dapm_kcontrol_widget
+  snd_soc_dpcm_get_substream
+  snd_soc_get_enum_double
+  snd_soc_of_parse_audio_routing
+  snd_soc_put_enum_double
+  strpbrk
+  strspn
+  unregister_inetaddr_notifier
+  wireless_send_event
diff --git a/android/abi_gki_aarch64_mtktv b/android/abi_gki_aarch64_mtktv
new file mode 100644
index 0000000..f601bab
--- /dev/null
+++ b/android/abi_gki_aarch64_mtktv
@@ -0,0 +1,1900 @@
+[abi_symbol_list]
+  add_timer
+  add_uevent_var
+  add_wait_queue
+  alarmtimer_get_rtcdev
+  alg_test
+  alloc_anon_inode
+  alloc_chrdev_region
+  alloc_contig_range
+  alloc_etherdev_mqs
+  alloc_netdev_mqs
+  __alloc_pages
+  alloc_pages_exact
+  __alloc_percpu
+  __alloc_percpu_gfp
+  __alloc_skb
+  alloc_workqueue
+  anon_inode_getfd
+  anon_inode_getfile
+  arc4_crypt
+  arc4_setkey
+  __arch_clear_user
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  __arm_smccc_hvc
+  __arm_smccc_smc
+  atomic_notifier_chain_register
+  atomic_notifier_chain_unregister
+  backlight_device_register
+  backlight_device_unregister
+  baswap
+  bcmp
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_start_io_acct
+  __bitmap_clear
+  bitmap_find_free_region
+  bitmap_find_next_zero_area_off
+  bitmap_from_arr32
+  bitmap_release_region
+  __bitmap_set
+  bitmap_to_arr32
+  __bitmap_weight
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  blocking_notifier_call_chain
+  blocking_notifier_chain_register
+  blocking_notifier_chain_unregister
+  block_is_partially_uptodate
+  bpf_trace_run10
+  bpf_trace_run1
+  bpf_trace_run2
+  bpf_trace_run3
+  bpf_trace_run4
+  bpf_trace_run5
+  bpf_trace_run6
+  bpf_trace_run7
+  __bread_gfp
+  __brelse
+  bt_err
+  bt_info
+  bt_procfs_cleanup
+  bt_procfs_init
+  bt_sock_link
+  bt_sock_register
+  bt_sock_unlink
+  bt_sock_unregister
+  buffer_migrate_page
+  bus_find_device
+  bus_for_each_dev
+  bus_register
+  bus_register_notifier
+  bus_set_iommu
+  bus_unregister
+  bus_unregister_notifier
+  cache_line_size
+  call_rcu
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  cancel_work_sync
+  capable
+  cdev_add
+  cdev_alloc
+  cdev_del
+  cdev_device_add
+  cdev_device_del
+  cdev_init
+  cec_allocate_adapter
+  cec_delete_adapter
+  cec_received_msg_ts
+  cec_register_adapter
+  cec_transmit_attempt_done_ts
+  cec_transmit_done_ts
+  cec_unregister_adapter
+  __cfi_slowpath_diag
+  __check_object_size
+  __class_create
+  class_destroy
+  class_find_device
+  __class_register
+  class_unregister
+  clear_inode
+  clear_page
+  __ClearPageMovable
+  clk_bulk_disable
+  clk_bulk_enable
+  clk_bulk_prepare
+  clk_bulk_put_all
+  clk_bulk_unprepare
+  clk_disable
+  clk_divider_ops
+  clk_enable
+  clk_gate_ops
+  clk_get
+  __clk_get_hw
+  __clk_get_name
+  clk_get_parent
+  clk_get_rate
+  clk_hw_get_flags
+  clk_hw_get_name
+  clk_hw_get_num_parents
+  clk_hw_get_parent
+  clk_hw_get_parent_by_index
+  clk_hw_get_rate
+  clk_hw_is_enabled
+  clk_hw_is_prepared
+  clk_hw_set_parent
+  __clk_is_enabled
+  clk_mux_ops
+  clk_prepare
+  clk_put
+  clk_register
+  clk_register_composite
+  clk_register_divider_table
+  clk_register_fixed_factor
+  clk_register_fixed_rate
+  clk_register_gate
+  clk_round_rate
+  clk_set_parent
+  clk_set_rate
+  clk_unprepare
+  cma_alloc
+  cma_for_each_area
+  cma_get_name
+  cma_release
+  compat_ptr_ioctl
+  complete
+  complete_all
+  completion_done
+  component_add
+  component_bind_all
+  component_del
+  component_master_add_with_match
+  component_match_add_release
+  component_unbind_all
+  console_printk
+  console_suspend_enabled
+  __const_udelay
+  consume_skb
+  contig_page_data
+  cpu_bit_bitmap
+  cpufreq_cpu_get
+  cpufreq_cpu_get_raw
+  cpufreq_dbs_governor_exit
+  cpufreq_dbs_governor_init
+  cpufreq_dbs_governor_limits
+  cpufreq_dbs_governor_start
+  cpufreq_dbs_governor_stop
+  __cpufreq_driver_target
+  cpufreq_generic_attr
+  cpufreq_generic_frequency_table_verify
+  cpufreq_quick_get_max
+  cpufreq_register_driver
+  cpufreq_register_governor
+  cpufreq_table_index_unsorted
+  cpufreq_unregister_governor
+  cpufreq_update_policy
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpumask_next
+  cpu_number
+  __cpu_online_mask
+  __cpu_possible_mask
+  cpus_read_lock
+  cpus_read_unlock
+  crc32_be
+  crc32_le
+  create_empty_buffers
+  crypto_aead_decrypt
+  crypto_aead_encrypt
+  crypto_aead_setauthsize
+  crypto_aead_setkey
+  crypto_alloc_aead
+  crypto_alloc_base
+  crypto_alloc_shash
+  crypto_alloc_skcipher
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_destroy_tfm
+  crypto_has_alg
+  __crypto_memneq
+  crypto_register_alg
+  crypto_shash_digest
+  crypto_shash_final
+  crypto_shash_finup
+  crypto_shash_setkey
+  crypto_shash_update
+  crypto_skcipher_decrypt
+  crypto_skcipher_encrypt
+  crypto_skcipher_setkey
+  crypto_unregister_alg
+  crypto_unregister_scomp
+  __crypto_xor
+  _ctype
+  d_add
+  d_add_ci
+  dbs_update
+  debugfs_attr_read
+  debugfs_attr_write
+  debugfs_create_bool
+  debugfs_create_devm_seqfile
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_create_regset32
+  debugfs_create_symlink
+  debugfs_create_u32
+  debugfs_create_u64
+  debugfs_create_u8
+  debugfs_create_x32
+  debugfs_remove
+  debugfs_rename
+  dec_zone_page_state
+  default_llseek
+  deferred_free
+  delayed_work_timer_fn
+  del_gendisk
+  del_timer
+  del_timer_sync
+  desc_to_gpio
+  destroy_workqueue
+  _dev_alert
+  dev_alloc_name
+  __dev_change_net_namespace
+  dev_close
+  dev_coredumpv
+  _dev_crit
+  dev_driver_string
+  _dev_emerg
+  _dev_err
+  dev_fetch_sw_netstats
+  devfreq_add_governor
+  devfreq_get_devfreq_by_phandle
+  devfreq_monitor_resume
+  devfreq_monitor_start
+  devfreq_monitor_stop
+  devfreq_monitor_suspend
+  devfreq_recommended_opp
+  devfreq_remove_governor
+  devfreq_resume_device
+  devfreq_suspend_device
+  devfreq_update_interval
+  dev_fwnode
+  __dev_get_by_index
+  dev_get_by_index
+  device_add
+  device_add_disk
+  device_create
+  device_create_file
+  device_del
+  device_destroy
+  device_for_each_child
+  device_get_child_node_count
+  device_get_next_child_node
+  device_initialize
+  device_init_wakeup
+  device_link_add
+  device_match_of_node
+  device_node_to_regmap
+  device_property_present
+  device_property_read_string
+  device_property_read_u32_array
+  device_register
+  device_remove_file
+  device_rename
+  device_unregister
+  _dev_info
+  __dev_kfree_skb_any
+  devm_clk_bulk_get_all
+  devm_clk_get
+  devm_clk_get_optional
+  devm_clk_put
+  devm_devfreq_add_device
+  devm_devfreq_register_notifier
+  devm_devfreq_remove_device
+  devm_devfreq_unregister_notifier
+  devm_extcon_dev_allocate
+  devm_extcon_dev_register
+  devm_extcon_register_notifier
+  devm_free_irq
+  devm_fwnode_gpiod_get_index
+  devm_gen_pool_create
+  devm_gpiochip_add_data_with_key
+  devm_gpiod_get
+  devm_gpiod_get_index
+  devm_gpiod_get_index_optional
+  devm_gpiod_get_optional
+  devm_gpio_request_one
+  devm_hwrng_register
+  devm_hwspin_lock_register
+  devm_hwspin_lock_unregister
+  devm_iio_channel_get
+  devm_iio_device_alloc
+  devm_input_allocate_device
+  devm_ioremap
+  devm_ioremap_resource
+  devm_ioremap_wc
+  devm_iounmap
+  devm_kasprintf
+  devm_kfree
+  devm_kmalloc
+  devm_kstrdup
+  devm_led_classdev_register_ext
+  devm_mbox_controller_register
+  devm_nvmem_device_get
+  devm_of_phy_get_by_index
+  __devm_of_phy_provider_register
+  devm_pci_alloc_host_bridge
+  devm_phy_create
+  devm_phy_optional_get
+  devm_pinctrl_get
+  devm_platform_ioremap_resource
+  devm_pwm_get
+  __devm_regmap_init_i2c
+  devm_regulator_get
+  devm_regulator_get_optional
+  devm_regulator_register
+  devm_request_any_context_irq
+  devm_request_pci_bus_resources
+  __devm_request_region
+  devm_request_threaded_irq
+  __devm_reset_control_get
+  devm_rtc_allocate_device
+  __devm_rtc_register_device
+  devm_snd_soc_register_card
+  devm_snd_soc_register_component
+  devm_spi_register_controller
+  devm_thermal_zone_of_sensor_register
+  _dev_notice
+  dev_pm_opp_find_freq_ceil
+  dev_pm_opp_get_freq
+  dev_pm_opp_get_opp_count
+  dev_pm_opp_get_opp_table
+  dev_pm_opp_get_voltage
+  dev_pm_opp_init_cpufreq_table
+  dev_pm_opp_of_add_table
+  dev_pm_opp_of_add_table_indexed
+  dev_pm_opp_of_cpumask_add_table
+  dev_pm_opp_of_cpumask_remove_table
+  dev_pm_opp_of_get_sharing_cpus
+  dev_pm_opp_of_remove_table
+  dev_pm_opp_put
+  dev_pm_opp_put_opp_table
+  dev_pm_opp_put_regulators
+  dev_pm_opp_set_regulators
+  _dev_printk
+  dev_queue_xmit
+  devres_add
+  __devres_alloc_node
+  devres_free
+  devres_release
+  dev_set_name
+  dev_valid_name
+  _dev_warn
+  disable_irq
+  disable_irq_nosync
+  disk_end_io_acct
+  disk_start_io_acct
+  dma_alloc_attrs
+  dma_buf_attach
+  dma_buf_begin_cpu_access
+  dma_buf_detach
+  dma_buf_end_cpu_access
+  dma_buf_export
+  dma_buf_fd
+  dma_buf_get
+  dma_buf_map_attachment
+  dma_buf_mmap
+  dmabuf_page_pool_alloc
+  dmabuf_page_pool_create
+  dmabuf_page_pool_destroy
+  dmabuf_page_pool_free
+  dma_buf_put
+  dma_buf_unmap_attachment
+  dma_buf_vmap
+  dma_buf_vunmap
+  dma_fence_add_callback
+  dma_fence_array_create
+  dma_fence_array_ops
+  dma_fence_context_alloc
+  dma_fence_default_wait
+  dma_fence_free
+  dma_fence_get_status
+  dma_fence_init
+  dma_fence_release
+  dma_fence_remove_callback
+  dma_fence_signal
+  dma_fence_signal_locked
+  dma_free_attrs
+  dma_get_sgtable_attrs
+  dma_heap_add
+  dma_heap_buffer_alloc
+  dma_heap_bufferfd_alloc
+  dma_heap_find
+  dma_heap_get_dev
+  dma_heap_get_drvdata
+  dma_heap_get_name
+  dma_heap_put
+  d_make_root
+  dmam_alloc_attrs
+  dma_map_page_attrs
+  dma_map_sg_attrs
+  dma_map_sgtable
+  dmam_free_coherent
+  dma_mmap_attrs
+  dma_pool_alloc
+  dma_pool_create
+  dma_pool_destroy
+  dma_pool_free
+  dma_resv_add_excl_fence
+  dma_set_coherent_mask
+  dma_set_mask
+  dma_supported
+  dma_sync_sg_for_cpu
+  dma_sync_sg_for_device
+  dma_sync_single_for_cpu
+  dma_sync_single_for_device
+  dma_unmap_page_attrs
+  dma_unmap_sg_attrs
+  d_obtain_alias
+  do_exit
+  do_trace_netlink_extack
+  down
+  downgrade_write
+  down_interruptible
+  down_read
+  down_timeout
+  down_trylock
+  down_write
+  driver_create_file
+  driver_find
+  driver_register
+  driver_remove_file
+  driver_unregister
+  drm_atomic_get_crtc_state
+  drm_atomic_helper_async_commit
+  drm_atomic_helper_check
+  drm_atomic_helper_check_plane_state
+  drm_atomic_helper_cleanup_planes
+  drm_atomic_helper_commit
+  drm_atomic_helper_commit_cleanup_done
+  drm_atomic_helper_commit_tail
+  drm_atomic_helper_connector_destroy_state
+  drm_atomic_helper_connector_duplicate_state
+  drm_atomic_helper_connector_reset
+  drm_atomic_helper_crtc_destroy_state
+  drm_atomic_helper_crtc_duplicate_state
+  drm_atomic_helper_crtc_reset
+  drm_atomic_helper_disable_plane
+  drm_atomic_helper_page_flip
+  __drm_atomic_helper_plane_destroy_state
+  __drm_atomic_helper_plane_duplicate_state
+  drm_atomic_helper_prepare_planes
+  drm_atomic_helper_set_config
+  drm_atomic_helper_setup_commit
+  drm_atomic_helper_swap_state
+  drm_atomic_helper_update_plane
+  drm_atomic_helper_wait_for_dependencies
+  drm_atomic_helper_wait_for_fences
+  drm_atomic_state_default_clear
+  __drm_atomic_state_free
+  drm_compat_ioctl
+  drm_connector_attach_encoder
+  drm_connector_cleanup
+  drm_connector_init
+  drm_connector_list_iter_begin
+  drm_connector_list_iter_end
+  drm_connector_list_iter_next
+  drm_connector_register
+  drm_connector_unregister
+  drm_crtc_cleanup
+  drm_crtc_handle_vblank
+  drm_crtc_init_with_planes
+  drm_crtc_send_vblank_event
+  drm_crtc_vblank_off
+  drm_crtc_vblank_on
+  __drm_dbg
+  drm_dev_alloc
+  drm_dev_register
+  drm_display_mode_from_videomode
+  drm_encoder_cleanup
+  drm_encoder_init
+  __drm_err
+  drm_framebuffer_init
+  drm_gem_cma_vm_ops
+  drm_gem_fb_create_handle
+  drm_gem_fb_destroy
+  drm_gem_handle_create
+  drm_gem_mmap
+  drm_gem_mmap_obj
+  drm_gem_object_free
+  drm_gem_object_init
+  drm_gem_object_lookup
+  drm_gem_object_release
+  drm_gem_plane_helper_prepare_fb
+  drm_gem_vm_close
+  drm_get_format_info
+  drm_helper_mode_fill_fb_struct
+  drm_helper_probe_single_connector_modes
+  drm_ioctl
+  drmm_mode_config_init
+  drm_mode_config_cleanup
+  drm_mode_config_reset
+  drm_mode_create
+  drm_mode_crtc_set_gamma_size
+  drm_mode_object_find
+  drm_mode_probed_add
+  drm_object_attach_property
+  drm_open
+  drm_panel_add
+  drm_panel_get_modes
+  drm_panel_init
+  drm_panel_prepare
+  drm_plane_cleanup
+  drm_plane_create_zpos_property
+  drm_poll
+  drm_prime_gem_destroy
+  drm_property_blob_put
+  drm_property_create
+  drm_property_create_blob
+  drm_property_create_enum
+  drm_property_create_range
+  drm_property_create_signed_range
+  drm_property_lookup_blob
+  drm_read
+  drm_release
+  drm_self_refresh_helper_update_avg_times
+  drm_universal_plane_init
+  drm_vblank_init
+  d_splice_alias
+  dummy_irq_chip
+  dump_stack
+  enable_irq
+  end_buffer_read_sync
+  ether_setup
+  eth_header
+  eth_header_parse
+  eth_mac_addr
+  ethtool_op_get_link
+  eth_type_trans
+  eth_validate_addr
+  event_triggers_call
+  extcon_get_edev_by_phandle
+  extcon_get_state
+  extcon_set_state_sync
+  fasync_helper
+  fd_install
+  fget
+  _find_first_bit
+  find_get_pid
+  _find_next_bit
+  __find_vma
+  finish_wait
+  flush_dcache_page
+  flush_delayed_work
+  flush_work
+  flush_workqueue
+  follow_pfn
+  fput
+  frame_vector_to_pages
+  free_irq
+  free_netdev
+  __free_pages
+  free_pages
+  free_pages_exact
+  free_percpu
+  freezing_slow_path
+  freq_qos_update_request
+  fsync_bdev
+  full_name_hash
+  fwnode_handle_put
+  fwnode_property_present
+  fwnode_property_read_string
+  gcd
+  generic_error_remove_page
+  generic_fh_to_dentry
+  generic_fh_to_parent
+  generic_file_llseek
+  generic_file_mmap
+  generic_file_open
+  generic_file_read_iter
+  generic_file_splice_read
+  generic_handle_domain_irq
+  generic_handle_irq
+  generic_read_dir
+  genlmsg_multicast_allns
+  genlmsg_put
+  genl_register_family
+  genl_unregister_family
+  gen_pool_add_owner
+  gen_pool_alloc_algo_owner
+  gen_pool_avail
+  gen_pool_best_fit
+  gen_pool_create
+  gen_pool_destroy
+  gen_pool_dma_alloc
+  gen_pool_free_owner
+  gen_pool_get
+  gen_pool_set_algo
+  gen_pool_size
+  gen_pool_virt_to_phys
+  __getblk_gfp
+  get_cpu_device
+  get_cpu_idle_time_us
+  get_device
+  __get_free_pages
+  get_kernel_pages
+  get_net_ns_by_fd
+  get_net_ns_by_pid
+  get_random_bytes
+  get_random_u32
+  __get_task_comm
+  get_unused_fd_flags
+  get_user_pages
+  get_user_pages_fast
+  get_user_pages_locked
+  get_user_pages_remote
+  gic_nonsecure_priorities
+  gov_update_cpu_data
+  gpiochip_add_data_with_key
+  gpiochip_find
+  gpiochip_generic_free
+  gpiochip_generic_request
+  gpiochip_get_data
+  gpiochip_remove
+  gpiod_cansleep
+  gpiod_count
+  gpiod_direction_input
+  gpiod_direction_output
+  gpiod_direction_output_raw
+  gpiod_get_raw_value
+  gpiod_get_value
+  gpiod_get_value_cansleep
+  gpiod_is_active_low
+  gpiod_set_consumer_name
+  gpiod_set_debounce
+  gpiod_set_raw_value
+  gpiod_set_value
+  gpiod_set_value_cansleep
+  gpiod_to_irq
+  gpio_free
+  gpio_request
+  gpio_to_desc
+  handle_edge_irq
+  handle_fasteoi_irq
+  handle_simple_irq
+  handle_sysrq
+  hci_alloc_dev_priv
+  hci_free_dev
+  hci_recv_frame
+  hci_register_dev
+  hci_unregister_dev
+  hex_dump_to_buffer
+  hrtimer_active
+  hrtimer_cancel
+  hrtimer_forward
+  hrtimer_init
+  hrtimer_start_range_ns
+  hrtimer_try_to_cancel
+  __hw_addr_init
+  __hw_addr_sync
+  __hw_addr_unsync
+  hwspin_lock_free
+  hwspin_lock_get_id
+  hwspin_lock_request
+  hwspin_lock_request_specific
+  __hwspin_lock_timeout
+  __hwspin_trylock
+  __hwspin_unlock
+  i2c_adapter_type
+  i2c_add_adapter
+  i2c_add_numbered_adapter
+  i2c_bit_add_numbered_bus
+  i2c_bus_type
+  i2c_clients_command
+  i2c_del_adapter
+  i2c_del_driver
+  i2c_for_each_dev
+  i2c_get_adapter
+  i2c_get_dma_safe_msg_buf
+  i2c_new_client_device
+  i2c_new_dummy_device
+  i2c_put_adapter
+  i2c_put_dma_safe_msg_buf
+  i2c_register_driver
+  i2c_smbus_xfer
+  __i2c_transfer
+  i2c_transfer
+  i2c_transfer_buffer_flags
+  i2c_unregister_device
+  i2c_verify_client
+  ida_alloc_range
+  ida_destroy
+  ida_free
+  idr_alloc
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_get_next
+  idr_remove
+  iget5_locked
+  igrab
+  ihold
+  iio_device_alloc
+  iio_device_free
+  __iio_device_register
+  iio_device_unregister
+  iio_read_channel_processed
+  iio_read_channel_scale
+  inc_zone_page_state
+  in_egroup_p
+  inet_csk_get_port
+  init_net
+  init_pseudo
+  __init_rwsem
+  __init_swait_queue_head
+  init_timer_key
+  init_uts_ns
+  init_wait_entry
+  __init_waitqueue_head
+  inode_init_once
+  input_allocate_device
+  input_close_device
+  input_event
+  input_free_device
+  input_open_device
+  input_register_device
+  input_register_handle
+  input_register_handler
+  input_set_capability
+  input_unregister_device
+  input_unregister_handle
+  __insert_inode_hash
+  int_sqrt
+  invalidate_bh_lrus
+  iomem_resource
+  iommu_device_register
+  iommu_device_sysfs_add
+  iommu_device_sysfs_remove
+  iommu_device_unregister
+  iommu_fwspec_add_ids
+  iommu_fwspec_free
+  iommu_group_alloc
+  iommu_group_put
+  iommu_group_ref_get
+  iommu_present
+  __ioremap
+  ioremap_cache
+  io_schedule
+  iounmap
+  iput
+  irq_chip_ack_parent
+  irq_chip_eoi_parent
+  irqchip_fwnode_ops
+  irq_chip_mask_parent
+  irq_chip_set_affinity_parent
+  irq_chip_set_type_parent
+  irq_chip_set_vcpu_affinity_parent
+  irq_chip_unmask_parent
+  irq_dispose_mapping
+  __irq_domain_add
+  irq_domain_alloc_irqs_parent
+  irq_domain_create_hierarchy
+  irq_domain_free_irqs_common
+  irq_domain_free_irqs_parent
+  irq_domain_get_irq_data
+  irq_domain_remove
+  irq_domain_set_hwirq_and_chip
+  irq_domain_set_info
+  irq_find_matching_fwspec
+  irq_get_irq_data
+  irq_of_parse_and_map
+  __irq_resolve_mapping
+  irq_set_affinity_hint
+  irq_set_chained_handler_and_data
+  irq_set_chip_and_handler_name
+  irq_set_chip_data
+  irq_set_irq_type
+  irq_to_desc
+  is_bad_inode
+  is_vmalloc_addr
+  jiffies_64_to_clock_t
+  jiffies64_to_nsecs
+  jiffies
+  jiffies_to_msecs
+  jiffies_to_usecs
+  kasan_flag_enabled
+  kasprintf
+  kernel_kobj
+  kernel_param_lock
+  kernel_param_unlock
+  kernel_sendmsg
+  kernel_sigaction
+  kern_mount
+  kern_path
+  kern_unmount
+  key_create_or_update
+  key_put
+  keyring_alloc
+  __kfifo_alloc
+  __kfifo_free
+  __kfifo_in
+  __kfifo_in_r
+  __kfifo_out
+  __kfifo_out_r
+  __kfifo_to_user
+  kfree
+  kfree_sensitive
+  kfree_skb
+  kfree_skb_list
+  kill_anon_super
+  kill_block_super
+  kimage_voffset
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order_trace
+  kmem_cache_alloc
+  kmem_cache_alloc_trace
+  kmem_cache_create
+  kmem_cache_destroy
+  kmem_cache_free
+  kmemdup
+  kobject_create_and_add
+  kobject_del
+  kobject_init_and_add
+  kobject_put
+  kobject_uevent
+  kobj_sysfs_ops
+  krealloc
+  kstrdup
+  kstrtobool
+  kstrtobool_from_user
+  kstrtoint
+  kstrtoll
+  kstrtou16
+  kstrtou8
+  kstrtouint
+  kstrtouint_from_user
+  kstrtoull
+  kthread_bind
+  kthread_create_on_node
+  kthread_park
+  kthread_parkme
+  kthread_should_park
+  kthread_should_stop
+  kthread_stop
+  kthread_unpark
+  ktime_get
+  ktime_get_coarse_real_ts64
+  ktime_get_coarse_with_offset
+  ktime_get_mono_fast_ns
+  ktime_get_raw
+  ktime_get_raw_ts64
+  ktime_get_real_seconds
+  ktime_get_real_ts64
+  ktime_get_seconds
+  ktime_get_ts64
+  ktime_get_with_offset
+  kvfree
+  kvfree_call_rcu
+  kvmalloc_node
+  l2cap_is_socket
+  led_classdev_register_ext
+  led_classdev_unregister
+  led_init_default_state_get
+  __list_add_valid
+  __list_del_entry_valid
+  list_sort
+  load_nls
+  load_nls_default
+  __local_bh_enable_ip
+  __lock_buffer
+  __lock_page
+  lzo1x_1_compress
+  lzo1x_decompress_safe
+  make_bad_inode
+  mark_buffer_dirty
+  mbox_chan_received_data
+  mbox_free_channel
+  mbox_request_channel
+  mbox_send_message
+  media_create_intf_link
+  media_create_pad_link
+  media_create_pad_links
+  media_device_cleanup
+  media_device_init
+  __media_device_register
+  media_device_register_entity
+  media_device_register_entity_notify
+  media_device_unregister
+  media_device_unregister_entity
+  media_devnode_create
+  media_devnode_remove
+  media_entity_find_link
+  media_entity_pads_init
+  media_entity_remote_pad
+  media_get_pad_index
+  memchr
+  memcmp
+  memcpy
+  __memcpy_fromio
+  __memcpy_toio
+  memdup_user
+  memmove
+  memparse
+  memremap
+  memset64
+  memset
+  __memset_io
+  memstart_addr
+  memunmap
+  mii_ethtool_get_link_ksettings
+  mii_ethtool_set_link_ksettings
+  mii_nway_restart
+  misc_deregister
+  misc_register
+  __mmap_lock_do_trace_acquire_returned
+  __mmap_lock_do_trace_released
+  __mmap_lock_do_trace_start_locking
+  mmc_add_host
+  mmc_alloc_host
+  __mmc_claim_host
+  mmc_cqe_request_done
+  mmc_free_host
+  mmc_of_parse
+  mmc_release_host
+  mmc_remove_host
+  mmc_request_done
+  mmc_wait_for_req
+  __mmdrop
+  mod_delayed_work_on
+  mod_node_page_state
+  mod_timer
+  __module_get
+  module_layout
+  module_put
+  __module_put_and_exit
+  mount_bdev
+  __msecs_to_jiffies
+  msleep
+  msleep_interruptible
+  __mutex_init
+  mutex_is_locked
+  mutex_lock
+  mutex_lock_interruptible
+  mutex_trylock
+  mutex_unlock
+  napi_complete_done
+  napi_disable
+  napi_enable
+  napi_gro_flush
+  napi_gro_receive
+  __napi_schedule
+  __napi_schedule_irqoff
+  napi_schedule_prep
+  __netdev_alloc_skb
+  netdev_err
+  netdev_info
+  netdev_set_default_ethtool_ops
+  netif_carrier_off
+  netif_carrier_on
+  netif_napi_add
+  __netif_napi_del
+  netif_receive_skb
+  netif_receive_skb_list
+  netif_rx
+  netif_rx_ni
+  netif_tx_stop_all_queues
+  netif_tx_wake_queue
+  netlink_broadcast
+  netlink_register_notifier
+  netlink_unicast
+  netlink_unregister_notifier
+  net_ns_type_operations
+  net_ratelimit
+  new_inode
+  nla_find
+  nla_memcpy
+  __nla_parse
+  nla_put_64bit
+  nla_put
+  nla_put_nohdr
+  nla_reserve
+  nla_strscpy
+  __nla_validate
+  no_llseek
+  nonseekable_open
+  noop_llseek
+  nr_cpu_ids
+  ns_to_timespec64
+  __num_online_cpus
+  nvmem_device_read
+  of_address_to_resource
+  of_clk_add_provider
+  of_clk_get
+  of_clk_get_from_provider
+  of_clk_src_onecell_get
+  of_count_phandle_with_args
+  of_cpufreq_cooling_register
+  of_device_get_match_data
+  of_device_is_available
+  of_device_is_compatible
+  of_dma_configure_id
+  of_dma_is_coherent
+  of_drm_find_panel
+  of_find_compatible_node
+  of_find_device_by_node
+  of_find_matching_node_and_match
+  of_find_node_by_name
+  of_find_node_by_type
+  of_find_node_opts_by_path
+  of_find_node_with_property
+  of_find_property
+  of_fwnode_ops
+  of_get_child_by_name
+  of_get_mac_address
+  of_get_named_gpio_flags
+  of_get_next_available_child
+  of_get_next_child
+  of_get_next_parent
+  of_get_property
+  of_get_regulator_init_data
+  of_hwspin_lock_get_id
+  of_iomap
+  of_irq_find_parent
+  of_irq_get
+  of_irq_get_byname
+  of_irq_parse_and_map_pci
+  of_irq_parse_one
+  of_machine_is_compatible
+  of_match_device
+  of_match_node
+  of_parse_phandle
+  of_parse_phandle_with_args
+  of_parse_phandle_with_fixed_args
+  of_pci_get_devfn
+  of_pci_parse_bus_range
+  of_pci_range_parser_init
+  of_pci_range_parser_one
+  of_pci_range_to_resource
+  of_phandle_iterator_init
+  of_phandle_iterator_next
+  of_platform_depopulate
+  of_platform_populate
+  of_property_count_elems_of_size
+  of_property_match_string
+  of_property_read_string
+  of_property_read_string_helper
+  of_property_read_u32_index
+  of_property_read_u64
+  of_property_read_variable_u16_array
+  of_property_read_variable_u32_array
+  of_property_read_variable_u8_array
+  of_prop_next_string
+  of_prop_next_u32
+  of_reserved_mem_device_init_by_idx
+  of_reserved_mem_device_release
+  of_reserved_mem_lookup
+  of_thermal_get_ntrips
+  of_thermal_get_trip_points
+  of_translate_address
+  overflowgid
+  overflowuid
+  pagecache_get_page
+  page_endio
+  page_mapping
+  panic
+  panic_notifier_list
+  param_array_ops
+  param_get_int
+  param_ops_bool
+  param_ops_byte
+  param_ops_charp
+  param_ops_int
+  param_ops_short
+  param_ops_string
+  param_ops_uint
+  param_ops_ulong
+  param_ops_ushort
+  path_put
+  pci_add_resource
+  pci_add_resource_offset
+  pci_bus_add_devices
+  pci_bus_assign_resources
+  pci_bus_size_bridges
+  pci_common_swizzle
+  pcie_bus_configure_settings
+  pcie_capability_read_word
+  pci_free_resource_list
+  pci_generic_config_read32
+  pci_generic_config_write32
+  pci_get_device
+  pci_host_probe
+  pci_lock_rescan_remove
+  pci_msi_create_irq_domain
+  pci_msi_mask_irq
+  pci_msi_unmask_irq
+  pci_pio_to_address
+  pci_remap_iospace
+  pci_remove_root_bus
+  pci_scan_root_bus_bridge
+  pci_stop_root_bus
+  pci_unlock_rescan_remove
+  pci_unmap_iospace
+  PDE_DATA
+  __per_cpu_offset
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  pfn_is_map_memory
+  phy_exit
+  phy_init
+  phy_power_off
+  phy_power_on
+  phy_set_mode_ext
+  pid_task
+  pid_vnr
+  pinconf_generic_dump_config
+  pinctrl_count_index_with_args
+  pinctrl_dev_get_drvdata
+  pinctrl_enable
+  pinctrl_force_default
+  pinctrl_force_sleep
+  pinctrl_generic_add_group
+  pinctrl_generic_get_group_count
+  pinctrl_generic_get_group_name
+  pinctrl_generic_get_group_pins
+  pinctrl_generic_remove_group
+  pinctrl_lookup_state
+  pinctrl_parse_index_with_args
+  pinctrl_register_and_init
+  pinctrl_select_state
+  pinctrl_unregister
+  pinmux_generic_add_function
+  pinmux_generic_get_function
+  pinmux_generic_get_function_count
+  pinmux_generic_get_function_groups
+  pinmux_generic_get_function_name
+  pinmux_generic_remove_function
+  pin_user_pages
+  pin_user_pages_fast
+  pin_user_pages_remote
+  platform_bus_type
+  platform_device_add
+  platform_device_alloc
+  platform_device_del
+  platform_device_put
+  platform_device_register
+  platform_device_register_full
+  platform_device_unregister
+  __platform_driver_register
+  platform_driver_unregister
+  platform_find_device_by_driver
+  platform_get_irq
+  platform_get_resource
+  platform_get_resource_byname
+  __platform_register_drivers
+  platform_unregister_drivers
+  __pm_relax
+  __pm_runtime_disable
+  pm_runtime_enable
+  pm_runtime_force_resume
+  pm_runtime_force_suspend
+  __pm_runtime_idle
+  __pm_runtime_resume
+  __pm_runtime_set_status
+  __pm_runtime_suspend
+  __pm_stay_awake
+  pm_wakeup_ws_event
+  pm_wq
+  power_supply_changed
+  power_supply_register
+  power_supply_unregister
+  prandom_bytes
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait_event
+  print_hex_dump
+  _printk
+  __printk_ratelimit
+  proc_create
+  proc_create_data
+  proc_create_single_data
+  proc_mkdir
+  proc_remove
+  proc_set_user
+  proto_register
+  proto_unregister
+  pskb_expand_head
+  __pskb_pull_tail
+  ___pskb_trim
+  put_device
+  __put_net
+  __put_page
+  put_pid
+  __put_task_struct
+  put_unused_fd
+  pwm_apply_state
+  pwmchip_add
+  pwmchip_remove
+  pwm_free
+  pwm_request
+  queue_delayed_work_on
+  queue_work_on
+  radix_tree_lookup
+  ___ratelimit
+  _raw_read_lock
+  _raw_read_lock_irqsave
+  _raw_read_unlock
+  _raw_read_unlock_irqrestore
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irq
+  _raw_spin_lock_irqsave
+  _raw_spin_trylock
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irq
+  _raw_spin_unlock_irqrestore
+  _raw_write_lock
+  _raw_write_lock_bh
+  _raw_write_lock_irqsave
+  _raw_write_unlock
+  _raw_write_unlock_bh
+  _raw_write_unlock_irqrestore
+  rb_erase
+  rb_first
+  rb_insert_color
+  rb_next
+  rb_prev
+  rb_replace_node
+  rcu_barrier
+  __rcu_read_lock
+  __rcu_read_unlock
+  rdev_get_drvdata
+  read_cache_page
+  refcount_warn_saturate
+  __refrigerator
+  __register_blkdev
+  __register_chrdev
+  register_chrdev_region
+  register_filesystem
+  register_inet6addr_notifier
+  register_inetaddr_notifier
+  register_kprobe
+  register_netdev
+  register_netdevice
+  register_netdevice_notifier
+  register_oom_notifier
+  register_pernet_device
+  register_pm_notifier
+  register_reboot_notifier
+  __register_rpmsg_driver
+  register_shrinker
+  register_syscore_ops
+  register_virtio_driver
+  regmap_bulk_read
+  regmap_bulk_write
+  regmap_exit
+  __regmap_init_i2c
+  regmap_raw_read
+  regmap_raw_write
+  regmap_read
+  regmap_update_bits_base
+  regmap_write
+  regulator_disable
+  regulator_enable
+  regulator_get
+  regulator_get_optional
+  regulator_get_voltage
+  regulator_is_enabled
+  regulator_put
+  regulator_set_mode
+  regulator_set_voltage
+  regulator_set_voltage_time
+  release_firmware
+  __release_region
+  remap_pfn_range
+  remap_vmalloc_range
+  remove_proc_entry
+  remove_proc_subtree
+  remove_wait_queue
+  request_firmware
+  request_firmware_direct
+  request_firmware_nowait
+  __request_module
+  __request_region
+  request_threaded_irq
+  reset_control_assert
+  reset_control_deassert
+  rfkill_alloc
+  rfkill_blocked
+  rfkill_destroy
+  rfkill_register
+  rfkill_resume_polling
+  rfkill_set_hw_state_reason
+  rfkill_unregister
+  rhashtable_free_and_destroy
+  rhashtable_insert_slow
+  rhltable_init
+  __rht_bucket_nested
+  rht_bucket_nested
+  rht_bucket_nested_insert
+  round_jiffies
+  round_jiffies_relative
+  round_jiffies_up
+  rpmsg_create_channel
+  rpmsg_create_ept
+  rpmsg_find_device
+  rpmsg_register_device
+  rpmsg_release_channel
+  rpmsg_send
+  rpmsg_sendto
+  rpmsg_trysend
+  rpmsg_unregister_device
+  rproc_add
+  rproc_add_carveout
+  rproc_alloc
+  rproc_boot
+  rproc_da_to_va
+  rproc_del
+  rproc_free
+  rproc_get_by_child
+  rproc_mem_entry_init
+  rproc_of_resm_mem_entry_init
+  rproc_report_crash
+  rproc_shutdown
+  rproc_vq_interrupt
+  rtc_add_group
+  rtc_read_time
+  rtc_set_alarm
+  rtc_time64_to_tm
+  rtc_tm_to_time64
+  rtc_update_irq
+  rtc_valid_tm
+  rtnl_is_locked
+  rtnl_lock
+  rtnl_unlock
+  sb_min_blocksize
+  sb_set_blocksize
+  sched_clock
+  sched_set_fifo
+  sched_set_fifo_low
+  sched_set_normal
+  sched_setscheduler
+  schedule
+  schedule_hrtimeout
+  schedule_timeout
+  schedule_timeout_interruptible
+  scnprintf
+  seq_hex_dump
+  seq_lseek
+  seq_open
+  seq_printf
+  seq_putc
+  seq_puts
+  seq_read
+  seq_release
+  seq_write
+  serial8250_do_pm
+  serial8250_do_set_termios
+  serial8250_do_shutdown
+  serial8250_do_startup
+  serial8250_get_port
+  serial8250_modem_status
+  serial8250_register_8250_port
+  serial8250_resume_port
+  serial8250_rpm_get
+  serial8250_rpm_put
+  serial8250_rpm_put_tx
+  serial8250_rx_chars
+  serial8250_suspend_port
+  serial8250_tx_chars
+  serial8250_unregister_port
+  set_capacity
+  set_capacity_and_notify
+  set_cpus_allowed_ptr
+  set_freezable
+  set_nlink
+  set_page_dirty_lock
+  __SetPageMovable
+  set_user_nice
+  sg_alloc_table
+  sg_alloc_table_from_pages_segment
+  sg_free_table
+  sg_init_one
+  sg_init_table
+  sg_nents
+  sg_next
+  __sg_page_iter_next
+  __sg_page_iter_start
+  simple_attr_open
+  simple_attr_read
+  simple_attr_release
+  simple_attr_write
+  simple_open
+  simple_read_from_buffer
+  simple_strtol
+  simple_strtoul
+  single_open
+  single_release
+  sk_alloc
+  skb_add_rx_frag
+  skb_checksum_help
+  skb_clone
+  skb_clone_sk
+  skb_complete_wifi_ack
+  skb_copy
+  skb_copy_bits
+  skb_copy_expand
+  skb_dequeue
+  skb_dequeue_tail
+  skb_ensure_writable
+  __skb_get_hash
+  __skb_gso_segment
+  skb_pull
+  skb_pull_rcsum
+  skb_push
+  skb_put
+  skb_queue_head
+  skb_queue_purge
+  skb_queue_tail
+  skb_realloc_headroom
+  skb_trim
+  sk_free
+  skip_spaces
+  smp_call_function
+  snd_card_free
+  snd_card_new
+  snd_card_ref
+  snd_card_register
+  snd_card_rw_proc_new
+  snd_ctl_add
+  snd_ctl_boolean_mono_info
+  snd_ctl_find_id
+  snd_ctl_new1
+  snd_ctl_notify
+  snd_devm_card_new
+  snd_ecards_limit
+  snd_info_get_line
+  snd_interval_refine
+  snd_jack_set_key
+  snd_pcm_format_physical_width
+  snd_pcm_format_set_silence
+  snd_pcm_hw_constraint_integer
+  snd_pcm_hw_constraint_list
+  snd_pcm_hw_rule_add
+  snd_pcm_lib_ioctl
+  snd_pcm_new
+  snd_pcm_period_elapsed
+  snd_pcm_set_managed_buffer_all
+  snd_pcm_set_ops
+  snd_pcm_stop
+  snd_pcm_stop_xrun
+  _snd_pcm_stream_lock_irqsave
+  snd_pcm_stream_unlock_irqrestore
+  snd_soc_bytes_info_ext
+  snd_soc_bytes_tlv_callback
+  snd_soc_card_jack_new
+  snd_soc_info_enum_double
+  snd_soc_info_volsw
+  snd_soc_jack_report
+  snd_soc_of_parse_audio_routing
+  snd_soc_pm_ops
+  snd_soc_set_runtime_hwparams
+  snd_timer_close
+  snd_timer_instance_free
+  snd_timer_instance_new
+  snd_timer_open
+  snd_timer_start
+  snd_timer_stop
+  snprintf
+  __sock_create
+  sockfd_lookup
+  sock_init_data
+  sock_no_accept
+  sock_no_bind
+  sock_no_connect
+  sock_no_getname
+  sock_no_listen
+  sock_no_mmap
+  sock_no_recvmsg
+  sock_no_sendmsg
+  sock_no_shutdown
+  sock_no_socketpair
+  sock_release
+  __spi_alloc_controller
+  spi_finalize_current_message
+  spi_new_device
+  spi_register_controller
+  __spi_register_driver
+  spi_setup
+  spi_sync
+  spi_write_then_read
+  split_page
+  sprintf
+  sscanf
+  __stack_chk_fail
+  static_key_slow_dec
+  static_key_slow_inc
+  store_sampling_rate
+  stpcpy
+  strcasecmp
+  strcat
+  strchr
+  strcmp
+  strcpy
+  strcspn
+  stream_open
+  strim
+  strlcat
+  strlcpy
+  strlen
+  strncasecmp
+  strncat
+  strncmp
+  strncpy
+  strnlen
+  strnstr
+  strpbrk
+  strrchr
+  strscpy
+  strsep
+  strspn
+  strstr
+  submit_bh
+  suspend_set_ops
+  __sw_hweight16
+  __sw_hweight32
+  __sw_hweight64
+  __sw_hweight8
+  __symbol_get
+  __symbol_put
+  symbol_put_addr
+  sync_dirty_buffer
+  sync_file_create
+  sync_file_get_fence
+  sync_filesystem
+  synchronize_irq
+  synchronize_net
+  synchronize_rcu
+  syscon_node_to_regmap
+  sysfs_create_file_ns
+  sysfs_create_group
+  sysfs_create_groups
+  sysfs_create_link
+  sysfs_emit
+  sysfs_emit_at
+  __sysfs_match_string
+  sysfs_merge_group
+  sysfs_notify
+  sysfs_remove_file_ns
+  sysfs_remove_group
+  sysfs_remove_groups
+  sysfs_remove_link
+  sysfs_streq
+  sysfs_unmerge_group
+  sysfs_update_group
+  system_freezable_power_efficient_wq
+  system_freezable_wq
+  system_freezing_cnt
+  system_highpri_wq
+  system_power_efficient_wq
+  system_wq
+  __tasklet_hi_schedule
+  tasklet_init
+  tasklet_kill
+  __tasklet_schedule
+  tasklet_setup
+  tasklet_unlock_wait
+  thermal_cooling_device_unregister
+  thermal_of_cooling_device_register
+  thermal_zone_get_temp
+  thermal_zone_get_zone_by_name
+  time64_to_tm
+  _totalram_pages
+  trace_array_destroy
+  trace_array_get_by_name
+  trace_array_init_printk
+  trace_array_printk
+  __trace_bprintk
+  __trace_bputs
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_handle_return
+  __traceiter_gpu_mem_total
+  __traceiter_mmap_lock_acquire_returned
+  __traceiter_mmap_lock_released
+  __traceiter_mmap_lock_start_locking
+  trace_output_call
+  __tracepoint_gpu_mem_total
+  __tracepoint_mmap_lock_acquire_returned
+  __tracepoint_mmap_lock_released
+  __tracepoint_mmap_lock_start_locking
+  trace_print_array_seq
+  trace_print_flags_seq
+  trace_print_symbols_seq
+  __trace_puts
+  trace_raw_output_prep
+  truncate_inode_pages_final
+  try_module_get
+  __tty_alloc_driver
+  tty_driver_kref_put
+  tty_flip_buffer_push
+  tty_insert_flip_string_fixed_flag
+  tty_port_close
+  tty_port_hangup
+  tty_port_init
+  tty_port_install
+  tty_port_open
+  tty_port_put
+  tty_port_register_device
+  tty_port_tty_hangup
+  tty_register_driver
+  tty_std_termios
+  tty_termios_baud_rate
+  tty_termios_encode_baud_rate
+  tty_unregister_device
+  tty_unregister_driver
+  uart_get_baud_rate
+  uart_get_divisor
+  uart_write_wakeup
+  __ubsan_handle_cfi_check_fail_abort
+  __udelay
+  unload_nls
+  unlock_buffer
+  unlock_new_inode
+  unlock_page
+  unmap_mapping_range
+  unpin_user_page
+  unpin_user_pages
+  unregister_blkdev
+  __unregister_chrdev
+  unregister_chrdev_region
+  unregister_filesystem
+  unregister_inet6addr_notifier
+  unregister_inetaddr_notifier
+  unregister_netdev
+  unregister_netdevice_many
+  unregister_netdevice_notifier
+  unregister_netdevice_queue
+  unregister_oom_notifier
+  unregister_pernet_device
+  unregister_pm_notifier
+  unregister_reboot_notifier
+  unregister_rpmsg_driver
+  unregister_shrinker
+  unregister_syscore_ops
+  unregister_virtio_driver
+  up
+  update_devfreq
+  up_read
+  up_write
+  usb_add_gadget_udc
+  usb_add_hcd
+  usb_alloc_coherent
+  usb_alloc_urb
+  usb_anchor_empty
+  usb_anchor_urb
+  usb_autopm_get_interface
+  usb_autopm_put_interface
+  usb_bulk_msg
+  usb_control_msg
+  usb_create_hcd
+  usb_create_shared_hcd
+  usb_debug_root
+  usb_del_gadget_udc
+  usb_deregister
+  usb_disabled
+  usb_driver_claim_interface
+  usb_driver_release_interface
+  usb_ep_set_halt
+  usb_ep_set_maxpacket_limit
+  usb_free_coherent
+  usb_free_urb
+  usb_gadget_giveback_request
+  usb_gadget_map_request
+  usb_gadget_set_state
+  usb_gadget_unmap_request
+  usb_get_dev
+  usb_get_dr_mode
+  usb_hcd_is_primary_hcd
+  usb_hcd_poll_rh_status
+  usb_ifnum_to_if
+  usb_interrupt_msg
+  usb_kill_anchored_urbs
+  usb_kill_urb
+  usb_put_dev
+  usb_put_hcd
+  usb_register_driver
+  usb_remove_hcd
+  usb_reset_endpoint
+  usb_role_switch_get_drvdata
+  usb_role_switch_register
+  usb_role_switch_unregister
+  usb_set_interface
+  usb_speed_string
+  usb_string
+  usb_submit_urb
+  usb_unanchor_urb
+  usb_unlink_anchored_urbs
+  __usecs_to_jiffies
+  usleep_range_state
+  uuid_null
+  v4l2_ctrl_auto_cluster
+  v4l2_ctrl_handler_free
+  v4l2_ctrl_handler_init_class
+  v4l2_ctrl_handler_setup
+  v4l2_ctrl_new_custom
+  v4l2_ctrl_new_std
+  v4l2_ctrl_new_std_menu
+  v4l2_ctrl_poll
+  v4l2_ctrl_request_complete
+  v4l2_ctrl_request_setup
+  v4l2_ctrl_subdev_log_status
+  v4l2_ctrl_subscribe_event
+  v4l2_device_register
+  v4l2_device_register_subdev
+  v4l2_device_unregister
+  v4l2_device_unregister_subdev
+  v4l2_event_queue
+  v4l2_event_queue_fh
+  v4l2_event_subscribe
+  v4l2_event_unsubscribe
+  v4l2_fh_add
+  v4l2_fh_del
+  v4l2_fh_exit
+  v4l2_fh_init
+  v4l2_fh_is_singular
+  v4l2_i2c_subdev_init
+  v4l2_m2m_buf_copy_metadata
+  v4l2_m2m_buf_queue
+  v4l2_m2m_buf_remove
+  v4l2_m2m_ctx_init
+  v4l2_m2m_ctx_release
+  v4l2_m2m_dqbuf
+  v4l2_m2m_fop_mmap
+  v4l2_m2m_fop_poll
+  v4l2_m2m_get_vq
+  v4l2_m2m_init
+  v4l2_m2m_ioctl_create_bufs
+  v4l2_m2m_ioctl_dqbuf
+  v4l2_m2m_ioctl_expbuf
+  v4l2_m2m_ioctl_prepare_buf
+  v4l2_m2m_ioctl_qbuf
+  v4l2_m2m_ioctl_querybuf
+  v4l2_m2m_ioctl_reqbufs
+  v4l2_m2m_ioctl_streamoff
+  v4l2_m2m_ioctl_streamon
+  v4l2_m2m_job_finish
+  v4l2_m2m_next_buf
+  v4l2_m2m_qbuf
+  v4l2_m2m_querybuf
+  v4l2_m2m_register_media_controller
+  v4l2_m2m_release
+  v4l2_m2m_reqbufs
+  v4l2_m2m_request_queue
+  v4l2_m2m_streamoff
+  v4l2_m2m_streamon
+  v4l2_m2m_try_schedule
+  v4l2_m2m_unregister_media_controller
+  v4l2_spi_subdev_init
+  v4l2_src_change_event_subscribe
+  v4l2_subdev_init
+  v4l_bound_align_image
+  vabits_actual
+  vb2_buffer_done
+  vb2_common_vm_ops
+  vb2_core_dqbuf
+  vb2_core_expbuf
+  vb2_core_poll
+  vb2_core_qbuf
+  vb2_core_querybuf
+  vb2_core_queue_init
+  vb2_core_queue_release
+  vb2_core_reqbufs
+  vb2_core_streamoff
+  vb2_core_streamon
+  vb2_create_framevec
+  vb2_destroy_framevec
+  vb2_dma_contig_memops
+  vb2_dma_sg_memops
+  vb2_mmap
+  vb2_ops_wait_finish
+  vb2_ops_wait_prepare
+  vb2_plane_cookie
+  vb2_plane_vaddr
+  vb2_queue_init
+  vb2_queue_release
+  vb2_request_validate
+  vb2_streamoff
+  vb2_streamon
+  vb2_vmalloc_memops
+  verify_pkcs7_signature
+  vfree
+  vfs_llseek
+  video_devdata
+  video_device_alloc
+  video_device_release
+  video_ioctl2
+  videomode_from_timing
+  __video_register_device
+  video_unregister_device
+  virtio_check_driver_offered_feature
+  virtqueue_add_inbuf
+  virtqueue_add_outbuf
+  virtqueue_disable_cb
+  virtqueue_enable_cb
+  virtqueue_get_buf
+  virtqueue_get_vring_size
+  virtqueue_kick
+  virtqueue_kick_prepare
+  virtqueue_notify
+  __vmalloc
+  vmalloc
+  vmalloc_to_page
+  vmalloc_user
+  vmap
+  vmf_insert_pfn_prot
+  vm_iomap_memory
+  vm_map_pages
+  vm_map_ram
+  vm_unmap_ram
+  vscnprintf
+  vsnprintf
+  vsprintf
+  vunmap
+  vzalloc
+  wait_for_completion
+  wait_for_completion_interruptible
+  wait_for_completion_interruptible_timeout
+  wait_for_completion_timeout
+  __wait_on_buffer
+  wait_woken
+  __wake_up
+  wake_up_process
+  wakeup_source_register
+  wakeup_source_unregister
+  __warn_printk
+  watchdog_init_timeout
+  watchdog_register_device
+  watchdog_set_restart_priority
+  watchdog_unregister_device
+  wireless_nlevent_flush
+  wireless_send_event
+  woken_wake_function
+  ww_mutex_lock
+  ww_mutex_unlock
+  xhci_add_endpoint
+  xhci_check_bandwidth
+  xhci_drop_endpoint
+  xhci_gen_setup
+  xhci_get_endpoint_index
+  xhci_get_ep_ctx
+  xhci_init_driver
+  xhci_reset_bandwidth
+  xhci_resume
+  xhci_suspend
+  yield
+  zlib_deflate
+  zlib_deflateInit2
+  zlib_deflateReset
+  zlib_deflate_workspacesize
+  zlib_inflate_workspacesize
diff --git a/android/abi_gki_aarch64_oplus b/android/abi_gki_aarch64_oplus
new file mode 100644
index 0000000..3a8c695
--- /dev/null
+++ b/android/abi_gki_aarch64_oplus
@@ -0,0 +1,636 @@
+[abi_symbol_list]
+  address_space_init_once
+  add_timer
+  alloc_anon_inode
+  __alloc_pages
+  __alloc_percpu
+  alloc_workqueue
+  android_debug_symbol
+  arm64_const_caps_ready
+  autoremove_wake_function
+  bcmp
+  bio_add_page
+  bio_alloc_bioset
+  bio_associate_blkg
+  bio_chain
+  __bio_crypt_clone
+  bio_crypt_set_ctx
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_init
+  bio_put
+  bio_start_io_acct
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blk_cleanup_queue
+  blkdev_get_by_dev
+  blkdev_get_by_path
+  __blkdev_issue_discard
+  blkdev_issue_flush
+  blkdev_put
+  blk_finish_plug
+  blk_mq_queue_inflight
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_hw_sectors
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  blk_queue_write_cache
+  blk_start_plug
+  blk_status_to_errno
+  call_rcu
+  capable
+  cgroup_add_dfl_cftypes
+  cgroup_add_legacy_cftypes
+  __class_register
+  class_unregister
+  clear_page
+  __ClearPageMovable
+  complete
+  congestion_wait
+  contig_page_data
+  copy_from_kernel_nofault
+  cpufreq_update_util_data
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  cpu_hwcap_keys
+  cpumask_next
+  __cpu_online_mask
+  __cpu_possible_mask
+  crypto_alloc_base
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_destroy_tfm
+  crypto_has_alg
+  debugfs_create_dir
+  debugfs_create_file
+  dec_zone_page_state
+  default_llseek
+  delayed_work_timer_fn
+  del_gendisk
+  del_timer
+  del_timer_sync
+  destroy_workqueue
+  dev_get_by_index_rcu
+  device_add_disk
+  devres_destroy
+  disk_end_io_acct
+  disk_start_io_acct
+  do_traversal_all_lruvec
+  down
+  downgrade_write
+  down_read
+  down_write
+  d_path
+  dput
+  dump_stack
+  eventfd_ctx_fileget
+  eventfd_signal
+  file_path
+  filp_close
+  filp_open_block
+  find_task_by_vpid
+  finish_wait
+  flush_dcache_page
+  flush_work
+  fput
+  __free_pages
+  free_pages
+  free_percpu
+  fs_bio_set
+  fsync_bdev
+  genlmsg_put
+  genl_register_family
+  genl_unregister_family
+  get_each_dmabuf
+  get_each_object_track
+  __get_free_pages
+  get_random_bytes
+  get_slabinfo
+  get_task_mm
+  get_user_pages_remote
+  get_wchan
+  idr_alloc
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_remove
+  inc_zone_page_state
+  in_egroup_p
+  __inet6_lookup_established
+  inet_csk_get_port
+  __inet_lookup_established
+  init_net
+  init_on_free
+  init_pseudo
+  __init_rwsem
+  init_task
+  init_timer_key
+  init_user_ns
+  init_wait_entry
+  __init_waitqueue_head
+  io_schedule
+  iov_iter_advance
+  ip6_local_out
+  ip6_route_me_harder
+  ip_local_deliver
+  ip_local_out
+  ip_route_me_harder
+  iput
+  ipv6_find_hdr
+  ipv6_skip_exthdr
+  is_dma_buf_file
+  iterate_fd
+  jiffies_64
+  jiffies
+  jiffies_to_msecs
+  kasan_flag_enabled
+  kasprintf
+  kern_mount
+  kern_unmount
+  kfree
+  kfree_skb
+  kill_anon_super
+  kmalloc_caches
+  kmem_cache_alloc
+  kmem_cache_alloc_bulk
+  kmem_cache_alloc_trace
+  kmem_cache_create
+  kmem_cache_create_usercopy
+  kmem_cache_destroy
+  kmem_cache_free
+  kmem_cache_free_bulk
+  kmem_cache_shrink
+  kobject_create_and_add
+  kobject_put
+  ksize
+  kstrdup
+  kstrtobool
+  kstrtoint
+  kstrtoint_from_user
+  kstrtou16
+  kstrtouint
+  kstrtouint_from_user
+  kstrtoull
+  kswapd
+  kthread_create_on_node
+  kthread_should_stop
+  kthread_stop
+  ktime_get
+  ktime_get_coarse_real_ts64
+  ktime_get_raw_ts64
+  ktime_get_real_ts64
+  kvfree
+  __list_add_valid
+  __list_del_entry_valid
+  __lock_page
+  match_string
+  mem_cgroup_from_id
+  memchr_inv
+  memcmp
+  memcpy
+  memmove
+  memory_cgrp_subsys
+  memory_cgrp_subsys_enabled_key
+  memparse
+  memset64
+  memset
+  memstart_addr
+  migrate_page_copy
+  misc_deregister
+  misc_register
+  mmput
+  mod_node_page_state
+  mod_timer
+  module_layout
+  msleep
+  __mutex_init
+  mutex_is_locked
+  mutex_lock
+  mutex_trylock
+  mutex_unlock
+  nf_ct_attach
+  nf_ct_delete
+  nf_register_net_hook
+  nf_register_net_hooks
+  nf_unregister_net_hook
+  nf_unregister_net_hooks
+  nla_find
+  nla_memcpy
+  __nla_parse
+  nla_put_64bit
+  nla_put
+  nla_reserve_64bit
+  nla_reserve
+  nonseekable_open
+  nr_cpu_ids
+  __num_online_cpus
+  of_css
+  page_endio
+  __page_file_index
+  __page_mapcount
+  page_mapping
+  page_referenced
+  page_to_lruvec
+  param_ops_uint
+  __per_cpu_offset
+  platform_device_add
+  platform_device_alloc
+  platform_device_put
+  platform_driver_unregister
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait
+  prepare_to_wait_event
+  prepare_to_wait_exclusive
+  print_hex_dump
+  _printk
+  proc_create
+  proc_create_data
+  proc_mkdir
+  proc_remove
+  public_key_verify_signature
+  put_disk
+  __put_page
+  __put_task_struct
+  queue_delayed_work_on
+  queue_work_on
+  radix_tree_delete
+  radix_tree_delete_item
+  radix_tree_insert
+  radix_tree_lookup
+  radix_tree_lookup_slot
+  radix_tree_next_chunk
+  radix_tree_preload
+  radix_tree_replace_slot
+  _raw_read_lock
+  _raw_read_unlock
+  _raw_spin_lock
+  _raw_spin_lock_irqsave
+  _raw_spin_unlock
+  _raw_spin_unlock_irqrestore
+  _raw_write_lock
+  _raw_write_unlock
+  __rcu_read_lock
+  __rcu_read_unlock
+  reclaim_pages
+  __register_blkdev
+  register_memory_notifier
+  register_reboot_notifier
+  register_shrinker
+  register_sysctl_table
+  register_tcf_proto_ops
+  remove_proc_subtree
+  root_mem_cgroup
+  rtc_read_alarm
+  __rtnl_link_unregister
+  sched_clock
+  sched_setscheduler_nocheck
+  sched_show_task
+  schedule
+  schedule_timeout
+  scnprintf
+  sdio_writeb_readb
+  seq_lseek
+  seq_open
+  __seq_open_private
+  seq_open_private
+  seq_printf
+  seq_putc
+  seq_puts
+  seq_read
+  seq_release
+  seq_release_private
+  seq_write
+  set_blocksize
+  set_capacity
+  set_capacity_and_notify
+  set_cpus_allowed_ptr
+  set_freezable
+  set_page_dirty
+  __SetPageMovable
+  set_user_nice
+  shrink_slab
+  si_mem_available
+  simple_open
+  simple_read_from_buffer
+  single_open
+  single_release
+  si_swapinfo
+  __skb_checksum_complete
+  skb_dump
+  snprintf
+  sort
+  sprintf
+  sscanf
+  __stack_chk_fail
+  stack_depot_fetch
+  stack_depot_save
+  stack_trace_save
+  strcmp
+  strcpy
+  strlcpy
+  strlen
+  strncmp
+  strncpy
+  strnlen
+  strsep
+  strstr
+  submit_bio
+  submit_bio_wait
+  sysfs_create_files
+  __sysfs_match_string
+  sysfs_remove_files
+  sysfs_streq
+  system_freezable_wq
+  system_unbound_wq
+  system_wq
+  sys_tz
+  task_active_pid_ns
+  tcf_action_exec
+  tcf_exts_destroy
+  tcf_exts_dump
+  tcf_exts_dump_stats
+  tcf_exts_validate
+  tcf_queue_work
+  tcp_hashinfo
+  time64_to_tm
+  timespec64_to_jiffies
+  __traceiter_android_rvh_check_preempt_wakeup_ignore
+  __traceiter_android_rvh_do_serror
+  __traceiter_android_rvh_pick_next_entity
+  __traceiter_android_rvh_place_entity
+  __traceiter_android_rvh_rtmutex_force_update
+  __traceiter_android_rvh_schedule
+  __traceiter_android_rvh_set_balance_anon_file_reclaim
+  __traceiter_android_rvh_set_user_nice
+  __traceiter_android_vh_account_task_time
+  __traceiter_android_vh_add_page_to_lrulist
+  __traceiter_android_vh_alloc_pages_slowpath
+  __traceiter_android_vh_binder_del_ref
+  __traceiter_android_vh_binder_free_proc
+  __traceiter_android_vh_binder_has_work_ilocked
+  __traceiter_android_vh_binder_looper_state_registered
+  __traceiter_android_vh_binder_new_ref
+  __traceiter_android_vh_binder_preset
+  __traceiter_android_vh_binder_priority_skip
+  __traceiter_android_vh_binder_proc_transaction
+  __traceiter_android_vh_binder_proc_transaction_entry
+  __traceiter_android_vh_binder_proc_transaction_finish
+  __traceiter_android_vh_binder_read_done
+  __traceiter_android_vh_binder_select_worklist_ilocked
+  __traceiter_android_vh_binder_thread_read
+  __traceiter_android_vh_binder_thread_release
+  __traceiter_android_vh_blk_account_io_done
+  __traceiter_android_vh_build_sched_domains
+  __traceiter_android_vh_cache_show
+  __traceiter_android_vh_check_uninterruptible_tasks_dn
+  __traceiter_android_vh_cleanup_old_buffers_bypass
+  __traceiter_android_vh_cma_drain_all_pages_bypass
+  __traceiter_android_vh_compact_finished
+  __traceiter_android_vh_check_page_look_around_ref
+  __traceiter_android_vh_alloc_pages_reclaim_bypass
+  __traceiter_android_vh_free_unref_page_bypass
+  __traceiter_android_vh_kvmalloc_node_use_vmalloc
+  __traceiter_android_vh_should_alloc_pages_retry
+  __traceiter_android_vh_unreserve_highatomic_bypass
+  __traceiter_android_vh_rmqueue_bulk_bypass
+  __traceiter_android_vh_tune_mmap_readaround
+  __traceiter_android_vh_ra_tuning_max_page
+  __traceiter_android_vh_cpufreq_acct_update_power
+  __traceiter_android_vh_del_page_from_lrulist
+  __traceiter_android_vh_do_futex
+  __traceiter_android_vh_do_page_trylock
+  __traceiter_android_vh_do_traversal_lruvec
+  __traceiter_android_vh_dm_bufio_shrink_scan_bypass
+  __traceiter_android_vh_drain_all_pages_bypass
+  __traceiter_android_vh_dup_task_struct
+  __traceiter_android_vh_exit_mm
+  __traceiter_android_vh_exit_signal
+  __traceiter_android_vh_free_task
+  __traceiter_android_vh_futex_sleep_start
+  __traceiter_android_vh_futex_wait_end
+  __traceiter_android_vh_futex_wait_start
+  __traceiter_android_vh_futex_wake_this
+  __traceiter_android_vh_futex_wake_traverse_plist
+  __traceiter_android_vh_futex_wake_up_q_finish
+  __traceiter_android_vh_handle_failed_page_trylock
+  __traceiter_android_vh_irqtime_account_process_tick
+  __traceiter_android_vh_killed_process
+  __traceiter_android_vh_kmalloc_slab
+  __traceiter_android_vh_look_around
+  __traceiter_android_vh_look_around_migrate_page
+  __traceiter_android_vh_madvise_cold_or_pageout_abort
+  __traceiter_android_vh_mark_page_accessed
+  __traceiter_android_vh_mem_cgroup_alloc
+  __traceiter_android_vh_mem_cgroup_css_offline
+  __traceiter_android_vh_mem_cgroup_css_online
+  __traceiter_android_vh_mem_cgroup_free
+  __traceiter_android_vh_mem_cgroup_id_remove
+  __traceiter_android_vh_meminfo_proc_show
+  __traceiter_android_vh_modify_thermal_cpu_get_power
+  __traceiter_android_vh_mutex_can_spin_on_owner
+  __traceiter_android_vh_mutex_init
+  __traceiter_android_vh_mutex_opt_spin_finish
+  __traceiter_android_vh_mutex_opt_spin_start
+  __traceiter_android_vh_page_referenced_check_bypass
+  __traceiter_android_vh_page_should_be_protected
+  __traceiter_android_vh_page_trylock_clear
+  __traceiter_android_vh_page_trylock_get_result
+  __traceiter_android_vh_page_trylock_set
+  __traceiter_android_vh_pcplist_add_cma_pages_bypass
+  __traceiter_android_vh_print_slabinfo_header
+  __traceiter_android_vh_record_mutex_lock_starttime
+  __traceiter_android_vh_record_pcpu_rwsem_starttime
+  __traceiter_android_vh_record_rtmutex_lock_starttime
+  __traceiter_android_vh_record_rwsem_lock_starttime
+  __traceiter_android_vh_rmqueue
+  __traceiter_android_vh_rtmutex_waiter_prio
+  __traceiter_android_vh_rwsem_can_spin_on_owner
+  __traceiter_android_vh_rwsem_opt_spin_finish
+  __traceiter_android_vh_rwsem_opt_spin_start
+  __traceiter_android_vh_rwsem_wake_finish
+  __traceiter_android_vh_save_track_hash
+  __traceiter_android_vh_sched_show_task
+  __traceiter_android_vh_sched_stat_runtime_rt
+  __traceiter_android_vh_show_mapcount_pages
+  __traceiter_android_vh_sync_txn_recvd
+  __traceiter_android_vh_task_blocks_on_rtmutex
+  __traceiter_android_vh_tune_inactive_ratio
+  __traceiter_android_vh_tune_scan_type
+  __traceiter_android_vh_tune_swappiness
+  __traceiter_android_vh_test_clear_look_around_ref
+  __traceiter_android_vh_update_page_mapcount
+  __traceiter_block_bio_complete
+  __traceiter_block_bio_queue
+  __traceiter_block_getrq
+  __traceiter_block_rq_issue
+  __traceiter_block_rq_merge
+  __traceiter_block_rq_requeue
+  __traceiter_block_split
+  __traceiter_mm_vmscan_direct_reclaim_begin
+  __traceiter_net_dev_queue
+  __traceiter_net_dev_xmit
+  __traceiter_netif_receive_skb
+  __traceiter_netif_rx
+  __traceiter_sched_stat_blocked
+  __traceiter_sched_stat_iowait
+  __traceiter_sched_stat_runtime
+  __traceiter_sched_stat_sleep
+  __traceiter_sched_stat_wait
+  __traceiter_sched_waking
+  __traceiter_task_rename
+  __tracepoint_android_rvh_check_preempt_wakeup_ignore
+  __tracepoint_android_rvh_do_serror
+  __tracepoint_android_rvh_pick_next_entity
+  __tracepoint_android_rvh_place_entity
+  __tracepoint_android_rvh_rtmutex_force_update
+  __tracepoint_android_rvh_schedule
+  __tracepoint_android_rvh_set_balance_anon_file_reclaim
+  __tracepoint_android_rvh_set_user_nice
+  __tracepoint_android_vh_account_task_time
+  __tracepoint_android_vh_add_page_to_lrulist
+  __tracepoint_android_vh_alloc_pages_slowpath
+  __tracepoint_android_vh_binder_del_ref
+  __tracepoint_android_vh_binder_free_proc
+  __tracepoint_android_vh_binder_has_work_ilocked
+  __tracepoint_android_vh_binder_looper_state_registered
+  __tracepoint_android_vh_binder_new_ref
+  __tracepoint_android_vh_binder_preset
+  __tracepoint_android_vh_binder_priority_skip
+  __tracepoint_android_vh_binder_proc_transaction
+  __tracepoint_android_vh_binder_proc_transaction_entry
+  __tracepoint_android_vh_binder_proc_transaction_finish
+  __tracepoint_android_vh_binder_read_done
+  __tracepoint_android_vh_binder_select_worklist_ilocked
+  __tracepoint_android_vh_binder_thread_read
+  __tracepoint_android_vh_binder_thread_release
+  __tracepoint_android_vh_blk_account_io_done
+  __tracepoint_android_vh_build_sched_domains
+  __tracepoint_android_vh_cache_show
+  __tracepoint_android_vh_check_uninterruptible_tasks_dn
+  __tracepoint_android_vh_cleanup_old_buffers_bypass
+  __tracepoint_android_vh_cma_drain_all_pages_bypass
+  __tracepoint_android_vh_compact_finished
+  __tracepoint_android_vh_check_page_look_around_ref
+  __tracepoint_android_vh_alloc_pages_reclaim_bypass
+  __tracepoint_android_vh_free_unref_page_bypass
+  __tracepoint_android_vh_kvmalloc_node_use_vmalloc
+  __tracepoint_android_vh_should_alloc_pages_retry
+  __tracepoint_android_vh_unreserve_highatomic_bypass
+  __tracepoint_android_vh_rmqueue_bulk_bypass
+  __tracepoint_android_vh_tune_mmap_readaround
+  __tracepoint_android_vh_ra_tuning_max_page
+  __tracepoint_android_vh_cpufreq_acct_update_power
+  __tracepoint_android_vh_del_page_from_lrulist
+  __tracepoint_android_vh_dm_bufio_shrink_scan_bypass
+  __tracepoint_android_vh_do_futex
+  __tracepoint_android_vh_do_page_trylock
+  __tracepoint_android_vh_do_traversal_lruvec
+  __tracepoint_android_vh_drain_all_pages_bypass
+  __tracepoint_android_vh_dup_task_struct
+  __tracepoint_android_vh_exit_mm
+  __tracepoint_android_vh_exit_signal
+  __tracepoint_android_vh_free_task
+  __tracepoint_android_vh_futex_sleep_start
+  __tracepoint_android_vh_futex_wait_end
+  __tracepoint_android_vh_futex_wait_start
+  __tracepoint_android_vh_futex_wake_this
+  __tracepoint_android_vh_futex_wake_traverse_plist
+  __tracepoint_android_vh_futex_wake_up_q_finish
+  __tracepoint_android_vh_handle_failed_page_trylock
+  __tracepoint_android_vh_irqtime_account_process_tick
+  __tracepoint_android_vh_killed_process
+  __tracepoint_android_vh_kmalloc_slab
+  __tracepoint_android_vh_look_around
+  __tracepoint_android_vh_look_around_migrate_page
+  __tracepoint_android_vh_madvise_cold_or_pageout_abort
+  __tracepoint_android_vh_mark_page_accessed
+  __tracepoint_android_vh_mem_cgroup_alloc
+  __tracepoint_android_vh_mem_cgroup_css_offline
+  __tracepoint_android_vh_mem_cgroup_css_online
+  __tracepoint_android_vh_mem_cgroup_free
+  __tracepoint_android_vh_mem_cgroup_id_remove
+  __tracepoint_android_vh_meminfo_proc_show
+  __tracepoint_android_vh_modify_thermal_cpu_get_power
+  __tracepoint_android_vh_mutex_can_spin_on_owner
+  __tracepoint_android_vh_mutex_init
+  __tracepoint_android_vh_mutex_opt_spin_finish
+  __tracepoint_android_vh_mutex_opt_spin_start
+  __tracepoint_android_vh_page_referenced_check_bypass
+  __tracepoint_android_vh_page_should_be_protected
+  __tracepoint_android_vh_page_trylock_clear
+  __tracepoint_android_vh_page_trylock_get_result
+  __tracepoint_android_vh_page_trylock_set
+  __tracepoint_android_vh_pcplist_add_cma_pages_bypass
+  __tracepoint_android_vh_print_slabinfo_header
+  __tracepoint_android_vh_record_mutex_lock_starttime
+  __tracepoint_android_vh_record_pcpu_rwsem_starttime
+  __tracepoint_android_vh_record_rtmutex_lock_starttime
+  __tracepoint_android_vh_record_rwsem_lock_starttime
+  __tracepoint_android_vh_rmqueue
+  __tracepoint_android_vh_rtmutex_waiter_prio
+  __tracepoint_android_vh_rwsem_can_spin_on_owner
+  __tracepoint_android_vh_rwsem_opt_spin_finish
+  __tracepoint_android_vh_rwsem_opt_spin_start
+  __tracepoint_android_vh_rwsem_wake_finish
+  __tracepoint_android_vh_save_track_hash
+  __tracepoint_android_vh_sched_show_task
+  __tracepoint_android_vh_sched_stat_runtime_rt
+  __tracepoint_android_vh_show_mapcount_pages
+  __tracepoint_android_vh_sync_txn_recvd
+  __tracepoint_android_vh_task_blocks_on_rtmutex
+  __tracepoint_android_vh_tune_inactive_ratio
+  __tracepoint_android_vh_tune_scan_type
+  __tracepoint_android_vh_tune_swappiness
+  __tracepoint_android_vh_test_clear_look_around_ref
+  __tracepoint_android_vh_update_page_mapcount
+  __tracepoint_block_bio_complete
+  __tracepoint_block_bio_queue
+  __tracepoint_block_getrq
+  __tracepoint_block_rq_issue
+  __tracepoint_block_rq_merge
+  __tracepoint_block_rq_requeue
+  __tracepoint_block_split
+  __tracepoint_mm_vmscan_direct_reclaim_begin
+  __tracepoint_net_dev_queue
+  __tracepoint_net_dev_xmit
+  __tracepoint_netif_receive_skb
+  __tracepoint_netif_rx
+  __tracepoint_sched_stat_blocked
+  __tracepoint_sched_stat_iowait
+  __tracepoint_sched_stat_runtime
+  __tracepoint_sched_stat_sleep
+  __tracepoint_sched_stat_wait
+  __tracepoint_sched_waking
+  __tracepoint_task_rename
+  try_to_free_mem_cgroup_pages
+  __ubsan_handle_cfi_check_fail_abort
+  unlock_page
+  unregister_blkdev
+  unregister_memory_notifier
+  unregister_net_sysctl_table
+  unregister_reboot_notifier
+  unregister_shrinker
+  unregister_sysctl_table
+  unregister_tcf_proto_ops
+  up
+  up_read
+  up_write
+  vfree
+  vmalloc
+  vmalloc_nr_pages
+  vsnprintf
+  vzalloc
+  wait_for_completion_io_timeout
+  __wake_up
+  wake_up_process
+  wq_worker_comm
+  is_ashmem_file
+  zero_pfn
diff --git a/android/abi_gki_aarch64_pasa b/android/abi_gki_aarch64_pasa
new file mode 100644
index 0000000..897500b
--- /dev/null
+++ b/android/abi_gki_aarch64_pasa
@@ -0,0 +1,18 @@
+
+[abi_symbol_list]
+  hid_add_device
+  hid_allocate_device
+  hid_alloc_report_buf
+  hid_destroy_device
+  hid_hw_start
+  hid_hw_stop
+  hidinput_calc_abs_res
+  hid_input_report
+  hid_open_report
+  hid_parse_report
+  __hid_register_driver
+  hid_report_raw_event
+  __hid_request
+  hid_unregister_driver
+  iio_trigger_generic_data_rdy_poll
+  input_device_enabled
diff --git a/android/abi_gki_aarch64_pixel b/android/abi_gki_aarch64_pixel
new file mode 100644
index 0000000..06b013e7
--- /dev/null
+++ b/android/abi_gki_aarch64_pixel
@@ -0,0 +1,2252 @@
+[abi_symbol_list]
+  add_cpu
+  add_timer
+  add_timer_on
+  add_wait_queue
+  adjust_managed_page_count
+  alarm_cancel
+  alarm_init
+  alarm_start_relative
+  alarmtimer_get_rtcdev
+  alarm_try_to_cancel
+  alloc_anon_inode
+  alloc_chrdev_region
+  alloc_etherdev_mqs
+  alloc_netdev_mqs
+  __alloc_pages
+  alloc_pages_exact
+  __alloc_percpu
+  __alloc_percpu_gfp
+  __alloc_skb
+  alloc_workqueue
+  amba_driver_register
+  amba_driver_unregister
+  android_debug_symbol
+  android_kmalloc_64_create
+  android_rvh_probe_register
+  anon_inode_getfd
+  arc4_crypt
+  arc4_setkey
+  __arch_clear_user
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arch_timer_read_counter
+  argv_free
+  argv_split
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  __arm_smccc_smc
+  async_schedule_node_domain
+  async_synchronize_full_domain
+  atomic_notifier_call_chain
+  atomic_notifier_chain_register
+  atomic_notifier_chain_unregister
+  autoremove_wake_function
+  available_idle_cpu
+  backlight_device_set_brightness
+  balance_push_callback
+  bcmp
+  bin2hex
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_start_io_acct
+  __bitmap_clear
+  __bitmap_equal
+  bitmap_from_arr32
+  bitmap_parse
+  bitmap_parselist
+  bitmap_print_to_pagebuf
+  bitmap_to_arr32
+  __bitmap_weight
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blk_execute_rq_nowait
+  blk_get_request
+  blk_put_request
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  blk_rq_map_user
+  blk_rq_map_user_iov
+  blk_rq_unmap_user
+  blocking_notifier_call_chain
+  blocking_notifier_chain_register
+  blocking_notifier_chain_unregister
+  bpf_trace_run10
+  bpf_trace_run11
+  bpf_trace_run12
+  bpf_trace_run1
+  bpf_trace_run2
+  bpf_trace_run3
+  bpf_trace_run4
+  bpf_trace_run5
+  bpf_trace_run6
+  bpf_trace_run7
+  bpf_trace_run8
+  bpf_trace_run9
+  build_skb
+  bus_find_device
+  bus_for_each_dev
+  bus_for_each_drv
+  bus_register
+  bus_register_notifier
+  bus_set_iommu
+  bus_unregister
+  bus_unregister_notifier
+  cache_line_size
+  call_rcu
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  cancel_work_sync
+  capable
+  cdev_add
+  cdev_alloc
+  cdev_del
+  cdev_device_add
+  cdev_device_del
+  cdev_init
+  __cfi_slowpath_diag
+  __check_object_size
+  __class_create
+  class_destroy
+  class_interface_unregister
+  __class_register
+  class_unregister
+  clear_page
+  __ClearPageMovable
+  clk_disable
+  clk_enable
+  clk_get
+  __clk_get_hw
+  __clk_get_name
+  clk_get_rate
+  clk_hw_get_name
+  clk_hw_get_parent
+  __clk_is_enabled
+  clk_prepare
+  clk_put
+  clk_register
+  clk_register_clkdev
+  clk_register_fixed_factor
+  clk_register_fixed_rate
+  clk_register_gate
+  clk_set_rate
+  clk_unprepare
+  clockevents_config_and_register
+  clocks_calc_mult_shift
+  __clocksource_register_scale
+  cma_alloc
+  cma_for_each_area
+  cma_get_name
+  cma_release
+  compat_ptr_ioctl
+  complete
+  complete_all
+  complete_and_exit
+  completion_done
+  component_add
+  component_bind_all
+  component_del
+  component_master_add_with_match
+  component_master_del
+  component_match_add_release
+  component_unbind_all
+  config_ep_by_speed
+  config_group_init_type_name
+  console_set_on_cmdline
+  console_suspend_enabled
+  console_trylock
+  console_unlock
+  __const_udelay
+  consume_skb
+  contig_page_data
+  _copy_from_iter
+  _copy_to_iter
+  __cpu_active_mask
+  cpu_all_bits
+  cpu_bit_bitmap
+  cpufreq_add_update_util_hook
+  cpufreq_cpu_get
+  cpufreq_cpu_get_raw
+  cpufreq_cpu_put
+  cpufreq_disable_fast_switch
+  cpufreq_driver_fast_switch
+  cpufreq_driver_resolve_freq
+  __cpufreq_driver_target
+  cpufreq_driver_target
+  cpufreq_enable_fast_switch
+  cpufreq_freq_transition_begin
+  cpufreq_freq_transition_end
+  cpufreq_frequency_table_verify
+  cpufreq_generic_attr
+  cpufreq_get
+  cpufreq_policy_transition_delay_us
+  cpufreq_quick_get
+  cpufreq_register_driver
+  cpufreq_register_governor
+  cpufreq_register_notifier
+  cpufreq_remove_update_util_hook
+  cpufreq_table_index_unsorted
+  cpufreq_this_cpu_can_update
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  __cpuhp_setup_state_cpuslocked
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  cpuhp_tasks_frozen
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpu_latency_qos_add_request
+  cpu_latency_qos_remove_request
+  cpu_latency_qos_update_request
+  cpumask_any_but
+  cpumask_next
+  cpumask_next_and
+  cpumask_next_wrap
+  cpu_number
+  __cpu_online_mask
+  cpu_pm_register_notifier
+  __cpu_possible_mask
+  cpupri_find_fitness
+  cpu_scale
+  cpus_read_lock
+  cpus_read_unlock
+  cpu_subsys
+  crc32_be
+  crc32_le
+  crc8
+  crc8_populate_msb
+  crypto_aead_decrypt
+  crypto_aead_encrypt
+  crypto_aead_setauthsize
+  crypto_aead_setkey
+  crypto_alloc_aead
+  crypto_alloc_base
+  crypto_alloc_shash
+  crypto_alloc_skcipher
+  crypto_alloc_sync_skcipher
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_destroy_tfm
+  crypto_has_alg
+  __crypto_memneq
+  crypto_req_done
+  crypto_shash_digest
+  crypto_shash_finup
+  crypto_shash_setkey
+  crypto_shash_update
+  crypto_skcipher_decrypt
+  crypto_skcipher_encrypt
+  crypto_skcipher_setkey
+  __crypto_xor
+  csum_ipv6_magic
+  csum_tcpudp_nofold
+  _ctype
+  debugfs_attr_read
+  debugfs_attr_write
+  debugfs_create_atomic_t
+  debugfs_create_bool
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_create_size_t
+  debugfs_create_u16
+  debugfs_create_u32
+  debugfs_create_u64
+  debugfs_create_u8
+  debugfs_create_x32
+  debugfs_lookup
+  debugfs_remove
+  debugfs_rename
+  dec_zone_page_state
+  default_llseek
+  deferred_free
+  delayed_work_timer_fn
+  del_gendisk
+  del_timer
+  del_timer_sync
+  desc_to_gpio
+  destroy_workqueue
+  dev_alloc_name
+  __dev_change_net_namespace
+  dev_close
+  _dev_crit
+  dev_driver_string
+  _dev_emerg
+  _dev_err
+  dev_err_probe
+  dev_fetch_sw_netstats
+  devfreq_add_device
+  devfreq_add_governor
+  devfreq_monitor_resume
+  devfreq_monitor_start
+  devfreq_monitor_stop
+  devfreq_monitor_suspend
+  devfreq_recommended_opp
+  devfreq_register_opp_notifier
+  devfreq_remove_device
+  devfreq_unregister_opp_notifier
+  devfreq_update_interval
+  dev_fwnode
+  __dev_get_by_index
+  dev_get_by_index
+  dev_get_by_name
+  device_add
+  device_add_disk
+  device_add_groups
+  device_create
+  device_create_file
+  device_create_managed_software_node
+  device_create_with_groups
+  device_del
+  device_destroy
+  device_find_child
+  device_for_each_child
+  device_get_dma_attr
+  device_initialize
+  device_init_wakeup
+  device_link_add
+  device_link_del
+  device_property_present
+  device_property_read_string
+  device_property_read_u32_array
+  device_register
+  device_remove_file
+  device_remove_groups
+  device_rename
+  device_set_wakeup_capable
+  device_set_wakeup_enable
+  device_unregister
+  device_wakeup_enable
+  _dev_info
+  __dev_kfree_skb_any
+  devm_add_action
+  devm_backlight_device_register
+  devm_backlight_device_unregister
+  devm_blk_ksm_init
+  devm_clk_get
+  devm_clk_get_optional
+  devm_clk_put
+  devm_device_add_groups
+  __devm_drm_dev_alloc
+  devm_drm_panel_bridge_add_typed
+  devm_extcon_dev_allocate
+  devm_extcon_dev_register
+  devm_free_irq
+  devm_gen_pool_create
+  devm_gpiochip_add_data_with_key
+  devm_gpiod_get
+  devm_gpiod_get_array
+  devm_gpiod_get_optional
+  devm_gpiod_put_array
+  devm_gpio_free
+  devm_gpio_request
+  devm_gpio_request_one
+  devm_i2c_new_dummy_device
+  devm_iio_device_alloc
+  __devm_iio_device_register
+  devm_ioremap
+  devm_ioremap_resource
+  devm_ioremap_wc
+  devm_iounmap
+  devm_kasprintf
+  devm_kfree
+  devm_kmalloc
+  devm_kmemdup
+  devm_kstrdup
+  devm_kstrdup_const
+  devm_mfd_add_devices
+  devm_nvmem_register
+  __devm_of_phy_provider_register
+  devm_of_platform_populate
+  devm_phy_create
+  devm_phy_get
+  devm_phy_put
+  devm_pinctrl_get
+  devm_pinctrl_put
+  devm_pinctrl_register
+  devm_pinctrl_register_and_init
+  devm_platform_ioremap_resource
+  devm_platform_ioremap_resource_byname
+  devm_power_supply_register
+  __devm_regmap_init
+  __devm_regmap_init_i2c
+  __devm_regmap_init_spi
+  devm_regulator_bulk_get
+  devm_regulator_get
+  devm_regulator_get_exclusive
+  devm_regulator_get_optional
+  devm_regulator_put
+  devm_regulator_register
+  __devm_request_region
+  devm_request_threaded_irq
+  devm_rtc_device_register
+  devm_snd_soc_register_component
+  devm_thermal_of_cooling_device_register
+  devm_thermal_zone_of_sensor_register
+  devm_thermal_zone_of_sensor_unregister
+  devm_usb_get_phy_by_phandle
+  _dev_notice
+  dev_pm_domain_attach_by_name
+  dev_pm_domain_detach
+  dev_pm_opp_add
+  dev_pm_opp_disable
+  dev_pm_opp_find_freq_ceil
+  dev_pm_opp_find_freq_exact
+  dev_pm_opp_find_freq_floor
+  dev_pm_opp_get_freq
+  dev_pm_opp_get_opp_count
+  dev_pm_opp_get_voltage
+  dev_pm_opp_of_add_table
+  dev_pm_opp_of_register_em
+  dev_pm_opp_of_remove_table
+  dev_pm_opp_put
+  dev_pm_opp_put_regulators
+  dev_pm_opp_set_regulators
+  dev_pm_qos_read_value
+  dev_pm_qos_update_request
+  _dev_printk
+  dev_printk_emit
+  dev_queue_xmit
+  devres_add
+  __devres_alloc_node
+  devres_free
+  dev_set_name
+  _dev_warn
+  disable_irq
+  disable_irq_nosync
+  disable_percpu_irq
+  disk_end_io_acct
+  disk_start_io_acct
+  dma_alloc_attrs
+  dma_async_device_register
+  dma_async_device_unregister
+  dma_async_tx_descriptor_init
+  dma_buf_attach
+  dma_buf_begin_cpu_access
+  dma_buf_begin_cpu_access_partial
+  dma_buf_detach
+  dma_buf_end_cpu_access
+  dma_buf_end_cpu_access_partial
+  dma_buf_export
+  dma_buf_fd
+  dma_buf_get
+  dma_buf_map_attachment
+  dma_buf_mmap
+  dmabuf_page_pool_alloc
+  dmabuf_page_pool_create
+  dmabuf_page_pool_destroy
+  dmabuf_page_pool_free
+  dma_buf_put
+  dma_buf_unmap_attachment
+  dma_buf_vmap
+  dma_buf_vunmap
+  dmaengine_unmap_put
+  dma_fence_add_callback
+  dma_fence_context_alloc
+  dma_fence_default_wait
+  dma_fence_get_status
+  dma_fence_init
+  dma_fence_release
+  dma_fence_remove_callback
+  dma_fence_signal
+  dma_fence_signal_locked
+  dma_fence_wait_timeout
+  dma_free_attrs
+  dma_get_slave_caps
+  dma_get_slave_channel
+  dma_heap_add
+  dma_heap_buffer_alloc
+  dma_heap_find
+  dma_heap_get_dev
+  dma_heap_get_drvdata
+  dma_heap_get_name
+  dma_heap_put
+  dmam_alloc_attrs
+  dma_map_page_attrs
+  dma_map_resource
+  dma_map_sg_attrs
+  dma_map_sgtable
+  dma_mmap_attrs
+  dma_release_channel
+  dma_request_chan
+  dma_set_coherent_mask
+  dma_set_mask
+  dma_sync_sg_for_cpu
+  dma_sync_sg_for_device
+  dma_sync_single_for_cpu
+  dma_sync_single_for_device
+  dma_unmap_page_attrs
+  dma_unmap_resource
+  dma_unmap_sg_attrs
+  do_SAK
+  do_trace_netlink_extack
+  do_wait_intr_irq
+  down
+  downgrade_write
+  down_interruptible
+  down_read
+  down_read_trylock
+  down_trylock
+  down_write
+  drain_workqueue
+  driver_create_file
+  driver_register
+  driver_remove_file
+  driver_unregister
+  drm_add_modes_noedid
+  drm_atomic_add_affected_connectors
+  drm_atomic_add_affected_planes
+  drm_atomic_commit
+  drm_atomic_get_connector_state
+  drm_atomic_get_crtc_state
+  drm_atomic_get_new_connector_for_encoder
+  drm_atomic_get_old_connector_for_encoder
+  drm_atomic_get_plane_state
+  drm_atomic_get_private_obj_state
+  drm_atomic_helper_bridge_destroy_state
+  drm_atomic_helper_bridge_duplicate_state
+  drm_atomic_helper_bridge_reset
+  drm_atomic_helper_check_modeset
+  drm_atomic_helper_check_planes
+  drm_atomic_helper_check_plane_state
+  drm_atomic_helper_cleanup_planes
+  drm_atomic_helper_commit_cleanup_done
+  drm_atomic_helper_commit_duplicated_state
+  drm_atomic_helper_commit_hw_done
+  drm_atomic_helper_commit_modeset_disables
+  drm_atomic_helper_commit_modeset_enables
+  drm_atomic_helper_commit_planes
+  drm_atomic_helper_commit_tail
+  __drm_atomic_helper_connector_destroy_state
+  __drm_atomic_helper_connector_duplicate_state
+  __drm_atomic_helper_crtc_destroy_state
+  __drm_atomic_helper_crtc_duplicate_state
+  __drm_atomic_helper_crtc_reset
+  drm_atomic_helper_disable_plane
+  drm_atomic_helper_duplicate_state
+  drm_atomic_helper_fake_vblank
+  drm_atomic_helper_page_flip
+  __drm_atomic_helper_plane_destroy_state
+  __drm_atomic_helper_plane_duplicate_state
+  drm_atomic_helper_prepare_planes
+  __drm_atomic_helper_private_obj_duplicate_state
+  drm_atomic_helper_set_config
+  drm_atomic_helper_setup_commit
+  drm_atomic_helper_shutdown
+  drm_atomic_helper_swap_state
+  drm_atomic_helper_update_plane
+  drm_atomic_helper_wait_for_dependencies
+  drm_atomic_helper_wait_for_fences
+  drm_atomic_helper_wait_for_flip_done
+  drm_atomic_nonblocking_commit
+  drm_atomic_normalize_zpos
+  drm_atomic_private_obj_fini
+  drm_atomic_private_obj_init
+  drm_atomic_set_crtc_for_connector
+  drm_atomic_set_crtc_for_plane
+  drm_atomic_set_fb_for_plane
+  drm_atomic_set_mode_prop_for_crtc
+  drm_atomic_state_alloc
+  drm_atomic_state_clear
+  __drm_atomic_state_free
+  drm_bridge_add
+  drm_bridge_attach
+  drm_bridge_chain_mode_set
+  drm_bridge_remove
+  drm_compat_ioctl
+  drm_connector_attach_encoder
+  drm_connector_cleanup
+  drm_connector_init
+  drm_connector_list_iter_begin
+  drm_connector_list_iter_end
+  drm_connector_list_iter_next
+  drm_connector_register
+  drm_connector_unregister
+  drm_crtc_arm_vblank_event
+  drm_crtc_cleanup
+  __drm_crtc_commit_free
+  drm_crtc_enable_color_mgmt
+  drm_crtc_handle_vblank
+  drm_crtc_init_with_planes
+  drm_crtc_send_vblank_event
+  drm_crtc_vblank_count_and_time
+  drm_crtc_vblank_get
+  drm_crtc_vblank_off
+  drm_crtc_vblank_on
+  drm_crtc_vblank_put
+  drm_crtc_wait_one_vblank
+  __drm_dbg
+  drm_dev_put
+  drm_dev_register
+  drm_dev_unregister
+  drm_display_mode_to_videomode
+  drm_encoder_cleanup
+  drm_encoder_init
+  __drm_err
+  drm_event_cancel_free
+  drm_event_reserve_init
+  drm_format_info
+  drm_framebuffer_init
+  drm_gem_create_mmap_offset
+  drm_gem_fb_create_handle
+  drm_gem_fb_destroy
+  drm_gem_handle_create
+  drm_gem_mmap
+  drm_gem_object_free
+  drm_gem_object_lookup
+  drm_gem_object_release
+  drm_gem_prime_fd_to_handle
+  drm_gem_prime_handle_to_fd
+  drm_gem_prime_import_dev
+  drm_gem_private_object_init
+  drm_gem_vm_close
+  drm_gem_vm_open
+  drm_get_format_info
+  drm_helper_mode_fill_fb_struct
+  drm_helper_probe_single_connector_modes
+  drm_ioctl
+  drm_kms_helper_hotplug_event
+  drm_kms_helper_poll_fini
+  drm_kms_helper_poll_init
+  drmm_kmalloc
+  drmm_mode_config_init
+  drm_mode_config_reset
+  drm_mode_convert_to_umode
+  drm_mode_duplicate
+  drm_mode_equal
+  drm_mode_equal_no_clocks
+  drm_mode_object_find
+  drm_mode_object_get
+  drm_mode_object_put
+  drm_mode_probed_add
+  drm_modeset_acquire_fini
+  drm_modeset_acquire_init
+  drm_modeset_backoff
+  drm_modeset_drop_locks
+  drm_modeset_lock
+  drm_modeset_lock_all_ctx
+  drm_modeset_unlock
+  drm_mode_vrefresh
+  drm_object_attach_property
+  drm_open
+  drm_panel_add
+  drm_panel_disable
+  drm_panel_enable
+  drm_panel_get_modes
+  drm_panel_init
+  drm_panel_prepare
+  drm_panel_remove
+  drm_panel_unprepare
+  drm_plane_cleanup
+  drm_plane_create_alpha_property
+  drm_plane_create_blend_mode_property
+  drm_plane_create_rotation_property
+  drm_plane_create_zpos_immutable_property
+  drm_plane_create_zpos_property
+  drm_poll
+  drm_prime_gem_destroy
+  drm_printf
+  __drm_printfn_debug
+  __drm_printfn_info
+  __drm_printfn_seq_file
+  drm_property_blob_get
+  drm_property_blob_put
+  drm_property_create
+  drm_property_create_bitmask
+  drm_property_create_blob
+  drm_property_create_bool
+  drm_property_create_enum
+  drm_property_create_range
+  drm_property_create_signed_range
+  drm_property_lookup_blob
+  drm_property_replace_blob
+  drm_puts
+  __drm_puts_seq_file
+  drm_read
+  drm_rect_clip_scaled
+  drm_rect_intersect
+  drm_release
+  drm_rotation_simplify
+  drm_self_refresh_helper_alter_state
+  drm_send_event
+  drm_send_event_locked
+  drm_universal_plane_init
+  drm_vblank_init
+  drm_writeback_connector_init
+  drm_writeback_queue_job
+  drm_writeback_signal_completion
+  dump_backtrace
+  dump_stack
+  dw_handle_msi_irq
+  dw_pcie_host_init
+  dw_pcie_read
+  dw_pcie_setup_rc
+  dw_pcie_write
+  __dynamic_dev_dbg
+  __dynamic_pr_debug
+  em_cpu_get
+  emergency_restart
+  enable_irq
+  enable_percpu_irq
+  ether_setup
+  eth_mac_addr
+  ethtool_op_get_link
+  eth_type_trans
+  eventfd_ctx_fdget
+  eventfd_ctx_put
+  eventfd_signal
+  event_triggers_call
+  extcon_get_edev_by_phandle
+  extcon_get_property
+  extcon_get_state
+  extcon_register_notifier
+  extcon_set_property
+  extcon_set_property_capability
+  extcon_set_state_sync
+  extcon_unregister_notifier
+  fasync_helper
+  __fdget
+  fd_install
+  fget
+  find_extend_vma
+  _find_first_bit
+  _find_first_zero_bit
+  find_get_pid
+  _find_next_bit
+  find_pid_ns
+  find_task_by_vpid
+  __find_vma
+  find_vm_area
+  finish_wait
+  flush_dcache_page
+  flush_delayed_work
+  flush_work
+  flush_workqueue
+  fput
+  frame_vector_create
+  frame_vector_destroy
+  frame_vector_to_pages
+  free_irq
+  free_netdev
+  __free_pages
+  free_pages
+  free_pages_exact
+  free_percpu
+  free_percpu_irq
+  freezing_slow_path
+  freq_qos_add_request
+  freq_qos_remove_request
+  freq_qos_update_request
+  fsync_bdev
+  full_name_hash
+  fwnode_get_name
+  fwnode_gpiod_get_index
+  gcd
+  generic_file_llseek
+  generic_handle_domain_irq
+  generic_iommu_put_resv_regions
+  genlmsg_multicast_allns
+  genlmsg_put
+  genl_register_family
+  genl_unregister_family
+  gen_pool_add_owner
+  gen_pool_alloc_algo_owner
+  gen_pool_avail
+  gen_pool_create
+  gen_pool_destroy
+  gen_pool_first_fit_align
+  gen_pool_free_owner
+  gen_pool_size
+  get_cpu_device
+  get_cpu_idle_time
+  get_cpu_idle_time_us
+  get_cpu_iowait_time_us
+  get_device
+  __get_free_pages
+  get_governor_parent_kobj
+  get_net_ns_by_fd
+  get_net_ns_by_pid
+  get_pid_task
+  get_random_bytes
+  get_random_u32
+  get_sg_io_hdr
+  get_task_cred
+  get_thermal_instance
+  get_unused_fd_flags
+  get_user_pages
+  get_user_pages_fast
+  get_vaddr_frames
+  gic_nonsecure_priorities
+  glob_match
+  gov_attr_set_get
+  gov_attr_set_init
+  gov_attr_set_put
+  governor_sysfs_ops
+  gpiochip_generic_config
+  gpiochip_generic_free
+  gpiochip_generic_request
+  gpiochip_get_data
+  gpiochip_lock_as_irq
+  gpiochip_unlock_as_irq
+  gpiod_count
+  gpiod_direction_input
+  gpiod_direction_output
+  gpiod_direction_output_raw
+  gpiod_get_raw_value
+  gpiod_get_raw_value_cansleep
+  gpiod_get_value
+  gpiod_get_value_cansleep
+  gpiod_set_raw_value
+  gpiod_set_raw_value_cansleep
+  gpiod_set_value
+  gpiod_set_value_cansleep
+  gpiod_to_irq
+  gpio_free
+  gpio_request
+  gpio_request_one
+  gpio_to_desc
+  gserial_alloc_line
+  gserial_connect
+  gserial_disconnect
+  handle_edge_irq
+  handle_level_irq
+  handle_nested_irq
+  handle_simple_irq
+  handle_sysrq
+  have_governor_per_policy
+  hex2bin
+  hex_dump_to_buffer
+  hex_to_bin
+  hrtimer_active
+  hrtimer_cancel
+  hrtimer_forward
+  hrtimer_init
+  hrtimer_init_sleeper
+  hrtimer_sleeper_start_expires
+  hrtimer_start_range_ns
+  hrtimer_try_to_cancel
+  __hw_addr_init
+  __hw_addr_sync
+  __hw_addr_unsync
+  hwrng_register
+  hwrng_unregister
+  i2c_adapter_type
+  i2c_add_numbered_adapter
+  i2c_bus_type
+  i2c_del_adapter
+  i2c_del_driver
+  i2c_for_each_dev
+  i2c_get_adapter
+  i2c_match_id
+  i2c_new_ancillary_device
+  i2c_new_client_device
+  i2c_new_dummy_device
+  i2c_put_adapter
+  i2c_register_driver
+  i2c_smbus_read_byte_data
+  i2c_smbus_write_byte_data
+  i2c_smbus_xfer
+  i2c_transfer
+  i2c_transfer_buffer_flags
+  i2c_unregister_device
+  i2c_verify_client
+  ida_alloc_range
+  ida_destroy
+  ida_free
+  idr_alloc
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_get_next
+  idr_preload
+  idr_remove
+  ieee802154_alloc_hw
+  ieee802154_free_hw
+  ieee802154_register_hw
+  ieee802154_rx_irqsafe
+  ieee802154_unregister_hw
+  ieee802154_wake_queue
+  ieee802154_xmit_complete
+  iio_device_unregister
+  import_iovec
+  in6_pton
+  in_aton
+  inc_zone_page_state
+  inet_csk_get_port
+  init_dummy_netdev
+  init_net
+  init_pid_ns
+  init_pseudo
+  __init_rwsem
+  __init_swait_queue_head
+  init_task
+  init_timer_key
+  init_uts_ns
+  init_wait_entry
+  __init_waitqueue_head
+  input_alloc_absinfo
+  input_allocate_device
+  input_close_device
+  input_event
+  input_free_device
+  input_mt_destroy_slots
+  input_mt_init_slots
+  input_mt_report_slot_state
+  input_open_device
+  input_register_device
+  input_register_handle
+  input_register_handler
+  input_set_abs_params
+  input_set_capability
+  input_set_timestamp
+  input_unregister_device
+  input_unregister_handle
+  input_unregister_handler
+  interval_tree_insert
+  interval_tree_iter_first
+  interval_tree_iter_next
+  interval_tree_remove
+  int_sqrt
+  iomem_resource
+  iommu_alloc_resv_region
+  iommu_attach_device
+  iommu_attach_group
+  iommu_aux_attach_device
+  iommu_aux_detach_device
+  iommu_aux_get_pasid
+  iommu_detach_device
+  iommu_dev_enable_feature
+  iommu_dev_feature_enabled
+  iommu_device_register
+  iommu_device_sysfs_add
+  iommu_device_sysfs_remove
+  iommu_device_unlink
+  iommu_device_unregister
+  iommu_dma_enable_best_fit_algo
+  iommu_domain_alloc
+  iommu_domain_free
+  iommu_fwspec_add_ids
+  iommu_fwspec_free
+  iommu_get_dma_cookie
+  iommu_get_domain_for_dev
+  iommu_group_alloc
+  iommu_group_for_each_dev
+  iommu_group_get
+  iommu_group_get_iommudata
+  iommu_group_put
+  iommu_group_set_iommudata
+  iommu_group_set_name
+  iommu_iova_to_phys
+  iommu_map
+  iommu_map_sg
+  iommu_put_dma_cookie
+  iommu_register_device_fault_handler
+  iommu_report_device_fault
+  iommu_set_fault_handler
+  iommu_unmap
+  iommu_unregister_device_fault_handler
+  __ioremap
+  io_schedule_timeout
+  iounmap
+  iov_iter_bvec
+  ip_send_check
+  iput
+  __irq_alloc_descs
+  irq_create_mapping_affinity
+  irq_create_of_mapping
+  __irq_domain_add
+  irq_domain_remove
+  irq_domain_xlate_twocell
+  irq_get_irq_data
+  irq_modify_status
+  irq_of_parse_and_map
+  __irq_resolve_mapping
+  irq_set_affinity
+  irq_set_affinity_hint
+  irq_set_chained_handler_and_data
+  irq_set_chip_and_handler_name
+  irq_set_chip_data
+  irq_set_irq_type
+  irq_set_irq_wake
+  irq_work_queue
+  irq_work_sync
+  is_vmalloc_addr
+  jiffies64_to_msecs
+  jiffies
+  jiffies_to_msecs
+  jiffies_to_usecs
+  kasan_flag_enabled
+  kasprintf
+  kernel_cpustat
+  kernel_kobj
+  kernel_param_lock
+  kernel_param_unlock
+  kernel_restart
+  kern_mount
+  kern_unmount
+  key_create_or_update
+  key_put
+  keyring_alloc
+  __kfifo_alloc
+  __kfifo_free
+  __kfifo_in
+  __kfifo_init
+  __kfifo_out
+  __kfifo_out_peek
+  kfree
+  kfree_sensitive
+  kfree_skb
+  kfree_skb_list
+  kill_anon_super
+  kill_fasync
+  kimage_voffset
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order
+  kmalloc_order_trace
+  kmem_cache_alloc
+  kmem_cache_alloc_trace
+  kmem_cache_create
+  kmem_cache_destroy
+  kmem_cache_free
+  kmemdup
+  kobject_add
+  kobject_create_and_add
+  kobject_del
+  kobject_init
+  kobject_init_and_add
+  kobject_put
+  kobject_uevent
+  kobject_uevent_env
+  kobj_sysfs_ops
+  krealloc
+  kstat
+  kstrdup
+  kstrndup
+  kstrtobool
+  kstrtobool_from_user
+  kstrtoint
+  kstrtoint_from_user
+  kstrtol_from_user
+  kstrtoll
+  kstrtos8
+  kstrtou16
+  kstrtou8
+  kstrtou8_from_user
+  kstrtouint
+  kstrtouint_from_user
+  kstrtoull
+  kstrtoull_from_user
+  kthread_bind
+  kthread_bind_mask
+  kthread_cancel_delayed_work_sync
+  kthread_cancel_work_sync
+  kthread_create_on_node
+  kthread_create_worker
+  kthread_delayed_work_timer_fn
+  kthread_destroy_worker
+  kthread_flush_work
+  kthread_flush_worker
+  __kthread_init_worker
+  kthread_mod_delayed_work
+  kthread_queue_work
+  kthread_should_stop
+  kthread_stop
+  kthread_worker_fn
+  ktime_get
+  ktime_get_coarse_with_offset
+  ktime_get_mono_fast_ns
+  ktime_get_raw
+  ktime_get_raw_ts64
+  ktime_get_real_seconds
+  ktime_get_real_ts64
+  ktime_get_seconds
+  ktime_get_snapshot
+  ktime_get_ts64
+  ktime_get_with_offset
+  kvfree
+  kvfree_call_rcu
+  kvmalloc_node
+  led_classdev_register_ext
+  led_classdev_unregister
+  __list_add_valid
+  __list_del_entry_valid
+  list_sort
+  __local_bh_enable_ip
+  __lock_page
+  log_abnormal_wakeup_reason
+  log_post_read_mmio
+  log_post_write_mmio
+  log_read_mmio
+  log_threaded_irq_wakeup_reason
+  log_write_mmio
+  loops_per_jiffy
+  mac_pton
+  mbox_chan_received_data
+  mbox_controller_register
+  mbox_controller_unregister
+  mbox_free_channel
+  mbox_request_channel
+  mbox_send_message
+  memcmp
+  memcpy
+  __memcpy_fromio
+  __memcpy_toio
+  memdup_user
+  memdup_user_nul
+  memmove
+  memparse
+  memremap
+  mem_section
+  memset64
+  memset
+  memstart_addr
+  memunmap
+  mfd_add_devices
+  mfd_remove_devices
+  mipi_dsi_attach
+  mipi_dsi_compression_mode
+  mipi_dsi_create_packet
+  mipi_dsi_dcs_read
+  mipi_dsi_dcs_set_column_address
+  mipi_dsi_dcs_set_display_brightness
+  mipi_dsi_dcs_set_page_address
+  mipi_dsi_dcs_write_buffer
+  mipi_dsi_detach
+  mipi_dsi_device_register_full
+  mipi_dsi_driver_register_full
+  mipi_dsi_driver_unregister
+  mipi_dsi_host_register
+  mipi_dsi_host_unregister
+  mipi_dsi_packet_format_is_long
+  mipi_dsi_picture_parameter_set
+  misc_deregister
+  misc_register
+  __mmdrop
+  mod_delayed_work_on
+  mod_timer
+  __module_get
+  module_layout
+  module_put
+  __msecs_to_jiffies
+  msleep
+  msleep_interruptible
+  __mutex_init
+  mutex_is_locked
+  mutex_lock
+  mutex_lock_interruptible
+  mutex_trylock
+  mutex_unlock
+  __napi_alloc_skb
+  napi_complete_done
+  napi_disable
+  napi_enable
+  napi_gro_receive
+  __napi_schedule
+  napi_schedule_prep
+  __netdev_alloc_skb
+  netdev_err
+  netdev_info
+  netdev_set_default_ethtool_ops
+  netdev_state_change
+  netdev_update_features
+  netif_carrier_off
+  netif_carrier_on
+  netif_napi_add
+  __netif_napi_del
+  netif_receive_skb
+  netif_receive_skb_list
+  netif_rx
+  netif_rx_ni
+  netif_tx_stop_all_queues
+  netif_tx_wake_queue
+  netlink_broadcast
+  __netlink_kernel_create
+  netlink_kernel_release
+  netlink_register_notifier
+  netlink_unicast
+  netlink_unregister_notifier
+  net_ns_type_operations
+  net_ratelimit
+  nla_find
+  nla_memcpy
+  __nla_parse
+  nla_put_64bit
+  nla_put
+  nla_put_nohdr
+  nla_reserve
+  nla_strscpy
+  __nla_validate
+  __nlmsg_put
+  no_llseek
+  nonseekable_open
+  noop_llseek
+  nr_cpu_ids
+  nr_irqs
+  ns_capable
+  nsec_to_clock_t
+  ns_to_timespec64
+  __num_online_cpus
+  nvmem_device_put
+  nvmem_device_read
+  nvmem_device_write
+  of_address_to_resource
+  of_alias_get_id
+  of_clk_add_provider
+  of_clk_get
+  of_clk_get_by_name
+  of_clk_src_onecell_get
+  of_count_phandle_with_args
+  of_cpu_node_to_id
+  of_devfreq_cooling_register_power
+  of_device_get_match_data
+  of_device_is_available
+  of_device_is_compatible
+  of_dma_controller_free
+  of_dma_controller_register
+  of_dma_is_coherent
+  of_drm_find_bridge
+  of_drm_find_panel
+  of_find_backlight_by_node
+  of_find_compatible_node
+  of_find_device_by_node
+  of_find_i2c_adapter_by_node
+  of_find_i2c_device_by_node
+  of_find_matching_node_and_match
+  of_find_node_by_name
+  of_find_node_by_phandle
+  of_find_node_by_type
+  of_find_node_opts_by_path
+  of_find_property
+  of_fwnode_ops
+  of_genpd_add_provider_simple
+  of_get_child_by_name
+  of_get_cpu_node
+  of_get_named_gpio_flags
+  of_get_next_available_child
+  of_get_next_child
+  of_get_property
+  of_get_regulator_init_data
+  of_iomap
+  of_irq_find_parent
+  of_irq_get
+  of_irq_get_byname
+  of_irq_parse_one
+  of_machine_is_compatible
+  of_match_device
+  of_match_node
+  of_n_addr_cells
+  of_node_name_eq
+  of_n_size_cells
+  of_nvmem_device_get
+  of_parse_phandle
+  of_parse_phandle_with_args
+  of_parse_phandle_with_fixed_args
+  of_phandle_iterator_init
+  of_phandle_iterator_next
+  of_platform_populate
+  of_property_count_elems_of_size
+  of_property_match_string
+  of_property_read_string
+  of_property_read_string_helper
+  of_property_read_u32_index
+  of_property_read_u64
+  of_property_read_u64_index
+  of_property_read_variable_u16_array
+  of_property_read_variable_u32_array
+  of_property_read_variable_u64_array
+  of_property_read_variable_u8_array
+  of_prop_next_string
+  of_prop_next_u32
+  of_reserved_mem_device_init_by_idx
+  of_reserved_mem_device_release
+  of_reserved_mem_lookup
+  of_root
+  of_thermal_get_ntrips
+  of_thermal_get_trip_points
+  of_thermal_is_trip_valid
+  of_translate_address
+  of_usb_host_tpl_support
+  page_endio
+  page_mapping
+  panic
+  panic_notifier_list
+  param_array_ops
+  param_ops_bool
+  param_ops_byte
+  param_ops_charp
+  param_ops_int
+  param_ops_long
+  param_ops_string
+  param_ops_uint
+  param_ops_ulong
+  pci_alloc_irq_vectors_affinity
+  pci_assign_resource
+  pci_clear_master
+  pci_disable_device
+  pci_enable_device
+  pci_enable_wake
+  pci_find_bus
+  pci_find_capability
+  pci_find_ext_capability
+  pci_free_irq_vectors
+  pci_get_device
+  pci_load_and_free_saved_state
+  pci_load_saved_state
+  pci_read_config_dword
+  pci_read_config_word
+  __pci_register_driver
+  pci_release_regions
+  pci_rescan_bus
+  pci_restore_msi_state
+  pci_restore_state
+  pci_save_state
+  pci_set_master
+  pci_set_power_state
+  pci_store_saved_state
+  pci_unregister_driver
+  pci_wake_from_d3
+  pci_write_config_dword
+  pci_write_config_word
+  PDE_DATA
+  __per_cpu_offset
+  perf_event_create_kernel_counter
+  perf_event_disable
+  perf_event_enable
+  perf_event_pause
+  perf_event_read_local
+  perf_event_read_value
+  perf_event_release_kernel
+  perf_event_update_userpage
+  perf_pmu_migrate_context
+  perf_pmu_register
+  perf_pmu_unregister
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  pfn_is_map_memory
+  phy_init
+  phy_power_off
+  phy_power_on
+  pid_task
+  pinconf_generic_dt_free_map
+  pinconf_generic_dt_node_to_map
+  pinctrl_add_gpio_range
+  pinctrl_dev_get_drvdata
+  pinctrl_enable
+  pinctrl_force_sleep
+  pinctrl_lookup_state
+  pinctrl_remove_gpio_range
+  pinctrl_select_state
+  pin_get_name
+  pin_user_pages
+  pin_user_pages_fast
+  pin_user_pages_remote
+  pktgen_xfrm_outer_mode_output
+  pkvm_iommu_finalize
+  pkvm_iommu_resume
+  pkvm_iommu_s2mpu_register
+  pkvm_iommu_suspend
+  pkvm_iommu_sysmmu_sync_register
+  platform_bus_type
+  platform_device_add
+  platform_device_add_data
+  platform_device_add_resources
+  platform_device_alloc
+  platform_device_del
+  platform_device_put
+  platform_device_register
+  platform_device_register_full
+  platform_device_unregister
+  __platform_driver_probe
+  __platform_driver_register
+  platform_driver_unregister
+  platform_find_device_by_driver
+  platform_get_irq
+  platform_get_irq_byname
+  platform_get_resource
+  platform_get_resource_byname
+  platform_irq_count
+  pm_genpd_add_subdomain
+  pm_genpd_init
+  pm_power_off
+  __pm_relax
+  pm_relax
+  pm_runtime_allow
+  __pm_runtime_disable
+  pm_runtime_enable
+  pm_runtime_forbid
+  pm_runtime_force_resume
+  pm_runtime_force_suspend
+  __pm_runtime_idle
+  pm_runtime_irq_safe
+  __pm_runtime_resume
+  pm_runtime_set_autosuspend_delay
+  __pm_runtime_set_status
+  __pm_runtime_suspend
+  __pm_runtime_use_autosuspend
+  __pm_stay_awake
+  pm_stay_awake
+  pm_wakeup_dev_event
+  pm_wakeup_ws_event
+  power_supply_changed
+  power_supply_get_by_name
+  power_supply_get_by_phandle_array
+  power_supply_get_drvdata
+  power_supply_get_property
+  power_supply_put
+  power_supply_register
+  power_supply_reg_notifier
+  power_supply_set_property
+  power_supply_unregister
+  power_supply_unreg_notifier
+  pps_event
+  pps_register_source
+  pps_unregister_source
+  prandom_bytes
+  prandom_u32
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait
+  prepare_to_wait_event
+  print_hex_dump
+  _printk
+  _printk_deferred
+  proc_create
+  proc_create_data
+  proc_create_single_data
+  proc_dointvec
+  proc_dostring
+  proc_douintvec_minmax
+  proc_mkdir
+  proc_mkdir_data
+  proc_remove
+  proc_set_size
+  pskb_expand_head
+  __pskb_pull_tail
+  ___pskb_trim
+  __put_cred
+  put_device
+  __put_net
+  __put_page
+  put_pid
+  put_sg_io_hdr
+  __put_task_struct
+  put_unused_fd
+  put_vaddr_frames
+  queue_delayed_work_on
+  queue_work_on
+  ___ratelimit
+  raw_notifier_call_chain
+  raw_notifier_chain_register
+  raw_notifier_chain_unregister
+  _raw_read_lock
+  _raw_read_lock_bh
+  _raw_read_lock_irqsave
+  _raw_read_unlock
+  _raw_read_unlock_bh
+  _raw_read_unlock_irqrestore
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irq
+  _raw_spin_lock_irqsave
+  raw_spin_rq_lock_nested
+  raw_spin_rq_unlock
+  _raw_spin_trylock
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irq
+  _raw_spin_unlock_irqrestore
+  _raw_write_lock
+  _raw_write_lock_irq
+  _raw_write_lock_irqsave
+  _raw_write_unlock
+  _raw_write_unlock_irq
+  _raw_write_unlock_irqrestore
+  rb_erase
+  rb_first
+  rb_insert_color
+  rb_next
+  rb_prev
+  rb_replace_node
+  rcu_barrier
+  __rcu_read_lock
+  __rcu_read_unlock
+  rdev_get_drvdata
+  rdev_get_id
+  reboot_mode
+  refcount_warn_saturate
+  __refrigerator
+  regcache_cache_only
+  regcache_drop_region
+  regcache_mark_dirty
+  regcache_sync
+  __register_blkdev
+  __register_chrdev
+  register_chrdev_region
+  register_console
+  register_die_notifier
+  register_inet6addr_notifier
+  register_inetaddr_notifier
+  register_kernel_break_hook
+  register_netdev
+  register_netdevice
+  register_netdevice_notifier
+  register_oom_notifier
+  register_pernet_device
+  register_pernet_subsys
+  register_pm_notifier
+  register_reboot_notifier
+  register_restart_handler
+  register_shrinker
+  register_syscore_ops
+  register_sysctl
+  register_sysctl_table
+  register_virtio_device
+  register_virtio_driver
+  regmap_async_complete
+  regmap_bulk_read
+  regmap_bulk_write
+  regmap_get_device
+  regmap_multi_reg_write
+  regmap_multi_reg_write_bypassed
+  regmap_raw_read
+  regmap_raw_write
+  regmap_raw_write_async
+  regmap_read
+  regmap_register_patch
+  regmap_update_bits_base
+  regmap_write
+  regulator_bulk_disable
+  regulator_bulk_enable
+  regulator_disable
+  regulator_disable_regmap
+  regulator_enable
+  regulator_enable_regmap
+  regulator_get
+  regulator_get_optional
+  regulator_get_voltage_sel_regmap
+  regulator_is_enabled
+  regulator_is_enabled_regmap
+  regulator_list_voltage_linear
+  regulator_map_voltage_linear
+  regulator_notifier_call_chain
+  regulator_put
+  regulator_register
+  regulator_set_voltage
+  regulator_set_voltage_sel_regmap
+  regulator_unregister
+  release_firmware
+  __release_region
+  remap_pfn_range
+  remap_vmalloc_range
+  remove_cpu
+  remove_proc_entry
+  remove_wait_queue
+  request_firmware
+  request_firmware_nowait
+  __request_percpu_irq
+  __request_region
+  request_threaded_irq
+  return_address
+  rfkill_alloc
+  rfkill_blocked
+  rfkill_destroy
+  rfkill_init_sw_state
+  rfkill_register
+  rfkill_resume_polling
+  rfkill_set_hw_state_reason
+  rfkill_unregister
+  rhashtable_free_and_destroy
+  rhashtable_insert_slow
+  rhltable_init
+  __rht_bucket_nested
+  rht_bucket_nested
+  rht_bucket_nested_insert
+  root_task_group
+  round_jiffies
+  round_jiffies_relative
+  round_jiffies_up
+  rps_needed
+  rtc_class_close
+  rtc_class_open
+  rtc_read_time
+  rtc_time64_to_tm
+  rtc_tm_to_time64
+  rtc_update_irq
+  rtc_valid_tm
+  __rt_mutex_init
+  rt_mutex_lock
+  rt_mutex_trylock
+  rt_mutex_unlock
+  rtnl_is_locked
+  rtnl_lock
+  rtnl_trylock
+  rtnl_unlock
+  runqueues
+  sched_clock
+  sched_feat_keys
+  sched_setattr_nocheck
+  sched_setscheduler
+  sched_setscheduler_nocheck
+  sched_show_task
+  sched_trace_cfs_rq_avg
+  sched_trace_cfs_rq_cpu
+  sched_trace_cfs_rq_path
+  sched_trace_rd_span
+  sched_trace_rq_avg_dl
+  sched_trace_rq_avg_irq
+  sched_trace_rq_avg_rt
+  sched_trace_rq_cpu
+  sched_uclamp_used
+  schedule
+  schedule_timeout
+  schedule_timeout_interruptible
+  scnprintf
+  scsi_autopm_get_device
+  scsi_autopm_put_device
+  scsi_block_requests
+  scsi_block_when_processing_errors
+  scsi_cmd_allowed
+  scsi_command_size_tbl
+  scsi_device_get
+  scsi_device_put
+  scsi_ioctl
+  scsi_ioctl_block_when_processing_errors
+  scsi_normalize_sense
+  __scsi_print_sense
+  scsi_register_interface
+  scsi_unblock_requests
+  sdev_prefix_printk
+  seq_hex_dump
+  seq_lseek
+  seq_open
+  __seq_open_private
+  seq_printf
+  seq_putc
+  seq_puts
+  seq_read
+  seq_release
+  seq_release_private
+  seq_write
+  set_capacity
+  set_capacity_and_notify
+  set_cpus_allowed_ptr
+  set_freezable
+  set_page_dirty
+  set_page_dirty_lock
+  __SetPageMovable
+  set_user_nice
+  sg_alloc_table
+  sg_alloc_table_from_pages_segment
+  sg_free_table
+  sg_init_one
+  sg_init_table
+  sg_next
+  __sg_page_iter_next
+  __sg_page_iter_start
+  shmem_file_setup
+  simple_attr_open
+  simple_attr_read
+  simple_attr_release
+  simple_attr_write
+  simple_open
+  simple_read_from_buffer
+  simple_strtol
+  simple_strtoll
+  simple_strtoul
+  simple_strtoull
+  simple_write_to_buffer
+  single_open
+  single_open_size
+  single_release
+  skb_add_rx_frag
+  skb_checksum
+  skb_checksum_help
+  skb_clone
+  skb_clone_sk
+  skb_complete_wifi_ack
+  skb_copy
+  skb_copy_bits
+  skb_copy_expand
+  skb_dequeue
+  skb_dequeue_tail
+  skb_ensure_writable
+  __skb_get_hash
+  __skb_gso_segment
+  skb_pull
+  skb_push
+  skb_put
+  skb_queue_head
+  skb_queue_purge
+  skb_queue_tail
+  skb_realloc_headroom
+  skb_trim
+  skip_spaces
+  smp_call_function
+  smp_call_function_single
+  smp_call_on_cpu
+  snd_compr_stop_error
+  snd_ctl_add
+  snd_ctl_boolean_mono_info
+  snd_ctl_enum_info
+  snd_ctl_new1
+  snd_ctl_notify
+  snd_info_create_card_entry
+  snd_jack_set_key
+  snd_pcm_format_physical_width
+  snd_pcm_format_width
+  snd_pcm_hw_constraint_list
+  snd_pcm_lib_free_pages
+  snd_pcm_lib_ioctl
+  snd_pcm_lib_malloc_pages
+  snd_pcm_lib_preallocate_pages
+  snd_pcm_period_elapsed
+  snd_soc_add_component_controls
+  snd_soc_add_dai_controls
+  snd_soc_bytes_tlv_callback
+  snd_soc_card_get_kcontrol
+  snd_soc_card_jack_new
+  snd_soc_component_disable_pin
+  snd_soc_component_force_enable_pin
+  snd_soc_component_set_jack
+  snd_soc_component_set_pll
+  snd_soc_component_set_sysclk
+  snd_soc_daifmt_clock_provider_from_bitmap
+  snd_soc_daifmt_parse_clock_provider_raw
+  snd_soc_daifmt_parse_format
+  snd_soc_dai_set_pll
+  snd_soc_dai_set_sysclk
+  snd_soc_dai_set_tdm_slot
+  snd_soc_dapm_add_routes
+  snd_soc_dapm_get_enum_double
+  snd_soc_dapm_get_volsw
+  snd_soc_dapm_ignore_suspend
+  snd_soc_dapm_kcontrol_widget
+  snd_soc_dapm_mixer_update_power
+  snd_soc_dapm_new_controls
+  snd_soc_dapm_put_enum_double
+  snd_soc_dapm_put_volsw
+  snd_soc_dapm_sync
+  snd_soc_get_enum_double
+  snd_soc_get_volsw
+  snd_soc_get_volsw_range
+  snd_soc_info_enum_double
+  snd_soc_info_volsw
+  snd_soc_info_volsw_range
+  snd_soc_new_compress
+  snd_soc_of_get_dai_link_codecs
+  snd_soc_of_get_dai_name
+  snd_soc_of_parse_card_name
+  snd_soc_params_to_bclk
+  snd_soc_put_enum_double
+  snd_soc_put_volsw
+  snd_soc_put_volsw_range
+  snd_soc_register_card
+  snd_soc_register_component
+  snd_soc_runtime_set_dai_fmt
+  snd_soc_unregister_card
+  snd_soc_unregister_component
+  snprintf
+  soc_device_register
+  __sock_create
+  sock_release
+  sock_wfree
+  softnet_data
+  sort
+  __spi_alloc_controller
+  spi_bus_lock
+  spi_bus_unlock
+  spi_controller_resume
+  spi_controller_suspend
+  spi_delay_exec
+  spi_finalize_current_message
+  spi_register_controller
+  __spi_register_driver
+  spi_setup
+  spi_sync
+  spi_sync_locked
+  spi_unregister_controller
+  split_page
+  sprintf
+  sprint_symbol
+  srcu_init_notifier_head
+  srcu_notifier_call_chain
+  srcu_notifier_chain_register
+  srcu_notifier_chain_unregister
+  sscanf
+  __stack_chk_fail
+  static_key_disable
+  static_key_slow_dec
+  static_key_slow_inc
+  stop_machine
+  strcasecmp
+  strcat
+  strchr
+  strcmp
+  strcpy
+  strcspn
+  stream_open
+  strim
+  strlcat
+  strlcpy
+  strlen
+  strncasecmp
+  strncat
+  strncmp
+  strncpy
+  strncpy_from_user
+  strndup_user
+  strnlen
+  strnstr
+  strpbrk
+  strrchr
+  strscpy
+  strsep
+  strspn
+  strstr
+  subsys_system_register
+  __sw_hweight16
+  __sw_hweight32
+  __sw_hweight64
+  __sw_hweight8
+  sync_file_create
+  sync_file_get_fence
+  synchronize_irq
+  synchronize_net
+  synchronize_rcu
+  syscon_regmap_lookup_by_phandle
+  sysctl_sched_features
+  sysctl_sched_latency
+  sysfs_add_file_to_group
+  sysfs_create_file_ns
+  sysfs_create_files
+  sysfs_create_group
+  sysfs_create_groups
+  sysfs_create_link
+  sysfs_emit
+  sysfs_emit_at
+  __sysfs_match_string
+  sysfs_notify
+  sysfs_remove_file_ns
+  sysfs_remove_group
+  sysfs_remove_groups
+  sysfs_remove_link
+  sysfs_streq
+  sysfs_update_group
+  sysrq_mask
+  system_freezable_wq
+  system_freezing_cnt
+  system_highpri_wq
+  system_long_wq
+  system_power_efficient_wq
+  system_state
+  system_unbound_wq
+  system_wq
+  sys_tz
+  task_active_pid_ns
+  tasklet_init
+  tasklet_kill
+  __tasklet_schedule
+  tasklet_setup
+  tasklet_unlock_wait
+  task_may_not_preempt
+  __task_pid_nr_ns
+  task_rq_lock
+  tcpci_get_tcpm_port
+  tcpci_irq
+  tcpci_register_port
+  tcpci_unregister_port
+  tcpm_cc_change
+  tcpm_is_debouncing
+  tcpm_pd_hard_reset
+  tcpm_pd_receive
+  tcpm_pd_transmit_complete
+  tcpm_sink_frs
+  tcpm_sourcing_vbus
+  tcpm_update_sink_capabilities
+  tcpm_vbus_change
+  thermal_cdev_update
+  thermal_cooling_device_unregister
+  thermal_of_cooling_device_register
+  thermal_zone_device_disable
+  thermal_zone_device_enable
+  thermal_zone_device_register
+  thermal_zone_device_unregister
+  thermal_zone_device_update
+  thermal_zone_get_temp
+  thermal_zone_of_sensor_register
+  thermal_zone_of_sensor_unregister
+  thread_group_cputime_adjusted
+  tick_nohz_get_idle_calls_cpu
+  time64_to_tm
+  topology_set_thermal_pressure
+  _totalram_pages
+  touch_softlockup_watchdog
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_handle_return
+  __traceiter_android_rvh_check_preempt_wakeup
+  __traceiter_android_rvh_cpu_cgroup_online
+  __traceiter_android_rvh_cpu_overutilized
+  __traceiter_android_rvh_dequeue_task
+  __traceiter_android_rvh_enqueue_task
+  __traceiter_android_rvh_find_energy_efficient_cpu
+  __traceiter_android_rvh_irqs_disable
+  __traceiter_android_rvh_irqs_enable
+  __traceiter_android_rvh_post_init_entity_util_avg
+  __traceiter_android_rvh_preempt_disable
+  __traceiter_android_rvh_preempt_enable
+  __traceiter_android_rvh_sched_fork
+  __traceiter_android_rvh_select_task_rq_fair
+  __traceiter_android_rvh_select_task_rq_rt
+  __traceiter_android_rvh_set_cpus_allowed_by_task
+  __traceiter_android_rvh_set_iowait
+  __traceiter_android_rvh_set_task_cpu
+  __traceiter_android_rvh_uclamp_eff_get
+  __traceiter_android_rvh_ufs_reprogram_all_keys
+  __traceiter_android_rvh_update_rt_rq_load_avg
+  __traceiter_android_rvh_util_est_update
+  __traceiter_android_vh_arch_set_freq_scale
+  __traceiter_android_vh_cpu_idle_enter
+  __traceiter_android_vh_cpu_idle_exit
+  __traceiter_android_vh_dup_task_struct
+  __traceiter_android_vh_ipi_stop
+  __traceiter_android_vh_scheduler_tick
+  __traceiter_android_vh_setscheduler_uclamp
+  __traceiter_android_vh_sysrq_crash
+  __traceiter_android_vh_try_to_freeze_todo_logging
+  __traceiter_android_vh_ufs_check_int_errors
+  __traceiter_android_vh_ufs_compl_command
+  __traceiter_android_vh_ufs_fill_prdt
+  __traceiter_android_vh_ufs_prepare_command
+  __traceiter_android_vh_ufs_send_command
+  __traceiter_android_vh_ufs_send_tm_command
+  __traceiter_android_vh_ufs_send_uic_command
+  __traceiter_android_vh_ufs_update_sdev
+  __traceiter_android_vh_ufs_update_sysfs
+  __traceiter_clock_set_rate
+  __traceiter_cpu_frequency
+  __traceiter_device_pm_callback_end
+  __traceiter_device_pm_callback_start
+  __traceiter_gpu_mem_total
+  __traceiter_pelt_cfs_tp
+  __traceiter_pelt_dl_tp
+  __traceiter_pelt_irq_tp
+  __traceiter_pelt_rt_tp
+  __traceiter_pelt_se_tp
+  __traceiter_sched_cpu_capacity_tp
+  __traceiter_sched_overutilized_tp
+  __traceiter_sched_switch
+  __traceiter_sched_util_est_cfs_tp
+  __traceiter_sched_util_est_se_tp
+  __traceiter_suspend_resume
+  trace_output_call
+  __tracepoint_android_rvh_check_preempt_wakeup
+  __tracepoint_android_rvh_cpu_cgroup_online
+  __tracepoint_android_rvh_cpu_overutilized
+  __tracepoint_android_rvh_dequeue_task
+  __tracepoint_android_rvh_enqueue_task
+  __tracepoint_android_rvh_find_energy_efficient_cpu
+  __tracepoint_android_rvh_irqs_disable
+  __tracepoint_android_rvh_irqs_enable
+  __tracepoint_android_rvh_post_init_entity_util_avg
+  __tracepoint_android_rvh_preempt_disable
+  __tracepoint_android_rvh_preempt_enable
+  __tracepoint_android_rvh_sched_fork
+  __tracepoint_android_rvh_select_task_rq_fair
+  __tracepoint_android_rvh_select_task_rq_rt
+  __tracepoint_android_rvh_set_cpus_allowed_by_task
+  __tracepoint_android_rvh_set_iowait
+  __tracepoint_android_rvh_set_task_cpu
+  __tracepoint_android_rvh_uclamp_eff_get
+  __tracepoint_android_rvh_ufs_reprogram_all_keys
+  __tracepoint_android_rvh_update_rt_rq_load_avg
+  __tracepoint_android_rvh_util_est_update
+  __tracepoint_android_vh_arch_set_freq_scale
+  __tracepoint_android_vh_cpu_idle_enter
+  __tracepoint_android_vh_cpu_idle_exit
+  __tracepoint_android_vh_dup_task_struct
+  __tracepoint_android_vh_ipi_stop
+  __tracepoint_android_vh_scheduler_tick
+  __tracepoint_android_vh_setscheduler_uclamp
+  __tracepoint_android_vh_sysrq_crash
+  __tracepoint_android_vh_try_to_freeze_todo_logging
+  __tracepoint_android_vh_ufs_check_int_errors
+  __tracepoint_android_vh_ufs_compl_command
+  __tracepoint_android_vh_ufs_fill_prdt
+  __tracepoint_android_vh_ufs_prepare_command
+  __tracepoint_android_vh_ufs_send_command
+  __tracepoint_android_vh_ufs_send_tm_command
+  __tracepoint_android_vh_ufs_send_uic_command
+  __tracepoint_android_vh_ufs_update_sdev
+  __tracepoint_android_vh_ufs_update_sysfs
+  __tracepoint_clock_set_rate
+  __tracepoint_cpu_frequency
+  __tracepoint_device_pm_callback_end
+  __tracepoint_device_pm_callback_start
+  __tracepoint_gpu_mem_total
+  __tracepoint_pelt_cfs_tp
+  __tracepoint_pelt_dl_tp
+  __tracepoint_pelt_irq_tp
+  __tracepoint_pelt_rt_tp
+  __tracepoint_pelt_se_tp
+  tracepoint_probe_register
+  tracepoint_probe_unregister
+  __tracepoint_sched_cpu_capacity_tp
+  __tracepoint_sched_overutilized_tp
+  __tracepoint_sched_switch
+  __tracepoint_sched_util_est_cfs_tp
+  __tracepoint_sched_util_est_se_tp
+  __tracepoint_suspend_resume
+  trace_print_array_seq
+  trace_print_bitmask_seq
+  trace_print_flags_seq
+  trace_print_hex_seq
+  trace_print_symbols_seq
+  trace_raw_output_prep
+  try_module_get
+  try_to_del_timer_sync
+  tty_flip_buffer_push
+  tty_insert_flip_string_fixed_flag
+  tty_kref_put
+  tty_port_tty_get
+  typec_switch_get_drvdata
+  typec_switch_register
+  typec_switch_unregister
+  uart_add_one_port
+  uart_console_device
+  uart_console_write
+  uart_get_baud_rate
+  uart_parse_options
+  uart_register_driver
+  uart_remove_one_port
+  uart_resume_port
+  uart_set_options
+  uart_suspend_port
+  uart_try_toggle_sysrq
+  uart_unregister_driver
+  uart_update_timeout
+  uart_write_wakeup
+  __ubsan_handle_cfi_check_fail_abort
+  uclamp_eff_value
+  __udelay
+  udp4_hwcsum
+  ufshcd_bkops_ctrl
+  ufshcd_hold
+  ufshcd_pltfrm_init
+  ufshcd_query_attr_retry
+  ufshcd_query_flag_retry
+  ufshcd_read_desc_param
+  ufshcd_release
+  ufshcd_remove
+  ufshcd_shutdown
+  ufshcd_system_resume
+  ufshcd_system_suspend
+  unlock_page
+  unmap_mapping_range
+  unpin_user_page
+  unregister_blkdev
+  __unregister_chrdev
+  unregister_chrdev_region
+  unregister_inet6addr_notifier
+  unregister_inetaddr_notifier
+  unregister_netdev
+  unregister_netdevice_many
+  unregister_netdevice_notifier
+  unregister_netdevice_queue
+  unregister_oom_notifier
+  unregister_pernet_device
+  unregister_pernet_subsys
+  unregister_pm_notifier
+  unregister_reboot_notifier
+  unregister_shrinker
+  unregister_syscore_ops
+  unregister_sysctl_table
+  unregister_virtio_device
+  unregister_virtio_driver
+  up
+  update_devfreq
+  ___update_load_avg
+  __update_load_avg_blocked_se
+  ___update_load_sum
+  update_rq_clock
+  up_read
+  up_write
+  usb_add_function
+  usb_add_hcd
+  usb_copy_descriptors
+  __usb_create_hcd
+  usb_disabled
+  usb_enable_autosuspend
+  usb_ep_autoconfig
+  usb_function_register
+  usb_function_unregister
+  usb_gadget_activate
+  usb_gadget_deactivate
+  usb_gadget_set_state
+  usb_hcd_is_primary_hcd
+  usb_hcd_platform_shutdown
+  usb_hub_find_child
+  usb_interface_id
+  usb_otg_state_string
+  usb_put_function_instance
+  usb_put_hcd
+  usb_register_notify
+  usb_remove_hcd
+  usb_role_switch_get_drvdata
+  usb_role_switch_register
+  usb_role_switch_unregister
+  usb_speed_string
+  usb_string_id
+  usb_unregister_notify
+  __usecs_to_jiffies
+  usleep_range_state
+  v4l2_ctrl_handler_free
+  v4l2_ctrl_handler_init_class
+  v4l2_ctrl_log_status
+  v4l2_ctrl_new_custom
+  v4l2_ctrl_new_std
+  v4l2_ctrl_new_std_menu
+  v4l2_device_register
+  v4l2_device_unregister
+  v4l2_fh_add
+  v4l2_fh_del
+  v4l2_fh_exit
+  v4l2_fh_init
+  v4l2_fh_open
+  v4l2_m2m_buf_queue
+  v4l2_m2m_buf_remove
+  v4l2_m2m_ctx_init
+  v4l2_m2m_ctx_release
+  v4l2_m2m_fop_mmap
+  v4l2_m2m_fop_poll
+  v4l2_m2m_get_curr_priv
+  v4l2_m2m_get_vq
+  v4l2_m2m_init
+  v4l2_m2m_ioctl_dqbuf
+  v4l2_m2m_ioctl_querybuf
+  v4l2_m2m_ioctl_reqbufs
+  v4l2_m2m_ioctl_streamoff
+  v4l2_m2m_ioctl_streamon
+  v4l2_m2m_job_finish
+  v4l2_m2m_next_buf
+  v4l2_m2m_qbuf
+  v4l2_m2m_release
+  vabits_actual
+  vb2_buffer_done
+  vb2_common_vm_ops
+  vb2_create_framevec
+  vb2_destroy_framevec
+  vb2_dma_sg_memops
+  vb2_dqbuf
+  vb2_fop_mmap
+  vb2_fop_poll
+  vb2_fop_read
+  vb2_fop_release
+  vb2_ioctl_create_bufs
+  vb2_ioctl_dqbuf
+  vb2_ioctl_expbuf
+  vb2_ioctl_qbuf
+  vb2_ioctl_querybuf
+  vb2_ioctl_reqbufs
+  vb2_ioctl_streamoff
+  vb2_ioctl_streamon
+  vb2_mmap
+  vb2_ops_wait_finish
+  vb2_ops_wait_prepare
+  vb2_plane_cookie
+  vb2_plane_vaddr
+  vb2_poll
+  vb2_qbuf
+  vb2_querybuf
+  vb2_queue_init
+  vb2_queue_release
+  vb2_reqbufs
+  vb2_streamoff
+  vb2_streamon
+  vb2_vmalloc_memops
+  vb2_wait_for_all_buffers
+  verify_pkcs7_signature
+  vfree
+  video_devdata
+  video_device_alloc
+  video_device_release
+  video_device_release_empty
+  video_ioctl2
+  __video_register_device
+  video_unregister_device
+  virtqueue_add_inbuf
+  virtqueue_add_outbuf
+  virtqueue_detach_unused_buf
+  virtqueue_get_buf
+  virtqueue_get_vring_size
+  virtqueue_kick
+  virtqueue_kick_prepare
+  virtqueue_notify
+  vmalloc
+  vmalloc_to_page
+  vmalloc_user
+  vmap
+  vmf_insert_pfn_prot
+  vm_map_pages
+  vm_map_ram
+  vm_unmap_ram
+  vprintk
+  vprintk_emit
+  vring_del_virtqueue
+  vring_interrupt
+  vring_new_virtqueue
+  vsnprintf
+  vunmap
+  vzalloc
+  vzalloc_node
+  wait_for_completion
+  wait_for_completion_interruptible
+  wait_for_completion_interruptible_timeout
+  wait_for_completion_timeout
+  wait_on_page_bit
+  wait_woken
+  __wake_up
+  __wake_up_locked
+  wake_up_process
+  wakeup_source_add
+  wakeup_source_create
+  wakeup_source_destroy
+  wakeup_source_register
+  wakeup_source_unregister
+  __wake_up_sync
+  __warn_printk
+  watchdog_init_timeout
+  watchdog_register_device
+  watchdog_set_restart_priority
+  watchdog_unregister_device
+  wireless_nlevent_flush
+  woken_wake_function
+  work_busy
+  __xfrm_state_destroy
+  xfrm_state_lookup_byspi
+  xfrm_stateonly_find
+  xhci_gen_setup
+  xhci_init_driver
+  xhci_resume
+  xhci_run
+  xhci_suspend
+  zs_compact
+  zs_create_pool
+  zs_destroy_pool
+  zs_free
+  zs_get_total_pages
+  zs_huge_class_size
+  zs_malloc
+  zs_map_object
+  zs_pool_stats
+  zs_unmap_object
diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom
new file mode 100644
index 0000000..b97eb4f
--- /dev/null
+++ b/android/abi_gki_aarch64_qcom
@@ -0,0 +1,2723 @@
+
+[abi_symbol_list]
+  access_process_vm
+  ack_all_badblocks
+  activate_task
+  add_cpu
+  add_device_randomness
+  add_memory
+  add_memory_subsection
+  add_timer
+  add_uevent_var
+  add_wait_queue
+  aes_encrypt
+  aes_expandkey
+  alarm_expires_remaining
+  alloc_anon_inode
+  alloc_chrdev_region
+  alloc_io_pgtable_ops
+  alloc_page_buffers
+  __alloc_pages
+  __alloc_percpu
+  __alloc_skb
+  alloc_skb_with_frags
+  alloc_swapdev_block
+  alloc_workqueue
+  amba_bustype
+  amba_driver_register
+  amba_driver_unregister
+  android_debug_for_each_module
+  android_debug_per_cpu_symbol
+  android_debug_symbol
+  android_rvh_probe_register
+  anon_inode_getfile
+  __arch_clear_user
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arch_freq_scale
+  arch_timer_read_counter
+  argv_free
+  argv_split
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  __arm_smccc_smc
+  __arm_smccc_sve_check
+  async_schedule_node
+  async_synchronize_cookie
+  _atomic_dec_and_lock
+  atomic_notifier_call_chain
+  atomic_notifier_chain_register
+  atomic_notifier_chain_unregister
+  autoremove_wake_function
+  available_idle_cpu
+  backlight_device_get_by_type
+  backlight_device_set_brightness
+  badblocks_clear
+  badblocks_exit
+  badblocks_init
+  badblocks_set
+  badblocks_show
+  badblocks_store
+  __balance_callbacks
+  balance_push_callback
+  bdev_check_media_change
+  bdevname
+  bdev_read_only
+  bd_link_disk_holder
+  bd_unlink_disk_holder
+  bio_add_page
+  bio_associate_blkg
+  bio_clone_fast
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_init
+  bio_put
+  bioset_exit
+  bioset_init
+  bio_split
+  bio_start_io_acct
+  bitmap_allocate_region
+  __bitmap_and
+  __bitmap_clear
+  __bitmap_complement
+  bitmap_find_next_zero_area_off
+  bitmap_free
+  __bitmap_or
+  bitmap_print_to_pagebuf
+  bitmap_release_region
+  __bitmap_replace
+  __bitmap_set
+  __bitmap_xor
+  bitmap_zalloc
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blk_cleanup_queue
+  blkdev_compat_ptr_ioctl
+  blkdev_get_by_dev
+  __blkdev_issue_discard
+  blkdev_put
+  blk_execute_rq_nowait
+  blk_finish_plug
+  blk_freeze_queue_start
+  blk_get_queue
+  blk_get_request
+  blk_ksm_get_slot_idx
+  blk_ksm_register
+  blk_mark_disk_dead
+  blk_mq_alloc_request
+  blk_mq_alloc_request_hctx
+  blk_mq_complete_request_remote
+  blk_mq_delay_kick_requeue_list
+  blk_mq_free_request
+  blk_mq_freeze_queue
+  blk_mq_freeze_queue_wait
+  blk_mq_freeze_queue_wait_timeout
+  blk_mq_init_queue
+  blk_mq_map_queues
+  blk_mq_pci_map_queues
+  blk_mq_requeue_request
+  blk_mq_rq_cpu
+  blk_mq_tagset_busy_iter
+  blk_mq_tagset_wait_completed_request
+  blk_mq_tag_to_rq
+  blk_mq_unfreeze_queue
+  blk_mq_update_nr_hw_queues
+  blk_put_queue
+  blk_put_request
+  blk_queue_chunk_sectors
+  blk_queue_dma_alignment
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_flag_test_and_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_write_same_sectors
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  blk_queue_split
+  blk_queue_virt_boundary
+  blk_rq_map_user
+  blk_rq_map_user_iov
+  blk_rq_unmap_user
+  blk_set_stacking_limits
+  blk_start_plug
+  blk_sync_queue
+  blocking_notifier_call_chain
+  blocking_notifier_chain_register
+  blocking_notifier_chain_unregister
+  bmap
+  bpf_trace_run10
+  bpf_trace_run11
+  bpf_trace_run12
+  bpf_trace_run1
+  bpf_trace_run2
+  bpf_trace_run3
+  bpf_trace_run4
+  bpf_trace_run5
+  bpf_trace_run6
+  bpf_trace_run7
+  bpf_trace_run8
+  bpf_trace_run9
+  bus_find_device
+  bus_for_each_dev
+  bus_register
+  bus_set_iommu
+  bus_unregister
+  caches_clean_inval_pou
+  call_rcu
+  call_rcu_tasks
+  call_rcu_tasks_trace
+  call_srcu
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  cancel_work_sync
+  capable
+  cdev_add
+  cdev_alloc
+  cdev_del
+  cdev_device_add
+  cdev_device_del
+  cdev_init
+  __cfi_slowpath_diag
+  cgroup_path_ns
+  cgroup_taskset_first
+  cgroup_taskset_next
+  __check_object_size
+  check_preempt_curr
+  check_zeroed_user
+  __class_create
+  class_destroy
+  class_find_device
+  class_for_each_device
+  class_interface_unregister
+  __class_register
+  class_unregister
+  cleanup_srcu_struct
+  clear_page
+  __ClearPageMovable
+  clk_bulk_disable
+  clk_bulk_enable
+  clk_bulk_prepare
+  clk_bulk_put_all
+  clk_bulk_unprepare
+  __clk_determine_rate
+  clk_disable
+  clk_enable
+  clk_fixed_factor_ops
+  clk_fixed_rate_ops
+  clk_get
+  __clk_get_hw
+  __clk_get_name
+  clk_get_parent
+  clk_get_rate
+  clk_get_sys
+  clk_hw_get_flags
+  clk_hw_get_name
+  clk_hw_get_num_parents
+  clk_hw_get_parent
+  clk_hw_get_parent_by_index
+  clk_hw_get_rate
+  clk_hw_is_enabled
+  clk_hw_is_prepared
+  clk_hw_register
+  clk_hw_round_rate
+  clk_hw_unregister
+  __clk_is_enabled
+  __clk_mux_determine_rate_closest
+  clk_notifier_register
+  clk_notifier_unregister
+  clk_prepare
+  clk_put
+  clk_restore_context
+  clk_round_rate
+  clk_save_context
+  clk_set_parent
+  clk_set_rate
+  clk_sync_state
+  clk_unprepare
+  close_fd
+  cma_alloc
+  cma_release
+  compat_ptr_ioctl
+  complete
+  complete_all
+  completion_done
+  cond_synchronize_rcu
+  config_ep_by_speed
+  configfs_register_group
+  configfs_register_subsystem
+  configfs_unregister_subsystem
+  config_group_init
+  config_group_init_type_name
+  config_item_get
+  config_item_put
+  config_item_set_name
+  console_stop
+  console_suspend_enabled
+  __const_udelay
+  consume_skb
+  contig_page_data
+  _copy_from_iter
+  copy_from_kernel_nofault
+  copy_page
+  __cpu_active_mask
+  cpu_bit_bitmap
+  cpufreq_cpu_get
+  cpufreq_cpu_get_raw
+  cpufreq_cpu_put
+  cpufreq_disable_fast_switch
+  cpufreq_driver_fast_switch
+  cpufreq_driver_resolve_freq
+  __cpufreq_driver_target
+  cpufreq_enable_boost_support
+  cpufreq_enable_fast_switch
+  cpufreq_freq_attr_scaling_available_freqs
+  cpufreq_freq_attr_scaling_boost_freqs
+  cpufreq_generic_frequency_table_verify
+  cpufreq_get_driver_data
+  cpufreq_get_policy
+  cpufreq_register_driver
+  cpufreq_register_governor
+  cpufreq_register_notifier
+  cpufreq_unregister_driver
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  __cpuhp_setup_state_cpuslocked
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpuidle_governor_latency_req
+  cpuidle_register_governor
+  cpu_irqtime
+  cpu_is_hotpluggable
+  cpu_latency_qos_add_request
+  cpu_latency_qos_remove_request
+  cpu_latency_qos_request_active
+  cpu_latency_qos_update_request
+  cpumask_any_and_distribute
+  cpumask_next
+  cpumask_next_and
+  cpu_number
+  __cpu_online_mask
+  cpu_pm_register_notifier
+  cpu_pm_unregister_notifier
+  __cpu_possible_mask
+  __cpu_present_mask
+  cpupri_find_fitness
+  cpu_scale
+  cpus_read_lock
+  cpus_read_unlock
+  cpu_subsys
+  cpu_topology
+  crc32_be
+  crc8
+  crc8_populate_msb
+  crypto_ahash_digest
+  crypto_alloc_ahash
+  crypto_alloc_base
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_dequeue_request
+  crypto_destroy_tfm
+  crypto_enqueue_request
+  crypto_has_alg
+  crypto_inc
+  crypto_init_queue
+  crypto_unregister_ahash
+  crypto_unregister_skcipher
+  css_next_child
+  csum_partial
+  _ctype
+  datagram_poll
+  deactivate_task
+  debugfs_attr_read
+  debugfs_attr_write
+  debugfs_create_blob
+  debugfs_create_bool
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_create_file_unsafe
+  debugfs_create_u32
+  debugfs_create_u8
+  debugfs_create_ulong
+  debugfs_create_x32
+  debugfs_create_x64
+  debugfs_create_x8
+  debugfs_file_get
+  debugfs_file_put
+  debugfs_lookup
+  debugfs_remove
+  debugfs_rename
+  debug_locks_off
+  debug_locks_silent
+  dec_node_page_state
+  dec_zone_page_state
+  default_llseek
+  default_wake_function
+  deferred_free
+  delayed_work_timer_fn
+  del_gendisk
+  del_timer
+  del_timer_sync
+  destroy_workqueue
+  dev_change_flags
+  dev_coredumpm
+  dev_driver_string
+  _dev_err
+  dev_err_probe
+  devfreq_get_devfreq_by_node
+  dev_fwnode
+  dev_get_by_index
+  dev_get_by_name
+  dev_get_by_name_rcu
+  dev_get_regmap
+  device_add
+  device_add_disk
+  device_add_groups
+  device_create
+  device_create_file
+  device_del
+  device_destroy
+  device_find_child
+  device_for_each_child
+  device_get_match_data
+  device_get_phy_mode
+  device_initialize
+  device_init_wakeup
+  device_link_add
+  device_match_fwnode
+  device_match_name
+  device_property_present
+  device_property_read_string
+  device_property_read_u16_array
+  device_property_read_u32_array
+  device_register
+  device_remove_file
+  device_remove_file_self
+  device_show_int
+  device_store_int
+  device_unregister
+  device_wakeup_disable
+  _dev_info
+  devm_add_action
+  devm_alloc_etherdev_mqs
+  devm_blk_ksm_init
+  devm_clk_bulk_get_all
+  devm_clk_get
+  devm_clk_get_optional
+  devm_clk_hw_register
+  devm_clk_register
+  devm_device_remove_group
+  devm_drm_panel_bridge_add
+  devm_extcon_dev_allocate
+  devm_extcon_dev_register
+  devm_extcon_dev_unregister
+  devm_extcon_register_notifier
+  devm_free_irq
+  devm_gpiod_get
+  devm_gpiod_get_optional
+  devm_gpio_request
+  devm_gpio_request_one
+  devm_hwspin_lock_register
+  devm_iio_channel_get
+  devm_iio_channel_get_all
+  devm_iio_device_alloc
+  __devm_iio_device_register
+  devm_iio_triggered_buffer_setup_ext
+  devm_input_allocate_device
+  devm_ioremap
+  devm_ioremap_resource
+  devm_ioremap_wc
+  devm_iounmap
+  devm_kasprintf
+  devm_kfree
+  devm_kmalloc
+  devm_krealloc
+  devm_kstrdup
+  devm_led_classdev_register_ext
+  devm_nvmem_cell_get
+  devm_nvmem_device_get
+  devm_nvmem_register
+  devm_of_clk_add_hw_provider
+  devm_of_clk_del_provider
+  devm_of_icc_get
+  __devm_of_phy_provider_register
+  devm_of_platform_populate
+  devm_of_pwm_get
+  devm_pci_alloc_host_bridge
+  devm_phy_create
+  devm_phy_get
+  devm_pinctrl_get
+  devm_pinctrl_put
+  devm_pinctrl_register
+  devm_platform_get_and_ioremap_resource
+  devm_platform_ioremap_resource
+  devm_platform_ioremap_resource_byname
+  devm_power_supply_register
+  devm_regmap_del_irq_chip
+  devm_regmap_field_alloc
+  __devm_regmap_init
+  __devm_regmap_init_i2c
+  __devm_regmap_init_mmio_clk
+  devm_regulator_bulk_get
+  devm_regulator_get
+  devm_regulator_get_optional
+  devm_regulator_register
+  devm_regulator_register_notifier
+  devm_request_any_context_irq
+  __devm_request_region
+  devm_request_threaded_irq
+  __devm_reset_control_get
+  devm_reset_controller_register
+  devm_rtc_allocate_device
+  __devm_rtc_register_device
+  devm_thermal_of_cooling_device_register
+  devm_thermal_zone_of_sensor_register
+  devm_usb_get_phy_by_node
+  _dev_notice
+  dev_pm_domain_attach
+  dev_pm_domain_attach_by_name
+  dev_pm_domain_detach
+  dev_pm_genpd_add_notifier
+  dev_pm_genpd_remove_notifier
+  dev_pm_genpd_set_next_wakeup
+  dev_pm_genpd_set_performance_state
+  dev_pm_opp_add
+  dev_pm_opp_adjust_voltage
+  dev_pm_opp_disable
+  dev_pm_opp_enable
+  dev_pm_opp_find_freq_ceil
+  dev_pm_opp_find_freq_exact
+  dev_pm_opp_find_freq_floor
+  dev_pm_opp_get_opp_count
+  dev_pm_opp_get_voltage
+  dev_pm_opp_of_add_table
+  dev_pm_opp_of_cpumask_remove_table
+  dev_pm_opp_of_find_icc_paths
+  dev_pm_opp_of_register_em
+  dev_pm_opp_of_remove_table
+  dev_pm_opp_put
+  dev_pm_opp_put_clkname
+  dev_pm_opp_remove
+  dev_pm_opp_remove_all_dynamic
+  dev_pm_opp_set_clkname
+  dev_pm_opp_set_opp
+  dev_pm_opp_set_rate
+  dev_pm_opp_set_sharing_cpus
+  dev_pm_qos_add_notifier
+  dev_pm_qos_add_request
+  dev_pm_qos_expose_latency_tolerance
+  dev_pm_qos_hide_latency_tolerance
+  dev_pm_qos_remove_notifier
+  dev_pm_qos_remove_request
+  dev_pm_qos_update_request
+  dev_pm_qos_update_user_latency_tolerance
+  devres_add
+  __devres_alloc_node
+  devres_free
+  devres_release
+  dev_set_name
+  _dev_warn
+  disable_irq
+  disable_irq_nosync
+  disable_percpu_irq
+  disk_end_io_acct
+  disk_stack_limits
+  disk_start_io_acct
+  divider_get_val
+  divider_recalc_rate
+  divider_ro_round_rate_parent
+  divider_round_rate_parent
+  dma_alloc_attrs
+  dma_alloc_noncontiguous
+  dma_alloc_pages
+  dma_async_device_register
+  dma_async_device_unregister
+  dma_async_tx_descriptor_init
+  dma_buf_attach
+  dma_buf_begin_cpu_access
+  dma_buf_begin_cpu_access_partial
+  dma_buf_detach
+  dma_buf_end_cpu_access
+  dma_buf_end_cpu_access_partial
+  dma_buf_export
+  dma_buf_fd
+  dma_buf_get
+  dma_buf_get_flags
+  dma_buf_map_attachment
+  dma_buf_put
+  dma_buf_set_name
+  dma_buf_unmap_attachment
+  dma_contiguous_default_area
+  dma_fence_add_callback
+  dma_fence_array_create
+  dma_fence_array_ops
+  dma_fence_context_alloc
+  dma_fence_default_wait
+  dma_fence_enable_sw_signaling
+  dma_fence_get_status
+  dma_fence_init
+  dma_fence_release
+  dma_fence_remove_callback
+  dma_fence_signal
+  dma_fence_signal_locked
+  dma_fence_signal_timestamp_locked
+  dma_fence_wait_timeout
+  dma_free_attrs
+  dma_free_noncontiguous
+  dma_free_pages
+  dma_get_sgtable_attrs
+  dma_get_slave_channel
+  dma_heap_add
+  dma_heap_buffer_alloc
+  dma_heap_buffer_free
+  dma_heap_find
+  dma_heap_get_dev
+  dma_heap_get_drvdata
+  dma_heap_get_name
+  dmam_alloc_attrs
+  dma_map_page_attrs
+  dma_map_resource
+  dma_map_sg_attrs
+  dma_map_sgtable
+  dma_max_mapping_size
+  dmam_free_coherent
+  dma_release_channel
+  dma_request_chan
+  dma_resv_fini
+  dma_resv_init
+  dma_set_coherent_mask
+  dma_set_mask
+  dma_sync_sg_for_cpu
+  dma_sync_sg_for_device
+  dma_sync_single_for_cpu
+  dma_sync_single_for_device
+  dma_unmap_page_attrs
+  dma_unmap_resource
+  dma_unmap_sg_attrs
+  dma_vmap_noncontiguous
+  dma_vunmap_noncontiguous
+  do_exit
+  __do_once_done
+  __do_once_start
+  do_trace_rcu_torture_read
+  double_rq_lock
+  do_wait_intr
+  do_wait_intr_irq
+  down_read
+  down_write
+  d_path
+  dput
+  drain_workqueue
+  driver_find_device
+  driver_register
+  driver_unregister
+  __drm_atomic_helper_connector_reset
+  drm_atomic_helper_update_legacy_modeset_state
+  drm_atomic_helper_wait_for_vblanks
+  drm_atomic_set_fence_for_plane
+  drm_atomic_set_mode_for_crtc
+  drm_atomic_state_default_release
+  drm_atomic_state_init
+  drm_bridge_chain_disable
+  drm_bridge_chain_enable
+  drm_bridge_chain_post_disable
+  drm_bridge_chain_pre_enable
+  drm_client_buffer_vmap
+  drm_client_framebuffer_create
+  drm_client_framebuffer_delete
+  drm_client_init
+  drm_client_modeset_commit
+  drm_client_modeset_commit_locked
+  drm_client_modeset_probe
+  drm_client_register
+  drm_connector_list_update
+  drm_crtc_vblank_reset
+  drm_dp_atomic_find_vcpi_slots
+  drm_dp_atomic_release_vcpi_slots
+  drm_dp_calc_pbn_mode
+  drm_dp_check_act_status
+  drm_dp_find_vcpi_slots
+  drm_dp_mst_allocate_vcpi
+  drm_dp_mst_deallocate_vcpi
+  drm_dp_mst_detect_port
+  drm_dp_mst_dump_topology
+  drm_dp_mst_get_edid
+  drm_dp_mst_get_port_malloc
+  drm_dp_mst_hpd_irq
+  drm_dp_mst_put_port_malloc
+  drm_dp_mst_reset_vcpi_slots
+  drm_dp_mst_topology_mgr_destroy
+  drm_dp_mst_topology_mgr_init
+  drm_dp_mst_topology_mgr_set_mst
+  drm_dp_send_power_updown_phy
+  drm_dp_update_payload_part1
+  drm_dp_update_payload_part2
+  drm_edid_duplicate
+  drm_edid_is_valid
+  drm_event_reserve_init_locked
+  drm_framebuffer_lookup
+  drm_framebuffer_remove
+  drm_framebuffer_unregister_private
+  drm_get_connector_status_name
+  drm_is_current_master
+  drm_kms_helper_poll_disable
+  drm_kms_helper_poll_enable
+  drm_master_get
+  drm_master_put
+  drm_mode_convert_umode
+  drm_mode_create_dp_colorspace_property
+  drm_mode_create_tile_group
+  drm_mode_destroy
+  drm_mode_is_420_only
+  drm_mode_match
+  drm_mode_prune_invalid
+  drm_mode_set_crtcinfo
+  drm_mode_set_name
+  drm_mode_sort
+  drm_object_property_set_value
+  drm_plane_from_index
+  drm_wait_one_vblank
+  __dynamic_dev_dbg
+  __dynamic_pr_debug
+  edac_device_add_device
+  edac_device_alloc_ctl_info
+  edac_device_alloc_index
+  edac_device_del_device
+  edac_device_free_ctl_info
+  edac_device_handle_ce_count
+  edac_device_handle_ue_count
+  enable_irq
+  enable_percpu_irq
+  ethnl_cable_test_amplitude
+  ethnl_cable_test_fault_length
+  ethnl_cable_test_pulse
+  ethnl_cable_test_result
+  ethnl_cable_test_step
+  ethtool_convert_legacy_u32_to_link_mode
+  ethtool_convert_link_mode_to_legacy_u32
+  eventfd_ctx_fdget
+  eventfd_ctx_fileget
+  eventfd_ctx_put
+  eventfd_ctx_remove_wait_queue
+  eventfd_signal
+  event_triggers_call
+  extcon_get_edev_by_phandle
+  extcon_get_edev_name
+  extcon_get_extcon_dev
+  extcon_get_property
+  extcon_get_property_capability
+  extcon_get_state
+  extcon_register_notifier
+  extcon_set_property
+  extcon_set_property_capability
+  extcon_set_state
+  extcon_set_state_sync
+  fasync_helper
+  __fdget
+  fd_install
+  fget
+  file_path
+  _find_first_bit
+  _find_first_zero_bit
+  _find_next_bit
+  __find_vma
+  find_vpid
+  finish_wait
+  firmware_request_nowarn
+  flow_block_cb_setup_simple
+  flow_rule_match_basic
+  flow_rule_match_ipv4_addrs
+  flow_rule_match_ports
+  flow_rule_match_vlan
+  flush_dcache_page
+  flush_delayed_fput
+  flush_delayed_work
+  flush_signals
+  flush_work
+  flush_workqueue
+  fput
+  free_buffer_head
+  free_io_pgtable_ops
+  free_irq
+  __free_pages
+  free_pages
+  free_percpu
+  free_percpu_irq
+  freq_qos_add_request
+  freq_qos_remove_request
+  freq_qos_update_request
+  fsync_bdev
+  ftrace_dump
+  fwnode_find_reference
+  fwnode_get_next_child_node
+  fwnode_handle_get
+  fwnode_handle_put
+  fwnode_property_present
+  fwnode_property_read_string
+  fwnode_property_read_u32_array
+  generic_device_group
+  generic_file_llseek
+  generic_handle_domain_irq
+  generic_handle_irq
+  generic_iommu_put_resv_regions
+  geni_icc_disable
+  geni_icc_enable
+  geni_icc_get
+  geni_icc_set_bw
+  geni_se_clk_freq_match
+  geni_se_config_packing
+  geni_se_get_qup_hw_version
+  geni_se_init
+  geni_se_resources_off
+  geni_se_resources_on
+  geni_se_rx_dma_prep
+  geni_se_rx_dma_unprep
+  geni_se_select_mode
+  geni_se_tx_dma_prep
+  geni_se_tx_dma_unprep
+  genphy_check_and_restart_aneg
+  __genphy_config_aneg
+  genphy_c45_an_config_aneg
+  genphy_c45_check_and_restart_aneg
+  genphy_c45_pma_setup_forced
+  genphy_c45_read_status
+  genphy_read_abilities
+  genphy_read_lpa
+  genphy_read_mmd_unsupported
+  genphy_read_status
+  genphy_read_status_fixed
+  genphy_restart_aneg
+  genphy_resume
+  genphy_setup_forced
+  genphy_soft_reset
+  genphy_suspend
+  genphy_update_link
+  genphy_write_mmd_unsupported
+  gen_pool_add_owner
+  gen_pool_alloc_algo_owner
+  gen_pool_avail
+  gen_pool_best_fit
+  gen_pool_create
+  gen_pool_destroy
+  gen_pool_first_fit_order_align
+  gen_pool_free_owner
+  gen_pool_has_addr
+  gen_pool_set_algo
+  gen_pool_size
+  gen_pool_virt_to_phys
+  getboottime64
+  get_cpu_device
+  get_device
+  get_each_dmabuf
+  get_each_object_track
+  __get_free_pages
+  get_governor_parent_kobj
+  get_option
+  get_page_owner_handle
+  get_pfnblock_flags_mask
+  get_pid_task
+  get_random_bytes
+  get_sg_io_hdr
+  get_slabinfo
+  get_state_synchronize_rcu
+  get_state_synchronize_srcu
+  __get_task_comm
+  get_task_mm
+  get_task_pid
+  get_unmapped_area
+  get_unused_fd_flags
+  get_user_ifreq
+  get_zeroed_page
+  gf128mul_lle
+  gic_cpu_init
+  gic_dist_init
+  gic_dist_wait_for_rwp
+  gic_nonsecure_priorities
+  gic_resume
+  gic_v2_resume
+  gov_attr_set_init
+  gov_attr_set_put
+  governor_sysfs_ops
+  gpiochip_add_data_with_key
+  gpiochip_add_pin_range
+  gpiochip_generic_free
+  gpiochip_generic_request
+  gpiochip_get_data
+  gpiochip_line_is_valid
+  gpiochip_lock_as_irq
+  gpiochip_remove
+  gpiochip_unlock_as_irq
+  gpiod_direction_input
+  gpiod_direction_output
+  gpiod_direction_output_raw
+  gpiod_get_direction
+  gpiod_get_optional
+  gpiod_get_raw_value
+  gpiod_get_value
+  gpiod_set_raw_value
+  gpiod_set_value_cansleep
+  gpiod_to_irq
+  gpio_free
+  gpio_free_array
+  gpio_request
+  gpio_to_desc
+  gro_cells_destroy
+  gro_cells_init
+  gro_cells_receive
+  handle_bad_irq
+  handle_edge_irq
+  handle_fasteoi_ack_irq
+  handle_fasteoi_irq
+  handle_level_irq
+  handle_nested_irq
+  handle_simple_irq
+  handle_sysrq
+  hashlen_string
+  hex_dump_to_buffer
+  housekeeping_cpumask
+  housekeeping_overridden
+  housekeeping_test_cpu
+  hrtimer_active
+  hrtimer_cancel
+  hrtimer_forward
+  __hrtimer_get_remaining
+  hrtimer_init
+  hrtimer_init_sleeper
+  hrtimer_start_range_ns
+  hrtimer_try_to_cancel
+  hvc_alloc
+  hvc_kick
+  hvc_poll
+  hvc_remove
+  hwspin_lock_free
+  hwspin_lock_request_specific
+  __hwspin_lock_timeout
+  __hwspin_unlock
+  hypervisor_kobj
+  i2c_add_adapter
+  i2c_del_adapter
+  i2c_del_driver
+  i2c_get_dma_safe_msg_buf
+  i2c_put_dma_safe_msg_buf
+  i2c_register_driver
+  i2c_smbus_read_i2c_block_data
+  i3c_device_disable_ibi
+  i3c_device_enable_ibi
+  i3c_device_free_ibi
+  i3c_device_get_info
+  i3c_device_request_ibi
+  i3cdev_to_dev
+  i3c_generic_ibi_alloc_pool
+  i3c_generic_ibi_free_pool
+  i3c_generic_ibi_get_free_slot
+  i3c_generic_ibi_recycle_slot
+  i3c_master_add_i3c_dev_locked
+  i3c_master_disec_locked
+  i3c_master_do_daa
+  i3c_master_enec_locked
+  i3c_master_entdaa_locked
+  i3c_master_get_free_addr
+  i3c_master_queue_ibi
+  i3c_master_register
+  i3c_master_set_info
+  i3c_master_unregister
+  icc_get
+  icc_link_create
+  icc_node_add
+  icc_node_create
+  icc_node_del
+  icc_node_destroy
+  icc_nodes_remove
+  icc_provider_add
+  icc_provider_del
+  icc_put
+  icc_set_bw
+  icc_set_tag
+  icc_sync_state
+  ida_alloc_range
+  ida_free
+  idr_alloc
+  idr_alloc_cyclic
+  idr_alloc_u32
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_get_next
+  idr_preload
+  idr_remove
+  idr_replace
+  iio_alloc_pollfunc
+  iio_buffer_init
+  iio_buffer_put
+  iio_channel_get
+  iio_channel_get_all
+  iio_channel_release
+  iio_channel_release_all
+  iio_dealloc_pollfunc
+  iio_device_attach_buffer
+  iio_device_claim_direct_mode
+  iio_device_id
+  iio_device_release_direct_mode
+  iio_get_time_ns
+  iio_kfifo_allocate
+  iio_push_event
+  iio_push_to_buffers
+  iio_read_channel_processed
+  iio_read_channel_raw
+  iio_read_const_attr
+  iio_trigger_alloc
+  iio_triggered_buffer_cleanup
+  iio_triggered_buffer_setup_ext
+  iio_trigger_free
+  iio_trigger_notify_done
+  iio_trigger_poll
+  __iio_trigger_register
+  iio_trigger_unregister
+  iio_update_buffers
+  iio_validate_scan_mask_onehot
+  iio_write_channel_raw
+  import_iovec
+  in4_pton
+  inc_node_page_state
+  inc_zone_page_state
+  in_egroup_p
+  inet6_ioctl
+  __inet6_lookup_established
+  inet_ioctl
+  __inet_lookup_established
+  init_iova_domain
+  init_net
+  init_pid_ns
+  init_pseudo
+  __init_rwsem
+  init_srcu_struct
+  __init_swait_queue_head
+  init_task
+  init_timer_key
+  init_uts_ns
+  init_wait_entry
+  __init_waitqueue_head
+  input_allocate_device
+  input_close_device
+  input_event
+  input_ff_create
+  input_ff_destroy
+  input_free_device
+  input_open_device
+  input_register_device
+  input_register_handle
+  input_register_handler
+  input_set_abs_params
+  input_set_capability
+  input_set_poll_interval
+  input_setup_polling
+  input_unregister_handle
+  input_unregister_handler
+  interval_tree_insert
+  interval_tree_iter_first
+  interval_tree_iter_next
+  interval_tree_remove
+  int_pow
+  int_sqrt
+  invalidate_bdev
+  iomem_resource
+  iommu_alloc_resv_region
+  iommu_attach_device
+  iommu_detach_device
+  iommu_device_register
+  iommu_device_sysfs_add
+  iommu_device_sysfs_remove
+  iommu_device_unregister
+  iommu_dma_enable_best_fit_algo
+  iommu_dma_get_resv_regions
+  iommu_domain_alloc
+  iommu_domain_free
+  iommu_fwspec_add_ids
+  iommu_fwspec_free
+  iommu_get_domain_for_dev
+  iommu_get_msi_cookie
+  iommu_group_for_each_dev
+  iommu_group_get
+  iommu_group_get_iommudata
+  iommu_group_put
+  iommu_group_ref_get
+  iommu_group_remove_device
+  iommu_group_set_iommudata
+  iommu_iova_to_phys
+  iommu_map
+  iommu_map_atomic
+  iommu_map_sg
+  iommu_present
+  iommu_put_dma_cookie
+  iommu_unmap
+  __ioread32_copy
+  __ioremap
+  iounmap
+  iov_iter_init
+  iov_iter_revert
+  __iowrite32_copy
+  ip_compute_csum
+  ipi_desc_get
+  ip_route_output_flow
+  iput
+  __ipv6_addr_type
+  ipv6_ext_hdr
+  ipv6_skip_exthdr
+  ipv6_stub
+  irq_check_status_bit
+  irq_chip_ack_parent
+  irq_chip_disable_parent
+  irq_chip_enable_parent
+  irq_chip_eoi_parent
+  irq_chip_get_parent_state
+  irq_chip_mask_parent
+  irq_chip_retrigger_hierarchy
+  irq_chip_set_affinity_parent
+  irq_chip_set_parent_state
+  irq_chip_set_type_parent
+  irq_chip_set_vcpu_affinity_parent
+  irq_chip_set_wake_parent
+  irq_chip_unmask_parent
+  irq_create_fwspec_mapping
+  irq_dispose_mapping
+  __irq_domain_add
+  irq_domain_alloc_irqs_parent
+  irq_domain_create_hierarchy
+  irq_domain_disconnect_hierarchy
+  irq_domain_free_irqs_common
+  irq_domain_free_irqs_parent
+  irq_domain_get_irq_data
+  irq_domain_remove
+  irq_domain_set_hwirq_and_chip
+  irq_domain_set_info
+  irq_domain_update_bus_token
+  irq_domain_xlate_twocell
+  irq_do_set_affinity
+  irq_find_matching_fwspec
+  irq_get_irqchip_state
+  irq_get_irq_data
+  irq_modify_status
+  irq_of_parse_and_map
+  __irq_resolve_mapping
+  irq_set_affinity_hint
+  irq_set_affinity_notifier
+  irq_set_chained_handler_and_data
+  irq_set_chip_and_handler_name
+  irq_set_chip_data
+  __irq_set_handler
+  irq_set_handler_data
+  irq_set_irqchip_state
+  irq_set_irq_type
+  irq_set_irq_wake
+  irq_set_parent
+  irq_to_desc
+  irq_work_queue
+  irq_work_queue_on
+  irq_work_sync
+  is_dma_buf_file
+  isolate_and_split_free_page
+  isolate_anon_lru_page
+  is_vmalloc_addr
+  iterate_fd
+  jiffies
+  jiffies_to_msecs
+  jiffies_to_usecs
+  kasan_flag_enabled
+  kasprintf
+  kernel_bind
+  kernel_connect
+  kernel_getsockname
+  kernel_kobj
+  kernel_power_off
+  kernel_recvmsg
+  kernel_restart
+  kernel_sendmsg
+  kernfs_find_and_get_ns
+  kernfs_notify
+  kernfs_put
+  kern_mount
+  kern_unmount
+  __kfifo_in
+  __kfifo_out
+  kfree
+  kfree_const
+  kfree_skb
+  kfree_skb_list
+  kick_all_cpus_sync
+  kill_anon_super
+  kill_fasync
+  kimage_vaddr
+  kimage_voffset
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order_trace
+  kmem_cache_alloc
+  kmem_cache_alloc_trace
+  kmem_cache_create
+  kmem_cache_create_usercopy
+  kmem_cache_destroy
+  kmem_cache_free
+  kmemdup
+  kmsg_dump_get_buffer
+  kmsg_dump_register
+  kmsg_dump_rewind
+  kmsg_dump_unregister
+  kobject_add
+  kobject_create_and_add
+  kobject_del
+  kobject_get
+  kobject_get_path
+  kobject_init
+  kobject_init_and_add
+  kobject_put
+  kobject_set_name
+  kobject_uevent
+  kobj_sysfs_ops
+  krealloc
+  kset_create_and_add
+  kset_find_obj
+  kset_unregister
+  ksize
+  ksoftirqd
+  kstat
+  kstat_irqs_cpu
+  kstat_irqs_usr
+  kstrdup
+  kstrdup_const
+  kstrndup
+  kstrtobool
+  kstrtoint
+  kstrtoll
+  kstrtos8_from_user
+  kstrtou16
+  kstrtou16_from_user
+  kstrtou8
+  kstrtou8_from_user
+  kstrtouint
+  kstrtouint_from_user
+  kstrtoul_from_user
+  kstrtoull
+  kstrtoull_from_user
+  kswapd
+  kthread_bind
+  kthread_bind_mask
+  kthread_cancel_work_sync
+  kthread_create_on_node
+  kthread_flush_worker
+  __kthread_init_worker
+  kthread_queue_delayed_work
+  kthread_queue_work
+  kthread_should_stop
+  kthread_stop
+  kthread_worker_fn
+  ktime_add_safe
+  ktime_get
+  ktime_get_mono_fast_ns
+  ktime_get_real_ts64
+  ktime_get_seconds
+  ktime_get_ts64
+  ktime_get_with_offset
+  kvfree
+  kvmalloc_node
+  led_classdev_flash_register_ext
+  led_classdev_flash_unregister
+  led_classdev_unregister
+  led_trigger_event
+  led_trigger_register_simple
+  led_trigger_unregister_simple
+  __list_add_valid
+  __list_del_entry_valid
+  list_sort
+  llist_add_batch
+  llist_reverse_order
+  __local_bh_enable_ip
+  __lock_page
+  lock_sock_nested
+  log_post_read_mmio
+  log_post_write_mmio
+  log_read_mmio
+  log_write_mmio
+  lookup_page_ext
+  match_string
+  mbox_chan_received_data
+  mbox_chan_txdone
+  mbox_client_txdone
+  mbox_controller_register
+  mbox_controller_unregister
+  mbox_free_channel
+  mbox_request_channel
+  mbox_send_message
+  mdiobus_alloc_size
+  mdiobus_free
+  mdiobus_get_phy
+  __mdiobus_read
+  mdiobus_read
+  mdiobus_unregister
+  __mdiobus_write
+  mdiobus_write
+  mdio_device_create
+  mdio_device_free
+  memblock_end_of_DRAM
+  memblock_free
+  __memcat_p
+  memchr
+  memchr_inv
+  memcmp
+  memcpy
+  __memcpy_fromio
+  __memcpy_toio
+  mem_dump_obj
+  memdup_user
+  memmove
+  memory_block_size_bytes
+  memory_read_from_buffer
+  memparse
+  mempool_alloc
+  mempool_alloc_slab
+  mempool_create
+  mempool_create_node
+  mempool_destroy
+  mempool_free
+  mempool_free_slab
+  mempool_kfree
+  mempool_kmalloc
+  memremap
+  mem_section
+  memset64
+  memset
+  __memset_io
+  memstart_addr
+  memunmap
+  migrate_pages
+  migrate_swap
+  __migrate_task
+  mipi_dsi_dcs_set_tear_off
+  misc_deregister
+  misc_register
+  mmc_cqe_request_done
+  mmc_execute_tuning
+  mmc_get_card
+  mmc_get_ext_csd
+  mmc_hs200_tuning
+  mmc_issue_type
+  mmc_of_parse
+  __mmc_poll_for_busy
+  mmc_prepare_busy_cmd
+  mmc_put_card
+  mmc_regulator_get_supply
+  mmc_regulator_set_ocr
+  mmc_regulator_set_vqmmc
+  mmc_retune_hold
+  mmc_retune_release
+  mmc_select_bus_width
+  mmc_select_card
+  mmc_select_hs400
+  mmc_select_hs
+  mmc_select_hs_ddr
+  mmc_select_timing
+  mmc_send_status
+  mmc_send_tuning
+  mmc_set_bus_mode
+  mmc_set_bus_width
+  mmc_set_clock
+  mmc_set_initial_state
+  mmc_set_timing
+  mmc_wait_for_cmd
+  mmput
+  mod_delayed_work_on
+  mod_node_page_state
+  mod_timer
+  __module_get
+  module_layout
+  module_put
+  __msecs_to_jiffies
+  msleep
+  __mutex_init
+  mutex_is_locked
+  mutex_lock
+  mutex_lock_interruptible
+  mutex_trylock
+  mutex_unlock
+  name_to_dev_t
+  neigh_destroy
+  neigh_resolve_output
+  netdev_alert
+  netdev_rss_key_fill
+  netif_receive_skb_list
+  nla_find
+  nla_reserve_64bit
+  nla_reserve
+  __nla_validate
+  no_llseek
+  nonseekable_open
+  nr_cpu_ids
+  nr_ipi_get
+  nr_irqs
+  ns_capable
+  ns_to_timespec64
+  __num_online_cpus
+  nvmem_cell_get
+  nvmem_cell_put
+  nvmem_cell_read
+  nvmem_cell_read_u32
+  nvmem_cell_write
+  nvmem_device_read
+  nvmem_device_write
+  of_address_to_resource
+  of_alias_get_id
+  of_clk_add_hw_provider
+  of_clk_add_provider
+  of_clk_del_provider
+  of_clk_hw_simple_get
+  of_clk_src_simple_get
+  of_count_phandle_with_args
+  of_cpu_node_to_id
+  of_device_get_match_data
+  of_device_is_available
+  of_device_is_compatible
+  of_dma_configure_id
+  of_dma_controller_free
+  of_dma_controller_register
+  of_dma_is_coherent
+  of_drm_find_panel
+  of_find_compatible_node
+  of_find_device_by_node
+  of_find_i2c_device_by_node
+  of_find_node_by_name
+  of_find_node_by_phandle
+  of_find_node_opts_by_path
+  of_find_node_with_property
+  of_find_property
+  of_fwnode_ops
+  of_genpd_add_provider_onecell
+  of_genpd_del_provider
+  __of_get_address
+  of_get_child_by_name
+  of_get_cpu_node
+  of_get_named_gpio_flags
+  of_get_next_available_child
+  of_get_next_child
+  of_get_next_parent
+  of_get_parent
+  of_get_property
+  of_get_regulator_init_data
+  of_get_required_opp_performance_state
+  of_graph_get_next_endpoint
+  of_graph_get_port_parent
+  of_graph_get_remote_endpoint
+  of_graph_is_present
+  of_graph_parse_endpoint
+  of_hwspin_lock_get_id
+  of_icc_get
+  of_icc_xlate_onecell
+  of_iomap
+  of_irq_find_parent
+  of_irq_get
+  of_irq_get_byname
+  of_irq_parse_one
+  of_match_device
+  of_match_node
+  of_mdiobus_register
+  of_modalias_node
+  of_n_addr_cells
+  of_node_name_eq
+  of_n_size_cells
+  of_parse_phandle
+  of_parse_phandle_with_args
+  of_parse_phandle_with_fixed_args
+  of_phandle_iterator_init
+  of_phandle_iterator_next
+  of_phy_is_fixed_link
+  of_phy_simple_xlate
+  of_platform_depopulate
+  of_platform_device_create
+  of_platform_device_destroy
+  of_platform_populate
+  of_property_count_elems_of_size
+  of_property_match_string
+  of_property_read_string
+  of_property_read_string_helper
+  of_property_read_u32_index
+  of_property_read_u64_index
+  of_property_read_variable_u16_array
+  of_property_read_variable_u32_array
+  of_property_read_variable_u8_array
+  of_prop_next_string
+  of_prop_next_u32
+  of_reserved_mem_device_init_by_idx
+  of_reserved_mem_device_release
+  of_reserved_mem_lookup
+  of_root
+  of_thermal_get_ntrips
+  of_thermal_get_trip_points
+  of_thermal_is_trip_valid
+  of_translate_address
+  on_each_cpu_cond_mask
+  oops_in_progress
+  page_endio
+  page_is_ram
+  page_mapping
+  page_pool_alloc_pages
+  page_pool_create
+  page_pool_destroy
+  page_pool_put_page
+  page_pool_release_page
+  panic
+  panic_notifier_list
+  panic_timeout
+  param_array_ops
+  param_get_int
+  param_get_string
+  param_get_uint
+  param_get_ullong
+  param_ops_bool
+  param_ops_charp
+  param_ops_int
+  param_ops_uint
+  param_ops_ullong
+  param_set_bool
+  param_set_copystring
+  param_set_uint
+  param_set_uint_minmax
+  pci_aer_clear_nonfatal_status
+  pcibios_resource_to_bus
+  pci_bus_type
+  pci_dev_get
+  pci_device_group
+  pci_device_is_present
+  pci_dev_present
+  pci_dev_put
+  pci_disable_pcie_error_reporting
+  pcie_aspm_enabled
+  pcie_capability_clear_and_set_word
+  pcie_capability_read_word
+  pci_enable_device
+  pci_enable_pcie_error_reporting
+  pci_find_ext_capability
+  pci_free_irq
+  pci_get_device
+  pci_get_domain_bus_and_slot
+  pci_host_probe
+  pci_load_and_free_saved_state
+  pci_load_saved_state
+  pci_msi_create_irq_domain
+  pci_msi_mask_irq
+  pci_msi_unmask_irq
+  pci_read_config_dword
+  pci_read_config_word
+  __pci_register_driver
+  pci_request_irq
+  pci_restore_state
+  pci_save_state
+  pci_set_master
+  pci_sriov_configure_simple
+  pci_store_saved_state
+  pci_walk_bus
+  pci_write_config_dword
+  pcpu_nr_pages
+  __percpu_down_read
+  percpu_down_write
+  percpu_free_rwsem
+  __percpu_init_rwsem
+  __per_cpu_offset
+  per_cpu_ptr_to_phys
+  percpu_ref_exit
+  percpu_ref_init
+  percpu_ref_is_zero
+  percpu_ref_switch_to_atomic_sync
+  percpu_ref_switch_to_percpu
+  percpu_up_write
+  perf_aux_output_begin
+  perf_aux_output_end
+  perf_aux_output_flag
+  perf_event_addr_filters_sync
+  perf_event_create_kernel_counter
+  perf_event_disable
+  perf_event_enable
+  perf_event_read_local
+  perf_event_read_value
+  perf_event_release_kernel
+  perf_get_aux
+  perf_pmu_register
+  perf_pmu_unregister
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  phy_attached_info
+  phy_calibrate
+  phy_config_aneg
+  phy_drivers_register
+  phy_drivers_unregister
+  phy_error
+  phy_ethtool_get_eee
+  phy_ethtool_get_wol
+  phy_ethtool_set_wol
+  phy_exit
+  phy_gbit_fibre_features
+  phy_init
+  phy_init_eee
+  phy_init_hw
+  phylink_connect_phy
+  phylink_create
+  phylink_destroy
+  phylink_disconnect_phy
+  phylink_ethtool_get_eee
+  phylink_ethtool_get_pauseparam
+  phylink_ethtool_get_wol
+  phylink_ethtool_ksettings_get
+  phylink_ethtool_ksettings_set
+  phylink_ethtool_nway_reset
+  phylink_ethtool_set_eee
+  phylink_ethtool_set_pauseparam
+  phylink_ethtool_set_wol
+  phylink_get_eee_err
+  phylink_mac_change
+  phylink_mii_ioctl
+  phylink_of_phy_connect
+  phylink_resume
+  phylink_set_pcs
+  phylink_set_port_modes
+  phylink_speed_down
+  phylink_speed_up
+  phylink_start
+  phylink_stop
+  phylink_suspend
+  phy_mac_interrupt
+  __phy_modify
+  phy_modify
+  phy_modify_changed
+  phy_modify_mmd
+  phy_modify_mmd_changed
+  phy_modify_paged
+  phy_modify_paged_changed
+  phy_power_off
+  phy_power_on
+  phy_read_mmd
+  phy_read_paged
+  phy_resolve_aneg_pause
+  phy_restore_page
+  phy_save_page
+  phy_select_page
+  phy_set_max_speed
+  phy_set_mode_ext
+  phy_sfp_attach
+  phy_sfp_detach
+  phy_sfp_probe
+  phy_trigger_machine
+  phy_write_mmd
+  phy_write_paged
+  pick_highest_pushable_task
+  pick_migrate_task
+  pid_nr_ns
+  pinconf_generic_dt_node_to_map
+  pinctrl_dev_get_drvdata
+  pinctrl_force_default
+  pinctrl_force_sleep
+  pinctrl_lookup_state
+  pinctrl_pm_select_default_state
+  pinctrl_pm_select_sleep_state
+  pinctrl_select_state
+  pinctrl_utils_free_map
+  platform_bus_type
+  platform_device_add
+  platform_device_alloc
+  platform_device_del
+  platform_device_put
+  platform_device_register_full
+  platform_device_unregister
+  __platform_driver_register
+  platform_driver_unregister
+  platform_get_irq
+  platform_get_irq_byname
+  platform_get_irq_byname_optional
+  platform_get_resource
+  platform_get_resource_byname
+  platform_irqchip_probe
+  platform_irq_count
+  platform_msi_domain_alloc_irqs
+  platform_msi_domain_free_irqs
+  pm_clk_add
+  pm_clk_create
+  pm_clk_destroy
+  pm_clk_resume
+  pm_clk_suspend
+  pm_generic_resume
+  pm_generic_suspend
+  pm_genpd_add_subdomain
+  pm_genpd_init
+  pm_genpd_remove
+  pm_genpd_remove_subdomain
+  pm_power_off
+  __pm_relax
+  pm_relax
+  pm_runtime_allow
+  pm_runtime_autosuspend_expiration
+  pm_runtime_barrier
+  __pm_runtime_disable
+  pm_runtime_enable
+  pm_runtime_forbid
+  pm_runtime_force_resume
+  pm_runtime_force_suspend
+  __pm_runtime_idle
+  pm_runtime_irq_safe
+  pm_runtime_no_callbacks
+  __pm_runtime_resume
+  pm_runtime_set_autosuspend_delay
+  __pm_runtime_set_status
+  __pm_runtime_suspend
+  __pm_runtime_use_autosuspend
+  __pm_stay_awake
+  pm_stay_awake
+  pm_suspend_global_flags
+  pm_suspend_target_state
+  pm_system_wakeup
+  pm_wakeup_dev_event
+  pm_wakeup_ws_event
+  policy_has_boost_freq
+  poll_state_synchronize_rcu
+  poll_state_synchronize_srcu
+  powercap_register_control_type
+  powercap_register_zone
+  powercap_unregister_control_type
+  powercap_unregister_zone
+  power_supply_changed
+  power_supply_get_by_name
+  power_supply_get_drvdata
+  power_supply_get_property
+  power_supply_put
+  power_supply_reg_notifier
+  power_supply_set_property
+  power_supply_unreg_notifier
+  prandom_u32
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait_event
+  print_hex_dump
+  _printk
+  _printk_deferred
+  proc_dointvec
+  proc_dointvec_minmax
+  proc_dostring
+  proc_douintvec_minmax
+  proto_register
+  proto_unregister
+  __pskb_pull_tail
+  ___pskb_trim
+  ptp_clock_event
+  ptp_clock_index
+  ptp_clock_register
+  ptp_clock_unregister
+  putback_movable_pages
+  put_device
+  put_disk
+  put_iova_domain
+  __put_page
+  put_sg_io_hdr
+  __put_task_struct
+  put_user_ifreq
+  pwm_apply_state
+  pwmchip_add
+  pwmchip_remove
+  qcom_smem_state_get
+  qcom_smem_state_put
+  qcom_smem_state_register
+  qcom_smem_state_unregister
+  qcom_smem_state_update_bits
+  queue_delayed_work_on
+  queue_work_on
+  radix_tree_insert
+  radix_tree_iter_delete
+  radix_tree_lookup
+  radix_tree_next_chunk
+  ___ratelimit
+  rational_best_approximation
+  raw_notifier_call_chain
+  raw_notifier_chain_register
+  raw_notifier_chain_unregister
+  _raw_read_lock
+  _raw_read_lock_bh
+  _raw_read_lock_irq
+  _raw_read_lock_irqsave
+  _raw_read_unlock
+  _raw_read_unlock_bh
+  _raw_read_unlock_irq
+  _raw_read_unlock_irqrestore
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irq
+  _raw_spin_lock_irqsave
+  raw_spin_rq_lock_nested
+  raw_spin_rq_unlock
+  _raw_spin_trylock
+  _raw_spin_trylock_bh
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irq
+  _raw_spin_unlock_irqrestore
+  _raw_write_lock
+  _raw_write_lock_bh
+  _raw_write_lock_irq
+  _raw_write_lock_irqsave
+  _raw_write_unlock
+  _raw_write_unlock_bh
+  _raw_write_unlock_irq
+  _raw_write_unlock_irqrestore
+  rb_erase
+  rb_first
+  rb_insert_color
+  rb_last
+  rb_next
+  rcu_barrier
+  rcu_barrier_tasks
+  rcu_barrier_tasks_trace
+  rcu_bind_current_to_nocb
+  rcu_check_boost_fail
+  rcu_cpu_stall_suppress
+  rcu_cpu_stall_suppress_at_boot
+  rcu_expedite_gp
+  rcu_force_quiescent_state
+  rcu_fwd_progress_check
+  rcu_get_gp_kthreads_prio
+  rcu_get_gp_seq
+  rcu_gp_is_expedited
+  rcu_gp_is_normal
+  rcu_gp_set_torture_wait
+  rcu_inkernel_boot_has_ended
+  rcu_is_watching
+  rcu_jiffies_till_stall_check
+  rcu_nocb_cpu_deoffload
+  rcu_nocb_cpu_offload
+  __rcu_read_lock
+  __rcu_read_unlock
+  rcu_read_unlock_trace_special
+  rcutorture_get_gp_data
+  rcu_unexpedite_gp
+  rcuwait_wake_up
+  rdev_get_drvdata
+  reboot_mode
+  rebuild_sched_domains
+  reclaim_shmem_address_space
+  refcount_dec_and_lock
+  refcount_dec_not_one
+  refcount_warn_saturate
+  __register_blkdev
+  __register_chrdev
+  register_chrdev_region
+  register_console
+  register_die_notifier
+  register_ftrace_export
+  register_kprobe
+  register_kretprobe
+  register_memory_notifier
+  register_module_notifier
+  register_netevent_notifier
+  register_oom_notifier
+  register_pm_notifier
+  register_qdisc
+  register_reboot_notifier
+  register_restart_handler
+  __register_rpmsg_driver
+  register_shrinker
+  register_syscore_ops
+  register_sysctl_table
+  regmap_bulk_read
+  regmap_bulk_write
+  regmap_check_range_table
+  regmap_field_read
+  regmap_field_update_bits_base
+  __regmap_init
+  regmap_mmio_detach_clk
+  regmap_read
+  regmap_update_bits_base
+  regmap_write
+  regulator_allow_bypass
+  regulator_bulk_disable
+  regulator_count_voltages
+  regulator_disable
+  regulator_enable
+  regulator_force_disable
+  regulator_get
+  regulator_get_drvdata
+  regulator_get_mode
+  regulator_get_voltage
+  regulator_get_voltage_rdev
+  regulator_is_enabled
+  regulator_is_supported_voltage
+  regulator_put
+  regulator_register_notifier
+  regulator_set_current_limit
+  regulator_set_load
+  regulator_set_mode
+  regulator_set_voltage
+  regulator_unregister_notifier
+  relay_close
+  relay_file_operations
+  relay_flush
+  relay_open
+  relay_reset
+  relay_subbufs_consumed
+  relay_switch_subbuf
+  release_firmware
+  __release_region
+  release_sock
+  remap_pfn_range
+  remove_cpu
+  remove_memory_subsection
+  remove_wait_queue
+  report_iommu_fault
+  request_any_context_irq
+  request_firmware
+  request_firmware_into_buf
+  __request_module
+  __request_percpu_irq
+  request_threaded_irq
+  resched_curr
+  reset_control_assert
+  reset_control_deassert
+  __reset_control_get
+  reset_control_put
+  root_task_group
+  round_jiffies_relative
+  rpmsg_chrdev_eptdev_create
+  rpmsg_chrdev_eptdev_destroy
+  rpmsg_class
+  rpmsg_get_signals
+  rpmsg_poll
+  rpmsg_register_device
+  rpmsg_rx_done
+  rpmsg_send
+  rpmsg_set_signals
+  rpmsg_trysend
+  rpmsg_unregister_device
+  rproc_add
+  rproc_add_subdev
+  rproc_alloc
+  rproc_boot
+  rproc_coredump
+  rproc_coredump_add_custom_segment
+  rproc_coredump_add_segment
+  rproc_coredump_cleanup
+  rproc_coredump_set_elf_info
+  rproc_coredump_using_sections
+  rproc_da_to_va
+  rproc_del
+  rproc_del_carveout
+  rproc_free
+  rproc_get_by_child
+  rproc_get_by_phandle
+  rproc_mem_entry_free
+  rproc_put
+  rproc_remove_subdev
+  rproc_report_crash
+  rproc_set_firmware
+  rproc_shutdown
+  rtc_time64_to_tm
+  rtc_tm_to_time64
+  rtc_update_irq
+  rt_mutex_lock
+  rt_mutex_unlock
+  rtnl_trylock
+  rtnl_unicast
+  runqueues
+  sched_clock
+  sched_feat_keys
+  sched_feat_names
+  sched_setattr
+  sched_set_fifo
+  sched_set_fifo_low
+  sched_set_normal
+  sched_setscheduler
+  sched_setscheduler_nocheck
+  sched_show_task
+  sched_trace_rd_span
+  sched_uclamp_used
+  schedule
+  schedule_hrtimeout
+  schedule_timeout
+  schedule_timeout_interruptible
+  schedule_timeout_uninterruptible
+  scmi_driver_register
+  scmi_driver_unregister
+  scmi_protocol_register
+  scmi_protocol_unregister
+  scnprintf
+  scsi_autopm_get_device
+  scsi_autopm_put_device
+  scsi_block_when_processing_errors
+  scsi_cmd_allowed
+  scsi_command_size_tbl
+  scsi_device_get
+  scsi_device_put
+  scsi_ioctl
+  scsi_ioctl_block_when_processing_errors
+  __scsi_iterate_devices
+  scsi_normalize_sense
+  __scsi_print_sense
+  scsi_register_interface
+  sdev_prefix_printk
+  __sdhci_add_host
+  sdhci_add_host
+  sdhci_cleanup_host
+  sdhci_cqe_disable
+  sdhci_cqe_enable
+  sdhci_cqe_irq
+  sdhci_dumpregs
+  sdhci_enable_clk
+  sdhci_get_property
+  sdhci_pltfm_free
+  sdhci_pltfm_init
+  sdhci_remove_host
+  sdhci_reset
+  sdhci_set_bus_width
+  sdhci_set_power_noreg
+  __sdhci_set_timeout
+  sdhci_setup_host
+  select_fallback_rq
+  seq_buf_printf
+  seq_file_path
+  seq_lseek
+  seq_printf
+  seq_putc
+  seq_puts
+  seq_read
+  seq_release
+  seq_vprintf
+  set_capacity
+  set_capacity_and_notify
+  set_cpus_allowed_ptr
+  set_next_entity
+  set_normalized_timespec64
+  __SetPageMovable
+  set_task_cpu
+  set_user_nice
+  sg_alloc_table
+  sg_alloc_table_from_pages_segment
+  sg_copy_from_buffer
+  sg_copy_to_buffer
+  sg_free_table
+  sg_init_table
+  sg_miter_next
+  sg_miter_skip
+  sg_miter_start
+  sg_miter_stop
+  sg_next
+  __sg_page_iter_dma_next
+  __sg_page_iter_next
+  __sg_page_iter_start
+  shmem_read_mapping_page_gfp
+  show_rcu_gp_kthreads
+  show_rcu_tasks_classic_gp_kthread
+  show_rcu_tasks_trace_gp_kthread
+  show_regs
+  si_mem_available
+  si_meminfo
+  simple_attr_open
+  simple_attr_release
+  simple_open
+  simple_read_from_buffer
+  simple_write_to_buffer
+  single_open
+  single_release
+  si_swapinfo
+  sk_alloc
+  skb_append_pagefrags
+  skb_clone
+  skb_copy_bits
+  skb_copy_datagram_from_iter
+  skb_copy_datagram_iter
+  skb_dequeue
+  skb_free_datagram
+  __skb_get_hash
+  __skb_gso_segment
+  __skb_pad
+  skb_push
+  skb_put
+  skb_queue_purge
+  skb_queue_tail
+  skb_recv_datagram
+  skb_set_owner_w
+  skb_store_bits
+  sk_error_report
+  sk_free
+  skip_spaces
+  smp_call_function
+  smp_call_function_single
+  smp_call_function_single_async
+  snapshot_get_image_size
+  snd_info_create_module_entry
+  snd_info_free_entry
+  snd_info_register
+  snd_interval_refine
+  _snd_pcm_hw_params_any
+  snd_soc_component_exit_regmap
+  snd_soc_dapm_new_widgets
+  snd_soc_get_pcm_runtime
+  snd_soc_info_multi_ext
+  snd_soc_lookup_component
+  snd_soc_rtdcom_lookup
+  snd_timer_interrupt
+  snd_usb_autoresume
+  snd_usb_autosuspend
+  snd_usb_endpoint_close
+  snd_usb_endpoint_configure
+  snd_usb_endpoint_open
+  snprintf
+  soc_device_register
+  soc_device_unregister
+  sock_alloc_send_pskb
+  sock_alloc_send_skb
+  sock_create_kern
+  sock_edemux
+  sock_gettstamp
+  sock_init_data
+  sock_no_accept
+  sock_no_listen
+  sock_no_mmap
+  sock_no_sendpage
+  sock_no_shutdown
+  sock_no_socketpair
+  sock_queue_rcv_skb
+  sock_register
+  sock_release
+  sock_setsockopt
+  sock_unregister
+  sort
+  __spi_alloc_controller
+  spi_register_controller
+  spi_unregister_controller
+  spmi_controller_add
+  spmi_controller_alloc
+  spmi_controller_remove
+  __spmi_driver_register
+  spmi_ext_register_read
+  spmi_ext_register_readl
+  spmi_ext_register_write
+  spmi_ext_register_writel
+  spmi_register_read
+  spmi_register_write
+  spmi_register_zero_write
+  sprintf
+  srcu_barrier
+  srcu_batches_completed
+  srcu_init_notifier_head
+  srcu_notifier_call_chain
+  srcu_notifier_chain_register
+  srcu_notifier_chain_unregister
+  __srcu_read_lock
+  __srcu_read_unlock
+  srcutorture_get_gp_data
+  srcu_torture_stats_print
+  sscanf
+  __stack_chk_fail
+  stack_depot_fetch
+  stack_depot_save
+  stack_trace_print
+  stack_trace_save
+  start_poll_synchronize_rcu
+  start_poll_synchronize_srcu
+  static_key_disable
+  stop_machine
+  stop_one_cpu
+  stop_one_cpu_nowait
+  strchrnul
+  strcmp
+  strcpy
+  strim
+  strlcat
+  strlcpy
+  strlen
+  strncasecmp
+  strnchr
+  strncmp
+  strncpy
+  strncpy_from_user
+  strnlen
+  strnstr
+  strpbrk
+  strrchr
+  strreplace
+  strscpy
+  strsep
+  submit_bio_noacct
+  submit_bio_wait
+  __sw_hweight32
+  __sw_hweight64
+  __sw_hweight8
+  sync_blockdev
+  synchronize_irq
+  synchronize_rcu
+  synchronize_rcu_expedited
+  synchronize_rcu_tasks
+  synchronize_rcu_tasks_trace
+  synchronize_srcu
+  synchronize_srcu_expedited
+  synth_event_create
+  synth_event_delete
+  syscon_node_to_regmap
+  syscon_regmap_lookup_by_phandle
+  sysctl_sched_features
+  sysctl_vals
+  sysctl_vals_new
+  sysfs_add_file_to_group
+  sysfs_add_link_to_group
+  sysfs_create_bin_file
+  sysfs_create_file_ns
+  sysfs_create_files
+  sysfs_create_group
+  sysfs_create_link
+  sysfs_emit
+  sysfs_emit_at
+  __sysfs_match_string
+  sysfs_notify
+  sysfs_remove_bin_file
+  sysfs_remove_file_from_group
+  sysfs_remove_file_ns
+  sysfs_remove_files
+  sysfs_remove_group
+  sysfs_remove_link
+  sysfs_remove_link_from_group
+  sysfs_streq
+  sysrq_mask
+  system_32bit_el0_cpumask
+  system_freezable_power_efficient_wq
+  system_freezable_wq
+  system_highpri_wq
+  system_state
+  system_unbound_wq
+  system_wq
+  task_active_pid_ns
+  __tasklet_hi_schedule
+  tasklet_init
+  tasklet_kill
+  __tasklet_schedule
+  tasklet_setup
+  tasklet_unlock_wait
+  tasklist_lock
+  task_may_not_preempt
+  __task_pid_nr_ns
+  __task_rq_lock
+  task_rq_lock
+  tcp_hashinfo
+  thermal_cooling_device_register
+  thermal_cooling_device_unregister
+  thermal_of_cooling_device_register
+  thermal_pressure
+  thermal_zone_device_enable
+  thermal_zone_device_register
+  thermal_zone_device_unregister
+  thermal_zone_device_update
+  thermal_zone_of_sensor_register
+  thermal_zone_of_sensor_unregister
+  tick_nohz_get_sleep_length
+  time64_to_tm
+  timer_unstable_counter_workaround
+  timespec64_to_jiffies
+  topology_clear_scale_freq_source
+  topology_set_thermal_pressure
+  topology_update_done
+  _totalram_pages
+  trace_array_put
+  trace_clock_local
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_get_event_file
+  trace_handle_return
+  __traceiter_android_rvh_account_irq_end
+  __traceiter_android_rvh_account_irq_start
+  __traceiter_android_rvh_after_dequeue_task
+  __traceiter_android_rvh_after_enqueue_task
+  __traceiter_android_rvh_audio_usb_offload_disconnect
+  __traceiter_android_rvh_build_perf_domains
+  __traceiter_android_rvh_can_migrate_task
+  __traceiter_android_rvh_check_preempt_wakeup
+  __traceiter_android_rvh_cpu_cgroup_attach
+  __traceiter_android_rvh_cpu_cgroup_online
+  __traceiter_android_rvh_do_ptrauth_fault
+  __traceiter_android_rvh_do_sched_yield
+  __traceiter_android_rvh_do_undefinstr
+  __traceiter_android_rvh_find_busiest_queue
+  __traceiter_android_rvh_find_lowest_rq
+  __traceiter_android_rvh_flush_task
+  __traceiter_android_rvh_get_nohz_timer_target
+  __traceiter_android_rvh_gic_v3_set_affinity
+  __traceiter_android_rvh_iommu_setup_dma_ops
+  __traceiter_android_rvh_is_cpu_allowed
+  __traceiter_android_rvh_migrate_queued_task
+  __traceiter_android_rvh_mmc_cache_card_properties
+  __traceiter_android_rvh_new_task_stats
+  __traceiter_android_rvh_partial_init
+  __traceiter_android_rvh_replace_next_task_fair
+  __traceiter_android_rvh_rto_next_cpu
+  __traceiter_android_rvh_sched_cpu_dying
+  __traceiter_android_rvh_sched_cpu_starting
+  __traceiter_android_rvh_sched_exec
+  __traceiter_android_rvh_sched_fork_init
+  __traceiter_android_rvh_sched_getaffinity
+  __traceiter_android_rvh_sched_newidle_balance
+  __traceiter_android_rvh_sched_nohz_balancer_kick
+  __traceiter_android_rvh_sched_setaffinity
+  __traceiter_android_rvh_schedule
+  __traceiter_android_rvh_select_task_rq_fair
+  __traceiter_android_rvh_select_task_rq_rt
+  __traceiter_android_rvh_set_balance_anon_file_reclaim
+  __traceiter_android_rvh_set_cpus_allowed_by_task
+  __traceiter_android_rvh_set_cpus_allowed_ptr_locked
+  __traceiter_android_rvh_set_gfp_zone_flags
+  __traceiter_android_rvh_set_readahead_gfp_mask
+  __traceiter_android_rvh_set_skip_swapcache_flags
+  __traceiter_android_rvh_set_task_cpu
+  __traceiter_android_rvh_show_max_freq
+  __traceiter_android_rvh_tick_entry
+  __traceiter_android_rvh_try_to_wake_up
+  __traceiter_android_rvh_try_to_wake_up_success
+  __traceiter_android_rvh_ttwu_cond
+  __traceiter_android_rvh_update_cpu_capacity
+  __traceiter_android_rvh_update_cpus_allowed
+  __traceiter_android_rvh_update_misfit_status
+  __traceiter_android_rvh_update_readahead_gfp_mask
+  __traceiter_android_rvh_update_thermal_stats
+  __traceiter_android_rvh_wake_up_new_task
+  __traceiter_android_vh_audio_usb_offload_connect
+  __traceiter_android_vh_binder_restore_priority
+  __traceiter_android_vh_binder_set_priority
+  __traceiter_android_vh_binder_wakeup_ilocked
+  __traceiter_android_vh_check_hibernation_swap
+  __traceiter_android_vh_check_uninterruptible_tasks
+  __traceiter_android_vh_check_uninterruptible_tasks_dn
+  __traceiter_android_vh_cma_alloc_retry
+  __traceiter_android_vh_cpu_idle_enter
+  __traceiter_android_vh_cpu_idle_exit
+  __traceiter_android_vh_cpuidle_psci_enter
+  __traceiter_android_vh_cpuidle_psci_exit
+  __traceiter_android_vh_disable_thermal_cooling_stats
+  __traceiter_android_vh_do_wake_up_sync
+  __traceiter_android_vh_encrypt_page
+  __traceiter_android_vh_ftrace_dump_buffer
+  __traceiter_android_vh_ftrace_format_check
+  __traceiter_android_vh_ftrace_oops_enter
+  __traceiter_android_vh_ftrace_oops_exit
+  __traceiter_android_vh_ftrace_size_check
+  __traceiter_android_vh_gic_resume
+  __traceiter_android_vh_gic_suspend
+  __traceiter_android_vh_gic_v2_resume
+  __traceiter_android_vh_handle_tlb_conf
+  __traceiter_android_vh_init_aes_encrypt
+  __traceiter_android_vh_ipi_stop
+  __traceiter_android_vh_jiffies_update
+  __traceiter_android_vh_kswapd_per_node
+  __traceiter_android_vh_logbuf
+  __traceiter_android_vh_logbuf_pr_cont
+  __traceiter_android_vh_madvise_cold_or_pageout
+  __traceiter_android_vh_mmc_sdio_pm_flag_set
+  __traceiter_android_vh_mmc_sd_update_cmdline_timing
+  __traceiter_android_vh_post_image_save
+  __traceiter_android_vh_printk_hotplug
+  __traceiter_android_vh_rproc_recovery
+  __traceiter_android_vh_rproc_recovery_set
+  __traceiter_android_vh_save_cpu_resume
+  __traceiter_android_vh_save_hib_resume_bdev
+  __traceiter_android_vh_scheduler_tick
+  __traceiter_android_vh_sd_update_bus_speed_mode
+  __traceiter_android_vh_show_resume_epoch_val
+  __traceiter_android_vh_show_suspend_epoch_val
+  __traceiter_android_vh_skip_swap_map_write
+  __traceiter_android_vh_timer_calc_index
+  __traceiter_android_vh_ufs_check_int_errors
+  __traceiter_android_vh_ufs_clock_scaling
+  __traceiter_android_vh_ufs_compl_command
+  __traceiter_android_vh_ufs_prepare_command
+  __traceiter_android_vh_ufs_send_command
+  __traceiter_android_vh_ufs_send_tm_command
+  __traceiter_android_vh_ufs_send_uic_command
+  __traceiter_android_vh_ufs_update_sdev
+  __traceiter_android_vh_update_topology_flags_workfn
+  __traceiter_binder_transaction_received
+  __traceiter_block_bio_remap
+  __traceiter_cpu_frequency_limits
+  __traceiter_cpu_idle
+  __traceiter_ipi_entry
+  __traceiter_ipi_raise
+  __traceiter_irq_handler_entry
+  __traceiter_map
+  __traceiter_rwmmio_read
+  __traceiter_rwmmio_write
+  __traceiter_sched_overutilized_tp
+  __traceiter_sched_switch
+  __traceiter_suspend_resume
+  __traceiter_unmap
+  __tracepoint_android_rvh_account_irq_end
+  __tracepoint_android_rvh_account_irq_start
+  __tracepoint_android_rvh_after_dequeue_task
+  __tracepoint_android_rvh_after_enqueue_task
+  __tracepoint_android_rvh_audio_usb_offload_disconnect
+  __tracepoint_android_rvh_build_perf_domains
+  __tracepoint_android_rvh_can_migrate_task
+  __tracepoint_android_rvh_check_preempt_wakeup
+  __tracepoint_android_rvh_cpu_cgroup_attach
+  __tracepoint_android_rvh_cpu_cgroup_online
+  __tracepoint_android_rvh_do_ptrauth_fault
+  __tracepoint_android_rvh_do_sched_yield
+  __tracepoint_android_rvh_do_undefinstr
+  __tracepoint_android_rvh_find_busiest_queue
+  __tracepoint_android_rvh_find_lowest_rq
+  __tracepoint_android_rvh_flush_task
+  __tracepoint_android_rvh_get_nohz_timer_target
+  __tracepoint_android_rvh_gic_v3_set_affinity
+  __tracepoint_android_rvh_iommu_setup_dma_ops
+  __tracepoint_android_rvh_is_cpu_allowed
+  __tracepoint_android_rvh_migrate_queued_task
+  __tracepoint_android_rvh_mmc_cache_card_properties
+  __tracepoint_android_rvh_new_task_stats
+  __tracepoint_android_rvh_partial_init
+  __tracepoint_android_rvh_replace_next_task_fair
+  __tracepoint_android_rvh_rto_next_cpu
+  __tracepoint_android_rvh_sched_cpu_dying
+  __tracepoint_android_rvh_sched_cpu_starting
+  __tracepoint_android_rvh_sched_exec
+  __tracepoint_android_rvh_sched_fork_init
+  __tracepoint_android_rvh_sched_getaffinity
+  __tracepoint_android_rvh_sched_newidle_balance
+  __tracepoint_android_rvh_sched_nohz_balancer_kick
+  __tracepoint_android_rvh_sched_setaffinity
+  __tracepoint_android_rvh_schedule
+  __tracepoint_android_rvh_select_task_rq_fair
+  __tracepoint_android_rvh_select_task_rq_rt
+  __tracepoint_android_rvh_set_balance_anon_file_reclaim
+  __tracepoint_android_rvh_set_cpus_allowed_by_task
+  __tracepoint_android_rvh_set_cpus_allowed_ptr_locked
+  __tracepoint_android_rvh_set_gfp_zone_flags
+  __tracepoint_android_rvh_set_readahead_gfp_mask
+  __tracepoint_android_rvh_set_skip_swapcache_flags
+  __tracepoint_android_rvh_set_task_cpu
+  __tracepoint_android_rvh_show_max_freq
+  __tracepoint_android_rvh_tick_entry
+  __tracepoint_android_rvh_try_to_wake_up
+  __tracepoint_android_rvh_try_to_wake_up_success
+  __tracepoint_android_rvh_ttwu_cond
+  __tracepoint_android_rvh_update_cpu_capacity
+  __tracepoint_android_rvh_update_cpus_allowed
+  __tracepoint_android_rvh_update_misfit_status
+  __tracepoint_android_rvh_update_readahead_gfp_mask
+  __tracepoint_android_rvh_update_thermal_stats
+  __tracepoint_android_rvh_wake_up_new_task
+  __tracepoint_android_vh_audio_usb_offload_connect
+  __tracepoint_android_vh_binder_restore_priority
+  __tracepoint_android_vh_binder_set_priority
+  __tracepoint_android_vh_binder_wakeup_ilocked
+  __tracepoint_android_vh_check_hibernation_swap
+  __tracepoint_android_vh_check_uninterruptible_tasks
+  __tracepoint_android_vh_check_uninterruptible_tasks_dn
+  __tracepoint_android_vh_cma_alloc_retry
+  __tracepoint_android_vh_cpu_idle_enter
+  __tracepoint_android_vh_cpu_idle_exit
+  __tracepoint_android_vh_cpuidle_psci_enter
+  __tracepoint_android_vh_cpuidle_psci_exit
+  __tracepoint_android_vh_disable_thermal_cooling_stats
+  __tracepoint_android_vh_do_wake_up_sync
+  __tracepoint_android_vh_encrypt_page
+  __tracepoint_android_vh_ftrace_dump_buffer
+  __tracepoint_android_vh_ftrace_format_check
+  __tracepoint_android_vh_ftrace_oops_enter
+  __tracepoint_android_vh_ftrace_oops_exit
+  __tracepoint_android_vh_ftrace_size_check
+  __tracepoint_android_vh_gic_resume
+  __tracepoint_android_vh_gic_suspend
+  __tracepoint_android_vh_gic_v2_resume
+  __tracepoint_android_vh_handle_tlb_conf
+  __tracepoint_android_vh_init_aes_encrypt
+  __tracepoint_android_vh_ipi_stop
+  __tracepoint_android_vh_jiffies_update
+  __tracepoint_android_vh_kswapd_per_node
+  __tracepoint_android_vh_logbuf
+  __tracepoint_android_vh_logbuf_pr_cont
+  __tracepoint_android_vh_madvise_cold_or_pageout
+  __tracepoint_android_vh_mmc_sdio_pm_flag_set
+  __tracepoint_android_vh_mmc_sd_update_cmdline_timing
+  __tracepoint_android_vh_post_image_save
+  __tracepoint_android_vh_printk_hotplug
+  __tracepoint_android_vh_rproc_recovery
+  __tracepoint_android_vh_rproc_recovery_set
+  __tracepoint_android_vh_save_cpu_resume
+  __tracepoint_android_vh_save_hib_resume_bdev
+  __tracepoint_android_vh_scheduler_tick
+  __tracepoint_android_vh_sd_update_bus_speed_mode
+  __tracepoint_android_vh_show_resume_epoch_val
+  __tracepoint_android_vh_show_suspend_epoch_val
+  __tracepoint_android_vh_skip_swap_map_write
+  __tracepoint_android_vh_timer_calc_index
+  __tracepoint_android_vh_ufs_check_int_errors
+  __tracepoint_android_vh_ufs_clock_scaling
+  __tracepoint_android_vh_ufs_compl_command
+  __tracepoint_android_vh_ufs_prepare_command
+  __tracepoint_android_vh_ufs_send_command
+  __tracepoint_android_vh_ufs_send_tm_command
+  __tracepoint_android_vh_ufs_send_uic_command
+  __tracepoint_android_vh_ufs_update_sdev
+  __tracepoint_android_vh_update_topology_flags_workfn
+  __tracepoint_binder_transaction_received
+  __tracepoint_block_bio_remap
+  __tracepoint_cpu_frequency_limits
+  __tracepoint_cpu_idle
+  __tracepoint_ipi_entry
+  __tracepoint_ipi_raise
+  __tracepoint_irq_handler_entry
+  __tracepoint_map
+  tracepoint_probe_register
+  tracepoint_probe_register_prio
+  tracepoint_probe_unregister
+  __tracepoint_rwmmio_read
+  __tracepoint_rwmmio_write
+  __tracepoint_sched_overutilized_tp
+  __tracepoint_sched_switch
+  __tracepoint_suspend_resume
+  __tracepoint_unmap
+  trace_print_array_seq
+  trace_raw_output_prep
+  trace_seq_printf
+  trace_seq_putc
+  tracing_off
+  try_module_get
+  try_wait_for_completion
+  tty_flip_buffer_push
+  __tty_insert_flip_char
+  tty_insert_flip_string_fixed_flag
+  typec_get_drvdata
+  typec_register_partner
+  typec_register_port
+  typec_set_data_role
+  typec_set_pwr_opmode
+  typec_set_pwr_role
+  typec_unregister_partner
+  uart_add_one_port
+  uart_get_baud_rate
+  uart_insert_char
+  uart_register_driver
+  uart_remove_one_port
+  uart_resume_port
+  uart_suspend_port
+  uart_try_toggle_sysrq
+  uart_unregister_driver
+  uart_update_timeout
+  uart_write_wakeup
+  __ubsan_handle_cfi_check_fail_abort
+  uclamp_eff_value
+  ucsi_connector_change
+  ucsi_create
+  ucsi_destroy
+  ucsi_get_drvdata
+  ucsi_register
+  ucsi_set_drvdata
+  ucsi_unregister
+  __udelay
+  __udp4_lib_lookup
+  __udp6_lib_lookup
+  udp_table
+  ufshcd_auto_hibern8_update
+  ufshcd_dme_get_attr
+  ufshcd_dme_set_attr
+  ufshcd_dump_regs
+  ufshcd_fixup_dev_quirks
+  ufshcd_get_local_unipro_ver
+  ufshcd_hba_stop
+  ufshcd_hold
+  ufshcd_pltfrm_init
+  ufshcd_pltfrm_shutdown
+  ufshcd_query_attr
+  ufshcd_query_descriptor_retry
+  ufshcd_query_flag
+  ufshcd_release
+  ufshcd_remove
+  ufshcd_resume_complete
+  ufshcd_runtime_resume
+  ufshcd_runtime_suspend
+  ufshcd_suspend_prepare
+  ufshcd_system_resume
+  ufshcd_system_suspend
+  ufshcd_uic_hibern8_enter
+  ufshcd_uic_hibern8_exit
+  __uio_register_device
+  uio_unregister_device
+  unlock_page
+  unregister_blkdev
+  __unregister_chrdev
+  unregister_chrdev_region
+  unregister_console
+  unregister_die_notifier
+  unregister_ftrace_export
+  unregister_kprobe
+  unregister_kretprobe
+  unregister_netevent_notifier
+  unregister_oom_notifier
+  unregister_pm_notifier
+  unregister_qdisc
+  unregister_reboot_notifier
+  unregister_restart_handler
+  unregister_rpmsg_driver
+  unregister_shrinker
+  unregister_sysctl_table
+  update_rq_clock
+  up_read
+  up_write
+  usb_add_phy_dev
+  usb_alloc_coherent
+  usb_alloc_dev
+  usb_assign_descriptors
+  usb_bus_idr
+  usb_bus_idr_lock
+  usb_composite_setup_continue
+  usb_control_msg_recv
+  usb_control_msg_send
+  usb_debug_root
+  usb_decode_ctrl
+  usb_driver_set_configuration
+  usb_ep_alloc_request
+  usb_ep_autoconfig
+  usb_ep_dequeue
+  usb_ep_disable
+  usb_ep_enable
+  usb_ep_free_request
+  usb_ep_queue
+  usb_ep_set_halt
+  usb_find_common_endpoints
+  usb_free_all_descriptors
+  usb_free_coherent
+  usb_function_register
+  usb_function_unregister
+  usb_gadget_connect
+  usb_gadget_disconnect
+  usb_gadget_wakeup
+  usb_ifnum_to_if
+  usb_interface_id
+  usb_mon_deregister
+  usb_mon_register
+  usb_phy_set_charger_current
+  usb_pipe_type_check
+  usb_put_function_instance
+  usb_register_notify
+  usb_remove_phy
+  usb_role_string
+  usb_role_switch_find_by_fwnode
+  usb_role_switch_get_drvdata
+  usb_role_switch_register
+  usb_role_switch_set_role
+  usb_role_switch_unregister
+  usb_set_device_state
+  usb_speed_string
+  usb_string_id
+  usb_unregister_notify
+  __usecs_to_jiffies
+  usleep_range_state
+  uuid_parse
+  v4l2_compat_ioctl32
+  v4l2_ctrl_find
+  v4l2_ctrl_get_name
+  __v4l2_ctrl_modify_range
+  __v4l2_ctrl_s_ctrl
+  __v4l2_device_register_subdev_nodes
+  v4l2_event_dequeue
+  v4l2_event_pending
+  v4l2_fh_release
+  v4l2_s_ctrl
+  v4l2_subdev_call_wrappers
+  vabits_actual
+  vb2_create_bufs
+  vb2_prepare_buf
+  vchan_dma_desc_free_list
+  vchan_find_desc
+  vchan_init
+  vchan_tx_desc_free
+  vchan_tx_submit
+  vfree
+  vfs_fsync
+  vhost_add_used_and_signal
+  vhost_dev_check_owner
+  vhost_dev_cleanup
+  vhost_dev_init
+  vhost_dev_ioctl
+  vhost_dev_stop
+  vhost_disable_notify
+  vhost_enable_notify
+  vhost_get_vq_desc
+  vhost_log_access_ok
+  vhost_poll_flush
+  vhost_vq_access_ok
+  vhost_vq_init_access
+  vhost_vring_ioctl
+  vmalloc
+  vmalloc_nr_pages
+  vmalloc_to_page
+  vmalloc_to_pfn
+  vmap
+  vmf_insert_pfn
+  vm_insert_page
+  vm_iomap_memory
+  vm_map_pages
+  vm_mmap
+  vm_munmap
+  vm_node_stat
+  vm_zone_stat
+  vscnprintf
+  vsnprintf
+  vunmap
+  vzalloc
+  wait_for_completion
+  wait_for_completion_interruptible
+  wait_for_completion_interruptible_timeout
+  wait_for_completion_io_timeout
+  wait_for_completion_timeout
+  __wait_rcu_gp
+  __wake_up
+  wake_up_if_idle
+  wake_up_process
+  wakeup_source_register
+  wakeup_source_unregister
+  __warn_printk
+  work_busy
+  ww_mutex_lock
+  ww_mutex_unlock
+  __xa_alloc
+  __xa_alloc_cyclic
+  xa_destroy
+  xa_erase
+  xa_find
+  xa_find_after
+  __xa_insert
+  xa_load
+  xa_store
+  xdp_rxq_info_is_reg
+  xdp_rxq_info_unreg_mem_model
+  xfrm_lookup
+  xhci_alloc_command
+  xhci_alloc_erst
+  xhci_free_command
+  xhci_free_erst
+  xhci_get_endpoint_index
+  xhci_queue_stop_endpoint
+  xhci_ring_alloc
+  xhci_ring_cmd_db
+  xhci_ring_free
+  xhci_trb_virt_to_dma
+  xp_alloc
+  xp_dma_map
+  xp_dma_sync_for_cpu_slow
+  xp_dma_sync_for_device_slow
+  xp_dma_unmap
+  xp_free
+  xp_raw_get_dma
+  xp_set_rxq_info
+  xsk_clear_rx_need_wakeup
+  xsk_get_pool_from_qid
+  xsk_set_rx_need_wakeup
+  xsk_set_tx_need_wakeup
+  xsk_tx_completed
+  xsk_tx_peek_desc
+  xsk_tx_release
+  xsk_uses_need_wakeup
+  zap_vma_ptes
diff --git a/android/abi_gki_aarch64_rtktv b/android/abi_gki_aarch64_rtktv
new file mode 100644
index 0000000..4a31704
--- /dev/null
+++ b/android/abi_gki_aarch64_rtktv
@@ -0,0 +1,1063 @@
+[abi_symbol_list]
+  add_timer
+  add_uevent_var
+  add_wait_queue
+  alloc_anon_inode
+  alloc_chrdev_region
+  alloc_contig_range
+  alloc_etherdev_mqs
+  alloc_netdev_mqs
+  __alloc_pages
+  alloc_pages_exact
+  __alloc_percpu
+  __alloc_percpu_gfp
+  __alloc_skb
+  alloc_workqueue
+  android_rvh_probe_register
+  anon_inode_getfd
+  arc4_crypt
+  arc4_setkey
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  __arm_smccc_hvc
+  __arm_smccc_smc
+  atomic_notifier_call_chain
+  atomic_notifier_chain_register
+  atomic_notifier_chain_unregister
+  autoremove_wake_function
+  bcmp
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_start_io_acct
+  bitmap_allocate_region
+  __bitmap_clear
+  bitmap_find_next_zero_area_off
+  bitmap_release_region
+  __bitmap_set
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  blocking_notifier_call_chain
+  blocking_notifier_chain_register
+  blocking_notifier_chain_unregister
+  bpf_trace_run10
+  bpf_trace_run1
+  bpf_trace_run2
+  bpf_trace_run3
+  bpf_trace_run4
+  bpf_trace_run5
+  bpf_trace_run6
+  bpf_trace_run7
+  bus_for_each_dev
+  bus_register
+  bus_register_notifier
+  bus_unregister
+  bus_unregister_notifier
+  call_rcu
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  cancel_work_sync
+  capable
+  cdev_add
+  cdev_del
+  cdev_device_add
+  cdev_device_del
+  cdev_init
+  __cfi_slowpath_diag
+  __check_object_size
+  __class_create
+  class_create_file_ns
+  class_destroy
+  class_find_device
+  __class_register
+  class_remove_file_ns
+  class_unregister
+  clear_page
+  __ClearPageMovable
+  clk_disable
+  clk_enable
+  clk_prepare
+  clk_put
+  clk_unprepare
+  cma_for_each_area
+  cma_get_name
+  compat_ptr_ioctl
+  complete
+  complete_all
+  complete_and_exit
+  completion_done
+  console_lock
+  console_printk
+  console_suspend_enabled
+  console_unlock
+  __const_udelay
+  consume_skb
+  contig_page_data
+  cpufreq_boost_enabled
+  cpufreq_cooling_register
+  cpufreq_cooling_unregister
+  cpufreq_cpu_get
+  cpufreq_cpu_get_raw
+  cpufreq_enable_boost_support
+  cpufreq_freq_attr_scaling_available_freqs
+  cpufreq_freq_transition_begin
+  cpufreq_freq_transition_end
+  cpufreq_frequency_table_verify
+  cpufreq_register_driver
+  cpufreq_register_notifier
+  cpufreq_table_index_unsorted
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpumask_next
+  cpumask_next_and
+  cpu_number
+  __cpu_online_mask
+  __cpu_possible_mask
+  __cpu_present_mask
+  cpus_read_lock
+  cpus_read_unlock
+  crc32_be
+  crc32_le
+  crypto_aead_decrypt
+  crypto_aead_encrypt
+  crypto_aead_setauthsize
+  crypto_aead_setkey
+  crypto_alloc_aead
+  crypto_alloc_base
+  crypto_alloc_shash
+  crypto_alloc_skcipher
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_destroy_tfm
+  crypto_has_alg
+  __crypto_memneq
+  crypto_register_alg
+  crypto_shash_digest
+  crypto_shash_final
+  crypto_shash_finup
+  crypto_shash_setkey
+  crypto_shash_update
+  crypto_skcipher_decrypt
+  crypto_skcipher_encrypt
+  crypto_skcipher_setkey
+  __crypto_xor
+  _ctype
+  debugfs_create_bool
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_create_regset32
+  debugfs_create_u32
+  debugfs_remove
+  debugfs_rename
+  dec_zone_page_state
+  default_llseek
+  default_wake_function
+  delayed_work_timer_fn
+  del_gendisk
+  del_timer
+  del_timer_sync
+  destroy_workqueue
+  dev_alloc_name
+  __dev_change_net_namespace
+  dev_close
+  dev_driver_string
+  _dev_err
+  dev_fetch_sw_netstats
+  dev_fwnode
+  __dev_get_by_index
+  dev_get_by_index
+  device_add
+  device_add_disk
+  device_create
+  device_create_file
+  device_del
+  device_destroy
+  device_for_each_child
+  device_initialize
+  device_init_wakeup
+  device_pm_wait_for_dev
+  device_property_present
+  device_property_read_string
+  device_property_read_u32_array
+  device_register
+  device_remove_file
+  device_rename
+  device_set_wakeup_capable
+  device_unregister
+  device_wakeup_enable
+  _dev_info
+  __dev_kfree_skb_any
+  devm_add_action
+  devm_clk_get_optional
+  devm_extcon_dev_allocate
+  devm_extcon_dev_register
+  devm_extcon_dev_unregister
+  devm_hwrng_register
+  devm_ioremap_resource
+  devm_iounmap
+  devm_kmalloc
+  devm_of_phy_get_by_index
+  devm_phy_get
+  devm_platform_get_and_ioremap_resource
+  devm_regulator_bulk_get
+  devm_regulator_get
+  devm_regulator_get_optional
+  devm_request_threaded_irq
+  __devm_reset_control_get
+  devm_rtc_allocate_device
+  __devm_rtc_register_device
+  devm_usb_get_phy
+  _dev_notice
+  dev_pm_opp_find_freq_exact
+  dev_pm_opp_free_cpufreq_table
+  dev_pm_opp_get_level
+  dev_pm_opp_get_opp_count
+  dev_pm_opp_init_cpufreq_table
+  dev_pm_opp_of_cpumask_add_table
+  dev_pm_opp_of_get_sharing_cpus
+  dev_pm_opp_of_register_em
+  dev_pm_opp_put
+  _dev_printk
+  dev_queue_xmit
+  dev_set_name
+  _dev_warn
+  disable_irq_nosync
+  disk_end_io_acct
+  disk_start_io_acct
+  dma_alloc_attrs
+  dma_buf_begin_cpu_access
+  dma_buf_end_cpu_access
+  dma_buf_export
+  dma_buf_fd
+  dma_buf_get
+  dma_buf_put
+  dma_buf_vmap
+  dma_buf_vunmap
+  dma_contiguous_default_area
+  dma_fence_default_wait
+  dma_fence_init
+  dma_fence_signal
+  dma_free_attrs
+  dma_heap_add
+  dma_heap_buffer_alloc
+  dma_heap_find
+  dma_heap_get_dev
+  dma_heap_get_drvdata
+  dma_heap_put
+  dmam_alloc_attrs
+  dma_map_page_attrs
+  dma_map_sg_attrs
+  dma_map_sgtable
+  dmam_free_coherent
+  dma_pool_alloc
+  dma_pool_create
+  dma_pool_destroy
+  dma_pool_free
+  dma_set_coherent_mask
+  dma_set_mask
+  dma_sync_sg_for_cpu
+  dma_sync_sg_for_device
+  dma_sync_single_for_cpu
+  dma_sync_single_for_device
+  dma_unmap_page_attrs
+  dma_unmap_sg_attrs
+  do_exit
+  do_SAK
+  do_trace_netlink_extack
+  down
+  down_interruptible
+  down_read
+  down_timeout
+  down_trylock
+  down_write
+  d_path
+  driver_register
+  driver_unregister
+  dump_stack
+  ehci_init_driver
+  ehci_resume
+  ehci_setup
+  ehci_suspend
+  enable_irq
+  ether_setup
+  eth_mac_addr
+  ethtool_op_get_link
+  ethtool_op_get_ts_info
+  eth_type_trans
+  eth_validate_addr
+  event_triggers_call
+  extcon_set_state_sync
+  fb_get_options
+  fb_mode_option
+  __fdget
+  fd_install
+  filp_close
+  _find_first_bit
+  _find_next_bit
+  find_pid_ns
+  __find_vma
+  find_vpid
+  finish_wait
+  flush_dcache_page
+  flush_delayed_fput
+  flush_delayed_work
+  flush_work
+  flush_workqueue
+  follow_pfn
+  fput
+  free_contig_range
+  free_irq
+  free_netdev
+  __free_pages
+  free_pages
+  free_pages_exact
+  free_percpu
+  freezing_slow_path
+  freq_qos_update_request
+  fsync_bdev
+  gcd
+  genlmsg_multicast_allns
+  genlmsg_put
+  genl_register_family
+  genl_unregister_family
+  gen_pool_add_owner
+  gen_pool_alloc_algo_owner
+  gen_pool_avail
+  gen_pool_best_fit
+  gen_pool_create
+  gen_pool_destroy
+  gen_pool_for_each_chunk
+  gen_pool_free_owner
+  gen_pool_set_algo
+  gen_pool_size
+  gen_pool_virt_to_phys
+  get_cpu_device
+  __get_free_pages
+  get_kernel_pages
+  get_net_ns_by_fd
+  get_net_ns_by_pid
+  get_pid_task
+  get_random_bytes
+  get_random_u32
+  get_unused_fd_flags
+  gic_nonsecure_priorities
+  gpiochip_add_data_with_key
+  gpiochip_remove
+  gpiod_direction_output_raw
+  gpiod_get_direction
+  gpio_to_desc
+  handle_sysrq
+  hex_dump_to_buffer
+  hex_to_bin
+  high_memory
+  hrtimer_cancel
+  hrtimer_init
+  hrtimer_init_sleeper
+  hrtimer_start_range_ns
+  hrtimer_try_to_cancel
+  __hw_addr_init
+  __hw_addr_sync
+  __hw_addr_unsync
+  i2c_adapter_type
+  i2c_add_adapter
+  i2c_bus_type
+  i2c_del_adapter
+  i2c_for_each_dev
+  i2c_get_adapter
+  i2c_put_adapter
+  i2c_smbus_xfer
+  i2c_transfer
+  i2c_transfer_buffer_flags
+  i2c_verify_client
+  idr_alloc
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_get_next
+  idr_remove
+  ignore_console_lock_warning
+  inc_zone_page_state
+  in_egroup_p
+  inet_csk_get_port
+  init_net
+  init_pid_ns
+  init_pseudo
+  __init_rwsem
+  __init_swait_queue_head
+  init_timer_key
+  init_uts_ns
+  init_wait_entry
+  __init_waitqueue_head
+  input_allocate_device
+  input_event
+  input_free_device
+  input_register_device
+  input_unregister_device
+  iomem_resource
+  ioport_resource
+  __ioremap
+  iounmap
+  iput
+  irq_get_irq_data
+  irq_of_parse_and_map
+  irq_to_desc
+  is_console_locked
+  is_vmalloc_addr
+  jiffies_64
+  jiffies
+  jiffies_to_msecs
+  jiffies_to_usecs
+  kasan_flag_enabled
+  kernel_cpustat
+  kernel_param_lock
+  kernel_param_unlock
+  kernel_power_off
+  kern_mount
+  kern_unmount
+  key_create_or_update
+  key_put
+  keyring_alloc
+  __kfifo_alloc
+  __kfifo_free
+  __kfifo_in
+  __kfifo_init
+  __kfifo_out
+  __kfifo_to_user
+  kfree
+  kfree_sensitive
+  kfree_skb
+  kfree_skb_list
+  kill_anon_super
+  kimage_vaddr
+  kimage_voffset
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order_trace
+  kmem_cache_alloc
+  kmem_cache_alloc_trace
+  kmem_cache_create
+  kmem_cache_destroy
+  kmem_cache_free
+  kmemdup
+  kmsg_dump_get_line
+  kmsg_dump_rewind
+  kobject_create_and_add
+  kobject_put
+  kobject_uevent_env
+  kstrdup
+  kstrtoint
+  kstrtoll
+  kstrtou16
+  kstrtou8
+  kstrtouint
+  kstrtoull
+  kstrtoull_from_user
+  kthread_create_on_node
+  kthread_freezable_should_stop
+  kthread_park
+  kthread_should_stop
+  kthread_stop
+  kthread_unpark
+  ktime_get
+  ktime_get_coarse_real_ts64
+  ktime_get_coarse_with_offset
+  ktime_get_mono_fast_ns
+  ktime_get_real_ts64
+  ktime_get_seconds
+  ktime_get_with_offset
+  kvfree
+  kvfree_call_rcu
+  kvmalloc_node
+  __list_add_valid
+  __list_del_entry_valid
+  __local_bh_enable_ip
+  __lock_page
+  memblock_end_of_DRAM
+  memchr
+  memcmp
+  memcpy
+  __memcpy_fromio
+  __memcpy_toio
+  memdup_user
+  memmove
+  memparse
+  memremap
+  mem_section
+  memset64
+  memset
+  __memset_io
+  memstart_addr
+  memunmap
+  mii_ethtool_gset
+  misc_deregister
+  misc_register
+  mktime64
+  __mmap_lock_do_trace_acquire_returned
+  __mmap_lock_do_trace_released
+  __mmap_lock_do_trace_start_locking
+  mmc_add_host
+  mmc_alloc_host
+  __mmc_claim_host
+  mmc_free_host
+  mmc_get_ext_csd
+  mmc_release_host
+  mmc_remove_host
+  mmc_request_done
+  mmc_set_data_timeout
+  mmc_switch
+  mmc_wait_for_req
+  mod_delayed_work_on
+  mod_timer
+  module_layout
+  module_put
+  mpi_alloc
+  mpi_cmp
+  mpi_cmp_ui
+  mpi_free
+  mpi_get_buffer
+  mpi_get_nbits
+  mpi_powm
+  mpi_read_raw_data
+  __msecs_to_jiffies
+  msleep
+  msleep_interruptible
+  __mutex_init
+  mutex_is_locked
+  mutex_lock
+  mutex_lock_interruptible
+  mutex_unlock
+  name_to_dev_t
+  napi_complete_done
+  napi_disable
+  napi_enable
+  napi_gro_receive
+  __napi_schedule
+  napi_schedule_prep
+  __netdev_alloc_skb
+  netdev_err
+  netdev_info
+  netdev_set_default_ethtool_ops
+  netdev_update_features
+  netif_carrier_off
+  netif_carrier_on
+  netif_device_attach
+  netif_device_detach
+  netif_napi_add
+  __netif_napi_del
+  netif_receive_skb
+  netif_receive_skb_list
+  netif_rx
+  netif_rx_ni
+  netif_tx_stop_all_queues
+  netif_tx_wake_queue
+  netlink_broadcast
+  netlink_register_notifier
+  netlink_unicast
+  netlink_unregister_notifier
+  net_ns_type_operations
+  net_ratelimit
+  nla_find
+  nla_memcpy
+  __nla_parse
+  nla_put_64bit
+  nla_put
+  nla_reserve
+  __nla_validate
+  no_llseek
+  nonseekable_open
+  nr_cpu_ids
+  nr_irqs
+  ns_to_kernel_old_timeval
+  __num_online_cpus
+  of_address_to_resource
+  of_clk_get
+  of_count_phandle_with_args
+  of_device_is_available
+  of_device_is_compatible
+  of_find_compatible_node
+  of_find_node_by_name
+  of_find_node_opts_by_path
+  of_find_property
+  of_fwnode_ops
+  __of_get_address
+  of_get_child_by_name
+  of_get_named_gpio_flags
+  of_get_next_child
+  of_get_property
+  of_iomap
+  of_irq_get_byname
+  of_match_device
+  of_match_node
+  of_parse_phandle
+  of_platform_depopulate
+  of_platform_populate
+  of_property_count_elems_of_size
+  of_property_read_string
+  of_property_read_string_helper
+  of_property_read_u32_index
+  of_property_read_variable_u32_array
+  of_property_read_variable_u64_array
+  of_prop_next_u32
+  oops_in_progress
+  page_endio
+  page_mapping
+  panic
+  panic_notifier_list
+  panic_timeout
+  param_array_ops
+  param_get_int
+  param_ops_bool
+  param_ops_charp
+  param_ops_int
+  param_ops_uint
+  param_ops_ulong
+  pci_bus_type
+  __per_cpu_offset
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  pfn_is_map_memory
+  phy_exit
+  phy_init
+  phy_power_off
+  phy_power_on
+  pid_task
+  pin_user_pages_fast
+  platform_bus_type
+  platform_device_add
+  platform_device_alloc
+  platform_device_del
+  platform_device_put
+  platform_device_register
+  platform_device_register_full
+  platform_device_unregister
+  __platform_driver_probe
+  __platform_driver_register
+  platform_driver_unregister
+  platform_get_irq
+  platform_get_resource
+  pm_power_off
+  __pm_relax
+  __pm_runtime_disable
+  pm_runtime_enable
+  pm_runtime_forbid
+  __pm_runtime_idle
+  __pm_runtime_resume
+  __pm_runtime_set_status
+  __pm_runtime_suspend
+  pm_schedule_suspend
+  __pm_stay_awake
+  policy_has_boost_freq
+  power_supply_changed
+  power_supply_register
+  power_supply_unregister
+  prandom_bytes
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait
+  prepare_to_wait_event
+  print_hex_dump
+  _printk
+  proc_create
+  proc_create_seq_private
+  proc_dointvec
+  proc_mkdir
+  proc_remove
+  __pskb_copy_fclone
+  pskb_expand_head
+  __pskb_pull_tail
+  ___pskb_trim
+  put_device
+  __put_net
+  __put_page
+  __put_task_struct
+  put_unused_fd
+  pwmchip_add
+  queue_delayed_work_on
+  queue_work_on
+  radix_tree_delete
+  radix_tree_gang_lookup
+  radix_tree_gang_lookup_tag
+  radix_tree_insert
+  radix_tree_lookup
+  radix_tree_preload
+  radix_tree_tag_clear
+  radix_tree_tag_get
+  radix_tree_tag_set
+  ___ratelimit
+  _raw_read_lock
+  _raw_read_lock_irqsave
+  _raw_read_unlock
+  _raw_read_unlock_irqrestore
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irq
+  _raw_spin_lock_irqsave
+  _raw_spin_trylock
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irq
+  _raw_spin_unlock_irqrestore
+  _raw_write_lock
+  _raw_write_lock_irqsave
+  _raw_write_unlock
+  _raw_write_unlock_irqrestore
+  rb_erase
+  rb_insert_color
+  rb_next
+  rb_prev
+  rcu_barrier
+  __rcu_read_lock
+  __rcu_read_unlock
+  refcount_warn_saturate
+  __refrigerator
+  __register_blkdev
+  __register_chrdev
+  register_chrdev_region
+  register_console
+  register_die_notifier
+  register_inet6addr_notifier
+  register_inetaddr_notifier
+  register_kprobe
+  register_kretprobe
+  register_netdev
+  register_netdevice
+  register_netdevice_notifier
+  register_pernet_device
+  register_pm_notifier
+  register_reboot_notifier
+  register_restart_handler
+  register_shrinker
+  register_syscore_ops
+  register_sysctl_table
+  regulator_bulk_disable
+  regulator_bulk_enable
+  regulator_disable
+  regulator_enable
+  release_firmware
+  __release_region
+  release_resource
+  remap_pfn_range
+  remove_proc_entry
+  remove_wait_queue
+  request_firmware
+  request_firmware_nowait
+  __request_module
+  __request_region
+  request_threaded_irq
+  reset_control_assert
+  reset_control_deassert
+  rfkill_alloc
+  rfkill_blocked
+  rfkill_destroy
+  rfkill_register
+  rfkill_resume_polling
+  rfkill_set_hw_state_reason
+  rfkill_unregister
+  rhashtable_free_and_destroy
+  rhashtable_insert_slow
+  rhltable_init
+  __rht_bucket_nested
+  rht_bucket_nested
+  rht_bucket_nested_insert
+  round_jiffies
+  round_jiffies_relative
+  round_jiffies_up
+  rtc_time64_to_tm
+  rtnl_is_locked
+  rtnl_lock
+  rtnl_unlock
+  sched_clock
+  sched_setscheduler
+  sched_setscheduler_nocheck
+  schedule
+  schedule_timeout
+  scnprintf
+  send_sig_info
+  send_sig_mceerr
+  seq_lseek
+  seq_printf
+  seq_puts
+  seq_read
+  set_capacity
+  set_capacity_and_notify
+  set_freezable
+  __SetPageMovable
+  sg_alloc_table
+  sg_alloc_table_from_pages_segment
+  sg_free_table
+  sg_init_one
+  sg_init_table
+  sg_next
+  __sg_page_iter_next
+  __sg_page_iter_start
+  simple_strtol
+  simple_strtoul
+  simple_strtoull
+  single_open
+  single_release
+  skb_add_rx_frag
+  skb_checksum_help
+  skb_clone
+  skb_clone_sk
+  skb_complete_wifi_ack
+  skb_copy
+  skb_copy_bits
+  skb_copy_expand
+  skb_dequeue
+  skb_ensure_writable
+  __skb_get_hash
+  __skb_gso_segment
+  skb_pull
+  skb_push
+  skb_put
+  skb_queue_head
+  skb_queue_purge
+  skb_queue_tail
+  skb_trim
+  skb_tstamp_tx
+  smpboot_register_percpu_thread
+  smpboot_unregister_percpu_thread
+  smp_call_function
+  snd_card_free
+  snd_card_new
+  snd_card_register
+  snd_ctl_add
+  snd_ctl_new1
+  snd_hwdep_new
+  snd_pcm_format_physical_width
+  snd_pcm_hw_constraint_minmax
+  snd_pcm_lib_free_pages
+  snd_pcm_lib_ioctl
+  snd_pcm_lib_malloc_pages
+  snd_pcm_new
+  snd_pcm_period_elapsed
+  snd_pcm_set_ops
+  snprintf
+  __sock_create
+  sock_release
+  sort
+  sprintf
+  sscanf
+  __stack_chk_fail
+  stpcpy
+  strcasecmp
+  strcat
+  strchr
+  strcmp
+  strcpy
+  strlcpy
+  strlen
+  strncasecmp
+  strncat
+  strncmp
+  strncpy
+  strncpy_from_user
+  strnlen
+  strrchr
+  strsep
+  strstr
+  __sw_hweight16
+  __sw_hweight32
+  __sw_hweight64
+  __sw_hweight8
+  sync_file_create
+  synchronize_irq
+  synchronize_net
+  synchronize_rcu
+  sysfs_create_group
+  sysfs_create_link
+  sysfs_emit
+  __sysfs_match_string
+  sysfs_notify
+  sysfs_remove_group
+  sysfs_remove_link
+  sysfs_streq
+  sysrq_mask
+  system_freezable_wq
+  system_freezing_cnt
+  system_power_efficient_wq
+  system_state
+  system_wq
+  sys_tz
+  task_active_pid_ns
+  tasklet_init
+  tasklet_kill
+  __tasklet_schedule
+  tasklet_setup
+  tasklet_unlock_wait
+  thermal_zone_device_register
+  thermal_zone_device_unregister
+  thermal_zone_device_update
+  thermal_zone_unbind_cooling_device
+  touch_softlockup_watchdog
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_handle_return
+  __traceiter_android_rvh_gic_v3_set_affinity
+  __traceiter_android_vh_dmabuf_heap_flags_validation
+  __traceiter_android_vh_logbuf
+  __traceiter_mmap_lock_acquire_returned
+  __traceiter_mmap_lock_released
+  __traceiter_mmap_lock_start_locking
+  __tracepoint_android_rvh_gic_v3_set_affinity
+  __tracepoint_android_vh_dmabuf_heap_flags_validation
+  __tracepoint_android_vh_logbuf
+  __tracepoint_mmap_lock_acquire_returned
+  __tracepoint_mmap_lock_released
+  __tracepoint_mmap_lock_start_locking
+  tracepoint_probe_register
+  trace_print_array_seq
+  trace_raw_output_prep
+  try_module_get
+  tty_flip_buffer_push
+  tty_termios_baud_rate
+  tty_termios_encode_baud_rate
+  uart_add_one_port
+  uart_console_device
+  uart_console_write
+  uart_get_baud_rate
+  uart_get_divisor
+  uart_handle_cts_change
+  uart_handle_dcd_change
+  uart_insert_char
+  uart_parse_options
+  uart_register_driver
+  uart_remove_one_port
+  uart_resume_port
+  uart_set_options
+  uart_suspend_port
+  uart_try_toggle_sysrq
+  uart_update_timeout
+  uart_write_wakeup
+  __ubsan_handle_cfi_check_fail_abort
+  __udelay
+  unlock_page
+  unpin_user_pages
+  unregister_blkdev
+  __unregister_chrdev
+  unregister_chrdev_region
+  unregister_console
+  unregister_die_notifier
+  unregister_inet6addr_notifier
+  unregister_inetaddr_notifier
+  unregister_kprobe
+  unregister_kretprobe
+  unregister_netdev
+  unregister_netdevice_many
+  unregister_netdevice_notifier
+  unregister_netdevice_queue
+  unregister_pernet_device
+  unregister_pm_notifier
+  unregister_reboot_notifier
+  unregister_shrinker
+  unregister_sysctl_table
+  up
+  up_read
+  up_write
+  usb_add_gadget_udc
+  usb_add_hcd
+  usb_alloc_coherent
+  usb_alloc_urb
+  usb_anchor_urb
+  usb_autopm_get_interface
+  usb_autopm_put_interface
+  usb_bulk_msg
+  usb_control_msg
+  __usb_create_hcd
+  usb_create_hcd
+  usb_debug_root
+  usb_del_gadget_udc
+  usb_deregister
+  usb_disable_autosuspend
+  usb_disabled
+  usb_driver_claim_interface
+  usb_driver_release_interface
+  usb_ep_set_maxpacket_limit
+  usb_free_coherent
+  usb_free_urb
+  usb_gadget_giveback_request
+  usb_gadget_map_request
+  usb_gadget_set_state
+  usb_gadget_unmap_request
+  usb_get_dr_mode
+  usb_get_from_anchor
+  usb_hcd_is_primary_hcd
+  usb_hcd_platform_shutdown
+  usb_ifnum_to_if
+  usb_interrupt_msg
+  usb_kill_anchored_urbs
+  usb_kill_urb
+  usb_phy_set_charger_current
+  usb_put_hcd
+  usb_register_driver
+  usb_remove_hcd
+  usb_role_switch_get_drvdata
+  usb_role_switch_register
+  usb_role_switch_unregister
+  usb_scuttle_anchored_urbs
+  usb_set_interface
+  usb_speed_string
+  usb_submit_urb
+  usb_unanchor_urb
+  __usecs_to_jiffies
+  usleep_range_state
+  uuid_null
+  vabits_actual
+  verify_pkcs7_signature
+  vfree
+  vmalloc
+  vmalloc_to_page
+  vmalloc_to_pfn
+  vmap
+  vm_get_page_prot
+  vm_iomap_memory
+  vm_mmap
+  vm_munmap
+  vprintk_emit
+  vsnprintf
+  vsprintf
+  vunmap
+  vzalloc
+  vzalloc_node
+  wait_for_completion
+  wait_for_completion_interruptible
+  wait_for_completion_interruptible_timeout
+  wait_for_completion_timeout
+  __wake_up
+  wake_up_process
+  wakeup_source_register
+  wakeup_source_unregister
+  __warn_printk
+  wireless_nlevent_flush
+  xhci_gen_setup
+  xhci_init_driver
+  xhci_resume
+  xhci_run
+  xhci_suspend
+  zs_compact
+  zs_create_pool
+  zs_destroy_pool
+  zs_free
+  zs_get_total_pages
+  zs_huge_class_size
+  zs_malloc
+  zs_map_object
+  zs_pool_stats
+  zs_unmap_object
diff --git a/android/abi_gki_aarch64_sony b/android/abi_gki_aarch64_sony
new file mode 100644
index 0000000..6af661c
--- /dev/null
+++ b/android/abi_gki_aarch64_sony
@@ -0,0 +1,8 @@
+[abi_symbol_list]
+#required by codec module
+  snd_soc_component_enable_pin
+  snd_soc_component_get_pin_status
+
+#required for mmc debugging
+  __traceiter_block_rq_complete
+  __tracepoint_block_rq_complete
diff --git a/android/abi_gki_aarch64_sunxi b/android/abi_gki_aarch64_sunxi
new file mode 100644
index 0000000..2444a6c
--- /dev/null
+++ b/android/abi_gki_aarch64_sunxi
@@ -0,0 +1,1689 @@
+[abi_symbol_list]
+  add_device_randomness
+  add_timer
+  add_uevent_var
+  alloc_anon_inode
+  alloc_chrdev_region
+  alloc_etherdev_mqs
+  alloc_netdev_mqs
+  __alloc_pages
+  alloc_pages_exact
+  __alloc_percpu
+  __alloc_percpu_gfp
+  __alloc_skb
+  alloc_workqueue
+  android_rvh_probe_register
+  anon_inode_getfd
+  arc4_crypt
+  arc4_setkey
+  __arch_clear_user
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  __arm_smccc_hvc
+  __arm_smccc_smc
+  atomic_notifier_chain_register
+  autoremove_wake_function
+  bcmp
+  bio_add_page
+  bio_alloc_bioset
+  bio_associate_blkg
+  bio_chain
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_init
+  bio_put
+  bio_start_io_acct
+  __bitmap_weight
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blk_cleanup_queue
+  blkdev_get_by_dev
+  blkdev_put
+  blk_mq_alloc_tag_set
+  blk_mq_complete_request
+  __blk_mq_end_request
+  blk_mq_end_request
+  blk_mq_free_tag_set
+  blk_mq_init_queue
+  blk_mq_start_request
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_hw_sectors
+  blk_queue_max_segment_size
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  blk_queue_rq_timeout
+  blk_queue_write_cache
+  blk_status_to_errno
+  blk_update_request
+  blockdev_superblock
+  blocking_notifier_call_chain
+  blocking_notifier_chain_register
+  blocking_notifier_chain_unregister
+  bpf_trace_run10
+  bpf_trace_run1
+  bpf_trace_run2
+  bpf_trace_run3
+  bpf_trace_run4
+  bpf_trace_run5
+  bpf_trace_run6
+  bpf_trace_run7
+  bpf_trace_run8
+  bt_err
+  bt_info
+  build_skb
+  bus_for_each_dev
+  bus_register
+  bus_register_notifier
+  bus_set_iommu
+  bus_unregister
+  bus_unregister_notifier
+  cache_line_size
+  call_rcu
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  cancel_work_sync
+  capable
+  cdev_add
+  cdev_alloc
+  cdev_del
+  cdev_device_add
+  cdev_device_del
+  cdev_init
+  __cfi_slowpath_diag
+  __check_object_size
+  __class_create
+  class_create_file_ns
+  class_destroy
+  class_find_device
+  __class_register
+  class_remove_file_ns
+  class_unregister
+  clear_page
+  __ClearPageMovable
+  clk_disable
+  clk_enable
+  clk_fixed_factor_ops
+  clk_get
+  __clk_get_hw
+  __clk_get_name
+  clk_get_parent
+  clk_get_rate
+  clk_hw_get_flags
+  clk_hw_get_num_parents
+  clk_hw_get_parent
+  clk_hw_get_parent_by_index
+  clk_hw_get_rate
+  clk_hw_round_rate
+  clk_hw_unregister
+  __clk_is_enabled
+  __clk_mux_determine_rate
+  clk_notifier_register
+  clk_prepare
+  clk_put
+  clk_register_fixed_factor
+  clk_register_fixed_rate
+  clk_register_gate
+  clk_round_rate
+  clk_set_parent
+  clk_set_rate
+  clk_unprepare
+  clk_unregister_fixed_factor
+  clk_unregister_fixed_rate
+  clk_unregister_gate
+  cma_alloc
+  cma_get_name
+  cma_release
+  compat_ptr_ioctl
+  complete
+  complete_all
+  complete_and_exit
+  completion_done
+  console_lock
+  console_suspend_enabled
+  console_unlock
+  __const_udelay
+  consume_skb
+  contig_page_data
+  cpufreq_cpu_get
+  cpufreq_cpu_put
+  cpufreq_enable_boost_support
+  cpufreq_freq_attr_scaling_available_freqs
+  cpufreq_freq_attr_scaling_boost_freqs
+  cpufreq_generic_frequency_table_verify
+  cpufreq_generic_get
+  cpufreq_generic_suspend
+  cpufreq_register_driver
+  cpufreq_register_notifier
+  cpufreq_unregister_driver
+  cpufreq_unregister_notifier
+  cpufreq_update_policy
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpumask_next
+  cpu_number
+  __cpu_online_mask
+  __cpu_possible_mask
+  __cpu_present_mask
+  crc32_be
+  crc32_le
+  crc_ccitt_table
+  crypto_aead_decrypt
+  crypto_aead_encrypt
+  crypto_aead_setauthsize
+  crypto_aead_setkey
+  crypto_alloc_aead
+  crypto_alloc_base
+  crypto_alloc_shash
+  crypto_alloc_skcipher
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_destroy_tfm
+  crypto_has_alg
+  __crypto_memneq
+  crypto_shash_digest
+  crypto_shash_final
+  crypto_shash_finup
+  crypto_shash_setkey
+  crypto_shash_update
+  crypto_skcipher_decrypt
+  crypto_skcipher_encrypt
+  crypto_skcipher_setkey
+  __crypto_xor
+  csum_ipv6_magic
+  csum_partial
+  _ctype
+  debugfs_attr_read
+  debugfs_attr_write
+  debugfs_create_bool
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_create_u32
+  debugfs_create_x8
+  debugfs_initialized
+  debugfs_remove
+  debugfs_rename
+  dec_zone_page_state
+  default_llseek
+  delayed_work_timer_fn
+  del_gendisk
+  del_timer
+  del_timer_sync
+  destroy_workqueue
+  dev_alloc_name
+  __dev_change_net_namespace
+  dev_close
+  dev_driver_string
+  _dev_err
+  dev_fetch_sw_netstats
+  devfreq_cooling_unregister
+  devfreq_event_disable_edev
+  devfreq_event_enable_edev
+  devfreq_event_get_edev_by_phandle
+  devfreq_event_get_event
+  devfreq_recommended_opp
+  devfreq_remove_device
+  devfreq_resume_device
+  devfreq_suspend_device
+  devfreq_unregister_opp_notifier
+  __dev_get_by_index
+  dev_get_by_index
+  device_add
+  device_add_disk
+  device_create
+  device_create_file
+  device_create_with_groups
+  device_del
+  device_destroy
+  device_find_child
+  device_for_each_child
+  device_initialize
+  device_init_wakeup
+  device_move
+  device_property_read_string
+  device_register
+  device_remove_file
+  device_remove_groups
+  device_rename
+  device_set_wakeup_capable
+  device_unregister
+  device_wakeup_disable
+  device_wakeup_enable
+  _dev_info
+  __dev_kfree_skb_any
+  devm_add_action
+  devm_clk_get
+  devm_clk_put
+  devm_clk_register
+  devm_devfreq_add_device
+  devm_devfreq_event_add_edev
+  devm_devfreq_register_opp_notifier
+  devm_free_irq
+  devm_gpio_free
+  devm_gpio_request
+  devm_gpio_request_one
+  devm_hwrng_register
+  devm_iio_device_alloc
+  devm_input_allocate_device
+  devm_ioremap
+  devm_ioremap_resource
+  devm_iounmap
+  devm_kasprintf
+  devm_kfree
+  devm_kmalloc
+  devm_kmemdup
+  devm_kstrdup
+  devm_kvasprintf
+  devm_nvmem_register
+  devm_of_clk_add_hw_provider
+  devm_of_iomap
+  devm_pci_remap_cfgspace
+  devm_pinctrl_get
+  devm_pinctrl_put
+  devm_pinctrl_register
+  devm_platform_ioremap_resource
+  devm_power_supply_get_by_phandle
+  devm_power_supply_register
+  devm_rc_allocate_device
+  devm_rc_register_device
+  __devm_regmap_init_i2c
+  __devm_regmap_init_mmio_clk
+  devm_regulator_get
+  devm_regulator_register
+  __devm_release_region
+  devm_request_any_context_irq
+  __devm_request_region
+  devm_request_threaded_irq
+  __devm_reset_control_get
+  devm_rtc_allocate_device
+  __devm_rtc_register_device
+  devm_snd_soc_register_card
+  devm_thermal_zone_of_sensor_register
+  devm_watchdog_register_device
+  dev_pm_clear_wake_irq
+  dev_pm_opp_find_freq_ceil
+  dev_pm_opp_find_freq_floor
+  dev_pm_opp_free_cpufreq_table
+  dev_pm_opp_get_freq
+  dev_pm_opp_get_max_transition_latency
+  dev_pm_opp_get_opp_count
+  dev_pm_opp_get_sharing_cpus
+  dev_pm_opp_get_suspend_opp_freq
+  dev_pm_opp_get_voltage
+  dev_pm_opp_init_cpufreq_table
+  dev_pm_opp_of_add_table
+  dev_pm_opp_of_cpumask_add_table
+  dev_pm_opp_of_cpumask_remove_table
+  dev_pm_opp_of_get_opp_desc_node
+  dev_pm_opp_of_get_sharing_cpus
+  dev_pm_opp_of_register_em
+  dev_pm_opp_of_remove_table
+  dev_pm_opp_put
+  dev_pm_opp_put_prop_name
+  dev_pm_opp_put_regulators
+  dev_pm_opp_put_supported_hw
+  dev_pm_opp_set_prop_name
+  dev_pm_opp_set_rate
+  dev_pm_opp_set_regulators
+  dev_pm_opp_set_sharing_cpus
+  dev_pm_opp_set_supported_hw
+  dev_pm_set_wake_irq
+  _dev_printk
+  dev_queue_xmit
+  dev_set_name
+  _dev_warn
+  disable_irq
+  disable_irq_nosync
+  disk_end_io_acct
+  disk_start_io_acct
+  divider_get_val
+  divider_recalc_rate
+  divider_round_rate_parent
+  dma_alloc_attrs
+  dma_async_device_register
+  dma_async_device_unregister
+  dma_async_tx_descriptor_init
+  dma_buf_attach
+  dma_buf_begin_cpu_access
+  dma_buf_detach
+  dma_buf_end_cpu_access
+  dma_buf_export
+  dma_buf_fd
+  dma_buf_get
+  dma_buf_map_attachment
+  dma_buf_mmap
+  dmabuf_page_pool_alloc
+  dmabuf_page_pool_create
+  dmabuf_page_pool_destroy
+  dmabuf_page_pool_free
+  dma_buf_put
+  dma_buf_unmap_attachment
+  dma_buf_vmap
+  dma_buf_vunmap
+  dma_contiguous_default_area
+  dma_fence_add_callback
+  dma_fence_array_ops
+  dma_fence_context_alloc
+  dma_fence_default_wait
+  dma_fence_enable_sw_signaling
+  dma_fence_free
+  dma_fence_get_status
+  dma_fence_init
+  dma_fence_release
+  dma_fence_remove_callback
+  dma_fence_signal
+  dma_fence_signal_locked
+  dma_fence_wait_timeout
+  dma_free_attrs
+  dma_get_any_slave_channel
+  dma_heap_add
+  dma_heap_buffer_alloc
+  dma_heap_buffer_free
+  dma_heap_find
+  dma_heap_get_dev
+  dma_heap_get_drvdata
+  dma_heap_get_name
+  dma_map_page_attrs
+  dma_map_sg_attrs
+  dma_map_sgtable
+  dma_mmap_attrs
+  dmam_pool_create
+  dma_pool_alloc
+  dma_pool_create
+  dma_pool_destroy
+  dma_pool_free
+  dma_release_channel
+  dma_request_chan
+  __dma_request_channel
+  dma_set_coherent_mask
+  dma_set_mask
+  dma_supported
+  dma_sync_sg_for_cpu
+  dma_sync_sg_for_device
+  dma_sync_single_for_cpu
+  dma_sync_single_for_device
+  dma_unmap_page_attrs
+  dma_unmap_sg_attrs
+  do_SAK
+  do_trace_netlink_extack
+  down
+  downgrade_write
+  down_interruptible
+  down_read
+  down_timeout
+  down_trylock
+  down_write
+  driver_attach
+  driver_register
+  driver_unregister
+  drm_compat_ioctl
+  __drm_dbg
+  drm_dev_alloc
+  drm_dev_put
+  drm_dev_register
+  drm_dev_unregister
+  __drm_err
+  drm_ioctl
+  drmm_mode_config_init
+  drm_mode_config_cleanup
+  drm_open
+  drm_poll
+  drm_read
+  drm_release
+  dump_stack
+  ehci_init_driver
+  ehci_resume
+  ehci_suspend
+  enable_irq
+  ether_setup
+  eth_mac_addr
+  ethtool_op_get_link
+  eth_type_trans
+  event_triggers_call
+  fb_mode_option
+  fd_install
+  fget
+  file_path
+  filp_close
+  filp_open_block
+  _find_first_bit
+  find_get_pid
+  _find_next_bit
+  __find_vma
+  find_vpid
+  finish_wait
+  flush_dcache_page
+  flush_delayed_work
+  flush_signals
+  flush_work
+  flush_workqueue
+  fput
+  free_irq
+  free_netdev
+  __free_pages
+  free_pages
+  free_pages_exact
+  free_percpu
+  freezing_slow_path
+  fs_bio_set
+  fsync_bdev
+  gcd
+  generic_file_llseek
+  generic_handle_irq
+  genlmsg_multicast_allns
+  genlmsg_put
+  genl_register_family
+  genl_unregister_family
+  gen_pool_add_owner
+  gen_pool_alloc_algo_owner
+  gen_pool_best_fit
+  gen_pool_create
+  gen_pool_destroy
+  gen_pool_dma_alloc_align
+  gen_pool_dma_zalloc_align
+  gen_pool_free_owner
+  gen_pool_set_algo
+  gen_pool_virt_to_phys
+  get_cpu_device
+  get_device
+  __get_free_pages
+  get_kernel_pages
+  get_net_ns_by_fd
+  get_net_ns_by_pid
+  get_random_bytes
+  get_random_u32
+  __get_task_comm
+  get_unused_fd_flags
+  get_user_pages
+  get_user_pages_fast
+  get_zeroed_page
+  gic_nonsecure_priorities
+  gpiochip_add_data_with_key
+  gpiochip_add_pin_range
+  gpiochip_generic_config
+  gpiochip_generic_free
+  gpiochip_generic_request
+  gpiochip_get_data
+  gpiochip_line_is_irq
+  gpiochip_lock_as_irq
+  gpiochip_remove
+  gpiochip_unlock_as_irq
+  gpiod_direction_input
+  gpiod_direction_output_raw
+  gpiod_get_raw_value
+  gpiod_set_debounce
+  gpiod_set_raw_value
+  gpiod_to_irq
+  gpio_free
+  gpio_request
+  gpio_to_desc
+  handle_edge_irq
+  handle_fasteoi_irq
+  handle_sysrq
+  hid_hw_start
+  hid_open_report
+  __hid_register_driver
+  __hid_request
+  hid_unregister_driver
+  hrtimer_active
+  hrtimer_cancel
+  hrtimer_forward
+  __hrtimer_get_remaining
+  hrtimer_init
+  hrtimer_start_range_ns
+  hrtimer_try_to_cancel
+  __hw_addr_init
+  __hw_addr_sync
+  __hw_addr_unsync
+  hwspin_lock_register
+  hwspin_lock_unregister
+  i2c_adapter_type
+  i2c_add_numbered_adapter
+  i2c_bus_type
+  i2c_del_adapter
+  i2c_del_driver
+  i2c_for_each_dev
+  i2c_generic_scl_recovery
+  i2c_get_adapter
+  i2c_get_dma_safe_msg_buf
+  i2c_put_adapter
+  i2c_put_dma_safe_msg_buf
+  i2c_recover_bus
+  i2c_register_driver
+  i2c_smbus_read_byte_data
+  i2c_smbus_read_i2c_block_data
+  i2c_smbus_write_byte_data
+  i2c_smbus_xfer
+  i2c_transfer
+  i2c_transfer_buffer_flags
+  i2c_unregister_device
+  i2c_verify_client
+  I_BDEV
+  idr_alloc
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_get_next
+  idr_preload
+  idr_remove
+  idr_replace
+  ignore_console_lock_warning
+  __iio_device_register
+  iio_device_unregister
+  inc_zone_page_state
+  in_egroup_p
+  inet_csk_get_port
+  init_net
+  init_pseudo
+  __init_rwsem
+  __init_swait_queue_head
+  init_timer_key
+  init_uts_ns
+  init_wait_entry
+  __init_waitqueue_head
+  input_allocate_device
+  input_close_device
+  input_event
+  input_ff_create_memless
+  input_free_device
+  input_open_device
+  input_register_device
+  input_register_handle
+  input_register_handler
+  input_set_abs_params
+  input_set_capability
+  input_unregister_device
+  input_unregister_handle
+  iomem_resource
+  iommu_device_register
+  iommu_device_sysfs_add
+  iommu_device_sysfs_remove
+  iommu_device_unregister
+  iommu_get_dma_cookie
+  iommu_group_alloc
+  iommu_group_register_notifier
+  iommu_put_dma_cookie
+  ioport_resource
+  __ioremap
+  iounmap
+  iput
+  __irq_alloc_domain_generic_chips
+  irq_chip_disable_parent
+  irq_chip_enable_parent
+  irq_chip_eoi_parent
+  irq_chip_mask_parent
+  irq_chip_retrigger_hierarchy
+  irq_chip_set_affinity_parent
+  irq_chip_set_type_parent
+  irq_chip_unmask_parent
+  irq_create_mapping_affinity
+  irq_dispose_mapping
+  __irq_domain_add
+  irq_domain_alloc_irqs_parent
+  irq_domain_create_hierarchy
+  irq_domain_free_irqs_common
+  irq_domain_remove
+  irq_domain_set_hwirq_and_chip
+  irq_find_matching_fwspec
+  irq_gc_ack_set_bit
+  irq_gc_mask_clr_bit
+  irq_gc_mask_set_bit
+  irq_generic_chip_ops
+  irq_get_domain_generic_chip
+  irq_get_irq_data
+  irq_of_parse_and_map
+  __irq_resolve_mapping
+  irq_set_chained_handler_and_data
+  irq_set_chip_and_handler_name
+  irq_set_chip_data
+  irq_set_irq_type
+  irq_set_irq_wake
+  irq_setup_alt_chip
+  irq_to_desc
+  ir_raw_event_handle
+  ir_raw_event_store
+  ir_raw_gen_manchester
+  ir_raw_gen_pd
+  ir_raw_handler_register
+  ir_raw_handler_unregister
+  is_console_locked
+  is_vmalloc_addr
+  iwe_stream_add_event
+  iwe_stream_add_point
+  jiffies
+  jiffies_to_msecs
+  jiffies_to_usecs
+  kasan_flag_enabled
+  kernel_param_lock
+  kernel_param_unlock
+  kernel_sigaction
+  kern_mount
+  kern_unmount
+  key_create_or_update
+  key_put
+  keyring_alloc
+  __kfifo_alloc
+  __kfifo_free
+  __kfifo_in
+  __kfifo_out
+  kfree
+  kfree_sensitive
+  kfree_skb
+  kfree_skb_list
+  kill_anon_super
+  kill_pid
+  kimage_vaddr
+  kimage_voffset
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order_trace
+  kmem_cache_alloc
+  kmem_cache_alloc_trace
+  kmem_cache_create
+  kmem_cache_destroy
+  kmem_cache_free
+  kmemdup
+  kobject_init_and_add
+  kobject_uevent
+  kobject_uevent_env
+  krealloc
+  ksize
+  kstrdup
+  kstrndup
+  kstrtobool_from_user
+  kstrtoint
+  kstrtoll
+  kstrtou16
+  kstrtouint
+  kstrtouint_from_user
+  kstrtoull
+  kthread_create_on_node
+  kthread_freezable_should_stop
+  kthread_should_stop
+  kthread_stop
+  ktime_get
+  ktime_get_coarse_real_ts64
+  ktime_get_coarse_with_offset
+  ktime_get_mono_fast_ns
+  ktime_get_raw
+  ktime_get_raw_ts64
+  ktime_get_real_seconds
+  ktime_get_real_ts64
+  ktime_get_seconds
+  ktime_get_ts64
+  ktime_get_with_offset
+  kvfree
+  kvfree_call_rcu
+  kvmalloc_node
+  led_classdev_register_ext
+  led_classdev_unregister
+  __list_add_valid
+  __list_del_entry_valid
+  list_sort
+  __local_bh_enable_ip
+  __lock_page
+  log_post_read_mmio
+  log_post_write_mmio
+  log_read_mmio
+  log_write_mmio
+  media_create_pad_link
+  media_device_cleanup
+  media_device_init
+  __media_device_register
+  media_device_unregister
+  media_entity_find_link
+  media_entity_pads_init
+  media_entity_remote_pad
+  __media_entity_setup_link
+  media_entity_setup_link
+  media_graph_walk_init
+  media_graph_walk_next
+  media_graph_walk_start
+  memblock_free
+  memcmp
+  memcpy
+  __memcpy_fromio
+  __memcpy_toio
+  memdup_user
+  memmove
+  memparse
+  memremap
+  mem_section
+  memset64
+  memset
+  memstart_addr
+  memunmap
+  mfd_add_devices
+  mfd_remove_devices
+  misc_deregister
+  misc_register
+  __mmap_lock_do_trace_acquire_returned
+  __mmap_lock_do_trace_released
+  __mmap_lock_do_trace_start_locking
+  mmc_add_host
+  mmc_alloc_host
+  __mmc_claim_host
+  mmc_cqe_request_done
+  mmc_detect_change
+  mmc_free_host
+  mmc_gpio_get_cd
+  mmc_gpio_get_ro
+  mmc_of_parse
+  mmc_release_host
+  mmc_remove_host
+  mmc_request_done
+  mmc_send_status
+  mmc_set_data_timeout
+  mmc_wait_for_req
+  __mmdrop
+  mod_delayed_work_on
+  mod_timer
+  module_layout
+  module_put
+  __msecs_to_jiffies
+  msleep
+  msleep_interruptible
+  __mutex_init
+  mutex_is_locked
+  mutex_lock
+  mutex_lock_interruptible
+  mutex_trylock
+  mutex_unlock
+  napi_complete_done
+  napi_disable
+  napi_enable
+  napi_gro_receive
+  __napi_schedule
+  napi_schedule_prep
+  __netdev_alloc_frag_align
+  __netdev_alloc_skb
+  netdev_err
+  netdev_info
+  netdev_set_default_ethtool_ops
+  netdev_warn
+  netif_carrier_off
+  netif_carrier_on
+  netif_device_attach
+  netif_device_detach
+  netif_napi_add
+  __netif_napi_del
+  netif_receive_skb
+  netif_receive_skb_list
+  netif_rx
+  netif_rx_ni
+  netif_tx_stop_all_queues
+  netif_tx_wake_queue
+  netlink_broadcast
+  __netlink_kernel_create
+  netlink_kernel_release
+  netlink_register_notifier
+  netlink_unicast
+  netlink_unregister_notifier
+  net_ns_type_operations
+  net_ratelimit
+  nla_append
+  nla_find
+  nla_memcpy
+  __nla_parse
+  nla_put_64bit
+  nla_put
+  nla_put_nohdr
+  nla_reserve
+  __nla_validate
+  __nlmsg_put
+  no_llseek
+  nonseekable_open
+  nr_cpu_ids
+  ns_to_timespec64
+  n_tty_ioctl_helper
+  __num_online_cpus
+  nvmem_cell_put
+  nvmem_cell_read
+  of_address_to_resource
+  of_alias_get_id
+  of_clk_add_hw_provider
+  of_clk_add_provider
+  of_clk_del_provider
+  of_clk_get
+  of_clk_get_by_name
+  of_clk_get_parent_count
+  of_clk_hw_onecell_get
+  of_clk_hw_register
+  of_clk_src_simple_get
+  of_device_get_match_data
+  of_device_is_available
+  of_device_is_compatible
+  of_dma_controller_free
+  of_dma_controller_register
+  of_dma_is_coherent
+  of_find_compatible_node
+  of_find_device_by_node
+  of_find_i2c_device_by_node
+  of_find_matching_node_and_match
+  of_find_node_by_name
+  of_find_node_by_phandle
+  of_find_node_by_type
+  of_find_node_opts_by_path
+  of_find_property
+  of_fwnode_ops
+  of_genpd_add_provider_onecell
+  of_genpd_add_provider_simple
+  of_genpd_del_provider
+  of_get_child_by_name
+  of_get_cpu_node
+  of_get_named_gpio_flags
+  of_get_next_available_child
+  of_get_next_child
+  of_get_property
+  of_iomap
+  of_io_request_and_map
+  of_irq_find_parent
+  of_irq_get
+  of_machine_is_compatible
+  of_match_device
+  of_match_node
+  of_nvmem_cell_get
+  of_parse_phandle
+  of_parse_phandle_with_args
+  of_pci_get_max_link_speed
+  of_property_count_elems_of_size
+  of_property_match_string
+  of_property_read_string
+  of_property_read_string_helper
+  of_property_read_u32_index
+  of_property_read_variable_u32_array
+  of_property_read_variable_u8_array
+  of_prop_next_string
+  of_prop_next_u32
+  of_pwm_xlate_with_flags
+  oops_in_progress
+  page_endio
+  page_mapping
+  panic
+  panic_notifier_list
+  param_array_ops
+  param_ops_bool
+  param_ops_byte
+  param_ops_charp
+  param_ops_int
+  param_ops_string
+  param_ops_uint
+  param_ops_ulong
+  pci_choose_state
+  pci_clear_master
+  pci_dev_put
+  pci_disable_device
+  pci_disable_msi
+  pcie_link_speed
+  pci_enable_device
+  pci_enable_msi
+  pci_get_device
+  pci_get_slot
+  pci_ioremap_bar
+  pci_match_id
+  pci_read_config_word
+  __pci_register_driver
+  pci_release_region
+  pci_release_regions
+  pci_request_region
+  pci_request_regions
+  pci_restore_state
+  pci_save_state
+  pci_set_master
+  pci_set_power_state
+  pci_unregister_driver
+  pci_write_config_byte
+  pci_write_config_word
+  PDE_DATA
+  __per_cpu_offset
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  pfn_is_map_memory
+  pid_task
+  pinctrl_dev_get_drvdata
+  pinctrl_get
+  pinctrl_gpio_direction_input
+  pinctrl_gpio_direction_output
+  pinctrl_gpio_set_config
+  pinctrl_lookup_state
+  pinctrl_put
+  pinctrl_select_state
+  pin_user_pages
+  pin_user_pages_fast
+  pin_user_pages_remote
+  platform_bus_type
+  platform_device_add
+  platform_device_alloc
+  platform_device_del
+  platform_device_register
+  platform_device_register_full
+  platform_device_unregister
+  __platform_driver_probe
+  __platform_driver_register
+  platform_driver_unregister
+  platform_get_irq
+  platform_get_irq_byname
+  platform_get_resource
+  pm_clk_add_clk
+  pm_clk_create
+  pm_clk_destroy
+  pm_genpd_add_subdomain
+  pm_genpd_init
+  pm_genpd_remove
+  pm_power_off
+  __pm_relax
+  __pm_runtime_disable
+  pm_runtime_enable
+  pm_runtime_force_resume
+  pm_runtime_force_suspend
+  __pm_runtime_idle
+  __pm_runtime_resume
+  pm_runtime_set_autosuspend_delay
+  __pm_runtime_set_status
+  __pm_runtime_suspend
+  __pm_runtime_use_autosuspend
+  __pm_stay_awake
+  pm_wakeup_dev_event
+  pm_wakeup_ws_event
+  policy_has_boost_freq
+  power_supply_changed
+  power_supply_get_drvdata
+  power_supply_get_property
+  power_supply_set_property
+  power_supply_unregister
+  ppp_channel_index
+  ppp_input
+  ppp_input_error
+  ppp_output_wakeup
+  ppp_register_channel
+  ppp_unit_number
+  ppp_unregister_channel
+  prandom_bytes
+  prandom_u32
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait
+  prepare_to_wait_event
+  print_hex_dump
+  _printk
+  proc_create
+  proc_create_data
+  proc_create_seq_private
+  proc_create_single_data
+  proc_dointvec
+  proc_get_parent_data
+  proc_mkdir
+  proc_mkdir_data
+  proc_remove
+  __pskb_copy_fclone
+  pskb_expand_head
+  __pskb_pull_tail
+  ___pskb_trim
+  put_device
+  put_disk
+  __put_net
+  __put_page
+  put_pid
+  __put_task_struct
+  put_unused_fd
+  pwm_apply_state
+  pwmchip_add
+  pwmchip_remove
+  pwm_free
+  pwm_request
+  queue_delayed_work_on
+  queue_work_on
+  ___ratelimit
+  raw_notifier_call_chain
+  raw_notifier_chain_register
+  raw_notifier_chain_unregister
+  _raw_read_lock
+  _raw_read_lock_bh
+  _raw_read_unlock
+  _raw_read_unlock_bh
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irq
+  _raw_spin_lock_irqsave
+  _raw_spin_trylock
+  _raw_spin_trylock_bh
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irq
+  _raw_spin_unlock_irqrestore
+  _raw_write_lock
+  _raw_write_lock_bh
+  _raw_write_lock_irq
+  _raw_write_unlock
+  _raw_write_unlock_bh
+  _raw_write_unlock_irq
+  rb_erase
+  rb_first
+  rb_insert_color
+  rb_next
+  rb_prev
+  rb_replace_node
+  rc_keydown
+  rc_map_register
+  rc_map_unregister
+  rc_repeat
+  rcu_barrier
+  rc_unregister_device
+  __rcu_read_lock
+  __rcu_read_unlock
+  rdev_get_drvdata
+  refcount_warn_saturate
+  __refrigerator
+  __register_blkdev
+  __register_chrdev
+  register_chrdev_region
+  register_inet6addr_notifier
+  register_inetaddr_notifier
+  register_netdev
+  register_netdevice
+  register_netdevice_notifier
+  register_oom_notifier
+  register_pernet_device
+  register_pm_notifier
+  register_reboot_notifier
+  register_shrinker
+  register_syscore_ops
+  register_sysctl_table
+  regmap_add_irq_chip
+  regmap_bulk_read
+  regmap_bulk_write
+  regmap_del_irq_chip
+  regmap_irq_get_virq
+  regmap_read
+  regmap_update_bits_base
+  regmap_write
+  regulator_count_voltages
+  regulator_disable
+  regulator_disable_regmap
+  regulator_enable
+  regulator_enable_regmap
+  regulator_get
+  regulator_get_mode
+  regulator_get_optional
+  regulator_get_voltage
+  regulator_get_voltage_sel_regmap
+  regulator_is_enabled
+  regulator_is_enabled_regmap
+  regulator_list_voltage
+  regulator_list_voltage_linear
+  regulator_list_voltage_linear_range
+  regulator_put
+  regulator_set_current_limit
+  regulator_set_mode
+  regulator_set_voltage
+  regulator_set_voltage_sel_regmap
+  release_firmware
+  __release_region
+  remap_pfn_range
+  remap_vmalloc_range
+  remove_proc_entry
+  remove_proc_subtree
+  request_firmware
+  request_firmware_direct
+  request_firmware_nowait
+  __request_module
+  __request_region
+  request_threaded_irq
+  reset_control_assert
+  reset_control_deassert
+  reset_controller_register
+  reset_control_put
+  reset_control_reset
+  reset_control_status
+  rfkill_alloc
+  rfkill_blocked
+  rfkill_destroy
+  rfkill_init_sw_state
+  rfkill_register
+  rfkill_resume_polling
+  rfkill_set_hw_state_reason
+  rfkill_set_states
+  rfkill_unregister
+  rhashtable_free_and_destroy
+  rhashtable_insert_slow
+  rhltable_init
+  __rht_bucket_nested
+  rht_bucket_nested
+  rht_bucket_nested_insert
+  round_jiffies
+  round_jiffies_relative
+  round_jiffies_up
+  rq_flush_dcache_pages
+  rtc_time64_to_tm
+  rtc_tm_to_time64
+  rtc_update_irq
+  rtc_valid_tm
+  rtnl_is_locked
+  rtnl_lock
+  rtnl_unlock
+  sb800_prefetch
+  sched_clock
+  sched_setscheduler
+  schedule
+  schedule_hrtimeout
+  schedule_timeout
+  schedule_timeout_interruptible
+  schedule_timeout_uninterruptible
+  scnprintf
+  sdio_align_size
+  sdio_claim_host
+  sdio_claim_irq
+  sdio_disable_func
+  sdio_enable_func
+  sdio_f0_readb
+  sdio_f0_writeb
+  sdio_get_host_pm_caps
+  sdio_memcpy_fromio
+  sdio_memcpy_toio
+  sdio_readb
+  sdio_readl
+  sdio_readsb
+  sdio_register_driver
+  sdio_release_host
+  sdio_release_irq
+  sdio_set_block_size
+  sdio_set_host_pm_flags
+  sdio_unregister_driver
+  sdio_writeb
+  sdio_writel
+  sdio_writesb
+  send_sig_info
+  seq_lseek
+  seq_open
+  seq_printf
+  seq_putc
+  seq_puts
+  seq_read
+  seq_release
+  seq_vprintf
+  seq_write
+  set_capacity
+  set_capacity_and_notify
+  set_disk_ro
+  set_freezable
+  set_page_dirty_lock
+  __SetPageMovable
+  set_user_nice
+  sg_alloc_table
+  sg_alloc_table_from_pages_segment
+  sg_free_table
+  sg_init_one
+  sg_init_table
+  sg_next
+  __sg_page_iter_next
+  __sg_page_iter_start
+  si_meminfo
+  simple_attr_open
+  simple_attr_release
+  simple_open
+  simple_read_from_buffer
+  simple_strtol
+  simple_strtoul
+  single_open
+  single_open_size
+  single_release
+  skb_add_rx_frag
+  skb_checksum_help
+  skb_clone
+  skb_clone_sk
+  skb_complete_wifi_ack
+  skb_copy
+  skb_copy_bits
+  skb_copy_expand
+  skb_dequeue
+  skb_dequeue_tail
+  skb_ensure_writable
+  __skb_get_hash
+  __skb_gso_segment
+  __skb_pad
+  skb_pull
+  skb_push
+  skb_put
+  skb_queue_head
+  skb_queue_purge
+  skb_queue_tail
+  skb_realloc_headroom
+  skb_trim
+  skb_unlink
+  snd_card_ref
+  snd_card_register
+  snd_card_rw_proc_new
+  snd_ctl_add
+  snd_ctl_boolean_mono_info
+  snd_ctl_new1
+  snd_ctl_notify
+  snd_devm_card_new
+  snd_dmaengine_pcm_close_release_chan
+  snd_dmaengine_pcm_get_chan
+  snd_dmaengine_pcm_open
+  snd_dmaengine_pcm_pointer
+  snd_dmaengine_pcm_trigger
+  snd_ecards_limit
+  snd_hwparams_to_dma_slave_config
+  snd_info_get_line
+  snd_interval_refine
+  snd_jack_report
+  snd_jack_set_key
+  snd_pcm_format_physical_width
+  snd_pcm_format_set_silence
+  snd_pcm_hw_constraint_integer
+  snd_pcm_hw_rule_add
+  snd_pcm_lib_ioctl
+  snd_pcm_new
+  snd_pcm_period_elapsed
+  snd_pcm_set_managed_buffer_all
+  snd_pcm_set_ops
+  snd_pcm_stop
+  snd_pcm_stop_xrun
+  snd_soc_add_component_controls
+  snd_soc_card_jack_new
+  snd_soc_component_set_pll
+  snd_soc_dai_set_bclk_ratio
+  snd_soc_dai_set_clkdiv
+  snd_soc_dai_set_fmt
+  snd_soc_dai_set_pll
+  snd_soc_dai_set_sysclk
+  snd_soc_dai_set_tdm_slot
+  snd_soc_dapm_add_routes
+  snd_soc_dapm_disable_pin
+  snd_soc_dapm_get_pin_switch
+  snd_soc_dapm_info_pin_switch
+  snd_soc_dapm_new_controls
+  snd_soc_dapm_put_pin_switch
+  snd_soc_dapm_sync
+  snd_soc_get_enum_double
+  snd_soc_get_volsw
+  snd_soc_info_enum_double
+  snd_soc_info_volsw
+  snd_soc_of_get_dai_name
+  snd_soc_of_parse_audio_routing
+  snd_soc_of_parse_audio_simple_widgets
+  snd_soc_of_parse_card_name
+  snd_soc_pm_ops
+  snd_soc_put_enum_double
+  snd_soc_put_volsw
+  snd_soc_register_component
+  snd_soc_set_runtime_hwparams
+  snd_soc_unregister_component
+  snd_timer_close
+  snd_timer_instance_free
+  snd_timer_instance_new
+  snd_timer_open
+  snd_timer_start
+  snd_timer_stop
+  snprintf
+  __sock_create
+  sock_release
+  sort
+  __spi_alloc_controller
+  spi_busnum_to_master
+  spi_register_controller
+  __spi_register_driver
+  spi_sync
+  spi_unregister_controller
+  spi_unregister_device
+  split_page
+  sprintf
+  sscanf
+  __stack_chk_fail
+  start_tty
+  static_key_slow_dec
+  static_key_slow_inc
+  stop_tty
+  strcasecmp
+  strcat
+  strchr
+  strcmp
+  strcpy
+  strcspn
+  strim
+  strlcat
+  strlcpy
+  strlen
+  strncasecmp
+  strnchr
+  strncmp
+  strncpy
+  strnlen
+  strpbrk
+  strscpy
+  strsep
+  strstr
+  submit_bio
+  submit_bio_wait
+  __sw_hweight16
+  __sw_hweight32
+  __sw_hweight64
+  __sw_hweight8
+  sync_file_create
+  sync_file_get_fence
+  synchronize_irq
+  synchronize_net
+  synchronize_rcu
+  syscon_node_to_regmap
+  sysfs_create_file_ns
+  sysfs_create_group
+  sysfs_create_link
+  sysfs_emit
+  __sysfs_match_string
+  sysfs_remove_file_ns
+  sysfs_remove_group
+  sysfs_remove_link
+  sysfs_streq
+  sysrq_mask
+  system_freezable_wq
+  system_freezing_cnt
+  system_power_efficient_wq
+  system_wq
+  __tasklet_hi_schedule
+  tasklet_init
+  tasklet_kill
+  __tasklet_schedule
+  tasklet_setup
+  tasklet_unlock_wait
+  __task_pid_nr_ns
+  tcpm_tcpc_reset
+  thermal_zone_get_temp
+  thermal_zone_get_zone_by_name
+  time64_to_tm
+  _totalram_pages
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_handle_return
+  __traceiter_android_rvh_set_balance_anon_file_reclaim
+  __traceiter_android_vh_audio_usb_offload_ep_action
+  __traceiter_android_vh_dmabuf_heap_flags_validation
+  __traceiter_android_vh_dma_buf_release
+  __traceiter_android_vh_map_util_freq
+  __traceiter_android_vh_meminfo_proc_show
+  __traceiter_android_vh_page_cache_forced_ra
+  __traceiter_android_vh_show_mem
+  __traceiter_android_vh_tune_inactive_ratio
+  __traceiter_android_vh_tune_swappiness
+  __traceiter_gpu_mem_total
+  __traceiter_mmap_lock_acquire_returned
+  __traceiter_mmap_lock_released
+  __traceiter_mmap_lock_start_locking
+  trace_output_call
+  __tracepoint_android_rvh_set_balance_anon_file_reclaim
+  __tracepoint_android_vh_audio_usb_offload_ep_action
+  __tracepoint_android_vh_dmabuf_heap_flags_validation
+  __tracepoint_android_vh_dma_buf_release
+  __tracepoint_android_vh_map_util_freq
+  __tracepoint_android_vh_meminfo_proc_show
+  __tracepoint_android_vh_page_cache_forced_ra
+  __tracepoint_android_vh_show_mem
+  __tracepoint_android_vh_tune_inactive_ratio
+  __tracepoint_android_vh_tune_swappiness
+  __tracepoint_gpu_mem_total
+  __tracepoint_mmap_lock_acquire_returned
+  __tracepoint_mmap_lock_released
+  __tracepoint_mmap_lock_start_locking
+  tracepoint_probe_register
+  tracepoint_probe_unregister
+  trace_print_array_seq
+  trace_print_flags_seq
+  trace_print_hex_dump_seq
+  trace_print_symbols_seq
+  trace_raw_output_prep
+  trace_seq_printf
+  trace_seq_putc
+  trace_set_clr_event
+  try_module_get
+  __tty_alloc_driver
+  tty_driver_kref_put
+  tty_flip_buffer_push
+  tty_hangup
+  __tty_insert_flip_char
+  tty_insert_flip_string_fixed_flag
+  tty_kref_put
+  tty_ldisc_deref
+  tty_ldisc_ref
+  tty_mode_ioctl
+  tty_port_close
+  tty_port_destroy
+  tty_port_hangup
+  tty_port_init
+  tty_port_link_device
+  tty_port_open
+  tty_port_register_device
+  tty_port_tty_get
+  tty_port_tty_hangup
+  tty_port_tty_wakeup
+  tty_register_driver
+  tty_register_ldisc
+  tty_standard_install
+  tty_std_termios
+  tty_termios_baud_rate
+  tty_termios_copy_hw
+  tty_termios_encode_baud_rate
+  tty_unregister_device
+  tty_unregister_driver
+  tty_unregister_ldisc
+  tty_unthrottle
+  tty_vhangup
+  typec_register_partner
+  typec_register_port
+  typec_set_data_role
+  typec_set_pwr_role
+  typec_set_vconn_role
+  typec_unregister_partner
+  uart_add_one_port
+  uart_console_device
+  uart_console_write
+  uart_get_baud_rate
+  uart_get_divisor
+  uart_handle_cts_change
+  uart_handle_dcd_change
+  uart_insert_char
+  uart_parse_options
+  uart_register_driver
+  uart_resume_port
+  uart_set_options
+  uart_suspend_port
+  uart_try_toggle_sysrq
+  uart_unregister_driver
+  uart_update_timeout
+  uart_write_wakeup
+  __ubsan_handle_cfi_check_fail_abort
+  __udelay
+  unlock_page
+  unmap_mapping_range
+  unpin_user_page
+  unpin_user_pages
+  unregister_blkdev
+  __unregister_chrdev
+  unregister_chrdev_region
+  unregister_console
+  unregister_inet6addr_notifier
+  unregister_inetaddr_notifier
+  unregister_netdev
+  unregister_netdevice_many
+  unregister_netdevice_notifier
+  unregister_netdevice_queue
+  unregister_oom_notifier
+  unregister_pernet_device
+  unregister_pm_notifier
+  unregister_reboot_notifier
+  unregister_shrinker
+  unregister_syscore_ops
+  up
+  update_devfreq
+  up_read
+  up_write
+  usb_add_gadget_udc
+  usb_add_hcd
+  usb_alloc_urb
+  usb_amd_dev_put
+  usb_amd_prefetch_quirk
+  usb_amd_quirk_pll_check
+  usb_amd_quirk_pll_disable
+  usb_amd_quirk_pll_enable
+  usb_anchor_urb
+  usb_autopm_get_interface
+  usb_autopm_get_interface_async
+  usb_autopm_get_interface_no_resume
+  usb_autopm_put_interface
+  usb_autopm_put_interface_async
+  usb_calc_bus_time
+  usb_control_msg
+  usb_create_hcd
+  usb_debug_root
+  usb_del_gadget_udc
+  usb_deregister
+  usb_disabled
+  usb_driver_claim_interface
+  usb_driver_release_interface
+  usb_free_urb
+  usb_get_dev
+  usb_get_from_anchor
+  usb_get_intf
+  usb_hcd_check_unlink_urb
+  usb_hcd_giveback_urb
+  usb_hc_died
+  usb_hcd_link_urb_to_ep
+  usb_hcd_pci_pm_ops
+  usb_hcd_pci_probe
+  usb_hcd_pci_remove
+  usb_hcd_pci_shutdown
+  usb_hcd_platform_shutdown
+  usb_hcd_poll_rh_status
+  usb_hcd_resume_root_hub
+  usb_hcds_loaded
+  usb_hcd_unlink_urb_from_ep
+  usb_kill_urb
+  usb_match_id
+  usb_match_one_id
+  usb_poison_urb
+  usb_put_dev
+  usb_put_hcd
+  usb_put_intf
+  usb_register_driver
+  usb_remove_hcd
+  usb_root_hub_lost_power
+  usb_show_dynids
+  usb_store_new_id
+  usb_submit_urb
+  usb_unlink_urb
+  usb_unpoison_urb
+  __usecs_to_jiffies
+  usleep_range_state
+  uuid_null
+  v4l2_ctrl_cluster
+  v4l2_ctrl_get_name
+  v4l2_ctrl_handler_free
+  v4l2_ctrl_handler_init_class
+  v4l2_ctrl_new_custom
+  v4l2_ctrl_new_int_menu
+  v4l2_ctrl_new_std
+  v4l2_ctrl_new_std_menu
+  v4l2_ctrl_subdev_subscribe_event
+  v4l2_ctrl_subscribe_event
+  v4l2_device_register
+  v4l2_device_register_subdev
+  __v4l2_device_register_subdev_nodes
+  v4l2_device_unregister
+  v4l2_device_unregister_subdev
+  v4l2_event_queue
+  v4l2_event_subdev_unsubscribe
+  v4l2_event_subscribe
+  v4l2_event_unsubscribe
+  v4l2_fh_open
+  v4l2_g_ctrl
+  v4l2_i2c_new_subdev
+  v4l2_i2c_subdev_init
+  v4l2_s_ctrl
+  v4l2_spi_new_subdev
+  v4l2_spi_subdev_init
+  v4l2_subdev_call_wrappers
+  v4l2_subdev_init
+  v4l_bound_align_image
+  vabits_actual
+  vb2_buffer_done
+  vb2_dma_contig_memops
+  vb2_dma_contig_set_max_seg_size
+  vb2_fop_mmap
+  vb2_fop_poll
+  vb2_fop_read
+  vb2_fop_release
+  vb2_ioctl_dqbuf
+  vb2_ioctl_expbuf
+  vb2_ioctl_qbuf
+  vb2_ioctl_querybuf
+  vb2_ioctl_reqbufs
+  vb2_ioctl_streamoff
+  vb2_ioctl_streamon
+  vb2_ops_wait_finish
+  vb2_ops_wait_prepare
+  vb2_plane_cookie
+  vb2_queue_init
+  vb2_queue_release
+  vchan_dma_desc_free_list
+  vchan_find_desc
+  vchan_init
+  vchan_tx_desc_free
+  vchan_tx_submit
+  verify_pkcs7_signature
+  vfree
+  video_devdata
+  video_device_release_empty
+  video_ioctl2
+  __video_register_device
+  video_unregister_device
+  vmalloc
+  vmalloc_to_page
+  vmalloc_user
+  vmap
+  vmf_insert_mixed
+  vmf_insert_pfn_prot
+  vm_get_page_prot
+  vm_insert_page
+  vm_iomap_memory
+  vm_map_ram
+  vm_mmap
+  vm_munmap
+  vm_unmap_ram
+  vsnprintf
+  vunmap
+  vzalloc
+  wait_for_completion
+  wait_for_completion_interruptible
+  wait_for_completion_timeout
+  __wake_up
+  wake_up_process
+  wakeup_source_add
+  wakeup_source_create
+  wakeup_source_destroy
+  wakeup_source_register
+  wakeup_source_remove
+  wakeup_source_unregister
+  __warn_printk
+  watchdog_init_timeout
+  watchdog_set_restart_priority
+  wireless_nlevent_flush
+  __xa_alloc
+  xa_erase
+  xa_load
+  xas_load
+  xas_nomem
+  xas_store
+  yield
diff --git a/android/abi_gki_aarch64_tuxera b/android/abi_gki_aarch64_tuxera
new file mode 100644
index 0000000..5b5f71f
--- /dev/null
+++ b/android/abi_gki_aarch64_tuxera
@@ -0,0 +1,283 @@
+[abi_symbol_list]
+add_to_page_cache_locked
+__alloc_pages
+android_kmalloc_64_create
+__arch_copy_from_user
+__arch_copy_to_user
+arm64_const_caps_ready
+autoremove_wake_function
+balance_dirty_pages_ratelimited
+bcmp
+bdev_read_only
+__bforget
+bio_add_page
+bio_alloc_bioset
+bio_associate_blkg
+bio_put
+__bitmap_weight
+bit_waitqueue
+blkdev_issue_discard
+blkdev_issue_flush
+blk_finish_plug
+blk_start_plug
+__blockdev_direct_IO
+block_invalidatepage
+block_is_partially_uptodate
+__breadahead
+__bread_gfp
+__brelse
+buffer_migrate_page
+__cancel_dirty_page
+capable
+capable_wrt_inode_uidgid
+__cfi_slowpath_diag
+__check_object_size
+clean_bdev_aliases
+__cleancache_invalidate_inode
+clear_inode
+clear_page
+clear_page_dirty_for_io
+complete_and_exit
+copy_page_from_iter_atomic
+cpu_hwcap_keys
+cpu_hwcaps
+create_empty_buffers
+current_umask
+d_add
+d_add_ci
+delete_from_page_cache
+d_instantiate
+d_make_root
+d_obtain_alias
+down_read
+down_write
+down_write_trylock
+dput
+drop_nlink
+d_splice_alias
+dump_stack
+end_buffer_read_sync
+end_buffer_write_sync
+end_page_writeback
+errseq_set
+fault_in_iov_iter_readable
+fault_in_safe_writeable
+fget
+fiemap_fill_next_extent
+fiemap_prep
+filemap_fault
+filemap_fdatawait_range
+filemap_fdatawrite
+filemap_flush
+__filemap_set_wb_err
+filemap_write_and_wait_range
+file_check_and_advance_wb_err
+file_remove_privs
+file_update_time
+file_write_and_wait_range
+finish_wait
+flush_dcache_page
+fput
+freezing_slow_path
+fs_bio_set
+generic_error_remove_page
+generic_file_direct_write
+generic_file_llseek
+generic_file_mmap
+generic_file_open
+generic_file_read_iter
+generic_file_splice_read
+generic_fillattr
+generic_perform_write
+generic_read_dir
+generic_write_checks
+__getblk_gfp
+gic_nonsecure_priorities
+grab_cache_page_write_begin
+iget5_locked
+igrab
+ihold
+ilookup5
+inc_nlink
+in_group_p
+__init_rwsem
+init_special_inode
+init_wait_entry
+__init_waitqueue_head
+inode_dio_wait
+inode_init_once
+inode_init_owner
+inode_newsize_ok
+inode_set_flags
+__insert_inode_hash
+invalidate_bdev
+invalidate_mapping_pages
+io_schedule
+iov_iter_advance
+iov_iter_alignment
+iov_iter_get_pages
+iov_iter_single_seg_count
+iput
+is_bad_inode
+iter_file_splice_write
+iunique
+jiffies
+jiffies_to_msecs
+kasan_flag_enabled
+kfree
+kill_block_super
+__kmalloc
+kmalloc_caches
+kmem_cache_alloc
+kmem_cache_alloc_trace
+kmem_cache_create
+kmem_cache_create_usercopy
+kmem_cache_destroy
+kmem_cache_free
+krealloc
+kthread_create_on_node
+kthread_should_stop
+kthread_stop
+ktime_get_coarse_real_ts64
+kvfree
+__list_add_valid
+__list_del_entry_valid
+ll_rw_block
+load_nls
+load_nls_default
+__lock_buffer
+__lock_page
+lru_cache_add
+make_bad_inode
+mark_buffer_async_write
+mark_buffer_dirty
+mark_buffer_write_io_error
+__mark_inode_dirty
+mark_page_accessed
+memcmp
+memcpy
+memmove
+memset
+mktime64
+mnt_drop_write_file
+mnt_want_write_file
+module_layout
+mount_bdev
+mpage_readahead
+mpage_readpage
+__msecs_to_jiffies
+__mutex_init
+mutex_lock
+mutex_trylock
+mutex_unlock
+new_inode
+notify_change
+pagecache_get_page
+page_cache_next_miss
+page_cache_prev_miss
+page_mapped
+pagevec_lookup_range
+pagevec_lookup_range_tag
+__pagevec_release
+page_zero_new_buffers
+__percpu_down_read
+preempt_schedule
+preempt_schedule_notrace
+prepare_to_wait
+prepare_to_wait_event
+_printk
+__printk_ratelimit
+__put_page
+put_pages_list
+___ratelimit
+_raw_read_lock
+_raw_read_lock_irqsave
+_raw_read_unlock
+_raw_read_unlock_irqrestore
+_raw_spin_lock
+_raw_spin_lock_irqsave
+_raw_spin_unlock
+_raw_spin_unlock_irqrestore
+_raw_write_lock
+_raw_write_lock_irqsave
+_raw_write_unlock
+_raw_write_unlock_irqrestore
+rcuwait_wake_up
+readahead_gfp_mask
+read_cache_page
+redirty_page_for_writepage
+__refrigerator
+register_filesystem
+__remove_inode_hash
+sb_min_blocksize
+sb_set_blocksize
+schedule
+schedule_timeout_interruptible
+security_inode_init_security
+seq_printf
+setattr_prepare
+set_freezable
+set_nlink
+set_page_dirty
+__set_page_dirty_buffers
+__set_page_dirty_nobuffers
+set_user_nice
+simple_strtol
+simple_strtoul
+simple_strtoull
+snprintf
+sprintf
+sscanf
+__stack_chk_fail
+strchr
+strcmp
+strlen
+strncasecmp
+strncmp
+strsep
+strstr
+submit_bh
+submit_bio
+sync_blockdev
+__sync_dirty_buffer
+sync_dirty_buffer
+sync_filesystem
+sync_inode_metadata
+system_freezing_cnt
+sys_tz
+tag_pages_for_writeback
+__test_set_page_writeback
+time64_to_tm
+timestamp_truncate
+touch_atime
+_trace_android_vh_record_pcpu_rwsem_starttime
+truncate_inode_pages
+truncate_inode_pages_final
+truncate_pagecache
+truncate_setsize
+try_to_release_page
+try_to_writeback_inodes_sb
+__ubsan_handle_cfi_check_fail_abort
+unload_nls
+unlock_buffer
+unlock_new_inode
+unlock_page
+unmap_mapping_range
+unregister_filesystem
+up_read
+up_write
+vfree
+vfs_fsync_range
+__vmalloc
+vmalloc
+vsnprintf
+vzalloc
+__wait_on_buffer
+wait_on_page_bit
+wake_bit_function
+__wake_up
+wake_up_process
+__warn_printk
+write_inode_now
+write_one_page
+xa_load
diff --git a/android/abi_gki_aarch64_type_visibility b/android/abi_gki_aarch64_type_visibility
new file mode 100644
index 0000000..d1603e7
--- /dev/null
+++ b/android/abi_gki_aarch64_type_visibility
@@ -0,0 +1,6 @@
+[abi_symbol_list]
+
+# for type visibility
+  GKI_struct_blk_mq_alloc_data
+  GKI_struct_readahead_control
+  GKI_struct_selinux_state
diff --git a/android/abi_gki_aarch64_unisoc b/android/abi_gki_aarch64_unisoc
new file mode 100644
index 0000000..145cdb5
--- /dev/null
+++ b/android/abi_gki_aarch64_unisoc
@@ -0,0 +1,3347 @@
+[abi_symbol_list]
+# commonly used symbols
+  access_process_vm
+  activate_task
+  add_cpu
+  addrconf_prefix_rcv_add_addr
+  add_timer
+  add_to_page_cache_lru
+  add_uevent_var
+  add_wait_queue
+  aes_encrypt
+  aes_expandkey
+  alloc_anon_inode
+  alloc_chrdev_region
+  alloc_io_pgtable_ops
+  alloc_netdev_mqs
+  __alloc_pages
+  alloc_pages_exact
+  __alloc_percpu
+  __alloc_skb
+  alloc_workqueue
+  android_debug_per_cpu_symbol
+  android_debug_symbol
+  android_rvh_probe_register
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arch_freq_scale
+  arch_timer_read_counter
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  arp_tbl
+  atomic_notifier_call_chain
+  atomic_notifier_chain_register
+  atomic_notifier_chain_unregister
+  available_idle_cpu
+  balance_push_callback
+  bio_add_page
+  bio_alloc_bioset
+  bio_associate_blkg
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_put
+  bio_start_io_acct
+  bit_wait
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blkdev_get_by_dev
+  blk_finish_plug
+  blk_mq_complete_request
+  __blk_mq_end_request
+  blk_mq_requeue_request
+  blk_mq_run_hw_queues
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_max_discard_sectors
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  blk_start_plug
+  blk_update_request
+  blockdev_superblock
+  blocking_notifier_chain_register
+  blocking_notifier_chain_unregister
+  bpf_trace_run1
+  bpf_trace_run2
+  bpf_trace_run3
+  bpf_trace_run4
+  __breadahead
+  bus_register
+  bus_set_iommu
+  bus_unregister
+  call_rcu
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  cancel_work_sync
+  cdev_add
+  cdev_del
+  cdev_device_add
+  cdev_device_del
+  cdev_init
+  __cfi_slowpath_diag
+  __check_object_size
+  check_preempt_curr
+  __class_create
+  class_destroy
+  class_find_device
+  clear_inode
+  clear_nlink
+  __ClearPageMovable
+  clk_bulk_disable
+  clk_bulk_enable
+  clk_bulk_prepare
+  clk_bulk_unprepare
+  clk_disable
+  clk_enable
+  clk_fixed_factor_ops
+  clk_get_rate
+  __clk_is_enabled
+  clk_prepare
+  clk_put
+  clk_set_parent
+  clk_set_rate
+  clk_unprepare
+  clockevents_config_and_register
+  clocks_calc_mult_shift
+  __clocksource_register_scale
+  cma_alloc
+  cma_for_each_area
+  cma_get_name
+  cma_release
+  complete
+  complete_all
+  complete_and_exit
+  config_ep_by_speed
+  config_group_init_type_name
+  console_lock
+  console_printk
+  console_unlock
+  __const_udelay
+  contig_page_data
+  __cpu_active_mask
+  cpufreq_add_update_util_hook
+  cpufreq_cpu_get
+  cpufreq_cpu_put
+  cpufreq_quick_get_max
+  cpufreq_remove_update_util_hook
+  cpu_have_feature
+  cpu_hotplug_disable
+  cpu_hotplug_enable
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpu_latency_qos_add_request
+  cpu_latency_qos_remove_request
+  cpu_latency_qos_update_request
+  cpumask_next
+  cpumask_next_and
+  cpu_number
+  __cpu_online_mask
+  __cpu_possible_mask
+  __cpu_present_mask
+  cpupri_find_fitness
+  cpu_scale
+  crypto_ahash_digest
+  crypto_ahash_setkey
+  crypto_alloc_ahash
+  crypto_alloc_base
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_destroy_tfm
+  crypto_has_alg
+  crypto_inc
+  __crypto_memneq
+  crypto_register_aead
+  crypto_register_shash
+  crypto_register_shashes
+  crypto_unregister_aead
+  crypto_unregister_shash
+  crypto_unregister_shashes
+  __crypto_xor
+  css_next_child
+  csum_ipv6_magic
+  csum_partial
+  deactivate_task
+  debugfs_create_bool
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_create_regset32
+  debugfs_create_symlink
+  debugfs_create_u32
+  debugfs_create_x32
+  debugfs_initialized
+  debugfs_lookup
+  debugfs_lookup_and_remove
+  debugfs_remove
+  debugfs_rename
+  dec_zone_page_state
+  default_llseek
+  delayed_work_timer_fn
+  del_timer
+  del_timer_sync
+  destroy_workqueue
+  __dev_change_net_namespace
+  dev_close
+  dev_driver_string
+  _dev_err
+  dev_err_probe
+  dev_fwnode
+  dev_get_by_name
+  dev_get_regmap
+  device_add
+  device_create
+  device_create_file
+  device_create_managed_software_node
+  device_destroy
+  device_get_dma_attr
+  device_initialize
+  device_init_wakeup
+  device_link_add
+  device_link_del
+  device_match_fwnode
+  device_match_name
+  device_node_to_regmap
+  device_property_present
+  device_property_read_string
+  device_property_read_u32_array
+  device_property_read_u8_array
+  device_register
+  device_remove_file
+  device_set_wakeup_capable
+  device_unregister
+  _dev_info
+  __dev_kfree_skb_any
+  devm_add_action
+  devm_backlight_device_register
+  devm_clk_bulk_get
+  devm_clk_bulk_get_all
+  devm_clk_get
+  devm_clk_get_optional
+  devm_free_irq
+  devm_gpiochip_add_data_with_key
+  devm_gpiod_get
+  devm_gpio_free
+  devm_gpio_request
+  devm_hwrng_register
+  devm_hwspin_lock_register
+  devm_hwspin_lock_request_specific
+  __devm_iio_device_register
+  devm_ioremap_resource
+  devm_kfree
+  devm_kmalloc
+  devm_kmemdup
+  devm_mfd_add_devices
+  devm_nvmem_register
+  devm_of_platform_populate
+  devm_phy_get
+  devm_pinctrl_get
+  devm_pinctrl_put
+  devm_platform_get_and_ioremap_resource
+  devm_pm_opp_of_add_table
+  devm_power_supply_register
+  __devm_regmap_init
+  __devm_regmap_init_i2c
+  __devm_regmap_init_mmio_clk
+  devm_regulator_bulk_get
+  devm_regulator_get
+  devm_regulator_register
+  devm_request_threaded_irq
+  __devm_reset_control_get
+  __devm_rtc_register_device
+  devm_spi_register_controller
+  devm_usb_get_phy
+  devm_usb_get_phy_by_phandle
+  dev_open
+  dev_pm_domain_attach_by_name
+  dev_pm_domain_detach
+  dev_pm_opp_set_rate
+  _dev_printk
+  dev_queue_xmit
+  __devres_alloc_node
+  dev_set_name
+  _dev_warn
+  disable_irq
+  disable_irq_nosync
+  disk_end_io_acct
+  disk_start_io_acct
+  dma_alloc_attrs
+  dma_fence_release
+  dma_fence_signal_locked
+  dma_fence_wait_timeout
+  dma_free_attrs
+  dma_heap_add
+  dma_heap_get_dev
+  dma_heap_get_name
+  d_make_root
+  dma_map_page_attrs
+  dma_map_sgtable
+  dma_max_mapping_size
+  dma_resv_add_excl_fence
+  dma_resv_wait_timeout
+  dma_set_mask
+  dma_sync_sg_for_cpu
+  dma_sync_sg_for_device
+  dma_sync_single_for_cpu
+  dma_sync_single_for_device
+  dma_unmap_sg_attrs
+  do_trace_netlink_extack
+  double_rq_lock
+  down
+  dput
+  driver_register
+  driver_unregister
+  __drm_atomic_helper_crtc_destroy_state
+  __drm_atomic_helper_crtc_duplicate_state
+  drm_atomic_helper_plane_destroy_state
+  drm_atomic_helper_plane_duplicate_state
+  drm_atomic_helper_plane_reset
+  drm_atomic_helper_setup_commit
+  drm_compat_ioctl
+  __drm_dbg
+  drm_dev_alloc
+  drm_dev_printk
+  drm_dev_put
+  drm_dev_register
+  __drm_err
+  drm_gem_fence_array_add
+  drm_gem_fence_array_add_implicit
+  drm_gem_lock_reservations
+  drm_gem_object_free
+  drm_gem_object_lookup
+  drm_gem_prime_mmap
+  drm_gem_shmem_create
+  drm_gem_shmem_free_object
+  drm_gem_shmem_get_sg_table
+  drm_gem_shmem_mmap
+  drm_gem_shmem_pin
+  drm_gem_shmem_prime_import_sg_table
+  drm_gem_shmem_print_info
+  drm_gem_shmem_unpin
+  drm_gem_shmem_vmap
+  drm_gem_shmem_vunmap
+  drm_gem_unlock_reservations
+  drm_ioctl
+  drm_ioctl_kernel
+  drm_mm_init
+  drm_mm_insert_node_in_range
+  drmm_mode_config_init
+  drm_mm_remove_node
+  drm_mm_takedown
+  drm_mode_config_cleanup
+  drm_open
+  drm_plane_create_color_properties
+  drm_poll
+  drm_read
+  drm_release
+  drm_send_event_timestamp_locked
+  drm_syncobj_find
+  drm_syncobj_find_fence
+  drm_syncobj_free
+  drm_syncobj_replace_fence
+  d_splice_alias
+  dst_release
+  dump_stack
+  __dynamic_netdev_dbg
+  emergency_restart
+  enable_irq
+  ether_setup
+  eth_platform_get_mac_address
+  eth_type_trans
+  event_triggers_call
+  extcon_find_edev_by_node
+  extcon_get_edev_by_phandle
+  extcon_get_extcon_dev
+  extcon_get_state
+  extcon_set_property
+  extcon_set_property_capability
+  extcon_set_state
+  fb_mode_option
+  _find_first_bit
+  __find_get_block
+  find_get_pid
+  _find_next_bit
+  find_task_by_vpid
+  finish_wait
+  flush_work
+  flush_workqueue
+  fpsimd_context_busy
+  fput
+  free_io_pgtable_ops
+  free_irq
+  free_netdev
+  __free_pages
+  free_pages_exact
+  free_percpu
+  freezing_slow_path
+  freq_qos_add_request
+  freq_qos_remove_request
+  freq_qos_update_request
+  fs_bio_set
+  fs_ftype_to_dtype
+  fsync_bdev
+  fwnode_property_present
+  fwnode_property_read_string
+  gcd
+  generic_file_llseek
+  generic_handle_domain_irq
+  generic_handle_irq
+  generic_mii_ioctl
+  generic_read_dir
+  generic_ro_fops
+  genlmsg_multicast_allns
+  genl_register_family
+  genl_unregister_family
+  genphy_resume
+  gen_pool_add_owner
+  gen_pool_alloc_algo_owner
+  gen_pool_avail
+  gen_pool_best_fit
+  gen_pool_create
+  gen_pool_fixed_alloc
+  gen_pool_free_owner
+  gen_pool_set_algo
+  get_cpu_device
+  __get_free_pages
+  get_governor_parent_kobj
+  get_net_ns_by_fd
+  get_net_ns_by_pid
+  get_pid_task
+  get_random_bytes
+  get_task_mm
+  get_task_pid
+  get_zeroed_page
+  gic_nonsecure_priorities
+  gov_attr_set_get
+  gov_attr_set_init
+  gov_attr_set_put
+  governor_sysfs_ops
+  gpiochip_get_data
+  gpiochip_line_is_irq
+  gpiod_direction_input
+  gpiod_direction_output_raw
+  gpiod_get
+  gpiod_get_raw_value
+  gpiod_set_raw_value
+  gpiod_set_raw_value_cansleep
+  gpiod_to_chip
+  gpiod_to_irq
+  gpio_free
+  gpio_request
+  gpio_to_desc
+  handle_bad_irq
+  handle_edge_irq
+  handle_level_irq
+  have_governor_per_policy
+  housekeeping_cpumask
+  i2c_del_driver
+  i2c_register_driver
+  i2c_smbus_read_byte_data
+  i2c_smbus_read_word_data
+  i2c_smbus_write_byte_data
+  i2c_transfer_buffer_flags
+  icmp6_send
+  ida_alloc_range
+  ida_destroy
+  ida_free
+  idr_alloc
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_remove
+  iget5_locked
+  iget_failed
+  ignore_console_lock_warning
+  igrab
+  iio_device_id
+  iio_get_channel_type
+  inc_zone_page_state
+  inet_csk_get_port
+  inet_proto_csum_replace4
+  init_net
+  init_pseudo
+  __init_rwsem
+  init_special_inode
+  __init_swait_queue_head
+  init_task
+  init_timer_key
+  init_user_ns
+  init_uts_ns
+  init_wait_entry
+  __init_waitqueue_head
+  inode_init_once
+  inode_nohighmem
+  input_alloc_absinfo
+  input_allocate_device
+  input_close_device
+  input_event
+  input_free_device
+  input_mt_get_slot_by_key
+  input_mt_sync_frame
+  input_open_device
+  input_register_device
+  input_register_handle
+  input_register_handler
+  input_unregister_handle
+  input_unregister_handler
+  iommu_alloc_resv_region
+  iommu_attach_device
+  iommu_detach_device
+  iommu_device_link
+  iommu_device_register
+  iommu_device_sysfs_add
+  iommu_device_sysfs_remove
+  iommu_device_unlink
+  iommu_device_unregister
+  iommu_dma_get_resv_regions
+  iommu_domain_alloc
+  iommu_domain_free
+  iommu_fwspec_add_ids
+  iommu_fwspec_free
+  iommu_get_dma_cookie
+  iommu_get_domain_for_dev
+  iommu_group_alloc
+  iommu_group_get
+  iommu_group_get_iommudata
+  iommu_group_put
+  iommu_group_ref_get
+  iommu_group_remove_device
+  iommu_group_set_iommudata
+  iommu_map
+  iommu_map_sg
+  iommu_present
+  iommu_put_dma_cookie
+  iommu_set_fault_handler
+  iommu_unmap
+  __ioremap
+  ioremap_cache
+  iounmap
+  ip6_find_1stfragopt
+  ip6t_alloc_initial_table
+  ip6t_do_table
+  ip6t_register_table
+  ip_route_output_flow
+  iput
+  ipv4_redirect
+  ipv4_update_pmtu
+  ipv6_select_ident
+  ipv6_skip_exthdr
+  irq_get_irq_data
+  irq_modify_status
+  irq_of_parse_and_map
+  __irq_resolve_mapping
+  irq_set_irq_type
+  irq_set_irq_wake
+  irq_work_sync
+  ir_raw_gen_manchester
+  ir_raw_gen_pd
+  ir_raw_gen_pl
+  ir_raw_handler_register
+  ir_raw_handler_unregister
+  is_console_locked
+  is_vmalloc_addr
+  jiffies
+  jiffies_to_msecs
+  kasan_flag_enabled
+  kasprintf
+  kernel_kobj
+  kernel_neon_begin
+  kernel_neon_end
+  kernel_sock_shutdown
+  kern_mount
+  kern_unmount
+  key_create_or_update
+  __kfifo_alloc
+  __kfifo_free
+  __kfifo_in
+  __kfifo_out
+  kfree
+  kfree_sensitive
+  kfree_skb
+  kill_anon_super
+  kimage_vaddr
+  kimage_voffset
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order_trace
+  kmem_cache_alloc
+  kmem_cache_alloc_trace
+  kmem_cache_create
+  kmem_cache_destroy
+  kmem_cache_free
+  kmemdup
+  kmsg_dump_get_buffer
+  kmsg_dump_register
+  kmsg_dump_rewind
+  kmsg_dump_unregister
+  kobject_create_and_add
+  kobject_uevent_env
+  ksoftirqd
+  kstrndup
+  kstrtobool
+  kstrtoint
+  kstrtoll
+  kstrtou16
+  kstrtouint
+  kstrtoull
+  ksys_sync_helper
+  kthread_cancel_work_sync
+  kthread_create_on_node
+  kthread_flush_worker
+  kthread_should_stop
+  kthread_stop
+  ktime_get
+  ktime_get_coarse_with_offset
+  ktime_get_mono_fast_ns
+  ktime_get_real_seconds
+  ktime_get_real_ts64
+  kvfree_call_rcu
+  __list_add_valid
+  __list_del_entry_valid
+  LZ4_decompress_safe_partial
+  lzo1x_1_compress
+  lzo1x_decompress_safe
+  lzorle1x_1_compress
+  mdiobus_alloc_size
+  mdiobus_free
+  __mdiobus_register
+  mdiobus_unregister
+  memcpy
+  __memcpy_fromio
+  memmove
+  memory_read_from_buffer
+  memparse
+  mem_section
+  memset64
+  memset
+  migrate_swap
+  mii_check_media
+  mii_ethtool_get_link_ksettings
+  mii_ethtool_gset
+  mii_ethtool_set_link_ksettings
+  mii_link_ok
+  mii_nway_restart
+  misc_deregister
+  misc_register
+  mod_node_page_state
+  mod_timer
+  module_put
+  __msecs_to_jiffies
+  msleep
+  __mutex_init
+  mutex_lock
+  mutex_lock_interruptible
+  mutex_trylock
+  mutex_unlock
+  nd_tbl
+  neigh_destroy
+  __netdev_alloc_skb
+  netif_carrier_off
+  netif_carrier_on
+  __netif_napi_del
+  netif_rx_ni
+  netif_tx_wake_queue
+  netlink_broadcast
+  netlink_register_notifier
+  netlink_unregister_notifier
+  net_ns_type_operations
+  nf_conntrack_destroy
+  nf_conntrack_find_get
+  nf_ct_destroy
+  nf_ct_get_tuplepr
+  nf_ct_invert_tuple
+  nf_ct_l4proto_find
+  nf_register_net_hooks
+  nf_unregister_net_hooks
+  nla_find
+  nla_reserve
+  nla_strscpy
+  __nla_validate
+  node_states
+  noop_llseek
+  nr_cpu_ids
+  nr_irqs
+  __num_online_cpus
+  nvmem_cell_get
+  nvmem_cell_put
+  nvmem_cell_read
+  of_address_to_resource
+  of_alias_get_id
+  of_clk_get
+  of_clk_get_parent_count
+  of_count_phandle_with_args
+  of_device_get_match_data
+  of_device_is_available
+  of_device_is_compatible
+  of_dma_configure_id
+  of_find_compatible_node
+  of_find_device_by_node
+  of_find_matching_node_and_match
+  of_find_node_by_name
+  of_find_property
+  __of_get_address
+  of_get_child_by_name
+  of_get_cpu_node
+  of_get_named_gpio_flags
+  of_get_next_available_child
+  of_get_next_child
+  of_get_property
+  of_get_regulator_init_data
+  of_graph_get_remote_node
+  of_graph_is_present
+  of_irq_get
+  of_match_node
+  of_nvmem_cell_get
+  of_parse_phandle
+  of_parse_phandle_with_args
+  of_parse_phandle_with_fixed_args
+  of_platform_depopulate
+  of_platform_populate
+  of_property_count_elems_of_size
+  of_property_match_string
+  of_property_read_string
+  of_property_read_u32_index
+  of_property_read_u64
+  of_property_read_u64_index
+  of_property_read_variable_u32_array
+  of_prop_next_string
+  of_prop_next_u32
+  of_usb_get_phy_mode
+  oops_in_progress
+  out_of_line_wait_on_bit_lock
+  overflowgid
+  overflowuid
+  pagecache_get_page
+  page_endio
+  page_get_link
+  page_mapping
+  panic
+  param_ops_charp
+  param_ops_uint
+  param_ops_ushort
+  __pci_register_driver
+  pci_set_master
+  pci_unregister_driver
+  pcpu_nr_pages
+  PDE_DATA
+  __per_cpu_offset
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  pfn_is_map_memory
+  phy_connect
+  phy_disconnect
+  phy_ethtool_get_link_ksettings
+  phy_ethtool_nway_reset
+  phy_ethtool_set_link_ksettings
+  phy_exit
+  phy_init
+  phy_mii_ioctl
+  phy_pm_runtime_get_sync
+  phy_pm_runtime_put_sync
+  phy_power_off
+  phy_power_on
+  phy_print_status
+  phy_set_mode_ext
+  phy_start
+  phy_stop
+  pinctrl_lookup_state
+  pinctrl_pm_select_default_state
+  pinctrl_pm_select_sleep_state
+  pinctrl_select_state
+  platform_bus
+  platform_bus_type
+  platform_device_add
+  platform_device_add_resources
+  platform_device_alloc
+  platform_device_put
+  platform_device_register
+  platform_device_register_full
+  platform_device_unregister
+  __platform_driver_register
+  platform_driver_unregister
+  platform_get_irq
+  platform_get_irq_byname
+  platform_get_irq_byname_optional
+  platform_get_resource
+  platform_get_resource_byname
+  pm_get_active_wakeup_sources
+  pm_power_off
+  __pm_relax
+  pm_runtime_allow
+  pm_runtime_barrier
+  __pm_runtime_disable
+  pm_runtime_enable
+  pm_runtime_forbid
+  pm_runtime_force_resume
+  pm_runtime_force_suspend
+  pm_runtime_get_if_active
+  __pm_runtime_idle
+  __pm_runtime_resume
+  pm_runtime_set_autosuspend_delay
+  __pm_runtime_set_status
+  __pm_runtime_suspend
+  __pm_runtime_use_autosuspend
+  __pm_stay_awake
+  pm_wakeup_ws_event
+  posix_acl_access_xattr_handler
+  posix_acl_default_xattr_handler
+  posix_acl_from_xattr
+  power_supply_changed
+  power_supply_get_battery_info
+  power_supply_get_by_name
+  power_supply_get_drvdata
+  power_supply_get_property
+  power_supply_powers
+  power_supply_put
+  power_supply_reg_notifier
+  power_supply_unreg_notifier
+  ppp_input
+  ppp_register_compressor
+  ppp_unregister_compressor
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait_event
+  _printk
+  _printk_deferred
+  proc_create
+  proc_create_data
+  proc_create_seq_private
+  proc_create_single_data
+  proc_dointvec_minmax
+  proc_dostring
+  proc_mkdir
+  psi_system
+  __pskb_copy_fclone
+  pskb_expand_head
+  put_device
+  put_pages_list
+  put_pid
+  __put_task_struct
+  queue_delayed_work_on
+  queue_work_on
+  radix_tree_delete
+  radix_tree_gang_lookup
+  radix_tree_insert
+  radix_tree_lookup
+  radix_tree_preload
+  ___ratelimit
+  _raw_read_lock
+  _raw_read_unlock
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irq
+  _raw_spin_lock_irqsave
+  raw_spin_rq_lock_nested
+  raw_spin_rq_unlock
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irq
+  _raw_spin_unlock_irqrestore
+  _raw_write_lock
+  _raw_write_unlock
+  rc_keydown
+  rc_map_register
+  rc_map_unregister
+  rc_repeat
+  __rcu_read_lock
+  __rcu_read_unlock
+  rdev_get_drvdata
+  read_cache_page
+  read_cache_page_gfp
+  refcount_warn_saturate
+  __refrigerator
+  __register_blkdev
+  __register_chrdev
+  register_die_notifier
+  register_filesystem
+  register_pernet_subsys
+  register_pm_notifier
+  register_sysctl_table
+  regmap_exit
+  __regmap_init_i2c
+  regmap_read
+  regmap_update_bits_base
+  regmap_write
+  regulator_bulk_disable
+  regulator_bulk_enable
+  regulator_disable
+  regulator_disable_regmap
+  regulator_enable
+  regulator_enable_regmap
+  regulator_get_voltage_sel_regmap
+  regulator_is_enabled_regmap
+  regulator_list_voltage_linear
+  regulator_map_voltage_linear
+  regulator_set_voltage_sel_regmap
+  release_firmware
+  remap_pfn_range
+  remove_cpu
+  remove_proc_entry
+  remove_proc_subtree
+  remove_wait_queue
+  __request_module
+  request_threaded_irq
+  reset_control_assert
+  reset_control_deassert
+  return_address
+  rfkill_alloc
+  rfkill_blocked
+  rfkill_destroy
+  rfkill_init_sw_state
+  rfkill_register
+  rfkill_resume_polling
+  rfkill_set_hw_state_reason
+  rfkill_unregister
+  root_task_group
+  runqueues
+  sched_clock
+  sched_feat_keys
+  sched_setattr
+  sched_set_fifo_low
+  sched_setscheduler
+  sched_setscheduler_nocheck
+  sched_uclamp_used
+  schedule
+  schedule_timeout
+  schedule_timeout_interruptible
+  scnprintf
+  sdev_prefix_printk
+  send_sig_info
+  seq_buf_printf
+  seq_lseek
+  seq_printf
+  seq_putc
+  seq_puts
+  seq_read
+  set_capacity
+  set_capacity_and_notify
+  set_nlink
+  set_normalized_timespec64
+  set_page_dirty
+  __SetPageMovable
+  set_task_cpu
+  set_user_nice
+  sg_alloc_table_from_pages_segment
+  sg_init_table
+  sg_miter_next
+  sg_miter_start
+  sg_miter_stop
+  sg_nents
+  sg_next
+  shmem_read_mapping_page_gfp
+  si_mem_available
+  simple_attr_open
+  simple_attr_read
+  simple_attr_release
+  simple_attr_write
+  simple_get_link
+  simple_read_from_buffer
+  simple_strtol
+  simple_write_to_buffer
+  single_open
+  single_release
+  si_swapinfo
+  skb_add_rx_frag
+  skb_clone
+  skb_copy
+  skb_copy_expand
+  skb_cow_data
+  skb_ensure_writable
+  __skb_ext_put
+  skb_push
+  skb_put
+  skb_realloc_headroom
+  skb_to_sgvec_nomark
+  skb_trim
+  skcipher_walk_aead_decrypt
+  skcipher_walk_aead_encrypt
+  skcipher_walk_done
+  skcipher_walk_virt
+  sk_free
+  smp_call_function
+  snd_info_create_card_entry
+  snd_info_free_entry
+  snd_info_get_line
+  snd_info_register
+  snd_pcm_hw_constraint_minmax
+  snd_pcm_lib_ioctl
+  snd_pcm_period_elapsed
+  snd_soc_add_component_controls
+  snd_soc_component_read
+  snd_soc_daifmt_parse_clock_provider_raw
+  snd_soc_daifmt_parse_format
+  snd_soc_dapm_disable_pin
+  snd_soc_dapm_enable_pin
+  snd_soc_dapm_ignore_suspend
+  snd_soc_dapm_kcontrol_dapm
+  snd_soc_dapm_put_enum_double
+  snd_soc_dapm_put_volsw
+  snd_soc_dapm_sync
+  snd_soc_info_enum_double
+  snd_soc_info_volsw
+  snd_soc_pm_ops
+  snd_soc_register_component
+  snd_soc_unregister_component
+  snprintf
+  __sock_create
+  sock_release
+  softnet_data
+  __spi_alloc_controller
+  spi_setup
+  sprintf
+  sscanf
+  __stack_chk_fail
+  stack_trace_save_tsk
+  static_key_disable
+  stop_machine
+  stop_one_cpu
+  stop_one_cpu_nowait
+  strcasecmp
+  strcat
+  strchr
+  strcmp
+  strcpy
+  strlcat
+  strlcpy
+  strlen
+  strncasecmp
+  strncmp
+  strncpy
+  strncpy_from_user
+  strnlen
+  strnstr
+  strstr
+  submit_bio
+  __sw_hweight16
+  __sw_hweight32
+  __sw_hweight64
+  __sw_hweight8
+  sync_filesystem
+  synchronize_irq
+  synchronize_net
+  syscon_regmap_lookup_by_phandle
+  syscon_regmap_lookup_by_phandle_args
+  sysctl_sched_features
+  sysctl_vals
+  sysfs_create_bin_file
+  sysfs_create_file_ns
+  sysfs_create_files
+  sysfs_create_group
+  sysfs_create_groups
+  sysfs_create_link
+  __sysfs_match_string
+  sysfs_notify
+  sysfs_remove_bin_file
+  sysfs_remove_file_ns
+  sysfs_remove_files
+  sysfs_remove_group
+  sysfs_remove_groups
+  sysfs_remove_link
+  sysfs_streq
+  system_freezable_wq
+  system_freezing_cnt
+  system_unbound_wq
+  system_wq
+  sys_tz
+  tasklet_init
+  tasklet_kill
+  __tasklet_schedule
+  tasklist_lock
+  task_may_not_preempt
+  thermal_pressure
+  thermal_zone_device_disable
+  thermal_zone_device_enable
+  thermal_zone_get_zone_by_name
+  tick_nohz_get_idle_calls_cpu
+  timer_of_init
+  topology_clear_scale_freq_source
+  topology_set_thermal_pressure
+  topology_update_done
+  __trace_bprintk
+  trace_define_field
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_handle_return
+  __traceiter_android_rvh_account_irq
+  __traceiter_android_rvh_account_irq_end
+  __traceiter_android_rvh_account_irq_start
+  __traceiter_android_rvh_after_dequeue_task
+  __traceiter_android_rvh_after_enqueue_task
+  __traceiter_android_rvh_build_perf_domains
+  __traceiter_android_rvh_can_migrate_task
+  __traceiter_android_rvh_check_preempt_wakeup
+  __traceiter_android_rvh_cpu_cgroup_attach
+  __traceiter_android_rvh_cpu_cgroup_can_attach
+  __traceiter_android_rvh_cpu_cgroup_online
+  __traceiter_android_rvh_cpu_overutilized
+  __traceiter_android_rvh_dequeue_task
+  __traceiter_android_rvh_effective_cpu_util
+  __traceiter_android_rvh_enqueue_task
+  __traceiter_android_rvh_find_busiest_group
+  __traceiter_android_rvh_find_busiest_queue
+  __traceiter_android_rvh_find_energy_efficient_cpu
+  __traceiter_android_rvh_find_lowest_rq
+  __traceiter_android_rvh_find_new_ilb
+  __traceiter_android_rvh_finish_prio_fork
+  __traceiter_android_rvh_is_cpu_allowed
+  __traceiter_android_rvh_memcgv2_calc_decayed_watermark
+  __traceiter_android_rvh_memcgv2_init
+  __traceiter_android_rvh_migrate_queued_task
+  __traceiter_android_rvh_mmc_partition_status
+  __traceiter_android_rvh_mmc_sd_cmdline_timing
+  __traceiter_android_rvh_mmc_sd_dataline_timing
+  __traceiter_android_rvh_new_task_stats
+  __traceiter_android_rvh_prepare_prio_fork
+  __traceiter_android_rvh_psci_cpu_suspend
+  __traceiter_android_rvh_psci_tos_resident_on
+  __traceiter_android_rvh_rtmutex_prepare_setprio
+  __traceiter_android_rvh_rto_next_cpu
+  __traceiter_android_rvh_sched_cpu_dying
+  __traceiter_android_rvh_sched_cpu_starting
+  __traceiter_android_rvh_sched_exec
+  __traceiter_android_rvh_sched_fork_init
+  __traceiter_android_rvh_sched_newidle_balance
+  __traceiter_android_rvh_sched_nohz_balancer_kick
+  __traceiter_android_rvh_schedule
+  __traceiter_android_rvh_select_fallback_rq
+  __traceiter_android_rvh_select_task_rq_dl
+  __traceiter_android_rvh_select_task_rq_fair
+  __traceiter_android_rvh_select_task_rq_rt
+  __traceiter_android_rvh_setscheduler
+  __traceiter_android_rvh_set_task_cpu
+  __traceiter_android_rvh_set_user_nice
+  __traceiter_android_rvh_tick_entry
+  __traceiter_android_rvh_try_to_wake_up
+  __traceiter_android_rvh_try_to_wake_up_success
+  __traceiter_android_rvh_update_cpu_capacity
+  __traceiter_android_rvh_update_misfit_status
+  __traceiter_android_rvh_update_thermal_stats
+  __traceiter_android_rvh_update_watermark
+  __traceiter_android_rvh_wake_up_new_task
+  __traceiter_android_vh_arch_set_freq_scale
+  __traceiter_android_vh_atomic_remove_fb
+  __traceiter_android_vh_audio_usb_offload_connect
+  __traceiter_android_vh_audio_usb_offload_ep_action
+  __traceiter_android_vh_audio_usb_offload_suspend
+  __traceiter_android_vh_audio_usb_offload_synctype
+  __traceiter_android_vh_binder_restore_priority
+  __traceiter_android_vh_binder_set_priority
+  __traceiter_android_vh_binder_transaction_init
+  __traceiter_android_vh_check_uninterruptible_tasks
+  __traceiter_android_vh_check_uninterruptible_tasks_dn
+  __traceiter_android_vh_cpufreq_fast_switch
+  __traceiter_android_vh_cpufreq_resolve_freq
+  __traceiter_android_vh_cpufreq_target
+  __traceiter_android_vh_disable_thermal_cooling_stats
+  __traceiter_android_vh_drm_atomic_check_modeset
+  __traceiter_android_vh_dump_throttled_rt_tasks
+  __traceiter_android_vh_enable_thermal_power_throttle
+  __traceiter_android_vh_get_thermal_zone_device
+  __traceiter_android_vh_ipi_stop
+  __traceiter_android_vh_mmc_check_status
+  __traceiter_android_vh_mmc_ffu_update_cid
+  __traceiter_android_vh_mmc_sd_update_cmdline_timing
+  __traceiter_android_vh_mmc_sd_update_dataline_timing
+  __traceiter_android_vh_mmc_update_partition_status
+  __traceiter_android_vh_modify_thermal_request_freq
+  __traceiter_android_vh_modify_thermal_target_freq
+  __traceiter_android_vh_modify_thermal_throttle_update
+  __traceiter_android_vh_scheduler_tick
+  __traceiter_android_vh_set_wake_flags
+  __traceiter_android_vh_thermal_power_cap
+  __traceiter_android_vh_thermal_register
+  __traceiter_android_vh_thermal_unregister
+  __traceiter_android_vh_update_topology_flags_workfn
+  __traceiter_android_vh_usb_new_device_added
+  __traceiter_clock_set_rate
+  __traceiter_cpu_frequency
+  __traceiter_cpu_frequency_limits
+  __traceiter_pelt_se_tp
+  __traceiter_sched_overutilized_tp
+  __tracepoint_android_rvh_account_irq
+  __tracepoint_android_rvh_account_irq_end
+  __tracepoint_android_rvh_account_irq_start
+  __tracepoint_android_rvh_after_dequeue_task
+  __tracepoint_android_rvh_after_enqueue_task
+  __tracepoint_android_rvh_build_perf_domains
+  __tracepoint_android_rvh_can_migrate_task
+  __tracepoint_android_rvh_check_preempt_wakeup
+  __tracepoint_android_rvh_cpu_cgroup_attach
+  __tracepoint_android_rvh_cpu_cgroup_can_attach
+  __tracepoint_android_rvh_cpu_cgroup_online
+  __tracepoint_android_rvh_cpu_overutilized
+  __tracepoint_android_rvh_dequeue_task
+  __tracepoint_android_rvh_effective_cpu_util
+  __tracepoint_android_rvh_enqueue_task
+  __tracepoint_android_rvh_find_busiest_group
+  __tracepoint_android_rvh_find_busiest_queue
+  __tracepoint_android_rvh_find_energy_efficient_cpu
+  __tracepoint_android_rvh_find_lowest_rq
+  __tracepoint_android_rvh_find_new_ilb
+  __tracepoint_android_rvh_finish_prio_fork
+  __tracepoint_android_rvh_is_cpu_allowed
+  __tracepoint_android_rvh_memcgv2_calc_decayed_watermark
+  __tracepoint_android_rvh_memcgv2_init
+  __tracepoint_android_rvh_migrate_queued_task
+  __tracepoint_android_rvh_mmc_partition_status
+  __tracepoint_android_rvh_mmc_sd_cmdline_timing
+  __tracepoint_android_rvh_mmc_sd_dataline_timing
+  __tracepoint_android_rvh_new_task_stats
+  __tracepoint_android_rvh_prepare_prio_fork
+  __tracepoint_android_rvh_psci_cpu_suspend
+  __tracepoint_android_rvh_psci_tos_resident_on
+  __tracepoint_android_rvh_rtmutex_prepare_setprio
+  __tracepoint_android_rvh_rto_next_cpu
+  __tracepoint_android_rvh_sched_cpu_dying
+  __tracepoint_android_rvh_sched_cpu_starting
+  __tracepoint_android_rvh_sched_exec
+  __tracepoint_android_rvh_sched_fork_init
+  __tracepoint_android_rvh_sched_newidle_balance
+  __tracepoint_android_rvh_sched_nohz_balancer_kick
+  __tracepoint_android_rvh_schedule
+  __tracepoint_android_rvh_select_fallback_rq
+  __tracepoint_android_rvh_select_task_rq_dl
+  __tracepoint_android_rvh_select_task_rq_fair
+  __tracepoint_android_rvh_select_task_rq_rt
+  __tracepoint_android_rvh_setscheduler
+  __tracepoint_android_rvh_set_task_cpu
+  __tracepoint_android_rvh_set_user_nice
+  __tracepoint_android_rvh_tick_entry
+  __tracepoint_android_rvh_try_to_wake_up
+  __tracepoint_android_rvh_try_to_wake_up_success
+  __tracepoint_android_rvh_update_cpu_capacity
+  __tracepoint_android_rvh_update_misfit_status
+  __tracepoint_android_rvh_update_thermal_stats
+  __tracepoint_android_rvh_update_watermark
+  __tracepoint_android_rvh_wake_up_new_task
+  __tracepoint_android_vh_arch_set_freq_scale
+  __tracepoint_android_vh_atomic_remove_fb
+  __tracepoint_android_vh_audio_usb_offload_connect
+  __tracepoint_android_vh_audio_usb_offload_ep_action
+  __tracepoint_android_vh_audio_usb_offload_suspend
+  __tracepoint_android_vh_audio_usb_offload_synctype
+  __tracepoint_android_vh_binder_restore_priority
+  __tracepoint_android_vh_binder_set_priority
+  __tracepoint_android_vh_binder_transaction_init
+  __tracepoint_android_vh_check_uninterruptible_tasks
+  __tracepoint_android_vh_check_uninterruptible_tasks_dn
+  __tracepoint_android_vh_cpufreq_fast_switch
+  __tracepoint_android_vh_cpufreq_resolve_freq
+  __tracepoint_android_vh_cpufreq_target
+  __tracepoint_android_vh_disable_thermal_cooling_stats
+  __tracepoint_android_vh_drm_atomic_check_modeset
+  __tracepoint_android_vh_dump_throttled_rt_tasks
+  __tracepoint_android_vh_enable_thermal_power_throttle
+  __tracepoint_android_vh_get_thermal_zone_device
+  __tracepoint_android_vh_ipi_stop
+  __tracepoint_android_vh_mmc_check_status
+  __tracepoint_android_vh_mmc_ffu_update_cid
+  __tracepoint_android_vh_mmc_sd_update_cmdline_timing
+  __tracepoint_android_vh_mmc_sd_update_dataline_timing
+  __tracepoint_android_vh_mmc_update_partition_status
+  __tracepoint_android_vh_modify_thermal_request_freq
+  __tracepoint_android_vh_modify_thermal_target_freq
+  __tracepoint_android_vh_modify_thermal_throttle_update
+  __tracepoint_android_vh_scheduler_tick
+  __tracepoint_android_vh_set_wake_flags
+  __tracepoint_android_vh_thermal_power_cap
+  __tracepoint_android_vh_thermal_register
+  __tracepoint_android_vh_thermal_unregister
+  __tracepoint_android_vh_update_topology_flags_workfn
+  __tracepoint_android_vh_usb_new_device_added
+  __tracepoint_clock_set_rate
+  __tracepoint_cpu_frequency
+  __tracepoint_cpu_frequency_limits
+  __tracepoint_pelt_se_tp
+  __tracepoint_sched_overutilized_tp
+  trace_raw_output_prep
+  trace_seq_printf
+  try_module_get
+  __tty_alloc_driver
+  tty_flip_buffer_push
+  __tty_insert_flip_char
+  tty_insert_flip_string_fixed_flag
+  tty_kref_put
+  tty_port_close
+  tty_port_destroy
+  tty_port_hangup
+  tty_port_init
+  tty_port_link_device
+  tty_port_open
+  tty_port_register_device
+  tty_port_tty_get
+  tty_port_tty_wakeup
+  tty_register_driver
+  tty_standard_install
+  tty_std_termios
+  tty_termios_baud_rate
+  tty_unregister_device
+  tty_unregister_driver
+  tty_vhangup
+  __ubsan_handle_cfi_check_fail_abort
+  uclamp_eff_value
+  __udelay
+  unlock_new_inode
+  unlock_page
+  unregister_blkdev
+  __unregister_chrdev
+  unregister_chrdev_region
+  unregister_filesystem
+  unregister_pernet_subsys
+  up
+  update_rq_clock
+  usb_add_gadget
+  usb_add_gadget_udc
+  usb_alloc_coherent
+  usb_alloc_urb
+  usb_autopm_get_interface
+  usb_autopm_get_interface_no_resume
+  usb_autopm_put_interface
+  usb_control_msg
+  usb_decode_ctrl
+  usb_del_gadget
+  usb_del_gadget_udc
+  usb_deregister
+  usb_ep_alloc_request
+  usb_ep_autoconfig
+  usb_ep_dequeue
+  usb_ep_enable
+  usb_ep_free_request
+  usb_ep_queue
+  usb_ep_set_maxpacket_limit
+  usb_find_common_endpoints
+  usb_free_coherent
+  usb_free_urb
+  usb_function_register
+  usb_function_unregister
+  usb_gadget_giveback_request
+  usb_gadget_udc_reset
+  usb_gadget_unmap_request_by_dev
+  usb_get_dr_mode
+  usb_get_intf
+  usb_get_maximum_speed
+  usb_get_maximum_ssp_rate
+  usb_get_role_switch_default_mode
+  usb_hcd_is_primary_hcd
+  usb_initialize_gadget
+  usb_interface_id
+  usb_kill_urb
+  usbnet_change_mtu
+  usbnet_disconnect
+  usbnet_get_drvinfo
+  usbnet_get_endpoints
+  usbnet_get_link
+  usbnet_get_msglevel
+  usbnet_link_change
+  usbnet_nway_reset
+  usbnet_open
+  usbnet_probe
+  usbnet_read_cmd
+  usbnet_read_cmd_nopm
+  usbnet_resume
+  usbnet_set_msglevel
+  usbnet_skb_return
+  usbnet_start_xmit
+  usbnet_stop
+  usbnet_suspend
+  usbnet_tx_timeout
+  usbnet_unlink_rx_urbs
+  usbnet_update_max_qlen
+  usbnet_write_cmd
+  usbnet_write_cmd_async
+  usbnet_write_cmd_nopm
+  usb_phy_get_charger_current
+  usb_phy_set_charger_current
+  usb_put_function_instance
+  usb_put_intf
+  usb_register_driver
+  usb_submit_urb
+  usleep_range_state
+  vabits_actual
+  vchan_dma_desc_free_list
+  vchan_find_desc
+  vchan_init
+  vchan_tx_desc_free
+  vchan_tx_submit
+  verify_pkcs7_signature
+  vfree
+  vmalloc
+  vmalloc_nr_pages
+  vmalloc_to_page
+  vm_iomap_memory
+  vm_map_ram
+  vm_memory_committed
+  vm_node_stat
+  vm_unmap_aliases
+  vm_unmap_ram
+  vm_zone_stat
+  vscnprintf
+  vsnprintf
+  vunmap
+  wait_for_completion
+  wait_for_completion_interruptible
+  wait_for_completion_interruptible_timeout
+  wait_for_completion_timeout
+  __wake_up
+  wake_up_bit
+  __wake_up_locked
+  wake_up_process
+  wakeup_source_add
+  wakeup_source_create
+  wakeup_source_destroy
+  wakeup_source_register
+  wakeup_source_remove
+  wakeup_source_unregister
+  wireless_nlevent_flush
+  xa_destroy
+  xa_erase
+  xa_find
+  xa_find_after
+  xfrm4_protocol_deregister
+  xfrm4_protocol_register
+  xfrm4_rcv
+  xfrm_aalg_get_byname
+  xfrm_input
+  xfrm_input_resume
+  xfrm_output_resume
+  xfrm_register_type
+  xfrm_state_afinfo_get_rcu
+  __xfrm_state_destroy
+  xfrm_state_lookup
+  xfrm_unregister_type
+  xt_register_match
+  xt_register_matches
+  xt_register_target
+  xt_register_targets
+  xt_unregister_match
+  xt_unregister_matches
+  xt_unregister_target
+  xt_unregister_targets
+
+# required by aes-ce-ccm.ko
+  ce_aes_expandkey
+
+# required by aes-neon-blk.ko
+  crypto_aes_inv_sbox
+  crypto_aes_sbox
+  crypto_alloc_shash
+  crypto_register_skciphers
+  crypto_shash_digest
+  crypto_unregister_skciphers
+  scatterwalk_ffwd
+
+# required by ah6.ko
+  ip6_redirect
+  ip6_update_pmtu
+  net_ratelimit
+  xfrm6_protocol_deregister
+  xfrm6_protocol_register
+  xfrm6_rcv
+
+# required by arc4.ko
+  arc4_crypt
+  arc4_setkey
+  crypto_register_skcipher
+  crypto_unregister_skcipher
+
+# required by blk-mq-virtio.ko
+  blk_mq_map_queues
+
+# required by cdc-acm.ko
+  capable
+  cdc_parse_cdc_header
+  default_wake_function
+  tty_port_put
+  tty_port_tty_hangup
+  usb_anchor_urb
+  usb_autopm_get_interface_async
+  usb_autopm_put_interface_async
+  usb_clear_halt
+  usb_driver_claim_interface
+  usb_driver_release_interface
+  usb_get_from_anchor
+  usb_ifnum_to_if
+
+# required by charger-manager.ko
+  alarm_cancel
+  alarm_expires_remaining
+  alarm_forward
+  alarm_init
+  alarm_start
+  alarmtimer_get_rtcdev
+  devm_kasprintf
+  ns_to_kernel_old_timeval
+  ns_to_timespec64
+  orderly_poweroff
+  power_supply_set_property
+  regulator_force_disable
+  regulator_set_current_limit
+  thermal_zone_get_temp
+
+# required by clk-sprd.ko
+  clk_hw_get_num_parents
+  clk_hw_get_parent
+  clk_hw_is_enabled
+  __clk_mux_determine_rate
+  devm_clk_hw_register
+  devm_of_clk_add_hw_provider
+  divider_get_val
+  divider_recalc_rate
+  divider_round_rate_parent
+  of_clk_hw_onecell_get
+
+# required by cls_fw.ko
+  __dev_get_by_index
+  __dev_get_by_name
+  __put_net
+  register_tcf_proto_ops
+  rtnl_is_locked
+  tcf_action_exec
+  tcf_exts_destroy
+  tcf_exts_dump
+  tcf_exts_dump_stats
+  tcf_exts_validate
+  tcf_queue_work
+  unregister_tcf_proto_ops
+
+# required by cpufreq governor
+  cpufreq_disable_fast_switch
+  cpufreq_driver_fast_switch
+  cpufreq_driver_resolve_freq
+  __cpufreq_driver_target
+  cpufreq_enable_fast_switch
+  cpufreq_policy_transition_delay_us
+  cpufreq_register_governor
+  cpufreq_this_cpu_can_update
+  cpufreq_unregister_governor
+
+# required by cqhci.ko
+  devm_blk_ksm_init
+  sdhci_cqe_disable
+  sdhci_cqe_enable
+  sdhci_cqe_irq
+
+# required by dns_resolver.ko
+  generic_key_instantiate
+  key_invalidate
+  key_put
+  key_revoke
+  keyring_alloc
+  key_validate
+  kmemdup_nul
+  memchr
+  prepare_kernel_cred
+  register_key_type
+  request_key_tag
+  unregister_key_type
+  user_destroy
+  user_read
+  user_revoke
+
+# required by dwc3-haps.ko
+  pcim_enable_device
+
+# required by dwc3-of-simple.ko
+  clk_bulk_get_all
+  clk_bulk_put_all
+  of_reset_control_array_get
+  reset_control_put
+  reset_control_reset
+
+# required by dwc3-qcom.ko
+  devm_extcon_register_notifier
+  devm_reset_control_array_get
+
+# required by dwc3.ko
+  extcon_register_notifier
+  extcon_unregister_notifier
+  usb_gadget_map_request_by_dev
+  usb_gadget_set_state
+
+# required by exfat.ko
+  __blockdev_direct_IO
+  block_write_full_page
+  __bread_gfp
+  __brelse
+  cont_write_begin
+  current_time
+  d_find_alias
+  d_instantiate
+  d_move
+  drop_nlink
+  filemap_fdatawait_range
+  filemap_fdatawrite_range
+  full_name_hash
+  generic_block_bmap
+  generic_cont_expand_simple
+  generic_fh_to_dentry
+  generic_fh_to_parent
+  generic_file_fsync
+  generic_file_mmap
+  generic_file_read_iter
+  generic_file_splice_read
+  generic_file_write_iter
+  generic_fillattr
+  generic_write_end
+  gen_pool_virt_to_phys
+  __getblk_gfp
+  ilookup
+  in6_dev_finish_destroy
+  inc_nlink
+  in_group_p
+  __insert_inode_hash
+  invalidate_inode_buffers
+  iunique
+  kill_block_super
+  kvfree
+  kvmalloc_node
+  load_nls
+  __lock_buffer
+  __lock_page
+  mark_buffer_dirty
+  __mark_inode_dirty
+  match_int
+  match_octal
+  match_strdup
+  match_token
+  mktime64
+  mount_bdev
+  mpage_readpage
+  mpage_writepages
+  new_inode
+  __remove_inode_hash
+  sb_min_blocksize
+  sb_set_blocksize
+  setattr_copy
+  setattr_prepare
+  strscpy
+  sync_blockdev
+  sync_dirty_buffer
+  sync_mapping_buffers
+  time64_to_tm
+  touch_buffer
+  trace_print_symbols_seq
+  truncate_inode_pages
+  truncate_pagecache
+  truncate_setsize
+  unload_nls
+  unlock_buffer
+  utf16s_to_utf8s
+  utf8s_to_utf16s
+  write_inode_now
+
+# required by fan53555.ko
+  regulator_set_voltage_time_sel
+
+# required by focaltech_ats.ko
+  devm_input_allocate_device
+  devm_regulator_put
+  i2c_transfer
+  input_mt_init_slots
+  input_mt_report_slot_state
+  input_set_abs_params
+  input_set_capability
+  kobject_put
+  of_find_i2c_adapter_by_node
+  of_property_read_variable_u8_array
+  request_firmware_nowait
+
+# required by ghash-ce.ko
+  gf128mul_lle
+
+# required by gpio-eic-sprd.ko
+  gpiochip_find
+
+# required by gpio-pmic-eic-sprd.ko
+  handle_nested_irq
+
+# required by gpio-sprd.ko
+  __platform_driver_probe
+
+# required by gtco.ko
+  __usb_get_extra_descriptor
+
+# required by i2c-sprd.ko
+  i2c_add_numbered_adapter
+  i2c_del_adapter
+
+# required by img_mem.ko
+  idr_get_next
+  sg_alloc_table
+  sg_free_table
+  vsprintf
+
+# required by ims_bridge.ko
+  completion_done
+  in4_pton
+  in6_pton
+  inet_select_addr
+  ip6_local_out
+  ip6_route_output_flags
+  ip_local_out
+  ipv6_dev_get_saddr
+  mempool_alloc
+  mempool_alloc_slab
+  mempool_create
+  mempool_destroy
+  mempool_free
+  mempool_free_slab
+  param_ops_int
+  prandom_u32
+  proc_create_net_data
+  __pskb_pull_tail
+  rcu_barrier
+  skb_checksum_help
+  strim
+  xfrm_lookup
+
+# required by ip6table_security.ko
+  xt_hook_ops_alloc
+
+# required by ipcomp.ko
+  ipcomp_destroy
+  ipcomp_init_state
+  ipcomp_input
+  ipcomp_output
+  xfrm_init_state
+  xfrm_state_alloc
+  xfrm_state_insert
+
+# required by ir-kbd-i2c.ko
+  i2c_new_dummy_device
+  i2c_unregister_device
+
+# required by kfifo_buf.ko
+  devres_add
+  devres_free
+  devres_release
+  iio_buffer_init
+  iio_buffer_put
+  __kfifo_to_user
+
+# required by kprobe_block.ko
+  register_kprobe
+  unregister_kprobe
+
+# required by kprobe_iowait.ko
+  register_kretprobe
+  sched_show_task
+  unregister_kretprobe
+
+# required by l2tp_ppp.ko
+  l2tp_session_create
+  l2tp_session_delete
+  l2tp_session_get_nth
+  l2tp_session_register
+  l2tp_session_set_header_len
+  l2tp_tunnel_create
+  l2tp_tunnel_delete
+  l2tp_tunnel_get
+  l2tp_tunnel_get_nth
+  l2tp_tunnel_get_session
+  l2tp_tunnel_register
+  l2tp_udp_encap_recv
+  l2tp_xmit_skb
+  ppp_dev_name
+
+# required by leds-sc27xx-bltc.ko
+  devm_led_classdev_register_ext
+
+# required by ledtrig-pattern.ko
+  led_get_default_pattern
+  led_set_brightness
+  led_trigger_register
+  led_trigger_unregister
+
+# required by mali_gondul.ko
+  anon_inode_getfd
+  __arch_clear_user
+  __bitmap_weight
+  bpf_trace_run5
+  clear_page
+  devfreq_add_device
+  devfreq_cooling_em_register
+  devfreq_remove_device
+  devfreq_resume_device
+  devfreq_suspend_device
+  dev_pm_opp_disable
+  dev_pm_opp_find_freq_floor
+  dev_pm_opp_put_regulators
+  dev_pm_opp_set_regulators
+  dma_fence_get_status
+  dma_fence_remove_callback
+  downgrade_write
+  down_trylock
+  get_user_pages
+  get_user_pages_fast
+  get_user_pages_remote
+  hrtimer_active
+  hrtimer_forward
+  iomem_resource
+  kstrtobool_from_user
+  ktime_get_raw
+  memstart_addr
+  __mmdrop
+  nonseekable_open
+  of_machine_is_compatible
+  of_property_read_variable_u64_array
+  param_ops_byte
+  pin_user_pages
+  pin_user_pages_remote
+  rb_erase
+  rb_first
+  rb_insert_color
+  rb_next
+  rb_prev
+  rb_replace_node
+  regulator_get_optional
+  __release_region
+  remap_vmalloc_range
+  __request_region
+  reservation_ww_class
+  seq_open
+  __seq_open_private
+  seq_release_private
+  seq_write
+  set_page_dirty_lock
+  sg_copy_from_buffer
+  sg_copy_to_buffer
+  strcspn
+  system_highpri_wq
+  _totalram_pages
+  __traceiter_android_rvh_report_bug
+  __traceiter_android_rvh_tk_based_time_sync
+  __traceiter_android_vh_dma_buf_release
+  __traceiter_android_vh_printk_caller
+  __traceiter_android_vh_printk_caller_id
+  __traceiter_android_vh_printk_ext_header
+  __traceiter_android_vh_regmap_update
+  __traceiter_android_vh_usb_new_device_added
+  __traceiter_clock_set_rate
+  __traceiter_gpu_mem_total
+  trace_output_call
+  __tracepoint_android_rvh_report_bug
+  __tracepoint_android_rvh_tk_based_time_sync
+  __tracepoint_android_vh_dma_buf_release
+  __tracepoint_android_vh_printk_caller
+  __tracepoint_android_vh_printk_caller_id
+  __tracepoint_android_vh_printk_ext_header
+  __tracepoint_android_vh_regmap_update
+  __tracepoint_android_vh_usb_new_device_added
+  __tracepoint_clock_set_rate
+  __tracepoint_gpu_mem_total
+  tracepoint_probe_register
+  tracepoint_probe_unregister
+  trace_print_array_seq
+  trace_print_flags_seq
+  unpin_user_page
+  vmalloc_user
+  vmf_insert_pfn_prot
+  ww_mutex_lock
+  ww_mutex_unlock
+
+# required by mali_kbase.ko
+  debugfs_attr_read
+  debugfs_attr_write
+  dev_pm_qos_read_value
+  __find_vma
+  __traceiter_gpu_mem_total
+  __tracepoint_gpu_mem_total
+
+# required by microarray_fp.ko
+  cdev_alloc
+
+# required by mmc_hsq.ko
+  mmc_cqe_request_done
+  mmc_send_tuning
+
+# required by mmc_swcq.ko
+  dma_map_sg_attrs
+  mmc_cmdq_disable
+  mmc_cmdq_enable
+  mmc_cqe_post_req
+  mmc_hw_reset
+  mmc_issue_type
+  mmc_put_card
+  mmc_switch
+  mmc_wait_for_cmd
+
+# required by musb_hdrc.ko
+  device_wakeup_enable
+  flush_dcache_page
+  flush_delayed_work
+  param_ops_bool
+  usb_add_hcd
+  usb_create_hcd
+  usb_ep_set_halt
+  usb_hcd_check_unlink_urb
+  usb_hcd_giveback_urb
+  usb_hcd_link_urb_to_ep
+  usb_hcd_map_urb_for_dma
+  usb_hcd_poll_rh_status
+  usb_hcd_resume_root_hub
+  usb_hcd_unlink_urb_from_ep
+  usb_hcd_unmap_urb_for_dma
+  usb_otg_state_string
+  usb_put_hcd
+  usb_remove_hcd
+
+# required by musb_sprd.ko
+  devm_regulator_get_exclusive
+  usb_ep_disable
+  usb_role_switch_get_drvdata
+  usb_role_switch_register
+  usb_role_switch_unregister
+  usb_speed_string
+
+# required by npu_img_vha.ko
+  debugfs_create_u64
+  _dev_crit
+  dma_fence_array_create
+  do_exit
+  of_irq_get_byname
+  yield
+
+# required by nu1619_wireless_charger.ko
+  regmap_bulk_read
+
+# required by pcie-sprd.ko
+  device_get_next_child_node
+  devm_gpiod_get_index
+  devm_ioremap
+  devm_pm_opp_set_regulators
+  dw_pcie_host_init
+  dw_pcie_read_dbi
+  dw_pcie_setup_rc
+  dw_pcie_wait_for_link
+  dw_pcie_write_dbi
+  fwnode_handle_put
+  gpiod_get_value
+  msi_desc_to_pci_sysdata
+  of_fwnode_ops
+  pci_assign_unassigned_bus_resources
+  pci_bus_add_devices
+  pci_check_and_mask_intx
+  pci_check_and_unmask_intx
+  pci_clear_master
+  pcie_bus_configure_settings
+  pci_enable_msi
+  pci_intx
+  pci_ioremap_bar
+  pci_ioremap_wc_bar
+  pci_lock_rescan_remove
+  pci_reset_function
+  pci_scan_child_bus
+  pci_stop_and_remove_bus_device
+  pci_unlock_rescan_remove
+  sdio_claim_irq
+  sdio_f0_readb
+  sdio_f0_writeb
+  sdio_get_host_pm_caps
+  sdio_readw
+  sdio_release_irq
+  sdio_set_host_pm_flags
+  sdio_writew
+
+# required by phy-sprd-sharkl3.ko
+  usb_add_phy_dev
+  usb_phy_set_charger_state
+  usb_remove_phy
+
+# required by pinctrl-sprd.ko
+  devm_platform_ioremap_resource
+  of_property_read_string_helper
+  pinconf_generic_parse_dt_config
+  pinctrl_dev_get_drvdata
+  pinctrl_register
+  pinctrl_unregister
+  pinctrl_utils_add_map_configs
+  pinctrl_utils_add_map_mux
+  pinctrl_utils_free_map
+  pinctrl_utils_reserve_map
+  pin_get_name
+
+# required by ppp_async.ko
+  crc_ccitt_table
+  n_tty_ioctl_helper
+  ppp_channel_index
+  ppp_input_error
+  ppp_output_wakeup
+  ppp_register_channel
+  ppp_unit_number
+  ppp_unregister_channel
+  _raw_write_lock_irq
+  _raw_write_unlock_irq
+  skb_pull
+  start_tty
+  stop_tty
+  tty_mode_ioctl
+  tty_register_ldisc
+  tty_unregister_ldisc
+  tty_unthrottle
+
+# required by ppp_deflate.ko
+  zlib_deflate
+  zlib_deflateEnd
+  zlib_deflateInit2
+  zlib_deflateReset
+  zlib_deflate_workspacesize
+  zlib_inflate
+  zlib_inflateEnd
+  zlib_inflateIncomp
+  zlib_inflateInit2
+  zlib_inflateReset
+  zlib_inflate_workspacesize
+
+# required by ppp_generic.ko
+  bpf_prog_create
+  bpf_prog_destroy
+  bpf_stats_enabled_key
+  iov_iter_init
+  netif_rx
+  ns_capable
+  rtnl_link_register
+  rtnl_link_unregister
+  skb_queue_head
+  skb_scrub_packet
+  slhc_compress
+  slhc_free
+  slhc_init
+  slhc_remember
+  slhc_toss
+  slhc_uncompress
+  unregister_netdevice_many
+
+# required by ppp_mppe.ko
+  crypto_has_ahash
+  crypto_shash_final
+  crypto_shash_update
+
+# required by pppoe.ko
+  datagram_poll
+  dev_add_pack
+  dev_get_by_name_rcu
+  dev_remove_pack
+  lock_sock_nested
+  pppox_compat_ioctl
+  pppox_ioctl
+  pppox_unbind_sock
+  ppp_register_net_channel
+  proto_register
+  proto_unregister
+  pskb_trim_rcsum_slow
+  register_pernet_device
+  register_pppox_proto
+  release_sock
+  sk_alloc
+  skb_copy_datagram_iter
+  skb_pull_rcsum
+  skb_recv_datagram
+  __sk_receive_skb
+  sock_init_data
+  sock_no_accept
+  sock_no_bind
+  sock_no_listen
+  sock_no_mmap
+  sock_no_shutdown
+  sock_no_socketpair
+  sock_queue_rcv_skb
+  sock_wfree
+  sock_wmalloc
+  unregister_pernet_device
+  unregister_pppox_proto
+
+# required by pppox.ko
+  sock_register
+  sock_unregister
+
+# required by pptp.ko
+  gre_add_protocol
+  gre_del_protocol
+  __ip_select_ident
+  security_sk_classify_flow
+  skb_set_owner_w
+  sk_setup_caps
+  sock_no_recvmsg
+  sock_no_sendmsg
+
+# required by pvrsrvkm.ko
+  autoremove_wake_function
+  bpf_trace_run10
+  bpf_trace_run6
+  bpf_trace_run7
+  bpf_trace_run8
+  cache_line_size
+  devfreq_cooling_unregister
+  devfreq_recommended_opp
+  devfreq_register_opp_notifier
+  devfreq_unregister_opp_notifier
+  devm_devfreq_add_device
+  devm_devfreq_remove_device
+  dev_pm_opp_add
+  dev_pm_opp_find_freq_ceil
+  dev_pm_opp_get_freq
+  dev_pm_opp_get_opp_count
+  dev_pm_opp_get_voltage
+  dev_pm_opp_of_add_table
+  dev_pm_opp_of_register_em
+  dev_pm_opp_of_remove_table
+  dev_pm_opp_put
+  dma_buf_attach
+  dma_buf_begin_cpu_access
+  dma_buf_detach
+  dma_buf_end_cpu_access
+  dma_buf_export
+  dma_buf_fd
+  dma_buf_get
+  dma_buf_map_attachment
+  dma_buf_mmap
+  dma_buf_put
+  dma_buf_unmap_attachment
+  dma_buf_vmap
+  dma_buf_vunmap
+  dma_fence_add_callback
+  dma_fence_array_ops
+  dma_fence_context_alloc
+  dma_fence_default_wait
+  dma_fence_enable_sw_signaling
+  dma_fence_free
+  dma_fence_init
+  dma_fence_signal
+  dma_unmap_page_attrs
+  down_read
+  down_write
+  drm_dev_unregister
+  drm_gem_cma_vmap
+  drm_gem_objects_lookup
+  drm_gem_shmem_get_pages_sgt
+  drm_gem_shmem_madvise
+  drm_gem_shmem_purge_locked
+  drm_gem_shmem_put_pages
+  drm_mode_set_name
+  drm_of_component_probe
+  drm_timeout_abs_to_jiffies
+  fd_install
+  fget
+  find_vpid
+  __get_task_comm
+  get_unused_fd_flags
+  idr_preload
+  idr_replace
+  kill_pid
+  ksize
+  kthread_freezable_should_stop
+  kthread_park
+  kthread_parkme
+  kthread_should_park
+  kthread_unpark
+  ktime_get_raw_ts64
+  memcmp
+  mutex_is_locked
+  of_devfreq_cooling_register_power
+  of_hwspin_lock_get_id_byname
+  of_modalias_node
+  prepare_to_wait
+  proc_remove
+  put_unused_fd
+  raw_notifier_call_chain
+  raw_notifier_chain_register
+  _raw_read_lock_bh
+  _raw_read_unlock_bh
+  _raw_write_lock_bh
+  _raw_write_unlock_bh
+  register_shrinker
+  request_firmware
+  seq_vprintf
+  set_freezable
+  si_meminfo
+  split_page
+  strncat
+  strsep
+  sync_file_create
+  sync_file_get_fence
+  __task_pid_nr_ns
+  trace_set_clr_event
+  unmap_mapping_range
+  unregister_shrinker
+  unregister_sysctl_table
+  up_read
+  up_write
+  __usecs_to_jiffies
+  vmf_insert_mixed
+  vmf_insert_pfn
+  vm_get_page_prot
+  vm_insert_page
+  vsscanf
+  vzalloc
+
+# required by pwm-sprd.ko
+  pwmchip_add
+  pwmchip_remove
+
+# required by pwm_bl.ko
+  backlight_device_register
+  backlight_device_unregister
+  devm_pwm_get
+  gpiod_get_direction
+  int_pow
+  pwm_free
+  pwm_request
+
+# required by raw_diag.ko
+  inet_diag_bc_sk
+  inet_diag_register
+  inet_diag_unregister
+  inet_sk_diag_fill
+  netlink_net_capable
+  raw_v4_hashinfo
+  __raw_v4_lookup
+  raw_v6_hashinfo
+  __raw_v6_lookup
+  sock_diag_destroy
+
+# required by rc-core.ko
+  input_scancode_to_scalar
+  kobject_get_path
+  led_trigger_register_simple
+  led_trigger_unregister_simple
+  __module_get
+  nsecs_to_jiffies
+
+# required by roles.ko
+  fwnode_connection_find_match
+  fwnode_get_parent
+
+# required by rtc-sc27xx.ko
+  devm_rtc_allocate_device
+  rtc_ktime_to_tm
+  rtc_time64_to_tm
+  rtc_tm_to_time64
+  rtc_update_irq
+
+# required by sc2703-bl.ko
+  of_pwm_get
+  pwm_apply_state
+
+# required by sc2703_disp.ko
+  mfd_add_devices
+
+# required by sc2703_regulator.ko
+  regulator_notifier_call_chain
+
+# required by sc27xx-vibra.ko
+  input_ff_create_memless
+
+# required by sc27xx_adc.ko
+  devm_iio_device_alloc
+  hwspin_lock_free
+  hwspin_lock_request_specific
+  __hwspin_lock_timeout
+  __hwspin_unlock
+  of_hwspin_lock_get_id
+
+# required by sc27xx_fuel_gauge.ko
+  devm_iio_channel_get
+  gpiod_get_value_cansleep
+  iio_read_channel_processed
+  power_supply_find_ocv2cap_table
+  power_supply_ocv2cap_simple
+  power_supply_put_battery_info
+  power_supply_temp2resist_simple
+  rtc_read_time
+
+# required by sc27xx_pd.ko
+  device_get_named_child_node
+  devm_extcon_register_notifier_all
+  devm_regulator_get_optional
+
+# required by sc27xx_typec.ko
+  devm_extcon_dev_allocate
+  devm_extcon_dev_register
+  extcon_set_state_sync
+  typec_register_partner
+  typec_register_port
+  typec_set_data_role
+  typec_set_pwr_opmode
+  typec_set_pwr_role
+  typec_set_vconn_role
+  typec_unregister_partner
+  typec_unregister_port
+
+# required by sc9863a-clk.ko
+  device_get_match_data
+  devm_reset_controller_register
+
+# required by sdhci-sprd.ko
+  clk_round_rate
+  mmc_free_host
+  mmc_get_ext_csd
+  mmc_of_parse
+  mmc_regulator_set_ocr
+  mmc_regulator_set_vqmmc
+  mmc_remove_host
+  mmc_request_done
+  __sdhci_add_host
+  sdhci_cleanup_host
+  sdhci_enable_clk
+  sdhci_enable_v4_mode
+  sdhci_pltfm_free
+  sdhci_pltfm_init
+  sdhci_remove_host
+  sdhci_request
+  sdhci_request_atomic
+  sdhci_reset
+  sdhci_runtime_resume_host
+  sdhci_runtime_suspend_host
+  sdhci_set_bus_width
+  __sdhci_set_timeout
+  sdhci_setup_host
+
+# required by sdiohal.ko
+  mmc_detect_change
+  mmc_set_data_timeout
+  mmc_wait_for_req
+  print_hex_dump
+  __put_page
+  sdio_claim_host
+  sdio_enable_func
+  sdio_memcpy_fromio
+  sdio_memcpy_toio
+  sdio_readb
+  sdio_readl
+  sdio_readsb
+  sdio_register_driver
+  sdio_release_host
+  sdio_set_block_size
+  sdio_unregister_driver
+  sdio_writeb
+  sdio_writel
+  sdio_writesb
+
+# required by sensorhub.ko
+  devm_iio_kfifo_buffer_setup_ext
+  iio_kfifo_free
+
+# required by seth.ko
+  napi_complete_done
+  napi_disable
+  napi_enable
+  __napi_schedule
+  napi_schedule_prep
+  netif_napi_add
+  netif_receive_skb
+  register_netdev
+  unregister_netdev
+
+# required by sfp_core.ko
+  br_fdb_find_port
+  csum_tcpudp_nofold
+  dev_get_by_index_rcu
+  ip_send_check
+  ipv6_ext_hdr
+  ipv6_find_hdr
+  kstrtouint_from_user
+  __local_bh_enable_ip
+  proc_dointvec
+  register_netdevice_notifier
+  register_net_sysctl
+  rt6_lookup
+  seq_open_private
+  seq_release
+  skb_copy_bits
+  skb_vlan_untag
+  unregister_netdevice_notifier
+
+# required by sha1-ce.ko
+  crypto_sha1_finup
+  crypto_sha1_update
+
+# required by shubcore.ko
+  iio_alloc_pollfunc
+  iio_dealloc_pollfunc
+  iio_device_alloc
+  iio_device_attach_buffer
+  iio_device_free
+  iio_device_unregister
+  iio_pollfunc_store_time
+  iio_push_to_buffers
+  iio_trigger_alloc
+  iio_trigger_free
+  iio_trigger_notify_done
+  iio_trigger_poll
+  __iio_trigger_register
+  iio_trigger_unregister
+  ktime_get_with_offset
+  param_array_ops
+  unregister_pm_notifier
+
+# required by sipa_core.ko
+  free_pages
+  get_cpu_idle_time_us
+  kernel_cpustat
+  memremap
+  memunmap
+  nf_conntrack_register_notifier
+  pm_wakeup_dev_event
+  skb_dequeue
+  skb_queue_tail
+
+# required by sipa_sys_pd.ko
+  kstrdup
+  of_genpd_add_provider_simple
+  pm_genpd_init
+  pm_genpd_remove
+
+# required by sipc_core.ko
+  gen_pool_destroy
+  mbox_chan_received_data
+  mbox_chan_txdone
+  mbox_client_txdone
+  mbox_controller_register
+  mbox_controller_unregister
+  mbox_free_channel
+  mbox_request_channel
+  mbox_request_channel_byname
+  mbox_send_message
+  register_syscore_ops
+
+# required by sipx.ko
+  hrtimer_cancel
+  hrtimer_init
+  hrtimer_start_range_ns
+  hrtimer_try_to_cancel
+
+# required by snd-soc-akm4377.ko
+  regcache_mark_dirty
+  regcache_sync
+  snd_soc_get_volsw
+  snd_soc_put_volsw
+
+# required by snd-soc-aw881xx.ko
+  i2c_smbus_write_byte
+
+# repuired by snd-soc-fsa4480.ko
+  of_find_i2c_device_by_node
+
+# required by snd-soc-sprd-audio-dma.ko
+  dmam_alloc_attrs
+  dmam_free_coherent
+  dma_release_channel
+  __memset_io
+  snd_pcm_format_physical_width
+  snd_pcm_hw_constraint_integer
+  snd_pcm_hw_constraint_step
+  snd_soc_rtdcom_lookup
+  snd_soc_set_runtime_hwparams
+  vmap
+
+# required by snd-soc-sprd-card.ko
+  devm_gpio_request_one
+  devm_snd_soc_register_card
+  gpio_request_one
+  snd_interval_refine
+  snd_soc_of_get_dai_name
+  snd_soc_of_parse_audio_routing
+  snd_soc_of_parse_audio_simple_widgets
+  snd_soc_of_parse_card_name
+  snd_soc_of_parse_tdm_slot
+
+# required by snd-soc-sprd-codec-sc2721-power.ko
+  regulator_register
+  regulator_unregister
+
+# required by snd-soc-sprd-codec-sc2721.ko
+  dapm_regulator_event
+  gpiod_set_debounce
+  iio_channel_get
+  iio_read_channel_raw
+  iio_write_channel_attribute
+  irq_to_desc
+  power_supply_register
+  power_supply_unregister
+  regulator_get
+  regulator_get_mode
+  regulator_is_enabled
+  regulator_put
+  regulator_set_mode
+  regulator_set_voltage
+  snd_ctl_find_id
+  snd_jack_set_key
+  snd_pcm_rate_to_rate_bit
+  snd_soc_card_jack_new
+  snd_soc_component_update_bits
+  snd_soc_component_write
+  snd_soc_dapm_force_enable_pin
+  snd_soc_dapm_get_enum_double
+  snd_soc_dapm_get_volsw
+  snd_soc_get_enum_double
+  snd_soc_jack_report
+  snd_soc_put_enum_double
+
+# required by snd-soc-sprd-codec-sc2730.ko
+  dapm_kcontrol_get_value
+  __kfifo_from_user_r
+  __kfifo_init
+  __kfifo_to_user_r
+  snd_card_new
+  snd_card_register
+  snd_ctl_add
+  snd_ctl_new1
+  snd_pcm_new
+  snd_pcm_rate_bit_to_rate
+  snd_pcm_set_managed_buffer_all
+  snd_pcm_set_ops
+  snd_soc_bytes_info_ext
+  snd_soc_new_compress
+
+# required by snd-soc-sprd-platform.ko
+  devm_snd_soc_register_component
+  of_reserved_mem_device_init_by_idx
+  snd_dma_alloc_pages
+  snd_dma_free_pages
+
+# required by snd-soc-sprd-vbc-r1p0v3.ko
+  snd_ctl_boolean_mono_info
+  snd_pcm_hw_constraint_list
+
+# required by snd-soc-tfa98xx.ko
+  crc32_le
+  device_create_bin_file
+  device_remove_bin_file
+  msleep_interruptible
+  snd_pcm_format_width
+  snd_pcm_hw_constraint_mask64
+  snd_soc_dapm_add_routes
+  snd_soc_dapm_new_controls
+
+# required by spi-bitbang.ko
+  spi_register_controller
+  spi_unregister_controller
+
+# required by spi-sprd-adi.ko
+  unregister_restart_handler
+
+# required by spi-sprd.ko
+  dma_request_chan
+  spi_controller_resume
+  spi_controller_suspend
+  spi_finalize_current_transfer
+
+# required by sprd-cpufreq-common.ko
+  dev_pm_opp_remove
+
+# required by sprd-cpufreqhw.ko
+  cpufreq_generic_attr
+  cpufreq_generic_frequency_table_verify
+  cpufreq_generic_get
+  cpufreq_generic_suspend
+  cpufreq_register_driver
+  cpufreq_unregister_driver
+  dev_pm_opp_free_cpufreq_table
+  dev_pm_opp_init_cpufreq_table
+
+# required by sprd-dma.ko
+  dma_async_device_register
+  dma_async_device_unregister
+  dma_async_tx_descriptor_init
+  of_dma_controller_free
+  of_dma_controller_register
+  of_dma_simple_xlate
+
+# required by sprd-drm.ko
+  adjust_managed_page_count
+  component_add
+  component_bind_all
+  component_del
+  component_master_add_with_match
+  component_master_del
+  component_match_add_release
+  component_unbind_all
+  devm_gpiod_get_optional
+  dma_get_sgtable_attrs
+  dma_mmap_attrs
+  dma_set_coherent_mask
+  drm_add_edid_modes
+  drm_atomic_helper_async_commit
+  drm_atomic_helper_check
+  drm_atomic_helper_cleanup_planes
+  drm_atomic_helper_commit
+  drm_atomic_helper_commit_cleanup_done
+  drm_atomic_helper_commit_hw_done
+  drm_atomic_helper_commit_modeset_disables
+  drm_atomic_helper_commit_modeset_enables
+  drm_atomic_helper_commit_planes
+  drm_atomic_helper_commit_tail
+  drm_atomic_helper_commit_tail_rpm
+  drm_atomic_helper_connector_destroy_state
+  drm_atomic_helper_connector_duplicate_state
+  drm_atomic_helper_connector_reset
+  drm_atomic_helper_crtc_destroy_state
+  drm_atomic_helper_crtc_duplicate_state
+  drm_atomic_helper_crtc_reset
+  drm_atomic_helper_disable_plane
+  drm_atomic_helper_page_flip
+  __drm_atomic_helper_plane_destroy_state
+  __drm_atomic_helper_plane_duplicate_state
+  drm_atomic_helper_prepare_planes
+  drm_atomic_helper_resume
+  drm_atomic_helper_set_config
+  drm_atomic_helper_shutdown
+  drm_atomic_helper_suspend
+  drm_atomic_helper_swap_state
+  drm_atomic_helper_update_legacy_modeset_state
+  drm_atomic_helper_update_plane
+  drm_atomic_helper_wait_for_dependencies
+  drm_atomic_helper_wait_for_fences
+  drm_atomic_helper_wait_for_vblanks
+  drm_atomic_private_obj_fini
+  drm_atomic_private_obj_init
+  drm_atomic_set_crtc_for_connector
+  drm_atomic_set_fence_for_plane
+  drm_atomic_set_mode_for_crtc
+  drm_atomic_state_alloc
+  drm_atomic_state_clear
+  drm_atomic_state_default_clear
+  drm_atomic_state_default_release
+  __drm_atomic_state_free
+  drm_bridge_attach
+  drm_connector_attach_content_protection_property
+  drm_connector_attach_encoder
+  drm_connector_cleanup
+  drm_connector_init
+  drm_connector_unregister
+  drm_connector_update_edid_property
+  drm_crtc_cleanup
+  __drm_crtc_commit_free
+  drm_crtc_handle_vblank
+  drm_crtc_init_with_planes
+  drm_crtc_send_vblank_event
+  drm_crtc_vblank_off
+  drm_crtc_vblank_on
+  drm_detect_monitor_audio
+  drm_display_mode_from_videomode
+  drm_display_mode_to_videomode
+  drm_dp_aux_register
+  drm_dp_aux_unregister
+  drm_dp_calc_pbn_mode
+  drm_dp_channel_eq_ok
+  drm_dp_clock_recovery_ok
+  drm_dp_dpcd_read
+  drm_dp_dpcd_read_link_status
+  drm_dp_dpcd_write
+  drm_dp_get_adjust_request_pre_emphasis
+  drm_dp_get_adjust_request_voltage
+  drm_dp_link_train_channel_eq_delay
+  drm_encoder_cleanup
+  drm_encoder_init
+  drm_format_info
+  drm_gem_cma_vm_ops
+  drm_gem_create_mmap_offset
+  drm_gem_fb_create
+  drm_gem_fb_get_obj
+  drm_gem_handle_create
+  drm_gem_mmap
+  drm_gem_mmap_obj
+  drm_gem_object_init
+  drm_gem_object_release
+  drm_gem_prime_export
+  drm_gem_prime_fd_to_handle
+  drm_gem_prime_handle_to_fd
+  drm_gem_prime_import
+  drm_gem_vm_close
+  drm_get_edid
+  drm_hdcp_check_ksvs_revoked
+  drm_hdcp_update_content_protection
+  drm_hdmi_infoframe_set_hdr_metadata
+  drm_helper_hpd_irq_event
+  drm_helper_probe_single_connector_modes
+  drm_kms_helper_poll_disable
+  drm_kms_helper_poll_enable
+  drm_kms_helper_poll_fini
+  drm_kms_helper_poll_init
+  drm_match_cea_mode
+  drm_mode_config_reset
+  drm_mode_create
+  drm_mode_crtc_set_gamma_size
+  drm_mode_destroy
+  drm_mode_duplicate
+  drm_mode_probed_add
+  drm_mode_vrefresh
+  drm_object_attach_property
+  drm_panel_add
+  drm_panel_disable
+  drm_panel_enable
+  drm_panel_get_modes
+  drm_panel_init
+  drm_panel_prepare
+  drm_panel_remove
+  drm_panel_unprepare
+  drm_plane_cleanup
+  drm_plane_create_alpha_property
+  drm_plane_create_blend_mode_property
+  drm_plane_create_rotation_property
+  drm_plane_create_zpos_immutable_property
+  drm_prime_gem_destroy
+  drm_property_create
+  drm_property_create_blob
+  drm_property_create_range
+  drm_put_dev
+  drm_universal_plane_init
+  drm_vblank_init
+  __dynamic_dev_dbg
+  __dynamic_pr_debug
+  extcon_get_property
+  gpiod_direction_output
+  hdmi_drm_infoframe_pack_only
+  kstrtou8
+  mipi_dsi_attach
+  mipi_dsi_dcs_read
+  mipi_dsi_dcs_write_buffer
+  mipi_dsi_detach
+  mipi_dsi_driver_register_full
+  mipi_dsi_driver_unregister
+  mipi_dsi_generic_read
+  mipi_dsi_generic_write
+  mipi_dsi_host_register
+  mipi_dsi_host_unregister
+  mipi_dsi_set_maximum_return_packet_size
+  no_llseek
+  of_clk_get_by_name
+  of_drm_find_bridge
+  of_drm_find_panel
+  of_fdt_unflatten_tree
+  of_find_backlight_by_node
+  of_find_node_opts_by_path
+  of_get_drm_display_mode
+  of_graph_get_endpoint_by_regs
+  of_graph_get_remote_port_parent
+  of_reserved_mem_device_release
+  __platform_register_drivers
+  platform_unregister_drivers
+  regmap_get_reg_stride
+  regmap_get_val_bytes
+  try_wait_for_completion
+
+# required by sprd-gsp.ko
+  __kthread_init_worker
+  kthread_queue_work
+  kthread_worker_fn
+
+# required by sprd-hwdvfs-sharkl3.ko
+  __i2c_transfer
+  rt_mutex_trylock
+
+# required by sprd-mailbox.ko
+  devm_mbox_controller_register
+
+# required by sprd-saudio.ko
+  snd_card_free
+
+# required by sprd-sc27xx-spi.ko
+  devm_regmap_add_irq_chip
+  regmap_irq_get_domain
+  spi_bus_type
+  __spi_register_driver
+  spi_sync
+
+# required by sprd_apb_busmonitor.ko
+  _dev_emerg
+
+# required by sprd_apdu_r3p0.ko
+  __netlink_kernel_create
+  netlink_kernel_release
+  __nlmsg_put
+  of_get_compatible_child
+
+# required by sprd_camera.ko
+  dma_heap_buffer_alloc
+  dma_heap_buffer_free
+  dma_heap_find
+  ktime_get_ts64
+  of_irq_to_resource
+  _raw_read_trylock
+  _raw_spin_trylock
+  regulator_get_linear_step
+
+# required by sprd_coresight.ko
+  amba_bustype
+  amba_driver_register
+  amba_driver_unregister
+  bus_find_device
+  bus_for_each_dev
+  configfs_register_group
+  configfs_register_subsystem
+  configfs_unregister_subsystem
+  config_group_init
+  config_item_set_name
+  dma_alloc_pages
+  dma_free_pages
+  fwnode_handle_get
+  hashlen_string
+  init_pid_ns
+  krealloc
+  of_cpu_node_to_id
+  of_get_next_parent
+  of_graph_get_next_endpoint
+  of_graph_get_port_parent
+  of_graph_get_remote_endpoint
+  of_graph_parse_endpoint
+  of_node_name_eq
+  perf_aux_output_begin
+  perf_aux_output_end
+  perf_aux_output_flag
+  perf_event_addr_filters_sync
+  perf_get_aux
+  perf_pmu_register
+  perf_pmu_unregister
+  sysfs_add_file_to_group
+  sysfs_add_link_to_group
+  sysfs_remove_file_from_group
+  sysfs_remove_link_from_group
+  task_active_pid_ns
+
+# required by sprd_cpp.ko
+  clk_get_parent
+  of_iomap
+
+# required by sprd_cproc.ko
+  of_get_parent
+
+# required by sprd_cpu_cooling.ko
+  cpufreq_get_policy
+  cpufreq_quick_get
+  dev_pm_opp_find_freq_exact
+  thermal_cooling_device_unregister
+  thermal_of_cooling_device_register
+
+# required by sprd_dedicate_thm.ko
+  devm_thermal_zone_of_sensor_register
+  system_power_efficient_wq
+
+# required by sprd_dvfs.ko
+  devfreq_add_governor
+  devfreq_event_get_event
+  devfreq_remove_governor
+  devfreq_update_status
+  device_rename
+  update_devfreq
+
+# required by sprd_hang_trigger.ko
+  kstrtoul_from_user
+  kthread_bind
+
+# required by sprd_hwspinlock.ko
+  hwspin_lock_register
+  hwspin_lock_unregister
+
+# required by sprd_ion.ko
+  memset32
+  of_platform_device_create
+  __sg_page_iter_next
+  __sg_page_iter_start
+
+# required by sprd_ipa.ko
+  irq_set_affinity_hint
+  napi_gro_receive
+  skb_to_sgvec
+
+# required by sprd_mcd.ko
+  gpiod_set_value_cansleep
+  kernel_power_off
+  register_reboot_notifier
+  register_restart_handler
+  unregister_reboot_notifier
+
+# required by sprd_memdisk.ko
+  __alloc_disk_node
+  blk_cleanup_queue
+  blk_mq_end_request
+  blk_mq_start_request
+  blk_queue_logical_block_size
+  del_gendisk
+  device_add_disk
+  put_disk
+
+# required by sprd_pcie_ep_device.ko
+  pci_enable_device
+  pci_request_regions
+  pci_restore_state
+  pci_save_state
+  pci_set_power_state
+
+# required by sprd_pm_domain.ko
+  kfree_const
+  kstrdup_const
+  of_genpd_add_subdomain
+
+# required by sprd_powerdebug.ko
+  cpu_pm_register_notifier
+  cpu_pm_unregister_notifier
+  pm_print_active_wakeup_sources
+  syscon_node_to_regmap
+
+# required by sprd_sdio_fm.ko
+  vfs_llseek
+
+# required by sprd_sip_svc.ko
+  __arm_smccc_smc
+
+# required by sprd_soc_thm.ko
+  thermal_zone_device_unregister
+  thermal_zone_device_update
+  thermal_zone_of_sensor_register
+
+# required by sprd_tcpm.ko
+  typec_altmode_attention
+  typec_altmode_notify
+  typec_altmode_update_active
+  typec_altmode_vdm
+  typec_find_port_data_role
+  typec_find_port_power_role
+  typec_find_power_role
+  typec_get_drvdata
+  typec_match_altmode
+  typec_partner_register_altmode
+  typec_partner_set_identity
+  typec_port_register_altmode
+  typec_set_mode
+  typec_set_orientation
+  typec_unregister_altmode
+  usb_role_switch_get
+  usb_role_switch_put
+  usb_role_switch_set_role
+
+# required by sprd_thermal.ko
+  devm_thermal_zone_of_sensor_unregister
+
+# required by sprd_usb_f_rndis.ko
+  alloc_etherdev_mqs
+  dev_get_stats
+  dev_set_mac_address
+  eth_mac_addr
+  ethtool_op_get_link
+  eth_validate_addr
+  hex_to_bin
+  usb_assign_descriptors
+  usb_free_all_descriptors
+  usb_gstrings_attach
+
+# required by sprd_usb_f_serial.ko
+  tty_driver_kref_put
+  tty_wakeup
+
+# required by sprd_vdsp.ko
+  bsearch
+  devm_kstrdup
+  __memcpy_toio
+  __mmap_lock_do_trace_acquire_returned
+  __mmap_lock_do_trace_released
+  __mmap_lock_do_trace_start_locking
+  of_match_device
+  of_n_addr_cells
+  of_n_size_cells
+  of_translate_address
+  sort
+  __traceiter_mmap_lock_acquire_returned
+  __traceiter_mmap_lock_released
+  __traceiter_mmap_lock_start_locking
+  __tracepoint_mmap_lock_acquire_returned
+  __tracepoint_mmap_lock_released
+  __tracepoint_mmap_lock_start_locking
+
+# required by sprd_wdf.ko
+  kstrtoull_from_user
+  smpboot_register_percpu_thread
+  smp_call_function_single
+
+# required by sprd_wdh.ko
+  copy_from_kernel_nofault
+  vmalloc_to_pfn
+
+# required by sprd_wdt.ko
+  devm_watchdog_register_device
+  watchdog_init_timeout
+
+# required by sprd_wlan_combo.ko
+  __netdev_alloc_frag_align
+  printk_timed_ratelimit
+
+# required by sprdbt_sipc_tty.ko
+  tty_schedule_flip
+
+# required by sprdwl_ng.ko
+  bcmp
+  build_skb
+  consume_skb
+  _ctype
+  dev_get_by_index
+  down_timeout
+  genlmsg_put
+  jiffies_to_usecs
+  kfree_skb_list
+  netdev_err
+  netdev_info
+  netdev_warn
+  netlink_unicast
+  nla_memcpy
+  __nla_parse
+  nla_put_64bit
+  nla_put
+  nla_put_nohdr
+  register_inet6addr_notifier
+  register_inetaddr_notifier
+  register_netdevice
+  rtnl_lock
+  rtnl_unlock
+  simple_open
+  skb_queue_purge
+  skb_unlink
+  synchronize_rcu
+  unregister_inet6addr_notifier
+  unregister_inetaddr_notifier
+  unregister_netdevice_queue
+  __warn_printk
+
+# required by ssd20xx_ts.ko
+  input_mt_report_pointer_emulation
+
+# required by sunwave_fp.ko
+  input_unregister_device
+
+# required by tcpm.ko
+  fwnode_property_read_u32_array
+  mod_delayed_work_on
+  tcpm_cc_change
+  tcpm_pd_hard_reset
+  tcpm_pd_receive
+  tcpm_pd_transmit_complete
+  tcpm_register_port
+  tcpm_unregister_port
+  tcpm_vbus_change
+  usb_debug_root
+
+# required by trusty-pm.ko
+  ktime_get_boot_fast_ns
+  unregister_syscore_ops
+
+# required by trusty.ko
+  _copy_from_iter
+  _copy_to_iter
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  device_for_each_child
+  disable_percpu_irq
+  enable_percpu_irq
+  free_percpu_irq
+  irq_create_of_mapping
+  panic_notifier_list
+  register_virtio_device
+  register_virtio_driver
+  __request_percpu_irq
+  unregister_virtio_device
+  unregister_virtio_driver
+  virtqueue_add_inbuf
+  virtqueue_add_outbuf
+  virtqueue_detach_unused_buf
+  virtqueue_get_buf
+  virtqueue_get_vring_size
+  virtqueue_kick
+  virtqueue_kick_prepare
+  virtqueue_notify
+  vring_del_virtqueue
+  vring_interrupt
+  vring_new_virtqueue
+  wait_woken
+  woken_wake_function
+
+# required by typec.ko
+  blocking_notifier_call_chain
+  __class_register
+  class_unregister
+  device_find_child
+  fwnode_property_read_u16_array
+  get_device
+  kobject_uevent
+  match_string
+
+# required by typec_displayport.ko
+  extcon_sync
+  typec_altmode2port
+  typec_altmode_enter
+  typec_altmode_exit
+  typec_altmode_get_partner
+  __typec_altmode_register_driver
+  typec_altmode_unregister_driver
+  typec_get_negotiated_svdm_version
+
+# required by ufs-sprd.ko
+  scsi_autopm_get_device
+  scsi_autopm_put_device
+  scsi_block_when_processing_errors
+  scsi_cmd_allowed
+  scsi_device_quiesce
+  __scsi_iterate_devices
+  __traceiter_android_vh_ufs_check_int_errors
+  __traceiter_android_vh_ufs_compl_command
+  __traceiter_android_vh_ufs_fill_prdt
+  __traceiter_android_vh_ufs_prepare_command
+  __traceiter_android_vh_ufs_send_command
+  __traceiter_android_vh_ufs_send_tm_command
+  __traceiter_android_vh_ufs_send_uic_command
+  __traceiter_android_vh_ufs_update_sdev
+  __traceiter_android_vh_ufs_update_sysfs
+  __tracepoint_android_vh_ufs_check_int_errors
+  __tracepoint_android_vh_ufs_compl_command
+  __tracepoint_android_vh_ufs_fill_prdt
+  __tracepoint_android_vh_ufs_prepare_command
+  __tracepoint_android_vh_ufs_send_command
+  __tracepoint_android_vh_ufs_send_tm_command
+  __tracepoint_android_vh_ufs_send_uic_command
+  __tracepoint_android_vh_ufs_update_sdev
+  __tracepoint_android_vh_ufs_update_sysfs
+  ufshcd_add_command_trace
+  ufshcd_auto_hibern8_update
+  ufshcd_config_pwr_mode
+  ufshcd_delay_us
+  ufshcd_dme_configure_adapt
+  ufshcd_dme_get_attr
+  ufshcd_dme_set_attr
+  ufshcd_dump_regs
+  ufshcd_fixup_dev_quirks
+  ufshcd_get_local_unipro_ver
+  ufshcd_hold
+  ufshcd_init_pwr_dev_param
+  ufshcd_link_recovery
+  ufshcd_pltfrm_init
+  ufshcd_pltfrm_shutdown
+  ufshcd_query_attr
+  ufshcd_query_descriptor_retry
+  ufshcd_query_flag
+  ufshcd_read_desc_param
+  ufshcd_release
+  ufshcd_remove
+  ufshcd_resume_complete
+  ufshcd_runtime_resume
+  ufshcd_runtime_suspend
+  ufshcd_suspend_prepare
+  ufshcd_system_resume
+  ufshcd_system_suspend
+  ufshcd_transfer_rsp_status
+  ufshcd_uic_change_pwr_mode
+  ufshcd_uic_hibern8_exit
+  ufshcd_update_evt_hist
+
+# required by unisoc_dump_io.ko
+  blk_stat_enable_accounting
+
+# required by unisoc_mm.ko
+  __traceiter_android_vh_tune_swappiness
+  __tracepoint_android_vh_tune_swappiness
+
+# required by unisoc_mm_cma.ko
+  __traceiter_android_vh_use_cma_first_check
+  __traceiter_android_vh_alloc_highpage_movable_gfp_adjust
+  __traceiter_android_vh_anon_gfp_adjust
+  __traceiter_android_vh_alloc_flags_cma_adjust
+  __traceiter_android_vh_rmqueue_cma_fallback
+  __traceiter_android_vh_try_cma_fallback
+  __tracepoint_android_vh_use_cma_first_check
+  __tracepoint_android_vh_alloc_highpage_movable_gfp_adjust
+  __tracepoint_android_vh_anon_gfp_adjust
+  __tracepoint_android_vh_alloc_flags_cma_adjust
+  __tracepoint_android_vh_rmqueue_cma_fallback
+  __tracepoint_android_vh_try_cma_fallback
+
+# required by unisoc_mm_emem.ko
+  __traceiter_android_vh_oom_check_panic
+  __traceiter_android_vh_show_mem
+  __tracepoint_android_vh_oom_check_panic
+  __tracepoint_android_vh_show_mem
+
+# required by unisoc_mm_reclaim.ko
+  __traceiter_android_vh_clear_page_migrating
+  __traceiter_android_vh_do_page_trylock
+  __traceiter_android_vh_handle_failed_page_trylock
+  __traceiter_android_vh_page_trylock_clear
+  __traceiter_android_vh_page_trylock_get_result
+  __traceiter_android_vh_page_trylock_set
+  __traceiter_android_vh_set_page_migrating
+  __traceiter_android_vh_shrink_slab_bypass
+  __tracepoint_android_vh_clear_page_migrating
+  __tracepoint_android_vh_do_page_trylock
+  __tracepoint_android_vh_handle_failed_page_trylock
+  __tracepoint_android_vh_page_trylock_clear
+  __tracepoint_android_vh_page_trylock_get_result
+  __tracepoint_android_vh_page_trylock_set
+  __tracepoint_android_vh_set_page_migrating
+  __tracepoint_android_vh_shrink_slab_bypass
+
+# required by unisoc_mm_slab.ko
+  __traceiter_android_vh_kmalloc_order_alloced
+  __traceiter_android_vh_slab_page_alloced
+  __tracepoint_android_vh_kmalloc_order_alloced
+  __tracepoint_android_vh_slab_page_alloced
+
+# required by unisoc_multi_control.ko
+  cpufreq_table_index_unsorted
+
+# required by unisoc_schedutil.ko
+  irq_work_queue
+  kobject_init_and_add
+
+# required by unisoc_ursp.ko
+  raw_notifier_chain_unregister
+  sock_i_uid
+
+# required by usb-storage.ko
+  blk_queue_bounce_limit
+  blk_queue_max_hw_sectors
+  blk_queue_update_dma_alignment
+  _dev_notice
+  param_ops_string
+  schedule_timeout_uninterruptible
+  __scsi_add_device
+  scsi_add_host_with_dma
+  scsi_device_get
+  scsi_device_put
+  scsi_eh_prep_cmnd
+  scsi_eh_restore_cmnd
+  __scsi_execute
+  scsi_get_host_dev
+  scsi_host_alloc
+  scsi_host_put
+  scsi_is_host_device
+  scsi_normalize_sense
+  scsi_print_sense_hdr
+  scsi_remove_host
+  scsi_report_bus_reset
+  scsi_report_device_reset
+  scsi_scan_host
+  scsi_sense_desc_find
+  scsi_test_unit_ready
+  sg_miter_skip
+  simple_strtoul
+  usb_autopm_put_interface_no_suspend
+  usb_lock_device_for_reset
+  usb_reset_device
+  usb_reset_endpoint
+  usb_sg_cancel
+  usb_sg_init
+  usb_sg_wait
+  usb_unlink_urb
+
+# required by usb_f_mtp.ko
+  config_group_init_type_name
+  usb_os_desc_prepare_interf_dir
+  usb_string_id
+
+# required by usbserial.ko
+  device_del
+  driver_attach
+  handle_sysrq
+  tty_hangup
+  tty_ldisc_deref
+  tty_ldisc_ref
+  tty_termios_copy_hw
+  usb_disabled
+  usb_get_dev
+  usb_match_id
+  usb_match_one_id
+  usb_poison_urb
+  usb_put_dev
+  usb_show_dynids
+  usb_store_new_id
+  usb_unpoison_urb
+
+# required by vha.ko
+  clk_bulk_get
+  device_wakeup_disable
+  devm_iounmap
+  __ndelay
+  param_ops_long
+  param_ops_ulong
+  pm_relax
+  pm_stay_awake
+
+# required by virtio_crypto.ko
+  cpu_bit_bitmap
+  cpus_read_lock
+  cpus_read_unlock
+  cpu_topology
+  crypto_engine_alloc_init
+  crypto_engine_exit
+  crypto_engine_start
+  crypto_register_alg
+  crypto_register_scomp
+  crypto_unregister_alg
+  crypto_unregister_scomp
+  scatterwalk_map_and_copy
+  sg_init_one
+  sg_nents_for_len
+  virtio_break_device
+  virtqueue_add_sgs
+  virtqueue_disable_cb
+  virtqueue_enable_cb
+  virtqueue_is_broken
+
+# required by wcn_bsp.ko
+  gpiod_set_value
+  memdup_user
+  pci_disable_device
+  pci_disable_msi
+  pci_disable_msix
+  pcie_capability_read_dword
+  pcie_capability_read_word
+  pci_enable_msix_range
+  pci_enable_wake
+  pci_find_ext_capability
+  pci_load_and_free_saved_state
+  pci_msi_vec_count
+  pci_read_config_byte
+  pci_read_config_dword
+  pci_release_regions
+  pci_store_saved_state
+  pci_write_config_byte
+  pci_write_config_dword
+  register_chrdev_region
+  request_firmware_direct
+
+# required by xcbc.ko
+  crypto_check_attr_type
+  crypto_mod_put
+  crypto_register_template
+  crypto_spawn_tfm
+  crypto_unregister_template
+  shash_register_instance
+
+# required by xfrm4_tunnel.ko
+  xfrm4_tunnel_deregister
+  xfrm4_tunnel_register
+
+# required by xt_TEE.ko
+  static_key_slow_dec
+  static_key_slow_inc
+  xt_tee_enabled
+
+# required by xt_addrtype.ko
+  inet_dev_addr_type
+  __ipv6_addr_type
+  ipv6_chk_addr
+
+# required by zram.ko
+  bio_chain
+  bio_init
+  blkdev_put
+  blk_status_to_errno
+  file_path
+  filp_close
+  filp_open_block
+  I_BDEV
+  set_blocksize
+  submit_bio_wait
+
diff --git a/android/abi_gki_aarch64_virtual_device b/android/abi_gki_aarch64_virtual_device
new file mode 100644
index 0000000..50a6b60
--- /dev/null
+++ b/android/abi_gki_aarch64_virtual_device
@@ -0,0 +1,1444 @@
+[abi_symbol_list]
+# commonly used symbols
+  alloc_anon_inode
+  alloc_etherdev_mqs
+  alloc_netdev_mqs
+  __alloc_pages
+  __alloc_skb
+  alloc_workqueue
+  amba_driver_register
+  amba_driver_unregister
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  bcmp
+  blk_cleanup_disk
+  blk_queue_flag_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  bpf_trace_run1
+  bpf_trace_run2
+  bpf_trace_run3
+  bpf_trace_run4
+  bpf_trace_run5
+  bpf_trace_run6
+  bt_err
+  bt_info
+  bt_warn
+  build_skb
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  cancel_work_sync
+  __cfi_slowpath_diag
+  __check_object_size
+  __class_create
+  class_destroy
+  __class_register
+  class_unregister
+  __ClearPageMovable
+  clk_disable
+  clk_enable
+  clk_get_rate
+  clk_prepare
+  clk_set_rate
+  clk_unprepare
+  complete
+  __const_udelay
+  consume_skb
+  contig_page_data
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpumask_next
+  cpu_number
+  __cpu_online_mask
+  __cpu_possible_mask
+  crc32_le
+  crypto_destroy_tfm
+  debugfs_attr_read
+  debugfs_attr_write
+  debugfs_create_devm_seqfile
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_create_u32
+  debugfs_create_u8
+  debugfs_remove
+  delayed_work_timer_fn
+  del_gendisk
+  del_timer
+  del_timer_sync
+  destroy_workqueue
+  dev_alloc_name
+  dev_close
+  dev_driver_string
+  _dev_err
+  __dev_get_by_index
+  device_add_disk
+  device_create
+  device_create_file
+  device_init_wakeup
+  device_remove_file
+  device_unregister
+  _dev_info
+  __dev_kfree_skb_any
+  __dev_kfree_skb_irq
+  devm_clk_get
+  devm_clk_hw_register
+  devm_ioremap
+  devm_ioremap_resource
+  devm_kfree
+  devm_kmalloc
+  devm_request_threaded_irq
+  _dev_notice
+  _dev_printk
+  dev_queue_xmit
+  _dev_warn
+  dma_alloc_attrs
+  dma_buf_export
+  dma_fence_context_alloc
+  dma_fence_init
+  dma_fence_release
+  dma_fence_signal_locked
+  dma_free_attrs
+  dmam_alloc_attrs
+  dma_map_page_attrs
+  dma_map_sgtable
+  dma_set_coherent_mask
+  dma_set_mask
+  dma_sync_sg_for_device
+  dma_sync_single_for_cpu
+  dma_sync_single_for_device
+  dma_unmap_page_attrs
+  dma_unmap_sg_attrs
+  do_trace_netlink_extack
+  drm_add_modes_noedid
+  drm_atomic_get_crtc_state
+  drm_atomic_helper_check
+  drm_atomic_helper_check_plane_state
+  drm_atomic_helper_commit
+  drm_atomic_helper_connector_destroy_state
+  drm_atomic_helper_connector_duplicate_state
+  drm_atomic_helper_connector_reset
+  drm_atomic_helper_disable_plane
+  drm_atomic_helper_page_flip
+  drm_atomic_helper_set_config
+  drm_atomic_helper_shutdown
+  drm_atomic_helper_update_plane
+  drm_compat_ioctl
+  drm_connector_attach_encoder
+  drm_connector_cleanup
+  drm_connector_init
+  drm_crtc_arm_vblank_event
+  drm_crtc_cleanup
+  drm_crtc_handle_vblank
+  drm_crtc_init_with_planes
+  drm_crtc_send_vblank_event
+  drm_crtc_vblank_get
+  drm_crtc_vblank_off
+  drm_crtc_vblank_on
+  __drm_dbg
+  drm_debugfs_create_files
+  drm_dev_alloc
+  drm_dev_put
+  drm_dev_register
+  drm_dev_unregister
+  __drm_err
+  drm_gem_fb_create
+  drm_gem_mmap
+  drm_gem_prime_fd_to_handle
+  drm_gem_prime_handle_to_fd
+  drm_gem_prime_mmap
+  drm_helper_probe_single_connector_modes
+  drm_ioctl
+  drmm_mode_config_init
+  drm_mode_config_reset
+  drm_open
+  drm_poll
+  drm_read
+  drm_release
+  drm_set_preferred_mode
+  drm_simple_encoder_init
+  drm_vblank_init
+  ether_setup
+  eth_mac_addr
+  ethtool_op_get_link
+  ethtool_op_get_ts_info
+  eth_type_trans
+  eth_validate_addr
+  event_triggers_call
+  fd_install
+  _find_first_bit
+  _find_next_bit
+  finish_wait
+  firmware_request_nowarn
+  flush_delayed_work
+  flush_work
+  flush_workqueue
+  fput
+  free_irq
+  free_netdev
+  __free_pages
+  free_pages
+  free_percpu
+  genlmsg_put
+  genl_register_family
+  genl_unregister_family
+  get_device
+  __get_free_pages
+  get_random_bytes
+  get_unused_fd_flags
+  gic_nonsecure_priorities
+  gpiod_put
+  hci_alloc_dev_priv
+  __hci_cmd_sync
+  __hci_cmd_sync_ev
+  hci_free_dev
+  hci_recv_frame
+  hci_register_dev
+  hci_unregister_dev
+  hrtimer_cancel
+  hrtimer_forward
+  hrtimer_init
+  hrtimer_start_range_ns
+  ida_alloc_range
+  ida_free
+  idr_alloc
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_remove
+  init_net
+  init_pseudo
+  __init_swait_queue_head
+  init_timer_key
+  init_wait_entry
+  __init_waitqueue_head
+  input_alloc_absinfo
+  input_allocate_device
+  input_event
+  input_free_device
+  input_mt_init_slots
+  input_register_device
+  input_set_abs_params
+  input_unregister_device
+  __ioremap
+  iounmap
+  iput
+  is_vmalloc_addr
+  jiffies
+  jiffies_to_msecs
+  kasan_flag_enabled
+  kern_mount
+  kern_unmount
+  kfree
+  kfree_sensitive
+  kfree_skb
+  kill_anon_super
+  kimage_voffset
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order_trace
+  kmem_cache_alloc
+  kmem_cache_alloc_trace
+  kmem_cache_create
+  kmem_cache_destroy
+  kmem_cache_free
+  kmemdup
+  kstrndup
+  kstrtoint
+  kstrtouint
+  kthread_create_on_node
+  kthread_park
+  kthread_should_stop
+  kthread_stop
+  kthread_unpark
+  ktime_get
+  ktime_get_with_offset
+  kvfree
+  kvfree_call_rcu
+  kvmalloc_node
+  __list_add_valid
+  __list_del_entry_valid
+  __local_bh_enable_ip
+  memcpy
+  memmove
+  memparse
+  memset
+  memstart_addr
+  misc_deregister
+  misc_register
+  mod_delayed_work_on
+  mod_timer
+  module_layout
+  __msecs_to_jiffies
+  msleep
+  msleep_interruptible
+  __mutex_init
+  mutex_lock
+  mutex_lock_interruptible
+  mutex_unlock
+  __napi_alloc_skb
+  napi_complete_done
+  napi_disable
+  napi_enable
+  napi_gro_receive
+  __napi_schedule
+  napi_schedule_prep
+  __netdev_alloc_skb
+  netdev_err
+  netdev_info
+  netdev_rx_handler_register
+  netdev_rx_handler_unregister
+  netdev_upper_dev_unlink
+  netdev_warn
+  netif_carrier_off
+  netif_carrier_on
+  netif_device_attach
+  netif_device_detach
+  netif_napi_add
+  __netif_napi_del
+  netif_receive_skb_list
+  netif_rx
+  netif_rx_ni
+  netif_schedule_queue
+  netif_tx_stop_all_queues
+  netif_tx_wake_queue
+  netlink_broadcast
+  netlink_register_notifier
+  netlink_unicast
+  netlink_unregister_notifier
+  net_ratelimit
+  nf_conntrack_destroy
+  nla_memcpy
+  __nla_parse
+  nla_put_64bit
+  nla_put
+  no_llseek
+  nonseekable_open
+  noop_llseek
+  nr_cpu_ids
+  __num_online_cpus
+  of_device_is_compatible
+  of_find_property
+  of_property_read_variable_u32_array
+  page_frag_alloc_align
+  __page_frag_cache_drain
+  page_frag_free
+  param_ops_bool
+  param_ops_charp
+  param_ops_int
+  param_ops_uint
+  passthru_features_check
+  pci_disable_device
+  pci_enable_device
+  pci_find_capability
+  pci_find_next_capability
+  pci_iounmap
+  pci_read_config_byte
+  pci_read_config_dword
+  __pci_register_driver
+  pci_release_region
+  pci_release_selected_regions
+  pci_request_region
+  pci_request_selected_regions
+  pci_set_master
+  pci_unregister_driver
+  __per_cpu_offset
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  platform_device_add
+  platform_device_add_data
+  platform_device_alloc
+  platform_device_del
+  platform_device_put
+  platform_device_register_full
+  platform_device_unregister
+  __platform_driver_register
+  platform_driver_unregister
+  platform_get_irq
+  platform_get_resource
+  pm_wakeup_dev_event
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait_event
+  print_hex_dump
+  _printk
+  pskb_expand_head
+  __pskb_pull_tail
+  ___pskb_trim
+  put_device
+  __put_page
+  __put_task_struct
+  put_unused_fd
+  queue_delayed_work_on
+  queue_work_on
+  ___ratelimit
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irq
+  _raw_spin_lock_irqsave
+  _raw_spin_trylock
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irq
+  _raw_spin_unlock_irqrestore
+  rb_erase
+  rb_insert_color
+  __rcu_read_lock
+  __rcu_read_unlock
+  refcount_warn_saturate
+  __register_blkdev
+  register_netdev
+  register_netdevice
+  register_netdevice_notifier
+  register_pernet_device
+  register_shrinker
+  register_virtio_device
+  register_virtio_driver
+  __regmap_init
+  regmap_write
+  release_firmware
+  remap_pfn_range
+  request_firmware
+  request_threaded_irq
+  rhashtable_insert_slow
+  __rht_bucket_nested
+  rht_bucket_nested
+  rht_bucket_nested_insert
+  rtnl_is_locked
+  rtnl_link_register
+  rtnl_link_unregister
+  rtnl_lock
+  rtnl_unlock
+  sched_set_fifo_low
+  schedule
+  schedule_timeout
+  scnprintf
+  seq_lseek
+  seq_printf
+  seq_puts
+  seq_read
+  serio_close
+  serio_interrupt
+  serio_open
+  serio_reconnect
+  __serio_register_driver
+  __serio_register_port
+  serio_unregister_driver
+  set_capacity_and_notify
+  __SetPageMovable
+  sg_alloc_table
+  sg_alloc_table_chained
+  sg_free_table
+  sg_free_table_chained
+  sg_init_one
+  sg_init_table
+  sg_miter_next
+  sg_miter_start
+  sg_miter_stop
+  sg_next
+  simple_attr_open
+  simple_attr_release
+  single_open
+  single_release
+  skb_add_rx_frag
+  skb_clone
+  skb_copy
+  skb_copy_bits
+  skb_copy_expand
+  skb_dequeue
+  __skb_pad
+  skb_pull
+  skb_push
+  skb_put
+  skb_queue_head
+  skb_queue_purge
+  skb_queue_tail
+  skb_to_sgvec
+  skb_trim
+  skb_tstamp_tx
+  snprintf
+  softnet_data
+  sprintf
+  sscanf
+  __stack_chk_fail
+  strcasecmp
+  strchr
+  strcmp
+  strcpy
+  strlcpy
+  strlen
+  strncpy
+  strscpy
+  __sw_hweight16
+  __sw_hweight32
+  __sw_hweight8
+  sync_file_create
+  synchronize_irq
+  synchronize_net
+  synchronize_rcu
+  sysfs_create_group
+  __sysfs_match_string
+  sysfs_remove_group
+  sysfs_remove_link
+  system_freezable_wq
+  system_wq
+  __tasklet_schedule
+  tasklet_setup
+  tasklet_unlock_wait
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_handle_return
+  trace_raw_output_prep
+  __ubsan_handle_cfi_check_fail_abort
+  __udelay
+  unlock_page
+  unregister_blkdev
+  unregister_netdev
+  unregister_netdevice_many
+  unregister_netdevice_notifier
+  unregister_netdevice_queue
+  unregister_pernet_device
+  unregister_shrinker
+  unregister_virtio_device
+  unregister_virtio_driver
+  usb_add_hcd
+  usb_alloc_urb
+  usb_anchor_urb
+  usb_bulk_msg
+  usb_control_msg
+  usb_create_hcd
+  usb_create_shared_hcd
+  usb_deregister
+  usb_disabled
+  usb_free_urb
+  usb_get_dev
+  usb_hcd_check_unlink_urb
+  usb_hcd_giveback_urb
+  usb_hcd_is_primary_hcd
+  usb_hcd_link_urb_to_ep
+  usb_hcd_poll_rh_status
+  usb_hcd_resume_root_hub
+  usb_hcd_unlink_urb_from_ep
+  usb_kill_anchored_urbs
+  usb_put_dev
+  usb_put_hcd
+  usb_register_driver
+  usb_remove_hcd
+  usb_reset_device
+  usb_submit_urb
+  usb_unanchor_urb
+  __usecs_to_jiffies
+  usleep_range_state
+  vabits_actual
+  vfree
+  virtio_break_device
+  virtio_check_driver_offered_feature
+  virtio_config_changed
+  virtqueue_add_inbuf
+  virtqueue_add_outbuf
+  virtqueue_add_sgs
+  virtqueue_detach_unused_buf
+  virtqueue_disable_cb
+  virtqueue_enable_cb
+  virtqueue_get_avail_addr
+  virtqueue_get_buf
+  virtqueue_get_desc_addr
+  virtqueue_get_used_addr
+  virtqueue_get_vring_size
+  virtqueue_is_broken
+  virtqueue_kick
+  virtqueue_kick_prepare
+  virtqueue_notify
+  vmalloc_to_page
+  vring_create_virtqueue
+  vring_del_virtqueue
+  vring_interrupt
+  vring_transport_features
+  vzalloc
+  wait_for_completion
+  __wake_up
+  wake_up_process
+  __warn_printk
+
+# required by goldfish_address_space.ko
+  memremap
+  memunmap
+
+# required by goldfish_pipe.ko
+  pin_user_pages_fast
+  unpin_user_pages_dirty_lock
+
+# required by goldfish_sync.ko
+  dma_fence_default_wait
+  dma_fence_free
+
+# required by virtio-gpu.ko
+  __devm_request_region
+  dma_fence_match_context
+  dma_fence_wait_timeout
+  dma_map_resource
+  dma_resv_add_excl_fence
+  dma_resv_test_signaled
+  dma_resv_wait_timeout
+  dma_unmap_resource
+  drm_add_edid_modes
+  drm_aperture_remove_conflicting_pci_framebuffers
+  drm_atomic_helper_crtc_destroy_state
+  drm_atomic_helper_crtc_duplicate_state
+  drm_atomic_helper_crtc_reset
+  drm_atomic_helper_damage_merged
+  drm_atomic_helper_dirtyfb
+  drm_atomic_helper_plane_destroy_state
+  drm_atomic_helper_plane_duplicate_state
+  drm_atomic_helper_plane_reset
+  drm_connector_attach_edid_property
+  drm_connector_register
+  drm_connector_unregister
+  drm_connector_update_edid_property
+  drm_cvt_mode
+  drm_dev_enter
+  drm_dev_exit
+  drm_dev_get
+  drm_dev_printk
+  drm_dev_set_unique
+  drm_dev_unplug
+  drm_do_get_edid
+  drm_event_reserve_init
+  drm_framebuffer_init
+  drm_gem_create_mmap_offset
+  drm_gem_dmabuf_mmap
+  drm_gem_dmabuf_release
+  drm_gem_dmabuf_vmap
+  drm_gem_dmabuf_vunmap
+  drm_gem_fb_create_handle
+  drm_gem_fb_destroy
+  drm_gem_free_mmap_offset
+  drm_gem_handle_create
+  drm_gem_lock_reservations
+  drm_gem_map_attach
+  drm_gem_map_detach
+  drm_gem_map_dma_buf
+  drm_gem_object_free
+  drm_gem_object_lookup
+  drm_gem_object_release
+  drm_gem_prime_import
+  drm_gem_private_object_init
+  drm_gem_shmem_create
+  drm_gem_shmem_free_object
+  drm_gem_shmem_get_sg_table
+  drm_gem_shmem_mmap
+  drm_gem_shmem_pin
+  drm_gem_shmem_print_info
+  drm_gem_shmem_unpin
+  drm_gem_shmem_vmap
+  drm_gem_shmem_vunmap
+  drm_gem_unlock_reservations
+  drm_gem_unmap_dma_buf
+  drm_gem_vm_close
+  drm_gem_vm_open
+  drm_helper_hpd_irq_event
+  drm_helper_mode_fill_fb_struct
+  drm_kms_helper_hotplug_event
+  drm_mm_init
+  drm_mm_insert_node_in_range
+  drm_mm_print
+  drm_mm_remove_node
+  drm_mm_takedown
+  drm_mode_probed_add
+  drm_plane_cleanup
+  __drm_printfn_seq_file
+  __drm_puts_seq_file
+  drm_send_event
+  drm_universal_plane_init
+  __get_task_comm
+  iomem_resource
+  is_virtio_device
+  memdup_user
+  sync_file_get_fence
+  __traceiter_dma_fence_emit
+  __tracepoint_dma_fence_emit
+  vmemdup_user
+  vm_get_page_prot
+  ww_mutex_lock_interruptible
+  ww_mutex_unlock
+
+# required by virtio_blk.ko
+  blk_execute_rq
+  blk_get_request
+  __blk_mq_alloc_disk
+  blk_mq_alloc_tag_set
+  blk_mq_complete_request
+  blk_mq_end_request
+  blk_mq_free_tag_set
+  blk_mq_quiesce_queue
+  blk_mq_start_request
+  blk_mq_start_stopped_hw_queues
+  blk_mq_stop_hw_queue
+  blk_mq_unquiesce_queue
+  blk_mq_virtio_map_queues
+  blk_put_request
+  blk_queue_alignment_offset
+  blk_queue_max_discard_segments
+  blk_queue_max_hw_sectors
+  blk_queue_max_segments
+  blk_queue_max_segment_size
+  blk_queue_write_cache
+  blk_rq_map_kern
+  __blk_rq_map_sg
+  blk_status_to_errno
+  set_disk_ro
+  string_get_size
+  virtio_max_dma_size
+
+# required by zram.ko
+  __alloc_percpu
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_start_io_acct
+  __blk_alloc_disk
+  blk_queue_flag_clear
+  crypto_alloc_base
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_has_alg
+  disk_end_io_acct
+  disk_start_io_acct
+  down_read
+  down_write
+  flush_dcache_page
+  fsync_bdev
+  __init_rwsem
+  kstrtou16
+  kstrtoull
+  memset64
+  mutex_is_locked
+  page_endio
+  set_capacity
+  sysfs_streq
+  up_read
+  up_write
+
+# required by btintel.ko
+  bit_wait_timeout
+  bt_to_errno
+  hci_cmd_sync
+  out_of_line_wait_on_bit_timeout
+  request_firmware_direct
+  wake_up_bit
+
+# required by btusb.ko
+  btbcm_set_bdaddr
+  btbcm_setup_apple
+  btbcm_setup_patchram
+  device_set_wakeup_capable
+  disable_irq
+  disable_irq_nosync
+  enable_irq
+  gpiod_get_optional
+  gpiod_set_value_cansleep
+  hci_recv_diag
+  irq_modify_status
+  irq_set_irq_wake
+  ktime_get_mono_fast_ns
+  of_irq_get_byname
+  of_match_device
+  of_property_read_variable_u16_array
+  pm_runtime_allow
+  pm_runtime_forbid
+  __pm_runtime_suspend
+  pm_system_wakeup
+  usb_autopm_get_interface
+  usb_autopm_put_interface
+  usb_driver_claim_interface
+  usb_driver_release_interface
+  usb_enable_autosuspend
+  usb_get_from_anchor
+  usb_ifnum_to_if
+  usb_match_id
+  usb_queue_reset_device
+  usb_scuttle_anchored_urbs
+  usb_set_interface
+
+# required by hci_vhci.ko
+  _copy_from_iter
+  iov_iter_revert
+
+# required by vexpress-config.ko
+  devres_add
+  __devres_alloc_node
+  devres_free
+  of_find_compatible_node
+  of_get_next_parent
+  of_parse_phandle
+  of_platform_populate
+  of_root
+  regmap_exit
+
+# required by virtio-rng.ko
+  hwrng_register
+  hwrng_unregister
+  wait_for_completion_killable
+
+# required by virtio_console.ko
+  cdev_add
+  cdev_alloc
+  cdev_del
+  device_destroy
+  fasync_helper
+  freezing_slow_path
+  hvc_alloc
+  hvc_instantiate
+  hvc_kick
+  hvc_poll
+  hvc_remove
+  __hvc_resize
+  kill_fasync
+  kobject_uevent
+  pipe_lock
+  pipe_unlock
+  __refrigerator
+  __register_chrdev
+  __splice_from_pipe
+  system_freezing_cnt
+  __unregister_chrdev
+
+# required by clk-vexpress-osc.ko
+  clk_hw_set_rate_range
+  devm_of_clk_add_hw_provider
+  of_clk_hw_simple_get
+  of_property_read_string
+  regmap_read
+
+# required by dummy-cpufreq.ko
+  cpufreq_generic_attr
+  cpufreq_register_driver
+  cpufreq_unregister_driver
+
+# required by system_heap.ko
+  dmabuf_page_pool_alloc
+  dmabuf_page_pool_create
+  dmabuf_page_pool_destroy
+  dmabuf_page_pool_free
+  dma_heap_add
+  dma_heap_get_dev
+  dma_heap_get_name
+  dma_sync_sg_for_cpu
+  __sg_page_iter_next
+  __sg_page_iter_start
+  vmalloc
+  vmap
+  vunmap
+
+# required by pl111_drm.ko
+  __clk_get_name
+  clk_hw_get_parent
+  clk_hw_round_rate
+  drm_fb_cma_get_gem_addr
+  drm_gem_cma_dumb_create
+  drm_gem_cma_prime_import_sg_table
+  drm_kms_helper_poll_init
+  drm_of_find_panel_or_bridge
+  drm_panel_bridge_add_typed
+  drm_panel_bridge_connector
+  drm_panel_bridge_remove
+  drm_simple_display_pipe_attach_bridge
+  drm_simple_display_pipe_init
+  of_find_device_by_node
+  of_find_matching_node_and_match
+  of_find_node_opts_by_path
+  of_get_next_available_child
+  of_graph_get_next_endpoint
+  of_reserved_mem_device_init_by_idx
+  of_reserved_mem_device_release
+  regmap_update_bits_base
+  syscon_node_to_regmap
+
+# required by vkms.ko
+  __devm_drm_dev_alloc
+  devres_open_group
+  devres_release_group
+  drm_atomic_add_affected_planes
+  drm_atomic_helper_cleanup_planes
+  drm_atomic_helper_commit_hw_done
+  drm_atomic_helper_commit_modeset_disables
+  drm_atomic_helper_commit_modeset_enables
+  drm_atomic_helper_commit_planes
+  __drm_atomic_helper_crtc_destroy_state
+  __drm_atomic_helper_crtc_duplicate_state
+  __drm_atomic_helper_crtc_reset
+  drm_atomic_helper_fake_vblank
+  drm_atomic_helper_wait_for_flip_done
+  drm_calc_timestamping_constants
+  drm_crtc_accurate_vblank_count
+  drm_crtc_add_crc_entry
+  drm_crtc_vblank_put
+  drm_encoder_cleanup
+  drm_gem_cleanup_shadow_fb
+  __drm_gem_destroy_shadow_plane_state
+  __drm_gem_duplicate_shadow_plane_state
+  drm_gem_fb_get_obj
+  drm_gem_fb_vmap
+  drm_gem_fb_vunmap
+  drm_gem_prepare_shadow_fb
+  __drm_gem_reset_shadow_plane
+  drm_gem_shmem_dumb_create
+  drm_gem_shmem_prime_import_sg_table
+  drm_mode_object_get
+  drm_mode_object_put
+  __drmm_universal_plane_alloc
+  drm_writeback_connector_init
+  drm_writeback_queue_job
+  drm_writeback_signal_completion
+
+# required by psmouse.ko
+  bus_register_notifier
+  bus_unregister_notifier
+  device_add_groups
+  device_remove_groups
+  i2c_adapter_type
+  i2c_bus_type
+  i2c_client_type
+  i2c_for_each_dev
+  i2c_new_scanned_device
+  i2c_unregister_device
+  i2c_verify_adapter
+  input_mt_assign_slots
+  input_mt_drop_unused
+  input_mt_report_finger_count
+  input_mt_report_pointer_emulation
+  input_mt_report_slot_state
+  input_mt_sync_frame
+  input_set_capability
+  kstrtobool
+  kstrtou8
+  ps2_begin_command
+  ps2_cmd_aborted
+  ps2_command
+  ps2_drain
+  ps2_end_command
+  ps2_handle_ack
+  ps2_handle_response
+  ps2_init
+  ps2_sendbyte
+  ps2_sliced_command
+  serio_rescan
+  serio_unregister_child_port
+  strncmp
+  strsep
+
+# required by ambakmi.ko
+  amba_release_regions
+  amba_request_regions
+  clk_get
+  clk_put
+  serio_unregister_port
+
+# required by pulse8-cec.ko
+  cec_allocate_adapter
+  cec_delete_adapter
+  cec_received_msg_ts
+  cec_register_adapter
+  cec_s_log_addrs
+  cec_s_phys_addr
+  cec_transmit_attempt_done_ts
+  cec_unregister_adapter
+  wait_for_completion_timeout
+
+# required by vexpress-sysreg.ko
+  bgpio_init
+  devm_gpiochip_add_data_with_key
+  devm_mfd_add_devices
+
+# required by open-dice.ko
+  devm_memremap
+  devm_memunmap
+  of_reserved_mem_lookup
+  __platform_driver_probe
+  simple_read_from_buffer
+  vm_iomap_memory
+
+# required by armmmci.ko
+  clk_round_rate
+  devm_of_iomap
+  devm_pinctrl_get
+  __devm_reset_control_get
+  dma_map_sg_attrs
+  dma_release_channel
+  dma_request_chan
+  gpiod_direction_input
+  gpiod_get
+  gpiod_get_value
+  gpiod_set_value
+  mmc_add_host
+  mmc_alloc_host
+  mmc_free_host
+  mmc_gpiod_request_cd
+  mmc_gpiod_request_ro
+  mmc_gpio_get_cd
+  mmc_gpio_get_ro
+  mmc_of_parse
+  mmc_regulator_get_supply
+  mmc_regulator_set_ocr
+  mmc_regulator_set_vqmmc
+  mmc_remove_host
+  mmc_request_done
+  mmc_send_tuning
+  of_get_property
+  pinctrl_lookup_state
+  pinctrl_pm_select_sleep_state
+  pinctrl_select_default_state
+  pinctrl_select_state
+  pm_runtime_force_resume
+  pm_runtime_force_suspend
+  __pm_runtime_idle
+  __pm_runtime_resume
+  pm_runtime_set_autosuspend_delay
+  __pm_runtime_use_autosuspend
+  regulator_disable
+  regulator_enable
+  reset_control_assert
+  reset_control_deassert
+
+# required by slcan.ko
+  capable
+  hex_asc_upper
+  hex_to_bin
+  tty_hangup
+  tty_mode_ioctl
+  tty_register_ldisc
+  tty_unregister_ldisc
+
+# required by gs_usb.ko
+  alloc_candev_mqs
+  alloc_can_err_skb
+  alloc_can_skb
+  can_change_mtu
+  can_free_echo_skb
+  can_get_echo_skb
+  can_put_echo_skb
+  close_candev
+  free_candev
+  open_candev
+  register_candev
+  unregister_candev
+  usb_alloc_coherent
+  usb_free_coherent
+
+# required by vcan.ko
+  sock_efree
+
+# required by e1000.ko
+  csum_ipv6_magic
+  csum_tcpudp_nofold
+  device_set_wakeup_enable
+  dql_completed
+  dql_reset
+  ethtool_convert_legacy_u32_to_link_mode
+  ethtool_convert_link_mode_to_legacy_u32
+  napi_get_frags
+  napi_gro_frags
+  __netdev_alloc_frag_align
+  param_array_ops
+  pci_clear_mwi
+  pci_enable_device_mem
+  pci_enable_wake
+  pci_ioremap_bar
+  pci_read_config_word
+  pci_save_state
+  pci_select_bars
+  pci_set_mwi
+  pci_set_power_state
+  pci_wake_from_d3
+  pcix_get_mmrbc
+  pcix_set_mmrbc
+  system_state
+
+# required by net_failover.ko
+  call_netdevice_notifiers
+  dev_get_stats
+  dev_mc_sync_multiple
+  dev_mc_unsync
+  dev_open
+  dev_set_mtu
+  dev_uc_sync_multiple
+  dev_uc_unsync
+  __ethtool_get_link_ksettings
+  netdev_change_features
+  netdev_increment_features
+  netdev_lower_state_changed
+  netdev_pick_tx
+  pci_bus_type
+  vlan_uses_dev
+  vlan_vid_add
+  vlan_vid_del
+  vlan_vids_add_by_dev
+  vlan_vids_del_by_dev
+
+# required by virtio_net.ko
+  bpf_dispatcher_xdp_func
+  bpf_master_redirect_enabled_key
+  bpf_prog_add
+  bpf_prog_put
+  bpf_prog_sub
+  bpf_stats_enabled_key
+  bpf_warn_invalid_xdp_action
+  cpumask_next_wrap
+  cpus_read_lock
+  cpus_read_unlock
+  eth_commit_mac_addr_change
+  eth_prepare_mac_addr_change
+  ethtool_sprintf
+  ethtool_virtdev_set_link_ksettings
+  flow_keys_basic_dissector
+  napi_consume_skb
+  netdev_notify_peers
+  netif_set_real_num_rx_queues
+  netif_set_real_num_tx_queues
+  __netif_set_xps_queue
+  sched_clock
+  skb_coalesce_rx_frag
+  __skb_flow_dissect
+  skb_page_frag_refill
+  skb_partial_csum_set
+  __traceiter_xdp_exception
+  __tracepoint_xdp_exception
+  virtqueue_add_inbuf_ctx
+  virtqueue_enable_cb_delayed
+  virtqueue_enable_cb_prepare
+  virtqueue_get_buf_ctx
+  virtqueue_poll
+  xdp_convert_zc_to_xdp_frame
+  xdp_do_flush
+  xdp_do_redirect
+  xdp_master_redirect
+  xdp_return_frame
+  xdp_return_frame_rx_napi
+  xdp_rxq_info_reg
+  xdp_rxq_info_reg_mem_model
+  xdp_rxq_info_unreg
+  xdp_warn
+
+# required by mac80211_hwsim.ko
+  device_bind_driver
+  device_release_driver
+  dst_release
+  genl_notify
+  net_namespace_list
+  rhashtable_destroy
+  rhashtable_init
+  schedule_timeout_interruptible
+  __skb_ext_put
+  skb_unlink
+
+# required by mt76-usb.ko
+  usb_init_urb
+  usb_kill_urb
+  usb_poison_urb
+  usb_unpoison_urb
+
+# required by mt76.ko
+  debugfs_create_blob
+  debugfs_create_file_unsafe
+  devm_kmemdup
+  dev_set_threaded
+  init_dummy_netdev
+  __ioread32_copy
+  __iowrite32_copy
+  kthread_parkme
+  kthread_should_park
+  led_classdev_register_ext
+  led_classdev_unregister
+  of_get_child_by_name
+  of_get_mac_address
+  of_get_next_child
+  of_prop_next_string
+  pci_disable_link_state
+  pcie_capability_clear_and_set_word
+  pcie_capability_read_word
+
+# required by mt76x02-lib.ko
+  debugfs_create_bool
+  __kfifo_init
+
+# required by mt76x02-usb.ko
+  hrtimer_active
+  system_highpri_wq
+
+# required by virt_wifi.ko
+  __module_get
+  module_put
+  netdev_upper_dev_link
+  netif_stacked_transfer_operstate
+
+# required by nd_virtio.ko
+  bio_alloc_bioset
+  bio_chain
+  bio_clone_blkg_association
+  fs_bio_set
+  submit_bio
+
+# required by virtio_pmem.ko
+  nvdimm_bus_register
+  nvdimm_bus_unregister
+  nvdimm_pmem_region_create
+
+# required by goldfish_battery.ko
+  power_supply_changed
+  power_supply_get_drvdata
+  power_supply_register
+  power_supply_unregister
+
+# required by rtc-test.ko
+  add_timer
+  devm_rtc_allocate_device
+  __devm_rtc_register_device
+  ktime_get_real_seconds
+  rtc_time64_to_tm
+  rtc_tm_to_time64
+  rtc_update_irq
+
+# required by dummy_hcd.ko
+  ktime_get_ts64
+  strstr
+  usb_add_gadget_udc
+  usb_del_gadget_udc
+  usb_ep_set_maxpacket_limit
+  usb_gadget_giveback_request
+  usb_gadget_udc_reset
+
+# required by usbip-core.ko
+  iov_iter_kvec
+  param_ops_ulong
+  sock_recvmsg
+
+# required by vhci-hcd.ko
+  kernel_sendmsg
+  kernel_sock_shutdown
+  kstrtoll
+  platform_bus
+  sockfd_lookup
+  usb_speed_string
+
+# required by virtio_balloon.ko
+  adjust_managed_page_count
+  all_vm_events
+  balloon_aops
+  balloon_page_alloc
+  balloon_page_dequeue
+  balloon_page_enqueue
+  init_on_free
+  mutex_trylock
+  page_reporting_register
+  page_reporting_unregister
+  register_oom_notifier
+  si_mem_available
+  si_meminfo
+  unregister_oom_notifier
+  vm_event_states
+  vm_node_stat
+
+# required by virtio_mmio.ko
+  device_for_each_child
+  device_register
+  devm_platform_ioremap_resource
+
+# required by virtio_pci.ko
+  irq_set_affinity_hint
+  pci_alloc_irq_vectors_affinity
+  pci_device_is_present
+  pci_disable_sriov
+  pci_enable_sriov
+  pci_find_ext_capability
+  pci_free_irq_vectors
+  pci_iomap
+  pci_irq_get_affinity
+  pci_irq_vector
+  pci_vfs_assigned
+  virtio_device_freeze
+  virtio_device_restore
+
+# required by virtio_pci_modern_dev.ko
+  pci_iomap_range
+
+# required by zsmalloc.ko
+  dec_zone_page_state
+  inc_zone_page_state
+  kstrdup
+  __lock_page
+  page_mapping
+  _raw_read_lock
+  _raw_read_unlock
+  _raw_write_lock
+  _raw_write_unlock
+
+# required by failover.ko
+  netdev_master_upper_dev_link
+
+# required by mac80211.ko
+  __alloc_percpu_gfp
+  arc4_crypt
+  arc4_setkey
+  call_rcu
+  crc32_be
+  crypto_aead_decrypt
+  crypto_aead_encrypt
+  crypto_aead_setauthsize
+  crypto_aead_setkey
+  crypto_alloc_aead
+  crypto_alloc_shash
+  crypto_alloc_skcipher
+  __crypto_memneq
+  crypto_shash_digest
+  crypto_shash_finup
+  crypto_shash_setkey
+  crypto_shash_update
+  crypto_skcipher_decrypt
+  crypto_skcipher_encrypt
+  crypto_skcipher_setkey
+  __crypto_xor
+  dev_fetch_sw_netstats
+  get_random_u32
+  __hw_addr_init
+  __hw_addr_sync
+  __hw_addr_unsync
+  idr_get_next
+  kernel_param_lock
+  kernel_param_unlock
+  kfree_skb_list
+  ktime_get_seconds
+  netdev_set_default_ethtool_ops
+  netif_receive_skb
+  prandom_bytes
+  rb_next
+  rb_prev
+  rcu_barrier
+  register_inet6addr_notifier
+  register_inetaddr_notifier
+  rhashtable_free_and_destroy
+  rhltable_init
+  round_jiffies
+  round_jiffies_relative
+  round_jiffies_up
+  skb_checksum_help
+  skb_clone_sk
+  skb_complete_wifi_ack
+  skb_ensure_writable
+  __skb_get_hash
+  __skb_gso_segment
+  __sw_hweight64
+  tasklet_kill
+  unregister_inet6addr_notifier
+  unregister_inetaddr_notifier
+
+# required by vmw_vsock_virtio_transport.ko
+  sk_error_report
+  virtio_transport_connect
+  virtio_transport_deliver_tap_pkt
+  virtio_transport_destruct
+  virtio_transport_dgram_allow
+  virtio_transport_dgram_bind
+  virtio_transport_dgram_dequeue
+  virtio_transport_dgram_enqueue
+  virtio_transport_do_socket_init
+  virtio_transport_free_pkt
+  virtio_transport_notify_buffer_size
+  virtio_transport_notify_poll_in
+  virtio_transport_notify_poll_out
+  virtio_transport_notify_recv_init
+  virtio_transport_notify_recv_post_dequeue
+  virtio_transport_notify_recv_pre_block
+  virtio_transport_notify_recv_pre_dequeue
+  virtio_transport_notify_send_init
+  virtio_transport_notify_send_post_enqueue
+  virtio_transport_notify_send_pre_block
+  virtio_transport_notify_send_pre_enqueue
+  virtio_transport_recv_pkt
+  virtio_transport_release
+  virtio_transport_seqpacket_dequeue
+  virtio_transport_seqpacket_enqueue
+  virtio_transport_seqpacket_has_data
+  virtio_transport_shutdown
+  virtio_transport_stream_allow
+  virtio_transport_stream_dequeue
+  virtio_transport_stream_enqueue
+  virtio_transport_stream_has_data
+  virtio_transport_stream_has_space
+  virtio_transport_stream_is_active
+  virtio_transport_stream_rcvhiwat
+  vsock_core_register
+  vsock_core_unregister
+  vsock_for_each_connected_socket
+
+# required by cfg80211.ko
+  bpf_trace_run10
+  bpf_trace_run7
+  _ctype
+  debugfs_rename
+  __dev_change_net_namespace
+  dev_get_by_index
+  device_add
+  device_del
+  device_initialize
+  device_rename
+  dev_set_name
+  gcd
+  genlmsg_multicast_allns
+  get_net_ns_by_fd
+  get_net_ns_by_pid
+  inet_csk_get_port
+  init_uts_ns
+  key_create_or_update
+  key_put
+  keyring_alloc
+  ktime_get_coarse_with_offset
+  memcmp
+  net_ns_type_operations
+  nla_find
+  nla_reserve
+  __nla_validate
+  of_prop_next_u32
+  __put_net
+  request_firmware_nowait
+  rfkill_alloc
+  rfkill_blocked
+  rfkill_destroy
+  rfkill_register
+  rfkill_resume_polling
+  rfkill_set_hw_state_reason
+  rfkill_unregister
+  __sock_create
+  sock_release
+  sysfs_create_link
+  system_power_efficient_wq
+  trace_print_array_seq
+  verify_pkcs7_signature
+  wireless_nlevent_flush
+
+# required by virtio_snd.ko
+  snd_card_free
+  snd_card_new
+  snd_card_register
+  snd_jack_new
+  snd_jack_report
+  snd_pcm_add_chmap_ctls
+  snd_pcm_format_physical_width
+  snd_pcm_hw_constraint_integer
+  snd_pcm_lib_ioctl
+  snd_pcm_new
+  snd_pcm_period_elapsed
+  snd_pcm_set_managed_buffer_all
+  snd_pcm_set_ops
+  wait_for_completion_interruptible_timeout
diff --git a/android/abi_gki_aarch64_virtual_device_removed b/android/abi_gki_aarch64_virtual_device_removed
new file mode 100644
index 0000000..f2dc576
--- /dev/null
+++ b/android/abi_gki_aarch64_virtual_device_removed
@@ -0,0 +1,22 @@
+[abi_symbol_list]
+# abi_gki_aarch64_virtual_device contains all the symbols that are used by the
+# virtual device modules. Here goes all the symbols that were used
+# in abi_gki_aarch64_virtual_device but currently retired (e.g Intel HDA).
+  get_device_system_crosststamp
+  snd_card_disconnect
+  snd_component_add
+  _snd_ctl_add_follower
+  snd_ctl_add_vmaster_hook
+  snd_ctl_apply_vmaster_followers
+  snd_ctl_make_virtual_master
+  snd_ctl_remove
+  snd_ctl_sync_vmaster
+  snd_device_disconnect
+  snd_device_new
+  snd_pci_quirk_lookup
+  snd_pci_quirk_lookup_id
+  snd_pcm_hw_limit_rates
+  snd_pcm_set_sync
+  snd_pcm_std_chmaps
+  snd_pcm_suspend_all
+  snd_sgbuf_get_chunk_size
diff --git a/android/abi_gki_aarch64_vivo b/android/abi_gki_aarch64_vivo
new file mode 100644
index 0000000..1dfb93a
--- /dev/null
+++ b/android/abi_gki_aarch64_vivo
@@ -0,0 +1,2795 @@
+[abi_symbol_list]
+  activate_task
+  add_cpu
+  add_device_randomness
+  add_memory
+  add_memory_subsection
+  add_timer
+  add_uevent_var
+  add_wait_queue
+  adjust_managed_page_count
+  aes_encrypt
+  aes_expandkey
+  alarm_cancel
+  alarm_init
+  alarm_start
+  alarm_start_relative
+  alloc_anon_inode
+  alloc_chrdev_region
+  alloc_etherdev_mqs
+  alloc_io_pgtable_ops
+  alloc_netdev_mqs
+  __alloc_pages
+  __alloc_percpu
+  __alloc_percpu_gfp
+  __alloc_skb
+  alloc_skb_with_frags
+  alloc_workqueue
+  amba_bustype
+  amba_driver_register
+  amba_driver_unregister
+  android_debug_for_each_module
+  android_debug_per_cpu_symbol
+  android_debug_symbol
+  android_rvh_probe_register
+  anon_inode_getfile
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arch_freq_scale
+  arch_timer_read_counter
+  argv_free
+  argv_split
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  __arm_smccc_smc
+  __arm_smccc_sve_check
+  atomic_notifier_call_chain
+  atomic_notifier_chain_register
+  atomic_notifier_chain_unregister
+  autoremove_wake_function
+  available_idle_cpu
+  backlight_device_get_by_type
+  backlight_device_register
+  backlight_device_set_brightness
+  backlight_device_unregister
+  balance_push_callback
+  bcmp
+  bio_add_page
+  bio_associate_blkg
+  bio_endio
+  bio_end_io_acct_remapped
+  bio_init
+  bio_start_io_acct
+  bitmap_allocate_region
+  __bitmap_clear
+  bitmap_find_next_zero_area_off
+  __bitmap_or
+  bitmap_print_to_pagebuf
+  bitmap_release_region
+  __bitmap_set
+  __blk_alloc_disk
+  blk_bio_list_merge
+  blkcg_policy_register
+  blkcg_policy_unregister
+  blk_cleanup_disk
+  blkdev_get_by_dev
+  blkdev_issue_flush
+  blkdev_put
+  blk_execute_rq_nowait
+  blk_get_request
+  blk_mq_debugfs_rq_show
+  blk_mq_rq_cpu
+  blk_mq_run_hw_queue
+  blk_put_request
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_write_zeroes_sectors
+  blk_queue_physical_block_size
+  blk_rq_map_user
+  blk_rq_map_user_iov
+  blk_rq_unmap_user
+  blk_stat_enable_accounting
+  blocking_notifier_call_chain
+  blocking_notifier_chain_register
+  blocking_notifier_chain_unregister
+  bpf_trace_run10
+  bpf_trace_run11
+  bpf_trace_run12
+  bpf_trace_run1
+  bpf_trace_run2
+  bpf_trace_run3
+  bpf_trace_run4
+  bpf_trace_run5
+  bpf_trace_run6
+  bpf_trace_run7
+  bpf_trace_run8
+  bpf_trace_run9
+  build_skb
+  bus_find_device
+  bus_for_each_dev
+  bus_register
+  bus_set_iommu
+  bus_unregister
+  cache_line_size
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  cancel_work_sync
+  capable
+  cdev_add
+  cdev_alloc
+  cdev_del
+  cdev_device_add
+  cdev_device_del
+  cdev_init
+  __cfi_slowpath_diag
+  cgroup_taskset_first
+  cgroup_taskset_next
+  __check_object_size
+  check_preempt_curr
+  check_zeroed_user
+  __class_create
+  class_create_file_ns
+  class_destroy
+  class_find_device
+  class_for_each_device
+  class_interface_unregister
+  __class_register
+  class_remove_file_ns
+  class_unregister
+  cleanup_srcu_struct
+  clear_page
+  __ClearPageMovable
+  clk_bulk_disable
+  clk_bulk_enable
+  clk_bulk_prepare
+  clk_bulk_put_all
+  clk_bulk_unprepare
+  __clk_determine_rate
+  clk_disable
+  clk_enable
+  clk_fixed_factor_ops
+  clk_fixed_rate_ops
+  clk_get
+  __clk_get_hw
+  __clk_get_name
+  clk_get_parent
+  clk_get_rate
+  clk_hw_get_flags
+  clk_hw_get_name
+  clk_hw_get_num_parents
+  clk_hw_get_parent
+  clk_hw_get_parent_by_index
+  clk_hw_get_rate
+  clk_hw_is_enabled
+  clk_hw_is_prepared
+  clk_hw_register
+  clk_hw_round_rate
+  clk_hw_unregister
+  __clk_is_enabled
+  __clk_mux_determine_rate_closest
+  clk_notifier_register
+  clk_notifier_unregister
+  clk_prepare
+  clk_put
+  clk_register
+  clk_round_rate
+  clk_set_parent
+  clk_set_rate
+  clk_sync_state
+  clk_unprepare
+  close_fd
+  cma_alloc
+  cma_get_name
+  cma_release
+  compat_ptr_ioctl
+  complete
+  complete_all
+  complete_and_exit
+  completion_done
+  component_add
+  component_bind_all
+  component_del
+  component_master_add_with_match
+  component_master_del
+  component_match_add_release
+  component_unbind_all
+  config_ep_by_speed
+  configfs_register_group
+  configfs_register_subsystem
+  configfs_unregister_subsystem
+  config_group_init
+  config_group_init_type_name
+  config_item_get
+  config_item_put
+  config_item_set_name
+  console_stop
+  console_suspend_enabled
+  __const_udelay
+  consume_skb
+  contig_page_data
+  _copy_from_iter
+  copy_from_kernel_nofault
+  __cpu_active_mask
+  cpu_bit_bitmap
+  cpufreq_cpu_get
+  cpufreq_cpu_get_raw
+  cpufreq_cpu_put
+  cpufreq_disable_fast_switch
+  cpufreq_driver_fast_switch
+  cpufreq_driver_resolve_freq
+  __cpufreq_driver_target
+  cpufreq_enable_boost_support
+  cpufreq_enable_fast_switch
+  cpufreq_freq_attr_scaling_available_freqs
+  cpufreq_freq_attr_scaling_boost_freqs
+  cpufreq_generic_frequency_table_verify
+  cpufreq_get_driver_data
+  cpufreq_get_policy
+  cpufreq_quick_get_max
+  cpufreq_register_driver
+  cpufreq_register_governor
+  cpufreq_register_notifier
+  cpufreq_unregister_driver
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  __cpuhp_setup_state_cpuslocked
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpuidle_governor_latency_req
+  cpuidle_register_governor
+  cpu_irqtime
+  cpu_latency_qos_add_request
+  cpu_latency_qos_remove_request
+  cpu_latency_qos_request_active
+  cpu_latency_qos_update_request
+  cpumask_any_and_distribute
+  cpumask_next
+  cpumask_next_and
+  cpu_number
+  __cpu_online_mask
+  cpu_pm_register_notifier
+  cpu_pm_unregister_notifier
+  __cpu_possible_mask
+  __cpu_present_mask
+  cpupri_find_fitness
+  cpu_scale
+  cpus_read_lock
+  cpus_read_unlock
+  cpu_subsys
+  cpu_topology
+  crc32_le
+  crc8
+  crc8_populate_msb
+  crypto_aead_encrypt
+  crypto_aead_setauthsize
+  crypto_aead_setkey
+  crypto_ahash_digest
+  crypto_ahash_setkey
+  crypto_alloc_aead
+  crypto_alloc_ahash
+  crypto_alloc_base
+  crypto_alloc_shash
+  crypto_alloc_skcipher
+  crypto_alloc_sync_skcipher
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_dequeue_request
+  crypto_destroy_tfm
+  crypto_enqueue_request
+  crypto_has_alg
+  crypto_init_queue
+  crypto_register_aead
+  crypto_register_ahash
+  crypto_register_rngs
+  crypto_register_skcipher
+  crypto_shash_final
+  crypto_shash_setkey
+  crypto_shash_update
+  crypto_skcipher_decrypt
+  crypto_skcipher_encrypt
+  crypto_skcipher_setkey
+  crypto_unregister_aead
+  crypto_unregister_ahash
+  crypto_unregister_rngs
+  crypto_unregister_skcipher
+  css_next_child
+  csum_ipv6_magic
+  csum_partial
+  csum_tcpudp_nofold
+  _ctype
+  datagram_poll
+  deactivate_task
+  debugfs_attr_read
+  debugfs_attr_write
+  debugfs_create_atomic_t
+  debugfs_create_blob
+  debugfs_create_bool
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_create_file_unsafe
+  debugfs_create_symlink
+  debugfs_create_u16
+  debugfs_create_u32
+  debugfs_create_u64
+  debugfs_create_u8
+  debugfs_create_ulong
+  debugfs_create_x32
+  debugfs_create_x64
+  debugfs_create_x8
+  debugfs_file_get
+  debugfs_file_put
+  debugfs_lookup
+  debugfs_remove
+  dec_node_page_state
+  dec_zone_page_state
+  default_llseek
+  default_wake_function
+  deferred_free
+  delayed_work_timer_fn
+  del_gendisk
+  del_timer
+  del_timer_sync
+  dentry_path_raw
+  destroy_workqueue
+  dev_alloc_name
+  dev_coredumpm
+  dev_coredumpv
+  _dev_crit
+  dev_driver_string
+  _dev_err
+  dev_err_probe
+  devfreq_add_device
+  devfreq_add_governor
+  devfreq_cooling_unregister
+  devfreq_get_devfreq_by_node
+  devfreq_remove_device
+  devfreq_remove_governor
+  devfreq_resume_device
+  devfreq_suspend_device
+  dev_fwnode
+  __dev_get_by_index
+  dev_get_by_name
+  dev_get_by_name_rcu
+  dev_get_regmap
+  device_add
+  device_add_disk
+  device_add_groups
+  device_create
+  device_create_bin_file
+  device_create_file
+  device_create_with_groups
+  device_del
+  device_destroy
+  device_find_child
+  device_for_each_child
+  device_get_match_data
+  device_initialize
+  device_init_wakeup
+  device_link_add
+  device_match_fwnode
+  device_match_name
+  device_property_present
+  device_property_read_string
+  device_property_read_u16_array
+  device_property_read_u32_array
+  device_register
+  device_remove_bin_file
+  device_remove_file
+  device_show_int
+  device_store_int
+  device_unregister
+  device_wakeup_disable
+  _dev_info
+  __dev_kfree_skb_any
+  devm_add_action
+  devm_blk_ksm_init
+  devm_clk_bulk_get
+  devm_clk_bulk_get_all
+  devm_clk_get
+  devm_clk_get_optional
+  devm_clk_hw_register
+  devm_clk_put
+  devm_clk_register
+  devm_device_add_group
+  devm_device_remove_group
+  devm_extcon_dev_allocate
+  devm_extcon_dev_register
+  devm_extcon_dev_unregister
+  devm_free_irq
+  devm_gpiod_get_optional
+  devm_gpiod_put
+  devm_gpio_free
+  devm_gpio_request
+  devm_gpio_request_one
+  devm_hwspin_lock_register
+  devm_iio_channel_get
+  devm_iio_device_alloc
+  __devm_iio_device_register
+  devm_input_allocate_device
+  devm_ioremap
+  devm_ioremap_resource
+  devm_ioremap_wc
+  devm_iounmap
+  devm_kasprintf
+  devm_kfree
+  devm_kmalloc
+  devm_kmemdup
+  devm_krealloc
+  devm_kstrdup
+  devm_led_classdev_register_ext
+  devm_nvmem_cell_get
+  devm_nvmem_device_get
+  devm_nvmem_register
+  devm_of_clk_add_hw_provider
+  devm_of_icc_get
+  __devm_of_phy_provider_register
+  devm_of_platform_populate
+  devm_of_pwm_get
+  devm_pci_alloc_host_bridge
+  devm_phy_create
+  devm_phy_get
+  devm_pinctrl_get
+  devm_pinctrl_put
+  devm_pinctrl_register
+  devm_platform_get_and_ioremap_resource
+  devm_platform_ioremap_resource
+  devm_platform_ioremap_resource_byname
+  devm_power_supply_register
+  devm_regmap_add_irq_chip
+  devm_regmap_del_irq_chip
+  devm_regmap_field_alloc
+  __devm_regmap_init
+  __devm_regmap_init_i2c
+  __devm_regmap_init_mmio_clk
+  devm_regulator_bulk_get
+  devm_regulator_get
+  devm_regulator_get_optional
+  devm_regulator_put
+  devm_regulator_register
+  devm_regulator_register_notifier
+  devm_request_any_context_irq
+  __devm_request_region
+  devm_request_threaded_irq
+  __devm_reset_control_get
+  devm_reset_controller_register
+  devm_rtc_allocate_device
+  __devm_rtc_register_device
+  devm_snd_soc_register_card
+  devm_snd_soc_register_component
+  devm_thermal_of_cooling_device_register
+  devm_thermal_zone_of_sensor_register
+  devm_usb_get_phy_by_node
+  devm_usb_get_phy_by_phandle
+  _dev_notice
+  dev_pm_domain_attach
+  dev_pm_domain_attach_by_name
+  dev_pm_domain_detach
+  dev_pm_genpd_add_notifier
+  dev_pm_genpd_remove_notifier
+  dev_pm_genpd_set_next_wakeup
+  dev_pm_genpd_set_performance_state
+  dev_pm_opp_add
+  dev_pm_opp_adjust_voltage
+  dev_pm_opp_disable
+  dev_pm_opp_enable
+  dev_pm_opp_find_freq_ceil
+  dev_pm_opp_find_freq_exact
+  dev_pm_opp_find_freq_floor
+  dev_pm_opp_get_opp_count
+  dev_pm_opp_get_voltage
+  dev_pm_opp_of_add_table
+  dev_pm_opp_of_cpumask_remove_table
+  dev_pm_opp_of_find_icc_paths
+  dev_pm_opp_of_register_em
+  dev_pm_opp_of_remove_table
+  dev_pm_opp_put
+  dev_pm_opp_put_clkname
+  dev_pm_opp_remove_all_dynamic
+  dev_pm_opp_set_clkname
+  dev_pm_opp_set_opp
+  dev_pm_opp_set_rate
+  dev_pm_opp_set_sharing_cpus
+  dev_pm_qos_add_notifier
+  dev_pm_qos_add_request
+  dev_pm_qos_remove_notifier
+  dev_pm_qos_remove_request
+  dev_pm_qos_update_request
+  _dev_printk
+  dev_queue_xmit
+  devres_add
+  __devres_alloc_node
+  devres_free
+  devres_release
+  dev_set_name
+  _dev_warn
+  disable_irq
+  disable_irq_nosync
+  disable_percpu_irq
+  disk_end_io_acct
+  disk_start_io_acct
+  divider_get_val
+  divider_recalc_rate
+  divider_ro_round_rate_parent
+  divider_round_rate_parent
+  dma_alloc_attrs
+  dma_alloc_pages
+  dma_async_device_register
+  dma_async_device_unregister
+  dma_async_tx_descriptor_init
+  dma_buf_attach
+  dma_buf_begin_cpu_access
+  dma_buf_begin_cpu_access_partial
+  dma_buf_detach
+  dma_buf_end_cpu_access
+  dma_buf_end_cpu_access_partial
+  dma_buf_export
+  dma_buf_fd
+  dma_buf_get
+  dma_buf_get_flags
+  dma_buf_map_attachment
+  dma_buf_put
+  dma_buf_unmap_attachment
+  dma_buf_vmap
+  dma_buf_vunmap
+  dma_contiguous_default_area
+  dma_fence_add_callback
+  dma_fence_array_create
+  dma_fence_array_ops
+  dma_fence_context_alloc
+  dma_fence_default_wait
+  dma_fence_enable_sw_signaling
+  dma_fence_free
+  dma_fence_get_status
+  dma_fence_init
+  dma_fence_release
+  dma_fence_remove_callback
+  dma_fence_signal
+  dma_fence_signal_locked
+  dma_fence_signal_timestamp_locked
+  dma_fence_wait_timeout
+  dma_free_attrs
+  dma_free_pages
+  dma_get_sgtable_attrs
+  dma_get_slave_channel
+  dma_heap_add
+  dma_heap_buffer_alloc
+  dma_heap_buffer_free
+  dma_heap_find
+  dma_heap_get_dev
+  dma_heap_get_drvdata
+  dma_heap_get_name
+  dmam_alloc_attrs
+  dma_map_page_attrs
+  dma_map_resource
+  dma_map_sg_attrs
+  dma_map_sgtable
+  dmam_free_coherent
+  dma_mmap_attrs
+  dma_release_channel
+  dma_request_chan
+  dma_resv_fini
+  dma_resv_init
+  dma_resv_wait_timeout
+  dma_set_coherent_mask
+  dma_set_mask
+  dma_sync_sg_for_cpu
+  dma_sync_sg_for_device
+  dma_sync_single_for_cpu
+  dma_sync_single_for_device
+  dma_unmap_page_attrs
+  dma_unmap_resource
+  dma_unmap_sg_attrs
+  do_exit
+  do_trace_netlink_extack
+  double_rq_lock
+  do_wait_intr
+  down
+  down_interruptible
+  down_read
+  down_timeout
+  down_write
+  d_path
+  dput
+  drain_workqueue
+  driver_find_device
+  driver_register
+  driver_unregister
+  drm_add_edid_modes
+  drm_add_modes_noedid
+  drm_atomic_commit
+  drm_atomic_get_connector_state
+  drm_atomic_get_crtc_state
+  drm_atomic_get_plane_state
+  drm_atomic_get_private_obj_state
+  drm_atomic_helper_check
+  drm_atomic_helper_cleanup_planes
+  drm_atomic_helper_commit_duplicated_state
+  drm_atomic_helper_commit_hw_done
+  drm_atomic_helper_commit_modeset_disables
+  drm_atomic_helper_commit_modeset_enables
+  drm_atomic_helper_commit_planes
+  __drm_atomic_helper_connector_destroy_state
+  __drm_atomic_helper_connector_duplicate_state
+  __drm_atomic_helper_connector_reset
+  __drm_atomic_helper_crtc_destroy_state
+  __drm_atomic_helper_crtc_duplicate_state
+  drm_atomic_helper_dirtyfb
+  drm_atomic_helper_disable_plane
+  drm_atomic_helper_duplicate_state
+  drm_atomic_helper_page_flip
+  __drm_atomic_helper_plane_duplicate_state
+  drm_atomic_helper_prepare_planes
+  __drm_atomic_helper_private_obj_duplicate_state
+  drm_atomic_helper_set_config
+  drm_atomic_helper_shutdown
+  drm_atomic_helper_swap_state
+  drm_atomic_helper_update_legacy_modeset_state
+  drm_atomic_helper_update_plane
+  drm_atomic_helper_wait_for_fences
+  drm_atomic_helper_wait_for_vblanks
+  drm_atomic_private_obj_init
+  drm_atomic_set_crtc_for_connector
+  drm_atomic_set_crtc_for_plane
+  drm_atomic_set_fb_for_plane
+  drm_atomic_set_fence_for_plane
+  drm_atomic_set_mode_for_crtc
+  drm_atomic_state_alloc
+  drm_atomic_state_clear
+  drm_atomic_state_default_clear
+  drm_atomic_state_default_release
+  __drm_atomic_state_free
+  drm_atomic_state_init
+  drm_bridge_attach
+  drm_bridge_chain_disable
+  drm_bridge_chain_enable
+  drm_bridge_chain_mode_set
+  drm_bridge_chain_post_disable
+  drm_bridge_chain_pre_enable
+  drm_client_init
+  drm_client_modeset_commit_locked
+  drm_client_register
+  drm_compat_ioctl
+  drm_connector_attach_encoder
+  drm_connector_cleanup
+  drm_connector_init
+  drm_connector_list_iter_begin
+  drm_connector_list_iter_end
+  drm_connector_list_iter_next
+  drm_connector_unregister
+  drm_connector_update_edid_property
+  drm_crtc_cleanup
+  drm_crtc_handle_vblank
+  drm_crtc_init_with_planes
+  drm_crtc_send_vblank_event
+  drm_crtc_set_max_vblank_count
+  drm_crtc_vblank_off
+  drm_crtc_vblank_on
+  drm_crtc_vblank_reset
+  drm_crtc_wait_one_vblank
+  __drm_dbg
+  __drm_debug
+  drm_detect_hdmi_monitor
+  drm_detect_monitor_audio
+  drm_dev_alloc
+  drm_dev_dbg
+  drm_dev_printk
+  drm_dev_put
+  drm_dev_register
+  drm_dev_unregister
+  drm_dp_atomic_find_vcpi_slots
+  drm_dp_atomic_release_vcpi_slots
+  drm_dp_aux_register
+  drm_dp_aux_unregister
+  drm_dp_bw_code_to_link_rate
+  drm_dp_calc_pbn_mode
+  drm_dp_channel_eq_ok
+  drm_dp_check_act_status
+  drm_dp_clock_recovery_ok
+  drm_dp_dpcd_read
+  drm_dp_dpcd_read_link_status
+  drm_dp_dpcd_write
+  drm_dp_find_vcpi_slots
+  drm_dp_get_adjust_request_pre_emphasis
+  drm_dp_get_adjust_request_voltage
+  drm_dp_link_rate_to_bw_code
+  drm_dp_link_train_channel_eq_delay
+  drm_dp_link_train_clock_recovery_delay
+  drm_dp_mst_allocate_vcpi
+  drm_dp_mst_deallocate_vcpi
+  drm_dp_mst_detect_port
+  drm_dp_mst_get_edid
+  drm_dp_mst_get_port_malloc
+  drm_dp_mst_hpd_irq
+  drm_dp_mst_put_port_malloc
+  drm_dp_mst_reset_vcpi_slots
+  drm_dp_mst_topology_mgr_destroy
+  drm_dp_mst_topology_mgr_init
+  drm_dp_mst_topology_mgr_set_mst
+  drm_dp_send_power_updown_phy
+  drm_dp_update_payload_part1
+  drm_dp_update_payload_part2
+  drm_edid_duplicate
+  drm_encoder_cleanup
+  drm_encoder_init
+  __drm_err
+  drm_event_reserve_init_locked
+  drm_format_info
+  drm_framebuffer_init
+  drm_framebuffer_lookup
+  drm_framebuffer_remove
+  drm_framebuffer_unregister_private
+  drm_gem_create_mmap_offset
+  drm_gem_fb_create_handle
+  drm_gem_fb_destroy
+  drm_gem_fb_get_obj
+  drm_gem_get_pages
+  drm_gem_handle_create
+  drm_gem_mmap
+  drm_gem_mmap_obj
+  drm_gem_object_free
+  drm_gem_object_init
+  drm_gem_object_lookup
+  drm_gem_object_release
+  drm_gem_prime_fd_to_handle
+  drm_gem_prime_handle_to_fd
+  drm_gem_private_object_init
+  drm_gem_put_pages
+  drm_gem_vm_close
+  drm_gem_vm_open
+  drm_get_connector_status_name
+  drm_get_edid
+  drm_get_format_info
+  drm_helper_hpd_irq_event
+  drm_helper_mode_fill_fb_struct
+  drm_helper_probe_single_connector_modes
+  drm_ioctl
+  drm_is_current_master
+  drm_kms_helper_hotplug_event
+  drm_kms_helper_poll_disable
+  drm_kms_helper_poll_enable
+  drm_kms_helper_poll_fini
+  drm_kms_helper_poll_init
+  drm_mm_init
+  drm_mm_insert_node_in_range
+  drmm_mode_config_init
+  drm_mm_remove_node
+  drm_mm_takedown
+  drm_mode_config_cleanup
+  drm_mode_config_reset
+  drm_mode_convert_umode
+  drm_mode_copy
+  drm_mode_create
+  drm_mode_create_dp_colorspace_property
+  drm_mode_debug_printmodeline
+  drm_mode_duplicate
+  drm_mode_equal
+  drm_mode_is_420_only
+  drm_mode_match
+  drm_mode_object_find
+  drm_mode_object_get
+  drm_mode_object_put
+  drm_mode_probed_add
+  drm_modeset_acquire_fini
+  drm_modeset_acquire_init
+  drm_modeset_backoff
+  drm_mode_set_crtcinfo
+  drm_modeset_drop_locks
+  drm_modeset_lock
+  drm_modeset_lock_all
+  drm_modeset_lock_all_ctx
+  drm_mode_set_name
+  drm_modeset_unlock_all
+  drm_mode_vrefresh
+  drm_object_attach_property
+  drm_object_property_set_value
+  drm_of_component_match_add
+  drm_open
+  drm_panel_add
+  drm_panel_init
+  drm_panel_remove
+  drm_plane_cleanup
+  drm_plane_create_rotation_property
+  drm_poll
+  drm_prime_gem_destroy
+  drm_prime_pages_to_sg
+  drm_printf
+  __drm_printfn_coredump
+  drm_property_blob_get
+  drm_property_blob_put
+  drm_property_create
+  drm_property_create_bitmask
+  drm_property_create_blob
+  drm_property_create_enum
+  drm_property_create_range
+  drm_property_lookup_blob
+  __drm_puts_coredump
+  drm_read
+  drm_release
+  drm_rotation_simplify
+  drm_send_event_locked
+  drm_set_preferred_mode
+  drm_universal_plane_init
+  drm_vblank_init
+  drm_wait_one_vblank
+  dst_release
+  dump_stack
+  edac_device_add_device
+  edac_device_alloc_ctl_info
+  edac_device_alloc_index
+  edac_device_del_device
+  edac_device_free_ctl_info
+  edac_device_handle_ce_count
+  edac_device_handle_ue_count
+  elevator_alloc
+  elv_register
+  elv_unregister
+  enable_irq
+  enable_percpu_irq
+  ether_setup
+  eth_mac_addr
+  eth_type_trans
+  eventfd_ctx_fdget
+  eventfd_ctx_fileget
+  eventfd_ctx_put
+  eventfd_ctx_remove_wait_queue
+  eventfd_signal
+  event_triggers_call
+  extcon_get_edev_by_phandle
+  extcon_get_edev_name
+  extcon_get_property
+  extcon_get_state
+  extcon_register_notifier
+  extcon_set_state_sync
+  fasync_helper
+  __fdget
+  fd_install
+  fget
+  _find_first_bit
+  _find_first_zero_bit
+  find_get_pid
+  _find_next_bit
+  __find_vma
+  find_vpid
+  finish_wait
+  firmware_request_nowarn
+  flush_dcache_page
+  flush_delayed_work
+  flush_work
+  flush_workqueue
+  for_each_kernel_tracepoint
+  fput
+  free_io_pgtable_ops
+  free_irq
+  free_netdev
+  __free_pages
+  free_pages
+  free_percpu
+  free_percpu_irq
+  freq_qos_add_request
+  freq_qos_remove_request
+  freq_qos_update_request
+  fsync_bdev
+  fwnode_find_reference
+  fwnode_get_next_child_node
+  fwnode_handle_get
+  fwnode_handle_put
+  fwnode_property_present
+  fwnode_property_read_string
+  fwnode_property_read_u32_array
+  generic_device_group
+  generic_file_llseek
+  generic_handle_domain_irq
+  generic_handle_irq
+  generic_iommu_put_resv_regions
+  geni_icc_disable
+  geni_icc_enable
+  geni_icc_get
+  geni_icc_set_bw
+  geni_se_clk_freq_match
+  geni_se_config_packing
+  geni_se_get_qup_hw_version
+  geni_se_init
+  geni_se_resources_off
+  geni_se_resources_on
+  geni_se_rx_dma_prep
+  geni_se_rx_dma_unprep
+  geni_se_select_mode
+  geni_se_tx_dma_prep
+  geni_se_tx_dma_unprep
+  genlmsg_put
+  genl_register_family
+  genl_unregister_family
+  gen_pool_add_owner
+  gen_pool_alloc_algo_owner
+  gen_pool_avail
+  gen_pool_best_fit
+  gen_pool_create
+  gen_pool_destroy
+  gen_pool_first_fit_order_align
+  gen_pool_free_owner
+  gen_pool_has_addr
+  gen_pool_set_algo
+  gen_pool_size
+  gen_pool_virt_to_phys
+  getboottime64
+  get_cpu_device
+  get_device
+  get_each_dmabuf
+  get_each_object_track
+  __get_free_pages
+  get_governor_parent_kobj
+  get_option
+  get_page_owner_handle
+  get_pid_task
+  get_random_bytes
+  get_random_u32
+  get_sg_io_hdr
+  get_slabinfo
+  __get_task_comm
+  get_task_mm
+  get_task_pid
+  get_unmapped_area
+  get_unused_fd_flags
+  get_user_ifreq
+  get_user_pages
+  get_zeroed_page
+  gic_nonsecure_priorities
+  gic_resume
+  gov_attr_set_init
+  gov_attr_set_put
+  governor_sysfs_ops
+  gpiochip_add_data_with_key
+  gpiochip_add_pin_range
+  gpiochip_generic_free
+  gpiochip_generic_request
+  gpiochip_get_data
+  gpiochip_line_is_valid
+  gpiochip_lock_as_irq
+  gpiochip_remove
+  gpiochip_unlock_as_irq
+  gpiod_direction_input
+  gpiod_direction_output
+  gpiod_direction_output_raw
+  gpiod_get_optional
+  gpiod_get_raw_value
+  gpiod_get_raw_value_cansleep
+  gpiod_get_value
+  gpiod_set_raw_value
+  gpiod_set_raw_value_cansleep
+  gpiod_set_value
+  gpiod_set_value_cansleep
+  gpiod_to_irq
+  gpio_free
+  gpio_free_array
+  gpio_request
+  gpio_request_one
+  gpio_to_desc
+  gro_cells_destroy
+  gro_cells_init
+  gro_cells_receive
+  handle_bad_irq
+  handle_edge_irq
+  handle_fasteoi_ack_irq
+  handle_fasteoi_irq
+  handle_level_irq
+  handle_nested_irq
+  handle_simple_irq
+  handle_sysrq
+  hashlen_string
+  hex2bin
+  hex_dump_to_buffer
+  hex_to_bin
+  housekeeping_cpumask
+  housekeeping_overridden
+  housekeeping_test_cpu
+  hrtimer_active
+  hrtimer_cancel
+  hrtimer_forward
+  __hrtimer_get_remaining
+  hrtimer_init
+  hrtimer_start_range_ns
+  hrtimer_try_to_cancel
+  hvc_alloc
+  hvc_kick
+  hvc_poll
+  hvc_remove
+  hwrng_register
+  hwrng_unregister
+  hwspin_lock_free
+  hwspin_lock_request_specific
+  __hwspin_lock_timeout
+  __hwspin_unlock
+  hypervisor_kobj
+  i2c_add_adapter
+  i2c_bus_type
+  i2c_del_adapter
+  i2c_del_driver
+  i2c_get_dma_safe_msg_buf
+  i2c_put_dma_safe_msg_buf
+  i2c_register_driver
+  i2c_smbus_read_byte_data
+  i2c_smbus_write_byte_data
+  i2c_transfer
+  i2c_transfer_buffer_flags
+  i2c_unregister_device
+  i3c_generic_ibi_alloc_pool
+  i3c_generic_ibi_free_pool
+  i3c_generic_ibi_get_free_slot
+  i3c_generic_ibi_recycle_slot
+  i3c_master_add_i3c_dev_locked
+  i3c_master_disec_locked
+  i3c_master_do_daa
+  i3c_master_enec_locked
+  i3c_master_entdaa_locked
+  i3c_master_get_free_addr
+  i3c_master_queue_ibi
+  i3c_master_register
+  i3c_master_set_info
+  i3c_master_unregister
+  icc_get
+  icc_link_create
+  icc_node_add
+  icc_node_create
+  icc_nodes_remove
+  icc_provider_add
+  icc_provider_del
+  icc_put
+  icc_set_bw
+  icc_set_tag
+  ida_alloc_range
+  ida_free
+  idr_alloc
+  idr_alloc_cyclic
+  idr_alloc_u32
+  idr_destroy
+  idr_find
+  idr_for_each
+  idr_get_next
+  idr_preload
+  idr_remove
+  idr_replace
+  iio_channel_get
+  iio_read_channel_processed
+  import_iovec
+  in4_pton
+  in6_pton
+  inc_node_page_state
+  inc_zone_page_state
+  in_egroup_p
+  init_dummy_netdev
+  init_iova_domain
+  init_net
+  init_pseudo
+  __init_rwsem
+  init_srcu_struct
+  __init_swait_queue_head
+  init_task
+  init_timer_key
+  init_uts_ns
+  init_wait_entry
+  __init_waitqueue_head
+  input_allocate_device
+  input_close_device
+  input_event
+  input_ff_create
+  input_ff_destroy
+  input_free_device
+  input_mt_destroy_slots
+  input_mt_init_slots
+  input_mt_report_slot_state
+  input_mt_sync_frame
+  input_open_device
+  input_register_device
+  input_register_handle
+  input_register_handler
+  input_set_abs_params
+  input_set_capability
+  input_unregister_device
+  input_unregister_handle
+  input_unregister_handler
+  interval_tree_insert
+  interval_tree_iter_first
+  interval_tree_iter_next
+  interval_tree_remove
+  int_sqrt
+  iomem_resource
+  iommu_alloc_resv_region
+  iommu_attach_device
+  iommu_detach_device
+  iommu_device_register
+  iommu_device_sysfs_add
+  iommu_device_sysfs_remove
+  iommu_device_unregister
+  iommu_dma_get_resv_regions
+  iommu_domain_alloc
+  iommu_domain_free
+  iommu_fwspec_add_ids
+  iommu_fwspec_free
+  iommu_get_domain_for_dev
+  iommu_get_msi_cookie
+  iommu_group_for_each_dev
+  iommu_group_get
+  iommu_group_get_iommudata
+  iommu_group_put
+  iommu_group_ref_get
+  iommu_group_set_iommudata
+  iommu_iova_to_phys
+  iommu_map
+  iommu_map_sg
+  iommu_present
+  iommu_put_dma_cookie
+  iommu_set_fault_handler
+  iommu_set_pgtable_quirks
+  iommu_unmap
+  __ioread32_copy
+  __ioremap
+  iounmap
+  iov_iter_revert
+  __iowrite32_copy
+  ip_compute_csum
+  ipi_desc_get
+  ip_route_output_flow
+  iput
+  __ipv6_addr_type
+  ipv6_ext_hdr
+  ipv6_skip_exthdr
+  ipv6_stub
+  irq_check_status_bit
+  irq_chip_ack_parent
+  irq_chip_disable_parent
+  irq_chip_enable_parent
+  irq_chip_eoi_parent
+  irq_chip_get_parent_state
+  irq_chip_mask_parent
+  irq_chip_retrigger_hierarchy
+  irq_chip_set_affinity_parent
+  irq_chip_set_parent_state
+  irq_chip_set_type_parent
+  irq_chip_set_vcpu_affinity_parent
+  irq_chip_set_wake_parent
+  irq_chip_unmask_parent
+  irq_create_fwspec_mapping
+  irq_create_mapping_affinity
+  irq_dispose_mapping
+  __irq_domain_add
+  irq_domain_alloc_irqs_parent
+  irq_domain_create_hierarchy
+  irq_domain_disconnect_hierarchy
+  irq_domain_free_irqs_common
+  irq_domain_free_irqs_parent
+  irq_domain_get_irq_data
+  irq_domain_remove
+  irq_domain_set_hwirq_and_chip
+  irq_domain_set_info
+  irq_domain_update_bus_token
+  irq_domain_xlate_onecell
+  irq_domain_xlate_twocell
+  irq_find_matching_fwspec
+  irq_get_irqchip_state
+  irq_get_irq_data
+  irq_modify_status
+  irq_of_parse_and_map
+  __irq_resolve_mapping
+  irq_set_affinity_hint
+  irq_set_affinity_notifier
+  irq_set_chained_handler_and_data
+  irq_set_chip_and_handler_name
+  irq_set_chip_data
+  irq_set_irqchip_state
+  irq_set_irq_type
+  irq_set_irq_wake
+  irq_set_parent
+  irq_to_desc
+  irq_work_queue
+  irq_work_queue_on
+  irq_work_sync
+  is_dma_buf_file
+  is_vmalloc_addr
+  iterate_fd
+  jiffies
+  jiffies_to_msecs
+  jiffies_to_usecs
+  kasan_flag_enabled
+  kasprintf
+  kernel_bind
+  kernel_connect
+  kernel_getsockname
+  kernel_kobj
+  kernel_power_off
+  kernel_recvmsg
+  kernel_restart
+  kernel_sendmsg
+  kernfs_find_and_get_ns
+  kernfs_notify
+  kernfs_put
+  kern_mount
+  kern_unmount
+  __kfifo_alloc
+  __kfifo_free
+  __kfifo_in
+  __kfifo_out
+  __kfifo_to_user
+  kfree
+  kfree_const
+  kfree_sensitive
+  kfree_skb
+  kfree_skb_list
+  kick_all_cpus_sync
+  kill_anon_super
+  kill_fasync
+  kimage_vaddr
+  kimage_voffset
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order_trace
+  kmem_cache_alloc
+  kmem_cache_alloc_trace
+  kmem_cache_create
+  kmem_cache_create_usercopy
+  kmem_cache_destroy
+  kmem_cache_free
+  kmemdup
+  kmsg_dump_get_buffer
+  kmsg_dump_register
+  kmsg_dump_rewind
+  kmsg_dump_unregister
+  kobject_add
+  kobject_create_and_add
+  kobject_del
+  kobject_init
+  kobject_init_and_add
+  kobject_put
+  kobject_set_name
+  kobject_uevent
+  kobject_uevent_env
+  kobj_sysfs_ops
+  krealloc
+  kset_create_and_add
+  kset_find_obj
+  kset_unregister
+  ksize
+  ksoftirqd
+  kstat
+  kstat_irqs_cpu
+  kstat_irqs_usr
+  kstrdup
+  kstrdup_const
+  kstrndup
+  kstrtobool
+  kstrtoint
+  kstrtoint_from_user
+  kstrtoll
+  kstrtos8
+  kstrtos8_from_user
+  kstrtou16
+  kstrtou16_from_user
+  kstrtou8
+  kstrtou8_from_user
+  kstrtouint
+  kstrtouint_from_user
+  kstrtoul_from_user
+  kstrtoull
+  kstrtoull_from_user
+  kthread_bind_mask
+  kthread_blkcg
+  kthread_cancel_delayed_work_sync
+  kthread_cancel_work_sync
+  kthread_create_on_node
+  kthread_create_worker
+  kthread_delayed_work_timer_fn
+  kthread_destroy_worker
+  kthread_flush_work
+  kthread_flush_worker
+  __kthread_init_worker
+  kthread_mod_delayed_work
+  kthread_park
+  kthread_parkme
+  kthread_queue_delayed_work
+  kthread_queue_work
+  kthread_should_park
+  kthread_should_stop
+  kthread_stop
+  kthread_unpark
+  kthread_worker_fn
+  ktime_get
+  ktime_get_mono_fast_ns
+  ktime_get_real_seconds
+  ktime_get_real_ts64
+  ktime_get_ts64
+  ktime_get_with_offset
+  kvfree
+  kvfree_call_rcu
+  kvmalloc_node
+  led_classdev_flash_register_ext
+  led_classdev_flash_unregister
+  led_classdev_unregister
+  led_trigger_event
+  led_trigger_register_simple
+  led_trigger_unregister_simple
+  __list_add_valid
+  __list_del_entry_valid
+  list_sort
+  llist_add_batch
+  llist_reverse_order
+  __local_bh_enable_ip
+  __lock_page
+  lock_sock_nested
+  lookup_page_ext
+  mac_pton
+  match_string
+  mbox_chan_received_data
+  mbox_chan_txdone
+  mbox_client_txdone
+  mbox_controller_register
+  mbox_controller_unregister
+  mbox_free_channel
+  mbox_request_channel
+  mbox_send_message
+  media_device_cleanup
+  media_device_init
+  __media_device_register
+  media_device_unregister
+  media_entity_pads_init
+  memblock_end_of_DRAM
+  memblock_free
+  __memcat_p
+  memchr
+  memcmp
+  memcpy
+  __memcpy_fromio
+  __memcpy_toio
+  memdup_user
+  memmove
+  memory_block_size_bytes
+  memory_read_from_buffer
+  memparse
+  mempool_alloc
+  mempool_alloc_slab
+  mempool_create
+  mempool_destroy
+  mempool_free
+  mempool_free_slab
+  memremap
+  mem_section
+  memset64
+  memset
+  __memset_io
+  memstart_addr
+  memunmap
+  migrate_swap
+  __migrate_task
+  mipi_dsi_create_packet
+  mipi_dsi_dcs_set_display_brightness
+  mipi_dsi_dcs_set_tear_off
+  mipi_dsi_dcs_write
+  mipi_dsi_host_register
+  mipi_dsi_host_unregister
+  misc_deregister
+  misc_register
+  __mmap_lock_do_trace_acquire_returned
+  __mmap_lock_do_trace_released
+  __mmap_lock_do_trace_start_locking
+  mmc_cqe_request_done
+  mmc_of_parse
+  mmc_regulator_get_supply
+  mmc_regulator_set_ocr
+  mmc_regulator_set_vqmmc
+  mmc_send_tuning
+  mmput
+  mod_delayed_work_on
+  mod_node_page_state
+  mod_timer
+  __module_get
+  module_layout
+  module_put
+  __msecs_to_jiffies
+  msleep
+  msleep_interruptible
+  __mutex_init
+  mutex_is_locked
+  mutex_lock
+  mutex_lock_interruptible
+  mutex_trylock
+  mutex_unlock
+  name_to_dev_t
+  napi_complete_done
+  napi_disable
+  napi_enable
+  napi_gro_flush
+  napi_gro_receive
+  __napi_schedule
+  napi_schedule_prep
+  neigh_destroy
+  neigh_resolve_output
+  __netdev_alloc_skb
+  netdev_rx_handler_register
+  netdev_rx_handler_unregister
+  netdev_update_features
+  netif_carrier_off
+  netif_carrier_on
+  netif_device_attach
+  netif_device_detach
+  netif_napi_add
+  __netif_napi_del
+  netif_receive_skb
+  netif_receive_skb_list
+  netif_rx
+  netif_rx_ni
+  netif_schedule_queue
+  netif_tx_stop_all_queues
+  netif_tx_wake_queue
+  netlink_broadcast
+  __netlink_kernel_create
+  netlink_kernel_release
+  netlink_unicast
+  nla_memcpy
+  __nla_parse
+  nla_put_64bit
+  nla_put
+  nla_strscpy
+  __nlmsg_put
+  no_llseek
+  nonseekable_open
+  noop_llseek
+  nr_cpu_ids
+  nr_ipi_get
+  nr_irqs
+  ns_capable
+  nsecs_to_jiffies
+  ns_to_timespec64
+  __num_online_cpus
+  nvmem_cell_get
+  nvmem_cell_put
+  nvmem_cell_read
+  nvmem_cell_read_u32
+  nvmem_cell_write
+  nvmem_device_read
+  nvmem_device_write
+  of_address_to_resource
+  of_alias_get_id
+  of_clk_add_hw_provider
+  of_clk_add_provider
+  of_clk_del_provider
+  of_clk_get_from_provider
+  of_clk_hw_simple_get
+  of_clk_src_onecell_get
+  of_clk_src_simple_get
+  of_count_phandle_with_args
+  of_cpu_node_to_id
+  of_css
+  of_devfreq_cooling_register
+  of_device_get_match_data
+  of_device_is_available
+  of_device_is_compatible
+  of_device_uevent_modalias
+  of_dma_configure_id
+  of_dma_controller_free
+  of_dma_controller_register
+  of_dma_is_coherent
+  of_drm_find_bridge
+  of_drm_find_panel
+  of_find_compatible_node
+  of_find_device_by_node
+  of_find_i2c_device_by_node
+  of_find_matching_node_and_match
+  of_find_node_by_name
+  of_find_node_by_phandle
+  of_find_node_opts_by_path
+  of_find_node_with_property
+  of_find_property
+  of_fwnode_ops
+  of_genpd_add_provider_onecell
+  of_genpd_add_provider_simple
+  of_genpd_del_provider
+  __of_get_address
+  of_get_child_by_name
+  of_get_cpu_node
+  of_get_named_gpio_flags
+  of_get_next_available_child
+  of_get_next_child
+  of_get_next_parent
+  of_get_parent
+  of_get_property
+  of_get_regulator_init_data
+  of_get_required_opp_performance_state
+  of_graph_get_next_endpoint
+  of_graph_get_port_parent
+  of_graph_get_remote_endpoint
+  of_graph_get_remote_node
+  of_graph_get_remote_port_parent
+  of_graph_is_present
+  of_graph_parse_endpoint
+  of_hwspin_lock_get_id
+  of_icc_get
+  of_icc_xlate_onecell
+  of_iomap
+  of_irq_find_parent
+  of_irq_get
+  of_irq_get_byname
+  of_irq_parse_one
+  of_match_device
+  of_match_node
+  of_modalias_node
+  of_n_addr_cells
+  of_node_name_eq
+  of_n_size_cells
+  of_parse_phandle
+  of_parse_phandle_with_args
+  of_parse_phandle_with_fixed_args
+  of_phandle_iterator_init
+  of_phandle_iterator_next
+  of_phy_simple_xlate
+  of_platform_depopulate
+  of_platform_device_create
+  of_platform_device_destroy
+  of_platform_populate
+  of_property_count_elems_of_size
+  of_property_match_string
+  of_property_read_string
+  of_property_read_string_helper
+  of_property_read_u32_index
+  of_property_read_u64
+  of_property_read_u64_index
+  of_property_read_variable_u16_array
+  of_property_read_variable_u32_array
+  of_property_read_variable_u8_array
+  of_prop_next_string
+  of_prop_next_u32
+  of_reserved_mem_device_init_by_idx
+  of_reserved_mem_device_release
+  of_reserved_mem_lookup
+  of_root
+  of_thermal_get_ntrips
+  of_thermal_get_trip_points
+  of_thermal_is_trip_valid
+  of_translate_address
+  page_endio
+  page_mapping
+  panic
+  panic_notifier_list
+  panic_timeout
+  param_array_ops
+  param_get_int
+  param_get_string
+  param_get_ullong
+  param_ops_bool
+  param_ops_charp
+  param_ops_int
+  param_ops_string
+  param_ops_uint
+  param_ops_ullong
+  param_ops_ulong
+  param_set_bool
+  param_set_copystring
+  param_set_int
+  pci_alloc_irq_vectors_affinity
+  pci_assign_resource
+  pci_bus_type
+  pci_clear_master
+  pci_dev_get
+  pci_device_group
+  pci_device_is_present
+  pci_dev_present
+  pci_dev_put
+  pci_disable_device
+  pci_disable_msi
+  pcie_capability_clear_and_set_word
+  pcie_capability_read_word
+  pci_enable_device
+  pci_enable_pcie_error_reporting
+  pci_find_ext_capability
+  pci_free_irq_vectors
+  pci_get_device
+  pci_host_probe
+  pci_iomap
+  pci_iounmap
+  pci_irq_vector
+  pci_load_and_free_saved_state
+  pci_load_saved_state
+  pci_msi_create_irq_domain
+  pci_msi_mask_irq
+  pci_msi_unmask_irq
+  pci_read_config_dword
+  pci_read_config_word
+  __pci_register_driver
+  pci_release_region
+  pci_request_region
+  pci_restore_state
+  pci_save_state
+  pci_set_master
+  pci_set_power_state
+  pci_store_saved_state
+  pci_unregister_driver
+  pci_walk_bus
+  pci_write_config_dword
+  pci_write_config_word
+  PDE_DATA
+  __per_cpu_offset
+  per_cpu_ptr_to_phys
+  perf_aux_output_begin
+  perf_aux_output_end
+  perf_aux_output_flag
+  perf_event_create_kernel_counter
+  perf_event_enable
+  perf_event_read_local
+  perf_event_read_value
+  perf_event_release_kernel
+  perf_get_aux
+  perf_pmu_register
+  perf_pmu_unregister
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  pfn_is_map_memory
+  phy_calibrate
+  phy_exit
+  phy_init
+  phy_power_off
+  phy_power_on
+  phy_set_mode_ext
+  pick_highest_pushable_task
+  pick_migrate_task
+  pid_task
+  pinconf_generic_dt_node_to_map
+  pinctrl_dev_get_drvdata
+  pinctrl_force_default
+  pinctrl_force_sleep
+  pinctrl_lookup_state
+  pinctrl_pm_select_default_state
+  pinctrl_pm_select_sleep_state
+  pinctrl_select_state
+  pinctrl_utils_free_map
+  platform_bus_type
+  platform_device_add
+  platform_device_add_data
+  platform_device_alloc
+  platform_device_del
+  platform_device_put
+  platform_device_register
+  platform_device_register_full
+  platform_device_unregister
+  __platform_driver_register
+  platform_driver_unregister
+  platform_get_irq
+  platform_get_irq_byname
+  platform_get_resource
+  platform_get_resource_byname
+  platform_irqchip_probe
+  platform_irq_count
+  platform_msi_domain_alloc_irqs
+  platform_msi_domain_free_irqs
+  pm_clk_add
+  pm_clk_create
+  pm_clk_destroy
+  pm_clk_resume
+  pm_clk_suspend
+  pm_generic_resume
+  pm_generic_suspend
+  pm_genpd_add_subdomain
+  pm_genpd_init
+  pm_genpd_remove
+  pm_genpd_remove_subdomain
+  pm_power_off
+  __pm_relax
+  pm_relax
+  pm_runtime_allow
+  pm_runtime_autosuspend_expiration
+  pm_runtime_barrier
+  __pm_runtime_disable
+  pm_runtime_enable
+  pm_runtime_forbid
+  pm_runtime_force_resume
+  pm_runtime_force_suspend
+  __pm_runtime_idle
+  pm_runtime_irq_safe
+  pm_runtime_no_callbacks
+  __pm_runtime_resume
+  pm_runtime_set_autosuspend_delay
+  __pm_runtime_set_status
+  __pm_runtime_suspend
+  __pm_runtime_use_autosuspend
+  __pm_stay_awake
+  pm_stay_awake
+  pm_system_wakeup
+  pm_wakeup_dev_event
+  pm_wakeup_ws_event
+  policy_has_boost_freq
+  power_supply_changed
+  power_supply_get_by_name
+  power_supply_get_drvdata
+  power_supply_get_property
+  power_supply_put
+  power_supply_register
+  power_supply_reg_notifier
+  power_supply_set_property
+  power_supply_unregister
+  power_supply_unreg_notifier
+  prandom_u32
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait
+  prepare_to_wait_event
+  print_hex_dump
+  _printk
+  _printk_deferred
+  printk_timed_ratelimit
+  proc_create
+  proc_create_data
+  proc_create_single_data
+  proc_dointvec
+  proc_dointvec_minmax
+  proc_dostring
+  proc_douintvec_minmax
+  proc_mkdir
+  proc_mkdir_data
+  proc_remove
+  proc_set_user
+  proto_register
+  proto_unregister
+  pskb_expand_head
+  __pskb_pull_tail
+  ___pskb_trim
+  put_device
+  put_iova_domain
+  __put_page
+  put_pid
+  put_sg_io_hdr
+  __put_task_struct
+  put_unused_fd
+  put_user_ifreq
+  pwm_apply_state
+  pwmchip_add
+  pwmchip_remove
+  qcom_smem_state_get
+  qcom_smem_state_register
+  qcom_smem_state_unregister
+  qcom_smem_state_update_bits
+  queue_delayed_work_on
+  queue_work_on
+  radix_tree_insert
+  radix_tree_iter_delete
+  radix_tree_lookup
+  radix_tree_next_chunk
+  ___ratelimit
+  rational_best_approximation
+  raw_notifier_call_chain
+  raw_notifier_chain_register
+  raw_notifier_chain_unregister
+  _raw_read_lock
+  _raw_read_lock_bh
+  _raw_read_lock_irq
+  _raw_read_lock_irqsave
+  _raw_read_unlock
+  _raw_read_unlock_bh
+  _raw_read_unlock_irq
+  _raw_read_unlock_irqrestore
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irq
+  _raw_spin_lock_irqsave
+  raw_spin_rq_lock_nested
+  raw_spin_rq_unlock
+  _raw_spin_trylock
+  _raw_spin_trylock_bh
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irq
+  _raw_spin_unlock_irqrestore
+  _raw_write_lock
+  _raw_write_lock_bh
+  _raw_write_lock_irq
+  _raw_write_lock_irqsave
+  _raw_write_unlock
+  _raw_write_unlock_bh
+  _raw_write_unlock_irq
+  _raw_write_unlock_irqrestore
+  rb_erase
+  rb_first
+  rb_insert_color
+  rb_last
+  rb_next
+  rb_prev
+  rb_replace_node
+  __rcu_read_lock
+  __rcu_read_unlock
+  rdev_get_drvdata
+  reboot_mode
+  refcount_dec_and_lock
+  refcount_dec_not_one
+  refcount_warn_saturate
+  regcache_cache_only
+  regcache_mark_dirty
+  regcache_sync
+  regcache_sync_region
+  __register_blkdev
+  __register_chrdev
+  register_chrdev_region
+  register_console
+  register_die_notifier
+  register_ftrace_export
+  register_inet6addr_notifier
+  register_inetaddr_notifier
+  register_kprobe
+  register_kretprobe
+  register_memory_notifier
+  register_module_notifier
+  register_netdev
+  register_netdevice
+  register_netdevice_notifier
+  register_netevent_notifier
+  register_oom_notifier
+  register_pm_notifier
+  register_qdisc
+  register_reboot_notifier
+  register_restart_handler
+  __register_rpmsg_driver
+  register_shrinker
+  register_syscore_ops
+  register_sysctl_table
+  regmap_bulk_read
+  regmap_bulk_write
+  regmap_check_range_table
+  regmap_field_read
+  regmap_field_update_bits_base
+  __regmap_init
+  regmap_irq_get_virq
+  regmap_mmio_detach_clk
+  regmap_multi_reg_write
+  regmap_read
+  regmap_register_patch
+  regmap_update_bits_base
+  regmap_write
+  regulator_allow_bypass
+  regulator_bulk_disable
+  regulator_count_voltages
+  regulator_disable
+  regulator_enable
+  regulator_force_disable
+  regulator_get
+  regulator_get_drvdata
+  regulator_get_mode
+  regulator_get_voltage
+  regulator_get_voltage_rdev
+  regulator_is_enabled
+  regulator_is_supported_voltage
+  regulator_list_voltage_linear
+  regulator_notifier_call_chain
+  regulator_put
+  regulator_register_notifier
+  regulator_set_current_limit
+  regulator_set_load
+  regulator_set_mode
+  regulator_set_voltage
+  regulator_unregister_notifier
+  release_firmware
+  __release_region
+  release_sock
+  remap_pfn_range
+  remove_cpu
+  remove_memory_subsection
+  remove_proc_entry
+  remove_wait_queue
+  report_iommu_fault
+  request_any_context_irq
+  request_firmware
+  request_firmware_direct
+  request_firmware_into_buf
+  request_firmware_nowait
+  __request_module
+  __request_percpu_irq
+  __request_region
+  request_threaded_irq
+  resched_curr
+  reset_control_assert
+  reset_control_deassert
+  return_address
+  rfkill_alloc
+  rfkill_destroy
+  rfkill_init_sw_state
+  rfkill_register
+  rfkill_unregister
+  root_task_group
+  round_jiffies_relative
+  rpmsg_get_signals
+  rpmsg_poll
+  rpmsg_register_device
+  rpmsg_send
+  rpmsg_set_signals
+  rpmsg_trysend
+  rpmsg_unregister_device
+  rproc_add
+  rproc_add_subdev
+  rproc_alloc
+  rproc_boot
+  rproc_coredump
+  rproc_coredump_add_custom_segment
+  rproc_coredump_add_segment
+  rproc_coredump_cleanup
+  rproc_coredump_set_elf_info
+  rproc_coredump_using_sections
+  rproc_del
+  rproc_free
+  rproc_get_by_child
+  rproc_get_by_phandle
+  rproc_put
+  rproc_remove_subdev
+  rproc_report_crash
+  rproc_shutdown
+  rtc_class_close
+  rtc_class_open
+  rtc_read_time
+  rtc_time64_to_tm
+  rtc_tm_to_time64
+  rtc_update_irq
+  rtc_valid_tm
+  rtnl_is_locked
+  rtnl_link_register
+  rtnl_link_unregister
+  rtnl_lock
+  rtnl_trylock
+  rtnl_unicast
+  rtnl_unlock
+  runqueues
+  sbitmap_add_wait_queue
+  sbitmap_any_bit_set
+  sbitmap_del_wait_queue
+  sbitmap_init_node
+  sbitmap_queue_clear
+  __sbitmap_queue_get
+  sbitmap_queue_init_node
+  sbitmap_queue_min_shallow_depth
+  sbitmap_queue_resize
+  sbitmap_queue_show
+  scatterwalk_ffwd
+  scatterwalk_map_and_copy
+  sched_clock
+  sched_feat_keys
+  sched_feat_names
+  sched_setattr
+  sched_set_fifo
+  sched_set_normal
+  sched_setscheduler
+  sched_setscheduler_nocheck
+  sched_show_task
+  sched_trace_rd_span
+  sched_uclamp_used
+  schedule
+  schedule_timeout
+  schedule_timeout_interruptible
+  scmi_driver_register
+  scmi_driver_unregister
+  scmi_protocol_register
+  scmi_protocol_unregister
+  scnprintf
+  scsi_autopm_get_device
+  scsi_autopm_put_device
+  scsi_block_when_processing_errors
+  scsi_cmd_allowed
+  scsi_command_size_tbl
+  scsi_device_get
+  scsi_device_put
+  scsi_ioctl
+  scsi_ioctl_block_when_processing_errors
+  __scsi_iterate_devices
+  scsi_normalize_sense
+  __scsi_print_sense
+  scsi_register_interface
+  sdev_prefix_printk
+  __sdhci_add_host
+  sdhci_add_host
+  sdhci_cleanup_host
+  sdhci_cqe_disable
+  sdhci_cqe_enable
+  sdhci_cqe_irq
+  sdhci_enable_clk
+  sdhci_get_property
+  sdhci_pltfm_free
+  sdhci_pltfm_init
+  sdhci_remove_host
+  sdhci_reset
+  sdhci_set_bus_width
+  sdhci_set_power_noreg
+  __sdhci_set_timeout
+  sdhci_setup_host
+  select_fallback_rq
+  send_sig_info
+  seq_buf_printf
+  seq_hex_dump
+  seq_list_next
+  seq_list_start
+  seq_lseek
+  seq_open
+  seq_printf
+  seq_putc
+  seq_puts
+  seq_read
+  seq_release
+  seq_vprintf
+  seq_write
+  set_blocksize
+  set_capacity
+  set_capacity_and_notify
+  set_cpus_allowed_ptr
+  set_next_entity
+  set_normalized_timespec64
+  set_page_dirty_lock
+  __SetPageMovable
+  set_task_cpu
+  set_user_nice
+  sg_alloc_table
+  sg_alloc_table_from_pages_segment
+  sg_copy_from_buffer
+  sg_copy_to_buffer
+  sg_free_table
+  sg_init_one
+  sg_init_table
+  sg_miter_next
+  sg_miter_start
+  sg_miter_stop
+  sg_next
+  __sg_page_iter_dma_next
+  __sg_page_iter_next
+  __sg_page_iter_start
+  shmem_read_mapping_page_gfp
+  show_regs
+  si_mem_available
+  si_meminfo
+  simple_attr_open
+  simple_attr_read
+  simple_attr_release
+  simple_attr_write
+  simple_open
+  simple_read_from_buffer
+  simple_strtol
+  simple_strtoul
+  simple_write_to_buffer
+  single_open
+  single_open_size
+  single_release
+  si_swapinfo
+  sk_alloc
+  skb_add_rx_frag
+  skb_append_pagefrags
+  skb_checksum
+  skb_clone
+  skb_coalesce_rx_frag
+  skb_copy
+  skb_copy_bits
+  skb_copy_datagram_iter
+  skb_copy_expand
+  skb_dequeue
+  skb_dequeue_tail
+  skb_free_datagram
+  __skb_get_hash
+  __skb_gso_segment
+  __skb_pad
+  skb_pull
+  skb_push
+  skb_put
+  skb_queue_head
+  skb_queue_purge
+  skb_queue_tail
+  skb_recv_datagram
+  skb_set_owner_w
+  skb_store_bits
+  skb_trim
+  sk_error_report
+  sk_free
+  skip_spaces
+  smp_call_function
+  smp_call_function_single
+  smp_call_function_single_async
+  snd_info_create_card_entry
+  snd_info_create_module_entry
+  snd_info_free_entry
+  snd_info_register
+  snd_interval_refine
+  snd_jack_set_key
+  snd_pcm_format_physical_width
+  snd_pcm_format_width
+  _snd_pcm_hw_params_any
+  snd_soc_add_component_controls
+  snd_soc_card_get_kcontrol
+  snd_soc_card_jack_new
+  snd_soc_component_exit_regmap
+  snd_soc_component_init_regmap
+  snd_soc_component_read
+  snd_soc_component_update_bits
+  snd_soc_component_write
+  snd_soc_dai_get_channel_map
+  snd_soc_dai_set_channel_map
+  snd_soc_dapm_add_routes
+  snd_soc_dapm_disable_pin
+  snd_soc_dapm_force_enable_pin
+  snd_soc_dapm_get_enum_double
+  snd_soc_dapm_get_volsw
+  snd_soc_dapm_ignore_suspend
+  snd_soc_dapm_kcontrol_widget
+  snd_soc_dapm_mixer_update_power
+  snd_soc_dapm_mux_update_power
+  snd_soc_dapm_new_controls
+  snd_soc_dapm_new_widgets
+  snd_soc_dapm_put_enum_double
+  snd_soc_dapm_put_volsw
+  snd_soc_dapm_sync
+  snd_soc_get_enum_double
+  snd_soc_get_pcm_runtime
+  snd_soc_get_volsw
+  snd_soc_info_enum_double
+  snd_soc_info_multi_ext
+  snd_soc_info_volsw
+  snd_soc_jack_report
+  snd_soc_lookup_component
+  snd_soc_of_parse_audio_routing
+  snd_soc_of_parse_card_name
+  snd_soc_pm_ops
+  snd_soc_put_enum_double
+  snd_soc_put_volsw
+  snd_soc_register_component
+  snd_soc_rtdcom_lookup
+  snd_soc_runtime_set_dai_fmt
+  snd_soc_unregister_card
+  snd_soc_unregister_component
+  snd_usb_autoresume
+  snd_usb_autosuspend
+  snd_usb_endpoint_close
+  snd_usb_endpoint_configure
+  snd_usb_endpoint_open
+  snprintf
+  soc_device_register
+  soc_device_unregister
+  sock_alloc_send_skb
+  sock_create_kern
+  sock_gettstamp
+  sock_init_data
+  sock_no_accept
+  sock_no_listen
+  sock_no_mmap
+  sock_no_sendpage
+  sock_no_shutdown
+  sock_no_socketpair
+  sock_queue_rcv_skb
+  sock_register
+  sock_release
+  sock_setsockopt
+  sock_unregister
+  softnet_data
+  sort
+  __spi_alloc_controller
+  spi_bus_type
+  spi_register_controller
+  __spi_register_driver
+  spi_setup
+  spi_sync
+  spi_unregister_controller
+  spmi_controller_add
+  spmi_controller_alloc
+  spmi_controller_remove
+  __spmi_driver_register
+  spmi_ext_register_read
+  spmi_ext_register_readl
+  spmi_ext_register_write
+  spmi_ext_register_writel
+  spmi_register_read
+  spmi_register_write
+  spmi_register_zero_write
+  sprintf
+  sprint_symbol
+  srcu_init_notifier_head
+  srcu_notifier_call_chain
+  srcu_notifier_chain_register
+  srcu_notifier_chain_unregister
+  __srcu_read_lock
+  __srcu_read_unlock
+  sscanf
+  __stack_chk_fail
+  stack_depot_fetch
+  start_backtrace
+  static_key_disable
+  static_key_slow_inc
+  stop_machine
+  stop_one_cpu
+  stop_one_cpu_nowait
+  stpcpy
+  strcasecmp
+  strcat
+  strchr
+  strchrnul
+  strcmp
+  strcpy
+  strcspn
+  strim
+  strlcat
+  strlcpy
+  strlen
+  strncasecmp
+  strncat
+  strnchr
+  strncmp
+  strncpy
+  strncpy_from_user
+  strnlen
+  strnstr
+  strpbrk
+  strrchr
+  strreplace
+  strscpy
+  strsep
+  strstr
+  submit_bio_wait
+  __sw_hweight32
+  __sw_hweight64
+  __sw_hweight8
+  sync_file_create
+  sync_file_get_fence
+  synchronize_irq
+  synchronize_net
+  synchronize_rcu
+  synchronize_srcu
+  syscon_node_to_regmap
+  syscon_regmap_lookup_by_phandle
+  sysctl_sched_features
+  sysctl_vals
+  sysfs_add_file_to_group
+  sysfs_add_link_to_group
+  sysfs_create_bin_file
+  sysfs_create_file_ns
+  sysfs_create_files
+  sysfs_create_group
+  sysfs_create_groups
+  sysfs_create_link
+  sysfs_emit
+  sysfs_emit_at
+  __sysfs_match_string
+  sysfs_notify
+  sysfs_remove_bin_file
+  sysfs_remove_file_from_group
+  sysfs_remove_file_ns
+  sysfs_remove_files
+  sysfs_remove_group
+  sysfs_remove_groups
+  sysfs_remove_link
+  sysfs_remove_link_from_group
+  sysfs_streq
+  sysrq_mask
+  system_32bit_el0_cpumask
+  system_freezable_wq
+  system_highpri_wq
+  system_state
+  system_unbound_wq
+  system_wq
+  sys_tz
+  __tasklet_hi_schedule
+  tasklet_init
+  tasklet_kill
+  __tasklet_schedule
+  tasklet_setup
+  tasklet_unlock_wait
+  tasklist_lock
+  task_may_not_preempt
+  __task_pid_nr_ns
+  __task_rq_lock
+  thermal_cooling_device_register
+  thermal_cooling_device_unregister
+  thermal_of_cooling_device_register
+  thermal_pressure
+  thermal_zone_device_enable
+  thermal_zone_device_register
+  thermal_zone_device_unregister
+  thermal_zone_device_update
+  thermal_zone_get_temp
+  thermal_zone_get_zone_by_name
+  thermal_zone_of_sensor_register
+  thermal_zone_of_sensor_unregister
+  tick_nohz_get_sleep_length
+  time64_to_tm
+  timer_reduce
+  topology_clear_scale_freq_source
+  topology_set_thermal_pressure
+  topology_update_done
+  _totalram_pages
+  trace_array_put
+  __trace_bprintk
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_handle_return
+  __traceiter_android_rvh_account_irq
+  __traceiter_android_rvh_after_dequeue_task
+  __traceiter_android_rvh_after_enqueue_task
+  __traceiter_android_rvh_audio_usb_offload_disconnect
+  __traceiter_android_rvh_build_perf_domains
+  __traceiter_android_rvh_can_migrate_task
+  __traceiter_android_rvh_check_preempt_wakeup
+  __traceiter_android_rvh_cpu_cgroup_attach
+  __traceiter_android_rvh_cpu_cgroup_online
+  __traceiter_android_rvh_cpufreq_transition
+  __traceiter_android_rvh_do_sched_yield
+  __traceiter_android_rvh_find_busiest_queue
+  __traceiter_android_rvh_find_lowest_rq
+  __traceiter_android_rvh_flush_task
+  __traceiter_android_rvh_get_nohz_timer_target
+  __traceiter_android_rvh_iommu_setup_dma_ops
+  __traceiter_android_rvh_is_cpu_allowed
+  __traceiter_android_rvh_migrate_queued_task
+  __traceiter_android_rvh_new_task_stats
+  __traceiter_android_rvh_refrigerator
+  __traceiter_android_rvh_replace_next_task_fair
+  __traceiter_android_rvh_rto_next_cpu
+  __traceiter_android_rvh_sched_cpu_dying
+  __traceiter_android_rvh_sched_cpu_starting
+  __traceiter_android_rvh_sched_exec
+  __traceiter_android_rvh_sched_fork_init
+  __traceiter_android_rvh_sched_newidle_balance
+  __traceiter_android_rvh_sched_nohz_balancer_kick
+  __traceiter_android_rvh_sched_setaffinity
+  __traceiter_android_rvh_schedule
+  __traceiter_android_rvh_select_task_rq_fair
+  __traceiter_android_rvh_select_task_rq_rt
+  __traceiter_android_rvh_set_balance_anon_file_reclaim
+  __traceiter_android_rvh_set_cpus_allowed_ptr_locked
+  __traceiter_android_rvh_set_gfp_zone_flags
+  __traceiter_android_rvh_set_readahead_gfp_mask
+  __traceiter_android_rvh_set_skip_swapcache_flags
+  __traceiter_android_rvh_set_task_cpu
+  __traceiter_android_rvh_show_max_freq
+  __traceiter_android_rvh_tick_entry
+  __traceiter_android_rvh_try_to_wake_up
+  __traceiter_android_rvh_try_to_wake_up_success
+  __traceiter_android_rvh_ttwu_cond
+  __traceiter_android_rvh_update_cpu_capacity
+  __traceiter_android_rvh_update_cpus_allowed
+  __traceiter_android_rvh_update_misfit_status
+  __traceiter_android_rvh_wake_up_new_task
+  __traceiter_android_vh_account_task_time
+  __traceiter_android_vh_audio_usb_offload_connect
+  __traceiter_android_vh_binder_restore_priority
+  __traceiter_android_vh_binder_set_priority
+  __traceiter_android_vh_binder_trans
+  __traceiter_android_vh_binder_wakeup_ilocked
+  __traceiter_android_vh_blk_alloc_rqs
+  __traceiter_android_vh_blk_rq_ctx_init
+  __traceiter_android_vh_cpu_idle_enter
+  __traceiter_android_vh_cpu_idle_exit
+  __traceiter_android_vh_cpuidle_psci_enter
+  __traceiter_android_vh_cpuidle_psci_exit
+  __traceiter_android_vh_dup_task_struct
+  __traceiter_android_vh_ftrace_dump_buffer
+  __traceiter_android_vh_ftrace_format_check
+  __traceiter_android_vh_ftrace_oops_enter
+  __traceiter_android_vh_ftrace_oops_exit
+  __traceiter_android_vh_ftrace_size_check
+  __traceiter_android_vh_gic_resume
+  __traceiter_android_vh_ipi_stop
+  __traceiter_android_vh_irqtime_account_process_tick
+  __traceiter_android_vh_jiffies_update
+  __traceiter_android_vh_logbuf
+  __traceiter_android_vh_logbuf_pr_cont
+  __traceiter_android_vh_mmap_region
+  __traceiter_android_vh_mmc_attach_sd
+  __traceiter_android_vh_mmc_blk_mq_rw_recovery
+  __traceiter_android_vh_mmc_blk_reset
+  __traceiter_android_vh_mmc_gpio_cd_irqt
+  __traceiter_android_vh_printk_hotplug
+  __traceiter_android_vh_rproc_recovery
+  __traceiter_android_vh_scheduler_tick
+  __traceiter_android_vh_sdhci_get_cd
+  __traceiter_android_vh_sd_update_bus_speed_mode
+  __traceiter_android_vh_show_resume_epoch_val
+  __traceiter_android_vh_show_suspend_epoch_val
+  __traceiter_android_vh_shrink_slab_bypass
+  __traceiter_android_vh_timer_calc_index
+  __traceiter_android_vh_try_to_unmap_one
+  __traceiter_android_vh_tune_scan_type
+  __traceiter_android_vh_ufs_check_int_errors
+  __traceiter_android_vh_ufs_clock_scaling
+  __traceiter_android_vh_ufs_compl_command
+  __traceiter_android_vh_ufs_prepare_command
+  __traceiter_android_vh_ufs_send_command
+  __traceiter_android_vh_ufs_send_tm_command
+  __traceiter_android_vh_ufs_send_uic_command
+  __traceiter_android_vh_ufs_update_sdev
+  __traceiter_android_vh_update_topology_flags_workfn
+  __traceiter_android_vh_vmpressure
+  __traceiter_binder_transaction_received
+  __traceiter_block_rq_insert
+  __traceiter_cpu_frequency_limits
+  __traceiter_dwc3_complete_trb
+  __traceiter_dwc3_ctrl_req
+  __traceiter_dwc3_event
+  __traceiter_dwc3_readl
+  __traceiter_dwc3_writel
+  __traceiter_gpu_mem_total
+  __traceiter_ipi_entry
+  __traceiter_ipi_raise
+  __traceiter_irq_handler_entry
+  __traceiter_mmap_lock_acquire_returned
+  __traceiter_mmap_lock_released
+  __traceiter_mmap_lock_start_locking
+  __traceiter_rwmmio_read
+  __traceiter_rwmmio_write
+  __traceiter_sched_overutilized_tp
+  __traceiter_sched_switch
+  __traceiter_suspend_resume
+  __traceiter_usb_gadget_connect
+  __traceiter_usb_gadget_disconnect
+  __tracepoint_android_rvh_account_irq
+  __tracepoint_android_rvh_after_dequeue_task
+  __tracepoint_android_rvh_after_enqueue_task
+  __tracepoint_android_rvh_audio_usb_offload_disconnect
+  __tracepoint_android_rvh_build_perf_domains
+  __tracepoint_android_rvh_can_migrate_task
+  __tracepoint_android_rvh_check_preempt_wakeup
+  __tracepoint_android_rvh_cpu_cgroup_attach
+  __tracepoint_android_rvh_cpu_cgroup_online
+  __tracepoint_android_rvh_cpufreq_transition
+  __tracepoint_android_rvh_do_sched_yield
+  __tracepoint_android_rvh_find_busiest_queue
+  __tracepoint_android_rvh_find_lowest_rq
+  __tracepoint_android_rvh_flush_task
+  __tracepoint_android_rvh_get_nohz_timer_target
+  __tracepoint_android_rvh_iommu_setup_dma_ops
+  __tracepoint_android_rvh_is_cpu_allowed
+  __tracepoint_android_rvh_migrate_queued_task
+  __tracepoint_android_rvh_new_task_stats
+  __tracepoint_android_rvh_refrigerator
+  __tracepoint_android_rvh_replace_next_task_fair
+  __tracepoint_android_rvh_rto_next_cpu
+  __tracepoint_android_rvh_sched_cpu_dying
+  __tracepoint_android_rvh_sched_cpu_starting
+  __tracepoint_android_rvh_sched_exec
+  __tracepoint_android_rvh_sched_fork_init
+  __tracepoint_android_rvh_sched_newidle_balance
+  __tracepoint_android_rvh_sched_nohz_balancer_kick
+  __tracepoint_android_rvh_sched_setaffinity
+  __tracepoint_android_rvh_schedule
+  __tracepoint_android_rvh_select_task_rq_fair
+  __tracepoint_android_rvh_select_task_rq_rt
+  __tracepoint_android_rvh_set_balance_anon_file_reclaim
+  __tracepoint_android_rvh_set_cpus_allowed_ptr_locked
+  __tracepoint_android_rvh_set_gfp_zone_flags
+  __tracepoint_android_rvh_set_readahead_gfp_mask
+  __tracepoint_android_rvh_set_skip_swapcache_flags
+  __tracepoint_android_rvh_set_task_cpu
+  __tracepoint_android_rvh_show_max_freq
+  __tracepoint_android_rvh_tick_entry
+  __tracepoint_android_rvh_try_to_wake_up
+  __tracepoint_android_rvh_try_to_wake_up_success
+  __tracepoint_android_rvh_ttwu_cond
+  __tracepoint_android_rvh_update_cpu_capacity
+  __tracepoint_android_rvh_update_cpus_allowed
+  __tracepoint_android_rvh_update_misfit_status
+  __tracepoint_android_rvh_wake_up_new_task
+  __tracepoint_android_vh_account_task_time
+  __tracepoint_android_vh_audio_usb_offload_connect
+  __tracepoint_android_vh_binder_restore_priority
+  __tracepoint_android_vh_binder_set_priority
+  __tracepoint_android_vh_binder_trans
+  __tracepoint_android_vh_binder_wakeup_ilocked
+  __tracepoint_android_vh_blk_alloc_rqs
+  __tracepoint_android_vh_blk_rq_ctx_init
+  __tracepoint_android_vh_cpu_idle_enter
+  __tracepoint_android_vh_cpu_idle_exit
+  __tracepoint_android_vh_cpuidle_psci_enter
+  __tracepoint_android_vh_cpuidle_psci_exit
+  __tracepoint_android_vh_dup_task_struct
+  __tracepoint_android_vh_ftrace_dump_buffer
+  __tracepoint_android_vh_ftrace_format_check
+  __tracepoint_android_vh_ftrace_oops_enter
+  __tracepoint_android_vh_ftrace_oops_exit
+  __tracepoint_android_vh_ftrace_size_check
+  __tracepoint_android_vh_gic_resume
+  __tracepoint_android_vh_ipi_stop
+  __tracepoint_android_vh_irqtime_account_process_tick
+  __tracepoint_android_vh_jiffies_update
+  __tracepoint_android_vh_logbuf
+  __tracepoint_android_vh_logbuf_pr_cont
+  __tracepoint_android_vh_mmap_region
+  __tracepoint_android_vh_mmc_attach_sd
+  __tracepoint_android_vh_mmc_blk_mq_rw_recovery
+  __tracepoint_android_vh_mmc_blk_reset
+  __tracepoint_android_vh_mmc_gpio_cd_irqt
+  __tracepoint_android_vh_printk_hotplug
+  __tracepoint_android_vh_rproc_recovery
+  __tracepoint_android_vh_scheduler_tick
+  __tracepoint_android_vh_sdhci_get_cd
+  __tracepoint_android_vh_sd_update_bus_speed_mode
+  __tracepoint_android_vh_show_resume_epoch_val
+  __tracepoint_android_vh_show_suspend_epoch_val
+  __tracepoint_android_vh_shrink_slab_bypass
+  __tracepoint_android_vh_timer_calc_index
+  __tracepoint_android_vh_try_to_unmap_one
+  __tracepoint_android_vh_tune_scan_type
+  __tracepoint_android_vh_ufs_check_int_errors
+  __tracepoint_android_vh_ufs_clock_scaling
+  __tracepoint_android_vh_ufs_compl_command
+  __tracepoint_android_vh_ufs_prepare_command
+  __tracepoint_android_vh_ufs_send_command
+  __tracepoint_android_vh_ufs_send_tm_command
+  __tracepoint_android_vh_ufs_send_uic_command
+  __tracepoint_android_vh_ufs_update_sdev
+  __tracepoint_android_vh_update_topology_flags_workfn
+  __tracepoint_android_vh_vmpressure
+  __tracepoint_binder_transaction_received
+  __tracepoint_block_rq_insert
+  __tracepoint_cpu_frequency_limits
+  __tracepoint_dwc3_complete_trb
+  __tracepoint_dwc3_ctrl_req
+  __tracepoint_dwc3_event
+  __tracepoint_dwc3_readl
+  __tracepoint_dwc3_writel
+  __tracepoint_gpu_mem_total
+  __tracepoint_ipi_entry
+  __tracepoint_ipi_raise
+  __tracepoint_irq_handler_entry
+  __tracepoint_mmap_lock_acquire_returned
+  __tracepoint_mmap_lock_released
+  __tracepoint_mmap_lock_start_locking
+  tracepoint_probe_register
+  tracepoint_probe_register_prio
+  tracepoint_probe_unregister
+  __tracepoint_rwmmio_read
+  __tracepoint_rwmmio_write
+  __tracepoint_sched_overutilized_tp
+  __tracepoint_sched_switch
+  __tracepoint_suspend_resume
+  __tracepoint_usb_gadget_connect
+  __tracepoint_usb_gadget_disconnect
+  trace_print_array_seq
+  trace_print_flags_seq
+  trace_print_hex_seq
+  trace_print_symbols_seq
+  trace_raw_output_prep
+  trace_seq_printf
+  trace_seq_putc
+  tracing_off
+  try_module_get
+  try_wait_for_completion
+  tty_flip_buffer_push
+  __tty_insert_flip_char
+  tty_insert_flip_string_fixed_flag
+  uart_add_one_port
+  uart_get_baud_rate
+  uart_insert_char
+  uart_register_driver
+  uart_remove_one_port
+  uart_resume_port
+  uart_suspend_port
+  uart_try_toggle_sysrq
+  uart_unregister_driver
+  uart_update_timeout
+  uart_write_wakeup
+  __ubsan_handle_cfi_check_fail_abort
+  uclamp_eff_value
+  ucsi_connector_change
+  ucsi_create
+  ucsi_destroy
+  ucsi_get_drvdata
+  ucsi_register
+  ucsi_send_command
+  ucsi_set_drvdata
+  ucsi_unregister
+  __udelay
+  ufshcd_auto_hibern8_update
+  ufshcd_dme_get_attr
+  ufshcd_dme_set_attr
+  ufshcd_dump_regs
+  ufshcd_fixup_dev_quirks
+  ufshcd_get_local_unipro_ver
+  ufshcd_hba_stop
+  ufshcd_hold
+  ufshcd_pltfrm_init
+  ufshcd_pltfrm_shutdown
+  ufshcd_query_attr
+  ufshcd_query_descriptor_retry
+  ufshcd_query_flag
+  ufshcd_read_desc_param
+  ufshcd_release
+  ufshcd_remove
+  ufshcd_resume_complete
+  ufshcd_runtime_resume
+  ufshcd_runtime_suspend
+  ufshcd_suspend_prepare
+  ufshcd_system_resume
+  ufshcd_system_suspend
+  ufshcd_uic_hibern8_enter
+  ufshcd_uic_hibern8_exit
+  __uio_register_device
+  uio_unregister_device
+  unlock_page
+  unregister_blkdev
+  __unregister_chrdev
+  unregister_chrdev_region
+  unregister_console
+  unregister_die_notifier
+  unregister_ftrace_export
+  unregister_inet6addr_notifier
+  unregister_inetaddr_notifier
+  unregister_kprobe
+  unregister_kretprobe
+  unregister_netdev
+  unregister_netdevice_many
+  unregister_netdevice_notifier
+  unregister_netdevice_queue
+  unregister_netevent_notifier
+  unregister_oom_notifier
+  unregister_pm_notifier
+  unregister_qdisc
+  unregister_reboot_notifier
+  unregister_restart_handler
+  unregister_rpmsg_driver
+  unregister_shrinker
+  up
+  update_devfreq
+  update_rq_clock
+  up_read
+  up_write
+  usb_add_phy_dev
+  usb_alloc_coherent
+  usb_assign_descriptors
+  usb_bus_idr
+  usb_bus_idr_lock
+  usb_composite_setup_continue
+  usb_debug_root
+  usb_decode_ctrl
+  usb_ep_alloc_request
+  usb_ep_autoconfig
+  usb_ep_dequeue
+  usb_ep_disable
+  usb_ep_enable
+  usb_ep_free_request
+  usb_ep_queue
+  usb_ep_set_halt
+  usb_free_all_descriptors
+  usb_free_coherent
+  usb_function_register
+  usb_function_unregister
+  usb_gadget_wakeup
+  usb_ifnum_to_if
+  usb_interface_id
+  usb_mon_deregister
+  usb_mon_register
+  usb_phy_set_charger_current
+  usb_put_function_instance
+  usb_register_notify
+  usb_remove_phy
+  usb_role_switch_find_by_fwnode
+  usb_role_switch_get_drvdata
+  usb_role_switch_register
+  usb_role_switch_set_role
+  usb_role_switch_unregister
+  usb_speed_string
+  usb_string_id
+  usb_unregister_notify
+  __usecs_to_jiffies
+  usleep_range_state
+  uuid_parse
+  v4l2_compat_ioctl32
+  v4l2_ctrl_find
+  v4l2_ctrl_handler_free
+  v4l2_ctrl_handler_init_class
+  v4l2_ctrl_new_custom
+  v4l2_ctrl_new_std
+  v4l2_ctrl_new_std_menu
+  v4l2_ctrl_request_complete
+  v4l2_ctrl_request_setup
+  v4l2_ctrl_subscribe_event
+  v4l2_device_register
+  v4l2_device_register_subdev
+  __v4l2_device_register_subdev_nodes
+  v4l2_device_unregister
+  v4l2_device_unregister_subdev
+  v4l2_event_dequeue
+  v4l2_event_pending
+  v4l2_event_queue
+  v4l2_event_queue_fh
+  v4l2_event_subscribe
+  v4l2_event_unsubscribe
+  v4l2_fh_add
+  v4l2_fh_del
+  v4l2_fh_exit
+  v4l2_fh_init
+  v4l2_fh_open
+  v4l2_fh_release
+  v4l2_m2m_ctx_init
+  v4l2_m2m_ctx_release
+  v4l2_m2m_init
+  v4l2_m2m_job_finish
+  v4l2_m2m_register_media_controller
+  v4l2_m2m_release
+  v4l2_m2m_request_queue
+  v4l2_m2m_unregister_media_controller
+  v4l2_src_change_event_subscribe
+  v4l2_subdev_call_wrappers
+  v4l2_subdev_init
+  vabits_actual
+  vb2_buffer_done
+  vb2_create_bufs
+  vb2_dqbuf
+  vb2_prepare_buf
+  vb2_qbuf
+  vb2_querybuf
+  vb2_queue_init
+  vb2_queue_release
+  vb2_reqbufs
+  vb2_request_validate
+  vb2_streamoff
+  vb2_streamon
+  vchan_dma_desc_free_list
+  vchan_find_desc
+  vchan_init
+  vchan_tx_desc_free
+  vchan_tx_submit
+  vfree
+  video_devdata
+  video_device_alloc
+  video_device_release
+  video_device_release_empty
+  video_ioctl2
+  __video_register_device
+  video_unregister_device
+  vmalloc
+  vmalloc_to_page
+  vmalloc_to_pfn
+  vmap
+  vmemdup_user
+  vmf_insert_mixed
+  vmf_insert_pfn
+  vm_get_page_prot
+  vm_insert_page
+  vm_iomap_memory
+  vm_map_pages
+  vm_node_stat
+  vm_zone_stat
+  vprintk
+  vscnprintf
+  vsnprintf
+  vunmap
+  vzalloc
+  wait_for_completion
+  wait_for_completion_interruptible
+  wait_for_completion_interruptible_timeout
+  wait_for_completion_killable
+  wait_for_completion_timeout
+  wait_woken
+  __wake_up
+  wake_up_if_idle
+  __wake_up_locked
+  wake_up_process
+  wakeup_source_add
+  wakeup_source_register
+  wakeup_source_remove
+  wakeup_source_unregister
+  __warn_printk
+  wireless_send_event
+  woken_wake_function
+  work_busy
+  ww_mutex_lock
+  ww_mutex_unlock
+  __xa_alloc
+  __xa_alloc_cyclic
+  xa_destroy
+  xa_erase
+  xa_find
+  xa_find_after
+  __xa_insert
+  xa_load
+  xa_store
+  xfrm_lookup
+  xhci_alloc_command
+  xhci_alloc_erst
+  xhci_free_command
+  xhci_get_endpoint_index
+  xhci_queue_stop_endpoint
+  xhci_ring_alloc
+  xhci_ring_cmd_db
+  xhci_ring_free
+  xhci_trb_virt_to_dma
diff --git a/android/abi_gki_aarch64_xiaomi b/android/abi_gki_aarch64_xiaomi
new file mode 100644
index 0000000..94ed66a
--- /dev/null
+++ b/android/abi_gki_aarch64_xiaomi
@@ -0,0 +1,559 @@
+[abi_symbol_list]
+# commonly used symbols
+
+# required by touch module
+  power_supply_is_system_supplied
+  proc_create_seq_private
+  proc_mkdir_data
+
+# required by aw8697-haptic.ko
+  devm_gpio_free
+  i2c_smbus_read_byte_data
+  i2c_smbus_write_byte_data
+
+#required by memory module
+  async_schedule_node
+  blk_execute_rq
+  blk_ksm_get_slot_idx
+  blk_ksm_register
+  blk_ksm_reprogram_all_keys
+  blk_mq_alloc_tag_set
+  blk_mq_free_tag_set
+  blk_mq_init_queue
+  blk_mq_tagset_busy_iter
+  blk_pm_runtime_init
+  blk_queue_update_dma_alignment
+  blk_queue_update_dma_pad
+  blk_rq_map_kern
+  bsg_job_done
+  bsg_remove_queue
+  bsg_setup_queue
+  dev_pm_opp_remove
+  kobject_get
+  mempool_alloc_pages
+  mempool_free_pages
+  mempool_resize
+  mmc_set_blocklen
+  nr_free_buffer_pages
+  __scsi_add_device
+  scsi_add_host_with_dma
+  scsi_block_requests
+  scsi_change_queue_depth
+  scsi_device_lookup
+  scsi_dma_map
+  scsi_dma_unmap
+  __scsi_execute
+  scsi_host_alloc
+  scsi_host_lookup
+  scsi_host_put
+  scsi_is_host_device
+  scsi_normalize_sense
+  scsi_print_command
+  scsi_remove_device
+  scsi_remove_host
+  scsi_report_bus_reset
+  scsi_scan_host
+  scsi_unblock_requests
+  sg_copy_from_buffer
+  sg_copy_to_buffer
+  __traceiter_android_vh_direct_io_update_bio
+  __traceiter_android_vh_dm_update_clone_bio
+  __traceiter_android_vh_loop_prepare_cmd
+  __traceiter_android_vh_ufs_mcq_abort
+  __traceiter_android_vh_ufs_mcq_clear_cmd
+  __traceiter_android_vh_ufs_mcq_clear_pending
+  __traceiter_android_vh_ufs_mcq_config
+  __traceiter_android_vh_ufs_mcq_get_outstanding_reqs
+  __traceiter_android_vh_ufs_mcq_handler
+  __traceiter_android_vh_ufs_mcq_has_oustanding_reqs
+  __traceiter_android_vh_ufs_mcq_hba_capabilities
+  __traceiter_android_vh_ufs_mcq_make_hba_operational
+  __traceiter_android_vh_ufs_mcq_map_tag
+  __traceiter_android_vh_ufs_mcq_max_tag
+  __traceiter_android_vh_ufs_mcq_print_trs
+  __traceiter_android_vh_ufs_mcq_send_command
+  __traceiter_android_vh_ufs_mcq_set_sqid
+  __traceiter_android_vh_ufs_update_sdev
+  __traceiter_android_vh_ufs_use_mcq_hooks
+  __tracepoint_android_vh_direct_io_update_bio
+  __tracepoint_android_vh_dm_update_clone_bio
+  __tracepoint_android_vh_loop_prepare_cmd
+  __tracepoint_android_vh_ufs_mcq_abort
+  __tracepoint_android_vh_ufs_mcq_clear_cmd
+  __tracepoint_android_vh_ufs_mcq_clear_pending
+  __tracepoint_android_vh_ufs_mcq_config
+  __tracepoint_android_vh_ufs_mcq_get_outstanding_reqs
+  __tracepoint_android_vh_ufs_mcq_handler
+  __tracepoint_android_vh_ufs_mcq_has_oustanding_reqs
+  __tracepoint_android_vh_ufs_mcq_hba_capabilities
+  __tracepoint_android_vh_ufs_mcq_make_hba_operational
+  __tracepoint_android_vh_ufs_mcq_map_tag
+  __tracepoint_android_vh_ufs_mcq_max_tag
+  __tracepoint_android_vh_ufs_mcq_print_trs
+  __tracepoint_android_vh_ufs_mcq_send_command
+  __tracepoint_android_vh_ufs_mcq_set_sqid
+  __tracepoint_android_vh_ufs_update_sdev
+  __tracepoint_android_vh_ufs_use_mcq_hooks
+  ufshcd_alloc_host
+  ufshcd_config_pwr_mode
+  ufshcd_dealloc_host
+  ufshcd_hba_enable
+  ufshcd_make_hba_operational
+  ufshcd_map_desc_id_to_length
+  ufshcd_query_attr_retry
+  ufshcd_query_flag_retry
+  ufshcd_read_desc_param
+  ufshcd_update_evt_hist
+  utf16s_to_utf8s
+  wait_for_completion_io_timeout
+
+#required by bfq module
+  bdi_dev_name
+  blkcg_print_blkgs
+  blkg_conf_finish
+  blkg_conf_prep
+  __blkg_prfill_rwstat
+  blkg_prfill_rwstat
+  __blkg_prfill_u64
+  blkg_rwstat_exit
+  blkg_rwstat_init
+  blkg_rwstat_recursive_sum
+  io_cgrp_subsys_on_dfl_key
+  ioc_lookup_icq
+  percpu_counter_add_batch
+
+#required by mq-deadline module
+  blk_mq_debugfs_rq_show
+  seq_list_start
+  seq_list_next
+  __blk_mq_debugfs_rq_show
+
+#required by cs35l41 module
+  regcache_drop_region
+  regmap_async_complete
+  regmap_multi_reg_write
+  regmap_multi_reg_write_bypassed
+  regmap_raw_read
+  regmap_raw_write
+  regmap_raw_write_async
+  regulator_bulk_enable
+  snd_compr_stop_error
+  snd_ctl_boolean_mono_info
+  snd_pcm_format_physical_width
+  snd_pcm_hw_constraint_list
+  snd_soc_bytes_tlv_callback
+  snd_soc_component_disable_pin
+  snd_soc_component_force_enable_pin
+  snd_soc_get_volsw_range
+  snd_soc_info_volsw_range
+  snd_soc_put_volsw_range
+
+#required by mtd module
+  balance_dirty_pages_ratelimited
+  bdi_alloc
+  bdi_put
+  bdi_register
+  blkdev_get_by_dev
+  blkdev_get_by_path
+  blkdev_put
+  blk_mq_alloc_sq_tag_set
+  __blk_mq_end_request
+  blk_mq_freeze_queue
+  blk_mq_quiesce_queue
+  blk_mq_start_request
+  blk_mq_unfreeze_queue
+  blk_mq_unquiesce_queue
+  blk_queue_write_cache
+  blk_update_request
+  deactivate_locked_super
+  fixed_size_llseek
+  generic_shutdown_super
+  kmsg_dump_get_buffer
+  kmsg_dump_register
+  kmsg_dump_rewind
+  kmsg_dump_unregister
+  ktime_get_coarse_real_ts64
+  lockref_get
+  logfc
+  lookup_bdev
+  name_to_dev_t
+  nvmem_register
+  nvmem_unregister
+  proc_create_single_data
+  read_cache_page
+  rq_flush_dcache_pages
+  set_disk_ro
+  set_page_dirty
+  sget_fc
+  simple_strtoul
+  sync_blockdev
+  wait_for_device_probe
+
+#required by millet.ko
+  freezer_cgrp_subsys
+  __traceiter_android_vh_binder_alloc_new_buf_locked
+  __traceiter_android_vh_binder_preset
+  __traceiter_android_vh_binder_reply
+  __traceiter_android_vh_binder_trans
+  __traceiter_android_vh_binder_wait_for_work
+  __traceiter_android_vh_do_send_sig_info
+  __tracepoint_android_vh_binder_alloc_new_buf_locked
+  __tracepoint_android_vh_binder_preset
+  __tracepoint_android_vh_binder_reply
+  __tracepoint_android_vh_binder_trans
+  __tracepoint_android_vh_binder_wait_for_work
+  __tracepoint_android_vh_do_send_sig_info
+
+#required by mi_sched.ko
+  find_user
+  free_uid
+  jiffies_64
+  __traceiter_android_vh_free_task
+  __traceiter_android_vh_scheduler_tick
+  __tracepoint_android_vh_free_task
+  __tracepoint_android_vh_scheduler_tick
+
+#required by migt.ko
+  __traceiter_android_rvh_after_dequeue_task
+  __traceiter_android_rvh_after_enqueue_task
+  __traceiter_android_vh_map_util_freq
+  __traceiter_android_vh_map_util_freq_new
+  __tracepoint_android_rvh_after_dequeue_task
+  __tracepoint_android_rvh_after_enqueue_task
+  __tracepoint_android_vh_map_util_freq
+  __tracepoint_android_vh_map_util_freq_new
+
+#required by turbo.ko
+
+#required by fas.ko
+  __traceiter_android_rvh_check_preempt_tick
+  __traceiter_android_rvh_dequeue_entity
+  __traceiter_android_rvh_enqueue_entity
+  __tracepoint_android_rvh_check_preempt_tick
+  __tracepoint_android_rvh_dequeue_entity
+  __tracepoint_android_rvh_enqueue_entity
+
+#required by pm8941-pwrkey.ko module
+  console_printk
+  console_verbose
+
+#required by binderinfo.ko module
+  __traceiter_android_vh_binder_print_transaction_info
+  __traceiter_android_vh_binder_transaction_init
+  __traceiter_binder_txn_latency_free
+  __tracepoint_android_vh_binder_print_transaction_info
+  __tracepoint_android_vh_binder_transaction_init
+  __tracepoint_binder_txn_latency_free
+
+#required by reclaim module
+  __traceiter_android_vh_tune_scan_type
+  __traceiter_android_vh_tune_swappiness
+  __tracepoint_android_vh_tune_scan_type
+  __tracepoint_android_vh_tune_swappiness
+
+#required by msm_drm.ko module
+  drm_get_connector_type_name
+
+#required by mi_gamekey.ko module
+  gpio_request_array
+
+
+#required by xm_power_debug.ko module
+  wakeup_sources_read_lock
+  wakeup_sources_read_unlock
+  wakeup_sources_walk_next
+  wakeup_sources_walk_start
+
+#required by swinfo.ko module
+  proc_set_size
+
+#required by msm_rtb.ko module
+  __traceiter_irq_handler_entry
+  __traceiter_rwmmio_read
+  __traceiter_rwmmio_write
+  __tracepoint_irq_handler_entry
+  __tracepoint_rwmmio_read
+  __tracepoint_rwmmio_write
+
+#required by ax88796b.ko module
+  phy_resolve_aneg_linkmode
+
+#required by metis.ko module
+  cpuset_cpus_allowed
+  __traceiter_android_rvh_cpuset_fork
+  __traceiter_android_rvh_dequeue_task
+  __traceiter_android_rvh_set_cpus_allowed_comm
+  __traceiter_android_vh_alter_mutex_list_add
+  __traceiter_android_vh_mutex_wait_start
+  __traceiter_android_vh_rwsem_read_wait_start
+  __traceiter_android_vh_rwsem_write_wait_start
+  __traceiter_android_vh_sched_setaffinity_early
+  __tracepoint_android_rvh_cpuset_fork
+  __tracepoint_android_rvh_dequeue_task
+  __tracepoint_android_rvh_set_cpus_allowed_comm
+  __tracepoint_android_vh_alter_mutex_list_add
+  __tracepoint_android_vh_mutex_wait_start
+  __tracepoint_android_vh_rwsem_read_wait_start
+  __tracepoint_android_vh_rwsem_write_wait_start
+  __tracepoint_android_vh_sched_setaffinity_early
+
+#required by perf_helper.ko
+  try_to_free_mem_cgroup_pages
+
+#required by debug_ext.ko
+  of_find_all_nodes
+
+#required by mi_freqwdg.ko
+  __traceiter_android_rvh_dequeue_task_fair
+  __traceiter_android_rvh_entity_tick
+  __traceiter_android_vh_freq_qos_add_request
+  __traceiter_android_vh_freq_qos_remove_request
+  __traceiter_android_vh_freq_qos_update_request
+  __tracepoint_android_rvh_dequeue_task_fair
+  __tracepoint_android_rvh_entity_tick
+  __tracepoint_android_vh_freq_qos_add_request
+  __tracepoint_android_vh_freq_qos_remove_request
+  __tracepoint_android_vh_freq_qos_update_request
+
+#required by binder_prio module
+  __traceiter_android_vh_binder_priority_skip
+  __tracepoint_android_vh_binder_priority_skip
+
+#required by mi_mempool.ko module
+  __traceiter_android_vh_alloc_pages_failure_bypass
+  __traceiter_android_vh_alloc_pages_reclaim_bypass
+  __traceiter_android_vh_mmput
+  __tracepoint_android_vh_alloc_pages_failure_bypass
+  __tracepoint_android_vh_alloc_pages_reclaim_bypass
+  __tracepoint_android_vh_mmput
+
+#required by mifs.ko module
+  add_swap_extent
+  bdev_read_only
+  bio_associate_blkg_from_css
+  bioset_exit
+  bioset_init
+  blkdev_issue_discard
+  blkdev_issue_zeroout
+  blk_op_str
+  capable_wrt_inode_uidgid
+  __cleancache_get_page
+  clear_page_dirty_for_io
+  current_umask
+  dentry_path_raw
+  d_instantiate_new
+  d_invalidate
+  dotdot_name
+  dqget
+  dqput
+  dquot_acquire
+  dquot_alloc
+  dquot_alloc_inode
+  __dquot_alloc_space
+  dquot_claim_space_nodirty
+  dquot_commit
+  dquot_commit_info
+  dquot_destroy
+  dquot_disable
+  dquot_drop
+  dquot_file_open
+  dquot_free_inode
+  __dquot_free_space
+  dquot_get_dqblk
+  dquot_get_next_dqblk
+  dquot_get_next_id
+  dquot_get_state
+  dquot_initialize
+  dquot_initialize_needed
+  dquot_load_quota_inode
+  dquot_mark_dquot_dirty
+  dquot_quota_off
+  dquot_quota_on
+  dquot_quota_on_mount
+  dquot_release
+  dquot_resume
+  dquot_set_dqblk
+  dquot_set_dqinfo
+  __dquot_transfer
+  dquot_transfer
+  dquot_writeback_dquots
+  d_tmpfile
+  end_page_writeback
+  errseq_set
+  evict_inodes
+  fault_in_iov_iter_readable
+  fiemap_fill_next_extent
+  fiemap_prep
+  fileattr_fill_flags
+  filemap_check_errors
+  filemap_fault
+  filemap_fdatawrite
+  filemap_map_pages
+  filemap_read
+  __filemap_set_wb_err
+  filemap_write_and_wait_range
+  file_modified
+  file_update_time
+  find_inode_nowait
+  freeze_bdev
+  freeze_super
+  fscrypt_decrypt_bio
+  fscrypt_dio_supported
+  fscrypt_drop_inode
+  fscrypt_encrypt_pagecache_blocks
+  __fscrypt_encrypt_symlink
+  fscrypt_file_open
+  fscrypt_fname_alloc_buffer
+  fscrypt_fname_disk_to_usr
+  fscrypt_fname_free_buffer
+  fscrypt_fname_siphash
+  fscrypt_free_bounce_page
+  fscrypt_free_inode
+  fscrypt_get_symlink
+  fscrypt_has_permitted_context
+  __fscrypt_inode_uses_inline_crypto
+  fscrypt_ioctl_add_key
+  fscrypt_ioctl_get_key_status
+  fscrypt_ioctl_get_nonce
+  fscrypt_ioctl_get_policy
+  fscrypt_ioctl_get_policy_ex
+  fscrypt_ioctl_remove_key
+  fscrypt_ioctl_remove_key_all_users
+  fscrypt_ioctl_set_policy
+  fscrypt_limit_io_blocks
+  fscrypt_match_name
+  fscrypt_mergeable_bio
+  __fscrypt_prepare_link
+  __fscrypt_prepare_lookup
+  fscrypt_prepare_new_inode
+  __fscrypt_prepare_readdir
+  __fscrypt_prepare_rename
+  __fscrypt_prepare_setattr
+  fscrypt_prepare_symlink
+  fscrypt_put_encryption_info
+  fscrypt_set_bio_crypt_ctx
+  fscrypt_set_context
+  fscrypt_set_test_dummy_encryption
+  fscrypt_setup_filename
+  fscrypt_show_test_dummy_encryption
+  fscrypt_symlink_getattr
+  fscrypt_zeroout_range
+  fs_kobj
+  fsverity_cleanup_inode
+  fsverity_enqueue_verify_work
+  fsverity_file_open
+  fsverity_ioctl_enable
+  fsverity_ioctl_measure
+  fsverity_ioctl_read_metadata
+  fsverity_prepare_setattr
+  fsverity_verify_bio
+  fsverity_verify_page
+  generate_random_uuid
+  generic_fadvise
+  generic_file_llseek_size
+  generic_set_encrypted_ci_d_ops
+  grab_cache_page_write_begin
+  iget_locked
+  inode_dio_wait
+  inode_init_owner
+  inode_newsize_ok
+  inode_owner_or_capable
+  inode_set_flags
+  insert_inode_locked
+  iomap_dio_complete
+  __iomap_dio_rw
+  iov_iter_alignment
+  iter_file_splice_write
+  kernfs_get
+  kset_register
+  LZ4_compress_default
+  LZ4_compress_HC
+  LZ4_decompress_safe
+  migrate_page_move_mapping
+  migrate_page_states
+  mnt_drop_write_file
+  mnt_want_write_file
+  noop_backing_dev_info
+  noop_direct_IO
+  page_cache_ra_unbounded
+  page_cache_sync_ra
+  pagecache_write_begin
+  pagecache_write_end
+  __page_file_mapping
+  page_symlink
+  pagevec_lookup_range
+  pagevec_lookup_range_tag
+  __pagevec_release
+  percpu_counter_add_batch
+  percpu_counter_batch
+  percpu_counter_destroy
+  __percpu_counter_init
+  percpu_counter_set
+  __percpu_counter_sum
+  posix_acl_alloc
+  posix_acl_chmod
+  posix_acl_equiv_mode
+  redirty_page_for_writepage
+  security_inode_init_security
+  seq_escape
+  set_cached_acl
+  __set_page_dirty_nobuffers
+  set_task_ioprio
+  shrink_dcache_sb
+  __sync_dirty_buffer
+  sync_inode_metadata
+  sync_inodes_sb
+  tag_pages_for_writeback
+  __test_set_page_writeback
+  thaw_bdev
+  thaw_super
+  touch_atime
+  __traceiter_android_fs_dataread_end
+  __traceiter_android_fs_dataread_start
+  __traceiter_android_fs_datawrite_end
+  __traceiter_android_fs_datawrite_start
+  __tracepoint_android_fs_dataread_end
+  __tracepoint_android_fs_dataread_start
+  __tracepoint_android_fs_datawrite_end
+  __tracepoint_android_fs_datawrite_start
+  truncate_inode_pages_range
+  truncate_pagecache_range
+  utf8_casefold
+  utf8_load
+  utf8_strncasecmp_folded
+  utf8_unload
+  vfs_setpos
+  wait_for_completion_io
+  wait_for_stable_page
+  wait_on_page_writeback
+  wbc_account_cgroup_owner
+  __xa_clear_mark
+  xa_get_mark
+  ZSTD_compressStream
+  ZSTD_CStreamWorkspaceBound
+  ZSTD_decompressStream
+  ZSTD_DStreamWorkspaceBound
+  ZSTD_endStream
+  ZSTD_getParams
+  ZSTD_initCStream
+  ZSTD_initDStream
+  ZSTD_maxCLevel
+
+#required by cache module
+  d_delete
+  mem_cgroup_update_lru_size
+  __mod_lruvec_state
+  __mod_zone_page_state
+
+  __traceiter_android_rvh_ctl_dirty_rate
+  __tracepoint_android_rvh_ctl_dirty_rate
+
+#required by io module
+  __traceiter_android_vh_psi_group
+  __tracepoint_android_vh_psi_group
+
+# required by mi_mem_center.ko
+  __traceiter_android_vh_rmqueue_smallest_bypass
+  __tracepoint_android_vh_rmqueue_smallest_bypass
+  __traceiter_android_vh_free_one_page_bypass
+  __tracepoint_android_vh_free_one_page_bypass
diff --git a/android/abi_gki_aarch64_zeku b/android/abi_gki_aarch64_zeku
new file mode 100644
index 0000000..3a8ca98
--- /dev/null
+++ b/android/abi_gki_aarch64_zeku
@@ -0,0 +1,1262 @@
+[abi_symbol_list]
+# commonly used symbols
+  access_process_vm
+  add_uevent_var
+  alloc_chrdev_region
+  __alloc_pages
+  __alloc_percpu
+  __alloc_skb
+  alloc_workqueue
+  __arch_copy_from_user
+  __arch_copy_to_user
+  arm64_const_caps_ready
+  arm64_use_ng_mappings
+  __arm_smccc_smc
+  atomic_notifier_chain_register
+  atomic_notifier_chain_unregister
+  bio_endio
+  bitmap_free
+  bitmap_parselist
+  bitmap_print_to_pagebuf
+  bitmap_zalloc
+  __blk_alloc_disk
+  blk_cleanup_disk
+  blk_queue_flag_clear
+  blk_queue_flag_set
+  blk_queue_physical_block_size
+  bus_register
+  bus_unregister
+  cancel_work_sync
+  cdev_add
+  cdev_del
+  cdev_init
+  __cfi_slowpath_diag
+  __check_object_size
+  __class_create
+  class_destroy
+  __class_register
+  class_unregister
+  clk_disable
+  clk_enable
+  clk_get_rate
+  clk_prepare
+  clk_put
+  clk_set_rate
+  clk_unprepare
+  compat_ptr_ioctl
+  complete
+  component_add
+  component_del
+  __const_udelay
+  contig_page_data
+  cpu_bit_bitmap
+  __cpuhp_remove_state
+  __cpuhp_setup_state
+  cpu_hwcap_keys
+  cpu_hwcaps
+  cpumask_next
+  cpu_number
+  __cpu_online_mask
+  __cpu_possible_mask
+  __cpu_present_mask
+  crc32_le
+  crypto_alloc_base
+  crypto_alloc_shash
+  crypto_comp_compress
+  crypto_comp_decompress
+  crypto_destroy_tfm
+  debugfs_create_dir
+  debugfs_create_file
+  debugfs_create_regset32
+  debugfs_remove
+  default_llseek
+  delayed_work_timer_fn
+  del_gendisk
+  destroy_workqueue
+  dev_driver_string
+  _dev_err
+  device_add
+  device_add_disk
+  device_create
+  device_create_file
+  device_del
+  device_destroy
+  device_for_each_child
+  device_get_match_data
+  device_initialize
+  device_property_present
+  device_property_read_u32_array
+  device_register
+  device_remove_file
+  device_unregister
+  _dev_info
+  devm_clk_get
+  devm_clk_put
+  devm_free_irq
+  devm_ioremap_resource
+  devm_ioremap_wc
+  devm_kfree
+  devm_kmalloc
+  devm_kstrdup
+  devm_mbox_controller_register
+  devm_platform_get_and_ioremap_resource
+  devm_platform_ioremap_resource
+  devm_platform_ioremap_resource_byname
+  __devm_regmap_init
+  __devm_regmap_init_i2c
+  devm_regulator_get
+  devm_regulator_register
+  devm_request_threaded_irq
+  __devm_reset_control_get
+  devm_thermal_zone_of_sensor_register
+  _dev_notice
+  _dev_printk
+  dev_set_name
+  _dev_warn
+  disable_irq
+  disable_irq_nosync
+  dma_alloc_attrs
+  dma_buf_attach
+  dma_buf_begin_cpu_access
+  dma_buf_detach
+  dma_buf_end_cpu_access
+  dma_buf_export
+  dma_buf_fd
+  dma_buf_get
+  dma_buf_map_attachment
+  dma_buf_put
+  dma_buf_unmap_attachment
+  dma_buf_vmap
+  dma_buf_vunmap
+  dma_free_attrs
+  dma_heap_add
+  dma_heap_find
+  dma_heap_get_name
+  dmam_alloc_attrs
+  dma_map_page_attrs
+  dma_map_sgtable
+  dma_set_coherent_mask
+  dma_set_mask
+  dma_sync_sg_for_cpu
+  dma_sync_sg_for_device
+  dma_sync_single_for_device
+  dma_unmap_page_attrs
+  dma_unmap_sg_attrs
+  down_read
+  down_write
+  d_path
+  driver_create_file
+  driver_register
+  driver_unregister
+  dump_stack
+  enable_irq
+  _find_first_zero_bit
+  finish_wait
+  flush_dcache_page
+  flush_work
+  flush_workqueue
+  free_irq
+  __free_pages
+  free_pages
+  free_percpu
+  generic_handle_irq
+  genlmsg_put
+  genl_register_family
+  genl_unregister_family
+  get_cpu_device
+  get_device
+  __get_free_pages
+  get_zeroed_page
+  gic_nonsecure_priorities
+  handle_edge_irq
+  handle_level_irq
+  hrtimer_cancel
+  hrtimer_init
+  hrtimer_start_range_ns
+  i2c_del_driver
+  i2c_register_driver
+  idr_alloc
+  idr_destroy
+  idr_find
+  idr_remove
+  init_net
+  __init_rwsem
+  __init_swait_queue_head
+  init_task
+  init_timer_key
+  init_wait_entry
+  __init_waitqueue_head
+  iommu_get_domain_for_dev
+  iommu_unmap
+  __ioremap
+  iounmap
+  __irq_domain_add
+  irq_domain_remove
+  irq_get_irq_data
+  irq_of_parse_and_map
+  __irq_resolve_mapping
+  irq_set_irq_wake
+  is_vmalloc_addr
+  jiffies
+  jiffies_to_msecs
+  kasan_flag_enabled
+  kasprintf
+  kernel_kobj
+  kfree
+  kfree_skb
+  kimage_voffset
+  __kmalloc
+  kmalloc_caches
+  kmalloc_order_trace
+  kmem_cache_alloc_trace
+  kmemdup
+  kobject_init_and_add
+  kobject_put
+  kstrtoint
+  kstrtou16
+  kstrtouint
+  kstrtoull
+  kthread_create_on_node
+  __kthread_init_worker
+  kthread_should_stop
+  kthread_stop
+  kthread_worker_fn
+  ktime_get
+  ktime_get_mono_fast_ns
+  ktime_get_real_ts64
+  ktime_get_with_offset
+  kvfree
+  kvmalloc_node
+  __list_add_valid
+  __list_del_entry_valid
+  mbox_free_channel
+  mbox_request_channel
+  memcpy
+  __memcpy_toio
+  memremap
+  mem_section
+  memset
+  memstart_addr
+  memunmap
+  misc_deregister
+  misc_register
+  module_layout
+  __msecs_to_jiffies
+  msleep
+  __mutex_init
+  mutex_is_locked
+  mutex_lock
+  mutex_unlock
+  netlink_unicast
+  nla_put
+  nr_cpu_ids
+  __num_online_cpus
+  of_address_to_resource
+  of_clk_get_by_name
+  of_device_is_available
+  of_dma_is_coherent
+  of_find_compatible_node
+  of_find_device_by_node
+  of_find_property
+  of_get_child_by_name
+  of_get_property
+  of_get_regulator_init_data
+  of_iomap
+  of_match_device
+  of_match_node
+  of_n_addr_cells
+  of_n_size_cells
+  of_parse_phandle
+  of_parse_phandle_with_fixed_args
+  of_phandle_iterator_init
+  of_phandle_iterator_next
+  of_platform_depopulate
+  of_platform_populate
+  of_property_count_elems_of_size
+  of_property_match_string
+  of_property_read_string
+  of_property_read_string_helper
+  of_property_read_u32_index
+  of_property_read_u64
+  of_property_read_variable_u32_array
+  of_property_read_variable_u8_array
+  of_reserved_mem_lookup
+  page_endio
+  panic
+  panic_notifier_list
+  param_ops_bool
+  param_ops_int
+  param_ops_uint
+  pci_disable_device
+  pci_enable_device
+  pci_irq_vector
+  pci_read_config_dword
+  __pci_register_driver
+  pci_unregister_driver
+  PDE_DATA
+  __per_cpu_offset
+  platform_bus_type
+  platform_device_unregister
+  __platform_driver_register
+  platform_driver_unregister
+  platform_get_irq
+  platform_get_irq_byname
+  platform_get_resource
+  platform_get_resource_byname
+  __pm_runtime_disable
+  pm_runtime_enable
+  __pm_runtime_idle
+  __pm_runtime_resume
+  pm_runtime_set_autosuspend_delay
+  __pm_runtime_set_status
+  __pm_runtime_suspend
+  __pm_runtime_use_autosuspend
+  preempt_schedule
+  preempt_schedule_notrace
+  prepare_to_wait_event
+  print_hex_dump
+  _printk
+  proc_create
+  proc_create_data
+  proc_mkdir
+  proc_remove
+  put_device
+  __put_page
+  __put_task_struct
+  queue_delayed_work_on
+  queue_work_on
+  ___ratelimit
+  _raw_read_lock
+  _raw_read_unlock
+  _raw_spin_lock
+  _raw_spin_lock_bh
+  _raw_spin_lock_irqsave
+  _raw_spin_unlock
+  _raw_spin_unlock_bh
+  _raw_spin_unlock_irqrestore
+  _raw_write_lock
+  _raw_write_unlock
+  __rcu_read_lock
+  __rcu_read_unlock
+  refcount_warn_saturate
+  __register_blkdev
+  register_chrdev_region
+  register_restart_handler
+  __register_rpmsg_driver
+  regmap_read
+  regmap_update_bits_base
+  regmap_write
+  regulator_disable
+  regulator_enable
+  regulator_is_enabled
+  regulator_set_voltage
+  remap_pfn_range
+  remove_proc_entry
+  request_threaded_irq
+  reset_control_assert
+  reset_control_deassert
+  rpmsg_create_ept
+  rpmsg_register_device
+  rpmsg_send
+  rpmsg_trysend
+  rproc_add
+  rproc_add_carveout
+  rproc_alloc
+  rproc_boot
+  rproc_del
+  rproc_elf_get_boot_addr
+  rproc_elf_load_rsc_table
+  rproc_elf_load_segments
+  rproc_elf_sanity_check
+  rproc_free
+  rproc_mem_entry_init
+  rproc_of_resm_mem_entry_init
+  rproc_vq_interrupt
+  runqueues
+  sched_clock
+  sched_set_fifo
+  schedule
+  schedule_timeout
+  scnprintf
+  seq_lseek
+  seq_printf
+  seq_puts
+  seq_read
+  seq_release
+  seq_write
+  set_capacity
+  set_cpus_allowed_ptr
+  sg_alloc_table
+  sg_copy_to_buffer
+  sg_free_table
+  sg_init_one
+  sg_nents
+  sg_next
+  __sg_page_iter_next
+  __sg_page_iter_start
+  simple_read_from_buffer
+  single_open
+  single_release
+  skb_dequeue
+  skb_put
+  skb_queue_tail
+  snprintf
+  __spi_register_driver
+  spi_sync
+  sprintf
+  sscanf
+  __stack_chk_fail
+  stack_trace_save
+  strchr
+  strcmp
+  strcpy
+  strim
+  strlcat
+  strlcpy
+  strlen
+  strncmp
+  strncpy
+  strnlen
+  strscpy
+  strstr
+  __sw_hweight64
+  syscon_regmap_lookup_by_phandle
+  sysfs_create_group
+  sysfs_emit
+  sysfs_remove_group
+  sysfs_streq
+  system_wq
+  sys_tz
+  tasklet_init
+  __tasklet_schedule
+  thermal_zone_device_update
+  tracepoint_probe_register
+  tracepoint_probe_unregister
+  __ubsan_handle_cfi_check_fail_abort
+  __udelay
+  unregister_blkdev
+  unregister_chrdev_region
+  unregister_rpmsg_driver
+  up_read
+  up_write
+  usleep_range_state
+  vabits_actual
+  vfree
+  vmalloc
+  vmalloc_to_page
+  vmap
+  vscnprintf
+  vsnprintf
+  vunmap
+  vzalloc
+  wait_for_completion
+  wait_for_completion_interruptible
+  wait_for_completion_interruptible_timeout
+  wait_for_completion_timeout
+  __wake_up
+  wake_up_process
+  __warn_printk
+  __xa_alloc
+  xa_erase
+
+# required by ccree.ko
+  bcmp
+  crypto_authenc_extractkeys
+  crypto_register_aead
+  crypto_register_ahash
+  crypto_register_skcipher
+  crypto_shash_digest
+  crypto_unregister_aead
+  crypto_unregister_ahash
+  crypto_unregister_skcipher
+  debugfs_create_bool
+  des_expand_key
+  devm_clk_get_optional
+  dma_map_sg_attrs
+  dma_pool_alloc
+  dma_pool_create
+  dma_pool_destroy
+  dma_pool_free
+  dma_supported
+  dma_sync_single_for_cpu
+  kfree_sensitive
+  of_device_get_match_data
+  sg_copy_buffer
+  sg_nents_for_len
+  sg_zero_buffer
+  tasklet_kill
+
+# required by chunk_heap.ko
+  gen_pool_add_owner
+  gen_pool_create
+  gen_pool_dma_alloc_align
+  gen_pool_free_owner
+  of_property_read_u64_index
+
+# required by dmabuf_monitor.ko
+  dma_heap_put
+  get_each_dmabuf
+
+# required by dw_timer.ko
+  clockevent_delta2ns
+  clockevents_register_device
+  clocks_calc_mult_shift
+  __clocksource_register_scale
+  of_find_matching_node_and_match
+  __of_reset_control_get
+  sched_clock_register
+
+# required by dwc3-zeku.ko
+  device_set_wakeup_capable
+  platform_device_add
+  platform_device_alloc
+  platform_device_del
+  platform_device_put
+
+# required by fbox.ko
+  down_interruptible
+  find_pid_ns
+  pid_task
+  rtc_time64_to_tm
+  seq_open_private
+  seq_release_private
+  strncat
+  task_active_pid_ns
+  up
+  vmalloc_user
+
+# required by feng-regulator.ko
+  rdev_get_drvdata
+
+# required by ffa-module.ko
+  alloc_pages_exact
+  arm_smccc_1_1_get_conduit
+  arm_smccc_1_2_hvc
+  arm_smccc_1_2_smc
+  arm_smccc_get_version
+  bus_find_device
+  bus_for_each_dev
+  device_match_any
+  free_pages_exact
+  uuid_null
+  uuid_parse
+
+# required by fs_monitor.ko
+  get_fs_type
+  iterate_supers_type
+  __traceiter_wbc_writepage
+  __tracepoint_wbc_writepage
+
+# required by gnpu-driver.ko
+  dma_heap_buffer_alloc
+  init_iova_domain
+  iommu_domain_alloc
+  iommu_domain_free
+  iommu_present
+  iova_cache_get
+  iova_cache_put
+  netlink_broadcast
+  nonseekable_open
+  of_device_is_compatible
+  xa_load
+
+# required by hang_monitor.ko
+  find_get_pid
+  get_pid_task
+  put_pid
+  tasklist_lock
+  __task_pid_nr_ns
+
+# required by i2c.ko
+  devm_gpiod_get_optional
+  i2c_add_numbered_adapter
+  i2c_del_adapter
+  i2c_generic_scl_recovery
+  i2c_parse_fw_timings
+  i2c_recover_bus
+  pm_suspend_global_flags
+  syscon_node_to_regmap
+
+# required by i3c-master-zeku.ko
+  i3c_master_get_free_addr
+  i3c_master_register
+  i3c_master_set_info
+  i3c_master_unregister
+
+# required by mailbox.ko
+  irq_modify_status
+  irq_set_chip_and_handler_name
+  irq_set_chip_data
+  of_count_phandle_with_args
+  of_find_node_with_property
+  of_parse_phandle_with_args
+
+# required by maricam_mem_mgr.ko
+  dma_heap_bufferfd_alloc
+
+# required by mcDrvModule.ko
+  blocking_notifier_call_chain
+  blocking_notifier_chain_register
+  blocking_notifier_chain_unregister
+  crypto_shash_final
+  crypto_shash_update
+  debugfs_create_u32
+  freezing_slow_path
+  get_task_mm
+  krealloc
+  kstrtol_from_user
+  kstrtouint_from_user
+  kthread_queue_work
+  ktime_get_raw_ts64
+  mmput
+  pin_user_pages
+  __refrigerator
+  release_pages
+  sg_alloc_table_from_pages_segment
+  sg_miter_next
+  sg_miter_start
+  sg_miter_stop
+  system_freezing_cnt
+  unpin_user_page
+  wait_for_completion_killable
+
+# required by memory_monitor.ko
+  __traceiter_android_vh_alloc_pages_slowpath
+  __tracepoint_android_vh_alloc_pages_slowpath
+
+# required by mpam_arch.ko
+  bitmap_alloc
+  _find_first_bit
+  _find_next_bit
+  kobject_add
+  kobject_init
+  kobj_sysfs_ops
+  on_each_cpu_cond_mask
+
+# required by mpam_policy.ko
+  android_rvh_probe_register
+  current_time
+  d_add
+  d_alloc_name
+  d_make_root
+  dput
+  find_task_by_vpid
+  fs_kobj
+  get_next_ino
+  get_tree_single
+  init_user_ns
+  kill_litter_super
+  new_inode
+  register_filesystem
+  simple_dir_inode_operations
+  simple_dir_operations
+  simple_statfs
+  smp_call_function_single
+  sysfs_create_mount_point
+  sysfs_remove_mount_point
+  __traceiter_android_rvh_sched_fork
+  __traceiter_android_vh_mpam_set
+  __tracepoint_android_rvh_sched_fork
+  __tracepoint_android_vh_mpam_set
+  unregister_filesystem
+
+# required by mpmm_cluster.ko
+  cpu_subsys
+
+# required by mrdump.ko
+  copy_from_kernel_nofault
+  init_uts_ns
+  kernfs_path_from_node
+  kimage_vaddr
+  __memset_io
+  of_find_node_opts_by_path
+  oops_in_progress
+  param_get_ulong
+  param_set_ulong
+  _raw_read_trylock
+  _raw_spin_trylock
+  register_die_notifier
+  register_module_notifier
+  strcspn
+  strnstr
+  unregister_die_notifier
+  unregister_module_notifier
+
+# required by oplus_touch.ko
+  cancel_delayed_work
+  cancel_delayed_work_sync
+  complete_all
+  devm_gpio_request
+  devm_input_allocate_device
+  devm_pinctrl_get
+  gpiod_direction_output_raw
+  gpiod_get_raw_value
+  gpiod_to_irq
+  gpio_free
+  gpio_request
+  gpio_to_desc
+  hrtimer_active
+  i2c_transfer
+  iio_channel_get
+  iio_read_channel_processed
+  input_allocate_device
+  input_event
+  input_free_device
+  input_mt_init_slots
+  input_mt_report_slot_state
+  input_register_device
+  input_set_abs_params
+  int_sqrt
+  irq_to_desc
+  __kfifo_alloc
+  kobject_create_and_add
+  of_get_named_gpio_flags
+  param_ops_string
+  pinctrl_lookup_state
+  pinctrl_select_state
+  __pm_relax
+  __pm_stay_awake
+  regulator_count_voltages
+  regulator_get
+  regulator_get_voltage
+  regulator_put
+  regulator_set_load
+  release_firmware
+  remove_proc_subtree
+  request_firmware
+  simple_open
+  strcat
+  thermal_zone_get_temp
+  thermal_zone_get_zone_by_name
+  wakeup_source_register
+  wakeup_source_unregister
+
+# required by pcie-ep-test.ko
+  _dev_alert
+  pci_alloc_irq_vectors_affinity
+  pci_disable_msi
+  pci_set_master
+
+# required by phy-zeku-usbdrd.ko
+  devm_phy_create
+
+# required by protect_heap.ko
+  dma_heap_get_dev
+
+# required by pta_drv.ko
+  add_wait_queue
+  alloc_netdev_mqs
+  capable
+  csum_ipv6_magic
+  csum_partial
+  csum_tcpudp_nofold
+  _ctype
+  __dev_kfree_skb_any
+  dql_completed
+  ether_setup
+  free_netdev
+  get_random_bytes
+  __get_task_comm
+  in_aton
+  init_dummy_netdev
+  __ioread32_copy
+  kfree_const
+  kstrdup_const
+  kstrtobool
+  kvasprintf
+  __napi_alloc_skb
+  napi_complete_done
+  napi_disable
+  napi_enable
+  __napi_schedule
+  napi_schedule_prep
+  __netdev_alloc_skb
+  netdev_set_num_tc
+  netdev_set_tc_queue
+  netif_carrier_off
+  netif_carrier_on
+  netif_napi_add
+  netif_receive_skb_list
+  netif_rx
+  netif_schedule_queue
+  netif_tx_wake_queue
+  pskb_expand_head
+  raw_notifier_call_chain
+  raw_notifier_chain_register
+  raw_notifier_chain_unregister
+  register_netdev
+  remove_wait_queue
+  rproc_shutdown
+  skb_add_rx_frag
+  skb_dump
+  skb_pull
+  skb_push
+  sock_create_kern
+  sock_release
+  softnet_data
+  strcasecmp
+  synchronize_net
+  sysfs_emit_at
+  unregister_netdev
+  wait_woken
+  woken_wake_function
+
+# required by ramdisk.ko
+  vm_map_ram
+
+# required by reset-z3.ko
+  reset_controller_register
+
+# required by sc_heap.ko
+  alloc_iova
+  find_iova
+  __free_iova
+  iommu_map_sg
+
+# required by sdhci-zeku.ko
+  dma_get_required_mask
+  mmc_of_parse
+  sdhci_add_host
+  sdhci_adma_write_desc
+  sdhci_enable_clk
+  sdhci_get_property
+  sdhci_pltfm_free
+  sdhci_pltfm_init
+  sdhci_remove_host
+  sdhci_reset
+  sdhci_resume_host
+  sdhci_set_bus_width
+  sdhci_set_uhs_signaling
+  sdhci_suspend_host
+
+# required by sme-rproc.ko
+  cma_alloc
+  cma_release
+  dma_contiguous_default_area
+  iommu_map
+
+# required by snd_machine.ko
+  devm_snd_soc_register_card
+  snd_soc_of_parse_card_name
+  snd_soc_pm_ops
+  snd_soc_unregister_card
+
+# required by snd_platform.ko
+  snd_ctl_add
+  snd_ctl_new1
+  snd_pcm_format_width
+  snd_pcm_hw_constraint_integer
+  snd_pcm_hw_constraint_list
+  snd_pcm_hw_constraint_minmax
+  snd_pcm_lib_ioctl
+  snd_pcm_period_elapsed
+  snd_soc_dapm_add_routes
+  snd_soc_dapm_ignore_suspend
+  snd_soc_dapm_kcontrol_widget
+  snd_soc_dapm_mixer_update_power
+  snd_soc_dapm_new_controls
+  snd_soc_dapm_new_widgets
+  snd_soc_info_volsw
+  snd_soc_new_compress
+  snd_soc_register_component
+  snd_soc_rtdcom_lookup
+  snd_soc_unregister_component
+
+# required by spi-test.ko
+  spi_setup
+
+# required by spi-zeku.ko
+  __spi_alloc_controller
+  spi_controller_resume
+  spi_controller_suspend
+  spi_delay_exec
+  spi_finalize_current_transfer
+  spi_mem_default_supports_op
+  spi_register_controller
+  spi_unregister_controller
+
+# required by ssr_sme.ko
+  rproc_get_by_phandle
+
+# required by superram.ko
+  crypto_register_alg
+  crypto_unregister_alg
+  debugfs_initialized
+  __devm_alloc_percpu
+  devm_iounmap
+  get_random_u64
+  irq_set_irq_type
+  ktime_get_coarse_ts64
+  memcmp
+  param_get_uint
+  param_set_uint
+  pci_ioremap_bar
+  pci_release_regions
+  pci_request_regions
+
+# required by test_clk.ko
+  __clk_get_name
+  of_clk_get_from_provider
+
+# required by time_sync.ko
+  ktime_get_boot_fast_ns
+
+# required by ufs40-zeku.ko
+  async_schedule_node
+  blk_cleanup_queue
+  blk_get_request
+  blk_ksm_get_slot_idx
+  blk_ksm_register
+  blk_ksm_reprogram_all_keys
+  blk_mq_alloc_tag_set
+  blk_mq_free_tag_set
+  blk_mq_init_queue
+  blk_mq_map_queues
+  blk_mq_start_request
+  blk_pm_runtime_init
+  blk_put_request
+  blk_queue_update_dma_alignment
+  blk_queue_update_dma_pad
+  bpf_trace_run5
+  bpf_trace_run6
+  bsg_job_done
+  bsg_remove_queue
+  bsg_setup_queue
+  devfreq_add_device
+  devfreq_resume_device
+  devfreq_suspend_device
+  device_link_add
+  devm_blk_ksm_init
+  dev_pm_opp_add
+  dev_pm_opp_remove
+  down_read_trylock
+  down_write_trylock
+  event_triggers_call
+  irq_set_affinity
+  perf_trace_buf_alloc
+  perf_trace_run_bpf_submit
+  pm_runtime_allow
+  pm_runtime_forbid
+  __scsi_add_device
+  scsi_add_host_with_dma
+  scsi_autopm_get_device
+  scsi_autopm_put_device
+  scsi_block_requests
+  scsi_change_queue_depth
+  scsi_device_put
+  scsi_device_quiesce
+  scsi_dma_map
+  scsi_dma_unmap
+  __scsi_execute
+  scsi_host_alloc
+  scsi_host_put
+  scsi_is_host_device
+  __scsi_iterate_devices
+  scsi_print_sense_hdr
+  scsi_register_driver
+  scsi_remove_device
+  scsi_remove_host
+  scsi_report_bus_reset
+  scsi_scan_host
+  scsi_unblock_requests
+  sdev_prefix_printk
+  sg_copy_from_buffer
+  __sg_page_iter_dma_next
+  sysfs_create_groups
+  sysfs_remove_groups
+  trace_event_buffer_commit
+  trace_event_buffer_reserve
+  trace_event_ignore_this_pid
+  trace_event_printf
+  trace_event_raw_init
+  trace_event_reg
+  trace_handle_return
+  trace_raw_output_prep
+
+# required by vh_dmabuf_heap_flags.ko
+  __traceiter_android_vh_dmabuf_heap_flags_validation
+  __tracepoint_android_vh_dmabuf_heap_flags_validation
+
+# required by vnpu-driver.ko
+  devm_regulator_put
+
+# required by zeku-pci.ko
+  bitmap_find_free_region
+  bitmap_release_region
+  dev_fwnode
+  devm_pci_alloc_host_bridge
+  devm_pci_remap_cfgspace
+  fwnode_property_read_u32_array
+  irq_chip_ack_parent
+  irq_chip_mask_parent
+  irq_chip_unmask_parent
+  irq_domain_get_irq_data
+  irq_domain_set_info
+  irq_domain_update_bus_token
+  irq_set_chained_handler_and_data
+  __irq_set_handler
+  irq_set_handler_data
+  of_pci_get_max_link_speed
+  pcie_capability_clear_and_set_word
+  pcie_capability_read_dword
+  pcie_capability_read_word
+  pcie_link_speed
+  pci_find_ext_capability
+  pci_generic_config_read
+  pci_generic_config_write
+  pci_host_probe
+  pci_msi_create_irq_domain
+  pci_msi_enabled
+  pci_msi_mask_irq
+  pci_msi_unmask_irq
+  pci_rescan_bus
+  pci_stop_and_remove_bus_device
+  pci_write_config_dword
+
+# required by zeku_adc_tm.ko
+  of_get_next_child
+
+# required by zeku_bus_monitor.ko
+  add_timer
+  del_timer
+  mod_timer
+  time64_to_tm
+
+# required by zeku_cam.ko
+  component_bind_all
+  component_master_add_with_match
+  component_master_del
+  component_match_add_release
+  component_unbind_all
+  media_device_cleanup
+  media_device_init
+  __media_device_register
+  media_device_unregister
+  media_entity_pads_init
+  platform_device_register
+  platform_device_register_full
+  v4l2_device_register
+  v4l2_device_register_subdev
+  __v4l2_device_register_subdev_nodes
+  v4l2_device_unregister
+  v4l2_device_unregister_subdev
+  v4l2_fh_open
+  v4l2_fh_release
+  v4l2_subdev_init
+  vb2_fop_mmap
+  vb2_fop_poll
+  vb2_fop_read
+  vb2_ioctl_create_bufs
+  vb2_ioctl_dqbuf
+  vb2_ioctl_expbuf
+  vb2_ioctl_prepare_buf
+  vb2_ioctl_qbuf
+  vb2_ioctl_querybuf
+  vb2_ioctl_reqbufs
+  vb2_ioctl_streamoff
+  video_devdata
+  video_device_alloc
+  video_device_release
+  video_device_release_empty
+  video_ioctl2
+  __video_register_device
+  video_unregister_device
+
+# required by zeku_iomux.ko
+  bgpio_init
+  devm_gpiochip_add_data_with_key
+  devm_kasprintf
+  devm_pinctrl_register
+  gpiochip_get_data
+  handle_bad_irq
+  of_find_node_by_name
+  pinconf_generic_dt_node_to_map
+  pinctrl_dev_get_drvdata
+  pinctrl_utils_free_map
+
+# required by zeku_poweroff.ko
+  pm_power_off
+
+# required by zeku_ras.ko
+  disable_percpu_irq
+  enable_percpu_irq
+  free_percpu_irq
+  read_sanitised_ftr_reg
+  __request_percpu_irq
+
+# required by zeku_rpmsg.ko
+  _copy_from_iter
+  _copy_to_iter
+  ida_alloc_range
+  ida_free
+  iov_iter_revert
+  mutex_lock_interruptible
+  rpmsg_destroy_ept
+  rpmsg_poll
+
+# required by zeku_rpmsg_ns.ko
+  rpmsg_create_channel
+  rpmsg_release_channel
+  rproc_get_by_child
+
+# required by zeku_rpmsg_virtio.ko
+  pfn_is_map_memory
+  register_virtio_driver
+  rpmsg_find_device
+  rpmsg_sendto
+  rpmsg_unregister_device
+  sg_init_table
+  unregister_virtio_driver
+  virtio_check_driver_offered_feature
+  virtqueue_add_inbuf
+  virtqueue_add_outbuf
+  virtqueue_disable_cb
+  virtqueue_enable_cb
+  virtqueue_get_buf
+  virtqueue_get_vring_size
+  virtqueue_kick
+  virtqueue_kick_prepare
+  virtqueue_notify
+
+# required by zeku_thermal.ko
+  kthread_cancel_delayed_work_sync
+  kthread_delayed_work_timer_fn
+  kthread_mod_delayed_work
+  register_pm_notifier
+  sched_setscheduler_nocheck
+  thermal_cdev_update
+  thermal_zone_device_disable
+  thermal_zone_device_enable
+  thermal_zone_of_sensor_register
+  thermal_zone_of_sensor_unregister
+
+# required by zeku_wdt.ko
+  cpu_hotplug_disable
+  cpu_hotplug_enable
+  iomem_resource
+  kobject_del
+  kobject_uevent
+  kstrtoll
+  kthread_bind
+  __release_region
+  __request_region
+
+# required by zk-audio-ipc.ko
+  of_device_uevent_modalias
+
+# required by zk-sc-i2s-driver.ko
+  devm_snd_dmaengine_pcm_register
+  devm_snd_soc_register_component
+
+# required by zk-slc.ko
+  sort
+
+# required by zk-slcpmu.ko
+  hrtimer_forward
+
+# required by zk_clk.ko
+  clk_fixed_factor_ops
+  clk_hw_get_flags
+  clk_hw_get_name
+  clk_hw_get_num_parents
+  clk_hw_get_parent
+  clk_hw_get_parent_by_index
+  clk_hw_get_rate
+  clk_hw_round_rate
+  __clk_mux_determine_rate_closest
+  devm_clk_hw_register
+  devm_of_clk_add_hw_provider
+  divider_determine_rate
+  divider_get_val
+  divider_recalc_rate
+  divider_round_rate_parent
+  of_clk_hw_onecell_get
+
+# required by zk_intc.ko
+  irq_find_matching_fwspec
+  of_irq_find_parent
+
+# required by zk_sbuf.ko
+  memmove
+  of_reserved_mem_device_release
+
+# required by zk_smmu.ko
+  amba_bustype
+  bus_set_iommu
+  device_match_fwnode
+  devm_add_action
+  dmam_free_coherent
+  driver_find_device
+  generic_device_group
+  generic_iommu_put_resv_regions
+  iommu_alloc_resv_region
+  iommu_device_register
+  iommu_device_sysfs_add
+  iommu_device_sysfs_remove
+  iommu_device_unregister
+  iommu_dma_get_resv_regions
+  iommu_fwspec_add_ids
+  iommu_fwspec_free
+  iommu_report_device_fault
+  pci_ats_supported
+  pci_bus_type
+  pci_device_group
+  pci_disable_ats
+  pci_enable_ats
+  platform_get_irq_byname_optional
+  platform_msi_domain_alloc_irqs
+  platform_msi_domain_free_irqs
+  rb_erase
+  rb_insert_color
+
+# required by zram.ko
+  bio_end_io_acct_remapped
+  bio_start_io_acct
+  blk_queue_io_min
+  blk_queue_io_opt
+  blk_queue_logical_block_size
+  blk_queue_max_discard_sectors
+  blk_queue_max_write_zeroes_sectors
+  __cpuhp_state_add_instance
+  __cpuhp_state_remove_instance
+  crypto_has_alg
+  disk_end_io_acct
+  disk_start_io_acct
+  fsync_bdev
+  idr_for_each
+  memparse
+  memset64
+  set_capacity_and_notify
+  __sysfs_match_string
+  zs_compact
+  zs_create_pool
+  zs_destroy_pool
+  zs_free
+  zs_get_total_pages
+  zs_huge_class_size
+  zs_malloc
+  zs_map_object
+  zs_pool_stats
+  zs_unmap_object
+
+# required by zsmalloc.ko
+  alloc_anon_inode
+  __ClearPageMovable
+  dec_zone_page_state
+  inc_zone_page_state
+  init_pseudo
+  iput
+  kern_mount
+  kern_unmount
+  kill_anon_super
+  kmem_cache_alloc
+  kmem_cache_create
+  kmem_cache_destroy
+  kmem_cache_free
+  kstrdup
+  __lock_page
+  page_mapping
+  register_shrinker
+  __SetPageMovable
+  unlock_page
+  unregister_shrinker
diff --git a/android/abi_gki_modules_exports b/android/abi_gki_modules_exports
new file mode 100644
index 0000000..88b5a4b
--- /dev/null
+++ b/android/abi_gki_modules_exports
@@ -0,0 +1 @@
+[abi_symbol_list]
diff --git a/android/abi_gki_modules_protected b/android/abi_gki_modules_protected
new file mode 100644
index 0000000..88b5a4b
--- /dev/null
+++ b/android/abi_gki_modules_protected
@@ -0,0 +1 @@
+[abi_symbol_list]
diff --git a/android/gki_aarch64_fips140_modules b/android/gki_aarch64_fips140_modules
new file mode 100644
index 0000000..85499ad
--- /dev/null
+++ b/android/gki_aarch64_fips140_modules
@@ -0,0 +1,3 @@
+mm/zsmalloc.ko
+crypto/fips140.ko
+drivers/block/zram/zram.ko
diff --git a/android/gki_aarch64_modules b/android/gki_aarch64_modules
new file mode 100644
index 0000000..3d8888c
--- /dev/null
+++ b/android/gki_aarch64_modules
@@ -0,0 +1,2 @@
+mm/zsmalloc.ko
+drivers/block/zram/zram.ko
diff --git a/android/gki_system_dlkm_modules b/android/gki_system_dlkm_modules
new file mode 100644
index 0000000..83e76f5
--- /dev/null
+++ b/android/gki_system_dlkm_modules
@@ -0,0 +1,2 @@
+drivers/block/zram/zram.ko
+mm/zsmalloc.ko
diff --git a/arch/Kconfig b/arch/Kconfig
index b45c699..d58f5e4 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -1298,6 +1298,17 @@
 config ARCH_HAS_PARANOID_L1D_FLUSH
 	bool
 
+config ARCH_HAVE_TRACE_MMIO_ACCESS
+	bool
+
+config ARCH_HAS_NONLEAF_PMD_YOUNG
+	bool
+	help
+	  Architectures that select this option are capable of setting the
+	  accessed bit in non-leaf PMD entries when using them as part of linear
+	  address translations. Page table walkers that clear the accessed bit
+	  may use this capability to reduce their search space.
+
 source "kernel/gcov/Kconfig"
 
 source "scripts/gcc-plugins/Kconfig"
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index f2fbb17..2bf1244 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -55,6 +55,7 @@
 	select GENERIC_ATOMIC64 if CPU_V7M || CPU_V6 || !CPU_32v6K || !AEABI
 	select GENERIC_CLOCKEVENTS_BROADCAST if SMP
 	select GENERIC_IRQ_IPI if SMP
+	select ARCH_WANTS_IRQ_RAW if GENERIC_IRQ_IPI
 	select GENERIC_CPU_AUTOPROBE
 	select GENERIC_EARLY_IOREMAP
 	select GENERIC_IDLE_POLL_SETUP
@@ -72,6 +73,7 @@
 	select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU
 	select HAVE_ARCH_KGDB if !CPU_ENDIAN_BE32 && MMU
 	select HAVE_ARCH_KASAN if MMU && !XIP_KERNEL
+	select HAVE_ARCH_KASAN_VMALLOC if HAVE_ARCH_KASAN
 	select HAVE_ARCH_MMAP_RND_BITS if MMU
 	select HAVE_ARCH_PFN_VALID
 	select HAVE_ARCH_SECCOMP
@@ -1507,6 +1509,7 @@
 config ARM_MODULE_PLTS
 	bool "Use PLTs to allow module memory to spill over into vmalloc area"
 	depends on MODULES
+	select KASAN_VMALLOC if KASAN
 	default y
 	help
 	  Allocate PLTs when loading modules so that jumps and calls whose
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index 91265e7..adc0e31 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -77,10 +77,10 @@
 CPPFLAGS_vmlinux.lds += -DMALLOC_SIZE="$(MALLOC_SIZE)"
 
 compress-$(CONFIG_KERNEL_GZIP) = gzip
-compress-$(CONFIG_KERNEL_LZO)  = lzo
-compress-$(CONFIG_KERNEL_LZMA) = lzma
-compress-$(CONFIG_KERNEL_XZ)   = xzkern
-compress-$(CONFIG_KERNEL_LZ4)  = lz4
+compress-$(CONFIG_KERNEL_LZO)  = lzo_with_size
+compress-$(CONFIG_KERNEL_LZMA) = lzma_with_size
+compress-$(CONFIG_KERNEL_XZ)   = xzkern_with_size
+compress-$(CONFIG_KERNEL_LZ4)  = lz4_with_size
 
 libfdt_objs := fdt_rw.o fdt_ro.o fdt_wip.o fdt.o
 
diff --git a/arch/arm/include/asm/hypervisor.h b/arch/arm/include/asm/hypervisor.h
index bd61502..8133c8c 100644
--- a/arch/arm/include/asm/hypervisor.h
+++ b/arch/arm/include/asm/hypervisor.h
@@ -6,5 +6,6 @@
 
 void kvm_init_hyp_services(void);
 bool kvm_arm_hyp_service_available(u32 func_id);
+void kvm_arm_init_hyp_services(void);
 
 #endif
diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
index 539897a..a41e27a 100644
--- a/arch/arm/kernel/signal.c
+++ b/arch/arm/kernel/signal.c
@@ -708,7 +708,6 @@
 static_assert(offsetof(siginfo_t, si_pkey)	== 0x14);
 static_assert(offsetof(siginfo_t, si_perf_data)	== 0x10);
 static_assert(offsetof(siginfo_t, si_perf_type)	== 0x14);
-static_assert(offsetof(siginfo_t, si_perf_flags) == 0x18);
 static_assert(offsetof(siginfo_t, si_band)	== 0x0c);
 static_assert(offsetof(siginfo_t, si_fd)	== 0x10);
 static_assert(offsetof(siginfo_t, si_call_addr)	== 0x0c);
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 23d369a..0cdaebb 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -51,6 +51,10 @@
 #define CREATE_TRACE_POINTS
 #include <trace/events/ipi.h>
 
+EXPORT_TRACEPOINT_SYMBOL_GPL(ipi_raise);
+EXPORT_TRACEPOINT_SYMBOL_GPL(ipi_entry);
+EXPORT_TRACEPOINT_SYMBOL_GPL(ipi_exit);
+
 /*
  * as from 2.5, kernels no longer have an init_tasks structure
  * so we need some other way of telling a new secondary core
@@ -727,7 +731,12 @@
 		WARN_ON(err);
 
 		ipi_desc[i] = irq_to_desc(ipi_base + i);
-		irq_set_status_flags(ipi_base + i, IRQ_HIDDEN);
+
+		if (i != IPI_RESCHEDULE)
+			irq_set_status_flags(ipi_base + i, IRQ_HIDDEN);
+		else
+			/* The recheduling IPI is special... */
+			irq_set_status_flags(ipi_base + i, IRQ_HIDDEN|IRQ_RAW);
 	}
 
 	ipi_irq_base = ipi_base;
diff --git a/arch/arm/lib/xor-neon.c b/arch/arm/lib/xor-neon.c
index 7ba6cf82..522510b 100644
--- a/arch/arm/lib/xor-neon.c
+++ b/arch/arm/lib/xor-neon.c
@@ -17,18 +17,11 @@
 /*
  * Pull in the reference implementations while instructing GCC (through
  * -ftree-vectorize) to attempt to exploit implicit parallelism and emit
- * NEON instructions.
+ * NEON instructions. Clang does this by default at O2 so no pragma is
+ * needed.
  */
-#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
+#ifdef CONFIG_CC_IS_GCC
 #pragma GCC optimize "tree-vectorize"
-#else
-/*
- * While older versions of GCC do not generate incorrect code, they fail to
- * recognize the parallel nature of these functions, and emit plain ARM code,
- * which is known to be slower than the optimized ARM code in asm-arm/xor.h.
- *
- * #warning This code requires at least version 4.6 of GCC
- */
 #endif
 
 #pragma GCC diagnostic ignored "-Wunused-variable"
diff --git a/arch/arm/mm/kasan_init.c b/arch/arm/mm/kasan_init.c
index 948ada4..46d9f4a 100644
--- a/arch/arm/mm/kasan_init.c
+++ b/arch/arm/mm/kasan_init.c
@@ -32,7 +32,7 @@
 static __init void *kasan_alloc_block(size_t size)
 {
 	return memblock_alloc_try_nid(size, size, __pa(MAX_DMA_ADDRESS),
-				      MEMBLOCK_ALLOC_KASAN, NUMA_NO_NODE);
+				      MEMBLOCK_ALLOC_NOLEAKTRACE, NUMA_NO_NODE);
 }
 
 static void __init kasan_pte_populate(pmd_t *pmdp, unsigned long addr,
@@ -236,7 +236,11 @@
 
 	clear_pgds(KASAN_SHADOW_START, KASAN_SHADOW_END);
 
-	kasan_populate_early_shadow(kasan_mem_to_shadow((void *)VMALLOC_START),
+	if (!IS_ENABLED(CONFIG_KASAN_VMALLOC))
+		kasan_populate_early_shadow(kasan_mem_to_shadow((void *)VMALLOC_START),
+					    kasan_mem_to_shadow((void *)VMALLOC_END));
+
+	kasan_populate_early_shadow(kasan_mem_to_shadow((void *)VMALLOC_END),
 				    kasan_mem_to_shadow((void *)-1UL) + 1);
 
 	for_each_mem_range(i, &pa_start, &pa_end) {
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 5ab4b05..074017c 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -10,6 +10,7 @@
 	select ACPI_SPCR_TABLE if ACPI
 	select ACPI_PPTT if ACPI
 	select ARCH_HAS_DEBUG_WX
+	select ARCH_BINFMT_ELF_EXTRA_PHDRS
 	select ARCH_BINFMT_ELF_STATE
 	select ARCH_ENABLE_HUGEPAGE_MIGRATION if HUGETLB_PAGE && MIGRATION
 	select ARCH_ENABLE_MEMORY_HOTPLUG
@@ -25,9 +26,11 @@
 	select ARCH_HAS_FORTIFY_SOURCE
 	select ARCH_HAS_GCOV_PROFILE_ALL
 	select ARCH_HAS_GIGANTIC_PAGE
+	select ARCH_HAS_IOREMAP_PHYS_HOOKS
 	select ARCH_HAS_KCOV
 	select ARCH_HAS_KEEPINITRD
 	select ARCH_HAS_MEMBARRIER_SYNC_CORE
+	select ARCH_HAS_MEM_ENCRYPT
 	select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
 	select ARCH_HAS_PTE_DEVMAP
 	select ARCH_HAS_PTE_SPECIAL
@@ -45,6 +48,7 @@
 	select ARCH_HAS_ZONE_DMA_SET if EXPERT
 	select ARCH_HAVE_ELF_PROT
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
+	select ARCH_HAVE_TRACE_MMIO_ACCESS
 	select ARCH_INLINE_READ_LOCK if !PREEMPTION
 	select ARCH_INLINE_READ_LOCK_BH if !PREEMPTION
 	select ARCH_INLINE_READ_LOCK_IRQ if !PREEMPTION
@@ -122,6 +126,7 @@
 	select GENERIC_FIND_FIRST_BIT
 	select GENERIC_IDLE_POLL_SETUP
 	select GENERIC_IRQ_IPI
+	select ARCH_WANTS_IRQ_RAW
 	select GENERIC_IRQ_PROBE
 	select GENERIC_IRQ_SHOW
 	select GENERIC_IRQ_SHOW_LEVEL
@@ -185,6 +190,7 @@
 	select HAVE_GCC_PLUGINS
 	select HAVE_HW_BREAKPOINT if PERF_EVENTS
 	select HAVE_IRQ_TIME_ACCOUNTING
+	select HAVE_KVM
 	select HAVE_NMI
 	select HAVE_PATA_PLATFORM
 	select HAVE_PERF_EVENTS
@@ -203,7 +209,7 @@
 	select IOMMU_DMA if IOMMU_SUPPORT
 	select IRQ_DOMAIN
 	select IRQ_FORCED_THREADING
-	select KASAN_VMALLOC if KASAN_GENERIC
+	select KASAN_VMALLOC if KASAN
 	select MODULES_USE_ELF_RELA
 	select NEED_DMA_MAP_STATE
 	select NEED_SG_DMA_LENGTH
@@ -221,6 +227,7 @@
 	select HAVE_ARCH_USERFAULTFD_MINOR if USERFAULTFD
 	select TRACE_IRQFLAGS_SUPPORT
 	select TRACE_IRQFLAGS_NMI_SUPPORT
+	select ARCH_SUPPORTS_SPECULATIVE_PAGE_FAULT
 	help
 	  ARM 64-bit (AArch64) Linux support.
 
@@ -487,22 +494,6 @@
 
 	  If unsure, say Y.
 
-config ARM64_ERRATUM_1742098
-	bool "Cortex-A57/A72: 1742098: ELR recorded incorrectly on interrupt taken between cryptographic instructions in a sequence"
-	depends on COMPAT
-	default y
-	help
-	  This option removes the AES hwcap for aarch32 user-space to
-	  workaround erratum 1742098 on Cortex-A57 and Cortex-A72.
-
-	  Affected parts may corrupt the AES state if an interrupt is
-	  taken between a pair of AES instructions. These instructions
-	  are only present if the cryptography extensions are present.
-	  All software should have a fallback implementation for CPUs
-	  that don't implement the cryptography extensions.
-
-	  If unsure, say Y.
-
 config ARM64_ERRATUM_845719
 	bool "Cortex-A53: 845719: a load might read incorrect data"
 	depends on COMPAT
@@ -666,6 +657,7 @@
 config ARM64_ERRATUM_1542419
 	bool "Neoverse-N1: workaround mis-ordering of instruction fetches"
 	default y
+	depends on BROKEN # CPU cap re-allocated by Android
 	help
 	  This option adds a workaround for ARM Neoverse-N1 erratum
 	  1542419.
@@ -699,47 +691,12 @@
 
 	  If unsure, say Y.
 
-config ARM64_ERRATUM_2441009
-	bool "Cortex-A510: Completion of affected memory accesses might not be guaranteed by completion of a TLBI"
-	default y
-	select ARM64_WORKAROUND_REPEAT_TLBI
-	help
-	  This option adds a workaround for ARM Cortex-A510 erratum #2441009.
-
-	  Under very rare circumstances, affected Cortex-A510 CPUs
-	  may not handle a race between a break-before-make sequence on one
-	  CPU, and another CPU accessing the same page. This could allow a
-	  store to a page that has been unmapped.
-
-	  Work around this by adding the affected CPUs to the list that needs
-	  TLB sequences to be done twice.
-
-	  If unsure, say Y.
-
-config ARM64_ERRATUM_2457168
-	bool "Cortex-A510: 2457168: workaround for AMEVCNTR01 incrementing incorrectly"
-	depends on ARM64_AMU_EXTN
-	default y
-	help
-	  This option adds the workaround for ARM Cortex-A510 erratum 2457168.
-
-	  The AMU counter AMEVCNTR01 (constant counter) should increment at the same rate
-	  as the system counter. On affected Cortex-A510 cores AMEVCNTR01 increments
-	  incorrectly giving a significantly higher output value.
-
-	  Work around this problem by returning 0 when reading the affected counter in
-	  key locations that results in disabling all users of this counter. This effect
-	  is the same to firmware disabling affected counters.
-
-	  If unsure, say Y.
-
 config ARM64_WORKAROUND_TRBE_OVERWRITE_FILL_MODE
 	bool
 
 config ARM64_ERRATUM_2119858
 	bool "Cortex-A710: 2119858: workaround TRBE overwriting trace data in FILL mode"
 	default y
-	depends on COMPILE_TEST # Until the CoreSight TRBE driver changes are in
 	depends on CORESIGHT_TRBE
 	select ARM64_WORKAROUND_TRBE_OVERWRITE_FILL_MODE
 	help
@@ -758,7 +715,6 @@
 config ARM64_ERRATUM_2139208
 	bool "Neoverse-N2: 2139208: workaround TRBE overwriting trace data in FILL mode"
 	default y
-	depends on COMPILE_TEST # Until the CoreSight TRBE driver changes are in
 	depends on CORESIGHT_TRBE
 	select ARM64_WORKAROUND_TRBE_OVERWRITE_FILL_MODE
 	help
@@ -812,7 +768,6 @@
 
 config ARM64_ERRATUM_2253138
 	bool "Neoverse-N2: 2253138: workaround TRBE writing to address out-of-range"
-	depends on COMPILE_TEST # Until the CoreSight TRBE driver changes are in
 	depends on CORESIGHT_TRBE
 	default y
 	select ARM64_WORKAROUND_TRBE_WRITE_OUT_OF_RANGE
@@ -831,7 +786,6 @@
 
 config ARM64_ERRATUM_2224489
 	bool "Cortex-A710: 2224489: workaround TRBE writing to address out-of-range"
-	depends on COMPILE_TEST # Until the CoreSight TRBE driver changes are in
 	depends on CORESIGHT_TRBE
 	default y
 	select ARM64_WORKAROUND_TRBE_WRITE_OUT_OF_RANGE
@@ -848,6 +802,40 @@
 
 	  If unsure, say Y.
 
+config ARM64_ERRATUM_2441009
+	bool "Cortex-A510: Completion of affected memory accesses might not be guaranteed by completion of a TLBI"
+	default y
+	select ARM64_WORKAROUND_REPEAT_TLBI
+	help
+	  This option adds a workaround for ARM Cortex-A510 erratum #2441009.
+
+	  Under very rare circumstances, affected Cortex-A510 CPUs
+	  may not handle a race between a break-before-make sequence on one
+	  CPU, and another CPU accessing the same page. This could allow a
+	  store to a page that has been unmapped.
+
+	  Work around this by adding the affected CPUs to the list that needs
+	  TLB sequences to be done twice.
+
+	  If unsure, say Y.
+
+config ARM64_ERRATUM_2457168
+	bool "Cortex-A510: 2457168: workaround for AMEVCNTR01 incrementing incorrectly"
+	depends on ARM64_AMU_EXTN
+	default y
+	help
+	  This option adds the workaround for ARM Cortex-A510 erratum 2457168.
+
+	  The AMU counter AMEVCNTR01 (constant counter) should increment at the same rate
+	  as the system counter. On affected Cortex-A510 cores AMEVCNTR01 increments
+	  incorrectly giving a significantly higher output value.
+
+	  Work around this problem by returning 0 when reading the affected counter in
+	  key locations that results in disabling all users of this counter. This effect
+	  is the same to firmware disabling affected counters.
+
+	  If unsure, say Y.
+
 config CAVIUM_ERRATUM_22375
 	bool "Cavium erratum 22375, 24313"
 	default y
@@ -887,6 +875,7 @@
 config CAVIUM_ERRATUM_27456
 	bool "Cavium erratum 27456: Broadcast TLBI instructions may cause icache corruption"
 	default y
+	depends on BROKEN # CPU cap re-allocated by Android
 	help
 	  On ThunderX T88 pass 1.x through 2.1 parts, broadcast TLBI
 	  instructions may cause the icache to become corrupted if it
@@ -898,6 +887,7 @@
 config CAVIUM_ERRATUM_30115
 	bool "Cavium erratum 30115: Guest may disable interrupts in host"
 	default y
+	depends on BROKEN # CPU cap re-allocated by Android
 	help
 	  On ThunderX T88 pass 1.x through 2.2, T81 pass 1.0 through
 	  1.2, and T83 Pass 1.0, KVM guest execution may disable
@@ -909,6 +899,7 @@
 config CAVIUM_TX2_ERRATUM_219
 	bool "Cavium ThunderX2 erratum 219: PRFM between TTBR change and ISB fails"
 	default y
+	depends on BROKEN # CPU caps re-allocated by Android
 	help
 	  On Cavium ThunderX2, a load, store or prefetch instruction between a
 	  TTBR update and the corresponding context synchronizing operation can
@@ -1754,6 +1745,21 @@
 	  The feature introduces new assembly instructions, and they were
 	  support when binutils >= 2.30.
 
+config ARM64_MPAM
+	bool "Enable support for MPAM"
+	help
+	  Memory Partitioning and Monitoring is an optional extension
+	  that allows the CPUs to mark load and store transactions with
+	  labels for partition-id and performance-monitoring-group.
+	  System components, such as the caches, can use the partition-id
+	  to apply a performance policy. MPAM monitors can use the
+	  partition-id and performance-monitoring-group to measure the
+	  cache occupancy or data throughput.
+
+	  Use of this extension requires CPU support, support in the
+	  memory system components (MSC), and a description from firmware
+	  of where the MSC are in the address space.
+
 endmenu
 
 menu "ARMv8.5 architectural features"
@@ -2047,6 +2053,12 @@
 	  the boot loader doesn't provide any, the default kernel command
 	  string provided in CMDLINE will be used.
 
+config CMDLINE_EXTEND
+	bool "Extend bootloader kernel arguments"
+	help
+	  The command-line arguments provided by the boot loader will be
+	  appended to the default kernel command string.
+
 config CMDLINE_FORCE
 	bool "Always use the default kernel command string"
 	help
diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
index d7772a4..3a67559 100644
--- a/arch/arm64/Kconfig.platforms
+++ b/arch/arm64/Kconfig.platforms
@@ -167,7 +167,6 @@
 config ARCH_MESON
 	bool "Amlogic Platforms"
 	select COMMON_CLK
-	select MESON_IRQ_GPIO
 	help
 	  This enables support for the arm64 based Amlogic SoCs
 	  such as the s905, S905X/D, S912, A113X/D or S905X/D2
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index c744b1e..9dbdc0d 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -148,7 +148,10 @@
 boot		:= arch/arm64/boot
 KBUILD_IMAGE	:= $(boot)/Image.gz
 
+# Don't compile Image in mixed build with "all" target
+ifndef KBUILD_MIXED_TREE
 all:	Image.gz
+endif
 
 
 Image: vmlinux
diff --git a/arch/arm64/Makefile.postlink b/arch/arm64/Makefile.postlink
new file mode 100644
index 0000000..a137891
--- /dev/null
+++ b/arch/arm64/Makefile.postlink
@@ -0,0 +1,48 @@
+# SPDX-License-Identifier: GPL-2.0
+
+#
+# This file is included by the generic Kbuild makefile to permit the
+# architecture to perform postlink actions on vmlinux and any .ko module file.
+# In this case, we only need it for fips140.ko, which needs some postprocessing
+# for the integrity check mandated by FIPS. This involves making copies of the
+# relocation sections so that the module will have access to them at
+# initialization time, and calculating and injecting a HMAC digest into the
+# module. All other targets are NOPs.
+#
+
+PHONY := __archpost
+__archpost:
+
+-include include/config/auto.conf
+include scripts/Kbuild.include
+
+CMD_FIPS140_GEN_HMAC = crypto/fips140_gen_hmac
+quiet_cmd_gen_hmac = HMAC    $@
+      cmd_gen_hmac = $(OBJCOPY) $@ \
+	--dump-section=$(shell $(READELF) -SW $@|grep -Eo '\.rela\.text\S*')=$@.rela.text \
+	--dump-section=$(shell $(READELF) -SW $@|grep -Eo '\.rela\.rodata\S*')=$@.rela.rodata \
+	--add-section=.init.rela.text=$@.rela.text \
+	--add-section=.init.rela.rodata=$@.rela.rodata \
+	--set-section-flags=.init.rela.text=alloc,readonly \
+	--set-section-flags=.init.rela.rodata=alloc,readonly && \
+	$(CMD_FIPS140_GEN_HMAC) $@
+
+# `@true` prevents complaints when there is nothing to be done
+
+vmlinux: FORCE
+	@true
+
+$(objtree)/crypto/fips140.ko: FORCE
+	$(call cmd,gen_hmac)
+
+%.ko: FORCE
+	@true
+
+clean:
+	rm -f $(objtree)/crypto/fips140.ko.rela.*
+
+PHONY += FORCE clean
+
+FORCE:
+
+.PHONY: $(PHONY)
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
index faa0a79..0f4b503 100644
--- a/arch/arm64/boot/dts/amlogic/Makefile
+++ b/arch/arm64/boot/dts/amlogic/Makefile
@@ -1,12 +1,14 @@
 # SPDX-License-Identifier: GPL-2.0
 dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12a-sei510.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-g12a-sei510-android.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12a-u200.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12a-x96-max.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gsking-x.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking-pro.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-khadas-vim3.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-khadas-vim3-android.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-s922x-khadas-vim3.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2-plus.dtb
@@ -50,7 +52,9 @@
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-bananapi-m5.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l-android.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-c4.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-hc4.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-sei610.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-sm1-sei610-android.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-sei510-android.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-sei510-android.dts
new file mode 100644
index 0000000..2f89a01
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-sei510-android.dts
@@ -0,0 +1,58 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2020 BayLibre SAS. All rights reserved.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/gpio/meson-g12a-gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+  compatible = "seirobotics,sei510", "amlogic,g12a";
+  model = "SEI Robotics SEI510";
+  fragment@101 {
+        target-path = "/";
+
+        __overlay__ {
+                reserved-memory {
+                        #address-cells = <2>;
+                        #size-cells = <2>;
+                        ramoops@d000000 {
+                                compatible = "ramoops";
+                                reg = <0x0 0x0d000000 0x0 0x00100000>;
+                                record-size = <0x8000>;
+                                console-size = <0x8000>;
+                                ftrace-size = <0x0>;
+                                pmsg-size = <0x8000>;
+                        };
+                };
+
+                adc_keys {
+                        button-onoff {
+                                linux,code = <BTN_0>;
+                        };
+                };
+
+                cvbs-connector {
+                        status = "disabled";
+                };
+        };
+  };
+};
+
+&vddao_3v3_t {
+	gpio-open-drain;
+};
+
+&uart_A {
+	bluetooth {
+        interrupt-parent = <&gpio_intc>;
+        interrupts = <95 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "host-wakeup";
+    };
+};
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3-android.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3-android.dts
new file mode 100644
index 0000000..3ab19e2
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3-android.dts
@@ -0,0 +1,55 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2019 BayLibre SAS. All rights reserved.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/phy/phy.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/gpio/meson-g12a-gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+  compatible = "khadas,vim3", "amlogic,a311d", "amlogic,g12b";
+  model = "Khadas VIM3";
+  fragment@101 {
+        target-path = "/";
+        __overlay__ {
+                reserved-memory {
+                        #address-cells = <2>;
+                        #size-cells = <2>;
+                        ramoops@d000000 {
+                                compatible = "ramoops";
+                                reg = <0x0 0x0d000000 0x0 0x00100000>;
+                                record-size = <0x8000>;
+                                console-size = <0x8000>;
+                                ftrace-size = <0x0>;
+                                pmsg-size = <0x8000>;
+                        };
+                };
+
+        };
+  };
+};
+
+&vcc_5v {
+	gpio-open-drain;
+};
+
+&uart_C {
+        status = "okay";
+        pinctrl-0 = <&uart_c_pins>;
+        pinctrl-names = "default";
+};
+
+&emmc_pwrseq{
+	status = "okay";
+};
+
+&sd_emmc_a {
+     /* WiFi firmware requires power to be kept while in suspend */
+    keep-power-in-suspend;
+};
\ No newline at end of file
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-khadas-vim3l-android.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-khadas-vim3l-android.dts
new file mode 100644
index 0000000..4b06bf2
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-khadas-vim3l-android.dts
@@ -0,0 +1,133 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2019 BayLibre SAS. All rights reserved.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/phy/phy.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/gpio/meson-g12a-gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+  compatible = "khadas,vim3l", "amlogic,sm1";
+  model = "Khadas VIM3L";
+  fragment@101 {
+        target-path = "/";
+        __overlay__ {
+                reserved-memory {
+                        #address-cells = <2>;
+                        #size-cells = <2>;
+                        ramoops@d000000 {
+                                compatible = "ramoops";
+                                reg = <0x0 0x0d000000 0x0 0x00100000>;
+                                record-size = <0x8000>;
+                                console-size = <0x8000>;
+                                ftrace-size = <0x0>;
+                                pmsg-size = <0x8000>;
+                        };
+                };
+        };
+  };
+};
+
+&vcc_5v {
+    gpio-open-drain;
+};
+
+&uart_A {
+	bluetooth {
+        interrupt-parent = <&gpio_intc>;
+        interrupts = <95 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "host-wakeup";
+    };
+};
+
+&uart_C {
+        status = "disabled";
+        pinctrl-0 = <&uart_c_pins>;
+        pinctrl-names = "default";
+};
+
+&emmc_pwrseq{
+	status = "okay";
+};
+
+&sd_emmc_a {
+     /* WiFi firmware requires power to be kept while in suspend */
+    keep-power-in-suspend;
+};
+
+&spicc1 {
+	status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&spicc1_pins>;
+	cs-gpios = <&gpio GPIOH_6 GPIO_ACTIVE_LOW>;
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	spidev@0 {
+		compatible = "rohm,dh2228fv";
+		reg = <0>;
+		spi-max-frequency = <500000>;
+		status = "okay";
+	};
+
+	neonkey@0 {
+		compatible = "nanohub";
+		reg = <0>;
+		spi-max-frequency = <500000>;
+
+		sensorhub,nreset-gpio = <&gpio GPIOA_0 0>;
+		sensorhub,boot0-gpio = <&gpio GPIOA_3 0>;   /* Fake */
+		sensorhub,wakeup-gpio = <&gpio GPIOA_2 0>;  /* A2 -> PB9 */
+		sensorhub,irq1-gpio = <&gpio GPIOA_1 0>;    /* A1 -> PB5 */
+		interrupt-parent = <&gpio_intc>;
+		interrupts = <62 IRQ_TYPE_EDGE_RISING>;     /* A1 */
+		/* sensorhub,spi-cs-gpio = <&gpio GPIOH_6 GPIO_ACTIVE_LOW>; Optional */
+		sensorhub,bl-addr = <0x08000000>;
+		sensorhub,kernel-addr = <0x0800C000>;
+		sensorhub,shared-addr = <0x08040000>;
+		sensorhub,flash-banks = <0 0x08000000 0x04000>,
+					<3 0x0800C000 0x04000>,
+					<4 0x08010000 0x10000>,
+					<5 0x08020000 0x20000>,
+					<6 0x08040000 0x20000>,
+					<7 0x08060000 0x20000>;
+		sensorhub,num-flash-banks = <6>;
+		status = "disabled";
+	};
+
+	argonkey@0 {
+		compatible = "nanohub";
+		reg = <0>;
+		spi-max-frequency = <500000>;
+		spi-cpol;
+
+		sensorhub,nreset-gpio = <&gpio GPIOA_0 0>;
+		sensorhub,boot0-gpio = <&gpio GPIOA_3 0>;
+		sensorhub,wakeup-gpio = <&gpio GPIOA_1 0>;  /* A1 -> PA0 */
+		sensorhub,irq1-gpio = <&gpio GPIOA_2 0>;    /* A2 -> PA1 */
+		interrupt-parent = <&gpio_intc>;
+		interrupts = <63 IRQ_TYPE_EDGE_RISING>;     /* A2 */
+		sensorhub,bl-addr = <0x08000000>;
+		sensorhub,kernel-addr = <0x0800C000>;
+		sensorhub,num-flash-banks = <4>;
+		sensorhub,flash-banks =	<0 0x08000000 0x04000>,
+					<3 0x0800C000 0x04000>,
+					<4 0x08010000 0x10000>,
+					<5 0x08020000 0x20000>;
+		sensorhub,shared-addr = <0x08040000>;
+		sensorhub,num-shared-flash-banks = <6>;
+		sensorhub,shared-flash-banks = <6 0x08040000 0x20000>,
+					<7 0x08060000 0x20000>,
+					<8 0x08080000 0x20000>,
+					<9 0x080A0000 0x20000>,
+					<10 0x080C0000 0x20000>,
+					<11 0x080E0000 0x20000>;
+		status = "disabled";
+	};
+};
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-sei610-android.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-sei610-android.dts
new file mode 100644
index 0000000..363d6c4
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-sei610-android.dts
@@ -0,0 +1,71 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2020 BayLibre SAS. All rights reserved.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/gpio/meson-g12a-gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+  compatible = "seirobotics,sei610", "amlogic,sm1";
+  model = "SEI Robotics SEI610";
+  fragment@101 {
+	target-path = "/";
+	__overlay__ {
+
+		reserved-memory {
+			#address-cells = <2>;
+			#size-cells = <2>;
+			ramoops@d000000 {
+				compatible = "ramoops";
+				reg = <0x0 0x0d000000 0x0 0x00100000>;
+				record-size = <0x8000>;
+				console-size = <0x8000>;
+				ftrace-size = <0x0>;
+				pmsg-size = <0x8000>;
+			};
+		};
+	};
+   };
+};
+
+&vddao_3v3_t {
+	gpio-open-drain;
+};
+
+&emmc_pwrseq {
+	status = "okay";
+};
+
+&sd_emmc_a {
+	/* WiFi firmware requires power to be kept while in suspend */
+	keep-power-in-suspend;
+};
+
+&uart_C {
+        status = "disabled";
+        pinctrl-0 = <&uart_c_pins>;
+        pinctrl-names = "default";
+};
+
+&spicc0 {
+        status = "disabled";
+        pinctrl-names = "default";
+        pinctrl-0 = <&spicc0_x_pins>;
+        cs-gpios = <&gpio GPIOX_10 GPIO_ACTIVE_LOW>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        spidev@0 {
+            compatible = "rohm,dh2228fv";
+            reg = <0>;
+            spi-max-frequency = <500000>;
+            status = "disabled";
+        };
+};
diff --git a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
index d3449cb..d3040cb 100644
--- a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
+++ b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
@@ -16,6 +16,8 @@
 / {
 	model = "Qualcomm Technologies, Inc. Robotics RB5";
 	compatible = "qcom,qrb5165-rb5", "qcom,sm8250";
+	qcom,msm-id = <455 0x20001>;
+	qcom,board-id = <11 3>;
 
 	aliases {
 		serial0 = &uart12;
diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts
index 5ce270f..2a0eea0 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts
+++ b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts
@@ -17,6 +17,8 @@
 / {
 	model = "Thundercomm Dragonboard 845c";
 	compatible = "thundercomm,db845c", "qcom,sdm845";
+	qcom,msm-id = <341 0x20001>;
+	qcom,board-id = <8 0>;
 
 	aliases {
 		serial0 = &uart9;
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts
index 6c63e61..9f41a7f 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts
@@ -31,7 +31,7 @@
 };
 
 &uart0 {
-	status = "okay";
+	status = "disabled";
 
 	bluetooth {
 		compatible = "brcm,bcm43438-bt";
diff --git a/arch/arm64/configs/amlogic_gki.fragment b/arch/arm64/configs/amlogic_gki.fragment
new file mode 100644
index 0000000..e577f55
--- /dev/null
+++ b/arch/arm64/configs/amlogic_gki.fragment
@@ -0,0 +1,142 @@
+#
+# Generic drivers/frameworks
+#
+CONFIG_COMMON_CLK_PWM=m
+CONFIG_REGULATOR_PWM=m
+CONFIG_PWRSEQ_EMMC=m
+CONFIG_PWRSEQ_SIMPLE=m
+CONFIG_USB_DWC2=m
+CONFIG_LEDS_GPIO=m
+
+#
+# Networking
+#
+CONFIG_REALTEK_PHY=m
+CONFIG_STMMAC_ETH=m
+CONFIG_STMMAC_PLATFORM=m
+
+#
+# WLAN
+#
+CONFIG_WLAN_VENDOR_BROADCOM=y
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_PROTO_BCDC=y
+CONFIG_BRCMFMAC_SDIO=y
+
+#
+# Amlogic
+#
+CONFIG_ARCH_MESON=y
+CONFIG_SERIAL_MESON=m
+CONFIG_SERIAL_MESON_CONSOLE=y
+
+#
+# Amlogic drivers as modules
+#
+
+# core
+CONFIG_MESON_SM=m
+CONFIG_RESET_MESON=m
+CONFIG_MESON_IRQ_GPIO=m
+
+# clocks
+CONFIG_COMMON_CLK_MESON_REGMAP=m
+CONFIG_COMMON_CLK_MESON_DUALDIV=m
+CONFIG_COMMON_CLK_MESON_MPLL=m
+CONFIG_COMMON_CLK_MESON_PHASE=m
+CONFIG_COMMON_CLK_MESON_PLL=m
+CONFIG_COMMON_CLK_MESON_SCLK_DIV=m
+CONFIG_COMMON_CLK_MESON_VID_PLL_DIV=m
+CONFIG_COMMON_CLK_MESON_AO_CLKC=m
+CONFIG_COMMON_CLK_MESON_EE_CLKC=m
+CONFIG_COMMON_CLK_MESON_CPU_DYNDIV=m
+CONFIG_COMMON_CLK_GXBB=m
+CONFIG_COMMON_CLK_AXG=m
+CONFIG_COMMON_CLK_G12A=m
+
+# PHY
+CONFIG_PHY_MESON8B_USB2=m
+CONFIG_PHY_MESON_GXL_USB2=m
+CONFIG_PHY_MESON_G12A_USB2=m
+CONFIG_PHY_MESON_G12A_USB3_PCIE=m
+CONFIG_PHY_MESON_AXG_PCIE=m
+CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG=m
+
+# peripherals
+CONFIG_I2C_MESON=m
+CONFIG_MMC_MESON_GX=m
+CONFIG_HW_RANDOM_MESON=m
+CONFIG_USB_DWC3_MESON_G12A=m
+CONFIG_MESON_SARADC=m
+CONFIG_SPI_MESON_SPICC=m
+CONFIG_SPI_MESON_SPIFC=m
+CONFIG_PCI_MESON=m
+CONFIG_DWMAC_MESON=m
+CONFIG_MDIO_BUS_MUX_MESON_G12A=m
+CONFIG_MESON_GXL_PHY=m
+CONFIG_PINCTRL_MESON=m
+CONFIG_PINCTRL_MESON_GXBB=m
+CONFIG_PINCTRL_MESON_GXL=m
+CONFIG_PINCTRL_MESON_AXG=m
+CONFIG_PINCTRL_MESON_AXG_PMX=m
+CONFIG_PINCTRL_MESON_G12A=m
+CONFIG_MESON_GXBB_WATCHDOG=m
+CONFIG_MESON_WATCHDOG=m
+CONFIG_MTD_NAND_MESON=m
+CONFIG_PWM_MESON=m
+CONFIG_IR_MESON=m
+CONFIG_MESON_EFUSE=m
+CONFIG_MFD_KHADAS_MCU=m
+CONFIG_KHADAS_MCU_FAN_THERMAL=m
+CONFIG_AMLOGIC_THERMAL=m
+
+# sound
+CONFIG_SND_MESON_AXG_SOUND_CARD=m
+CONFIG_SND_MESON_GX_SOUND_CARD=m
+CONFIG_SND_MESON_G12A_TOHDMITX=m
+
+# display / video
+CONFIG_DRM_MESON=m
+CONFIG_DRM_MESON_DW_HDMI=m
+CONFIG_DRM_DW_HDMI=m
+CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
+CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+CONFIG_DRM_DW_HDMI_CEC=m
+CONFIG_CEC_MESON_AO=m
+CONFIG_CEC_MESON_G12A_AO=m
+CONFIG_VIDEO_MESON_GE2D=m
+
+# SoC drivers
+CONFIG_MESON_CANVAS=m
+CONFIG_MESON_CLK_MEASURE=m
+CONFIG_MESON_GX_PM_DOMAINS=m
+CONFIG_MESON_EE_PM_DOMAINS=m
+CONFIG_MESON_SECURE_PM_DOMAINS=m
+
+#
+# Amlogic drivers disable
+#
+
+# 32-bit SoC drivers
+CONFIG_MESON6_TIMER=n
+CONFIG_MESON_MX_SOCINFO=n
+
+# only needed by DRM on S805X
+CONFIG_MESON_GX_SOCINFO=n
+
+#
+# Debug / Testing
+#
+
+# devtmpfs needed for buildroot/udev module loading, serial console
+#CONFIG_DEVTMPFS=y
+#CONFIG_DEVTMPFS_MOUNT=y
+
+# debug/testing with FB console
+#CONFIG_DRM_KMS_FB_HELPER=y
+#CONFIG_DRM_FBDEV_EMULATION=y
+#CONFIG_FB=y
+#CONFIG_VT=y
+#CONFIG_FRAMEBUFFER_CONSOLE=y
+#CONFIG_LOGO=y
diff --git a/arch/arm64/configs/db845c_gki.fragment b/arch/arm64/configs/db845c_gki.fragment
new file mode 100644
index 0000000..6f03fb9
--- /dev/null
+++ b/arch/arm64/configs/db845c_gki.fragment
@@ -0,0 +1,305 @@
+CONFIG_CFG80211=m
+CONFIG_NL80211_TESTMODE=y
+# CONFIG_CFG80211_DEFAULT_PS is not set
+# CONFIG_CFG80211_CRDA_SUPPORT is not set
+CONFIG_MAC80211=m
+CONFIG_QRTR=m
+CONFIG_QRTR_TUN=m
+CONFIG_SCSI_UFS_QCOM=m
+CONFIG_INPUT_PM8941_PWRKEY=m
+CONFIG_SERIAL_MSM=m
+CONFIG_I2C_QCOM_GENI=m
+CONFIG_I2C_QUP=m
+CONFIG_PINCTRL_MSM=m
+CONFIG_PINCTRL_QCOM_SPMI_PMIC=m
+CONFIG_PINCTRL_SDM845=m
+CONFIG_POWER_RESET_QCOM_PON=m
+CONFIG_SYSCON_REBOOT_MODE=m
+CONFIG_QCOM_TSENS=m
+CONFIG_QCOM_WDT=m
+CONFIG_PM8916_WATCHDOG=m
+CONFIG_MFD_SPMI_PMIC=m
+CONFIG_SPMI_MSM_PMIC_ARB=m
+CONFIG_REGULATOR_QCOM_RPMH=m
+CONFIG_REGULATOR_QCOM_SPMI=m
+CONFIG_DRM_MSM=m
+# CONFIG_DRM_MSM_DSI_28NM_PHY is not set
+# CONFIG_DRM_MSM_DSI_20NM_PHY is not set
+# CONFIG_DRM_MSM_DSI_28NM_8960_PHY is not set
+CONFIG_DRM_LONTIUM_LT9611=m
+CONFIG_USB_OHCI_HCD=m
+CONFIG_USB_OHCI_HCD_PLATFORM=m
+# CONFIG_USB_DWC3_HAPS is not set
+# CONFIG_USB_DWC3_OF_SIMPLE is not set
+CONFIG_USB_GADGET_VBUS_DRAW=500
+# CONFIG_USB_DUMMY_HCD is not set
+CONFIG_USB_ROLE_SWITCH=m
+CONFIG_USB_ULPI_BUS=m
+CONFIG_MMC_SDHCI_MSM=m
+CONFIG_RTC_DRV_PM8XXX=m
+CONFIG_COMMON_CLK_QCOM=m
+CONFIG_SDM_GPUCC_845=m
+CONFIG_QCOM_CLK_RPMH=m
+CONFIG_SDM_DISPCC_845=m
+CONFIG_HWSPINLOCK_QCOM=m
+CONFIG_QCOM_LLCC=m
+CONFIG_QCOM_RMTFS_MEM=m
+CONFIG_QCOM_SMEM=m
+CONFIG_QCOM_SMSM=m
+CONFIG_EXTCON_USB_GPIO=m
+CONFIG_RESET_QCOM_AOSS=m
+CONFIG_RESET_QCOM_PDC=m
+CONFIG_PHY_QCOM_QMP=m
+CONFIG_PHY_QCOM_QUSB2=m
+CONFIG_PHY_QCOM_USB_HS=m
+CONFIG_QCOM_QFPROM=m
+CONFIG_INTERCONNECT_QCOM=y
+CONFIG_INTERCONNECT_QCOM_OSM_L3=m
+CONFIG_INTERCONNECT_QCOM_SDM845=m
+CONFIG_QCOM_RPMH=m
+CONFIG_QCOM_RPMHPD=m
+CONFIG_WLAN_VENDOR_ATH=y
+CONFIG_ATH10K_AHB=y
+CONFIG_ATH10K=m
+CONFIG_ATH10K_PCI=m
+CONFIG_ATH10K_SNOC=m
+CONFIG_QRTR_SMD=m
+CONFIG_QCOM_FASTRPC=m
+CONFIG_QCOM_APCS_IPC=m
+CONFIG_QCOM_Q6V5_COMMON=m
+CONFIG_QCOM_RPROC_COMMON=m
+CONFIG_QCOM_Q6V5_ADSP=m
+CONFIG_QCOM_Q6V5_MSS=m
+CONFIG_QCOM_Q6V5_PAS=m
+CONFIG_QCOM_Q6V5_WCSS=m
+CONFIG_QCOM_SYSMON=m
+CONFIG_RPMSG_QCOM_GLINK_SMEM=m
+CONFIG_RPMSG_QCOM_SMD=m
+CONFIG_QCOM_AOSS_QMP=m
+CONFIG_QCOM_SMP2P=m
+CONFIG_QCOM_SOCINFO=m
+CONFIG_QCOM_APR=m
+CONFIG_QCOM_GLINK_SSR=m
+CONFIG_RPMSG_QCOM_GLINK_RPM=m
+CONFIG_QCOM_PDC=m
+CONFIG_QCOM_SCM=m
+CONFIG_ARM_SMMU=m
+CONFIG_ARM_QCOM_CPUFREQ_HW=m
+# XXX Audio bits start here
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_DESIGNWARE_PLATFORM=m
+CONFIG_I2C_RK3X=m
+CONFIG_SPI_PL022=m
+CONFIG_SPI_QCOM_QSPI=m
+CONFIG_SPI_QUP=m
+CONFIG_SPI_QCOM_GENI=m
+CONFIG_GPIO_WCD934X=m
+CONFIG_MFD_WCD934X=m
+CONFIG_REGULATOR_GPIO=m
+CONFIG_SND_SOC_QCOM=m
+CONFIG_SND_SOC_QCOM_COMMON=m
+CONFIG_SND_SOC_QDSP6_COMMON=m
+CONFIG_SND_SOC_QDSP6_CORE=m
+CONFIG_SND_SOC_QDSP6_AFE=m
+CONFIG_SND_SOC_QDSP6_AFE_DAI=m
+CONFIG_SND_SOC_QDSP6_ADM=m
+CONFIG_SND_SOC_QDSP6_ROUTING=m
+CONFIG_SND_SOC_QDSP6_ASM=m
+CONFIG_SND_SOC_QDSP6_ASM_DAI=m
+CONFIG_SND_SOC_QDSP6=m
+CONFIG_SND_SOC_SDM845=m
+CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_WCD9335=m
+CONFIG_SND_SOC_WCD934X=m
+CONFIG_SND_SOC_WSA881X=m
+CONFIG_QCOM_BAM_DMA=m
+CONFIG_SPMI_PMIC_CLKDIV=m
+CONFIG_SOUNDWIRE=m
+CONFIG_SOUNDWIRE_QCOM=m
+CONFIG_SLIMBUS=m
+CONFIG_SLIM_QCOM_NGD_CTRL=m
+CONFIG_DMABUF_HEAPS_SYSTEM=m
+CONFIG_SDM_VIDEOCC_845=m
+# CONFIG_CXD2880_SPI_DRV is not set
+# CONFIG_MEDIA_TUNER_SIMPLE is not set
+# CONFIG_MEDIA_TUNER_TDA18250 is not set
+# CONFIG_MEDIA_TUNER_TDA8290 is not set
+# CONFIG_MEDIA_TUNER_TDA827X is not set
+# CONFIG_MEDIA_TUNER_TDA18271 is not set
+# CONFIG_MEDIA_TUNER_TDA9887 is not set
+# CONFIG_MEDIA_TUNER_TEA5761 is not set
+# CONFIG_MEDIA_TUNER_TEA5767 is not set
+# CONFIG_MEDIA_TUNER_MSI001 is not set
+# CONFIG_MEDIA_TUNER_MT20XX is not set
+# CONFIG_MEDIA_TUNER_MT2060 is not set
+# CONFIG_MEDIA_TUNER_MT2063 is not set
+# CONFIG_MEDIA_TUNER_MT2266 is not set
+# CONFIG_MEDIA_TUNER_MT2131 is not set
+# CONFIG_MEDIA_TUNER_QT1010 is not set
+# CONFIG_MEDIA_TUNER_XC2028 is not set
+# CONFIG_MEDIA_TUNER_XC5000 is not set
+# CONFIG_MEDIA_TUNER_XC4000 is not set
+# CONFIG_MEDIA_TUNER_MXL5005S is not set
+# CONFIG_MEDIA_TUNER_MXL5007T is not set
+# CONFIG_MEDIA_TUNER_MC44S803 is not set
+# CONFIG_MEDIA_TUNER_MAX2165 is not set
+# CONFIG_MEDIA_TUNER_TDA18218 is not set
+# CONFIG_MEDIA_TUNER_FC0011 is not set
+# CONFIG_MEDIA_TUNER_FC0012 is not set
+# CONFIG_MEDIA_TUNER_FC0013 is not set
+# CONFIG_MEDIA_TUNER_TDA18212 is not set
+# CONFIG_MEDIA_TUNER_E4000 is not set
+# CONFIG_MEDIA_TUNER_FC2580 is not set
+# CONFIG_MEDIA_TUNER_M88RS6000T is not set
+# CONFIG_MEDIA_TUNER_TUA9001 is not set
+# CONFIG_MEDIA_TUNER_SI2157 is not set
+# CONFIG_MEDIA_TUNER_IT913X is not set
+# CONFIG_MEDIA_TUNER_R820T is not set
+# CONFIG_MEDIA_TUNER_MXL301RF is not set
+# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set
+# CONFIG_MEDIA_TUNER_QM1D1B0004 is not set
+# CONFIG_DVB_STB0899 is not set
+# CONFIG_DVB_STB6100 is not set
+# CONFIG_DVB_STV090x is not set
+# CONFIG_DVB_STV0910 is not set
+# CONFIG_DVB_STV6110x is not set
+# CONFIG_DVB_STV6111 is not set
+# CONFIG_DVB_MXL5XX is not set
+# CONFIG_DVB_M88DS3103 is not set
+# CONFIG_DVB_DRXK is not set
+# CONFIG_DVB_TDA18271C2DD is not set
+# CONFIG_DVB_SI2165 is not set
+# CONFIG_DVB_MN88472 is not set
+# CONFIG_DVB_MN88473 is not set
+# CONFIG_DVB_CX24110 is not set
+# CONFIG_DVB_CX24123 is not set
+# CONFIG_DVB_MT312 is not set
+# CONFIG_DVB_ZL10036 is not set
+# CONFIG_DVB_ZL10039 is not set
+# CONFIG_DVB_S5H1420 is not set
+# CONFIG_DVB_STV0288 is not set
+# CONFIG_DVB_STB6000 is not set
+# CONFIG_DVB_STV0299 is not set
+# CONFIG_DVB_STV6110 is not set
+# CONFIG_DVB_STV0900 is not set
+# CONFIG_DVB_TDA8083 is not set
+# CONFIG_DVB_TDA10086 is not set
+# CONFIG_DVB_TDA8261 is not set
+# CONFIG_DVB_VES1X93 is not set
+# CONFIG_DVB_TUNER_ITD1000 is not set
+# CONFIG_DVB_TUNER_CX24113 is not set
+# CONFIG_DVB_TDA826X is not set
+# CONFIG_DVB_TUA6100 is not set
+# CONFIG_DVB_CX24116 is not set
+# CONFIG_DVB_CX24117 is not set
+# CONFIG_DVB_CX24120 is not set
+# CONFIG_DVB_SI21XX is not set
+# CONFIG_DVB_TS2020 is not set
+# CONFIG_DVB_DS3000 is not set
+# CONFIG_DVB_MB86A16 is not set
+# CONFIG_DVB_TDA10071 is not set
+# CONFIG_DVB_SP8870 is not set
+# CONFIG_DVB_SP887X is not set
+# CONFIG_DVB_CX22700 is not set
+# CONFIG_DVB_CX22702 is not set
+# CONFIG_DVB_S5H1432 is not set
+# CONFIG_DVB_DRXD is not set
+# CONFIG_DVB_L64781 is not set
+# CONFIG_DVB_TDA1004X is not set
+# CONFIG_DVB_NXT6000 is not set
+# CONFIG_DVB_MT352 is not set
+# CONFIG_DVB_ZL10353 is not set
+# CONFIG_DVB_DIB3000MB is not set
+# CONFIG_DVB_DIB3000MC is not set
+# CONFIG_DVB_DIB7000M is not set
+# CONFIG_DVB_DIB7000P is not set
+# CONFIG_DVB_DIB9000 is not set
+# CONFIG_DVB_TDA10048 is not set
+# CONFIG_DVB_AF9013 is not set
+# CONFIG_DVB_EC100 is not set
+# CONFIG_DVB_STV0367 is not set
+# CONFIG_DVB_CXD2820R is not set
+# CONFIG_DVB_CXD2841ER is not set
+# CONFIG_DVB_RTL2830 is not set
+# CONFIG_DVB_RTL2832 is not set
+# CONFIG_DVB_RTL2832_SDR is not set
+# CONFIG_DVB_SI2168 is not set
+# CONFIG_DVB_ZD1301_DEMOD is not set
+# CONFIG_DVB_CXD2880 is not set
+# CONFIG_DVB_VES1820 is not set
+# CONFIG_DVB_TDA10021 is not set
+# CONFIG_DVB_TDA10023 is not set
+# CONFIG_DVB_STV0297 is not set
+# CONFIG_DVB_NXT200X is not set
+# CONFIG_DVB_OR51211 is not set
+# CONFIG_DVB_OR51132 is not set
+# CONFIG_DVB_BCM3510 is not set
+# CONFIG_DVB_LGDT330X is not set
+# CONFIG_DVB_LGDT3305 is not set
+# CONFIG_DVB_LGDT3306A is not set
+# CONFIG_DVB_LG2160 is not set
+# CONFIG_DVB_S5H1409 is not set
+# CONFIG_DVB_AU8522_DTV is not set
+# CONFIG_DVB_AU8522_V4L is not set
+# CONFIG_DVB_S5H1411 is not set
+# CONFIG_DVB_S921 is not set
+# CONFIG_DVB_DIB8000 is not set
+# CONFIG_DVB_MB86A20S is not set
+# CONFIG_DVB_TC90522 is not set
+# CONFIG_DVB_MN88443X is not set
+# CONFIG_DVB_PLL is not set
+# CONFIG_DVB_TUNER_DIB0070 is not set
+# CONFIG_DVB_TUNER_DIB0090 is not set
+# CONFIG_DVB_DRX39XYJ is not set
+# CONFIG_DVB_LNBH25 is not set
+# CONFIG_DVB_LNBH29 is not set
+# CONFIG_DVB_LNBP21 is not set
+# CONFIG_DVB_LNBP22 is not set
+# CONFIG_DVB_ISL6405 is not set
+# CONFIG_DVB_ISL6421 is not set
+# CONFIG_DVB_ISL6423 is not set
+# CONFIG_DVB_A8293 is not set
+# CONFIG_DVB_LGS8GL5 is not set
+# CONFIG_DVB_LGS8GXX is not set
+# CONFIG_DVB_ATBM8830 is not set
+# CONFIG_DVB_TDA665x is not set
+# CONFIG_DVB_IX2505V is not set
+# CONFIG_DVB_M88RS2000 is not set
+# CONFIG_DVB_AF9033 is not set
+# CONFIG_DVB_HORUS3A is not set
+# CONFIG_DVB_ASCOT2E is not set
+# CONFIG_DVB_HELENE is not set
+# CONFIG_DVB_CXD2099 is not set
+# CONFIG_DVB_SP2 is not set
+CONFIG_QCOM_COMMAND_DB=m
+CONFIG_QCOM_LMH=m
+# XXX RB5 bits start here
+CONFIG_QCOM_IPCC=m
+CONFIG_QCOM_SPMI_ADC5=m
+CONFIG_QCOM_SPMI_TEMP_ALARM=m
+CONFIG_RPMSG_NS=m
+CONFIG_CAN_MCP251XFD=m
+CONFIG_ATH11K=m
+CONFIG_ATH11K_AHB=m
+CONFIG_ATH11K_PCI=m
+CONFIG_PINCTRL_SM8250=m
+CONFIG_PINCTRL_LPASS_LPI=m
+CONFIG_QCOM_SPMI_ADC_TM5=m
+CONFIG_MFD_QCOM_QCA639X=m
+CONFIG_REGULATOR_QCOM_USB_VBUS=m
+CONFIG_DRM_DISPLAY_CONNECTOR=m
+CONFIG_DRM_LONTIUM_LT9611UXC=m
+CONFIG_SND_SOC_SM8250=m
+CONFIG_SND_SOC_LPASS_WSA_MACRO=m
+CONFIG_SND_SOC_LPASS_VA_MACRO=m
+CONFIG_TYPEC_QCOM_PMIC=m
+CONFIG_LEDS_QCOM_LPG=m
+CONFIG_SM_GPUCC_8250=m
+CONFIG_SM_DISPCC_8250=m
+CONFIG_SM_VIDEOCC_8250=m
+CONFIG_CLK_GFM_LPASS_SM8250=m
+CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2=m
+CONFIG_INTERCONNECT_QCOM_SM8250=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
diff --git a/arch/arm64/configs/fips140_gki.fragment b/arch/arm64/configs/fips140_gki.fragment
new file mode 100644
index 0000000..6829252
--- /dev/null
+++ b/arch/arm64/configs/fips140_gki.fragment
@@ -0,0 +1 @@
+CONFIG_CRYPTO_FIPS140_MOD=y
diff --git a/arch/arm64/configs/gki_defconfig b/arch/arm64/configs/gki_defconfig
new file mode 100644
index 0000000..21c8056
--- /dev/null
+++ b/arch/arm64/configs/gki_defconfig
@@ -0,0 +1,713 @@
+CONFIG_UAPI_HEADER_TEST=y
+CONFIG_AUDIT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_BPF_JIT=y
+CONFIG_BPF_JIT_ALWAYS_ON=y
+CONFIG_PREEMPT=y
+CONFIG_IRQ_TIME_ACCOUNTING=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_PSI=y
+CONFIG_RCU_EXPERT=y
+CONFIG_RCU_FAST_NO_HZ=y
+CONFIG_RCU_BOOST=y
+CONFIG_RCU_NOCB_CPU=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_IKHEADERS=y
+CONFIG_UCLAMP_TASK=y
+CONFIG_UCLAMP_BUCKETS_COUNT=20
+CONFIG_CGROUPS=y
+CONFIG_MEMCG=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_UCLAMP_TASK_GROUP=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CPUSETS=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_BPF=y
+CONFIG_NAMESPACES=y
+# CONFIG_PID_NS is not set
+CONFIG_RT_SOFTINT_OPTIMIZATION=y
+CONFIG_RELAY=y
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZMA is not set
+# CONFIG_RD_XZ is not set
+# CONFIG_RD_LZO is not set
+CONFIG_BOOT_CONFIG=y
+# CONFIG_SYSFS_SYSCALL is not set
+# CONFIG_FHANDLE is not set
+CONFIG_KALLSYMS_ALL=y
+CONFIG_USERFAULTFD=y
+# CONFIG_RSEQ is not set
+CONFIG_EMBEDDED=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB_MERGE_DEFAULT is not set
+CONFIG_SLAB_FREELIST_RANDOM=y
+CONFIG_SLAB_FREELIST_HARDENED=y
+CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
+CONFIG_PROFILING=y
+CONFIG_ARCH_SUNXI=y
+CONFIG_ARCH_HISI=y
+CONFIG_ARCH_QCOM=y
+CONFIG_SCHED_MC=y
+CONFIG_NR_CPUS=32
+CONFIG_PARAVIRT_TIME_ACCOUNTING=y
+CONFIG_ARM64_SW_TTBR0_PAN=y
+CONFIG_COMPAT=y
+CONFIG_ARMV8_DEPRECATED=y
+CONFIG_SWP_EMULATION=y
+CONFIG_CP15_BARRIER_EMULATION=y
+CONFIG_SETEND_EMULATION=y
+CONFIG_ARM64_MPAM=y
+CONFIG_RANDOMIZE_BASE=y
+# CONFIG_RANDOMIZE_MODULE_REGION_FULL is not set
+CONFIG_CMDLINE="stack_depot_disable=on kasan.stacktrace=off kvm-arm.mode=protected cgroup_disable=pressure"
+CONFIG_CMDLINE_EXTEND=y
+# CONFIG_DMI is not set
+CONFIG_HIBERNATION=y
+CONFIG_PM_WAKELOCKS=y
+CONFIG_PM_WAKELOCKS_LIMIT=0
+# CONFIG_PM_WAKELOCKS_GC is not set
+CONFIG_ENERGY_MODEL=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_CPU_IDLE_GOV_TEO=y
+CONFIG_ARM_CPUIDLE=y
+CONFIG_ARM_PSCI_CPUIDLE=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_TIMES=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_ARM_SCPI_CPUFREQ=y
+CONFIG_ARM_SCMI_CPUFREQ=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=y
+CONFIG_KVM_S2MPU=y
+CONFIG_CRYPTO_SHA2_ARM64_CE=y
+CONFIG_CRYPTO_SHA512_ARM64_CE=y
+CONFIG_CRYPTO_GHASH_ARM64_CE=y
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
+CONFIG_KPROBES=y
+CONFIG_JUMP_LABEL=y
+CONFIG_SHADOW_CALL_STACK=y
+CONFIG_LTO_CLANG_FULL=y
+CONFIG_CFI_CLANG=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SCMVERSION=y
+CONFIG_MODULE_SIG=y
+CONFIG_MODULE_SIG_PROTECT=y
+CONFIG_BLK_CGROUP_IOCOST=y
+CONFIG_BLK_CGROUP_IOPRIO=y
+CONFIG_BLK_INLINE_ENCRYPTION=y
+CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y
+CONFIG_IOSCHED_BFQ=y
+CONFIG_BFQ_GROUP_IOSCHED=y
+CONFIG_GKI_HACKS_TO_FIX=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_BINFMT_MISC=y
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
+CONFIG_CLEANCACHE=y
+CONFIG_CMA=y
+CONFIG_CMA_DEBUGFS=y
+CONFIG_CMA_AREAS=32
+CONFIG_ZSMALLOC=m
+# CONFIG_ZONE_DMA is not set
+CONFIG_ANON_VMA_NAME=y
+CONFIG_LRU_GEN=y
+CONFIG_DAMON=y
+CONFIG_DAMON_PADDR=y
+CONFIG_DAMON_RECLAIM=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM_USER=y
+CONFIG_XFRM_INTERFACE=y
+CONFIG_XFRM_MIGRATE=y
+CONFIG_XFRM_STATISTICS=y
+CONFIG_NET_KEY=y
+CONFIG_XDP_SOCKETS=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_NET_IPIP=y
+CONFIG_NET_IPGRE_DEMUX=y
+CONFIG_NET_IPGRE=y
+CONFIG_SYN_COOKIES=y
+CONFIG_NET_IPVTI=y
+CONFIG_INET_ESP=y
+CONFIG_INET_UDP_DIAG=y
+CONFIG_INET_DIAG_DESTROY=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_ESP=y
+CONFIG_INET6_IPCOMP=y
+CONFIG_IPV6_MIP6=y
+CONFIG_IPV6_VTI=y
+CONFIG_IPV6_GRE=y
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_NETFILTER=y
+CONFIG_NF_CONNTRACK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_AMANDA=y
+CONFIG_NF_CONNTRACK_FTP=y
+CONFIG_NF_CONNTRACK_H323=y
+CONFIG_NF_CONNTRACK_IRC=y
+CONFIG_NF_CONNTRACK_NETBIOS_NS=y
+CONFIG_NF_CONNTRACK_PPTP=y
+CONFIG_NF_CONNTRACK_SANE=y
+CONFIG_NF_CONNTRACK_TFTP=y
+CONFIG_NF_CT_NETLINK=y
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=y
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
+CONFIG_NETFILTER_XT_TARGET_DSCP=y
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y
+CONFIG_NETFILTER_XT_TARGET_MARK=y
+CONFIG_NETFILTER_XT_TARGET_NFLOG=y
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=y
+CONFIG_NETFILTER_XT_TARGET_TEE=y
+CONFIG_NETFILTER_XT_TARGET_TPROXY=y
+CONFIG_NETFILTER_XT_TARGET_TRACE=y
+CONFIG_NETFILTER_XT_TARGET_SECMARK=y
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
+CONFIG_NETFILTER_XT_MATCH_BPF=y
+CONFIG_NETFILTER_XT_MATCH_COMMENT=y
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=y
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
+CONFIG_NETFILTER_XT_MATCH_DSCP=y
+CONFIG_NETFILTER_XT_MATCH_ESP=y
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y
+CONFIG_NETFILTER_XT_MATCH_HELPER=y
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=y
+CONFIG_NETFILTER_XT_MATCH_LENGTH=y
+CONFIG_NETFILTER_XT_MATCH_LIMIT=y
+CONFIG_NETFILTER_XT_MATCH_MAC=y
+CONFIG_NETFILTER_XT_MATCH_MARK=y
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y
+CONFIG_NETFILTER_XT_MATCH_OWNER=y
+CONFIG_NETFILTER_XT_MATCH_POLICY=y
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y
+CONFIG_NETFILTER_XT_MATCH_QUOTA=y
+CONFIG_NETFILTER_XT_MATCH_QUOTA2=y
+CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG=y
+CONFIG_NETFILTER_XT_MATCH_SOCKET=y
+CONFIG_NETFILTER_XT_MATCH_STATE=y
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=y
+CONFIG_NETFILTER_XT_MATCH_STRING=y
+CONFIG_NETFILTER_XT_MATCH_TIME=y
+CONFIG_NETFILTER_XT_MATCH_U32=y
+CONFIG_IP_NF_IPTABLES=y
+CONFIG_IP_NF_MATCH_ECN=y
+CONFIG_IP_NF_MATCH_TTL=y
+CONFIG_IP_NF_FILTER=y
+CONFIG_IP_NF_TARGET_REJECT=y
+CONFIG_IP_NF_NAT=y
+CONFIG_IP_NF_TARGET_MASQUERADE=y
+CONFIG_IP_NF_TARGET_NETMAP=y
+CONFIG_IP_NF_TARGET_REDIRECT=y
+CONFIG_IP_NF_MANGLE=y
+CONFIG_IP_NF_RAW=y
+CONFIG_IP_NF_SECURITY=y
+CONFIG_IP_NF_ARPTABLES=y
+CONFIG_IP_NF_ARPFILTER=y
+CONFIG_IP_NF_ARP_MANGLE=y
+CONFIG_IP6_NF_IPTABLES=y
+CONFIG_IP6_NF_MATCH_RPFILTER=y
+CONFIG_IP6_NF_FILTER=y
+CONFIG_IP6_NF_TARGET_REJECT=y
+CONFIG_IP6_NF_MANGLE=y
+CONFIG_IP6_NF_RAW=y
+CONFIG_TIPC=y
+CONFIG_L2TP=y
+CONFIG_BRIDGE=y
+CONFIG_VLAN_8021Q=y
+CONFIG_6LOWPAN=y
+CONFIG_IEEE802154=y
+CONFIG_IEEE802154_6LOWPAN=y
+CONFIG_MAC802154=y
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_HTB=y
+CONFIG_NET_SCH_PRIO=y
+CONFIG_NET_SCH_MULTIQ=y
+CONFIG_NET_SCH_SFQ=y
+CONFIG_NET_SCH_TBF=y
+CONFIG_NET_SCH_NETEM=y
+CONFIG_NET_SCH_CODEL=y
+CONFIG_NET_SCH_FQ_CODEL=y
+CONFIG_NET_SCH_FQ=y
+CONFIG_NET_SCH_INGRESS=y
+CONFIG_NET_CLS_BASIC=y
+CONFIG_NET_CLS_FW=y
+CONFIG_NET_CLS_U32=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_FLOW=y
+CONFIG_NET_CLS_BPF=y
+CONFIG_NET_CLS_MATCHALL=y
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_CMP=y
+CONFIG_NET_EMATCH_NBYTE=y
+CONFIG_NET_EMATCH_U32=y
+CONFIG_NET_EMATCH_META=y
+CONFIG_NET_EMATCH_TEXT=y
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=y
+CONFIG_NET_ACT_GACT=y
+CONFIG_NET_ACT_MIRRED=y
+CONFIG_NET_ACT_SKBEDIT=y
+CONFIG_NET_ACT_BPF=y
+CONFIG_VSOCKETS=y
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_CAN=y
+CONFIG_BT=y
+CONFIG_BT_RFCOMM=y
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_HIDP=y
+CONFIG_BT_HCIBTSDIO=y
+CONFIG_BT_HCIUART=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIUART_BCM=y
+CONFIG_BT_HCIUART_QCA=y
+CONFIG_RFKILL=y
+CONFIG_NFC=y
+CONFIG_PCI=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCIEAER=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_HOST_GENERIC=y
+CONFIG_PCIE_DW_PLAT_EP=y
+CONFIG_PCIE_QCOM=y
+CONFIG_PCIE_KIRIN=y
+CONFIG_PCI_ENDPOINT=y
+CONFIG_FW_LOADER_USER_HELPER=y
+# CONFIG_FW_CACHE is not set
+# CONFIG_SUN50I_DE2_BUS is not set
+# CONFIG_SUNXI_RSB is not set
+CONFIG_ARM_SCMI_PROTOCOL=y
+# CONFIG_ARM_SCMI_POWER_DOMAIN is not set
+CONFIG_ARM_SCPI_PROTOCOL=y
+# CONFIG_ARM_SCPI_POWER_DOMAIN is not set
+# CONFIG_EFI_ARMSTUB_DTB_LOADER is not set
+CONFIG_GNSS=y
+CONFIG_ZRAM=m
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=16
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_SRAM=y
+CONFIG_UID_SYS_STATS=y
+CONFIG_SCSI=y
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_SCSI_UFSHCD=y
+CONFIG_SCSI_UFSHCD_PCI=y
+CONFIG_SCSI_UFSHCD_PLATFORM=y
+CONFIG_SCSI_UFS_DWC_TC_PLATFORM=y
+CONFIG_SCSI_UFS_HISI=y
+CONFIG_SCSI_UFS_BSG=y
+CONFIG_SCSI_UFS_CRYPTO=y
+CONFIG_SCSI_UFS_HPB=y
+CONFIG_MD=y
+CONFIG_BLK_DEV_DM=y
+CONFIG_DM_CRYPT=y
+CONFIG_DM_DEFAULT_KEY=y
+CONFIG_DM_SNAPSHOT=y
+CONFIG_DM_INIT=y
+CONFIG_DM_UEVENT=y
+CONFIG_DM_VERITY=y
+CONFIG_DM_VERITY_FEC=y
+CONFIG_DM_BOW=y
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=y
+CONFIG_WIREGUARD=y
+CONFIG_IFB=y
+CONFIG_MACSEC=y
+CONFIG_TUN=y
+CONFIG_VETH=y
+CONFIG_PPP=y
+CONFIG_PPP_BSDCOMP=y
+CONFIG_PPP_DEFLATE=y
+CONFIG_PPP_MPPE=y
+CONFIG_PPTP=y
+CONFIG_PPPOL2TP=y
+CONFIG_USB_RTL8150=y
+CONFIG_USB_RTL8152=y
+CONFIG_USB_USBNET=y
+CONFIG_USB_NET_CDC_EEM=y
+# CONFIG_USB_NET_NET1080 is not set
+# CONFIG_USB_NET_CDC_SUBSET is not set
+# CONFIG_USB_NET_ZAURUS is not set
+CONFIG_USB_NET_AQC111=y
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
+# CONFIG_WLAN_VENDOR_ATH is not set
+# CONFIG_WLAN_VENDOR_ATMEL is not set
+# CONFIG_WLAN_VENDOR_BROADCOM is not set
+# CONFIG_WLAN_VENDOR_CISCO is not set
+# CONFIG_WLAN_VENDOR_INTEL is not set
+# CONFIG_WLAN_VENDOR_INTERSIL is not set
+# CONFIG_WLAN_VENDOR_MARVELL is not set
+# CONFIG_WLAN_VENDOR_MEDIATEK is not set
+# CONFIG_WLAN_VENDOR_RALINK is not set
+# CONFIG_WLAN_VENDOR_REALTEK is not set
+# CONFIG_WLAN_VENDOR_RSI is not set
+# CONFIG_WLAN_VENDOR_ST is not set
+# CONFIG_WLAN_VENDOR_TI is not set
+# CONFIG_WLAN_VENDOR_ZYDAS is not set
+# CONFIG_WLAN_VENDOR_QUANTENNA is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_KEYBOARD_GPIO=y
+# CONFIG_MOUSE_PS2 is not set
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_XPAD=y
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_UINPUT=y
+# CONFIG_VT is not set
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_8250=y
+# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+# CONFIG_SERIAL_8250_EXAR is not set
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=0
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_SAMSUNG=y
+CONFIG_SERIAL_SAMSUNG_CONSOLE=y
+CONFIG_SERIAL_QCOM_GENI=y
+# CONFIG_SERIAL_QCOM_GENI_CONSOLE_DEFAULT_ENABLED is not set
+CONFIG_SERIAL_QCOM_GENI_CONSOLE=y
+CONFIG_SERIAL_SPRD=y
+CONFIG_SERIAL_SPRD_CONSOLE=y
+CONFIG_HVC_DCC=y
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_HW_RANDOM=y
+# CONFIG_DEVMEM is not set
+# CONFIG_DEVPORT is not set
+# CONFIG_I2C_COMPAT is not set
+# CONFIG_I2C_HELPER_AUTO is not set
+CONFIG_I3C=y
+CONFIG_SPI=y
+CONFIG_SPI_MEM=y
+CONFIG_SPMI=y
+# CONFIG_SPMI_MSM_PMIC_ARB is not set
+# CONFIG_PINCTRL_SUN8I_H3_R is not set
+# CONFIG_PINCTRL_SUN50I_A64 is not set
+# CONFIG_PINCTRL_SUN50I_A64_R is not set
+# CONFIG_PINCTRL_SUN50I_H5 is not set
+# CONFIG_PINCTRL_SUN50I_H6 is not set
+# CONFIG_PINCTRL_SUN50I_H6_R is not set
+CONFIG_GPIO_GENERIC_PLATFORM=y
+CONFIG_POWER_RESET_HISI=y
+CONFIG_POWER_RESET_SYSCON=y
+# CONFIG_HWMON is not set
+CONFIG_THERMAL=y
+CONFIG_THERMAL_NETLINK=y
+CONFIG_THERMAL_STATISTICS=y
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=100
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL_GOV_USER_SPACE=y
+CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
+CONFIG_CPU_THERMAL=y
+CONFIG_DEVFREQ_THERMAL=y
+CONFIG_THERMAL_EMULATION=y
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+CONFIG_MFD_ACT8945A=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_RC_CORE=y
+# CONFIG_RC_MAP is not set
+CONFIG_LIRC=y
+CONFIG_BPF_LIRC_MODE2=y
+CONFIG_RC_DECODERS=y
+CONFIG_RC_DEVICES=y
+CONFIG_MEDIA_CEC_RC=y
+# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set
+# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set
+# CONFIG_MEDIA_RADIO_SUPPORT is not set
+# CONFIG_MEDIA_SDR_SUPPORT is not set
+# CONFIG_MEDIA_TEST_SUPPORT is not set
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_USB_VIDEO_CLASS=y
+CONFIG_USB_GSPCA=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+# CONFIG_VGA_ARB is not set
+CONFIG_DRM=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_HRTIMER=y
+# CONFIG_SND_SUPPORT_OLD_API is not set
+# CONFIG_SND_VERBOSE_PROCFS is not set
+# CONFIG_SND_DRIVERS is not set
+CONFIG_SND_USB_AUDIO=y
+CONFIG_SND_SOC=y
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_UHID=y
+CONFIG_HID_APPLE=y
+CONFIG_HID_PRODIKEYS=y
+CONFIG_HID_ELECOM=y
+CONFIG_HID_UCLOGIC=y
+CONFIG_HID_LOGITECH=y
+CONFIG_HID_LOGITECH_DJ=y
+CONFIG_HID_MAGICMOUSE=y
+CONFIG_HID_MICROSOFT=y
+CONFIG_HID_MULTITOUCH=y
+CONFIG_HID_NINTENDO=y
+CONFIG_HID_PICOLCD=y
+CONFIG_HID_PLANTRONICS=y
+CONFIG_HID_PLAYSTATION=y
+CONFIG_PLAYSTATION_FF=y
+CONFIG_HID_ROCCAT=y
+CONFIG_HID_SONY=y
+CONFIG_SONY_FF=y
+CONFIG_HID_STEAM=y
+CONFIG_HID_WACOM=y
+CONFIG_HID_WIIMOTE=y
+CONFIG_USB_HIDDEV=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_OTG=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+CONFIG_USB_ACM=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_UAS=y
+CONFIG_USB_DWC3=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_CONFIGFS=y
+CONFIG_USB_CONFIGFS_UEVENT=y
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_ACC=y
+CONFIG_USB_CONFIGFS_F_AUDIO_SRC=y
+CONFIG_USB_CONFIGFS_F_UAC2=y
+CONFIG_USB_CONFIGFS_F_MIDI=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_TYPEC=y
+CONFIG_TYPEC_TCPM=y
+CONFIG_TYPEC_TCPCI=y
+CONFIG_TYPEC_UCSI=y
+CONFIG_MMC=y
+# CONFIG_PWRSEQ_EMMC is not set
+# CONFIG_PWRSEQ_SIMPLE is not set
+CONFIG_MMC_CRYPTO=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_LEDS_CLASS_FLASH=y
+CONFIG_LEDS_CLASS_MULTICOLOR=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_TRANSIENT=y
+CONFIG_EDAC=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_PL030=y
+CONFIG_RTC_DRV_PL031=y
+CONFIG_DMABUF_HEAPS=y
+CONFIG_DMABUF_SYSFS_STATS=y
+CONFIG_DMABUF_HEAPS_DEFERRED_FREE=y
+CONFIG_DMABUF_HEAPS_PAGE_POOL=y
+CONFIG_UIO=y
+CONFIG_VHOST_VSOCK=y
+CONFIG_STAGING=y
+CONFIG_ASHMEM=y
+CONFIG_DEBUG_KINFO=y
+CONFIG_COMMON_CLK_SCPI=y
+# CONFIG_CLK_SUNXI is not set
+# CONFIG_SUNXI_CCU is not set
+CONFIG_HWSPINLOCK=y
+# CONFIG_SUN50I_ERRATUM_UNKNOWN1 is not set
+CONFIG_MAILBOX=y
+CONFIG_IOMMU_IO_PGTABLE_ARMV7S=y
+CONFIG_REMOTEPROC=y
+CONFIG_REMOTEPROC_CDEV=y
+CONFIG_RPMSG_CHAR=y
+CONFIG_QCOM_GENI_SE=y
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+CONFIG_DEVFREQ_GOV_PASSIVE=y
+CONFIG_PM_DEVFREQ_EVENT=y
+CONFIG_IIO=y
+CONFIG_IIO_BUFFER=y
+CONFIG_IIO_TRIGGERED_BUFFER=y
+CONFIG_PWM=y
+CONFIG_GENERIC_PHY=y
+CONFIG_POWERCAP=y
+CONFIG_ANDROID=y
+CONFIG_ANDROID_BINDER_IPC=y
+CONFIG_ANDROID_BINDERFS=y
+CONFIG_ANDROID_DEBUG_SYMBOLS=y
+CONFIG_ANDROID_VENDOR_HOOKS=y
+CONFIG_LIBNVDIMM=y
+# CONFIG_ND_BLK is not set
+CONFIG_INTERCONNECT=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_F2FS_FS=y
+CONFIG_F2FS_FS_SECURITY=y
+CONFIG_F2FS_FS_COMPRESSION=y
+CONFIG_F2FS_UNFAIR_RWSEM=y
+CONFIG_FS_ENCRYPTION=y
+CONFIG_FS_ENCRYPTION_INLINE_CRYPT=y
+CONFIG_FS_VERITY=y
+CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
+# CONFIG_DNOTIFY is not set
+CONFIG_QUOTA=y
+CONFIG_QFMT_V2=y
+CONFIG_FUSE_FS=y
+CONFIG_VIRTIO_FS=y
+CONFIG_FUSE_BPF=y
+CONFIG_OVERLAY_FS=y
+CONFIG_INCREMENTAL_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_EXFAT_FS=y
+CONFIG_TMPFS=y
+# CONFIG_EFIVAR_FS is not set
+CONFIG_PSTORE=y
+CONFIG_PSTORE_CONSOLE=y
+CONFIG_PSTORE_PMSG=y
+CONFIG_PSTORE_RAM=y
+CONFIG_EROFS_FS=y
+CONFIG_EROFS_FS_PCPU_KTHREAD=y
+CONFIG_EROFS_FS_PCPU_KTHREAD_HIPRI=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=y
+CONFIG_NLS_CODEPAGE_775=y
+CONFIG_NLS_CODEPAGE_850=y
+CONFIG_NLS_CODEPAGE_852=y
+CONFIG_NLS_CODEPAGE_855=y
+CONFIG_NLS_CODEPAGE_857=y
+CONFIG_NLS_CODEPAGE_860=y
+CONFIG_NLS_CODEPAGE_861=y
+CONFIG_NLS_CODEPAGE_862=y
+CONFIG_NLS_CODEPAGE_863=y
+CONFIG_NLS_CODEPAGE_864=y
+CONFIG_NLS_CODEPAGE_865=y
+CONFIG_NLS_CODEPAGE_866=y
+CONFIG_NLS_CODEPAGE_869=y
+CONFIG_NLS_CODEPAGE_936=y
+CONFIG_NLS_CODEPAGE_950=y
+CONFIG_NLS_CODEPAGE_932=y
+CONFIG_NLS_CODEPAGE_949=y
+CONFIG_NLS_CODEPAGE_874=y
+CONFIG_NLS_ISO8859_8=y
+CONFIG_NLS_CODEPAGE_1250=y
+CONFIG_NLS_CODEPAGE_1251=y
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=y
+CONFIG_NLS_ISO8859_3=y
+CONFIG_NLS_ISO8859_4=y
+CONFIG_NLS_ISO8859_5=y
+CONFIG_NLS_ISO8859_6=y
+CONFIG_NLS_ISO8859_7=y
+CONFIG_NLS_ISO8859_9=y
+CONFIG_NLS_ISO8859_13=y
+CONFIG_NLS_ISO8859_14=y
+CONFIG_NLS_ISO8859_15=y
+CONFIG_NLS_KOI8_R=y
+CONFIG_NLS_KOI8_U=y
+CONFIG_NLS_MAC_ROMAN=y
+CONFIG_NLS_MAC_CELTIC=y
+CONFIG_NLS_MAC_CENTEURO=y
+CONFIG_NLS_MAC_CROATIAN=y
+CONFIG_NLS_MAC_CYRILLIC=y
+CONFIG_NLS_MAC_GAELIC=y
+CONFIG_NLS_MAC_GREEK=y
+CONFIG_NLS_MAC_ICELAND=y
+CONFIG_NLS_MAC_INUIT=y
+CONFIG_NLS_MAC_ROMANIAN=y
+CONFIG_NLS_MAC_TURKISH=y
+CONFIG_NLS_UTF8=y
+CONFIG_UNICODE=y
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_HARDENED_USERCOPY=y
+# CONFIG_HARDENED_USERCOPY_FALLBACK is not set
+CONFIG_STATIC_USERMODEHELPER=y
+CONFIG_STATIC_USERMODEHELPER_PATH=""
+CONFIG_SECURITY_SELINUX=y
+CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
+CONFIG_CRYPTO_CHACHA20POLY1305=y
+CONFIG_CRYPTO_ADIANTUM=y
+CONFIG_CRYPTO_XCBC=y
+CONFIG_CRYPTO_BLAKE2B=y
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_LZ4=y
+CONFIG_CRYPTO_ZSTD=y
+CONFIG_CRYPTO_ANSI_CPRNG=y
+CONFIG_TRACE_MMIO_ACCESS=y
+CONFIG_XZ_DEC=y
+CONFIG_DMA_RESTRICTED_POOL=y
+CONFIG_DMA_CMA=y
+CONFIG_STACK_HASH_ORDER=12
+CONFIG_PRINTK_TIME=y
+CONFIG_PRINTK_CALLER=y
+CONFIG_DYNAMIC_DEBUG_CORE=y
+CONFIG_DEBUG_INFO=y
+CONFIG_DEBUG_INFO_DWARF4=y
+CONFIG_DEBUG_INFO_BTF=y
+CONFIG_MODULE_ALLOW_BTF_MISMATCH=y
+CONFIG_HEADERS_INSTALL=y
+# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_UBSAN=y
+CONFIG_UBSAN_TRAP=y
+CONFIG_UBSAN_LOCAL_BOUNDS=y
+# CONFIG_UBSAN_SHIFT is not set
+# CONFIG_UBSAN_BOOL is not set
+# CONFIG_UBSAN_ENUM is not set
+CONFIG_PAGE_OWNER=y
+CONFIG_PAGE_PINNER=y
+CONFIG_DEBUG_STACK_USAGE=y
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_KASAN=y
+CONFIG_KASAN_HW_TAGS=y
+CONFIG_KFENCE=y
+CONFIG_KFENCE_SAMPLE_INTERVAL=500
+CONFIG_KFENCE_NUM_OBJECTS=63
+CONFIG_KFENCE_STATIC_KEYS=y
+CONFIG_PANIC_ON_OOPS=y
+CONFIG_PANIC_TIMEOUT=-1
+CONFIG_SOFTLOCKUP_DETECTOR=y
+CONFIG_WQ_WATCHDOG=y
+CONFIG_SCHEDSTATS=y
+# CONFIG_DEBUG_PREEMPT is not set
+CONFIG_BUG_ON_DATA_CORRUPTION=y
+CONFIG_HIST_TRIGGERS=y
+CONFIG_PID_IN_CONTEXTIDR=y
+CONFIG_FUNCTION_ERROR_INJECTION=y
+# CONFIG_RUNTIME_TESTING_MENU is not set
diff --git a/arch/arm64/configs/rockpi4_gki.fragment b/arch/arm64/configs/rockpi4_gki.fragment
new file mode 100644
index 0000000..2af01b8
--- /dev/null
+++ b/arch/arm64/configs/rockpi4_gki.fragment
@@ -0,0 +1,82 @@
+# Core features
+CONFIG_ARCH_ROCKCHIP=y
+# CONFIG_CLK_PX30 is not set
+# CONFIG_CLK_RV110X is not set
+# CONFIG_CLK_RK3036 is not set
+# CONFIG_CLK_RK312X is not set
+# CONFIG_CLK_RK3188 is not set
+# CONFIG_CLK_RK322X is not set
+# CONFIG_CLK_RK3288 is not set
+# CONFIG_CLK_RK3308 is not set
+# CONFIG_CLK_RK3328 is not set
+# CONFIG_CLK_RK3368 is not set
+CONFIG_COMMON_CLK_RK808=m
+CONFIG_CPUFREQ_DT=m
+CONFIG_MFD_RK808=m
+CONFIG_PCIE_ROCKCHIP_HOST=m
+CONFIG_PHY_ROCKCHIP_PCIE=m
+CONFIG_PL330_DMA=m
+CONFIG_PWM_ROCKCHIP=m
+CONFIG_PWRSEQ_SIMPLE=m
+CONFIG_REGULATOR_FAN53555=m
+CONFIG_REGULATOR_PWM=m
+CONFIG_REGULATOR_RK808=m
+CONFIG_ROCKCHIP_EFUSE=m
+CONFIG_ROCKCHIP_IOMMU=y
+CONFIG_ROCKCHIP_IODOMAIN=m
+CONFIG_ROCKCHIP_MBOX=y
+CONFIG_ROCKCHIP_PM_DOMAINS=y
+CONFIG_ROCKCHIP_THERMAL=m
+
+# Ethernet
+CONFIG_STMMAC_ETH=m
+# CONFIG_DWMAC_GENERIC is not set
+# CONFIG_DWMAC_IPQ806X is not set
+# CONFIG_DWMAC_QCOM_ETHQOS is not set
+# CONFIG_DWMAC_SUNXI is not set
+# CONFIG_DWMAC_SUN8I is not set
+
+# I2C
+CONFIG_I2C_RK3X=m
+
+# Watchdog
+CONFIG_DW_WATCHDOG=m
+
+# Display
+CONFIG_DRM_ROCKCHIP=m
+CONFIG_ROCKCHIP_ANALOGIX_DP=y
+CONFIG_ROCKCHIP_DW_HDMI=y
+CONFIG_ROCKCHIP_DW_MIPI_DSI=y
+
+# USB 2.x
+CONFIG_PHY_ROCKCHIP_INNO_USB2=m
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_HCD_PCI is not set
+CONFIG_USB_OHCI_HCD_PLATFORM=m
+
+# eMMC / SD-Card
+CONFIG_MMC_SDHCI_OF_ARASAN=m
+CONFIG_MMC_DW=m
+CONFIG_MMC_DW_ROCKCHIP=m
+CONFIG_PHY_ROCKCHIP_EMMC=m
+
+# Real-time clock
+CONFIG_RTC_DRV_RK808=m
+
+# Type-C
+CONFIG_PHY_ROCKCHIP_TYPEC=m
+
+# SAR ADC
+CONFIG_ROCKCHIP_SARADC=m
+
+# Audio
+CONFIG_SND_SOC_ROCKCHIP_I2S=m
+
+# To boot Linux distributions like Debian
+CONFIG_DEVTMPFS=y
+
+# To bootstrap rootfs with QEMU
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BLK=m
+CONFIG_VIRTIO_NET=m
diff --git a/arch/arm64/crypto/Kbuild.fips140 b/arch/arm64/crypto/Kbuild.fips140
new file mode 100644
index 0000000..9aa0af6
--- /dev/null
+++ b/arch/arm64/crypto/Kbuild.fips140
@@ -0,0 +1,52 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Create a separate FIPS archive that duplicates the modules that are relevant
+# for FIPS 140 certification as builtin objects
+#
+
+sha1-ce-y := sha1-ce-glue.o sha1-ce-core.o
+sha2-ce-y := sha2-ce-glue.o sha2-ce-core.o
+sha512-ce-y := sha512-ce-glue.o sha512-ce-core.o
+ghash-ce-y := ghash-ce-glue.o ghash-ce-core.o
+aes-ce-cipher-y := aes-ce-core.o aes-ce-glue.o
+aes-ce-blk-y := aes-glue-ce.o aes-ce.o
+aes-neon-blk-y := aes-glue-neon.o aes-neon.o
+sha256-arm64-y := sha256-glue.o sha256-core.o
+sha512-arm64-y := sha512-glue.o sha512-core.o
+aes-arm64-y := aes-cipher-core.o aes-cipher-glue.o
+aes-neon-bs-y := aes-neonbs-core.o aes-neonbs-glue.o
+
+crypto-arm64-fips-src	  := $(srctree)/arch/arm64/crypto/
+crypto-arm64-fips-modules := sha1-ce.o sha2-ce.o sha512-ce.o ghash-ce.o \
+			     aes-ce-cipher.o aes-ce-blk.o aes-neon-blk.o \
+			     sha256-arm64.o sha512-arm64.o aes-arm64.o \
+			     aes-neon-bs.o
+
+crypto-fips-objs += $(foreach o,$(crypto-arm64-fips-modules),$($(o:.o=-y):.o=-fips-arch.o))
+
+CFLAGS_aes-glue-ce-fips-arch.o := -DUSE_V8_CRYPTO_EXTENSIONS
+
+$(obj)/aes-glue-%-fips-arch.o: KBUILD_CFLAGS += $(FIPS140_CFLAGS)
+$(obj)/aes-glue-%-fips-arch.o: $(crypto-arm64-fips-src)/aes-glue.c FORCE
+	$(call if_changed_rule,cc_o_c)
+
+$(obj)/%-fips-arch.o: KBUILD_CFLAGS += $(FIPS140_CFLAGS)
+$(obj)/%-fips-arch.o: $(crypto-arm64-fips-src)/%.c FORCE
+	$(call if_changed_rule,cc_o_c)
+
+$(obj)/%-fips-arch.o: $(crypto-arm64-fips-src)/%.S FORCE
+	$(call if_changed_rule,as_o_S)
+
+quiet_cmd_perlasm = PERLASM $@
+      cmd_perlasm = $(PERL) $(<) void $(@)
+
+$(obj)/%-core.S: $(crypto-arm64-fips-src)/%-armv8.pl
+	$(call cmd,perlasm)
+
+$(obj)/sha256-core.S: $(crypto-arm64-fips-src)/sha512-armv8.pl
+	$(call cmd,perlasm)
+
+clean-files += sha256-core.S sha512-core.S
+
+$(obj)/%-fips-arch.o: $(obj)/%.S FORCE
+	$(call if_changed_rule,as_o_S)
diff --git a/arch/arm64/crypto/Kconfig b/arch/arm64/crypto/Kconfig
index 1a5406e..0db557e 100644
--- a/arch/arm64/crypto/Kconfig
+++ b/arch/arm64/crypto/Kconfig
@@ -61,6 +61,11 @@
 	select CRYPTO_LIB_AES
 	select CRYPTO_AEAD
 
+config CRYPTO_POLYVAL_ARM64_CE
+	tristate "POLYVAL using ARMv8 Crypto Extensions (for HCTR2)"
+	depends on KERNEL_MODE_NEON
+	select CRYPTO_POLYVAL
+
 config CRYPTO_CRCT10DIF_ARM64_CE
 	tristate "CRCT10DIF digest algorithm using PMULL instructions"
 	depends on KERNEL_MODE_NEON && CRC_T10DIF
@@ -85,20 +90,16 @@
 	select CRYPTO_LIB_AES
 
 config CRYPTO_AES_ARM64_CE_BLK
-	tristate "AES in ECB/CBC/CTR/XTS modes using ARMv8 Crypto Extensions"
+	tristate "AES in ECB/CBC/CTR/XTS/XCTR modes using ARMv8 Crypto Extensions"
 	depends on KERNEL_MODE_NEON
 	select CRYPTO_SKCIPHER
 	select CRYPTO_AES_ARM64_CE
-	select CRYPTO_AES_ARM64
-	select CRYPTO_SIMD
 
 config CRYPTO_AES_ARM64_NEON_BLK
-	tristate "AES in ECB/CBC/CTR/XTS modes using NEON instructions"
+	tristate "AES in ECB/CBC/CTR/XTS/XCTR modes using NEON instructions"
 	depends on KERNEL_MODE_NEON
 	select CRYPTO_SKCIPHER
-	select CRYPTO_AES_ARM64
 	select CRYPTO_LIB_AES
-	select CRYPTO_SIMD
 
 config CRYPTO_CHACHA20_NEON
 	tristate "ChaCha20, XChaCha20, and XChaCha12 stream ciphers using NEON instructions"
@@ -123,8 +124,6 @@
 	depends on KERNEL_MODE_NEON
 	select CRYPTO_SKCIPHER
 	select CRYPTO_AES_ARM64_NEON_BLK
-	select CRYPTO_AES_ARM64
 	select CRYPTO_LIB_AES
-	select CRYPTO_SIMD
 
 endif
diff --git a/arch/arm64/crypto/Makefile b/arch/arm64/crypto/Makefile
index 09a805c..53f9af9 100644
--- a/arch/arm64/crypto/Makefile
+++ b/arch/arm64/crypto/Makefile
@@ -26,6 +26,9 @@
 obj-$(CONFIG_CRYPTO_GHASH_ARM64_CE) += ghash-ce.o
 ghash-ce-y := ghash-ce-glue.o ghash-ce-core.o
 
+obj-$(CONFIG_CRYPTO_POLYVAL_ARM64_CE) += polyval-ce.o
+polyval-ce-y := polyval-ce-glue.o polyval-ce-core.o
+
 obj-$(CONFIG_CRYPTO_CRCT10DIF_ARM64_CE) += crct10dif-ce.o
 crct10dif-ce-y := crct10dif-ce-core.o crct10dif-ce-glue.o
 
diff --git a/arch/arm64/crypto/aes-glue.c b/arch/arm64/crypto/aes-glue.c
index 17e7359..65f6bf5 100644
--- a/arch/arm64/crypto/aes-glue.c
+++ b/arch/arm64/crypto/aes-glue.c
@@ -24,7 +24,6 @@
 #ifdef USE_V8_CRYPTO_EXTENSIONS
 #define MODE			"ce"
 #define PRIO			300
-#define STRIDE			5
 #define aes_expandkey		ce_aes_expandkey
 #define aes_ecb_encrypt		ce_aes_ecb_encrypt
 #define aes_ecb_decrypt		ce_aes_ecb_decrypt
@@ -35,14 +34,14 @@
 #define aes_essiv_cbc_encrypt	ce_aes_essiv_cbc_encrypt
 #define aes_essiv_cbc_decrypt	ce_aes_essiv_cbc_decrypt
 #define aes_ctr_encrypt		ce_aes_ctr_encrypt
+#define aes_xctr_encrypt	ce_aes_xctr_encrypt
 #define aes_xts_encrypt		ce_aes_xts_encrypt
 #define aes_xts_decrypt		ce_aes_xts_decrypt
 #define aes_mac_update		ce_aes_mac_update
-MODULE_DESCRIPTION("AES-ECB/CBC/CTR/XTS using ARMv8 Crypto Extensions");
+MODULE_DESCRIPTION("AES-ECB/CBC/CTR/XTS/XCTR using ARMv8 Crypto Extensions");
 #else
 #define MODE			"neon"
 #define PRIO			200
-#define STRIDE			4
 #define aes_ecb_encrypt		neon_aes_ecb_encrypt
 #define aes_ecb_decrypt		neon_aes_ecb_decrypt
 #define aes_cbc_encrypt		neon_aes_cbc_encrypt
@@ -52,16 +51,18 @@
 #define aes_essiv_cbc_encrypt	neon_aes_essiv_cbc_encrypt
 #define aes_essiv_cbc_decrypt	neon_aes_essiv_cbc_decrypt
 #define aes_ctr_encrypt		neon_aes_ctr_encrypt
+#define aes_xctr_encrypt	neon_aes_xctr_encrypt
 #define aes_xts_encrypt		neon_aes_xts_encrypt
 #define aes_xts_decrypt		neon_aes_xts_decrypt
 #define aes_mac_update		neon_aes_mac_update
-MODULE_DESCRIPTION("AES-ECB/CBC/CTR/XTS using ARMv8 NEON");
+MODULE_DESCRIPTION("AES-ECB/CBC/CTR/XTS/XCTR using ARMv8 NEON");
 #endif
 #if defined(USE_V8_CRYPTO_EXTENSIONS) || !IS_ENABLED(CONFIG_CRYPTO_AES_ARM64_BS)
 MODULE_ALIAS_CRYPTO("ecb(aes)");
 MODULE_ALIAS_CRYPTO("cbc(aes)");
 MODULE_ALIAS_CRYPTO("ctr(aes)");
 MODULE_ALIAS_CRYPTO("xts(aes)");
+MODULE_ALIAS_CRYPTO("xctr(aes)");
 #endif
 MODULE_ALIAS_CRYPTO("cts(cbc(aes))");
 MODULE_ALIAS_CRYPTO("essiv(cbc(aes),sha256)");
@@ -89,7 +90,10 @@
 				int rounds, int bytes, u8 const iv[]);
 
 asmlinkage void aes_ctr_encrypt(u8 out[], u8 const in[], u32 const rk[],
-				int rounds, int bytes, u8 ctr[], u8 finalbuf[]);
+				int rounds, int bytes, u8 ctr[]);
+
+asmlinkage void aes_xctr_encrypt(u8 out[], u8 const in[], u32 const rk[],
+				 int rounds, int bytes, u8 ctr[], int byte_ctr);
 
 asmlinkage void aes_xts_encrypt(u8 out[], u8 const in[], u32 const rk1[],
 				int rounds, int bytes, u32 const rk2[], u8 iv[],
@@ -444,7 +448,53 @@
 	return err ?: cbc_decrypt_walk(req, &walk);
 }
 
-static int ctr_encrypt(struct skcipher_request *req)
+static int __maybe_unused xctr_encrypt(struct skcipher_request *req)
+{
+	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
+	struct crypto_aes_ctx *ctx = crypto_skcipher_ctx(tfm);
+	int err, rounds = 6 + ctx->key_length / 4;
+	struct skcipher_walk walk;
+	unsigned int byte_ctr = 0;
+
+	err = skcipher_walk_virt(&walk, req, false);
+
+	while (walk.nbytes > 0) {
+		const u8 *src = walk.src.virt.addr;
+		unsigned int nbytes = walk.nbytes;
+		u8 *dst = walk.dst.virt.addr;
+		u8 buf[AES_BLOCK_SIZE];
+
+		/*
+		 * If given less than 16 bytes, we must copy the partial block
+		 * into a temporary buffer of 16 bytes to avoid out of bounds
+		 * reads and writes.  Furthermore, this code is somewhat unusual
+		 * in that it expects the end of the data to be at the end of
+		 * the temporary buffer, rather than the start of the data at
+		 * the start of the temporary buffer.
+		 */
+		if (unlikely(nbytes < AES_BLOCK_SIZE))
+			src = dst = memcpy(buf + sizeof(buf) - nbytes,
+					   src, nbytes);
+		else if (nbytes < walk.total)
+			nbytes &= ~(AES_BLOCK_SIZE - 1);
+
+		kernel_neon_begin();
+		aes_xctr_encrypt(dst, src, ctx->key_enc, rounds, nbytes,
+						 walk.iv, byte_ctr);
+		kernel_neon_end();
+
+		if (unlikely(nbytes < AES_BLOCK_SIZE))
+			memcpy(walk.dst.virt.addr,
+			       buf + sizeof(buf) - nbytes, nbytes);
+		byte_ctr += nbytes;
+
+		err = skcipher_walk_done(&walk, walk.nbytes - nbytes);
+	}
+
+	return err;
+}
+
+static int __maybe_unused ctr_encrypt(struct skcipher_request *req)
 {
 	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
 	struct crypto_aes_ctx *ctx = crypto_skcipher_ctx(tfm);
@@ -458,26 +508,29 @@
 		unsigned int nbytes = walk.nbytes;
 		u8 *dst = walk.dst.virt.addr;
 		u8 buf[AES_BLOCK_SIZE];
-		unsigned int tail;
 
+		/*
+		 * If given less than 16 bytes, we must copy the partial block
+		 * into a temporary buffer of 16 bytes to avoid out of bounds
+		 * reads and writes.  Furthermore, this code is somewhat unusual
+		 * in that it expects the end of the data to be at the end of
+		 * the temporary buffer, rather than the start of the data at
+		 * the start of the temporary buffer.
+		 */
 		if (unlikely(nbytes < AES_BLOCK_SIZE))
-			src = memcpy(buf, src, nbytes);
+			src = dst = memcpy(buf + sizeof(buf) - nbytes,
+					   src, nbytes);
 		else if (nbytes < walk.total)
 			nbytes &= ~(AES_BLOCK_SIZE - 1);
 
 		kernel_neon_begin();
 		aes_ctr_encrypt(dst, src, ctx->key_enc, rounds, nbytes,
-				walk.iv, buf);
+				walk.iv);
 		kernel_neon_end();
 
-		tail = nbytes % (STRIDE * AES_BLOCK_SIZE);
-		if (tail > 0 && tail < AES_BLOCK_SIZE)
-			/*
-			 * The final partial block could not be returned using
-			 * an overlapping store, so it was passed via buf[]
-			 * instead.
-			 */
-			memcpy(dst + nbytes - tail, buf, tail);
+		if (unlikely(nbytes < AES_BLOCK_SIZE))
+			memcpy(walk.dst.virt.addr,
+			       buf + sizeof(buf) - nbytes, nbytes);
 
 		err = skcipher_walk_done(&walk, walk.nbytes - nbytes);
 	}
@@ -485,29 +538,6 @@
 	return err;
 }
 
-static void ctr_encrypt_one(struct crypto_skcipher *tfm, const u8 *src, u8 *dst)
-{
-	const struct crypto_aes_ctx *ctx = crypto_skcipher_ctx(tfm);
-	unsigned long flags;
-
-	/*
-	 * Temporarily disable interrupts to avoid races where
-	 * cachelines are evicted when the CPU is interrupted
-	 * to do something else.
-	 */
-	local_irq_save(flags);
-	aes_encrypt(ctx, dst, src);
-	local_irq_restore(flags);
-}
-
-static int __maybe_unused ctr_encrypt_sync(struct skcipher_request *req)
-{
-	if (!crypto_simd_usable())
-		return crypto_ctr_encrypt_walk(req, ctr_encrypt_one);
-
-	return ctr_encrypt(req);
-}
-
 static int __maybe_unused xts_encrypt(struct skcipher_request *req)
 {
 	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
@@ -656,10 +686,9 @@
 static struct skcipher_alg aes_algs[] = { {
 #if defined(USE_V8_CRYPTO_EXTENSIONS) || !IS_ENABLED(CONFIG_CRYPTO_AES_ARM64_BS)
 	.base = {
-		.cra_name		= "__ecb(aes)",
-		.cra_driver_name	= "__ecb-aes-" MODE,
+		.cra_name		= "ecb(aes)",
+		.cra_driver_name	= "ecb-aes-" MODE,
 		.cra_priority		= PRIO,
-		.cra_flags		= CRYPTO_ALG_INTERNAL,
 		.cra_blocksize		= AES_BLOCK_SIZE,
 		.cra_ctxsize		= sizeof(struct crypto_aes_ctx),
 		.cra_module		= THIS_MODULE,
@@ -671,10 +700,9 @@
 	.decrypt	= ecb_decrypt,
 }, {
 	.base = {
-		.cra_name		= "__cbc(aes)",
-		.cra_driver_name	= "__cbc-aes-" MODE,
+		.cra_name		= "cbc(aes)",
+		.cra_driver_name	= "cbc-aes-" MODE,
 		.cra_priority		= PRIO,
-		.cra_flags		= CRYPTO_ALG_INTERNAL,
 		.cra_blocksize		= AES_BLOCK_SIZE,
 		.cra_ctxsize		= sizeof(struct crypto_aes_ctx),
 		.cra_module		= THIS_MODULE,
@@ -687,10 +715,9 @@
 	.decrypt	= cbc_decrypt,
 }, {
 	.base = {
-		.cra_name		= "__ctr(aes)",
-		.cra_driver_name	= "__ctr-aes-" MODE,
+		.cra_name		= "ctr(aes)",
+		.cra_driver_name	= "ctr-aes-" MODE,
 		.cra_priority		= PRIO,
-		.cra_flags		= CRYPTO_ALG_INTERNAL,
 		.cra_blocksize		= 1,
 		.cra_ctxsize		= sizeof(struct crypto_aes_ctx),
 		.cra_module		= THIS_MODULE,
@@ -704,9 +731,9 @@
 	.decrypt	= ctr_encrypt,
 }, {
 	.base = {
-		.cra_name		= "ctr(aes)",
-		.cra_driver_name	= "ctr-aes-" MODE,
-		.cra_priority		= PRIO - 1,
+		.cra_name		= "xctr(aes)",
+		.cra_driver_name	= "xctr-aes-" MODE,
+		.cra_priority		= PRIO,
 		.cra_blocksize		= 1,
 		.cra_ctxsize		= sizeof(struct crypto_aes_ctx),
 		.cra_module		= THIS_MODULE,
@@ -716,14 +743,13 @@
 	.ivsize		= AES_BLOCK_SIZE,
 	.chunksize	= AES_BLOCK_SIZE,
 	.setkey		= skcipher_aes_setkey,
-	.encrypt	= ctr_encrypt_sync,
-	.decrypt	= ctr_encrypt_sync,
+	.encrypt	= xctr_encrypt,
+	.decrypt	= xctr_encrypt,
 }, {
 	.base = {
-		.cra_name		= "__xts(aes)",
-		.cra_driver_name	= "__xts-aes-" MODE,
+		.cra_name		= "xts(aes)",
+		.cra_driver_name	= "xts-aes-" MODE,
 		.cra_priority		= PRIO,
-		.cra_flags		= CRYPTO_ALG_INTERNAL,
 		.cra_blocksize		= AES_BLOCK_SIZE,
 		.cra_ctxsize		= sizeof(struct crypto_aes_xts_ctx),
 		.cra_module		= THIS_MODULE,
@@ -738,10 +764,9 @@
 }, {
 #endif
 	.base = {
-		.cra_name		= "__cts(cbc(aes))",
-		.cra_driver_name	= "__cts-cbc-aes-" MODE,
+		.cra_name		= "cts(cbc(aes))",
+		.cra_driver_name	= "cts-cbc-aes-" MODE,
 		.cra_priority		= PRIO,
-		.cra_flags		= CRYPTO_ALG_INTERNAL,
 		.cra_blocksize		= AES_BLOCK_SIZE,
 		.cra_ctxsize		= sizeof(struct crypto_aes_ctx),
 		.cra_module		= THIS_MODULE,
@@ -755,10 +780,9 @@
 	.decrypt	= cts_cbc_decrypt,
 }, {
 	.base = {
-		.cra_name		= "__essiv(cbc(aes),sha256)",
-		.cra_driver_name	= "__essiv-cbc-aes-sha256-" MODE,
+		.cra_name		= "essiv(cbc(aes),sha256)",
+		.cra_driver_name	= "essiv-cbc-aes-sha256-" MODE,
 		.cra_priority		= PRIO + 1,
-		.cra_flags		= CRYPTO_ALG_INTERNAL,
 		.cra_blocksize		= AES_BLOCK_SIZE,
 		.cra_ctxsize		= sizeof(struct crypto_aes_essiv_cbc_ctx),
 		.cra_module		= THIS_MODULE,
@@ -997,28 +1021,15 @@
 	.descsize		= sizeof(struct mac_desc_ctx),
 } };
 
-static struct simd_skcipher_alg *aes_simd_algs[ARRAY_SIZE(aes_algs)];
-
 static void aes_exit(void)
 {
-	int i;
-
-	for (i = 0; i < ARRAY_SIZE(aes_simd_algs); i++)
-		if (aes_simd_algs[i])
-			simd_skcipher_free(aes_simd_algs[i]);
-
 	crypto_unregister_shashes(mac_algs, ARRAY_SIZE(mac_algs));
 	crypto_unregister_skciphers(aes_algs, ARRAY_SIZE(aes_algs));
 }
 
 static int __init aes_init(void)
 {
-	struct simd_skcipher_alg *simd;
-	const char *basename;
-	const char *algname;
-	const char *drvname;
 	int err;
-	int i;
 
 	err = crypto_register_skciphers(aes_algs, ARRAY_SIZE(aes_algs));
 	if (err)
@@ -1028,26 +1039,8 @@
 	if (err)
 		goto unregister_ciphers;
 
-	for (i = 0; i < ARRAY_SIZE(aes_algs); i++) {
-		if (!(aes_algs[i].base.cra_flags & CRYPTO_ALG_INTERNAL))
-			continue;
-
-		algname = aes_algs[i].base.cra_name + 2;
-		drvname = aes_algs[i].base.cra_driver_name + 2;
-		basename = aes_algs[i].base.cra_driver_name;
-		simd = simd_skcipher_create_compat(algname, drvname, basename);
-		err = PTR_ERR(simd);
-		if (IS_ERR(simd))
-			goto unregister_simds;
-
-		aes_simd_algs[i] = simd;
-	}
-
 	return 0;
 
-unregister_simds:
-	aes_exit();
-	return err;
 unregister_ciphers:
 	crypto_unregister_skciphers(aes_algs, ARRAY_SIZE(aes_algs));
 	return err;
diff --git a/arch/arm64/crypto/aes-modes.S b/arch/arm64/crypto/aes-modes.S
index b495de2..5abc834 100644
--- a/arch/arm64/crypto/aes-modes.S
+++ b/arch/arm64/crypto/aes-modes.S
@@ -318,127 +318,211 @@
 	.byte		0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
 	.previous
 
-
 	/*
-	 * aes_ctr_encrypt(u8 out[], u8 const in[], u8 const rk[], int rounds,
-	 *		   int bytes, u8 ctr[], u8 finalbuf[])
+	 * This macro generates the code for CTR and XCTR mode.
 	 */
+.macro ctr_encrypt xctr
+	// Arguments
+	OUT		.req x0
+	IN		.req x1
+	KEY		.req x2
+	ROUNDS_W	.req w3
+	BYTES_W		.req w4
+	IV		.req x5
+	BYTE_CTR_W 	.req w6		// XCTR only
+	// Intermediate values
+	CTR_W		.req w11	// XCTR only
+	CTR		.req x11	// XCTR only
+	IV_PART		.req x12
+	BLOCKS		.req x13
+	BLOCKS_W	.req w13
 
-AES_FUNC_START(aes_ctr_encrypt)
 	stp		x29, x30, [sp, #-16]!
 	mov		x29, sp
 
-	enc_prepare	w3, x2, x12
-	ld1		{vctr.16b}, [x5]
+	enc_prepare	ROUNDS_W, KEY, IV_PART
+	ld1		{vctr.16b}, [IV]
 
-	umov		x12, vctr.d[1]		/* keep swabbed ctr in reg */
-	rev		x12, x12
+	/*
+	 * Keep 64 bits of the IV in a register.  For CTR mode this lets us
+	 * easily increment the IV.  For XCTR mode this lets us efficiently XOR
+	 * the 64-bit counter with the IV.
+	 */
+	.if \xctr
+		umov		IV_PART, vctr.d[0]
+		lsr		CTR_W, BYTE_CTR_W, #4
+	.else
+		umov		IV_PART, vctr.d[1]
+		rev		IV_PART, IV_PART
+	.endif
 
-.LctrloopNx:
-	add		w7, w4, #15
-	sub		w4, w4, #MAX_STRIDE << 4
-	lsr		w7, w7, #4
+.LctrloopNx\xctr:
+	add		BLOCKS_W, BYTES_W, #15
+	sub		BYTES_W, BYTES_W, #MAX_STRIDE << 4
+	lsr		BLOCKS_W, BLOCKS_W, #4
 	mov		w8, #MAX_STRIDE
-	cmp		w7, w8
-	csel		w7, w7, w8, lt
-	adds		x12, x12, x7
+	cmp		BLOCKS_W, w8
+	csel		BLOCKS_W, BLOCKS_W, w8, lt
 
+	/*
+	 * Set up the counter values in v0-v{MAX_STRIDE-1}.
+	 *
+	 * If we are encrypting less than MAX_STRIDE blocks, the tail block
+	 * handling code expects the last keystream block to be in
+	 * v{MAX_STRIDE-1}.  For example: if encrypting two blocks with
+	 * MAX_STRIDE=5, then v3 and v4 should have the next two counter blocks.
+	 */
+	.if \xctr
+		add		CTR, CTR, BLOCKS
+	.else
+		adds		IV_PART, IV_PART, BLOCKS
+	.endif
 	mov		v0.16b, vctr.16b
 	mov		v1.16b, vctr.16b
 	mov		v2.16b, vctr.16b
 	mov		v3.16b, vctr.16b
 ST5(	mov		v4.16b, vctr.16b		)
-	bcs		0f
+	.if \xctr
+		sub		x6, CTR, #MAX_STRIDE - 1
+		sub		x7, CTR, #MAX_STRIDE - 2
+		sub		x8, CTR, #MAX_STRIDE - 3
+		sub		x9, CTR, #MAX_STRIDE - 4
+ST5(		sub		x10, CTR, #MAX_STRIDE - 5	)
+		eor		x6, x6, IV_PART
+		eor		x7, x7, IV_PART
+		eor		x8, x8, IV_PART
+		eor		x9, x9, IV_PART
+ST5(		eor		x10, x10, IV_PART		)
+		mov		v0.d[0], x6
+		mov		v1.d[0], x7
+		mov		v2.d[0], x8
+		mov		v3.d[0], x9
+ST5(		mov		v4.d[0], x10			)
+	.else
+		bcs		0f
+		.subsection	1
+		/*
+		 * This subsection handles carries.
+		 *
+		 * Conditional branching here is allowed with respect to time
+		 * invariance since the branches are dependent on the IV instead
+		 * of the plaintext or key.  This code is rarely executed in
+		 * practice anyway.
+		 */
 
-	.subsection	1
-	/* apply carry to outgoing counter */
-0:	umov		x8, vctr.d[0]
-	rev		x8, x8
-	add		x8, x8, #1
-	rev		x8, x8
-	ins		vctr.d[0], x8
+		/* Apply carry to outgoing counter. */
+0:		umov		x8, vctr.d[0]
+		rev		x8, x8
+		add		x8, x8, #1
+		rev		x8, x8
+		ins		vctr.d[0], x8
 
-	/* apply carry to N counter blocks for N := x12 */
-	cbz		x12, 2f
-	adr		x16, 1f
-	sub		x16, x16, x12, lsl #3
-	br		x16
-	hint		34			// bti c
-	mov		v0.d[0], vctr.d[0]
-	hint		34			// bti c
-	mov		v1.d[0], vctr.d[0]
-	hint		34			// bti c
-	mov		v2.d[0], vctr.d[0]
-	hint		34			// bti c
-	mov		v3.d[0], vctr.d[0]
-ST5(	hint		34				)
-ST5(	mov		v4.d[0], vctr.d[0]		)
-1:	b		2f
-	.previous
+		/*
+		 * Apply carry to counter blocks if needed.
+		 *
+		 * Since the carry flag was set, we know 0 <= IV_PART <
+		 * MAX_STRIDE.  Using the value of IV_PART we can determine how
+		 * many counter blocks need to be updated.
+		 */
+		cbz		IV_PART, 2f
+		adr		x16, 1f
+		sub		x16, x16, IV_PART, lsl #3
+		br		x16
+		bti		c
+		mov		v0.d[0], vctr.d[0]
+		bti		c
+		mov		v1.d[0], vctr.d[0]
+		bti		c
+		mov		v2.d[0], vctr.d[0]
+		bti		c
+		mov		v3.d[0], vctr.d[0]
+ST5(		bti		c				)
+ST5(		mov		v4.d[0], vctr.d[0]		)
+1:		b		2f
+		.previous
 
-2:	rev		x7, x12
-	ins		vctr.d[1], x7
-	sub		x7, x12, #MAX_STRIDE - 1
-	sub		x8, x12, #MAX_STRIDE - 2
-	sub		x9, x12, #MAX_STRIDE - 3
-	rev		x7, x7
-	rev		x8, x8
-	mov		v1.d[1], x7
-	rev		x9, x9
-ST5(	sub		x10, x12, #MAX_STRIDE - 4	)
-	mov		v2.d[1], x8
-ST5(	rev		x10, x10			)
-	mov		v3.d[1], x9
-ST5(	mov		v4.d[1], x10			)
-	tbnz		w4, #31, .Lctrtail
-	ld1		{v5.16b-v7.16b}, [x1], #48
+2:		rev		x7, IV_PART
+		ins		vctr.d[1], x7
+		sub		x7, IV_PART, #MAX_STRIDE - 1
+		sub		x8, IV_PART, #MAX_STRIDE - 2
+		sub		x9, IV_PART, #MAX_STRIDE - 3
+		rev		x7, x7
+		rev		x8, x8
+		mov		v1.d[1], x7
+		rev		x9, x9
+ST5(		sub		x10, IV_PART, #MAX_STRIDE - 4	)
+		mov		v2.d[1], x8
+ST5(		rev		x10, x10			)
+		mov		v3.d[1], x9
+ST5(		mov		v4.d[1], x10			)
+	.endif
+
+	/*
+	 * If there are at least MAX_STRIDE blocks left, XOR the data with
+	 * keystream and store.  Otherwise jump to tail handling.
+	 */
+	tbnz		BYTES_W, #31, .Lctrtail\xctr
+	ld1		{v5.16b-v7.16b}, [IN], #48
 ST4(	bl		aes_encrypt_block4x		)
 ST5(	bl		aes_encrypt_block5x		)
 	eor		v0.16b, v5.16b, v0.16b
-ST4(	ld1		{v5.16b}, [x1], #16		)
+ST4(	ld1		{v5.16b}, [IN], #16		)
 	eor		v1.16b, v6.16b, v1.16b
-ST5(	ld1		{v5.16b-v6.16b}, [x1], #32	)
+ST5(	ld1		{v5.16b-v6.16b}, [IN], #32	)
 	eor		v2.16b, v7.16b, v2.16b
 	eor		v3.16b, v5.16b, v3.16b
 ST5(	eor		v4.16b, v6.16b, v4.16b		)
-	st1		{v0.16b-v3.16b}, [x0], #64
-ST5(	st1		{v4.16b}, [x0], #16		)
-	cbz		w4, .Lctrout
-	b		.LctrloopNx
+	st1		{v0.16b-v3.16b}, [OUT], #64
+ST5(	st1		{v4.16b}, [OUT], #16		)
+	cbz		BYTES_W, .Lctrout\xctr
+	b		.LctrloopNx\xctr
 
-.Lctrout:
-	st1		{vctr.16b}, [x5]	/* return next CTR value */
+.Lctrout\xctr:
+	.if !\xctr
+		st1		{vctr.16b}, [IV] /* return next CTR value */
+	.endif
 	ldp		x29, x30, [sp], #16
 	ret
 
-.Lctrtail:
-	/* XOR up to MAX_STRIDE * 16 - 1 bytes of in/output with v0 ... v3/v4 */
+.Lctrtail\xctr:
+	/*
+	 * Handle up to MAX_STRIDE * 16 - 1 bytes of plaintext
+	 *
+	 * This code expects the last keystream block to be in v{MAX_STRIDE-1}.
+	 * For example: if encrypting two blocks with MAX_STRIDE=5, then v3 and
+	 * v4 should have the next two counter blocks.
+	 *
+	 * This allows us to store the ciphertext by writing to overlapping
+	 * regions of memory.  Any invalid ciphertext blocks get overwritten by
+	 * correctly computed blocks.  This approach greatly simplifies the
+	 * logic for storing the ciphertext.
+	 */
 	mov		x16, #16
-	ands		x13, x4, #0xf
-	csel		x13, x13, x16, ne
+	ands		w7, BYTES_W, #0xf
+	csel		x13, x7, x16, ne
 
-ST5(	cmp		w4, #64 - (MAX_STRIDE << 4)	)
+ST5(	cmp		BYTES_W, #64 - (MAX_STRIDE << 4))
 ST5(	csel		x14, x16, xzr, gt		)
-	cmp		w4, #48 - (MAX_STRIDE << 4)
+	cmp		BYTES_W, #48 - (MAX_STRIDE << 4)
 	csel		x15, x16, xzr, gt
-	cmp		w4, #32 - (MAX_STRIDE << 4)
+	cmp		BYTES_W, #32 - (MAX_STRIDE << 4)
 	csel		x16, x16, xzr, gt
-	cmp		w4, #16 - (MAX_STRIDE << 4)
-	ble		.Lctrtail1x
+	cmp		BYTES_W, #16 - (MAX_STRIDE << 4)
 
-	adr_l		x12, .Lcts_permute_table
-	add		x12, x12, x13
+	adr_l		x9, .Lcts_permute_table
+	add		x9, x9, x13
+	ble		.Lctrtail1x\xctr
 
-ST5(	ld1		{v5.16b}, [x1], x14		)
-	ld1		{v6.16b}, [x1], x15
-	ld1		{v7.16b}, [x1], x16
+ST5(	ld1		{v5.16b}, [IN], x14		)
+	ld1		{v6.16b}, [IN], x15
+	ld1		{v7.16b}, [IN], x16
 
 ST4(	bl		aes_encrypt_block4x		)
 ST5(	bl		aes_encrypt_block5x		)
 
-	ld1		{v8.16b}, [x1], x13
-	ld1		{v9.16b}, [x1]
-	ld1		{v10.16b}, [x12]
+	ld1		{v8.16b}, [IN], x13
+	ld1		{v9.16b}, [IN]
+	ld1		{v10.16b}, [x9]
 
 ST4(	eor		v6.16b, v6.16b, v0.16b		)
 ST4(	eor		v7.16b, v7.16b, v1.16b		)
@@ -453,24 +537,91 @@
 ST5(	eor		v8.16b, v8.16b, v3.16b		)
 ST5(	eor		v9.16b, v9.16b, v4.16b		)
 
-ST5(	st1		{v5.16b}, [x0], x14		)
-	st1		{v6.16b}, [x0], x15
-	st1		{v7.16b}, [x0], x16
-	add		x13, x13, x0
+ST5(	st1		{v5.16b}, [OUT], x14		)
+	st1		{v6.16b}, [OUT], x15
+	st1		{v7.16b}, [OUT], x16
+	add		x13, x13, OUT
 	st1		{v9.16b}, [x13]		// overlapping stores
-	st1		{v8.16b}, [x0]
-	b		.Lctrout
+	st1		{v8.16b}, [OUT]
+	b		.Lctrout\xctr
 
-.Lctrtail1x:
-	csel		x0, x0, x6, eq		// use finalbuf if less than a full block
-	ld1		{v5.16b}, [x1]
+.Lctrtail1x\xctr:
+	/*
+	 * Handle <= 16 bytes of plaintext
+	 *
+	 * This code always reads and writes 16 bytes.  To avoid out of bounds
+	 * accesses, XCTR and CTR modes must use a temporary buffer when
+	 * encrypting/decrypting less than 16 bytes.
+	 *
+	 * This code is unusual in that it loads the input and stores the output
+	 * relative to the end of the buffers rather than relative to the start.
+	 * This causes unusual behaviour when encrypting/decrypting less than 16
+	 * bytes; the end of the data is expected to be at the end of the
+	 * temporary buffer rather than the start of the data being at the start
+	 * of the temporary buffer.
+	 */
+	sub		x8, x7, #16
+	csel		x7, x7, x8, eq
+	add		IN, IN, x7
+	add		OUT, OUT, x7
+	ld1		{v5.16b}, [IN]
+	ld1		{v6.16b}, [OUT]
 ST5(	mov		v3.16b, v4.16b			)
-	encrypt_block	v3, w3, x2, x8, w7
+	encrypt_block	v3, ROUNDS_W, KEY, x8, w7
+	ld1		{v10.16b-v11.16b}, [x9]
+	tbl		v3.16b, {v3.16b}, v10.16b
+	sshr		v11.16b, v11.16b, #7
 	eor		v5.16b, v5.16b, v3.16b
-	st1		{v5.16b}, [x0]
-	b		.Lctrout
+	bif		v5.16b, v6.16b, v11.16b
+	st1		{v5.16b}, [OUT]
+	b		.Lctrout\xctr
+
+	// Arguments
+	.unreq OUT
+	.unreq IN
+	.unreq KEY
+	.unreq ROUNDS_W
+	.unreq BYTES_W
+	.unreq IV
+	.unreq BYTE_CTR_W	// XCTR only
+	// Intermediate values
+	.unreq CTR_W		// XCTR only
+	.unreq CTR		// XCTR only
+	.unreq IV_PART
+	.unreq BLOCKS
+	.unreq BLOCKS_W
+.endm
+
+	/*
+	 * aes_ctr_encrypt(u8 out[], u8 const in[], u8 const rk[], int rounds,
+	 *		   int bytes, u8 ctr[])
+	 *
+	 * The input and output buffers must always be at least 16 bytes even if
+	 * encrypting/decrypting less than 16 bytes.  Otherwise out of bounds
+	 * accesses will occur.  The data to be encrypted/decrypted is expected
+	 * to be at the end of this 16-byte temporary buffer rather than the
+	 * start.
+	 */
+
+AES_FUNC_START(aes_ctr_encrypt)
+	ctr_encrypt 0
 AES_FUNC_END(aes_ctr_encrypt)
 
+	/*
+	 * aes_xctr_encrypt(u8 out[], u8 const in[], u8 const rk[], int rounds,
+	 *		   int bytes, u8 const iv[], int byte_ctr)
+	 *
+	 * The input and output buffers must always be at least 16 bytes even if
+	 * encrypting/decrypting less than 16 bytes.  Otherwise out of bounds
+	 * accesses will occur.  The data to be encrypted/decrypted is expected
+	 * to be at the end of this 16-byte temporary buffer rather than the
+	 * start.
+	 */
+
+AES_FUNC_START(aes_xctr_encrypt)
+	ctr_encrypt 1
+AES_FUNC_END(aes_xctr_encrypt)
+
 
 	/*
 	 * aes_xts_encrypt(u8 out[], u8 const in[], u8 const rk1[], int rounds,
diff --git a/arch/arm64/crypto/aes-neonbs-glue.c b/arch/arm64/crypto/aes-neonbs-glue.c
index fb507d5..8df6ad8 100644
--- a/arch/arm64/crypto/aes-neonbs-glue.c
+++ b/arch/arm64/crypto/aes-neonbs-glue.c
@@ -63,11 +63,6 @@
 	u32			enc[AES_MAX_KEYLENGTH_U32];
 };
 
-struct aesbs_ctr_ctx {
-	struct aesbs_ctx	key;		/* must be first member */
-	struct crypto_aes_ctx	fallback;
-};
-
 struct aesbs_xts_ctx {
 	struct aesbs_ctx	key;
 	u32			twkey[AES_MAX_KEYLENGTH_U32];
@@ -207,25 +202,6 @@
 	return err;
 }
 
-static int aesbs_ctr_setkey_sync(struct crypto_skcipher *tfm, const u8 *in_key,
-				 unsigned int key_len)
-{
-	struct aesbs_ctr_ctx *ctx = crypto_skcipher_ctx(tfm);
-	int err;
-
-	err = aes_expandkey(&ctx->fallback, in_key, key_len);
-	if (err)
-		return err;
-
-	ctx->key.rounds = 6 + key_len / 4;
-
-	kernel_neon_begin();
-	aesbs_convert_key(ctx->key.rk, ctx->fallback.key_enc, ctx->key.rounds);
-	kernel_neon_end();
-
-	return 0;
-}
-
 static int ctr_encrypt(struct skcipher_request *req)
 {
 	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
@@ -292,29 +268,6 @@
 	return aesbs_setkey(tfm, in_key, key_len);
 }
 
-static void ctr_encrypt_one(struct crypto_skcipher *tfm, const u8 *src, u8 *dst)
-{
-	struct aesbs_ctr_ctx *ctx = crypto_skcipher_ctx(tfm);
-	unsigned long flags;
-
-	/*
-	 * Temporarily disable interrupts to avoid races where
-	 * cachelines are evicted when the CPU is interrupted
-	 * to do something else.
-	 */
-	local_irq_save(flags);
-	aes_encrypt(&ctx->fallback, dst, src);
-	local_irq_restore(flags);
-}
-
-static int ctr_encrypt_sync(struct skcipher_request *req)
-{
-	if (!crypto_simd_usable())
-		return crypto_ctr_encrypt_walk(req, ctr_encrypt_one);
-
-	return ctr_encrypt(req);
-}
-
 static int __xts_crypt(struct skcipher_request *req, bool encrypt,
 		       void (*fn)(u8 out[], u8 const in[], u8 const rk[],
 				  int rounds, int blocks, u8 iv[]))
@@ -431,13 +384,12 @@
 }
 
 static struct skcipher_alg aes_algs[] = { {
-	.base.cra_name		= "__ecb(aes)",
-	.base.cra_driver_name	= "__ecb-aes-neonbs",
+	.base.cra_name		= "ecb(aes)",
+	.base.cra_driver_name	= "ecb-aes-neonbs",
 	.base.cra_priority	= 250,
 	.base.cra_blocksize	= AES_BLOCK_SIZE,
 	.base.cra_ctxsize	= sizeof(struct aesbs_ctx),
 	.base.cra_module	= THIS_MODULE,
-	.base.cra_flags		= CRYPTO_ALG_INTERNAL,
 
 	.min_keysize		= AES_MIN_KEY_SIZE,
 	.max_keysize		= AES_MAX_KEY_SIZE,
@@ -446,13 +398,12 @@
 	.encrypt		= ecb_encrypt,
 	.decrypt		= ecb_decrypt,
 }, {
-	.base.cra_name		= "__cbc(aes)",
-	.base.cra_driver_name	= "__cbc-aes-neonbs",
+	.base.cra_name		= "cbc(aes)",
+	.base.cra_driver_name	= "cbc-aes-neonbs",
 	.base.cra_priority	= 250,
 	.base.cra_blocksize	= AES_BLOCK_SIZE,
 	.base.cra_ctxsize	= sizeof(struct aesbs_cbc_ctx),
 	.base.cra_module	= THIS_MODULE,
-	.base.cra_flags		= CRYPTO_ALG_INTERNAL,
 
 	.min_keysize		= AES_MIN_KEY_SIZE,
 	.max_keysize		= AES_MAX_KEY_SIZE,
@@ -462,13 +413,12 @@
 	.encrypt		= cbc_encrypt,
 	.decrypt		= cbc_decrypt,
 }, {
-	.base.cra_name		= "__ctr(aes)",
-	.base.cra_driver_name	= "__ctr-aes-neonbs",
+	.base.cra_name		= "ctr(aes)",
+	.base.cra_driver_name	= "ctr-aes-neonbs",
 	.base.cra_priority	= 250,
 	.base.cra_blocksize	= 1,
 	.base.cra_ctxsize	= sizeof(struct aesbs_ctx),
 	.base.cra_module	= THIS_MODULE,
-	.base.cra_flags		= CRYPTO_ALG_INTERNAL,
 
 	.min_keysize		= AES_MIN_KEY_SIZE,
 	.max_keysize		= AES_MAX_KEY_SIZE,
@@ -479,29 +429,12 @@
 	.encrypt		= ctr_encrypt,
 	.decrypt		= ctr_encrypt,
 }, {
-	.base.cra_name		= "ctr(aes)",
-	.base.cra_driver_name	= "ctr-aes-neonbs",
-	.base.cra_priority	= 250 - 1,
-	.base.cra_blocksize	= 1,
-	.base.cra_ctxsize	= sizeof(struct aesbs_ctr_ctx),
-	.base.cra_module	= THIS_MODULE,
-
-	.min_keysize		= AES_MIN_KEY_SIZE,
-	.max_keysize		= AES_MAX_KEY_SIZE,
-	.chunksize		= AES_BLOCK_SIZE,
-	.walksize		= 8 * AES_BLOCK_SIZE,
-	.ivsize			= AES_BLOCK_SIZE,
-	.setkey			= aesbs_ctr_setkey_sync,
-	.encrypt		= ctr_encrypt_sync,
-	.decrypt		= ctr_encrypt_sync,
-}, {
-	.base.cra_name		= "__xts(aes)",
-	.base.cra_driver_name	= "__xts-aes-neonbs",
+	.base.cra_name		= "xts(aes)",
+	.base.cra_driver_name	= "xts-aes-neonbs",
 	.base.cra_priority	= 250,
 	.base.cra_blocksize	= AES_BLOCK_SIZE,
 	.base.cra_ctxsize	= sizeof(struct aesbs_xts_ctx),
 	.base.cra_module	= THIS_MODULE,
-	.base.cra_flags		= CRYPTO_ALG_INTERNAL,
 
 	.min_keysize		= 2 * AES_MIN_KEY_SIZE,
 	.max_keysize		= 2 * AES_MAX_KEY_SIZE,
@@ -512,54 +445,17 @@
 	.decrypt		= xts_decrypt,
 } };
 
-static struct simd_skcipher_alg *aes_simd_algs[ARRAY_SIZE(aes_algs)];
-
 static void aes_exit(void)
 {
-	int i;
-
-	for (i = 0; i < ARRAY_SIZE(aes_simd_algs); i++)
-		if (aes_simd_algs[i])
-			simd_skcipher_free(aes_simd_algs[i]);
-
 	crypto_unregister_skciphers(aes_algs, ARRAY_SIZE(aes_algs));
 }
 
 static int __init aes_init(void)
 {
-	struct simd_skcipher_alg *simd;
-	const char *basename;
-	const char *algname;
-	const char *drvname;
-	int err;
-	int i;
-
 	if (!cpu_have_named_feature(ASIMD))
 		return -ENODEV;
 
-	err = crypto_register_skciphers(aes_algs, ARRAY_SIZE(aes_algs));
-	if (err)
-		return err;
-
-	for (i = 0; i < ARRAY_SIZE(aes_algs); i++) {
-		if (!(aes_algs[i].base.cra_flags & CRYPTO_ALG_INTERNAL))
-			continue;
-
-		algname = aes_algs[i].base.cra_name + 2;
-		drvname = aes_algs[i].base.cra_driver_name + 2;
-		basename = aes_algs[i].base.cra_driver_name;
-		simd = simd_skcipher_create_compat(algname, drvname, basename);
-		err = PTR_ERR(simd);
-		if (IS_ERR(simd))
-			goto unregister_simds;
-
-		aes_simd_algs[i] = simd;
-	}
-	return 0;
-
-unregister_simds:
-	aes_exit();
-	return err;
+	return crypto_register_skciphers(aes_algs, ARRAY_SIZE(aes_algs));
 }
 
 module_init(aes_init);
diff --git a/arch/arm64/crypto/polyval-ce-core.S b/arch/arm64/crypto/polyval-ce-core.S
new file mode 100644
index 0000000..b532654
--- /dev/null
+++ b/arch/arm64/crypto/polyval-ce-core.S
@@ -0,0 +1,361 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Implementation of POLYVAL using ARMv8 Crypto Extensions.
+ *
+ * Copyright 2021 Google LLC
+ */
+/*
+ * This is an efficient implementation of POLYVAL using ARMv8 Crypto Extensions
+ * It works on 8 blocks at a time, by precomputing the first 8 keys powers h^8,
+ * ..., h^1 in the POLYVAL finite field. This precomputation allows us to split
+ * finite field multiplication into two steps.
+ *
+ * In the first step, we consider h^i, m_i as normal polynomials of degree less
+ * than 128. We then compute p(x) = h^8m_0 + ... + h^1m_7 where multiplication
+ * is simply polynomial multiplication.
+ *
+ * In the second step, we compute the reduction of p(x) modulo the finite field
+ * modulus g(x) = x^128 + x^127 + x^126 + x^121 + 1.
+ *
+ * This two step process is equivalent to computing h^8m_0 + ... + h^1m_7 where
+ * multiplication is finite field multiplication. The advantage is that the
+ * two-step process  only requires 1 finite field reduction for every 8
+ * polynomial multiplications. Further parallelism is gained by interleaving the
+ * multiplications and polynomial reductions.
+ */
+
+#include <linux/linkage.h>
+#define STRIDE_BLOCKS 8
+
+KEY_POWERS	.req	x0
+MSG		.req	x1
+BLOCKS_LEFT	.req	x2
+ACCUMULATOR	.req	x3
+KEY_START	.req	x10
+EXTRA_BYTES	.req	x11
+TMP	.req	x13
+
+M0	.req	v0
+M1	.req	v1
+M2	.req	v2
+M3	.req	v3
+M4	.req	v4
+M5	.req	v5
+M6	.req	v6
+M7	.req	v7
+KEY8	.req	v8
+KEY7	.req	v9
+KEY6	.req	v10
+KEY5	.req	v11
+KEY4	.req	v12
+KEY3	.req	v13
+KEY2	.req	v14
+KEY1	.req	v15
+PL	.req	v16
+PH	.req	v17
+TMP_V	.req	v18
+LO	.req	v20
+MI	.req	v21
+HI	.req	v22
+SUM	.req	v23
+GSTAR	.req	v24
+
+	.text
+
+	.arch	armv8-a+crypto
+	.align	4
+
+.Lgstar:
+	.quad	0xc200000000000000, 0xc200000000000000
+
+/*
+ * Computes the product of two 128-bit polynomials in X and Y and XORs the
+ * components of the 256-bit product into LO, MI, HI.
+ *
+ * Given:
+ *  X = [X_1 : X_0]
+ *  Y = [Y_1 : Y_0]
+ *
+ * We compute:
+ *  LO += X_0 * Y_0
+ *  MI += (X_0 + X_1) * (Y_0 + Y_1)
+ *  HI += X_1 * Y_1
+ *
+ * Later, the 256-bit result can be extracted as:
+ *   [HI_1 : HI_0 + HI_1 + MI_1 + LO_1 : LO_1 + HI_0 + MI_0 + LO_0 : LO_0]
+ * This step is done when computing the polynomial reduction for efficiency
+ * reasons.
+ *
+ * Karatsuba multiplication is used instead of Schoolbook multiplication because
+ * it was found to be slightly faster on ARM64 CPUs.
+ *
+ */
+.macro karatsuba1 X Y
+	X .req \X
+	Y .req \Y
+	ext	v25.16b, X.16b, X.16b, #8
+	ext	v26.16b, Y.16b, Y.16b, #8
+	eor	v25.16b, v25.16b, X.16b
+	eor	v26.16b, v26.16b, Y.16b
+	pmull2	v28.1q, X.2d, Y.2d
+	pmull	v29.1q, X.1d, Y.1d
+	pmull	v27.1q, v25.1d, v26.1d
+	eor	HI.16b, HI.16b, v28.16b
+	eor	LO.16b, LO.16b, v29.16b
+	eor	MI.16b, MI.16b, v27.16b
+	.unreq X
+	.unreq Y
+.endm
+
+/*
+ * Same as karatsuba1, except overwrites HI, LO, MI rather than XORing into
+ * them.
+ */
+.macro karatsuba1_store X Y
+	X .req \X
+	Y .req \Y
+	ext	v25.16b, X.16b, X.16b, #8
+	ext	v26.16b, Y.16b, Y.16b, #8
+	eor	v25.16b, v25.16b, X.16b
+	eor	v26.16b, v26.16b, Y.16b
+	pmull2	HI.1q, X.2d, Y.2d
+	pmull	LO.1q, X.1d, Y.1d
+	pmull	MI.1q, v25.1d, v26.1d
+	.unreq X
+	.unreq Y
+.endm
+
+/*
+ * Computes the 256-bit polynomial represented by LO, HI, MI. Stores
+ * the result in PL, PH.
+ * [PH : PL] =
+ *   [HI_1 : HI_1 + HI_0 + MI_1 + LO_1 : HI_0 + MI_0 + LO_1 + LO_0 : LO_0]
+ */
+.macro karatsuba2
+	// v4 = [HI_1 + MI_1 : HI_0 + MI_0]
+	eor	v4.16b, HI.16b, MI.16b
+	// v4 = [HI_1 + MI_1 + LO_1 : HI_0 + MI_0 + LO_0]
+	eor	v4.16b, v4.16b, LO.16b
+	// v5 = [HI_0 : LO_1]
+	ext	v5.16b, LO.16b, HI.16b, #8
+	// v4 = [HI_1 + HI_0 + MI_1 + LO_1 : HI_0 + MI_0 + LO_1 + LO_0]
+	eor	v4.16b, v4.16b, v5.16b
+	// HI = [HI_0 : HI_1]
+	ext	HI.16b, HI.16b, HI.16b, #8
+	// LO = [LO_0 : LO_1]
+	ext	LO.16b, LO.16b, LO.16b, #8
+	// PH = [HI_1 : HI_1 + HI_0 + MI_1 + LO_1]
+	ext	PH.16b, v4.16b, HI.16b, #8
+	// PL = [HI_0 + MI_0 + LO_1 + LO_0 : LO_0]
+	ext	PL.16b, LO.16b, v4.16b, #8
+.endm
+
+/*
+ * Computes the 128-bit reduction of PH : PL. Stores the result in dest.
+ *
+ * This macro computes p(x) mod g(x) where p(x) is in montgomery form and g(x) =
+ * x^128 + x^127 + x^126 + x^121 + 1.
+ *
+ * We have a 256-bit polynomial PH : PL = P_3 : P_2 : P_1 : P_0 that is the
+ * product of two 128-bit polynomials in Montgomery form.  We need to reduce it
+ * mod g(x).  Also, since polynomials in Montgomery form have an "extra" factor
+ * of x^128, this product has two extra factors of x^128.  To get it back into
+ * Montgomery form, we need to remove one of these factors by dividing by x^128.
+ *
+ * To accomplish both of these goals, we add multiples of g(x) that cancel out
+ * the low 128 bits P_1 : P_0, leaving just the high 128 bits. Since the low
+ * bits are zero, the polynomial division by x^128 can be done by right
+ * shifting.
+ *
+ * Since the only nonzero term in the low 64 bits of g(x) is the constant term,
+ * the multiple of g(x) needed to cancel out P_0 is P_0 * g(x).  The CPU can
+ * only do 64x64 bit multiplications, so split P_0 * g(x) into x^128 * P_0 +
+ * x^64 * g*(x) * P_0 + P_0, where g*(x) is bits 64-127 of g(x).  Adding this to
+ * the original polynomial gives P_3 : P_2 + P_0 + T_1 : P_1 + T_0 : 0, where T
+ * = T_1 : T_0 = g*(x) * P_0.  Thus, bits 0-63 got "folded" into bits 64-191.
+ *
+ * Repeating this same process on the next 64 bits "folds" bits 64-127 into bits
+ * 128-255, giving the answer in bits 128-255. This time, we need to cancel P_1
+ * + T_0 in bits 64-127. The multiple of g(x) required is (P_1 + T_0) * g(x) *
+ * x^64. Adding this to our previous computation gives P_3 + P_1 + T_0 + V_1 :
+ * P_2 + P_0 + T_1 + V_0 : 0 : 0, where V = V_1 : V_0 = g*(x) * (P_1 + T_0).
+ *
+ * So our final computation is:
+ *   T = T_1 : T_0 = g*(x) * P_0
+ *   V = V_1 : V_0 = g*(x) * (P_1 + T_0)
+ *   p(x) / x^{128} mod g(x) = P_3 + P_1 + T_0 + V_1 : P_2 + P_0 + T_1 + V_0
+ *
+ * The implementation below saves a XOR instruction by computing P_1 + T_0 : P_0
+ * + T_1 and XORing into dest, rather than separately XORing P_1 : P_0 and T_0 :
+ * T_1 into dest.  This allows us to reuse P_1 + T_0 when computing V.
+ */
+.macro montgomery_reduction dest
+	DEST .req \dest
+	// TMP_V = T_1 : T_0 = P_0 * g*(x)
+	pmull	TMP_V.1q, PL.1d, GSTAR.1d
+	// TMP_V = T_0 : T_1
+	ext	TMP_V.16b, TMP_V.16b, TMP_V.16b, #8
+	// TMP_V = P_1 + T_0 : P_0 + T_1
+	eor	TMP_V.16b, PL.16b, TMP_V.16b
+	// PH = P_3 + P_1 + T_0 : P_2 + P_0 + T_1
+	eor	PH.16b, PH.16b, TMP_V.16b
+	// TMP_V = V_1 : V_0 = (P_1 + T_0) * g*(x)
+	pmull2	TMP_V.1q, TMP_V.2d, GSTAR.2d
+	eor	DEST.16b, PH.16b, TMP_V.16b
+	.unreq DEST
+.endm
+
+/*
+ * Compute Polyval on 8 blocks.
+ *
+ * If reduce is set, also computes the montgomery reduction of the
+ * previous full_stride call and XORs with the first message block.
+ * (m_0 + REDUCE(PL, PH))h^8 + ... + m_7h^1.
+ * I.e., the first multiplication uses m_0 + REDUCE(PL, PH) instead of m_0.
+ *
+ * Sets PL, PH.
+ */
+.macro full_stride reduce
+	eor		LO.16b, LO.16b, LO.16b
+	eor		MI.16b, MI.16b, MI.16b
+	eor		HI.16b, HI.16b, HI.16b
+
+	ld1		{M0.16b, M1.16b, M2.16b, M3.16b}, [MSG], #64
+	ld1		{M4.16b, M5.16b, M6.16b, M7.16b}, [MSG], #64
+
+	karatsuba1 M7 KEY1
+	.if \reduce
+	pmull	TMP_V.1q, PL.1d, GSTAR.1d
+	.endif
+
+	karatsuba1 M6 KEY2
+	.if \reduce
+	ext	TMP_V.16b, TMP_V.16b, TMP_V.16b, #8
+	.endif
+
+	karatsuba1 M5 KEY3
+	.if \reduce
+	eor	TMP_V.16b, PL.16b, TMP_V.16b
+	.endif
+
+	karatsuba1 M4 KEY4
+	.if \reduce
+	eor	PH.16b, PH.16b, TMP_V.16b
+	.endif
+
+	karatsuba1 M3 KEY5
+	.if \reduce
+	pmull2	TMP_V.1q, TMP_V.2d, GSTAR.2d
+	.endif
+
+	karatsuba1 M2 KEY6
+	.if \reduce
+	eor	SUM.16b, PH.16b, TMP_V.16b
+	.endif
+
+	karatsuba1 M1 KEY7
+	eor	M0.16b, M0.16b, SUM.16b
+
+	karatsuba1 M0 KEY8
+	karatsuba2
+.endm
+
+/*
+ * Handle any extra blocks after full_stride loop.
+ */
+.macro partial_stride
+	add	KEY_POWERS, KEY_START, #(STRIDE_BLOCKS << 4)
+	sub	KEY_POWERS, KEY_POWERS, BLOCKS_LEFT, lsl #4
+	ld1	{KEY1.16b}, [KEY_POWERS], #16
+
+	ld1	{TMP_V.16b}, [MSG], #16
+	eor	SUM.16b, SUM.16b, TMP_V.16b
+	karatsuba1_store KEY1 SUM
+	sub	BLOCKS_LEFT, BLOCKS_LEFT, #1
+
+	tst	BLOCKS_LEFT, #4
+	beq	.Lpartial4BlocksDone
+	ld1	{M0.16b, M1.16b,  M2.16b, M3.16b}, [MSG], #64
+	ld1	{KEY8.16b, KEY7.16b, KEY6.16b,	KEY5.16b}, [KEY_POWERS], #64
+	karatsuba1 M0 KEY8
+	karatsuba1 M1 KEY7
+	karatsuba1 M2 KEY6
+	karatsuba1 M3 KEY5
+.Lpartial4BlocksDone:
+	tst	BLOCKS_LEFT, #2
+	beq	.Lpartial2BlocksDone
+	ld1	{M0.16b, M1.16b}, [MSG], #32
+	ld1	{KEY8.16b, KEY7.16b}, [KEY_POWERS], #32
+	karatsuba1 M0 KEY8
+	karatsuba1 M1 KEY7
+.Lpartial2BlocksDone:
+	tst	BLOCKS_LEFT, #1
+	beq	.LpartialDone
+	ld1	{M0.16b}, [MSG], #16
+	ld1	{KEY8.16b}, [KEY_POWERS], #16
+	karatsuba1 M0 KEY8
+.LpartialDone:
+	karatsuba2
+	montgomery_reduction SUM
+.endm
+
+/*
+ * Perform montgomery multiplication in GF(2^128) and store result in op1.
+ *
+ * Computes op1*op2*x^{-128} mod x^128 + x^127 + x^126 + x^121 + 1
+ * If op1, op2 are in montgomery form, this computes the montgomery
+ * form of op1*op2.
+ *
+ * void pmull_polyval_mul(u8 *op1, const u8 *op2);
+ */
+SYM_FUNC_START(pmull_polyval_mul)
+	adr	TMP, .Lgstar
+	ld1	{GSTAR.2d}, [TMP]
+	ld1	{v0.16b}, [x0]
+	ld1	{v1.16b}, [x1]
+	karatsuba1_store v0 v1
+	karatsuba2
+	montgomery_reduction SUM
+	st1	{SUM.16b}, [x0]
+	ret
+SYM_FUNC_END(pmull_polyval_mul)
+
+/*
+ * Perform polynomial evaluation as specified by POLYVAL.  This computes:
+ *	h^n * accumulator + h^n * m_0 + ... + h^1 * m_{n-1}
+ * where n=nblocks, h is the hash key, and m_i are the message blocks.
+ *
+ * x0 - pointer to precomputed key powers h^8 ... h^1
+ * x1 - pointer to message blocks
+ * x2 - number of blocks to hash
+ * x3 - pointer to accumulator
+ *
+ * void pmull_polyval_update(const struct polyval_ctx *ctx, const u8 *in,
+ *			     size_t nblocks, u8 *accumulator);
+ */
+SYM_FUNC_START(pmull_polyval_update)
+	adr	TMP, .Lgstar
+	mov	KEY_START, KEY_POWERS
+	ld1	{GSTAR.2d}, [TMP]
+	ld1	{SUM.16b}, [ACCUMULATOR]
+	subs	BLOCKS_LEFT, BLOCKS_LEFT, #STRIDE_BLOCKS
+	blt .LstrideLoopExit
+	ld1	{KEY8.16b, KEY7.16b, KEY6.16b, KEY5.16b}, [KEY_POWERS], #64
+	ld1	{KEY4.16b, KEY3.16b, KEY2.16b, KEY1.16b}, [KEY_POWERS], #64
+	full_stride 0
+	subs	BLOCKS_LEFT, BLOCKS_LEFT, #STRIDE_BLOCKS
+	blt .LstrideLoopExitReduce
+.LstrideLoop:
+	full_stride 1
+	subs	BLOCKS_LEFT, BLOCKS_LEFT, #STRIDE_BLOCKS
+	bge	.LstrideLoop
+.LstrideLoopExitReduce:
+	montgomery_reduction SUM
+.LstrideLoopExit:
+	adds	BLOCKS_LEFT, BLOCKS_LEFT, #STRIDE_BLOCKS
+	beq	.LskipPartial
+	partial_stride
+.LskipPartial:
+	st1	{SUM.16b}, [ACCUMULATOR]
+	ret
+SYM_FUNC_END(pmull_polyval_update)
diff --git a/arch/arm64/crypto/polyval-ce-glue.c b/arch/arm64/crypto/polyval-ce-glue.c
new file mode 100644
index 0000000..0a3b571
--- /dev/null
+++ b/arch/arm64/crypto/polyval-ce-glue.c
@@ -0,0 +1,191 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Glue code for POLYVAL using ARMv8 Crypto Extensions
+ *
+ * Copyright (c) 2007 Nokia Siemens Networks - Mikko Herranen <mh1@iki.fi>
+ * Copyright (c) 2009 Intel Corp.
+ *   Author: Huang Ying <ying.huang@intel.com>
+ * Copyright 2021 Google LLC
+ */
+
+/*
+ * Glue code based on ghash-clmulni-intel_glue.c.
+ *
+ * This implementation of POLYVAL uses montgomery multiplication accelerated by
+ * ARMv8 Crypto Extensions instructions to implement the finite field operations.
+ */
+
+#include <crypto/algapi.h>
+#include <crypto/internal/hash.h>
+#include <crypto/internal/simd.h>
+#include <crypto/polyval.h>
+#include <linux/crypto.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/cpufeature.h>
+#include <asm/neon.h>
+#include <asm/simd.h>
+
+#define NUM_KEY_POWERS	8
+
+struct polyval_tfm_ctx {
+	/*
+	 * These powers must be in the order h^8, ..., h^1.
+	 */
+	u8 key_powers[NUM_KEY_POWERS][POLYVAL_BLOCK_SIZE];
+};
+
+struct polyval_desc_ctx {
+	u8 buffer[POLYVAL_BLOCK_SIZE];
+	u32 bytes;
+};
+
+asmlinkage void pmull_polyval_update(const struct polyval_tfm_ctx *keys,
+	const u8 *in, size_t nblocks, u8 *accumulator);
+asmlinkage void pmull_polyval_mul(u8 *op1, const u8 *op2);
+
+static void internal_polyval_update(const struct polyval_tfm_ctx *keys,
+	const u8 *in, size_t nblocks, u8 *accumulator)
+{
+	if (likely(crypto_simd_usable())) {
+		kernel_neon_begin();
+		pmull_polyval_update(keys, in, nblocks, accumulator);
+		kernel_neon_end();
+	} else {
+		polyval_update_non4k(keys->key_powers[NUM_KEY_POWERS-1], in,
+			nblocks, accumulator);
+	}
+}
+
+static void internal_polyval_mul(u8 *op1, const u8 *op2)
+{
+	if (likely(crypto_simd_usable())) {
+		kernel_neon_begin();
+		pmull_polyval_mul(op1, op2);
+		kernel_neon_end();
+	} else {
+		polyval_mul_non4k(op1, op2);
+	}
+}
+
+static int polyval_arm64_setkey(struct crypto_shash *tfm,
+			const u8 *key, unsigned int keylen)
+{
+	struct polyval_tfm_ctx *tctx = crypto_shash_ctx(tfm);
+	int i;
+
+	if (keylen != POLYVAL_BLOCK_SIZE)
+		return -EINVAL;
+
+	memcpy(tctx->key_powers[NUM_KEY_POWERS-1], key, POLYVAL_BLOCK_SIZE);
+
+	for (i = NUM_KEY_POWERS-2; i >= 0; i--) {
+		memcpy(tctx->key_powers[i], key, POLYVAL_BLOCK_SIZE);
+		internal_polyval_mul(tctx->key_powers[i],
+				     tctx->key_powers[i+1]);
+	}
+
+	return 0;
+}
+
+static int polyval_arm64_init(struct shash_desc *desc)
+{
+	struct polyval_desc_ctx *dctx = shash_desc_ctx(desc);
+
+	memset(dctx, 0, sizeof(*dctx));
+
+	return 0;
+}
+
+static int polyval_arm64_update(struct shash_desc *desc,
+			 const u8 *src, unsigned int srclen)
+{
+	struct polyval_desc_ctx *dctx = shash_desc_ctx(desc);
+	const struct polyval_tfm_ctx *tctx = crypto_shash_ctx(desc->tfm);
+	u8 *pos;
+	unsigned int nblocks;
+	unsigned int n;
+
+	if (dctx->bytes) {
+		n = min(srclen, dctx->bytes);
+		pos = dctx->buffer + POLYVAL_BLOCK_SIZE - dctx->bytes;
+
+		dctx->bytes -= n;
+		srclen -= n;
+
+		while (n--)
+			*pos++ ^= *src++;
+
+		if (!dctx->bytes)
+			internal_polyval_mul(dctx->buffer,
+					    tctx->key_powers[NUM_KEY_POWERS-1]);
+	}
+
+	while (srclen >= POLYVAL_BLOCK_SIZE) {
+		/* allow rescheduling every 4K bytes */
+		nblocks = min(srclen, 4096U) / POLYVAL_BLOCK_SIZE;
+		internal_polyval_update(tctx, src, nblocks, dctx->buffer);
+		srclen -= nblocks * POLYVAL_BLOCK_SIZE;
+		src += nblocks * POLYVAL_BLOCK_SIZE;
+	}
+
+	if (srclen) {
+		dctx->bytes = POLYVAL_BLOCK_SIZE - srclen;
+		pos = dctx->buffer;
+		while (srclen--)
+			*pos++ ^= *src++;
+	}
+
+	return 0;
+}
+
+static int polyval_arm64_final(struct shash_desc *desc, u8 *dst)
+{
+	struct polyval_desc_ctx *dctx = shash_desc_ctx(desc);
+	const struct polyval_tfm_ctx *tctx = crypto_shash_ctx(desc->tfm);
+
+	if (dctx->bytes) {
+		internal_polyval_mul(dctx->buffer,
+				     tctx->key_powers[NUM_KEY_POWERS-1]);
+	}
+
+	memcpy(dst, dctx->buffer, POLYVAL_BLOCK_SIZE);
+
+	return 0;
+}
+
+static struct shash_alg polyval_alg = {
+	.digestsize	= POLYVAL_DIGEST_SIZE,
+	.init		= polyval_arm64_init,
+	.update		= polyval_arm64_update,
+	.final		= polyval_arm64_final,
+	.setkey		= polyval_arm64_setkey,
+	.descsize	= sizeof(struct polyval_desc_ctx),
+	.base		= {
+		.cra_name		= "polyval",
+		.cra_driver_name	= "polyval-ce",
+		.cra_priority		= 200,
+		.cra_blocksize		= POLYVAL_BLOCK_SIZE,
+		.cra_ctxsize		= sizeof(struct polyval_tfm_ctx),
+		.cra_module		= THIS_MODULE,
+	},
+};
+
+static int __init polyval_ce_mod_init(void)
+{
+	return crypto_register_shash(&polyval_alg);
+}
+
+static void __exit polyval_ce_mod_exit(void)
+{
+	crypto_unregister_shash(&polyval_alg);
+}
+
+module_cpu_feature_match(PMULL, polyval_ce_mod_init)
+module_exit(polyval_ce_mod_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("POLYVAL hash function accelerated by ARMv8 Crypto Extensions");
+MODULE_ALIAS_CRYPTO("polyval");
+MODULE_ALIAS_CRYPTO("polyval-ce");
diff --git a/arch/arm64/include/asm/alternative-macros.h b/arch/arm64/include/asm/alternative-macros.h
index 7e157ab..610fcdc 100644
--- a/arch/arm64/include/asm/alternative-macros.h
+++ b/arch/arm64/include/asm/alternative-macros.h
@@ -7,6 +7,7 @@
 
 #define ARM64_CB_PATCH ARM64_NCAPS
 
+#ifndef BUILD_FIPS140_KO
 #ifndef __ASSEMBLY__
 
 #include <linux/stringify.h>
@@ -207,4 +208,33 @@
 #define ALTERNATIVE(oldinstr, newinstr, ...)   \
 	_ALTERNATIVE_CFG(oldinstr, newinstr, __VA_ARGS__, 1)
 
+#else
+
+/*
+ * The FIPS140 module does not support alternatives patching, as this
+ * invalidates the HMAC digest of the .text section. However, some alternatives
+ * are known to be irrelevant so we can tolerate them in the FIPS140 module, as
+ * they will never be applied in the first place in the use cases that the
+ * FIPS140 module targets (Android running on a production phone). Any other
+ * uses of alternatives should be avoided, as it is not safe in the general
+ * case to simply use the default sequence in one place (the fips module) and
+ * the alternative sequence everywhere else.
+ *
+ * Below is an allowlist of features that we can ignore, by simply taking the
+ * safe default instruction sequence. Note that this implies that the FIPS140
+ * module is not compatible with VHE, or with pseudo-NMI support.
+ */
+
+#define __ALT_ARM64_HAS_LDAPR			0,
+#define __ALT_ARM64_HAS_VIRT_HOST_EXTN		0,
+#define __ALT_ARM64_HAS_IRQ_PRIO_MASKING	0,
+
+#define ALTERNATIVE(oldinstr, newinstr, feature, ...)   \
+	_ALTERNATIVE(oldinstr, __ALT_ ## feature, #feature)
+
+#define _ALTERNATIVE(oldinstr, feature, feature_str)   \
+	__take_second_arg(feature oldinstr, \
+		".err Feature " feature_str " not supported in fips140 module")
+
+#endif /* BUILD_FIPS140_KO */
 #endif /* __ASM_ALTERNATIVE_MACROS_H */
diff --git a/arch/arm64/include/asm/assembler.h b/arch/arm64/include/asm/assembler.h
index 448a575..7d9dba1 100644
--- a/arch/arm64/include/asm/assembler.h
+++ b/arch/arm64/include/asm/assembler.h
@@ -788,6 +788,16 @@
 	.endm
 
 /*
+ * Branch Target Identifier (BTI)
+ */
+	.macro  bti, targets
+	.equ	.L__bti_targets_c, 34
+	.equ	.L__bti_targets_j, 36
+	.equ	.L__bti_targets_jc,38
+	hint	#.L__bti_targets_\targets
+	.endm
+
+/*
  * This macro emits a program property note section identifying
  * architecture features which require special handling, mainly for
  * use in assembly files included in the VDSO.
diff --git a/arch/arm64/include/asm/cache.h b/arch/arm64/include/asm/cache.h
index a074459..7c2181c 100644
--- a/arch/arm64/include/asm/cache.h
+++ b/arch/arm64/include/asm/cache.h
@@ -6,6 +6,7 @@
 #define __ASM_CACHE_H
 
 #include <asm/cputype.h>
+#include <asm/mte-def.h>
 
 #define CTR_L1IP_SHIFT		14
 #define CTR_L1IP_MASK		3
@@ -49,15 +50,21 @@
  */
 #define ARCH_DMA_MINALIGN	(128)
 
-#ifdef CONFIG_KASAN_SW_TAGS
-#define ARCH_SLAB_MINALIGN	(1ULL << KASAN_SHADOW_SCALE_SHIFT)
-#elif defined(CONFIG_KASAN_HW_TAGS)
-#define ARCH_SLAB_MINALIGN	MTE_GRANULE_SIZE
-#endif
-
 #ifndef __ASSEMBLY__
 
 #include <linux/bitops.h>
+#include <linux/kasan-enabled.h>
+
+#ifdef CONFIG_KASAN_SW_TAGS
+#define ARCH_SLAB_MINALIGN	(1ULL << KASAN_SHADOW_SCALE_SHIFT)
+#elif defined(CONFIG_KASAN_HW_TAGS)
+static inline unsigned int arch_slab_minalign(void)
+{
+	return kasan_hw_tags_enabled() ? MTE_GRANULE_SIZE :
+					 __alignof__(unsigned long long);
+}
+#define arch_slab_minalign() arch_slab_minalign()
+#endif
 
 #define ICACHEF_ALIASING	0
 #define ICACHEF_VPIPT		1
diff --git a/arch/arm64/include/asm/debug-monitors.h b/arch/arm64/include/asm/debug-monitors.h
index 8de1a84..c16ed5b 100644
--- a/arch/arm64/include/asm/debug-monitors.h
+++ b/arch/arm64/include/asm/debug-monitors.h
@@ -76,7 +76,7 @@
 
 struct step_hook {
 	struct list_head node;
-	int (*fn)(struct pt_regs *regs, unsigned long esr);
+	int (*fn)(struct pt_regs *regs, unsigned int esr);
 };
 
 void register_user_step_hook(struct step_hook *hook);
@@ -87,7 +87,7 @@
 
 struct break_hook {
 	struct list_head node;
-	int (*fn)(struct pt_regs *regs, unsigned long esr);
+	int (*fn)(struct pt_regs *regs, unsigned int esr);
 	u16 imm;
 	u16 mask; /* These bits are ignored when comparing with imm */
 };
diff --git a/arch/arm64/include/asm/el2_setup.h b/arch/arm64/include/asm/el2_setup.h
index 7f3c87f..0c1a6fb 100644
--- a/arch/arm64/include/asm/el2_setup.h
+++ b/arch/arm64/include/asm/el2_setup.h
@@ -177,6 +177,22 @@
 	msr	spsr_el2, x0
 .endm
 
+.macro __init_el2_mpam
+#ifdef CONFIG_ARM64_MPAM
+	/* Memory Partioning And Monitoring: disable EL2 traps */
+	mrs	x1, id_aa64pfr0_el1
+	ubfx	x0, x1, #ID_AA64PFR0_MPAM_SHIFT, #4
+	cbz	x0, .Lskip_mpam_\@		// skip if no MPAM
+	msr_s	SYS_MPAM0_EL1, xzr		// use the default partition..
+	msr_s	SYS_MPAM2_EL2, xzr		// ..and disable lower traps
+	msr_s	SYS_MPAM1_EL1, xzr
+	mrs_s	x0, SYS_MPAMIDR_EL1
+	tbz	x0, #17, .Lskip_mpam_\@		// skip if no MPAMHCR reg
+	msr_s	SYS_MPAMHCR_EL2, xzr		// clear TRAP_MPAMIDR_EL1 -> EL2
+.Lskip_mpam_\@:
+#endif /* CONFIG_ARM64_MPAM */
+.endm
+
 /**
  * Initialize EL2 registers to sane values. This should be called early on all
  * cores that were booted in EL2. Note that everything gets initialised as
@@ -193,6 +209,7 @@
 	__init_el2_stage2
 	__init_el2_gicv3
 	__init_el2_hstr
+	__init_el2_mpam
 	__init_el2_nvhe_idregs
 	__init_el2_nvhe_cptr
 	__init_el2_nvhe_sve
diff --git a/arch/arm64/include/asm/esr.h b/arch/arm64/include/asm/esr.h
index 9f91c89..f2b6a8f 100644
--- a/arch/arm64/include/asm/esr.h
+++ b/arch/arm64/include/asm/esr.h
@@ -112,6 +112,7 @@
 #define ESR_ELx_FSC_ACCESS	(0x08)
 #define ESR_ELx_FSC_FAULT	(0x04)
 #define ESR_ELx_FSC_PERM	(0x0C)
+#define ESR_ELx_FSC_TLBCONF	(0x30)
 
 /* ISS field definitions for Data Aborts */
 #define ESR_ELx_ISV_SHIFT	(24)
@@ -324,14 +325,14 @@
 #ifndef __ASSEMBLY__
 #include <asm/types.h>
 
-static inline bool esr_is_data_abort(unsigned long esr)
+static inline bool esr_is_data_abort(u32 esr)
 {
-	const unsigned long ec = ESR_ELx_EC(esr);
+	const u32 ec = ESR_ELx_EC(esr);
 
 	return ec == ESR_ELx_EC_DABT_LOW || ec == ESR_ELx_EC_DABT_CUR;
 }
 
-const char *esr_get_class_string(unsigned long esr);
+const char *esr_get_class_string(u32 esr);
 #endif /* __ASSEMBLY */
 
 #endif /* __ASM_ESR_H */
diff --git a/arch/arm64/include/asm/exception.h b/arch/arm64/include/asm/exception.h
index 0e6535a..339477d 100644
--- a/arch/arm64/include/asm/exception.h
+++ b/arch/arm64/include/asm/exception.h
@@ -19,9 +19,9 @@
 #define __exception_irq_entry	__kprobes
 #endif
 
-static inline unsigned long disr_to_esr(u64 disr)
+static inline u32 disr_to_esr(u64 disr)
 {
-	unsigned long esr = ESR_ELx_EC_SERROR << ESR_ELx_EC_SHIFT;
+	unsigned int esr = ESR_ELx_EC_SERROR << ESR_ELx_EC_SHIFT;
 
 	if ((disr & DISR_EL1_IDS) == 0)
 		esr |= (disr & DISR_EL1_ESR_MASK);
@@ -57,23 +57,23 @@
 				  void (*func)(struct pt_regs *));
 asmlinkage void asm_exit_to_user_mode(struct pt_regs *regs);
 
-void do_mem_abort(unsigned long far, unsigned long esr, struct pt_regs *regs);
+void do_mem_abort(unsigned long far, unsigned int esr, struct pt_regs *regs);
 void do_undefinstr(struct pt_regs *regs);
 void do_bti(struct pt_regs *regs);
-void do_debug_exception(unsigned long addr_if_watchpoint, unsigned long esr,
+void do_debug_exception(unsigned long addr_if_watchpoint, unsigned int esr,
 			struct pt_regs *regs);
-void do_fpsimd_acc(unsigned long esr, struct pt_regs *regs);
-void do_sve_acc(unsigned long esr, struct pt_regs *regs);
-void do_fpsimd_exc(unsigned long esr, struct pt_regs *regs);
-void do_sysinstr(unsigned long esr, struct pt_regs *regs);
-void do_sp_pc_abort(unsigned long addr, unsigned long esr, struct pt_regs *regs);
-void bad_el0_sync(struct pt_regs *regs, int reason, unsigned long esr);
-void do_cp15instr(unsigned long esr, struct pt_regs *regs);
+void do_fpsimd_acc(unsigned int esr, struct pt_regs *regs);
+void do_sve_acc(unsigned int esr, struct pt_regs *regs);
+void do_fpsimd_exc(unsigned int esr, struct pt_regs *regs);
+void do_sysinstr(unsigned int esr, struct pt_regs *regs);
+void do_sp_pc_abort(unsigned long addr, unsigned int esr, struct pt_regs *regs);
+void bad_el0_sync(struct pt_regs *regs, int reason, unsigned int esr);
+void do_cp15instr(unsigned int esr, struct pt_regs *regs);
 void do_el0_svc(struct pt_regs *regs);
 void do_el0_svc_compat(struct pt_regs *regs);
-void do_ptrauth_fault(struct pt_regs *regs, unsigned long esr);
-void do_serror(struct pt_regs *regs, unsigned long esr);
+void do_ptrauth_fault(struct pt_regs *regs, unsigned int esr);
+void do_serror(struct pt_regs *regs, unsigned int esr);
 void do_notify_resume(struct pt_regs *regs, unsigned long thread_flags);
 
-void panic_bad_stack(struct pt_regs *regs, unsigned long esr, unsigned long far);
+void panic_bad_stack(struct pt_regs *regs, unsigned int esr, unsigned long far);
 #endif	/* __ASM_EXCEPTION_H */
diff --git a/arch/arm64/include/asm/fixmap.h b/arch/arm64/include/asm/fixmap.h
index daff882..f4b7a1c 100644
--- a/arch/arm64/include/asm/fixmap.h
+++ b/arch/arm64/include/asm/fixmap.h
@@ -107,6 +107,8 @@
 
 extern void __set_fixmap(enum fixed_addresses idx, phys_addr_t phys, pgprot_t prot);
 
+extern pte_t *__get_fixmap_pte(enum fixed_addresses idx);
+
 #include <asm-generic/fixmap.h>
 
 #endif /* !__ASSEMBLY__ */
diff --git a/arch/arm64/include/asm/hwcap.h b/arch/arm64/include/asm/hwcap.h
index f68fbb2..8db5ec0 100644
--- a/arch/arm64/include/asm/hwcap.h
+++ b/arch/arm64/include/asm/hwcap.h
@@ -108,6 +108,7 @@
 #define KERNEL_HWCAP_ECV		__khwcap2_feature(ECV)
 #define KERNEL_HWCAP_AFP		__khwcap2_feature(AFP)
 #define KERNEL_HWCAP_RPRES		__khwcap2_feature(RPRES)
+#define KERNEL_HWCAP_MTE3		__khwcap2_feature(MTE3)
 
 /*
  * This yields a mask that user programs can use to figure out what
diff --git a/arch/arm64/include/asm/hypervisor.h b/arch/arm64/include/asm/hypervisor.h
index 0ae427f..ee45ae1 100644
--- a/arch/arm64/include/asm/hypervisor.h
+++ b/arch/arm64/include/asm/hypervisor.h
@@ -6,5 +6,8 @@
 
 void kvm_init_hyp_services(void);
 bool kvm_arm_hyp_service_available(u32 func_id);
+void kvm_arm_init_hyp_services(void);
+void kvm_init_memshare_services(void);
+void kvm_init_ioremap_services(void);
 
 #endif
diff --git a/arch/arm64/include/asm/io.h b/arch/arm64/include/asm/io.h
index 3995652..f7cd0e0 100644
--- a/arch/arm64/include/asm/io.h
+++ b/arch/arm64/include/asm/io.h
@@ -91,7 +91,7 @@
 }
 
 /* IO barriers */
-#define __iormb(v)							\
+#define __io_ar(v)							\
 ({									\
 	unsigned long tmp;						\
 									\
@@ -108,41 +108,16 @@
 		     : "memory");					\
 })
 
-#define __io_par(v)		__iormb(v)
-#define __iowmb()		dma_wmb()
+#define __io_bw()		dma_wmb()
+#define __io_br(v)
+#define __io_aw(v)
+
+/* arm64-specific, don't use in portable drivers */
+#define __iormb(v)		__io_ar(v)
+#define __iowmb()		__io_bw()
 #define __iomb()		dma_mb()
 
 /*
- * Relaxed I/O memory access primitives. These follow the Device memory
- * ordering rules but do not guarantee any ordering relative to Normal memory
- * accesses.
- */
-#define readb_relaxed(c)	({ u8  __r = __raw_readb(c); __r; })
-#define readw_relaxed(c)	({ u16 __r = le16_to_cpu((__force __le16)__raw_readw(c)); __r; })
-#define readl_relaxed(c)	({ u32 __r = le32_to_cpu((__force __le32)__raw_readl(c)); __r; })
-#define readq_relaxed(c)	({ u64 __r = le64_to_cpu((__force __le64)__raw_readq(c)); __r; })
-
-#define writeb_relaxed(v,c)	((void)__raw_writeb((v),(c)))
-#define writew_relaxed(v,c)	((void)__raw_writew((__force u16)cpu_to_le16(v),(c)))
-#define writel_relaxed(v,c)	((void)__raw_writel((__force u32)cpu_to_le32(v),(c)))
-#define writeq_relaxed(v,c)	((void)__raw_writeq((__force u64)cpu_to_le64(v),(c)))
-
-/*
- * I/O memory access primitives. Reads are ordered relative to any
- * following Normal memory access. Writes are ordered relative to any prior
- * Normal memory access.
- */
-#define readb(c)		({ u8  __v = readb_relaxed(c); __iormb(__v); __v; })
-#define readw(c)		({ u16 __v = readw_relaxed(c); __iormb(__v); __v; })
-#define readl(c)		({ u32 __v = readl_relaxed(c); __iormb(__v); __v; })
-#define readq(c)		({ u64 __v = readq_relaxed(c); __iormb(__v); __v; })
-
-#define writeb(v,c)		({ __iowmb(); writeb_relaxed((v),(c)); })
-#define writew(v,c)		({ __iowmb(); writew_relaxed((v),(c)); })
-#define writel(v,c)		({ __iowmb(); writel_relaxed((v),(c)); })
-#define writeq(v,c)		({ __iowmb(); writeq_relaxed((v),(c)); })
-
-/*
  *  I/O port access primitives.
  */
 #define arch_has_dev_port()	(1)
diff --git a/arch/arm64/include/asm/kvm_arm.h b/arch/arm64/include/asm/kvm_arm.h
index f67a561..7463d2c 100644
--- a/arch/arm64/include/asm/kvm_arm.h
+++ b/arch/arm64/include/asm/kvm_arm.h
@@ -134,7 +134,7 @@
  * 40 bits wide (T0SZ = 24).  Systems with a PARange smaller than 40 bits are
  * not known to exist and will break with this configuration.
  *
- * The VTCR_EL2 is configured per VM and is initialised in kvm_arm_setup_stage2().
+ * The VTCR_EL2 is configured per VM and is initialised in kvm_init_stage2_mmu.
  *
  * Note that when using 4K pages, we concatenate two first level page tables
  * together. With 16K pages, we concatenate 16 first level page tables.
@@ -295,6 +295,7 @@
 #define MDCR_EL2_HPMFZO		(UL(1) << 29)
 #define MDCR_EL2_MTPME		(UL(1) << 28)
 #define MDCR_EL2_TDCC		(UL(1) << 27)
+#define MDCR_EL2_HLP		(UL(1) << 26)
 #define MDCR_EL2_HCCD		(UL(1) << 23)
 #define MDCR_EL2_TTRF		(UL(1) << 19)
 #define MDCR_EL2_HPMD		(UL(1) << 17)
@@ -341,6 +342,8 @@
 #define PAR_TO_HPFAR(par)		\
 	(((par) & GENMASK_ULL(PHYS_MASK_SHIFT - 1, 12)) >> 8)
 
+#define FAR_MASK GENMASK_ULL(11, 0)
+
 #define ECN(x) { ESR_ELx_EC_##x, #x }
 
 #define kvm_arm_exception_class \
@@ -358,4 +361,13 @@
 #define CPACR_EL1_TTA		(1 << 28)
 #define CPACR_EL1_DEFAULT	(CPACR_EL1_FPEN | CPACR_EL1_ZEN_EL1EN)
 
+/*
+ * ARMv8 Reset Values
+ */
+#define VCPU_RESET_PSTATE_EL1	(PSR_MODE_EL1h | PSR_A_BIT | PSR_I_BIT | \
+				 PSR_F_BIT | PSR_D_BIT)
+
+#define VCPU_RESET_PSTATE_SVC	(PSR_AA32_MODE_SVC | PSR_AA32_A_BIT | \
+				 PSR_AA32_I_BIT | PSR_AA32_F_BIT)
+
 #endif /* __ARM64_KVM_ARM_H__ */
diff --git a/arch/arm64/include/asm/kvm_asm.h b/arch/arm64/include/asm/kvm_asm.h
index e86045a..7aa7f8e 100644
--- a/arch/arm64/include/asm/kvm_asm.h
+++ b/arch/arm64/include/asm/kvm_asm.h
@@ -44,31 +44,49 @@
 #define KVM_HOST_SMCCC_FUNC(name) KVM_HOST_SMCCC_ID(__KVM_HOST_SMCCC_FUNC_##name)
 
 #define __KVM_HOST_SMCCC_FUNC___kvm_hyp_init			0
-#define __KVM_HOST_SMCCC_FUNC___kvm_vcpu_run			1
-#define __KVM_HOST_SMCCC_FUNC___kvm_flush_vm_context		2
-#define __KVM_HOST_SMCCC_FUNC___kvm_tlb_flush_vmid_ipa		3
-#define __KVM_HOST_SMCCC_FUNC___kvm_tlb_flush_vmid		4
-#define __KVM_HOST_SMCCC_FUNC___kvm_flush_cpu_context		5
-#define __KVM_HOST_SMCCC_FUNC___kvm_timer_set_cntvoff		6
-#define __KVM_HOST_SMCCC_FUNC___kvm_enable_ssbs			7
-#define __KVM_HOST_SMCCC_FUNC___vgic_v3_get_gic_config		8
-#define __KVM_HOST_SMCCC_FUNC___vgic_v3_read_vmcr		9
-#define __KVM_HOST_SMCCC_FUNC___vgic_v3_write_vmcr		10
-#define __KVM_HOST_SMCCC_FUNC___vgic_v3_init_lrs		11
-#define __KVM_HOST_SMCCC_FUNC___kvm_get_mdcr_el2		12
-#define __KVM_HOST_SMCCC_FUNC___vgic_v3_save_aprs		13
-#define __KVM_HOST_SMCCC_FUNC___vgic_v3_restore_aprs		14
-#define __KVM_HOST_SMCCC_FUNC___pkvm_init			15
-#define __KVM_HOST_SMCCC_FUNC___pkvm_host_share_hyp		16
-#define __KVM_HOST_SMCCC_FUNC___pkvm_create_private_mapping	17
-#define __KVM_HOST_SMCCC_FUNC___pkvm_cpu_set_vector		18
-#define __KVM_HOST_SMCCC_FUNC___pkvm_prot_finalize		19
-#define __KVM_HOST_SMCCC_FUNC___kvm_adjust_pc			20
 
 #ifndef __ASSEMBLY__
 
 #include <linux/mm.h>
 
+enum __kvm_host_smccc_func {
+	/* Hypercalls available only prior to pKVM finalisation */
+	/* __KVM_HOST_SMCCC_FUNC___kvm_hyp_init */
+	__KVM_HOST_SMCCC_FUNC___kvm_get_mdcr_el2 = __KVM_HOST_SMCCC_FUNC___kvm_hyp_init + 1,
+	__KVM_HOST_SMCCC_FUNC___pkvm_init,
+	__KVM_HOST_SMCCC_FUNC___pkvm_create_private_mapping,
+	__KVM_HOST_SMCCC_FUNC___pkvm_cpu_set_vector,
+	__KVM_HOST_SMCCC_FUNC___kvm_enable_ssbs,
+	__KVM_HOST_SMCCC_FUNC___vgic_v3_init_lrs,
+	__KVM_HOST_SMCCC_FUNC___vgic_v3_get_gic_config,
+	__KVM_HOST_SMCCC_FUNC___pkvm_prot_finalize,
+
+	/* Hypercalls available after pKVM finalisation */
+	__KVM_HOST_SMCCC_FUNC___pkvm_host_share_hyp,
+	__KVM_HOST_SMCCC_FUNC___pkvm_host_unshare_hyp,
+	__KVM_HOST_SMCCC_FUNC___pkvm_host_reclaim_page,
+	__KVM_HOST_SMCCC_FUNC___pkvm_host_donate_guest,
+	__KVM_HOST_SMCCC_FUNC___kvm_adjust_pc,
+	__KVM_HOST_SMCCC_FUNC___kvm_vcpu_run,
+	__KVM_HOST_SMCCC_FUNC___kvm_flush_vm_context,
+	__KVM_HOST_SMCCC_FUNC___kvm_tlb_flush_vmid_ipa,
+	__KVM_HOST_SMCCC_FUNC___kvm_tlb_flush_vmid,
+	__KVM_HOST_SMCCC_FUNC___kvm_flush_cpu_context,
+	__KVM_HOST_SMCCC_FUNC___kvm_timer_set_cntvoff,
+	__KVM_HOST_SMCCC_FUNC___vgic_v3_save_vmcr_aprs,
+	__KVM_HOST_SMCCC_FUNC___vgic_v3_restore_vmcr_aprs,
+	__KVM_HOST_SMCCC_FUNC___pkvm_init_shadow,
+	__KVM_HOST_SMCCC_FUNC___pkvm_init_shadow_vcpu,
+	__KVM_HOST_SMCCC_FUNC___pkvm_teardown_shadow,
+	__KVM_HOST_SMCCC_FUNC___pkvm_vcpu_load,
+	__KVM_HOST_SMCCC_FUNC___pkvm_vcpu_put,
+	__KVM_HOST_SMCCC_FUNC___pkvm_vcpu_sync_state,
+	__KVM_HOST_SMCCC_FUNC___pkvm_iommu_driver_init,
+	__KVM_HOST_SMCCC_FUNC___pkvm_iommu_register,
+	__KVM_HOST_SMCCC_FUNC___pkvm_iommu_pm_notify,
+	__KVM_HOST_SMCCC_FUNC___pkvm_iommu_finalize,
+};
+
 #define DECLARE_KVM_VHE_SYM(sym)	extern char sym[]
 #define DECLARE_KVM_NVHE_SYM(sym)	extern char kvm_nvhe_sym(sym)[]
 
@@ -97,7 +115,7 @@
 #define per_cpu_ptr_nvhe_sym(sym, cpu)						\
 	({									\
 		unsigned long base, off;					\
-		base = kvm_arm_hyp_percpu_base[cpu];				\
+		base = kvm_nvhe_sym(kvm_arm_hyp_percpu_base)[cpu];		\
 		off = (unsigned long)&CHOOSE_NVHE_SYM(sym) -			\
 		      (unsigned long)&CHOOSE_NVHE_SYM(__per_cpu_start);		\
 		base ? (typeof(CHOOSE_NVHE_SYM(sym))*)(base + off) : NULL;	\
@@ -185,7 +203,7 @@
 #define __kvm_hyp_init		CHOOSE_NVHE_SYM(__kvm_hyp_init)
 #define __kvm_hyp_vector	CHOOSE_HYP_SYM(__kvm_hyp_vector)
 
-extern unsigned long kvm_arm_hyp_percpu_base[NR_CPUS];
+extern unsigned long kvm_nvhe_sym(kvm_arm_hyp_percpu_base)[];
 DECLARE_KVM_NVHE_SYM(__per_cpu_start);
 DECLARE_KVM_NVHE_SYM(__per_cpu_end);
 
@@ -205,8 +223,6 @@
 extern void __kvm_adjust_pc(struct kvm_vcpu *vcpu);
 
 extern u64 __vgic_v3_get_gic_config(void);
-extern u64 __vgic_v3_read_vmcr(void);
-extern void __vgic_v3_write_vmcr(u32 vmcr);
 extern void __vgic_v3_init_lrs(void);
 
 extern u64 __kvm_get_mdcr_el2(void);
diff --git a/arch/arm64/include/asm/kvm_emulate.h b/arch/arm64/include/asm/kvm_emulate.h
index 64f8a90..89b63b8 100644
--- a/arch/arm64/include/asm/kvm_emulate.h
+++ b/arch/arm64/include/asm/kvm_emulate.h
@@ -41,6 +41,27 @@
 void kvm_inject_dabt(struct kvm_vcpu *vcpu, unsigned long addr);
 void kvm_inject_pabt(struct kvm_vcpu *vcpu, unsigned long addr);
 
+unsigned long get_except64_offset(unsigned long psr, unsigned long target_mode,
+				  enum exception_type type);
+unsigned long get_except64_cpsr(unsigned long old, bool has_mte,
+				unsigned long sctlr, unsigned long mode);
+
+static inline int kvm_vcpu_enable_ptrauth(struct kvm_vcpu *vcpu)
+{
+	/*
+	 * For now make sure that both address/generic pointer authentication
+	 * features are requested by the userspace together and the system
+	 * supports these capabilities.
+	 */
+	if (!test_bit(KVM_ARM_VCPU_PTRAUTH_ADDRESS, vcpu->arch.features) ||
+	    !test_bit(KVM_ARM_VCPU_PTRAUTH_GENERIC, vcpu->arch.features) ||
+	    !system_has_full_ptr_auth())
+		return -EINVAL;
+
+	vcpu->arch.flags |= KVM_ARM64_GUEST_HAS_PTRAUTH;
+	return 0;
+}
+
 static __always_inline bool vcpu_el1_is_32bit(struct kvm_vcpu *vcpu)
 {
 	return !(vcpu->arch.hcr_el2 & HCR_RW);
@@ -404,7 +425,7 @@
 		*vcpu_cpsr(vcpu) |= PSR_AA32_E_BIT;
 	} else {
 		u64 sctlr = vcpu_read_sys_reg(vcpu, SCTLR_EL1);
-		sctlr |= (1 << 25);
+		sctlr |= SCTLR_ELx_EE;
 		vcpu_write_sys_reg(vcpu, sctlr, SCTLR_EL1);
 	}
 }
@@ -414,7 +435,10 @@
 	if (vcpu_mode_is_32bit(vcpu))
 		return !!(*vcpu_cpsr(vcpu) & PSR_AA32_E_BIT);
 
-	return !!(vcpu_read_sys_reg(vcpu, SCTLR_EL1) & (1 << 25));
+	if (vcpu_mode_priv(vcpu))
+		return !!(vcpu_read_sys_reg(vcpu, SCTLR_EL1) & SCTLR_ELx_EE);
+	else
+		return !!(vcpu_read_sys_reg(vcpu, SCTLR_EL1) & SCTLR_EL1_E0E);
 }
 
 static inline unsigned long vcpu_data_guest_to_host(struct kvm_vcpu *vcpu,
@@ -489,4 +513,34 @@
 	return test_bit(feature, vcpu->arch.features);
 }
 
+/* Narrow the PSCI register arguments (r1 to r3) to 32 bits. */
+static inline void kvm_psci_narrow_to_32bit(struct kvm_vcpu *vcpu)
+{
+	int i;
+
+	/*
+	 * Zero the input registers' upper 32 bits. They will be fully
+	 * zeroed on exit, so we're fine changing them in place.
+	 */
+	for (i = 1; i < 4; i++)
+		vcpu_set_reg(vcpu, i, lower_32_bits(vcpu_get_reg(vcpu, i)));
+}
+
+static inline bool kvm_psci_valid_affinity(struct kvm_vcpu *vcpu,
+					   unsigned long affinity)
+{
+	return !(affinity & ~MPIDR_HWID_BITMASK);
+}
+
+
+#define AFFINITY_MASK(level)	~((0x1UL << ((level) * MPIDR_LEVEL_BITS)) - 1)
+
+static inline unsigned long psci_affinity_mask(unsigned long affinity_level)
+{
+	if (affinity_level <= 3)
+		return MPIDR_HWID_BITMASK & AFFINITY_MASK(affinity_level);
+
+	return 0;
+}
+
 #endif /* __ARM64_KVM_EMULATE_H__ */
diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h
index 1713630..a6d427e 100644
--- a/arch/arm64/include/asm/kvm_host.h
+++ b/arch/arm64/include/asm/kvm_host.h
@@ -26,7 +26,6 @@
 #include <asm/fpsimd.h>
 #include <asm/kvm.h>
 #include <asm/kvm_asm.h>
-#include <asm/thread_info.h>
 
 #define __KVM_HAVE_ARCH_INTC_INITIALIZED
 
@@ -58,6 +57,7 @@
 enum kvm_mode {
 	KVM_MODE_DEFAULT,
 	KVM_MODE_PROTECTED,
+	KVM_MODE_NONE,
 };
 enum kvm_mode kvm_get_mode(void);
 
@@ -70,6 +70,63 @@
 int kvm_reset_vcpu(struct kvm_vcpu *vcpu);
 void kvm_arm_vcpu_destroy(struct kvm_vcpu *vcpu);
 
+struct kvm_hyp_memcache {
+	phys_addr_t head;
+	unsigned long nr_pages;
+};
+
+static inline void push_hyp_memcache(struct kvm_hyp_memcache *mc,
+				     phys_addr_t *p,
+				     phys_addr_t (*to_pa)(void *virt))
+{
+	*p = mc->head;
+	mc->head = to_pa(p);
+	mc->nr_pages++;
+}
+
+static inline void *pop_hyp_memcache(struct kvm_hyp_memcache *mc,
+				     void *(*to_va)(phys_addr_t phys))
+{
+	phys_addr_t *p = to_va(mc->head);
+
+	if (!mc->nr_pages)
+		return NULL;
+
+	mc->head = *p;
+	mc->nr_pages--;
+
+	return p;
+}
+
+static inline int __topup_hyp_memcache(struct kvm_hyp_memcache *mc,
+				       unsigned long min_pages,
+				       void *(*alloc_fn)(void *arg),
+				       phys_addr_t (*to_pa)(void *virt),
+				       void *arg)
+{
+	while (mc->nr_pages < min_pages) {
+		phys_addr_t *p = alloc_fn(arg);
+
+		if (!p)
+			return -ENOMEM;
+		push_hyp_memcache(mc, p, to_pa);
+	}
+
+	return 0;
+}
+
+static inline void __free_hyp_memcache(struct kvm_hyp_memcache *mc,
+				       void (*free_fn)(void *virt, void *arg),
+				       void *(*to_va)(phys_addr_t phys),
+				       void *arg)
+{
+	while (mc->nr_pages)
+		free_fn(pop_hyp_memcache(mc, to_va), arg);
+}
+
+void free_hyp_memcache(struct kvm_hyp_memcache *mc);
+int topup_hyp_memcache(struct kvm_vcpu *vcpu);
+
 struct kvm_vmid {
 	/* The VMID generation used for the virt. memory system */
 	u64    vmid_gen;
@@ -101,6 +158,20 @@
 struct kvm_arch_memory_slot {
 };
 
+struct kvm_pinned_page {
+	struct list_head	link;
+	struct page		*page;
+};
+
+struct kvm_protected_vm {
+	bool enabled;
+	int shadow_handle;
+	struct mutex shadow_lock;
+	struct kvm_hyp_memcache teardown_mc;
+	struct list_head pinned_pages;
+	gpa_t pvmfw_load_addr;
+};
+
 struct kvm_arch {
 	struct kvm_s2_mmu mmu;
 
@@ -122,7 +193,12 @@
 	 * should) opt in to this feature if KVM_CAP_ARM_NISV_TO_USER is
 	 * supported.
 	 */
-	bool return_nisv_io_abort_to_user;
+#define KVM_ARCH_FLAG_RETURN_NISV_IO_ABORT_TO_USER	0
+	/* Memory Tagging Extension enabled for the guest */
+#define KVM_ARCH_FLAG_MTE_ENABLED			1
+	/* Guest has bought into the MMIO guard extension */
+#define KVM_ARCH_FLAG_MMIO_GUARD			2
+	unsigned long flags;
 
 	/*
 	 * VM-wide PMU filter, implemented as a bitmap and big enough for
@@ -134,8 +210,30 @@
 	u8 pfr0_csv2;
 	u8 pfr0_csv3;
 
-	/* Memory Tagging Extension enabled for the guest */
-	bool mte_enabled;
+	struct kvm_protected_vm pkvm;
+};
+
+struct kvm_protected_vcpu {
+	/* A pointer to the host's vcpu. */
+	struct kvm_vcpu *host_vcpu;
+
+	/* A pointer to the shadow vm. */
+	struct kvm_shadow_vm *shadow_vm;
+
+	/* Tracks exit code for the protected guest. */
+	int exit_code;
+
+	/*
+	 * Track the power state transition of a protected vcpu.
+	 * Can be in one of three states:
+	 * PSCI_0_2_AFFINITY_LEVEL_ON
+	 * PSCI_0_2_AFFINITY_LEVEL_OFF
+	 * PSCI_0_2_AFFINITY_LEVEL_PENDING
+	 */
+	int power_state;
+
+	/* True if this vcpu is currently loaded on a cpu. */
+	bool loaded_on_cpu;
 };
 
 struct kvm_vcpu_fault_info {
@@ -252,6 +350,7 @@
 struct kvm_host_psci_config {
 	/* PSCI version used by host. */
 	u32 version;
+	u32 smccc_version;
 
 	/* Function IDs used by host if version is v0.1. */
 	struct psci_0_1_function_ids function_ids_0_1;
@@ -271,6 +370,29 @@
 extern u64 kvm_nvhe_sym(hyp_cpu_logical_map)[NR_CPUS];
 #define hyp_cpu_logical_map CHOOSE_NVHE_SYM(hyp_cpu_logical_map)
 
+enum pkvm_iommu_driver_id {
+	PKVM_IOMMU_DRIVER_S2MPU,
+	PKVM_IOMMU_DRIVER_SYSMMU_SYNC,
+	PKVM_IOMMU_NR_DRIVERS,
+};
+
+enum pkvm_iommu_pm_event {
+	PKVM_IOMMU_PM_SUSPEND,
+	PKVM_IOMMU_PM_RESUME,
+};
+
+int pkvm_iommu_driver_init(enum pkvm_iommu_driver_id drv_id, void *data, size_t size);
+int pkvm_iommu_register(struct device *dev, enum pkvm_iommu_driver_id drv_id,
+			phys_addr_t pa, size_t size, struct device *parent);
+int pkvm_iommu_suspend(struct device *dev);
+int pkvm_iommu_resume(struct device *dev);
+
+int pkvm_iommu_s2mpu_register(struct device *dev, phys_addr_t pa);
+int pkvm_iommu_sysmmu_sync_register(struct device *dev, phys_addr_t pa,
+				    struct device *parent);
+/* Reject future calls to pkvm_iommu_driver_init() and pkvm_iommu_register(). */
+int pkvm_iommu_finalize(void);
+
 struct vcpu_reset_state {
 	unsigned long	pc;
 	unsigned long	r0;
@@ -297,9 +419,6 @@
 	/* Exception Information */
 	struct kvm_vcpu_fault_info fault;
 
-	/* State of various workarounds, see kvm_asm.h for bit assignment */
-	u64 workaround_flags;
-
 	/* Miscellaneous vcpu state flags */
 	u64 flags;
 
@@ -320,8 +439,8 @@
 	struct kvm_guest_debug_arch vcpu_debug_state;
 	struct kvm_guest_debug_arch external_debug_state;
 
-	struct thread_info *host_thread_info;	/* hyp VA */
 	struct user_fpsimd_state *host_fpsimd_state;	/* hyp VA */
+	struct task_struct *parent_task;
 
 	struct {
 		/* {Break,watch}point registers */
@@ -359,16 +478,17 @@
 	/* Don't run the guest (internal implementation need) */
 	bool pause;
 
-	/* Cache some mmu pages needed inside spinlock regions */
-	struct kvm_mmu_memory_cache mmu_page_cache;
+	union {
+		/* Cache some mmu pages needed inside spinlock regions */
+		struct kvm_mmu_memory_cache mmu_page_cache;
+		/* Pages to be donated to pkvm/EL2e if it runs out */
+		struct kvm_hyp_memcache pkvm_memcache;
+	};
 
 	/* Target CPU and feature flags */
 	int target;
 	DECLARE_BITMAP(features, KVM_VCPU_MAX_FEATURES);
 
-	/* Detect first run of a vcpu */
-	bool has_run_once;
-
 	/* Virtual SError ESR to restore when HCR_EL2.VSE is set */
 	u64 vsesr_el2;
 
@@ -384,6 +504,8 @@
 		u64 last_steal;
 		gpa_t base;
 	} steal;
+
+	struct kvm_protected_vcpu pkvm;
 };
 
 /* Pointer to the vcpu's SVE FFR for sve_{save,load}_state() */
@@ -410,20 +532,17 @@
 #define KVM_ARM64_DEBUG_DIRTY		(1 << 0)
 #define KVM_ARM64_FP_ENABLED		(1 << 1) /* guest FP regs loaded */
 #define KVM_ARM64_FP_HOST		(1 << 2) /* host FP regs loaded */
-#define KVM_ARM64_HOST_SVE_IN_USE	(1 << 3) /* backup for host TIF_SVE */
 #define KVM_ARM64_HOST_SVE_ENABLED	(1 << 4) /* SVE enabled for EL0 */
 #define KVM_ARM64_GUEST_HAS_SVE		(1 << 5) /* SVE exposed to guest */
 #define KVM_ARM64_VCPU_SVE_FINALIZED	(1 << 6) /* SVE config completed */
 #define KVM_ARM64_GUEST_HAS_PTRAUTH	(1 << 7) /* PTRAUTH exposed to guest */
 #define KVM_ARM64_PENDING_EXCEPTION	(1 << 8) /* Exception pending */
+/*
+ * Overlaps with KVM_ARM64_EXCEPT_MASK on purpose so that it can't be
+ * set together with an exception...
+ */
+#define KVM_ARM64_INCREMENT_PC		(1 << 9) /* Increment PC */
 #define KVM_ARM64_EXCEPT_MASK		(7 << 9) /* Target EL/MODE */
-#define KVM_ARM64_DEBUG_STATE_SAVE_SPE	(1 << 12) /* Save SPE context if active  */
-#define KVM_ARM64_DEBUG_STATE_SAVE_TRBE	(1 << 13) /* Save TRBE context if active  */
-
-#define KVM_GUESTDBG_VALID_MASK (KVM_GUESTDBG_ENABLE | \
-				 KVM_GUESTDBG_USE_SW_BP | \
-				 KVM_GUESTDBG_USE_HW | \
-				 KVM_GUESTDBG_SINGLESTEP)
 /*
  * When KVM_ARM64_PENDING_EXCEPTION is set, KVM_ARM64_EXCEPT_MASK can
  * take the following values:
@@ -441,11 +560,15 @@
 #define KVM_ARM64_EXCEPT_AA64_EL1	(0 << 11)
 #define KVM_ARM64_EXCEPT_AA64_EL2	(1 << 11)
 
-/*
- * Overlaps with KVM_ARM64_EXCEPT_MASK on purpose so that it can't be
- * set together with an exception...
- */
-#define KVM_ARM64_INCREMENT_PC		(1 << 9) /* Increment PC */
+#define KVM_ARM64_DEBUG_STATE_SAVE_SPE	(1 << 12) /* Save SPE context if active  */
+#define KVM_ARM64_DEBUG_STATE_SAVE_TRBE	(1 << 13) /* Save TRBE context if active  */
+#define KVM_ARM64_FP_FOREIGN_FPSTATE	(1 << 14)
+#define KVM_ARM64_PKVM_STATE_DIRTY	(1 << 15)
+
+#define KVM_GUESTDBG_VALID_MASK (KVM_GUESTDBG_ENABLE | \
+				 KVM_GUESTDBG_USE_SW_BP | \
+				 KVM_GUESTDBG_USE_HW | \
+				 KVM_GUESTDBG_SINGLESTEP)
 
 #define vcpu_has_sve(vcpu) (system_supports_sve() &&			\
 			    ((vcpu)->arch.flags & KVM_ARM64_GUEST_HAS_SVE))
@@ -474,9 +597,6 @@
 
 #define __vcpu_sys_reg(v,r)	(ctxt_sys_reg(&(v)->arch.ctxt, (r)))
 
-u64 vcpu_read_sys_reg(const struct kvm_vcpu *vcpu, int reg);
-void vcpu_write_sys_reg(struct kvm_vcpu *vcpu, u64 val, int reg);
-
 static inline bool __vcpu_read_sys_reg_from_cpu(int reg, u64 *val)
 {
 	/*
@@ -568,6 +688,31 @@
 	return true;
 }
 
+static inline u64 vcpu_arch_read_sys_reg(const struct kvm_vcpu_arch *vcpu_arch, int reg)
+{
+	u64 val = 0x8badf00d8badf00d;
+
+	/* sysregs_loaded_on_cpu is only used in VHE */
+	if (!is_nvhe_hyp_code() && vcpu_arch->sysregs_loaded_on_cpu &&
+	    __vcpu_read_sys_reg_from_cpu(reg, &val))
+		return val;
+
+	return ctxt_sys_reg(&vcpu_arch->ctxt, reg);
+}
+
+static inline void vcpu_arch_write_sys_reg(struct kvm_vcpu_arch *vcpu_arch, u64 val, int reg)
+{
+	/* sysregs_loaded_on_cpu is only used in VHE */
+	if (!is_nvhe_hyp_code() && vcpu_arch->sysregs_loaded_on_cpu &&
+	    __vcpu_write_sys_reg_to_cpu(val, reg))
+		return;
+
+	 ctxt_sys_reg(&vcpu_arch->ctxt, reg) = val;
+}
+
+#define vcpu_read_sys_reg(vcpu, reg) vcpu_arch_read_sys_reg(&((vcpu)->arch), reg)
+#define vcpu_write_sys_reg(vcpu, val, reg) vcpu_arch_write_sys_reg(&((vcpu)->arch), val, reg)
+
 struct kvm_vm_stat {
 	struct kvm_vm_stat_generic generic;
 };
@@ -583,7 +728,7 @@
 	u64 exits;
 };
 
-int kvm_vcpu_preferred_target(struct kvm_vcpu_init *init);
+void kvm_vcpu_preferred_target(struct kvm_vcpu_init *init);
 unsigned long kvm_arm_num_regs(struct kvm_vcpu *vcpu);
 int kvm_arm_copy_reg_indices(struct kvm_vcpu *vcpu, u64 __user *indices);
 int kvm_arm_get_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg);
@@ -605,6 +750,8 @@
 void kvm_arm_halt_guest(struct kvm *kvm);
 void kvm_arm_resume_guest(struct kvm *kvm);
 
+#define vcpu_has_run_once(vcpu)	!!rcu_access_pointer((vcpu)->pid)
+
 #ifndef __KVM_NVHE_HYPERVISOR__
 #define kvm_call_hyp_nvhe(f, ...)						\
 	({								\
@@ -741,8 +888,10 @@
 /* Guest/host FPSIMD coordination helpers */
 int kvm_arch_vcpu_run_map_fp(struct kvm_vcpu *vcpu);
 void kvm_arch_vcpu_load_fp(struct kvm_vcpu *vcpu);
+void kvm_arch_vcpu_ctxflush_fp(struct kvm_vcpu *vcpu);
 void kvm_arch_vcpu_ctxsync_fp(struct kvm_vcpu *vcpu);
 void kvm_arch_vcpu_put_fp(struct kvm_vcpu *vcpu);
+void kvm_vcpu_unshare_task_fp(struct kvm_vcpu *vcpu);
 
 static inline bool kvm_pmu_counter_deferred(struct perf_event_attr *attr)
 {
@@ -753,12 +902,7 @@
 void kvm_arch_vcpu_load_debug_state_flags(struct kvm_vcpu *vcpu);
 void kvm_arch_vcpu_put_debug_state_flags(struct kvm_vcpu *vcpu);
 
-#ifdef CONFIG_KVM /* Avoid conflicts with core headers if CONFIG_KVM=n */
-static inline int kvm_arch_vcpu_run_pid_change(struct kvm_vcpu *vcpu)
-{
-	return kvm_arch_vcpu_run_map_fp(vcpu);
-}
-
+#ifdef CONFIG_KVM
 void kvm_set_pmu_events(u32 set, struct perf_event_attr *attr);
 void kvm_clr_pmu_events(u32 clr);
 
@@ -778,12 +922,9 @@
 struct kvm *kvm_arch_alloc_vm(void);
 void kvm_arch_free_vm(struct kvm *kvm);
 
-int kvm_arm_setup_stage2(struct kvm *kvm, unsigned long type);
+#define kvm_vm_is_protected(kvm)	((kvm)->arch.pkvm.enabled)
 
-static inline bool kvm_vm_is_protected(struct kvm *kvm)
-{
-	return false;
-}
+void kvm_init_protected_traps(struct kvm_vcpu *vcpu);
 
 int kvm_arm_vcpu_finalize(struct kvm_vcpu *vcpu, int feature);
 bool kvm_arm_vcpu_is_finalized(struct kvm_vcpu *vcpu);
@@ -791,7 +932,9 @@
 #define kvm_arm_vcpu_sve_finalized(vcpu) \
 	((vcpu)->arch.flags & KVM_ARM64_VCPU_SVE_FINALIZED)
 
-#define kvm_has_mte(kvm) (system_supports_mte() && (kvm)->arch.mte_enabled)
+#define kvm_has_mte(kvm)					\
+	(system_supports_mte() &&				\
+	 test_bit(KVM_ARCH_FLAG_MTE_ENABLED, &(kvm)->arch.flags))
 #define kvm_vcpu_has_pmu(vcpu)					\
 	(test_bit(KVM_ARM_VCPU_PMU_V3, (vcpu)->arch.features))
 
diff --git a/arch/arm64/include/asm/kvm_hyp.h b/arch/arm64/include/asm/kvm_hyp.h
index 657d0c9..dc9c66f 100644
--- a/arch/arm64/include/asm/kvm_hyp.h
+++ b/arch/arm64/include/asm/kvm_hyp.h
@@ -61,8 +61,8 @@
 void __vgic_v3_restore_state(struct vgic_v3_cpu_if *cpu_if);
 void __vgic_v3_activate_traps(struct vgic_v3_cpu_if *cpu_if);
 void __vgic_v3_deactivate_traps(struct vgic_v3_cpu_if *cpu_if);
-void __vgic_v3_save_aprs(struct vgic_v3_cpu_if *cpu_if);
-void __vgic_v3_restore_aprs(struct vgic_v3_cpu_if *cpu_if);
+void __vgic_v3_save_vmcr_aprs(struct vgic_v3_cpu_if *cpu_if);
+void __vgic_v3_restore_vmcr_aprs(struct vgic_v3_cpu_if *cpu_if);
 int __vgic_v3_perform_cpuif_access(struct kvm_vcpu *vcpu);
 
 #ifdef __KVM_NVHE_HYPERVISOR__
@@ -90,7 +90,6 @@
 
 void __fpsimd_save_state(struct user_fpsimd_state *fp_regs);
 void __fpsimd_restore_state(struct user_fpsimd_state *fp_regs);
-void __sve_save_state(void *sve_pffr, u32 *fpsr);
 void __sve_restore_state(void *sve_pffr, u32 *fpsr);
 
 #ifndef __KVM_NVHE_HYPERVISOR__
@@ -115,7 +114,14 @@
 void __noreturn __host_enter(struct kvm_cpu_context *host_ctxt);
 #endif
 
+extern u64 kvm_nvhe_sym(id_aa64pfr0_el1_sys_val);
+extern u64 kvm_nvhe_sym(id_aa64pfr1_el1_sys_val);
+extern u64 kvm_nvhe_sym(id_aa64isar0_el1_sys_val);
+extern u64 kvm_nvhe_sym(id_aa64isar1_el1_sys_val);
 extern u64 kvm_nvhe_sym(id_aa64mmfr0_el1_sys_val);
 extern u64 kvm_nvhe_sym(id_aa64mmfr1_el1_sys_val);
+extern u64 kvm_nvhe_sym(id_aa64mmfr2_el1_sys_val);
 
+extern unsigned long kvm_nvhe_sym(__icache_flags);
+extern bool kvm_nvhe_sym(smccc_trng_available);
 #endif /* __ARM64_KVM_HYP_H__ */
diff --git a/arch/arm64/include/asm/kvm_mmu.h b/arch/arm64/include/asm/kvm_mmu.h
index 02d3788..7a8dc3f 100644
--- a/arch/arm64/include/asm/kvm_mmu.h
+++ b/arch/arm64/include/asm/kvm_mmu.h
@@ -150,6 +150,8 @@
 #include <asm/kvm_pgtable.h>
 #include <asm/stage2_pgtable.h>
 
+int kvm_share_hyp(void *from, void *to);
+void kvm_unshare_hyp(void *from, void *to);
 int create_hyp_mappings(void *from, void *to, enum kvm_pgtable_prot prot);
 int create_hyp_io_mappings(phys_addr_t phys_addr, size_t size,
 			   void __iomem **kaddr,
@@ -159,7 +161,7 @@
 void free_hyp_pgds(void);
 
 void stage2_unmap_vm(struct kvm *kvm);
-int kvm_init_stage2_mmu(struct kvm *kvm, struct kvm_s2_mmu *mmu);
+int kvm_init_stage2_mmu(struct kvm *kvm, struct kvm_s2_mmu *mmu, unsigned long type);
 void kvm_free_stage2_pgd(struct kvm_s2_mmu *mmu);
 int kvm_phys_addr_ioremap(struct kvm *kvm, phys_addr_t guest_ipa,
 			  phys_addr_t pa, unsigned long size, bool writable);
@@ -180,8 +182,13 @@
 
 struct kvm;
 
-#define kvm_flush_dcache_to_poc(a,l)	\
-	dcache_clean_inval_poc((unsigned long)(a), (unsigned long)(a)+(l))
+#define kvm_flush_dcache_to_poc(a, l)	do {			\
+	unsigned long __a = (unsigned long)(a);			\
+	unsigned long __l = (unsigned long)(l);			\
+								\
+	if (__l)						\
+		dcache_clean_inval_poc(__a, __a + __l);		\
+} while (0)
 
 static inline bool vcpu_has_cache_enabled(struct kvm_vcpu *vcpu)
 {
diff --git a/arch/arm64/include/asm/kvm_pgtable.h b/arch/arm64/include/asm/kvm_pgtable.h
index 0277838..190df60 100644
--- a/arch/arm64/include/asm/kvm_pgtable.h
+++ b/arch/arm64/include/asm/kvm_pgtable.h
@@ -252,6 +252,27 @@
 			enum kvm_pgtable_prot prot);
 
 /**
+ * kvm_pgtable_hyp_unmap() - Remove a mapping from a hypervisor stage-1 page-table.
+ * @pgt:	Page-table structure initialised by kvm_pgtable_hyp_init().
+ * @addr:	Virtual address from which to remove the mapping.
+ * @size:	Size of the mapping.
+ *
+ * The offset of @addr within a page is ignored, @size is rounded-up to
+ * the next page boundary and @phys is rounded-down to the previous page
+ * boundary.
+ *
+ * TLB invalidation is performed for each page-table entry cleared during the
+ * unmapping operation and the reference count for the page-table page
+ * containing the cleared entry is decremented, with unreferenced pages being
+ * freed. The unmapping operation will stop early if it encounters either an
+ * invalid page-table entry or a valid block mapping which maps beyond the range
+ * being unmapped.
+ *
+ * Return: Number of bytes unmapped, which may be 0.
+ */
+u64 kvm_pgtable_hyp_unmap(struct kvm_pgtable *pgt, u64 addr, u64 size);
+
+/**
  * kvm_get_vtcr() - Helper to construct VTCR_EL2
  * @mmfr0:	Sanitized value of SYS_ID_AA64MMFR0_EL1 register.
  * @mmfr1:	Sanitized value of SYS_ID_AA64MMFR1_EL1 register.
@@ -267,11 +288,18 @@
  */
 u64 kvm_get_vtcr(u64 mmfr0, u64 mmfr1, u32 phys_shift);
 
+/*
+ * kvm_pgtable_stage2_pgd_size() - Helper to compute size of a stage-2 PGD
+ * @vtcr:	Content of the VTCR register.
+ *
+ * Return: the size (in bytes) of the stage-2 PGD
+ */
+size_t kvm_pgtable_stage2_pgd_size(u64 vtcr);
+
 /**
  * __kvm_pgtable_stage2_init() - Initialise a guest stage-2 page-table.
  * @pgt:	Uninitialised page-table structure to initialise.
- * @arch:	Arch-specific KVM structure representing the guest virtual
- *		machine.
+ * @mmu:	S2 MMU context for this S2 translation
  * @mm_ops:	Memory management callbacks.
  * @flags:	Stage-2 configuration flags.
  * @force_pte_cb: Function that returns true if page level mappings must
@@ -279,13 +307,13 @@
  *
  * Return: 0 on success, negative error code on failure.
  */
-int __kvm_pgtable_stage2_init(struct kvm_pgtable *pgt, struct kvm_arch *arch,
+int __kvm_pgtable_stage2_init(struct kvm_pgtable *pgt, struct kvm_s2_mmu *mmu,
 			      struct kvm_pgtable_mm_ops *mm_ops,
 			      enum kvm_pgtable_stage2_flags flags,
 			      kvm_pgtable_force_pte_cb_t force_pte_cb);
 
-#define kvm_pgtable_stage2_init(pgt, arch, mm_ops) \
-	__kvm_pgtable_stage2_init(pgt, arch, mm_ops, 0, NULL)
+#define kvm_pgtable_stage2_init(pgt, mmu, mm_ops) \
+	__kvm_pgtable_stage2_init(pgt, mmu, mm_ops, 0, NULL)
 
 /**
  * kvm_pgtable_stage2_destroy() - Destroy an unused guest stage-2 page-table.
@@ -329,14 +357,16 @@
 			   void *mc);
 
 /**
- * kvm_pgtable_stage2_set_owner() - Unmap and annotate pages in the IPA space to
- *				    track ownership.
+ * kvm_pgtable_stage2_annotate() - Unmap and annotate pages in the IPA space
+ *				   to track ownership (and more).
  * @pgt:	Page-table structure initialised by kvm_pgtable_stage2_init*().
  * @addr:	Base intermediate physical address to annotate.
  * @size:	Size of the annotated range.
  * @mc:		Cache of pre-allocated and zeroed memory from which to allocate
  *		page-table pages.
- * @owner_id:	Unique identifier for the owner of the page.
+ * @annotation:	A 63 bit value that will be stored in the page tables.
+ *		@annotation[0] must be 0, and @annotation[63:1] is stored
+ *		in the page tables.
  *
  * By default, all page-tables are owned by identifier 0. This function can be
  * used to mark portions of the IPA space as owned by other entities. When a
@@ -345,8 +375,8 @@
  *
  * Return: 0 on success, negative error code on failure.
  */
-int kvm_pgtable_stage2_set_owner(struct kvm_pgtable *pgt, u64 addr, u64 size,
-				 void *mc, u8 owner_id);
+int kvm_pgtable_stage2_annotate(struct kvm_pgtable *pgt, u64 addr, u64 size,
+				void *mc, kvm_pte_t annotation);
 
 /**
  * kvm_pgtable_stage2_unmap() - Remove a mapping from a guest stage-2 page-table.
diff --git a/arch/arm64/include/asm/kvm_pkvm.h b/arch/arm64/include/asm/kvm_pkvm.h
new file mode 100644
index 0000000..766811f
--- /dev/null
+++ b/arch/arm64/include/asm/kvm_pkvm.h
@@ -0,0 +1,364 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2020 - Google LLC
+ * Author: Quentin Perret <qperret@google.com>
+ * Author: Fuad Tabba <tabba@google.com>
+ */
+#ifndef __ARM64_KVM_PKVM_H__
+#define __ARM64_KVM_PKVM_H__
+
+#include <linux/arm_ffa.h>
+#include <linux/memblock.h>
+#include <linux/scatterlist.h>
+#include <asm/kvm_pgtable.h>
+#include <asm/sysreg.h>
+
+/* Maximum number of protected VMs that can be created. */
+#define KVM_MAX_PVMS 255
+
+#define HYP_MEMBLOCK_REGIONS 128
+#define PVMFW_INVALID_LOAD_ADDR	(-1)
+
+int kvm_arm_vm_ioctl_pkvm(struct kvm *kvm, struct kvm_enable_cap *cap);
+int kvm_init_pvm(struct kvm *kvm, unsigned long type);
+int create_el2_shadow(struct kvm *kvm);
+void kvm_shadow_destroy(struct kvm *kvm);
+
+/*
+ * Definitions for features to be allowed or restricted for guest virtual
+ * machines, depending on the mode KVM is running in and on the type of guest
+ * that is running.
+ *
+ * The ALLOW masks represent a bitmask of feature fields that are allowed
+ * without any restrictions as long as they are supported by the system.
+ *
+ * The RESTRICT_UNSIGNED masks, if present, represent unsigned fields for
+ * features that are restricted to support at most the specified feature.
+ *
+ * If a feature field is not present in either, than it is not supported.
+ *
+ * The approach taken for protected VMs is to allow features that are:
+ * - Needed by common Linux distributions (e.g., floating point)
+ * - Trivial to support, e.g., supporting the feature does not introduce or
+ * require tracking of additional state in KVM
+ * - Cannot be trapped or prevent the guest from using anyway
+ */
+
+/*
+ * Allow for protected VMs:
+ * - Floating-point and Advanced SIMD
+ * - Data Independent Timing
+ */
+#define PVM_ID_AA64PFR0_ALLOW (\
+	ARM64_FEATURE_MASK(ID_AA64PFR0_FP) | \
+	ARM64_FEATURE_MASK(ID_AA64PFR0_ASIMD) | \
+	ARM64_FEATURE_MASK(ID_AA64PFR0_DIT) \
+	)
+
+/*
+ * Restrict to the following *unsigned* features for protected VMs:
+ * - AArch64 guests only (no support for AArch32 guests):
+ *	AArch32 adds complexity in trap handling, emulation, condition codes,
+ *	etc...
+ * - RAS (v1)
+ *	Supported by KVM
+ */
+#define PVM_ID_AA64PFR0_RESTRICT_UNSIGNED (\
+	FIELD_PREP(ARM64_FEATURE_MASK(ID_AA64PFR0_EL0), ID_AA64PFR0_ELx_64BIT_ONLY) | \
+	FIELD_PREP(ARM64_FEATURE_MASK(ID_AA64PFR0_EL1), ID_AA64PFR0_ELx_64BIT_ONLY) | \
+	FIELD_PREP(ARM64_FEATURE_MASK(ID_AA64PFR0_EL2), ID_AA64PFR0_ELx_64BIT_ONLY) | \
+	FIELD_PREP(ARM64_FEATURE_MASK(ID_AA64PFR0_EL3), ID_AA64PFR0_ELx_64BIT_ONLY) | \
+	FIELD_PREP(ARM64_FEATURE_MASK(ID_AA64PFR0_RAS), ID_AA64PFR0_RAS_V1) \
+	)
+
+/*
+ * Allow for protected VMs:
+ * - Branch Target Identification
+ * - Speculative Store Bypassing
+ */
+#define PVM_ID_AA64PFR1_ALLOW (\
+	ARM64_FEATURE_MASK(ID_AA64PFR1_BT) | \
+	ARM64_FEATURE_MASK(ID_AA64PFR1_SSBS) \
+	)
+
+/*
+ * Allow for protected VMs:
+ * - Mixed-endian
+ * - Distinction between Secure and Non-secure Memory
+ * - Mixed-endian at EL0 only
+ * - Non-context synchronizing exception entry and exit
+ */
+#define PVM_ID_AA64MMFR0_ALLOW (\
+	ARM64_FEATURE_MASK(ID_AA64MMFR0_BIGENDEL) | \
+	ARM64_FEATURE_MASK(ID_AA64MMFR0_SNSMEM) | \
+	ARM64_FEATURE_MASK(ID_AA64MMFR0_BIGENDEL0) | \
+	ARM64_FEATURE_MASK(ID_AA64MMFR0_EXS) \
+	)
+
+/*
+ * Restrict to the following *unsigned* features for protected VMs:
+ * - 40-bit IPA
+ * - 16-bit ASID
+ */
+#define PVM_ID_AA64MMFR0_RESTRICT_UNSIGNED (\
+	FIELD_PREP(ARM64_FEATURE_MASK(ID_AA64MMFR0_PARANGE), ID_AA64MMFR0_PARANGE_40) | \
+	FIELD_PREP(ARM64_FEATURE_MASK(ID_AA64MMFR0_ASID), ID_AA64MMFR0_ASID_16) \
+	)
+
+/*
+ * Allow for protected VMs:
+ * - Hardware translation table updates to Access flag and Dirty state
+ * - Number of VMID bits from CPU
+ * - Hierarchical Permission Disables
+ * - Privileged Access Never
+ * - SError interrupt exceptions from speculative reads
+ * - Enhanced Translation Synchronization
+ */
+#define PVM_ID_AA64MMFR1_ALLOW (\
+	ARM64_FEATURE_MASK(ID_AA64MMFR1_HADBS) | \
+	ARM64_FEATURE_MASK(ID_AA64MMFR1_VMIDBITS) | \
+	ARM64_FEATURE_MASK(ID_AA64MMFR1_HPD) | \
+	ARM64_FEATURE_MASK(ID_AA64MMFR1_PAN) | \
+	ARM64_FEATURE_MASK(ID_AA64MMFR1_SPECSEI) | \
+	ARM64_FEATURE_MASK(ID_AA64MMFR1_ETS) \
+	)
+
+/*
+ * Allow for protected VMs:
+ * - Common not Private translations
+ * - User Access Override
+ * - IESB bit in the SCTLR_ELx registers
+ * - Unaligned single-copy atomicity and atomic functions
+ * - ESR_ELx.EC value on an exception by read access to feature ID space
+ * - TTL field in address operations.
+ * - Break-before-make sequences when changing translation block size
+ * - E0PDx mechanism
+ */
+#define PVM_ID_AA64MMFR2_ALLOW (\
+	ARM64_FEATURE_MASK(ID_AA64MMFR2_CNP) | \
+	ARM64_FEATURE_MASK(ID_AA64MMFR2_UAO) | \
+	ARM64_FEATURE_MASK(ID_AA64MMFR2_IESB) | \
+	ARM64_FEATURE_MASK(ID_AA64MMFR2_AT) | \
+	ARM64_FEATURE_MASK(ID_AA64MMFR2_IDS) | \
+	ARM64_FEATURE_MASK(ID_AA64MMFR2_TTL) | \
+	ARM64_FEATURE_MASK(ID_AA64MMFR2_BBM) | \
+	ARM64_FEATURE_MASK(ID_AA64MMFR2_E0PD) \
+	)
+
+/*
+ * No support for Scalable Vectors for protected VMs:
+ *	Requires additional support from KVM, e.g., context-switching and
+ *	trapping at EL2
+ */
+#define PVM_ID_AA64ZFR0_ALLOW (0ULL)
+
+/*
+ * No support for debug, including breakpoints, and watchpoints for protected
+ * VMs:
+ *	The Arm architecture mandates support for at least the Armv8 debug
+ *	architecture, which would include at least 2 hardware breakpoints and
+ *	watchpoints. Providing that support to protected guests adds
+ *	considerable state and complexity. Therefore, the reserved value of 0 is
+ *	used for debug-related fields.
+ */
+#define PVM_ID_AA64DFR0_ALLOW (0ULL)
+#define PVM_ID_AA64DFR1_ALLOW (0ULL)
+
+/*
+ * No support for implementation defined features.
+ */
+#define PVM_ID_AA64AFR0_ALLOW (0ULL)
+#define PVM_ID_AA64AFR1_ALLOW (0ULL)
+
+/*
+ * No restrictions on instructions implemented in AArch64.
+ */
+#define PVM_ID_AA64ISAR0_ALLOW (\
+	ARM64_FEATURE_MASK(ID_AA64ISAR0_AES) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR0_SHA1) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR0_SHA2) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR0_CRC32) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR0_ATOMICS) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR0_RDM) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR0_SHA3) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR0_SM3) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR0_SM4) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR0_DP) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR0_FHM) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR0_TS) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR0_TLB) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR0_RNDR) \
+	)
+
+#define PVM_ID_AA64ISAR1_ALLOW (\
+	ARM64_FEATURE_MASK(ID_AA64ISAR1_DPB) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR1_APA) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR1_API) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR1_JSCVT) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR1_FCMA) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR1_LRCPC) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR1_GPA) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR1_GPI) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR1_FRINTTS) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR1_SB) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR1_SPECRES) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR1_BF16) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR1_DGH) | \
+	ARM64_FEATURE_MASK(ID_AA64ISAR1_I8MM) \
+	)
+
+/*
+ * Returns the maximum number of breakpoints supported for protected VMs.
+ */
+static inline int pkvm_get_max_brps(void)
+{
+	int num = FIELD_GET(ARM64_FEATURE_MASK(ID_AA64DFR0_BRPS),
+			    PVM_ID_AA64DFR0_ALLOW);
+
+	/*
+	 * If breakpoints are supported, the maximum number is 1 + the field.
+	 * Otherwise, return 0, which is not compliant with the architecture,
+	 * but is reserved and is used here to indicate no debug support.
+	 */
+	return num ? num + 1 : 0;
+}
+
+/*
+ * Returns the maximum number of watchpoints supported for protected VMs.
+ */
+static inline int pkvm_get_max_wrps(void)
+{
+	int num = FIELD_GET(ARM64_FEATURE_MASK(ID_AA64DFR0_WRPS),
+			    PVM_ID_AA64DFR0_ALLOW);
+
+	return num ? num + 1 : 0;
+}
+
+extern struct memblock_region kvm_nvhe_sym(hyp_memory)[];
+extern unsigned int kvm_nvhe_sym(hyp_memblock_nr);
+
+extern phys_addr_t kvm_nvhe_sym(pvmfw_base);
+extern phys_addr_t kvm_nvhe_sym(pvmfw_size);
+
+static inline unsigned long
+hyp_vmemmap_memblock_size(struct memblock_region *reg, size_t vmemmap_entry_size)
+{
+	unsigned long nr_pages = reg->size >> PAGE_SHIFT;
+	unsigned long start, end;
+
+	start = (reg->base >> PAGE_SHIFT) * vmemmap_entry_size;
+	end = start + nr_pages * vmemmap_entry_size;
+	start = ALIGN_DOWN(start, PAGE_SIZE);
+	end = ALIGN(end, PAGE_SIZE);
+
+	return end - start;
+}
+
+static inline unsigned long hyp_vmemmap_pages(size_t vmemmap_entry_size)
+{
+	unsigned long res = 0, i;
+
+	for (i = 0; i < kvm_nvhe_sym(hyp_memblock_nr); i++) {
+		res += hyp_vmemmap_memblock_size(&kvm_nvhe_sym(hyp_memory)[i],
+						 vmemmap_entry_size);
+	}
+
+	return res >> PAGE_SHIFT;
+}
+
+static inline unsigned long hyp_shadow_table_pages(size_t shadow_entry_size)
+{
+	return PAGE_ALIGN(KVM_MAX_PVMS * shadow_entry_size) >> PAGE_SHIFT;
+}
+
+static inline unsigned long __hyp_pgtable_max_pages(unsigned long nr_pages)
+{
+	unsigned long total = 0, i;
+
+	/* Provision the worst case scenario */
+	for (i = 0; i < KVM_PGTABLE_MAX_LEVELS; i++) {
+		nr_pages = DIV_ROUND_UP(nr_pages, PTRS_PER_PTE);
+		total += nr_pages;
+	}
+
+	return total;
+}
+
+static inline unsigned long __hyp_pgtable_total_pages(void)
+{
+	unsigned long res = 0, i;
+
+	/* Cover all of memory with page-granularity */
+	for (i = 0; i < kvm_nvhe_sym(hyp_memblock_nr); i++) {
+		struct memblock_region *reg = &kvm_nvhe_sym(hyp_memory)[i];
+		res += __hyp_pgtable_max_pages(reg->size >> PAGE_SHIFT);
+	}
+
+	return res;
+}
+
+static inline unsigned long hyp_s1_pgtable_pages(void)
+{
+	unsigned long res;
+
+	res = __hyp_pgtable_total_pages();
+
+	/* Allow 1 GiB for private mappings */
+	res += __hyp_pgtable_max_pages(SZ_1G >> PAGE_SHIFT);
+
+	return res;
+}
+
+static inline unsigned long host_s2_pgtable_pages(void)
+{
+	unsigned long res;
+
+	/*
+	 * Include an extra 16 pages to safely upper-bound the worst case of
+	 * concatenated pgds.
+	 */
+	res = __hyp_pgtable_total_pages() + 16;
+
+	/* Allow 1 GiB for MMIO mappings */
+	res += __hyp_pgtable_max_pages(SZ_1G >> PAGE_SHIFT);
+
+	return res;
+}
+
+#define KVM_FFA_MBOX_NR_PAGES	1
+
+/*
+ * Maximum number of consitutents allowed in a descriptor. This number is
+ * arbitrary, see comment below on SG_MAX_SEGMENTS in hyp_ffa_proxy_pages().
+ */
+#define KVM_FFA_MAX_NR_CONSTITUENTS	4096
+
+static inline unsigned long hyp_ffa_proxy_pages(void)
+{
+	size_t desc_max;
+
+	/*
+	 * SG_MAX_SEGMENTS is supposed to bound the number of elements in an
+	 * sglist, which should match the number of consituents in the
+	 * corresponding FFA descriptor. As such, the EL2 buffer needs to be
+	 * large enough to hold a descriptor with SG_MAX_SEGMENTS consituents
+	 * at least. But the kernel's DMA code doesn't enforce the limit, and
+	 * it is sometimes abused, so let's allow larger descriptors and hope
+	 * for the best.
+	 */
+	BUILD_BUG_ON(KVM_FFA_MAX_NR_CONSTITUENTS < SG_MAX_SEGMENTS);
+
+	/*
+	 * The hypervisor FFA proxy needs enough memory to buffer a fragmented
+	 * descriptor returned from EL3 in response to a RETRIEVE_REQ call.
+	 */
+	desc_max = sizeof(struct ffa_mem_region) +
+		   sizeof(struct ffa_mem_region_attributes) +
+		   sizeof(struct ffa_composite_mem_region) +
+		   KVM_FFA_MAX_NR_CONSTITUENTS * sizeof(struct ffa_mem_region_addr_range);
+
+	/* Plus a page each for the hypervisor's RX and TX mailboxes. */
+	return (2 * KVM_FFA_MBOX_NR_PAGES) + DIV_ROUND_UP(desc_max, PAGE_SIZE);
+}
+
+#endif	/* __ARM64_KVM_PKVM_H__ */
diff --git a/arch/arm64/include/asm/kvm_s2mpu.h b/arch/arm64/include/asm/kvm_s2mpu.h
new file mode 100644
index 0000000..b1075ab
--- /dev/null
+++ b/arch/arm64/include/asm/kvm_s2mpu.h
@@ -0,0 +1,357 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (C) 2021 - Google LLC
+ * Author: David Brazdil <dbrazdil@google.com>
+ */
+
+#ifndef __ARM64_KVM_S2MPU_H__
+#define __ARM64_KVM_S2MPU_H__
+
+#include <linux/bitfield.h>
+
+#include <asm/kvm_mmu.h>
+
+#define S2MPU_MMIO_SIZE				SZ_64K
+#define SYSMMU_SYNC_MMIO_SIZE			SZ_64K
+#define SYSMMU_SYNC_S2_OFFSET			SZ_32K
+#define SYSMMU_SYNC_S2_MMIO_SIZE		(SYSMMU_SYNC_MMIO_SIZE - \
+						 SYSMMU_SYNC_S2_OFFSET)
+
+#define NR_VIDS					8
+#define NR_CTX_IDS				8
+
+#define ALL_VIDS_BITMAP				GENMASK(NR_VIDS - 1, 0)
+
+#define REG_NS_CTRL0				0x0
+#define REG_NS_CTRL1				0x4
+#define REG_NS_CFG				0x10
+#define REG_NS_INTERRUPT_ENABLE_PER_VID_SET	0x20
+#define REG_NS_INTERRUPT_CLEAR			0x2c
+#define REG_NS_VERSION				0x60
+#define REG_NS_INFO				0x64
+#define REG_NS_STATUS				0x68
+#define REG_NS_NUM_CONTEXT			0x100
+#define REG_NS_CONTEXT_CFG_VALID_VID		0x104
+#define REG_NS_ALL_INVALIDATION			0x1000
+#define REG_NS_RANGE_INVALIDATION		0x1020
+#define REG_NS_RANGE_INVALIDATION_START_PPN	0x1024
+#define REG_NS_RANGE_INVALIDATION_END_PPN	0x1028
+#define REG_NS_FAULT_STATUS			0x2000
+#define REG_NS_FAULT_PA_LOW(vid)		(0x2004 + ((vid) * 0x20))
+#define REG_NS_FAULT_PA_HIGH(vid)		(0x2008 + ((vid) * 0x20))
+#define REG_NS_FAULT_INFO(vid)			(0x2010 + ((vid) * 0x20))
+#define REG_NS_READ_MPTC			0x3000
+#define REG_NS_READ_MPTC_TAG_PPN		0x3004
+#define REG_NS_READ_MPTC_TAG_OTHERS		0x3008
+#define REG_NS_READ_MPTC_DATA			0x3010
+#define REG_NS_L1ENTRY_L2TABLE_ADDR(vid, gb)	(0x4000 + ((vid) * 0x200) + ((gb) * 0x8))
+#define REG_NS_L1ENTRY_ATTR(vid, gb)		(0x4004 + ((vid) * 0x200) + ((gb) * 0x8))
+
+#define CTRL0_ENABLE				BIT(0)
+#define CTRL0_INTERRUPT_ENABLE			BIT(1)
+#define CTRL0_FAULT_RESP_TYPE_SLVERR		BIT(2) /* for v8 */
+#define CTRL0_FAULT_RESP_TYPE_DECERR		BIT(2) /* for v9 */
+#define CTRL0_MASK				(CTRL0_ENABLE | \
+						 CTRL0_INTERRUPT_ENABLE | \
+						 CTRL0_FAULT_RESP_TYPE_SLVERR | \
+						 CTRL0_FAULT_RESP_TYPE_DECERR)
+
+#define CTRL1_DISABLE_CHK_S1L1PTW		BIT(0)
+#define CTRL1_DISABLE_CHK_S1L2PTW		BIT(1)
+#define CTRL1_ENABLE_PAGE_SIZE_AWARENESS	BIT(2)
+#define CTRL1_DISABLE_CHK_USER_MATCHED_REQ	BIT(3)
+#define CTRL1_MASK				(CTRL1_DISABLE_CHK_S1L1PTW | \
+						 CTRL1_DISABLE_CHK_S1L2PTW | \
+						 CTRL1_ENABLE_PAGE_SIZE_AWARENESS | \
+						 CTRL1_DISABLE_CHK_USER_MATCHED_REQ)
+
+#define CFG_MPTW_CACHE_OVERRIDE			BIT(0)
+#define CFG_MPTW_CACHE_VALUE			GENMASK(7, 4)
+#define CFG_MPTW_QOS_OVERRIDE			BIT(8)
+#define CFG_MPTW_QOS_VALUE			GENMASK(15, 12)
+#define CFG_MPTW_SHAREABLE			BIT(16)
+#define CFG_MASK				(CFG_MPTW_CACHE_OVERRIDE | \
+						 CFG_MPTW_CACHE_VALUE | \
+						 CFG_MPTW_QOS_OVERRIDE | \
+						 CFG_MPTW_QOS_VALUE | \
+						 CFG_MPTW_SHAREABLE)
+
+/* For use with hi_lo_readq_relaxed(). */
+#define REG_NS_FAULT_PA_HIGH_LOW(vid)		REG_NS_FAULT_PA_LOW(vid)
+
+/* Mask used for extracting VID from FAULT_* register offset. */
+#define REG_NS_FAULT_VID_MASK			GENMASK(7, 5)
+
+#define VERSION_MAJOR_ARCH_VER_MASK		GENMASK(31, 28)
+#define VERSION_MINOR_ARCH_VER_MASK		GENMASK(27, 24)
+#define VERSION_REV_ARCH_VER_MASK		GENMASK(23, 16)
+#define VERSION_RTL_VER_MASK			GENMASK(7, 0)
+
+/* Ignore RTL version in driver version check. */
+#define VERSION_CHECK_MASK			(VERSION_MAJOR_ARCH_VER_MASK | \
+						 VERSION_MINOR_ARCH_VER_MASK | \
+						 VERSION_REV_ARCH_VER_MASK)
+
+#define INFO_NUM_SET_MASK			GENMASK(15, 0)
+
+#define STATUS_BUSY				BIT(0)
+#define STATUS_ON_INVALIDATING			BIT(1)
+
+#define NUM_CONTEXT_MASK			GENMASK(3, 0)
+
+#define CONTEXT_CFG_VALID_VID_CTX_VALID(ctx)	BIT((4 * (ctx)) + 3)
+#define CONTEXT_CFG_VALID_VID_CTX_VID(ctx, vid)	\
+		FIELD_PREP(GENMASK((4 * (ctx) + 2), 4 * (ctx)), (vid))
+
+#define INVALIDATION_INVALIDATE			BIT(0)
+#define RANGE_INVALIDATION_PPN_SHIFT		12
+
+#define NR_FAULT_INFO_REGS			8
+#define FAULT_INFO_VID_MASK			GENMASK(26, 24)
+#define FAULT_INFO_TYPE_MASK			GENMASK(23, 21)
+#define FAULT_INFO_TYPE_CONTEXT			0x4 /* v9 only */
+#define FAULT_INFO_TYPE_AP			0x2
+#define FAULT_INFO_TYPE_MPTW			0x1
+#define FAULT_INFO_RW_BIT			BIT(20)
+#define FAULT_INFO_LEN_MASK			GENMASK(19, 16)
+#define FAULT_INFO_ID_MASK			GENMASK(15, 0)
+
+#define L1ENTRY_L2TABLE_ADDR_SHIFT		4
+#define L1ENTRY_L2TABLE_ADDR(pa)		((pa) >> L1ENTRY_L2TABLE_ADDR_SHIFT)
+
+#define READ_MPTC_WAY_MASK			GENMASK(18, 16)
+#define READ_MPTC_SET_MASK			GENMASK(15, 0)
+#define READ_MPTC_MASK				(READ_MPTC_WAY_MASK | READ_MPTC_SET_MASK)
+#define READ_MPTC_WAY(way)			FIELD_PREP(READ_MPTC_WAY_MASK, (way))
+#define READ_MPTC_SET(set)			FIELD_PREP(READ_MPTC_SET_MASK, (set))
+#define READ_MPTC(set, way)			(READ_MPTC_SET(set) | READ_MPTC_WAY(way))
+#define READ_MPTC_TAG_PPN_MASK			GENMASK(23, 0)
+#define READ_MPTC_TAG_OTHERS_VID_MASK		GENMASK(10, 8)
+#define READ_MPTC_TAG_OTHERS_GRAN_MASK		GENMASK(5, 4)
+#define READ_MPTC_TAG_OTHERS_VALID_BIT		BIT(0)
+#define READ_MPTC_TAG_OTHERS_MASK		(READ_MPTC_TAG_OTHERS_VID_MASK | \
+						 READ_MPTC_TAG_OTHERS_GRAN_MASK | \
+						 READ_MPTC_TAG_OTHERS_VALID_BIT)
+
+#define L1ENTRY_ATTR_L2TABLE_EN			BIT(0)
+#define L1ENTRY_ATTR_GRAN_4K			0x0
+#define L1ENTRY_ATTR_GRAN_64K			0x1
+#define L1ENTRY_ATTR_GRAN_2M			0x2
+#define L1ENTRY_ATTR_PROT_MASK			GENMASK(2, 1)
+#define L1ENTRY_ATTR_GRAN_MASK			GENMASK(5, 4)
+#define L1ENTRY_ATTR_PROT(prot)			FIELD_PREP(L1ENTRY_ATTR_PROT_MASK, prot)
+#define L1ENTRY_ATTR_GRAN(gran)			FIELD_PREP(L1ENTRY_ATTR_GRAN_MASK, gran)
+#define L1ENTRY_ATTR_1G(prot)			L1ENTRY_ATTR_PROT(prot)
+#define L1ENTRY_ATTR_L2(gran)			(L1ENTRY_ATTR_GRAN(gran) | \
+						 L1ENTRY_ATTR_L2TABLE_EN)
+
+#define NR_GIGABYTES				64
+#define RO_GIGABYTES_FIRST			4
+#define RO_GIGABYTES_LAST			33
+#define NR_RO_GIGABYTES				(RO_GIGABYTES_LAST - RO_GIGABYTES_FIRST + 1)
+#define NR_RW_GIGABYTES				(NR_GIGABYTES - NR_RO_GIGABYTES)
+
+#ifdef CONFIG_ARM64_64K_PAGES
+#define SMPT_GRAN				SZ_64K
+#define SMPT_GRAN_ATTR				L1ENTRY_ATTR_GRAN_64K
+#else
+#define SMPT_GRAN				SZ_4K
+#define SMPT_GRAN_ATTR				L1ENTRY_ATTR_GRAN_4K
+#endif
+static_assert(SMPT_GRAN <= PAGE_SIZE);
+
+#define MPT_PROT_BITS				2
+#define SMPT_WORD_SIZE				sizeof(u32)
+#define SMPT_ELEMS_PER_BYTE			(BITS_PER_BYTE / MPT_PROT_BITS)
+#define SMPT_ELEMS_PER_WORD			(SMPT_WORD_SIZE * SMPT_ELEMS_PER_BYTE)
+#define SMPT_WORD_BYTE_RANGE			(SMPT_GRAN * SMPT_ELEMS_PER_WORD)
+#define SMPT_NUM_ELEMS				(SZ_1G / SMPT_GRAN)
+#define SMPT_SIZE				(SMPT_NUM_ELEMS / SMPT_ELEMS_PER_BYTE)
+#define SMPT_NUM_WORDS				(SMPT_SIZE / SMPT_WORD_SIZE)
+#define SMPT_NUM_PAGES				(SMPT_SIZE / PAGE_SIZE)
+#define SMPT_ORDER				get_order(SMPT_SIZE)
+
+/* SysMMU_SYNC registers, relative to SYSMMU_SYNC_S2_OFFSET. */
+#define REG_NS_SYNC_CMD				0x0
+#define REG_NS_SYNC_COMP			0x4
+
+#define SYNC_CMD_SYNC				BIT(0)
+#define SYNC_COMP_COMPLETE			BIT(0)
+
+/*
+ * Iterate over S2MPU gigabyte regions. Skip those that cannot be modified
+ * (the MMIO registers are read only, with reset value MPT_PROT_NONE).
+ */
+#define for_each_gb_in_range(i, first, last) \
+	for ((i) = (first); (i) <= (last) && (i) < NR_GIGABYTES; \
+	     (i) = (((i) + 1 == RO_GIGABYTES_FIRST) ? RO_GIGABYTES_LAST : (i)) + 1)
+
+#define for_each_gb(i)			for_each_gb_in_range(i, 0, NR_GIGABYTES - 1)
+#define for_each_vid(i)			for ((i) = 0; (i) < NR_VIDS; (i)++)
+#define for_each_gb_and_vid(gb, vid)	for_each_vid((vid)) for_each_gb((gb))
+
+enum s2mpu_version {
+	S2MPU_VERSION_8 = 0x11000000,
+	S2MPU_VERSION_9 = 0x20000000,
+};
+
+enum mpt_prot {
+	MPT_PROT_NONE	= 0,
+	MPT_PROT_R	= BIT(0),
+	MPT_PROT_W	= BIT(1),
+	MPT_PROT_RW	= MPT_PROT_R | MPT_PROT_W,
+	MPT_PROT_MASK	= MPT_PROT_RW,
+};
+
+static const u64 mpt_prot_doubleword[] = {
+	[MPT_PROT_NONE] = 0x0000000000000000,
+	[MPT_PROT_R]    = 0x5555555555555555,
+	[MPT_PROT_W]	= 0xaaaaaaaaaaaaaaaa,
+	[MPT_PROT_RW]   = 0xffffffffffffffff,
+};
+
+enum mpt_update_flags {
+	MPT_UPDATE_L1 = BIT(0),
+	MPT_UPDATE_L2 = BIT(1),
+};
+
+struct fmpt {
+	u32 *smpt;
+	bool gran_1g;
+	enum mpt_prot prot;
+	enum mpt_update_flags flags;
+};
+
+struct mpt {
+	struct fmpt fmpt[NR_GIGABYTES];
+};
+
+/* Set protection bits of SMPT in a given range without using memset. */
+static inline void __set_smpt_range_slow(u32 *smpt, size_t start_gb_byte,
+					 size_t end_gb_byte, enum mpt_prot prot)
+{
+	size_t i, start_word_byte, end_word_byte, word_idx, first_elem, last_elem;
+	u32 val;
+
+	/* Iterate over u32 words. */
+	start_word_byte = start_gb_byte;
+	while (start_word_byte < end_gb_byte) {
+		/* Determine the range of bytes covered by this word. */
+		word_idx = start_word_byte / SMPT_WORD_BYTE_RANGE;
+		end_word_byte = min(
+			ALIGN(start_word_byte + 1, SMPT_WORD_BYTE_RANGE),
+			end_gb_byte);
+
+		/* Identify protection bit offsets within the word. */
+		first_elem = (start_word_byte / SMPT_GRAN) % SMPT_ELEMS_PER_WORD;
+		last_elem = ((end_word_byte - 1) / SMPT_GRAN) % SMPT_ELEMS_PER_WORD;
+
+		/* Modify the corresponding word. */
+		val = READ_ONCE(smpt[word_idx]);
+		for (i = first_elem; i <= last_elem; i++) {
+			val &= ~(MPT_PROT_MASK << (i * MPT_PROT_BITS));
+			val |= prot << (i * MPT_PROT_BITS);
+		}
+		WRITE_ONCE(smpt[word_idx], val);
+
+		start_word_byte = end_word_byte;
+	}
+}
+
+/* Set protection bits of SMPT in a given range. */
+static inline void __set_smpt_range(u32 *smpt, size_t start_gb_byte,
+				    size_t end_gb_byte, enum mpt_prot prot)
+{
+	size_t interlude_start, interlude_end, interlude_bytes, word_idx;
+	char prot_byte = (char)mpt_prot_doubleword[prot];
+
+	if (start_gb_byte >= end_gb_byte)
+		return;
+
+	/* Check if range spans at least one full u32 word. */
+	interlude_start = ALIGN(start_gb_byte, SMPT_WORD_BYTE_RANGE);
+	interlude_end = ALIGN_DOWN(end_gb_byte, SMPT_WORD_BYTE_RANGE);
+
+	/* If not, fall back to editing bits in the given range. */
+	if (interlude_start >= interlude_end) {
+		__set_smpt_range_slow(smpt, start_gb_byte, end_gb_byte, prot);
+		return;
+	}
+
+	/* Use bit-editing for prologue/epilogue, memset for interlude. */
+	word_idx = interlude_start / SMPT_WORD_BYTE_RANGE;
+	interlude_bytes = (interlude_end - interlude_start) / SMPT_GRAN / SMPT_ELEMS_PER_BYTE;
+
+	__set_smpt_range_slow(smpt, start_gb_byte, interlude_start, prot);
+	memset(&smpt[word_idx], prot_byte, interlude_bytes);
+	__set_smpt_range_slow(smpt, interlude_end, end_gb_byte, prot);
+}
+
+/* Returns true if all SMPT protection bits match 'prot'. */
+static inline bool __is_smpt_uniform(u32 *smpt, enum mpt_prot prot)
+{
+	size_t i;
+	u64 *doublewords = (u64 *)smpt;
+
+	for (i = 0; i < SMPT_NUM_WORDS / 2; i++) {
+		if (doublewords[i] != mpt_prot_doubleword[prot])
+			return false;
+	}
+	return true;
+}
+
+/*
+ * Set protection bits of FMPT/SMPT in a given range.
+ * Returns flags specifying whether L1/L2 changes need to be made visible
+ * to the device.
+ */
+static inline void __set_fmpt_range(struct fmpt *fmpt, size_t start_gb_byte,
+				    size_t end_gb_byte, enum mpt_prot prot)
+{
+	if (start_gb_byte == 0 && end_gb_byte >= SZ_1G) {
+		/* Update covers the entire GB region. */
+		if (fmpt->gran_1g && fmpt->prot == prot) {
+			fmpt->flags = 0;
+			return;
+		}
+
+		fmpt->gran_1g = true;
+		fmpt->prot = prot;
+		fmpt->flags = MPT_UPDATE_L1;
+		return;
+	}
+
+	if (fmpt->gran_1g) {
+		/* GB region currently uses 1G mapping. */
+		if (fmpt->prot == prot) {
+			fmpt->flags = 0;
+			return;
+		}
+
+		/*
+		 * Range has different mapping than the rest of the GB.
+		 * Convert to PAGE_SIZE mapping.
+		 */
+		fmpt->gran_1g = false;
+		__set_smpt_range(fmpt->smpt, 0, start_gb_byte, fmpt->prot);
+		__set_smpt_range(fmpt->smpt, start_gb_byte, end_gb_byte, prot);
+		__set_smpt_range(fmpt->smpt, end_gb_byte, SZ_1G, fmpt->prot);
+		fmpt->flags = MPT_UPDATE_L1 | MPT_UPDATE_L2;
+		return;
+	}
+
+	/* GB region currently uses PAGE_SIZE mapping. */
+	__set_smpt_range(fmpt->smpt, start_gb_byte, end_gb_byte, prot);
+
+	/* Check if the entire GB region has the same prot bits. */
+	if (!__is_smpt_uniform(fmpt->smpt, prot)) {
+		fmpt->flags = MPT_UPDATE_L2;
+		return;
+	}
+
+	fmpt->gran_1g = true;
+	fmpt->prot = prot;
+	fmpt->flags = MPT_UPDATE_L1;
+}
+
+#endif /* __ARM64_KVM_S2MPU_H__ */
diff --git a/arch/arm64/include/asm/linkage.h b/arch/arm64/include/asm/linkage.h
index 9906541..57b31b5 100644
--- a/arch/arm64/include/asm/linkage.h
+++ b/arch/arm64/include/asm/linkage.h
@@ -1,17 +1,16 @@
 #ifndef __ASM_LINKAGE_H
 #define __ASM_LINKAGE_H
 
+#ifdef __ASSEMBLY__
+#include <asm/assembler.h>
+#endif
+
 #define __ALIGN		.align 2
 #define __ALIGN_STR	".align 2"
 
 #if defined(CONFIG_ARM64_BTI_KERNEL) && defined(__aarch64__)
 
-/*
- * Since current versions of gas reject the BTI instruction unless we
- * set the architecture version to v8.5 we use the hint instruction
- * instead.
- */
-#define BTI_C hint 34 ;
+#define BTI_C bti c ;
 
 /*
  * When using in-kernel BTI we need to ensure that PCS-conformant assembly
diff --git a/arch/arm64/include/asm/lse.h b/arch/arm64/include/asm/lse.h
index 5d10051..29d0719 100644
--- a/arch/arm64/include/asm/lse.h
+++ b/arch/arm64/include/asm/lse.h
@@ -4,7 +4,7 @@
 
 #include <asm/atomic_ll_sc.h>
 
-#ifdef CONFIG_ARM64_LSE_ATOMICS
+#if defined(CONFIG_ARM64_LSE_ATOMICS) && !defined(BUILD_FIPS140_KO)
 
 #define __LSE_PREAMBLE	".arch_extension lse\n"
 
diff --git a/arch/arm64/include/asm/mem_encrypt.h b/arch/arm64/include/asm/mem_encrypt.h
new file mode 100644
index 0000000..300c8b8
--- /dev/null
+++ b/arch/arm64/include/asm/mem_encrypt.h
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_MEM_ENCRYPT_H
+#define __ASM_MEM_ENCRYPT_H
+
+bool mem_encrypt_active(void);
+int set_memory_encrypted(unsigned long addr, int numpages);
+int set_memory_decrypted(unsigned long addr, int numpages);
+
+#endif	/* __ASM_MEM_ENCRYPT_H */
diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h
index 0588632..22553aa 100644
--- a/arch/arm64/include/asm/memory.h
+++ b/arch/arm64/include/asm/memory.h
@@ -134,6 +134,7 @@
 #define MT_NORMAL_NC		2
 #define MT_DEVICE_nGnRnE	3
 #define MT_DEVICE_nGnRE		4
+#define MT_NORMAL_iNC_oWB	5
 
 /*
  * Memory types for Stage-2 translation
@@ -240,6 +241,7 @@
 #ifdef CONFIG_KASAN_HW_TAGS
 #define arch_enable_tagging_sync()		mte_enable_kernel_sync()
 #define arch_enable_tagging_async()		mte_enable_kernel_async()
+#define arch_enable_tagging_asymm()		mte_enable_kernel_asymm()
 #define arch_force_async_tag_fault()		mte_check_tfsr_exit()
 #define arch_get_random_tag()			mte_get_random_tag()
 #define arch_get_mem_tag(addr)			mte_get_mem_tag(addr)
diff --git a/arch/arm64/include/asm/mmu.h b/arch/arm64/include/asm/mmu.h
index e9c3085..48f8466 100644
--- a/arch/arm64/include/asm/mmu.h
+++ b/arch/arm64/include/asm/mmu.h
@@ -15,6 +15,7 @@
 #ifndef __ASSEMBLY__
 
 #include <linux/refcount.h>
+#include <asm/cpufeature.h>
 
 typedef struct {
 	atomic64_t	id;
diff --git a/arch/arm64/include/asm/module.lds.h b/arch/arm64/include/asm/module.lds.h
index 094701ec..a9343d2 100644
--- a/arch/arm64/include/asm/module.lds.h
+++ b/arch/arm64/include/asm/module.lds.h
@@ -3,6 +3,35 @@
 	.plt 0 : { BYTE(0) }
 	.init.plt 0 : { BYTE(0) }
 	.text.ftrace_trampoline 0 : { BYTE(0) }
+
+#ifdef CONFIG_CRYPTO_FIPS140
+	/*
+	 * The FIPS140 module incorporates copies of builtin code, which gets
+	 * integrity checked at module load time, and registered in a way that
+	 * ensures that the integrity checked versions supersede the builtin
+	 * ones.  These objects are compiled as builtin code, and so their init
+	 * hooks will be exported from the binary in the same way as builtin
+	 * initcalls are, i.e., annotated with a level that defines the order
+	 * in which the hooks are expected to be invoked.
+	 */
+#define INIT_CALLS_LEVEL(level)						\
+		KEEP(*(.initcall##level##.init*))			\
+		KEEP(*(.initcall##level##s.init*))
+
+	.initcalls : {
+		*(.initcalls._start)
+		INIT_CALLS_LEVEL(0)
+		INIT_CALLS_LEVEL(1)
+		INIT_CALLS_LEVEL(2)
+		INIT_CALLS_LEVEL(3)
+		INIT_CALLS_LEVEL(4)
+		INIT_CALLS_LEVEL(5)
+		INIT_CALLS_LEVEL(rootfs)
+		INIT_CALLS_LEVEL(6)
+		INIT_CALLS_LEVEL(7)
+		*(.initcalls._end)
+	}
+#endif
 #endif
 
 #ifdef CONFIG_KASAN_SW_TAGS
diff --git a/arch/arm64/include/asm/mte-def.h b/arch/arm64/include/asm/mte-def.h
index 626d359..14ee86b 100644
--- a/arch/arm64/include/asm/mte-def.h
+++ b/arch/arm64/include/asm/mte-def.h
@@ -11,6 +11,7 @@
 #define MTE_TAG_SHIFT		56
 #define MTE_TAG_SIZE		4
 #define MTE_TAG_MASK		GENMASK((MTE_TAG_SHIFT + (MTE_TAG_SIZE - 1)), MTE_TAG_SHIFT)
+#define MTE_PAGE_TAG_STORAGE	(MTE_GRANULES_PER_PAGE * MTE_TAG_SIZE / 8)
 
 #define __MTE_PREAMBLE		ARM64_ASM_PREAMBLE ".arch_extension memtag\n"
 
diff --git a/arch/arm64/include/asm/mte-kasan.h b/arch/arm64/include/asm/mte-kasan.h
index 592aabb..9f79425 100644
--- a/arch/arm64/include/asm/mte-kasan.h
+++ b/arch/arm64/include/asm/mte-kasan.h
@@ -6,6 +6,7 @@
 #define __ASM_MTE_KASAN_H
 
 #include <asm/compiler.h>
+#include <asm/cputype.h>
 #include <asm/mte-def.h>
 
 #ifndef __ASSEMBLY__
@@ -133,6 +134,7 @@
 
 void mte_enable_kernel_sync(void);
 void mte_enable_kernel_async(void);
+void mte_enable_kernel_asymm(void);
 
 #else /* CONFIG_ARM64_MTE */
 
@@ -164,6 +166,10 @@
 {
 }
 
+static inline void mte_enable_kernel_asymm(void)
+{
+}
+
 #endif /* CONFIG_ARM64_MTE */
 
 #endif /* __ASSEMBLY__ */
diff --git a/arch/arm64/include/asm/mte.h b/arch/arm64/include/asm/mte.h
index 3e368ca..ef7c6f8 100644
--- a/arch/arm64/include/asm/mte.h
+++ b/arch/arm64/include/asm/mte.h
@@ -93,11 +93,11 @@
 
 #ifdef CONFIG_KASAN_HW_TAGS
 /* Whether the MTE asynchronous mode is enabled. */
-DECLARE_STATIC_KEY_FALSE(mte_async_mode);
+DECLARE_STATIC_KEY_FALSE(mte_async_or_asymm_mode);
 
-static inline bool system_uses_mte_async_mode(void)
+static inline bool system_uses_mte_async_or_asymm_mode(void)
 {
-	return static_branch_unlikely(&mte_async_mode);
+	return static_branch_unlikely(&mte_async_or_asymm_mode);
 }
 
 void mte_check_tfsr_el1(void);
@@ -126,7 +126,7 @@
 	mte_check_tfsr_el1();
 }
 #else
-static inline bool system_uses_mte_async_mode(void)
+static inline bool system_uses_mte_async_or_asymm_mode(void)
 {
 	return false;
 }
diff --git a/arch/arm64/include/asm/percpu.h b/arch/arm64/include/asm/percpu.h
index 8f16616..b9ba19d 100644
--- a/arch/arm64/include/asm/percpu.h
+++ b/arch/arm64/include/asm/percpu.h
@@ -10,6 +10,7 @@
 #include <asm/alternative.h>
 #include <asm/cmpxchg.h>
 #include <asm/stack_pointer.h>
+#include <asm/sysreg.h>
 
 static inline void set_my_cpu_offset(unsigned long off)
 {
diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
index ed57717..d1b19ea 100644
--- a/arch/arm64/include/asm/pgtable.h
+++ b/arch/arm64/include/asm/pgtable.h
@@ -524,6 +524,15 @@
 	__pgprot_modify(prot, PTE_ATTRINDX_MASK, \
 			PTE_ATTRINDX(MT_NORMAL_NC) | PTE_PXN | PTE_UXN)
 
+/*
+ * Mark the prot value as outer cacheable and inner non-cacheable. Non-coherent
+ * devices on a system with support for a system or last level cache use these
+ * attributes to cache allocations in the system cache.
+ */
+#define pgprot_syscached(prot) \
+	__pgprot_modify(prot, PTE_ATTRINDX_MASK, \
+			PTE_ATTRINDX(MT_NORMAL_iNC_oWB) | PTE_PXN | PTE_UXN)
+
 #define __HAVE_PHYS_MEM_ACCESS_PROT
 struct file;
 extern pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
@@ -999,23 +1008,13 @@
  * page after fork() + CoW for pfn mappings. We don't always have a
  * hardware-managed access flag on arm64.
  */
-static inline bool arch_faults_on_old_pte(void)
-{
-	WARN_ON(preemptible());
-
-	return !cpu_has_hw_af();
-}
-#define arch_faults_on_old_pte		arch_faults_on_old_pte
+#define arch_has_hw_pte_young		cpu_has_hw_af
 
 /*
  * Experimentally, it's cheap to set the access flag in hardware and we
  * benefit from prefaulting mappings as 'old' to start with.
  */
-static inline bool arch_wants_old_prefaulted_pte(void)
-{
-	return !arch_faults_on_old_pte();
-}
-#define arch_wants_old_prefaulted_pte	arch_wants_old_prefaulted_pte
+#define arch_wants_old_prefaulted_pte	cpu_has_hw_af
 
 #endif /* !__ASSEMBLY__ */
 
diff --git a/arch/arm64/include/asm/processor.h b/arch/arm64/include/asm/processor.h
index 7364530..7c22302 100644
--- a/arch/arm64/include/asm/processor.h
+++ b/arch/arm64/include/asm/processor.h
@@ -21,6 +21,7 @@
 
 #define MTE_CTRL_TCF_SYNC		(1UL << 16)
 #define MTE_CTRL_TCF_ASYNC		(1UL << 17)
+#define MTE_CTRL_TCF_ASYMM		(1UL << 18)
 
 #ifndef __ASSEMBLY__
 
@@ -30,6 +31,7 @@
 #include <linux/stddef.h>
 #include <linux/string.h>
 #include <linux/thread_info.h>
+#include <linux/android_vendor.h>
 
 #include <vdso/processor.h>
 
@@ -145,6 +147,8 @@
 		struct user_fpsimd_state fpsimd_state;
 	} uw;
 
+	ANDROID_VENDOR_DATA(1);
+
 	unsigned int		fpsimd_cpu;
 	void			*sve_state;	/* SVE registers, if any */
 	unsigned int		sve_vl;		/* SVE vector length */
diff --git a/arch/arm64/include/asm/sections.h b/arch/arm64/include/asm/sections.h
index 552891e..6b2ce1e 100644
--- a/arch/arm64/include/asm/sections.h
+++ b/arch/arm64/include/asm/sections.h
@@ -11,6 +11,7 @@
 extern char __hibernate_exit_text_start[], __hibernate_exit_text_end[];
 extern char __hyp_idmap_text_start[], __hyp_idmap_text_end[];
 extern char __hyp_text_start[], __hyp_text_end[];
+extern char __hyp_data_start[], __hyp_data_end[];
 extern char __hyp_rodata_start[], __hyp_rodata_end[];
 extern char __hyp_reloc_begin[], __hyp_reloc_end[];
 extern char __hyp_bss_start[], __hyp_bss_end[];
diff --git a/arch/arm64/include/asm/simd.h b/arch/arm64/include/asm/simd.h
index 6a75d7e..543fa59 100644
--- a/arch/arm64/include/asm/simd.h
+++ b/arch/arm64/include/asm/simd.h
@@ -35,9 +35,7 @@
 	 * migrated, and if it's clear we cannot be migrated to a CPU
 	 * where it is set.
 	 */
-	return !WARN_ON(!system_capabilities_finalized()) &&
-	       system_supports_fpsimd() &&
-	       !in_hardirq() && !irqs_disabled() && !in_nmi() &&
+	return !in_hardirq() && !irqs_disabled() && !in_nmi() &&
 	       !this_cpu_read(fpsimd_context_busy);
 }
 
diff --git a/arch/arm64/include/asm/smp.h b/arch/arm64/include/asm/smp.h
index fc55f5a..b936377 100644
--- a/arch/arm64/include/asm/smp.h
+++ b/arch/arm64/include/asm/smp.h
@@ -87,6 +87,8 @@
 
 extern void arch_send_call_function_single_ipi(int cpu);
 extern void arch_send_call_function_ipi_mask(const struct cpumask *mask);
+extern int nr_ipi_get(void);
+extern struct irq_desc **ipi_desc_get(void);
 
 #ifdef CONFIG_ARM64_ACPI_PARKING_PROTOCOL
 extern void arch_send_wakeup_ipi_mask(const struct cpumask *mask);
diff --git a/arch/arm64/include/asm/sysreg.h b/arch/arm64/include/asm/sysreg.h
index 543eb08..eb88d36 100644
--- a/arch/arm64/include/asm/sysreg.h
+++ b/arch/arm64/include/asm/sysreg.h
@@ -404,7 +404,10 @@
 #define SYS_LOREA_EL1			sys_reg(3, 0, 10, 4, 1)
 #define SYS_LORN_EL1			sys_reg(3, 0, 10, 4, 2)
 #define SYS_LORC_EL1			sys_reg(3, 0, 10, 4, 3)
+#define SYS_MPAMIDR_EL1			sys_reg(3, 0, 10, 4, 4)
 #define SYS_LORID_EL1			sys_reg(3, 0, 10, 4, 7)
+#define SYS_MPAM1_EL1			sys_reg(3, 0, 10, 5, 0)
+#define SYS_MPAM0_EL1			sys_reg(3, 0, 10, 5, 1)
 
 #define SYS_VBAR_EL1			sys_reg(3, 0, 12, 0, 0)
 #define SYS_DISR_EL1			sys_reg(3, 0, 12, 1, 1)
@@ -552,6 +555,10 @@
 #define SYS_TFSR_EL2			sys_reg(3, 4, 5, 6, 0)
 #define SYS_FAR_EL2			sys_reg(3, 4, 6, 0, 0)
 
+#define SYS_MPAMHCR_EL2			sys_reg(3, 4, 10, 4, 0)
+#define SYS_MPAMVPMV_EL2		sys_reg(3, 4, 10, 4, 1)
+#define SYS_MPAM2_EL2			sys_reg(3, 4, 10, 5, 0)
+
 #define SYS_VDISR_EL2			sys_reg(3, 4, 12, 1,  1)
 #define __SYS__AP0Rx_EL2(x)		sys_reg(3, 4, 12, 8, x)
 #define SYS_ICH_AP0R0_EL2		__SYS__AP0Rx_EL2(0)
@@ -628,6 +635,7 @@
 #define SCTLR_ELx_TCF_NONE	(UL(0x0) << SCTLR_ELx_TCF_SHIFT)
 #define SCTLR_ELx_TCF_SYNC	(UL(0x1) << SCTLR_ELx_TCF_SHIFT)
 #define SCTLR_ELx_TCF_ASYNC	(UL(0x2) << SCTLR_ELx_TCF_SHIFT)
+#define SCTLR_ELx_TCF_ASYMM	(UL(0x3) << SCTLR_ELx_TCF_SHIFT)
 #define SCTLR_ELx_TCF_MASK	(UL(0x3) << SCTLR_ELx_TCF_SHIFT)
 
 #define SCTLR_ELx_ENIA_SHIFT	31
@@ -673,6 +681,7 @@
 #define SCTLR_EL1_TCF0_NONE	(UL(0x0) << SCTLR_EL1_TCF0_SHIFT)
 #define SCTLR_EL1_TCF0_SYNC	(UL(0x1) << SCTLR_EL1_TCF0_SHIFT)
 #define SCTLR_EL1_TCF0_ASYNC	(UL(0x2) << SCTLR_EL1_TCF0_SHIFT)
+#define SCTLR_EL1_TCF0_ASYMM	(UL(0x3) << SCTLR_EL1_TCF0_SHIFT)
 #define SCTLR_EL1_TCF0_MASK	(UL(0x3) << SCTLR_EL1_TCF0_SHIFT)
 
 #define SCTLR_EL1_BT1		(BIT(36))
@@ -715,6 +724,7 @@
 #define MAIR_ATTR_NORMAL_TAGGED		UL(0xf0)
 #define MAIR_ATTR_NORMAL		UL(0xff)
 #define MAIR_ATTR_MASK			UL(0xff)
+#define MAIR_ATTR_NORMAL_iNC_oWB	UL(0xf4)
 
 /* Position the attr at the correct index */
 #define MAIR_ATTRIDX(attr, idx)		((attr) << ((idx) * 8))
@@ -829,6 +839,7 @@
 #define ID_AA64PFR1_MTE_NI		0x0
 #define ID_AA64PFR1_MTE_EL0		0x1
 #define ID_AA64PFR1_MTE			0x2
+#define ID_AA64PFR1_MTE_ASYMM		0x3
 
 /* id_aa64zfr0 */
 #define ID_AA64ZFR0_F64MM_SHIFT		56
@@ -953,6 +964,7 @@
 #define ID_AA64DFR0_PMUVER_8_1		0x4
 #define ID_AA64DFR0_PMUVER_8_4		0x5
 #define ID_AA64DFR0_PMUVER_8_5		0x6
+#define ID_AA64DFR0_PMUVER_8_7		0x7
 #define ID_AA64DFR0_PMUVER_IMP_DEF	0xf
 
 #define ID_AA64DFR0_PMSVER_8_2		0x1
@@ -1172,6 +1184,7 @@
 #define ICH_HCR_TC		(1 << 10)
 #define ICH_HCR_TALL0		(1 << 11)
 #define ICH_HCR_TALL1		(1 << 12)
+#define ICH_HCR_TDIR		(1 << 14)
 #define ICH_HCR_EOIcount_SHIFT	27
 #define ICH_HCR_EOIcount_MASK	(0x1f << ICH_HCR_EOIcount_SHIFT)
 
@@ -1204,6 +1217,8 @@
 #define ICH_VTR_SEIS_MASK	(1 << ICH_VTR_SEIS_SHIFT)
 #define ICH_VTR_A3V_SHIFT	21
 #define ICH_VTR_A3V_MASK	(1 << ICH_VTR_A3V_SHIFT)
+#define ICH_VTR_TDS_SHIFT	19
+#define ICH_VTR_TDS_MASK	(1 << ICH_VTR_TDS_SHIFT)
 
 #define ARM64_FEATURE_FIELD_BITS	4
 
diff --git a/arch/arm64/include/asm/system_misc.h b/arch/arm64/include/asm/system_misc.h
index 0eb7709..305a715 100644
--- a/arch/arm64/include/asm/system_misc.h
+++ b/arch/arm64/include/asm/system_misc.h
@@ -23,9 +23,9 @@
 struct siginfo;
 void arm64_notify_die(const char *str, struct pt_regs *regs,
 		      int signo, int sicode, unsigned long far,
-		      unsigned long err);
+		      int err);
 
-void hook_debug_fault_code(int nr, int (*fn)(unsigned long, unsigned long,
+void hook_debug_fault_code(int nr, int (*fn)(unsigned long, unsigned int,
 					     struct pt_regs *),
 			   int sig, int code, const char *name);
 
diff --git a/arch/arm64/include/asm/traps.h b/arch/arm64/include/asm/traps.h
index 6e58264..54f32a0 100644
--- a/arch/arm64/include/asm/traps.h
+++ b/arch/arm64/include/asm/traps.h
@@ -24,7 +24,7 @@
 
 void register_undef_hook(struct undef_hook *hook);
 void unregister_undef_hook(struct undef_hook *hook);
-void force_signal_inject(int signal, int code, unsigned long address, unsigned long err);
+void force_signal_inject(int signal, int code, unsigned long address, unsigned int err);
 void arm64_notify_segfault(unsigned long addr);
 void arm64_force_sig_fault(int signo, int code, unsigned long far, const char *str);
 void arm64_force_sig_mceerr(int code, unsigned long far, short lsb, const char *str);
@@ -57,7 +57,7 @@
  * errors share the same encoding as an all-zeros encoding from a CPU that
  * doesn't support RAS.
  */
-static inline bool arm64_is_ras_serror(unsigned long esr)
+static inline bool arm64_is_ras_serror(u32 esr)
 {
 	WARN_ON(preemptible());
 
@@ -77,9 +77,9 @@
  * We treat them as Uncontainable.
  * Non-RAS SError's are reported as Uncontained/Uncategorized.
  */
-static inline unsigned long arm64_ras_serror_get_severity(unsigned long esr)
+static inline u32 arm64_ras_serror_get_severity(u32 esr)
 {
-	unsigned long aet = esr & ESR_ELx_AET;
+	u32 aet = esr & ESR_ELx_AET;
 
 	if (!arm64_is_ras_serror(esr)) {
 		/* Not a RAS error, we can't interpret the ESR. */
@@ -98,6 +98,6 @@
 	return aet;
 }
 
-bool arm64_is_fatal_ras_serror(struct pt_regs *regs, unsigned long esr);
-void __noreturn arm64_serror_panic(struct pt_regs *regs, unsigned long esr);
+bool arm64_is_fatal_ras_serror(struct pt_regs *regs, unsigned int esr);
+void __noreturn arm64_serror_panic(struct pt_regs *regs, u32 esr);
 #endif
diff --git a/arch/arm64/include/asm/uaccess.h b/arch/arm64/include/asm/uaccess.h
index 0fd6056..3036f2a 100644
--- a/arch/arm64/include/asm/uaccess.h
+++ b/arch/arm64/include/asm/uaccess.h
@@ -196,13 +196,13 @@
  */
 static inline void __uaccess_disable_tco_async(void)
 {
-	if (system_uses_mte_async_mode())
+	if (system_uses_mte_async_or_asymm_mode())
 		 __uaccess_disable_tco();
 }
 
 static inline void __uaccess_enable_tco_async(void)
 {
-	if (system_uses_mte_async_mode())
+	if (system_uses_mte_async_or_asymm_mode())
 		__uaccess_enable_tco();
 }
 
diff --git a/arch/arm64/include/asm/virt.h b/arch/arm64/include/asm/virt.h
index 7379f35..8bc48de 100644
--- a/arch/arm64/include/asm/virt.h
+++ b/arch/arm64/include/asm/virt.h
@@ -72,6 +72,12 @@
 
 DECLARE_STATIC_KEY_FALSE(kvm_protected_mode_initialized);
 
+static inline bool is_pkvm_initialized(void)
+{
+	return IS_ENABLED(CONFIG_KVM) &&
+	       static_branch_likely(&kvm_protected_mode_initialized);
+}
+
 /* Reports the availability of HYP mode */
 static inline bool is_hyp_mode_available(void)
 {
@@ -79,8 +85,7 @@
 	 * If KVM protected mode is initialized, all CPUs must have been booted
 	 * in EL2. Avoid checking __boot_cpu_mode as CPUs now come up in EL1.
 	 */
-	if (IS_ENABLED(CONFIG_KVM) &&
-	    static_branch_likely(&kvm_protected_mode_initialized))
+	if (is_pkvm_initialized())
 		return true;
 
 	return (__boot_cpu_mode[0] == BOOT_CPU_MODE_EL2 &&
@@ -94,8 +99,7 @@
 	 * If KVM protected mode is initialized, all CPUs must have been booted
 	 * in EL2. Avoid checking __boot_cpu_mode as CPUs now come up in EL1.
 	 */
-	if (IS_ENABLED(CONFIG_KVM) &&
-	    static_branch_likely(&kvm_protected_mode_initialized))
+	if (is_pkvm_initialized())
 		return false;
 
 	return __boot_cpu_mode[0] != __boot_cpu_mode[1];
@@ -111,6 +115,9 @@
 	/*
 	 * Code only run in VHE/NVHE hyp context can assume VHE is present or
 	 * absent. Otherwise fall back to caps.
+	 * This allows the compiler to discard VHE-specific code from the
+	 * nVHE object, reducing the number of external symbol references
+	 * needed to link.
 	 */
 	if (is_vhe_hyp_code())
 		return true;
diff --git a/arch/arm64/include/asm/vmalloc.h b/arch/arm64/include/asm/vmalloc.h
index 7a22aee..1ed0aac 100644
--- a/arch/arm64/include/asm/vmalloc.h
+++ b/arch/arm64/include/asm/vmalloc.h
@@ -2,6 +2,7 @@
 #define _ASM_ARM64_VMALLOC_H
 
 #include <asm/page.h>
+#include <asm/pgtable.h>
 
 #ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
 
@@ -25,4 +26,10 @@
 
 #endif
 
+#define arch_vmap_pgprot_tagged arch_vmap_pgprot_tagged
+static inline pgprot_t arch_vmap_pgprot_tagged(pgprot_t prot)
+{
+	return pgprot_tagged(prot);
+}
+
 #endif /* _ASM_ARM64_VMALLOC_H */
diff --git a/arch/arm64/include/asm/vmap_stack.h b/arch/arm64/include/asm/vmap_stack.h
index 894e031..2087309 100644
--- a/arch/arm64/include/asm/vmap_stack.h
+++ b/arch/arm64/include/asm/vmap_stack.h
@@ -17,10 +17,13 @@
  */
 static inline unsigned long *arch_alloc_vmap_stack(size_t stack_size, int node)
 {
+	void *p;
+
 	BUILD_BUG_ON(!IS_ENABLED(CONFIG_VMAP_STACK));
 
-	return __vmalloc_node(stack_size, THREAD_ALIGN, THREADINFO_GFP, node,
+	p = __vmalloc_node(stack_size, THREAD_ALIGN, THREADINFO_GFP, node,
 			__builtin_return_address(0));
+	return kasan_reset_tag(p);
 }
 
 #endif /* __ASM_VMAP_STACK_H */
diff --git a/arch/arm64/include/uapi/asm/hwcap.h b/arch/arm64/include/uapi/asm/hwcap.h
index f037318..99cb5d3 100644
--- a/arch/arm64/include/uapi/asm/hwcap.h
+++ b/arch/arm64/include/uapi/asm/hwcap.h
@@ -78,5 +78,6 @@
 #define HWCAP2_ECV		(1 << 19)
 #define HWCAP2_AFP		(1 << 20)
 #define HWCAP2_RPRES		(1 << 21)
+#define HWCAP2_MTE3		(1 << 22)
 
 #endif /* _UAPI__ASM_HWCAP_H */
diff --git a/arch/arm64/include/uapi/asm/kvm.h b/arch/arm64/include/uapi/asm/kvm.h
index 323e251..0c93ab4 100644
--- a/arch/arm64/include/uapi/asm/kvm.h
+++ b/arch/arm64/include/uapi/asm/kvm.h
@@ -418,6 +418,22 @@
 #define KVM_PSCI_RET_INVAL		PSCI_RET_INVALID_PARAMS
 #define KVM_PSCI_RET_DENIED		PSCI_RET_DENIED
 
+/* arm64-specific kvm_run::system_event flags */
+/*
+ * Reset caused by a PSCI v1.1 SYSTEM_RESET2 call.
+ * Valid only when the system event has a type of KVM_SYSTEM_EVENT_RESET.
+ */
+#define KVM_SYSTEM_EVENT_RESET_FLAG_PSCI_RESET2	(1ULL << 0)
+
+/* Protected KVM */
+#define KVM_CAP_ARM_PROTECTED_VM_FLAGS_SET_FW_IPA	0
+#define KVM_CAP_ARM_PROTECTED_VM_FLAGS_INFO		1
+
+struct kvm_protected_vm_info {
+	__u64 firmware_size;
+	__u64 __reserved[7];
+};
+
 #endif
 
 #endif /* __ARM_KVM_H__ */
diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile
index 749e314..fa1ddd4 100644
--- a/arch/arm64/kernel/Makefile
+++ b/arch/arm64/kernel/Makefile
@@ -8,6 +8,7 @@
 CFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE)
 CFLAGS_REMOVE_insn.o = $(CC_FLAGS_FTRACE)
 CFLAGS_REMOVE_return_address.o = $(CC_FLAGS_FTRACE)
+CFLAGS_io.o := -D__DISABLE_TRACE_MMIO__
 
 # Remove stack protector to avoid triggering unneeded stack canary
 # checks due to randomize_kstack_offset.
@@ -61,6 +62,7 @@
 obj-$(CONFIG_PARAVIRT)			+= paravirt.o
 obj-$(CONFIG_RANDOMIZE_BASE)		+= kaslr.o
 obj-$(CONFIG_HIBERNATION)		+= hibernate.o hibernate-asm.o
+obj-$(CONFIG_ELF_CORE)			+= elfcore.o
 obj-$(CONFIG_KEXEC_CORE)		+= machine_kexec.o relocate_kernel.o	\
 					   cpu-reset.o
 obj-$(CONFIG_KEXEC_FILE)		+= machine_kexec_file.o kexec_image.o
diff --git a/arch/arm64/kernel/asm-offsets.c b/arch/arm64/kernel/asm-offsets.c
index 551427a..4945900 100644
--- a/arch/arm64/kernel/asm-offsets.c
+++ b/arch/arm64/kernel/asm-offsets.c
@@ -110,7 +110,6 @@
 #ifdef CONFIG_KVM
   DEFINE(VCPU_CONTEXT,		offsetof(struct kvm_vcpu, arch.ctxt));
   DEFINE(VCPU_FAULT_DISR,	offsetof(struct kvm_vcpu, arch.fault.disr_el1));
-  DEFINE(VCPU_WORKAROUND_FLAGS,	offsetof(struct kvm_vcpu, arch.workaround_flags));
   DEFINE(VCPU_HCR_EL2,		offsetof(struct kvm_vcpu, arch.hcr_el2));
   DEFINE(CPU_USER_PT_REGS,	offsetof(struct kvm_cpu_context, regs));
   DEFINE(CPU_RGSR_EL1,		offsetof(struct kvm_cpu_context, sys_regs[RGSR_EL1]));
diff --git a/arch/arm64/kernel/cpu_errata.c b/arch/arm64/kernel/cpu_errata.c
index bf69a20..1685d17 100644
--- a/arch/arm64/kernel/cpu_errata.c
+++ b/arch/arm64/kernel/cpu_errata.c
@@ -98,10 +98,6 @@
 	    (arm64_ftr_reg_ctrel0.sys_val & mask))
 		enable_uct_trap = true;
 
-	/* ... or if the system is affected by an erratum */
-	if (cap->capability == ARM64_WORKAROUND_1542419)
-		enable_uct_trap = true;
-
 	if (enable_uct_trap)
 		sysreg_clear_set(sctlr_el1, SCTLR_EL1_UCT, 0);
 }
@@ -182,18 +178,6 @@
 	return false;
 }
 
-static bool __maybe_unused
-has_neoverse_n1_erratum_1542419(const struct arm64_cpu_capabilities *entry,
-				int scope)
-{
-	u32 midr = read_cpuid_id();
-	bool has_dic = read_cpuid_cachetype() & BIT(CTR_DIC_SHIFT);
-	const struct midr_range range = MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N1);
-
-	WARN_ON(scope != SCOPE_LOCAL_CPU || preemptible());
-	return is_midr_in_range(midr, &range) && has_dic;
-}
-
 #ifdef CONFIG_ARM64_WORKAROUND_REPEAT_TLBI
 static const struct arm64_cpu_capabilities arm64_repeat_tlbi_list[] = {
 #ifdef CONFIG_QCOM_FALKOR_ERRATUM_1009
@@ -229,28 +213,6 @@
 };
 #endif
 
-#ifdef CONFIG_CAVIUM_ERRATUM_27456
-const struct midr_range cavium_erratum_27456_cpus[] = {
-	/* Cavium ThunderX, T88 pass 1.x - 2.1 */
-	MIDR_RANGE(MIDR_THUNDERX, 0, 0, 1, 1),
-	/* Cavium ThunderX, T81 pass 1.0 */
-	MIDR_REV(MIDR_THUNDERX_81XX, 0, 0),
-	{},
-};
-#endif
-
-#ifdef CONFIG_CAVIUM_ERRATUM_30115
-static const struct midr_range cavium_erratum_30115_cpus[] = {
-	/* Cavium ThunderX, T88 pass 1.x - 2.2 */
-	MIDR_RANGE(MIDR_THUNDERX, 0, 0, 1, 2),
-	/* Cavium ThunderX, T81 pass 1.0 - 1.2 */
-	MIDR_REV_RANGE(MIDR_THUNDERX_81XX, 0, 0, 2),
-	/* Cavium ThunderX, T83 pass 1.0 */
-	MIDR_REV(MIDR_THUNDERX_83XX, 0, 0),
-	{},
-};
-#endif
-
 #ifdef CONFIG_QCOM_FALKOR_ERRATUM_1003
 static const struct arm64_cpu_capabilities qcom_erratum_1003_list[] = {
 	{
@@ -355,14 +317,6 @@
 };
 #endif
 
-#ifdef CONFIG_ARM64_ERRATUM_1742098
-static struct midr_range broken_aarch32_aes[] = {
-	MIDR_RANGE(MIDR_CORTEX_A57, 0, 1, 0xf, 0xf),
-	MIDR_ALL_VERSIONS(MIDR_CORTEX_A72),
-	{},
-};
-#endif
-
 #ifdef CONFIG_ARM64_WORKAROUND_TRBE_OVERWRITE_FILL_MODE
 static const struct midr_range trbe_overwrite_fill_mode_cpus[] = {
 #ifdef CONFIG_ARM64_ERRATUM_2139208
@@ -452,20 +406,6 @@
 		ERRATA_MIDR_REV_RANGE(MIDR_THUNDERX, 0, 0, 1),
 	},
 #endif
-#ifdef CONFIG_CAVIUM_ERRATUM_27456
-	{
-		.desc = "Cavium erratum 27456",
-		.capability = ARM64_WORKAROUND_CAVIUM_27456,
-		ERRATA_MIDR_RANGE_LIST(cavium_erratum_27456_cpus),
-	},
-#endif
-#ifdef CONFIG_CAVIUM_ERRATUM_30115
-	{
-		.desc = "Cavium erratum 30115",
-		.capability = ARM64_WORKAROUND_CAVIUM_30115,
-		ERRATA_MIDR_RANGE_LIST(cavium_erratum_30115_cpus),
-	},
-#endif
 	{
 		.desc = "Mismatched cache type (CTR_EL0)",
 		.capability = ARM64_MISMATCHED_CACHE_TYPE,
@@ -559,29 +499,6 @@
 		.midr_range_list = erratum_1463225,
 	},
 #endif
-#ifdef CONFIG_CAVIUM_TX2_ERRATUM_219
-	{
-		.desc = "Cavium ThunderX2 erratum 219 (KVM guest sysreg trapping)",
-		.capability = ARM64_WORKAROUND_CAVIUM_TX2_219_TVM,
-		ERRATA_MIDR_RANGE_LIST(tx2_family_cpus),
-		.matches = needs_tx2_tvm_workaround,
-	},
-	{
-		.desc = "Cavium ThunderX2 erratum 219 (PRFM removal)",
-		.capability = ARM64_WORKAROUND_CAVIUM_TX2_219_PRFM,
-		ERRATA_MIDR_RANGE_LIST(tx2_family_cpus),
-	},
-#endif
-#ifdef CONFIG_ARM64_ERRATUM_1542419
-	{
-		/* we depend on the firmware portion for correctness */
-		.desc = "ARM erratum 1542419 (kernel portion)",
-		.capability = ARM64_WORKAROUND_1542419,
-		.type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
-		.matches = has_neoverse_n1_erratum_1542419,
-		.cpu_enable = cpu_enable_trap_ctr_access,
-	},
-#endif
 #ifdef CONFIG_ARM64_ERRATUM_1508412
 	{
 		/* we depend on the firmware portion for correctness */
@@ -600,24 +517,6 @@
 		ERRATA_MIDR_ALL_VERSIONS(MIDR_NVIDIA_CARMEL),
 	},
 #endif
-
-#ifdef CONFIG_ARM64_ERRATUM_2457168
-	{
-		.desc = "ARM erratum 2457168",
-		.capability = ARM64_WORKAROUND_2457168,
-		.type = ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE,
-		/* Cortex-A510 r0p0-r1p1 */
-		CAP_MIDR_RANGE(MIDR_CORTEX_A510, 0, 0, 1, 1)
-	},
-#endif
-#ifdef CONFIG_ARM64_ERRATUM_1742098
-	{
-		.desc = "ARM erratum 1742098",
-		.capability = ARM64_WORKAROUND_1742098,
-		CAP_MIDR_RANGE_LIST(broken_aarch32_aes),
-		.type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
-	},
-#endif
 #ifdef CONFIG_ARM64_WORKAROUND_TRBE_OVERWRITE_FILL_MODE
 	{
 		/*
@@ -646,6 +545,15 @@
 		CAP_MIDR_RANGE_LIST(trbe_write_out_of_range_cpus),
 	},
 #endif
+#ifdef CONFIG_ARM64_ERRATUM_2457168
+	{
+		.desc = "ARM erratum 2457168",
+		.capability = ARM64_WORKAROUND_2457168,
+		.type = ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE,
+		/* Cortex-A510 r0p0-r1p1 */
+		CAP_MIDR_RANGE(MIDR_CORTEX_A510, 0, 0, 1, 1)
+	},
+#endif
 	{
 	}
 };
diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
index d4ee345..eb6f87d 100644
--- a/arch/arm64/kernel/cpufeature.c
+++ b/arch/arm64/kernel/cpufeature.c
@@ -79,7 +79,6 @@
 #include <asm/cpufeature.h>
 #include <asm/cpu_ops.h>
 #include <asm/fpsimd.h>
-#include <asm/hwcap.h>
 #include <asm/insn.h>
 #include <asm/kvm_host.h>
 #include <asm/mmu_context.h>
@@ -1343,6 +1342,7 @@
 
 	return cpu_possible_mask;
 }
+EXPORT_SYMBOL_GPL(system_32bit_el0_cpumask);
 
 static int __init parse_32bit_el0_param(char *str)
 {
@@ -1395,16 +1395,6 @@
 	return has_sre;
 }
 
-static bool has_no_hw_prefetch(const struct arm64_cpu_capabilities *entry, int __unused)
-{
-	u32 midr = read_cpuid_id();
-
-	/* Cavium ThunderX pass 1.x and 2.x */
-	return midr_is_cpu_model_range(midr, MIDR_THUNDERX,
-		MIDR_CPU_VAR_REV(0, 0),
-		MIDR_CPU_VAR_REV(1, MIDR_REVISION_MASK));
-}
-
 static bool has_no_fpsimd(const struct arm64_cpu_capabilities *entry, int __unused)
 {
 	u64 pfr0 = read_sanitised_ftr_reg(SYS_ID_AA64PFR0_EL1);
@@ -1493,18 +1483,6 @@
 			return false;
 	}
 
-	/*
-	 * Systems affected by Cavium erratum 24756 are incompatible
-	 * with KPTI.
-	 */
-	if (IS_ENABLED(CONFIG_CAVIUM_ERRATUM_27456)) {
-		extern const struct midr_range cavium_erratum_27456_cpus[];
-
-		if (is_midr_in_range_list(read_cpuid_id(),
-					  cavium_erratum_27456_cpus))
-			return false;
-	}
-
 	return kaslr_offset() > 0;
 }
 
@@ -1545,20 +1523,6 @@
 	if (!meltdown_safe)
 		__meltdown_safe = false;
 
-	/*
-	 * For reasons that aren't entirely clear, enabling KPTI on Cavium
-	 * ThunderX leads to apparent I-cache corruption of kernel text, which
-	 * ends as well as you might imagine. Don't even try. We cannot rely
-	 * on the cpus_have_*cap() helpers here to detect the CPU erratum
-	 * because cpucap detection order may change. However, since we know
-	 * affected CPUs are always in a homogeneous configuration, it is
-	 * safe to rely on this_cpu_has_cap() here.
-	 */
-	if (this_cpu_has_cap(ARM64_WORKAROUND_CAVIUM_27456)) {
-		str = "ARM64_WORKAROUND_CAVIUM_27456";
-		__kpti_forced = -1;
-	}
-
 	/* Useful for KASLR robustness */
 	if (kaslr_requires_kpti()) {
 		if (!__kpti_forced) {
@@ -1917,26 +1881,10 @@
 }
 #endif /* CONFIG_ARM64_MTE */
 
-static void elf_hwcap_fixup(void)
-{
-#ifdef CONFIG_ARM64_ERRATUM_1742098
-	if (cpus_have_const_cap(ARM64_WORKAROUND_1742098))
-		compat_elf_hwcap2 &= ~COMPAT_HWCAP2_AES;
-#endif /* ARM64_ERRATUM_1742098 */
-}
-
 #ifdef CONFIG_KVM
 static bool is_kvm_protected_mode(const struct arm64_cpu_capabilities *entry, int __unused)
 {
-	if (kvm_get_mode() != KVM_MODE_PROTECTED)
-		return false;
-
-	if (is_kernel_in_hyp_mode()) {
-		pr_warn("Protected KVM not available with VHE\n");
-		return false;
-	}
-
-	return true;
+	return kvm_get_mode() == KVM_MODE_PROTECTED;
 }
 #endif /* CONFIG_KVM */
 
@@ -2008,12 +1956,6 @@
 	},
 #endif /* CONFIG_ARM64_LSE_ATOMICS */
 	{
-		.desc = "Software prefetching using PRFM",
-		.capability = ARM64_HAS_NO_HW_PREFETCH,
-		.type = ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE,
-		.matches = has_no_hw_prefetch,
-	},
-	{
 		.desc = "Virtualization Host Extensions",
 		.capability = ARM64_HAS_VIRT_HOST_EXTN,
 		.type = ARM64_CPUCAP_STRICT_BOOT_CPU_FEATURE,
@@ -2361,6 +2303,16 @@
 		.sign = FTR_UNSIGNED,
 		.cpu_enable = cpu_enable_mte,
 	},
+	{
+		.desc = "Asymmetric MTE Tag Check Fault",
+		.capability = ARM64_MTE_ASYMM,
+		.type = ARM64_CPUCAP_BOOT_CPU_FEATURE,
+		.matches = has_cpuid_feature,
+		.sys_reg = SYS_ID_AA64PFR1_EL1,
+		.field_pos = ID_AA64PFR1_MTE_SHIFT,
+		.min_field_value = ID_AA64PFR1_MTE_ASYMM,
+		.sign = FTR_UNSIGNED,
+	},
 #endif /* CONFIG_ARM64_MTE */
 	{
 		.desc = "RCpc load-acquire (LDAPR)",
@@ -2490,6 +2442,7 @@
 #endif
 #ifdef CONFIG_ARM64_MTE
 	HWCAP_CAP(SYS_ID_AA64PFR1_EL1, ID_AA64PFR1_MTE_SHIFT, FTR_UNSIGNED, ID_AA64PFR1_MTE, CAP_HWCAP, KERNEL_HWCAP_MTE),
+	HWCAP_CAP(SYS_ID_AA64PFR1_EL1, ID_AA64PFR1_MTE_SHIFT, FTR_UNSIGNED, ID_AA64PFR1_MTE_ASYMM, CAP_HWCAP, KERNEL_HWCAP_MTE3),
 #endif /* CONFIG_ARM64_MTE */
 	HWCAP_CAP(SYS_ID_AA64MMFR0_EL1, ID_AA64MMFR0_ECV_SHIFT, FTR_UNSIGNED, 1, CAP_HWCAP, KERNEL_HWCAP_ECV),
 	HWCAP_CAP(SYS_ID_AA64MMFR1_EL1, ID_AA64MMFR1_AFP_SHIFT, FTR_UNSIGNED, 1, CAP_HWCAP, KERNEL_HWCAP_AFP),
@@ -2886,6 +2839,7 @@
 
 	return false;
 }
+EXPORT_SYMBOL_GPL(this_cpu_has_cap);
 
 /*
  * This helper function is used in a narrow window when,
@@ -2952,10 +2906,8 @@
 	setup_system_capabilities();
 	setup_elf_hwcaps(arm64_elf_hwcaps);
 
-	if (system_supports_32bit_el0()) {
+	if (system_supports_32bit_el0())
 		setup_elf_hwcaps(compat_elf_hwcaps);
-		elf_hwcap_fixup();
-	}
 
 	if (system_uses_ttbr0_pan())
 		pr_info("emulated: Privileged Access Never (PAN) using TTBR0_EL1 switching\n");
@@ -3007,7 +2959,6 @@
 							 cpu_active_mask);
 	get_cpu_device(lucky_winner)->offline_disabled = true;
 	setup_elf_hwcaps(compat_elf_hwcaps);
-	elf_hwcap_fixup();
 	pr_info("Asymmetric 32-bit EL0 support detected on CPU %u; CPU hot-unplug disabled on CPU %u\n",
 		cpu, lucky_winner);
 	return 0;
diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c
index 591c18a..330b92e 100644
--- a/arch/arm64/kernel/cpuinfo.c
+++ b/arch/arm64/kernel/cpuinfo.c
@@ -97,6 +97,7 @@
 	[KERNEL_HWCAP_ECV]		= "ecv",
 	[KERNEL_HWCAP_AFP]		= "afp",
 	[KERNEL_HWCAP_RPRES]		= "rpres",
+	[KERNEL_HWCAP_MTE3]		= "mte3",
 };
 
 #ifdef CONFIG_COMPAT
diff --git a/arch/arm64/kernel/debug-monitors.c b/arch/arm64/kernel/debug-monitors.c
index 732f089..b1caa93 100644
--- a/arch/arm64/kernel/debug-monitors.c
+++ b/arch/arm64/kernel/debug-monitors.c
@@ -202,7 +202,7 @@
  * So we call all the registered handlers, until the right handler is
  * found which returns zero.
  */
-static int call_step_hook(struct pt_regs *regs, unsigned long esr)
+static int call_step_hook(struct pt_regs *regs, unsigned int esr)
 {
 	struct step_hook *hook;
 	struct list_head *list;
@@ -238,7 +238,7 @@
 			      "User debug trap");
 }
 
-static int single_step_handler(unsigned long unused, unsigned long esr,
+static int single_step_handler(unsigned long unused, unsigned int esr,
 			       struct pt_regs *regs)
 {
 	bool handler_found = false;
@@ -283,27 +283,31 @@
 {
 	register_debug_hook(&hook->node, &user_break_hook);
 }
+EXPORT_SYMBOL_GPL(register_user_break_hook);
 
 void unregister_user_break_hook(struct break_hook *hook)
 {
 	unregister_debug_hook(&hook->node);
 }
+EXPORT_SYMBOL_GPL(unregister_user_break_hook);
 
 void register_kernel_break_hook(struct break_hook *hook)
 {
 	register_debug_hook(&hook->node, &kernel_break_hook);
 }
+EXPORT_SYMBOL_GPL(register_kernel_break_hook);
 
 void unregister_kernel_break_hook(struct break_hook *hook)
 {
 	unregister_debug_hook(&hook->node);
 }
+EXPORT_SYMBOL_GPL(unregister_kernel_break_hook);
 
-static int call_break_hook(struct pt_regs *regs, unsigned long esr)
+static int call_break_hook(struct pt_regs *regs, unsigned int esr)
 {
 	struct break_hook *hook;
 	struct list_head *list;
-	int (*fn)(struct pt_regs *regs, unsigned long esr) = NULL;
+	int (*fn)(struct pt_regs *regs, unsigned int esr) = NULL;
 
 	list = user_mode(regs) ? &user_break_hook : &kernel_break_hook;
 
@@ -312,7 +316,7 @@
 	 * entirely not preemptible, and we can use rcu list safely here.
 	 */
 	list_for_each_entry_rcu(hook, list, node) {
-		unsigned long comment = esr & ESR_ELx_BRK64_ISS_COMMENT_MASK;
+		unsigned int comment = esr & ESR_ELx_BRK64_ISS_COMMENT_MASK;
 
 		if ((comment & ~hook->mask) == hook->imm)
 			fn = hook->fn;
@@ -322,7 +326,7 @@
 }
 NOKPROBE_SYMBOL(call_break_hook);
 
-static int brk_handler(unsigned long unused, unsigned long esr,
+static int brk_handler(unsigned long unused, unsigned int esr,
 		       struct pt_regs *regs)
 {
 	if (call_break_hook(regs, esr) == DBG_HOOK_HANDLED)
diff --git a/arch/arm64/kernel/elfcore.c b/arch/arm64/kernel/elfcore.c
new file mode 100644
index 0000000..a4f5ebd
--- /dev/null
+++ b/arch/arm64/kernel/elfcore.c
@@ -0,0 +1,138 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+#include <linux/coredump.h>
+#include <linux/elfcore.h>
+#include <linux/kernel.h>
+#include <linux/mm.h>
+
+#include <asm/cpufeature.h>
+#include <asm/mte.h>
+
+#define for_each_mte_vma(tsk, vma)					\
+	if (system_supports_mte())					\
+		for (vma = tsk->mm->mmap; vma; vma = vma->vm_next)	\
+			if (vma->vm_flags & VM_MTE)
+
+static unsigned long mte_vma_tag_dump_size(struct vm_area_struct *vma)
+{
+	if (vma->vm_flags & VM_DONTDUMP)
+		return 0;
+
+	return vma_pages(vma) * MTE_PAGE_TAG_STORAGE;
+}
+
+/* Derived from dump_user_range(); start/end must be page-aligned */
+static int mte_dump_tag_range(struct coredump_params *cprm,
+			      unsigned long start, unsigned long end)
+{
+	int ret = 1;
+	unsigned long addr;
+	void *tags = NULL;
+
+	for (addr = start; addr < end; addr += PAGE_SIZE) {
+		struct page *page = get_dump_page(addr);
+
+		/*
+		 * get_dump_page() returns NULL when encountering an empty
+		 * page table entry that would otherwise have been filled with
+		 * the zero page. Skip the equivalent tag dump which would
+		 * have been all zeros.
+		 */
+		if (!page) {
+			dump_skip(cprm, MTE_PAGE_TAG_STORAGE);
+			continue;
+		}
+
+		/*
+		 * Pages mapped in user space as !pte_access_permitted() (e.g.
+		 * PROT_EXEC only) may not have the PG_mte_tagged flag set.
+		 */
+		if (!test_bit(PG_mte_tagged, &page->flags)) {
+			put_page(page);
+			dump_skip(cprm, MTE_PAGE_TAG_STORAGE);
+			continue;
+		}
+
+		if (!tags) {
+			tags = mte_allocate_tag_storage();
+			if (!tags) {
+				put_page(page);
+				ret = 0;
+				break;
+			}
+		}
+
+		mte_save_page_tags(page_address(page), tags);
+		put_page(page);
+		if (!dump_emit(cprm, tags, MTE_PAGE_TAG_STORAGE)) {
+			ret = 0;
+			break;
+		}
+	}
+
+	if (tags)
+		mte_free_tag_storage(tags);
+
+	return ret;
+}
+
+Elf_Half elf_core_extra_phdrs(struct coredump_params *cprm)
+{
+	struct vm_area_struct *vma;
+	int vma_count = 0;
+
+	for_each_mte_vma(current, vma)
+		vma_count++;
+
+	return vma_count;
+}
+
+int elf_core_write_extra_phdrs(struct coredump_params *cprm, loff_t offset)
+{
+	struct vm_area_struct *vma;
+
+	for_each_mte_vma(current, vma) {
+		struct elf_phdr phdr;
+
+		phdr.p_type = PT_AARCH64_MEMTAG_MTE;
+		phdr.p_offset = offset;
+		phdr.p_vaddr = vma->vm_start;
+		phdr.p_paddr = 0;
+		phdr.p_filesz = mte_vma_tag_dump_size(vma);
+		phdr.p_memsz = vma->vm_end - vma->vm_start;
+		offset += phdr.p_filesz;
+		phdr.p_flags = 0;
+		phdr.p_align = 0;
+
+		if (!dump_emit(cprm, &phdr, sizeof(phdr)))
+			return 0;
+	}
+
+	return 1;
+}
+
+size_t elf_core_extra_data_size(struct coredump_params *cprm)
+{
+	struct vm_area_struct *vma;
+	size_t data_size = 0;
+
+	for_each_mte_vma(current, vma)
+		data_size += mte_vma_tag_dump_size(vma);
+
+	return data_size;
+}
+
+int elf_core_write_extra_data(struct coredump_params *cprm)
+{
+	struct vm_area_struct *vma;
+
+	for_each_mte_vma(current, vma) {
+		if (vma->vm_flags & VM_DONTDUMP)
+			continue;
+
+		if (!mte_dump_tag_range(cprm, vma->vm_start, vma->vm_end))
+			return 0;
+	}
+
+	return 1;
+}
diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c
index fc91dad..e7d740d 100644
--- a/arch/arm64/kernel/entry-common.c
+++ b/arch/arm64/kernel/entry-common.c
@@ -25,6 +25,8 @@
 #include <asm/sysreg.h>
 #include <asm/system_misc.h>
 
+#include <trace/hooks/traps.h>
+
 /*
  * Handle IRQ/context state management when entering from kernel mode.
  * Before this function is called it is not safe to call regular kernel code,
@@ -273,16 +275,17 @@
 extern void (*handle_arch_fiq)(struct pt_regs *);
 
 static void noinstr __panic_unhandled(struct pt_regs *regs, const char *vector,
-				      unsigned long esr)
+				      unsigned int esr)
 {
 	arm64_enter_nmi(regs);
 
 	console_verbose();
 
-	pr_crit("Unhandled %s exception on CPU%d, ESR 0x%016lx -- %s\n",
+	pr_crit("Unhandled %s exception on CPU%d, ESR 0x%08x -- %s\n",
 		vector, smp_processor_id(), esr,
 		esr_get_class_string(esr));
 
+	trace_android_rvh_panic_unhandled(regs, vector, esr);
 	__show_regs(regs);
 	panic("Unhandled exception");
 }
@@ -796,7 +799,7 @@
 #ifdef CONFIG_VMAP_STACK
 asmlinkage void noinstr handle_bad_stack(struct pt_regs *regs)
 {
-	unsigned long esr = read_sysreg(esr_el1);
+	unsigned int esr = read_sysreg(esr_el1);
 	unsigned long far = read_sysreg(far_el1);
 
 	arm64_enter_nmi(regs);
diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S
index c56b262..f6fd449 100644
--- a/arch/arm64/kernel/entry.S
+++ b/arch/arm64/kernel/entry.S
@@ -175,9 +175,9 @@
 
 	.macro mte_set_kernel_gcr, tmp, tmp2
 #ifdef CONFIG_KASAN_HW_TAGS
-alternative_if_not ARM64_MTE
+alternative_cb	kasan_hw_tags_enable
 	b	1f
-alternative_else_nop_endif
+alternative_cb_end
 	mov	\tmp, KERNEL_GCR_EL1
 	msr_s	SYS_GCR_EL1, \tmp
 1:
@@ -185,10 +185,10 @@
 	.endm
 
 	.macro mte_set_user_gcr, tsk, tmp, tmp2
-#ifdef CONFIG_ARM64_MTE
-alternative_if_not ARM64_MTE
+#ifdef CONFIG_KASAN_HW_TAGS
+alternative_cb	kasan_hw_tags_enable
 	b	1f
-alternative_else_nop_endif
+alternative_cb_end
 	ldr	\tmp, [\tsk, #THREAD_MTE_CTRL]
 
 	mte_set_gcr \tmp, \tmp2
@@ -691,9 +691,7 @@
 	tramp_map_kernel	x30
 alternative_insn isb, nop, ARM64_WORKAROUND_QCOM_FALKOR_E1003
 	tramp_data_read_var	x30, vectors
-alternative_if_not ARM64_WORKAROUND_CAVIUM_TX2_219_PRFM
 	prfm	plil1strm, [x30, #(1b - \vector_start)]
-alternative_else_nop_endif
 
 	msr	vbar_el1, x30
 	isb
diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c
index 7a3fcf2..1fbd6ba7 100644
--- a/arch/arm64/kernel/fpsimd.c
+++ b/arch/arm64/kernel/fpsimd.c
@@ -78,7 +78,11 @@
  * indicate whether or not the userland FPSIMD state of the current task is
  * present in the registers. The flag is set unless the FPSIMD registers of this
  * CPU currently contain the most recent userland FPSIMD state of the current
- * task.
+ * task. If the task is behaving as a VMM, then this is will be managed by
+ * KVM which will clear it to indicate that the vcpu FPSIMD state is currently
+ * loaded on the CPU, allowing the state to be saved if a FPSIMD-aware
+ * softirq kicks in. Upon vcpu_put(), KVM will save the vcpu FP state and
+ * flag the register state as invalid.
  *
  * In order to allow softirq handlers to use FPSIMD, kernel_neon_begin() may
  * save the task's FPSIMD context back to task_struct from softirq context.
@@ -930,7 +934,7 @@
  * would have disabled the SVE access trap for userspace during
  * ret_to_user, making an SVE access trap impossible in that case.
  */
-void do_sve_acc(unsigned long esr, struct pt_regs *regs)
+void do_sve_acc(unsigned int esr, struct pt_regs *regs)
 {
 	/* Even if we chose not to use SVE, the hardware could still trap: */
 	if (unlikely(!system_supports_sve()) || WARN_ON(is_compat_task())) {
@@ -972,7 +976,7 @@
 /*
  * Trapped FP/ASIMD access.
  */
-void do_fpsimd_acc(unsigned long esr, struct pt_regs *regs)
+void do_fpsimd_acc(unsigned int esr, struct pt_regs *regs)
 {
 	/* TODO: implement lazy context saving/restoring */
 	WARN_ON(1);
@@ -981,7 +985,7 @@
 /*
  * Raise a SIGFPE for the current process.
  */
-void do_fpsimd_exc(unsigned long esr, struct pt_regs *regs)
+void do_fpsimd_exc(unsigned int esr, struct pt_regs *regs)
 {
 	unsigned int si_code = FPE_FLTUNK;
 
diff --git a/arch/arm64/kernel/hibernate.c b/arch/arm64/kernel/hibernate.c
index 46a0b4d..095e816 100644
--- a/arch/arm64/kernel/hibernate.c
+++ b/arch/arm64/kernel/hibernate.c
@@ -37,6 +37,7 @@
 #include <asm/sysreg.h>
 #include <asm/trans_pgd.h>
 #include <asm/virt.h>
+#include <trace/hooks/bl_hib.h>
 
 /*
  * Hibernate core relies on this value being 0 on resume, and marks it
@@ -87,6 +88,8 @@
 	phys_addr_t	__hyp_stub_vectors;
 
 	u64		sleep_cpu_mpidr;
+
+	ANDROID_VENDOR_DATA(1);
 } resume_hdr;
 
 static inline void arch_hdr_invariants(struct arch_hibernate_hdr_invariants *i)
@@ -124,6 +127,11 @@
 	hdr->ttbr1_el1		= __pa_symbol(swapper_pg_dir);
 	hdr->reenter_kernel	= _cpu_resume;
 
+#ifdef CONFIG_ANDROID_VENDOR_OEM_DATA
+	trace_android_vh_save_cpu_resume(&hdr->android_vendor_data1,
+						__pa(cpu_resume));
+#endif
+
 	/* We can't use __hyp_get_vectors() because kvm may still be loaded */
 	if (el2_reset_needed())
 		hdr->__hyp_stub_vectors = __pa_symbol(__hyp_stub_vectors);
diff --git a/arch/arm64/kernel/hw_breakpoint.c b/arch/arm64/kernel/hw_breakpoint.c
index 2a7f213..712e97c 100644
--- a/arch/arm64/kernel/hw_breakpoint.c
+++ b/arch/arm64/kernel/hw_breakpoint.c
@@ -617,7 +617,7 @@
 /*
  * Debug exception handlers.
  */
-static int breakpoint_handler(unsigned long unused, unsigned long esr,
+static int breakpoint_handler(unsigned long unused, unsigned int esr,
 			      struct pt_regs *regs)
 {
 	int i, step = 0, *kernel_step;
@@ -751,7 +751,7 @@
 	return step;
 }
 
-static int watchpoint_handler(unsigned long addr, unsigned long esr,
+static int watchpoint_handler(unsigned long addr, unsigned int esr,
 			      struct pt_regs *regs)
 {
 	int i, step = 0, *kernel_step, access, closest_match = 0;
diff --git a/arch/arm64/kernel/idreg-override.c b/arch/arm64/kernel/idreg-override.c
index d8e606f..c2b0bfe 100644
--- a/arch/arm64/kernel/idreg-override.c
+++ b/arch/arm64/kernel/idreg-override.c
@@ -214,8 +214,11 @@
 {
 	const u8 *prop = get_bootargs_cmdline();
 
-	if (IS_ENABLED(CONFIG_CMDLINE_FORCE) || !prop)
+	if (IS_ENABLED(CONFIG_CMDLINE_EXTEND) ||
+	    IS_ENABLED(CONFIG_CMDLINE_FORCE) ||
+	    !prop) {
 		__parse_cmdline(CONFIG_CMDLINE, true);
+	}
 
 	if (!IS_ENABLED(CONFIG_CMDLINE_FORCE) && prop)
 		__parse_cmdline(prop, true);
diff --git a/arch/arm64/kernel/image-vars.h b/arch/arm64/kernel/image-vars.h
index e03e60f..022f8fe 100644
--- a/arch/arm64/kernel/image-vars.h
+++ b/arch/arm64/kernel/image-vars.h
@@ -80,9 +80,6 @@
 /* Vectors installed by hyp-init on reset HVC. */
 KVM_NVHE_ALIAS(__hyp_stub_vectors);
 
-/* Kernel symbol used by icache_is_vpipt(). */
-KVM_NVHE_ALIAS(__icache_flags);
-
 /* Kernel symbols needed for cpus_have_final/const_caps checks. */
 KVM_NVHE_ALIAS(arm64_const_caps_ready);
 KVM_NVHE_ALIAS(cpu_hwcap_keys);
@@ -102,9 +99,6 @@
 KVM_NVHE_ALIAS(__start___kvm_ex_table);
 KVM_NVHE_ALIAS(__stop___kvm_ex_table);
 
-/* Array containing bases of nVHE per-CPU memory regions. */
-KVM_NVHE_ALIAS(kvm_arm_hyp_percpu_base);
-
 /* PMU available static key */
 KVM_NVHE_ALIAS(kvm_arm_pmu_available);
 
@@ -119,12 +113,6 @@
 KVM_NVHE_ALIAS_HYP(__memset, __pi_memset);
 #endif
 
-/* Kernel memory sections */
-KVM_NVHE_ALIAS(__start_rodata);
-KVM_NVHE_ALIAS(__end_rodata);
-KVM_NVHE_ALIAS(__bss_start);
-KVM_NVHE_ALIAS(__bss_stop);
-
 /* Hyp memory sections */
 KVM_NVHE_ALIAS(__hyp_idmap_text_start);
 KVM_NVHE_ALIAS(__hyp_idmap_text_end);
@@ -132,6 +120,8 @@
 KVM_NVHE_ALIAS(__hyp_text_end);
 KVM_NVHE_ALIAS(__hyp_bss_start);
 KVM_NVHE_ALIAS(__hyp_bss_end);
+KVM_NVHE_ALIAS(__hyp_data_start);
+KVM_NVHE_ALIAS(__hyp_data_end);
 KVM_NVHE_ALIAS(__hyp_rodata_start);
 KVM_NVHE_ALIAS(__hyp_rodata_end);
 
diff --git a/arch/arm64/kernel/kgdb.c b/arch/arm64/kernel/kgdb.c
index 4e1f983..9794605 100644
--- a/arch/arm64/kernel/kgdb.c
+++ b/arch/arm64/kernel/kgdb.c
@@ -234,14 +234,14 @@
 	return err;
 }
 
-static int kgdb_brk_fn(struct pt_regs *regs, unsigned long esr)
+static int kgdb_brk_fn(struct pt_regs *regs, unsigned int esr)
 {
 	kgdb_handle_exception(1, SIGTRAP, 0, regs);
 	return DBG_HOOK_HANDLED;
 }
 NOKPROBE_SYMBOL(kgdb_brk_fn)
 
-static int kgdb_compiled_brk_fn(struct pt_regs *regs, unsigned long esr)
+static int kgdb_compiled_brk_fn(struct pt_regs *regs, unsigned int esr)
 {
 	compiled_break = 1;
 	kgdb_handle_exception(1, SIGTRAP, 0, regs);
@@ -250,7 +250,7 @@
 }
 NOKPROBE_SYMBOL(kgdb_compiled_brk_fn);
 
-static int kgdb_step_brk_fn(struct pt_regs *regs, unsigned long esr)
+static int kgdb_step_brk_fn(struct pt_regs *regs, unsigned int esr)
 {
 	if (!kgdb_single_step)
 		return DBG_HOOK_ERROR;
diff --git a/arch/arm64/kernel/module.c b/arch/arm64/kernel/module.c
index 309a275..f2d4bb1 100644
--- a/arch/arm64/kernel/module.c
+++ b/arch/arm64/kernel/module.c
@@ -58,12 +58,13 @@
 				PAGE_KERNEL, 0, NUMA_NO_NODE,
 				__builtin_return_address(0));
 
-	if (p && (kasan_module_alloc(p, size, gfp_mask) < 0)) {
+	if (p && (kasan_alloc_module_shadow(p, size, gfp_mask) < 0)) {
 		vfree(p);
 		return NULL;
 	}
 
-	return p;
+	/* Memory is intended to be executable, reset the pointer tag. */
+	return kasan_reset_tag(p);
 }
 
 enum aarch64_reloc_op {
diff --git a/arch/arm64/kernel/mte.c b/arch/arm64/kernel/mte.c
index a3898ba..63bba6e 100644
--- a/arch/arm64/kernel/mte.c
+++ b/arch/arm64/kernel/mte.c
@@ -26,9 +26,12 @@
 static DEFINE_PER_CPU_READ_MOSTLY(u64, mte_tcf_preferred);
 
 #ifdef CONFIG_KASAN_HW_TAGS
-/* Whether the MTE asynchronous mode is enabled. */
-DEFINE_STATIC_KEY_FALSE(mte_async_mode);
-EXPORT_SYMBOL_GPL(mte_async_mode);
+/*
+ * The asynchronous and asymmetric MTE modes have the same behavior for
+ * store operations. This flag is set when either of these modes is enabled.
+ */
+DEFINE_STATIC_KEY_FALSE(mte_async_or_asymm_mode);
+EXPORT_SYMBOL_GPL(mte_async_or_asymm_mode);
 #endif
 
 static void mte_sync_page_tags(struct page *page, pte_t old_pte,
@@ -124,7 +127,7 @@
 	 * Make sure we enter this function when no PE has set
 	 * async mode previously.
 	 */
-	WARN_ONCE(system_uses_mte_async_mode(),
+	WARN_ONCE(system_uses_mte_async_or_asymm_mode(),
 			"MTE async mode enabled system wide!");
 
 	__mte_enable_kernel("synchronous", SCTLR_ELx_TCF_SYNC);
@@ -142,8 +145,34 @@
 	 * mode in between sync and async, this strategy needs
 	 * to be reviewed.
 	 */
-	if (!system_uses_mte_async_mode())
-		static_branch_enable(&mte_async_mode);
+	if (!system_uses_mte_async_or_asymm_mode())
+		static_branch_enable(&mte_async_or_asymm_mode);
+}
+
+void mte_enable_kernel_asymm(void)
+{
+	if (cpus_have_cap(ARM64_MTE_ASYMM)) {
+		__mte_enable_kernel("asymmetric", SCTLR_ELx_TCF_ASYMM);
+
+		/*
+		 * MTE asymm mode behaves as async mode for store
+		 * operations. The mode is set system wide by the
+		 * first PE that executes this function.
+		 *
+		 * Note: If in future KASAN acquires a runtime switching
+		 * mode in between sync and async, this strategy needs
+		 * to be reviewed.
+		 */
+		if (!system_uses_mte_async_or_asymm_mode())
+			static_branch_enable(&mte_async_or_asymm_mode);
+	} else {
+		/*
+		 * If the CPU does not support MTE asymmetric mode the
+		 * kernel falls back on synchronous mode which is the
+		 * default for kasan=on.
+		 */
+		mte_enable_kernel_sync();
+	}
 }
 #endif
 
@@ -165,6 +194,11 @@
 }
 #endif
 
+/*
+ * This is where we actually resolve the system and process MTE mode
+ * configuration into an actual value in SCTLR_EL1 that affects
+ * userspace.
+ */
 static void mte_update_sctlr_user(struct task_struct *task)
 {
 	/*
@@ -178,15 +212,50 @@
 	unsigned long pref, resolved_mte_tcf;
 
 	pref = __this_cpu_read(mte_tcf_preferred);
+	/*
+	 * If there is no overlap between the system preferred and
+	 * program requested values go with what was requested.
+	 */
 	resolved_mte_tcf = (mte_ctrl & pref) ? pref : mte_ctrl;
 	sctlr &= ~SCTLR_EL1_TCF0_MASK;
-	if (resolved_mte_tcf & MTE_CTRL_TCF_ASYNC)
+	/*
+	 * Pick an actual setting. The order in which we check for
+	 * set bits and map into register values determines our
+	 * default order.
+	 */
+	if (resolved_mte_tcf & MTE_CTRL_TCF_ASYMM)
+		sctlr |= SCTLR_EL1_TCF0_ASYMM;
+	else if (resolved_mte_tcf & MTE_CTRL_TCF_ASYNC)
 		sctlr |= SCTLR_EL1_TCF0_ASYNC;
 	else if (resolved_mte_tcf & MTE_CTRL_TCF_SYNC)
 		sctlr |= SCTLR_EL1_TCF0_SYNC;
 	task->thread.sctlr_user = sctlr;
 }
 
+static void mte_update_gcr_excl(struct task_struct *task)
+{
+	/*
+	 * SYS_GCR_EL1 will be set to current->thread.mte_ctrl value by
+	 * mte_set_user_gcr() in kernel_exit, but only if KASAN is enabled.
+	 */
+	if (kasan_hw_tags_enabled())
+		return;
+
+	write_sysreg_s(
+		((task->thread.mte_ctrl >> MTE_CTRL_GCR_USER_EXCL_SHIFT) &
+		 SYS_GCR_EL1_EXCL_MASK) | SYS_GCR_EL1_RRND,
+		SYS_GCR_EL1);
+}
+
+void __init kasan_hw_tags_enable(struct alt_instr *alt, __le32 *origptr,
+				 __le32 *updptr, int nr_inst)
+{
+	BUG_ON(nr_inst != 1); /* Branch -> NOP */
+
+	if (kasan_hw_tags_enabled())
+		*updptr = cpu_to_le32(aarch64_insn_gen_nop());
+}
+
 void mte_thread_init_user(void)
 {
 	if (!system_supports_mte())
@@ -206,6 +275,7 @@
 		return;
 
 	mte_update_sctlr_user(next);
+	mte_update_gcr_excl(next);
 
 	/*
 	 * Check if an async tag exception occurred at EL1.
@@ -298,10 +368,22 @@
 	if (arg & PR_MTE_TCF_SYNC)
 		mte_ctrl |= MTE_CTRL_TCF_SYNC;
 
+	/*
+	 * If the system supports it and both sync and async modes are
+	 * specified then implicitly enable asymmetric mode.
+	 * Userspace could see a mix of both sync and async anyway due
+	 * to differing or changing defaults on CPUs.
+	 */
+	if (cpus_have_cap(ARM64_MTE_ASYMM) &&
+	    (arg & PR_MTE_TCF_ASYNC) &&
+	    (arg & PR_MTE_TCF_SYNC))
+		mte_ctrl |= MTE_CTRL_TCF_ASYMM;
+
 	task->thread.mte_ctrl = mte_ctrl;
 	if (task == current) {
 		preempt_disable();
 		mte_update_sctlr_user(task);
+		mte_update_gcr_excl(task);
 		update_sctlr_el1(task->thread.sctlr_user);
 		preempt_enable();
 	}
@@ -471,6 +553,8 @@
 		return sysfs_emit(buf, "async\n");
 	case MTE_CTRL_TCF_SYNC:
 		return sysfs_emit(buf, "sync\n");
+	case MTE_CTRL_TCF_ASYMM:
+		return sysfs_emit(buf, "asymm\n");
 	default:
 		return sysfs_emit(buf, "???\n");
 	}
@@ -486,6 +570,8 @@
 		tcf = MTE_CTRL_TCF_ASYNC;
 	else if (sysfs_streq(buf, "sync"))
 		tcf = MTE_CTRL_TCF_SYNC;
+	else if (cpus_have_cap(ARM64_MTE_ASYMM) && sysfs_streq(buf, "asymm"))
+		tcf = MTE_CTRL_TCF_ASYMM;
 	else
 		return -EINVAL;
 
diff --git a/arch/arm64/kernel/perf_event.c b/arch/arm64/kernel/perf_event.c
index b404446..8d50e79 100644
--- a/arch/arm64/kernel/perf_event.c
+++ b/arch/arm64/kernel/perf_event.c
@@ -286,6 +286,9 @@
 PMU_FORMAT_ATTR(event, "config:0-15");
 PMU_FORMAT_ATTR(long, "config1:0");
 
+static int sysctl_perf_user_access __read_mostly;
+static int sysctl_export_pmu_events __read_mostly;
+
 static inline bool armv8pmu_event_is_64bit(struct perf_event *event)
 {
 	return event->attr.config1 & 0x1;
@@ -953,6 +956,17 @@
 	return evtype != ARMV8_PMUV3_PERFCTR_CHAIN;
 }
 
+static int __init export_pmu_events(char *str)
+{
+	/* Enable exporting of pmu events at early bootup with kernel
+	 * arguments.
+	 */
+	sysctl_export_pmu_events = 1;
+	return 0;
+}
+
+early_param("export_pmu_events", export_pmu_events);
+
 static void armv8pmu_reset(void *info)
 {
 	struct arm_pmu *cpu_pmu = (struct arm_pmu *)info;
@@ -975,6 +989,9 @@
 	if (armv8pmu_has_long_event(cpu_pmu))
 		pmcr |= ARMV8_PMU_PMCR_LP;
 
+	if (sysctl_export_pmu_events)
+		pmcr |= ARMV8_PMU_PMCR_X;
+
 	armv8pmu_pmcr_write(pmcr);
 }
 
@@ -1104,6 +1121,36 @@
 	return probe.present ? 0 : -ENODEV;
 }
 
+static struct ctl_table armv8_pmu_sysctl_table[] = {
+	{
+		.procname       = "perf_user_access",
+		.data		= &sysctl_perf_user_access,
+		.maxlen		= sizeof(unsigned int),
+		.mode           = 0644,
+		.proc_handler	= proc_dointvec_minmax,
+		.extra1		= SYSCTL_ZERO,
+		.extra2		= SYSCTL_ONE,
+	},
+	{
+		.procname       = "export_pmu_events",
+		.data           = &sysctl_export_pmu_events,
+		.maxlen         = sizeof(unsigned int),
+		.mode           = 0644,
+		.proc_handler   = proc_dointvec_minmax,
+		.extra1         = SYSCTL_ZERO,
+		.extra2         = SYSCTL_ONE,
+	},
+	{ }
+};
+
+static void armv8_pmu_register_sysctl_table(void)
+{
+	static u32 tbl_registered = 0;
+
+	if (!cmpxchg_relaxed(&tbl_registered, 0, 1))
+		register_sysctl("kernel", armv8_pmu_sysctl_table);
+}
+
 static int armv8_pmu_init(struct arm_pmu *cpu_pmu, char *name,
 			  int (*map_event)(struct perf_event *event),
 			  const struct attribute_group *events,
@@ -1136,6 +1183,7 @@
 	cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_CAPS] = caps ?
 			caps : &armv8_pmuv3_caps_attr_group;
 
+	armv8_pmu_register_sysctl_table();
 	return 0;
 }
 
@@ -1145,17 +1193,32 @@
 	return armv8_pmu_init(cpu_pmu, name, map_event, NULL, NULL, NULL);
 }
 
-static int armv8_pmuv3_init(struct arm_pmu *cpu_pmu)
-{
-	return armv8_pmu_init_nogroups(cpu_pmu, "armv8_pmuv3",
-				       armv8_pmuv3_map_event);
+#define PMUV3_INIT_SIMPLE(name)						\
+static int name##_pmu_init(struct arm_pmu *cpu_pmu)			\
+{									\
+	return armv8_pmu_init_nogroups(cpu_pmu, #name, armv8_pmuv3_map_event);\
 }
 
-static int armv8_a34_pmu_init(struct arm_pmu *cpu_pmu)
-{
-	return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cortex_a34",
-				       armv8_pmuv3_map_event);
-}
+PMUV3_INIT_SIMPLE(armv8_pmuv3)
+
+PMUV3_INIT_SIMPLE(armv8_cortex_a34)
+PMUV3_INIT_SIMPLE(armv8_cortex_a55)
+PMUV3_INIT_SIMPLE(armv8_cortex_a65)
+PMUV3_INIT_SIMPLE(armv8_cortex_a75)
+PMUV3_INIT_SIMPLE(armv8_cortex_a76)
+PMUV3_INIT_SIMPLE(armv8_cortex_a77)
+PMUV3_INIT_SIMPLE(armv8_cortex_a78)
+PMUV3_INIT_SIMPLE(armv9_cortex_a510)
+PMUV3_INIT_SIMPLE(armv9_cortex_a710)
+PMUV3_INIT_SIMPLE(armv8_cortex_x1)
+PMUV3_INIT_SIMPLE(armv9_cortex_x2)
+PMUV3_INIT_SIMPLE(armv8_neoverse_e1)
+PMUV3_INIT_SIMPLE(armv8_neoverse_n1)
+PMUV3_INIT_SIMPLE(armv9_neoverse_n2)
+PMUV3_INIT_SIMPLE(armv8_neoverse_v1)
+
+PMUV3_INIT_SIMPLE(armv8_nvidia_carmel)
+PMUV3_INIT_SIMPLE(armv8_nvidia_denver)
 
 static int armv8_a35_pmu_init(struct arm_pmu *cpu_pmu)
 {
@@ -1169,24 +1232,12 @@
 				       armv8_a53_map_event);
 }
 
-static int armv8_a55_pmu_init(struct arm_pmu *cpu_pmu)
-{
-	return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cortex_a55",
-				       armv8_pmuv3_map_event);
-}
-
 static int armv8_a57_pmu_init(struct arm_pmu *cpu_pmu)
 {
 	return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cortex_a57",
 				       armv8_a57_map_event);
 }
 
-static int armv8_a65_pmu_init(struct arm_pmu *cpu_pmu)
-{
-	return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cortex_a65",
-				       armv8_pmuv3_map_event);
-}
-
 static int armv8_a72_pmu_init(struct arm_pmu *cpu_pmu)
 {
 	return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cortex_a72",
@@ -1199,42 +1250,6 @@
 				       armv8_a73_map_event);
 }
 
-static int armv8_a75_pmu_init(struct arm_pmu *cpu_pmu)
-{
-	return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cortex_a75",
-				       armv8_pmuv3_map_event);
-}
-
-static int armv8_a76_pmu_init(struct arm_pmu *cpu_pmu)
-{
-	return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cortex_a76",
-				       armv8_pmuv3_map_event);
-}
-
-static int armv8_a77_pmu_init(struct arm_pmu *cpu_pmu)
-{
-	return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cortex_a77",
-				       armv8_pmuv3_map_event);
-}
-
-static int armv8_a78_pmu_init(struct arm_pmu *cpu_pmu)
-{
-	return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cortex_a78",
-				       armv8_pmuv3_map_event);
-}
-
-static int armv8_e1_pmu_init(struct arm_pmu *cpu_pmu)
-{
-	return armv8_pmu_init_nogroups(cpu_pmu, "armv8_neoverse_e1",
-				       armv8_pmuv3_map_event);
-}
-
-static int armv8_n1_pmu_init(struct arm_pmu *cpu_pmu)
-{
-	return armv8_pmu_init_nogroups(cpu_pmu, "armv8_neoverse_n1",
-				       armv8_pmuv3_map_event);
-}
-
 static int armv8_thunder_pmu_init(struct arm_pmu *cpu_pmu)
 {
 	return armv8_pmu_init_nogroups(cpu_pmu, "armv8_cavium_thunder",
@@ -1248,23 +1263,31 @@
 }
 
 static const struct of_device_id armv8_pmu_of_device_ids[] = {
-	{.compatible = "arm,armv8-pmuv3",	.data = armv8_pmuv3_init},
-	{.compatible = "arm,cortex-a34-pmu",	.data = armv8_a34_pmu_init},
+	{.compatible = "arm,armv8-pmuv3",	.data = armv8_pmuv3_pmu_init},
+	{.compatible = "arm,cortex-a34-pmu",	.data = armv8_cortex_a34_pmu_init},
 	{.compatible = "arm,cortex-a35-pmu",	.data = armv8_a35_pmu_init},
 	{.compatible = "arm,cortex-a53-pmu",	.data = armv8_a53_pmu_init},
-	{.compatible = "arm,cortex-a55-pmu",	.data = armv8_a55_pmu_init},
+	{.compatible = "arm,cortex-a55-pmu",	.data = armv8_cortex_a55_pmu_init},
 	{.compatible = "arm,cortex-a57-pmu",	.data = armv8_a57_pmu_init},
-	{.compatible = "arm,cortex-a65-pmu",	.data = armv8_a65_pmu_init},
+	{.compatible = "arm,cortex-a65-pmu",	.data = armv8_cortex_a65_pmu_init},
 	{.compatible = "arm,cortex-a72-pmu",	.data = armv8_a72_pmu_init},
 	{.compatible = "arm,cortex-a73-pmu",	.data = armv8_a73_pmu_init},
-	{.compatible = "arm,cortex-a75-pmu",	.data = armv8_a75_pmu_init},
-	{.compatible = "arm,cortex-a76-pmu",	.data = armv8_a76_pmu_init},
-	{.compatible = "arm,cortex-a77-pmu",	.data = armv8_a77_pmu_init},
-	{.compatible = "arm,cortex-a78-pmu",	.data = armv8_a78_pmu_init},
-	{.compatible = "arm,neoverse-e1-pmu",	.data = armv8_e1_pmu_init},
-	{.compatible = "arm,neoverse-n1-pmu",	.data = armv8_n1_pmu_init},
+	{.compatible = "arm,cortex-a75-pmu",	.data = armv8_cortex_a75_pmu_init},
+	{.compatible = "arm,cortex-a76-pmu",	.data = armv8_cortex_a76_pmu_init},
+	{.compatible = "arm,cortex-a77-pmu",	.data = armv8_cortex_a77_pmu_init},
+	{.compatible = "arm,cortex-a78-pmu",	.data = armv8_cortex_a78_pmu_init},
+	{.compatible = "arm,cortex-a510-pmu",	.data = armv9_cortex_a510_pmu_init},
+	{.compatible = "arm,cortex-a710-pmu",	.data = armv9_cortex_a710_pmu_init},
+	{.compatible = "arm,cortex-x1-pmu",	.data = armv8_cortex_x1_pmu_init},
+	{.compatible = "arm,cortex-x2-pmu",	.data = armv9_cortex_x2_pmu_init},
+	{.compatible = "arm,neoverse-e1-pmu",	.data = armv8_neoverse_e1_pmu_init},
+	{.compatible = "arm,neoverse-n1-pmu",	.data = armv8_neoverse_n1_pmu_init},
+	{.compatible = "arm,neoverse-n2-pmu",	.data = armv9_neoverse_n2_pmu_init},
+	{.compatible = "arm,neoverse-v1-pmu",	.data = armv8_neoverse_v1_pmu_init},
 	{.compatible = "cavium,thunder-pmu",	.data = armv8_thunder_pmu_init},
 	{.compatible = "brcm,vulcan-pmu",	.data = armv8_vulcan_pmu_init},
+	{.compatible = "nvidia,carmel-pmu",	.data = armv8_nvidia_carmel_pmu_init},
+	{.compatible = "nvidia,denver-pmu",	.data = armv8_nvidia_denver_pmu_init},
 	{},
 };
 
@@ -1287,7 +1310,7 @@
 	if (acpi_disabled)
 		return platform_driver_register(&armv8_pmu_driver);
 	else
-		return arm_pmu_acpi_probe(armv8_pmuv3_init);
+		return arm_pmu_acpi_probe(armv8_pmuv3_pmu_init);
 }
 device_initcall(armv8_pmu_driver_init)
 
diff --git a/arch/arm64/kernel/probes/kprobes.c b/arch/arm64/kernel/probes/kprobes.c
index 2162b6f..ce429cb 100644
--- a/arch/arm64/kernel/probes/kprobes.c
+++ b/arch/arm64/kernel/probes/kprobes.c
@@ -335,7 +335,7 @@
 }
 
 static int __kprobes
-kprobe_breakpoint_ss_handler(struct pt_regs *regs, unsigned long esr)
+kprobe_breakpoint_ss_handler(struct pt_regs *regs, unsigned int esr)
 {
 	struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
 	unsigned long addr = instruction_pointer(regs);
@@ -359,7 +359,7 @@
 };
 
 static int __kprobes
-kprobe_breakpoint_handler(struct pt_regs *regs, unsigned long esr)
+kprobe_breakpoint_handler(struct pt_regs *regs, unsigned int esr)
 {
 	kprobe_handler(regs);
 	return DBG_HOOK_HANDLED;
diff --git a/arch/arm64/kernel/probes/uprobes.c b/arch/arm64/kernel/probes/uprobes.c
index d49aef2..9be668f 100644
--- a/arch/arm64/kernel/probes/uprobes.c
+++ b/arch/arm64/kernel/probes/uprobes.c
@@ -166,7 +166,7 @@
 }
 
 static int uprobe_breakpoint_handler(struct pt_regs *regs,
-				     unsigned long esr)
+		unsigned int esr)
 {
 	if (uprobe_pre_sstep_notifier(regs))
 		return DBG_HOOK_HANDLED;
@@ -175,7 +175,7 @@
 }
 
 static int uprobe_single_step_handler(struct pt_regs *regs,
-				      unsigned long esr)
+		unsigned int esr)
 {
 	struct uprobe_task *utask = current->utask;
 
diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
index 23efabc..54b626c 100644
--- a/arch/arm64/kernel/process.c
+++ b/arch/arm64/kernel/process.c
@@ -40,6 +40,8 @@
 #include <linux/percpu.h>
 #include <linux/thread_info.h>
 #include <linux/prctl.h>
+#include <trace/hooks/fpsimd.h>
+#include <trace/hooks/mpam.h>
 
 #include <asm/alternative.h>
 #include <asm/compat.h>
@@ -245,6 +247,7 @@
 	__show_regs(regs);
 	dump_backtrace(regs, NULL, KERN_DEFAULT);
 }
+EXPORT_SYMBOL_GPL(show_regs);
 
 static void tls_thread_flush(void)
 {
@@ -497,6 +500,12 @@
 	ptrauth_thread_switch_user(next);
 
 	/*
+	 *  vendor hook is needed before the dsb(),
+	 *  because MPAM is related to cache maintenance.
+	 */
+	trace_android_vh_mpam_set(prev, next);
+
+	/*
 	 * Complete any pending TLB or cache maintenance on this CPU in case
 	 * the thread migrates to a different CPU.
 	 * This full barrier is also required by the membarrier system
@@ -514,6 +523,8 @@
 	if (prev->thread.sctlr_user != next->thread.sctlr_user)
 		update_sctlr_el1(next->thread.sctlr_user);
 
+	trace_android_vh_is_fpsimd_save(prev, next);
+
 	/* the actual thread switch */
 	last = cpu_switch_to(prev, next);
 
@@ -547,6 +558,7 @@
 	put_task_stack(p);
 	return ret;
 }
+EXPORT_SYMBOL_GPL(get_wchan);
 
 unsigned long arch_align_stack(unsigned long sp)
 {
@@ -628,7 +640,8 @@
 		return -EINVAL;
 
 	if (system_supports_mte())
-		valid_mask |= PR_MTE_TCF_MASK | PR_MTE_TAG_MASK;
+		valid_mask |= PR_MTE_TCF_SYNC | PR_MTE_TCF_ASYNC \
+			| PR_MTE_TAG_MASK;
 
 	if (arg & ~valid_mask)
 		return -EINVAL;
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index be5f85b..6d5851b 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -40,6 +40,7 @@
 #include <asm/elf.h>
 #include <asm/cpufeature.h>
 #include <asm/cpu_ops.h>
+#include <asm/hypervisor.h>
 #include <asm/kasan.h>
 #include <asm/numa.h>
 #include <asm/sections.h>
@@ -49,6 +50,7 @@
 #include <asm/tlbflush.h>
 #include <asm/traps.h>
 #include <asm/efi.h>
+#include <asm/hypervisor.h>
 #include <asm/xen/hypervisor.h>
 #include <asm/mmu_context.h>
 
@@ -445,3 +447,9 @@
 	return 0;
 }
 device_initcall(register_arm64_panic_block);
+
+void kvm_arm_init_hyp_services(void)
+{
+	kvm_init_ioremap_services();
+	kvm_init_memshare_services();
+}
diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c
index b3e1bec..981f0c4 100644
--- a/arch/arm64/kernel/signal.c
+++ b/arch/arm64/kernel/signal.c
@@ -1012,7 +1012,6 @@
 static_assert(offsetof(siginfo_t, si_pkey)	== 0x20);
 static_assert(offsetof(siginfo_t, si_perf_data)	== 0x18);
 static_assert(offsetof(siginfo_t, si_perf_type)	== 0x20);
-static_assert(offsetof(siginfo_t, si_perf_flags) == 0x24);
 static_assert(offsetof(siginfo_t, si_band)	== 0x10);
 static_assert(offsetof(siginfo_t, si_fd)	== 0x18);
 static_assert(offsetof(siginfo_t, si_call_addr)	== 0x10);
diff --git a/arch/arm64/kernel/signal32.c b/arch/arm64/kernel/signal32.c
index 4700f85..d984282 100644
--- a/arch/arm64/kernel/signal32.c
+++ b/arch/arm64/kernel/signal32.c
@@ -487,7 +487,6 @@
 static_assert(offsetof(compat_siginfo_t, si_pkey)	== 0x14);
 static_assert(offsetof(compat_siginfo_t, si_perf_data)	== 0x10);
 static_assert(offsetof(compat_siginfo_t, si_perf_type)	== 0x14);
-static_assert(offsetof(compat_siginfo_t, si_perf_flags)	== 0x18);
 static_assert(offsetof(compat_siginfo_t, si_band)	== 0x0c);
 static_assert(offsetof(compat_siginfo_t, si_fd)		== 0x10);
 static_assert(offsetof(compat_siginfo_t, si_call_addr)	== 0x0c);
diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
index 3beaa66..7fec4e3 100644
--- a/arch/arm64/kernel/smp.c
+++ b/arch/arm64/kernel/smp.c
@@ -53,9 +53,14 @@
 
 #define CREATE_TRACE_POINTS
 #include <trace/events/ipi.h>
+#undef CREATE_TRACE_POINTS
+#include <trace/hooks/debug.h>
 
 DEFINE_PER_CPU_READ_MOSTLY(int, cpu_number);
 EXPORT_PER_CPU_SYMBOL(cpu_number);
+EXPORT_TRACEPOINT_SYMBOL_GPL(ipi_raise);
+EXPORT_TRACEPOINT_SYMBOL_GPL(ipi_entry);
+EXPORT_TRACEPOINT_SYMBOL_GPL(ipi_exit);
 
 /*
  * as from 2.5, kernels no longer have an init_tasks structure
@@ -903,6 +908,7 @@
 		break;
 
 	case IPI_CPU_STOP:
+		trace_android_vh_ipi_stop(get_irq_regs());
 		local_cpu_stop();
 		break;
 
@@ -994,7 +1000,12 @@
 		WARN_ON(err);
 
 		ipi_desc[i] = irq_to_desc(ipi_base + i);
-		irq_set_status_flags(ipi_base + i, IRQ_HIDDEN);
+
+		if (i != IPI_RESCHEDULE)
+			irq_set_status_flags(ipi_base + i, IRQ_HIDDEN);
+		else
+			/* The recheduling IPI is special... */
+			irq_set_status_flags(ipi_base + i, IRQ_HIDDEN|IRQ_RAW);
 	}
 
 	ipi_irq_base = ipi_base;
@@ -1128,5 +1139,18 @@
 {
 	bool smp_spin_tables = (num_possible_cpus() > 1 && !have_cpu_die());
 
-	return !!cpus_stuck_in_kernel || smp_spin_tables;
+	return !!cpus_stuck_in_kernel || smp_spin_tables ||
+		is_protected_kvm_enabled();
 }
+
+int nr_ipi_get(void)
+{
+	return nr_ipi;
+}
+EXPORT_SYMBOL_GPL(nr_ipi_get);
+
+struct irq_desc **ipi_desc_get(void)
+{
+	return ipi_desc;
+}
+EXPORT_SYMBOL_GPL(ipi_desc_get);
diff --git a/arch/arm64/kernel/stacktrace.c b/arch/arm64/kernel/stacktrace.c
index 3b8dc53..a89af34 100644
--- a/arch/arm64/kernel/stacktrace.c
+++ b/arch/arm64/kernel/stacktrace.c
@@ -56,6 +56,7 @@
 	frame->prev_type = STACK_TYPE_UNKNOWN;
 }
 NOKPROBE_SYMBOL(start_backtrace);
+EXPORT_SYMBOL_GPL(start_backtrace);
 
 /*
  * Unwind from one frame record (A) to the next frame record (B).
@@ -210,6 +211,7 @@
 
 	put_task_stack(tsk);
 }
+EXPORT_SYMBOL_GPL(dump_backtrace);
 
 void show_stack(struct task_struct *tsk, unsigned long *sp, const char *loglvl)
 {
diff --git a/arch/arm64/kernel/sys_compat.c b/arch/arm64/kernel/sys_compat.c
index b88a52f..f0fd49b 100644
--- a/arch/arm64/kernel/sys_compat.c
+++ b/arch/arm64/kernel/sys_compat.c
@@ -32,15 +32,6 @@
 		if (fatal_signal_pending(current))
 			return 0;
 
-		if (cpus_have_const_cap(ARM64_WORKAROUND_1542419)) {
-			/*
-			 * The workaround requires an inner-shareable tlbi.
-			 * We pick the reserved-ASID to minimise the impact.
-			 */
-			__tlbi(aside1is, __TLBI_VADDR(0, 0));
-			dsb(ish);
-		}
-
 		ret = caches_clean_inval_user_pou(start, start + chunk);
 		if (ret)
 			return ret;
diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c
index 21e69a9..760ba9f 100644
--- a/arch/arm64/kernel/traps.c
+++ b/arch/arm64/kernel/traps.c
@@ -46,6 +46,8 @@
 #include <asm/system_misc.h>
 #include <asm/sysreg.h>
 
+#include <trace/hooks/traps.h>
+
 static bool __kprobes __check_eq(unsigned long pstate)
 {
 	return (pstate & PSR_Z_BIT) != 0;
@@ -243,7 +245,7 @@
 	static DEFINE_RATELIMIT_STATE(rs, DEFAULT_RATELIMIT_INTERVAL,
 				      DEFAULT_RATELIMIT_BURST);
 	struct task_struct *tsk = current;
-	unsigned long esr = tsk->thread.fault_code;
+	unsigned int esr = tsk->thread.fault_code;
 	struct pt_regs *regs = task_pt_regs(tsk);
 
 	/* Leave if the signal won't be shown */
@@ -254,7 +256,7 @@
 
 	pr_info("%s[%d]: unhandled exception: ", tsk->comm, task_pid_nr(tsk));
 	if (esr)
-		pr_cont("%s, ESR 0x%016lx, ", esr_get_class_string(esr), esr);
+		pr_cont("%s, ESR 0x%08x, ", esr_get_class_string(esr), esr);
 
 	pr_cont("%s", str);
 	print_vma_addr(KERN_CONT " in ", regs->pc);
@@ -288,7 +290,7 @@
 
 void arm64_notify_die(const char *str, struct pt_regs *regs,
 		      int signo, int sicode, unsigned long far,
-		      unsigned long err)
+		      int err)
 {
 	if (user_mode(regs)) {
 		WARN_ON(regs != current_pt_regs());
@@ -440,7 +442,7 @@
 	return fn ? fn(regs, instr) : 1;
 }
 
-void force_signal_inject(int signal, int code, unsigned long address, unsigned long err)
+void force_signal_inject(int signal, int code, unsigned long address, unsigned int err)
 {
 	const char *desc;
 	struct pt_regs *regs = current_pt_regs();
@@ -495,6 +497,7 @@
 	if (call_undef_hook(regs) == 0)
 		return;
 
+	trace_android_rvh_do_undefinstr(regs);
 	BUG_ON(!user_mode(regs));
 	force_signal_inject(SIGILL, ILL_ILLOPC, regs->pc, 0);
 }
@@ -507,12 +510,13 @@
 }
 NOKPROBE_SYMBOL(do_bti);
 
-void do_ptrauth_fault(struct pt_regs *regs, unsigned long esr)
+void do_ptrauth_fault(struct pt_regs *regs, unsigned int esr)
 {
 	/*
 	 * Unexpected FPAC exception or pointer authentication failure in
 	 * the kernel: kill the task before it does any more harm.
 	 */
+	trace_android_rvh_do_ptrauth_fault(regs, esr);
 	BUG_ON(!user_mode(regs));
 	force_signal_inject(SIGILL, ILL_ILLOPN, regs->pc, esr);
 }
@@ -538,7 +542,7 @@
 		uaccess_ttbr0_disable();			\
 	}
 
-static void user_cache_maint_handler(unsigned long esr, struct pt_regs *regs)
+static void user_cache_maint_handler(unsigned int esr, struct pt_regs *regs)
 {
 	unsigned long tagged_address, address;
 	int rt = ESR_ELx_SYS64_ISS_RT(esr);
@@ -578,26 +582,17 @@
 		arm64_skip_faulting_instruction(regs, AARCH64_INSN_SIZE);
 }
 
-static void ctr_read_handler(unsigned long esr, struct pt_regs *regs)
+static void ctr_read_handler(unsigned int esr, struct pt_regs *regs)
 {
 	int rt = ESR_ELx_SYS64_ISS_RT(esr);
 	unsigned long val = arm64_ftr_reg_user_value(&arm64_ftr_reg_ctrel0);
 
-	if (cpus_have_const_cap(ARM64_WORKAROUND_1542419)) {
-		/* Hide DIC so that we can trap the unnecessary maintenance...*/
-		val &= ~BIT(CTR_DIC_SHIFT);
-
-		/* ... and fake IminLine to reduce the number of traps. */
-		val &= ~CTR_IMINLINE_MASK;
-		val |= (PAGE_SHIFT - 2) & CTR_IMINLINE_MASK;
-	}
-
 	pt_regs_write_reg(regs, rt, val);
 
 	arm64_skip_faulting_instruction(regs, AARCH64_INSN_SIZE);
 }
 
-static void cntvct_read_handler(unsigned long esr, struct pt_regs *regs)
+static void cntvct_read_handler(unsigned int esr, struct pt_regs *regs)
 {
 	int rt = ESR_ELx_SYS64_ISS_RT(esr);
 
@@ -605,7 +600,7 @@
 	arm64_skip_faulting_instruction(regs, AARCH64_INSN_SIZE);
 }
 
-static void cntfrq_read_handler(unsigned long esr, struct pt_regs *regs)
+static void cntfrq_read_handler(unsigned int esr, struct pt_regs *regs)
 {
 	int rt = ESR_ELx_SYS64_ISS_RT(esr);
 
@@ -613,7 +608,7 @@
 	arm64_skip_faulting_instruction(regs, AARCH64_INSN_SIZE);
 }
 
-static void mrs_handler(unsigned long esr, struct pt_regs *regs)
+static void mrs_handler(unsigned int esr, struct pt_regs *regs)
 {
 	u32 sysreg, rt;
 
@@ -624,15 +619,15 @@
 		force_signal_inject(SIGILL, ILL_ILLOPC, regs->pc, 0);
 }
 
-static void wfi_handler(unsigned long esr, struct pt_regs *regs)
+static void wfi_handler(unsigned int esr, struct pt_regs *regs)
 {
 	arm64_skip_faulting_instruction(regs, AARCH64_INSN_SIZE);
 }
 
 struct sys64_hook {
-	unsigned long esr_mask;
-	unsigned long esr_val;
-	void (*handler)(unsigned long esr, struct pt_regs *regs);
+	unsigned int esr_mask;
+	unsigned int esr_val;
+	void (*handler)(unsigned int esr, struct pt_regs *regs);
 };
 
 static const struct sys64_hook sys64_hooks[] = {
@@ -675,7 +670,7 @@
 };
 
 #ifdef CONFIG_COMPAT
-static bool cp15_cond_valid(unsigned long esr, struct pt_regs *regs)
+static bool cp15_cond_valid(unsigned int esr, struct pt_regs *regs)
 {
 	int cond;
 
@@ -695,7 +690,7 @@
 	return aarch32_opcode_cond_checks[cond](regs->pstate);
 }
 
-static void compat_cntfrq_read_handler(unsigned long esr, struct pt_regs *regs)
+static void compat_cntfrq_read_handler(unsigned int esr, struct pt_regs *regs)
 {
 	int reg = (esr & ESR_ELx_CP15_32_ISS_RT_MASK) >> ESR_ELx_CP15_32_ISS_RT_SHIFT;
 
@@ -712,7 +707,7 @@
 	{},
 };
 
-static void compat_cntvct_read_handler(unsigned long esr, struct pt_regs *regs)
+static void compat_cntvct_read_handler(unsigned int esr, struct pt_regs *regs)
 {
 	int rt = (esr & ESR_ELx_CP15_64_ISS_RT_MASK) >> ESR_ELx_CP15_64_ISS_RT_SHIFT;
 	int rt2 = (esr & ESR_ELx_CP15_64_ISS_RT2_MASK) >> ESR_ELx_CP15_64_ISS_RT2_SHIFT;
@@ -732,7 +727,7 @@
 	{},
 };
 
-void do_cp15instr(unsigned long esr, struct pt_regs *regs)
+void do_cp15instr(unsigned int esr, struct pt_regs *regs)
 {
 	const struct sys64_hook *hook, *hook_base;
 
@@ -773,7 +768,7 @@
 NOKPROBE_SYMBOL(do_cp15instr);
 #endif
 
-void do_sysinstr(unsigned long esr, struct pt_regs *regs)
+void do_sysinstr(unsigned int esr, struct pt_regs *regs)
 {
 	const struct sys64_hook *hook;
 
@@ -837,7 +832,7 @@
 	[ESR_ELx_EC_BRK64]		= "BRK (AArch64)",
 };
 
-const char *esr_get_class_string(unsigned long esr)
+const char *esr_get_class_string(u32 esr)
 {
 	return esr_class_str[ESR_ELx_EC(esr)];
 }
@@ -846,7 +841,7 @@
  * bad_el0_sync handles unexpected, but potentially recoverable synchronous
  * exceptions taken from EL0.
  */
-void bad_el0_sync(struct pt_regs *regs, int reason, unsigned long esr)
+void bad_el0_sync(struct pt_regs *regs, int reason, unsigned int esr)
 {
 	unsigned long pc = instruction_pointer(regs);
 
@@ -862,7 +857,7 @@
 DEFINE_PER_CPU(unsigned long [OVERFLOW_STACK_SIZE/sizeof(long)], overflow_stack)
 	__aligned(16);
 
-void panic_bad_stack(struct pt_regs *regs, unsigned long esr, unsigned long far)
+void panic_bad_stack(struct pt_regs *regs, unsigned int esr, unsigned long far)
 {
 	unsigned long tsk_stk = (unsigned long)current->stack;
 	unsigned long irq_stk = (unsigned long)this_cpu_read(irq_stack_ptr);
@@ -871,7 +866,7 @@
 	console_verbose();
 	pr_emerg("Insufficient stack space to handle exception!");
 
-	pr_emerg("ESR: 0x%016lx -- %s\n", esr, esr_get_class_string(esr));
+	pr_emerg("ESR: 0x%08x -- %s\n", esr, esr_get_class_string(esr));
 	pr_emerg("FAR: 0x%016lx\n", far);
 
 	pr_emerg("Task stack:     [0x%016lx..0x%016lx]\n",
@@ -892,12 +887,14 @@
 }
 #endif
 
-void __noreturn arm64_serror_panic(struct pt_regs *regs, unsigned long esr)
+void __noreturn arm64_serror_panic(struct pt_regs *regs, u32 esr)
 {
 	console_verbose();
 
-	pr_crit("SError Interrupt on CPU%d, code 0x%016lx -- %s\n",
+	pr_crit("SError Interrupt on CPU%d, code 0x%08x -- %s\n",
 		smp_processor_id(), esr, esr_get_class_string(esr));
+
+	trace_android_rvh_arm64_serror_panic(regs, esr);
 	if (regs)
 		__show_regs(regs);
 
@@ -907,9 +904,9 @@
 	unreachable();
 }
 
-bool arm64_is_fatal_ras_serror(struct pt_regs *regs, unsigned long esr)
+bool arm64_is_fatal_ras_serror(struct pt_regs *regs, unsigned int esr)
 {
-	unsigned long aet = arm64_ras_serror_get_severity(esr);
+	u32 aet = arm64_ras_serror_get_severity(esr);
 
 	switch (aet) {
 	case ESR_ELx_AET_CE:	/* corrected error */
@@ -939,8 +936,15 @@
 	}
 }
 
-void do_serror(struct pt_regs *regs, unsigned long esr)
+void do_serror(struct pt_regs *regs, unsigned int esr)
 {
+	int ret = 0;
+
+	/* Add vendor hooks for unusual abort cases */
+	trace_android_rvh_do_serror(regs, esr, &ret);
+	if (ret != 0)
+		return;
+
 	/* non-RAS errors are not containable */
 	if (!arm64_is_ras_serror(esr) || arm64_is_fatal_ras_serror(regs, esr))
 		arm64_serror_panic(regs, esr);
@@ -960,7 +964,7 @@
 	return 1;
 }
 
-static int bug_handler(struct pt_regs *regs, unsigned long esr)
+static int bug_handler(struct pt_regs *regs, unsigned int esr)
 {
 	switch (report_bug(regs->pc, regs)) {
 	case BUG_TRAP_TYPE_BUG:
@@ -985,7 +989,7 @@
 	.imm = BUG_BRK_IMM,
 };
 
-static int reserved_fault_handler(struct pt_regs *regs, unsigned long esr)
+static int reserved_fault_handler(struct pt_regs *regs, unsigned int esr)
 {
 	pr_err("%s generated an invalid instruction at %pS!\n",
 		"Kernel text patching",
@@ -1007,7 +1011,7 @@
 #define KASAN_ESR_SIZE_MASK	0x0f
 #define KASAN_ESR_SIZE(esr)	(1 << ((esr) & KASAN_ESR_SIZE_MASK))
 
-static int kasan_handler(struct pt_regs *regs, unsigned long esr)
+static int kasan_handler(struct pt_regs *regs, unsigned int esr)
 {
 	bool recover = esr & KASAN_ESR_RECOVER;
 	bool write = esr & KASAN_ESR_WRITE;
@@ -1050,11 +1054,11 @@
  * Initial handler for AArch64 BRK exceptions
  * This handler only used until debug_traps_init().
  */
-int __init early_brk64(unsigned long addr, unsigned long esr,
+int __init early_brk64(unsigned long addr, unsigned int esr,
 		struct pt_regs *regs)
 {
 #ifdef CONFIG_KASAN_SW_TAGS
-	unsigned long comment = esr & ESR_ELx_BRK64_ISS_COMMENT_MASK;
+	unsigned int comment = esr & ESR_ELx_BRK64_ISS_COMMENT_MASK;
 
 	if ((comment & ~KASAN_BRK_MASK) == KASAN_BRK_IMM)
 		return kasan_handler(regs, esr) != DBG_HOOK_HANDLED;
diff --git a/arch/arm64/kernel/vmlinux.lds.S b/arch/arm64/kernel/vmlinux.lds.S
index 184abd7c..ed89524 100644
--- a/arch/arm64/kernel/vmlinux.lds.S
+++ b/arch/arm64/kernel/vmlinux.lds.S
@@ -13,7 +13,7 @@
 	*(__kvm_ex_table)					\
 	__stop___kvm_ex_table = .;
 
-#define HYPERVISOR_DATA_SECTIONS				\
+#define HYPERVISOR_RODATA_SECTIONS				\
 	HYP_SECTION_NAME(.rodata) : {				\
 		. = ALIGN(PAGE_SIZE);				\
 		__hyp_rodata_start = .;				\
@@ -23,6 +23,15 @@
 		__hyp_rodata_end = .;				\
 	}
 
+#define HYPERVISOR_DATA_SECTION					\
+	HYP_SECTION_NAME(.data) : {				\
+		. = ALIGN(PAGE_SIZE);				\
+		__hyp_data_start = .;				\
+		*(HYP_SECTION_NAME(.data))			\
+		. = ALIGN(PAGE_SIZE);				\
+		__hyp_data_end = .;				\
+	}
+
 #define HYPERVISOR_PERCPU_SECTION				\
 	. = ALIGN(PAGE_SIZE);					\
 	HYP_SECTION_NAME(.data..percpu) : {			\
@@ -51,7 +60,8 @@
 #define SBSS_ALIGN			PAGE_SIZE
 #else /* CONFIG_KVM */
 #define HYPERVISOR_EXTABLE
-#define HYPERVISOR_DATA_SECTIONS
+#define HYPERVISOR_RODATA_SECTIONS
+#define HYPERVISOR_DATA_SECTION
 #define HYPERVISOR_PERCPU_SECTION
 #define HYPERVISOR_RELOC_SECTION
 #define SBSS_ALIGN			0
@@ -181,7 +191,7 @@
 	/* everything from this point to __init_begin will be marked RO NX */
 	RO_DATA(PAGE_SIZE)
 
-	HYPERVISOR_DATA_SECTIONS
+	HYPERVISOR_RODATA_SECTIONS
 
 	idmap_pg_dir = .;
 	. += IDMAP_DIR_SIZE;
@@ -262,6 +272,8 @@
 	_sdata = .;
 	RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, THREAD_ALIGN)
 
+	HYPERVISOR_DATA_SECTION
+
 	/*
 	 * Data written with the MMU off but read with the MMU on requires
 	 * cache lines to be invalidated, discarding up to a Cache Writeback
diff --git a/arch/arm64/kvm/.gitignore b/arch/arm64/kvm/.gitignore
new file mode 100644
index 0000000..6182aef
--- /dev/null
+++ b/arch/arm64/kvm/.gitignore
@@ -0,0 +1,2 @@
+# SPDX-License-Identifier: GPL-2.0-only
+hyp_constants.h
diff --git a/arch/arm64/kvm/Kconfig b/arch/arm64/kvm/Kconfig
index d7eec0b..63a966d 100644
--- a/arch/arm64/kvm/Kconfig
+++ b/arch/arm64/kvm/Kconfig
@@ -4,6 +4,7 @@
 #
 
 source "virt/lib/Kconfig"
+source "virt/kvm/Kconfig"
 
 menuconfig VIRTUALIZATION
 	bool "Virtualization"
@@ -19,7 +20,7 @@
 
 menuconfig KVM
 	bool "Kernel-based Virtual Machine (KVM) support"
-	depends on OF
+	depends on HAVE_KVM
 	select MMU_NOTIFIER
 	select PREEMPT_NOTIFIERS
 	select HAVE_KVM_CPU_RELAX_INTERCEPT
@@ -43,12 +44,9 @@
 
 	  If unsure, say N.
 
-if KVM
-
-source "virt/kvm/Kconfig"
-
 config NVHE_EL2_DEBUG
 	bool "Debug mode for non-VHE EL2 object"
+	depends on KVM
 	help
 	  Say Y here to enable the debug mode for the non-VHE KVM EL2 object.
 	  Failure reports will BUG() in the hypervisor. This is intended for
@@ -56,6 +54,19 @@
 
 	  If unsure, say N.
 
-endif # KVM
+config KVM_S2MPU
+	bool "Stage-2 Memory Protection Unit support"
+	depends on KVM
+	help
+	  Support for the Stage-2 Memory Protection Unit (S2MPU) and Stream
+	  Security Mapping Table (SSMT) devices in KVM. This allows the
+	  hypervisor to restrict DMA access to its memory and the memory of
+	  protected guests.
+
+config TEST_KVM_S2MPU
+	tristate "Test kernel module for S2MPU"
+	depends on KVM_S2MPU
+	help
+	  Kernel module for kselftests that exercises the KVM S2MPU driver.
 
 endif # VIRTUALIZATION
diff --git a/arch/arm64/kvm/Makefile b/arch/arm64/kvm/Makefile
index 989bb5d..6ca31a4 100644
--- a/arch/arm64/kvm/Makefile
+++ b/arch/arm64/kvm/Makefile
@@ -8,14 +8,14 @@
 KVM=../../../virt/kvm
 
 obj-$(CONFIG_KVM) += kvm.o
-obj-$(CONFIG_KVM) += hyp/
+obj-$(CONFIG_KVM) += hyp/ iommu/
 
 kvm-y := $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o $(KVM)/eventfd.o \
-	 $(KVM)/vfio.o $(KVM)/irqchip.o $(KVM)/binary_stats.o \
+	 $(KVM)/vfio.o $(KVM)/irqchip.o $(KVM)/binary_stats.o iommu.o \
 	 arm.o mmu.o mmio.o psci.o perf.o hypercalls.o pvtime.o \
 	 inject_fault.o va_layout.o handle_exit.o \
 	 guest.o debug.o reset.o sys_regs.o \
-	 vgic-sys-reg-v3.o fpsimd.o pmu.o \
+	 vgic-sys-reg-v3.o fpsimd.o pmu.o pkvm.o \
 	 arch_timer.o trng.o\
 	 vgic/vgic.o vgic/vgic-init.o \
 	 vgic/vgic-irqfd.o vgic/vgic-v2.o \
@@ -25,3 +25,19 @@
 	 vgic/vgic-its.o vgic/vgic-debug.o
 
 kvm-$(CONFIG_HW_PERF_EVENTS)  += pmu-emul.o
+
+always-y := hyp_constants.h hyp-constants.s
+
+define rule_gen_hyp_constants
+	$(call filechk,offsets,__HYP_CONSTANTS_H__)
+endef
+
+CFLAGS_hyp-constants.o = -I $(srctree)/$(src)/hyp/include -D__KVM_NVHE_HYPERVISOR__=1
+$(obj)/hyp-constants.s: $(src)/hyp/hyp-constants.c FORCE
+	$(call if_changed_dep,cc_s_c)
+
+$(obj)/hyp_constants.h: $(obj)/hyp-constants.s FORCE
+	$(call if_changed_rule,gen_hyp_constants)
+
+obj-kvm := $(addprefix $(obj)/, $(kvm-y))
+$(obj-kvm): $(obj)/hyp_constants.h
diff --git a/arch/arm64/kvm/arch_timer.c b/arch/arm64/kvm/arch_timer.c
index 3df67c1..b81944f 100644
--- a/arch/arm64/kvm/arch_timer.c
+++ b/arch/arm64/kvm/arch_timer.c
@@ -88,7 +88,9 @@
 
 	switch(arch_timer_ctx_index(ctxt)) {
 	case TIMER_VTIMER:
-		return __vcpu_sys_reg(vcpu, CNTVOFF_EL2);
+		if (likely(!kvm_vm_is_protected(vcpu->kvm)))
+			return __vcpu_sys_reg(vcpu, CNTVOFF_EL2);
+		fallthrough;
 	default:
 		return 0;
 	}
@@ -754,6 +756,9 @@
 	struct kvm *kvm = vcpu->kvm;
 	struct kvm_vcpu *tmp;
 
+	if (unlikely(kvm_vm_is_protected(vcpu->kvm)))
+		cntvoff = 0;
+
 	mutex_lock(&kvm->lock);
 	kvm_for_each_vcpu(i, tmp, kvm)
 		timer_set_offset(vcpu_vtimer(tmp), cntvoff);
diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c
index 3fe816c..37c75c4 100644
--- a/arch/arm64/kvm/arm.c
+++ b/arch/arm64/kvm/arm.c
@@ -37,6 +37,7 @@
 #include <asm/kvm_arm.h>
 #include <asm/kvm_asm.h>
 #include <asm/kvm_mmu.h>
+#include <asm/kvm_pkvm.h>
 #include <asm/kvm_emulate.h>
 #include <asm/sections.h>
 
@@ -50,7 +51,6 @@
 DECLARE_KVM_HYP_PER_CPU(unsigned long, kvm_hyp_vector);
 
 static DEFINE_PER_CPU(unsigned long, kvm_arm_hyp_stack_page);
-unsigned long kvm_arm_hyp_percpu_base[NR_CPUS];
 DECLARE_KVM_NVHE_PER_CPU(struct kvm_nvhe_init_params, kvm_init_params);
 
 /* The VMID used in the VTTBR */
@@ -83,13 +83,25 @@
 {
 	int r;
 
-	if (cap->flags)
-		return -EINVAL;
+	/* Capabilities with flags */
+	switch (cap->cap) {
+	case KVM_CAP_ARM_PROTECTED_VM:
+		return kvm_arm_vm_ioctl_pkvm(kvm, cap);
+	default:
+		if (cap->flags)
+			return -EINVAL;
+	}
 
+	/* Capabilities without flags */
 	switch (cap->cap) {
 	case KVM_CAP_ARM_NISV_TO_USER:
-		r = 0;
-		kvm->arch.return_nisv_io_abort_to_user = true;
+		if (kvm_vm_is_protected(kvm)) {
+			r = -EINVAL;
+		} else {
+			r = 0;
+			set_bit(KVM_ARCH_FLAG_RETURN_NISV_IO_ABORT_TO_USER,
+				&kvm->arch.flags);
+		}
 		break;
 	case KVM_CAP_ARM_MTE:
 		mutex_lock(&kvm->lock);
@@ -97,7 +109,7 @@
 			r = -EINVAL;
 		} else {
 			r = 0;
-			kvm->arch.mte_enabled = true;
+			set_bit(KVM_ARCH_FLAG_MTE_ENABLED, &kvm->arch.flags);
 		}
 		mutex_unlock(&kvm->lock);
 		break;
@@ -138,17 +150,20 @@
 {
 	int ret;
 
-	ret = kvm_arm_setup_stage2(kvm, type);
+	if (type & ~KVM_VM_TYPE_MASK)
+		return -EINVAL;
+
+	ret = kvm_share_hyp(kvm, kvm + 1);
 	if (ret)
 		return ret;
 
-	ret = kvm_init_stage2_mmu(kvm, &kvm->arch.mmu);
+	ret = kvm_init_pvm(kvm, type);
 	if (ret)
 		return ret;
 
-	ret = create_hyp_mappings(kvm, kvm + 1, PAGE_HYP);
+	ret = kvm_init_stage2_mmu(kvm, &kvm->arch.mmu, type);
 	if (ret)
-		goto out_free_stage2_pgd;
+		return ret;
 
 	kvm_vgic_early_init(kvm);
 
@@ -158,9 +173,6 @@
 	set_default_spectre(kvm);
 
 	return ret;
-out_free_stage2_pgd:
-	kvm_free_stage2_pgd(&kvm->arch.mmu);
-	return ret;
 }
 
 vm_fault_t kvm_arch_vcpu_fault(struct kvm_vcpu *vcpu, struct vm_fault *vmf)
@@ -168,7 +180,6 @@
 	return VM_FAULT_SIGBUS;
 }
 
-
 /**
  * kvm_arch_destroy_vm - destroy the VM data structure
  * @kvm:	pointer to the KVM struct
@@ -181,6 +192,9 @@
 
 	kvm_vgic_destroy(kvm);
 
+	if (is_protected_kvm_enabled())
+		kvm_shadow_destroy(kvm);
+
 	for (i = 0; i < KVM_MAX_VCPUS; ++i) {
 		if (kvm->vcpus[i]) {
 			kvm_vcpu_destroy(kvm->vcpus[i]);
@@ -188,11 +202,14 @@
 		}
 	}
 	atomic_set(&kvm->online_vcpus, 0);
+
+	kvm_unshare_hyp(kvm, kvm + 1);
 }
 
-int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
+static int kvm_check_extension(struct kvm *kvm, long ext)
 {
 	int r;
+
 	switch (ext) {
 	case KVM_CAP_IRQCHIP:
 		r = vgic_present;
@@ -210,20 +227,29 @@
 	case KVM_CAP_IMMEDIATE_EXIT:
 	case KVM_CAP_VCPU_EVENTS:
 	case KVM_CAP_ARM_IRQ_LINE_LAYOUT_2:
-	case KVM_CAP_ARM_NISV_TO_USER:
 	case KVM_CAP_ARM_INJECT_EXT_DABT:
 	case KVM_CAP_SET_GUEST_DEBUG:
 	case KVM_CAP_VCPU_ATTRIBUTES:
 	case KVM_CAP_PTP_KVM:
 		r = 1;
 		break;
+	case KVM_CAP_ARM_NISV_TO_USER:
+		r = !kvm || !kvm_vm_is_protected(kvm);
+		break;
 	case KVM_CAP_SET_GUEST_DEBUG2:
 		return KVM_GUESTDBG_VALID_MASK;
 	case KVM_CAP_ARM_SET_DEVICE_ADDR:
 		r = 1;
 		break;
 	case KVM_CAP_NR_VCPUS:
-		r = num_online_cpus();
+		/*
+		 * ARM64 treats KVM_CAP_NR_CPUS differently from all other
+		 * architectures, as it does not always bound it to
+		 * KVM_CAP_MAX_VCPUS. It should not matter much because
+		 * this is just an advisory value.
+		 */
+		r = min_t(unsigned int, num_online_cpus(),
+			  kvm_arm_default_max_vcpus());
 		break;
 	case KVM_CAP_MAX_VCPUS:
 	case KVM_CAP_MAX_VCPU_ID:
@@ -270,7 +296,7 @@
 		r = get_kvm_ipa_limit();
 		break;
 	case KVM_CAP_ARM_SVE:
-		r = system_supports_sve();
+		r = system_supports_sve() && !is_protected_kvm_enabled();
 		break;
 	case KVM_CAP_ARM_PTRAUTH_ADDRESS:
 	case KVM_CAP_ARM_PTRAUTH_GENERIC:
@@ -283,6 +309,74 @@
 	return r;
 }
 
+/*
+ * Checks whether the exctension specified in ext is supported for protected
+ * vms. The capabilities supported by kvm in general are passed in kvm_cap.
+ */
+static int pkvm_check_extension(struct kvm *kvm, long ext, int kvm_cap)
+{
+	int r;
+
+	switch (ext) {
+	case KVM_CAP_IRQCHIP:
+	case KVM_CAP_ARM_PSCI:
+	case KVM_CAP_ARM_PSCI_0_2:
+	case KVM_CAP_NR_VCPUS:
+	case KVM_CAP_MAX_VCPUS:
+	case KVM_CAP_MAX_VCPU_ID:
+	case KVM_CAP_MSI_DEVID:
+	case KVM_CAP_ARM_VM_IPA_SIZE:
+		r = kvm_cap;
+		break;
+	case KVM_CAP_GUEST_DEBUG_HW_BPS:
+		r = min(kvm_cap, pkvm_get_max_brps());
+		break;
+	case KVM_CAP_GUEST_DEBUG_HW_WPS:
+		r = min(kvm_cap, pkvm_get_max_wrps());
+		break;
+	case KVM_CAP_ARM_PMU_V3:
+		r = kvm_cap && FIELD_GET(ARM64_FEATURE_MASK(ID_AA64DFR0_PMUVER),
+					 PVM_ID_AA64DFR0_ALLOW);
+		break;
+	case KVM_CAP_ARM_SVE:
+		r = kvm_cap && FIELD_GET(ARM64_FEATURE_MASK(ID_AA64PFR0_SVE),
+					 PVM_ID_AA64PFR0_RESTRICT_UNSIGNED);
+		break;
+	case KVM_CAP_ARM_PTRAUTH_ADDRESS:
+		r = kvm_cap &&
+		    FIELD_GET(ARM64_FEATURE_MASK(ID_AA64ISAR1_API),
+			      PVM_ID_AA64ISAR1_ALLOW) &&
+		    FIELD_GET(ARM64_FEATURE_MASK(ID_AA64ISAR1_APA),
+			      PVM_ID_AA64ISAR1_ALLOW);
+		break;
+	case KVM_CAP_ARM_PTRAUTH_GENERIC:
+		r = kvm_cap &&
+		    FIELD_GET(ARM64_FEATURE_MASK(ID_AA64ISAR1_GPI),
+			      PVM_ID_AA64ISAR1_ALLOW) &&
+		    FIELD_GET(ARM64_FEATURE_MASK(ID_AA64ISAR1_GPA),
+			      PVM_ID_AA64ISAR1_ALLOW);
+		break;
+	case KVM_CAP_ARM_PROTECTED_VM:
+		r = 1;
+		break;
+	default:
+		r = 0;
+		break;
+	}
+
+	return r;
+}
+
+int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
+{
+	int r = kvm_check_extension(kvm, ext);
+
+	if (unlikely(kvm && kvm_vm_is_protected(kvm)))
+		r = pkvm_check_extension(kvm, ext, r);
+
+	return r;
+}
+
 long kvm_arch_dev_ioctl(struct file *filp,
 			unsigned int ioctl, unsigned long arg)
 {
@@ -291,10 +385,12 @@
 
 struct kvm *kvm_arch_alloc_vm(void)
 {
-	if (!has_vhe())
-		return kzalloc(sizeof(struct kvm), GFP_KERNEL);
+	size_t sz = sizeof(struct kvm);
 
-	return vzalloc(sizeof(struct kvm));
+	if (!has_vhe())
+		return kzalloc(sz, GFP_KERNEL_ACCOUNT);
+
+	return __vmalloc(sz, GFP_KERNEL_ACCOUNT | __GFP_HIGHMEM | __GFP_ZERO);
 }
 
 void kvm_arch_free_vm(struct kvm *kvm)
@@ -341,7 +437,7 @@
 	if (err)
 		return err;
 
-	return create_hyp_mappings(vcpu, vcpu + 1, PAGE_HYP);
+	return kvm_share_hyp(vcpu, vcpu + 1);
 }
 
 void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu)
@@ -350,10 +446,13 @@
 
 void kvm_arch_vcpu_destroy(struct kvm_vcpu *vcpu)
 {
-	if (vcpu->arch.has_run_once && unlikely(!irqchip_in_kernel(vcpu->kvm)))
+	if (vcpu_has_run_once(vcpu) && unlikely(!irqchip_in_kernel(vcpu->kvm)))
 		static_branch_dec(&userspace_irqchip_in_use);
 
-	kvm_mmu_free_memory_cache(&vcpu->arch.mmu_page_cache);
+	if (is_protected_kvm_enabled())
+		free_hyp_memcache(&vcpu->arch.pkvm_memcache);
+	else
+		kvm_mmu_free_memory_cache(&vcpu->arch.mmu_page_cache);
 	kvm_timer_vcpu_terminate(vcpu);
 	kvm_pmu_vcpu_destroy(vcpu);
 
@@ -378,15 +477,14 @@
 	 * doorbells to be signalled, should an interrupt become pending.
 	 */
 	preempt_disable();
-	kvm_vgic_vmcr_sync(vcpu);
-	vgic_v4_put(vcpu, true);
+	kvm_vgic_put(vcpu, true);
 	preempt_enable();
 }
 
 void kvm_arch_vcpu_unblocking(struct kvm_vcpu *vcpu)
 {
 	preempt_disable();
-	vgic_v4_load(vcpu);
+	kvm_vgic_load(vcpu);
 	preempt_enable();
 }
 
@@ -395,6 +493,9 @@
 	struct kvm_s2_mmu *mmu;
 	int *last_ran;
 
+	if (is_protected_kvm_enabled())
+		goto nommu;
+
 	mmu = vcpu->arch.hw_mmu;
 	last_ran = this_cpu_ptr(mmu->last_vcpu_ran);
 
@@ -412,6 +513,7 @@
 		*last_ran = vcpu->vcpu_id;
 	}
 
+nommu:
 	vcpu->cpu = cpu;
 
 	kvm_vgic_load(vcpu);
@@ -431,16 +533,34 @@
 	if (vcpu_has_ptrauth(vcpu))
 		vcpu_ptrauth_disable(vcpu);
 	kvm_arch_vcpu_load_debug_state_flags(vcpu);
+
+	if (is_protected_kvm_enabled()) {
+		kvm_call_hyp_nvhe(__pkvm_vcpu_load,
+				  vcpu->kvm->arch.pkvm.shadow_handle,
+				  vcpu->vcpu_idx, vcpu->arch.hcr_el2);
+		kvm_call_hyp(__vgic_v3_restore_vmcr_aprs,
+			     &vcpu->arch.vgic_cpu.vgic_v3);
+	}
 }
 
 void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu)
 {
+	if (is_protected_kvm_enabled()) {
+		kvm_call_hyp(__vgic_v3_save_vmcr_aprs,
+			     &vcpu->arch.vgic_cpu.vgic_v3);
+		kvm_call_hyp_nvhe(__pkvm_vcpu_put);
+
+		/* __pkvm_vcpu_put implies a sync of the state */
+		if (!kvm_vm_is_protected(vcpu->kvm))
+			vcpu->arch.flags |= KVM_ARM64_PKVM_STATE_DIRTY;
+	}
+
 	kvm_arch_vcpu_put_debug_state_flags(vcpu);
 	kvm_arch_vcpu_put_fp(vcpu);
 	if (has_vhe())
 		kvm_vcpu_put_sysregs_vhe(vcpu);
 	kvm_timer_vcpu_put(vcpu);
-	kvm_vgic_put(vcpu);
+	kvm_vgic_put(vcpu, false);
 	kvm_vcpu_pmu_restore_host(vcpu);
 
 	vcpu->cpu = -1;
@@ -583,18 +703,33 @@
 	spin_unlock(&kvm_vmid_lock);
 }
 
-static int kvm_vcpu_first_run_init(struct kvm_vcpu *vcpu)
+static int kvm_vcpu_initialized(struct kvm_vcpu *vcpu)
+{
+	return vcpu->arch.target >= 0;
+}
+
+/*
+ * Handle both the initialisation that is being done when the vcpu is
+ * run for the first time, as well as the updates that must be
+ * performed each time we get a new thread dealing with this vcpu.
+ */
+int kvm_arch_vcpu_run_pid_change(struct kvm_vcpu *vcpu)
 {
 	struct kvm *kvm = vcpu->kvm;
-	int ret = 0;
+	int ret;
 
-	if (likely(vcpu->arch.has_run_once))
-		return 0;
+	if (!kvm_vcpu_initialized(vcpu))
+		return -ENOEXEC;
 
 	if (!kvm_arm_vcpu_is_finalized(vcpu))
 		return -EPERM;
 
-	vcpu->arch.has_run_once = true;
+	ret = kvm_arch_vcpu_run_map_fp(vcpu);
+	if (ret)
+		return ret;
+
+	if (likely(vcpu_has_run_once(vcpu)))
+		return 0;
 
 	kvm_arm_vcpu_init_debug(vcpu);
 
@@ -606,12 +741,6 @@
 		ret = kvm_vgic_map_resources(kvm);
 		if (ret)
 			return ret;
-	} else {
-		/*
-		 * Tell the rest of the code that there are userspace irqchip
-		 * VMs in the wild.
-		 */
-		static_branch_inc(&userspace_irqchip_in_use);
 	}
 
 	ret = kvm_timer_enable(vcpu);
@@ -619,6 +748,23 @@
 		return ret;
 
 	ret = kvm_arm_pmu_v3_enable(vcpu);
+	if (ret)
+		return ret;
+
+	if (!irqchip_in_kernel(kvm)) {
+		/*
+		 * Tell the rest of the code that there are userspace irqchip
+		 * VMs in the wild.
+		 */
+		static_branch_inc(&userspace_irqchip_in_use);
+	}
+
+	if (is_protected_kvm_enabled()) {
+		/* Start with the vcpu in a dirty state */
+		if (!kvm_vm_is_protected(vcpu->kvm))
+			vcpu->arch.flags |= KVM_ARM64_PKVM_STATE_DIRTY;
+		ret = create_el2_shadow(kvm);
+	}
 
 	return ret;
 }
@@ -670,11 +816,6 @@
 	smp_rmb();
 }
 
-static int kvm_vcpu_initialized(struct kvm_vcpu *vcpu)
-{
-	return vcpu->arch.target >= 0;
-}
-
 static void check_vcpu_requests(struct kvm_vcpu *vcpu)
 {
 	if (kvm_request_pending(vcpu)) {
@@ -787,13 +928,6 @@
 	struct kvm_run *run = vcpu->run;
 	int ret;
 
-	if (unlikely(!kvm_vcpu_initialized(vcpu)))
-		return -ENOEXEC;
-
-	ret = kvm_vcpu_first_run_init(vcpu);
-	if (ret)
-		return ret;
-
 	if (run->exit_reason == KVM_EXIT_MMIO) {
 		ret = kvm_handle_mmio_return(vcpu);
 		if (ret)
@@ -857,6 +991,7 @@
 		}
 
 		kvm_arm_setup_debug(vcpu);
+		kvm_arch_vcpu_ctxflush_fp(vcpu);
 
 		/**************************************************************
 		 * Enter the guest
@@ -1128,7 +1263,7 @@
 	 * need to invalidate the I-cache though, as FWB does *not*
 	 * imply CTR_EL0.DIC.
 	 */
-	if (vcpu->arch.has_run_once) {
+	if (vcpu_has_run_once(vcpu)) {
 		if (!cpus_have_final_cap(ARM64_HAS_STAGE2_FWB))
 			stage2_unmap_vm(vcpu->kvm);
 		else
@@ -1401,12 +1536,9 @@
 		return kvm_vm_ioctl_set_device_addr(kvm, &dev_addr);
 	}
 	case KVM_ARM_PREFERRED_TARGET: {
-		int err;
 		struct kvm_vcpu_init init;
 
-		err = kvm_vcpu_preferred_target(&init);
-		if (err)
-			return err;
+		kvm_vcpu_preferred_target(&init);
 
 		if (copy_to_user(argp, &init, sizeof(init)))
 			return -EFAULT;
@@ -1591,25 +1723,33 @@
 		kvm_call_hyp_nvhe(__pkvm_cpu_set_vector, data->slot);
 }
 
-static void cpu_hyp_reinit(void)
+static void cpu_hyp_init_context(void)
 {
 	kvm_init_host_cpu_context(&this_cpu_ptr_hyp_sym(kvm_host_data)->host_ctxt);
 
-	cpu_hyp_reset();
+	if (!is_kernel_in_hyp_mode())
+		cpu_init_hyp_mode();
+}
+
+static void cpu_hyp_init_features(void)
+{
+	cpu_set_hyp_vector();
+	kvm_arm_init_debug();
 
 	if (is_kernel_in_hyp_mode())
 		kvm_timer_init_vhe();
-	else
-		cpu_init_hyp_mode();
-
-	cpu_set_hyp_vector();
-
-	kvm_arm_init_debug();
 
 	if (vgic_present)
 		kvm_vgic_init_cpu_hardware();
 }
 
+static void cpu_hyp_reinit(void)
+{
+	cpu_hyp_reset();
+	cpu_hyp_init_context();
+	cpu_hyp_init_features();
+}
+
 static void _kvm_arch_hardware_enable(void *discard)
 {
 	if (!__this_cpu_read(kvm_arm_hardware_enabled)) {
@@ -1724,6 +1864,7 @@
 	}
 
 	kvm_host_psci_config.version = psci_ops.get_version();
+	kvm_host_psci_config.smccc_version = arm_smccc_get_version();
 
 	if (kvm_host_psci_config.version == PSCI_VERSION(0, 1)) {
 		kvm_host_psci_config.function_ids_0_1 = get_psci_0_1_function_ids();
@@ -1790,20 +1931,27 @@
 	free_hyp_pgds();
 	for_each_possible_cpu(cpu) {
 		free_page(per_cpu(kvm_arm_hyp_stack_page, cpu));
-		free_pages(kvm_arm_hyp_percpu_base[cpu], nvhe_percpu_order());
+		free_pages(kvm_nvhe_sym(kvm_arm_hyp_percpu_base)[cpu], nvhe_percpu_order());
 	}
 }
 
 static int do_pkvm_init(u32 hyp_va_bits)
 {
-	void *per_cpu_base = kvm_ksym_ref(kvm_arm_hyp_percpu_base);
+	void *per_cpu_base = kvm_ksym_ref(kvm_nvhe_sym(kvm_arm_hyp_percpu_base));
 	int ret;
 
 	preempt_disable();
-	hyp_install_host_vector();
+	cpu_hyp_init_context();
 	ret = kvm_call_hyp_nvhe(__pkvm_init, hyp_mem_base, hyp_mem_size,
 				num_possible_cpus(), kern_hyp_va(per_cpu_base),
 				hyp_va_bits);
+	cpu_hyp_init_features();
+
+	/*
+	 * The stub hypercalls are now disabled, so set our local flag to
+	 * prevent a later re-init attempt in kvm_arch_hardware_enable().
+	 */
+	__this_cpu_write(kvm_arm_hardware_enabled, 1);
 	preempt_enable();
 
 	return ret;
@@ -1814,8 +1962,15 @@
 	void *addr = phys_to_virt(hyp_mem_base);
 	int ret;
 
+	kvm_nvhe_sym(id_aa64pfr0_el1_sys_val) = read_sanitised_ftr_reg(SYS_ID_AA64PFR0_EL1);
+	kvm_nvhe_sym(id_aa64pfr1_el1_sys_val) = read_sanitised_ftr_reg(SYS_ID_AA64PFR1_EL1);
+	kvm_nvhe_sym(id_aa64isar0_el1_sys_val) = read_sanitised_ftr_reg(SYS_ID_AA64ISAR0_EL1);
+	kvm_nvhe_sym(id_aa64isar1_el1_sys_val) = read_sanitised_ftr_reg(SYS_ID_AA64ISAR1_EL1);
 	kvm_nvhe_sym(id_aa64mmfr0_el1_sys_val) = read_sanitised_ftr_reg(SYS_ID_AA64MMFR0_EL1);
 	kvm_nvhe_sym(id_aa64mmfr1_el1_sys_val) = read_sanitised_ftr_reg(SYS_ID_AA64MMFR1_EL1);
+	kvm_nvhe_sym(id_aa64mmfr2_el1_sys_val) = read_sanitised_ftr_reg(SYS_ID_AA64MMFR2_EL1);
+	kvm_nvhe_sym(__icache_flags) = __icache_flags;
+	kvm_nvhe_sym(smccc_trng_available) = smccc_trng_available;
 
 	ret = create_hyp_mappings(addr, addr + hyp_mem_size, PAGE_HYP);
 	if (ret)
@@ -1883,7 +2038,7 @@
 
 		page_addr = page_address(page);
 		memcpy(page_addr, CHOOSE_NVHE_SYM(__per_cpu_start), nvhe_percpu_size());
-		kvm_arm_hyp_percpu_base[cpu] = (unsigned long)page_addr;
+		kvm_nvhe_sym(kvm_arm_hyp_percpu_base)[cpu] = (unsigned long)page_addr;
 	}
 
 	/*
@@ -1896,6 +2051,13 @@
 		goto out_err;
 	}
 
+	err = create_hyp_mappings(kvm_ksym_ref(__hyp_data_start),
+				  kvm_ksym_ref(__hyp_data_end), PAGE_HYP);
+	if (err) {
+		kvm_err("Cannot map .hyp.data section\n");
+		goto out_err;
+	}
+
 	err = create_hyp_mappings(kvm_ksym_ref(__hyp_rodata_start),
 				  kvm_ksym_ref(__hyp_rodata_end), PAGE_HYP_RO);
 	if (err) {
@@ -1944,7 +2106,7 @@
 	}
 
 	for_each_possible_cpu(cpu) {
-		char *percpu_begin = (char *)kvm_arm_hyp_percpu_base[cpu];
+		char *percpu_begin = (char *)kvm_nvhe_sym(kvm_arm_hyp_percpu_base)[cpu];
 		char *percpu_end = percpu_begin + nvhe_percpu_size();
 
 		/* Map Hyp percpu pages */
@@ -2025,6 +2187,7 @@
 	 * at, which would end badly once inaccessible.
 	 */
 	kmemleak_free_part(__hyp_bss_start, __hyp_bss_end - __hyp_bss_start);
+	kmemleak_free_part(__hyp_data_start, __hyp_data_end - __hyp_data_start);
 	kmemleak_free_part(__va(hyp_mem_base), hyp_mem_size);
 	return pkvm_drop_host_privileges();
 }
@@ -2095,6 +2258,11 @@
 		return -ENODEV;
 	}
 
+	if (kvm_get_mode() == KVM_MODE_NONE) {
+		kvm_info("KVM disabled from command line\n");
+		return -ENODEV;
+	}
+
 	in_hyp_mode = is_kernel_in_hyp_mode();
 
 	if (cpus_have_final_cap(ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE) ||
@@ -2163,13 +2331,29 @@
 	if (!arg)
 		return -EINVAL;
 
-	if (strcmp(arg, "protected") == 0) {
-		kvm_mode = KVM_MODE_PROTECTED;
+	if (strcmp(arg, "none") == 0) {
+		kvm_mode = KVM_MODE_NONE;
 		return 0;
 	}
 
-	if (strcmp(arg, "nvhe") == 0 && !WARN_ON(is_kernel_in_hyp_mode()))
+	if (!is_hyp_mode_available()) {
+		pr_warn_once("KVM is not available. Ignoring kvm-arm.mode\n");
 		return 0;
+	}
+
+	if (strcmp(arg, "protected") == 0) {
+		if (!is_kernel_in_hyp_mode())
+			kvm_mode = KVM_MODE_PROTECTED;
+		else
+			pr_warn_once("Protected KVM not available with VHE\n");
+
+		return 0;
+	}
+
+	if (strcmp(arg, "nvhe") == 0 && !WARN_ON(is_kernel_in_hyp_mode())) {
+		kvm_mode = KVM_MODE_DEFAULT;
+		return 0;
+	}
 
 	return -EINVAL;
 }
diff --git a/arch/arm64/kvm/fpsimd.c b/arch/arm64/kvm/fpsimd.c
index 5621020b..e44673a 100644
--- a/arch/arm64/kvm/fpsimd.c
+++ b/arch/arm64/kvm/fpsimd.c
@@ -7,7 +7,6 @@
  */
 #include <linux/irqflags.h>
 #include <linux/sched.h>
-#include <linux/thread_info.h>
 #include <linux/kvm_host.h>
 #include <asm/fpsimd.h>
 #include <asm/kvm_asm.h>
@@ -15,6 +14,19 @@
 #include <asm/kvm_mmu.h>
 #include <asm/sysreg.h>
 
+void kvm_vcpu_unshare_task_fp(struct kvm_vcpu *vcpu)
+{
+	struct task_struct *p = vcpu->arch.parent_task;
+	struct user_fpsimd_state *fpsimd;
+
+	if (!is_protected_kvm_enabled() || !p)
+		return;
+
+	fpsimd = &p->thread.uw.fpsimd_state;
+	kvm_unshare_hyp(fpsimd, fpsimd + 1);
+	put_task_struct(p);
+}
+
 /*
  * Called on entry to KVM_RUN unless this vcpu previously ran at least
  * once and the most recent prior KVM_RUN for this vcpu was called from
@@ -28,36 +40,29 @@
 {
 	int ret;
 
-	struct thread_info *ti = &current->thread_info;
 	struct user_fpsimd_state *fpsimd = &current->thread.uw.fpsimd_state;
 
+	kvm_vcpu_unshare_task_fp(vcpu);
+
+	/* Make sure the host task fpsimd state is visible to hyp: */
+	ret = kvm_share_hyp(fpsimd, fpsimd + 1);
+	if (ret)
+		return ret;
+
+	vcpu->arch.host_fpsimd_state = kern_hyp_va(fpsimd);
+
 	/*
-	 * Make sure the host task thread flags and fpsimd state are
-	 * visible to hyp:
+	 * We need to keep current's task_struct pinned until its data has been
+	 * unshared with the hypervisor to make sure it is not re-used by the
+	 * kernel and donated to someone else while already shared -- see
+	 * kvm_vcpu_unshare_task_fp() for the matching put_task_struct().
 	 */
-	ret = create_hyp_mappings(ti, ti + 1, PAGE_HYP);
-	if (ret)
-		goto error;
-
-	ret = create_hyp_mappings(fpsimd, fpsimd + 1, PAGE_HYP);
-	if (ret)
-		goto error;
-
-	if (vcpu->arch.sve_state) {
-		void *sve_end;
-
-		sve_end = vcpu->arch.sve_state + vcpu_sve_state_size(vcpu);
-
-		ret = create_hyp_mappings(vcpu->arch.sve_state, sve_end,
-					  PAGE_HYP);
-		if (ret)
-			goto error;
+	if (is_protected_kvm_enabled()) {
+		get_task_struct(current);
+		vcpu->arch.parent_task = current;
 	}
 
-	vcpu->arch.host_thread_info = kern_hyp_va(ti);
-	vcpu->arch.host_fpsimd_state = kern_hyp_va(fpsimd);
-error:
-	return ret;
+	return 0;
 }
 
 /*
@@ -66,26 +71,28 @@
  *
  * Here, we just set the correct metadata to indicate that the FPSIMD
  * state in the cpu regs (if any) belongs to current on the host.
- *
- * TIF_SVE is backed up here, since it may get clobbered with guest state.
- * This flag is restored by kvm_arch_vcpu_put_fp(vcpu).
  */
 void kvm_arch_vcpu_load_fp(struct kvm_vcpu *vcpu)
 {
 	BUG_ON(!current->mm);
+	BUG_ON(test_thread_flag(TIF_SVE));
 
-	vcpu->arch.flags &= ~(KVM_ARM64_FP_ENABLED |
-			      KVM_ARM64_HOST_SVE_IN_USE |
-			      KVM_ARM64_HOST_SVE_ENABLED);
+	vcpu->arch.flags &= ~KVM_ARM64_FP_ENABLED;
 	vcpu->arch.flags |= KVM_ARM64_FP_HOST;
 
-	if (test_thread_flag(TIF_SVE))
-		vcpu->arch.flags |= KVM_ARM64_HOST_SVE_IN_USE;
-
+	vcpu->arch.flags &= ~KVM_ARM64_HOST_SVE_ENABLED;
 	if (read_sysreg(cpacr_el1) & CPACR_EL1_ZEN_EL0EN)
 		vcpu->arch.flags |= KVM_ARM64_HOST_SVE_ENABLED;
 }
 
+void kvm_arch_vcpu_ctxflush_fp(struct kvm_vcpu *vcpu)
+{
+	if (test_thread_flag(TIF_FOREIGN_FPSTATE))
+		vcpu->arch.flags |= KVM_ARM64_FP_FOREIGN_FPSTATE;
+	else
+		vcpu->arch.flags &= ~KVM_ARM64_FP_FOREIGN_FPSTATE;
+}
+
 /*
  * If the guest FPSIMD state was loaded, update the host's context
  * tracking data mark the CPU FPSIMD regs as dirty and belonging to vcpu
@@ -115,13 +122,11 @@
 void kvm_arch_vcpu_put_fp(struct kvm_vcpu *vcpu)
 {
 	unsigned long flags;
-	bool host_has_sve = system_supports_sve();
-	bool guest_has_sve = vcpu_has_sve(vcpu);
 
 	local_irq_save(flags);
 
 	if (vcpu->arch.flags & KVM_ARM64_FP_ENABLED) {
-		if (guest_has_sve) {
+		if (vcpu_has_sve(vcpu)) {
 			__vcpu_sys_reg(vcpu, ZCR_EL1) = read_sysreg_el1(SYS_ZCR);
 
 			/* Restore the VL that was saved when bound to the CPU */
@@ -131,7 +136,7 @@
 		}
 
 		fpsimd_save_and_flush_cpu_state();
-	} else if (has_vhe() && host_has_sve) {
+	} else if (has_vhe() && system_supports_sve()) {
 		/*
 		 * The FPSIMD/SVE state in the CPU has not been touched, and we
 		 * have SVE (and VHE): CPACR_EL1 (alias CPTR_EL2) has been
@@ -145,8 +150,7 @@
 			sysreg_clear_set(CPACR_EL1, CPACR_EL1_ZEN_EL0EN, 0);
 	}
 
-	update_thread_flag(TIF_SVE,
-			   vcpu->arch.flags & KVM_ARM64_HOST_SVE_IN_USE);
+	update_thread_flag(TIF_SVE, 0);
 
 	local_irq_restore(flags);
 }
diff --git a/arch/arm64/kvm/guest.c b/arch/arm64/kvm/guest.c
index 94108e2..7f78187 100644
--- a/arch/arm64/kvm/guest.c
+++ b/arch/arm64/kvm/guest.c
@@ -869,13 +869,10 @@
 	return KVM_ARM_TARGET_GENERIC_V8;
 }
 
-int kvm_vcpu_preferred_target(struct kvm_vcpu_init *init)
+void kvm_vcpu_preferred_target(struct kvm_vcpu_init *init)
 {
 	u32 target = kvm_target_cpu();
 
-	if (target < 0)
-		return -ENODEV;
-
 	memset(init, 0, sizeof(*init));
 
 	/*
@@ -885,8 +882,6 @@
 	 * target type.
 	 */
 	init->target = (__u32)target;
-
-	return 0;
 }
 
 int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
diff --git a/arch/arm64/kvm/handle_exit.c b/arch/arm64/kvm/handle_exit.c
index a5ab521..3245d2d 100644
--- a/arch/arm64/kvm/handle_exit.c
+++ b/arch/arm64/kvm/handle_exit.c
@@ -202,6 +202,21 @@
 	int handled;
 
 	/*
+	 * If we run a non-protected VM when protection is enabled
+	 * system-wide, resync the state from the hypervisor and mark
+	 * it as dirty on the host side if it wasn't dirty already
+	 * (which could happen if preemption has taken place).
+	 */
+	if (is_protected_kvm_enabled() && !kvm_vm_is_protected(vcpu->kvm)) {
+		preempt_disable();
+		if (!(vcpu->arch.flags & KVM_ARM64_PKVM_STATE_DIRTY)) {
+			kvm_call_hyp_nvhe(__pkvm_vcpu_sync_state);
+			vcpu->arch.flags |= KVM_ARM64_PKVM_STATE_DIRTY;
+		}
+		preempt_enable();
+	}
+
+	/*
 	 * See ARM ARM B1.14.1: "Hyp traps on instructions
 	 * that fail their condition code check"
 	 */
@@ -268,6 +283,13 @@
 /* For exit types that need handling before we can be preempted */
 void handle_exit_early(struct kvm_vcpu *vcpu, int exception_index)
 {
+	/*
+	 * We just exited, so the state is clean from a hypervisor
+	 * perspective.
+	 */
+	if (is_protected_kvm_enabled())
+		vcpu->arch.flags &= ~KVM_ARM64_PKVM_STATE_DIRTY;
+
 	if (ARM_SERROR_PENDING(exception_index)) {
 		if (this_cpu_has_cap(ARM64_HAS_RAS_EXTN)) {
 			u64 disr = kvm_vcpu_get_disr(vcpu);
diff --git a/arch/arm64/kvm/hyp/Makefile b/arch/arm64/kvm/hyp/Makefile
index b726332..687598e 100644
--- a/arch/arm64/kvm/hyp/Makefile
+++ b/arch/arm64/kvm/hyp/Makefile
@@ -10,4 +10,4 @@
 		    -DDISABLE_BRANCH_PROFILING		\
 		    $(DISABLE_STACKLEAK_PLUGIN)
 
-obj-$(CONFIG_KVM) += vhe/ nvhe/ pgtable.o reserved_mem.o
+obj-$(CONFIG_KVM) += vhe/ nvhe/ pgtable.o
diff --git a/arch/arm64/kvm/hyp/exception.c b/arch/arm64/kvm/hyp/exception.c
index aa06e28..ceb6808 100644
--- a/arch/arm64/kvm/hyp/exception.c
+++ b/arch/arm64/kvm/hyp/exception.c
@@ -61,12 +61,25 @@
 		vcpu->arch.ctxt.spsr_und = val;
 }
 
+unsigned long get_except64_offset(unsigned long psr, unsigned long target_mode,
+				  enum exception_type type)
+{
+	u64 mode = psr & (PSR_MODE_MASK | PSR_MODE32_BIT);
+	u64 exc_offset;
+
+	if      (mode == target_mode)
+		exc_offset = CURRENT_EL_SP_ELx_VECTOR;
+	else if ((mode | PSR_MODE_THREAD_BIT) == target_mode)
+		exc_offset = CURRENT_EL_SP_EL0_VECTOR;
+	else if (!(mode & PSR_MODE32_BIT))
+		exc_offset = LOWER_EL_AArch64_VECTOR;
+	else
+		exc_offset = LOWER_EL_AArch32_VECTOR;
+
+	return exc_offset + type;
+}
+
 /*
- * This performs the exception entry at a given EL (@target_mode), stashing PC
- * and PSTATE into ELR and SPSR respectively, and compute the new PC/PSTATE.
- * The EL passed to this function *must* be a non-secure, privileged mode with
- * bit 0 being set (PSTATE.SP == 1).
- *
  * When an exception is taken, most PSTATE fields are left unchanged in the
  * handler. However, some are explicitly overridden (e.g. M[4:0]). Luckily all
  * of the inherited bits have the same position in the AArch64/AArch32 SPSR_ELx
@@ -78,45 +91,17 @@
  * Here we manipulate the fields in order of the AArch64 SPSR_ELx layout, from
  * MSB to LSB.
  */
-static void enter_exception64(struct kvm_vcpu *vcpu, unsigned long target_mode,
-			      enum exception_type type)
+unsigned long get_except64_cpsr(unsigned long old, bool has_mte,
+				unsigned long sctlr, unsigned long target_mode)
 {
-	unsigned long sctlr, vbar, old, new, mode;
-	u64 exc_offset;
-
-	mode = *vcpu_cpsr(vcpu) & (PSR_MODE_MASK | PSR_MODE32_BIT);
-
-	if      (mode == target_mode)
-		exc_offset = CURRENT_EL_SP_ELx_VECTOR;
-	else if ((mode | PSR_MODE_THREAD_BIT) == target_mode)
-		exc_offset = CURRENT_EL_SP_EL0_VECTOR;
-	else if (!(mode & PSR_MODE32_BIT))
-		exc_offset = LOWER_EL_AArch64_VECTOR;
-	else
-		exc_offset = LOWER_EL_AArch32_VECTOR;
-
-	switch (target_mode) {
-	case PSR_MODE_EL1h:
-		vbar = __vcpu_read_sys_reg(vcpu, VBAR_EL1);
-		sctlr = __vcpu_read_sys_reg(vcpu, SCTLR_EL1);
-		__vcpu_write_sys_reg(vcpu, *vcpu_pc(vcpu), ELR_EL1);
-		break;
-	default:
-		/* Don't do that */
-		BUG();
-	}
-
-	*vcpu_pc(vcpu) = vbar + exc_offset + type;
-
-	old = *vcpu_cpsr(vcpu);
-	new = 0;
+	u64 new = 0;
 
 	new |= (old & PSR_N_BIT);
 	new |= (old & PSR_Z_BIT);
 	new |= (old & PSR_C_BIT);
 	new |= (old & PSR_V_BIT);
 
-	if (kvm_has_mte(kern_hyp_va(vcpu->kvm)))
+	if (has_mte)
 		new |= PSR_TCO_BIT;
 
 	new |= (old & PSR_DIT_BIT);
@@ -152,6 +137,37 @@
 
 	new |= target_mode;
 
+	return new;
+}
+
+/*
+ * This performs the exception entry at a given EL (@target_mode), stashing PC
+ * and PSTATE into ELR and SPSR respectively, and compute the new PC/PSTATE.
+ * The EL passed to this function *must* be a non-secure, privileged mode with
+ * bit 0 being set (PSTATE.SP == 1).
+ */
+static void enter_exception64(struct kvm_vcpu *vcpu, unsigned long target_mode,
+			      enum exception_type type)
+{
+	u64 offset = get_except64_offset(*vcpu_cpsr(vcpu), target_mode, type);
+	unsigned long sctlr, vbar, old, new;
+
+	switch (target_mode) {
+	case PSR_MODE_EL1h:
+		vbar = __vcpu_read_sys_reg(vcpu, VBAR_EL1);
+		sctlr = __vcpu_read_sys_reg(vcpu, SCTLR_EL1);
+		__vcpu_write_sys_reg(vcpu, *vcpu_pc(vcpu), ELR_EL1);
+		break;
+	default:
+		/* Don't do that */
+		BUG();
+	}
+
+	*vcpu_pc(vcpu) = vbar + offset;
+
+	old = *vcpu_cpsr(vcpu);
+	new = get_except64_cpsr(old, kvm_has_mte(kern_hyp_va(vcpu->kvm)), sctlr,
+				target_mode);
 	*vcpu_cpsr(vcpu) = new;
 	__vcpu_write_spsr(vcpu, old);
 }
diff --git a/arch/arm64/kvm/hyp/fpsimd.S b/arch/arm64/kvm/hyp/fpsimd.S
index 3c63592..7b789ac 100644
--- a/arch/arm64/kvm/hyp/fpsimd.S
+++ b/arch/arm64/kvm/hyp/fpsimd.S
@@ -24,8 +24,3 @@
 	__sve_load 0, x1, 2
 	ret
 SYM_FUNC_END(__sve_restore_state)
-
-SYM_FUNC_START(__sve_save_state)
-	sve_save 0, x1, 2
-	ret
-SYM_FUNC_END(__sve_save_state)
diff --git a/arch/arm64/kvm/hyp/hyp-constants.c b/arch/arm64/kvm/hyp/hyp-constants.c
new file mode 100644
index 0000000..ef55191
--- /dev/null
+++ b/arch/arm64/kvm/hyp/hyp-constants.c
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+#include <linux/kbuild.h>
+#include <nvhe/memory.h>
+#include <nvhe/pkvm.h>
+
+int main(void)
+{
+	DEFINE(STRUCT_HYP_PAGE_SIZE,	sizeof(struct hyp_page));
+	DEFINE(KVM_SHADOW_VM_SIZE,	sizeof(struct kvm_shadow_vm));
+	DEFINE(SHADOW_VCPU_STATE_SIZE,	sizeof(struct shadow_vcpu_state));
+	return 0;
+}
diff --git a/arch/arm64/kvm/hyp/include/hyp/fault.h b/arch/arm64/kvm/hyp/include/hyp/fault.h
new file mode 100644
index 0000000..1b8a2dc
--- /dev/null
+++ b/arch/arm64/kvm/hyp/include/hyp/fault.h
@@ -0,0 +1,75 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (C) 2015 - ARM Ltd
+ * Author: Marc Zyngier <marc.zyngier@arm.com>
+ */
+
+#ifndef __ARM64_KVM_HYP_FAULT_H__
+#define __ARM64_KVM_HYP_FAULT_H__
+
+#include <asm/kvm_asm.h>
+#include <asm/kvm_emulate.h>
+#include <asm/kvm_hyp.h>
+#include <asm/kvm_mmu.h>
+
+static inline bool __translate_far_to_hpfar(u64 far, u64 *hpfar)
+{
+	u64 par, tmp;
+
+	/*
+	 * Resolve the IPA the hard way using the guest VA.
+	 *
+	 * Stage-1 translation already validated the memory access
+	 * rights. As such, we can use the EL1 translation regime, and
+	 * don't have to distinguish between EL0 and EL1 access.
+	 *
+	 * We do need to save/restore PAR_EL1 though, as we haven't
+	 * saved the guest context yet, and we may return early...
+	 */
+	par = read_sysreg_par();
+	if (!__kvm_at("s1e1r", far))
+		tmp = read_sysreg_par();
+	else
+		tmp = SYS_PAR_EL1_F; /* back to the guest */
+	write_sysreg(par, par_el1);
+
+	if (unlikely(tmp & SYS_PAR_EL1_F))
+		return false; /* Translation failed, back to guest */
+
+	/* Convert PAR to HPFAR format */
+	*hpfar = PAR_TO_HPFAR(tmp);
+	return true;
+}
+
+static inline bool __get_fault_info(u64 esr, struct kvm_vcpu_fault_info *fault)
+{
+	u64 hpfar, far;
+
+	far = read_sysreg_el2(SYS_FAR);
+
+	/*
+	 * The HPFAR can be invalid if the stage 2 fault did not
+	 * happen during a stage 1 page table walk (the ESR_EL2.S1PTW
+	 * bit is clear) and one of the two following cases are true:
+	 *   1. The fault was due to a permission fault
+	 *   2. The processor carries errata 834220
+	 *
+	 * Therefore, for all non S1PTW faults where we either have a
+	 * permission fault or the errata workaround is enabled, we
+	 * resolve the IPA using the AT instruction.
+	 */
+	if (!(esr & ESR_ELx_S1PTW) &&
+	    (cpus_have_final_cap(ARM64_WORKAROUND_834220) ||
+	     (esr & ESR_ELx_FSC_TYPE) == FSC_PERM)) {
+		if (!__translate_far_to_hpfar(far, &hpfar))
+			return false;
+	} else {
+		hpfar = read_sysreg(hpfar_el2);
+	}
+
+	fault->far_el2 = far;
+	fault->hpfar_el2 = hpfar;
+	return true;
+}
+
+#endif
diff --git a/arch/arm64/kvm/hyp/include/hyp/switch.h b/arch/arm64/kvm/hyp/include/hyp/switch.h
index ecd4184..7ba78a6 100644
--- a/arch/arm64/kvm/hyp/include/hyp/switch.h
+++ b/arch/arm64/kvm/hyp/include/hyp/switch.h
@@ -8,6 +8,7 @@
 #define __ARM64_KVM_HYP_SWITCH_H__
 
 #include <hyp/adjust_pc.h>
+#include <hyp/fault.h>
 
 #include <linux/arm-smccc.h>
 #include <linux/kvm_host.h>
@@ -28,7 +29,6 @@
 #include <asm/fpsimd.h>
 #include <asm/debug-monitors.h>
 #include <asm/processor.h>
-#include <asm/thread_info.h>
 
 extern struct exception_table_entry __start___kvm_ex_table;
 extern struct exception_table_entry __stop___kvm_ex_table;
@@ -44,7 +44,7 @@
 	 * trap the accesses.
 	 */
 	if (!system_supports_fpsimd() ||
-	    vcpu->arch.host_thread_info->flags & _TIF_FOREIGN_FPSTATE)
+	    vcpu->arch.flags & KVM_ARM64_FP_FOREIGN_FPSTATE)
 		vcpu->arch.flags &= ~(KVM_ARM64_FP_ENABLED |
 				      KVM_ARM64_FP_HOST);
 
@@ -110,9 +110,6 @@
 {
 	u64 hcr = vcpu->arch.hcr_el2;
 
-	if (cpus_have_final_cap(ARM64_WORKAROUND_CAVIUM_TX2_219_TVM))
-		hcr |= HCR_TVM;
-
 	write_sysreg(hcr, hcr_el2);
 
 	if (cpus_have_final_cap(ARM64_HAS_RAS_EXTN) && (hcr & HCR_VSE))
@@ -133,88 +130,9 @@
 	}
 }
 
-static inline bool __translate_far_to_hpfar(u64 far, u64 *hpfar)
-{
-	u64 par, tmp;
-
-	/*
-	 * Resolve the IPA the hard way using the guest VA.
-	 *
-	 * Stage-1 translation already validated the memory access
-	 * rights. As such, we can use the EL1 translation regime, and
-	 * don't have to distinguish between EL0 and EL1 access.
-	 *
-	 * We do need to save/restore PAR_EL1 though, as we haven't
-	 * saved the guest context yet, and we may return early...
-	 */
-	par = read_sysreg_par();
-	if (!__kvm_at("s1e1r", far))
-		tmp = read_sysreg_par();
-	else
-		tmp = SYS_PAR_EL1_F; /* back to the guest */
-	write_sysreg(par, par_el1);
-
-	if (unlikely(tmp & SYS_PAR_EL1_F))
-		return false; /* Translation failed, back to guest */
-
-	/* Convert PAR to HPFAR format */
-	*hpfar = PAR_TO_HPFAR(tmp);
-	return true;
-}
-
-static inline bool __get_fault_info(u64 esr, struct kvm_vcpu_fault_info *fault)
-{
-	u64 hpfar, far;
-
-	far = read_sysreg_el2(SYS_FAR);
-
-	/*
-	 * The HPFAR can be invalid if the stage 2 fault did not
-	 * happen during a stage 1 page table walk (the ESR_EL2.S1PTW
-	 * bit is clear) and one of the two following cases are true:
-	 *   1. The fault was due to a permission fault
-	 *   2. The processor carries errata 834220
-	 *
-	 * Therefore, for all non S1PTW faults where we either have a
-	 * permission fault or the errata workaround is enabled, we
-	 * resolve the IPA using the AT instruction.
-	 */
-	if (!(esr & ESR_ELx_S1PTW) &&
-	    (cpus_have_final_cap(ARM64_WORKAROUND_834220) ||
-	     (esr & ESR_ELx_FSC_TYPE) == FSC_PERM)) {
-		if (!__translate_far_to_hpfar(far, &hpfar))
-			return false;
-	} else {
-		hpfar = read_sysreg(hpfar_el2);
-	}
-
-	fault->far_el2 = far;
-	fault->hpfar_el2 = hpfar;
-	return true;
-}
-
 static inline bool __populate_fault_info(struct kvm_vcpu *vcpu)
 {
-	u8 ec;
-	u64 esr;
-
-	esr = vcpu->arch.fault.esr_el2;
-	ec = ESR_ELx_EC(esr);
-
-	if (ec != ESR_ELx_EC_DABT_LOW && ec != ESR_ELx_EC_IABT_LOW)
-		return true;
-
-	return __get_fault_info(esr, &vcpu->arch.fault);
-}
-
-static inline void __hyp_sve_save_host(struct kvm_vcpu *vcpu)
-{
-	struct thread_struct *thread;
-
-	thread = container_of(vcpu->arch.host_fpsimd_state, struct thread_struct,
-			      uw.fpsimd_state);
-
-	__sve_save_state(sve_pffr(thread), &vcpu->arch.host_fpsimd_state->fpsr);
+	return __get_fault_info(vcpu->arch.fault.esr_el2, &vcpu->arch.fault);
 }
 
 static inline void __hyp_sve_restore_guest(struct kvm_vcpu *vcpu)
@@ -225,28 +143,23 @@
 	write_sysreg_el1(__vcpu_sys_reg(vcpu, ZCR_EL1), SYS_ZCR);
 }
 
-/* Check for an FPSIMD/SVE trap and handle as appropriate */
-static inline bool __hyp_handle_fpsimd(struct kvm_vcpu *vcpu)
+/*
+ * We trap the first access to the FP/SIMD to save the host context and
+ * restore the guest context lazily.
+ * If FP/SIMD is not implemented, handle the trap and inject an undefined
+ * instruction exception to the guest. Similarly for trapped SVE accesses.
+ */
+static bool kvm_hyp_handle_fpsimd(struct kvm_vcpu *vcpu, u64 *exit_code)
 {
-	bool sve_guest, sve_host;
+	bool sve_guest;
 	u8 esr_ec;
 	u64 reg;
 
 	if (!system_supports_fpsimd())
 		return false;
 
-	if (system_supports_sve()) {
-		sve_guest = vcpu_has_sve(vcpu);
-		sve_host = vcpu->arch.flags & KVM_ARM64_HOST_SVE_IN_USE;
-	} else {
-		sve_guest = false;
-		sve_host = false;
-	}
-
+	sve_guest = vcpu_has_sve(vcpu);
 	esr_ec = kvm_vcpu_trap_get_class(vcpu);
-	if (esr_ec != ESR_ELx_EC_FP_ASIMD &&
-	    esr_ec != ESR_ELx_EC_SVE)
-		return false;
 
 	/* Don't handle SVE traps for non-SVE vcpus here: */
 	if (!sve_guest && esr_ec != ESR_ELx_EC_FP_ASIMD)
@@ -269,11 +182,7 @@
 	isb();
 
 	if (vcpu->arch.flags & KVM_ARM64_FP_HOST) {
-		if (sve_host)
-			__hyp_sve_save_host(vcpu);
-		else
-			__fpsimd_save_state(vcpu->arch.host_fpsimd_state);
-
+		__fpsimd_save_state(vcpu->arch.host_fpsimd_state);
 		vcpu->arch.flags &= ~KVM_ARM64_FP_HOST;
 	}
 
@@ -291,71 +200,8 @@
 	return true;
 }
 
-static inline bool handle_tx2_tvm(struct kvm_vcpu *vcpu)
-{
-	u32 sysreg = esr_sys64_to_sysreg(kvm_vcpu_get_esr(vcpu));
-	int rt = kvm_vcpu_sys_get_rt(vcpu);
-	u64 val = vcpu_get_reg(vcpu, rt);
-
-	/*
-	 * The normal sysreg handling code expects to see the traps,
-	 * let's not do anything here.
-	 */
-	if (vcpu->arch.hcr_el2 & HCR_TVM)
-		return false;
-
-	switch (sysreg) {
-	case SYS_SCTLR_EL1:
-		write_sysreg_el1(val, SYS_SCTLR);
-		break;
-	case SYS_TTBR0_EL1:
-		write_sysreg_el1(val, SYS_TTBR0);
-		break;
-	case SYS_TTBR1_EL1:
-		write_sysreg_el1(val, SYS_TTBR1);
-		break;
-	case SYS_TCR_EL1:
-		write_sysreg_el1(val, SYS_TCR);
-		break;
-	case SYS_ESR_EL1:
-		write_sysreg_el1(val, SYS_ESR);
-		break;
-	case SYS_FAR_EL1:
-		write_sysreg_el1(val, SYS_FAR);
-		break;
-	case SYS_AFSR0_EL1:
-		write_sysreg_el1(val, SYS_AFSR0);
-		break;
-	case SYS_AFSR1_EL1:
-		write_sysreg_el1(val, SYS_AFSR1);
-		break;
-	case SYS_MAIR_EL1:
-		write_sysreg_el1(val, SYS_MAIR);
-		break;
-	case SYS_AMAIR_EL1:
-		write_sysreg_el1(val, SYS_AMAIR);
-		break;
-	case SYS_CONTEXTIDR_EL1:
-		write_sysreg_el1(val, SYS_CONTEXTIDR);
-		break;
-	default:
-		return false;
-	}
-
-	__kvm_skip_instr(vcpu);
-	return true;
-}
-
 static inline bool esr_is_ptrauth_trap(u32 esr)
 {
-	u32 ec = ESR_ELx_EC(esr);
-
-	if (ec == ESR_ELx_EC_PAC)
-		return true;
-
-	if (ec != ESR_ELx_EC_SYS64)
-		return false;
-
 	switch (esr_sys64_to_sysreg(esr)) {
 	case SYS_APIAKEYLO_EL1:
 	case SYS_APIAKEYHI_EL1:
@@ -384,13 +230,12 @@
 
 DECLARE_PER_CPU(struct kvm_cpu_context, kvm_hyp_ctxt);
 
-static inline bool __hyp_handle_ptrauth(struct kvm_vcpu *vcpu)
+static bool kvm_hyp_handle_ptrauth(struct kvm_vcpu *vcpu, u64 *exit_code)
 {
 	struct kvm_cpu_context *ctxt;
 	u64 val;
 
-	if (!vcpu_has_ptrauth(vcpu) ||
-	    !esr_is_ptrauth_trap(kvm_vcpu_get_esr(vcpu)))
+	if (!vcpu_has_ptrauth(vcpu))
 		return false;
 
 	ctxt = this_cpu_ptr(&kvm_hyp_ctxt);
@@ -409,6 +254,92 @@
 	return true;
 }
 
+static bool kvm_hyp_handle_sysreg(struct kvm_vcpu *vcpu, u64 *exit_code)
+{
+	if (static_branch_unlikely(&vgic_v3_cpuif_trap) &&
+	    __vgic_v3_perform_cpuif_access(vcpu) == 1)
+		return true;
+
+	if (esr_is_ptrauth_trap(kvm_vcpu_get_esr(vcpu)))
+		return kvm_hyp_handle_ptrauth(vcpu, exit_code);
+
+	return false;
+}
+
+static bool kvm_hyp_handle_cp15_32(struct kvm_vcpu *vcpu, u64 *exit_code)
+{
+	if (static_branch_unlikely(&vgic_v3_cpuif_trap) &&
+	    __vgic_v3_perform_cpuif_access(vcpu) == 1)
+		return true;
+
+	return false;
+}
+
+static bool kvm_hyp_handle_memory_fault(struct kvm_vcpu *vcpu, u64 *exit_code)
+{
+	if (!__populate_fault_info(vcpu))
+		return true;
+
+	return false;
+}
+static bool kvm_hyp_handle_iabt_low(struct kvm_vcpu *vcpu, u64 *exit_code)
+	__alias(kvm_hyp_handle_memory_fault);
+static bool kvm_hyp_handle_watchpt_low(struct kvm_vcpu *vcpu, u64 *exit_code)
+	__alias(kvm_hyp_handle_memory_fault);
+
+static bool kvm_hyp_handle_dabt_low(struct kvm_vcpu *vcpu, u64 *exit_code)
+{
+	if (kvm_hyp_handle_memory_fault(vcpu, exit_code))
+		return true;
+
+	if (static_branch_unlikely(&vgic_v2_cpuif_trap)) {
+		bool valid;
+
+		valid = kvm_vcpu_trap_get_fault_type(vcpu) == FSC_FAULT &&
+			kvm_vcpu_dabt_isvalid(vcpu) &&
+			!kvm_vcpu_abt_issea(vcpu) &&
+			!kvm_vcpu_abt_iss1tw(vcpu);
+
+		if (valid) {
+			int ret = __vgic_v2_perform_cpuif_access(vcpu);
+
+			if (ret == 1)
+				return true;
+
+			/* Promote an illegal access to an SError.*/
+			if (ret == -1)
+				*exit_code = ARM_EXCEPTION_EL1_SERROR;
+		}
+	}
+
+	return false;
+}
+
+typedef bool (*exit_handler_fn)(struct kvm_vcpu *, u64 *);
+
+static const exit_handler_fn *kvm_get_exit_handler_array(struct kvm_vcpu *vcpu);
+
+static void early_exit_filter(struct kvm_vcpu *vcpu, u64 *exit_code);
+
+/*
+ * Allow the hypervisor to handle the exit with an exit handler if it has one.
+ *
+ * Returns true if the hypervisor handled the exit, and control should go back
+ * to the guest, or false if it hasn't.
+ */
+static inline bool kvm_hyp_handle_exit(struct kvm_vcpu *vcpu, u64 *exit_code)
+{
+	const exit_handler_fn *handlers = kvm_get_exit_handler_array(vcpu);
+	exit_handler_fn fn;
+
+	fn = handlers[kvm_vcpu_trap_get_class(vcpu)];
+
+	if (fn)
+		return fn(vcpu, exit_code);
+
+	return false;
+}
+
 /*
  * Return true when we were able to fixup the guest exit and should return to
  * the guest, false when we should restore the host state and return to the
@@ -422,6 +353,12 @@
 	 */
 	vcpu->arch.ctxt.regs.pstate = read_sysreg_el2(SYS_SPSR);
 
+	/*
+	 * Check whether we want to repaint the state one way or
+	 * another.
+	 */
+	early_exit_filter(vcpu, exit_code);
+
 	if (ARM_EXCEPTION_CODE(*exit_code) != ARM_EXCEPTION_IRQ)
 		vcpu->arch.fault.esr_el2 = read_sysreg_el2(SYS_ESR);
 
@@ -450,59 +387,9 @@
 	if (*exit_code != ARM_EXCEPTION_TRAP)
 		goto exit;
 
-	if (cpus_have_final_cap(ARM64_WORKAROUND_CAVIUM_TX2_219_TVM) &&
-	    kvm_vcpu_trap_get_class(vcpu) == ESR_ELx_EC_SYS64 &&
-	    handle_tx2_tvm(vcpu))
+	/* Check if there's an exit handler and allow it to handle the exit. */
+	if (kvm_hyp_handle_exit(vcpu, exit_code))
 		goto guest;
-
-	/*
-	 * We trap the first access to the FP/SIMD to save the host context
-	 * and restore the guest context lazily.
-	 * If FP/SIMD is not implemented, handle the trap and inject an
-	 * undefined instruction exception to the guest.
-	 * Similarly for trapped SVE accesses.
-	 */
-	if (__hyp_handle_fpsimd(vcpu))
-		goto guest;
-
-	if (__hyp_handle_ptrauth(vcpu))
-		goto guest;
-
-	if (!__populate_fault_info(vcpu))
-		goto guest;
-
-	if (static_branch_unlikely(&vgic_v2_cpuif_trap)) {
-		bool valid;
-
-		valid = kvm_vcpu_trap_get_class(vcpu) == ESR_ELx_EC_DABT_LOW &&
-			kvm_vcpu_trap_get_fault_type(vcpu) == FSC_FAULT &&
-			kvm_vcpu_dabt_isvalid(vcpu) &&
-			!kvm_vcpu_abt_issea(vcpu) &&
-			!kvm_vcpu_abt_iss1tw(vcpu);
-
-		if (valid) {
-			int ret = __vgic_v2_perform_cpuif_access(vcpu);
-
-			if (ret == 1)
-				goto guest;
-
-			/* Promote an illegal access to an SError.*/
-			if (ret == -1)
-				*exit_code = ARM_EXCEPTION_EL1_SERROR;
-
-			goto exit;
-		}
-	}
-
-	if (static_branch_unlikely(&vgic_v3_cpuif_trap) &&
-	    (kvm_vcpu_trap_get_class(vcpu) == ESR_ELx_EC_SYS64 ||
-	     kvm_vcpu_trap_get_class(vcpu) == ESR_ELx_EC_CP15_32)) {
-		int ret = __vgic_v3_perform_cpuif_access(vcpu);
-
-		if (ret == 1)
-			goto guest;
-	}
-
 exit:
 	/* Return to the host kernel and handle the exit */
 	return false;
diff --git a/arch/arm64/kvm/hyp/include/nvhe/ffa.h b/arch/arm64/kvm/hyp/include/nvhe/ffa.h
new file mode 100644
index 0000000..3966625
--- /dev/null
+++ b/arch/arm64/kvm/hyp/include/nvhe/ffa.h
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (C) 2022 - Google LLC
+ * Author: Andrew Walbran <qwandor@google.com>
+ */
+#ifndef __KVM_HYP_FFA_H
+#define __KVM_HYP_FFA_H
+
+#include <asm/kvm_host.h>
+#include <nvhe/spinlock.h>
+
+#define FFA_MIN_FUNC_NUM 0x60
+#define FFA_MAX_FUNC_NUM 0x7F
+
+struct kvm_ffa_buffers {
+	hyp_spinlock_t lock;
+	void *tx;
+	void *rx;
+};
+
+int hyp_ffa_init(void *pages);
+bool kvm_host_ffa_handler(struct kvm_cpu_context *host_ctxt);
+
+#endif /* __KVM_HYP_FFA_H */
diff --git a/arch/arm64/kvm/hyp/include/nvhe/gfp.h b/arch/arm64/kvm/hyp/include/nvhe/gfp.h
index 0a048dc..9330b13 100644
--- a/arch/arm64/kvm/hyp/include/nvhe/gfp.h
+++ b/arch/arm64/kvm/hyp/include/nvhe/gfp.h
@@ -7,7 +7,7 @@
 #include <nvhe/memory.h>
 #include <nvhe/spinlock.h>
 
-#define HYP_NO_ORDER	USHRT_MAX
+#define HYP_NO_ORDER	0xff
 
 struct hyp_pool {
 	/*
@@ -19,11 +19,11 @@
 	struct list_head free_area[MAX_ORDER];
 	phys_addr_t range_start;
 	phys_addr_t range_end;
-	unsigned short max_order;
+	u8 max_order;
 };
 
 /* Allocation */
-void *hyp_alloc_pages(struct hyp_pool *pool, unsigned short order);
+void *hyp_alloc_pages(struct hyp_pool *pool, u8 order);
 void hyp_split_page(struct hyp_page *page);
 void hyp_get_page(struct hyp_pool *pool, void *addr);
 void hyp_put_page(struct hyp_pool *pool, void *addr);
diff --git a/arch/arm64/kvm/hyp/include/nvhe/iommu.h b/arch/arm64/kvm/hyp/include/nvhe/iommu.h
new file mode 100644
index 0000000..f9a75f4
--- /dev/null
+++ b/arch/arm64/kvm/hyp/include/nvhe/iommu.h
@@ -0,0 +1,106 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ARM64_KVM_NVHE_IOMMU_H__
+#define __ARM64_KVM_NVHE_IOMMU_H__
+
+#include <linux/types.h>
+#include <asm/kvm_host.h>
+
+#include <nvhe/mem_protect.h>
+
+struct pkvm_iommu;
+
+struct pkvm_iommu_ops {
+	/*
+	 * Global driver initialization called before devices are registered.
+	 * Driver-specific arguments are passed in a buffer shared by the host.
+	 * The buffer memory has been pinned in EL2 but host retains R/W access.
+	 * Extra care must be taken when reading from it to avoid TOCTOU bugs.
+	 * If the driver maintains its own page tables, it is expected to
+	 * initialize them to all memory owned by the host.
+	 * Driver initialization lock held during callback.
+	 */
+	int (*init)(void *data, size_t size);
+
+	/*
+	 * Driver-specific validation of a device that is being registered.
+	 * All fields of the device struct have been populated.
+	 * Called with the host lock held.
+	 */
+	int (*validate)(struct pkvm_iommu *dev);
+
+	/*
+	 * Validation of a new child device that is being register by
+	 * the parent device the child selected. Called with the host lock held.
+	 */
+	int (*validate_child)(struct pkvm_iommu *dev, struct pkvm_iommu *child);
+
+	/*
+	 * Callback to apply a host stage-2 mapping change at driver level.
+	 * Called before 'host_stage2_idmap_apply' with host lock held.
+	 */
+	void (*host_stage2_idmap_prepare)(phys_addr_t start, phys_addr_t end,
+					  enum kvm_pgtable_prot prot);
+
+	/*
+	 * Callback to apply a host stage-2 mapping change at device level.
+	 * Called after 'host_stage2_idmap_prepare' with host lock held.
+	 */
+	void (*host_stage2_idmap_apply)(struct pkvm_iommu *dev,
+					phys_addr_t start, phys_addr_t end);
+
+	/*
+	 * Callback to finish a host stage-2 mapping change at device level.
+	 * Called after 'host_stage2_idmap_apply' with host lock held.
+	 */
+	void (*host_stage2_idmap_complete)(struct pkvm_iommu *dev);
+
+	/* Power management callbacks. Called with host lock held. */
+	int (*suspend)(struct pkvm_iommu *dev);
+	int (*resume)(struct pkvm_iommu *dev);
+
+	/*
+	 * Host data abort handler callback. Called with host lock held.
+	 * Returns true if the data abort has been handled.
+	 */
+	bool (*host_dabt_handler)(struct pkvm_iommu *dev,
+				  struct kvm_cpu_context *host_ctxt,
+				  u32 esr, size_t off);
+
+	/* Amount of memory allocated per-device for use by the driver. */
+	size_t data_size;
+};
+
+struct pkvm_iommu {
+	struct pkvm_iommu *parent;
+	struct list_head list;
+	struct list_head siblings;
+	struct list_head children;
+	unsigned long id;
+	const struct pkvm_iommu_ops *ops;
+	phys_addr_t pa;
+	void *va;
+	size_t size;
+	bool powered;
+	char data[];
+};
+
+int __pkvm_iommu_driver_init(enum pkvm_iommu_driver_id id, void *data, size_t size);
+int __pkvm_iommu_register(unsigned long dev_id,
+			  enum pkvm_iommu_driver_id drv_id,
+			  phys_addr_t dev_pa, size_t dev_size,
+			  unsigned long parent_id,
+			  void *kern_mem_va, size_t mem_size);
+int __pkvm_iommu_pm_notify(unsigned long dev_id,
+			   enum pkvm_iommu_pm_event event);
+int __pkvm_iommu_finalize(void);
+int pkvm_iommu_host_stage2_adjust_range(phys_addr_t addr, phys_addr_t *start,
+					phys_addr_t *end);
+bool pkvm_iommu_host_dabt_handler(struct kvm_cpu_context *host_ctxt, u32 esr,
+				  phys_addr_t fault_pa);
+void pkvm_iommu_host_stage2_idmap(phys_addr_t start, phys_addr_t end,
+				  enum kvm_pgtable_prot prot);
+
+extern const struct pkvm_iommu_ops pkvm_s2mpu_ops;
+extern const struct pkvm_iommu_ops pkvm_sysmmu_sync_ops;
+
+#endif	/* __ARM64_KVM_NVHE_IOMMU_H__ */
diff --git a/arch/arm64/kvm/hyp/include/nvhe/mem_protect.h b/arch/arm64/kvm/hyp/include/nvhe/mem_protect.h
index b58c910..f9ce884 100644
--- a/arch/arm64/kvm/hyp/include/nvhe/mem_protect.h
+++ b/arch/arm64/kvm/hyp/include/nvhe/mem_protect.h
@@ -8,8 +8,10 @@
 #define __KVM_NVHE_MEM_PROTECT__
 #include <linux/kvm_host.h>
 #include <asm/kvm_hyp.h>
+#include <asm/kvm_mmu.h>
 #include <asm/kvm_pgtable.h>
 #include <asm/virt.h>
+#include <nvhe/ffa.h>
 #include <nvhe/spinlock.h>
 
 /*
@@ -24,6 +26,11 @@
 	PKVM_PAGE_OWNED			= 0ULL,
 	PKVM_PAGE_SHARED_OWNED		= KVM_PGTABLE_PROT_SW0,
 	PKVM_PAGE_SHARED_BORROWED	= KVM_PGTABLE_PROT_SW1,
+	__PKVM_PAGE_RESERVED		= KVM_PGTABLE_PROT_SW0 |
+					  KVM_PGTABLE_PROT_SW1,
+
+	/* Meta-states which aren't encoded directly in the PTE's SW bits */
+	PKVM_NOPAGE,
 };
 
 #define PKVM_PAGE_STATE_PROT_MASK	(KVM_PGTABLE_PROT_SW0 | KVM_PGTABLE_PROT_SW1)
@@ -42,21 +49,52 @@
 	struct kvm_arch arch;
 	struct kvm_pgtable pgt;
 	struct kvm_pgtable_mm_ops mm_ops;
+	struct kvm_ffa_buffers ffa;
 	hyp_spinlock_t lock;
 };
 extern struct host_kvm host_kvm;
 
-extern const u8 pkvm_hyp_id;
+typedef u32 pkvm_id;
+static const pkvm_id pkvm_host_id	= 0;
+static const pkvm_id pkvm_hyp_id	= (1 << 16);
+static const pkvm_id pkvm_ffa_id	= pkvm_hyp_id + 1; /* Secure world */
+
+extern unsigned long hyp_nr_cpus;
 
 int __pkvm_prot_finalize(void);
 int __pkvm_host_share_hyp(u64 pfn);
+int __pkvm_host_unshare_hyp(u64 pfn);
+int __pkvm_host_reclaim_page(u64 pfn);
+int __pkvm_host_donate_hyp(u64 pfn, u64 nr_pages);
+int __pkvm_hyp_donate_host(u64 pfn, u64 nr_pages);
+int __pkvm_host_share_guest(u64 pfn, u64 gfn, struct kvm_vcpu *vcpu);
+int __pkvm_host_donate_guest(u64 pfn, u64 gfn, struct kvm_vcpu *vcpu);
+int __pkvm_guest_share_host(struct kvm_vcpu *vcpu, u64 ipa);
+int __pkvm_guest_unshare_host(struct kvm_vcpu *vcpu, u64 ipa);
+int __pkvm_host_share_ffa(u64 pfn, u64 nr_pages);
+int __pkvm_host_unshare_ffa(u64 pfn, u64 nr_pages);
+int __pkvm_install_ioguard_page(struct kvm_vcpu *vcpu, u64 ipa);
+int __pkvm_remove_ioguard_page(struct kvm_vcpu *vcpu, u64 ipa);
+bool __pkvm_check_ioguard_page(struct kvm_vcpu *vcpu);
 
 bool addr_is_memory(phys_addr_t phys);
-int host_stage2_idmap_locked(phys_addr_t addr, u64 size, enum kvm_pgtable_prot prot);
-int host_stage2_set_owner_locked(phys_addr_t addr, u64 size, u8 owner_id);
+int host_stage2_idmap_locked(phys_addr_t addr, u64 size, enum kvm_pgtable_prot prot,
+			     bool update_iommu);
+int host_stage2_set_owner_locked(phys_addr_t addr, u64 size, pkvm_id owner_id);
+int host_stage2_unmap_dev_locked(phys_addr_t start, u64 size);
 int kvm_host_prepare_stage2(void *pgt_pool_base);
+int kvm_guest_prepare_stage2(struct kvm_shadow_vm *vm, void *pgd);
 void handle_host_mem_abort(struct kvm_cpu_context *host_ctxt);
 
+int hyp_pin_shared_mem(void *from, void *to);
+void hyp_unpin_shared_mem(void *from, void *to);
+int refill_memcache(struct kvm_hyp_memcache *mc, unsigned long min_pages,
+		    struct kvm_hyp_memcache *host_mc);
+void reclaim_guest_pages(struct kvm_shadow_vm *vm, struct kvm_hyp_memcache *mc);
+
+void psci_mem_protect_inc(void);
+void psci_mem_protect_dec(void);
+
 static __always_inline void __load_host_stage2(void)
 {
 	if (static_branch_likely(&kvm_protected_mode_initialized))
diff --git a/arch/arm64/kvm/hyp/include/nvhe/memory.h b/arch/arm64/kvm/hyp/include/nvhe/memory.h
index 592b7ed..caa5b9a 100644
--- a/arch/arm64/kvm/hyp/include/nvhe/memory.h
+++ b/arch/arm64/kvm/hyp/include/nvhe/memory.h
@@ -7,9 +7,17 @@
 
 #include <linux/types.h>
 
+/*
+ * Accesses to struct hyp_page flags must be serialized by the host stage-2
+ * page-table lock due to the lack of atomics at EL2.
+ */
+#define HOST_PAGE_NEED_POISONING	BIT(0)
+#define HOST_PAGE_PENDING_RECLAIM	BIT(1)
+
 struct hyp_page {
 	unsigned short refcount;
-	unsigned short order;
+	u8 order;
+	u8 flags;
 };
 
 extern u64 __hyp_vmemmap;
@@ -45,4 +53,27 @@
 	return p->refcount;
 }
 
+static inline void hyp_page_ref_inc(struct hyp_page *p)
+{
+	BUG_ON(p->refcount == USHRT_MAX);
+	p->refcount++;
+}
+
+static inline void hyp_page_ref_dec(struct hyp_page *p)
+{
+	BUG_ON(!p->refcount);
+	p->refcount--;
+}
+
+static inline int hyp_page_ref_dec_and_test(struct hyp_page *p)
+{
+	hyp_page_ref_dec(p);
+	return (p->refcount == 0);
+}
+
+static inline void hyp_set_page_refcounted(struct hyp_page *p)
+{
+	BUG_ON(p->refcount);
+	p->refcount = 1;
+}
 #endif /* __KVM_HYP_MEMORY_H */
diff --git a/arch/arm64/kvm/hyp/include/nvhe/mm.h b/arch/arm64/kvm/hyp/include/nvhe/mm.h
index c9a8f53..45b04bf 100644
--- a/arch/arm64/kvm/hyp/include/nvhe/mm.h
+++ b/arch/arm64/kvm/hyp/include/nvhe/mm.h
@@ -10,87 +10,20 @@
 #include <nvhe/memory.h>
 #include <nvhe/spinlock.h>
 
-#define HYP_MEMBLOCK_REGIONS 128
-extern struct memblock_region kvm_nvhe_sym(hyp_memory)[];
-extern unsigned int kvm_nvhe_sym(hyp_memblock_nr);
 extern struct kvm_pgtable pkvm_pgtable;
 extern hyp_spinlock_t pkvm_pgd_lock;
-extern struct hyp_pool hpool;
-extern u64 __io_map_base;
+
+int hyp_create_pcpu_fixmap(void);
+void *hyp_fixmap_map(phys_addr_t phys);
+int hyp_fixmap_unmap(void);
 
 int hyp_create_idmap(u32 hyp_va_bits);
 int hyp_map_vectors(void);
-int hyp_back_vmemmap(phys_addr_t phys, unsigned long size, phys_addr_t back);
+int hyp_back_vmemmap(phys_addr_t back);
 int pkvm_cpu_set_vector(enum arm64_hyp_spectre_vector slot);
 int pkvm_create_mappings(void *from, void *to, enum kvm_pgtable_prot prot);
 int pkvm_create_mappings_locked(void *from, void *to, enum kvm_pgtable_prot prot);
 unsigned long __pkvm_create_private_mapping(phys_addr_t phys, size_t size,
 					    enum kvm_pgtable_prot prot);
 
-static inline void hyp_vmemmap_range(phys_addr_t phys, unsigned long size,
-				     unsigned long *start, unsigned long *end)
-{
-	unsigned long nr_pages = size >> PAGE_SHIFT;
-	struct hyp_page *p = hyp_phys_to_page(phys);
-
-	*start = (unsigned long)p;
-	*end = *start + nr_pages * sizeof(struct hyp_page);
-	*start = ALIGN_DOWN(*start, PAGE_SIZE);
-	*end = ALIGN(*end, PAGE_SIZE);
-}
-
-static inline unsigned long __hyp_pgtable_max_pages(unsigned long nr_pages)
-{
-	unsigned long total = 0, i;
-
-	/* Provision the worst case scenario */
-	for (i = 0; i < KVM_PGTABLE_MAX_LEVELS; i++) {
-		nr_pages = DIV_ROUND_UP(nr_pages, PTRS_PER_PTE);
-		total += nr_pages;
-	}
-
-	return total;
-}
-
-static inline unsigned long __hyp_pgtable_total_pages(void)
-{
-	unsigned long res = 0, i;
-
-	/* Cover all of memory with page-granularity */
-	for (i = 0; i < kvm_nvhe_sym(hyp_memblock_nr); i++) {
-		struct memblock_region *reg = &kvm_nvhe_sym(hyp_memory)[i];
-		res += __hyp_pgtable_max_pages(reg->size >> PAGE_SHIFT);
-	}
-
-	return res;
-}
-
-static inline unsigned long hyp_s1_pgtable_pages(void)
-{
-	unsigned long res;
-
-	res = __hyp_pgtable_total_pages();
-
-	/* Allow 1 GiB for private mappings */
-	res += __hyp_pgtable_max_pages(SZ_1G >> PAGE_SHIFT);
-
-	return res;
-}
-
-static inline unsigned long host_s2_pgtable_pages(void)
-{
-	unsigned long res;
-
-	/*
-	 * Include an extra 16 pages to safely upper-bound the worst case of
-	 * concatenated pgds.
-	 */
-	res = __hyp_pgtable_total_pages() + 16;
-
-	/* Allow 1 GiB for MMIO mappings */
-	res += __hyp_pgtable_max_pages(SZ_1G >> PAGE_SHIFT);
-
-	return res;
-}
-
 #endif /* __KVM_HYP_MM_H */
diff --git a/arch/arm64/kvm/hyp/include/nvhe/pkvm.h b/arch/arm64/kvm/hyp/include/nvhe/pkvm.h
new file mode 100644
index 0000000..de7f607
--- /dev/null
+++ b/arch/arm64/kvm/hyp/include/nvhe/pkvm.h
@@ -0,0 +1,112 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (C) 2021 Google LLC
+ * Author: Fuad Tabba <tabba@google.com>
+ */
+
+#ifndef __ARM64_KVM_NVHE_PKVM_H__
+#define __ARM64_KVM_NVHE_PKVM_H__
+
+#include <asm/kvm_pkvm.h>
+
+#include <nvhe/gfp.h>
+#include <nvhe/spinlock.h>
+
+/*
+ * A container for the vcpu state that hyp needs to maintain for protected VMs.
+ */
+struct shadow_vcpu_state {
+	struct kvm_shadow_vm *vm;
+	struct kvm_vcpu vcpu;
+};
+
+/*
+ * Holds the relevant data for running a protected vm.
+ */
+struct kvm_shadow_vm {
+	/* A unique id to the shadow structs in the hyp shadow area. */
+	int shadow_handle;
+
+	/* Number of vcpus for the vm. */
+	int created_vcpus;
+
+	/* Pointers to the shadow vcpus of the shadow vm. */
+	struct kvm_vcpu *vcpus[KVM_MAX_VCPUS];
+
+	/* Primary vCPU pending entry to the pvmfw */
+	struct kvm_vcpu *pvmfw_entry_vcpu;
+
+	/* The host's kvm structure. */
+	struct kvm *host_kvm;
+
+	/* The total size of the donated shadow area. */
+	size_t shadow_area_size;
+
+	/*
+	 * The number of vcpus initialized and ready to run in the shadow vm.
+	 * Modifying this is protected by shadow_lock.
+	 */
+	unsigned int nr_vcpus;
+
+	struct kvm_arch arch;
+	struct kvm_pgtable pgt;
+	struct kvm_pgtable_mm_ops mm_ops;
+	struct hyp_pool pool;
+	hyp_spinlock_t lock;
+
+	/* Array of the shadow state pointers per vcpu. */
+	struct shadow_vcpu_state *shadow_vcpus[0];
+};
+
+static inline bool vcpu_is_protected(struct kvm_vcpu *vcpu)
+{
+	if (!is_protected_kvm_enabled())
+		return false;
+
+	return vcpu->arch.pkvm.shadow_vm->arch.pkvm.enabled;
+}
+
+extern phys_addr_t pvmfw_base;
+extern phys_addr_t pvmfw_size;
+
+void hyp_shadow_table_init(void *tbl);
+int __pkvm_init_shadow(struct kvm *kvm, void *shadow_va, size_t size, void *pgd);
+int __pkvm_init_shadow_vcpu(unsigned int shadow_handle,
+			    struct kvm_vcpu *host_vcpu,
+			    void *shadow_vcpu_hva);
+int __pkvm_teardown_shadow(int shadow_handle);
+struct kvm_vcpu *get_shadow_vcpu(int shadow_handle, unsigned int vcpu_idx);
+void put_shadow_vcpu(struct kvm_vcpu *vcpu);
+
+u64 pvm_read_id_reg(const struct kvm_vcpu *vcpu, u32 id);
+bool kvm_handle_pvm_sysreg(struct kvm_vcpu *vcpu, u64 *exit_code);
+bool kvm_handle_pvm_restricted(struct kvm_vcpu *vcpu, u64 *exit_code);
+void kvm_reset_pvm_sys_regs(struct kvm_vcpu *vcpu);
+int kvm_check_pvm_sysreg_table(void);
+
+void pkvm_reset_vcpu(struct kvm_vcpu *vcpu);
+
+bool kvm_handle_pvm_hvc64(struct kvm_vcpu *vcpu, u64 *exit_code);
+
+struct kvm_vcpu *pvm_mpidr_to_vcpu(struct kvm_shadow_vm *vm, unsigned long mpidr);
+
+static inline bool pvm_has_pvmfw(struct kvm_shadow_vm *vm)
+{
+	return vm->arch.pkvm.pvmfw_load_addr != PVMFW_INVALID_LOAD_ADDR;
+}
+
+static inline bool ipa_in_pvmfw_region(struct kvm_shadow_vm *vm, u64 ipa)
+{
+	struct kvm_protected_vm *pkvm = &vm->arch.pkvm;
+
+	if (!pvm_has_pvmfw(vm))
+		return false;
+
+	return ipa - pkvm->pvmfw_load_addr < pvmfw_size;
+}
+
+int pkvm_load_pvmfw_pages(struct kvm_shadow_vm *vm, u64 ipa, phys_addr_t phys,
+			  u64 size);
+void pkvm_clear_pvmfw_pages(void);
+
+#endif /* __ARM64_KVM_NVHE_PKVM_H__ */
diff --git a/arch/arm64/kvm/hyp/include/nvhe/spinlock.h b/arch/arm64/kvm/hyp/include/nvhe/spinlock.h
index 4652fd0..7c7ea8c 100644
--- a/arch/arm64/kvm/hyp/include/nvhe/spinlock.h
+++ b/arch/arm64/kvm/hyp/include/nvhe/spinlock.h
@@ -28,9 +28,17 @@
 	};
 } hyp_spinlock_t;
 
+#define __HYP_SPIN_LOCK_INITIALIZER \
+	{ .__val = 0 }
+
+#define __HYP_SPIN_LOCK_UNLOCKED \
+	((hyp_spinlock_t) __HYP_SPIN_LOCK_INITIALIZER)
+
+#define DEFINE_HYP_SPINLOCK(x)	hyp_spinlock_t x = __HYP_SPIN_LOCK_UNLOCKED
+
 #define hyp_spin_lock_init(l)						\
 do {									\
-	*(l) = (hyp_spinlock_t){ .__val = 0 };				\
+	*(l) = __HYP_SPIN_LOCK_UNLOCKED;				\
 } while (0)
 
 static inline void hyp_spin_lock(hyp_spinlock_t *lock)
diff --git a/arch/arm64/kvm/hyp/nvhe/Makefile b/arch/arm64/kvm/hyp/nvhe/Makefile
index 964c213..cc39faf 100644
--- a/arch/arm64/kvm/hyp/nvhe/Makefile
+++ b/arch/arm64/kvm/hyp/nvhe/Makefile
@@ -4,7 +4,12 @@
 #
 
 asflags-y := -D__KVM_NVHE_HYPERVISOR__ -D__DISABLE_EXPORTS
-ccflags-y := -D__KVM_NVHE_HYPERVISOR__ -D__DISABLE_EXPORTS
+
+# Tracepoint and MMIO logging symbols should not be visible at nVHE KVM as
+# there is no way to execute them and any such MMIO access from nVHE KVM
+# will explode instantly (Words of Marc Zyngier). So introduce a generic flag
+# __DISABLE_TRACE_MMIO__ to disable MMIO tracing for nVHE KVM.
+ccflags-y := -D__KVM_NVHE_HYPERVISOR__ -D__DISABLE_EXPORTS -D__DISABLE_TRACE_MMIO__
 
 hostprogs := gen-hyprel
 HOST_EXTRACFLAGS += -I$(objtree)/include
@@ -14,11 +19,13 @@
 
 obj-y := timer-sr.o sysreg-sr.o debug-sr.o switch.o tlb.o hyp-init.o host.o \
 	 hyp-main.o hyp-smp.o psci-relay.o early_alloc.o stub.o page_alloc.o \
-	 cache.o setup.o mm.o mem_protect.o
+	 cache.o ffa.o setup.o mm.o mem_protect.o sys_regs.o pkvm.o iommu.o
 obj-y += ../vgic-v3-sr.o ../aarch32.o ../vgic-v2-cpuif-proxy.o ../entry.o \
 	 ../fpsimd.o ../hyp-entry.o ../exception.o ../pgtable.o
 obj-y += $(lib-objs)
 
+obj-$(CONFIG_KVM_S2MPU) += iommu/s2mpu.o
+
 ##
 ## Build rules for compiling nVHE hyp code
 ## Output of this folder is `kvm_nvhe.o`, a partially linked object
diff --git a/arch/arm64/kvm/hyp/nvhe/cache.S b/arch/arm64/kvm/hyp/nvhe/cache.S
index 958734f..4c447f2a 100644
--- a/arch/arm64/kvm/hyp/nvhe/cache.S
+++ b/arch/arm64/kvm/hyp/nvhe/cache.S
@@ -11,3 +11,13 @@
 	dcache_by_line_op civac, sy, x0, x1, x2, x3
 	ret
 SYM_FUNC_END_PI(dcache_clean_inval_poc)
+
+SYM_FUNC_START_PI(icache_inval_pou)
+alternative_if ARM64_HAS_CACHE_DIC
+	isb
+	ret
+alternative_else_nop_endif
+
+	invalidate_icache_by_line x0, x1, x2, x3
+	ret
+SYM_FUNC_END_PI(icache_inval_pou)
diff --git a/arch/arm64/kvm/hyp/nvhe/early_alloc.c b/arch/arm64/kvm/hyp/nvhe/early_alloc.c
index 1306c43..00de041 100644
--- a/arch/arm64/kvm/hyp/nvhe/early_alloc.c
+++ b/arch/arm64/kvm/hyp/nvhe/early_alloc.c
@@ -43,6 +43,9 @@
 	return hyp_early_alloc_contig(1);
 }
 
+static void hyp_early_alloc_get_page(void *addr) { }
+static void hyp_early_alloc_put_page(void *addr) { }
+
 void hyp_early_alloc_init(void *virt, unsigned long size)
 {
 	base = cur = (unsigned long)virt;
@@ -51,4 +54,6 @@
 	hyp_early_alloc_mm_ops.zalloc_page = hyp_early_alloc_page;
 	hyp_early_alloc_mm_ops.phys_to_virt = hyp_phys_to_virt;
 	hyp_early_alloc_mm_ops.virt_to_phys = hyp_virt_to_phys;
+	hyp_early_alloc_mm_ops.get_page = hyp_early_alloc_get_page;
+	hyp_early_alloc_mm_ops.put_page = hyp_early_alloc_put_page;
 }
diff --git a/arch/arm64/kvm/hyp/nvhe/ffa.c b/arch/arm64/kvm/hyp/nvhe/ffa.c
new file mode 100644
index 0000000..3bb1efc
--- /dev/null
+++ b/arch/arm64/kvm/hyp/nvhe/ffa.c
@@ -0,0 +1,734 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * FF-A v1.0 proxy to filter out invalid memory-sharing SMC calls issued by
+ * the host. FF-A is a slightly more palatable abbreviation of "Arm Firmware
+ * Framework for Arm A-profile", which is specified by Arm in document
+ * number DEN0077.
+ *
+ * Copyright (C) 2022 - Google LLC
+ * Author: Andrew Walbran <qwandor@google.com>
+ *
+ * This driver hooks into the SMC trapping logic for the host and intercepts
+ * all calls falling within the FF-A range. Each call is either:
+ *
+ *	- Forwarded on unmodified to the SPMD at EL3
+ *	- Rejected as "unsupported"
+ *	- Accompanied by a host stage-2 page-table check/update and reissued
+ *
+ * Consequently, any attempts by the host to make guest memory pages
+ * accessible to the secure world using FF-A will be detected either here
+ * (in the case that the memory is already owned by the guest) or during
+ * donation to the guest (in the case that the memory was previously shared
+ * with the secure world).
+ *
+ * To allow the rolling-back of page-table updates and FF-A calls in the
+ * event of failure, operations involving the RXTX buffers are locked for
+ * the duration and are therefore serialised.
+ */
+
+#include <linux/arm-smccc.h>
+#include <linux/arm_ffa.h>
+#include <asm/kvm_pkvm.h>
+
+#include <nvhe/ffa.h>
+#include <nvhe/mem_protect.h>
+#include <nvhe/memory.h>
+#include <nvhe/trap_handler.h>
+
+/*
+ * "ID value 0 must be returned at the Non-secure physical FF-A instance"
+ * We share this ID with the host.
+ */
+#define HOST_FFA_ID	0
+
+/*
+ * A buffer to hold the maximum descriptor size we can see from the host,
+ * which is required when the SPMD returns a fragmented FFA_MEM_RETRIEVE_RESP
+ * when resolving the handle on the reclaim path.
+ */
+struct kvm_ffa_descriptor_buffer {
+	void	*buf;
+	size_t	len;
+};
+
+static struct kvm_ffa_descriptor_buffer ffa_desc_buf;
+
+/*
+ * Note that we don't currently lock these buffers explicitly, instead
+ * relying on the locking of the host FFA buffers as we only have one
+ * client.
+ */
+static struct kvm_ffa_buffers ffa_buffers;
+
+static void ffa_to_smccc_error(struct arm_smccc_res *res, u64 ffa_errno)
+{
+	*res = (struct arm_smccc_res) {
+		.a0	= FFA_ERROR,
+		.a2	= ffa_errno,
+	};
+}
+
+static void ffa_to_smccc_res_prop(struct arm_smccc_res *res, int ret, u64 prop)
+{
+	if (ret == FFA_RET_SUCCESS) {
+		*res = (struct arm_smccc_res) { .a0 = FFA_SUCCESS,
+						.a2 = prop };
+	} else {
+		ffa_to_smccc_error(res, ret);
+	}
+}
+
+static void ffa_to_smccc_res(struct arm_smccc_res *res, int ret)
+{
+	ffa_to_smccc_res_prop(res, ret, 0);
+}
+
+static void ffa_set_retval(struct kvm_cpu_context *ctxt,
+			   struct arm_smccc_res *res)
+{
+	cpu_reg(ctxt, 0) = res->a0;
+	cpu_reg(ctxt, 1) = res->a1;
+	cpu_reg(ctxt, 2) = res->a2;
+	cpu_reg(ctxt, 3) = res->a3;
+}
+
+static bool is_ffa_call(u64 func_id)
+{
+	return ARM_SMCCC_IS_FAST_CALL(func_id) &&
+	       ARM_SMCCC_OWNER_NUM(func_id) == ARM_SMCCC_OWNER_STANDARD &&
+	       ARM_SMCCC_FUNC_NUM(func_id) >= FFA_MIN_FUNC_NUM &&
+	       ARM_SMCCC_FUNC_NUM(func_id) <= FFA_MAX_FUNC_NUM;
+}
+
+static int spmd_map_ffa_buffers(u64 ffa_page_count)
+{
+	struct arm_smccc_res res;
+
+	arm_smccc_1_1_smc(FFA_FN64_RXTX_MAP,
+			  hyp_virt_to_phys(ffa_buffers.tx),
+			  hyp_virt_to_phys(ffa_buffers.rx),
+			  ffa_page_count,
+			  0, 0, 0, 0,
+			  &res);
+
+	return res.a0 == FFA_SUCCESS ? FFA_RET_SUCCESS : res.a2;
+}
+
+static int spmd_unmap_ffa_buffers(void)
+{
+	struct arm_smccc_res res;
+
+	arm_smccc_1_1_smc(FFA_RXTX_UNMAP,
+			  HOST_FFA_ID,
+			  0, 0, 0, 0, 0, 0,
+			  &res);
+
+	return res.a0 == FFA_SUCCESS ? FFA_RET_SUCCESS : res.a2;
+}
+
+static void spmd_mem_frag_tx(struct arm_smccc_res *res, u32 handle_lo,
+			     u32 handle_hi, u32 fraglen, u32 endpoint_id)
+{
+	arm_smccc_1_1_smc(FFA_MEM_FRAG_TX,
+			  handle_lo, handle_hi, fraglen, endpoint_id,
+			  0, 0, 0,
+			  res);
+}
+
+static void spmd_mem_frag_rx(struct arm_smccc_res *res, u32 handle_lo,
+			     u32 handle_hi, u32 fragoff)
+{
+	arm_smccc_1_1_smc(FFA_MEM_FRAG_RX,
+			  handle_lo, handle_hi, fragoff, HOST_FFA_ID,
+			  0, 0, 0,
+			  res);
+}
+
+static void spmd_mem_xfer(struct arm_smccc_res *res, u64 func_id, u32 len,
+			  u32 fraglen)
+{
+	arm_smccc_1_1_smc(func_id, len, fraglen,
+			  0, 0, 0, 0, 0,
+			  res);
+}
+
+static void spmd_mem_reclaim(struct arm_smccc_res *res, u32 handle_lo,
+			     u32 handle_hi, u32 flags)
+{
+	arm_smccc_1_1_smc(FFA_MEM_RECLAIM,
+			  handle_lo, handle_hi, flags,
+			  0, 0, 0, 0,
+			  res);
+}
+
+static void spmd_retrieve_req(struct arm_smccc_res *res, u32 len)
+{
+	arm_smccc_1_1_smc(FFA_FN64_MEM_RETRIEVE_REQ,
+			  len, len,
+			  0, 0, 0, 0, 0,
+			  res);
+}
+
+static void do_ffa_rxtx_map(struct arm_smccc_res *res,
+			    struct kvm_cpu_context *ctxt)
+{
+	DECLARE_REG(phys_addr_t, tx, ctxt, 1);
+	DECLARE_REG(phys_addr_t, rx, ctxt, 2);
+	DECLARE_REG(u32, npages, ctxt, 3);
+	int ret = 0;
+	void *rx_virt, *tx_virt;
+
+	if (npages != (KVM_FFA_MBOX_NR_PAGES * PAGE_SIZE) / FFA_PAGE_SIZE) {
+		ret = FFA_RET_INVALID_PARAMETERS;
+		goto out;
+	}
+
+	if (!PAGE_ALIGNED(tx) || !PAGE_ALIGNED(rx)) {
+		ret = FFA_RET_INVALID_PARAMETERS;
+		goto out;
+	}
+
+	hyp_spin_lock(&host_kvm.ffa.lock);
+	if (host_kvm.ffa.tx) {
+		ret = FFA_RET_DENIED;
+		goto out_unlock;
+	}
+
+	ret = spmd_map_ffa_buffers(npages);
+	if (ret)
+		goto out_unlock;
+
+	ret = __pkvm_host_share_hyp(hyp_phys_to_pfn(tx));
+	if (ret) {
+		ret = FFA_RET_INVALID_PARAMETERS;
+		goto err_unmap;
+	}
+
+	ret = __pkvm_host_share_hyp(hyp_phys_to_pfn(rx));
+	if (ret) {
+		ret = FFA_RET_INVALID_PARAMETERS;
+		goto err_unshare_tx;
+	}
+
+	tx_virt = hyp_phys_to_virt(tx);
+	ret = hyp_pin_shared_mem(tx_virt, tx_virt + 1);
+	if (ret) {
+		ret = FFA_RET_INVALID_PARAMETERS;
+		goto err_unshare_rx;
+	}
+
+	rx_virt = hyp_phys_to_virt(rx);
+	ret = hyp_pin_shared_mem(rx_virt, rx_virt + 1);
+	if (ret) {
+		ret = FFA_RET_INVALID_PARAMETERS;
+		goto err_unpin_tx;
+	}
+
+	host_kvm.ffa.tx = tx_virt;
+	host_kvm.ffa.rx = rx_virt;
+
+out_unlock:
+	hyp_spin_unlock(&host_kvm.ffa.lock);
+out:
+	ffa_to_smccc_res(res, ret);
+	return;
+
+err_unpin_tx:
+	hyp_unpin_shared_mem(tx_virt, tx_virt + 1);
+err_unshare_rx:
+	__pkvm_host_unshare_hyp(hyp_phys_to_pfn(rx));
+err_unshare_tx:
+	__pkvm_host_unshare_hyp(hyp_phys_to_pfn(tx));
+err_unmap:
+	spmd_unmap_ffa_buffers();
+	goto out_unlock;
+}
+
+static void do_ffa_rxtx_unmap(struct arm_smccc_res *res,
+			      struct kvm_cpu_context *ctxt)
+{
+	DECLARE_REG(u32, id, ctxt, 1);
+	int ret = 0;
+
+	if (id != HOST_FFA_ID) {
+		ret = FFA_RET_INVALID_PARAMETERS;
+		goto out;
+	}
+
+	hyp_spin_lock(&host_kvm.ffa.lock);
+	if (!host_kvm.ffa.tx) {
+		ret = FFA_RET_INVALID_PARAMETERS;
+		goto out_unlock;
+	}
+
+	hyp_unpin_shared_mem(host_kvm.ffa.tx, host_kvm.ffa.tx + 1);
+	WARN_ON(__pkvm_host_unshare_hyp(hyp_virt_to_pfn(host_kvm.ffa.tx)));
+	host_kvm.ffa.tx = NULL;
+
+	hyp_unpin_shared_mem(host_kvm.ffa.rx, host_kvm.ffa.rx + 1);
+	WARN_ON(__pkvm_host_unshare_hyp(hyp_virt_to_pfn(host_kvm.ffa.rx)));
+	host_kvm.ffa.rx = NULL;
+
+	spmd_unmap_ffa_buffers();
+
+out_unlock:
+	hyp_spin_unlock(&host_kvm.ffa.lock);
+out:
+	ffa_to_smccc_res(res, ret);
+}
+
+static u32 __ffa_host_share_ranges(struct ffa_mem_region_addr_range *ranges,
+				   u32 nranges)
+{
+	u32 i;
+
+	for (i = 0; i < nranges; ++i) {
+		struct ffa_mem_region_addr_range *range = &ranges[i];
+		u64 sz = (u64)range->pg_cnt * FFA_PAGE_SIZE;
+		u64 pfn = hyp_phys_to_pfn(range->address);
+
+		if (!PAGE_ALIGNED(sz))
+			break;
+
+		if (__pkvm_host_share_ffa(pfn, sz / PAGE_SIZE))
+			break;
+	}
+
+	return i;
+}
+
+static u32 __ffa_host_unshare_ranges(struct ffa_mem_region_addr_range *ranges,
+				     u32 nranges)
+{
+	u32 i;
+
+	for (i = 0; i < nranges; ++i) {
+		struct ffa_mem_region_addr_range *range = &ranges[i];
+		u64 sz = (u64)range->pg_cnt * FFA_PAGE_SIZE;
+		u64 pfn = hyp_phys_to_pfn(range->address);
+
+		if (!PAGE_ALIGNED(sz))
+			break;
+
+		if (__pkvm_host_unshare_ffa(pfn, sz / PAGE_SIZE))
+			break;
+	}
+
+	return i;
+}
+
+static int ffa_host_share_ranges(struct ffa_mem_region_addr_range *ranges,
+				 u32 nranges)
+{
+	u32 nshared = __ffa_host_share_ranges(ranges, nranges);
+	int ret = 0;
+
+	if (nshared != nranges) {
+		WARN_ON(__ffa_host_unshare_ranges(ranges, nshared) != nshared);
+		ret = FFA_RET_DENIED;
+	}
+
+	return ret;
+}
+
+static int ffa_host_unshare_ranges(struct ffa_mem_region_addr_range *ranges,
+				   u32 nranges)
+{
+	u32 nunshared = __ffa_host_unshare_ranges(ranges, nranges);
+	int ret = 0;
+
+	if (nunshared != nranges) {
+		WARN_ON(__ffa_host_share_ranges(ranges, nunshared) != nunshared);
+		ret = FFA_RET_DENIED;
+	}
+
+	return ret;
+}
+
+static void do_ffa_mem_frag_tx(struct arm_smccc_res *res,
+			       struct kvm_cpu_context *ctxt)
+{
+	DECLARE_REG(u32, handle_lo, ctxt, 1);
+	DECLARE_REG(u32, handle_hi, ctxt, 2);
+	DECLARE_REG(u32, fraglen, ctxt, 3);
+	DECLARE_REG(u32, endpoint_id, ctxt, 4);
+	struct ffa_mem_region_addr_range *buf;
+	int ret = FFA_RET_INVALID_PARAMETERS;
+	u32 nr_ranges;
+
+	if (fraglen > KVM_FFA_MBOX_NR_PAGES * PAGE_SIZE)
+		goto out;
+
+	if (fraglen % sizeof(*buf))
+		goto out;
+
+	hyp_spin_lock(&host_kvm.ffa.lock);
+	if (!host_kvm.ffa.tx)
+		goto out_unlock;
+
+	buf = ffa_buffers.tx;
+	memcpy(buf, host_kvm.ffa.tx, fraglen);
+	nr_ranges = fraglen / sizeof(*buf);
+
+	ret = ffa_host_share_ranges(buf, nr_ranges);
+	if (ret) {
+		/*
+		 * We're effectively aborting the transaction, so we need
+		 * to restore the global state back to what it was prior to
+		 * transmission of the first fragment.
+		 */
+		spmd_mem_reclaim(res, handle_lo, handle_hi, 0);
+		WARN_ON(res->a0 != FFA_SUCCESS);
+		goto out_unlock;
+	}
+
+	spmd_mem_frag_tx(res, handle_lo, handle_hi, fraglen, endpoint_id);
+	if (res->a0 != FFA_SUCCESS && res->a0 != FFA_MEM_FRAG_RX)
+		WARN_ON(ffa_host_unshare_ranges(buf, nr_ranges));
+
+out_unlock:
+	hyp_spin_unlock(&host_kvm.ffa.lock);
+out:
+	if (ret)
+		ffa_to_smccc_res(res, ret);
+
+	/*
+	 * If for any reason this did not succeed, we're in trouble as we have
+	 * now lost the content of the previous fragments and we can't rollback
+	 * the host stage-2 changes. The pages previously marked as shared will
+	 * remain stuck in that state forever, hence preventing the host from
+	 * sharing/donating them again and may possibly lead to subsequent
+	 * failures, but this will not compromise confidentiality.
+	 */
+	return;
+}
+
+static __always_inline void do_ffa_mem_xfer(const u64 func_id,
+					    struct arm_smccc_res *res,
+					    struct kvm_cpu_context *ctxt)
+{
+	DECLARE_REG(u32, len, ctxt, 1);
+	DECLARE_REG(u32, fraglen, ctxt, 2);
+	DECLARE_REG(u64, addr_mbz, ctxt, 3);
+	DECLARE_REG(u32, npages_mbz, ctxt, 4);
+	struct ffa_composite_mem_region *reg;
+	struct ffa_mem_region *buf;
+	u32 offset, nr_ranges;
+	int ret = 0;
+
+	BUILD_BUG_ON(func_id != FFA_FN64_MEM_SHARE &&
+		     func_id != FFA_FN64_MEM_LEND);
+
+	if (addr_mbz || npages_mbz || fraglen > len ||
+	    fraglen > KVM_FFA_MBOX_NR_PAGES * PAGE_SIZE) {
+		ret = FFA_RET_INVALID_PARAMETERS;
+		goto out;
+	}
+
+	if (fraglen < sizeof(struct ffa_mem_region) +
+		      sizeof(struct ffa_mem_region_attributes)) {
+		ret = FFA_RET_INVALID_PARAMETERS;
+		goto out;
+	}
+
+	hyp_spin_lock(&host_kvm.ffa.lock);
+	if (!host_kvm.ffa.tx) {
+		ret = FFA_RET_INVALID_PARAMETERS;
+		goto out_unlock;
+	}
+
+	buf = ffa_buffers.tx;
+	memcpy(buf, host_kvm.ffa.tx, fraglen);
+
+	offset = buf->ep_mem_access[0].composite_off;
+	if (!offset || buf->ep_count != 1 || buf->sender_id != HOST_FFA_ID) {
+		ret = FFA_RET_INVALID_PARAMETERS;
+		goto out_unlock;
+	}
+
+	if (fraglen < offset + sizeof(struct ffa_composite_mem_region)) {
+		ret = FFA_RET_INVALID_PARAMETERS;
+		goto out_unlock;
+	}
+
+	reg = (void *)buf + offset;
+	nr_ranges = ((void *)buf + fraglen) - (void *)reg->constituents;
+	if (nr_ranges % sizeof(reg->constituents[0])) {
+		ret = FFA_RET_INVALID_PARAMETERS;
+		goto out_unlock;
+	}
+
+	nr_ranges /= sizeof(reg->constituents[0]);
+	ret = ffa_host_share_ranges(reg->constituents, nr_ranges);
+	if (ret)
+		goto out_unlock;
+
+	spmd_mem_xfer(res, func_id, len, fraglen);
+	if (fraglen != len) {
+		if (res->a0 != FFA_MEM_FRAG_RX)
+			goto err_unshare;
+
+		if (res->a3 != fraglen)
+			goto err_unshare;
+	} else if (res->a0 != FFA_SUCCESS) {
+		goto err_unshare;
+	}
+
+out_unlock:
+	hyp_spin_unlock(&host_kvm.ffa.lock);
+out:
+	if (ret)
+		ffa_to_smccc_res(res, ret);
+	return;
+
+err_unshare:
+	WARN_ON(ffa_host_unshare_ranges(reg->constituents, nr_ranges));
+	goto out_unlock;
+}
+
+static void do_ffa_mem_reclaim(struct arm_smccc_res *res,
+			       struct kvm_cpu_context *ctxt)
+{
+	DECLARE_REG(u32, handle_lo, ctxt, 1);
+	DECLARE_REG(u32, handle_hi, ctxt, 2);
+	DECLARE_REG(u32, flags, ctxt, 3);
+	struct ffa_composite_mem_region *reg;
+	u32 offset, len, fraglen, fragoff;
+	struct ffa_mem_region *buf;
+	int ret = 0;
+	u64 handle;
+
+	handle = PACK_HANDLE(handle_lo, handle_hi);
+
+	hyp_spin_lock(&host_kvm.ffa.lock);
+
+	buf = ffa_buffers.tx;
+	*buf = (struct ffa_mem_region) {
+		.sender_id	= HOST_FFA_ID,
+		.handle		= handle,
+	};
+
+	spmd_retrieve_req(res, sizeof(*buf));
+	buf = ffa_buffers.rx;
+	if (res->a0 != FFA_MEM_RETRIEVE_RESP)
+		goto out_unlock;
+
+	len = res->a1;
+	fraglen = res->a2;
+
+	offset = buf->ep_mem_access[0].composite_off;
+	/*
+	 * We can trust the SPMD to get this right, but let's at least
+	 * check that we end up with something that doesn't look _completely_
+	 * bogus.
+	 */
+	if (WARN_ON(offset > len ||
+		    fraglen > KVM_FFA_MBOX_NR_PAGES * PAGE_SIZE)) {
+		ret = FFA_RET_ABORTED;
+		goto out_unlock;
+	}
+
+	if (len > ffa_desc_buf.len) {
+		ret = FFA_RET_NO_MEMORY;
+		goto out_unlock;
+	}
+
+	buf = ffa_desc_buf.buf;
+	memcpy(buf, ffa_buffers.rx, fraglen);
+
+	for (fragoff = fraglen; fragoff < len; fragoff += fraglen) {
+		spmd_mem_frag_rx(res, handle_lo, handle_hi, fragoff);
+		if (res->a0 != FFA_MEM_FRAG_TX) {
+			ret = FFA_RET_INVALID_PARAMETERS;
+			goto out_unlock;
+		}
+
+		fraglen = res->a3;
+		memcpy((void *)buf + fragoff, ffa_buffers.rx, fraglen);
+	}
+
+	spmd_mem_reclaim(res, handle_lo, handle_hi, flags);
+	if (res->a0 != FFA_SUCCESS)
+		goto out_unlock;
+
+	reg = (void *)buf + offset;
+	/* If the SPMD was happy, then we should be too. */
+	WARN_ON(ffa_host_unshare_ranges(reg->constituents,
+					reg->addr_range_cnt));
+out_unlock:
+	hyp_spin_unlock(&host_kvm.ffa.lock);
+
+	if (ret)
+		ffa_to_smccc_res(res, ret);
+	return;
+}
+
+static bool ffa_call_unsupported(u64 func_id)
+{
+	switch (func_id) {
+	/* Unsupported memory management calls */
+	case FFA_FN64_MEM_RETRIEVE_REQ:
+	case FFA_MEM_RETRIEVE_RESP:
+	case FFA_MEM_RELINQUISH:
+	case FFA_MEM_OP_PAUSE:
+	case FFA_MEM_OP_RESUME:
+	case FFA_MEM_FRAG_RX:
+	case FFA_FN64_MEM_DONATE:
+	/* Indirect message passing via RX/TX buffers */
+	case FFA_MSG_SEND:
+	case FFA_MSG_POLL:
+	case FFA_MSG_WAIT:
+	/* 32-bit variants of 64-bit calls */
+	case FFA_MSG_SEND_DIRECT_REQ:
+	case FFA_MSG_SEND_DIRECT_RESP:
+	case FFA_RXTX_MAP:
+	case FFA_MEM_DONATE:
+	case FFA_MEM_RETRIEVE_REQ:
+		return true;
+	}
+
+	return false;
+}
+
+static bool do_ffa_features(struct arm_smccc_res *res,
+			    struct kvm_cpu_context *ctxt)
+{
+	DECLARE_REG(u32, id, ctxt, 1);
+	u64 prop = 0;
+	int ret = 0;
+
+	if (ffa_call_unsupported(id)) {
+		ret = FFA_RET_NOT_SUPPORTED;
+		goto out_handled;
+	}
+
+	switch (id) {
+	case FFA_MEM_SHARE:
+	case FFA_FN64_MEM_SHARE:
+	case FFA_MEM_LEND:
+	case FFA_FN64_MEM_LEND:
+		ret = FFA_RET_SUCCESS;
+		prop = 0; /* No support for dynamic buffers */
+		goto out_handled;
+	default:
+		return false;
+	}
+
+out_handled:
+	ffa_to_smccc_res_prop(res, ret, prop);
+	return true;
+}
+
+bool kvm_host_ffa_handler(struct kvm_cpu_context *host_ctxt)
+{
+	DECLARE_REG(u64, func_id, host_ctxt, 0);
+	struct arm_smccc_res res;
+
+	if (!is_ffa_call(func_id))
+		return false;
+
+	switch (func_id) {
+	case FFA_FEATURES:
+		if (!do_ffa_features(&res, host_ctxt))
+			return false;
+		goto out_handled;
+	/* Memory management */
+	case FFA_FN64_RXTX_MAP:
+		do_ffa_rxtx_map(&res, host_ctxt);
+		goto out_handled;
+	case FFA_RXTX_UNMAP:
+		do_ffa_rxtx_unmap(&res, host_ctxt);
+		goto out_handled;
+	case FFA_MEM_SHARE:
+	case FFA_FN64_MEM_SHARE:
+		do_ffa_mem_xfer(FFA_FN64_MEM_SHARE, &res, host_ctxt);
+		goto out_handled;
+	case FFA_MEM_RECLAIM:
+		do_ffa_mem_reclaim(&res, host_ctxt);
+		goto out_handled;
+	case FFA_MEM_LEND:
+	case FFA_FN64_MEM_LEND:
+		do_ffa_mem_xfer(FFA_FN64_MEM_LEND, &res, host_ctxt);
+		goto out_handled;
+	case FFA_MEM_FRAG_TX:
+		do_ffa_mem_frag_tx(&res, host_ctxt);
+		goto out_handled;
+	}
+
+	if (!ffa_call_unsupported(func_id))
+		return false; /* Pass through */
+
+	ffa_to_smccc_error(&res, FFA_RET_NOT_SUPPORTED);
+out_handled:
+	ffa_set_retval(host_ctxt, &res);
+	return true;
+}
+
+int hyp_ffa_init(void *pages)
+{
+	struct arm_smccc_res res;
+	size_t min_rxtx_sz;
+	void *tx, *rx;
+
+	if (kvm_host_psci_config.smccc_version < ARM_SMCCC_VERSION_1_1)
+		return 0;
+
+	arm_smccc_1_1_smc(FFA_VERSION, FFA_VERSION_1_0, 0, 0, 0, 0, 0, 0, &res);
+	if (res.a0 == FFA_RET_NOT_SUPPORTED)
+		return 0;
+
+	if (res.a0 != FFA_VERSION_1_0)
+		return -EOPNOTSUPP;
+
+	arm_smccc_1_1_smc(FFA_ID_GET, 0, 0, 0, 0, 0, 0, 0, &res);
+	if (res.a0 != FFA_SUCCESS)
+		return -EOPNOTSUPP;
+
+	if (res.a2 != HOST_FFA_ID)
+		return -EINVAL;
+
+	arm_smccc_1_1_smc(FFA_FEATURES, FFA_FN64_RXTX_MAP,
+			  0, 0, 0, 0, 0, 0, &res);
+	if (res.a0 != FFA_SUCCESS)
+		return -EOPNOTSUPP;
+
+	switch (res.a2) {
+	case FFA_FEAT_RXTX_MIN_SZ_4K:
+		min_rxtx_sz = SZ_4K;
+		break;
+	case FFA_FEAT_RXTX_MIN_SZ_16K:
+		min_rxtx_sz = SZ_16K;
+		break;
+	case FFA_FEAT_RXTX_MIN_SZ_64K:
+		min_rxtx_sz = SZ_64K;
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	if (min_rxtx_sz > PAGE_SIZE)
+		return -EOPNOTSUPP;
+
+	tx = pages;
+	pages += KVM_FFA_MBOX_NR_PAGES * PAGE_SIZE;
+	rx = pages;
+	pages += KVM_FFA_MBOX_NR_PAGES * PAGE_SIZE;
+
+	ffa_desc_buf = (struct kvm_ffa_descriptor_buffer) {
+		.buf	= pages,
+		.len	= PAGE_SIZE *
+			  (hyp_ffa_proxy_pages() - (2 * KVM_FFA_MBOX_NR_PAGES)),
+	};
+
+	ffa_buffers = (struct kvm_ffa_buffers) {
+		.lock	= __HYP_SPIN_LOCK_UNLOCKED,
+		.tx	= tx,
+		.rx	= rx,
+	};
+
+	host_kvm.ffa = (struct kvm_ffa_buffers) {
+		.lock	= __HYP_SPIN_LOCK_UNLOCKED,
+	};
+
+	return 0;
+}
diff --git a/arch/arm64/kvm/hyp/nvhe/host.S b/arch/arm64/kvm/hyp/nvhe/host.S
index d310d2b..727c979 100644
--- a/arch/arm64/kvm/hyp/nvhe/host.S
+++ b/arch/arm64/kvm/hyp/nvhe/host.S
@@ -110,17 +110,14 @@
 	b	__host_enter_for_panic
 SYM_FUNC_END(__hyp_do_panic)
 
-.macro host_el1_sync_vect
-	.align 7
-.L__vect_start\@:
-	stp	x0, x1, [sp, #-16]!
-	mrs	x0, esr_el2
-	ubfx	x0, x0, #ESR_ELx_EC_SHIFT, #ESR_ELx_EC_WIDTH
-	cmp	x0, #ESR_ELx_EC_HVC64
-	b.ne	__host_exit
-
+SYM_FUNC_START(__host_hvc)
 	ldp	x0, x1, [sp]		// Don't fixup the stack yet
 
+	/* No stub for you, sonny Jim */
+alternative_if ARM64_KVM_PROTECTED_MODE
+	b	__host_exit
+alternative_else_nop_endif
+
 	/* Check for a stub HVC call */
 	cmp	x0, #HVC_STUB_HCALL_NR
 	b.hs	__host_exit
@@ -137,6 +134,17 @@
 	ldr	x5, =__kvm_handle_stub_hvc
 	hyp_pa	x5, x6
 	br	x5
+SYM_FUNC_END(__host_hvc)
+
+.macro host_el1_sync_vect
+	.align 7
+.L__vect_start\@:
+	stp	x0, x1, [sp, #-16]!
+	mrs	x0, esr_el2
+	ubfx	x0, x0, #ESR_ELx_EC_SHIFT, #ESR_ELx_EC_WIDTH
+	cmp	x0, #ESR_ELx_EC_HVC64
+	b.eq	__host_hvc
+	b	__host_exit
 .L__vect_end\@:
 .if ((.L__vect_end\@ - .L__vect_start\@) > 0x80)
 	.error "host_el1_sync_vect larger than vector entry"
@@ -190,15 +198,15 @@
 	invalid_host_el2_vect			// FIQ EL2h
 	invalid_host_el2_vect			// Error EL2h
 
-	host_el1_sync_vect			// Synchronous 64-bit EL1
-	invalid_host_el1_vect			// IRQ 64-bit EL1
-	invalid_host_el1_vect			// FIQ 64-bit EL1
-	invalid_host_el1_vect			// Error 64-bit EL1
+	host_el1_sync_vect			// Synchronous 64-bit EL1/EL0
+	invalid_host_el1_vect			// IRQ 64-bit EL1/EL0
+	invalid_host_el1_vect			// FIQ 64-bit EL1/EL0
+	invalid_host_el1_vect			// Error 64-bit EL1/EL0
 
-	invalid_host_el1_vect			// Synchronous 32-bit EL1
-	invalid_host_el1_vect			// IRQ 32-bit EL1
-	invalid_host_el1_vect			// FIQ 32-bit EL1
-	invalid_host_el1_vect			// Error 32-bit EL1
+	host_el1_sync_vect			// Synchronous 32-bit EL1/EL0
+	invalid_host_el1_vect			// IRQ 32-bit EL1/EL0
+	invalid_host_el1_vect			// FIQ 32-bit EL1/EL0
+	invalid_host_el1_vect			// Error 32-bit EL1/EL0
 SYM_CODE_END(__kvm_hyp_host_vector)
 
 /*
diff --git a/arch/arm64/kvm/hyp/nvhe/hyp-main.c b/arch/arm64/kvm/hyp/nvhe/hyp-main.c
index 2da6aa8..330cfa0 100644
--- a/arch/arm64/kvm/hyp/nvhe/hyp-main.c
+++ b/arch/arm64/kvm/hyp/nvhe/hyp-main.c
@@ -4,7 +4,9 @@
  * Author: Andrew Scull <ascull@google.com>
  */
 
-#include <hyp/switch.h>
+#include <kvm/arm_hypercalls.h>
+
+#include <hyp/adjust_pc.h>
 
 #include <asm/pgtable-types.h>
 #include <asm/kvm_asm.h>
@@ -13,26 +15,808 @@
 #include <asm/kvm_hyp.h>
 #include <asm/kvm_mmu.h>
 
+#include <nvhe/ffa.h>
+#include <nvhe/iommu.h>
 #include <nvhe/mem_protect.h>
 #include <nvhe/mm.h>
+#include <nvhe/pkvm.h>
 #include <nvhe/trap_handler.h>
 
+#include <linux/irqchip/arm-gic-v3.h>
+#include <uapi/linux/psci.h>
+
+#include "../../sys_regs.h"
+
+struct pkvm_loaded_state {
+	/* loaded vcpu is HYP VA */
+	struct kvm_vcpu			*vcpu;
+	bool				is_protected;
+
+	/*
+	 * Host FPSIMD state. Written to when the guest accesses its
+	 * own FPSIMD state, and read when the guest state is live and
+	 * that it needs to be switched back to the host.
+	 *
+	 * Only valid when the KVM_ARM64_FP_ENABLED flag is set in the
+	 * shadow structure.
+	 */
+	struct user_fpsimd_state	host_fpsimd_state;
+};
+
+static DEFINE_PER_CPU(struct pkvm_loaded_state, loaded_state);
+
 DEFINE_PER_CPU(struct kvm_nvhe_init_params, kvm_init_params);
 
 void __kvm_hyp_host_forward_smc(struct kvm_cpu_context *host_ctxt);
 
+typedef void (*shadow_entry_exit_handler_fn)(struct kvm_vcpu *, struct kvm_vcpu *);
+
+static void handle_pvm_entry_wfx(struct kvm_vcpu *host_vcpu, struct kvm_vcpu *shadow_vcpu)
+{
+	shadow_vcpu->arch.flags |= host_vcpu->arch.flags & KVM_ARM64_INCREMENT_PC;
+}
+
+static int pkvm_refill_memcache(struct kvm_vcpu *shadow_vcpu,
+				struct kvm_vcpu *host_vcpu)
+{
+	u64 nr_pages;
+
+	nr_pages = VTCR_EL2_LVLS(shadow_vcpu->arch.pkvm.shadow_vm->arch.vtcr) - 1;
+	return refill_memcache(&shadow_vcpu->arch.pkvm_memcache, nr_pages,
+			       &host_vcpu->arch.pkvm_memcache);
+}
+
+static void handle_pvm_entry_psci(struct kvm_vcpu *host_vcpu, struct kvm_vcpu *shadow_vcpu)
+{
+	u32 psci_fn = smccc_get_function(shadow_vcpu);
+	u64 ret = vcpu_get_reg(host_vcpu, 0);
+
+	switch (psci_fn) {
+	case PSCI_0_2_FN_CPU_ON:
+	case PSCI_0_2_FN64_CPU_ON:
+		/*
+		 * Check whether the cpu_on request to the host was successful.
+		 * If not, reset the vcpu state from ON_PENDING to OFF.
+		 * This could happen if this vcpu attempted to turn on the other
+		 * vcpu while the other one is in the process of turning itself
+		 * off.
+		 */
+		if (ret != PSCI_RET_SUCCESS) {
+			struct kvm_shadow_vm *vm = shadow_vcpu->arch.pkvm.shadow_vm;
+			unsigned long cpu_id = smccc_get_arg1(shadow_vcpu);
+			struct kvm_vcpu *vcpu = pvm_mpidr_to_vcpu(vm, cpu_id);
+
+			if (vcpu && READ_ONCE(vcpu->arch.pkvm.power_state) == PSCI_0_2_AFFINITY_LEVEL_ON_PENDING)
+				WRITE_ONCE(vcpu->arch.pkvm.power_state, PSCI_0_2_AFFINITY_LEVEL_OFF);
+
+			ret = PSCI_RET_INTERNAL_FAILURE;
+		}
+		break;
+	default:
+		break;
+	}
+
+	vcpu_set_reg(shadow_vcpu, 0, ret);
+}
+
+static void handle_pvm_entry_hvc64(struct kvm_vcpu *host_vcpu, struct kvm_vcpu *shadow_vcpu)
+{
+	u32 fn = smccc_get_function(shadow_vcpu);
+
+	switch (fn) {
+	case ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_MAP_FUNC_ID:
+		pkvm_refill_memcache(shadow_vcpu, host_vcpu);
+		break;
+	case ARM_SMCCC_VENDOR_HYP_KVM_MEM_SHARE_FUNC_ID:
+		fallthrough;
+	case ARM_SMCCC_VENDOR_HYP_KVM_MEM_UNSHARE_FUNC_ID:
+		vcpu_set_reg(shadow_vcpu, 0, SMCCC_RET_SUCCESS);
+		break;
+	default:
+		handle_pvm_entry_psci(host_vcpu, shadow_vcpu);
+		break;
+	}
+}
+
+static void handle_pvm_entry_sys64(struct kvm_vcpu *host_vcpu, struct kvm_vcpu *shadow_vcpu)
+{
+	unsigned long host_flags;
+
+	host_flags = READ_ONCE(host_vcpu->arch.flags);
+
+	/* Exceptions have priority on anything else */
+	if (host_flags & KVM_ARM64_PENDING_EXCEPTION) {
+		/* Exceptions caused by this should be undef exceptions. */
+		u32 esr = (ESR_ELx_EC_UNKNOWN << ESR_ELx_EC_SHIFT);
+
+		__vcpu_sys_reg(shadow_vcpu, ESR_EL1) = esr;
+		shadow_vcpu->arch.flags &= ~(KVM_ARM64_PENDING_EXCEPTION |
+					     KVM_ARM64_EXCEPT_MASK);
+		shadow_vcpu->arch.flags |= (KVM_ARM64_PENDING_EXCEPTION |
+					    KVM_ARM64_EXCEPT_AA64_ELx_SYNC |
+					    KVM_ARM64_EXCEPT_AA64_EL1);
+
+		return;
+	}
+
+
+	if (host_flags & KVM_ARM64_INCREMENT_PC) {
+		shadow_vcpu->arch.flags &= ~(KVM_ARM64_PENDING_EXCEPTION |
+					     KVM_ARM64_EXCEPT_MASK);
+		shadow_vcpu->arch.flags |= KVM_ARM64_INCREMENT_PC;
+	}
+
+	if (!esr_sys64_to_params(shadow_vcpu->arch.fault.esr_el2).is_write) {
+		/* r0 as transfer register between the guest and the host. */
+		u64 rt_val = vcpu_get_reg(host_vcpu, 0);
+		int rt = kvm_vcpu_sys_get_rt(shadow_vcpu);
+
+		vcpu_set_reg(shadow_vcpu, rt, rt_val);
+	}
+}
+
+static void handle_pvm_entry_iabt(struct kvm_vcpu *host_vcpu, struct kvm_vcpu *shadow_vcpu)
+{
+	unsigned long cpsr = *vcpu_cpsr(shadow_vcpu);
+	unsigned long host_flags;
+	u32 esr = ESR_ELx_IL;
+
+	host_flags = READ_ONCE(host_vcpu->arch.flags);
+
+	if (!(host_flags & KVM_ARM64_PENDING_EXCEPTION))
+		return;
+
+	/*
+	 * If the host wants to inject an exception, get syndrom and
+	 * fault address.
+	 */
+	if ((cpsr & PSR_MODE_MASK) == PSR_MODE_EL0t)
+		esr |= (ESR_ELx_EC_IABT_LOW << ESR_ELx_EC_SHIFT);
+	else
+		esr |= (ESR_ELx_EC_IABT_CUR << ESR_ELx_EC_SHIFT);
+
+	esr |= ESR_ELx_FSC_EXTABT;
+
+	__vcpu_sys_reg(shadow_vcpu, ESR_EL1) = esr;
+	__vcpu_sys_reg(shadow_vcpu, FAR_EL1) = kvm_vcpu_get_hfar(shadow_vcpu);
+
+	/* Tell the run loop that we want to inject something */
+	shadow_vcpu->arch.flags &= ~(KVM_ARM64_PENDING_EXCEPTION |
+				     KVM_ARM64_EXCEPT_MASK);
+	shadow_vcpu->arch.flags |= (KVM_ARM64_PENDING_EXCEPTION |
+				    KVM_ARM64_EXCEPT_AA64_ELx_SYNC |
+				    KVM_ARM64_EXCEPT_AA64_EL1);
+}
+
+static void handle_pvm_entry_dabt(struct kvm_vcpu *host_vcpu, struct kvm_vcpu *shadow_vcpu)
+{
+	unsigned long host_flags;
+	bool rd_update;
+
+	host_flags = READ_ONCE(host_vcpu->arch.flags);
+
+	/* Exceptions have priority over anything else */
+	if (host_flags & KVM_ARM64_PENDING_EXCEPTION) {
+		unsigned long cpsr = *vcpu_cpsr(shadow_vcpu);
+		u32 esr = ESR_ELx_IL;
+
+		if ((cpsr & PSR_MODE_MASK) == PSR_MODE_EL0t)
+			esr |= (ESR_ELx_EC_DABT_LOW << ESR_ELx_EC_SHIFT);
+		else
+			esr |= (ESR_ELx_EC_DABT_CUR << ESR_ELx_EC_SHIFT);
+
+		esr |= ESR_ELx_FSC_EXTABT;
+
+		__vcpu_sys_reg(shadow_vcpu, ESR_EL1) = esr;
+		__vcpu_sys_reg(shadow_vcpu, FAR_EL1) = kvm_vcpu_get_hfar(shadow_vcpu);
+		/* Tell the run loop that we want to inject something */
+		shadow_vcpu->arch.flags &= ~(KVM_ARM64_PENDING_EXCEPTION |
+					     KVM_ARM64_EXCEPT_MASK);
+		shadow_vcpu->arch.flags |= (KVM_ARM64_PENDING_EXCEPTION |
+					    KVM_ARM64_EXCEPT_AA64_ELx_SYNC |
+					    KVM_ARM64_EXCEPT_AA64_EL1);
+
+		/* Cancel potential in-flight MMIO */
+		shadow_vcpu->mmio_needed = false;
+		return;
+	}
+
+	/* Handle PC increment on MMIO */
+	if ((host_flags & KVM_ARM64_INCREMENT_PC) && shadow_vcpu->mmio_needed) {
+		shadow_vcpu->arch.flags &= ~(KVM_ARM64_PENDING_EXCEPTION |
+					     KVM_ARM64_EXCEPT_MASK);
+		shadow_vcpu->arch.flags |= KVM_ARM64_INCREMENT_PC;
+	}
+
+	/* If we were doing an MMIO read access, update the register*/
+	rd_update = (shadow_vcpu->mmio_needed &&
+		     (host_flags & KVM_ARM64_INCREMENT_PC));
+	rd_update &= !kvm_vcpu_dabt_iswrite(shadow_vcpu);
+
+	if (rd_update) {
+		/* r0 as transfer register between the guest and the host. */
+		u64 rd_val = vcpu_get_reg(host_vcpu, 0);
+		int rd = kvm_vcpu_dabt_get_rd(shadow_vcpu);
+
+		vcpu_set_reg(shadow_vcpu, rd, rd_val);
+	}
+
+	shadow_vcpu->mmio_needed = false;
+}
+
+static void handle_pvm_exit_wfx(struct kvm_vcpu *host_vcpu, struct kvm_vcpu *shadow_vcpu)
+{
+	host_vcpu->arch.ctxt.regs.pstate = shadow_vcpu->arch.ctxt.regs.pstate &
+		PSR_MODE_MASK;
+	host_vcpu->arch.fault.esr_el2 = shadow_vcpu->arch.fault.esr_el2;
+}
+
+static void handle_pvm_exit_sys64(struct kvm_vcpu *host_vcpu, struct kvm_vcpu *shadow_vcpu)
+{
+	u32 esr_el2 = shadow_vcpu->arch.fault.esr_el2;
+
+	/* r0 as transfer register between the guest and the host. */
+	WRITE_ONCE(host_vcpu->arch.fault.esr_el2,
+		   esr_el2 & ~ESR_ELx_SYS64_ISS_RT_MASK);
+
+	/* The mode is required for the host to emulate some sysregs */
+	WRITE_ONCE(host_vcpu->arch.ctxt.regs.pstate,
+		   shadow_vcpu->arch.ctxt.regs.pstate & PSR_MODE_MASK);
+
+	if (esr_sys64_to_params(esr_el2).is_write) {
+		int rt = kvm_vcpu_sys_get_rt(shadow_vcpu);
+		u64 rt_val = vcpu_get_reg(shadow_vcpu, rt);
+
+		vcpu_set_reg(host_vcpu, 0, rt_val);
+	}
+}
+
+static void handle_pvm_exit_hvc64(struct kvm_vcpu *host_vcpu, struct kvm_vcpu *shadow_vcpu)
+{
+	int n, i;
+
+	switch (smccc_get_function(shadow_vcpu)) {
+	/*
+	 * CPU_ON takes 3 arguments, however, to wake up the target vcpu the
+	 * host only needs to know the target's cpu_id, which is passed as the
+	 * first argument. The processing of the reset state is done at hyp.
+	 */
+	case PSCI_0_2_FN_CPU_ON:
+	case PSCI_0_2_FN64_CPU_ON:
+		n = 2;
+		break;
+
+	case PSCI_0_2_FN_CPU_OFF:
+	case PSCI_0_2_FN_SYSTEM_OFF:
+	case PSCI_0_2_FN_SYSTEM_RESET:
+	case PSCI_0_2_FN_CPU_SUSPEND:
+	case PSCI_0_2_FN64_CPU_SUSPEND:
+		n = 1;
+		break;
+
+	case ARM_SMCCC_VENDOR_HYP_KVM_MEM_SHARE_FUNC_ID:
+		fallthrough;
+	case ARM_SMCCC_VENDOR_HYP_KVM_MEM_UNSHARE_FUNC_ID:
+		n = 4;
+		break;
+
+	case PSCI_1_1_FN_SYSTEM_RESET2:
+	case PSCI_1_1_FN64_SYSTEM_RESET2:
+	case ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_MAP_FUNC_ID:
+		n = 3;
+		break;
+
+	/*
+	 * The rest are either blocked or handled by HYP, so we should
+	 * really never be here.
+	 */
+	default:
+		BUG();
+	}
+
+	host_vcpu->arch.fault.esr_el2 = shadow_vcpu->arch.fault.esr_el2;
+
+	/* Pass the hvc function id (r0) as well as any potential arguments. */
+	for (i = 0; i < n; i++)
+		vcpu_set_reg(host_vcpu, i, vcpu_get_reg(shadow_vcpu, i));
+}
+
+static void handle_pvm_exit_iabt(struct kvm_vcpu *host_vcpu, struct kvm_vcpu *shadow_vcpu)
+{
+	WRITE_ONCE(host_vcpu->arch.fault.esr_el2,
+		   shadow_vcpu->arch.fault.esr_el2);
+	WRITE_ONCE(host_vcpu->arch.fault.hpfar_el2,
+		   shadow_vcpu->arch.fault.hpfar_el2);
+}
+
+static void handle_pvm_exit_dabt(struct kvm_vcpu *host_vcpu, struct kvm_vcpu *shadow_vcpu)
+{
+	shadow_vcpu->mmio_needed = __pkvm_check_ioguard_page(shadow_vcpu);
+
+	if (shadow_vcpu->mmio_needed) {
+		/* r0 as transfer register between the guest and the host. */
+		WRITE_ONCE(host_vcpu->arch.fault.esr_el2,
+			   shadow_vcpu->arch.fault.esr_el2 & ~ESR_ELx_SRT_MASK);
+
+		if (kvm_vcpu_dabt_iswrite(shadow_vcpu)) {
+			int rt = kvm_vcpu_dabt_get_rd(shadow_vcpu);
+			u64 rt_val = vcpu_get_reg(shadow_vcpu, rt);
+
+			vcpu_set_reg(host_vcpu, 0, rt_val);
+		}
+	} else {
+		WRITE_ONCE(host_vcpu->arch.fault.esr_el2,
+			   shadow_vcpu->arch.fault.esr_el2 & ~ESR_ELx_ISV);
+	}
+
+	WRITE_ONCE(host_vcpu->arch.ctxt.regs.pstate,
+		   shadow_vcpu->arch.ctxt.regs.pstate & PSR_MODE_MASK);
+	WRITE_ONCE(host_vcpu->arch.fault.far_el2,
+		   shadow_vcpu->arch.fault.far_el2 & FAR_MASK);
+	WRITE_ONCE(host_vcpu->arch.fault.hpfar_el2,
+		   shadow_vcpu->arch.fault.hpfar_el2);
+	WRITE_ONCE(__vcpu_sys_reg(host_vcpu, SCTLR_EL1),
+		   __vcpu_sys_reg(shadow_vcpu, SCTLR_EL1) & (SCTLR_ELx_EE | SCTLR_EL1_E0E));
+}
+
+static void handle_vm_entry_generic(struct kvm_vcpu *host_vcpu, struct kvm_vcpu *shadow_vcpu)
+{
+	unsigned long host_flags = READ_ONCE(host_vcpu->arch.flags);
+
+	shadow_vcpu->arch.flags &= ~(KVM_ARM64_PENDING_EXCEPTION |
+				     KVM_ARM64_EXCEPT_MASK);
+
+	if (host_flags & KVM_ARM64_PENDING_EXCEPTION) {
+		shadow_vcpu->arch.flags |= KVM_ARM64_PENDING_EXCEPTION;
+		shadow_vcpu->arch.flags |= host_flags & KVM_ARM64_EXCEPT_MASK;
+	} else if (host_flags & KVM_ARM64_INCREMENT_PC) {
+		shadow_vcpu->arch.flags |= KVM_ARM64_INCREMENT_PC;
+	}
+}
+
+static void handle_vm_exit_generic(struct kvm_vcpu *host_vcpu, struct kvm_vcpu *shadow_vcpu)
+{
+	host_vcpu->arch.fault.esr_el2 = shadow_vcpu->arch.fault.esr_el2;
+}
+
+static void handle_vm_exit_abt(struct kvm_vcpu *host_vcpu, struct kvm_vcpu *shadow_vcpu)
+{
+	host_vcpu->arch.fault = shadow_vcpu->arch.fault;
+}
+
+static const shadow_entry_exit_handler_fn entry_pvm_shadow_handlers[] = {
+	[0 ... ESR_ELx_EC_MAX]		= NULL,
+	[ESR_ELx_EC_WFx]		= handle_pvm_entry_wfx,
+	[ESR_ELx_EC_HVC64]		= handle_pvm_entry_hvc64,
+	[ESR_ELx_EC_SYS64]		= handle_pvm_entry_sys64,
+	[ESR_ELx_EC_IABT_LOW]		= handle_pvm_entry_iabt,
+	[ESR_ELx_EC_DABT_LOW]		= handle_pvm_entry_dabt,
+};
+
+static const shadow_entry_exit_handler_fn exit_pvm_shadow_handlers[] = {
+	[0 ... ESR_ELx_EC_MAX]		= NULL,
+	[ESR_ELx_EC_WFx]		= handle_pvm_exit_wfx,
+	[ESR_ELx_EC_HVC64]		= handle_pvm_exit_hvc64,
+	[ESR_ELx_EC_SYS64]		= handle_pvm_exit_sys64,
+	[ESR_ELx_EC_IABT_LOW]		= handle_pvm_exit_iabt,
+	[ESR_ELx_EC_DABT_LOW]		= handle_pvm_exit_dabt,
+};
+
+static const shadow_entry_exit_handler_fn entry_vm_shadow_handlers[] = {
+	[0 ... ESR_ELx_EC_MAX]		= handle_vm_entry_generic,
+};
+
+static const shadow_entry_exit_handler_fn exit_vm_shadow_handlers[] = {
+	[0 ... ESR_ELx_EC_MAX]		= handle_vm_exit_generic,
+	[ESR_ELx_EC_IABT_LOW]		= handle_vm_exit_abt,
+	[ESR_ELx_EC_DABT_LOW]		= handle_vm_exit_abt,
+};
+
+static void flush_vgic_state(struct kvm_vcpu *host_vcpu,
+			     struct kvm_vcpu *shadow_vcpu)
+{
+	struct vgic_v3_cpu_if *host_cpu_if, *shadow_cpu_if;
+	unsigned int used_lrs, max_lrs, i;
+
+	host_cpu_if	= &host_vcpu->arch.vgic_cpu.vgic_v3;
+	shadow_cpu_if	= &shadow_vcpu->arch.vgic_cpu.vgic_v3;
+
+	max_lrs = (read_gicreg(ICH_VTR_EL2) & 0xf) + 1;
+	used_lrs = READ_ONCE(host_cpu_if->used_lrs);
+	used_lrs = min(used_lrs, max_lrs);
+
+	shadow_cpu_if->vgic_hcr	= host_cpu_if->vgic_hcr;
+	/* Should be a one-off */
+	shadow_cpu_if->vgic_sre = (ICC_SRE_EL1_DIB |
+				   ICC_SRE_EL1_DFB |
+				   ICC_SRE_EL1_SRE);
+	shadow_cpu_if->used_lrs	= used_lrs;
+
+	for (i = 0; i < used_lrs; i++)
+		shadow_cpu_if->vgic_lr[i] = host_cpu_if->vgic_lr[i];
+}
+
+static void sync_vgic_state(struct kvm_vcpu *host_vcpu,
+			    struct kvm_vcpu *shadow_vcpu)
+{
+	struct vgic_v3_cpu_if *host_cpu_if, *shadow_cpu_if;
+	unsigned int i;
+
+	host_cpu_if	= &host_vcpu->arch.vgic_cpu.vgic_v3;
+	shadow_cpu_if	= &shadow_vcpu->arch.vgic_cpu.vgic_v3;
+
+	host_cpu_if->vgic_hcr	= shadow_cpu_if->vgic_hcr;
+
+	for (i = 0; i < shadow_cpu_if->used_lrs; i++)
+		host_cpu_if->vgic_lr[i] = shadow_cpu_if->vgic_lr[i];
+}
+
+static void flush_timer_state(struct pkvm_loaded_state *state)
+{
+	struct kvm_vcpu *shadow_vcpu = state->vcpu;
+
+	if (!state->is_protected)
+		return;
+
+	/*
+	 * A shadow vcpu has no offset, and sees vtime == ptime. The
+	 * ptimer is fully emulated by EL1 and cannot be trusted.
+	 */
+	write_sysreg(0, cntvoff_el2);
+	isb();
+	write_sysreg_el0(__vcpu_sys_reg(shadow_vcpu, CNTV_CVAL_EL0), SYS_CNTV_CVAL);
+	write_sysreg_el0(__vcpu_sys_reg(shadow_vcpu, CNTV_CTL_EL0), SYS_CNTV_CTL);
+}
+
+static void sync_timer_state(struct pkvm_loaded_state *state)
+{
+	struct kvm_vcpu *shadow_vcpu = state->vcpu;
+
+	if (!state->is_protected)
+		return;
+
+	/*
+	 * Preserve the vtimer state so that it is always correct,
+	 * even if the host tries to make a mess.
+	 */
+	__vcpu_sys_reg(shadow_vcpu, CNTV_CVAL_EL0) = read_sysreg_el0(SYS_CNTV_CVAL);
+	__vcpu_sys_reg(shadow_vcpu, CNTV_CTL_EL0) = read_sysreg_el0(SYS_CNTV_CTL);
+}
+
+static void __copy_vcpu_state(const struct kvm_vcpu *from_vcpu,
+			      struct kvm_vcpu *to_vcpu)
+{
+	int i;
+
+	to_vcpu->arch.ctxt.regs		= from_vcpu->arch.ctxt.regs;
+	to_vcpu->arch.ctxt.spsr_abt	= from_vcpu->arch.ctxt.spsr_abt;
+	to_vcpu->arch.ctxt.spsr_und	= from_vcpu->arch.ctxt.spsr_und;
+	to_vcpu->arch.ctxt.spsr_irq	= from_vcpu->arch.ctxt.spsr_irq;
+	to_vcpu->arch.ctxt.spsr_fiq	= from_vcpu->arch.ctxt.spsr_fiq;
+
+	/*
+	 * Copy the sysregs, but don't mess with the timer state which
+	 * is directly handled by EL1 and is expected to be preserved.
+	 */
+	for (i = 1; i < NR_SYS_REGS; i++) {
+		if (i >= CNTVOFF_EL2 && i <= CNTP_CTL_EL0)
+			continue;
+		to_vcpu->arch.ctxt.sys_regs[i] = from_vcpu->arch.ctxt.sys_regs[i];
+	}
+}
+
+static void __sync_vcpu_state(struct kvm_vcpu *shadow_vcpu)
+{
+	struct kvm_vcpu *host_vcpu = shadow_vcpu->arch.pkvm.host_vcpu;
+
+	__copy_vcpu_state(shadow_vcpu, host_vcpu);
+}
+
+static void __flush_vcpu_state(struct kvm_vcpu *shadow_vcpu)
+{
+	struct kvm_vcpu *host_vcpu = shadow_vcpu->arch.pkvm.host_vcpu;
+
+	__copy_vcpu_state(host_vcpu, shadow_vcpu);
+}
+
+static void flush_shadow_state(struct pkvm_loaded_state *state)
+{
+	struct kvm_vcpu *shadow_vcpu = state->vcpu;
+	struct kvm_vcpu *host_vcpu = shadow_vcpu->arch.pkvm.host_vcpu;
+	u8 esr_ec;
+	shadow_entry_exit_handler_fn ec_handler;
+
+	if (READ_ONCE(shadow_vcpu->arch.pkvm.power_state) == PSCI_0_2_AFFINITY_LEVEL_ON_PENDING)
+		pkvm_reset_vcpu(shadow_vcpu);
+
+	/*
+	 * If we deal with a non-protected guest and that the state is
+	 * dirty (from a host perspective), copy the state back into
+	 * the shadow.
+	 */
+	if (!state->is_protected) {
+		if (READ_ONCE(host_vcpu->arch.flags) & KVM_ARM64_PKVM_STATE_DIRTY)
+			__flush_vcpu_state(shadow_vcpu);
+
+		state->vcpu->arch.hcr_el2 = HCR_GUEST_FLAGS & ~(HCR_RW | HCR_TWI | HCR_TWE);
+		state->vcpu->arch.hcr_el2 |= host_vcpu->arch.hcr_el2;
+	}
+
+	flush_vgic_state(host_vcpu, shadow_vcpu);
+	flush_timer_state(state);
+
+	switch (ARM_EXCEPTION_CODE(shadow_vcpu->arch.pkvm.exit_code)) {
+	case ARM_EXCEPTION_IRQ:
+	case ARM_EXCEPTION_EL1_SERROR:
+	case ARM_EXCEPTION_IL:
+		break;
+	case ARM_EXCEPTION_TRAP:
+		esr_ec = ESR_ELx_EC(kvm_vcpu_get_esr(shadow_vcpu));
+		if (state->is_protected)
+			ec_handler = entry_pvm_shadow_handlers[esr_ec];
+		else
+			ec_handler = entry_vm_shadow_handlers[esr_ec];
+
+		if (ec_handler)
+			ec_handler(host_vcpu, shadow_vcpu);
+
+		break;
+	default:
+		BUG();
+	}
+
+	shadow_vcpu->arch.pkvm.exit_code = 0;
+}
+
+static void sync_shadow_state(struct pkvm_loaded_state *state, u32 exit_reason)
+{
+	struct kvm_vcpu *shadow_vcpu = state->vcpu;
+	struct kvm_vcpu *host_vcpu = shadow_vcpu->arch.pkvm.host_vcpu;
+	u8 esr_ec;
+	shadow_entry_exit_handler_fn ec_handler;
+
+	/*
+	 * Don't sync the vcpu GPR/sysreg state after a run. Instead,
+	 * leave it in the shadow until someone actually requires it.
+	 */
+	sync_vgic_state(host_vcpu, shadow_vcpu);
+	sync_timer_state(state);
+
+	switch (ARM_EXCEPTION_CODE(exit_reason)) {
+	case ARM_EXCEPTION_IRQ:
+		break;
+	case ARM_EXCEPTION_TRAP:
+		esr_ec = ESR_ELx_EC(kvm_vcpu_get_esr(shadow_vcpu));
+		if (state->is_protected)
+			ec_handler = exit_pvm_shadow_handlers[esr_ec];
+		else
+			ec_handler = exit_vm_shadow_handlers[esr_ec];
+
+		if (ec_handler)
+			ec_handler(host_vcpu, shadow_vcpu);
+
+		break;
+	case ARM_EXCEPTION_EL1_SERROR:
+	case ARM_EXCEPTION_IL:
+		break;
+	default:
+		BUG();
+	}
+
+	host_vcpu->arch.flags &= ~(KVM_ARM64_PENDING_EXCEPTION | KVM_ARM64_INCREMENT_PC);
+	shadow_vcpu->arch.pkvm.exit_code = exit_reason;
+}
+
+static void fpsimd_host_restore(void)
+{
+	sysreg_clear_set(cptr_el2, CPTR_EL2_TZ | CPTR_EL2_TFP, 0);
+	isb();
+
+	if (unlikely(is_protected_kvm_enabled())) {
+		struct pkvm_loaded_state *state = this_cpu_ptr(&loaded_state);
+
+		__fpsimd_save_state(&state->vcpu->arch.ctxt.fp_regs);
+		__fpsimd_restore_state(&state->host_fpsimd_state);
+
+		state->vcpu->arch.flags &= ~KVM_ARM64_FP_ENABLED;
+		state->vcpu->arch.flags |= KVM_ARM64_FP_HOST;
+	}
+
+	if (system_supports_sve())
+		sve_cond_update_zcr_vq(ZCR_ELx_LEN_MASK, SYS_ZCR_EL2);
+}
+
+static void handle___pkvm_vcpu_load(struct kvm_cpu_context *host_ctxt)
+{
+	DECLARE_REG(int, shadow_handle, host_ctxt, 1);
+	DECLARE_REG(int, vcpu_idx, host_ctxt, 2);
+	DECLARE_REG(u64, hcr_el2, host_ctxt, 3);
+	struct pkvm_loaded_state *state;
+
+	/* Why did you bother? */
+	if (!is_protected_kvm_enabled())
+		return;
+
+	state = this_cpu_ptr(&loaded_state);
+
+	/* Nice try */
+	if (state->vcpu)
+		return;
+
+	state->vcpu = get_shadow_vcpu(shadow_handle, vcpu_idx);
+
+	if (!state->vcpu)
+		return;
+
+	state->is_protected = state->vcpu->arch.pkvm.shadow_vm->arch.pkvm.enabled;
+
+	state->vcpu->arch.host_fpsimd_state = &state->host_fpsimd_state;
+	state->vcpu->arch.flags |= KVM_ARM64_FP_HOST;
+
+	if (state->is_protected) {
+		/* Propagate WFx trapping flags, trap ptrauth */
+		state->vcpu->arch.hcr_el2 &= ~(HCR_TWE | HCR_TWI |
+					       HCR_API | HCR_APK);
+		state->vcpu->arch.hcr_el2 |= hcr_el2 & (HCR_TWE | HCR_TWI);
+	}
+}
+
+static void handle___pkvm_vcpu_put(struct kvm_cpu_context *host_ctxt)
+{
+	if (unlikely(is_protected_kvm_enabled())) {
+		struct pkvm_loaded_state *state = this_cpu_ptr(&loaded_state);
+
+		if (state->vcpu) {
+			struct kvm_vcpu *host_vcpu = state->vcpu->arch.pkvm.host_vcpu;
+
+			if (state->vcpu->arch.flags & KVM_ARM64_FP_ENABLED)
+				fpsimd_host_restore();
+
+			if (!state->is_protected &&
+			    !(READ_ONCE(host_vcpu->arch.flags) & KVM_ARM64_PKVM_STATE_DIRTY))
+				__sync_vcpu_state(state->vcpu);
+
+			put_shadow_vcpu(state->vcpu);
+
+			/* "It's over and done with..." */
+			state->vcpu = NULL;
+		}
+	}
+}
+
+static void handle___pkvm_vcpu_sync_state(struct kvm_cpu_context *host_ctxt)
+{
+	if (unlikely(is_protected_kvm_enabled())) {
+		struct pkvm_loaded_state *state = this_cpu_ptr(&loaded_state);
+
+		if (!state->vcpu || state->is_protected)
+			return;
+
+		__sync_vcpu_state(state->vcpu);
+	}
+}
+
+static struct kvm_vcpu *__get_current_vcpu(struct kvm_vcpu *vcpu,
+					   struct pkvm_loaded_state **state)
+{
+	struct pkvm_loaded_state *sstate = NULL;
+
+	vcpu = kern_hyp_va(vcpu);
+
+	if (unlikely(is_protected_kvm_enabled())) {
+		sstate = this_cpu_ptr(&loaded_state);
+
+		if (!sstate || vcpu != sstate->vcpu->arch.pkvm.host_vcpu) {
+			sstate = NULL;
+			vcpu = NULL;
+		}
+	}
+
+	*state = sstate;
+	return vcpu;
+}
+
+#define get_current_vcpu(ctxt, regnr, statepp)				\
+	({								\
+		DECLARE_REG(struct kvm_vcpu *, __vcpu, ctxt, regnr);	\
+		__get_current_vcpu(__vcpu, statepp);			\
+	})
+
+#define get_current_vcpu_from_cpu_if(ctxt, regnr, statepp)		\
+	({								\
+		DECLARE_REG(struct vgic_v3_cpu_if *, cif, ctxt, regnr); \
+		struct kvm_vcpu *__vcpu;				\
+		__vcpu = container_of(cif,				\
+				      struct kvm_vcpu,			\
+				      arch.vgic_cpu.vgic_v3);		\
+									\
+		__get_current_vcpu(__vcpu, statepp);			\
+	})
+
 static void handle___kvm_vcpu_run(struct kvm_cpu_context *host_ctxt)
 {
-	DECLARE_REG(struct kvm_vcpu *, vcpu, host_ctxt, 1);
+	struct pkvm_loaded_state *shadow_state;
+	struct kvm_vcpu *vcpu;
+	int ret;
 
-	cpu_reg(host_ctxt, 1) =  __kvm_vcpu_run(kern_hyp_va(vcpu));
+	vcpu = get_current_vcpu(host_ctxt, 1, &shadow_state);
+	if (!vcpu) {
+		cpu_reg(host_ctxt, 1) =  -EINVAL;
+		return;
+	}
+
+	if (unlikely(shadow_state)) {
+		flush_shadow_state(shadow_state);
+
+		ret = __kvm_vcpu_run(shadow_state->vcpu);
+
+		sync_shadow_state(shadow_state, ret);
+
+		if (shadow_state->vcpu->arch.flags & KVM_ARM64_FP_ENABLED) {
+			/*
+			 * The guest has used the FP, trap all accesses
+			 * from the host (both FP and SVE).
+			 */
+			u64 reg = CPTR_EL2_TFP;
+			if (system_supports_sve())
+				reg |= CPTR_EL2_TZ;
+
+			sysreg_clear_set(cptr_el2, 0, reg);
+		}
+	} else {
+		ret = __kvm_vcpu_run(vcpu);
+	}
+
+	cpu_reg(host_ctxt, 1) =  ret;
+}
+
+static void handle___pkvm_host_donate_guest(struct kvm_cpu_context *host_ctxt)
+{
+	DECLARE_REG(u64, pfn, host_ctxt, 1);
+	DECLARE_REG(u64, gfn, host_ctxt, 2);
+	struct kvm_vcpu *host_vcpu;
+	struct pkvm_loaded_state *state;
+	int ret = -EINVAL;
+
+	if (!is_protected_kvm_enabled())
+		goto out;
+
+	state = this_cpu_ptr(&loaded_state);
+	if (!state->vcpu)
+		goto out;
+
+	host_vcpu = state->vcpu->arch.pkvm.host_vcpu;
+
+	/* Topup shadow memcache with the host's */
+	ret = pkvm_refill_memcache(state->vcpu, host_vcpu);
+	if (!ret) {
+		if (state->is_protected)
+			ret = __pkvm_host_donate_guest(pfn, gfn, state->vcpu);
+		else
+			ret = __pkvm_host_share_guest(pfn, gfn, state->vcpu);
+	}
+out:
+	cpu_reg(host_ctxt, 1) =  ret;
 }
 
 static void handle___kvm_adjust_pc(struct kvm_cpu_context *host_ctxt)
 {
-	DECLARE_REG(struct kvm_vcpu *, vcpu, host_ctxt, 1);
+	struct pkvm_loaded_state *shadow_state;
+	struct kvm_vcpu *vcpu;
 
-	__kvm_adjust_pc(kern_hyp_va(vcpu));
+	vcpu = get_current_vcpu(host_ctxt, 1, &shadow_state);
+	if (!vcpu)
+		return;
+
+	if (shadow_state) {
+		/* This only applies to non-protected VMs */
+		if (shadow_state->is_protected)
+			return;
+
+		vcpu = shadow_state->vcpu;
+	}
+
+	__kvm_adjust_pc(vcpu);
 }
 
 static void handle___kvm_flush_vm_context(struct kvm_cpu_context *host_ctxt)
@@ -82,16 +866,6 @@
 	cpu_reg(host_ctxt, 1) = __vgic_v3_get_gic_config();
 }
 
-static void handle___vgic_v3_read_vmcr(struct kvm_cpu_context *host_ctxt)
-{
-	cpu_reg(host_ctxt, 1) = __vgic_v3_read_vmcr();
-}
-
-static void handle___vgic_v3_write_vmcr(struct kvm_cpu_context *host_ctxt)
-{
-	__vgic_v3_write_vmcr(cpu_reg(host_ctxt, 1));
-}
-
 static void handle___vgic_v3_init_lrs(struct kvm_cpu_context *host_ctxt)
 {
 	__vgic_v3_init_lrs();
@@ -102,18 +876,64 @@
 	cpu_reg(host_ctxt, 1) = __kvm_get_mdcr_el2();
 }
 
-static void handle___vgic_v3_save_aprs(struct kvm_cpu_context *host_ctxt)
+static void handle___vgic_v3_save_vmcr_aprs(struct kvm_cpu_context *host_ctxt)
 {
-	DECLARE_REG(struct vgic_v3_cpu_if *, cpu_if, host_ctxt, 1);
+	struct pkvm_loaded_state *shadow_state;
+	struct kvm_vcpu *vcpu;
 
-	__vgic_v3_save_aprs(kern_hyp_va(cpu_if));
+	vcpu = get_current_vcpu_from_cpu_if(host_ctxt, 1, &shadow_state);
+	if (!vcpu)
+		return;
+
+	if (shadow_state) {
+		struct vgic_v3_cpu_if *shadow_cpu_if, *cpu_if;
+		int i;
+
+		shadow_cpu_if = &shadow_state->vcpu->arch.vgic_cpu.vgic_v3;
+		__vgic_v3_save_vmcr_aprs(shadow_cpu_if);
+
+		cpu_if = &vcpu->arch.vgic_cpu.vgic_v3;
+
+		cpu_if->vgic_vmcr = shadow_cpu_if->vgic_vmcr;
+		for (i = 0; i < ARRAY_SIZE(cpu_if->vgic_ap0r); i++) {
+			cpu_if->vgic_ap0r[i] = shadow_cpu_if->vgic_ap0r[i];
+			cpu_if->vgic_ap1r[i] = shadow_cpu_if->vgic_ap1r[i];
+		}
+	} else {
+		__vgic_v3_save_vmcr_aprs(&vcpu->arch.vgic_cpu.vgic_v3);
+	}
 }
 
-static void handle___vgic_v3_restore_aprs(struct kvm_cpu_context *host_ctxt)
+static void handle___vgic_v3_restore_vmcr_aprs(struct kvm_cpu_context *host_ctxt)
 {
-	DECLARE_REG(struct vgic_v3_cpu_if *, cpu_if, host_ctxt, 1);
+	struct pkvm_loaded_state *shadow_state;
+	struct kvm_vcpu *vcpu;
 
-	__vgic_v3_restore_aprs(kern_hyp_va(cpu_if));
+	vcpu = get_current_vcpu_from_cpu_if(host_ctxt, 1, &shadow_state);
+	if (!vcpu)
+		return;
+
+	if (shadow_state) {
+		struct vgic_v3_cpu_if *shadow_cpu_if, *cpu_if;
+		int i;
+
+		shadow_cpu_if = &shadow_state->vcpu->arch.vgic_cpu.vgic_v3;
+		cpu_if = &vcpu->arch.vgic_cpu.vgic_v3;
+
+		shadow_cpu_if->vgic_vmcr = cpu_if->vgic_vmcr;
+		/* Should be a one-off */
+		shadow_cpu_if->vgic_sre = (ICC_SRE_EL1_DIB |
+					   ICC_SRE_EL1_DFB |
+					   ICC_SRE_EL1_SRE);
+		for (i = 0; i < ARRAY_SIZE(cpu_if->vgic_ap0r); i++) {
+			shadow_cpu_if->vgic_ap0r[i] = cpu_if->vgic_ap0r[i];
+			shadow_cpu_if->vgic_ap1r[i] = cpu_if->vgic_ap1r[i];
+		}
+
+		__vgic_v3_restore_vmcr_aprs(shadow_cpu_if);
+	} else {
+		__vgic_v3_restore_vmcr_aprs(&vcpu->arch.vgic_cpu.vgic_v3);
+	}
 }
 
 static void handle___pkvm_init(struct kvm_cpu_context *host_ctxt)
@@ -147,6 +967,20 @@
 	cpu_reg(host_ctxt, 1) = __pkvm_host_share_hyp(pfn);
 }
 
+static void handle___pkvm_host_unshare_hyp(struct kvm_cpu_context *host_ctxt)
+{
+	DECLARE_REG(u64, pfn, host_ctxt, 1);
+
+	cpu_reg(host_ctxt, 1) = __pkvm_host_unshare_hyp(pfn);
+}
+
+static void handle___pkvm_host_reclaim_page(struct kvm_cpu_context *host_ctxt)
+{
+	DECLARE_REG(u64, pfn, host_ctxt, 1);
+
+	cpu_reg(host_ctxt, 1) = __pkvm_host_reclaim_page(pfn);
+}
+
 static void handle___pkvm_create_private_mapping(struct kvm_cpu_context *host_ctxt)
 {
 	DECLARE_REG(phys_addr_t, phys, host_ctxt, 1);
@@ -160,41 +994,134 @@
 {
 	cpu_reg(host_ctxt, 1) = __pkvm_prot_finalize();
 }
+
+static void handle___pkvm_init_shadow(struct kvm_cpu_context *host_ctxt)
+{
+	DECLARE_REG(struct kvm *, host_kvm, host_ctxt, 1);
+	DECLARE_REG(void *, host_shadow_va, host_ctxt, 2);
+	DECLARE_REG(size_t, shadow_size, host_ctxt, 3);
+	DECLARE_REG(void *, pgd, host_ctxt, 4);
+
+	cpu_reg(host_ctxt, 1) = __pkvm_init_shadow(host_kvm, host_shadow_va,
+						   shadow_size, pgd);
+}
+
+static void handle___pkvm_init_shadow_vcpu(struct kvm_cpu_context *host_ctxt)
+{
+	DECLARE_REG(unsigned int, shadow_handle, host_ctxt, 1);
+	DECLARE_REG(struct kvm_vcpu *, host_vcpu, host_ctxt, 2);
+	DECLARE_REG(void *, shadow_vcpu_hva, host_ctxt, 3);
+
+	cpu_reg(host_ctxt, 1) =	__pkvm_init_shadow_vcpu(shadow_handle,
+							host_vcpu,
+							shadow_vcpu_hva);
+}
+
+static void handle___pkvm_teardown_shadow(struct kvm_cpu_context *host_ctxt)
+{
+	DECLARE_REG(int, shadow_handle, host_ctxt, 1);
+
+	cpu_reg(host_ctxt, 1) = __pkvm_teardown_shadow(shadow_handle);
+}
+
+static void handle___pkvm_iommu_driver_init(struct kvm_cpu_context *host_ctxt)
+{
+	DECLARE_REG(enum pkvm_iommu_driver_id, id, host_ctxt, 1);
+	DECLARE_REG(void *, data, host_ctxt, 2);
+	DECLARE_REG(size_t, size, host_ctxt, 3);
+
+	cpu_reg(host_ctxt, 1) = __pkvm_iommu_driver_init(id, data, size);
+}
+
+static void handle___pkvm_iommu_register(struct kvm_cpu_context *host_ctxt)
+{
+	DECLARE_REG(unsigned long, dev_id, host_ctxt, 1);
+	DECLARE_REG(enum pkvm_iommu_driver_id, drv_id, host_ctxt, 2);
+	DECLARE_REG(phys_addr_t, dev_pa, host_ctxt, 3);
+	DECLARE_REG(size_t, dev_size, host_ctxt, 4);
+	DECLARE_REG(unsigned long, parent_id, host_ctxt, 5);
+	DECLARE_REG(void *, mem, host_ctxt, 6);
+	DECLARE_REG(size_t, mem_size, host_ctxt, 7);
+
+	cpu_reg(host_ctxt, 1) = __pkvm_iommu_register(dev_id, drv_id, dev_pa,
+						      dev_size, parent_id,
+						      mem, mem_size);
+}
+
+static void handle___pkvm_iommu_pm_notify(struct kvm_cpu_context *host_ctxt)
+{
+	DECLARE_REG(unsigned long, dev_id, host_ctxt, 1);
+	DECLARE_REG(enum pkvm_iommu_pm_event, event, host_ctxt, 2);
+
+	cpu_reg(host_ctxt, 1) = __pkvm_iommu_pm_notify(dev_id, event);
+}
+
+static void handle___pkvm_iommu_finalize(struct kvm_cpu_context *host_ctxt)
+{
+	cpu_reg(host_ctxt, 1) = __pkvm_iommu_finalize();
+}
+
 typedef void (*hcall_t)(struct kvm_cpu_context *);
 
 #define HANDLE_FUNC(x)	[__KVM_HOST_SMCCC_FUNC_##x] = (hcall_t)handle_##x
 
 static const hcall_t host_hcall[] = {
-	HANDLE_FUNC(__kvm_vcpu_run),
-	HANDLE_FUNC(__kvm_adjust_pc),
+	/* ___kvm_hyp_init */
+	HANDLE_FUNC(__kvm_get_mdcr_el2),
+	HANDLE_FUNC(__pkvm_init),
+	HANDLE_FUNC(__pkvm_create_private_mapping),
+	HANDLE_FUNC(__pkvm_cpu_set_vector),
+	HANDLE_FUNC(__kvm_enable_ssbs),
+	HANDLE_FUNC(__vgic_v3_init_lrs),
+	HANDLE_FUNC(__vgic_v3_get_gic_config),
 	HANDLE_FUNC(__kvm_flush_vm_context),
 	HANDLE_FUNC(__kvm_tlb_flush_vmid_ipa),
 	HANDLE_FUNC(__kvm_tlb_flush_vmid),
 	HANDLE_FUNC(__kvm_flush_cpu_context),
-	HANDLE_FUNC(__kvm_timer_set_cntvoff),
-	HANDLE_FUNC(__kvm_enable_ssbs),
-	HANDLE_FUNC(__vgic_v3_get_gic_config),
-	HANDLE_FUNC(__vgic_v3_read_vmcr),
-	HANDLE_FUNC(__vgic_v3_write_vmcr),
-	HANDLE_FUNC(__vgic_v3_init_lrs),
-	HANDLE_FUNC(__kvm_get_mdcr_el2),
-	HANDLE_FUNC(__vgic_v3_save_aprs),
-	HANDLE_FUNC(__vgic_v3_restore_aprs),
-	HANDLE_FUNC(__pkvm_init),
-	HANDLE_FUNC(__pkvm_cpu_set_vector),
-	HANDLE_FUNC(__pkvm_host_share_hyp),
-	HANDLE_FUNC(__pkvm_create_private_mapping),
 	HANDLE_FUNC(__pkvm_prot_finalize),
+
+	HANDLE_FUNC(__pkvm_host_share_hyp),
+	HANDLE_FUNC(__pkvm_host_unshare_hyp),
+	HANDLE_FUNC(__pkvm_host_reclaim_page),
+	HANDLE_FUNC(__pkvm_host_donate_guest),
+	HANDLE_FUNC(__kvm_adjust_pc),
+	HANDLE_FUNC(__kvm_vcpu_run),
+	HANDLE_FUNC(__kvm_timer_set_cntvoff),
+	HANDLE_FUNC(__vgic_v3_save_vmcr_aprs),
+	HANDLE_FUNC(__vgic_v3_restore_vmcr_aprs),
+	HANDLE_FUNC(__pkvm_init_shadow),
+	HANDLE_FUNC(__pkvm_init_shadow_vcpu),
+	HANDLE_FUNC(__pkvm_teardown_shadow),
+	HANDLE_FUNC(__pkvm_vcpu_load),
+	HANDLE_FUNC(__pkvm_vcpu_put),
+	HANDLE_FUNC(__pkvm_vcpu_sync_state),
+	HANDLE_FUNC(__pkvm_iommu_driver_init),
+	HANDLE_FUNC(__pkvm_iommu_register),
+	HANDLE_FUNC(__pkvm_iommu_pm_notify),
+	HANDLE_FUNC(__pkvm_iommu_finalize),
 };
 
 static void handle_host_hcall(struct kvm_cpu_context *host_ctxt)
 {
 	DECLARE_REG(unsigned long, id, host_ctxt, 0);
+	unsigned long hcall_min = 0;
 	hcall_t hfn;
 
+	/*
+	 * If pKVM has been initialised then reject any calls to the
+	 * early "privileged" hypercalls. Note that we cannot reject
+	 * calls to __pkvm_prot_finalize for two reasons: (1) The static
+	 * key used to determine initialisation must be toggled prior to
+	 * finalisation and (2) finalisation is performed on a per-CPU
+	 * basis. This is all fine, however, since __pkvm_prot_finalize
+	 * returns -EPERM after the first call for a given CPU.
+	 */
+	if (static_branch_unlikely(&kvm_protected_mode_initialized))
+		hcall_min = __KVM_HOST_SMCCC_FUNC___pkvm_prot_finalize;
+
 	id -= KVM_HOST_SMCCC_ID(0);
 
-	if (unlikely(id >= ARRAY_SIZE(host_hcall)))
+	if (unlikely(id < hcall_min || id >= ARRAY_SIZE(host_hcall)))
 		goto inval;
 
 	hfn = host_hcall[id];
@@ -220,6 +1147,8 @@
 
 	handled = kvm_host_psci_handler(host_ctxt);
 	if (!handled)
+		handled = kvm_host_ffa_handler(host_ctxt);
+	if (!handled)
 		default_host_smc_handler(host_ctxt);
 
 	/* SMC was trapped, move ELR past the current PC. */
@@ -237,10 +1166,9 @@
 	case ESR_ELx_EC_SMC64:
 		handle_host_smc(host_ctxt);
 		break;
+	case ESR_ELx_EC_FP_ASIMD:
 	case ESR_ELx_EC_SVE:
-		sysreg_clear_set(cptr_el2, CPTR_EL2_TZ, 0);
-		isb();
-		sve_cond_update_zcr_vq(ZCR_ELx_LEN_MASK, SYS_ZCR_EL2);
+		fpsimd_host_restore();
 		break;
 	case ESR_ELx_EC_IABT_LOW:
 	case ESR_ELx_EC_DABT_LOW:
diff --git a/arch/arm64/kvm/hyp/nvhe/hyp-smp.c b/arch/arm64/kvm/hyp/nvhe/hyp-smp.c
index 9f54833..04d1945 100644
--- a/arch/arm64/kvm/hyp/nvhe/hyp-smp.c
+++ b/arch/arm64/kvm/hyp/nvhe/hyp-smp.c
@@ -23,6 +23,8 @@
 	return hyp_cpu_logical_map[cpu];
 }
 
+unsigned long __ro_after_init kvm_arm_hyp_percpu_base[NR_CPUS];
+
 unsigned long __hyp_per_cpu_offset(unsigned int cpu)
 {
 	unsigned long *cpu_base_array;
diff --git a/arch/arm64/kvm/hyp/nvhe/hyp.lds.S b/arch/arm64/kvm/hyp/nvhe/hyp.lds.S
index f4562f4..d724f6d 100644
--- a/arch/arm64/kvm/hyp/nvhe/hyp.lds.S
+++ b/arch/arm64/kvm/hyp/nvhe/hyp.lds.S
@@ -25,5 +25,7 @@
 	BEGIN_HYP_SECTION(.data..percpu)
 		PERCPU_INPUT(L1_CACHE_BYTES)
 	END_HYP_SECTION
+
 	HYP_SECTION(.bss)
+	HYP_SECTION(.data)
 }
diff --git a/arch/arm64/kvm/hyp/nvhe/iommu.c b/arch/arm64/kvm/hyp/nvhe/iommu.c
new file mode 100644
index 0000000..9327dd7
--- /dev/null
+++ b/arch/arm64/kvm/hyp/nvhe/iommu.c
@@ -0,0 +1,554 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (C) 2022 Google LLC
+ * Author: David Brazdil <dbrazdil@google.com>
+ */
+
+#include <linux/kvm_host.h>
+
+#include <asm/kvm_asm.h>
+#include <asm/kvm_hyp.h>
+#include <asm/kvm_mmu.h>
+#include <asm/kvm_pkvm.h>
+
+#include <hyp/adjust_pc.h>
+#include <nvhe/iommu.h>
+#include <nvhe/mm.h>
+
+enum {
+	IOMMU_DRIVER_NOT_READY = 0,
+	IOMMU_DRIVER_INITIALIZING,
+	IOMMU_DRIVER_READY,
+};
+
+struct pkvm_iommu_driver {
+	const struct pkvm_iommu_ops *ops;
+	atomic_t state;
+};
+
+static struct pkvm_iommu_driver iommu_drivers[PKVM_IOMMU_NR_DRIVERS];
+
+/* IOMMU device list. Must only be accessed with host_kvm.lock held. */
+static LIST_HEAD(iommu_list);
+
+static bool iommu_finalized;
+static DEFINE_HYP_SPINLOCK(iommu_registration_lock);
+
+static void *iommu_mem_pool;
+static size_t iommu_mem_remaining;
+
+static void assert_host_component_locked(void)
+{
+	hyp_assert_lock_held(&host_kvm.lock);
+}
+
+static void host_lock_component(void)
+{
+	hyp_spin_lock(&host_kvm.lock);
+}
+
+static void host_unlock_component(void)
+{
+	hyp_spin_unlock(&host_kvm.lock);
+}
+
+/*
+ * Find IOMMU driver by its ID. The input ID is treated as unstrusted
+ * and is properly validated.
+ */
+static inline struct pkvm_iommu_driver *get_driver(enum pkvm_iommu_driver_id id)
+{
+	size_t index = (size_t)id;
+
+	if (index >= ARRAY_SIZE(iommu_drivers))
+		return NULL;
+
+	return &iommu_drivers[index];
+}
+
+static const struct pkvm_iommu_ops *get_driver_ops(enum pkvm_iommu_driver_id id)
+{
+	switch (id) {
+	case PKVM_IOMMU_DRIVER_S2MPU:
+		return IS_ENABLED(CONFIG_KVM_S2MPU) ? &pkvm_s2mpu_ops : NULL;
+	case PKVM_IOMMU_DRIVER_SYSMMU_SYNC:
+		return IS_ENABLED(CONFIG_KVM_S2MPU) ? &pkvm_sysmmu_sync_ops : NULL;
+	default:
+		return NULL;
+	}
+}
+
+static inline bool driver_acquire_init(struct pkvm_iommu_driver *drv)
+{
+	return atomic_cmpxchg_acquire(&drv->state, IOMMU_DRIVER_NOT_READY,
+				      IOMMU_DRIVER_INITIALIZING)
+			== IOMMU_DRIVER_NOT_READY;
+}
+
+static inline void driver_release_init(struct pkvm_iommu_driver *drv,
+				       bool success)
+{
+	atomic_set_release(&drv->state, success ? IOMMU_DRIVER_READY
+						: IOMMU_DRIVER_NOT_READY);
+}
+
+static inline bool is_driver_ready(struct pkvm_iommu_driver *drv)
+{
+	return atomic_read(&drv->state) == IOMMU_DRIVER_READY;
+}
+
+static size_t __iommu_alloc_size(struct pkvm_iommu_driver *drv)
+{
+	return ALIGN(sizeof(struct pkvm_iommu) + drv->ops->data_size,
+		     sizeof(unsigned long));
+}
+
+/* Global memory pool for allocating IOMMU list entry structs. */
+static inline struct pkvm_iommu *alloc_iommu(struct pkvm_iommu_driver *drv,
+					     void *mem, size_t mem_size)
+{
+	size_t size = __iommu_alloc_size(drv);
+	void *ptr;
+
+	assert_host_component_locked();
+
+	/*
+	 * If new memory is being provided, replace the existing pool with it.
+	 * Any remaining memory in the pool is discarded.
+	 */
+	if (mem && mem_size) {
+		iommu_mem_pool = mem;
+		iommu_mem_remaining = mem_size;
+	}
+
+	if (size > iommu_mem_remaining)
+		return NULL;
+
+	ptr = iommu_mem_pool;
+	iommu_mem_pool += size;
+	iommu_mem_remaining -= size;
+	return ptr;
+}
+
+static inline void free_iommu(struct pkvm_iommu_driver *drv, struct pkvm_iommu *ptr)
+{
+	size_t size = __iommu_alloc_size(drv);
+
+	assert_host_component_locked();
+
+	if (!ptr)
+		return;
+
+	/* Only allow freeing the last allocated buffer. */
+	if ((void*)ptr + size != iommu_mem_pool)
+		return;
+
+	iommu_mem_pool -= size;
+	iommu_mem_remaining += size;
+}
+
+static bool is_overlap(phys_addr_t r1_start, size_t r1_size,
+		       phys_addr_t r2_start, size_t r2_size)
+{
+	phys_addr_t r1_end = r1_start + r1_size;
+	phys_addr_t r2_end = r2_start + r2_size;
+
+	return (r1_start < r2_end) && (r2_start < r1_end);
+}
+
+static bool is_mmio_range(phys_addr_t base, size_t size)
+{
+	struct memblock_region *reg;
+	phys_addr_t limit = BIT(host_kvm.pgt.ia_bits);
+	size_t i;
+
+	/* Check against limits of host IPA space. */
+	if ((base >= limit) || !size || (size > limit - base))
+		return false;
+
+	for (i = 0; i < hyp_memblock_nr; i++) {
+		reg = &hyp_memory[i];
+		if (is_overlap(base, size, reg->base, reg->size))
+			return false;
+	}
+	return true;
+}
+
+static int __snapshot_host_stage2(u64 start, u64 pa_max, u32 level,
+				  kvm_pte_t *ptep,
+				  enum kvm_pgtable_walk_flags flags,
+				  void * const arg)
+{
+	struct pkvm_iommu_driver * const drv = arg;
+	u64 end = start + kvm_granule_size(level);
+	kvm_pte_t pte = *ptep;
+
+	/*
+	 * Valid stage-2 entries are created lazily, invalid ones eagerly.
+	 * Note: In the future we may need to check if [start,end) is MMIO.
+	 * Note: Drivers initialize their PTs to all memory owned by the host,
+	 * so we only call the driver on regions where that is not the case.
+	 */
+	if (pte && !kvm_pte_valid(pte))
+		drv->ops->host_stage2_idmap_prepare(start, end, /*prot*/ 0);
+	return 0;
+}
+
+static int snapshot_host_stage2(struct pkvm_iommu_driver * const drv)
+{
+	struct kvm_pgtable_walker walker = {
+		.cb	= __snapshot_host_stage2,
+		.arg	= drv,
+		.flags	= KVM_PGTABLE_WALK_LEAF,
+	};
+	struct kvm_pgtable *pgt = &host_kvm.pgt;
+
+	if (!drv->ops->host_stage2_idmap_prepare)
+		return 0;
+
+	return kvm_pgtable_walk(pgt, 0, BIT(pgt->ia_bits), &walker);
+}
+
+static bool validate_against_existing_iommus(struct pkvm_iommu *dev)
+{
+	struct pkvm_iommu *other;
+
+	assert_host_component_locked();
+
+	list_for_each_entry(other, &iommu_list, list) {
+		/* Device ID must be unique. */
+		if (dev->id == other->id)
+			return false;
+
+		/* MMIO regions must not overlap. */
+		if (is_overlap(dev->pa, dev->size, other->pa, other->size))
+			return false;
+	}
+	return true;
+}
+
+static struct pkvm_iommu *find_iommu_by_id(unsigned long id)
+{
+	struct pkvm_iommu *dev;
+
+	assert_host_component_locked();
+
+	list_for_each_entry(dev, &iommu_list, list) {
+		if (dev->id == id)
+			return dev;
+	}
+	return NULL;
+}
+
+/*
+ * Initialize EL2 IOMMU driver.
+ *
+ * This is a common hypercall for driver initialization. Driver-specific
+ * arguments are passed in a shared memory buffer. The driver is expected to
+ * initialize it's page-table bookkeeping.
+ */
+int __pkvm_iommu_driver_init(enum pkvm_iommu_driver_id id, void *data, size_t size)
+{
+	struct pkvm_iommu_driver *drv;
+	const struct pkvm_iommu_ops *ops;
+	int ret = 0;
+
+	data = kern_hyp_va(data);
+
+	/* New driver initialization not allowed after __pkvm_iommu_finalize(). */
+	hyp_spin_lock(&iommu_registration_lock);
+	if (iommu_finalized) {
+		ret = -EPERM;
+		goto out_unlock;
+	}
+
+	drv = get_driver(id);
+	ops = get_driver_ops(id);
+	if (!drv || !ops) {
+		ret = -EINVAL;
+		goto out_unlock;
+	}
+
+	if (!driver_acquire_init(drv)) {
+		ret = -EBUSY;
+		goto out_unlock;
+	}
+
+	drv->ops = ops;
+
+	/* This can change stage-2 mappings. */
+	if (ops->init) {
+		ret = hyp_pin_shared_mem(data, data + size);
+		if (!ret) {
+			ret = ops->init(data, size);
+			hyp_unpin_shared_mem(data, data + size);
+		}
+		if (ret)
+			goto out_release;
+	}
+
+	/*
+	 * Walk host stage-2 and pass current mappings to the driver. Start
+	 * accepting host stage-2 updates as soon as the host lock is released.
+	 */
+	host_lock_component();
+	ret = snapshot_host_stage2(drv);
+	if (!ret)
+		driver_release_init(drv, /*success=*/true);
+	host_unlock_component();
+
+out_release:
+	if (ret)
+		driver_release_init(drv, /*success=*/false);
+
+out_unlock:
+	hyp_spin_unlock(&iommu_registration_lock);
+	return ret;
+}
+
+int __pkvm_iommu_register(unsigned long dev_id,
+			  enum pkvm_iommu_driver_id drv_id,
+			  phys_addr_t dev_pa, size_t dev_size,
+			  unsigned long parent_id,
+			  void *kern_mem_va, size_t mem_size)
+{
+	struct pkvm_iommu *dev = NULL;
+	struct pkvm_iommu_driver *drv;
+	void *mem_va = NULL;
+	int ret = 0;
+
+	/* New device registration not allowed after __pkvm_iommu_finalize(). */
+	hyp_spin_lock(&iommu_registration_lock);
+	if (iommu_finalized) {
+		ret = -EPERM;
+		goto out_unlock;
+	}
+
+	drv = get_driver(drv_id);
+	if (!drv || !is_driver_ready(drv)) {
+		ret = -ENOENT;
+		goto out_unlock;
+	}
+
+	if (!PAGE_ALIGNED(dev_pa) || !PAGE_ALIGNED(dev_size)) {
+		ret = -EINVAL;
+		goto out_unlock;
+	}
+
+	if (!is_mmio_range(dev_pa, dev_size)) {
+		ret = -EINVAL;
+		goto out_unlock;
+	}
+
+	/*
+	 * Accept memory donation if the host is providing new memory.
+	 * Note: We do not return the memory even if there is an error later.
+	 */
+	if (kern_mem_va && mem_size) {
+		mem_va = kern_hyp_va(kern_mem_va);
+
+		if (!PAGE_ALIGNED(mem_va) || !PAGE_ALIGNED(mem_size)) {
+			ret = -EINVAL;
+			goto out_unlock;
+		}
+
+		ret = __pkvm_host_donate_hyp(hyp_virt_to_pfn(mem_va),
+					     mem_size >> PAGE_SHIFT);
+		if (ret)
+			goto out_unlock;
+	}
+
+	host_lock_component();
+
+	/* Allocate memory for the new device entry. */
+	dev = alloc_iommu(drv, mem_va, mem_size);
+	if (!dev) {
+		ret = -ENOMEM;
+		goto out_free;
+	}
+
+	/* Populate the new device entry. */
+	*dev = (struct pkvm_iommu){
+		.children = LIST_HEAD_INIT(dev->children),
+		.id = dev_id,
+		.ops = drv->ops,
+		.pa = dev_pa,
+		.size = dev_size,
+	};
+
+	if (!validate_against_existing_iommus(dev)) {
+		ret = -EBUSY;
+		goto out_free;
+	}
+
+	if (parent_id) {
+		dev->parent = find_iommu_by_id(parent_id);
+		if (!dev->parent) {
+			ret = -EINVAL;
+			goto out_free;
+		}
+
+		if (dev->parent->ops->validate_child) {
+			ret = dev->parent->ops->validate_child(dev->parent, dev);
+			if (ret)
+				goto out_free;
+		}
+	}
+
+	if (dev->ops->validate) {
+		ret = dev->ops->validate(dev);
+		if (ret)
+			goto out_free;
+	}
+
+	/*
+	 * Unmap the device's MMIO range from host stage-2. If registration
+	 * is successful, future attempts to re-map will be blocked by
+	 * pkvm_iommu_host_stage2_adjust_range.
+	 */
+	ret = host_stage2_unmap_dev_locked(dev_pa, dev_size);
+	if (ret)
+		goto out_free;
+
+	/* Create EL2 mapping for the device. Do it last as it is irreversible. */
+	dev->va = (void *)__pkvm_create_private_mapping(dev_pa, dev_size,
+							PAGE_HYP_DEVICE);
+	if (IS_ERR(dev->va)) {
+		ret = PTR_ERR(dev->va);
+		goto out_free;
+	}
+
+	/* Register device and prevent host from mapping the MMIO range. */
+	list_add_tail(&dev->list, &iommu_list);
+	if (dev->parent)
+		list_add_tail(&dev->siblings, &dev->parent->children);
+
+out_free:
+	if (ret)
+		free_iommu(drv, dev);
+	host_unlock_component();
+
+out_unlock:
+	hyp_spin_unlock(&iommu_registration_lock);
+	return ret;
+}
+
+int __pkvm_iommu_finalize(void)
+{
+	int ret = 0;
+
+	hyp_spin_lock(&iommu_registration_lock);
+	if (!iommu_finalized)
+		iommu_finalized = true;
+	else
+		ret = -EPERM;
+	hyp_spin_unlock(&iommu_registration_lock);
+	return ret;
+}
+
+int __pkvm_iommu_pm_notify(unsigned long dev_id, enum pkvm_iommu_pm_event event)
+{
+	struct pkvm_iommu *dev;
+	int ret;
+
+	host_lock_component();
+	dev = find_iommu_by_id(dev_id);
+	if (dev) {
+		if (event == PKVM_IOMMU_PM_SUSPEND) {
+			ret = dev->ops->suspend ? dev->ops->suspend(dev) : 0;
+			if (!ret)
+				dev->powered = false;
+		} else if (event == PKVM_IOMMU_PM_RESUME) {
+			ret = dev->ops->resume ? dev->ops->resume(dev) : 0;
+			if (!ret)
+				dev->powered = true;
+		} else {
+			ret = -EINVAL;
+		}
+	} else {
+		ret = -ENODEV;
+	}
+	host_unlock_component();
+	return ret;
+}
+
+/*
+ * Check host memory access against IOMMUs' MMIO regions.
+ * Returns -EPERM if the address is within the bounds of a registered device.
+ * Otherwise returns zero and adjusts boundaries of the new mapping to avoid
+ * MMIO regions of registered IOMMUs.
+ */
+int pkvm_iommu_host_stage2_adjust_range(phys_addr_t addr, phys_addr_t *start,
+					phys_addr_t *end)
+{
+	struct pkvm_iommu *dev;
+	phys_addr_t new_start = *start;
+	phys_addr_t new_end = *end;
+	phys_addr_t dev_start, dev_end;
+
+	assert_host_component_locked();
+
+	list_for_each_entry(dev, &iommu_list, list) {
+		dev_start = dev->pa;
+		dev_end = dev_start + dev->size;
+
+		if (addr < dev_start)
+			new_end = min(new_end, dev_start);
+		else if (addr >= dev_end)
+			new_start = max(new_start, dev_end);
+		else
+			return -EPERM;
+	}
+
+	*start = new_start;
+	*end = new_end;
+	return 0;
+}
+
+bool pkvm_iommu_host_dabt_handler(struct kvm_cpu_context *host_ctxt, u32 esr,
+				  phys_addr_t pa)
+{
+	struct pkvm_iommu *dev;
+
+	assert_host_component_locked();
+
+	list_for_each_entry(dev, &iommu_list, list) {
+		if (pa < dev->pa || pa >= dev->pa + dev->size)
+			continue;
+
+		/* No 'powered' check - the host assumes it is powered. */
+		if (!dev->ops->host_dabt_handler ||
+		    !dev->ops->host_dabt_handler(dev, host_ctxt, esr, pa - dev->pa))
+			return false;
+
+		kvm_skip_host_instr();
+		return true;
+	}
+	return false;
+}
+
+void pkvm_iommu_host_stage2_idmap(phys_addr_t start, phys_addr_t end,
+				  enum kvm_pgtable_prot prot)
+{
+	struct pkvm_iommu_driver *drv;
+	struct pkvm_iommu *dev;
+	size_t i;
+
+	assert_host_component_locked();
+
+	for (i = 0; i < ARRAY_SIZE(iommu_drivers); i++) {
+		drv = get_driver(i);
+		if (drv && is_driver_ready(drv) && drv->ops->host_stage2_idmap_prepare)
+			drv->ops->host_stage2_idmap_prepare(start, end, prot);
+	}
+
+	list_for_each_entry(dev, &iommu_list, list) {
+		if (dev->powered && dev->ops->host_stage2_idmap_apply)
+			dev->ops->host_stage2_idmap_apply(dev, start, end);
+	}
+
+	list_for_each_entry(dev, &iommu_list, list) {
+		if (dev->powered && dev->ops->host_stage2_idmap_complete)
+			dev->ops->host_stage2_idmap_complete(dev);
+	}
+}
diff --git a/arch/arm64/kvm/hyp/nvhe/iommu/s2mpu.c b/arch/arm64/kvm/hyp/nvhe/iommu/s2mpu.c
new file mode 100644
index 0000000..8da0e43
--- /dev/null
+++ b/arch/arm64/kvm/hyp/nvhe/iommu/s2mpu.c
@@ -0,0 +1,622 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (C) 2021 - Google LLC
+ * Author: David Brazdil <dbrazdil@google.com>
+ */
+
+#include <linux/kvm_host.h>
+
+#include <asm/kvm_asm.h>
+#include <asm/kvm_hyp.h>
+#include <asm/kvm_mmu.h>
+#include <asm/kvm_s2mpu.h>
+
+#include <linux/arm-smccc.h>
+
+#include <nvhe/iommu.h>
+#include <nvhe/memory.h>
+#include <nvhe/mm.h>
+#include <nvhe/spinlock.h>
+#include <nvhe/trap_handler.h>
+
+#define SMC_CMD_PREPARE_PD_ONOFF	0x82000410
+#define SMC_MODE_POWER_UP		1
+
+#define PA_MAX				((phys_addr_t)SZ_1G * NR_GIGABYTES)
+
+#define SYNC_MAX_RETRIES		5
+#define SYNC_TIMEOUT			5
+#define SYNC_TIMEOUT_MULTIPLIER		3
+
+#define CTX_CFG_ENTRY(ctxid, nr_ctx, vid) \
+	(CONTEXT_CFG_VALID_VID_CTX_VID(ctxid, vid) \
+	 | (((ctxid) < (nr_ctx)) ? CONTEXT_CFG_VALID_VID_CTX_VALID(ctxid) : 0))
+
+#define for_each_child(child, dev) \
+	list_for_each_entry((child), &(dev)->children, siblings)
+
+struct s2mpu_drv_data {
+	u32 version;
+	u32 context_cfg_valid_vid;
+};
+
+static struct mpt host_mpt;
+
+static inline enum mpt_prot prot_to_mpt(enum kvm_pgtable_prot prot)
+{
+	return ((prot & KVM_PGTABLE_PROT_R) ? MPT_PROT_R : 0) |
+	       ((prot & KVM_PGTABLE_PROT_W) ? MPT_PROT_W : 0);
+}
+
+static bool is_version(struct pkvm_iommu *dev, u32 version)
+{
+	struct s2mpu_drv_data *data = (struct s2mpu_drv_data *)dev->data;
+
+	return (data->version & VERSION_CHECK_MASK) == version;
+}
+
+static u32 __context_cfg_valid_vid(struct pkvm_iommu *dev, u32 vid_bmap)
+{
+	struct s2mpu_drv_data *data = (struct s2mpu_drv_data *)dev->data;
+	u8 ctx_vid[NR_CTX_IDS] = { 0 };
+	unsigned int vid, ctx = 0;
+	unsigned int num_ctx;
+	u32 res;
+
+	/* Only initialize once. */
+	if (data->context_cfg_valid_vid)
+		return data->context_cfg_valid_vid;
+
+	num_ctx = readl_relaxed(dev->va + REG_NS_NUM_CONTEXT) & NUM_CONTEXT_MASK;
+	while (vid_bmap) {
+		/* Break if we cannot allocate more. */
+		if (ctx >= num_ctx)
+			break;
+
+		vid = __ffs(vid_bmap);
+		vid_bmap &= ~BIT(vid);
+		ctx_vid[ctx++] = vid;
+	}
+
+	/* The following loop was unrolled so bitmasks are constant. */
+	BUILD_BUG_ON(NR_CTX_IDS != 8);
+	res = CTX_CFG_ENTRY(0, ctx, ctx_vid[0])
+	    | CTX_CFG_ENTRY(1, ctx, ctx_vid[1])
+	    | CTX_CFG_ENTRY(2, ctx, ctx_vid[2])
+	    | CTX_CFG_ENTRY(3, ctx, ctx_vid[3])
+	    | CTX_CFG_ENTRY(4, ctx, ctx_vid[4])
+	    | CTX_CFG_ENTRY(5, ctx, ctx_vid[5])
+	    | CTX_CFG_ENTRY(6, ctx, ctx_vid[6])
+	    | CTX_CFG_ENTRY(7, ctx, ctx_vid[7]);
+
+	data->context_cfg_valid_vid = res;
+	return res;
+}
+
+static int __initialize_v9(struct pkvm_iommu *dev)
+{
+	u32 ssmt_valid_vid_bmap, ctx_cfg;
+
+	/* Assume all VIDs may be generated by the connected SSMTs for now. */
+	ssmt_valid_vid_bmap = ALL_VIDS_BITMAP;
+	ctx_cfg = __context_cfg_valid_vid(dev, ssmt_valid_vid_bmap);
+	if (!ctx_cfg)
+		return -EINVAL;
+
+	/*
+	 * Write CONTEXT_CFG_VALID_VID configuration before touching L1ENTRY*
+	 * registers. Writes to those registers are ignored unless there is
+	 * a context ID allocated to the corresponding VID (v9 only).
+	 */
+	writel_relaxed(ctx_cfg, dev->va + REG_NS_CONTEXT_CFG_VALID_VID);
+	return 0;
+}
+
+static int __initialize(struct pkvm_iommu *dev)
+{
+	struct s2mpu_drv_data *data = (struct s2mpu_drv_data *)dev->data;
+
+	if (!data->version)
+		data->version = readl_relaxed(dev->va + REG_NS_VERSION);
+
+	switch (data->version & VERSION_CHECK_MASK) {
+	case S2MPU_VERSION_8:
+		return 0;
+	case S2MPU_VERSION_9:
+		return __initialize_v9(dev);
+	default:
+		return -EINVAL;
+	}
+}
+
+static void __set_control_regs(struct pkvm_iommu *dev)
+{
+	u32 ctrl0 = 0, irq_vids;
+
+	/*
+	 * Note: We set the values of CTRL0, CTRL1 and CFG registers here but we
+	 * still rely on the correctness of their reset values. S2MPUs *must*
+	 * reset to a state where all DMA traffic is blocked until the hypervisor
+	 * writes its configuration to the S2MPU. A malicious EL1 could otherwise
+	 * attempt to bypass the permission checks in the window between powering
+	 * on the S2MPU and this function being called.
+	 */
+
+	/* Enable the S2MPU, otherwise all traffic would be allowed through. */
+	ctrl0 |= CTRL0_ENABLE;
+
+	/*
+	 * Enable interrupts on fault for all VIDs. The IRQ must also be
+	 * specified in DT to get unmasked in the GIC.
+	 */
+	ctrl0 |= CTRL0_INTERRUPT_ENABLE;
+	irq_vids = ALL_VIDS_BITMAP;
+
+	/* Return SLVERR/DECERR to device on permission fault. */
+	ctrl0 |= is_version(dev, S2MPU_VERSION_9) ? CTRL0_FAULT_RESP_TYPE_DECERR
+						  : CTRL0_FAULT_RESP_TYPE_SLVERR;
+
+	writel_relaxed(irq_vids, dev->va + REG_NS_INTERRUPT_ENABLE_PER_VID_SET);
+	writel_relaxed(0, dev->va + REG_NS_CFG);
+	writel_relaxed(0, dev->va + REG_NS_CTRL1);
+	writel_relaxed(ctrl0, dev->va + REG_NS_CTRL0);
+}
+
+/*
+ * Poll the given SFR until its value has all bits of a given mask set.
+ * Returns true if successful, false if not successful after a given number of
+ * attempts.
+ */
+static bool __wait_until(void __iomem *addr, u32 mask, size_t max_attempts)
+{
+	size_t i;
+
+	for (i = 0; i < max_attempts; i++) {
+		if ((readl_relaxed(addr) & mask) == mask)
+			return true;
+	}
+	return false;
+}
+
+/* Poll the given SFR as long as its value has all bits of a given mask set. */
+static void __wait_while(void __iomem *addr, u32 mask)
+{
+	while ((readl_relaxed(addr) & mask) == mask)
+		continue;
+}
+
+static void __sync_cmd_start(struct pkvm_iommu *sync)
+{
+	writel_relaxed(SYNC_CMD_SYNC, sync->va + REG_NS_SYNC_CMD);
+}
+
+static void __invalidation_barrier_slow(struct pkvm_iommu *sync)
+{
+	size_t i, timeout;
+
+	/*
+	 * Wait for transactions to drain if SysMMU_SYNCs were registered.
+	 * Assumes that they are in the same power domain as the S2MPU.
+	 *
+	 * The algorithm will try initiating the SYNC if the SYNC_COMP_COMPLETE
+	 * bit has not been set after a given number of attempts, increasing the
+	 * timeout exponentially each time. If this cycle fails a given number
+	 * of times, the algorithm will give up completely to avoid deadlock.
+	 */
+	timeout = SYNC_TIMEOUT;
+	for (i = 0; i < SYNC_MAX_RETRIES; i++) {
+		__sync_cmd_start(sync);
+		if (__wait_until(sync->va + REG_NS_SYNC_COMP, SYNC_COMP_COMPLETE, timeout))
+			break;
+		timeout *= SYNC_TIMEOUT_MULTIPLIER;
+	}
+}
+
+/* Initiate invalidation barrier. */
+static void __invalidation_barrier_init(struct pkvm_iommu *dev)
+{
+	struct pkvm_iommu *sync;
+
+	for_each_child(sync, dev)
+		__sync_cmd_start(sync);
+}
+
+/* Wait for invalidation to complete. */
+static void __invalidation_barrier_complete(struct pkvm_iommu *dev)
+{
+	struct pkvm_iommu *sync;
+
+	/*
+	 * Check if the SYNC_COMP_COMPLETE bit has been set for individual
+	 * devices. If not, fall back to non-parallel invalidation.
+	 */
+	for_each_child(sync, dev) {
+		if (!(readl_relaxed(sync->va + REG_NS_SYNC_COMP) & SYNC_COMP_COMPLETE))
+			__invalidation_barrier_slow(sync);
+	}
+
+	/* Must not access SFRs while S2MPU is busy invalidating (v9 only). */
+	if (is_version(dev, S2MPU_VERSION_9)) {
+		__wait_while(dev->va + REG_NS_STATUS,
+			     STATUS_BUSY | STATUS_ON_INVALIDATING);
+	}
+}
+
+static void __all_invalidation(struct pkvm_iommu *dev)
+{
+	writel_relaxed(INVALIDATION_INVALIDATE, dev->va + REG_NS_ALL_INVALIDATION);
+	__invalidation_barrier_init(dev);
+	__invalidation_barrier_complete(dev);
+}
+
+static void __range_invalidation_init(struct pkvm_iommu *dev, phys_addr_t first_byte,
+				      phys_addr_t last_byte)
+{
+	u32 start_ppn = first_byte >> RANGE_INVALIDATION_PPN_SHIFT;
+	u32 end_ppn = last_byte >> RANGE_INVALIDATION_PPN_SHIFT;
+
+	writel_relaxed(start_ppn, dev->va + REG_NS_RANGE_INVALIDATION_START_PPN);
+	writel_relaxed(end_ppn, dev->va + REG_NS_RANGE_INVALIDATION_END_PPN);
+	writel_relaxed(INVALIDATION_INVALIDATE, dev->va + REG_NS_RANGE_INVALIDATION);
+	__invalidation_barrier_init(dev);
+}
+
+static void __set_l1entry_attr_with_prot(struct pkvm_iommu *dev, unsigned int gb,
+					 unsigned int vid, enum mpt_prot prot)
+{
+	writel_relaxed(L1ENTRY_ATTR_1G(prot),
+		       dev->va + REG_NS_L1ENTRY_ATTR(vid, gb));
+}
+
+static void __set_l1entry_attr_with_fmpt(struct pkvm_iommu *dev, unsigned int gb,
+					 unsigned int vid, struct fmpt *fmpt)
+{
+	if (fmpt->gran_1g) {
+		__set_l1entry_attr_with_prot(dev, gb, vid, fmpt->prot);
+	} else {
+		/* Order against writes to the SMPT. */
+		writel(L1ENTRY_ATTR_L2(SMPT_GRAN_ATTR),
+		       dev->va + REG_NS_L1ENTRY_ATTR(vid, gb));
+	}
+}
+
+static void __set_l1entry_l2table_addr(struct pkvm_iommu *dev, unsigned int gb,
+				       unsigned int vid, phys_addr_t addr)
+{
+	/* Order against writes to the SMPT. */
+	writel(L1ENTRY_L2TABLE_ADDR(addr),
+	       dev->va + REG_NS_L1ENTRY_L2TABLE_ADDR(vid, gb));
+}
+
+/*
+ * Initialize S2MPU device and set all GB regions to 1G granularity with
+ * given protection bits.
+ */
+static int initialize_with_prot(struct pkvm_iommu *dev, enum mpt_prot prot)
+{
+	unsigned int gb, vid;
+	int ret;
+
+	ret = __initialize(dev);
+	if (ret)
+		return ret;
+
+	for_each_gb_and_vid(gb, vid)
+		__set_l1entry_attr_with_prot(dev, gb, vid, prot);
+	__all_invalidation(dev);
+
+	/* Set control registers, enable the S2MPU. */
+	__set_control_regs(dev);
+	return 0;
+}
+
+/*
+ * Initialize S2MPU device, set L2 table addresses and configure L1TABLE_ATTR
+ * registers according to the given MPT struct.
+ */
+static int initialize_with_mpt(struct pkvm_iommu *dev, struct mpt *mpt)
+{
+	unsigned int gb, vid;
+	struct fmpt *fmpt;
+	int ret;
+
+	ret = __initialize(dev);
+	if (ret)
+		return ret;
+
+	for_each_gb_and_vid(gb, vid) {
+		fmpt = &mpt->fmpt[gb];
+		__set_l1entry_l2table_addr(dev, gb, vid, __hyp_pa(fmpt->smpt));
+		__set_l1entry_attr_with_fmpt(dev, gb, vid, fmpt);
+	}
+	__all_invalidation(dev);
+
+	/* Set control registers, enable the S2MPU. */
+	__set_control_regs(dev);
+	return 0;
+}
+
+static bool to_valid_range(phys_addr_t *start, phys_addr_t *end)
+{
+	phys_addr_t new_start = *start;
+	phys_addr_t new_end = *end;
+
+	if (new_end > PA_MAX)
+		new_end = PA_MAX;
+
+	new_start = ALIGN_DOWN(new_start, SMPT_GRAN);
+	new_end = ALIGN(new_end, SMPT_GRAN);
+
+	if (new_start >= new_end)
+		return false;
+
+	*start = new_start;
+	*end = new_end;
+	return true;
+}
+
+static void __mpt_idmap_prepare(struct mpt *mpt, phys_addr_t first_byte,
+				phys_addr_t last_byte, enum mpt_prot prot)
+{
+	unsigned int first_gb = first_byte / SZ_1G;
+	unsigned int last_gb = last_byte / SZ_1G;
+	size_t start_gb_byte, end_gb_byte;
+	unsigned int gb;
+	struct fmpt *fmpt;
+
+	for_each_gb_in_range(gb, first_gb, last_gb) {
+		fmpt = &mpt->fmpt[gb];
+		start_gb_byte = (gb == first_gb) ? first_byte % SZ_1G : 0;
+		end_gb_byte = (gb == last_gb) ? (last_byte % SZ_1G) + 1 : SZ_1G;
+
+		__set_fmpt_range(fmpt, start_gb_byte, end_gb_byte, prot);
+
+		if (fmpt->flags & MPT_UPDATE_L2)
+			kvm_flush_dcache_to_poc(fmpt->smpt, SMPT_SIZE);
+	}
+}
+
+static void __mpt_idmap_apply(struct pkvm_iommu *dev, struct mpt *mpt,
+			      phys_addr_t first_byte, phys_addr_t last_byte)
+{
+	unsigned int first_gb = first_byte / SZ_1G;
+	unsigned int last_gb = last_byte / SZ_1G;
+	unsigned int gb, vid;
+	struct fmpt *fmpt;
+
+	for_each_gb_in_range(gb, first_gb, last_gb) {
+		fmpt = &mpt->fmpt[gb];
+
+		if (fmpt->flags & MPT_UPDATE_L1) {
+			for_each_vid(vid)
+				__set_l1entry_attr_with_fmpt(dev, gb, vid, fmpt);
+		}
+	}
+	/* Initiate invalidation, completed in __mdt_idmap_complete. */
+	__range_invalidation_init(dev, first_byte, last_byte);
+}
+
+static void __mpt_idmap_complete(struct pkvm_iommu *dev, struct mpt *mpt)
+{
+	__invalidation_barrier_complete(dev);
+}
+
+static void s2mpu_host_stage2_idmap_prepare(phys_addr_t start, phys_addr_t end,
+					    enum kvm_pgtable_prot prot)
+{
+	if (!to_valid_range(&start, &end))
+		return;
+
+	__mpt_idmap_prepare(&host_mpt, start, end - 1, prot_to_mpt(prot));
+}
+
+static void s2mpu_host_stage2_idmap_apply(struct pkvm_iommu *dev,
+					  phys_addr_t start, phys_addr_t end)
+{
+	if (!to_valid_range(&start, &end))
+		return;
+
+	__mpt_idmap_apply(dev, &host_mpt, start, end - 1);
+}
+
+static void s2mpu_host_stage2_idmap_complete(struct pkvm_iommu *dev)
+{
+	__mpt_idmap_complete(dev, &host_mpt);
+}
+
+static int s2mpu_resume(struct pkvm_iommu *dev)
+{
+	/*
+	 * Initialize the S2MPU with the host stage-2 MPT. It is paramount
+	 * that the S2MPU reset state is enabled and blocking all traffic,
+	 * otherwise the host would not be forced to call the resume HVC
+	 * before issuing DMA traffic.
+	 */
+	return initialize_with_mpt(dev, &host_mpt);
+}
+
+static int s2mpu_suspend(struct pkvm_iommu *dev)
+{
+	/*
+	 * Stop updating the S2MPU when the host informs us about the intention
+	 * to suspend it. Writes to powered-down MMIO registers would trigger
+	 * SErrors in EL1 otherwise. However, hyp must put S2MPU back to
+	 * blocking state first, in case the host does not actually power it
+	 * down and continues issuing DMA traffic.
+	 */
+	return initialize_with_prot(dev, MPT_PROT_NONE);
+}
+
+static u32 host_mmio_reg_access_mask(size_t off, bool is_write)
+{
+	const u32 no_access  = 0;
+	const u32 read_write = (u32)(-1);
+	const u32 read_only  = is_write ? no_access  : read_write;
+	const u32 write_only = is_write ? read_write : no_access;
+	u32 masked_off;
+
+	switch (off) {
+	/* Allow reading control registers for debugging. */
+	case REG_NS_CTRL0:
+		return read_only & CTRL0_MASK;
+	case REG_NS_CTRL1:
+		return read_only & CTRL1_MASK;
+	case REG_NS_CFG:
+		return read_only & CFG_MASK;
+	/* Allow EL1 IRQ handler to clear interrupts. */
+	case REG_NS_INTERRUPT_CLEAR:
+		return write_only & ALL_VIDS_BITMAP;
+	/* Allow reading number of sets used by MPTC. */
+	case REG_NS_INFO:
+		return read_only & INFO_NUM_SET_MASK;
+	/* Allow EL1 IRQ handler to read bitmap of pending interrupts. */
+	case REG_NS_FAULT_STATUS:
+		return read_only & ALL_VIDS_BITMAP;
+	/*
+	 * Allow reading MPTC entries for debugging. That involves:
+	 *   - writing (set,way) to READ_MPTC
+	 *   - reading READ_MPTC_*
+	 */
+	case REG_NS_READ_MPTC:
+		return write_only & READ_MPTC_MASK;
+	case REG_NS_READ_MPTC_TAG_PPN:
+		return read_only & READ_MPTC_TAG_PPN_MASK;
+	case REG_NS_READ_MPTC_TAG_OTHERS:
+		return read_only & READ_MPTC_TAG_OTHERS_MASK;
+	case REG_NS_READ_MPTC_DATA:
+		return read_only;
+	}
+
+	/* Allow reading L1ENTRY registers for debugging. */
+	if (off >= REG_NS_L1ENTRY_L2TABLE_ADDR(0, 0) &&
+	    off < REG_NS_L1ENTRY_ATTR(NR_VIDS, 0))
+		return read_only;
+
+	/* Allow EL1 IRQ handler to read fault information. */
+	masked_off = off & ~REG_NS_FAULT_VID_MASK;
+	if ((masked_off == REG_NS_FAULT_PA_LOW(0)) ||
+	    (masked_off == REG_NS_FAULT_PA_HIGH(0)) ||
+	    (masked_off == REG_NS_FAULT_INFO(0)))
+		return read_only;
+
+	return no_access;
+}
+
+static bool s2mpu_host_dabt_handler(struct pkvm_iommu *dev,
+				    struct kvm_cpu_context *host_ctxt,
+				    u32 esr, size_t off)
+{
+	bool is_write = esr & ESR_ELx_WNR;
+	unsigned int len = BIT((esr & ESR_ELx_SAS) >> ESR_ELx_SAS_SHIFT);
+	int rd = (esr & ESR_ELx_SRT_MASK) >> ESR_ELx_SRT_SHIFT;
+	u32 mask;
+
+	/* Only handle MMIO access with u32 size and alignment. */
+	if ((len != sizeof(u32)) || (off & (sizeof(u32) - 1)))
+		return false;
+
+	mask = host_mmio_reg_access_mask(off, is_write);
+	if (!mask)
+		return false;
+
+	if (is_write)
+		writel_relaxed(cpu_reg(host_ctxt, rd) & mask, dev->va + off);
+	else
+		cpu_reg(host_ctxt, rd) = readl_relaxed(dev->va + off) & mask;
+	return true;
+}
+
+static int s2mpu_init(void *data, size_t size)
+{
+	struct mpt in_mpt;
+	u32 *smpt;
+	phys_addr_t pa;
+	unsigned int gb;
+	int ret = 0;
+
+	if (size != sizeof(in_mpt))
+		return -EINVAL;
+
+	/* The host can concurrently modify 'data'. Copy it to avoid TOCTOU. */
+	memcpy(&in_mpt, data, sizeof(in_mpt));
+
+	/* Take ownership of all SMPT buffers. This will also map them in. */
+	for_each_gb(gb) {
+		smpt = kern_hyp_va(in_mpt.fmpt[gb].smpt);
+		pa = __hyp_pa(smpt);
+
+		if (!IS_ALIGNED(pa, SMPT_SIZE)) {
+			ret = -EINVAL;
+			break;
+		}
+
+		ret = __pkvm_host_donate_hyp(pa >> PAGE_SHIFT, SMPT_NUM_PAGES);
+		if (ret)
+			break;
+
+		host_mpt.fmpt[gb] = (struct fmpt){
+			.smpt = smpt,
+			.gran_1g = true,
+			.prot = MPT_PROT_RW,
+		};
+	}
+
+	/* Try to return memory back if there was an error. */
+	if (ret) {
+		for_each_gb(gb) {
+			smpt = host_mpt.fmpt[gb].smpt;
+			if (!smpt)
+				break;
+
+			WARN_ON(__pkvm_hyp_donate_host(__hyp_pa(smpt) >> PAGE_SHIFT,
+						       SMPT_NUM_PAGES));
+		}
+		memset(&host_mpt, 0, sizeof(host_mpt));
+	}
+
+	return ret;
+}
+
+static int s2mpu_validate(struct pkvm_iommu *dev)
+{
+	if (dev->size != S2MPU_MMIO_SIZE)
+		return -EINVAL;
+
+	return 0;
+}
+
+static int s2mpu_validate_child(struct pkvm_iommu *dev, struct pkvm_iommu *child)
+{
+	if (child->ops != &pkvm_sysmmu_sync_ops)
+		return -EINVAL;
+
+	return 0;
+}
+
+static int sysmmu_sync_validate(struct pkvm_iommu *dev)
+{
+	if (dev->size != SYSMMU_SYNC_S2_MMIO_SIZE)
+		return -EINVAL;
+
+	if (!dev->parent || dev->parent->ops != &pkvm_s2mpu_ops)
+		return -EINVAL;
+
+	return 0;
+}
+
+const struct pkvm_iommu_ops pkvm_s2mpu_ops = (struct pkvm_iommu_ops){
+	.init = s2mpu_init,
+	.validate = s2mpu_validate,
+	.validate_child = s2mpu_validate_child,
+	.resume = s2mpu_resume,
+	.suspend = s2mpu_suspend,
+	.host_stage2_idmap_prepare = s2mpu_host_stage2_idmap_prepare,
+	.host_stage2_idmap_apply = s2mpu_host_stage2_idmap_apply,
+	.host_stage2_idmap_complete = s2mpu_host_stage2_idmap_complete,
+	.host_dabt_handler = s2mpu_host_dabt_handler,
+	.data_size = sizeof(struct s2mpu_drv_data),
+};
+
+const struct pkvm_iommu_ops pkvm_sysmmu_sync_ops = (struct pkvm_iommu_ops){
+	.validate = sysmmu_sync_validate,
+};
diff --git a/arch/arm64/kvm/hyp/nvhe/mem_protect.c b/arch/arm64/kvm/hyp/nvhe/mem_protect.c
index 34eeb52..402b22f 100644
--- a/arch/arm64/kvm/hyp/nvhe/mem_protect.c
+++ b/arch/arm64/kvm/hyp/nvhe/mem_protect.c
@@ -9,14 +9,18 @@
 #include <asm/kvm_hyp.h>
 #include <asm/kvm_mmu.h>
 #include <asm/kvm_pgtable.h>
+#include <asm/kvm_pkvm.h>
 #include <asm/stage2_pgtable.h>
 
-#include <hyp/switch.h>
+#include <hyp/adjust_pc.h>
+#include <hyp/fault.h>
 
 #include <nvhe/gfp.h>
+#include <nvhe/iommu.h>
 #include <nvhe/memory.h>
 #include <nvhe/mem_protect.h>
 #include <nvhe/mm.h>
+#include <nvhe/pkvm.h>
 
 #define KVM_HOST_S2_FLAGS (KVM_PGTABLE_S2_NOFWB | KVM_PGTABLE_S2_IDMAP)
 
@@ -25,13 +29,56 @@
 
 static struct hyp_pool host_s2_pool;
 
-/*
- * Copies of the host's CPU features registers holding sanitized values.
- */
-u64 id_aa64mmfr0_el1_sys_val;
-u64 id_aa64mmfr1_el1_sys_val;
+static pkvm_id pkvm_guest_id(struct kvm_vcpu *vcpu)
+{
+	return vcpu->arch.hw_mmu->vmid.vmid;
 
-const u8 pkvm_hyp_id = 1;
+}
+
+static DEFINE_PER_CPU(struct kvm_shadow_vm *, __current_vm);
+#define current_vm (*this_cpu_ptr(&__current_vm))
+
+static void __guest_lock(struct kvm_shadow_vm *vm)
+{
+	hyp_spin_lock(&vm->lock);
+	current_vm = vm;
+}
+
+static void __guest_unlock(struct kvm_shadow_vm *vm)
+{
+	current_vm = NULL;
+	hyp_spin_unlock(&vm->lock);
+}
+
+static void host_lock_component(void)
+{
+	hyp_spin_lock(&host_kvm.lock);
+}
+
+static void host_unlock_component(void)
+{
+	hyp_spin_unlock(&host_kvm.lock);
+}
+
+static void hyp_lock_component(void)
+{
+	hyp_spin_lock(&pkvm_pgd_lock);
+}
+
+static void hyp_unlock_component(void)
+{
+	hyp_spin_unlock(&pkvm_pgd_lock);
+}
+
+static void guest_lock_component(struct kvm_vcpu *vcpu)
+{
+	__guest_lock(vcpu->arch.pkvm.shadow_vm);
+}
+
+static void guest_unlock_component(struct kvm_vcpu *vcpu)
+{
+	__guest_unlock(vcpu->arch.pkvm.shadow_vm);
+}
 
 static void *host_s2_zalloc_pages_exact(size_t size)
 {
@@ -109,19 +156,19 @@
 
 	prepare_host_vtcr();
 	hyp_spin_lock_init(&host_kvm.lock);
+	mmu->arch = &host_kvm.arch;
 
 	ret = prepare_s2_pool(pgt_pool_base);
 	if (ret)
 		return ret;
 
-	ret = __kvm_pgtable_stage2_init(&host_kvm.pgt, &host_kvm.arch,
+	ret = __kvm_pgtable_stage2_init(&host_kvm.pgt, mmu,
 					&host_kvm.mm_ops, KVM_HOST_S2_FLAGS,
 					host_stage2_force_pte_cb);
 	if (ret)
 		return ret;
 
 	mmu->pgd_phys = __hyp_pa(host_kvm.pgt.pgd);
-	mmu->arch = &host_kvm.arch;
 	mmu->pgt = &host_kvm.pgt;
 	WRITE_ONCE(mmu->vmid.vmid_gen, 0);
 	WRITE_ONCE(mmu->vmid.vmid, 0);
@@ -129,11 +176,174 @@
 	return 0;
 }
 
+static bool guest_stage2_force_pte_cb(u64 addr, u64 end, enum kvm_pgtable_prot prot)
+{
+	return true;
+}
+
+static void *guest_s2_zalloc_pages_exact(size_t size)
+{
+	void *addr = hyp_alloc_pages(&current_vm->pool, get_order(size));
+
+	WARN_ON(size != (PAGE_SIZE << get_order(size)));
+	hyp_split_page(hyp_virt_to_page(addr));
+
+	return addr;
+}
+
+static void guest_s2_free_pages_exact(void *addr, unsigned long size)
+{
+	u8 order = get_order(size);
+	unsigned int i;
+
+	for (i = 0; i < (1 << order); i++)
+		hyp_put_page(&current_vm->pool, addr + (i * PAGE_SIZE));
+}
+
+static void *guest_s2_zalloc_page(void *mc)
+{
+	struct hyp_page *p;
+	void *addr;
+
+	addr = hyp_alloc_pages(&current_vm->pool, 0);
+	if (addr)
+		return addr;
+
+	addr = pop_hyp_memcache(mc, hyp_phys_to_virt);
+	if (!addr)
+		return addr;
+
+	memset(addr, 0, PAGE_SIZE);
+	p = hyp_virt_to_page(addr);
+	memset(p, 0, sizeof(*p));
+	p->refcount = 1;
+
+	return addr;
+}
+
+static void guest_s2_get_page(void *addr)
+{
+	hyp_get_page(&current_vm->pool, addr);
+}
+
+static void guest_s2_put_page(void *addr)
+{
+	hyp_put_page(&current_vm->pool, addr);
+}
+
+static void clean_dcache_guest_page(void *va, size_t size)
+{
+	__clean_dcache_guest_page(hyp_fixmap_map(__hyp_pa(va)), size);
+	hyp_fixmap_unmap();
+}
+
+static void invalidate_icache_guest_page(void *va, size_t size)
+{
+	__invalidate_icache_guest_page(hyp_fixmap_map(__hyp_pa(va)), size);
+	hyp_fixmap_unmap();
+}
+
+int kvm_guest_prepare_stage2(struct kvm_shadow_vm *vm, void *pgd)
+{
+	struct kvm_s2_mmu *mmu = &vm->arch.mmu;
+	unsigned long nr_pages;
+	int ret;
+
+	nr_pages = kvm_pgtable_stage2_pgd_size(vm->arch.vtcr) >> PAGE_SHIFT;
+
+	ret = hyp_pool_init(&vm->pool, hyp_virt_to_pfn(pgd), nr_pages, 0);
+	if (ret)
+		return ret;
+
+	hyp_spin_lock_init(&vm->lock);
+	vm->mm_ops = (struct kvm_pgtable_mm_ops) {
+		.zalloc_pages_exact	= guest_s2_zalloc_pages_exact,
+		.free_pages_exact	= guest_s2_free_pages_exact,
+		.zalloc_page		= guest_s2_zalloc_page,
+		.phys_to_virt		= hyp_phys_to_virt,
+		.virt_to_phys		= hyp_virt_to_phys,
+		.page_count		= hyp_page_count,
+		.get_page		= guest_s2_get_page,
+		.put_page		= guest_s2_put_page,
+		.dcache_clean_inval_poc	= clean_dcache_guest_page,
+		.icache_inval_pou	= invalidate_icache_guest_page,
+	};
+
+	__guest_lock(vm);
+	ret = __kvm_pgtable_stage2_init(mmu->pgt, mmu, &vm->mm_ops, 0,
+					guest_stage2_force_pte_cb);
+	__guest_unlock(vm);
+	if (ret)
+		return ret;
+
+	vm->arch.mmu.pgd_phys = __hyp_pa(vm->pgt.pgd);
+
+	return 0;
+}
+
+static int reclaim_walker(u64 addr, u64 end, u32 level, kvm_pte_t *ptep,
+		enum kvm_pgtable_walk_flags flag,
+		void * const arg)
+{
+	kvm_pte_t pte = *ptep;
+	struct hyp_page *page;
+
+	if (!kvm_pte_valid(pte))
+		return 0;
+
+	page = hyp_phys_to_page(kvm_pte_to_phys(pte));
+	switch (pkvm_getstate(kvm_pgtable_stage2_pte_prot(pte))) {
+	case PKVM_PAGE_OWNED:
+		page->flags |= HOST_PAGE_NEED_POISONING;
+		fallthrough;
+	case PKVM_PAGE_SHARED_BORROWED:
+	case PKVM_PAGE_SHARED_OWNED:
+		page->flags |= HOST_PAGE_PENDING_RECLAIM;
+		break;
+	default:
+		return -EPERM;
+	}
+
+	return 0;
+}
+
+void reclaim_guest_pages(struct kvm_shadow_vm *vm, struct kvm_hyp_memcache *mc)
+{
+	struct kvm_pgtable_walker walker = {
+		.cb     = reclaim_walker,
+		.flags  = KVM_PGTABLE_WALK_LEAF
+	};
+	void *addr;
+
+	host_lock_component();
+	__guest_lock(vm);
+
+	/* Reclaim all guest pages, and dump all pgtable pages in the hyp_pool */
+	BUG_ON(kvm_pgtable_walk(&vm->pgt, 0, BIT(vm->pgt.ia_bits), &walker));
+	kvm_pgtable_stage2_destroy(&vm->pgt);
+	vm->arch.mmu.pgd_phys = 0ULL;
+
+	__guest_unlock(vm);
+	host_unlock_component();
+
+	/* Drain the hyp_pool into the memcache */
+	addr = hyp_alloc_pages(&vm->pool, 0);
+	while (addr) {
+		memset(hyp_virt_to_page(addr), 0, sizeof(struct hyp_page));
+		push_hyp_memcache(mc, addr, hyp_virt_to_phys);
+		WARN_ON(__pkvm_hyp_donate_host(hyp_virt_to_pfn(addr), 1));
+		addr = hyp_alloc_pages(&vm->pool, 0);
+	}
+}
+
 int __pkvm_prot_finalize(void)
 {
 	struct kvm_s2_mmu *mmu = &host_kvm.arch.mmu;
 	struct kvm_nvhe_init_params *params = this_cpu_ptr(&kvm_init_params);
 
+	if (params->hcr_el2 & HCR_VM)
+		return -EPERM;
+
 	params->vttbr = kvm_get_vttbr(mmu);
 	params->vtcr = host_kvm.arch.vtcr;
 	params->hcr_el2 |= HCR_VM;
@@ -156,6 +366,20 @@
 	return 0;
 }
 
+int host_stage2_unmap_dev_locked(phys_addr_t start, u64 size)
+{
+	int ret;
+
+	hyp_assert_lock_held(&host_kvm.lock);
+
+	ret = kvm_pgtable_stage2_unmap(&host_kvm.pgt, start, size);
+	if (ret)
+		return ret;
+
+	pkvm_iommu_host_stage2_idmap(start, start + size, 0);
+	return 0;
+}
+
 static int host_stage2_unmap_dev_all(void)
 {
 	struct kvm_pgtable *pgt = &host_kvm.pgt;
@@ -166,11 +390,11 @@
 	/* Unmap all non-memory regions to recycle the pages */
 	for (i = 0; i < hyp_memblock_nr; i++, addr = reg->base + reg->size) {
 		reg = &hyp_memory[i];
-		ret = kvm_pgtable_stage2_unmap(pgt, addr, reg->base - addr);
+		ret = host_stage2_unmap_dev_locked(addr, reg->base - addr);
 		if (ret)
 			return ret;
 	}
-	return kvm_pgtable_stage2_unmap(pgt, addr, BIT(pgt->ia_bits) - addr);
+	return host_stage2_unmap_dev_locked(addr, BIT(pgt->ia_bits) - addr);
 }
 
 struct kvm_mem_range {
@@ -178,7 +402,7 @@
 	u64 end;
 };
 
-static bool find_mem_range(phys_addr_t addr, struct kvm_mem_range *range)
+static struct memblock_region *find_mem_range(phys_addr_t addr, struct kvm_mem_range *range)
 {
 	int cur, left = 0, right = hyp_memblock_nr;
 	struct memblock_region *reg;
@@ -201,18 +425,28 @@
 		} else {
 			range->start = reg->base;
 			range->end = end;
-			return true;
+			return reg;
 		}
 	}
 
-	return false;
+	return NULL;
 }
 
 bool addr_is_memory(phys_addr_t phys)
 {
 	struct kvm_mem_range range;
 
-	return find_mem_range(phys, &range);
+	return !!find_mem_range(phys, &range);
+}
+
+static bool addr_is_allowed_memory(phys_addr_t phys)
+{
+	struct memblock_region *reg;
+	struct kvm_mem_range range;
+
+	reg = find_mem_range(phys, &range);
+
+	return reg && !(reg->flags & MEMBLOCK_NOMAP);
 }
 
 static bool is_in_mem_range(u64 addr, struct kvm_mem_range *range)
@@ -231,10 +465,19 @@
 }
 
 static inline int __host_stage2_idmap(u64 start, u64 end,
-				      enum kvm_pgtable_prot prot)
+				      enum kvm_pgtable_prot prot,
+				      bool update_iommu)
 {
-	return kvm_pgtable_stage2_map(&host_kvm.pgt, start, end - start, start,
-				      prot, &host_s2_pool);
+	int ret;
+
+	ret = kvm_pgtable_stage2_map(&host_kvm.pgt, start, end - start, start,
+				     prot, &host_s2_pool);
+	if (ret)
+		return ret;
+
+	if (update_iommu)
+		pkvm_iommu_host_stage2_idmap(start, end, prot);
+	return 0;
 }
 
 /*
@@ -295,19 +538,32 @@
 }
 
 int host_stage2_idmap_locked(phys_addr_t addr, u64 size,
-			     enum kvm_pgtable_prot prot)
+			     enum kvm_pgtable_prot prot, bool update_iommu)
 {
-	hyp_assert_lock_held(&host_kvm.lock);
-
-	return host_stage2_try(__host_stage2_idmap, addr, addr + size, prot);
+	return host_stage2_try(__host_stage2_idmap, addr, addr + size, prot, update_iommu);
 }
 
-int host_stage2_set_owner_locked(phys_addr_t addr, u64 size, u8 owner_id)
+#define KVM_INVALID_PTE_OWNER_MASK	GENMASK(32, 1)
+static kvm_pte_t kvm_init_invalid_leaf_owner(pkvm_id owner_id)
 {
-	hyp_assert_lock_held(&host_kvm.lock);
+	return FIELD_PREP(KVM_INVALID_PTE_OWNER_MASK, owner_id);
+}
 
-	return host_stage2_try(kvm_pgtable_stage2_set_owner, &host_kvm.pgt,
-			       addr, size, &host_s2_pool, owner_id);
+int host_stage2_set_owner_locked(phys_addr_t addr, u64 size,
+				 pkvm_id owner_id)
+{
+	kvm_pte_t annotation = kvm_init_invalid_leaf_owner(owner_id);
+	enum kvm_pgtable_prot prot;
+	int ret;
+
+	ret = host_stage2_try(kvm_pgtable_stage2_annotate, &host_kvm.pgt,
+			      addr, size, &host_s2_pool, annotation);
+	if (ret)
+		return ret;
+
+	prot = owner_id == pkvm_host_id ? PKVM_HOST_MEM_PROT : 0;
+	pkvm_iommu_host_stage2_idmap(addr, addr + size, prot);
+	return 0;
 }
 
 static bool host_stage2_force_pte_cb(u64 addr, u64 end, enum kvm_pgtable_prot prot)
@@ -335,122 +591,1490 @@
 static int host_stage2_idmap(u64 addr)
 {
 	struct kvm_mem_range range;
-	bool is_memory = find_mem_range(addr, &range);
+	bool is_memory = !!find_mem_range(addr, &range);
 	enum kvm_pgtable_prot prot;
 	int ret;
 
+	hyp_assert_lock_held(&host_kvm.lock);
+
 	prot = is_memory ? PKVM_HOST_MEM_PROT : PKVM_HOST_MMIO_PROT;
 
-	hyp_spin_lock(&host_kvm.lock);
+	/*
+	 * Adjust against IOMMU devices first. host_stage2_adjust_range() should
+	 * be called last for proper alignment.
+	 */
+	if (!is_memory) {
+		ret = pkvm_iommu_host_stage2_adjust_range(addr, &range.start,
+							  &range.end);
+		if (ret)
+			return ret;
+	}
+
 	ret = host_stage2_adjust_range(addr, &range);
 	if (ret)
-		goto unlock;
+		return ret;
 
-	ret = host_stage2_idmap_locked(range.start, range.end - range.start, prot);
-unlock:
-	hyp_spin_unlock(&host_kvm.lock);
-
-	return ret;
+	return host_stage2_idmap_locked(range.start, range.end - range.start, prot, false);
 }
 
-static inline bool check_prot(enum kvm_pgtable_prot prot,
-			      enum kvm_pgtable_prot required,
-			      enum kvm_pgtable_prot denied)
+static bool is_dabt(u64 esr)
 {
-	return (prot & (required | denied)) == required;
+	return ESR_ELx_EC(esr) == ESR_ELx_EC_DABT_LOW;
 }
 
-int __pkvm_host_share_hyp(u64 pfn)
+static void host_inject_abort(struct kvm_cpu_context *host_ctxt)
 {
-	phys_addr_t addr = hyp_pfn_to_phys(pfn);
-	enum kvm_pgtable_prot prot, cur;
-	void *virt = __hyp_va(addr);
-	enum pkvm_page_state state;
-	kvm_pte_t pte;
-	int ret;
+	u64 spsr = read_sysreg_el2(SYS_SPSR);
+	u64 esr = read_sysreg_el2(SYS_ESR);
+	u64 ventry, ec;
 
-	if (!addr_is_memory(addr))
-		return -EINVAL;
-
-	hyp_spin_lock(&host_kvm.lock);
-	hyp_spin_lock(&pkvm_pgd_lock);
-
-	ret = kvm_pgtable_get_leaf(&host_kvm.pgt, addr, &pte, NULL);
-	if (ret)
-		goto unlock;
-	if (!pte)
-		goto map_shared;
-
-	/*
-	 * Check attributes in the host stage-2 PTE. We need the page to be:
-	 *  - mapped RWX as we're sharing memory;
-	 *  - not borrowed, as that implies absence of ownership.
-	 * Otherwise, we can't let it got through
-	 */
-	cur = kvm_pgtable_stage2_pte_prot(pte);
-	prot = pkvm_mkstate(0, PKVM_PAGE_SHARED_BORROWED);
-	if (!check_prot(cur, PKVM_HOST_MEM_PROT, prot)) {
-		ret = -EPERM;
-		goto unlock;
+	/* Repaint the ESR to report a same-level fault if taken from EL1 */
+	if ((spsr & PSR_MODE_MASK) != PSR_MODE_EL0t) {
+		ec = ESR_ELx_EC(esr);
+		if (ec == ESR_ELx_EC_DABT_LOW)
+			ec = ESR_ELx_EC_DABT_CUR;
+		else if (ec == ESR_ELx_EC_IABT_LOW)
+			ec = ESR_ELx_EC_IABT_CUR;
+		else
+			WARN_ON(1);
+		esr &= ~ESR_ELx_EC_MASK;
+		esr |= ec << ESR_ELx_EC_SHIFT;
 	}
 
-	state = pkvm_getstate(cur);
-	if (state == PKVM_PAGE_OWNED)
-		goto map_shared;
-
 	/*
-	 * Tolerate double-sharing the same page, but this requires
-	 * cross-checking the hypervisor stage-1.
+	 * Since S1PTW should only ever be set for stage-2 faults, we're pretty
+	 * much guaranteed that it won't be set in ESR_EL1 by the hardware. So,
+	 * let's use that bit to allow the host abort handler to differentiate
+	 * this abort from normal userspace faults.
+	 *
+	 * Note: although S1PTW is RES0 at EL1, it is guaranteed by the
+	 * architecture to be backed by flops, so it should be safe to use.
 	 */
-	if (state != PKVM_PAGE_SHARED_OWNED) {
-		ret = -EPERM;
-		goto unlock;
-	}
+	esr |= ESR_ELx_S1PTW;
 
-	ret = kvm_pgtable_get_leaf(&pkvm_pgtable, (u64)virt, &pte, NULL);
-	if (ret)
-		goto unlock;
+	write_sysreg_el1(esr, SYS_ESR);
+	write_sysreg_el1(spsr, SYS_SPSR);
+	write_sysreg_el1(read_sysreg_el2(SYS_ELR), SYS_ELR);
+	write_sysreg_el1(read_sysreg_el2(SYS_FAR), SYS_FAR);
 
-	/*
-	 * If the page has been shared with the hypervisor, it must be
-	 * already mapped as SHARED_BORROWED in its stage-1.
-	 */
-	cur = kvm_pgtable_hyp_pte_prot(pte);
-	prot = pkvm_mkstate(PAGE_HYP, PKVM_PAGE_SHARED_BORROWED);
-	if (!check_prot(cur, prot, ~prot))
-		ret = -EPERM;
-	goto unlock;
+	ventry = read_sysreg_el1(SYS_VBAR);
+	ventry += get_except64_offset(spsr, PSR_MODE_EL1h, except_type_sync);
+	write_sysreg_el2(ventry, SYS_ELR);
 
-map_shared:
-	/*
-	 * If the page is not yet shared, adjust mappings in both page-tables
-	 * while both locks are held.
-	 */
-	prot = pkvm_mkstate(PAGE_HYP, PKVM_PAGE_SHARED_BORROWED);
-	ret = pkvm_create_mappings_locked(virt, virt + PAGE_SIZE, prot);
-	BUG_ON(ret);
-
-	prot = pkvm_mkstate(PKVM_HOST_MEM_PROT, PKVM_PAGE_SHARED_OWNED);
-	ret = host_stage2_idmap_locked(addr, PAGE_SIZE, prot);
-	BUG_ON(ret);
-
-unlock:
-	hyp_spin_unlock(&pkvm_pgd_lock);
-	hyp_spin_unlock(&host_kvm.lock);
-
-	return ret;
+	spsr = get_except64_cpsr(spsr, system_supports_mte(),
+				 read_sysreg_el1(SYS_SCTLR), PSR_MODE_EL1h);
+	write_sysreg_el2(spsr, SYS_SPSR);
 }
 
 void handle_host_mem_abort(struct kvm_cpu_context *host_ctxt)
 {
 	struct kvm_vcpu_fault_info fault;
 	u64 esr, addr;
-	int ret = 0;
+	int ret = -EPERM;
 
 	esr = read_sysreg_el2(SYS_ESR);
 	BUG_ON(!__get_fault_info(esr, &fault));
 
 	addr = (fault.hpfar_el2 & HPFAR_MASK) << 8;
-	ret = host_stage2_idmap(addr);
-	BUG_ON(ret && ret != -EAGAIN);
+	addr |= fault.far_el2 & FAR_MASK;
+
+	host_lock_component();
+
+	/* Check if an IOMMU device can handle the DABT. */
+	if (is_dabt(esr) && !addr_is_memory(addr) &&
+	    pkvm_iommu_host_dabt_handler(host_ctxt, esr, addr))
+		ret = 0;
+
+	/* If not handled, attempt to map the page. */
+	if (ret == -EPERM)
+		ret = host_stage2_idmap(addr);
+
+	host_unlock_component();
+
+	if (ret == -EPERM)
+		host_inject_abort(host_ctxt);
+	else
+		BUG_ON(ret && ret != -EAGAIN);
+}
+
+/* This corresponds to locking order */
+enum pkvm_component_id {
+	PKVM_ID_HOST,
+	PKVM_ID_HYP,
+	PKVM_ID_GUEST,
+	PKVM_ID_FFA,
+};
+
+struct pkvm_mem_transition {
+	u64				nr_pages;
+
+	struct {
+		enum pkvm_component_id	id;
+		/* Address in the initiator's address space */
+		u64			addr;
+
+		union {
+			struct {
+				/* Address in the completer's address space */
+				u64	completer_addr;
+			} host;
+			struct {
+				u64	completer_addr;
+			} hyp;
+
+			struct {
+				struct kvm_vcpu *vcpu;
+			} guest;
+		};
+	} initiator;
+
+	struct {
+		enum pkvm_component_id	id;
+
+		union {
+			struct {
+				struct kvm_vcpu *vcpu;
+				phys_addr_t phys;
+			} guest;
+		};
+	} completer;
+};
+
+struct pkvm_mem_share {
+	const struct pkvm_mem_transition	tx;
+	const enum kvm_pgtable_prot		completer_prot;
+};
+
+struct pkvm_mem_donation {
+	const struct pkvm_mem_transition	tx;
+};
+
+static pkvm_id initiator_owner_id(const struct pkvm_mem_transition *tx)
+{
+	switch (tx->initiator.id) {
+	case PKVM_ID_HOST:
+		return pkvm_host_id;
+	case PKVM_ID_HYP:
+		return pkvm_hyp_id;
+	case PKVM_ID_GUEST:
+		return pkvm_guest_id(tx->initiator.guest.vcpu);
+	default:
+		WARN_ON(1);
+		return -1;
+	}
+}
+
+static pkvm_id completer_owner_id(const struct pkvm_mem_transition *tx)
+{
+	switch (tx->completer.id) {
+	case PKVM_ID_HOST:
+		return pkvm_host_id;
+	case PKVM_ID_HYP:
+		return pkvm_hyp_id;
+	case PKVM_ID_GUEST:
+		return pkvm_guest_id(tx->completer.guest.vcpu);
+	default:
+		WARN_ON(1);
+		return -1;
+	}
+}
+
+struct check_walk_data {
+	enum pkvm_page_state	desired;
+	enum pkvm_page_state	(*get_page_state)(kvm_pte_t pte, u64 addr);
+};
+
+static int __check_page_state_visitor(u64 addr, u64 end, u32 level,
+				      kvm_pte_t *ptep,
+				      enum kvm_pgtable_walk_flags flag,
+				      void * const arg)
+{
+	struct check_walk_data *d = arg;
+	kvm_pte_t pte = *ptep;
+
+	return d->get_page_state(pte, addr) == d->desired ? 0 : -EPERM;
+}
+
+static int check_page_state_range(struct kvm_pgtable *pgt, u64 addr, u64 size,
+				  struct check_walk_data *data)
+{
+	struct kvm_pgtable_walker walker = {
+		.cb	= __check_page_state_visitor,
+		.arg	= data,
+		.flags	= KVM_PGTABLE_WALK_LEAF,
+	};
+
+	return kvm_pgtable_walk(pgt, addr, size, &walker);
+}
+
+static enum pkvm_page_state host_get_page_state(kvm_pte_t pte, u64 addr)
+{
+	if (!addr_is_allowed_memory(addr))
+		return PKVM_NOPAGE;
+
+	if (!kvm_pte_valid(pte) && pte)
+		return PKVM_NOPAGE;
+
+	return pkvm_getstate(kvm_pgtable_stage2_pte_prot(pte));
+}
+
+static int __host_check_page_state_range(u64 addr, u64 size,
+					 enum pkvm_page_state state)
+{
+	struct check_walk_data d = {
+		.desired	= state,
+		.get_page_state	= host_get_page_state,
+	};
+
+	hyp_assert_lock_held(&host_kvm.lock);
+	return check_page_state_range(&host_kvm.pgt, addr, size, &d);
+}
+
+static int __host_set_page_state_range(u64 addr, u64 size,
+				       enum pkvm_page_state state)
+{
+	enum kvm_pgtable_prot prot = pkvm_mkstate(PKVM_HOST_MEM_PROT, state);
+
+	return host_stage2_idmap_locked(addr, size, prot, true);
+}
+
+static int host_request_owned_transition(u64 *completer_addr,
+					 const struct pkvm_mem_transition *tx)
+{
+	u64 size = tx->nr_pages * PAGE_SIZE;
+	u64 addr = tx->initiator.addr;
+
+	*completer_addr = tx->initiator.host.completer_addr;
+	return __host_check_page_state_range(addr, size, PKVM_PAGE_OWNED);
+}
+
+static int host_request_unshare(u64 *completer_addr,
+				const struct pkvm_mem_transition *tx)
+{
+	u64 size = tx->nr_pages * PAGE_SIZE;
+	u64 addr = tx->initiator.addr;
+
+	*completer_addr = tx->initiator.host.completer_addr;
+	return __host_check_page_state_range(addr, size, PKVM_PAGE_SHARED_OWNED);
+}
+
+static int host_initiate_share(u64 *completer_addr,
+			       const struct pkvm_mem_transition *tx)
+{
+	u64 size = tx->nr_pages * PAGE_SIZE;
+	u64 addr = tx->initiator.addr;
+
+	*completer_addr = tx->initiator.host.completer_addr;
+	return __host_set_page_state_range(addr, size, PKVM_PAGE_SHARED_OWNED);
+}
+
+static int host_initiate_unshare(u64 *completer_addr,
+				 const struct pkvm_mem_transition *tx)
+{
+	u64 size = tx->nr_pages * PAGE_SIZE;
+	u64 addr = tx->initiator.addr;
+
+	*completer_addr = tx->initiator.host.completer_addr;
+	return __host_set_page_state_range(addr, size, PKVM_PAGE_OWNED);
+}
+
+static int host_initiate_donation(u64 *completer_addr,
+				  const struct pkvm_mem_transition *tx)
+{
+	pkvm_id owner_id = completer_owner_id(tx);
+	u64 size = tx->nr_pages * PAGE_SIZE;
+
+	*completer_addr = tx->initiator.host.completer_addr;
+	return host_stage2_set_owner_locked(tx->initiator.addr, size, owner_id);
+}
+
+static bool __host_ack_skip_pgtable_check(const struct pkvm_mem_transition *tx)
+{
+	return !(IS_ENABLED(CONFIG_NVHE_EL2_DEBUG) ||
+		 tx->initiator.id != PKVM_ID_HYP);
+}
+
+static int __host_ack_transition(u64 addr, const struct pkvm_mem_transition *tx,
+				 enum pkvm_page_state state)
+{
+	u64 size = tx->nr_pages * PAGE_SIZE;
+
+	if (__host_ack_skip_pgtable_check(tx))
+		return 0;
+
+	return __host_check_page_state_range(addr, size, state);
+}
+
+static int host_ack_share(u64 addr, const struct pkvm_mem_transition *tx,
+			  enum kvm_pgtable_prot perms)
+{
+	if (perms != PKVM_HOST_MEM_PROT)
+		return -EPERM;
+
+	return __host_ack_transition(addr, tx, PKVM_NOPAGE);
+}
+
+static int host_ack_donation(u64 addr, const struct pkvm_mem_transition *tx)
+{
+	return __host_ack_transition(addr, tx, PKVM_NOPAGE);
+}
+
+static int host_ack_unshare(u64 addr, const struct pkvm_mem_transition *tx)
+{
+	return __host_ack_transition(addr, tx, PKVM_PAGE_SHARED_BORROWED);
+}
+
+static int host_complete_share(u64 addr, const struct pkvm_mem_transition *tx,
+			       enum kvm_pgtable_prot perms)
+{
+	u64 size = tx->nr_pages * PAGE_SIZE;
+
+	if (tx->initiator.id == PKVM_ID_GUEST)
+		psci_mem_protect_dec();
+
+	return __host_set_page_state_range(addr, size, PKVM_PAGE_SHARED_BORROWED);
+}
+
+static int host_complete_unshare(u64 addr, const struct pkvm_mem_transition *tx)
+{
+	u64 size = tx->nr_pages * PAGE_SIZE;
+	pkvm_id owner_id = initiator_owner_id(tx);
+
+	if (tx->initiator.id == PKVM_ID_GUEST)
+		psci_mem_protect_inc();
+
+	return host_stage2_set_owner_locked(addr, size, owner_id);
+}
+
+static int host_complete_donation(u64 addr, const struct pkvm_mem_transition *tx)
+{
+	u64 size = tx->nr_pages * PAGE_SIZE;
+	pkvm_id host_id = completer_owner_id(tx);
+
+	return host_stage2_set_owner_locked(addr, size, host_id);
+}
+
+static enum pkvm_page_state hyp_get_page_state(kvm_pte_t pte, u64 addr)
+{
+	if (!kvm_pte_valid(pte))
+		return PKVM_NOPAGE;
+
+	return pkvm_getstate(kvm_pgtable_hyp_pte_prot(pte));
+}
+
+static int __hyp_check_page_state_range(u64 addr, u64 size,
+					enum pkvm_page_state state)
+{
+	struct check_walk_data d = {
+		.desired	= state,
+		.get_page_state	= hyp_get_page_state,
+	};
+
+	hyp_assert_lock_held(&pkvm_pgd_lock);
+	return check_page_state_range(&pkvm_pgtable, addr, size, &d);
+}
+
+static int hyp_request_donation(u64 *completer_addr,
+				const struct pkvm_mem_transition *tx)
+{
+	u64 size = tx->nr_pages * PAGE_SIZE;
+	u64 addr = tx->initiator.addr;
+
+	*completer_addr = tx->initiator.hyp.completer_addr;
+	return __hyp_check_page_state_range(addr, size, PKVM_PAGE_OWNED);
+}
+
+static int hyp_initiate_donation(u64 *completer_addr,
+				 const struct pkvm_mem_transition *tx)
+{
+	u64 size = tx->nr_pages * PAGE_SIZE;
+	int ret;
+
+	*completer_addr = tx->initiator.hyp.completer_addr;
+	ret = kvm_pgtable_hyp_unmap(&pkvm_pgtable, tx->initiator.addr, size);
+	return (ret != size) ? -EFAULT : 0;
+}
+
+static bool __hyp_ack_skip_pgtable_check(const struct pkvm_mem_transition *tx)
+{
+	return !(IS_ENABLED(CONFIG_NVHE_EL2_DEBUG) ||
+		 tx->initiator.id != PKVM_ID_HOST);
+}
+
+static int hyp_ack_share(u64 addr, const struct pkvm_mem_transition *tx,
+			 enum kvm_pgtable_prot perms)
+{
+	u64 size = tx->nr_pages * PAGE_SIZE;
+
+	if (perms != PAGE_HYP)
+		return -EPERM;
+
+	if (__hyp_ack_skip_pgtable_check(tx))
+		return 0;
+
+	return __hyp_check_page_state_range(addr, size, PKVM_NOPAGE);
+}
+
+static int hyp_ack_unshare(u64 addr, const struct pkvm_mem_transition *tx)
+{
+	u64 size = tx->nr_pages * PAGE_SIZE;
+
+	if (tx->initiator.id == PKVM_ID_HOST && hyp_page_count((void *)addr))
+		return -EBUSY;
+
+	if (__hyp_ack_skip_pgtable_check(tx))
+		return 0;
+
+	return __hyp_check_page_state_range(addr, size,
+					    PKVM_PAGE_SHARED_BORROWED);
+}
+
+static int hyp_ack_donation(u64 addr, const struct pkvm_mem_transition *tx)
+{
+	u64 size = tx->nr_pages * PAGE_SIZE;
+
+	if (__hyp_ack_skip_pgtable_check(tx))
+		return 0;
+
+	return __hyp_check_page_state_range(addr, size, PKVM_NOPAGE);
+}
+
+static int hyp_complete_share(u64 addr, const struct pkvm_mem_transition *tx,
+			      enum kvm_pgtable_prot perms)
+{
+	void *start = (void *)addr, *end = start + (tx->nr_pages * PAGE_SIZE);
+	enum kvm_pgtable_prot prot;
+
+	prot = pkvm_mkstate(perms, PKVM_PAGE_SHARED_BORROWED);
+	return pkvm_create_mappings_locked(start, end, prot);
+}
+
+static int hyp_complete_unshare(u64 addr, const struct pkvm_mem_transition *tx)
+{
+	u64 size = tx->nr_pages * PAGE_SIZE;
+	int ret = kvm_pgtable_hyp_unmap(&pkvm_pgtable, addr, size);
+
+	return (ret != size) ? -EFAULT : 0;
+}
+
+static int hyp_complete_donation(u64 addr,
+				 const struct pkvm_mem_transition *tx)
+{
+	void *start = (void *)addr, *end = start + (tx->nr_pages * PAGE_SIZE);
+	enum kvm_pgtable_prot prot = pkvm_mkstate(PAGE_HYP, PKVM_PAGE_OWNED);
+
+	return pkvm_create_mappings_locked(start, end, prot);
+}
+
+static enum pkvm_page_state guest_get_page_state(kvm_pte_t pte, u64 addr)
+{
+	if (!kvm_pte_valid(pte))
+		return PKVM_NOPAGE;
+
+	return pkvm_getstate(kvm_pgtable_stage2_pte_prot(pte));
+}
+
+static int __guest_check_page_state_range(struct kvm_vcpu *vcpu, u64 addr,
+					  u64 size, enum pkvm_page_state state)
+{
+	struct kvm_shadow_vm *vm = vcpu->arch.pkvm.shadow_vm;
+	struct check_walk_data d = {
+		.desired	= state,
+		.get_page_state	= guest_get_page_state,
+	};
+
+	hyp_assert_lock_held(&vm->lock);
+	return check_page_state_range(&vm->pgt, addr, size, &d);
+}
+
+static int guest_ack_share(u64 addr, const struct pkvm_mem_transition *tx,
+			   enum kvm_pgtable_prot perms)
+{
+	u64 size = tx->nr_pages * PAGE_SIZE;
+
+	if (perms != KVM_PGTABLE_PROT_RWX)
+		return -EPERM;
+
+	return __guest_check_page_state_range(tx->completer.guest.vcpu, addr,
+					      size, PKVM_NOPAGE);
+}
+
+static int guest_ack_donation(u64 addr, const struct pkvm_mem_transition *tx)
+{
+	u64 size = tx->nr_pages * PAGE_SIZE;
+
+	return __guest_check_page_state_range(tx->completer.guest.vcpu, addr,
+					      size, PKVM_NOPAGE);
+}
+
+static int guest_complete_share(u64 addr, const struct pkvm_mem_transition *tx,
+				enum kvm_pgtable_prot perms)
+{
+	struct kvm_vcpu *vcpu = tx->completer.guest.vcpu;
+	struct kvm_shadow_vm *vm = vcpu->arch.pkvm.shadow_vm;
+	u64 size = tx->nr_pages * PAGE_SIZE;
+	enum kvm_pgtable_prot prot;
+
+	prot = pkvm_mkstate(perms, PKVM_PAGE_SHARED_BORROWED);
+	return kvm_pgtable_stage2_map(&vm->pgt, addr, size, tx->completer.guest.phys,
+				      prot, &vcpu->arch.pkvm_memcache);
+}
+
+static int guest_complete_donation(u64 addr, const struct pkvm_mem_transition *tx)
+{
+	enum kvm_pgtable_prot prot = pkvm_mkstate(KVM_PGTABLE_PROT_RWX, PKVM_PAGE_OWNED);
+	struct kvm_vcpu *vcpu = tx->completer.guest.vcpu;
+	struct kvm_shadow_vm *vm = vcpu->arch.pkvm.shadow_vm;
+	phys_addr_t phys = tx->completer.guest.phys;
+	u64 size = tx->nr_pages * PAGE_SIZE;
+	int err;
+
+	if (tx->initiator.id == PKVM_ID_HOST) {
+		psci_mem_protect_inc();
+
+		if (ipa_in_pvmfw_region(vm, addr)) {
+			err = pkvm_load_pvmfw_pages(vm, addr, phys, size);
+			if (err)
+				return err;
+		}
+	}
+
+	return kvm_pgtable_stage2_map(&vm->pgt, addr, size, phys, prot,
+				      &vcpu->arch.pkvm_memcache);
+}
+
+static int __guest_get_completer_addr(u64 *completer_addr, phys_addr_t phys,
+				      const struct pkvm_mem_transition *tx)
+{
+	switch (tx->completer.id) {
+	case PKVM_ID_HOST:
+		*completer_addr = phys;
+		break;
+	case PKVM_ID_HYP:
+		*completer_addr = (u64)__hyp_va(phys);
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static int __guest_request_page_transition(u64 *completer_addr,
+					   const struct pkvm_mem_transition *tx,
+					   enum pkvm_page_state desired)
+{
+	struct kvm_vcpu *vcpu = tx->initiator.guest.vcpu;
+	struct kvm_protected_vcpu *pkvm = &vcpu->arch.pkvm;
+	struct kvm_shadow_vm *vm = pkvm->shadow_vm;
+	enum pkvm_page_state state;
+	phys_addr_t phys;
+	kvm_pte_t pte;
+	u32 level;
+	int ret;
+
+	if (tx->nr_pages != 1)
+		return -E2BIG;
+
+	ret = kvm_pgtable_get_leaf(&vm->pgt, tx->initiator.addr, &pte, &level);
+	if (ret)
+		return ret;
+
+	state = guest_get_page_state(pte, tx->initiator.addr);
+	if (state == PKVM_NOPAGE)
+		return -EFAULT;
+
+	if (state != desired)
+		return -EPERM;
+
+	/*
+	 * We only deal with page granular mappings in the guest for now as
+	 * the pgtable code relies on being able to recreate page mappings
+	 * lazily after zapping a block mapping, which doesn't work once the
+	 * pages have been donated.
+	 */
+	if (level != KVM_PGTABLE_MAX_LEVELS - 1)
+		return -EINVAL;
+
+	phys = kvm_pte_to_phys(pte);
+	if (!addr_is_allowed_memory(phys))
+		return -EINVAL;
+
+	return __guest_get_completer_addr(completer_addr, phys, tx);
+}
+
+static int guest_request_share(u64 *completer_addr,
+			       const struct pkvm_mem_transition *tx)
+{
+	return __guest_request_page_transition(completer_addr, tx,
+					       PKVM_PAGE_OWNED);
+}
+
+static int guest_request_unshare(u64 *completer_addr,
+				 const struct pkvm_mem_transition *tx)
+{
+	return __guest_request_page_transition(completer_addr, tx,
+					       PKVM_PAGE_SHARED_OWNED);
+}
+
+static int __guest_initiate_page_transition(u64 *completer_addr,
+					    const struct pkvm_mem_transition *tx,
+					    enum pkvm_page_state state)
+{
+	struct kvm_vcpu *vcpu = tx->initiator.guest.vcpu;
+	struct kvm_protected_vcpu *pkvm = &vcpu->arch.pkvm;
+	struct kvm_shadow_vm *vm = pkvm->shadow_vm;
+	struct kvm_hyp_memcache *mc = &vcpu->arch.pkvm_memcache;
+	u64 size = tx->nr_pages * PAGE_SIZE;
+	u64 addr = tx->initiator.addr;
+	enum kvm_pgtable_prot prot;
+	phys_addr_t phys;
+	kvm_pte_t pte;
+	int ret;
+
+	ret = kvm_pgtable_get_leaf(&vm->pgt, addr, &pte, NULL);
+	if (ret)
+		return ret;
+
+	phys = kvm_pte_to_phys(pte);
+	prot = pkvm_mkstate(kvm_pgtable_stage2_pte_prot(pte), state);
+	ret = kvm_pgtable_stage2_map(&vm->pgt, addr, size, phys, prot, mc);
+	if (ret)
+		return ret;
+
+	return __guest_get_completer_addr(completer_addr, phys, tx);
+}
+
+static int guest_initiate_share(u64 *completer_addr,
+				const struct pkvm_mem_transition *tx)
+{
+	return __guest_initiate_page_transition(completer_addr, tx,
+						PKVM_PAGE_SHARED_OWNED);
+}
+
+static int guest_initiate_unshare(u64 *completer_addr,
+				  const struct pkvm_mem_transition *tx)
+{
+	return __guest_initiate_page_transition(completer_addr, tx,
+						PKVM_PAGE_OWNED);
+}
+
+static int check_share(struct pkvm_mem_share *share)
+{
+	const struct pkvm_mem_transition *tx = &share->tx;
+	u64 completer_addr;
+	int ret;
+
+	switch (tx->initiator.id) {
+	case PKVM_ID_HOST:
+		ret = host_request_owned_transition(&completer_addr, tx);
+		break;
+	case PKVM_ID_GUEST:
+		ret = guest_request_share(&completer_addr, tx);
+		break;
+	default:
+		ret = -EINVAL;
+	}
+
+	if (ret)
+		return ret;
+
+	switch (tx->completer.id) {
+	case PKVM_ID_HOST:
+		ret = host_ack_share(completer_addr, tx, share->completer_prot);
+		break;
+	case PKVM_ID_HYP:
+		ret = hyp_ack_share(completer_addr, tx, share->completer_prot);
+		break;
+	case PKVM_ID_GUEST:
+		ret = guest_ack_share(completer_addr, tx, share->completer_prot);
+		break;
+	case PKVM_ID_FFA:
+		/*
+		 * We only check the host; the secure side will check the other
+		 * end when we forward the FFA call.
+		 */
+		ret = 0;
+		break;
+	default:
+		ret = -EINVAL;
+	}
+
+	return ret;
+}
+
+static int __do_share(struct pkvm_mem_share *share)
+{
+	const struct pkvm_mem_transition *tx = &share->tx;
+	u64 completer_addr;
+	int ret;
+
+	switch (tx->initiator.id) {
+	case PKVM_ID_HOST:
+		ret = host_initiate_share(&completer_addr, tx);
+		break;
+	case PKVM_ID_GUEST:
+		ret = guest_initiate_share(&completer_addr, tx);
+		break;
+	default:
+		ret = -EINVAL;
+	}
+
+	if (ret)
+		return ret;
+
+	switch (tx->completer.id) {
+	case PKVM_ID_HOST:
+		ret = host_complete_share(completer_addr, tx, share->completer_prot);
+		break;
+	case PKVM_ID_HYP:
+		ret = hyp_complete_share(completer_addr, tx, share->completer_prot);
+		break;
+	case PKVM_ID_GUEST:
+		ret = guest_complete_share(completer_addr, tx, share->completer_prot);
+		break;
+	case PKVM_ID_FFA:
+		/*
+		 * We're not responsible for any secure page-tables, so there's
+		 * nothing to do here.
+		 */
+		ret = 0;
+		break;
+	default:
+		ret = -EINVAL;
+	}
+
+	return ret;
+}
+
+/*
+ * do_share():
+ *
+ * The page owner grants access to another component with a given set
+ * of permissions.
+ *
+ * Initiator: OWNED	=> SHARED_OWNED
+ * Completer: NOPAGE	=> SHARED_BORROWED
+ */
+static int do_share(struct pkvm_mem_share *share)
+{
+	int ret;
+
+	ret = check_share(share);
+	if (ret)
+		return ret;
+
+	return WARN_ON(__do_share(share));
+}
+
+static int check_unshare(struct pkvm_mem_share *share)
+{
+	const struct pkvm_mem_transition *tx = &share->tx;
+	u64 completer_addr;
+	int ret;
+
+	switch (tx->initiator.id) {
+	case PKVM_ID_HOST:
+		ret = host_request_unshare(&completer_addr, tx);
+		break;
+	case PKVM_ID_GUEST:
+		ret = guest_request_unshare(&completer_addr, tx);
+		break;
+	default:
+		ret = -EINVAL;
+	}
+
+	if (ret)
+		return ret;
+
+	switch (tx->completer.id) {
+	case PKVM_ID_HOST:
+		ret = host_ack_unshare(completer_addr, tx);
+		break;
+	case PKVM_ID_HYP:
+		ret = hyp_ack_unshare(completer_addr, tx);
+		break;
+	case PKVM_ID_FFA:
+		/* See check_share() */
+		ret = 0;
+		break;
+	default:
+		ret = -EINVAL;
+	}
+
+	return ret;
+}
+
+static int __do_unshare(struct pkvm_mem_share *share)
+{
+	const struct pkvm_mem_transition *tx = &share->tx;
+	u64 completer_addr;
+	int ret;
+
+	switch (tx->initiator.id) {
+	case PKVM_ID_HOST:
+		ret = host_initiate_unshare(&completer_addr, tx);
+		break;
+	case PKVM_ID_GUEST:
+		ret = guest_initiate_unshare(&completer_addr, tx);
+		break;
+	default:
+		ret = -EINVAL;
+	}
+
+	if (ret)
+		return ret;
+
+	switch (tx->completer.id) {
+	case PKVM_ID_HOST:
+		ret = host_complete_unshare(completer_addr, tx);
+		break;
+	case PKVM_ID_HYP:
+		ret = hyp_complete_unshare(completer_addr, tx);
+		break;
+	case PKVM_ID_FFA:
+		/* See __do_share() */
+		ret = 0;
+		break;
+	default:
+		ret = -EINVAL;
+	}
+
+	return ret;
+}
+
+/*
+ * do_unshare():
+ *
+ * The page owner revokes access from another component for a range of
+ * pages which were previously shared using do_share().
+ *
+ * Initiator: SHARED_OWNED	=> OWNED
+ * Completer: SHARED_BORROWED	=> NOPAGE
+ */
+static int do_unshare(struct pkvm_mem_share *share)
+{
+	int ret;
+
+	ret = check_unshare(share);
+	if (ret)
+		return ret;
+
+	return WARN_ON(__do_unshare(share));
+}
+
+static int check_donation(struct pkvm_mem_donation *donation)
+{
+	const struct pkvm_mem_transition *tx = &donation->tx;
+	u64 completer_addr;
+	int ret;
+
+	switch (tx->initiator.id) {
+	case PKVM_ID_HOST:
+		ret = host_request_owned_transition(&completer_addr, tx);
+		break;
+	case PKVM_ID_HYP:
+		ret = hyp_request_donation(&completer_addr, tx);
+		break;
+	default:
+		ret = -EINVAL;
+	}
+
+	if (ret)
+		return ret;
+
+	switch (tx->completer.id){
+	case PKVM_ID_HOST:
+		ret = host_ack_donation(completer_addr, tx);
+		break;
+	case PKVM_ID_HYP:
+		ret = hyp_ack_donation(completer_addr, tx);
+		break;
+	case PKVM_ID_GUEST:
+		ret = guest_ack_donation(completer_addr, tx);
+		break;
+	default:
+		ret = -EINVAL;
+	}
+
+	return ret;
+}
+
+static int __do_donate(struct pkvm_mem_donation *donation)
+{
+	const struct pkvm_mem_transition *tx = &donation->tx;
+	u64 completer_addr;
+	int ret;
+
+	switch (tx->initiator.id) {
+	case PKVM_ID_HOST:
+		ret = host_initiate_donation(&completer_addr, tx);
+		break;
+	case PKVM_ID_HYP:
+		ret = hyp_initiate_donation(&completer_addr, tx);
+		break;
+	default:
+		ret = -EINVAL;
+	}
+
+	if (ret)
+		return ret;
+
+	switch (tx->completer.id){
+	case PKVM_ID_HOST:
+		ret = host_complete_donation(completer_addr, tx);
+		break;
+	case PKVM_ID_HYP:
+		ret = hyp_complete_donation(completer_addr, tx);
+		break;
+	case PKVM_ID_GUEST:
+		ret = guest_complete_donation(completer_addr, tx);
+		break;
+	default:
+		ret = -EINVAL;
+	}
+
+	return ret;
+}
+
+/*
+ * do_donate():
+ *
+ * The page owner transfers ownership to another component, losing access
+ * as a consequence.
+ *
+ * Initiator: OWNED	=> NOPAGE
+ * Completer: NOPAGE	=> OWNED
+ */
+static int do_donate(struct pkvm_mem_donation *donation)
+{
+	int ret;
+
+	ret = check_donation(donation);
+	if (ret)
+		return ret;
+
+	return WARN_ON(__do_donate(donation));
+}
+
+int __pkvm_host_share_hyp(u64 pfn)
+{
+	int ret;
+	u64 host_addr = hyp_pfn_to_phys(pfn);
+	u64 hyp_addr = (u64)__hyp_va(host_addr);
+	struct pkvm_mem_share share = {
+		.tx	= {
+			.nr_pages	= 1,
+			.initiator	= {
+				.id	= PKVM_ID_HOST,
+				.addr	= host_addr,
+				.host	= {
+					.completer_addr = hyp_addr,
+				},
+			},
+			.completer	= {
+				.id	= PKVM_ID_HYP,
+			},
+		},
+		.completer_prot	= PAGE_HYP,
+	};
+
+	host_lock_component();
+	hyp_lock_component();
+
+	ret = do_share(&share);
+
+	hyp_unlock_component();
+	host_unlock_component();
+
+	return ret;
+}
+
+int __pkvm_guest_share_host(struct kvm_vcpu *vcpu, u64 ipa)
+{
+	int ret;
+	struct pkvm_mem_share share = {
+		.tx	= {
+			.nr_pages	= 1,
+			.initiator	= {
+				.id	= PKVM_ID_GUEST,
+				.addr	= ipa,
+				.guest	= {
+					.vcpu = vcpu,
+				},
+			},
+			.completer	= {
+				.id	= PKVM_ID_HOST,
+			},
+		},
+		.completer_prot	= PKVM_HOST_MEM_PROT,
+	};
+
+	host_lock_component();
+	guest_lock_component(vcpu);
+
+	ret = do_share(&share);
+
+	guest_unlock_component(vcpu);
+	host_unlock_component();
+
+	return ret;
+}
+
+int __pkvm_guest_unshare_host(struct kvm_vcpu *vcpu, u64 ipa)
+{
+	int ret;
+	struct pkvm_mem_share share = {
+		.tx	= {
+			.nr_pages	= 1,
+			.initiator	= {
+				.id	= PKVM_ID_GUEST,
+				.addr	= ipa,
+				.guest	= {
+					.vcpu = vcpu,
+				},
+			},
+			.completer	= {
+				.id	= PKVM_ID_HOST,
+			},
+		},
+		.completer_prot	= PKVM_HOST_MEM_PROT,
+	};
+
+	host_lock_component();
+	guest_lock_component(vcpu);
+
+	ret = do_unshare(&share);
+
+	guest_unlock_component(vcpu);
+	host_unlock_component();
+
+	return ret;
+}
+
+int __pkvm_host_unshare_hyp(u64 pfn)
+{
+	int ret;
+	u64 host_addr = hyp_pfn_to_phys(pfn);
+	u64 hyp_addr = (u64)__hyp_va(host_addr);
+	struct pkvm_mem_share share = {
+		.tx	= {
+			.nr_pages	= 1,
+			.initiator	= {
+				.id	= PKVM_ID_HOST,
+				.addr	= host_addr,
+				.host	= {
+					.completer_addr = hyp_addr,
+				},
+			},
+			.completer	= {
+				.id	= PKVM_ID_HYP,
+			},
+		},
+		.completer_prot	= PAGE_HYP,
+	};
+
+	host_lock_component();
+	hyp_lock_component();
+
+	ret = do_unshare(&share);
+
+	hyp_unlock_component();
+	host_unlock_component();
+
+	return ret;
+}
+
+int __pkvm_host_donate_hyp(u64 pfn, u64 nr_pages)
+{
+	int ret;
+	u64 host_addr = hyp_pfn_to_phys(pfn);
+	u64 hyp_addr = (u64)__hyp_va(host_addr);
+	struct pkvm_mem_donation donation = {
+		.tx	= {
+			.nr_pages	= nr_pages,
+			.initiator	= {
+				.id	= PKVM_ID_HOST,
+				.addr	= host_addr,
+				.host	= {
+					.completer_addr = hyp_addr,
+				},
+			},
+			.completer	= {
+				.id	= PKVM_ID_HYP,
+			},
+		},
+	};
+
+	host_lock_component();
+	hyp_lock_component();
+
+	ret = do_donate(&donation);
+
+	hyp_unlock_component();
+	host_unlock_component();
+
+	return ret;
+}
+
+int __pkvm_hyp_donate_host(u64 pfn, u64 nr_pages)
+{
+	int ret;
+	u64 host_addr = hyp_pfn_to_phys(pfn);
+	u64 hyp_addr = (u64)__hyp_va(host_addr);
+	struct pkvm_mem_donation donation = {
+		.tx	= {
+			.nr_pages	= nr_pages,
+			.initiator	= {
+				.id	= PKVM_ID_HYP,
+				.addr	= hyp_addr,
+				.hyp	= {
+					.completer_addr = host_addr,
+				},
+			},
+			.completer	= {
+				.id	= PKVM_ID_HOST,
+			},
+		},
+	};
+
+	host_lock_component();
+	hyp_lock_component();
+
+	ret = do_donate(&donation);
+
+	hyp_unlock_component();
+	host_unlock_component();
+
+	return ret;
+}
+
+int hyp_pin_shared_mem(void *from, void *to)
+{
+	u64 cur, start = ALIGN_DOWN((u64)from, PAGE_SIZE);
+	u64 end = PAGE_ALIGN((u64)to);
+	u64 size = end - start;
+	int ret;
+
+	host_lock_component();
+	hyp_lock_component();
+
+	ret = __host_check_page_state_range(__hyp_pa(start), size,
+					    PKVM_PAGE_SHARED_OWNED);
+	if (ret)
+		goto unlock;
+
+	ret = __hyp_check_page_state_range(start, size,
+					   PKVM_PAGE_SHARED_BORROWED);
+	if (ret)
+		goto unlock;
+
+	for (cur = start; cur < end; cur += PAGE_SIZE)
+		hyp_page_ref_inc(hyp_virt_to_page(cur));
+
+unlock:
+	hyp_unlock_component();
+	host_unlock_component();
+
+	return ret;
+}
+
+void hyp_unpin_shared_mem(void *from, void *to)
+{
+	u64 cur, start = ALIGN_DOWN((u64)from, PAGE_SIZE);
+	u64 end = PAGE_ALIGN((u64)to);
+
+	host_lock_component();
+	hyp_lock_component();
+
+	for (cur = start; cur < end; cur += PAGE_SIZE)
+		hyp_page_ref_dec(hyp_virt_to_page(cur));
+
+	hyp_unlock_component();
+	host_unlock_component();
+}
+
+int __pkvm_host_share_guest(u64 pfn, u64 gfn, struct kvm_vcpu *vcpu)
+{
+	int ret;
+	u64 host_addr = hyp_pfn_to_phys(pfn);
+	u64 guest_addr = hyp_pfn_to_phys(gfn);
+	struct pkvm_mem_share share = {
+		.tx	= {
+			.nr_pages	= 1,
+			.initiator	= {
+				.id	= PKVM_ID_HOST,
+				.addr	= host_addr,
+				.host	= {
+					.completer_addr = guest_addr,
+				},
+			},
+			.completer	= {
+				.id	= PKVM_ID_GUEST,
+				.guest	= {
+					.vcpu = vcpu,
+					.phys = host_addr,
+				},
+			},
+		},
+		.completer_prot	= KVM_PGTABLE_PROT_RWX,
+	};
+
+	host_lock_component();
+	guest_lock_component(vcpu);
+
+	ret = do_share(&share);
+
+	guest_unlock_component(vcpu);
+	host_unlock_component();
+
+	return ret;
+}
+
+int __pkvm_host_donate_guest(u64 pfn, u64 gfn, struct kvm_vcpu *vcpu)
+{
+	int ret;
+	u64 host_addr = hyp_pfn_to_phys(pfn);
+	u64 guest_addr = hyp_pfn_to_phys(gfn);
+	struct pkvm_mem_donation donation = {
+		.tx	= {
+			.nr_pages	= 1,
+			.initiator	= {
+				.id	= PKVM_ID_HOST,
+				.addr	= host_addr,
+				.host	= {
+					.completer_addr = guest_addr,
+				},
+			},
+			.completer	= {
+				.id	= PKVM_ID_GUEST,
+				.guest	= {
+					.vcpu = vcpu,
+					.phys = host_addr,
+				},
+			},
+		},
+	};
+
+	host_lock_component();
+	guest_lock_component(vcpu);
+
+	ret = do_donate(&donation);
+
+	guest_unlock_component(vcpu);
+	host_unlock_component();
+
+	return ret;
+}
+
+int __pkvm_host_share_ffa(u64 pfn, u64 nr_pages)
+{
+	int ret;
+	struct pkvm_mem_share share = {
+		.tx	= {
+			.nr_pages	= nr_pages,
+			.initiator	= {
+				.id	= PKVM_ID_HOST,
+				.addr	= hyp_pfn_to_phys(pfn),
+			},
+			.completer	= {
+				.id	= PKVM_ID_FFA,
+			},
+		},
+	};
+
+	host_lock_component();
+	ret = do_share(&share);
+	host_unlock_component();
+
+	return ret;
+}
+
+int __pkvm_host_unshare_ffa(u64 pfn, u64 nr_pages)
+{
+	int ret;
+	struct pkvm_mem_share share = {
+		.tx	= {
+			.nr_pages	= nr_pages,
+			.initiator	= {
+				.id	= PKVM_ID_HOST,
+				.addr	= hyp_pfn_to_phys(pfn),
+			},
+			.completer	= {
+				.id	= PKVM_ID_FFA,
+			},
+		},
+	};
+
+	host_lock_component();
+	ret = do_unshare(&share);
+	host_unlock_component();
+
+	return ret;
+}
+
+static int hyp_zero_page(phys_addr_t phys)
+{
+	void *addr;
+
+	addr = hyp_fixmap_map(phys);
+	if (!addr)
+		return -EINVAL;
+	memset(addr, 0, PAGE_SIZE);
+	/*
+	 * Prefer kvm_flush_dcache_to_poc() over __clean_dcache_guest_page()
+	 * here as the latter may elide the CMO under the assumption that FWB
+	 * will be enabled on CPUs that support it. This is incorrect for the
+	 * host stage-2 and would otherwise lead to a malicious host potentially
+	 * being able to read the content of newly reclaimed guest pages.
+	 */
+	kvm_flush_dcache_to_poc(addr, PAGE_SIZE);
+
+	return hyp_fixmap_unmap();
+}
+
+int __pkvm_host_reclaim_page(u64 pfn)
+{
+	u64 addr = hyp_pfn_to_phys(pfn);
+	struct hyp_page *page;
+	kvm_pte_t pte;
+	int ret;
+
+	host_lock_component();
+
+	ret = kvm_pgtable_get_leaf(&host_kvm.pgt, addr, &pte, NULL);
+	if (ret)
+		goto unlock;
+
+	if (host_get_page_state(pte, addr) == PKVM_PAGE_OWNED)
+		goto unlock;
+
+	page = hyp_phys_to_page(addr);
+	if (!(page->flags & HOST_PAGE_PENDING_RECLAIM)) {
+		ret = -EPERM;
+		goto unlock;
+	}
+
+	if (page->flags & HOST_PAGE_NEED_POISONING) {
+		ret = hyp_zero_page(addr);
+		if (ret)
+			goto unlock;
+		page->flags &= ~HOST_PAGE_NEED_POISONING;
+		psci_mem_protect_dec();
+	}
+
+	ret = host_stage2_set_owner_locked(addr, PAGE_SIZE, pkvm_host_id);
+	if (ret)
+		goto unlock;
+	page->flags &= ~HOST_PAGE_PENDING_RECLAIM;
+
+unlock:
+	host_unlock_component();
+
+	return ret;
+}
+
+/* Replace this with something more structured once day */
+#define MMIO_NOTE	(('M' << 24 | 'M' << 16 | 'I' << 8 | 'O') << 1)
+
+static bool __check_ioguard_page(struct kvm_vcpu *vcpu, u64 ipa)
+{
+	struct kvm_shadow_vm *vm = vcpu->arch.pkvm.shadow_vm;
+	kvm_pte_t pte;
+	u32 level;
+	int ret;
+
+	ret = kvm_pgtable_get_leaf(&vm->pgt, ipa, &pte, &level);
+	if (ret)
+		return false;
+
+	/* Must be a PAGE_SIZE mapping with our annotation */
+	return (BIT(ARM64_HW_PGTABLE_LEVEL_SHIFT(level)) == PAGE_SIZE &&
+		pte == MMIO_NOTE);
+}
+
+int __pkvm_install_ioguard_page(struct kvm_vcpu *vcpu, u64 ipa)
+{
+	struct kvm_shadow_vm *vm;
+	kvm_pte_t pte;
+	u32 level;
+	int ret;
+
+	vm = vcpu->arch.pkvm.shadow_vm;
+
+	if (!test_bit(KVM_ARCH_FLAG_MMIO_GUARD, &vm->arch.flags))
+		return -EINVAL;
+
+	if (ipa & ~PAGE_MASK)
+		return -EINVAL;
+
+	guest_lock_component(vcpu);
+
+	ret = kvm_pgtable_get_leaf(&vm->pgt, ipa, &pte, &level);
+	if (ret)
+		goto unlock;
+
+	if (pte && BIT(ARM64_HW_PGTABLE_LEVEL_SHIFT(level)) == PAGE_SIZE) {
+		/*
+		 * Already flagged as MMIO, let's accept it, and fail
+		 * otherwise
+		 */
+		if (pte != MMIO_NOTE)
+			ret = -EBUSY;
+
+		goto unlock;
+	}
+
+	ret = kvm_pgtable_stage2_annotate(&vm->pgt, ipa, PAGE_SIZE,
+					  &vcpu->arch.pkvm_memcache,
+					  MMIO_NOTE);
+
+unlock:
+	guest_unlock_component(vcpu);
+	return ret;
+}
+
+int __pkvm_remove_ioguard_page(struct kvm_vcpu *vcpu, u64 ipa)
+{
+	struct kvm_shadow_vm *vm = vcpu->arch.pkvm.shadow_vm;
+
+	if (!test_bit(KVM_ARCH_FLAG_MMIO_GUARD, &vm->arch.flags))
+		return -EINVAL;
+
+	guest_lock_component(vcpu);
+
+	if (__check_ioguard_page(vcpu, ipa)) {
+		struct kvm_shadow_vm *vm = vcpu->arch.pkvm.shadow_vm;
+
+		kvm_pgtable_stage2_unmap(&vm->pgt,
+					 ALIGN_DOWN(ipa, PAGE_SIZE), PAGE_SIZE);
+	}
+
+	guest_unlock_component(vcpu);
+	return 0;
+}
+
+bool __pkvm_check_ioguard_page(struct kvm_vcpu *vcpu)
+{
+	struct kvm_shadow_vm *vm = vcpu->arch.pkvm.shadow_vm;
+	u64 ipa, end;
+	bool ret;
+
+	if (!kvm_vcpu_dabt_isvalid(vcpu))
+		return false;
+
+	if (!test_bit(KVM_ARCH_FLAG_MMIO_GUARD, &vm->arch.flags))
+		return true;
+
+	ipa  = kvm_vcpu_get_fault_ipa(vcpu);
+	ipa |= kvm_vcpu_get_hfar(vcpu) & FAR_MASK;
+	end = ipa + kvm_vcpu_dabt_get_as(vcpu) - 1;
+
+	guest_lock_component(vcpu);
+	ret = __check_ioguard_page(vcpu, ipa);
+	if ((end & PAGE_MASK) != (ipa & PAGE_MASK))
+		ret &= __check_ioguard_page(vcpu, end);
+	guest_unlock_component(vcpu);
+
+	return ret;
 }
diff --git a/arch/arm64/kvm/hyp/nvhe/mm.c b/arch/arm64/kvm/hyp/nvhe/mm.c
index 5146fb1..4e86a21 100644
--- a/arch/arm64/kvm/hyp/nvhe/mm.c
+++ b/arch/arm64/kvm/hyp/nvhe/mm.c
@@ -8,21 +8,25 @@
 #include <asm/kvm_hyp.h>
 #include <asm/kvm_mmu.h>
 #include <asm/kvm_pgtable.h>
+#include <asm/kvm_pkvm.h>
 #include <asm/spectre.h>
 
 #include <nvhe/early_alloc.h>
 #include <nvhe/gfp.h>
 #include <nvhe/memory.h>
+#include <nvhe/mem_protect.h>
 #include <nvhe/mm.h>
 #include <nvhe/spinlock.h>
 
 struct kvm_pgtable pkvm_pgtable;
 hyp_spinlock_t pkvm_pgd_lock;
-u64 __io_map_base;
 
 struct memblock_region hyp_memory[HYP_MEMBLOCK_REGIONS];
 unsigned int hyp_memblock_nr;
 
+static u64 __io_map_base;
+static DEFINE_PER_CPU(void *, hyp_fixmap_base);
+
 static int __pkvm_create_mappings(unsigned long start, unsigned long size,
 				  unsigned long phys, enum kvm_pgtable_prot prot)
 {
@@ -35,6 +39,22 @@
 	return err;
 }
 
+static unsigned long hyp_alloc_private_va_range(size_t size)
+{
+	unsigned long addr = __io_map_base;
+
+	hyp_assert_lock_held(&pkvm_pgd_lock);
+	__io_map_base += PAGE_ALIGN(size);
+
+	/* Are we overflowing on the vmemmap ? */
+	if (__io_map_base > __hyp_vmemmap) {
+		__io_map_base = addr;
+		addr = (unsigned long)ERR_PTR(-ENOMEM);
+	}
+
+	return addr;
+}
+
 unsigned long __pkvm_create_private_mapping(phys_addr_t phys, size_t size,
 					    enum kvm_pgtable_prot prot)
 {
@@ -43,16 +63,10 @@
 
 	hyp_spin_lock(&pkvm_pgd_lock);
 
-	size = PAGE_ALIGN(size + offset_in_page(phys));
-	addr = __io_map_base;
-	__io_map_base += size;
-
-	/* Are we overflowing on the vmemmap ? */
-	if (__io_map_base > __hyp_vmemmap) {
-		__io_map_base -= size;
-		addr = (unsigned long)ERR_PTR(-ENOMEM);
+	size = size + offset_in_page(phys);
+	addr = hyp_alloc_private_va_range(size);
+	if (IS_ERR((void *)addr))
 		goto out;
-	}
 
 	err = kvm_pgtable_hyp_map(&pkvm_pgtable, addr, size, phys, prot);
 	if (err) {
@@ -103,13 +117,36 @@
 	return ret;
 }
 
-int hyp_back_vmemmap(phys_addr_t phys, unsigned long size, phys_addr_t back)
+int hyp_back_vmemmap(phys_addr_t back)
 {
-	unsigned long start, end;
+	unsigned long i, start, size, end = 0;
+	int ret;
 
-	hyp_vmemmap_range(phys, size, &start, &end);
+	for (i = 0; i < hyp_memblock_nr; i++) {
+		start = hyp_memory[i].base;
+		start = ALIGN_DOWN((u64)hyp_phys_to_page(start), PAGE_SIZE);
+		/*
+		 * The begining of the hyp_vmemmap region for the current
+		 * memblock may already be backed by the page backing the end
+		 * the previous region, so avoid mapping it twice.
+		 */
+		start = max(start, end);
 
-	return __pkvm_create_mappings(start, end - start, back, PAGE_HYP);
+		end = hyp_memory[i].base + hyp_memory[i].size;
+		end = PAGE_ALIGN((u64)hyp_phys_to_page(end));
+		if (start >= end)
+			continue;
+
+		size = end - start;
+		ret = __pkvm_create_mappings(start, size, back, PAGE_HYP);
+		if (ret)
+			return ret;
+
+		memset(hyp_phys_to_virt(back), 0, size);
+		back += size;
+	}
+
+	return 0;
 }
 
 static void *__hyp_bp_vect_base;
@@ -163,6 +200,89 @@
 	return 0;
 }
 
+void *hyp_fixmap_map(phys_addr_t phys)
+{
+	void *addr = *this_cpu_ptr(&hyp_fixmap_base);
+	int ret = kvm_pgtable_hyp_map(&pkvm_pgtable, (u64)addr, PAGE_SIZE,
+				      phys, PAGE_HYP);
+	return ret ? NULL : addr;
+}
+
+int hyp_fixmap_unmap(void)
+{
+	void *addr = *this_cpu_ptr(&hyp_fixmap_base);
+	int ret = kvm_pgtable_hyp_unmap(&pkvm_pgtable, (u64)addr, PAGE_SIZE);
+
+	return (ret != PAGE_SIZE) ? -EINVAL : 0;
+}
+
+static int __pin_pgtable_cb(u64 addr, u64 end, u32 level, kvm_pte_t *ptep,
+			    enum kvm_pgtable_walk_flags flag, void * const arg)
+{
+	if (!kvm_pte_valid(*ptep) || level != KVM_PGTABLE_MAX_LEVELS - 1)
+		return -EINVAL;
+	hyp_page_ref_inc(hyp_virt_to_page(ptep));
+
+	return 0;
+}
+
+static int hyp_pin_pgtable_pages(u64 addr)
+{
+	struct kvm_pgtable_walker walker = {
+		.cb	= __pin_pgtable_cb,
+		.flags	= KVM_PGTABLE_WALK_LEAF,
+	};
+
+	return kvm_pgtable_walk(&pkvm_pgtable, addr, PAGE_SIZE, &walker);
+}
+
+int hyp_create_pcpu_fixmap(void)
+{
+	unsigned long i;
+	int ret = 0;
+	u64 addr;
+
+	hyp_spin_lock(&pkvm_pgd_lock);
+
+	for (i = 0; i < hyp_nr_cpus; i++) {
+		addr = hyp_alloc_private_va_range(PAGE_SIZE);
+		if (IS_ERR((void *)addr)) {
+			ret = -ENOMEM;
+			goto unlock;
+		}
+
+		/*
+		 * Create a dummy mapping, to get the intermediate page-table
+		 * pages allocated, then take a reference on the last level
+		 * page to keep it around at all times.
+		 */
+		ret = kvm_pgtable_hyp_map(&pkvm_pgtable, addr, PAGE_SIZE,
+					  __hyp_pa(__hyp_bss_start), PAGE_HYP);
+		if (ret) {
+			ret = -EINVAL;
+			goto unlock;
+		}
+
+		ret = hyp_pin_pgtable_pages(addr);
+		if (ret)
+			goto unlock;
+
+		ret = kvm_pgtable_hyp_unmap(&pkvm_pgtable, addr, PAGE_SIZE);
+		if (ret != PAGE_SIZE) {
+			ret = -EINVAL;
+			goto unlock;
+		} else {
+			ret = 0;
+		}
+
+		*per_cpu_ptr(&hyp_fixmap_base, i) = (void *)addr;
+	}
+unlock:
+	hyp_spin_unlock(&pkvm_pgd_lock);
+
+	return ret;
+}
+
 int hyp_create_idmap(u32 hyp_va_bits)
 {
 	unsigned long start, end;
@@ -187,3 +307,36 @@
 
 	return __pkvm_create_mappings(start, end - start, start, PAGE_HYP_EXEC);
 }
+
+static void *admit_host_page(void *arg)
+{
+	struct kvm_hyp_memcache *host_mc = arg;
+
+	if (!host_mc->nr_pages)
+		return NULL;
+
+	/*
+	 * The host still owns the pages in its memcache, so we need to go
+	 * through a full host-to-hyp donation cycle to change it. Fortunately,
+	 * __pkvm_host_donate_hyp() takes care of races for us, so if it
+	 * succeeds we're good to go.
+	 */
+	if (__pkvm_host_donate_hyp(hyp_phys_to_pfn(host_mc->head), 1))
+		return NULL;
+
+	return pop_hyp_memcache(host_mc, hyp_phys_to_virt);
+}
+
+/* Refill our local memcache by poping pages from the one provided by the host. */
+int refill_memcache(struct kvm_hyp_memcache *mc, unsigned long min_pages,
+		    struct kvm_hyp_memcache *host_mc)
+{
+	struct kvm_hyp_memcache tmp = *host_mc;
+	int ret;
+
+	ret =  __topup_hyp_memcache(mc, min_pages, admit_host_page,
+				    hyp_virt_to_phys, &tmp);
+	*host_mc = tmp;
+
+	return ret;
+}
diff --git a/arch/arm64/kvm/hyp/nvhe/page_alloc.c b/arch/arm64/kvm/hyp/nvhe/page_alloc.c
index 0bd7701..80d447b 100644
--- a/arch/arm64/kvm/hyp/nvhe/page_alloc.c
+++ b/arch/arm64/kvm/hyp/nvhe/page_alloc.c
@@ -32,7 +32,7 @@
  */
 static struct hyp_page *__find_buddy_nocheck(struct hyp_pool *pool,
 					     struct hyp_page *p,
-					     unsigned short order)
+					     u8 order)
 {
 	phys_addr_t addr = hyp_page_to_phys(p);
 
@@ -51,7 +51,7 @@
 /* Find a buddy page currently available for allocation */
 static struct hyp_page *__find_buddy_avail(struct hyp_pool *pool,
 					   struct hyp_page *p,
-					   unsigned short order)
+					   u8 order)
 {
 	struct hyp_page *buddy = __find_buddy_nocheck(pool, p, order);
 
@@ -93,11 +93,15 @@
 static void __hyp_attach_page(struct hyp_pool *pool,
 			      struct hyp_page *p)
 {
-	unsigned short order = p->order;
+	phys_addr_t phys = hyp_page_to_phys(p);
 	struct hyp_page *buddy;
+	u8 order = p->order;
 
 	memset(hyp_page_to_virt(p), 0, PAGE_SIZE << p->order);
 
+	if (phys < pool->range_start || phys >= pool->range_end)
+		goto insert;
+
 	/*
 	 * Only the first struct hyp_page of a high-order page (otherwise known
 	 * as the 'head') should have p->order set. The non-head pages should
@@ -116,6 +120,7 @@
 		p = min(p, buddy);
 	}
 
+insert:
 	/* Mark the new head, and insert it */
 	p->order = order;
 	page_add_to_list(p, &pool->free_area[order]);
@@ -123,7 +128,7 @@
 
 static struct hyp_page *__hyp_extract_page(struct hyp_pool *pool,
 					   struct hyp_page *p,
-					   unsigned short order)
+					   u8 order)
 {
 	struct hyp_page *buddy;
 
@@ -144,25 +149,6 @@
 	return p;
 }
 
-static inline void hyp_page_ref_inc(struct hyp_page *p)
-{
-	BUG_ON(p->refcount == USHRT_MAX);
-	p->refcount++;
-}
-
-static inline int hyp_page_ref_dec_and_test(struct hyp_page *p)
-{
-	BUG_ON(!p->refcount);
-	p->refcount--;
-	return (p->refcount == 0);
-}
-
-static inline void hyp_set_page_refcounted(struct hyp_page *p)
-{
-	BUG_ON(p->refcount);
-	p->refcount = 1;
-}
-
 static void __hyp_put_page(struct hyp_pool *pool, struct hyp_page *p)
 {
 	if (hyp_page_ref_dec_and_test(p))
@@ -196,7 +182,7 @@
 
 void hyp_split_page(struct hyp_page *p)
 {
-	unsigned short order = p->order;
+	u8 order = p->order;
 	unsigned int i;
 
 	p->order = 0;
@@ -208,10 +194,10 @@
 	}
 }
 
-void *hyp_alloc_pages(struct hyp_pool *pool, unsigned short order)
+void *hyp_alloc_pages(struct hyp_pool *pool, u8 order)
 {
-	unsigned short i = order;
 	struct hyp_page *p;
+	u8 i = order;
 
 	hyp_spin_lock(&pool->lock);
 
@@ -241,7 +227,7 @@
 	int i;
 
 	hyp_spin_lock_init(&pool->lock);
-	pool->max_order = min(MAX_ORDER, get_order(nr_pages << PAGE_SHIFT));
+	pool->max_order = min(MAX_ORDER, get_order((nr_pages + 1) << PAGE_SHIFT));
 	for (i = 0; i < pool->max_order; i++)
 		INIT_LIST_HEAD(&pool->free_area[i]);
 	pool->range_start = phys;
@@ -249,10 +235,8 @@
 
 	/* Init the vmemmap portion */
 	p = hyp_phys_to_page(phys);
-	for (i = 0; i < nr_pages; i++) {
-		p[i].order = 0;
+	for (i = 0; i < nr_pages; i++)
 		hyp_set_page_refcounted(&p[i]);
-	}
 
 	/* Attach the unused pages to the buddy tree */
 	for (i = reserved_pages; i < nr_pages; i++)
diff --git a/arch/arm64/kvm/hyp/nvhe/pkvm.c b/arch/arm64/kvm/hyp/nvhe/pkvm.c
new file mode 100644
index 0000000..e042563
--- /dev/null
+++ b/arch/arm64/kvm/hyp/nvhe/pkvm.c
@@ -0,0 +1,1428 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (C) 2021 Google LLC
+ * Author: Fuad Tabba <tabba@google.com>
+ */
+
+#include <asm/kvm_arm.h>
+#include <asm/kvm_asm.h>
+#include <asm/kvm_host.h>
+#include <asm/kvm_mmu.h>
+#include <asm/memory.h>
+
+#include <linux/kvm_host.h>
+#include <linux/mm.h>
+
+#include <kvm/arm_hypercalls.h>
+#include <kvm/arm_psci.h>
+
+#include <nvhe/mem_protect.h>
+#include <nvhe/mm.h>
+#include <nvhe/pkvm.h>
+#include <nvhe/trap_handler.h>
+
+/* Used by icache_is_vpipt(). */
+unsigned long __icache_flags;
+
+/*
+ * Set trap register values based on features in ID_AA64PFR0.
+ */
+static void pvm_init_traps_aa64pfr0(struct kvm_vcpu *vcpu)
+{
+	const u64 feature_ids = pvm_read_id_reg(vcpu, SYS_ID_AA64PFR0_EL1);
+	u64 hcr_set = HCR_RW;
+	u64 hcr_clear = 0;
+	u64 cptr_set = 0;
+
+	/* Protected KVM does not support AArch32 guests. */
+	BUILD_BUG_ON(FIELD_GET(ARM64_FEATURE_MASK(ID_AA64PFR0_EL0),
+		PVM_ID_AA64PFR0_RESTRICT_UNSIGNED) != ID_AA64PFR0_ELx_64BIT_ONLY);
+	BUILD_BUG_ON(FIELD_GET(ARM64_FEATURE_MASK(ID_AA64PFR0_EL1),
+		PVM_ID_AA64PFR0_RESTRICT_UNSIGNED) != ID_AA64PFR0_ELx_64BIT_ONLY);
+
+	/*
+	 * Linux guests assume support for floating-point and Advanced SIMD. Do
+	 * not change the trapping behavior for these from the KVM default.
+	 */
+	BUILD_BUG_ON(!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64PFR0_FP),
+				PVM_ID_AA64PFR0_ALLOW));
+	BUILD_BUG_ON(!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64PFR0_ASIMD),
+				PVM_ID_AA64PFR0_ALLOW));
+
+	/* Trap RAS unless all current versions are supported */
+	if (FIELD_GET(ARM64_FEATURE_MASK(ID_AA64PFR0_RAS), feature_ids) <
+	    ID_AA64PFR0_RAS_V1P1) {
+		hcr_set |= HCR_TERR | HCR_TEA;
+		hcr_clear |= HCR_FIEN;
+	}
+
+	/* Trap AMU */
+	if (!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64PFR0_AMU), feature_ids)) {
+		hcr_clear |= HCR_AMVOFFEN;
+		cptr_set |= CPTR_EL2_TAM;
+	}
+
+	/* Trap SVE */
+	if (!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64PFR0_SVE), feature_ids))
+		cptr_set |= CPTR_EL2_TZ;
+
+	vcpu->arch.hcr_el2 |= hcr_set;
+	vcpu->arch.hcr_el2 &= ~hcr_clear;
+	vcpu->arch.cptr_el2 |= cptr_set;
+}
+
+/*
+ * Set trap register values based on features in ID_AA64PFR1.
+ */
+static void pvm_init_traps_aa64pfr1(struct kvm_vcpu *vcpu)
+{
+	const u64 feature_ids = pvm_read_id_reg(vcpu, SYS_ID_AA64PFR1_EL1);
+	u64 hcr_set = 0;
+	u64 hcr_clear = 0;
+
+	/* Memory Tagging: Trap and Treat as Untagged if not supported. */
+	if (!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64PFR1_MTE), feature_ids)) {
+		hcr_set |= HCR_TID5;
+		hcr_clear |= HCR_DCT | HCR_ATA;
+	}
+
+	vcpu->arch.hcr_el2 |= hcr_set;
+	vcpu->arch.hcr_el2 &= ~hcr_clear;
+}
+
+/*
+ * Set trap register values based on features in ID_AA64DFR0.
+ */
+static void pvm_init_traps_aa64dfr0(struct kvm_vcpu *vcpu)
+{
+	const u64 feature_ids = pvm_read_id_reg(vcpu, SYS_ID_AA64DFR0_EL1);
+	u64 mdcr_set = 0;
+	u64 mdcr_clear = 0;
+	u64 cptr_set = 0;
+
+	/* Trap/constrain PMU */
+	if (!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64DFR0_PMUVER), feature_ids)) {
+		mdcr_set |= MDCR_EL2_TPM | MDCR_EL2_TPMCR;
+		mdcr_clear |= MDCR_EL2_HPME | MDCR_EL2_MTPME |
+			      MDCR_EL2_HPMN_MASK;
+	}
+
+	/* Trap Debug */
+	if (!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64DFR0_DEBUGVER), feature_ids))
+		mdcr_set |= MDCR_EL2_TDRA | MDCR_EL2_TDA;
+
+	/* Trap OS Double Lock */
+	if (!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64DFR0_DOUBLELOCK), feature_ids))
+		mdcr_set |= MDCR_EL2_TDOSA;
+
+	/* Trap SPE */
+	if (!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64DFR0_PMSVER), feature_ids)) {
+		mdcr_set |= MDCR_EL2_TPMS;
+		mdcr_clear |= MDCR_EL2_E2PB_MASK << MDCR_EL2_E2PB_SHIFT;
+	}
+
+	/* Trap Trace Filter */
+	if (!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64DFR0_TRACE_FILT), feature_ids))
+		mdcr_set |= MDCR_EL2_TTRF;
+
+	/* Trap Trace */
+	if (!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64DFR0_TRACEVER), feature_ids))
+		cptr_set |= CPTR_EL2_TTA;
+
+	vcpu->arch.mdcr_el2 |= mdcr_set;
+	vcpu->arch.mdcr_el2 &= ~mdcr_clear;
+	vcpu->arch.cptr_el2 |= cptr_set;
+}
+
+/*
+ * Set trap register values based on features in ID_AA64MMFR0.
+ */
+static void pvm_init_traps_aa64mmfr0(struct kvm_vcpu *vcpu)
+{
+	const u64 feature_ids = pvm_read_id_reg(vcpu, SYS_ID_AA64MMFR0_EL1);
+	u64 mdcr_set = 0;
+
+	/* Trap Debug Communications Channel registers */
+	if (!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64MMFR0_FGT), feature_ids))
+		mdcr_set |= MDCR_EL2_TDCC;
+
+	vcpu->arch.mdcr_el2 |= mdcr_set;
+}
+
+/*
+ * Set trap register values based on features in ID_AA64MMFR1.
+ */
+static void pvm_init_traps_aa64mmfr1(struct kvm_vcpu *vcpu)
+{
+	const u64 feature_ids = pvm_read_id_reg(vcpu, SYS_ID_AA64MMFR1_EL1);
+	u64 hcr_set = 0;
+
+	/* Trap LOR */
+	if (!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64MMFR1_LOR), feature_ids))
+		hcr_set |= HCR_TLOR;
+
+	vcpu->arch.hcr_el2 |= hcr_set;
+}
+
+/*
+ * Set baseline trap register values.
+ */
+static void pvm_init_trap_regs(struct kvm_vcpu *vcpu)
+{
+	vcpu->arch.cptr_el2 = CPTR_EL2_DEFAULT;
+	vcpu->arch.mdcr_el2 = 0;
+
+	/*
+	 * Always trap:
+	 * - Feature id registers: to control features exposed to guests
+	 * - Implementation-defined features
+	 */
+	vcpu->arch.hcr_el2 = HCR_GUEST_FLAGS |
+			     HCR_TID3 | HCR_TACR | HCR_TIDCP | HCR_TID1;
+
+	if (cpus_have_const_cap(ARM64_HAS_RAS_EXTN)) {
+		/* route synchronous external abort exceptions to EL2 */
+		vcpu->arch.hcr_el2 |= HCR_TEA;
+		/* trap error record accesses */
+		vcpu->arch.hcr_el2 |= HCR_TERR;
+	}
+
+	if (cpus_have_const_cap(ARM64_HAS_STAGE2_FWB))
+		vcpu->arch.hcr_el2 |= HCR_FWB;
+
+	if (cpus_have_const_cap(ARM64_MISMATCHED_CACHE_TYPE))
+		vcpu->arch.hcr_el2 |= HCR_TID2;
+}
+
+/*
+ * Initialize trap register values for protected VMs.
+ */
+static void pkvm_vcpu_init_traps(struct kvm_vcpu *vcpu)
+{
+	pvm_init_trap_regs(vcpu);
+	pvm_init_traps_aa64pfr0(vcpu);
+	pvm_init_traps_aa64pfr1(vcpu);
+	pvm_init_traps_aa64dfr0(vcpu);
+	pvm_init_traps_aa64mmfr0(vcpu);
+	pvm_init_traps_aa64mmfr1(vcpu);
+}
+
+/*
+ * Start the shadow table handle at the offset defined instead of at 0.
+ * Mainly for sanity checking and debugging.
+ */
+#define HANDLE_OFFSET 0x1000
+
+static int shadow_handle_to_index(int shadow_handle)
+{
+	return shadow_handle - HANDLE_OFFSET;
+}
+
+static int index_to_shadow_handle(int index)
+{
+	return index + HANDLE_OFFSET;
+}
+
+extern unsigned long hyp_nr_cpus;
+
+/*
+ * Track the vcpu most recently loaded on each physical CPU.
+ */
+static DEFINE_PER_CPU(struct kvm_vcpu *, last_loaded_vcpu);
+
+/*
+ * Spinlock for protecting the shadow table related state.
+ * Protects writes to shadow_table, num_shadow_entries, and next_shadow_alloc,
+ * as well as reads and writes to last_shadow_vcpu_lookup.
+ */
+static DEFINE_HYP_SPINLOCK(shadow_lock);
+
+/*
+ * The table of shadow entries for protected VMs in hyp.
+ * Allocated at hyp initialization and setup.
+ */
+static struct kvm_shadow_vm **shadow_table;
+
+/* Current number of vms in the shadow table. */
+static int num_shadow_entries;
+
+/* The next entry index to try to allocate from. */
+static int next_shadow_alloc;
+
+void hyp_shadow_table_init(void *tbl)
+{
+	WARN_ON(shadow_table);
+	shadow_table = tbl;
+}
+
+/*
+ * Return the shadow vm corresponding to the handle.
+ */
+static struct kvm_shadow_vm *find_shadow_by_handle(int shadow_handle)
+{
+	int shadow_index = shadow_handle_to_index(shadow_handle);
+
+	if (unlikely(shadow_index < 0 || shadow_index >= KVM_MAX_PVMS))
+		return NULL;
+
+	return shadow_table[shadow_index];
+}
+
+struct kvm_vcpu *get_shadow_vcpu(int shadow_handle, unsigned int vcpu_idx)
+{
+	struct kvm_vcpu *vcpu = NULL;
+	struct kvm_shadow_vm *vm;
+	bool flush_context = false;
+
+	hyp_spin_lock(&shadow_lock);
+	vm = find_shadow_by_handle(shadow_handle);
+	if (!vm || vm->nr_vcpus <= vcpu_idx)
+		goto unlock;
+	vcpu = &vm->shadow_vcpus[vcpu_idx]->vcpu;
+
+	/* Ensure vcpu isn't loaded on more than one cpu simultaneously. */
+	if (unlikely(vcpu->arch.pkvm.loaded_on_cpu)) {
+		vcpu = NULL;
+		goto unlock;
+	}
+
+	/*
+	 * Guarantee that both TLBs and I-cache are private to each vcpu.
+	 * The check below is conservative and could lead to over-invalidation,
+	 * because there is no need to nuke the contexts if the vcpu belongs to
+	 * a different vm.
+	 */
+	if (vcpu != __this_cpu_read(last_loaded_vcpu)) {
+		flush_context = true;
+		__this_cpu_write(last_loaded_vcpu, vcpu);
+	}
+
+	vcpu->arch.pkvm.loaded_on_cpu = true;
+
+	hyp_page_ref_inc(hyp_virt_to_page(vm));
+unlock:
+	hyp_spin_unlock(&shadow_lock);
+
+	/* No need for the lock while flushing the context. */
+	if (flush_context)
+		__kvm_flush_cpu_context(vcpu->arch.hw_mmu);
+
+	return vcpu;
+}
+
+void put_shadow_vcpu(struct kvm_vcpu *vcpu)
+{
+	struct kvm_shadow_vm *vm = vcpu->arch.pkvm.shadow_vm;
+
+	hyp_spin_lock(&shadow_lock);
+	vcpu->arch.pkvm.loaded_on_cpu = false;
+	hyp_page_ref_dec(hyp_virt_to_page(vm));
+	hyp_spin_unlock(&shadow_lock);
+}
+
+/* Check and copy the supported features for the vcpu from the host. */
+static int copy_features(struct kvm_vcpu *shadow_vcpu, struct kvm_vcpu *host_vcpu)
+{
+	DECLARE_BITMAP(allowed_features, KVM_VCPU_MAX_FEATURES);
+
+	bitmap_zero(allowed_features, KVM_VCPU_MAX_FEATURES);
+
+	/*
+	 * Always allowed:
+	 * - CPU starting in poweroff state
+	 * - PSCI v0.2
+	 */
+	set_bit(KVM_ARM_VCPU_POWER_OFF, allowed_features);
+	set_bit(KVM_ARM_VCPU_PSCI_0_2, allowed_features);
+
+	/*
+	 * Check if remaining features are allowed:
+	 * - Performance Monitoring
+	 * - Pointer Authentication
+	 */
+	if (FIELD_GET(ARM64_FEATURE_MASK(ID_AA64DFR0_PMUVER), PVM_ID_AA64DFR0_ALLOW))
+	        set_bit(KVM_ARM_VCPU_PMU_V3, allowed_features);
+
+	if (FIELD_GET(ARM64_FEATURE_MASK(ID_AA64ISAR1_API), PVM_ID_AA64ISAR1_ALLOW) &&
+	    FIELD_GET(ARM64_FEATURE_MASK(ID_AA64ISAR1_APA), PVM_ID_AA64ISAR1_ALLOW))
+	        set_bit(KVM_ARM_VCPU_PTRAUTH_ADDRESS, allowed_features);
+
+	if (FIELD_GET(ARM64_FEATURE_MASK(ID_AA64ISAR1_GPI), PVM_ID_AA64ISAR1_ALLOW) &&
+	    FIELD_GET(ARM64_FEATURE_MASK(ID_AA64ISAR1_GPA), PVM_ID_AA64ISAR1_ALLOW))
+	        set_bit(KVM_ARM_VCPU_PTRAUTH_GENERIC, allowed_features);
+
+	bitmap_and(shadow_vcpu->arch.features, host_vcpu->arch.features,
+		allowed_features, KVM_VCPU_MAX_FEATURES);
+
+	/*
+	 * Check for system support for address/generic pointer authentication
+	 * features if either are enabled.
+	 */
+	if ((test_bit(KVM_ARM_VCPU_PTRAUTH_ADDRESS, shadow_vcpu->arch.features) ||
+	     test_bit(KVM_ARM_VCPU_PTRAUTH_GENERIC, shadow_vcpu->arch.features)) &&
+	    !system_has_full_ptr_auth())
+		return -EINVAL;
+
+	return 0;
+}
+
+static void unpin_host_vcpu(struct shadow_vcpu_state *shadow_vcpu)
+{
+	struct kvm_vcpu *host_vcpu = shadow_vcpu->vcpu.arch.pkvm.host_vcpu;
+	size_t sve_state_size;
+	void *sve_state = shadow_vcpu->vcpu.arch.sve_state;
+
+	hyp_unpin_shared_mem(host_vcpu, host_vcpu + 1);
+
+	if (!sve_state)
+		return;
+
+	sve_state = kern_hyp_va(sve_state);
+	sve_state_size = vcpu_sve_state_size(&shadow_vcpu->vcpu);
+	hyp_unpin_shared_mem(sve_state, sve_state + sve_state_size);
+}
+
+static void unpin_host_vcpus(struct shadow_vcpu_state *shadow_vcpus[], int nr_vcpus)
+{
+	int i;
+
+	for (i = 0; i < nr_vcpus; i++)
+		unpin_host_vcpu(shadow_vcpus[i]);
+}
+
+static int init_ptrauth(struct kvm_vcpu *shadow_vcpu)
+{
+	int ret = 0;
+	if (test_bit(KVM_ARM_VCPU_PTRAUTH_ADDRESS, shadow_vcpu->arch.features) ||
+	    test_bit(KVM_ARM_VCPU_PTRAUTH_GENERIC, shadow_vcpu->arch.features))
+		ret = kvm_vcpu_enable_ptrauth(shadow_vcpu);
+	return ret;
+}
+
+static void init_shadow_vm(struct kvm *kvm, struct kvm_shadow_vm *vm,
+			   int nr_vcpus)
+{
+	vm->host_kvm = kvm;
+	vm->created_vcpus = nr_vcpus;
+	vm->arch.pkvm.pvmfw_load_addr = kvm->arch.pkvm.pvmfw_load_addr;
+	vm->arch.pkvm.enabled = READ_ONCE(kvm->arch.pkvm.enabled);
+}
+
+static int init_shadow_vcpu(struct shadow_vcpu_state *shadow_state,
+			    struct kvm_vcpu *host_vcpu,
+			    struct kvm_shadow_vm *vm, int vcpu_idx)
+{
+	struct kvm_vcpu *shadow_vcpu = &shadow_state->vcpu;
+	int ret;
+
+	host_vcpu = kern_hyp_va(host_vcpu);
+	if (hyp_pin_shared_mem(host_vcpu, host_vcpu + 1))
+		return -EBUSY;
+
+	if (host_vcpu->vcpu_idx != vcpu_idx) {
+		ret = -EINVAL;
+		goto done;
+	}
+
+	shadow_vcpu->arch.pkvm.host_vcpu = host_vcpu;
+	shadow_vcpu->kvm = vm->host_kvm;
+	shadow_vcpu->vcpu_id = host_vcpu->vcpu_id;
+	shadow_vcpu->vcpu_idx = vcpu_idx;
+
+	ret = copy_features(shadow_vcpu, host_vcpu);
+	if (ret)
+		goto done;
+
+	ret = init_ptrauth(shadow_vcpu);
+	if (ret)
+		goto done;
+
+	if (test_bit(KVM_ARM_VCPU_SVE, shadow_vcpu->arch.features)) {
+		size_t sve_state_size;
+		void *sve_state;
+
+		shadow_vcpu->arch.sve_state =
+			READ_ONCE(host_vcpu->arch.sve_state);
+		shadow_vcpu->arch.sve_max_vl =
+			READ_ONCE(host_vcpu->arch.sve_max_vl);
+
+		sve_state = kern_hyp_va(shadow_vcpu->arch.sve_state);
+		sve_state_size = vcpu_sve_state_size(shadow_vcpu);
+
+		if (!shadow_vcpu->arch.sve_state || !sve_state_size ||
+		    hyp_pin_shared_mem(sve_state, sve_state + sve_state_size)) {
+			clear_bit(KVM_ARM_VCPU_SVE, shadow_vcpu->arch.features);
+			shadow_vcpu->arch.sve_state = NULL;
+			shadow_vcpu->arch.sve_max_vl = 0;
+			ret = -EINVAL;
+			goto done;
+		}
+	}
+
+	if (vm->arch.pkvm.enabled)
+		pkvm_vcpu_init_traps(shadow_vcpu);
+	kvm_reset_pvm_sys_regs(shadow_vcpu);
+
+	vm->vcpus[vcpu_idx] = shadow_vcpu;
+	shadow_state->vm = vm;
+
+	shadow_vcpu->arch.hw_mmu = &vm->arch.mmu;
+	shadow_vcpu->arch.pkvm.shadow_vm = vm;
+	shadow_vcpu->arch.power_off = true;
+
+	if (test_bit(KVM_ARM_VCPU_POWER_OFF, shadow_vcpu->arch.features)) {
+		shadow_vcpu->arch.pkvm.power_state =
+			PSCI_0_2_AFFINITY_LEVEL_OFF;
+	} else if (pvm_has_pvmfw(vm)) {
+		if (vm->pvmfw_entry_vcpu) {
+			ret = -EINVAL;
+			goto done;
+		}
+
+		vm->pvmfw_entry_vcpu = shadow_vcpu;
+		shadow_vcpu->arch.reset_state.reset = true;
+		shadow_vcpu->arch.pkvm.power_state =
+			PSCI_0_2_AFFINITY_LEVEL_ON_PENDING;
+	} else {
+		struct vcpu_reset_state *reset_state =
+			&shadow_vcpu->arch.reset_state;
+
+		reset_state->pc = *vcpu_pc(host_vcpu);
+		reset_state->r0 = vcpu_get_reg(host_vcpu, 0);
+		reset_state->reset = true;
+		shadow_vcpu->arch.pkvm.power_state =
+			PSCI_0_2_AFFINITY_LEVEL_ON_PENDING;
+	}
+
+done:
+	if (ret)
+		unpin_host_vcpu(shadow_state);
+
+	return ret;
+}
+
+static bool __exists_shadow(struct kvm *host_kvm)
+{
+	int i;
+	int num_checked = 0;
+
+	for (i = 0; i < KVM_MAX_PVMS && num_checked < num_shadow_entries; i++) {
+		if (!shadow_table[i])
+			continue;
+
+		if (unlikely(shadow_table[i]->host_kvm == host_kvm))
+			return true;
+
+		num_checked++;
+	}
+
+	return false;
+}
+
+/*
+ * Allocate a shadow table entry and insert a pointer to the shadow vm.
+ *
+ * Return a unique handle to the protected VM on success,
+ * negative error code on failure.
+ */
+static int insert_shadow_table(struct kvm *kvm, struct kvm_shadow_vm *vm,
+			       size_t shadow_size)
+{
+	struct kvm_s2_mmu *mmu = &vm->arch.mmu;
+	int shadow_handle;
+	int vmid;
+
+	hyp_assert_lock_held(&shadow_lock);
+
+	if (unlikely(num_shadow_entries >= KVM_MAX_PVMS))
+		return -ENOMEM;
+
+	/*
+	 * Initializing protected state might have failed, yet a malicious host
+	 * could trigger this function. Thus, ensure that shadow_table exists.
+	 */
+	if (unlikely(!shadow_table))
+		return -EINVAL;
+
+	/* Check that a shadow hasn't been created before for this host KVM. */
+	if (unlikely(__exists_shadow(kvm)))
+		return -EEXIST;
+
+	/* Find the next free entry in the shadow table. */
+	while (shadow_table[next_shadow_alloc])
+		next_shadow_alloc = (next_shadow_alloc + 1) % KVM_MAX_PVMS;
+	shadow_handle = index_to_shadow_handle(next_shadow_alloc);
+
+	vm->shadow_handle = shadow_handle;
+	vm->shadow_area_size = shadow_size;
+
+	/* VMID 0 is reserved for the host */
+	vmid = next_shadow_alloc + 1;
+	if (vmid > 0xff)
+		return -ENOMEM;
+
+	mmu->vmid.vmid = vmid;
+	mmu->vmid.vmid_gen = 0;
+	mmu->arch = &vm->arch;
+	mmu->pgt = &vm->pgt;
+
+	shadow_table[next_shadow_alloc] = vm;
+	next_shadow_alloc = (next_shadow_alloc + 1) % KVM_MAX_PVMS;
+	num_shadow_entries++;
+
+	return shadow_handle;
+}
+
+/*
+ * Deallocate and remove the shadow table entry corresponding to the handle.
+ */
+static void remove_shadow_table(int shadow_handle)
+{
+	hyp_assert_lock_held(&shadow_lock);
+	shadow_table[shadow_handle_to_index(shadow_handle)] = NULL;
+	num_shadow_entries--;
+}
+
+static size_t pkvm_get_shadow_size(int num_vcpus)
+{
+	/* Shadow space for the vm struct and all of its vcpu states. */
+	return sizeof(struct kvm_shadow_vm) +
+	       sizeof(struct shadow_vcpu_state *) * num_vcpus;
+}
+
+/*
+ * Check whether the size of the area donated by the host is sufficient for
+ * the shadow structues required for nr_vcpus as well as the shadow vm.
+ */
+static int check_shadow_size(int nr_vcpus, size_t shadow_size)
+{
+	if (nr_vcpus < 1 || nr_vcpus > KVM_MAX_VCPUS)
+		return -EINVAL;
+
+	/*
+	 * Shadow size is rounded up when allocated and donated by the host,
+	 * so it's likely to be larger than the sum of the struct sizes.
+	 */
+	if (shadow_size < pkvm_get_shadow_size(nr_vcpus))
+		return -EINVAL;
+
+	return 0;
+}
+
+static void drain_shadow_vcpus(struct shadow_vcpu_state *shadow_vcpus[],
+			       unsigned int nr_vcpus,
+			       struct kvm_hyp_memcache *mc)
+{
+	int i;
+
+	for (i = 0; i < nr_vcpus; i++) {
+		struct kvm_vcpu *shadow_vcpu = &shadow_vcpus[i]->vcpu;
+		struct kvm_hyp_memcache *vcpu_mc = &shadow_vcpu->arch.pkvm_memcache;
+		void *addr;
+
+		while (vcpu_mc->nr_pages) {
+			addr = pop_hyp_memcache(vcpu_mc, hyp_phys_to_virt);
+			push_hyp_memcache(mc, addr, hyp_virt_to_phys);
+			WARN_ON(__pkvm_hyp_donate_host(hyp_virt_to_pfn(addr), 1));
+		}
+	}
+}
+
+/*
+ * Initialize the shadow copy of the protected VM state using the memory
+ * donated by the host.
+ *
+ * Unmaps the donated memory from the host at stage 2.
+ *
+ * kvm: A pointer to the host's struct kvm (host va).
+ * shadow_va: The host va of the area being donated for the shadow state.
+ * 	      Must be page aligned.
+ * shadow_size: The size of the area being donated for the shadow state.
+ * 		Must be a multiple of the page size.
+ * pgd: The host va of the area being donated for the stage-2 PGD for the VM.
+ * 	Must be page aligned. Its size is implied by the VM's VTCR.
+ *
+ * Return a unique handle to the protected VM on success,
+ * negative error code on failure.
+ */
+int __pkvm_init_shadow(struct kvm *kvm,
+		       void *shadow_va,
+		       size_t shadow_size,
+		       void *pgd)
+{
+	struct kvm_shadow_vm *vm = kern_hyp_va(shadow_va);
+	phys_addr_t shadow_pa = hyp_virt_to_phys(vm);
+	u64 pfn = hyp_phys_to_pfn(shadow_pa);
+	u64 nr_shadow_pages = shadow_size >> PAGE_SHIFT;
+	u64 nr_pgd_pages;
+	size_t pgd_size;
+	int nr_vcpus = 0;
+	int ret = 0;
+
+	/* Check that the donated memory is aligned to page boundaries. */
+	if (!PAGE_ALIGNED(shadow_va) ||
+	    !PAGE_ALIGNED(shadow_size) ||
+	    !PAGE_ALIGNED(pgd))
+		return -EINVAL;
+
+	kvm = kern_hyp_va(kvm);
+	pgd = kern_hyp_va(pgd);
+
+	ret = hyp_pin_shared_mem(kvm, kvm + 1);
+	if (ret)
+		return ret;
+
+	/* Ensure the host has donated enough memory for the shadow structs. */
+	nr_vcpus = kvm->created_vcpus;
+	ret = check_shadow_size(nr_vcpus, shadow_size);
+	if (ret)
+		goto err;
+
+	ret = __pkvm_host_donate_hyp(pfn, nr_shadow_pages);
+	if (ret)
+		goto err;
+
+	/* Ensure we're working with a clean slate. */
+	memset(vm, 0, shadow_size);
+
+	vm->arch.vtcr = host_kvm.arch.vtcr;
+	pgd_size = kvm_pgtable_stage2_pgd_size(host_kvm.arch.vtcr);
+	nr_pgd_pages = pgd_size >> PAGE_SHIFT;
+	ret = __pkvm_host_donate_hyp(hyp_virt_to_pfn(pgd), nr_pgd_pages);
+	if (ret)
+		goto err_remove_mappings;
+
+	init_shadow_vm(kvm, vm, nr_vcpus);
+
+	/* Add the entry to the shadow table. */
+	hyp_spin_lock(&shadow_lock);
+	ret = insert_shadow_table(kvm, vm, shadow_size);
+	if (ret < 0)
+		goto err_unlock;
+
+	ret = kvm_guest_prepare_stage2(vm, pgd);
+	if (ret)
+		goto err_remove_shadow_table;
+
+	hyp_spin_unlock(&shadow_lock);
+	return vm->shadow_handle;
+
+err_remove_shadow_table:
+	remove_shadow_table(vm->shadow_handle);
+err_unlock:
+	hyp_spin_unlock(&shadow_lock);
+	WARN_ON(__pkvm_hyp_donate_host(hyp_virt_to_pfn(pgd), nr_pgd_pages));
+err_remove_mappings:
+	/* Clear the donated shadow memory on failure to avoid data leaks. */
+	memset(vm, 0, shadow_size);
+	WARN_ON(__pkvm_hyp_donate_host(hyp_phys_to_pfn(shadow_pa),
+				       shadow_size >> PAGE_SHIFT));
+err:
+	hyp_unpin_shared_mem(kvm, kvm + 1);
+	return ret;
+}
+
+/*
+ * Initialize the protected vcpu state shadow copy in host-donated memory.
+ *
+ * shadow_handle: The handle for the protected vm.
+ * host_vcpu: A pointer to the corresponding host vcpu (host va).
+ * shadow_vcpu_hva: The host va of the area being donated for the vcpu state.
+ *                 Must be page aligned. The size of the area must be equal to
+ *                 the paged-aligned size of kvm_shadow_vcpu_state.
+ *
+ * Return 0 on success, negative error code on failure.
+ */
+int __pkvm_init_shadow_vcpu(unsigned int shadow_handle,
+			    struct kvm_vcpu *host_vcpu,
+			    void *shadow_vcpu_hva)
+{
+	struct kvm_shadow_vm *vm;
+	struct shadow_vcpu_state *shadow_state = kern_hyp_va(shadow_vcpu_hva);
+	size_t vcpu_state_sz = sizeof(*shadow_state);
+	u64 nr_pages = PAGE_ALIGN(vcpu_state_sz) >> PAGE_SHIFT;
+	unsigned int idx;
+	int ret;
+
+	if (!PAGE_ALIGNED(shadow_vcpu_hva))
+		return -EINVAL;
+
+	ret = __pkvm_host_donate_hyp(hyp_virt_to_pfn(shadow_state),
+				     nr_pages);
+	if (ret)
+		return ret;
+
+	memset(shadow_state, 0, vcpu_state_sz);
+
+	hyp_spin_lock(&shadow_lock);
+
+	vm = find_shadow_by_handle(shadow_handle);
+	if (!vm) {
+		ret = -ENOENT;
+		goto unlock;
+	}
+
+	idx = vm->nr_vcpus;
+	if (idx >= vm->created_vcpus) {
+		ret = -EINVAL;
+		goto unlock;
+	}
+
+	ret = init_shadow_vcpu(shadow_state, host_vcpu, vm, idx);
+	if (ret)
+		goto unlock;
+
+	vm->shadow_vcpus[idx] = shadow_state;
+	vm->nr_vcpus++;
+unlock:
+	hyp_spin_unlock(&shadow_lock);
+
+	if (ret) {
+		memset(shadow_state, 0, vcpu_state_sz);
+		WARN_ON(__pkvm_hyp_donate_host(hyp_virt_to_pfn(shadow_state),
+					       nr_pages));
+	}
+
+	return ret;
+}
+
+static void teardown_donated_memory(struct kvm_hyp_memcache *mc, void *addr,
+				    size_t size)
+{
+	u64 pfn = hyp_phys_to_pfn(__hyp_pa(addr));
+	u64 nr_pages = size >> PAGE_SHIFT;
+	void *start;
+
+	memset(addr, 0, size);
+	kvm_flush_dcache_to_poc(addr, size);
+
+	for (start = addr; start < addr + size; start += PAGE_SIZE)
+		push_hyp_memcache(mc, start, hyp_virt_to_phys);
+
+	WARN_ON(__pkvm_hyp_donate_host(pfn, nr_pages));
+}
+
+int __pkvm_teardown_shadow(int shadow_handle)
+{
+	struct kvm_hyp_memcache *mc;
+	struct kvm_shadow_vm *vm;
+	struct kvm *host_kvm;
+	unsigned int nr_vcpus;
+	int err;
+	int i;
+
+	/* Lookup then remove entry from the shadow table. */
+	hyp_spin_lock(&shadow_lock);
+	vm = find_shadow_by_handle(shadow_handle);
+	if (!vm) {
+		err = -ENOENT;
+		goto err_unlock;
+	}
+
+	if (WARN_ON(hyp_page_count(vm))) {
+		err = -EBUSY;
+		goto err_unlock;
+	}
+
+	host_kvm = vm->host_kvm;
+	nr_vcpus = vm->nr_vcpus;
+
+	/*
+	 * Clear the tracking for last_loaded_vcpu for all cpus for this vm in
+	 * case the same addresses for those vcpus are reused for future vms.
+	 */
+	for (i = 0; i < hyp_nr_cpus; i++) {
+		struct kvm_vcpu **last_loaded_vcpu_ptr =
+			per_cpu_ptr(&last_loaded_vcpu, i);
+		struct kvm_vcpu *vcpu = *last_loaded_vcpu_ptr;
+
+		if (vcpu && vcpu->arch.pkvm.shadow_vm == vm)
+			*last_loaded_vcpu_ptr = NULL;
+	}
+
+	/* Ensure the VMID is clean before it can be reallocated */
+	__kvm_tlb_flush_vmid(&vm->arch.mmu);
+	remove_shadow_table(shadow_handle);
+	hyp_spin_unlock(&shadow_lock);
+
+	/* Reclaim guest pages, and page-table pages */
+	mc = &host_kvm->arch.pkvm.teardown_mc;
+	reclaim_guest_pages(vm, mc);
+	drain_shadow_vcpus(vm->shadow_vcpus, nr_vcpus, mc);
+	unpin_host_vcpus(vm->shadow_vcpus, nr_vcpus);
+
+	for (i = 0; i < nr_vcpus; i++)
+		teardown_donated_memory(mc, vm->shadow_vcpus[i],
+					PAGE_ALIGN(sizeof(vm->shadow_vcpus[i])));
+	teardown_donated_memory(mc, vm, vm->shadow_area_size);
+
+	hyp_unpin_shared_mem(host_kvm, host_kvm + 1);
+	return 0;
+
+err_unlock:
+	hyp_spin_unlock(&shadow_lock);
+	return err;
+}
+
+int pkvm_load_pvmfw_pages(struct kvm_shadow_vm *vm, u64 ipa, phys_addr_t phys,
+			  u64 size)
+{
+	struct kvm_protected_vm *pkvm = &vm->arch.pkvm;
+	u64 npages, offset = ipa - pkvm->pvmfw_load_addr;
+	void *src = hyp_phys_to_virt(pvmfw_base) + offset;
+
+	if (offset >= pvmfw_size)
+		return -EINVAL;
+
+	size = min(size, pvmfw_size - offset);
+	if (!PAGE_ALIGNED(size) || !PAGE_ALIGNED(src))
+		return -EINVAL;
+
+	npages = size >> PAGE_SHIFT;
+	while (npages--) {
+		void *dst;
+
+		dst = hyp_fixmap_map(phys);
+		if (!dst)
+			return -EINVAL;
+
+		/*
+		 * No need for cache maintenance here, as the pgtable code will
+		 * take care of this when installing the pte in the guest's
+		 * stage-2 page table.
+		 */
+		memcpy(dst, src, PAGE_SIZE);
+
+		hyp_fixmap_unmap();
+		src += PAGE_SIZE;
+		phys += PAGE_SIZE;
+	}
+
+	return 0;
+}
+
+void pkvm_clear_pvmfw_pages(void)
+{
+	void *addr = hyp_phys_to_virt(pvmfw_base);
+
+	memset(addr, 0, pvmfw_size);
+	kvm_flush_dcache_to_poc(addr, pvmfw_size);
+}
+
+/*
+ * This function sets the registers on the vcpu to their architecturally defined
+ * reset values.
+ *
+ * Note: Can only be called by the vcpu on itself, after it has been turned on.
+ */
+void pkvm_reset_vcpu(struct kvm_vcpu *vcpu)
+{
+	struct vcpu_reset_state *reset_state = &vcpu->arch.reset_state;
+	struct kvm_shadow_vm *vm = vcpu->arch.pkvm.shadow_vm;
+
+	WARN_ON(!reset_state->reset);
+
+	init_ptrauth(vcpu);
+
+	/* Reset core registers */
+	memset(vcpu_gp_regs(vcpu), 0, sizeof(*vcpu_gp_regs(vcpu)));
+	memset(&vcpu->arch.ctxt.fp_regs, 0, sizeof(vcpu->arch.ctxt.fp_regs));
+	vcpu_gp_regs(vcpu)->pstate = VCPU_RESET_PSTATE_EL1;
+
+	/* Reset system registers */
+	kvm_reset_pvm_sys_regs(vcpu);
+
+	/* Propagate initiator's endianness, after kvm_reset_pvm_sys_regs. */
+	if (reset_state->be)
+		kvm_vcpu_set_be(vcpu);
+
+	if (vm->pvmfw_entry_vcpu == vcpu) {
+		struct kvm_vcpu *host_vcpu = vcpu->arch.pkvm.host_vcpu;
+		u64 entry = vm->arch.pkvm.pvmfw_load_addr;
+		int i;
+
+		/* X0 - X14 provided by the VMM (preserved) */
+		for (i = 0; i <= 14; ++i)
+			vcpu_set_reg(vcpu, i, vcpu_get_reg(host_vcpu, i));
+
+		/* X15: Boot protocol version */
+		vcpu_set_reg(vcpu, 15, 0);
+
+		/* PC: IPA of pvmfw base */
+		*vcpu_pc(vcpu) = entry;
+
+		vm->pvmfw_entry_vcpu = NULL;
+
+		/* Auto enroll MMIO guard */
+		set_bit(KVM_ARCH_FLAG_MMIO_GUARD,
+			&vcpu->arch.pkvm.shadow_vm->arch.flags);
+	} else {
+		*vcpu_pc(vcpu) = reset_state->pc;
+		vcpu_set_reg(vcpu, 0, reset_state->r0);
+	}
+
+	reset_state->reset = false;
+
+	vcpu->arch.pkvm.exit_code = 0;
+
+	WARN_ON(vcpu->arch.pkvm.power_state != PSCI_0_2_AFFINITY_LEVEL_ON_PENDING);
+	WRITE_ONCE(vcpu->arch.power_off, false);
+	WRITE_ONCE(vcpu->arch.pkvm.power_state, PSCI_0_2_AFFINITY_LEVEL_ON);
+}
+
+struct kvm_vcpu *pvm_mpidr_to_vcpu(struct kvm_shadow_vm *vm, unsigned long mpidr)
+{
+	struct kvm_vcpu *vcpu;
+	int i;
+
+	mpidr &= MPIDR_HWID_BITMASK;
+
+	for (i = 0; i < READ_ONCE(vm->nr_vcpus); i++) {
+		vcpu = vm->vcpus[i];
+
+		if (mpidr == kvm_vcpu_get_mpidr_aff(vcpu))
+			return vcpu;
+	}
+
+	return NULL;
+}
+
+/*
+ * Returns true if the hypervisor handled PSCI call, and control should go back
+ * to the guest, or false if the host needs to do some additional work (i.e.,
+ * wake up the vcpu).
+ */
+static bool pvm_psci_vcpu_on(struct kvm_vcpu *source_vcpu)
+{
+	struct kvm_shadow_vm *vm = source_vcpu->arch.pkvm.shadow_vm;
+	struct kvm_vcpu *vcpu;
+	struct vcpu_reset_state *reset_state;
+	unsigned long cpu_id;
+	unsigned long hvc_ret_val;
+	int power_state;
+
+	cpu_id = smccc_get_arg1(source_vcpu);
+	if (!kvm_psci_valid_affinity(source_vcpu, cpu_id)) {
+		hvc_ret_val = PSCI_RET_INVALID_PARAMS;
+		goto error;
+	}
+
+	vcpu = pvm_mpidr_to_vcpu(vm, cpu_id);
+
+	/* Make sure the caller requested a valid vcpu. */
+	if (!vcpu) {
+		hvc_ret_val = PSCI_RET_INVALID_PARAMS;
+		goto error;
+	}
+
+	/*
+	 * Make sure the requested vcpu is not on to begin with.
+	 * Atomic to avoid race between vcpus trying to power on the same vcpu.
+	 */
+	power_state = cmpxchg(&vcpu->arch.pkvm.power_state,
+		PSCI_0_2_AFFINITY_LEVEL_OFF,
+		PSCI_0_2_AFFINITY_LEVEL_ON_PENDING);
+	switch (power_state) {
+	case PSCI_0_2_AFFINITY_LEVEL_ON_PENDING:
+		hvc_ret_val = PSCI_RET_ON_PENDING;
+		goto error;
+	case PSCI_0_2_AFFINITY_LEVEL_ON:
+		hvc_ret_val = PSCI_RET_ALREADY_ON;
+		goto error;
+	case PSCI_0_2_AFFINITY_LEVEL_OFF:
+		break;
+	default:
+		hvc_ret_val = PSCI_RET_INTERNAL_FAILURE;
+		goto error;
+	}
+
+	reset_state = &vcpu->arch.reset_state;
+
+	reset_state->pc = smccc_get_arg2(source_vcpu);
+	reset_state->r0 = smccc_get_arg3(source_vcpu);
+
+	/* Propagate caller endianness */
+	reset_state->be = kvm_vcpu_is_be(source_vcpu);
+
+	reset_state->reset = true;
+
+	/*
+	 * Return to the host, which should make the KVM_REQ_VCPU_RESET request
+	 * as well as kvm_vcpu_wake_up() to schedule the vcpu.
+	 */
+	return false;
+
+error:
+	/* If there's an error go back straight to the guest. */
+	smccc_set_retval(source_vcpu, hvc_ret_val, 0, 0, 0);
+	return true;
+}
+
+static bool pvm_psci_vcpu_affinity_info(struct kvm_vcpu *vcpu)
+{
+	int i, matching_cpus = 0;
+	unsigned long mpidr;
+	unsigned long target_affinity;
+	unsigned long target_affinity_mask;
+	unsigned long lowest_affinity_level;
+	struct kvm_shadow_vm *vm = vcpu->arch.pkvm.shadow_vm;
+	struct kvm_vcpu *tmp;
+	unsigned long hvc_ret_val;
+
+	target_affinity = smccc_get_arg1(vcpu);
+	lowest_affinity_level = smccc_get_arg2(vcpu);
+
+	if (!kvm_psci_valid_affinity(vcpu, target_affinity)) {
+		hvc_ret_val = PSCI_RET_INVALID_PARAMS;
+		goto done;
+	}
+
+	/* Determine target affinity mask */
+	target_affinity_mask = psci_affinity_mask(lowest_affinity_level);
+	if (!target_affinity_mask) {
+		hvc_ret_val = PSCI_RET_INVALID_PARAMS;
+		goto done;
+	}
+
+	/* Ignore other bits of target affinity */
+	target_affinity &= target_affinity_mask;
+
+	hvc_ret_val = PSCI_0_2_AFFINITY_LEVEL_OFF;
+
+	/*
+	 * If at least one vcpu matching target affinity is ON then return ON,
+	 * then if at least one is PENDING_ON then return PENDING_ON.
+	 * Otherwise, return OFF.
+	 */
+	for (i = 0; i < READ_ONCE(vm->nr_vcpus); i++) {
+		tmp = vm->vcpus[i];
+		mpidr = kvm_vcpu_get_mpidr_aff(tmp);
+
+		if ((mpidr & target_affinity_mask) == target_affinity) {
+			int power_state;
+
+			matching_cpus++;
+			power_state = READ_ONCE(tmp->arch.pkvm.power_state);
+			switch (power_state) {
+			case PSCI_0_2_AFFINITY_LEVEL_ON_PENDING:
+				hvc_ret_val = PSCI_0_2_AFFINITY_LEVEL_ON_PENDING;
+				break;
+			case PSCI_0_2_AFFINITY_LEVEL_ON:
+				hvc_ret_val = PSCI_0_2_AFFINITY_LEVEL_ON;
+				goto done;
+			case PSCI_0_2_AFFINITY_LEVEL_OFF:
+				break;
+			default:
+				hvc_ret_val = PSCI_RET_INTERNAL_FAILURE;
+				goto done;
+			}
+		}
+	}
+
+	if (!matching_cpus)
+		hvc_ret_val = PSCI_RET_INVALID_PARAMS;
+
+done:
+	/* Nothing to be handled by the host. Go back to the guest. */
+	smccc_set_retval(vcpu, hvc_ret_val, 0, 0, 0);
+	return true;
+}
+
+/*
+ * Returns true if the hypervisor has handled the PSCI call, and control should
+ * go back to the guest, or false if the host needs to do some additional work
+ * (e.g., turn off and update vcpu scheduling status).
+ */
+static bool pvm_psci_vcpu_off(struct kvm_vcpu *vcpu)
+{
+	WARN_ON(vcpu->arch.power_off);
+	WARN_ON(vcpu->arch.pkvm.power_state != PSCI_0_2_AFFINITY_LEVEL_ON);
+
+	WRITE_ONCE(vcpu->arch.power_off, true);
+	WRITE_ONCE(vcpu->arch.pkvm.power_state, PSCI_0_2_AFFINITY_LEVEL_OFF);
+
+	/* Return to the host so that it can finish powering off the vcpu. */
+	return false;
+}
+
+static bool pvm_psci_version(struct kvm_vcpu *vcpu)
+{
+	/* Nothing to be handled by the host. Go back to the guest. */
+	smccc_set_retval(vcpu, KVM_ARM_PSCI_1_1, 0, 0, 0);
+	return true;
+}
+
+static bool pvm_psci_not_supported(struct kvm_vcpu *vcpu)
+{
+	/* Nothing to be handled by the host. Go back to the guest. */
+	smccc_set_retval(vcpu, PSCI_RET_NOT_SUPPORTED, 0, 0, 0);
+	return true;
+}
+
+static bool pvm_psci_features(struct kvm_vcpu *vcpu)
+{
+	u32 feature = smccc_get_arg1(vcpu);
+	unsigned long val;
+
+	switch (feature) {
+	case PSCI_0_2_FN_PSCI_VERSION:
+	case PSCI_0_2_FN_CPU_SUSPEND:
+	case PSCI_0_2_FN64_CPU_SUSPEND:
+	case PSCI_0_2_FN_CPU_OFF:
+	case PSCI_0_2_FN_CPU_ON:
+	case PSCI_0_2_FN64_CPU_ON:
+	case PSCI_0_2_FN_AFFINITY_INFO:
+	case PSCI_0_2_FN64_AFFINITY_INFO:
+	case PSCI_0_2_FN_SYSTEM_OFF:
+	case PSCI_0_2_FN_SYSTEM_RESET:
+	case PSCI_1_0_FN_PSCI_FEATURES:
+	case PSCI_1_1_FN_SYSTEM_RESET2:
+	case PSCI_1_1_FN64_SYSTEM_RESET2:
+	case ARM_SMCCC_VERSION_FUNC_ID:
+		val = PSCI_RET_SUCCESS;
+		break;
+	default:
+		val = PSCI_RET_NOT_SUPPORTED;
+		break;
+	}
+
+	/* Nothing to be handled by the host. Go back to the guest. */
+	smccc_set_retval(vcpu, val, 0, 0, 0);
+	return true;
+}
+
+static bool pkvm_handle_psci(struct kvm_vcpu *vcpu)
+{
+	u32 psci_fn = smccc_get_function(vcpu);
+
+	switch (psci_fn) {
+	case PSCI_0_2_FN_CPU_ON:
+		kvm_psci_narrow_to_32bit(vcpu);
+		fallthrough;
+	case PSCI_0_2_FN64_CPU_ON:
+		return pvm_psci_vcpu_on(vcpu);
+	case PSCI_0_2_FN_CPU_OFF:
+		return pvm_psci_vcpu_off(vcpu);
+	case PSCI_0_2_FN_AFFINITY_INFO:
+		kvm_psci_narrow_to_32bit(vcpu);
+		fallthrough;
+	case PSCI_0_2_FN64_AFFINITY_INFO:
+		return pvm_psci_vcpu_affinity_info(vcpu);
+	case PSCI_0_2_FN_PSCI_VERSION:
+		return pvm_psci_version(vcpu);
+	case PSCI_1_0_FN_PSCI_FEATURES:
+		return pvm_psci_features(vcpu);
+	case PSCI_0_2_FN_SYSTEM_RESET:
+	case PSCI_0_2_FN_CPU_SUSPEND:
+	case PSCI_0_2_FN64_CPU_SUSPEND:
+	case PSCI_0_2_FN_SYSTEM_OFF:
+	case PSCI_1_1_FN_SYSTEM_RESET2:
+	case PSCI_1_1_FN64_SYSTEM_RESET2:
+		return false; /* Handled by the host. */
+	default:
+		break;
+	}
+
+	return pvm_psci_not_supported(vcpu);
+}
+
+static u64 __pkvm_memshare_page_req(struct kvm_vcpu *vcpu, u64 ipa)
+{
+	u64 elr;
+
+	/* Fake up a data abort (Level 3 translation fault on write) */
+	vcpu->arch.fault.esr_el2 = (u32)ESR_ELx_EC_DABT_LOW << ESR_ELx_EC_SHIFT |
+				   ESR_ELx_WNR | ESR_ELx_FSC_FAULT |
+				   FIELD_PREP(ESR_ELx_FSC_LEVEL, 3);
+
+	/* Shuffle the IPA around into the HPFAR */
+	vcpu->arch.fault.hpfar_el2 = (ipa >> 8) & HPFAR_MASK;
+
+	/* This is a virtual address. 0's good. Let's go with 0. */
+	vcpu->arch.fault.far_el2 = 0;
+
+	/* Rewind the ELR so we return to the HVC once the IPA is mapped */
+	elr = read_sysreg(elr_el2);
+	elr -=4;
+	write_sysreg(elr, elr_el2);
+
+	return ARM_EXCEPTION_TRAP;
+}
+
+static bool pkvm_memshare_call(struct kvm_vcpu *vcpu, u64 *exit_code)
+{
+	u64 ipa = smccc_get_arg1(vcpu);
+	u64 arg2 = smccc_get_arg2(vcpu);
+	u64 arg3 = smccc_get_arg3(vcpu);
+	int err;
+
+	if (arg2 || arg3)
+		goto out_guest_err;
+
+	err = __pkvm_guest_share_host(vcpu, ipa);
+	switch (err) {
+	case 0:
+		/* Success! Now tell the host. */
+		goto out_host;
+	case -EFAULT:
+		/*
+		 * Convert the exception into a data abort so that the page
+		 * being shared is mapped into the guest next time.
+		 */
+		*exit_code = __pkvm_memshare_page_req(vcpu, ipa);
+		goto out_host;
+	}
+
+out_guest_err:
+	smccc_set_retval(vcpu, SMCCC_RET_INVALID_PARAMETER, 0, 0, 0);
+	return true;
+
+out_host:
+	return false;
+}
+
+static bool pkvm_memunshare_call(struct kvm_vcpu *vcpu)
+{
+	u64 ipa = smccc_get_arg1(vcpu);
+	u64 arg2 = smccc_get_arg2(vcpu);
+	u64 arg3 = smccc_get_arg3(vcpu);
+	int err;
+
+	if (arg2 || arg3)
+		goto out_guest_err;
+
+	err = __pkvm_guest_unshare_host(vcpu, ipa);
+	if (err)
+		goto out_guest_err;
+
+	return false;
+
+out_guest_err:
+	smccc_set_retval(vcpu, SMCCC_RET_INVALID_PARAMETER, 0, 0, 0);
+	return true;
+}
+
+static bool pkvm_install_ioguard_page(struct kvm_vcpu *vcpu, u64 *exit_code)
+{
+	u64 retval = SMCCC_RET_SUCCESS;
+	u64 ipa = smccc_get_arg1(vcpu);
+	int ret;
+
+	ret = __pkvm_install_ioguard_page(vcpu, ipa);
+	if (ret == -ENOMEM) {
+		/*
+		 * We ran out of memcache, let's ask for more. Cancel
+		 * the effects of the HVC that took us here, and
+		 * forward the hypercall to the host for page donation
+		 * purposes.
+		 */
+		write_sysreg_el2(read_sysreg_el2(SYS_ELR) - 4, SYS_ELR);
+		return false;
+	}
+
+	if (ret)
+		retval = SMCCC_RET_INVALID_PARAMETER;
+
+	smccc_set_retval(vcpu, retval, 0, 0, 0);
+	return true;
+}
+
+bool smccc_trng_available;
+
+static bool pkvm_forward_trng(struct kvm_vcpu *vcpu)
+{
+	u32 fn = smccc_get_function(vcpu);
+	struct arm_smccc_res res;
+	unsigned long arg1 = 0;
+
+	/*
+	 * Forward TRNG calls to EL3, as we can't trust the host to handle
+	 * these for us.
+	 */
+	switch (fn) {
+	case ARM_SMCCC_TRNG_FEATURES:
+	case ARM_SMCCC_TRNG_RND32:
+	case ARM_SMCCC_TRNG_RND64:
+		arg1 = smccc_get_arg1(vcpu);
+		fallthrough;
+	case ARM_SMCCC_TRNG_VERSION:
+	case ARM_SMCCC_TRNG_GET_UUID:
+		arm_smccc_1_1_smc(fn, arg1, &res);
+		smccc_set_retval(vcpu, res.a0, res.a1, res.a2, res.a3);
+		memzero_explicit(&res, sizeof(res));
+		break;
+	}
+
+	return true;
+}
+
+/*
+ * Handler for protected VM HVC calls.
+ *
+ * Returns true if the hypervisor has handled the exit, and control should go
+ * back to the guest, or false if it hasn't.
+ */
+bool kvm_handle_pvm_hvc64(struct kvm_vcpu *vcpu, u64 *exit_code)
+{
+	u32 fn = smccc_get_function(vcpu);
+	u64 val[4] = { SMCCC_RET_NOT_SUPPORTED };
+
+	switch (fn) {
+	case ARM_SMCCC_VERSION_FUNC_ID:
+		/* Nothing to be handled by the host. Go back to the guest. */
+		val[0] = ARM_SMCCC_VERSION_1_1;
+		break;
+	case ARM_SMCCC_VENDOR_HYP_CALL_UID_FUNC_ID:
+		val[0] = ARM_SMCCC_VENDOR_HYP_UID_KVM_REG_0;
+		val[1] = ARM_SMCCC_VENDOR_HYP_UID_KVM_REG_1;
+		val[2] = ARM_SMCCC_VENDOR_HYP_UID_KVM_REG_2;
+		val[3] = ARM_SMCCC_VENDOR_HYP_UID_KVM_REG_3;
+		break;
+	case ARM_SMCCC_VENDOR_HYP_KVM_FEATURES_FUNC_ID:
+		val[0] = BIT(ARM_SMCCC_KVM_FUNC_FEATURES);
+		val[0] |= BIT(ARM_SMCCC_KVM_FUNC_HYP_MEMINFO);
+		val[0] |= BIT(ARM_SMCCC_KVM_FUNC_MEM_SHARE);
+		val[0] |= BIT(ARM_SMCCC_KVM_FUNC_MEM_UNSHARE);
+		val[0] |= BIT(ARM_SMCCC_KVM_FUNC_MMIO_GUARD_INFO);
+		val[0] |= BIT(ARM_SMCCC_KVM_FUNC_MMIO_GUARD_ENROLL);
+		val[0] |= BIT(ARM_SMCCC_KVM_FUNC_MMIO_GUARD_MAP);
+		val[0] |= BIT(ARM_SMCCC_KVM_FUNC_MMIO_GUARD_UNMAP);
+		break;
+	case ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_ENROLL_FUNC_ID:
+		set_bit(KVM_ARCH_FLAG_MMIO_GUARD, &vcpu->arch.pkvm.shadow_vm->arch.flags);
+		val[0] = SMCCC_RET_SUCCESS;
+		break;
+	case ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_MAP_FUNC_ID:
+		return pkvm_install_ioguard_page(vcpu, exit_code);
+	case ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_UNMAP_FUNC_ID:
+		if (__pkvm_remove_ioguard_page(vcpu, vcpu_get_reg(vcpu, 1)))
+			val[0] = SMCCC_RET_INVALID_PARAMETER;
+		else
+			val[0] = SMCCC_RET_SUCCESS;
+		break;
+	case ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_INFO_FUNC_ID:
+	case ARM_SMCCC_VENDOR_HYP_KVM_HYP_MEMINFO_FUNC_ID:
+		if (smccc_get_arg1(vcpu) ||
+		    smccc_get_arg2(vcpu) ||
+		    smccc_get_arg3(vcpu)) {
+			val[0] = SMCCC_RET_INVALID_PARAMETER;
+		} else {
+			val[0] = PAGE_SIZE;
+		}
+		break;
+	case ARM_SMCCC_VENDOR_HYP_KVM_MEM_SHARE_FUNC_ID:
+		return pkvm_memshare_call(vcpu, exit_code);
+	case ARM_SMCCC_VENDOR_HYP_KVM_MEM_UNSHARE_FUNC_ID:
+		return pkvm_memunshare_call(vcpu);
+	case ARM_SMCCC_TRNG_VERSION ... ARM_SMCCC_TRNG_RND32:
+	case ARM_SMCCC_TRNG_RND64:
+		if (smccc_trng_available)
+			return pkvm_forward_trng(vcpu);
+		break;
+	default:
+		return pkvm_handle_psci(vcpu);
+	}
+
+	smccc_set_retval(vcpu, val[0], val[1], val[2], val[3]);
+	return true;
+}
diff --git a/arch/arm64/kvm/hyp/nvhe/psci-relay.c b/arch/arm64/kvm/hyp/nvhe/psci-relay.c
index 0850878..81aa189 100644
--- a/arch/arm64/kvm/hyp/nvhe/psci-relay.c
+++ b/arch/arm64/kvm/hyp/nvhe/psci-relay.c
@@ -12,6 +12,7 @@
 #include <uapi/linux/psci.h>
 
 #include <nvhe/memory.h>
+#include <nvhe/pkvm.h>
 #include <nvhe/trap_handler.h>
 
 void kvm_hyp_cpu_entry(unsigned long r0);
@@ -221,6 +222,44 @@
 	__host_enter(host_ctxt);
 }
 
+static DEFINE_HYP_SPINLOCK(mem_protect_lock);
+
+static u64 psci_mem_protect(s64 offset)
+{
+	static u64 cnt;
+	u64 new = cnt + offset;
+
+	hyp_assert_lock_held(&mem_protect_lock);
+
+	if (!offset || kvm_host_psci_config.version < PSCI_VERSION(1, 1))
+		return cnt;
+
+	if (!cnt || !new)
+		psci_call(PSCI_1_1_FN_MEM_PROTECT, offset < 0 ? 0 : 1, 0, 0);
+
+	cnt = new;
+	return cnt;
+}
+
+static bool psci_mem_protect_active(void)
+{
+	return psci_mem_protect(0);
+}
+
+void psci_mem_protect_inc(void)
+{
+	hyp_spin_lock(&mem_protect_lock);
+	psci_mem_protect(1);
+	hyp_spin_unlock(&mem_protect_lock);
+}
+
+void psci_mem_protect_dec(void)
+{
+	hyp_spin_lock(&mem_protect_lock);
+	psci_mem_protect(-1);
+	hyp_spin_unlock(&mem_protect_lock);
+}
+
 static unsigned long psci_0_1_handler(u64 func_id, struct kvm_cpu_context *host_ctxt)
 {
 	if (is_psci_0_1(cpu_off, func_id) || is_psci_0_1(migrate, func_id))
@@ -249,6 +288,9 @@
 	 */
 	case PSCI_0_2_FN_SYSTEM_OFF:
 	case PSCI_0_2_FN_SYSTEM_RESET:
+		pkvm_clear_pvmfw_pages();
+		/* Avoid racing with a MEM_PROTECT call. */
+		hyp_spin_lock(&mem_protect_lock);
 		return psci_forward(host_ctxt);
 	case PSCI_0_2_FN64_CPU_SUSPEND:
 		return psci_cpu_suspend(func_id, host_ctxt);
@@ -262,9 +304,14 @@
 static unsigned long psci_1_0_handler(u64 func_id, struct kvm_cpu_context *host_ctxt)
 {
 	switch (func_id) {
+	case PSCI_1_1_FN64_SYSTEM_RESET2:
+		pkvm_clear_pvmfw_pages();
+		hyp_spin_lock(&mem_protect_lock);
+		if (psci_mem_protect_active())
+			cpu_reg(host_ctxt, 0) = PSCI_0_2_FN_SYSTEM_RESET;
+		fallthrough;
 	case PSCI_1_0_FN_PSCI_FEATURES:
 	case PSCI_1_0_FN_SET_SUSPEND_MODE:
-	case PSCI_1_1_FN64_SYSTEM_RESET2:
 		return psci_forward(host_ctxt);
 	case PSCI_1_0_FN64_SYSTEM_SUSPEND:
 		return psci_system_suspend(func_id, host_ctxt);
diff --git a/arch/arm64/kvm/hyp/nvhe/setup.c b/arch/arm64/kvm/hyp/nvhe/setup.c
index 58ad9c5b..a3d8d41 100644
--- a/arch/arm64/kvm/hyp/nvhe/setup.c
+++ b/arch/arm64/kvm/hyp/nvhe/setup.c
@@ -8,37 +8,50 @@
 #include <asm/kvm_hyp.h>
 #include <asm/kvm_mmu.h>
 #include <asm/kvm_pgtable.h>
+#include <asm/kvm_pkvm.h>
 
 #include <nvhe/early_alloc.h>
+#include <nvhe/ffa.h>
 #include <nvhe/gfp.h>
+#include <nvhe/iommu.h>
 #include <nvhe/memory.h>
 #include <nvhe/mem_protect.h>
 #include <nvhe/mm.h>
+#include <nvhe/pkvm.h>
 #include <nvhe/trap_handler.h>
 
-struct hyp_pool hpool;
 unsigned long hyp_nr_cpus;
 
+phys_addr_t pvmfw_base;
+phys_addr_t pvmfw_size;
+
 #define hyp_percpu_size ((unsigned long)__per_cpu_end - \
 			 (unsigned long)__per_cpu_start)
 
 static void *vmemmap_base;
+static void *shadow_table_base;
 static void *hyp_pgt_base;
 static void *host_s2_pgt_base;
+static void *ffa_proxy_pages;
 static struct kvm_pgtable_mm_ops pkvm_pgtable_mm_ops;
+static struct hyp_pool hpool;
 
 static int divide_memory_pool(void *virt, unsigned long size)
 {
-	unsigned long vstart, vend, nr_pages;
+	unsigned long nr_pages;
 
 	hyp_early_alloc_init(virt, size);
 
-	hyp_vmemmap_range(__hyp_pa(virt), size, &vstart, &vend);
-	nr_pages = (vend - vstart) >> PAGE_SHIFT;
+	nr_pages = hyp_vmemmap_pages(sizeof(struct hyp_page));
 	vmemmap_base = hyp_early_alloc_contig(nr_pages);
 	if (!vmemmap_base)
 		return -ENOMEM;
 
+	nr_pages = hyp_shadow_table_pages(sizeof(struct kvm_shadow_vm));
+	shadow_table_base = hyp_early_alloc_contig(nr_pages);
+	if (!shadow_table_base)
+		return -ENOMEM;
+
 	nr_pages = hyp_s1_pgtable_pages();
 	hyp_pgt_base = hyp_early_alloc_contig(nr_pages);
 	if (!hyp_pgt_base)
@@ -49,6 +62,11 @@
 	if (!host_s2_pgt_base)
 		return -ENOMEM;
 
+	nr_pages = hyp_ffa_proxy_pages();
+	ffa_proxy_pages = hyp_early_alloc_contig(nr_pages);
+	if (!ffa_proxy_pages)
+		return -ENOMEM;
+
 	return 0;
 }
 
@@ -76,7 +94,7 @@
 	if (ret)
 		return ret;
 
-	ret = hyp_back_vmemmap(phys, size, hyp_virt_to_phys(vmemmap_base));
+	ret = hyp_back_vmemmap(hyp_virt_to_phys(vmemmap_base));
 	if (ret)
 		return ret;
 
@@ -84,6 +102,10 @@
 	if (ret)
 		return ret;
 
+	ret = pkvm_create_mappings(__hyp_data_start, __hyp_data_end, PAGE_HYP);
+	if (ret)
+		return ret;
+
 	ret = pkvm_create_mappings(__hyp_rodata_start, __hyp_rodata_end, PAGE_HYP_RO);
 	if (ret)
 		return ret;
@@ -111,20 +133,23 @@
 	}
 
 	/*
-	 * Map the host's .bss and .rodata sections RO in the hypervisor, but
-	 * transfer the ownership from the host to the hypervisor itself to
-	 * make sure it can't be donated or shared with another entity.
+	 * Map the host sections RO in the hypervisor, but transfer the
+	 * ownership from the host to the hypervisor itself to make sure they
+	 * can't be donated or shared with another entity.
 	 *
 	 * The ownership transition requires matching changes in the host
 	 * stage-2. This will be done later (see finalize_host_mappings()) once
 	 * the hyp_vmemmap is addressable.
 	 */
 	prot = pkvm_mkstate(PAGE_HYP_RO, PKVM_PAGE_SHARED_OWNED);
-	ret = pkvm_create_mappings(__start_rodata, __end_rodata, prot);
+	ret = pkvm_create_mappings(&kvm_vgic_global_state, &kvm_vgic_global_state + 1, prot);
 	if (ret)
 		return ret;
 
-	ret = pkvm_create_mappings(__hyp_bss_end, __bss_stop, prot);
+	start = hyp_phys_to_virt(pvmfw_base);
+	end = start + pvmfw_size;
+	prot = pkvm_mkstate(PAGE_HYP, PKVM_PAGE_OWNED);
+	ret = pkvm_create_mappings(start, end, prot);
 	if (ret)
 		return ret;
 
@@ -159,10 +184,10 @@
 	hyp_put_page(&hpool, addr);
 }
 
-static int finalize_host_mappings_walker(u64 addr, u64 end, u32 level,
-					 kvm_pte_t *ptep,
-					 enum kvm_pgtable_walk_flags flag,
-					 void * const arg)
+static int fix_host_ownership_walker(u64 addr, u64 end, u32 level,
+				     kvm_pte_t *ptep,
+				     enum kvm_pgtable_walk_flags flag,
+				     void * const arg)
 {
 	enum kvm_pgtable_prot prot;
 	enum pkvm_page_state state;
@@ -197,13 +222,32 @@
 		return -EINVAL;
 	}
 
-	return host_stage2_idmap_locked(phys, PAGE_SIZE, prot);
+	return host_stage2_idmap_locked(phys, PAGE_SIZE, prot, false);
 }
 
-static int finalize_host_mappings(void)
+static int fix_hyp_pgtable_refcnt_walker(u64 addr, u64 end, u32 level,
+					 kvm_pte_t *ptep,
+					 enum kvm_pgtable_walk_flags flag,
+					 void * const arg)
+{
+	struct kvm_pgtable_mm_ops *mm_ops = arg;
+	kvm_pte_t pte = *ptep;
+
+	/*
+	 * Fix-up the refcount for the page-table pages as the early allocator
+	 * was unable to access the hyp_vmemmap and so the buddy allocator has
+	 * initialised the refcount to '1'.
+	 */
+	if (kvm_pte_valid(pte))
+		mm_ops->get_page(ptep);
+
+	return 0;
+}
+
+static int fix_host_ownership(void)
 {
 	struct kvm_pgtable_walker walker = {
-		.cb	= finalize_host_mappings_walker,
+		.cb	= fix_host_ownership_walker,
 		.flags	= KVM_PGTABLE_WALK_LEAF,
 	};
 	int i, ret;
@@ -220,6 +264,18 @@
 	return 0;
 }
 
+static int fix_hyp_pgtable_refcnt(void)
+{
+	struct kvm_pgtable_walker walker = {
+		.cb	= fix_hyp_pgtable_refcnt_walker,
+		.flags	= KVM_PGTABLE_WALK_LEAF | KVM_PGTABLE_WALK_TABLE_POST,
+		.arg	= pkvm_pgtable.mm_ops,
+	};
+
+	return kvm_pgtable_walk(&pkvm_pgtable, 0, BIT(pkvm_pgtable.ia_bits),
+				&walker);
+}
+
 void __noreturn __pkvm_init_finalise(void)
 {
 	struct kvm_host_data *host_data = this_cpu_ptr(&kvm_host_data);
@@ -239,19 +295,33 @@
 	if (ret)
 		goto out;
 
-	ret = finalize_host_mappings();
-	if (ret)
-		goto out;
-
 	pkvm_pgtable_mm_ops = (struct kvm_pgtable_mm_ops) {
 		.zalloc_page = hyp_zalloc_hyp_page,
 		.phys_to_virt = hyp_phys_to_virt,
 		.virt_to_phys = hyp_virt_to_phys,
 		.get_page = hpool_get_page,
 		.put_page = hpool_put_page,
+		.page_count = hyp_page_count,
 	};
 	pkvm_pgtable.mm_ops = &pkvm_pgtable_mm_ops;
 
+	ret = fix_host_ownership();
+	if (ret)
+		goto out;
+
+	ret = fix_hyp_pgtable_refcnt();
+	if (ret)
+		goto out;
+
+	ret = hyp_create_pcpu_fixmap();
+	if (ret)
+		goto out;
+
+	ret = hyp_ffa_init(ffa_proxy_pages);
+	if (ret)
+		goto out;
+
+	hyp_shadow_table_init(shadow_table_base);
 out:
 	/*
 	 * We tail-called to here from handle___pkvm_init() and will not return,
@@ -270,6 +340,8 @@
 	void (*fn)(phys_addr_t params_pa, void *finalize_fn_va);
 	int ret;
 
+	BUG_ON(kvm_check_pvm_sysreg_table());
+
 	if (!PAGE_ALIGNED(phys) || !PAGE_ALIGNED(size))
 		return -EINVAL;
 
diff --git a/arch/arm64/kvm/hyp/nvhe/switch.c b/arch/arm64/kvm/hyp/nvhe/switch.c
index 4db5409..7637334 100644
--- a/arch/arm64/kvm/hyp/nvhe/switch.c
+++ b/arch/arm64/kvm/hyp/nvhe/switch.c
@@ -25,9 +25,9 @@
 #include <asm/fpsimd.h>
 #include <asm/debug-monitors.h>
 #include <asm/processor.h>
-#include <asm/thread_info.h>
 
 #include <nvhe/mem_protect.h>
+#include <nvhe/pkvm.h>
 
 /* Non-VHE specific context */
 DEFINE_PER_CPU(struct kvm_host_data, kvm_host_data);
@@ -120,7 +120,7 @@
 	}
 }
 
-/**
+/*
  * Disable host events, enable guest events
  */
 static bool __pmu_switch_to_guest(struct kvm_cpu_context *host_ctxt)
@@ -140,7 +140,7 @@
 	return (pmu->events_host || pmu->events_guest);
 }
 
-/**
+/*
  * Disable guest events, enable host events
  */
 static void __pmu_switch_to_host(struct kvm_cpu_context *host_ctxt)
@@ -158,6 +158,99 @@
 		write_sysreg(pmu->events_host, pmcntenset_el0);
 }
 
+/*
+ * Handler for protected VM MSR, MRS or System instruction execution in AArch64.
+ *
+ * Returns true if the hypervisor has handled the exit, and control should go
+ * back to the guest, or false if it hasn't.
+ */
+static bool kvm_handle_pvm_sys64(struct kvm_vcpu *vcpu, u64 *exit_code)
+{
+	/*
+	 * Make sure we handle the exit for workarounds and ptrauth
+	 * before the pKVM handling, as the latter could decide to
+	 * UNDEF.
+	 */
+	return (kvm_hyp_handle_sysreg(vcpu, exit_code) ||
+		kvm_handle_pvm_sysreg(vcpu, exit_code));
+}
+
+/*
+ * Handler for protected floating-point and Advanced SIMD accesses.
+ *
+ * Returns true if the hypervisor has handled the exit, and control should go
+ * back to the guest, or false if it hasn't.
+ */
+static bool kvm_handle_pvm_fpsimd(struct kvm_vcpu *vcpu, u64 *exit_code)
+{
+	/* Linux guests assume support for floating-point and Advanced SIMD. */
+	BUILD_BUG_ON(!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64PFR0_FP),
+				PVM_ID_AA64PFR0_ALLOW));
+	BUILD_BUG_ON(!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64PFR0_ASIMD),
+				PVM_ID_AA64PFR0_ALLOW));
+
+	return kvm_hyp_handle_fpsimd(vcpu, exit_code);
+}
+
+static const exit_handler_fn hyp_exit_handlers[] = {
+	[0 ... ESR_ELx_EC_MAX]		= NULL,
+	[ESR_ELx_EC_CP15_32]		= kvm_hyp_handle_cp15_32,
+	[ESR_ELx_EC_SYS64]		= kvm_hyp_handle_sysreg,
+	[ESR_ELx_EC_SVE]		= kvm_hyp_handle_fpsimd,
+	[ESR_ELx_EC_FP_ASIMD]		= kvm_hyp_handle_fpsimd,
+	[ESR_ELx_EC_IABT_LOW]		= kvm_hyp_handle_iabt_low,
+	[ESR_ELx_EC_DABT_LOW]		= kvm_hyp_handle_dabt_low,
+	[ESR_ELx_EC_WATCHPT_LOW]	= kvm_hyp_handle_watchpt_low,
+	[ESR_ELx_EC_PAC]		= kvm_hyp_handle_ptrauth,
+};
+
+static const exit_handler_fn pvm_exit_handlers[] = {
+	[0 ... ESR_ELx_EC_MAX]		= NULL,
+	[ESR_ELx_EC_HVC64]		= kvm_handle_pvm_hvc64,
+	[ESR_ELx_EC_SYS64]		= kvm_handle_pvm_sys64,
+	[ESR_ELx_EC_SVE]		= kvm_handle_pvm_restricted,
+	[ESR_ELx_EC_FP_ASIMD]		= kvm_handle_pvm_fpsimd,
+	[ESR_ELx_EC_IABT_LOW]		= kvm_hyp_handle_iabt_low,
+	[ESR_ELx_EC_DABT_LOW]		= kvm_hyp_handle_dabt_low,
+	[ESR_ELx_EC_WATCHPT_LOW]	= kvm_hyp_handle_watchpt_low,
+	[ESR_ELx_EC_PAC]		= kvm_hyp_handle_ptrauth,
+};
+
+static const exit_handler_fn *kvm_get_exit_handler_array(struct kvm_vcpu *vcpu)
+{
+	if (unlikely(vcpu_is_protected(vcpu)))
+		return pvm_exit_handlers;
+
+	return hyp_exit_handlers;
+}
+
+/*
+ * Some guests (e.g., protected VMs) are not be allowed to run in AArch32.
+ * The ARMv8 architecture does not give the hypervisor a mechanism to prevent a
+ * guest from dropping to AArch32 EL0 if implemented by the CPU. If the
+ * hypervisor spots a guest in such a state ensure it is handled, and don't
+ * trust the host to spot or fix it.  The check below is based on the one in
+ * kvm_arch_vcpu_ioctl_run().
+ *
+ * Returns false if the guest ran in AArch32 when it shouldn't have, and
+ * thus should exit to the host, or true if a the guest run loop can continue.
+ */
+static void early_exit_filter(struct kvm_vcpu *vcpu, u64 *exit_code)
+{
+	if (unlikely(vcpu_is_protected(vcpu) && vcpu_mode_is_32bit(vcpu))) {
+		/*
+		 * As we have caught the guest red-handed, decide that it isn't
+		 * fit for purpose anymore by making the vcpu invalid. The VMM
+		 * can try and fix it by re-initializing the vcpu with
+		 * KVM_ARM_VCPU_INIT, however, this is likely not possible for
+		 * protected VMs.
+		 */
+		vcpu->arch.target = -1;
+		*exit_code &= BIT(ARM_EXIT_WITH_SERROR_BIT);
+		*exit_code |= ARM_EXCEPTION_IL;
+	}
+}
+
 /* Switch to the guest for legacy non-VHE systems */
 int __kvm_vcpu_run(struct kvm_vcpu *vcpu)
 {
diff --git a/arch/arm64/kvm/hyp/nvhe/sys_regs.c b/arch/arm64/kvm/hyp/nvhe/sys_regs.c
new file mode 100644
index 0000000..a7304c7
--- /dev/null
+++ b/arch/arm64/kvm/hyp/nvhe/sys_regs.c
@@ -0,0 +1,601 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (C) 2021 Google LLC
+ * Author: Fuad Tabba <tabba@google.com>
+ */
+
+#include <linux/irqchip/arm-gic-v3.h>
+
+#include <asm/kvm_asm.h>
+#include <asm/kvm_mmu.h>
+#include <asm/kvm_pkvm.h>
+
+#include <hyp/adjust_pc.h>
+#include <nvhe/pkvm.h>
+
+#include "../../sys_regs.h"
+
+/*
+ * Copies of the host's CPU features registers holding sanitized values at hyp.
+ */
+u64 id_aa64pfr0_el1_sys_val;
+u64 id_aa64pfr1_el1_sys_val;
+u64 id_aa64isar0_el1_sys_val;
+u64 id_aa64isar1_el1_sys_val;
+u64 id_aa64mmfr0_el1_sys_val;
+u64 id_aa64mmfr1_el1_sys_val;
+u64 id_aa64mmfr2_el1_sys_val;
+
+/*
+ * Inject an unknown/undefined exception to an AArch64 guest while most of its
+ * sysregs are live.
+ */
+static void inject_undef64(struct kvm_vcpu *vcpu)
+{
+	u32 esr = (ESR_ELx_EC_UNKNOWN << ESR_ELx_EC_SHIFT);
+
+	*vcpu_pc(vcpu) = read_sysreg_el2(SYS_ELR);
+	*vcpu_cpsr(vcpu) = read_sysreg_el2(SYS_SPSR);
+
+	vcpu->arch.flags |= (KVM_ARM64_EXCEPT_AA64_EL1 |
+			     KVM_ARM64_EXCEPT_AA64_ELx_SYNC |
+			     KVM_ARM64_PENDING_EXCEPTION);
+
+	__kvm_adjust_pc(vcpu);
+
+	write_sysreg_el1(esr, SYS_ESR);
+	write_sysreg_el1(read_sysreg_el2(SYS_ELR), SYS_ELR);
+	write_sysreg_el2(*vcpu_pc(vcpu), SYS_ELR);
+	write_sysreg_el2(*vcpu_cpsr(vcpu), SYS_SPSR);
+}
+
+/*
+ * Returns the restricted features values of the feature register based on the
+ * limitations in restrict_fields.
+ * A feature id field value of 0b0000 does not impose any restrictions.
+ * Note: Use only for unsigned feature field values.
+ */
+static u64 get_restricted_features_unsigned(u64 sys_reg_val,
+					    u64 restrict_fields)
+{
+	u64 value = 0UL;
+	u64 mask = GENMASK_ULL(ARM64_FEATURE_FIELD_BITS - 1, 0);
+
+	/*
+	 * According to the Arm Architecture Reference Manual, feature fields
+	 * use increasing values to indicate increases in functionality.
+	 * Iterate over the restricted feature fields and calculate the minimum
+	 * unsigned value between the one supported by the system, and what the
+	 * value is being restricted to.
+	 */
+	while (sys_reg_val && restrict_fields) {
+		value |= min(sys_reg_val & mask, restrict_fields & mask);
+		sys_reg_val &= ~mask;
+		restrict_fields &= ~mask;
+		mask <<= ARM64_FEATURE_FIELD_BITS;
+	}
+
+	return value;
+}
+
+/*
+ * Functions that return the value of feature id registers for protected VMs
+ * based on allowed features, system features, and KVM support.
+ */
+
+static u64 get_pvm_id_aa64pfr0(const struct kvm_vcpu *vcpu)
+{
+	const struct kvm *kvm = (const struct kvm *)kern_hyp_va(vcpu->kvm);
+	u64 set_mask = 0;
+	u64 allow_mask = PVM_ID_AA64PFR0_ALLOW;
+
+	/* SVE not supported for now. */
+	allow_mask &= ~ARM64_FEATURE_MASK(ID_AA64PFR0_SVE);
+
+	set_mask |= get_restricted_features_unsigned(id_aa64pfr0_el1_sys_val,
+		PVM_ID_AA64PFR0_RESTRICT_UNSIGNED);
+
+	/* Spectre and Meltdown mitigation in KVM */
+	set_mask |= FIELD_PREP(ARM64_FEATURE_MASK(ID_AA64PFR0_CSV2),
+			       (u64)kvm->arch.pfr0_csv2);
+	set_mask |= FIELD_PREP(ARM64_FEATURE_MASK(ID_AA64PFR0_CSV3),
+			       (u64)kvm->arch.pfr0_csv3);
+
+	return (id_aa64pfr0_el1_sys_val & allow_mask) | set_mask;
+}
+
+static u64 get_pvm_id_aa64pfr1(const struct kvm_vcpu *vcpu)
+{
+	const struct kvm *kvm = (const struct kvm *)kern_hyp_va(vcpu->kvm);
+	u64 allow_mask = PVM_ID_AA64PFR1_ALLOW;
+
+	if (!kvm_has_mte(kvm))
+		allow_mask &= ~ARM64_FEATURE_MASK(ID_AA64PFR1_MTE);
+
+	return id_aa64pfr1_el1_sys_val & allow_mask;
+}
+
+static u64 get_pvm_id_aa64zfr0(const struct kvm_vcpu *vcpu)
+{
+	/*
+	 * No support for Scalable Vectors, therefore, hyp has no sanitized
+	 * copy of the feature id register.
+	 */
+	BUILD_BUG_ON(PVM_ID_AA64ZFR0_ALLOW != 0ULL);
+	return 0;
+}
+
+static u64 get_pvm_id_aa64dfr0(const struct kvm_vcpu *vcpu)
+{
+	/*
+	 * No support for debug, including breakpoints, and watchpoints,
+	 * therefore, pKVM has no sanitized copy of the feature id register.
+	 */
+	BUILD_BUG_ON(PVM_ID_AA64DFR0_ALLOW != 0ULL);
+	return 0;
+}
+
+static u64 get_pvm_id_aa64dfr1(const struct kvm_vcpu *vcpu)
+{
+	/*
+	 * No support for debug, therefore, hyp has no sanitized copy of the
+	 * feature id register.
+	 */
+	BUILD_BUG_ON(PVM_ID_AA64DFR1_ALLOW != 0ULL);
+	return 0;
+}
+
+static u64 get_pvm_id_aa64afr0(const struct kvm_vcpu *vcpu)
+{
+	/*
+	 * No support for implementation defined features, therefore, hyp has no
+	 * sanitized copy of the feature id register.
+	 */
+	BUILD_BUG_ON(PVM_ID_AA64AFR0_ALLOW != 0ULL);
+	return 0;
+}
+
+static u64 get_pvm_id_aa64afr1(const struct kvm_vcpu *vcpu)
+{
+	/*
+	 * No support for implementation defined features, therefore, hyp has no
+	 * sanitized copy of the feature id register.
+	 */
+	BUILD_BUG_ON(PVM_ID_AA64AFR1_ALLOW != 0ULL);
+	return 0;
+}
+
+static u64 get_pvm_id_aa64isar0(const struct kvm_vcpu *vcpu)
+{
+	return id_aa64isar0_el1_sys_val & PVM_ID_AA64ISAR0_ALLOW;
+}
+
+static u64 get_pvm_id_aa64isar1(const struct kvm_vcpu *vcpu)
+{
+	u64 allow_mask = PVM_ID_AA64ISAR1_ALLOW;
+
+	if (!vcpu_has_ptrauth(vcpu))
+		allow_mask &= ~(ARM64_FEATURE_MASK(ID_AA64ISAR1_APA) |
+				ARM64_FEATURE_MASK(ID_AA64ISAR1_API) |
+				ARM64_FEATURE_MASK(ID_AA64ISAR1_GPA) |
+				ARM64_FEATURE_MASK(ID_AA64ISAR1_GPI));
+
+	return id_aa64isar1_el1_sys_val & allow_mask;
+}
+
+static u64 get_pvm_id_aa64mmfr0(const struct kvm_vcpu *vcpu)
+{
+	u64 set_mask;
+
+	set_mask = get_restricted_features_unsigned(id_aa64mmfr0_el1_sys_val,
+		PVM_ID_AA64MMFR0_RESTRICT_UNSIGNED);
+
+	return (id_aa64mmfr0_el1_sys_val & PVM_ID_AA64MMFR0_ALLOW) | set_mask;
+}
+
+static u64 get_pvm_id_aa64mmfr1(const struct kvm_vcpu *vcpu)
+{
+	return id_aa64mmfr1_el1_sys_val & PVM_ID_AA64MMFR1_ALLOW;
+}
+
+static u64 get_pvm_id_aa64mmfr2(const struct kvm_vcpu *vcpu)
+{
+	return id_aa64mmfr2_el1_sys_val & PVM_ID_AA64MMFR2_ALLOW;
+}
+
+/* Read a sanitized cpufeature ID register by its encoding */
+u64 pvm_read_id_reg(const struct kvm_vcpu *vcpu, u32 id)
+{
+	switch (id) {
+	case SYS_ID_AA64PFR0_EL1:
+		return get_pvm_id_aa64pfr0(vcpu);
+	case SYS_ID_AA64PFR1_EL1:
+		return get_pvm_id_aa64pfr1(vcpu);
+	case SYS_ID_AA64ZFR0_EL1:
+		return get_pvm_id_aa64zfr0(vcpu);
+	case SYS_ID_AA64DFR0_EL1:
+		return get_pvm_id_aa64dfr0(vcpu);
+	case SYS_ID_AA64DFR1_EL1:
+		return get_pvm_id_aa64dfr1(vcpu);
+	case SYS_ID_AA64AFR0_EL1:
+		return get_pvm_id_aa64afr0(vcpu);
+	case SYS_ID_AA64AFR1_EL1:
+		return get_pvm_id_aa64afr1(vcpu);
+	case SYS_ID_AA64ISAR0_EL1:
+		return get_pvm_id_aa64isar0(vcpu);
+	case SYS_ID_AA64ISAR1_EL1:
+		return get_pvm_id_aa64isar1(vcpu);
+	case SYS_ID_AA64MMFR0_EL1:
+		return get_pvm_id_aa64mmfr0(vcpu);
+	case SYS_ID_AA64MMFR1_EL1:
+		return get_pvm_id_aa64mmfr1(vcpu);
+	case SYS_ID_AA64MMFR2_EL1:
+		return get_pvm_id_aa64mmfr2(vcpu);
+	default:
+		/* Unhandled ID register, RAZ */
+		return 0;
+	}
+}
+
+static u64 read_id_reg(const struct kvm_vcpu *vcpu,
+		       struct sys_reg_desc const *r)
+{
+	return pvm_read_id_reg(vcpu, reg_to_encoding(r));
+}
+
+/* Handler to RAZ/WI sysregs */
+static bool pvm_access_raz_wi(struct kvm_vcpu *vcpu, struct sys_reg_params *p,
+			      const struct sys_reg_desc *r)
+{
+	if (!p->is_write)
+		p->regval = 0;
+
+	return true;
+}
+
+/*
+ * Accessor for AArch32 feature id registers.
+ *
+ * The value of these registers is "unknown" according to the spec if AArch32
+ * isn't supported.
+ */
+static bool pvm_access_id_aarch32(struct kvm_vcpu *vcpu,
+				  struct sys_reg_params *p,
+				  const struct sys_reg_desc *r)
+{
+	if (p->is_write) {
+		inject_undef64(vcpu);
+		return false;
+	}
+
+	/*
+	 * No support for AArch32 guests, therefore, pKVM has no sanitized copy
+	 * of AArch32 feature id registers.
+	 */
+	BUILD_BUG_ON(FIELD_GET(ARM64_FEATURE_MASK(ID_AA64PFR0_EL1),
+		     PVM_ID_AA64PFR0_RESTRICT_UNSIGNED) > ID_AA64PFR0_ELx_64BIT_ONLY);
+
+	return pvm_access_raz_wi(vcpu, p, r);
+}
+
+/*
+ * Accessor for AArch64 feature id registers.
+ *
+ * If access is allowed, set the regval to the protected VM's view of the
+ * register and return true.
+ * Otherwise, inject an undefined exception and return false.
+ */
+static bool pvm_access_id_aarch64(struct kvm_vcpu *vcpu,
+				  struct sys_reg_params *p,
+				  const struct sys_reg_desc *r)
+{
+	if (p->is_write) {
+		inject_undef64(vcpu);
+		return false;
+	}
+
+	p->regval = read_id_reg(vcpu, r);
+	return true;
+}
+
+static bool pvm_gic_read_sre(struct kvm_vcpu *vcpu,
+			     struct sys_reg_params *p,
+			     const struct sys_reg_desc *r)
+{
+	/* pVMs only support GICv3. 'nuf said. */
+	if (!p->is_write)
+		p->regval = ICC_SRE_EL1_DIB | ICC_SRE_EL1_DFB | ICC_SRE_EL1_SRE;
+
+	return true;
+}
+
+/* Mark the specified system register as an AArch32 feature id register. */
+#define AARCH32(REG) { SYS_DESC(REG), .access = pvm_access_id_aarch32 }
+
+/* Mark the specified system register as an AArch64 feature id register. */
+#define AARCH64(REG) { SYS_DESC(REG), .access = pvm_access_id_aarch64 }
+
+/*
+ * sys_reg_desc initialiser for architecturally unallocated cpufeature ID
+ * register with encoding Op0=3, Op1=0, CRn=0, CRm=crm, Op2=op2
+ * (1 <= crm < 8, 0 <= Op2 < 8).
+ */
+#define ID_UNALLOCATED(crm, op2) {			\
+	Op0(3), Op1(0), CRn(0), CRm(crm), Op2(op2),	\
+	.access = pvm_access_id_aarch64,		\
+}
+
+/* Mark the specified system register as Read-As-Zero/Write-Ignored */
+#define RAZ_WI(REG) { SYS_DESC(REG), .access = pvm_access_raz_wi }
+
+/* Mark the specified system register as not being handled in hyp. */
+#define HOST_HANDLED(REG) { SYS_DESC(REG), .access = NULL }
+
+/*
+ * Architected system registers.
+ * Important: Must be sorted ascending by Op0, Op1, CRn, CRm, Op2
+ *
+ * NOTE: Anything not explicitly listed here is *restricted by default*, i.e.,
+ * it will lead to injecting an exception into the guest.
+ */
+static const struct sys_reg_desc pvm_sys_reg_descs[] = {
+	/* Cache maintenance by set/way operations are restricted. */
+
+	/* Debug and Trace Registers are restricted. */
+	RAZ_WI(SYS_DBGBVRn_EL1(0)),
+	RAZ_WI(SYS_DBGBCRn_EL1(0)),
+	RAZ_WI(SYS_DBGWVRn_EL1(0)),
+	RAZ_WI(SYS_DBGWCRn_EL1(0)),
+	RAZ_WI(SYS_MDSCR_EL1),
+	RAZ_WI(SYS_OSLAR_EL1),
+	RAZ_WI(SYS_OSLSR_EL1),
+	RAZ_WI(SYS_OSDLR_EL1),
+
+	/* Group 1 ID registers */
+	RAZ_WI(SYS_REVIDR_EL1),
+
+	/* AArch64 mappings of the AArch32 ID registers */
+	/* CRm=1 */
+	AARCH32(SYS_ID_PFR0_EL1),
+	AARCH32(SYS_ID_PFR1_EL1),
+	AARCH32(SYS_ID_DFR0_EL1),
+	AARCH32(SYS_ID_AFR0_EL1),
+	AARCH32(SYS_ID_MMFR0_EL1),
+	AARCH32(SYS_ID_MMFR1_EL1),
+	AARCH32(SYS_ID_MMFR2_EL1),
+	AARCH32(SYS_ID_MMFR3_EL1),
+
+	/* CRm=2 */
+	AARCH32(SYS_ID_ISAR0_EL1),
+	AARCH32(SYS_ID_ISAR1_EL1),
+	AARCH32(SYS_ID_ISAR2_EL1),
+	AARCH32(SYS_ID_ISAR3_EL1),
+	AARCH32(SYS_ID_ISAR4_EL1),
+	AARCH32(SYS_ID_ISAR5_EL1),
+	AARCH32(SYS_ID_MMFR4_EL1),
+	AARCH32(SYS_ID_ISAR6_EL1),
+
+	/* CRm=3 */
+	AARCH32(SYS_MVFR0_EL1),
+	AARCH32(SYS_MVFR1_EL1),
+	AARCH32(SYS_MVFR2_EL1),
+	ID_UNALLOCATED(3,3),
+	AARCH32(SYS_ID_PFR2_EL1),
+	AARCH32(SYS_ID_DFR1_EL1),
+	AARCH32(SYS_ID_MMFR5_EL1),
+	ID_UNALLOCATED(3,7),
+
+	/* AArch64 ID registers */
+	/* CRm=4 */
+	AARCH64(SYS_ID_AA64PFR0_EL1),
+	AARCH64(SYS_ID_AA64PFR1_EL1),
+	ID_UNALLOCATED(4,2),
+	ID_UNALLOCATED(4,3),
+	AARCH64(SYS_ID_AA64ZFR0_EL1),
+	ID_UNALLOCATED(4,5),
+	ID_UNALLOCATED(4,6),
+	ID_UNALLOCATED(4,7),
+	AARCH64(SYS_ID_AA64DFR0_EL1),
+	AARCH64(SYS_ID_AA64DFR1_EL1),
+	ID_UNALLOCATED(5,2),
+	ID_UNALLOCATED(5,3),
+	AARCH64(SYS_ID_AA64AFR0_EL1),
+	AARCH64(SYS_ID_AA64AFR1_EL1),
+	ID_UNALLOCATED(5,6),
+	ID_UNALLOCATED(5,7),
+	AARCH64(SYS_ID_AA64ISAR0_EL1),
+	AARCH64(SYS_ID_AA64ISAR1_EL1),
+	AARCH64(SYS_ID_AA64ISAR2_EL1),
+	ID_UNALLOCATED(6,3),
+	ID_UNALLOCATED(6,4),
+	ID_UNALLOCATED(6,5),
+	ID_UNALLOCATED(6,6),
+	ID_UNALLOCATED(6,7),
+	AARCH64(SYS_ID_AA64MMFR0_EL1),
+	AARCH64(SYS_ID_AA64MMFR1_EL1),
+	AARCH64(SYS_ID_AA64MMFR2_EL1),
+	ID_UNALLOCATED(7,3),
+	ID_UNALLOCATED(7,4),
+	ID_UNALLOCATED(7,5),
+	ID_UNALLOCATED(7,6),
+	ID_UNALLOCATED(7,7),
+
+	/* Scalable Vector Registers are restricted. */
+
+	RAZ_WI(SYS_ERRIDR_EL1),
+	RAZ_WI(SYS_ERRSELR_EL1),
+	RAZ_WI(SYS_ERXFR_EL1),
+	RAZ_WI(SYS_ERXCTLR_EL1),
+	RAZ_WI(SYS_ERXSTATUS_EL1),
+	RAZ_WI(SYS_ERXADDR_EL1),
+	RAZ_WI(SYS_ERXMISC0_EL1),
+	RAZ_WI(SYS_ERXMISC1_EL1),
+
+	/* Performance Monitoring Registers are restricted. */
+
+	/* Limited Ordering Regions Registers are restricted. */
+
+	HOST_HANDLED(SYS_ICC_SGI1R_EL1),
+	HOST_HANDLED(SYS_ICC_ASGI1R_EL1),
+	HOST_HANDLED(SYS_ICC_SGI0R_EL1),
+	{ SYS_DESC(SYS_ICC_SRE_EL1), .access = pvm_gic_read_sre, },
+
+	HOST_HANDLED(SYS_CCSIDR_EL1),
+	HOST_HANDLED(SYS_CLIDR_EL1),
+	HOST_HANDLED(SYS_CSSELR_EL1),
+	HOST_HANDLED(SYS_CTR_EL0),
+
+	/* Performance Monitoring Registers are restricted. */
+
+	/* Activity Monitoring Registers are restricted. */
+
+	HOST_HANDLED(SYS_CNTP_TVAL_EL0),
+	HOST_HANDLED(SYS_CNTP_CTL_EL0),
+	HOST_HANDLED(SYS_CNTP_CVAL_EL0),
+
+	/* Performance Monitoring Registers are restricted. */
+};
+
+/* A structure to track reset values for system registers in protected vcpus. */
+struct sys_reg_desc_reset {
+	/* Index into sys_reg[]. */
+	int reg;
+
+	/* Reset function. */
+	void (*reset)(struct kvm_vcpu *, const struct sys_reg_desc_reset *);
+
+	/* Reset value. */
+	u64 value;
+};
+
+static void reset_actlr(struct kvm_vcpu *vcpu, const struct sys_reg_desc_reset *r)
+{
+	__vcpu_sys_reg(vcpu, r->reg) = read_sysreg(actlr_el1);
+}
+
+static void reset_amair_el1(struct kvm_vcpu *vcpu, const struct sys_reg_desc_reset *r)
+{
+	__vcpu_sys_reg(vcpu, r->reg) = read_sysreg(amair_el1);
+}
+
+static void reset_mpidr(struct kvm_vcpu *vcpu, const struct sys_reg_desc_reset *r)
+{
+	__vcpu_sys_reg(vcpu, r->reg) = calculate_mpidr(vcpu);
+}
+
+static void reset_value(struct kvm_vcpu *vcpu, const struct sys_reg_desc_reset *r)
+{
+	__vcpu_sys_reg(vcpu, r->reg) = r->value;
+}
+
+/* Specify the register's reset value. */
+#define RESET_VAL(REG, RESET_VAL) {  REG, reset_value, RESET_VAL }
+
+/* Specify a function that calculates the register's reset value. */
+#define RESET_FUNC(REG, RESET_FUNC) {  REG, RESET_FUNC, 0 }
+
+/*
+ * Architected system registers reset values for Protected VMs.
+ * Important: Must be sorted ascending by REG (index into sys_reg[])
+ */
+static const struct sys_reg_desc_reset pvm_sys_reg_reset_vals[] = {
+	RESET_FUNC(MPIDR_EL1, reset_mpidr),
+	RESET_VAL(SCTLR_EL1, 0x00C50078),
+	RESET_FUNC(ACTLR_EL1, reset_actlr),
+	RESET_VAL(CPACR_EL1, 0),
+	RESET_VAL(TCR_EL1, 0),
+	RESET_VAL(VBAR_EL1, 0),
+	RESET_VAL(CONTEXTIDR_EL1, 0),
+	RESET_FUNC(AMAIR_EL1, reset_amair_el1),
+	RESET_VAL(CNTKCTL_EL1, 0),
+	RESET_VAL(DISR_EL1, 0),
+};
+
+/*
+ * Sets system registers to reset value
+ *
+ * This function finds the right entry and sets the registers on the protected
+ * vcpu to their architecturally defined reset values.
+ */
+void kvm_reset_pvm_sys_regs(struct kvm_vcpu *vcpu)
+{
+	unsigned long i;
+
+	for (i = 0; i < ARRAY_SIZE(pvm_sys_reg_reset_vals); i++) {
+		const struct sys_reg_desc_reset *r = &pvm_sys_reg_reset_vals[i];
+
+		r->reset(vcpu, r);
+	}
+}
+
+/*
+ * Checks that the sysreg tables are unique and in-order.
+ *
+ * Returns 0 if the table is consistent, or 1 otherwise.
+ */
+int kvm_check_pvm_sysreg_table(void)
+{
+	unsigned int i;
+
+	for (i = 1; i < ARRAY_SIZE(pvm_sys_reg_descs); i++) {
+		if (cmp_sys_reg(&pvm_sys_reg_descs[i-1], &pvm_sys_reg_descs[i]) >= 0)
+			return 1;
+	}
+
+	for (i = 1; i < ARRAY_SIZE(pvm_sys_reg_reset_vals); i++) {
+		if (pvm_sys_reg_reset_vals[i-1].reg >= pvm_sys_reg_reset_vals[i].reg)
+			return 1;
+	}
+
+	return 0;
+}
+
+/*
+ * Handler for protected VM MSR, MRS or System instruction execution.
+ *
+ * Returns true if the hypervisor has handled the exit, and control should go
+ * back to the guest, or false if it hasn't, to be handled by the host.
+ */
+bool kvm_handle_pvm_sysreg(struct kvm_vcpu *vcpu, u64 *exit_code)
+{
+	const struct sys_reg_desc *r;
+	struct sys_reg_params params;
+	unsigned long esr = kvm_vcpu_get_esr(vcpu);
+	int Rt = kvm_vcpu_sys_get_rt(vcpu);
+
+	params = esr_sys64_to_params(esr);
+	params.regval = vcpu_get_reg(vcpu, Rt);
+
+	r = find_reg(&params, pvm_sys_reg_descs, ARRAY_SIZE(pvm_sys_reg_descs));
+
+	/* Undefined (RESTRICTED). */
+	if (r == NULL) {
+		inject_undef64(vcpu);
+		return true;
+	}
+
+	/* Handled by the host (HOST_HANDLED) */
+	if (r->access == NULL)
+		return false;
+
+	/* Handled by hyp: skip instruction if instructed to do so. */
+	if (r->access(vcpu, &params, r))
+		__kvm_skip_instr(vcpu);
+
+	if (!params.is_write)
+		vcpu_set_reg(vcpu, Rt, params.regval);
+
+	return true;
+}
+
+/*
+ * Handler for protected VM restricted exceptions.
+ *
+ * Inject an undefined exception into the guest and return true to indicate that
+ * the hypervisor has handled the exit, and control should go back to the guest.
+ */
+bool kvm_handle_pvm_restricted(struct kvm_vcpu *vcpu, u64 *exit_code)
+{
+	inject_undef64(vcpu);
+	return true;
+}
diff --git a/arch/arm64/kvm/hyp/nvhe/tlb.c b/arch/arm64/kvm/hyp/nvhe/tlb.c
index d296d61..ab6d25b 100644
--- a/arch/arm64/kvm/hyp/nvhe/tlb.c
+++ b/arch/arm64/kvm/hyp/nvhe/tlb.c
@@ -11,26 +11,68 @@
 #include <nvhe/mem_protect.h>
 
 struct tlb_inv_context {
-	u64		tcr;
+	struct kvm_s2_mmu	*mmu;
+	u64			tcr;
+	u64			sctlr;
 };
 
-static void __tlb_switch_to_guest(struct kvm_s2_mmu *mmu,
-				  struct tlb_inv_context *cxt)
+static void enter_vmid_context(struct kvm_s2_mmu *mmu,
+			       struct tlb_inv_context *cxt)
 {
+	struct kvm_s2_mmu *host_mmu = &host_kvm.arch.mmu;
+	struct kvm_cpu_context *host_ctxt;
+	struct kvm_vcpu *vcpu;
+
+	host_ctxt = &this_cpu_ptr(&kvm_host_data)->host_ctxt;
+	vcpu = host_ctxt->__hyp_running_vcpu;
+	cxt->mmu = NULL;
+
+	/*
+	 * If we're already in the desired context, then there's nothing
+	 * to do.
+	 */
+	if (vcpu) {
+		/* We're in guest context */
+		if (mmu == vcpu->arch.hw_mmu || WARN_ON(mmu != host_mmu))
+			return;
+
+		cxt->mmu = vcpu->arch.hw_mmu;
+	} else {
+		/* We're in host context */
+		if (mmu == host_mmu)
+			return;
+
+		cxt->mmu = host_mmu;
+	}
+
 	if (cpus_have_final_cap(ARM64_WORKAROUND_SPECULATIVE_AT)) {
 		u64 val;
 
 		/*
 		 * For CPUs that are affected by ARM 1319367, we need to
-		 * avoid a host Stage-1 walk while we have the guest's
-		 * VMID set in the VTTBR in order to invalidate TLBs.
-		 * We're guaranteed that the S1 MMU is enabled, so we can
-		 * simply set the EPD bits to avoid any further TLB fill.
+		 * avoid a Stage-1 walk with the old VMID while we have
+		 * the new VMID set in the VTTBR in order to invalidate TLBs.
+		 * We're guaranteed that the host S1 MMU is enabled, so
+		 * we can simply set the EPD bits to avoid any further
+		 * TLB fill. For guests, we ensure that the S1 MMU is
+		 * temporarily enabled in the next context.
 		 */
 		val = cxt->tcr = read_sysreg_el1(SYS_TCR);
 		val |= TCR_EPD1_MASK | TCR_EPD0_MASK;
 		write_sysreg_el1(val, SYS_TCR);
 		isb();
+
+		if (vcpu) {
+			val = cxt->sctlr = read_sysreg_el1(SYS_SCTLR);
+			if (!(val & SCTLR_ELx_M)) {
+				val |= SCTLR_ELx_M;
+				write_sysreg_el1(val, SYS_SCTLR);
+				isb();
+			}
+		} else {
+			/* The host S1 MMU is always enabled. */
+			cxt->sctlr = SCTLR_ELx_M;
+		}
 	}
 
 	/*
@@ -39,20 +81,44 @@
 	 * ensuring that we always have an ISB, but not two ISBs back
 	 * to back.
 	 */
-	__load_stage2(mmu, kern_hyp_va(mmu->arch));
+	if (vcpu)
+		__load_host_stage2();
+	else
+		__load_stage2(mmu, kern_hyp_va(mmu->arch));
+
 	asm(ALTERNATIVE("isb", "nop", ARM64_WORKAROUND_SPECULATIVE_AT));
 }
 
-static void __tlb_switch_to_host(struct tlb_inv_context *cxt)
+static void exit_vmid_context(struct tlb_inv_context *cxt)
 {
-	__load_host_stage2();
+	struct kvm_s2_mmu *mmu = cxt->mmu;
+	struct kvm_cpu_context *host_ctxt;
+	struct kvm_vcpu *vcpu;
+
+	host_ctxt = &this_cpu_ptr(&kvm_host_data)->host_ctxt;
+	vcpu = host_ctxt->__hyp_running_vcpu;
+
+	if (!mmu)
+		return;
+
+	if (vcpu)
+		__load_stage2(mmu, kern_hyp_va(mmu->arch));
+	else
+		__load_host_stage2();
 
 	if (cpus_have_final_cap(ARM64_WORKAROUND_SPECULATIVE_AT)) {
-		/* Ensure write of the host VMID */
+		/* Ensure write of the old VMID */
 		isb();
-		/* Restore the host's TCR_EL1 */
+
+		if (!(cxt->sctlr & SCTLR_ELx_M)) {
+			write_sysreg_el1(cxt->sctlr, SYS_SCTLR);
+			isb();
+		}
+
 		write_sysreg_el1(cxt->tcr, SYS_TCR);
 	}
+
+	cxt->mmu = NULL;
 }
 
 void __kvm_tlb_flush_vmid_ipa(struct kvm_s2_mmu *mmu,
@@ -63,7 +129,7 @@
 	dsb(ishst);
 
 	/* Switch to requested VMID */
-	__tlb_switch_to_guest(mmu, &cxt);
+	enter_vmid_context(mmu, &cxt);
 
 	/*
 	 * We could do so much better if we had the VA as well.
@@ -106,7 +172,7 @@
 	if (icache_is_vpipt())
 		icache_inval_all_pou();
 
-	__tlb_switch_to_host(&cxt);
+	exit_vmid_context(&cxt);
 }
 
 void __kvm_tlb_flush_vmid(struct kvm_s2_mmu *mmu)
@@ -116,13 +182,13 @@
 	dsb(ishst);
 
 	/* Switch to requested VMID */
-	__tlb_switch_to_guest(mmu, &cxt);
+	enter_vmid_context(mmu, &cxt);
 
 	__tlbi(vmalls12e1is);
 	dsb(ish);
 	isb();
 
-	__tlb_switch_to_host(&cxt);
+	exit_vmid_context(&cxt);
 }
 
 void __kvm_flush_cpu_context(struct kvm_s2_mmu *mmu)
@@ -130,14 +196,14 @@
 	struct tlb_inv_context cxt;
 
 	/* Switch to requested VMID */
-	__tlb_switch_to_guest(mmu, &cxt);
+	enter_vmid_context(mmu, &cxt);
 
 	__tlbi(vmalle1);
 	asm volatile("ic iallu");
 	dsb(nsh);
 	isb();
 
-	__tlb_switch_to_host(&cxt);
+	exit_vmid_context(&cxt);
 }
 
 void __kvm_flush_vm_context(void)
diff --git a/arch/arm64/kvm/hyp/pgtable.c b/arch/arm64/kvm/hyp/pgtable.c
index 4c77ff5..03bdf4f5 100644
--- a/arch/arm64/kvm/hyp/pgtable.c
+++ b/arch/arm64/kvm/hyp/pgtable.c
@@ -46,9 +46,6 @@
 					 KVM_PTE_LEAF_ATTR_LO_S2_S2AP_W | \
 					 KVM_PTE_LEAF_ATTR_HI_S2_XN)
 
-#define KVM_INVALID_PTE_OWNER_MASK	GENMASK(9, 2)
-#define KVM_MAX_OWNER_ID		1
-
 struct kvm_pgtable_walk_data {
 	struct kvm_pgtable		*pgt;
 	struct kvm_pgtable_walker	*walker;
@@ -167,11 +164,6 @@
 	return pte;
 }
 
-static kvm_pte_t kvm_init_invalid_leaf_owner(u8 owner_id)
-{
-	return FIELD_PREP(KVM_INVALID_PTE_OWNER_MASK, owner_id);
-}
-
 static int kvm_pgtable_visitor_cb(struct kvm_pgtable_walk_data *data, u64 addr,
 				  u32 level, kvm_pte_t *ptep,
 				  enum kvm_pgtable_walk_flags flag)
@@ -383,21 +375,6 @@
 	return prot;
 }
 
-static bool hyp_pte_needs_update(kvm_pte_t old, kvm_pte_t new)
-{
-	/*
-	 * Tolerate KVM recreating the exact same mapping, or changing software
-	 * bits if the existing mapping was valid.
-	 */
-	if (old == new)
-		return false;
-
-	if (!kvm_pte_valid(old))
-		return true;
-
-	return !WARN_ON((old ^ new) & ~KVM_PTE_LEAF_ATTR_HI_SW);
-}
-
 static bool hyp_map_walker_try_leaf(u64 addr, u64 end, u32 level,
 				    kvm_pte_t *ptep, struct hyp_map_data *data)
 {
@@ -407,11 +384,16 @@
 	if (!kvm_block_mapping_supported(addr, end, phys, level))
 		return false;
 
-	new = kvm_init_valid_leaf_pte(phys, data->attr, level);
-	if (hyp_pte_needs_update(old, new))
-		smp_store_release(ptep, new);
-
 	data->phys += granule;
+	new = kvm_init_valid_leaf_pte(phys, data->attr, level);
+	if (old == new)
+		return true;
+	if (!kvm_pte_valid(old))
+		data->mm_ops->get_page(ptep);
+	else if (WARN_ON((old ^ new) & ~KVM_PTE_LEAF_ATTR_HI_SW))
+		return false;
+
+	smp_store_release(ptep, new);
 	return true;
 }
 
@@ -433,6 +415,7 @@
 		return -ENOMEM;
 
 	kvm_set_table_pte(ptep, childp, mm_ops);
+	mm_ops->get_page(ptep);
 	return 0;
 }
 
@@ -460,6 +443,69 @@
 	return ret;
 }
 
+struct hyp_unmap_data {
+	u64				unmapped;
+	struct kvm_pgtable_mm_ops	*mm_ops;
+};
+
+static int hyp_unmap_walker(u64 addr, u64 end, u32 level, kvm_pte_t *ptep,
+			    enum kvm_pgtable_walk_flags flag, void * const arg)
+{
+	kvm_pte_t pte = *ptep, *childp = NULL;
+	u64 granule = kvm_granule_size(level);
+	struct hyp_unmap_data *data = arg;
+	struct kvm_pgtable_mm_ops *mm_ops = data->mm_ops;
+
+	if (!kvm_pte_valid(pte))
+		return -EINVAL;
+
+	if (kvm_pte_table(pte, level)) {
+		childp = kvm_pte_follow(pte, mm_ops);
+
+		if (mm_ops->page_count(childp) != 1)
+			return 0;
+
+		kvm_clear_pte(ptep);
+		dsb(ishst);
+		__tlbi_level(vae2is, __TLBI_VADDR(addr, 0), level);
+	} else {
+		if (end - addr < granule)
+			return -EINVAL;
+
+		kvm_clear_pte(ptep);
+		dsb(ishst);
+		__tlbi_level(vale2is, __TLBI_VADDR(addr, 0), level);
+		data->unmapped += granule;
+	}
+
+	dsb(ish);
+	isb();
+	mm_ops->put_page(ptep);
+
+	if (childp)
+		mm_ops->put_page(childp);
+
+	return 0;
+}
+
+u64 kvm_pgtable_hyp_unmap(struct kvm_pgtable *pgt, u64 addr, u64 size)
+{
+	struct hyp_unmap_data unmap_data = {
+		.mm_ops	= pgt->mm_ops,
+	};
+	struct kvm_pgtable_walker walker = {
+		.cb	= hyp_unmap_walker,
+		.arg	= &unmap_data,
+		.flags	= KVM_PGTABLE_WALK_LEAF | KVM_PGTABLE_WALK_TABLE_POST,
+	};
+
+	if (!pgt->mm_ops->page_count)
+		return 0;
+
+	kvm_pgtable_walk(pgt, addr, size, &walker);
+	return unmap_data.unmapped;
+}
+
 int kvm_pgtable_hyp_init(struct kvm_pgtable *pgt, u32 va_bits,
 			 struct kvm_pgtable_mm_ops *mm_ops)
 {
@@ -482,8 +528,16 @@
 			   enum kvm_pgtable_walk_flags flag, void * const arg)
 {
 	struct kvm_pgtable_mm_ops *mm_ops = arg;
+	kvm_pte_t pte = *ptep;
 
-	mm_ops->put_page((void *)kvm_pte_follow(*ptep, mm_ops));
+	if (!kvm_pte_valid(pte))
+		return 0;
+
+	mm_ops->put_page(ptep);
+
+	if (kvm_pte_table(pte, level))
+		mm_ops->put_page(kvm_pte_follow(pte, mm_ops));
+
 	return 0;
 }
 
@@ -491,7 +545,7 @@
 {
 	struct kvm_pgtable_walker walker = {
 		.cb	= hyp_free_walker,
-		.flags	= KVM_PGTABLE_WALK_TABLE_POST,
+		.flags	= KVM_PGTABLE_WALK_LEAF | KVM_PGTABLE_WALK_TABLE_POST,
 		.arg	= pgt->mm_ops,
 	};
 
@@ -503,7 +557,7 @@
 struct stage2_map_data {
 	u64				phys;
 	kvm_pte_t			attr;
-	u8				owner_id;
+	u64				annotation;
 
 	kvm_pte_t			*anchor;
 	kvm_pte_t			*childp;
@@ -638,12 +692,12 @@
 static bool stage2_pte_cacheable(struct kvm_pgtable *pgt, kvm_pte_t pte)
 {
 	u64 memattr = pte & KVM_PTE_LEAF_ATTR_LO_S2_MEMATTR;
-	return memattr == KVM_S2_MEMATTR(pgt, NORMAL);
+	return kvm_pte_valid(pte) && memattr == KVM_S2_MEMATTR(pgt, NORMAL);
 }
 
 static bool stage2_pte_executable(kvm_pte_t pte)
 {
-	return !(pte & KVM_PTE_LEAF_ATTR_HI_S2_XN);
+	return kvm_pte_valid(pte) && !(pte & KVM_PTE_LEAF_ATTR_HI_S2_XN);
 }
 
 static bool stage2_leaf_mapping_allowed(u64 addr, u64 end, u32 level,
@@ -670,7 +724,7 @@
 	if (kvm_phys_is_valid(phys))
 		new = kvm_init_valid_leaf_pte(phys, data->attr, level);
 	else
-		new = kvm_init_invalid_leaf_owner(data->owner_id);
+		new = data->annotation;
 
 	if (stage2_pte_is_counted(old)) {
 		/*
@@ -682,20 +736,28 @@
 		if (!stage2_pte_needs_update(old, new))
 			return -EAGAIN;
 
+		/*
+		 * If we're only changing software bits, then we don't need to
+		 * do anything else/
+		 */
+		if (!((old ^ new) & ~KVM_PTE_LEAF_ATTR_HI_SW))
+			goto out_set_pte;
+
 		stage2_put_pte(ptep, data->mmu, addr, level, mm_ops);
 	}
 
 	/* Perform CMOs before installation of the guest stage-2 PTE */
 	if (mm_ops->dcache_clean_inval_poc && stage2_pte_cacheable(pgt, new))
 		mm_ops->dcache_clean_inval_poc(kvm_pte_follow(new, mm_ops),
-						granule);
-
+					       granule);
 	if (mm_ops->icache_inval_pou && stage2_pte_executable(new))
 		mm_ops->icache_inval_pou(kvm_pte_follow(new, mm_ops), granule);
 
-	smp_store_release(ptep, new);
 	if (stage2_pte_is_counted(new))
 		mm_ops->get_page(ptep);
+
+out_set_pte:
+	smp_store_release(ptep, new);
 	if (kvm_phys_is_valid(phys))
 		data->phys += granule;
 	return 0;
@@ -860,8 +922,8 @@
 	return ret;
 }
 
-int kvm_pgtable_stage2_set_owner(struct kvm_pgtable *pgt, u64 addr, u64 size,
-				 void *mc, u8 owner_id)
+int kvm_pgtable_stage2_annotate(struct kvm_pgtable *pgt, u64 addr, u64 size,
+				void *mc, kvm_pte_t annotation)
 {
 	int ret;
 	struct stage2_map_data map_data = {
@@ -869,8 +931,8 @@
 		.mmu		= pgt->mmu,
 		.memcache	= mc,
 		.mm_ops		= pgt->mm_ops,
-		.owner_id	= owner_id,
 		.force_pte	= true,
+		.annotation	= annotation,
 	};
 	struct kvm_pgtable_walker walker = {
 		.cb		= stage2_map_walker,
@@ -880,7 +942,7 @@
 		.arg		= &map_data,
 	};
 
-	if (owner_id > KVM_MAX_OWNER_ID)
+	if (annotation & PTE_VALID)
 		return -EINVAL;
 
 	ret = kvm_pgtable_walk(pgt, addr, size, &walker);
@@ -1086,7 +1148,7 @@
 	struct kvm_pgtable_mm_ops *mm_ops = pgt->mm_ops;
 	kvm_pte_t pte = *ptep;
 
-	if (!kvm_pte_valid(pte) || !stage2_pte_cacheable(pgt, pte))
+	if (!stage2_pte_cacheable(pgt, pte))
 		return 0;
 
 	if (mm_ops->dcache_clean_inval_poc)
@@ -1110,13 +1172,13 @@
 }
 
 
-int __kvm_pgtable_stage2_init(struct kvm_pgtable *pgt, struct kvm_arch *arch,
+int __kvm_pgtable_stage2_init(struct kvm_pgtable *pgt, struct kvm_s2_mmu *mmu,
 			      struct kvm_pgtable_mm_ops *mm_ops,
 			      enum kvm_pgtable_stage2_flags flags,
 			      kvm_pgtable_force_pte_cb_t force_pte_cb)
 {
 	size_t pgd_sz;
-	u64 vtcr = arch->vtcr;
+	u64 vtcr = mmu->arch->vtcr;
 	u32 ia_bits = VTCR_EL2_IPA(vtcr);
 	u32 sl0 = FIELD_GET(VTCR_EL2_SL0_MASK, vtcr);
 	u32 start_level = VTCR_EL2_TGRAN_SL0_BASE - sl0;
@@ -1129,7 +1191,7 @@
 	pgt->ia_bits		= ia_bits;
 	pgt->start_level	= start_level;
 	pgt->mm_ops		= mm_ops;
-	pgt->mmu		= &arch->mmu;
+	pgt->mmu		= mmu;
 	pgt->flags		= flags;
 	pgt->force_pte_cb	= force_pte_cb;
 
@@ -1138,6 +1200,15 @@
 	return 0;
 }
 
+size_t kvm_pgtable_stage2_pgd_size(u64 vtcr)
+{
+	u32 ia_bits = VTCR_EL2_IPA(vtcr);
+	u32 sl0 = FIELD_GET(VTCR_EL2_SL0_MASK, vtcr);
+	u32 start_level = VTCR_EL2_TGRAN_SL0_BASE - sl0;
+
+	return kvm_pgd_pages(ia_bits, start_level) * PAGE_SIZE;
+}
+
 static int stage2_free_walker(u64 addr, u64 end, u32 level, kvm_pte_t *ptep,
 			      enum kvm_pgtable_walk_flags flag,
 			      void * const arg)
diff --git a/arch/arm64/kvm/hyp/reserved_mem.c b/arch/arm64/kvm/hyp/reserved_mem.c
deleted file mode 100644
index 578670e..0000000
--- a/arch/arm64/kvm/hyp/reserved_mem.c
+++ /dev/null
@@ -1,109 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * Copyright (C) 2020 - Google LLC
- * Author: Quentin Perret <qperret@google.com>
- */
-
-#include <linux/kvm_host.h>
-#include <linux/memblock.h>
-#include <linux/sort.h>
-
-#include <asm/kvm_host.h>
-
-#include <nvhe/memory.h>
-#include <nvhe/mm.h>
-
-static struct memblock_region *hyp_memory = kvm_nvhe_sym(hyp_memory);
-static unsigned int *hyp_memblock_nr_ptr = &kvm_nvhe_sym(hyp_memblock_nr);
-
-phys_addr_t hyp_mem_base;
-phys_addr_t hyp_mem_size;
-
-static int cmp_hyp_memblock(const void *p1, const void *p2)
-{
-	const struct memblock_region *r1 = p1;
-	const struct memblock_region *r2 = p2;
-
-	return r1->base < r2->base ? -1 : (r1->base > r2->base);
-}
-
-static void __init sort_memblock_regions(void)
-{
-	sort(hyp_memory,
-	     *hyp_memblock_nr_ptr,
-	     sizeof(struct memblock_region),
-	     cmp_hyp_memblock,
-	     NULL);
-}
-
-static int __init register_memblock_regions(void)
-{
-	struct memblock_region *reg;
-
-	for_each_mem_region(reg) {
-		if (*hyp_memblock_nr_ptr >= HYP_MEMBLOCK_REGIONS)
-			return -ENOMEM;
-
-		hyp_memory[*hyp_memblock_nr_ptr] = *reg;
-		(*hyp_memblock_nr_ptr)++;
-	}
-	sort_memblock_regions();
-
-	return 0;
-}
-
-void __init kvm_hyp_reserve(void)
-{
-	u64 nr_pages, prev, hyp_mem_pages = 0;
-	int ret;
-
-	if (!is_hyp_mode_available() || is_kernel_in_hyp_mode())
-		return;
-
-	if (kvm_get_mode() != KVM_MODE_PROTECTED)
-		return;
-
-	ret = register_memblock_regions();
-	if (ret) {
-		*hyp_memblock_nr_ptr = 0;
-		kvm_err("Failed to register hyp memblocks: %d\n", ret);
-		return;
-	}
-
-	hyp_mem_pages += hyp_s1_pgtable_pages();
-	hyp_mem_pages += host_s2_pgtable_pages();
-
-	/*
-	 * The hyp_vmemmap needs to be backed by pages, but these pages
-	 * themselves need to be present in the vmemmap, so compute the number
-	 * of pages needed by looking for a fixed point.
-	 */
-	nr_pages = 0;
-	do {
-		prev = nr_pages;
-		nr_pages = hyp_mem_pages + prev;
-		nr_pages = DIV_ROUND_UP(nr_pages * sizeof(struct hyp_page), PAGE_SIZE);
-		nr_pages += __hyp_pgtable_max_pages(nr_pages);
-	} while (nr_pages != prev);
-	hyp_mem_pages += nr_pages;
-
-	/*
-	 * Try to allocate a PMD-aligned region to reduce TLB pressure once
-	 * this is unmapped from the host stage-2, and fallback to PAGE_SIZE.
-	 */
-	hyp_mem_size = hyp_mem_pages << PAGE_SHIFT;
-	hyp_mem_base = memblock_phys_alloc(ALIGN(hyp_mem_size, PMD_SIZE),
-					   PMD_SIZE);
-	if (!hyp_mem_base)
-		hyp_mem_base = memblock_phys_alloc(hyp_mem_size, PAGE_SIZE);
-	else
-		hyp_mem_size = ALIGN(hyp_mem_size, PMD_SIZE);
-
-	if (!hyp_mem_base) {
-		kvm_err("Failed to reserve hyp memory\n");
-		return;
-	}
-
-	kvm_info("Reserved %lld MiB at 0x%llx\n", hyp_mem_size >> 20,
-		 hyp_mem_base);
-}
diff --git a/arch/arm64/kvm/hyp/vgic-v3-sr.c b/arch/arm64/kvm/hyp/vgic-v3-sr.c
index 39f8f7f..d5a51ea 100644
--- a/arch/arm64/kvm/hyp/vgic-v3-sr.c
+++ b/arch/arm64/kvm/hyp/vgic-v3-sr.c
@@ -330,7 +330,7 @@
 		write_gicreg(0, ICH_HCR_EL2);
 }
 
-void __vgic_v3_save_aprs(struct vgic_v3_cpu_if *cpu_if)
+static void __vgic_v3_save_aprs(struct vgic_v3_cpu_if *cpu_if)
 {
 	u64 val;
 	u32 nr_pre_bits;
@@ -363,7 +363,7 @@
 	}
 }
 
-void __vgic_v3_restore_aprs(struct vgic_v3_cpu_if *cpu_if)
+static void __vgic_v3_restore_aprs(struct vgic_v3_cpu_if *cpu_if)
 {
 	u64 val;
 	u32 nr_pre_bits;
@@ -455,16 +455,35 @@
 	return val;
 }
 
-u64 __vgic_v3_read_vmcr(void)
+static u64 __vgic_v3_read_vmcr(void)
 {
 	return read_gicreg(ICH_VMCR_EL2);
 }
 
-void __vgic_v3_write_vmcr(u32 vmcr)
+static void __vgic_v3_write_vmcr(u32 vmcr)
 {
 	write_gicreg(vmcr, ICH_VMCR_EL2);
 }
 
+void __vgic_v3_save_vmcr_aprs(struct vgic_v3_cpu_if *cpu_if)
+{
+	__vgic_v3_save_aprs(cpu_if);
+	if (cpu_if->vgic_sre)
+		cpu_if->vgic_vmcr = __vgic_v3_read_vmcr();
+}
+
+void __vgic_v3_restore_vmcr_aprs(struct vgic_v3_cpu_if *cpu_if)
+{
+	/*
+	 * If dealing with a GICv2 emulation on GICv3, VMCR_EL2.VFIQen
+	 * is dependent on ICC_SRE_EL1.SRE, and we have to perform the
+	 * VMCR_EL2 save/restore in the world switch.
+	 */
+	if (cpu_if->vgic_sre)
+		__vgic_v3_write_vmcr(cpu_if->vgic_vmcr);
+	__vgic_v3_restore_aprs(cpu_if);
+}
+
 static int __vgic_v3_bpr_min(void)
 {
 	/* See Pseudocode for VPriorityGroup */
@@ -695,9 +714,7 @@
 		goto spurious;
 
 	lr_val &= ~ICH_LR_STATE;
-	/* No active state for LPIs */
-	if ((lr_val & ICH_LR_VIRTUAL_ID_MASK) <= VGIC_MAX_SPI)
-		lr_val |= ICH_LR_ACTIVE_BIT;
+	lr_val |= ICH_LR_ACTIVE_BIT;
 	__gic_v3_set_lr(lr_val, lr);
 	__vgic_v3_set_active_priority(lr_prio, vmcr, grp);
 	vcpu_set_reg(vcpu, rt, lr_val & ICH_LR_VIRTUAL_ID_MASK);
@@ -764,20 +781,18 @@
 	/* Drop priority in any case */
 	act_prio = __vgic_v3_clear_highest_active_priority();
 
-	/* If EOIing an LPI, no deactivate to be performed */
-	if (vid >= VGIC_MIN_LPI)
-		return;
-
-	/* EOImode == 1, nothing to be done here */
-	if (vmcr & ICH_VMCR_EOIM_MASK)
-		return;
-
 	lr = __vgic_v3_find_active_lr(vcpu, vid, &lr_val);
 	if (lr == -1) {
-		__vgic_v3_bump_eoicount();
+		/* Do not bump EOIcount for LPIs that aren't in the LRs */
+		if (!(vid >= VGIC_MIN_LPI))
+			__vgic_v3_bump_eoicount();
 		return;
 	}
 
+	/* EOImode == 1 and not an LPI, nothing to be done here */
+	if ((vmcr & ICH_VMCR_EOIM_MASK) && !(vid >= VGIC_MIN_LPI))
+		return;
+
 	lr_prio = (lr_val & ICH_LR_PRIORITY_MASK) >> ICH_LR_PRIORITY_SHIFT;
 
 	/* If priorities or group do not match, the guest has fscked-up. */
@@ -988,7 +1003,8 @@
 	/* IDbits */
 	val |= ((vtr >> 23) & 7) << ICC_CTLR_EL1_ID_BITS_SHIFT;
 	/* SEIS */
-	val |= ((vtr >> 22) & 1) << ICC_CTLR_EL1_SEIS_SHIFT;
+	if (kvm_vgic_global_state.ich_vtr_el2 & ICH_VTR_SEIS_MASK)
+		val |= BIT(ICC_CTLR_EL1_SEIS_SHIFT);
 	/* A3V */
 	val |= ((vtr >> 21) & 1) << ICC_CTLR_EL1_A3V_SHIFT;
 	/* EOImode */
diff --git a/arch/arm64/kvm/hyp/vhe/switch.c b/arch/arm64/kvm/hyp/vhe/switch.c
index 813e6e2..645e1b9 100644
--- a/arch/arm64/kvm/hyp/vhe/switch.c
+++ b/arch/arm64/kvm/hyp/vhe/switch.c
@@ -101,6 +101,27 @@
 	__deactivate_traps_common(vcpu);
 }
 
+static const exit_handler_fn hyp_exit_handlers[] = {
+	[0 ... ESR_ELx_EC_MAX]		= NULL,
+	[ESR_ELx_EC_CP15_32]		= kvm_hyp_handle_cp15_32,
+	[ESR_ELx_EC_SYS64]		= kvm_hyp_handle_sysreg,
+	[ESR_ELx_EC_SVE]		= kvm_hyp_handle_fpsimd,
+	[ESR_ELx_EC_FP_ASIMD]		= kvm_hyp_handle_fpsimd,
+	[ESR_ELx_EC_IABT_LOW]		= kvm_hyp_handle_iabt_low,
+	[ESR_ELx_EC_DABT_LOW]		= kvm_hyp_handle_dabt_low,
+	[ESR_ELx_EC_WATCHPT_LOW]	= kvm_hyp_handle_watchpt_low,
+	[ESR_ELx_EC_PAC]		= kvm_hyp_handle_ptrauth,
+};
+
+static const exit_handler_fn *kvm_get_exit_handler_array(struct kvm_vcpu *vcpu)
+{
+	return hyp_exit_handlers;
+}
+
+static void early_exit_filter(struct kvm_vcpu *vcpu, u64 *exit_code)
+{
+}
+
 /* Switch to the guest for VHE systems running in EL2 */
 static int __kvm_vcpu_run_vhe(struct kvm_vcpu *vcpu)
 {
diff --git a/arch/arm64/kvm/hypercalls.c b/arch/arm64/kvm/hypercalls.c
index 202b8c4..bb04eb9 100644
--- a/arch/arm64/kvm/hypercalls.c
+++ b/arch/arm64/kvm/hypercalls.c
@@ -145,6 +145,10 @@
 	case ARM_SMCCC_VENDOR_HYP_KVM_PTP_FUNC_ID:
 		kvm_ptp_get_time(vcpu, val);
 		break;
+	case ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_MAP_FUNC_ID:
+		if (kvm_vm_is_protected(vcpu->kvm) && !topup_hyp_memcache(vcpu))
+			val[0] = SMCCC_RET_SUCCESS;
+		break;
 	case ARM_SMCCC_TRNG_VERSION:
 	case ARM_SMCCC_TRNG_FEATURES:
 	case ARM_SMCCC_TRNG_GET_UUID:
diff --git a/arch/arm64/kvm/iommu.c b/arch/arm64/kvm/iommu.c
new file mode 100644
index 0000000..6ca1713
--- /dev/null
+++ b/arch/arm64/kvm/iommu.c
@@ -0,0 +1,63 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (C) 2022 - Google LLC
+ * Author: David Brazdil <dbrazdil@google.com>
+ */
+
+#include <linux/kvm_host.h>
+
+static unsigned long dev_to_id(struct device *dev)
+{
+	/* Use the struct device pointer as a unique identifier. */
+	return (unsigned long)dev;
+}
+
+int pkvm_iommu_driver_init(enum pkvm_iommu_driver_id id, void *data, size_t size)
+{
+	return kvm_call_hyp_nvhe(__pkvm_iommu_driver_init, id, data, size);
+}
+
+int pkvm_iommu_register(struct device *dev, enum pkvm_iommu_driver_id drv_id,
+			phys_addr_t pa, size_t size, struct device *parent)
+{
+	void *mem;
+	int ret;
+
+	/*
+	 * Hypcall to register the device. It will return -ENOMEM if it needs
+	 * more memory. In that case allocate a page and retry.
+	 * We assume that hyp never allocates more than a page per hypcall.
+	 */
+	ret = kvm_call_hyp_nvhe(__pkvm_iommu_register, dev_to_id(dev),
+				drv_id, pa, size, dev_to_id(parent), NULL, 0);
+	if (ret == -ENOMEM) {
+		mem = (void *)__get_free_page(GFP_KERNEL);
+		if (!mem)
+			return -ENOMEM;
+
+		ret = kvm_call_hyp_nvhe(__pkvm_iommu_register, dev_to_id(dev),
+					drv_id, pa, size, dev_to_id(parent),
+					mem, PAGE_SIZE);
+	}
+	return ret;
+}
+
+int pkvm_iommu_suspend(struct device *dev)
+{
+	return kvm_call_hyp_nvhe(__pkvm_iommu_pm_notify, dev_to_id(dev),
+				 PKVM_IOMMU_PM_SUSPEND);
+}
+EXPORT_SYMBOL_GPL(pkvm_iommu_suspend);
+
+int pkvm_iommu_resume(struct device *dev)
+{
+	return kvm_call_hyp_nvhe(__pkvm_iommu_pm_notify, dev_to_id(dev),
+				 PKVM_IOMMU_PM_RESUME);
+}
+EXPORT_SYMBOL_GPL(pkvm_iommu_resume);
+
+int pkvm_iommu_finalize(void)
+{
+	return kvm_call_hyp_nvhe(__pkvm_iommu_finalize);
+}
+EXPORT_SYMBOL_GPL(pkvm_iommu_finalize);
diff --git a/arch/arm64/kvm/iommu/Makefile b/arch/arm64/kvm/iommu/Makefile
new file mode 100644
index 0000000..cb3242c
--- /dev/null
+++ b/arch/arm64/kvm/iommu/Makefile
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# Makefile for Kernel-based Virtual Machine module
+#
+
+obj-$(CONFIG_KVM_S2MPU) += s2mpu.o
+obj-$(CONFIG_TEST_KVM_S2MPU) += test_kvm_s2mpu.o
diff --git a/arch/arm64/kvm/iommu/s2mpu.c b/arch/arm64/kvm/iommu/s2mpu.c
new file mode 100644
index 0000000..733451d7
--- /dev/null
+++ b/arch/arm64/kvm/iommu/s2mpu.c
@@ -0,0 +1,120 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (C) 2021 - Google LLC
+ * Author: David Brazdil <dbrazdil@google.com>
+ */
+
+#include <linux/kvm_host.h>
+#include <asm/kvm_s2mpu.h>
+
+static int init_s2mpu_driver(void)
+{
+	static DEFINE_MUTEX(lock);
+	static bool init_done;
+
+	struct mpt *mpt;
+	unsigned int gb;
+	unsigned long addr;
+	u64 pfn;
+	int ret = 0;
+
+	mutex_lock(&lock);
+	if (init_done)
+		goto out;
+
+	/* Allocate a page for driver data. Must fit MPT descriptor. */
+	BUILD_BUG_ON(sizeof(*mpt) > PAGE_SIZE);
+	addr = __get_free_page(GFP_KERNEL);
+	if (!addr) {
+		ret = -ENOMEM;
+		goto out;
+	}
+
+	mpt = (struct mpt *)addr;
+
+	/* Allocate SMPT buffers. */
+	for_each_gb(gb) {
+		addr = __get_free_pages(GFP_KERNEL, SMPT_ORDER);
+		if (!addr) {
+			ret = -ENOMEM;
+			goto out_free;
+		}
+		mpt->fmpt[gb].smpt = (u32 *)addr;
+	}
+
+	/* Share MPT descriptor with hyp. */
+	pfn = __pa(mpt) >> PAGE_SHIFT;
+	ret = kvm_call_hyp_nvhe(__pkvm_host_share_hyp, pfn);
+	if (ret)
+		goto out_free;
+
+	/* Hypercall to initialize EL2 driver. */
+	ret = pkvm_iommu_driver_init(PKVM_IOMMU_DRIVER_S2MPU, mpt, sizeof(*mpt));
+	if (ret)
+		goto out_unshare;
+
+	init_done = true;
+
+out_unshare:
+	WARN_ON(kvm_call_hyp_nvhe(__pkvm_host_unshare_hyp, pfn));
+out_free:
+	/* TODO - will driver return the memory? */
+	if (ret) {
+		for_each_gb(gb)
+			free_pages((unsigned long)mpt->fmpt[gb].smpt, SMPT_ORDER);
+		free_page((unsigned long)mpt);
+	}
+out:
+	mutex_unlock(&lock);
+	return ret;
+}
+
+int pkvm_iommu_s2mpu_register(struct device *dev, phys_addr_t addr)
+{
+	int ret;
+
+	if (!is_protected_kvm_enabled())
+		return -ENODEV;
+
+	ret = init_s2mpu_driver();
+	if (ret)
+		return ret;
+
+	return pkvm_iommu_register(dev, PKVM_IOMMU_DRIVER_S2MPU,
+				   addr, S2MPU_MMIO_SIZE, NULL);
+}
+EXPORT_SYMBOL_GPL(pkvm_iommu_s2mpu_register);
+
+static int init_sysmmu_sync_driver(void)
+{
+	static DEFINE_MUTEX(lock);
+	static bool init_done;
+
+	int ret = 0;
+
+	mutex_lock(&lock);
+	if (!init_done) {
+		ret = pkvm_iommu_driver_init(PKVM_IOMMU_DRIVER_SYSMMU_SYNC, NULL, 0);
+		init_done = !ret;
+	}
+	mutex_unlock(&lock);
+	return ret;
+}
+
+int pkvm_iommu_sysmmu_sync_register(struct device *dev, phys_addr_t addr,
+				    struct device *parent)
+{
+	int ret;
+
+	if (!is_protected_kvm_enabled())
+		return -ENODEV;
+
+	ret = init_sysmmu_sync_driver();
+	if (ret)
+		return ret;
+
+	return pkvm_iommu_register(dev, PKVM_IOMMU_DRIVER_SYSMMU_SYNC,
+				   addr + SYSMMU_SYNC_S2_OFFSET,
+				   SYSMMU_SYNC_S2_MMIO_SIZE, parent);
+}
+EXPORT_SYMBOL_GPL(pkvm_iommu_sysmmu_sync_register);
diff --git a/arch/arm64/kvm/iommu/test_kvm_s2mpu.c b/arch/arm64/kvm/iommu/test_kvm_s2mpu.c
new file mode 100644
index 0000000..fbc500d
--- /dev/null
+++ b/arch/arm64/kvm/iommu/test_kvm_s2mpu.c
@@ -0,0 +1,283 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (C) 2021 - Google LLC
+ * Author: David Brazdil <dbrazdil@google.com>
+ */
+
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include "../../../tools/testing/selftests/kselftest_module.h"
+
+#include <linux/slab.h>
+
+#include <asm/kvm_s2mpu.h>
+
+KSTM_MODULE_GLOBALS();
+
+#define ASSERT(cond)							\
+	do {								\
+		if (!(cond)) {						\
+			pr_err("line %d: assertion failed: %s\n",	\
+			       __LINE__, #cond);			\
+			return -1;					\
+		}							\
+	} while (0)
+
+static struct fmpt g_fmpt;
+static u32 g_smpt[SMPT_NUM_WORDS];
+
+static void __init init_smpt(enum mpt_prot prot)
+{
+	memset(g_smpt, (char)mpt_prot_doubleword[prot], SMPT_SIZE);
+}
+
+static void __init init_fmpt(enum mpt_prot prot, bool gran_1g)
+{
+	init_smpt(prot);
+	g_fmpt = (struct fmpt){
+		.gran_1g = gran_1g,
+		.prot = prot,
+		.smpt = g_smpt,
+	};
+}
+
+static enum mpt_prot __init get_prot_at(size_t gb_byte_off)
+{
+	size_t page_idx = gb_byte_off / SMPT_GRAN;
+	size_t word_idx = page_idx / SMPT_ELEMS_PER_WORD;
+	size_t bit_shift = (page_idx % SMPT_ELEMS_PER_WORD) * MPT_PROT_BITS;
+
+	return (g_smpt[word_idx] >> bit_shift) & MPT_PROT_MASK;
+}
+
+static bool __init check_smpt(size_t start_byte, size_t end_byte,
+			      enum mpt_prot prot_out, enum mpt_prot prot_in)
+{
+	size_t off;
+
+	for (off = 0; off < start_byte; off += PAGE_SIZE) {
+		if (get_prot_at(off) != prot_out)
+			return false;
+	}
+	for (off = start_byte; off < end_byte; off += PAGE_SIZE) {
+		if (get_prot_at(off) != prot_in)
+			return false;
+	}
+	for (off = end_byte; off < SZ_1G; off += PAGE_SIZE) {
+		if (get_prot_at(off) != prot_out)
+			return false;
+	}
+	return true;
+}
+
+/* Start with 1G granule, overwrite the whole 1G. */
+static int __init test_set_fmpt__fmpt_to_fmpt_whole(void)
+{
+	init_fmpt(MPT_PROT_NONE, /*gran_1g*/ true);
+	__set_fmpt_range(&g_fmpt, 0, SZ_1G, MPT_PROT_R);
+	ASSERT(g_fmpt.flags == MPT_UPDATE_L1);
+	ASSERT(g_fmpt.gran_1g);
+	ASSERT(g_fmpt.prot == MPT_PROT_R);
+	return 0;
+}
+
+/* Start with 1G granule, overwrite the whole 1G with the same prot. */
+static int __init test_set_fmpt__fmpt_no_change_whole(void)
+{
+	init_fmpt(MPT_PROT_R, /*gran_1g*/ true);
+	__set_fmpt_range(&g_fmpt, 0, SZ_1G, MPT_PROT_R);
+	ASSERT(g_fmpt.flags == 0);
+	ASSERT(g_fmpt.gran_1g);
+	ASSERT(g_fmpt.prot == MPT_PROT_R);
+	return 0;
+}
+
+/* Start with 1G granule, partially overwrite with the same prot. */
+static int __init test_set_fmpt__fmpt_no_change_partial(void)
+{
+	init_fmpt(MPT_PROT_R, /*gran_1g*/ true);
+	__set_fmpt_range(&g_fmpt, 0, PAGE_SIZE, MPT_PROT_R);
+	ASSERT(g_fmpt.flags == 0);
+	ASSERT(g_fmpt.gran_1g);
+	ASSERT(g_fmpt.prot == MPT_PROT_R);
+	return 0;
+}
+
+/* Convert from 1G to PAGE_SIZE granule. */
+static int __init test_set_fmpt__fmpt_to_smpt(void)
+{
+	size_t start = 5 * SMPT_WORD_BYTE_RANGE / 2;
+	size_t end = 20 * SMPT_WORD_BYTE_RANGE;
+
+	init_fmpt(MPT_PROT_R, /*gran_1g*/ true);
+	__set_fmpt_range(&g_fmpt, start, end, MPT_PROT_RW);
+	ASSERT(g_fmpt.flags == (MPT_UPDATE_L1 | MPT_UPDATE_L2));
+	ASSERT(!g_fmpt.gran_1g);
+	return check_smpt(start, end, MPT_PROT_R, MPT_PROT_RW) ? 0 : 1;
+}
+
+/* Convert from PAGE_SIZE to 1G granule by overwriting the whole 1G. */
+static int __init test_set_fmpt__smpt_to_fmpt_whole(void)
+{
+	init_fmpt(MPT_PROT_NONE, /*gran_1g*/ false);
+	__set_fmpt_range(&g_fmpt, 0, SZ_1G, MPT_PROT_R);
+	ASSERT(g_fmpt.flags == MPT_UPDATE_L1);
+	ASSERT(g_fmpt.gran_1g);
+	ASSERT(g_fmpt.prot == MPT_PROT_R);
+	return 0;
+}
+
+/* Convert from PAGE_SIZE to 1G granule by making the SMPT uniform. */
+static int __init test_set_fmpt__smpt_to_fmpt_partial(void)
+{
+	size_t start = 5 * SMPT_WORD_BYTE_RANGE / 2;
+	size_t end = 20 * SMPT_WORD_BYTE_RANGE;
+
+	/* Create SMPT with all PROT_W except a small subrange. */
+	init_fmpt(MPT_PROT_W, /*gran_1g*/ false);
+	__set_smpt_range(g_smpt, start, end, MPT_PROT_RW);
+
+	/* Fill the subrange with PROT_W to make the SMPT uniform. */
+	__set_fmpt_range(&g_fmpt, start, end, MPT_PROT_W);
+	ASSERT(g_fmpt.flags == MPT_UPDATE_L1);
+	ASSERT(g_fmpt.gran_1g);
+	ASSERT(g_fmpt.prot == MPT_PROT_W);
+	return 0;
+}
+
+/* Keep PAGE_SIZE granule when SMPT not uniform after update. */
+static int __init test_set_fmpt__smpt_to_smpt(void)
+{
+	size_t start = SZ_1G - SMPT_GRAN;
+	size_t end = SZ_1G;
+
+	init_fmpt(MPT_PROT_NONE, /*gran_1g*/ false);
+	ASSERT(__is_smpt_uniform(g_smpt, MPT_PROT_NONE));
+
+	/* Fill the subrange with PROT_W to make the SMPT uniform. */
+	__set_fmpt_range(&g_fmpt, start, end, MPT_PROT_RW);
+	ASSERT(g_fmpt.flags == MPT_UPDATE_L2);
+	ASSERT(!g_fmpt.gran_1g);
+	ASSERT(!__is_smpt_uniform(g_smpt, MPT_PROT_NONE));
+	return 0;
+}
+
+static int __init __test_set_smpt(size_t start_byte, size_t end_byte)
+{
+	init_smpt(MPT_PROT_NONE);
+	__set_smpt_range(g_smpt, start_byte, end_byte, MPT_PROT_W);
+	return check_smpt(start_byte, end_byte, MPT_PROT_NONE, MPT_PROT_W) ? 0 : 1;
+}
+
+/* Range within one SMPT word, force a fallback to __set_smpt_range_slow. */
+static int __init test_set_smpt__within_one_word(void)
+{
+	return __test_set_smpt(3 * SMPT_WORD_BYTE_RANGE + 5 * PAGE_SIZE,
+			       3 * SMPT_WORD_BYTE_RANGE + 6 * PAGE_SIZE);
+}
+
+/* No whole SMPT word, force a fallback to __set_smpt_range_slow. */
+static int __init test_set_smpt__no_whole_word(void)
+{
+	return __test_set_smpt(3 * SMPT_WORD_BYTE_RANGE + 5 * PAGE_SIZE,
+			       4 * SMPT_WORD_BYTE_RANGE + 2 * PAGE_SIZE);
+}
+
+/* Both start and end aligned to SMPT word. */
+static int __init test_set_smpt__no_prologue_or_epilogue(void)
+{
+	return __test_set_smpt(10 * SMPT_WORD_BYTE_RANGE,
+			       20 * SMPT_WORD_BYTE_RANGE);
+}
+
+/* Start not aligned to SMPT word. */
+static int __init test_set_smpt__prologue(void)
+{
+	return __test_set_smpt(17 * SMPT_WORD_BYTE_RANGE / 2,
+			       20 * SMPT_WORD_BYTE_RANGE);
+}
+
+/* End not aligned to SMPT word. */
+static int __init test_set_smpt__epilogue(void)
+{
+	return __test_set_smpt(0, 17 * SMPT_WORD_BYTE_RANGE / 2);
+}
+
+/* Neither start nor end aligned to SMPT word. */
+static int __init test_set_smpt__prologue_and_epilogue(void)
+{
+	return __test_set_smpt(17 * SMPT_WORD_BYTE_RANGE / 2,
+			       31 * SMPT_WORD_BYTE_RANGE / 2);
+}
+
+static int __init __test_set_smpt_slow(size_t start_byte, size_t end_byte)
+{
+	init_smpt(MPT_PROT_NONE);
+	__set_smpt_range_slow(g_smpt, start_byte, end_byte, MPT_PROT_RW);
+	return check_smpt(start_byte, end_byte, MPT_PROT_NONE, MPT_PROT_RW) ? 0 : 1;
+}
+
+static int __init test_set_smpt_slow__empty_word_align(void)
+{
+	return __test_set_smpt_slow(3 * SMPT_WORD_BYTE_RANGE,
+				    3 * SMPT_WORD_BYTE_RANGE);
+}
+
+static int __init test_set_smpt_slow__empty_page_align(void)
+{
+	return __test_set_smpt_slow(3 * SMPT_WORD_BYTE_RANGE + PAGE_SIZE,
+				    3 * SMPT_WORD_BYTE_RANGE + PAGE_SIZE);
+}
+
+static int __init test_set_smpt_slow__one_whole_word(void)
+{
+	return __test_set_smpt_slow(3 * SMPT_WORD_BYTE_RANGE,
+				    4 * SMPT_WORD_BYTE_RANGE);
+}
+
+static int __init test_set_smpt_slow__one_partial_word(void)
+{
+	return __test_set_smpt_slow(3 * SMPT_WORD_BYTE_RANGE + PAGE_SIZE,
+				    4 * SMPT_WORD_BYTE_RANGE - PAGE_SIZE);
+}
+
+static int __init test_set_smpt_slow__multiple_whole_words(void)
+{
+	return __test_set_smpt_slow(13 * SMPT_WORD_BYTE_RANGE,
+				    17 * SMPT_WORD_BYTE_RANGE);
+}
+
+static int __init test_set_smpt_slow__multiple_partial_words(void)
+{
+	return __test_set_smpt_slow((13 * 2 + 1) * SMPT_WORD_BYTE_RANGE / 2,
+				    (17 * 4 + 1) * SMPT_WORD_BYTE_RANGE / 4);
+}
+
+static void __init selftest(void)
+{
+	KSTM_CHECK_ZERO(test_set_fmpt__fmpt_to_fmpt_whole());
+	KSTM_CHECK_ZERO(test_set_fmpt__fmpt_no_change_whole());
+	KSTM_CHECK_ZERO(test_set_fmpt__fmpt_no_change_partial());
+	KSTM_CHECK_ZERO(test_set_fmpt__fmpt_to_smpt());
+	KSTM_CHECK_ZERO(test_set_fmpt__smpt_to_fmpt_whole());
+	KSTM_CHECK_ZERO(test_set_fmpt__smpt_to_fmpt_partial());
+	KSTM_CHECK_ZERO(test_set_fmpt__smpt_to_smpt());
+
+	KSTM_CHECK_ZERO(test_set_smpt__within_one_word());
+	KSTM_CHECK_ZERO(test_set_smpt__no_whole_word());
+	KSTM_CHECK_ZERO(test_set_smpt__no_prologue_or_epilogue());
+	KSTM_CHECK_ZERO(test_set_smpt__prologue());
+	KSTM_CHECK_ZERO(test_set_smpt__epilogue());
+	KSTM_CHECK_ZERO(test_set_smpt__prologue_and_epilogue());
+
+	KSTM_CHECK_ZERO(test_set_smpt_slow__empty_word_align());
+	KSTM_CHECK_ZERO(test_set_smpt_slow__empty_page_align());
+	KSTM_CHECK_ZERO(test_set_smpt_slow__one_whole_word());
+	KSTM_CHECK_ZERO(test_set_smpt_slow__one_partial_word());
+	KSTM_CHECK_ZERO(test_set_smpt_slow__multiple_whole_words());
+	KSTM_CHECK_ZERO(test_set_smpt_slow__multiple_partial_words());
+}
+
+KSTM_MODULE_LOADERS(test_kvm_s2mpu);
+MODULE_AUTHOR("David Brazdil <dbrazdil@google.com>");
+MODULE_LICENSE("GPL v2");
diff --git a/arch/arm64/kvm/mmio.c b/arch/arm64/kvm/mmio.c
index 3e2d8ba..db6630c 100644
--- a/arch/arm64/kvm/mmio.c
+++ b/arch/arm64/kvm/mmio.c
@@ -133,9 +133,19 @@
 	/*
 	 * No valid syndrome? Ask userspace for help if it has
 	 * volunteered to do so, and bail out otherwise.
+	 *
+	 * In the protected VM case, there isn't much userspace can do
+	 * though, so directly deliver an exception to the guest.
 	 */
 	if (!kvm_vcpu_dabt_isvalid(vcpu)) {
-		if (vcpu->kvm->arch.return_nisv_io_abort_to_user) {
+		if (is_protected_kvm_enabled() &&
+		    kvm_vm_is_protected(vcpu->kvm)) {
+			kvm_inject_dabt(vcpu, kvm_vcpu_get_hfar(vcpu));
+			return 1;
+		}
+
+		if (test_bit(KVM_ARCH_FLAG_RETURN_NISV_IO_ABORT_TO_USER,
+			     &vcpu->kvm->arch.flags)) {
 			run->exit_reason = KVM_EXIT_ARM_NISV;
 			run->arm_nisv.esr_iss = kvm_vcpu_dabt_iss_nisv_sanitized(vcpu);
 			run->arm_nisv.fault_ipa = fault_ipa;
diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c
index 38a8095..86a30df 100644
--- a/arch/arm64/kvm/mmu.c
+++ b/arch/arm64/kvm/mmu.c
@@ -190,6 +190,22 @@
 	__unmap_stage2_range(mmu, start, size, true);
 }
 
+static void pkvm_stage2_flush(struct kvm *kvm)
+{
+	struct kvm_pinned_page *ppage;
+
+	/*
+	 * Contrary to stage2_apply_range(), we don't need to check
+	 * whether the VM is being torn down, as this is always called
+	 * from a vcpu thread, and the list is only ever freed on VM
+	 * destroy (which only occurs when all vcpu are gone).
+	 */
+	list_for_each_entry(ppage, &kvm->arch.pkvm.pinned_pages, link) {
+		__clean_dcache_guest_page(page_address(ppage->page), PAGE_SIZE);
+		cond_resched_lock(&kvm->mmu_lock);
+	}
+}
+
 static void stage2_flush_memslot(struct kvm *kvm,
 				 struct kvm_memory_slot *memslot)
 {
@@ -215,9 +231,13 @@
 	idx = srcu_read_lock(&kvm->srcu);
 	spin_lock(&kvm->mmu_lock);
 
-	slots = kvm_memslots(kvm);
-	kvm_for_each_memslot(memslot, slots)
-		stage2_flush_memslot(kvm, memslot);
+	if (!is_protected_kvm_enabled()) {
+		slots = kvm_memslots(kvm);
+		kvm_for_each_memslot(memslot, slots)
+			stage2_flush_memslot(kvm, memslot);
+	} else if (!kvm_vm_is_protected(kvm)) {
+		pkvm_stage2_flush(kvm);
+	}
 
 	spin_unlock(&kvm->mmu_lock);
 	srcu_read_unlock(&kvm->srcu, idx);
@@ -239,6 +259,9 @@
 
 static bool kvm_host_owns_hyp_mappings(void)
 {
+	if (is_kernel_in_hyp_mode())
+		return false;
+
 	if (static_branch_likely(&kvm_protected_mode_initialized))
 		return false;
 
@@ -281,14 +304,117 @@
 	}
 }
 
-static int pkvm_share_hyp(phys_addr_t start, phys_addr_t end)
+struct hyp_shared_pfn {
+	u64 pfn;
+	int count;
+	struct rb_node node;
+};
+
+static DEFINE_MUTEX(hyp_shared_pfns_lock);
+static struct rb_root hyp_shared_pfns = RB_ROOT;
+
+static struct hyp_shared_pfn *find_shared_pfn(u64 pfn, struct rb_node ***node,
+					      struct rb_node **parent)
 {
-	phys_addr_t addr;
+	struct hyp_shared_pfn *this;
+
+	*node = &hyp_shared_pfns.rb_node;
+	*parent = NULL;
+	while (**node) {
+		this = container_of(**node, struct hyp_shared_pfn, node);
+		*parent = **node;
+		if (this->pfn < pfn)
+			*node = &((**node)->rb_left);
+		else if (this->pfn > pfn)
+			*node = &((**node)->rb_right);
+		else
+			return this;
+	}
+
+	return NULL;
+}
+
+static int share_pfn_hyp(u64 pfn)
+{
+	struct rb_node **node, *parent;
+	struct hyp_shared_pfn *this;
+	int ret = 0;
+
+	mutex_lock(&hyp_shared_pfns_lock);
+	this = find_shared_pfn(pfn, &node, &parent);
+	if (this) {
+		this->count++;
+		goto unlock;
+	}
+
+	this = kzalloc(sizeof(*this), GFP_KERNEL);
+	if (!this) {
+		ret = -ENOMEM;
+		goto unlock;
+	}
+
+	this->pfn = pfn;
+	this->count = 1;
+	rb_link_node(&this->node, parent, node);
+	rb_insert_color(&this->node, &hyp_shared_pfns);
+	ret = kvm_call_hyp_nvhe(__pkvm_host_share_hyp, pfn, 1);
+unlock:
+	mutex_unlock(&hyp_shared_pfns_lock);
+
+	return ret;
+}
+
+static int unshare_pfn_hyp(u64 pfn)
+{
+	struct rb_node **node, *parent;
+	struct hyp_shared_pfn *this;
+	int ret = 0;
+
+	mutex_lock(&hyp_shared_pfns_lock);
+	this = find_shared_pfn(pfn, &node, &parent);
+	if (WARN_ON(!this)) {
+		ret = -ENOENT;
+		goto unlock;
+	}
+
+	this->count--;
+	if (this->count)
+		goto unlock;
+
+	rb_erase(&this->node, &hyp_shared_pfns);
+	kfree(this);
+	ret = kvm_call_hyp_nvhe(__pkvm_host_unshare_hyp, pfn, 1);
+unlock:
+	mutex_unlock(&hyp_shared_pfns_lock);
+
+	return ret;
+}
+
+int kvm_share_hyp(void *from, void *to)
+{
+	phys_addr_t start, end, cur;
+	u64 pfn;
 	int ret;
 
-	for (addr = ALIGN_DOWN(start, PAGE_SIZE); addr < end; addr += PAGE_SIZE) {
-		ret = kvm_call_hyp_nvhe(__pkvm_host_share_hyp,
-					__phys_to_pfn(addr));
+	if (is_kernel_in_hyp_mode())
+		return 0;
+
+	/*
+	 * The share hcall maps things in the 'fixed-offset' region of the hyp
+	 * VA space, so we can only share physically contiguous data-structures
+	 * for now.
+	 */
+	if (is_vmalloc_or_module_addr(from) || is_vmalloc_or_module_addr(to))
+		return -EINVAL;
+
+	if (kvm_host_owns_hyp_mappings())
+		return create_hyp_mappings(from, to, PAGE_HYP);
+
+	start = ALIGN_DOWN(__pa(from), PAGE_SIZE);
+	end = PAGE_ALIGN(__pa(to));
+	for (cur = start; cur < end; cur += PAGE_SIZE) {
+		pfn = __phys_to_pfn(cur);
+		ret = share_pfn_hyp(pfn);
 		if (ret)
 			return ret;
 	}
@@ -296,6 +422,22 @@
 	return 0;
 }
 
+void kvm_unshare_hyp(void *from, void *to)
+{
+	phys_addr_t start, end, cur;
+	u64 pfn;
+
+	if (is_kernel_in_hyp_mode() || kvm_host_owns_hyp_mappings() || !from)
+		return;
+
+	start = ALIGN_DOWN(__pa(from), PAGE_SIZE);
+	end = PAGE_ALIGN(__pa(to));
+	for (cur = start; cur < end; cur += PAGE_SIZE) {
+		pfn = __phys_to_pfn(cur);
+		WARN_ON(unshare_pfn_hyp(pfn));
+	}
+}
+
 /**
  * create_hyp_mappings - duplicate a kernel virtual address range in Hyp mode
  * @from:	The virtual kernel start address of the range
@@ -316,12 +458,8 @@
 	if (is_kernel_in_hyp_mode())
 		return 0;
 
-	if (!kvm_host_owns_hyp_mappings()) {
-		if (WARN_ON(prot != PAGE_HYP))
-			return -EPERM;
-		return pkvm_share_hyp(kvm_kaddr_to_phys(from),
-				      kvm_kaddr_to_phys(to));
-	}
+	if (!kvm_host_owns_hyp_mappings())
+		return -EPERM;
 
 	start = start & PAGE_MASK;
 	end = PAGE_ALIGN(end);
@@ -407,6 +545,9 @@
 	unsigned long addr;
 	int ret;
 
+	if (is_protected_kvm_enabled())
+		return -EPERM;
+
 	*kaddr = ioremap(phys_addr, size);
 	if (!*kaddr)
 		return -ENOMEM;
@@ -516,26 +657,56 @@
  * kvm_init_stage2_mmu - Initialise a S2 MMU strucrure
  * @kvm:	The pointer to the KVM structure
  * @mmu:	The pointer to the s2 MMU structure
+ * @type:	The machine type of the virtual machine
  *
  * Allocates only the stage-2 HW PGD level table(s).
  * Note we don't need locking here as this is only called when the VM is
  * created, which can only be done once.
  */
-int kvm_init_stage2_mmu(struct kvm *kvm, struct kvm_s2_mmu *mmu)
+int kvm_init_stage2_mmu(struct kvm *kvm, struct kvm_s2_mmu *mmu, unsigned long type)
 {
+	u32 kvm_ipa_limit = get_kvm_ipa_limit();
 	int cpu, err;
 	struct kvm_pgtable *pgt;
+	u64 mmfr0, mmfr1;
+	u32 phys_shift;
+
+	phys_shift = KVM_VM_TYPE_ARM_IPA_SIZE(type);
+	if (is_protected_kvm_enabled()) {
+		phys_shift = kvm_ipa_limit;
+	} else if (phys_shift) {
+		if (phys_shift > kvm_ipa_limit ||
+		    phys_shift < ARM64_MIN_PARANGE_BITS)
+			return -EINVAL;
+	} else {
+		phys_shift = KVM_PHYS_SHIFT;
+		if (phys_shift > kvm_ipa_limit) {
+			pr_warn_once("%s using unsupported default IPA limit, upgrade your VMM\n",
+				     current->comm);
+			return -EINVAL;
+		}
+	}
+
+	mmfr0 = read_sanitised_ftr_reg(SYS_ID_AA64MMFR0_EL1);
+	mmfr1 = read_sanitised_ftr_reg(SYS_ID_AA64MMFR1_EL1);
+	kvm->arch.vtcr = kvm_get_vtcr(mmfr0, mmfr1, phys_shift);
+	INIT_LIST_HEAD(&kvm->arch.pkvm.pinned_pages);
+	mmu->arch = &kvm->arch;
+
+	if (is_protected_kvm_enabled())
+		return 0;
 
 	if (mmu->pgt != NULL) {
 		kvm_err("kvm_arch already initialized?\n");
 		return -EINVAL;
 	}
 
-	pgt = kzalloc(sizeof(*pgt), GFP_KERNEL);
+	pgt = kzalloc(sizeof(*pgt), GFP_KERNEL_ACCOUNT);
 	if (!pgt)
 		return -ENOMEM;
 
-	err = kvm_pgtable_stage2_init(pgt, &kvm->arch, &kvm_s2_mm_ops);
+	mmu->arch = &kvm->arch;
+	err = kvm_pgtable_stage2_init(pgt, mmu, &kvm_s2_mm_ops);
 	if (err)
 		goto out_free_pgtable;
 
@@ -548,7 +719,6 @@
 	for_each_possible_cpu(cpu)
 		*per_cpu_ptr(mmu->last_vcpu_ran, cpu) = -1;
 
-	mmu->arch = &kvm->arch;
 	mmu->pgt = pgt;
 	mmu->pgd_phys = __pa(pgt->pgd);
 	WRITE_ONCE(mmu->vmid.vmid_gen, 0);
@@ -634,6 +804,9 @@
 	struct kvm *kvm = kvm_s2_mmu_to_kvm(mmu);
 	struct kvm_pgtable *pgt = NULL;
 
+	if (is_protected_kvm_enabled())
+		return;
+
 	spin_lock(&kvm->mmu_lock);
 	pgt = mmu->pgt;
 	if (pgt) {
@@ -649,6 +822,34 @@
 	}
 }
 
+static void hyp_mc_free_fn(void *addr, void *unused)
+{
+	free_page((unsigned long)addr);
+}
+
+static void *hyp_mc_alloc_fn(void *unused)
+{
+	return (void *)__get_free_page(GFP_KERNEL_ACCOUNT);
+}
+
+void free_hyp_memcache(struct kvm_hyp_memcache *mc)
+{
+	if (is_protected_kvm_enabled())
+		__free_hyp_memcache(mc, hyp_mc_free_fn,
+				    kvm_host_va, NULL);
+}
+
+int topup_hyp_memcache(struct kvm_vcpu *vcpu)
+{
+	if (!is_protected_kvm_enabled())
+		return 0;
+
+	return __topup_hyp_memcache(&vcpu->arch.pkvm_memcache,
+				    kvm_mmu_cache_min_pages(vcpu->kvm),
+				    hyp_mc_alloc_fn,
+				    kvm_host_pa, NULL);
+}
+
 /**
  * kvm_phys_addr_ioremap - map a device range to guest IPA
  *
@@ -669,6 +870,9 @@
 				     KVM_PGTABLE_PROT_R |
 				     (writable ? KVM_PGTABLE_PROT_W : 0);
 
+	if (is_protected_kvm_enabled())
+		return -EPERM;
+
 	size += offset_in_page(guest_ipa);
 	guest_ipa &= PAGE_MASK;
 
@@ -965,6 +1169,100 @@
 	return 0;
 }
 
+static int pkvm_host_donate_guest(u64 pfn, u64 gfn)
+{
+	struct arm_smccc_res res;
+
+	arm_smccc_1_1_hvc(KVM_HOST_SMCCC_FUNC(__pkvm_host_donate_guest),
+			  pfn, gfn, &res);
+	WARN_ON(res.a0 != SMCCC_RET_SUCCESS);
+
+	/*
+	 * Getting -EPERM at this point implies that the pfn has already been
+	 * donated. This should only ever happen when two vCPUs faulted on the
+	 * same page, and the current one lost the race to do the donation.
+	 */
+	return (res.a1 == -EPERM) ? -EAGAIN : res.a1;
+}
+
+static int pkvm_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa,
+			  unsigned long hva)
+{
+	struct mm_struct *mm = current->mm;
+	unsigned int flags = FOLL_HWPOISON | FOLL_LONGTERM | FOLL_WRITE;
+	struct kvm_pinned_page *ppage;
+	struct kvm *kvm = vcpu->kvm;
+	struct page *page;
+	u64 pfn;
+	int ret;
+
+	ret = topup_hyp_memcache(vcpu);
+	if (ret)
+		return -ENOMEM;
+
+	ppage = kmalloc(sizeof(*ppage), GFP_KERNEL_ACCOUNT);
+	if (!ppage)
+		return -ENOMEM;
+
+	ret = account_locked_vm(mm, 1, true);
+	if (ret)
+		goto free_ppage;
+
+	mmap_read_lock(mm);
+	ret = pin_user_pages(hva, 1, flags, &page, NULL);
+	mmap_read_unlock(mm);
+
+	if (ret == -EHWPOISON) {
+		kvm_send_hwpoison_signal(hva, PAGE_SHIFT);
+		ret = 0;
+		goto dec_account;
+	} else if (ret != 1) {
+		ret = -EFAULT;
+		goto dec_account;
+	} else if (!PageSwapBacked(page)) {
+		/*
+		 * We really can't deal with page-cache pages returned by GUP
+		 * because (a) we may trigger writeback of a page for which we
+		 * no longer have access and (b) page_mkclean() won't find the
+		 * stage-2 mapping in the rmap so we can get out-of-whack with
+		 * the filesystem when marking the page dirty during unpinning.
+		 *
+		 * Ideally we'd just restrict ourselves to anonymous pages, but
+		 * we also want to allow memfd (i.e. shmem) pages, so check for
+		 * pages backed by swap in the knowledge that the GUP pin will
+		 * prevent try_to_unmap() from succeeding.
+		 */
+		ret = -EIO;
+		goto dec_account;
+	}
+
+	spin_lock(&kvm->mmu_lock);
+	pfn = page_to_pfn(page);
+	ret = pkvm_host_donate_guest(pfn, fault_ipa >> PAGE_SHIFT);
+	if (ret) {
+		if (ret == -EAGAIN)
+			ret = 0;
+		goto unpin;
+	}
+
+	ppage->page = page;
+	INIT_LIST_HEAD(&ppage->link);
+	list_add(&ppage->link, &kvm->arch.pkvm.pinned_pages);
+	spin_unlock(&kvm->mmu_lock);
+
+	return 0;
+
+unpin:
+	spin_unlock(&kvm->mmu_lock);
+	unpin_user_pages(&page, 1);
+dec_account:
+	account_locked_vm(mm, 1, false);
+free_ppage:
+	kfree(ppage);
+
+	return ret;
+}
+
 static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa,
 			  struct kvm_memory_slot *memslot, unsigned long hva,
 			  unsigned long fault_status)
@@ -1295,7 +1593,7 @@
 		 * faulting VA. This is always 12 bits, irrespective
 		 * of the page size.
 		 */
-		fault_ipa |= kvm_vcpu_get_hfar(vcpu) & ((1 << 12) - 1);
+		fault_ipa |= kvm_vcpu_get_hfar(vcpu) & FAR_MASK;
 		ret = io_mem_abort(vcpu, fault_ipa);
 		goto out_unlock;
 	}
@@ -1309,7 +1607,11 @@
 		goto out_unlock;
 	}
 
-	ret = user_mem_abort(vcpu, fault_ipa, memslot, hva, fault_status);
+
+	if (is_protected_kvm_enabled())
+		ret = pkvm_mem_abort(vcpu, fault_ipa, hva);
+	else
+		ret = user_mem_abort(vcpu, fault_ipa, memslot, hva, fault_status);
 	if (ret == 0)
 		ret = 1;
 out:
@@ -1520,6 +1822,13 @@
 	hva_t reg_end = hva + mem->memory_size;
 	int ret = 0;
 
+	/* In protected mode, cannot modify memslots once a VM has run. */
+	if (is_protected_kvm_enabled() &&
+	    (change == KVM_MR_DELETE || change == KVM_MR_MOVE) &&
+	    kvm->arch.pkvm.shadow_handle) {
+		return -EPERM;
+	}
+
 	if (change != KVM_MR_CREATE && change != KVM_MR_MOVE &&
 			change != KVM_MR_FLAGS_ONLY)
 		return 0;
@@ -1593,6 +1902,10 @@
 	gpa_t gpa = slot->base_gfn << PAGE_SHIFT;
 	phys_addr_t size = slot->npages << PAGE_SHIFT;
 
+	/* Stage-2 is managed by hyp in protected mode. */
+	if (is_protected_kvm_enabled())
+		return;
+
 	spin_lock(&kvm->mmu_lock);
 	unmap_stage2_range(&kvm->arch.mmu, gpa, size);
 	spin_unlock(&kvm->mmu_lock);
diff --git a/arch/arm64/kvm/pkvm.c b/arch/arm64/kvm/pkvm.c
new file mode 100644
index 0000000..42ccb62
--- /dev/null
+++ b/arch/arm64/kvm/pkvm.c
@@ -0,0 +1,352 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2020 - Google LLC
+ * Author: Quentin Perret <qperret@google.com>
+ */
+
+#include <linux/io.h>
+#include <linux/kvm_host.h>
+#include <linux/memblock.h>
+#include <linux/mm.h>
+#include <linux/mutex.h>
+#include <linux/of_fdt.h>
+#include <linux/of_reserved_mem.h>
+#include <linux/sort.h>
+
+#include <asm/kvm_pkvm.h>
+
+#include "hyp_constants.h"
+
+static struct reserved_mem *pkvm_firmware_mem;
+static phys_addr_t *pvmfw_base = &kvm_nvhe_sym(pvmfw_base);
+static phys_addr_t *pvmfw_size = &kvm_nvhe_sym(pvmfw_size);
+
+static struct memblock_region *hyp_memory = kvm_nvhe_sym(hyp_memory);
+static unsigned int *hyp_memblock_nr_ptr = &kvm_nvhe_sym(hyp_memblock_nr);
+
+phys_addr_t hyp_mem_base;
+phys_addr_t hyp_mem_size;
+
+static int cmp_hyp_memblock(const void *p1, const void *p2)
+{
+	const struct memblock_region *r1 = p1;
+	const struct memblock_region *r2 = p2;
+
+	return r1->base < r2->base ? -1 : (r1->base > r2->base);
+}
+
+static void __init sort_memblock_regions(void)
+{
+	sort(hyp_memory,
+	     *hyp_memblock_nr_ptr,
+	     sizeof(struct memblock_region),
+	     cmp_hyp_memblock,
+	     NULL);
+}
+
+static int __init register_memblock_regions(void)
+{
+	struct memblock_region *reg;
+
+	for_each_mem_region(reg) {
+		if (*hyp_memblock_nr_ptr >= HYP_MEMBLOCK_REGIONS)
+			return -ENOMEM;
+
+		hyp_memory[*hyp_memblock_nr_ptr] = *reg;
+		(*hyp_memblock_nr_ptr)++;
+	}
+	sort_memblock_regions();
+
+	return 0;
+}
+
+void __init kvm_hyp_reserve(void)
+{
+	u64 hyp_mem_pages = 0;
+	int ret;
+
+	if (!is_hyp_mode_available() || is_kernel_in_hyp_mode())
+		return;
+
+	if (kvm_get_mode() != KVM_MODE_PROTECTED)
+		return;
+
+	ret = register_memblock_regions();
+	if (ret) {
+		*hyp_memblock_nr_ptr = 0;
+		kvm_err("Failed to register hyp memblocks: %d\n", ret);
+		return;
+	}
+
+	hyp_mem_pages += hyp_s1_pgtable_pages();
+	hyp_mem_pages += host_s2_pgtable_pages();
+	hyp_mem_pages += hyp_shadow_table_pages(KVM_SHADOW_VM_SIZE);
+	hyp_mem_pages += hyp_vmemmap_pages(STRUCT_HYP_PAGE_SIZE);
+	hyp_mem_pages += hyp_ffa_proxy_pages();
+
+	/*
+	 * Try to allocate a PMD-aligned region to reduce TLB pressure once
+	 * this is unmapped from the host stage-2, and fallback to PAGE_SIZE.
+	 */
+	hyp_mem_size = hyp_mem_pages << PAGE_SHIFT;
+	hyp_mem_base = memblock_phys_alloc(ALIGN(hyp_mem_size, PMD_SIZE),
+					   PMD_SIZE);
+	if (!hyp_mem_base)
+		hyp_mem_base = memblock_phys_alloc(hyp_mem_size, PAGE_SIZE);
+	else
+		hyp_mem_size = ALIGN(hyp_mem_size, PMD_SIZE);
+
+	if (!hyp_mem_base) {
+		kvm_err("Failed to reserve hyp memory\n");
+		return;
+	}
+
+	kvm_info("Reserved %lld MiB at 0x%llx\n", hyp_mem_size >> 20,
+		 hyp_mem_base);
+}
+
+/*
+ * Allocates and donates memory for EL2 shadow structs.
+ *
+ * Allocates space for the shadow state, which includes the shadow vm as well as
+ * the shadow vcpu states.
+ *
+ * Stores an opaque handler in the kvm struct for future reference.
+ *
+ * Return 0 on success, negative error code on failure.
+ */
+static int __create_el2_shadow(struct kvm *kvm)
+{
+	struct kvm_vcpu *vcpu;
+	size_t pgd_sz, shadow_sz, vcpu_state_sz;
+	void *pgd, *shadow_addr;
+	unsigned long idx;
+	int shadow_handle;
+	int ret;
+
+	if (kvm->created_vcpus < 1)
+		return -EINVAL;
+
+	pgd_sz = kvm_pgtable_stage2_pgd_size(kvm->arch.vtcr);
+	/*
+	 * The PGD pages will be reclaimed using a hyp_memcache which implies
+	 * page granularity. So, use alloc_pages_exact() to get individual
+	 * refcounts.
+	 */
+	pgd = alloc_pages_exact(pgd_sz, GFP_KERNEL_ACCOUNT);
+	if (!pgd)
+		return -ENOMEM;
+
+	/* Allocate memory to donate to hyp for the kvm and vcpu state pointers. */
+	shadow_sz = PAGE_ALIGN(KVM_SHADOW_VM_SIZE +
+			       sizeof(void *) * kvm->created_vcpus);
+	shadow_addr = alloc_pages_exact(shadow_sz, GFP_KERNEL_ACCOUNT);
+	if (!shadow_addr) {
+		ret = -ENOMEM;
+		goto free_pgd;
+	}
+
+	/* Donate the shadow memory to hyp and let hyp initialize it. */
+	ret = kvm_call_hyp_nvhe(__pkvm_init_shadow, kvm, shadow_addr, shadow_sz,
+				pgd);
+	if (ret < 0)
+		goto free_shadow;
+
+	shadow_handle = ret;
+
+	/* Store the shadow handle given by hyp for future call reference. */
+	kvm->arch.pkvm.shadow_handle = shadow_handle;
+
+	/* Donate memory for the vcpu state at hyp and initialize it. */
+	vcpu_state_sz = PAGE_ALIGN(SHADOW_VCPU_STATE_SIZE);
+	kvm_for_each_vcpu (idx, vcpu, kvm) {
+		void *vcpu_state;
+
+		/* Indexing of the vcpus to be sequential starting at 0. */
+		if (WARN_ON(vcpu->vcpu_idx != idx)) {
+			ret = -EINVAL;
+			goto destroy_vm;
+		}
+		vcpu_state = alloc_pages_exact(vcpu_state_sz, GFP_KERNEL_ACCOUNT);
+		if (!vcpu_state) {
+			ret = -ENOMEM;
+			goto destroy_vm;
+		}
+
+		ret = kvm_call_hyp_nvhe(__pkvm_init_shadow_vcpu, shadow_handle,
+					vcpu, vcpu_state);
+		if (ret) {
+			free_pages_exact(vcpu_state, vcpu_state_sz);
+			goto destroy_vm;
+		}
+	}
+
+	return 0;
+
+destroy_vm:
+	kvm_shadow_destroy(kvm);
+	return ret;
+free_shadow:
+	free_pages_exact(shadow_addr, shadow_sz);
+free_pgd:
+	free_pages_exact(pgd, pgd_sz);
+	return ret;
+}
+
+int create_el2_shadow(struct kvm *kvm)
+{
+	int ret = 0;
+
+	mutex_lock(&kvm->arch.pkvm.shadow_lock);
+	if (!kvm->arch.pkvm.shadow_handle)
+		ret = __create_el2_shadow(kvm);
+	mutex_unlock(&kvm->arch.pkvm.shadow_lock);
+
+	return ret;
+}
+
+void kvm_shadow_destroy(struct kvm *kvm)
+{
+	struct kvm_pinned_page *ppage, *tmp;
+	struct mm_struct *mm = current->mm;
+	struct list_head *ppages;
+
+	if (kvm->arch.pkvm.shadow_handle)
+		WARN_ON(kvm_call_hyp_nvhe(__pkvm_teardown_shadow,
+					  kvm->arch.pkvm.shadow_handle));
+
+	free_hyp_memcache(&kvm->arch.pkvm.teardown_mc);
+
+	ppages = &kvm->arch.pkvm.pinned_pages;
+	list_for_each_entry_safe(ppage, tmp, ppages, link) {
+		WARN_ON(kvm_call_hyp_nvhe(__pkvm_host_reclaim_page,
+					  page_to_pfn(ppage->page)));
+		cond_resched();
+
+		account_locked_vm(mm, 1, false);
+		unpin_user_pages_dirty_lock(&ppage->page, 1, true);
+		list_del(&ppage->link);
+		kfree(ppage);
+	}
+}
+
+static int __init pkvm_firmware_rmem_err(struct reserved_mem *rmem,
+					 const char *reason)
+{
+	phys_addr_t end = rmem->base + rmem->size;
+
+	kvm_err("Ignoring pkvm guest firmware memory reservation [%pa - %pa]: %s\n",
+		&rmem->base, &end, reason);
+	return -EINVAL;
+}
+
+static int __init pkvm_firmware_rmem_init(struct reserved_mem *rmem)
+{
+	unsigned long node = rmem->fdt_node;
+
+	if (pkvm_firmware_mem)
+		return pkvm_firmware_rmem_err(rmem, "duplicate reservation");
+
+	if (!of_get_flat_dt_prop(node, "no-map", NULL))
+		return pkvm_firmware_rmem_err(rmem, "missing \"no-map\" property");
+
+	if (of_get_flat_dt_prop(node, "reusable", NULL))
+		return pkvm_firmware_rmem_err(rmem, "\"reusable\" property unsupported");
+
+	if (!PAGE_ALIGNED(rmem->base))
+		return pkvm_firmware_rmem_err(rmem, "base is not page-aligned");
+
+	if (!PAGE_ALIGNED(rmem->size))
+		return pkvm_firmware_rmem_err(rmem, "size is not page-aligned");
+
+	*pvmfw_size = rmem->size;
+	*pvmfw_base = rmem->base;
+	pkvm_firmware_mem = rmem;
+	return 0;
+}
+RESERVEDMEM_OF_DECLARE(pkvm_firmware, "linux,pkvm-guest-firmware-memory",
+		       pkvm_firmware_rmem_init);
+
+static int __init pkvm_firmware_rmem_clear(void)
+{
+	void *addr;
+	phys_addr_t size;
+
+	if (likely(!pkvm_firmware_mem) || is_protected_kvm_enabled())
+		return 0;
+
+	kvm_info("Clearing unused pKVM firmware memory\n");
+	size = pkvm_firmware_mem->size;
+	addr = memremap(pkvm_firmware_mem->base, size, MEMREMAP_WB);
+	if (!addr)
+		return -EINVAL;
+
+	memset(addr, 0, size);
+	dcache_clean_poc((unsigned long)addr, (unsigned long)addr + size);
+	memunmap(addr);
+	return 0;
+}
+device_initcall_sync(pkvm_firmware_rmem_clear);
+
+static int pkvm_vm_ioctl_set_fw_ipa(struct kvm *kvm, u64 ipa)
+{
+	int ret = 0;
+
+	if (!pkvm_firmware_mem)
+		return -EINVAL;
+
+	mutex_lock(&kvm->arch.pkvm.shadow_lock);
+	if (kvm->arch.pkvm.shadow_handle) {
+		ret = -EBUSY;
+		goto out_unlock;
+	}
+
+	kvm->arch.pkvm.pvmfw_load_addr = ipa;
+out_unlock:
+	mutex_unlock(&kvm->arch.pkvm.shadow_lock);
+	return ret;
+}
+
+static int pkvm_vm_ioctl_info(struct kvm *kvm,
+			      struct kvm_protected_vm_info __user *info)
+{
+	struct kvm_protected_vm_info kinfo = {
+		.firmware_size = pkvm_firmware_mem ?
+				 pkvm_firmware_mem->size :
+				 0,
+	};
+
+	return copy_to_user(info, &kinfo, sizeof(kinfo)) ? -EFAULT : 0;
+}
+
+int kvm_arm_vm_ioctl_pkvm(struct kvm *kvm, struct kvm_enable_cap *cap)
+{
+	if (cap->args[1] || cap->args[2] || cap->args[3])
+		return -EINVAL;
+
+	switch (cap->flags) {
+	case KVM_CAP_ARM_PROTECTED_VM_FLAGS_SET_FW_IPA:
+		return pkvm_vm_ioctl_set_fw_ipa(kvm, cap->args[0]);
+	case KVM_CAP_ARM_PROTECTED_VM_FLAGS_INFO:
+		return pkvm_vm_ioctl_info(kvm, (void __force __user *)cap->args[0]);
+	default:
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+int kvm_init_pvm(struct kvm *kvm, unsigned long type)
+{
+	mutex_init(&kvm->arch.pkvm.shadow_lock);
+	kvm->arch.pkvm.pvmfw_load_addr = PVMFW_INVALID_LOAD_ADDR;
+
+	if (!(type & KVM_VM_TYPE_ARM_PROTECTED))
+		return 0;
+
+	if (!is_protected_kvm_enabled())
+		return -EINVAL;
+
+	kvm->arch.pkvm.enabled = true;
+	return 0;
+}
diff --git a/arch/arm64/kvm/pmu-emul.c b/arch/arm64/kvm/pmu-emul.c
index 886048c..bcbd592 100644
--- a/arch/arm64/kvm/pmu-emul.c
+++ b/arch/arm64/kvm/pmu-emul.c
@@ -28,6 +28,7 @@
 	case ID_AA64DFR0_PMUVER_8_1:
 	case ID_AA64DFR0_PMUVER_8_4:
 	case ID_AA64DFR0_PMUVER_8_5:
+	case ID_AA64DFR0_PMUVER_8_7:
 		return GENMASK(15, 0);
 	default:		/* Shouldn't be here, just for sanity */
 		WARN_ONCE(1, "Unknown PMU version %d\n", kvm->arch.pmuver);
@@ -979,7 +980,7 @@
 		mutex_lock(&vcpu->kvm->lock);
 
 		if (!vcpu->kvm->arch.pmu_filter) {
-			vcpu->kvm->arch.pmu_filter = bitmap_alloc(nr_events, GFP_KERNEL);
+			vcpu->kvm->arch.pmu_filter = bitmap_alloc(nr_events, GFP_KERNEL_ACCOUNT);
 			if (!vcpu->kvm->arch.pmu_filter) {
 				mutex_unlock(&vcpu->kvm->lock);
 				return -ENOMEM;
diff --git a/arch/arm64/kvm/pmu.c b/arch/arm64/kvm/pmu.c
index 03a6c1f..a8878fd 100644
--- a/arch/arm64/kvm/pmu.c
+++ b/arch/arm64/kvm/pmu.c
@@ -31,9 +31,13 @@
  */
 void kvm_set_pmu_events(u32 set, struct perf_event_attr *attr)
 {
-	struct kvm_host_data *ctx = this_cpu_ptr_hyp_sym(kvm_host_data);
+	struct kvm_host_data *ctx;
 
-	if (!kvm_arm_support_pmu_v3() || !ctx || !kvm_pmu_switch_needed(attr))
+	if (!kvm_arm_support_pmu_v3())
+		return;
+
+	ctx = this_cpu_ptr_hyp_sym(kvm_host_data);
+	if (!ctx || !kvm_pmu_switch_needed(attr))
 		return;
 
 	if (!attr->exclude_host)
@@ -47,9 +51,13 @@
  */
 void kvm_clr_pmu_events(u32 clr)
 {
-	struct kvm_host_data *ctx = this_cpu_ptr_hyp_sym(kvm_host_data);
+	struct kvm_host_data *ctx;
 
-	if (!kvm_arm_support_pmu_v3() || !ctx)
+	if (!kvm_arm_support_pmu_v3())
+		return;
+
+	ctx = this_cpu_ptr_hyp_sym(kvm_host_data);
+	if (!ctx)
 		return;
 
 	ctx->pmu_events.events_host &= ~clr;
diff --git a/arch/arm64/kvm/psci.c b/arch/arm64/kvm/psci.c
index be03ea3e..c9fee39 100644
--- a/arch/arm64/kvm/psci.c
+++ b/arch/arm64/kvm/psci.c
@@ -21,16 +21,6 @@
  * as described in ARM document number ARM DEN 0022A.
  */
 
-#define AFFINITY_MASK(level)	~((0x1UL << ((level) * MPIDR_LEVEL_BITS)) - 1)
-
-static unsigned long psci_affinity_mask(unsigned long affinity_level)
-{
-	if (affinity_level <= 3)
-		return MPIDR_HWID_BITMASK & AFFINITY_MASK(affinity_level);
-
-	return 0;
-}
-
 static unsigned long kvm_psci_vcpu_suspend(struct kvm_vcpu *vcpu)
 {
 	/*
@@ -59,12 +49,6 @@
 	kvm_vcpu_kick(vcpu);
 }
 
-static inline bool kvm_psci_valid_affinity(struct kvm_vcpu *vcpu,
-					   unsigned long affinity)
-{
-	return !(affinity & ~MPIDR_HWID_BITMASK);
-}
-
 static unsigned long kvm_psci_vcpu_on(struct kvm_vcpu *source_vcpu)
 {
 	struct vcpu_reset_state *reset_state;
@@ -109,7 +93,7 @@
 
 	/*
 	 * Make sure the reset request is observed if the change to
-	 * power_state is observed.
+	 * power_off is observed.
 	 */
 	smp_wmb();
 
@@ -162,7 +146,7 @@
 	return PSCI_0_2_AFFINITY_LEVEL_OFF;
 }
 
-static void kvm_prepare_system_event(struct kvm_vcpu *vcpu, u32 type)
+static void kvm_prepare_system_event(struct kvm_vcpu *vcpu, u32 type, u64 flags)
 {
 	int i;
 	struct kvm_vcpu *tmp;
@@ -182,42 +166,33 @@
 
 	memset(&vcpu->run->system_event, 0, sizeof(vcpu->run->system_event));
 	vcpu->run->system_event.type = type;
+	vcpu->run->system_event.flags = flags;
 	vcpu->run->exit_reason = KVM_EXIT_SYSTEM_EVENT;
 }
 
 static void kvm_psci_system_off(struct kvm_vcpu *vcpu)
 {
-	kvm_prepare_system_event(vcpu, KVM_SYSTEM_EVENT_SHUTDOWN);
+	kvm_prepare_system_event(vcpu, KVM_SYSTEM_EVENT_SHUTDOWN, 0);
 }
 
 static void kvm_psci_system_reset(struct kvm_vcpu *vcpu)
 {
-	kvm_prepare_system_event(vcpu, KVM_SYSTEM_EVENT_RESET);
+	kvm_prepare_system_event(vcpu, KVM_SYSTEM_EVENT_RESET, 0);
 }
 
-static void kvm_psci_narrow_to_32bit(struct kvm_vcpu *vcpu)
+static void kvm_psci_system_reset2(struct kvm_vcpu *vcpu)
 {
-	int i;
-
-	/*
-	 * Zero the input registers' upper 32 bits. They will be fully
-	 * zeroed on exit, so we're fine changing them in place.
-	 */
-	for (i = 1; i < 4; i++)
-		vcpu_set_reg(vcpu, i, lower_32_bits(vcpu_get_reg(vcpu, i)));
+	kvm_prepare_system_event(vcpu, KVM_SYSTEM_EVENT_RESET,
+				 KVM_SYSTEM_EVENT_RESET_FLAG_PSCI_RESET2);
 }
 
 static unsigned long kvm_psci_check_allowed_function(struct kvm_vcpu *vcpu, u32 fn)
 {
-	switch(fn) {
-	case PSCI_0_2_FN64_CPU_SUSPEND:
-	case PSCI_0_2_FN64_CPU_ON:
-	case PSCI_0_2_FN64_AFFINITY_INFO:
-		/* Disallow these functions for 32bit guests */
-		if (vcpu_mode_is_32bit(vcpu))
-			return PSCI_RET_NOT_SUPPORTED;
-		break;
-	}
+	/*
+	 * Prevent 32 bit guests from calling 64 bit PSCI functions.
+	 */
+	if ((fn & PSCI_0_2_64BIT) && vcpu_mode_is_32bit(vcpu))
+		return PSCI_RET_NOT_SUPPORTED;
 
 	return 0;
 }
@@ -229,10 +204,6 @@
 	unsigned long val;
 	int ret = 1;
 
-	val = kvm_psci_check_allowed_function(vcpu, psci_fn);
-	if (val)
-		goto out;
-
 	switch (psci_fn) {
 	case PSCI_0_2_FN_PSCI_VERSION:
 		/*
@@ -300,29 +271,31 @@
 		break;
 	}
 
-out:
 	smccc_set_retval(vcpu, val, 0, 0, 0);
 	return ret;
 }
 
-static int kvm_psci_1_0_call(struct kvm_vcpu *vcpu)
+static int kvm_psci_1_x_call(struct kvm_vcpu *vcpu, u32 minor)
 {
 	u32 psci_fn = smccc_get_function(vcpu);
-	u32 feature;
+	u32 arg;
 	unsigned long val;
 	int ret = 1;
 
+	if (minor > 1)
+		return -EINVAL;
+
 	switch(psci_fn) {
 	case PSCI_0_2_FN_PSCI_VERSION:
-		val = KVM_ARM_PSCI_1_0;
+		val = minor == 0 ? KVM_ARM_PSCI_1_0 : KVM_ARM_PSCI_1_1;
 		break;
 	case PSCI_1_0_FN_PSCI_FEATURES:
-		feature = smccc_get_arg1(vcpu);
-		val = kvm_psci_check_allowed_function(vcpu, feature);
+		arg = smccc_get_arg1(vcpu);
+		val = kvm_psci_check_allowed_function(vcpu, arg);
 		if (val)
 			break;
 
-		switch(feature) {
+		switch(arg) {
 		case PSCI_0_2_FN_PSCI_VERSION:
 		case PSCI_0_2_FN_CPU_SUSPEND:
 		case PSCI_0_2_FN64_CPU_SUSPEND:
@@ -338,11 +311,36 @@
 		case ARM_SMCCC_VERSION_FUNC_ID:
 			val = 0;
 			break;
+		case PSCI_1_1_FN_SYSTEM_RESET2:
+		case PSCI_1_1_FN64_SYSTEM_RESET2:
+			if (minor >= 1) {
+				val = 0;
+				break;
+			}
+			fallthrough;
 		default:
 			val = PSCI_RET_NOT_SUPPORTED;
 			break;
 		}
 		break;
+	case PSCI_1_1_FN_SYSTEM_RESET2:
+		kvm_psci_narrow_to_32bit(vcpu);
+		fallthrough;
+	case PSCI_1_1_FN64_SYSTEM_RESET2:
+		if (minor >= 1) {
+			arg = smccc_get_arg1(vcpu);
+
+			if (arg <= PSCI_1_1_RESET_TYPE_SYSTEM_WARM_RESET ||
+			    arg >= PSCI_1_1_RESET_TYPE_VENDOR_START) {
+				kvm_psci_system_reset2(vcpu);
+				vcpu_set_reg(vcpu, 0, PSCI_RET_INTERNAL_FAILURE);
+				return 0;
+			}
+
+			val = PSCI_RET_INVALID_PARAMS;
+			break;
+		};
+		fallthrough;
 	default:
 		return kvm_psci_0_2_call(vcpu);
 	}
@@ -392,9 +390,20 @@
  */
 int kvm_psci_call(struct kvm_vcpu *vcpu)
 {
+	u32 psci_fn = smccc_get_function(vcpu);
+	unsigned long val;
+
+	val = kvm_psci_check_allowed_function(vcpu, psci_fn);
+	if (val) {
+		smccc_set_retval(vcpu, val, 0, 0, 0);
+		return 1;
+	}
+
 	switch (kvm_psci_version(vcpu, vcpu->kvm)) {
+	case KVM_ARM_PSCI_1_1:
+		return kvm_psci_1_x_call(vcpu, 1);
 	case KVM_ARM_PSCI_1_0:
-		return kvm_psci_1_0_call(vcpu);
+		return kvm_psci_1_x_call(vcpu, 0);
 	case KVM_ARM_PSCI_0_2:
 		return kvm_psci_0_2_call(vcpu);
 	case KVM_ARM_PSCI_0_1:
@@ -528,6 +537,7 @@
 			return 0;
 		case KVM_ARM_PSCI_0_2:
 		case KVM_ARM_PSCI_1_0:
+		case KVM_ARM_PSCI_1_1:
 			if (!wants_02)
 				return -EINVAL;
 			vcpu->kvm->arch.psci_version = val;
diff --git a/arch/arm64/kvm/reset.c b/arch/arm64/kvm/reset.c
index 5ce36b0..0eee9ea 100644
--- a/arch/arm64/kvm/reset.c
+++ b/arch/arm64/kvm/reset.c
@@ -32,15 +32,6 @@
 /* Maximum phys_shift supported for any VM on this host */
 static u32 kvm_ipa_limit;
 
-/*
- * ARMv8 Reset Values
- */
-#define VCPU_RESET_PSTATE_EL1	(PSR_MODE_EL1h | PSR_A_BIT | PSR_I_BIT | \
-				 PSR_F_BIT | PSR_D_BIT)
-
-#define VCPU_RESET_PSTATE_SVC	(PSR_AA32_MODE_SVC | PSR_AA32_A_BIT | \
-				 PSR_AA32_I_BIT | PSR_AA32_F_BIT)
-
 unsigned int kvm_sve_max_vl;
 
 int kvm_arm_init_sve(void)
@@ -94,22 +85,31 @@
 {
 	void *buf;
 	unsigned int vl;
+	size_t reg_sz;
+	int ret;
 
 	vl = vcpu->arch.sve_max_vl;
 
 	/*
 	 * Responsibility for these properties is shared between
-	 * kvm_arm_init_arch_resources(), kvm_vcpu_enable_sve() and
+	 * kvm_arm_init_sve(), kvm_vcpu_enable_sve() and
 	 * set_sve_vls().  Double-check here just to be sure:
 	 */
 	if (WARN_ON(!sve_vl_valid(vl) || vl > sve_max_virtualisable_vl ||
 		    vl > SVE_VL_ARCH_MAX))
 		return -EIO;
 
-	buf = kzalloc(SVE_SIG_REGS_SIZE(sve_vq_from_vl(vl)), GFP_KERNEL);
+	reg_sz = vcpu_sve_state_size(vcpu);
+	buf = kzalloc(reg_sz, GFP_KERNEL_ACCOUNT);
 	if (!buf)
 		return -ENOMEM;
 
+	ret = kvm_share_hyp(buf, buf + reg_sz);
+	if (ret) {
+		kfree(buf);
+		return ret;
+	}
+
 	vcpu->arch.sve_state = buf;
 	vcpu->arch.flags |= KVM_ARM64_VCPU_SVE_FINALIZED;
 	return 0;
@@ -141,7 +141,13 @@
 
 void kvm_arm_vcpu_destroy(struct kvm_vcpu *vcpu)
 {
-	kfree(vcpu->arch.sve_state);
+	void *sve_state = vcpu->arch.sve_state;
+
+	kvm_vcpu_unshare_task_fp(vcpu);
+	kvm_unshare_hyp(vcpu, vcpu + 1);
+	if (sve_state)
+		kvm_unshare_hyp(sve_state, sve_state + vcpu_sve_state_size(vcpu));
+	kfree(sve_state);
 }
 
 static void kvm_vcpu_reset_sve(struct kvm_vcpu *vcpu)
@@ -150,22 +156,6 @@
 		memset(vcpu->arch.sve_state, 0, vcpu_sve_state_size(vcpu));
 }
 
-static int kvm_vcpu_enable_ptrauth(struct kvm_vcpu *vcpu)
-{
-	/*
-	 * For now make sure that both address/generic pointer authentication
-	 * features are requested by the userspace together and the system
-	 * supports these capabilities.
-	 */
-	if (!test_bit(KVM_ARM_VCPU_PTRAUTH_ADDRESS, vcpu->arch.features) ||
-	    !test_bit(KVM_ARM_VCPU_PTRAUTH_GENERIC, vcpu->arch.features) ||
-	    !system_has_full_ptr_auth())
-		return -EINVAL;
-
-	vcpu->arch.flags |= KVM_ARM64_GUEST_HAS_PTRAUTH;
-	return 0;
-}
-
 static bool vcpu_allowed_register_width(struct kvm_vcpu *vcpu)
 {
 	struct kvm_vcpu *tmp;
@@ -193,10 +183,9 @@
  * kvm_reset_vcpu - sets core registers and sys_regs to reset value
  * @vcpu: The VCPU pointer
  *
- * This function finds the right table above and sets the registers on
- * the virtual CPU struct to their architecturally defined reset
- * values, except for registers whose reset is deferred until
- * kvm_arm_vcpu_finalize().
+ * This function sets the registers on the virtual CPU struct to their
+ * architecturally defined reset values, except for registers whose reset is
+ * deferred until kvm_arm_vcpu_finalize().
  *
  * Note: This function can be called from two paths: The KVM_ARM_VCPU_INIT
  * ioctl or as part of handling a request issued by another VCPU in the PSCI
@@ -356,32 +345,3 @@
 
 	return 0;
 }
-
-int kvm_arm_setup_stage2(struct kvm *kvm, unsigned long type)
-{
-	u64 mmfr0, mmfr1;
-	u32 phys_shift;
-
-	if (type & ~KVM_VM_TYPE_ARM_IPA_SIZE_MASK)
-		return -EINVAL;
-
-	phys_shift = KVM_VM_TYPE_ARM_IPA_SIZE(type);
-	if (phys_shift) {
-		if (phys_shift > kvm_ipa_limit ||
-		    phys_shift < ARM64_MIN_PARANGE_BITS)
-			return -EINVAL;
-	} else {
-		phys_shift = KVM_PHYS_SHIFT;
-		if (phys_shift > kvm_ipa_limit) {
-			pr_warn_once("%s using unsupported default IPA limit, upgrade your VMM\n",
-				     current->comm);
-			return -EINVAL;
-		}
-	}
-
-	mmfr0 = read_sanitised_ftr_reg(SYS_ID_AA64MMFR0_EL1);
-	mmfr1 = read_sanitised_ftr_reg(SYS_ID_AA64MMFR1_EL1);
-	kvm->arch.vtcr = kvm_get_vtcr(mmfr0, mmfr1, phys_shift);
-
-	return 0;
-}
diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
index d00170d..fedafa1 100644
--- a/arch/arm64/kvm/sys_regs.c
+++ b/arch/arm64/kvm/sys_regs.c
@@ -64,26 +64,6 @@
 	return false;
 }
 
-u64 vcpu_read_sys_reg(const struct kvm_vcpu *vcpu, int reg)
-{
-	u64 val = 0x8badf00d8badf00d;
-
-	if (vcpu->arch.sysregs_loaded_on_cpu &&
-	    __vcpu_read_sys_reg_from_cpu(reg, &val))
-		return val;
-
-	return __vcpu_sys_reg(vcpu, reg);
-}
-
-void vcpu_write_sys_reg(struct kvm_vcpu *vcpu, u64 val, int reg)
-{
-	if (vcpu->arch.sysregs_loaded_on_cpu &&
-	    __vcpu_write_sys_reg_to_cpu(val, reg))
-		return;
-
-	 __vcpu_sys_reg(vcpu, reg) = val;
-}
-
 /* 3 bits per cache level, as per CLIDR, but non-existent caches always 0 */
 static u32 cache_levels;
 
@@ -575,19 +555,7 @@
 
 static void reset_mpidr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *r)
 {
-	u64 mpidr;
-
-	/*
-	 * Map the vcpu_id into the first three affinity level fields of
-	 * the MPIDR. We limit the number of VCPUs in level 0 due to a
-	 * limitation to 16 CPUs in that level in the ICC_SGIxR registers
-	 * of the GICv3 to be able to address each CPU directly when
-	 * sending IPIs.
-	 */
-	mpidr = (vcpu->vcpu_id & 0x0f) << MPIDR_LEVEL_SHIFT(0);
-	mpidr |= ((vcpu->vcpu_id >> 4) & 0xff) << MPIDR_LEVEL_SHIFT(1);
-	mpidr |= ((vcpu->vcpu_id >> 12) & 0xff) << MPIDR_LEVEL_SHIFT(2);
-	vcpu_write_sys_reg(vcpu, (1ULL << 31) | mpidr, MPIDR_EL1);
+	vcpu_write_sys_reg(vcpu, calculate_mpidr(vcpu), MPIDR_EL1);
 }
 
 static unsigned int pmu_visibility(const struct kvm_vcpu *vcpu,
@@ -1063,7 +1031,12 @@
 		struct sys_reg_desc const *r, bool raz)
 {
 	u32 id = reg_to_encoding(r);
-	u64 val = raz ? 0 : read_sanitised_ftr_reg(id);
+	u64 val;
+
+	if (raz)
+		return 0;
+
+	val = read_sanitised_ftr_reg(id);
 
 	switch (id) {
 	case SYS_ID_AA64PFR0_EL1:
@@ -1074,16 +1047,14 @@
 		val |= FIELD_PREP(ARM64_FEATURE_MASK(ID_AA64PFR0_CSV2), (u64)vcpu->kvm->arch.pfr0_csv2);
 		val &= ~ARM64_FEATURE_MASK(ID_AA64PFR0_CSV3);
 		val |= FIELD_PREP(ARM64_FEATURE_MASK(ID_AA64PFR0_CSV3), (u64)vcpu->kvm->arch.pfr0_csv3);
+		if (kvm_vgic_global_state.type == VGIC_V3) {
+			val &= ~ARM64_FEATURE_MASK(ID_AA64PFR0_GIC);
+			val |= FIELD_PREP(ARM64_FEATURE_MASK(ID_AA64PFR0_GIC), 1);
+		}
 		break;
 	case SYS_ID_AA64PFR1_EL1:
-		val &= ~ARM64_FEATURE_MASK(ID_AA64PFR1_MTE);
-		if (kvm_has_mte(vcpu->kvm)) {
-			u64 pfr, mte;
-
-			pfr = read_sanitised_ftr_reg(SYS_ID_AA64PFR1_EL1);
-			mte = cpuid_feature_extract_unsigned_field(pfr, ID_AA64PFR1_MTE_SHIFT);
-			val |= FIELD_PREP(ARM64_FEATURE_MASK(ID_AA64PFR1_MTE), mte);
-		}
+		if (!kvm_has_mte(vcpu->kvm))
+			val &= ~ARM64_FEATURE_MASK(ID_AA64PFR1_MTE);
 		break;
 	case SYS_ID_AA64ISAR1_EL1:
 		if (!vcpu_has_ptrauth(vcpu))
@@ -1267,18 +1238,21 @@
 	return __set_id_reg(vcpu, rd, uaddr, raz);
 }
 
-static int get_raz_id_reg(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
-			  const struct kvm_one_reg *reg, void __user *uaddr)
-{
-	return __get_id_reg(vcpu, rd, uaddr, true);
-}
-
 static int set_raz_id_reg(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
 			  const struct kvm_one_reg *reg, void __user *uaddr)
 {
 	return __set_id_reg(vcpu, rd, uaddr, true);
 }
 
+static int get_raz_reg(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
+		       const struct kvm_one_reg *reg, void __user *uaddr)
+{
+	const u64 id = sys_reg_to_index(rd);
+	const u64 val = 0;
+
+	return reg_to_user(uaddr, &val, id);
+}
+
 static int set_wi_reg(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
 		      const struct kvm_one_reg *reg, void __user *uaddr)
 {
@@ -1387,7 +1361,7 @@
 #define ID_UNALLOCATED(crm, op2) {			\
 	Op0(3), Op1(0), CRn(0), CRm(crm), Op2(op2),	\
 	.access = access_raz_id_reg,			\
-	.get_user = get_raz_id_reg,			\
+	.get_user = get_raz_reg,			\
 	.set_user = set_raz_id_reg,			\
 }
 
@@ -1399,7 +1373,7 @@
 #define ID_HIDDEN(name) {			\
 	SYS_DESC(SYS_##name),			\
 	.access = access_raz_id_reg,		\
-	.get_user = get_raz_id_reg,		\
+	.get_user = get_raz_reg,		\
 	.set_user = set_raz_id_reg,		\
 }
 
@@ -1641,7 +1615,7 @@
 	 * previously (and pointlessly) advertised in the past...
 	 */
 	{ PMU_SYS_REG(SYS_PMSWINC_EL0),
-	  .get_user = get_raz_id_reg, .set_user = set_wi_reg,
+	  .get_user = get_raz_reg, .set_user = set_wi_reg,
 	  .access = access_pmswinc, .reset = NULL },
 	{ PMU_SYS_REG(SYS_PMSELR_EL0),
 	  .access = access_pmselr, .reset = reset_pmselr, .reg = PMSELR_EL0 },
diff --git a/arch/arm64/kvm/sys_regs.h b/arch/arm64/kvm/sys_regs.h
index cc0cc95..9b32772 100644
--- a/arch/arm64/kvm/sys_regs.h
+++ b/arch/arm64/kvm/sys_regs.h
@@ -183,6 +183,25 @@
 	return __inline_bsearch((void *)pval, table, num, sizeof(table[0]), match_sys_reg);
 }
 
+static inline u64 calculate_mpidr(const struct kvm_vcpu *vcpu)
+{
+	u64 mpidr;
+
+	/*
+	 * Map the vcpu_id into the first three affinity level fields of
+	 * the MPIDR. We limit the number of VCPUs in level 0 due to a
+	 * limitation to 16 CPUs in that level in the ICC_SGIxR registers
+	 * of the GICv3 to be able to address each CPU directly when
+	 * sending IPIs.
+	 */
+	mpidr = (vcpu->vcpu_id & 0x0f) << MPIDR_LEVEL_SHIFT(0);
+	mpidr |= ((vcpu->vcpu_id >> 4) & 0xff) << MPIDR_LEVEL_SHIFT(1);
+	mpidr |= ((vcpu->vcpu_id >> 12) & 0xff) << MPIDR_LEVEL_SHIFT(2);
+	mpidr |= (1ULL << 31);
+
+	return mpidr;
+}
+
 const struct sys_reg_desc *find_reg_by_id(u64 id,
 					  struct sys_reg_params *params,
 					  const struct sys_reg_desc table[],
diff --git a/arch/arm64/kvm/vgic/vgic-init.c b/arch/arm64/kvm/vgic/vgic-init.c
index 340c51d..ce2b42c 100644
--- a/arch/arm64/kvm/vgic/vgic-init.c
+++ b/arch/arm64/kvm/vgic/vgic-init.c
@@ -91,7 +91,7 @@
 		return ret;
 
 	kvm_for_each_vcpu(i, vcpu, kvm) {
-		if (vcpu->arch.has_run_once)
+		if (vcpu_has_run_once(vcpu))
 			goto out_unlock;
 	}
 	ret = 0;
@@ -134,7 +134,7 @@
 	struct kvm_vcpu *vcpu0 = kvm_get_vcpu(kvm, 0);
 	int i;
 
-	dist->spis = kcalloc(nr_spis, sizeof(struct vgic_irq), GFP_KERNEL);
+	dist->spis = kcalloc(nr_spis, sizeof(struct vgic_irq), GFP_KERNEL_ACCOUNT);
 	if (!dist->spis)
 		return  -ENOMEM;
 
diff --git a/arch/arm64/kvm/vgic/vgic-irqfd.c b/arch/arm64/kvm/vgic/vgic-irqfd.c
index 79f8899..475059b 100644
--- a/arch/arm64/kvm/vgic/vgic-irqfd.c
+++ b/arch/arm64/kvm/vgic/vgic-irqfd.c
@@ -139,7 +139,7 @@
 	u32 nr = dist->nr_spis;
 	int i, ret;
 
-	entries = kcalloc(nr, sizeof(*entries), GFP_KERNEL);
+	entries = kcalloc(nr, sizeof(*entries), GFP_KERNEL_ACCOUNT);
 	if (!entries)
 		return -ENOMEM;
 
diff --git a/arch/arm64/kvm/vgic/vgic-its.c b/arch/arm64/kvm/vgic/vgic-its.c
index 1d53428..238018e 100644
--- a/arch/arm64/kvm/vgic/vgic-its.c
+++ b/arch/arm64/kvm/vgic/vgic-its.c
@@ -48,7 +48,7 @@
 	if (irq)
 		return irq;
 
-	irq = kzalloc(sizeof(struct vgic_irq), GFP_KERNEL);
+	irq = kzalloc(sizeof(struct vgic_irq), GFP_KERNEL_ACCOUNT);
 	if (!irq)
 		return ERR_PTR(-ENOMEM);
 
@@ -332,7 +332,7 @@
 	 * we must be careful not to overrun the array.
 	 */
 	irq_count = READ_ONCE(dist->lpi_list_count);
-	intids = kmalloc_array(irq_count, sizeof(intids[0]), GFP_KERNEL);
+	intids = kmalloc_array(irq_count, sizeof(intids[0]), GFP_KERNEL_ACCOUNT);
 	if (!intids)
 		return -ENOMEM;
 
@@ -985,7 +985,7 @@
 	if (!vgic_its_check_id(its, its->baser_coll_table, coll_id, NULL))
 		return E_ITS_MAPC_COLLECTION_OOR;
 
-	collection = kzalloc(sizeof(*collection), GFP_KERNEL);
+	collection = kzalloc(sizeof(*collection), GFP_KERNEL_ACCOUNT);
 	if (!collection)
 		return -ENOMEM;
 
@@ -1029,7 +1029,7 @@
 {
 	struct its_ite *ite;
 
-	ite = kzalloc(sizeof(*ite), GFP_KERNEL);
+	ite = kzalloc(sizeof(*ite), GFP_KERNEL_ACCOUNT);
 	if (!ite)
 		return ERR_PTR(-ENOMEM);
 
@@ -1150,7 +1150,7 @@
 {
 	struct its_device *device;
 
-	device = kzalloc(sizeof(*device), GFP_KERNEL);
+	device = kzalloc(sizeof(*device), GFP_KERNEL_ACCOUNT);
 	if (!device)
 		return ERR_PTR(-ENOMEM);
 
@@ -1847,7 +1847,7 @@
 		struct vgic_translation_cache_entry *cte;
 
 		/* An allocation failure is not fatal */
-		cte = kzalloc(sizeof(*cte), GFP_KERNEL);
+		cte = kzalloc(sizeof(*cte), GFP_KERNEL_ACCOUNT);
 		if (WARN_ON(!cte))
 			break;
 
@@ -1888,7 +1888,7 @@
 	if (type != KVM_DEV_TYPE_ARM_VGIC_ITS)
 		return -ENODEV;
 
-	its = kzalloc(sizeof(struct vgic_its), GFP_KERNEL);
+	its = kzalloc(sizeof(struct vgic_its), GFP_KERNEL_ACCOUNT);
 	if (!its)
 		return -ENOMEM;
 
@@ -2713,8 +2713,8 @@
 		if (copy_from_user(&addr, uaddr, sizeof(addr)))
 			return -EFAULT;
 
-		ret = vgic_check_ioaddr(dev->kvm, &its->vgic_its_base,
-					addr, SZ_64K);
+		ret = vgic_check_iorange(dev->kvm, its->vgic_its_base,
+					 addr, SZ_64K, KVM_VGIC_V3_ITS_SIZE);
 		if (ret)
 			return ret;
 
diff --git a/arch/arm64/kvm/vgic/vgic-kvm-device.c b/arch/arm64/kvm/vgic/vgic-kvm-device.c
index 7740995..0d000d2 100644
--- a/arch/arm64/kvm/vgic/vgic-kvm-device.c
+++ b/arch/arm64/kvm/vgic/vgic-kvm-device.c
@@ -14,17 +14,21 @@
 
 /* common helpers */
 
-int vgic_check_ioaddr(struct kvm *kvm, phys_addr_t *ioaddr,
-		      phys_addr_t addr, phys_addr_t alignment)
+int vgic_check_iorange(struct kvm *kvm, phys_addr_t ioaddr,
+		       phys_addr_t addr, phys_addr_t alignment,
+		       phys_addr_t size)
 {
-	if (addr & ~kvm_phys_mask(kvm))
-		return -E2BIG;
+	if (!IS_VGIC_ADDR_UNDEF(ioaddr))
+		return -EEXIST;
 
-	if (!IS_ALIGNED(addr, alignment))
+	if (!IS_ALIGNED(addr, alignment) || !IS_ALIGNED(size, alignment))
 		return -EINVAL;
 
-	if (!IS_VGIC_ADDR_UNDEF(*ioaddr))
-		return -EEXIST;
+	if (addr + size < addr)
+		return -EINVAL;
+
+	if (addr & ~kvm_phys_mask(kvm) || addr + size > kvm_phys_size(kvm))
+		return -E2BIG;
 
 	return 0;
 }
@@ -57,7 +61,7 @@
 {
 	int r = 0;
 	struct vgic_dist *vgic = &kvm->arch.vgic;
-	phys_addr_t *addr_ptr, alignment;
+	phys_addr_t *addr_ptr, alignment, size;
 	u64 undef_value = VGIC_ADDR_UNDEF;
 
 	mutex_lock(&kvm->lock);
@@ -66,16 +70,19 @@
 		r = vgic_check_type(kvm, KVM_DEV_TYPE_ARM_VGIC_V2);
 		addr_ptr = &vgic->vgic_dist_base;
 		alignment = SZ_4K;
+		size = KVM_VGIC_V2_DIST_SIZE;
 		break;
 	case KVM_VGIC_V2_ADDR_TYPE_CPU:
 		r = vgic_check_type(kvm, KVM_DEV_TYPE_ARM_VGIC_V2);
 		addr_ptr = &vgic->vgic_cpu_base;
 		alignment = SZ_4K;
+		size = KVM_VGIC_V2_CPU_SIZE;
 		break;
 	case KVM_VGIC_V3_ADDR_TYPE_DIST:
 		r = vgic_check_type(kvm, KVM_DEV_TYPE_ARM_VGIC_V3);
 		addr_ptr = &vgic->vgic_dist_base;
 		alignment = SZ_64K;
+		size = KVM_VGIC_V3_DIST_SIZE;
 		break;
 	case KVM_VGIC_V3_ADDR_TYPE_REDIST: {
 		struct vgic_redist_region *rdreg;
@@ -140,7 +147,7 @@
 		goto out;
 
 	if (write) {
-		r = vgic_check_ioaddr(kvm, addr_ptr, *addr, alignment);
+		r = vgic_check_iorange(kvm, *addr_ptr, *addr, alignment, size);
 		if (!r)
 			*addr_ptr = *addr;
 	} else {
diff --git a/arch/arm64/kvm/vgic/vgic-mmio-v3.c b/arch/arm64/kvm/vgic/vgic-mmio-v3.c
index a09cdc0..9943a3f 100644
--- a/arch/arm64/kvm/vgic/vgic-mmio-v3.c
+++ b/arch/arm64/kvm/vgic/vgic-mmio-v3.c
@@ -763,10 +763,12 @@
 	}
 
 	if (ret) {
-		/* The current c failed, so we start with the previous one. */
+		/* The current c failed, so iterate over the previous ones. */
+		int i;
+
 		mutex_lock(&kvm->slots_lock);
-		for (c--; c >= 0; c--) {
-			vcpu = kvm_get_vcpu(kvm, c);
+		for (i = 0; i < c; i++) {
+			vcpu = kvm_get_vcpu(kvm, i);
 			vgic_unregister_redist_iodev(vcpu);
 		}
 		mutex_unlock(&kvm->slots_lock);
@@ -796,7 +798,9 @@
 	struct vgic_dist *d = &kvm->arch.vgic;
 	struct vgic_redist_region *rdreg;
 	struct list_head *rd_regions = &d->rd_regions;
-	size_t size = count * KVM_VGIC_V3_REDIST_SIZE;
+	int nr_vcpus = atomic_read(&kvm->online_vcpus);
+	size_t size = count ? count * KVM_VGIC_V3_REDIST_SIZE
+			    : nr_vcpus * KVM_VGIC_V3_REDIST_SIZE;
 	int ret;
 
 	/* cross the end of memory ? */
@@ -834,13 +838,13 @@
 	if (vgic_v3_rdist_overlap(kvm, base, size))
 		return -EINVAL;
 
-	rdreg = kzalloc(sizeof(*rdreg), GFP_KERNEL);
+	rdreg = kzalloc(sizeof(*rdreg), GFP_KERNEL_ACCOUNT);
 	if (!rdreg)
 		return -ENOMEM;
 
 	rdreg->base = VGIC_ADDR_UNDEF;
 
-	ret = vgic_check_ioaddr(kvm, &rdreg->base, base, SZ_64K);
+	ret = vgic_check_iorange(kvm, rdreg->base, base, SZ_64K, size);
 	if (ret)
 		goto free;
 
diff --git a/arch/arm64/kvm/vgic/vgic-mmio.c b/arch/arm64/kvm/vgic/vgic-mmio.c
index 55630ca..dc8c524 100644
--- a/arch/arm64/kvm/vgic/vgic-mmio.c
+++ b/arch/arm64/kvm/vgic/vgic-mmio.c
@@ -1065,7 +1065,7 @@
 	return 0;
 }
 
-struct kvm_io_device_ops kvm_io_gic_ops = {
+const struct kvm_io_device_ops kvm_io_gic_ops = {
 	.read = dispatch_mmio_read,
 	.write = dispatch_mmio_write,
 };
diff --git a/arch/arm64/kvm/vgic/vgic-mmio.h b/arch/arm64/kvm/vgic/vgic-mmio.h
index dcea440..6082d4b 100644
--- a/arch/arm64/kvm/vgic/vgic-mmio.h
+++ b/arch/arm64/kvm/vgic/vgic-mmio.h
@@ -34,7 +34,7 @@
 	};
 };
 
-extern struct kvm_io_device_ops kvm_io_gic_ops;
+extern const struct kvm_io_device_ops kvm_io_gic_ops;
 
 #define VGIC_ACCESS_8bit	1
 #define VGIC_ACCESS_32bit	2
diff --git a/arch/arm64/kvm/vgic/vgic-v2.c b/arch/arm64/kvm/vgic/vgic-v2.c
index 95a18ce..4e8bb90 100644
--- a/arch/arm64/kvm/vgic/vgic-v2.c
+++ b/arch/arm64/kvm/vgic/vgic-v2.c
@@ -293,12 +293,12 @@
 
 	if (IS_VGIC_ADDR_UNDEF(dist->vgic_dist_base) ||
 	    IS_VGIC_ADDR_UNDEF(dist->vgic_cpu_base)) {
-		kvm_err("Need to set vgic cpu and dist addresses first\n");
+		kvm_debug("Need to set vgic cpu and dist addresses first\n");
 		return -ENXIO;
 	}
 
 	if (!vgic_v2_check_base(dist->vgic_dist_base, dist->vgic_cpu_base)) {
-		kvm_err("VGIC CPU and dist frames overlap\n");
+		kvm_debug("VGIC CPU and dist frames overlap\n");
 		return -EINVAL;
 	}
 
@@ -345,6 +345,11 @@
 	int ret;
 	u32 vtr;
 
+	if (is_protected_kvm_enabled()) {
+		kvm_err("GICv2 not supported in protected mode\n");
+		return -ENXIO;
+	}
+
 	if (!info->vctrl.start) {
 		kvm_err("GICH not present in the firmware table\n");
 		return -ENXIO;
@@ -465,17 +470,10 @@
 		       kvm_vgic_global_state.vctrl_base + GICH_APR);
 }
 
-void vgic_v2_vmcr_sync(struct kvm_vcpu *vcpu)
+void vgic_v2_put(struct kvm_vcpu *vcpu, bool blocking)
 {
 	struct vgic_v2_cpu_if *cpu_if = &vcpu->arch.vgic_cpu.vgic_v2;
 
 	cpu_if->vgic_vmcr = readl_relaxed(kvm_vgic_global_state.vctrl_base + GICH_VMCR);
-}
-
-void vgic_v2_put(struct kvm_vcpu *vcpu)
-{
-	struct vgic_v2_cpu_if *cpu_if = &vcpu->arch.vgic_cpu.vgic_v2;
-
-	vgic_v2_vmcr_sync(vcpu);
 	cpu_if->vgic_apr = readl_relaxed(kvm_vgic_global_state.vctrl_base + GICH_APR);
 }
diff --git a/arch/arm64/kvm/vgic/vgic-v3.c b/arch/arm64/kvm/vgic/vgic-v3.c
index 8eb7045..129cbdc 100644
--- a/arch/arm64/kvm/vgic/vgic-v3.c
+++ b/arch/arm64/kvm/vgic/vgic-v3.c
@@ -15,6 +15,7 @@
 static bool group0_trap;
 static bool group1_trap;
 static bool common_trap;
+static bool dir_trap;
 static bool gicv4_enable;
 
 void vgic_v3_set_underflow(struct kvm_vcpu *vcpu)
@@ -296,6 +297,8 @@
 		vgic_v3->vgic_hcr |= ICH_HCR_TALL1;
 	if (common_trap)
 		vgic_v3->vgic_hcr |= ICH_HCR_TC;
+	if (dir_trap)
+		vgic_v3->vgic_hcr |= ICH_HCR_TDIR;
 }
 
 int vgic_v3_lpi_sync_pending_status(struct kvm *kvm, struct vgic_irq *irq)
@@ -480,8 +483,10 @@
 		return false;
 
 	list_for_each_entry(rdreg, &d->rd_regions, list) {
-		if (rdreg->base + vgic_v3_rd_region_size(kvm, rdreg) <
-			rdreg->base)
+		size_t sz = vgic_v3_rd_region_size(kvm, rdreg);
+
+		if (vgic_check_iorange(kvm, VGIC_ADDR_UNDEF,
+				       rdreg->base, SZ_64K, sz))
 			return false;
 	}
 
@@ -546,12 +551,12 @@
 	}
 
 	if (IS_VGIC_ADDR_UNDEF(dist->vgic_dist_base)) {
-		kvm_err("Need to set vgic distributor addresses first\n");
+		kvm_debug("Need to set vgic distributor addresses first\n");
 		return -ENXIO;
 	}
 
 	if (!vgic_v3_check_base(kvm)) {
-		kvm_err("VGIC redist and dist frames overlap\n");
+		kvm_debug("VGIC redist and dist frames overlap\n");
 		return -EINVAL;
 	}
 
@@ -601,6 +606,18 @@
 }
 early_param("kvm-arm.vgic_v4_enable", early_gicv4_enable);
 
+static const struct midr_range broken_seis[] = {
+	MIDR_ALL_VERSIONS(MIDR_APPLE_M1_ICESTORM),
+	MIDR_ALL_VERSIONS(MIDR_APPLE_M1_FIRESTORM),
+	{},
+};
+
+static bool vgic_v3_broken_seis(void)
+{
+	return ((kvm_vgic_global_state.ich_vtr_el2 & ICH_VTR_SEIS_MASK) &&
+		is_midr_in_range_list(read_cpuid_id(), broken_seis));
+}
+
 /**
  * vgic_v3_probe - probe for a VGICv3 compatible interrupt controller
  * @info:	pointer to the GIC description
@@ -643,7 +660,7 @@
 	} else if (!PAGE_ALIGNED(info->vcpu.start)) {
 		pr_warn("GICV physical address 0x%llx not page aligned\n",
 			(unsigned long long)info->vcpu.start);
-	} else {
+	} else if (kvm_get_mode() != KVM_MODE_PROTECTED) {
 		kvm_vgic_global_state.vcpu_base = info->vcpu.start;
 		kvm_vgic_global_state.can_emulate_gicv2 = true;
 		ret = kvm_register_vgic_device(KVM_DEV_TYPE_ARM_VGIC_V2);
@@ -663,16 +680,24 @@
 	if (kvm_vgic_global_state.vcpu_base == 0)
 		kvm_info("disabling GICv2 emulation\n");
 
-	if (cpus_have_const_cap(ARM64_WORKAROUND_CAVIUM_30115)) {
+	if (vgic_v3_broken_seis()) {
+		kvm_info("GICv3 with broken locally generated SEI\n");
+
+		kvm_vgic_global_state.ich_vtr_el2 &= ~ICH_VTR_SEIS_MASK;
 		group0_trap = true;
 		group1_trap = true;
+		if (ich_vtr_el2 & ICH_VTR_TDS_MASK)
+			dir_trap = true;
+		else
+			common_trap = true;
 	}
 
-	if (group0_trap || group1_trap || common_trap) {
-		kvm_info("GICv3 sysreg trapping enabled ([%s%s%s], reduced performance)\n",
+	if (group0_trap || group1_trap || common_trap | dir_trap) {
+		kvm_info("GICv3 sysreg trapping enabled ([%s%s%s%s], reduced performance)\n",
 			 group0_trap ? "G0" : "",
 			 group1_trap ? "G1" : "",
-			 common_trap ? "C"  : "");
+			 common_trap ? "C"  : "",
+			 dir_trap    ? "D"  : "");
 		static_branch_enable(&vgic_v3_cpuif_trap);
 	}
 
@@ -687,15 +712,8 @@
 {
 	struct vgic_v3_cpu_if *cpu_if = &vcpu->arch.vgic_cpu.vgic_v3;
 
-	/*
-	 * If dealing with a GICv2 emulation on GICv3, VMCR_EL2.VFIQen
-	 * is dependent on ICC_SRE_EL1.SRE, and we have to perform the
-	 * VMCR_EL2 save/restore in the world switch.
-	 */
-	if (likely(cpu_if->vgic_sre))
-		kvm_call_hyp(__vgic_v3_write_vmcr, cpu_if->vgic_vmcr);
-
-	kvm_call_hyp(__vgic_v3_restore_aprs, cpu_if);
+	if (likely(!is_protected_kvm_enabled()))
+		kvm_call_hyp(__vgic_v3_restore_vmcr_aprs, cpu_if);
 
 	if (has_vhe())
 		__vgic_v3_activate_traps(cpu_if);
@@ -703,23 +721,14 @@
 	WARN_ON(vgic_v4_load(vcpu));
 }
 
-void vgic_v3_vmcr_sync(struct kvm_vcpu *vcpu)
+void vgic_v3_put(struct kvm_vcpu *vcpu, bool blocking)
 {
 	struct vgic_v3_cpu_if *cpu_if = &vcpu->arch.vgic_cpu.vgic_v3;
 
-	if (likely(cpu_if->vgic_sre))
-		cpu_if->vgic_vmcr = kvm_call_hyp_ret(__vgic_v3_read_vmcr);
-}
+	WARN_ON(vgic_v4_put(vcpu, blocking));
 
-void vgic_v3_put(struct kvm_vcpu *vcpu)
-{
-	struct vgic_v3_cpu_if *cpu_if = &vcpu->arch.vgic_cpu.vgic_v3;
-
-	WARN_ON(vgic_v4_put(vcpu, false));
-
-	vgic_v3_vmcr_sync(vcpu);
-
-	kvm_call_hyp(__vgic_v3_save_aprs, cpu_if);
+	if (likely(!is_protected_kvm_enabled()))
+		kvm_call_hyp(__vgic_v3_save_vmcr_aprs, cpu_if);
 
 	if (has_vhe())
 		__vgic_v3_deactivate_traps(cpu_if);
diff --git a/arch/arm64/kvm/vgic/vgic-v4.c b/arch/arm64/kvm/vgic/vgic-v4.c
index f507e3f..f9cbd2c 100644
--- a/arch/arm64/kvm/vgic/vgic-v4.c
+++ b/arch/arm64/kvm/vgic/vgic-v4.c
@@ -251,7 +251,7 @@
 	nr_vcpus = atomic_read(&kvm->online_vcpus);
 
 	dist->its_vm.vpes = kcalloc(nr_vcpus, sizeof(*dist->its_vm.vpes),
-				    GFP_KERNEL);
+				    GFP_KERNEL_ACCOUNT);
 	if (!dist->its_vm.vpes)
 		return -ENOMEM;
 
diff --git a/arch/arm64/kvm/vgic/vgic.c b/arch/arm64/kvm/vgic/vgic.c
index 5dad499..0bf570e 100644
--- a/arch/arm64/kvm/vgic/vgic.c
+++ b/arch/arm64/kvm/vgic/vgic.c
@@ -931,26 +931,15 @@
 		vgic_v3_load(vcpu);
 }
 
-void kvm_vgic_put(struct kvm_vcpu *vcpu)
+void kvm_vgic_put(struct kvm_vcpu *vcpu, bool blocking)
 {
 	if (unlikely(!vgic_initialized(vcpu->kvm)))
 		return;
 
 	if (kvm_vgic_global_state.type == VGIC_V2)
-		vgic_v2_put(vcpu);
+		vgic_v2_put(vcpu, blocking);
 	else
-		vgic_v3_put(vcpu);
-}
-
-void kvm_vgic_vmcr_sync(struct kvm_vcpu *vcpu)
-{
-	if (unlikely(!irqchip_in_kernel(vcpu->kvm)))
-		return;
-
-	if (kvm_vgic_global_state.type == VGIC_V2)
-		vgic_v2_vmcr_sync(vcpu);
-	else
-		vgic_v3_vmcr_sync(vcpu);
+		vgic_v3_put(vcpu, blocking);
 }
 
 int kvm_vgic_vcpu_pending_irq(struct kvm_vcpu *vcpu)
diff --git a/arch/arm64/kvm/vgic/vgic.h b/arch/arm64/kvm/vgic/vgic.h
index 36021c3..a43619f 100644
--- a/arch/arm64/kvm/vgic/vgic.h
+++ b/arch/arm64/kvm/vgic/vgic.h
@@ -172,8 +172,9 @@
 void vgic_irq_handle_resampling(struct vgic_irq *irq,
 				bool lr_deactivated, bool lr_pending);
 
-int vgic_check_ioaddr(struct kvm *kvm, phys_addr_t *ioaddr,
-		      phys_addr_t addr, phys_addr_t alignment);
+int vgic_check_iorange(struct kvm *kvm, phys_addr_t ioaddr,
+		       phys_addr_t addr, phys_addr_t alignment,
+		       phys_addr_t size);
 
 void vgic_v2_fold_lr_state(struct kvm_vcpu *vcpu);
 void vgic_v2_populate_lr(struct kvm_vcpu *vcpu, struct vgic_irq *irq, int lr);
@@ -195,8 +196,7 @@
 
 void vgic_v2_init_lrs(void);
 void vgic_v2_load(struct kvm_vcpu *vcpu);
-void vgic_v2_put(struct kvm_vcpu *vcpu);
-void vgic_v2_vmcr_sync(struct kvm_vcpu *vcpu);
+void vgic_v2_put(struct kvm_vcpu *vcpu, bool blocking);
 
 void vgic_v2_save_state(struct kvm_vcpu *vcpu);
 void vgic_v2_restore_state(struct kvm_vcpu *vcpu);
@@ -226,8 +226,7 @@
 bool vgic_v3_check_base(struct kvm *kvm);
 
 void vgic_v3_load(struct kvm_vcpu *vcpu);
-void vgic_v3_put(struct kvm_vcpu *vcpu);
-void vgic_v3_vmcr_sync(struct kvm_vcpu *vcpu);
+void vgic_v3_put(struct kvm_vcpu *vcpu, bool blocking);
 
 bool vgic_has_its(struct kvm *kvm);
 int kvm_vgic_register_its_device(void);
diff --git a/arch/arm64/lib/copy_page.S b/arch/arm64/lib/copy_page.S
index 29144f4..919f52a 100644
--- a/arch/arm64/lib/copy_page.S
+++ b/arch/arm64/lib/copy_page.S
@@ -18,13 +18,6 @@
  *	x1 - src
  */
 SYM_FUNC_START_PI(copy_page)
-alternative_if ARM64_HAS_NO_HW_PREFETCH
-	// Prefetch three cache lines ahead.
-	prfm	pldl1strm, [x1, #128]
-	prfm	pldl1strm, [x1, #256]
-	prfm	pldl1strm, [x1, #384]
-alternative_else_nop_endif
-
 	ldp	x2, x3, [x1]
 	ldp	x4, x5, [x1, #16]
 	ldp	x6, x7, [x1, #32]
@@ -39,10 +32,6 @@
 1:
 	tst	x0, #(PAGE_SIZE - 1)
 
-alternative_if ARM64_HAS_NO_HW_PREFETCH
-	prfm	pldl1strm, [x1, #384]
-alternative_else_nop_endif
-
 	stnp	x2, x3, [x0, #-256]
 	ldp	x2, x3, [x1]
 	stnp	x4, x5, [x0, #16 - 256]
diff --git a/arch/arm64/lib/mte.S b/arch/arm64/lib/mte.S
index f531dcb9..8590af3 100644
--- a/arch/arm64/lib/mte.S
+++ b/arch/arm64/lib/mte.S
@@ -134,7 +134,7 @@
 /*
  * Save the tags in a page
  *   x0 - page address
- *   x1 - tag storage
+ *   x1 - tag storage, MTE_PAGE_TAG_STORAGE bytes
  */
 SYM_FUNC_START(mte_save_page_tags)
 	multitag_transfer_size x7, x5
@@ -158,7 +158,7 @@
 /*
  * Restore the tags in a page
  *   x0 - page address
- *   x1 - tag storage
+ *   x1 - tag storage, MTE_PAGE_TAG_STORAGE bytes
  */
 SYM_FUNC_START(mte_restore_page_tags)
 	multitag_transfer_size x7, x5
diff --git a/arch/arm64/mm/Makefile b/arch/arm64/mm/Makefile
index f188c90..7368829 100644
--- a/arch/arm64/mm/Makefile
+++ b/arch/arm64/mm/Makefile
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 obj-y				:= dma-mapping.o extable.o fault.o init.o \
 				   cache.o copypage.o flush.o \
-				   ioremap.o mmap.o pgd.o mmu.o \
+				   ioremap.o mem_encrypt.o mmap.o pgd.o mmu.o \
 				   context.o proc.o pageattr.o
 obj-$(CONFIG_HUGETLB_PAGE)	+= hugetlbpage.o
 obj-$(CONFIG_PTDUMP_CORE)	+= ptdump.o
diff --git a/arch/arm64/mm/cache.S b/arch/arm64/mm/cache.S
index 79164e4..4f76fae 100644
--- a/arch/arm64/mm/cache.S
+++ b/arch/arm64/mm/cache.S
@@ -88,7 +88,7 @@
  *	- start   - virtual start address of region
  *	- end     - virtual end address of region
  */
-SYM_FUNC_START(icache_inval_pou)
+SYM_FUNC_START_PI(icache_inval_pou)
 alternative_if ARM64_HAS_CACHE_DIC
 	isb
 	ret
@@ -96,7 +96,7 @@
 
 	invalidate_icache_by_line x0, x1, x2, x3
 	ret
-SYM_FUNC_END(icache_inval_pou)
+SYM_FUNC_END_PI(icache_inval_pou)
 
 /*
  *	dcache_clean_inval_poc(start, end)
@@ -230,6 +230,8 @@
  *	- dir	- DMA direction
  */
 SYM_FUNC_START_PI(__dma_map_area)
+	cmp	w2, #DMA_FROM_DEVICE
+	b.eq	__dma_flush_area
 	add	x1, x0, x1
 	b	__dma_clean_area
 SYM_FUNC_END_PI(__dma_map_area)
diff --git a/arch/arm64/mm/context.c b/arch/arm64/mm/context.c
index cd72576..eed53e1 100644
--- a/arch/arm64/mm/context.c
+++ b/arch/arm64/mm/context.c
@@ -338,12 +338,7 @@
 /* Errata workaround post TTBRx_EL1 update. */
 asmlinkage void post_ttbr_update_workaround(void)
 {
-	if (!IS_ENABLED(CONFIG_CAVIUM_ERRATUM_27456))
-		return;
-
-	asm(ALTERNATIVE("nop; nop; nop",
-			"ic iallu; dsb nsh; isb",
-			ARM64_WORKAROUND_CAVIUM_27456));
+	return;
 }
 
 void cpu_do_switch_mm(phys_addr_t pgd_phys, struct mm_struct *mm)
diff --git a/arch/arm64/mm/copypage.c b/arch/arm64/mm/copypage.c
index b44931de..a0e1ee7 100644
--- a/arch/arm64/mm/copypage.c
+++ b/arch/arm64/mm/copypage.c
@@ -21,7 +21,8 @@
 
 	copy_page(kto, kfrom);
 
-	page_kasan_tag_reset(to);
+	if (kasan_hw_tags_enabled())
+		page_kasan_tag_reset(to);
 
 	if (system_supports_mte() && test_bit(PG_mte_tagged, &from->flags)) {
 		set_bit(PG_mte_tagged, &to->flags);
diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c
index 6719f9e..443475d 100644
--- a/arch/arm64/mm/dma-mapping.c
+++ b/arch/arm64/mm/dma-mapping.c
@@ -10,6 +10,7 @@
 #include <linux/dma-iommu.h>
 #include <xen/xen.h>
 #include <xen/swiotlb-xen.h>
+#include <trace/hooks/iommu.h>
 
 #include <asm/cacheflush.h>
 
@@ -49,8 +50,10 @@
 		   ARCH_DMA_MINALIGN, cls);
 
 	dev->dma_coherent = coherent;
-	if (iommu)
+	if (iommu) {
 		iommu_setup_dma_ops(dev, dma_base, dma_base + size - 1);
+		trace_android_rvh_iommu_setup_dma_ops(dev, dma_base, dma_base + size - 1);
+	}
 
 #ifdef CONFIG_XEN
 	if (xen_swiotlb_detect())
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
index 63276203..279b3d5 100644
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@ -25,6 +25,7 @@
 #include <linux/perf_event.h>
 #include <linux/preempt.h>
 #include <linux/hugetlb.h>
+#include <linux/vm_event_item.h>
 
 #include <asm/acpi.h>
 #include <asm/bug.h>
@@ -41,9 +42,13 @@
 #include <asm/system_misc.h>
 #include <asm/tlbflush.h>
 #include <asm/traps.h>
+#include <asm/virt.h>
+
+#include <trace/hooks/fault.h>
+#include <trace/hooks/mm.h>
 
 struct fault_info {
-	int	(*fn)(unsigned long far, unsigned long esr,
+	int	(*fn)(unsigned long far, unsigned int esr,
 		      struct pt_regs *regs);
 	int	sig;
 	int	code;
@@ -53,17 +58,17 @@
 static const struct fault_info fault_info[];
 static struct fault_info debug_fault_info[];
 
-static inline const struct fault_info *esr_to_fault_info(unsigned long esr)
+static inline const struct fault_info *esr_to_fault_info(unsigned int esr)
 {
 	return fault_info + (esr & ESR_ELx_FSC);
 }
 
-static inline const struct fault_info *esr_to_debug_fault_info(unsigned long esr)
+static inline const struct fault_info *esr_to_debug_fault_info(unsigned int esr)
 {
 	return debug_fault_info + DBG_ESR_EVT(esr);
 }
 
-static void data_abort_decode(unsigned long esr)
+static void data_abort_decode(unsigned int esr)
 {
 	pr_alert("Data abort info:\n");
 
@@ -85,11 +90,11 @@
 		 (esr & ESR_ELx_WNR) >> ESR_ELx_WNR_SHIFT);
 }
 
-static void mem_abort_decode(unsigned long esr)
+static void mem_abort_decode(unsigned int esr)
 {
 	pr_alert("Mem abort info:\n");
 
-	pr_alert("  ESR = 0x%016lx\n", esr);
+	pr_alert("  ESR = 0x%08x\n", esr);
 	pr_alert("  EC = 0x%02lx: %s, IL = %u bits\n",
 		 ESR_ELx_EC(esr), esr_get_class_string(esr),
 		 (esr & ESR_ELx_IL) ? 32 : 16);
@@ -99,7 +104,7 @@
 	pr_alert("  EA = %lu, S1PTW = %lu\n",
 		 (esr & ESR_ELx_EA) >> ESR_ELx_EA_SHIFT,
 		 (esr & ESR_ELx_S1PTW) >> ESR_ELx_S1PTW_SHIFT);
-	pr_alert("  FSC = 0x%02lx: %s\n", (esr & ESR_ELx_FSC),
+	pr_alert("  FSC = 0x%02x: %s\n", (esr & ESR_ELx_FSC),
 		 esr_to_fault_info(esr)->name);
 
 	if (esr_is_data_abort(esr))
@@ -229,20 +234,20 @@
 	return 1;
 }
 
-static bool is_el1_instruction_abort(unsigned long esr)
+static bool is_el1_instruction_abort(unsigned int esr)
 {
 	return ESR_ELx_EC(esr) == ESR_ELx_EC_IABT_CUR;
 }
 
-static bool is_el1_data_abort(unsigned long esr)
+static bool is_el1_data_abort(unsigned int esr)
 {
 	return ESR_ELx_EC(esr) == ESR_ELx_EC_DABT_CUR;
 }
 
-static inline bool is_el1_permission_fault(unsigned long addr, unsigned long esr,
+static inline bool is_el1_permission_fault(unsigned long addr, unsigned int esr,
 					   struct pt_regs *regs)
 {
-	unsigned long fsc_type = esr & ESR_ELx_FSC_TYPE;
+	unsigned int fsc_type = esr & ESR_ELx_FSC_TYPE;
 
 	if (!is_el1_data_abort(esr) && !is_el1_instruction_abort(esr))
 		return false;
@@ -257,8 +262,17 @@
 	return false;
 }
 
+static bool is_pkvm_stage2_abort(unsigned int esr)
+{
+	/*
+	 * S1PTW should only ever be set in ESR_EL1 if the pkvm hypervisor
+	 * injected a stage-2 abort -- see host_inject_abort().
+	 */
+	return is_pkvm_initialized() && (esr & ESR_ELx_S1PTW);
+}
+
 static bool __kprobes is_spurious_el1_translation_fault(unsigned long addr,
-							unsigned long esr,
+							unsigned int esr,
 							struct pt_regs *regs)
 {
 	unsigned long flags;
@@ -268,6 +282,9 @@
 	    (esr & ESR_ELx_FSC_TYPE) != ESR_ELx_FSC_FAULT)
 		return false;
 
+	if (is_pkvm_stage2_abort(esr))
+		return false;
+
 	local_irq_save(flags);
 	asm volatile("at s1e1r, %0" :: "r" (addr));
 	isb();
@@ -290,13 +307,14 @@
 }
 
 static void die_kernel_fault(const char *msg, unsigned long addr,
-			     unsigned long esr, struct pt_regs *regs)
+			     unsigned int esr, struct pt_regs *regs)
 {
 	bust_spinlocks(1);
 
 	pr_alert("Unable to handle kernel %s at virtual address %016lx\n", msg,
 		 addr);
 
+	trace_android_rvh_die_kernel_fault(msg, addr, esr, regs);
 	mem_abort_decode(esr);
 
 	show_pte(addr);
@@ -306,7 +324,7 @@
 }
 
 #ifdef CONFIG_KASAN_HW_TAGS
-static void report_tag_fault(unsigned long addr, unsigned long esr,
+static void report_tag_fault(unsigned long addr, unsigned int esr,
 			     struct pt_regs *regs)
 {
 	/*
@@ -318,11 +336,11 @@
 }
 #else
 /* Tag faults aren't enabled without CONFIG_KASAN_HW_TAGS. */
-static inline void report_tag_fault(unsigned long addr, unsigned long esr,
+static inline void report_tag_fault(unsigned long addr, unsigned int esr,
 				    struct pt_regs *regs) { }
 #endif
 
-static void do_tag_recovery(unsigned long addr, unsigned long esr,
+static void do_tag_recovery(unsigned long addr, unsigned int esr,
 			   struct pt_regs *regs)
 {
 
@@ -337,9 +355,9 @@
 	isb();
 }
 
-static bool is_el1_mte_sync_tag_check_fault(unsigned long esr)
+static bool is_el1_mte_sync_tag_check_fault(unsigned int esr)
 {
-	unsigned long fsc = esr & ESR_ELx_FSC;
+	unsigned int fsc = esr & ESR_ELx_FSC;
 
 	if (!is_el1_data_abort(esr))
 		return false;
@@ -350,12 +368,7 @@
 	return false;
 }
 
-static bool is_translation_fault(unsigned long esr)
-{
-	return (esr & ESR_ELx_FSC_TYPE) == ESR_ELx_FSC_FAULT;
-}
-
-static void __do_kernel_fault(unsigned long addr, unsigned long esr,
+static void __do_kernel_fault(unsigned long addr, unsigned int esr,
 			      struct pt_regs *regs)
 {
 	const char *msg;
@@ -386,9 +399,10 @@
 			msg = "read from unreadable memory";
 	} else if (addr < PAGE_SIZE) {
 		msg = "NULL pointer dereference";
+	} else if (is_pkvm_stage2_abort(esr)) {
+		msg = "access to hypervisor-protected memory";
 	} else {
-		if (is_translation_fault(esr) &&
-		    kfence_handle_page_fault(addr, esr & ESR_ELx_WNR, regs))
+		if (kfence_handle_page_fault(addr, esr & ESR_ELx_WNR, regs))
 			return;
 
 		msg = "paging request";
@@ -397,7 +411,7 @@
 	die_kernel_fault(msg, addr, esr, regs);
 }
 
-static void set_thread_esr(unsigned long address, unsigned long esr)
+static void set_thread_esr(unsigned long address, unsigned int esr)
 {
 	current->thread.fault_address = address;
 
@@ -445,7 +459,7 @@
 			 * exception level). Fail safe by not providing an ESR
 			 * context record at all.
 			 */
-			WARN(1, "ESR 0x%lx is not DABT or IABT from EL0\n", esr);
+			WARN(1, "ESR 0x%x is not DABT or IABT from EL0\n", esr);
 			esr = 0;
 			break;
 		}
@@ -454,7 +468,7 @@
 	current->thread.fault_code = esr;
 }
 
-static void do_bad_area(unsigned long far, unsigned long esr,
+static void do_bad_area(unsigned long far, unsigned int esr,
 			struct pt_regs *regs)
 {
 	unsigned long addr = untagged_addr(far);
@@ -505,7 +519,7 @@
 	return handle_mm_fault(vma, addr, mm_flags, regs);
 }
 
-static bool is_el0_instruction_abort(unsigned long esr)
+static bool is_el0_instruction_abort(unsigned int esr)
 {
 	return ESR_ELx_EC(esr) == ESR_ELx_EC_IABT_LOW;
 }
@@ -514,12 +528,12 @@
  * Note: not valid for EL1 DC IVAC, but we never use that such that it
  * should fault. EL0 cannot issue DC IVAC (undef).
  */
-static bool is_write_abort(unsigned long esr)
+static bool is_write_abort(unsigned int esr)
 {
 	return (esr & ESR_ELx_WNR) && !(esr & ESR_ELx_CM);
 }
 
-static int __kprobes do_page_fault(unsigned long far, unsigned long esr,
+static int __kprobes do_page_fault(unsigned long far, unsigned int esr,
 				   struct pt_regs *regs)
 {
 	const struct fault_info *inf;
@@ -528,6 +542,11 @@
 	unsigned long vm_flags;
 	unsigned int mm_flags = FAULT_FLAG_DEFAULT;
 	unsigned long addr = untagged_addr(far);
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	struct vm_area_struct *vma;
+	struct vm_area_struct pvma;
+	unsigned long seq;
+#endif
 
 	if (kprobe_page_fault(regs, esr))
 		return 0;
@@ -576,8 +595,68 @@
 					 addr, esr, regs);
 	}
 
+	if (is_pkvm_stage2_abort(esr)) {
+		if (!user_mode(regs))
+			goto no_context;
+		arm64_force_sig_fault(SIGSEGV, SEGV_ACCERR, far, "stage-2 fault");
+		return 0;
+	}
+
 	perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, addr);
 
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	/*
+	 * No need to try speculative faults for kernel or
+	 * single threaded user space.
+	 */
+	if (!(mm_flags & FAULT_FLAG_USER) || atomic_read(&mm->mm_users) == 1)
+		goto no_spf;
+
+	count_vm_event(SPF_ATTEMPT);
+	seq = mmap_seq_read_start(mm);
+	if (seq & 1) {
+		count_vm_spf_event(SPF_ABORT_ODD);
+		goto spf_abort;
+	}
+	vma = get_vma(mm, addr);
+	if (!vma) {
+		count_vm_spf_event(SPF_ABORT_UNMAPPED);
+		goto spf_abort;
+	}
+	if (!vma_can_speculate(vma, mm_flags)) {
+		put_vma(vma);
+		count_vm_spf_event(SPF_ABORT_NO_SPECULATE);
+		goto spf_abort;
+	}
+	pvma = *vma;
+	if (!mmap_seq_read_check(mm, seq, SPF_ABORT_VMA_COPY)) {
+		put_vma(vma);
+		goto spf_abort;
+	}
+	if (!(pvma.vm_flags & vm_flags)) {
+		put_vma(vma);
+		count_vm_spf_event(SPF_ABORT_ACCESS_ERROR);
+		goto spf_abort;
+	}
+	fault = do_handle_mm_fault(&pvma, addr & PAGE_MASK,
+			mm_flags | FAULT_FLAG_SPECULATIVE, seq, regs);
+	put_vma(vma);
+
+	/* Quick path to respond to signals */
+	if (fault_signal_pending(fault, regs)) {
+		if (!user_mode(regs))
+			goto no_context;
+		return 0;
+	}
+	if (!(fault & VM_FAULT_RETRY))
+		goto done;
+
+spf_abort:
+	count_vm_event(SPF_ABORT);
+no_spf:
+
+#endif	/* CONFIG_SPECULATIVE_PAGE_FAULT */
+
 	/*
 	 * As per x86, we may deadlock here. However, since the kernel only
 	 * validly references user space from well defined areas of the code,
@@ -618,6 +697,9 @@
 		}
 	}
 	mmap_read_unlock(mm);
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+done:
+#endif
 
 	/*
 	 * Handle the "normal" (no error) case first.
@@ -677,7 +759,7 @@
 }
 
 static int __kprobes do_translation_fault(unsigned long far,
-					  unsigned long esr,
+					  unsigned int esr,
 					  struct pt_regs *regs)
 {
 	unsigned long addr = untagged_addr(far);
@@ -689,19 +771,23 @@
 	return 0;
 }
 
-static int do_alignment_fault(unsigned long far, unsigned long esr,
+static int do_alignment_fault(unsigned long far, unsigned int esr,
 			      struct pt_regs *regs)
 {
 	do_bad_area(far, esr, regs);
 	return 0;
 }
 
-static int do_bad(unsigned long far, unsigned long esr, struct pt_regs *regs)
+static int do_bad(unsigned long far, unsigned int esr, struct pt_regs *regs)
 {
-	return 1; /* "fault" */
+	unsigned long addr = untagged_addr(far);
+	int ret = 1;
+
+	trace_android_vh_handle_tlb_conf(addr, esr, &ret);
+	return ret;
 }
 
-static int do_sea(unsigned long far, unsigned long esr, struct pt_regs *regs)
+static int do_sea(unsigned long far, unsigned int esr, struct pt_regs *regs)
 {
 	const struct fault_info *inf;
 	unsigned long siaddr;
@@ -726,12 +812,13 @@
 		 */
 		siaddr  = untagged_addr(far);
 	}
+	trace_android_rvh_do_sea(siaddr, esr, regs);
 	arm64_notify_die(inf->name, regs, inf->sig, inf->code, siaddr, esr);
 
 	return 0;
 }
 
-static int do_tag_check_fault(unsigned long far, unsigned long esr,
+static int do_tag_check_fault(unsigned long far, unsigned int esr,
 			      struct pt_regs *regs)
 {
 	/*
@@ -811,7 +898,7 @@
 	{ do_bad,		SIGKILL, SI_KERNEL,	"unknown 63"			},
 };
 
-void do_mem_abort(unsigned long far, unsigned long esr, struct pt_regs *regs)
+void do_mem_abort(unsigned long far, unsigned int esr, struct pt_regs *regs)
 {
 	const struct fault_info *inf = esr_to_fault_info(esr);
 	unsigned long addr = untagged_addr(far);
@@ -821,6 +908,7 @@
 
 	if (!user_mode(regs)) {
 		pr_alert("Unhandled fault at 0x%016lx\n", addr);
+		trace_android_rvh_do_mem_abort(addr, esr, regs);
 		mem_abort_decode(esr);
 		show_pte(addr);
 	}
@@ -834,14 +922,16 @@
 }
 NOKPROBE_SYMBOL(do_mem_abort);
 
-void do_sp_pc_abort(unsigned long addr, unsigned long esr, struct pt_regs *regs)
+void do_sp_pc_abort(unsigned long addr, unsigned int esr, struct pt_regs *regs)
 {
+	trace_android_rvh_do_sp_pc_abort(addr, esr, regs);
+
 	arm64_notify_die("SP/PC alignment exception", regs, SIGBUS, BUS_ADRALN,
 			 addr, esr);
 }
 NOKPROBE_SYMBOL(do_sp_pc_abort);
 
-int __init early_brk64(unsigned long addr, unsigned long esr,
+int __init early_brk64(unsigned long addr, unsigned int esr,
 		       struct pt_regs *regs);
 
 /*
@@ -861,7 +951,7 @@
 };
 
 void __init hook_debug_fault_code(int nr,
-				  int (*fn)(unsigned long, unsigned long, struct pt_regs *),
+				  int (*fn)(unsigned long, unsigned int, struct pt_regs *),
 				  int sig, int code, const char *name)
 {
 	BUG_ON(nr < 0 || nr >= ARRAY_SIZE(debug_fault_info));
@@ -894,7 +984,7 @@
 }
 NOKPROBE_SYMBOL(debug_exception_exit);
 
-void do_debug_exception(unsigned long addr_if_watchpoint, unsigned long esr,
+void do_debug_exception(unsigned long addr_if_watchpoint, unsigned int esr,
 			struct pt_regs *regs)
 {
 	const struct fault_info *inf = esr_to_debug_fault_info(esr);
@@ -919,8 +1009,10 @@
 struct page *alloc_zeroed_user_highpage_movable(struct vm_area_struct *vma,
 						unsigned long vaddr)
 {
-	gfp_t flags = GFP_HIGHUSER_MOVABLE | __GFP_ZERO;
+	gfp_t flags = GFP_HIGHUSER_MOVABLE | __GFP_ZERO | __GFP_CMA;
 
+	trace_android_vh_alloc_highpage_movable_gfp_adjust(&flags);
+	trace_android_vh_anon_gfp_adjust(&flags);
 	/*
 	 * If the page is mapped with PROT_MTE, initialise the tags at the
 	 * point of allocation and page zeroing as this is usually faster than
diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c
index 3b269c75..0210dc6 100644
--- a/arch/arm64/mm/init.c
+++ b/arch/arm64/mm/init.c
@@ -90,6 +90,12 @@
 phys_addr_t __ro_after_init arm64_dma_phys_limit = PHYS_MASK + 1;
 #endif
 
+/*
+ * Provide a run-time mean of disabling ZONE_DMA32 if it is enabled via
+ * CONFIG_ZONE_DMA32.
+ */
+static bool disable_dma32 __ro_after_init;
+
 #ifdef CONFIG_KEXEC_CORE
 /*
  * reserve_crashkernel() - reserves memory for crash kernel
@@ -175,7 +181,7 @@
 	max_zone_pfns[ZONE_DMA] = PFN_DOWN(arm64_dma_phys_limit);
 #endif
 #ifdef CONFIG_ZONE_DMA32
-	max_zone_pfns[ZONE_DMA32] = PFN_DOWN(dma32_phys_limit);
+	max_zone_pfns[ZONE_DMA32] = disable_dma32 ? 0 : PFN_DOWN(dma32_phys_limit);
 	if (!arm64_dma_phys_limit)
 		arm64_dma_phys_limit = dma32_phys_limit;
 #endif
@@ -184,6 +190,18 @@
 	free_area_init(max_zone_pfns);
 }
 
+static int __init early_disable_dma32(char *buf)
+{
+	if (!buf)
+		return -EINVAL;
+
+	if (!strcmp(buf, "on"))
+		disable_dma32 = true;
+
+	return 0;
+}
+early_param("disable_dma32", early_disable_dma32);
+
 int pfn_is_map_memory(unsigned long pfn)
 {
 	phys_addr_t addr = PFN_PHYS(pfn);
diff --git a/arch/arm64/mm/ioremap.c b/arch/arm64/mm/ioremap.c
index b21f91c..f134a59 100644
--- a/arch/arm64/mm/ioremap.c
+++ b/arch/arm64/mm/ioremap.c
@@ -9,13 +9,176 @@
  * Copyright (C) 2012 ARM Ltd.
  */
 
+#define pr_fmt(fmt)	"ioremap: " fmt
+
 #include <linux/export.h>
 #include <linux/mm.h>
 #include <linux/vmalloc.h>
+#include <linux/slab.h>
 #include <linux/io.h>
+#include <linux/arm-smccc.h>
 
 #include <asm/fixmap.h>
 #include <asm/tlbflush.h>
+#include <asm/hypervisor.h>
+
+struct ioremap_guard_ref {
+	refcount_t	count;
+};
+
+static DEFINE_STATIC_KEY_FALSE(ioremap_guard_key);
+static DEFINE_XARRAY(ioremap_guard_array);
+static DEFINE_MUTEX(ioremap_guard_lock);
+
+static bool ioremap_guard;
+static int __init ioremap_guard_setup(char *str)
+{
+	ioremap_guard = true;
+
+	return 0;
+}
+early_param("ioremap_guard", ioremap_guard_setup);
+
+static void fixup_fixmap(void)
+{
+	pte_t *ptep = __get_fixmap_pte(FIX_EARLYCON_MEM_BASE);
+
+	if (!ptep)
+		return;
+
+	ioremap_phys_range_hook(__pte_to_phys(*ptep), PAGE_SIZE,
+				__pgprot(pte_val(*ptep) & PTE_ATTRINDX_MASK));
+}
+
+void kvm_init_ioremap_services(void)
+{
+	struct arm_smccc_res res;
+
+	if (!ioremap_guard)
+		return;
+
+	/* We need all the functions to be implemented */
+	if (!kvm_arm_hyp_service_available(ARM_SMCCC_KVM_FUNC_MMIO_GUARD_INFO) ||
+	    !kvm_arm_hyp_service_available(ARM_SMCCC_KVM_FUNC_MMIO_GUARD_ENROLL) ||
+	    !kvm_arm_hyp_service_available(ARM_SMCCC_KVM_FUNC_MMIO_GUARD_MAP) ||
+	    !kvm_arm_hyp_service_available(ARM_SMCCC_KVM_FUNC_MMIO_GUARD_UNMAP))
+		return;
+
+	arm_smccc_1_1_invoke(ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_INFO_FUNC_ID,
+			     0, 0, 0, &res);
+	if (res.a0 != PAGE_SIZE)
+		return;
+
+	arm_smccc_1_1_invoke(ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_ENROLL_FUNC_ID,
+			     &res);
+	if (res.a0 == SMCCC_RET_SUCCESS) {
+		static_branch_enable(&ioremap_guard_key);
+		fixup_fixmap();
+		pr_info("Using KVM MMIO guard for ioremap\n");
+	} else {
+		pr_warn("KVM MMIO guard registration failed (%ld)\n", res.a0);
+	}
+}
+
+void ioremap_phys_range_hook(phys_addr_t phys_addr, size_t size, pgprot_t prot)
+{
+	if (!static_branch_unlikely(&ioremap_guard_key))
+		return;
+
+	if (pfn_valid(__phys_to_pfn(phys_addr)))
+		return;
+
+	mutex_lock(&ioremap_guard_lock);
+
+	while (size) {
+		u64 pfn = phys_addr >> PAGE_SHIFT;
+		struct ioremap_guard_ref *ref;
+		struct arm_smccc_res res;
+
+		ref = xa_load(&ioremap_guard_array, pfn);
+		if (ref) {
+			refcount_inc(&ref->count);
+			goto next;
+		}
+
+		/*
+		 * It is acceptable for the allocation to fail, specially
+		 * if trying to ioremap something very early on, like with
+		 * earlycon, which happens long before kmem_cache_init.
+		 * This page will be permanently accessible, similar to a
+		 * saturated refcount.
+		 */
+		if (slab_is_available())
+			ref = kzalloc(sizeof(*ref), GFP_KERNEL);
+		if (ref) {
+			refcount_set(&ref->count, 1);
+			if (xa_err(xa_store(&ioremap_guard_array, pfn, ref,
+					    GFP_KERNEL))) {
+				kfree(ref);
+				ref = NULL;
+			}
+		}
+
+		arm_smccc_1_1_hvc(ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_MAP_FUNC_ID,
+				  phys_addr, prot, &res);
+		if (res.a0 != SMCCC_RET_SUCCESS) {
+			pr_warn_ratelimited("Failed to register %llx\n",
+					    phys_addr);
+			xa_erase(&ioremap_guard_array, pfn);
+			kfree(ref);
+			goto out;
+		}
+
+	next:
+		size -= PAGE_SIZE;
+		phys_addr += PAGE_SIZE;
+	}
+out:
+	mutex_unlock(&ioremap_guard_lock);
+}
+
+void iounmap_phys_range_hook(phys_addr_t phys_addr, size_t size)
+{
+	if (!static_branch_unlikely(&ioremap_guard_key))
+		return;
+
+	VM_BUG_ON(phys_addr & ~PAGE_MASK || size & ~PAGE_MASK);
+
+	mutex_lock(&ioremap_guard_lock);
+
+	while (size) {
+		u64 pfn = phys_addr >> PAGE_SHIFT;
+		struct ioremap_guard_ref *ref;
+		struct arm_smccc_res res;
+
+		ref = xa_load(&ioremap_guard_array, pfn);
+		if (!ref) {
+			pr_warn_ratelimited("%llx not tracked, left mapped\n",
+					    phys_addr);
+			goto next;
+		}
+
+		if (!refcount_dec_and_test(&ref->count))
+			goto next;
+
+		xa_erase(&ioremap_guard_array, pfn);
+		kfree(ref);
+
+		arm_smccc_1_1_hvc(ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_UNMAP_FUNC_ID,
+				  phys_addr, &res);
+		if (res.a0 != SMCCC_RET_SUCCESS) {
+			pr_warn_ratelimited("Failed to unregister %llx\n",
+					    phys_addr);
+			goto out;
+		}
+
+	next:
+		size -= PAGE_SIZE;
+		phys_addr += PAGE_SIZE;
+	}
+out:
+	mutex_unlock(&ioremap_guard_lock);
+}
 
 static void __iomem *__ioremap_caller(phys_addr_t phys_addr, size_t size,
 				      pgprot_t prot, void *caller)
diff --git a/arch/arm64/mm/kasan_init.c b/arch/arm64/mm/kasan_init.c
index 61b52a9..dbe4101 100644
--- a/arch/arm64/mm/kasan_init.c
+++ b/arch/arm64/mm/kasan_init.c
@@ -36,7 +36,7 @@
 {
 	void *p = memblock_alloc_try_nid(PAGE_SIZE, PAGE_SIZE,
 					      __pa(MAX_DMA_ADDRESS),
-					      MEMBLOCK_ALLOC_KASAN, node);
+					      MEMBLOCK_ALLOC_NOLEAKTRACE, node);
 	if (!p)
 		panic("%s: Failed to allocate %lu bytes align=0x%lx nid=%d from=%llx\n",
 		      __func__, PAGE_SIZE, PAGE_SIZE, node,
@@ -49,7 +49,8 @@
 {
 	void *p = memblock_alloc_try_nid_raw(PAGE_SIZE, PAGE_SIZE,
 						__pa(MAX_DMA_ADDRESS),
-						MEMBLOCK_ALLOC_KASAN, node);
+						MEMBLOCK_ALLOC_NOLEAKTRACE,
+						node);
 	if (!p)
 		panic("%s: Failed to allocate %lu bytes align=0x%lx nid=%d from=%llx\n",
 		      __func__, PAGE_SIZE, PAGE_SIZE, node,
@@ -293,7 +294,7 @@
 	kasan_init_depth();
 #if defined(CONFIG_KASAN_GENERIC)
 	/* CONFIG_KASAN_SW_TAGS also requires kasan_init_sw_tags(). */
-	pr_info("KernelAddressSanitizer initialized\n");
+	pr_info("KernelAddressSanitizer initialized (generic)\n");
 #endif
 }
 
diff --git a/arch/arm64/mm/mem_encrypt.c b/arch/arm64/mm/mem_encrypt.c
new file mode 100644
index 0000000..ff75dd3
--- /dev/null
+++ b/arch/arm64/mm/mem_encrypt.c
@@ -0,0 +1,102 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Implementation of the memory encryption/decryption API.
+ *
+ * Amusingly, no crypto is actually performed. Rather, we call into the
+ * hypervisor component of KVM to expose pages selectively to the host
+ * for virtio "DMA" operations. In other words, "encrypted" pages are
+ * not accessible to the host, whereas "decrypted" pages are.
+ *
+ * Author: Will Deacon <will@kernel.org>
+ */
+#include <linux/arm-smccc.h>
+#include <linux/mem_encrypt.h>
+#include <linux/memory.h>
+#include <linux/mm.h>
+#include <linux/set_memory.h>
+#include <linux/types.h>
+
+#include <asm/hypervisor.h>
+
+static unsigned long memshare_granule_sz;
+
+bool mem_encrypt_active(void)
+{
+	return memshare_granule_sz;
+}
+EXPORT_SYMBOL(mem_encrypt_active);
+
+void kvm_init_memshare_services(void)
+{
+	int i;
+	struct arm_smccc_res res;
+	const u32 funcs[] = {
+		ARM_SMCCC_KVM_FUNC_HYP_MEMINFO,
+		ARM_SMCCC_KVM_FUNC_MEM_SHARE,
+		ARM_SMCCC_KVM_FUNC_MEM_UNSHARE,
+	};
+
+	for (i = 0; i < ARRAY_SIZE(funcs); ++i) {
+		if (!kvm_arm_hyp_service_available(funcs[i]))
+			return;
+	}
+
+	arm_smccc_1_1_invoke(ARM_SMCCC_VENDOR_HYP_KVM_HYP_MEMINFO_FUNC_ID,
+			     0, 0, 0, &res);
+	if (res.a0 > PAGE_SIZE) /* Includes error codes */
+		return;
+
+	memshare_granule_sz = res.a0;
+}
+
+static int arm_smccc_share_unshare_page(u32 func_id, phys_addr_t phys)
+{
+	phys_addr_t end = phys + PAGE_SIZE;
+
+	while (phys < end) {
+		struct arm_smccc_res res;
+
+		arm_smccc_1_1_invoke(func_id, phys, 0, 0, &res);
+		if (res.a0 != SMCCC_RET_SUCCESS)
+			return -EPERM;
+
+		phys += memshare_granule_sz;
+	}
+
+	return 0;
+}
+
+static int set_memory_xcrypted(u32 func_id, unsigned long start, int numpages)
+{
+	void *addr = (void *)start, *end = addr + numpages * PAGE_SIZE;
+
+	while (addr < end) {
+		int err;
+
+		err = arm_smccc_share_unshare_page(func_id, virt_to_phys(addr));
+		if (err)
+			return err;
+
+		addr += PAGE_SIZE;
+	}
+
+	return 0;
+}
+
+int set_memory_encrypted(unsigned long addr, int numpages)
+{
+	if (!memshare_granule_sz || WARN_ON(!PAGE_ALIGNED(addr)))
+		return 0;
+
+	return set_memory_xcrypted(ARM_SMCCC_VENDOR_HYP_KVM_MEM_UNSHARE_FUNC_ID,
+				   addr, numpages);
+}
+
+int set_memory_decrypted(unsigned long addr, int numpages)
+{
+	if (!memshare_granule_sz || WARN_ON(!PAGE_ALIGNED(addr)))
+		return 0;
+
+	return set_memory_xcrypted(ARM_SMCCC_VENDOR_HYP_KVM_MEM_SHARE_FUNC_ID,
+				   addr, numpages);
+}
diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
index 6680689..39d352e 100644
--- a/arch/arm64/mm/mmu.c
+++ b/arch/arm64/mm/mmu.c
@@ -97,7 +97,8 @@
 	phys_addr_t phys;
 	void *ptr;
 
-	phys = memblock_phys_alloc(PAGE_SIZE, PAGE_SIZE);
+	phys = memblock_phys_alloc_range(PAGE_SIZE, PAGE_SIZE, 0,
+					 MEMBLOCK_ALLOC_NOLEAKTRACE);
 	if (!phys)
 		panic("Failed to allocate page table page\n");
 
@@ -1331,6 +1332,21 @@
 	}
 }
 
+pte_t *__get_fixmap_pte(enum fixed_addresses idx)
+{
+	unsigned long addr = __fix_to_virt(idx);
+	pte_t *ptep;
+
+	BUG_ON(idx <= FIX_HOLE || idx >= __end_of_fixed_addresses);
+
+	ptep = fixmap_pte(addr);
+
+	if (!pte_valid(*ptep))
+		return NULL;
+
+	return ptep;
+}
+
 void *__init fixmap_remap_fdt(phys_addr_t dt_phys, int *size, pgprot_t prot)
 {
 	const u64 dt_virt_base = __fix_to_virt(FIX_FDT);
diff --git a/arch/arm64/mm/mteswap.c b/arch/arm64/mm/mteswap.c
index fd6cabc..b4f18db 100644
--- a/arch/arm64/mm/mteswap.c
+++ b/arch/arm64/mm/mteswap.c
@@ -12,7 +12,7 @@
 void *mte_allocate_tag_storage(void)
 {
 	/* tags granule is 16 bytes, 2 tags stored per byte */
-	return kmalloc(PAGE_SIZE / 16 / 2, GFP_KERNEL);
+	return kmalloc(MTE_PAGE_TAG_STORAGE, GFP_KERNEL);
 }
 
 void mte_free_tag_storage(char *storage)
diff --git a/arch/arm64/mm/pageattr.c b/arch/arm64/mm/pageattr.c
index a3bacd7..64e985e 100644
--- a/arch/arm64/mm/pageattr.c
+++ b/arch/arm64/mm/pageattr.c
@@ -85,7 +85,7 @@
 	 */
 	area = find_vm_area((void *)addr);
 	if (!area ||
-	    end > (unsigned long)area->addr + area->size ||
+	    end > (unsigned long)kasan_reset_tag(area->addr) + area->size ||
 	    !(area->flags & VM_ALLOC))
 		return -EINVAL;
 
diff --git a/arch/arm64/mm/proc.S b/arch/arm64/mm/proc.S
index 1a9684b..b6291b8 100644
--- a/arch/arm64/mm/proc.S
+++ b/arch/arm64/mm/proc.S
@@ -66,7 +66,8 @@
 	 MAIR_ATTRIDX(MAIR_ATTR_DEVICE_nGnRE, MT_DEVICE_nGnRE) |	\
 	 MAIR_ATTRIDX(MAIR_ATTR_NORMAL_NC, MT_NORMAL_NC) |		\
 	 MAIR_ATTRIDX(MAIR_ATTR_NORMAL, MT_NORMAL) |			\
-	 MAIR_ATTRIDX(MAIR_ATTR_NORMAL, MT_NORMAL_TAGGED))
+	 MAIR_ATTRIDX(MAIR_ATTR_NORMAL, MT_NORMAL_TAGGED) |		\
+	 MAIR_ATTRIDX(MAIR_ATTR_NORMAL_iNC_oWB, MT_NORMAL_iNC_oWB))
 
 #ifdef CONFIG_CPU_PM
 /**
diff --git a/arch/arm64/net/bpf_jit_comp.c b/arch/arm64/net/bpf_jit_comp.c
index 4895b4d..8efe6e7 100644
--- a/arch/arm64/net/bpf_jit_comp.c
+++ b/arch/arm64/net/bpf_jit_comp.c
@@ -1155,7 +1155,8 @@
 
 void *bpf_jit_alloc_exec(unsigned long size)
 {
-	return vmalloc(size);
+	/* Memory is intended to be executable, reset the pointer tag. */
+	return kasan_reset_tag(vmalloc(size));
 }
 
 void bpf_jit_free_exec(void *addr)
diff --git a/arch/arm64/tools/cpucaps b/arch/arm64/tools/cpucaps
index fcaeec5..7119b55 100644
--- a/arch/arm64/tools/cpucaps
+++ b/arch/arm64/tools/cpucaps
@@ -1,6 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 #
-# Internal CPU capabilities constants, keep this list sorted
+# Internal CPU capabilities constants
 
 BTI
 # Unreliable: use system_supports_32bit_el0() instead.
@@ -26,7 +26,8 @@
 HAS_LDAPR
 HAS_LSE_ATOMICS
 HAS_NO_FPSIMD
-HAS_NO_HW_PREFETCH
+# HAS_NO_HW_PREFETCH
+WORKAROUND_2457168
 HAS_PAN
 HAS_RAS_EXTN
 HAS_RNG
@@ -39,6 +40,7 @@
 KVM_PROTECTED_MODE
 MISMATCHED_CACHE_TYPE
 MTE
+MTE_ASYMM
 SPECTRE_V2
 SPECTRE_V3A
 SPECTRE_V4
@@ -53,17 +55,20 @@
 WORKAROUND_1418040
 WORKAROUND_1463225
 WORKAROUND_1508412
-WORKAROUND_1542419
-WORKAROUND_1742098
-WORKAROUND_2457168
+# WORKAROUND_1542419
+ANDROID_RESERVED_2
 WORKAROUND_TRBE_OVERWRITE_FILL_MODE
 WORKAROUND_TSB_FLUSH_FAILURE
 WORKAROUND_TRBE_WRITE_OUT_OF_RANGE
 WORKAROUND_CAVIUM_23154
-WORKAROUND_CAVIUM_27456
-WORKAROUND_CAVIUM_30115
-WORKAROUND_CAVIUM_TX2_219_PRFM
-WORKAROUND_CAVIUM_TX2_219_TVM
+# WORKAROUND_CAVIUM_27456
+ANDROID_RESERVED_3
+# WORKAROUND_CAVIUM_30115
+ANDROID_RESERVED_4
+# WORKAROUND_CAVIUM_TX2_219_PRFM
+ANDROID_RESERVED_5
+# WORKAROUND_CAVIUM_TX2_219_TVM
+ANDROID_RESERVED_6
 WORKAROUND_CLEAN_CACHE
 WORKAROUND_DEVICE_LOAD_ACQUIRE
 WORKAROUND_NVIDIA_CARMEL_CNP
diff --git a/arch/csky/include/asm/processor.h b/arch/csky/include/asm/processor.h
index 9e93302..2b2a5c9 100644
--- a/arch/csky/include/asm/processor.h
+++ b/arch/csky/include/asm/processor.h
@@ -5,9 +5,9 @@
 
 #include <linux/bitops.h>
 #include <asm/segment.h>
+#include <linux/cache.h>
 #include <asm/ptrace.h>
 #include <asm/current.h>
-#include <asm/cache.h>
 #include <abi/reg_ops.h>
 #include <abi/regdef.h>
 #include <abi/switch_context.h>
diff --git a/arch/h8300/boot/compressed/Makefile b/arch/h8300/boot/compressed/Makefile
index 5942793..6ab2fa5 100644
--- a/arch/h8300/boot/compressed/Makefile
+++ b/arch/h8300/boot/compressed/Makefile
@@ -30,9 +30,11 @@
 
 suffix-$(CONFIG_KERNEL_GZIP)    := gzip
 suffix-$(CONFIG_KERNEL_LZO)     := lzo
+compress-$(CONFIG_KERNEL_GZIP)  := gzip
+compress-$(CONFIG_KERNEL_LZO)   := lzo_with_size
 
 $(obj)/vmlinux.bin.$(suffix-y): $(obj)/vmlinux.bin FORCE
-	$(call if_changed,$(suffix-y))
+	$(call if_changed,$(compress-y))
 
 LDFLAGS_piggy.o := -r --format binary --oformat elf32-h8300-linux -T
 OBJCOPYFLAGS := -O binary
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index 89869af..a707233 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -8,6 +8,7 @@
 
 config IA64
 	bool
+	select ARCH_BINFMT_ELF_EXTRA_PHDRS
 	select ARCH_HAS_CPU_FINALIZE_INIT
 	select ARCH_HAS_DMA_MARK_CLEAN
 	select ARCH_HAS_STRNCPY_FROM_USER
diff --git a/arch/ia64/kernel/elfcore.c b/arch/ia64/kernel/elfcore.c
index 9468052..8895df1 100644
--- a/arch/ia64/kernel/elfcore.c
+++ b/arch/ia64/kernel/elfcore.c
@@ -7,7 +7,7 @@
 #include <asm/elf.h>
 
 
-Elf64_Half elf_core_extra_phdrs(void)
+Elf64_Half elf_core_extra_phdrs(struct coredump_params *cprm)
 {
 	return GATE_EHDR->e_phnum;
 }
@@ -60,7 +60,7 @@
 	return 1;
 }
 
-size_t elf_core_extra_data_size(void)
+size_t elf_core_extra_data_size(struct coredump_params *cprm)
 {
 	const struct elf_phdr *const gate_phdrs =
 		(const struct elf_phdr *) (GATE_ADDR + GATE_EHDR->e_phoff);
diff --git a/arch/m68k/kernel/signal.c b/arch/m68k/kernel/signal.c
index 6cc68f2..af90834 100644
--- a/arch/m68k/kernel/signal.c
+++ b/arch/m68k/kernel/signal.c
@@ -625,7 +625,6 @@
 	/* _sigfault._perf */
 	BUILD_BUG_ON(offsetof(siginfo_t, si_perf_data) != 0x10);
 	BUILD_BUG_ON(offsetof(siginfo_t, si_perf_type) != 0x14);
-	BUILD_BUG_ON(offsetof(siginfo_t, si_perf_flags) != 0x18);
 
 	/* _sigpoll */
 	BUILD_BUG_ON(offsetof(siginfo_t, si_band)   != 0x0c);
diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile
index 705b9e7..8cec6d7 100644
--- a/arch/mips/boot/compressed/Makefile
+++ b/arch/mips/boot/compressed/Makefile
@@ -80,12 +80,12 @@
 	$(call if_changed,objcopy)
 
 tool_$(CONFIG_KERNEL_GZIP)    = gzip
-tool_$(CONFIG_KERNEL_BZIP2)   = bzip2
-tool_$(CONFIG_KERNEL_LZ4)     = lz4
-tool_$(CONFIG_KERNEL_LZMA)    = lzma
-tool_$(CONFIG_KERNEL_LZO)     = lzo
-tool_$(CONFIG_KERNEL_XZ)      = xzkern
-tool_$(CONFIG_KERNEL_ZSTD)    = zstd22
+tool_$(CONFIG_KERNEL_BZIP2)   = bzip2_with_size
+tool_$(CONFIG_KERNEL_LZ4)     = lz4_with_size
+tool_$(CONFIG_KERNEL_LZMA)    = lzma_with_size
+tool_$(CONFIG_KERNEL_LZO)     = lzo_with_size
+tool_$(CONFIG_KERNEL_XZ)      = xzkern_with_size
+tool_$(CONFIG_KERNEL_ZSTD)    = zstd22_with_size
 
 targets += vmlinux.bin.z
 
diff --git a/arch/parisc/boot/compressed/Makefile b/arch/parisc/boot/compressed/Makefile
index 9fe5487..d2283f9f 100644
--- a/arch/parisc/boot/compressed/Makefile
+++ b/arch/parisc/boot/compressed/Makefile
@@ -73,15 +73,15 @@
 $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE
 	$(call if_changed,gzip)
 $(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,bzip2)
+	$(call if_changed,bzip2_with_size)
 $(obj)/vmlinux.bin.lz4: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,lz4)
+	$(call if_changed,lz4_with_size)
 $(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,lzma)
+	$(call if_changed,lzma_with_size)
 $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,lzo)
+	$(call if_changed,lzo_with_size)
 $(obj)/vmlinux.bin.xz: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,xzkern)
+	$(call if_changed,xzkern_with_size)
 
 LDFLAGS_piggy.o := -r --format binary --oformat $(LD_BFD) -T
 $(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix-y) FORCE
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 27222b7..2dea57e 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -151,6 +151,7 @@
 	select ARCH_STACKWALK
 	select ARCH_SUPPORTS_ATOMIC_RMW
 	select ARCH_SUPPORTS_DEBUG_PAGEALLOC	if PPC_BOOK3S || PPC_8xx || 40x
+	select ARCH_SUPPORTS_SPECULATIVE_PAGE_FAULT if PPC_BOOK3S_64
 	select ARCH_USE_BUILTIN_BSWAP
 	select ARCH_USE_CMPXCHG_LOCKREF		if PPC64
 	select ARCH_USE_MEMTEST
diff --git a/arch/powerpc/include/asm/paca.h b/arch/powerpc/include/asm/paca.h
index c5c9e25..af0ee2d 100644
--- a/arch/powerpc/include/asm/paca.h
+++ b/arch/powerpc/include/asm/paca.h
@@ -12,6 +12,7 @@
 
 #ifdef CONFIG_PPC64
 
+#include <linux/cache.h>
 #include <linux/string.h>
 #include <asm/types.h>
 #include <asm/lppaca.h>
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index 4a15172..fc98393 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -394,6 +394,10 @@
 	int is_write = page_fault_is_write(error_code);
 	vm_fault_t fault, major = 0;
 	bool kprobe_fault = kprobe_page_fault(regs, 11);
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	struct vm_area_struct pvma;
+	unsigned long seq;
+#endif
 
 	if (unlikely(debugger_fault_handler(regs) || kprobe_fault))
 		return 0;
@@ -450,6 +454,64 @@
 	if (is_exec)
 		flags |= FAULT_FLAG_INSTRUCTION;
 
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	/*
+	 * No need to try speculative faults for kernel or
+	 * single threaded user space.
+	 */
+	if (!(flags & FAULT_FLAG_USER) || atomic_read(&mm->mm_users) == 1)
+		goto no_spf;
+
+	count_vm_event(SPF_ATTEMPT);
+	seq = mmap_seq_read_start(mm);
+	if (seq & 1) {
+		count_vm_spf_event(SPF_ABORT_ODD);
+		goto spf_abort;
+	}
+	vma = get_vma(mm, address);
+	if (!vma) {
+		count_vm_spf_event(SPF_ABORT_UNMAPPED);
+		goto spf_abort;
+	}
+	if (!vma_can_speculate(vma, flags)) {
+		put_vma(vma);
+		count_vm_spf_event(SPF_ABORT_NO_SPECULATE);
+		goto spf_abort;
+	}
+	pvma = *vma;
+	if (!mmap_seq_read_check(mm, seq, SPF_ABORT_VMA_COPY)) {
+		put_vma(vma);
+		goto spf_abort;
+	}
+#ifdef CONFIG_PPC_MEM_KEYS
+	if (unlikely(access_pkey_error(is_write, is_exec,
+				       (error_code & DSISR_KEYFAULT), &pvma))) {
+		put_vma(vma);
+		count_vm_spf_event(SPF_ABORT_ACCESS_ERROR);
+		goto spf_abort;
+	}
+#endif /* CONFIG_PPC_MEM_KEYS */
+	if (unlikely(access_error(is_write, is_exec, &pvma))) {
+		put_vma(vma);
+		count_vm_spf_event(SPF_ABORT_ACCESS_ERROR);
+		goto spf_abort;
+	}
+	fault = do_handle_mm_fault(&pvma, address,
+			flags | FAULT_FLAG_SPECULATIVE, seq, regs);
+	put_vma(vma);
+	major |= fault & VM_FAULT_MAJOR;
+
+	if (fault_signal_pending(fault, regs))
+		return user_mode(regs) ? 0 : SIGBUS;
+	if (!(fault & VM_FAULT_RETRY))
+		goto done;
+
+spf_abort:
+	count_vm_event(SPF_ABORT);
+no_spf:
+
+#endif	/* CONFIG_SPECULATIVE_PAGE_FAULT */
+
 	/* When running in the kernel we expect faults to occur only to
 	 * addresses in user space.  All other faults represent errors in the
 	 * kernel and should generate an OOPS.  Unfortunately, in the case of an
@@ -523,6 +585,9 @@
 	}
 
 	mmap_read_unlock(current->mm);
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+done:
+#endif
 
 	if (unlikely(fault & VM_FAULT_ERROR))
 		return mm_fault_error(regs, address, fault);
diff --git a/arch/s390/boot/compressed/Makefile b/arch/s390/boot/compressed/Makefile
index 3b86006..8ea880b 100644
--- a/arch/s390/boot/compressed/Makefile
+++ b/arch/s390/boot/compressed/Makefile
@@ -71,17 +71,17 @@
 $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE
 	$(call if_changed,gzip)
 $(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,bzip2)
+	$(call if_changed,bzip2_with_size)
 $(obj)/vmlinux.bin.lz4: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,lz4)
+	$(call if_changed,lz4_with_size)
 $(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,lzma)
+	$(call if_changed,lzma_with_size)
 $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,lzo)
+	$(call if_changed,lzo_with_size)
 $(obj)/vmlinux.bin.xz: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,xzkern)
+	$(call if_changed,xzkern_with_size)
 $(obj)/vmlinux.bin.zst: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,zstd22)
+	$(call if_changed,zstd22_with_size)
 
 OBJCOPYFLAGS_piggy.o := -I binary -O elf64-s390 -B s390:64-bit --rename-section .data=.vmlinux.bin.compressed
 $(obj)/piggy.o: $(obj)/vmlinux.bin$(suffix-y) FORCE
diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c
index b032e55..a7aefc2 100644
--- a/arch/s390/kernel/module.c
+++ b/arch/s390/kernel/module.c
@@ -45,7 +45,7 @@
 	p = __vmalloc_node_range(size, MODULE_ALIGN, MODULES_VADDR, MODULES_END,
 				 gfp_mask, PAGE_KERNEL_EXEC, VM_DEFER_KMEMLEAK, NUMA_NO_NODE,
 				 __builtin_return_address(0));
-	if (p && (kasan_module_alloc(p, size, gfp_mask) < 0)) {
+	if (p && (kasan_alloc_module_shadow(p, size, gfp_mask) < 0)) {
 		vfree(p);
 		return NULL;
 	}
diff --git a/arch/sh/boot/compressed/Makefile b/arch/sh/boot/compressed/Makefile
index 589d2d8..0525d8a 100644
--- a/arch/sh/boot/compressed/Makefile
+++ b/arch/sh/boot/compressed/Makefile
@@ -58,13 +58,13 @@
 $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE
 	$(call if_changed,gzip)
 $(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,bzip2)
+	$(call if_changed,bzip2_with_size)
 $(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,lzma)
+	$(call if_changed,lzma_with_size)
 $(obj)/vmlinux.bin.xz: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,xzkern)
+	$(call if_changed,xzkern_with_size)
 $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,lzo)
+	$(call if_changed,lzo_with_size)
 
 OBJCOPYFLAGS += -R .empty_zero_page
 
diff --git a/arch/sparc/kernel/signal32.c b/arch/sparc/kernel/signal32.c
index 90ff7ff..6cc124a 100644
--- a/arch/sparc/kernel/signal32.c
+++ b/arch/sparc/kernel/signal32.c
@@ -780,6 +780,5 @@
 static_assert(offsetof(compat_siginfo_t, si_pkey)	== 0x14);
 static_assert(offsetof(compat_siginfo_t, si_perf_data)	== 0x10);
 static_assert(offsetof(compat_siginfo_t, si_perf_type)	== 0x14);
-static_assert(offsetof(compat_siginfo_t, si_perf_flags)	== 0x18);
 static_assert(offsetof(compat_siginfo_t, si_band)	== 0x0c);
 static_assert(offsetof(compat_siginfo_t, si_fd)		== 0x10);
diff --git a/arch/sparc/kernel/signal_64.c b/arch/sparc/kernel/signal_64.c
index 6eeb7669..2a78d2a 100644
--- a/arch/sparc/kernel/signal_64.c
+++ b/arch/sparc/kernel/signal_64.c
@@ -590,6 +590,5 @@
 static_assert(offsetof(siginfo_t, si_pkey)	== 0x20);
 static_assert(offsetof(siginfo_t, si_perf_data)	== 0x18);
 static_assert(offsetof(siginfo_t, si_perf_type)	== 0x20);
-static_assert(offsetof(siginfo_t, si_perf_flags) == 0x24);
 static_assert(offsetof(siginfo_t, si_band)	== 0x10);
 static_assert(offsetof(siginfo_t, si_fd)	== 0x14);
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index cfb1edd..55b128f 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -34,6 +34,7 @@
 	select SWIOTLB
 	select ARCH_HAS_ELFCORE_COMPAT
 	select ZONE_DMA32
+	select ARCH_SUPPORTS_SPECULATIVE_PAGE_FAULT
 
 config FORCE_DYNAMIC_FTRACE
 	def_bool y
@@ -85,6 +86,7 @@
 	select ARCH_HAS_PMEM_API		if X86_64
 	select ARCH_HAS_PTE_DEVMAP		if X86_64
 	select ARCH_HAS_PTE_SPECIAL
+	select ARCH_HAS_NONLEAF_PMD_YOUNG	if PGTABLE_LEVELS > 2
 	select ARCH_HAS_UACCESS_FLUSHCACHE	if X86_64
 	select ARCH_HAS_COPY_MC			if X86_64
 	select ARCH_HAS_SET_MEMORY
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 9c09bbd..1ac3138 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -244,8 +244,11 @@
 
 PHONY += bzImage $(BOOT_TARGETS)
 
+# Don't compile Image in mixed build with "all" target
+ifndef KBUILD_MIXED_TREE
 # Default kernel to build
 all: bzImage
+endif
 
 # KBUILD_IMAGE specify target image being built
 KBUILD_IMAGE := $(boot)/bzImage
diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
index 15c5ae6..c66ea96 100644
--- a/arch/x86/boot/compressed/Makefile
+++ b/arch/x86/boot/compressed/Makefile
@@ -130,17 +130,17 @@
 $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE
 	$(call if_changed,gzip)
 $(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,bzip2)
+	$(call if_changed,bzip2_with_size)
 $(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,lzma)
+	$(call if_changed,lzma_with_size)
 $(obj)/vmlinux.bin.xz: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,xzkern)
+	$(call if_changed,xzkern_with_size)
 $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,lzo)
+	$(call if_changed,lzo_with_size)
 $(obj)/vmlinux.bin.lz4: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,lz4)
+	$(call if_changed,lz4_with_size)
 $(obj)/vmlinux.bin.zst: $(vmlinux.bin.all-y) FORCE
-	$(call if_changed,zstd22)
+	$(call if_changed,zstd22_with_size)
 
 suffix-$(CONFIG_KERNEL_GZIP)	:= gz
 suffix-$(CONFIG_KERNEL_BZIP2)	:= bz2
diff --git a/arch/x86/configs/gki_defconfig b/arch/x86/configs/gki_defconfig
new file mode 100644
index 0000000..7508b19
--- /dev/null
+++ b/arch/x86/configs/gki_defconfig
@@ -0,0 +1,653 @@
+CONFIG_UAPI_HEADER_TEST=y
+CONFIG_KERNEL_LZ4=y
+# CONFIG_USELIB is not set
+CONFIG_AUDIT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_BPF_JIT=y
+CONFIG_BPF_JIT_ALWAYS_ON=y
+CONFIG_PREEMPT=y
+CONFIG_IRQ_TIME_ACCOUNTING=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_PSI=y
+CONFIG_RCU_EXPERT=y
+CONFIG_RCU_FAST_NO_HZ=y
+CONFIG_RCU_BOOST=y
+CONFIG_RCU_NOCB_CPU=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_IKHEADERS=y
+CONFIG_UCLAMP_TASK=y
+CONFIG_UCLAMP_BUCKETS_COUNT=20
+CONFIG_CGROUPS=y
+CONFIG_MEMCG=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_UCLAMP_TASK_GROUP=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CPUSETS=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_BPF=y
+CONFIG_NAMESPACES=y
+# CONFIG_TIME_NS is not set
+# CONFIG_PID_NS is not set
+CONFIG_RELAY=y
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZMA is not set
+# CONFIG_RD_XZ is not set
+# CONFIG_RD_LZO is not set
+CONFIG_BOOT_CONFIG=y
+# CONFIG_UID16 is not set
+# CONFIG_SYSFS_SYSCALL is not set
+# CONFIG_FHANDLE is not set
+# CONFIG_PCSPKR_PLATFORM is not set
+CONFIG_KALLSYMS_ALL=y
+CONFIG_USERFAULTFD=y
+# CONFIG_RSEQ is not set
+CONFIG_EMBEDDED=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB_MERGE_DEFAULT is not set
+CONFIG_SLAB_FREELIST_RANDOM=y
+CONFIG_SLAB_FREELIST_HARDENED=y
+CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
+CONFIG_PROFILING=y
+CONFIG_SMP=y
+CONFIG_X86_X2APIC=y
+CONFIG_HYPERVISOR_GUEST=y
+CONFIG_PARAVIRT=y
+CONFIG_PARAVIRT_TIME_ACCOUNTING=y
+CONFIG_NR_CPUS=32
+# CONFIG_X86_MCE is not set
+# CONFIG_MICROCODE is not set
+# CONFIG_X86_5LEVEL is not set
+# CONFIG_MTRR_SANITIZER is not set
+CONFIG_EFI=y
+CONFIG_CMDLINE_BOOL=y
+CONFIG_CMDLINE="stack_depot_disable=on cgroup_disable=pressure"
+CONFIG_HIBERNATION=y
+CONFIG_PM_WAKELOCKS=y
+CONFIG_PM_WAKELOCKS_LIMIT=0
+# CONFIG_PM_WAKELOCKS_GC is not set
+# CONFIG_ACPI_AC is not set
+# CONFIG_ACPI_BATTERY is not set
+# CONFIG_ACPI_FAN is not set
+# CONFIG_ACPI_THERMAL is not set
+# CONFIG_X86_PM_TIMER is not set
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_TIMES=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_IA32_EMULATION=y
+CONFIG_KVM=y
+CONFIG_KVM_INTEL=y
+CONFIG_KVM_AMD=y
+CONFIG_KPROBES=y
+CONFIG_JUMP_LABEL=y
+CONFIG_LTO_CLANG_FULL=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SCMVERSION=y
+CONFIG_MODULE_SIG=y
+CONFIG_MODULE_SIG_PROTECT=y
+CONFIG_BLK_CGROUP_IOCOST=y
+CONFIG_BLK_CGROUP_IOPRIO=y
+CONFIG_BLK_INLINE_ENCRYPTION=y
+CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y
+CONFIG_IOSCHED_BFQ=y
+CONFIG_BFQ_GROUP_IOSCHED=y
+CONFIG_GKI_HACKS_TO_FIX=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_BINFMT_MISC=y
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
+CONFIG_CLEANCACHE=y
+CONFIG_CMA=y
+CONFIG_CMA_DEBUGFS=y
+CONFIG_CMA_AREAS=16
+# CONFIG_ZONE_DMA is not set
+CONFIG_ANON_VMA_NAME=y
+CONFIG_LRU_GEN=y
+CONFIG_DAMON=y
+CONFIG_DAMON_PADDR=y
+CONFIG_DAMON_RECLAIM=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM_USER=y
+CONFIG_XFRM_INTERFACE=y
+CONFIG_XFRM_MIGRATE=y
+CONFIG_XFRM_STATISTICS=y
+CONFIG_NET_KEY=y
+CONFIG_XDP_SOCKETS=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_NET_IPIP=y
+CONFIG_NET_IPGRE_DEMUX=y
+CONFIG_NET_IPGRE=y
+CONFIG_SYN_COOKIES=y
+CONFIG_NET_IPVTI=y
+CONFIG_INET_ESP=y
+CONFIG_INET_UDP_DIAG=y
+CONFIG_INET_DIAG_DESTROY=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_ESP=y
+CONFIG_INET6_IPCOMP=y
+CONFIG_IPV6_MIP6=y
+CONFIG_IPV6_VTI=y
+CONFIG_IPV6_GRE=y
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_NETFILTER=y
+CONFIG_NF_CONNTRACK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_AMANDA=y
+CONFIG_NF_CONNTRACK_FTP=y
+CONFIG_NF_CONNTRACK_H323=y
+CONFIG_NF_CONNTRACK_IRC=y
+CONFIG_NF_CONNTRACK_NETBIOS_NS=y
+CONFIG_NF_CONNTRACK_PPTP=y
+CONFIG_NF_CONNTRACK_SANE=y
+CONFIG_NF_CONNTRACK_TFTP=y
+CONFIG_NF_CT_NETLINK=y
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=y
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
+CONFIG_NETFILTER_XT_TARGET_DSCP=y
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y
+CONFIG_NETFILTER_XT_TARGET_MARK=y
+CONFIG_NETFILTER_XT_TARGET_NFLOG=y
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=y
+CONFIG_NETFILTER_XT_TARGET_TEE=y
+CONFIG_NETFILTER_XT_TARGET_TPROXY=y
+CONFIG_NETFILTER_XT_TARGET_TRACE=y
+CONFIG_NETFILTER_XT_TARGET_SECMARK=y
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
+CONFIG_NETFILTER_XT_MATCH_BPF=y
+CONFIG_NETFILTER_XT_MATCH_COMMENT=y
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=y
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
+CONFIG_NETFILTER_XT_MATCH_DSCP=y
+CONFIG_NETFILTER_XT_MATCH_ESP=y
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y
+CONFIG_NETFILTER_XT_MATCH_HELPER=y
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=y
+CONFIG_NETFILTER_XT_MATCH_LENGTH=y
+CONFIG_NETFILTER_XT_MATCH_LIMIT=y
+CONFIG_NETFILTER_XT_MATCH_MAC=y
+CONFIG_NETFILTER_XT_MATCH_MARK=y
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y
+CONFIG_NETFILTER_XT_MATCH_OWNER=y
+CONFIG_NETFILTER_XT_MATCH_POLICY=y
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y
+CONFIG_NETFILTER_XT_MATCH_QUOTA=y
+CONFIG_NETFILTER_XT_MATCH_QUOTA2=y
+CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG=y
+CONFIG_NETFILTER_XT_MATCH_SOCKET=y
+CONFIG_NETFILTER_XT_MATCH_STATE=y
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=y
+CONFIG_NETFILTER_XT_MATCH_STRING=y
+CONFIG_NETFILTER_XT_MATCH_TIME=y
+CONFIG_NETFILTER_XT_MATCH_U32=y
+CONFIG_IP_NF_IPTABLES=y
+CONFIG_IP_NF_MATCH_ECN=y
+CONFIG_IP_NF_MATCH_TTL=y
+CONFIG_IP_NF_FILTER=y
+CONFIG_IP_NF_TARGET_REJECT=y
+CONFIG_IP_NF_NAT=y
+CONFIG_IP_NF_TARGET_MASQUERADE=y
+CONFIG_IP_NF_TARGET_NETMAP=y
+CONFIG_IP_NF_TARGET_REDIRECT=y
+CONFIG_IP_NF_MANGLE=y
+CONFIG_IP_NF_RAW=y
+CONFIG_IP_NF_SECURITY=y
+CONFIG_IP_NF_ARPTABLES=y
+CONFIG_IP_NF_ARPFILTER=y
+CONFIG_IP_NF_ARP_MANGLE=y
+CONFIG_IP6_NF_IPTABLES=y
+CONFIG_IP6_NF_MATCH_RPFILTER=y
+CONFIG_IP6_NF_FILTER=y
+CONFIG_IP6_NF_TARGET_REJECT=y
+CONFIG_IP6_NF_MANGLE=y
+CONFIG_IP6_NF_RAW=y
+CONFIG_TIPC=y
+CONFIG_L2TP=y
+CONFIG_BRIDGE=y
+CONFIG_VLAN_8021Q=y
+CONFIG_6LOWPAN=y
+CONFIG_IEEE802154=y
+CONFIG_IEEE802154_6LOWPAN=y
+CONFIG_MAC802154=y
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_HTB=y
+CONFIG_NET_SCH_PRIO=y
+CONFIG_NET_SCH_MULTIQ=y
+CONFIG_NET_SCH_SFQ=y
+CONFIG_NET_SCH_TBF=y
+CONFIG_NET_SCH_NETEM=y
+CONFIG_NET_SCH_CODEL=y
+CONFIG_NET_SCH_FQ_CODEL=y
+CONFIG_NET_SCH_FQ=y
+CONFIG_NET_SCH_INGRESS=y
+CONFIG_NET_CLS_BASIC=y
+CONFIG_NET_CLS_FW=y
+CONFIG_NET_CLS_U32=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_FLOW=y
+CONFIG_NET_CLS_BPF=y
+CONFIG_NET_CLS_MATCHALL=y
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_CMP=y
+CONFIG_NET_EMATCH_NBYTE=y
+CONFIG_NET_EMATCH_U32=y
+CONFIG_NET_EMATCH_META=y
+CONFIG_NET_EMATCH_TEXT=y
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=y
+CONFIG_NET_ACT_GACT=y
+CONFIG_NET_ACT_MIRRED=y
+CONFIG_NET_ACT_SKBEDIT=y
+CONFIG_NET_ACT_BPF=y
+CONFIG_VSOCKETS=y
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_CAN=y
+CONFIG_BT=y
+CONFIG_BT_RFCOMM=y
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_HIDP=y
+CONFIG_BT_HCIBTSDIO=y
+CONFIG_BT_HCIUART=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIUART_BCM=y
+CONFIG_BT_HCIUART_QCA=y
+CONFIG_RFKILL=y
+CONFIG_NFC=y
+CONFIG_PCI=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCIEAER=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_IOV=y
+CONFIG_PCIE_DW_PLAT_EP=y
+CONFIG_PCI_ENDPOINT=y
+CONFIG_FW_LOADER_USER_HELPER=y
+# CONFIG_FW_CACHE is not set
+CONFIG_GNSS=y
+CONFIG_OF=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=16
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_SRAM=y
+CONFIG_UID_SYS_STATS=y
+CONFIG_SCSI=y
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_SCSI_UFSHCD=y
+CONFIG_SCSI_UFSHCD_PCI=y
+CONFIG_SCSI_UFSHCD_PLATFORM=y
+CONFIG_SCSI_UFS_DWC_TC_PLATFORM=y
+CONFIG_SCSI_UFS_BSG=y
+CONFIG_SCSI_UFS_CRYPTO=y
+CONFIG_SCSI_UFS_HPB=y
+CONFIG_MD=y
+CONFIG_BLK_DEV_DM=y
+CONFIG_DM_CRYPT=y
+CONFIG_DM_DEFAULT_KEY=y
+CONFIG_DM_SNAPSHOT=y
+CONFIG_DM_INIT=y
+CONFIG_DM_UEVENT=y
+CONFIG_DM_VERITY=y
+CONFIG_DM_VERITY_FEC=y
+CONFIG_DM_BOW=y
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=y
+CONFIG_WIREGUARD=y
+CONFIG_IFB=y
+CONFIG_MACSEC=y
+CONFIG_TUN=y
+CONFIG_VETH=y
+CONFIG_PPP=y
+CONFIG_PPP_BSDCOMP=y
+CONFIG_PPP_DEFLATE=y
+CONFIG_PPP_MPPE=y
+CONFIG_PPTP=y
+CONFIG_PPPOL2TP=y
+CONFIG_USB_RTL8150=y
+CONFIG_USB_RTL8152=y
+CONFIG_USB_USBNET=y
+CONFIG_USB_NET_CDC_EEM=y
+# CONFIG_USB_NET_NET1080 is not set
+# CONFIG_USB_NET_CDC_SUBSET is not set
+# CONFIG_USB_NET_ZAURUS is not set
+CONFIG_USB_NET_AQC111=y
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
+# CONFIG_WLAN_VENDOR_ATH is not set
+# CONFIG_WLAN_VENDOR_ATMEL is not set
+# CONFIG_WLAN_VENDOR_BROADCOM is not set
+# CONFIG_WLAN_VENDOR_CISCO is not set
+# CONFIG_WLAN_VENDOR_INTEL is not set
+# CONFIG_WLAN_VENDOR_INTERSIL is not set
+# CONFIG_WLAN_VENDOR_MARVELL is not set
+# CONFIG_WLAN_VENDOR_MEDIATEK is not set
+# CONFIG_WLAN_VENDOR_RALINK is not set
+# CONFIG_WLAN_VENDOR_REALTEK is not set
+# CONFIG_WLAN_VENDOR_RSI is not set
+# CONFIG_WLAN_VENDOR_ST is not set
+# CONFIG_WLAN_VENDOR_TI is not set
+# CONFIG_WLAN_VENDOR_ZYDAS is not set
+# CONFIG_WLAN_VENDOR_QUANTENNA is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_KEYBOARD_GPIO=y
+# CONFIG_MOUSE_PS2 is not set
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_XPAD=y
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_UINPUT=y
+# CONFIG_VT is not set
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_8250=y
+# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=0
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_SAMSUNG=y
+CONFIG_SERIAL_SAMSUNG_CONSOLE=y
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_HW_RANDOM=y
+# CONFIG_HW_RANDOM_VIA is not set
+# CONFIG_DEVMEM is not set
+# CONFIG_DEVPORT is not set
+CONFIG_HPET=y
+# CONFIG_I2C_COMPAT is not set
+# CONFIG_I2C_HELPER_AUTO is not set
+CONFIG_I3C=y
+CONFIG_SPI=y
+CONFIG_SPI_MEM=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_GENERIC_PLATFORM=y
+# CONFIG_HWMON is not set
+CONFIG_THERMAL_NETLINK=y
+CONFIG_THERMAL_STATISTICS=y
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=100
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL_GOV_USER_SPACE=y
+CONFIG_CPU_THERMAL=y
+CONFIG_DEVFREQ_THERMAL=y
+CONFIG_THERMAL_EMULATION=y
+# CONFIG_X86_PKG_TEMP_THERMAL is not set
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+CONFIG_MFD_SYSCON=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_RC_CORE=y
+# CONFIG_RC_MAP is not set
+CONFIG_LIRC=y
+CONFIG_BPF_LIRC_MODE2=y
+CONFIG_RC_DECODERS=y
+CONFIG_RC_DEVICES=y
+CONFIG_MEDIA_CEC_RC=y
+# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set
+# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set
+# CONFIG_MEDIA_RADIO_SUPPORT is not set
+# CONFIG_MEDIA_SDR_SUPPORT is not set
+# CONFIG_MEDIA_TEST_SUPPORT is not set
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_USB_VIDEO_CLASS=y
+CONFIG_USB_GSPCA=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_DRM=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_HRTIMER=y
+# CONFIG_SND_SUPPORT_OLD_API is not set
+# CONFIG_SND_VERBOSE_PROCFS is not set
+# CONFIG_SND_DRIVERS is not set
+CONFIG_SND_USB_AUDIO=y
+CONFIG_SND_SOC=y
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_UHID=y
+CONFIG_HID_APPLE=y
+CONFIG_HID_PRODIKEYS=y
+CONFIG_HID_ELECOM=y
+CONFIG_HID_UCLOGIC=y
+CONFIG_HID_LOGITECH=y
+CONFIG_HID_LOGITECH_DJ=y
+CONFIG_HID_MAGICMOUSE=y
+CONFIG_HID_MICROSOFT=y
+CONFIG_HID_MULTITOUCH=y
+CONFIG_HID_NINTENDO=y
+CONFIG_HID_PICOLCD=y
+CONFIG_HID_PLANTRONICS=y
+CONFIG_HID_PLAYSTATION=y
+CONFIG_PLAYSTATION_FF=y
+CONFIG_HID_ROCCAT=y
+CONFIG_HID_SONY=y
+CONFIG_SONY_FF=y
+CONFIG_HID_STEAM=y
+CONFIG_HID_WACOM=y
+CONFIG_HID_WIIMOTE=y
+CONFIG_USB_HIDDEV=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+CONFIG_USB_ACM=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_UAS=y
+CONFIG_USB_DWC3=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_CONFIGFS=y
+CONFIG_USB_CONFIGFS_UEVENT=y
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_ACC=y
+CONFIG_USB_CONFIGFS_F_AUDIO_SRC=y
+CONFIG_USB_CONFIGFS_F_MIDI=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_TYPEC=y
+CONFIG_TYPEC_TCPM=y
+CONFIG_TYPEC_TCPCI=y
+CONFIG_TYPEC_UCSI=y
+CONFIG_MMC=y
+# CONFIG_PWRSEQ_EMMC is not set
+# CONFIG_PWRSEQ_SIMPLE is not set
+CONFIG_MMC_CRYPTO=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_LEDS_CLASS_FLASH=y
+CONFIG_LEDS_CLASS_MULTICOLOR=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_TRANSIENT=y
+CONFIG_EDAC=y
+CONFIG_RTC_CLASS=y
+# CONFIG_RTC_HCTOSYS is not set
+CONFIG_DMABUF_HEAPS=y
+CONFIG_DMABUF_SYSFS_STATS=y
+CONFIG_DMABUF_HEAPS_DEFERRED_FREE=y
+CONFIG_DMABUF_HEAPS_PAGE_POOL=y
+CONFIG_UIO=y
+# CONFIG_VIRTIO_MEM is not set
+CONFIG_VHOST_VSOCK=y
+CONFIG_STAGING=y
+CONFIG_ASHMEM=y
+CONFIG_DEBUG_KINFO=y
+CONFIG_REMOTEPROC=y
+CONFIG_REMOTEPROC_CDEV=y
+CONFIG_RPMSG_CHAR=y
+CONFIG_PM_DEVFREQ_EVENT=y
+CONFIG_IIO=y
+CONFIG_IIO_BUFFER=y
+CONFIG_IIO_TRIGGERED_BUFFER=y
+CONFIG_POWERCAP=y
+CONFIG_ANDROID=y
+CONFIG_ANDROID_BINDER_IPC=y
+CONFIG_ANDROID_BINDERFS=y
+CONFIG_ANDROID_VENDOR_HOOKS=y
+CONFIG_LIBNVDIMM=y
+# CONFIG_ND_BLK is not set
+CONFIG_INTERCONNECT=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_F2FS_FS=y
+CONFIG_F2FS_FS_SECURITY=y
+CONFIG_F2FS_FS_COMPRESSION=y
+CONFIG_F2FS_UNFAIR_RWSEM=y
+CONFIG_FS_ENCRYPTION=y
+CONFIG_FS_ENCRYPTION_INLINE_CRYPT=y
+CONFIG_FS_VERITY=y
+CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
+# CONFIG_DNOTIFY is not set
+CONFIG_QUOTA=y
+CONFIG_QFMT_V2=y
+CONFIG_FUSE_FS=y
+CONFIG_VIRTIO_FS=y
+CONFIG_FUSE_BPF=y
+CONFIG_OVERLAY_FS=y
+CONFIG_INCREMENTAL_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_EXFAT_FS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+# CONFIG_EFIVAR_FS is not set
+CONFIG_PSTORE=y
+CONFIG_PSTORE_CONSOLE=y
+CONFIG_PSTORE_PMSG=y
+CONFIG_PSTORE_RAM=y
+CONFIG_EROFS_FS=y
+CONFIG_EROFS_FS_PCPU_KTHREAD=y
+CONFIG_EROFS_FS_PCPU_KTHREAD_HIPRI=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=y
+CONFIG_NLS_CODEPAGE_775=y
+CONFIG_NLS_CODEPAGE_850=y
+CONFIG_NLS_CODEPAGE_852=y
+CONFIG_NLS_CODEPAGE_855=y
+CONFIG_NLS_CODEPAGE_857=y
+CONFIG_NLS_CODEPAGE_860=y
+CONFIG_NLS_CODEPAGE_861=y
+CONFIG_NLS_CODEPAGE_862=y
+CONFIG_NLS_CODEPAGE_863=y
+CONFIG_NLS_CODEPAGE_864=y
+CONFIG_NLS_CODEPAGE_865=y
+CONFIG_NLS_CODEPAGE_866=y
+CONFIG_NLS_CODEPAGE_869=y
+CONFIG_NLS_CODEPAGE_936=y
+CONFIG_NLS_CODEPAGE_950=y
+CONFIG_NLS_CODEPAGE_932=y
+CONFIG_NLS_CODEPAGE_949=y
+CONFIG_NLS_CODEPAGE_874=y
+CONFIG_NLS_ISO8859_8=y
+CONFIG_NLS_CODEPAGE_1250=y
+CONFIG_NLS_CODEPAGE_1251=y
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=y
+CONFIG_NLS_ISO8859_3=y
+CONFIG_NLS_ISO8859_4=y
+CONFIG_NLS_ISO8859_5=y
+CONFIG_NLS_ISO8859_6=y
+CONFIG_NLS_ISO8859_7=y
+CONFIG_NLS_ISO8859_9=y
+CONFIG_NLS_ISO8859_13=y
+CONFIG_NLS_ISO8859_14=y
+CONFIG_NLS_ISO8859_15=y
+CONFIG_NLS_KOI8_R=y
+CONFIG_NLS_KOI8_U=y
+CONFIG_NLS_MAC_ROMAN=y
+CONFIG_NLS_MAC_CELTIC=y
+CONFIG_NLS_MAC_CENTEURO=y
+CONFIG_NLS_MAC_CROATIAN=y
+CONFIG_NLS_MAC_CYRILLIC=y
+CONFIG_NLS_MAC_GAELIC=y
+CONFIG_NLS_MAC_GREEK=y
+CONFIG_NLS_MAC_ICELAND=y
+CONFIG_NLS_MAC_INUIT=y
+CONFIG_NLS_MAC_ROMANIAN=y
+CONFIG_NLS_MAC_TURKISH=y
+CONFIG_NLS_UTF8=y
+CONFIG_UNICODE=y
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_HARDENED_USERCOPY=y
+# CONFIG_HARDENED_USERCOPY_FALLBACK is not set
+CONFIG_STATIC_USERMODEHELPER=y
+CONFIG_STATIC_USERMODEHELPER_PATH=""
+CONFIG_SECURITY_SELINUX=y
+CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
+CONFIG_CRYPTO_CHACHA20POLY1305=y
+CONFIG_CRYPTO_ADIANTUM=y
+CONFIG_CRYPTO_XCBC=y
+CONFIG_CRYPTO_BLAKE2B=y
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA256_SSSE3=y
+CONFIG_CRYPTO_SHA512_SSSE3=y
+CONFIG_CRYPTO_AES_NI_INTEL=y
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_LZ4=y
+CONFIG_CRYPTO_ZSTD=y
+CONFIG_CRYPTO_ANSI_CPRNG=y
+CONFIG_CRC8=y
+CONFIG_XZ_DEC=y
+CONFIG_DMA_CMA=y
+CONFIG_STACK_HASH_ORDER=12
+CONFIG_PRINTK_TIME=y
+CONFIG_DYNAMIC_DEBUG_CORE=y
+CONFIG_DEBUG_INFO=y
+CONFIG_DEBUG_INFO_DWARF4=y
+CONFIG_DEBUG_INFO_BTF=y
+CONFIG_MODULE_ALLOW_BTF_MISMATCH=y
+CONFIG_HEADERS_INSTALL=y
+# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_UBSAN=y
+CONFIG_UBSAN_TRAP=y
+CONFIG_UBSAN_LOCAL_BOUNDS=y
+# CONFIG_UBSAN_SHIFT is not set
+# CONFIG_UBSAN_BOOL is not set
+# CONFIG_UBSAN_ENUM is not set
+CONFIG_PAGE_OWNER=y
+CONFIG_DEBUG_STACK_USAGE=y
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_KFENCE=y
+CONFIG_KFENCE_SAMPLE_INTERVAL=500
+CONFIG_KFENCE_NUM_OBJECTS=63
+CONFIG_KFENCE_STATIC_KEYS=y
+CONFIG_PANIC_ON_OOPS=y
+CONFIG_PANIC_TIMEOUT=-1
+CONFIG_SOFTLOCKUP_DETECTOR=y
+CONFIG_WQ_WATCHDOG=y
+CONFIG_SCHEDSTATS=y
+CONFIG_BUG_ON_DATA_CORRUPTION=y
+CONFIG_HIST_TRIGGERS=y
+CONFIG_UNWINDER_FRAME_POINTER=y
+CONFIG_FUNCTION_ERROR_INJECTION=y
diff --git a/arch/x86/configs/x86_64_gce.fragment b/arch/x86/configs/x86_64_gce.fragment
new file mode 100644
index 0000000..5a1f1b08
--- /dev/null
+++ b/arch/x86/configs/x86_64_gce.fragment
@@ -0,0 +1,2 @@
+# To boot Linux distributions like Debian
+CONFIG_DEVTMPFS=y
diff --git a/arch/x86/crypto/Makefile b/arch/x86/crypto/Makefile
index fce05e9..5e9ddbdb 100644
--- a/arch/x86/crypto/Makefile
+++ b/arch/x86/crypto/Makefile
@@ -67,6 +67,9 @@
 obj-$(CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL) += ghash-clmulni-intel.o
 ghash-clmulni-intel-y := ghash-clmulni-intel_asm.o ghash-clmulni-intel_glue.o
 
+obj-$(CONFIG_CRYPTO_POLYVAL_CLMUL_NI) += polyval-clmulni.o
+polyval-clmulni-y := polyval-clmulni_asm.o polyval-clmulni_glue.o
+
 obj-$(CONFIG_CRYPTO_CRC32C_INTEL) += crc32c-intel.o
 crc32c-intel-y := crc32c-intel_glue.o
 crc32c-intel-$(CONFIG_64BIT) += crc32c-pcl-intel-asm_64.o
diff --git a/arch/x86/crypto/aes_ctrby8_avx-x86_64.S b/arch/x86/crypto/aes_ctrby8_avx-x86_64.S
index c799838..4b36b45 100644
--- a/arch/x86/crypto/aes_ctrby8_avx-x86_64.S
+++ b/arch/x86/crypto/aes_ctrby8_avx-x86_64.S
@@ -66,6 +66,11 @@
 
 #define VMOVDQ		vmovdqu
 
+/*
+ * Note: the "x" prefix in these aliases means "this is an xmm register".  The
+ * alias prefixes have no relation to XCTR where the "X" prefix means "XOR
+ * counter".
+ */
 #define xdata0		%xmm0
 #define xdata1		%xmm1
 #define xdata2		%xmm2
@@ -74,8 +79,10 @@
 #define xdata5		%xmm5
 #define xdata6		%xmm6
 #define xdata7		%xmm7
-#define xcounter	%xmm8
-#define xbyteswap	%xmm9
+#define xcounter	%xmm8	// CTR mode only
+#define xiv		%xmm8	// XCTR mode only
+#define xbyteswap	%xmm9	// CTR mode only
+#define xtmp		%xmm9	// XCTR mode only
 #define xkey0		%xmm10
 #define xkey4		%xmm11
 #define xkey8		%xmm12
@@ -88,7 +95,7 @@
 #define p_keys		%rdx
 #define p_out		%rcx
 #define num_bytes	%r8
-
+#define counter		%r9	// XCTR mode only
 #define tmp		%r10
 #define	DDQ_DATA	0
 #define	XDATA		1
@@ -145,7 +152,7 @@
  * do_aes num_in_par load_keys key_len
  * This increments p_in, but not p_out
  */
-.macro do_aes b, k, key_len
+.macro do_aes b, k, key_len, xctr
 	.set by, \b
 	.set load_keys, \k
 	.set klen, \key_len
@@ -154,29 +161,48 @@
 		vmovdqa	0*16(p_keys), xkey0
 	.endif
 
-	vpshufb	xbyteswap, xcounter, xdata0
-
-	.set i, 1
-	.rept (by - 1)
-		club XDATA, i
-		vpaddq	(ddq_add_1 + 16 * (i - 1))(%rip), xcounter, var_xdata
-		vptest	ddq_low_msk(%rip), var_xdata
-		jnz 1f
-		vpaddq	ddq_high_add_1(%rip), var_xdata, var_xdata
-		vpaddq	ddq_high_add_1(%rip), xcounter, xcounter
-		1:
-		vpshufb	xbyteswap, var_xdata, var_xdata
-		.set i, (i +1)
-	.endr
+	.if \xctr
+		movq counter, xtmp
+		.set i, 0
+		.rept (by)
+			club XDATA, i
+			vpaddq	(ddq_add_1 + 16 * i)(%rip), xtmp, var_xdata
+			.set i, (i +1)
+		.endr
+		.set i, 0
+		.rept (by)
+			club	XDATA, i
+			vpxor	xiv, var_xdata, var_xdata
+			.set i, (i +1)
+		.endr
+	.else
+		vpshufb	xbyteswap, xcounter, xdata0
+		.set i, 1
+		.rept (by - 1)
+			club XDATA, i
+			vpaddq	(ddq_add_1 + 16 * (i - 1))(%rip), xcounter, var_xdata
+			vptest	ddq_low_msk(%rip), var_xdata
+			jnz 1f
+			vpaddq	ddq_high_add_1(%rip), var_xdata, var_xdata
+			vpaddq	ddq_high_add_1(%rip), xcounter, xcounter
+			1:
+			vpshufb	xbyteswap, var_xdata, var_xdata
+			.set i, (i +1)
+		.endr
+	.endif
 
 	vmovdqa	1*16(p_keys), xkeyA
 
 	vpxor	xkey0, xdata0, xdata0
-	vpaddq	(ddq_add_1 + 16 * (by - 1))(%rip), xcounter, xcounter
-	vptest	ddq_low_msk(%rip), xcounter
-	jnz	1f
-	vpaddq	ddq_high_add_1(%rip), xcounter, xcounter
-	1:
+	.if \xctr
+		add $by, counter
+	.else
+		vpaddq	(ddq_add_1 + 16 * (by - 1))(%rip), xcounter, xcounter
+		vptest	ddq_low_msk(%rip), xcounter
+		jnz	1f
+		vpaddq	ddq_high_add_1(%rip), xcounter, xcounter
+		1:
+	.endif
 
 	.set i, 1
 	.rept (by - 1)
@@ -414,94 +440,99 @@
 	.endr
 .endm
 
-.macro do_aes_load val, key_len
-	do_aes \val, 1, \key_len
+.macro do_aes_load val, key_len, xctr
+	do_aes \val, 1, \key_len, \xctr
 .endm
 
-.macro do_aes_noload val, key_len
-	do_aes \val, 0, \key_len
+.macro do_aes_noload val, key_len, xctr
+	do_aes \val, 0, \key_len, \xctr
 .endm
 
 /* main body of aes ctr load */
 
-.macro do_aes_ctrmain key_len
+.macro do_aes_ctrmain key_len, xctr
 	cmp	$16, num_bytes
-	jb	.Ldo_return2\key_len
+	jb	.Ldo_return2\xctr\key_len
 
-	vmovdqa	byteswap_const(%rip), xbyteswap
-	vmovdqu	(p_iv), xcounter
-	vpshufb	xbyteswap, xcounter, xcounter
+	.if \xctr
+		shr	$4, counter
+		vmovdqu	(p_iv), xiv
+	.else
+		vmovdqa	byteswap_const(%rip), xbyteswap
+		vmovdqu	(p_iv), xcounter
+		vpshufb	xbyteswap, xcounter, xcounter
+	.endif
 
 	mov	num_bytes, tmp
 	and	$(7*16), tmp
-	jz	.Lmult_of_8_blks\key_len
+	jz	.Lmult_of_8_blks\xctr\key_len
 
 	/* 1 <= tmp <= 7 */
 	cmp	$(4*16), tmp
-	jg	.Lgt4\key_len
-	je	.Leq4\key_len
+	jg	.Lgt4\xctr\key_len
+	je	.Leq4\xctr\key_len
 
-.Llt4\key_len:
+.Llt4\xctr\key_len:
 	cmp	$(2*16), tmp
-	jg	.Leq3\key_len
-	je	.Leq2\key_len
+	jg	.Leq3\xctr\key_len
+	je	.Leq2\xctr\key_len
 
-.Leq1\key_len:
-	do_aes_load	1, \key_len
+.Leq1\xctr\key_len:
+	do_aes_load	1, \key_len, \xctr
 	add	$(1*16), p_out
 	and	$(~7*16), num_bytes
-	jz	.Ldo_return2\key_len
-	jmp	.Lmain_loop2\key_len
+	jz	.Ldo_return2\xctr\key_len
+	jmp	.Lmain_loop2\xctr\key_len
 
-.Leq2\key_len:
-	do_aes_load	2, \key_len
+.Leq2\xctr\key_len:
+	do_aes_load	2, \key_len, \xctr
 	add	$(2*16), p_out
 	and	$(~7*16), num_bytes
-	jz	.Ldo_return2\key_len
-	jmp	.Lmain_loop2\key_len
+	jz	.Ldo_return2\xctr\key_len
+	jmp	.Lmain_loop2\xctr\key_len
 
 
-.Leq3\key_len:
-	do_aes_load	3, \key_len
+.Leq3\xctr\key_len:
+	do_aes_load	3, \key_len, \xctr
 	add	$(3*16), p_out
 	and	$(~7*16), num_bytes
-	jz	.Ldo_return2\key_len
-	jmp	.Lmain_loop2\key_len
+	jz	.Ldo_return2\xctr\key_len
+	jmp	.Lmain_loop2\xctr\key_len
 
-.Leq4\key_len:
-	do_aes_load	4, \key_len
+.Leq4\xctr\key_len:
+	do_aes_load	4, \key_len, \xctr
 	add	$(4*16), p_out
 	and	$(~7*16), num_bytes
-	jz	.Ldo_return2\key_len
-	jmp	.Lmain_loop2\key_len
+	jz	.Ldo_return2\xctr\key_len
+	jmp	.Lmain_loop2\xctr\key_len
 
-.Lgt4\key_len:
+.Lgt4\xctr\key_len:
 	cmp	$(6*16), tmp
-	jg	.Leq7\key_len
-	je	.Leq6\key_len
+	jg	.Leq7\xctr\key_len
+	je	.Leq6\xctr\key_len
 
-.Leq5\key_len:
-	do_aes_load	5, \key_len
+.Leq5\xctr\key_len:
+	do_aes_load	5, \key_len, \xctr
 	add	$(5*16), p_out
 	and	$(~7*16), num_bytes
-	jz	.Ldo_return2\key_len
-	jmp	.Lmain_loop2\key_len
+	jz	.Ldo_return2\xctr\key_len
+	jmp	.Lmain_loop2\xctr\key_len
 
-.Leq6\key_len:
-	do_aes_load	6, \key_len
+.Leq6\xctr\key_len:
+	do_aes_load	6, \key_len, \xctr
 	add	$(6*16), p_out
 	and	$(~7*16), num_bytes
-	jz	.Ldo_return2\key_len
-	jmp	.Lmain_loop2\key_len
+	jz	.Ldo_return2\xctr\key_len
+	jmp	.Lmain_loop2\xctr\key_len
 
-.Leq7\key_len:
-	do_aes_load	7, \key_len
+.Leq7\xctr\key_len:
+	do_aes_load	7, \key_len, \xctr
 	add	$(7*16), p_out
 	and	$(~7*16), num_bytes
-	jz	.Ldo_return2\key_len
-	jmp	.Lmain_loop2\key_len
+	jz	.Ldo_return2\xctr\key_len
+	jmp	.Lmain_loop2\xctr\key_len
 
-.Lmult_of_8_blks\key_len:
+.Lmult_of_8_blks\xctr\key_len:
 	.if (\key_len != KEY_128)
 		vmovdqa	0*16(p_keys), xkey0
 		vmovdqa	4*16(p_keys), xkey4
@@ -514,17 +545,19 @@
 		vmovdqa	9*16(p_keys), xkey12
 	.endif
 .align 16
-.Lmain_loop2\key_len:
+.Lmain_loop2\xctr\key_len:
 	/* num_bytes is a multiple of 8 and >0 */
-	do_aes_noload	8, \key_len
+	do_aes_noload	8, \key_len, \xctr
 	add	$(8*16), p_out
 	sub	$(8*16), num_bytes
-	jne	.Lmain_loop2\key_len
+	jne	.Lmain_loop2\xctr\key_len
 
-.Ldo_return2\key_len:
-	/* return updated IV */
-	vpshufb	xbyteswap, xcounter, xcounter
-	vmovdqu	xcounter, (p_iv)
+.Ldo_return2\xctr\key_len:
+	.if !\xctr
+		/* return updated IV */
+		vpshufb	xbyteswap, xcounter, xcounter
+		vmovdqu	xcounter, (p_iv)
+	.endif
 	RET
 .endm
 
@@ -537,7 +570,7 @@
  */
 SYM_FUNC_START(aes_ctr_enc_128_avx_by8)
 	/* call the aes main loop */
-	do_aes_ctrmain KEY_128
+	do_aes_ctrmain KEY_128 0
 
 SYM_FUNC_END(aes_ctr_enc_128_avx_by8)
 
@@ -550,7 +583,7 @@
  */
 SYM_FUNC_START(aes_ctr_enc_192_avx_by8)
 	/* call the aes main loop */
-	do_aes_ctrmain KEY_192
+	do_aes_ctrmain KEY_192 0
 
 SYM_FUNC_END(aes_ctr_enc_192_avx_by8)
 
@@ -563,6 +596,45 @@
  */
 SYM_FUNC_START(aes_ctr_enc_256_avx_by8)
 	/* call the aes main loop */
-	do_aes_ctrmain KEY_256
+	do_aes_ctrmain KEY_256 0
 
 SYM_FUNC_END(aes_ctr_enc_256_avx_by8)
+
+/*
+ * routine to do AES128 XCTR enc/decrypt "by8"
+ * XMM registers are clobbered.
+ * Saving/restoring must be done at a higher level
+ * aes_xctr_enc_128_avx_by8(const u8 *in, const u8 *iv, const void *keys,
+ * 	u8* out, unsigned int num_bytes, unsigned int byte_ctr)
+ */
+SYM_FUNC_START(aes_xctr_enc_128_avx_by8)
+	/* call the aes main loop */
+	do_aes_ctrmain KEY_128 1
+
+SYM_FUNC_END(aes_xctr_enc_128_avx_by8)
+
+/*
+ * routine to do AES192 XCTR enc/decrypt "by8"
+ * XMM registers are clobbered.
+ * Saving/restoring must be done at a higher level
+ * aes_xctr_enc_192_avx_by8(const u8 *in, const u8 *iv, const void *keys,
+ * 	u8* out, unsigned int num_bytes, unsigned int byte_ctr)
+ */
+SYM_FUNC_START(aes_xctr_enc_192_avx_by8)
+	/* call the aes main loop */
+	do_aes_ctrmain KEY_192 1
+
+SYM_FUNC_END(aes_xctr_enc_192_avx_by8)
+
+/*
+ * routine to do AES256 XCTR enc/decrypt "by8"
+ * XMM registers are clobbered.
+ * Saving/restoring must be done at a higher level
+ * aes_xctr_enc_256_avx_by8(const u8 *in, const u8 *iv, const void *keys,
+ * 	u8* out, unsigned int num_bytes, unsigned int byte_ctr)
+ */
+SYM_FUNC_START(aes_xctr_enc_256_avx_by8)
+	/* call the aes main loop */
+	do_aes_ctrmain KEY_256 1
+
+SYM_FUNC_END(aes_xctr_enc_256_avx_by8)
diff --git a/arch/x86/crypto/aesni-intel_glue.c b/arch/x86/crypto/aesni-intel_glue.c
index 41901ba..a5b0cb3 100644
--- a/arch/x86/crypto/aesni-intel_glue.c
+++ b/arch/x86/crypto/aesni-intel_glue.c
@@ -135,6 +135,20 @@
 		void *keys, u8 *out, unsigned int num_bytes);
 asmlinkage void aes_ctr_enc_256_avx_by8(const u8 *in, u8 *iv,
 		void *keys, u8 *out, unsigned int num_bytes);
+
+
+asmlinkage void aes_xctr_enc_128_avx_by8(const u8 *in, const u8 *iv,
+	const void *keys, u8 *out, unsigned int num_bytes,
+	unsigned int byte_ctr);
+
+asmlinkage void aes_xctr_enc_192_avx_by8(const u8 *in, const u8 *iv,
+	const void *keys, u8 *out, unsigned int num_bytes,
+	unsigned int byte_ctr);
+
+asmlinkage void aes_xctr_enc_256_avx_by8(const u8 *in, const u8 *iv,
+	const void *keys, u8 *out, unsigned int num_bytes,
+	unsigned int byte_ctr);
+
 /*
  * asmlinkage void aesni_gcm_init_avx_gen2()
  * gcm_data *my_ctx_data, context data
@@ -527,6 +541,59 @@
 	return err;
 }
 
+static void aesni_xctr_enc_avx_tfm(struct crypto_aes_ctx *ctx, u8 *out,
+				   const u8 *in, unsigned int len, u8 *iv,
+				   unsigned int byte_ctr)
+{
+	if (ctx->key_length == AES_KEYSIZE_128)
+		aes_xctr_enc_128_avx_by8(in, iv, (void *)ctx, out, len,
+					 byte_ctr);
+	else if (ctx->key_length == AES_KEYSIZE_192)
+		aes_xctr_enc_192_avx_by8(in, iv, (void *)ctx, out, len,
+					 byte_ctr);
+	else
+		aes_xctr_enc_256_avx_by8(in, iv, (void *)ctx, out, len,
+					 byte_ctr);
+}
+
+static int xctr_crypt(struct skcipher_request *req)
+{
+	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
+	struct crypto_aes_ctx *ctx = aes_ctx(crypto_skcipher_ctx(tfm));
+	u8 keystream[AES_BLOCK_SIZE];
+	struct skcipher_walk walk;
+	unsigned int nbytes;
+	unsigned int byte_ctr = 0;
+	int err;
+	__le32 block[AES_BLOCK_SIZE / sizeof(__le32)];
+
+	err = skcipher_walk_virt(&walk, req, false);
+
+	while ((nbytes = walk.nbytes) > 0) {
+		kernel_fpu_begin();
+		if (nbytes & AES_BLOCK_MASK)
+			aesni_xctr_enc_avx_tfm(ctx, walk.dst.virt.addr,
+				walk.src.virt.addr, nbytes & AES_BLOCK_MASK,
+				walk.iv, byte_ctr);
+		nbytes &= ~AES_BLOCK_MASK;
+		byte_ctr += walk.nbytes - nbytes;
+
+		if (walk.nbytes == walk.total && nbytes > 0) {
+			memcpy(block, walk.iv, AES_BLOCK_SIZE);
+			block[0] ^= cpu_to_le32(1 + byte_ctr / AES_BLOCK_SIZE);
+			aesni_enc(ctx, keystream, (u8 *)block);
+			crypto_xor_cpy(walk.dst.virt.addr + walk.nbytes -
+				       nbytes, walk.src.virt.addr + walk.nbytes
+				       - nbytes, keystream, nbytes);
+			byte_ctr += nbytes;
+			nbytes = 0;
+		}
+		kernel_fpu_end();
+		err = skcipher_walk_done(&walk, nbytes);
+	}
+	return err;
+}
+
 static int
 rfc4106_set_hash_subkey(u8 *hash_subkey, const u8 *key, unsigned int key_len)
 {
@@ -1051,6 +1118,33 @@
 struct simd_skcipher_alg *aesni_simd_skciphers[ARRAY_SIZE(aesni_skciphers)];
 
 #ifdef CONFIG_X86_64
+/*
+ * XCTR does not have a non-AVX implementation, so it must be enabled
+ * conditionally.
+ */
+static struct skcipher_alg aesni_xctr = {
+	.base = {
+		.cra_name		= "__xctr(aes)",
+		.cra_driver_name	= "__xctr-aes-aesni",
+		.cra_priority		= 400,
+		.cra_flags		= CRYPTO_ALG_INTERNAL,
+		.cra_blocksize		= 1,
+		.cra_ctxsize		= CRYPTO_AES_CTX_SIZE,
+		.cra_module		= THIS_MODULE,
+	},
+	.min_keysize	= AES_MIN_KEY_SIZE,
+	.max_keysize	= AES_MAX_KEY_SIZE,
+	.ivsize		= AES_BLOCK_SIZE,
+	.chunksize	= AES_BLOCK_SIZE,
+	.setkey		= aesni_skcipher_setkey,
+	.encrypt	= xctr_crypt,
+	.decrypt	= xctr_crypt,
+};
+
+static struct simd_skcipher_alg *aesni_simd_xctr;
+#endif /* CONFIG_X86_64 */
+
+#ifdef CONFIG_X86_64
 static int generic_gcmaes_set_key(struct crypto_aead *aead, const u8 *key,
 				  unsigned int key_len)
 {
@@ -1163,7 +1257,7 @@
 		static_call_update(aesni_ctr_enc_tfm, aesni_ctr_enc_avx_tfm);
 		pr_info("AES CTR mode by8 optimization enabled\n");
 	}
-#endif
+#endif /* CONFIG_X86_64 */
 
 	err = crypto_register_alg(&aesni_cipher_alg);
 	if (err)
@@ -1180,8 +1274,22 @@
 	if (err)
 		goto unregister_skciphers;
 
+#ifdef CONFIG_X86_64
+	if (boot_cpu_has(X86_FEATURE_AVX))
+		err = simd_register_skciphers_compat(&aesni_xctr, 1,
+						     &aesni_simd_xctr);
+	if (err)
+		goto unregister_aeads;
+#endif /* CONFIG_X86_64 */
+
 	return 0;
 
+#ifdef CONFIG_X86_64
+unregister_aeads:
+	simd_unregister_aeads(aesni_aeads, ARRAY_SIZE(aesni_aeads),
+				aesni_simd_aeads);
+#endif /* CONFIG_X86_64 */
+
 unregister_skciphers:
 	simd_unregister_skciphers(aesni_skciphers, ARRAY_SIZE(aesni_skciphers),
 				  aesni_simd_skciphers);
@@ -1197,6 +1305,10 @@
 	simd_unregister_skciphers(aesni_skciphers, ARRAY_SIZE(aesni_skciphers),
 				  aesni_simd_skciphers);
 	crypto_unregister_alg(&aesni_cipher_alg);
+#ifdef CONFIG_X86_64
+	if (boot_cpu_has(X86_FEATURE_AVX))
+		simd_unregister_skciphers(&aesni_xctr, 1, &aesni_simd_xctr);
+#endif /* CONFIG_X86_64 */
 }
 
 late_initcall(aesni_init);
diff --git a/arch/x86/crypto/polyval-clmulni_asm.S b/arch/x86/crypto/polyval-clmulni_asm.S
new file mode 100644
index 0000000..a6ebe4e7
--- /dev/null
+++ b/arch/x86/crypto/polyval-clmulni_asm.S
@@ -0,0 +1,321 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright 2021 Google LLC
+ */
+/*
+ * This is an efficient implementation of POLYVAL using intel PCLMULQDQ-NI
+ * instructions. It works on 8 blocks at a time, by precomputing the first 8
+ * keys powers h^8, ..., h^1 in the POLYVAL finite field. This precomputation
+ * allows us to split finite field multiplication into two steps.
+ *
+ * In the first step, we consider h^i, m_i as normal polynomials of degree less
+ * than 128. We then compute p(x) = h^8m_0 + ... + h^1m_7 where multiplication
+ * is simply polynomial multiplication.
+ *
+ * In the second step, we compute the reduction of p(x) modulo the finite field
+ * modulus g(x) = x^128 + x^127 + x^126 + x^121 + 1.
+ *
+ * This two step process is equivalent to computing h^8m_0 + ... + h^1m_7 where
+ * multiplication is finite field multiplication. The advantage is that the
+ * two-step process  only requires 1 finite field reduction for every 8
+ * polynomial multiplications. Further parallelism is gained by interleaving the
+ * multiplications and polynomial reductions.
+ */
+
+#include <linux/linkage.h>
+#include <asm/frame.h>
+
+#define STRIDE_BLOCKS 8
+
+#define GSTAR %xmm7
+#define PL %xmm8
+#define PH %xmm9
+#define TMP_XMM %xmm11
+#define LO %xmm12
+#define HI %xmm13
+#define MI %xmm14
+#define SUM %xmm15
+
+#define KEY_POWERS %rdi
+#define MSG %rsi
+#define BLOCKS_LEFT %rdx
+#define ACCUMULATOR %rcx
+#define TMP %rax
+
+.section    .rodata.cst16.gstar, "aM", @progbits, 16
+.align 16
+
+.Lgstar:
+	.quad 0xc200000000000000, 0xc200000000000000
+
+.text
+
+/*
+ * Performs schoolbook1_iteration on two lists of 128-bit polynomials of length
+ * count pointed to by MSG and KEY_POWERS.
+ */
+.macro schoolbook1 count
+	.set i, 0
+	.rept (\count)
+		schoolbook1_iteration i 0
+		.set i, (i +1)
+	.endr
+.endm
+
+/*
+ * Computes the product of two 128-bit polynomials at the memory locations
+ * specified by (MSG + 16*i) and (KEY_POWERS + 16*i) and XORs the components of
+ * the 256-bit product into LO, MI, HI.
+ *
+ * Given:
+ *   X = [X_1 : X_0]
+ *   Y = [Y_1 : Y_0]
+ *
+ * We compute:
+ *   LO += X_0 * Y_0
+ *   MI += X_0 * Y_1 + X_1 * Y_0
+ *   HI += X_1 * Y_1
+ *
+ * Later, the 256-bit result can be extracted as:
+ *   [HI_1 : HI_0 + MI_1 : LO_1 + MI_0 : LO_0]
+ * This step is done when computing the polynomial reduction for efficiency
+ * reasons.
+ *
+ * If xor_sum == 1, then also XOR the value of SUM into m_0.  This avoids an
+ * extra multiplication of SUM and h^8.
+ */
+.macro schoolbook1_iteration i xor_sum
+	movups (16*\i)(MSG), %xmm0
+	.if (\i == 0 && \xor_sum == 1)
+		pxor SUM, %xmm0
+	.endif
+	vpclmulqdq $0x01, (16*\i)(KEY_POWERS), %xmm0, %xmm2
+	vpclmulqdq $0x00, (16*\i)(KEY_POWERS), %xmm0, %xmm1
+	vpclmulqdq $0x10, (16*\i)(KEY_POWERS), %xmm0, %xmm3
+	vpclmulqdq $0x11, (16*\i)(KEY_POWERS), %xmm0, %xmm4
+	vpxor %xmm2, MI, MI
+	vpxor %xmm1, LO, LO
+	vpxor %xmm4, HI, HI
+	vpxor %xmm3, MI, MI
+.endm
+
+/*
+ * Performs the same computation as schoolbook1_iteration, except we expect the
+ * arguments to already be loaded into xmm0 and xmm1 and we set the result
+ * registers LO, MI, and HI directly rather than XOR'ing into them.
+ */
+.macro schoolbook1_noload
+	vpclmulqdq $0x01, %xmm0, %xmm1, MI
+	vpclmulqdq $0x10, %xmm0, %xmm1, %xmm2
+	vpclmulqdq $0x00, %xmm0, %xmm1, LO
+	vpclmulqdq $0x11, %xmm0, %xmm1, HI
+	vpxor %xmm2, MI, MI
+.endm
+
+/*
+ * Computes the 256-bit polynomial represented by LO, HI, MI. Stores
+ * the result in PL, PH.
+ *   [PH : PL] = [HI_1 : HI_0 + MI_1 : LO_1 + MI_0 : LO_0]
+ */
+.macro schoolbook2
+	vpslldq $8, MI, PL
+	vpsrldq $8, MI, PH
+	pxor LO, PL
+	pxor HI, PH
+.endm
+
+/*
+ * Computes the 128-bit reduction of PH : PL. Stores the result in dest.
+ *
+ * This macro computes p(x) mod g(x) where p(x) is in montgomery form and g(x) =
+ * x^128 + x^127 + x^126 + x^121 + 1.
+ *
+ * We have a 256-bit polynomial PH : PL = P_3 : P_2 : P_1 : P_0 that is the
+ * product of two 128-bit polynomials in Montgomery form.  We need to reduce it
+ * mod g(x).  Also, since polynomials in Montgomery form have an "extra" factor
+ * of x^128, this product has two extra factors of x^128.  To get it back into
+ * Montgomery form, we need to remove one of these factors by dividing by x^128.
+ *
+ * To accomplish both of these goals, we add multiples of g(x) that cancel out
+ * the low 128 bits P_1 : P_0, leaving just the high 128 bits. Since the low
+ * bits are zero, the polynomial division by x^128 can be done by right shifting.
+ *
+ * Since the only nonzero term in the low 64 bits of g(x) is the constant term,
+ * the multiple of g(x) needed to cancel out P_0 is P_0 * g(x).  The CPU can
+ * only do 64x64 bit multiplications, so split P_0 * g(x) into x^128 * P_0 +
+ * x^64 * g*(x) * P_0 + P_0, where g*(x) is bits 64-127 of g(x).  Adding this to
+ * the original polynomial gives P_3 : P_2 + P_0 + T_1 : P_1 + T_0 : 0, where T
+ * = T_1 : T_0 = g*(x) * P_0.  Thus, bits 0-63 got "folded" into bits 64-191.
+ *
+ * Repeating this same process on the next 64 bits "folds" bits 64-127 into bits
+ * 128-255, giving the answer in bits 128-255. This time, we need to cancel P_1
+ * + T_0 in bits 64-127. The multiple of g(x) required is (P_1 + T_0) * g(x) *
+ * x^64. Adding this to our previous computation gives P_3 + P_1 + T_0 + V_1 :
+ * P_2 + P_0 + T_1 + V_0 : 0 : 0, where V = V_1 : V_0 = g*(x) * (P_1 + T_0).
+ *
+ * So our final computation is:
+ *   T = T_1 : T_0 = g*(x) * P_0
+ *   V = V_1 : V_0 = g*(x) * (P_1 + T_0)
+ *   p(x) / x^{128} mod g(x) = P_3 + P_1 + T_0 + V_1 : P_2 + P_0 + T_1 + V_0
+ *
+ * The implementation below saves a XOR instruction by computing P_1 + T_0 : P_0
+ * + T_1 and XORing into dest, rather than separately XORing P_1 : P_0 and T_0 :
+ * T_1 into dest.  This allows us to reuse P_1 + T_0 when computing V.
+ */
+.macro montgomery_reduction dest
+	vpclmulqdq $0x00, PL, GSTAR, TMP_XMM	# TMP_XMM = T_1 : T_0 = P_0 * g*(x)
+	pshufd $0b01001110, TMP_XMM, TMP_XMM	# TMP_XMM = T_0 : T_1
+	pxor PL, TMP_XMM			# TMP_XMM = P_1 + T_0 : P_0 + T_1
+	pxor TMP_XMM, PH			# PH = P_3 + P_1 + T_0 : P_2 + P_0 + T_1
+	pclmulqdq $0x11, GSTAR, TMP_XMM		# TMP_XMM = V_1 : V_0 = V = [(P_1 + T_0) * g*(x)]
+	vpxor TMP_XMM, PH, \dest
+.endm
+
+/*
+ * Compute schoolbook multiplication for 8 blocks
+ * m_0h^8 + ... + m_7h^1
+ *
+ * If reduce is set, also computes the montgomery reduction of the
+ * previous full_stride call and XORs with the first message block.
+ * (m_0 + REDUCE(PL, PH))h^8 + ... + m_7h^1.
+ * I.e., the first multiplication uses m_0 + REDUCE(PL, PH) instead of m_0.
+ */
+.macro full_stride reduce
+	pxor LO, LO
+	pxor HI, HI
+	pxor MI, MI
+
+	schoolbook1_iteration 7 0
+	.if \reduce
+		vpclmulqdq $0x00, PL, GSTAR, TMP_XMM
+	.endif
+
+	schoolbook1_iteration 6 0
+	.if \reduce
+		pshufd $0b01001110, TMP_XMM, TMP_XMM
+	.endif
+
+	schoolbook1_iteration 5 0
+	.if \reduce
+		pxor PL, TMP_XMM
+	.endif
+
+	schoolbook1_iteration 4 0
+	.if \reduce
+		pxor TMP_XMM, PH
+	.endif
+
+	schoolbook1_iteration 3 0
+	.if \reduce
+		pclmulqdq $0x11, GSTAR, TMP_XMM
+	.endif
+
+	schoolbook1_iteration 2 0
+	.if \reduce
+		vpxor TMP_XMM, PH, SUM
+	.endif
+
+	schoolbook1_iteration 1 0
+
+	schoolbook1_iteration 0 1
+
+	addq $(8*16), MSG
+	schoolbook2
+.endm
+
+/*
+ * Process BLOCKS_LEFT blocks, where 0 < BLOCKS_LEFT < STRIDE_BLOCKS
+ */
+.macro partial_stride
+	mov BLOCKS_LEFT, TMP
+	shlq $4, TMP
+	addq $(16*STRIDE_BLOCKS), KEY_POWERS
+	subq TMP, KEY_POWERS
+
+	movups (MSG), %xmm0
+	pxor SUM, %xmm0
+	movaps (KEY_POWERS), %xmm1
+	schoolbook1_noload
+	dec BLOCKS_LEFT
+	addq $16, MSG
+	addq $16, KEY_POWERS
+
+	test $4, BLOCKS_LEFT
+	jz .Lpartial4BlocksDone
+	schoolbook1 4
+	addq $(4*16), MSG
+	addq $(4*16), KEY_POWERS
+.Lpartial4BlocksDone:
+	test $2, BLOCKS_LEFT
+	jz .Lpartial2BlocksDone
+	schoolbook1 2
+	addq $(2*16), MSG
+	addq $(2*16), KEY_POWERS
+.Lpartial2BlocksDone:
+	test $1, BLOCKS_LEFT
+	jz .LpartialDone
+	schoolbook1 1
+.LpartialDone:
+	schoolbook2
+	montgomery_reduction SUM
+.endm
+
+/*
+ * Perform montgomery multiplication in GF(2^128) and store result in op1.
+ *
+ * Computes op1*op2*x^{-128} mod x^128 + x^127 + x^126 + x^121 + 1
+ * If op1, op2 are in montgomery form, this computes the montgomery
+ * form of op1*op2.
+ *
+ * void clmul_polyval_mul(u8 *op1, const u8 *op2);
+ */
+SYM_FUNC_START(clmul_polyval_mul)
+	FRAME_BEGIN
+	vmovdqa .Lgstar(%rip), GSTAR
+	movups (%rdi), %xmm0
+	movups (%rsi), %xmm1
+	schoolbook1_noload
+	schoolbook2
+	montgomery_reduction SUM
+	movups SUM, (%rdi)
+	FRAME_END
+	RET
+SYM_FUNC_END(clmul_polyval_mul)
+
+/*
+ * Perform polynomial evaluation as specified by POLYVAL.  This computes:
+ *	h^n * accumulator + h^n * m_0 + ... + h^1 * m_{n-1}
+ * where n=nblocks, h is the hash key, and m_i are the message blocks.
+ *
+ * rdi - pointer to precomputed key powers h^8 ... h^1
+ * rsi - pointer to message blocks
+ * rdx - number of blocks to hash
+ * rcx - pointer to the accumulator
+ *
+ * void clmul_polyval_update(const struct polyval_tfm_ctx *keys,
+ *	const u8 *in, size_t nblocks, u8 *accumulator);
+ */
+SYM_FUNC_START(clmul_polyval_update)
+	FRAME_BEGIN
+	vmovdqa .Lgstar(%rip), GSTAR
+	movups (ACCUMULATOR), SUM
+	subq $STRIDE_BLOCKS, BLOCKS_LEFT
+	js .LstrideLoopExit
+	full_stride 0
+	subq $STRIDE_BLOCKS, BLOCKS_LEFT
+	js .LstrideLoopExitReduce
+.LstrideLoop:
+	full_stride 1
+	subq $STRIDE_BLOCKS, BLOCKS_LEFT
+	jns .LstrideLoop
+.LstrideLoopExitReduce:
+	montgomery_reduction SUM
+.LstrideLoopExit:
+	add $STRIDE_BLOCKS, BLOCKS_LEFT
+	jz .LskipPartial
+	partial_stride
+.LskipPartial:
+	movups SUM, (ACCUMULATOR)
+	FRAME_END
+	RET
+SYM_FUNC_END(clmul_polyval_update)
diff --git a/arch/x86/crypto/polyval-clmulni_glue.c b/arch/x86/crypto/polyval-clmulni_glue.c
new file mode 100644
index 0000000..8fa58b0
--- /dev/null
+++ b/arch/x86/crypto/polyval-clmulni_glue.c
@@ -0,0 +1,212 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Glue code for POLYVAL using PCMULQDQ-NI
+ *
+ * Copyright (c) 2007 Nokia Siemens Networks - Mikko Herranen <mh1@iki.fi>
+ * Copyright (c) 2009 Intel Corp.
+ *   Author: Huang Ying <ying.huang@intel.com>
+ * Copyright 2021 Google LLC
+ */
+
+/*
+ * Glue code based on ghash-clmulni-intel_glue.c.
+ *
+ * This implementation of POLYVAL uses montgomery multiplication
+ * accelerated by PCLMULQDQ-NI to implement the finite field
+ * operations.
+ */
+
+#include <crypto/algapi.h>
+#include <crypto/internal/hash.h>
+#include <crypto/internal/simd.h>
+#include <crypto/polyval.h>
+#include <linux/crypto.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <asm/cpu_device_id.h>
+#include <asm/simd.h>
+
+#define POLYVAL_ALIGN	16
+#define POLYVAL_ALIGN_ATTR __aligned(POLYVAL_ALIGN)
+#define POLYVAL_ALIGN_EXTRA ((POLYVAL_ALIGN - 1) & ~(CRYPTO_MINALIGN - 1))
+#define POLYVAL_CTX_SIZE (sizeof(struct polyval_tfm_ctx) + POLYVAL_ALIGN_EXTRA)
+#define NUM_KEY_POWERS	8
+
+struct polyval_tfm_ctx {
+	/*
+	 * These powers must be in the order h^8, ..., h^1.
+	 */
+	u8 key_powers[NUM_KEY_POWERS][POLYVAL_BLOCK_SIZE] POLYVAL_ALIGN_ATTR;
+};
+
+struct polyval_desc_ctx {
+	u8 buffer[POLYVAL_BLOCK_SIZE];
+	u32 bytes;
+};
+
+asmlinkage void clmul_polyval_update(const struct polyval_tfm_ctx *keys,
+	const u8 *in, size_t nblocks, u8 *accumulator);
+asmlinkage void clmul_polyval_mul(u8 *op1, const u8 *op2);
+
+static inline struct polyval_tfm_ctx *polyval_tfm_ctx(struct crypto_shash *tfm)
+{
+	return PTR_ALIGN(crypto_shash_ctx(tfm), POLYVAL_ALIGN);
+}
+
+static void internal_polyval_update(const struct polyval_tfm_ctx *keys,
+	const u8 *in, size_t nblocks, u8 *accumulator)
+{
+	if (likely(crypto_simd_usable())) {
+		kernel_fpu_begin();
+		clmul_polyval_update(keys, in, nblocks, accumulator);
+		kernel_fpu_end();
+	} else {
+		polyval_update_non4k(keys->key_powers[NUM_KEY_POWERS-1], in,
+			nblocks, accumulator);
+	}
+}
+
+static void internal_polyval_mul(u8 *op1, const u8 *op2)
+{
+	if (likely(crypto_simd_usable())) {
+		kernel_fpu_begin();
+		clmul_polyval_mul(op1, op2);
+		kernel_fpu_end();
+	} else {
+		polyval_mul_non4k(op1, op2);
+	}
+}
+
+static int polyval_x86_setkey(struct crypto_shash *tfm,
+			const u8 *key, unsigned int keylen)
+{
+	struct polyval_tfm_ctx *tctx = polyval_tfm_ctx(tfm);
+	int i;
+
+	if (keylen != POLYVAL_BLOCK_SIZE)
+		return -EINVAL;
+
+	memcpy(tctx->key_powers[NUM_KEY_POWERS-1], key, POLYVAL_BLOCK_SIZE);
+
+	for (i = NUM_KEY_POWERS-2; i >= 0; i--) {
+		memcpy(tctx->key_powers[i], key, POLYVAL_BLOCK_SIZE);
+		internal_polyval_mul(tctx->key_powers[i],
+				     tctx->key_powers[i+1]);
+	}
+
+	return 0;
+}
+
+static int polyval_x86_init(struct shash_desc *desc)
+{
+	struct polyval_desc_ctx *dctx = shash_desc_ctx(desc);
+
+	memset(dctx, 0, sizeof(*dctx));
+
+	return 0;
+}
+
+static int polyval_x86_update(struct shash_desc *desc,
+			 const u8 *src, unsigned int srclen)
+{
+	struct polyval_desc_ctx *dctx = shash_desc_ctx(desc);
+	const struct polyval_tfm_ctx *tctx = polyval_tfm_ctx(desc->tfm);
+	u8 *pos;
+	unsigned int nblocks;
+	unsigned int n;
+
+	if (dctx->bytes) {
+		n = min(srclen, dctx->bytes);
+		pos = dctx->buffer + POLYVAL_BLOCK_SIZE - dctx->bytes;
+
+		dctx->bytes -= n;
+		srclen -= n;
+
+		while (n--)
+			*pos++ ^= *src++;
+
+		if (!dctx->bytes)
+			internal_polyval_mul(dctx->buffer,
+					    tctx->key_powers[NUM_KEY_POWERS-1]);
+	}
+
+	while (srclen >= POLYVAL_BLOCK_SIZE) {
+		/* Allow rescheduling every 4K bytes. */
+		nblocks = min(srclen, 4096U) / POLYVAL_BLOCK_SIZE;
+		internal_polyval_update(tctx, src, nblocks, dctx->buffer);
+		srclen -= nblocks * POLYVAL_BLOCK_SIZE;
+		src += nblocks * POLYVAL_BLOCK_SIZE;
+	}
+
+	if (srclen) {
+		dctx->bytes = POLYVAL_BLOCK_SIZE - srclen;
+		pos = dctx->buffer;
+		while (srclen--)
+			*pos++ ^= *src++;
+	}
+
+	return 0;
+}
+
+static int polyval_x86_final(struct shash_desc *desc, u8 *dst)
+{
+	struct polyval_desc_ctx *dctx = shash_desc_ctx(desc);
+	const struct polyval_tfm_ctx *tctx = polyval_tfm_ctx(desc->tfm);
+
+	if (dctx->bytes) {
+		internal_polyval_mul(dctx->buffer,
+				     tctx->key_powers[NUM_KEY_POWERS-1]);
+	}
+
+	memcpy(dst, dctx->buffer, POLYVAL_BLOCK_SIZE);
+
+	return 0;
+}
+
+static struct shash_alg polyval_alg = {
+	.digestsize	= POLYVAL_DIGEST_SIZE,
+	.init		= polyval_x86_init,
+	.update		= polyval_x86_update,
+	.final		= polyval_x86_final,
+	.setkey		= polyval_x86_setkey,
+	.descsize	= sizeof(struct polyval_desc_ctx),
+	.base		= {
+		.cra_name		= "polyval",
+		.cra_driver_name	= "polyval-clmulni",
+		.cra_priority		= 200,
+		.cra_blocksize		= POLYVAL_BLOCK_SIZE,
+		.cra_ctxsize		= POLYVAL_CTX_SIZE,
+		.cra_module		= THIS_MODULE,
+	},
+};
+
+__maybe_unused static const struct x86_cpu_id pcmul_cpu_id[] = {
+	X86_MATCH_FEATURE(X86_FEATURE_PCLMULQDQ, NULL),
+	{}
+};
+MODULE_DEVICE_TABLE(x86cpu, pcmul_cpu_id);
+
+static int __init polyval_clmulni_mod_init(void)
+{
+	if (!x86_match_cpu(pcmul_cpu_id))
+		return -ENODEV;
+
+	if (!boot_cpu_has(X86_FEATURE_AVX))
+		return -ENODEV;
+
+	return crypto_register_shash(&polyval_alg);
+}
+
+static void __exit polyval_clmulni_mod_exit(void)
+{
+	crypto_unregister_shash(&polyval_alg);
+}
+
+module_init(polyval_clmulni_mod_init);
+module_exit(polyval_clmulni_mod_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("POLYVAL hash function accelerated by PCLMULQDQ-NI");
+MODULE_ALIAS_CRYPTO("polyval");
+MODULE_ALIAS_CRYPTO("polyval-clmulni");
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
index 448cd01..01a1763 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -817,7 +817,8 @@
 
 static inline int pmd_bad(pmd_t pmd)
 {
-	return (pmd_flags(pmd) & ~_PAGE_USER) != _KERNPG_TABLE;
+	return (pmd_flags(pmd) & ~(_PAGE_USER | _PAGE_ACCESSED)) !=
+	       (_KERNPG_TABLE & ~_PAGE_ACCESSED);
 }
 
 static inline unsigned long pages_to_mb(unsigned long npg)
@@ -1397,10 +1398,10 @@
 	return boot_cpu_has_bug(X86_BUG_L1TF);
 }
 
-#define arch_faults_on_old_pte arch_faults_on_old_pte
-static inline bool arch_faults_on_old_pte(void)
+#define arch_has_hw_pte_young arch_has_hw_pte_young
+static inline bool arch_has_hw_pte_young(void)
 {
-	return false;
+	return true;
 }
 
 #endif	/* __ASSEMBLY__ */
diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c
index 06b53ea..4c7420d 100644
--- a/arch/x86/kernel/module.c
+++ b/arch/x86/kernel/module.c
@@ -78,7 +78,7 @@
 				    MODULES_END, gfp_mask,
 				    PAGE_KERNEL, VM_DEFER_KMEMLEAK, NUMA_NO_NODE,
 				    __builtin_return_address(0));
-	if (p && (kasan_module_alloc(p, size, gfp_mask) < 0)) {
+	if (p && (kasan_alloc_module_shadow(p, size, gfp_mask) < 0)) {
 		vfree(p);
 		return NULL;
 	}
diff --git a/arch/x86/kernel/signal_compat.c b/arch/x86/kernel/signal_compat.c
index 879ef8c..b52407c5 100644
--- a/arch/x86/kernel/signal_compat.c
+++ b/arch/x86/kernel/signal_compat.c
@@ -149,10 +149,8 @@
 
 	BUILD_BUG_ON(offsetof(siginfo_t, si_perf_data) != 0x18);
 	BUILD_BUG_ON(offsetof(siginfo_t, si_perf_type) != 0x20);
-	BUILD_BUG_ON(offsetof(siginfo_t, si_perf_flags) != 0x24);
 	BUILD_BUG_ON(offsetof(compat_siginfo_t, si_perf_data) != 0x10);
 	BUILD_BUG_ON(offsetof(compat_siginfo_t, si_perf_type) != 0x14);
-	BUILD_BUG_ON(offsetof(compat_siginfo_t, si_perf_flags) != 0x18);
 
 	CHECK_CSI_OFFSET(_sigpoll);
 	CHECK_CSI_SIZE  (_sigpoll, 2*sizeof(int));
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 4bfed53..b643180 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -1226,6 +1226,10 @@
 	struct mm_struct *mm;
 	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_DEFAULT;
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	struct vm_area_struct pvma;
+	unsigned long seq;
+#endif
 
 	tsk = current;
 	mm = tsk->mm;
@@ -1323,6 +1327,63 @@
 	}
 #endif
 
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	/*
+	 * No need to try speculative faults for kernel or
+	 * single threaded user space.
+	 */
+	if (!(flags & FAULT_FLAG_USER) || atomic_read(&mm->mm_users) == 1)
+		goto no_spf;
+
+	count_vm_event(SPF_ATTEMPT);
+	seq = mmap_seq_read_start(mm);
+	if (seq & 1) {
+		count_vm_spf_event(SPF_ABORT_ODD);
+		goto spf_abort;
+	}
+	vma = get_vma(mm, address);
+	if (!vma) {
+		count_vm_spf_event(SPF_ABORT_UNMAPPED);
+		goto spf_abort;
+	}
+
+	if (!vma_can_speculate(vma, flags)) {
+		put_vma(vma);
+		count_vm_spf_event(SPF_ABORT_NO_SPECULATE);
+		goto spf_abort;
+	}
+	pvma = *vma;
+	if (!mmap_seq_read_check(mm, seq, SPF_ABORT_VMA_COPY)) {
+		put_vma(vma);
+		goto spf_abort;
+	}
+	if (unlikely(access_error(error_code, &pvma))) {
+		put_vma(vma);
+		count_vm_spf_event(SPF_ABORT_ACCESS_ERROR);
+		goto spf_abort;
+	}
+	fault = do_handle_mm_fault(&pvma, address,
+			flags | FAULT_FLAG_SPECULATIVE, seq, regs);
+	put_vma(vma);
+
+	if (!(fault & VM_FAULT_RETRY))
+		goto done;
+
+	/* Quick path to respond to signals */
+	if (fault_signal_pending(fault, regs)) {
+		if (!user_mode(regs))
+			kernelmode_fixup_or_oops(regs, error_code, address,
+						 SIGBUS, BUS_ADRERR,
+						 ARCH_DEFAULT_PKEY);
+		return;
+	}
+
+spf_abort:
+	count_vm_event(SPF_ABORT);
+no_spf:
+
+#endif	/* CONFIG_SPECULATIVE_PAGE_FAULT */
+
 	/*
 	 * Kernel-mode access to the user address space should only occur
 	 * on well-defined single instructions listed in the exception
@@ -1420,6 +1481,9 @@
 	}
 
 	mmap_read_unlock(mm);
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+done:
+#endif
 	if (likely(!(fault & VM_FAULT_ERROR)))
 		return;
 
diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
index 56d5ab7..e4d3accc 100644
--- a/arch/x86/mm/init.c
+++ b/arch/x86/mm/init.c
@@ -115,6 +115,12 @@
 static bool __initdata can_use_brk_pgt = true;
 
 /*
+ * Provide a run-time mean of disabling ZONE_DMA32 if it is enabled via
+ * CONFIG_ZONE_DMA32.
+ */
+static bool disable_dma32 __ro_after_init;
+
+/*
  * Pages returned are already directly mapped.
  *
  * Changing that is likely to break Xen, see commit:
@@ -1053,7 +1059,7 @@
 	max_zone_pfns[ZONE_DMA]		= min(MAX_DMA_PFN, max_low_pfn);
 #endif
 #ifdef CONFIG_ZONE_DMA32
-	max_zone_pfns[ZONE_DMA32]	= min(MAX_DMA32_PFN, max_low_pfn);
+	max_zone_pfns[ZONE_DMA32]	= disable_dma32 ? 0 : min(MAX_DMA32_PFN, max_low_pfn);
 #endif
 	max_zone_pfns[ZONE_NORMAL]	= max_low_pfn;
 #ifdef CONFIG_HIGHMEM
@@ -1063,6 +1069,18 @@
 	free_area_init(max_zone_pfns);
 }
 
+static int __init early_disable_dma32(char *buf)
+{
+	if (!buf)
+		return -EINVAL;
+
+	if (!strcmp(buf, "on"))
+		disable_dma32 = true;
+
+	return 0;
+}
+early_param("disable_dma32", early_disable_dma32);
+
 __visible DEFINE_PER_CPU_ALIGNED(struct tlb_state, cpu_tlbstate) = {
 	.loaded_mm = &init_mm,
 	.next_asid = 1,
diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
index 3481b35..a224193 100644
--- a/arch/x86/mm/pgtable.c
+++ b/arch/x86/mm/pgtable.c
@@ -550,7 +550,7 @@
 	return ret;
 }
 
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+#if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG)
 int pmdp_test_and_clear_young(struct vm_area_struct *vma,
 			      unsigned long addr, pmd_t *pmdp)
 {
@@ -562,6 +562,9 @@
 
 	return ret;
 }
+#endif
+
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
 int pudp_test_and_clear_young(struct vm_area_struct *vma,
 			      unsigned long addr, pud_t *pudp)
 {
diff --git a/arch/x86/um/Kconfig b/arch/x86/um/Kconfig
index 95d26a6..c9e32f0 100644
--- a/arch/x86/um/Kconfig
+++ b/arch/x86/um/Kconfig
@@ -9,6 +9,7 @@
 config UML_X86
 	def_bool y
 	select GENERIC_FIND_FIRST_BIT
+	select ARCH_BINFMT_ELF_EXTRA_PHDRS if X86_32
 
 config 64BIT
 	bool "64-bit kernel" if "$(SUBARCH)" = "x86"
diff --git a/arch/x86/um/elfcore.c b/arch/x86/um/elfcore.c
index 48a3eb0..650cdbb 100644
--- a/arch/x86/um/elfcore.c
+++ b/arch/x86/um/elfcore.c
@@ -7,7 +7,7 @@
 #include <asm/elf.h>
 
 
-Elf32_Half elf_core_extra_phdrs(void)
+Elf32_Half elf_core_extra_phdrs(struct coredump_params *cprm)
 {
 	return vsyscall_ehdr ? (((struct elfhdr *)vsyscall_ehdr)->e_phnum) : 0;
 }
@@ -60,7 +60,7 @@
 	return 1;
 }
 
-size_t elf_core_extra_data_size(void)
+size_t elf_core_extra_data_size(struct coredump_params *cprm)
 {
 	if ( vsyscall_ehdr ) {
 		const struct elfhdr *const ehdrp =
diff --git a/block/Makefile b/block/Makefile
index 74df168..9853ab3 100644
--- a/block/Makefile
+++ b/block/Makefile
@@ -39,3 +39,4 @@
 obj-$(CONFIG_BLK_INLINE_ENCRYPTION)	+= keyslot-manager.o blk-crypto.o
 obj-$(CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK)	+= blk-crypto-fallback.o
 obj-$(CONFIG_BLOCK_HOLDER_DEPRECATED)	+= holder.o
+obj-$(CONFIG_ANDROID_VENDOR_HOOKS) += vendor_hooks.o
diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
index f545549..e5fc6d1 100644
--- a/block/bfq-iosched.c
+++ b/block/bfq-iosched.c
@@ -132,6 +132,7 @@
 #include "blk-mq-tag.h"
 #include "blk-mq-sched.h"
 #include "bfq-iosched.h"
+#include "blk-stat.h"
 #include "blk-wbt.h"
 
 #define BFQ_BFQQ_FNS(name)						\
@@ -7052,6 +7053,8 @@
 	bfq_init_entity(&bfqd->oom_bfqq.entity, bfqd->root_group);
 
 	wbt_disable_default(q);
+	blk_stat_enable_accounting(q);
+
 	return 0;
 
 out_free:
diff --git a/block/bio.c b/block/bio.c
index ba9120d..5bdef48 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -273,6 +273,9 @@
 #endif
 #ifdef CONFIG_BLK_INLINE_ENCRYPTION
 	bio->bi_crypt_context = NULL;
+#if IS_ENABLED(CONFIG_DM_DEFAULT_KEY)
+	bio->bi_skip_dm_default_key = false;
+#endif
 #endif
 #ifdef CONFIG_BLK_DEV_INTEGRITY
 	bio->bi_integrity = NULL;
diff --git a/block/blk-core.c b/block/blk-core.c
index 0c4a4e4..7c4e553 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -44,12 +44,16 @@
 
 #define CREATE_TRACE_POINTS
 #include <trace/events/block.h>
+#undef CREATE_TRACE_POINTS
+#include <trace/hooks/block.h>
 
 #include "blk.h"
 #include "blk-mq.h"
 #include "blk-mq-sched.h"
 #include "blk-pm.h"
+#ifndef __GENKSYMS__
 #include "blk-rq-qos.h"
+#endif
 
 struct dentry *blk_debugfs_root;
 
@@ -59,6 +63,12 @@
 EXPORT_TRACEPOINT_SYMBOL_GPL(block_split);
 EXPORT_TRACEPOINT_SYMBOL_GPL(block_unplug);
 EXPORT_TRACEPOINT_SYMBOL_GPL(block_rq_insert);
+EXPORT_TRACEPOINT_SYMBOL_GPL(block_bio_queue);
+EXPORT_TRACEPOINT_SYMBOL_GPL(block_getrq);
+EXPORT_TRACEPOINT_SYMBOL_GPL(block_rq_issue);
+EXPORT_TRACEPOINT_SYMBOL_GPL(block_rq_merge);
+EXPORT_TRACEPOINT_SYMBOL_GPL(block_rq_requeue);
+EXPORT_TRACEPOINT_SYMBOL_GPL(block_rq_complete);
 
 DEFINE_IDA(blk_queue_ida);
 
@@ -1258,6 +1268,7 @@
 	 * normal IO on queueing nor completion.  Accounting the
 	 * containing request is enough.
 	 */
+	trace_android_vh_blk_account_io_done(req);
 	if (req->part && blk_do_io_stat(req) &&
 	    !(req->rq_flags & RQF_FLUSH_SEQ)) {
 		const int sgrp = op_stat_group(req_op(req));
diff --git a/block/blk-crypto-fallback.c b/block/blk-crypto-fallback.c
index c322176..3795968 100644
--- a/block/blk-crypto-fallback.c
+++ b/block/blk-crypto-fallback.c
@@ -183,6 +183,8 @@
 	bio_clone_blkg_association(bio, bio_src);
 	blkcg_bio_issue_init(bio);
 
+	bio_clone_skip_dm_default_key(bio, bio_src);
+
 	return bio;
 }
 
@@ -551,6 +553,7 @@
 
 	blk_crypto_ksm.ksm_ll_ops = blk_crypto_ksm_ll_ops;
 	blk_crypto_ksm.max_dun_bytes_supported = BLK_CRYPTO_MAX_IV_SIZE;
+	blk_crypto_ksm.features = BLK_CRYPTO_FEATURE_STANDARD_KEYS;
 
 	/* All blk-crypto modes have a crypto API fallback. */
 	for (i = 0; i < BLK_ENCRYPTION_MODE_MAX; i++)
diff --git a/block/blk-crypto.c b/block/blk-crypto.c
index 5029a50..b8eef8f 100644
--- a/block/blk-crypto.c
+++ b/block/blk-crypto.c
@@ -97,6 +97,7 @@
 
 	bio->bi_crypt_context = bc;
 }
+EXPORT_SYMBOL_GPL(bio_crypt_set_ctx);
 
 void __bio_crypt_free_ctx(struct bio *bio)
 {
@@ -307,8 +308,13 @@
 /**
  * blk_crypto_init_key() - Prepare a key for use with blk-crypto
  * @blk_key: Pointer to the blk_crypto_key to initialize.
- * @raw_key: Pointer to the raw key. Must be the correct length for the chosen
- *	     @crypto_mode; see blk_crypto_modes[].
+ * @raw_key: Pointer to the raw key.
+ * @raw_key_size: Size of raw key.  Must be at least the required size for the
+ *                chosen @crypto_mode; see blk_crypto_modes[].  (It's allowed
+ *                to be longer than the mode's actual key size, in order to
+ *                support inline encryption hardware that accepts wrapped keys.
+ *                @is_hw_wrapped has to be set for such keys)
+ * @is_hw_wrapped: Denotes @raw_key is wrapped.
  * @crypto_mode: identifier for the encryption algorithm to use
  * @dun_bytes: number of bytes that will be used to specify the DUN when this
  *	       key is used
@@ -317,7 +323,9 @@
  * Return: 0 on success, -errno on failure.  The caller is responsible for
  *	   zeroizing both blk_key and raw_key when done with them.
  */
-int blk_crypto_init_key(struct blk_crypto_key *blk_key, const u8 *raw_key,
+int blk_crypto_init_key(struct blk_crypto_key *blk_key,
+			const u8 *raw_key, unsigned int raw_key_size,
+			bool is_hw_wrapped,
 			enum blk_crypto_mode_num crypto_mode,
 			unsigned int dun_bytes,
 			unsigned int data_unit_size)
@@ -329,9 +337,17 @@
 	if (crypto_mode >= ARRAY_SIZE(blk_crypto_modes))
 		return -EINVAL;
 
+	BUILD_BUG_ON(BLK_CRYPTO_MAX_WRAPPED_KEY_SIZE < BLK_CRYPTO_MAX_KEY_SIZE);
+
 	mode = &blk_crypto_modes[crypto_mode];
-	if (mode->keysize == 0)
-		return -EINVAL;
+	if (is_hw_wrapped) {
+		if (raw_key_size < mode->keysize ||
+		    raw_key_size > BLK_CRYPTO_MAX_WRAPPED_KEY_SIZE)
+			return -EINVAL;
+	} else {
+		if (raw_key_size != mode->keysize)
+			return -EINVAL;
+	}
 
 	if (dun_bytes == 0 || dun_bytes > mode->ivsize)
 		return -EINVAL;
@@ -342,12 +358,14 @@
 	blk_key->crypto_cfg.crypto_mode = crypto_mode;
 	blk_key->crypto_cfg.dun_bytes = dun_bytes;
 	blk_key->crypto_cfg.data_unit_size = data_unit_size;
+	blk_key->crypto_cfg.is_hw_wrapped = is_hw_wrapped;
 	blk_key->data_unit_size_bits = ilog2(data_unit_size);
-	blk_key->size = mode->keysize;
-	memcpy(blk_key->raw, raw_key, mode->keysize);
+	blk_key->size = raw_key_size;
+	memcpy(blk_key->raw, raw_key, raw_key_size);
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(blk_crypto_init_key);
 
 /*
  * Check if bios with @cfg can be en/decrypted by blk-crypto (i.e. either the
@@ -357,8 +375,10 @@
 bool blk_crypto_config_supported(struct request_queue *q,
 				 const struct blk_crypto_config *cfg)
 {
-	return IS_ENABLED(CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK) ||
-	       blk_ksm_crypto_cfg_supported(q->ksm, cfg);
+	if (IS_ENABLED(CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK) &&
+	    !cfg->is_hw_wrapped)
+		return true;
+	return blk_ksm_crypto_cfg_supported(q->ksm, cfg);
 }
 
 /**
@@ -381,8 +401,13 @@
 {
 	if (blk_ksm_crypto_cfg_supported(q->ksm, &key->crypto_cfg))
 		return 0;
+	if (key->crypto_cfg.is_hw_wrapped) {
+		pr_warn_once("hardware doesn't support wrapped keys\n");
+		return -EOPNOTSUPP;
+	}
 	return blk_crypto_fallback_start_using_mode(key->crypto_cfg.crypto_mode);
 }
+EXPORT_SYMBOL_GPL(blk_crypto_start_using_key);
 
 /**
  * blk_crypto_evict_key() - Evict a blk_crypto_key from a request_queue
diff --git a/block/blk-mq-tag.h b/block/blk-mq-tag.h
index 8ed55af0..c0c95ce 100644
--- a/block/blk-mq-tag.h
+++ b/block/blk-mq-tag.h
@@ -26,6 +26,8 @@
 	 * request pool
 	 */
 	spinlock_t lock;
+
+	ANDROID_OEM_DATA(1);
 };
 
 extern struct blk_mq_tags *blk_mq_init_tags(unsigned int nr_tags,
diff --git a/block/blk-mq.c b/block/blk-mq.c
index bbbbcd2..c91bb78 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -41,6 +41,8 @@
 #include "blk-mq-sched.h"
 #include "blk-rq-qos.h"
 
+#include <trace/hooks/block.h>
+
 static DEFINE_PER_CPU(struct llist_head, blk_cpu_done);
 
 static void blk_mq_poll_stats_start(struct request_queue *q);
@@ -349,6 +351,7 @@
 	}
 
 	data->hctx->queued++;
+	trace_android_vh_blk_rq_ctx_init(rq, tags, data, alloc_time_ns);
 	return rq;
 }
 
@@ -2464,6 +2467,7 @@
 	 */
 	rq_size = round_up(sizeof(struct request) + set->cmd_size,
 				cache_line_size());
+	trace_android_vh_blk_alloc_rqs(&rq_size, set, tags, hctx_idx);
 	left = rq_size * depth;
 
 	for (i = 0; i < depth; ) {
diff --git a/block/blk-mq.h b/block/blk-mq.h
index 7cdca23..f302e9c 100644
--- a/block/blk-mq.h
+++ b/block/blk-mq.h
@@ -35,6 +35,8 @@
 	struct request_queue	*queue;
 	struct blk_mq_ctxs      *ctxs;
 	struct kobject		kobj;
+
+	ANDROID_OEM_DATA_ARRAY(1, 2);
 } ____cacheline_aligned_in_smp;
 
 void blk_mq_exit_queue(struct request_queue *q);
diff --git a/block/keyslot-manager.c b/block/keyslot-manager.c
index 2a7a365..9470477 100644
--- a/block/keyslot-manager.c
+++ b/block/keyslot-manager.c
@@ -340,6 +340,13 @@
 		return false;
 	if (ksm->max_dun_bytes_supported < cfg->dun_bytes)
 		return false;
+	if (cfg->is_hw_wrapped) {
+		if (!(ksm->features & BLK_CRYPTO_FEATURE_WRAPPED_KEYS))
+			return false;
+	} else {
+		if (!(ksm->features & BLK_CRYPTO_FEATURE_STANDARD_KEYS))
+			return false;
+	}
 	return true;
 }
 
@@ -453,6 +460,44 @@
 }
 
 /**
+ * blk_ksm_derive_raw_secret() - Derive software secret from wrapped key
+ * @ksm: The keyslot manager
+ * @wrapped_key: The wrapped key
+ * @wrapped_key_size: Size of the wrapped key in bytes
+ * @secret: (output) the software secret
+ * @secret_size: (output) the number of secret bytes to derive
+ *
+ * Given a hardware-wrapped key, ask the hardware to derive a secret which
+ * software can use for cryptographic tasks other than inline encryption.  The
+ * derived secret is guaranteed to be cryptographically isolated from the key
+ * with which any inline encryption with this wrapped key would actually be
+ * done.  I.e., both will be derived from the unwrapped key.
+ *
+ * Return: 0 on success, -EOPNOTSUPP if hardware-wrapped keys are unsupported,
+ *	   or another -errno code.
+ */
+int blk_ksm_derive_raw_secret(struct blk_keyslot_manager *ksm,
+			      const u8 *wrapped_key,
+			      unsigned int wrapped_key_size,
+			      u8 *secret, unsigned int secret_size)
+{
+	int err;
+
+	if (ksm->ksm_ll_ops.derive_raw_secret) {
+		blk_ksm_hw_enter(ksm);
+		err = ksm->ksm_ll_ops.derive_raw_secret(ksm, wrapped_key,
+							wrapped_key_size,
+							secret, secret_size);
+		blk_ksm_hw_exit(ksm);
+	} else {
+		err = -EOPNOTSUPP;
+	}
+
+	return err;
+}
+EXPORT_SYMBOL_GPL(blk_ksm_derive_raw_secret);
+
+/**
  * blk_ksm_intersect_modes() - restrict supported modes by child device
  * @parent: The keyslot manager for parent device
  * @child: The keyslot manager for child device, or NULL
@@ -477,10 +522,12 @@
 			parent->crypto_modes_supported[i] &=
 				child->crypto_modes_supported[i];
 		}
+		parent->features &= child->features;
 	} else {
 		parent->max_dun_bytes_supported = 0;
 		memset(parent->crypto_modes_supported, 0,
 		       sizeof(parent->crypto_modes_supported));
+		parent->features = 0;
 	}
 }
 EXPORT_SYMBOL_GPL(blk_ksm_intersect_modes);
@@ -520,6 +567,9 @@
 		return false;
 	}
 
+	if (ksm_subset->features & ~ksm_superset->features)
+		return false;
+
 	return true;
 }
 EXPORT_SYMBOL_GPL(blk_ksm_is_superset);
@@ -556,6 +606,8 @@
 
 	target_ksm->max_dun_bytes_supported =
 				reference_ksm->max_dun_bytes_supported;
+
+	target_ksm->features = reference_ksm->features;
 }
 EXPORT_SYMBOL_GPL(blk_ksm_update_capabilities);
 
diff --git a/block/vendor_hooks.c b/block/vendor_hooks.c
new file mode 100644
index 0000000..61e16e6
--- /dev/null
+++ b/block/vendor_hooks.c
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/* vendor_hook.c
+ *
+ * Copyright 2022 Google LLC
+ */
+#include "blk.h"
+#include "blk-mq-tag.h"
+#include "blk-mq.h"
+#include <linux/blk-mq.h>
+
+#define CREATE_TRACE_POINTS
+#include <trace/hooks/vendor_hooks.h>
+#include <linux/tracepoint.h>
+#include <trace/hooks/block.h>
+
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_blk_alloc_rqs);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_blk_rq_ctx_init);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_blk_account_io_done);
+
+/*
+ * For type visibility
+ */
+const struct blk_mq_alloc_data *GKI_struct_blk_mq_alloc_data;
+EXPORT_SYMBOL_GPL(GKI_struct_blk_mq_alloc_data);
+
diff --git a/build.config.aarch64 b/build.config.aarch64
new file mode 100644
index 0000000..8e20ee7
--- /dev/null
+++ b/build.config.aarch64
@@ -0,0 +1,18 @@
+ARCH=arm64
+MAKE_GOALS="
+Image
+modules
+"
+
+FILES="
+arch/arm64/boot/Image
+vmlinux
+System.map
+vmlinux.symvers
+modules.builtin
+modules.builtin.modinfo
+"
+
+NDK_TRIPLE=aarch64-linux-android31
+
+GKI_MODULES_LIST=android/gki_aarch64_modules
diff --git a/build.config.allmodconfig b/build.config.allmodconfig
new file mode 100644
index 0000000..6900579
--- /dev/null
+++ b/build.config.allmodconfig
@@ -0,0 +1,16 @@
+DEFCONFIG=allmodconfig
+
+POST_DEFCONFIG_CMDS="update_config"
+function update_config() {
+    ${KERNEL_DIR}/scripts/config --file ${OUT_DIR}/.config \
+         -d TEST_KMOD  \
+         -e UNWINDER_FRAME_POINTER \
+	 -d INFINIBAND_QIB \
+         -d SAMPLES \
+         -d BPFILTER \
+         -e HID \
+         -e UHID \
+
+    (cd ${OUT_DIR} && \
+     make O=${OUT_DIR} $archsubarch CROSS_COMPILE=${CROSS_COMPILE} ${TOOL_ARGS} ${MAKE_ARGS} olddefconfig)
+}
diff --git a/build.config.allmodconfig.aarch64 b/build.config.allmodconfig.aarch64
new file mode 100644
index 0000000..2fbe380
--- /dev/null
+++ b/build.config.allmodconfig.aarch64
@@ -0,0 +1,4 @@
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.aarch64
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.allmodconfig
+
diff --git a/build.config.allmodconfig.arm b/build.config.allmodconfig.arm
new file mode 100644
index 0000000..e92744a
--- /dev/null
+++ b/build.config.allmodconfig.arm
@@ -0,0 +1,4 @@
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.arm
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.allmodconfig
+
diff --git a/build.config.allmodconfig.x86_64 b/build.config.allmodconfig.x86_64
new file mode 100644
index 0000000..f06b30c
--- /dev/null
+++ b/build.config.allmodconfig.x86_64
@@ -0,0 +1,4 @@
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.x86_64
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.allmodconfig
+
diff --git a/build.config.amlogic b/build.config.amlogic
new file mode 100644
index 0000000..e04bd52
--- /dev/null
+++ b/build.config.amlogic
@@ -0,0 +1,34 @@
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.gki.aarch64
+
+DEFCONFIG=amlogic_gki_defconfig
+FRAGMENT_CONFIG=${KERNEL_DIR}/arch/arm64/configs/amlogic_gki.fragment
+
+PRE_DEFCONFIG_CMDS="KCONFIG_CONFIG=${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG} ${ROOT_DIR}/${KERNEL_DIR}/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/gki_defconfig ${ROOT_DIR}/${FRAGMENT_CONFIG}"
+POST_DEFCONFIG_CMDS="rm ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG}"
+
+# needed for DT overlay support
+DTC_FLAGS="-@"
+
+MAKE_GOALS="${MAKE_GOALS}
+dtbs
+"
+
+FILES="${FILES}
+arch/arm64/boot/Image.lz4
+arch/arm64/boot/dts/amlogic/meson-g12a-sei510*.dtb
+arch/arm64/boot/dts/amlogic/meson-sm1-sei610*.dtb
+arch/arm64/boot/dts/amlogic/meson-sm1-khadas-vim3l*.dtb
+arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3*.dtb
+"
+
+#
+# NOTE: Using Image.lz4 in MAKE_GOALS does not work because
+#   kernel build passes legacy option (-l) to lz4 command
+#   and u-boot fails to decompress.  Instead, add custom
+#   command to lz4 compress same options as kernel, but
+#   without the -l.
+#
+EXTRA_CMDS="lz4_compress"
+function lz4_compress() {
+        lz4 -f -12 --favor-decSpeed ${OUT_DIR}/arch/arm64/boot/Image ${OUT_DIR}/arch/arm64/boot/Image.lz4
+}
diff --git a/build.config.arm b/build.config.arm
new file mode 100644
index 0000000..c7f114c
--- /dev/null
+++ b/build.config.arm
@@ -0,0 +1,13 @@
+ARCH=arm
+MAKE_GOALS="
+zImage
+modules
+"
+
+FILES="
+arch/arm/boot/zImage
+vmlinux
+System.map
+"
+
+NDK_TRIPLE=arm-linux-androideabi31
diff --git a/build.config.common b/build.config.common
new file mode 100644
index 0000000..11d92f9
--- /dev/null
+++ b/build.config.common
@@ -0,0 +1,19 @@
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.constants
+
+KMI_GENERATION=8
+
+LLVM=1
+DEPMOD=depmod
+CLANG_PREBUILT_BIN=prebuilts/clang/host/linux-x86/clang-${CLANG_VERSION}/bin
+BUILDTOOLS_PREBUILT_BIN=build/kernel/build-tools/path/linux-x86
+DTC=${ROOT_DIR}/${BUILDTOOLS_PREBUILT_BIN}/dtc
+
+KCFLAGS="${KCFLAGS} -D__ANDROID_COMMON_KERNEL__"
+EXTRA_CMDS=''
+STOP_SHIP_TRACEPRINTK=1
+IN_KERNEL_MODULES=1
+DO_NOT_STRIP_MODULES=1
+
+HERMETIC_TOOLCHAIN=${HERMETIC_TOOLCHAIN:-1}
+
+KLEAF_SUPPRESS_BUILD_SH_DEPRECATION_WARNING=${KLEAF_SUPPRESS_BUILD_SH_DEPRECATION_WARNING:-1}
diff --git a/build.config.constants b/build.config.constants
new file mode 100644
index 0000000..07fbf24
--- /dev/null
+++ b/build.config.constants
@@ -0,0 +1,2 @@
+BRANCH=android13-5.15
+CLANG_VERSION=r450784e
diff --git a/build.config.db845c b/build.config.db845c
new file mode 100644
index 0000000..6bbb310
--- /dev/null
+++ b/build.config.db845c
@@ -0,0 +1,23 @@
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.aarch64
+
+BUILD_INITRAMFS=1
+DEFCONFIG=db845c_gki_defconfig
+FRAGMENT_CONFIG=${KERNEL_DIR}/arch/arm64/configs/db845c_gki.fragment
+PRE_DEFCONFIG_CMDS="KCONFIG_CONFIG=${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG} ${ROOT_DIR}/${KERNEL_DIR}/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/gki_defconfig ${ROOT_DIR}/${FRAGMENT_CONFIG}"
+POST_DEFCONFIG_CMDS="rm ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG}"
+
+MAKE_GOALS="${MAKE_GOALS}
+qcom/sdm845-db845c.dtb
+qcom/qrb5165-rb5.dtb
+Image.gz
+"
+
+FILES="${FILES}
+arch/arm64/boot/Image.gz
+arch/arm64/boot/dts/qcom/sdm845-db845c.dtb
+arch/arm64/boot/dts/qcom/qrb5165-rb5.dtb
+"
+
+KMI_SYMBOL_LIST=android/abi_gki_aarch64_db845c
+GKI_MODULES_LIST=android/gki_aarch64_modules
diff --git a/build.config.gce.x86_64 b/build.config.gce.x86_64
new file mode 100644
index 0000000..f13fb52
--- /dev/null
+++ b/build.config.gce.x86_64
@@ -0,0 +1,26 @@
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common
+. ${ROOT_DIR}/common-modules/virtual-device/build.config.virtual_device
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.x86_64
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.gki
+
+BUILD_SYSTEM_DLKM=1
+MODULES_LIST=${ROOT_DIR}/${KERNEL_DIR}/android/gki_system_dlkm_modules
+BUILD_GKI_CERTIFICATION_TOOLS=1
+
+TRIM_NONLISTED_KMI=""
+KMI_SYMBOL_LIST_STRICT_MODE=""
+
+BUILD_INITRAMFS=1
+LZ4_RAMDISK=1
+DEFCONFIG=vd_x86_64_gce_defconfig
+FRAGMENT_CONFIG=common/arch/x86/configs/x86_64_gce.fragment
+
+PRE_DEFCONFIG_CMDS="KCONFIG_CONFIG=${ROOT_DIR}/${KERNEL_DIR}/arch/x86/configs/${DEFCONFIG} ${ROOT_DIR}/${KERNEL_DIR}/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/${KERNEL_DIR}/arch/x86/configs/gki_defconfig ${ROOT_DIR}/${FRAGMENT_CONFIG} ${ROOT_DIR}/common-modules/virtual-device/virtual_device.fragment"
+POST_DEFCONFIG_CMDS="rm ${ROOT_DIR}/${KERNEL_DIR}/arch/x86/configs/${DEFCONFIG}"
+
+BUILD_GOLDFISH_DRIVERS=m
+EXT_MODULES="common-modules/virtual-device"
+
+if [ -n "${GKI_BUILD_CONFIG_FRAGMENT}" ]; then
+source ${GKI_BUILD_CONFIG_FRAGMENT}
+fi
diff --git a/build.config.gki b/build.config.gki
new file mode 100644
index 0000000..4b931d9
--- /dev/null
+++ b/build.config.gki
@@ -0,0 +1,2 @@
+DEFCONFIG=gki_defconfig
+POST_DEFCONFIG_CMDS="check_defconfig"
diff --git a/build.config.gki-debug.aarch64 b/build.config.gki-debug.aarch64
new file mode 100644
index 0000000..c1fe2f0
--- /dev/null
+++ b/build.config.gki-debug.aarch64
@@ -0,0 +1,3 @@
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.gki.aarch64
+TRIM_NONLISTED_KMI=""
+KMI_SYMBOL_LIST_STRICT_MODE=""
diff --git a/build.config.gki-debug.x86_64 b/build.config.gki-debug.x86_64
new file mode 100644
index 0000000..d89b7ad
--- /dev/null
+++ b/build.config.gki-debug.x86_64
@@ -0,0 +1,3 @@
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.gki.x86_64
+TRIM_NONLISTED_KMI=""
+KMI_SYMBOL_LIST_STRICT_MODE=""
diff --git a/build.config.gki.aarch64 b/build.config.gki.aarch64
new file mode 100644
index 0000000..df5b9a5
--- /dev/null
+++ b/build.config.gki.aarch64
@@ -0,0 +1,69 @@
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.aarch64
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.gki
+
+MAKE_GOALS="${MAKE_GOALS}
+Image.lz4
+Image.gz
+"
+
+# Sync with BUILD.bazel
+ABI_DEFINITION=android/abi_gki_aarch64.xml
+KMI_SYMBOL_LIST=android/abi_gki_aarch64
+ADDITIONAL_KMI_SYMBOL_LISTS="
+android/abi_gki_aarch64_virtual_device
+android/abi_gki_aarch64_virtual_device_removed
+android/abi_gki_aarch64_type_visibility
+android/abi_gki_aarch64_db845c
+android/abi_gki_aarch64_exynos
+android/abi_gki_aarch64_exynosauto
+android/abi_gki_aarch64_exynos_wear
+android/abi_gki_aarch64_fips140
+android/abi_gki_aarch64_galaxy
+android/abi_gki_aarch64_general
+android/abi_gki_aarch64_honor
+android/abi_gki_aarch64_imx
+android/abi_gki_aarch64_pixel
+android/abi_gki_aarch64_microsoft
+android/abi_gki_aarch64_moto
+android/abi_gki_aarch64_mtktv
+android/abi_gki_aarch64_mtk
+android/abi_gki_aarch64_qcom
+android/abi_gki_aarch64_rtktv
+android/abi_gki_aarch64_sony
+android/abi_gki_aarch64_tuxera
+android/abi_gki_aarch64_unisoc
+android/abi_gki_aarch64_vivo
+android/abi_gki_aarch64_xiaomi
+android/abi_gki_aarch64_oplus
+android/abi_gki_aarch64_amlogic
+android/abi_gki_aarch64_sunxi
+android/abi_gki_aarch64_pasa
+android/abi_gki_aarch64_zeku
+android/abi_gki_aarch64_lenovo
+"
+
+FILES="${FILES}
+arch/arm64/boot/Image.lz4
+arch/arm64/boot/Image.gz
+"
+
+# Update BUILD.bazel, define_common_kernels() if the value is not 1.
+TRIM_NONLISTED_KMI=${TRIM_NONLISTED_KMI:-1}
+KMI_SYMBOL_LIST_STRICT_MODE=${KMI_SYMBOL_LIST_STRICT_MODE:-1}
+KMI_ENFORCED=1
+
+BUILD_SYSTEM_DLKM=1
+MODULES_LIST=${ROOT_DIR}/${KERNEL_DIR}/android/gki_system_dlkm_modules
+MODULES_ORDER=android/gki_aarch64_modules
+
+BUILD_GKI_CERTIFICATION_TOOLS=1
+
+BUILD_GKI_ARTIFACTS=1
+BUILD_GKI_BOOT_IMG_SIZE=67108864
+BUILD_GKI_BOOT_IMG_GZ_SIZE=47185920
+BUILD_GKI_BOOT_IMG_LZ4_SIZE=53477376
+
+if [ -n "${GKI_BUILD_CONFIG_FRAGMENT}" ]; then
+source ${GKI_BUILD_CONFIG_FRAGMENT}
+fi
diff --git a/build.config.gki.aarch64.fips140 b/build.config.gki.aarch64.fips140
new file mode 100644
index 0000000..040d73a
--- /dev/null
+++ b/build.config.gki.aarch64.fips140
@@ -0,0 +1,17 @@
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.gki.aarch64
+
+FILES="${FILES}
+crypto/fips140.ko
+"
+
+if [ "${LTO}" = "none" ]; then
+	echo "The FIPS140 module needs LTO to be enabled."
+	exit 1
+fi
+
+MODULES_ORDER=android/gki_aarch64_fips140_modules
+KERNEL_DIR=common
+
+DEFCONFIG=fips140_gki_defconfig
+PRE_DEFCONFIG_CMDS="cat ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/gki_defconfig ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/fips140_gki.fragment > ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG};"
+POST_DEFCONFIG_CMDS="rm ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG}"
diff --git a/build.config.gki.x86_64 b/build.config.gki.x86_64
new file mode 100644
index 0000000..93f492c
--- /dev/null
+++ b/build.config.gki.x86_64
@@ -0,0 +1,15 @@
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.x86_64
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.gki
+
+BUILD_SYSTEM_DLKM=1
+MODULES_LIST=${ROOT_DIR}/${KERNEL_DIR}/android/gki_system_dlkm_modules
+
+BUILD_GKI_CERTIFICATION_TOOLS=1
+
+BUILD_GKI_ARTIFACTS=1
+BUILD_GKI_BOOT_IMG_SIZE=67108864
+
+if [ -n "${GKI_BUILD_CONFIG_FRAGMENT}" ]; then
+source ${GKI_BUILD_CONFIG_FRAGMENT}
+fi
diff --git a/build.config.gki_kasan b/build.config.gki_kasan
new file mode 100644
index 0000000..2c2be94
--- /dev/null
+++ b/build.config.gki_kasan
@@ -0,0 +1,22 @@
+DEFCONFIG=gki_defconfig
+POST_DEFCONFIG_CMDS="check_defconfig && update_kasan_config"
+KERNEL_DIR=common
+LTO=none
+
+function update_kasan_config() {
+    ${KERNEL_DIR}/scripts/config --file ${OUT_DIR}/.config \
+         -e CONFIG_KASAN \
+         -e CONFIG_KASAN_PANIC_ON_WARN \
+         -e CONFIG_KCOV \
+         -e CONFIG_PANIC_ON_WARN_DEFAULT_ENABLE \
+         -d CONFIG_RANDOMIZE_BASE \
+         -d CONFIG_KASAN_OUTLINE \
+         --set-val CONFIG_FRAME_WARN 0 \
+         -d CFI \
+         -d CFI_PERMISSIVE \
+         -d CFI_CLANG \
+         -d SHADOW_CALL_STACK
+    (cd ${OUT_DIR} && \
+     make ${TOOL_ARGS} O=${OUT_DIR} olddefconfig)
+}
+
diff --git a/build.config.gki_kasan.aarch64 b/build.config.gki_kasan.aarch64
new file mode 100644
index 0000000..9fd2560
--- /dev/null
+++ b/build.config.gki_kasan.aarch64
@@ -0,0 +1,3 @@
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.aarch64
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.gki_kasan
diff --git a/build.config.gki_kasan.x86_64 b/build.config.gki_kasan.x86_64
new file mode 100644
index 0000000..eec6458
--- /dev/null
+++ b/build.config.gki_kasan.x86_64
@@ -0,0 +1,4 @@
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.x86_64
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.gki_kasan
+
diff --git a/build.config.gki_kprobes b/build.config.gki_kprobes
new file mode 100644
index 0000000..f1c6cf7
--- /dev/null
+++ b/build.config.gki_kprobes
@@ -0,0 +1,20 @@
+DEFCONFIG=gki_defconfig
+POST_DEFCONFIG_CMDS="check_defconfig && update_kprobes_config"
+function update_kprobes_config() {
+    ${KERNEL_DIR}/scripts/config --file ${OUT_DIR}/.config \
+         -d LTO \
+         -d LTO_CLANG_THIN \
+         -d CFI \
+         -d CFI_PERMISSIVE \
+         -d CFI_CLANG \
+         -e CONFIG_DYNAMIC_FTRACE \
+         -e CONFIG_FUNCTION_TRACER \
+         -e CONFIG_IRQSOFF_TRACER \
+         -e CONFIG_FUNCTION_PROFILER \
+         -e CONFIG_PREEMPT_TRACER \
+         -e CONFIG_CHECKPOINT_RESTORE \
+         -d CONFIG_RANDOMIZE_BASE
+    (cd ${OUT_DIR} && \
+     make ${TOOL_ARGS} O=${OUT_DIR} olddefconfig)
+}
+
diff --git a/build.config.gki_kprobes.aarch64 b/build.config.gki_kprobes.aarch64
new file mode 100644
index 0000000..627c217
--- /dev/null
+++ b/build.config.gki_kprobes.aarch64
@@ -0,0 +1,4 @@
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.aarch64
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.gki_kprobes
+
diff --git a/build.config.gki_kprobes.x86_64 b/build.config.gki_kprobes.x86_64
new file mode 100644
index 0000000..a1d3da7
--- /dev/null
+++ b/build.config.gki_kprobes.x86_64
@@ -0,0 +1,4 @@
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.x86_64
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.gki_kprobes
+
diff --git a/build.config.khwasan b/build.config.khwasan
new file mode 100644
index 0000000..c8e0c5e
--- /dev/null
+++ b/build.config.khwasan
@@ -0,0 +1,17 @@
+append_cmd POST_DEFCONFIG_CMDS update_khwasan_config
+
+function update_khwasan_config() {
+  ${KERNEL_DIR}/scripts/config --file ${OUT_DIR}/.config \
+    -e CONFIG_KASAN \
+    -d CONFIG_KASAN_HW_TAGS \
+    -e CONFIG_KASAN_SW_TAGS \
+    -e CONFIG_KASAN_OUTLINE \
+    -e CONFIG_KASAN_PANIC_ON_WARN \
+    -e CONFIG_KCOV \
+    -e CONFIG_PANIC_ON_WARN_DEFAULT_ENABLE \
+    -d CONFIG_RANDOMIZE_BASE \
+    --set-val CONFIG_FRAME_WARN 0 \
+    -d SHADOW_CALL_STACK
+  (cd ${OUT_DIR} && \
+   make O=${OUT_DIR} "${TOOL_ARGS[@]}" ${MAKE_ARGS} olddefconfig)
+}
diff --git a/build.config.rockpi4 b/build.config.rockpi4
new file mode 100644
index 0000000..424e568
--- /dev/null
+++ b/build.config.rockpi4
@@ -0,0 +1,19 @@
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common
+. ${ROOT_DIR}/${KERNEL_DIR}/build.config.aarch64
+TRIM_NONLISTED_KMI=""
+KMI_SYMBOL_LIST_STRICT_MODE=""
+
+BUILD_INITRAMFS=1
+LZ4_RAMDISK=1
+DEFCONFIG=rockpi4_gki_defconfig
+FRAGMENT_CONFIG=${KERNEL_DIR}/arch/arm64/configs/rockpi4_gki.fragment
+PRE_DEFCONFIG_CMDS="KCONFIG_CONFIG=${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG} ${ROOT_DIR}/${KERNEL_DIR}/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/gki_defconfig ${ROOT_DIR}/${FRAGMENT_CONFIG}"
+POST_DEFCONFIG_CMDS="rm ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG}"
+
+MAKE_GOALS="${MAKE_GOALS}
+rockchip/rk3399-rock-pi-4b.dtb
+"
+
+FILES="${FILES}
+arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dtb
+"
diff --git a/build.config.x86_64 b/build.config.x86_64
new file mode 100644
index 0000000..b5ac82b
--- /dev/null
+++ b/build.config.x86_64
@@ -0,0 +1,16 @@
+ARCH=x86_64
+MAKE_GOALS="
+bzImage
+modules
+"
+
+FILES="
+arch/x86/boot/bzImage
+vmlinux
+System.map
+vmlinux.symvers
+modules.builtin
+modules.builtin.modinfo
+"
+
+NDK_TRIPLE=x86_64-linux-android31
diff --git a/crypto/Kconfig b/crypto/Kconfig
index db260cc..a08d571 100644
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
@@ -33,6 +33,36 @@
 	  certification.  You should say no unless you know what
 	  this is.
 
+# CRYPTO_FIPS140 just enables the support in the kernel for loading fips140.ko.
+# The module still needs to be built and loaded if you need FIPS 140 compliance.
+config CRYPTO_FIPS140
+	def_bool y
+	depends on MODULES && ARM64 && ARM64_MODULE_PLTS
+
+config CRYPTO_FIPS140_MOD
+	bool "Enable FIPS 140 cryptographic module"
+	depends on LTO_CLANG && CRYPTO_FIPS140
+	help
+	  This option enables building a loadable module fips140.ko, which
+	  contains various crypto algorithms that are also built into vmlinux.
+	  At load time, this module overrides the built-in implementations of
+	  these algorithms with its implementations.  It also runs self-tests on
+	  these algorithms and verifies the integrity of its code and data.  If
+	  either of these steps fails, the kernel will panic.
+
+	  This module is intended to be loaded at early boot time in order to
+	  meet FIPS 140 and NIAP FPT_TST_EXT.1 requirements.  It shouldn't be
+	  used if you don't need to meet these requirements.
+
+config CRYPTO_FIPS140_MOD_EVAL_TESTING
+	bool "Enable evaluation testing features in FIPS 140 module"
+	depends on CRYPTO_FIPS140_MOD
+	help
+	  This option adds some features to the FIPS 140 module which are needed
+	  for lab evaluation testing of the module, e.g. support for injecting
+	  errors and support for a userspace interface to some of the module's
+	  services.  This option should not be enabled in production builds.
+
 config CRYPTO_ALGAPI
 	tristate
 	select CRYPTO_ALGAPI2
@@ -453,6 +483,15 @@
 	  PCBC: Propagating Cipher Block Chaining mode
 	  This block cipher algorithm is required for RxRPC.
 
+config CRYPTO_XCTR
+	tristate
+	select CRYPTO_SKCIPHER
+	select CRYPTO_MANAGER
+	help
+	  XCTR: XOR Counter mode. This blockcipher mode is a variant of CTR mode
+	  using XORs and little-endian addition rather than big-endian arithmetic.
+	  XCTR mode is used to implement HCTR2.
+
 config CRYPTO_XTS
 	tristate "XTS support"
 	select CRYPTO_SKCIPHER
@@ -516,6 +555,17 @@
 
 	  If unsure, say N.
 
+config CRYPTO_HCTR2
+	tristate "HCTR2 support"
+	select CRYPTO_XCTR
+	select CRYPTO_POLYVAL
+	select CRYPTO_MANAGER
+	help
+	  HCTR2 is a length-preserving encryption mode for storage encryption that
+	  is efficient on processors with instructions to accelerate AES and
+	  carryless multiplication, e.g. x86 processors with AES-NI and CLMUL, and
+	  ARM processors with the ARMv8 crypto extensions.
+
 config CRYPTO_ESSIV
 	tristate "ESSIV support for block encryption"
 	select CRYPTO_AUTHENC
@@ -734,6 +784,23 @@
 	  GHASH is the hash function used in GCM (Galois/Counter Mode).
 	  It is not a general-purpose cryptographic hash function.
 
+config CRYPTO_POLYVAL
+	tristate
+	select CRYPTO_GF128MUL
+	select CRYPTO_HASH
+	help
+	  POLYVAL is the hash function used in HCTR2.  It is not a general-purpose
+	  cryptographic hash function.
+
+config CRYPTO_POLYVAL_CLMUL_NI
+	tristate "POLYVAL hash function (CLMUL-NI accelerated)"
+	depends on X86 && 64BIT
+	select CRYPTO_POLYVAL
+	help
+	  This is the x86_64 CLMUL-NI accelerated implementation of POLYVAL. It is
+	  used to efficiently implement HCTR2 on x86-64 processors that support
+	  carry-less multiplication instructions.
+
 config CRYPTO_POLY1305
 	tristate "Poly1305 authenticator algorithm"
 	select CRYPTO_HASH
@@ -1094,7 +1161,7 @@
 	  In addition to AES cipher algorithm support, the acceleration
 	  for some popular block cipher mode is supported too, including
 	  ECB, CBC, LRW, XTS. The 64 bit version has additional
-	  acceleration for CTR.
+	  acceleration for CTR and XCTR.
 
 config CRYPTO_AES_SPARC64
 	tristate "AES cipher algorithms (SPARC64)"
diff --git a/crypto/Makefile b/crypto/Makefile
index 429591f..e726f53 100644
--- a/crypto/Makefile
+++ b/crypto/Makefile
@@ -92,6 +92,8 @@
 obj-$(CONFIG_CRYPTO_LRW) += lrw.o
 obj-$(CONFIG_CRYPTO_XTS) += xts.o
 obj-$(CONFIG_CRYPTO_CTR) += ctr.o
+obj-$(CONFIG_CRYPTO_XCTR) += xctr.o
+obj-$(CONFIG_CRYPTO_HCTR2) += hctr2.o
 obj-$(CONFIG_CRYPTO_KEYWRAP) += keywrap.o
 obj-$(CONFIG_CRYPTO_ADIANTUM) += adiantum.o
 obj-$(CONFIG_CRYPTO_NHPOLY1305) += nhpoly1305.o
@@ -165,6 +167,7 @@
 jitterentropy_rng-y := jitterentropy.o jitterentropy-kcapi.o
 obj-$(CONFIG_CRYPTO_TEST) += tcrypt.o
 obj-$(CONFIG_CRYPTO_GHASH) += ghash-generic.o
+obj-$(CONFIG_CRYPTO_POLYVAL) += polyval-generic.o
 obj-$(CONFIG_CRYPTO_USER_API) += af_alg.o
 obj-$(CONFIG_CRYPTO_USER_API_HASH) += algif_hash.o
 obj-$(CONFIG_CRYPTO_USER_API_SKCIPHER) += algif_skcipher.o
@@ -197,3 +200,58 @@
 obj-$(CONFIG_CRYPTO_HASH_INFO) += hash_info.o
 crypto_simd-y := simd.o
 obj-$(CONFIG_CRYPTO_SIMD) += crypto_simd.o
+
+ifneq ($(CONFIG_CRYPTO_FIPS140_MOD),)
+
+FIPS140_CFLAGS := -D__DISABLE_EXPORTS -DBUILD_FIPS140_KO -include fips140-defs.h
+
+CFLAGS_jitterentropy-fips.o := -O0
+KASAN_SANITIZE_jitterentropy-fips.o = n
+UBSAN_SANITIZE_jitterentropy-fips.o = n
+
+#
+# Create a separate FIPS archive containing a duplicate of each builtin generic
+# module that is in scope for FIPS 140-2 certification
+#
+crypto-fips-objs := drbg.o ecb.o cbc.o ctr.o cts.o gcm.o xts.o hmac.o cmac.o \
+		    gf128mul.o aes_generic.o lib-crypto-aes.o \
+		    jitterentropy.o jitterentropy-kcapi.o \
+		    sha1_generic.o sha256_generic.o sha512_generic.o \
+		    lib-memneq.o lib-sha1.o lib-crypto-sha256.o
+crypto-fips-objs := $(foreach o,$(crypto-fips-objs),$(o:.o=-fips.o))
+
+# get the arch to add its objects to $(crypto-fips-objs)
+include $(srctree)/arch/$(ARCH)/crypto/Kbuild.fips140
+
+extra-$(CONFIG_CRYPTO_FIPS140_MOD) += crypto-fips.a
+
+$(obj)/%-fips.o: KBUILD_CFLAGS += $(FIPS140_CFLAGS)
+$(obj)/%-fips.o: $(src)/%.c FORCE
+	$(call if_changed_rule,cc_o_c)
+$(obj)/lib-%-fips.o: $(srctree)/lib/%.c FORCE
+	$(call if_changed_rule,cc_o_c)
+$(obj)/lib-crypto-%-fips.o: $(srctree)/lib/crypto/%.c FORCE
+	$(call if_changed_rule,cc_o_c)
+
+$(obj)/crypto-fips.a: $(addprefix $(obj)/,$(crypto-fips-objs)) FORCE
+	$(call if_changed,ar_and_symver)
+
+fips140-objs := \
+	fips140-alg-registration.o \
+	fips140-module.o \
+	fips140-refs.o \
+	fips140-selftests.o \
+	crypto-fips.a
+fips140-$(CONFIG_CRYPTO_FIPS140_MOD_EVAL_TESTING) += \
+	fips140-eval-testing.o
+obj-m += fips140.o
+
+CFLAGS_fips140-alg-registration.o += $(FIPS140_CFLAGS)
+CFLAGS_fips140-module.o += $(FIPS140_CFLAGS)
+CFLAGS_fips140-selftests.o += $(FIPS140_CFLAGS)
+CFLAGS_fips140-eval-testing.o += $(FIPS140_CFLAGS)
+
+hostprogs-always-y := fips140_gen_hmac
+HOSTLDLIBS_fips140_gen_hmac := -lcrypto -lelf
+
+endif
diff --git a/crypto/algapi.c b/crypto/algapi.c
index 3920c4b..f3a3574 100644
--- a/crypto/algapi.c
+++ b/crypto/algapi.c
@@ -216,7 +216,87 @@
 }
 EXPORT_SYMBOL_GPL(crypto_remove_spawns);
 
-static struct crypto_larval *__crypto_register_alg(struct crypto_alg *alg)
+static void crypto_alg_finish_registration(struct crypto_alg *alg,
+					   bool fulfill_requests,
+					   struct list_head *algs_to_put)
+{
+	struct crypto_alg *q;
+
+	list_for_each_entry(q, &crypto_alg_list, cra_list) {
+		if (q == alg)
+			continue;
+
+		if (crypto_is_moribund(q))
+			continue;
+
+		if (crypto_is_larval(q)) {
+			struct crypto_larval *larval = (void *)q;
+
+			/*
+			 * Check to see if either our generic name or
+			 * specific name can satisfy the name requested
+			 * by the larval entry q.
+			 */
+			if (strcmp(alg->cra_name, q->cra_name) &&
+			    strcmp(alg->cra_driver_name, q->cra_name))
+				continue;
+
+			if (larval->adult)
+				continue;
+			if ((q->cra_flags ^ alg->cra_flags) & larval->mask)
+				continue;
+
+			if (fulfill_requests && crypto_mod_get(alg))
+				larval->adult = alg;
+			else
+				larval->adult = ERR_PTR(-EAGAIN);
+
+			continue;
+		}
+
+		if (strcmp(alg->cra_name, q->cra_name))
+			continue;
+
+		if (strcmp(alg->cra_driver_name, q->cra_driver_name) &&
+		    q->cra_priority > alg->cra_priority)
+			continue;
+
+		crypto_remove_spawns(q, algs_to_put, alg);
+	}
+
+	crypto_notify(CRYPTO_MSG_ALG_LOADED, alg);
+}
+
+static struct crypto_larval *crypto_alloc_test_larval(struct crypto_alg *alg)
+{
+	struct crypto_larval *larval;
+
+	if (!IS_ENABLED(CONFIG_CRYPTO_MANAGER) ||
+	    IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS) ||
+	    (alg->cra_flags & CRYPTO_ALG_INTERNAL))
+		return NULL; /* No self-test needed */
+
+	larval = crypto_larval_alloc(alg->cra_name,
+				     alg->cra_flags | CRYPTO_ALG_TESTED, 0);
+	if (IS_ERR(larval))
+		return larval;
+
+	larval->adult = crypto_mod_get(alg);
+	if (!larval->adult) {
+		kfree(larval);
+		return ERR_PTR(-ENOENT);
+	}
+
+	refcount_set(&larval->alg.cra_refcnt, 1);
+	memcpy(larval->alg.cra_driver_name, alg->cra_driver_name,
+	       CRYPTO_MAX_ALG_NAME);
+	larval->alg.cra_priority = alg->cra_priority;
+
+	return larval;
+}
+
+static struct crypto_larval *
+__crypto_register_alg(struct crypto_alg *alg, struct list_head *algs_to_put)
 {
 	struct crypto_alg *q;
 	struct crypto_larval *larval;
@@ -227,9 +307,6 @@
 
 	INIT_LIST_HEAD(&alg->cra_users);
 
-	/* No cheating! */
-	alg->cra_flags &= ~CRYPTO_ALG_TESTED;
-
 	ret = -EEXIST;
 
 	list_for_each_entry(q, &crypto_alg_list, cra_list) {
@@ -250,31 +327,27 @@
 			goto err;
 	}
 
-	larval = crypto_larval_alloc(alg->cra_name,
-				     alg->cra_flags | CRYPTO_ALG_TESTED, 0);
+	larval = crypto_alloc_test_larval(alg);
 	if (IS_ERR(larval))
 		goto out;
 
-	ret = -ENOENT;
-	larval->adult = crypto_mod_get(alg);
-	if (!larval->adult)
-		goto free_larval;
-
-	refcount_set(&larval->alg.cra_refcnt, 1);
-	memcpy(larval->alg.cra_driver_name, alg->cra_driver_name,
-	       CRYPTO_MAX_ALG_NAME);
-	larval->alg.cra_priority = alg->cra_priority;
-
 	list_add(&alg->cra_list, &crypto_alg_list);
-	list_add(&larval->alg.cra_list, &crypto_alg_list);
 
 	crypto_stats_init(alg);
 
+	if (larval) {
+		/* No cheating! */
+		alg->cra_flags &= ~CRYPTO_ALG_TESTED;
+
+		list_add(&larval->alg.cra_list, &crypto_alg_list);
+	} else {
+		alg->cra_flags |= CRYPTO_ALG_TESTED;
+		crypto_alg_finish_registration(alg, true, algs_to_put);
+	}
+
 out:
 	return larval;
 
-free_larval:
-	kfree(larval);
 err:
 	larval = ERR_PTR(ret);
 	goto out;
@@ -310,7 +383,10 @@
 
 	alg->cra_flags |= CRYPTO_ALG_TESTED;
 
-	/* Only satisfy larval waiters if we are the best. */
+	/*
+	 * If a higher-priority implementation of the same algorithm is
+	 * currently being tested, then don't fulfill request larvals.
+	 */
 	best = true;
 	list_for_each_entry(q, &crypto_alg_list, cra_list) {
 		if (crypto_is_moribund(q) || !crypto_is_larval(q))
@@ -325,47 +401,7 @@
 		}
 	}
 
-	list_for_each_entry(q, &crypto_alg_list, cra_list) {
-		if (q == alg)
-			continue;
-
-		if (crypto_is_moribund(q))
-			continue;
-
-		if (crypto_is_larval(q)) {
-			struct crypto_larval *larval = (void *)q;
-
-			/*
-			 * Check to see if either our generic name or
-			 * specific name can satisfy the name requested
-			 * by the larval entry q.
-			 */
-			if (strcmp(alg->cra_name, q->cra_name) &&
-			    strcmp(alg->cra_driver_name, q->cra_name))
-				continue;
-
-			if (larval->adult)
-				continue;
-			if ((q->cra_flags ^ alg->cra_flags) & larval->mask)
-				continue;
-
-			if (best && crypto_mod_get(alg))
-				larval->adult = alg;
-			else
-				larval->adult = ERR_PTR(-EAGAIN);
-
-			continue;
-		}
-
-		if (strcmp(alg->cra_name, q->cra_name))
-			continue;
-
-		if (strcmp(alg->cra_driver_name, q->cra_driver_name) &&
-		    q->cra_priority > alg->cra_priority)
-			continue;
-
-		crypto_remove_spawns(q, &list, alg);
-	}
+	crypto_alg_finish_registration(alg, best, &list);
 
 complete:
 	complete_all(&test->completion);
@@ -389,29 +425,11 @@
 }
 EXPORT_SYMBOL_GPL(crypto_remove_final);
 
-static void crypto_wait_for_test(struct crypto_larval *larval)
-{
-	int err;
-
-	err = crypto_probing_notify(CRYPTO_MSG_ALG_REGISTER, larval->adult);
-	if (err != NOTIFY_STOP) {
-		if (WARN_ON(err != NOTIFY_DONE))
-			goto out;
-		crypto_alg_tested(larval->alg.cra_driver_name, 0);
-	}
-
-	err = wait_for_completion_killable(&larval->completion);
-	WARN_ON(err);
-	if (!err)
-		crypto_notify(CRYPTO_MSG_ALG_LOADED, larval);
-
-out:
-	crypto_larval_kill(&larval->alg);
-}
-
 int crypto_register_alg(struct crypto_alg *alg)
 {
 	struct crypto_larval *larval;
+	LIST_HEAD(algs_to_put);
+	bool test_started = false;
 	int err;
 
 	alg->cra_flags &= ~CRYPTO_ALG_DEAD;
@@ -420,13 +438,18 @@
 		return err;
 
 	down_write(&crypto_alg_sem);
-	larval = __crypto_register_alg(alg);
+	larval = __crypto_register_alg(alg, &algs_to_put);
+	if (!IS_ERR_OR_NULL(larval)) {
+		test_started = crypto_boot_test_finished();
+		larval->test_started = test_started;
+	}
 	up_write(&crypto_alg_sem);
 
 	if (IS_ERR(larval))
 		return PTR_ERR(larval);
-
-	crypto_wait_for_test(larval);
+	if (test_started)
+		crypto_wait_for_test(larval);
+	crypto_remove_final(&algs_to_put);
 	return 0;
 }
 EXPORT_SYMBOL_GPL(crypto_register_alg);
@@ -604,6 +627,7 @@
 {
 	struct crypto_larval *larval;
 	struct crypto_spawn *spawn;
+	LIST_HEAD(algs_to_put);
 	int err;
 
 	err = crypto_check_alg(&inst->alg);
@@ -631,9 +655,11 @@
 		spawn = next;
 	}
 
-	larval = __crypto_register_alg(&inst->alg);
+	larval = __crypto_register_alg(&inst->alg, &algs_to_put);
 	if (IS_ERR(larval))
 		goto unlock;
+	else if (larval)
+		larval->test_started = true;
 
 	hlist_add_head(&inst->list, &tmpl->instances);
 	inst->tmpl = tmpl;
@@ -641,15 +667,12 @@
 unlock:
 	up_write(&crypto_alg_sem);
 
-	err = PTR_ERR(larval);
 	if (IS_ERR(larval))
-		goto err;
-
-	crypto_wait_for_test(larval);
-	err = 0;
-
-err:
-	return err;
+		return PTR_ERR(larval);
+	if (larval)
+		crypto_wait_for_test(larval);
+	crypto_remove_final(&algs_to_put);
+	return 0;
 }
 EXPORT_SYMBOL_GPL(crypto_register_instance);
 
@@ -1266,9 +1289,51 @@
 EXPORT_SYMBOL_GPL(crypto_stats_skcipher_decrypt);
 #endif
 
+static void __init crypto_start_tests(void)
+{
+	if (IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS))
+		return;
+
+	for (;;) {
+		struct crypto_larval *larval = NULL;
+		struct crypto_alg *q;
+
+		down_write(&crypto_alg_sem);
+
+		list_for_each_entry(q, &crypto_alg_list, cra_list) {
+			struct crypto_larval *l;
+
+			if (!crypto_is_larval(q))
+				continue;
+
+			l = (void *)q;
+
+			if (!crypto_is_test_larval(l))
+				continue;
+
+			if (l->test_started)
+				continue;
+
+			l->test_started = true;
+			larval = l;
+			break;
+		}
+
+		up_write(&crypto_alg_sem);
+
+		if (!larval)
+			break;
+
+		crypto_wait_for_test(larval);
+	}
+
+	set_crypto_boot_test_finished();
+}
+
 static int __init crypto_algapi_init(void)
 {
 	crypto_init_proc();
+	crypto_start_tests();
 	return 0;
 }
 
@@ -1277,7 +1342,11 @@
 	crypto_exit_proc();
 }
 
-module_init(crypto_algapi_init);
+/*
+ * We run this at late_initcall so that all the built-in algorithms
+ * have had a chance to register themselves first.
+ */
+late_initcall(crypto_algapi_init);
 module_exit(crypto_algapi_exit);
 
 MODULE_LICENSE("GPL");
diff --git a/crypto/algboss.c b/crypto/algboss.c
index 1814d2c..8dbf0f9 100644
--- a/crypto/algboss.c
+++ b/crypto/algboss.c
@@ -175,18 +175,10 @@
 {
 	struct crypto_test_param *param = data;
 	u32 type = param->type;
-	int err = 0;
-
-#ifdef CONFIG_CRYPTO_MANAGER_DISABLE_TESTS
-	goto skiptest;
-#endif
-
-	if (type & CRYPTO_ALG_TESTED)
-		goto skiptest;
+	int err;
 
 	err = alg_test(param->driver, param->alg, type, CRYPTO_ALG_TESTED);
 
-skiptest:
 	crypto_alg_tested(param->driver, err);
 
 	kfree(param);
@@ -197,7 +189,9 @@
 {
 	struct task_struct *thread;
 	struct crypto_test_param *param;
-	u32 type;
+
+	if (IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS))
+		return NOTIFY_DONE;
 
 	if (!try_module_get(THIS_MODULE))
 		goto err;
@@ -208,13 +202,7 @@
 
 	memcpy(param->driver, alg->cra_driver_name, sizeof(param->driver));
 	memcpy(param->alg, alg->cra_name, sizeof(param->alg));
-	type = alg->cra_flags;
-
-	/* Do not test internal algorithms. */
-	if (type & CRYPTO_ALG_INTERNAL)
-		type |= CRYPTO_ALG_TESTED;
-
-	param->type = type;
+	param->type = alg->cra_flags;
 
 	thread = kthread_run(cryptomgr_test, param, "cryptomgr_test");
 	if (IS_ERR(thread))
diff --git a/crypto/api.c b/crypto/api.c
index 5ffcd3a..fa29728 100644
--- a/crypto/api.c
+++ b/crypto/api.c
@@ -12,6 +12,7 @@
 
 #include <linux/err.h>
 #include <linux/errno.h>
+#include <linux/jump_label.h>
 #include <linux/kernel.h>
 #include <linux/kmod.h>
 #include <linux/module.h>
@@ -30,6 +31,11 @@
 BLOCKING_NOTIFIER_HEAD(crypto_chain);
 EXPORT_SYMBOL_GPL(crypto_chain);
 
+#ifndef CONFIG_CRYPTO_MANAGER_DISABLE_TESTS
+DEFINE_STATIC_KEY_FALSE(__crypto_boot_test_finished);
+EXPORT_SYMBOL_GPL(__crypto_boot_test_finished);
+#endif
+
 static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg);
 
 struct crypto_alg *crypto_mod_get(struct crypto_alg *alg)
@@ -47,11 +53,6 @@
 }
 EXPORT_SYMBOL_GPL(crypto_mod_put);
 
-static inline int crypto_is_test_larval(struct crypto_larval *larval)
-{
-	return larval->alg.cra_driver_name[0];
-}
-
 static struct crypto_alg *__crypto_alg_lookup(const char *name, u32 type,
 					      u32 mask)
 {
@@ -163,11 +164,49 @@
 }
 EXPORT_SYMBOL_GPL(crypto_larval_kill);
 
+void crypto_wait_for_test(struct crypto_larval *larval)
+{
+	int err;
+
+	err = crypto_probing_notify(CRYPTO_MSG_ALG_REGISTER, larval->adult);
+	if (WARN_ON_ONCE(err != NOTIFY_STOP))
+		goto out;
+
+	err = wait_for_completion_killable(&larval->completion);
+	WARN_ON(err);
+out:
+	crypto_larval_kill(&larval->alg);
+}
+EXPORT_SYMBOL_GPL(crypto_wait_for_test);
+
+static void crypto_start_test(struct crypto_larval *larval)
+{
+	if (!crypto_is_test_larval(larval))
+		return;
+
+	if (larval->test_started)
+		return;
+
+	down_write(&crypto_alg_sem);
+	if (larval->test_started) {
+		up_write(&crypto_alg_sem);
+		return;
+	}
+
+	larval->test_started = true;
+	up_write(&crypto_alg_sem);
+
+	crypto_wait_for_test(larval);
+}
+
 static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg)
 {
 	struct crypto_larval *larval = (void *)alg;
 	long timeout;
 
+	if (!crypto_boot_test_finished())
+		crypto_start_test(larval);
+
 	timeout = wait_for_completion_killable_timeout(
 		&larval->completion, 60 * HZ);
 
diff --git a/crypto/fips140-alg-registration.c b/crypto/fips140-alg-registration.c
new file mode 100644
index 0000000..03757f8
--- /dev/null
+++ b/crypto/fips140-alg-registration.c
@@ -0,0 +1,388 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Block crypto operations until tests complete
+ *
+ * Copyright 2021 Google LLC
+ *
+ * This file defines the fips140_crypto_register_*() functions, to which all
+ * calls to crypto_register_*() in the module are redirected.  These functions
+ * override the tfm initialization function of each algorithm to insert a wait
+ * for the module having completed its self-tests and integrity check.
+ *
+ * The exact field that we override depends on the algorithm type.  For
+ * algorithm types that have a strongly-typed initialization function pointer
+ * (e.g. skcipher), we must override that, since cra_init isn't guaranteed to be
+ * called for those despite the field being present in the base struct.  For the
+ * other algorithm types (e.g. "cipher") we must override cra_init.
+ *
+ * All of this applies to both normal algorithms and template instances.
+ *
+ * The purpose of all of this is to meet a FIPS requirement where the module
+ * must not produce any output from cryptographic algorithms until it completes
+ * its tests.  Technically this is impossible, but this solution meets the
+ * intent of the requirement, assuming the user makes a supported sequence of
+ * API calls.  Note that we can't simply run the tests before registering the
+ * algorithms, as the algorithms must be registered in order to run the tests.
+ *
+ * It would be much easier to handle this in the kernel's crypto API framework.
+ * Unfortunately, that was deemed insufficient because the module itself is
+ * required to do the enforcement.  What is *actually* required is still very
+ * vague, but the approach implemented here should meet the requirement.
+ */
+
+/*
+ * This file is the one place in fips140.ko that needs to call the kernel's real
+ * algorithm registration functions, so #undefine all the macros from
+ * fips140-defs.h so that the "fips140_" prefix doesn't automatically get added.
+ */
+#undef aead_register_instance
+#undef ahash_register_instance
+#undef crypto_register_aead
+#undef crypto_register_aeads
+#undef crypto_register_ahash
+#undef crypto_register_ahashes
+#undef crypto_register_alg
+#undef crypto_register_algs
+#undef crypto_register_rng
+#undef crypto_register_rngs
+#undef crypto_register_shash
+#undef crypto_register_shashes
+#undef crypto_register_skcipher
+#undef crypto_register_skciphers
+#undef shash_register_instance
+#undef skcipher_register_instance
+
+#include <crypto/algapi.h>
+#include <crypto/internal/aead.h>
+#include <crypto/internal/hash.h>
+#include <crypto/internal/rng.h>
+#include <crypto/internal/skcipher.h>
+#include <linux/xarray.h>
+
+#include "fips140-module.h"
+
+/* Indicates whether the self-tests and integrity check have completed */
+DECLARE_COMPLETION(fips140_tests_done);
+
+/* The thread running the self-tests and integrity check */
+struct task_struct *fips140_init_thread;
+
+/*
+ * Map from crypto_alg to original initialization function (possibly NULL)
+ *
+ * Note: unregistering an algorithm will leak its map entry, as we don't bother
+ * to remove it.  This should be fine since fips140.ko can't be unloaded.  The
+ * proper solution would be to store the original function pointer in a new
+ * field in 'struct crypto_alg', but that would require kernel support.
+ */
+static DEFINE_XARRAY(fips140_init_func_map);
+
+static bool fips140_ready(void)
+{
+	return completion_done(&fips140_tests_done);
+}
+
+/*
+ * Wait until crypto operations are allowed to proceed.  Return true if the
+ * tests are done, or false if the caller is the thread running the tests so it
+ * is allowed to proceed anyway.
+ */
+static bool fips140_wait_until_ready(struct crypto_alg *alg)
+{
+	if (fips140_ready())
+		return true;
+	/*
+	 * The thread running the tests must not wait.  Since tfms can only be
+	 * allocated in task context, we can reliably determine whether the
+	 * invocation is from that thread or not by checking 'current'.
+	 */
+	if (current == fips140_init_thread)
+		return false;
+
+	pr_info("blocking user of %s until tests complete\n",
+		alg->cra_driver_name);
+	wait_for_completion(&fips140_tests_done);
+	pr_info("tests done, allowing %s to proceed\n", alg->cra_driver_name);
+	return true;
+}
+
+static int fips140_store_init_function(struct crypto_alg *alg, void *func)
+{
+	void *ret;
+
+	/*
+	 * The XArray API requires 4-byte aligned values.  Although function
+	 * pointers in general aren't guaranteed to be 4-byte aligned, it should
+	 * be the case for the platforms this module is used on.
+	 */
+	if (WARN_ON((unsigned long)func & 3))
+		return -EINVAL;
+
+	ret = xa_store(&fips140_init_func_map, (unsigned long)alg, func,
+		       GFP_KERNEL);
+	return xa_err(ret);
+}
+
+/* Get the algorithm's original initialization function (possibly NULL) */
+static void *fips140_load_init_function(struct crypto_alg *alg)
+{
+	return xa_load(&fips140_init_func_map, (unsigned long)alg);
+}
+
+/* tfm initialization function overrides */
+
+static int fips140_alg_init_tfm(struct crypto_tfm *tfm)
+{
+	struct crypto_alg *alg = tfm->__crt_alg;
+	int (*cra_init)(struct crypto_tfm *tfm) =
+		fips140_load_init_function(alg);
+
+	if (fips140_wait_until_ready(alg))
+		WRITE_ONCE(alg->cra_init, cra_init);
+	return cra_init ? cra_init(tfm) : 0;
+}
+
+static int fips140_aead_init_tfm(struct crypto_aead *tfm)
+{
+	struct aead_alg *alg = crypto_aead_alg(tfm);
+	int (*init)(struct crypto_aead *tfm) =
+		fips140_load_init_function(&alg->base);
+
+	if (fips140_wait_until_ready(&alg->base))
+		WRITE_ONCE(alg->init, init);
+	return init ? init(tfm) : 0;
+}
+
+static int fips140_ahash_init_tfm(struct crypto_ahash *tfm)
+{
+	struct hash_alg_common *halg = crypto_hash_alg_common(tfm);
+	struct ahash_alg *alg = container_of(halg, struct ahash_alg, halg);
+	int (*init_tfm)(struct crypto_ahash *tfm) =
+		fips140_load_init_function(&halg->base);
+
+	if (fips140_wait_until_ready(&halg->base))
+		WRITE_ONCE(alg->init_tfm, init_tfm);
+	return init_tfm ? init_tfm(tfm) : 0;
+}
+
+static int fips140_shash_init_tfm(struct crypto_shash *tfm)
+{
+	struct shash_alg *alg = crypto_shash_alg(tfm);
+	int (*init_tfm)(struct crypto_shash *tfm) =
+		fips140_load_init_function(&alg->base);
+
+	if (fips140_wait_until_ready(&alg->base))
+		WRITE_ONCE(alg->init_tfm, init_tfm);
+	return init_tfm ? init_tfm(tfm) : 0;
+}
+
+static int fips140_skcipher_init_tfm(struct crypto_skcipher *tfm)
+{
+	struct skcipher_alg *alg = crypto_skcipher_alg(tfm);
+	int (*init)(struct crypto_skcipher *tfm) =
+		fips140_load_init_function(&alg->base);
+
+	if (fips140_wait_until_ready(&alg->base))
+		WRITE_ONCE(alg->init, init);
+	return init ? init(tfm) : 0;
+}
+
+/* Single algorithm registration */
+
+#define prepare_alg(alg, base_alg, field, wrapper_func)			\
+({									\
+	int err = 0;							\
+									\
+	if (!fips140_ready() && alg->field != wrapper_func) {		\
+		err = fips140_store_init_function(base_alg, alg->field);\
+		if (err == 0)						\
+			alg->field = wrapper_func;			\
+	}								\
+	err;								\
+})
+
+static int fips140_prepare_alg(struct crypto_alg *alg)
+{
+	/*
+	 * Override cra_init.  This is only for algorithm types like cipher and
+	 * rng that don't have a strongly-typed initialization function.
+	 */
+	return prepare_alg(alg, alg, cra_init, fips140_alg_init_tfm);
+}
+
+static int fips140_prepare_aead_alg(struct aead_alg *alg)
+{
+	return prepare_alg(alg, &alg->base, init, fips140_aead_init_tfm);
+}
+
+static int fips140_prepare_ahash_alg(struct ahash_alg *alg)
+{
+	return prepare_alg(alg, &alg->halg.base, init_tfm,
+			   fips140_ahash_init_tfm);
+}
+
+static int fips140_prepare_rng_alg(struct rng_alg *alg)
+{
+	/*
+	 * rng doesn't have a strongly-typed initialization function, so we must
+	 * treat rng algorithms as "generic" algorithms.
+	 */
+	return fips140_prepare_alg(&alg->base);
+}
+
+static int fips140_prepare_shash_alg(struct shash_alg *alg)
+{
+	return prepare_alg(alg, &alg->base, init_tfm, fips140_shash_init_tfm);
+}
+
+static int fips140_prepare_skcipher_alg(struct skcipher_alg *alg)
+{
+	return prepare_alg(alg, &alg->base, init, fips140_skcipher_init_tfm);
+}
+
+int fips140_crypto_register_alg(struct crypto_alg *alg)
+{
+	return fips140_prepare_alg(alg) ?: crypto_register_alg(alg);
+}
+
+int fips140_crypto_register_aead(struct aead_alg *alg)
+{
+	return fips140_prepare_aead_alg(alg) ?: crypto_register_aead(alg);
+}
+
+int fips140_crypto_register_ahash(struct ahash_alg *alg)
+{
+	return fips140_prepare_ahash_alg(alg) ?: crypto_register_ahash(alg);
+}
+
+int fips140_crypto_register_rng(struct rng_alg *alg)
+{
+	return fips140_prepare_rng_alg(alg) ?: crypto_register_rng(alg);
+}
+
+int fips140_crypto_register_shash(struct shash_alg *alg)
+{
+	return fips140_prepare_shash_alg(alg) ?: crypto_register_shash(alg);
+}
+
+int fips140_crypto_register_skcipher(struct skcipher_alg *alg)
+{
+	return fips140_prepare_skcipher_alg(alg) ?:
+		crypto_register_skcipher(alg);
+}
+
+/* Instance registration */
+
+int fips140_aead_register_instance(struct crypto_template *tmpl,
+				   struct aead_instance *inst)
+{
+	return fips140_prepare_aead_alg(&inst->alg) ?:
+		aead_register_instance(tmpl, inst);
+}
+
+int fips140_ahash_register_instance(struct crypto_template *tmpl,
+				    struct ahash_instance *inst)
+{
+	return fips140_prepare_ahash_alg(&inst->alg) ?:
+		ahash_register_instance(tmpl, inst);
+}
+
+int fips140_shash_register_instance(struct crypto_template *tmpl,
+				    struct shash_instance *inst)
+{
+	return fips140_prepare_shash_alg(&inst->alg) ?:
+		shash_register_instance(tmpl, inst);
+}
+
+int fips140_skcipher_register_instance(struct crypto_template *tmpl,
+				       struct skcipher_instance *inst)
+{
+	return fips140_prepare_skcipher_alg(&inst->alg) ?:
+		skcipher_register_instance(tmpl, inst);
+}
+
+/* Bulk algorithm registration */
+
+int fips140_crypto_register_algs(struct crypto_alg *algs, int count)
+{
+	int i;
+	int err;
+
+	for (i = 0; i < count; i++) {
+		err = fips140_prepare_alg(&algs[i]);
+		if (err)
+			return err;
+	}
+
+	return crypto_register_algs(algs, count);
+}
+
+int fips140_crypto_register_aeads(struct aead_alg *algs, int count)
+{
+	int i;
+	int err;
+
+	for (i = 0; i < count; i++) {
+		err = fips140_prepare_aead_alg(&algs[i]);
+		if (err)
+			return err;
+	}
+
+	return crypto_register_aeads(algs, count);
+}
+
+int fips140_crypto_register_ahashes(struct ahash_alg *algs, int count)
+{
+	int i;
+	int err;
+
+	for (i = 0; i < count; i++) {
+		err = fips140_prepare_ahash_alg(&algs[i]);
+		if (err)
+			return err;
+	}
+
+	return crypto_register_ahashes(algs, count);
+}
+
+int fips140_crypto_register_rngs(struct rng_alg *algs, int count)
+{
+	int i;
+	int err;
+
+	for (i = 0; i < count; i++) {
+		err = fips140_prepare_rng_alg(&algs[i]);
+		if (err)
+			return err;
+	}
+
+	return crypto_register_rngs(algs, count);
+}
+
+int fips140_crypto_register_shashes(struct shash_alg *algs, int count)
+{
+	int i;
+	int err;
+
+	for (i = 0; i < count; i++) {
+		err = fips140_prepare_shash_alg(&algs[i]);
+		if (err)
+			return err;
+	}
+
+	return crypto_register_shashes(algs, count);
+}
+
+int fips140_crypto_register_skciphers(struct skcipher_alg *algs, int count)
+{
+	int i;
+	int err;
+
+	for (i = 0; i < count; i++) {
+		err = fips140_prepare_skcipher_alg(&algs[i]);
+		if (err)
+			return err;
+	}
+
+	return crypto_register_skciphers(algs, count);
+}
diff --git a/crypto/fips140-defs.h b/crypto/fips140-defs.h
new file mode 100644
index 0000000..e64a2f7
--- /dev/null
+++ b/crypto/fips140-defs.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright 2021 Google LLC
+ *
+ * This file is automatically included by all files built into fips140.ko, via
+ * the "-include" compiler flag.  It redirects all calls to algorithm
+ * registration functions to the wrapper functions defined within the module.
+ */
+
+#define aead_register_instance		fips140_aead_register_instance
+#define ahash_register_instance		fips140_ahash_register_instance
+#define crypto_register_aead		fips140_crypto_register_aead
+#define crypto_register_aeads		fips140_crypto_register_aeads
+#define crypto_register_ahash		fips140_crypto_register_ahash
+#define crypto_register_ahashes		fips140_crypto_register_ahashes
+#define crypto_register_alg		fips140_crypto_register_alg
+#define crypto_register_algs		fips140_crypto_register_algs
+#define crypto_register_rng		fips140_crypto_register_rng
+#define crypto_register_rngs		fips140_crypto_register_rngs
+#define crypto_register_shash		fips140_crypto_register_shash
+#define crypto_register_shashes		fips140_crypto_register_shashes
+#define crypto_register_skcipher	fips140_crypto_register_skcipher
+#define crypto_register_skciphers	fips140_crypto_register_skciphers
+#define shash_register_instance		fips140_shash_register_instance
+#define skcipher_register_instance	fips140_skcipher_register_instance
diff --git a/crypto/fips140-eval-testing-uapi.h b/crypto/fips140-eval-testing-uapi.h
new file mode 100644
index 0000000..04e6cf633
--- /dev/null
+++ b/crypto/fips140-eval-testing-uapi.h
@@ -0,0 +1,30 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+
+#ifndef _CRYPTO_FIPS140_EVAL_TESTING_H
+#define _CRYPTO_FIPS140_EVAL_TESTING_H
+
+#include <linux/ioctl.h>
+
+/*
+ * This header defines the ioctls that are available on the fips140 character
+ * device.  These ioctls expose some of the module's services to userspace so
+ * that they can be tested by the FIPS certification lab; this is a required
+ * part of getting a FIPS 140 certification.  These ioctls do not have any other
+ * purpose, and they do not need to be present in production builds.
+ */
+
+/*
+ * Call the fips140_is_approved_service() function.  The argument must be the
+ * service name as a NUL-terminated string.  The return value will be 1 if
+ * fips140_is_approved_service() returned true, or 0 if it returned false.
+ */
+#define FIPS140_IOCTL_IS_APPROVED_SERVICE	_IO('F', 0)
+
+/*
+ * Call the fips140_module_version() function.  The argument must be a pointer
+ * to a buffer of size >= 256 chars.  The NUL-terminated string returned by
+ * fips140_module_version() will be written to this buffer.
+ */
+#define FIPS140_IOCTL_MODULE_VERSION		_IOR('F', 1, char[256])
+
+#endif /* _CRYPTO_FIPS140_EVAL_TESTING_H */
diff --git a/crypto/fips140-eval-testing.c b/crypto/fips140-eval-testing.c
new file mode 100644
index 0000000..ea3cd65
--- /dev/null
+++ b/crypto/fips140-eval-testing.c
@@ -0,0 +1,129 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright 2021 Google LLC
+ *
+ * This file can optionally be built into fips140.ko in order to support certain
+ * types of testing that the FIPS lab has to do to evaluate the module.  It
+ * should not be included in production builds of the module.
+ */
+
+/*
+ * We have to redefine inline to mean always_inline, so that _copy_to_user()
+ * gets inlined.  This is needed for it to be placed into the correct section.
+ * See fips140_copy_to_user().
+ *
+ * We also need to undefine BUILD_FIPS140_KO to allow the use of the code
+ * patching which copy_to_user() requires.
+ */
+#undef inline
+#define inline inline __attribute__((__always_inline__)) __gnu_inline \
+       __inline_maybe_unused notrace
+#undef BUILD_FIPS140_KO
+
+#include <linux/cdev.h>
+#include <linux/fs.h>
+#include <linux/module.h>
+#include <linux/slab.h>
+
+#include "fips140-module.h"
+#include "fips140-eval-testing-uapi.h"
+
+/*
+ * This option allows deliberately failing the self-tests for a particular
+ * algorithm.
+ */
+static char *fips140_fail_selftest;
+module_param_named(fail_selftest, fips140_fail_selftest, charp, 0);
+
+/* This option allows deliberately failing the integrity check. */
+static bool fips140_fail_integrity_check;
+module_param_named(fail_integrity_check, fips140_fail_integrity_check, bool, 0);
+
+static dev_t fips140_devnum;
+static struct cdev fips140_cdev;
+
+/* Inject a self-test failure (via corrupting the result) if requested. */
+void fips140_inject_selftest_failure(const char *impl, u8 *result)
+{
+	if (fips140_fail_selftest && strcmp(impl, fips140_fail_selftest) == 0)
+		result[0] ^= 0xff;
+}
+
+/* Inject an integrity check failure (via corrupting the text) if requested. */
+void fips140_inject_integrity_failure(u8 *textcopy)
+{
+	if (fips140_fail_integrity_check)
+		textcopy[0] ^= 0xff;
+}
+
+static long fips140_ioctl_is_approved_service(unsigned long arg)
+{
+	const char *service_name = strndup_user((const char __user *)arg, 256);
+	long ret;
+
+	if (IS_ERR(service_name))
+		return PTR_ERR(service_name);
+
+	ret = fips140_is_approved_service(service_name);
+
+	kfree(service_name);
+	return ret;
+}
+
+/*
+ * Code in fips140.ko is covered by an integrity check by default, and this
+ * check breaks if copy_to_user() is called.  This is because copy_to_user() is
+ * an inline function that relies on code patching.  However, since this is
+ * "evaluation testing" code which isn't included in the production builds of
+ * fips140.ko, it's acceptable to just exclude it from the integrity check.
+ */
+static noinline unsigned long __section("text.._fips140_unchecked")
+fips140_copy_to_user(void __user *to, const void *from, unsigned long n)
+{
+	return copy_to_user(to, from, n);
+}
+
+static long fips140_ioctl_module_version(unsigned long arg)
+{
+	const char *version = fips140_module_version();
+	size_t len = strlen(version) + 1;
+
+	if (len > 256)
+		return -EOVERFLOW;
+
+	if (fips140_copy_to_user((void __user *)arg, version, len))
+		return -EFAULT;
+
+	return 0;
+}
+
+static long fips140_ioctl(struct file *file, unsigned int cmd,
+			  unsigned long arg)
+{
+	switch (cmd) {
+	case FIPS140_IOCTL_IS_APPROVED_SERVICE:
+		return fips140_ioctl_is_approved_service(arg);
+	case FIPS140_IOCTL_MODULE_VERSION:
+		return fips140_ioctl_module_version(arg);
+	default:
+		return -ENOTTY;
+	}
+}
+
+static const struct file_operations fips140_fops = {
+	.unlocked_ioctl = fips140_ioctl,
+};
+
+bool fips140_eval_testing_init(void)
+{
+	if (alloc_chrdev_region(&fips140_devnum, 1, 1, "fips140") != 0) {
+		pr_err("failed to allocate device number\n");
+		return false;
+	}
+	cdev_init(&fips140_cdev, &fips140_fops);
+	if (cdev_add(&fips140_cdev, fips140_devnum, 1) != 0) {
+		pr_err("failed to add fips140 character device\n");
+		return false;
+	}
+	return true;
+}
diff --git a/crypto/fips140-generated-testvecs.h b/crypto/fips140-generated-testvecs.h
new file mode 100644
index 0000000..d4ccd77
--- /dev/null
+++ b/crypto/fips140-generated-testvecs.h
@@ -0,0 +1,68 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/* Copyright 2021 Google LLC */
+
+/*
+ * This header was automatically generated by gen_fips140_testvecs.py.
+ * Don't edit it directly.
+ */
+
+static const u8 fips_message[32] __initconst =
+	"This is a 32-byte test message.";
+
+static const u8 fips_aes_key[16] __initconst = "128-bit AES key";
+
+static const u8 fips_aes_iv[16] __initconst = "ABCDEFGHIJKLMNOP";
+
+static const u8 fips_aes_cbc_ciphertext[32] __initconst =
+	"\x4c\x3e\xeb\x38\x8d\x1f\x28\xfd\xa2\x3b\xa9\xda\x36\xf2\x99\xe2"
+	"\x84\x84\x66\x37\x0a\x53\x68\x2f\x17\x95\x8d\x7f\xca\x5a\x68\x4e";
+
+static const u8 fips_aes_ecb_ciphertext[32] __initconst =
+	"\xc1\x9d\xe6\xb8\xb2\x90\xff\xfe\xf2\x77\x18\xb0\x55\xd3\xee\xa9"
+	"\xe2\x6f\x4a\x32\x67\xfd\xb7\xa5\x2f\x4b\x6e\x1a\x86\x2b\x6e\x3a";
+
+static const u8 fips_aes_ctr_ciphertext[32] __initconst =
+	"\xed\x06\x2c\xd0\xbc\x48\xd1\x2e\x6a\x4e\x13\xe9\xaa\x17\x40\xca"
+	"\x00\xb4\xaf\x3b\x4f\xee\x73\xd6\x6c\x41\xf6\x4c\x8b\x0d\x6a\x0f";
+
+static const u8 fips_aes_gcm_assoc[22] __initconst = "associated data string";
+
+static const u8 fips_aes_gcm_ciphertext[48] __initconst =
+	"\x37\x88\x3e\x1d\x58\x50\xda\x10\x07\xeb\x52\xdf\xea\x0a\x54\xd4"
+	"\x44\xbf\x88\x2a\xf3\x03\x03\x84\xaf\x8b\x96\xbd\xea\x65\x60\x6f"
+	"\x82\xfa\x51\xf4\x28\xad\x0c\xf1\xce\x0f\x91\xdd\x1a\x4c\x77\x5f";
+
+static const u8 fips_aes_xts_key[32] __initconst =
+	"This is an AES-128-XTS key.";
+
+static const u8 fips_aes_xts_ciphertext[32] __initconst =
+	"\x4f\xf7\x9f\x6c\x00\xa8\x30\xdf\xff\xf3\x25\x9c\xf6\x0b\x1b\xfd"
+	"\x3b\x34\x5e\x67\x7c\xf8\x8b\x68\x9a\xb9\x5a\x89\x51\x51\xbd\x35";
+
+static const u8 fips_aes_cmac_digest[16] __initconst =
+	"\x0c\x05\xda\x64\x51\x0c\x8e\x6c\x86\x52\x46\xa8\x2d\xb1\xfe\x0f";
+
+static const u8 fips_hmac_key[16] __initconst = "128-bit HMAC key";
+
+static const u8 fips_sha1_digest[20] __initconst =
+	"\x1b\x78\xc7\x4b\xd5\xd4\x83\xb1\x58\xc5\x96\x83\x4f\x16\x8d\x15"
+	"\xb4\xaa\x22\x8c";
+
+static const u8 fips_sha256_digest[32] __initconst =
+	"\x4e\x11\x83\x0c\x53\x80\x1e\x5f\x9b\x38\x33\x38\xe8\x74\x43\xb0"
+	"\xc1\x3a\xbe\xbf\x75\xf0\x12\x0f\x21\x33\xf5\x16\x33\xf1\xb0\x81";
+
+static const u8 fips_hmac_sha256_digest[32] __initconst =
+	"\x63\x0e\xb5\x73\x79\xfc\xaf\x5f\x86\xe3\xaf\xf0\xc8\x36\xef\xd5"
+	"\x35\x8d\x40\x25\x38\xb3\x65\x72\x98\xf3\x59\xd8\x1e\x54\x4c\xa1";
+
+static const u8 fips_sha512_digest[64] __initconst =
+	"\x32\xe0\x44\x23\xbd\xe3\xec\x28\xbf\xf1\x34\x11\xd5\xae\xbf\xd5"
+	"\xc0\x8e\xb5\xa1\x04\xef\x2f\x07\x84\xf1\xd9\x83\x0f\x6c\x31\xab"
+	"\xf7\xe7\x57\xfa\xf7\xae\xf0\x6f\xb2\x16\x08\x32\xcf\xc7\xef\x35"
+	"\xb3\x3b\x51\xb9\xfd\xe7\xff\x5e\xb2\x8b\xc6\x79\xe6\x14\x04\xb4";
+
+/*
+ * This header was automatically generated by gen_fips140_testvecs.py.
+ * Don't edit it directly.
+ */
diff --git a/crypto/fips140-module.c b/crypto/fips140-module.c
new file mode 100644
index 0000000..efc8baf
--- /dev/null
+++ b/crypto/fips140-module.c
@@ -0,0 +1,603 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright 2021 Google LLC
+ * Author: Ard Biesheuvel <ardb@google.com>
+ *
+ * This file is the core of fips140.ko, which contains various crypto algorithms
+ * that are also built into vmlinux.  At load time, this module overrides the
+ * built-in implementations of these algorithms with its implementations.  It
+ * also runs self-tests on these algorithms and verifies the integrity of its
+ * code and data.  If either of these steps fails, the kernel will panic.
+ *
+ * This module is intended to be loaded at early boot time in order to meet
+ * FIPS 140 and NIAP FPT_TST_EXT.1 requirements.  It shouldn't be used if you
+ * don't need to meet these requirements.
+ */
+
+#undef __DISABLE_EXPORTS
+
+#include <linux/ctype.h>
+#include <linux/module.h>
+#include <crypto/aead.h>
+#include <crypto/aes.h>
+#include <crypto/hash.h>
+#include <crypto/sha2.h>
+#include <crypto/skcipher.h>
+#include <crypto/rng.h>
+#include <trace/hooks/fips140.h>
+
+#include "fips140-module.h"
+#include "internal.h"
+
+/*
+ * FIPS 140-2 prefers the use of HMAC with a public key over a plain hash.
+ */
+u8 __initdata fips140_integ_hmac_key[] = "The quick brown fox jumps over the lazy dog";
+
+/* this is populated by the build tool */
+u8 __initdata fips140_integ_hmac_digest[SHA256_DIGEST_SIZE];
+
+const u32 __initcall_start_marker __section(".initcalls._start");
+const u32 __initcall_end_marker __section(".initcalls._end");
+
+const u8 __fips140_text_start __section(".text.._start");
+const u8 __fips140_text_end __section(".text.._end");
+
+const u8 __fips140_rodata_start __section(".rodata.._start");
+const u8 __fips140_rodata_end __section(".rodata.._end");
+
+/*
+ * We need this little detour to prevent Clang from detecting out of bounds
+ * accesses to __fips140_text_start and __fips140_rodata_start, which only exist
+ * to delineate the section, and so their sizes are not relevant to us.
+ */
+const u32 *__initcall_start = &__initcall_start_marker;
+
+const u8 *__text_start = &__fips140_text_start;
+const u8 *__rodata_start = &__fips140_rodata_start;
+
+/*
+ * The list of the crypto API algorithms (by cra_name) that will be unregistered
+ * by this module, in preparation for the module registering its own
+ * implementation(s) of them.
+ *
+ * All algorithms that will be declared as FIPS-approved in the module
+ * certification must be listed here, to ensure that the non-FIPS-approved
+ * implementations of these algorithms in the kernel image aren't used.
+ *
+ * For every algorithm in this list, the module should contain all the "same"
+ * implementations that the kernel image does, including the C implementation as
+ * well as any architecture-specific implementations.  This is needed to avoid
+ * performance regressions as well as the possibility of an algorithm being
+ * unavailable on some CPUs.  E.g., "xcbc(aes)" isn't in this list, as the
+ * module doesn't have a C implementation of it (and it won't be FIPS-approved).
+ *
+ * Due to a quirk in the FIPS requirements, "gcm(aes)" isn't actually able to be
+ * FIPS-approved.  However, we otherwise treat it the same as the algorithms
+ * that will be FIPS-approved, and therefore it's included in this list.
+ *
+ * When adding a new algorithm here, make sure to consider whether it needs a
+ * self-test added to fips140_selftests[] as well.
+ */
+static const struct {
+	const char *name;
+	bool approved;
+} fips140_algs_to_replace[] = {
+	{"aes", true},
+
+	{"cmac(aes)", true},
+	{"ecb(aes)", true},
+
+	{"cbc(aes)", true},
+	{"cts(cbc(aes))", true},
+	{"ctr(aes)", true},
+	{"xts(aes)", true},
+	{"gcm(aes)", false},
+
+	{"hmac(sha1)", true},
+	{"hmac(sha224)", true},
+	{"hmac(sha256)", true},
+	{"hmac(sha384)", true},
+	{"hmac(sha512)", true},
+	{"sha1", true},
+	{"sha224", true},
+	{"sha256", true},
+	{"sha384", true},
+	{"sha512", true},
+
+	{"stdrng", true},
+	{"jitterentropy_rng", false},
+};
+
+static bool __init fips140_should_unregister_alg(struct crypto_alg *alg)
+{
+	int i;
+
+	/*
+	 * All software algorithms are synchronous, hardware algorithms must
+	 * be covered by their own FIPS 140 certification.
+	 */
+	if (alg->cra_flags & CRYPTO_ALG_ASYNC)
+		return false;
+
+	for (i = 0; i < ARRAY_SIZE(fips140_algs_to_replace); i++) {
+		if (!strcmp(alg->cra_name, fips140_algs_to_replace[i].name))
+			return true;
+	}
+	return false;
+}
+
+/*
+ * FIPS 140-3 service indicators.  FIPS 140-3 requires that all services
+ * "provide an indicator when the service utilises an approved cryptographic
+ * algorithm, security function or process in an approved manner".  What this
+ * means is very debatable, even with the help of the FIPS 140-3 Implementation
+ * Guidance document.  However, it was decided that a function that takes in an
+ * algorithm name and returns whether that algorithm is approved or not will
+ * meet this requirement.  Note, this relies on some properties of the module:
+ *
+ *   - The module doesn't distinguish between "services" and "algorithms"; its
+ *     services are simply its algorithms.
+ *
+ *   - The status of an approved algorithm is never non-approved, since (a) the
+ *     module doesn't support operating in a non-approved mode, such as a mode
+ *     where the self-tests are skipped; (b) there are no cases where the module
+ *     supports non-approved settings for approved algorithms, e.g.
+ *     non-approved key sizes; and (c) this function isn't available to be
+ *     called until the module_init function has completed, so it's guaranteed
+ *     that the self-tests and integrity check have already passed.
+ *
+ *   - The module does support some non-approved algorithms, so a single static
+ *     indicator ("return true;") would not be acceptable.
+ */
+bool fips140_is_approved_service(const char *name)
+{
+	size_t i;
+
+	for (i = 0; i < ARRAY_SIZE(fips140_algs_to_replace); i++) {
+		if (!strcmp(name, fips140_algs_to_replace[i].name))
+			return fips140_algs_to_replace[i].approved;
+	}
+	return false;
+}
+EXPORT_SYMBOL_GPL(fips140_is_approved_service);
+
+/*
+ * FIPS 140-3 requires that modules provide a "service" that outputs "the name
+ * or module identifier and the versioning information that can be correlated
+ * with a validation record".  This function meets that requirement.
+ *
+ * Note: the module also prints this same information to the kernel log when it
+ * is loaded.  That might meet the requirement by itself.  However, given the
+ * vagueness of what counts as a "service", we provide this function too, just
+ * in case the certification lab or CMVP is happier with an explicit function.
+ *
+ * Note: /sys/modules/fips140/scmversion also provides versioning information
+ * about the module.  However that file just shows the bare git commit ID, so it
+ * probably isn't sufficient to meet the FIPS requirement, which seems to want
+ * the "official" module name and version number used in the FIPS certificate.
+ */
+const char *fips140_module_version(void)
+{
+	return FIPS140_MODULE_NAME " " FIPS140_MODULE_VERSION;
+}
+EXPORT_SYMBOL_GPL(fips140_module_version);
+
+static LIST_HEAD(existing_live_algos);
+
+/*
+ * Release a list of algorithms which have been removed from crypto_alg_list.
+ *
+ * Note that even though the list is a private list, we have to hold
+ * crypto_alg_sem while iterating through it because crypto_unregister_alg() may
+ * run concurrently (as we haven't taken a reference to the algorithms on the
+ * list), and crypto_unregister_alg() will remove the algorithm from whichever
+ * list it happens to be on, while holding crypto_alg_sem.  That's okay, since
+ * in that case crypto_unregister_alg() will handle the crypto_alg_put().
+ */
+static void fips140_remove_final(struct list_head *list)
+{
+	struct crypto_alg *alg;
+	struct crypto_alg *n;
+
+	/*
+	 * We need to take crypto_alg_sem to safely traverse the list (see
+	 * comment above), but we have to drop it when doing each
+	 * crypto_alg_put() as that may take crypto_alg_sem again.
+	 */
+	down_write(&crypto_alg_sem);
+	list_for_each_entry_safe(alg, n, list, cra_list) {
+		list_del_init(&alg->cra_list);
+		up_write(&crypto_alg_sem);
+
+		crypto_alg_put(alg);
+
+		down_write(&crypto_alg_sem);
+	}
+	up_write(&crypto_alg_sem);
+}
+
+static void __init unregister_existing_fips140_algos(void)
+{
+	struct crypto_alg *alg, *tmp;
+	LIST_HEAD(remove_list);
+	LIST_HEAD(spawns);
+
+	down_write(&crypto_alg_sem);
+
+	/*
+	 * Find all registered algorithms that we care about, and move them to a
+	 * private list so that they are no longer exposed via the algo lookup
+	 * API. Subsequently, we will unregister them if they are not in active
+	 * use. If they are, we can't fully unregister them but we can ensure
+	 * that new users won't use them.
+	 */
+	list_for_each_entry_safe(alg, tmp, &crypto_alg_list, cra_list) {
+		if (!fips140_should_unregister_alg(alg))
+			continue;
+		if (refcount_read(&alg->cra_refcnt) == 1) {
+			/*
+			 * This algorithm is not currently in use, but there may
+			 * be template instances holding references to it via
+			 * spawns. So let's tear it down like
+			 * crypto_unregister_alg() would, but without releasing
+			 * the lock, to prevent races with concurrent TFM
+			 * allocations.
+			 */
+			alg->cra_flags |= CRYPTO_ALG_DEAD;
+			list_move(&alg->cra_list, &remove_list);
+			crypto_remove_spawns(alg, &spawns, NULL);
+		} else {
+			/*
+			 * This algorithm is live, i.e. it has TFMs allocated,
+			 * so we can't fully unregister it.  It's not necessary
+			 * to dynamically redirect existing users to the FIPS
+			 * code, given that they can't be relying on FIPS
+			 * certified crypto in the first place.  However, we do
+			 * need to ensure that new users will get the FIPS code.
+			 *
+			 * In most cases, setting alg->cra_priority to 0
+			 * achieves this.  However, that isn't enough for
+			 * algorithms like "hmac(sha256)" that need to be
+			 * instantiated from a template, since existing
+			 * algorithms always take priority over a template being
+			 * instantiated.  Therefore, we move the algorithm to
+			 * a private list so that algorithm lookups won't find
+			 * it anymore.  To further distinguish it from the FIPS
+			 * algorithms, we also append "+orig" to its name.
+			 */
+			pr_info("found already-live algorithm '%s' ('%s')\n",
+				alg->cra_name, alg->cra_driver_name);
+			alg->cra_priority = 0;
+			strlcat(alg->cra_name, "+orig", CRYPTO_MAX_ALG_NAME);
+			strlcat(alg->cra_driver_name, "+orig",
+				CRYPTO_MAX_ALG_NAME);
+			list_move(&alg->cra_list, &existing_live_algos);
+		}
+	}
+	up_write(&crypto_alg_sem);
+
+	fips140_remove_final(&remove_list);
+	fips140_remove_final(&spawns);
+}
+
+static void __init unapply_text_relocations(void *section, int section_size,
+					    const Elf64_Rela *rela, int numrels)
+{
+	while (numrels--) {
+		u32 *place = (u32 *)(section + rela->r_offset);
+
+		BUG_ON(rela->r_offset >= section_size);
+
+		switch (ELF64_R_TYPE(rela->r_info)) {
+#ifdef CONFIG_ARM64
+		case R_AARCH64_JUMP26:
+		case R_AARCH64_CALL26:
+			*place &= ~GENMASK(25, 0);
+			break;
+
+		case R_AARCH64_ADR_PREL_LO21:
+		case R_AARCH64_ADR_PREL_PG_HI21:
+		case R_AARCH64_ADR_PREL_PG_HI21_NC:
+			*place &= ~(GENMASK(30, 29) | GENMASK(23, 5));
+			break;
+
+		case R_AARCH64_ADD_ABS_LO12_NC:
+		case R_AARCH64_LDST8_ABS_LO12_NC:
+		case R_AARCH64_LDST16_ABS_LO12_NC:
+		case R_AARCH64_LDST32_ABS_LO12_NC:
+		case R_AARCH64_LDST64_ABS_LO12_NC:
+		case R_AARCH64_LDST128_ABS_LO12_NC:
+			*place &= ~GENMASK(21, 10);
+			break;
+		default:
+			pr_err("unhandled relocation type %llu\n",
+			       ELF64_R_TYPE(rela->r_info));
+			BUG();
+#else
+#error
+#endif
+		}
+		rela++;
+	}
+}
+
+static void __init unapply_rodata_relocations(void *section, int section_size,
+					      const Elf64_Rela *rela, int numrels)
+{
+	while (numrels--) {
+		void *place = section + rela->r_offset;
+
+		BUG_ON(rela->r_offset >= section_size);
+
+		switch (ELF64_R_TYPE(rela->r_info)) {
+#ifdef CONFIG_ARM64
+		case R_AARCH64_ABS64:
+			*(u64 *)place = 0;
+			break;
+		default:
+			pr_err("unhandled relocation type %llu\n",
+			       ELF64_R_TYPE(rela->r_info));
+			BUG();
+#else
+#error
+#endif
+		}
+		rela++;
+	}
+}
+
+extern struct {
+	u32	offset;
+	u32	count;
+} fips140_rela_text, fips140_rela_rodata;
+
+static bool __init check_fips140_module_hmac(void)
+{
+	struct crypto_shash *tfm = NULL;
+	SHASH_DESC_ON_STACK(desc, dontcare);
+	u8 digest[SHA256_DIGEST_SIZE];
+	void *textcopy, *rodatacopy;
+	int textsize, rodatasize;
+	bool ok = false;
+	int err;
+
+	textsize	= &__fips140_text_end - &__fips140_text_start;
+	rodatasize	= &__fips140_rodata_end - &__fips140_rodata_start;
+
+	pr_info("text size  : 0x%x\n", textsize);
+	pr_info("rodata size: 0x%x\n", rodatasize);
+
+	textcopy = kmalloc(textsize + rodatasize, GFP_KERNEL);
+	if (!textcopy) {
+		pr_err("Failed to allocate memory for copy of .text\n");
+		goto out;
+	}
+
+	rodatacopy = textcopy + textsize;
+
+	memcpy(textcopy, __text_start, textsize);
+	memcpy(rodatacopy, __rodata_start, rodatasize);
+
+	// apply the relocations in reverse on the copies of .text  and .rodata
+	unapply_text_relocations(textcopy, textsize,
+				 offset_to_ptr(&fips140_rela_text.offset),
+				 fips140_rela_text.count);
+
+	unapply_rodata_relocations(rodatacopy, rodatasize,
+				  offset_to_ptr(&fips140_rela_rodata.offset),
+				  fips140_rela_rodata.count);
+
+	fips140_inject_integrity_failure(textcopy);
+
+	tfm = crypto_alloc_shash("hmac(sha256)", 0, 0);
+	if (IS_ERR(tfm)) {
+		pr_err("failed to allocate hmac tfm (%ld)\n", PTR_ERR(tfm));
+		tfm = NULL;
+		goto out;
+	}
+	desc->tfm = tfm;
+
+	pr_info("using '%s' for integrity check\n",
+		crypto_shash_driver_name(tfm));
+
+	err = crypto_shash_setkey(tfm, fips140_integ_hmac_key,
+				  strlen(fips140_integ_hmac_key)) ?:
+	      crypto_shash_init(desc) ?:
+	      crypto_shash_update(desc, textcopy, textsize) ?:
+	      crypto_shash_finup(desc, rodatacopy, rodatasize, digest);
+
+	/* Zeroizing this is important; see the comment below. */
+	shash_desc_zero(desc);
+
+	if (err) {
+		pr_err("failed to calculate hmac shash (%d)\n", err);
+		goto out;
+	}
+
+	if (memcmp(digest, fips140_integ_hmac_digest, sizeof(digest))) {
+		pr_err("provided_digest  : %*phN\n", (int)sizeof(digest),
+		       fips140_integ_hmac_digest);
+
+		pr_err("calculated digest: %*phN\n", (int)sizeof(digest),
+		       digest);
+		goto out;
+	}
+	ok = true;
+out:
+	/*
+	 * FIPS 140-3 requires that all "temporary value(s) generated during the
+	 * integrity test" be zeroized (ref: FIPS 140-3 IG 9.7.B).  There is no
+	 * technical reason to do this given that these values are public
+	 * information, but this is the requirement so we follow it.
+	 */
+	crypto_free_shash(tfm);
+	memzero_explicit(digest, sizeof(digest));
+	kfree_sensitive(textcopy);
+	return ok;
+}
+
+static void fips140_sha256(void *p, const u8 *data, unsigned int len, u8 *out,
+			   int *hook_inuse)
+{
+	sha256(data, len, out);
+	*hook_inuse = 1;
+}
+
+static void fips140_aes_expandkey(void *p, struct crypto_aes_ctx *ctx,
+				  const u8 *in_key, unsigned int key_len,
+				  int *err)
+{
+	*err = aes_expandkey(ctx, in_key, key_len);
+}
+
+static void fips140_aes_encrypt(void *priv, const struct crypto_aes_ctx *ctx,
+				u8 *out, const u8 *in, int *hook_inuse)
+{
+	aes_encrypt(ctx, out, in);
+	*hook_inuse = 1;
+}
+
+static void fips140_aes_decrypt(void *priv, const struct crypto_aes_ctx *ctx,
+				u8 *out, const u8 *in, int *hook_inuse)
+{
+	aes_decrypt(ctx, out, in);
+	*hook_inuse = 1;
+}
+
+static bool update_fips140_library_routines(void)
+{
+	int ret;
+
+	ret = register_trace_android_vh_sha256(fips140_sha256, NULL) ?:
+	      register_trace_android_vh_aes_expandkey(fips140_aes_expandkey, NULL) ?:
+	      register_trace_android_vh_aes_encrypt(fips140_aes_encrypt, NULL) ?:
+	      register_trace_android_vh_aes_decrypt(fips140_aes_decrypt, NULL);
+
+	return ret == 0;
+}
+
+/*
+ * Initialize the FIPS 140 module.
+ *
+ * Note: this routine iterates over the contents of the initcall section, which
+ * consists of an array of function pointers that was emitted by the linker
+ * rather than the compiler. This means that these function pointers lack the
+ * usual CFI stubs that the compiler emits when CFI codegen is enabled. So
+ * let's disable CFI locally when handling the initcall array, to avoid
+ * surpises.
+ */
+static int __init __attribute__((__no_sanitize__("cfi")))
+fips140_init(void)
+{
+	const u32 *initcall;
+
+	pr_info("loading " FIPS140_MODULE_NAME " " FIPS140_MODULE_VERSION "\n");
+	fips140_init_thread = current;
+
+	unregister_existing_fips140_algos();
+
+	/* iterate over all init routines present in this module and call them */
+	for (initcall = __initcall_start + 1;
+	     initcall < &__initcall_end_marker;
+	     initcall++) {
+		int (*init)(void) = offset_to_ptr(initcall);
+		int err = init();
+
+		/*
+		 * ENODEV is expected from initcalls that only register
+		 * algorithms that depend on non-present CPU features.  Besides
+		 * that, errors aren't expected here.
+		 */
+		if (err && err != -ENODEV) {
+			pr_err("initcall %ps() failed: %d\n", init, err);
+			goto panic;
+		}
+	}
+
+	if (!fips140_run_selftests())
+		goto panic;
+
+	/*
+	 * It may seem backward to perform the integrity check last, but this
+	 * is intentional: the check itself uses hmac(sha256) which is one of
+	 * the algorithms that are replaced with versions from this module, and
+	 * the integrity check must use the replacement version.  Also, to be
+	 * ready for FIPS 140-3, the integrity check algorithm must have already
+	 * been self-tested.
+	 */
+
+	if (!check_fips140_module_hmac()) {
+		pr_crit("integrity check failed -- giving up!\n");
+		goto panic;
+	}
+	pr_info("integrity check passed\n");
+
+	complete_all(&fips140_tests_done);
+
+	if (!update_fips140_library_routines())
+		goto panic;
+
+	if (!fips140_eval_testing_init())
+		goto panic;
+
+	pr_info("module successfully loaded\n");
+	return 0;
+
+panic:
+	panic("FIPS 140 module load failure");
+}
+
+module_init(fips140_init);
+
+MODULE_IMPORT_NS(CRYPTO_INTERNAL);
+MODULE_LICENSE("GPL v2");
+
+/*
+ * Crypto-related helper functions, reproduced here so that they will be
+ * covered by the FIPS 140 integrity check.
+ *
+ * Non-cryptographic helper functions such as memcpy() can be excluded from the
+ * FIPS module, but there is ambiguity about other helper functions like
+ * __crypto_xor() and crypto_inc() which aren't cryptographic by themselves,
+ * but are more closely associated with cryptography than e.g. memcpy(). To
+ * err on the side of caution, we include copies of these in the FIPS module.
+ */
+void __crypto_xor(u8 *dst, const u8 *src1, const u8 *src2, unsigned int len)
+{
+	while (len >= 8) {
+		*(u64 *)dst = *(u64 *)src1 ^  *(u64 *)src2;
+		dst += 8;
+		src1 += 8;
+		src2 += 8;
+		len -= 8;
+	}
+
+	while (len >= 4) {
+		*(u32 *)dst = *(u32 *)src1 ^ *(u32 *)src2;
+		dst += 4;
+		src1 += 4;
+		src2 += 4;
+		len -= 4;
+	}
+
+	while (len >= 2) {
+		*(u16 *)dst = *(u16 *)src1 ^ *(u16 *)src2;
+		dst += 2;
+		src1 += 2;
+		src2 += 2;
+		len -= 2;
+	}
+
+	while (len--)
+		*dst++ = *src1++ ^ *src2++;
+}
+
+void crypto_inc(u8 *a, unsigned int size)
+{
+	a += size;
+
+	while (size--)
+		if (++*--a)
+			break;
+}
diff --git a/crypto/fips140-module.h b/crypto/fips140-module.h
new file mode 100644
index 0000000..a2a6319
--- /dev/null
+++ b/crypto/fips140-module.h
@@ -0,0 +1,50 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright 2021 Google LLC
+ */
+
+#ifndef _CRYPTO_FIPS140_MODULE_H
+#define _CRYPTO_FIPS140_MODULE_H
+
+#include <linux/completion.h>
+#include <linux/module.h>
+#include <generated/utsrelease.h>
+
+#undef pr_fmt
+#define pr_fmt(fmt) "fips140: " fmt
+
+/*
+ * This is the name and version number of the module that are shown on the FIPS
+ * certificate.
+ */
+#define FIPS140_MODULE_NAME "Android Kernel Cryptographic Module"
+#define FIPS140_MODULE_VERSION UTS_RELEASE
+
+/* fips140-eval-testing.c */
+#ifdef CONFIG_CRYPTO_FIPS140_MOD_EVAL_TESTING
+void fips140_inject_selftest_failure(const char *impl, u8 *result);
+void fips140_inject_integrity_failure(u8 *textcopy);
+bool fips140_eval_testing_init(void);
+#else
+static inline void fips140_inject_selftest_failure(const char *impl, u8 *result)
+{
+}
+static inline void fips140_inject_integrity_failure(u8 *textcopy)
+{
+}
+static inline bool fips140_eval_testing_init(void)
+{
+	return true;
+}
+#endif /* !CONFIG_CRYPTO_FIPS140_MOD_EVAL_TESTING */
+
+/* fips140-module.c */
+extern struct completion fips140_tests_done;
+extern struct task_struct *fips140_init_thread;
+bool fips140_is_approved_service(const char *name);
+const char *fips140_module_version(void);
+
+/* fips140-selftests.c */
+bool __init __must_check fips140_run_selftests(void);
+
+#endif /* _CRYPTO_FIPS140_MODULE_H */
diff --git a/crypto/fips140-refs.S b/crypto/fips140-refs.S
new file mode 100644
index 0000000..fcbd527
--- /dev/null
+++ b/crypto/fips140-refs.S
@@ -0,0 +1,34 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright 2021 Google LLC
+ * Author: Ard Biesheuvel <ardb@google.com>
+ *
+ * This file contains the variable definitions that will be used by the FIPS140
+ * s/w module to access the RELA sections in the ELF image. These are used to
+ * apply the relocations applied by the module loader in reverse, so that we
+ * can reconstruct the image that was used to derive the HMAC used by the
+ * integrity check.
+ *
+ * The first .long of each entry will be populated by the module loader based
+ * on the actual placement of the respective RELA section in memory. The second
+ * .long carries the RELA entry count, and is populated by the host tool that
+ * also generates the HMAC of the contents of .text and .rodata.
+ */
+
+#include <linux/linkage.h>
+#include <asm/assembler.h>
+
+	.section	".init.rodata", "a"
+
+	.align	2
+	.globl	fips140_rela_text
+fips140_rela_text:
+	.weak	__sec_rela_text
+	.long	__sec_rela_text - .
+	.long	0
+
+	.globl	fips140_rela_rodata
+fips140_rela_rodata:
+	.weak	__sec_rela_rodata
+	.long	__sec_rela_rodata - .
+	.long	0
diff --git a/crypto/fips140-selftests.c b/crypto/fips140-selftests.c
new file mode 100644
index 0000000..9663b1a
--- /dev/null
+++ b/crypto/fips140-selftests.c
@@ -0,0 +1,998 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright 2021 Google LLC
+ *
+ * Authors: Elena Petrova <lenaptr@google.com>,
+ *          Eric Biggers <ebiggers@google.com>
+ *
+ * Self-tests of fips140.ko cryptographic functionality.  These are run at
+ * module load time to fulfill FIPS 140 and NIAP FPT_TST_EXT.1 requirements.
+ *
+ * The actual requirements for these self-tests are somewhat vague, but
+ * section 9 ("Self-Tests") of the FIPS 140-2 Implementation Guidance document
+ * (https://csrc.nist.gov/csrc/media/projects/cryptographic-module-validation-program/documents/fips140-2/fips1402ig.pdf)
+ * is somewhat helpful.  Basically, all implementations of all FIPS approved
+ * algorithms (including modes of operation) must be tested.  However:
+ *
+ *   - There are provisions for skipping tests that are already sufficiently
+ *     covered by other tests.  E.g., HMAC-SHA256 may cover SHA-256.
+ *
+ *   - Only one test vector is required per algorithm, and it can be generated
+ *     by any known-good implementation or taken from any official document.
+ *
+ *   - For ciphers, both encryption and decryption must be tested.
+ *
+ *   - Only one key size per algorithm needs to be tested.
+ *
+ * There is some ambiguity about whether all implementations of each algorithm
+ * must be tested, or whether it is sufficient to test just the highest priority
+ * implementation.  To be safe we test all implementations, except ones that can
+ * be excluded by one of the rules above.
+ *
+ * See fips140_selftests[] for the list of tests we've selected.  Currently, all
+ * our test vectors except the AES-CBC-CTS and DRBG ones were generated by the
+ * script tools/crypto/gen_fips140_testvecs.py, using the known-good
+ * implementations in the Python packages hashlib, pycryptodome, and
+ * cryptography.
+ *
+ * Note that we don't reuse the upstream crypto API's self-tests
+ * (crypto/testmgr.{c,h}), for several reasons:
+ *
+ *   - To meet FIPS requirements, the self-tests must be located within the FIPS
+ *     module boundary (fips140.ko).  But testmgr is integrated into the crypto
+ *     API framework and can't be extracted into the module.
+ *
+ *   - testmgr is much more heavyweight than required for FIPS and NIAP; it
+ *     tests more algorithms and does more tests per algorithm, as it's meant to
+ *     do proper testing and not just meet certification requirements.  We need
+ *     tests that can run with minimal overhead on every boot-up.
+ *
+ *   - Despite being more heavyweight in general, testmgr doesn't test the
+ *     SHA-256 and AES library APIs, despite that being needed here.
+ */
+#include <crypto/aead.h>
+#include <crypto/aes.h>
+#include <crypto/drbg.h>
+#include <crypto/hash.h>
+#include <crypto/rng.h>
+#include <crypto/sha2.h>
+#include <crypto/skcipher.h>
+
+#include "fips140-module.h"
+
+/* Test vector for an AEAD algorithm */
+struct aead_testvec {
+	const u8 *key;
+	size_t key_size;
+	const u8 *iv;
+	size_t iv_size;
+	const u8 *assoc;
+	size_t assoc_size;
+	const u8 *plaintext;
+	size_t plaintext_size;
+	const u8 *ciphertext;
+	size_t ciphertext_size;
+};
+
+/* Test vector for a length-preserving encryption algorithm */
+struct skcipher_testvec {
+	const u8 *key;
+	size_t key_size;
+	const u8 *iv;
+	size_t iv_size;
+	const u8 *plaintext;
+	const u8 *ciphertext;
+	size_t message_size;
+};
+
+/* Test vector for a hash algorithm */
+struct hash_testvec {
+	const u8 *key;
+	size_t key_size;
+	const u8 *message;
+	size_t message_size;
+	const u8 *digest;
+	size_t digest_size;
+};
+
+/* Test vector for a DRBG algorithm */
+struct drbg_testvec {
+	const u8 *entropy;
+	size_t entropy_size;
+	const u8 *pers;
+	size_t pers_size;
+	const u8 *entpr_a;
+	const u8 *entpr_b;
+	size_t entpr_size;
+	const u8 *add_a;
+	const u8 *add_b;
+	size_t add_size;
+	const u8 *output;
+	size_t out_size;
+};
+
+struct fips_test {
+	/* The name of the algorithm, in crypto API syntax */
+	const char *alg;
+
+	/*
+	 * The optional list of implementations to test.  @func will be called
+	 * once per implementation, or once with @alg if this list is empty.
+	 * The implementation names must be given in crypto API syntax, or in
+	 * the case of a library implementation should have "-lib" appended.
+	 */
+	const char *impls[8];
+
+	/*
+	 * The test function.  It should execute a known-answer test on an
+	 * algorithm implementation, using the below test vector.
+	 */
+	int __must_check (*func)(const struct fips_test *test,
+				 const char *impl);
+
+	/* The test vector, with a format specific to the type of algorithm */
+	union {
+		struct aead_testvec aead;
+		struct skcipher_testvec skcipher;
+		struct hash_testvec hash;
+		struct drbg_testvec drbg;
+	};
+};
+
+/* Maximum IV size (in bytes) among any algorithm tested here */
+#define MAX_IV_SIZE	16
+
+static int __init __must_check
+fips_check_result(u8 *result, const u8 *expected_result, size_t result_size,
+		  const char *impl, const char *operation)
+{
+	fips140_inject_selftest_failure(impl, result);
+	if (memcmp(result, expected_result, result_size) != 0) {
+		pr_err("wrong result from %s %s\n", impl, operation);
+		return -EBADMSG;
+	}
+	return 0;
+}
+
+/*
+ * None of the algorithms should be ASYNC, as the FIPS module doesn't register
+ * any ASYNC algorithms.  (The ASYNC flag is only declared by hardware
+ * algorithms, which would need their own FIPS certification.)
+ *
+ * Ideally we would verify alg->cra_module == THIS_MODULE here as well, but that
+ * doesn't work because the files are compiled as built-in code.
+ */
+static int __init __must_check
+fips_validate_alg(const struct crypto_alg *alg)
+{
+	if (alg->cra_flags & CRYPTO_ALG_ASYNC) {
+		pr_err("unexpectedly got async implementation of %s (%s)\n",
+		       alg->cra_name, alg->cra_driver_name);
+		return -EINVAL;
+	}
+	return 0;
+}
+
+static int __init __must_check
+fips_handle_alloc_tfm_error(const char *impl, int err)
+{
+	if (err == -ENOENT) {
+		/*
+		 * The requested implementation of the algorithm wasn't found.
+		 * This is expected if the CPU lacks a feature the
+		 * implementation needs, such as the ARMv8 Crypto Extensions.
+		 *
+		 * When this happens, the implementation isn't available for
+		 * use, so we can't test it, nor do we need to.  So we just skip
+		 * the test.
+		 */
+		pr_info("%s is unavailable (no CPU support?), skipping testing it\n",
+			impl);
+		return 0;
+	}
+	pr_err("failed to allocate %s tfm: %d\n", impl, err);
+	return err;
+}
+
+static int __init __must_check
+fips_test_aes_library(const struct fips_test *test, const char *impl)
+{
+	const struct skcipher_testvec *vec = &test->skcipher;
+	struct crypto_aes_ctx ctx;
+	u8 block[AES_BLOCK_SIZE];
+	int err;
+
+	if (WARN_ON(vec->message_size != AES_BLOCK_SIZE))
+		return -EINVAL;
+
+	err = aes_expandkey(&ctx, vec->key, vec->key_size);
+	if (err) {
+		pr_err("aes_expandkey() failed: %d\n", err);
+		return err;
+	}
+	aes_encrypt(&ctx, block, vec->plaintext);
+	err = fips_check_result(block, vec->ciphertext, AES_BLOCK_SIZE,
+				impl, "encryption");
+	if (err)
+		return err;
+	aes_decrypt(&ctx, block, block);
+	return fips_check_result(block, vec->plaintext, AES_BLOCK_SIZE,
+				 impl, "decryption");
+}
+
+/* Test a length-preserving symmetric cipher using the crypto_skcipher API. */
+static int __init __must_check
+fips_test_skcipher(const struct fips_test *test, const char *impl)
+{
+	const struct skcipher_testvec *vec = &test->skcipher;
+	struct crypto_skcipher *tfm;
+	struct skcipher_request *req = NULL;
+	u8 *message = NULL;
+	struct scatterlist sg;
+	u8 iv[MAX_IV_SIZE];
+	int err;
+
+	if (WARN_ON(vec->iv_size > MAX_IV_SIZE))
+		return -EINVAL;
+	if (WARN_ON(vec->message_size <= 0))
+		return -EINVAL;
+
+	tfm = crypto_alloc_skcipher(impl, 0, 0);
+	if (IS_ERR(tfm))
+		return fips_handle_alloc_tfm_error(impl, PTR_ERR(tfm));
+	err = fips_validate_alg(&crypto_skcipher_alg(tfm)->base);
+	if (err)
+		goto out;
+	if (crypto_skcipher_ivsize(tfm) != vec->iv_size) {
+		pr_err("%s has wrong IV size\n", impl);
+		err = -EINVAL;
+		goto out;
+	}
+
+	req = skcipher_request_alloc(tfm, GFP_KERNEL);
+	message = kmemdup(vec->plaintext, vec->message_size, GFP_KERNEL);
+	if (!req || !message) {
+		err = -ENOMEM;
+		goto out;
+	}
+	sg_init_one(&sg, message, vec->message_size);
+
+	skcipher_request_set_callback(req, CRYPTO_TFM_REQ_MAY_SLEEP,
+				      NULL, NULL);
+	skcipher_request_set_crypt(req, &sg, &sg, vec->message_size, iv);
+
+	err = crypto_skcipher_setkey(tfm, vec->key, vec->key_size);
+	if (err) {
+		pr_err("failed to set %s key: %d\n", impl, err);
+		goto out;
+	}
+
+	/* Encrypt the plaintext, then verify the resulting ciphertext. */
+	memcpy(iv, vec->iv, vec->iv_size);
+	err = crypto_skcipher_encrypt(req);
+	if (err) {
+		pr_err("%s encryption failed: %d\n", impl, err);
+		goto out;
+	}
+	err = fips_check_result(message, vec->ciphertext, vec->message_size,
+				impl, "encryption");
+	if (err)
+		goto out;
+
+	/* Decrypt the ciphertext, then verify the resulting plaintext. */
+	memcpy(iv, vec->iv, vec->iv_size);
+	err = crypto_skcipher_decrypt(req);
+	if (err) {
+		pr_err("%s decryption failed: %d\n", impl, err);
+		goto out;
+	}
+	err = fips_check_result(message, vec->plaintext, vec->message_size,
+				impl, "decryption");
+out:
+	kfree(message);
+	skcipher_request_free(req);
+	crypto_free_skcipher(tfm);
+	return err;
+}
+
+/* Test an AEAD using the crypto_aead API. */
+static int __init __must_check
+fips_test_aead(const struct fips_test *test, const char *impl)
+{
+	const struct aead_testvec *vec = &test->aead;
+	const int tag_size = vec->ciphertext_size - vec->plaintext_size;
+	struct crypto_aead *tfm;
+	struct aead_request *req = NULL;
+	u8 *assoc = NULL;
+	u8 *message = NULL;
+	struct scatterlist sg[2];
+	int sg_idx = 0;
+	u8 iv[MAX_IV_SIZE];
+	int err;
+
+	if (WARN_ON(vec->iv_size > MAX_IV_SIZE))
+		return -EINVAL;
+	if (WARN_ON(vec->ciphertext_size <= vec->plaintext_size))
+		return -EINVAL;
+
+	tfm = crypto_alloc_aead(impl, 0, 0);
+	if (IS_ERR(tfm))
+		return fips_handle_alloc_tfm_error(impl, PTR_ERR(tfm));
+	err = fips_validate_alg(&crypto_aead_alg(tfm)->base);
+	if (err)
+		goto out;
+	if (crypto_aead_ivsize(tfm) != vec->iv_size) {
+		pr_err("%s has wrong IV size\n", impl);
+		err = -EINVAL;
+		goto out;
+	}
+
+	req = aead_request_alloc(tfm, GFP_KERNEL);
+	assoc = kmemdup(vec->assoc, vec->assoc_size, GFP_KERNEL);
+	message = kzalloc(vec->ciphertext_size, GFP_KERNEL);
+	if (!req || !assoc || !message) {
+		err = -ENOMEM;
+		goto out;
+	}
+	memcpy(message, vec->plaintext, vec->plaintext_size);
+
+	sg_init_table(sg, ARRAY_SIZE(sg));
+	if (vec->assoc_size)
+		sg_set_buf(&sg[sg_idx++], assoc, vec->assoc_size);
+	sg_set_buf(&sg[sg_idx++], message, vec->ciphertext_size);
+
+	aead_request_set_ad(req, vec->assoc_size);
+	aead_request_set_callback(req, CRYPTO_TFM_REQ_MAY_SLEEP, NULL, NULL);
+
+	err = crypto_aead_setkey(tfm, vec->key, vec->key_size);
+	if (err) {
+		pr_err("failed to set %s key: %d\n", impl, err);
+		goto out;
+	}
+
+	err = crypto_aead_setauthsize(tfm, tag_size);
+	if (err) {
+		pr_err("failed to set %s authentication tag size: %d\n",
+		       impl, err);
+		goto out;
+	}
+
+	/*
+	 * Encrypt the plaintext, then verify the resulting ciphertext (which
+	 * includes the authentication tag).
+	 */
+	memcpy(iv, vec->iv, vec->iv_size);
+	aead_request_set_crypt(req, sg, sg, vec->plaintext_size, iv);
+	err = crypto_aead_encrypt(req);
+	if (err) {
+		pr_err("%s encryption failed: %d\n", impl, err);
+		goto out;
+	}
+	err = fips_check_result(message, vec->ciphertext, vec->ciphertext_size,
+				impl, "encryption");
+	if (err)
+		goto out;
+
+	/*
+	 * Decrypt the ciphertext (which includes the authentication tag), then
+	 * verify the resulting plaintext.
+	 */
+	memcpy(iv, vec->iv, vec->iv_size);
+	aead_request_set_crypt(req, sg, sg, vec->ciphertext_size, iv);
+	err = crypto_aead_decrypt(req);
+	if (err) {
+		pr_err("%s decryption failed: %d\n", impl, err);
+		goto out;
+	}
+	err = fips_check_result(message, vec->plaintext, vec->plaintext_size,
+				impl, "decryption");
+out:
+	kfree(message);
+	kfree(assoc);
+	aead_request_free(req);
+	crypto_free_aead(tfm);
+	return err;
+}
+
+/*
+ * Test a hash algorithm using the crypto_shash API.
+ *
+ * Note that we don't need to test the crypto_ahash API too, since none of the
+ * hash algorithms in the FIPS module have the ASYNC flag, and thus there will
+ * be no hash algorithms that can be accessed only through crypto_ahash.
+ */
+static int __init __must_check
+fips_test_hash(const struct fips_test *test, const char *impl)
+{
+	const struct hash_testvec *vec = &test->hash;
+	struct crypto_shash *tfm;
+	u8 digest[HASH_MAX_DIGESTSIZE];
+	int err;
+
+	if (WARN_ON(vec->digest_size > HASH_MAX_DIGESTSIZE))
+		return -EINVAL;
+
+	tfm = crypto_alloc_shash(impl, 0, 0);
+	if (IS_ERR(tfm))
+		return fips_handle_alloc_tfm_error(impl, PTR_ERR(tfm));
+	err = fips_validate_alg(&crypto_shash_alg(tfm)->base);
+	if (err)
+		goto out;
+	if (crypto_shash_digestsize(tfm) != vec->digest_size) {
+		pr_err("%s has wrong digest size\n", impl);
+		err = -EINVAL;
+		goto out;
+	}
+
+	if (vec->key) {
+		err = crypto_shash_setkey(tfm, vec->key, vec->key_size);
+		if (err) {
+			pr_err("failed to set %s key: %d\n", impl, err);
+			goto out;
+		}
+	}
+
+	err = crypto_shash_tfm_digest(tfm, vec->message, vec->message_size,
+				      digest);
+	if (err) {
+		pr_err("%s digest computation failed: %d\n", impl, err);
+		goto out;
+	}
+	err = fips_check_result(digest, vec->digest, vec->digest_size,
+				impl, "digest");
+out:
+	crypto_free_shash(tfm);
+	return err;
+}
+
+static int __init __must_check
+fips_test_sha256_library(const struct fips_test *test, const char *impl)
+{
+	const struct hash_testvec *vec = &test->hash;
+	u8 digest[SHA256_DIGEST_SIZE];
+
+	if (WARN_ON(vec->digest_size != SHA256_DIGEST_SIZE))
+		return -EINVAL;
+
+	sha256(vec->message, vec->message_size, digest);
+	return fips_check_result(digest, vec->digest, vec->digest_size,
+				 impl, "digest");
+}
+
+/* Test a DRBG using the crypto_rng API. */
+static int __init __must_check
+fips_test_drbg(const struct fips_test *test, const char *impl)
+{
+	const struct drbg_testvec *vec = &test->drbg;
+	struct crypto_rng *rng;
+	u8 *output = NULL;
+	struct drbg_test_data test_data;
+	struct drbg_string addtl, pers, testentropy;
+	int err;
+
+	rng = crypto_alloc_rng(impl, 0, 0);
+	if (IS_ERR(rng))
+		return fips_handle_alloc_tfm_error(impl, PTR_ERR(rng));
+	err = fips_validate_alg(&crypto_rng_alg(rng)->base);
+	if (err)
+		goto out;
+
+	output = kzalloc(vec->out_size, GFP_KERNEL);
+	if (!output) {
+		err = -ENOMEM;
+		goto out;
+	}
+
+	/*
+	 * Initialize the DRBG with the entropy and personalization string given
+	 * in the test vector.
+	 */
+	test_data.testentropy = &testentropy;
+	drbg_string_fill(&testentropy, vec->entropy, vec->entropy_size);
+	drbg_string_fill(&pers, vec->pers, vec->pers_size);
+	err = crypto_drbg_reset_test(rng, &pers, &test_data);
+	if (err) {
+		pr_err("failed to reset %s\n", impl);
+		goto out;
+	}
+
+	/*
+	 * Generate some random bytes using the additional data string provided
+	 * in the test vector.  Also use the additional entropy if provided
+	 * (relevant for the prediction-resistant DRBG variants only).
+	 */
+	drbg_string_fill(&addtl, vec->add_a, vec->add_size);
+	if (vec->entpr_size) {
+		drbg_string_fill(&testentropy, vec->entpr_a, vec->entpr_size);
+		err = crypto_drbg_get_bytes_addtl_test(rng, output,
+						       vec->out_size, &addtl,
+						       &test_data);
+	} else {
+		err = crypto_drbg_get_bytes_addtl(rng, output, vec->out_size,
+						  &addtl);
+	}
+	if (err) {
+		pr_err("failed to get bytes from %s (try 1): %d\n",
+		       impl, err);
+		goto out;
+	}
+
+	/*
+	 * Do the same again, using a second additional data string, and (when
+	 * applicable) a second additional entropy string.
+	 */
+	drbg_string_fill(&addtl, vec->add_b, vec->add_size);
+	if (test->drbg.entpr_size) {
+		drbg_string_fill(&testentropy, vec->entpr_b, vec->entpr_size);
+		err = crypto_drbg_get_bytes_addtl_test(rng, output,
+						       vec->out_size, &addtl,
+						       &test_data);
+	} else {
+		err = crypto_drbg_get_bytes_addtl(rng, output, vec->out_size,
+						  &addtl);
+	}
+	if (err) {
+		pr_err("failed to get bytes from %s (try 2): %d\n",
+		       impl, err);
+		goto out;
+	}
+
+	/* Check that the DRBG generated the expected output. */
+	err = fips_check_result(output, vec->output, vec->out_size,
+				impl, "get_bytes");
+out:
+	kfree(output);
+	crypto_free_rng(rng);
+	return err;
+}
+
+/* Include the test vectors generated by the Python script. */
+#include "fips140-generated-testvecs.h"
+
+/*
+ * List of all self-tests.  Keep this in sync with fips140_algorithms[].
+ *
+ * When possible, we have followed the FIPS 140-2 Implementation Guidance (IG)
+ * document when creating this list of tests.  The result is intended to be a
+ * list of tests that is near-minimal (and thus minimizes runtime overhead)
+ * while complying with all requirements.  For additional details, see the
+ * comment at the beginning of this file.
+ */
+static const struct fips_test fips140_selftests[] __initconst = {
+	/*
+	 * Test for the AES library API.
+	 *
+	 * Since the AES library API may use its own AES implementation and the
+	 * module provides no support for composing it with a mode of operation
+	 * (it's just plain AES), we must test it directly.
+	 *
+	 * In contrast, we don't need to directly test the "aes" ciphers that
+	 * are accessible through the crypto_cipher API (e.g. "aes-ce"), as they
+	 * are covered indirectly by AES-CMAC and AES-ECB tests.
+	 */
+	{
+		.alg		= "aes",
+		.impls		= {"aes-lib"},
+		.func		= fips_test_aes_library,
+		.skcipher	= {
+			.key		= fips_aes_key,
+			.key_size	= sizeof(fips_aes_key),
+			.plaintext	= fips_message,
+			.ciphertext	= fips_aes_ecb_ciphertext,
+			.message_size	= 16,
+		}
+	},
+	/*
+	 * Tests for AES-CMAC, a.k.a. "cmac(aes)" in crypto API syntax.
+	 *
+	 * The IG requires that each underlying AES implementation be tested in
+	 * an authenticated mode, if implemented.  Of such modes, this module
+	 * implements AES-GCM and AES-CMAC.  However, AES-GCM doesn't "count"
+	 * because this module's implementations of AES-GCM won't actually be
+	 * FIPS-approved, due to a quirk in the FIPS requirements.
+	 *
+	 * Therefore, for us this requirement applies to AES-CMAC, so we must
+	 * test the "cmac" template composed with each "aes" implementation.
+	 *
+	 * Separately from the above, we also must test all standalone
+	 * implementations of "cmac(aes)" such as "cmac-aes-ce", as they don't
+	 * reuse another full AES implementation and thus can't be covered by
+	 * another test.
+	 */
+	{
+		.alg		= "cmac(aes)",
+		.impls		= {
+			/* "cmac" template with all "aes" implementations */
+			"cmac(aes-generic)",
+			"cmac(aes-arm64)",
+			"cmac(aes-ce)",
+			/* All standalone implementations of "cmac(aes)" */
+			"cmac-aes-neon",
+			"cmac-aes-ce",
+		},
+		.func		= fips_test_hash,
+		.hash		= {
+			.key		= fips_aes_key,
+			.key_size	= sizeof(fips_aes_key),
+			.message	= fips_message,
+			.message_size	= sizeof(fips_message),
+			.digest		= fips_aes_cmac_digest,
+			.digest_size	= sizeof(fips_aes_cmac_digest),
+		}
+	},
+	/*
+	 * Tests for AES-ECB, a.k.a. "ecb(aes)" in crypto API syntax.
+	 *
+	 * The IG requires that each underlying AES implementation be tested in
+	 * a mode that exercises the encryption direction of AES and in a mode
+	 * that exercises the decryption direction of AES.  CMAC only covers the
+	 * encryption direction, so we choose ECB to test decryption.  Thus, we
+	 * test the "ecb" template composed with each "aes" implementation.
+	 *
+	 * Separately from the above, we also must test all standalone
+	 * implementations of "ecb(aes)" such as "ecb-aes-ce", as they don't
+	 * reuse another full AES implementation and thus can't be covered by
+	 * another test.
+	 */
+	{
+		.alg		= "ecb(aes)",
+		.impls		= {
+			/* "ecb" template with all "aes" implementations */
+			"ecb(aes-generic)",
+			"ecb(aes-arm64)",
+			"ecb(aes-ce)",
+			/* All standalone implementations of "ecb(aes)" */
+			"ecb-aes-neon",
+			"ecb-aes-neonbs",
+			"ecb-aes-ce",
+		},
+		.func		= fips_test_skcipher,
+		.skcipher	= {
+			.key		= fips_aes_key,
+			.key_size	= sizeof(fips_aes_key),
+			.plaintext	= fips_message,
+			.ciphertext	= fips_aes_ecb_ciphertext,
+			.message_size	= sizeof(fips_message)
+		}
+	},
+	/*
+	 * Tests for AES-CBC, AES-CBC-CTS, AES-CTR, AES-XTS, and AES-GCM.
+	 *
+	 * According to the IG, an AES mode of operation doesn't need to have
+	 * its own test, provided that (a) both the encryption and decryption
+	 * directions of the underlying AES implementation are already tested
+	 * via other mode(s), and (b) in the case of an authenticated mode, at
+	 * least one other authenticated mode is already tested.  The tests of
+	 * the "cmac" and "ecb" templates fulfill these conditions; therefore,
+	 * we don't need to test any other AES mode templates.
+	 *
+	 * This does *not* apply to standalone implementations of these modes
+	 * such as "cbc-aes-ce", as such implementations don't reuse another
+	 * full AES implementation and thus can't be covered by another test.
+	 * We must test all such standalone implementations.
+	 *
+	 * The AES-GCM test isn't actually required, as it's expected that this
+	 * module's AES-GCM implementation won't actually be able to be
+	 * FIPS-approved.  This is unfortunate; it's caused by the FIPS
+	 * requirements for GCM being incompatible with GCM implementations that
+	 * don't generate their own IVs.  We choose to still include the AES-GCM
+	 * test to keep it on par with the other FIPS-approved algorithms, in
+	 * case it turns out that AES-GCM can be approved after all.
+	 */
+	{
+		.alg		= "cbc(aes)",
+		.impls		= {
+			/* All standalone implementations of "cbc(aes)" */
+			"cbc-aes-neon",
+			"cbc-aes-neonbs",
+			"cbc-aes-ce",
+		},
+		.func		= fips_test_skcipher,
+		.skcipher	= {
+			.key		= fips_aes_key,
+			.key_size	= sizeof(fips_aes_key),
+			.iv		= fips_aes_iv,
+			.iv_size	= sizeof(fips_aes_iv),
+			.plaintext	= fips_message,
+			.ciphertext	= fips_aes_cbc_ciphertext,
+			.message_size	= sizeof(fips_message),
+		}
+	}, {
+		.alg		= "cts(cbc(aes))",
+		.impls		= {
+			/* All standalone implementations of "cts(cbc(aes))" */
+			"cts-cbc-aes-neon",
+			"cts-cbc-aes-ce",
+		},
+		.func		= fips_test_skcipher,
+		/* Test vector taken from RFC 3962 */
+		.skcipher	= {
+			.key    = "\x63\x68\x69\x63\x6b\x65\x6e\x20"
+				  "\x74\x65\x72\x69\x79\x61\x6b\x69",
+			.key_size = 16,
+			.iv	= "\x00\x00\x00\x00\x00\x00\x00\x00"
+				  "\x00\x00\x00\x00\x00\x00\x00\x00",
+			.iv_size = 16,
+			.plaintext = "\x49\x20\x77\x6f\x75\x6c\x64\x20"
+				     "\x6c\x69\x6b\x65\x20\x74\x68\x65"
+				     "\x20\x47\x65\x6e\x65\x72\x61\x6c"
+				     "\x20\x47\x61\x75\x27\x73\x20",
+			.ciphertext = "\xfc\x00\x78\x3e\x0e\xfd\xb2\xc1"
+				      "\xd4\x45\xd4\xc8\xef\xf7\xed\x22"
+				      "\x97\x68\x72\x68\xd6\xec\xcc\xc0"
+				      "\xc0\x7b\x25\xe2\x5e\xcf\xe5",
+			.message_size = 31,
+		}
+	}, {
+		.alg		= "ctr(aes)",
+		.impls		= {
+			/* All standalone implementations of "ctr(aes)" */
+			"ctr-aes-neon",
+			"ctr-aes-neonbs",
+			"ctr-aes-ce",
+		},
+		.func		= fips_test_skcipher,
+		.skcipher	= {
+			.key		= fips_aes_key,
+			.key_size	= sizeof(fips_aes_key),
+			.iv		= fips_aes_iv,
+			.iv_size	= sizeof(fips_aes_iv),
+			.plaintext	= fips_message,
+			.ciphertext	= fips_aes_ctr_ciphertext,
+			.message_size	= sizeof(fips_message),
+		}
+	}, {
+		.alg		= "xts(aes)",
+		.impls		= {
+			/* All standalone implementations of "xts(aes)" */
+			"xts-aes-neon",
+			"xts-aes-neonbs",
+			"xts-aes-ce",
+		},
+		.func		= fips_test_skcipher,
+		.skcipher	= {
+			.key		= fips_aes_xts_key,
+			.key_size	= sizeof(fips_aes_xts_key),
+			.iv		= fips_aes_iv,
+			.iv_size	= sizeof(fips_aes_iv),
+			.plaintext	= fips_message,
+			.ciphertext	= fips_aes_xts_ciphertext,
+			.message_size	= sizeof(fips_message),
+		}
+	}, {
+		.alg		= "gcm(aes)",
+		.impls		= {
+			/* All standalone implementations of "gcm(aes)" */
+			"gcm-aes-ce",
+		},
+		.func		= fips_test_aead,
+		.aead		= {
+			.key		= fips_aes_key,
+			.key_size	= sizeof(fips_aes_key),
+			.iv		= fips_aes_iv,
+			/* The GCM implementations assume an IV size of 12. */
+			.iv_size	= 12,
+			.assoc		= fips_aes_gcm_assoc,
+			.assoc_size	= sizeof(fips_aes_gcm_assoc),
+			.plaintext	= fips_message,
+			.plaintext_size	= sizeof(fips_message),
+			.ciphertext	= fips_aes_gcm_ciphertext,
+			.ciphertext_size = sizeof(fips_aes_gcm_ciphertext),
+		}
+	},
+
+	/* Tests for SHA-1 */
+	{
+		.alg		= "sha1",
+		.impls		= {
+			/* All implementations of "sha1" */
+			"sha1-generic",
+			"sha1-ce"
+		},
+		.func		= fips_test_hash,
+		.hash		= {
+			.message	= fips_message,
+			.message_size	= sizeof(fips_message),
+			.digest		= fips_sha1_digest,
+			.digest_size	= sizeof(fips_sha1_digest)
+		}
+	},
+	/*
+	 * Tests for all SHA-256 implementations other than the sha256() library
+	 * function.  As per the IG, these tests also fulfill the tests for the
+	 * corresponding SHA-224 implementations.
+	 */
+	{
+		.alg		= "sha256",
+		.impls		= {
+			/* All implementations of "sha256" */
+			"sha256-generic",
+			"sha256-arm64",
+			"sha256-ce",
+		},
+		.func		= fips_test_hash,
+		.hash		= {
+			.message	= fips_message,
+			.message_size	= sizeof(fips_message),
+			.digest		= fips_sha256_digest,
+			.digest_size	= sizeof(fips_sha256_digest)
+		}
+	},
+	/*
+	 * Test for the sha256() library function.  This must be tested
+	 * separately because it may use its own SHA-256 implementation.
+	 */
+	{
+		.alg		= "sha256",
+		.impls		= {"sha256-lib"},
+		.func		= fips_test_sha256_library,
+		.hash		= {
+			.message	= fips_message,
+			.message_size	= sizeof(fips_message),
+			.digest		= fips_sha256_digest,
+			.digest_size	= sizeof(fips_sha256_digest)
+		}
+	},
+	/*
+	 * Tests for all SHA-512 implementations.  As per the IG, these tests
+	 * also fulfill the tests for the corresponding SHA-384 implementations.
+	 */
+	{
+		.alg		= "sha512",
+		.impls		= {
+			/* All implementations of "sha512" */
+			"sha512-generic",
+			"sha512-arm64",
+			"sha512-ce",
+		},
+		.func		= fips_test_hash,
+		.hash		= {
+			.message	= fips_message,
+			.message_size	= sizeof(fips_message),
+			.digest		= fips_sha512_digest,
+			.digest_size	= sizeof(fips_sha512_digest)
+		}
+	},
+	/*
+	 * Test for HMAC.  As per the IG, only one HMAC test is required,
+	 * provided that the same HMAC code is shared by all HMAC-SHA*.  This is
+	 * true in our case.  We choose HMAC-SHA256 for the test.
+	 *
+	 * Note that as per the IG, this can fulfill the test for the underlying
+	 * SHA.  However, we don't currently rely on this.
+	 */
+	{
+		.alg		= "hmac(sha256)",
+		.func		= fips_test_hash,
+		.hash		= {
+			.key		= fips_hmac_key,
+			.key_size	= sizeof(fips_hmac_key),
+			.message	= fips_message,
+			.message_size	= sizeof(fips_message),
+			.digest		= fips_hmac_sha256_digest,
+			.digest_size	= sizeof(fips_hmac_sha256_digest)
+		}
+	},
+	/*
+	 * Known-answer tests for the SP800-90A DRBG algorithms.
+	 *
+	 * These test vectors were manually extracted from
+	 * https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/drbg/drbgtestvectors.zip.
+	 *
+	 * The selection of these tests follows the FIPS 140-2 IG as well as
+	 * Section 11 of SP800-90A:
+	 *
+	 * - We must test all DRBG types (HMAC, Hash, and CTR) that the module
+	 *   implements.  However, currently the module only implements
+	 *   HMAC_DRBG (since CONFIG_CRYPTO_DRBG_CTR and CONFIG_CRYPTO_DRBG_HASH
+	 *   aren't enabled).  Therefore, we only need to test HMAC_DRBG.
+	 *
+	 * - We only need to test one HMAC variant.
+	 *
+	 * - We must test all DRBG operations: Instantiate(), Reseed(), and
+	 *   Generate().  However, a single test sequence with a single output
+	 *   comparison may cover all three operations, and this is what we do.
+	 *   Note that Reseed() happens implicitly via the use of the additional
+	 *   input and also via the use of prediction resistance when enabled.
+	 *
+	 * - The personalization string, additional input, and prediction
+	 *   resistance support must be tested.  Therefore we have chosen test
+	 *   vectors that have a nonempty personalization string and nonempty
+	 *   additional input, and we test the prediction-resistant variant.
+	 *   Testing the non-prediction-resistant variant is not required.
+	 */
+	{
+		.alg	= "drbg_pr_hmac_sha256",
+		.func	= fips_test_drbg,
+		.drbg	= {
+			.entropy =
+				"\xc7\xcc\xbc\x67\x7e\x21\x66\x1e\x27\x2b\x63\xdd"
+				"\x3a\x78\xdc\xdf\x66\x6d\x3f\x24\xae\xcf\x37\x01"
+				"\xa9\x0d\x89\x8a\xa7\xdc\x81\x58\xae\xb2\x10\x15"
+				"\x7e\x18\x44\x6d\x13\xea\xdf\x37\x85\xfe\x81\xfb",
+			.entropy_size = 48,
+			.entpr_a =
+				"\x7b\xa1\x91\x5b\x3c\x04\xc4\x1b\x1d\x19\x2f\x1a"
+				"\x18\x81\x60\x3c\x6c\x62\x91\xb7\xe9\xf5\xcb\x96"
+				"\xbb\x81\x6a\xcc\xb5\xae\x55\xb6",
+			.entpr_b =
+				"\x99\x2c\xc7\x78\x7e\x3b\x88\x12\xef\xbe\xd3\xd2"
+				"\x7d\x2a\xa5\x86\xda\x8d\x58\x73\x4a\x0a\xb2\x2e"
+				"\xbb\x4c\x7e\xe3\x9a\xb6\x81\xc1",
+			.entpr_size = 32,
+			.output =
+				"\x95\x6f\x95\xfc\x3b\xb7\xfe\x3e\xd0\x4e\x1a\x14"
+				"\x6c\x34\x7f\x7b\x1d\x0d\x63\x5e\x48\x9c\x69\xe6"
+				"\x46\x07\xd2\x87\xf3\x86\x52\x3d\x98\x27\x5e\xd7"
+				"\x54\xe7\x75\x50\x4f\xfb\x4d\xfd\xac\x2f\x4b\x77"
+				"\xcf\x9e\x8e\xcc\x16\xa2\x24\xcd\x53\xde\x3e\xc5"
+				"\x55\x5d\xd5\x26\x3f\x89\xdf\xca\x8b\x4e\x1e\xb6"
+				"\x88\x78\x63\x5c\xa2\x63\x98\x4e\x6f\x25\x59\xb1"
+				"\x5f\x2b\x23\xb0\x4b\xa5\x18\x5d\xc2\x15\x74\x40"
+				"\x59\x4c\xb4\x1e\xcf\x9a\x36\xfd\x43\xe2\x03\xb8"
+				"\x59\x91\x30\x89\x2a\xc8\x5a\x43\x23\x7c\x73\x72"
+				"\xda\x3f\xad\x2b\xba\x00\x6b\xd1",
+			.out_size = 128,
+			.add_a =
+				"\x18\xe8\x17\xff\xef\x39\xc7\x41\x5c\x73\x03\x03"
+				"\xf6\x3d\xe8\x5f\xc8\xab\xe4\xab\x0f\xad\xe8\xd6"
+				"\x86\x88\x55\x28\xc1\x69\xdd\x76",
+			.add_b =
+				"\xac\x07\xfc\xbe\x87\x0e\xd3\xea\x1f\x7e\xb8\xe7"
+				"\x9d\xec\xe8\xe7\xbc\xf3\x18\x25\x77\x35\x4a\xaa"
+				"\x00\x99\x2a\xdd\x0a\x00\x50\x82",
+			.add_size = 32,
+			.pers =
+				"\xbc\x55\xab\x3c\xf6\x52\xb0\x11\x3d\x7b\x90\xb8"
+				"\x24\xc9\x26\x4e\x5a\x1e\x77\x0d\x3d\x58\x4a\xda"
+				"\xd1\x81\xe9\xf8\xeb\x30\x8f\x6f",
+			.pers_size = 32,
+		}
+	}
+};
+
+static int __init __must_check
+fips_run_test(const struct fips_test *test)
+{
+	int i;
+	int err;
+
+	/*
+	 * If no implementations were specified, then just test the default one.
+	 * Otherwise, test the specified list of implementations.
+	 */
+
+	if (test->impls[0] == NULL) {
+		err = test->func(test, test->alg);
+		if (err)
+			pr_emerg("self-tests failed for algorithm %s: %d\n",
+				 test->alg, err);
+		return err;
+	}
+
+	for (i = 0; i < ARRAY_SIZE(test->impls) && test->impls[i] != NULL;
+	     i++) {
+		err = test->func(test, test->impls[i]);
+		if (err) {
+			pr_emerg("self-tests failed for algorithm %s, implementation %s: %d\n",
+				 test->alg, test->impls[i], err);
+			return err;
+		}
+	}
+	return 0;
+}
+
+bool __init fips140_run_selftests(void)
+{
+	int i;
+
+	pr_info("running self-tests\n");
+	for (i = 0; i < ARRAY_SIZE(fips140_selftests); i++) {
+		if (fips_run_test(&fips140_selftests[i]) != 0) {
+			/* The caller is responsible for calling panic(). */
+			return false;
+		}
+	}
+	pr_info("all self-tests passed\n");
+	return true;
+}
diff --git a/crypto/fips140_gen_hmac.c b/crypto/fips140_gen_hmac.c
new file mode 100644
index 0000000..69f754d
--- /dev/null
+++ b/crypto/fips140_gen_hmac.c
@@ -0,0 +1,194 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (C) 2021 - Google LLC
+ * Author: Ard Biesheuvel <ardb@google.com>
+ *
+ * This is a host tool that is intended to be used to take the HMAC digest of
+ * the .text and .rodata sections of the fips140.ko module, and store it inside
+ * the module. The module will perform an integrity selfcheck at module_init()
+ * time, by recalculating the digest and comparing it with the value calculated
+ * here.
+ *
+ * Note that the peculiar way an HMAC is being used as a digest with a public
+ * key rather than as a symmetric key signature is mandated by FIPS 140-2.
+ */
+
+#include <elf.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include <openssl/hmac.h>
+
+static Elf64_Ehdr *ehdr;
+static Elf64_Shdr *shdr;
+static int num_shdr;
+static const char *strtab, *shstrtab;
+static Elf64_Sym *syms;
+static int num_syms;
+
+static Elf64_Shdr *find_symtab_section(void)
+{
+	int i;
+
+	for (i = 0; i < num_shdr; i++)
+		if (shdr[i].sh_type == SHT_SYMTAB)
+			return &shdr[i];
+	return NULL;
+}
+
+static int get_section_idx(const char *name)
+{
+	int i;
+
+	for (i = 0; i < num_shdr; i++)
+		if (!strcmp(shstrtab + shdr[i].sh_name, name))
+			return i;
+	return -1;
+}
+
+static int get_sym_idx(const char *sym_name)
+{
+	int i;
+
+	for (i = 0; i < num_syms; i++)
+		if (!strcmp(strtab + syms[i].st_name, sym_name))
+			return i;
+	return -1;
+}
+
+static void *get_sym_addr(const char *sym_name)
+{
+	int i = get_sym_idx(sym_name);
+
+	if (i >= 0)
+		return (void *)ehdr + shdr[syms[i].st_shndx].sh_offset +
+		       syms[i].st_value;
+	return NULL;
+}
+
+static int update_rela_ref(const char *name)
+{
+	/*
+	 * We need to do a couple of things to ensure that the copied RELA data
+	 * is accessible to the module itself at module init time:
+	 * - the associated entry in the symbol table needs to refer to the
+	 *   correct section index, and have SECTION type and GLOBAL linkage.
+	 * - the 'count' global variable in the module need to be set to the
+	 *   right value based on the size of the RELA section.
+	 */
+	unsigned int *size_var;
+	int sec_idx, sym_idx;
+	char str[32];
+
+	sprintf(str, "fips140_rela_%s", name);
+	size_var = get_sym_addr(str);
+	if (!size_var) {
+		printf("variable '%s' not found, disregarding .%s section\n",
+		       str, name);
+		return 1;
+	}
+
+	sprintf(str, "__sec_rela_%s", name);
+	sym_idx = get_sym_idx(str);
+
+	sprintf(str, ".init.rela.%s", name);
+	sec_idx = get_section_idx(str);
+
+	if (sec_idx < 0 || sym_idx < 0) {
+		fprintf(stderr, "failed to locate metadata for .%s section in binary\n",
+			name);
+		return 0;
+	}
+
+	syms[sym_idx].st_shndx = sec_idx;
+	syms[sym_idx].st_info = (STB_GLOBAL << 4) | STT_SECTION;
+
+	size_var[1] = shdr[sec_idx].sh_size / sizeof(Elf64_Rela);
+
+	return 1;
+}
+
+static void hmac_section(HMAC_CTX *hmac, const char *start, const char *end)
+{
+	void *start_addr = get_sym_addr(start);
+	void *end_addr = get_sym_addr(end);
+
+	HMAC_Update(hmac, start_addr, end_addr - start_addr);
+}
+
+int main(int argc, char **argv)
+{
+	Elf64_Shdr *symtab_shdr;
+	const char *hmac_key;
+	unsigned char *dg;
+	unsigned int dglen;
+	struct stat stat;
+	HMAC_CTX *hmac;
+	int fd, ret;
+
+	if (argc < 2) {
+		fprintf(stderr, "file argument missing\n");
+		exit(EXIT_FAILURE);
+	}
+
+	fd = open(argv[1], O_RDWR);
+	if (fd < 0) {
+		fprintf(stderr, "failed to open %s\n", argv[1]);
+		exit(EXIT_FAILURE);
+	}
+
+	ret = fstat(fd, &stat);
+	if (ret < 0) {
+		fprintf(stderr, "failed to stat() %s\n", argv[1]);
+		exit(EXIT_FAILURE);
+	}
+
+	ehdr = mmap(0, stat.st_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+	if (ehdr == MAP_FAILED) {
+		fprintf(stderr, "failed to mmap() %s\n", argv[1]);
+		exit(EXIT_FAILURE);
+	}
+
+	shdr = (void *)ehdr + ehdr->e_shoff;
+	num_shdr = ehdr->e_shnum;
+
+	symtab_shdr = find_symtab_section();
+
+	syms = (void *)ehdr + symtab_shdr->sh_offset;
+	num_syms = symtab_shdr->sh_size / sizeof(Elf64_Sym);
+
+	strtab = (void *)ehdr + shdr[symtab_shdr->sh_link].sh_offset;
+	shstrtab = (void *)ehdr + shdr[ehdr->e_shstrndx].sh_offset;
+
+	if (!update_rela_ref("text") || !update_rela_ref("rodata"))
+		exit(EXIT_FAILURE);
+
+	hmac_key = get_sym_addr("fips140_integ_hmac_key");
+	if (!hmac_key) {
+		fprintf(stderr, "failed to locate HMAC key in binary\n");
+		exit(EXIT_FAILURE);
+	}
+
+	dg = get_sym_addr("fips140_integ_hmac_digest");
+	if (!dg) {
+		fprintf(stderr, "failed to locate HMAC digest in binary\n");
+		exit(EXIT_FAILURE);
+	}
+
+	hmac = HMAC_CTX_new();
+	HMAC_Init_ex(hmac, hmac_key, strlen(hmac_key), EVP_sha256(), NULL);
+
+	hmac_section(hmac, "__fips140_text_start", "__fips140_text_end");
+	hmac_section(hmac, "__fips140_rodata_start", "__fips140_rodata_end");
+
+	HMAC_Final(hmac, dg, &dglen);
+
+	close(fd);
+	return 0;
+}
diff --git a/crypto/hctr2.c b/crypto/hctr2.c
new file mode 100644
index 0000000..7d00a3b
--- /dev/null
+++ b/crypto/hctr2.c
@@ -0,0 +1,581 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * HCTR2 length-preserving encryption mode
+ *
+ * Copyright 2021 Google LLC
+ */
+
+
+/*
+ * HCTR2 is a length-preserving encryption mode that is efficient on
+ * processors with instructions to accelerate AES and carryless
+ * multiplication, e.g. x86 processors with AES-NI and CLMUL, and ARM
+ * processors with the ARMv8 crypto extensions.
+ *
+ * For more details, see the paper: "Length-preserving encryption with HCTR2"
+ * (https://eprint.iacr.org/2021/1441.pdf)
+ */
+
+#include <crypto/internal/cipher.h>
+#include <crypto/internal/hash.h>
+#include <crypto/internal/skcipher.h>
+#include <crypto/polyval.h>
+#include <crypto/scatterwalk.h>
+#include <linux/module.h>
+
+#define BLOCKCIPHER_BLOCK_SIZE		16
+
+/*
+ * The specification allows variable-length tweaks, but Linux's crypto API
+ * currently only allows algorithms to support a single length.  The "natural"
+ * tweak length for HCTR2 is 16, since that fits into one POLYVAL block for
+ * the best performance.  But longer tweaks are useful for fscrypt, to avoid
+ * needing to derive per-file keys.  So instead we use two blocks, or 32 bytes.
+ */
+#define TWEAK_SIZE		32
+
+struct hctr2_instance_ctx {
+	struct crypto_cipher_spawn blockcipher_spawn;
+	struct crypto_skcipher_spawn xctr_spawn;
+	struct crypto_shash_spawn polyval_spawn;
+};
+
+struct hctr2_tfm_ctx {
+	struct crypto_cipher *blockcipher;
+	struct crypto_skcipher *xctr;
+	struct crypto_shash *polyval;
+	u8 L[BLOCKCIPHER_BLOCK_SIZE];
+	int hashed_tweak_offset;
+	/*
+	 * This struct is allocated with extra space for two exported hash
+	 * states.  Since the hash state size is not known at compile-time, we
+	 * can't add these to the struct directly.
+	 *
+	 * hashed_tweaklen_divisible;
+	 * hashed_tweaklen_remainder;
+	 */
+};
+
+struct hctr2_request_ctx {
+	u8 first_block[BLOCKCIPHER_BLOCK_SIZE];
+	u8 xctr_iv[BLOCKCIPHER_BLOCK_SIZE];
+	struct scatterlist *bulk_part_dst;
+	struct scatterlist *bulk_part_src;
+	struct scatterlist sg_src[2];
+	struct scatterlist sg_dst[2];
+	/*
+	 * Sub-request sizes are unknown at compile-time, so they need to go
+	 * after the members with known sizes.
+	 */
+	union {
+		struct shash_desc hash_desc;
+		struct skcipher_request xctr_req;
+	} u;
+	/*
+	 * This struct is allocated with extra space for one exported hash
+	 * state.  Since the hash state size is not known at compile-time, we
+	 * can't add it to the struct directly.
+	 *
+	 * hashed_tweak;
+	 */
+};
+
+static inline u8 *hctr2_hashed_tweaklen(const struct hctr2_tfm_ctx *tctx,
+					bool has_remainder)
+{
+	u8 *p = (u8 *)tctx + sizeof(*tctx);
+
+	if (has_remainder) /* For messages not a multiple of block length */
+		p += crypto_shash_statesize(tctx->polyval);
+	return p;
+}
+
+static inline u8 *hctr2_hashed_tweak(const struct hctr2_tfm_ctx *tctx,
+				     struct hctr2_request_ctx *rctx)
+{
+	return (u8 *)rctx + tctx->hashed_tweak_offset;
+}
+
+/*
+ * The input data for each HCTR2 hash step begins with a 16-byte block that
+ * contains the tweak length and a flag that indicates whether the input is evenly
+ * divisible into blocks.  Since this implementation only supports one tweak
+ * length, we precompute the two hash states resulting from hashing the two
+ * possible values of this initial block.  This reduces by one block the amount of
+ * data that needs to be hashed for each encryption/decryption
+ *
+ * These precomputed hashes are stored in hctr2_tfm_ctx.
+ */
+static int hctr2_hash_tweaklen(struct hctr2_tfm_ctx *tctx, bool has_remainder)
+{
+	SHASH_DESC_ON_STACK(shash, tfm->polyval);
+	__le64 tweak_length_block[2];
+	int err;
+
+	shash->tfm = tctx->polyval;
+	memset(tweak_length_block, 0, sizeof(tweak_length_block));
+
+	tweak_length_block[0] = cpu_to_le64(TWEAK_SIZE * 8 * 2 + 2 + has_remainder);
+	err = crypto_shash_init(shash);
+	if (err)
+		return err;
+	err = crypto_shash_update(shash, (u8 *)tweak_length_block,
+				  POLYVAL_BLOCK_SIZE);
+	if (err)
+		return err;
+	return crypto_shash_export(shash, hctr2_hashed_tweaklen(tctx, has_remainder));
+}
+
+static int hctr2_setkey(struct crypto_skcipher *tfm, const u8 *key,
+			unsigned int keylen)
+{
+	struct hctr2_tfm_ctx *tctx = crypto_skcipher_ctx(tfm);
+	u8 hbar[BLOCKCIPHER_BLOCK_SIZE];
+	int err;
+
+	crypto_cipher_clear_flags(tctx->blockcipher, CRYPTO_TFM_REQ_MASK);
+	crypto_cipher_set_flags(tctx->blockcipher,
+				crypto_skcipher_get_flags(tfm) &
+				CRYPTO_TFM_REQ_MASK);
+	err = crypto_cipher_setkey(tctx->blockcipher, key, keylen);
+	if (err)
+		return err;
+
+	crypto_skcipher_clear_flags(tctx->xctr, CRYPTO_TFM_REQ_MASK);
+	crypto_skcipher_set_flags(tctx->xctr,
+				  crypto_skcipher_get_flags(tfm) &
+				  CRYPTO_TFM_REQ_MASK);
+	err = crypto_skcipher_setkey(tctx->xctr, key, keylen);
+	if (err)
+		return err;
+
+	memset(hbar, 0, sizeof(hbar));
+	crypto_cipher_encrypt_one(tctx->blockcipher, hbar, hbar);
+
+	memset(tctx->L, 0, sizeof(tctx->L));
+	tctx->L[0] = 0x01;
+	crypto_cipher_encrypt_one(tctx->blockcipher, tctx->L, tctx->L);
+
+	crypto_shash_clear_flags(tctx->polyval, CRYPTO_TFM_REQ_MASK);
+	crypto_shash_set_flags(tctx->polyval, crypto_skcipher_get_flags(tfm) &
+			       CRYPTO_TFM_REQ_MASK);
+	err = crypto_shash_setkey(tctx->polyval, hbar, BLOCKCIPHER_BLOCK_SIZE);
+	if (err)
+		return err;
+	memzero_explicit(hbar, sizeof(hbar));
+
+	return hctr2_hash_tweaklen(tctx, true) ?: hctr2_hash_tweaklen(tctx, false);
+}
+
+static int hctr2_hash_tweak(struct skcipher_request *req)
+{
+	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
+	const struct hctr2_tfm_ctx *tctx = crypto_skcipher_ctx(tfm);
+	struct hctr2_request_ctx *rctx = skcipher_request_ctx(req);
+	struct shash_desc *hash_desc = &rctx->u.hash_desc;
+	int err;
+	bool has_remainder = req->cryptlen % POLYVAL_BLOCK_SIZE;
+
+	hash_desc->tfm = tctx->polyval;
+	err = crypto_shash_import(hash_desc, hctr2_hashed_tweaklen(tctx, has_remainder));
+	if (err)
+		return err;
+	err = crypto_shash_update(hash_desc, req->iv, TWEAK_SIZE);
+	if (err)
+		return err;
+
+	// Store the hashed tweak, since we need it when computing both
+	// H(T || N) and H(T || V).
+	return crypto_shash_export(hash_desc, hctr2_hashed_tweak(tctx, rctx));
+}
+
+static int hctr2_hash_message(struct skcipher_request *req,
+			      struct scatterlist *sgl,
+			      u8 digest[POLYVAL_DIGEST_SIZE])
+{
+	static const u8 padding[BLOCKCIPHER_BLOCK_SIZE] = { 0x1 };
+	struct hctr2_request_ctx *rctx = skcipher_request_ctx(req);
+	struct shash_desc *hash_desc = &rctx->u.hash_desc;
+	const unsigned int bulk_len = req->cryptlen - BLOCKCIPHER_BLOCK_SIZE;
+	struct sg_mapping_iter miter;
+	unsigned int remainder = bulk_len % BLOCKCIPHER_BLOCK_SIZE;
+	int i;
+	int err = 0;
+	int n = 0;
+
+	sg_miter_start(&miter, sgl, sg_nents(sgl),
+		       SG_MITER_FROM_SG | SG_MITER_ATOMIC);
+	for (i = 0; i < bulk_len; i += n) {
+		sg_miter_next(&miter);
+		n = min_t(unsigned int, miter.length, bulk_len - i);
+		err = crypto_shash_update(hash_desc, miter.addr, n);
+		if (err)
+			break;
+	}
+	sg_miter_stop(&miter);
+
+	if (err)
+		return err;
+
+	if (remainder) {
+		err = crypto_shash_update(hash_desc, padding,
+					  BLOCKCIPHER_BLOCK_SIZE - remainder);
+		if (err)
+			return err;
+	}
+	return crypto_shash_final(hash_desc, digest);
+}
+
+static int hctr2_finish(struct skcipher_request *req)
+{
+	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
+	const struct hctr2_tfm_ctx *tctx = crypto_skcipher_ctx(tfm);
+	struct hctr2_request_ctx *rctx = skcipher_request_ctx(req);
+	u8 digest[POLYVAL_DIGEST_SIZE];
+	struct shash_desc *hash_desc = &rctx->u.hash_desc;
+	int err;
+
+	// U = UU ^ H(T || V)
+	// or M = MM ^ H(T || N)
+	hash_desc->tfm = tctx->polyval;
+	err = crypto_shash_import(hash_desc, hctr2_hashed_tweak(tctx, rctx));
+	if (err)
+		return err;
+	err = hctr2_hash_message(req, rctx->bulk_part_dst, digest);
+	if (err)
+		return err;
+	crypto_xor(rctx->first_block, digest, BLOCKCIPHER_BLOCK_SIZE);
+
+	// Copy U (or M) into dst scatterlist
+	scatterwalk_map_and_copy(rctx->first_block, req->dst,
+				 0, BLOCKCIPHER_BLOCK_SIZE, 1);
+	return 0;
+}
+
+static void hctr2_xctr_done(struct crypto_async_request *areq,
+				    int err)
+{
+	struct skcipher_request *req = areq->data;
+
+	if (!err)
+		err = hctr2_finish(req);
+
+	skcipher_request_complete(req, err);
+}
+
+static int hctr2_crypt(struct skcipher_request *req, bool enc)
+{
+	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
+	const struct hctr2_tfm_ctx *tctx = crypto_skcipher_ctx(tfm);
+	struct hctr2_request_ctx *rctx = skcipher_request_ctx(req);
+	u8 digest[POLYVAL_DIGEST_SIZE];
+	int bulk_len = req->cryptlen - BLOCKCIPHER_BLOCK_SIZE;
+	int err;
+
+	// Requests must be at least one block
+	if (req->cryptlen < BLOCKCIPHER_BLOCK_SIZE)
+		return -EINVAL;
+
+	// Copy M (or U) into a temporary buffer
+	scatterwalk_map_and_copy(rctx->first_block, req->src,
+				 0, BLOCKCIPHER_BLOCK_SIZE, 0);
+
+	// Create scatterlists for N and V
+	rctx->bulk_part_src = scatterwalk_ffwd(rctx->sg_src, req->src,
+					       BLOCKCIPHER_BLOCK_SIZE);
+	rctx->bulk_part_dst = scatterwalk_ffwd(rctx->sg_dst, req->dst,
+					       BLOCKCIPHER_BLOCK_SIZE);
+
+	// MM = M ^ H(T || N)
+	// or UU = U ^ H(T || V)
+	err = hctr2_hash_tweak(req);
+	if (err)
+		return err;
+	err = hctr2_hash_message(req, rctx->bulk_part_src, digest);
+	if (err)
+		return err;
+	crypto_xor(digest, rctx->first_block, BLOCKCIPHER_BLOCK_SIZE);
+
+	// UU = E(MM)
+	// or MM = D(UU)
+	if (enc)
+		crypto_cipher_encrypt_one(tctx->blockcipher, rctx->first_block,
+					  digest);
+	else
+		crypto_cipher_decrypt_one(tctx->blockcipher, rctx->first_block,
+					  digest);
+
+	// S = MM ^ UU ^ L
+	crypto_xor(digest, rctx->first_block, BLOCKCIPHER_BLOCK_SIZE);
+	crypto_xor_cpy(rctx->xctr_iv, digest, tctx->L, BLOCKCIPHER_BLOCK_SIZE);
+
+	// V = XCTR(S, N)
+	// or N = XCTR(S, V)
+	skcipher_request_set_tfm(&rctx->u.xctr_req, tctx->xctr);
+	skcipher_request_set_crypt(&rctx->u.xctr_req, rctx->bulk_part_src,
+				   rctx->bulk_part_dst, bulk_len,
+				   rctx->xctr_iv);
+	skcipher_request_set_callback(&rctx->u.xctr_req,
+				      req->base.flags,
+				      hctr2_xctr_done, req);
+	return crypto_skcipher_encrypt(&rctx->u.xctr_req) ?:
+		hctr2_finish(req);
+}
+
+static int hctr2_encrypt(struct skcipher_request *req)
+{
+	return hctr2_crypt(req, true);
+}
+
+static int hctr2_decrypt(struct skcipher_request *req)
+{
+	return hctr2_crypt(req, false);
+}
+
+static int hctr2_init_tfm(struct crypto_skcipher *tfm)
+{
+	struct skcipher_instance *inst = skcipher_alg_instance(tfm);
+	struct hctr2_instance_ctx *ictx = skcipher_instance_ctx(inst);
+	struct hctr2_tfm_ctx *tctx = crypto_skcipher_ctx(tfm);
+	struct crypto_skcipher *xctr;
+	struct crypto_cipher *blockcipher;
+	struct crypto_shash *polyval;
+	unsigned int subreq_size;
+	int err;
+
+	xctr = crypto_spawn_skcipher(&ictx->xctr_spawn);
+	if (IS_ERR(xctr))
+		return PTR_ERR(xctr);
+
+	blockcipher = crypto_spawn_cipher(&ictx->blockcipher_spawn);
+	if (IS_ERR(blockcipher)) {
+		err = PTR_ERR(blockcipher);
+		goto err_free_xctr;
+	}
+
+	polyval = crypto_spawn_shash(&ictx->polyval_spawn);
+	if (IS_ERR(polyval)) {
+		err = PTR_ERR(polyval);
+		goto err_free_blockcipher;
+	}
+
+	tctx->xctr = xctr;
+	tctx->blockcipher = blockcipher;
+	tctx->polyval = polyval;
+
+	BUILD_BUG_ON(offsetofend(struct hctr2_request_ctx, u) !=
+				 sizeof(struct hctr2_request_ctx));
+	subreq_size = max(sizeof_field(struct hctr2_request_ctx, u.hash_desc) +
+			  crypto_shash_descsize(polyval),
+			  sizeof_field(struct hctr2_request_ctx, u.xctr_req) +
+			  crypto_skcipher_reqsize(xctr));
+
+	tctx->hashed_tweak_offset = offsetof(struct hctr2_request_ctx, u) +
+				    subreq_size;
+	crypto_skcipher_set_reqsize(tfm, tctx->hashed_tweak_offset +
+				    crypto_shash_statesize(polyval));
+	return 0;
+
+err_free_blockcipher:
+	crypto_free_cipher(blockcipher);
+err_free_xctr:
+	crypto_free_skcipher(xctr);
+	return err;
+}
+
+static void hctr2_exit_tfm(struct crypto_skcipher *tfm)
+{
+	struct hctr2_tfm_ctx *tctx = crypto_skcipher_ctx(tfm);
+
+	crypto_free_cipher(tctx->blockcipher);
+	crypto_free_skcipher(tctx->xctr);
+	crypto_free_shash(tctx->polyval);
+}
+
+static void hctr2_free_instance(struct skcipher_instance *inst)
+{
+	struct hctr2_instance_ctx *ictx = skcipher_instance_ctx(inst);
+
+	crypto_drop_cipher(&ictx->blockcipher_spawn);
+	crypto_drop_skcipher(&ictx->xctr_spawn);
+	crypto_drop_shash(&ictx->polyval_spawn);
+	kfree(inst);
+}
+
+static int hctr2_create_common(struct crypto_template *tmpl,
+			       struct rtattr **tb,
+			       const char *xctr_name,
+			       const char *polyval_name)
+{
+	u32 mask;
+	struct skcipher_instance *inst;
+	struct hctr2_instance_ctx *ictx;
+	struct skcipher_alg *xctr_alg;
+	struct crypto_alg *blockcipher_alg;
+	struct shash_alg *polyval_alg;
+	char blockcipher_name[CRYPTO_MAX_ALG_NAME];
+	int len;
+	int err;
+
+	err = crypto_check_attr_type(tb, CRYPTO_ALG_TYPE_SKCIPHER, &mask);
+	if (err)
+		return err;
+
+	inst = kzalloc(sizeof(*inst) + sizeof(*ictx), GFP_KERNEL);
+	if (!inst)
+		return -ENOMEM;
+	ictx = skcipher_instance_ctx(inst);
+
+	/* Stream cipher, xctr(block_cipher) */
+	err = crypto_grab_skcipher(&ictx->xctr_spawn,
+				   skcipher_crypto_instance(inst),
+				   xctr_name, 0, mask);
+	if (err)
+		goto err_free_inst;
+	xctr_alg = crypto_spawn_skcipher_alg(&ictx->xctr_spawn);
+
+	err = -EINVAL;
+	if (strncmp(xctr_alg->base.cra_name, "xctr(", 5))
+		goto err_free_inst;
+	len = strscpy(blockcipher_name, xctr_alg->base.cra_name + 5,
+		      sizeof(blockcipher_name));
+	if (len < 1)
+		goto err_free_inst;
+	if (blockcipher_name[len - 1] != ')')
+		goto err_free_inst;
+	blockcipher_name[len - 1] = 0;
+
+	/* Block cipher, e.g. "aes" */
+	err = crypto_grab_cipher(&ictx->blockcipher_spawn,
+				 skcipher_crypto_instance(inst),
+				 blockcipher_name, 0, mask);
+	if (err)
+		goto err_free_inst;
+	blockcipher_alg = crypto_spawn_cipher_alg(&ictx->blockcipher_spawn);
+
+	/* Require blocksize of 16 bytes */
+	err = -EINVAL;
+	if (blockcipher_alg->cra_blocksize != BLOCKCIPHER_BLOCK_SIZE)
+		goto err_free_inst;
+
+	/* Polyval ε-∆U hash function */
+	err = crypto_grab_shash(&ictx->polyval_spawn,
+				skcipher_crypto_instance(inst),
+				polyval_name, 0, mask);
+	if (err)
+		goto err_free_inst;
+	polyval_alg = crypto_spawn_shash_alg(&ictx->polyval_spawn);
+
+	/* Ensure Polyval is being used */
+	err = -EINVAL;
+	if (strcmp(polyval_alg->base.cra_name, "polyval") != 0)
+		goto err_free_inst;
+
+	/* Instance fields */
+
+	err = -ENAMETOOLONG;
+	if (snprintf(inst->alg.base.cra_name, CRYPTO_MAX_ALG_NAME, "hctr2(%s)",
+		     blockcipher_alg->cra_name) >= CRYPTO_MAX_ALG_NAME)
+		goto err_free_inst;
+	if (snprintf(inst->alg.base.cra_driver_name, CRYPTO_MAX_ALG_NAME,
+		     "hctr2_base(%s,%s)",
+		     xctr_alg->base.cra_driver_name,
+		     polyval_alg->base.cra_driver_name) >= CRYPTO_MAX_ALG_NAME)
+		goto err_free_inst;
+
+	inst->alg.base.cra_blocksize = BLOCKCIPHER_BLOCK_SIZE;
+	inst->alg.base.cra_ctxsize = sizeof(struct hctr2_tfm_ctx) +
+				     polyval_alg->statesize * 2;
+	inst->alg.base.cra_alignmask = xctr_alg->base.cra_alignmask |
+				       polyval_alg->base.cra_alignmask;
+	/*
+	 * The hash function is called twice, so it is weighted higher than the
+	 * xctr and blockcipher.
+	 */
+	inst->alg.base.cra_priority = (2 * xctr_alg->base.cra_priority +
+				       4 * polyval_alg->base.cra_priority +
+				       blockcipher_alg->cra_priority) / 7;
+
+	inst->alg.setkey = hctr2_setkey;
+	inst->alg.encrypt = hctr2_encrypt;
+	inst->alg.decrypt = hctr2_decrypt;
+	inst->alg.init = hctr2_init_tfm;
+	inst->alg.exit = hctr2_exit_tfm;
+	inst->alg.min_keysize = crypto_skcipher_alg_min_keysize(xctr_alg);
+	inst->alg.max_keysize = crypto_skcipher_alg_max_keysize(xctr_alg);
+	inst->alg.ivsize = TWEAK_SIZE;
+
+	inst->free = hctr2_free_instance;
+
+	err = skcipher_register_instance(tmpl, inst);
+	if (err) {
+err_free_inst:
+		hctr2_free_instance(inst);
+	}
+	return err;
+}
+
+static int hctr2_create_base(struct crypto_template *tmpl, struct rtattr **tb)
+{
+	const char *xctr_name;
+	const char *polyval_name;
+
+	xctr_name = crypto_attr_alg_name(tb[1]);
+	if (IS_ERR(xctr_name))
+		return PTR_ERR(xctr_name);
+
+	polyval_name = crypto_attr_alg_name(tb[2]);
+	if (IS_ERR(polyval_name))
+		return PTR_ERR(polyval_name);
+
+	return hctr2_create_common(tmpl, tb, xctr_name, polyval_name);
+}
+
+static int hctr2_create(struct crypto_template *tmpl, struct rtattr **tb)
+{
+	const char *blockcipher_name;
+	char xctr_name[CRYPTO_MAX_ALG_NAME];
+
+	blockcipher_name = crypto_attr_alg_name(tb[1]);
+	if (IS_ERR(blockcipher_name))
+		return PTR_ERR(blockcipher_name);
+
+	if (snprintf(xctr_name, CRYPTO_MAX_ALG_NAME, "xctr(%s)",
+		    blockcipher_name) >= CRYPTO_MAX_ALG_NAME)
+		return -ENAMETOOLONG;
+
+	return hctr2_create_common(tmpl, tb, xctr_name, "polyval");
+}
+
+static struct crypto_template hctr2_tmpls[] = {
+	{
+		/* hctr2_base(xctr_name, polyval_name) */
+		.name = "hctr2_base",
+		.create = hctr2_create_base,
+		.module = THIS_MODULE,
+	}, {
+		/* hctr2(blockcipher_name) */
+		.name = "hctr2",
+		.create = hctr2_create,
+		.module = THIS_MODULE,
+	}
+};
+
+static int __init hctr2_module_init(void)
+{
+	return crypto_register_templates(hctr2_tmpls, ARRAY_SIZE(hctr2_tmpls));
+}
+
+static void __exit hctr2_module_exit(void)
+{
+	return crypto_unregister_templates(hctr2_tmpls,
+					   ARRAY_SIZE(hctr2_tmpls));
+}
+
+subsys_initcall(hctr2_module_init);
+module_exit(hctr2_module_exit);
+
+MODULE_DESCRIPTION("HCTR2 length-preserving encryption mode");
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS_CRYPTO("hctr2");
+MODULE_IMPORT_NS(CRYPTO_INTERNAL);
diff --git a/crypto/internal.h b/crypto/internal.h
index f00869a..932f0aa 100644
--- a/crypto/internal.h
+++ b/crypto/internal.h
@@ -10,6 +10,7 @@
 
 #include <crypto/algapi.h>
 #include <linux/completion.h>
+#include <linux/jump_label.h>
 #include <linux/list.h>
 #include <linux/module.h>
 #include <linux/notifier.h>
@@ -27,6 +28,7 @@
 	struct crypto_alg *adult;
 	struct completion completion;
 	u32 mask;
+	bool test_started;
 };
 
 enum {
@@ -45,6 +47,26 @@
 extern struct rw_semaphore crypto_alg_sem;
 extern struct blocking_notifier_head crypto_chain;
 
+#ifdef CONFIG_CRYPTO_MANAGER_DISABLE_TESTS
+static inline bool crypto_boot_test_finished(void)
+{
+	return true;
+}
+static inline void set_crypto_boot_test_finished(void)
+{
+}
+#else
+DECLARE_STATIC_KEY_FALSE(__crypto_boot_test_finished);
+static inline bool crypto_boot_test_finished(void)
+{
+	return static_branch_likely(&__crypto_boot_test_finished);
+}
+static inline void set_crypto_boot_test_finished(void)
+{
+	static_branch_enable(&__crypto_boot_test_finished);
+}
+#endif /* !CONFIG_CRYPTO_MANAGER_DISABLE_TESTS */
+
 #ifdef CONFIG_PROC_FS
 void __init crypto_init_proc(void);
 void __exit crypto_exit_proc(void);
@@ -70,6 +92,7 @@
 
 struct crypto_larval *crypto_larval_alloc(const char *name, u32 type, u32 mask);
 void crypto_larval_kill(struct crypto_alg *alg);
+void crypto_wait_for_test(struct crypto_larval *larval);
 void crypto_alg_tested(const char *name, int err);
 
 void crypto_remove_spawns(struct crypto_alg *alg, struct list_head *list,
@@ -156,5 +179,10 @@
 		cond_resched();
 }
 
+static inline int crypto_is_test_larval(struct crypto_larval *larval)
+{
+	return larval->alg.cra_driver_name[0];
+}
+
 #endif	/* _CRYPTO_INTERNAL_H */
 
diff --git a/crypto/jitterentropy.c b/crypto/jitterentropy.c
index f6d3a84..c6c4091 100644
--- a/crypto/jitterentropy.c
+++ b/crypto/jitterentropy.c
@@ -117,6 +117,22 @@
 #define JENT_EHEALTH		9 /* Health test failed during initialization */
 #define JENT_ERCT		10 /* RCT failed during initialization */
 
+/*
+ * The output n bits can receive more than n bits of min entropy, of course,
+ * but the fixed output of the conditioning function can only asymptotically
+ * approach the output size bits of min entropy, not attain that bound. Random
+ * maps will tend to have output collisions, which reduces the creditable
+ * output entropy (that is what SP 800-90B Section 3.1.5.1.2 attempts to bound).
+ *
+ * The value "64" is justified in Appendix A.4 of the current 90C draft,
+ * and aligns with NIST's in "epsilon" definition in this document, which is
+ * that a string can be considered "full entropy" if you can bound the min
+ * entropy in each bit of output to at least 1-epsilon, where epsilon is
+ * required to be <= 2^(-32).
+ */
+#define JENT_ENTROPY_SAFETY_FACTOR	64
+
+#include <linux/fips.h>
 #include "jitterentropy.h"
 
 /***************************************************************************
@@ -546,7 +562,10 @@
  */
 static void jent_gen_entropy(struct rand_data *ec)
 {
-	unsigned int k = 0;
+	unsigned int k = 0, safety_factor = 0;
+
+	if (fips_enabled)
+		safety_factor = JENT_ENTROPY_SAFETY_FACTOR;
 
 	/* priming of the ->prev_time value */
 	jent_measure_jitter(ec);
@@ -560,7 +579,7 @@
 		 * We multiply the loop value with ->osr to obtain the
 		 * oversampling rate requested by the caller
 		 */
-		if (++k >= (DATA_SIZE_BITS * ec->osr))
+		if (++k >= ((DATA_SIZE_BITS + safety_factor) * ec->osr))
 			break;
 	}
 }
diff --git a/crypto/polyval-generic.c b/crypto/polyval-generic.c
new file mode 100644
index 0000000..16bfa69
--- /dev/null
+++ b/crypto/polyval-generic.c
@@ -0,0 +1,245 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * POLYVAL: hash function for HCTR2.
+ *
+ * Copyright (c) 2007 Nokia Siemens Networks - Mikko Herranen <mh1@iki.fi>
+ * Copyright (c) 2009 Intel Corp.
+ *   Author: Huang Ying <ying.huang@intel.com>
+ * Copyright 2021 Google LLC
+ */
+
+/*
+ * Code based on crypto/ghash-generic.c
+ *
+ * POLYVAL is a keyed hash function similar to GHASH. POLYVAL uses a different
+ * modulus for finite field multiplication which makes hardware accelerated
+ * implementations on little-endian machines faster. POLYVAL is used in the
+ * kernel to implement HCTR2, but was originally specified for AES-GCM-SIV
+ * (RFC 8452).
+ *
+ * For more information see:
+ * Length-preserving encryption with HCTR2:
+ *   https://eprint.iacr.org/2021/1441.pdf
+ * AES-GCM-SIV: Nonce Misuse-Resistant Authenticated Encryption:
+ *   https://datatracker.ietf.org/doc/html/rfc8452
+ *
+ * Like GHASH, POLYVAL is not a cryptographic hash function and should
+ * not be used outside of crypto modes explicitly designed to use POLYVAL.
+ *
+ * This implementation uses a convenient trick involving the GHASH and POLYVAL
+ * fields. This trick allows multiplication in the POLYVAL field to be
+ * implemented by using multiplication in the GHASH field as a subroutine. An
+ * element of the POLYVAL field can be converted to an element of the GHASH
+ * field by computing x*REVERSE(a), where REVERSE reverses the byte-ordering of
+ * a. Similarly, an element of the GHASH field can be converted back to the
+ * POLYVAL field by computing REVERSE(x^{-1}*a). For more information, see:
+ * https://datatracker.ietf.org/doc/html/rfc8452#appendix-A
+ *
+ * By using this trick, we do not need to implement the POLYVAL field for the
+ * generic implementation.
+ *
+ * Warning: this generic implementation is not intended to be used in practice
+ * and is not constant time. For practical use, a hardware accelerated
+ * implementation of POLYVAL should be used instead.
+ *
+ */
+
+#include <asm/unaligned.h>
+#include <crypto/algapi.h>
+#include <crypto/gf128mul.h>
+#include <crypto/polyval.h>
+#include <crypto/internal/hash.h>
+#include <linux/crypto.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+
+struct polyval_tfm_ctx {
+	struct gf128mul_4k *gf128;
+};
+
+struct polyval_desc_ctx {
+	union {
+		u8 buffer[POLYVAL_BLOCK_SIZE];
+		be128 buffer128;
+	};
+	u32 bytes;
+};
+
+static void copy_and_reverse(u8 dst[POLYVAL_BLOCK_SIZE],
+			     const u8 src[POLYVAL_BLOCK_SIZE])
+{
+	u64 a = get_unaligned((const u64 *)&src[0]);
+	u64 b = get_unaligned((const u64 *)&src[8]);
+
+	put_unaligned(swab64(a), (u64 *)&dst[8]);
+	put_unaligned(swab64(b), (u64 *)&dst[0]);
+}
+
+/*
+ * Performs multiplication in the POLYVAL field using the GHASH field as a
+ * subroutine.  This function is used as a fallback for hardware accelerated
+ * implementations when simd registers are unavailable.
+ *
+ * Note: This function is not used for polyval-generic, instead we use the 4k
+ * lookup table implementation for finite field multiplication.
+ */
+void polyval_mul_non4k(u8 *op1, const u8 *op2)
+{
+	be128 a, b;
+
+	// Assume one argument is in Montgomery form and one is not.
+	copy_and_reverse((u8 *)&a, op1);
+	copy_and_reverse((u8 *)&b, op2);
+	gf128mul_x_lle(&a, &a);
+	gf128mul_lle(&a, &b);
+	copy_and_reverse(op1, (u8 *)&a);
+}
+EXPORT_SYMBOL_GPL(polyval_mul_non4k);
+
+/*
+ * Perform a POLYVAL update using non4k multiplication.  This function is used
+ * as a fallback for hardware accelerated implementations when simd registers
+ * are unavailable.
+ *
+ * Note: This function is not used for polyval-generic, instead we use the 4k
+ * lookup table implementation of finite field multiplication.
+ */
+void polyval_update_non4k(const u8 *key, const u8 *in,
+			  size_t nblocks, u8 *accumulator)
+{
+	while (nblocks--) {
+		crypto_xor(accumulator, in, POLYVAL_BLOCK_SIZE);
+		polyval_mul_non4k(accumulator, key);
+		in += POLYVAL_BLOCK_SIZE;
+	}
+}
+EXPORT_SYMBOL_GPL(polyval_update_non4k);
+
+static int polyval_setkey(struct crypto_shash *tfm,
+			  const u8 *key, unsigned int keylen)
+{
+	struct polyval_tfm_ctx *ctx = crypto_shash_ctx(tfm);
+	be128 k;
+
+	if (keylen != POLYVAL_BLOCK_SIZE)
+		return -EINVAL;
+
+	gf128mul_free_4k(ctx->gf128);
+
+	BUILD_BUG_ON(sizeof(k) != POLYVAL_BLOCK_SIZE);
+	copy_and_reverse((u8 *)&k, key);
+	gf128mul_x_lle(&k, &k);
+
+	ctx->gf128 = gf128mul_init_4k_lle(&k);
+	memzero_explicit(&k, POLYVAL_BLOCK_SIZE);
+
+	if (!ctx->gf128)
+		return -ENOMEM;
+
+	return 0;
+}
+
+static int polyval_init(struct shash_desc *desc)
+{
+	struct polyval_desc_ctx *dctx = shash_desc_ctx(desc);
+
+	memset(dctx, 0, sizeof(*dctx));
+
+	return 0;
+}
+
+static int polyval_update(struct shash_desc *desc,
+			 const u8 *src, unsigned int srclen)
+{
+	struct polyval_desc_ctx *dctx = shash_desc_ctx(desc);
+	const struct polyval_tfm_ctx *ctx = crypto_shash_ctx(desc->tfm);
+	u8 *pos;
+	u8 tmp[POLYVAL_BLOCK_SIZE];
+	int n;
+
+	if (dctx->bytes) {
+		n = min(srclen, dctx->bytes);
+		pos = dctx->buffer + dctx->bytes - 1;
+
+		dctx->bytes -= n;
+		srclen -= n;
+
+		while (n--)
+			*pos-- ^= *src++;
+
+		if (!dctx->bytes)
+			gf128mul_4k_lle(&dctx->buffer128, ctx->gf128);
+	}
+
+	while (srclen >= POLYVAL_BLOCK_SIZE) {
+		copy_and_reverse(tmp, src);
+		crypto_xor(dctx->buffer, tmp, POLYVAL_BLOCK_SIZE);
+		gf128mul_4k_lle(&dctx->buffer128, ctx->gf128);
+		src += POLYVAL_BLOCK_SIZE;
+		srclen -= POLYVAL_BLOCK_SIZE;
+	}
+
+	if (srclen) {
+		dctx->bytes = POLYVAL_BLOCK_SIZE - srclen;
+		pos = dctx->buffer + POLYVAL_BLOCK_SIZE - 1;
+		while (srclen--)
+			*pos-- ^= *src++;
+	}
+
+	return 0;
+}
+
+static int polyval_final(struct shash_desc *desc, u8 *dst)
+{
+	struct polyval_desc_ctx *dctx = shash_desc_ctx(desc);
+	const struct polyval_tfm_ctx *ctx = crypto_shash_ctx(desc->tfm);
+
+	if (dctx->bytes)
+		gf128mul_4k_lle(&dctx->buffer128, ctx->gf128);
+	copy_and_reverse(dst, dctx->buffer);
+	return 0;
+}
+
+static void polyval_exit_tfm(struct crypto_tfm *tfm)
+{
+	struct polyval_tfm_ctx *ctx = crypto_tfm_ctx(tfm);
+
+	gf128mul_free_4k(ctx->gf128);
+}
+
+static struct shash_alg polyval_alg = {
+	.digestsize	= POLYVAL_DIGEST_SIZE,
+	.init		= polyval_init,
+	.update		= polyval_update,
+	.final		= polyval_final,
+	.setkey		= polyval_setkey,
+	.descsize	= sizeof(struct polyval_desc_ctx),
+	.base		= {
+		.cra_name		= "polyval",
+		.cra_driver_name	= "polyval-generic",
+		.cra_priority		= 100,
+		.cra_blocksize		= POLYVAL_BLOCK_SIZE,
+		.cra_ctxsize		= sizeof(struct polyval_tfm_ctx),
+		.cra_module		= THIS_MODULE,
+		.cra_exit		= polyval_exit_tfm,
+	},
+};
+
+static int __init polyval_mod_init(void)
+{
+	return crypto_register_shash(&polyval_alg);
+}
+
+static void __exit polyval_mod_exit(void)
+{
+	crypto_unregister_shash(&polyval_alg);
+}
+
+subsys_initcall(polyval_mod_init);
+module_exit(polyval_mod_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("POLYVAL hash function");
+MODULE_ALIAS_CRYPTO("polyval");
+MODULE_ALIAS_CRYPTO("polyval-generic");
diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c
index 4ada7e7..e8305c2 100644
--- a/crypto/tcrypt.c
+++ b/crypto/tcrypt.c
@@ -1741,6 +1741,7 @@
 		ret += tcrypt_test("rfc3686(ctr(aes))");
 		ret += tcrypt_test("ofb(aes)");
 		ret += tcrypt_test("cfb(aes)");
+		ret += tcrypt_test("xctr(aes)");
 		break;
 
 	case 11:
@@ -1910,6 +1911,10 @@
 		ret += tcrypt_test("ccm(sm4)");
 		break;
 
+	case 57:
+		ret += tcrypt_test("polyval");
+		break;
+
 	case 100:
 		ret += tcrypt_test("hmac(md5)");
 		break;
@@ -2367,6 +2372,11 @@
 				   16, 16, aead_speed_template_19, num_mb);
 		break;
 
+	case 226:
+		test_cipher_speed("hctr2(aes)", ENCRYPT, sec, NULL,
+				  0, speed_template_32);
+		break;
+
 	case 300:
 		if (alg) {
 			test_hash_speed(alg, sec, generic_hash_speed_template);
diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index 163a128..b6253f7 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -4980,6 +4980,14 @@
 			.hash = __VECS(ghash_tv_template)
 		}
 	}, {
+		.alg = "hctr2(aes)",
+		.generic_driver =
+		    "hctr2_base(xctr(aes-generic),polyval-generic)",
+		.test = alg_test_skcipher,
+		.suite = {
+			.cipher = __VECS(aes_hctr2_tv_template)
+		}
+	}, {
 		.alg = "hmac(md5)",
 		.test = alg_test_hash,
 		.suite = {
@@ -5234,6 +5242,12 @@
 			.hash = __VECS(poly1305_tv_template)
 		}
 	}, {
+		.alg = "polyval",
+		.test = alg_test_hash,
+		.suite = {
+			.hash = __VECS(polyval_tv_template)
+		}
+	}, {
 		.alg = "rfc3686(ctr(aes))",
 		.test = alg_test_skcipher,
 		.fips_allowed = 1,
@@ -5440,6 +5454,12 @@
 			.cipher = __VECS(xchacha20_tv_template)
 		},
 	}, {
+		.alg = "xctr(aes)",
+		.test = alg_test_skcipher,
+		.suite = {
+			.cipher = __VECS(aes_xctr_tv_template)
+		}
+	}, {
 		.alg = "xts(aes)",
 		.generic_driver = "xts(ecb(aes-generic))",
 		.test = alg_test_skcipher,
diff --git a/crypto/testmgr.h b/crypto/testmgr.h
index 2be20a5..652c40d 100644
--- a/crypto/testmgr.h
+++ b/crypto/testmgr.h
@@ -32583,4 +32583,1540 @@
 			  0xae, 0x15, 0x81, 0x15, 0xd0, 0x88, 0xa0, 0x3c, },
 }};
 
+/*
+ * Test vectors generated using https://github.com/google/hctr2
+ */
+static const struct cipher_testvec aes_xctr_tv_template[] = {
+	{
+		.key	= "\x9c\x8d\xc4\xbd\x71\x36\xdc\x82"
+			  "\x7c\xa1\xca\xa3\x23\x5a\xdb\xa4",
+		.iv	= "\x8d\xe7\xa5\x6a\x95\x86\x42\xde"
+			  "\xba\xea\x6e\x69\x03\x33\x86\x0f",
+		.ptext	= "\xbd",
+		.ctext	= "\xb9",
+		.klen	= 16,
+		.len	= 1,
+	},
+	{
+		.key	= "\xbc\x1b\x12\x0c\x3f\x18\xcc\x1f"
+			  "\x5a\x1d\xab\x81\xa8\x68\x7c\x63",
+		.iv	= "\x22\xc1\xdd\x25\x0b\x18\xcb\xa5"
+			  "\x4a\xda\x15\x07\x73\xd9\x88\x10",
+		.ptext	= "\x24\x6e\x64\xc6\x15\x26\x9c\xda"
+			  "\x2a\x4b\x57\x12\xff\x7c\xd6\xb5",
+		.ctext	= "\xd6\x47\x8d\x58\x92\xb2\x84\xf9"
+			  "\xb7\xee\x0d\x98\xa1\x39\x4d\x8f",
+		.klen	= 16,
+		.len	= 16,
+	},
+	{
+		.key	= "\x44\x03\xbf\x4c\x30\xf0\xa7\xd6"
+			  "\xbd\x54\xbb\x66\x8e\xa6\x0e\x8a",
+		.iv	= "\xe6\xf7\x26\xdf\x8c\x3c\xaa\x88"
+			  "\xce\xc1\xbd\x43\x3b\x09\x62\xad",
+		.ptext	= "\x3c\xe3\x46\xb9\x8f\x9d\x3f\x8d"
+			  "\xef\xf2\x53\xab\x24\xe2\x29\x08"
+			  "\xf8\x7e\x1d\xa6\x6d\x86\x7d\x60"
+			  "\x97\x63\x93\x29\x71\x94\xb4",
+		.ctext	= "\xd4\xa3\xc6\xb8\xc1\x6f\x70\x1a"
+			  "\x52\x0c\xed\x4c\xaf\x51\x56\x23"
+			  "\x48\x45\x07\x10\x34\xc5\xba\x71"
+			  "\xe5\xf8\x1e\xd8\xcb\xa6\xe7",
+		.klen	= 16,
+		.len	= 31,
+	},
+	{
+		.key	= "\x5b\x17\x30\x94\x19\x31\xa1\xae"
+			  "\x24\x8e\x42\x1e\x82\xe6\xec\xb8",
+		.iv	= "\xd1\x2e\xb9\xb8\xf8\x49\xeb\x68"
+			  "\x06\xeb\x65\x33\x34\xa2\xeb\xf0",
+		.ptext	= "\x19\x75\xec\x59\x60\x1b\x7a\x3e"
+			  "\x62\x46\x87\xf0\xde\xab\x81\x36"
+			  "\x63\x53\x11\xa0\x1f\xce\x25\x85"
+			  "\x49\x6b\x28\xfa\x1c\x92\xe5\x18"
+			  "\x38\x14\x00\x79\xf2\x9e\xeb\xfc"
+			  "\x36\xa7\x6b\xe1\xe5\xcf\x04\x48"
+			  "\x44\x6d\xbd\x64\xb3\xcb\x78\x05"
+			  "\x8d\x7f\x9a\xaf\x3c\xcf\x6c\x45"
+			  "\x6c\x7c\x46\x4c\xa8\xc0\x1e\xe4"
+			  "\x33\xa5\x7b\xbb\x26\xd9\xc0\x32"
+			  "\x9d\x8a\xb3\xf3\x3d\x52\xe6\x48"
+			  "\x4c\x9b\x4c\x6e\xa4\xa3\xad\x66"
+			  "\x56\x48\xd5\x98\x3a\x93\xc4\x85"
+			  "\xe9\x89\xca\xa6\xc1\xc8\xe7\xf8"
+			  "\xc3\xe9\xef\xbe\x77\xe6\xd1\x3a"
+			  "\xa6\x99\xc8\x2d\xdf\x40\x0f\x44",
+		.ctext	= "\xc6\x1a\x01\x1a\x00\xba\x04\xff"
+			  "\x10\xd1\x7e\x5d\xad\x91\xde\x8c"
+			  "\x08\x55\x95\xae\xd7\x22\x77\x40"
+			  "\xf0\x33\x1b\x51\xef\xfe\x3d\x67"
+			  "\xdf\xc4\x9f\x39\x47\x67\x93\xab"
+			  "\xaa\x37\x55\xfe\x41\xe0\xba\xcd"
+			  "\x25\x02\x7c\x61\x51\xa1\xcc\x72"
+			  "\x7a\x20\x26\xb9\x06\x68\xbd\x19"
+			  "\xc5\x2e\x1b\x75\x4a\x40\xb2\xd2"
+			  "\xc4\xee\xd8\x5b\xa4\x55\x7d\x25"
+			  "\xfc\x01\x4d\x6f\x0a\xfd\x37\x5d"
+			  "\x3e\x67\xc0\x35\x72\x53\x7b\xe2"
+			  "\xd6\x19\x5b\x92\x6c\x3a\x8c\x2a"
+			  "\xe2\xc2\xa2\x4f\x2a\xf2\xb5\x15"
+			  "\x65\xc5\x8d\x97\xf9\xbf\x8c\x98"
+			  "\xe4\x50\x1a\xf2\x76\x55\x07\x49",
+		.klen	= 16,
+		.len	= 128,
+	},
+	{
+		.key	= "\x17\xa6\x01\x3d\x5d\xd6\xef\x2d"
+			  "\x69\x8f\x4c\x54\x5b\xae\x43\xf0",
+		.iv	= "\xa9\x1b\x47\x60\x26\x82\xf7\x1c"
+			  "\x80\xf8\x88\xdd\xfb\x44\xd9\xda",
+		.ptext	= "\xf7\x67\xcd\xa6\x04\x65\x53\x99"
+			  "\x90\x5c\xa2\x56\x74\xd7\x9d\xf2"
+			  "\x0b\x03\x7f\x4e\xa7\x84\x72\x2b"
+			  "\xf0\xa5\xbf\xe6\x9a\x62\x3a\xfe"
+			  "\x69\x5c\x93\x79\x23\x86\x64\x85"
+			  "\xeb\x13\xb1\x5a\xd5\x48\x39\xa0"
+			  "\x70\xfb\x06\x9a\xd7\x12\x5a\xb9"
+			  "\xbe\xed\x2c\x81\x64\xf7\xcf\x80"
+			  "\xee\xe6\x28\x32\x2d\x37\x4c\x32"
+			  "\xf4\x1f\x23\x21\xe9\xc8\xc9\xbf"
+			  "\x54\xbc\xcf\xb4\xc2\x65\x39\xdf"
+			  "\xa5\xfb\x14\x11\xed\x62\x38\xcf"
+			  "\x9b\x58\x11\xdd\xe9\xbd\x37\x57"
+			  "\x75\x4c\x9e\xd5\x67\x0a\x48\xc6"
+			  "\x0d\x05\x4e\xb1\x06\xd7\xec\x2e"
+			  "\x9e\x59\xde\x4f\xab\x38\xbb\xe5"
+			  "\x87\x04\x5a\x2c\x2a\xa2\x8f\x3c"
+			  "\xe7\xe1\x46\xa9\x49\x9f\x24\xad"
+			  "\x2d\xb0\x55\x40\x64\xd5\xda\x7e"
+			  "\x1e\x77\xb8\x29\x72\x73\xc3\x84"
+			  "\xcd\xf3\x94\x90\x58\x76\xc9\x2c"
+			  "\x2a\xad\x56\xde\x33\x18\xb6\x3b"
+			  "\x10\xe9\xe9\x8d\xf0\xa9\x7f\x05"
+			  "\xf7\xb5\x8c\x13\x7e\x11\x3d\x1e"
+			  "\x02\xbb\x5b\xea\x69\xff\x85\xcf"
+			  "\x6a\x18\x97\x45\xe3\x96\xba\x4d"
+			  "\x2d\x7a\x70\x78\x15\x2c\xe9\xdc"
+			  "\x4e\x09\x92\x57\x04\xd8\x0b\xa6"
+			  "\x20\x71\x76\x47\x76\x96\x89\xa0"
+			  "\xd9\x29\xa2\x5a\x06\xdb\x56\x39"
+			  "\x60\x33\x59\x04\x95\x89\xf6\x18"
+			  "\x1d\x70\x75\x85\x3a\xb7\x6e",
+		.ctext	= "\xe1\xe7\x3f\xd3\x6a\xb9\x2f\x64"
+			  "\x37\xc5\xa4\xe9\xca\x0a\xa1\xd6"
+			  "\xea\x7d\x39\xe5\xe6\xcc\x80\x54"
+			  "\x74\x31\x2a\x04\x33\x79\x8c\x8e"
+			  "\x4d\x47\x84\x28\x27\x9b\x3c\x58"
+			  "\x54\x58\x20\x4f\x70\x01\x52\x5b"
+			  "\xac\x95\x61\x49\x5f\xef\xba\xce"
+			  "\xd7\x74\x56\xe7\xbb\xe0\x3c\xd0"
+			  "\x7f\xa9\x23\x57\x33\x2a\xf6\xcb"
+			  "\xbe\x42\x14\x95\xa8\xf9\x7a\x7e"
+			  "\x12\x53\x3a\xe2\x13\xfe\x2d\x89"
+			  "\xeb\xac\xd7\xa8\xa5\xf8\x27\xf3"
+			  "\x74\x9a\x65\x63\xd1\x98\x3a\x7e"
+			  "\x27\x7b\xc0\x20\x00\x4d\xf4\xe5"
+			  "\x7b\x69\xa6\xa8\x06\x50\x85\xb6"
+			  "\x7f\xac\x7f\xda\x1f\xf5\x37\x56"
+			  "\x9b\x2f\xd3\x86\x6b\x70\xbd\x0e"
+			  "\x55\x9a\x9d\x4b\x08\xb5\x5b\x7b"
+			  "\xd4\x7c\xb4\x71\x49\x92\x4a\x1e"
+			  "\xed\x6d\x11\x09\x47\x72\x32\x6a"
+			  "\x97\x53\x36\xaf\xf3\x06\x06\x2c"
+			  "\x69\xf1\x59\x00\x36\x95\x28\x2a"
+			  "\xb6\xcd\x10\x21\x84\x73\x5c\x96"
+			  "\x86\x14\x2c\x3d\x02\xdb\x53\x9a"
+			  "\x61\xde\xea\x99\x84\x7a\x27\xf6"
+			  "\xf7\xc8\x49\x73\x4b\xb8\xeb\xd3"
+			  "\x41\x33\xdd\x09\x68\xe2\x64\xb8"
+			  "\x5f\x75\x74\x97\x91\x54\xda\xc2"
+			  "\x73\x2c\x1e\x5a\x84\x48\x01\x1a"
+			  "\x0d\x8b\x0a\xdf\x07\x2e\xee\x77"
+			  "\x1d\x17\x41\x7a\xc9\x33\x63\xfa"
+			  "\x9f\xc3\x74\x57\x5f\x03\x4c",
+		.klen	= 16,
+		.len	= 255,
+	},
+	{
+		.key	= "\xe5\xf1\x48\x2e\x88\xdb\xc7\x28"
+			  "\xa2\x55\x5d\x2f\x90\x02\xdc\xd3"
+			  "\xf5\xd3\x9e\x87\xd5\x58\x30\x4a",
+		.iv	= "\xa6\x40\x39\xf9\x63\x6c\x2d\xd4"
+			  "\x1b\x71\x05\xa4\x88\x86\x11\xd3",
+		.ptext	= "\xb6\x06\xae\x15\x11\x96\xc1\x44"
+			  "\x44\xc2\x98\xf9\xa8\x0a\x0b",
+		.ctext	= "\x27\x3b\x68\x40\xa9\x5e\x74\x6b"
+			  "\x74\x67\x18\xf9\x37\xed\xed",
+		.klen	= 24,
+		.len	= 15,
+	},
+	{
+		.key	= "\xc8\xa0\x27\x67\x04\x3f\xed\xa5"
+			  "\xb4\x0c\x51\x91\x2d\x27\x77\x33"
+			  "\xa5\xfc\x2a\x9f\x78\xd8\x1c\x68",
+		.iv	= "\x83\x99\x1a\xe2\x84\xca\xa9\x16"
+			  "\x8d\xc4\x2d\x1b\x67\xc8\x86\x21",
+		.ptext	= "\xd6\x22\x85\xb8\x5d\x7e\x26\x2e"
+			  "\xbe\x04\x9d\x0c\x03\x91\x45\x4a"
+			  "\x36",
+		.ctext	= "\x0f\x44\xa9\x62\x72\xec\x12\x26"
+			  "\x3a\xc6\x83\x26\x62\x5e\xb7\x13"
+			  "\x05",
+		.klen	= 24,
+		.len	= 17,
+	},
+	{
+		.key	= "\xc5\x87\x18\x09\x0a\x4e\x66\x3e"
+			  "\x50\x90\x19\x93\xc0\x33\xcf\x80"
+			  "\x3a\x36\x6b\x6c\x43\xd7\xe4\x93",
+		.iv	= "\xdd\x0b\x75\x1f\xee\x2f\xb4\x52"
+			  "\x10\x82\x1f\x79\x8a\xa4\x9b\x87",
+		.ptext	= "\x56\xf9\x13\xce\x9f\x30\x10\x11"
+			  "\x1b\x59\xfd\x39\x5a\x29\xa3\x44"
+			  "\x78\x97\x8c\xf6\x99\x6d\x26\xf1"
+			  "\x32\x60\x6a\xeb\x04\x47\x29\x4c"
+			  "\x7e\x14\xef\x4d\x55\x29\xfe\x36"
+			  "\x37\xcf\x0b\x6e\xf3\xce\x15\xd2",
+		.ctext	= "\x8f\x98\xe1\x5a\x7f\xfe\xc7\x05"
+			  "\x76\xb0\xd5\xde\x90\x52\x2b\xa8"
+			  "\xf3\x6e\x3c\x77\xa5\x33\x63\xdd"
+			  "\x6f\x62\x12\xb0\x80\x10\xc1\x28"
+			  "\x58\xe5\xd6\x24\x44\x04\x55\xf3"
+			  "\x6d\x94\xcb\x2c\x7e\x7a\x85\x79",
+		.klen	= 24,
+		.len	= 48,
+	},
+	{
+		.key	= "\x84\x9b\xe8\x10\x4c\xb3\xd1\x7a"
+			  "\xb3\xab\x4e\x6f\x90\x12\x07\xf8"
+			  "\xef\xde\x42\x09\xbf\x34\x95\xb2",
+		.iv	= "\x66\x62\xf9\x48\x9d\x17\xf7\xdf"
+			  "\x06\x67\xf4\x6d\xf2\xbc\xa2\xe5",
+		.ptext	= "\x2f\xd6\x16\x6b\xf9\x4b\x44\x14"
+			  "\x90\x93\xe5\xfd\x05\xaa\x00\x26"
+			  "\xbd\xab\x11\xb8\xf0\xcb\x11\x72"
+			  "\xdd\xc5\x15\x4f\x4e\x1b\xf8\xc9"
+			  "\x8f\x4a\xd5\x69\xf8\x9e\xfb\x05"
+			  "\x8a\x37\x46\xfe\xfa\x58\x9b\x0e"
+			  "\x72\x90\x9a\x06\xa5\x42\xf4\x7c"
+			  "\x35\xd5\x64\x70\x72\x67\xfc\x8b"
+			  "\xab\x5a\x2f\x64\x9b\xa1\xec\xe7"
+			  "\xe6\x92\x69\xdb\x62\xa4\xe7\x44"
+			  "\x88\x28\xd4\x52\x64\x19\xa9\xd7"
+			  "\x0c\x00\xe6\xe7\xc1\x28\xc1\xf5"
+			  "\x72\xc5\xfa\x09\x22\x2e\xf4\x82"
+			  "\xa3\xdc\xc1\x68\xf9\x29\x55\x8d"
+			  "\x04\x67\x13\xa6\x52\x04\x3c\x0c"
+			  "\x14\xf2\x87\x23\x61\xab\x82\xcb"
+			  "\x49\x5b\x6b\xd4\x4f\x0d\xd4\x95"
+			  "\x82\xcd\xe3\x69\x47\x1b\x31\x73"
+			  "\x73\x77\xc1\x53\x7d\x43\x5e\x4a"
+			  "\x80\x3a\xca\x9c\xc7\x04\x1a\x31"
+			  "\x8e\xe6\x76\x7f\xe1\xb3\xd0\x57"
+			  "\xa2\xb2\xf6\x09\x51\xc9\x6d\xbc"
+			  "\x79\xed\x57\x50\x36\xd2\x93\xa4"
+			  "\x40\x5d\xac\x3a\x3b\xb6\x2d\x89"
+			  "\x78\xa2\xbd\x23\xec\x35\x06\xf0"
+			  "\xa8\xc8\xc9\xb0\xe3\x28\x2b\xba"
+			  "\x70\xa0\xfe\xed\x13\xc4\xd7\x90"
+			  "\xb1\x6a\xe0\xe1\x30\x71\x15\xd0"
+			  "\xe2\xb3\xa6\x4e\xb0\x01\xf9\xe7"
+			  "\x59\xc6\x1e\xed\x46\x2b\xe3\xa8"
+			  "\x22\xeb\x7f\x1c\xd9\xcd\xe0\xa6"
+			  "\x72\x42\x2c\x06\x75\xbb\xb7\x6b"
+			  "\xca\x49\x5e\xa1\x47\x8d\x9e\xfe"
+			  "\x60\xcc\x34\x95\x8e\xfa\x1e\x3e"
+			  "\x85\x4b\x03\x54\xea\x34\x1c\x41"
+			  "\x90\x45\xa6\xbe\xcf\x58\x4f\xca"
+			  "\x2c\x79\xc0\x3e\x8f\xd7\x3b\xd4"
+			  "\x55\x74\xa8\xe1\x57\x09\xbf\xab"
+			  "\x2c\xf9\xe4\xdd\x17\x99\x57\x60"
+			  "\x4b\x88\x2a\x7f\x43\x86\xb9\x9a"
+			  "\x60\xbf\x4c\xcf\x9b\x41\xb8\x99"
+			  "\x69\x15\x4f\x91\x4d\xeb\xdf\x6f"
+			  "\xcc\x4c\xf9\x6f\xf2\x33\x23\xe7"
+			  "\x02\x44\xaa\xa2\xfa\xb1\x39\xa5"
+			  "\xff\x88\xf5\x37\x02\x33\x24\xfc"
+			  "\x79\x11\x4c\x94\xc2\x31\x87\x9c"
+			  "\x53\x19\x99\x32\xe4\xde\x18\xf4"
+			  "\x8f\xe2\xe8\xa3\xfb\x0b\xaa\x7c"
+			  "\xdb\x83\x0f\xf6\xc0\x8a\x9b\xcd"
+			  "\x7b\x16\x05\x5b\xe4\xb4\x34\x03"
+			  "\xe3\x8f\xc9\x4b\x56\x84\x2a\x4c"
+			  "\x36\x72\x3c\x84\x4f\xba\xa2\x7f"
+			  "\xf7\x1b\xba\x4d\x8a\xb8\x5d\x51"
+			  "\x36\xfb\xef\x23\x18\x6f\x33\x2d"
+			  "\xbb\x06\x24\x8e\x33\x98\x6e\xcd"
+			  "\x63\x11\x18\x6b\xcc\x1b\x66\xb9"
+			  "\x38\x8d\x06\x8d\x98\x1a\xef\xaa"
+			  "\x35\x4a\x90\xfa\xb1\xd3\xcc\x11"
+			  "\x50\x4c\x54\x18\x60\x5d\xe4\x11"
+			  "\xfc\x19\xe1\x53\x20\x5c\xe7\xef"
+			  "\x8a\x2b\xa8\x82\x51\x5f\x5d\x43"
+			  "\x34\xe5\xcf\x7b\x1b\x6f\x81\x19"
+			  "\xb7\xdf\xa8\x9e\x81\x89\x5f\x33"
+			  "\x69\xaf\xde\x89\x68\x88\xf0\x71",
+		.ctext	= "\xab\x15\x46\x5b\xed\x4f\xa8\xac"
+			  "\xbf\x31\x30\x84\x55\xa4\xb8\x98"
+			  "\x79\xba\xa0\x15\xa4\x55\x20\xec"
+			  "\xf9\x94\x71\xe6\x6a\x6f\xee\x87"
+			  "\x2e\x3a\xa2\x95\xae\x6e\x56\x09"
+			  "\xe9\xc0\x0f\xe2\xc6\xb7\x30\xa9"
+			  "\x73\x8e\x59\x7c\xfd\xe3\x71\xf7"
+			  "\xae\x8b\x91\xab\x5e\x36\xe9\xa8"
+			  "\xff\x17\xfa\xa2\x94\x93\x11\x42"
+			  "\x67\x96\x99\xc5\xf0\xad\x2a\x57"
+			  "\xf9\xa6\x70\x4a\xdf\x71\xff\xc0"
+			  "\xe2\xaf\x9a\xae\x57\x58\x13\x3b"
+			  "\x2d\xf1\xc7\x8f\xdb\x8a\xcc\xce"
+			  "\x53\x1a\x69\x55\x39\xc8\xbe\xc3"
+			  "\x2d\xb1\x03\xd9\xa3\x99\xf4\x8d"
+			  "\xd9\x2d\x27\xae\xa5\xe7\x77\x7f"
+			  "\xbb\x88\x84\xea\xfa\x19\x3f\x44"
+			  "\x61\x21\x8a\x1f\xbe\xac\x60\xb4"
+			  "\xaf\xe9\x00\xab\xef\x3c\x53\x56"
+			  "\xcd\x4b\x53\xd8\x9b\xfe\x88\x23"
+			  "\x5b\x85\x76\x08\xec\xd1\x6e\x4a"
+			  "\x87\xa4\x7d\x29\x4e\x4f\x3f\xc9"
+			  "\xa4\xab\x63\xea\xdd\xef\x9f\x79"
+			  "\x38\x18\x7d\x90\x90\xf9\x12\x57"
+			  "\x1d\x89\xea\xfe\xd4\x47\x45\x32"
+			  "\x6a\xf6\xe7\xde\x22\x7e\xee\xc1"
+			  "\xbc\x2d\xc3\xbb\xe5\xd4\x13\xac"
+			  "\x63\xff\x5b\xb1\x05\x96\xd5\xf3"
+			  "\x07\x9a\x62\xb6\x30\xea\x7d\x1e"
+			  "\xee\x75\x0a\x1b\xcc\x6e\x4d\xa7"
+			  "\xf7\x4d\x74\xd8\x60\x32\x5e\xd0"
+			  "\x93\xd7\x19\x90\x4e\x26\xdb\xe4"
+			  "\x5e\xd4\xa8\xb9\x76\xba\x56\x91"
+			  "\xc4\x75\x04\x1e\xc2\x77\x24\x6f"
+			  "\xf9\xe8\x4a\xec\x7f\x86\x95\xb3"
+			  "\x5c\x2c\x97\xab\xf0\xf7\x74\x5b"
+			  "\x0b\xc2\xda\x42\x40\x34\x16\xed"
+			  "\x06\xc1\x25\x53\x17\x0d\x81\x4e"
+			  "\xe6\xf2\x0f\x6d\x94\x3c\x90\x7a"
+			  "\xae\x20\xe9\x3f\xf8\x18\x67\x6a"
+			  "\x49\x1e\x41\xb6\x46\xab\xc8\xa7"
+			  "\xcb\x19\x96\xf5\x99\xc0\x66\x3e"
+			  "\x77\xcf\x73\x52\x83\x2a\xe2\x48"
+			  "\x27\x6c\xeb\xe7\xe7\xc4\xd5\x6a"
+			  "\x40\x67\xbc\xbf\x6b\x3c\xf3\xbb"
+			  "\x51\x5e\x31\xac\x03\x81\xab\x61"
+			  "\xfa\xa5\xa6\x7d\x8b\xc3\x8a\x75"
+			  "\x28\x7a\x71\x9c\xac\x8f\x76\xfc"
+			  "\xf9\x6c\x5d\x9b\xd7\xf6\x36\x2d"
+			  "\x61\xd5\x61\xaa\xdd\x01\xfc\x57"
+			  "\x91\x10\xcd\xcd\x6d\x27\x63\x24"
+			  "\x67\x46\x7a\xbb\x61\x56\x39\xb1"
+			  "\xd6\x79\xfe\x77\xca\xd6\x73\x59"
+			  "\x6e\x58\x11\x90\x03\x26\x74\x2a"
+			  "\xfa\x52\x12\x47\xfb\x12\xeb\x3e"
+			  "\x88\xf0\x52\x6c\xc0\x54\x7a\x88"
+			  "\x8c\xe5\xde\x9e\xba\xb9\xf2\xe1"
+			  "\x97\x2e\x5c\xbd\xf4\x13\x7e\xf3"
+			  "\xc4\xe1\x87\xa5\x35\xfa\x7c\x71"
+			  "\x1a\xc9\xf4\xa8\x57\xe2\x5a\x6b"
+			  "\x14\xe0\x73\xaf\x56\x6b\xa0\x00"
+			  "\x9e\x5f\x64\xac\x00\xfb\xc4\x92"
+			  "\xe5\xe2\x8a\xb2\x9e\x75\x49\x85"
+			  "\x25\x66\xa5\x1a\xf9\x7d\x1d\x60",
+		.klen	= 24,
+		.len	= 512,
+	},
+	{
+		.key	= "\x05\x60\x3a\x7e\x60\x90\x46\x18"
+			  "\x6c\x60\xba\xeb\x12\xd7\xbe\xd1"
+			  "\xd3\xf6\x10\x46\x9d\xf1\x0c\xb4"
+			  "\x73\xe3\x93\x27\xa8\x2c\x13\xaa",
+		.iv	= "\xf5\x96\xd1\xb6\xcb\x44\xd8\xd0"
+			  "\x3e\xdb\x92\x80\x08\x94\xcd\xd3",
+		.ptext	= "\x78",
+		.ctext	= "\xc5",
+		.klen	= 32,
+		.len	= 1,
+	},
+	{
+		.key	= "\x35\xca\x38\xf3\xd9\xd6\x34\xef"
+			  "\xcd\xee\xa3\x26\x86\xba\xfb\x45"
+			  "\x01\xfa\x52\x67\xff\xc5\x9d\xaa"
+			  "\x64\x9a\x05\xbb\x85\x20\xa7\xf2",
+		.iv	= "\xe3\xda\xf5\xff\x42\x59\x87\x86"
+			  "\xee\x7b\xd6\xb4\x6a\x25\x44\xff",
+		.ptext	= "\x44\x67\x1e\x04\x53\xd2\x4b\xd9"
+			  "\x96\x33\x07\x54\xe4\x8e\x20",
+		.ctext	= "\xcc\x55\x40\x79\x47\x5c\x8b\xa6"
+			  "\xca\x7b\x9f\x50\xe3\x21\xea",
+		.klen	= 32,
+		.len	= 15,
+	},
+	{
+		.key	= "\xaf\xd9\x14\x14\xd5\xdb\xc9\xce"
+			  "\x76\x5c\x5a\xbf\x43\x05\x29\x24"
+			  "\xc4\x13\x68\xcc\xe8\x37\xbd\xb9"
+			  "\x41\x20\xf5\x53\x48\xd0\xa2\xd6",
+		.iv	= "\xa7\xb4\x00\x08\x79\x10\xae\xf5"
+			  "\x02\xbf\x85\xb2\x69\x4c\xc6\x04",
+		.ptext	= "\xac\x6a\xa8\x0c\xb0\x84\xbf\x4c"
+			  "\xae\x94\x20\x58\x7e\x00\x93\x89",
+		.ctext	= "\xd5\xaa\xe2\xe9\x86\x4c\x95\x4e"
+			  "\xde\xb6\x15\xcb\xdc\x1f\x13\x38",
+		.klen	= 32,
+		.len	= 16,
+	},
+	{
+		.key	= "\xed\xe3\x8b\xe7\x1c\x17\xbf\x4a"
+			  "\x02\xe2\xfc\x76\xac\xf5\x3c\x00"
+			  "\x5d\xdc\xfc\x83\xeb\x45\xb4\xcb"
+			  "\x59\x62\x60\xec\x69\x9c\x16\x45",
+		.iv	= "\xe4\x0e\x2b\x90\xd2\xfa\x94\x2e"
+			  "\x10\xe5\x64\x2b\x97\x28\x15\xc7",
+		.ptext	= "\xe6\x53\xff\x60\x0e\xc4\x51\xe4"
+			  "\x93\x4d\xe5\x55\xc5\xd9\xad\x48"
+			  "\x52",
+		.ctext	= "\xba\x25\x28\xf5\xcf\x31\x91\x80"
+			  "\xda\x2b\x95\x5f\x20\xcb\xfb\x9f"
+			  "\xc6",
+		.klen	= 32,
+		.len	= 17,
+	},
+	{
+		.key	= "\x77\x5c\xc0\x73\x9a\x64\x97\x91"
+			  "\x2f\xee\xe0\x20\xc2\x04\x59\x2e"
+			  "\x97\xd2\xa7\x70\xb3\xb0\x21\x6b"
+			  "\x8f\xbf\xb8\x51\xa8\xea\x0f\x62",
+		.iv	= "\x31\x8e\x1f\xcd\xfd\x23\xeb\x7f"
+			  "\x8a\x1f\x1b\x23\x53\x27\x44\xe5",
+		.ptext	= "\xcd\xff\x8c\x9b\x94\x5a\x51\x3f"
+			  "\x40\x93\x56\x93\x66\x39\x63\x1f"
+			  "\xbf\xe6\xa4\xfa\xbe\x79\x93\x03"
+			  "\xf5\x66\x74\x16\xfc\xe4\xce",
+		.ctext	= "\x8b\xd3\xc3\xce\x66\xf8\x66\x4c"
+			  "\xad\xd6\xf5\x0f\xd8\x99\x5a\x75"
+			  "\xa1\x3c\xab\x0b\x21\x36\x57\x72"
+			  "\x88\x29\xe9\xea\x4a\x8d\xe9",
+		.klen	= 32,
+		.len	= 31,
+	},
+	{
+		.key	= "\xa1\x2f\x4d\xde\xfe\xa1\xff\xa8"
+			  "\x73\xdd\xe3\xe2\x95\xfc\xea\x9c"
+			  "\xd0\x80\x42\x0c\xb8\x43\x3e\x99"
+			  "\x39\x38\x0a\x8c\xe8\x45\x3a\x7b",
+		.iv	= "\x32\xc4\x6f\xb1\x14\x43\xd1\x87"
+			  "\xe2\x6f\x5a\x58\x02\x36\x7e\x2a",
+		.ptext	= "\x9e\x5c\x1e\xf1\xd6\x7d\x09\x57"
+			  "\x18\x48\x55\xda\x7d\x44\xf9\x6d"
+			  "\xac\xcd\x59\xbb\x10\xa2\x94\x67"
+			  "\xd1\x6f\xfe\x6b\x4a\x11\xe8\x04"
+			  "\x09\x26\x4f\x8d\x5d\xa1\x7b\x42"
+			  "\xf9\x4b\x66\x76\x38\x12\xfe\xfe",
+		.ctext	= "\x42\xbc\xa7\x64\x15\x9a\x04\x71"
+			  "\x2c\x5f\x94\xba\x89\x3a\xad\xbc"
+			  "\x87\xb3\xf4\x09\x4f\x57\x06\x18"
+			  "\xdc\x84\x20\xf7\x64\x85\xca\x3b"
+			  "\xab\xe6\x33\x56\x34\x60\x5d\x4b"
+			  "\x2e\x16\x13\xd4\x77\xde\x2d\x2b",
+		.klen	= 32,
+		.len	= 48,
+	},
+	{
+		.key	= "\xfb\xf5\xb7\x3d\xa6\x95\x42\xbf"
+			  "\xd2\x94\x6c\x74\x0f\xbc\x5a\x28"
+			  "\x35\x3c\x51\x58\x84\xfb\x7d\x11"
+			  "\x16\x1e\x00\x97\x37\x08\xb7\x16",
+		.iv	= "\x9b\x53\x57\x40\xe6\xd9\xa7\x27"
+			  "\x78\xd4\x9b\xd2\x29\x1d\x24\xa9",
+		.ptext	= "\x8b\x02\x60\x0a\x3e\xb7\x10\x59"
+			  "\xc3\xac\xd5\x2a\x75\x81\xf2\xdb"
+			  "\x55\xca\x65\x86\x44\xfb\xfe\x91"
+			  "\x26\xbb\x45\xb2\x46\x22\x3e\x08"
+			  "\xa2\xbf\x46\xcb\x68\x7d\x45\x7b"
+			  "\xa1\x6a\x3c\x6e\x25\xeb\xed\x31"
+			  "\x7a\x8b\x47\xf9\xde\xec\x3d\x87"
+			  "\x09\x20\x2e\xfa\xba\x8b\x9b\xc5"
+			  "\x6c\x25\x9c\x9d\x2a\xe8\xab\x90"
+			  "\x3f\x86\xee\x61\x13\x21\xd4\xde"
+			  "\xe1\x0c\x95\xfc\x5c\x8a\x6e\x0a"
+			  "\x73\xcf\x08\x69\x44\x4e\xde\x25"
+			  "\xaf\xaa\x56\x04\xc4\xb3\x60\x44"
+			  "\x3b\x8b\x3d\xee\xae\x42\x4b\xd2"
+			  "\x9a\x6c\xa0\x8e\x52\x06\xb2\xd1"
+			  "\x5d\x38\x30\x6d\x27\x9b\x1a\xd8",
+		.ctext	= "\xa3\x78\x33\x78\x95\x95\x97\x07"
+			  "\x53\xa3\xa1\x5b\x18\x32\x27\xf7"
+			  "\x09\x12\x53\x70\x83\xb5\x6a\x9f"
+			  "\x26\x6d\x10\x0d\xe0\x1c\xe6\x2b"
+			  "\x70\x00\xdc\xa1\x60\xef\x1b\xee"
+			  "\xc5\xa5\x51\x17\xae\xcc\xf2\xed"
+			  "\xc4\x60\x07\xdf\xd5\x7a\xe9\x90"
+			  "\x3c\x9f\x96\x5d\x72\x65\x5d\xef"
+			  "\xd0\x94\x32\xc4\x85\x90\x78\xa1"
+			  "\x2e\x64\xf6\xee\x8e\x74\x3f\x20"
+			  "\x2f\x12\x3b\x3d\xd5\x39\x8e\x5a"
+			  "\xf9\x8f\xce\x94\x5d\x82\x18\x66"
+			  "\x14\xaf\x4c\xfe\xe0\x91\xc3\x4a"
+			  "\x85\xcf\xe7\xe8\xf7\xcb\xf0\x31"
+			  "\x88\x7d\xc9\x5b\x71\x9d\x5f\xd2"
+			  "\xfa\xed\xa6\x24\xda\xbb\xb1\x84",
+		.klen	= 32,
+		.len	= 128,
+	},
+	{
+		.key	= "\x32\x37\x2b\x8f\x7b\xb1\x23\x79"
+			  "\x05\x52\xde\x05\xf1\x68\x3f\x6c"
+			  "\xa4\xae\xbc\x21\xc2\xc6\xf0\xbd"
+			  "\x0f\x20\xb7\xa4\xc5\x05\x7b\x64",
+		.iv	= "\xff\x26\x4e\x67\x48\xdd\xcf\xfe"
+			  "\x42\x09\x04\x98\x5f\x1e\xfa\x80",
+		.ptext	= "\x99\xdc\x3b\x19\x41\xf9\xff\x6e"
+			  "\x76\xb5\x03\xfa\x61\xed\xf8\x44"
+			  "\x70\xb9\xf0\x83\x80\x6e\x31\x77"
+			  "\x77\xe4\xc7\xb4\x77\x02\xab\x91"
+			  "\x82\xc6\xf8\x7c\x46\x61\x03\x69"
+			  "\x09\xa0\xf7\x12\xb7\x81\x6c\xa9"
+			  "\x10\x5c\xbb\x55\xb3\x44\xed\xb5"
+			  "\xa2\x52\x48\x71\x90\x5d\xda\x40"
+			  "\x0b\x7f\x4a\x11\x6d\xa7\x3d\x8e"
+			  "\x1b\xcd\x9d\x4e\x75\x8b\x7d\x87"
+			  "\xe5\x39\x34\x32\x1e\xe6\x8d\x51"
+			  "\xd4\x1f\xe3\x1d\x50\xa0\x22\x37"
+			  "\x7c\xb0\xd9\xfb\xb6\xb2\x16\xf6"
+			  "\x6d\x26\xa0\x4e\x8c\x6a\xe6\xb6"
+			  "\xbe\x4c\x7c\xe3\x88\x10\x18\x90"
+			  "\x11\x50\x19\x90\xe7\x19\x3f\xd0"
+			  "\x31\x15\x0f\x06\x96\xfe\xa7\x7b"
+			  "\xc3\x32\x88\x69\xa4\x12\xe3\x64"
+			  "\x02\x30\x17\x74\x6c\x88\x7c\x9b"
+			  "\xd6\x6d\x75\xdf\x11\x86\x70\x79"
+			  "\x48\x7d\x34\x3e\x33\x58\x07\x8b"
+			  "\xd2\x50\xac\x35\x15\x45\x05\xb4"
+			  "\x4d\x31\x97\x19\x87\x23\x4b\x87"
+			  "\x53\xdc\xa9\x19\x78\xf1\xbf\x35"
+			  "\x30\x04\x14\xd4\xcf\xb2\x8c\x87"
+			  "\x7d\xdb\x69\xc9\xcd\xfe\x40\x3e"
+			  "\x8d\x66\x5b\x61\xe5\xf0\x2d\x87"
+			  "\x93\x3a\x0c\x2b\x04\x98\x05\xc2"
+			  "\x56\x4d\xc4\x6c\xcd\x7a\x98\x7e"
+			  "\xe2\x2d\x79\x07\x91\x9f\xdf\x2f"
+			  "\x72\xc9\x8f\xcb\x0b\x87\x1b\xb7"
+			  "\x04\x86\xcb\x47\xfa\x5d\x03",
+		.ctext	= "\x0b\x00\xf7\xf2\xc8\x6a\xba\x9a"
+			  "\x0a\x97\x18\x7a\x00\xa0\xdb\xf4"
+			  "\x5e\x8e\x4a\xb7\xe0\x51\xf1\x75"
+			  "\x17\x8b\xb4\xf1\x56\x11\x05\x9f"
+			  "\x2f\x2e\xba\x67\x04\xe1\xb4\xa5"
+			  "\xfc\x7c\x8c\xad\xc6\xb9\xd1\x64"
+			  "\xca\xbd\x5d\xaf\xdb\x65\x48\x4f"
+			  "\x1b\xb3\x94\x5c\x0b\xd0\xee\xcd"
+			  "\xb5\x7f\x43\x8a\xd8\x8b\x66\xde"
+			  "\xd2\x9c\x13\x65\xa4\x47\xa7\x03"
+			  "\xc5\xa1\x46\x8f\x2f\x84\xbc\xef"
+			  "\x48\x9d\x9d\xb5\xbd\x43\xff\xd2"
+			  "\xd2\x7a\x5a\x13\xbf\xb4\xf6\x05"
+			  "\x17\xcd\x01\x12\xf0\x35\x27\x96"
+			  "\xf4\xc1\x65\xf7\x69\xef\x64\x1b"
+			  "\x6e\x4a\xe8\x77\xce\x83\x01\xb7"
+			  "\x60\xe6\x45\x2a\xcd\x41\x4a\xb5"
+			  "\x8e\xcc\x45\x93\xf1\xd6\x64\x5f"
+			  "\x32\x60\xe4\x29\x4a\x82\x6c\x86"
+			  "\x16\xe4\xcc\xdb\x5f\xc8\x11\xa6"
+			  "\xfe\x88\xd6\xc3\xe5\x5c\xbb\x67"
+			  "\xec\xa5\x7b\xf5\xa8\x4f\x77\x25"
+			  "\x5d\x0c\x2a\x99\xf9\xb9\xd1\xae"
+			  "\x3c\x83\x2a\x93\x9b\x66\xec\x68"
+			  "\x2c\x93\x02\x8a\x8a\x1e\x2f\x50"
+			  "\x09\x37\x19\x5c\x2a\x3a\xc2\xcb"
+			  "\xcb\x89\x82\x81\xb7\xbb\xef\x73"
+			  "\x8b\xc9\xae\x42\x96\xef\x70\xc0"
+			  "\x89\xc7\x3e\x6a\x26\xc3\xe4\x39"
+			  "\x53\xa9\xcf\x63\x7d\x05\xf3\xff"
+			  "\x52\x04\xf6\x7f\x23\x96\xe9\xf7"
+			  "\xff\xd6\x50\xa3\x0e\x20\x71",
+		.klen	= 32,
+		.len	= 255,
+	},
+	{
+		.key	= "\x39\x5f\xf4\x9c\x90\x3a\x9a\x25"
+			  "\x15\x11\x79\x39\xed\x26\x5e\xf6"
+			  "\xda\xcf\x33\x4f\x82\x97\xab\x10"
+			  "\xc1\x55\x48\x82\x80\xa8\x02\xb2",
+		.iv	= "\x82\x60\xd9\x06\xeb\x40\x99\x76"
+			  "\x08\xc5\xa4\x83\x45\xb8\x38\x5a",
+		.ptext	= "\xa1\xa8\xac\xac\x08\xaf\x8f\x84"
+			  "\xbf\xcc\x79\x31\x5e\x61\x01\xd1"
+			  "\x4d\x5f\x9b\xcd\x91\x92\x9a\xa1"
+			  "\x99\x0d\x49\xb2\xd7\xfd\x25\x93"
+			  "\x51\x96\xbd\x91\x8b\x08\xf1\xc6"
+			  "\x0d\x17\xf6\xef\xfd\xd2\x78\x16"
+			  "\xc8\x08\x27\x7b\xca\x98\xc6\x12"
+			  "\x86\x11\xdb\xd5\x08\x3d\x5a\x2c"
+			  "\xcf\x15\x0e\x9b\x42\x78\xeb\x1f"
+			  "\x52\xbc\xd7\x5a\x8a\x33\x6c\x14"
+			  "\xfc\x61\xad\x2e\x1e\x03\x66\xea"
+			  "\x79\x0e\x88\x88\xde\x93\xe3\x81"
+			  "\xb5\xc4\x1c\xe6\x9c\x08\x18\x8e"
+			  "\xa0\x87\xda\xe6\xf8\xcb\x30\x44"
+			  "\x2d\x4e\xc0\xa3\x60\xf9\x62\x7b"
+			  "\x4b\xd5\x61\x6d\xe2\x67\x95\x54"
+			  "\x10\xd1\xca\x22\xe8\xb6\xb1\x3a"
+			  "\x2d\xd7\x35\x5b\x22\x88\x55\x67"
+			  "\x3d\x83\x8f\x07\x98\xa8\xf2\xcf"
+			  "\x04\xb7\x9e\x52\xca\xe0\x98\x72"
+			  "\x5c\xc1\x00\xd4\x1f\x2c\x61\xf3"
+			  "\xe8\x40\xaf\x4a\xee\x66\x41\xa0"
+			  "\x02\x77\x29\x30\x65\x59\x4b\x20"
+			  "\x7b\x0d\x80\x97\x27\x7f\xd5\x90"
+			  "\xbb\x9d\x76\x90\xe5\x43\x43\x72"
+			  "\xd0\xd4\x14\x75\x66\xb3\xb6\xaf"
+			  "\x09\xe4\x23\xb0\x62\xad\x17\x28"
+			  "\x39\x26\xab\xf5\xf7\x5c\xb6\x33"
+			  "\xbd\x27\x09\x5b\x29\xe4\x40\x0b"
+			  "\xc1\x26\x32\xdb\x9a\xdf\xf9\x5a"
+			  "\xae\x03\x2c\xa4\x40\x84\x9a\xb7"
+			  "\x4e\x47\xa8\x0f\x23\xc7\xbb\xcf"
+			  "\x2b\xf2\x32\x6c\x35\x6a\x91\xba"
+			  "\x0e\xea\xa2\x8b\x2f\xbd\xb5\xea"
+			  "\x6e\xbc\xb5\x4b\x03\xb3\x86\xe0"
+			  "\x86\xcf\xba\xcb\x38\x2c\x32\xa6"
+			  "\x6d\xe5\x28\xa6\xad\xd2\x7f\x73"
+			  "\x43\x14\xf8\xb1\x99\x12\x2d\x2b"
+			  "\xdf\xcd\xf2\x81\x43\x94\xdf\xb1"
+			  "\x17\xc9\x33\xa6\x3d\xef\x96\xb8"
+			  "\xd6\x0d\x00\xec\x49\x66\x85\x5d"
+			  "\x44\x62\x12\x04\x55\x5c\x48\xd3"
+			  "\xbd\x73\xac\x54\x8f\xbf\x97\x8e"
+			  "\x85\xfd\xc2\xa1\x25\x32\x38\x6a"
+			  "\x1f\xac\x57\x3c\x4f\x56\x73\xf2"
+			  "\x1d\xb6\x48\x68\xc7\x0c\xe7\x60"
+			  "\xd2\x8e\x4d\xfb\xc7\x20\x7b\xb7"
+			  "\x45\x28\x12\xc6\x26\xae\xea\x7c"
+			  "\x5d\xe2\x46\xb5\xae\xe1\xc3\x98"
+			  "\x6f\x72\xd5\xa2\xfd\xed\x40\xfd"
+			  "\xf9\xdf\x61\xec\x45\x2c\x15\xe0"
+			  "\x1e\xbb\xde\x71\x37\x5f\x73\xc2"
+			  "\x11\xcc\x6e\x6d\xe1\xb5\x1b\xd2"
+			  "\x2a\xdd\x19\x8a\xc2\xe1\xa0\xa4"
+			  "\x26\xeb\xb2\x2c\x4f\x77\x52\xf1"
+			  "\x42\x72\x6c\xad\xd7\x78\x5d\x72"
+			  "\xc9\x16\x26\x25\x1b\x4c\xe6\x58"
+			  "\x79\x57\xb5\x06\x15\x4f\xe5\xba"
+			  "\xa2\x7f\x2d\x5b\x87\x8a\x44\x70"
+			  "\xec\xc7\xef\x84\xae\x60\xa2\x61"
+			  "\x86\xe9\x18\xcd\x28\xc4\xa4\xf5"
+			  "\xbc\x84\xb8\x86\xa0\xba\xf1\xf1"
+			  "\x08\x3b\x32\x75\x35\x22\x7a\x65"
+			  "\xca\x48\xe8\xef\x6e\xe2\x8e\x00",
+		.ctext	= "\x2f\xae\xd8\x67\xeb\x15\xde\x75"
+			  "\x53\xa3\x0e\x5a\xcf\x1c\xbe\xea"
+			  "\xde\xf9\xcf\xc2\x9f\xfd\x0f\x44"
+			  "\xc0\xe0\x7a\x76\x1d\xcb\x4a\xf8"
+			  "\x35\xd6\xe3\x95\x98\x6b\x3f\x89"
+			  "\xc4\xe6\xb6\x6f\xe1\x8b\x39\x4b"
+			  "\x1c\x6c\x77\xe4\xe1\x8a\xbc\x61"
+			  "\x00\x6a\xb1\x37\x2f\x45\xe6\x04"
+			  "\x52\x0b\xfc\x1e\x32\xc1\xd8\x9d"
+			  "\xfa\xdd\x67\x5c\xe0\x75\x83\xd0"
+			  "\x21\x9e\x02\xea\xc0\x7f\xc0\x29"
+			  "\xb3\x6c\xa5\x97\xb3\x29\x82\x1a"
+			  "\x94\xa5\xb4\xb6\x49\xe5\xa5\xad"
+			  "\x95\x40\x52\x7c\x84\x88\xa4\xa8"
+			  "\x26\xe4\xd9\x5d\x41\xf2\x93\x7b"
+			  "\xa4\x48\x1b\x66\x91\xb9\x7c\xc2"
+			  "\x99\x29\xdf\xd8\x30\xac\xd4\x47"
+			  "\x42\xa0\x14\x87\x67\xb8\xfd\x0b"
+			  "\x1e\xcb\x5e\x5c\x9a\xc2\x04\x8b"
+			  "\x17\x29\x9d\x99\x7f\x86\x4c\xe2"
+			  "\x5c\x96\xa6\x0f\xb6\x47\x33\x5c"
+			  "\xe4\x50\x49\xd5\x4f\x92\x0b\x9a"
+			  "\xbc\x52\x4c\x41\xf5\xc9\x3e\x76"
+			  "\x55\x55\xd4\xdc\x71\x14\x23\xfc"
+			  "\x5f\xd5\x08\xde\xa0\xf7\x28\xc0"
+			  "\xe1\x61\xac\x64\x66\xf6\xd1\x31"
+			  "\xe4\xa4\xa9\xed\xbc\xad\x4f\x3b"
+			  "\x59\xb9\x48\x1b\xe7\xb1\x6f\xc6"
+			  "\xba\x40\x1c\x0b\xe7\x2f\x31\x65"
+			  "\x85\xf5\xe9\x14\x0a\x31\xf5\xf3"
+			  "\xc0\x1c\x20\x35\x73\x38\x0f\x8e"
+			  "\x39\xf0\x68\xae\x08\x9c\x87\x4b"
+			  "\x42\xfc\x22\x17\xee\x96\x51\x2a"
+			  "\xd8\x57\x5a\x35\xea\x72\x74\xfc"
+			  "\xb3\x0e\x69\x9a\xe1\x4f\x24\x90"
+			  "\xc5\x4b\xe5\xd7\xe3\x82\x2f\xc5"
+			  "\x62\x46\x3e\xab\x72\x4e\xe0\xf3"
+			  "\x90\x09\x4c\xb2\xe1\xe8\xa0\xf5"
+			  "\x46\x40\x2b\x47\x85\x3c\x21\x90"
+			  "\x3d\xad\x25\x5a\x36\xdf\xe5\xbc"
+			  "\x7e\x80\x4d\x53\x77\xf1\x79\xa6"
+			  "\xec\x22\x80\x88\x68\xd6\x2d\x8b"
+			  "\x3e\xf7\x52\xc7\x2a\x20\x42\x5c"
+			  "\xed\x99\x4f\x32\x80\x00\x7e\x73"
+			  "\xd7\x6d\x7f\x7d\x42\x54\x4a\xfe"
+			  "\xff\x6f\x61\xca\x2a\xbb\x4f\xeb"
+			  "\x4f\xe4\x4e\xaf\x2c\x4f\x82\xcd"
+			  "\xa1\xa7\x11\xb3\x34\x33\xcf\x32"
+			  "\x63\x0e\x24\x3a\x35\xbe\x06\xd5"
+			  "\x17\xcb\x02\x30\x33\x6e\x8c\x49"
+			  "\x40\x6e\x34\x8c\x07\xd4\x3e\xe6"
+			  "\xaf\x78\x6d\x8c\x10\x5f\x21\x58"
+			  "\x49\x26\xc5\xaf\x0d\x7d\xd4\xaf"
+			  "\xcd\x5b\xa1\xe3\xf6\x39\x1c\x9b"
+			  "\x8e\x00\xa1\xa7\x9e\x17\x4a\xc0"
+			  "\x54\x56\x9e\xcf\xcf\x88\x79\x8d"
+			  "\x50\xf7\x56\x8e\x0a\x73\x46\x6b"
+			  "\xc3\xb9\x9b\x6c\x7d\xc4\xc8\xb6"
+			  "\x03\x5f\x30\x62\x7d\xe6\xdb\x15"
+			  "\xe1\x39\x02\x8c\xff\xda\xc8\x43"
+			  "\xf2\xa9\xbf\x00\xe7\x3a\x61\x89"
+			  "\xdf\xb0\xca\x7d\x8c\x8a\x6a\x9f"
+			  "\x18\x89\x3d\x39\xac\x36\x6f\x05"
+			  "\x1f\xb5\xda\x00\xea\xe1\x51\x21",
+		.klen	= 32,
+		.len	= 512,
+	},
+
+};
+
+/*
+ * Test vectors generated using https://github.com/google/hctr2
+ *
+ * To ensure compatibility with RFC 8452, some tests were sourced from
+ * https://datatracker.ietf.org/doc/html/rfc8452
+ */
+static const struct hash_testvec polyval_tv_template[] = {
+	{ // From RFC 8452
+		.key	= "\x31\x07\x28\xd9\x91\x1f\x1f\x38"
+			  "\x37\xb2\x43\x16\xc3\xfa\xb9\xa0",
+		.plaintext	= "\x65\x78\x61\x6d\x70\x6c\x65\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x48\x65\x6c\x6c\x6f\x20\x77\x6f"
+			  "\x72\x6c\x64\x00\x00\x00\x00\x00"
+			  "\x38\x00\x00\x00\x00\x00\x00\x00"
+			  "\x58\x00\x00\x00\x00\x00\x00\x00",
+		.digest	= "\xad\x7f\xcf\x0b\x51\x69\x85\x16"
+			  "\x62\x67\x2f\x3c\x5f\x95\x13\x8f",
+		.psize	= 48,
+		.ksize	= 16,
+	},
+	{ // From RFC 8452
+		.key	= "\xd9\xb3\x60\x27\x96\x94\x94\x1a"
+			  "\xc5\xdb\xc6\x98\x7a\xda\x73\x77",
+		.plaintext	= "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00",
+		.digest	= "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00",
+		.psize	= 16,
+		.ksize	= 16,
+	},
+	{ // From RFC 8452
+		.key	= "\xd9\xb3\x60\x27\x96\x94\x94\x1a"
+			  "\xc5\xdb\xc6\x98\x7a\xda\x73\x77",
+		.plaintext	= "\x01\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x40\x00\x00\x00\x00\x00\x00\x00",
+		.digest	= "\xeb\x93\xb7\x74\x09\x62\xc5\xe4"
+			  "\x9d\x2a\x90\xa7\xdc\x5c\xec\x74",
+		.psize	= 32,
+		.ksize	= 16,
+	},
+	{ // From RFC 8452
+		.key	= "\xd9\xb3\x60\x27\x96\x94\x94\x1a"
+			  "\xc5\xdb\xc6\x98\x7a\xda\x73\x77",
+		.plaintext	= "\x01\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x02\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x03\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x80\x01\x00\x00\x00\x00\x00\x00",
+		.digest	= "\x81\x38\x87\x46\xbc\x22\xd2\x6b"
+			  "\x2a\xbc\x3d\xcb\x15\x75\x42\x22",
+		.psize	= 64,
+		.ksize	= 16,
+	},
+	{ // From RFC 8452
+		.key	= "\xd9\xb3\x60\x27\x96\x94\x94\x1a"
+			  "\xc5\xdb\xc6\x98\x7a\xda\x73\x77",
+		.plaintext	= "\x01\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x02\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x03\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x04\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x02\x00\x00\x00\x00\x00\x00",
+		.digest	= "\x1e\x39\xb6\xd3\x34\x4d\x34\x8f"
+			  "\x60\x44\xf8\x99\x35\xd1\xcf\x78",
+		.psize	= 80,
+		.ksize	= 16,
+	},
+	{ // From RFC 8452
+		.key	= "\xd9\xb3\x60\x27\x96\x94\x94\x1a"
+			  "\xc5\xdb\xc6\x98\x7a\xda\x73\x77",
+		.plaintext	= "\x01\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x02\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x03\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x04\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x05\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x08\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x02\x00\x00\x00\x00\x00\x00",
+		.digest	= "\xff\xcd\x05\xd5\x77\x0f\x34\xad"
+			  "\x92\x67\xf0\xa5\x99\x94\xb1\x5a",
+		.psize	= 96,
+		.ksize	= 16,
+	},
+	{ // Random ( 1)
+		.key	= "\x90\xcc\xac\xee\xba\xd7\xd4\x68"
+			  "\x98\xa6\x79\x70\xdf\x66\x15\x6c",
+		.plaintext	= "",
+		.digest	= "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00",
+		.psize	= 0,
+		.ksize	= 16,
+	},
+	{ // Random ( 1)
+		.key	= "\xc1\x45\x71\xf0\x30\x07\x94\xe7"
+			  "\x3a\xdd\xe4\xc6\x19\x2d\x02\xa2",
+		.plaintext	= "\xc1\x5d\x47\xc7\x4c\x7c\x5e\x07"
+			  "\x85\x14\x8f\x79\xcc\x73\x83\xf7"
+			  "\x35\xb8\xcb\x73\x61\xf0\x53\x31"
+			  "\xbf\x84\xde\xb6\xde\xaf\xb0\xb8"
+			  "\xb7\xd9\x11\x91\x89\xfd\x1e\x4c"
+			  "\x84\x4a\x1f\x2a\x87\xa4\xaf\x62"
+			  "\x8d\x7d\x58\xf6\x43\x35\xfc\x53"
+			  "\x8f\x1a\xf6\x12\xe1\x13\x3f\x66"
+			  "\x91\x4b\x13\xd6\x45\xfb\xb0\x7a"
+			  "\xe0\x8b\x8e\x99\xf7\x86\x46\x37"
+			  "\xd1\x22\x9e\x52\xf3\x3f\xd9\x75"
+			  "\x2c\x2c\xc6\xbb\x0e\x08\x14\x29"
+			  "\xe8\x50\x2f\xd8\xbe\xf4\xe9\x69"
+			  "\x4a\xee\xf7\xae\x15\x65\x35\x1e",
+		.digest	= "\x00\x4f\x5d\xe9\x3b\xc0\xd6\x50"
+			  "\x3e\x38\x73\x86\xc6\xda\xca\x7f",
+		.psize	= 112,
+		.ksize	= 16,
+	},
+	{ // Random ( 1)
+		.key	= "\x37\xbe\x68\x16\x50\xb9\x4e\xb0"
+			  "\x47\xde\xe2\xbd\xde\xe4\x48\x09",
+		.plaintext	= "\x87\xfc\x68\x9f\xff\xf2\x4a\x1e"
+			  "\x82\x3b\x73\x8f\xc1\xb2\x1b\x7a"
+			  "\x6c\x4f\x81\xbc\x88\x9b\x6c\xa3"
+			  "\x9c\xc2\xa5\xbc\x14\x70\x4c\x9b"
+			  "\x0c\x9f\x59\x92\x16\x4b\x91\x3d"
+			  "\x18\x55\x22\x68\x12\x8c\x63\xb2"
+			  "\x51\xcb\x85\x4b\xd2\xae\x0b\x1c"
+			  "\x5d\x28\x9d\x1d\xb1\xc8\xf0\x77"
+			  "\xe9\xb5\x07\x4e\x06\xc8\xee\xf8"
+			  "\x1b\xed\x72\x2a\x55\x7d\x16\xc9"
+			  "\xf2\x54\xe7\xe9\xe0\x44\x5b\x33"
+			  "\xb1\x49\xee\xff\x43\xfb\x82\xcd"
+			  "\x4a\x70\x78\x81\xa4\x34\x36\xe8"
+			  "\x4c\x28\x54\xa6\x6c\xc3\x6b\x78"
+			  "\xe7\xc0\x5d\xc6\x5d\x81\xab\x70"
+			  "\x08\x86\xa1\xfd\xf4\x77\x55\xfd"
+			  "\xa3\xe9\xe2\x1b\xdf\x99\xb7\x80"
+			  "\xf9\x0a\x4f\x72\x4a\xd3\xaf\xbb"
+			  "\xb3\x3b\xeb\x08\x58\x0f\x79\xce"
+			  "\xa5\x99\x05\x12\x34\xd4\xf4\x86"
+			  "\x37\x23\x1d\xc8\x49\xc0\x92\xae"
+			  "\xa6\xac\x9b\x31\x55\xed\x15\xc6"
+			  "\x05\x17\x37\x8d\x90\x42\xe4\x87"
+			  "\x89\x62\x88\x69\x1c\x6a\xfd\xe3"
+			  "\x00\x2b\x47\x1a\x73\xc1\x51\xc2"
+			  "\xc0\x62\x74\x6a\x9e\xb2\xe5\x21"
+			  "\xbe\x90\xb5\xb0\x50\xca\x88\x68"
+			  "\xe1\x9d\x7a\xdf\x6c\xb7\xb9\x98"
+			  "\xee\x28\x62\x61\x8b\xd1\x47\xf9"
+			  "\x04\x7a\x0b\x5d\xcd\x2b\x65\xf5"
+			  "\x12\xa3\xfe\x1a\xaa\x2c\x78\x42"
+			  "\xb8\xbe\x7d\x74\xeb\x59\xba\xba",
+		.digest	= "\xae\x11\xd4\x60\x2a\x5f\x9e\x42"
+			  "\x89\x04\xc2\x34\x8d\x55\x94\x0a",
+		.psize	= 256,
+		.ksize	= 16,
+	},
+
+};
+
+/*
+ * Test vectors generated using https://github.com/google/hctr2
+ */
+static const struct cipher_testvec aes_hctr2_tv_template[] = {
+	{
+		.key	= "\xe1\x15\x66\x3c\x8d\xc6\x3a\xff"
+			  "\xef\x41\xd7\x47\xa2\xcc\x8a\xba",
+		.iv	= "\xc3\xbe\x2a\xcb\xb5\x39\x86\xf1"
+			  "\x91\xad\x6c\xf4\xde\x74\x45\x63"
+			  "\x5c\x7a\xd5\xcc\x8b\x76\xef\x0e"
+			  "\xcf\x2c\x60\x69\x37\xfd\x07\x96",
+		.ptext	= "\x65\x75\xae\xd3\xe2\xbc\x43\x5c"
+			  "\xb3\x1a\xd8\x05\xc3\xd0\x56\x29",
+		.ctext	= "\x11\x91\xea\x74\x58\xcc\xd5\xa2"
+			  "\xd0\x55\x9e\x3d\xfe\x7f\xc8\xfe",
+		.klen	= 16,
+		.len	= 16,
+	},
+	{
+		.key	= "\xe7\xd1\x77\x48\x76\x0b\xcd\x34"
+			  "\x2a\x2d\xe7\x74\xca\x11\x9c\xae",
+		.iv	= "\x71\x1c\x49\x62\xd9\x5b\x50\x5e"
+			  "\x68\x87\xbc\xf6\x89\xff\xed\x30"
+			  "\xe4\xe5\xbd\xb6\x10\x4f\x9f\x66"
+			  "\x28\x06\x5a\xf4\x27\x35\xcd\xe5",
+		.ptext	= "\x87\x03\x8f\x06\xa8\x61\x54\xda"
+			  "\x01\x45\xd4\x01\xef\x4a\x22\xcf"
+			  "\x78\x15\x9f\xbd\x64\xbd\x2c\xb9"
+			  "\x40\x1d\x72\xae\x53\x63\xa5",
+		.ctext	= "\x4e\xa1\x05\x27\xb8\x45\xe4\xa1"
+			  "\xbb\x30\xb4\xa6\x12\x74\x63\xd6"
+			  "\x17\xc9\xcc\x2f\x18\x64\xe0\x06"
+			  "\x0a\xa0\xff\x72\x10\x7b\x22",
+		.klen	= 16,
+		.len	= 31,
+	},
+	{
+		.key	= "\x59\x65\x3b\x1d\x43\x5e\xc0\xae"
+			  "\xb8\x9d\x9b\xdd\x22\x03\xbf\xca",
+		.iv	= "\xec\x95\xfa\x5a\xcf\x5e\xd2\x93"
+			  "\xa3\xb5\xe5\xbe\xf3\x01\x7b\x01"
+			  "\xd1\xca\x6c\x06\x82\xf0\xbd\x67"
+			  "\xd9\x6c\xa4\xdc\xb4\x38\x0f\x74",
+		.ptext	= "\x45\xdf\x75\x87\xbc\x72\xce\x55"
+			  "\xc9\xfa\xcb\xfc\x9f\x40\x82\x2b"
+			  "\xc6\x4f\x4f\x5b\x8b\x3b\x6d\x67"
+			  "\xa6\x93\x62\x89\x8c\x19\xf4\xe3"
+			  "\x08\x92\x9c\xc9\x47\x2c\x6e\xd0"
+			  "\xa3\x02\x2b\xdb\x2c\xf2\x8d\x46"
+			  "\xcd\xb0\x9d\x26\x63\x4c\x40\x6b"
+			  "\x79\x43\xe5\xce\x42\xa8\xec\x3b"
+			  "\x5b\xd0\xea\xa4\xe6\xdb\x66\x55"
+			  "\x7a\x76\xec\xab\x7d\x2a\x2b\xbd"
+			  "\xa9\xab\x22\x64\x1a\xa1\xae\x84"
+			  "\x86\x79\x67\xe9\xb2\x50\xbe\x12"
+			  "\x2f\xb2\x14\xf0\xdb\x71\xd8\xa7"
+			  "\x41\x8a\x88\xa0\x6a\x6e\x9d\x2a"
+			  "\xfa\x11\x37\x40\x32\x09\x4c\x47"
+			  "\x41\x07\x31\x85\x3d\xa8\xf7\x64",
+		.ctext	= "\x2d\x4b\x9f\x93\xca\x5a\x48\x26"
+			  "\x01\xcc\x54\xe4\x31\x50\x12\xf0"
+			  "\x49\xff\x59\x42\x68\xbd\x87\x8f"
+			  "\x9e\x62\x96\xcd\xb9\x24\x57\xa4"
+			  "\x0b\x7b\xf5\x2e\x0e\xa8\x65\x07"
+			  "\xab\x05\xd5\xca\xe7\x9c\x6c\x34"
+			  "\x5d\x42\x34\xa4\x62\xe9\x75\x48"
+			  "\x3d\x9e\x8f\xfa\x42\xe9\x75\x08"
+			  "\x4e\x54\x91\x2b\xbd\x11\x0f\x8e"
+			  "\xf0\x82\xf5\x24\xf1\xc4\xfc\xae"
+			  "\x42\x54\x7f\xce\x15\xa8\xb2\x33"
+			  "\xc0\x86\xb6\x2b\xe8\x44\xce\x1f"
+			  "\x68\x57\x66\x94\x6e\xad\xeb\xf3"
+			  "\x30\xf8\x11\xbd\x60\x00\xc6\xd5"
+			  "\x4c\x81\xf1\x20\x2b\x4a\x5b\x99"
+			  "\x79\x3b\xc9\x5c\x74\x23\xe6\x5d",
+		.klen	= 16,
+		.len	= 128,
+	},
+	{
+		.key	= "\x3e\x08\x5d\x64\x6c\x98\xec\xec"
+			  "\x70\x0e\x0d\xa1\x41\x20\x99\x82",
+		.iv	= "\x11\xb7\x77\x91\x0d\x99\xd9\x8d"
+			  "\x35\x3a\xf7\x14\x6b\x09\x37\xe5"
+			  "\xad\x51\xf6\xc3\x96\x4b\x64\x56"
+			  "\xa8\xbd\x81\xcc\xbe\x94\xaf\xe4",
+		.ptext	= "\xff\x8d\xb9\xc0\xe3\x69\xb3\xb2"
+			  "\x8b\x11\x26\xb3\x11\xec\xfb\xb9"
+			  "\x9c\xc1\x71\xd6\xe3\x26\x0e\xe0"
+			  "\x68\x40\x60\xb9\x3a\x63\x56\x8a"
+			  "\x9e\xc1\xf0\x10\xb1\x64\x32\x70"
+			  "\xf8\xcd\xc6\xc4\x49\x4c\xe1\xce"
+			  "\xf3\xe1\x03\xf8\x35\xae\xe0\x5e"
+			  "\xef\x5f\xbc\x41\x75\x26\x13\xcc"
+			  "\x37\x85\xdf\xc0\x5d\xa6\x47\x98"
+			  "\xf1\x97\x52\x58\x04\xe6\xb5\x01"
+			  "\xc0\xb8\x17\x6d\x74\xbd\x9a\xdf"
+			  "\xa4\x37\x94\x86\xb0\x13\x83\x28"
+			  "\xc9\xa2\x07\x3f\xb5\xb2\x72\x40"
+			  "\x0e\x60\xdf\x57\x07\xb7\x2c\x66"
+			  "\x10\x3f\x8d\xdd\x30\x0a\x47\xd5"
+			  "\xe8\x9d\xfb\xa1\xaf\x53\xd7\x05"
+			  "\xc7\xd2\xba\xe7\x2c\xa0\xbf\xb8"
+			  "\xd1\x93\xe7\x41\x82\xa3\x41\x3a"
+			  "\xaf\x12\xd6\xf8\x34\xda\x92\x46"
+			  "\xad\xa2\x2f\xf6\x7e\x46\x96\xd8"
+			  "\x03\xf3\x49\x64\xde\xd8\x06\x8b"
+			  "\xa0\xbc\x63\x35\x38\xb6\x6b\xda"
+			  "\x5b\x50\x3f\x13\xa5\x84\x1b\x1b"
+			  "\x66\x89\x95\xb7\xc2\x16\x3c\xe9"
+			  "\x24\xb0\x8c\x6f\x49\xef\xf7\x28"
+			  "\x6a\x24\xfd\xbe\x25\xe2\xb4\x90"
+			  "\x77\x44\x08\xb8\xda\xd2\xde\x2c"
+			  "\xa0\x57\x45\x57\x29\x47\x6b\x89"
+			  "\x4a\xf6\xa7\x2a\xc3\x9e\x7b\xc8"
+			  "\xfd\x9f\x89\xab\xee\x6d\xa3\xb4"
+			  "\x23\x90\x7a\xe9\x89\xa0\xc7\xb3"
+			  "\x17\x41\x87\x91\xfc\x97\x42",
+		.ctext	= "\xfc\x9b\x96\x66\xc4\x82\x2a\x4a"
+			  "\xb1\x24\xba\xc7\x78\x5f\x79\xc1"
+			  "\x57\x2e\x47\x29\x4d\x7b\xd2\x9a"
+			  "\xbd\xc6\xc1\x26\x7b\x8e\x3f\x5d"
+			  "\xd4\xb4\x9f\x6a\x02\x24\x4a\xad"
+			  "\x0c\x00\x1b\xdf\x92\xc5\x8a\xe1"
+			  "\x77\x79\xcc\xd5\x20\xbf\x83\xf4"
+			  "\x4b\xad\x11\xbf\xdb\x47\x65\x70"
+			  "\x43\xf3\x65\xdf\xb7\xdc\xb2\xb9"
+			  "\xaa\x3f\xb3\xdf\x79\x69\x0d\xa0"
+			  "\x86\x1c\xba\x48\x0b\x01\xc1\x88"
+			  "\xdf\x03\xb1\x06\x3c\x1d\x56\xa1"
+			  "\x8e\x98\xc1\xa6\x95\xa2\x5b\x72"
+			  "\x76\x59\xd2\x26\x25\xcd\xef\x7c"
+			  "\xc9\x60\xea\x43\xd1\x12\x8a\x8a"
+			  "\x63\x12\x78\xcb\x2f\x88\x1e\x88"
+			  "\x78\x59\xde\xba\x4d\x2c\x78\x61"
+			  "\x75\x37\x54\xfd\x80\xc7\x5e\x98"
+			  "\xcf\x14\x62\x8e\xfb\x72\xee\x4d"
+			  "\x9f\xaf\x8b\x09\xe5\x21\x0a\x91"
+			  "\x8f\x88\x87\xd5\xb1\x84\xab\x18"
+			  "\x08\x57\xed\x72\x35\xa6\x0e\xc6"
+			  "\xff\xcb\xfe\x2c\x48\x39\x14\x44"
+			  "\xba\x59\x32\x3a\x2d\xc4\x5f\xcb"
+			  "\xbe\x68\x8e\x7b\xee\x21\xa4\x32"
+			  "\x11\xa0\x99\xfd\x90\xde\x59\x43"
+			  "\xeb\xed\xd5\x87\x68\x46\xc6\xde"
+			  "\x0b\x07\x17\x59\x6a\xab\xca\x15"
+			  "\x65\x02\x01\xb6\x71\x8c\x3b\xaa"
+			  "\x18\x3b\x30\xae\x38\x5b\x2c\x74"
+			  "\xd4\xee\x4a\xfc\xf7\x1b\x09\xd4"
+			  "\xda\x8b\x1d\x5d\x6f\x21\x6c",
+		.klen	= 16,
+		.len	= 255,
+	},
+	{
+		.key	= "\x24\xf6\xe1\x62\xe5\xaf\x99\xda"
+			  "\x84\xec\x41\xb0\xa3\x0b\xd5\xa8"
+			  "\xa0\x3e\x7b\xa6\xdd\x6c\x8f\xa8",
+		.iv	= "\x7f\x80\x24\x62\x32\xdd\xab\x66"
+			  "\xf2\x87\x29\x24\xec\xd2\x4b\x9f"
+			  "\x0c\x33\x52\xd9\xe0\xcc\x6e\xe4"
+			  "\x90\x85\x43\x97\xc4\x62\x14\x33",
+		.ptext	= "\xef\x58\xe7\x7f\xa9\xd9\xb8\xd7"
+			  "\xa2\x91\x97\x07\x27\x9e\xba\xe8"
+			  "\xaa",
+		.ctext	= "\xd7\xc3\x81\x91\xf2\x40\x17\x73"
+			  "\x3e\x3b\x1c\x2a\x8e\x11\x9c\x17"
+			  "\xf1",
+		.klen	= 24,
+		.len	= 17,
+	},
+	{
+		.key	= "\xbf\xaf\xd7\x67\x8c\x47\xcf\x21"
+			  "\x8a\xa5\xdd\x32\x25\x47\xbe\x4f"
+			  "\xf1\x3a\x0b\xa6\xaa\x2d\xcf\x09",
+		.iv	= "\xd9\xe8\xf0\x92\x4e\xfc\x1d\xf2"
+			  "\x81\x37\x7c\x8f\xf1\x59\x09\x20"
+			  "\xf4\x46\x51\x86\x4f\x54\x8b\x32"
+			  "\x58\xd1\x99\x8b\x8c\x03\xeb\x5d",
+		.ptext	= "\xcd\x64\x90\xf9\x7c\xe5\x0e\x5a"
+			  "\x75\xe7\x8e\x39\x86\xec\x20\x43"
+			  "\x8a\x49\x09\x15\x47\xf4\x3c\x89"
+			  "\x21\xeb\xcf\x4e\xcf\x91\xb5\x40"
+			  "\xcd\xe5\x4d\x5c\x6f\xf2\xd2\x80"
+			  "\xfa\xab\xb3\x76\x9f\x7f\x84\x0a",
+		.ctext	= "\x44\x98\x64\x15\xb7\x0b\x80\xa3"
+			  "\xb9\xca\x23\xff\x3b\x0b\x68\x74"
+			  "\xbb\x3e\x20\x19\x9f\x28\x71\x2a"
+			  "\x48\x3c\x7c\xe2\xef\xb5\x10\xac"
+			  "\x82\x9f\xcd\x08\x8f\x6b\x16\x6f"
+			  "\xc3\xbb\x07\xfb\x3c\xb0\x1b\x27",
+		.klen	= 24,
+		.len	= 48,
+	},
+	{
+		.key	= "\xb8\x35\xa2\x5f\x86\xbb\x82\x99"
+			  "\x27\xeb\x01\x3f\x92\xaf\x80\x24"
+			  "\x4c\x66\xa2\x89\xff\x2e\xa2\x25",
+		.iv	= "\x0a\x1d\x96\xd3\xe0\xe8\x0c\x9b"
+			  "\x9d\x6f\x21\x97\xc2\x17\xdb\x39"
+			  "\x3f\xd8\x64\x48\x80\x04\xee\x43"
+			  "\x02\xce\x88\xe2\x81\x81\x5f\x81",
+		.ptext	= "\xb8\xf9\x16\x8b\x25\x68\xd0\x9c"
+			  "\xd2\x28\xac\xa8\x79\xc2\x30\xc1"
+			  "\x31\xde\x1c\x37\x1b\xa2\xb5\xe6"
+			  "\xf0\xd0\xf8\x9c\x7f\xc6\x46\x07"
+			  "\x5c\xc3\x06\xe4\xf0\x02\xec\xf8"
+			  "\x59\x7c\xc2\x5d\xf8\x0c\x21\xae"
+			  "\x9e\x82\xb1\x1a\x5f\x78\x44\x15"
+			  "\x00\xa7\x2e\x52\xc5\x98\x98\x35"
+			  "\x03\xae\xd0\x8e\x07\x57\xe2\x5a"
+			  "\x17\xbf\x52\x40\x54\x5b\x74\xe5"
+			  "\x2d\x35\xaf\x9e\x37\xf7\x7e\x4a"
+			  "\x8c\x9e\xa1\xdc\x40\xb4\x5b\x36"
+			  "\xdc\x3a\x68\xe6\xb7\x35\x0b\x8a"
+			  "\x90\xec\x74\x8f\x09\x9a\x7f\x02"
+			  "\x4d\x03\x46\x35\x62\xb1\xbd\x08"
+			  "\x3f\x54\x2a\x10\x0b\xdc\x69\xaf"
+			  "\x25\x3a\x0c\x5f\xe0\x51\xe7\x11"
+			  "\xb7\x00\xab\xbb\x9a\xb0\xdc\x4d"
+			  "\xc3\x7d\x1a\x6e\xd1\x09\x52\xbd"
+			  "\x6b\x43\x55\x22\x3a\x78\x14\x7d"
+			  "\x79\xfd\x8d\xfc\x9b\x1d\x0f\xa2"
+			  "\xc7\xb9\xf8\x87\xd5\x96\x50\x61"
+			  "\xa7\x5e\x1e\x57\x97\xe0\xad\x2f"
+			  "\x93\xe6\xe8\x83\xec\x85\x26\x5e"
+			  "\xd9\x2a\x15\xe0\xe9\x09\x25\xa1"
+			  "\x77\x2b\x88\xdc\xa4\xa5\x48\xb6"
+			  "\xf7\xcc\xa6\xa9\xba\xf3\x42\x5c"
+			  "\x70\x9d\xe9\x29\xc1\xf1\x33\xdd"
+			  "\x56\x48\x17\x86\x14\x51\x5c\x10"
+			  "\xab\xfd\xd3\x26\x8c\x21\xf5\x93"
+			  "\x1b\xeb\x47\x97\x73\xbb\x88\x10"
+			  "\xf3\xfe\xf5\xde\xf3\x2e\x05\x46"
+			  "\x1c\x0d\xa3\x10\x48\x9c\x71\x16"
+			  "\x78\x33\x4d\x0a\x74\x3b\xe9\x34"
+			  "\x0b\xa7\x0e\x9e\x61\xe9\xe9\xfd"
+			  "\x85\xa0\xcb\x19\xfd\x7c\x33\xe3"
+			  "\x0e\xce\xc2\x6f\x9d\xa4\x2d\x77"
+			  "\xfd\xad\xee\x5e\x08\x3e\xd7\xf5"
+			  "\xfb\xc3\xd7\x93\x96\x08\x96\xca"
+			  "\x58\x81\x16\x9b\x98\x0a\xe2\xef"
+			  "\x7f\xda\x40\xe4\x1f\x46\x9e\x67"
+			  "\x2b\x84\xcb\x42\xc4\xd6\x6a\xcf"
+			  "\x2d\xb2\x33\xc0\x56\xb3\x35\x6f"
+			  "\x29\x36\x8f\x6a\x5b\xec\xd5\x4f"
+			  "\xa0\x70\xff\xb6\x5b\xde\x6a\x93"
+			  "\x20\x3c\xe2\x76\x7a\xef\x3c\x79"
+			  "\x31\x65\xce\x3a\x0e\xd0\xbe\xa8"
+			  "\x21\x95\xc7\x2b\x62\x8e\x67\xdd"
+			  "\x20\x79\xe4\xe5\x01\x15\xc0\xec"
+			  "\x0f\xd9\x23\xc8\xca\xdf\xd4\x7d"
+			  "\x1d\xf8\x64\x4f\x56\xb1\x83\xa7"
+			  "\x43\xbe\xfc\xcf\xc2\x8c\x33\xda"
+			  "\x36\xd0\x52\xef\x9e\x9e\x88\xf4"
+			  "\xa8\x21\x0f\xaa\xee\x8d\xa0\x24"
+			  "\x4d\xcb\xb1\x72\x07\xf0\xc2\x06"
+			  "\x60\x65\x85\x84\x2c\x60\xcf\x61"
+			  "\xe7\x56\x43\x5b\x2b\x50\x74\xfa"
+			  "\xdb\x4e\xea\x88\xd4\xb3\x83\x8f"
+			  "\x6f\x97\x4b\x57\x7a\x64\x64\xae"
+			  "\x0a\x37\x66\xc5\x03\xad\xb5\xf9"
+			  "\x08\xb0\x3a\x74\xde\x97\x51\xff"
+			  "\x48\x4f\x5c\xa4\xf8\x7a\xb4\x05"
+			  "\x27\x70\x52\x86\x1b\x78\xfc\x18"
+			  "\x06\x27\xa9\x62\xf7\xda\xd2\x8e",
+		.ctext	= "\x3b\xe1\xdb\xb3\xc5\x9a\xde\x69"
+			  "\x58\x05\xcc\xeb\x02\x51\x78\x4a"
+			  "\xac\x28\xe9\xed\xd1\xc9\x15\x7d"
+			  "\x33\x7d\xc1\x47\x12\x41\x11\xf8"
+			  "\x4a\x2c\xb7\xa3\x41\xbe\x59\xf7"
+			  "\x22\xdb\x2c\xda\x9c\x00\x61\x9b"
+			  "\x73\xb3\x0b\x84\x2b\xc1\xf3\x80"
+			  "\x84\xeb\x19\x60\x80\x09\xe1\xcd"
+			  "\x16\x3a\x20\x23\xc4\x82\x4f\xba"
+			  "\x3b\x8e\x55\xd7\xa9\x0b\x75\xd0"
+			  "\xda\xce\xd2\xee\x7e\x4b\x7f\x65"
+			  "\x4d\x28\xc5\xd3\x15\x2c\x40\x96"
+			  "\x52\xd4\x18\x61\x2b\xe7\x83\xec"
+			  "\x89\x62\x9c\x4c\x50\xe6\xe2\xbb"
+			  "\x25\xa1\x0f\xa7\xb0\xb4\xb2\xde"
+			  "\x54\x20\xae\xa3\x56\xa5\x26\x4c"
+			  "\xd5\xcc\xe5\xcb\x28\x44\xb1\xef"
+			  "\x67\x2e\x93\x6d\x00\x88\x83\x9a"
+			  "\xf2\x1c\x48\x38\xec\x1a\x24\x90"
+			  "\x73\x0a\xdb\xe8\xce\x95\x7a\x2c"
+			  "\x8c\xe9\xb7\x07\x1d\xb3\xa3\x20"
+			  "\xbe\xad\x61\x84\xac\xde\x76\xb5"
+			  "\xa6\x28\x29\x47\x63\xc4\xfc\x13"
+			  "\x3f\x71\xfb\x58\x37\x34\x82\xed"
+			  "\x9e\x05\x19\x1f\xc1\x67\xc1\xab"
+			  "\xf5\xfd\x7c\xea\xfa\xa4\xf8\x0a"
+			  "\xac\x4c\x92\xdf\x65\x73\xd7\xdb"
+			  "\xed\x2c\xe0\x84\x5f\x57\x8c\x76"
+			  "\x3e\x05\xc0\xc3\x68\x96\x95\x0b"
+			  "\x88\x97\xfe\x2e\x99\xd5\xc2\xb9"
+			  "\x53\x9f\xf3\x32\x10\x1f\x1f\x5d"
+			  "\xdf\x21\x95\x70\x91\xe8\xa1\x3e"
+			  "\x19\x3e\xb6\x0b\xa8\xdb\xf8\xd4"
+			  "\x54\x27\xb8\xab\x5d\x78\x0c\xe6"
+			  "\xb7\x08\xee\xa4\xb6\x6b\xeb\x5a"
+			  "\x89\x69\x2b\xbd\xd4\x21\x5b\xbf"
+			  "\x79\xbb\x0f\xff\xdb\x23\x9a\xeb"
+			  "\x8d\xf2\xc4\x39\xb4\x90\x77\x6f"
+			  "\x68\xe2\xb8\xf3\xf1\x65\x4f\xd5"
+			  "\x24\x80\x06\xaf\x7c\x8d\x15\x0c"
+			  "\xfd\x56\xe5\xe3\x01\xa5\xf7\x1c"
+			  "\x31\xd6\xa2\x01\x1e\x59\xf9\xa9"
+			  "\x42\xd5\xc2\x34\xda\x25\xde\xc6"
+			  "\x5d\x38\xef\xd1\x4c\xc1\xd9\x1b"
+			  "\x98\xfd\xcd\x57\x6f\xfd\x46\x91"
+			  "\x90\x3d\x52\x2b\x2c\x7d\xcf\x71"
+			  "\xcf\xd1\x77\x23\x71\x36\xb1\xce"
+			  "\xc7\x5d\xf0\x5b\x44\x3d\x43\x71"
+			  "\xac\xb8\xa0\x6a\xea\x89\x5c\xff"
+			  "\x81\x73\xd4\x83\xd1\xc9\xe9\xe2"
+			  "\xa8\xa6\x0f\x36\xe6\xaa\x57\xd4"
+			  "\x27\xd2\xc9\xda\x94\x02\x1f\xfb"
+			  "\xe1\xa1\x07\xbe\xe1\x1b\x15\x94"
+			  "\x1e\xac\x2f\x57\xbb\x41\x22\xaf"
+			  "\x60\x5e\xcc\x66\xcb\x16\x62\xab"
+			  "\xb8\x7c\x99\xf4\x84\x93\x0c\xc2"
+			  "\xa2\x49\xe4\xfd\x17\x55\xe1\xa6"
+			  "\x8d\x5b\xc6\x1b\xc8\xac\xec\x11"
+			  "\x33\xcf\xb0\xe8\xc7\x28\x4f\xb2"
+			  "\x5c\xa6\xe2\x71\xab\x80\x0a\xa7"
+			  "\x5c\x59\x50\x9f\x7a\x32\xb7\xe5"
+			  "\x24\x9a\x8e\x25\x21\x2e\xb7\x18"
+			  "\xd0\xf2\xe7\x27\x6f\xda\xc1\x00"
+			  "\xd9\xa6\x03\x59\xac\x4b\xcb\xba",
+		.klen	= 24,
+		.len	= 512,
+	},
+	{
+		.key	= "\x9e\xeb\xb2\x49\x3c\x1c\xf5\xf4"
+			  "\x6a\x99\xc2\xc4\xdf\xb1\xf4\xdd"
+			  "\x75\x20\x57\xea\x2c\x4f\xcd\xb2"
+			  "\xa5\x3d\x7b\x49\x1e\xab\xfd\x0f",
+		.iv	= "\xdf\x63\xd4\xab\xd2\x49\xf3\xd8"
+			  "\x33\x81\x37\x60\x7d\xfa\x73\x08"
+			  "\xd8\x49\x6d\x80\xe8\x2f\x62\x54"
+			  "\xeb\x0e\xa9\x39\x5b\x45\x7f\x8a",
+		.ptext	= "\x67\xc9\xf2\x30\x84\x41\x8e\x43"
+			  "\xfb\xf3\xb3\x3e\x79\x36\x7f\xe8",
+		.ctext	= "\x27\x38\x78\x47\x16\xd9\x71\x35"
+			  "\x2e\x7e\xdd\x7e\x43\x3c\xb8\x40",
+		.klen	= 32,
+		.len	= 16,
+	},
+	{
+		.key	= "\x93\xfa\x7e\xe2\x0e\x67\xc4\x39"
+			  "\xe7\xca\x47\x95\x68\x9d\x5e\x5a"
+			  "\x7c\x26\x19\xab\xc6\xca\x6a\x4c"
+			  "\x45\xa6\x96\x42\xae\x6c\xff\xe7",
+		.iv	= "\xea\x82\x47\x95\x3b\x22\xa1\x3a"
+			  "\x6a\xca\x24\x4c\x50\x7e\x23\xcd"
+			  "\x0e\x50\xe5\x41\xb6\x65\x29\xd8"
+			  "\x30\x23\x00\xd2\x54\xa7\xd6\x56",
+		.ptext	= "\xdb\x1f\x1f\xec\xad\x83\x6e\x5d"
+			  "\x19\xa5\xf6\x3b\xb4\x93\x5a\x57"
+			  "\x6f",
+		.ctext	= "\xf1\x46\x6e\x9d\xb3\x01\xf0\x6b"
+			  "\xc2\xac\x57\x88\x48\x6d\x40\x72"
+			  "\x68",
+		.klen	= 32,
+		.len	= 17,
+	},
+	{
+		.key	= "\x36\x2b\x57\x97\xf8\x5d\xcd\x99"
+			  "\x5f\x1a\x5a\x44\x1d\x92\x0f\x27"
+			  "\xcc\x16\xd7\x2b\x85\x63\x99\xd3"
+			  "\xba\x96\xa1\xdb\xd2\x60\x68\xda",
+		.iv	= "\xef\x58\x69\xb1\x2c\x5e\x9a\x47"
+			  "\x24\xc1\xb1\x69\xe1\x12\x93\x8f"
+			  "\x43\x3d\x6d\x00\xdb\x5e\xd8\xd9"
+			  "\x12\x9a\xfe\xd9\xff\x2d\xaa\xc4",
+		.ptext	= "\x5e\xa8\x68\x19\x85\x98\x12\x23"
+			  "\x26\x0a\xcc\xdb\x0a\x04\xb9\xdf"
+			  "\x4d\xb3\x48\x7b\xb0\xe3\xc8\x19"
+			  "\x43\x5a\x46\x06\x94\x2d\xf2",
+		.ctext	= "\xdb\xfd\xc8\x03\xd0\xec\xc1\xfe"
+			  "\xbd\x64\x37\xb8\x82\x43\x62\x4e"
+			  "\x7e\x54\xa3\xe2\x24\xa7\x27\xe8"
+			  "\xa4\xd5\xb3\x6c\xb2\x26\xb4",
+		.klen	= 32,
+		.len	= 31,
+	},
+	{
+		.key	= "\x03\x65\x03\x6e\x4d\xe6\xe8\x4e"
+			  "\x8b\xbe\x22\x19\x48\x31\xee\xd9"
+			  "\xa0\x91\x21\xbe\x62\x89\xde\x78"
+			  "\xd9\xb0\x36\xa3\x3c\xce\x43\xd5",
+		.iv	= "\xa9\xc3\x4b\xe7\x0f\xfc\x6d\xbf"
+			  "\x56\x27\x21\x1c\xfc\xd6\x04\x10"
+			  "\x5f\x43\xe2\x30\x35\x29\x6c\x10"
+			  "\x90\xf1\xbf\x61\xed\x0f\x8a\x91",
+		.ptext	= "\x07\xaa\x02\x26\xb4\x98\x11\x5e"
+			  "\x33\x41\x21\x51\x51\x63\x2c\x72"
+			  "\x00\xab\x32\xa7\x1c\xc8\x3c\x9c"
+			  "\x25\x0e\x8b\x9a\xdf\x85\xed\x2d"
+			  "\xf4\xf2\xbc\x55\xca\x92\x6d\x22"
+			  "\xfd\x22\x3b\x42\x4c\x0b\x74\xec",
+		.ctext	= "\x7b\xb1\x43\x6d\xd8\x72\x6c\xf6"
+			  "\x67\x6a\x00\xc4\xf1\xf0\xf5\xa4"
+			  "\xfc\x60\x91\xab\x46\x0b\x15\xfc"
+			  "\xd7\xc1\x28\x15\xa1\xfc\xf7\x68"
+			  "\x8e\xcc\x27\x62\x00\x64\x56\x72"
+			  "\xa6\x17\xd7\x3f\x67\x80\x10\x58",
+		.klen	= 32,
+		.len	= 48,
+	},
+	{
+		.key	= "\xa5\x28\x24\x34\x1a\x3c\xd8\xf7"
+			  "\x05\x91\x8f\xee\x85\x1f\x35\x7f"
+			  "\x80\x3d\xfc\x9b\x94\xf6\xfc\x9e"
+			  "\x19\x09\x00\xa9\x04\x31\x4f\x11",
+		.iv	= "\xa1\xba\x49\x95\xff\x34\x6d\xb8"
+			  "\xcd\x87\x5d\x5e\xfd\xea\x85\xdb"
+			  "\x8a\x7b\x5e\xb2\x5d\x57\xdd\x62"
+			  "\xac\xa9\x8c\x41\x42\x94\x75\xb7",
+		.ptext	= "\x69\xb4\xe8\x8c\x37\xe8\x67\x82"
+			  "\xf1\xec\x5d\x04\xe5\x14\x91\x13"
+			  "\xdf\xf2\x87\x1b\x69\x81\x1d\x71"
+			  "\x70\x9e\x9c\x3b\xde\x49\x70\x11"
+			  "\xa0\xa3\xdb\x0d\x54\x4f\x66\x69"
+			  "\xd7\xdb\x80\xa7\x70\x92\x68\xce"
+			  "\x81\x04\x2c\xc6\xab\xae\xe5\x60"
+			  "\x15\xe9\x6f\xef\xaa\x8f\xa7\xa7"
+			  "\x63\x8f\xf2\xf0\x77\xf1\xa8\xea"
+			  "\xe1\xb7\x1f\x9e\xab\x9e\x4b\x3f"
+			  "\x07\x87\x5b\x6f\xcd\xa8\xaf\xb9"
+			  "\xfa\x70\x0b\x52\xb8\xa8\xa7\x9e"
+			  "\x07\x5f\xa6\x0e\xb3\x9b\x79\x13"
+			  "\x79\xc3\x3e\x8d\x1c\x2c\x68\xc8"
+			  "\x51\x1d\x3c\x7b\x7d\x79\x77\x2a"
+			  "\x56\x65\xc5\x54\x23\x28\xb0\x03",
+		.ctext	= "\xeb\xf9\x98\x86\x3c\x40\x9f\x16"
+			  "\x84\x01\xf9\x06\x0f\xeb\x3c\xa9"
+			  "\x4c\xa4\x8e\x5d\xc3\x8d\xe5\xd3"
+			  "\xae\xa6\xe6\xcc\xd6\x2d\x37\x4f"
+			  "\x99\xc8\xa3\x21\x46\xb8\x69\xf2"
+			  "\xe3\x14\x89\xd7\xb9\xf5\x9e\x4e"
+			  "\x07\x93\x6f\x78\x8e\x6b\xea\x8f"
+			  "\xfb\x43\xb8\x3e\x9b\x4c\x1d\x7e"
+			  "\x20\x9a\xc5\x87\xee\xaf\xf6\xf9"
+			  "\x46\xc5\x18\x8a\xe8\x69\xe7\x96"
+			  "\x52\x55\x5f\x00\x1e\x1a\xdc\xcc"
+			  "\x13\xa5\xee\xff\x4b\x27\xca\xdc"
+			  "\x10\xa6\x48\x76\x98\x43\x94\xa3"
+			  "\xc7\xe2\xc9\x65\x9b\x08\x14\x26"
+			  "\x1d\x68\xfb\x15\x0a\x33\x49\x84"
+			  "\x84\x33\x5a\x1b\x24\x46\x31\x92",
+		.klen	= 32,
+		.len	= 128,
+	},
+	{
+		.key	= "\x36\x45\x11\xa2\x98\x5f\x96\x7c"
+			  "\xc6\xb4\x94\x31\x0a\x67\x09\x32"
+			  "\x6c\x6f\x6f\x00\xf0\x17\xcb\xac"
+			  "\xa5\xa9\x47\x9e\x2e\x85\x2f\xfa",
+		.iv	= "\x28\x88\xaa\x9b\x59\x3b\x1e\x97"
+			  "\x82\xe5\x5c\x9e\x6d\x14\x11\x19"
+			  "\x6e\x38\x8f\xd5\x40\x2b\xca\xf9"
+			  "\x7b\x4c\xe4\xa3\xd0\xd2\x8a\x13",
+		.ptext	= "\x95\xd2\xf7\x71\x1b\xca\xa5\x86"
+			  "\xd9\x48\x01\x93\x2f\x79\x55\x29"
+			  "\x71\x13\x15\x0e\xe6\x12\xbc\x4d"
+			  "\x8a\x31\xe3\x40\x2a\xc6\x5e\x0d"
+			  "\x68\xbb\x4a\x62\x8d\xc7\x45\x77"
+			  "\xd2\xb8\xc7\x1d\xf1\xd2\x5d\x97"
+			  "\xcf\xac\x52\xe5\x32\x77\xb6\xda"
+			  "\x30\x85\xcf\x2b\x98\xe9\xaa\x34"
+			  "\x62\xb5\x23\x9e\xb7\xa6\xd4\xe0"
+			  "\xb4\x58\x18\x8c\x4d\xde\x4d\x01"
+			  "\x83\x89\x24\xca\xfb\x11\xd4\x82"
+			  "\x30\x7a\x81\x35\xa0\xb4\xd4\xb6"
+			  "\x84\xea\x47\x91\x8c\x19\x86\x25"
+			  "\xa6\x06\x8d\x78\xe6\xed\x87\xeb"
+			  "\xda\xea\x73\x7c\xbf\x66\xb8\x72"
+			  "\xe3\x0a\xb8\x0c\xcb\x1a\x73\xf1"
+			  "\xa7\xca\x0a\xde\x57\x2b\xbd\x2b"
+			  "\xeb\x8b\x24\x38\x22\xd3\x0e\x1f"
+			  "\x17\xa0\x84\x98\x31\x77\xfd\x34"
+			  "\x6a\x4e\x3d\x84\x4c\x0e\xfb\xed"
+			  "\xc8\x2a\x51\xfa\xd8\x73\x21\x8a"
+			  "\xdb\xb5\xfe\x1f\xee\xc4\xe8\x65"
+			  "\x54\x84\xdd\x96\x6d\xfd\xd3\x31"
+			  "\x77\x36\x52\x6b\x80\x4f\x9e\xb4"
+			  "\xa2\x55\xbf\x66\x41\x49\x4e\x87"
+			  "\xa7\x0c\xca\xe7\xa5\xc5\xf6\x6f"
+			  "\x27\x56\xe2\x48\x22\xdd\x5f\x59"
+			  "\x3c\xf1\x9f\x83\xe5\x2d\xfb\x71"
+			  "\xad\xd1\xae\x1b\x20\x5c\x47\xb7"
+			  "\x3b\xd3\x14\xce\x81\x42\xb1\x0a"
+			  "\xf0\x49\xfa\xc2\xe7\x86\xbf\xcd"
+			  "\xb0\x95\x9f\x8f\x79\x41\x54",
+		.ctext	= "\xf6\x57\x51\xc4\x25\x61\x2d\xfa"
+			  "\xd6\xd9\x3f\x9a\x81\x51\xdd\x8e"
+			  "\x3d\xe7\xaa\x2d\xb1\xda\xc8\xa6"
+			  "\x9d\xaa\x3c\xab\x62\xf2\x80\xc3"
+			  "\x2c\xe7\x58\x72\x1d\x44\xc5\x28"
+			  "\x7f\xb4\xf9\xbc\x9c\xb2\xab\x8e"
+			  "\xfa\xd1\x4d\x72\xd9\x79\xf5\xa0"
+			  "\x24\x3e\x90\x25\x31\x14\x38\x45"
+			  "\x59\xc8\xf6\xe2\xc6\xf6\xc1\xa7"
+			  "\xb2\xf8\xa7\xa9\x2b\x6f\x12\x3a"
+			  "\xb0\x81\xa4\x08\x57\x59\xb1\x56"
+			  "\x4c\x8f\x18\x55\x33\x5f\xd6\x6a"
+			  "\xc6\xa0\x4b\xd6\x6b\x64\x3e\x9e"
+			  "\xfd\x66\x16\xe2\xdb\xeb\x5f\xb3"
+			  "\x50\x50\x3e\xde\x8d\x72\x76\x01"
+			  "\xbe\xcc\xc9\x52\x09\x2d\x8d\xe7"
+			  "\xd6\xc3\x66\xdb\x36\x08\xd1\x77"
+			  "\xc8\x73\x46\x26\x24\x29\xbf\x68"
+			  "\x2d\x2a\x99\x43\x56\x55\xe4\x93"
+			  "\xaf\xae\x4d\xe7\x55\x4a\xc0\x45"
+			  "\x26\xeb\x3b\x12\x90\x7c\xdc\xd1"
+			  "\xd5\x6f\x0a\xd0\xa9\xd7\x4b\x89"
+			  "\x0b\x07\xd8\x86\xad\xa1\xc4\x69"
+			  "\x1f\x5e\x8b\xc4\x9e\x91\x41\x25"
+			  "\x56\x98\x69\x78\x3a\x9e\xae\x91"
+			  "\xd8\xd9\xfa\xfb\xff\x81\x25\x09"
+			  "\xfc\xed\x2d\x87\xbc\x04\x62\x97"
+			  "\x35\xe1\x26\xc2\x46\x1c\xcf\xd7"
+			  "\x14\xed\x02\x09\xa5\xb2\xb6\xaa"
+			  "\x27\x4e\x61\xb3\x71\x6b\x47\x16"
+			  "\xb7\xe8\xd4\xaf\x52\xeb\x6a\x6b"
+			  "\xdb\x4c\x65\x21\x9e\x1c\x36",
+		.klen	= 32,
+		.len	= 255,
+	},
+	{
+		.key	= "\xd3\x81\x72\x18\x23\xff\x6f\x4a"
+			  "\x25\x74\x29\x0d\x51\x8a\x0e\x13"
+			  "\xc1\x53\x5d\x30\x8d\xee\x75\x0d"
+			  "\x14\xd6\x69\xc9\x15\xa9\x0c\x60",
+		.iv	= "\x65\x9b\xd4\xa8\x7d\x29\x1d\xf4"
+			  "\xc4\xd6\x9b\x6a\x28\xab\x64\xe2"
+			  "\x62\x81\x97\xc5\x81\xaa\xf9\x44"
+			  "\xc1\x72\x59\x82\xaf\x16\xc8\x2c",
+		.ptext	= "\xc7\x6b\x52\x6a\x10\xf0\xcc\x09"
+			  "\xc1\x12\x1d\x6d\x21\xa6\x78\xf5"
+			  "\x05\xa3\x69\x60\x91\x36\x98\x57"
+			  "\xba\x0c\x14\xcc\xf3\x2d\x73\x03"
+			  "\xc6\xb2\x5f\xc8\x16\x27\x37\x5d"
+			  "\xd0\x0b\x87\xb2\x50\x94\x7b\x58"
+			  "\x04\xf4\xe0\x7f\x6e\x57\x8e\xc9"
+			  "\x41\x84\xc1\xb1\x7e\x4b\x91\x12"
+			  "\x3a\x8b\x5d\x50\x82\x7b\xcb\xd9"
+			  "\x9a\xd9\x4e\x18\x06\x23\x9e\xd4"
+			  "\xa5\x20\x98\xef\xb5\xda\xe5\xc0"
+			  "\x8a\x6a\x83\x77\x15\x84\x1e\xae"
+			  "\x78\x94\x9d\xdf\xb7\xd1\xea\x67"
+			  "\xaa\xb0\x14\x15\xfa\x67\x21\x84"
+			  "\xd3\x41\x2a\xce\xba\x4b\x4a\xe8"
+			  "\x95\x62\xa9\x55\xf0\x80\xad\xbd"
+			  "\xab\xaf\xdd\x4f\xa5\x7c\x13\x36"
+			  "\xed\x5e\x4f\x72\xad\x4b\xf1\xd0"
+			  "\x88\x4e\xec\x2c\x88\x10\x5e\xea"
+			  "\x12\xc0\x16\x01\x29\xa3\xa0\x55"
+			  "\xaa\x68\xf3\xe9\x9d\x3b\x0d\x3b"
+			  "\x6d\xec\xf8\xa0\x2d\xf0\x90\x8d"
+			  "\x1c\xe2\x88\xd4\x24\x71\xf9\xb3"
+			  "\xc1\x9f\xc5\xd6\x76\x70\xc5\x2e"
+			  "\x9c\xac\xdb\x90\xbd\x83\x72\xba"
+			  "\x6e\xb5\xa5\x53\x83\xa9\xa5\xbf"
+			  "\x7d\x06\x0e\x3c\x2a\xd2\x04\xb5"
+			  "\x1e\x19\x38\x09\x16\xd2\x82\x1f"
+			  "\x75\x18\x56\xb8\x96\x0b\xa6\xf9"
+			  "\xcf\x62\xd9\x32\x5d\xa9\xd7\x1d"
+			  "\xec\xe4\xdf\x1b\xbe\xf1\x36\xee"
+			  "\xe3\x7b\xb5\x2f\xee\xf8\x53\x3d"
+			  "\x6a\xb7\x70\xa9\xfc\x9c\x57\x25"
+			  "\xf2\x89\x10\xd3\xb8\xa8\x8c\x30"
+			  "\xae\x23\x4f\x0e\x13\x66\x4f\xe1"
+			  "\xb6\xc0\xe4\xf8\xef\x93\xbd\x6e"
+			  "\x15\x85\x6b\xe3\x60\x81\x1d\x68"
+			  "\xd7\x31\x87\x89\x09\xab\xd5\x96"
+			  "\x1d\xf3\x6d\x67\x80\xca\x07\x31"
+			  "\x5d\xa7\xe4\xfb\x3e\xf2\x9b\x33"
+			  "\x52\x18\xc8\x30\xfe\x2d\xca\x1e"
+			  "\x79\x92\x7a\x60\x5c\xb6\x58\x87"
+			  "\xa4\x36\xa2\x67\x92\x8b\xa4\xb7"
+			  "\xf1\x86\xdf\xdc\xc0\x7e\x8f\x63"
+			  "\xd2\xa2\xdc\x78\xeb\x4f\xd8\x96"
+			  "\x47\xca\xb8\x91\xf9\xf7\x94\x21"
+			  "\x5f\x9a\x9f\x5b\xb8\x40\x41\x4b"
+			  "\x66\x69\x6a\x72\xd0\xcb\x70\xb7"
+			  "\x93\xb5\x37\x96\x05\x37\x4f\xe5"
+			  "\x8c\xa7\x5a\x4e\x8b\xb7\x84\xea"
+			  "\xc7\xfc\x19\x6e\x1f\x5a\xa1\xac"
+			  "\x18\x7d\x52\x3b\xb3\x34\x62\x99"
+			  "\xe4\x9e\x31\x04\x3f\xc0\x8d\x84"
+			  "\x17\x7c\x25\x48\x52\x67\x11\x27"
+			  "\x67\xbb\x5a\x85\xca\x56\xb2\x5c"
+			  "\xe6\xec\xd5\x96\x3d\x15\xfc\xfb"
+			  "\x22\x25\xf4\x13\xe5\x93\x4b\x9a"
+			  "\x77\xf1\x52\x18\xfa\x16\x5e\x49"
+			  "\x03\x45\xa8\x08\xfa\xb3\x41\x92"
+			  "\x79\x50\x33\xca\xd0\xd7\x42\x55"
+			  "\xc3\x9a\x0c\x4e\xd9\xa4\x3c\x86"
+			  "\x80\x9f\x53\xd1\xa4\x2e\xd1\xbc"
+			  "\xf1\x54\x6e\x93\xa4\x65\x99\x8e"
+			  "\xdf\x29\xc0\x64\x63\x07\xbb\xea",
+		.ctext	= "\x9f\x72\x87\xc7\x17\xfb\x20\x15"
+			  "\x65\xb3\x55\xa8\x1c\x8e\x52\x32"
+			  "\xb1\x82\x8d\xbf\xb5\x9f\x10\x0a"
+			  "\xe8\x0c\x70\x62\xef\x89\xb6\x1f"
+			  "\x73\xcc\xe4\xcc\x7a\x3a\x75\x4a"
+			  "\x26\xe7\xf5\xd7\x7b\x17\x39\x2d"
+			  "\xd2\x27\x6e\xf9\x2f\x9e\xe2\xf6"
+			  "\xfa\x16\xc2\xf2\x49\x26\xa7\x5b"
+			  "\xe7\xca\x25\x0e\x45\xa0\x34\xc2"
+			  "\x9a\x37\x79\x7e\x7c\x58\x18\x94"
+			  "\x10\xa8\x7c\x48\xa9\xd7\x63\x89"
+			  "\x9e\x61\x4d\x26\x34\xd9\xf0\xb1"
+			  "\x2d\x17\x2c\x6f\x7c\x35\x0e\xbe"
+			  "\x77\x71\x7c\x17\x5b\xab\x70\xdb"
+			  "\x2f\x54\x0f\xa9\xc8\xf4\xf5\xab"
+			  "\x52\x04\x3a\xb8\x03\xa7\xfd\x57"
+			  "\x45\x5e\xbc\x77\xe1\xee\x79\x8c"
+			  "\x58\x7b\x1f\xf7\x75\xde\x68\x17"
+			  "\x98\x85\x8a\x18\x5c\xd2\x39\x78"
+			  "\x7a\x6f\x26\x6e\xe1\x13\x91\xdd"
+			  "\xdf\x0e\x6e\x67\xcc\x51\x53\xd8"
+			  "\x17\x5e\xce\xa7\xe4\xaf\xfa\xf3"
+			  "\x4f\x9f\x01\x9b\x04\xe7\xfc\xf9"
+			  "\x6a\xdc\x1d\x0c\x9a\xaa\x3a\x7a"
+			  "\x73\x03\xdf\xbf\x3b\x82\xbe\xb0"
+			  "\xb4\xa4\xcf\x07\xd7\xde\x71\x25"
+			  "\xc5\x10\xee\x0a\x15\x96\x8b\x4f"
+			  "\xfe\xb8\x28\xbd\x4a\xcd\xeb\x9f"
+			  "\x5d\x00\xc1\xee\xe8\x16\x44\xec"
+			  "\xe9\x7b\xd6\x85\x17\x29\xcf\x58"
+			  "\x20\xab\xf7\xce\x6b\xe7\x71\x7d"
+			  "\x4f\xa8\xb0\xe9\x7d\x70\xd6\x0b"
+			  "\x2e\x20\xb1\x1a\x63\x37\xaa\x2c"
+			  "\x94\xee\xd5\xf6\x58\x2a\xf4\x7a"
+			  "\x4c\xba\xf5\xe9\x3c\x6f\x95\x13"
+			  "\x5f\x96\x81\x5b\xb5\x62\xf2\xd7"
+			  "\x8d\xbe\xa1\x31\x51\xe6\xfe\xc9"
+			  "\x07\x7d\x0f\x00\x3a\x66\x8c\x4b"
+			  "\x94\xaa\xe5\x56\xde\xcd\x74\xa7"
+			  "\x48\x67\x6f\xed\xc9\x6a\xef\xaf"
+			  "\x9a\xb7\xae\x60\xfa\xc0\x37\x39"
+			  "\xa5\x25\xe5\x22\xea\x82\x55\x68"
+			  "\x3e\x30\xc3\x5a\xb6\x29\x73\x7a"
+			  "\xb6\xfb\x34\xee\x51\x7c\x54\xe5"
+			  "\x01\x4d\x72\x25\x32\x4a\xa3\x68"
+			  "\x80\x9a\x89\xc5\x11\x66\x4c\x8c"
+			  "\x44\x50\xbe\xd7\xa0\xee\xa6\xbb"
+			  "\x92\x0c\xe6\xd7\x83\x51\xb1\x69"
+			  "\x63\x40\xf3\xf4\x92\x84\xc4\x38"
+			  "\x29\xfb\xb4\x84\xa0\x19\x75\x16"
+			  "\x60\xbf\x0a\x9c\x89\xee\xad\xb4"
+			  "\x43\xf9\x71\x39\x45\x7c\x24\x83"
+			  "\x30\xbb\xee\x28\xb0\x86\x7b\xec"
+			  "\x93\xc1\xbf\xb9\x97\x1b\x96\xef"
+			  "\xee\x58\x35\x61\x12\x19\xda\x25"
+			  "\x77\xe5\x80\x1a\x31\x27\x9b\xe4"
+			  "\xda\x8b\x7e\x51\x4d\xcb\x01\x19"
+			  "\x4f\xdc\x92\x1a\x17\xd5\x6b\xf4"
+			  "\x50\xe3\x06\xe4\x76\x9f\x65\x00"
+			  "\xbd\x7a\xe2\x64\x26\xf2\xe4\x7e"
+			  "\x40\xf2\x80\xab\x62\xd5\xef\x23"
+			  "\x8b\xfb\x6f\x24\x6e\x9b\x66\x0e"
+			  "\xf4\x1c\x24\x1e\x1d\x26\x95\x09"
+			  "\x94\x3c\xb2\xb6\x02\xa7\xd9\x9a",
+		.klen	= 32,
+		.len	= 512,
+	},
+
+};
+
 #endif	/* _CRYPTO_TESTMGR_H */
diff --git a/crypto/xctr.c b/crypto/xctr.c
new file mode 100644
index 0000000..5c00147
--- /dev/null
+++ b/crypto/xctr.c
@@ -0,0 +1,191 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * XCTR: XOR Counter mode - Adapted from ctr.c
+ *
+ * (C) Copyright IBM Corp. 2007 - Joy Latten <latten@us.ibm.com>
+ * Copyright 2021 Google LLC
+ */
+
+/*
+ * XCTR mode is a blockcipher mode of operation used to implement HCTR2. XCTR is
+ * closely related to the CTR mode of operation; the main difference is that CTR
+ * generates the keystream using E(CTR + IV) whereas XCTR generates the
+ * keystream using E(CTR ^ IV). This allows implementations to avoid dealing
+ * with multi-limb integers (as is required in CTR mode). XCTR is also specified
+ * using little-endian arithmetic which makes it slightly faster on LE machines.
+ *
+ * See the HCTR2 paper for more details:
+ *	Length-preserving encryption with HCTR2
+ *      (https://eprint.iacr.org/2021/1441.pdf)
+ */
+
+#include <crypto/algapi.h>
+#include <crypto/internal/cipher.h>
+#include <crypto/internal/skcipher.h>
+#include <linux/err.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/slab.h>
+
+/* For now this implementation is limited to 16-byte blocks for simplicity */
+#define XCTR_BLOCKSIZE 16
+
+static void crypto_xctr_crypt_final(struct skcipher_walk *walk,
+				   struct crypto_cipher *tfm, u32 byte_ctr)
+{
+	u8 keystream[XCTR_BLOCKSIZE];
+	const u8 *src = walk->src.virt.addr;
+	u8 *dst = walk->dst.virt.addr;
+	unsigned int nbytes = walk->nbytes;
+	__le32 ctr32 = cpu_to_le32(byte_ctr / XCTR_BLOCKSIZE + 1);
+
+	crypto_xor(walk->iv, (u8 *)&ctr32, sizeof(ctr32));
+	crypto_cipher_encrypt_one(tfm, keystream, walk->iv);
+	crypto_xor_cpy(dst, keystream, src, nbytes);
+	crypto_xor(walk->iv, (u8 *)&ctr32, sizeof(ctr32));
+}
+
+static int crypto_xctr_crypt_segment(struct skcipher_walk *walk,
+				    struct crypto_cipher *tfm, u32 byte_ctr)
+{
+	void (*fn)(struct crypto_tfm *, u8 *, const u8 *) =
+		   crypto_cipher_alg(tfm)->cia_encrypt;
+	const u8 *src = walk->src.virt.addr;
+	u8 *dst = walk->dst.virt.addr;
+	unsigned int nbytes = walk->nbytes;
+	__le32 ctr32 = cpu_to_le32(byte_ctr / XCTR_BLOCKSIZE + 1);
+
+	do {
+		crypto_xor(walk->iv, (u8 *)&ctr32, sizeof(ctr32));
+		fn(crypto_cipher_tfm(tfm), dst, walk->iv);
+		crypto_xor(dst, src, XCTR_BLOCKSIZE);
+		crypto_xor(walk->iv, (u8 *)&ctr32, sizeof(ctr32));
+
+		le32_add_cpu(&ctr32, 1);
+
+		src += XCTR_BLOCKSIZE;
+		dst += XCTR_BLOCKSIZE;
+	} while ((nbytes -= XCTR_BLOCKSIZE) >= XCTR_BLOCKSIZE);
+
+	return nbytes;
+}
+
+static int crypto_xctr_crypt_inplace(struct skcipher_walk *walk,
+				    struct crypto_cipher *tfm, u32 byte_ctr)
+{
+	void (*fn)(struct crypto_tfm *, u8 *, const u8 *) =
+		   crypto_cipher_alg(tfm)->cia_encrypt;
+	unsigned long alignmask = crypto_cipher_alignmask(tfm);
+	unsigned int nbytes = walk->nbytes;
+	u8 *data = walk->src.virt.addr;
+	u8 tmp[XCTR_BLOCKSIZE + MAX_CIPHER_ALIGNMASK];
+	u8 *keystream = PTR_ALIGN(tmp + 0, alignmask + 1);
+	__le32 ctr32 = cpu_to_le32(byte_ctr / XCTR_BLOCKSIZE + 1);
+
+	do {
+		crypto_xor(walk->iv, (u8 *)&ctr32, sizeof(ctr32));
+		fn(crypto_cipher_tfm(tfm), keystream, walk->iv);
+		crypto_xor(data, keystream, XCTR_BLOCKSIZE);
+		crypto_xor(walk->iv, (u8 *)&ctr32, sizeof(ctr32));
+
+		le32_add_cpu(&ctr32, 1);
+
+		data += XCTR_BLOCKSIZE;
+	} while ((nbytes -= XCTR_BLOCKSIZE) >= XCTR_BLOCKSIZE);
+
+	return nbytes;
+}
+
+static int crypto_xctr_crypt(struct skcipher_request *req)
+{
+	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
+	struct crypto_cipher *cipher = skcipher_cipher_simple(tfm);
+	struct skcipher_walk walk;
+	unsigned int nbytes;
+	int err;
+	u32 byte_ctr = 0;
+
+	err = skcipher_walk_virt(&walk, req, false);
+
+	while (walk.nbytes >= XCTR_BLOCKSIZE) {
+		if (walk.src.virt.addr == walk.dst.virt.addr)
+			nbytes = crypto_xctr_crypt_inplace(&walk, cipher,
+							   byte_ctr);
+		else
+			nbytes = crypto_xctr_crypt_segment(&walk, cipher,
+							   byte_ctr);
+
+		byte_ctr += walk.nbytes - nbytes;
+		err = skcipher_walk_done(&walk, nbytes);
+	}
+
+	if (walk.nbytes) {
+		crypto_xctr_crypt_final(&walk, cipher, byte_ctr);
+		err = skcipher_walk_done(&walk, 0);
+	}
+
+	return err;
+}
+
+static int crypto_xctr_create(struct crypto_template *tmpl, struct rtattr **tb)
+{
+	struct skcipher_instance *inst;
+	struct crypto_alg *alg;
+	int err;
+
+	inst = skcipher_alloc_instance_simple(tmpl, tb);
+	if (IS_ERR(inst))
+		return PTR_ERR(inst);
+
+	alg = skcipher_ialg_simple(inst);
+
+	/* Block size must be 16 bytes. */
+	err = -EINVAL;
+	if (alg->cra_blocksize != XCTR_BLOCKSIZE)
+		goto out_free_inst;
+
+	/* XCTR mode is a stream cipher. */
+	inst->alg.base.cra_blocksize = 1;
+
+	/*
+	 * To simplify the implementation, configure the skcipher walk to only
+	 * give a partial block at the very end, never earlier.
+	 */
+	inst->alg.chunksize = alg->cra_blocksize;
+
+	inst->alg.encrypt = crypto_xctr_crypt;
+	inst->alg.decrypt = crypto_xctr_crypt;
+
+	err = skcipher_register_instance(tmpl, inst);
+	if (err) {
+out_free_inst:
+		inst->free(inst);
+	}
+
+	return err;
+}
+
+static struct crypto_template crypto_xctr_tmpl = {
+	.name = "xctr",
+	.create = crypto_xctr_create,
+	.module = THIS_MODULE,
+};
+
+static int __init crypto_xctr_module_init(void)
+{
+	return crypto_register_template(&crypto_xctr_tmpl);
+}
+
+static void __exit crypto_xctr_module_exit(void)
+{
+	crypto_unregister_template(&crypto_xctr_tmpl);
+}
+
+subsys_initcall(crypto_xctr_module_init);
+module_exit(crypto_xctr_module_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("XCTR block cipher mode of operation");
+MODULE_ALIAS_CRYPTO("xctr");
+MODULE_IMPORT_NS(CRYPTO_INTERNAL);
diff --git a/drivers/android/Kconfig b/drivers/android/Kconfig
index 53b22e2..491751a 100644
--- a/drivers/android/Kconfig
+++ b/drivers/android/Kconfig
@@ -54,6 +54,61 @@
 	  exhaustively with combinations of various buffer sizes and
 	  alignments.
 
+config ANDROID_DEBUG_SYMBOLS
+	bool "Android Debug Symbols"
+	help
+	  Enables export of debug symbols that are useful for offline debugging
+	  of a kernel. These symbols would be used in vendor modules to find
+	  addresses of the core kernel symbols for vendor extensions.
+
+	  This driver is statically compiled into kernel and maintains all the
+	  required symbol addresses for vendor modules and provides necessary
+	  interface vendor modules.
+
+config ANDROID_VENDOR_HOOKS
+	bool "Android Vendor Hooks"
+	depends on TRACEPOINTS
+	help
+	  Enable vendor hooks implemented as tracepoints
+
+	  Allow vendor modules to attach to tracepoint "hooks" defined via
+	  DECLARE_HOOK or DECLARE_RESTRICTED_HOOK.
+
+config ANDROID_KABI_RESERVE
+	bool "Android KABI reserve padding"
+	default y
+	help
+	  This option enables the padding that the Android GKI kernel adds
+	  to many different kernel structures to support an in-kernel stable ABI
+	  over the lifespan of support for the kernel.
+
+	  Only disable this option if you have a system that needs the Android
+	  kernel drivers, but is NOT an Android GKI kernel image. If disabled
+	  it has the possibility to make the kernel static and runtime image
+	  slightly smaller but will NOT be supported by the Google Android
+	  kernel team.
+
+	  If even slightly unsure, say Y.
+
+config ANDROID_VENDOR_OEM_DATA
+	bool "Android vendor and OEM data padding"
+	default y
+	help
+	  This option enables the padding that the Android GKI kernel adds
+	  to many different kernel structures to support an in-kernel stable ABI
+	  over the lifespan of support for the kernel as well as OEM additional
+	  fields that are needed by some of the Android kernel tracepoints. The
+	  macros enabled by this option are used to enable padding in vendor modules
+	  used for the above specified purposes.
+
+	  Only disable this option if you have a system that needs the Android
+	  kernel drivers, but is NOT an Android GKI kernel image and you do NOT
+	  use the Android kernel tracepoints. If disabled it has the possibility
+	  to make the kernel static and runtime image slightly smaller but will
+	  NOT be supported by the Google Android kernel team.
+
+	  If even slightly unsure, say Y.
+
 endif # if ANDROID
 
 endmenu
diff --git a/drivers/android/Makefile b/drivers/android/Makefile
index c9d3d0c9..f1ac441 100644
--- a/drivers/android/Makefile
+++ b/drivers/android/Makefile
@@ -4,3 +4,5 @@
 obj-$(CONFIG_ANDROID_BINDERFS)		+= binderfs.o
 obj-$(CONFIG_ANDROID_BINDER_IPC)	+= binder.o binder_alloc.o
 obj-$(CONFIG_ANDROID_BINDER_IPC_SELFTEST) += binder_alloc_selftest.o
+obj-$(CONFIG_ANDROID_DEBUG_SYMBOLS)	+= android_debug_symbols.o
+obj-$(CONFIG_ANDROID_VENDOR_HOOKS) += vendor_hooks.o
diff --git a/drivers/android/android_debug_symbols.c b/drivers/android/android_debug_symbols.c
new file mode 100644
index 0000000..dd75dda
--- /dev/null
+++ b/drivers/android/android_debug_symbols.c
@@ -0,0 +1,149 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/*
+ * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ */
+
+#include <linux/types.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/android_debug_symbols.h>
+#include <asm/stacktrace.h>
+#include <asm/sections.h>
+
+#include <linux/cma.h>
+#include "../../mm/slab.h"
+#include <linux/memblock.h>
+#include <linux/page_owner.h>
+#include <linux/swap.h>
+#include <linux/mm.h>
+#include <linux/security.h>
+
+struct ads_entry {
+	char *name;
+	void *addr;
+};
+
+bool ads_page_owner;
+bool ads_slub_debug;
+unsigned long ads_vmalloc_nr_pages;
+unsigned long ads_pcpu_nr_pages;
+
+#define _ADS_ENTRY(index, symbol)			\
+	[index] = { .name = #symbol, .addr = (void *)symbol }
+#define ADS_ENTRY(index, symbol) _ADS_ENTRY(index, symbol)
+
+#define _ADS_PER_CPU_ENTRY(index, symbol)			\
+	[index] = { .name = #symbol, .addr = (void *)&symbol }
+#define ADS_PER_CPU_ENTRY(index, symbol) _ADS_PER_CPU_ENTRY(index, symbol)
+
+/*
+ * This module maintains static array of symbol and address information.
+ * Add all required core kernel symbols and their addresses into ads_entries[] array,
+ * so that vendor modules can query and to find address of non-exported symbol.
+ */
+static const struct ads_entry ads_entries[ADS_END] = {
+	ADS_ENTRY(ADS_SDATA, _sdata),
+	ADS_ENTRY(ADS_BSS_END, __bss_stop),
+	ADS_ENTRY(ADS_PER_CPU_START, __per_cpu_start),
+	ADS_ENTRY(ADS_PER_CPU_END, __per_cpu_end),
+	ADS_ENTRY(ADS_START_RO_AFTER_INIT, __start_ro_after_init),
+	ADS_ENTRY(ADS_END_RO_AFTER_INIT, __end_ro_after_init),
+	ADS_ENTRY(ADS_LINUX_BANNER, linux_banner),
+#ifdef CONFIG_CMA
+	ADS_ENTRY(ADS_TOTAL_CMA, &totalcma_pages),
+#endif
+	ADS_ENTRY(ADS_SLAB_CACHES, &slab_caches),
+	ADS_ENTRY(ADS_SLAB_MUTEX, &slab_mutex),
+	ADS_ENTRY(ADS_MIN_LOW_PFN, &min_low_pfn),
+	ADS_ENTRY(ADS_MAX_PFN, &max_pfn),
+	ADS_ENTRY(ADS_VMALLOC_NR_PAGES, &ads_vmalloc_nr_pages),
+	ADS_ENTRY(ADS_PCPU_NR_PAGES, &ads_pcpu_nr_pages),
+#ifdef CONFIG_PAGE_OWNER
+	ADS_ENTRY(ADS_PAGE_OWNER_ENABLED, &ads_page_owner),
+#endif
+#ifdef CONFIG_SLUB_DEBUG
+	ADS_ENTRY(ADS_SLUB_DEBUG, &ads_slub_debug),
+#endif
+#ifdef CONFIG_SWAP
+	ADS_ENTRY(ADS_NR_SWAP_PAGES, &nr_swap_pages),
+#endif
+#ifdef CONFIG_MMU
+	ADS_ENTRY(ADS_MMAP_MIN_ADDR, &mmap_min_addr),
+#endif
+	ADS_ENTRY(ADS_STACK_GUARD_GAP, &stack_guard_gap),
+#ifdef CONFIG_SYSCTL
+	ADS_ENTRY(ADS_SYSCTL_LEGACY_VA_LAYOUT, &sysctl_legacy_va_layout),
+#endif
+	ADS_ENTRY(ADS_SHOW_MEM, show_mem),
+#ifdef CONFIG_ARM64
+	ADS_ENTRY(ADS_PUT_TASK_STACK, put_task_stack),
+#endif
+};
+
+/*
+ * ads_per_cpu_entries array contains all the per_cpu variable address information.
+ */
+static const struct ads_entry ads_per_cpu_entries[ADS_DEBUG_PER_CPU_END] = {
+#ifdef CONFIG_ARM64
+	ADS_PER_CPU_ENTRY(ADS_IRQ_STACK_PTR, irq_stack_ptr),
+#endif
+#ifdef CONFIG_X86
+	ADS_PER_CPU_ENTRY(ADS_IRQ_STACK_PTR, hardirq_stack_ptr),
+#endif
+};
+
+/*
+ * android_debug_symbol - Provide address inforamtion of debug symbol.
+ * @symbol: Index of debug symbol array.
+ *
+ * Return address of core kernel symbol on success and a negative errno will be
+ * returned in error cases.
+ *
+ */
+void *android_debug_symbol(enum android_debug_symbol symbol)
+{
+	if (symbol >= ADS_END)
+		return ERR_PTR(-EINVAL);
+
+	return ads_entries[symbol].addr;
+}
+EXPORT_SYMBOL_NS_GPL(android_debug_symbol, MINIDUMP);
+
+/*
+ * android_debug_per_cpu_symbol - Provide address inforamtion of per cpu debug symbol.
+ * @symbol: Index of per cpu debug symbol array.
+ *
+ * Return address of core kernel symbol on success and a negative errno will be
+ * returned in error cases.
+ *
+ */
+void *android_debug_per_cpu_symbol(enum android_debug_per_cpu_symbol symbol)
+{
+	if (symbol >= ADS_DEBUG_PER_CPU_END)
+		return ERR_PTR(-EINVAL);
+
+	return ads_per_cpu_entries[symbol].addr;
+}
+EXPORT_SYMBOL_NS_GPL(android_debug_per_cpu_symbol, MINIDUMP);
+
+static int __init debug_symbol_init(void)
+{
+#ifdef CONFIG_PAGE_OWNER
+	ads_page_owner  = page_owner_ops.need();
+#endif
+#ifdef CONFIG_SLUB_DEBUG
+	ads_slub_debug = __slub_debug_enabled();
+#endif
+	ads_vmalloc_nr_pages = vmalloc_nr_pages();
+	ads_pcpu_nr_pages = pcpu_nr_pages();
+	return 0;
+}
+module_init(debug_symbol_init);
+
+static void __exit debug_symbol_exit(void)
+{ }
+module_exit(debug_symbol_exit);
+
+MODULE_DESCRIPTION("Debug Symbol Driver");
+MODULE_LICENSE("GPL v2");
diff --git a/drivers/android/binder.c b/drivers/android/binder.c
index cbbed43..1be959f 100644
--- a/drivers/android/binder.c
+++ b/drivers/android/binder.c
@@ -66,13 +66,16 @@
 #include <linux/syscalls.h>
 #include <linux/task_work.h>
 #include <linux/sizes.h>
+#include <linux/android_vendor.h>
 
+#include <uapi/linux/sched/types.h>
 #include <uapi/linux/android/binder.h>
 
 #include <asm/cacheflush.h>
 
 #include "binder_internal.h"
 #include "binder_trace.h"
+#include <trace/hooks/binder.h>
 
 static HLIST_HEAD(binder_deferred_list);
 static DEFINE_MUTEX(binder_deferred_lock);
@@ -512,6 +515,11 @@
 static bool binder_has_work_ilocked(struct binder_thread *thread,
 				    bool do_proc_work)
 {
+	int ret = 0;
+
+	trace_android_vh_binder_has_work_ilocked(thread, do_proc_work, &ret);
+	if (ret)
+		return true;
 	return thread->process_todo ||
 		thread->looper_need_return ||
 		(do_proc_work &&
@@ -547,6 +555,7 @@
 		thread = rb_entry(n, struct binder_thread, rb_node);
 		if (thread->looper & BINDER_LOOPER_STATE_POLL &&
 		    binder_available_for_proc_work_ilocked(thread)) {
+			trace_android_vh_binder_wakeup_ilocked(thread->task, sync, proc);
 			if (sync)
 				wake_up_interruptible_sync(&thread->wait);
 			else
@@ -606,6 +615,7 @@
 	assert_spin_locked(&proc->inner_lock);
 
 	if (thread) {
+		trace_android_vh_binder_wakeup_ilocked(thread->task, sync, proc);
 		if (sync)
 			wake_up_interruptible_sync(&thread->wait);
 		else
@@ -636,22 +646,195 @@
 	binder_wakeup_thread_ilocked(proc, thread, /* sync = */false);
 }
 
-static void binder_set_nice(long nice)
+static bool is_rt_policy(int policy)
 {
-	long min_nice;
+	return policy == SCHED_FIFO || policy == SCHED_RR;
+}
 
-	if (can_nice(current, nice)) {
-		set_user_nice(current, nice);
+static bool is_fair_policy(int policy)
+{
+	return policy == SCHED_NORMAL || policy == SCHED_BATCH;
+}
+
+static bool binder_supported_policy(int policy)
+{
+	return is_fair_policy(policy) || is_rt_policy(policy);
+}
+
+static int to_userspace_prio(int policy, int kernel_priority)
+{
+	if (is_fair_policy(policy))
+		return PRIO_TO_NICE(kernel_priority);
+	else
+		return MAX_RT_PRIO - 1 - kernel_priority;
+}
+
+static int to_kernel_prio(int policy, int user_priority)
+{
+	if (is_fair_policy(policy))
+		return NICE_TO_PRIO(user_priority);
+	else
+		return MAX_RT_PRIO - 1 - user_priority;
+}
+
+static void binder_do_set_priority(struct binder_thread *thread,
+				   const struct binder_priority *desired,
+				   bool verify)
+{
+	struct task_struct *task = thread->task;
+	int priority; /* user-space prio value */
+	bool has_cap_nice;
+	unsigned int policy = desired->sched_policy;
+
+	if (task->policy == policy && task->normal_prio == desired->prio) {
+		spin_lock(&thread->prio_lock);
+		if (thread->prio_state == BINDER_PRIO_PENDING)
+			thread->prio_state = BINDER_PRIO_SET;
+		spin_unlock(&thread->prio_lock);
 		return;
 	}
-	min_nice = rlimit_to_nice(rlimit(RLIMIT_NICE));
-	binder_debug(BINDER_DEBUG_PRIORITY_CAP,
-		     "%d: nice value %ld not allowed use %ld instead\n",
-		      current->pid, nice, min_nice);
-	set_user_nice(current, min_nice);
-	if (min_nice <= MAX_NICE)
+
+	has_cap_nice = has_capability_noaudit(task, CAP_SYS_NICE);
+
+	priority = to_userspace_prio(policy, desired->prio);
+
+	if (verify && is_rt_policy(policy) && !has_cap_nice) {
+		long max_rtprio = task_rlimit(task, RLIMIT_RTPRIO);
+
+		if (max_rtprio == 0) {
+			policy = SCHED_NORMAL;
+			priority = MIN_NICE;
+		} else if (priority > max_rtprio) {
+			priority = max_rtprio;
+		}
+	}
+
+	if (verify && is_fair_policy(policy) && !has_cap_nice) {
+		long min_nice = rlimit_to_nice(task_rlimit(task, RLIMIT_NICE));
+
+		if (min_nice > MAX_NICE) {
+			binder_user_error("%d RLIMIT_NICE not set\n",
+					  task->pid);
+			return;
+		} else if (priority < min_nice) {
+			priority = min_nice;
+		}
+	}
+
+	if (policy != desired->sched_policy ||
+	    to_kernel_prio(policy, priority) != desired->prio)
+		binder_debug(BINDER_DEBUG_PRIORITY_CAP,
+			     "%d: priority %d not allowed, using %d instead\n",
+			      task->pid, desired->prio,
+			      to_kernel_prio(policy, priority));
+
+	trace_binder_set_priority(task->tgid, task->pid, task->normal_prio,
+				  to_kernel_prio(policy, priority),
+				  desired->prio);
+
+	spin_lock(&thread->prio_lock);
+	if (!verify && thread->prio_state == BINDER_PRIO_ABORT) {
+		/*
+		 * A new priority has been set by an incoming nested
+		 * transaction. Abort this priority restore and allow
+		 * the transaction to run at the new desired priority.
+		 */
+		spin_unlock(&thread->prio_lock);
+		binder_debug(BINDER_DEBUG_PRIORITY_CAP,
+			"%d: %s: aborting priority restore\n",
+			thread->pid, __func__);
 		return;
-	binder_user_error("%d RLIMIT_NICE not set\n", current->pid);
+	}
+
+	/* Set the actual priority */
+	if (task->policy != policy || is_rt_policy(policy)) {
+		struct sched_param params;
+
+		params.sched_priority = is_rt_policy(policy) ? priority : 0;
+
+		sched_setscheduler_nocheck(task,
+					   policy | SCHED_RESET_ON_FORK,
+					   &params);
+	}
+	if (is_fair_policy(policy))
+		set_user_nice(task, priority);
+
+	thread->prio_state = BINDER_PRIO_SET;
+	spin_unlock(&thread->prio_lock);
+}
+
+static void binder_set_priority(struct binder_thread *thread,
+				const struct binder_priority *desired)
+{
+	binder_do_set_priority(thread, desired, /* verify = */ true);
+}
+
+static void binder_restore_priority(struct binder_thread *thread,
+				    const struct binder_priority *desired)
+{
+	binder_do_set_priority(thread, desired, /* verify = */ false);
+}
+
+static void binder_transaction_priority(struct binder_thread *thread,
+					struct binder_transaction *t,
+					struct binder_node *node)
+{
+	struct task_struct *task = thread->task;
+	struct binder_priority desired = t->priority;
+	const struct binder_priority node_prio = {
+		.sched_policy = node->sched_policy,
+		.prio = node->min_priority,
+	};
+	bool skip = false;
+
+	if (t->set_priority_called)
+		return;
+
+	t->set_priority_called = true;
+
+	trace_android_vh_binder_priority_skip(task, &skip);
+	if (skip)
+		return;
+
+	if (!node->inherit_rt && is_rt_policy(desired.sched_policy)) {
+		desired.prio = NICE_TO_PRIO(0);
+		desired.sched_policy = SCHED_NORMAL;
+	}
+
+	if (node_prio.prio < t->priority.prio ||
+	    (node_prio.prio == t->priority.prio &&
+	     node_prio.sched_policy == SCHED_FIFO)) {
+		/*
+		 * In case the minimum priority on the node is
+		 * higher (lower value), use that priority. If
+		 * the priority is the same, but the node uses
+		 * SCHED_FIFO, prefer SCHED_FIFO, since it can
+		 * run unbounded, unlike SCHED_RR.
+		 */
+		desired = node_prio;
+	}
+
+	spin_lock(&thread->prio_lock);
+	if (thread->prio_state == BINDER_PRIO_PENDING) {
+		/*
+		 * Task is in the process of changing priorities
+		 * saving its current values would be incorrect.
+		 * Instead, save the pending priority and signal
+		 * the task to abort the priority restore.
+		 */
+		t->saved_priority = thread->prio_next;
+		thread->prio_state = BINDER_PRIO_ABORT;
+		binder_debug(BINDER_DEBUG_PRIORITY_CAP,
+			"%d: saved pending priority %d\n",
+			current->pid, thread->prio_next.prio);
+	} else {
+		t->saved_priority.sched_policy = task->policy;
+		t->saved_priority.prio = task->normal_prio;
+	}
+	spin_unlock(&thread->prio_lock);
+
+	binder_set_priority(thread, &desired);
+	trace_android_vh_binder_set_priority(t, task);
 }
 
 static struct binder_node *binder_get_node_ilocked(struct binder_proc *proc,
@@ -704,6 +887,7 @@
 	binder_uintptr_t ptr = fp ? fp->binder : 0;
 	binder_uintptr_t cookie = fp ? fp->cookie : 0;
 	__u32 flags = fp ? fp->flags : 0;
+	s8 priority;
 
 	assert_spin_locked(&proc->inner_lock);
 
@@ -736,8 +920,12 @@
 	node->ptr = ptr;
 	node->cookie = cookie;
 	node->work.type = BINDER_WORK_NODE;
-	node->min_priority = flags & FLAT_BINDER_FLAG_PRIORITY_MASK;
+	priority = flags & FLAT_BINDER_FLAG_PRIORITY_MASK;
+	node->sched_policy = (flags & FLAT_BINDER_FLAG_SCHED_POLICY_MASK) >>
+		FLAT_BINDER_FLAG_SCHED_POLICY_SHIFT;
+	node->min_priority = to_kernel_prio(node->sched_policy, priority);
 	node->accept_fds = !!(flags & FLAT_BINDER_FLAG_ACCEPTS_FDS);
+	node->inherit_rt = !!(flags & FLAT_BINDER_FLAG_INHERIT_RT);
 	node->txn_security_ctx = !!(flags & FLAT_BINDER_FLAG_TXN_SECURITY_CTX);
 	spin_lock_init(&node->lock);
 	INIT_LIST_HEAD(&node->work.entry);
@@ -1087,6 +1275,7 @@
 		     "%d new ref %d desc %d for node %d\n",
 		      proc->pid, new_ref->data.debug_id, new_ref->data.desc,
 		      node->debug_id);
+	trace_android_vh_binder_new_ref(proc->tsk, new_ref->data.desc, new_ref->node->debug_id);
 	binder_node_unlock(node);
 	return new_ref;
 }
@@ -1254,6 +1443,8 @@
  */
 static void binder_free_ref(struct binder_ref *ref)
 {
+	trace_android_vh_binder_del_ref(ref->proc ? ref->proc->tsk : NULL,
+					ref->data.desc);
 	if (ref->node)
 		binder_free_node(ref->node);
 	kfree(ref->death);
@@ -2645,6 +2836,56 @@
 }
 
 /**
+ * binder_can_update_transaction() - Can a txn be superseded by an updated one?
+ * @t1: the pending async txn in the frozen process
+ * @t2: the new async txn to supersede the outdated pending one
+ *
+ * Return:  true if t2 can supersede t1
+ *          false if t2 can not supersede t1
+ */
+static bool binder_can_update_transaction(struct binder_transaction *t1,
+					  struct binder_transaction *t2)
+{
+	if ((t1->flags & t2->flags & (TF_ONE_WAY | TF_UPDATE_TXN)) !=
+	    (TF_ONE_WAY | TF_UPDATE_TXN) || !t1->to_proc || !t2->to_proc)
+		return false;
+	if (t1->to_proc->tsk == t2->to_proc->tsk && t1->code == t2->code &&
+	    t1->flags == t2->flags && t1->buffer->pid == t2->buffer->pid &&
+	    t1->buffer->target_node->ptr == t2->buffer->target_node->ptr &&
+	    t1->buffer->target_node->cookie == t2->buffer->target_node->cookie)
+		return true;
+	return false;
+}
+
+/**
+ * binder_find_outdated_transaction_ilocked() - Find the outdated transaction
+ * @t:		 new async transaction
+ * @target_list: list to find outdated transaction
+ *
+ * Return: the outdated transaction if found
+ *         NULL if no outdated transacton can be found
+ *
+ * Requires the proc->inner_lock to be held.
+ */
+static struct binder_transaction *
+binder_find_outdated_transaction_ilocked(struct binder_transaction *t,
+					 struct list_head *target_list)
+{
+	struct binder_work *w;
+
+	list_for_each_entry(w, target_list, entry) {
+		struct binder_transaction *t_queued;
+
+		if (w->type != BINDER_WORK_TRANSACTION)
+			continue;
+		t_queued = container_of(w, struct binder_transaction, work);
+		if (binder_can_update_transaction(t_queued, t))
+			return t_queued;
+	}
+	return NULL;
+}
+
+/**
  * binder_proc_transaction() - sends a transaction to a process and wakes it up
  * @t:		transaction to send
  * @proc:	process to send the transaction to
@@ -2669,9 +2910,12 @@
 	struct binder_node *node = t->buffer->target_node;
 	bool oneway = !!(t->flags & TF_ONE_WAY);
 	bool pending_async = false;
+	bool skip = false;
+	struct binder_transaction *t_outdated = NULL;
 
 	BUG_ON(!node);
 	binder_node_lock(node);
+
 	if (oneway) {
 		BUG_ON(thread);
 		if (node->has_async_transaction)
@@ -2693,16 +2937,38 @@
 		return proc->is_frozen ? BR_FROZEN_REPLY : BR_DEAD_REPLY;
 	}
 
-	if (!thread && !pending_async)
+	trace_android_vh_binder_proc_transaction_entry(proc, t,
+		&thread, node->debug_id, pending_async, !oneway, &skip);
+
+	if (!thread && !pending_async && !skip)
 		thread = binder_select_thread_ilocked(proc);
 
-	if (thread)
-		binder_enqueue_thread_work_ilocked(thread, &t->work);
-	else if (!pending_async)
-		binder_enqueue_work_ilocked(&t->work, &proc->todo);
-	else
-		binder_enqueue_work_ilocked(&t->work, &node->async_todo);
+	trace_android_vh_binder_proc_transaction(current, proc->tsk,
+		thread ? thread->task : NULL, node->debug_id, t->code,
+		pending_async);
 
+	if (thread) {
+		binder_transaction_priority(thread, t, node);
+		binder_enqueue_thread_work_ilocked(thread, &t->work);
+	} else if (!pending_async) {
+		binder_enqueue_work_ilocked(&t->work, &proc->todo);
+	} else {
+		if ((t->flags & TF_UPDATE_TXN) && proc->is_frozen) {
+			t_outdated = binder_find_outdated_transaction_ilocked(t,
+									      &node->async_todo);
+			if (t_outdated) {
+				binder_debug(BINDER_DEBUG_TRANSACTION,
+					     "txn %d supersedes %d\n",
+					     t->debug_id, t_outdated->debug_id);
+				list_del_init(&t_outdated->work.entry);
+				proc->outstanding_txns--;
+			}
+		}
+		binder_enqueue_work_ilocked(&t->work, &node->async_todo);
+	}
+
+	trace_android_vh_binder_proc_transaction_finish(proc, t,
+		thread ? thread->task : NULL, pending_async, !oneway);
 	if (!pending_async)
 		binder_wakeup_thread_ilocked(proc, thread, !oneway /* sync */);
 
@@ -2710,6 +2976,22 @@
 	binder_inner_proc_unlock(proc);
 	binder_node_unlock(node);
 
+	/*
+	 * To reduce potential contention, free the outdated transaction and
+	 * buffer after releasing the locks.
+	 */
+	if (t_outdated) {
+		struct binder_buffer *buffer = t_outdated->buffer;
+
+		t_outdated->buffer = NULL;
+		buffer->transaction = NULL;
+		trace_binder_transaction_update_buffer_release(buffer);
+		binder_release_entire_buffer(proc, NULL, buffer, false);
+		binder_alloc_free_buf(&proc->alloc, buffer);
+		kfree(t_outdated);
+		binder_stats_deleted(BINDER_STAT_TRANSACTION);
+	}
+
 	return 0;
 }
 
@@ -2783,10 +3065,12 @@
 	int t_debug_id = atomic_inc_return(&binder_last_id);
 	char *secctx = NULL;
 	u32 secctx_sz = 0;
+	bool is_nested = false;
 	struct list_head sgc_head;
 	struct list_head pf_head;
 	const void __user *user_buffer = (const void __user *)
 				(uintptr_t)tr->data.ptr.buffer;
+
 	INIT_LIST_HEAD(&sgc_head);
 	INIT_LIST_HEAD(&pf_head);
 
@@ -2830,7 +3114,6 @@
 		}
 		thread->transaction_stack = in_reply_to->to_parent;
 		binder_inner_proc_unlock(proc);
-		binder_set_nice(in_reply_to->saved_priority);
 		target_thread = binder_get_txn_from_and_acq_inner(in_reply_to);
 		if (target_thread == NULL) {
 			/* annotation for sparse */
@@ -2856,6 +3139,7 @@
 		target_proc = target_thread->proc;
 		target_proc->tmp_ref++;
 		binder_inner_proc_unlock(target_thread->proc);
+		trace_android_vh_binder_reply(target_proc, proc, thread, tr);
 	} else {
 		if (tr->target.handle) {
 			struct binder_ref *ref;
@@ -2914,6 +3198,7 @@
 			return_error_line = __LINE__;
 			goto err_invalid_target_handle;
 		}
+		trace_android_vh_binder_trans(target_proc, proc, thread, tr);
 		if (security_binder_transaction(proc->cred,
 						target_proc->cred) < 0) {
 			return_error = BR_FAILED_REPLY;
@@ -2972,6 +3257,7 @@
 					atomic_inc(&from->tmp_ref);
 					target_thread = from;
 					spin_unlock(&tmp->lock);
+					is_nested = true;
 					break;
 				}
 				spin_unlock(&tmp->lock);
@@ -2995,6 +3281,7 @@
 	INIT_LIST_HEAD(&t->fd_fixups);
 	binder_stats_created(BINDER_STAT_TRANSACTION);
 	spin_lock_init(&t->lock);
+	trace_android_vh_binder_transaction_init(t);
 
 	tcomplete = kzalloc(sizeof(*tcomplete), GFP_KERNEL);
 	if (tcomplete == NULL) {
@@ -3035,7 +3322,16 @@
 	t->to_thread = target_thread;
 	t->code = tr->code;
 	t->flags = tr->flags;
-	t->priority = task_nice(current);
+	t->is_nested = is_nested;
+	if (!(t->flags & TF_ONE_WAY) &&
+	    binder_supported_policy(current->policy)) {
+		/* Inherit supported policies for synchronous transactions */
+		t->priority.sched_policy = current->policy;
+		t->priority.prio = current->normal_prio;
+	} else {
+		/* Otherwise, fall back to the default priority */
+		t->priority = target_proc->default_priority;
+	}
 
 	if (target_node && target_node->txn_security_ctx) {
 		u32 secid;
@@ -3425,7 +3721,15 @@
 		binder_enqueue_thread_work_ilocked(target_thread, &t->work);
 		target_proc->outstanding_txns++;
 		binder_inner_proc_unlock(target_proc);
+		if (in_reply_to->is_nested) {
+			spin_lock(&thread->prio_lock);
+			thread->prio_state = BINDER_PRIO_PENDING;
+			thread->prio_next = in_reply_to->saved_priority;
+			spin_unlock(&thread->prio_lock);
+		}
 		wake_up_interruptible_sync(&target_thread->wait);
+		trace_android_vh_binder_restore_priority(in_reply_to, current);
+		binder_restore_priority(thread, &in_reply_to->saved_priority);
 		binder_free_transaction(in_reply_to);
 	} else if (!(t->flags & TF_ONE_WAY)) {
 		BUG_ON(t->buffer->async_transaction != 0);
@@ -3541,6 +3845,8 @@
 
 	BUG_ON(thread->return_error.cmd != BR_OK);
 	if (in_reply_to) {
+		trace_android_vh_binder_restore_priority(in_reply_to, current);
+		binder_restore_priority(thread, &in_reply_to->saved_priority);
 		thread->return_error.cmd = BR_TRANSACTION_COMPLETE;
 		binder_enqueue_thread_work(thread, &thread->return_error.work);
 		binder_send_failed_reply(in_reply_to, return_error);
@@ -3840,6 +4146,7 @@
 			}
 			thread->looper |= BINDER_LOOPER_STATE_REGISTERED;
 			binder_inner_proc_unlock(proc);
+			trace_android_vh_binder_looper_state_registered(thread, proc);
 			break;
 		case BC_ENTER_LOOPER:
 			binder_debug(BINDER_DEBUG_THREADS,
@@ -4101,6 +4408,7 @@
 		if (do_proc_work)
 			list_add(&thread->waiting_thread_node,
 				 &proc->waiting_threads);
+		trace_android_vh_binder_wait_for_work(do_proc_work, thread, proc);
 		binder_inner_proc_unlock(proc);
 		schedule();
 		binder_inner_proc_lock(proc);
@@ -4218,7 +4526,8 @@
 			wait_event_interruptible(binder_user_error_wait,
 						 binder_stop_on_user_error < 2);
 		}
-		binder_set_nice(proc->default_priority);
+		trace_android_vh_binder_restore_priority(NULL, current);
+		binder_restore_priority(thread, &proc->default_priority);
 	}
 
 	if (non_block) {
@@ -4244,6 +4553,10 @@
 		size_t trsize = sizeof(*trd);
 
 		binder_inner_proc_lock(proc);
+		trace_android_vh_binder_select_worklist_ilocked(&list, thread,
+						proc, wait_for_proc_work);
+		if (list)
+			goto skip;
 		if (!binder_worklist_empty_ilocked(&thread->todo))
 			list = &thread->todo;
 		else if (!binder_worklist_empty_ilocked(&proc->todo) &&
@@ -4257,11 +4570,12 @@
 				goto retry;
 			break;
 		}
-
+skip:
 		if (end - ptr < sizeof(tr) + 4) {
 			binder_inner_proc_unlock(proc);
 			break;
 		}
+		trace_android_vh_binder_thread_read(&list, proc, thread);
 		w = binder_dequeue_work_head_ilocked(list);
 		if (binder_worklist_empty_ilocked(&thread->todo))
 			thread->process_todo = false;
@@ -4448,13 +4762,7 @@
 
 			trd->target.ptr = target_node->ptr;
 			trd->cookie =  target_node->cookie;
-			t->saved_priority = task_nice(current);
-			if (t->priority < target_node->min_priority &&
-			    !(t->flags & TF_ONE_WAY))
-				binder_set_nice(t->priority);
-			else if (!(t->flags & TF_ONE_WAY) ||
-				 t->saved_priority > target_node->min_priority)
-				binder_set_nice(target_node->min_priority);
+			binder_transaction_priority(thread, t, target_node);
 			cmd = BR_TRANSACTION;
 		} else {
 			trd->target.ptr = 0;
@@ -4472,6 +4780,7 @@
 			trd->sender_pid =
 				task_tgid_nr_ns(sender,
 						task_active_pid_ns(current));
+			trace_android_vh_sync_txn_recvd(thread->task, t_from->task);
 		} else {
 			trd->sender_pid = 0;
 		}
@@ -4672,6 +4981,8 @@
 	binder_stats_created(BINDER_STAT_THREAD);
 	thread->proc = proc;
 	thread->pid = current->pid;
+	get_task_struct(current);
+	thread->task = current;
 	atomic_set(&thread->tmp_ref, 0);
 	init_waitqueue_head(&thread->wait);
 	INIT_LIST_HEAD(&thread->todo);
@@ -4682,6 +4993,8 @@
 	thread->return_error.cmd = BR_OK;
 	thread->reply_error.work.type = BINDER_WORK_RETURN_ERROR;
 	thread->reply_error.cmd = BR_OK;
+	spin_lock_init(&thread->prio_lock);
+	thread->prio_state = BINDER_PRIO_SET;
 	INIT_LIST_HEAD(&new_thread->waiting_thread_node);
 	return thread;
 }
@@ -4725,6 +5038,7 @@
 	put_task_struct(proc->tsk);
 	put_cred(proc->cred);
 	binder_stats_deleted(BINDER_STAT_PROC);
+	trace_android_vh_binder_free_proc(proc);
 	kfree(proc);
 }
 
@@ -4733,6 +5047,7 @@
 	BUG_ON(!list_empty(&thread->todo));
 	binder_stats_deleted(BINDER_STAT_THREAD);
 	binder_proc_dec_tmpref(thread->proc);
+	put_task_struct(thread->task);
 	kfree(thread);
 }
 
@@ -4822,6 +5137,7 @@
 	if (send_reply)
 		binder_send_failed_reply(send_reply, BR_DEAD_REPLY);
 	binder_release_work(proc, &thread->todo);
+	trace_android_vh_binder_thread_release(proc, thread);
 	binder_thread_dec_tmpref(thread);
 	return active_transactions;
 }
@@ -4898,6 +5214,7 @@
 		if (!binder_worklist_empty_ilocked(&proc->todo))
 			binder_wakeup_proc_ilocked(proc);
 		binder_inner_proc_unlock(proc);
+		trace_android_vh_binder_read_done(proc, thread);
 		if (ret < 0) {
 			if (copy_to_user(ubuf, &bwr, sizeof(bwr)))
 				ret = -EFAULT;
@@ -5426,7 +5743,14 @@
 	proc->cred = get_cred(filp->f_cred);
 	INIT_LIST_HEAD(&proc->todo);
 	init_waitqueue_head(&proc->freeze_wait);
-	proc->default_priority = task_nice(current);
+	if (binder_supported_policy(current->policy)) {
+		proc->default_priority.sched_policy = current->policy;
+		proc->default_priority.prio = current->normal_prio;
+	} else {
+		proc->default_priority.sched_policy = SCHED_NORMAL;
+		proc->default_priority.prio = NICE_TO_PRIO(0);
+	}
+
 	/* binderfs stashes devices in i_private */
 	if (is_binderfs_device(nodp)) {
 		binder_dev = nodp->i_private;
@@ -5455,7 +5779,7 @@
 	}
 	hlist_add_head(&proc->proc_node, &binder_procs);
 	mutex_unlock(&binder_procs_lock);
-
+	trace_android_vh_binder_preset(&binder_procs, &binder_procs_lock);
 	if (binder_debugfs_dir_entry_proc && !existing_pid) {
 		char strbuf[11];
 
@@ -5749,15 +6073,17 @@
 	struct binder_buffer *buffer = t->buffer;
 
 	spin_lock(&t->lock);
+	trace_android_vh_binder_print_transaction_info(m, proc, prefix, t);
 	to_proc = t->to_proc;
 	seq_printf(m,
-		   "%s %d: %pK from %d:%d to %d:%d code %x flags %x pri %ld r%d",
+		   "%s %d: %pK from %d:%d to %d:%d code %x flags %x pri %d:%d r%d",
 		   prefix, t->debug_id, t,
 		   t->from ? t->from->proc->pid : 0,
 		   t->from ? t->from->pid : 0,
 		   to_proc ? to_proc->pid : 0,
 		   t->to_thread ? t->to_thread->pid : 0,
-		   t->code, t->flags, t->priority, t->need_reply);
+		   t->code, t->flags, t->priority.sched_policy,
+		   t->priority.prio, t->need_reply);
 	spin_unlock(&t->lock);
 
 	if (proc != to_proc) {
@@ -5875,8 +6201,9 @@
 	hlist_for_each_entry(ref, &node->refs, node_entry)
 		count++;
 
-	seq_printf(m, "  node %d: u%016llx c%016llx hs %d hw %d ls %d lw %d is %d iw %d tr %d",
+	seq_printf(m, "  node %d: u%016llx c%016llx pri %d:%d hs %d hw %d ls %d lw %d is %d iw %d tr %d",
 		   node->debug_id, (u64)node->ptr, (u64)node->cookie,
+		   node->sched_policy, node->min_priority,
 		   node->has_strong_ref, node->has_weak_ref,
 		   node->local_strong_refs, node->local_weak_refs,
 		   node->internal_strong_refs, count, node->tmp_refs);
@@ -6421,5 +6748,7 @@
 
 #define CREATE_TRACE_POINTS
 #include "binder_trace.h"
+EXPORT_TRACEPOINT_SYMBOL_GPL(binder_transaction_received);
+EXPORT_TRACEPOINT_SYMBOL_GPL(binder_txn_latency_free);
 
 MODULE_LICENSE("GPL v2");
diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c
index 54cee2b..1a42ee71 100644
--- a/drivers/android/binder_alloc.c
+++ b/drivers/android/binder_alloc.c
@@ -25,6 +25,7 @@
 #include <linux/sizes.h>
 #include "binder_alloc.h"
 #include "binder_trace.h"
+#include <trace/hooks/binder.h>
 
 struct list_lru binder_alloc_lru;
 
@@ -407,6 +408,7 @@
 				alloc->pid, extra_buffers_size);
 		return ERR_PTR(-EINVAL);
 	}
+	trace_android_vh_binder_alloc_new_buf_locked(size, &alloc->free_async_space, is_async);
 	if (is_async &&
 	    alloc->free_async_space < size + sizeof(struct binder_buffer)) {
 		binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC,
diff --git a/drivers/android/binder_internal.h b/drivers/android/binder_internal.h
index 1ade979..696353b 100644
--- a/drivers/android/binder_internal.h
+++ b/drivers/android/binder_internal.h
@@ -215,10 +215,13 @@
  *                        and by @lock)
  * @has_async_transaction: async transaction to node in progress
  *                        (protected by @lock)
+ * @sched_policy:         minimum scheduling policy for node
+ *                        (invariant after initialized)
  * @accept_fds:           file descriptor operations supported for node
  *                        (invariant after initialized)
  * @min_priority:         minimum scheduling priority
  *                        (invariant after initialized)
+ * @inherit_rt:           inherit RT scheduling policy from caller
  * @txn_security_ctx:     require sender's security context
  *                        (invariant after initialized)
  * @async_todo:           list of async work items
@@ -256,6 +259,8 @@
 		/*
 		 * invariant after initialization
 		 */
+		u8 sched_policy:2;
+		u8 inherit_rt:1;
 		u8 accept_fds:1;
 		u8 txn_security_ctx:1;
 		u8 min_priority;
@@ -325,6 +330,28 @@
 };
 
 /**
+ * struct binder_priority - scheduler policy and priority
+ * @sched_policy            scheduler policy
+ * @prio                    [100..139] for SCHED_NORMAL, [0..99] for FIFO/RT
+ *
+ * The binder driver supports inheriting the following scheduler policies:
+ * SCHED_NORMAL
+ * SCHED_BATCH
+ * SCHED_FIFO
+ * SCHED_RR
+ */
+struct binder_priority {
+	unsigned int sched_policy;
+	int prio;
+};
+
+enum binder_prio_state {
+	BINDER_PRIO_SET,	/* desired priority set */
+	BINDER_PRIO_PENDING,	/* initiated a saved priority restore */
+	BINDER_PRIO_ABORT,	/* abort the pending priority restore */
+};
+
+/**
  * struct binder_proc - binder process bookkeeping
  * @proc_node:            element for binder_procs list
  * @threads:              rbtree of binder_threads in this proc
@@ -424,7 +451,7 @@
 	int requested_threads;
 	int requested_threads_started;
 	int tmp_ref;
-	long default_priority;
+	struct binder_priority default_priority;
 	struct dentry *debugfs_entry;
 	struct binder_alloc alloc;
 	struct binder_context *context;
@@ -467,6 +494,13 @@
  * @is_dead:              thread is dead and awaiting free
  *                        when outstanding transactions are cleaned up
  *                        (protected by @proc->inner_lock)
+ * @task:                 struct task_struct for this thread
+ * @prio_lock:            protects thread priority fields
+ * @prio_next:            saved priority to be restored next
+ *                        (protected by @prio_lock)
+ * @prio_state:           state of the priority restore process as
+ *                        defined by enum binder_prio_state
+ *                        (protected by @prio_lock)
  *
  * Bookkeeping structure for binder threads.
  */
@@ -486,6 +520,10 @@
 	struct binder_stats stats;
 	atomic_t tmp_ref;
 	bool is_dead;
+	struct task_struct *task;
+	spinlock_t prio_lock;
+	struct binder_priority prio_next;
+	enum binder_prio_state prio_state;
 };
 
 /**
@@ -519,8 +557,10 @@
 	struct binder_buffer *buffer;
 	unsigned int    code;
 	unsigned int    flags;
-	long    priority;
-	long    saved_priority;
+	struct binder_priority priority;
+	struct binder_priority saved_priority;
+	bool set_priority_called;
+	bool is_nested;
 	kuid_t  sender_euid;
 	struct list_head fd_fixups;
 	binder_uintptr_t security_ctx;
@@ -531,6 +571,7 @@
 	 * during thread teardown
 	 */
 	spinlock_t lock;
+	ANDROID_VENDOR_DATA(1);
 };
 
 /**
diff --git a/drivers/android/binder_trace.h b/drivers/android/binder_trace.h
index 8eeccdc..5d82cf8 100644
--- a/drivers/android/binder_trace.h
+++ b/drivers/android/binder_trace.h
@@ -76,6 +76,30 @@
 DEFINE_BINDER_FUNCTION_RETURN_EVENT(binder_write_done);
 DEFINE_BINDER_FUNCTION_RETURN_EVENT(binder_read_done);
 
+TRACE_EVENT(binder_set_priority,
+	TP_PROTO(int proc, int thread, unsigned int old_prio,
+		 unsigned int desired_prio, unsigned int new_prio),
+	TP_ARGS(proc, thread, old_prio, new_prio, desired_prio),
+
+	TP_STRUCT__entry(
+		__field(int, proc)
+		__field(int, thread)
+		__field(unsigned int, old_prio)
+		__field(unsigned int, new_prio)
+		__field(unsigned int, desired_prio)
+	),
+	TP_fast_assign(
+		__entry->proc = proc;
+		__entry->thread = thread;
+		__entry->old_prio = old_prio;
+		__entry->new_prio = new_prio;
+		__entry->desired_prio = desired_prio;
+	),
+	TP_printk("proc=%d thread=%d old=%d => new=%d desired=%d",
+		  __entry->proc, __entry->thread, __entry->old_prio,
+		  __entry->new_prio, __entry->desired_prio)
+);
+
 TRACE_EVENT(binder_wait_for_work,
 	TP_PROTO(bool proc_work, bool transaction_stack, bool thread_todo),
 	TP_ARGS(proc_work, transaction_stack, thread_todo),
@@ -311,6 +335,10 @@
 	TP_PROTO(struct binder_buffer *buffer),
 	TP_ARGS(buffer));
 
+DEFINE_EVENT(binder_buffer_class, binder_transaction_update_buffer_release,
+	     TP_PROTO(struct binder_buffer *buffer),
+	     TP_ARGS(buffer));
+
 TRACE_EVENT(binder_update_page_range,
 	TP_PROTO(struct binder_alloc *alloc, bool allocate,
 		 void __user *start, void __user *end),
diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c
new file mode 100644
index 0000000..0aa747f
--- /dev/null
+++ b/drivers/android/vendor_hooks.c
@@ -0,0 +1,462 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/* vendor_hook.c
+ *
+ * Android Vendor Hook Support
+ *
+ * Copyright 2020 Google LLC
+ */
+
+#ifndef __GENKSYMS__
+#include <uapi/linux/android/binder.h>
+#include <uapi/linux/hdreg.h>
+#include <linux/bpf.h>
+#include <linux/bpf_verifier.h>
+#include <linux/coredump.h>
+#include <linux/fileattr.h>
+#include <linux/fsverity.h>
+#include <linux/igmp.h>
+#include <linux/ipc_namespace.h>
+#include <linux/mtd/mtd.h>
+#include <linux/pagemap.h>
+#include <linux/pr.h>
+#include <linux/skmsg.h>
+#include <linux/statfs.h>
+#include <linux/time_namespace.h>
+#include <linux/timekeeper_internal.h>
+#include <linux/zlib.h>
+#include <net/ip6_fib.h>
+#include <net/ip_tunnels.h>
+#include <net/macsec.h>
+#include <net/ioam6.h>
+#include <net/netfilter/nf_flow_table.h>
+#include <net/smc.h>
+#include <net/tc_act/tc_gate.h>
+#include <../fs/mount.h>
+#include <../kernel/audit.h>
+#include <../kernel/locking/mutex.h>
+#include <../net/can/af_can.h>
+#include <../net/tipc/bearer.h>
+#include <../kernel/printk/printk_ringbuffer.h>
+#endif
+
+#define CREATE_TRACE_POINTS
+#include <trace/hooks/vendor_hooks.h>
+#include <linux/tracepoint.h>
+
+#include <trace/hooks/user.h>
+#include <trace/hooks/fpsimd.h>
+#include <trace/hooks/binder.h>
+#include <trace/hooks/futex.h>
+#include <trace/hooks/dtask.h>
+#include <trace/hooks/cpuidle.h>
+#include <trace/hooks/topology.h>
+#include <trace/hooks/mpam.h>
+#include <trace/hooks/gic.h>
+#include <trace/hooks/wqlockup.h>
+#include <trace/hooks/debug.h>
+#include <trace/hooks/sysrqcrash.h>
+#include <trace/hooks/printk.h>
+#include <trace/hooks/gic_v3.h>
+#include <trace/hooks/epoch.h>
+#include <trace/hooks/cpufreq.h>
+#include <trace/hooks/mm.h>
+#include <trace/hooks/preemptirq.h>
+#include <trace/hooks/ftrace_dump.h>
+#include <trace/hooks/ufshcd.h>
+#ifdef __GENKSYMS__
+#include <trace/hooks/block.h>
+#endif
+#include <trace/hooks/cgroup.h>
+#include <trace/hooks/sys.h>
+#include <trace/hooks/iommu.h>
+#include <trace/hooks/net.h>
+#include <trace/hooks/timer.h>
+#include <trace/hooks/pm_domain.h>
+#include <trace/hooks/cpuidle_psci.h>
+#include <trace/hooks/vmscan.h>
+#include <trace/hooks/avc.h>
+#include <trace/hooks/creds.h>
+#include <trace/hooks/memory.h>
+#include <trace/hooks/module.h>
+#ifdef __GENKSYMS__
+#include <trace/hooks/selinux.h>
+#endif
+#include <trace/hooks/syscall_check.h>
+#include <trace/hooks/logbuf.h>
+#include <trace/hooks/remoteproc.h>
+#include <trace/hooks/hung_task.h>
+#include <trace/hooks/bug.h>
+#include <trace/hooks/softlockup.h>
+#include <trace/hooks/power.h>
+#include <trace/hooks/fault.h>
+#include <trace/hooks/traps.h>
+#include <trace/hooks/fips140.h>
+#include <trace/hooks/thermal.h>
+#include <trace/hooks/rwsem.h>
+#include <trace/hooks/timekeeping.h>
+#include <trace/hooks/audio_usboffload.h>
+#include <trace/hooks/drm_framebuffer.h>
+#include <trace/hooks/drm_atomic.h>
+#include <trace/hooks/psci.h>
+#include <trace/hooks/usb.h>
+#include <trace/hooks/regmap.h>
+#include <trace/hooks/dmabuf.h>
+#include <trace/hooks/mmc.h>
+#include <trace/hooks/evdev.h>
+#include <trace/hooks/signal.h>
+#include <trace/hooks/cfg80211.h>
+#include <trace/hooks/bl_hib.h>
+#include <trace/hooks/dm.h>
+#include <trace/hooks/direct_io.h>
+#include <trace/hooks/loop.h>
+#include <trace/hooks/psi.h>
+/*
+ * Export tracepoints that act as a bare tracehook (ie: have no trace event
+ * associated with them) to allow external modules to probe them.
+ */
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_refrigerator);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sk_alloc);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sk_free);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_nf_conn_alloc);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_nf_conn_free);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_arch_set_freq_scale);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_is_fpsimd_save);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_transaction_init);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_priority_skip);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_set_priority);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_restore_priority);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_wakeup_ilocked);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_send_sig_info);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_futex_plist_add);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_futex_sleep_start);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_futex);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_futex_wait_start);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_futex_wait_end);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_futex_wake_traverse_plist);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_futex_wake_this);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_futex_wake_up_q_finish);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_wait_start);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_wait_finish);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_init);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_process_killed);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_killed_process);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_task_blocks_on_rtmutex);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rtmutex_waiter_prio);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rtmutex_wait_start);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rtmutex_wait_finish);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_opt_spin_start);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_opt_spin_finish);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_can_spin_on_owner);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_read_wait_start);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_read_wait_finish);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_wait_start);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_wait_finish);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_opt_spin_start);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_opt_spin_finish);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_can_spin_on_owner);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_show_task);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpu_idle_enter);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpu_idle_exit);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mpam_set);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_gic_resume);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_gic_suspend);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_wq_lockup_pool);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ipi_stop);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sysrq_crash);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_printk_hotplug);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_printk_caller_id);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_printk_caller);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_printk_ext_header);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_gic_v3_set_affinity);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_gic_set_affinity);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_gic_v3_affinity_init);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_show_suspend_epoch_val);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_show_resume_epoch_val);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_freq_table_limits);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpufreq_resolve_freq);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpufreq_fast_switch);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpufreq_target);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpufreq_offline);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_skip_swapcache_flags);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_gfp_zone_flags);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_readahead_gfp_mask);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_readahead_gfp_mask);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_rmqueue_bulk);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_preempt_disable);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_preempt_enable);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_irqs_disable);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_irqs_enable);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_cgroup_attach);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_cgroup_can_attach);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_cgroup_online);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ftrace_oops_enter);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ftrace_oops_exit);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ftrace_size_check);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ftrace_format_check);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ftrace_dump_buffer);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_fill_prdt);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ufs_complete_init);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ufs_reprogram_all_keys);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_prepare_command);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_update_sysfs);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_send_command);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_compl_command);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cgroup_set_task);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_syscall_prctl_finished);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_send_uic_command);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_send_tm_command);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_check_int_errors);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_update_sdev);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_clock_scaling);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_use_mcq_hooks);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_mcq_max_tag);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_mcq_map_tag);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_mcq_set_sqid);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_mcq_handler);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_mcq_make_hba_operational);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_mcq_hba_capabilities);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_mcq_print_trs);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_mcq_send_command);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_mcq_config);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_mcq_has_oustanding_reqs);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_mcq_get_outstanding_reqs);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_mcq_abort);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_mcq_clear_cmd);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_mcq_clear_pending);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_mcq_retry_complete);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cgroup_attach);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_iommu_setup_dma_ops);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_iommu_iovad_alloc_iova);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_iommu_iovad_free_iova);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ptype_head);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_kfree_skb);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_timer_calc_index);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_allow_domain_state);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpuidle_psci_enter);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpuidle_psci_exit);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cgroup_force_kthread_migration);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_wait_for_work);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_proc_transaction_entry);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_select_worklist_ilocked);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_proc_transaction_finish);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sync_txn_recvd);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_update_topology_flags_workfn);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpufreq_transition);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_freq_qos_add_request);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_freq_qos_update_request);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_freq_qos_remove_request);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_balance_anon_file_reclaim);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_show_max_freq);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_handle_failed_page_trylock);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_page_trylock_set);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_page_trylock_clear);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_page_trylock_get_result);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_page_trylock);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_dm_bufio_shrink_scan_bypass);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cleanup_old_buffers_bypass);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_page_referenced_check_bypass);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_drain_all_pages_bypass);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cma_drain_all_pages_bypass);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_pcplist_add_cma_pages_bypass);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_free_unref_page_bypass);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_kvmalloc_node_use_vmalloc);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_should_alloc_pages_retry);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_unreserve_highatomic_bypass);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rmqueue_bulk_bypass);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ra_tuning_max_page);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tune_mmap_readaround);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_shrink_slab_bypass);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_insert);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_node_delete);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_node_replace);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_lookup);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_commit_creds);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_exit_creds);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_override_creds);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_revert_creds);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_record_mutex_lock_starttime);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_record_rtmutex_lock_starttime);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_record_rwsem_lock_starttime);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_record_pcpu_rwsem_starttime);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_memory_nx);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_memory_rw);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_module_permit_before_init);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_module_permit_after_init);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_oom_check_panic);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_mmap_file);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_file_open);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_bpf_syscall);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_logbuf);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_logbuf_pr_cont);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rproc_recovery);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_uninterruptible_tasks);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_uninterruptible_tasks_dn);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_meminfo_proc_show);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_exit_mm);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_pages_slowpath);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_show_mem);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_print_slabinfo_header);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_shrink_slab);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cache_show);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_report_bug);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_watchdog_timer_softlockup);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_try_to_freeze_todo);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_try_to_freeze_todo_logging);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_try_to_freeze_todo_unfrozen);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_die_kernel_fault);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_sea);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_mem_abort);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_sp_pc_abort);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_undefinstr);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_ptrauth_fault);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_panic_unhandled);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_arm64_serror_panic);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_serror);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_vmpressure);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sha256);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_aes_expandkey);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_aes_encrypt);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_aes_decrypt);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_modify_thermal_request_freq);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_modify_thermal_target_freq);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_thermal_register);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_thermal_unregister);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rproc_recovery_set);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_disable_thermal_cooling_stats);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_enable_thermal_power_throttle);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_modify_thermal_throttle_update);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_init);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_wake);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_finished);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_rwsem_list_add);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_thermal_power_cap);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_tk_based_time_sync);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_kswapd_per_node);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_audio_usb_offload_vendor_set);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_audio_usb_offload_ep_action);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_audio_usb_offload_synctype);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_audio_usb_offload_suspend);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_audio_usb_offload_connect);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_audio_usb_offload_disconnect);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_atomic_remove_fb);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_drm_atomic_check_modeset);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_get_thermal_zone_device);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_psci_tos_resident_on);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_psci_cpu_suspend);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_usb_new_device_added);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_regmap_update);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_mutex_list_add);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_unlock_slowpath);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_wake_finish);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_dma_buf_release);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_dmabuf_heap_flags_validation);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_pass_input_event);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_check_status);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmap_region);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_try_to_unmap_one);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_shrink_node_memcgs);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_sdio_pm_flag_set);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tune_scan_type);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tune_swappiness);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_partial_init);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_mmc_cache_card_properties);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_print_transaction_info);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_handle_tlb_conf);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_memcgv2_init);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_memcgv2_calc_decayed_watermark);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_watermark);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_blk_reset);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_blk_mq_rw_recovery);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sd_update_bus_speed_mode);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_attach_sd);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sdhci_get_cd);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_gpio_cd_irqt);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_update_partition_status);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_sd_update_cmdline_timing);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_sd_update_dataline_timing);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_mmc_partition_status);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_mmc_sd_cmdline_timing);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_mmc_sd_dataline_timing);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cfg80211_set_context);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cfg80211_get_context);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_save_track_hash);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_id_remove);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_css_offline);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_css_online);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_free);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_alloc);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_kmalloc_slab);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpuset_fork);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_looper_state_registered);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_thread_read);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_free_proc);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_thread_release);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_has_work_ilocked);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_read_done);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_gic_v2_resume);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_exit_signal);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_alloc_new_buf_locked);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_reply);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_trans);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_preset);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tune_memcg_scan_type);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_thermal_stats);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_proc_transaction);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_new_ref);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_del_ref);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_show_mapcount_pages);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_traversal_lruvec);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_update_page_mapcount);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_add_page_to_lrulist);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_del_page_from_lrulist);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_page_should_be_protected);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mark_page_accessed);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_ffu_update_cid);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_uid);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_free_user);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_modify_thermal_cpu_get_power);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_page_cache_forced_ra);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_pages_reclaim_bypass);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_pages_failure_bypass);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpufreq_acct_update_power);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rmqueue);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tune_inactive_ratio);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_hibernation_swap);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_save_cpu_resume);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_save_hib_resume_bdev);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_highpage_movable_gfp_adjust);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_anon_gfp_adjust);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alloc_flags_cma_adjust);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rmqueue_cma_fallback);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_try_cma_fallback);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_dma_buf_stats_teardown);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_madvise_cold_or_pageout);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_madvise_cold_or_pageout_abort);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cma_alloc_retry);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_encrypt_page);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_init_aes_encrypt);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_skip_swap_map_write);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_post_image_save);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_dm_update_clone_bio);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ctl_dirty_rate);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_direct_io_update_bio);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_loop_prepare_cmd);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_psi_event);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_psi_group);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rmqueue_smallest_bypass);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_free_one_page_bypass);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_use_cma_first_check);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_slab_page_alloced);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_kmalloc_order_alloced);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_compact_finished);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_page_look_around_ref);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_look_around);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_look_around_migrate_page);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_test_clear_look_around_ref);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_page_migrating);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_clear_page_migrating);
+/*
+ * For type visibility
+ */
+const struct readahead_control *GKI_struct_readahead_control;
+EXPORT_SYMBOL_GPL(GKI_struct_readahead_control);
diff --git a/drivers/base/arch_topology.c b/drivers/base/arch_topology.c
index 31bd6f4..58fe16b 100644
--- a/drivers/base/arch_topology.c
+++ b/drivers/base/arch_topology.c
@@ -21,6 +21,7 @@
 #include <linux/rcupdate.h>
 #include <linux/sched.h>
 #include <linux/smp.h>
+#include <trace/hooks/topology.h>
 
 static DEFINE_PER_CPU(struct scale_freq_data __rcu *, sft_data);
 static struct cpumask scale_freq_counters_mask;
@@ -144,6 +145,8 @@
 
 	scale = (cur_freq << SCHED_CAPACITY_SHIFT) / max_freq;
 
+	trace_android_vh_arch_set_freq_scale(cpus, cur_freq, max_freq, &scale);
+
 	for_each_cpu(i, cpus)
 		per_cpu(arch_freq_scale, i) = scale;
 }
@@ -157,14 +160,18 @@
 }
 
 DEFINE_PER_CPU(unsigned long, thermal_pressure);
+EXPORT_PER_CPU_SYMBOL_GPL(thermal_pressure);
 
 void topology_set_thermal_pressure(const struct cpumask *cpus,
 			       unsigned long th_pressure)
 {
 	int cpu;
 
-	for_each_cpu(cpu, cpus)
+	for_each_cpu(cpu, cpus) {
 		WRITE_ONCE(per_cpu(thermal_pressure, cpu), th_pressure);
+		trace_android_rvh_update_thermal_stats(cpu);
+	}
+
 }
 EXPORT_SYMBOL_GPL(topology_set_thermal_pressure);
 
@@ -202,6 +209,8 @@
 subsys_initcall(register_cpu_capacity_sysctl);
 
 static int update_topology;
+bool topology_update_done;
+EXPORT_SYMBOL_GPL(topology_update_done);
 
 int topology_update_cpu_topology(void)
 {
@@ -216,6 +225,8 @@
 {
 	update_topology = 1;
 	rebuild_sched_domains();
+	topology_update_done = true;
+	trace_android_vh_update_topology_flags_workfn(NULL);
 	pr_debug("sched_domain hierarchy rebuilt, flags updated\n");
 	update_topology = 0;
 }
diff --git a/drivers/base/core.c b/drivers/base/core.c
index adf003a..cf01f37 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -488,6 +488,16 @@
 	pm_runtime_release_supplier(link);
 	pm_request_idle(link->supplier);
 
+	/*
+	 * If supplier_preactivated is set, the link has been dropped between
+	 * the pm_runtime_get_suppliers() and pm_runtime_put_suppliers() calls
+	 * in __driver_probe_device().  In that case, drop the supplier's
+	 * PM-runtime usage counter to remove the reference taken by
+	 * pm_runtime_get_suppliers().
+	 */
+	if (link->supplier_preactivated)
+		pm_runtime_put_noidle(link->supplier);
+
 	put_device(link->consumer);
 	put_device(link->supplier);
 	kfree(link);
@@ -1581,7 +1591,7 @@
 }
 early_param("fw_devlink", fw_devlink_setup);
 
-static bool fw_devlink_strict;
+static bool fw_devlink_strict = true;
 static int __init fw_devlink_strict_setup(char *arg)
 {
 	return strtobool(arg, &fw_devlink_strict);
diff --git a/drivers/base/devcoredump.c b/drivers/base/devcoredump.c
index f4d794d..1c06781 100644
--- a/drivers/base/devcoredump.c
+++ b/drivers/base/devcoredump.c
@@ -25,6 +25,47 @@
 	struct device devcd_dev;
 	void *data;
 	size_t datalen;
+	/*
+	 * Here, mutex is required to serialize the calls to del_wk work between
+	 * user/kernel space which happens when devcd is added with device_add()
+	 * and that sends uevent to user space. User space reads the uevents,
+	 * and calls to devcd_data_write() which try to modify the work which is
+	 * not even initialized/queued from devcoredump.
+	 *
+	 *
+	 *
+	 *        cpu0(X)                                 cpu1(Y)
+	 *
+	 *        dev_coredump() uevent sent to user space
+	 *        device_add()  ======================> user space process Y reads the
+	 *                                              uevents writes to devcd fd
+	 *                                              which results into writes to
+	 *
+	 *                                             devcd_data_write()
+	 *                                               mod_delayed_work()
+	 *                                                 try_to_grab_pending()
+	 *                                                   del_timer()
+	 *                                                     debug_assert_init()
+	 *       INIT_DELAYED_WORK()
+	 *       schedule_delayed_work()
+	 *
+	 *
+	 * Also, mutex alone would not be enough to avoid scheduling of
+	 * del_wk work after it get flush from a call to devcd_free()
+	 * mentioned as below.
+	 *
+	 *	disabled_store()
+	 *        devcd_free()
+	 *          mutex_lock()             devcd_data_write()
+	 *          flush_delayed_work()
+	 *          mutex_unlock()
+	 *                                   mutex_lock()
+	 *                                   mod_delayed_work()
+	 *                                   mutex_unlock()
+	 * So, delete_work flag is required.
+	 */
+	struct mutex mutex;
+	bool delete_work;
 	struct module *owner;
 	ssize_t (*read)(char *buffer, loff_t offset, size_t count,
 			void *data, size_t datalen);
@@ -84,7 +125,12 @@
 	struct device *dev = kobj_to_dev(kobj);
 	struct devcd_entry *devcd = dev_to_devcd(dev);
 
-	mod_delayed_work(system_wq, &devcd->del_wk, 0);
+	mutex_lock(&devcd->mutex);
+	if (!devcd->delete_work) {
+		devcd->delete_work = true;
+		mod_delayed_work(system_wq, &devcd->del_wk, 0);
+	}
+	mutex_unlock(&devcd->mutex);
 
 	return count;
 }
@@ -112,7 +158,12 @@
 {
 	struct devcd_entry *devcd = dev_to_devcd(dev);
 
+	mutex_lock(&devcd->mutex);
+	if (!devcd->delete_work)
+		devcd->delete_work = true;
+
 	flush_delayed_work(&devcd->del_wk);
+	mutex_unlock(&devcd->mutex);
 	return 0;
 }
 
@@ -122,6 +173,30 @@
 	return sysfs_emit(buf, "%d\n", devcd_disabled);
 }
 
+/*
+ *
+ *	disabled_store()                                	worker()
+ *	 class_for_each_device(&devcd_class,
+ *		NULL, NULL, devcd_free)
+ *         ...
+ *         ...
+ *	   while ((dev = class_dev_iter_next(&iter))
+ *                                                             devcd_del()
+ *                                                               device_del()
+ *                                                                 put_device() <- last reference
+ *             error = fn(dev, data)                           devcd_dev_release()
+ *             devcd_free(dev, data)                           kfree(devcd)
+ *             mutex_lock(&devcd->mutex);
+ *
+ *
+ * In the above diagram, It looks like disabled_store() would be racing with parallely
+ * running devcd_del() and result in memory abort while acquiring devcd->mutex which
+ * is called after kfree of devcd memory  after dropping its last reference with
+ * put_device(). However, this will not happens as fn(dev, data) runs
+ * with its own reference to device via klist_node so it is not its last reference.
+ * so, above situation would not occur.
+ */
+
 static ssize_t disabled_store(struct class *class, struct class_attribute *attr,
 			      const char *buf, size_t count)
 {
@@ -278,13 +353,16 @@
 	devcd->read = read;
 	devcd->free = free;
 	devcd->failing_dev = get_device(dev);
+	devcd->delete_work = false;
 
+	mutex_init(&devcd->mutex);
 	device_initialize(&devcd->devcd_dev);
 
 	dev_set_name(&devcd->devcd_dev, "devcd%d",
 		     atomic_inc_return(&devcd_count));
 	devcd->devcd_dev.class = &devcd_class;
 
+	mutex_lock(&devcd->mutex);
 	if (device_add(&devcd->devcd_dev))
 		goto put_device;
 
@@ -301,10 +379,11 @@
 
 	INIT_DELAYED_WORK(&devcd->del_wk, devcd_del);
 	schedule_delayed_work(&devcd->del_wk, DEVCD_TIMEOUT);
-
+	mutex_unlock(&devcd->mutex);
 	return;
  put_device:
 	put_device(&devcd->devcd_dev);
+	mutex_unlock(&devcd->mutex);
  put_module:
 	module_put(owner);
  free:
diff --git a/drivers/base/firmware_loader/main.c b/drivers/base/firmware_loader/main.c
index 04ede46..e74e5d0 100644
--- a/drivers/base/firmware_loader/main.c
+++ b/drivers/base/firmware_loader/main.c
@@ -464,21 +464,85 @@
 #endif /* CONFIG_FW_LOADER_COMPRESS */
 
 /* direct firmware loading support */
-static char fw_path_para[256];
+#define CUSTOM_FW_PATH_COUNT	10
+#define PATH_SIZE		255
+static char fw_path_para[CUSTOM_FW_PATH_COUNT][PATH_SIZE];
 static const char * const fw_path[] = {
-	fw_path_para,
+	fw_path_para[0],
+	fw_path_para[1],
+	fw_path_para[2],
+	fw_path_para[3],
+	fw_path_para[4],
+	fw_path_para[5],
+	fw_path_para[6],
+	fw_path_para[7],
+	fw_path_para[8],
+	fw_path_para[9],
 	"/lib/firmware/updates/" UTS_RELEASE,
 	"/lib/firmware/updates",
 	"/lib/firmware/" UTS_RELEASE,
 	"/lib/firmware"
 };
 
+static char strpath[PATH_SIZE * CUSTOM_FW_PATH_COUNT];
+static int firmware_param_path_set(const char *val, const struct kernel_param *kp)
+{
+	int i;
+	char *path, *end;
+
+	strscpy(strpath, val, sizeof(strpath));
+	/* Remove leading and trailing spaces from path */
+	path = strim(strpath);
+	for (i = 0; path && i < CUSTOM_FW_PATH_COUNT; i++) {
+		end = strchr(path, ',');
+
+		/* Skip continuous token case, for example ',,,' */
+		if (end == path) {
+			i--;
+			path = ++end;
+			continue;
+		}
+
+		if (end != NULL)
+			*end = '\0';
+		else {
+			/* end of the string reached and no other tockens ','  */
+			strscpy(fw_path_para[i], path, PATH_SIZE);
+			break;
+		}
+
+		strscpy(fw_path_para[i], path, PATH_SIZE);
+		path = ++end;
+	}
+
+	return 0;
+}
+
+static int firmware_param_path_get(char *buffer, const struct kernel_param *kp)
+{
+	int count = 0, i;
+
+	for (i = 0; i < CUSTOM_FW_PATH_COUNT; i++) {
+		if (strlen(fw_path_para[i]) != 0)
+			count += scnprintf(buffer + count, PATH_SIZE, "%s%s", fw_path_para[i], ",");
+	}
+
+	buffer[count - 1] = '\0';
+
+	return count - 1;
+}
 /*
- * Typical usage is that passing 'firmware_class.path=$CUSTOMIZED_PATH'
+ * Typical usage is that passing 'firmware_class.path=/vendor,/firwmare_mnt'
  * from kernel command line because firmware_class is generally built in
- * kernel instead of module.
+ * kernel instead of module. ',' is used as delimiter for setting 10
+ * custom paths for firmware loader.
  */
-module_param_string(path, fw_path_para, sizeof(fw_path_para), 0644);
+
+static const struct kernel_param_ops firmware_param_ops = {
+	.set = firmware_param_path_set,
+	.get = firmware_param_path_get,
+};
+module_param_cb(path, &firmware_param_ops, NULL, 0644);
 MODULE_PARM_DESC(path, "customized firmware image search path with a higher priority than default path");
 
 static int
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index ac5cf1a..652531f 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -1427,9 +1427,7 @@
 	struct platform_driver *drv = to_platform_driver(_dev->driver);
 	struct platform_device *dev = to_platform_device(_dev);
 
-	if (drv->remove_new) {
-		drv->remove_new(dev);
-	} else if (drv->remove) {
+	if (drv->remove) {
 		int ret = drv->remove(dev);
 
 		if (ret)
diff --git a/drivers/base/power/domain_governor.c b/drivers/base/power/domain_governor.c
index cd08c58..22424e7 100644
--- a/drivers/base/power/domain_governor.c
+++ b/drivers/base/power/domain_governor.c
@@ -12,6 +12,8 @@
 #include <linux/cpumask.h>
 #include <linux/ktime.h>
 
+#include <trace/hooks/pm_domain.h>
+
 static int dev_update_qos_constraint(struct device *dev, void *data)
 {
 	s64 *constraint_ns_p = data;
@@ -174,6 +176,11 @@
 	struct pm_domain_data *pdd;
 	s64 min_off_time_ns;
 	s64 off_on_time_ns;
+	bool allow = true;
+
+	trace_android_vh_allow_domain_state(genpd, state, &allow);
+	if (!allow)
+		return false;
 
 	off_on_time_ns = genpd->states[state].power_off_latency_ns +
 		genpd->states[state].power_on_latency_ns;
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
index 8c4819fe..5956467 100644
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
@@ -35,6 +35,7 @@
 #include <linux/cpuidle.h>
 #include <linux/devfreq.h>
 #include <linux/timer.h>
+#include <linux/wakeup_reason.h>
 
 #include "../base.h"
 #include "power.h"
@@ -1244,6 +1245,8 @@
 	error = dpm_run_callback(callback, dev, state, info);
 	if (error) {
 		async_error = error;
+		log_suspend_abort_reason("Callback failed on %s in %pS returned %d",
+					 dev_name(dev), callback, error);
 		goto Complete;
 	}
 
@@ -1440,6 +1443,8 @@
 	error = dpm_run_callback(callback, dev, state, info);
 	if (error) {
 		async_error = error;
+		log_suspend_abort_reason("Callback failed on %s in %pS returned %d",
+					 dev_name(dev), callback, error);
 		goto Complete;
 	}
 	dpm_propagate_wakeup_to_parent(dev);
@@ -1715,6 +1720,9 @@
 
 		dpm_propagate_wakeup_to_parent(dev);
 		dpm_clear_superiors_direct_complete(dev);
+	} else {
+		log_suspend_abort_reason("Callback failed on %s in %pS returned %d",
+					 dev_name(dev), callback, error);
 	}
 
 	device_unlock(dev);
@@ -1928,6 +1936,9 @@
 		} else {
 			dev_info(dev, "not prepared for power transition: code %d\n",
 				 error);
+			log_suspend_abort_reason("Device %s not prepared for power transition: code %d",
+						 dev_name(dev), error);
+			dpm_save_failed_dev(dev_name(dev));
 		}
 
 		mutex_unlock(&dpm_list_mtx);
diff --git a/drivers/base/power/qos.c b/drivers/base/power/qos.c
index 8e93167..0489db3 100644
--- a/drivers/base/power/qos.c
+++ b/drivers/base/power/qos.c
@@ -137,6 +137,7 @@
 
 	return ret;
 }
+EXPORT_SYMBOL_GPL(dev_pm_qos_read_value);
 
 /**
  * apply_constraint - Add/modify/remove device PM QoS request.
diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c
index 5824d41..1484ad6 100644
--- a/drivers/base/power/runtime.c
+++ b/drivers/base/power/runtime.c
@@ -1737,7 +1737,6 @@
 		if (link->flags & DL_FLAG_PM_RUNTIME) {
 			link->supplier_preactivated = true;
 			pm_runtime_get_sync(link->supplier);
-			refcount_inc(&link->rpm_active);
 		}
 
 	device_links_read_unlock(idx);
@@ -1750,8 +1749,6 @@
 void pm_runtime_put_suppliers(struct device *dev)
 {
 	struct device_link *link;
-	unsigned long flags;
-	bool put;
 	int idx;
 
 	idx = device_links_read_lock();
@@ -1760,12 +1757,7 @@
 				device_links_read_lock_held())
 		if (link->supplier_preactivated) {
 			link->supplier_preactivated = false;
-			spin_lock_irqsave(&dev->power.lock, flags);
-			put = pm_runtime_status_suspended(dev) &&
-			      refcount_dec_not_one(&link->rpm_active);
-			spin_unlock_irqrestore(&dev->power.lock, flags);
-			if (put)
-				pm_runtime_put(link->supplier);
+			pm_runtime_put(link->supplier);
 		}
 
 	device_links_read_unlock(idx);
diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c
index 8666590..8c8ffa3 100644
--- a/drivers/base/power/wakeup.c
+++ b/drivers/base/power/wakeup.c
@@ -15,6 +15,9 @@
 #include <linux/seq_file.h>
 #include <linux/debugfs.h>
 #include <linux/pm_wakeirq.h>
+#include <linux/irq.h>
+#include <linux/irqdesc.h>
+#include <linux/wakeup_reason.h>
 #include <trace/events/power.h>
 
 #include "power.h"
@@ -874,6 +877,37 @@
 }
 EXPORT_SYMBOL_GPL(pm_wakeup_dev_event);
 
+void pm_get_active_wakeup_sources(char *pending_wakeup_source, size_t max)
+{
+	struct wakeup_source *ws, *last_active_ws = NULL;
+	int len = 0;
+	bool active = false;
+
+	rcu_read_lock();
+	list_for_each_entry_rcu(ws, &wakeup_sources, entry) {
+		if (ws->active && len < max) {
+			if (!active)
+				len += scnprintf(pending_wakeup_source, max,
+						"Pending Wakeup Sources: ");
+			len += scnprintf(pending_wakeup_source + len, max - len,
+				"%s ", ws->name);
+			active = true;
+		} else if (!active &&
+			   (!last_active_ws ||
+			    ktime_to_ns(ws->last_time) >
+			    ktime_to_ns(last_active_ws->last_time))) {
+			last_active_ws = ws;
+		}
+	}
+	if (!active && last_active_ws) {
+		scnprintf(pending_wakeup_source, max,
+				"Last active Wakeup Source: %s",
+				last_active_ws->name);
+	}
+	rcu_read_unlock();
+}
+EXPORT_SYMBOL_GPL(pm_get_active_wakeup_sources);
+
 void pm_print_active_wakeup_sources(void)
 {
 	struct wakeup_source *ws;
@@ -912,6 +946,7 @@
 {
 	unsigned long flags;
 	bool ret = false;
+	char suspend_abort[MAX_SUSPEND_ABORT_LEN];
 
 	raw_spin_lock_irqsave(&events_lock, flags);
 	if (events_check_enabled) {
@@ -926,6 +961,10 @@
 	if (ret) {
 		pm_pr_dbg("Wakeup pending, aborting suspend\n");
 		pm_print_active_wakeup_sources();
+		pm_get_active_wakeup_sources(suspend_abort,
+					     MAX_SUSPEND_ABORT_LEN);
+		log_suspend_abort_reason(suspend_abort);
+		pr_info("PM: %s\n", suspend_abort);
 	}
 
 	return ret || atomic_read(&pm_abort_suspend) > 0;
@@ -975,8 +1014,20 @@
 
 	raw_spin_unlock_irqrestore(&wakeup_irq_lock, flags);
 
-	if (irq_number)
+	if (irq_number) {
+		struct irq_desc *desc;
+		const char *name = "null";
+
+		desc = irq_to_desc(irq_number);
+		if (desc == NULL)
+			name = "stray irq";
+		else if (desc->action && desc->action->name)
+			name = desc->action->name;
+
+		log_irq_wakeup_reason(irq_number);
+		pr_warn("%s: %d triggered %s\n", __func__, irq_number, name);
 		pm_system_wakeup();
+	}
 }
 
 unsigned int pm_wakeup_irq(void)
diff --git a/drivers/base/regmap/Kconfig b/drivers/base/regmap/Kconfig
index 159bac6..fde08b2 100644
--- a/drivers/base/regmap/Kconfig
+++ b/drivers/base/regmap/Kconfig
@@ -30,7 +30,7 @@
 	depends on SPI
 
 config REGMAP_SPMI
-	tristate
+	tristate "Regmap SPMI"
 	depends on SPMI
 
 config REGMAP_W1
diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c
index 0b517a8..2967e66 100644
--- a/drivers/base/regmap/regcache.c
+++ b/drivers/base/regmap/regcache.c
@@ -501,7 +501,8 @@
 void regcache_cache_only(struct regmap *map, bool enable)
 {
 	map->lock(map->lock_arg);
-	WARN_ON(map->cache_bypass && enable);
+	WARN_ON(map->cache_type != REGCACHE_NONE &&
+		map->cache_bypass && enable);
 	map->cache_only = enable;
 	trace_regmap_cache_only(map, enable);
 	map->unlock(map->lock_arg);
diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c
index f7811641..8f9fe5f 100644
--- a/drivers/base/regmap/regmap.c
+++ b/drivers/base/regmap/regmap.c
@@ -877,6 +877,7 @@
 	if (!bus) {
 		map->reg_read  = config->reg_read;
 		map->reg_write = config->reg_write;
+		map->reg_update_bits = config->reg_update_bits;
 
 		map->defer_caching = false;
 		goto skip_format_initialization;
diff --git a/drivers/base/syscore.c b/drivers/base/syscore.c
index 13db1f78..3a9527d 100644
--- a/drivers/base/syscore.c
+++ b/drivers/base/syscore.c
@@ -10,6 +10,7 @@
 #include <linux/module.h>
 #include <linux/suspend.h>
 #include <trace/events/power.h>
+#include <linux/wakeup_reason.h>
 
 static LIST_HEAD(syscore_ops_list);
 static DEFINE_MUTEX(syscore_ops_lock);
@@ -73,7 +74,9 @@
 	return 0;
 
  err_out:
-	pr_err("PM: System core suspend callback %pS failed.\n", ops->suspend);
+	log_suspend_abort_reason("System core suspend callback %pS failed",
+		ops->suspend);
+	pr_err("PM: System core suspend callback %pF failed.\n", ops->suspend);
 
 	list_for_each_entry_continue(ops, &syscore_ops_list, node)
 		if (ops->resume)
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index c96bdb3..bbf64bc 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -84,6 +84,7 @@
 #include "loop.h"
 
 #include <linux/uaccess.h>
+#include <trace/hooks/loop.h>
 
 #define LOOP_IDLE_WORKER_TIMEOUT (60 * HZ)
 
@@ -607,6 +608,8 @@
 	cmd->iocb.ki_flags = IOCB_DIRECT;
 	cmd->iocb.ki_ioprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 0);
 
+	trace_android_vh_loop_prepare_cmd(bio, &cmd->iocb);
+
 	if (rw == WRITE)
 		ret = call_write_iter(file, &cmd->iocb, &iter);
 	else
diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
index d2ba849..b667010 100644
--- a/drivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -313,8 +313,6 @@
 	int err;
 	bool notify = false;
 
-	BUG_ON(req->nr_phys_segments + 2 > vblk->sg_elems);
-
 	err = virtblk_setup_cmd(vblk->vdev, req, vbr);
 	if (unlikely(err))
 		return err;
@@ -552,6 +550,10 @@
 				   &num_vqs);
 	if (err)
 		num_vqs = 1;
+	if (!err && !num_vqs) {
+		dev_err(&vdev->dev, "MQ advertisted but zero queues reported\n");
+		return -EINVAL;
+	}
 
 	num_vqs = min_t(unsigned int, nr_cpu_ids, num_vqs);
 
diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
index 6383c81..0da494a 100644
--- a/drivers/block/zram/zram_drv.c
+++ b/drivers/block/zram/zram_drv.c
@@ -474,7 +474,7 @@
 	if (sz > 0 && file_name[sz - 1] == '\n')
 		file_name[sz - 1] = 0x00;
 
-	backing_dev = filp_open(file_name, O_RDWR|O_LARGEFILE, 0);
+	backing_dev = filp_open_block(file_name, O_RDWR|O_LARGEFILE, 0);
 	if (IS_ERR(backing_dev)) {
 		err = PTR_ERR(backing_dev);
 		backing_dev = NULL;
@@ -1376,13 +1376,14 @@
 				__GFP_KSWAPD_RECLAIM |
 				__GFP_NOWARN |
 				__GFP_HIGHMEM |
-				__GFP_MOVABLE);
+				__GFP_MOVABLE |
+				__GFP_CMA);
 	if (!handle) {
 		zcomp_stream_put(zram->comp);
 		atomic64_inc(&zram->stats.writestall);
 		handle = zs_malloc(zram->mem_pool, comp_len,
 				GFP_NOIO | __GFP_HIGHMEM |
-				__GFP_MOVABLE);
+				__GFP_MOVABLE | __GFP_CMA);
 		if (handle)
 			goto compress_again;
 		return -ENOMEM;
diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c
index f228cdb..92f0527 100644
--- a/drivers/bluetooth/btbcm.c
+++ b/drivers/bluetooth/btbcm.c
@@ -6,7 +6,9 @@
  *  Copyright (C) 2015  Intel Corporation
  */
 
+#ifndef __GENKSYMS__	// ANDROID CRC kabi preservation hack due to commit 76dd7893bd10
 #include <linux/efi.h>
+#endif
 #include <linux/module.h>
 #include <linux/firmware.h>
 #include <linux/dmi.h>
diff --git a/drivers/char/random.c b/drivers/char/random.c
index 8642326..a2ce6ace 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -60,6 +60,10 @@
 #include <asm/irq_regs.h>
 #include <asm/io.h>
 
+// GKI: Keep this header to retain the original CRC that previously used the
+// random.h tracepoints.
+#include <linux/writeback.h>
+
 /*********************************************************************
  *
  * Initialization and readiness waiting.
@@ -172,6 +176,7 @@
 	return ret;
 }
 
+static void process_oldschool_random_ready_list(void);
 static void __cold process_random_ready_list(void)
 {
 	unsigned long flags;
@@ -179,6 +184,8 @@
 	spin_lock_irqsave(&random_ready_chain_lock, flags);
 	raw_notifier_call_chain(&random_ready_chain, 0, NULL);
 	spin_unlock_irqrestore(&random_ready_chain_lock, flags);
+
+	process_oldschool_random_ready_list();
 }
 
 #define warn_unseeded_randomness() \
@@ -434,7 +441,7 @@
  * wait_for_random_bytes() should be called and return 0 at least once
  * at any point prior.
  */
-void get_random_bytes(void *buf, size_t len)
+void get_random_bytes(void *buf, int len)
 {
 	warn_unseeded_randomness();
 	_get_random_bytes(buf, len);
@@ -851,7 +858,7 @@
  * the entropy pool having similar initial state across largely
  * identical devices.
  */
-void add_device_randomness(const void *buf, size_t len)
+void add_device_randomness(const void *buf, unsigned int len)
 {
 	unsigned long entropy = random_get_entropy();
 	unsigned long flags;
@@ -1531,3 +1538,76 @@
 	{ }
 };
 #endif	/* CONFIG_SYSCTL */
+
+/*
+ * Android KABI fixups
+ *
+ * Add back two functions that were being used by out-of-tree drivers.
+ *
+ * Yes, horrible hack, the things we do for FIPS "compliance"...
+ */
+static DEFINE_SPINLOCK(random_ready_list_lock);
+static LIST_HEAD(random_ready_list);
+
+int add_random_ready_callback(struct random_ready_callback *rdy)
+{
+	struct module *owner;
+	unsigned long flags;
+	int err = -EALREADY;
+
+	if (crng_ready())
+		return err;
+
+	owner = rdy->owner;
+	if (!try_module_get(owner))
+		return -ENOENT;
+
+	spin_lock_irqsave(&random_ready_list_lock, flags);
+	if (crng_ready())
+		goto out;
+
+	owner = NULL;
+
+	list_add(&rdy->list, &random_ready_list);
+	err = 0;
+
+out:
+	spin_unlock_irqrestore(&random_ready_list_lock, flags);
+
+	module_put(owner);
+
+	return err;
+}
+EXPORT_SYMBOL(add_random_ready_callback);
+
+void del_random_ready_callback(struct random_ready_callback *rdy)
+{
+	unsigned long flags;
+	struct module *owner = NULL;
+
+	spin_lock_irqsave(&random_ready_list_lock, flags);
+	if (!list_empty(&rdy->list)) {
+		list_del_init(&rdy->list);
+		owner = rdy->owner;
+	}
+	spin_unlock_irqrestore(&random_ready_list_lock, flags);
+
+	module_put(owner);
+}
+EXPORT_SYMBOL(del_random_ready_callback);
+
+static void process_oldschool_random_ready_list(void)
+{
+	unsigned long flags;
+	struct random_ready_callback *rdy, *tmp;
+
+	spin_lock_irqsave(&random_ready_list_lock, flags);
+	list_for_each_entry_safe(rdy, tmp, &random_ready_list, list) {
+		struct module *owner = rdy->owner;
+
+		list_del_init(&rdy->list);
+		rdy->func(rdy);
+		module_put(owner);
+	}
+	spin_unlock_irqrestore(&random_ready_list_lock, flags);
+}
diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
index 77bc993..35025f2 100644
--- a/drivers/char/virtio_console.c
+++ b/drivers/char/virtio_console.c
@@ -28,6 +28,7 @@
 #include "../tty/hvc/hvc_console.h"
 
 #define is_rproc_enabled IS_ENABLED(CONFIG_REMOTEPROC)
+#define VIRTCONS_MAX_PORTS 0x8000
 
 /*
  * This is a global struct for storing common data for all the devices
@@ -2043,6 +2044,14 @@
 	    virtio_cread_feature(vdev, VIRTIO_CONSOLE_F_MULTIPORT,
 				 struct virtio_console_config, max_nr_ports,
 				 &portdev->max_nr_ports) == 0) {
+		if (portdev->max_nr_ports == 0 ||
+		    portdev->max_nr_ports > VIRTCONS_MAX_PORTS) {
+			dev_err(&vdev->dev,
+				"Invalidate max_nr_ports %d",
+				portdev->max_nr_ports);
+			err = -EINVAL;
+			goto free;
+		}
 		multiport = true;
 	}
 
diff --git a/drivers/clk/clk-composite.c b/drivers/clk/clk-composite.c
index 510a996..ba8d4d8 100644
--- a/drivers/clk/clk-composite.c
+++ b/drivers/clk/clk-composite.c
@@ -362,6 +362,7 @@
 		return ERR_CAST(hw);
 	return hw->clk;
 }
+EXPORT_SYMBOL_GPL(clk_register_composite);
 
 struct clk *clk_register_composite_pdata(struct device *dev, const char *name,
 			const struct clk_parent_data *parent_data,
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index 5eba837..6e62733 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -72,6 +72,8 @@
 	unsigned long		flags;
 	bool			orphan;
 	bool			rpm_enabled;
+	bool			need_sync;
+	bool			boot_enabled;
 	unsigned int		enable_count;
 	unsigned int		prepare_count;
 	unsigned int		protect_count;
@@ -1232,6 +1234,10 @@
 	hlist_for_each_entry(child, &core->children, child_node)
 		clk_unprepare_unused_subtree(child);
 
+	if (dev_has_sync_state(core->dev) &&
+	    !(core->flags & CLK_DONT_HOLD_STATE))
+		return;
+
 	if (core->prepare_count)
 		return;
 
@@ -1263,6 +1269,10 @@
 	hlist_for_each_entry(child, &core->children, child_node)
 		clk_disable_unused_subtree(child);
 
+	if (dev_has_sync_state(core->dev) &&
+	    !(core->flags & CLK_DONT_HOLD_STATE))
+		return;
+
 	if (core->flags & CLK_OPS_PARENT_ENABLE)
 		clk_core_prepare_enable(core->parent);
 
@@ -1336,6 +1346,38 @@
 }
 late_initcall_sync(clk_disable_unused);
 
+static void clk_unprepare_disable_dev_subtree(struct clk_core *core,
+					      struct device *dev)
+{
+	struct clk_core *child;
+
+	lockdep_assert_held(&prepare_lock);
+
+	hlist_for_each_entry(child, &core->children, child_node)
+		clk_unprepare_disable_dev_subtree(child, dev);
+
+	if (core->dev != dev || !core->need_sync)
+		return;
+
+	clk_core_disable_unprepare(core);
+}
+
+void clk_sync_state(struct device *dev)
+{
+	struct clk_core *core;
+
+	clk_prepare_lock();
+
+	hlist_for_each_entry(core, &clk_root_list, child_node)
+		clk_unprepare_disable_dev_subtree(core, dev);
+
+	hlist_for_each_entry(core, &clk_orphan_list, child_node)
+		clk_unprepare_disable_dev_subtree(core, dev);
+
+	clk_prepare_unlock();
+}
+EXPORT_SYMBOL_GPL(clk_sync_state);
+
 static int clk_core_determine_round_nolock(struct clk_core *core,
 					   struct clk_rate_request *req)
 {
@@ -1742,6 +1784,33 @@
 }
 EXPORT_SYMBOL_GPL(clk_hw_get_parent_index);
 
+static void clk_core_hold_state(struct clk_core *core)
+{
+	if (core->need_sync || !core->boot_enabled)
+		return;
+
+	if (core->orphan || !dev_has_sync_state(core->dev))
+		return;
+
+	if (core->flags & CLK_DONT_HOLD_STATE)
+		return;
+
+	core->need_sync = !clk_core_prepare_enable(core);
+}
+
+static void __clk_core_update_orphan_hold_state(struct clk_core *core)
+{
+	struct clk_core *child;
+
+	if (core->orphan)
+		return;
+
+	clk_core_hold_state(core);
+
+	hlist_for_each_entry(child, &core->children, child_node)
+		__clk_core_update_orphan_hold_state(child);
+}
+
 /*
  * Update the orphan status of @core and all its children.
  */
@@ -2048,6 +2117,13 @@
 			fail_clk = core;
 	}
 
+	if (core->ops->pre_rate_change) {
+		ret = core->ops->pre_rate_change(core->hw, core->rate,
+						 core->new_rate);
+		if (ret)
+			fail_clk = core;
+	}
+
 	hlist_for_each_entry(child, &core->children, child_node) {
 		/* Skip children who will be reparented to another clock */
 		if (child->new_parent && child->new_parent != core)
@@ -2142,6 +2218,9 @@
 	if (core->flags & CLK_RECALC_NEW_RATES)
 		(void)clk_calc_new_rates(core, core->new_rate);
 
+	if (core->ops->post_rate_change)
+		core->ops->post_rate_change(core->hw, old_rate, core->rate);
+
 	/*
 	 * Use safe iteration, as change_rate can actually swap parents
 	 * for certain clock types.
@@ -3077,7 +3156,7 @@
 }
 DEFINE_SHOW_ATTRIBUTE(clk_dump);
 
-#undef CLOCK_ALLOW_WRITE_DEBUGFS
+#define CLOCK_ALLOW_WRITE_DEBUGFS
 #ifdef CLOCK_ALLOW_WRITE_DEBUGFS
 /*
  * This can be dangerous, therefore don't provide any real compile time
@@ -3363,24 +3442,6 @@
 {
 	struct clk_core *core;
 
-#ifdef CLOCK_ALLOW_WRITE_DEBUGFS
-	pr_warn("\n");
-	pr_warn("********************************************************************\n");
-	pr_warn("**     NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE           **\n");
-	pr_warn("**                                                                **\n");
-	pr_warn("**  WRITEABLE clk DebugFS SUPPORT HAS BEEN ENABLED IN THIS KERNEL **\n");
-	pr_warn("**                                                                **\n");
-	pr_warn("** This means that this kernel is built to expose clk operations  **\n");
-	pr_warn("** such as parent or rate setting, enabling, disabling, etc.      **\n");
-	pr_warn("** to userspace, which may compromise security on your system.    **\n");
-	pr_warn("**                                                                **\n");
-	pr_warn("** If you see this message and you are not debugging the          **\n");
-	pr_warn("** kernel, report this immediately to your vendor!                **\n");
-	pr_warn("**                                                                **\n");
-	pr_warn("**     NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE           **\n");
-	pr_warn("********************************************************************\n");
-#endif
-
 	rootdir = debugfs_create_dir("clk", NULL);
 
 	debugfs_create_file("clk_summary", 0444, rootdir, &all_lists,
@@ -3433,6 +3494,7 @@
 			__clk_set_parent_after(orphan, parent, NULL);
 			__clk_recalc_accuracies(orphan);
 			__clk_recalc_rates(orphan, 0);
+			__clk_core_update_orphan_hold_state(orphan);
 
 			/*
 			 * __clk_init_parent() will set the initial req_rate to
@@ -3612,6 +3674,8 @@
 		rate = 0;
 	core->rate = core->req_rate = rate;
 
+	core->boot_enabled = clk_core_is_enabled(core);
+
 	/*
 	 * Enable CLK_IS_CRITICAL clocks so newly added critical clocks
 	 * don't get accidentally disabled when walking the orphan tree and
@@ -3634,6 +3698,7 @@
 		}
 	}
 
+	clk_core_hold_state(core);
 	clk_core_reparent_orphans_nolock();
 
 
diff --git a/drivers/clk/mediatek/Kconfig b/drivers/clk/mediatek/Kconfig
index 439b7c8..d201bbd 100644
--- a/drivers/clk/mediatek/Kconfig
+++ b/drivers/clk/mediatek/Kconfig
@@ -6,7 +6,7 @@
 	depends on ARCH_MEDIATEK || COMPILE_TEST
 
 config COMMON_CLK_MEDIATEK
-	bool
+	tristate
 	select RESET_CONTROLLER
 	help
 	  MediaTek SoCs' clock support.
@@ -204,7 +204,7 @@
          This driver supports MediaTek MT6765 mipi2bsys clocks.
 
 config COMMON_CLK_MT6779
-	bool "Clock driver for MediaTek MT6779"
+	tristate "Clock driver for MediaTek MT6779"
 	depends on (ARCH_MEDIATEK && ARM64) || COMPILE_TEST
 	select COMMON_CLK_MEDIATEK
 	default ARCH_MEDIATEK && ARM64
@@ -212,49 +212,49 @@
 	  This driver supports MediaTek MT6779 basic clocks.
 
 config COMMON_CLK_MT6779_MMSYS
-	bool "Clock driver for MediaTek MT6779 mmsys"
+	tristate "Clock driver for MediaTek MT6779 mmsys"
 	depends on COMMON_CLK_MT6779
 	help
 	  This driver supports MediaTek MT6779 mmsys clocks.
 
 config COMMON_CLK_MT6779_IMGSYS
-	bool "Clock driver for MediaTek MT6779 imgsys"
+	tristate "Clock driver for MediaTek MT6779 imgsys"
 	depends on COMMON_CLK_MT6779
 	help
 	  This driver supports MediaTek MT6779 imgsys clocks.
 
 config COMMON_CLK_MT6779_IPESYS
-	bool "Clock driver for MediaTek MT6779 ipesys"
+	tristate "Clock driver for MediaTek MT6779 ipesys"
 	depends on COMMON_CLK_MT6779
 	help
 	  This driver supports MediaTek MT6779 ipesys clocks.
 
 config COMMON_CLK_MT6779_CAMSYS
-	bool "Clock driver for MediaTek MT6779 camsys"
+	tristate "Clock driver for MediaTek MT6779 camsys"
 	depends on COMMON_CLK_MT6779
 	help
 	  This driver supports MediaTek MT6779 camsys clocks.
 
 config COMMON_CLK_MT6779_VDECSYS
-	bool "Clock driver for MediaTek MT6779 vdecsys"
+	tristate "Clock driver for MediaTek MT6779 vdecsys"
 	depends on COMMON_CLK_MT6779
 	help
 	  This driver supports MediaTek MT6779 vdecsys clocks.
 
 config COMMON_CLK_MT6779_VENCSYS
-	bool "Clock driver for MediaTek MT6779 vencsys"
+	tristate "Clock driver for MediaTek MT6779 vencsys"
 	depends on COMMON_CLK_MT6779
 	help
 	  This driver supports MediaTek MT6779 vencsys clocks.
 
 config COMMON_CLK_MT6779_MFGCFG
-	bool "Clock driver for MediaTek MT6779 mfgcfg"
+	tristate "Clock driver for MediaTek MT6779 mfgcfg"
 	depends on COMMON_CLK_MT6779
 	help
 	  This driver supports MediaTek MT6779 mfgcfg clocks.
 
 config COMMON_CLK_MT6779_AUDSYS
-	bool "Clock driver for Mediatek MT6779 audsys"
+	tristate "Clock driver for Mediatek MT6779 audsys"
 	depends on COMMON_CLK_MT6779
 	help
 	  This driver supports Mediatek MT6779 audsys clocks.
diff --git a/drivers/clk/mediatek/clk-apmixed.c b/drivers/clk/mediatek/clk-apmixed.c
index 258d128..caa9119 100644
--- a/drivers/clk/mediatek/clk-apmixed.c
+++ b/drivers/clk/mediatek/clk-apmixed.c
@@ -5,6 +5,7 @@
  */
 
 #include <linux/delay.h>
+#include <linux/module.h>
 #include <linux/of_address.h>
 #include <linux/slab.h>
 
@@ -97,3 +98,5 @@
 
 	return clk;
 }
+
+MODULE_LICENSE("GPL");
diff --git a/drivers/clk/mediatek/clk-cpumux.c b/drivers/clk/mediatek/clk-cpumux.c
index 61eeae4..e188018 100644
--- a/drivers/clk/mediatek/clk-cpumux.c
+++ b/drivers/clk/mediatek/clk-cpumux.c
@@ -6,6 +6,7 @@
 
 #include <linux/clk-provider.h>
 #include <linux/mfd/syscon.h>
+#include <linux/module.h>
 #include <linux/slab.h>
 
 #include "clk-mtk.h"
@@ -106,3 +107,5 @@
 
 	return 0;
 }
+
+MODULE_LICENSE("GPL");
diff --git a/drivers/clk/mediatek/clk-gate.c b/drivers/clk/mediatek/clk-gate.c
index a35cf0b..b02d2f7 100644
--- a/drivers/clk/mediatek/clk-gate.c
+++ b/drivers/clk/mediatek/clk-gate.c
@@ -11,6 +11,7 @@
 #include <linux/slab.h>
 #include <linux/delay.h>
 #include <linux/clkdev.h>
+#include <linux/module.h>
 
 #include "clk-mtk.h"
 #include "clk-gate.h"
@@ -122,24 +123,28 @@
 	.enable		= mtk_cg_enable,
 	.disable	= mtk_cg_disable,
 };
+EXPORT_SYMBOL_GPL(mtk_clk_gate_ops_setclr);
 
 const struct clk_ops mtk_clk_gate_ops_setclr_inv = {
 	.is_enabled	= mtk_cg_bit_is_set,
 	.enable		= mtk_cg_enable_inv,
 	.disable	= mtk_cg_disable_inv,
 };
+EXPORT_SYMBOL_GPL(mtk_clk_gate_ops_setclr_inv);
 
 const struct clk_ops mtk_clk_gate_ops_no_setclr = {
 	.is_enabled	= mtk_cg_bit_is_cleared,
 	.enable		= mtk_cg_enable_no_setclr,
 	.disable	= mtk_cg_disable_no_setclr,
 };
+EXPORT_SYMBOL_GPL(mtk_clk_gate_ops_no_setclr);
 
 const struct clk_ops mtk_clk_gate_ops_no_setclr_inv = {
 	.is_enabled	= mtk_cg_bit_is_set,
 	.enable		= mtk_cg_enable_inv_no_setclr,
 	.disable	= mtk_cg_disable_inv_no_setclr,
 };
+EXPORT_SYMBOL_GPL(mtk_clk_gate_ops_no_setclr_inv);
 
 struct clk *mtk_clk_register_gate(
 		const char *name,
@@ -181,3 +186,6 @@
 
 	return clk;
 }
+EXPORT_SYMBOL_GPL(mtk_clk_register_gate);
+
+MODULE_LICENSE("GPL");
diff --git a/drivers/clk/mediatek/clk-mt6779-aud.c b/drivers/clk/mediatek/clk-mt6779-aud.c
index 11b209f..9e889e4 100644
--- a/drivers/clk/mediatek/clk-mt6779-aud.c
+++ b/drivers/clk/mediatek/clk-mt6779-aud.c
@@ -4,6 +4,7 @@
  * Author: Wendell Lin <wendell.lin@mediatek.com>
  */
 
+#include <linux/module.h>
 #include <linux/clk-provider.h>
 #include <linux/of.h>
 #include <linux/of_address.h>
@@ -114,4 +115,5 @@
 	},
 };
 
-builtin_platform_driver(clk_mt6779_aud_drv);
+module_platform_driver(clk_mt6779_aud_drv);
+MODULE_LICENSE("GPL");
diff --git a/drivers/clk/mediatek/clk-mt6779-cam.c b/drivers/clk/mediatek/clk-mt6779-cam.c
index 244d420..7f07a2a 100644
--- a/drivers/clk/mediatek/clk-mt6779-cam.c
+++ b/drivers/clk/mediatek/clk-mt6779-cam.c
@@ -4,6 +4,7 @@
  * Author: Wendell Lin <wendell.lin@mediatek.com>
  */
 
+#include <linux/module.h>
 #include <linux/clk-provider.h>
 #include <linux/platform_device.h>
 #include <dt-bindings/clock/mt6779-clk.h>
@@ -63,4 +64,5 @@
 	},
 };
 
-builtin_platform_driver(clk_mt6779_cam_drv);
+module_platform_driver(clk_mt6779_cam_drv);
+MODULE_LICENSE("GPL");
diff --git a/drivers/clk/mediatek/clk-mt6779-img.c b/drivers/clk/mediatek/clk-mt6779-img.c
index 26292a4..f0961fa 100644
--- a/drivers/clk/mediatek/clk-mt6779-img.c
+++ b/drivers/clk/mediatek/clk-mt6779-img.c
@@ -4,6 +4,7 @@
  * Author: Wendell Lin <wendell.lin@mediatek.com>
  */
 
+#include <linux/module.h>
 #include <linux/clk-provider.h>
 #include <linux/platform_device.h>
 #include <dt-bindings/clock/mt6779-clk.h>
@@ -55,4 +56,5 @@
 	},
 };
 
-builtin_platform_driver(clk_mt6779_img_drv);
+module_platform_driver(clk_mt6779_img_drv);
+MODULE_LICENSE("GPL");
diff --git a/drivers/clk/mediatek/clk-mt6779-ipe.c b/drivers/clk/mediatek/clk-mt6779-ipe.c
index bb51907..8c6f3e1 100644
--- a/drivers/clk/mediatek/clk-mt6779-ipe.c
+++ b/drivers/clk/mediatek/clk-mt6779-ipe.c
@@ -4,6 +4,7 @@
  * Author: Wendell Lin <wendell.lin@mediatek.com>
  */
 
+#include <linux/module.h>
 #include <linux/clk-provider.h>
 #include <linux/platform_device.h>
 #include <dt-bindings/clock/mt6779-clk.h>
@@ -57,4 +58,5 @@
 	},
 };
 
-builtin_platform_driver(clk_mt6779_ipe_drv);
+module_platform_driver(clk_mt6779_ipe_drv);
+MODULE_LICENSE("GPL");
diff --git a/drivers/clk/mediatek/clk-mt6779-mfg.c b/drivers/clk/mediatek/clk-mt6779-mfg.c
index c6ee2a8..9f33728 100644
--- a/drivers/clk/mediatek/clk-mt6779-mfg.c
+++ b/drivers/clk/mediatek/clk-mt6779-mfg.c
@@ -4,6 +4,7 @@
  * Author: Wendell Lin <wendell.lin@mediatek.com>
  */
 
+#include <linux/module.h>
 #include <linux/clk-provider.h>
 #include <linux/platform_device.h>
 
@@ -52,4 +53,5 @@
 	},
 };
 
-builtin_platform_driver(clk_mt6779_mfg_drv);
+module_platform_driver(clk_mt6779_mfg_drv);
+MODULE_LICENSE("GPL");
diff --git a/drivers/clk/mediatek/clk-mt6779-mm.c b/drivers/clk/mediatek/clk-mt6779-mm.c
index 059c1a4..33946e6 100644
--- a/drivers/clk/mediatek/clk-mt6779-mm.c
+++ b/drivers/clk/mediatek/clk-mt6779-mm.c
@@ -4,6 +4,7 @@
  * Author: Wendell Lin <wendell.lin@mediatek.com>
  */
 
+#include <linux/module.h>
 #include <linux/clk-provider.h>
 #include <linux/platform_device.h>
 #include <dt-bindings/clock/mt6779-clk.h>
@@ -105,4 +106,5 @@
 	},
 };
 
-builtin_platform_driver(clk_mt6779_mm_drv);
+module_platform_driver(clk_mt6779_mm_drv);
+MODULE_LICENSE("GPL");
diff --git a/drivers/clk/mediatek/clk-mt6779-vdec.c b/drivers/clk/mediatek/clk-mt6779-vdec.c
index 1900da2..f435884 100644
--- a/drivers/clk/mediatek/clk-mt6779-vdec.c
+++ b/drivers/clk/mediatek/clk-mt6779-vdec.c
@@ -4,6 +4,7 @@
  * Author: Wendell Lin <wendell.lin@mediatek.com>
  */
 
+#include <linux/module.h>
 #include <linux/clk-provider.h>
 #include <linux/platform_device.h>
 
@@ -64,4 +65,5 @@
 	},
 };
 
-builtin_platform_driver(clk_mt6779_vdec_drv);
+module_platform_driver(clk_mt6779_vdec_drv);
+MODULE_LICENSE("GPL");
diff --git a/drivers/clk/mediatek/clk-mt6779-venc.c b/drivers/clk/mediatek/clk-mt6779-venc.c
index b41d1f8..ff67084 100644
--- a/drivers/clk/mediatek/clk-mt6779-venc.c
+++ b/drivers/clk/mediatek/clk-mt6779-venc.c
@@ -4,6 +4,7 @@
  * Author: Wendell Lin <wendell.lin@mediatek.com>
  */
 
+#include <linux/module.h>
 #include <linux/clk-provider.h>
 #include <linux/platform_device.h>
 
@@ -55,4 +56,5 @@
 	},
 };
 
-builtin_platform_driver(clk_mt6779_venc_drv);
+module_platform_driver(clk_mt6779_venc_drv);
+MODULE_LICENSE("GPL");
diff --git a/drivers/clk/mediatek/clk-mt6779.c b/drivers/clk/mediatek/clk-mt6779.c
index 6e0d3a1..9825385 100644
--- a/drivers/clk/mediatek/clk-mt6779.c
+++ b/drivers/clk/mediatek/clk-mt6779.c
@@ -4,6 +4,7 @@
  * Author: Wendell Lin <wendell.lin@mediatek.com>
  */
 
+#include <linux/module.h>
 #include <linux/of.h>
 #include <linux/of_address.h>
 #include <linux/of_device.h>
@@ -1314,3 +1315,4 @@
 }
 
 arch_initcall(clk_mt6779_init);
+MODULE_LICENSE("GPL");
diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c
index 4b6096c..6624f007 100644
--- a/drivers/clk/mediatek/clk-mtk.c
+++ b/drivers/clk/mediatek/clk-mtk.c
@@ -11,6 +11,7 @@
 #include <linux/slab.h>
 #include <linux/delay.h>
 #include <linux/clkdev.h>
+#include <linux/module.h>
 #include <linux/mfd/syscon.h>
 #include <linux/device.h>
 #include <linux/of_device.h>
@@ -42,6 +43,7 @@
 
 	return NULL;
 }
+EXPORT_SYMBOL_GPL(mtk_alloc_clk_data);
 
 void mtk_clk_register_fixed_clks(const struct mtk_fixed_clk *clks,
 		int num, struct clk_onecell_data *clk_data)
@@ -68,6 +70,7 @@
 			clk_data->clks[rc->id] = clk;
 	}
 }
+EXPORT_SYMBOL_GPL(mtk_clk_register_fixed_clks);
 
 void mtk_clk_register_factors(const struct mtk_fixed_factor *clks,
 		int num, struct clk_onecell_data *clk_data)
@@ -94,6 +97,7 @@
 			clk_data->clks[ff->id] = clk;
 	}
 }
+EXPORT_SYMBOL_GPL(mtk_clk_register_factors);
 
 int mtk_clk_register_gates_with_dev(struct device_node *node,
 		const struct mtk_gate *clks,
@@ -146,6 +150,7 @@
 	return mtk_clk_register_gates_with_dev(node,
 		clks, num, clk_data, NULL);
 }
+EXPORT_SYMBOL_GPL(mtk_clk_register_gates);
 
 struct clk *mtk_clk_register_composite(const struct mtk_composite *mc,
 		void __iomem *base, spinlock_t *lock)
@@ -259,6 +264,7 @@
 			clk_data->clks[mc->id] = clk;
 	}
 }
+EXPORT_SYMBOL_GPL(mtk_clk_register_composites);
 
 void mtk_clk_register_dividers(const struct mtk_clk_divider *mcds,
 			int num, void __iomem *base, spinlock_t *lock,
@@ -309,3 +315,5 @@
 
 	return of_clk_add_provider(node, of_clk_src_onecell_get, clk_data);
 }
+
+MODULE_LICENSE("GPL");
diff --git a/drivers/clk/mediatek/clk-mux.c b/drivers/clk/mediatek/clk-mux.c
index 855b0a1..6d3a50e 100644
--- a/drivers/clk/mediatek/clk-mux.c
+++ b/drivers/clk/mediatek/clk-mux.c
@@ -8,6 +8,7 @@
 #include <linux/of_address.h>
 #include <linux/slab.h>
 #include <linux/mfd/syscon.h>
+#include <linux/module.h>
 
 #include "clk-mtk.h"
 #include "clk-mux.h"
@@ -120,6 +121,7 @@
 	.get_parent = mtk_clk_mux_get_parent,
 	.set_parent = mtk_clk_mux_set_parent_setclr_lock,
 };
+EXPORT_SYMBOL_GPL(mtk_mux_clr_set_upd_ops);
 
 const struct clk_ops mtk_mux_gate_clr_set_upd_ops  = {
 	.enable = mtk_clk_mux_enable_setclr,
@@ -128,6 +130,7 @@
 	.get_parent = mtk_clk_mux_get_parent,
 	.set_parent = mtk_clk_mux_set_parent_setclr_lock,
 };
+EXPORT_SYMBOL_GPL(mtk_mux_gate_clr_set_upd_ops);
 
 static struct clk *mtk_clk_register_mux(const struct mtk_mux *mux,
 				 struct regmap *regmap,
@@ -195,3 +198,6 @@
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(mtk_clk_register_muxes);
+
+MODULE_LICENSE("GPL");
diff --git a/drivers/clk/mediatek/clk-pll.c b/drivers/clk/mediatek/clk-pll.c
index 7fb001a..20bf8a1 100644
--- a/drivers/clk/mediatek/clk-pll.c
+++ b/drivers/clk/mediatek/clk-pll.c
@@ -7,6 +7,7 @@
 #include <linux/of.h>
 #include <linux/of_address.h>
 #include <linux/io.h>
+#include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/clkdev.h>
 #include <linux/delay.h>
@@ -385,3 +386,6 @@
 		clk_data->clks[pll->id] = clk;
 	}
 }
+EXPORT_SYMBOL_GPL(mtk_clk_register_plls);
+
+MODULE_LICENSE("GPL");
diff --git a/drivers/clk/mediatek/reset.c b/drivers/clk/mediatek/reset.c
index d311da5..e038c33 100644
--- a/drivers/clk/mediatek/reset.c
+++ b/drivers/clk/mediatek/reset.c
@@ -137,3 +137,5 @@
 	mtk_register_reset_controller_common(np, num_regs, regofs,
 		&mtk_reset_ops_set_clr);
 }
+
+MODULE_LICENSE("GPL");
diff --git a/drivers/clk/qcom/dispcc-sdm845.c b/drivers/clk/qcom/dispcc-sdm845.c
index 735adfe..414ffb6 100644
--- a/drivers/clk/qcom/dispcc-sdm845.c
+++ b/drivers/clk/qcom/dispcc-sdm845.c
@@ -3,6 +3,7 @@
  * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
  */
 
+#include <linux/clk.h>
 #include <linux/clk-provider.h>
 #include <linux/module.h>
 #include <linux/platform_device.h>
@@ -869,6 +870,7 @@
 	.driver		= {
 		.name	= "disp_cc-sdm845",
 		.of_match_table = disp_cc_sdm845_match_table,
+		.sync_state = clk_sync_state,
 	},
 };
 
diff --git a/drivers/clk/qcom/gcc-msm8998.c b/drivers/clk/qcom/gcc-msm8998.c
index 050c91af..2523e2b 100644
--- a/drivers/clk/qcom/gcc-msm8998.c
+++ b/drivers/clk/qcom/gcc-msm8998.c
@@ -3162,6 +3162,7 @@
 	.driver		= {
 		.name	= "gcc-msm8998",
 		.of_match_table = gcc_msm8998_match_table,
+		.sync_state = clk_sync_state,
 	},
 };
 
diff --git a/drivers/clk/qcom/gcc-sdm845.c b/drivers/clk/qcom/gcc-sdm845.c
index 58aa3ec..c2f093f 100644
--- a/drivers/clk/qcom/gcc-sdm845.c
+++ b/drivers/clk/qcom/gcc-sdm845.c
@@ -3624,6 +3624,7 @@
 	.driver		= {
 		.name	= "gcc-sdm845",
 		.of_match_table = gcc_sdm845_match_table,
+		.sync_state = clk_sync_state,
 	},
 };
 
diff --git a/drivers/clk/qcom/gpucc-sdm845.c b/drivers/clk/qcom/gpucc-sdm845.c
index 110b544..8749aab 100644
--- a/drivers/clk/qcom/gpucc-sdm845.c
+++ b/drivers/clk/qcom/gpucc-sdm845.c
@@ -205,6 +205,7 @@
 	.driver = {
 		.name = "sdm845-gpucc",
 		.of_match_table = gpu_cc_sdm845_match_table,
+		.sync_state = clk_sync_state,
 	},
 };
 
diff --git a/drivers/clk/qcom/videocc-sdm845.c b/drivers/clk/qcom/videocc-sdm845.c
index c77a4dd..f678ade 100644
--- a/drivers/clk/qcom/videocc-sdm845.c
+++ b/drivers/clk/qcom/videocc-sdm845.c
@@ -337,6 +337,7 @@
 	.driver		= {
 		.name	= "sdm845-videocc",
 		.of_match_table = video_cc_sdm845_match_table,
+		.sync_state = clk_sync_state,
 	},
 };
 
diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
index 08f8cb9..265c4dc 100644
--- a/drivers/clocksource/Kconfig
+++ b/drivers/clocksource/Kconfig
@@ -128,7 +128,7 @@
 	  Enables the support for the RDA Micro timer driver.
 
 config SUN4I_TIMER
-	bool "Sun4i timer driver" if COMPILE_TEST
+	bool "Sun4i timer driver"
 	depends on HAS_IOMEM
 	select CLKSRC_MMIO
 	select TIMER_OF
diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
index be6d741..652a647 100644
--- a/drivers/clocksource/arm_arch_timer.c
+++ b/drivers/clocksource/arm_arch_timer.c
@@ -478,6 +478,13 @@
 		.read_cntpct_el0 = arm64_858921_read_cntpct_el0,
 		.read_cntvct_el0 = arm64_858921_read_cntvct_el0,
 	},
+	{
+		.match_type = ate_match_dt,
+		.id = "qcom,erratum-858921",
+		.desc = "erratum 858921",
+		.read_cntpct_el0 = arm64_858921_read_cntpct_el0,
+		.read_cntvct_el0 = arm64_858921_read_cntvct_el0,
+	},
 #endif
 #ifdef CONFIG_SUN50I_ERRATUM_UNKNOWN1
 	{
diff --git a/drivers/clocksource/mmio.c b/drivers/clocksource/mmio.c
index 9de7515..826dcc4 100644
--- a/drivers/clocksource/mmio.c
+++ b/drivers/clocksource/mmio.c
@@ -21,6 +21,7 @@
 {
 	return (u64)readl_relaxed(to_mmio_clksrc(c)->reg);
 }
+EXPORT_SYMBOL_GPL(clocksource_mmio_readl_up);
 
 u64 clocksource_mmio_readl_down(struct clocksource *c)
 {
@@ -46,7 +47,7 @@
  * @bits:	Number of valid bits
  * @read:	One of clocksource_mmio_read*() above
  */
-int __init clocksource_mmio_init(void __iomem *base, const char *name,
+int clocksource_mmio_init(void __iomem *base, const char *name,
 	unsigned long hz, int rating, unsigned bits,
 	u64 (*read)(struct clocksource *))
 {
@@ -68,3 +69,4 @@
 
 	return clocksource_register_hz(&cs->clksrc, hz);
 }
+EXPORT_SYMBOL_GPL(clocksource_mmio_init);
diff --git a/drivers/clocksource/timer-of.c b/drivers/clocksource/timer-of.c
index c3f54d9..d11c9de 100644
--- a/drivers/clocksource/timer-of.c
+++ b/drivers/clocksource/timer-of.c
@@ -19,7 +19,7 @@
  *
  * Free the irq resource
  */
-static __init void timer_of_irq_exit(struct of_timer_irq *of_irq)
+static void timer_of_irq_exit(struct of_timer_irq *of_irq)
 {
 	struct timer_of *to = container_of(of_irq, struct timer_of, of_irq);
 
@@ -47,7 +47,7 @@
  *
  * Returns 0 on success, < 0 otherwise
  */
-static __init int timer_of_irq_init(struct device_node *np,
+static int timer_of_irq_init(struct device_node *np,
 				    struct of_timer_irq *of_irq)
 {
 	int ret;
@@ -91,7 +91,7 @@
  *
  * Disables and releases the refcount on the clk
  */
-static __init void timer_of_clk_exit(struct of_timer_clk *of_clk)
+static void timer_of_clk_exit(struct of_timer_clk *of_clk)
 {
 	of_clk->rate = 0;
 	clk_disable_unprepare(of_clk->clk);
@@ -107,7 +107,7 @@
  *
  * Returns 0 on success, < 0 otherwise
  */
-static __init int timer_of_clk_init(struct device_node *np,
+static int timer_of_clk_init(struct device_node *np,
 				    struct of_timer_clk *of_clk)
 {
 	int ret;
@@ -146,12 +146,12 @@
 	goto out;
 }
 
-static __init void timer_of_base_exit(struct of_timer_base *of_base)
+static void timer_of_base_exit(struct of_timer_base *of_base)
 {
 	iounmap(of_base->base);
 }
 
-static __init int timer_of_base_init(struct device_node *np,
+static int timer_of_base_init(struct device_node *np,
 				     struct of_timer_base *of_base)
 {
 	of_base->base = of_base->name ?
@@ -165,7 +165,7 @@
 	return 0;
 }
 
-int __init timer_of_init(struct device_node *np, struct timer_of *to)
+int timer_of_init(struct device_node *np, struct timer_of *to)
 {
 	int ret = -EINVAL;
 	int flags = 0;
@@ -209,6 +209,7 @@
 		timer_of_base_exit(&to->of_base);
 	return ret;
 }
+EXPORT_SYMBOL_GPL(timer_of_init);
 
 /**
  * timer_of_cleanup - release timer_of resources
@@ -217,7 +218,7 @@
  * Release the resources that has been used in timer_of_init().
  * This function should be called in init error cases
  */
-void __init timer_of_cleanup(struct timer_of *to)
+void timer_of_cleanup(struct timer_of *to)
 {
 	if (to->flags & TIMER_OF_IRQ)
 		timer_of_irq_exit(&to->of_irq);
diff --git a/drivers/clocksource/timer-of.h b/drivers/clocksource/timer-of.h
index a5478f3..1b8cfac5 100644
--- a/drivers/clocksource/timer-of.h
+++ b/drivers/clocksource/timer-of.h
@@ -66,9 +66,9 @@
 	return to->of_clk.period;
 }
 
-extern int __init timer_of_init(struct device_node *np,
+extern int timer_of_init(struct device_node *np,
 				struct timer_of *to);
 
-extern void __init timer_of_cleanup(struct timer_of *to);
+extern void timer_of_cleanup(struct timer_of *to);
 
 #endif
diff --git a/drivers/cpufreq/Kconfig b/drivers/cpufreq/Kconfig
index c3038cd..c63de9e 100644
--- a/drivers/cpufreq/Kconfig
+++ b/drivers/cpufreq/Kconfig
@@ -35,6 +35,13 @@
 
 	  If in doubt, say N.
 
+config CPU_FREQ_TIMES
+       bool "CPU frequency time-in-state statistics"
+       help
+         Export CPU time-in-state information through procfs.
+
+         If in doubt, say N.
+
 choice
 	prompt "Default CPUFreq governor"
 	default CPU_FREQ_DEFAULT_GOV_USERSPACE if ARM_SA1100_CPUFREQ || ARM_SA1110_CPUFREQ
@@ -227,6 +234,15 @@
 
 	  If in doubt, say N.
 
+config CPUFREQ_DUMMY
+	tristate "Dummy CPU frequency driver"
+	help
+	  This option adds a generic dummy CPUfreq driver, which sets a fake
+	  2-frequency table when initializing each policy and otherwise does
+	  nothing.
+
+	  If in doubt, say N
+
 if X86
 source "drivers/cpufreq/Kconfig.x86"
 endif
diff --git a/drivers/cpufreq/Makefile b/drivers/cpufreq/Makefile
index 48ee585..f357aa7 100644
--- a/drivers/cpufreq/Makefile
+++ b/drivers/cpufreq/Makefile
@@ -5,7 +5,10 @@
 # CPUfreq stats
 obj-$(CONFIG_CPU_FREQ_STAT)             += cpufreq_stats.o
 
-# CPUfreq governors 
+# CPUfreq times
+obj-$(CONFIG_CPU_FREQ_TIMES)		+= cpufreq_times.o
+
+# CPUfreq governors
 obj-$(CONFIG_CPU_FREQ_GOV_PERFORMANCE)	+= cpufreq_performance.o
 obj-$(CONFIG_CPU_FREQ_GOV_POWERSAVE)	+= cpufreq_powersave.o
 obj-$(CONFIG_CPU_FREQ_GOV_USERSPACE)	+= cpufreq_userspace.o
@@ -17,6 +20,8 @@
 obj-$(CONFIG_CPUFREQ_DT)		+= cpufreq-dt.o
 obj-$(CONFIG_CPUFREQ_DT_PLATDEV)	+= cpufreq-dt-platdev.o
 
+obj-$(CONFIG_CPUFREQ_DUMMY)		+= dummy-cpufreq.o
+
 ##################################################################################
 # x86 drivers.
 # Link order matters. K8 is preferred to ACPI because of firmware bugs in early
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index ae7b95e..45c4755 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -16,6 +16,7 @@
 
 #include <linux/cpu.h>
 #include <linux/cpufreq.h>
+#include <linux/cpufreq_times.h>
 #include <linux/cpu_cooling.h>
 #include <linux/delay.h>
 #include <linux/device.h>
@@ -30,6 +31,8 @@
 #include <linux/tick.h>
 #include <linux/units.h>
 #include <trace/events/power.h>
+#include <trace/hooks/cpufreq.h>
+#include <trace/hooks/thermal.h>
 
 static LIST_HEAD(cpufreq_policy_list);
 
@@ -387,7 +390,9 @@
 					 CPUFREQ_POSTCHANGE, freqs);
 
 		cpufreq_stats_record_transition(policy, freqs->new);
+		cpufreq_times_record_transition(policy, freqs->new);
 		policy->cur = freqs->new;
+		trace_android_rvh_cpufreq_transition(policy);
 	}
 }
 
@@ -529,8 +534,10 @@
 		unsigned int target_freq, unsigned int relation)
 {
 	unsigned int idx;
+	unsigned int old_target_freq = target_freq;
 
 	target_freq = clamp_val(target_freq, policy->min, policy->max);
+	trace_android_vh_cpufreq_resolve_freq(policy, &target_freq, old_target_freq);
 
 	if (!policy->freq_table)
 		return target_freq;
@@ -689,8 +696,15 @@
 	return sprintf(buf, "%u\n", policy->object);	\
 }
 
+static ssize_t show_cpuinfo_max_freq(struct cpufreq_policy *policy, char *buf)
+{
+	unsigned int max_freq = policy->cpuinfo.max_freq;
+
+	trace_android_rvh_show_max_freq(policy, &max_freq);
+	return sprintf(buf, "%u\n", max_freq);
+}
+
 show_one(cpuinfo_min_freq, cpuinfo.min_freq);
-show_one(cpuinfo_max_freq, cpuinfo.max_freq);
 show_one(cpuinfo_transition_latency, cpuinfo.transition_latency);
 show_one(scaling_min_freq, min);
 show_one(scaling_max_freq, max);
@@ -1487,6 +1501,7 @@
 			goto out_destroy_policy;
 
 		cpufreq_stats_create_table(policy);
+		cpufreq_times_create_policy(policy);
 
 		write_lock_irqsave(&cpufreq_driver_lock, flags);
 		list_add(&policy->policy_list, &cpufreq_policy_list);
@@ -1517,8 +1532,10 @@
 
 	kobject_uevent(&policy->kobj, KOBJ_ADD);
 
-	if (cpufreq_thermal_control_enabled(cpufreq_driver))
+	if (cpufreq_thermal_control_enabled(cpufreq_driver)) {
 		policy->cdev = of_cpufreq_cooling_register(policy);
+		trace_android_vh_thermal_register(policy);
+	}
 
 	pr_debug("initialization complete\n");
 
@@ -1612,7 +1629,9 @@
 	}
 
 	if (cpufreq_thermal_control_enabled(cpufreq_driver)) {
+		trace_android_vh_cpufreq_offline(&policy->cdev->device, true);
 		cpufreq_cooling_unregister(policy->cdev);
+		trace_android_vh_thermal_unregister(policy);
 		policy->cdev = NULL;
 	}
 
@@ -2098,9 +2117,11 @@
 					unsigned int target_freq)
 {
 	unsigned int freq;
+	unsigned int old_target_freq = target_freq;
 	int cpu;
 
 	target_freq = clamp_val(target_freq, policy->min, policy->max);
+	trace_android_vh_cpufreq_fast_switch(policy, &target_freq, old_target_freq);
 	freq = cpufreq_driver->fast_switch(policy, target_freq);
 
 	if (!freq)
@@ -2110,6 +2131,8 @@
 	arch_set_freq_scale(policy->related_cpus, freq,
 			    policy->cpuinfo.max_freq);
 	cpufreq_stats_record_transition(policy, freq);
+	cpufreq_times_record_transition(policy, freq);
+	trace_android_rvh_cpufreq_transition(policy);
 
 	if (trace_cpu_frequency_enabled()) {
 		for_each_cpu(cpu, policy->cpus)
@@ -2257,6 +2280,8 @@
 
 	target_freq = __resolve_freq(policy, target_freq, relation);
 
+	trace_android_vh_cpufreq_target(policy, &target_freq, old_target_freq);
+
 	pr_debug("target for CPU %u: %u kHz, relation %u, requested %u kHz\n",
 		 policy->cpu, target_freq, relation, old_target_freq);
 
@@ -2578,7 +2603,6 @@
 		ret = cpufreq_start_governor(policy);
 		if (!ret) {
 			pr_debug("governor change\n");
-			sched_cpufreq_governor_change(policy, old_gov);
 			return 0;
 		}
 		cpufreq_exit_governor(policy);
@@ -2596,6 +2620,7 @@
 
 	return ret;
 }
+EXPORT_TRACEPOINT_SYMBOL_GPL(cpu_frequency_limits);
 
 /**
  * cpufreq_update_policy - Re-evaluate an existing cpufreq policy.
diff --git a/drivers/cpufreq/cpufreq_governor.c b/drivers/cpufreq/cpufreq_governor.c
index 55c8031..63f7c21 100644
--- a/drivers/cpufreq/cpufreq_governor.c
+++ b/drivers/cpufreq/cpufreq_governor.c
@@ -388,15 +388,6 @@
 	gov->free(policy_dbs);
 }
 
-static void cpufreq_dbs_data_release(struct kobject *kobj)
-{
-	struct dbs_data *dbs_data = to_dbs_data(to_gov_attr_set(kobj));
-	struct dbs_governor *gov = dbs_data->gov;
-
-	gov->exit(dbs_data);
-	kfree(dbs_data);
-}
-
 int cpufreq_dbs_governor_init(struct cpufreq_policy *policy)
 {
 	struct dbs_governor *gov = dbs_governor_of(policy);
@@ -434,7 +425,6 @@
 		goto free_policy_dbs_info;
 	}
 
-	dbs_data->gov = gov;
 	gov_attr_set_init(&dbs_data->attr_set, &policy_dbs->list);
 
 	ret = gov->init(dbs_data);
@@ -457,7 +447,6 @@
 	policy->governor_data = policy_dbs;
 
 	gov->kobj_type.sysfs_ops = &governor_sysfs_ops;
-	gov->kobj_type.release = cpufreq_dbs_data_release;
 	ret = kobject_init_and_add(&dbs_data->attr_set.kobj, &gov->kobj_type,
 				   get_governor_parent_kobj(policy),
 				   "%s", gov->gov.name);
@@ -499,8 +488,13 @@
 
 	policy->governor_data = NULL;
 
-	if (!count && !have_governor_per_policy())
-		gov->gdbs_data = NULL;
+	if (!count) {
+		if (!have_governor_per_policy())
+			gov->gdbs_data = NULL;
+
+		gov->exit(dbs_data);
+		kfree(dbs_data);
+	}
 
 	free_policy_dbs_info(policy_dbs, gov);
 
diff --git a/drivers/cpufreq/cpufreq_governor.h b/drivers/cpufreq/cpufreq_governor.h
index a6de263..bab8e61 100644
--- a/drivers/cpufreq/cpufreq_governor.h
+++ b/drivers/cpufreq/cpufreq_governor.h
@@ -37,7 +37,6 @@
 /* Governor demand based switching data (per-policy or global). */
 struct dbs_data {
 	struct gov_attr_set attr_set;
-	struct dbs_governor *gov;
 	void *tuners;
 	unsigned int ignore_nice_load;
 	unsigned int sampling_rate;
diff --git a/drivers/cpufreq/cpufreq_times.c b/drivers/cpufreq/cpufreq_times.c
new file mode 100644
index 0000000..47dc34c
--- /dev/null
+++ b/drivers/cpufreq/cpufreq_times.c
@@ -0,0 +1,214 @@
+/* drivers/cpufreq/cpufreq_times.c
+ *
+ * Copyright (C) 2018 Google, Inc.
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <linux/cpufreq.h>
+#include <linux/cpufreq_times.h>
+#include <linux/jiffies.h>
+#include <linux/sched.h>
+#include <linux/seq_file.h>
+#include <linux/slab.h>
+#include <linux/spinlock.h>
+#include <linux/threads.h>
+#include <trace/hooks/cpufreq.h>
+
+static DEFINE_SPINLOCK(task_time_in_state_lock); /* task->time_in_state */
+
+/**
+ * struct cpu_freqs - per-cpu frequency information
+ * @offset: start of these freqs' stats in task time_in_state array
+ * @max_state: number of entries in freq_table
+ * @last_index: index in freq_table of last frequency switched to
+ * @freq_table: list of available frequencies
+ */
+struct cpu_freqs {
+	unsigned int offset;
+	unsigned int max_state;
+	unsigned int last_index;
+	unsigned int freq_table[0];
+};
+
+static struct cpu_freqs *all_freqs[NR_CPUS];
+
+static unsigned int next_offset;
+
+void cpufreq_task_times_init(struct task_struct *p)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&task_time_in_state_lock, flags);
+	p->time_in_state = NULL;
+	spin_unlock_irqrestore(&task_time_in_state_lock, flags);
+	p->max_state = 0;
+}
+
+void cpufreq_task_times_alloc(struct task_struct *p)
+{
+	void *temp;
+	unsigned long flags;
+	unsigned int max_state = READ_ONCE(next_offset);
+
+	/* We use one array to avoid multiple allocs per task */
+	temp = kcalloc(max_state, sizeof(p->time_in_state[0]), GFP_ATOMIC);
+	if (!temp)
+		return;
+
+	spin_lock_irqsave(&task_time_in_state_lock, flags);
+	p->time_in_state = temp;
+	spin_unlock_irqrestore(&task_time_in_state_lock, flags);
+	p->max_state = max_state;
+}
+
+/* Caller must hold task_time_in_state_lock */
+static int cpufreq_task_times_realloc_locked(struct task_struct *p)
+{
+	void *temp;
+	unsigned int max_state = READ_ONCE(next_offset);
+
+	temp = krealloc(p->time_in_state, max_state * sizeof(u64), GFP_ATOMIC);
+	if (!temp)
+		return -ENOMEM;
+	p->time_in_state = temp;
+	memset(p->time_in_state + p->max_state, 0,
+	       (max_state - p->max_state) * sizeof(u64));
+	p->max_state = max_state;
+	return 0;
+}
+
+void cpufreq_task_times_exit(struct task_struct *p)
+{
+	unsigned long flags;
+	void *temp;
+
+	if (!p->time_in_state)
+		return;
+
+	spin_lock_irqsave(&task_time_in_state_lock, flags);
+	temp = p->time_in_state;
+	p->time_in_state = NULL;
+	spin_unlock_irqrestore(&task_time_in_state_lock, flags);
+	kfree(temp);
+}
+
+int proc_time_in_state_show(struct seq_file *m, struct pid_namespace *ns,
+	struct pid *pid, struct task_struct *p)
+{
+	unsigned int cpu, i;
+	u64 cputime;
+	unsigned long flags;
+	struct cpu_freqs *freqs;
+	struct cpu_freqs *last_freqs = NULL;
+
+	spin_lock_irqsave(&task_time_in_state_lock, flags);
+	for_each_possible_cpu(cpu) {
+		freqs = all_freqs[cpu];
+		if (!freqs || freqs == last_freqs)
+			continue;
+		last_freqs = freqs;
+
+		seq_printf(m, "cpu%u\n", cpu);
+		for (i = 0; i < freqs->max_state; i++) {
+			cputime = 0;
+			if (freqs->offset + i < p->max_state &&
+			    p->time_in_state)
+				cputime = p->time_in_state[freqs->offset + i];
+			seq_printf(m, "%u %lu\n", freqs->freq_table[i],
+				   (unsigned long)nsec_to_clock_t(cputime));
+		}
+	}
+	spin_unlock_irqrestore(&task_time_in_state_lock, flags);
+	return 0;
+}
+
+void cpufreq_acct_update_power(struct task_struct *p, u64 cputime)
+{
+	unsigned long flags;
+	unsigned int state;
+	struct cpu_freqs *freqs = all_freqs[task_cpu(p)];
+
+	if (!freqs || is_idle_task(p) || p->flags & PF_EXITING)
+		return;
+
+	state = freqs->offset + READ_ONCE(freqs->last_index);
+
+	spin_lock_irqsave(&task_time_in_state_lock, flags);
+	if ((state < p->max_state || !cpufreq_task_times_realloc_locked(p)) &&
+	    p->time_in_state)
+		p->time_in_state[state] += cputime;
+	spin_unlock_irqrestore(&task_time_in_state_lock, flags);
+
+	trace_android_vh_cpufreq_acct_update_power(cputime, p, state);
+}
+
+static int cpufreq_times_get_index(struct cpu_freqs *freqs, unsigned int freq)
+{
+	int index;
+        for (index = 0; index < freqs->max_state; ++index) {
+		if (freqs->freq_table[index] == freq)
+			return index;
+        }
+	return -1;
+}
+
+void cpufreq_times_create_policy(struct cpufreq_policy *policy)
+{
+	int cpu, index = 0;
+	unsigned int count = 0;
+	struct cpufreq_frequency_table *pos, *table;
+	struct cpu_freqs *freqs;
+	void *tmp;
+
+	if (all_freqs[policy->cpu])
+		return;
+
+	table = policy->freq_table;
+	if (!table)
+		return;
+
+	cpufreq_for_each_valid_entry(pos, table)
+		count++;
+
+	tmp =  kzalloc(sizeof(*freqs) + sizeof(freqs->freq_table[0]) * count,
+		       GFP_KERNEL);
+	if (!tmp)
+		return;
+
+	freqs = tmp;
+	freqs->max_state = count;
+
+	cpufreq_for_each_valid_entry(pos, table)
+		freqs->freq_table[index++] = pos->frequency;
+
+	index = cpufreq_times_get_index(freqs, policy->cur);
+	if (index >= 0)
+		WRITE_ONCE(freqs->last_index, index);
+
+	freqs->offset = next_offset;
+	WRITE_ONCE(next_offset, freqs->offset + count);
+	for_each_cpu(cpu, policy->related_cpus)
+		all_freqs[cpu] = freqs;
+}
+
+void cpufreq_times_record_transition(struct cpufreq_policy *policy,
+	unsigned int new_freq)
+{
+	int index;
+	struct cpu_freqs *freqs = all_freqs[policy->cpu];
+	if (!freqs)
+		return;
+
+	index = cpufreq_times_get_index(freqs, new_freq);
+	if (index >= 0)
+		WRITE_ONCE(freqs->last_index, index);
+}
diff --git a/drivers/cpufreq/dummy-cpufreq.c b/drivers/cpufreq/dummy-cpufreq.c
new file mode 100644
index 0000000..e74ef67
--- /dev/null
+++ b/drivers/cpufreq/dummy-cpufreq.c
@@ -0,0 +1,60 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2019 Google, Inc.
+ */
+#include <linux/cpufreq.h>
+#include <linux/module.h>
+
+static struct cpufreq_frequency_table freq_table[] = {
+	{ .frequency = 1 },
+	{ .frequency = 2 },
+	{ .frequency = CPUFREQ_TABLE_END },
+};
+
+static int dummy_cpufreq_target_index(struct cpufreq_policy *policy,
+				   unsigned int index)
+{
+	return 0;
+}
+
+static int dummy_cpufreq_driver_init(struct cpufreq_policy *policy)
+{
+	policy->freq_table = freq_table;
+	return 0;
+}
+
+static unsigned int dummy_cpufreq_get(unsigned int cpu)
+{
+	return 1;
+}
+
+static int dummy_cpufreq_verify(struct cpufreq_policy_data *data)
+{
+	return 0;
+}
+
+static struct cpufreq_driver dummy_cpufreq_driver = {
+	.name = "dummy",
+	.target_index = dummy_cpufreq_target_index,
+	.init = dummy_cpufreq_driver_init,
+	.get = dummy_cpufreq_get,
+	.verify = dummy_cpufreq_verify,
+	.attr = cpufreq_generic_attr,
+};
+
+static int __init dummy_cpufreq_init(void)
+{
+	return cpufreq_register_driver(&dummy_cpufreq_driver);
+}
+
+static void __exit dummy_cpufreq_exit(void)
+{
+	cpufreq_unregister_driver(&dummy_cpufreq_driver);
+}
+
+module_init(dummy_cpufreq_init);
+module_exit(dummy_cpufreq_exit);
+
+MODULE_AUTHOR("Connor O'Brien <connoro@google.com>");
+MODULE_DESCRIPTION("dummy cpufreq driver");
+MODULE_LICENSE("GPL");
diff --git a/drivers/cpufreq/freq_table.c b/drivers/cpufreq/freq_table.c
index 67e56cf..24d3115 100644
--- a/drivers/cpufreq/freq_table.c
+++ b/drivers/cpufreq/freq_table.c
@@ -9,6 +9,7 @@
 
 #include <linux/cpufreq.h>
 #include <linux/module.h>
+#include <trace/hooks/cpufreq.h>
 
 /*********************************************************************
  *                     FREQUENCY TABLE HELPERS                       *
@@ -51,6 +52,7 @@
 			max_freq = freq;
 	}
 
+	trace_android_vh_freq_table_limits(policy, min_freq, max_freq);
 	policy->min = policy->cpuinfo.min_freq = min_freq;
 	policy->max = max_freq;
 	/*
diff --git a/drivers/cpufreq/mediatek-cpufreq-hw.c b/drivers/cpufreq/mediatek-cpufreq-hw.c
index 0cf18dd..a3bcf90 100644
--- a/drivers/cpufreq/mediatek-cpufreq-hw.c
+++ b/drivers/cpufreq/mediatek-cpufreq-hw.c
@@ -13,6 +13,10 @@
 #include <linux/of_address.h>
 #include <linux/of_platform.h>
 #include <linux/slab.h>
+#if defined(CONFIG_TRACEPOINTS) && defined(CONFIG_ANDROID_VENDOR_HOOKS)
+#include <linux/device.h>
+#include <trace/hooks/cpufreq.h>
+#endif
 
 #define LUT_MAX_ENTRIES			32U
 #define LUT_FREQ			GENMASK(11, 0)
@@ -249,6 +253,13 @@
 				    &em_cb, policy->cpus, true);
 }
 
+#if defined(CONFIG_TRACEPOINTS) && defined(CONFIG_ANDROID_VENDOR_HOOKS)
+static void mtk_cpufreq_suppress(void *data, struct device *dev, int val)
+{
+	dev_set_uevent_suppress(dev, val);
+}
+#endif
+
 static struct cpufreq_driver cpufreq_mtk_hw_driver = {
 	.flags		= CPUFREQ_NEED_INITIAL_FREQ_CHECK |
 			  CPUFREQ_HAVE_GOVERNOR_PER_POLICY |
@@ -280,6 +291,10 @@
 	if (ret)
 		dev_err(&pdev->dev, "CPUFreq HW driver failed to register\n");
 
+#if defined(CONFIG_TRACEPOINTS) && defined(CONFIG_ANDROID_VENDOR_HOOKS)
+	ret = register_trace_android_vh_cpufreq_offline(mtk_cpufreq_suppress, NULL);
+#endif
+
 	return ret;
 }
 
diff --git a/drivers/cpufreq/mediatek-cpufreq.c b/drivers/cpufreq/mediatek-cpufreq.c
index bfe240c..5b39b9a 100644
--- a/drivers/cpufreq/mediatek-cpufreq.c
+++ b/drivers/cpufreq/mediatek-cpufreq.c
@@ -15,6 +15,10 @@
 #include <linux/regulator/consumer.h>
 #include <linux/slab.h>
 #include <linux/thermal.h>
+#if defined(CONFIG_TRACEPOINTS) && defined(CONFIG_ANDROID_VENDOR_HOOKS)
+#include <linux/device.h>
+#include <trace/hooks/cpufreq.h>
+#endif
 
 #define MIN_VOLT_SHIFT		(100000)
 #define MAX_VOLT_SHIFT		(200000)
@@ -462,6 +466,13 @@
 	return 0;
 }
 
+#if defined(CONFIG_TRACEPOINTS) && defined(CONFIG_ANDROID_VENDOR_HOOKS)
+static void mtk_cpufreq_suppress(void *data, struct device *dev, int val)
+{
+	dev_set_uevent_suppress(dev, val);
+}
+#endif
+
 static struct cpufreq_driver mtk_cpufreq_driver = {
 	.flags = CPUFREQ_NEED_INITIAL_FREQ_CHECK |
 		 CPUFREQ_HAVE_GOVERNOR_PER_POLICY |
@@ -509,6 +520,10 @@
 		goto release_dvfs_info_list;
 	}
 
+#if defined(CONFIG_TRACEPOINTS) && defined(CONFIG_ANDROID_VENDOR_HOOKS)
+	ret = register_trace_android_vh_cpufreq_offline(mtk_cpufreq_suppress, NULL);
+#endif
+
 	return 0;
 
 release_dvfs_info_list:
diff --git a/drivers/cpuidle/cpuidle-psci.c b/drivers/cpuidle/cpuidle-psci.c
index 540105c..cfefef7 100644
--- a/drivers/cpuidle/cpuidle-psci.c
+++ b/drivers/cpuidle/cpuidle-psci.c
@@ -26,6 +26,7 @@
 #include <linux/syscore_ops.h>
 
 #include <asm/cpuidle.h>
+#include <trace/hooks/cpuidle_psci.h>
 
 #include "cpuidle-psci.h"
 #include "dt_idle_states.h"
@@ -68,8 +69,12 @@
 	if (ret)
 		return -1;
 
+
 	/* Do runtime PM to manage a hierarchical CPU toplogy. */
 	rcu_irq_enter_irqson();
+
+	trace_android_vh_cpuidle_psci_enter(dev, s2idle);
+
 	if (s2idle)
 		dev_pm_genpd_suspend(pd_dev);
 	else
@@ -87,6 +92,9 @@
 		dev_pm_genpd_resume(pd_dev);
 	else
 		pm_runtime_get_sync(pd_dev);
+
+	trace_android_vh_cpuidle_psci_exit(dev, s2idle);
+
 	rcu_irq_exit_irqson();
 
 	cpu_pm_exit();
diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
index ef2ea1b..a01f04b 100644
--- a/drivers/cpuidle/cpuidle.c
+++ b/drivers/cpuidle/cpuidle.c
@@ -24,6 +24,7 @@
 #include <linux/tick.h>
 #include <linux/mmu_context.h>
 #include <trace/events/power.h>
+#include <trace/hooks/cpuidle.h>
 
 #include "cpuidle.h"
 
@@ -202,11 +203,22 @@
 {
 	int entered_state;
 
-	struct cpuidle_state *target_state = &drv->states[index];
-	bool broadcast = !!(target_state->flags & CPUIDLE_FLAG_TIMER_STOP);
+	struct cpuidle_state *target_state;
+	bool broadcast;
 	ktime_t time_start, time_end;
 
 	/*
+	 * The vendor hook may modify index, which means target_state and
+	 * broadcast must be assigned after the vendor hook.
+	 */
+	trace_android_vh_cpu_idle_enter(&index, dev);
+	if (index < 0)
+		return index;
+
+	target_state = &drv->states[index];
+	broadcast = !!(target_state->flags & CPUIDLE_FLAG_TIMER_STOP);
+
+	/*
 	 * Tell the time framework to switch to a broadcast timer because our
 	 * local timer will be shut down.  If a local timer is used from another
 	 * CPU as a broadcast timer, this call may fail if it is not available.
@@ -242,6 +254,7 @@
 	sched_clock_idle_wakeup_event();
 	time_end = ns_to_ktime(local_clock());
 	trace_cpu_idle(PWR_EVENT_EXIT, dev->cpu);
+	trace_android_vh_cpu_idle_exit(entered_state, dev);
 
 	/* The cpu is no longer idle or about to enter idle. */
 	sched_idle_set_state(NULL);
diff --git a/drivers/cpuidle/driver.c b/drivers/cpuidle/driver.c
index f70aa17..5bfdb86 100644
--- a/drivers/cpuidle/driver.c
+++ b/drivers/cpuidle/driver.c
@@ -385,3 +385,4 @@
 
 	mutex_unlock(&cpuidle_lock);
 }
+EXPORT_SYMBOL_GPL(cpuidle_driver_state_disabled);
diff --git a/drivers/cpuidle/governor.c b/drivers/cpuidle/governor.c
index 29acaf4..0e51ed2 100644
--- a/drivers/cpuidle/governor.c
+++ b/drivers/cpuidle/governor.c
@@ -102,6 +102,7 @@
 
 	return ret;
 }
+EXPORT_SYMBOL_GPL(cpuidle_register_governor);
 
 /**
  * cpuidle_governor_latency_req - Compute a latency constraint for CPU
@@ -118,3 +119,4 @@
 
 	return (s64)device_req * NSEC_PER_USEC;
 }
+EXPORT_SYMBOL_GPL(cpuidle_governor_latency_req);
diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index a473b64..85faa7a 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -775,7 +775,8 @@
  * @dev:	the device to add devfreq feature.
  * @profile:	device-specific profile to run devfreq.
  * @governor_name:	name of the policy to choose frequency.
- * @data:	devfreq driver pass to governors, governor should not change it.
+ * @data:	private data for the governor. The devfreq framework does not
+ *		touch this value.
  */
 struct devfreq *devfreq_add_device(struct device *dev,
 				   struct devfreq_dev_profile *profile,
@@ -1002,7 +1003,8 @@
  * @dev:	the device to add devfreq feature.
  * @profile:	device-specific profile to run devfreq.
  * @governor_name:	name of the policy to choose frequency.
- * @data:	 devfreq driver pass to governors, governor should not change it.
+ * @data:	private data for the governor. The devfreq framework does not
+ *		touch this value.
  *
  * This function manages automatically the memory of devfreq device using device
  * resource management and simplify the free operation for memory of devfreq
diff --git a/drivers/devfreq/governor_userspace.c b/drivers/devfreq/governor_userspace.c
index d69672c..ab9db7a 100644
--- a/drivers/devfreq/governor_userspace.c
+++ b/drivers/devfreq/governor_userspace.c
@@ -21,7 +21,7 @@
 
 static int devfreq_userspace_func(struct devfreq *df, unsigned long *freq)
 {
-	struct userspace_data *data = df->governor_data;
+	struct userspace_data *data = df->data;
 
 	if (data->valid)
 		*freq = data->user_frequency;
@@ -40,7 +40,7 @@
 	int err = 0;
 
 	mutex_lock(&devfreq->lock);
-	data = devfreq->governor_data;
+	data = devfreq->data;
 
 	sscanf(buf, "%lu", &wanted);
 	data->user_frequency = wanted;
@@ -60,7 +60,7 @@
 	int err = 0;
 
 	mutex_lock(&devfreq->lock);
-	data = devfreq->governor_data;
+	data = devfreq->data;
 
 	if (data->valid)
 		err = sprintf(buf, "%lu\n", data->user_frequency);
@@ -91,7 +91,7 @@
 		goto out;
 	}
 	data->valid = false;
-	devfreq->governor_data = data;
+	devfreq->data = data;
 
 	err = sysfs_create_group(&devfreq->dev.kobj, &dev_attr_group);
 out:
@@ -107,8 +107,8 @@
 	if (devfreq->dev.kobj.sd)
 		sysfs_remove_group(&devfreq->dev.kobj, &dev_attr_group);
 
-	kfree(devfreq->governor_data);
-	devfreq->governor_data = NULL;
+	kfree(devfreq->data);
+	devfreq->data = NULL;
 }
 
 static int devfreq_userspace_handler(struct devfreq *devfreq,
diff --git a/drivers/dma-buf/dma-buf-sysfs-stats.c b/drivers/dma-buf/dma-buf-sysfs-stats.c
index 053baad..cf582a0 100644
--- a/drivers/dma-buf/dma-buf-sysfs-stats.c
+++ b/drivers/dma-buf/dma-buf-sysfs-stats.c
@@ -11,6 +11,9 @@
 #include <linux/printk.h>
 #include <linux/slab.h>
 #include <linux/sysfs.h>
+#include <linux/workqueue.h>
+
+#include <trace/hooks/dmabuf.h>
 
 #include "dma-buf-sysfs-stats.h"
 
@@ -121,13 +124,17 @@
 void dma_buf_stats_teardown(struct dma_buf *dmabuf)
 {
 	struct dma_buf_sysfs_entry *sysfs_entry;
+	bool skip_sysfs_release = false;
 
 	sysfs_entry = dmabuf->sysfs_entry;
 	if (!sysfs_entry)
 		return;
 
-	kobject_del(&sysfs_entry->kobj);
-	kobject_put(&sysfs_entry->kobj);
+	trace_android_rvh_dma_buf_stats_teardown(sysfs_entry, &skip_sysfs_release);
+	if (!skip_sysfs_release) {
+		kobject_del(&sysfs_entry->kobj);
+		kobject_put(&sysfs_entry->kobj);
+	}
 }
 
 
@@ -168,10 +175,46 @@
 	kset_unregister(dma_buf_stats_kset);
 }
 
+static void sysfs_add_workfn(struct work_struct *work)
+{
+	struct dma_buf_sysfs_entry *sysfs_entry =
+		container_of(work, struct dma_buf_sysfs_entry, sysfs_add_work);
+	struct dma_buf *dmabuf = sysfs_entry->dmabuf;
+
+	/*
+	 * A dmabuf is ref-counted via its file member. If this handler holds the only
+	 * reference to the dmabuf, there is no need for sysfs kobject creation. This is an
+	 * optimization and a race; when the reference count drops to 1 immediately after
+	 * this check it is not harmful as the sysfs entry will still get cleaned up in
+	 * dma_buf_stats_teardown, which won't get called until the final dmabuf reference
+	 * is released, and that can't happen until the end of this function.
+	 */
+	if (file_count(dmabuf->file) > 1) {
+		/*
+		 * kobject_init_and_add expects kobject to be zero-filled, but we have populated it
+		 * (the sysfs_add_work union member) to trigger this work function.
+		 */
+		memset(&dmabuf->sysfs_entry->kobj, 0, sizeof(dmabuf->sysfs_entry->kobj));
+		dmabuf->sysfs_entry->kobj.kset = dma_buf_per_buffer_stats_kset;
+		if (kobject_init_and_add(&dmabuf->sysfs_entry->kobj, &dma_buf_ktype, NULL,
+						"%lu", file_inode(dmabuf->file)->i_ino)) {
+			kobject_put(&dmabuf->sysfs_entry->kobj);
+			dmabuf->sysfs_entry = NULL;
+		}
+	} else {
+		/*
+		 * Free the sysfs_entry and reset the pointer so dma_buf_stats_teardown doesn't
+		 * attempt to operate on it.
+		 */
+		kfree(dmabuf->sysfs_entry);
+		dmabuf->sysfs_entry = NULL;
+	}
+	dma_buf_put(dmabuf);
+}
+
 int dma_buf_stats_setup(struct dma_buf *dmabuf)
 {
 	struct dma_buf_sysfs_entry *sysfs_entry;
-	int ret;
 
 	if (!dmabuf || !dmabuf->file)
 		return -EINVAL;
@@ -181,25 +224,16 @@
 		return -EINVAL;
 	}
 
-	sysfs_entry = kzalloc(sizeof(struct dma_buf_sysfs_entry), GFP_KERNEL);
+	sysfs_entry = kmalloc(sizeof(struct dma_buf_sysfs_entry), GFP_KERNEL);
 	if (!sysfs_entry)
 		return -ENOMEM;
 
-	sysfs_entry->kobj.kset = dma_buf_per_buffer_stats_kset;
 	sysfs_entry->dmabuf = dmabuf;
-
 	dmabuf->sysfs_entry = sysfs_entry;
 
-	/* create the directory for buffer stats */
-	ret = kobject_init_and_add(&sysfs_entry->kobj, &dma_buf_ktype, NULL,
-				   "%lu", file_inode(dmabuf->file)->i_ino);
-	if (ret)
-		goto err_sysfs_dmabuf;
+	INIT_WORK(&dmabuf->sysfs_entry->sysfs_add_work, sysfs_add_workfn);
+	get_dma_buf(dmabuf); /* This reference will be dropped in sysfs_add_workfn. */
+	schedule_work(&dmabuf->sysfs_entry->sysfs_add_work);
 
 	return 0;
-
-err_sysfs_dmabuf:
-	kobject_put(&sysfs_entry->kobj);
-	dmabuf->sysfs_entry = NULL;
-	return ret;
 }
diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
index 968c3df..d512e5f 100644
--- a/drivers/dma-buf/dma-buf.c
+++ b/drivers/dma-buf/dma-buf.c
@@ -29,9 +29,9 @@
 #include <uapi/linux/dma-buf.h>
 #include <uapi/linux/magic.h>
 
-#include "dma-buf-sysfs-stats.h"
+#include <trace/hooks/dmabuf.h>
 
-static inline int is_dma_buf_file(struct file *);
+#include "dma-buf-sysfs-stats.h"
 
 struct dma_buf_list {
 	struct list_head head;
@@ -40,6 +40,30 @@
 
 static struct dma_buf_list db_list;
 
+/*
+ * This function helps in traversing the db_list and calls the
+ * callback function which can extract required info out of each
+ * dmabuf.
+ */
+int get_each_dmabuf(int (*callback)(const struct dma_buf *dmabuf,
+		    void *private), void *private)
+{
+	struct dma_buf *buf;
+	int ret = mutex_lock_interruptible(&db_list.lock);
+
+	if (ret)
+		return ret;
+
+	list_for_each_entry(buf, &db_list.head, list_node) {
+		ret = callback(buf, private);
+		if (ret)
+			break;
+	}
+	mutex_unlock(&db_list.lock);
+	return ret;
+}
+EXPORT_SYMBOL_NS_GPL(get_each_dmabuf, MINIDUMP);
+
 static char *dmabuffs_dname(struct dentry *dentry, char *buffer, int buflen)
 {
 	struct dma_buf *dmabuf;
@@ -76,6 +100,7 @@
 	dma_buf_stats_teardown(dmabuf);
 	dmabuf->ops->release(dmabuf);
 
+	trace_android_vh_dma_buf_release(dmabuf);
 	if (dmabuf->resv == (struct dma_resv *)&dmabuf[1])
 		dma_resv_fini(dmabuf->resv);
 
@@ -322,12 +347,20 @@
 	return events;
 }
 
+static long _dma_buf_set_name(struct dma_buf *dmabuf, const char *name)
+{
+	spin_lock(&dmabuf->name_lock);
+	kfree(dmabuf->name);
+	dmabuf->name = name;
+	spin_unlock(&dmabuf->name_lock);
+
+	return 0;
+}
+
 /**
  * dma_buf_set_name - Set a name to a specific dma_buf to track the usage.
- * The name of the dma-buf buffer can only be set when the dma-buf is not
- * attached to any devices. It could theoritically support changing the
- * name of the dma-buf if the same piece of memory is used for multiple
- * purpose between different devices.
+ * It could support changing the name of the dma-buf if the same piece of
+ * memory is used for multiple purpose between different devices.
  *
  * @dmabuf: [in]     dmabuf buffer that will be renamed.
  * @buf:    [in]     A piece of userspace memory that contains the name of
@@ -337,7 +370,23 @@
  * devices, return -EBUSY.
  *
  */
-static long dma_buf_set_name(struct dma_buf *dmabuf, const char __user *buf)
+long dma_buf_set_name(struct dma_buf *dmabuf, const char *name)
+{
+	long ret = 0;
+	char *buf = kstrndup(name, DMA_BUF_NAME_LEN, GFP_KERNEL);
+
+	if (!buf)
+		return -ENOMEM;
+
+	ret = _dma_buf_set_name(dmabuf, buf);
+	if (ret)
+		kfree(buf);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(dma_buf_set_name);
+
+static long dma_buf_set_name_user(struct dma_buf *dmabuf, const char __user *buf)
 {
 	char *name = strndup_user(buf, DMA_BUF_NAME_LEN);
 	long ret = 0;
@@ -345,19 +394,10 @@
 	if (IS_ERR(name))
 		return PTR_ERR(name);
 
-	dma_resv_lock(dmabuf->resv, NULL);
-	if (!list_empty(&dmabuf->attachments)) {
-		ret = -EBUSY;
+	ret = _dma_buf_set_name(dmabuf, name);
+	if (ret)
 		kfree(name);
-		goto out_unlock;
-	}
-	spin_lock(&dmabuf->name_lock);
-	kfree(dmabuf->name);
-	dmabuf->name = name;
-	spin_unlock(&dmabuf->name_lock);
 
-out_unlock:
-	dma_resv_unlock(dmabuf->resv);
 	return ret;
 }
 
@@ -402,7 +442,7 @@
 
 	case DMA_BUF_SET_NAME_A:
 	case DMA_BUF_SET_NAME_B:
-		return dma_buf_set_name(dmabuf, (const char __user *)arg);
+		return dma_buf_set_name_user(dmabuf, (const char __user *)arg);
 
 	default:
 		return -ENOTTY;
@@ -436,10 +476,11 @@
 /*
  * is_dma_buf_file - Check if struct file* is associated with dma_buf
  */
-static inline int is_dma_buf_file(struct file *file)
+int is_dma_buf_file(struct file *file)
 {
 	return file->f_op == &dma_buf_fops;
 }
+EXPORT_SYMBOL_NS_GPL(is_dma_buf_file, MINIDUMP);
 
 static struct file *dma_buf_getfile(struct dma_buf *dmabuf, int flags)
 {
@@ -1218,6 +1259,30 @@
 }
 EXPORT_SYMBOL_GPL(dma_buf_begin_cpu_access);
 
+int dma_buf_begin_cpu_access_partial(struct dma_buf *dmabuf,
+				     enum dma_data_direction direction,
+				     unsigned int offset, unsigned int len)
+{
+	int ret = 0;
+
+	if (WARN_ON(!dmabuf))
+		return -EINVAL;
+
+	if (dmabuf->ops->begin_cpu_access_partial)
+		ret = dmabuf->ops->begin_cpu_access_partial(dmabuf, direction,
+							    offset, len);
+
+	/* Ensure that all fences are waited upon - but we first allow
+	 * the native handler the chance to do so more efficiently if it
+	 * chooses. A double invocation here will be reasonably cheap no-op.
+	 */
+	if (ret == 0)
+		ret = __dma_buf_begin_cpu_access(dmabuf, direction);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(dma_buf_begin_cpu_access_partial);
+
 /**
  * dma_buf_end_cpu_access - Must be called after accessing a dma_buf from the
  * cpu in the kernel context. Calls end_cpu_access to allow exporter-specific
@@ -1246,6 +1311,21 @@
 }
 EXPORT_SYMBOL_GPL(dma_buf_end_cpu_access);
 
+int dma_buf_end_cpu_access_partial(struct dma_buf *dmabuf,
+				   enum dma_data_direction direction,
+				   unsigned int offset, unsigned int len)
+{
+	int ret = 0;
+
+	WARN_ON(!dmabuf);
+
+	if (dmabuf->ops->end_cpu_access_partial)
+		ret = dmabuf->ops->end_cpu_access_partial(dmabuf, direction,
+							  offset, len);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(dma_buf_end_cpu_access_partial);
 
 /**
  * dma_buf_mmap - Setup up a userspace mmap with the given vma
@@ -1366,6 +1446,20 @@
 }
 EXPORT_SYMBOL_GPL(dma_buf_vunmap);
 
+int dma_buf_get_flags(struct dma_buf *dmabuf, unsigned long *flags)
+{
+	int ret = 0;
+
+	if (WARN_ON(!dmabuf) || !flags)
+		return -EINVAL;
+
+	if (dmabuf->ops->get_flags)
+		ret = dmabuf->ops->get_flags(dmabuf, flags);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(dma_buf_get_flags);
+
 #ifdef CONFIG_DEBUG_FS
 static int dma_buf_debug_show(struct seq_file *s, void *unused)
 {
@@ -1393,6 +1487,7 @@
 		if (ret)
 			goto error_unlock;
 
+		spin_lock(&buf_obj->name_lock);
 		seq_printf(s, "%08zu\t%08x\t%08x\t%08ld\t%s\t%08lu\t%s\n",
 				buf_obj->size,
 				buf_obj->file->f_flags, buf_obj->file->f_mode,
@@ -1400,6 +1495,7 @@
 				buf_obj->exp_name,
 				file_inode(buf_obj->file)->i_ino,
 				buf_obj->name ?: "");
+		spin_unlock(&buf_obj->name_lock);
 
 		robj = buf_obj->resv;
 		fence = dma_resv_excl_fence(robj);
diff --git a/drivers/dma-buf/dma-heap.c b/drivers/dma-buf/dma-heap.c
index 59d1588..c372cb9 100644
--- a/drivers/dma-buf/dma-heap.c
+++ b/drivers/dma-buf/dma-heap.c
@@ -20,6 +20,8 @@
 #include <linux/dma-heap.h>
 #include <uapi/linux/dma-heap.h>
 
+#include <trace/hooks/dmabuf.h>
+
 #define DEVNAME "dma_heap"
 
 #define NUM_HEAP_MINORS 128
@@ -31,6 +33,7 @@
  * @heap_devt		heap device node
  * @list		list head connecting to list of heaps
  * @heap_cdev		heap char device
+ * @heap_dev		heap device struct
  *
  * Represents a heap of memory from which buffers can be made.
  */
@@ -41,6 +44,8 @@
 	dev_t heap_devt;
 	struct list_head list;
 	struct cdev heap_cdev;
+	struct kref refcount;
+	struct device *heap_dev;
 };
 
 static LIST_HEAD(heap_list);
@@ -49,22 +54,65 @@
 static struct class *dma_heap_class;
 static DEFINE_XARRAY_ALLOC(dma_heap_minors);
 
-static int dma_heap_buffer_alloc(struct dma_heap *heap, size_t len,
-				 unsigned int fd_flags,
-				 unsigned int heap_flags)
+struct dma_heap *dma_heap_find(const char *name)
 {
-	struct dma_buf *dmabuf;
-	int fd;
+	struct dma_heap *h;
 
+	mutex_lock(&heap_list_lock);
+	list_for_each_entry(h, &heap_list, list) {
+		if (!strcmp(h->name, name)) {
+			kref_get(&h->refcount);
+			mutex_unlock(&heap_list_lock);
+			return h;
+		}
+	}
+	mutex_unlock(&heap_list_lock);
+	return NULL;
+}
+EXPORT_SYMBOL_GPL(dma_heap_find);
+
+
+void dma_heap_buffer_free(struct dma_buf *dmabuf)
+{
+	dma_buf_put(dmabuf);
+}
+EXPORT_SYMBOL_GPL(dma_heap_buffer_free);
+
+struct dma_buf *dma_heap_buffer_alloc(struct dma_heap *heap, size_t len,
+				      unsigned int fd_flags,
+				      unsigned int heap_flags)
+{
+	bool vh_valid = false;
+
+	trace_android_vh_dmabuf_heap_flags_validation(heap,
+		len, fd_flags, heap_flags, &vh_valid);
+
+	if (fd_flags & ~DMA_HEAP_VALID_FD_FLAGS)
+		return ERR_PTR(-EINVAL);
+
+	if (heap_flags & ~DMA_HEAP_VALID_HEAP_FLAGS && !vh_valid)
+		return ERR_PTR(-EINVAL);
 	/*
 	 * Allocations from all heaps have to begin
 	 * and end on page boundaries.
 	 */
 	len = PAGE_ALIGN(len);
 	if (!len)
-		return -EINVAL;
+		return ERR_PTR(-EINVAL);
 
-	dmabuf = heap->ops->allocate(heap, len, fd_flags, heap_flags);
+	return heap->ops->allocate(heap, len, fd_flags, heap_flags);
+}
+EXPORT_SYMBOL_GPL(dma_heap_buffer_alloc);
+
+int dma_heap_bufferfd_alloc(struct dma_heap *heap, size_t len,
+			    unsigned int fd_flags,
+			    unsigned int heap_flags)
+{
+	struct dma_buf *dmabuf;
+	int fd;
+
+	dmabuf = dma_heap_buffer_alloc(heap, len, fd_flags, heap_flags);
+
 	if (IS_ERR(dmabuf))
 		return PTR_ERR(dmabuf);
 
@@ -74,7 +122,9 @@
 		/* just return, as put will call release and that will free */
 	}
 	return fd;
+
 }
+EXPORT_SYMBOL_GPL(dma_heap_bufferfd_alloc);
 
 static int dma_heap_open(struct inode *inode, struct file *file)
 {
@@ -102,15 +152,9 @@
 	if (heap_allocation->fd)
 		return -EINVAL;
 
-	if (heap_allocation->fd_flags & ~DMA_HEAP_VALID_FD_FLAGS)
-		return -EINVAL;
-
-	if (heap_allocation->heap_flags & ~DMA_HEAP_VALID_HEAP_FLAGS)
-		return -EINVAL;
-
-	fd = dma_heap_buffer_alloc(heap, heap_allocation->len,
-				   heap_allocation->fd_flags,
-				   heap_allocation->heap_flags);
+	fd = dma_heap_bufferfd_alloc(heap, heap_allocation->len,
+				     heap_allocation->fd_flags,
+				     heap_allocation->heap_flags);
 	if (fd < 0)
 		return fd;
 
@@ -203,6 +247,47 @@
 {
 	return heap->priv;
 }
+EXPORT_SYMBOL_GPL(dma_heap_get_drvdata);
+
+static void dma_heap_release(struct kref *ref)
+{
+	struct dma_heap *heap = container_of(ref, struct dma_heap, refcount);
+	int minor = MINOR(heap->heap_devt);
+
+	/* Note, we already holding the heap_list_lock here */
+	list_del(&heap->list);
+
+	device_destroy(dma_heap_class, heap->heap_devt);
+	cdev_del(&heap->heap_cdev);
+	xa_erase(&dma_heap_minors, minor);
+
+	kfree(heap);
+}
+
+void dma_heap_put(struct dma_heap *h)
+{
+	/*
+	 * Take the heap_list_lock now to avoid racing with code
+	 * scanning the list and then taking a kref.
+	 */
+	mutex_lock(&heap_list_lock);
+	kref_put(&h->refcount, dma_heap_release);
+	mutex_unlock(&heap_list_lock);
+}
+EXPORT_SYMBOL_GPL(dma_heap_put);
+
+/**
+ * dma_heap_get_dev() - get device struct for the heap
+ * @heap: DMA-Heap to retrieve device struct from
+ *
+ * Returns:
+ * The device struct for the heap.
+ */
+struct device *dma_heap_get_dev(struct dma_heap *heap)
+{
+	return heap->heap_dev;
+}
+EXPORT_SYMBOL_GPL(dma_heap_get_dev);
 
 /**
  * dma_heap_get_name() - get heap name
@@ -215,11 +300,11 @@
 {
 	return heap->name;
 }
+EXPORT_SYMBOL_GPL(dma_heap_get_name);
 
 struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info)
 {
 	struct dma_heap *heap, *h, *err_ret;
-	struct device *dev_ret;
 	unsigned int minor;
 	int ret;
 
@@ -237,6 +322,7 @@
 	if (!heap)
 		return ERR_PTR(-ENOMEM);
 
+	kref_init(&heap->refcount);
 	heap->name = exp_info->name;
 	heap->ops = exp_info->ops;
 	heap->priv = exp_info->priv;
@@ -261,17 +347,20 @@
 		goto err1;
 	}
 
-	dev_ret = device_create(dma_heap_class,
-				NULL,
-				heap->heap_devt,
-				NULL,
-				heap->name);
-	if (IS_ERR(dev_ret)) {
+	heap->heap_dev = device_create(dma_heap_class,
+				       NULL,
+				       heap->heap_devt,
+				       NULL,
+				       heap->name);
+	if (IS_ERR(heap->heap_dev)) {
 		pr_err("dma_heap: Unable to create device\n");
-		err_ret = ERR_CAST(dev_ret);
+		err_ret = ERR_CAST(heap->heap_dev);
 		goto err2;
 	}
 
+	/* Make sure it doesn't disappear on us */
+	heap->heap_dev = get_device(heap->heap_dev);
+
 	mutex_lock(&heap_list_lock);
 	/* check the name is unique */
 	list_for_each_entry(h, &heap_list, list) {
@@ -280,6 +369,7 @@
 			pr_err("dma_heap: Already registered heap named %s\n",
 			       exp_info->name);
 			err_ret = ERR_PTR(-EINVAL);
+			put_device(heap->heap_dev);
 			goto err3;
 		}
 	}
@@ -300,27 +390,88 @@
 	kfree(heap);
 	return err_ret;
 }
+EXPORT_SYMBOL_GPL(dma_heap_add);
 
 static char *dma_heap_devnode(struct device *dev, umode_t *mode)
 {
 	return kasprintf(GFP_KERNEL, "dma_heap/%s", dev_name(dev));
 }
 
+static ssize_t total_pools_kb_show(struct kobject *kobj,
+				   struct kobj_attribute *attr, char *buf)
+{
+	struct dma_heap *heap;
+	u64 total_pool_size = 0;
+
+	mutex_lock(&heap_list_lock);
+	list_for_each_entry(heap, &heap_list, list) {
+		if (heap->ops->get_pool_size)
+			total_pool_size += heap->ops->get_pool_size(heap);
+	}
+	mutex_unlock(&heap_list_lock);
+
+	return sysfs_emit(buf, "%llu\n", total_pool_size / 1024);
+}
+
+static struct kobj_attribute total_pools_kb_attr =
+	__ATTR_RO(total_pools_kb);
+
+static struct attribute *dma_heap_sysfs_attrs[] = {
+	&total_pools_kb_attr.attr,
+	NULL,
+};
+
+ATTRIBUTE_GROUPS(dma_heap_sysfs);
+
+static struct kobject *dma_heap_kobject;
+
+static int dma_heap_sysfs_setup(void)
+{
+	int ret;
+
+	dma_heap_kobject = kobject_create_and_add("dma_heap", kernel_kobj);
+	if (!dma_heap_kobject)
+		return -ENOMEM;
+
+	ret = sysfs_create_groups(dma_heap_kobject, dma_heap_sysfs_groups);
+	if (ret) {
+		kobject_put(dma_heap_kobject);
+		return ret;
+	}
+
+	return 0;
+}
+
+static void dma_heap_sysfs_teardown(void)
+{
+	kobject_put(dma_heap_kobject);
+}
+
 static int dma_heap_init(void)
 {
 	int ret;
 
-	ret = alloc_chrdev_region(&dma_heap_devt, 0, NUM_HEAP_MINORS, DEVNAME);
+	ret = dma_heap_sysfs_setup();
 	if (ret)
 		return ret;
 
+	ret = alloc_chrdev_region(&dma_heap_devt, 0, NUM_HEAP_MINORS, DEVNAME);
+	if (ret)
+		goto err_chrdev;
+
 	dma_heap_class = class_create(THIS_MODULE, DEVNAME);
 	if (IS_ERR(dma_heap_class)) {
-		unregister_chrdev_region(dma_heap_devt, NUM_HEAP_MINORS);
-		return PTR_ERR(dma_heap_class);
+		ret = PTR_ERR(dma_heap_class);
+		goto err_class;
 	}
 	dma_heap_class->devnode = dma_heap_devnode;
 
 	return 0;
+
+err_class:
+	unregister_chrdev_region(dma_heap_devt, NUM_HEAP_MINORS);
+err_chrdev:
+	dma_heap_sysfs_teardown();
+	return ret;
 }
 subsys_initcall(dma_heap_init);
diff --git a/drivers/dma-buf/heaps/Kconfig b/drivers/dma-buf/heaps/Kconfig
index a5eef06..ff52efa 100644
--- a/drivers/dma-buf/heaps/Kconfig
+++ b/drivers/dma-buf/heaps/Kconfig
@@ -1,12 +1,22 @@
+menuconfig DMABUF_HEAPS_DEFERRED_FREE
+	bool "DMA-BUF heaps deferred-free library"
+	help
+	  Choose this option to enable the DMA-BUF heaps deferred-free library.
+
+menuconfig DMABUF_HEAPS_PAGE_POOL
+	bool "DMA-BUF heaps page-pool library"
+	help
+	  Choose this option to enable the DMA-BUF heaps page-pool library.
+
 config DMABUF_HEAPS_SYSTEM
-	bool "DMA-BUF System Heap"
-	depends on DMABUF_HEAPS
+	tristate "DMA-BUF System Heap"
+	depends on DMABUF_HEAPS && DMABUF_HEAPS_DEFERRED_FREE && DMABUF_HEAPS_PAGE_POOL
 	help
 	  Choose this option to enable the system dmabuf heap. The system heap
 	  is backed by pages from the buddy allocator. If in doubt, say Y.
 
 config DMABUF_HEAPS_CMA
-	bool "DMA-BUF CMA Heap"
+	tristate "DMA-BUF CMA Heap"
 	depends on DMABUF_HEAPS && DMA_CMA
 	help
 	  Choose this option to enable dma-buf CMA heap. This heap is backed
diff --git a/drivers/dma-buf/heaps/Makefile b/drivers/dma-buf/heaps/Makefile
index 97446779..4d4cd94 100644
--- a/drivers/dma-buf/heaps/Makefile
+++ b/drivers/dma-buf/heaps/Makefile
@@ -1,3 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0
+obj-$(CONFIG_DMABUF_HEAPS_DEFERRED_FREE) += deferred-free-helper.o
+obj-$(CONFIG_DMABUF_HEAPS_PAGE_POOL)	+= page_pool.o
 obj-$(CONFIG_DMABUF_HEAPS_SYSTEM)	+= system_heap.o
 obj-$(CONFIG_DMABUF_HEAPS_CMA)		+= cma_heap.o
diff --git a/drivers/dma-buf/heaps/cma_heap.c b/drivers/dma-buf/heaps/cma_heap.c
index 83f02bd..32fb552 100644
--- a/drivers/dma-buf/heaps/cma_heap.c
+++ b/drivers/dma-buf/heaps/cma_heap.c
@@ -99,9 +99,10 @@
 {
 	struct dma_heap_attachment *a = attachment->priv;
 	struct sg_table *table = &a->table;
+	int attrs = attachment->dma_map_attrs;
 	int ret;
 
-	ret = dma_map_sgtable(attachment->dev, table, direction, 0);
+	ret = dma_map_sgtable(attachment->dev, table, direction, attrs);
 	if (ret)
 		return ERR_PTR(-ENOMEM);
 	a->mapped = true;
@@ -113,9 +114,10 @@
 				   enum dma_data_direction direction)
 {
 	struct dma_heap_attachment *a = attachment->priv;
+	int attrs = attachment->dma_map_attrs;
 
 	a->mapped = false;
-	dma_unmap_sgtable(attachment->dev, table, direction, 0);
+	dma_unmap_sgtable(attachment->dev, table, direction, attrs);
 }
 
 static int cma_heap_dma_buf_begin_cpu_access(struct dma_buf *dmabuf,
diff --git a/drivers/dma-buf/heaps/deferred-free-helper.c b/drivers/dma-buf/heaps/deferred-free-helper.c
new file mode 100644
index 0000000..e19c8b6
--- /dev/null
+++ b/drivers/dma-buf/heaps/deferred-free-helper.c
@@ -0,0 +1,138 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Deferred dmabuf freeing helper
+ *
+ * Copyright (C) 2020 Linaro, Ltd.
+ *
+ * Based on the ION page pool code
+ * Copyright (C) 2011 Google, Inc.
+ */
+
+#include <linux/freezer.h>
+#include <linux/list.h>
+#include <linux/slab.h>
+#include <linux/swap.h>
+#include <linux/sched/signal.h>
+
+#include "deferred-free-helper.h"
+
+static LIST_HEAD(free_list);
+static size_t list_nr_pages;
+wait_queue_head_t freelist_waitqueue;
+struct task_struct *freelist_task;
+static DEFINE_SPINLOCK(free_list_lock);
+
+void deferred_free(struct deferred_freelist_item *item,
+		   void (*free)(struct deferred_freelist_item*,
+				enum df_reason),
+		   size_t nr_pages)
+{
+	unsigned long flags;
+
+	INIT_LIST_HEAD(&item->list);
+	item->nr_pages = nr_pages;
+	item->free = free;
+
+	spin_lock_irqsave(&free_list_lock, flags);
+	list_add(&item->list, &free_list);
+	list_nr_pages += nr_pages;
+	spin_unlock_irqrestore(&free_list_lock, flags);
+	wake_up(&freelist_waitqueue);
+}
+EXPORT_SYMBOL_GPL(deferred_free);
+
+static size_t free_one_item(enum df_reason reason)
+{
+	unsigned long flags;
+	size_t nr_pages;
+	struct deferred_freelist_item *item;
+
+	spin_lock_irqsave(&free_list_lock, flags);
+	if (list_empty(&free_list)) {
+		spin_unlock_irqrestore(&free_list_lock, flags);
+		return 0;
+	}
+	item = list_first_entry(&free_list, struct deferred_freelist_item, list);
+	list_del(&item->list);
+	nr_pages = item->nr_pages;
+	list_nr_pages -= nr_pages;
+	spin_unlock_irqrestore(&free_list_lock, flags);
+
+	item->free(item, reason);
+	return nr_pages;
+}
+
+static unsigned long get_freelist_nr_pages(void)
+{
+	unsigned long nr_pages;
+	unsigned long flags;
+
+	spin_lock_irqsave(&free_list_lock, flags);
+	nr_pages = list_nr_pages;
+	spin_unlock_irqrestore(&free_list_lock, flags);
+	return nr_pages;
+}
+
+static unsigned long freelist_shrink_count(struct shrinker *shrinker,
+					   struct shrink_control *sc)
+{
+	return get_freelist_nr_pages();
+}
+
+static unsigned long freelist_shrink_scan(struct shrinker *shrinker,
+					  struct shrink_control *sc)
+{
+	unsigned long total_freed = 0;
+
+	if (sc->nr_to_scan == 0)
+		return 0;
+
+	while (total_freed < sc->nr_to_scan) {
+		size_t pages_freed = free_one_item(DF_UNDER_PRESSURE);
+
+		if (!pages_freed)
+			break;
+
+		total_freed += pages_freed;
+	}
+
+	return total_freed;
+}
+
+static struct shrinker freelist_shrinker = {
+	.count_objects = freelist_shrink_count,
+	.scan_objects = freelist_shrink_scan,
+	.seeks = DEFAULT_SEEKS,
+	.batch = 0,
+};
+
+static int deferred_free_thread(void *data)
+{
+	while (true) {
+		wait_event_freezable(freelist_waitqueue,
+				     get_freelist_nr_pages() > 0);
+
+		free_one_item(DF_NORMAL);
+	}
+
+	return 0;
+}
+
+static int deferred_freelist_init(void)
+{
+	list_nr_pages = 0;
+
+	init_waitqueue_head(&freelist_waitqueue);
+	freelist_task = kthread_run(deferred_free_thread, NULL,
+				    "%s", "dmabuf-deferred-free-worker");
+	if (IS_ERR(freelist_task)) {
+		pr_err("Creating thread for deferred free failed\n");
+		return -1;
+	}
+	sched_set_normal(freelist_task, 19);
+
+	return register_shrinker(&freelist_shrinker);
+}
+module_init(deferred_freelist_init);
+MODULE_LICENSE("GPL v2");
+
diff --git a/drivers/dma-buf/heaps/deferred-free-helper.h b/drivers/dma-buf/heaps/deferred-free-helper.h
new file mode 100644
index 0000000..1194032
--- /dev/null
+++ b/drivers/dma-buf/heaps/deferred-free-helper.h
@@ -0,0 +1,55 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#ifndef DEFERRED_FREE_HELPER_H
+#define DEFERRED_FREE_HELPER_H
+
+/**
+ * df_reason - enum for reason why item was freed
+ *
+ * This provides a reason for why the free function was called
+ * on the item. This is useful when deferred_free is used in
+ * combination with a pagepool, so under pressure the page can
+ * be immediately freed.
+ *
+ * DF_NORMAL:         Normal deferred free
+ *
+ * DF_UNDER_PRESSURE: Free was called because the system
+ *                    is under memory pressure. Usually
+ *                    from a shrinker. Avoid allocating
+ *                    memory in the free call, as it may
+ *                    fail.
+ */
+enum df_reason {
+	DF_NORMAL,
+	DF_UNDER_PRESSURE,
+};
+
+/**
+ * deferred_freelist_item - item structure for deferred freelist
+ *
+ * This is to be added to the structure for whatever you want to
+ * defer freeing on.
+ *
+ * @nr_pages: number of pages used by item to be freed
+ * @free: function pointer to be called when freeing the item
+ * @list: list entry for the deferred list
+ */
+struct deferred_freelist_item {
+	size_t nr_pages;
+	void (*free)(struct deferred_freelist_item *i,
+		     enum df_reason reason);
+	struct list_head list;
+};
+
+/**
+ * deferred_free - call to add item to the deferred free list
+ *
+ * @item: Pointer to deferred_freelist_item field of a structure
+ * @free: Function pointer to the free call
+ * @nr_pages: number of pages to be freed
+ */
+void deferred_free(struct deferred_freelist_item *item,
+		   void (*free)(struct deferred_freelist_item *i,
+				enum df_reason reason),
+		   size_t nr_pages);
+#endif
diff --git a/drivers/dma-buf/heaps/page_pool.c b/drivers/dma-buf/heaps/page_pool.c
new file mode 100644
index 0000000..9d3ddb5
--- /dev/null
+++ b/drivers/dma-buf/heaps/page_pool.c
@@ -0,0 +1,267 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * DMA BUF page pool system
+ *
+ * Copyright (C) 2020 Linaro Ltd.
+ *
+ * Based on the ION page pool code
+ * Copyright (C) 2011 Google, Inc.
+ */
+
+#include <linux/freezer.h>
+#include <linux/list.h>
+#include <linux/slab.h>
+#include <linux/spinlock.h>
+#include <linux/swap.h>
+#include <linux/sched/signal.h>
+#include "page_pool.h"
+
+struct dmabuf_page_pool_with_spinlock {
+	struct dmabuf_page_pool pool;
+	struct spinlock spinlock;
+};
+
+static LIST_HEAD(pool_list);
+static DEFINE_MUTEX(pool_list_lock);
+
+static inline
+struct page *dmabuf_page_pool_alloc_pages(struct dmabuf_page_pool *pool)
+{
+	if (fatal_signal_pending(current))
+		return NULL;
+	return alloc_pages(pool->gfp_mask, pool->order);
+}
+
+static inline void dmabuf_page_pool_free_pages(struct dmabuf_page_pool *pool,
+					       struct page *page)
+{
+	__free_pages(page, pool->order);
+}
+
+static void dmabuf_page_pool_add(struct dmabuf_page_pool *pool, struct page *page)
+{
+	int index;
+	struct dmabuf_page_pool_with_spinlock *container_pool =
+		container_of(pool, struct dmabuf_page_pool_with_spinlock, pool);
+
+	if (PageHighMem(page))
+		index = POOL_HIGHPAGE;
+	else
+		index = POOL_LOWPAGE;
+
+	spin_lock(&container_pool->spinlock);
+	list_add_tail(&page->lru, &pool->items[index]);
+	pool->count[index]++;
+	spin_unlock(&container_pool->spinlock);
+	mod_node_page_state(page_pgdat(page), NR_KERNEL_MISC_RECLAIMABLE,
+			    1 << pool->order);
+}
+
+static struct page *dmabuf_page_pool_remove(struct dmabuf_page_pool *pool, int index)
+{
+	struct page *page;
+	struct dmabuf_page_pool_with_spinlock *container_pool =
+		container_of(pool, struct dmabuf_page_pool_with_spinlock, pool);
+
+	spin_lock(&container_pool->spinlock);
+	page = list_first_entry_or_null(&pool->items[index], struct page, lru);
+	if (page) {
+		pool->count[index]--;
+		list_del(&page->lru);
+		spin_unlock(&container_pool->spinlock);
+		mod_node_page_state(page_pgdat(page), NR_KERNEL_MISC_RECLAIMABLE,
+				    -(1 << pool->order));
+		goto out;
+	}
+	spin_unlock(&container_pool->spinlock);
+
+out:
+	return page;
+}
+
+static struct page *dmabuf_page_pool_fetch(struct dmabuf_page_pool *pool)
+{
+	struct page *page = NULL;
+
+	page = dmabuf_page_pool_remove(pool, POOL_HIGHPAGE);
+	if (!page)
+		page = dmabuf_page_pool_remove(pool, POOL_LOWPAGE);
+
+	return page;
+}
+
+struct page *dmabuf_page_pool_alloc(struct dmabuf_page_pool *pool)
+{
+	struct page *page = NULL;
+
+	if (WARN_ON(!pool))
+		return NULL;
+
+	page = dmabuf_page_pool_fetch(pool);
+
+	if (!page)
+		page = dmabuf_page_pool_alloc_pages(pool);
+	return page;
+}
+EXPORT_SYMBOL_GPL(dmabuf_page_pool_alloc);
+
+void dmabuf_page_pool_free(struct dmabuf_page_pool *pool, struct page *page)
+{
+	if (WARN_ON(pool->order != compound_order(page)))
+		return;
+
+	dmabuf_page_pool_add(pool, page);
+}
+EXPORT_SYMBOL_GPL(dmabuf_page_pool_free);
+
+static int dmabuf_page_pool_total(struct dmabuf_page_pool *pool, bool high)
+{
+	int count = pool->count[POOL_LOWPAGE];
+
+	if (high)
+		count += pool->count[POOL_HIGHPAGE];
+
+	return count << pool->order;
+}
+
+struct dmabuf_page_pool *dmabuf_page_pool_create(gfp_t gfp_mask, unsigned int order)
+{
+	struct dmabuf_page_pool *pool;
+	struct dmabuf_page_pool_with_spinlock *container_pool =
+		kmalloc(sizeof(*container_pool), GFP_KERNEL);
+	int i;
+
+	if (!container_pool)
+		return NULL;
+
+	spin_lock_init(&container_pool->spinlock);
+	pool = &container_pool->pool;
+
+	for (i = 0; i < POOL_TYPE_SIZE; i++) {
+		pool->count[i] = 0;
+		INIT_LIST_HEAD(&pool->items[i]);
+	}
+	pool->gfp_mask = gfp_mask | __GFP_COMP;
+	pool->order = order;
+	mutex_init(&pool->mutex); /* No longer used! */
+
+	mutex_lock(&pool_list_lock);
+	list_add(&pool->list, &pool_list);
+	mutex_unlock(&pool_list_lock);
+
+	return pool;
+}
+EXPORT_SYMBOL_GPL(dmabuf_page_pool_create);
+
+void dmabuf_page_pool_destroy(struct dmabuf_page_pool *pool)
+{
+	struct page *page;
+	struct dmabuf_page_pool_with_spinlock *container_pool;
+	int i;
+
+	/* Remove us from the pool list */
+	mutex_lock(&pool_list_lock);
+	list_del(&pool->list);
+	mutex_unlock(&pool_list_lock);
+
+	/* Free any remaining pages in the pool */
+	for (i = 0; i < POOL_TYPE_SIZE; i++) {
+		while ((page = dmabuf_page_pool_remove(pool, i)))
+			dmabuf_page_pool_free_pages(pool, page);
+	}
+
+	container_pool = container_of(pool, struct dmabuf_page_pool_with_spinlock, pool);
+	kfree(container_pool);
+}
+EXPORT_SYMBOL_GPL(dmabuf_page_pool_destroy);
+
+static int dmabuf_page_pool_do_shrink(struct dmabuf_page_pool *pool, gfp_t gfp_mask,
+				      int nr_to_scan)
+{
+	int freed = 0;
+	bool high;
+
+	if (current_is_kswapd())
+		high = true;
+	else
+		high = !!(gfp_mask & __GFP_HIGHMEM);
+
+	if (nr_to_scan == 0)
+		return dmabuf_page_pool_total(pool, high);
+
+	while (freed < nr_to_scan) {
+		struct page *page;
+
+		/* Try to free low pages first */
+		page = dmabuf_page_pool_remove(pool, POOL_LOWPAGE);
+		if (!page)
+			page = dmabuf_page_pool_remove(pool, POOL_HIGHPAGE);
+
+		if (!page)
+			break;
+
+		dmabuf_page_pool_free_pages(pool, page);
+		freed += (1 << pool->order);
+	}
+
+	return freed;
+}
+
+static int dmabuf_page_pool_shrink(gfp_t gfp_mask, int nr_to_scan)
+{
+	struct dmabuf_page_pool *pool;
+	int nr_total = 0;
+	int nr_freed;
+	int only_scan = 0;
+
+	if (!nr_to_scan)
+		only_scan = 1;
+
+	mutex_lock(&pool_list_lock);
+	list_for_each_entry(pool, &pool_list, list) {
+		if (only_scan) {
+			nr_total += dmabuf_page_pool_do_shrink(pool,
+							       gfp_mask,
+							       nr_to_scan);
+		} else {
+			nr_freed = dmabuf_page_pool_do_shrink(pool,
+							      gfp_mask,
+							      nr_to_scan);
+			nr_to_scan -= nr_freed;
+			nr_total += nr_freed;
+			if (nr_to_scan <= 0)
+				break;
+		}
+	}
+	mutex_unlock(&pool_list_lock);
+
+	return nr_total;
+}
+
+static unsigned long dmabuf_page_pool_shrink_count(struct shrinker *shrinker,
+						   struct shrink_control *sc)
+{
+	return dmabuf_page_pool_shrink(sc->gfp_mask, 0);
+}
+
+static unsigned long dmabuf_page_pool_shrink_scan(struct shrinker *shrinker,
+						  struct shrink_control *sc)
+{
+	if (sc->nr_to_scan == 0)
+		return 0;
+	return dmabuf_page_pool_shrink(sc->gfp_mask, sc->nr_to_scan);
+}
+
+struct shrinker pool_shrinker = {
+	.count_objects = dmabuf_page_pool_shrink_count,
+	.scan_objects = dmabuf_page_pool_shrink_scan,
+	.seeks = DEFAULT_SEEKS,
+	.batch = 0,
+};
+
+static int dmabuf_page_pool_init_shrinker(void)
+{
+	return register_shrinker(&pool_shrinker);
+}
+module_init(dmabuf_page_pool_init_shrinker);
+MODULE_LICENSE("GPL v2");
diff --git a/drivers/dma-buf/heaps/page_pool.h b/drivers/dma-buf/heaps/page_pool.h
new file mode 100644
index 0000000..b578e18
--- /dev/null
+++ b/drivers/dma-buf/heaps/page_pool.h
@@ -0,0 +1,55 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * DMA BUF PagePool implementation
+ * Based on earlier ION code by Google
+ *
+ * Copyright (C) 2011 Google, Inc.
+ * Copyright (C) 2020 Linaro Ltd.
+ */
+
+#ifndef _DMABUF_PAGE_POOL_H
+#define _DMABUF_PAGE_POOL_H
+
+#include <linux/device.h>
+#include <linux/kref.h>
+#include <linux/mm_types.h>
+#include <linux/mutex.h>
+#include <linux/shrinker.h>
+#include <linux/types.h>
+
+/* page types we track in the pool */
+enum {
+	POOL_LOWPAGE,      /* Clean lowmem pages */
+	POOL_HIGHPAGE,     /* Clean highmem pages */
+
+	POOL_TYPE_SIZE,
+};
+
+/**
+ * struct dmabuf_page_pool - pagepool struct
+ * @count[]:		array of number of pages of that type in the pool
+ * @items[]:		array of list of pages of the specific type
+ * @mutex:		lock protecting this struct and especially the count
+ *			item list
+ * @gfp_mask:		gfp_mask to use from alloc
+ * @order:		order of pages in the pool
+ * @list:		list node for list of pools
+ *
+ * Allows you to keep a pool of pre allocated pages to use
+ */
+struct dmabuf_page_pool {
+	int count[POOL_TYPE_SIZE];
+	struct list_head items[POOL_TYPE_SIZE];
+	struct mutex mutex; /* No longer used! */
+	gfp_t gfp_mask;
+	unsigned int order;
+	struct list_head list;
+};
+
+struct dmabuf_page_pool *dmabuf_page_pool_create(gfp_t gfp_mask,
+						 unsigned int order);
+void dmabuf_page_pool_destroy(struct dmabuf_page_pool *pool);
+struct page *dmabuf_page_pool_alloc(struct dmabuf_page_pool *pool);
+void dmabuf_page_pool_free(struct dmabuf_page_pool *pool, struct page *page);
+
+#endif /* _DMABUF_PAGE_POOL_H */
diff --git a/drivers/dma-buf/heaps/system_heap.c b/drivers/dma-buf/heaps/system_heap.c
index 8660508..3971676a 100644
--- a/drivers/dma-buf/heaps/system_heap.c
+++ b/drivers/dma-buf/heaps/system_heap.c
@@ -21,7 +21,10 @@
 #include <linux/slab.h>
 #include <linux/vmalloc.h>
 
+#include "page_pool.h"
+
 static struct dma_heap *sys_heap;
+static struct dma_heap *sys_uncached_heap;
 
 struct system_heap_buffer {
 	struct dma_heap *heap;
@@ -31,6 +34,8 @@
 	struct sg_table sg_table;
 	int vmap_cnt;
 	void *vaddr;
+
+	bool uncached;
 };
 
 struct dma_heap_attachment {
@@ -38,13 +43,16 @@
 	struct sg_table *table;
 	struct list_head list;
 	bool mapped;
+
+	bool uncached;
 };
 
+#define LOW_ORDER_GFP (GFP_HIGHUSER | __GFP_ZERO | __GFP_COMP)
+#define MID_ORDER_GFP (LOW_ORDER_GFP | __GFP_NOWARN)
 #define HIGH_ORDER_GFP  (((GFP_HIGHUSER | __GFP_ZERO | __GFP_NOWARN \
 				| __GFP_NORETRY) & ~__GFP_RECLAIM) \
 				| __GFP_COMP)
-#define LOW_ORDER_GFP (GFP_HIGHUSER | __GFP_ZERO | __GFP_COMP)
-static gfp_t order_flags[] = {HIGH_ORDER_GFP, LOW_ORDER_GFP, LOW_ORDER_GFP};
+static gfp_t order_flags[] = {HIGH_ORDER_GFP, MID_ORDER_GFP, LOW_ORDER_GFP};
 /*
  * The selection of the orders used for allocation (1MB, 64K, 4K) is designed
  * to match with the sizes often found in IOMMUs. Using order 4 pages instead
@@ -53,6 +61,7 @@
  */
 static const unsigned int orders[] = {8, 4, 0};
 #define NUM_ORDERS ARRAY_SIZE(orders)
+struct dmabuf_page_pool *pools[NUM_ORDERS];
 
 static struct sg_table *dup_sg_table(struct sg_table *table)
 {
@@ -100,7 +109,7 @@
 	a->dev = attachment->dev;
 	INIT_LIST_HEAD(&a->list);
 	a->mapped = false;
-
+	a->uncached = buffer->uncached;
 	attachment->priv = a;
 
 	mutex_lock(&buffer->lock);
@@ -130,9 +139,13 @@
 {
 	struct dma_heap_attachment *a = attachment->priv;
 	struct sg_table *table = a->table;
+	int attr = attachment->dma_map_attrs;
 	int ret;
 
-	ret = dma_map_sgtable(attachment->dev, table, direction, 0);
+	if (a->uncached)
+		attr |= DMA_ATTR_SKIP_CPU_SYNC;
+
+	ret = dma_map_sgtable(attachment->dev, table, direction, attr);
 	if (ret)
 		return ERR_PTR(ret);
 
@@ -145,9 +158,12 @@
 				      enum dma_data_direction direction)
 {
 	struct dma_heap_attachment *a = attachment->priv;
+	int attr = attachment->dma_map_attrs;
 
+	if (a->uncached)
+		attr |= DMA_ATTR_SKIP_CPU_SYNC;
 	a->mapped = false;
-	dma_unmap_sgtable(attachment->dev, table, direction, 0);
+	dma_unmap_sgtable(attachment->dev, table, direction, attr);
 }
 
 static int system_heap_dma_buf_begin_cpu_access(struct dma_buf *dmabuf,
@@ -161,10 +177,12 @@
 	if (buffer->vmap_cnt)
 		invalidate_kernel_vmap_range(buffer->vaddr, buffer->len);
 
-	list_for_each_entry(a, &buffer->attachments, list) {
-		if (!a->mapped)
-			continue;
-		dma_sync_sgtable_for_cpu(a->dev, a->table, direction);
+	if (!buffer->uncached) {
+		list_for_each_entry(a, &buffer->attachments, list) {
+			if (!a->mapped)
+				continue;
+			dma_sync_sgtable_for_cpu(a->dev, a->table, direction);
+		}
 	}
 	mutex_unlock(&buffer->lock);
 
@@ -182,10 +200,12 @@
 	if (buffer->vmap_cnt)
 		flush_kernel_vmap_range(buffer->vaddr, buffer->len);
 
-	list_for_each_entry(a, &buffer->attachments, list) {
-		if (!a->mapped)
-			continue;
-		dma_sync_sgtable_for_device(a->dev, a->table, direction);
+	if (!buffer->uncached) {
+		list_for_each_entry(a, &buffer->attachments, list) {
+			if (!a->mapped)
+				continue;
+			dma_sync_sgtable_for_device(a->dev, a->table, direction);
+		}
 	}
 	mutex_unlock(&buffer->lock);
 
@@ -200,6 +220,9 @@
 	struct sg_page_iter piter;
 	int ret;
 
+	if (buffer->uncached)
+		vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
+
 	for_each_sgtable_page(table, &piter, vma->vm_pgoff) {
 		struct page *page = sg_page_iter_page(&piter);
 
@@ -221,17 +244,21 @@
 	struct page **pages = vmalloc(sizeof(struct page *) * npages);
 	struct page **tmp = pages;
 	struct sg_page_iter piter;
+	pgprot_t pgprot = PAGE_KERNEL;
 	void *vaddr;
 
 	if (!pages)
 		return ERR_PTR(-ENOMEM);
 
+	if (buffer->uncached)
+		pgprot = pgprot_writecombine(PAGE_KERNEL);
+
 	for_each_sgtable_page(table, &piter, 0) {
 		WARN_ON(tmp - pages >= npages);
 		*tmp++ = sg_page_iter_page(&piter);
 	}
 
-	vaddr = vmap(pages, npages, VM_MAP, PAGE_KERNEL);
+	vaddr = vmap(pages, npages, VM_MAP, pgprot);
 	vfree(pages);
 
 	if (!vaddr)
@@ -281,18 +308,43 @@
 	dma_buf_map_clear(map);
 }
 
+static int system_heap_zero_buffer(struct system_heap_buffer *buffer)
+{
+	struct sg_table *sgt = &buffer->sg_table;
+	struct sg_page_iter piter;
+	struct page *p;
+	void *vaddr;
+	int ret = 0;
+
+	for_each_sgtable_page(sgt, &piter, 0) {
+		p = sg_page_iter_page(&piter);
+		vaddr = kmap_local_page(p);
+		memset(vaddr, 0, PAGE_SIZE);
+		kunmap_local(vaddr);
+	}
+
+	return ret;
+}
+
 static void system_heap_dma_buf_release(struct dma_buf *dmabuf)
 {
 	struct system_heap_buffer *buffer = dmabuf->priv;
 	struct sg_table *table;
 	struct scatterlist *sg;
-	int i;
+	int i, j;
+
+	/* Zero the buffer pages before adding back to the pool */
+	system_heap_zero_buffer(buffer);
 
 	table = &buffer->sg_table;
 	for_each_sgtable_sg(table, sg, i) {
 		struct page *page = sg_page(sg);
 
-		__free_pages(page, compound_order(page));
+		for (j = 0; j < NUM_ORDERS; j++) {
+			if (compound_order(page) == orders[j])
+				break;
+		}
+		dmabuf_page_pool_free(pools[j], page);
 	}
 	sg_free_table(table);
 	kfree(buffer);
@@ -322,8 +374,7 @@
 			continue;
 		if (max_order < orders[i])
 			continue;
-
-		page = alloc_pages(order_flags[i], orders[i]);
+		page = dmabuf_page_pool_alloc(pools[i]);
 		if (!page)
 			continue;
 		return page;
@@ -331,10 +382,11 @@
 	return NULL;
 }
 
-static struct dma_buf *system_heap_allocate(struct dma_heap *heap,
-					    unsigned long len,
-					    unsigned long fd_flags,
-					    unsigned long heap_flags)
+static struct dma_buf *system_heap_do_allocate(struct dma_heap *heap,
+					       unsigned long len,
+					       unsigned long fd_flags,
+					       unsigned long heap_flags,
+					       bool uncached)
 {
 	struct system_heap_buffer *buffer;
 	DEFINE_DMA_BUF_EXPORT_INFO(exp_info);
@@ -355,6 +407,7 @@
 	mutex_init(&buffer->lock);
 	buffer->heap = heap;
 	buffer->len = len;
+	buffer->uncached = uncached;
 
 	INIT_LIST_HEAD(&pages);
 	i = 0;
@@ -400,6 +453,18 @@
 		ret = PTR_ERR(dmabuf);
 		goto free_pages;
 	}
+
+	/*
+	 * For uncached buffers, we need to initially flush cpu cache, since
+	 * the __GFP_ZERO on the allocation means the zeroing was done by the
+	 * cpu and thus it is likely cached. Map (and implicitly flush) and
+	 * unmap it now so we don't get corruption later on.
+	 */
+	if (buffer->uncached) {
+		dma_map_sgtable(dma_heap_get_dev(heap), table, DMA_BIDIRECTIONAL, 0);
+		dma_unmap_sgtable(dma_heap_get_dev(heap), table, DMA_BIDIRECTIONAL, 0);
+	}
+
 	return dmabuf;
 
 free_pages:
@@ -417,13 +482,73 @@
 	return ERR_PTR(ret);
 }
 
+static struct dma_buf *system_heap_allocate(struct dma_heap *heap,
+					    unsigned long len,
+					    unsigned long fd_flags,
+					    unsigned long heap_flags)
+{
+	return system_heap_do_allocate(heap, len, fd_flags, heap_flags, false);
+}
+
+static long system_get_pool_size(struct dma_heap *heap)
+{
+	int i;
+	long num_pages = 0;
+	struct dmabuf_page_pool **pool;
+
+	pool = pools;
+	for (i = 0; i < NUM_ORDERS; i++, pool++) {
+		num_pages += ((*pool)->count[POOL_LOWPAGE] +
+			      (*pool)->count[POOL_HIGHPAGE]) << (*pool)->order;
+	}
+
+	return num_pages << PAGE_SHIFT;
+}
+
 static const struct dma_heap_ops system_heap_ops = {
 	.allocate = system_heap_allocate,
+	.get_pool_size = system_get_pool_size,
+};
+
+static struct dma_buf *system_uncached_heap_allocate(struct dma_heap *heap,
+						     unsigned long len,
+						     unsigned long fd_flags,
+						     unsigned long heap_flags)
+{
+	return system_heap_do_allocate(heap, len, fd_flags, heap_flags, true);
+}
+
+/* Dummy function to be used until we can call coerce_mask_and_coherent */
+static struct dma_buf *system_uncached_heap_not_initialized(struct dma_heap *heap,
+							    unsigned long len,
+							    unsigned long fd_flags,
+							    unsigned long heap_flags)
+{
+	return ERR_PTR(-EBUSY);
+}
+
+static struct dma_heap_ops system_uncached_heap_ops = {
+	/* After system_heap_create is complete, we will swap this */
+	.allocate = system_uncached_heap_not_initialized,
 };
 
 static int system_heap_create(void)
 {
 	struct dma_heap_export_info exp_info;
+	int i;
+
+	for (i = 0; i < NUM_ORDERS; i++) {
+		pools[i] = dmabuf_page_pool_create(order_flags[i], orders[i]);
+
+		if (IS_ERR(pools[i])) {
+			int j;
+
+			pr_err("%s: page pool creation failed!\n", __func__);
+			for (j = 0; j < i; j++)
+				dmabuf_page_pool_destroy(pools[j]);
+			return PTR_ERR(pools[i]);
+		}
+	}
 
 	exp_info.name = "system";
 	exp_info.ops = &system_heap_ops;
@@ -433,6 +558,18 @@
 	if (IS_ERR(sys_heap))
 		return PTR_ERR(sys_heap);
 
+	exp_info.name = "system-uncached";
+	exp_info.ops = &system_uncached_heap_ops;
+	exp_info.priv = NULL;
+
+	sys_uncached_heap = dma_heap_add(&exp_info);
+	if (IS_ERR(sys_uncached_heap))
+		return PTR_ERR(sys_uncached_heap);
+
+	dma_coerce_mask_and_coherent(dma_heap_get_dev(sys_uncached_heap), DMA_BIT_MASK(64));
+	mb(); /* make sure we only set allocate after dma_mask is set */
+	system_uncached_heap_ops.allocate = system_uncached_heap_allocate;
+
 	return 0;
 }
 module_init(system_heap_create);
diff --git a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c
index 6a0d55d..3a6514d 100644
--- a/drivers/extcon/extcon.c
+++ b/drivers/extcon/extcon.c
@@ -494,7 +494,7 @@
  *
  * Returns 0 if success or error number if fail.
  */
-int extcon_get_state(struct extcon_dev *edev, const unsigned int id)
+int extcon_get_state(struct extcon_dev *edev, unsigned int id)
 {
 	int index, state;
 	unsigned long flags;
diff --git a/drivers/firmware/arm_ffa/driver.c b/drivers/firmware/arm_ffa/driver.c
index e4fb0c1..93666a8 100644
--- a/drivers/firmware/arm_ffa/driver.c
+++ b/drivers/firmware/arm_ffa/driver.c
@@ -36,81 +36,6 @@
 #include "common.h"
 
 #define FFA_DRIVER_VERSION	FFA_VERSION_1_0
-
-#define FFA_SMC(calling_convention, func_num)				\
-	ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, (calling_convention),	\
-			   ARM_SMCCC_OWNER_STANDARD, (func_num))
-
-#define FFA_SMC_32(func_num)	FFA_SMC(ARM_SMCCC_SMC_32, (func_num))
-#define FFA_SMC_64(func_num)	FFA_SMC(ARM_SMCCC_SMC_64, (func_num))
-
-#define FFA_ERROR			FFA_SMC_32(0x60)
-#define FFA_SUCCESS			FFA_SMC_32(0x61)
-#define FFA_INTERRUPT			FFA_SMC_32(0x62)
-#define FFA_VERSION			FFA_SMC_32(0x63)
-#define FFA_FEATURES			FFA_SMC_32(0x64)
-#define FFA_RX_RELEASE			FFA_SMC_32(0x65)
-#define FFA_RXTX_MAP			FFA_SMC_32(0x66)
-#define FFA_FN64_RXTX_MAP		FFA_SMC_64(0x66)
-#define FFA_RXTX_UNMAP			FFA_SMC_32(0x67)
-#define FFA_PARTITION_INFO_GET		FFA_SMC_32(0x68)
-#define FFA_ID_GET			FFA_SMC_32(0x69)
-#define FFA_MSG_POLL			FFA_SMC_32(0x6A)
-#define FFA_MSG_WAIT			FFA_SMC_32(0x6B)
-#define FFA_YIELD			FFA_SMC_32(0x6C)
-#define FFA_RUN				FFA_SMC_32(0x6D)
-#define FFA_MSG_SEND			FFA_SMC_32(0x6E)
-#define FFA_MSG_SEND_DIRECT_REQ		FFA_SMC_32(0x6F)
-#define FFA_FN64_MSG_SEND_DIRECT_REQ	FFA_SMC_64(0x6F)
-#define FFA_MSG_SEND_DIRECT_RESP	FFA_SMC_32(0x70)
-#define FFA_FN64_MSG_SEND_DIRECT_RESP	FFA_SMC_64(0x70)
-#define FFA_MEM_DONATE			FFA_SMC_32(0x71)
-#define FFA_FN64_MEM_DONATE		FFA_SMC_64(0x71)
-#define FFA_MEM_LEND			FFA_SMC_32(0x72)
-#define FFA_FN64_MEM_LEND		FFA_SMC_64(0x72)
-#define FFA_MEM_SHARE			FFA_SMC_32(0x73)
-#define FFA_FN64_MEM_SHARE		FFA_SMC_64(0x73)
-#define FFA_MEM_RETRIEVE_REQ		FFA_SMC_32(0x74)
-#define FFA_FN64_MEM_RETRIEVE_REQ	FFA_SMC_64(0x74)
-#define FFA_MEM_RETRIEVE_RESP		FFA_SMC_32(0x75)
-#define FFA_MEM_RELINQUISH		FFA_SMC_32(0x76)
-#define FFA_MEM_RECLAIM			FFA_SMC_32(0x77)
-#define FFA_MEM_OP_PAUSE		FFA_SMC_32(0x78)
-#define FFA_MEM_OP_RESUME		FFA_SMC_32(0x79)
-#define FFA_MEM_FRAG_RX			FFA_SMC_32(0x7A)
-#define FFA_MEM_FRAG_TX			FFA_SMC_32(0x7B)
-#define FFA_NORMAL_WORLD_RESUME		FFA_SMC_32(0x7C)
-
-/*
- * For some calls it is necessary to use SMC64 to pass or return 64-bit values.
- * For such calls FFA_FN_NATIVE(name) will choose the appropriate
- * (native-width) function ID.
- */
-#ifdef CONFIG_64BIT
-#define FFA_FN_NATIVE(name)	FFA_FN64_##name
-#else
-#define FFA_FN_NATIVE(name)	FFA_##name
-#endif
-
-/* FFA error codes. */
-#define FFA_RET_SUCCESS            (0)
-#define FFA_RET_NOT_SUPPORTED      (-1)
-#define FFA_RET_INVALID_PARAMETERS (-2)
-#define FFA_RET_NO_MEMORY          (-3)
-#define FFA_RET_BUSY               (-4)
-#define FFA_RET_INTERRUPTED        (-5)
-#define FFA_RET_DENIED             (-6)
-#define FFA_RET_RETRY              (-7)
-#define FFA_RET_ABORTED            (-8)
-
-#define MAJOR_VERSION_MASK	GENMASK(30, 16)
-#define MINOR_VERSION_MASK	GENMASK(15, 0)
-#define MAJOR_VERSION(x)	((u16)(FIELD_GET(MAJOR_VERSION_MASK, (x))))
-#define MINOR_VERSION(x)	((u16)(FIELD_GET(MINOR_VERSION_MASK, (x))))
-#define PACK_VERSION_INFO(major, minor)			\
-	(FIELD_PREP(MAJOR_VERSION_MASK, (major)) |	\
-	 FIELD_PREP(MINOR_VERSION_MASK, (minor)))
-#define FFA_VERSION_1_0		PACK_VERSION_INFO(1, 0)
 #define FFA_MIN_VERSION		FFA_VERSION_1_0
 
 #define SENDER_ID_MASK		GENMASK(31, 16)
@@ -121,12 +46,6 @@
 	(FIELD_PREP(SENDER_ID_MASK, (s)) | FIELD_PREP(RECEIVER_ID_MASK, (r)))
 
 /*
- * FF-A specification mentions explicitly about '4K pages'. This should
- * not be confused with the kernel PAGE_SIZE, which is the translation
- * granule kernel is configured and may be one among 4K, 16K and 64K.
- */
-#define FFA_PAGE_SIZE		SZ_4K
-/*
  * Keeping RX TX buffer size as 4K for now
  * 64K may be preferred to keep it min a page in 64K PAGE_SIZE config
  */
@@ -167,6 +86,27 @@
 
 static struct ffa_drv_info *drv_info;
 
+/*
+ * The driver must be able to support all the versions from the earliest
+ * supported FFA_MIN_VERSION to the latest supported FFA_DRIVER_VERSION.
+ * The specification states that if firmware supports a FFA implementation
+ * that is incompatible with and at a greater version number than specified
+ * by the caller(FFA_DRIVER_VERSION passed as parameter to FFA_VERSION),
+ * it must return the NOT_SUPPORTED error code.
+ */
+static u32 ffa_compatible_version_find(u32 version)
+{
+	u16 major = FFA_MAJOR_VERSION(version), minor = FFA_MINOR_VERSION(version);
+	u16 drv_major = FFA_MAJOR_VERSION(FFA_DRIVER_VERSION);
+	u16 drv_minor = FFA_MINOR_VERSION(FFA_DRIVER_VERSION);
+
+	if ((major < drv_major) || (major == drv_major && minor <= drv_minor))
+		return version;
+
+	pr_info("Firmware version higher than driver version, downgrading\n");
+	return FFA_DRIVER_VERSION;
+}
+
 static int ffa_version_check(u32 *version)
 {
 	ffa_value_t ver;
@@ -180,15 +120,20 @@
 		return -EOPNOTSUPP;
 	}
 
-	if (ver.a0 < FFA_MIN_VERSION || ver.a0 > FFA_DRIVER_VERSION) {
-		pr_err("Incompatible version %d.%d found\n",
-		       MAJOR_VERSION(ver.a0), MINOR_VERSION(ver.a0));
+	if (ver.a0 < FFA_MIN_VERSION) {
+		pr_err("Incompatible v%d.%d! Earliest supported v%d.%d\n",
+		       FFA_MAJOR_VERSION(ver.a0), FFA_MINOR_VERSION(ver.a0),
+		       FFA_MAJOR_VERSION(FFA_MIN_VERSION),
+		       FFA_MINOR_VERSION(FFA_MIN_VERSION));
 		return -EINVAL;
 	}
 
-	*version = ver.a0;
-	pr_info("Version %d.%d found\n", MAJOR_VERSION(ver.a0),
-		MINOR_VERSION(ver.a0));
+	pr_info("Driver version %d.%d\n", FFA_MAJOR_VERSION(FFA_DRIVER_VERSION),
+		FFA_MINOR_VERSION(FFA_DRIVER_VERSION));
+	pr_info("Firmware version %d.%d found\n", FFA_MAJOR_VERSION(ver.a0),
+		FFA_MINOR_VERSION(ver.a0));
+	*version = ffa_compatible_version_find(ver.a0);
+
 	return 0;
 }
 
@@ -593,6 +538,22 @@
 	return ffa_memory_ops(FFA_FN_NATIVE(MEM_SHARE), args);
 }
 
+static int
+ffa_memory_lend(struct ffa_device *dev, struct ffa_mem_ops_args *args)
+{
+	/* Note that upon a successful MEM_LEND request the caller
+	 * must ensure that the memory region specified is not accessed
+	 * until a successful MEM_RECALIM call has been made.
+	 * On systems with a hypervisor present this will been enforced,
+	 * however on systems without a hypervisor the responsibility
+	 * falls to the calling kernel driver to prevent access.
+	 */
+	if (dev->mode_32bit)
+		return ffa_memory_ops(FFA_MEM_LEND, args);
+
+	return ffa_memory_ops(FFA_FN_NATIVE(MEM_LEND), args);
+}
+
 static const struct ffa_dev_ops ffa_ops = {
 	.api_version_get = ffa_api_version_get,
 	.partition_info_get = ffa_partition_info_get,
@@ -600,6 +561,7 @@
 	.sync_send_receive = ffa_sync_send_receive,
 	.memory_reclaim = ffa_memory_reclaim,
 	.memory_share = ffa_memory_share,
+	.memory_lend = ffa_memory_lend,
 };
 
 const struct ffa_dev_ops *ffa_dev_ops_get(struct ffa_device *dev)
diff --git a/drivers/firmware/arm_sdei.c b/drivers/firmware/arm_sdei.c
index f9040bd..1e1a515 100644
--- a/drivers/firmware/arm_sdei.c
+++ b/drivers/firmware/arm_sdei.c
@@ -43,8 +43,6 @@
 /* entry point from firmware to arch asm code */
 static unsigned long sdei_entry_point;
 
-static int sdei_hp_state;
-
 struct sdei_event {
 	/* These three are protected by the sdei_list_lock */
 	struct list_head	list;
@@ -303,6 +301,8 @@
 {
 	int err;
 
+	WARN_ON_ONCE(preemptible());
+
 	err = invoke_sdei_fn(SDEI_1_0_FN_SDEI_PE_MASK, 0, 0, 0, 0, 0, NULL);
 	if (err && err != -EIO) {
 		pr_warn_once("failed to mask CPU[%u]: %d\n",
@@ -315,7 +315,6 @@
 
 static void _ipi_mask_cpu(void *ignored)
 {
-	WARN_ON_ONCE(preemptible());
 	sdei_mask_local_cpu();
 }
 
@@ -323,6 +322,8 @@
 {
 	int err;
 
+	WARN_ON_ONCE(preemptible());
+
 	err = invoke_sdei_fn(SDEI_1_0_FN_SDEI_PE_UNMASK, 0, 0, 0, 0, 0, NULL);
 	if (err && err != -EIO) {
 		pr_warn_once("failed to unmask CPU[%u]: %d\n",
@@ -335,7 +336,6 @@
 
 static void _ipi_unmask_cpu(void *ignored)
 {
-	WARN_ON_ONCE(preemptible());
 	sdei_unmask_local_cpu();
 }
 
@@ -343,8 +343,6 @@
 {
 	int err;
 
-	WARN_ON_ONCE(preemptible());
-
 	err = invoke_sdei_fn(SDEI_1_0_FN_SDEI_PRIVATE_RESET, 0, 0, 0, 0, 0,
 			     NULL);
 	if (err && err != -EIO)
@@ -391,6 +389,8 @@
 	int err;
 	struct sdei_crosscall_args *arg = data;
 
+	WARN_ON_ONCE(preemptible());
+
 	err = sdei_api_event_enable(arg->event->event_num);
 
 	sdei_cross_call_return(arg, err);
@@ -479,6 +479,8 @@
 	int err;
 	struct sdei_crosscall_args *arg = data;
 
+	WARN_ON_ONCE(preemptible());
+
 	err = sdei_api_event_unregister(arg->event->event_num);
 
 	sdei_cross_call_return(arg, err);
@@ -559,6 +561,8 @@
 	struct sdei_registered_event *reg;
 	struct sdei_crosscall_args *arg = data;
 
+	WARN_ON(preemptible());
+
 	reg = per_cpu_ptr(arg->event->private_registered, smp_processor_id());
 	err = sdei_api_event_register(arg->event->event_num, sdei_entry_point,
 				      reg, 0, 0);
@@ -713,8 +717,6 @@
 {
 	int rv;
 
-	WARN_ON_ONCE(preemptible());
-
 	switch (action) {
 	case CPU_PM_ENTER:
 		rv = sdei_mask_local_cpu();
@@ -763,7 +765,7 @@
 	int err;
 
 	/* unregister private events */
-	cpuhp_remove_state(sdei_entry_point);
+	cpuhp_remove_state(CPUHP_AP_ARM_SDEI_STARTING);
 
 	err = sdei_unregister_shared();
 	if (err)
@@ -784,15 +786,12 @@
 		return err;
 	}
 
-	err = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "SDEI",
+	err = cpuhp_setup_state(CPUHP_AP_ARM_SDEI_STARTING, "SDEI",
 				&sdei_cpuhp_up, &sdei_cpuhp_down);
-	if (err < 0) {
+	if (err)
 		pr_warn("Failed to re-register CPU hotplug notifier...\n");
-		return err;
-	}
 
-	sdei_hp_state = err;
-	return 0;
+	return err;
 }
 
 static int sdei_device_restore(struct device *dev)
@@ -824,7 +823,7 @@
 	 * We are going to reset the interface, after this there is no point
 	 * doing work when we take CPUs offline.
 	 */
-	cpuhp_remove_state(sdei_hp_state);
+	cpuhp_remove_state(CPUHP_AP_ARM_SDEI_STARTING);
 
 	sdei_platform_reset();
 
@@ -1004,15 +1003,13 @@
 		goto remove_cpupm;
 	}
 
-	err = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "SDEI",
+	err = cpuhp_setup_state(CPUHP_AP_ARM_SDEI_STARTING, "SDEI",
 				&sdei_cpuhp_up, &sdei_cpuhp_down);
-	if (err < 0) {
+	if (err) {
 		pr_warn("Failed to register CPU hotplug notifier...\n");
 		goto remove_reboot;
 	}
 
-	sdei_hp_state = err;
-
 	return 0;
 
 remove_reboot:
diff --git a/drivers/firmware/psci/psci.c b/drivers/firmware/psci/psci.c
index cfb448e..f305751 100644
--- a/drivers/firmware/psci/psci.c
+++ b/drivers/firmware/psci/psci.c
@@ -27,6 +27,7 @@
 #include <asm/system_misc.h>
 #include <asm/smp_plat.h>
 #include <asm/suspend.h>
+#include <trace/hooks/psci.h>
 
 /*
  * While a 64-bit OS can make calls with SMC32 calling conventions, for some
@@ -52,6 +53,12 @@
 
 bool psci_tos_resident_on(int cpu)
 {
+	bool resident = false;
+
+	trace_android_rvh_psci_tos_resident_on(cpu, &resident);
+	if (resident)
+		return resident;
+
 	return cpu == resident_cpu;
 }
 
@@ -169,6 +176,11 @@
 static int __psci_cpu_suspend(u32 fn, u32 state, unsigned long entry_point)
 {
 	int err;
+	bool deny = false;
+
+	trace_android_rvh_psci_cpu_suspend(state, &deny);
+	if (deny)
+		return -EPERM;
 
 	err = invoke_psci_fn(fn, state, entry_point, 0);
 	return psci_to_linux_errno(err);
diff --git a/drivers/firmware/smccc/kvm_guest.c b/drivers/firmware/smccc/kvm_guest.c
index 2d3e866..e2c9528 100644
--- a/drivers/firmware/smccc/kvm_guest.c
+++ b/drivers/firmware/smccc/kvm_guest.c
@@ -4,11 +4,14 @@
 
 #include <linux/arm-smccc.h>
 #include <linux/bitmap.h>
+#include <linux/cache.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
 
 #include <asm/hypervisor.h>
 
+void __weak kvm_arm_init_hyp_services(void) {}
+
 static DECLARE_BITMAP(__kvm_arm_hyp_services, ARM_SMCCC_KVM_NUM_FUNCS) __ro_after_init = { };
 
 void __init kvm_init_hyp_services(void)
@@ -38,6 +41,8 @@
 
 	pr_info("hypervisor services detected (0x%08lx 0x%08lx 0x%08lx 0x%08lx)\n",
 		 res.a3, res.a2, res.a1, res.a0);
+
+	kvm_arm_init_hyp_services();
 }
 
 bool kvm_arm_hyp_service_available(u32 func_id)
diff --git a/drivers/gpio/gpio-amdpt.c b/drivers/gpio/gpio-amdpt.c
index dba4836..4439899 100644
--- a/drivers/gpio/gpio-amdpt.c
+++ b/drivers/gpio/gpio-amdpt.c
@@ -35,19 +35,19 @@
 
 	dev_dbg(gc->parent, "pt_gpio_request offset=%x\n", offset);
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 
 	using_pins = readl(pt_gpio->reg_base + PT_SYNC_REG);
 	if (using_pins & BIT(offset)) {
 		dev_warn(gc->parent, "PT GPIO pin %x reconfigured\n",
 			 offset);
-		raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+		spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 		return -EINVAL;
 	}
 
 	writel(using_pins | BIT(offset), pt_gpio->reg_base + PT_SYNC_REG);
 
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 
 	return 0;
 }
@@ -58,13 +58,13 @@
 	unsigned long flags;
 	u32 using_pins;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 
 	using_pins = readl(pt_gpio->reg_base + PT_SYNC_REG);
 	using_pins &= ~BIT(offset);
 	writel(using_pins, pt_gpio->reg_base + PT_SYNC_REG);
 
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 
 	dev_dbg(gc->parent, "pt_gpio_free offset=%x\n", offset);
 }
diff --git a/drivers/gpio/gpio-brcmstb.c b/drivers/gpio/gpio-brcmstb.c
index c5d85e9..895a799 100644
--- a/drivers/gpio/gpio-brcmstb.c
+++ b/drivers/gpio/gpio-brcmstb.c
@@ -92,9 +92,9 @@
 	unsigned long status;
 	unsigned long flags;
 
-	raw_spin_lock_irqsave(&bank->gc.bgpio_lock, flags);
+	spin_lock_irqsave(&bank->gc.bgpio_lock, flags);
 	status = __brcmstb_gpio_get_active_irqs(bank);
-	raw_spin_unlock_irqrestore(&bank->gc.bgpio_lock, flags);
+	spin_unlock_irqrestore(&bank->gc.bgpio_lock, flags);
 
 	return status;
 }
@@ -114,14 +114,14 @@
 	u32 imask;
 	unsigned long flags;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 	imask = gc->read_reg(priv->reg_base + GIO_MASK(bank->id));
 	if (enable)
 		imask |= mask;
 	else
 		imask &= ~mask;
 	gc->write_reg(priv->reg_base + GIO_MASK(bank->id), imask);
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 }
 
 static int brcmstb_gpio_to_irq(struct gpio_chip *gc, unsigned offset)
@@ -204,7 +204,7 @@
 		return -EINVAL;
 	}
 
-	raw_spin_lock_irqsave(&bank->gc.bgpio_lock, flags);
+	spin_lock_irqsave(&bank->gc.bgpio_lock, flags);
 
 	iedge_config = bank->gc.read_reg(priv->reg_base +
 			GIO_EC(bank->id)) & ~mask;
@@ -220,7 +220,7 @@
 	bank->gc.write_reg(priv->reg_base + GIO_LEVEL(bank->id),
 			ilevel | level);
 
-	raw_spin_unlock_irqrestore(&bank->gc.bgpio_lock, flags);
+	spin_unlock_irqrestore(&bank->gc.bgpio_lock, flags);
 	return 0;
 }
 
diff --git a/drivers/gpio/gpio-cadence.c b/drivers/gpio/gpio-cadence.c
index 137aea4..562f8f7 100644
--- a/drivers/gpio/gpio-cadence.c
+++ b/drivers/gpio/gpio-cadence.c
@@ -41,12 +41,12 @@
 	struct cdns_gpio_chip *cgpio = gpiochip_get_data(chip);
 	unsigned long flags;
 
-	raw_spin_lock_irqsave(&chip->bgpio_lock, flags);
+	spin_lock_irqsave(&chip->bgpio_lock, flags);
 
 	iowrite32(ioread32(cgpio->regs + CDNS_GPIO_BYPASS_MODE) & ~BIT(offset),
 		  cgpio->regs + CDNS_GPIO_BYPASS_MODE);
 
-	raw_spin_unlock_irqrestore(&chip->bgpio_lock, flags);
+	spin_unlock_irqrestore(&chip->bgpio_lock, flags);
 	return 0;
 }
 
@@ -55,13 +55,13 @@
 	struct cdns_gpio_chip *cgpio = gpiochip_get_data(chip);
 	unsigned long flags;
 
-	raw_spin_lock_irqsave(&chip->bgpio_lock, flags);
+	spin_lock_irqsave(&chip->bgpio_lock, flags);
 
 	iowrite32(ioread32(cgpio->regs + CDNS_GPIO_BYPASS_MODE) |
 		  (BIT(offset) & cgpio->bypass_orig),
 		  cgpio->regs + CDNS_GPIO_BYPASS_MODE);
 
-	raw_spin_unlock_irqrestore(&chip->bgpio_lock, flags);
+	spin_unlock_irqrestore(&chip->bgpio_lock, flags);
 }
 
 static void cdns_gpio_irq_mask(struct irq_data *d)
@@ -90,7 +90,7 @@
 	u32 mask = BIT(d->hwirq);
 	int ret = 0;
 
-	raw_spin_lock_irqsave(&chip->bgpio_lock, flags);
+	spin_lock_irqsave(&chip->bgpio_lock, flags);
 
 	int_value = ioread32(cgpio->regs + CDNS_GPIO_IRQ_VALUE) & ~mask;
 	int_type = ioread32(cgpio->regs + CDNS_GPIO_IRQ_TYPE) & ~mask;
@@ -115,7 +115,7 @@
 	iowrite32(int_type, cgpio->regs + CDNS_GPIO_IRQ_TYPE);
 
 err_irq_type:
-	raw_spin_unlock_irqrestore(&chip->bgpio_lock, flags);
+	spin_unlock_irqrestore(&chip->bgpio_lock, flags);
 	return ret;
 }
 
diff --git a/drivers/gpio/gpio-dwapb.c b/drivers/gpio/gpio-dwapb.c
index a503f37..e981e7a 100644
--- a/drivers/gpio/gpio-dwapb.c
+++ b/drivers/gpio/gpio-dwapb.c
@@ -242,9 +242,9 @@
 	u32 val = BIT(irqd_to_hwirq(d));
 	unsigned long flags;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 	dwapb_write(gpio, GPIO_PORTA_EOI, val);
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 }
 
 static void dwapb_irq_mask(struct irq_data *d)
@@ -254,10 +254,10 @@
 	unsigned long flags;
 	u32 val;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 	val = dwapb_read(gpio, GPIO_INTMASK) | BIT(irqd_to_hwirq(d));
 	dwapb_write(gpio, GPIO_INTMASK, val);
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 }
 
 static void dwapb_irq_unmask(struct irq_data *d)
@@ -267,10 +267,10 @@
 	unsigned long flags;
 	u32 val;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 	val = dwapb_read(gpio, GPIO_INTMASK) & ~BIT(irqd_to_hwirq(d));
 	dwapb_write(gpio, GPIO_INTMASK, val);
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 }
 
 static void dwapb_irq_enable(struct irq_data *d)
@@ -280,11 +280,11 @@
 	unsigned long flags;
 	u32 val;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 	val = dwapb_read(gpio, GPIO_INTEN);
 	val |= BIT(irqd_to_hwirq(d));
 	dwapb_write(gpio, GPIO_INTEN, val);
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 }
 
 static void dwapb_irq_disable(struct irq_data *d)
@@ -294,11 +294,11 @@
 	unsigned long flags;
 	u32 val;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 	val = dwapb_read(gpio, GPIO_INTEN);
 	val &= ~BIT(irqd_to_hwirq(d));
 	dwapb_write(gpio, GPIO_INTEN, val);
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 }
 
 static int dwapb_irq_set_type(struct irq_data *d, u32 type)
@@ -308,7 +308,7 @@
 	irq_hw_number_t bit = irqd_to_hwirq(d);
 	unsigned long level, polarity, flags;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 	level = dwapb_read(gpio, GPIO_INTTYPE_LEVEL);
 	polarity = dwapb_read(gpio, GPIO_INT_POLARITY);
 
@@ -343,7 +343,7 @@
 	dwapb_write(gpio, GPIO_INTTYPE_LEVEL, level);
 	if (type != IRQ_TYPE_EDGE_BOTH)
 		dwapb_write(gpio, GPIO_INT_POLARITY, polarity);
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 
 	return 0;
 }
@@ -373,7 +373,7 @@
 	unsigned long flags, val_deb;
 	unsigned long mask = BIT(offset);
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 
 	val_deb = dwapb_read(gpio, GPIO_PORTA_DEBOUNCE);
 	if (debounce)
@@ -382,7 +382,7 @@
 		val_deb &= ~mask;
 	dwapb_write(gpio, GPIO_PORTA_DEBOUNCE, val_deb);
 
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 
 	return 0;
 }
@@ -738,7 +738,7 @@
 	unsigned long flags;
 	int i;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 	for (i = 0; i < gpio->nr_ports; i++) {
 		unsigned int offset;
 		unsigned int idx = gpio->ports[i].idx;
@@ -765,7 +765,7 @@
 			dwapb_write(gpio, GPIO_INTMASK, ~ctx->wake_en);
 		}
 	}
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 
 	clk_bulk_disable_unprepare(DWAPB_NR_CLOCKS, gpio->clks);
 
@@ -785,7 +785,7 @@
 		return err;
 	}
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 	for (i = 0; i < gpio->nr_ports; i++) {
 		unsigned int offset;
 		unsigned int idx = gpio->ports[i].idx;
@@ -812,7 +812,7 @@
 			dwapb_write(gpio, GPIO_PORTA_EOI, 0xffffffff);
 		}
 	}
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 
 	return 0;
 }
diff --git a/drivers/gpio/gpio-grgpio.c b/drivers/gpio/gpio-grgpio.c
index 21204a5..f954359 100644
--- a/drivers/gpio/gpio-grgpio.c
+++ b/drivers/gpio/gpio-grgpio.c
@@ -145,7 +145,7 @@
 		return -EINVAL;
 	}
 
-	raw_spin_lock_irqsave(&priv->gc.bgpio_lock, flags);
+	spin_lock_irqsave(&priv->gc.bgpio_lock, flags);
 
 	ipol = priv->gc.read_reg(priv->regs + GRGPIO_IPOL) & ~mask;
 	iedge = priv->gc.read_reg(priv->regs + GRGPIO_IEDGE) & ~mask;
@@ -153,7 +153,7 @@
 	priv->gc.write_reg(priv->regs + GRGPIO_IPOL, ipol | pol);
 	priv->gc.write_reg(priv->regs + GRGPIO_IEDGE, iedge | edge);
 
-	raw_spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
+	spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
 
 	return 0;
 }
@@ -164,11 +164,11 @@
 	int offset = d->hwirq;
 	unsigned long flags;
 
-	raw_spin_lock_irqsave(&priv->gc.bgpio_lock, flags);
+	spin_lock_irqsave(&priv->gc.bgpio_lock, flags);
 
 	grgpio_set_imask(priv, offset, 0);
 
-	raw_spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
+	spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
 }
 
 static void grgpio_irq_unmask(struct irq_data *d)
@@ -177,11 +177,11 @@
 	int offset = d->hwirq;
 	unsigned long flags;
 
-	raw_spin_lock_irqsave(&priv->gc.bgpio_lock, flags);
+	spin_lock_irqsave(&priv->gc.bgpio_lock, flags);
 
 	grgpio_set_imask(priv, offset, 1);
 
-	raw_spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
+	spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
 }
 
 static struct irq_chip grgpio_irq_chip = {
@@ -199,7 +199,7 @@
 	int i;
 	int match = 0;
 
-	raw_spin_lock_irqsave(&priv->gc.bgpio_lock, flags);
+	spin_lock_irqsave(&priv->gc.bgpio_lock, flags);
 
 	/*
 	 * For each gpio line, call its interrupt handler if it its underlying
@@ -215,7 +215,7 @@
 		}
 	}
 
-	raw_spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
+	spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
 
 	if (!match)
 		dev_warn(priv->dev, "No gpio line matched irq %d\n", irq);
@@ -247,13 +247,13 @@
 	dev_dbg(priv->dev, "Mapping irq %d for gpio line %d\n",
 		irq, offset);
 
-	raw_spin_lock_irqsave(&priv->gc.bgpio_lock, flags);
+	spin_lock_irqsave(&priv->gc.bgpio_lock, flags);
 
 	/* Request underlying irq if not already requested */
 	lirq->irq = irq;
 	uirq = &priv->uirqs[lirq->index];
 	if (uirq->refcnt == 0) {
-		raw_spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
+		spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
 		ret = request_irq(uirq->uirq, grgpio_irq_handler, 0,
 				  dev_name(priv->dev), priv);
 		if (ret) {
@@ -262,11 +262,11 @@
 				uirq->uirq);
 			return ret;
 		}
-		raw_spin_lock_irqsave(&priv->gc.bgpio_lock, flags);
+		spin_lock_irqsave(&priv->gc.bgpio_lock, flags);
 	}
 	uirq->refcnt++;
 
-	raw_spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
+	spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
 
 	/* Setup irq  */
 	irq_set_chip_data(irq, priv);
@@ -290,7 +290,7 @@
 	irq_set_chip_and_handler(irq, NULL, NULL);
 	irq_set_chip_data(irq, NULL);
 
-	raw_spin_lock_irqsave(&priv->gc.bgpio_lock, flags);
+	spin_lock_irqsave(&priv->gc.bgpio_lock, flags);
 
 	/* Free underlying irq if last user unmapped */
 	index = -1;
@@ -309,13 +309,13 @@
 		uirq = &priv->uirqs[lirq->index];
 		uirq->refcnt--;
 		if (uirq->refcnt == 0) {
-			raw_spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
+			spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
 			free_irq(uirq->uirq, priv);
 			return;
 		}
 	}
 
-	raw_spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
+	spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
 }
 
 static const struct irq_domain_ops grgpio_irq_domain_ops = {
diff --git a/drivers/gpio/gpio-hlwd.c b/drivers/gpio/gpio-hlwd.c
index 4e13e93..641719a 100644
--- a/drivers/gpio/gpio-hlwd.c
+++ b/drivers/gpio/gpio-hlwd.c
@@ -65,7 +65,7 @@
 	int hwirq;
 	u32 emulated_pending;
 
-	raw_spin_lock_irqsave(&hlwd->gpioc.bgpio_lock, flags);
+	spin_lock_irqsave(&hlwd->gpioc.bgpio_lock, flags);
 	pending = ioread32be(hlwd->regs + HW_GPIOB_INTFLAG);
 	pending &= ioread32be(hlwd->regs + HW_GPIOB_INTMASK);
 
@@ -93,7 +93,7 @@
 		/* Mark emulated interrupts as pending */
 		pending |= rising | falling;
 	}
-	raw_spin_unlock_irqrestore(&hlwd->gpioc.bgpio_lock, flags);
+	spin_unlock_irqrestore(&hlwd->gpioc.bgpio_lock, flags);
 
 	chained_irq_enter(chip, desc);
 
@@ -118,11 +118,11 @@
 	unsigned long flags;
 	u32 mask;
 
-	raw_spin_lock_irqsave(&hlwd->gpioc.bgpio_lock, flags);
+	spin_lock_irqsave(&hlwd->gpioc.bgpio_lock, flags);
 	mask = ioread32be(hlwd->regs + HW_GPIOB_INTMASK);
 	mask &= ~BIT(data->hwirq);
 	iowrite32be(mask, hlwd->regs + HW_GPIOB_INTMASK);
-	raw_spin_unlock_irqrestore(&hlwd->gpioc.bgpio_lock, flags);
+	spin_unlock_irqrestore(&hlwd->gpioc.bgpio_lock, flags);
 }
 
 static void hlwd_gpio_irq_unmask(struct irq_data *data)
@@ -132,11 +132,11 @@
 	unsigned long flags;
 	u32 mask;
 
-	raw_spin_lock_irqsave(&hlwd->gpioc.bgpio_lock, flags);
+	spin_lock_irqsave(&hlwd->gpioc.bgpio_lock, flags);
 	mask = ioread32be(hlwd->regs + HW_GPIOB_INTMASK);
 	mask |= BIT(data->hwirq);
 	iowrite32be(mask, hlwd->regs + HW_GPIOB_INTMASK);
-	raw_spin_unlock_irqrestore(&hlwd->gpioc.bgpio_lock, flags);
+	spin_unlock_irqrestore(&hlwd->gpioc.bgpio_lock, flags);
 }
 
 static void hlwd_gpio_irq_enable(struct irq_data *data)
@@ -173,7 +173,7 @@
 	unsigned long flags;
 	u32 level;
 
-	raw_spin_lock_irqsave(&hlwd->gpioc.bgpio_lock, flags);
+	spin_lock_irqsave(&hlwd->gpioc.bgpio_lock, flags);
 
 	hlwd->edge_emulation &= ~BIT(data->hwirq);
 
@@ -194,11 +194,11 @@
 		hlwd_gpio_irq_setup_emulation(hlwd, data->hwirq, flow_type);
 		break;
 	default:
-		raw_spin_unlock_irqrestore(&hlwd->gpioc.bgpio_lock, flags);
+		spin_unlock_irqrestore(&hlwd->gpioc.bgpio_lock, flags);
 		return -EINVAL;
 	}
 
-	raw_spin_unlock_irqrestore(&hlwd->gpioc.bgpio_lock, flags);
+	spin_unlock_irqrestore(&hlwd->gpioc.bgpio_lock, flags);
 	return 0;
 }
 
diff --git a/drivers/gpio/gpio-idt3243x.c b/drivers/gpio/gpio-idt3243x.c
index 1cafdf4..52b8b72 100644
--- a/drivers/gpio/gpio-idt3243x.c
+++ b/drivers/gpio/gpio-idt3243x.c
@@ -57,7 +57,7 @@
 	if (sense == IRQ_TYPE_NONE || (sense & IRQ_TYPE_EDGE_BOTH))
 		return -EINVAL;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 
 	ilevel = readl(ctrl->gpio + IDT_GPIO_ILEVEL);
 	if (sense & IRQ_TYPE_LEVEL_HIGH)
@@ -68,7 +68,7 @@
 	writel(ilevel, ctrl->gpio + IDT_GPIO_ILEVEL);
 	irq_set_handler_locked(d, handle_level_irq);
 
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 	return 0;
 }
 
@@ -86,12 +86,12 @@
 	struct idt_gpio_ctrl *ctrl = gpiochip_get_data(gc);
 	unsigned long flags;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 
 	ctrl->mask_cache |= BIT(d->hwirq);
 	writel(ctrl->mask_cache, ctrl->pic + IDT_PIC_IRQ_MASK);
 
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 }
 
 static void idt_gpio_unmask(struct irq_data *d)
@@ -100,12 +100,12 @@
 	struct idt_gpio_ctrl *ctrl = gpiochip_get_data(gc);
 	unsigned long flags;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 
 	ctrl->mask_cache &= ~BIT(d->hwirq);
 	writel(ctrl->mask_cache, ctrl->pic + IDT_PIC_IRQ_MASK);
 
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 }
 
 static int idt_gpio_irq_init_hw(struct gpio_chip *gc)
diff --git a/drivers/gpio/gpio-ixp4xx.c b/drivers/gpio/gpio-ixp4xx.c
index 6b18450..b3b0506 100644
--- a/drivers/gpio/gpio-ixp4xx.c
+++ b/drivers/gpio/gpio-ixp4xx.c
@@ -128,7 +128,7 @@
 		int_reg = IXP4XX_REG_GPIT1;
 	}
 
-	raw_spin_lock_irqsave(&g->gc.bgpio_lock, flags);
+	spin_lock_irqsave(&g->gc.bgpio_lock, flags);
 
 	/* Clear the style for the appropriate pin */
 	val = __raw_readl(g->base + int_reg);
@@ -147,7 +147,7 @@
 	val |= BIT(d->hwirq);
 	__raw_writel(val, g->base + IXP4XX_REG_GPOE);
 
-	raw_spin_unlock_irqrestore(&g->gc.bgpio_lock, flags);
+	spin_unlock_irqrestore(&g->gc.bgpio_lock, flags);
 
 	/* This parent only accept level high (asserted) */
 	return irq_chip_set_type_parent(d, IRQ_TYPE_LEVEL_HIGH);
diff --git a/drivers/gpio/gpio-loongson1.c b/drivers/gpio/gpio-loongson1.c
index 5d90b3b..1b1ee94 100644
--- a/drivers/gpio/gpio-loongson1.c
+++ b/drivers/gpio/gpio-loongson1.c
@@ -25,10 +25,10 @@
 {
 	unsigned long flags;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 	__raw_writel(__raw_readl(gpio_reg_base + GPIO_CFG) | BIT(offset),
 		     gpio_reg_base + GPIO_CFG);
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 
 	return 0;
 }
@@ -37,10 +37,10 @@
 {
 	unsigned long flags;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 	__raw_writel(__raw_readl(gpio_reg_base + GPIO_CFG) & ~BIT(offset),
 		     gpio_reg_base + GPIO_CFG);
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 }
 
 static int ls1x_gpio_probe(struct platform_device *pdev)
diff --git a/drivers/gpio/gpio-menz127.c b/drivers/gpio/gpio-menz127.c
index a035a9b..1e21c66 100644
--- a/drivers/gpio/gpio-menz127.c
+++ b/drivers/gpio/gpio-menz127.c
@@ -64,7 +64,7 @@
 		debounce /= 50;
 	}
 
-	raw_spin_lock(&gc->bgpio_lock);
+	spin_lock(&gc->bgpio_lock);
 
 	db_en = readl(priv->reg_base + MEN_Z127_DBER);
 
@@ -79,7 +79,7 @@
 	writel(db_en, priv->reg_base + MEN_Z127_DBER);
 	writel(db_cnt, priv->reg_base + GPIO_TO_DBCNT_REG(gpio));
 
-	raw_spin_unlock(&gc->bgpio_lock);
+	spin_unlock(&gc->bgpio_lock);
 
 	return 0;
 }
@@ -91,7 +91,7 @@
 	struct men_z127_gpio *priv = gpiochip_get_data(gc);
 	u32 od_en;
 
-	raw_spin_lock(&gc->bgpio_lock);
+	spin_lock(&gc->bgpio_lock);
 	od_en = readl(priv->reg_base + MEN_Z127_ODER);
 
 	if (param == PIN_CONFIG_DRIVE_OPEN_DRAIN)
@@ -101,7 +101,7 @@
 		od_en &= ~BIT(offset);
 
 	writel(od_en, priv->reg_base + MEN_Z127_ODER);
-	raw_spin_unlock(&gc->bgpio_lock);
+	spin_unlock(&gc->bgpio_lock);
 
 	return 0;
 }
diff --git a/drivers/gpio/gpio-mlxbf2.c b/drivers/gpio/gpio-mlxbf2.c
index 5a09070e..40a052b 100644
--- a/drivers/gpio/gpio-mlxbf2.c
+++ b/drivers/gpio/gpio-mlxbf2.c
@@ -120,7 +120,7 @@
 	u32 arm_gpio_lock_val;
 
 	mutex_lock(yu_arm_gpio_lock_param.lock);
-	raw_spin_lock(&gs->gc.bgpio_lock);
+	spin_lock(&gs->gc.bgpio_lock);
 
 	arm_gpio_lock_val = readl(yu_arm_gpio_lock_param.io);
 
@@ -128,7 +128,7 @@
 	 * When lock active bit[31] is set, ModeX is write enabled
 	 */
 	if (YU_LOCK_ACTIVE_BIT(arm_gpio_lock_val)) {
-		raw_spin_unlock(&gs->gc.bgpio_lock);
+		spin_unlock(&gs->gc.bgpio_lock);
 		mutex_unlock(yu_arm_gpio_lock_param.lock);
 		return -EINVAL;
 	}
@@ -146,7 +146,7 @@
 	__releases(yu_arm_gpio_lock_param.lock)
 {
 	writel(YU_ARM_GPIO_LOCK_RELEASE, yu_arm_gpio_lock_param.io);
-	raw_spin_unlock(&gs->gc.bgpio_lock);
+	spin_unlock(&gs->gc.bgpio_lock);
 	mutex_unlock(yu_arm_gpio_lock_param.lock);
 }
 
diff --git a/drivers/gpio/gpio-mmio.c b/drivers/gpio/gpio-mmio.c
index d9dff3d..c335a03 100644
--- a/drivers/gpio/gpio-mmio.c
+++ b/drivers/gpio/gpio-mmio.c
@@ -220,7 +220,7 @@
 	unsigned long mask = bgpio_line2mask(gc, gpio);
 	unsigned long flags;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 
 	if (val)
 		gc->bgpio_data |= mask;
@@ -229,7 +229,7 @@
 
 	gc->write_reg(gc->reg_dat, gc->bgpio_data);
 
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 }
 
 static void bgpio_set_with_clear(struct gpio_chip *gc, unsigned int gpio,
@@ -248,7 +248,7 @@
 	unsigned long mask = bgpio_line2mask(gc, gpio);
 	unsigned long flags;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 
 	if (val)
 		gc->bgpio_data |= mask;
@@ -257,7 +257,7 @@
 
 	gc->write_reg(gc->reg_set, gc->bgpio_data);
 
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 }
 
 static void bgpio_multiple_get_masks(struct gpio_chip *gc,
@@ -286,7 +286,7 @@
 	unsigned long flags;
 	unsigned long set_mask, clear_mask;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 
 	bgpio_multiple_get_masks(gc, mask, bits, &set_mask, &clear_mask);
 
@@ -295,7 +295,7 @@
 
 	gc->write_reg(reg, gc->bgpio_data);
 
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 }
 
 static void bgpio_set_multiple(struct gpio_chip *gc, unsigned long *mask,
@@ -347,7 +347,7 @@
 {
 	unsigned long flags;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 
 	gc->bgpio_dir &= ~bgpio_line2mask(gc, gpio);
 
@@ -356,7 +356,7 @@
 	if (gc->reg_dir_out)
 		gc->write_reg(gc->reg_dir_out, gc->bgpio_dir);
 
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 
 	return 0;
 }
@@ -387,7 +387,7 @@
 {
 	unsigned long flags;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 
 	gc->bgpio_dir |= bgpio_line2mask(gc, gpio);
 
@@ -396,7 +396,7 @@
 	if (gc->reg_dir_out)
 		gc->write_reg(gc->reg_dir_out, gc->bgpio_dir);
 
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 }
 
 static int bgpio_dir_out_dir_first(struct gpio_chip *gc, unsigned int gpio,
@@ -610,7 +610,7 @@
 	if (gc->bgpio_bits > BITS_PER_LONG)
 		return -EINVAL;
 
-	raw_spin_lock_init(&gc->bgpio_lock);
+	spin_lock_init(&gc->bgpio_lock);
 	gc->parent = dev;
 	gc->label = dev_name(dev);
 	gc->base = -1;
diff --git a/drivers/gpio/gpio-mxc.c b/drivers/gpio/gpio-mxc.c
index 853d9aa..3b98ee4 100644
--- a/drivers/gpio/gpio-mxc.c
+++ b/drivers/gpio/gpio-mxc.c
@@ -18,7 +18,6 @@
 #include <linux/module.h>
 #include <linux/platform_device.h>
 #include <linux/slab.h>
-#include <linux/spinlock.h>
 #include <linux/syscore_ops.h>
 #include <linux/gpio/driver.h>
 #include <linux/of.h>
@@ -148,7 +147,6 @@
 {
 	struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d);
 	struct mxc_gpio_port *port = gc->private;
-	unsigned long flags;
 	u32 bit, val;
 	u32 gpio_idx = d->hwirq;
 	int edge;
@@ -187,8 +185,6 @@
 		return -EINVAL;
 	}
 
-	raw_spin_lock_irqsave(&port->gc.bgpio_lock, flags);
-
 	if (GPIO_EDGE_SEL >= 0) {
 		val = readl(port->base + GPIO_EDGE_SEL);
 		if (edge == GPIO_INT_BOTH_EDGES)
@@ -208,20 +204,15 @@
 
 	writel(1 << gpio_idx, port->base + GPIO_ISR);
 
-	raw_spin_unlock_irqrestore(&port->gc.bgpio_lock, flags);
-
 	return port->gc.direction_input(&port->gc, gpio_idx);
 }
 
 static void mxc_flip_edge(struct mxc_gpio_port *port, u32 gpio)
 {
 	void __iomem *reg = port->base;
-	unsigned long flags;
 	u32 bit, val;
 	int edge;
 
-	raw_spin_lock_irqsave(&port->gc.bgpio_lock, flags);
-
 	reg += GPIO_ICR1 + ((gpio & 0x10) >> 2); /* lower or upper register */
 	bit = gpio & 0xf;
 	val = readl(reg);
@@ -236,12 +227,9 @@
 	} else {
 		pr_err("mxc: invalid configuration for GPIO %d: %x\n",
 		       gpio, edge);
-		goto unlock;
+		return;
 	}
 	writel(val | (edge << (bit << 1)), reg);
-
-unlock:
-	raw_spin_unlock_irqrestore(&port->gc.bgpio_lock, flags);
 }
 
 /* handle 32 interrupts in one status register */
diff --git a/drivers/gpio/gpio-sifive.c b/drivers/gpio/gpio-sifive.c
index 5ffab0f..08c50dc 100644
--- a/drivers/gpio/gpio-sifive.c
+++ b/drivers/gpio/gpio-sifive.c
@@ -44,7 +44,7 @@
 	unsigned long flags;
 	unsigned int trigger;
 
-	raw_spin_lock_irqsave(&chip->gc.bgpio_lock, flags);
+	spin_lock_irqsave(&chip->gc.bgpio_lock, flags);
 	trigger = (chip->irq_state & BIT(offset)) ? chip->trigger[offset] : 0;
 	regmap_update_bits(chip->regs, SIFIVE_GPIO_RISE_IE, BIT(offset),
 			   (trigger & IRQ_TYPE_EDGE_RISING) ? BIT(offset) : 0);
@@ -54,7 +54,7 @@
 			   (trigger & IRQ_TYPE_LEVEL_HIGH) ? BIT(offset) : 0);
 	regmap_update_bits(chip->regs, SIFIVE_GPIO_LOW_IE, BIT(offset),
 			   (trigger & IRQ_TYPE_LEVEL_LOW) ? BIT(offset) : 0);
-	raw_spin_unlock_irqrestore(&chip->gc.bgpio_lock, flags);
+	spin_unlock_irqrestore(&chip->gc.bgpio_lock, flags);
 }
 
 static int sifive_gpio_irq_set_type(struct irq_data *d, unsigned int trigger)
@@ -84,13 +84,13 @@
 	/* Switch to input */
 	gc->direction_input(gc, offset);
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 	/* Clear any sticky pending interrupts */
 	regmap_write(chip->regs, SIFIVE_GPIO_RISE_IP, bit);
 	regmap_write(chip->regs, SIFIVE_GPIO_FALL_IP, bit);
 	regmap_write(chip->regs, SIFIVE_GPIO_HIGH_IP, bit);
 	regmap_write(chip->regs, SIFIVE_GPIO_LOW_IP, bit);
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 
 	/* Enable interrupts */
 	assign_bit(offset, &chip->irq_state, 1);
@@ -116,13 +116,13 @@
 	u32 bit = BIT(offset);
 	unsigned long flags;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 	/* Clear all pending interrupts */
 	regmap_write(chip->regs, SIFIVE_GPIO_RISE_IP, bit);
 	regmap_write(chip->regs, SIFIVE_GPIO_FALL_IP, bit);
 	regmap_write(chip->regs, SIFIVE_GPIO_HIGH_IP, bit);
 	regmap_write(chip->regs, SIFIVE_GPIO_LOW_IP, bit);
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 
 	irq_chip_eoi_parent(d);
 }
diff --git a/drivers/gpio/gpio-tb10x.c b/drivers/gpio/gpio-tb10x.c
index de6afa3..718a508 100644
--- a/drivers/gpio/gpio-tb10x.c
+++ b/drivers/gpio/gpio-tb10x.c
@@ -62,14 +62,14 @@
 	u32 r;
 	unsigned long flags;
 
-	raw_spin_lock_irqsave(&gpio->gc.bgpio_lock, flags);
+	spin_lock_irqsave(&gpio->gc.bgpio_lock, flags);
 
 	r = tb10x_reg_read(gpio, offs);
 	r = (r & ~mask) | (val & mask);
 
 	tb10x_reg_write(gpio, offs, r);
 
-	raw_spin_unlock_irqrestore(&gpio->gc.bgpio_lock, flags);
+	spin_unlock_irqrestore(&gpio->gc.bgpio_lock, flags);
 }
 
 static int tb10x_gpio_to_irq(struct gpio_chip *chip, unsigned offset)
diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c
index 2a2e069..64e3761 100644
--- a/drivers/gpio/gpiolib-cdev.c
+++ b/drivers/gpio/gpiolib-cdev.c
@@ -54,50 +54,6 @@
  * interface to gpiolib GPIOs via ioctl()s.
  */
 
-typedef __poll_t (*poll_fn)(struct file *, struct poll_table_struct *);
-typedef long (*ioctl_fn)(struct file *, unsigned int, unsigned long);
-typedef ssize_t (*read_fn)(struct file *, char __user *,
-			   size_t count, loff_t *);
-
-static __poll_t call_poll_locked(struct file *file,
-				 struct poll_table_struct *wait,
-				 struct gpio_device *gdev, poll_fn func)
-{
-	__poll_t ret;
-
-	down_read(&gdev->sem);
-	ret = func(file, wait);
-	up_read(&gdev->sem);
-
-	return ret;
-}
-
-static long call_ioctl_locked(struct file *file, unsigned int cmd,
-			      unsigned long arg, struct gpio_device *gdev,
-			      ioctl_fn func)
-{
-	long ret;
-
-	down_read(&gdev->sem);
-	ret = func(file, cmd, arg);
-	up_read(&gdev->sem);
-
-	return ret;
-}
-
-static ssize_t call_read_locked(struct file *file, char __user *buf,
-				size_t count, loff_t *f_ps,
-				struct gpio_device *gdev, read_fn func)
-{
-	ssize_t ret;
-
-	down_read(&gdev->sem);
-	ret = func(file, buf, count, f_ps);
-	up_read(&gdev->sem);
-
-	return ret;
-}
-
 /*
  * GPIO line handle management
  */
@@ -234,8 +190,8 @@
 	return 0;
 }
 
-static long linehandle_ioctl_unlocked(struct file *file, unsigned int cmd,
-				      unsigned long arg)
+static long linehandle_ioctl(struct file *file, unsigned int cmd,
+			     unsigned long arg)
 {
 	struct linehandle_state *lh = file->private_data;
 	void __user *ip = (void __user *)arg;
@@ -293,15 +249,6 @@
 	}
 }
 
-static long linehandle_ioctl(struct file *file, unsigned int cmd,
-			     unsigned long arg)
-{
-	struct linehandle_state *lh = file->private_data;
-
-	return call_ioctl_locked(file, cmd, arg, lh->gdev,
-				 linehandle_ioctl_unlocked);
-}
-
 #ifdef CONFIG_COMPAT
 static long linehandle_ioctl_compat(struct file *file, unsigned int cmd,
 				    unsigned long arg)
@@ -1238,8 +1185,8 @@
 	return ret;
 }
 
-static long linereq_ioctl_unlocked(struct file *file, unsigned int cmd,
-				   unsigned long arg)
+static long linereq_ioctl(struct file *file, unsigned int cmd,
+			  unsigned long arg)
 {
 	struct linereq *lr = file->private_data;
 	void __user *ip = (void __user *)arg;
@@ -1259,15 +1206,6 @@
 	}
 }
 
-static long linereq_ioctl(struct file *file, unsigned int cmd,
-			  unsigned long arg)
-{
-	struct linereq *lr = file->private_data;
-
-	return call_ioctl_locked(file, cmd, arg, lr->gdev,
-				 linereq_ioctl_unlocked);
-}
-
 #ifdef CONFIG_COMPAT
 static long linereq_ioctl_compat(struct file *file, unsigned int cmd,
 				 unsigned long arg)
@@ -1276,8 +1214,8 @@
 }
 #endif
 
-static __poll_t linereq_poll_unlocked(struct file *file,
-				      struct poll_table_struct *wait)
+static __poll_t linereq_poll(struct file *file,
+			    struct poll_table_struct *wait)
 {
 	struct linereq *lr = file->private_data;
 	__poll_t events = 0;
@@ -1294,16 +1232,10 @@
 	return events;
 }
 
-static __poll_t linereq_poll(struct file *file,
-			     struct poll_table_struct *wait)
-{
-	struct linereq *lr = file->private_data;
-
-	return call_poll_locked(file, wait, lr->gdev, linereq_poll_unlocked);
-}
-
-static ssize_t linereq_read_unlocked(struct file *file, char __user *buf,
-				     size_t count, loff_t *f_ps)
+static ssize_t linereq_read(struct file *file,
+			    char __user *buf,
+			    size_t count,
+			    loff_t *f_ps)
 {
 	struct linereq *lr = file->private_data;
 	struct gpio_v2_line_event le;
@@ -1357,15 +1289,6 @@
 	return bytes_read;
 }
 
-static ssize_t linereq_read(struct file *file, char __user *buf,
-			    size_t count, loff_t *f_ps)
-{
-	struct linereq *lr = file->private_data;
-
-	return call_read_locked(file, buf, count, f_ps, lr->gdev,
-				linereq_read_unlocked);
-}
-
 static void linereq_free(struct linereq *lr)
 {
 	unsigned int i;
@@ -1581,8 +1504,8 @@
 	(GPIOEVENT_REQUEST_RISING_EDGE | \
 	GPIOEVENT_REQUEST_FALLING_EDGE)
 
-static __poll_t lineevent_poll_unlocked(struct file *file,
-					struct poll_table_struct *wait)
+static __poll_t lineevent_poll(struct file *file,
+			       struct poll_table_struct *wait)
 {
 	struct lineevent_state *le = file->private_data;
 	__poll_t events = 0;
@@ -1598,21 +1521,15 @@
 	return events;
 }
 
-static __poll_t lineevent_poll(struct file *file,
-			       struct poll_table_struct *wait)
-{
-	struct lineevent_state *le = file->private_data;
-
-	return call_poll_locked(file, wait, le->gdev, lineevent_poll_unlocked);
-}
-
 struct compat_gpioeevent_data {
 	compat_u64	timestamp;
 	u32		id;
 };
 
-static ssize_t lineevent_read_unlocked(struct file *file, char __user *buf,
-				       size_t count, loff_t *f_ps)
+static ssize_t lineevent_read(struct file *file,
+			      char __user *buf,
+			      size_t count,
+			      loff_t *f_ps)
 {
 	struct lineevent_state *le = file->private_data;
 	struct gpioevent_data ge;
@@ -1680,15 +1597,6 @@
 	return bytes_read;
 }
 
-static ssize_t lineevent_read(struct file *file, char __user *buf,
-			      size_t count, loff_t *f_ps)
-{
-	struct lineevent_state *le = file->private_data;
-
-	return call_read_locked(file, buf, count, f_ps, le->gdev,
-				lineevent_read_unlocked);
-}
-
 static void lineevent_free(struct lineevent_state *le)
 {
 	if (le->irq)
@@ -1706,8 +1614,8 @@
 	return 0;
 }
 
-static long lineevent_ioctl_unlocked(struct file *file, unsigned int cmd,
-				     unsigned long arg)
+static long lineevent_ioctl(struct file *file, unsigned int cmd,
+			    unsigned long arg)
 {
 	struct lineevent_state *le = file->private_data;
 	void __user *ip = (void __user *)arg;
@@ -1738,15 +1646,6 @@
 	return -EINVAL;
 }
 
-static long lineevent_ioctl(struct file *file, unsigned int cmd,
-			    unsigned long arg)
-{
-	struct lineevent_state *le = file->private_data;
-
-	return call_ioctl_locked(file, cmd, arg, le->gdev,
-				 lineevent_ioctl_unlocked);
-}
-
 #ifdef CONFIG_COMPAT
 static long lineevent_ioctl_compat(struct file *file, unsigned int cmd,
 				   unsigned long arg)
@@ -2303,8 +2202,8 @@
 	return NOTIFY_OK;
 }
 
-static __poll_t lineinfo_watch_poll_unlocked(struct file *file,
-					     struct poll_table_struct *pollt)
+static __poll_t lineinfo_watch_poll(struct file *file,
+				    struct poll_table_struct *pollt)
 {
 	struct gpio_chardev_data *cdev = file->private_data;
 	__poll_t events = 0;
@@ -2321,17 +2220,8 @@
 	return events;
 }
 
-static __poll_t lineinfo_watch_poll(struct file *file,
-				    struct poll_table_struct *pollt)
-{
-	struct gpio_chardev_data *cdev = file->private_data;
-
-	return call_poll_locked(file, pollt, cdev->gdev,
-				lineinfo_watch_poll_unlocked);
-}
-
-static ssize_t lineinfo_watch_read_unlocked(struct file *file, char __user *buf,
-					    size_t count, loff_t *off)
+static ssize_t lineinfo_watch_read(struct file *file, char __user *buf,
+				   size_t count, loff_t *off)
 {
 	struct gpio_chardev_data *cdev = file->private_data;
 	struct gpio_v2_line_info_changed event;
@@ -2409,15 +2299,6 @@
 	return bytes_read;
 }
 
-static ssize_t lineinfo_watch_read(struct file *file, char __user *buf,
-				   size_t count, loff_t *off)
-{
-	struct gpio_chardev_data *cdev = file->private_data;
-
-	return call_read_locked(file, buf, count, off, cdev->gdev,
-				lineinfo_watch_read_unlocked);
-}
-
 /**
  * gpio_chrdev_open() - open the chardev for ioctl operations
  * @inode: inode for this chardev
@@ -2431,17 +2312,13 @@
 	struct gpio_chardev_data *cdev;
 	int ret = -ENOMEM;
 
-	down_read(&gdev->sem);
-
 	/* Fail on open if the backing gpiochip is gone */
-	if (!gdev->chip) {
-		ret = -ENODEV;
-		goto out_unlock;
-	}
+	if (!gdev->chip)
+		return -ENODEV;
 
 	cdev = kzalloc(sizeof(*cdev), GFP_KERNEL);
 	if (!cdev)
-		goto out_unlock;
+		return -ENOMEM;
 
 	cdev->watched_lines = bitmap_zalloc(gdev->chip->ngpio, GFP_KERNEL);
 	if (!cdev->watched_lines)
@@ -2464,8 +2341,6 @@
 	if (ret)
 		goto out_unregister_notifier;
 
-	up_read(&gdev->sem);
-
 	return ret;
 
 out_unregister_notifier:
@@ -2475,8 +2350,6 @@
 	bitmap_free(cdev->watched_lines);
 out_free_cdev:
 	kfree(cdev);
-out_unlock:
-	up_read(&gdev->sem);
 	return ret;
 }
 
diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c
index 7a96eb6..8fc0d01 100644
--- a/drivers/gpio/gpiolib-of.c
+++ b/drivers/gpio/gpiolib-of.c
@@ -935,11 +935,6 @@
 	if (!np)
 		return 0;
 
-	if (!of_property_read_bool(np, "gpio-ranges") &&
-	    chip->of_gpio_ranges_fallback) {
-		return chip->of_gpio_ranges_fallback(chip, np);
-	}
-
 	group_names = of_find_property(np, group_names_propname, NULL);
 
 	for (;; index++) {
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index f9fdd11..fdca300 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -727,7 +727,6 @@
 	spin_unlock_irqrestore(&gpio_lock, flags);
 
 	BLOCKING_INIT_NOTIFIER_HEAD(&gdev->notifier);
-	init_rwsem(&gdev->sem);
 
 #ifdef CONFIG_PINCTRL
 	INIT_LIST_HEAD(&gdev->pin_ranges);
@@ -866,8 +865,6 @@
 	unsigned long	flags;
 	unsigned int	i;
 
-	down_write(&gdev->sem);
-
 	/* FIXME: should the legacy sysfs handling be moved to gpio_device? */
 	gpiochip_sysfs_unregister(gdev);
 	gpiochip_free_hogs(gc);
@@ -902,7 +899,6 @@
 	 * gone.
 	 */
 	gcdev_unregister(gdev);
-	up_write(&gdev->sem);
 	put_device(&gdev->dev);
 }
 EXPORT_SYMBOL_GPL(gpiochip_remove);
@@ -1578,14 +1574,9 @@
 	}
 
 	if (gc->irq.parent_handler) {
+		void *data = gc->irq.parent_handler_data ?: gc;
+
 		for (i = 0; i < gc->irq.num_parents; i++) {
-			void *data;
-
-			if (gc->irq.per_parent_data)
-				data = gc->irq.parent_handler_data_array[i];
-			else
-				data = gc->irq.parent_handler_data ?: gc;
-
 			/*
 			 * The parent IRQ chip is already using the chip_data
 			 * for this IRQ chip, so our callbacks simply use the
@@ -1683,14 +1674,6 @@
 	gc->to_irq = gpiochip_to_irq;
 	gc->irq.domain = domain;
 
-	/*
-	 * Using barrier() here to prevent compiler from reordering
-	 * gc->irq.initialized before adding irqdomain.
-	 */
-	barrier();
-
-	gc->irq.initialized = true;
-
 	return 0;
 }
 EXPORT_SYMBOL_GPL(gpiochip_irqchip_add_domain);
diff --git a/drivers/gpio/gpiolib.h b/drivers/gpio/gpiolib.h
index 73b732a..d77be9d 100644
--- a/drivers/gpio/gpiolib.h
+++ b/drivers/gpio/gpiolib.h
@@ -15,7 +15,6 @@
 #include <linux/device.h>
 #include <linux/module.h>
 #include <linux/cdev.h>
-#include <linux/rwsem.h>
 
 #define GPIOCHIP_NAME	"gpiochip"
 
@@ -40,9 +39,6 @@
  * @list: links gpio_device:s together for traversal
  * @notifier: used to notify subscribers about lines being requested, released
  *            or reconfigured
- * @sem: protects the structure from a NULL-pointer dereference of @chip by
- *       user-space operations when the device gets unregistered during
- *       a hot-unplug event
  * @pin_ranges: range of pins served by the GPIO driver
  *
  * This state container holds most of the runtime variable data
@@ -64,7 +60,6 @@
 	void			*data;
 	struct list_head        list;
 	struct blocking_notifier_head notifier;
-	struct rw_semaphore	sem;
 
 #ifdef CONFIG_PINCTRL
 	/*
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 5ba3163..c657cdc8 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -42,6 +42,8 @@
 #include <drm/drm_vblank.h>
 #include <drm/drm_writeback.h>
 
+#include <trace/hooks/drm_atomic.h>
+
 #include "drm_crtc_helper_internal.h"
 #include "drm_crtc_internal.h"
 
@@ -611,6 +613,7 @@
 	struct drm_connector_state *old_connector_state, *new_connector_state;
 	int i, ret;
 	unsigned int connectors_mask = 0;
+	bool allow = false;
 
 	for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
 		bool has_connectors =
@@ -717,6 +720,10 @@
 		if (ret != 0)
 			return ret;
 
+		trace_android_vh_drm_atomic_check_modeset(state, crtc, &allow);
+		if (allow)
+			continue;
+
 		ret = drm_atomic_add_affected_planes(state, crtc);
 		if (ret != 0)
 			return ret;
diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c
index 07f5abc..58a4d52 100644
--- a/drivers/gpu/drm/drm_framebuffer.c
+++ b/drivers/gpu/drm/drm_framebuffer.c
@@ -35,6 +35,8 @@
 #include <drm/drm_print.h>
 #include <drm/drm_util.h>
 
+#include <trace/hooks/drm_framebuffer.h>
+
 #include "drm_crtc_internal.h"
 #include "drm_internal.h"
 
@@ -961,6 +963,7 @@
 	int i, ret;
 	unsigned plane_mask;
 	bool disable_crtcs = false;
+	bool allow = false;
 
 retry_disable:
 	drm_modeset_acquire_init(&ctx, 0);
@@ -1030,6 +1033,10 @@
 			goto unlock;
 	}
 
+	trace_android_vh_atomic_remove_fb(fb, &allow);
+	if (allow)
+		goto unlock;
+
 	if (plane_mask)
 		ret = drm_atomic_commit(state);
 
diff --git a/drivers/gpu/drm/drm_gem_shmem_helper.c b/drivers/gpu/drm/drm_gem_shmem_helper.c
index 54f1ab3..ba55810 100644
--- a/drivers/gpu/drm/drm_gem_shmem_helper.c
+++ b/drivers/gpu/drm/drm_gem_shmem_helper.c
@@ -22,11 +22,6 @@
  *
  * This library provides helpers for GEM objects backed by shmem buffers
  * allocated using anonymous pageable memory.
- *
- * Functions that operate on the GEM object receive struct &drm_gem_shmem_object.
- * For GEM callback helpers in struct &drm_gem_object functions, see likewise
- * named functions with an _object_ infix (e.g., drm_gem_shmem_object_vmap() wraps
- * drm_gem_shmem_vmap()). These helpers perform the necessary type conversion.
  */
 
 static const struct drm_gem_object_funcs drm_gem_shmem_funcs = {
@@ -117,15 +112,15 @@
 EXPORT_SYMBOL_GPL(drm_gem_shmem_create);
 
 /**
- * drm_gem_shmem_free - Free resources associated with a shmem GEM object
- * @shmem: shmem GEM object to free
+ * drm_gem_shmem_free_object - Free resources associated with a shmem GEM object
+ * @obj: GEM object to free
  *
  * This function cleans up the GEM object state and frees the memory used to
  * store the object itself.
  */
-void drm_gem_shmem_free(struct drm_gem_shmem_object *shmem)
+void drm_gem_shmem_free_object(struct drm_gem_object *obj)
 {
-	struct drm_gem_object *obj = &shmem->base;
+	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
 
 	WARN_ON(shmem->vmap_use_count);
 
@@ -149,7 +144,7 @@
 	mutex_destroy(&shmem->vmap_lock);
 	kfree(shmem);
 }
-EXPORT_SYMBOL_GPL(drm_gem_shmem_free);
+EXPORT_SYMBOL_GPL(drm_gem_shmem_free_object);
 
 static int drm_gem_shmem_get_pages_locked(struct drm_gem_shmem_object *shmem)
 {
@@ -229,7 +224,7 @@
 
 /**
  * drm_gem_shmem_pin - Pin backing pages for a shmem GEM object
- * @shmem: shmem GEM object
+ * @obj: GEM object
  *
  * This function makes sure the backing pages are pinned in memory while the
  * buffer is exported.
@@ -237,8 +232,10 @@
  * Returns:
  * 0 on success or a negative error code on failure.
  */
-int drm_gem_shmem_pin(struct drm_gem_shmem_object *shmem)
+int drm_gem_shmem_pin(struct drm_gem_object *obj)
 {
+	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
+
 	WARN_ON(shmem->base.import_attach);
 
 	return drm_gem_shmem_get_pages(shmem);
@@ -247,13 +244,15 @@
 
 /**
  * drm_gem_shmem_unpin - Unpin backing pages for a shmem GEM object
- * @shmem: shmem GEM object
+ * @obj: GEM object
  *
  * This function removes the requirement that the backing pages are pinned in
  * memory.
  */
-void drm_gem_shmem_unpin(struct drm_gem_shmem_object *shmem)
+void drm_gem_shmem_unpin(struct drm_gem_object *obj)
 {
+	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
+
 	WARN_ON(shmem->base.import_attach);
 
 	drm_gem_shmem_put_pages(shmem);
@@ -328,8 +327,9 @@
  * Returns:
  * 0 on success or a negative error code on failure.
  */
-int drm_gem_shmem_vmap(struct drm_gem_shmem_object *shmem, struct dma_buf_map *map)
+int drm_gem_shmem_vmap(struct drm_gem_object *obj, struct dma_buf_map *map)
 {
+	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
 	int ret;
 
 	ret = mutex_lock_interruptible(&shmem->vmap_lock);
@@ -375,8 +375,10 @@
  * This function hides the differences between dma-buf imported and natively
  * allocated objects.
  */
-void drm_gem_shmem_vunmap(struct drm_gem_shmem_object *shmem, struct dma_buf_map *map)
+void drm_gem_shmem_vunmap(struct drm_gem_object *obj, struct dma_buf_map *map)
 {
+	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
+
 	mutex_lock(&shmem->vmap_lock);
 	drm_gem_shmem_vunmap_locked(shmem, map);
 	mutex_unlock(&shmem->vmap_lock);
@@ -411,8 +413,10 @@
 /* Update madvise status, returns true if not purged, else
  * false or -errno.
  */
-int drm_gem_shmem_madvise(struct drm_gem_shmem_object *shmem, int madv)
+int drm_gem_shmem_madvise(struct drm_gem_object *obj, int madv)
 {
+	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
+
 	mutex_lock(&shmem->pages_lock);
 
 	if (shmem->madv >= 0)
@@ -426,14 +430,14 @@
 }
 EXPORT_SYMBOL(drm_gem_shmem_madvise);
 
-void drm_gem_shmem_purge_locked(struct drm_gem_shmem_object *shmem)
+void drm_gem_shmem_purge_locked(struct drm_gem_object *obj)
 {
-	struct drm_gem_object *obj = &shmem->base;
 	struct drm_device *dev = obj->dev;
+	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
 
 	WARN_ON(!drm_gem_shmem_is_purgeable(shmem));
 
-	dma_unmap_sgtable(dev->dev, shmem->sgt, DMA_BIDIRECTIONAL, 0);
+	dma_unmap_sgtable(obj->dev->dev, shmem->sgt, DMA_BIDIRECTIONAL, 0);
 	sg_free_table(shmem->sgt);
 	kfree(shmem->sgt);
 	shmem->sgt = NULL;
@@ -452,15 +456,18 @@
 	 */
 	shmem_truncate_range(file_inode(obj->filp), 0, (loff_t)-1);
 
-	invalidate_mapping_pages(file_inode(obj->filp)->i_mapping, 0, (loff_t)-1);
+	invalidate_mapping_pages(file_inode(obj->filp)->i_mapping,
+			0, (loff_t)-1);
 }
 EXPORT_SYMBOL(drm_gem_shmem_purge_locked);
 
-bool drm_gem_shmem_purge(struct drm_gem_shmem_object *shmem)
+bool drm_gem_shmem_purge(struct drm_gem_object *obj)
 {
+	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
+
 	if (!mutex_trylock(&shmem->pages_lock))
 		return false;
-	drm_gem_shmem_purge_locked(shmem);
+	drm_gem_shmem_purge_locked(obj);
 	mutex_unlock(&shmem->pages_lock);
 
 	return true;
@@ -576,7 +583,7 @@
 
 /**
  * drm_gem_shmem_mmap - Memory-map a shmem GEM object
- * @shmem: shmem GEM object
+ * @obj: gem object
  * @vma: VMA for the area to be mapped
  *
  * This function implements an augmented version of the GEM DRM file mmap
@@ -585,9 +592,9 @@
  * Returns:
  * 0 on success or a negative error code on failure.
  */
-int drm_gem_shmem_mmap(struct drm_gem_shmem_object *shmem, struct vm_area_struct *vma)
+int drm_gem_shmem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma)
 {
-	struct drm_gem_object *obj = &shmem->base;
+	struct drm_gem_shmem_object *shmem;
 	int ret;
 
 	if (obj->import_attach) {
@@ -607,6 +614,8 @@
 		return ret;
 	}
 
+	shmem = to_drm_gem_shmem_obj(obj);
+
 	ret = drm_gem_shmem_get_pages(shmem);
 	if (ret)
 		return ret;
@@ -623,13 +632,15 @@
 
 /**
  * drm_gem_shmem_print_info() - Print &drm_gem_shmem_object info for debugfs
- * @shmem: shmem GEM object
  * @p: DRM printer
  * @indent: Tab indentation level
+ * @obj: GEM object
  */
-void drm_gem_shmem_print_info(const struct drm_gem_shmem_object *shmem,
-			      struct drm_printer *p, unsigned int indent)
+void drm_gem_shmem_print_info(struct drm_printer *p, unsigned int indent,
+			      const struct drm_gem_object *obj)
 {
+	const struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
+
 	drm_printf_indent(p, indent, "pages_use_count=%u\n", shmem->pages_use_count);
 	drm_printf_indent(p, indent, "vmap_use_count=%u\n", shmem->vmap_use_count);
 	drm_printf_indent(p, indent, "vaddr=%p\n", shmem->vaddr);
@@ -639,7 +650,7 @@
 /**
  * drm_gem_shmem_get_sg_table - Provide a scatter/gather table of pinned
  *                              pages for a shmem GEM object
- * @shmem: shmem GEM object
+ * @obj: GEM object
  *
  * This function exports a scatter/gather table suitable for PRIME usage by
  * calling the standard DMA mapping API.
@@ -650,9 +661,9 @@
  * Returns:
  * A pointer to the scatter/gather table of pinned pages or NULL on failure.
  */
-struct sg_table *drm_gem_shmem_get_sg_table(struct drm_gem_shmem_object *shmem)
+struct sg_table *drm_gem_shmem_get_sg_table(struct drm_gem_object *obj)
 {
-	struct drm_gem_object *obj = &shmem->base;
+	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
 
 	WARN_ON(shmem->base.import_attach);
 
@@ -660,10 +671,26 @@
 }
 EXPORT_SYMBOL_GPL(drm_gem_shmem_get_sg_table);
 
-static struct sg_table *drm_gem_shmem_get_pages_sgt_locked(struct drm_gem_shmem_object *shmem)
+/**
+ * drm_gem_shmem_get_pages_sgt - Pin pages, dma map them, and return a
+ *				 scatter/gather table for a shmem GEM object.
+ * @obj: GEM object
+ *
+ * This function returns a scatter/gather table suitable for driver usage. If
+ * the sg table doesn't exist, the pages are pinned, dma-mapped, and a sg
+ * table created.
+ *
+ * This is the main function for drivers to get at backing storage, and it hides
+ * and difference between dma-buf imported and natively allocated objects.
+ * drm_gem_shmem_get_sg_table() should not be directly called by drivers.
+ *
+ * Returns:
+ * A pointer to the scatter/gather table of pinned pages or errno on failure.
+ */
+struct sg_table *drm_gem_shmem_get_pages_sgt(struct drm_gem_object *obj)
 {
-	struct drm_gem_object *obj = &shmem->base;
 	int ret;
+	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
 	struct sg_table *sgt;
 
 	if (shmem->sgt)
@@ -675,7 +702,7 @@
 	if (ret)
 		return ERR_PTR(ret);
 
-	sgt = drm_gem_shmem_get_sg_table(shmem);
+	sgt = drm_gem_shmem_get_sg_table(&shmem->base);
 	if (IS_ERR(sgt)) {
 		ret = PTR_ERR(sgt);
 		goto err_put_pages;
@@ -696,36 +723,6 @@
 	drm_gem_shmem_put_pages_locked(shmem);
 	return ERR_PTR(ret);
 }
-
-/**
- * drm_gem_shmem_get_pages_sgt - Pin pages, dma map them, and return a
- *				 scatter/gather table for a shmem GEM object.
- * @shmem: shmem GEM object
- *
- * This function returns a scatter/gather table suitable for driver usage. If
- * the sg table doesn't exist, the pages are pinned, dma-mapped, and a sg
- * table created.
- *
- * This is the main function for drivers to get at backing storage, and it hides
- * and difference between dma-buf imported and natively allocated objects.
- * drm_gem_shmem_get_sg_table() should not be directly called by drivers.
- *
- * Returns:
- * A pointer to the scatter/gather table of pinned pages or errno on failure.
- */
-struct sg_table *drm_gem_shmem_get_pages_sgt(struct drm_gem_shmem_object *shmem)
-{
-	int ret;
-	struct sg_table *sgt;
-
-	ret = mutex_lock_interruptible(&shmem->pages_lock);
-	if (ret)
-		return ERR_PTR(ret);
-	sgt = drm_gem_shmem_get_pages_sgt_locked(shmem);
-	mutex_unlock(&shmem->pages_lock);
-
-	return sgt;
-}
 EXPORT_SYMBOL_GPL(drm_gem_shmem_get_pages_sgt);
 
 /**
diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
index fb5e6f8..d5f7668 100644
--- a/drivers/gpu/drm/drm_ioctl.c
+++ b/drivers/gpu/drm/drm_ioctl.c
@@ -691,9 +691,9 @@
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_RMFB, drm_mode_rmfb_ioctl, 0),
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_PAGE_FLIP, drm_mode_page_flip_ioctl, DRM_MASTER),
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_DIRTYFB, drm_mode_dirtyfb_ioctl, DRM_MASTER),
-	DRM_IOCTL_DEF(DRM_IOCTL_MODE_CREATE_DUMB, drm_mode_create_dumb_ioctl, 0),
-	DRM_IOCTL_DEF(DRM_IOCTL_MODE_MAP_DUMB, drm_mode_mmap_dumb_ioctl, 0),
-	DRM_IOCTL_DEF(DRM_IOCTL_MODE_DESTROY_DUMB, drm_mode_destroy_dumb_ioctl, 0),
+	DRM_IOCTL_DEF(DRM_IOCTL_MODE_CREATE_DUMB, drm_mode_create_dumb_ioctl, DRM_RENDER_ALLOW),
+	DRM_IOCTL_DEF(DRM_IOCTL_MODE_MAP_DUMB, drm_mode_mmap_dumb_ioctl, DRM_RENDER_ALLOW),
+	DRM_IOCTL_DEF(DRM_IOCTL_MODE_DESTROY_DUMB, drm_mode_destroy_dumb_ioctl, DRM_RENDER_ALLOW),
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_OBJ_GETPROPERTIES, drm_mode_obj_get_properties_ioctl, 0),
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_OBJ_SETPROPERTY, drm_mode_obj_set_property_ioctl, DRM_MASTER),
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_CURSOR2, drm_mode_cursor2_ioctl, DRM_MASTER),
diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c
index 1c72208..3c4b651 100644
--- a/drivers/gpu/drm/drm_modes.c
+++ b/drivers/gpu/drm/drm_modes.c
@@ -1938,6 +1938,7 @@
 	strncpy(out->name, in->name, DRM_DISPLAY_MODE_LEN);
 	out->name[DRM_DISPLAY_MODE_LEN-1] = 0;
 }
+EXPORT_SYMBOL_GPL(drm_mode_convert_to_umode);
 
 /**
  * drm_mode_convert_umode - convert a modeinfo into a drm_display_mode
@@ -2014,6 +2015,7 @@
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(drm_mode_convert_umode);
 
 /**
  * drm_mode_is_420_only - if a given videomode can be only supported in YCBCR420
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index 9cf6ac5..4c5584f 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -494,7 +494,7 @@
 }
 
 static struct i915_vma_coredump *
-__find_vma(struct i915_vma_coredump *vma, const char *name)
+__i915_find_vma(struct i915_vma_coredump *vma, const char *name)
 {
 	while (vma) {
 		if (strcmp(vma->name, name) == 0)
@@ -508,7 +508,7 @@
 static struct i915_vma_coredump *
 find_batch(const struct intel_engine_coredump *ee)
 {
-	return __find_vma(ee->vma, "batch");
+	return __i915_find_vma(ee->vma, "batch");
 }
 
 static void error_print_engine(struct drm_i915_error_state_buf *m,
diff --git a/drivers/gpu/drm/lima/lima_gem.c b/drivers/gpu/drm/lima/lima_gem.c
index 09ea621..6590e1c 100644
--- a/drivers/gpu/drm/lima/lima_gem.c
+++ b/drivers/gpu/drm/lima/lima_gem.c
@@ -127,7 +127,7 @@
 		if (err)
 			goto out;
 	} else {
-		struct sg_table *sgt = drm_gem_shmem_get_pages_sgt(shmem);
+		struct sg_table *sgt = drm_gem_shmem_get_pages_sgt(obj);
 
 		if (IS_ERR(sgt)) {
 			err = PTR_ERR(sgt);
@@ -151,7 +151,7 @@
 	if (!list_empty(&bo->va))
 		dev_err(obj->dev->dev, "lima gem free bo still has va\n");
 
-	drm_gem_shmem_free(&bo->base);
+	drm_gem_shmem_free_object(obj);
 }
 
 static int lima_gem_object_open(struct drm_gem_object *obj, struct drm_file *file)
@@ -179,7 +179,7 @@
 	if (bo->heap_size)
 		return -EINVAL;
 
-	return drm_gem_shmem_pin(&bo->base);
+	return drm_gem_shmem_pin(obj);
 }
 
 static int lima_gem_vmap(struct drm_gem_object *obj, struct dma_buf_map *map)
@@ -189,7 +189,7 @@
 	if (bo->heap_size)
 		return -EINVAL;
 
-	return drm_gem_shmem_vmap(&bo->base, map);
+	return drm_gem_shmem_vmap(obj, map);
 }
 
 static int lima_gem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma)
@@ -199,7 +199,7 @@
 	if (bo->heap_size)
 		return -EINVAL;
 
-	return drm_gem_shmem_mmap(&bo->base, vma);
+	return drm_gem_shmem_mmap(obj, vma);
 }
 
 static const struct drm_gem_object_funcs lima_gem_funcs = {
diff --git a/drivers/gpu/drm/lima/lima_sched.c b/drivers/gpu/drm/lima/lima_sched.c
index 2e817db..dba8329 100644
--- a/drivers/gpu/drm/lima/lima_sched.c
+++ b/drivers/gpu/drm/lima/lima_sched.c
@@ -390,7 +390,7 @@
 		} else {
 			buffer_chunk->size = lima_bo_size(bo);
 
-			ret = drm_gem_shmem_vmap(&bo->base, &map);
+			ret = drm_gem_shmem_vmap(&bo->base.base, &map);
 			if (ret) {
 				kvfree(et);
 				goto out;
@@ -398,7 +398,7 @@
 
 			memcpy(buffer_chunk + 1, map.vaddr, buffer_chunk->size);
 
-			drm_gem_shmem_vunmap(&bo->base, &map);
+			drm_gem_shmem_vunmap(&bo->base.base, &map);
 		}
 
 		buffer_chunk = (void *)(buffer_chunk + 1) + buffer_chunk->size;
diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
index 4c27124..074568c 100644
--- a/drivers/gpu/drm/panfrost/panfrost_drv.c
+++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
@@ -427,7 +427,7 @@
 		}
 	}
 
-	args->retained = drm_gem_shmem_madvise(&bo->base, args->madv);
+	args->retained = drm_gem_shmem_madvise(gem_obj, args->madv);
 
 	if (args->retained) {
 		if (args->madv == PANFROST_MADV_DONTNEED)
diff --git a/drivers/gpu/drm/panfrost/panfrost_gem.c b/drivers/gpu/drm/panfrost/panfrost_gem.c
index 55e3a68..be6c86a 100644
--- a/drivers/gpu/drm/panfrost/panfrost_gem.c
+++ b/drivers/gpu/drm/panfrost/panfrost_gem.c
@@ -49,7 +49,7 @@
 		kvfree(bo->sgts);
 	}
 
-	drm_gem_shmem_free(&bo->base);
+	drm_gem_shmem_free_object(obj);
 }
 
 struct panfrost_gem_mapping *
@@ -187,12 +187,10 @@
 
 static int panfrost_gem_pin(struct drm_gem_object *obj)
 {
-	struct panfrost_gem_object *bo = to_panfrost_bo(obj);
-
-	if (bo->is_heap)
+	if (to_panfrost_bo(obj)->is_heap)
 		return -EINVAL;
 
-	return drm_gem_shmem_pin(&bo->base);
+	return drm_gem_shmem_pin(obj);
 }
 
 static const struct drm_gem_object_funcs panfrost_gem_funcs = {
diff --git a/drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c b/drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
index b014234..1b9f68d 100644
--- a/drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
+++ b/drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
@@ -52,7 +52,7 @@
 		goto unlock_mappings;
 
 	panfrost_gem_teardown_mappings_locked(bo);
-	drm_gem_shmem_purge_locked(&bo->base);
+	drm_gem_shmem_purge_locked(obj);
 	ret = true;
 
 	mutex_unlock(&shmem->pages_lock);
diff --git a/drivers/gpu/drm/panfrost/panfrost_mmu.c b/drivers/gpu/drm/panfrost/panfrost_mmu.c
index b5ee076..fb2b4b5 100644
--- a/drivers/gpu/drm/panfrost/panfrost_mmu.c
+++ b/drivers/gpu/drm/panfrost/panfrost_mmu.c
@@ -288,8 +288,7 @@
 int panfrost_mmu_map(struct panfrost_gem_mapping *mapping)
 {
 	struct panfrost_gem_object *bo = mapping->obj;
-	struct drm_gem_shmem_object *shmem = &bo->base;
-	struct drm_gem_object *obj = &shmem->base;
+	struct drm_gem_object *obj = &bo->base.base;
 	struct panfrost_device *pfdev = to_panfrost_device(obj->dev);
 	struct sg_table *sgt;
 	int prot = IOMMU_READ | IOMMU_WRITE;
@@ -300,7 +299,7 @@
 	if (bo->noexec)
 		prot |= IOMMU_NOEXEC;
 
-	sgt = drm_gem_shmem_get_pages_sgt(shmem);
+	sgt = drm_gem_shmem_get_pages_sgt(obj);
 	if (WARN_ON(IS_ERR(sgt)))
 		return PTR_ERR(sgt);
 
diff --git a/drivers/gpu/drm/panfrost/panfrost_perfcnt.c b/drivers/gpu/drm/panfrost/panfrost_perfcnt.c
index 9d9c067..5ab03d60 100644
--- a/drivers/gpu/drm/panfrost/panfrost_perfcnt.c
+++ b/drivers/gpu/drm/panfrost/panfrost_perfcnt.c
@@ -105,7 +105,7 @@
 		goto err_close_bo;
 	}
 
-	ret = drm_gem_shmem_vmap(bo, &map);
+	ret = drm_gem_shmem_vmap(&bo->base, &map);
 	if (ret)
 		goto err_put_mapping;
 	perfcnt->buf = map.vaddr;
@@ -164,7 +164,7 @@
 	return 0;
 
 err_vunmap:
-	drm_gem_shmem_vunmap(bo, &map);
+	drm_gem_shmem_vunmap(&bo->base, &map);
 err_put_mapping:
 	panfrost_gem_mapping_put(perfcnt->mapping);
 err_close_bo:
@@ -194,7 +194,7 @@
 		  GPU_PERFCNT_CFG_MODE(GPU_PERFCNT_CFG_MODE_OFF));
 
 	perfcnt->user = NULL;
-	drm_gem_shmem_vunmap(&perfcnt->mapping->obj->base, &map);
+	drm_gem_shmem_vunmap(&perfcnt->mapping->obj->base.base, &map);
 	perfcnt->buf = NULL;
 	panfrost_gem_close(&perfcnt->mapping->obj->base.base, file_priv);
 	panfrost_mmu_as_put(pfdev, perfcnt->mapping->mmu);
diff --git a/drivers/gpu/drm/v3d/v3d_bo.c b/drivers/gpu/drm/v3d/v3d_bo.c
index 0d9af62..b50677b 100644
--- a/drivers/gpu/drm/v3d/v3d_bo.c
+++ b/drivers/gpu/drm/v3d/v3d_bo.c
@@ -47,7 +47,7 @@
 	/* GPU execution may have dirtied any pages in the BO. */
 	bo->base.pages_mark_dirty_on_put = true;
 
-	drm_gem_shmem_free(&bo->base);
+	drm_gem_shmem_free_object(obj);
 }
 
 static const struct drm_gem_object_funcs v3d_gem_funcs = {
@@ -95,7 +95,7 @@
 	/* So far we pin the BO in the MMU for its lifetime, so use
 	 * shmem's helper for getting a lifetime sgt.
 	 */
-	sgt = drm_gem_shmem_get_pages_sgt(&bo->base);
+	sgt = drm_gem_shmem_get_pages_sgt(&bo->base.base);
 	if (IS_ERR(sgt))
 		return PTR_ERR(sgt);
 
@@ -141,7 +141,7 @@
 	return bo;
 
 free_obj:
-	drm_gem_shmem_free(shmem_obj);
+	drm_gem_shmem_free_object(&shmem_obj->base);
 	return ERR_PTR(ret);
 }
 
@@ -159,7 +159,7 @@
 
 	ret = v3d_bo_create_finish(obj);
 	if (ret) {
-		drm_gem_shmem_free(&to_v3d_bo(obj)->base);
+		drm_gem_shmem_free_object(obj);
 		return ERR_PTR(ret);
 	}
 
diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
index ef1f190..938dfcf 100644
--- a/drivers/gpu/drm/virtio/virtgpu_display.c
+++ b/drivers/gpu/drm/virtio/virtgpu_display.c
@@ -300,10 +300,6 @@
 	struct virtio_gpu_framebuffer *virtio_gpu_fb;
 	int ret;
 
-	if (mode_cmd->pixel_format != DRM_FORMAT_HOST_XRGB8888 &&
-	    mode_cmd->pixel_format != DRM_FORMAT_HOST_ARGB8888)
-		return ERR_PTR(-ENOENT);
-
 	/* lookup object associated with res handle */
 	obj = drm_gem_object_lookup(file_priv, mode_cmd->handles[0]);
 	if (!obj)
@@ -337,7 +333,6 @@
 	if (ret)
 		return ret;
 
-	vgdev->ddev->mode_config.quirk_addfb_prefer_host_byte_order = true;
 	vgdev->ddev->mode_config.funcs = &virtio_gpu_mode_funcs;
 
 	/* modes will be validated against the framebuffer size */
diff --git a/drivers/gpu/drm/virtio/virtgpu_object.c b/drivers/gpu/drm/virtio/virtgpu_object.c
index 25d399b..e695032 100644
--- a/drivers/gpu/drm/virtio/virtgpu_object.c
+++ b/drivers/gpu/drm/virtio/virtgpu_object.c
@@ -79,10 +79,10 @@
 			sg_free_table(shmem->pages);
 			kfree(shmem->pages);
 			shmem->pages = NULL;
-			drm_gem_shmem_unpin(&bo->base);
+			drm_gem_shmem_unpin(&bo->base.base);
 		}
 
-		drm_gem_shmem_free(&bo->base);
+		drm_gem_shmem_free_object(&bo->base.base);
 	} else if (virtio_gpu_is_vram(bo)) {
 		struct virtio_gpu_object_vram *vram = to_virtio_gpu_vram(bo);
 
@@ -156,7 +156,7 @@
 	struct scatterlist *sg;
 	int si, ret;
 
-	ret = drm_gem_shmem_pin(&bo->base);
+	ret = drm_gem_shmem_pin(&bo->base.base);
 	if (ret < 0)
 		return -EINVAL;
 
@@ -166,9 +166,9 @@
 	 * dma-ops. This is discouraged for other drivers, but should be fine
 	 * since virtio_gpu doesn't support dma-buf import from other devices.
 	 */
-	shmem->pages = drm_gem_shmem_get_sg_table(&bo->base);
+	shmem->pages = drm_gem_shmem_get_sg_table(&bo->base.base);
 	if (IS_ERR(shmem->pages)) {
-		drm_gem_shmem_unpin(&bo->base);
+		drm_gem_shmem_unpin(&bo->base.base);
 		ret = PTR_ERR(shmem->pages);
 		shmem->pages = NULL;
 		return ret;
@@ -280,6 +280,6 @@
 err_put_id:
 	virtio_gpu_resource_id_put(vgdev, bo->hw_res_handle);
 err_free_gem:
-	drm_gem_shmem_free(shmem_obj);
+	drm_gem_shmem_free_object(&shmem_obj->base);
 	return ret;
 }
diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c b/drivers/gpu/drm/virtio/virtgpu_plane.c
index 7e8cbce..04d6cbc 100644
--- a/drivers/gpu/drm/virtio/virtgpu_plane.c
+++ b/drivers/gpu/drm/virtio/virtgpu_plane.c
@@ -31,7 +31,14 @@
 #include "virtgpu_drv.h"
 
 static const uint32_t virtio_gpu_formats[] = {
-	DRM_FORMAT_HOST_XRGB8888,
+	DRM_FORMAT_XRGB8888,
+	DRM_FORMAT_ARGB8888,
+	DRM_FORMAT_BGRX8888,
+	DRM_FORMAT_BGRA8888,
+	DRM_FORMAT_RGBX8888,
+	DRM_FORMAT_RGBA8888,
+	DRM_FORMAT_XBGR8888,
+	DRM_FORMAT_ABGR8888,
 };
 
 static const uint32_t virtio_gpu_cursor_formats[] = {
@@ -43,6 +50,32 @@
 	uint32_t format;
 
 	switch (drm_fourcc) {
+#ifdef __BIG_ENDIAN
+	case DRM_FORMAT_XRGB8888:
+		format = VIRTIO_GPU_FORMAT_X8R8G8B8_UNORM;
+		break;
+	case DRM_FORMAT_ARGB8888:
+		format = VIRTIO_GPU_FORMAT_A8R8G8B8_UNORM;
+		break;
+	case DRM_FORMAT_BGRX8888:
+		format = VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM;
+		break;
+	case DRM_FORMAT_BGRA8888:
+		format = VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM;
+		break;
+	case DRM_FORMAT_RGBX8888:
+		format = VIRTIO_GPU_FORMAT_R8G8B8X8_UNORM;
+		break;
+	case DRM_FORMAT_RGBA8888:
+		format = VIRTIO_GPU_FORMAT_R8G8B8A8_UNORM;
+		break;
+	case DRM_FORMAT_XBGR8888:
+		format = VIRTIO_GPU_FORMAT_X8B8G8R8_UNORM;
+		break;
+	case DRM_FORMAT_ABGR8888:
+		format = VIRTIO_GPU_FORMAT_A8B8G8R8_UNORM;
+		break;
+#else
 	case DRM_FORMAT_XRGB8888:
 		format = VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM;
 		break;
@@ -55,6 +88,19 @@
 	case DRM_FORMAT_BGRA8888:
 		format = VIRTIO_GPU_FORMAT_A8R8G8B8_UNORM;
 		break;
+	case DRM_FORMAT_RGBX8888:
+		format = VIRTIO_GPU_FORMAT_X8B8G8R8_UNORM;
+		break;
+	case DRM_FORMAT_RGBA8888:
+		format = VIRTIO_GPU_FORMAT_A8B8G8R8_UNORM;
+		break;
+	case DRM_FORMAT_XBGR8888:
+		format = VIRTIO_GPU_FORMAT_R8G8B8X8_UNORM;
+		break;
+	case DRM_FORMAT_ABGR8888:
+		format = VIRTIO_GPU_FORMAT_R8G8B8A8_UNORM;
+		break;
+#endif
 	default:
 		/*
 		 * This should not happen, we handle everything listed
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
index 9235ab7..df17407 100644
--- a/drivers/hid/Kconfig
+++ b/drivers/hid/Kconfig
@@ -731,6 +731,17 @@
 	  To compile this driver as a module, choose M here: the
 	  module will be called hid-multitouch.
 
+config HID_NINTENDO
+	tristate "Nintendo Joy-Con and Pro Controller support"
+	depends on HID
+	help
+	Adds support for the Nintendo Switch Joy-Cons and Pro Controller.
+	All controllers support bluetooth, and the Pro Controller also supports
+	its USB mode.
+
+	To compile this driver as a module, choose M here: the
+	module will be called hid-nintendo.
+
 config HID_NTI
 	tristate "NTI keyboard adapters"
 	help
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
index e29efcb..7a71371 100644
--- a/drivers/hid/Makefile
+++ b/drivers/hid/Makefile
@@ -78,6 +78,7 @@
 obj-$(CONFIG_HID_MICROSOFT)	+= hid-microsoft.o
 obj-$(CONFIG_HID_MONTEREY)	+= hid-monterey.o
 obj-$(CONFIG_HID_MULTITOUCH)	+= hid-multitouch.o
+obj-$(CONFIG_HID_NINTENDO)	+= hid-nintendo.o
 obj-$(CONFIG_HID_NTI)			+= hid-nti.o
 obj-$(CONFIG_HID_NTRIG)		+= hid-ntrig.o
 obj-$(CONFIG_HID_ORTEK)		+= hid-ortek.o
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index d941023..c003219 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -32,6 +32,7 @@
 #include <linux/hiddev.h>
 #include <linux/hid-debug.h>
 #include <linux/hidraw.h>
+#include <linux/uhid.h>
 
 #include "hid-ids.h"
 
@@ -289,8 +290,8 @@
 	offset = report->size;
 	report->size += parser->global.report_size * parser->global.report_count;
 
-	if (parser->device->ll_driver->max_buffer_size)
-		max_buffer_size = parser->device->ll_driver->max_buffer_size;
+	if (IS_ENABLED(CONFIG_UHID) && parser->device->ll_driver == &uhid_hid_driver)
+		max_buffer_size = UHID_DATA_MAX;
 
 	/* Total size check: Allow for possible report index byte */
 	if (report->size > (max_buffer_size - 1) << 3) {
@@ -1773,8 +1774,8 @@
 
 	rsize = hid_compute_report_size(report);
 
-	if (hid->ll_driver->max_buffer_size)
-		max_buffer_size = hid->ll_driver->max_buffer_size;
+	if (IS_ENABLED(CONFIG_UHID) && hid->ll_driver == &uhid_hid_driver)
+		max_buffer_size = UHID_DATA_MAX;
 
 	if (report_enum->numbered && rsize >= max_buffer_size)
 		rsize = max_buffer_size - 1;
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 5fceefb..6a8ad8d 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -929,6 +929,9 @@
 #define USB_VENDOR_ID_NINTENDO		0x057e
 #define USB_DEVICE_ID_NINTENDO_WIIMOTE	0x0306
 #define USB_DEVICE_ID_NINTENDO_WIIMOTE2	0x0330
+#define USB_DEVICE_ID_NINTENDO_JOYCONL	0x2006
+#define USB_DEVICE_ID_NINTENDO_JOYCONR	0x2007
+#define USB_DEVICE_ID_NINTENDO_PROCON	0x2009
 
 #define USB_VENDOR_ID_NOVATEK		0x0603
 #define USB_DEVICE_ID_NOVATEK_PCT	0x0600
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index 0ae959e..894de39 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -1127,6 +1127,16 @@
 			return;
 		}
 		goto unknown;
+	case HID_UP_CAMERA:
+		switch (usage->hid & HID_USAGE) {
+		case 0x020:
+			map_key_clear(KEY_CAMERA_FOCUS);	break;
+		case 0x021:
+			map_key_clear(KEY_CAMERA);		break;
+		default:
+			goto ignore;
+		}
+		break;
 
 	case HID_UP_HPVENDOR:	/* Reported on a Dutch layout HP5308 */
 		set_bit(EV_REP, input->evbit);
diff --git a/drivers/hid/hid-nintendo.c b/drivers/hid/hid-nintendo.c
new file mode 100644
index 0000000..3695b96
--- /dev/null
+++ b/drivers/hid/hid-nintendo.c
@@ -0,0 +1,820 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * HID driver for Nintendo Switch Joy-Cons and Pro Controllers
+ *
+ * Copyright (c) 2019 Daniel J. Ogorchock <djogorchock@gmail.com>
+ *
+ * The following resources/projects were referenced for this driver:
+ *   https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering
+ *   https://gitlab.com/pjranki/joycon-linux-kernel (Peter Rankin)
+ *   https://github.com/FrotBot/SwitchProConLinuxUSB
+ *   https://github.com/MTCKC/ProconXInput
+ *   hid-wiimote kernel hid driver
+ *   hid-logitech-hidpp driver
+ *
+ * This driver supports the Nintendo Switch Joy-Cons and Pro Controllers. The
+ * Pro Controllers can either be used over USB or Bluetooth.
+ *
+ * The driver will retrieve the factory calibration info from the controllers,
+ * so little to no user calibration should be required.
+ *
+ */
+
+#include "hid-ids.h"
+#include <linux/delay.h>
+#include <linux/device.h>
+#include <linux/hid.h>
+#include <linux/input.h>
+#include <linux/module.h>
+#include <linux/spinlock.h>
+
+/*
+ * Reference the url below for the following HID report defines:
+ * https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering
+ */
+
+/* Output Reports */
+static const u8 JC_OUTPUT_RUMBLE_AND_SUBCMD	= 0x01;
+static const u8 JC_OUTPUT_FW_UPDATE_PKT		= 0x03;
+static const u8 JC_OUTPUT_RUMBLE_ONLY		= 0x10;
+static const u8 JC_OUTPUT_MCU_DATA		= 0x11;
+static const u8 JC_OUTPUT_USB_CMD		= 0x80;
+
+/* Subcommand IDs */
+static const u8 JC_SUBCMD_STATE			/*= 0x00*/;
+static const u8 JC_SUBCMD_MANUAL_BT_PAIRING	= 0x01;
+static const u8 JC_SUBCMD_REQ_DEV_INFO		= 0x02;
+static const u8 JC_SUBCMD_SET_REPORT_MODE	= 0x03;
+static const u8 JC_SUBCMD_TRIGGERS_ELAPSED	= 0x04;
+static const u8 JC_SUBCMD_GET_PAGE_LIST_STATE	= 0x05;
+static const u8 JC_SUBCMD_SET_HCI_STATE		= 0x06;
+static const u8 JC_SUBCMD_RESET_PAIRING_INFO	= 0x07;
+static const u8 JC_SUBCMD_LOW_POWER_MODE	= 0x08;
+static const u8 JC_SUBCMD_SPI_FLASH_READ	= 0x10;
+static const u8 JC_SUBCMD_SPI_FLASH_WRITE	= 0x11;
+static const u8 JC_SUBCMD_RESET_MCU		= 0x20;
+static const u8 JC_SUBCMD_SET_MCU_CONFIG	= 0x21;
+static const u8 JC_SUBCMD_SET_MCU_STATE		= 0x22;
+static const u8 JC_SUBCMD_SET_PLAYER_LIGHTS	= 0x30;
+static const u8 JC_SUBCMD_GET_PLAYER_LIGHTS	= 0x31;
+static const u8 JC_SUBCMD_SET_HOME_LIGHT	= 0x38;
+static const u8 JC_SUBCMD_ENABLE_IMU		= 0x40;
+static const u8 JC_SUBCMD_SET_IMU_SENSITIVITY	= 0x41;
+static const u8 JC_SUBCMD_WRITE_IMU_REG		= 0x42;
+static const u8 JC_SUBCMD_READ_IMU_REG		= 0x43;
+static const u8 JC_SUBCMD_ENABLE_VIBRATION	= 0x48;
+static const u8 JC_SUBCMD_GET_REGULATED_VOLTAGE	= 0x50;
+
+/* Input Reports */
+static const u8 JC_INPUT_BUTTON_EVENT		= 0x3F;
+static const u8 JC_INPUT_SUBCMD_REPLY		= 0x21;
+static const u8 JC_INPUT_IMU_DATA		= 0x30;
+static const u8 JC_INPUT_MCU_DATA		= 0x31;
+static const u8 JC_INPUT_USB_RESPONSE		= 0x81;
+
+/* Feature Reports */
+static const u8 JC_FEATURE_LAST_SUBCMD		= 0x02;
+static const u8 JC_FEATURE_OTA_FW_UPGRADE	= 0x70;
+static const u8 JC_FEATURE_SETUP_MEM_READ	= 0x71;
+static const u8 JC_FEATURE_MEM_READ		= 0x72;
+static const u8 JC_FEATURE_ERASE_MEM_SECTOR	= 0x73;
+static const u8 JC_FEATURE_MEM_WRITE		= 0x74;
+static const u8 JC_FEATURE_LAUNCH		= 0x75;
+
+/* USB Commands */
+static const u8 JC_USB_CMD_CONN_STATUS		= 0x01;
+static const u8 JC_USB_CMD_HANDSHAKE		= 0x02;
+static const u8 JC_USB_CMD_BAUDRATE_3M		= 0x03;
+static const u8 JC_USB_CMD_NO_TIMEOUT		= 0x04;
+static const u8 JC_USB_CMD_EN_TIMEOUT		= 0x05;
+static const u8 JC_USB_RESET			= 0x06;
+static const u8 JC_USB_PRE_HANDSHAKE		= 0x91;
+static const u8 JC_USB_SEND_UART		= 0x92;
+
+/* SPI storage addresses of factory calibration data */
+static const u16 JC_CAL_DATA_START		= 0x603d;
+static const u16 JC_CAL_DATA_END		= 0x604e;
+#define JC_CAL_DATA_SIZE	(JC_CAL_DATA_END - JC_CAL_DATA_START + 1)
+
+
+/* The raw analog joystick values will be mapped in terms of this magnitude */
+static const u16 JC_MAX_STICK_MAG		= 32767;
+static const u16 JC_STICK_FUZZ			= 250;
+static const u16 JC_STICK_FLAT			= 500;
+
+/* States for controller state machine */
+enum joycon_ctlr_state {
+	JOYCON_CTLR_STATE_INIT,
+	JOYCON_CTLR_STATE_READ,
+};
+
+struct joycon_stick_cal {
+	s32 max;
+	s32 min;
+	s32 center;
+};
+
+/*
+ * All the controller's button values are stored in a u32.
+ * They can be accessed with bitwise ANDs.
+ */
+static const u32 JC_BTN_Y	= BIT(0);
+static const u32 JC_BTN_X	= BIT(1);
+static const u32 JC_BTN_B	= BIT(2);
+static const u32 JC_BTN_A	= BIT(3);
+static const u32 JC_BTN_SR_R	= BIT(4);
+static const u32 JC_BTN_SL_R	= BIT(5);
+static const u32 JC_BTN_R	= BIT(6);
+static const u32 JC_BTN_ZR	= BIT(7);
+static const u32 JC_BTN_MINUS	= BIT(8);
+static const u32 JC_BTN_PLUS	= BIT(9);
+static const u32 JC_BTN_RSTICK	= BIT(10);
+static const u32 JC_BTN_LSTICK	= BIT(11);
+static const u32 JC_BTN_HOME	= BIT(12);
+static const u32 JC_BTN_CAP	= BIT(13); /* capture button */
+static const u32 JC_BTN_DOWN	= BIT(16);
+static const u32 JC_BTN_UP	= BIT(17);
+static const u32 JC_BTN_RIGHT	= BIT(18);
+static const u32 JC_BTN_LEFT	= BIT(19);
+static const u32 JC_BTN_SR_L	= BIT(20);
+static const u32 JC_BTN_SL_L	= BIT(21);
+static const u32 JC_BTN_L	= BIT(22);
+static const u32 JC_BTN_ZL	= BIT(23);
+
+enum joycon_msg_type {
+	JOYCON_MSG_TYPE_NONE,
+	JOYCON_MSG_TYPE_USB,
+	JOYCON_MSG_TYPE_SUBCMD,
+};
+
+struct joycon_subcmd_request {
+	u8 output_id; /* must be 0x01 for subcommand, 0x10 for rumble only */
+	u8 packet_num; /* incremented every send */
+	u8 rumble_data[8];
+	u8 subcmd_id;
+	u8 data[0]; /* length depends on the subcommand */
+} __packed;
+
+struct joycon_subcmd_reply {
+	u8 ack; /* MSB 1 for ACK, 0 for NACK */
+	u8 id; /* id of requested subcmd */
+	u8 data[0]; /* will be at most 35 bytes */
+} __packed;
+
+struct joycon_input_report {
+	u8 id;
+	u8 timer;
+	u8 bat_con; /* battery and connection info */
+	u8 button_status[3];
+	u8 left_stick[3];
+	u8 right_stick[3];
+	u8 vibrator_report;
+
+	/*
+	 * If support for firmware updates, gyroscope data, and/or NFC/IR
+	 * are added in the future, this can be swapped for a union.
+	 */
+	struct joycon_subcmd_reply reply;
+} __packed;
+
+#define JC_MAX_RESP_SIZE	(sizeof(struct joycon_input_report) + 35)
+
+/* Each physical controller is associated with a joycon_ctlr struct */
+struct joycon_ctlr {
+	struct hid_device *hdev;
+	struct input_dev *input;
+	enum joycon_ctlr_state ctlr_state;
+
+	/* The following members are used for synchronous sends/receives */
+	enum joycon_msg_type msg_type;
+	u8 subcmd_num;
+	struct mutex output_mutex;
+	u8 input_buf[JC_MAX_RESP_SIZE];
+	wait_queue_head_t wait;
+	bool received_resp;
+	u8 usb_ack_match;
+	u8 subcmd_ack_match;
+
+	/* factory calibration data */
+	struct joycon_stick_cal left_stick_cal_x;
+	struct joycon_stick_cal left_stick_cal_y;
+	struct joycon_stick_cal right_stick_cal_x;
+	struct joycon_stick_cal right_stick_cal_y;
+
+};
+
+static int __joycon_hid_send(struct hid_device *hdev, u8 *data, size_t len)
+{
+	u8 *buf;
+	int ret;
+
+	buf = kmemdup(data, len, GFP_KERNEL);
+	if (!buf)
+		return -ENOMEM;
+	ret = hid_hw_output_report(hdev, buf, len);
+	kfree(buf);
+	if (ret < 0)
+		hid_dbg(hdev, "Failed to send output report ret=%d\n", ret);
+	return ret;
+}
+
+static int joycon_hid_send_sync(struct joycon_ctlr *ctlr, u8 *data, size_t len)
+{
+	int ret;
+
+	ret = __joycon_hid_send(ctlr->hdev, data, len);
+	if (ret < 0) {
+		memset(ctlr->input_buf, 0, JC_MAX_RESP_SIZE);
+		return ret;
+	}
+
+	if (!wait_event_timeout(ctlr->wait, ctlr->received_resp, HZ)) {
+		hid_dbg(ctlr->hdev, "synchronous send/receive timed out\n");
+		memset(ctlr->input_buf, 0, JC_MAX_RESP_SIZE);
+		return -ETIMEDOUT;
+	}
+
+	ctlr->received_resp = false;
+	return 0;
+}
+
+static int joycon_send_usb(struct joycon_ctlr *ctlr, u8 cmd)
+{
+	int ret;
+	u8 buf[2] = {JC_OUTPUT_USB_CMD};
+
+	buf[1] = cmd;
+	ctlr->usb_ack_match = cmd;
+	ctlr->msg_type = JOYCON_MSG_TYPE_USB;
+	ret = joycon_hid_send_sync(ctlr, buf, sizeof(buf));
+	if (ret)
+		hid_dbg(ctlr->hdev, "send usb command failed; ret=%d\n", ret);
+	return ret;
+}
+
+static int joycon_send_subcmd(struct joycon_ctlr *ctlr,
+			      struct joycon_subcmd_request *subcmd,
+			      size_t data_len)
+{
+	int ret;
+
+	subcmd->output_id = JC_OUTPUT_RUMBLE_AND_SUBCMD;
+	subcmd->packet_num = ctlr->subcmd_num;
+	if (++ctlr->subcmd_num > 0xF)
+		ctlr->subcmd_num = 0;
+	ctlr->subcmd_ack_match = subcmd->subcmd_id;
+	ctlr->msg_type = JOYCON_MSG_TYPE_SUBCMD;
+
+	ret = joycon_hid_send_sync(ctlr, (u8 *)subcmd,
+				   sizeof(*subcmd) + data_len);
+	if (ret < 0)
+		hid_dbg(ctlr->hdev, "send subcommand failed; ret=%d\n", ret);
+	else
+		ret = 0;
+	return ret;
+}
+
+/* Supply nibbles for flash and on. Ones correspond to active */
+static int joycon_set_player_leds(struct joycon_ctlr *ctlr, u8 flash, u8 on)
+{
+	struct joycon_subcmd_request *req;
+	u8 buffer[sizeof(*req) + 1] = { 0 };
+
+	req = (struct joycon_subcmd_request *)buffer;
+	req->subcmd_id = JC_SUBCMD_SET_PLAYER_LIGHTS;
+	req->data[0] = (flash << 4) | on;
+
+	hid_dbg(ctlr->hdev, "setting player leds\n");
+	return joycon_send_subcmd(ctlr, req, 1);
+}
+
+static const u16 DFLT_STICK_CAL_CEN = 2000;
+static const u16 DFLT_STICK_CAL_MAX = 3500;
+static const u16 DFLT_STICK_CAL_MIN = 500;
+static int joycon_request_calibration(struct joycon_ctlr *ctlr)
+{
+	struct joycon_subcmd_request *req;
+	u8 buffer[sizeof(*req) + 5] = { 0 };
+	struct joycon_input_report *report;
+	struct joycon_stick_cal *cal_x;
+	struct joycon_stick_cal *cal_y;
+	s32 x_max_above;
+	s32 x_min_below;
+	s32 y_max_above;
+	s32 y_min_below;
+	u8 *data;
+	u8 *raw_cal;
+	int ret;
+
+	req = (struct joycon_subcmd_request *)buffer;
+	req->subcmd_id = JC_SUBCMD_SPI_FLASH_READ;
+	data = req->data;
+	data[0] = 0xFF & JC_CAL_DATA_START;
+	data[1] = 0xFF & (JC_CAL_DATA_START >> 8);
+	data[2] = 0xFF & (JC_CAL_DATA_START >> 16);
+	data[3] = 0xFF & (JC_CAL_DATA_START >> 24);
+	data[4] = JC_CAL_DATA_SIZE;
+
+	hid_dbg(ctlr->hdev, "requesting cal data\n");
+	ret = joycon_send_subcmd(ctlr, req, 5);
+	if (ret) {
+		hid_warn(ctlr->hdev,
+			 "Failed to read stick cal, using defaults; ret=%d\n",
+			 ret);
+
+		ctlr->left_stick_cal_x.center = DFLT_STICK_CAL_CEN;
+		ctlr->left_stick_cal_x.max = DFLT_STICK_CAL_MAX;
+		ctlr->left_stick_cal_x.min = DFLT_STICK_CAL_MIN;
+
+		ctlr->left_stick_cal_y.center = DFLT_STICK_CAL_CEN;
+		ctlr->left_stick_cal_y.max = DFLT_STICK_CAL_MAX;
+		ctlr->left_stick_cal_y.min = DFLT_STICK_CAL_MIN;
+
+		ctlr->right_stick_cal_x.center = DFLT_STICK_CAL_CEN;
+		ctlr->right_stick_cal_x.max = DFLT_STICK_CAL_MAX;
+		ctlr->right_stick_cal_x.min = DFLT_STICK_CAL_MIN;
+
+		ctlr->right_stick_cal_y.center = DFLT_STICK_CAL_CEN;
+		ctlr->right_stick_cal_y.max = DFLT_STICK_CAL_MAX;
+		ctlr->right_stick_cal_y.min = DFLT_STICK_CAL_MIN;
+
+		return ret;
+	}
+
+	report = (struct joycon_input_report *)ctlr->input_buf;
+	raw_cal = &report->reply.data[5];
+
+	/* left stick calibration parsing */
+	cal_x = &ctlr->left_stick_cal_x;
+	cal_y = &ctlr->left_stick_cal_y;
+
+	x_max_above = hid_field_extract(ctlr->hdev, (raw_cal + 0), 0, 12);
+	y_max_above = hid_field_extract(ctlr->hdev, (raw_cal + 1), 4, 12);
+	cal_x->center = hid_field_extract(ctlr->hdev, (raw_cal + 3), 0, 12);
+	cal_y->center = hid_field_extract(ctlr->hdev, (raw_cal + 4), 4, 12);
+	x_min_below = hid_field_extract(ctlr->hdev, (raw_cal + 6), 0, 12);
+	y_min_below = hid_field_extract(ctlr->hdev, (raw_cal + 7), 4, 12);
+	cal_x->max = cal_x->center + x_max_above;
+	cal_x->min = cal_x->center - x_min_below;
+	cal_y->max = cal_y->center + y_max_above;
+	cal_y->min = cal_y->center - y_min_below;
+
+	/* right stick calibration parsing */
+	raw_cal += 9;
+	cal_x = &ctlr->right_stick_cal_x;
+	cal_y = &ctlr->right_stick_cal_y;
+
+	cal_x->center = hid_field_extract(ctlr->hdev, (raw_cal + 0), 0, 12);
+	cal_y->center = hid_field_extract(ctlr->hdev, (raw_cal + 1), 4, 12);
+	x_min_below = hid_field_extract(ctlr->hdev, (raw_cal + 3), 0, 12);
+	y_min_below = hid_field_extract(ctlr->hdev, (raw_cal + 4), 4, 12);
+	x_max_above = hid_field_extract(ctlr->hdev, (raw_cal + 6), 0, 12);
+	y_max_above = hid_field_extract(ctlr->hdev, (raw_cal + 7), 4, 12);
+	cal_x->max = cal_x->center + x_max_above;
+	cal_x->min = cal_x->center - x_min_below;
+	cal_y->max = cal_y->center + y_max_above;
+	cal_y->min = cal_y->center - y_min_below;
+
+	hid_dbg(ctlr->hdev, "calibration:\n"
+			    "l_x_c=%d l_x_max=%d l_x_min=%d\n"
+			    "l_y_c=%d l_y_max=%d l_y_min=%d\n"
+			    "r_x_c=%d r_x_max=%d r_x_min=%d\n"
+			    "r_y_c=%d r_y_max=%d r_y_min=%d\n",
+			    ctlr->left_stick_cal_x.center,
+			    ctlr->left_stick_cal_x.max,
+			    ctlr->left_stick_cal_x.min,
+			    ctlr->left_stick_cal_y.center,
+			    ctlr->left_stick_cal_y.max,
+			    ctlr->left_stick_cal_y.min,
+			    ctlr->right_stick_cal_x.center,
+			    ctlr->right_stick_cal_x.max,
+			    ctlr->right_stick_cal_x.min,
+			    ctlr->right_stick_cal_y.center,
+			    ctlr->right_stick_cal_y.max,
+			    ctlr->right_stick_cal_y.min);
+
+	return 0;
+}
+
+static int joycon_set_report_mode(struct joycon_ctlr *ctlr)
+{
+	struct joycon_subcmd_request *req;
+	u8 buffer[sizeof(*req) + 1] = { 0 };
+
+	req = (struct joycon_subcmd_request *)buffer;
+	req->subcmd_id = JC_SUBCMD_SET_REPORT_MODE;
+	req->data[0] = 0x30; /* standard, full report mode */
+
+	hid_dbg(ctlr->hdev, "setting controller report mode\n");
+	return joycon_send_subcmd(ctlr, req, 1);
+}
+
+static s32 joycon_map_stick_val(struct joycon_stick_cal *cal, s32 val)
+{
+	s32 center = cal->center;
+	s32 min = cal->min;
+	s32 max = cal->max;
+	s32 new_val;
+
+	if (val > center) {
+		new_val = (val - center) * JC_MAX_STICK_MAG;
+		new_val /= (max - center);
+	} else {
+		new_val = (center - val) * -JC_MAX_STICK_MAG;
+		new_val /= (center - min);
+	}
+	new_val = clamp(new_val, (s32)-JC_MAX_STICK_MAG, (s32)JC_MAX_STICK_MAG);
+	return new_val;
+}
+
+static void joycon_parse_report(struct joycon_ctlr *ctlr,
+				struct joycon_input_report *rep)
+{
+	struct input_dev *dev = ctlr->input;
+	u32 btns;
+	u32 id = ctlr->hdev->product;
+
+	btns = hid_field_extract(ctlr->hdev, rep->button_status, 0, 24);
+
+	if (id != USB_DEVICE_ID_NINTENDO_JOYCONR) {
+		u16 raw_x;
+		u16 raw_y;
+		s32 x;
+		s32 y;
+
+		/* get raw stick values */
+		raw_x = hid_field_extract(ctlr->hdev, rep->left_stick, 0, 12);
+		raw_y = hid_field_extract(ctlr->hdev,
+					  rep->left_stick + 1, 4, 12);
+		/* map the stick values */
+		x = joycon_map_stick_val(&ctlr->left_stick_cal_x, raw_x);
+		y = -joycon_map_stick_val(&ctlr->left_stick_cal_y, raw_y);
+		/* report sticks */
+		input_report_abs(dev, ABS_X, x);
+		input_report_abs(dev, ABS_Y, y);
+
+		/* report buttons */
+		input_report_key(dev, BTN_TL, btns & JC_BTN_L);
+		input_report_key(dev, BTN_TL2, btns & JC_BTN_ZL);
+		if (id != USB_DEVICE_ID_NINTENDO_PROCON) {
+			/* Report the S buttons as the non-existent triggers */
+			input_report_key(dev, BTN_TR, btns & JC_BTN_SL_L);
+			input_report_key(dev, BTN_TR2, btns & JC_BTN_SR_L);
+		}
+		input_report_key(dev, BTN_SELECT, btns & JC_BTN_MINUS);
+		input_report_key(dev, BTN_THUMBL, btns & JC_BTN_LSTICK);
+		input_report_key(dev, BTN_Z, btns & JC_BTN_CAP);
+		input_report_key(dev, BTN_DPAD_DOWN, btns & JC_BTN_DOWN);
+		input_report_key(dev, BTN_DPAD_UP, btns & JC_BTN_UP);
+		input_report_key(dev, BTN_DPAD_RIGHT, btns & JC_BTN_RIGHT);
+		input_report_key(dev, BTN_DPAD_LEFT, btns & JC_BTN_LEFT);
+	}
+	if (id != USB_DEVICE_ID_NINTENDO_JOYCONL) {
+		u16 raw_x;
+		u16 raw_y;
+		s32 x;
+		s32 y;
+
+		/* get raw stick values */
+		raw_x = hid_field_extract(ctlr->hdev, rep->right_stick, 0, 12);
+		raw_y = hid_field_extract(ctlr->hdev,
+					  rep->right_stick + 1, 4, 12);
+		/* map stick values */
+		x = joycon_map_stick_val(&ctlr->right_stick_cal_x, raw_x);
+		y = -joycon_map_stick_val(&ctlr->right_stick_cal_y, raw_y);
+		/* report sticks */
+		input_report_abs(dev, ABS_RX, x);
+		input_report_abs(dev, ABS_RY, y);
+
+		/* report buttons */
+		input_report_key(dev, BTN_TR, btns & JC_BTN_R);
+		input_report_key(dev, BTN_TR2, btns & JC_BTN_ZR);
+		if (id != USB_DEVICE_ID_NINTENDO_PROCON) {
+			/* Report the S buttons as the non-existent triggers */
+			input_report_key(dev, BTN_TL, btns & JC_BTN_SL_R);
+			input_report_key(dev, BTN_TL2, btns & JC_BTN_SR_R);
+		}
+		input_report_key(dev, BTN_START, btns & JC_BTN_PLUS);
+		input_report_key(dev, BTN_THUMBR, btns & JC_BTN_RSTICK);
+		input_report_key(dev, BTN_MODE, btns & JC_BTN_HOME);
+		input_report_key(dev, BTN_WEST, btns & JC_BTN_Y);
+		input_report_key(dev, BTN_NORTH, btns & JC_BTN_X);
+		input_report_key(dev, BTN_EAST, btns & JC_BTN_A);
+		input_report_key(dev, BTN_SOUTH, btns & JC_BTN_B);
+	}
+
+	input_sync(dev);
+}
+
+
+static const unsigned int joycon_button_inputs_l[] = {
+	BTN_SELECT, BTN_Z, BTN_THUMBL,
+	BTN_DPAD_UP, BTN_DPAD_DOWN, BTN_DPAD_LEFT, BTN_DPAD_RIGHT,
+	BTN_TL, BTN_TL2,
+	0 /* 0 signals end of array */
+};
+
+static const unsigned int joycon_button_inputs_r[] = {
+	BTN_START, BTN_MODE, BTN_THUMBR,
+	BTN_SOUTH, BTN_EAST, BTN_NORTH, BTN_WEST,
+	BTN_TR, BTN_TR2,
+	0 /* 0 signals end of array */
+};
+
+static DEFINE_MUTEX(joycon_input_num_mutex);
+static int joycon_input_create(struct joycon_ctlr *ctlr)
+{
+	struct hid_device *hdev;
+	static int input_num = 1;
+	const char *name;
+	int ret;
+	int i;
+
+	hdev = ctlr->hdev;
+
+	switch (hdev->product) {
+	case USB_DEVICE_ID_NINTENDO_PROCON:
+		name = "Nintendo Switch Pro Controller";
+		break;
+	case USB_DEVICE_ID_NINTENDO_JOYCONL:
+		name = "Nintendo Switch Left Joy-Con";
+		break;
+	case USB_DEVICE_ID_NINTENDO_JOYCONR:
+		name = "Nintendo Switch Right Joy-Con";
+		break;
+	default: /* Should be impossible */
+		hid_err(hdev, "Invalid hid product\n");
+		return -EINVAL;
+	}
+
+	ctlr->input = devm_input_allocate_device(&hdev->dev);
+	if (!ctlr->input)
+		return -ENOMEM;
+	ctlr->input->id.bustype = hdev->bus;
+	ctlr->input->id.vendor = hdev->vendor;
+	ctlr->input->id.product = hdev->product;
+	ctlr->input->id.version = hdev->version;
+	ctlr->input->name = name;
+	input_set_drvdata(ctlr->input, ctlr);
+
+
+	/* set up sticks */
+	if (hdev->product != USB_DEVICE_ID_NINTENDO_JOYCONR) {
+		input_set_abs_params(ctlr->input, ABS_X,
+				     -JC_MAX_STICK_MAG, JC_MAX_STICK_MAG,
+				     JC_STICK_FUZZ, JC_STICK_FLAT);
+		input_set_abs_params(ctlr->input, ABS_Y,
+				     -JC_MAX_STICK_MAG, JC_MAX_STICK_MAG,
+				     JC_STICK_FUZZ, JC_STICK_FLAT);
+	}
+	if (hdev->product != USB_DEVICE_ID_NINTENDO_JOYCONL) {
+		input_set_abs_params(ctlr->input, ABS_RX,
+				     -JC_MAX_STICK_MAG, JC_MAX_STICK_MAG,
+				     JC_STICK_FUZZ, JC_STICK_FLAT);
+		input_set_abs_params(ctlr->input, ABS_RY,
+				     -JC_MAX_STICK_MAG, JC_MAX_STICK_MAG,
+				     JC_STICK_FUZZ, JC_STICK_FLAT);
+	}
+
+	/* set up buttons */
+	if (hdev->product != USB_DEVICE_ID_NINTENDO_JOYCONR) {
+		for (i = 0; joycon_button_inputs_l[i] > 0; i++)
+			input_set_capability(ctlr->input, EV_KEY,
+					     joycon_button_inputs_l[i]);
+	}
+	if (hdev->product != USB_DEVICE_ID_NINTENDO_JOYCONL) {
+		for (i = 0; joycon_button_inputs_r[i] > 0; i++)
+			input_set_capability(ctlr->input, EV_KEY,
+					     joycon_button_inputs_r[i]);
+	}
+
+	ret = input_register_device(ctlr->input);
+	if (ret)
+		return ret;
+
+	/* Set the default controller player leds based on controller number */
+	mutex_lock(&joycon_input_num_mutex);
+	mutex_lock(&ctlr->output_mutex);
+	ret = joycon_set_player_leds(ctlr, 0, 0xF >> (4 - input_num));
+	if (ret)
+		hid_warn(ctlr->hdev, "Failed to set leds; ret=%d\n", ret);
+	mutex_unlock(&ctlr->output_mutex);
+	if (++input_num > 4)
+		input_num = 1;
+	mutex_unlock(&joycon_input_num_mutex);
+
+	return 0;
+}
+
+/* Common handler for parsing inputs */
+static int joycon_ctlr_read_handler(struct joycon_ctlr *ctlr, u8 *data,
+							      int size)
+{
+	int ret = 0;
+
+	if (data[0] == JC_INPUT_SUBCMD_REPLY || data[0] == JC_INPUT_IMU_DATA ||
+	    data[0] == JC_INPUT_MCU_DATA) {
+		if (size >= 12) /* make sure it contains the input report */
+			joycon_parse_report(ctlr,
+					    (struct joycon_input_report *)data);
+	}
+
+	return ret;
+}
+
+static int joycon_ctlr_handle_event(struct joycon_ctlr *ctlr, u8 *data,
+							      int size)
+{
+	int ret = 0;
+	bool match = false;
+	struct joycon_input_report *report;
+
+	if (unlikely(mutex_is_locked(&ctlr->output_mutex)) &&
+	    ctlr->msg_type != JOYCON_MSG_TYPE_NONE) {
+		switch (ctlr->msg_type) {
+		case JOYCON_MSG_TYPE_USB:
+			if (size < 2)
+				break;
+			if (data[0] == JC_INPUT_USB_RESPONSE &&
+			    data[1] == ctlr->usb_ack_match)
+				match = true;
+			break;
+		case JOYCON_MSG_TYPE_SUBCMD:
+			if (size < sizeof(struct joycon_input_report) ||
+			    data[0] != JC_INPUT_SUBCMD_REPLY)
+				break;
+			report = (struct joycon_input_report *)data;
+			if (report->reply.id == ctlr->subcmd_ack_match)
+				match = true;
+			break;
+		default:
+			break;
+		}
+
+		if (match) {
+			memcpy(ctlr->input_buf, data,
+			       min(size, (int)JC_MAX_RESP_SIZE));
+			ctlr->msg_type = JOYCON_MSG_TYPE_NONE;
+			ctlr->received_resp = true;
+			wake_up(&ctlr->wait);
+
+			/* This message has been handled */
+			return 1;
+		}
+	}
+
+	if (ctlr->ctlr_state == JOYCON_CTLR_STATE_READ)
+		ret = joycon_ctlr_read_handler(ctlr, data, size);
+
+	return ret;
+}
+
+static int nintendo_hid_event(struct hid_device *hdev,
+			      struct hid_report *report, u8 *raw_data, int size)
+{
+	struct joycon_ctlr *ctlr = hid_get_drvdata(hdev);
+
+	if (size < 1)
+		return -EINVAL;
+
+	return joycon_ctlr_handle_event(ctlr, raw_data, size);
+}
+
+static int nintendo_hid_probe(struct hid_device *hdev,
+			    const struct hid_device_id *id)
+{
+	int ret;
+	struct joycon_ctlr *ctlr;
+
+	hid_dbg(hdev, "probe - start\n");
+
+	ctlr = devm_kzalloc(&hdev->dev, sizeof(*ctlr), GFP_KERNEL);
+	if (!ctlr) {
+		ret = -ENOMEM;
+		goto err;
+	}
+
+	ctlr->hdev = hdev;
+	ctlr->ctlr_state = JOYCON_CTLR_STATE_INIT;
+	hid_set_drvdata(hdev, ctlr);
+	mutex_init(&ctlr->output_mutex);
+	init_waitqueue_head(&ctlr->wait);
+
+	ret = hid_parse(hdev);
+	if (ret) {
+		hid_err(hdev, "HID parse failed\n");
+		goto err;
+	}
+
+	ret = hid_hw_start(hdev, HID_CONNECT_HIDRAW);
+	if (ret) {
+		hid_err(hdev, "HW start failed\n");
+		goto err;
+	}
+
+	ret = hid_hw_open(hdev);
+	if (ret) {
+		hid_err(hdev, "cannot start hardware I/O\n");
+		goto err_stop;
+	}
+
+	hid_device_io_start(hdev);
+
+	/* Initialize the controller */
+	mutex_lock(&ctlr->output_mutex);
+	/* if handshake command fails, assume ble pro controller */
+	if (hdev->product == USB_DEVICE_ID_NINTENDO_PROCON &&
+	    !joycon_send_usb(ctlr, JC_USB_CMD_HANDSHAKE)) {
+		hid_dbg(hdev, "detected USB controller\n");
+		/* set baudrate for improved latency */
+		ret = joycon_send_usb(ctlr, JC_USB_CMD_BAUDRATE_3M);
+		if (ret) {
+			hid_err(hdev, "Failed to set baudrate; ret=%d\n", ret);
+			goto err_mutex;
+		}
+		/* handshake */
+		ret = joycon_send_usb(ctlr, JC_USB_CMD_HANDSHAKE);
+		if (ret) {
+			hid_err(hdev, "Failed handshake; ret=%d\n", ret);
+			goto err_mutex;
+		}
+		/*
+		 * Set no timeout (to keep controller in USB mode).
+		 * This doesn't send a response, so ignore the timeout.
+		 */
+		joycon_send_usb(ctlr, JC_USB_CMD_NO_TIMEOUT);
+	}
+
+	/* get controller calibration data, and parse it */
+	ret = joycon_request_calibration(ctlr);
+	if (ret) {
+		/*
+		 * We can function with default calibration, but it may be
+		 * inaccurate. Provide a warning, and continue on.
+		 */
+		hid_warn(hdev, "Analog stick positions may be inaccurate\n");
+	}
+
+	/* Set the reporting mode to 0x30, which is the full report mode */
+	ret = joycon_set_report_mode(ctlr);
+	if (ret) {
+		hid_err(hdev, "Failed to set report mode; ret=%d\n", ret);
+		goto err_mutex;
+	}
+
+	mutex_unlock(&ctlr->output_mutex);
+
+	ret = joycon_input_create(ctlr);
+	if (ret) {
+		hid_err(hdev, "Failed to create input device; ret=%d\n", ret);
+		goto err_close;
+	}
+
+	ctlr->ctlr_state = JOYCON_CTLR_STATE_READ;
+
+	hid_dbg(hdev, "probe - success\n");
+	return 0;
+
+err_mutex:
+	mutex_unlock(&ctlr->output_mutex);
+err_close:
+	hid_hw_close(hdev);
+err_stop:
+	hid_hw_stop(hdev);
+err:
+	hid_err(hdev, "probe - fail = %d\n", ret);
+	return ret;
+}
+
+static void nintendo_hid_remove(struct hid_device *hdev)
+{
+	hid_dbg(hdev, "remove\n");
+	hid_hw_close(hdev);
+	hid_hw_stop(hdev);
+}
+
+static const struct hid_device_id nintendo_hid_devices[] = {
+	{ HID_USB_DEVICE(USB_VENDOR_ID_NINTENDO,
+			 USB_DEVICE_ID_NINTENDO_PROCON) },
+	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_NINTENDO,
+			 USB_DEVICE_ID_NINTENDO_PROCON) },
+	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_NINTENDO,
+			 USB_DEVICE_ID_NINTENDO_JOYCONL) },
+	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_NINTENDO,
+			 USB_DEVICE_ID_NINTENDO_JOYCONR) },
+	{ }
+};
+MODULE_DEVICE_TABLE(hid, nintendo_hid_devices);
+
+static struct hid_driver nintendo_hid_driver = {
+	.name		= "nintendo",
+	.id_table	= nintendo_hid_devices,
+	.probe		= nintendo_hid_probe,
+	.remove		= nintendo_hid_remove,
+	.raw_event	= nintendo_hid_event,
+};
+module_hid_driver(nintendo_hid_driver);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Daniel J. Ogorchock <djogorchock@gmail.com>");
+MODULE_DESCRIPTION("Driver for Nintendo Switch Controllers");
diff --git a/drivers/hid/hid-playstation.c b/drivers/hid/hid-playstation.c
index 944e5e5..2228f6e 100644
--- a/drivers/hid/hid-playstation.c
+++ b/drivers/hid/hid-playstation.c
@@ -11,6 +11,8 @@
 #include <linux/hid.h>
 #include <linux/idr.h>
 #include <linux/input/mt.h>
+#include <linux/leds.h>
+#include <linux/led-class-multicolor.h>
 #include <linux/module.h>
 
 #include <asm/unaligned.h>
@@ -38,11 +40,13 @@
 	uint8_t battery_capacity;
 	int battery_status;
 
+	const char *input_dev_name; /* Name of primary input device. */
 	uint8_t mac_address[6]; /* Note: stored in little endian order. */
 	uint32_t hw_version;
 	uint32_t fw_version;
 
 	int (*parse_report)(struct ps_device *dev, struct hid_report *report, u8 *data, int size);
+	void (*remove)(struct ps_device *dev);
 };
 
 /* Calibration data for playstation motion sensors. */
@@ -53,6 +57,13 @@
 	int sens_denom;
 };
 
+struct ps_led_info {
+	const char *name;
+	const char *color;
+	enum led_brightness (*brightness_get)(struct led_classdev *cdev);
+	int (*brightness_set)(struct led_classdev *cdev, enum led_brightness);
+};
+
 /* Seed values for DualShock4 / DualSense CRC32 for different report types. */
 #define PS_INPUT_CRC32_SEED	0xA1
 #define PS_OUTPUT_CRC32_SEED	0xA2
@@ -97,6 +108,9 @@
 #define DS_STATUS_CHARGING		GENMASK(7, 4)
 #define DS_STATUS_CHARGING_SHIFT	4
 
+/* Feature version from DualSense Firmware Info report. */
+#define DS_FEATURE_VERSION(major, minor) ((major & 0xff) << 8 | (minor & 0xff))
+
 /*
  * Status of a DualSense touch point contact.
  * Contact IDs, with highest bit set are 'inactive'
@@ -115,6 +129,7 @@
 #define DS_OUTPUT_VALID_FLAG1_RELEASE_LEDS BIT(3)
 #define DS_OUTPUT_VALID_FLAG1_PLAYER_INDICATOR_CONTROL_ENABLE BIT(4)
 #define DS_OUTPUT_VALID_FLAG2_LIGHTBAR_SETUP_CONTROL_ENABLE BIT(1)
+#define DS_OUTPUT_VALID_FLAG2_COMPATIBLE_VIBRATION2 BIT(2)
 #define DS_OUTPUT_POWER_SAVE_CONTROL_MIC_MUTE BIT(4)
 #define DS_OUTPUT_LIGHTBAR_SETUP_LIGHT_OUT BIT(1)
 
@@ -132,6 +147,9 @@
 	struct input_dev *sensors;
 	struct input_dev *touchpad;
 
+	/* Update version is used as a feature/capability version. */
+	uint16_t update_version;
+
 	/* Calibration data for accelerometer and gyroscope. */
 	struct ps_calibration_data accel_calib_data[3];
 	struct ps_calibration_data gyro_calib_data[3];
@@ -142,11 +160,13 @@
 	uint32_t sensor_timestamp_us;
 
 	/* Compatible rumble state */
+	bool use_vibration_v2;
 	bool update_rumble;
 	uint8_t motor_left;
 	uint8_t motor_right;
 
 	/* RGB lightbar */
+	struct led_classdev_mc lightbar;
 	bool update_lightbar;
 	uint8_t lightbar_red;
 	uint8_t lightbar_green;
@@ -163,6 +183,7 @@
 	struct led_classdev player_leds[5];
 
 	struct work_struct output_worker;
+	bool output_worker_initialized;
 	void *output_report_dmabuf;
 	uint8_t output_seq; /* Sequence number for output report. */
 };
@@ -288,6 +309,9 @@
 	{0, 0},
 };
 
+static inline void dualsense_schedule_work(struct dualsense *ds);
+static void dualsense_set_lightbar(struct dualsense *ds, uint8_t red, uint8_t green, uint8_t blue);
+
 /*
  * Add a new ps_device to ps_devices if it doesn't exist.
  * Return error on duplicate device, which can happen if the same
@@ -525,6 +549,71 @@
 	return 0;
 }
 
+static int ps_led_register(struct ps_device *ps_dev, struct led_classdev *led,
+		const struct ps_led_info *led_info)
+{
+	int ret;
+
+	led->name = devm_kasprintf(&ps_dev->hdev->dev, GFP_KERNEL,
+			"%s:%s:%s", ps_dev->input_dev_name, led_info->color, led_info->name);
+
+	if (!led->name)
+		return -ENOMEM;
+
+	led->brightness = 0;
+	led->max_brightness = 1;
+	led->flags = LED_CORE_SUSPENDRESUME;
+	led->brightness_get = led_info->brightness_get;
+	led->brightness_set_blocking = led_info->brightness_set;
+
+	ret = devm_led_classdev_register(&ps_dev->hdev->dev, led);
+	if (ret) {
+		hid_err(ps_dev->hdev, "Failed to register LED %s: %d\n", led_info->name, ret);
+		return ret;
+	}
+
+	return 0;
+}
+
+/* Register a DualSense/DualShock4 RGB lightbar represented by a multicolor LED. */
+static int ps_lightbar_register(struct ps_device *ps_dev, struct led_classdev_mc *lightbar_mc_dev,
+	int (*brightness_set)(struct led_classdev *, enum led_brightness))
+{
+	struct hid_device *hdev = ps_dev->hdev;
+	struct mc_subled *mc_led_info;
+	struct led_classdev *led_cdev;
+	int ret;
+
+	mc_led_info = devm_kmalloc_array(&hdev->dev, 3, sizeof(*mc_led_info),
+					 GFP_KERNEL | __GFP_ZERO);
+	if (!mc_led_info)
+		return -ENOMEM;
+
+	mc_led_info[0].color_index = LED_COLOR_ID_RED;
+	mc_led_info[1].color_index = LED_COLOR_ID_GREEN;
+	mc_led_info[2].color_index = LED_COLOR_ID_BLUE;
+
+	lightbar_mc_dev->subled_info = mc_led_info;
+	lightbar_mc_dev->num_colors = 3;
+
+	led_cdev = &lightbar_mc_dev->led_cdev;
+	led_cdev->name = devm_kasprintf(&hdev->dev, GFP_KERNEL, "%s:rgb:indicator",
+			ps_dev->input_dev_name);
+	if (!led_cdev->name)
+		return -ENOMEM;
+	led_cdev->brightness = 255;
+	led_cdev->max_brightness = 255;
+	led_cdev->brightness_set_blocking = brightness_set;
+
+	ret = devm_led_classdev_multicolor_register(&hdev->dev, lightbar_mc_dev);
+	if (ret < 0) {
+		hid_err(hdev, "Cannot register multicolor LED device\n");
+		return ret;
+	}
+
+	return 0;
+}
+
 static struct input_dev *ps_sensors_create(struct hid_device *hdev, int accel_range, int accel_res,
 		int gyro_range, int gyro_res)
 {
@@ -614,15 +703,12 @@
 
 static DEVICE_ATTR_RO(hardware_version);
 
-static struct attribute *ps_device_attributes[] = {
+static struct attribute *ps_device_attrs[] = {
 	&dev_attr_firmware_version.attr,
 	&dev_attr_hardware_version.attr,
 	NULL
 };
-
-static const struct attribute_group ps_device_attribute_group = {
-	.attrs = ps_device_attributes,
-};
+ATTRIBUTE_GROUPS(ps_device);
 
 static int dualsense_get_calibration_data(struct dualsense *ds)
 {
@@ -746,6 +832,7 @@
 	return ret;
 }
 
+
 static int dualsense_get_firmware_info(struct dualsense *ds)
 {
 	uint8_t *buf;
@@ -765,6 +852,15 @@
 	ds->base.hw_version = get_unaligned_le32(&buf[24]);
 	ds->base.fw_version = get_unaligned_le32(&buf[28]);
 
+	/* Update version is some kind of feature version. It is distinct from
+	 * the firmware version as there can be many different variations of a
+	 * controller over time with the same physical shell, but with different
+	 * PCBs and other internal changes. The update version (internal name) is
+	 * used as a means to detect what features are available and change behavior.
+	 * Note: the version is different between DualSense and DualSense Edge.
+	 */
+	ds->update_version = get_unaligned_le16(&buf[44]);
+
 err_free:
 	kfree(buf);
 	return ret;
@@ -793,6 +889,53 @@
 	return ret;
 }
 
+static int dualsense_lightbar_set_brightness(struct led_classdev *cdev,
+	enum led_brightness brightness)
+{
+	struct led_classdev_mc *mc_cdev = lcdev_to_mccdev(cdev);
+	struct dualsense *ds = container_of(mc_cdev, struct dualsense, lightbar);
+	uint8_t red, green, blue;
+
+	led_mc_calc_color_components(mc_cdev, brightness);
+	red = mc_cdev->subled_info[0].brightness;
+	green = mc_cdev->subled_info[1].brightness;
+	blue = mc_cdev->subled_info[2].brightness;
+
+	dualsense_set_lightbar(ds, red, green, blue);
+	return 0;
+}
+
+static enum led_brightness dualsense_player_led_get_brightness(struct led_classdev *led)
+{
+	struct hid_device *hdev = to_hid_device(led->dev->parent);
+	struct dualsense *ds = hid_get_drvdata(hdev);
+
+	return !!(ds->player_leds_state & BIT(led - ds->player_leds));
+}
+
+static int dualsense_player_led_set_brightness(struct led_classdev *led, enum led_brightness value)
+{
+	struct hid_device *hdev = to_hid_device(led->dev->parent);
+	struct dualsense *ds = hid_get_drvdata(hdev);
+	unsigned long flags;
+	unsigned int led_index;
+
+	spin_lock_irqsave(&ds->base.lock, flags);
+
+	led_index = led - ds->player_leds;
+	if (value == LED_OFF)
+		ds->player_leds_state &= ~BIT(led_index);
+	else
+		ds->player_leds_state |= BIT(led_index);
+
+	ds->update_player_leds = true;
+	spin_unlock_irqrestore(&ds->base.lock, flags);
+
+	dualsense_schedule_work(ds);
+
+	return 0;
+}
+
 static void dualsense_init_output_report(struct dualsense *ds, struct dualsense_output_report *rp,
 		void *buf)
 {
@@ -832,6 +975,16 @@
 	}
 }
 
+static inline void dualsense_schedule_work(struct dualsense *ds)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&ds->base.lock, flags);
+	if (ds->output_worker_initialized)
+		schedule_work(&ds->output_worker);
+	spin_unlock_irqrestore(&ds->base.lock, flags);
+}
+
 /*
  * Helper function to send DualSense output reports. Applies a CRC at the end of a report
  * for Bluetooth reports.
@@ -870,7 +1023,10 @@
 	if (ds->update_rumble) {
 		/* Select classic rumble style haptics and enable it. */
 		common->valid_flag0 |= DS_OUTPUT_VALID_FLAG0_HAPTICS_SELECT;
-		common->valid_flag0 |= DS_OUTPUT_VALID_FLAG0_COMPATIBLE_VIBRATION;
+		if (ds->use_vibration_v2)
+			common->valid_flag2 |= DS_OUTPUT_VALID_FLAG2_COMPATIBLE_VIBRATION2;
+		else
+			common->valid_flag0 |= DS_OUTPUT_VALID_FLAG0_COMPATIBLE_VIBRATION;
 		common->motor_left = ds->motor_left;
 		common->motor_right = ds->motor_right;
 		ds->update_rumble = false;
@@ -992,7 +1148,7 @@
 		spin_unlock_irqrestore(&ps_dev->lock, flags);
 
 		/* Schedule updating of microphone state at hardware level. */
-		schedule_work(&ds->output_worker);
+		dualsense_schedule_work(ds);
 	}
 	ds->last_btn_mic_state = btn_mic_state;
 
@@ -1107,10 +1263,22 @@
 	ds->motor_right = effect->u.rumble.weak_magnitude / 256;
 	spin_unlock_irqrestore(&ds->base.lock, flags);
 
-	schedule_work(&ds->output_worker);
+	dualsense_schedule_work(ds);
 	return 0;
 }
 
+static void dualsense_remove(struct ps_device *ps_dev)
+{
+	struct dualsense *ds = container_of(ps_dev, struct dualsense, base);
+	unsigned long flags;
+
+	spin_lock_irqsave(&ds->base.lock, flags);
+	ds->output_worker_initialized = false;
+	spin_unlock_irqrestore(&ds->base.lock, flags);
+
+	cancel_work_sync(&ds->output_worker);
+}
+
 static int dualsense_reset_leds(struct dualsense *ds)
 {
 	struct dualsense_output_report report;
@@ -1138,12 +1306,16 @@
 
 static void dualsense_set_lightbar(struct dualsense *ds, uint8_t red, uint8_t green, uint8_t blue)
 {
+	unsigned long flags;
+
+	spin_lock_irqsave(&ds->base.lock, flags);
 	ds->update_lightbar = true;
 	ds->lightbar_red = red;
 	ds->lightbar_green = green;
 	ds->lightbar_blue = blue;
+	spin_unlock_irqrestore(&ds->base.lock, flags);
 
-	schedule_work(&ds->output_worker);
+	dualsense_schedule_work(ds);
 }
 
 static void dualsense_set_player_leds(struct dualsense *ds)
@@ -1166,7 +1338,7 @@
 
 	ds->update_player_leds = true;
 	ds->player_leds_state = player_ids[player_id];
-	schedule_work(&ds->output_worker);
+	dualsense_schedule_work(ds);
 }
 
 static struct ps_device *dualsense_create(struct hid_device *hdev)
@@ -1174,7 +1346,20 @@
 	struct dualsense *ds;
 	struct ps_device *ps_dev;
 	uint8_t max_output_report_size;
-	int ret;
+	int i, ret;
+
+	static const struct ps_led_info player_leds_info[] = {
+		{ LED_FUNCTION_PLAYER1, "white", dualsense_player_led_get_brightness,
+				dualsense_player_led_set_brightness },
+		{ LED_FUNCTION_PLAYER2, "white", dualsense_player_led_get_brightness,
+				dualsense_player_led_set_brightness },
+		{ LED_FUNCTION_PLAYER3, "white", dualsense_player_led_get_brightness,
+				dualsense_player_led_set_brightness },
+		{ LED_FUNCTION_PLAYER4, "white", dualsense_player_led_get_brightness,
+				dualsense_player_led_set_brightness },
+		{ LED_FUNCTION_PLAYER5, "white", dualsense_player_led_get_brightness,
+				dualsense_player_led_set_brightness }
+	};
 
 	ds = devm_kzalloc(&hdev->dev, sizeof(*ds), GFP_KERNEL);
 	if (!ds)
@@ -1192,7 +1377,9 @@
 	ps_dev->battery_capacity = 100; /* initial value until parse_report. */
 	ps_dev->battery_status = POWER_SUPPLY_STATUS_UNKNOWN;
 	ps_dev->parse_report = dualsense_parse_report;
+	ps_dev->remove = dualsense_remove;
 	INIT_WORK(&ds->output_worker, dualsense_output_worker);
+	ds->output_worker_initialized = true;
 	hid_set_drvdata(hdev, ds);
 
 	max_output_report_size = sizeof(struct dualsense_output_report_bt);
@@ -1213,6 +1400,21 @@
 		return ERR_PTR(ret);
 	}
 
+	/* Original DualSense firmware simulated classic controller rumble through
+	 * its new haptics hardware. It felt different from classic rumble users
+	 * were used to. Since then new firmwares were introduced to change behavior
+	 * and make this new 'v2' behavior default on PlayStation and other platforms.
+	 * The original DualSense requires a new enough firmware as bundled with PS5
+	 * software released in 2021. DualSense edge supports it out of the box.
+	 * Both devices also support the old mode, but it is not really used.
+	 */
+	if (hdev->product == USB_DEVICE_ID_SONY_PS5_CONTROLLER) {
+		/* Feature version 2.21 introduced new vibration method. */
+		ds->use_vibration_v2 = ds->update_version >= DS_FEATURE_VERSION(2, 21);
+	} else if (hdev->product == USB_DEVICE_ID_SONY_PS5_CONTROLLER_2) {
+		ds->use_vibration_v2 = true;
+	}
+
 	ret = ps_devices_list_add(ps_dev);
 	if (ret)
 		return ERR_PTR(ret);
@@ -1228,6 +1430,8 @@
 		ret = PTR_ERR(ds->gamepad);
 		goto err;
 	}
+	/* Use gamepad input device name as primary device name for e.g. LEDs */
+	ps_dev->input_dev_name = dev_name(&ds->gamepad->dev);
 
 	ds->sensors = ps_sensors_create(hdev, DS_ACC_RANGE, DS_ACC_RES_PER_G,
 			DS_GYRO_RANGE, DS_GYRO_RES_PER_DEG_S);
@@ -1255,8 +1459,21 @@
 	if (ret)
 		goto err;
 
+	ret = ps_lightbar_register(ps_dev, &ds->lightbar, dualsense_lightbar_set_brightness);
+	if (ret)
+		goto err;
+
+	/* Set default lightbar color. */
 	dualsense_set_lightbar(ds, 0, 0, 128); /* blue */
 
+	for (i = 0; i < ARRAY_SIZE(player_leds_info); i++) {
+		const struct ps_led_info *led_info = &player_leds_info[i];
+
+		ret = ps_led_register(ps_dev, &ds->player_leds[i], led_info);
+		if (ret < 0)
+			goto err;
+	}
+
 	ret = ps_device_set_player_id(ps_dev);
 	if (ret) {
 		hid_err(hdev, "Failed to assign player id for DualSense: %d\n", ret);
@@ -1324,12 +1541,6 @@
 		}
 	}
 
-	ret = devm_device_add_group(&hdev->dev, &ps_device_attribute_group);
-	if (ret) {
-		hid_err(hdev, "Failed to register sysfs nodes.\n");
-		goto err_close;
-	}
-
 	return ret;
 
 err_close:
@@ -1346,6 +1557,9 @@
 	ps_devices_list_remove(dev);
 	ps_device_release_player_id(dev);
 
+	if (dev->remove)
+		dev->remove(dev);
+
 	hid_hw_close(hdev);
 	hid_hw_stop(hdev);
 }
@@ -1365,6 +1579,9 @@
 	.probe		= ps_probe,
 	.remove		= ps_remove,
 	.raw_event	= ps_raw_event,
+	.driver = {
+		.dev_groups = ps_device_groups,
+	},
 };
 
 static int __init ps_init(void)
diff --git a/drivers/hid/uhid.c b/drivers/hid/uhid.c
index ba0ca65..fc06d8b 100644
--- a/drivers/hid/uhid.c
+++ b/drivers/hid/uhid.c
@@ -395,7 +395,6 @@
 	.parse = uhid_hid_parse,
 	.raw_request = uhid_hid_raw_request,
 	.output_report = uhid_hid_output_report,
-	.max_buffer_size = UHID_DATA_MAX,
 };
 EXPORT_SYMBOL_GPL(uhid_hid_driver);
 
diff --git a/drivers/hwtracing/coresight/Kconfig b/drivers/hwtracing/coresight/Kconfig
index f026e5c..514a9b8 100644
--- a/drivers/hwtracing/coresight/Kconfig
+++ b/drivers/hwtracing/coresight/Kconfig
@@ -150,6 +150,19 @@
 	  To compile this driver as a module, choose M here: the
 	  module will be called coresight-cpu-debug.
 
+config CORESIGHT_CPU_DEBUG_DEFAULT_ON
+	bool "Enable CoreSight CPU Debug by default"
+	depends on CORESIGHT_CPU_DEBUG
+	help
+	  Say Y here to enable the CoreSight Debug panic-debug by default. This
+	  can also be enabled via debugfs, but this ensures the debug feature
+	  is enabled as early as possible.
+
+	  Has the same effect as setting coresight_cpu_debug.enable=1 on the
+	  kernel command line.
+
+	  Say N if unsure.
+
 config CORESIGHT_CTI
 	tristate "CoreSight Cross Trigger Interface (CTI) driver"
 	depends on ARM || ARM64
diff --git a/drivers/hwtracing/coresight/coresight-cpu-debug.c b/drivers/hwtracing/coresight/coresight-cpu-debug.c
index c604429..1874df7 100644
--- a/drivers/hwtracing/coresight/coresight-cpu-debug.c
+++ b/drivers/hwtracing/coresight/coresight-cpu-debug.c
@@ -105,7 +105,7 @@
 static int debug_count;
 static struct dentry *debug_debugfs_dir;
 
-static bool debug_enable;
+static bool debug_enable = IS_ENABLED(CONFIG_CORESIGHT_CPU_DEBUG_DEFAULT_ON);
 module_param_named(enable, debug_enable, bool, 0600);
 MODULE_PARM_DESC(enable, "Control to enable coresight CPU debug functionality");
 
diff --git a/drivers/hwtracing/coresight/coresight-etb10.c b/drivers/hwtracing/coresight/coresight-etb10.c
index f775cbe..efa3982 100644
--- a/drivers/hwtracing/coresight/coresight-etb10.c
+++ b/drivers/hwtracing/coresight/coresight-etb10.c
@@ -557,9 +557,8 @@
 
 	/*
 	 * In snapshot mode we simply increment the head by the number of byte
-	 * that were written.  User space function  cs_etm_find_snapshot() will
-	 * figure out how many bytes to get from the AUX buffer based on the
-	 * position of the head.
+	 * that were written.  User space will figure out how many bytes to get
+	 * from the AUX buffer based on the position of the head.
 	 */
 	if (buf->snapshot)
 		handle->head += to_read;
diff --git a/drivers/hwtracing/coresight/coresight-etm-perf.c b/drivers/hwtracing/coresight/coresight-etm-perf.c
index 1feb8f0..814cd72 100644
--- a/drivers/hwtracing/coresight/coresight-etm-perf.c
+++ b/drivers/hwtracing/coresight/coresight-etm-perf.c
@@ -452,9 +452,14 @@
 	 * sink from this ETM. We can't do much in this case if
 	 * the sink was specified or hinted to the driver. For
 	 * now, simply don't record anything on this ETM.
+	 *
+	 * As such we pretend that everything is fine, and let
+	 * it continue without actually tracing. The event could
+	 * continue tracing when it moves to a CPU where it is
+	 * reachable to a sink.
 	 */
 	if (!cpumask_test_cpu(cpu, &event_data->mask))
-		goto fail_end_stop;
+		goto out;
 
 	path = etm_event_cpu_path(event_data, cpu);
 	/* We need a sink, no need to continue without one */
@@ -466,26 +471,32 @@
 	if (coresight_enable_path(path, CS_MODE_PERF, handle))
 		goto fail_end_stop;
 
-	/* Tell the perf core the event is alive */
-	event->hw.state = 0;
-
 	/* Finally enable the tracer */
 	if (source_ops(csdev)->enable(csdev, event, CS_MODE_PERF))
 		goto fail_disable_path;
 
+out:
+	/* Tell the perf core the event is alive */
+	event->hw.state = 0;
 	/* Save the event_data for this ETM */
 	ctxt->event_data = event_data;
-out:
 	return;
 
 fail_disable_path:
 	coresight_disable_path(path);
 fail_end_stop:
-	perf_aux_output_flag(handle, PERF_AUX_FLAG_TRUNCATED);
-	perf_aux_output_end(handle, 0);
+	/*
+	 * Check if the handle is still associated with the event,
+	 * to handle cases where if the sink failed to start the
+	 * trace and TRUNCATED the handle already.
+	 */
+	if (READ_ONCE(handle->event)) {
+		perf_aux_output_flag(handle, PERF_AUX_FLAG_TRUNCATED);
+		perf_aux_output_end(handle, 0);
+	}
 fail:
 	event->hw.state = PERF_HES_STOPPED;
-	goto out;
+	return;
 }
 
 static void etm_event_stop(struct perf_event *event, int mode)
@@ -517,6 +528,19 @@
 	if (WARN_ON(!event_data))
 		return;
 
+	/*
+	 * Check if this ETM was allowed to trace, as decided at
+	 * etm_setup_aux(). If it wasn't allowed to trace, then
+	 * nothing needs to be torn down other than outputting a
+	 * zero sized record.
+	 */
+	if (handle->event && (mode & PERF_EF_UPDATE) &&
+	    !cpumask_test_cpu(cpu, &event_data->mask)) {
+		event->hw.state = PERF_HES_STOPPED;
+		perf_aux_output_end(handle, 0);
+		return;
+	}
+
 	if (!csdev)
 		return;
 
@@ -550,7 +574,21 @@
 
 		size = sink_ops(sink)->update_buffer(sink, handle,
 					      event_data->snk_config);
-		perf_aux_output_end(handle, size);
+		/*
+		 * Make sure the handle is still valid as the
+		 * sink could have closed it from an IRQ.
+		 * The sink driver must handle the race with
+		 * update_buffer() and IRQ. Thus either we
+		 * should get a valid handle and valid size
+		 * (which may be 0).
+		 *
+		 * But we should never get a non-zero size with
+		 * an invalid handle.
+		 */
+		if (READ_ONCE(handle->event))
+			perf_aux_output_end(handle, size);
+		else
+			WARN_ON(size);
 	}
 
 	/* Disabling the path make its elements available to other sessions */
diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c
index 2b22343..c06183b 100644
--- a/drivers/hwtracing/coresight/coresight-etm4x-core.c
+++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c
@@ -40,6 +40,7 @@
 #include "coresight-etm4x.h"
 #include "coresight-etm-perf.h"
 #include "coresight-etm4x-cfg.h"
+#include "coresight-self-hosted-trace.h"
 #include "coresight-syscfg.h"
 
 static int boot_enable;
@@ -238,6 +239,45 @@
 	int rc;
 };
 
+/*
+ * etm4x_prohibit_trace - Prohibit the CPU from tracing at all ELs.
+ * When the CPU supports FEAT_TRF, we could move the ETM to a trace
+ * prohibited state by filtering the Exception levels via TRFCR_EL1.
+ */
+static void etm4x_prohibit_trace(struct etmv4_drvdata *drvdata)
+{
+	/* If the CPU doesn't support FEAT_TRF, nothing to do */
+	if (!drvdata->trfcr)
+		return;
+	cpu_prohibit_trace();
+}
+
+/*
+ * etm4x_allow_trace - Allow CPU tracing in the respective ELs,
+ * as configured by the drvdata->config.mode for the current
+ * session. Even though we have TRCVICTLR bits to filter the
+ * trace in the ELs, it doesn't prevent the ETM from generating
+ * a packet (e.g, TraceInfo) that might contain the addresses from
+ * the excluded levels. Thus we use the additional controls provided
+ * via the Trace Filtering controls (FEAT_TRF) to make sure no trace
+ * is generated for the excluded ELs.
+ */
+static void etm4x_allow_trace(struct etmv4_drvdata *drvdata)
+{
+	u64 trfcr = drvdata->trfcr;
+
+	/* If the CPU doesn't support FEAT_TRF, nothing to do */
+	if (!trfcr)
+		return;
+
+	if (drvdata->config.mode & ETM_MODE_EXCL_KERN)
+		trfcr &= ~TRFCR_ELx_ExTRE;
+	if (drvdata->config.mode & ETM_MODE_EXCL_USER)
+		trfcr &= ~TRFCR_ELx_E0TRE;
+
+	write_trfcr(trfcr);
+}
+
 #ifdef CONFIG_ETM4X_IMPDEF_FEATURE
 
 #define HISI_HIP08_AMBA_ID		0x000b6d01
@@ -444,6 +484,7 @@
 	if (etm4x_is_ete(drvdata))
 		etm4x_relaxed_write32(csa, TRCRSR_TA, TRCRSR);
 
+	etm4x_allow_trace(drvdata);
 	/* Enable the trace unit */
 	etm4x_relaxed_write32(csa, 1, TRCPRGCTLR);
 
@@ -739,7 +780,6 @@
 static void etm4_disable_hw(void *info)
 {
 	u32 control;
-	u64 trfcr;
 	struct etmv4_drvdata *drvdata = info;
 	struct etmv4_config *config = &drvdata->config;
 	struct coresight_device *csdev = drvdata->csdev;
@@ -766,12 +806,7 @@
 	 * If the CPU supports v8.4 Trace filter Control,
 	 * set the ETM to trace prohibited region.
 	 */
-	if (drvdata->trfc) {
-		trfcr = read_sysreg_s(SYS_TRFCR_EL1);
-		write_sysreg_s(trfcr & ~(TRFCR_ELx_ExTRE | TRFCR_ELx_E0TRE),
-			       SYS_TRFCR_EL1);
-		isb();
-	}
+	etm4x_prohibit_trace(drvdata);
 	/*
 	 * Make sure everything completes before disabling, as recommended
 	 * by section 7.3.77 ("TRCVICTLR, ViewInst Main Control Register,
@@ -787,9 +822,6 @@
 	if (coresight_timeout(csa, TRCSTATR, TRCSTATR_PMSTABLE_BIT, 1))
 		dev_err(etm_dev,
 			"timeout while waiting for PM stable Trace Status\n");
-	if (drvdata->trfc)
-		write_sysreg_s(trfcr, SYS_TRFCR_EL1);
-
 	/* read the status of the single shot comparators */
 	for (i = 0; i < drvdata->nr_ss_cmp; i++) {
 		config->ss_status[i] =
@@ -987,15 +1019,15 @@
 	return false;
 }
 
-static void cpu_enable_tracing(struct etmv4_drvdata *drvdata)
+static void cpu_detect_trace_filtering(struct etmv4_drvdata *drvdata)
 {
 	u64 dfr0 = read_sysreg(id_aa64dfr0_el1);
 	u64 trfcr;
 
+	drvdata->trfcr = 0;
 	if (!cpuid_feature_extract_unsigned_field(dfr0, ID_AA64DFR0_TRACE_FILT_SHIFT))
 		return;
 
-	drvdata->trfc = true;
 	/*
 	 * If the CPU supports v8.4 SelfHosted Tracing, enable
 	 * tracing at the kernel EL and EL0, forcing to use the
@@ -1009,7 +1041,7 @@
 	if (is_kernel_in_hyp_mode())
 		trfcr |= TRFCR_EL2_CX;
 
-	write_sysreg_s(trfcr, SYS_TRFCR_EL1);
+	drvdata->trfcr = trfcr;
 }
 
 static void etm4_init_arch_data(void *info)
@@ -1200,7 +1232,7 @@
 	/* NUMCNTR, bits[30:28] number of counters available for tracing */
 	drvdata->nr_cntr = BMVAL(etmidr5, 28, 30);
 	etm4_cs_lock(drvdata, csa);
-	cpu_enable_tracing(drvdata);
+	cpu_detect_trace_filtering(drvdata);
 }
 
 static inline u32 etm4_get_victlr_access_type(struct etmv4_config *config)
@@ -1552,7 +1584,7 @@
 	drvdata->trcid = coresight_get_trace_id(drvdata->cpu);
 }
 
-static int etm4_cpu_save(struct etmv4_drvdata *drvdata)
+static int __etm4_cpu_save(struct etmv4_drvdata *drvdata)
 {
 	int i, ret = 0;
 	struct etmv4_save_state *state;
@@ -1693,7 +1725,23 @@
 	return ret;
 }
 
-static void etm4_cpu_restore(struct etmv4_drvdata *drvdata)
+static int etm4_cpu_save(struct etmv4_drvdata *drvdata)
+{
+	int ret = 0;
+
+	/* Save the TRFCR irrespective of whether the ETM is ON */
+	if (drvdata->trfcr)
+		drvdata->save_trfcr = read_trfcr();
+	/*
+	 * Save and restore the ETM Trace registers only if
+	 * the ETM is active.
+	 */
+	if (local_read(&drvdata->mode) && drvdata->save_state)
+		ret = __etm4_cpu_save(drvdata);
+	return ret;
+}
+
+static void __etm4_cpu_restore(struct etmv4_drvdata *drvdata)
 {
 	int i;
 	struct etmv4_save_state *state = drvdata->save_state;
@@ -1791,6 +1839,14 @@
 	etm4_cs_lock(drvdata, csa);
 }
 
+static void etm4_cpu_restore(struct etmv4_drvdata *drvdata)
+{
+	if (drvdata->trfcr)
+		write_trfcr(drvdata->save_trfcr);
+	if (drvdata->state_needs_restore)
+		__etm4_cpu_restore(drvdata);
+}
+
 static int etm4_cpu_pm_notify(struct notifier_block *nb, unsigned long cmd,
 			      void *v)
 {
@@ -1802,23 +1858,17 @@
 
 	drvdata = etmdrvdata[cpu];
 
-	if (!drvdata->save_state)
-		return NOTIFY_OK;
-
 	if (WARN_ON_ONCE(drvdata->cpu != cpu))
 		return NOTIFY_BAD;
 
 	switch (cmd) {
 	case CPU_PM_ENTER:
-		/* save the state if self-hosted coresight is in use */
-		if (local_read(&drvdata->mode))
-			if (etm4_cpu_save(drvdata))
-				return NOTIFY_BAD;
+		if (etm4_cpu_save(drvdata))
+			return NOTIFY_BAD;
 		break;
 	case CPU_PM_EXIT:
 	case CPU_PM_ENTER_FAILED:
-		if (drvdata->state_needs_restore)
-			etm4_cpu_restore(drvdata);
+		etm4_cpu_restore(drvdata);
 		break;
 	default:
 		return NOTIFY_DONE;
@@ -2101,6 +2151,7 @@
 	CS_AMBA_UCI_ID(0x000bb803, uci_id_etm4),/* Qualcomm Kryo 385 Cortex-A75 */
 	CS_AMBA_UCI_ID(0x000bb805, uci_id_etm4),/* Qualcomm Kryo 4XX Cortex-A55 */
 	CS_AMBA_UCI_ID(0x000bb804, uci_id_etm4),/* Qualcomm Kryo 4XX Cortex-A76 */
+	CS_AMBA_UCI_ID(0x000bbd0d, uci_id_etm4),/* Qualcomm Kryo 5XX Cortex-A77 */
 	CS_AMBA_UCI_ID(0x000cc0af, uci_id_etm4),/* Marvell ThunderX2 */
 	CS_AMBA_UCI_ID(0x000b6d01, uci_id_etm4),/* HiSilicon-Hip08 */
 	CS_AMBA_UCI_ID(0x000b6d02, uci_id_etm4),/* HiSilicon-Hip09 */
diff --git a/drivers/hwtracing/coresight/coresight-etm4x.h b/drivers/hwtracing/coresight/coresight-etm4x.h
index 2305f32..77c6e47 100644
--- a/drivers/hwtracing/coresight/coresight-etm4x.h
+++ b/drivers/hwtracing/coresight/coresight-etm4x.h
@@ -912,8 +912,12 @@
  * @nooverflow:	Indicate if overflow prevention is supported.
  * @atbtrig:	If the implementation can support ATB triggers
  * @lpoverride:	If the implementation can support low-power state over.
- * @trfc:	If the implementation supports Arm v8.4 trace filter controls.
+ * @trfcr:	If the CPU supports FEAT_TRF, value of the TRFCR_ELx that
+ *		allows tracing at all ELs. We don't want to compute this
+ *		at runtime, due to the additional setting of TRFCR_CX when
+ *		in EL2. Otherwise, 0.
  * @config:	structure holding configuration parameters.
+ * @save_trfcr:	Saved TRFCR_EL1 register during a CPU PM event.
  * @save_state:	State to be preserved across power loss
  * @state_needs_restore: True when there is context to restore after PM exit
  * @skip_power_up: Indicates if an implementation can skip powering up
@@ -964,8 +968,9 @@
 	bool				nooverflow;
 	bool				atbtrig;
 	bool				lpoverride;
-	bool				trfc;
+	u64				trfcr;
 	struct etmv4_config		config;
+	u64				save_trfcr;
 	struct etmv4_save_state		*save_state;
 	bool				state_needs_restore;
 	bool				skip_power_up;
diff --git a/drivers/hwtracing/coresight/coresight-self-hosted-trace.h b/drivers/hwtracing/coresight/coresight-self-hosted-trace.h
new file mode 100644
index 0000000..53840a2c41
--- /dev/null
+++ b/drivers/hwtracing/coresight/coresight-self-hosted-trace.h
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Arm v8 Self-Hosted trace support.
+ *
+ * Copyright (C) 2021 ARM Ltd.
+ */
+
+#ifndef __CORESIGHT_SELF_HOSTED_TRACE_H
+#define __CORESIGHT_SELF_HOSTED_TRACE_H
+
+#include <asm/sysreg.h>
+
+static inline u64 read_trfcr(void)
+{
+	return read_sysreg_s(SYS_TRFCR_EL1);
+}
+
+static inline void write_trfcr(u64 val)
+{
+	write_sysreg_s(val, SYS_TRFCR_EL1);
+	isb();
+}
+
+static inline u64 cpu_prohibit_trace(void)
+{
+	u64 trfcr = read_trfcr();
+
+	/* Prohibit tracing at EL0 & the kernel EL */
+	write_trfcr(trfcr & ~(TRFCR_ELx_ExTRE | TRFCR_ELx_E0TRE));
+	/* Return the original value of the TRFCR */
+	return trfcr;
+}
+#endif /*  __CORESIGHT_SELF_HOSTED_TRACE_H */
diff --git a/drivers/hwtracing/coresight/coresight-tmc-core.c b/drivers/hwtracing/coresight/coresight-tmc-core.c
index 74c6323..d0276af 100644
--- a/drivers/hwtracing/coresight/coresight-tmc-core.c
+++ b/drivers/hwtracing/coresight/coresight-tmc-core.c
@@ -432,6 +432,21 @@
 	return size;
 }
 
+static u32 tmc_etr_get_max_burst_size(struct device *dev)
+{
+	u32 burst_size;
+
+	if (fwnode_property_read_u32(dev->fwnode, "arm,max-burst-size",
+				     &burst_size))
+		return TMC_AXICTL_WR_BURST_16;
+
+	/* Only permissible values are 0 to 15 */
+	if (burst_size > 0xF)
+		burst_size = TMC_AXICTL_WR_BURST_16;
+
+	return burst_size;
+}
+
 static int tmc_probe(struct amba_device *adev, const struct amba_id *id)
 {
 	int ret = 0;
@@ -469,10 +484,12 @@
 	/* This device is not associated with a session */
 	drvdata->pid = -1;
 
-	if (drvdata->config_type == TMC_CONFIG_TYPE_ETR)
+	if (drvdata->config_type == TMC_CONFIG_TYPE_ETR) {
 		drvdata->size = tmc_etr_get_default_buffer_size(dev);
-	else
+		drvdata->max_burst_size = tmc_etr_get_max_burst_size(dev);
+	} else {
 		drvdata->size = readl_relaxed(drvdata->base + TMC_RSZ) * 4;
+	}
 
 	desc.dev = dev;
 	desc.groups = coresight_tmc_groups;
diff --git a/drivers/hwtracing/coresight/coresight-tmc-etf.c b/drivers/hwtracing/coresight/coresight-tmc-etf.c
index cd0fb7b..4c4cbd1 100644
--- a/drivers/hwtracing/coresight/coresight-tmc-etf.c
+++ b/drivers/hwtracing/coresight/coresight-tmc-etf.c
@@ -546,13 +546,17 @@
 
 	/*
 	 * In snapshot mode we simply increment the head by the number of byte
-	 * that were written.  User space function  cs_etm_find_snapshot() will
-	 * figure out how many bytes to get from the AUX buffer based on the
-	 * position of the head.
+	 * that were written.  User space will figure out how many bytes to get
+	 * from the AUX buffer based on the position of the head.
 	 */
 	if (buf->snapshot)
 		handle->head += to_read;
 
+	/*
+	 * CS_LOCK() contains mb() so it can ensure visibility of the AUX trace
+	 * data before the aux_head is updated via perf_aux_output_end(), which
+	 * is expected by the perf ring buffer.
+	 */
 	CS_LOCK(drvdata->base);
 out:
 	spin_unlock_irqrestore(&drvdata->spinlock, flags);
diff --git a/drivers/hwtracing/coresight/coresight-tmc-etr.c b/drivers/hwtracing/coresight/coresight-tmc-etr.c
index 0000d0c..368f2e5 100644
--- a/drivers/hwtracing/coresight/coresight-tmc-etr.c
+++ b/drivers/hwtracing/coresight/coresight-tmc-etr.c
@@ -32,7 +32,6 @@
  * @etr_buf		- Actual buffer used by the ETR
  * @pid			- The PID this etr_perf_buffer belongs to.
  * @snaphost		- Perf session mode
- * @head		- handle->head at the beginning of the session.
  * @nr_pages		- Number of pages in the ring buffer.
  * @pages		- Array of Pages in the ring buffer.
  */
@@ -41,7 +40,6 @@
 	struct etr_buf		*etr_buf;
 	pid_t			pid;
 	bool			snapshot;
-	unsigned long		head;
 	int			nr_pages;
 	void			**pages;
 };
@@ -609,8 +607,9 @@
 	if (!flat_buf)
 		return -ENOMEM;
 
-	flat_buf->vaddr = dma_alloc_coherent(real_dev, etr_buf->size,
-					     &flat_buf->daddr, GFP_KERNEL);
+	flat_buf->vaddr = dma_alloc_noncoherent(real_dev, etr_buf->size,
+						&flat_buf->daddr,
+						DMA_FROM_DEVICE, GFP_KERNEL);
 	if (!flat_buf->vaddr) {
 		kfree(flat_buf);
 		return -ENOMEM;
@@ -631,14 +630,18 @@
 	if (flat_buf && flat_buf->daddr) {
 		struct device *real_dev = flat_buf->dev->parent;
 
-		dma_free_coherent(real_dev, flat_buf->size,
-				  flat_buf->vaddr, flat_buf->daddr);
+		dma_free_noncoherent(real_dev, etr_buf->size,
+				     flat_buf->vaddr, flat_buf->daddr,
+				     DMA_FROM_DEVICE);
 	}
 	kfree(flat_buf);
 }
 
 static void tmc_etr_sync_flat_buf(struct etr_buf *etr_buf, u64 rrp, u64 rwp)
 {
+	struct etr_flat_buf *flat_buf = etr_buf->private;
+	struct device *real_dev = flat_buf->dev->parent;
+
 	/*
 	 * Adjust the buffer to point to the beginning of the trace data
 	 * and update the available trace data.
@@ -648,6 +651,19 @@
 		etr_buf->len = etr_buf->size;
 	else
 		etr_buf->len = rwp - rrp;
+
+	/*
+	 * The driver always starts tracing at the beginning of the buffer,
+	 * the only reason why we would get a wrap around is when the buffer
+	 * is full.  Sync the entire buffer in one go for this case.
+	 */
+	if (etr_buf->offset + etr_buf->len > etr_buf->size)
+		dma_sync_single_for_cpu(real_dev, flat_buf->daddr,
+					etr_buf->size, DMA_FROM_DEVICE);
+	else
+		dma_sync_single_for_cpu(real_dev,
+					flat_buf->daddr + etr_buf->offset,
+					etr_buf->len, DMA_FROM_DEVICE);
 }
 
 static ssize_t tmc_etr_get_data_flat_buf(struct etr_buf *etr_buf,
@@ -982,7 +998,8 @@
 
 	axictl = readl_relaxed(drvdata->base + TMC_AXICTL);
 	axictl &= ~TMC_AXICTL_CLEAR_MASK;
-	axictl |= (TMC_AXICTL_PROT_CTL_B1 | TMC_AXICTL_WR_BURST_16);
+	axictl |= TMC_AXICTL_PROT_CTL_B1;
+	axictl |= TMC_AXICTL_WR_BURST(drvdata->max_burst_size);
 	axictl |= TMC_AXICTL_AXCACHE_OS;
 
 	if (tmc_etr_has_cap(drvdata, TMC_ETR_AXI_ARCACHE)) {
@@ -1437,16 +1454,16 @@
  * buffer to the perf ring buffer.
  */
 static void tmc_etr_sync_perf_buffer(struct etr_perf_buffer *etr_perf,
+				     unsigned long head,
 				     unsigned long src_offset,
 				     unsigned long to_copy)
 {
 	long bytes;
 	long pg_idx, pg_offset;
-	unsigned long head = etr_perf->head;
 	char **dst_pages, *src_buf;
 	struct etr_buf *etr_buf = etr_perf->etr_buf;
 
-	head = etr_perf->head;
+	head = PERF_IDX2OFF(head, etr_perf);
 	pg_idx = head >> PAGE_SHIFT;
 	pg_offset = head & (PAGE_SIZE - 1);
 	dst_pages = (char **)etr_perf->pages;
@@ -1553,16 +1570,23 @@
 	/* Insert barrier packets at the beginning, if there was an overflow */
 	if (lost)
 		tmc_etr_buf_insert_barrier_packet(etr_buf, offset);
-	tmc_etr_sync_perf_buffer(etr_perf, offset, size);
+	tmc_etr_sync_perf_buffer(etr_perf, handle->head, offset, size);
 
 	/*
 	 * In snapshot mode we simply increment the head by the number of byte
-	 * that were written.  User space function  cs_etm_find_snapshot() will
-	 * figure out how many bytes to get from the AUX buffer based on the
-	 * position of the head.
+	 * that were written.  User space will figure out how many bytes to get
+	 * from the AUX buffer based on the position of the head.
 	 */
 	if (etr_perf->snapshot)
 		handle->head += size;
+
+	/*
+	 * Ensure that the AUX trace data is visible before the aux_head
+	 * is updated via perf_aux_output_end(), as expected by the
+	 * perf ring buffer.
+	 */
+	smp_wmb();
+
 out:
 	/*
 	 * Don't set the TRUNCATED flag in snapshot mode because 1) the
@@ -1605,8 +1629,6 @@
 		goto unlock_out;
 	}
 
-	etr_perf->head = PERF_IDX2OFF(handle->head, etr_perf);
-
 	/*
 	 * No HW configuration is needed if the sink is already in
 	 * use for this session.
diff --git a/drivers/hwtracing/coresight/coresight-tmc.h b/drivers/hwtracing/coresight/coresight-tmc.h
index b91ec7d..6bec20a 100644
--- a/drivers/hwtracing/coresight/coresight-tmc.h
+++ b/drivers/hwtracing/coresight/coresight-tmc.h
@@ -70,7 +70,8 @@
 #define TMC_AXICTL_PROT_CTL_B0	BIT(0)
 #define TMC_AXICTL_PROT_CTL_B1	BIT(1)
 #define TMC_AXICTL_SCT_GAT_MODE	BIT(7)
-#define TMC_AXICTL_WR_BURST_16	0xF00
+#define TMC_AXICTL_WR_BURST(v)	(((v) & 0xf) << 8)
+#define TMC_AXICTL_WR_BURST_16	0xf
 /* Write-back Read and Write-allocate */
 #define TMC_AXICTL_AXCACHE_OS	(0xf << 2)
 #define TMC_AXICTL_ARCACHE_OS	(0xf << 16)
@@ -174,6 +175,8 @@
  * @etr_buf:	details of buffer used in TMC-ETR
  * @len:	size of the available trace for ETF/ETB.
  * @size:	trace buffer size for this TMC (common for all modes).
+ * @max_burst_size: The maximum burst size that can be initiated by
+ *		TMC-ETR on AXI bus.
  * @mode:	how this TMC is being used.
  * @config_type: TMC variant, must be of type @tmc_config_type.
  * @memwidth:	width of the memory interface databus, in bytes.
@@ -198,6 +201,7 @@
 	};
 	u32			len;
 	u32			size;
+	u32			max_burst_size;
 	u32			mode;
 	enum tmc_config_type	config_type;
 	enum tmc_mem_intf_width	memwidth;
diff --git a/drivers/hwtracing/coresight/coresight-trbe.c b/drivers/hwtracing/coresight/coresight-trbe.c
index fac63d0..22ae53f 100644
--- a/drivers/hwtracing/coresight/coresight-trbe.c
+++ b/drivers/hwtracing/coresight/coresight-trbe.c
@@ -16,6 +16,9 @@
 #define pr_fmt(fmt) DRVNAME ": " fmt
 
 #include <asm/barrier.h>
+#include <asm/cpufeature.h>
+
+#include "coresight-self-hosted-trace.h"
 #include "coresight-trbe.h"
 
 #define PERF_IDX2OFF(idx, buf) ((idx) % ((buf)->nr_pages << PAGE_SHIFT))
@@ -56,6 +59,8 @@
 	 * trbe_limit sibling pointers.
 	 */
 	unsigned long trbe_base;
+	/* The base programmed into the TRBE */
+	unsigned long trbe_hw_base;
 	unsigned long trbe_limit;
 	unsigned long trbe_write;
 	int nr_pages;
@@ -64,13 +69,63 @@
 	struct trbe_cpudata *cpudata;
 };
 
+/*
+ * TRBE erratum list
+ *
+ * The errata are defined in arm64 generic cpu_errata framework.
+ * Since the errata work arounds could be applied individually
+ * to the affected CPUs inside the TRBE driver, we need to know if
+ * a given CPU is affected by the erratum. Unlike the other erratum
+ * work arounds, TRBE driver needs to check multiple times during
+ * a trace session. Thus we need a quicker access to per-CPU
+ * errata and not issue costly this_cpu_has_cap() everytime.
+ * We keep a set of the affected errata in trbe_cpudata, per TRBE.
+ *
+ * We rely on the corresponding cpucaps to be defined for a given
+ * TRBE erratum. We map the given cpucap into a TRBE internal number
+ * to make the tracking of the errata lean.
+ *
+ * This helps in :
+ *   - Not duplicating the detection logic
+ *   - Streamlined detection of erratum across the system
+ */
+#define TRBE_WORKAROUND_OVERWRITE_FILL_MODE	0
+#define TRBE_WORKAROUND_WRITE_OUT_OF_RANGE	1
+
+static int trbe_errata_cpucaps[] = {
+	[TRBE_WORKAROUND_OVERWRITE_FILL_MODE] = ARM64_WORKAROUND_TRBE_OVERWRITE_FILL_MODE,
+	[TRBE_WORKAROUND_WRITE_OUT_OF_RANGE] = ARM64_WORKAROUND_TRBE_WRITE_OUT_OF_RANGE,
+	-1,		/* Sentinel, must be the last entry */
+};
+
+/* The total number of listed errata in trbe_errata_cpucaps */
+#define TRBE_ERRATA_MAX			(ARRAY_SIZE(trbe_errata_cpucaps) - 1)
+
+/*
+ * Safe limit for the number of bytes that may be overwritten
+ * when ARM64_WORKAROUND_TRBE_OVERWRITE_FILL_MODE is triggered.
+ */
+#define TRBE_WORKAROUND_OVERWRITE_FILL_MODE_SKIP_BYTES	256
+
+/*
+ * struct trbe_cpudata: TRBE instance specific data
+ * @trbe_flag		- TRBE dirty/access flag support
+ * @trbe_hw_align	- Actual TRBE alignment required for TRBPTR_EL1.
+ * @trbe_align		- Software alignment used for the TRBPTR_EL1.
+ * @cpu			- CPU this TRBE belongs to.
+ * @mode		- Mode of current operation. (perf/disabled)
+ * @drvdata		- TRBE specific drvdata
+ * @errata		- Bit map for the errata on this TRBE.
+ */
 struct trbe_cpudata {
 	bool trbe_flag;
+	u64 trbe_hw_align;
 	u64 trbe_align;
 	int cpu;
 	enum cs_mode mode;
 	struct trbe_buf *buf;
 	struct trbe_drvdata *drvdata;
+	DECLARE_BITMAP(errata, TRBE_ERRATA_MAX);
 };
 
 struct trbe_drvdata {
@@ -83,6 +138,35 @@
 	struct platform_device *pdev;
 };
 
+static void trbe_check_errata(struct trbe_cpudata *cpudata)
+{
+	int i;
+
+	for (i = 0; i < TRBE_ERRATA_MAX; i++) {
+		int cap = trbe_errata_cpucaps[i];
+
+		if (WARN_ON_ONCE(cap < 0))
+			return;
+		if (this_cpu_has_cap(cap))
+			set_bit(i, cpudata->errata);
+	}
+}
+
+static inline bool trbe_has_erratum(struct trbe_cpudata *cpudata, int i)
+{
+	return (i < TRBE_ERRATA_MAX) && test_bit(i, cpudata->errata);
+}
+
+static inline bool trbe_may_overwrite_in_fill_mode(struct trbe_cpudata *cpudata)
+{
+	return trbe_has_erratum(cpudata, TRBE_WORKAROUND_OVERWRITE_FILL_MODE);
+}
+
+static inline bool trbe_may_write_out_of_range(struct trbe_cpudata *cpudata)
+{
+	return trbe_has_erratum(cpudata, TRBE_WORKAROUND_WRITE_OUT_OF_RANGE);
+}
+
 static int trbe_alloc_node(struct perf_event *event)
 {
 	if (event->cpu == -1)
@@ -120,6 +204,25 @@
 	write_sysreg_s(0, SYS_TRBSR_EL1);
 }
 
+static void trbe_report_wrap_event(struct perf_output_handle *handle)
+{
+	/*
+	 * Mark the buffer to indicate that there was a WRAP event by
+	 * setting the COLLISION flag. This indicates to the user that
+	 * the TRBE trace collection was stopped without stopping the
+	 * ETE and thus there might be some amount of trace that was
+	 * lost between the time the WRAP was detected and the IRQ
+	 * was consumed by the CPU.
+	 *
+	 * Setting the TRUNCATED flag would move the event to STOPPED
+	 * state unnecessarily, even when there is space left in the
+	 * ring buffer. Using the COLLISION flag doesn't have this side
+	 * effect. We only set TRUNCATED flag when there is no space
+	 * left in the ring buffer.
+	 */
+	perf_aux_output_flag(handle, PERF_AUX_FLAG_COLLISION);
+}
+
 static void trbe_stop_and_truncate_event(struct perf_output_handle *handle)
 {
 	struct trbe_buf *buf = etm_perf_sink_config(handle);
@@ -133,6 +236,7 @@
 	 */
 	trbe_drain_and_disable_local();
 	perf_aux_output_flag(handle, PERF_AUX_FLAG_TRUNCATED);
+	perf_aux_output_end(handle, 0);
 	*this_cpu_ptr(buf->cpudata->drvdata->handle) = NULL;
 }
 
@@ -178,12 +282,18 @@
  * consumed from the user space. The enabled TRBE buffer area is a moving subset of
  * the allocated perf auxiliary buffer.
  */
+
+static void __trbe_pad_buf(struct trbe_buf *buf, u64 offset, int len)
+{
+	memset((void *)buf->trbe_base + offset, ETE_IGNORE_PACKET, len);
+}
+
 static void trbe_pad_buf(struct perf_output_handle *handle, int len)
 {
 	struct trbe_buf *buf = etm_perf_sink_config(handle);
 	u64 head = PERF_IDX2OFF(handle->head, buf);
 
-	memset((void *)buf->trbe_base + head, ETE_IGNORE_PACKET, len);
+	__trbe_pad_buf(buf, head, len);
 	if (!buf->snapshot)
 		perf_aux_output_skip(handle, len);
 }
@@ -200,6 +310,25 @@
 	return buf->nr_pages * PAGE_SIZE;
 }
 
+static u64 trbe_min_trace_buf_size(struct perf_output_handle *handle)
+{
+	u64 size = TRBE_TRACE_MIN_BUF_SIZE;
+	struct trbe_buf *buf = etm_perf_sink_config(handle);
+	struct trbe_cpudata *cpudata = buf->cpudata;
+
+	/*
+	 * When the TRBE is affected by an erratum that could make it
+	 * write to the next "virtually addressed" page beyond the LIMIT.
+	 * We need to make sure there is always a PAGE after the LIMIT,
+	 * within the buffer. Thus we ensure there is at least an extra
+	 * page than normal. With this we could then adjust the LIMIT
+	 * pointer down by a PAGE later.
+	 */
+	if (trbe_may_write_out_of_range(cpudata))
+		size += PAGE_SIZE;
+	return size;
+}
+
 /*
  * TRBE Limit Calculation
  *
@@ -252,13 +381,9 @@
 	 * trbe_base				trbe_base + nr_pages
 	 *
 	 * Perf aux buffer does not have any space for the driver to write into.
-	 * Just communicate trace truncation event to the user space by marking
-	 * it with PERF_AUX_FLAG_TRUNCATED.
 	 */
-	if (!handle->size) {
-		perf_aux_output_flag(handle, PERF_AUX_FLAG_TRUNCATED);
+	if (!handle->size)
 		return 0;
-	}
 
 	/* Compute the tail and wakeup indices now that we've aligned head */
 	tail = PERF_IDX2OFF(handle->head + handle->size, buf);
@@ -360,7 +485,6 @@
 		return limit;
 
 	trbe_pad_buf(handle, handle->size);
-	perf_aux_output_flag(handle, PERF_AUX_FLAG_TRUNCATED);
 	return 0;
 }
 
@@ -374,10 +498,14 @@
 	 * If the head is too close to the limit and we don't
 	 * have space for a meaningful run, we rather pad it
 	 * and start fresh.
+	 *
+	 * We might have to do this more than once to make sure
+	 * we have enough required space.
 	 */
-	if (limit && (limit - head < TRBE_TRACE_MIN_BUF_SIZE)) {
+	while (limit && ((limit - head) < trbe_min_trace_buf_size(handle))) {
 		trbe_pad_buf(handle, limit - head);
 		limit = __trbe_normal_offset(handle);
+		head = PERF_IDX2OFF(handle->head, buf);
 	}
 	return limit;
 }
@@ -448,12 +576,13 @@
 
 static void trbe_enable_hw(struct trbe_buf *buf)
 {
-	WARN_ON(buf->trbe_write < buf->trbe_base);
+	WARN_ON(buf->trbe_hw_base < buf->trbe_base);
+	WARN_ON(buf->trbe_write < buf->trbe_hw_base);
 	WARN_ON(buf->trbe_write >= buf->trbe_limit);
 	set_trbe_disabled();
 	isb();
 	clr_trbe_status();
-	set_trbe_base_pointer(buf->trbe_base);
+	set_trbe_base_pointer(buf->trbe_hw_base);
 	set_trbe_write_pointer(buf->trbe_write);
 
 	/*
@@ -464,10 +593,13 @@
 	set_trbe_limit_pointer_enabled(buf->trbe_limit);
 }
 
-static enum trbe_fault_action trbe_get_fault_act(u64 trbsr)
+static enum trbe_fault_action trbe_get_fault_act(struct perf_output_handle *handle,
+						 u64 trbsr)
 {
 	int ec = get_trbe_ec(trbsr);
 	int bsc = get_trbe_bsc(trbsr);
+	struct trbe_buf *buf = etm_perf_sink_config(handle);
+	struct trbe_cpudata *cpudata = buf->cpudata;
 
 	WARN_ON(is_trbe_running(trbsr));
 	if (is_trbe_trg(trbsr) || is_trbe_abort(trbsr))
@@ -476,13 +608,71 @@
 	if ((ec == TRBE_EC_STAGE1_ABORT) || (ec == TRBE_EC_STAGE2_ABORT))
 		return TRBE_FAULT_ACT_FATAL;
 
-	if (is_trbe_wrap(trbsr) && (ec == TRBE_EC_OTHERS) && (bsc == TRBE_BSC_FILLED)) {
-		if (get_trbe_write_pointer() == get_trbe_base_pointer())
-			return TRBE_FAULT_ACT_WRAP;
-	}
+	/*
+	 * If the trbe is affected by TRBE_WORKAROUND_OVERWRITE_FILL_MODE,
+	 * it might write data after a WRAP event in the fill mode.
+	 * Thus the check TRBPTR == TRBBASER will not be honored.
+	 */
+	if ((is_trbe_wrap(trbsr) && (ec == TRBE_EC_OTHERS) && (bsc == TRBE_BSC_FILLED)) &&
+	    (trbe_may_overwrite_in_fill_mode(cpudata) ||
+	     get_trbe_write_pointer() == get_trbe_base_pointer()))
+		return TRBE_FAULT_ACT_WRAP;
+
 	return TRBE_FAULT_ACT_SPURIOUS;
 }
 
+static unsigned long trbe_get_trace_size(struct perf_output_handle *handle,
+					 struct trbe_buf *buf, bool wrap)
+{
+	u64 write;
+	u64 start_off, end_off;
+	u64 size;
+	u64 overwrite_skip = TRBE_WORKAROUND_OVERWRITE_FILL_MODE_SKIP_BYTES;
+
+	/*
+	 * If the TRBE has wrapped around the write pointer has
+	 * wrapped and should be treated as limit.
+	 *
+	 * When the TRBE is affected by TRBE_WORKAROUND_WRITE_OUT_OF_RANGE,
+	 * it may write upto 64bytes beyond the "LIMIT". The driver already
+	 * keeps a valid page next to the LIMIT and we could potentially
+	 * consume the trace data that may have been collected there. But we
+	 * cannot be really sure it is available, and the TRBPTR may not
+	 * indicate the same. Also, affected cores are also affected by another
+	 * erratum which forces the PAGE_SIZE alignment on the TRBPTR, and thus
+	 * could potentially pad an entire PAGE_SIZE - 64bytes, to get those
+	 * 64bytes. Thus we ignore the potential triggering of the erratum
+	 * on WRAP and limit the data to LIMIT.
+	 */
+	if (wrap)
+		write = get_trbe_limit_pointer();
+	else
+		write = get_trbe_write_pointer();
+
+	/*
+	 * TRBE may use a different base address than the base
+	 * of the ring buffer. Thus use the beginning of the ring
+	 * buffer to compute the offsets.
+	 */
+	end_off = write - buf->trbe_base;
+	start_off = PERF_IDX2OFF(handle->head, buf);
+
+	if (WARN_ON_ONCE(end_off < start_off))
+		return 0;
+
+	size = end_off - start_off;
+	/*
+	 * If the TRBE is affected by the following erratum, we must fill
+	 * the space we skipped with IGNORE packets. And we are always
+	 * guaranteed to have at least a PAGE_SIZE space in the buffer.
+	 */
+	if (trbe_has_erratum(buf->cpudata, TRBE_WORKAROUND_OVERWRITE_FILL_MODE) &&
+	    !WARN_ON(size < overwrite_skip))
+		__trbe_pad_buf(buf, start_off, overwrite_skip);
+
+	return size;
+}
+
 static void *arm_trbe_alloc_buffer(struct coresight_device *csdev,
 				   struct perf_event *event, void **pages,
 				   int nr_pages, bool snapshot)
@@ -544,9 +734,9 @@
 	struct trbe_cpudata *cpudata = dev_get_drvdata(&csdev->dev);
 	struct trbe_buf *buf = config;
 	enum trbe_fault_action act;
-	unsigned long size, offset;
-	unsigned long write, base, status;
+	unsigned long size, status;
 	unsigned long flags;
+	bool wrap = false;
 
 	WARN_ON(buf->cpudata != cpudata);
 	WARN_ON(cpudata->cpu != smp_processor_id());
@@ -554,8 +744,6 @@
 	if (cpudata->mode != CS_MODE_PERF)
 		return 0;
 
-	perf_aux_output_flag(handle, PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW);
-
 	/*
 	 * We are about to disable the TRBE. And this could in turn
 	 * fill up the buffer triggering, an IRQ. This could be consumed
@@ -588,8 +776,6 @@
 	 * handle gets freed in etm_event_stop().
 	 */
 	trbe_drain_and_disable_local();
-	write = get_trbe_write_pointer();
-	base = get_trbe_base_pointer();
 
 	/* Check if there is a pending interrupt and handle it here */
 	status = read_sysreg_s(SYS_TRBSR_EL1);
@@ -603,7 +789,7 @@
 		clr_trbe_irq();
 		isb();
 
-		act = trbe_get_fault_act(status);
+		act = trbe_get_fault_act(handle, status);
 		/*
 		 * If this was not due to a WRAP event, we have some
 		 * errors and as such buffer is empty.
@@ -613,20 +799,11 @@
 			goto done;
 		}
 
-		/*
-		 * Otherwise, the buffer is full and the write pointer
-		 * has reached base. Adjust this back to the Limit pointer
-		 * for correct size. Also, mark the buffer truncated.
-		 */
-		write = get_trbe_limit_pointer();
-		perf_aux_output_flag(handle, PERF_AUX_FLAG_TRUNCATED);
+		trbe_report_wrap_event(handle);
+		wrap = true;
 	}
 
-	offset = write - base;
-	if (WARN_ON_ONCE(offset < PERF_IDX2OFF(handle->head, buf)))
-		size = 0;
-	else
-		size = offset - PERF_IDX2OFF(handle->head, buf);
+	size = trbe_get_trace_size(handle, buf, wrap);
 
 done:
 	local_irq_restore(flags);
@@ -636,6 +813,148 @@
 	return size;
 }
 
+
+static int trbe_apply_work_around_before_enable(struct trbe_buf *buf)
+{
+	/*
+	 * TRBE_WORKAROUND_OVERWRITE_FILL_MODE causes the TRBE to overwrite a few cache
+	 * line size from the "TRBBASER_EL1" in the event of a "FILL".
+	 * Thus, we could loose some amount of the trace at the base.
+	 *
+	 * Before Fix:
+	 *
+	 *  normal-BASE     head (normal-TRBPTR)         tail (normal-LIMIT)
+	 *  |                   \/                       /
+	 *   -------------------------------------------------------------
+	 *  |   Pg0      |   Pg1       |           |          |  PgN     |
+	 *   -------------------------------------------------------------
+	 *
+	 * In the normal course of action, we would set the TRBBASER to the
+	 * beginning of the ring-buffer (normal-BASE). But with the erratum,
+	 * the TRBE could overwrite the contents at the "normal-BASE", after
+	 * hitting the "normal-LIMIT", since it doesn't stop as expected. And
+	 * this is wrong. This could result in overwriting trace collected in
+	 * one of the previous runs, being consumed by the user. So we must
+	 * always make sure that the TRBBASER is within the region
+	 * [head, head+size]. Note that TRBBASER must be PAGE aligned,
+	 *
+	 *  After moving the BASE:
+	 *
+	 *  normal-BASE     head (normal-TRBPTR)         tail (normal-LIMIT)
+	 *  |                   \/                       /
+	 *   -------------------------------------------------------------
+	 *  |         |          |xyzdef.     |..   tuvw|                |
+	 *   -------------------------------------------------------------
+	 *                      /
+	 *              New-BASER
+	 *
+	 * Also, we would set the TRBPTR to head (after adjusting for
+	 * alignment) at normal-PTR. This would mean that the last few bytes
+	 * of the trace (say, "xyz") might overwrite the first few bytes of
+	 * trace written ("abc"). More importantly they will appear in what
+	 * userspace sees as the beginning of the trace, which is wrong. We may
+	 * not always have space to move the latest trace "xyz" to the correct
+	 * order as it must appear beyond the LIMIT. (i.e, [head..head+size]).
+	 * Thus it is easier to ignore those bytes than to complicate the
+	 * driver to move it, assuming that the erratum was triggered and
+	 * doing additional checks to see if there is indeed allowed space at
+	 * TRBLIMITR.LIMIT.
+	 *
+	 *  Thus the full workaround will move the BASE and the PTR and would
+	 *  look like (after padding at the skipped bytes at the end of
+	 *  session) :
+	 *
+	 *  normal-BASE     head (normal-TRBPTR)         tail (normal-LIMIT)
+	 *  |                   \/                       /
+	 *   -------------------------------------------------------------
+	 *  |         |          |///abc..     |..  rst|                |
+	 *   -------------------------------------------------------------
+	 *                      /    |
+	 *              New-BASER    New-TRBPTR
+	 *
+	 * To summarize, with the work around:
+	 *
+	 *  - We always align the offset for the next session to PAGE_SIZE
+	 *    (This is to ensure we can program the TRBBASER to this offset
+	 *    within the region [head...head+size]).
+	 *
+	 *  - At TRBE enable:
+	 *     - Set the TRBBASER to the page aligned offset of the current
+	 *       proposed write offset. (which is guaranteed to be aligned
+	 *       as above)
+	 *     - Move the TRBPTR to skip first 256bytes (that might be
+	 *       overwritten with the erratum). This ensures that the trace
+	 *       generated in the session is not re-written.
+	 *
+	 *  - At trace collection:
+	 *     - Pad the 256bytes skipped above again with IGNORE packets.
+	 */
+	if (trbe_has_erratum(buf->cpudata, TRBE_WORKAROUND_OVERWRITE_FILL_MODE)) {
+		if (WARN_ON(!IS_ALIGNED(buf->trbe_write, PAGE_SIZE)))
+			return -EINVAL;
+		buf->trbe_hw_base = buf->trbe_write;
+		buf->trbe_write += TRBE_WORKAROUND_OVERWRITE_FILL_MODE_SKIP_BYTES;
+	}
+
+	/*
+	 * TRBE_WORKAROUND_WRITE_OUT_OF_RANGE could cause the TRBE to write to
+	 * the next page after the TRBLIMITR.LIMIT. For perf, the "next page"
+	 * may be:
+	 *     - The page beyond the ring buffer. This could mean, TRBE could
+	 *       corrupt another entity (kernel / user)
+	 *     - A portion of the "ring buffer" consumed by the userspace.
+	 *       i.e, a page outisde [head, head + size].
+	 *
+	 * We work around this by:
+	 *     - Making sure that we have at least an extra space of PAGE left
+	 *       in the ring buffer [head, head + size], than we normally do
+	 *       without the erratum. See trbe_min_trace_buf_size().
+	 *
+	 *     - Adjust the TRBLIMITR.LIMIT to leave the extra PAGE outside
+	 *       the TRBE's range (i.e [TRBBASER, TRBLIMITR.LIMI] ).
+	 */
+	if (trbe_has_erratum(buf->cpudata, TRBE_WORKAROUND_WRITE_OUT_OF_RANGE)) {
+		s64 space = buf->trbe_limit - buf->trbe_write;
+		/*
+		 * We must have more than a PAGE_SIZE worth space in the proposed
+		 * range for the TRBE.
+		 */
+		if (WARN_ON(space <= PAGE_SIZE ||
+			    !IS_ALIGNED(buf->trbe_limit, PAGE_SIZE)))
+			return -EINVAL;
+		buf->trbe_limit -= PAGE_SIZE;
+	}
+
+	return 0;
+}
+
+static int __arm_trbe_enable(struct trbe_buf *buf,
+			     struct perf_output_handle *handle)
+{
+	int ret = 0;
+
+	perf_aux_output_flag(handle, PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW);
+	buf->trbe_limit = compute_trbe_buffer_limit(handle);
+	buf->trbe_write = buf->trbe_base + PERF_IDX2OFF(handle->head, buf);
+	if (buf->trbe_limit == buf->trbe_base) {
+		ret = -ENOSPC;
+		goto err;
+	}
+	/* Set the base of the TRBE to the buffer base */
+	buf->trbe_hw_base = buf->trbe_base;
+
+	ret = trbe_apply_work_around_before_enable(buf);
+	if (ret)
+		goto err;
+
+	*this_cpu_ptr(buf->cpudata->drvdata->handle) = handle;
+	trbe_enable_hw(buf);
+	return 0;
+err:
+	trbe_stop_and_truncate_event(handle);
+	return ret;
+}
+
 static int arm_trbe_enable(struct coresight_device *csdev, u32 mode, void *data)
 {
 	struct trbe_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
@@ -648,18 +967,11 @@
 	if (mode != CS_MODE_PERF)
 		return -EINVAL;
 
-	*this_cpu_ptr(drvdata->handle) = handle;
 	cpudata->buf = buf;
 	cpudata->mode = mode;
 	buf->cpudata = cpudata;
-	buf->trbe_limit = compute_trbe_buffer_limit(handle);
-	buf->trbe_write = buf->trbe_base + PERF_IDX2OFF(handle->head, buf);
-	if (buf->trbe_limit == buf->trbe_base) {
-		trbe_stop_and_truncate_event(handle);
-		return 0;
-	}
-	trbe_enable_hw(buf);
-	return 0;
+
+	return __arm_trbe_enable(buf, handle);
 }
 
 static int arm_trbe_disable(struct coresight_device *csdev)
@@ -683,35 +995,30 @@
 
 static void trbe_handle_spurious(struct perf_output_handle *handle)
 {
-	struct trbe_buf *buf = etm_perf_sink_config(handle);
+	u64 limitr = read_sysreg_s(SYS_TRBLIMITR_EL1);
 
-	buf->trbe_limit = compute_trbe_buffer_limit(handle);
-	buf->trbe_write = buf->trbe_base + PERF_IDX2OFF(handle->head, buf);
-	if (buf->trbe_limit == buf->trbe_base) {
-		trbe_drain_and_disable_local();
-		return;
-	}
-	trbe_enable_hw(buf);
+	/*
+	 * If the IRQ was spurious, simply re-enable the TRBE
+	 * back without modifying the buffer parameters to
+	 * retain the trace collected so far.
+	 */
+	limitr |= TRBLIMITR_ENABLE;
+	write_sysreg_s(limitr, SYS_TRBLIMITR_EL1);
+	isb();
 }
 
-static void trbe_handle_overflow(struct perf_output_handle *handle)
+static int trbe_handle_overflow(struct perf_output_handle *handle)
 {
 	struct perf_event *event = handle->event;
 	struct trbe_buf *buf = etm_perf_sink_config(handle);
-	unsigned long offset, size;
+	unsigned long size;
 	struct etm_event_data *event_data;
 
-	offset = get_trbe_limit_pointer() - get_trbe_base_pointer();
-	size = offset - PERF_IDX2OFF(handle->head, buf);
+	size = trbe_get_trace_size(handle, buf, true);
 	if (buf->snapshot)
 		handle->head += size;
 
-	/*
-	 * Mark the buffer as truncated, as we have stopped the trace
-	 * collection upon the WRAP event, without stopping the source.
-	 */
-	perf_aux_output_flag(handle, PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW |
-				     PERF_AUX_FLAG_TRUNCATED);
+	trbe_report_wrap_event(handle);
 	perf_aux_output_end(handle, size);
 	event_data = perf_aux_output_begin(handle, event);
 	if (!event_data) {
@@ -723,16 +1030,10 @@
 		 */
 		trbe_drain_and_disable_local();
 		*this_cpu_ptr(buf->cpudata->drvdata->handle) = NULL;
-		return;
+		return -EINVAL;
 	}
-	buf->trbe_limit = compute_trbe_buffer_limit(handle);
-	buf->trbe_write = buf->trbe_base + PERF_IDX2OFF(handle->head, buf);
-	if (buf->trbe_limit == buf->trbe_base) {
-		trbe_stop_and_truncate_event(handle);
-		return;
-	}
-	*this_cpu_ptr(buf->cpudata->drvdata->handle) = handle;
-	trbe_enable_hw(buf);
+
+	return __arm_trbe_enable(buf, handle);
 }
 
 static bool is_perf_trbe(struct perf_output_handle *handle)
@@ -742,7 +1043,7 @@
 	struct trbe_drvdata *drvdata = cpudata->drvdata;
 	int cpu = smp_processor_id();
 
-	WARN_ON(buf->trbe_base != get_trbe_base_pointer());
+	WARN_ON(buf->trbe_hw_base != get_trbe_base_pointer());
 	WARN_ON(buf->trbe_limit != get_trbe_limit_pointer());
 
 	if (cpudata->mode != CS_MODE_PERF)
@@ -763,13 +1064,10 @@
 	struct perf_output_handle *handle = *handle_ptr;
 	enum trbe_fault_action act;
 	u64 status;
+	bool truncated = false;
+	u64 trfcr;
 
-	/*
-	 * Ensure the trace is visible to the CPUs and
-	 * any external aborts have been resolved.
-	 */
-	trbe_drain_and_disable_local();
-
+	/* Reads to TRBSR_EL1 is fine when TRBE is active */
 	status = read_sysreg_s(SYS_TRBSR_EL1);
 	/*
 	 * If the pending IRQ was handled by update_buffer callback
@@ -778,6 +1076,13 @@
 	if (!is_trbe_irq(status))
 		return IRQ_NONE;
 
+	/* Prohibit the CPU from tracing before we disable the TRBE */
+	trfcr = cpu_prohibit_trace();
+	/*
+	 * Ensure the trace is visible to the CPUs and
+	 * any external aborts have been resolved.
+	 */
+	trbe_drain_and_disable_local();
 	clr_trbe_irq();
 	isb();
 
@@ -787,24 +1092,32 @@
 	if (!is_perf_trbe(handle))
 		return IRQ_NONE;
 
-	/*
-	 * Ensure perf callbacks have completed, which may disable
-	 * the trace buffer in response to a TRUNCATION flag.
-	 */
-	irq_work_run();
-
-	act = trbe_get_fault_act(status);
+	act = trbe_get_fault_act(handle, status);
 	switch (act) {
 	case TRBE_FAULT_ACT_WRAP:
-		trbe_handle_overflow(handle);
+		truncated = !!trbe_handle_overflow(handle);
 		break;
 	case TRBE_FAULT_ACT_SPURIOUS:
 		trbe_handle_spurious(handle);
 		break;
 	case TRBE_FAULT_ACT_FATAL:
 		trbe_stop_and_truncate_event(handle);
+		truncated = true;
 		break;
 	}
+
+	/*
+	 * If the buffer was truncated, ensure perf callbacks
+	 * have completed, which will disable the event.
+	 *
+	 * Otherwise, restore the trace filter controls to
+	 * allow the tracing.
+	 */
+	if (truncated)
+		irq_work_run();
+	else
+		write_trfcr(trfcr);
+
 	return IRQ_HANDLED;
 }
 
@@ -824,7 +1137,7 @@
 {
 	struct trbe_cpudata *cpudata = dev_get_drvdata(dev);
 
-	return sprintf(buf, "%llx\n", cpudata->trbe_align);
+	return sprintf(buf, "%llx\n", cpudata->trbe_hw_align);
 }
 static DEVICE_ATTR_RO(align);
 
@@ -895,6 +1208,9 @@
 	cpumask_clear_cpu(cpu, &drvdata->supported_cpus);
 }
 
+/*
+ * Must be called with preemption disabled, for trbe_check_errata().
+ */
 static void arm_trbe_probe_cpu(void *info)
 {
 	struct trbe_drvdata *drvdata = info;
@@ -916,11 +1232,34 @@
 		goto cpu_clear;
 	}
 
-	cpudata->trbe_align = 1ULL << get_trbe_address_align(trbidr);
-	if (cpudata->trbe_align > SZ_2K) {
+	cpudata->trbe_hw_align = 1ULL << get_trbe_address_align(trbidr);
+	if (cpudata->trbe_hw_align > SZ_2K) {
 		pr_err("Unsupported alignment on cpu %d\n", cpu);
 		goto cpu_clear;
 	}
+
+	/*
+	 * Run the TRBE erratum checks, now that we know
+	 * this instance is about to be registered.
+	 */
+	trbe_check_errata(cpudata);
+
+	/*
+	 * If the TRBE is affected by erratum TRBE_WORKAROUND_OVERWRITE_FILL_MODE,
+	 * we must always program the TBRPTR_EL1, 256bytes from a page
+	 * boundary, with TRBBASER_EL1 set to the page, to prevent
+	 * TRBE over-writing 256bytes at TRBBASER_EL1 on FILL event.
+	 *
+	 * Thus make sure we always align our write pointer to a PAGE_SIZE,
+	 * which also guarantees that we have at least a PAGE_SIZE space in
+	 * the buffer (TRBLIMITR is PAGE aligned) and thus we can skip
+	 * the required bytes at the base.
+	 */
+	if (trbe_may_overwrite_in_fill_mode(cpudata))
+		cpudata->trbe_align = PAGE_SIZE;
+	else
+		cpudata->trbe_align = cpudata->trbe_hw_align;
+
 	cpudata->trbe_flag = get_trbe_flag_update(trbidr);
 	cpudata->cpu = cpu;
 	cpudata->drvdata = drvdata;
@@ -975,6 +1314,13 @@
 	return 0;
 }
 
+static void arm_trbe_probe_hotplugged_cpu(struct trbe_drvdata *drvdata)
+{
+	preempt_disable();
+	arm_trbe_probe_cpu(drvdata);
+	preempt_enable();
+}
+
 static int arm_trbe_cpu_startup(unsigned int cpu, struct hlist_node *node)
 {
 	struct trbe_drvdata *drvdata = hlist_entry_safe(node, struct trbe_drvdata, hotplug_node);
@@ -986,7 +1332,7 @@
 		 * initialize it now.
 		 */
 		if (!coresight_get_percpu_sink(cpu)) {
-			arm_trbe_probe_cpu(drvdata);
+			arm_trbe_probe_hotplugged_cpu(drvdata);
 			if (cpumask_test_cpu(cpu, &drvdata->supported_cpus))
 				arm_trbe_register_coresight_cpu(drvdata, cpu);
 			if (cpumask_test_cpu(cpu, &drvdata->supported_cpus))
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
index 95f9069..e4605ff 100644
--- a/drivers/input/evdev.c
+++ b/drivers/input/evdev.c
@@ -24,6 +24,7 @@
 #include <linux/device.h>
 #include <linux/cdev.h>
 #include "input-compat.h"
+#include <trace/hooks/evdev.h>
 
 struct evdev {
 	int open;
@@ -214,6 +215,9 @@
 static void __pass_event(struct evdev_client *client,
 			 const struct input_event *event)
 {
+	trace_android_vh_pass_input_event(client->head, client->tail, client->bufsize,
+		event->type, event->code, event->value);
+
 	client->buffer[client->head++] = *event;
 	client->head &= client->bufsize - 1;
 
diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 48c6f7f..c62745c 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -25,6 +25,7 @@
 #include <linux/vmalloc.h>
 #include <linux/crash_dump.h>
 #include <linux/dma-direct.h>
+#include <trace/hooks/iommu.h>
 
 struct iommu_dma_msi_page {
 	struct list_head	list;
@@ -51,6 +52,11 @@
 	struct iommu_domain		*fq_domain;
 };
 
+struct iommu_dma_cookie_ext {
+	struct iommu_dma_cookie		cookie;
+	struct mutex			mutex;
+};
+
 static DEFINE_STATIC_KEY_FALSE(iommu_deferred_attach_enabled);
 bool iommu_dma_forcedac __read_mostly;
 
@@ -85,14 +91,15 @@
 
 static struct iommu_dma_cookie *cookie_alloc(enum iommu_dma_cookie_type type)
 {
-	struct iommu_dma_cookie *cookie;
+	struct iommu_dma_cookie_ext *cookie;
 
 	cookie = kzalloc(sizeof(*cookie), GFP_KERNEL);
 	if (cookie) {
-		INIT_LIST_HEAD(&cookie->msi_page_list);
-		cookie->type = type;
+		INIT_LIST_HEAD(&cookie->cookie.msi_page_list);
+		cookie->cookie.type = type;
+		mutex_init(&cookie->mutex);
 	}
-	return cookie;
+	return &cookie->cookie;
 }
 
 /**
@@ -362,8 +369,10 @@
 				 dma_addr_t limit, struct device *dev)
 {
 	struct iommu_dma_cookie *cookie = domain->iova_cookie;
+	struct iommu_dma_cookie_ext *cookie_ext;
 	unsigned long order, base_pfn;
 	struct iova_domain *iovad;
+	int ret;
 
 	if (!cookie || cookie->type != IOMMU_DMA_IOVA_COOKIE)
 		return -EINVAL;
@@ -387,14 +396,18 @@
 	}
 
 	/* start_pfn is always nonzero for an already-initialised domain */
+	cookie_ext = container_of(cookie, struct iommu_dma_cookie_ext, cookie);
+	mutex_lock(&cookie_ext->mutex);
 	if (iovad->start_pfn) {
 		if (1UL << order != iovad->granule ||
 		    base_pfn != iovad->start_pfn) {
 			pr_warn("Incompatible range for DMA domain\n");
-			return -EFAULT;
+			ret = -EFAULT;
+			goto done_unlock;
 		}
 
-		return 0;
+		ret = 0;
+		goto done_unlock;
 	}
 
 	init_iova_domain(iovad, 1UL << order, base_pfn);
@@ -403,9 +416,31 @@
 	if (domain->type == IOMMU_DOMAIN_DMA_FQ && iommu_dma_init_fq(domain))
 		domain->type = IOMMU_DOMAIN_DMA;
 
-	return iova_reserve_iommu_regions(dev, domain);
+	ret = iova_reserve_iommu_regions(dev, domain);
+
+done_unlock:
+	mutex_unlock(&cookie_ext->mutex);
+	return ret;
 }
 
+/*
+ * Should be called prior to using dma-apis.
+ */
+int iommu_dma_enable_best_fit_algo(struct device *dev)
+{
+	struct iommu_domain *domain;
+	struct iova_domain *iovad;
+
+	domain = iommu_get_domain_for_dev(dev);
+	if (!domain || !domain->iova_cookie)
+		return -EINVAL;
+
+	iovad = &((struct iommu_dma_cookie *)domain->iova_cookie)->iovad;
+	iovad->best_fit = true;
+	return 0;
+}
+EXPORT_SYMBOL(iommu_dma_enable_best_fit_algo);
+
 /**
  * dma_info_to_prot - Translate DMA API directions and attributes to IOMMU API
  *                    page flags.
@@ -422,6 +457,10 @@
 
 	if (attrs & DMA_ATTR_PRIVILEGED)
 		prot |= IOMMU_PRIV;
+	if (attrs & DMA_ATTR_SYS_CACHE_ONLY)
+		prot |= IOMMU_SYS_CACHE;
+	if (attrs & DMA_ATTR_SYS_CACHE_ONLY_NWA)
+		prot |= IOMMU_SYS_CACHE_NWA;
 
 	switch (dir) {
 	case DMA_BIDIRECTIONAL:
@@ -472,6 +511,8 @@
 		iova = alloc_iova_fast(iovad, iova_len, dma_limit >> shift,
 				       true);
 
+	trace_android_vh_iommu_iovad_alloc_iova(dev, iovad, (dma_addr_t)iova << shift, size);
+
 	return (dma_addr_t)iova << shift;
 }
 
@@ -490,6 +531,8 @@
 	else
 		free_iova_fast(iovad, iova_pfn(iovad, iova),
 				size >> iova_shift(iovad));
+
+	trace_android_vh_iommu_iovad_free_iova(iovad, iova, size);
 }
 
 static void __iommu_dma_unmap(struct device *dev, dma_addr_t dma_addr,
diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c
index 94ff319..f2ff224 100644
--- a/drivers/iommu/io-pgtable-arm.c
+++ b/drivers/iommu/io-pgtable-arm.c
@@ -118,10 +118,14 @@
 #define ARM_LPAE_MAIR_ATTR_NC		0x44
 #define ARM_LPAE_MAIR_ATTR_INC_OWBRWA	0xf4
 #define ARM_LPAE_MAIR_ATTR_WBRWA	0xff
+#define ARM_LPAE_MAIR_ATTR_INC_OWBRANWA		0xe4ULL
+#define ARM_LPAE_MAIR_ATTR_IWBRWA_OWBRANWA	0xefULL
 #define ARM_LPAE_MAIR_ATTR_IDX_NC	0
 #define ARM_LPAE_MAIR_ATTR_IDX_CACHE	1
 #define ARM_LPAE_MAIR_ATTR_IDX_DEV	2
 #define ARM_LPAE_MAIR_ATTR_IDX_INC_OCACHE	3
+#define ARM_LPAE_MAIR_ATTR_IDX_INC_OCACHE_NWA		4
+#define ARM_LPAE_MAIR_ATTR_IDX_ICACHE_OCACHE_NWA	5
 
 #define ARM_MALI_LPAE_TTBR_ADRMODE_TABLE (3u << 0)
 #define ARM_MALI_LPAE_TTBR_READ_INNER	BIT(2)
@@ -446,9 +450,19 @@
 		if (prot & IOMMU_MMIO)
 			pte |= (ARM_LPAE_MAIR_ATTR_IDX_DEV
 				<< ARM_LPAE_PTE_ATTRINDX_SHIFT);
+		else if ((prot & IOMMU_CACHE) && (prot & IOMMU_SYS_CACHE_NWA))
+			pte |= (ARM_LPAE_MAIR_ATTR_IDX_ICACHE_OCACHE_NWA
+				<< ARM_LPAE_PTE_ATTRINDX_SHIFT);
+		/* IOMMU_CACHE + IOMMU_SYS_CACHE equivalent to IOMMU_CACHE */
 		else if (prot & IOMMU_CACHE)
 			pte |= (ARM_LPAE_MAIR_ATTR_IDX_CACHE
 				<< ARM_LPAE_PTE_ATTRINDX_SHIFT);
+		else if (prot & IOMMU_SYS_CACHE)
+			pte |= (ARM_LPAE_MAIR_ATTR_IDX_INC_OCACHE
+				<< ARM_LPAE_PTE_ATTRINDX_SHIFT);
+		else if (prot & IOMMU_SYS_CACHE_NWA)
+			pte |= (ARM_LPAE_MAIR_ATTR_IDX_INC_OCACHE_NWA
+				<< ARM_LPAE_PTE_ATTRINDX_SHIFT);
 	}
 
 	/*
@@ -904,7 +918,11 @@
 	      (ARM_LPAE_MAIR_ATTR_DEVICE
 	       << ARM_LPAE_MAIR_ATTR_SHIFT(ARM_LPAE_MAIR_ATTR_IDX_DEV)) |
 	      (ARM_LPAE_MAIR_ATTR_INC_OWBRWA
-	       << ARM_LPAE_MAIR_ATTR_SHIFT(ARM_LPAE_MAIR_ATTR_IDX_INC_OCACHE));
+	       << ARM_LPAE_MAIR_ATTR_SHIFT(ARM_LPAE_MAIR_ATTR_IDX_INC_OCACHE)) |
+	      (ARM_LPAE_MAIR_ATTR_INC_OWBRANWA
+	       << ARM_LPAE_MAIR_ATTR_SHIFT(ARM_LPAE_MAIR_ATTR_IDX_INC_OCACHE_NWA)) |
+	      (ARM_LPAE_MAIR_ATTR_IWBRWA_OWBRANWA
+	       << ARM_LPAE_MAIR_ATTR_SHIFT(ARM_LPAE_MAIR_ATTR_IDX_ICACHE_OCACHE_NWA));
 
 	cfg->arm_lpae_s1_cfg.mair = reg;
 
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index d06dbf0..ce03f22 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -221,13 +221,23 @@
 	const struct iommu_ops *ops = dev->bus->iommu_ops;
 	struct iommu_device *iommu_dev;
 	struct iommu_group *group;
+	static DEFINE_MUTEX(iommu_probe_device_lock);
 	int ret;
 
 	if (!ops)
 		return -ENODEV;
-
-	if (!dev_iommu_get(dev))
-		return -ENOMEM;
+	/*
+	 * Serialise to avoid races between IOMMU drivers registering in
+	 * parallel and/or the "replay" calls from ACPI/OF code via client
+	 * driver probe. Once the latter have been cleaned up we should
+	 * probably be able to use device_lock() here to minimise the scope,
+	 * but for now enforcing a simple global ordering is fine.
+	 */
+	mutex_lock(&iommu_probe_device_lock);
+	if (!dev_iommu_get(dev)) {
+		ret = -ENOMEM;
+		goto err_unlock;
+	}
 
 	if (!try_module_get(ops->owner)) {
 		ret = -EINVAL;
@@ -247,11 +257,14 @@
 		ret = PTR_ERR(group);
 		goto out_release;
 	}
-	iommu_group_put(group);
 
+	mutex_lock(&group->mutex);
 	if (group_list && !group->default_domain && list_empty(&group->entry))
 		list_add_tail(&group->entry, group_list);
+	mutex_unlock(&group->mutex);
+	iommu_group_put(group);
 
+	mutex_unlock(&iommu_probe_device_lock);
 	iommu_device_link(iommu_dev, dev);
 
 	return 0;
@@ -265,6 +278,9 @@
 err_free:
 	dev_iommu_free(dev);
 
+err_unlock:
+	mutex_unlock(&iommu_probe_device_lock);
+
 	return ret;
 }
 
@@ -1811,11 +1827,11 @@
 		return ret;
 
 	list_for_each_entry_safe(group, next, &group_list, entry) {
+		mutex_lock(&group->mutex);
+
 		/* Remove item from the list */
 		list_del_init(&group->entry);
 
-		mutex_lock(&group->mutex);
-
 		/* Try to allocate default domain */
 		probe_alloc_default_domain(bus, group);
 
@@ -2670,6 +2686,18 @@
 	unsigned int i = 0;
 	int ret;
 
+	if (ops->map_sg) {
+		ret = ops->map_sg(domain, iova, sg, nents, prot, gfp, &mapped);
+
+		if (ops->iotlb_sync_map)
+			ops->iotlb_sync_map(domain, iova, mapped);
+
+		if (ret)
+			goto out_err;
+
+		return mapped;
+	}
+
 	while (i <= nents) {
 		phys_addr_t s_phys = sg_phys(sg);
 
diff --git a/drivers/iommu/iova.c b/drivers/iommu/iova.c
index 0835f32..20867c6 100644
--- a/drivers/iommu/iova.c
+++ b/drivers/iommu/iova.c
@@ -5,6 +5,7 @@
  * Author: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
  */
 
+#include <linux/init.h>
 #include <linux/iova.h>
 #include <linux/module.h>
 #include <linux/slab.h>
@@ -15,6 +16,9 @@
 /* The anchor node sits above the top of the usable address space */
 #define IOVA_ANCHOR	~0UL
 
+#define IOMMU_DEFAULT_IOVA_MAX_ALIGN_SHIFT	9
+static unsigned long iommu_max_align_shift __read_mostly = IOMMU_DEFAULT_IOVA_MAX_ALIGN_SHIFT;
+
 static bool iova_rcache_insert(struct iova_domain *iovad,
 			       unsigned long pfn,
 			       unsigned long size);
@@ -27,6 +31,29 @@
 static void fq_destroy_all_entries(struct iova_domain *iovad);
 static void fq_flush_timeout(struct timer_list *t);
 
+static unsigned long limit_align_shift(struct iova_domain *iovad, unsigned long shift)
+{
+	unsigned long max_align_shift;
+
+	max_align_shift = iommu_max_align_shift + PAGE_SHIFT - iova_shift(iovad);
+	return min_t(unsigned long, max_align_shift, shift);
+}
+
+#ifndef MODULE
+static int __init iommu_set_def_max_align_shift(char *str)
+{
+	unsigned long max_align_shift;
+
+	int ret = kstrtoul(str, 10, &max_align_shift);
+
+	if (!ret)
+		iommu_max_align_shift = max_align_shift;
+
+	return 0;
+}
+early_param("iommu.max_align_shift", iommu_set_def_max_align_shift);
+#endif
+
 static int iova_cpuhp_dead(unsigned int cpu, struct hlist_node *node)
 {
 	struct iova_domain *iovad;
@@ -69,6 +96,7 @@
 	rb_link_node(&iovad->anchor.node, NULL, &iovad->rbroot.rb_node);
 	rb_insert_color(&iovad->anchor.node, &iovad->rbroot);
 	cpuhp_state_add_instance_nocalls(CPUHP_IOMMU_IOVA_DEAD, &iovad->cpuhp_dead);
+	iovad->best_fit = false;
 	init_iova_rcaches(iovad);
 }
 EXPORT_SYMBOL_GPL(init_iova_domain);
@@ -242,7 +270,7 @@
 	unsigned long high_pfn = limit_pfn, low_pfn = iovad->start_pfn;
 
 	if (size_aligned)
-		align_mask <<= fls_long(size - 1);
+		align_mask <<= limit_align_shift(iovad, fls_long(size - 1));
 
 	/* Walk the tree backwards */
 	spin_lock_irqsave(&iovad->iova_rbtree_lock, flags);
@@ -291,6 +319,70 @@
 	return -ENOMEM;
 }
 
+static int __alloc_and_insert_iova_best_fit(struct iova_domain *iovad,
+					    unsigned long size,
+					    unsigned long limit_pfn,
+					    struct iova *new, bool size_aligned)
+{
+	struct rb_node *curr, *prev;
+	struct iova *curr_iova, *prev_iova;
+	unsigned long flags;
+	unsigned long align_mask = ~0UL;
+	struct rb_node *candidate_rb_parent;
+	unsigned long new_pfn, candidate_pfn = ~0UL;
+	unsigned long gap, candidate_gap = ~0UL;
+
+	if (size_aligned)
+		align_mask <<= limit_align_shift(iovad, fls_long(size - 1));
+
+	/* Walk the tree backwards */
+	spin_lock_irqsave(&iovad->iova_rbtree_lock, flags);
+	curr = &iovad->anchor.node;
+	prev = rb_prev(curr);
+	for (; prev; curr = prev, prev = rb_prev(curr)) {
+		curr_iova = rb_entry(curr, struct iova, node);
+		prev_iova = rb_entry(prev, struct iova, node);
+
+		limit_pfn = min(limit_pfn, curr_iova->pfn_lo);
+		new_pfn = (limit_pfn - size) & align_mask;
+		gap = curr_iova->pfn_lo - prev_iova->pfn_hi - 1;
+		if ((limit_pfn >= size) && (new_pfn > prev_iova->pfn_hi)
+				&& (gap < candidate_gap)) {
+			candidate_gap = gap;
+			candidate_pfn = new_pfn;
+			candidate_rb_parent = curr;
+			if (gap == size)
+				goto insert;
+		}
+	}
+
+	curr_iova = rb_entry(curr, struct iova, node);
+	limit_pfn = min(limit_pfn, curr_iova->pfn_lo);
+	new_pfn = (limit_pfn - size) & align_mask;
+	gap = curr_iova->pfn_lo - iovad->start_pfn;
+	if (limit_pfn >= size && new_pfn >= iovad->start_pfn &&
+			gap < candidate_gap) {
+		candidate_gap = gap;
+		candidate_pfn = new_pfn;
+		candidate_rb_parent = curr;
+	}
+
+insert:
+	if (candidate_pfn == ~0UL) {
+		spin_unlock_irqrestore(&iovad->iova_rbtree_lock, flags);
+		return -ENOMEM;
+	}
+
+	/* pfn_lo will point to size aligned address if size_aligned is set */
+	new->pfn_lo = candidate_pfn;
+	new->pfn_hi = new->pfn_lo + size - 1;
+
+	/* If we have 'prev', it's a valid place to start the insertion. */
+	iova_insert_rbtree(&iovad->rbroot, new, candidate_rb_parent);
+	spin_unlock_irqrestore(&iovad->iova_rbtree_lock, flags);
+	return 0;
+}
+
 static struct kmem_cache *iova_cache;
 static unsigned int iova_cache_users;
 static DEFINE_MUTEX(iova_cache_mutex);
@@ -377,8 +469,13 @@
 	if (!new_iova)
 		return NULL;
 
-	ret = __alloc_and_insert_iova_range(iovad, size, limit_pfn + 1,
-			new_iova, size_aligned);
+	if (iovad->best_fit) {
+		ret = __alloc_and_insert_iova_best_fit(iovad, size,
+				limit_pfn + 1, new_iova, size_aligned);
+	} else {
+		ret = __alloc_and_insert_iova_range(iovad, size, limit_pfn + 1,
+				new_iova, size_aligned);
+	}
 
 	if (ret) {
 		free_iova_mem(new_iova);
diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
index 2ae46fa..23acf1b 100644
--- a/drivers/iommu/mtk_iommu.c
+++ b/drivers/iommu/mtk_iommu.c
@@ -118,6 +118,7 @@
 #define WR_THROT_EN			BIT(6)
 #define HAS_LEGACY_IVRP_PADDR		BIT(7)
 #define IOVA_34_EN			BIT(8)
+#define PGTABLE_PA_35_EN		BIT(9)
 
 #define MTK_IOMMU_HAS_FLAG(pdata, _x) \
 		((((pdata)->flags) & (_x)) == (_x))
@@ -125,6 +126,7 @@
 struct mtk_iommu_domain {
 	struct io_pgtable_cfg		cfg;
 	struct io_pgtable_ops		*iop;
+	u32				ttbr;
 
 	struct mtk_iommu_data		*data;
 	struct iommu_domain		domain;
@@ -393,6 +395,7 @@
 	if (data->m4u_dom) {
 		dom->iop = data->m4u_dom->iop;
 		dom->cfg = data->m4u_dom->cfg;
+		dom->ttbr = data->m4u_dom->ttbr;
 		dom->domain.pgsize_bitmap = data->m4u_dom->cfg.pgsize_bitmap;
 		goto update_iova_region;
 	}
@@ -406,6 +409,9 @@
 		.iommu_dev = data->dev,
 	};
 
+	if (MTK_IOMMU_HAS_FLAG(data->plat_data, PGTABLE_PA_35_EN))
+		dom->cfg.quirks |= IO_PGTABLE_QUIRK_ARM_MTK_TTBR_EXT;
+
 	if (MTK_IOMMU_HAS_FLAG(data->plat_data, HAS_4GB_MODE))
 		dom->cfg.oas = data->enable_4GB ? 33 : 32;
 	else
@@ -416,6 +422,9 @@
 		dev_err(data->dev, "Failed to alloc io pgtable\n");
 		return -EINVAL;
 	}
+	dom->ttbr = dom->cfg.quirks & IO_PGTABLE_QUIRK_ARM_MTK_TTBR_EXT ?
+		    dom->cfg.arm_v7s_cfg.ttbr :
+		    dom->cfg.arm_v7s_cfg.ttbr & MMU_PT_ADDR_MASK;
 
 	/* Update our support page sizes bitmap */
 	dom->domain.pgsize_bitmap = dom->cfg.pgsize_bitmap;
@@ -481,8 +490,7 @@
 			goto err_unlock;
 		}
 		data->m4u_dom = dom;
-		writel(dom->cfg.arm_v7s_cfg.ttbr & MMU_PT_ADDR_MASK,
-		       data->base + REG_MMU_PT_BASE_ADDR);
+		writel(data->m4u_dom->ttbr, data->base + REG_MMU_PT_BASE_ADDR);
 
 		pm_runtime_put(m4udev);
 	}
@@ -871,6 +879,14 @@
 			return PTR_ERR(data->bclk);
 	}
 
+	if (MTK_IOMMU_HAS_FLAG(data->plat_data, PGTABLE_PA_35_EN)) {
+		ret = dma_set_mask(dev, DMA_BIT_MASK(35));
+		if (ret) {
+			dev_err(dev, "Failed to set dma_mask 35.\n");
+			return ret;
+		}
+	}
+
 	larb_nr = of_count_phandle_with_args(dev->of_node,
 					     "mediatek,larbs", NULL);
 	if (larb_nr < 0)
@@ -1025,7 +1041,7 @@
 	writel_relaxed(reg->int_main_control, base + REG_MMU_INT_MAIN_CONTROL);
 	writel_relaxed(reg->ivrp_paddr, base + REG_MMU_IVRP_PADDR);
 	writel_relaxed(reg->vld_pa_rng, base + REG_MMU_VLD_PA_RNG);
-	writel(m4u_dom->cfg.arm_v7s_cfg.ttbr & MMU_PT_ADDR_MASK, base + REG_MMU_PT_BASE_ADDR);
+	writel(m4u_dom->ttbr, base + REG_MMU_PT_BASE_ADDR);
 	return 0;
 }
 
@@ -1046,7 +1062,8 @@
 
 static const struct mtk_iommu_plat_data mt6779_data = {
 	.m4u_plat      = M4U_MT6779,
-	.flags         = HAS_SUB_COMM | OUT_ORDER_WR_EN | WR_THROT_EN,
+	.flags         = HAS_SUB_COMM | OUT_ORDER_WR_EN | WR_THROT_EN |
+			 PGTABLE_PA_35_EN,
 	.inv_sel_reg   = REG_MMU_INV_SEL_GEN2,
 	.iova_region   = single_domain,
 	.iova_region_nr = ARRAY_SIZE(single_domain),
diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
index ae1b9f5..1ae1fc6 100644
--- a/drivers/irqchip/Kconfig
+++ b/drivers/irqchip/Kconfig
@@ -401,8 +401,9 @@
 	  Support for the UniPhier AIDET (ARM Interrupt Detector).
 
 config MESON_IRQ_GPIO
-       bool "Meson GPIO Interrupt Multiplexer"
-       depends on ARCH_MESON
+       tristate "Meson GPIO Interrupt Multiplexer"
+       depends on ARCH_MESON || COMPILE_TEST
+       default ARCH_MESON
        select IRQ_DOMAIN_HIERARCHY
        help
          Support Meson SoC Family GPIO Interrupt Multiplexer
diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index 490e6cfe5..de3f4d5 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -19,6 +19,7 @@
 #include <linux/list.h>
 #include <linux/log2.h>
 #include <linux/memblock.h>
+#include <linux/mem_encrypt.h>
 #include <linux/mm.h>
 #include <linux/msi.h>
 #include <linux/of.h>
@@ -27,6 +28,7 @@
 #include <linux/of_pci.h>
 #include <linux/of_platform.h>
 #include <linux/percpu.h>
+#include <linux/set_memory.h>
 #include <linux/slab.h>
 #include <linux/syscore_ops.h>
 
@@ -2191,6 +2193,7 @@
 
 	/* Make sure the GIC will observe the written configuration */
 	gic_flush_dcache_to_poc(va, LPI_PROPBASE_SZ);
+	set_memory_decrypted((unsigned long)va, LPI_PROPBASE_SZ >> PAGE_SHIFT);
 }
 
 static struct page *its_allocate_prop_table(gfp_t gfp_flags)
@@ -2208,8 +2211,10 @@
 
 static void its_free_prop_table(struct page *prop_page)
 {
-	free_pages((unsigned long)page_address(prop_page),
-		   get_order(LPI_PROPBASE_SZ));
+	unsigned long va = (unsigned long)page_address(prop_page);
+
+	set_memory_encrypted(va, LPI_PROPBASE_SZ >> PAGE_SHIFT);
+	free_pages(va, get_order(LPI_PROPBASE_SZ));
 }
 
 static bool gic_check_reserved_range(phys_addr_t addr, unsigned long size)
@@ -2402,6 +2407,8 @@
 		return -ENXIO;
 	}
 
+	set_memory_decrypted((unsigned long)base,
+			     PAGE_ORDER_TO_SIZE(order) >> PAGE_SHIFT);
 	baser->order = order;
 	baser->base = base;
 	baser->psz = psz;
@@ -2537,8 +2544,12 @@
 
 	for (i = 0; i < GITS_BASER_NR_REGS; i++) {
 		if (its->tables[i].base) {
-			free_pages((unsigned long)its->tables[i].base,
-				   its->tables[i].order);
+			unsigned long base = (unsigned long)its->tables[i].base;
+			u32 order = its->tables[i].order;
+			u32 npages = PAGE_ORDER_TO_SIZE(order) >> PAGE_SHIFT;
+
+			set_memory_encrypted(base, npages);
+			free_pages(base, order);
 			its->tables[i].base = NULL;
 		}
 	}
@@ -2959,6 +2970,7 @@
 static struct page *its_allocate_pending_table(gfp_t gfp_flags)
 {
 	struct page *pend_page;
+	void *va;
 
 	pend_page = alloc_pages(gfp_flags | __GFP_ZERO,
 				get_order(LPI_PENDBASE_SZ));
@@ -2966,14 +2978,19 @@
 		return NULL;
 
 	/* Make sure the GIC will observe the zero-ed page */
-	gic_flush_dcache_to_poc(page_address(pend_page), LPI_PENDBASE_SZ);
+	va = page_address(pend_page);
+	gic_flush_dcache_to_poc(va, LPI_PENDBASE_SZ);
+	set_memory_decrypted((unsigned long)va, LPI_PENDBASE_SZ >> PAGE_SHIFT);
 
 	return pend_page;
 }
 
 static void its_free_pending_table(struct page *pt)
 {
-	free_pages((unsigned long)page_address(pt), get_order(LPI_PENDBASE_SZ));
+	unsigned long va = (unsigned long)page_address(pt);
+
+	set_memory_encrypted(va, LPI_PENDBASE_SZ >> PAGE_SHIFT);
+	free_pages(va, get_order(LPI_PENDBASE_SZ));
 }
 
 /*
@@ -3303,14 +3320,20 @@
 
 	/* Allocate memory for 2nd level table */
 	if (!table[idx]) {
+		void *l2addr;
+
 		page = alloc_pages_node(its->numa_node, GFP_KERNEL | __GFP_ZERO,
 					get_order(baser->psz));
 		if (!page)
 			return false;
 
+		l2addr = page_address(page);
+		set_memory_decrypted((unsigned long)l2addr,
+				     baser->psz >> PAGE_SHIFT);
+
 		/* Flush Lvl2 table to PoC if hw doesn't support coherency */
 		if (!(baser->val & GITS_BASER_SHAREABILITY_MASK))
-			gic_flush_dcache_to_poc(page_address(page), baser->psz);
+			gic_flush_dcache_to_poc(l2addr, baser->psz);
 
 		table[idx] = cpu_to_le64(page_to_phys(page) | GITS_BASER_VALID);
 
@@ -5070,6 +5093,8 @@
 	its->fwnode_handle = handle;
 	its->get_msi_base = its_irq_get_msi_base;
 	its->msi_domain_flags = IRQ_DOMAIN_FLAG_MSI_REMAP;
+	set_memory_decrypted((unsigned long)its->cmd_base,
+			     ITS_CMD_QUEUE_SZ >> PAGE_SHIFT);
 
 	its_enable_quirks(its);
 
@@ -5126,6 +5151,8 @@
 out_free_tables:
 	its_free_tables(its);
 out_free_cmd:
+	set_memory_encrypted((unsigned long)its->cmd_base,
+			     ITS_CMD_QUEUE_SZ >> PAGE_SHIFT);
 	free_pages((unsigned long)its->cmd_base, get_order(ITS_CMD_QUEUE_SZ));
 out_unmap_sgir:
 	if (its->sgir_base)
diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
index 500e0c6..7bdf181 100644
--- a/drivers/irqchip/irq-gic-v3.c
+++ b/drivers/irqchip/irq-gic-v3.c
@@ -18,6 +18,10 @@
 #include <linux/percpu.h>
 #include <linux/refcount.h>
 #include <linux/slab.h>
+#include <linux/syscore_ops.h>
+#include <linux/wakeup_reason.h>
+#include <trace/hooks/gic_v3.h>
+
 
 #include <linux/irqchip.h>
 #include <linux/irqchip/arm-gic-common.h>
@@ -29,6 +33,8 @@
 #include <asm/smp_plat.h>
 #include <asm/virt.h>
 
+#include <trace/hooks/gic.h>
+
 #include "irq-gic-common.h"
 
 #define GICD_INT_NMI_PRI	(GICD_INT_DEF_PRI & ~0x80)
@@ -45,19 +51,7 @@
 	bool			single_redist;
 };
 
-struct gic_chip_data {
-	struct fwnode_handle	*fwnode;
-	void __iomem		*dist_base;
-	struct redist_region	*redist_regions;
-	struct rdists		rdists;
-	struct irq_domain	*domain;
-	u64			redist_stride;
-	u32			nr_redist_regions;
-	u64			flags;
-	bool			has_rss;
-	unsigned int		ppi_nr;
-	struct partition_desc	**ppi_descs;
-};
+static DEFINE_STATIC_KEY_FALSE(gic_arm64_2941627_erratum);
 
 static struct gic_chip_data gic_data __read_mostly;
 static DEFINE_STATIC_KEY_TRUE(supports_deactivate_key);
@@ -223,10 +217,11 @@
 }
 
 /* Wait for completion of a distributor change */
-static void gic_dist_wait_for_rwp(void)
+void gic_dist_wait_for_rwp(void)
 {
 	gic_do_wait_for_rwp(gic_data.dist_base, GICD_CTLR_RWP);
 }
+EXPORT_SYMBOL_GPL(gic_dist_wait_for_rwp);
 
 /* Wait for completion of a redistributor change */
 static void gic_redist_wait_for_rwp(void)
@@ -555,10 +550,39 @@
 	gic_irq_set_prio(d, GICD_INT_DEF_PRI);
 }
 
+static bool gic_arm64_erratum_2941627_needed(struct irq_data *d)
+{
+	enum gic_intid_range range;
+
+	if (!static_branch_unlikely(&gic_arm64_2941627_erratum))
+		return false;
+
+	range = get_intid_range(d);
+
+	/*
+	 * The workaround is needed if the IRQ is an SPI and
+	 * the target cpu is different from the one we are
+	 * executing on.
+	 */
+	return (range == SPI_RANGE || range == ESPI_RANGE) &&
+		!cpumask_test_cpu(raw_smp_processor_id(),
+				  irq_data_get_effective_affinity_mask(d));
+}
+
 static void gic_eoi_irq(struct irq_data *d)
 {
 	write_gicreg(gic_irq(d), ICC_EOIR1_EL1);
 	isb();
+
+	if (gic_arm64_erratum_2941627_needed(d)) {
+		/*
+		 * Make sure the GIC stream deactivate packet
+		 * issued by ICC_EOIR1_EL1 has completed before
+		 * deactivating through GICD_IACTIVER.
+		 */
+		dsb(sy);
+		gic_poke_irq(d, GICD_ICACTIVER);
+	}
 }
 
 static void gic_eoimode1_eoi_irq(struct irq_data *d)
@@ -569,7 +593,11 @@
 	 */
 	if (gic_irq(d) >= 8192 || irqd_is_forwarded_to_vcpu(d))
 		return;
-	gic_write_dir(gic_irq(d));
+
+	if (!gic_arm64_erratum_2941627_needed(d))
+		gic_write_dir(gic_irq(d));
+	else
+		gic_poke_irq(d, GICD_ICACTIVER);
 }
 
 static int gic_set_type(struct irq_data *d, unsigned int type)
@@ -757,6 +785,7 @@
 
 	if (handle_domain_irq(gic_data.domain, irqnr, regs)) {
 		WARN_ONCE(true, "Unexpected interrupt received!\n");
+		log_abnormal_wakeup_reason("unexpected HW IRQ %u", irqnr);
 		gic_deactivate_unhandled(irqnr);
 	}
 }
@@ -799,7 +828,7 @@
 	return val != 0;
 }
 
-static void __init gic_dist_init(void)
+void gic_dist_init(void)
 {
 	unsigned int i;
 	u64 affinity;
@@ -851,12 +880,17 @@
 	 * enabled.
 	 */
 	affinity = gic_mpidr_to_affinity(cpu_logical_map(smp_processor_id()));
-	for (i = 32; i < GIC_LINE_NR; i++)
+	for (i = 32; i < GIC_LINE_NR; i++) {
+		trace_android_vh_gic_v3_affinity_init(i, GICD_IROUTER, &affinity);
 		gic_write_irouter(affinity, base + GICD_IROUTER + i * 8);
+	}
 
-	for (i = 0; i < GIC_ESPI_NR; i++)
+	for (i = 0; i < GIC_ESPI_NR; i++) {
+		trace_android_vh_gic_v3_affinity_init(i, GICD_IROUTERnE, &affinity);
 		gic_write_irouter(affinity, base + GICD_IROUTERnE + i * 8);
+	}
 }
+EXPORT_SYMBOL_GPL(gic_dist_init);
 
 static int gic_iterate_rdists(int (*fn)(struct redist_region *, void __iomem *))
 {
@@ -1138,7 +1172,7 @@
 		!gicv3_nolpi);
 }
 
-static void gic_cpu_init(void)
+void gic_cpu_init(void)
 {
 	void __iomem *rbase;
 	int i;
@@ -1165,6 +1199,7 @@
 	/* initialise system registers */
 	gic_cpu_sys_reg_init();
 }
+EXPORT_SYMBOL_GPL(gic_cpu_init);
 
 #ifdef CONFIG_SMP
 
@@ -1303,6 +1338,9 @@
 	reg = gic_dist_base(d) + offset + (index * 8);
 	val = gic_mpidr_to_affinity(cpu_logical_map(cpu));
 
+	trace_android_rvh_gic_v3_set_affinity(d, mask_val, &val, force, gic_dist_base(d),
+					gic_data.redist_regions[0].redist_base,
+					gic_data.redist_stride);
 	gic_write_irouter(val, reg);
 
 	/*
@@ -1357,6 +1395,36 @@
 static inline void gic_cpu_pm_init(void) { }
 #endif /* CONFIG_CPU_PM */
 
+#ifdef CONFIG_PM
+void gic_resume(void)
+{
+	trace_android_vh_gic_resume(&gic_data);
+}
+EXPORT_SYMBOL_GPL(gic_resume);
+
+static int gic_suspend(void)
+{
+	trace_android_vh_gic_suspend(&gic_data);
+	return 0;
+}
+
+static struct syscore_ops gic_syscore_ops = {
+	.resume = gic_resume,
+	.suspend = gic_suspend,
+};
+
+static void gic_syscore_init(void)
+{
+	register_syscore_ops(&gic_syscore_ops);
+}
+
+#else
+static inline void gic_syscore_init(void) { }
+void gic_resume(void) { }
+static inline int gic_suspend(void) { return 0; }
+#endif
+
+
 static struct irq_chip gic_chip = {
 	.name			= "GICv3",
 	.irq_mask		= gic_mask_irq,
@@ -1685,6 +1753,12 @@
 	return false;
 }
 
+static bool gic_enable_quirk_arm64_2941627(void *data)
+{
+	static_branch_enable(&gic_arm64_2941627_erratum);
+	return true;
+}
+
 static const struct gic_quirk gic_quirks[] = {
 	{
 		.desc	= "GICv3: Qualcomm MSM8996 broken firmware",
@@ -1722,6 +1796,25 @@
 		.init	= gic_enable_quirk_cavium_38539,
 	},
 	{
+		/*
+		 * GIC-700: 2941627 workaround - IP variant [0,1]
+		 *
+		 */
+		.desc	= "GICv3: ARM64 erratum 2941627",
+		.iidr	= 0x0400043b,
+		.mask	= 0xff0e0fff,
+		.init	= gic_enable_quirk_arm64_2941627,
+	},
+	{
+		/*
+		 * GIC-700: 2941627 workaround - IP variant [2]
+		 */
+		.desc	= "GICv3: ARM64 erratum 2941627",
+		.iidr	= 0x0402043b,
+		.mask	= 0xff0f0fff,
+		.init	= gic_enable_quirk_arm64_2941627,
+	},
+	{
 	}
 };
 
@@ -1866,6 +1959,7 @@
 	gic_cpu_init();
 	gic_smp_init();
 	gic_cpu_pm_init();
+	gic_syscore_init();
 
 	if (gic_dist_supports_lpis()) {
 		its_init(handle, &gic_data.rdists, gic_data.domain);
diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
index 99077f3..5a028ccf 100644
--- a/drivers/irqchip/irq-gic.c
+++ b/drivers/irqchip/irq-gic.c
@@ -35,9 +35,11 @@
 #include <linux/interrupt.h>
 #include <linux/percpu.h>
 #include <linux/slab.h>
+#include <linux/syscore_ops.h>
 #include <linux/irqchip.h>
 #include <linux/irqchip/chained_irq.h>
 #include <linux/irqchip/arm-gic.h>
+#include <trace/hooks/gic.h>
 
 #include <asm/cputype.h>
 #include <asm/irq.h>
@@ -397,6 +399,27 @@
 	chained_irq_exit(chip, desc);
 }
 
+#ifdef CONFIG_PM
+void gic_v2_resume(void)
+{
+	trace_android_vh_gic_v2_resume(gic_data[0].domain, gic_data_dist_base(&gic_data[0]));
+}
+EXPORT_SYMBOL_GPL(gic_v2_resume);
+
+static struct syscore_ops gic_v2_syscore_ops = {
+	.resume = gic_v2_resume,
+};
+
+static void gic_v2_syscore_init(void)
+{
+	register_syscore_ops(&gic_v2_syscore_ops);
+}
+
+#else
+static inline void gic_v2_syscore_init(void) { }
+void gic_v2_resume(void) { }
+#endif
+
 static const struct irq_chip gic_chip = {
 	.irq_mask		= gic_mask_irq,
 	.irq_unmask		= gic_unmask_irq,
@@ -815,6 +838,8 @@
 		writeb_relaxed(gic_cpu_map[cpu], reg);
 	irq_data_update_effective_affinity(d, cpumask_of(cpu));
 
+	trace_android_vh_gic_set_affinity(d, mask_val, force, gic_cpu_map, reg);
+
 	return IRQ_SET_MASK_OK_DONE;
 }
 
@@ -1238,6 +1263,8 @@
 	if (ret)
 		goto error;
 
+	gic_v2_syscore_init();
+
 	return 0;
 
 error:
diff --git a/drivers/irqchip/irq-meson-gpio.c b/drivers/irqchip/irq-meson-gpio.c
index e50676c..cfc5cf5 100644
--- a/drivers/irqchip/irq-meson-gpio.c
+++ b/drivers/irqchip/irq-meson-gpio.c
@@ -15,6 +15,7 @@
 #include <linux/irqchip.h>
 #include <linux/of.h>
 #include <linux/of_address.h>
+#include <linux/of_irq.h>
 
 #define NUM_CHANNEL 8
 #define MAX_INPUT_MUX 256
@@ -136,6 +137,7 @@
 struct meson_gpio_irq_controller {
 	const struct meson_gpio_irq_params *params;
 	void __iomem *base;
+	struct irq_domain *domain;
 	u32 channel_irqs[NUM_CHANNEL];
 	DECLARE_BITMAP(channel_map, NUM_CHANNEL);
 	spinlock_t lock;
@@ -436,8 +438,8 @@
 	.translate	= meson_gpio_irq_domain_translate,
 };
 
-static int __init meson_gpio_irq_parse_dt(struct device_node *node,
-					  struct meson_gpio_irq_controller *ctl)
+static int meson_gpio_irq_parse_dt(struct device_node *node,
+				   struct meson_gpio_irq_controller *ctl)
 {
 	const struct of_device_id *match;
 	int ret;
@@ -463,63 +465,84 @@
 	return 0;
 }
 
-static int __init meson_gpio_irq_of_init(struct device_node *node,
-					 struct device_node *parent)
+static int meson_gpio_intc_probe(struct platform_device *pdev)
 {
-	struct irq_domain *domain, *parent_domain;
+	struct device_node *node = pdev->dev.of_node, *parent;
 	struct meson_gpio_irq_controller *ctl;
+	struct irq_domain *parent_domain;
+	struct resource *res;
 	int ret;
 
+	parent = of_irq_find_parent(node);
 	if (!parent) {
-		pr_err("missing parent interrupt node\n");
+		dev_err(&pdev->dev, "missing parent interrupt node\n");
 		return -ENODEV;
 	}
 
 	parent_domain = irq_find_host(parent);
 	if (!parent_domain) {
-		pr_err("unable to obtain parent domain\n");
+		dev_err(&pdev->dev, "unable to obtain parent domain\n");
 		return -ENXIO;
 	}
 
-	ctl = kzalloc(sizeof(*ctl), GFP_KERNEL);
+	ctl = devm_kzalloc(&pdev->dev, sizeof(*ctl), GFP_KERNEL);
 	if (!ctl)
 		return -ENOMEM;
 
 	spin_lock_init(&ctl->lock);
 
-	ctl->base = of_iomap(node, 0);
-	if (!ctl->base) {
-		ret = -ENOMEM;
-		goto free_ctl;
-	}
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	ctl->base = devm_ioremap_resource(&pdev->dev, res);
+	if (IS_ERR(ctl->base))
+		return PTR_ERR(ctl->base);
 
 	ret = meson_gpio_irq_parse_dt(node, ctl);
 	if (ret)
-		goto free_channel_irqs;
+		return ret;
 
-	domain = irq_domain_create_hierarchy(parent_domain, 0,
-					     ctl->params->nr_hwirq,
-					     of_node_to_fwnode(node),
-					     &meson_gpio_irq_domain_ops,
-					     ctl);
-	if (!domain) {
-		pr_err("failed to add domain\n");
-		ret = -ENODEV;
-		goto free_channel_irqs;
+	ctl->domain = irq_domain_create_hierarchy(parent_domain, 0,
+						  ctl->params->nr_hwirq,
+						  of_node_to_fwnode(node),
+						  &meson_gpio_irq_domain_ops,
+						  ctl);
+	if (!ctl->domain) {
+		dev_err(&pdev->dev, "failed to add domain\n");
+		return -ENODEV;
 	}
 
-	pr_info("%d to %d gpio interrupt mux initialized\n",
-		ctl->params->nr_hwirq, NUM_CHANNEL);
+	platform_set_drvdata(pdev, ctl);
+
+	dev_info(&pdev->dev, "%d to %d gpio interrupt mux initialized\n",
+		 ctl->params->nr_hwirq, NUM_CHANNEL);
 
 	return 0;
-
-free_channel_irqs:
-	iounmap(ctl->base);
-free_ctl:
-	kfree(ctl);
-
-	return ret;
 }
 
-IRQCHIP_DECLARE(meson_gpio_intc, "amlogic,meson-gpio-intc",
-		meson_gpio_irq_of_init);
+static int meson_gpio_intc_remove(struct platform_device *pdev)
+{
+	struct meson_gpio_irq_controller *ctl = platform_get_drvdata(pdev);
+
+	irq_domain_remove(ctl->domain);
+
+	return 0;
+}
+
+static const struct of_device_id meson_gpio_intc_of_match[] = {
+	{ .compatible = "amlogic,meson-gpio-intc", },
+	{},
+};
+MODULE_DEVICE_TABLE(of, meson_gpio_intc_of_match);
+
+static struct platform_driver meson_gpio_intc_driver = {
+	.probe  = meson_gpio_intc_probe,
+	.remove = meson_gpio_intc_remove,
+	.driver = {
+		.name = "meson-gpio-intc",
+		.of_match_table = meson_gpio_intc_of_match,
+	},
+};
+module_platform_driver(meson_gpio_intc_driver);
+
+MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>");
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("platform:meson-gpio-intc");
diff --git a/drivers/mailbox/mailbox.c b/drivers/mailbox/mailbox.c
index 4229b9b..3e7d4b2 100644
--- a/drivers/mailbox/mailbox.c
+++ b/drivers/mailbox/mailbox.c
@@ -82,11 +82,11 @@
 exit:
 	spin_unlock_irqrestore(&chan->lock, flags);
 
+	/* kick start the timer immediately to avoid delays */
 	if (!err && (chan->txdone_method & TXDONE_BY_POLL)) {
-		/* kick start the timer immediately to avoid delays */
-		spin_lock_irqsave(&chan->mbox->poll_hrt_lock, flags);
-		hrtimer_start(&chan->mbox->poll_hrt, 0, HRTIMER_MODE_REL);
-		spin_unlock_irqrestore(&chan->mbox->poll_hrt_lock, flags);
+		/* but only if not already active */
+		if (!hrtimer_active(&chan->mbox->poll_hrt))
+			hrtimer_start(&chan->mbox->poll_hrt, 0, HRTIMER_MODE_REL);
 	}
 }
 
@@ -120,26 +120,20 @@
 		container_of(hrtimer, struct mbox_controller, poll_hrt);
 	bool txdone, resched = false;
 	int i;
-	unsigned long flags;
 
 	for (i = 0; i < mbox->num_chans; i++) {
 		struct mbox_chan *chan = &mbox->chans[i];
 
 		if (chan->active_req && chan->cl) {
+			resched = true;
 			txdone = chan->mbox->ops->last_tx_done(chan);
 			if (txdone)
 				tx_tick(chan, 0);
-			else
-				resched = true;
 		}
 	}
 
 	if (resched) {
-		spin_lock_irqsave(&mbox->poll_hrt_lock, flags);
-		if (!hrtimer_is_queued(hrtimer))
-			hrtimer_forward_now(hrtimer, ms_to_ktime(mbox->txpoll_period));
-		spin_unlock_irqrestore(&mbox->poll_hrt_lock, flags);
-
+		hrtimer_forward_now(hrtimer, ms_to_ktime(mbox->txpoll_period));
 		return HRTIMER_RESTART;
 	}
 	return HRTIMER_NORESTART;
@@ -506,7 +500,6 @@
 		hrtimer_init(&mbox->poll_hrt, CLOCK_MONOTONIC,
 			     HRTIMER_MODE_REL);
 		mbox->poll_hrt.function = txdone_hrtimer;
-		spin_lock_init(&mbox->poll_hrt_lock);
 	}
 
 	for (i = 0; i < mbox->num_chans; i++) {
diff --git a/drivers/md/Kconfig b/drivers/md/Kconfig
index f45fb37..0ced36a 100644
--- a/drivers/md/Kconfig
+++ b/drivers/md/Kconfig
@@ -289,6 +289,27 @@
 
 	  If unsure, say N.
 
+config DM_DEFAULT_KEY
+	tristate "Default-key target support"
+	depends on BLK_DEV_DM
+	depends on BLK_INLINE_ENCRYPTION
+	# dm-default-key doesn't require -o inlinecrypt, but it does currently
+	# rely on the inline encryption hooks being built into the kernel.
+	depends on FS_ENCRYPTION_INLINE_CRYPT
+	help
+	  This device-mapper target allows you to create a device that
+	  assigns a default encryption key to bios that aren't for the
+	  contents of an encrypted file.
+
+	  This ensures that all blocks on-disk will be encrypted with
+	  some key, without the performance hit of file contents being
+	  encrypted twice when fscrypt (File-Based Encryption) is used.
+
+	  It is only appropriate to use dm-default-key when key
+	  configuration is tightly controlled, like it is in Android,
+	  such that all fscrypt keys are at least as hard to compromise
+	  as the default key.
+
 config DM_SNAPSHOT
        tristate "Snapshot target"
        depends on BLK_DEV_DM
@@ -642,4 +663,30 @@
 
 	  If unsure, say N.
 
+config DM_BOW
+	tristate "Backup block device"
+	depends on BLK_DEV_DM
+	select DM_BUFIO
+	help
+	  This device-mapper target takes a device and keeps a log of all
+	  changes using free blocks identified by issuing a trim command.
+	  This can then be restored by running a command line utility,
+	  or committed by simply replacing the target.
+
+	  If unsure, say N.
+
+config DM_USER
+	tristate "Block device in userspace"
+	depends on BLK_DEV_DM
+	default y
+	help
+	  This device-mapper target allows a userspace daemon to provide the
+	  contents of a block device.  See
+	  <file:Documentation/block/dm-user.rst> for more information.
+
+	  To compile this code as a module, choose M here: the module will be
+	  called dm-user.
+
+	  If unsure, say N.
+
 endif # MD
diff --git a/drivers/md/Makefile b/drivers/md/Makefile
index 816945e..7890bcc 100644
--- a/drivers/md/Makefile
+++ b/drivers/md/Makefile
@@ -57,6 +57,7 @@
 obj-$(CONFIG_DM_BUFIO)		+= dm-bufio.o
 obj-$(CONFIG_DM_BIO_PRISON)	+= dm-bio-prison.o
 obj-$(CONFIG_DM_CRYPT)		+= dm-crypt.o
+obj-$(CONFIG_DM_DEFAULT_KEY)	+= dm-default-key.o
 obj-$(CONFIG_DM_DELAY)		+= dm-delay.o
 obj-$(CONFIG_DM_DUST)		+= dm-dust.o
 obj-$(CONFIG_DM_FLAKEY)		+= dm-flakey.o
@@ -83,6 +84,8 @@
 obj-$(CONFIG_DM_INTEGRITY)	+= dm-integrity.o
 obj-$(CONFIG_DM_ZONED)		+= dm-zoned.o
 obj-$(CONFIG_DM_WRITECACHE)	+= dm-writecache.o
+obj-$(CONFIG_DM_BOW)		+= dm-bow.o
+obj-$(CONFIG_DM_USER)		+= dm-user.o
 
 ifeq ($(CONFIG_DM_INIT),y)
 dm-mod-objs			+= dm-init.o
diff --git a/drivers/md/bcache/bcache.h b/drivers/md/bcache/bcache.h
index 5fc989a..2a01146 100644
--- a/drivers/md/bcache/bcache.h
+++ b/drivers/md/bcache/bcache.h
@@ -178,7 +178,6 @@
 
 #define pr_fmt(fmt) "bcache: %s() " fmt, __func__
 
-#include <linux/bcache.h>
 #include <linux/bio.h>
 #include <linux/kobject.h>
 #include <linux/list.h>
@@ -190,6 +189,7 @@
 #include <linux/workqueue.h>
 #include <linux/kthread.h>
 
+#include "bcache_ondisk.h"
 #include "bset.h"
 #include "util.h"
 #include "closure.h"
diff --git a/include/uapi/linux/bcache.h b/drivers/md/bcache/bcache_ondisk.h
similarity index 100%
rename from include/uapi/linux/bcache.h
rename to drivers/md/bcache/bcache_ondisk.h
diff --git a/drivers/md/bcache/bset.h b/drivers/md/bcache/bset.h
index a50dcfd..d795c84 100644
--- a/drivers/md/bcache/bset.h
+++ b/drivers/md/bcache/bset.h
@@ -2,10 +2,10 @@
 #ifndef _BCACHE_BSET_H
 #define _BCACHE_BSET_H
 
-#include <linux/bcache.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 
+#include "bcache_ondisk.h"
 #include "util.h" /* for time_stats */
 
 /*
diff --git a/drivers/md/bcache/features.c b/drivers/md/bcache/features.c
index 6d2b7b8..634922c 100644
--- a/drivers/md/bcache/features.c
+++ b/drivers/md/bcache/features.c
@@ -6,7 +6,7 @@
  * Copyright 2020 Coly Li <colyli@suse.de>
  *
  */
-#include <linux/bcache.h>
+#include "bcache_ondisk.h"
 #include "bcache.h"
 #include "features.h"
 
diff --git a/drivers/md/bcache/features.h b/drivers/md/bcache/features.h
index d1c8fd3..09161b89 100644
--- a/drivers/md/bcache/features.h
+++ b/drivers/md/bcache/features.h
@@ -2,10 +2,11 @@
 #ifndef _BCACHE_FEATURES_H
 #define _BCACHE_FEATURES_H
 
-#include <linux/bcache.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 
+#include "bcache_ondisk.h"
+
 #define BCH_FEATURE_COMPAT		0
 #define BCH_FEATURE_RO_COMPAT		1
 #define BCH_FEATURE_INCOMPAT		2
diff --git a/drivers/md/dm-bow.c b/drivers/md/dm-bow.c
new file mode 100644
index 0000000..31ee9e7
--- /dev/null
+++ b/drivers/md/dm-bow.c
@@ -0,0 +1,1315 @@
+/*
+ * Copyright (C) 2018 Google Limited.
+ *
+ * This file is released under the GPL.
+ */
+
+#include "dm.h"
+#include "dm-core.h"
+
+#include <linux/crc32.h>
+#include <linux/dm-bufio.h>
+#include <linux/module.h>
+
+#define DM_MSG_PREFIX "bow"
+
+struct log_entry {
+	u64 source;
+	u64 dest;
+	u32 size;
+	u32 checksum;
+} __packed;
+
+struct log_sector {
+	u32 magic;
+	u16 header_version;
+	u16 header_size;
+	u32 block_size;
+	u32 count;
+	u32 sequence;
+	sector_t sector0;
+	struct log_entry entries[];
+} __packed;
+
+/*
+ * MAGIC is BOW in ascii
+ */
+#define MAGIC 0x00574f42
+#define HEADER_VERSION 0x0100
+
+/*
+ * A sorted set of ranges representing the state of the data on the device.
+ * Use an rb_tree for fast lookup of a given sector
+ * Consecutive ranges are always of different type - operations on this
+ * set must merge matching consecutive ranges.
+ *
+ * Top range is always of type TOP
+ */
+struct bow_range {
+	struct rb_node		node;
+	sector_t		sector;
+	enum {
+		INVALID,	/* Type not set */
+		SECTOR0,	/* First sector - holds log record */
+		SECTOR0_CURRENT,/* Live contents of sector0 */
+		UNCHANGED,	/* Original contents */
+		TRIMMED,	/* Range has been trimmed */
+		CHANGED,	/* Range has been changed */
+		BACKUP,		/* Range is being used as a backup */
+		TOP,		/* Final range - sector is size of device */
+	} type;
+	struct list_head	trimmed_list; /* list of TRIMMED ranges */
+};
+
+static const char * const readable_type[] = {
+	"Invalid",
+	"Sector0",
+	"Sector0_current",
+	"Unchanged",
+	"Free",
+	"Changed",
+	"Backup",
+	"Top",
+};
+
+enum state {
+	TRIM,
+	CHECKPOINT,
+	COMMITTED,
+};
+
+struct bow_context {
+	struct dm_dev *dev;
+	u32 block_size;
+	u32 block_shift;
+	struct workqueue_struct *workqueue;
+	struct dm_bufio_client *bufio;
+	struct mutex ranges_lock; /* Hold to access this struct and/or ranges */
+	struct rb_root ranges;
+	struct dm_kobject_holder kobj_holder;	/* for sysfs attributes */
+	atomic_t state; /* One of the enum state values above */
+	u64 trims_total;
+	struct log_sector *log_sector;
+	struct list_head trimmed_list;
+	bool forward_trims;
+};
+
+sector_t range_top(struct bow_range *br)
+{
+	return container_of(rb_next(&br->node), struct bow_range, node)
+		->sector;
+}
+
+u64 range_size(struct bow_range *br)
+{
+	return (range_top(br) - br->sector) * SECTOR_SIZE;
+}
+
+static sector_t bvec_top(struct bvec_iter *bi_iter)
+{
+	return bi_iter->bi_sector + bi_iter->bi_size / SECTOR_SIZE;
+}
+
+/*
+ * Find the first range that overlaps with bi_iter
+ * bi_iter is set to the size of the overlapping sub-range
+ */
+static struct bow_range *find_first_overlapping_range(struct rb_root *ranges,
+						      struct bvec_iter *bi_iter)
+{
+	struct rb_node *node = ranges->rb_node;
+	struct bow_range *br;
+
+	while (node) {
+		br = container_of(node, struct bow_range, node);
+
+		if (br->sector <= bi_iter->bi_sector
+		    && bi_iter->bi_sector < range_top(br))
+			break;
+
+		if (bi_iter->bi_sector < br->sector)
+			node = node->rb_left;
+		else
+			node = node->rb_right;
+	}
+
+	WARN_ON(!node);
+	if (!node)
+		return NULL;
+
+	if (range_top(br) - bi_iter->bi_sector
+	    < bi_iter->bi_size >> SECTOR_SHIFT)
+		bi_iter->bi_size = (range_top(br) - bi_iter->bi_sector)
+			<< SECTOR_SHIFT;
+
+	return br;
+}
+
+void add_before(struct rb_root *ranges, struct bow_range *new_br,
+		struct bow_range *existing)
+{
+	struct rb_node *parent = &(existing->node);
+	struct rb_node **link = &(parent->rb_left);
+
+	while (*link) {
+		parent = *link;
+		link = &((*link)->rb_right);
+	}
+
+	rb_link_node(&new_br->node, parent, link);
+	rb_insert_color(&new_br->node, ranges);
+}
+
+/*
+ * Given a range br returned by find_first_overlapping_range, split br into a
+ * leading range, a range matching the bi_iter and a trailing range.
+ * Leading and trailing may end up size 0 and will then be deleted. The
+ * new range matching the bi_iter is then returned and should have its type
+ * and type specific fields populated.
+ * If bi_iter runs off the end of the range, bi_iter is truncated accordingly
+ */
+static int split_range(struct bow_context *bc, struct bow_range **br,
+		       struct bvec_iter *bi_iter)
+{
+	struct bow_range *new_br;
+
+	if (bi_iter->bi_sector < (*br)->sector) {
+		WARN_ON(true);
+		return BLK_STS_IOERR;
+	}
+
+	if (bi_iter->bi_sector > (*br)->sector) {
+		struct bow_range *leading_br =
+			kzalloc(sizeof(*leading_br), GFP_KERNEL);
+
+		if (!leading_br)
+			return BLK_STS_RESOURCE;
+
+		*leading_br = **br;
+		if (leading_br->type == TRIMMED)
+			list_add(&leading_br->trimmed_list, &bc->trimmed_list);
+
+		add_before(&bc->ranges, leading_br, *br);
+		(*br)->sector = bi_iter->bi_sector;
+	}
+
+	if (bvec_top(bi_iter) >= range_top(*br)) {
+		bi_iter->bi_size = (range_top(*br) - (*br)->sector)
+					* SECTOR_SIZE;
+		return BLK_STS_OK;
+	}
+
+	/* new_br will be the beginning, existing br will be the tail */
+	new_br = kzalloc(sizeof(*new_br), GFP_KERNEL);
+	if (!new_br)
+		return BLK_STS_RESOURCE;
+
+	new_br->sector = (*br)->sector;
+	(*br)->sector = bvec_top(bi_iter);
+	add_before(&bc->ranges, new_br, *br);
+	*br = new_br;
+
+	return BLK_STS_OK;
+}
+
+/*
+ * Sets type of a range. May merge range into surrounding ranges
+ * Since br may be invalidated, always sets br to NULL to prevent
+ * usage after this is called
+ */
+static void set_type(struct bow_context *bc, struct bow_range **br, int type)
+{
+	struct bow_range *prev = container_of(rb_prev(&(*br)->node),
+						      struct bow_range, node);
+	struct bow_range *next = container_of(rb_next(&(*br)->node),
+						      struct bow_range, node);
+
+	if ((*br)->type == TRIMMED) {
+		bc->trims_total -= range_size(*br);
+		list_del(&(*br)->trimmed_list);
+	}
+
+	if (type == TRIMMED) {
+		bc->trims_total += range_size(*br);
+		list_add(&(*br)->trimmed_list, &bc->trimmed_list);
+	}
+
+	(*br)->type = type;
+
+	if (next->type == type) {
+		if (type == TRIMMED)
+			list_del(&next->trimmed_list);
+		rb_erase(&next->node, &bc->ranges);
+		kfree(next);
+	}
+
+	if (prev->type == type) {
+		if (type == TRIMMED)
+			list_del(&(*br)->trimmed_list);
+		rb_erase(&(*br)->node, &bc->ranges);
+		kfree(*br);
+	}
+
+	*br = NULL;
+}
+
+static struct bow_range *find_free_range(struct bow_context *bc)
+{
+	if (list_empty(&bc->trimmed_list)) {
+		DMERR("Unable to find free space to back up to");
+		return NULL;
+	}
+
+	return list_first_entry(&bc->trimmed_list, struct bow_range,
+				trimmed_list);
+}
+
+static sector_t sector_to_page(struct bow_context const *bc, sector_t sector)
+{
+	WARN_ON((sector & (((sector_t)1 << (bc->block_shift - SECTOR_SHIFT)) - 1))
+		!= 0);
+	return sector >> (bc->block_shift - SECTOR_SHIFT);
+}
+
+static int copy_data(struct bow_context const *bc,
+		     struct bow_range *source, struct bow_range *dest,
+		     u32 *checksum)
+{
+	int i;
+
+	if (range_size(source) != range_size(dest)) {
+		WARN_ON(1);
+		return BLK_STS_IOERR;
+	}
+
+	if (checksum)
+		*checksum = sector_to_page(bc, source->sector);
+
+	for (i = 0; i < range_size(source) >> bc->block_shift; ++i) {
+		struct dm_buffer *read_buffer, *write_buffer;
+		u8 *read, *write;
+		sector_t page = sector_to_page(bc, source->sector) + i;
+
+		read = dm_bufio_read(bc->bufio, page, &read_buffer);
+		if (IS_ERR(read)) {
+			DMERR("Cannot read page %llu",
+			      (unsigned long long)page);
+			return PTR_ERR(read);
+		}
+
+		if (checksum)
+			*checksum = crc32(*checksum, read, bc->block_size);
+
+		write = dm_bufio_new(bc->bufio,
+				     sector_to_page(bc, dest->sector) + i,
+				     &write_buffer);
+		if (IS_ERR(write)) {
+			DMERR("Cannot write sector");
+			dm_bufio_release(read_buffer);
+			return PTR_ERR(write);
+		}
+
+		memcpy(write, read, bc->block_size);
+
+		dm_bufio_mark_buffer_dirty(write_buffer);
+		dm_bufio_release(write_buffer);
+		dm_bufio_release(read_buffer);
+	}
+
+	dm_bufio_write_dirty_buffers(bc->bufio);
+	return BLK_STS_OK;
+}
+
+/****** logging functions ******/
+
+static int add_log_entry(struct bow_context *bc, sector_t source, sector_t dest,
+			 unsigned int size, u32 checksum);
+
+static int backup_log_sector(struct bow_context *bc)
+{
+	struct bow_range *first_br, *free_br;
+	struct bvec_iter bi_iter;
+	u32 checksum = 0;
+	int ret;
+
+	first_br = container_of(rb_first(&bc->ranges), struct bow_range, node);
+
+	if (first_br->type != SECTOR0) {
+		WARN_ON(1);
+		return BLK_STS_IOERR;
+	}
+
+	if (range_size(first_br) != bc->block_size) {
+		WARN_ON(1);
+		return BLK_STS_IOERR;
+	}
+
+	free_br = find_free_range(bc);
+	/* No space left - return this error to userspace */
+	if (!free_br)
+		return BLK_STS_NOSPC;
+	bi_iter.bi_sector = free_br->sector;
+	bi_iter.bi_size = bc->block_size;
+	ret = split_range(bc, &free_br, &bi_iter);
+	if (ret)
+		return ret;
+	if (bi_iter.bi_size != bc->block_size) {
+		WARN_ON(1);
+		return BLK_STS_IOERR;
+	}
+
+	ret = copy_data(bc, first_br, free_br, &checksum);
+	if (ret)
+		return ret;
+
+	bc->log_sector->count = 0;
+	bc->log_sector->sequence++;
+	ret = add_log_entry(bc, first_br->sector, free_br->sector,
+			    range_size(first_br), checksum);
+	if (ret)
+		return ret;
+
+	set_type(bc, &free_br, BACKUP);
+	return BLK_STS_OK;
+}
+
+static int add_log_entry(struct bow_context *bc, sector_t source, sector_t dest,
+			 unsigned int size, u32 checksum)
+{
+	struct dm_buffer *sector_buffer;
+	u8 *sector;
+
+	if (sizeof(struct log_sector)
+	    + sizeof(struct log_entry) * (bc->log_sector->count + 1)
+		> bc->block_size) {
+		int ret = backup_log_sector(bc);
+
+		if (ret)
+			return ret;
+	}
+
+	sector = dm_bufio_new(bc->bufio, 0, &sector_buffer);
+	if (IS_ERR(sector)) {
+		DMERR("Cannot write boot sector");
+		dm_bufio_release(sector_buffer);
+		return BLK_STS_NOSPC;
+	}
+
+	bc->log_sector->entries[bc->log_sector->count].source = source;
+	bc->log_sector->entries[bc->log_sector->count].dest = dest;
+	bc->log_sector->entries[bc->log_sector->count].size = size;
+	bc->log_sector->entries[bc->log_sector->count].checksum = checksum;
+	bc->log_sector->count++;
+
+	memcpy(sector, bc->log_sector, bc->block_size);
+	dm_bufio_mark_buffer_dirty(sector_buffer);
+	dm_bufio_release(sector_buffer);
+	dm_bufio_write_dirty_buffers(bc->bufio);
+	return BLK_STS_OK;
+}
+
+static int prepare_log(struct bow_context *bc)
+{
+	struct bow_range *free_br, *first_br;
+	struct bvec_iter bi_iter;
+	u32 checksum = 0;
+	int ret;
+
+	/* Carve out first sector as log sector */
+	first_br = container_of(rb_first(&bc->ranges), struct bow_range, node);
+	if (first_br->type != UNCHANGED) {
+		WARN_ON(1);
+		return BLK_STS_IOERR;
+	}
+
+	if (range_size(first_br) < bc->block_size) {
+		WARN_ON(1);
+		return BLK_STS_IOERR;
+	}
+	bi_iter.bi_sector = 0;
+	bi_iter.bi_size = bc->block_size;
+	ret = split_range(bc, &first_br, &bi_iter);
+	if (ret)
+		return ret;
+	first_br->type = SECTOR0;
+	if (range_size(first_br) != bc->block_size) {
+		WARN_ON(1);
+		return BLK_STS_IOERR;
+	}
+
+	/* Find free sector for active sector0 reads/writes */
+	free_br = find_free_range(bc);
+	if (!free_br)
+		return BLK_STS_NOSPC;
+	bi_iter.bi_sector = free_br->sector;
+	bi_iter.bi_size = bc->block_size;
+	ret = split_range(bc, &free_br, &bi_iter);
+	if (ret)
+		return ret;
+
+	/* Copy data */
+	ret = copy_data(bc, first_br, free_br, NULL);
+	if (ret)
+		return ret;
+
+	bc->log_sector->sector0 = free_br->sector;
+
+	set_type(bc, &free_br, SECTOR0_CURRENT);
+
+	/* Find free sector to back up original sector zero */
+	free_br = find_free_range(bc);
+	if (!free_br)
+		return BLK_STS_NOSPC;
+	bi_iter.bi_sector = free_br->sector;
+	bi_iter.bi_size = bc->block_size;
+	ret = split_range(bc, &free_br, &bi_iter);
+	if (ret)
+		return ret;
+
+	/* Back up */
+	ret = copy_data(bc, first_br, free_br, &checksum);
+	if (ret)
+		return ret;
+
+	/*
+	 * Set up our replacement boot sector - it will get written when we
+	 * add the first log entry, which we do immediately
+	 */
+	bc->log_sector->magic = MAGIC;
+	bc->log_sector->header_version = HEADER_VERSION;
+	bc->log_sector->header_size = sizeof(*bc->log_sector);
+	bc->log_sector->block_size = bc->block_size;
+	bc->log_sector->count = 0;
+	bc->log_sector->sequence = 0;
+
+	/* Add log entry */
+	ret = add_log_entry(bc, first_br->sector, free_br->sector,
+			    range_size(first_br), checksum);
+	if (ret)
+		return ret;
+
+	set_type(bc, &free_br, BACKUP);
+	return BLK_STS_OK;
+}
+
+static struct bow_range *find_sector0_current(struct bow_context *bc)
+{
+	struct bvec_iter bi_iter;
+
+	bi_iter.bi_sector = bc->log_sector->sector0;
+	bi_iter.bi_size = bc->block_size;
+	return find_first_overlapping_range(&bc->ranges, &bi_iter);
+}
+
+/****** sysfs interface functions ******/
+
+static ssize_t state_show(struct kobject *kobj, struct kobj_attribute *attr,
+			  char *buf)
+{
+	struct bow_context *bc = container_of(kobj, struct bow_context,
+					      kobj_holder.kobj);
+
+	return scnprintf(buf, PAGE_SIZE, "%d\n", atomic_read(&bc->state));
+}
+
+static ssize_t state_store(struct kobject *kobj, struct kobj_attribute *attr,
+			   const char *buf, size_t count)
+{
+	struct bow_context *bc = container_of(kobj, struct bow_context,
+					      kobj_holder.kobj);
+	enum state state, original_state;
+	int ret;
+
+	state = buf[0] - '0';
+	if (state < TRIM || state > COMMITTED) {
+		DMERR("State value %d out of range", state);
+		return -EINVAL;
+	}
+
+	mutex_lock(&bc->ranges_lock);
+	original_state = atomic_read(&bc->state);
+	if (state != original_state + 1) {
+		DMERR("Invalid state change from %d to %d",
+		      original_state, state);
+		ret = -EINVAL;
+		goto bad;
+	}
+
+	DMINFO("Switching to state %s", state == CHECKPOINT ? "Checkpoint"
+	       : state == COMMITTED ? "Committed" : "Unknown");
+
+	if (state == CHECKPOINT) {
+		ret = prepare_log(bc);
+		if (ret) {
+			DMERR("Failed to switch to checkpoint state");
+			goto bad;
+		}
+	} else if (state == COMMITTED) {
+		struct bow_range *br = find_sector0_current(bc);
+		struct bow_range *sector0_br =
+			container_of(rb_first(&bc->ranges), struct bow_range,
+				     node);
+
+		ret = copy_data(bc, br, sector0_br, 0);
+		if (ret) {
+			DMERR("Failed to switch to committed state");
+			goto bad;
+		}
+	}
+	atomic_inc(&bc->state);
+	ret = count;
+
+bad:
+	mutex_unlock(&bc->ranges_lock);
+	return ret;
+}
+
+static ssize_t free_show(struct kobject *kobj, struct kobj_attribute *attr,
+			  char *buf)
+{
+	struct bow_context *bc = container_of(kobj, struct bow_context,
+					      kobj_holder.kobj);
+	u64 trims_total;
+
+	mutex_lock(&bc->ranges_lock);
+	trims_total = bc->trims_total;
+	mutex_unlock(&bc->ranges_lock);
+
+	return scnprintf(buf, PAGE_SIZE, "%llu\n", trims_total);
+}
+
+static struct kobj_attribute attr_state = __ATTR_RW(state);
+static struct kobj_attribute attr_free = __ATTR_RO(free);
+
+static struct attribute *bow_attrs[] = {
+	&attr_state.attr,
+	&attr_free.attr,
+	NULL
+};
+
+static struct kobj_type bow_ktype = {
+	.sysfs_ops = &kobj_sysfs_ops,
+	.default_attrs = bow_attrs,
+	.release = dm_kobject_release
+};
+
+/****** constructor/destructor ******/
+
+static void dm_bow_dtr(struct dm_target *ti)
+{
+	struct bow_context *bc = (struct bow_context *) ti->private;
+	struct kobject *kobj;
+
+	if (bc->workqueue)
+		destroy_workqueue(bc->workqueue);
+	if (bc->bufio)
+		dm_bufio_client_destroy(bc->bufio);
+
+	kobj = &bc->kobj_holder.kobj;
+	if (kobj->state_initialized) {
+		kobject_put(kobj);
+		wait_for_completion(dm_get_completion_from_kobject(kobj));
+	}
+
+	mutex_lock(&bc->ranges_lock);
+	while (rb_first(&bc->ranges)) {
+		struct bow_range *br = container_of(rb_first(&bc->ranges),
+					      struct bow_range, node);
+
+		rb_erase(&br->node, &bc->ranges);
+		kfree(br);
+	}
+	mutex_unlock(&bc->ranges_lock);
+
+	mutex_destroy(&bc->ranges_lock);
+	kfree(bc->log_sector);
+	kfree(bc);
+}
+
+static void dm_bow_io_hints(struct dm_target *ti, struct queue_limits *limits)
+{
+	struct bow_context *bc = ti->private;
+	const unsigned int block_size = bc->block_size;
+
+	limits->logical_block_size =
+		max_t(unsigned int, limits->logical_block_size, block_size);
+	limits->physical_block_size =
+		max_t(unsigned int, limits->physical_block_size, block_size);
+	limits->io_min = max_t(unsigned int, limits->io_min, block_size);
+
+	if (limits->max_discard_sectors == 0) {
+		limits->discard_granularity = 1 << 12;
+		limits->max_hw_discard_sectors = 1 << 15;
+		limits->max_discard_sectors = 1 << 15;
+		bc->forward_trims = false;
+	} else {
+		limits->discard_granularity = 1 << 12;
+		bc->forward_trims = true;
+	}
+}
+
+static int dm_bow_ctr_optional(struct dm_target *ti, unsigned int argc, char **argv)
+{
+	struct bow_context *bc = ti->private;
+	struct dm_arg_set as;
+	static const struct dm_arg _args[] = {
+		{0, 1, "Invalid number of feature args"},
+	};
+	unsigned int opt_params;
+	const char *opt_string;
+	int err;
+	char dummy;
+
+	as.argc = argc;
+	as.argv = argv;
+
+	err = dm_read_arg_group(_args, &as, &opt_params, &ti->error);
+	if (err)
+		return err;
+
+	while (opt_params--) {
+		opt_string = dm_shift_arg(&as);
+		if (!opt_string) {
+			ti->error = "Not enough feature arguments";
+			return -EINVAL;
+		}
+
+		if (sscanf(opt_string, "block_size:%u%c",
+					&bc->block_size, &dummy) == 1) {
+			if (bc->block_size < SECTOR_SIZE ||
+			    bc->block_size > 4096 ||
+			    !is_power_of_2(bc->block_size)) {
+				ti->error = "Invalid block_size";
+				return -EINVAL;
+			}
+		} else {
+			ti->error = "Invalid feature arguments";
+			return -EINVAL;
+		}
+	}
+
+	return 0;
+}
+
+static int dm_bow_ctr(struct dm_target *ti, unsigned int argc, char **argv)
+{
+	struct bow_context *bc;
+	struct bow_range *br;
+	int ret;
+
+	if (argc < 1) {
+		ti->error = "Invalid argument count";
+		return -EINVAL;
+	}
+
+	bc = kzalloc(sizeof(*bc), GFP_KERNEL);
+	if (!bc) {
+		ti->error = "Cannot allocate bow context";
+		return -ENOMEM;
+	}
+
+	ti->num_flush_bios = 1;
+	ti->num_discard_bios = 1;
+	ti->num_write_same_bios = 1;
+	ti->private = bc;
+
+	ret = dm_get_device(ti, argv[0], dm_table_get_mode(ti->table),
+			    &bc->dev);
+	if (ret) {
+		ti->error = "Device lookup failed";
+		goto bad;
+	}
+
+	bc->block_size =
+		bdev_get_queue(bc->dev->bdev)->limits.logical_block_size;
+	if (argc > 1) {
+		ret = dm_bow_ctr_optional(ti, argc - 1, &argv[1]);
+		if (ret)
+			goto bad;
+	}
+
+	bc->block_shift = ilog2(bc->block_size);
+	bc->log_sector = kzalloc(bc->block_size, GFP_KERNEL);
+	if (!bc->log_sector) {
+		ti->error = "Cannot allocate log sector";
+		goto bad;
+	}
+
+	init_completion(&bc->kobj_holder.completion);
+	mutex_init(&bc->ranges_lock);
+	bc->ranges = RB_ROOT;
+	bc->bufio = dm_bufio_client_create(bc->dev->bdev, bc->block_size, 1, 0,
+					   NULL, NULL);
+	if (IS_ERR(bc->bufio)) {
+		ti->error = "Cannot initialize dm-bufio";
+		ret = PTR_ERR(bc->bufio);
+		bc->bufio = NULL;
+		goto bad;
+	}
+
+	bc->workqueue = alloc_workqueue("dm-bow",
+					WQ_CPU_INTENSIVE | WQ_MEM_RECLAIM
+					| WQ_UNBOUND, num_online_cpus());
+	if (!bc->workqueue) {
+		ti->error = "Cannot allocate workqueue";
+		ret = -ENOMEM;
+		goto bad;
+	}
+
+	INIT_LIST_HEAD(&bc->trimmed_list);
+
+	br = kzalloc(sizeof(*br), GFP_KERNEL);
+	if (!br) {
+		ti->error = "Cannot allocate ranges";
+		ret = -ENOMEM;
+		goto bad;
+	}
+
+	br->sector = ti->len;
+	br->type = TOP;
+	rb_link_node(&br->node, NULL, &bc->ranges.rb_node);
+	rb_insert_color(&br->node, &bc->ranges);
+
+	br = kzalloc(sizeof(*br), GFP_KERNEL);
+	if (!br) {
+		ti->error = "Cannot allocate ranges";
+		ret = -ENOMEM;
+		goto bad;
+	}
+
+	br->sector = 0;
+	br->type = UNCHANGED;
+	rb_link_node(&br->node, bc->ranges.rb_node,
+		     &bc->ranges.rb_node->rb_left);
+	rb_insert_color(&br->node, &bc->ranges);
+
+	ti->discards_supported = true;
+
+	return 0;
+
+bad:
+	dm_bow_dtr(ti);
+	return ret;
+}
+
+void dm_bow_resume(struct dm_target *ti)
+{
+	struct mapped_device *md = dm_table_get_md(ti->table);
+	struct bow_context *bc = ti->private;
+	int ret;
+
+	if (bc->kobj_holder.kobj.state_initialized)
+		return;
+
+	ret = kobject_init_and_add(&bc->kobj_holder.kobj, &bow_ktype,
+				   &disk_to_dev(dm_disk(md))->kobj, "%s",
+				   "bow");
+	if (ret)
+		ti->error = "Cannot create sysfs node";
+}
+
+/****** Handle writes ******/
+
+static int prepare_unchanged_range(struct bow_context *bc, struct bow_range *br,
+				   struct bvec_iter *bi_iter,
+				   bool record_checksum)
+{
+	struct bow_range *backup_br;
+	struct bvec_iter backup_bi;
+	sector_t log_source, log_dest;
+	unsigned int log_size;
+	u32 checksum = 0;
+	int ret;
+	int original_type;
+	sector_t sector0;
+
+	/* Find a free range */
+	backup_br = find_free_range(bc);
+	if (!backup_br)
+		return BLK_STS_NOSPC;
+
+	/* Carve out a backup range. This may be smaller than the br given */
+	backup_bi.bi_sector = backup_br->sector;
+	backup_bi.bi_size = min(range_size(backup_br), (u64) bi_iter->bi_size);
+	ret = split_range(bc, &backup_br, &backup_bi);
+	if (ret)
+		return ret;
+
+	/*
+	 * Carve out a changed range. This will not be smaller than the backup
+	 * br since the backup br is smaller than the source range and iterator
+	 */
+	bi_iter->bi_size = backup_bi.bi_size;
+	ret = split_range(bc, &br, bi_iter);
+	if (ret)
+		return ret;
+	if (range_size(br) != range_size(backup_br)) {
+		WARN_ON(1);
+		return BLK_STS_IOERR;
+	}
+
+
+	/* Copy data over */
+	ret = copy_data(bc, br, backup_br, record_checksum ? &checksum : NULL);
+	if (ret)
+		return ret;
+
+	/* Add an entry to the log */
+	log_source = br->sector;
+	log_dest = backup_br->sector;
+	log_size = range_size(br);
+
+	/*
+	 * Set the types. Note that since set_type also amalgamates ranges
+	 * we have to set both sectors to their final type before calling
+	 * set_type on either
+	 */
+	original_type = br->type;
+	sector0 = backup_br->sector;
+	bc->trims_total -= range_size(backup_br);
+	if (backup_br->type == TRIMMED)
+		list_del(&backup_br->trimmed_list);
+	backup_br->type = br->type == SECTOR0_CURRENT ? SECTOR0_CURRENT
+						      : BACKUP;
+	br->type = CHANGED;
+	set_type(bc, &backup_br, backup_br->type);
+
+	/*
+	 * Add the log entry after marking the backup sector, since adding a log
+	 * can cause another backup
+	 */
+	ret = add_log_entry(bc, log_source, log_dest, log_size, checksum);
+	if (ret) {
+		br->type = original_type;
+		return ret;
+	}
+
+	/* Now it is safe to mark this backup successful */
+	if (original_type == SECTOR0_CURRENT)
+		bc->log_sector->sector0 = sector0;
+
+	set_type(bc, &br, br->type);
+	return ret;
+}
+
+static int prepare_free_range(struct bow_context *bc, struct bow_range *br,
+			      struct bvec_iter *bi_iter)
+{
+	int ret;
+
+	ret = split_range(bc, &br, bi_iter);
+	if (ret)
+		return ret;
+	set_type(bc, &br, CHANGED);
+	return BLK_STS_OK;
+}
+
+static int prepare_changed_range(struct bow_context *bc, struct bow_range *br,
+				 struct bvec_iter *bi_iter)
+{
+	/* Nothing to do ... */
+	return BLK_STS_OK;
+}
+
+static int prepare_one_range(struct bow_context *bc,
+			     struct bvec_iter *bi_iter)
+{
+	struct bow_range *br = find_first_overlapping_range(&bc->ranges,
+							    bi_iter);
+	switch (br->type) {
+	case CHANGED:
+		return prepare_changed_range(bc, br, bi_iter);
+
+	case TRIMMED:
+		return prepare_free_range(bc, br, bi_iter);
+
+	case UNCHANGED:
+	case BACKUP:
+		return prepare_unchanged_range(bc, br, bi_iter, true);
+
+	/*
+	 * We cannot track the checksum for the active sector0, since it
+	 * may change at any point.
+	 */
+	case SECTOR0_CURRENT:
+		return prepare_unchanged_range(bc, br, bi_iter, false);
+
+	case SECTOR0:	/* Handled in the dm_bow_map */
+	case TOP:	/* Illegal - top is off the end of the device */
+	default:
+		WARN_ON(1);
+		return BLK_STS_IOERR;
+	}
+}
+
+struct write_work {
+	struct work_struct work;
+	struct bow_context *bc;
+	struct bio *bio;
+};
+
+static void bow_write(struct work_struct *work)
+{
+	struct write_work *ww = container_of(work, struct write_work, work);
+	struct bow_context *bc = ww->bc;
+	struct bio *bio = ww->bio;
+	struct bvec_iter bi_iter = bio->bi_iter;
+	int ret = BLK_STS_OK;
+
+	kfree(ww);
+
+	mutex_lock(&bc->ranges_lock);
+	do {
+		ret = prepare_one_range(bc, &bi_iter);
+		bi_iter.bi_sector += bi_iter.bi_size / SECTOR_SIZE;
+		bi_iter.bi_size = bio->bi_iter.bi_size
+			- (bi_iter.bi_sector - bio->bi_iter.bi_sector)
+			  * SECTOR_SIZE;
+	} while (!ret && bi_iter.bi_size);
+
+	mutex_unlock(&bc->ranges_lock);
+
+	if (!ret) {
+		bio_set_dev(bio, bc->dev->bdev);
+		submit_bio(bio);
+	} else {
+		DMERR("Write failure with error %d", -ret);
+		bio->bi_status = ret;
+		bio_endio(bio);
+	}
+}
+
+static int queue_write(struct bow_context *bc, struct bio *bio)
+{
+	struct write_work *ww = kmalloc(sizeof(*ww), GFP_NOIO | __GFP_NORETRY
+					| __GFP_NOMEMALLOC | __GFP_NOWARN);
+	if (!ww) {
+		DMERR("Failed to allocate write_work");
+		return -ENOMEM;
+	}
+
+	INIT_WORK(&ww->work, bow_write);
+	ww->bc = bc;
+	ww->bio = bio;
+	queue_work(bc->workqueue, &ww->work);
+	return DM_MAPIO_SUBMITTED;
+}
+
+static int handle_sector0(struct bow_context *bc, struct bio *bio)
+{
+	int ret = DM_MAPIO_REMAPPED;
+
+	if (bio->bi_iter.bi_size > bc->block_size) {
+		struct bio *split = bio_split(bio,
+					      bc->block_size >> SECTOR_SHIFT,
+					      GFP_NOIO,
+					      &fs_bio_set);
+		if (!split) {
+			DMERR("Failed to split bio");
+			bio->bi_status = BLK_STS_RESOURCE;
+			bio_endio(bio);
+			return DM_MAPIO_SUBMITTED;
+		}
+
+		bio_chain(split, bio);
+		split->bi_iter.bi_sector = bc->log_sector->sector0;
+		bio_set_dev(split, bc->dev->bdev);
+		submit_bio(split);
+
+		if (bio_data_dir(bio) == WRITE)
+			ret = queue_write(bc, bio);
+	} else {
+		bio->bi_iter.bi_sector = bc->log_sector->sector0;
+	}
+
+	return ret;
+}
+
+static int add_trim(struct bow_context *bc, struct bio *bio)
+{
+	struct bow_range *br;
+	struct bvec_iter bi_iter = bio->bi_iter;
+
+	DMDEBUG("add_trim: %llu, %u",
+		(unsigned long long)bio->bi_iter.bi_sector,
+		bio->bi_iter.bi_size);
+
+	do {
+		br = find_first_overlapping_range(&bc->ranges, &bi_iter);
+
+		switch (br->type) {
+		case UNCHANGED:
+			if (!split_range(bc, &br, &bi_iter))
+				set_type(bc, &br, TRIMMED);
+			break;
+
+		case TRIMMED:
+			/* Nothing to do */
+			break;
+
+		default:
+			/* No other case is legal in TRIM state */
+			WARN_ON(true);
+			break;
+		}
+
+		bi_iter.bi_sector += bi_iter.bi_size / SECTOR_SIZE;
+		bi_iter.bi_size = bio->bi_iter.bi_size
+			- (bi_iter.bi_sector - bio->bi_iter.bi_sector)
+			  * SECTOR_SIZE;
+
+	} while (bi_iter.bi_size);
+
+	bio_endio(bio);
+	return DM_MAPIO_SUBMITTED;
+}
+
+static int remove_trim(struct bow_context *bc, struct bio *bio)
+{
+	struct bow_range *br;
+	struct bvec_iter bi_iter = bio->bi_iter;
+
+	DMDEBUG("remove_trim: %llu, %u",
+		(unsigned long long)bio->bi_iter.bi_sector,
+		bio->bi_iter.bi_size);
+
+	do {
+		br = find_first_overlapping_range(&bc->ranges, &bi_iter);
+
+		switch (br->type) {
+		case UNCHANGED:
+			/* Nothing to do */
+			break;
+
+		case TRIMMED:
+			if (!split_range(bc, &br, &bi_iter))
+				set_type(bc, &br, UNCHANGED);
+			break;
+
+		default:
+			/* No other case is legal in TRIM state */
+			WARN_ON(true);
+			break;
+		}
+
+		bi_iter.bi_sector += bi_iter.bi_size / SECTOR_SIZE;
+		bi_iter.bi_size = bio->bi_iter.bi_size
+			- (bi_iter.bi_sector - bio->bi_iter.bi_sector)
+			  * SECTOR_SIZE;
+
+	} while (bi_iter.bi_size);
+
+	return DM_MAPIO_REMAPPED;
+}
+
+int remap_unless_illegal_trim(struct bow_context *bc, struct bio *bio)
+{
+	if (!bc->forward_trims && bio_op(bio) == REQ_OP_DISCARD) {
+		bio->bi_status = BLK_STS_NOTSUPP;
+		bio_endio(bio);
+		return DM_MAPIO_SUBMITTED;
+	} else {
+		bio_set_dev(bio, bc->dev->bdev);
+		return DM_MAPIO_REMAPPED;
+	}
+}
+
+/****** dm interface ******/
+
+static int dm_bow_map(struct dm_target *ti, struct bio *bio)
+{
+	int ret = DM_MAPIO_REMAPPED;
+	struct bow_context *bc = ti->private;
+
+	if (likely(bc->state.counter == COMMITTED))
+		return remap_unless_illegal_trim(bc, bio);
+
+	if (bio_data_dir(bio) == READ && bio->bi_iter.bi_sector != 0)
+		return remap_unless_illegal_trim(bc, bio);
+
+	if (atomic_read(&bc->state) != COMMITTED) {
+		enum state state;
+
+		mutex_lock(&bc->ranges_lock);
+		state = atomic_read(&bc->state);
+		if (state == TRIM) {
+			if (bio_op(bio) == REQ_OP_DISCARD)
+				ret = add_trim(bc, bio);
+			else if (bio_data_dir(bio) == WRITE)
+				ret = remove_trim(bc, bio);
+			else
+				/* pass-through */;
+		} else if (state == CHECKPOINT) {
+			if (bio->bi_iter.bi_sector == 0)
+				ret = handle_sector0(bc, bio);
+			else if (bio_data_dir(bio) == WRITE)
+				ret = queue_write(bc, bio);
+			else
+				/* pass-through */;
+		} else {
+			/* pass-through */
+		}
+		mutex_unlock(&bc->ranges_lock);
+	}
+
+	if (ret == DM_MAPIO_REMAPPED)
+		return remap_unless_illegal_trim(bc, bio);
+
+	return ret;
+}
+
+static void dm_bow_tablestatus(struct dm_target *ti, char *result,
+			       unsigned int maxlen)
+{
+	char *end = result + maxlen;
+	struct bow_context *bc = ti->private;
+	struct rb_node *i;
+	int trimmed_list_length = 0;
+	int trimmed_range_count = 0;
+	struct bow_range *br;
+
+	if (maxlen == 0)
+		return;
+	result[0] = 0;
+
+	list_for_each_entry(br, &bc->trimmed_list, trimmed_list)
+		if (br->type == TRIMMED) {
+			++trimmed_list_length;
+		} else {
+			scnprintf(result, end - result,
+				  "ERROR: non-trimmed entry in trimmed_list");
+			return;
+		}
+
+	if (!rb_first(&bc->ranges)) {
+		scnprintf(result, end - result, "ERROR: Empty ranges");
+		return;
+	}
+
+	if (container_of(rb_first(&bc->ranges), struct bow_range, node)
+	    ->sector) {
+		scnprintf(result, end - result,
+			 "ERROR: First range does not start at sector 0");
+		return;
+	}
+
+	mutex_lock(&bc->ranges_lock);
+	for (i = rb_first(&bc->ranges); i; i = rb_next(i)) {
+		struct bow_range *br = container_of(i, struct bow_range, node);
+
+		result += scnprintf(result, end - result, "%s: %llu",
+				    readable_type[br->type],
+				    (unsigned long long)br->sector);
+		if (result >= end)
+			goto unlock;
+
+		result += scnprintf(result, end - result, "\n");
+		if (result >= end)
+			goto unlock;
+
+		if (br->type == TRIMMED)
+			++trimmed_range_count;
+
+		if (br->type == TOP) {
+			if (br->sector != ti->len) {
+				scnprintf(result, end - result,
+					 "\nERROR: Top sector is incorrect");
+			}
+
+			if (&br->node != rb_last(&bc->ranges)) {
+				scnprintf(result, end - result,
+					  "\nERROR: Top sector is not last");
+			}
+
+			break;
+		}
+
+		if (!rb_next(i)) {
+			scnprintf(result, end - result,
+				  "\nERROR: Last range not of type TOP");
+			goto unlock;
+		}
+
+		if (br->sector > range_top(br)) {
+			scnprintf(result, end - result,
+				  "\nERROR: sectors out of order");
+			goto unlock;
+		}
+	}
+
+	if (trimmed_range_count != trimmed_list_length)
+		scnprintf(result, end - result,
+			  "\nERROR: not all trimmed ranges in trimmed list");
+
+unlock:
+	mutex_unlock(&bc->ranges_lock);
+}
+
+static void dm_bow_status(struct dm_target *ti, status_type_t type,
+			  unsigned int status_flags, char *result,
+			  unsigned int maxlen)
+{
+	switch (type) {
+	case STATUSTYPE_INFO:
+	case STATUSTYPE_IMA:
+		if (maxlen)
+			result[0] = 0;
+		break;
+
+	case STATUSTYPE_TABLE:
+		dm_bow_tablestatus(ti, result, maxlen);
+		break;
+	}
+}
+
+int dm_bow_prepare_ioctl(struct dm_target *ti, struct block_device **bdev)
+{
+	struct bow_context *bc = ti->private;
+	struct dm_dev *dev = bc->dev;
+
+	*bdev = dev->bdev;
+	/* Only pass ioctls through if the device sizes match exactly. */
+	return ti->len != i_size_read(dev->bdev->bd_inode) >> SECTOR_SHIFT;
+}
+
+static int dm_bow_iterate_devices(struct dm_target *ti,
+				  iterate_devices_callout_fn fn, void *data)
+{
+	struct bow_context *bc = ti->private;
+
+	return fn(ti, bc->dev, 0, ti->len, data);
+}
+
+static struct target_type bow_target = {
+	.name   = "bow",
+	.version = {1, 2, 0},
+	.features = DM_TARGET_PASSES_CRYPTO,
+	.module = THIS_MODULE,
+	.ctr    = dm_bow_ctr,
+	.resume = dm_bow_resume,
+	.dtr    = dm_bow_dtr,
+	.map    = dm_bow_map,
+	.status = dm_bow_status,
+	.prepare_ioctl  = dm_bow_prepare_ioctl,
+	.iterate_devices = dm_bow_iterate_devices,
+	.io_hints = dm_bow_io_hints,
+};
+
+int __init dm_bow_init(void)
+{
+	int r = dm_register_target(&bow_target);
+
+	if (r < 0)
+		DMERR("registering bow failed %d", r);
+	return r;
+}
+
+void dm_bow_exit(void)
+{
+	dm_unregister_target(&bow_target);
+}
+
+MODULE_LICENSE("GPL");
+
+module_init(dm_bow_init);
+module_exit(dm_bow_exit);
diff --git a/drivers/md/dm-bufio.c b/drivers/md/dm-bufio.c
index 50f3e67..bb0e3dd 100644
--- a/drivers/md/dm-bufio.c
+++ b/drivers/md/dm-bufio.c
@@ -19,6 +19,8 @@
 #include <linux/rbtree.h>
 #include <linux/stacktrace.h>
 
+#include <trace/hooks/mm.h>
+
 #define DM_MSG_PREFIX "bufio"
 
 /*
@@ -1683,6 +1685,13 @@
 static unsigned long dm_bufio_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
 {
 	struct dm_bufio_client *c;
+	bool bypass = false;
+
+	trace_android_vh_dm_bufio_shrink_scan_bypass(
+			dm_bufio_current_allocated,
+			&bypass);
+	if (bypass)
+		return 0;
 
 	c = container_of(shrink, struct dm_bufio_client, shrinker);
 	atomic_long_add(sc->nr_to_scan, &c->need_shrink);
@@ -2009,6 +2018,14 @@
 {
 	unsigned long max_age_hz = get_max_age_hz();
 	struct dm_bufio_client *c;
+	bool bypass = false;
+
+	trace_android_vh_cleanup_old_buffers_bypass(
+				dm_bufio_current_allocated,
+				&max_age_hz,
+				&bypass);
+	if (bypass)
+		return;
 
 	mutex_lock(&dm_bufio_clients_lock);
 
diff --git a/drivers/md/dm-default-key.c b/drivers/md/dm-default-key.c
new file mode 100644
index 0000000..c509c16
--- /dev/null
+++ b/drivers/md/dm-default-key.c
@@ -0,0 +1,423 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2017 Google, Inc.
+ */
+
+#include <linux/blk-crypto.h>
+#include <linux/device-mapper.h>
+#include <linux/module.h>
+
+#define DM_MSG_PREFIX		"default-key"
+
+#define DM_DEFAULT_KEY_MAX_WRAPPED_KEY_SIZE 128
+
+static const struct dm_default_key_cipher {
+	const char *name;
+	enum blk_crypto_mode_num mode_num;
+	int key_size;
+} dm_default_key_ciphers[] = {
+	{
+		.name = "aes-xts-plain64",
+		.mode_num = BLK_ENCRYPTION_MODE_AES_256_XTS,
+		.key_size = 64,
+	}, {
+		.name = "xchacha12,aes-adiantum-plain64",
+		.mode_num = BLK_ENCRYPTION_MODE_ADIANTUM,
+		.key_size = 32,
+	},
+};
+
+/**
+ * struct dm_default_c - private data of a default-key target
+ * @dev: the underlying device
+ * @start: starting sector of the range of @dev which this target actually maps.
+ *	   For this purpose a "sector" is 512 bytes.
+ * @cipher_string: the name of the encryption algorithm being used
+ * @iv_offset: starting offset for IVs.  IVs are generated as if the target were
+ *	       preceded by @iv_offset 512-byte sectors.
+ * @sector_size: crypto sector size in bytes (usually 4096)
+ * @sector_bits: log2(sector_size)
+ * @key: the encryption key to use
+ * @max_dun: the maximum DUN that may be used (computed from other params)
+ */
+struct default_key_c {
+	struct dm_dev *dev;
+	sector_t start;
+	const char *cipher_string;
+	u64 iv_offset;
+	unsigned int sector_size;
+	unsigned int sector_bits;
+	struct blk_crypto_key key;
+	bool is_hw_wrapped;
+	u64 max_dun;
+};
+
+static const struct dm_default_key_cipher *
+lookup_cipher(const char *cipher_string)
+{
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(dm_default_key_ciphers); i++) {
+		if (strcmp(cipher_string, dm_default_key_ciphers[i].name) == 0)
+			return &dm_default_key_ciphers[i];
+	}
+	return NULL;
+}
+
+static void default_key_dtr(struct dm_target *ti)
+{
+	struct default_key_c *dkc = ti->private;
+
+	if (dkc->dev) {
+		blk_crypto_evict_key(bdev_get_queue(dkc->dev->bdev), &dkc->key);
+		dm_put_device(ti, dkc->dev);
+	}
+	kfree_sensitive(dkc->cipher_string);
+	kfree_sensitive(dkc);
+}
+
+static int default_key_ctr_optional(struct dm_target *ti,
+				    unsigned int argc, char **argv)
+{
+	struct default_key_c *dkc = ti->private;
+	struct dm_arg_set as;
+	static const struct dm_arg _args[] = {
+		{0, 4, "Invalid number of feature args"},
+	};
+	unsigned int opt_params;
+	const char *opt_string;
+	bool iv_large_sectors = false;
+	char dummy;
+	int err;
+
+	as.argc = argc;
+	as.argv = argv;
+
+	err = dm_read_arg_group(_args, &as, &opt_params, &ti->error);
+	if (err)
+		return err;
+
+	while (opt_params--) {
+		opt_string = dm_shift_arg(&as);
+		if (!opt_string) {
+			ti->error = "Not enough feature arguments";
+			return -EINVAL;
+		}
+		if (!strcmp(opt_string, "allow_discards")) {
+			ti->num_discard_bios = 1;
+		} else if (sscanf(opt_string, "sector_size:%u%c",
+				  &dkc->sector_size, &dummy) == 1) {
+			if (dkc->sector_size < SECTOR_SIZE ||
+			    dkc->sector_size > 4096 ||
+			    !is_power_of_2(dkc->sector_size)) {
+				ti->error = "Invalid sector_size";
+				return -EINVAL;
+			}
+		} else if (!strcmp(opt_string, "iv_large_sectors")) {
+			iv_large_sectors = true;
+		} else if (!strcmp(opt_string, "wrappedkey_v0")) {
+			dkc->is_hw_wrapped = true;
+		} else {
+			ti->error = "Invalid feature arguments";
+			return -EINVAL;
+		}
+	}
+
+	/* dm-default-key doesn't implement iv_large_sectors=false. */
+	if (dkc->sector_size != SECTOR_SIZE && !iv_large_sectors) {
+		ti->error = "iv_large_sectors must be specified";
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+/*
+ * Construct a default-key mapping:
+ * <cipher> <key> <iv_offset> <dev_path> <start>
+ *
+ * This syntax matches dm-crypt's, but lots of unneeded functionality has been
+ * removed.  Also, dm-default-key requires that the "iv_large_sectors" option be
+ * given whenever a non-default sector size is used.
+ */
+static int default_key_ctr(struct dm_target *ti, unsigned int argc, char **argv)
+{
+	struct default_key_c *dkc;
+	const struct dm_default_key_cipher *cipher;
+	u8 raw_key[DM_DEFAULT_KEY_MAX_WRAPPED_KEY_SIZE];
+	unsigned int raw_key_size;
+	unsigned int dun_bytes;
+	unsigned long long tmpll;
+	char dummy;
+	int err;
+
+	if (argc < 5) {
+		ti->error = "Not enough arguments";
+		return -EINVAL;
+	}
+
+	dkc = kzalloc(sizeof(*dkc), GFP_KERNEL);
+	if (!dkc) {
+		ti->error = "Out of memory";
+		return -ENOMEM;
+	}
+	ti->private = dkc;
+
+	/* <cipher> */
+	dkc->cipher_string = kstrdup(argv[0], GFP_KERNEL);
+	if (!dkc->cipher_string) {
+		ti->error = "Out of memory";
+		err = -ENOMEM;
+		goto bad;
+	}
+	cipher = lookup_cipher(dkc->cipher_string);
+	if (!cipher) {
+		ti->error = "Unsupported cipher";
+		err = -EINVAL;
+		goto bad;
+	}
+
+	/* <key> */
+	raw_key_size = strlen(argv[1]);
+	if (raw_key_size > 2 * DM_DEFAULT_KEY_MAX_WRAPPED_KEY_SIZE ||
+	    raw_key_size % 2) {
+		ti->error = "Invalid keysize";
+		err = -EINVAL;
+		goto bad;
+	}
+	raw_key_size /= 2;
+	if (hex2bin(raw_key, argv[1], raw_key_size) != 0) {
+		ti->error = "Malformed key string";
+		err = -EINVAL;
+		goto bad;
+	}
+
+	/* <iv_offset> */
+	if (sscanf(argv[2], "%llu%c", &dkc->iv_offset, &dummy) != 1) {
+		ti->error = "Invalid iv_offset sector";
+		err = -EINVAL;
+		goto bad;
+	}
+
+	/* <dev_path> */
+	err = dm_get_device(ti, argv[3], dm_table_get_mode(ti->table),
+			    &dkc->dev);
+	if (err) {
+		ti->error = "Device lookup failed";
+		goto bad;
+	}
+
+	/* <start> */
+	if (sscanf(argv[4], "%llu%c", &tmpll, &dummy) != 1 ||
+	    tmpll != (sector_t)tmpll) {
+		ti->error = "Invalid start sector";
+		err = -EINVAL;
+		goto bad;
+	}
+	dkc->start = tmpll;
+
+	/* optional arguments */
+	dkc->sector_size = SECTOR_SIZE;
+	if (argc > 5) {
+		err = default_key_ctr_optional(ti, argc - 5, &argv[5]);
+		if (err)
+			goto bad;
+	}
+	dkc->sector_bits = ilog2(dkc->sector_size);
+	if (ti->len & ((dkc->sector_size >> SECTOR_SHIFT) - 1)) {
+		ti->error = "Device size is not a multiple of sector_size";
+		err = -EINVAL;
+		goto bad;
+	}
+
+	dkc->max_dun = (dkc->iv_offset + ti->len - 1) >>
+		       (dkc->sector_bits - SECTOR_SHIFT);
+	dun_bytes = DIV_ROUND_UP(fls64(dkc->max_dun), 8);
+
+	err = blk_crypto_init_key(&dkc->key, raw_key, raw_key_size,
+				  dkc->is_hw_wrapped, cipher->mode_num,
+				  dun_bytes, dkc->sector_size);
+	if (err) {
+		ti->error = "Error initializing blk-crypto key";
+		goto bad;
+	}
+
+	err = blk_crypto_start_using_key(&dkc->key,
+					 bdev_get_queue(dkc->dev->bdev));
+	if (err) {
+		ti->error = "Error starting to use blk-crypto";
+		goto bad;
+	}
+
+	ti->num_flush_bios = 1;
+
+	err = 0;
+	goto out;
+
+bad:
+	default_key_dtr(ti);
+out:
+	memzero_explicit(raw_key, sizeof(raw_key));
+	return err;
+}
+
+static int default_key_map(struct dm_target *ti, struct bio *bio)
+{
+	const struct default_key_c *dkc = ti->private;
+	sector_t sector_in_target;
+	u64 dun[BLK_CRYPTO_DUN_ARRAY_SIZE] = { 0 };
+
+	bio_set_dev(bio, dkc->dev->bdev);
+
+	/*
+	 * If the bio is a device-level request which doesn't target a specific
+	 * sector, there's nothing more to do.
+	 */
+	if (bio_sectors(bio) == 0)
+		return DM_MAPIO_REMAPPED;
+
+	/* Map the bio's sector to the underlying device. (512-byte sectors) */
+	sector_in_target = dm_target_offset(ti, bio->bi_iter.bi_sector);
+	bio->bi_iter.bi_sector = dkc->start + sector_in_target;
+
+	/*
+	 * If the bio should skip dm-default-key (i.e. if it's for an encrypted
+	 * file's contents), or if it doesn't have any data (e.g. if it's a
+	 * DISCARD request), there's nothing more to do.
+	 */
+	if (bio_should_skip_dm_default_key(bio) || !bio_has_data(bio))
+		return DM_MAPIO_REMAPPED;
+
+	/*
+	 * Else, dm-default-key needs to set this bio's encryption context.
+	 * It must not already have one.
+	 */
+	if (WARN_ON_ONCE(bio_has_crypt_ctx(bio)))
+		return DM_MAPIO_KILL;
+
+	/* Calculate the DUN and enforce data-unit (crypto sector) alignment. */
+	dun[0] = dkc->iv_offset + sector_in_target; /* 512-byte sectors */
+	if (dun[0] & ((dkc->sector_size >> SECTOR_SHIFT) - 1))
+		return DM_MAPIO_KILL;
+	dun[0] >>= dkc->sector_bits - SECTOR_SHIFT; /* crypto sectors */
+
+	/*
+	 * This check isn't necessary as we should have calculated max_dun
+	 * correctly, but be safe.
+	 */
+	if (WARN_ON_ONCE(dun[0] > dkc->max_dun))
+		return DM_MAPIO_KILL;
+
+	bio_crypt_set_ctx(bio, &dkc->key, dun, GFP_NOIO);
+
+	return DM_MAPIO_REMAPPED;
+}
+
+static void default_key_status(struct dm_target *ti, status_type_t type,
+			       unsigned int status_flags, char *result,
+			       unsigned int maxlen)
+{
+	const struct default_key_c *dkc = ti->private;
+	unsigned int sz = 0;
+	int num_feature_args = 0;
+
+	switch (type) {
+	case STATUSTYPE_INFO:
+	case STATUSTYPE_IMA:
+		result[0] = '\0';
+		break;
+
+	case STATUSTYPE_TABLE:
+		/* Omit the key for now. */
+		DMEMIT("%s - %llu %s %llu", dkc->cipher_string, dkc->iv_offset,
+		       dkc->dev->name, (unsigned long long)dkc->start);
+
+		num_feature_args += !!ti->num_discard_bios;
+		if (dkc->sector_size != SECTOR_SIZE)
+			num_feature_args += 2;
+		if (dkc->is_hw_wrapped)
+			num_feature_args += 1;
+		if (num_feature_args != 0) {
+			DMEMIT(" %d", num_feature_args);
+			if (ti->num_discard_bios)
+				DMEMIT(" allow_discards");
+			if (dkc->sector_size != SECTOR_SIZE) {
+				DMEMIT(" sector_size:%u", dkc->sector_size);
+				DMEMIT(" iv_large_sectors");
+			}
+			if (dkc->is_hw_wrapped)
+				DMEMIT(" wrappedkey_v0");
+		}
+		break;
+	}
+}
+
+static int default_key_prepare_ioctl(struct dm_target *ti,
+				     struct block_device **bdev)
+{
+	const struct default_key_c *dkc = ti->private;
+	const struct dm_dev *dev = dkc->dev;
+
+	*bdev = dev->bdev;
+
+	/* Only pass ioctls through if the device sizes match exactly. */
+	if (dkc->start != 0 ||
+	    ti->len != i_size_read(dev->bdev->bd_inode) >> SECTOR_SHIFT)
+		return 1;
+	return 0;
+}
+
+static int default_key_iterate_devices(struct dm_target *ti,
+				       iterate_devices_callout_fn fn,
+				       void *data)
+{
+	const struct default_key_c *dkc = ti->private;
+
+	return fn(ti, dkc->dev, dkc->start, ti->len, data);
+}
+
+static void default_key_io_hints(struct dm_target *ti,
+				 struct queue_limits *limits)
+{
+	const struct default_key_c *dkc = ti->private;
+	const unsigned int sector_size = dkc->sector_size;
+
+	limits->logical_block_size =
+		max_t(unsigned int, limits->logical_block_size, sector_size);
+	limits->physical_block_size =
+		max_t(unsigned int, limits->physical_block_size, sector_size);
+	limits->io_min = max_t(unsigned int, limits->io_min, sector_size);
+}
+
+static struct target_type default_key_target = {
+	.name			= "default-key",
+	.version		= {2, 1, 0},
+	.features		= DM_TARGET_PASSES_CRYPTO,
+	.module			= THIS_MODULE,
+	.ctr			= default_key_ctr,
+	.dtr			= default_key_dtr,
+	.map			= default_key_map,
+	.status			= default_key_status,
+	.prepare_ioctl		= default_key_prepare_ioctl,
+	.iterate_devices	= default_key_iterate_devices,
+	.io_hints		= default_key_io_hints,
+};
+
+static int __init dm_default_key_init(void)
+{
+	return dm_register_target(&default_key_target);
+}
+
+static void __exit dm_default_key_exit(void)
+{
+	dm_unregister_target(&default_key_target);
+}
+
+module_init(dm_default_key_init);
+module_exit(dm_default_key_exit);
+
+MODULE_AUTHOR("Paul Lawrence <paullawrence@google.com>");
+MODULE_AUTHOR("Paul Crowley <paulcrowley@google.com>");
+MODULE_AUTHOR("Eric Biggers <ebiggers@google.com>");
+MODULE_DESCRIPTION(DM_NAME " target for encrypting filesystem metadata");
+MODULE_LICENSE("GPL");
diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
index 46ec459..cac4ab2 100644
--- a/drivers/md/dm-table.c
+++ b/drivers/md/dm-table.c
@@ -1230,8 +1230,83 @@
 	return 0;
 }
 
+struct dm_derive_raw_secret_args {
+	const u8 *wrapped_key;
+	unsigned int wrapped_key_size;
+	u8 *secret;
+	unsigned int secret_size;
+	int err;
+};
+
+static int dm_derive_raw_secret_callback(struct dm_target *ti,
+					 struct dm_dev *dev, sector_t start,
+					 sector_t len, void *data)
+{
+	struct dm_derive_raw_secret_args *args = data;
+	struct request_queue *q = bdev_get_queue(dev->bdev);
+
+	if (!args->err)
+		return 0;
+
+	if (!q->ksm) {
+		args->err = -EOPNOTSUPP;
+		return 0;
+	}
+
+	args->err = blk_ksm_derive_raw_secret(q->ksm, args->wrapped_key,
+					      args->wrapped_key_size,
+					      args->secret,
+					      args->secret_size);
+	/* Try another device in case this fails. */
+	return 0;
+}
+
+/*
+ * Retrieve the raw_secret from the underlying device.  Given that only one
+ * raw_secret can exist for a particular wrappedkey, retrieve it only from the
+ * first device that supports derive_raw_secret().
+ */
+static int dm_derive_raw_secret(struct blk_keyslot_manager *ksm,
+				const u8 *wrapped_key,
+				unsigned int wrapped_key_size,
+				u8 *secret, unsigned int secret_size)
+{
+	struct dm_keyslot_manager *dksm = container_of(ksm,
+						       struct dm_keyslot_manager,
+						       ksm);
+	struct mapped_device *md = dksm->md;
+	struct dm_derive_raw_secret_args args = {
+		.wrapped_key = wrapped_key,
+		.wrapped_key_size = wrapped_key_size,
+		.secret = secret,
+		.secret_size = secret_size,
+		.err = -EOPNOTSUPP,
+	};
+	struct dm_table *t;
+	int srcu_idx;
+	int i;
+	struct dm_target *ti;
+
+	t = dm_get_live_table(md, &srcu_idx);
+	if (!t)
+		return -EOPNOTSUPP;
+	for (i = 0; i < dm_table_get_num_targets(t); i++) {
+		ti = dm_table_get_target(t, i);
+		if (!ti->type->iterate_devices)
+			continue;
+		ti->type->iterate_devices(ti, dm_derive_raw_secret_callback,
+					  &args);
+		if (!args.err)
+			break;
+	}
+	dm_put_live_table(md, srcu_idx);
+	return args.err;
+}
+
+
 static const struct blk_ksm_ll_ops dm_ksm_ll_ops = {
 	.keyslot_evict = dm_keyslot_evict,
+	.derive_raw_secret = dm_derive_raw_secret,
 };
 
 static int device_intersect_crypto_modes(struct dm_target *ti,
@@ -1294,6 +1369,8 @@
 	ksm->max_dun_bytes_supported = UINT_MAX;
 	memset(ksm->crypto_modes_supported, 0xFF,
 	       sizeof(ksm->crypto_modes_supported));
+	ksm->features = BLK_CRYPTO_FEATURE_STANDARD_KEYS |
+			BLK_CRYPTO_FEATURE_WRAPPED_KEYS;
 
 	for (i = 0; i < dm_table_get_num_targets(t); i++) {
 		ti = dm_table_get_target(t, i);
diff --git a/drivers/md/dm-user.c b/drivers/md/dm-user.c
new file mode 100644
index 0000000..e393244
--- /dev/null
+++ b/drivers/md/dm-user.c
@@ -0,0 +1,1290 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2020 Google, Inc
+ * Copyright (C) 2020 Palmer Dabbelt <palmerdabbelt@google.com>
+ */
+
+#include <linux/device-mapper.h>
+#include <uapi/linux/dm-user.h>
+
+#include <linux/bio.h>
+#include <linux/init.h>
+#include <linux/mempool.h>
+#include <linux/miscdevice.h>
+#include <linux/module.h>
+#include <linux/poll.h>
+#include <linux/uio.h>
+#include <linux/wait.h>
+#include <linux/workqueue.h>
+
+#define DM_MSG_PREFIX "user"
+
+#define MAX_OUTSTANDING_MESSAGES 128
+
+static unsigned int daemon_timeout_msec = 4000;
+module_param_named(dm_user_daemon_timeout_msec, daemon_timeout_msec, uint,
+		   0644);
+MODULE_PARM_DESC(dm_user_daemon_timeout_msec,
+		 "IO Timeout in msec if daemon does not process");
+
+/*
+ * dm-user uses four structures:
+ *
+ *  - "struct target", the outermost structure, corresponds to a single device
+ *    mapper target.  This contains the set of outstanding BIOs that have been
+ *    provided by DM and are not actively being processed by the user, along
+ *    with a misc device that userspace can open to communicate with the
+ *    kernel.  Each time userspaces opens the misc device a new channel is
+ *    created.
+ *  - "struct channel", which represents a single active communication channel
+ *    with userspace.  Userspace may choose arbitrary read/write sizes to use
+ *    when processing messages, channels form these into logical accesses.
+ *    When userspace responds to a full message the channel completes the BIO
+ *    and obtains a new message to process from the target.
+ *  - "struct message", which wraps a BIO with the additional information
+ *    required by the kernel to sort out what to do with BIOs when they return
+ *    from userspace.
+ *  - "struct dm_user_message", which is the exact message format that
+ *    userspace sees.
+ *
+ * The hot path contains three distinct operations:
+ *
+ *  - user_map(), which is provided a BIO from device mapper that is queued
+ *    into the target.  This allocates and enqueues a new message.
+ *  - dev_read(), which dequeues a message, copies it to userspace.
+ *  - dev_write(), which looks up a message (keyed by sequence number) and
+ *    completes the corresponding BIO.
+ *
+ * Lock ordering (outer to inner)
+ *
+ * 1) miscdevice's global lock.  This is held around dev_open, so it has to be
+ *    the outermost lock.
+ * 2) target->lock
+ * 3) channel->lock
+ */
+
+struct message {
+	/*
+	 * Messages themselves do not need a lock, they're protected by either
+	 * the target or channel's lock, depending on which can reference them
+	 * directly.
+	 */
+	struct dm_user_message msg;
+	struct bio *bio;
+	size_t posn_to_user;
+	size_t total_to_user;
+	size_t posn_from_user;
+	size_t total_from_user;
+
+	struct list_head from_user;
+	struct list_head to_user;
+
+	/*
+	 * These are written back from the user.  They live in the same spot in
+	 * the message, but we need to either keep the old values around or
+	 * call a bunch more BIO helpers.  These are only valid after write has
+	 * adopted the message.
+	 */
+	u64 return_type;
+	u64 return_flags;
+
+	struct delayed_work work;
+	bool delayed;
+	struct target *t;
+};
+
+struct target {
+	/*
+	 * A target has a single lock, which protects everything in the target
+	 * (but does not protect the channels associated with a target).
+	 */
+	struct mutex lock;
+
+	/*
+	 * There is only one point at which anything blocks: userspace blocks
+	 * reading a new message, which is woken up by device mapper providing
+	 * a new BIO to process (or tearing down the target).  The
+	 * corresponding write side doesn't block, instead we treat userspace's
+	 * response containing a message that has yet to be mapped as an
+	 * invalid operation.
+	 */
+	struct wait_queue_head wq;
+
+	/*
+	 * Messages are delivered to userspace in order, but may be returned
+	 * out of order.  This allows userspace to schedule IO if it wants to.
+	 */
+	mempool_t message_pool;
+	u64 next_seq_to_map;
+	u64 next_seq_to_user;
+	struct list_head to_user;
+
+	/*
+	 * There is a misc device per target.  The name is selected by
+	 * userspace (via a DM create ioctl argument), and each ends up in
+	 * /dev/dm-user/.  It looks like a better way to do this may be to have
+	 * a filesystem to manage these, but this was more expedient.  The
+	 * current mechanism is functional, but does result in an arbitrary
+	 * number of dynamically created misc devices.
+	 */
+	struct miscdevice miscdev;
+
+	/*
+	 * Device mapper's target destructor triggers tearing this all down,
+	 * but we can't actually free until every channel associated with this
+	 * target has been destroyed.  Channels each have a reference to their
+	 * target, and there is an additional single reference that corresponds
+	 * to both DM and the misc device (both of which are destroyed by DM).
+	 *
+	 * In the common case userspace will be asleep waiting for a new
+	 * message when device mapper decides to destroy the target, which
+	 * means no new messages will appear.  The destroyed flag triggers a
+	 * wakeup, which will end up removing the reference.
+	 */
+	struct kref references;
+	int dm_destroyed;
+	bool daemon_terminated;
+};
+
+struct channel {
+	struct target *target;
+
+	/*
+	 * A channel has a single lock, which prevents multiple reads (or
+	 * multiple writes) from conflicting with each other.
+	 */
+	struct mutex lock;
+
+	struct message *cur_to_user;
+	struct message *cur_from_user;
+	ssize_t to_user_error;
+	ssize_t from_user_error;
+
+	/*
+	 * Once a message has been forwarded to userspace on a channel it must
+	 * be responded to on the same channel.  This allows us to error out
+	 * the messages that have not yet been responded to by a channel when
+	 * that channel closes, which makes handling errors more reasonable for
+	 * fault-tolerant userspace daemons.  It also happens to make avoiding
+	 * shared locks between user_map() and dev_read() a lot easier.
+	 *
+	 * This does preclude a multi-threaded work stealing userspace
+	 * implementation (or at least, force a degree of head-of-line blocking
+	 * on the response path).
+	 */
+	struct list_head from_user;
+
+	/*
+	 * Responses from userspace can arrive in arbitrarily small chunks.
+	 * We need some place to buffer one up until we can find the
+	 * corresponding kernel-side message to continue processing, so instead
+	 * of allocating them we just keep one off to the side here.  This can
+	 * only ever be pointer to by from_user_cur, and will never have a BIO.
+	 */
+	struct message scratch_message_from_user;
+};
+
+static void message_kill(struct message *m, mempool_t *pool)
+{
+	m->bio->bi_status = BLK_STS_IOERR;
+	bio_endio(m->bio);
+	mempool_free(m, pool);
+}
+
+static inline bool is_user_space_thread_present(struct target *t)
+{
+	lockdep_assert_held(&t->lock);
+	return (kref_read(&t->references) > 1);
+}
+
+static void process_delayed_work(struct work_struct *work)
+{
+	struct delayed_work *del_work = to_delayed_work(work);
+	struct message *msg = container_of(del_work, struct message, work);
+
+	struct target *t = msg->t;
+
+	mutex_lock(&t->lock);
+
+	/*
+	 * There is at least one thread to process the IO.
+	 */
+	if (is_user_space_thread_present(t)) {
+		mutex_unlock(&t->lock);
+		return;
+	}
+
+	/*
+	 * Terminate the IO with an error
+	 */
+	list_del(&msg->to_user);
+	pr_err("I/O error: sector %llu: no user-space daemon for %s target\n",
+	       msg->bio->bi_iter.bi_sector,
+	       t->miscdev.name);
+	message_kill(msg, &t->message_pool);
+	mutex_unlock(&t->lock);
+}
+
+static void enqueue_delayed_work(struct message *m, bool is_delay)
+{
+	unsigned long delay = 0;
+
+	m->delayed = true;
+	INIT_DELAYED_WORK(&m->work, process_delayed_work);
+
+	/*
+	 * Snapuserd daemon is the user-space process
+	 * which processes IO request from dm-user
+	 * when OTA is applied. Per the current design,
+	 * when a dm-user target is created, daemon
+	 * attaches to target and starts processing
+	 * the IO's. Daemon is terminated only when
+	 * dm-user target is destroyed.
+	 *
+	 * If for some reason, daemon crashes or terminates early,
+	 * without destroying the dm-user target; then
+	 * there is no mechanism to restart the daemon
+	 * and start processing the IO's from the same target.
+	 * Theoretically, it is possible but that infrastructure
+	 * doesn't exist in the android ecosystem.
+	 *
+	 * Thus, when the daemon terminates, there is no way the IO's
+	 * issued on that target will be processed. Hence,
+	 * we set the delay to 0 and fail the IO's immediately.
+	 *
+	 * On the other hand, when a new dm-user target is created,
+	 * we wait for the daemon to get attached for the first time.
+	 * This primarily happens when init first stage spins up
+	 * the daemon. At this point, since the snapshot device is mounted
+	 * of a root filesystem, dm-user target may receive IO request
+	 * even though daemon is not fully launched. We don't want
+	 * to fail those IO requests immediately. Thus, we queue these
+	 * requests with a timeout so that daemon is ready to process
+	 * those IO requests. Again, if the daemon fails to launch within
+	 * the timeout period, then IO's will be failed.
+	 */
+	if (is_delay)
+		delay = msecs_to_jiffies(daemon_timeout_msec);
+
+	queue_delayed_work(system_wq, &m->work, delay);
+}
+
+static inline struct target *target_from_target(struct dm_target *target)
+{
+	WARN_ON(target->private == NULL);
+	return target->private;
+}
+
+static inline struct target *target_from_miscdev(struct miscdevice *miscdev)
+{
+	return container_of(miscdev, struct target, miscdev);
+}
+
+static inline struct channel *channel_from_file(struct file *file)
+{
+	WARN_ON(file->private_data == NULL);
+	return file->private_data;
+}
+
+static inline struct target *target_from_channel(struct channel *c)
+{
+	WARN_ON(c->target == NULL);
+	return c->target;
+}
+
+static inline size_t bio_size(struct bio *bio)
+{
+	struct bio_vec bvec;
+	struct bvec_iter iter;
+	size_t out = 0;
+
+	bio_for_each_segment (bvec, bio, iter)
+		out += bio_iter_len(bio, iter);
+	return out;
+}
+
+static inline size_t bio_bytes_needed_to_user(struct bio *bio)
+{
+	switch (bio_op(bio)) {
+	case REQ_OP_WRITE:
+		return sizeof(struct dm_user_message) + bio_size(bio);
+	case REQ_OP_READ:
+	case REQ_OP_FLUSH:
+	case REQ_OP_DISCARD:
+	case REQ_OP_SECURE_ERASE:
+	case REQ_OP_WRITE_SAME:
+	case REQ_OP_WRITE_ZEROES:
+		return sizeof(struct dm_user_message);
+
+	/*
+	 * These ops are not passed to userspace under the assumption that
+	 * they're not going to be particularly useful in that context.
+	 */
+	default:
+		return -EOPNOTSUPP;
+	}
+}
+
+static inline size_t bio_bytes_needed_from_user(struct bio *bio)
+{
+	switch (bio_op(bio)) {
+	case REQ_OP_READ:
+		return sizeof(struct dm_user_message) + bio_size(bio);
+	case REQ_OP_WRITE:
+	case REQ_OP_FLUSH:
+	case REQ_OP_DISCARD:
+	case REQ_OP_SECURE_ERASE:
+	case REQ_OP_WRITE_SAME:
+	case REQ_OP_WRITE_ZEROES:
+		return sizeof(struct dm_user_message);
+
+	/*
+	 * These ops are not passed to userspace under the assumption that
+	 * they're not going to be particularly useful in that context.
+	 */
+	default:
+		return -EOPNOTSUPP;
+	}
+}
+
+static inline long bio_type_to_user_type(struct bio *bio)
+{
+	switch (bio_op(bio)) {
+	case REQ_OP_READ:
+		return DM_USER_REQ_MAP_READ;
+	case REQ_OP_WRITE:
+		return DM_USER_REQ_MAP_WRITE;
+	case REQ_OP_FLUSH:
+		return DM_USER_REQ_MAP_FLUSH;
+	case REQ_OP_DISCARD:
+		return DM_USER_REQ_MAP_DISCARD;
+	case REQ_OP_SECURE_ERASE:
+		return DM_USER_REQ_MAP_SECURE_ERASE;
+	case REQ_OP_WRITE_SAME:
+		return DM_USER_REQ_MAP_WRITE_SAME;
+	case REQ_OP_WRITE_ZEROES:
+		return DM_USER_REQ_MAP_WRITE_ZEROES;
+
+	/*
+	 * These ops are not passed to userspace under the assumption that
+	 * they're not going to be particularly useful in that context.
+	 */
+	default:
+		return -EOPNOTSUPP;
+	}
+}
+
+static inline long bio_flags_to_user_flags(struct bio *bio)
+{
+	u64 out = 0;
+	typeof(bio->bi_opf) opf = bio->bi_opf & ~REQ_OP_MASK;
+
+	if (opf & REQ_FAILFAST_DEV) {
+		opf &= ~REQ_FAILFAST_DEV;
+		out |= DM_USER_REQ_MAP_FLAG_FAILFAST_DEV;
+	}
+
+	if (opf & REQ_FAILFAST_TRANSPORT) {
+		opf &= ~REQ_FAILFAST_TRANSPORT;
+		out |= DM_USER_REQ_MAP_FLAG_FAILFAST_TRANSPORT;
+	}
+
+	if (opf & REQ_FAILFAST_DRIVER) {
+		opf &= ~REQ_FAILFAST_DRIVER;
+		out |= DM_USER_REQ_MAP_FLAG_FAILFAST_DRIVER;
+	}
+
+	if (opf & REQ_SYNC) {
+		opf &= ~REQ_SYNC;
+		out |= DM_USER_REQ_MAP_FLAG_SYNC;
+	}
+
+	if (opf & REQ_META) {
+		opf &= ~REQ_META;
+		out |= DM_USER_REQ_MAP_FLAG_META;
+	}
+
+	if (opf & REQ_PRIO) {
+		opf &= ~REQ_PRIO;
+		out |= DM_USER_REQ_MAP_FLAG_PRIO;
+	}
+
+	if (opf & REQ_NOMERGE) {
+		opf &= ~REQ_NOMERGE;
+		out |= DM_USER_REQ_MAP_FLAG_NOMERGE;
+	}
+
+	if (opf & REQ_IDLE) {
+		opf &= ~REQ_IDLE;
+		out |= DM_USER_REQ_MAP_FLAG_IDLE;
+	}
+
+	if (opf & REQ_INTEGRITY) {
+		opf &= ~REQ_INTEGRITY;
+		out |= DM_USER_REQ_MAP_FLAG_INTEGRITY;
+	}
+
+	if (opf & REQ_FUA) {
+		opf &= ~REQ_FUA;
+		out |= DM_USER_REQ_MAP_FLAG_FUA;
+	}
+
+	if (opf & REQ_PREFLUSH) {
+		opf &= ~REQ_PREFLUSH;
+		out |= DM_USER_REQ_MAP_FLAG_PREFLUSH;
+	}
+
+	if (opf & REQ_RAHEAD) {
+		opf &= ~REQ_RAHEAD;
+		out |= DM_USER_REQ_MAP_FLAG_RAHEAD;
+	}
+
+	if (opf & REQ_BACKGROUND) {
+		opf &= ~REQ_BACKGROUND;
+		out |= DM_USER_REQ_MAP_FLAG_BACKGROUND;
+	}
+
+	if (opf & REQ_NOWAIT) {
+		opf &= ~REQ_NOWAIT;
+		out |= DM_USER_REQ_MAP_FLAG_NOWAIT;
+	}
+
+	if (opf & REQ_NOUNMAP) {
+		opf &= ~REQ_NOUNMAP;
+		out |= DM_USER_REQ_MAP_FLAG_NOUNMAP;
+	}
+
+	if (unlikely(opf)) {
+		pr_warn("unsupported BIO type %x\n", opf);
+		return -EOPNOTSUPP;
+	}
+	WARN_ON(out < 0);
+	return out;
+}
+
+/*
+ * Not quite what's in blk-map.c, but instead what I thought the functions in
+ * blk-map did.  This one seems more generally useful and I think we could
+ * write the blk-map version in terms of this one.  The differences are that
+ * this has a return value that counts, and blk-map uses the BIO _all iters.
+ * Neither  advance the BIO iter but don't advance the IOV iter, which is a bit
+ * odd here.
+ */
+static ssize_t bio_copy_from_iter(struct bio *bio, struct iov_iter *iter)
+{
+	struct bio_vec bvec;
+	struct bvec_iter biter;
+	ssize_t out = 0;
+
+	bio_for_each_segment (bvec, bio, biter) {
+		ssize_t ret;
+
+		ret = copy_page_from_iter(bvec.bv_page, bvec.bv_offset,
+					  bvec.bv_len, iter);
+
+		/*
+		 * FIXME: I thought that IOV copies had a mechanism for
+		 * terminating early, if for example a signal came in while
+		 * sleeping waiting for a page to be mapped, but I don't see
+		 * where that would happen.
+		 */
+		WARN_ON(ret < 0);
+		out += ret;
+
+		if (!iov_iter_count(iter))
+			break;
+
+		if (ret < bvec.bv_len)
+			return ret;
+	}
+
+	return out;
+}
+
+static ssize_t bio_copy_to_iter(struct bio *bio, struct iov_iter *iter)
+{
+	struct bio_vec bvec;
+	struct bvec_iter biter;
+	ssize_t out = 0;
+
+	bio_for_each_segment (bvec, bio, biter) {
+		ssize_t ret;
+
+		ret = copy_page_to_iter(bvec.bv_page, bvec.bv_offset,
+					bvec.bv_len, iter);
+
+		/* as above */
+		WARN_ON(ret < 0);
+		out += ret;
+
+		if (!iov_iter_count(iter))
+			break;
+
+		if (ret < bvec.bv_len)
+			return ret;
+	}
+
+	return out;
+}
+
+static ssize_t msg_copy_to_iov(struct message *msg, struct iov_iter *to)
+{
+	ssize_t copied = 0;
+
+	if (!iov_iter_count(to))
+		return 0;
+
+	if (msg->posn_to_user < sizeof(msg->msg)) {
+		copied = copy_to_iter((char *)(&msg->msg) + msg->posn_to_user,
+				      sizeof(msg->msg) - msg->posn_to_user, to);
+	} else {
+		copied = bio_copy_to_iter(msg->bio, to);
+		if (copied > 0)
+			bio_advance(msg->bio, copied);
+	}
+
+	if (copied < 0)
+		return copied;
+
+	msg->posn_to_user += copied;
+	return copied;
+}
+
+static ssize_t msg_copy_from_iov(struct message *msg, struct iov_iter *from)
+{
+	ssize_t copied = 0;
+
+	if (!iov_iter_count(from))
+		return 0;
+
+	if (msg->posn_from_user < sizeof(msg->msg)) {
+		copied = copy_from_iter(
+			(char *)(&msg->msg) + msg->posn_from_user,
+			sizeof(msg->msg) - msg->posn_from_user, from);
+	} else {
+		copied = bio_copy_from_iter(msg->bio, from);
+		if (copied > 0)
+			bio_advance(msg->bio, copied);
+	}
+
+	if (copied < 0)
+		return copied;
+
+	msg->posn_from_user += copied;
+	return copied;
+}
+
+static struct message *msg_get_map(struct target *t)
+{
+	struct message *m;
+
+	lockdep_assert_held(&t->lock);
+
+	m = mempool_alloc(&t->message_pool, GFP_NOIO);
+	m->msg.seq = t->next_seq_to_map++;
+	INIT_LIST_HEAD(&m->to_user);
+	INIT_LIST_HEAD(&m->from_user);
+	return m;
+}
+
+static struct message *msg_get_to_user(struct target *t)
+{
+	struct message *m;
+
+	lockdep_assert_held(&t->lock);
+
+	if (list_empty(&t->to_user))
+		return NULL;
+
+	m = list_first_entry(&t->to_user, struct message, to_user);
+
+	list_del(&m->to_user);
+
+	/*
+	 * If the IO was queued to workqueue since there
+	 * was no daemon to service the IO, then we
+	 * will have to cancel the delayed work as the
+	 * IO will be processed by this user-space thread.
+	 *
+	 * If the delayed work was already picked up for
+	 * processing, then wait for it to complete. Note
+	 * that the IO will not be terminated by the work
+	 * queue thread.
+	 */
+	if (unlikely(m->delayed)) {
+		mutex_unlock(&t->lock);
+		cancel_delayed_work_sync(&m->work);
+		mutex_lock(&t->lock);
+	}
+	return m;
+}
+
+static struct message *msg_get_from_user(struct channel *c, u64 seq)
+{
+	struct message *m;
+	struct list_head *cur, *tmp;
+
+	lockdep_assert_held(&c->lock);
+
+	list_for_each_safe (cur, tmp, &c->from_user) {
+		m = list_entry(cur, struct message, from_user);
+		if (m->msg.seq == seq) {
+			list_del(&m->from_user);
+			return m;
+		}
+	}
+
+	return NULL;
+}
+
+/*
+ * Returns 0 when there is no work left to do.  This must be callable without
+ * holding the target lock, as it is part of the waitqueue's check expression.
+ * When called without the lock it may spuriously indicate there is remaining
+ * work, but when called with the lock it must be accurate.
+ */
+static int target_poll(struct target *t)
+{
+	return !list_empty(&t->to_user) || t->dm_destroyed;
+}
+
+static void target_release(struct kref *ref)
+{
+	struct target *t = container_of(ref, struct target, references);
+	struct list_head *cur, *tmp;
+
+	/*
+	 * There may be outstanding BIOs that have not yet been given to
+	 * userspace.  At this point there's nothing we can do about them, as
+	 * there are and will never be any channels.
+	 */
+	list_for_each_safe (cur, tmp, &t->to_user) {
+		struct message *m = list_entry(cur, struct message, to_user);
+
+		if (unlikely(m->delayed)) {
+			bool ret;
+
+			mutex_unlock(&t->lock);
+			ret = cancel_delayed_work_sync(&m->work);
+			mutex_lock(&t->lock);
+			if (!ret)
+				continue;
+		}
+		message_kill(m, &t->message_pool);
+	}
+
+	mempool_exit(&t->message_pool);
+	mutex_unlock(&t->lock);
+	mutex_destroy(&t->lock);
+	kfree(t);
+}
+
+static void target_put(struct target *t)
+{
+	/*
+	 * This both releases a reference to the target and the lock.  We leave
+	 * it up to the caller to hold the lock, as they probably needed it for
+	 * something else.
+	 */
+	lockdep_assert_held(&t->lock);
+
+	if (!kref_put(&t->references, target_release)) {
+		/*
+		 * User-space thread is getting terminated.
+		 * We need to scan the list for all those
+		 * pending IO's which were not processed yet
+		 * and put them back to work-queue for delayed
+		 * processing.
+		 */
+		if (!is_user_space_thread_present(t)) {
+			struct list_head *cur, *tmp;
+
+			list_for_each_safe(cur, tmp, &t->to_user) {
+				struct message *m = list_entry(cur,
+							       struct message,
+							       to_user);
+				if (!m->delayed)
+					enqueue_delayed_work(m, false);
+			}
+			/*
+			 * Daemon attached to this target is terminated.
+			 */
+			t->daemon_terminated = true;
+		}
+		mutex_unlock(&t->lock);
+	}
+}
+
+static struct channel *channel_alloc(struct target *t)
+{
+	struct channel *c;
+
+	lockdep_assert_held(&t->lock);
+
+	c = kzalloc(sizeof(*c), GFP_KERNEL);
+	if (c == NULL)
+		return NULL;
+
+	kref_get(&t->references);
+	c->target = t;
+	c->cur_from_user = &c->scratch_message_from_user;
+	mutex_init(&c->lock);
+	INIT_LIST_HEAD(&c->from_user);
+	return c;
+}
+
+static void channel_free(struct channel *c)
+{
+	struct list_head *cur, *tmp;
+
+	lockdep_assert_held(&c->lock);
+
+	/*
+	 * There may be outstanding BIOs that have been given to userspace but
+	 * have not yet been completed.  The channel has been shut down so
+	 * there's no way to process the rest of those messages, so we just go
+	 * ahead and error out the BIOs.  Hopefully whatever's on the other end
+	 * can handle the errors.  One could imagine splitting the BIOs and
+	 * completing as much as we got, but that seems like overkill here.
+	 *
+	 * Our only other options would be to let the BIO hang around (which
+	 * seems way worse) or to resubmit it to userspace in the hope there's
+	 * another channel.  I don't really like the idea of submitting a
+	 * message twice.
+	 */
+	if (c->cur_to_user != NULL)
+		message_kill(c->cur_to_user, &c->target->message_pool);
+	if (c->cur_from_user != &c->scratch_message_from_user)
+		message_kill(c->cur_from_user, &c->target->message_pool);
+	list_for_each_safe (cur, tmp, &c->from_user)
+		message_kill(list_entry(cur, struct message, from_user),
+			     &c->target->message_pool);
+
+	mutex_lock(&c->target->lock);
+	target_put(c->target);
+	mutex_unlock(&c->lock);
+	mutex_destroy(&c->lock);
+	kfree(c);
+}
+
+static int dev_open(struct inode *inode, struct file *file)
+{
+	struct channel *c;
+	struct target *t;
+
+	/*
+	 * This is called by miscdev, which sets private_data to point to the
+	 * struct miscdevice that was opened.  The rest of our file operations
+	 * want to refer to the channel that's been opened, so we swap that
+	 * pointer out with a fresh channel.
+	 *
+	 * This is called with the miscdev lock held, which is also held while
+	 * registering/unregistering the miscdev.  The miscdev must be
+	 * registered for this to get called, which means there must be an
+	 * outstanding reference to the target, which means it cannot be freed
+	 * out from under us despite us not holding a reference yet.
+	 */
+	t = container_of(file->private_data, struct target, miscdev);
+	mutex_lock(&t->lock);
+	file->private_data = c = channel_alloc(t);
+
+	if (c == NULL) {
+		mutex_unlock(&t->lock);
+		return -ENOMEM;
+	}
+
+	mutex_unlock(&t->lock);
+	return 0;
+}
+
+static ssize_t dev_read(struct kiocb *iocb, struct iov_iter *to)
+{
+	struct channel *c = channel_from_file(iocb->ki_filp);
+	ssize_t total_processed = 0;
+	ssize_t processed;
+
+	mutex_lock(&c->lock);
+
+	if (unlikely(c->to_user_error)) {
+		total_processed = c->to_user_error;
+		goto cleanup_unlock;
+	}
+
+	if (c->cur_to_user == NULL) {
+		struct target *t = target_from_channel(c);
+
+		mutex_lock(&t->lock);
+
+		while (!target_poll(t)) {
+			int e;
+
+			mutex_unlock(&t->lock);
+			mutex_unlock(&c->lock);
+			e = wait_event_interruptible(t->wq, target_poll(t));
+			mutex_lock(&c->lock);
+			mutex_lock(&t->lock);
+
+			if (unlikely(e != 0)) {
+				/*
+				 * We haven't processed any bytes in either the
+				 * BIO or the IOV, so we can just terminate
+				 * right now.  Elsewhere in the kernel handles
+				 * restarting the syscall when appropriate.
+				 */
+				total_processed = e;
+				mutex_unlock(&t->lock);
+				goto cleanup_unlock;
+			}
+		}
+
+		if (unlikely(t->dm_destroyed)) {
+			/*
+			 * DM has destroyed this target, so just lock
+			 * the user out.  There's really nothing else
+			 * we can do here.  Note that we don't actually
+			 * tear any thing down until userspace has
+			 * closed the FD, as there may still be
+			 * outstanding BIOs.
+			 *
+			 * This is kind of a wacky error code to
+			 * return.  My goal was really just to try and
+			 * find something that wasn't likely to be
+			 * returned by anything else in the miscdev
+			 * path.  The message "block device required"
+			 * seems like a somewhat reasonable thing to
+			 * say when the target has disappeared out from
+			 * under us, but "not block" isn't sensible.
+			 */
+			c->to_user_error = total_processed = -ENOTBLK;
+			mutex_unlock(&t->lock);
+			goto cleanup_unlock;
+		}
+
+		/*
+		 * Ensures that accesses to the message data are not ordered
+		 * before the remote accesses that produce that message data.
+		 *
+		 * This pairs with the barrier in user_map(), via the
+		 * conditional within the while loop above. Also see the lack
+		 * of barrier in user_dtr(), which is why this can be after the
+		 * destroyed check.
+		 */
+		smp_rmb();
+
+		c->cur_to_user = msg_get_to_user(t);
+		WARN_ON(c->cur_to_user == NULL);
+		mutex_unlock(&t->lock);
+	}
+
+	processed = msg_copy_to_iov(c->cur_to_user, to);
+	total_processed += processed;
+
+	WARN_ON(c->cur_to_user->posn_to_user > c->cur_to_user->total_to_user);
+	if (c->cur_to_user->posn_to_user == c->cur_to_user->total_to_user) {
+		struct message *m = c->cur_to_user;
+
+		c->cur_to_user = NULL;
+		list_add_tail(&m->from_user, &c->from_user);
+	}
+
+cleanup_unlock:
+	mutex_unlock(&c->lock);
+	return total_processed;
+}
+
+static ssize_t dev_write(struct kiocb *iocb, struct iov_iter *from)
+{
+	struct channel *c = channel_from_file(iocb->ki_filp);
+	ssize_t total_processed = 0;
+	ssize_t processed;
+
+	mutex_lock(&c->lock);
+
+	if (unlikely(c->from_user_error)) {
+		total_processed = c->from_user_error;
+		goto cleanup_unlock;
+	}
+
+	/*
+	 * cur_from_user can never be NULL.  If there's no real message it must
+	 * point to the scratch space.
+	 */
+	WARN_ON(c->cur_from_user == NULL);
+	if (c->cur_from_user->posn_from_user < sizeof(struct dm_user_message)) {
+		struct message *msg, *old;
+
+		processed = msg_copy_from_iov(c->cur_from_user, from);
+		if (processed <= 0) {
+			pr_warn("msg_copy_from_iov() returned %zu\n",
+				processed);
+			c->from_user_error = -EINVAL;
+			goto cleanup_unlock;
+		}
+		total_processed += processed;
+
+		/*
+		 * In the unlikely event the user has provided us a very short
+		 * write, not even big enough to fill a message, just succeed.
+		 * We'll eventually build up enough bytes to do something.
+		 */
+		if (unlikely(c->cur_from_user->posn_from_user <
+			     sizeof(struct dm_user_message)))
+			goto cleanup_unlock;
+
+		old = c->cur_from_user;
+		mutex_lock(&c->target->lock);
+		msg = msg_get_from_user(c, c->cur_from_user->msg.seq);
+		if (msg == NULL) {
+			pr_info("user provided an invalid messag seq of %llx\n",
+				old->msg.seq);
+			mutex_unlock(&c->target->lock);
+			c->from_user_error = -EINVAL;
+			goto cleanup_unlock;
+		}
+		mutex_unlock(&c->target->lock);
+
+		WARN_ON(old->posn_from_user != sizeof(struct dm_user_message));
+		msg->posn_from_user = sizeof(struct dm_user_message);
+		msg->return_type = old->msg.type;
+		msg->return_flags = old->msg.flags;
+		WARN_ON(msg->posn_from_user > msg->total_from_user);
+		c->cur_from_user = msg;
+		WARN_ON(old != &c->scratch_message_from_user);
+	}
+
+	/*
+	 * Userspace can signal an error for single requests by overwriting the
+	 * seq field.
+	 */
+	switch (c->cur_from_user->return_type) {
+	case DM_USER_RESP_SUCCESS:
+		c->cur_from_user->bio->bi_status = BLK_STS_OK;
+		break;
+	case DM_USER_RESP_ERROR:
+	case DM_USER_RESP_UNSUPPORTED:
+	default:
+		c->cur_from_user->bio->bi_status = BLK_STS_IOERR;
+		goto finish_bio;
+	}
+
+	/*
+	 * The op was a success as far as userspace is concerned, so process
+	 * whatever data may come along with it.  The user may provide the BIO
+	 * data in multiple chunks, in which case we don't need to finish the
+	 * BIO.
+	 */
+	processed = msg_copy_from_iov(c->cur_from_user, from);
+	total_processed += processed;
+
+	if (c->cur_from_user->posn_from_user <
+	    c->cur_from_user->total_from_user)
+		goto cleanup_unlock;
+
+finish_bio:
+	/*
+	 * When we set up this message the BIO's size matched the
+	 * message size, if that's not still the case then something
+	 * has gone off the rails.
+	 */
+	WARN_ON(bio_size(c->cur_from_user->bio) != 0);
+	bio_endio(c->cur_from_user->bio);
+
+	/*
+	 * We don't actually need to take the target lock here, as all
+	 * we're doing is freeing the message and mempools have their
+	 * own lock.  Each channel has its ows scratch message.
+	 */
+	WARN_ON(c->cur_from_user == &c->scratch_message_from_user);
+	mempool_free(c->cur_from_user, &c->target->message_pool);
+	c->scratch_message_from_user.posn_from_user = 0;
+	c->cur_from_user = &c->scratch_message_from_user;
+
+cleanup_unlock:
+	mutex_unlock(&c->lock);
+	return total_processed;
+}
+
+static int dev_release(struct inode *inode, struct file *file)
+{
+	struct channel *c;
+
+	c = channel_from_file(file);
+	mutex_lock(&c->lock);
+	channel_free(c);
+
+	return 0;
+}
+
+static const struct file_operations file_operations = {
+	.owner = THIS_MODULE,
+	.open = dev_open,
+	.llseek = no_llseek,
+	.read_iter = dev_read,
+	.write_iter = dev_write,
+	.release = dev_release,
+};
+
+static int user_ctr(struct dm_target *ti, unsigned int argc, char **argv)
+{
+	struct target *t;
+	int r;
+
+	if (argc != 3) {
+		ti->error = "Invalid argument count";
+		r = -EINVAL;
+		goto cleanup_none;
+	}
+
+	t = kzalloc(sizeof(*t), GFP_KERNEL);
+	if (t == NULL) {
+		r = -ENOMEM;
+		goto cleanup_none;
+	}
+	ti->private = t;
+
+	/* Enable more BIO types. */
+	ti->num_discard_bios = 1;
+	ti->discards_supported = true;
+	ti->num_flush_bios = 1;
+	ti->flush_supported = true;
+
+	/*
+	 * We begin with a single reference to the target, which is miscdev's
+	 * reference.  This ensures that the target won't be freed
+	 * until after the miscdev has been unregistered and all extant
+	 * channels have been closed.
+	 */
+	kref_init(&t->references);
+
+	t->daemon_terminated = false;
+	mutex_init(&t->lock);
+	init_waitqueue_head(&t->wq);
+	INIT_LIST_HEAD(&t->to_user);
+	mempool_init_kmalloc_pool(&t->message_pool, MAX_OUTSTANDING_MESSAGES,
+				  sizeof(struct message));
+
+	t->miscdev.minor = MISC_DYNAMIC_MINOR;
+	t->miscdev.fops = &file_operations;
+	t->miscdev.name = kasprintf(GFP_KERNEL, "dm-user/%s", argv[2]);
+	if (t->miscdev.name == NULL) {
+		r = -ENOMEM;
+		goto cleanup_message_pool;
+	}
+
+	/*
+	 * Once the miscdev is registered it can be opened and therefor
+	 * concurrent references to the channel can happen.  Holding the target
+	 * lock during misc_register() could deadlock.  If registration
+	 * succeeds then we will not access the target again so we just stick a
+	 * barrier here, which pairs with taking the target lock everywhere
+	 * else the target is accessed.
+	 *
+	 * I forgot where we ended up on the RCpc/RCsc locks.  IIU RCsc locks
+	 * would mean that we could take the target lock earlier and release it
+	 * here instead of the memory barrier.  I'm not sure that's any better,
+	 * though, and this isn't on a hot path so it probably doesn't matter
+	 * either way.
+	 */
+	smp_mb();
+
+	r = misc_register(&t->miscdev);
+	if (r) {
+		DMERR("Unable to register miscdev %s for dm-user",
+		      t->miscdev.name);
+		r = -ENOMEM;
+		goto cleanup_misc_name;
+	}
+
+	return 0;
+
+cleanup_misc_name:
+	kfree(t->miscdev.name);
+cleanup_message_pool:
+	mempool_exit(&t->message_pool);
+	kfree(t);
+cleanup_none:
+	return r;
+}
+
+static void user_dtr(struct dm_target *ti)
+{
+	struct target *t = target_from_target(ti);
+
+	/*
+	 * Removes the miscdev.  This must be called without the target lock
+	 * held to avoid a possible deadlock because our open implementation is
+	 * called holding the miscdev lock and must later take the target lock.
+	 *
+	 * There is no race here because only DM can register/unregister the
+	 * miscdev, and DM ensures that doesn't happen twice.  The internal
+	 * miscdev lock is sufficient to ensure there are no races between
+	 * deregistering the miscdev and open.
+	 */
+	misc_deregister(&t->miscdev);
+
+	/*
+	 * We are now free to take the target's lock and drop our reference to
+	 * the target.  There are almost certainly tasks sleeping in read on at
+	 * least one of the channels associated with this target, this
+	 * explicitly wakes them up and terminates the read.
+	 */
+	mutex_lock(&t->lock);
+	/*
+	 * No barrier here, as wait/wake ensures that the flag visibility is
+	 * correct WRT the wake/sleep state of the target tasks.
+	 */
+	t->dm_destroyed = true;
+	wake_up_all(&t->wq);
+	target_put(t);
+}
+
+/*
+ * Consumes a BIO from device mapper, queueing it up for userspace.
+ */
+static int user_map(struct dm_target *ti, struct bio *bio)
+{
+	struct target *t;
+	struct message *entry;
+
+	t = target_from_target(ti);
+	/*
+	 * FIXME
+	 *
+	 * This seems like a bad idea.  Specifically, here we're
+	 * directly on the IO path when we take the target lock, which may also
+	 * be taken from a user context.  The user context doesn't actively
+	 * trigger anything that may sleep while holding the lock, but this
+	 * still seems like a bad idea.
+	 *
+	 * The obvious way to fix this would be to use a proper queue, which
+	 * would result in no shared locks between the direct IO path and user
+	 * tasks.  I had a version that did this, but the head-of-line blocking
+	 * from the circular buffer resulted in us needing a fairly large
+	 * allocation in order to avoid situations in which the queue fills up
+	 * and everything goes off the rails.
+	 *
+	 * I could jump through a some hoops to avoid a shared lock while still
+	 * allowing for a large queue, but I'm not actually sure that allowing
+	 * for very large queues is the right thing to do here.  Intuitively it
+	 * seems better to keep the queues small in here (essentially sized to
+	 * the user latency for performance reasons only) and rely on returning
+	 * DM_MAPIO_REQUEUE regularly, as that would give the rest of the
+	 * kernel more information.
+	 *
+	 * I'll spend some time trying to figure out what's going on with
+	 * DM_MAPIO_REQUEUE, but if someone has a better idea of how to fix
+	 * this I'm all ears.
+	 */
+	mutex_lock(&t->lock);
+
+	/*
+	 * FIXME
+	 *
+	 * The assumption here is that there's no benefit to returning
+	 * DM_MAPIO_KILL as opposed to just erroring out the BIO, but I'm not
+	 * sure that's actually true -- for example, I could imagine users
+	 * expecting that submitted BIOs are unlikely to fail and therefor
+	 * relying on submission failure to indicate an unsupported type.
+	 *
+	 * There's two ways I can think of to fix this:
+	 *   - Add DM arguments that are parsed during the constructor that
+	 *     allow various dm_target flags to be set that indicate the op
+	 *     types supported by this target.  This may make sense for things
+	 *     like discard, where DM can already transform the BIOs to a form
+	 *     that's likely to be supported.
+	 *   - Some sort of pre-filter that allows userspace to hook in here
+	 *     and kill BIOs before marking them as submitted.  My guess would
+	 *     be that a userspace round trip is a bad idea here, but a BPF
+	 *     call seems resonable.
+	 *
+	 * My guess is that we'd likely want to do both.  The first one is easy
+	 * and gives DM the proper info, so it seems better.  The BPF call
+	 * seems overly complex for just this, but one could imagine wanting to
+	 * sometimes return _MAPPED and a BPF filter would be the way to do
+	 * that.
+	 *
+	 * For example, in Android we have an in-kernel DM device called
+	 * "dm-bow" that takes advange of some portion of the space that has
+	 * been discarded on a device to provide opportunistic block-level
+	 * backups.  While one could imagine just implementing this entirely in
+	 * userspace, that would come with an appreciable performance penalty.
+	 * Instead one could keep a BPF program that forwards most accesses
+	 * directly to the backing block device while informing a userspace
+	 * daemon of any discarded space and on writes to blocks that are to be
+	 * backed up.
+	 */
+	if (unlikely((bio_type_to_user_type(bio) < 0) ||
+		     (bio_flags_to_user_flags(bio) < 0))) {
+		mutex_unlock(&t->lock);
+		return DM_MAPIO_KILL;
+	}
+
+	entry = msg_get_map(t);
+	if (unlikely(entry == NULL)) {
+		mutex_unlock(&t->lock);
+		return DM_MAPIO_REQUEUE;
+	}
+
+	entry->msg.type = bio_type_to_user_type(bio);
+	entry->msg.flags = bio_flags_to_user_flags(bio);
+	entry->msg.sector = bio->bi_iter.bi_sector;
+	entry->msg.len = bio_size(bio);
+	entry->bio = bio;
+	entry->posn_to_user = 0;
+	entry->total_to_user = bio_bytes_needed_to_user(bio);
+	entry->posn_from_user = 0;
+	entry->total_from_user = bio_bytes_needed_from_user(bio);
+	entry->delayed = false;
+	entry->t = t;
+	/* Pairs with the barrier in dev_read() */
+	smp_wmb();
+	list_add_tail(&entry->to_user, &t->to_user);
+
+	/*
+	 * If there is no daemon to process the IO's,
+	 * queue these messages into a workqueue with
+	 * a timeout.
+	 */
+	if (!is_user_space_thread_present(t))
+		enqueue_delayed_work(entry, !t->daemon_terminated);
+
+	wake_up_interruptible(&t->wq);
+	mutex_unlock(&t->lock);
+	return DM_MAPIO_SUBMITTED;
+}
+
+static struct target_type user_target = {
+	.name = "user",
+	.version = { 1, 0, 0 },
+	.module = THIS_MODULE,
+	.ctr = user_ctr,
+	.dtr = user_dtr,
+	.map = user_map,
+};
+
+static int __init dm_user_init(void)
+{
+	int r;
+
+	r = dm_register_target(&user_target);
+	if (r) {
+		DMERR("register failed %d", r);
+		goto error;
+	}
+
+	return 0;
+
+error:
+	return r;
+}
+
+static void __exit dm_user_exit(void)
+{
+	dm_unregister_target(&user_target);
+}
+
+module_init(dm_user_init);
+module_exit(dm_user_exit);
+MODULE_AUTHOR("Palmer Dabbelt <palmerdabbelt@google.com>");
+MODULE_DESCRIPTION(DM_NAME " target returning blocks from userspace");
+MODULE_LICENSE("GPL");
diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c
index 1a25096..075a580a 100644
--- a/drivers/md/dm-verity-target.c
+++ b/drivers/md/dm-verity-target.c
@@ -1280,8 +1280,16 @@
 		goto bad;
 	}
 
-	/* WQ_UNBOUND greatly improves performance when running on ramdisk */
-	v->verify_wq = alloc_workqueue("kverityd", WQ_CPU_INTENSIVE | WQ_MEM_RECLAIM | WQ_UNBOUND, num_online_cpus());
+	/*
+	 * Using WQ_HIGHPRI improves throughput and completion latency by
+	 * reducing wait times when reading from a dm-verity device.
+	 *
+	 * Also as required for the "try_verify_in_tasklet" feature: WQ_HIGHPRI
+	 * allows verify_wq to preempt softirq since verification in tasklet
+	 * will fall-back to using it for error handling (or if the bufio cache
+	 * doesn't have required hashes).
+	 */
+	v->verify_wq = alloc_workqueue("kverityd", WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
 	if (!v->verify_wq) {
 		ti->error = "Cannot allocate workqueue";
 		r = -ENOMEM;
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index d6285a2..4e4fb5e 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -30,7 +30,7 @@
 #include <linux/part_stat.h>
 #include <linux/blk-crypto.h>
 #include <linux/keyslot-manager.h>
-
+#include <trace/hooks/dm.h>
 #define DM_MSG_PREFIX "core"
 
 /*
@@ -1291,7 +1291,7 @@
 	int r;
 
 	__bio_clone_fast(clone, bio);
-
+	trace_android_vh_dm_update_clone_bio(clone, bio);
 	r = bio_crypt_clone(clone, bio, GFP_NOIO);
 	if (r < 0)
 		return r;
diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index f3f24c6..b65ae40 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -65,8 +65,7 @@
 # Multimedia support - automatically enable V4L2 and DVB core
 #
 config MEDIA_CAMERA_SUPPORT
-	bool
-	prompt "Cameras and video grabbers" if MEDIA_SUPPORT_FILTER
+	bool "Cameras and video grabbers"
 	default y if !MEDIA_SUPPORT_FILTER
 	help
 	  Enable support for webcams and video grabbers.
@@ -74,8 +73,7 @@
 	  Say Y when you have a webcam or a video capture grabber board.
 
 config MEDIA_ANALOG_TV_SUPPORT
-	bool
-	prompt "Analog TV" if MEDIA_SUPPORT_FILTER
+	bool "Analog TV"
 	default y if !MEDIA_SUPPORT_FILTER
 	help
 	  Enable analog TV support.
@@ -88,8 +86,7 @@
 		will disable support for them.
 
 config MEDIA_DIGITAL_TV_SUPPORT
-	bool
-	prompt "Digital TV" if MEDIA_SUPPORT_FILTER
+	bool "Digital TV"
 	default y if !MEDIA_SUPPORT_FILTER
 	help
 	  Enable digital TV support.
@@ -98,8 +95,7 @@
 	  hybrid digital TV and analog TV.
 
 config MEDIA_RADIO_SUPPORT
-	bool
-	prompt "AM/FM radio receivers/transmitters" if MEDIA_SUPPORT_FILTER
+	bool "AM/FM radio receivers/transmitters"
 	default y if !MEDIA_SUPPORT_FILTER
 	help
 	  Enable AM/FM radio support.
@@ -114,8 +110,7 @@
 		disable support for them.
 
 config MEDIA_SDR_SUPPORT
-	bool
-	prompt "Software defined radio" if MEDIA_SUPPORT_FILTER
+	bool "Software defined radio"
 	default y if !MEDIA_SUPPORT_FILTER
 	help
 	  Enable software defined radio support.
@@ -123,8 +118,7 @@
 	  Say Y when you have a software defined radio device.
 
 config MEDIA_PLATFORM_SUPPORT
-	bool
-	prompt "Platform-specific devices" if MEDIA_SUPPORT_FILTER
+	bool "Platform-specific devices"
 	default y if !MEDIA_SUPPORT_FILTER
 	help
 	  Enable support for complex cameras, codecs, and other hardware
@@ -137,8 +131,7 @@
 	  Say Y when you want to be able to see such devices.
 
 config MEDIA_TEST_SUPPORT
-	bool
-	prompt "Test drivers" if MEDIA_SUPPORT_FILTER
+	bool "Test drivers"
 	default y if !MEDIA_SUPPORT_FILTER
 	help
 	  These drivers should not be used on production kernels, but
@@ -179,7 +172,7 @@
 #
 
 config DVB_CORE
-	tristate
+	tristate "DVB Core"
 	depends on MEDIA_DIGITAL_TV_SUPPORT
 	depends on (I2C || I2C=n)
 	default MEDIA_DIGITAL_TV_SUPPORT
diff --git a/drivers/media/platform/rcar_fdp1.c b/drivers/media/platform/rcar_fdp1.c
index c548cb0..be28735 100644
--- a/drivers/media/platform/rcar_fdp1.c
+++ b/drivers/media/platform/rcar_fdp1.c
@@ -2400,7 +2400,7 @@
 	return ret;
 }
 
-static void fdp1_remove(struct platform_device *pdev)
+static int fdp1_remove(struct platform_device *pdev)
 {
 	struct fdp1_dev *fdp1 = platform_get_drvdata(pdev);
 
@@ -2409,6 +2409,7 @@
 	v4l2_device_unregister(&fdp1->v4l2_dev);
 	pm_runtime_disable(&pdev->dev);
 	rcar_fcp_put(fdp1->fcp);
+	return 0;
 }
 
 static int __maybe_unused fdp1_pm_runtime_suspend(struct device *dev)
@@ -2444,7 +2445,7 @@
 
 static struct platform_driver fdp1_pdrv = {
 	.probe		= fdp1_probe,
-	.remove_new	= fdp1_remove,
+	.remove		= fdp1_remove,
 	.driver		= {
 		.name	= DRIVER_NAME,
 		.of_match_table = fdp1_dt_ids,
diff --git a/drivers/media/usb/pvrusb2/Kconfig b/drivers/media/usb/pvrusb2/Kconfig
index e6a4f73..3373831 100644
--- a/drivers/media/usb/pvrusb2/Kconfig
+++ b/drivers/media/usb/pvrusb2/Kconfig
@@ -37,6 +37,7 @@
 	bool "pvrusb2 ATSC/DVB support"
 	default y
 	depends on VIDEO_PVRUSB2 && DVB_CORE
+	depends on VIDEO_PVRUSB2=m || DVB_CORE=y
 	select DVB_LGDT330X if MEDIA_SUBDRV_AUTOSELECT
 	select DVB_S5H1409 if MEDIA_SUBDRV_AUTOSELECT
 	select DVB_S5H1411 if MEDIA_SUBDRV_AUTOSELECT
diff --git a/drivers/media/usb/uvc/uvc_ctrl.c b/drivers/media/usb/uvc/uvc_ctrl.c
index 0533586..969903c 100644
--- a/drivers/media/usb/uvc/uvc_ctrl.c
+++ b/drivers/media/usb/uvc/uvc_ctrl.c
@@ -19,6 +19,7 @@
 #include <linux/workqueue.h>
 #include <linux/atomic.h>
 #include <media/v4l2-ctrls.h>
+#include <media/v4l2-uvc.h>
 
 #include "uvcvideo.h"
 
diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
index b19c75a..620a528 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -21,6 +21,7 @@
 
 #include <media/v4l2-common.h>
 #include <media/v4l2-ioctl.h>
+#include <media/v4l2-uvc.h>
 
 #include "uvcvideo.h"
 
@@ -36,193 +37,6 @@
 unsigned int uvc_timeout_param = UVC_CTRL_STREAMING_TIMEOUT;
 
 /* ------------------------------------------------------------------------
- * Video formats
- */
-
-static struct uvc_format_desc uvc_fmts[] = {
-	{
-		.name		= "YUV 4:2:2 (YUYV)",
-		.guid		= UVC_GUID_FORMAT_YUY2,
-		.fcc		= V4L2_PIX_FMT_YUYV,
-	},
-	{
-		.name		= "YUV 4:2:2 (YUYV)",
-		.guid		= UVC_GUID_FORMAT_YUY2_ISIGHT,
-		.fcc		= V4L2_PIX_FMT_YUYV,
-	},
-	{
-		.name		= "YUV 4:2:0 (NV12)",
-		.guid		= UVC_GUID_FORMAT_NV12,
-		.fcc		= V4L2_PIX_FMT_NV12,
-	},
-	{
-		.name		= "MJPEG",
-		.guid		= UVC_GUID_FORMAT_MJPEG,
-		.fcc		= V4L2_PIX_FMT_MJPEG,
-	},
-	{
-		.name		= "YVU 4:2:0 (YV12)",
-		.guid		= UVC_GUID_FORMAT_YV12,
-		.fcc		= V4L2_PIX_FMT_YVU420,
-	},
-	{
-		.name		= "YUV 4:2:0 (I420)",
-		.guid		= UVC_GUID_FORMAT_I420,
-		.fcc		= V4L2_PIX_FMT_YUV420,
-	},
-	{
-		.name		= "YUV 4:2:0 (M420)",
-		.guid		= UVC_GUID_FORMAT_M420,
-		.fcc		= V4L2_PIX_FMT_M420,
-	},
-	{
-		.name		= "YUV 4:2:2 (UYVY)",
-		.guid		= UVC_GUID_FORMAT_UYVY,
-		.fcc		= V4L2_PIX_FMT_UYVY,
-	},
-	{
-		.name		= "Greyscale 8-bit (Y800)",
-		.guid		= UVC_GUID_FORMAT_Y800,
-		.fcc		= V4L2_PIX_FMT_GREY,
-	},
-	{
-		.name		= "Greyscale 8-bit (Y8  )",
-		.guid		= UVC_GUID_FORMAT_Y8,
-		.fcc		= V4L2_PIX_FMT_GREY,
-	},
-	{
-		.name		= "Greyscale 8-bit (D3DFMT_L8)",
-		.guid		= UVC_GUID_FORMAT_D3DFMT_L8,
-		.fcc		= V4L2_PIX_FMT_GREY,
-	},
-	{
-		.name		= "IR 8-bit (L8_IR)",
-		.guid		= UVC_GUID_FORMAT_KSMEDIA_L8_IR,
-		.fcc		= V4L2_PIX_FMT_GREY,
-	},
-	{
-		.name		= "Greyscale 10-bit (Y10 )",
-		.guid		= UVC_GUID_FORMAT_Y10,
-		.fcc		= V4L2_PIX_FMT_Y10,
-	},
-	{
-		.name		= "Greyscale 12-bit (Y12 )",
-		.guid		= UVC_GUID_FORMAT_Y12,
-		.fcc		= V4L2_PIX_FMT_Y12,
-	},
-	{
-		.name		= "Greyscale 16-bit (Y16 )",
-		.guid		= UVC_GUID_FORMAT_Y16,
-		.fcc		= V4L2_PIX_FMT_Y16,
-	},
-	{
-		.name		= "BGGR Bayer (BY8 )",
-		.guid		= UVC_GUID_FORMAT_BY8,
-		.fcc		= V4L2_PIX_FMT_SBGGR8,
-	},
-	{
-		.name		= "BGGR Bayer (BA81)",
-		.guid		= UVC_GUID_FORMAT_BA81,
-		.fcc		= V4L2_PIX_FMT_SBGGR8,
-	},
-	{
-		.name		= "GBRG Bayer (GBRG)",
-		.guid		= UVC_GUID_FORMAT_GBRG,
-		.fcc		= V4L2_PIX_FMT_SGBRG8,
-	},
-	{
-		.name		= "GRBG Bayer (GRBG)",
-		.guid		= UVC_GUID_FORMAT_GRBG,
-		.fcc		= V4L2_PIX_FMT_SGRBG8,
-	},
-	{
-		.name		= "RGGB Bayer (RGGB)",
-		.guid		= UVC_GUID_FORMAT_RGGB,
-		.fcc		= V4L2_PIX_FMT_SRGGB8,
-	},
-	{
-		.name		= "RGB565",
-		.guid		= UVC_GUID_FORMAT_RGBP,
-		.fcc		= V4L2_PIX_FMT_RGB565,
-	},
-	{
-		.name		= "BGR 8:8:8 (BGR3)",
-		.guid		= UVC_GUID_FORMAT_BGR3,
-		.fcc		= V4L2_PIX_FMT_BGR24,
-	},
-	{
-		.name		= "H.264",
-		.guid		= UVC_GUID_FORMAT_H264,
-		.fcc		= V4L2_PIX_FMT_H264,
-	},
-	{
-		.name		= "Greyscale 8 L/R (Y8I)",
-		.guid		= UVC_GUID_FORMAT_Y8I,
-		.fcc		= V4L2_PIX_FMT_Y8I,
-	},
-	{
-		.name		= "Greyscale 12 L/R (Y12I)",
-		.guid		= UVC_GUID_FORMAT_Y12I,
-		.fcc		= V4L2_PIX_FMT_Y12I,
-	},
-	{
-		.name		= "Depth data 16-bit (Z16)",
-		.guid		= UVC_GUID_FORMAT_Z16,
-		.fcc		= V4L2_PIX_FMT_Z16,
-	},
-	{
-		.name		= "Bayer 10-bit (SRGGB10P)",
-		.guid		= UVC_GUID_FORMAT_RW10,
-		.fcc		= V4L2_PIX_FMT_SRGGB10P,
-	},
-	{
-		.name		= "Bayer 16-bit (SBGGR16)",
-		.guid		= UVC_GUID_FORMAT_BG16,
-		.fcc		= V4L2_PIX_FMT_SBGGR16,
-	},
-	{
-		.name		= "Bayer 16-bit (SGBRG16)",
-		.guid		= UVC_GUID_FORMAT_GB16,
-		.fcc		= V4L2_PIX_FMT_SGBRG16,
-	},
-	{
-		.name		= "Bayer 16-bit (SRGGB16)",
-		.guid		= UVC_GUID_FORMAT_RG16,
-		.fcc		= V4L2_PIX_FMT_SRGGB16,
-	},
-	{
-		.name		= "Bayer 16-bit (SGRBG16)",
-		.guid		= UVC_GUID_FORMAT_GR16,
-		.fcc		= V4L2_PIX_FMT_SGRBG16,
-	},
-	{
-		.name		= "Depth data 16-bit (Z16)",
-		.guid		= UVC_GUID_FORMAT_INVZ,
-		.fcc		= V4L2_PIX_FMT_Z16,
-	},
-	{
-		.name		= "Greyscale 10-bit (Y10 )",
-		.guid		= UVC_GUID_FORMAT_INVI,
-		.fcc		= V4L2_PIX_FMT_Y10,
-	},
-	{
-		.name		= "IR:Depth 26-bit (INZI)",
-		.guid		= UVC_GUID_FORMAT_INZI,
-		.fcc		= V4L2_PIX_FMT_INZI,
-	},
-	{
-		.name		= "4-bit Depth Confidence (Packed)",
-		.guid		= UVC_GUID_FORMAT_CNF4,
-		.fcc		= V4L2_PIX_FMT_CNF4,
-	},
-	{
-		.name		= "HEVC",
-		.guid		= UVC_GUID_FORMAT_HEVC,
-		.fcc		= V4L2_PIX_FMT_HEVC,
-	},
-};
-
-/* ------------------------------------------------------------------------
  * Utility functions
  */
 
@@ -241,19 +55,6 @@
 	return NULL;
 }
 
-static struct uvc_format_desc *uvc_format_by_guid(const u8 guid[16])
-{
-	unsigned int len = ARRAY_SIZE(uvc_fmts);
-	unsigned int i;
-
-	for (i = 0; i < len; ++i) {
-		if (memcmp(guid, uvc_fmts[i].guid, 16) == 0)
-			return &uvc_fmts[i];
-	}
-
-	return NULL;
-}
-
 static enum v4l2_colorspace uvc_colorspace(const u8 primaries)
 {
 	static const enum v4l2_colorspace colorprimaries[] = {
@@ -325,86 +126,6 @@
 	return V4L2_YCBCR_ENC_DEFAULT;  /* Reserved */
 }
 
-/* Simplify a fraction using a simple continued fraction decomposition. The
- * idea here is to convert fractions such as 333333/10000000 to 1/30 using
- * 32 bit arithmetic only. The algorithm is not perfect and relies upon two
- * arbitrary parameters to remove non-significative terms from the simple
- * continued fraction decomposition. Using 8 and 333 for n_terms and threshold
- * respectively seems to give nice results.
- */
-void uvc_simplify_fraction(u32 *numerator, u32 *denominator,
-		unsigned int n_terms, unsigned int threshold)
-{
-	u32 *an;
-	u32 x, y, r;
-	unsigned int i, n;
-
-	an = kmalloc_array(n_terms, sizeof(*an), GFP_KERNEL);
-	if (an == NULL)
-		return;
-
-	/* Convert the fraction to a simple continued fraction. See
-	 * https://mathforum.org/dr.math/faq/faq.fractions.html
-	 * Stop if the current term is bigger than or equal to the given
-	 * threshold.
-	 */
-	x = *numerator;
-	y = *denominator;
-
-	for (n = 0; n < n_terms && y != 0; ++n) {
-		an[n] = x / y;
-		if (an[n] >= threshold) {
-			if (n < 2)
-				n++;
-			break;
-		}
-
-		r = x - an[n] * y;
-		x = y;
-		y = r;
-	}
-
-	/* Expand the simple continued fraction back to an integer fraction. */
-	x = 0;
-	y = 1;
-
-	for (i = n; i > 0; --i) {
-		r = y;
-		y = an[i-1] * y + x;
-		x = r;
-	}
-
-	*numerator = y;
-	*denominator = x;
-	kfree(an);
-}
-
-/* Convert a fraction to a frame interval in 100ns multiples. The idea here is
- * to compute numerator / denominator * 10000000 using 32 bit fixed point
- * arithmetic only.
- */
-u32 uvc_fraction_to_interval(u32 numerator, u32 denominator)
-{
-	u32 multiplier;
-
-	/* Saturate the result if the operation would overflow. */
-	if (denominator == 0 ||
-	    numerator/denominator >= ((u32)-1)/10000000)
-		return (u32)-1;
-
-	/* Divide both the denominator and the multiplier by two until
-	 * numerator * multiplier doesn't overflow. If anyone knows a better
-	 * algorithm please let me know.
-	 */
-	multiplier = 10000000;
-	while (numerator > ((u32)-1)/multiplier) {
-		multiplier /= 2;
-		denominator /= 2;
-	}
-
-	return denominator ? numerator * multiplier / denominator : 0;
-}
-
 /* ------------------------------------------------------------------------
  * Terminal and unit management
  */
diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c
index ab535e5..6ce323c 100644
--- a/drivers/media/usb/uvc/uvc_v4l2.c
+++ b/drivers/media/usb/uvc/uvc_v4l2.c
@@ -382,7 +382,7 @@
 	mutex_unlock(&stream->mutex);
 
 	denominator = 10000000;
-	uvc_simplify_fraction(&numerator, &denominator, 8, 333);
+	v4l2_simplify_fraction(&numerator, &denominator, 8, 333);
 
 	memset(parm, 0, sizeof(*parm));
 	parm->type = stream->type;
@@ -423,7 +423,7 @@
 	else
 		timeperframe = parm->parm.output.timeperframe;
 
-	interval = uvc_fraction_to_interval(timeperframe.numerator,
+	interval = v4l2_fraction_to_interval(timeperframe.numerator,
 		timeperframe.denominator);
 	uvc_dbg(stream->dev, FORMAT, "Setting frame interval to %u/%u (%u)\n",
 		timeperframe.numerator, timeperframe.denominator, interval);
@@ -477,7 +477,7 @@
 	/* Return the actual frame period. */
 	timeperframe.numerator = probe.dwFrameInterval;
 	timeperframe.denominator = 10000000;
-	uvc_simplify_fraction(&timeperframe.numerator,
+	v4l2_simplify_fraction(&timeperframe.numerator,
 		&timeperframe.denominator, 8, 333);
 
 	if (parm->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) {
@@ -1269,7 +1269,7 @@
 		fival->discrete.numerator =
 			frame->dwFrameInterval[index];
 		fival->discrete.denominator = 10000000;
-		uvc_simplify_fraction(&fival->discrete.numerator,
+		v4l2_simplify_fraction(&fival->discrete.numerator,
 			&fival->discrete.denominator, 8, 333);
 	} else {
 		fival->type = V4L2_FRMIVAL_TYPE_STEPWISE;
@@ -1279,11 +1279,11 @@
 		fival->stepwise.max.denominator = 10000000;
 		fival->stepwise.step.numerator = frame->dwFrameInterval[2];
 		fival->stepwise.step.denominator = 10000000;
-		uvc_simplify_fraction(&fival->stepwise.min.numerator,
+		v4l2_simplify_fraction(&fival->stepwise.min.numerator,
 			&fival->stepwise.min.denominator, 8, 333);
-		uvc_simplify_fraction(&fival->stepwise.max.numerator,
+		v4l2_simplify_fraction(&fival->stepwise.max.numerator,
 			&fival->stepwise.max.denominator, 8, 333);
-		uvc_simplify_fraction(&fival->stepwise.step.numerator,
+		v4l2_simplify_fraction(&fival->stepwise.step.numerator,
 			&fival->stepwise.step.denominator, 8, 333);
 	}
 
diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h
index 1aa2cc9..79a3552 100644
--- a/drivers/media/usb/uvc/uvcvideo.h
+++ b/drivers/media/usb/uvc/uvcvideo.h
@@ -42,141 +42,6 @@
 #define UVC_EXT_GPIO_UNIT_ID		0x100
 
 /* ------------------------------------------------------------------------
- * GUIDs
- */
-#define UVC_GUID_UVC_CAMERA \
-	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}
-#define UVC_GUID_UVC_OUTPUT \
-	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02}
-#define UVC_GUID_UVC_MEDIA_TRANSPORT_INPUT \
-	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}
-#define UVC_GUID_UVC_PROCESSING \
-	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01}
-#define UVC_GUID_UVC_SELECTOR \
-	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02}
-#define UVC_GUID_EXT_GPIO_CONTROLLER \
-	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03}
-
-#define UVC_GUID_FORMAT_MJPEG \
-	{ 'M',  'J',  'P',  'G', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_YUY2 \
-	{ 'Y',  'U',  'Y',  '2', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_YUY2_ISIGHT \
-	{ 'Y',  'U',  'Y',  '2', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0x00, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_NV12 \
-	{ 'N',  'V',  '1',  '2', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_YV12 \
-	{ 'Y',  'V',  '1',  '2', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_I420 \
-	{ 'I',  '4',  '2',  '0', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_UYVY \
-	{ 'U',  'Y',  'V',  'Y', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_Y800 \
-	{ 'Y',  '8',  '0',  '0', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_Y8 \
-	{ 'Y',  '8',  ' ',  ' ', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_Y10 \
-	{ 'Y',  '1',  '0',  ' ', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_Y12 \
-	{ 'Y',  '1',  '2',  ' ', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_Y16 \
-	{ 'Y',  '1',  '6',  ' ', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_BY8 \
-	{ 'B',  'Y',  '8',  ' ', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_BA81 \
-	{ 'B',  'A',  '8',  '1', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_GBRG \
-	{ 'G',  'B',  'R',  'G', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_GRBG \
-	{ 'G',  'R',  'B',  'G', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_RGGB \
-	{ 'R',  'G',  'G',  'B', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_BG16 \
-	{ 'B',  'G',  '1',  '6', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_GB16 \
-	{ 'G',  'B',  '1',  '6', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_RG16 \
-	{ 'R',  'G',  '1',  '6', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_GR16 \
-	{ 'G',  'R',  '1',  '6', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_RGBP \
-	{ 'R',  'G',  'B',  'P', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_BGR3 \
-	{ 0x7d, 0xeb, 0x36, 0xe4, 0x4f, 0x52, 0xce, 0x11, \
-	 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70}
-#define UVC_GUID_FORMAT_M420 \
-	{ 'M',  '4',  '2',  '0', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-
-#define UVC_GUID_FORMAT_H264 \
-	{ 'H',  '2',  '6',  '4', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_Y8I \
-	{ 'Y',  '8',  'I',  ' ', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_Y12I \
-	{ 'Y',  '1',  '2',  'I', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_Z16 \
-	{ 'Z',  '1',  '6',  ' ', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_RW10 \
-	{ 'R',  'W',  '1',  '0', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_INVZ \
-	{ 'I',  'N',  'V',  'Z', 0x90, 0x2d, 0x58, 0x4a, \
-	 0x92, 0x0b, 0x77, 0x3f, 0x1f, 0x2c, 0x55, 0x6b}
-#define UVC_GUID_FORMAT_INZI \
-	{ 'I',  'N',  'Z',  'I', 0x66, 0x1a, 0x42, 0xa2, \
-	 0x90, 0x65, 0xd0, 0x18, 0x14, 0xa8, 0xef, 0x8a}
-#define UVC_GUID_FORMAT_INVI \
-	{ 'I',  'N',  'V',  'I', 0xdb, 0x57, 0x49, 0x5e, \
-	 0x8e, 0x3f, 0xf4, 0x79, 0x53, 0x2b, 0x94, 0x6f}
-#define UVC_GUID_FORMAT_CNF4 \
-	{ 'C',  ' ',  ' ',  ' ', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-
-#define UVC_GUID_FORMAT_D3DFMT_L8 \
-	{0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-#define UVC_GUID_FORMAT_KSMEDIA_L8_IR \
-	{0x32, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-
-#define UVC_GUID_FORMAT_HEVC \
-	{ 'H',  'E',  'V',  'C', 0x00, 0x00, 0x10, 0x00, \
-	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
-
-
-/* ------------------------------------------------------------------------
  * Driver specific constants.
  */
 
@@ -281,13 +146,8 @@
 	struct uvc_fh *handle;	/* File handle that last changed the control. */
 };
 
-struct uvc_format_desc {
-	char *name;
-	u8 guid[16];
-	u32 fcc;
-};
-
-/* The term 'entity' refers to both UVC units and UVC terminals.
+/*
+ * The term 'entity' refers to both UVC units and UVC terminals.
  *
  * The type field is either the terminal type (wTerminalType in the terminal
  * descriptor), or the unit type (bDescriptorSubtype in the unit descriptor).
@@ -909,9 +769,6 @@
 		      struct uvc_xu_control_query *xqry);
 
 /* Utility functions */
-void uvc_simplify_fraction(u32 *numerator, u32 *denominator,
-			   unsigned int n_terms, unsigned int threshold);
-u32 uvc_fraction_to_interval(u32 numerator, u32 denominator);
 struct usb_host_endpoint *uvc_find_endpoint(struct usb_host_interface *alts,
 					    u8 epaddr);
 
diff --git a/drivers/media/v4l2-core/v4l2-common.c b/drivers/media/v4l2-core/v4l2-common.c
index 04af032..00c99d3 100644
--- a/drivers/media/v4l2-core/v4l2-common.c
+++ b/drivers/media/v4l2-core/v4l2-common.c
@@ -479,3 +479,89 @@
 	return freq > 0 ? freq : -EINVAL;
 }
 EXPORT_SYMBOL_GPL(v4l2_get_link_freq);
+
+/*
+ * Simplify a fraction using a simple continued fraction decomposition. The
+ * idea here is to convert fractions such as 333333/10000000 to 1/30 using
+ * 32 bit arithmetic only. The algorithm is not perfect and relies upon two
+ * arbitrary parameters to remove non-significative terms from the simple
+ * continued fraction decomposition. Using 8 and 333 for n_terms and threshold
+ * respectively seems to give nice results.
+ */
+void v4l2_simplify_fraction(u32 *numerator, u32 *denominator,
+		unsigned int n_terms, unsigned int threshold)
+{
+	u32 *an;
+	u32 x, y, r;
+	unsigned int i, n;
+
+	an = kmalloc_array(n_terms, sizeof(*an), GFP_KERNEL);
+	if (an == NULL)
+		return;
+
+	/*
+	 * Convert the fraction to a simple continued fraction. See
+	 * https://en.wikipedia.org/wiki/Continued_fraction
+	 * Stop if the current term is bigger than or equal to the given
+	 * threshold.
+	 */
+	x = *numerator;
+	y = *denominator;
+
+	for (n = 0; n < n_terms && y != 0; ++n) {
+		an[n] = x / y;
+		if (an[n] >= threshold) {
+			if (n < 2)
+				n++;
+			break;
+		}
+
+		r = x - an[n] * y;
+		x = y;
+		y = r;
+	}
+
+	/* Expand the simple continued fraction back to an integer fraction. */
+	x = 0;
+	y = 1;
+
+	for (i = n; i > 0; --i) {
+		r = y;
+		y = an[i-1] * y + x;
+		x = r;
+	}
+
+	*numerator = y;
+	*denominator = x;
+	kfree(an);
+}
+EXPORT_SYMBOL_GPL(v4l2_simplify_fraction);
+
+/*
+ * Convert a fraction to a frame interval in 100ns multiples. The idea here is
+ * to compute numerator / denominator * 10000000 using 32 bit fixed point
+ * arithmetic only.
+ */
+u32 v4l2_fraction_to_interval(u32 numerator, u32 denominator)
+{
+	u32 multiplier;
+
+	/* Saturate the result if the operation would overflow. */
+	if (denominator == 0 ||
+	    numerator/denominator >= ((u32)-1)/10000000)
+		return (u32)-1;
+
+	/*
+	 * Divide both the denominator and the multiplier by two until
+	 * numerator * multiplier doesn't overflow. If anyone knows a better
+	 * algorithm please let me know.
+	 */
+	multiplier = 10000000;
+	while (numerator > ((u32)-1)/multiplier) {
+		multiplier /= 2;
+		denominator /= 2;
+	}
+
+	return denominator ? numerator * multiplier / denominator : 0;
+}
+EXPORT_SYMBOL_GPL(v4l2_fraction_to_interval);
diff --git a/drivers/media/v4l2-core/v4l2-ctrls-defs.c b/drivers/media/v4l2-core/v4l2-ctrls-defs.c
index 421300e..265bdc4 100644
--- a/drivers/media/v4l2-core/v4l2-ctrls-defs.c
+++ b/drivers/media/v4l2-core/v4l2-ctrls-defs.c
@@ -785,6 +785,7 @@
 	case V4L2_CID_MIN_BUFFERS_FOR_OUTPUT:	return "Min Number of Output Buffers";
 	case V4L2_CID_ALPHA_COMPONENT:		return "Alpha Component";
 	case V4L2_CID_COLORFX_CBCR:		return "Color Effects, CbCr";
+	case V4L2_CID_COLORFX_RGB:              return "Color Effects, RGB";
 
 	/*
 	 * Codec controls
@@ -1392,11 +1393,12 @@
 		*min = *max = *step = *def = 0;
 		break;
 	case V4L2_CID_BG_COLOR:
+	case V4L2_CID_COLORFX_RGB:
 		*type = V4L2_CTRL_TYPE_INTEGER;
 		*step = 1;
 		*min = 0;
-		/* Max is calculated as RGB888 that is 2^24 */
-		*max = 0xFFFFFF;
+		/* Max is calculated as RGB888 that is 2^24 - 1 */
+		*max = 0xffffff;
 		break;
 	case V4L2_CID_FLASH_FAULT:
 	case V4L2_CID_JPEG_ACTIVE_MARKER:
diff --git a/drivers/mfd/syscon.c b/drivers/mfd/syscon.c
index 191fdb8..8882c57 100644
--- a/drivers/mfd/syscon.c
+++ b/drivers/mfd/syscon.c
@@ -22,6 +22,7 @@
 #include <linux/regmap.h>
 #include <linux/mfd/syscon.h>
 #include <linux/slab.h>
+#include <trace/hooks/regmap.h>
 
 static struct platform_driver syscon_driver;
 
@@ -129,6 +130,7 @@
 		}
 	}
 
+	trace_android_vh_regmap_update(&syscon_config, regmap);
 	syscon->regmap = regmap;
 	syscon->np = np;
 
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index 0f5a49f..7f62b17 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -460,6 +460,21 @@
 	tristate
 	default MISC_RTSX_PCI || MISC_RTSX_USB
 
+config UID_SYS_STATS
+	bool "Per-UID statistics"
+	depends on PROFILING && TASK_XACCT && TASK_IO_ACCOUNTING
+	help
+	  Per UID based cpu time statistics exported to /proc/uid_cputime
+	  Per UID based io statistics exported to /proc/uid_io
+	  Per UID based procstat control in /proc/uid_procstat
+
+config UID_SYS_STATS_DEBUG
+	bool "Per-TASK statistics"
+	depends on UID_SYS_STATS
+	default n
+	help
+	  Per TASK based io statistics exported to /proc/uid_io
+
 config HISI_HIKEY_USB
 	tristate "USB GPIO Hub on HiSilicon Hikey 960/970 Platform"
 	depends on (OF && GPIOLIB) || COMPILE_TEST
@@ -470,6 +485,18 @@
 	  switching between the dual-role USB-C port and the USB-A host ports
 	  using only one USB controller.
 
+config OPEN_DICE
+	tristate "Open Profile for DICE driver"
+	depends on OF_RESERVED_MEM
+	help
+	  This driver exposes a DICE reserved memory region to userspace via
+	  a character device. The memory region contains Compound Device
+	  Identifiers (CDIs) generated by firmware as an output of DICE
+	  measured boot flow. Userspace can use CDIs for remote attestation
+	  and sealing.
+
+	  If unsure, say N.
+
 source "drivers/misc/c2port/Kconfig"
 source "drivers/misc/eeprom/Kconfig"
 source "drivers/misc/cb710/Kconfig"
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index a086197..a109b9c 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -59,3 +59,5 @@
 obj-$(CONFIG_XILINX_SDFEC)	+= xilinx_sdfec.o
 obj-$(CONFIG_HISI_HIKEY_USB)	+= hisi_hikey_usb.o
 obj-$(CONFIG_HI6421V600_IRQ)	+= hi6421v600-irq.o
+obj-$(CONFIG_UID_SYS_STATS)	+= uid_sys_stats.o
+obj-$(CONFIG_OPEN_DICE)		+= open-dice.o
diff --git a/drivers/misc/open-dice.c b/drivers/misc/open-dice.c
new file mode 100644
index 0000000..c61be34
--- /dev/null
+++ b/drivers/misc/open-dice.c
@@ -0,0 +1,208 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (C) 2021 - Google LLC
+ * Author: David Brazdil <dbrazdil@google.com>
+ *
+ * Driver for Open Profile for DICE.
+ *
+ * This driver takes ownership of a reserved memory region containing data
+ * generated by the Open Profile for DICE measured boot protocol. The memory
+ * contents are not interpreted by the kernel but can be mapped into a userspace
+ * process via a misc device. Userspace can also request a wipe of the memory.
+ *
+ * Userspace can access the data with (w/o error handling):
+ *
+ *     fd = open("/dev/open-dice0", O_RDWR);
+ *     read(fd, &size, sizeof(unsigned long));
+ *     data = mmap(NULL, size, PROT_READ, MAP_PRIVATE, fd, 0);
+ *     write(fd, NULL, 0); // wipe
+ *     close(fd);
+ */
+
+#include <linux/io.h>
+#include <linux/miscdevice.h>
+#include <linux/mm.h>
+#include <linux/module.h>
+#include <linux/of_reserved_mem.h>
+#include <linux/platform_device.h>
+
+#define DRIVER_NAME "open-dice"
+
+struct open_dice_drvdata {
+	struct mutex lock;
+	char name[16];
+	struct reserved_mem *rmem;
+	struct miscdevice misc;
+};
+
+static inline struct open_dice_drvdata *to_open_dice_drvdata(struct file *filp)
+{
+	return container_of(filp->private_data, struct open_dice_drvdata, misc);
+}
+
+static int open_dice_wipe(struct open_dice_drvdata *drvdata)
+{
+	void *kaddr;
+
+	mutex_lock(&drvdata->lock);
+	kaddr = devm_memremap(drvdata->misc.this_device, drvdata->rmem->base,
+			      drvdata->rmem->size, MEMREMAP_WC);
+	if (IS_ERR(kaddr)) {
+		mutex_unlock(&drvdata->lock);
+		return PTR_ERR(kaddr);
+	}
+
+	memset(kaddr, 0, drvdata->rmem->size);
+	devm_memunmap(drvdata->misc.this_device, kaddr);
+	mutex_unlock(&drvdata->lock);
+	return 0;
+}
+
+/*
+ * Copies the size of the reserved memory region to the user-provided buffer.
+ */
+static ssize_t open_dice_read(struct file *filp, char __user *ptr, size_t len,
+			      loff_t *off)
+{
+	unsigned long val = to_open_dice_drvdata(filp)->rmem->size;
+
+	return simple_read_from_buffer(ptr, len, off, &val, sizeof(val));
+}
+
+/*
+ * Triggers a wipe of the reserved memory region. The user-provided pointer
+ * is never dereferenced.
+ */
+static ssize_t open_dice_write(struct file *filp, const char __user *ptr,
+			       size_t len, loff_t *off)
+{
+	if (open_dice_wipe(to_open_dice_drvdata(filp)))
+		return -EIO;
+
+	/* Consume the input buffer. */
+	return len;
+}
+
+/*
+ * Creates a mapping of the reserved memory region in user address space.
+ */
+static int open_dice_mmap(struct file *filp, struct vm_area_struct *vma)
+{
+	struct open_dice_drvdata *drvdata = to_open_dice_drvdata(filp);
+
+	/* Do not allow userspace to modify the underlying data. */
+	if ((vma->vm_flags & VM_WRITE) && (vma->vm_flags & VM_SHARED))
+		return -EPERM;
+
+	/* Ensure userspace cannot acquire VM_WRITE + VM_SHARED later. */
+	if (vma->vm_flags & VM_WRITE)
+		vma->vm_flags &= ~VM_MAYSHARE;
+	else if (vma->vm_flags & VM_SHARED)
+		vma->vm_flags &= ~VM_MAYWRITE;
+
+	/* Create write-combine mapping so all clients observe a wipe. */
+	vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
+	vma->vm_flags |= VM_DONTCOPY | VM_DONTDUMP;
+	return vm_iomap_memory(vma, drvdata->rmem->base, drvdata->rmem->size);
+}
+
+static const struct file_operations open_dice_fops = {
+	.owner = THIS_MODULE,
+	.read = open_dice_read,
+	.write = open_dice_write,
+	.mmap = open_dice_mmap,
+};
+
+static int __init open_dice_probe(struct platform_device *pdev)
+{
+	static unsigned int dev_idx;
+	struct device *dev = &pdev->dev;
+	struct reserved_mem *rmem;
+	struct open_dice_drvdata *drvdata;
+	int ret;
+
+	rmem = of_reserved_mem_lookup(dev->of_node);
+	if (!rmem) {
+		dev_err(dev, "failed to lookup reserved memory\n");
+		return -EINVAL;
+	}
+
+	if (!rmem->size || (rmem->size > ULONG_MAX)) {
+		dev_err(dev, "invalid memory region size\n");
+		return -EINVAL;
+	}
+
+	if (!PAGE_ALIGNED(rmem->base) || !PAGE_ALIGNED(rmem->size)) {
+		dev_err(dev, "memory region must be page-aligned\n");
+		return -EINVAL;
+	}
+
+	drvdata = devm_kmalloc(dev, sizeof(*drvdata), GFP_KERNEL);
+	if (!drvdata)
+		return -ENOMEM;
+
+	*drvdata = (struct open_dice_drvdata){
+		.lock = __MUTEX_INITIALIZER(drvdata->lock),
+		.rmem = rmem,
+		.misc = (struct miscdevice){
+			.parent	= dev,
+			.name	= drvdata->name,
+			.minor	= MISC_DYNAMIC_MINOR,
+			.fops	= &open_dice_fops,
+			.mode	= 0600,
+		},
+	};
+
+	/* Index overflow check not needed, misc_register() will fail. */
+	snprintf(drvdata->name, sizeof(drvdata->name), DRIVER_NAME"%u", dev_idx++);
+
+	ret = misc_register(&drvdata->misc);
+	if (ret) {
+		dev_err(dev, "failed to register misc device '%s': %d\n",
+			drvdata->name, ret);
+		return ret;
+	}
+
+	platform_set_drvdata(pdev, drvdata);
+	return 0;
+}
+
+static int open_dice_remove(struct platform_device *pdev)
+{
+	struct open_dice_drvdata *drvdata = platform_get_drvdata(pdev);
+
+	misc_deregister(&drvdata->misc);
+	return 0;
+}
+
+static const struct of_device_id open_dice_of_match[] = {
+	{ .compatible = "google,open-dice" },
+	{},
+};
+
+static struct platform_driver open_dice_driver = {
+	.remove = open_dice_remove,
+	.driver = {
+		.name = DRIVER_NAME,
+		.of_match_table = open_dice_of_match,
+	},
+};
+
+static int __init open_dice_init(void)
+{
+	int ret = platform_driver_probe(&open_dice_driver, open_dice_probe);
+
+	/* DICE regions are optional. Succeed even with zero instances. */
+	return (ret == -ENODEV) ? 0 : ret;
+}
+
+static void __exit open_dice_exit(void)
+{
+	platform_driver_unregister(&open_dice_driver);
+}
+
+module_init(open_dice_init);
+module_exit(open_dice_exit);
+
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("David Brazdil <dbrazdil@google.com>");
diff --git a/drivers/misc/uid_sys_stats.c b/drivers/misc/uid_sys_stats.c
new file mode 100644
index 0000000..985e7b0
--- /dev/null
+++ b/drivers/misc/uid_sys_stats.c
@@ -0,0 +1,774 @@
+/* drivers/misc/uid_sys_stats.c
+ *
+ * Copyright (C) 2014 - 2015 Google, Inc.
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <linux/atomic.h>
+#include <linux/err.h>
+#include <linux/hashtable.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/list.h>
+#include <linux/mm.h>
+#include <linux/proc_fs.h>
+#include <linux/profile.h>
+#include <linux/rtmutex.h>
+#include <linux/sched/cputime.h>
+#include <linux/seq_file.h>
+#include <linux/slab.h>
+#include <linux/uaccess.h>
+
+
+#define UID_HASH_BITS	10
+DECLARE_HASHTABLE(hash_table, UID_HASH_BITS);
+
+static DEFINE_RT_MUTEX(uid_lock);
+static struct proc_dir_entry *cpu_parent;
+static struct proc_dir_entry *io_parent;
+static struct proc_dir_entry *proc_parent;
+
+struct io_stats {
+	u64 read_bytes;
+	u64 write_bytes;
+	u64 rchar;
+	u64 wchar;
+	u64 fsync;
+};
+
+#define UID_STATE_FOREGROUND	0
+#define UID_STATE_BACKGROUND	1
+#define UID_STATE_BUCKET_SIZE	2
+
+#define UID_STATE_TOTAL_CURR	2
+#define UID_STATE_TOTAL_LAST	3
+#define UID_STATE_DEAD_TASKS	4
+#define UID_STATE_SIZE		5
+
+#define MAX_TASK_COMM_LEN 256
+
+struct task_entry {
+	char comm[MAX_TASK_COMM_LEN];
+	pid_t pid;
+	struct io_stats io[UID_STATE_SIZE];
+	struct hlist_node hash;
+};
+
+struct uid_entry {
+	uid_t uid;
+	u64 utime;
+	u64 stime;
+	u64 active_utime;
+	u64 active_stime;
+	int state;
+	struct io_stats io[UID_STATE_SIZE];
+	struct hlist_node hash;
+#ifdef CONFIG_UID_SYS_STATS_DEBUG
+	DECLARE_HASHTABLE(task_entries, UID_HASH_BITS);
+#endif
+};
+
+static u64 compute_write_bytes(struct task_io_accounting *ioac)
+{
+	if (ioac->write_bytes <= ioac->cancelled_write_bytes)
+		return 0;
+
+	return ioac->write_bytes - ioac->cancelled_write_bytes;
+}
+
+static void compute_io_bucket_stats(struct io_stats *io_bucket,
+					struct io_stats *io_curr,
+					struct io_stats *io_last,
+					struct io_stats *io_dead)
+{
+	/* tasks could switch to another uid group, but its io_last in the
+	 * previous uid group could still be positive.
+	 * therefore before each update, do an overflow check first
+	 */
+	int64_t delta;
+
+	delta = io_curr->read_bytes + io_dead->read_bytes -
+		io_last->read_bytes;
+	io_bucket->read_bytes += delta > 0 ? delta : 0;
+	delta = io_curr->write_bytes + io_dead->write_bytes -
+		io_last->write_bytes;
+	io_bucket->write_bytes += delta > 0 ? delta : 0;
+	delta = io_curr->rchar + io_dead->rchar - io_last->rchar;
+	io_bucket->rchar += delta > 0 ? delta : 0;
+	delta = io_curr->wchar + io_dead->wchar - io_last->wchar;
+	io_bucket->wchar += delta > 0 ? delta : 0;
+	delta = io_curr->fsync + io_dead->fsync - io_last->fsync;
+	io_bucket->fsync += delta > 0 ? delta : 0;
+
+	io_last->read_bytes = io_curr->read_bytes;
+	io_last->write_bytes = io_curr->write_bytes;
+	io_last->rchar = io_curr->rchar;
+	io_last->wchar = io_curr->wchar;
+	io_last->fsync = io_curr->fsync;
+
+	memset(io_dead, 0, sizeof(struct io_stats));
+}
+
+#ifdef CONFIG_UID_SYS_STATS_DEBUG
+static void get_full_task_comm(struct task_entry *task_entry,
+		struct task_struct *task)
+{
+	int i = 0, offset = 0, len = 0;
+	/* save one byte for terminating null character */
+	int unused_len = MAX_TASK_COMM_LEN - TASK_COMM_LEN - 1;
+	char buf[MAX_TASK_COMM_LEN - TASK_COMM_LEN - 1];
+	struct mm_struct *mm = task->mm;
+
+	/* fill the first TASK_COMM_LEN bytes with thread name */
+	__get_task_comm(task_entry->comm, TASK_COMM_LEN, task);
+	i = strlen(task_entry->comm);
+	while (i < TASK_COMM_LEN)
+		task_entry->comm[i++] = ' ';
+
+	/* next the executable file name */
+	if (mm) {
+		mmap_write_lock(mm);
+		if (mm->exe_file) {
+			char *pathname = d_path(&mm->exe_file->f_path, buf,
+					unused_len);
+
+			if (!IS_ERR(pathname)) {
+				len = strlcpy(task_entry->comm + i, pathname,
+						unused_len);
+				i += len;
+				task_entry->comm[i++] = ' ';
+				unused_len--;
+			}
+		}
+		mmap_write_unlock(mm);
+	}
+	unused_len -= len;
+
+	/* fill the rest with command line argument
+	 * replace each null or new line character
+	 * between args in argv with whitespace */
+	len = get_cmdline(task, buf, unused_len);
+	while (offset < len) {
+		if (buf[offset] != '\0' && buf[offset] != '\n')
+			task_entry->comm[i++] = buf[offset];
+		else
+			task_entry->comm[i++] = ' ';
+		offset++;
+	}
+
+	/* get rid of trailing whitespaces in case when arg is memset to
+	 * zero before being reset in userspace
+	 */
+	while (task_entry->comm[i-1] == ' ')
+		i--;
+	task_entry->comm[i] = '\0';
+}
+
+static struct task_entry *find_task_entry(struct uid_entry *uid_entry,
+		struct task_struct *task)
+{
+	struct task_entry *task_entry;
+
+	hash_for_each_possible(uid_entry->task_entries, task_entry, hash,
+			task->pid) {
+		if (task->pid == task_entry->pid) {
+			/* if thread name changed, update the entire command */
+			int len = strnchr(task_entry->comm, ' ', TASK_COMM_LEN)
+				- task_entry->comm;
+
+			if (strncmp(task_entry->comm, task->comm, len))
+				get_full_task_comm(task_entry, task);
+			return task_entry;
+		}
+	}
+	return NULL;
+}
+
+static struct task_entry *find_or_register_task(struct uid_entry *uid_entry,
+		struct task_struct *task)
+{
+	struct task_entry *task_entry;
+	pid_t pid = task->pid;
+
+	task_entry = find_task_entry(uid_entry, task);
+	if (task_entry)
+		return task_entry;
+
+	task_entry = kzalloc(sizeof(struct task_entry), GFP_ATOMIC);
+	if (!task_entry)
+		return NULL;
+
+	get_full_task_comm(task_entry, task);
+
+	task_entry->pid = pid;
+	hash_add(uid_entry->task_entries, &task_entry->hash, (unsigned int)pid);
+
+	return task_entry;
+}
+
+static void remove_uid_tasks(struct uid_entry *uid_entry)
+{
+	struct task_entry *task_entry;
+	unsigned long bkt_task;
+	struct hlist_node *tmp_task;
+
+	hash_for_each_safe(uid_entry->task_entries, bkt_task,
+			tmp_task, task_entry, hash) {
+		hash_del(&task_entry->hash);
+		kfree(task_entry);
+	}
+}
+
+static void set_io_uid_tasks_zero(struct uid_entry *uid_entry)
+{
+	struct task_entry *task_entry;
+	unsigned long bkt_task;
+
+	hash_for_each(uid_entry->task_entries, bkt_task, task_entry, hash) {
+		memset(&task_entry->io[UID_STATE_TOTAL_CURR], 0,
+			sizeof(struct io_stats));
+	}
+}
+
+static void add_uid_tasks_io_stats(struct task_entry *task_entry,
+				   struct task_io_accounting *ioac, int slot)
+{
+	struct io_stats *task_io_slot = &task_entry->io[slot];
+
+	task_io_slot->read_bytes += ioac->read_bytes;
+	task_io_slot->write_bytes += compute_write_bytes(ioac);
+	task_io_slot->rchar += ioac->rchar;
+	task_io_slot->wchar += ioac->wchar;
+	task_io_slot->fsync += ioac->syscfs;
+}
+
+static void compute_io_uid_tasks(struct uid_entry *uid_entry)
+{
+	struct task_entry *task_entry;
+	unsigned long bkt_task;
+
+	hash_for_each(uid_entry->task_entries, bkt_task, task_entry, hash) {
+		compute_io_bucket_stats(&task_entry->io[uid_entry->state],
+					&task_entry->io[UID_STATE_TOTAL_CURR],
+					&task_entry->io[UID_STATE_TOTAL_LAST],
+					&task_entry->io[UID_STATE_DEAD_TASKS]);
+	}
+}
+
+static void show_io_uid_tasks(struct seq_file *m, struct uid_entry *uid_entry)
+{
+	struct task_entry *task_entry;
+	unsigned long bkt_task;
+
+	hash_for_each(uid_entry->task_entries, bkt_task, task_entry, hash) {
+		/* Separated by comma because space exists in task comm */
+		seq_printf(m, "task,%s,%lu,%llu,%llu,%llu,%llu,%llu,%llu,%llu,%llu,%llu,%llu\n",
+				task_entry->comm,
+				(unsigned long)task_entry->pid,
+				task_entry->io[UID_STATE_FOREGROUND].rchar,
+				task_entry->io[UID_STATE_FOREGROUND].wchar,
+				task_entry->io[UID_STATE_FOREGROUND].read_bytes,
+				task_entry->io[UID_STATE_FOREGROUND].write_bytes,
+				task_entry->io[UID_STATE_BACKGROUND].rchar,
+				task_entry->io[UID_STATE_BACKGROUND].wchar,
+				task_entry->io[UID_STATE_BACKGROUND].read_bytes,
+				task_entry->io[UID_STATE_BACKGROUND].write_bytes,
+				task_entry->io[UID_STATE_FOREGROUND].fsync,
+				task_entry->io[UID_STATE_BACKGROUND].fsync);
+	}
+}
+#else
+static void remove_uid_tasks(struct uid_entry *uid_entry) {};
+static void set_io_uid_tasks_zero(struct uid_entry *uid_entry) {};
+static void compute_io_uid_tasks(struct uid_entry *uid_entry) {};
+static void show_io_uid_tasks(struct seq_file *m,
+		struct uid_entry *uid_entry) {}
+#endif
+
+static struct uid_entry *find_uid_entry(uid_t uid)
+{
+	struct uid_entry *uid_entry;
+	hash_for_each_possible(hash_table, uid_entry, hash, uid) {
+		if (uid_entry->uid == uid)
+			return uid_entry;
+	}
+	return NULL;
+}
+
+static struct uid_entry *find_or_register_uid(uid_t uid)
+{
+	struct uid_entry *uid_entry;
+
+	uid_entry = find_uid_entry(uid);
+	if (uid_entry)
+		return uid_entry;
+
+	uid_entry = kzalloc(sizeof(struct uid_entry), GFP_ATOMIC);
+	if (!uid_entry)
+		return NULL;
+
+	uid_entry->uid = uid;
+#ifdef CONFIG_UID_SYS_STATS_DEBUG
+	hash_init(uid_entry->task_entries);
+#endif
+	hash_add(hash_table, &uid_entry->hash, uid);
+
+	return uid_entry;
+}
+
+static int uid_cputime_show(struct seq_file *m, void *v)
+{
+	struct uid_entry *uid_entry = NULL;
+	struct task_struct *task, *temp;
+	struct user_namespace *user_ns = current_user_ns();
+	u64 utime;
+	u64 stime;
+	unsigned long bkt;
+	uid_t uid;
+
+	rt_mutex_lock(&uid_lock);
+
+	hash_for_each(hash_table, bkt, uid_entry, hash) {
+		uid_entry->active_stime = 0;
+		uid_entry->active_utime = 0;
+	}
+
+	rcu_read_lock();
+	do_each_thread(temp, task) {
+		uid = from_kuid_munged(user_ns, task_uid(task));
+		if (!uid_entry || uid_entry->uid != uid)
+			uid_entry = find_or_register_uid(uid);
+		if (!uid_entry) {
+			rcu_read_unlock();
+			rt_mutex_unlock(&uid_lock);
+			pr_err("%s: failed to find the uid_entry for uid %d\n",
+				__func__, uid);
+			return -ENOMEM;
+		}
+		/* avoid double accounting of dying threads */
+		if (!(task->flags & PF_EXITING)) {
+			task_cputime_adjusted(task, &utime, &stime);
+			uid_entry->active_utime += utime;
+			uid_entry->active_stime += stime;
+		}
+	} while_each_thread(temp, task);
+	rcu_read_unlock();
+
+	hash_for_each(hash_table, bkt, uid_entry, hash) {
+		u64 total_utime = uid_entry->utime +
+							uid_entry->active_utime;
+		u64 total_stime = uid_entry->stime +
+							uid_entry->active_stime;
+		seq_printf(m, "%d: %llu %llu\n", uid_entry->uid,
+			ktime_to_us(total_utime), ktime_to_us(total_stime));
+	}
+
+	rt_mutex_unlock(&uid_lock);
+	return 0;
+}
+
+static int uid_cputime_open(struct inode *inode, struct file *file)
+{
+	return single_open(file, uid_cputime_show, PDE_DATA(inode));
+}
+
+static const struct proc_ops uid_cputime_fops = {
+	.proc_open	= uid_cputime_open,
+	.proc_read	= seq_read,
+	.proc_lseek	= seq_lseek,
+	.proc_release	= single_release,
+};
+
+static int uid_remove_open(struct inode *inode, struct file *file)
+{
+	return single_open(file, NULL, NULL);
+}
+
+static ssize_t uid_remove_write(struct file *file,
+			const char __user *buffer, size_t count, loff_t *ppos)
+{
+	struct uid_entry *uid_entry;
+	struct hlist_node *tmp;
+	char uids[128];
+	char *start_uid, *end_uid = NULL;
+	long int uid_start = 0, uid_end = 0;
+
+	if (count >= sizeof(uids))
+		count = sizeof(uids) - 1;
+
+	if (copy_from_user(uids, buffer, count))
+		return -EFAULT;
+
+	uids[count] = '\0';
+	end_uid = uids;
+	start_uid = strsep(&end_uid, "-");
+
+	if (!start_uid || !end_uid)
+		return -EINVAL;
+
+	if (kstrtol(start_uid, 10, &uid_start) != 0 ||
+		kstrtol(end_uid, 10, &uid_end) != 0) {
+		return -EINVAL;
+	}
+
+	rt_mutex_lock(&uid_lock);
+
+	for (; uid_start <= uid_end; uid_start++) {
+		hash_for_each_possible_safe(hash_table, uid_entry, tmp,
+							hash, (uid_t)uid_start) {
+			if (uid_start == uid_entry->uid) {
+				remove_uid_tasks(uid_entry);
+				hash_del(&uid_entry->hash);
+				kfree(uid_entry);
+			}
+		}
+	}
+
+	rt_mutex_unlock(&uid_lock);
+	return count;
+}
+
+static const struct proc_ops uid_remove_fops = {
+	.proc_open	= uid_remove_open,
+	.proc_release	= single_release,
+	.proc_write	= uid_remove_write,
+};
+
+static void __add_uid_io_stats(struct uid_entry *uid_entry,
+			struct task_io_accounting *ioac, int slot)
+{
+	struct io_stats *io_slot = &uid_entry->io[slot];
+
+	io_slot->read_bytes += ioac->read_bytes;
+	io_slot->write_bytes += compute_write_bytes(ioac);
+	io_slot->rchar += ioac->rchar;
+	io_slot->wchar += ioac->wchar;
+	io_slot->fsync += ioac->syscfs;
+}
+
+static void add_uid_io_stats(struct uid_entry *uid_entry,
+			struct task_struct *task, int slot)
+{
+	struct task_entry *task_entry __maybe_unused;
+
+	/* avoid double accounting of dying threads */
+	if (slot != UID_STATE_DEAD_TASKS && (task->flags & PF_EXITING))
+		return;
+
+#ifdef CONFIG_UID_SYS_STATS_DEBUG
+	task_entry = find_or_register_task(uid_entry, task);
+	add_uid_tasks_io_stats(task_entry, &task->ioac, slot);
+#endif
+	__add_uid_io_stats(uid_entry, &task->ioac, slot);
+}
+
+static void update_io_stats_all_locked(void)
+{
+	struct uid_entry *uid_entry = NULL;
+	struct task_struct *task, *temp;
+	struct user_namespace *user_ns = current_user_ns();
+	unsigned long bkt;
+	uid_t uid;
+
+	hash_for_each(hash_table, bkt, uid_entry, hash) {
+		memset(&uid_entry->io[UID_STATE_TOTAL_CURR], 0,
+			sizeof(struct io_stats));
+		set_io_uid_tasks_zero(uid_entry);
+	}
+
+	rcu_read_lock();
+	do_each_thread(temp, task) {
+		uid = from_kuid_munged(user_ns, task_uid(task));
+		if (!uid_entry || uid_entry->uid != uid)
+			uid_entry = find_or_register_uid(uid);
+		if (!uid_entry)
+			continue;
+		add_uid_io_stats(uid_entry, task, UID_STATE_TOTAL_CURR);
+	} while_each_thread(temp, task);
+	rcu_read_unlock();
+
+	hash_for_each(hash_table, bkt, uid_entry, hash) {
+		compute_io_bucket_stats(&uid_entry->io[uid_entry->state],
+					&uid_entry->io[UID_STATE_TOTAL_CURR],
+					&uid_entry->io[UID_STATE_TOTAL_LAST],
+					&uid_entry->io[UID_STATE_DEAD_TASKS]);
+		compute_io_uid_tasks(uid_entry);
+	}
+}
+
+static void update_io_stats_uid_locked(struct uid_entry *uid_entry)
+{
+	struct task_struct *task, *temp;
+	struct user_namespace *user_ns = current_user_ns();
+
+	memset(&uid_entry->io[UID_STATE_TOTAL_CURR], 0,
+		sizeof(struct io_stats));
+	set_io_uid_tasks_zero(uid_entry);
+
+	rcu_read_lock();
+	do_each_thread(temp, task) {
+		if (from_kuid_munged(user_ns, task_uid(task)) != uid_entry->uid)
+			continue;
+		add_uid_io_stats(uid_entry, task, UID_STATE_TOTAL_CURR);
+	} while_each_thread(temp, task);
+	rcu_read_unlock();
+
+	compute_io_bucket_stats(&uid_entry->io[uid_entry->state],
+				&uid_entry->io[UID_STATE_TOTAL_CURR],
+				&uid_entry->io[UID_STATE_TOTAL_LAST],
+				&uid_entry->io[UID_STATE_DEAD_TASKS]);
+	compute_io_uid_tasks(uid_entry);
+}
+
+
+static int uid_io_show(struct seq_file *m, void *v)
+{
+	struct uid_entry *uid_entry;
+	unsigned long bkt;
+
+	rt_mutex_lock(&uid_lock);
+
+	update_io_stats_all_locked();
+
+	hash_for_each(hash_table, bkt, uid_entry, hash) {
+		seq_printf(m, "%d %llu %llu %llu %llu %llu %llu %llu %llu %llu %llu\n",
+				uid_entry->uid,
+				uid_entry->io[UID_STATE_FOREGROUND].rchar,
+				uid_entry->io[UID_STATE_FOREGROUND].wchar,
+				uid_entry->io[UID_STATE_FOREGROUND].read_bytes,
+				uid_entry->io[UID_STATE_FOREGROUND].write_bytes,
+				uid_entry->io[UID_STATE_BACKGROUND].rchar,
+				uid_entry->io[UID_STATE_BACKGROUND].wchar,
+				uid_entry->io[UID_STATE_BACKGROUND].read_bytes,
+				uid_entry->io[UID_STATE_BACKGROUND].write_bytes,
+				uid_entry->io[UID_STATE_FOREGROUND].fsync,
+				uid_entry->io[UID_STATE_BACKGROUND].fsync);
+
+		show_io_uid_tasks(m, uid_entry);
+	}
+
+	rt_mutex_unlock(&uid_lock);
+	return 0;
+}
+
+static int uid_io_open(struct inode *inode, struct file *file)
+{
+	return single_open(file, uid_io_show, PDE_DATA(inode));
+}
+
+static const struct proc_ops uid_io_fops = {
+	.proc_open	= uid_io_open,
+	.proc_read	= seq_read,
+	.proc_lseek	= seq_lseek,
+	.proc_release	= single_release,
+};
+
+static int uid_procstat_open(struct inode *inode, struct file *file)
+{
+	return single_open(file, NULL, NULL);
+}
+
+static ssize_t uid_procstat_write(struct file *file,
+			const char __user *buffer, size_t count, loff_t *ppos)
+{
+	struct uid_entry *uid_entry;
+	uid_t uid;
+	int argc, state;
+	char input[128];
+
+	if (count >= sizeof(input))
+		return -EINVAL;
+
+	if (copy_from_user(input, buffer, count))
+		return -EFAULT;
+
+	input[count] = '\0';
+
+	argc = sscanf(input, "%u %d", &uid, &state);
+	if (argc != 2)
+		return -EINVAL;
+
+	if (state != UID_STATE_BACKGROUND && state != UID_STATE_FOREGROUND)
+		return -EINVAL;
+
+	rt_mutex_lock(&uid_lock);
+
+	uid_entry = find_or_register_uid(uid);
+	if (!uid_entry) {
+		rt_mutex_unlock(&uid_lock);
+		return -EINVAL;
+	}
+
+	if (uid_entry->state == state) {
+		rt_mutex_unlock(&uid_lock);
+		return count;
+	}
+
+	update_io_stats_uid_locked(uid_entry);
+
+	uid_entry->state = state;
+
+	rt_mutex_unlock(&uid_lock);
+
+	return count;
+}
+
+static const struct proc_ops uid_procstat_fops = {
+	.proc_open	= uid_procstat_open,
+	.proc_release	= single_release,
+	.proc_write	= uid_procstat_write,
+};
+
+struct update_stats_work {
+	struct work_struct work;
+	uid_t uid;
+#ifdef CONFIG_UID_SYS_STATS_DEBUG
+	struct task_struct *task;
+#endif
+	struct task_io_accounting ioac;
+	u64 utime;
+	u64 stime;
+};
+
+static void update_stats_workfn(struct work_struct *work)
+{
+	struct update_stats_work *usw =
+		container_of(work, struct update_stats_work, work);
+	struct uid_entry *uid_entry;
+	struct task_entry *task_entry __maybe_unused;
+
+	rt_mutex_lock(&uid_lock);
+	uid_entry = find_uid_entry(usw->uid);
+	if (!uid_entry)
+		goto exit;
+
+	uid_entry->utime += usw->utime;
+	uid_entry->stime += usw->stime;
+
+#ifdef CONFIG_UID_SYS_STATS_DEBUG
+	task_entry = find_task_entry(uid_entry, usw->task);
+	if (!task_entry)
+		goto exit;
+	add_uid_tasks_io_stats(task_entry, &usw->ioac,
+			       UID_STATE_DEAD_TASKS);
+#endif
+	__add_uid_io_stats(uid_entry, &usw->ioac, UID_STATE_DEAD_TASKS);
+exit:
+	rt_mutex_unlock(&uid_lock);
+#ifdef CONFIG_UID_SYS_STATS_DEBUG
+	put_task_struct(usw->task);
+#endif
+	kfree(usw);
+}
+
+static int process_notifier(struct notifier_block *self,
+			unsigned long cmd, void *v)
+{
+	struct task_struct *task = v;
+	struct uid_entry *uid_entry;
+	u64 utime, stime;
+	uid_t uid;
+
+	if (!task)
+		return NOTIFY_OK;
+
+	uid = from_kuid_munged(current_user_ns(), task_uid(task));
+	if (!rt_mutex_trylock(&uid_lock)) {
+		struct update_stats_work *usw;
+
+		usw = kmalloc(sizeof(struct update_stats_work), GFP_KERNEL);
+		if (usw) {
+			INIT_WORK(&usw->work, update_stats_workfn);
+			usw->uid = uid;
+#ifdef CONFIG_UID_SYS_STATS_DEBUG
+			usw->task = get_task_struct(task);
+#endif
+			/*
+			 * Copy task->ioac since task might be destroyed before
+			 * the work is later performed.
+			 */
+			usw->ioac = task->ioac;
+			task_cputime_adjusted(task, &usw->utime, &usw->stime);
+			schedule_work(&usw->work);
+		}
+		return NOTIFY_OK;
+	}
+
+	uid_entry = find_or_register_uid(uid);
+	if (!uid_entry) {
+		pr_err("%s: failed to find uid %d\n", __func__, uid);
+		goto exit;
+	}
+
+	task_cputime_adjusted(task, &utime, &stime);
+	uid_entry->utime += utime;
+	uid_entry->stime += stime;
+
+	add_uid_io_stats(uid_entry, task, UID_STATE_DEAD_TASKS);
+
+exit:
+	rt_mutex_unlock(&uid_lock);
+	return NOTIFY_OK;
+}
+
+static struct notifier_block process_notifier_block = {
+	.notifier_call	= process_notifier,
+};
+
+static int __init proc_uid_sys_stats_init(void)
+{
+	hash_init(hash_table);
+
+	cpu_parent = proc_mkdir("uid_cputime", NULL);
+	if (!cpu_parent) {
+		pr_err("%s: failed to create uid_cputime proc entry\n",
+			__func__);
+		goto err;
+	}
+
+	proc_create_data("remove_uid_range", 0222, cpu_parent,
+		&uid_remove_fops, NULL);
+	proc_create_data("show_uid_stat", 0444, cpu_parent,
+		&uid_cputime_fops, NULL);
+
+	io_parent = proc_mkdir("uid_io", NULL);
+	if (!io_parent) {
+		pr_err("%s: failed to create uid_io proc entry\n",
+			__func__);
+		goto err;
+	}
+
+	proc_create_data("stats", 0444, io_parent,
+		&uid_io_fops, NULL);
+
+	proc_parent = proc_mkdir("uid_procstat", NULL);
+	if (!proc_parent) {
+		pr_err("%s: failed to create uid_procstat proc entry\n",
+			__func__);
+		goto err;
+	}
+
+	proc_create_data("set", 0222, proc_parent,
+		&uid_procstat_fops, NULL);
+
+	profile_event_register(PROFILE_TASK_EXIT, &process_notifier_block);
+
+	return 0;
+
+err:
+	remove_proc_subtree("uid_cputime", NULL);
+	remove_proc_subtree("uid_io", NULL);
+	remove_proc_subtree("uid_procstat", NULL);
+	return -ENOMEM;
+}
+
+early_initcall(proc_uid_sys_stats_init);
diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c
index 965b44a..1cfc993 100644
--- a/drivers/mmc/core/block.c
+++ b/drivers/mmc/core/block.c
@@ -49,6 +49,8 @@
 
 #include <linux/uaccess.h>
 
+#include <trace/hooks/mmc.h>
+
 #include "queue.h"
 #include "block.h"
 #include "core.h"
@@ -1011,8 +1013,10 @@
 	 * in that case.
 	 */
 	main_md->part_curr = err ? MMC_BLK_PART_INVALID : main_md->part_type;
-	if (err)
+	if (err) {
+		trace_android_vh_mmc_blk_reset(host, err);
 		return err;
+	}
 	/* Ensure we switch back to the correct partition */
 	if (mmc_blk_part_switch(host->card, md->part_type))
 		/*
@@ -1495,7 +1499,7 @@
 	pr_debug("%s: CQE recovery start\n", mmc_hostname(host));
 
 	err = mmc_cqe_recovery(host);
-	if (err)
+	if (err || host->cqe_recovery_reset_always)
 		mmc_blk_reset(mq->blkdata, host, MMC_BLK_CQE_RECOVERY);
 	mmc_blk_reset_success(mq->blkdata, MMC_BLK_CQE_RECOVERY);
 
@@ -1854,6 +1858,7 @@
 	    err && mmc_blk_reset(md, card->host, type)) {
 		pr_err("%s: recovery failed!\n", req->rq_disk->disk_name);
 		mqrq->retries = MMC_NO_RETRIES;
+		trace_android_vh_mmc_blk_mq_rw_recovery(card);
 		return;
 	}
 
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index 07eda6c..4f70b50 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -917,6 +917,7 @@
 	host->ios.clock = hz;
 	mmc_set_ios(host);
 }
+EXPORT_SYMBOL_GPL(mmc_set_clock);
 
 int mmc_execute_tuning(struct mmc_card *card)
 {
@@ -943,12 +944,15 @@
 	}
 
 	/* Only print error when we don't check for card removal */
-	if (!host->detect_change)
+	if (!host->detect_change) {
 		pr_err("%s: tuning execution failed: %d\n",
 			mmc_hostname(host), err);
+		mmc_debugfs_err_stats_inc(host, MMC_ERR_TUNING);
+	}
 
 	return err;
 }
+EXPORT_SYMBOL_GPL(mmc_execute_tuning);
 
 /*
  * Change the bus mode (open drain/push-pull) of a host.
@@ -958,6 +962,7 @@
 	host->ios.bus_mode = mode;
 	mmc_set_ios(host);
 }
+EXPORT_SYMBOL_GPL(mmc_set_bus_mode);
 
 /*
  * Change data bus width of a host.
@@ -967,6 +972,7 @@
 	host->ios.bus_width = width;
 	mmc_set_ios(host);
 }
+EXPORT_SYMBOL_GPL(mmc_set_bus_width);
 
 /*
  * Set initial state after a power cycle or a hw_reset.
@@ -1000,6 +1006,7 @@
 
 	mmc_crypto_set_initial_state(host);
 }
+EXPORT_SYMBOL_GPL(mmc_set_initial_state);
 
 /**
  * mmc_vdd_to_ocrbitnum - Convert a voltage to the OCR bit number
@@ -1269,6 +1276,7 @@
 	host->ios.timing = timing;
 	mmc_set_ios(host);
 }
+EXPORT_SYMBOL_GPL(mmc_set_timing);
 
 /*
  * Select appropriate driver type for host.
@@ -2253,6 +2261,12 @@
 		if (freqs[i] <= host->f_min)
 			break;
 	}
+
+	/*
+	 * Ignore the command timeout errors observed during
+	 * the card init as those are excepted.
+	 */
+	host->err_stats[MMC_ERR_CMD_TIMEOUT] = 0;
 	mmc_release_host(host);
 
  out:
diff --git a/drivers/mmc/core/core.h b/drivers/mmc/core/core.h
index f5f3f62..a086152 100644
--- a/drivers/mmc/core/core.h
+++ b/drivers/mmc/core/core.h
@@ -42,7 +42,7 @@
 void mmc_init_erase(struct mmc_card *card);
 
 void mmc_set_chip_select(struct mmc_host *host, int mode);
-void mmc_set_clock(struct mmc_host *host, unsigned int hz);
+extern void mmc_set_clock(struct mmc_host *host, unsigned int hz);
 void mmc_set_bus_mode(struct mmc_host *host, unsigned int mode);
 void mmc_set_bus_width(struct mmc_host *host, unsigned int width);
 u32 mmc_select_voltage(struct mmc_host *host, u32 ocr);
diff --git a/drivers/mmc/core/debugfs.c b/drivers/mmc/core/debugfs.c
index 3fdbc80..9ed69c3 100644
--- a/drivers/mmc/core/debugfs.c
+++ b/drivers/mmc/core/debugfs.c
@@ -223,6 +223,77 @@
 DEFINE_DEBUGFS_ATTRIBUTE(mmc_clock_fops, mmc_clock_opt_get, mmc_clock_opt_set,
 	"%llu\n");
 
+static int mmc_err_state_get(void *data, u64 *val)
+{
+	struct mmc_host *host = data;
+	int i;
+
+	*val = 0;
+	for (i = 0; i < ARRAY_SIZE(host->err_stats); i++) {
+		if (host->err_stats[i]) {
+			*val = 1;
+			break;
+		}
+	}
+
+	return 0;
+}
+
+DEFINE_DEBUGFS_ATTRIBUTE(mmc_err_state, mmc_err_state_get, NULL, "%llu\n");
+
+static int mmc_err_stats_show(struct seq_file *file, void *data)
+{
+	struct mmc_host *host = (struct mmc_host *)file->private;
+	static const char *desc[MMC_ERR_MAX] = {
+		[MMC_ERR_CMD_TIMEOUT] = "Command Timeout Occurred",
+		[MMC_ERR_CMD_CRC] = "Command CRC Errors Occurred",
+		[MMC_ERR_DAT_TIMEOUT] = "Data Timeout Occurred",
+		[MMC_ERR_DAT_CRC] = "Data CRC Errors Occurred",
+		[MMC_ERR_AUTO_CMD] = "Auto-Cmd Error Occurred",
+		[MMC_ERR_ADMA] = "ADMA Error Occurred",
+		[MMC_ERR_TUNING] = "Tuning Error Occurred",
+		[MMC_ERR_CMDQ_RED] = "CMDQ RED Errors",
+		[MMC_ERR_CMDQ_GCE] = "CMDQ GCE Errors",
+		[MMC_ERR_CMDQ_ICCE] = "CMDQ ICCE Errors",
+		[MMC_ERR_REQ_TIMEOUT] = "Request Timedout",
+		[MMC_ERR_CMDQ_REQ_TIMEOUT] = "CMDQ Request Timedout",
+		[MMC_ERR_ICE_CFG] = "ICE Config Errors",
+		[MMC_ERR_CTRL_TIMEOUT] = "Controller Timedout errors",
+		[MMC_ERR_UNEXPECTED_IRQ] = "Unexpected IRQ errors",
+	};
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(desc); i++) {
+		if (desc[i])
+			seq_printf(file, "# %s:\t %d\n",
+					desc[i], host->err_stats[i]);
+	}
+
+	return 0;
+}
+
+static int mmc_err_stats_open(struct inode *inode, struct file *file)
+{
+	return single_open(file, mmc_err_stats_show, inode->i_private);
+}
+
+static ssize_t mmc_err_stats_write(struct file *filp, const char __user *ubuf,
+				   size_t cnt, loff_t *ppos)
+{
+	struct mmc_host *host = filp->f_mapping->host->i_private;
+
+	pr_debug("%s: Resetting MMC error statistics\n", __func__);
+	memset(host->err_stats, 0, sizeof(host->err_stats));
+
+	return cnt;
+}
+
+static const struct file_operations mmc_err_stats_fops = {
+	.open	= mmc_err_stats_open,
+	.read	= seq_read,
+	.write	= mmc_err_stats_write,
+};
+
 void mmc_add_host_debugfs(struct mmc_host *host)
 {
 	struct dentry *root;
@@ -236,6 +307,11 @@
 	debugfs_create_file_unsafe("clock", S_IRUSR | S_IWUSR, root, host,
 				   &mmc_clock_fops);
 
+	debugfs_create_file("err_state", 0600, root, host,
+			    &mmc_err_state);
+	debugfs_create_file("err_stats", 0600, root, host,
+			    &mmc_err_stats_fops);
+
 #ifdef CONFIG_FAIL_MMC_REQUEST
 	if (fail_request)
 		setup_fault_attr(&fail_default_attr, fail_request);
diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c
index d739e2b..98b0ee8 100644
--- a/drivers/mmc/core/host.c
+++ b/drivers/mmc/core/host.c
@@ -166,6 +166,7 @@
 		host->retune_now = 1;
 	host->hold_retune += 1;
 }
+EXPORT_SYMBOL(mmc_retune_hold);
 
 void mmc_retune_release(struct mmc_host *host)
 {
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
index d805f84..dfaf4d6 100644
--- a/drivers/mmc/core/mmc.c
+++ b/drivers/mmc/core/mmc.c
@@ -16,6 +16,7 @@
 #include <linux/mmc/host.h>
 #include <linux/mmc/card.h>
 #include <linux/mmc/mmc.h>
+#include <trace/hooks/mmc.h>
 
 #include "core.h"
 #include "card.h"
@@ -975,7 +976,7 @@
 /*
  * Set the bus speed for the selected speed mode.
  */
-static void mmc_set_bus_speed(struct mmc_card *card)
+void mmc_set_bus_speed(struct mmc_card *card)
 {
 	unsigned int max_dtr = (unsigned int)-1;
 
@@ -995,7 +996,7 @@
  * If the bus width is changed successfully, return the selected width value.
  * Zero is returned instead of error value if the wide width is not supported.
  */
-static int mmc_select_bus_width(struct mmc_card *card)
+int mmc_select_bus_width(struct mmc_card *card)
 {
 	static unsigned ext_csd_bits[] = {
 		EXT_CSD_BUS_WIDTH_8,
@@ -1060,11 +1061,12 @@
 
 	return err;
 }
+EXPORT_SYMBOL_GPL(mmc_select_bus_width);
 
 /*
  * Switch to the high-speed mode
  */
-static int mmc_select_hs(struct mmc_card *card)
+int mmc_select_hs(struct mmc_card *card)
 {
 	int err;
 
@@ -1078,11 +1080,12 @@
 
 	return err;
 }
+EXPORT_SYMBOL_GPL(mmc_select_hs);
 
 /*
  * Activate wide bus and DDR if supported.
  */
-static int mmc_select_hs_ddr(struct mmc_card *card)
+int mmc_select_hs_ddr(struct mmc_card *card)
 {
 	struct mmc_host *host = card->host;
 	u32 bus_width, ext_csd_bits;
@@ -1151,8 +1154,9 @@
 
 	return err;
 }
+EXPORT_SYMBOL_GPL(mmc_select_hs_ddr);
 
-static int mmc_select_hs400(struct mmc_card *card)
+int mmc_select_hs400(struct mmc_card *card)
 {
 	struct mmc_host *host = card->host;
 	unsigned int max_dtr;
@@ -1224,6 +1228,14 @@
 	mmc_set_timing(host, MMC_TIMING_MMC_HS400);
 	mmc_set_bus_speed(card);
 
+	if (host->ops->execute_hs400_tuning) {
+		mmc_retune_disable(host);
+		err = host->ops->execute_hs400_tuning(host, card);
+		mmc_retune_enable(host);
+		if (err)
+			goto out_err;
+	}
+
 	if (host->ops->hs400_complete)
 		host->ops->hs400_complete(host);
 
@@ -1238,6 +1250,7 @@
 	       __func__, err);
 	return err;
 }
+EXPORT_SYMBOL_GPL(mmc_select_hs400);
 
 int mmc_hs200_to_hs400(struct mmc_card *card)
 {
@@ -1523,7 +1536,7 @@
 /*
  * Activate High Speed, HS200 or HS400ES mode if supported.
  */
-static int mmc_select_timing(struct mmc_card *card)
+int mmc_select_timing(struct mmc_card *card)
 {
 	int err = 0;
 
@@ -1548,12 +1561,13 @@
 	mmc_set_bus_speed(card);
 	return 0;
 }
+EXPORT_SYMBOL_GPL(mmc_select_timing);
 
 /*
  * Execute tuning sequence to seek the proper bus operating
  * conditions for HS200 and HS400, which sends CMD21 to the device.
  */
-static int mmc_hs200_tuning(struct mmc_card *card)
+int mmc_hs200_tuning(struct mmc_card *card)
 {
 	struct mmc_host *host = card->host;
 
@@ -1568,6 +1582,7 @@
 
 	return mmc_execute_tuning(card);
 }
+EXPORT_SYMBOL_GPL(mmc_hs200_tuning);
 
 /*
  * Handle the detection and initialisation of a card.
@@ -1620,6 +1635,7 @@
 		goto err;
 
 	if (oldcard) {
+		trace_android_vh_mmc_ffu_update_cid(host, oldcard, cid);
 		if (memcmp(cid, oldcard->raw_cid, sizeof(cid)) != 0) {
 			pr_debug("%s: Perhaps the card was replaced\n",
 				mmc_hostname(host));
@@ -1752,6 +1768,9 @@
 			goto free_card;
 	}
 
+	trace_android_vh_mmc_update_partition_status(card);
+	trace_android_rvh_mmc_partition_status(card);
+
 	/*
 	 * Enable power_off_notification byte in the ext_csd register
 	 */
@@ -2092,9 +2111,10 @@
 	    ((host->caps2 & MMC_CAP2_FULL_PWR_CYCLE) || !is_suspend ||
 	     (host->caps2 & MMC_CAP2_FULL_PWR_CYCLE_IN_SUSPEND)))
 		err = mmc_poweroff_notify(host->card, notify_type);
-	else if (mmc_can_sleep(host->card))
+	else if (mmc_can_sleep(host->card)) {
+		trace_android_rvh_mmc_cache_card_properties(host);
 		err = mmc_sleep(host);
-	else if (!mmc_host_is_spi(host))
+	} else if (!mmc_host_is_spi(host))
 		err = mmc_deselect_cards(host);
 
 	if (!err) {
@@ -2129,6 +2149,7 @@
 static int _mmc_resume(struct mmc_host *host)
 {
 	int err = 0;
+	bool partial_init = false;
 
 	mmc_claim_host(host);
 
@@ -2136,7 +2157,9 @@
 		goto out;
 
 	mmc_power_up(host, host->card->ocr);
-	err = mmc_init_card(host, host->card->ocr, host->card);
+	trace_android_rvh_partial_init(host, &partial_init);
+	if (!partial_init)
+		err = mmc_init_card(host, host->card->ocr, host->card);
 	mmc_card_clr_suspended(host->card);
 
 out:
diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c
index 0c54858..ba028ec 100644
--- a/drivers/mmc/core/mmc_ops.c
+++ b/drivers/mmc/core/mmc_ops.c
@@ -110,6 +110,7 @@
 
 	return _mmc_select_card(card->host, card);
 }
+EXPORT_SYMBOL_GPL(mmc_select_card);
 
 int mmc_deselect_cards(struct mmc_host *host)
 {
@@ -545,6 +546,7 @@
 	cmd->busy_timeout = timeout_ms;
 	return true;
 }
+EXPORT_SYMBOL_GPL(mmc_prepare_busy_cmd);
 
 /**
  *	__mmc_switch - modify EXT_CSD register
diff --git a/drivers/mmc/core/mmc_ops.h b/drivers/mmc/core/mmc_ops.h
index ae25ffc2..e5e9456 100644
--- a/drivers/mmc/core/mmc_ops.h
+++ b/drivers/mmc/core/mmc_ops.h
@@ -38,7 +38,6 @@
 int mmc_spi_set_crc(struct mmc_host *host, int use_crc);
 int mmc_bus_test(struct mmc_card *card, u8 bus_width);
 int mmc_can_ext_csd(struct mmc_card *card);
-int mmc_get_ext_csd(struct mmc_card *card, u8 **new_ext_csd);
 int mmc_switch_status(struct mmc_card *card, bool crc_err_fatal);
 bool mmc_prepare_busy_cmd(struct mmc_host *host, struct mmc_command *cmd,
 			  unsigned int timeout_ms);
diff --git a/drivers/mmc/core/queue.c b/drivers/mmc/core/queue.c
index b15c034..9bfd096 100644
--- a/drivers/mmc/core/queue.c
+++ b/drivers/mmc/core/queue.c
@@ -20,6 +20,7 @@
 #include "card.h"
 #include "crypto.h"
 #include "host.h"
+#include <trace/hooks/mmc.h>
 
 #define MMC_DMA_MAP_MERGE_SEGMENTS	512
 
@@ -68,6 +69,7 @@
 
 	return MMC_ISSUE_SYNC;
 }
+EXPORT_SYMBOL_GPL(mmc_issue_type);
 
 static void __mmc_cqe_recovery_notifier(struct mmc_queue *mq)
 {
@@ -234,7 +236,7 @@
 	enum mmc_issue_type issue_type;
 	enum mmc_issued issued;
 	bool get_card, cqe_retune_ok;
-	int ret;
+	int ret = 0;
 
 	if (mmc_card_removed(mq->card)) {
 		req->rq_flags |= RQF_QUIET;
@@ -263,7 +265,8 @@
 		 * For MMC host software queue, we only allow 2 requests in
 		 * flight to avoid a long latency.
 		 */
-		if (host->hsq_enabled && mq->in_flight[issue_type] > 2) {
+		trace_android_vh_mmc_check_status(bd, &ret);
+		if (!ret && host->hsq_enabled && mq->in_flight[issue_type] > 2) {
 			spin_unlock_irq(&mq->lock);
 			return BLK_STS_RESOURCE;
 		}
diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c
index 592166e..ce07f70 100644
--- a/drivers/mmc/core/sd.c
+++ b/drivers/mmc/core/sd.c
@@ -18,6 +18,8 @@
 #include <linux/mmc/mmc.h>
 #include <linux/mmc/sd.h>
 
+#include <trace/hooks/mmc.h>
+
 #include "core.h"
 #include "card.h"
 #include "host.h"
@@ -472,6 +474,8 @@
 		    SD_MODE_UHS_SDR12)) {
 			card->sd_bus_speed = UHS_SDR12_BUS_SPEED;
 	}
+
+	trace_android_vh_sd_update_bus_speed_mode(card);
 }
 
 static int sd_set_bus_speed_mode(struct mmc_card *card, u8 *status)
@@ -1511,6 +1515,12 @@
 		 */
 		mmc_set_clock(host, mmc_sd_get_max_clock(card));
 
+		err = 0;
+		trace_android_vh_mmc_sd_update_cmdline_timing(card, &err);
+		trace_android_rvh_mmc_sd_cmdline_timing(card, &err);
+		if (err)
+			goto free_card;
+
 		/*
 		 * Switch to wider bus (if supported).
 		 */
@@ -1522,6 +1532,12 @@
 
 			mmc_set_bus_width(host, MMC_BUS_WIDTH_4);
 		}
+
+		err = 0;
+		trace_android_vh_mmc_sd_update_dataline_timing(card, &err);
+		trace_android_rvh_mmc_sd_dataline_timing(card, &err);
+		if (err)
+			goto free_card;
 	}
 cont:
 	if (!oldcard) {
@@ -1870,5 +1886,7 @@
 	pr_err("%s: error %d whilst initialising SD card\n",
 		mmc_hostname(host), err);
 
+	trace_android_vh_mmc_attach_sd(host, ocr, err);
+
 	return err;
 }
diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c
index 5447c47..2c8aba1 100644
--- a/drivers/mmc/core/sdio.c
+++ b/drivers/mmc/core/sdio.c
@@ -15,6 +15,8 @@
 #include <linux/mmc/sdio_func.h>
 #include <linux/mmc/sdio_ids.h>
 
+#include <trace/hooks/mmc.h>
+
 #include "core.h"
 #include "card.h"
 #include "host.h"
@@ -1094,6 +1096,8 @@
 	mmc_release_host(host);
 
 	host->pm_flags &= ~MMC_PM_KEEP_POWER;
+	trace_android_vh_mmc_sdio_pm_flag_set(host);
+
 	return err;
 }
 
diff --git a/drivers/mmc/core/slot-gpio.c b/drivers/mmc/core/slot-gpio.c
index 05e9074..bda9614 100644
--- a/drivers/mmc/core/slot-gpio.c
+++ b/drivers/mmc/core/slot-gpio.c
@@ -14,6 +14,8 @@
 #include <linux/module.h>
 #include <linux/slab.h>
 
+#include <trace/hooks/mmc.h>
+
 #include "slot-gpio.h"
 
 struct mmc_gpio {
@@ -30,6 +32,11 @@
 	/* Schedule a card detection after a debounce timeout */
 	struct mmc_host *host = dev_id;
 	struct mmc_gpio *ctx = host->slot.handler_priv;
+	bool allow = true;
+
+	trace_android_vh_mmc_gpio_cd_irqt(host, &allow);
+	if (!allow)
+		return IRQ_HANDLED;
 
 	host->trigger_card_event = true;
 	mmc_detect_change(host, msecs_to_jiffies(ctx->cd_debounce_delay_ms));
diff --git a/drivers/mmc/host/cqhci-core.c b/drivers/mmc/host/cqhci-core.c
index 31f8412..7f25cca 100644
--- a/drivers/mmc/host/cqhci-core.c
+++ b/drivers/mmc/host/cqhci-core.c
@@ -822,8 +822,15 @@
 	pr_debug("%s: cqhci: IRQ status: 0x%08x\n", mmc_hostname(mmc), status);
 
 	if ((status & (CQHCI_IS_RED | CQHCI_IS_GCE | CQHCI_IS_ICCE)) ||
-	    cmd_error || data_error)
+	    cmd_error || data_error) {
+		if (status & CQHCI_IS_RED)
+			mmc_debugfs_err_stats_inc(mmc, MMC_ERR_CMDQ_RED);
+		if (status & CQHCI_IS_GCE)
+			mmc_debugfs_err_stats_inc(mmc, MMC_ERR_CMDQ_GCE);
+		if (status & CQHCI_IS_ICCE)
+			mmc_debugfs_err_stats_inc(mmc, MMC_ERR_CMDQ_ICCE);
 		cqhci_error_irq(mmc, status, cmd_error, data_error);
+	}
 
 	if (status & CQHCI_IS_TCC) {
 		/* read TCN and complete the request */
diff --git a/drivers/mmc/host/cqhci-crypto.c b/drivers/mmc/host/cqhci-crypto.c
index 6419cfb..5698bc4 100644
--- a/drivers/mmc/host/cqhci-crypto.c
+++ b/drivers/mmc/host/cqhci-crypto.c
@@ -209,6 +209,8 @@
 	/* Unfortunately, CQHCI crypto only supports 32 DUN bits. */
 	ksm->max_dun_bytes_supported = 4;
 
+	ksm->features = BLK_CRYPTO_FEATURE_STANDARD_KEYS;
+
 	/*
 	 * Cache all the crypto capabilities and advertise the supported crypto
 	 * modes and data unit sizes to the block layer.
diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
index 6d0fc24..0efc304 100644
--- a/drivers/mmc/host/mtk-sd.c
+++ b/drivers/mmc/host/mtk-sd.c
@@ -259,6 +259,7 @@
 #define MSDC_PAD_TUNE_RD_SEL	  (0x1 << 13)   /* RW */
 #define MSDC_PAD_TUNE_CMD_SEL	  (0x1 << 21)   /* RW */
 
+#define PAD_DS_TUNE_DLY_SEL       (0x1 << 0)	/* RW */
 #define PAD_DS_TUNE_DLY1	  (0x1f << 2)   /* RW */
 #define PAD_DS_TUNE_DLY2	  (0x1f << 7)   /* RW */
 #define PAD_DS_TUNE_DLY3	  (0x1f << 12)  /* RW */
@@ -302,6 +303,11 @@
 #define PAD_CMD_RD_RXDLY_SEL    (0x1 << 11)     /* RW */
 #define PAD_CMD_TX_DLY          (0x1f << 12)    /* RW */
 
+/* EMMC50_PAD_DS_TUNE mask */
+#define PAD_DS_DLY_SEL		(0x1 << 16)	/* RW */
+#define PAD_DS_DLY1		(0x1f << 10)	/* RW */
+#define PAD_DS_DLY3		(0x1f << 0)	/* RW */
+
 #define REQ_CMD_EIO  (0x1 << 0)
 #define REQ_CMD_TMO  (0x1 << 1)
 #define REQ_DAT_ERR  (0x1 << 2)
@@ -449,11 +455,13 @@
 	bool vqmmc_enabled;
 	u32 latch_ck;
 	u32 hs400_ds_delay;
+	u32 hs400_ds_dly3;
 	u32 hs200_cmd_int_delay; /* cmd internal delay for HS200/SDR104 */
 	u32 hs400_cmd_int_delay; /* cmd internal delay for HS400 */
 	bool hs400_cmd_resp_sel_rising;
 				 /* cmd response sample selection for HS400 */
 	bool hs400_mode;	/* current eMMC will run at hs400 mode */
+	bool hs400_tuning;	/* hs400 mode online tuning */
 	bool internal_cd;	/* Use internal card-detect logic */
 	bool cqhci;		/* support eMMC hw cmdq */
 	struct msdc_save_para save_para; /* used when gate HCLK */
@@ -1191,7 +1199,8 @@
 	if (!sbc_error && !(events & MSDC_INT_CMDRDY)) {
 		if (events & MSDC_INT_CMDTMO ||
 		    (cmd->opcode != MMC_SEND_TUNING_BLOCK &&
-		     cmd->opcode != MMC_SEND_TUNING_BLOCK_HS200))
+		     cmd->opcode != MMC_SEND_TUNING_BLOCK_HS200 &&
+		     !host->hs400_tuning))
 			/*
 			 * should not clear fifo/interrupt as the tune data
 			 * may have alreay come when cmd19/cmd21 gets response
@@ -1286,7 +1295,8 @@
 	if ((cmd->error &&
 	    !(cmd->error == -EILSEQ &&
 	      (cmd->opcode == MMC_SEND_TUNING_BLOCK ||
-	       cmd->opcode == MMC_SEND_TUNING_BLOCK_HS200))) ||
+	       cmd->opcode == MMC_SEND_TUNING_BLOCK_HS200 ||
+	       host->hs400_tuning))) ||
 	    (mrq->sbc && mrq->sbc->error))
 		msdc_request_done(host, mrq);
 	else if (cmd == mrq->sbc)
@@ -2259,6 +2269,69 @@
 	return 0;
 }
 
+static int msdc_execute_hs400_tuning(struct mmc_host *mmc, struct mmc_card *card)
+{
+	struct msdc_host *host = mmc_priv(mmc);
+	struct msdc_delay_phase dly1_delay;
+	u32 val, result_dly1 = 0;
+	u8 *ext_csd;
+	int i, ret;
+
+	if (host->top_base) {
+		sdr_set_bits(host->top_base + EMMC50_PAD_DS_TUNE,
+			     PAD_DS_DLY_SEL);
+		if (host->hs400_ds_dly3)
+			sdr_set_field(host->top_base + EMMC50_PAD_DS_TUNE,
+				      PAD_DS_DLY3, host->hs400_ds_dly3);
+	} else {
+		sdr_set_bits(host->base + PAD_DS_TUNE, PAD_DS_TUNE_DLY_SEL);
+		if (host->hs400_ds_dly3)
+			sdr_set_field(host->base + PAD_DS_TUNE,
+				      PAD_DS_TUNE_DLY3, host->hs400_ds_dly3);
+	}
+
+	host->hs400_tuning = true;
+	for (i = 0; i < PAD_DELAY_MAX; i++) {
+		if (host->top_base)
+			sdr_set_field(host->top_base + EMMC50_PAD_DS_TUNE,
+				      PAD_DS_DLY1, i);
+		else
+			sdr_set_field(host->base + PAD_DS_TUNE,
+				      PAD_DS_TUNE_DLY1, i);
+		ret = mmc_get_ext_csd(card, &ext_csd);
+		if (!ret) {
+			result_dly1 |= (1 << i);
+			kfree(ext_csd);
+		}
+	}
+	host->hs400_tuning = false;
+
+	dly1_delay = get_best_delay(host, result_dly1);
+	if (dly1_delay.maxlen == 0) {
+		dev_err(host->dev, "Failed to get DLY1 delay!\n");
+		goto fail;
+	}
+	if (host->top_base)
+		sdr_set_field(host->top_base + EMMC50_PAD_DS_TUNE,
+			      PAD_DS_DLY1, dly1_delay.final_phase);
+	else
+		sdr_set_field(host->base + PAD_DS_TUNE,
+			      PAD_DS_TUNE_DLY1, dly1_delay.final_phase);
+
+	if (host->top_base)
+		val = readl(host->top_base + EMMC50_PAD_DS_TUNE);
+	else
+		val = readl(host->base + PAD_DS_TUNE);
+
+	dev_info(host->dev, "Fianl PAD_DS_TUNE: 0x%x\n", val);
+
+	return 0;
+
+fail:
+	dev_err(host->dev, "Failed to tuning DS pin delay!\n");
+	return -EIO;
+}
+
 static void msdc_hw_reset(struct mmc_host *mmc)
 {
 	struct msdc_host *host = mmc_priv(mmc);
@@ -2395,6 +2468,7 @@
 	.card_busy = msdc_card_busy,
 	.execute_tuning = msdc_execute_tuning,
 	.prepare_hs400_tuning = msdc_prepare_hs400_tuning,
+	.execute_hs400_tuning = msdc_execute_hs400_tuning,
 	.hw_reset = msdc_hw_reset,
 };
 
@@ -2414,6 +2488,9 @@
 	of_property_read_u32(pdev->dev.of_node, "hs400-ds-delay",
 			     &host->hs400_ds_delay);
 
+	of_property_read_u32(pdev->dev.of_node, "mediatek,hs400-ds-dly3",
+			     &host->hs400_ds_dly3);
+
 	of_property_read_u32(pdev->dev.of_node, "mediatek,hs200-cmd-int-delay",
 			     &host->hs200_cmd_int_delay);
 
diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
index 6537a84..1cd5560 100644
--- a/drivers/mmc/host/sdhci-msm.c
+++ b/drivers/mmc/host/sdhci-msm.c
@@ -2760,6 +2760,9 @@
 
 	msm_host->mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY | MMC_CAP_NEED_RSP_BUSY;
 
+	/* Enable force hw reset during cqe recovery */
+	msm_host->mmc->cqe_recovery_reset_always = true;
+
 	/* Set the timeout value to max possible */
 	host->max_timeout_count = 0xF;
 
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index d897c98..7cd7b6a 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -32,6 +32,8 @@
 #include <linux/mmc/sdio.h>
 #include <linux/mmc/slot-gpio.h>
 
+#include <trace/hooks/mmc.h>
+
 #include "sdhci.h"
 
 #define DRIVER_NAME "sdhci"
@@ -224,6 +226,7 @@
 		if (timedout) {
 			pr_err("%s: Reset 0x%x never completed.\n",
 				mmc_hostname(host->mmc), (int)mask);
+			sdhci_err_stats_inc(host, CTRL_TIMEOUT);
 			sdhci_dumpregs(host);
 			return;
 		}
@@ -1720,6 +1723,7 @@
 		if (!timeout--) {
 			pr_err("%s: Controller never released inhibit bit(s).\n",
 			       mmc_hostname(host->mmc));
+			sdhci_err_stats_inc(host, CTRL_TIMEOUT);
 			sdhci_dumpregs(host);
 			cmd->error = -EIO;
 			return false;
@@ -1969,6 +1973,7 @@
 		if (timedout) {
 			pr_err("%s: Internal clock never stabilised.\n",
 			       mmc_hostname(host->mmc));
+			sdhci_err_stats_inc(host, CTRL_TIMEOUT);
 			sdhci_dumpregs(host);
 			return;
 		}
@@ -1991,6 +1996,7 @@
 			if (timedout) {
 				pr_err("%s: PLL clock never stabilised.\n",
 				       mmc_hostname(host->mmc));
+				sdhci_err_stats_inc(host, CTRL_TIMEOUT);
 				sdhci_dumpregs(host);
 				return;
 			}
@@ -2462,6 +2468,7 @@
 {
 	struct sdhci_host *host = mmc_priv(mmc);
 	int gpio_cd = mmc_gpio_get_cd(mmc);
+	bool allow = true;
 
 	if (host->flags & SDHCI_DEVICE_DEAD)
 		return 0;
@@ -2470,6 +2477,10 @@
 	if (!mmc_card_is_removable(mmc))
 		return 1;
 
+	trace_android_vh_sdhci_get_cd(host, &allow);
+	if (!allow)
+		return 0;
+
 	/*
 	 * Try slot gpio detect, if defined it take precedence
 	 * over build in controller functionality
@@ -3190,6 +3201,7 @@
 	if (host->cmd && !sdhci_data_line_cmd(host->cmd)) {
 		pr_err("%s: Timeout waiting for hardware cmd interrupt.\n",
 		       mmc_hostname(host->mmc));
+		sdhci_err_stats_inc(host, REQ_TIMEOUT);
 		sdhci_dumpregs(host);
 
 		host->cmd->error = -ETIMEDOUT;
@@ -3212,6 +3224,7 @@
 	    (host->cmd && sdhci_data_line_cmd(host->cmd))) {
 		pr_err("%s: Timeout waiting for hardware interrupt.\n",
 		       mmc_hostname(host->mmc));
+		sdhci_err_stats_inc(host, REQ_TIMEOUT);
 		sdhci_dumpregs(host);
 
 		if (host->data) {
@@ -3263,17 +3276,21 @@
 			return;
 		pr_err("%s: Got command interrupt 0x%08x even though no command operation was in progress.\n",
 		       mmc_hostname(host->mmc), (unsigned)intmask);
+		sdhci_err_stats_inc(host, UNEXPECTED_IRQ);
 		sdhci_dumpregs(host);
 		return;
 	}
 
 	if (intmask & (SDHCI_INT_TIMEOUT | SDHCI_INT_CRC |
 		       SDHCI_INT_END_BIT | SDHCI_INT_INDEX)) {
-		if (intmask & SDHCI_INT_TIMEOUT)
+		if (intmask & SDHCI_INT_TIMEOUT) {
 			host->cmd->error = -ETIMEDOUT;
-		else
+			sdhci_err_stats_inc(host, CMD_TIMEOUT);
+		} else {
 			host->cmd->error = -EILSEQ;
-
+			if (!mmc_op_tuning(host->cmd->opcode))
+				sdhci_err_stats_inc(host, CMD_CRC);
+		}
 		/* Treat data command CRC error the same as data CRC error */
 		if (host->cmd->data &&
 		    (intmask & (SDHCI_INT_CRC | SDHCI_INT_TIMEOUT)) ==
@@ -3294,6 +3311,8 @@
 		int err = (auto_cmd_status & SDHCI_AUTO_CMD_TIMEOUT) ?
 			  -ETIMEDOUT :
 			  -EILSEQ;
+		sdhci_err_stats_inc(host, AUTO_CMD);
+
 
 		if (mrq->sbc && (host->flags & SDHCI_AUTO_CMD23)) {
 			mrq->sbc->error = err;
@@ -3371,6 +3390,7 @@
 			if (intmask & SDHCI_INT_DATA_TIMEOUT) {
 				host->data_cmd = NULL;
 				data_cmd->error = -ETIMEDOUT;
+				sdhci_err_stats_inc(host, CMD_TIMEOUT);
 				__sdhci_finish_mrq(host, data_cmd->mrq);
 				return;
 			}
@@ -3399,23 +3419,30 @@
 
 		pr_err("%s: Got data interrupt 0x%08x even though no data operation was in progress.\n",
 		       mmc_hostname(host->mmc), (unsigned)intmask);
+		sdhci_err_stats_inc(host, UNEXPECTED_IRQ);
 		sdhci_dumpregs(host);
 
 		return;
 	}
 
-	if (intmask & SDHCI_INT_DATA_TIMEOUT)
+	if (intmask & SDHCI_INT_DATA_TIMEOUT) {
 		host->data->error = -ETIMEDOUT;
-	else if (intmask & SDHCI_INT_DATA_END_BIT)
+		sdhci_err_stats_inc(host, DAT_TIMEOUT);
+	} else if (intmask & SDHCI_INT_DATA_END_BIT) {
 		host->data->error = -EILSEQ;
-	else if ((intmask & SDHCI_INT_DATA_CRC) &&
+		if (!mmc_op_tuning(SDHCI_GET_CMD(sdhci_readw(host, SDHCI_COMMAND))))
+			sdhci_err_stats_inc(host, DAT_CRC);
+	} else if ((intmask & SDHCI_INT_DATA_CRC) &&
 		SDHCI_GET_CMD(sdhci_readw(host, SDHCI_COMMAND))
-			!= MMC_BUS_TEST_R)
+			!= MMC_BUS_TEST_R) {
 		host->data->error = -EILSEQ;
-	else if (intmask & SDHCI_INT_ADMA_ERROR) {
+		if (!mmc_op_tuning(SDHCI_GET_CMD(sdhci_readw(host, SDHCI_COMMAND))))
+			sdhci_err_stats_inc(host, DAT_CRC);
+	} else if (intmask & SDHCI_INT_ADMA_ERROR) {
 		pr_err("%s: ADMA error: 0x%08x\n", mmc_hostname(host->mmc),
 		       intmask);
 		sdhci_adma_show_error(host);
+		sdhci_err_stats_inc(host, ADMA);
 		host->data->error = -EIO;
 		if (host->ops->adma_workaround)
 			host->ops->adma_workaround(host, intmask);
@@ -3613,6 +3640,7 @@
 	if (unexpected) {
 		pr_err("%s: Unexpected interrupt 0x%08x.\n",
 			   mmc_hostname(host->mmc), unexpected);
+		sdhci_err_stats_inc(host, UNEXPECTED_IRQ);
 		sdhci_dumpregs(host);
 	}
 
@@ -3936,20 +3964,27 @@
 	if (!host->cqe_on)
 		return false;
 
-	if (intmask & (SDHCI_INT_INDEX | SDHCI_INT_END_BIT | SDHCI_INT_CRC))
+	if (intmask & (SDHCI_INT_INDEX | SDHCI_INT_END_BIT | SDHCI_INT_CRC)) {
 		*cmd_error = -EILSEQ;
-	else if (intmask & SDHCI_INT_TIMEOUT)
+		if (!mmc_op_tuning(SDHCI_GET_CMD(sdhci_readw(host, SDHCI_COMMAND))))
+			sdhci_err_stats_inc(host, CMD_CRC);
+	} else if (intmask & SDHCI_INT_TIMEOUT) {
 		*cmd_error = -ETIMEDOUT;
-	else
+		sdhci_err_stats_inc(host, CMD_TIMEOUT);
+	} else
 		*cmd_error = 0;
 
-	if (intmask & (SDHCI_INT_DATA_END_BIT | SDHCI_INT_DATA_CRC))
+	if (intmask & (SDHCI_INT_DATA_END_BIT | SDHCI_INT_DATA_CRC)) {
 		*data_error = -EILSEQ;
-	else if (intmask & SDHCI_INT_DATA_TIMEOUT)
+		if (!mmc_op_tuning(SDHCI_GET_CMD(sdhci_readw(host, SDHCI_COMMAND))))
+			sdhci_err_stats_inc(host, DAT_CRC);
+	} else if (intmask & SDHCI_INT_DATA_TIMEOUT) {
 		*data_error = -ETIMEDOUT;
-	else if (intmask & SDHCI_INT_ADMA_ERROR)
+		sdhci_err_stats_inc(host, DAT_TIMEOUT);
+	} else if (intmask & SDHCI_INT_ADMA_ERROR) {
 		*data_error = -EIO;
-	else
+		sdhci_err_stats_inc(host, ADMA);
+	} else
 		*data_error = 0;
 
 	/* Clear selected interrupts. */
@@ -3965,6 +4000,7 @@
 		sdhci_writel(host, intmask, SDHCI_INT_STATUS);
 		pr_err("%s: CQE: Unexpected interrupt 0x%08x.\n",
 		       mmc_hostname(host->mmc), intmask);
+		sdhci_err_stats_inc(host, UNEXPECTED_IRQ);
 		sdhci_dumpregs(host);
 	}
 
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
index 6a5cc05..1ad81b7 100644
--- a/drivers/mmc/host/sdhci.h
+++ b/drivers/mmc/host/sdhci.h
@@ -16,6 +16,7 @@
 #include <linux/io.h>
 #include <linux/leds.h>
 #include <linux/interrupt.h>
+#include <linux/android_kabi.h>
 
 #include <linux/mmc/host.h>
 
@@ -356,6 +357,9 @@
  */
 #define MMC_CMD_TRANSFER_TIME	(10 * NSEC_PER_MSEC) /* max 10 ms */
 
+#define sdhci_err_stats_inc(host, err_name) \
+	mmc_debugfs_err_stats_inc((host)->mmc, MMC_ERR_##err_name)
+
 enum sdhci_cookie {
 	COOKIE_UNMAPPED,
 	COOKIE_PRE_MAPPED,	/* mapped by sdhci_pre_req() */
@@ -523,8 +527,6 @@
 
 	unsigned int clock;	/* Current clock (MHz) */
 	u8 pwr;			/* Current voltage */
-	u8 drv_type;		/* Current UHS-I driver type */
-	bool reinit_uhs;	/* Force UHS-related re-initialization */
 
 	bool runtime_suspended;	/* Host is runtime suspended */
 	bool bus_on;		/* Bus power prevents runtime suspend */
@@ -613,6 +615,19 @@
 
 	u64			data_timeout;
 
+	/*
+	 * ANDROID:
+	 * drv_type and reinit_uhs are here to preserve the ABI changes in commit 57ee7bc4c60a
+	 * ("mmc: sdhci: Fix voltage switch delay")
+	 */
+	ANDROID_KABI_USE(1, struct {
+			 u8 reinit_uhs	:1;
+			 u8 reserve01	:7;
+			 u8 drv_type;
+			 u16 reserve02;
+			 u32 reserve03;
+			 });
+
 	unsigned long private[] ____cacheline_aligned;
 };
 
@@ -660,6 +675,8 @@
 	void	(*request_done)(struct sdhci_host *host,
 				struct mmc_request *mrq);
 	void    (*dump_vendor_regs)(struct sdhci_host *host);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 #ifdef CONFIG_MMC_SDHCI_IO_ACCESSORS
diff --git a/drivers/mtd/nand/raw/nandsim.c b/drivers/mtd/nand/raw/nandsim.c
index 0750121..d1c7dbc 100644
--- a/drivers/mtd/nand/raw/nandsim.c
+++ b/drivers/mtd/nand/raw/nandsim.c
@@ -2452,5 +2452,6 @@
 module_exit(ns_cleanup_module);
 
 MODULE_LICENSE ("GPL");
+MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
 MODULE_AUTHOR ("Artem B. Bityuckiy");
 MODULE_DESCRIPTION ("The NAND flash simulator");
diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
index 762dc14..bf4cc0c 100644
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
@@ -1483,3 +1483,4 @@
 MODULE_DESCRIPTION("UBI - Unsorted Block Images");
 MODULE_AUTHOR("Artem Bityutskiy");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
index dac5616..1ffd0ef 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -880,7 +880,6 @@
 
 	bp->phylink_config.dev = &dev->dev;
 	bp->phylink_config.type = PHYLINK_NETDEV;
-	bp->phylink_config.mac_managed_pm = true;
 
 	if (bp->phy_interface == PHY_INTERFACE_MODE_SGMII) {
 		bp->phylink_config.poll_fixed_state = true;
diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
index 9787e79..454ede6 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
@@ -830,6 +830,8 @@
 	i40e_clean_tx_ring(tx_ring);
 	kfree(tx_ring->tx_bi);
 	tx_ring->tx_bi = NULL;
+	kfree(tx_ring->xsk_descs);
+	tx_ring->xsk_descs = NULL;
 
 	if (tx_ring->desc) {
 		dma_free_coherent(tx_ring->dev, tx_ring->size,
@@ -1431,6 +1433,13 @@
 	if (!tx_ring->tx_bi)
 		goto err;
 
+	if (ring_is_xdp(tx_ring)) {
+		tx_ring->xsk_descs = kcalloc(I40E_MAX_NUM_DESCRIPTORS, sizeof(*tx_ring->xsk_descs),
+					     GFP_KERNEL);
+		if (!tx_ring->xsk_descs)
+			goto err;
+	}
+
 	u64_stats_init(&tx_ring->syncp);
 
 	/* round up to nearest 4K */
@@ -1454,6 +1463,8 @@
 	return 0;
 
 err:
+	kfree(tx_ring->xsk_descs);
+	tx_ring->xsk_descs = NULL;
 	kfree(tx_ring->tx_bi);
 	tx_ring->tx_bi = NULL;
 	return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.h b/drivers/net/ethernet/intel/i40e/i40e_txrx.h
index f3b0b81..528c4db 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.h
+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.h
@@ -390,6 +390,7 @@
 	u16 rx_offset;
 	struct xdp_rxq_info xdp_rxq;
 	struct xsk_buff_pool *xsk_pool;
+	struct xdp_desc *xsk_descs;      /* For storing descriptors in the AF_XDP ZC path */
 } ____cacheline_internodealigned_in_smp;
 
 static inline bool ring_uses_build_skb(struct i40e_ring *ring)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_xsk.c b/drivers/net/ethernet/intel/i40e/i40e_xsk.c
index 7e50b8f..40cd542 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_xsk.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_xsk.c
@@ -524,11 +524,11 @@
  **/
 static bool i40e_xmit_zc(struct i40e_ring *xdp_ring, unsigned int budget)
 {
-	struct xdp_desc *descs = xdp_ring->xsk_pool->tx_descs;
+	struct xdp_desc *descs = xdp_ring->xsk_descs;
 	u32 nb_pkts, nb_processed = 0;
 	unsigned int total_bytes = 0;
 
-	nb_pkts = xsk_tx_peek_release_desc_batch(xdp_ring->xsk_pool, budget);
+	nb_pkts = xsk_tx_peek_release_desc_batch(xdp_ring->xsk_pool, descs, budget);
 	if (!nb_pkts)
 		return true;
 
diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c
index 98ce244..10b3f4f 100644
--- a/drivers/net/macsec.c
+++ b/drivers/net/macsec.c
@@ -160,19 +160,6 @@
 	return sa;
 }
 
-static struct macsec_rx_sa *macsec_active_rxsa_get(struct macsec_rx_sc *rx_sc)
-{
-	struct macsec_rx_sa *sa = NULL;
-	int an;
-
-	for (an = 0; an < MACSEC_NUM_AN; an++)	{
-		sa = macsec_rxsa_get(rx_sc->sa[an]);
-		if (sa)
-			break;
-	}
-	return sa;
-}
-
 static void free_rx_sc_rcu(struct rcu_head *head)
 {
 	struct macsec_rx_sc *rx_sc = container_of(head, struct macsec_rx_sc, rcu_head);
@@ -506,28 +493,18 @@
 	skb->protocol = eth_hdr(skb)->h_proto;
 }
 
-static unsigned int macsec_msdu_len(struct sk_buff *skb)
-{
-	struct macsec_dev *macsec = macsec_priv(skb->dev);
-	struct macsec_secy *secy = &macsec->secy;
-	bool sci_present = macsec_skb_cb(skb)->has_sci;
-
-	return skb->len - macsec_hdr_len(sci_present) - secy->icv_len;
-}
-
 static void macsec_count_tx(struct sk_buff *skb, struct macsec_tx_sc *tx_sc,
 			    struct macsec_tx_sa *tx_sa)
 {
-	unsigned int msdu_len = macsec_msdu_len(skb);
 	struct pcpu_tx_sc_stats *txsc_stats = this_cpu_ptr(tx_sc->stats);
 
 	u64_stats_update_begin(&txsc_stats->syncp);
 	if (tx_sc->encrypt) {
-		txsc_stats->stats.OutOctetsEncrypted += msdu_len;
+		txsc_stats->stats.OutOctetsEncrypted += skb->len;
 		txsc_stats->stats.OutPktsEncrypted++;
 		this_cpu_inc(tx_sa->stats->OutPktsEncrypted);
 	} else {
-		txsc_stats->stats.OutOctetsProtected += msdu_len;
+		txsc_stats->stats.OutOctetsProtected += skb->len;
 		txsc_stats->stats.OutPktsProtected++;
 		this_cpu_inc(tx_sa->stats->OutPktsProtected);
 	}
@@ -557,10 +534,9 @@
 	aead_request_free(macsec_skb_cb(skb)->req);
 
 	rcu_read_lock_bh();
-	macsec_count_tx(skb, &macsec->secy.tx_sc, macsec_skb_cb(skb)->tx_sa);
-	/* packet is encrypted/protected so tx_bytes must be calculated */
-	len = macsec_msdu_len(skb) + 2 * ETH_ALEN;
 	macsec_encrypt_finish(skb, dev);
+	macsec_count_tx(skb, &macsec->secy.tx_sc, macsec_skb_cb(skb)->tx_sa);
+	len = skb->len;
 	ret = dev_queue_xmit(skb);
 	count_tx(dev, ret, len);
 	rcu_read_unlock_bh();
@@ -719,7 +695,6 @@
 
 	macsec_skb_cb(skb)->req = req;
 	macsec_skb_cb(skb)->tx_sa = tx_sa;
-	macsec_skb_cb(skb)->has_sci = sci_present;
 	aead_request_set_callback(req, 0, macsec_encrypt_done, skb);
 
 	dev_hold(skb->dev);
@@ -761,17 +736,15 @@
 		u64_stats_update_begin(&rxsc_stats->syncp);
 		rxsc_stats->stats.InPktsLate++;
 		u64_stats_update_end(&rxsc_stats->syncp);
-		DEV_STATS_INC(secy->netdev, rx_dropped);
 		return false;
 	}
 
 	if (secy->validate_frames != MACSEC_VALIDATE_DISABLED) {
-		unsigned int msdu_len = macsec_msdu_len(skb);
 		u64_stats_update_begin(&rxsc_stats->syncp);
 		if (hdr->tci_an & MACSEC_TCI_E)
-			rxsc_stats->stats.InOctetsDecrypted += msdu_len;
+			rxsc_stats->stats.InOctetsDecrypted += skb->len;
 		else
-			rxsc_stats->stats.InOctetsValidated += msdu_len;
+			rxsc_stats->stats.InOctetsValidated += skb->len;
 		u64_stats_update_end(&rxsc_stats->syncp);
 	}
 
@@ -784,8 +757,6 @@
 			u64_stats_update_begin(&rxsc_stats->syncp);
 			rxsc_stats->stats.InPktsNotValid++;
 			u64_stats_update_end(&rxsc_stats->syncp);
-			this_cpu_inc(rx_sa->stats->InPktsNotValid);
-			DEV_STATS_INC(secy->netdev, rx_errors);
 			return false;
 		}
 
@@ -878,9 +849,9 @@
 
 	macsec_finalize_skb(skb, macsec->secy.icv_len,
 			    macsec_extra_len(macsec_skb_cb(skb)->has_sci));
-	len = skb->len;
 	macsec_reset_skb(skb, macsec->secy.netdev);
 
+	len = skb->len;
 	if (gro_cells_receive(&macsec->gro_cells, skb) == NET_RX_SUCCESS)
 		count_rx(dev, len);
 
@@ -1071,7 +1042,6 @@
 			u64_stats_update_begin(&secy_stats->syncp);
 			secy_stats->stats.InPktsNoTag++;
 			u64_stats_update_end(&secy_stats->syncp);
-			DEV_STATS_INC(macsec->secy.netdev, rx_dropped);
 			continue;
 		}
 
@@ -1181,7 +1151,6 @@
 		u64_stats_update_begin(&secy_stats->syncp);
 		secy_stats->stats.InPktsBadTag++;
 		u64_stats_update_end(&secy_stats->syncp);
-		DEV_STATS_INC(secy->netdev, rx_errors);
 		goto drop_nosa;
 	}
 
@@ -1192,15 +1161,11 @@
 		/* If validateFrames is Strict or the C bit in the
 		 * SecTAG is set, discard
 		 */
-		struct macsec_rx_sa *active_rx_sa = macsec_active_rxsa_get(rx_sc);
 		if (hdr->tci_an & MACSEC_TCI_C ||
 		    secy->validate_frames == MACSEC_VALIDATE_STRICT) {
 			u64_stats_update_begin(&rxsc_stats->syncp);
 			rxsc_stats->stats.InPktsNotUsingSA++;
 			u64_stats_update_end(&rxsc_stats->syncp);
-			DEV_STATS_INC(secy->netdev, rx_errors);
-			if (active_rx_sa)
-				this_cpu_inc(active_rx_sa->stats->InPktsNotUsingSA);
 			goto drop_nosa;
 		}
 
@@ -1210,8 +1175,6 @@
 		u64_stats_update_begin(&rxsc_stats->syncp);
 		rxsc_stats->stats.InPktsUnusedSA++;
 		u64_stats_update_end(&rxsc_stats->syncp);
-		if (active_rx_sa)
-			this_cpu_inc(active_rx_sa->stats->InPktsUnusedSA);
 		goto deliver;
 	}
 
@@ -1232,7 +1195,6 @@
 			u64_stats_update_begin(&rxsc_stats->syncp);
 			rxsc_stats->stats.InPktsLate++;
 			u64_stats_update_end(&rxsc_stats->syncp);
-			DEV_STATS_INC(macsec->secy.netdev, rx_dropped);
 			goto drop;
 		}
 	}
@@ -1261,7 +1223,6 @@
 deliver:
 	macsec_finalize_skb(skb, secy->icv_len,
 			    macsec_extra_len(macsec_skb_cb(skb)->has_sci));
-	len = skb->len;
 	macsec_reset_skb(skb, secy->netdev);
 
 	if (rx_sa)
@@ -1269,11 +1230,12 @@
 	macsec_rxsc_put(rx_sc);
 
 	skb_orphan(skb);
+	len = skb->len;
 	ret = gro_cells_receive(&macsec->gro_cells, skb);
 	if (ret == NET_RX_SUCCESS)
 		count_rx(dev, len);
 	else
-		DEV_STATS_INC(macsec->secy.netdev, rx_dropped);
+		macsec->secy.netdev->stats.rx_dropped++;
 
 	rcu_read_unlock();
 
@@ -1310,7 +1272,6 @@
 			u64_stats_update_begin(&secy_stats->syncp);
 			secy_stats->stats.InPktsNoSCI++;
 			u64_stats_update_end(&secy_stats->syncp);
-			DEV_STATS_INC(macsec->secy.netdev, rx_errors);
 			continue;
 		}
 
@@ -1329,7 +1290,7 @@
 			secy_stats->stats.InPktsUnknownSCI++;
 			u64_stats_update_end(&secy_stats->syncp);
 		} else {
-			DEV_STATS_INC(macsec->secy.netdev, rx_dropped);
+			macsec->secy.netdev->stats.rx_dropped++;
 		}
 	}
 
@@ -3438,21 +3399,21 @@
 
 	if (!secy->operational) {
 		kfree_skb(skb);
-		DEV_STATS_INC(dev, tx_dropped);
+		dev->stats.tx_dropped++;
 		return NETDEV_TX_OK;
 	}
 
-	len = skb->len;
 	skb = macsec_encrypt(skb, dev);
 	if (IS_ERR(skb)) {
 		if (PTR_ERR(skb) != -EINPROGRESS)
-			DEV_STATS_INC(dev, tx_dropped);
+			dev->stats.tx_dropped++;
 		return NETDEV_TX_OK;
 	}
 
 	macsec_count_tx(skb, &macsec->secy.tx_sc, macsec_skb_cb(skb)->tx_sa);
 
 	macsec_encrypt_finish(skb, dev);
+	len = skb->len;
 	ret = dev_queue_xmit(skb);
 	count_tx(dev, ret, len);
 	return ret;
@@ -3680,9 +3641,8 @@
 
 	dev_fetch_sw_netstats(s, dev->tstats);
 
-	s->rx_dropped = atomic_long_read(&dev->stats.__rx_dropped);
-	s->tx_dropped = atomic_long_read(&dev->stats.__tx_dropped);
-	s->rx_errors = atomic_long_read(&dev->stats.__rx_errors);
+	s->rx_dropped = dev->stats.rx_dropped;
+	s->tx_dropped = dev->stats.tx_dropped;
 }
 
 static int macsec_get_iflink(const struct net_device *dev)
diff --git a/drivers/net/mdio/of_mdio.c b/drivers/net/mdio/of_mdio.c
index 1e46e39..510822d 100644
--- a/drivers/net/mdio/of_mdio.c
+++ b/drivers/net/mdio/of_mdio.c
@@ -139,23 +139,21 @@
 EXPORT_SYMBOL(of_mdiobus_child_is_phy);
 
 /**
- * __of_mdiobus_register - Register mii_bus and create PHYs from the device tree
+ * of_mdiobus_register - Register mii_bus and create PHYs from the device tree
  * @mdio: pointer to mii_bus structure
  * @np: pointer to device_node of MDIO bus.
- * @owner: module owning the @mdio object.
  *
  * This function registers the mii_bus structure and registers a phy_device
  * for each child node of @np.
  */
-int __of_mdiobus_register(struct mii_bus *mdio, struct device_node *np,
-			  struct module *owner)
+int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np)
 {
 	struct device_node *child;
 	bool scanphys = false;
 	int addr, rc;
 
 	if (!np)
-		return __mdiobus_register(mdio, owner);
+		return mdiobus_register(mdio);
 
 	/* Do not continue if the node is disabled */
 	if (!of_device_is_available(np))
@@ -174,7 +172,7 @@
 	of_property_read_u32(np, "reset-post-delay-us", &mdio->reset_post_delay_us);
 
 	/* Register the MDIO bus */
-	rc = __mdiobus_register(mdio, owner);
+	rc = mdiobus_register(mdio);
 	if (rc)
 		return rc;
 
@@ -238,7 +236,7 @@
 	mdiobus_unregister(mdio);
 	return rc;
 }
-EXPORT_SYMBOL(__of_mdiobus_register);
+EXPORT_SYMBOL(of_mdiobus_register);
 
 /**
  * of_mdio_find_device - Given a device tree node, find the mdio_device
diff --git a/drivers/net/phy/mdio_devres.c b/drivers/net/phy/mdio_devres.c
index 69b829e..b560e99 100644
--- a/drivers/net/phy/mdio_devres.c
+++ b/drivers/net/phy/mdio_devres.c
@@ -98,14 +98,13 @@
 
 #if IS_ENABLED(CONFIG_OF_MDIO)
 /**
- * __devm_of_mdiobus_register - Resource managed variant of of_mdiobus_register()
+ * devm_of_mdiobus_register - Resource managed variant of of_mdiobus_register()
  * @dev:	Device to register mii_bus for
  * @mdio:	MII bus structure to register
  * @np:		Device node to parse
- * @owner:	Owning module
  */
-int __devm_of_mdiobus_register(struct device *dev, struct mii_bus *mdio,
-			       struct device_node *np, struct module *owner)
+int devm_of_mdiobus_register(struct device *dev, struct mii_bus *mdio,
+			     struct device_node *np)
 {
 	struct mdiobus_devres *dr;
 	int ret;
@@ -118,7 +117,7 @@
 	if (!dr)
 		return -ENOMEM;
 
-	ret = __of_mdiobus_register(mdio, np, owner);
+	ret = of_mdiobus_register(mdio, np);
 	if (ret) {
 		devres_free(dr);
 		return ret;
@@ -128,7 +127,7 @@
 	devres_add(dev, dr);
 	return 0;
 }
-EXPORT_SYMBOL(__devm_of_mdiobus_register);
+EXPORT_SYMBOL(devm_of_mdiobus_register);
 #endif /* CONFIG_OF_MDIO */
 
 MODULE_LICENSE("GPL");
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 1135e63a..dbbb535 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -31,7 +31,6 @@
 #include <linux/io.h>
 #include <linux/uaccess.h>
 #include <linux/atomic.h>
-#include <linux/suspend.h>
 #include <net/netlink.h>
 #include <net/genetlink.h>
 #include <net/sock.h>
@@ -985,28 +984,6 @@
 	struct phy_driver *drv = phydev->drv;
 	irqreturn_t ret;
 
-	/* Wakeup interrupts may occur during a system sleep transition.
-	 * Postpone handling until the PHY has resumed.
-	 */
-	if (IS_ENABLED(CONFIG_PM_SLEEP) && phydev->irq_suspended) {
-		struct net_device *netdev = phydev->attached_dev;
-
-		if (netdev) {
-			struct device *parent = netdev->dev.parent;
-
-			if (netdev->wol_enabled)
-				pm_system_wakeup();
-			else if (device_may_wakeup(&netdev->dev))
-				pm_wakeup_dev_event(&netdev->dev, 0, true);
-			else if (parent && device_may_wakeup(parent))
-				pm_wakeup_dev_event(parent, 0, true);
-		}
-
-		phydev->irq_rerun = 1;
-		disable_irq_nosync(irq);
-		return IRQ_HANDLED;
-	}
-
 	mutex_lock(&phydev->lock);
 	ret = drv->handle_interrupt(phydev);
 	mutex_unlock(&phydev->lock);
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index 0429825..671b0bf 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -278,15 +278,6 @@
 	if (phydev->mac_managed_pm)
 		return 0;
 
-	/* Wakeup interrupts may occur during the system sleep transition when
-	 * the PHY is inaccessible. Set flag to postpone handling until the PHY
-	 * has resumed. Wait for concurrent interrupt handler to complete.
-	 */
-	if (phy_interrupt_is_valid(phydev)) {
-		phydev->irq_suspended = 1;
-		synchronize_irq(phydev->irq);
-	}
-
 	/* We must stop the state machine manually, otherwise it stops out of
 	 * control, possibly with the phydev->lock held. Upon resume, netdev
 	 * may call phy routines that try to grab the same lock, and that may
@@ -332,20 +323,6 @@
 	if (ret < 0)
 		return ret;
 no_resume:
-	if (phy_interrupt_is_valid(phydev)) {
-		phydev->irq_suspended = 0;
-		synchronize_irq(phydev->irq);
-
-		/* Rerun interrupts which were postponed by phy_interrupt()
-		 * because they occurred during the system sleep transition.
-		 */
-		if (phydev->irq_rerun) {
-			phydev->irq_rerun = 0;
-			enable_irq(phydev->irq);
-			irq_wake_thread(phydev->irq, phydev);
-		}
-	}
-
 	if (phydev->attached_dev && phydev->adjust_link)
 		phy_start_machine(phydev);
 
diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c
index 422dc92..0e315e0 100644
--- a/drivers/net/phy/phylink.c
+++ b/drivers/net/phy/phylink.c
@@ -1050,9 +1050,6 @@
 	if (phy_interrupt_is_valid(phy))
 		phy_request_interrupt(phy);
 
-	if (pl->config->mac_managed_pm)
-		phy->mac_managed_pm = true;
-
 	return 0;
 }
 
diff --git a/drivers/net/wireguard/queueing.h b/drivers/net/wireguard/queueing.h
index a2e702f..3c9e815 100644
--- a/drivers/net/wireguard/queueing.h
+++ b/drivers/net/wireguard/queueing.h
@@ -82,6 +82,17 @@
 	memset(&skb->headers_start, 0,
 	       offsetof(struct sk_buff, headers_end) -
 		       offsetof(struct sk_buff, headers_start));
+
+	/* ANDROID:
+	 * Due to attempts to keep the ABI stable for struct sk_buff, the new
+	 * fields were incorrectly added _AFTER_ the headers_end field, which
+	 * requires that we manually copy the fields here from the old to the
+	 * new one.
+	 * Be sure to add any new field that is added in the
+	 * ANDROID_KABI_REPLACE() macros below here as well.
+	 */
+	skb->scm_io_uring = 0;
+
 	if (encapsulating) {
 		skb->l4_hash = l4_hash;
 		skb->sw_hash = sw_hash;
diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c
index fefdc67..e3fe5e0 100644
--- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
+++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
@@ -807,7 +807,7 @@
 		cfg80211_put_bss(ar->wiphy, bss);
 	} else if (vif->sme_state == SME_CONNECTED) {
 		struct cfg80211_roam_info roam_info = {
-			.bss = bss,
+			.links[0].bss = bss,
 			.req_ie = assoc_req_ie,
 			.req_ie_len = assoc_req_len,
 			.resp_ie = assoc_resp_ie,
@@ -1119,12 +1119,12 @@
 					NL80211_CHAN_HT20 : NL80211_CHAN_NO_HT);
 
 	mutex_lock(&vif->wdev.mtx);
-	cfg80211_ch_switch_notify(vif->ndev, &chandef);
+	cfg80211_ch_switch_notify(vif->ndev, &chandef, 0, 0);
 	mutex_unlock(&vif->wdev.mtx);
 }
 
 static int ath6kl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev,
-				   u8 key_index, bool pairwise,
+				   int link_id, u8 key_index, bool pairwise,
 				   const u8 *mac_addr,
 				   struct key_params *params)
 {
@@ -1249,7 +1249,7 @@
 }
 
 static int ath6kl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *ndev,
-				   u8 key_index, bool pairwise,
+				   int link_id, u8 key_index, bool pairwise,
 				   const u8 *mac_addr)
 {
 	struct ath6kl *ar = ath6kl_priv(ndev);
@@ -1279,7 +1279,7 @@
 }
 
 static int ath6kl_cfg80211_get_key(struct wiphy *wiphy, struct net_device *ndev,
-				   u8 key_index, bool pairwise,
+				   int link_id, u8 key_index, bool pairwise,
 				   const u8 *mac_addr, void *cookie,
 				   void (*callback) (void *cookie,
 						     struct key_params *))
@@ -1314,7 +1314,7 @@
 }
 
 static int ath6kl_cfg80211_set_default_key(struct wiphy *wiphy,
-					   struct net_device *ndev,
+					   struct net_device *ndev, int link_id,
 					   u8 key_index, bool unicast,
 					   bool multicast)
 {
@@ -2967,7 +2967,8 @@
 	return ath6kl_set_ies(vif, beacon);
 }
 
-static int ath6kl_stop_ap(struct wiphy *wiphy, struct net_device *dev)
+static int ath6kl_stop_ap(struct wiphy *wiphy, struct net_device *dev,
+			  unsigned int link_id)
 {
 	struct ath6kl *ar = ath6kl_priv(dev);
 	struct ath6kl_vif *vif = netdev_priv(dev);
@@ -3368,6 +3369,7 @@
 
 static int ath6kl_cfg80211_set_bitrate(struct wiphy *wiphy,
 				       struct net_device *dev,
+				       unsigned int link_id,
 				       const u8 *addr,
 				       const struct cfg80211_bitrate_mask *mask)
 {
diff --git a/drivers/net/wireless/ath/wil6210/cfg80211.c b/drivers/net/wireless/ath/wil6210/cfg80211.c
index 1ff2679..232c03d 100644
--- a/drivers/net/wireless/ath/wil6210/cfg80211.c
+++ b/drivers/net/wireless/ath/wil6210/cfg80211.c
@@ -1618,7 +1618,7 @@
 }
 
 static int wil_cfg80211_add_key(struct wiphy *wiphy,
-				struct net_device *ndev,
+				struct net_device *ndev, int link_id,
 				u8 key_index, bool pairwise,
 				const u8 *mac_addr,
 				struct key_params *params)
@@ -1695,7 +1695,7 @@
 }
 
 static int wil_cfg80211_del_key(struct wiphy *wiphy,
-				struct net_device *ndev,
+				struct net_device *ndev, int link_id,
 				u8 key_index, bool pairwise,
 				const u8 *mac_addr)
 {
@@ -1722,7 +1722,7 @@
 
 /* Need to be present or wiphy_new() will WARN */
 static int wil_cfg80211_set_default_key(struct wiphy *wiphy,
-					struct net_device *ndev,
+					struct net_device *ndev, int link_id,
 					u8 key_index, bool unicast,
 					bool multicast)
 {
@@ -2071,8 +2071,8 @@
 		key_params.key = vif->gtk;
 		key_params.key_len = vif->gtk_len;
 		key_params.seq_len = IEEE80211_GCMP_PN_LEN;
-		rc = wil_cfg80211_add_key(wiphy, ndev, vif->gtk_index, false,
-					  NULL, &key_params);
+		rc = wil_cfg80211_add_key(wiphy, ndev, -1, vif->gtk_index,
+					  false, NULL, &key_params);
 		if (rc)
 			wil_err(wil, "vif %d recovery add key failed (%d)\n",
 				i, rc);
@@ -2097,8 +2097,8 @@
 			     bcon->tail_len))
 		privacy = 1;
 
-	memcpy(vif->ssid, wdev->ssid, wdev->ssid_len);
-	vif->ssid_len = wdev->ssid_len;
+	memcpy(vif->ssid, wdev->u.ap.ssid, wdev->u.ap.ssid_len);
+	vif->ssid_len = wdev->u.ap.ssid_len;
 
 	/* in case privacy has changed, need to restart the AP */
 	if (vif->privacy != privacy) {
@@ -2107,7 +2107,7 @@
 
 		rc = _wil_cfg80211_start_ap(wiphy, ndev, vif->ssid,
 					    vif->ssid_len, privacy,
-					    wdev->beacon_interval,
+					    wdev->links[0].ap.beacon_interval,
 					    vif->channel,
 					    vif->wmi_edmg_channel, bcon,
 					    vif->hidden_ssid,
@@ -2185,7 +2185,8 @@
 }
 
 static int wil_cfg80211_stop_ap(struct wiphy *wiphy,
-				struct net_device *ndev)
+				struct net_device *ndev,
+				unsigned int link_id)
 {
 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
 	struct wil6210_vif *vif = ndev_to_vif(ndev);
diff --git a/drivers/net/wireless/ath/wil6210/debugfs.c b/drivers/net/wireless/ath/wil6210/debugfs.c
index ac7787e1..04d1aa0 100644
--- a/drivers/net/wireless/ath/wil6210/debugfs.c
+++ b/drivers/net/wireless/ath/wil6210/debugfs.c
@@ -1385,19 +1385,6 @@
 }
 DEFINE_SHOW_ATTRIBUTE(temp);
 
-/*---------freq------------*/
-static int freq_show(struct seq_file *s, void *data)
-{
-	struct wil6210_priv *wil = s->private;
-	struct wireless_dev *wdev = wil->main_ndev->ieee80211_ptr;
-	u32 freq = wdev->chandef.chan ? wdev->chandef.chan->center_freq : 0;
-
-	seq_printf(s, "Freq = %d\n", freq);
-
-	return 0;
-}
-DEFINE_SHOW_ATTRIBUTE(freq);
-
 /*---------link------------*/
 static int link_show(struct seq_file *s, void *data)
 {
@@ -2374,7 +2361,6 @@
 	{"pmcdata",	0444,		&fops_pmcdata},
 	{"pmcring",	0444,		&fops_pmcring},
 	{"temp",	0444,		&temp_fops},
-	{"freq",	0444,		&freq_fops},
 	{"link",	0444,		&link_fops},
 	{"info",	0444,		&info_fops},
 	{"recovery", 0644,		&fops_recovery},
diff --git a/drivers/net/wireless/ath/wil6210/wmi.c b/drivers/net/wireless/ath/wil6210/wmi.c
index 2dc8406..ed03b754 100644
--- a/drivers/net/wireless/ath/wil6210/wmi.c
+++ b/drivers/net/wireless/ath/wil6210/wmi.c
@@ -1822,8 +1822,8 @@
 	freq = ieee80211_channel_to_frequency(ch, NL80211_BAND_60GHZ);
 
 	memset(&info, 0, sizeof(info));
-	info.channel = ieee80211_get_channel(wiphy, freq);
-	info.bss = vif->bss;
+	info.links[0].channel = ieee80211_get_channel(wiphy, freq);
+	info.links[0].bss = vif->bss;
 	info.req_ie = assoc_req_ie;
 	info.req_ie_len = assoc_req_ie_len;
 	info.resp_ie = assoc_resp_ie;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
index b14c54d..c4b5852 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -2364,7 +2364,8 @@
 
 static s32
 brcmf_cfg80211_config_default_key(struct wiphy *wiphy, struct net_device *ndev,
-				  u8 key_idx, bool unicast, bool multicast)
+				  int link_id, u8 key_idx, bool unicast,
+				  bool multicast)
 {
 	struct brcmf_if *ifp = netdev_priv(ndev);
 	struct brcmf_pub *drvr = ifp->drvr;
@@ -2398,7 +2399,8 @@
 
 static s32
 brcmf_cfg80211_del_key(struct wiphy *wiphy, struct net_device *ndev,
-		       u8 key_idx, bool pairwise, const u8 *mac_addr)
+		       int link_id, u8 key_idx, bool pairwise,
+		       const u8 *mac_addr)
 {
 	struct brcmf_if *ifp = netdev_priv(ndev);
 	struct brcmf_wsec_key *key;
@@ -2435,8 +2437,8 @@
 
 static s32
 brcmf_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev,
-		       u8 key_idx, bool pairwise, const u8 *mac_addr,
-		       struct key_params *params)
+		       int link_id, u8 key_idx, bool pairwise,
+		       const u8 *mac_addr, struct key_params *params)
 {
 	struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
 	struct brcmf_if *ifp = netdev_priv(ndev);
@@ -2460,8 +2462,8 @@
 	}
 
 	if (params->key_len == 0)
-		return brcmf_cfg80211_del_key(wiphy, ndev, key_idx, pairwise,
-					      mac_addr);
+		return brcmf_cfg80211_del_key(wiphy, ndev, -1, key_idx,
+					      pairwise, mac_addr);
 
 	if (params->key_len > sizeof(key->data)) {
 		bphy_err(drvr, "Too long key length (%u)\n", params->key_len);
@@ -2556,8 +2558,9 @@
 }
 
 static s32
-brcmf_cfg80211_get_key(struct wiphy *wiphy, struct net_device *ndev, u8 key_idx,
-		       bool pairwise, const u8 *mac_addr, void *cookie,
+brcmf_cfg80211_get_key(struct wiphy *wiphy, struct net_device *ndev,
+		       int link_id, u8 key_idx, bool pairwise,
+		       const u8 *mac_addr, void *cookie,
 		       void (*callback)(void *cookie,
 					struct key_params *params))
 {
@@ -2613,7 +2616,8 @@
 
 static s32
 brcmf_cfg80211_config_default_mgmt_key(struct wiphy *wiphy,
-				       struct net_device *ndev, u8 key_idx)
+				       struct net_device *ndev, int link_id,
+				       u8 key_idx)
 {
 	struct brcmf_if *ifp = netdev_priv(ndev);
 
@@ -4947,7 +4951,8 @@
 	return err;
 }
 
-static int brcmf_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *ndev)
+static int brcmf_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *ndev,
+				  unsigned int link_id)
 {
 	struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
 	struct brcmf_if *ifp = netdev_priv(ndev);
@@ -5284,6 +5289,7 @@
 
 static int brcmf_cfg80211_get_channel(struct wiphy *wiphy,
 				      struct wireless_dev *wdev,
+				      unsigned int link_id,
 				      struct cfg80211_chan_def *chandef)
 {
 	struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
@@ -6002,8 +6008,8 @@
 done:
 	kfree(buf);
 
-	roam_info.channel = notify_channel;
-	roam_info.bssid = profile->bssid;
+	roam_info.links[0].channel = notify_channel;
+	roam_info.links[0].bssid = profile->bssid;
 	roam_info.req_ie = conn_info->req_ie;
 	roam_info.req_ie_len = conn_info->req_ie_len;
 	roam_info.resp_ie = conn_info->resp_ie;
@@ -6013,7 +6019,7 @@
 	brcmf_dbg(CONN, "Report roaming result\n");
 
 	if (profile->use_fwsup == BRCMF_PROFILE_FWSUP_1X && profile->is_ft) {
-		cfg80211_port_authorized(ndev, profile->bssid, GFP_KERNEL);
+		cfg80211_port_authorized(ndev, profile->bssid, NULL, 0, GFP_KERNEL);
 		brcmf_dbg(CONN, "Report port authorized\n");
 	}
 
@@ -6046,7 +6052,7 @@
 		} else {
 			conn_params.status = WLAN_STATUS_AUTH_TIMEOUT;
 		}
-		conn_params.bssid = profile->bssid;
+		conn_params.links[0].bssid = profile->bssid;
 		conn_params.req_ie = conn_info->req_ie;
 		conn_params.req_ie_len = conn_info->req_ie_len;
 		conn_params.resp_ie = conn_info->resp_ie;
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
index c3c3b5aa..45f81b77 100644
--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c
@@ -652,6 +652,7 @@
 		      ARRAY_SIZE(hwsim_channels_6ghz)];
 
 	struct ieee80211_channel *channel;
+	enum nl80211_chan_width bw;
 	u64 beacon_int	/* beacon interval in us */;
 	unsigned int rx_filter;
 	bool started, idle, scanning;
@@ -803,6 +804,40 @@
 #define hwsim_virtio_enabled false
 #endif
 
+static int hwsim_get_chanwidth(enum nl80211_chan_width bw)
+{
+	switch (bw) {
+	case NL80211_CHAN_WIDTH_20_NOHT:
+	case NL80211_CHAN_WIDTH_20:
+		return 20;
+	case NL80211_CHAN_WIDTH_40:
+		return 40;
+	case NL80211_CHAN_WIDTH_80:
+		return 80;
+	case NL80211_CHAN_WIDTH_80P80:
+	case NL80211_CHAN_WIDTH_160:
+		return 160;
+	case NL80211_CHAN_WIDTH_320:
+		return 320;
+	case NL80211_CHAN_WIDTH_5:
+		return 5;
+	case NL80211_CHAN_WIDTH_10:
+		return 10;
+	case NL80211_CHAN_WIDTH_1:
+		return 1;
+	case NL80211_CHAN_WIDTH_2:
+		return 2;
+	case NL80211_CHAN_WIDTH_4:
+		return 4;
+	case NL80211_CHAN_WIDTH_8:
+		return 8;
+	case NL80211_CHAN_WIDTH_16:
+		return 16;
+	}
+
+	return INT_MAX;
+}
+
 static void mac80211_hwsim_tx_frame(struct ieee80211_hw *hw,
 				    struct sk_buff *skb,
 				    struct ieee80211_channel *chan);
@@ -1599,7 +1634,8 @@
 	struct ieee80211_chanctx_conf *chanctx_conf;
 	struct ieee80211_channel *channel;
 	bool ack;
-	u32 _portid;
+	enum nl80211_chan_width confbw = NL80211_CHAN_WIDTH_20_NOHT;
+	u32 _portid, i;
 
 	if (WARN_ON(skb->len < 10)) {
 		/* Should not happen; just a sanity check for addr1 use */
@@ -1609,14 +1645,17 @@
 
 	if (!data->use_chanctx) {
 		channel = data->channel;
+		confbw = data->bw;
 	} else if (txi->hw_queue == 4) {
 		channel = data->tmp_chan;
 	} else {
 		chanctx_conf = rcu_dereference(txi->control.vif->chanctx_conf);
-		if (chanctx_conf)
+		if (chanctx_conf) {
 			channel = chanctx_conf->def.chan;
-		else
+			confbw = chanctx_conf->def.width;
+		} else {
 			channel = NULL;
+		}
 	}
 
 	if (WARN(!channel, "TX w/o channel - queue = %d\n", txi->hw_queue)) {
@@ -1640,6 +1679,25 @@
 				       txi->control.rates,
 				       ARRAY_SIZE(txi->control.rates));
 
+	for (i = 0; i < ARRAY_SIZE(txi->control.rates); i++) {
+		u16 rflags = txi->control.rates[i].flags;
+		/* initialize to data->bw for 5/10 MHz handling */
+		enum nl80211_chan_width bw = data->bw;
+
+		if (txi->control.rates[i].idx == -1)
+			break;
+
+		if (rflags & IEEE80211_TX_RC_40_MHZ_WIDTH)
+			bw = NL80211_CHAN_WIDTH_40;
+		else if (rflags & IEEE80211_TX_RC_80_MHZ_WIDTH)
+			bw = NL80211_CHAN_WIDTH_80;
+		else if (rflags & IEEE80211_TX_RC_160_MHZ_WIDTH)
+			bw = NL80211_CHAN_WIDTH_160;
+
+		if (WARN_ON(hwsim_get_chanwidth(bw) > hwsim_get_chanwidth(confbw)))
+			return;
+	}
+
 	if (skb->len >= 24 + 8 &&
 	    ieee80211_is_probe_resp(hdr->frame_control)) {
 		/* fake header transmission time */
@@ -1939,6 +1997,7 @@
 		}
 
 		data->channel = conf->chandef.chan;
+		data->bw = conf->chandef.width;
 
 		for (idx = 0; idx < ARRAY_SIZE(data->survey_data); idx++) {
 			if (data->survey_data[idx].channel &&
@@ -1950,6 +2009,7 @@
 		}
 	} else {
 		data->channel = conf->chandef.chan;
+		data->bw = conf->chandef.width;
 	}
 	mutex_unlock(&data->mutex);
 
@@ -2081,12 +2141,51 @@
 		wiphy_dbg(hw->wiphy, "  TX Power: %d dBm\n", info->txpower);
 }
 
+static void
+mac80211_hwsim_sta_rc_update(struct ieee80211_hw *hw,
+			     struct ieee80211_vif *vif,
+			     struct ieee80211_sta *sta,
+			     u32 changed)
+{
+	struct mac80211_hwsim_data *data = hw->priv;
+	u32 bw = U32_MAX;
+	enum nl80211_chan_width confbw = NL80211_CHAN_WIDTH_20_NOHT;
+
+	switch (sta->bandwidth) {
+#define C(_bw) case IEEE80211_STA_RX_BW_##_bw: bw = _bw; break
+	C(20);
+	C(40);
+	C(80);
+	C(160);
+#undef C
+	}
+
+	if (!data->use_chanctx) {
+		confbw = data->bw;
+	} else {
+		struct ieee80211_chanctx_conf *chanctx_conf;
+
+		rcu_read_lock();
+		chanctx_conf = rcu_dereference(vif->chanctx_conf);
+
+		if (!WARN_ON(!chanctx_conf))
+			confbw = chanctx_conf->def.width;
+		rcu_read_unlock();
+	}
+
+	WARN(bw > hwsim_get_chanwidth(confbw),
+	     "intf %pM: bad STA %pM bandwidth %d MHz (%d) > channel config %d MHz (%d)\n",
+	     vif->addr, sta->addr, bw, sta->bandwidth,
+	     hwsim_get_chanwidth(data->bw), data->bw);
+}
+
 static int mac80211_hwsim_sta_add(struct ieee80211_hw *hw,
 				  struct ieee80211_vif *vif,
 				  struct ieee80211_sta *sta)
 {
 	hwsim_check_magic(vif);
 	hwsim_set_sta_magic(sta);
+	mac80211_hwsim_sta_rc_update(hw, vif, sta, 0);
 
 	return 0;
 }
@@ -2665,6 +2764,7 @@
 	.sta_add = mac80211_hwsim_sta_add,			\
 	.sta_remove = mac80211_hwsim_sta_remove,		\
 	.sta_notify = mac80211_hwsim_sta_notify,		\
+	.sta_rc_update = mac80211_hwsim_sta_rc_update,		\
 	.set_tim = mac80211_hwsim_set_tim,			\
 	.conf_tx = mac80211_hwsim_conf_tx,			\
 	.get_survey = mac80211_hwsim_get_survey,		\
diff --git a/drivers/net/wireless/marvell/libertas/cfg.c b/drivers/net/wireless/marvell/libertas/cfg.c
index 4e3de68..b9e6743 100644
--- a/drivers/net/wireless/marvell/libertas/cfg.c
+++ b/drivers/net/wireless/marvell/libertas/cfg.c
@@ -1437,7 +1437,7 @@
 }
 
 static int lbs_cfg_set_default_key(struct wiphy *wiphy,
-				   struct net_device *netdev,
+				   struct net_device *netdev, int link_id,
 				   u8 key_index, bool unicast,
 				   bool multicast)
 {
@@ -1457,8 +1457,8 @@
 
 
 static int lbs_cfg_add_key(struct wiphy *wiphy, struct net_device *netdev,
-			   u8 idx, bool pairwise, const u8 *mac_addr,
-			   struct key_params *params)
+			   int link_id, u8 idx, bool pairwise,
+			   const u8 *mac_addr, struct key_params *params)
 {
 	struct lbs_private *priv = wiphy_priv(wiphy);
 	u16 key_info;
@@ -1518,7 +1518,8 @@
 
 
 static int lbs_cfg_del_key(struct wiphy *wiphy, struct net_device *netdev,
-			   u8 key_index, bool pairwise, const u8 *mac_addr)
+			   int link_id, u8 key_index, bool pairwise,
+			   const u8 *mac_addr)
 {
 
 	lbs_deb_assoc("del_key: key_idx %d, mac_addr %pM\n",
diff --git a/drivers/net/wireless/marvell/libertas/mesh.c b/drivers/net/wireless/marvell/libertas/mesh.c
index 6cbba84..d57a926 100644
--- a/drivers/net/wireless/marvell/libertas/mesh.c
+++ b/drivers/net/wireless/marvell/libertas/mesh.c
@@ -109,9 +109,9 @@
 
 		if (priv->mesh_dev) {
 			mesh_wdev = priv->mesh_dev->ieee80211_ptr;
-			ie->val.mesh_id_len = mesh_wdev->mesh_id_up_len;
-			memcpy(ie->val.mesh_id, mesh_wdev->ssid,
-						mesh_wdev->mesh_id_up_len);
+			ie->val.mesh_id_len = mesh_wdev->u.mesh.id_up_len;
+			memcpy(ie->val.mesh_id, mesh_wdev->u.mesh.id,
+						mesh_wdev->u.mesh.id_up_len);
 		}
 
 		ie->len = sizeof(struct mrvl_meshie_val) -
@@ -986,8 +986,8 @@
 	mesh_wdev->wiphy = priv->wdev->wiphy;
 
 	if (priv->mesh_tlv) {
-		sprintf(mesh_wdev->ssid, "mesh");
-		mesh_wdev->mesh_id_up_len = 4;
+		sprintf(mesh_wdev->u.mesh.id, "mesh");
+		mesh_wdev->u.mesh.id_up_len = 4;
 	}
 
 	mesh_wdev->netdev = mesh_dev;
diff --git a/drivers/net/wireless/marvell/mwifiex/11h.c b/drivers/net/wireless/marvell/mwifiex/11h.c
index 3fa25cd..e8c1c60 100644
--- a/drivers/net/wireless/marvell/mwifiex/11h.c
+++ b/drivers/net/wireless/marvell/mwifiex/11h.c
@@ -304,6 +304,6 @@
 	mwifiex_dbg(priv->adapter, MSG,
 		    "indicating channel switch completion to kernel\n");
 	mutex_lock(&priv->wdev.mtx);
-	cfg80211_ch_switch_notify(priv->netdev, &priv->dfs_chandef);
+	cfg80211_ch_switch_notify(priv->netdev, &priv->dfs_chandef, 0, 0);
 	mutex_unlock(&priv->wdev.mtx);
 }
diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
index 97f0f39..8c4f24d 100644
--- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
+++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
@@ -154,7 +154,8 @@
  */
 static int
 mwifiex_cfg80211_del_key(struct wiphy *wiphy, struct net_device *netdev,
-			 u8 key_index, bool pairwise, const u8 *mac_addr)
+			 int link_id, u8 key_index, bool pairwise,
+			 const u8 *mac_addr)
 {
 	struct mwifiex_private *priv = mwifiex_netdev_get_priv(netdev);
 	static const u8 bc_mac[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
@@ -443,7 +444,7 @@
  */
 static int
 mwifiex_cfg80211_set_default_key(struct wiphy *wiphy, struct net_device *netdev,
-				 u8 key_index, bool unicast,
+				 int link_id, u8 key_index, bool unicast,
 				 bool multicast)
 {
 	struct mwifiex_private *priv = mwifiex_netdev_get_priv(netdev);
@@ -468,8 +469,8 @@
  */
 static int
 mwifiex_cfg80211_add_key(struct wiphy *wiphy, struct net_device *netdev,
-			 u8 key_index, bool pairwise, const u8 *mac_addr,
-			 struct key_params *params)
+			 int link_id, u8 key_index, bool pairwise,
+			 const u8 *mac_addr, struct key_params *params)
 {
 	struct mwifiex_private *priv = mwifiex_netdev_get_priv(netdev);
 	struct mwifiex_wep_key *wep_key;
@@ -506,6 +507,7 @@
 static int
 mwifiex_cfg80211_set_default_mgmt_key(struct wiphy *wiphy,
 				      struct net_device *netdev,
+				      int link_id,
 				      u8 key_index)
 {
 	struct mwifiex_private *priv = mwifiex_netdev_get_priv(netdev);
@@ -1680,10 +1682,12 @@
  * Function configures data rates to firmware using bitrate mask
  * provided by cfg80211.
  */
-static int mwifiex_cfg80211_set_bitrate_mask(struct wiphy *wiphy,
-				struct net_device *dev,
-				const u8 *peer,
-				const struct cfg80211_bitrate_mask *mask)
+static int
+mwifiex_cfg80211_set_bitrate_mask(struct wiphy *wiphy,
+				  struct net_device *dev,
+				  unsigned int link_id,
+				  const u8 *peer,
+				  const struct cfg80211_bitrate_mask *mask)
 {
 	struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev);
 	u16 bitmap_rates[MAX_BITMAP_RATES_SIZE];
@@ -1925,7 +1929,8 @@
 /* cfg80211 operation handler for stop ap.
  * Function stops BSS running at uAP interface.
  */
-static int mwifiex_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *dev)
+static int mwifiex_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *dev,
+				    unsigned int link_id)
 {
 	struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev);
 
@@ -2348,7 +2353,7 @@
 		return -EINVAL;
 	}
 
-	if (priv->wdev.current_bss) {
+	if (priv->wdev.connected) {
 		mwifiex_dbg(adapter, ERROR,
 			    "%s: already connected\n", dev->name);
 		return -EALREADY;
@@ -2576,7 +2581,7 @@
 		return -EBUSY;
 	}
 
-	if (!priv->wdev.current_bss && priv->scan_block)
+	if (!priv->wdev.connected && priv->scan_block)
 		priv->scan_block = false;
 
 	if (!mwifiex_stop_bg_scan(priv))
@@ -3987,6 +3992,7 @@
 
 static int mwifiex_cfg80211_get_channel(struct wiphy *wiphy,
 					struct wireless_dev *wdev,
+					unsigned int link_id,
 					struct cfg80211_chan_def *chandef)
 {
 	struct mwifiex_private *priv = mwifiex_netdev_get_priv(wdev->netdev);
diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
index 48ea00d..6b87469 100644
--- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
+++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
@@ -1786,29 +1786,31 @@
 		wmm_qos_info->qos_info = 0;
 		config_len += sizeof(struct mwifiex_ie_types_qos_info);
 
-		if (params->ht_capa) {
+		if (params->link_sta_params.ht_capa) {
 			ht_capab = (struct mwifiex_ie_types_htcap *)(pos +
 								    config_len);
 			ht_capab->header.type =
 					    cpu_to_le16(WLAN_EID_HT_CAPABILITY);
 			ht_capab->header.len =
 				   cpu_to_le16(sizeof(struct ieee80211_ht_cap));
-			memcpy(&ht_capab->ht_cap, params->ht_capa,
+			memcpy(&ht_capab->ht_cap, params->link_sta_params.ht_capa,
 			       sizeof(struct ieee80211_ht_cap));
 			config_len += sizeof(struct mwifiex_ie_types_htcap);
 		}
 
-		if (params->supported_rates && params->supported_rates_len) {
+		if (params->link_sta_params.supported_rates &&
+		    params->link_sta_params.supported_rates_len) {
 			tlv_rates = (struct host_cmd_tlv_rates *)(pos +
 								  config_len);
 			tlv_rates->header.type =
 					       cpu_to_le16(WLAN_EID_SUPP_RATES);
 			tlv_rates->header.len =
-				       cpu_to_le16(params->supported_rates_len);
-			memcpy(tlv_rates->rates, params->supported_rates,
-			       params->supported_rates_len);
+				       cpu_to_le16(params->link_sta_params.supported_rates_len);
+			memcpy(tlv_rates->rates,
+			       params->link_sta_params.supported_rates,
+			       params->link_sta_params.supported_rates_len);
 			config_len += sizeof(struct host_cmd_tlv_rates) +
-				      params->supported_rates_len;
+				      params->link_sta_params.supported_rates_len;
 		}
 
 		if (params->ext_capab && params->ext_capab_len) {
@@ -1822,14 +1824,14 @@
 			config_len += sizeof(struct mwifiex_ie_types_extcap) +
 				      params->ext_capab_len;
 		}
-		if (params->vht_capa) {
+		if (params->link_sta_params.vht_capa) {
 			vht_capab = (struct mwifiex_ie_types_vhtcap *)(pos +
 								    config_len);
 			vht_capab->header.type =
 					   cpu_to_le16(WLAN_EID_VHT_CAPABILITY);
 			vht_capab->header.len =
 				  cpu_to_le16(sizeof(struct ieee80211_vht_cap));
-			memcpy(&vht_capab->vht_cap, params->vht_capa,
+			memcpy(&vht_capab->vht_cap, params->link_sta_params.vht_capa,
 			       sizeof(struct ieee80211_vht_cap));
 			config_len += sizeof(struct mwifiex_ie_types_vhtcap);
 		}
diff --git a/drivers/net/wireless/microchip/wilc1000/cfg80211.c b/drivers/net/wireless/microchip/wilc1000/cfg80211.c
index 1688144..18387d0 100644
--- a/drivers/net/wireless/microchip/wilc1000/cfg80211.c
+++ b/drivers/net/wireless/microchip/wilc1000/cfg80211.c
@@ -539,8 +539,9 @@
 	return 0;
 }
 
-static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index,
-		   bool pairwise, const u8 *mac_addr, struct key_params *params)
+static int add_key(struct wiphy *wiphy, struct net_device *netdev, int link_id,
+		   u8 key_index, bool pairwise, const u8 *mac_addr,
+		   struct key_params *params)
 
 {
 	int ret = 0, keylen = params->key_len;
@@ -649,7 +650,7 @@
 	return ret;
 }
 
-static int del_key(struct wiphy *wiphy, struct net_device *netdev,
+static int del_key(struct wiphy *wiphy, struct net_device *netdev, int link_id,
 		   u8 key_index,
 		   bool pairwise,
 		   const u8 *mac_addr)
@@ -686,8 +687,9 @@
 	return 0;
 }
 
-static int get_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index,
-		   bool pairwise, const u8 *mac_addr, void *cookie,
+static int get_key(struct wiphy *wiphy, struct net_device *netdev, int link_id,
+		   u8 key_index, bool pairwise, const u8 *mac_addr,
+		   void *cookie,
 		   void (*callback)(void *cookie, struct key_params *))
 {
 	struct wilc_vif *vif = netdev_priv(netdev);
@@ -714,7 +716,8 @@
 }
 
 static int set_default_key(struct wiphy *wiphy, struct net_device *netdev,
-			   u8 key_index, bool unicast, bool multicast)
+			   int link_id, u8 key_index, bool unicast,
+			   bool multicast)
 {
 	struct wilc_vif *vif = netdev_priv(netdev);
 
@@ -1396,7 +1399,8 @@
 	return wilc_add_beacon(vif, 0, 0, beacon);
 }
 
-static int stop_ap(struct wiphy *wiphy, struct net_device *dev)
+static int stop_ap(struct wiphy *wiphy, struct net_device *dev,
+		   unsigned int link_id)
 {
 	int ret;
 	struct wilc_vif *vif = netdev_priv(dev);
diff --git a/drivers/net/wireless/microchip/wilc1000/hif.c b/drivers/net/wireless/microchip/wilc1000/hif.c
index a7bca04..41e3f0e 100644
--- a/drivers/net/wireless/microchip/wilc1000/hif.c
+++ b/drivers/net/wireless/microchip/wilc1000/hif.c
@@ -806,15 +806,15 @@
 	put_unaligned_le16(params->aid, cur_byte);
 	cur_byte += 2;
 
-	*cur_byte++ = params->supported_rates_len;
-	if (params->supported_rates_len > 0)
-		memcpy(cur_byte, params->supported_rates,
-		       params->supported_rates_len);
-	cur_byte += params->supported_rates_len;
+	*cur_byte++ = params->link_sta_params.supported_rates_len;
+	if (params->link_sta_params.supported_rates_len > 0)
+		memcpy(cur_byte, params->link_sta_params.supported_rates,
+		       params->link_sta_params.supported_rates_len);
+	cur_byte += params->link_sta_params.supported_rates_len;
 
-	if (params->ht_capa) {
+	if (params->link_sta_params.ht_capa) {
 		*cur_byte++ = true;
-		memcpy(cur_byte, params->ht_capa,
+		memcpy(cur_byte, params->link_sta_params.ht_capa,
 		       sizeof(struct ieee80211_ht_cap));
 	} else {
 		*cur_byte++ = false;
@@ -1820,7 +1820,8 @@
 
 	wid.id = WID_ADD_STA;
 	wid.type = WID_BIN;
-	wid.size = WILC_ADD_STA_LENGTH + params->supported_rates_len;
+	wid.size = WILC_ADD_STA_LENGTH +
+		   params->link_sta_params.supported_rates_len;
 	wid.val = kmalloc(wid.size, GFP_KERNEL);
 	if (!wid.val)
 		return -ENOMEM;
@@ -1905,7 +1906,8 @@
 
 	wid.id = WID_EDIT_STA;
 	wid.type = WID_BIN;
-	wid.size = WILC_ADD_STA_LENGTH + params->supported_rates_len;
+	wid.size = WILC_ADD_STA_LENGTH +
+		   params->link_sta_params.supported_rates_len;
 	wid.val = kmalloc(wid.size, GFP_KERNEL);
 	if (!wid.val)
 		return -ENOMEM;
diff --git a/drivers/net/wireless/quantenna/qtnfmac/cfg80211.c b/drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
index 84b15a6..832dd00 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
@@ -352,7 +352,8 @@
 	return ret;
 }
 
-static int qtnf_stop_ap(struct wiphy *wiphy, struct net_device *dev)
+static int qtnf_stop_ap(struct wiphy *wiphy, struct net_device *dev,
+			unsigned int link_id)
 {
 	struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
 	int ret;
@@ -500,7 +501,7 @@
 
 	switch (vif->wdev.iftype) {
 	case NL80211_IFTYPE_STATION:
-		if (idx != 0 || !vif->wdev.current_bss)
+		if (idx != 0 || !vif->wdev.connected)
 			return -ENOENT;
 
 		ether_addr_copy(mac, vif->bssid);
@@ -531,8 +532,8 @@
 }
 
 static int qtnf_add_key(struct wiphy *wiphy, struct net_device *dev,
-			u8 key_index, bool pairwise, const u8 *mac_addr,
-			struct key_params *params)
+			int link_id, u8 key_index, bool pairwise,
+			const u8 *mac_addr, struct key_params *params)
 {
 	struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
 	int ret;
@@ -547,7 +548,8 @@
 }
 
 static int qtnf_del_key(struct wiphy *wiphy, struct net_device *dev,
-			u8 key_index, bool pairwise, const u8 *mac_addr)
+			int link_id, u8 key_index, bool pairwise,
+			const u8 *mac_addr)
 {
 	struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
 	int ret;
@@ -568,7 +570,8 @@
 }
 
 static int qtnf_set_default_key(struct wiphy *wiphy, struct net_device *dev,
-				u8 key_index, bool unicast, bool multicast)
+				int link_id, u8 key_index, bool unicast,
+				bool multicast)
 {
 	struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
 	int ret;
@@ -584,7 +587,7 @@
 
 static int
 qtnf_set_default_mgmt_key(struct wiphy *wiphy, struct net_device *dev,
-			  u8 key_index)
+			  int link_id, u8 key_index)
 {
 	struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
 	int ret;
@@ -729,7 +732,7 @@
 		pr_err("VIF%u.%u: failed to disconnect\n",
 		       mac->macid, vif->vifid);
 
-	if (vif->wdev.current_bss) {
+	if (vif->wdev.connected) {
 		netif_carrier_off(vif->netdev);
 		cfg80211_disconnected(vif->netdev, reason_code,
 				      NULL, 0, true, GFP_KERNEL);
@@ -745,10 +748,11 @@
 	struct qtnf_wmac *mac = wiphy_priv(wiphy);
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
 	struct ieee80211_supported_band *sband;
-	const struct cfg80211_chan_def *chandef = &wdev->chandef;
+	const struct cfg80211_chan_def *chandef = wdev_chandef(wdev, 0);
 	struct ieee80211_channel *chan;
 	int ret;
 
+
 	sband = wiphy->bands[NL80211_BAND_2GHZ];
 	if (sband && idx >= sband->n_channels) {
 		idx -= sband->n_channels;
@@ -765,7 +769,7 @@
 	survey->channel = chan;
 	survey->filled = 0x0;
 
-	if (chan == chandef->chan)
+	if (chandef && chan == chandef->chan)
 		survey->filled = SURVEY_INFO_IN_USE;
 
 	ret = qtnf_cmd_get_chan_stats(mac, chan->center_freq, survey);
@@ -778,7 +782,7 @@
 
 static int
 qtnf_get_channel(struct wiphy *wiphy, struct wireless_dev *wdev,
-		 struct cfg80211_chan_def *chandef)
+		 unsigned int link_id, struct cfg80211_chan_def *chandef)
 {
 	struct net_device *ndev = wdev->netdev;
 	struct qtnf_vif *vif;
diff --git a/drivers/net/wireless/quantenna/qtnfmac/commands.c b/drivers/net/wireless/quantenna/qtnfmac/commands.c
index c68563c..0fad536 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/commands.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/commands.c
@@ -241,6 +241,7 @@
 	struct qlink_auth_encr *aen;
 	int ret;
 	int i;
+	int n;
 
 	if (!qtnf_cmd_start_ap_can_fit(vif, s))
 		return -E2BIG;
@@ -280,8 +281,9 @@
 	for (i = 0; i < QLINK_MAX_NR_CIPHER_SUITES; i++)
 		aen->ciphers_pairwise[i] =
 				cpu_to_le32(s->crypto.ciphers_pairwise[i]);
-	aen->n_akm_suites = cpu_to_le32(s->crypto.n_akm_suites);
-	for (i = 0; i < QLINK_MAX_NR_AKM_SUITES; i++)
+	n = min(QLINK_MAX_NR_AKM_SUITES, s->crypto.n_akm_suites);
+	aen->n_akm_suites = cpu_to_le32(n);
+	for (i = 0; i < n; i++)
 		aen->akm_suites[i] = cpu_to_le32(s->crypto.akm_suites[i]);
 	aen->control_port = s->crypto.control_port;
 	aen->control_port_no_encrypt = s->crypto.control_port_no_encrypt;
@@ -2005,7 +2007,7 @@
 		dwell_active = scan_req->duration;
 		dwell_passive = scan_req->duration;
 	} else if (wdev->iftype == NL80211_IFTYPE_STATION &&
-		   wdev->current_bss) {
+		   wdev->connected) {
 		/* let device select dwell based on traffic conditions */
 		dwell_active = QTNF_SCAN_TIME_AUTO;
 		dwell_passive = QTNF_SCAN_TIME_AUTO;
@@ -2076,6 +2078,7 @@
 	struct qlink_auth_encr *aen;
 	int ret;
 	int i;
+	int n;
 	u32 connect_flags = 0;
 
 	cmd_skb = qtnf_cmd_alloc_new_cmdskb(vif->mac->macid, vif->vifid,
@@ -2132,9 +2135,10 @@
 		aen->ciphers_pairwise[i] =
 			cpu_to_le32(sme->crypto.ciphers_pairwise[i]);
 
-	aen->n_akm_suites = cpu_to_le32(sme->crypto.n_akm_suites);
+	n = min(QLINK_MAX_NR_AKM_SUITES, sme->crypto.n_akm_suites);
+	aen->n_akm_suites = cpu_to_le32(n);
 
-	for (i = 0; i < QLINK_MAX_NR_AKM_SUITES; i++)
+	for (i = 0; i < n; i++)
 		aen->akm_suites[i] = cpu_to_le32(sme->crypto.akm_suites[i]);
 
 	aen->control_port = sme->crypto.control_port;
diff --git a/drivers/net/wireless/quantenna/qtnfmac/event.c b/drivers/net/wireless/quantenna/qtnfmac/event.c
index 8dc8057..31bc58e 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/event.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/event.c
@@ -189,7 +189,7 @@
 			vif->mac->macid, vif->vifid,
 			join_info->bssid, chandef.chan->hw_value);
 
-		if (!vif->wdev.ssid_len) {
+		if (!vif->wdev.u.client.ssid_len) {
 			pr_warn("VIF%u.%u: SSID unknown for BSS:%pM\n",
 				vif->mac->macid, vif->vifid,
 				join_info->bssid);
@@ -197,7 +197,7 @@
 			goto done;
 		}
 
-		ie = kzalloc(2 + vif->wdev.ssid_len, GFP_KERNEL);
+		ie = kzalloc(2 + vif->wdev.u.client.ssid_len, GFP_KERNEL);
 		if (!ie) {
 			pr_warn("VIF%u.%u: IE alloc failed for BSS:%pM\n",
 				vif->mac->macid, vif->vifid,
@@ -207,14 +207,15 @@
 		}
 
 		ie[0] = WLAN_EID_SSID;
-		ie[1] = vif->wdev.ssid_len;
-		memcpy(ie + 2, vif->wdev.ssid, vif->wdev.ssid_len);
+		ie[1] = vif->wdev.u.client.ssid_len;
+		memcpy(ie + 2, vif->wdev.u.client.ssid,
+		       vif->wdev.u.client.ssid_len);
 
 		bss = cfg80211_inform_bss(wiphy, chandef.chan,
 					  CFG80211_BSS_FTYPE_UNKNOWN,
 					  join_info->bssid, 0,
 					  WLAN_CAPABILITY_ESS, 100,
-					  ie, 2 + vif->wdev.ssid_len,
+					  ie, 2 + vif->wdev.u.client.ssid_len,
 					  0, GFP_KERNEL);
 		if (!bss) {
 			pr_warn("VIF%u.%u: can't connect to unknown BSS: %pM\n",
@@ -470,14 +471,14 @@
 			continue;
 
 		if (vif->wdev.iftype == NL80211_IFTYPE_STATION &&
-		    !vif->wdev.current_bss)
+		    !vif->wdev.connected)
 			continue;
 
 		if (!vif->netdev)
 			continue;
 
 		mutex_lock(&vif->wdev.mtx);
-		cfg80211_ch_switch_notify(vif->netdev, &chandef);
+		cfg80211_ch_switch_notify(vif->netdev, &chandef, 0, 0);
 		mutex_unlock(&vif->wdev.mtx);
 	}
 
@@ -661,6 +662,7 @@
 	memcpy(ie, owe_ev->ies, ie_len);
 	owe_info.ie_len = ie_len;
 	owe_info.ie = ie;
+	owe_info.assoc_link_id = -1;
 
 	pr_info("%s: external OWE processing: peer=%pM\n",
 		vif->netdev->name, owe_ev->peer);
diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c
index 70841d13..2f540b04b 100644
--- a/drivers/net/wireless/rndis_wlan.c
+++ b/drivers/net/wireless/rndis_wlan.c
@@ -489,14 +489,16 @@
 static int rndis_leave_ibss(struct wiphy *wiphy, struct net_device *dev);
 
 static int rndis_add_key(struct wiphy *wiphy, struct net_device *netdev,
-			 u8 key_index, bool pairwise, const u8 *mac_addr,
-			 struct key_params *params);
+			 int link_id,  u8 key_index, bool pairwise,
+			 const u8 *mac_addr, struct key_params *params);
 
 static int rndis_del_key(struct wiphy *wiphy, struct net_device *netdev,
-			 u8 key_index, bool pairwise, const u8 *mac_addr);
+			 int link_id, u8 key_index, bool pairwise,
+			 const u8 *mac_addr);
 
 static int rndis_set_default_key(struct wiphy *wiphy, struct net_device *netdev,
-				 u8 key_index, bool unicast, bool multicast);
+				 int link_id, u8 key_index, bool unicast,
+				 bool multicast);
 
 static int rndis_get_station(struct wiphy *wiphy, struct net_device *dev,
 			     const u8 *mac, struct station_info *sinfo);
@@ -2370,8 +2372,8 @@
 }
 
 static int rndis_add_key(struct wiphy *wiphy, struct net_device *netdev,
-			 u8 key_index, bool pairwise, const u8 *mac_addr,
-			 struct key_params *params)
+			 int link_id,  u8 key_index, bool pairwise,
+			 const u8 *mac_addr, struct key_params *params)
 {
 	struct rndis_wlan_private *priv = wiphy_priv(wiphy);
 	struct usbnet *usbdev = priv->usbdev;
@@ -2406,7 +2408,8 @@
 }
 
 static int rndis_del_key(struct wiphy *wiphy, struct net_device *netdev,
-			 u8 key_index, bool pairwise, const u8 *mac_addr)
+			 int link_id, u8 key_index, bool pairwise,
+			 const u8 *mac_addr)
 {
 	struct rndis_wlan_private *priv = wiphy_priv(wiphy);
 	struct usbnet *usbdev = priv->usbdev;
@@ -2417,7 +2420,8 @@
 }
 
 static int rndis_set_default_key(struct wiphy *wiphy, struct net_device *netdev,
-				 u8 key_index, bool unicast, bool multicast)
+				 int link_id, u8 key_index, bool unicast,
+				 bool multicast)
 {
 	struct rndis_wlan_private *priv = wiphy_priv(wiphy);
 	struct usbnet *usbdev = priv->usbdev;
@@ -2806,8 +2810,9 @@
 						resp_ie_len, 0, GFP_KERNEL);
 		} else {
 			struct cfg80211_roam_info roam_info = {
-				.channel = get_current_channel(usbdev, NULL),
-				.bssid = bssid,
+				.links[0].channel =
+					get_current_channel(usbdev, NULL),
+				.links[0].bssid = bssid,
 				.req_ie = req_ie,
 				.req_ie_len = req_ie_len,
 				.resp_ie = resp_ie,
diff --git a/drivers/net/wireless/virt_wifi.c b/drivers/net/wireless/virt_wifi.c
index 514f2c1..3cfd990 100644
--- a/drivers/net/wireless/virt_wifi.c
+++ b/drivers/net/wireless/virt_wifi.c
@@ -14,6 +14,7 @@
 #include <linux/etherdevice.h>
 #include <linux/math64.h>
 #include <linux/module.h>
+#include <net/virt_wifi.h>
 
 static struct wiphy *common_wiphy;
 
@@ -21,6 +22,7 @@
 	struct delayed_work scan_result;
 	struct cfg80211_scan_request *scan_request;
 	bool being_deleted;
+	struct virt_wifi_network_simulation *network_simulation;
 };
 
 static struct ieee80211_channel channel_2ghz = {
@@ -172,6 +174,9 @@
 
 	priv->scan_request = request;
 	schedule_delayed_work(&priv->scan_result, HZ * 2);
+	if (priv->network_simulation &&
+	    priv->network_simulation->notify_scan_trigger)
+		priv->network_simulation->notify_scan_trigger(wiphy, request);
 
 	return 0;
 }
@@ -187,6 +192,12 @@
 
 	virt_wifi_inform_bss(wiphy);
 
+	if(priv->network_simulation &&
+	   priv->network_simulation->generate_virt_scan_result) {
+		if(priv->network_simulation->generate_virt_scan_result(wiphy))
+			wiphy_err(wiphy, "Fail to generater the simulated scan result.\n");
+	}
+
 	/* Schedules work which acquires and releases the rtnl lock. */
 	cfg80211_scan_done(priv->scan_request, &scan_info);
 	priv->scan_request = NULL;
@@ -378,6 +389,8 @@
 	priv = wiphy_priv(wiphy);
 	priv->being_deleted = false;
 	priv->scan_request = NULL;
+	priv->network_simulation = NULL;
+
 	INIT_DELAYED_WORK(&priv->scan_result, virt_wifi_scan_result);
 
 	err = wiphy_register(wiphy);
@@ -393,7 +406,6 @@
 static void virt_wifi_destroy_wiphy(struct wiphy *wiphy)
 {
 	struct virt_wifi_wiphy_priv *priv;
-
 	WARN(!wiphy, "%s called with null wiphy", __func__);
 	if (!wiphy)
 		return;
@@ -427,8 +439,13 @@
 static int virt_wifi_net_device_open(struct net_device *dev)
 {
 	struct virt_wifi_netdev_priv *priv = netdev_priv(dev);
-
+	struct virt_wifi_wiphy_priv *w_priv;
 	priv->is_up = true;
+	w_priv = wiphy_priv(dev->ieee80211_ptr->wiphy);
+	if(w_priv->network_simulation &&
+	   w_priv->network_simulation->notify_device_open)
+		w_priv->network_simulation->notify_device_open(dev);
+
 	return 0;
 }
 
@@ -436,16 +453,22 @@
 static int virt_wifi_net_device_stop(struct net_device *dev)
 {
 	struct virt_wifi_netdev_priv *n_priv = netdev_priv(dev);
+	struct virt_wifi_wiphy_priv *w_priv;
 
 	n_priv->is_up = false;
 
 	if (!dev->ieee80211_ptr)
 		return 0;
+	w_priv = wiphy_priv(dev->ieee80211_ptr->wiphy);
 
 	virt_wifi_cancel_scan(dev->ieee80211_ptr->wiphy);
 	virt_wifi_cancel_connect(dev);
 	netif_carrier_off(dev);
 
+	if (w_priv->network_simulation &&
+	    w_priv->network_simulation->notify_device_stop)
+		w_priv->network_simulation->notify_device_stop(dev);
+
 	return 0;
 }
 
@@ -688,6 +711,27 @@
 	unregister_netdevice_notifier(&virt_wifi_notifier);
 }
 
+int virt_wifi_register_network_simulation
+	(struct virt_wifi_network_simulation *ops)
+{
+	struct virt_wifi_wiphy_priv *priv = wiphy_priv(common_wiphy);
+	if (priv->network_simulation)
+		return -EEXIST;
+	priv->network_simulation = ops;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(virt_wifi_register_network_simulation);
+
+int virt_wifi_unregister_network_simulation(void)
+{
+	struct virt_wifi_wiphy_priv *priv = wiphy_priv(common_wiphy);
+	if(!priv->network_simulation)
+		return -ENODATA;
+	priv->network_simulation = NULL;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(virt_wifi_unregister_network_simulation);
+
 module_init(virt_wifi_init_module);
 module_exit(virt_wifi_cleanup_module);
 
diff --git a/drivers/nvme/target/core.c b/drivers/nvme/target/core.c
index 2c44d5a..fe46b3f 100644
--- a/drivers/nvme/target/core.c
+++ b/drivers/nvme/target/core.c
@@ -1672,3 +1672,4 @@
 module_exit(nvmet_exit);
 
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index 47c1487..459cd87 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -768,19 +768,16 @@
 
 	nvmem->id = rval;
 
-	nvmem->dev.type = &nvmem_provider_type;
-	nvmem->dev.bus = &nvmem_bus_type;
-	nvmem->dev.parent = config->dev;
-
-	device_initialize(&nvmem->dev);
-
-	if (!config->ignore_wp)
+	if (config->wp_gpio)
+		nvmem->wp_gpio = config->wp_gpio;
+	else if (!config->ignore_wp)
 		nvmem->wp_gpio = gpiod_get_optional(config->dev, "wp",
 						    GPIOD_OUT_HIGH);
 	if (IS_ERR(nvmem->wp_gpio)) {
+		ida_free(&nvmem_ida, nvmem->id);
 		rval = PTR_ERR(nvmem->wp_gpio);
-		nvmem->wp_gpio = NULL;
-		goto err_put_device;
+		kfree(nvmem);
+		return ERR_PTR(rval);
 	}
 
 	kref_init(&nvmem->refcnt);
@@ -792,6 +789,9 @@
 	nvmem->stride = config->stride ?: 1;
 	nvmem->word_size = config->word_size ?: 1;
 	nvmem->size = config->size;
+	nvmem->dev.type = &nvmem_provider_type;
+	nvmem->dev.bus = &nvmem_bus_type;
+	nvmem->dev.parent = config->dev;
 	nvmem->root_only = config->root_only;
 	nvmem->priv = config->priv;
 	nvmem->type = config->type;
@@ -818,8 +818,11 @@
 		break;
 	}
 
-	if (rval)
-		goto err_put_device;
+	if (rval) {
+		ida_free(&nvmem_ida, nvmem->id);
+		kfree(nvmem);
+		return ERR_PTR(rval);
+	}
 
 	nvmem->read_only = device_property_present(config->dev, "read-only") ||
 			   config->read_only || !nvmem->reg_write;
@@ -828,16 +831,22 @@
 	nvmem->dev.groups = nvmem_dev_groups;
 #endif
 
+	dev_dbg(&nvmem->dev, "Registering nvmem device %s\n", config->name);
+
+	rval = device_register(&nvmem->dev);
+	if (rval)
+		goto err_put_device;
+
 	if (nvmem->nkeepout) {
 		rval = nvmem_validate_keepouts(nvmem);
 		if (rval)
-			goto err_put_device;
+			goto err_device_del;
 	}
 
 	if (config->compat) {
 		rval = nvmem_sysfs_setup_compat(nvmem, config);
 		if (rval)
-			goto err_put_device;
+			goto err_device_del;
 	}
 
 	if (config->cells) {
@@ -854,12 +863,6 @@
 	if (rval)
 		goto err_remove_cells;
 
-	dev_dbg(&nvmem->dev, "Registering nvmem device %s\n", config->name);
-
-	rval = device_add(&nvmem->dev);
-	if (rval)
-		goto err_remove_cells;
-
 	blocking_notifier_call_chain(&nvmem_notifier, NVMEM_ADD, nvmem);
 
 	return nvmem;
@@ -868,6 +871,8 @@
 	nvmem_device_remove_all_cells(nvmem);
 	if (config->compat)
 		nvmem_sysfs_remove_compat(nvmem, config);
+err_device_del:
+	device_del(&nvmem->dev);
 err_put_device:
 	put_device(&nvmem->dev);
 
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 54719f8..a143d46 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -629,6 +629,28 @@
 EXPORT_SYMBOL(of_device_is_available);
 
 /**
+ *  __of_device_is_fail - check if a device has status "fail" or "fail-..."
+ *
+ *  @device: Node to check status for, with locks already held
+ *
+ *  Return: True if the status property is set to "fail" or "fail-..." (for any
+ *  error code suffix), false otherwise
+ */
+static bool __of_device_is_fail(const struct device_node *device)
+{
+	const char *status;
+
+	if (!device)
+		return false;
+
+	status = __of_get_property(device, "status", NULL);
+	if (status == NULL)
+		return false;
+
+	return !strcmp(status, "fail") || !strncmp(status, "fail-", 5);
+}
+
+/**
  *  of_device_is_big_endian - check if a device has BE registers
  *
  *  @device: Node to check for endianness
@@ -774,6 +796,9 @@
  * of_get_next_cpu_node - Iterate on cpu nodes
  * @prev:	previous child of the /cpus node, or NULL to get first
  *
+ * Unusable CPUs (those with the status property set to "fail" or "fail-...")
+ * will be skipped.
+ *
  * Return: A cpu node pointer with refcount incremented, use of_node_put()
  * on it when done. Returns NULL when prev is the last child. Decrements
  * the refcount of prev.
@@ -795,6 +820,8 @@
 		of_node_put(node);
 	}
 	for (; next; next = next->sibling) {
+		if (__of_device_is_fail(next))
+			continue;
 		if (!(of_node_name_eq(next, "cpu") ||
 		      __of_node_is_type(next, "cpu")))
 			continue;
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index 338171c..8d9f6f0 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -1136,16 +1136,40 @@
 	return 0;
 }
 
+/*
+ * Convert configs to something easy to use in C code
+ */
+#if defined(CONFIG_CMDLINE_FORCE)
+static const int overwrite_incoming_cmdline = 1;
+static const int read_dt_cmdline;
+static const int concat_cmdline;
+#elif defined(CONFIG_CMDLINE_EXTEND)
+static const int overwrite_incoming_cmdline;
+static const int read_dt_cmdline = 1;
+static const int concat_cmdline = 1;
+#else /* CMDLINE_FROM_BOOTLOADER */
+static const int overwrite_incoming_cmdline;
+static const int read_dt_cmdline = 1;
+static const int concat_cmdline;
+#endif
+
+#ifdef CONFIG_CMDLINE
+static const char *config_cmdline = CONFIG_CMDLINE;
+#else
+static const char *config_cmdline = "";
+#endif
+
 int __init early_init_dt_scan_chosen(unsigned long node, const char *uname,
 				     int depth, void *data)
 {
-	int l;
-	const char *p;
+	int l = 0;
+	const char *p = NULL;
 	const void *rng_seed;
+	char *cmdline = data;
 
 	pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname);
 
-	if (depth != 1 || !data ||
+	if (depth != 1 || !cmdline ||
 	    (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0))
 		return 0;
 
@@ -1154,28 +1178,28 @@
 	early_init_dt_check_for_initrd(node);
 	early_init_dt_check_for_elfcorehdr(node);
 
-	/* Retrieve command line */
-	p = of_get_flat_dt_prop(node, "bootargs", &l);
-	if (p != NULL && l > 0)
-		strlcpy(data, p, min(l, COMMAND_LINE_SIZE));
+	/* Put CONFIG_CMDLINE in if forced or if data had nothing in it to start */
+	if (overwrite_incoming_cmdline || !cmdline[0])
+		strlcpy(cmdline, config_cmdline, COMMAND_LINE_SIZE);
 
-	/*
-	 * CONFIG_CMDLINE is meant to be a default in case nothing else
-	 * managed to set the command line, unless CONFIG_CMDLINE_FORCE
-	 * is set in which case we override whatever was found earlier.
-	 */
-#ifdef CONFIG_CMDLINE
-#if defined(CONFIG_CMDLINE_EXTEND)
-	strlcat(data, " ", COMMAND_LINE_SIZE);
-	strlcat(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
-#elif defined(CONFIG_CMDLINE_FORCE)
-	strlcpy(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
-#else
-	/* No arguments from boot loader, use kernel's  cmdl*/
-	if (!((char *)data)[0])
-		strlcpy(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
-#endif
-#endif /* CONFIG_CMDLINE */
+	/* Retrieve command line unless forcing */
+	if (read_dt_cmdline)
+		p = of_get_flat_dt_prop(node, "bootargs", &l);
+
+	if (p != NULL && l > 0) {
+		if (concat_cmdline) {
+			int cmdline_len;
+			int copy_len;
+			strlcat(cmdline, " ", COMMAND_LINE_SIZE);
+			cmdline_len = strlen(cmdline);
+			copy_len = COMMAND_LINE_SIZE - cmdline_len - 1;
+			copy_len = min((int)l, copy_len);
+			strncpy(cmdline + cmdline_len, p, copy_len);
+			cmdline[cmdline_len + copy_len] = '\0';
+		} else {
+			strlcpy(cmdline, p, min(l, COMMAND_LINE_SIZE));
+		}
+	}
 
 	pr_debug("Command line is: %s\n", (char *)data);
 
diff --git a/drivers/of/of_reserved_mem.c b/drivers/of/of_reserved_mem.c
index 9e949dd..22c186c 100644
--- a/drivers/of/of_reserved_mem.c
+++ b/drivers/of/of_reserved_mem.c
@@ -25,7 +25,7 @@
 
 #include "of_private.h"
 
-#define MAX_RESERVED_REGIONS	64
+#define MAX_RESERVED_REGIONS	128
 static struct reserved_mem reserved_mem[MAX_RESERVED_REGIONS];
 static int reserved_mem_count;
 
@@ -286,6 +286,16 @@
 					memblock_clear_nomap(rmem->base, rmem->size);
 				else
 					memblock_free(rmem->base, rmem->size);
+			} else {
+				phys_addr_t end = rmem->base + rmem->size - 1;
+				bool reusable =
+					(of_get_flat_dt_prop(node, "reusable", NULL)) != NULL;
+
+				pr_info("%pa..%pa (%lu KiB) %s %s %s\n",
+					&rmem->base, &end, (unsigned long)(rmem->size / SZ_1K),
+					nomap ? "nomap" : "map",
+					reusable ? "reusable" : "non-reusable",
+					rmem->name ? rmem->name : "unknown");
 			}
 		}
 	}
diff --git a/drivers/of/platform.c b/drivers/of/platform.c
index 74afbb7..4bd151d 100644
--- a/drivers/of/platform.c
+++ b/drivers/of/platform.c
@@ -511,6 +511,7 @@
 	{ .compatible = "qcom,cmd-db" },
 	{ .compatible = "ramoops" },
 	{ .compatible = "nvmem-rmem" },
+	{ .compatible = "google,open-dice" },
 	{}
 };
 
diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c
index 2af4ed9..89a524d 100644
--- a/drivers/pci/controller/dwc/pcie-designware-ep.c
+++ b/drivers/pci/controller/dwc/pcie-designware-ep.c
@@ -83,6 +83,7 @@
 	for (func_no = 0; func_no < funcs; func_no++)
 		__dw_pcie_ep_reset_bar(pci, func_no, bar, 0);
 }
+EXPORT_SYMBOL_GPL(dw_pcie_ep_reset_bar);
 
 static u8 __dw_pcie_ep_find_next_cap(struct dw_pcie_ep *ep, u8 func_no,
 		u8 cap_ptr, u8 cap)
diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c
index 7cd4593..d55915e 100644
--- a/drivers/pci/controller/dwc/pcie-designware-host.c
+++ b/drivers/pci/controller/dwc/pcie-designware-host.c
@@ -83,6 +83,7 @@
 
 	return ret;
 }
+EXPORT_SYMBOL_GPL(dw_handle_msi_irq);
 
 /* Chained MSI interrupt service routine */
 static void dw_chained_msi_isr(struct irq_desc *desc)
@@ -262,14 +263,6 @@
 
 	irq_domain_remove(pp->msi_domain);
 	irq_domain_remove(pp->irq_domain);
-
-	if (pp->msi_data) {
-		struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
-		struct device *dev = pci->dev;
-
-		dma_unmap_single_attrs(dev, pp->msi_data, sizeof(pp->msi_msg),
-				       DMA_FROM_DEVICE, DMA_ATTR_SKIP_CPU_SYNC);
-	}
 }
 
 static void dw_pcie_msi_init(struct pcie_port *pp)
@@ -294,6 +287,7 @@
 	struct resource_entry *win;
 	struct pci_host_bridge *bridge;
 	struct resource *cfg_res;
+	u64 *msi_vaddr;
 	int ret;
 
 	raw_spin_lock_init(&pci->pp.lock);
@@ -372,19 +366,29 @@
 							    dw_chained_msi_isr,
 							    pp);
 
-			ret = dma_set_mask(pci->dev, DMA_BIT_MASK(32));
+			ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32));
 			if (ret)
 				dev_warn(pci->dev, "Failed to set DMA mask to 32-bit. Devices with only 32-bit MSI support may not work properly\n");
 
-			pp->msi_data = dma_map_single_attrs(pci->dev, &pp->msi_msg,
-						      sizeof(pp->msi_msg),
-						      DMA_FROM_DEVICE,
-						      DMA_ATTR_SKIP_CPU_SYNC);
-			ret = dma_mapping_error(pci->dev, pp->msi_data);
-			if (ret) {
-				dev_err(pci->dev, "Failed to map MSI data\n");
-				pp->msi_data = 0;
-				goto err_free_msi;
+			msi_vaddr = dmam_alloc_coherent(dev, sizeof(u64), &pp->msi_data,
+							GFP_KERNEL);
+			if (!msi_vaddr) {
+				u16 msi_capabilities;
+
+				/* Retry the allocation with a 64-bit mask if supported. */
+				msi_capabilities = dw_pcie_msi_capabilities(pci);
+				if ((msi_capabilities & PCI_MSI_FLAGS_ENABLE) &&
+				    (msi_capabilities & PCI_MSI_FLAGS_64BIT)) {
+					dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64));
+					msi_vaddr = dmam_alloc_coherent(dev, sizeof(u64),
+									&pp->msi_data,
+									GFP_KERNEL);
+				}
+				if (!msi_vaddr) {
+					dev_err(dev, "Failed to alloc and map MSI data\n");
+					ret = -ENOMEM;
+					goto err_free_msi;
+				}
 			}
 		}
 	}
diff --git a/drivers/pci/controller/dwc/pcie-designware.c b/drivers/pci/controller/dwc/pcie-designware.c
index 00972a7..930b593 100644
--- a/drivers/pci/controller/dwc/pcie-designware.c
+++ b/drivers/pci/controller/dwc/pcie-designware.c
@@ -55,6 +55,14 @@
 }
 EXPORT_SYMBOL_GPL(dw_pcie_find_capability);
 
+u16 dw_pcie_msi_capabilities(struct dw_pcie *pci)
+{
+	u8 offset;
+
+	offset = dw_pcie_find_capability(pci, PCI_CAP_ID_MSI);
+	return dw_pcie_readw_dbi(pci, offset + PCI_MSI_FLAGS);
+}
+
 static u16 dw_pcie_find_next_ext_capability(struct dw_pcie *pci, u16 start,
 					    u8 cap)
 {
@@ -552,6 +560,7 @@
 	return ((val & PCIE_PORT_DEBUG1_LINK_UP) &&
 		(!(val & PCIE_PORT_DEBUG1_LINK_IN_TRAINING)));
 }
+EXPORT_SYMBOL_GPL(dw_pcie_link_up);
 
 void dw_pcie_upconfig_setup(struct dw_pcie *pci)
 {
diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h
index 7d6e9b75..85da375 100644
--- a/drivers/pci/controller/dwc/pcie-designware.h
+++ b/drivers/pci/controller/dwc/pcie-designware.h
@@ -190,8 +190,9 @@
 	int			msi_irq;
 	struct irq_domain	*irq_domain;
 	struct irq_domain	*msi_domain;
-	u16			msi_msg;
 	dma_addr_t		msi_data;
+	/* msi_page is deprecated. Keeping for ABI compatibility */
+	struct page		*msi_page;
 	struct irq_chip		*msi_irq_chip;
 	u32			num_vectors;
 	u32			irq_mask[MAX_MSI_CTRLS];
@@ -284,6 +285,7 @@
 
 u8 dw_pcie_find_capability(struct dw_pcie *pci, u8 cap);
 u16 dw_pcie_find_ext_capability(struct dw_pcie *pci, u8 cap);
+u16 dw_pcie_msi_capabilities(struct dw_pcie *pci);
 
 int dw_pcie_read(void __iomem *addr, int size, u32 *val);
 int dw_pcie_write(void __iomem *addr, int size, u32 val);
diff --git a/drivers/pci/controller/pci-loongson.c b/drivers/pci/controller/pci-loongson.c
index e73e18a..48169b1 100644
--- a/drivers/pci/controller/pci-loongson.c
+++ b/drivers/pci/controller/pci-loongson.c
@@ -13,14 +13,9 @@
 #include "../pci.h"
 
 /* Device IDs */
-#define DEV_LS2K_PCIE_PORT0	0x1a05
-#define DEV_LS7A_PCIE_PORT0	0x7a09
-#define DEV_LS7A_PCIE_PORT1	0x7a19
-#define DEV_LS7A_PCIE_PORT2	0x7a29
-#define DEV_LS7A_PCIE_PORT3	0x7a39
-#define DEV_LS7A_PCIE_PORT4	0x7a49
-#define DEV_LS7A_PCIE_PORT5	0x7a59
-#define DEV_LS7A_PCIE_PORT6	0x7a69
+#define DEV_PCIE_PORT_0	0x7a09
+#define DEV_PCIE_PORT_1	0x7a19
+#define DEV_PCIE_PORT_2	0x7a29
 
 #define DEV_LS2K_APB	0x7a02
 #define DEV_LS7A_CONF	0x7a10
@@ -43,11 +38,11 @@
 	dev->class = PCI_CLASS_BRIDGE_PCI << 8;
 }
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
-			DEV_LS7A_PCIE_PORT0, bridge_class_quirk);
+			DEV_PCIE_PORT_0, bridge_class_quirk);
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
-			DEV_LS7A_PCIE_PORT1, bridge_class_quirk);
+			DEV_PCIE_PORT_1, bridge_class_quirk);
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
-			DEV_LS7A_PCIE_PORT2, bridge_class_quirk);
+			DEV_PCIE_PORT_2, bridge_class_quirk);
 
 static void system_bus_quirk(struct pci_dev *pdev)
 {
@@ -65,33 +60,37 @@
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
 			DEV_LS7A_LPC, system_bus_quirk);
 
-static void loongson_mrrs_quirk(struct pci_dev *pdev)
+static void loongson_mrrs_quirk(struct pci_dev *dev)
 {
-	/*
-	 * Some Loongson PCIe ports have h/w limitations of maximum read
-	 * request size. They can't handle anything larger than this. So
-	 * force this limit on any devices attached under these ports.
-	 */
-	struct pci_host_bridge *bridge = pci_find_host_bridge(pdev->bus);
+	struct pci_bus *bus = dev->bus;
+	struct pci_dev *bridge;
+	static const struct pci_device_id bridge_devids[] = {
+		{ PCI_VDEVICE(LOONGSON, DEV_PCIE_PORT_0) },
+		{ PCI_VDEVICE(LOONGSON, DEV_PCIE_PORT_1) },
+		{ PCI_VDEVICE(LOONGSON, DEV_PCIE_PORT_2) },
+		{ 0, },
+	};
 
-	bridge->no_inc_mrrs = 1;
+	/* look for the matching bridge */
+	while (!pci_is_root_bus(bus)) {
+		bridge = bus->self;
+		bus = bus->parent;
+		/*
+		 * Some Loongson PCIe ports have a h/w limitation of
+		 * 256 bytes maximum read request size. They can't handle
+		 * anything larger than this. So force this limit on
+		 * any devices attached under these ports.
+		 */
+		if (pci_match_id(bridge_devids, bridge)) {
+			if (pcie_get_readrq(dev) > 256) {
+				pci_info(dev, "limiting MRRS to 256\n");
+				pcie_set_readrq(dev, 256);
+			}
+			break;
+		}
+	}
 }
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
-			DEV_LS2K_PCIE_PORT0, loongson_mrrs_quirk);
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
-			DEV_LS7A_PCIE_PORT0, loongson_mrrs_quirk);
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
-			DEV_LS7A_PCIE_PORT1, loongson_mrrs_quirk);
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
-			DEV_LS7A_PCIE_PORT2, loongson_mrrs_quirk);
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
-			DEV_LS7A_PCIE_PORT3, loongson_mrrs_quirk);
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
-			DEV_LS7A_PCIE_PORT4, loongson_mrrs_quirk);
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
-			DEV_LS7A_PCIE_PORT5, loongson_mrrs_quirk);
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
-			DEV_LS7A_PCIE_PORT6, loongson_mrrs_quirk);
+DECLARE_PCI_FIXUP_ENABLE(PCI_ANY_ID, PCI_ANY_ID, loongson_mrrs_quirk);
 
 static void __iomem *cfg1_map(struct loongson_pci *priv, int bus,
 				unsigned int devfn, int where)
diff --git a/drivers/pci/p2pdma.c b/drivers/pci/p2pdma.c
index 316fd2f..50cdde3 100644
--- a/drivers/pci/p2pdma.c
+++ b/drivers/pci/p2pdma.c
@@ -219,7 +219,7 @@
 	error = gen_pool_add_owner(p2pdma->pool, (unsigned long)addr,
 			pci_bus_address(pdev, bar) + offset,
 			range_len(&pgmap->range), dev_to_node(&pdev->dev),
-			&pgmap->ref);
+			pgmap->ref);
 	if (error)
 		goto pages_free;
 
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 244c1c2..0ff79bc 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -5958,7 +5958,6 @@
 {
 	u16 v;
 	int ret;
-	struct pci_host_bridge *bridge = pci_find_host_bridge(dev->bus);
 
 	if (rq < 128 || rq > 4096 || !is_power_of_2(rq))
 		return -EINVAL;
@@ -5977,15 +5976,6 @@
 
 	v = (ffs(rq) - 8) << 12;
 
-	if (bridge->no_inc_mrrs) {
-		int max_mrrs = pcie_get_readrq(dev);
-
-		if (rq > max_mrrs) {
-			pci_info(dev, "can't set Max_Read_Request_Size to %d; max is %d\n", rq, max_mrrs);
-			return -EINVAL;
-		}
-	}
-
 	ret = pcie_capability_clear_and_set_word(dev, PCI_EXP_DEVCTL,
 						  PCI_EXP_DEVCTL_READRQ, v);
 
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
index e6ea6e9..50827ce 100644
--- a/drivers/pci/pci.h
+++ b/drivers/pci/pci.h
@@ -3,6 +3,7 @@
 #define DRIVERS_PCI_H
 
 #include <linux/pci.h>
+#include <linux/android_kabi.h>
 
 /* Number of possible devfns: 0.0 to 1f.7 inclusive */
 #define MAX_NR_DEVFNS 256
@@ -353,6 +354,11 @@
 	u16		subsystem_device; /* VF subsystem device */
 	resource_size_t	barsz[PCI_SRIOV_NUM_BARS];	/* VF BAR size */
 	bool		drivers_autoprobe; /* Auto probing of VFs by driver */
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 /**
diff --git a/drivers/perf/Kconfig b/drivers/perf/Kconfig
index 77522e5..e453915 100644
--- a/drivers/perf/Kconfig
+++ b/drivers/perf/Kconfig
@@ -43,7 +43,7 @@
 
 config ARM_CMN
 	tristate "Arm CMN-600 PMU support"
-	depends on ARM64 || (COMPILE_TEST && 64BIT)
+	depends on ARM64 || COMPILE_TEST
 	help
 	  Support for PMU events monitoring on the Arm CMN-600 Coherent Mesh
 	  Network interconnect.
diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c
index 4094534..24852db 100644
--- a/drivers/perf/arm-cmn.c
+++ b/drivers/perf/arm-cmn.c
@@ -5,8 +5,10 @@
 #include <linux/acpi.h>
 #include <linux/bitfield.h>
 #include <linux/bitops.h>
+#include <linux/debugfs.h>
 #include <linux/interrupt.h>
 #include <linux/io.h>
+#include <linux/io-64-nonatomic-lo-hi.h>
 #include <linux/kernel.h>
 #include <linux/list.h>
 #include <linux/module.h>
@@ -23,7 +25,10 @@
 #define CMN_NI_LOGICAL_ID		GENMASK_ULL(47, 32)
 
 #define CMN_NODEID_DEVID(reg)		((reg) & 3)
+#define CMN_NODEID_EXT_DEVID(reg)	((reg) & 1)
 #define CMN_NODEID_PID(reg)		(((reg) >> 2) & 1)
+#define CMN_NODEID_EXT_PID(reg)		(((reg) >> 1) & 3)
+#define CMN_NODEID_1x1_PID(reg)		(((reg) >> 2) & 7)
 #define CMN_NODEID_X(reg, bits)		((reg) >> (3 + (bits)))
 #define CMN_NODEID_Y(reg, bits)		(((reg) >> 3) & ((1U << (bits)) - 1))
 
@@ -31,23 +36,31 @@
 #define CMN_CI_CHILD_COUNT		GENMASK_ULL(15, 0)
 #define CMN_CI_CHILD_PTR_OFFSET		GENMASK_ULL(31, 16)
 
-#define CMN_CHILD_NODE_ADDR		GENMASK(27, 0)
+#define CMN_CHILD_NODE_ADDR		GENMASK(29, 0)
 #define CMN_CHILD_NODE_EXTERNAL		BIT(31)
 
-#define CMN_ADDR_NODE_PTR		GENMASK(27, 14)
+#define CMN_MAX_DIMENSION		8
+#define CMN_MAX_XPS			(CMN_MAX_DIMENSION * CMN_MAX_DIMENSION)
+#define CMN_MAX_DTMS			(CMN_MAX_XPS + (CMN_MAX_DIMENSION - 1) * 4)
 
-#define CMN_NODE_PTR_DEVID(ptr)		(((ptr) >> 2) & 3)
-#define CMN_NODE_PTR_PID(ptr)		((ptr) & 1)
-#define CMN_NODE_PTR_X(ptr, bits)	((ptr) >> (6 + (bits)))
-#define CMN_NODE_PTR_Y(ptr, bits)	(((ptr) >> 6) & ((1U << (bits)) - 1))
-
-#define CMN_MAX_XPS			(8 * 8)
-
-/* The CFG node has one other useful purpose */
+/* The CFG node has various info besides the discovery tree */
 #define CMN_CFGM_PERIPH_ID_2		0x0010
 #define CMN_CFGM_PID2_REVISION		GENMASK(7, 4)
 
-/* PMU registers occupy the 3rd 4KB page of each node's 16KB space */
+#define CMN_CFGM_INFO_GLOBAL		0x900
+#define CMN_INFO_MULTIPLE_DTM_EN	BIT_ULL(63)
+#define CMN_INFO_RSP_VC_NUM		GENMASK_ULL(53, 52)
+#define CMN_INFO_DAT_VC_NUM		GENMASK_ULL(51, 50)
+
+/* XPs also have some local topology info which has uses too */
+#define CMN_MXP__CONNECT_INFO_P0	0x0008
+#define CMN_MXP__CONNECT_INFO_P1	0x0010
+#define CMN_MXP__CONNECT_INFO_P2	0x0028
+#define CMN_MXP__CONNECT_INFO_P3	0x0030
+#define CMN_MXP__CONNECT_INFO_P4	0x0038
+#define CMN_MXP__CONNECT_INFO_P5	0x0040
+
+/* PMU registers occupy the 3rd 4KB page of each node's region */
 #define CMN_PMU_OFFSET			0x2000
 
 /* For most nodes, this is all there is */
@@ -57,9 +70,12 @@
 /* DTMs live in the PMU space of XP registers */
 #define CMN_DTM_WPn(n)			(0x1A0 + (n) * 0x18)
 #define CMN_DTM_WPn_CONFIG(n)		(CMN_DTM_WPn(n) + 0x00)
-#define CMN_DTM_WPn_CONFIG_WP_COMBINE	BIT(6)
-#define CMN_DTM_WPn_CONFIG_WP_EXCLUSIVE	BIT(5)
-#define CMN_DTM_WPn_CONFIG_WP_GRP	BIT(4)
+#define CMN_DTM_WPn_CONFIG_WP_DEV_SEL2	GENMASK_ULL(18,17)
+#define CMN_DTM_WPn_CONFIG_WP_COMBINE	BIT(9)
+#define CMN_DTM_WPn_CONFIG_WP_EXCLUSIVE	BIT(8)
+#define CMN600_WPn_CONFIG_WP_COMBINE	BIT(6)
+#define CMN600_WPn_CONFIG_WP_EXCLUSIVE	BIT(5)
+#define CMN_DTM_WPn_CONFIG_WP_GRP	GENMASK_ULL(5, 4)
 #define CMN_DTM_WPn_CONFIG_WP_CHN_SEL	GENMASK_ULL(3, 1)
 #define CMN_DTM_WPn_CONFIG_WP_DEV_SEL	BIT(0)
 #define CMN_DTM_WPn_VAL(n)		(CMN_DTM_WPn(n) + 0x08)
@@ -81,7 +97,11 @@
 
 #define CMN_DTM_PMEVCNTSR		0x240
 
+#define CMN_DTM_UNIT_INFO		0x0910
+
 #define CMN_DTM_NUM_COUNTERS		4
+/* Want more local counters? Why not replicate the whole DTM! Ugh... */
+#define CMN_DTM_OFFSET(n)		((n) * 0x200)
 
 /* The DTC node is where the magic happens */
 #define CMN_DT_DTC_CTL			0x0a00
@@ -122,11 +142,11 @@
 
 
 /* Event attributes */
-#define CMN_CONFIG_TYPE			GENMASK(15, 0)
-#define CMN_CONFIG_EVENTID		GENMASK(23, 16)
-#define CMN_CONFIG_OCCUPID		GENMASK(27, 24)
-#define CMN_CONFIG_BYNODEID		BIT(31)
-#define CMN_CONFIG_NODEID		GENMASK(47, 32)
+#define CMN_CONFIG_TYPE			GENMASK_ULL(15, 0)
+#define CMN_CONFIG_EVENTID		GENMASK_ULL(23, 16)
+#define CMN_CONFIG_OCCUPID		GENMASK_ULL(27, 24)
+#define CMN_CONFIG_BYNODEID		BIT_ULL(31)
+#define CMN_CONFIG_NODEID		GENMASK_ULL(47, 32)
 
 #define CMN_EVENT_TYPE(event)		FIELD_GET(CMN_CONFIG_TYPE, (event)->attr.config)
 #define CMN_EVENT_EVENTID(event)	FIELD_GET(CMN_CONFIG_EVENTID, (event)->attr.config)
@@ -134,13 +154,14 @@
 #define CMN_EVENT_BYNODEID(event)	FIELD_GET(CMN_CONFIG_BYNODEID, (event)->attr.config)
 #define CMN_EVENT_NODEID(event)		FIELD_GET(CMN_CONFIG_NODEID, (event)->attr.config)
 
-#define CMN_CONFIG_WP_COMBINE		GENMASK(27, 24)
-#define CMN_CONFIG_WP_DEV_SEL		BIT(48)
-#define CMN_CONFIG_WP_CHN_SEL		GENMASK(50, 49)
-#define CMN_CONFIG_WP_GRP		BIT(52)
-#define CMN_CONFIG_WP_EXCLUSIVE		BIT(53)
-#define CMN_CONFIG1_WP_VAL		GENMASK(63, 0)
-#define CMN_CONFIG2_WP_MASK		GENMASK(63, 0)
+#define CMN_CONFIG_WP_COMBINE		GENMASK_ULL(27, 24)
+#define CMN_CONFIG_WP_DEV_SEL		GENMASK_ULL(50, 48)
+#define CMN_CONFIG_WP_CHN_SEL		GENMASK_ULL(55, 51)
+/* Note that we don't yet support the tertiary match group on newer IPs */
+#define CMN_CONFIG_WP_GRP		BIT_ULL(56)
+#define CMN_CONFIG_WP_EXCLUSIVE		BIT_ULL(57)
+#define CMN_CONFIG1_WP_VAL		GENMASK_ULL(63, 0)
+#define CMN_CONFIG2_WP_MASK		GENMASK_ULL(63, 0)
 
 #define CMN_EVENT_WP_COMBINE(event)	FIELD_GET(CMN_CONFIG_WP_COMBINE, (event)->attr.config)
 #define CMN_EVENT_WP_DEV_SEL(event)	FIELD_GET(CMN_CONFIG_WP_DEV_SEL, (event)->attr.config)
@@ -155,7 +176,13 @@
 #define CMN_WP_DOWN			2
 
 
-/* r0px probably don't exist in silicon, thankfully */
+enum cmn_model {
+	CMN_ANY = -1,
+	CMN600 = 1,
+	CI700 = 2,
+};
+
+/* CMN-600 r0px shouldn't exist in silicon, thankfully */
 enum cmn_revision {
 	CMN600_R1P0,
 	CMN600_R1P1,
@@ -163,6 +190,10 @@
 	CMN600_R1P3,
 	CMN600_R2P0,
 	CMN600_R3P0,
+	CMN600_R3P1,
+	CI700_R0P0 = 0,
+	CI700_R1P0,
+	CI700_R2P0,
 };
 
 enum cmn_node_type {
@@ -174,9 +205,12 @@
 	CMN_TYPE_HNF,
 	CMN_TYPE_XP,
 	CMN_TYPE_SBSX,
-	CMN_TYPE_RNI = 0xa,
+	CMN_TYPE_MPAM_S,
+	CMN_TYPE_MPAM_NS,
+	CMN_TYPE_RNI,
 	CMN_TYPE_RND = 0xd,
 	CMN_TYPE_RNSAM = 0xf,
+	CMN_TYPE_MTSX,
 	CMN_TYPE_CXRA = 0x100,
 	CMN_TYPE_CXHA = 0x101,
 	CMN_TYPE_CXLA = 0x102,
@@ -189,32 +223,32 @@
 	u16 id, logid;
 	enum cmn_node_type type;
 
+	int dtm;
 	union {
-		/* Device node */
+		/* DN/HN-F/CXHA */
 		struct {
-			int to_xp;
-			/* DN/HN-F/CXHA */
-			unsigned int occupid_val;
-			unsigned int occupid_count;
+			u8 occupid_val;
+			u8 occupid_count;
 		};
 		/* XP */
-		struct {
-			int dtc;
-			u32 pmu_config_low;
-			union {
-				u8 input_sel[4];
-				__le32 pmu_config_high;
-			};
-			s8 wp_event[4];
-		};
+		u8 dtc;
 	};
-
 	union {
 		u8 event[4];
 		__le32 event_sel;
 	};
 };
 
+struct arm_cmn_dtm {
+	void __iomem *base;
+	u32 pmu_config_low;
+	union {
+		u8 input_sel[4];
+		__le32 pmu_config_high;
+	};
+	s8 wp_event[4];
+};
+
 struct arm_cmn_dtc {
 	void __iomem *base;
 	int irq;
@@ -231,35 +265,238 @@
 struct arm_cmn {
 	struct device *dev;
 	void __iomem *base;
+	unsigned int state;
 
 	enum cmn_revision rev;
+	enum cmn_model model;
 	u8 mesh_x;
 	u8 mesh_y;
 	u16 num_xps;
 	u16 num_dns;
+	bool multi_dtm;
+	u8 ports_used;
+	struct {
+		unsigned int rsp_vc_num : 2;
+		unsigned int dat_vc_num : 2;
+	};
+
 	struct arm_cmn_node *xps;
 	struct arm_cmn_node *dns;
 
+	struct arm_cmn_dtm *dtms;
 	struct arm_cmn_dtc *dtc;
 	unsigned int num_dtcs;
 
 	int cpu;
 	struct hlist_node cpuhp_node;
 
-	unsigned int state;
 	struct pmu pmu;
+	struct dentry *debug;
 };
 
 #define to_cmn(p)	container_of(p, struct arm_cmn, pmu)
 
 static int arm_cmn_hp_state;
 
+struct arm_cmn_nodeid {
+	u8 x;
+	u8 y;
+	u8 port;
+	u8 dev;
+};
+
+static int arm_cmn_xyidbits(const struct arm_cmn *cmn)
+{
+	int dim = max(cmn->mesh_x, cmn->mesh_y);
+
+	return dim > 4 ? 3 : 2;
+}
+
+static struct arm_cmn_nodeid arm_cmn_nid(const struct arm_cmn *cmn, u16 id)
+{
+	struct arm_cmn_nodeid nid;
+
+	if (cmn->num_xps == 1) {
+		nid.x = 0;
+		nid.y = 0;
+		nid.port = CMN_NODEID_1x1_PID(id);
+		nid.dev = CMN_NODEID_DEVID(id);
+	} else {
+		int bits = arm_cmn_xyidbits(cmn);
+
+		nid.x = CMN_NODEID_X(id, bits);
+		nid.y = CMN_NODEID_Y(id, bits);
+		if (cmn->ports_used & 0xc) {
+			nid.port = CMN_NODEID_EXT_PID(id);
+			nid.dev = CMN_NODEID_EXT_DEVID(id);
+		} else {
+			nid.port = CMN_NODEID_PID(id);
+			nid.dev = CMN_NODEID_DEVID(id);
+		}
+	}
+	return nid;
+}
+
+static struct arm_cmn_node *arm_cmn_node_to_xp(const struct arm_cmn *cmn,
+					       const struct arm_cmn_node *dn)
+{
+	struct arm_cmn_nodeid nid = arm_cmn_nid(cmn, dn->id);
+	int xp_idx = cmn->mesh_x * nid.y + nid.x;
+
+	return cmn->xps + xp_idx;
+}
+static struct arm_cmn_node *arm_cmn_node(const struct arm_cmn *cmn,
+					 enum cmn_node_type type)
+{
+	struct arm_cmn_node *dn;
+
+	for (dn = cmn->dns; dn->type; dn++)
+		if (dn->type == type)
+			return dn;
+	return NULL;
+}
+
+struct dentry *arm_cmn_debugfs;
+
+#ifdef CONFIG_DEBUG_FS
+static const char *arm_cmn_device_type(u8 type)
+{
+	switch(type) {
+		case 0x01: return "  RN-I  |";
+		case 0x02: return "  RN-D  |";
+		case 0x04: return " RN-F_B |";
+		case 0x05: return "RN-F_B_E|";
+		case 0x06: return " RN-F_A |";
+		case 0x07: return "RN-F_A_E|";
+		case 0x08: return "  HN-T  |";
+		case 0x09: return "  HN-I  |";
+		case 0x0a: return "  HN-D  |";
+		case 0x0c: return "  SN-F  |";
+		case 0x0d: return "  SBSX  |";
+		case 0x0e: return "  HN-F  |";
+		case 0x0f: return " SN-F_E |";
+		case 0x10: return " SN-F_D |";
+		case 0x11: return "  CXHA  |";
+		case 0x12: return "  CXRA  |";
+		case 0x13: return "  CXRH  |";
+		case 0x14: return " RN-F_D |";
+		case 0x15: return "RN-F_D_E|";
+		case 0x16: return " RN-F_C |";
+		case 0x17: return "RN-F_C_E|";
+		case 0x1c: return "  MTSX  |";
+		default:   return "        |";
+	}
+}
+
+static void arm_cmn_show_logid(struct seq_file *s, int x, int y, int p, int d)
+{
+	struct arm_cmn *cmn = s->private;
+	struct arm_cmn_node *dn;
+
+	for (dn = cmn->dns; dn->type; dn++) {
+		struct arm_cmn_nodeid nid = arm_cmn_nid(cmn, dn->id);
+
+		if (dn->type == CMN_TYPE_XP)
+			continue;
+		/* Ignore the extra components that will overlap on some ports */
+		if (dn->type < CMN_TYPE_HNI)
+			continue;
+
+		if (nid.x != x || nid.y != y || nid.port != p || nid.dev != d)
+			continue;
+
+		seq_printf(s, "   #%-2d  |", dn->logid);
+		return;
+	}
+	seq_puts(s, "        |");
+}
+
+static int arm_cmn_map_show(struct seq_file *s, void *data)
+{
+	struct arm_cmn *cmn = s->private;
+	int x, y, p, pmax = fls(cmn->ports_used);
+
+	seq_puts(s, "     X");
+	for (x = 0; x < cmn->mesh_x; x++)
+		seq_printf(s, "    %d    ", x);
+	seq_puts(s, "\nY P D+");
+	y = cmn->mesh_y;
+	while (y--) {
+		int xp_base = cmn->mesh_x * y;
+		u8 port[6][CMN_MAX_DIMENSION];
+
+		for (x = 0; x < cmn->mesh_x; x++)
+			seq_puts(s, "--------+");
+
+		seq_printf(s, "\n%d    |", y);
+		for (x = 0; x < cmn->mesh_x; x++) {
+			struct arm_cmn_node *xp = cmn->xps + xp_base + x;
+			void __iomem *base = xp->pmu_base - CMN_PMU_OFFSET;
+
+			port[0][x] = readl_relaxed(base + CMN_MXP__CONNECT_INFO_P0);
+			port[1][x] = readl_relaxed(base + CMN_MXP__CONNECT_INFO_P1);
+			port[2][x] = readl_relaxed(base + CMN_MXP__CONNECT_INFO_P2);
+			port[3][x] = readl_relaxed(base + CMN_MXP__CONNECT_INFO_P3);
+			port[4][x] = readl_relaxed(base + CMN_MXP__CONNECT_INFO_P4);
+			port[5][x] = readl_relaxed(base + CMN_MXP__CONNECT_INFO_P5);
+			seq_printf(s, " XP #%-2d |", xp_base + x);
+		}
+
+		seq_puts(s, "\n     |");
+		for (x = 0; x < cmn->mesh_x; x++) {
+			u8 dtc = cmn->xps[xp_base + x].dtc;
+
+			if (dtc & (dtc - 1))
+				seq_puts(s, " DTC ?? |");
+			else
+				seq_printf(s, " DTC %ld  |", __ffs(dtc));
+		}
+		seq_puts(s, "\n     |");
+		for (x = 0; x < cmn->mesh_x; x++)
+			seq_puts(s, "........|");
+
+		for (p = 0; p < pmax; p++) {
+			seq_printf(s, "\n  %d  |", p);
+			for (x = 0; x < cmn->mesh_x; x++)
+				seq_puts(s, arm_cmn_device_type(port[p][x]));
+			seq_puts(s, "\n    0|");
+			for (x = 0; x < cmn->mesh_x; x++)
+				arm_cmn_show_logid(s, x, y, p, 0);
+			seq_puts(s, "\n    1|");
+			for (x = 0; x < cmn->mesh_x; x++)
+				arm_cmn_show_logid(s, x, y, p, 1);
+		}
+		seq_puts(s, "\n-----+");
+	}
+	for (x = 0; x < cmn->mesh_x; x++)
+		seq_puts(s, "--------+");
+	seq_puts(s, "\n");
+	return 0;
+}
+DEFINE_SHOW_ATTRIBUTE(arm_cmn_map);
+
+static void arm_cmn_debugfs_init(struct arm_cmn *cmn, int id)
+{
+	const char *name  = "map";
+
+	if (id > 0)
+		name = devm_kasprintf(cmn->dev, GFP_KERNEL, "map_%d", id);
+	if (!name)
+		return;
+
+	cmn->debug = debugfs_create_file(name, 0444, arm_cmn_debugfs, cmn, &arm_cmn_map_fops);
+}
+#else
+static void arm_cmn_debugfs_init(struct arm_cmn *cmn, int id) {}
+#endif
+
 struct arm_cmn_hw_event {
 	struct arm_cmn_node *dn;
 	u64 dtm_idx[2];
 	unsigned int dtc_idx;
 	u8 dtcs_used;
 	u8 num_dns;
+	u8 dtm_offset;
 };
 
 #define for_each_hw_dn(hw, dn, i) \
@@ -283,6 +520,7 @@
 
 struct arm_cmn_event_attr {
 	struct device_attribute attr;
+	enum cmn_model model;
 	enum cmn_node_type type;
 	u8 eventid;
 	u8 occupid;
@@ -294,50 +532,22 @@
 	int config;
 };
 
-static int arm_cmn_xyidbits(const struct arm_cmn *cmn)
-{
-	return cmn->mesh_x > 4 || cmn->mesh_y > 4 ? 3 : 2;
-}
-
-static void arm_cmn_init_node_to_xp(const struct arm_cmn *cmn,
-				    struct arm_cmn_node *dn)
-{
-	int bits = arm_cmn_xyidbits(cmn);
-	int x = CMN_NODEID_X(dn->id, bits);
-	int y = CMN_NODEID_Y(dn->id, bits);
-	int xp_idx = cmn->mesh_x * y + x;
-
-	dn->to_xp = (cmn->xps + xp_idx) - dn;
-}
-
-static struct arm_cmn_node *arm_cmn_node_to_xp(struct arm_cmn_node *dn)
-{
-	return dn->type == CMN_TYPE_XP ? dn : dn + dn->to_xp;
-}
-
-static struct arm_cmn_node *arm_cmn_node(const struct arm_cmn *cmn,
-					 enum cmn_node_type type)
-{
-	int i;
-
-	for (i = 0; i < cmn->num_dns; i++)
-		if (cmn->dns[i].type == type)
-			return &cmn->dns[i];
-	return NULL;
-}
-
-#define CMN_EVENT_ATTR(_name, _type, _eventid, _occupid)		\
+#define CMN_EVENT_ATTR(_model, _name, _type, _eventid, _occupid)	\
 	(&((struct arm_cmn_event_attr[]) {{				\
 		.attr = __ATTR(_name, 0444, arm_cmn_event_show, NULL),	\
+		.model = _model,					\
 		.type = _type,						\
 		.eventid = _eventid,					\
 		.occupid = _occupid,					\
 	}})[0].attr.attr)
 
-static bool arm_cmn_is_occup_event(enum cmn_node_type type, unsigned int id)
+static bool arm_cmn_is_occup_event(enum cmn_model model,
+				   enum cmn_node_type type, unsigned int id)
 {
-	return (type == CMN_TYPE_DVM && id == 0x05) ||
-	       (type == CMN_TYPE_HNF && id == 0x0f);
+	if (type == CMN_TYPE_DVM)
+		return (model == CMN600 && id == 0x05) ||
+		       (model == CI700 && id == 0x0c);
+	return type == CMN_TYPE_HNF && id == 0x0f;
 }
 
 static ssize_t arm_cmn_event_show(struct device *dev,
@@ -355,7 +565,7 @@
 				  "type=0x%x,eventid=0x%x,wp_dev_sel=?,wp_chn_sel=?,wp_grp=?,wp_val=?,wp_mask=?\n",
 				  eattr->type, eattr->eventid);
 
-	if (arm_cmn_is_occup_event(eattr->type, eattr->eventid))
+	if (arm_cmn_is_occup_event(eattr->model, eattr->type, eattr->eventid))
 		return sysfs_emit(buf, "type=0x%x,eventid=0x%x,occupid=0x%x\n",
 				  eattr->type, eattr->eventid, eattr->occupid);
 
@@ -370,60 +580,84 @@
 	struct device *dev = kobj_to_dev(kobj);
 	struct arm_cmn *cmn = to_cmn(dev_get_drvdata(dev));
 	struct arm_cmn_event_attr *eattr;
-	enum cmn_node_type type;
 
 	eattr = container_of(attr, typeof(*eattr), attr.attr);
-	type = eattr->type;
 
-	/* Watchpoints aren't nodes */
-	if (type == CMN_TYPE_WP)
-		type = CMN_TYPE_XP;
+	if (!(eattr->model & cmn->model))
+		return 0;
 
-	/* Revision-specific differences */
-	if (cmn->rev < CMN600_R1P2) {
-		if (type == CMN_TYPE_HNF && eattr->eventid == 0x1b)
+	/* Watchpoints aren't nodes, so avoid confusion */
+	if (eattr->type == CMN_TYPE_WP)
+		return attr->mode;
+
+	/* Hide XP events for unused interfaces/channels */
+	if (eattr->type == CMN_TYPE_XP) {
+		unsigned int intf = (eattr->eventid >> 2) & 7;
+		unsigned int chan = eattr->eventid >> 5;
+
+		if ((intf & 4) && !(cmn->ports_used & BIT(intf & 3)))
+			return 0;
+
+		if (chan == 4 && cmn->model == CMN600)
+			return 0;
+
+		if ((chan == 5 && cmn->rsp_vc_num < 2) ||
+		    (chan == 6 && cmn->dat_vc_num < 2))
 			return 0;
 	}
 
-	if (!arm_cmn_node(cmn, type))
+	/* Revision-specific differences */
+	if (cmn->model == CMN600 && cmn->rev < CMN600_R1P2) {
+		if (eattr->type == CMN_TYPE_HNF && eattr->eventid == 0x1b)
+			return 0;
+	}
+
+	if (!arm_cmn_node(cmn, eattr->type))
 		return 0;
 
 	return attr->mode;
 }
 
-#define _CMN_EVENT_DVM(_name, _event, _occup)			\
-	CMN_EVENT_ATTR(dn_##_name, CMN_TYPE_DVM, _event, _occup)
+#define _CMN_EVENT_DVM(_model, _name, _event, _occup)		\
+	CMN_EVENT_ATTR(_model, dn_##_name, CMN_TYPE_DVM, _event, _occup)
 #define CMN_EVENT_DTC(_name)					\
-	CMN_EVENT_ATTR(dtc_##_name, CMN_TYPE_DTC, 0, 0)
-#define _CMN_EVENT_HNF(_name, _event, _occup)			\
-	CMN_EVENT_ATTR(hnf_##_name, CMN_TYPE_HNF, _event, _occup)
+	CMN_EVENT_ATTR(CMN_ANY, dtc_##_name, CMN_TYPE_DTC, 0, 0)
+#define _CMN_EVENT_HNF(_model, _name, _event, _occup)		\
+	CMN_EVENT_ATTR(_model, hnf_##_name, CMN_TYPE_HNF, _event, _occup)
 #define CMN_EVENT_HNI(_name, _event)				\
-	CMN_EVENT_ATTR(hni_##_name, CMN_TYPE_HNI, _event, 0)
+	CMN_EVENT_ATTR(CMN_ANY, hni_##_name, CMN_TYPE_HNI, _event, 0)
 #define __CMN_EVENT_XP(_name, _event)				\
-	CMN_EVENT_ATTR(mxp_##_name, CMN_TYPE_XP, _event, 0)
-#define CMN_EVENT_SBSX(_name, _event)				\
-	CMN_EVENT_ATTR(sbsx_##_name, CMN_TYPE_SBSX, _event, 0)
-#define CMN_EVENT_RNID(_name, _event)				\
-	CMN_EVENT_ATTR(rnid_##_name, CMN_TYPE_RNI, _event, 0)
+	CMN_EVENT_ATTR(CMN_ANY, mxp_##_name, CMN_TYPE_XP, _event, 0)
+#define CMN_EVENT_SBSX(_model, _name, _event)			\
+	CMN_EVENT_ATTR(_model, sbsx_##_name, CMN_TYPE_SBSX, _event, 0)
+#define CMN_EVENT_RNID(_model, _name, _event)			\
+	CMN_EVENT_ATTR(_model, rnid_##_name, CMN_TYPE_RNI, _event, 0)
+#define CMN_EVENT_MTSX(_name, _event)				\
+	CMN_EVENT_ATTR(CMN_ANY, mtsx_##_name, CMN_TYPE_MTSX, _event, 0)
 
-#define CMN_EVENT_DVM(_name, _event)				\
-	_CMN_EVENT_DVM(_name, _event, 0)
-#define CMN_EVENT_HNF(_name, _event)				\
-	_CMN_EVENT_HNF(_name, _event, 0)
+#define CMN_EVENT_DVM(_model, _name, _event)			\
+	_CMN_EVENT_DVM(_model, _name, _event, 0)
+#define CMN_EVENT_HNF(_model, _name, _event)			\
+	_CMN_EVENT_HNF(_model, _name, _event, 0)
 #define _CMN_EVENT_XP(_name, _event)				\
 	__CMN_EVENT_XP(e_##_name, (_event) | (0 << 2)),		\
 	__CMN_EVENT_XP(w_##_name, (_event) | (1 << 2)),		\
 	__CMN_EVENT_XP(n_##_name, (_event) | (2 << 2)),		\
 	__CMN_EVENT_XP(s_##_name, (_event) | (3 << 2)),		\
 	__CMN_EVENT_XP(p0_##_name, (_event) | (4 << 2)),	\
-	__CMN_EVENT_XP(p1_##_name, (_event) | (5 << 2))
+	__CMN_EVENT_XP(p1_##_name, (_event) | (5 << 2)),	\
+	__CMN_EVENT_XP(p2_##_name, (_event) | (6 << 2)),	\
+	__CMN_EVENT_XP(p3_##_name, (_event) | (7 << 2))
 
 /* Good thing there are only 3 fundamental XP events... */
 #define CMN_EVENT_XP(_name, _event)				\
 	_CMN_EVENT_XP(req_##_name, (_event) | (0 << 5)),	\
 	_CMN_EVENT_XP(rsp_##_name, (_event) | (1 << 5)),	\
 	_CMN_EVENT_XP(snp_##_name, (_event) | (2 << 5)),	\
-	_CMN_EVENT_XP(dat_##_name, (_event) | (3 << 5))
+	_CMN_EVENT_XP(dat_##_name, (_event) | (3 << 5)),	\
+	_CMN_EVENT_XP(pub_##_name, (_event) | (4 << 5)),	\
+	_CMN_EVENT_XP(rsp2_##_name, (_event) | (5 << 5)),	\
+	_CMN_EVENT_XP(dat2_##_name, (_event) | (6 << 5))
 
 
 static struct attribute *arm_cmn_event_attrs[] = {
@@ -434,115 +668,152 @@
 	 * slot, but our lazy short-cut of using the DTM counter index for
 	 * the PMU index as well happens to avoid that by construction.
 	 */
-	CMN_EVENT_DVM(rxreq_dvmop,	0x01),
-	CMN_EVENT_DVM(rxreq_dvmsync,	0x02),
-	CMN_EVENT_DVM(rxreq_dvmop_vmid_filtered, 0x03),
-	CMN_EVENT_DVM(rxreq_retried,	0x04),
-	_CMN_EVENT_DVM(rxreq_trk_occupancy_all, 0x05, 0),
-	_CMN_EVENT_DVM(rxreq_trk_occupancy_dvmop, 0x05, 1),
-	_CMN_EVENT_DVM(rxreq_trk_occupancy_dvmsync, 0x05, 2),
+	CMN_EVENT_DVM(CMN600, rxreq_dvmop,		0x01),
+	CMN_EVENT_DVM(CMN600, rxreq_dvmsync,		0x02),
+	CMN_EVENT_DVM(CMN600, rxreq_dvmop_vmid_filtered, 0x03),
+	CMN_EVENT_DVM(CMN600, rxreq_retried,		0x04),
+	_CMN_EVENT_DVM(CMN600, rxreq_trk_occupancy_all, 0x05, 0),
+	_CMN_EVENT_DVM(CMN600, rxreq_trk_occupancy_dvmop, 0x05, 1),
+	_CMN_EVENT_DVM(CMN600, rxreq_trk_occupancy_dvmsync, 0x05, 2),
+	CMN_EVENT_DVM(CI700, dvmop_tlbi,		0x01),
+	CMN_EVENT_DVM(CI700, dvmop_bpi,			0x02),
+	CMN_EVENT_DVM(CI700, dvmop_pici,		0x03),
+	CMN_EVENT_DVM(CI700, dvmop_vici,		0x04),
+	CMN_EVENT_DVM(CI700, dvmsync,			0x05),
+	CMN_EVENT_DVM(CI700, vmid_filtered,		0x06),
+	CMN_EVENT_DVM(CI700, rndop_filtered,		0x07),
+	CMN_EVENT_DVM(CI700, retry,			0x08),
+	CMN_EVENT_DVM(CI700, txsnp_flitv,		0x09),
+	CMN_EVENT_DVM(CI700, txsnp_stall,		0x0a),
+	CMN_EVENT_DVM(CI700, trkfull,			0x0b),
+	_CMN_EVENT_DVM(CI700, trk_occupancy_all,	0x0c, 0),
+	_CMN_EVENT_DVM(CI700, trk_occupancy_dvmop,	0x0c, 1),
+	_CMN_EVENT_DVM(CI700, trk_occupancy_dvmsync,	0x0c, 2),
 
-	CMN_EVENT_HNF(cache_miss,	0x01),
-	CMN_EVENT_HNF(slc_sf_cache_access, 0x02),
-	CMN_EVENT_HNF(cache_fill,	0x03),
-	CMN_EVENT_HNF(pocq_retry,	0x04),
-	CMN_EVENT_HNF(pocq_reqs_recvd,	0x05),
-	CMN_EVENT_HNF(sf_hit,		0x06),
-	CMN_EVENT_HNF(sf_evictions,	0x07),
-	CMN_EVENT_HNF(dir_snoops_sent,	0x08),
-	CMN_EVENT_HNF(brd_snoops_sent,	0x09),
-	CMN_EVENT_HNF(slc_eviction,	0x0a),
-	CMN_EVENT_HNF(slc_fill_invalid_way, 0x0b),
-	CMN_EVENT_HNF(mc_retries,	0x0c),
-	CMN_EVENT_HNF(mc_reqs,		0x0d),
-	CMN_EVENT_HNF(qos_hh_retry,	0x0e),
-	_CMN_EVENT_HNF(qos_pocq_occupancy_all, 0x0f, 0),
-	_CMN_EVENT_HNF(qos_pocq_occupancy_read, 0x0f, 1),
-	_CMN_EVENT_HNF(qos_pocq_occupancy_write, 0x0f, 2),
-	_CMN_EVENT_HNF(qos_pocq_occupancy_atomic, 0x0f, 3),
-	_CMN_EVENT_HNF(qos_pocq_occupancy_stash, 0x0f, 4),
-	CMN_EVENT_HNF(pocq_addrhaz,	0x10),
-	CMN_EVENT_HNF(pocq_atomic_addrhaz, 0x11),
-	CMN_EVENT_HNF(ld_st_swp_adq_full, 0x12),
-	CMN_EVENT_HNF(cmp_adq_full,	0x13),
-	CMN_EVENT_HNF(txdat_stall,	0x14),
-	CMN_EVENT_HNF(txrsp_stall,	0x15),
-	CMN_EVENT_HNF(seq_full,		0x16),
-	CMN_EVENT_HNF(seq_hit,		0x17),
-	CMN_EVENT_HNF(snp_sent,		0x18),
-	CMN_EVENT_HNF(sfbi_dir_snp_sent, 0x19),
-	CMN_EVENT_HNF(sfbi_brd_snp_sent, 0x1a),
-	CMN_EVENT_HNF(snp_sent_untrk,	0x1b),
-	CMN_EVENT_HNF(intv_dirty,	0x1c),
-	CMN_EVENT_HNF(stash_snp_sent,	0x1d),
-	CMN_EVENT_HNF(stash_data_pull,	0x1e),
-	CMN_EVENT_HNF(snp_fwded,	0x1f),
+	CMN_EVENT_HNF(CMN_ANY, cache_miss,		0x01),
+	CMN_EVENT_HNF(CMN_ANY, slc_sf_cache_access,	0x02),
+	CMN_EVENT_HNF(CMN_ANY, cache_fill,		0x03),
+	CMN_EVENT_HNF(CMN_ANY, pocq_retry,		0x04),
+	CMN_EVENT_HNF(CMN_ANY, pocq_reqs_recvd,		0x05),
+	CMN_EVENT_HNF(CMN_ANY, sf_hit,			0x06),
+	CMN_EVENT_HNF(CMN_ANY, sf_evictions,		0x07),
+	CMN_EVENT_HNF(CMN_ANY, dir_snoops_sent,		0x08),
+	CMN_EVENT_HNF(CMN_ANY, brd_snoops_sent,		0x09),
+	CMN_EVENT_HNF(CMN_ANY, slc_eviction,		0x0a),
+	CMN_EVENT_HNF(CMN_ANY, slc_fill_invalid_way,	0x0b),
+	CMN_EVENT_HNF(CMN_ANY, mc_retries,		0x0c),
+	CMN_EVENT_HNF(CMN_ANY, mc_reqs,			0x0d),
+	CMN_EVENT_HNF(CMN_ANY, qos_hh_retry,		0x0e),
+	_CMN_EVENT_HNF(CMN_ANY, qos_pocq_occupancy_all,	0x0f, 0),
+	_CMN_EVENT_HNF(CMN_ANY, qos_pocq_occupancy_read, 0x0f, 1),
+	_CMN_EVENT_HNF(CMN_ANY, qos_pocq_occupancy_write, 0x0f, 2),
+	_CMN_EVENT_HNF(CMN_ANY, qos_pocq_occupancy_atomic, 0x0f, 3),
+	_CMN_EVENT_HNF(CMN_ANY, qos_pocq_occupancy_stash, 0x0f, 4),
+	CMN_EVENT_HNF(CMN_ANY, pocq_addrhaz,		0x10),
+	CMN_EVENT_HNF(CMN_ANY, pocq_atomic_addrhaz,	0x11),
+	CMN_EVENT_HNF(CMN_ANY, ld_st_swp_adq_full,	0x12),
+	CMN_EVENT_HNF(CMN_ANY, cmp_adq_full,		0x13),
+	CMN_EVENT_HNF(CMN_ANY, txdat_stall,		0x14),
+	CMN_EVENT_HNF(CMN_ANY, txrsp_stall,		0x15),
+	CMN_EVENT_HNF(CMN_ANY, seq_full,		0x16),
+	CMN_EVENT_HNF(CMN_ANY, seq_hit,			0x17),
+	CMN_EVENT_HNF(CMN_ANY, snp_sent,		0x18),
+	CMN_EVENT_HNF(CMN_ANY, sfbi_dir_snp_sent,	0x19),
+	CMN_EVENT_HNF(CMN_ANY, sfbi_brd_snp_sent,	0x1a),
+	CMN_EVENT_HNF(CMN_ANY, snp_sent_untrk,		0x1b),
+	CMN_EVENT_HNF(CMN_ANY, intv_dirty,		0x1c),
+	CMN_EVENT_HNF(CMN_ANY, stash_snp_sent,		0x1d),
+	CMN_EVENT_HNF(CMN_ANY, stash_data_pull,		0x1e),
+	CMN_EVENT_HNF(CMN_ANY, snp_fwded,		0x1f),
+	CMN_EVENT_HNF(CI700, atomic_fwd,		0x20),
+	CMN_EVENT_HNF(CI700, mpam_hardlim,		0x21),
+	CMN_EVENT_HNF(CI700, mpam_softlim,		0x22),
 
-	CMN_EVENT_HNI(rrt_rd_occ_cnt_ovfl, 0x20),
-	CMN_EVENT_HNI(rrt_wr_occ_cnt_ovfl, 0x21),
-	CMN_EVENT_HNI(rdt_rd_occ_cnt_ovfl, 0x22),
-	CMN_EVENT_HNI(rdt_wr_occ_cnt_ovfl, 0x23),
-	CMN_EVENT_HNI(wdb_occ_cnt_ovfl,	0x24),
-	CMN_EVENT_HNI(rrt_rd_alloc,	0x25),
-	CMN_EVENT_HNI(rrt_wr_alloc,	0x26),
-	CMN_EVENT_HNI(rdt_rd_alloc,	0x27),
-	CMN_EVENT_HNI(rdt_wr_alloc,	0x28),
-	CMN_EVENT_HNI(wdb_alloc,	0x29),
-	CMN_EVENT_HNI(txrsp_retryack,	0x2a),
-	CMN_EVENT_HNI(arvalid_no_arready, 0x2b),
-	CMN_EVENT_HNI(arready_no_arvalid, 0x2c),
-	CMN_EVENT_HNI(awvalid_no_awready, 0x2d),
-	CMN_EVENT_HNI(awready_no_awvalid, 0x2e),
-	CMN_EVENT_HNI(wvalid_no_wready,	0x2f),
-	CMN_EVENT_HNI(txdat_stall,	0x30),
-	CMN_EVENT_HNI(nonpcie_serialization, 0x31),
-	CMN_EVENT_HNI(pcie_serialization, 0x32),
+	CMN_EVENT_HNI(rrt_rd_occ_cnt_ovfl,		0x20),
+	CMN_EVENT_HNI(rrt_wr_occ_cnt_ovfl,		0x21),
+	CMN_EVENT_HNI(rdt_rd_occ_cnt_ovfl,		0x22),
+	CMN_EVENT_HNI(rdt_wr_occ_cnt_ovfl,		0x23),
+	CMN_EVENT_HNI(wdb_occ_cnt_ovfl,			0x24),
+	CMN_EVENT_HNI(rrt_rd_alloc,			0x25),
+	CMN_EVENT_HNI(rrt_wr_alloc,			0x26),
+	CMN_EVENT_HNI(rdt_rd_alloc,			0x27),
+	CMN_EVENT_HNI(rdt_wr_alloc,			0x28),
+	CMN_EVENT_HNI(wdb_alloc,			0x29),
+	CMN_EVENT_HNI(txrsp_retryack,			0x2a),
+	CMN_EVENT_HNI(arvalid_no_arready,		0x2b),
+	CMN_EVENT_HNI(arready_no_arvalid,		0x2c),
+	CMN_EVENT_HNI(awvalid_no_awready,		0x2d),
+	CMN_EVENT_HNI(awready_no_awvalid,		0x2e),
+	CMN_EVENT_HNI(wvalid_no_wready,			0x2f),
+	CMN_EVENT_HNI(txdat_stall,			0x30),
+	CMN_EVENT_HNI(nonpcie_serialization,		0x31),
+	CMN_EVENT_HNI(pcie_serialization,		0x32),
 
-	CMN_EVENT_XP(txflit_valid,	0x01),
-	CMN_EVENT_XP(txflit_stall,	0x02),
-	CMN_EVENT_XP(partial_dat_flit,	0x03),
+	CMN_EVENT_XP(txflit_valid,			0x01),
+	CMN_EVENT_XP(txflit_stall,			0x02),
+	CMN_EVENT_XP(partial_dat_flit,			0x03),
 	/* We treat watchpoints as a special made-up class of XP events */
-	CMN_EVENT_ATTR(watchpoint_up, CMN_TYPE_WP, 0, 0),
-	CMN_EVENT_ATTR(watchpoint_down, CMN_TYPE_WP, 2, 0),
+	CMN_EVENT_ATTR(CMN_ANY, watchpoint_up, CMN_TYPE_WP, CMN_WP_UP, 0),
+	CMN_EVENT_ATTR(CMN_ANY, watchpoint_down, CMN_TYPE_WP, CMN_WP_DOWN, 0),
 
-	CMN_EVENT_SBSX(rd_req,		0x01),
-	CMN_EVENT_SBSX(wr_req,		0x02),
-	CMN_EVENT_SBSX(cmo_req,		0x03),
-	CMN_EVENT_SBSX(txrsp_retryack,	0x04),
-	CMN_EVENT_SBSX(txdat_flitv,	0x05),
-	CMN_EVENT_SBSX(txrsp_flitv,	0x06),
-	CMN_EVENT_SBSX(rd_req_trkr_occ_cnt_ovfl, 0x11),
-	CMN_EVENT_SBSX(wr_req_trkr_occ_cnt_ovfl, 0x12),
-	CMN_EVENT_SBSX(cmo_req_trkr_occ_cnt_ovfl, 0x13),
-	CMN_EVENT_SBSX(wdb_occ_cnt_ovfl, 0x14),
-	CMN_EVENT_SBSX(rd_axi_trkr_occ_cnt_ovfl, 0x15),
-	CMN_EVENT_SBSX(cmo_axi_trkr_occ_cnt_ovfl, 0x16),
-	CMN_EVENT_SBSX(arvalid_no_arready, 0x21),
-	CMN_EVENT_SBSX(awvalid_no_awready, 0x22),
-	CMN_EVENT_SBSX(wvalid_no_wready, 0x23),
-	CMN_EVENT_SBSX(txdat_stall,	0x24),
-	CMN_EVENT_SBSX(txrsp_stall,	0x25),
+	CMN_EVENT_SBSX(CMN_ANY, rd_req,			0x01),
+	CMN_EVENT_SBSX(CMN_ANY, wr_req,			0x02),
+	CMN_EVENT_SBSX(CMN_ANY, cmo_req,		0x03),
+	CMN_EVENT_SBSX(CMN_ANY, txrsp_retryack,		0x04),
+	CMN_EVENT_SBSX(CMN_ANY, txdat_flitv,		0x05),
+	CMN_EVENT_SBSX(CMN_ANY, txrsp_flitv,		0x06),
+	CMN_EVENT_SBSX(CMN_ANY, rd_req_trkr_occ_cnt_ovfl, 0x11),
+	CMN_EVENT_SBSX(CMN_ANY, wr_req_trkr_occ_cnt_ovfl, 0x12),
+	CMN_EVENT_SBSX(CMN_ANY, cmo_req_trkr_occ_cnt_ovfl, 0x13),
+	CMN_EVENT_SBSX(CMN_ANY, wdb_occ_cnt_ovfl,	0x14),
+	CMN_EVENT_SBSX(CMN_ANY, rd_axi_trkr_occ_cnt_ovfl, 0x15),
+	CMN_EVENT_SBSX(CMN_ANY, cmo_axi_trkr_occ_cnt_ovfl, 0x16),
+	CMN_EVENT_SBSX(CI700, rdb_occ_cnt_ovfl,		0x17),
+	CMN_EVENT_SBSX(CMN_ANY, arvalid_no_arready,	0x21),
+	CMN_EVENT_SBSX(CMN_ANY, awvalid_no_awready,	0x22),
+	CMN_EVENT_SBSX(CMN_ANY, wvalid_no_wready,	0x23),
+	CMN_EVENT_SBSX(CMN_ANY, txdat_stall,		0x24),
+	CMN_EVENT_SBSX(CMN_ANY, txrsp_stall,		0x25),
 
-	CMN_EVENT_RNID(s0_rdata_beats,	0x01),
-	CMN_EVENT_RNID(s1_rdata_beats,	0x02),
-	CMN_EVENT_RNID(s2_rdata_beats,	0x03),
-	CMN_EVENT_RNID(rxdat_flits,	0x04),
-	CMN_EVENT_RNID(txdat_flits,	0x05),
-	CMN_EVENT_RNID(txreq_flits_total, 0x06),
-	CMN_EVENT_RNID(txreq_flits_retried, 0x07),
-	CMN_EVENT_RNID(rrt_occ_ovfl,	0x08),
-	CMN_EVENT_RNID(wrt_occ_ovfl,	0x09),
-	CMN_EVENT_RNID(txreq_flits_replayed, 0x0a),
-	CMN_EVENT_RNID(wrcancel_sent,	0x0b),
-	CMN_EVENT_RNID(s0_wdata_beats,	0x0c),
-	CMN_EVENT_RNID(s1_wdata_beats,	0x0d),
-	CMN_EVENT_RNID(s2_wdata_beats,	0x0e),
-	CMN_EVENT_RNID(rrt_alloc,	0x0f),
-	CMN_EVENT_RNID(wrt_alloc,	0x10),
-	CMN_EVENT_RNID(rdb_unord,	0x11),
-	CMN_EVENT_RNID(rdb_replay,	0x12),
-	CMN_EVENT_RNID(rdb_hybrid,	0x13),
-	CMN_EVENT_RNID(rdb_ord,		0x14),
+	CMN_EVENT_RNID(CMN_ANY, s0_rdata_beats,		0x01),
+	CMN_EVENT_RNID(CMN_ANY, s1_rdata_beats,		0x02),
+	CMN_EVENT_RNID(CMN_ANY, s2_rdata_beats,		0x03),
+	CMN_EVENT_RNID(CMN_ANY, rxdat_flits,		0x04),
+	CMN_EVENT_RNID(CMN_ANY, txdat_flits,		0x05),
+	CMN_EVENT_RNID(CMN_ANY, txreq_flits_total,	0x06),
+	CMN_EVENT_RNID(CMN_ANY, txreq_flits_retried,	0x07),
+	CMN_EVENT_RNID(CMN_ANY, rrt_occ_ovfl,		0x08),
+	CMN_EVENT_RNID(CMN_ANY, wrt_occ_ovfl,		0x09),
+	CMN_EVENT_RNID(CMN_ANY, txreq_flits_replayed,	0x0a),
+	CMN_EVENT_RNID(CMN_ANY, wrcancel_sent,		0x0b),
+	CMN_EVENT_RNID(CMN_ANY, s0_wdata_beats,		0x0c),
+	CMN_EVENT_RNID(CMN_ANY, s1_wdata_beats,		0x0d),
+	CMN_EVENT_RNID(CMN_ANY, s2_wdata_beats,		0x0e),
+	CMN_EVENT_RNID(CMN_ANY, rrt_alloc,		0x0f),
+	CMN_EVENT_RNID(CMN_ANY, wrt_alloc,		0x10),
+	CMN_EVENT_RNID(CMN600, rdb_unord,		0x11),
+	CMN_EVENT_RNID(CMN600, rdb_replay,		0x12),
+	CMN_EVENT_RNID(CMN600, rdb_hybrid,		0x13),
+	CMN_EVENT_RNID(CMN600, rdb_ord,			0x14),
+	CMN_EVENT_RNID(CI700, padb_occ_ovfl,		0x11),
+	CMN_EVENT_RNID(CI700, rpdb_occ_ovfl,		0x12),
+	CMN_EVENT_RNID(CI700, rrt_occup_ovfl_slice1,	0x13),
+	CMN_EVENT_RNID(CI700, rrt_occup_ovfl_slice2,	0x14),
+	CMN_EVENT_RNID(CI700, rrt_occup_ovfl_slice3,	0x15),
+	CMN_EVENT_RNID(CI700, wrt_throttled,		0x16),
+
+	CMN_EVENT_MTSX(tc_lookup,			0x01),
+	CMN_EVENT_MTSX(tc_fill,				0x02),
+	CMN_EVENT_MTSX(tc_miss,				0x03),
+	CMN_EVENT_MTSX(tdb_forward,			0x04),
+	CMN_EVENT_MTSX(tcq_hazard,			0x05),
+	CMN_EVENT_MTSX(tcq_rd_alloc,			0x06),
+	CMN_EVENT_MTSX(tcq_wr_alloc,			0x07),
+	CMN_EVENT_MTSX(tcq_cmo_alloc,			0x08),
+	CMN_EVENT_MTSX(axi_rd_req,			0x09),
+	CMN_EVENT_MTSX(axi_wr_req,			0x0a),
+	CMN_EVENT_MTSX(tcq_occ_cnt_ovfl,		0x0b),
+	CMN_EVENT_MTSX(tdb_occ_cnt_ovfl,		0x0c),
 
 	NULL
 };
@@ -640,14 +911,18 @@
 	u32 grp = CMN_EVENT_WP_GRP(event);
 	u32 exc = CMN_EVENT_WP_EXCLUSIVE(event);
 	u32 combine = CMN_EVENT_WP_COMBINE(event);
+	bool is_cmn600 = to_cmn(event->pmu)->model == CMN600;
 
 	config = FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_DEV_SEL, dev) |
 		 FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_CHN_SEL, chn) |
 		 FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_GRP, grp) |
-		 FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_EXCLUSIVE, exc);
+		 FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_DEV_SEL2, dev >> 1);
+	if (exc)
+		config |= is_cmn600 ? CMN600_WPn_CONFIG_WP_EXCLUSIVE :
+				      CMN_DTM_WPn_CONFIG_WP_EXCLUSIVE;
 	if (combine && !grp)
-		config |= CMN_DTM_WPn_CONFIG_WP_COMBINE;
-
+		config |= is_cmn600 ? CMN600_WPn_CONFIG_WP_COMBINE :
+				      CMN_DTM_WPn_CONFIG_WP_COMBINE;
 	return config;
 }
 
@@ -679,18 +954,19 @@
 static u64 arm_cmn_read_dtm(struct arm_cmn *cmn, struct arm_cmn_hw_event *hw,
 			    bool snapshot)
 {
+	struct arm_cmn_dtm *dtm = NULL;
 	struct arm_cmn_node *dn;
-	unsigned int i, offset;
-	u64 count = 0;
+	unsigned int i, offset, dtm_idx;
+	u64 reg, count = 0;
 
 	offset = snapshot ? CMN_DTM_PMEVCNTSR : CMN_DTM_PMEVCNT;
 	for_each_hw_dn(hw, dn, i) {
-		struct arm_cmn_node *xp = arm_cmn_node_to_xp(dn);
-		int dtm_idx = arm_cmn_get_index(hw->dtm_idx, i);
-		u64 reg = readq_relaxed(xp->pmu_base + offset);
-		u16 dtm_count = reg >> (dtm_idx * 16);
-
-		count += dtm_count;
+		if (dtm != &cmn->dtms[dn->dtm]) {
+			dtm = &cmn->dtms[dn->dtm] + hw->dtm_offset;
+			reg = readq_relaxed(dtm->base + offset);
+		}
+		dtm_idx = arm_cmn_get_index(hw->dtm_idx, i);
+		count += (u16)(reg >> (dtm_idx * 16));
 	}
 	return count;
 }
@@ -774,8 +1050,10 @@
 		u64 mask = CMN_EVENT_WP_MASK(event);
 
 		for_each_hw_dn(hw, dn, i) {
-			writeq_relaxed(val, dn->pmu_base + CMN_DTM_WPn_VAL(wp_idx));
-			writeq_relaxed(mask, dn->pmu_base + CMN_DTM_WPn_MASK(wp_idx));
+			void __iomem *base = dn->pmu_base + CMN_DTM_OFFSET(hw->dtm_offset);
+
+			writeq_relaxed(val, base + CMN_DTM_WPn_VAL(wp_idx));
+			writeq_relaxed(mask, base + CMN_DTM_WPn_MASK(wp_idx));
 		}
 	} else for_each_hw_dn(hw, dn, i) {
 		int dtm_idx = arm_cmn_get_index(hw->dtm_idx, i);
@@ -800,8 +1078,10 @@
 		int wp_idx = arm_cmn_wp_idx(event);
 
 		for_each_hw_dn(hw, dn, i) {
-			writeq_relaxed(0, dn->pmu_base + CMN_DTM_WPn_MASK(wp_idx));
-			writeq_relaxed(~0ULL, dn->pmu_base + CMN_DTM_WPn_VAL(wp_idx));
+			void __iomem *base = dn->pmu_base + CMN_DTM_OFFSET(hw->dtm_offset);
+
+			writeq_relaxed(0, base + CMN_DTM_WPn_MASK(wp_idx));
+			writeq_relaxed(~0ULL, base + CMN_DTM_WPn_VAL(wp_idx));
 		}
 	} else for_each_hw_dn(hw, dn, i) {
 		int dtm_idx = arm_cmn_get_index(hw->dtm_idx, i);
@@ -814,14 +1094,15 @@
 }
 
 struct arm_cmn_val {
-	u8 dtm_count[CMN_MAX_XPS];
-	u8 occupid[CMN_MAX_XPS];
-	u8 wp[CMN_MAX_XPS][4];
+	u8 dtm_count[CMN_MAX_DTMS];
+	u8 occupid[CMN_MAX_DTMS];
+	u8 wp[CMN_MAX_DTMS][4];
 	int dtc_count;
 	bool cycles;
 };
 
-static void arm_cmn_val_add_event(struct arm_cmn_val *val, struct perf_event *event)
+static void arm_cmn_val_add_event(struct arm_cmn *cmn, struct arm_cmn_val *val,
+				  struct perf_event *event)
 {
 	struct arm_cmn_hw_event *hw = to_cmn_hw(event);
 	struct arm_cmn_node *dn;
@@ -839,33 +1120,33 @@
 	}
 
 	val->dtc_count++;
-	if (arm_cmn_is_occup_event(type, CMN_EVENT_EVENTID(event)))
+	if (arm_cmn_is_occup_event(cmn->model, type, CMN_EVENT_EVENTID(event)))
 		occupid = CMN_EVENT_OCCUPID(event) + 1;
 	else
 		occupid = 0;
 
 	for_each_hw_dn(hw, dn, i) {
-		int wp_idx, xp = arm_cmn_node_to_xp(dn)->logid;
+		int wp_idx, dtm = dn->dtm;
 
-		val->dtm_count[xp]++;
-		val->occupid[xp] = occupid;
+		val->dtm_count[dtm]++;
+		val->occupid[dtm] = occupid;
 
 		if (type != CMN_TYPE_WP)
 			continue;
 
 		wp_idx = arm_cmn_wp_idx(event);
-		val->wp[xp][wp_idx] = CMN_EVENT_WP_COMBINE(event) + 1;
+		val->wp[dtm][wp_idx] = CMN_EVENT_WP_COMBINE(event) + 1;
 	}
 }
 
-static int arm_cmn_validate_group(struct perf_event *event)
+static int arm_cmn_validate_group(struct arm_cmn *cmn, struct perf_event *event)
 {
 	struct arm_cmn_hw_event *hw = to_cmn_hw(event);
 	struct arm_cmn_node *dn;
 	struct perf_event *sibling, *leader = event->group_leader;
 	enum cmn_node_type type;
-	struct arm_cmn_val val;
-	int i;
+	struct arm_cmn_val *val;
+	int i, ret = -EINVAL;
 	u8 occupid;
 
 	if (leader == event)
@@ -874,54 +1155,61 @@
 	if (event->pmu != leader->pmu && !is_software_event(leader))
 		return -EINVAL;
 
-	memset(&val, 0, sizeof(val));
+	val = kzalloc(sizeof(*val), GFP_KERNEL);
+	if (!val)
+		return -ENOMEM;
 
-	arm_cmn_val_add_event(&val, leader);
+	arm_cmn_val_add_event(cmn, val, leader);
 	for_each_sibling_event(sibling, leader)
-		arm_cmn_val_add_event(&val, sibling);
+		arm_cmn_val_add_event(cmn, val, sibling);
 
 	type = CMN_EVENT_TYPE(event);
-	if (type == CMN_TYPE_DTC)
-		return val.cycles ? -EINVAL : 0;
+	if (type == CMN_TYPE_DTC) {
+		ret = val->cycles ? -EINVAL : 0;
+		goto done;
+	}
 
-	if (val.dtc_count == CMN_DT_NUM_COUNTERS)
-		return -EINVAL;
+	if (val->dtc_count == CMN_DT_NUM_COUNTERS)
+		goto done;
 
-	if (arm_cmn_is_occup_event(type, CMN_EVENT_EVENTID(event)))
+	if (arm_cmn_is_occup_event(cmn->model, type, CMN_EVENT_EVENTID(event)))
 		occupid = CMN_EVENT_OCCUPID(event) + 1;
 	else
 		occupid = 0;
 
 	for_each_hw_dn(hw, dn, i) {
-		int wp_idx, wp_cmb, xp = arm_cmn_node_to_xp(dn)->logid;
+		int wp_idx, wp_cmb, dtm = dn->dtm;
 
-		if (val.dtm_count[xp] == CMN_DTM_NUM_COUNTERS)
-			return -EINVAL;
+		if (val->dtm_count[dtm] == CMN_DTM_NUM_COUNTERS)
+			goto done;
 
-		if (occupid && val.occupid[xp] && occupid != val.occupid[xp])
-			return -EINVAL;
+		if (occupid && val->occupid[dtm] && occupid != val->occupid[dtm])
+			goto done;
 
 		if (type != CMN_TYPE_WP)
 			continue;
 
 		wp_idx = arm_cmn_wp_idx(event);
-		if (val.wp[xp][wp_idx])
-			return -EINVAL;
+		if (val->wp[dtm][wp_idx])
+			goto done;
 
-		wp_cmb = val.wp[xp][wp_idx ^ 1];
+		wp_cmb = val->wp[dtm][wp_idx ^ 1];
 		if (wp_cmb && wp_cmb != CMN_EVENT_WP_COMBINE(event) + 1)
-			return -EINVAL;
+			goto done;
 	}
 
-	return 0;
+	ret = 0;
+done:
+	kfree(val);
+	return ret;
 }
 
 static int arm_cmn_event_init(struct perf_event *event)
 {
 	struct arm_cmn *cmn = to_cmn(event->pmu);
 	struct arm_cmn_hw_event *hw = to_cmn_hw(event);
+	struct arm_cmn_node *dn;
 	enum cmn_node_type type;
-	unsigned int i;
 	bool bynodeid;
 	u16 nodeid, eventid;
 
@@ -947,38 +1235,42 @@
 		eventid = CMN_EVENT_EVENTID(event);
 		if (eventid != CMN_WP_UP && eventid != CMN_WP_DOWN)
 			return -EINVAL;
+		/* ...but the DTM may depend on which port we're watching */
+		if (cmn->multi_dtm)
+			hw->dtm_offset = CMN_EVENT_WP_DEV_SEL(event) / 2;
 	}
 
 	bynodeid = CMN_EVENT_BYNODEID(event);
 	nodeid = CMN_EVENT_NODEID(event);
 
 	hw->dn = arm_cmn_node(cmn, type);
-	for (i = hw->dn - cmn->dns; i < cmn->num_dns && cmn->dns[i].type == type; i++) {
-		if (!bynodeid) {
-			hw->num_dns++;
-		} else if (cmn->dns[i].id != nodeid) {
+	if (!hw->dn)
+		return -EINVAL;
+	for (dn = hw->dn; dn->type == type; dn++) {
+		if (bynodeid && dn->id != nodeid) {
 			hw->dn++;
-		} else {
-			hw->num_dns = 1;
-			break;
+			continue;
 		}
+		hw->num_dns++;
+		if (bynodeid)
+			break;
 	}
 
 	if (!hw->num_dns) {
-		int bits = arm_cmn_xyidbits(cmn);
+		struct arm_cmn_nodeid nid = arm_cmn_nid(cmn, nodeid);
 
 		dev_dbg(cmn->dev, "invalid node 0x%x (%d,%d,%d,%d) type 0x%x\n",
-			nodeid, CMN_NODEID_X(nodeid, bits), CMN_NODEID_Y(nodeid, bits),
-			CMN_NODEID_PID(nodeid), CMN_NODEID_DEVID(nodeid), type);
+			nodeid, nid.x, nid.y, nid.port, nid.dev, type);
 		return -EINVAL;
 	}
 	/*
-	 * By assuming events count in all DTC domains, we cunningly avoid
-	 * needing to know anything about how XPs are assigned to domains.
+	 * Keep assuming non-cycles events count in all DTC domains; turns out
+	 * it's hard to make a worthwhile optimisation around this, short of
+	 * going all-in with domain-local counter allocation as well.
 	 */
 	hw->dtcs_used = (1U << cmn->num_dtcs) - 1;
 
-	return arm_cmn_validate_group(event);
+	return arm_cmn_validate_group(cmn, event);
 }
 
 static void arm_cmn_event_clear(struct arm_cmn *cmn, struct perf_event *event,
@@ -988,17 +1280,17 @@
 	enum cmn_node_type type = CMN_EVENT_TYPE(event);
 
 	while (i--) {
-		struct arm_cmn_node *xp = arm_cmn_node_to_xp(hw->dn + i);
+		struct arm_cmn_dtm *dtm = &cmn->dtms[hw->dn[i].dtm] + hw->dtm_offset;
 		unsigned int dtm_idx = arm_cmn_get_index(hw->dtm_idx, i);
 
 		if (type == CMN_TYPE_WP)
-			hw->dn[i].wp_event[arm_cmn_wp_idx(event)] = -1;
+			dtm->wp_event[arm_cmn_wp_idx(event)] = -1;
 
-		if (arm_cmn_is_occup_event(type, CMN_EVENT_EVENTID(event)))
+		if (arm_cmn_is_occup_event(cmn->model, type, CMN_EVENT_EVENTID(event)))
 			hw->dn[i].occupid_count--;
 
-		xp->pmu_config_low &= ~CMN__PMEVCNT_PAIRED(dtm_idx);
-		writel_relaxed(xp->pmu_config_low, xp->pmu_base + CMN_DTM_PMU_CONFIG);
+		dtm->pmu_config_low &= ~CMN__PMEVCNT_PAIRED(dtm_idx);
+		writel_relaxed(dtm->pmu_config_low, dtm->base + CMN_DTM_PMU_CONFIG);
 	}
 	memset(hw->dtm_idx, 0, sizeof(hw->dtm_idx));
 
@@ -1040,12 +1332,12 @@
 
 	/* ...then the local counters to feed it. */
 	for_each_hw_dn(hw, dn, i) {
-		struct arm_cmn_node *xp = arm_cmn_node_to_xp(dn);
+		struct arm_cmn_dtm *dtm = &cmn->dtms[dn->dtm] + hw->dtm_offset;
 		unsigned int dtm_idx, shift;
 		u64 reg;
 
 		dtm_idx = 0;
-		while (xp->pmu_config_low & CMN__PMEVCNT_PAIRED(dtm_idx))
+		while (dtm->pmu_config_low & CMN__PMEVCNT_PAIRED(dtm_idx))
 			if (++dtm_idx == CMN_DTM_NUM_COUNTERS)
 				goto free_dtms;
 
@@ -1055,26 +1347,28 @@
 			int tmp, wp_idx = arm_cmn_wp_idx(event);
 			u32 cfg = arm_cmn_wp_config(event);
 
-			if (dn->wp_event[wp_idx] >= 0)
+			if (dtm->wp_event[wp_idx] >= 0)
 				goto free_dtms;
 
-			tmp = dn->wp_event[wp_idx ^ 1];
+			tmp = dtm->wp_event[wp_idx ^ 1];
 			if (tmp >= 0 && CMN_EVENT_WP_COMBINE(event) !=
 					CMN_EVENT_WP_COMBINE(dtc->counters[tmp]))
 				goto free_dtms;
 
 			input_sel = CMN__PMEVCNT0_INPUT_SEL_WP + wp_idx;
-			dn->wp_event[wp_idx] = dtc_idx;
-			writel_relaxed(cfg, dn->pmu_base + CMN_DTM_WPn_CONFIG(wp_idx));
+			dtm->wp_event[wp_idx] = dtc_idx;
+			writel_relaxed(cfg, dtm->base + CMN_DTM_WPn_CONFIG(wp_idx));
 		} else {
-			unsigned int port = CMN_NODEID_PID(dn->id);
-			unsigned int dev = CMN_NODEID_DEVID(dn->id);
+			struct arm_cmn_nodeid nid = arm_cmn_nid(cmn, dn->id);
+
+			if (cmn->multi_dtm)
+				nid.port %= 2;
 
 			input_sel = CMN__PMEVCNT0_INPUT_SEL_DEV + dtm_idx +
-				    (port << 4) + (dev << 2);
+				    (nid.port << 4) + (nid.dev << 2);
 
-			if (arm_cmn_is_occup_event(type, CMN_EVENT_EVENTID(event))) {
-				int occupid = CMN_EVENT_OCCUPID(event);
+			if (arm_cmn_is_occup_event(cmn->model, type, CMN_EVENT_EVENTID(event))) {
+				u8 occupid = CMN_EVENT_OCCUPID(event);
 
 				if (dn->occupid_count == 0) {
 					dn->occupid_val = occupid;
@@ -1089,13 +1383,13 @@
 
 		arm_cmn_set_index(hw->dtm_idx, i, dtm_idx);
 
-		xp->input_sel[dtm_idx] = input_sel;
+		dtm->input_sel[dtm_idx] = input_sel;
 		shift = CMN__PMEVCNTn_GLOBAL_NUM_SHIFT(dtm_idx);
-		xp->pmu_config_low &= ~(CMN__PMEVCNT0_GLOBAL_NUM << shift);
-		xp->pmu_config_low |= FIELD_PREP(CMN__PMEVCNT0_GLOBAL_NUM, dtc_idx) << shift;
-		xp->pmu_config_low |= CMN__PMEVCNT_PAIRED(dtm_idx);
-		reg = (u64)le32_to_cpu(xp->pmu_config_high) << 32 | xp->pmu_config_low;
-		writeq_relaxed(reg, xp->pmu_base + CMN_DTM_PMU_CONFIG);
+		dtm->pmu_config_low &= ~(CMN__PMEVCNT0_GLOBAL_NUM << shift);
+		dtm->pmu_config_low |= FIELD_PREP(CMN__PMEVCNT0_GLOBAL_NUM, dtc_idx) << shift;
+		dtm->pmu_config_low |= CMN__PMEVCNT_PAIRED(dtm_idx);
+		reg = (u64)le32_to_cpu(dtm->pmu_config_high) << 32 | dtm->pmu_config_low;
+		writeq_relaxed(reg, dtm->base + CMN_DTM_PMU_CONFIG);
 	}
 
 	/* Go go go! */
@@ -1147,23 +1441,47 @@
 	return 0;
 }
 
-static int arm_cmn_pmu_offline_cpu(unsigned int cpu, struct hlist_node *node)
+static void arm_cmn_migrate(struct arm_cmn *cmn, unsigned int cpu)
+{
+	unsigned int i;
+
+	perf_pmu_migrate_context(&cmn->pmu, cmn->cpu, cpu);
+	for (i = 0; i < cmn->num_dtcs; i++)
+		irq_set_affinity(cmn->dtc[i].irq, cpumask_of(cpu));
+	cmn->cpu = cpu;
+}
+
+static int arm_cmn_pmu_online_cpu(unsigned int cpu, struct hlist_node *cpuhp_node)
 {
 	struct arm_cmn *cmn;
-	unsigned int i, target;
+	int node;
 
-	cmn = hlist_entry_safe(node, struct arm_cmn, cpuhp_node);
+	cmn = hlist_entry_safe(cpuhp_node, struct arm_cmn, cpuhp_node);
+	node = dev_to_node(cmn->dev);
+	if (node != NUMA_NO_NODE && cpu_to_node(cmn->cpu) != node && cpu_to_node(cpu) == node)
+		arm_cmn_migrate(cmn, cpu);
+	return 0;
+}
+
+static int arm_cmn_pmu_offline_cpu(unsigned int cpu, struct hlist_node *cpuhp_node)
+{
+	struct arm_cmn *cmn;
+	unsigned int target;
+	int node;
+	cpumask_t mask;
+
+	cmn = hlist_entry_safe(cpuhp_node, struct arm_cmn, cpuhp_node);
 	if (cpu != cmn->cpu)
 		return 0;
 
-	target = cpumask_any_but(cpu_online_mask, cpu);
-	if (target >= nr_cpu_ids)
-		return 0;
-
-	perf_pmu_migrate_context(&cmn->pmu, cpu, target);
-	for (i = 0; i < cmn->num_dtcs; i++)
-		irq_set_affinity(cmn->dtc[i].irq, cpumask_of(target));
-	cmn->cpu = target;
+	node = dev_to_node(cmn->dev);
+	if (cpumask_and(&mask, cpumask_of_node(node), cpu_online_mask) &&
+	    cpumask_andnot(&mask, &mask, cpumask_of(cpu)))
+		target = cpumask_any(&mask);
+	else
+		target = cpumask_any_but(cpu_online_mask, cpu);
+	if (target < nr_cpu_ids)
+		arm_cmn_migrate(cmn, target);
 	return 0;
 }
 
@@ -1231,23 +1549,22 @@
 	return 0;
 }
 
-static void arm_cmn_init_dtm(struct arm_cmn_node *xp)
+static void arm_cmn_init_dtm(struct arm_cmn_dtm *dtm, struct arm_cmn_node *xp, int idx)
 {
 	int i;
 
+	dtm->base = xp->pmu_base + CMN_DTM_OFFSET(idx);
+	dtm->pmu_config_low = CMN_DTM_PMU_CONFIG_PMU_EN;
 	for (i = 0; i < 4; i++) {
-		xp->wp_event[i] = -1;
-		writeq_relaxed(0, xp->pmu_base + CMN_DTM_WPn_MASK(i));
-		writeq_relaxed(~0ULL, xp->pmu_base + CMN_DTM_WPn_VAL(i));
+		dtm->wp_event[i] = -1;
+		writeq_relaxed(0, dtm->base + CMN_DTM_WPn_MASK(i));
+		writeq_relaxed(~0ULL, dtm->base + CMN_DTM_WPn_VAL(i));
 	}
-	xp->pmu_config_low = CMN_DTM_PMU_CONFIG_PMU_EN;
-	xp->dtc = -1;
 }
 
 static int arm_cmn_init_dtc(struct arm_cmn *cmn, struct arm_cmn_node *dn, int idx)
 {
 	struct arm_cmn_dtc *dtc = cmn->dtc + idx;
-	struct arm_cmn_node *xp;
 
 	dtc->base = dn->pmu_base - CMN_PMU_OFFSET;
 	dtc->irq = platform_get_irq(to_platform_device(cmn->dev), idx);
@@ -1259,10 +1576,6 @@
 	writeq_relaxed(0, dtc->base + CMN_DT_PMCCNTR);
 	writel_relaxed(0x1ff, dtc->base + CMN_DT_PMOVSR_CLR);
 
-	/* We do at least know that a DTC's XP must be in that DTC's domain */
-	xp = arm_cmn_node_to_xp(dn);
-	xp->dtc = idx;
-
 	return 0;
 }
 
@@ -1279,8 +1592,9 @@
 
 static int arm_cmn_init_dtcs(struct arm_cmn *cmn)
 {
-	struct arm_cmn_node *dn;
+	struct arm_cmn_node *dn, *xp;
 	int dtc_idx = 0;
+	u8 dtcs_present = (1 << cmn->num_dtcs) - 1;
 
 	cmn->dtc = devm_kcalloc(cmn->dev, cmn->num_dtcs, sizeof(cmn->dtc[0]), GFP_KERNEL);
 	if (!cmn->dtc)
@@ -1290,14 +1604,26 @@
 
 	cmn->xps = arm_cmn_node(cmn, CMN_TYPE_XP);
 
-	for (dn = cmn->dns; dn < cmn->dns + cmn->num_dns; dn++) {
-		if (dn->type != CMN_TYPE_XP)
-			arm_cmn_init_node_to_xp(cmn, dn);
-		else if (cmn->num_dtcs == 1)
-			dn->dtc = 0;
+	for (dn = cmn->dns; dn->type; dn++) {
+		if (dn->type == CMN_TYPE_XP) {
+			dn->dtc &= dtcs_present;
+			continue;
+		}
 
-		if (dn->type == CMN_TYPE_DTC)
-			arm_cmn_init_dtc(cmn, dn, dtc_idx++);
+		xp = arm_cmn_node_to_xp(cmn, dn);
+		dn->dtm = xp->dtm;
+		if (cmn->multi_dtm)
+			dn->dtm += arm_cmn_nid(cmn, dn->id).port / 2;
+
+		if (dn->type == CMN_TYPE_DTC) {
+			int err;
+			/* We do at least know that a DTC's XP must be in that DTC's domain */
+			if (xp->dtc == 0xf)
+				xp->dtc = 1 << dtc_idx;
+			err = arm_cmn_init_dtc(cmn, dn, dtc_idx++);
+			if (err)
+				return err;
+		}
 
 		/* To the PMU, RN-Ds don't add anything over RN-Is, so smoosh them together */
 		if (dn->type == CMN_TYPE_RND)
@@ -1336,20 +1662,26 @@
 {
 	void __iomem *cfg_region;
 	struct arm_cmn_node cfg, *dn;
+	struct arm_cmn_dtm *dtm;
 	u16 child_count, child_poff;
 	u32 xp_offset[CMN_MAX_XPS];
 	u64 reg;
 	int i, j;
-
-	cfg_region = cmn->base + rgn_offset;
-	reg = readl_relaxed(cfg_region + CMN_CFGM_PERIPH_ID_2);
-	cmn->rev = FIELD_GET(CMN_CFGM_PID2_REVISION, reg);
-	dev_dbg(cmn->dev, "periph_id_2 revision: %d\n", cmn->rev);
+	size_t sz;
 
 	arm_cmn_init_node_info(cmn, rgn_offset, &cfg);
 	if (cfg.type != CMN_TYPE_CFG)
 		return -ENODEV;
 
+	cfg_region = cmn->base + rgn_offset;
+	reg = readl_relaxed(cfg_region + CMN_CFGM_PERIPH_ID_2);
+	cmn->rev = FIELD_GET(CMN_CFGM_PID2_REVISION, reg);
+
+	reg = readq_relaxed(cfg_region + CMN_CFGM_INFO_GLOBAL);
+	cmn->multi_dtm = reg & CMN_INFO_MULTIPLE_DTM_EN;
+	cmn->rsp_vc_num = FIELD_GET(CMN_INFO_RSP_VC_NUM, reg);
+	cmn->dat_vc_num = FIELD_GET(CMN_INFO_DAT_VC_NUM, reg);
+
 	reg = readq_relaxed(cfg_region + CMN_CHILD_INFO);
 	child_count = FIELD_GET(CMN_CI_CHILD_COUNT, reg);
 	child_poff = FIELD_GET(CMN_CI_CHILD_PTR_OFFSET, reg);
@@ -1366,20 +1698,28 @@
 		cmn->num_dns += FIELD_GET(CMN_CI_CHILD_COUNT, reg);
 	}
 
-	/* Cheeky +1 to help terminate pointer-based iteration */
-	cmn->dns = devm_kcalloc(cmn->dev, cmn->num_dns + 1,
-				sizeof(*cmn->dns), GFP_KERNEL);
-	if (!cmn->dns)
+	/* Cheeky +1 to help terminate pointer-based iteration later */
+	dn = devm_kcalloc(cmn->dev, cmn->num_dns + 1, sizeof(*dn), GFP_KERNEL);
+	if (!dn)
+		return -ENOMEM;
+
+	/* Initial safe upper bound on DTMs for any possible mesh layout */
+	i = cmn->num_xps;
+	if (cmn->multi_dtm)
+		i += cmn->num_xps + 1;
+	dtm = devm_kcalloc(cmn->dev, i, sizeof(*dtm), GFP_KERNEL);
+	if (!dtm)
 		return -ENOMEM;
 
 	/* Pass 2: now we can actually populate the nodes */
-	dn = cmn->dns;
+	cmn->dns = dn;
+	cmn->dtms = dtm;
 	for (i = 0; i < cmn->num_xps; i++) {
 		void __iomem *xp_region = cmn->base + xp_offset[i];
 		struct arm_cmn_node *xp = dn++;
+		unsigned int xp_ports = 0;
 
 		arm_cmn_init_node_info(cmn, xp_offset[i], xp);
-		arm_cmn_init_dtm(xp);
 		/*
 		 * Thanks to the order in which XP logical IDs seem to be
 		 * assigned, we can handily infer the mesh X dimension by
@@ -1389,6 +1729,40 @@
 		if (xp->id == (1 << 3))
 			cmn->mesh_x = xp->logid;
 
+		if (cmn->model == CMN600)
+			xp->dtc = 0xf;
+		else
+			xp->dtc = 1 << readl_relaxed(xp_region + CMN_DTM_UNIT_INFO);
+
+		xp->dtm = dtm - cmn->dtms;
+		arm_cmn_init_dtm(dtm++, xp, 0);
+		/*
+		 * Keeping track of connected ports will let us filter out
+		 * unnecessary XP events easily. We can also reliably infer the
+		 * "extra device ports" configuration for the node ID format
+		 * from this, since in that case we will see at least one XP
+		 * with port 2 connected, for the HN-D.
+		 */
+		if (readq_relaxed(xp_region + CMN_MXP__CONNECT_INFO_P0))
+			xp_ports |= BIT(0);
+		if (readq_relaxed(xp_region + CMN_MXP__CONNECT_INFO_P1))
+			xp_ports |= BIT(1);
+		if (readq_relaxed(xp_region + CMN_MXP__CONNECT_INFO_P2))
+			xp_ports |= BIT(2);
+		if (readq_relaxed(xp_region + CMN_MXP__CONNECT_INFO_P3))
+			xp_ports |= BIT(3);
+		if (readq_relaxed(xp_region + CMN_MXP__CONNECT_INFO_P4))
+			xp_ports |= BIT(4);
+		if (readq_relaxed(xp_region + CMN_MXP__CONNECT_INFO_P5))
+			xp_ports |= BIT(5);
+
+		if (cmn->multi_dtm && (xp_ports & 0xc))
+			arm_cmn_init_dtm(dtm++, xp, 1);
+		if (cmn->multi_dtm && (xp_ports & 0x30))
+			arm_cmn_init_dtm(dtm++, xp, 2);
+
+		cmn->ports_used |= xp_ports;
+
 		reg = readq_relaxed(xp_region + CMN_CHILD_INFO);
 		child_count = FIELD_GET(CMN_CI_CHILD_COUNT, reg);
 		child_poff = FIELD_GET(CMN_CI_CHILD_PTR_OFFSET, reg);
@@ -1423,11 +1797,14 @@
 			case CMN_TYPE_SBSX:
 			case CMN_TYPE_RNI:
 			case CMN_TYPE_RND:
+			case CMN_TYPE_MTSX:
 			case CMN_TYPE_CXRA:
 			case CMN_TYPE_CXHA:
 				dn++;
 				break;
 			/* Nothing to see here */
+			case CMN_TYPE_MPAM_S:
+			case CMN_TYPE_MPAM_NS:
 			case CMN_TYPE_RNSAM:
 			case CMN_TYPE_CXLA:
 				break;
@@ -1442,6 +1819,16 @@
 	/* Correct for any nodes we skipped */
 	cmn->num_dns = dn - cmn->dns;
 
+	sz = (void *)(dn + 1) - (void *)cmn->dns;
+	dn = devm_krealloc(cmn->dev, cmn->dns, sz, GFP_KERNEL);
+	if (dn)
+		cmn->dns = dn;
+
+	sz = (void *)dtm - (void *)cmn->dtms;
+	dtm = devm_krealloc(cmn->dev, cmn->dtms, sz, GFP_KERNEL);
+	if (dtm)
+		cmn->dtms = dtm;
+
 	/*
 	 * If mesh_x wasn't set during discovery then we never saw
 	 * an XP at (0,1), thus we must have an Nx1 configuration.
@@ -1450,13 +1837,20 @@
 		cmn->mesh_x = cmn->num_xps;
 	cmn->mesh_y = cmn->num_xps / cmn->mesh_x;
 
-	dev_dbg(cmn->dev, "mesh %dx%d, ID width %d\n",
-		cmn->mesh_x, cmn->mesh_y, arm_cmn_xyidbits(cmn));
+	/* 1x1 config plays havoc with XP event encodings */
+	if (cmn->num_xps == 1)
+		dev_warn(cmn->dev, "1x1 config not fully supported, translate XP events manually\n");
+
+	dev_dbg(cmn->dev, "model %d, periph_id_2 revision %d\n", cmn->model, cmn->rev);
+	reg = cmn->ports_used;
+	dev_dbg(cmn->dev, "mesh %dx%d, ID width %d, ports %6pbl%s\n",
+		cmn->mesh_x, cmn->mesh_y, arm_cmn_xyidbits(cmn), &reg,
+		cmn->multi_dtm ? ", multi-DTM" : "");
 
 	return 0;
 }
 
-static int arm_cmn_acpi_probe(struct platform_device *pdev, struct arm_cmn *cmn)
+static int arm_cmn600_acpi_probe(struct platform_device *pdev, struct arm_cmn *cmn)
 {
 	struct resource *cfg, *root;
 
@@ -1483,21 +1877,11 @@
 	return root->start - cfg->start;
 }
 
-static int arm_cmn_of_probe(struct platform_device *pdev, struct arm_cmn *cmn)
+static int arm_cmn600_of_probe(struct device_node *np)
 {
-	struct device_node *np = pdev->dev.of_node;
 	u32 rootnode;
-	int ret;
 
-	cmn->base = devm_platform_ioremap_resource(pdev, 0);
-	if (IS_ERR(cmn->base))
-		return PTR_ERR(cmn->base);
-
-	ret = of_property_read_u32(np, "arm,root-node", &rootnode);
-	if (ret)
-		return ret;
-
-	return rootnode;
+	return of_property_read_u32(np, "arm,root-node", &rootnode) ?: rootnode;
 }
 
 static int arm_cmn_probe(struct platform_device *pdev)
@@ -1505,19 +1889,26 @@
 	struct arm_cmn *cmn;
 	const char *name;
 	static atomic_t id;
-	int err, rootnode;
+	int err, rootnode, this_id;
 
 	cmn = devm_kzalloc(&pdev->dev, sizeof(*cmn), GFP_KERNEL);
 	if (!cmn)
 		return -ENOMEM;
 
 	cmn->dev = &pdev->dev;
+	cmn->model = (unsigned long)device_get_match_data(cmn->dev);
 	platform_set_drvdata(pdev, cmn);
 
-	if (has_acpi_companion(cmn->dev))
-		rootnode = arm_cmn_acpi_probe(pdev, cmn);
-	else
-		rootnode = arm_cmn_of_probe(pdev, cmn);
+	if (cmn->model == CMN600 && has_acpi_companion(cmn->dev)) {
+		rootnode = arm_cmn600_acpi_probe(pdev, cmn);
+	} else {
+		rootnode = 0;
+		cmn->base = devm_platform_ioremap_resource(pdev, 0);
+		if (IS_ERR(cmn->base))
+			return PTR_ERR(cmn->base);
+		if (cmn->model == CMN600)
+			rootnode = arm_cmn600_of_probe(pdev->dev.of_node);
+	}
 	if (rootnode < 0)
 		return rootnode;
 
@@ -1533,7 +1924,7 @@
 	if (err)
 		return err;
 
-	cmn->cpu = raw_smp_processor_id();
+	cmn->cpu = cpumask_local_spread(0, dev_to_node(cmn->dev));
 	cmn->pmu = (struct pmu) {
 		.module = THIS_MODULE,
 		.attr_groups = arm_cmn_attr_groups,
@@ -1552,7 +1943,8 @@
 		.cancel_txn = arm_cmn_end_txn,
 	};
 
-	name = devm_kasprintf(cmn->dev, GFP_KERNEL, "arm_cmn_%d", atomic_fetch_inc(&id));
+	this_id = atomic_fetch_inc(&id);
+	name = devm_kasprintf(cmn->dev, GFP_KERNEL, "arm_cmn_%d", this_id);
 	if (!name)
 		return -ENOMEM;
 
@@ -1563,6 +1955,8 @@
 	err = perf_pmu_register(&cmn->pmu, name, -1);
 	if (err)
 		cpuhp_state_remove_instance_nocalls(arm_cmn_hp_state, &cmn->cpuhp_node);
+	else
+		arm_cmn_debugfs_init(cmn, this_id);
 
 	return err;
 }
@@ -1575,12 +1969,14 @@
 
 	perf_pmu_unregister(&cmn->pmu);
 	cpuhp_state_remove_instance_nocalls(arm_cmn_hp_state, &cmn->cpuhp_node);
+	debugfs_remove(cmn->debug);
 	return 0;
 }
 
 #ifdef CONFIG_OF
 static const struct of_device_id arm_cmn_of_match[] = {
-	{ .compatible = "arm,cmn-600", },
+	{ .compatible = "arm,cmn-600", .data = (void *)CMN600 },
+	{ .compatible = "arm,ci-700", .data = (void *)CI700 },
 	{}
 };
 MODULE_DEVICE_TABLE(of, arm_cmn_of_match);
@@ -1588,7 +1984,7 @@
 
 #ifdef CONFIG_ACPI
 static const struct acpi_device_id arm_cmn_acpi_match[] = {
-	{ "ARMHC600", },
+	{ "ARMHC600", CMN600 },
 	{}
 };
 MODULE_DEVICE_TABLE(acpi, arm_cmn_acpi_match);
@@ -1609,15 +2005,20 @@
 	int ret;
 
 	ret = cpuhp_setup_state_multi(CPUHP_AP_ONLINE_DYN,
-				      "perf/arm/cmn:online", NULL,
+				      "perf/arm/cmn:online",
+				      arm_cmn_pmu_online_cpu,
 				      arm_cmn_pmu_offline_cpu);
 	if (ret < 0)
 		return ret;
 
 	arm_cmn_hp_state = ret;
+	arm_cmn_debugfs = debugfs_create_dir("arm-cmn", NULL);
+
 	ret = platform_driver_register(&arm_cmn_driver);
-	if (ret)
+	if (ret) {
 		cpuhp_remove_multi_state(arm_cmn_hp_state);
+		debugfs_remove(arm_cmn_debugfs);
+	}
 	return ret;
 }
 
@@ -1625,6 +2026,7 @@
 {
 	platform_driver_unregister(&arm_cmn_driver);
 	cpuhp_remove_multi_state(arm_cmn_hp_state);
+	debugfs_remove(arm_cmn_debugfs);
 }
 
 module_init(arm_cmn_init);
diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
index 7904ae5..cb33929 100644
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
@@ -351,18 +351,6 @@
 	return pinctrl_gpio_direction_output(chip->base + offset);
 }
 
-static int bcm2835_of_gpio_ranges_fallback(struct gpio_chip *gc,
-					   struct device_node *np)
-{
-	struct pinctrl_dev *pctldev = of_pinctrl_get(np);
-
-	if (!pctldev)
-		return 0;
-
-	return gpiochip_add_pin_range(gc, pinctrl_dev_get_devname(pctldev), 0, 0,
-				      gc->ngpio);
-}
-
 static const struct gpio_chip bcm2835_gpio_chip = {
 	.label = MODULE_NAME,
 	.owner = THIS_MODULE,
@@ -377,7 +365,6 @@
 	.base = -1,
 	.ngpio = BCM2835_NUM_GPIOS,
 	.can_sleep = false,
-	.of_gpio_ranges_fallback = bcm2835_of_gpio_ranges_fallback,
 };
 
 static const struct gpio_chip bcm2711_gpio_chip = {
@@ -394,7 +381,6 @@
 	.base = -1,
 	.ngpio = BCM2711_NUM_GPIOS,
 	.can_sleep = false,
-	.of_gpio_ranges_fallback = bcm2835_of_gpio_ranges_fallback,
 };
 
 static void bcm2835_gpio_irq_handle_bank(struct bcm2835_pinctrl *pc,
diff --git a/drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c b/drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c
index e4a0d16..41136f6 100644
--- a/drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c
+++ b/drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c
@@ -104,12 +104,12 @@
 	unsigned long flags;
 	unsigned long val;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 
 	val = ioread32(reg) | pinmask;
 	iowrite32(val, reg);
 
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 }
 
 static void npcm_gpio_clr(struct gpio_chip *gc, void __iomem *reg,
@@ -118,12 +118,12 @@
 	unsigned long flags;
 	unsigned long val;
 
-	raw_spin_lock_irqsave(&gc->bgpio_lock, flags);
+	spin_lock_irqsave(&gc->bgpio_lock, flags);
 
 	val = ioread32(reg) & ~pinmask;
 	iowrite32(val, reg);
 
-	raw_spin_unlock_irqrestore(&gc->bgpio_lock, flags);
+	spin_unlock_irqrestore(&gc->bgpio_lock, flags);
 }
 
 static void npcmgpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
diff --git a/drivers/power/supply/power_supply_core.c b/drivers/power/supply/power_supply_core.c
index 8b2cd63..cdea1a9 100644
--- a/drivers/power/supply/power_supply_core.c
+++ b/drivers/power/supply/power_supply_core.c
@@ -32,6 +32,13 @@
 
 static struct device_type power_supply_dev_type;
 
+struct match_device_node_array_param {
+	struct device_node *parent_of_node;
+	struct power_supply **psy;
+	ssize_t psy_size;
+	ssize_t psy_count;
+};
+
 #define POWER_SUPPLY_DEFERRED_REGISTER_TIME	msecs_to_jiffies(10)
 
 static bool __power_supply_is_supplied_by(struct power_supply *supplier,
@@ -132,6 +139,8 @@
  * calling power_supply_changed() directly from power_supply_register()
  * would lead to execution of get_property() function provided by the driver
  * too early - before the probe ends.
+ * Also, registering cooling device from the probe will execute the
+ * get_property() function. So register the cooling device after the probe.
  *
  * Avoid that by waiting on parent's mutex.
  */
@@ -529,6 +538,77 @@
 }
 EXPORT_SYMBOL_GPL(power_supply_get_by_phandle);
 
+static int power_supply_match_device_node_array(struct device *dev,
+						void *data)
+{
+	struct match_device_node_array_param *param =
+		(struct match_device_node_array_param *)data;
+	struct power_supply **psy = param->psy;
+	ssize_t size = param->psy_size;
+	ssize_t *count = &param->psy_count;
+
+	if (!dev->parent || dev->parent->of_node != param->parent_of_node)
+		return 0;
+
+	if (*count >= size)
+		return -EOVERFLOW;
+
+	psy[*count] = dev_get_drvdata(dev);
+	atomic_inc(&psy[*count]->use_cnt);
+	(*count)++;
+
+	return 0;
+}
+
+/**
+ * power_supply_get_by_phandle_array() - Similar to
+ * power_supply_get_by_phandle but returns an array of power supply
+ * objects which are associated with the phandle.
+ * @np: Pointer to device node holding phandle property.
+ * @property: Name of property holding a power supply name.
+ * @psy: Array of power_supply pointers provided by the client which is
+ * filled by power_supply_get_by_phandle_array.
+ * @size: size of power_supply pointer array.
+ *
+ * If power supply was found, it increases reference count for the
+ * internal power supply's device. The user should power_supply_put()
+ * after usage.
+ *
+ * Return: On success returns the number of power supply objects filled
+ * in the @psy array.
+ * -EOVERFLOW when size of @psy array is not suffice.
+ * -EINVAL when @psy is NULL or @size is 0.
+ * -ENODEV when matching device_node is not found.
+ */
+int power_supply_get_by_phandle_array(struct device_node *np,
+				      const char *property,
+				      struct power_supply **psy,
+				      ssize_t size)
+{
+	struct device_node *power_supply_np;
+	int ret;
+	struct match_device_node_array_param param;
+
+	if (!psy || !size)
+		return -EINVAL;
+
+	power_supply_np = of_parse_phandle(np, property, 0);
+	if (!power_supply_np)
+		return -ENODEV;
+
+	param.parent_of_node = power_supply_np;
+	param.psy = psy;
+	param.psy_size = size;
+	param.psy_count = 0;
+	ret = class_for_each_device(power_supply_class, NULL, &param,
+				    power_supply_match_device_node_array);
+
+	of_node_put(power_supply_np);
+
+	return param.psy_count;
+}
+EXPORT_SYMBOL_GPL(power_supply_get_by_phandle_array);
+
 static void devm_power_supply_put(struct device *dev, void *res)
 {
 	struct power_supply **psy = res;
diff --git a/drivers/power/supply/power_supply_sysfs.c b/drivers/power/supply/power_supply_sysfs.c
index 7a0485c..201906a 100644
--- a/drivers/power/supply/power_supply_sysfs.c
+++ b/drivers/power/supply/power_supply_sysfs.c
@@ -89,6 +89,7 @@
 	[POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE]	= "Adaptive",
 	[POWER_SUPPLY_CHARGE_TYPE_CUSTOM]	= "Custom",
 	[POWER_SUPPLY_CHARGE_TYPE_LONGLIFE]	= "Long Life",
+	[POWER_SUPPLY_CHARGE_TYPE_TAPER_EXT]	= "Taper",
 };
 
 static const char * const POWER_SUPPLY_HEALTH_TEXT[] = {
diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c
index 97e59f7..0e13673 100644
--- a/drivers/remoteproc/remoteproc_core.c
+++ b/drivers/remoteproc/remoteproc_core.c
@@ -40,6 +40,7 @@
 #include <linux/virtio_ring.h>
 #include <asm/byteorder.h>
 #include <linux/platform_device.h>
+#include <trace/hooks/remoteproc.h>
 
 #include "remoteproc_internal.h"
 
@@ -59,6 +60,7 @@
 
 /* Unique indices for remoteproc devices */
 static DEFINE_IDA(rproc_dev_index);
+static struct workqueue_struct *rproc_recovery_wq;
 
 static const char * const rproc_crash_names[] = {
 	[RPROC_MMUFAULT]	= "mmufault",
@@ -461,6 +463,7 @@
 	struct rproc_vdev *rvdev = container_of(dev, struct rproc_vdev, dev);
 
 	of_reserved_mem_device_release(dev);
+	dma_release_coherent_memory(dev);
 
 	kfree(rvdev);
 }
@@ -1005,6 +1008,26 @@
 EXPORT_SYMBOL(rproc_add_carveout);
 
 /**
+ * rproc_del_carveout() - remove an allocated carveout region
+ * @rproc: rproc handle
+ * @mem: memory entry to register
+ *
+ * This function removes specified memory entry in @rproc carveouts list.
+ */
+void rproc_del_carveout(struct rproc *rproc, struct rproc_mem_entry *mem)
+{
+	struct rproc_mem_entry *entry, *tmp;
+
+	list_for_each_entry_safe(entry, tmp, &rproc->carveouts, node) {
+		if (entry == mem) {
+			list_del(&mem->node);
+			return;
+		}
+	}
+}
+EXPORT_SYMBOL(rproc_del_carveout);
+
+/**
  * rproc_mem_entry_init() - allocate and initialize rproc_mem_entry struct
  * @dev: pointer on device struct
  * @va: virtual address
@@ -1053,6 +1076,19 @@
 EXPORT_SYMBOL(rproc_mem_entry_init);
 
 /**
+ * rproc_mem_entry_free() - free a rproc_mem_entry struct
+ * @mem: rproc_mem_entry allocated by rproc_mem_entry_init()
+ *
+ * This function frees a rproc_mem_entry_struct that was allocated by
+ * rproc_mem_entry_init().
+ */
+void rproc_mem_entry_free(struct rproc_mem_entry *mem)
+{
+	kfree(mem);
+}
+EXPORT_SYMBOL(rproc_mem_entry_free);
+
+/**
  * rproc_of_resm_mem_entry_init() - allocate and initialize rproc_mem_entry struct
  * from a reserved memory phandle
  * @dev: pointer on device struct
@@ -1977,6 +2013,7 @@
 		rproc_trigger_recovery(rproc);
 
 out:
+	trace_android_vh_rproc_recovery(rproc);
 	pm_relax(rproc->dev.parent);
 }
 
@@ -2759,8 +2796,11 @@
 	dev_err(&rproc->dev, "crash detected in %s: type %s\n",
 		rproc->name, rproc_crash_to_string(type));
 
+	if (rproc_recovery_wq)
+		queue_work(rproc_recovery_wq, &rproc->crash_handler);
+	else
 	/* Have a worker handle the error; ensure system is not suspended */
-	queue_work(system_freezable_wq, &rproc->crash_handler);
+		queue_work(system_freezable_wq, &rproc->crash_handler);
 }
 EXPORT_SYMBOL(rproc_report_crash);
 
@@ -2809,6 +2849,11 @@
 
 static int __init remoteproc_init(void)
 {
+	rproc_recovery_wq = alloc_workqueue("rproc_recovery_wq",
+						WQ_UNBOUND | WQ_FREEZABLE, 0);
+	if (!rproc_recovery_wq)
+		pr_err("remoteproc: creation of rproc_recovery_wq failed\n");
+
 	rproc_init_sysfs();
 	rproc_init_debugfs();
 	rproc_init_cdev();
@@ -2825,6 +2870,8 @@
 	rproc_exit_panic();
 	rproc_exit_debugfs();
 	rproc_exit_sysfs();
+	if (rproc_recovery_wq)
+		destroy_workqueue(rproc_recovery_wq);
 }
 module_exit(remoteproc_exit);
 
diff --git a/drivers/remoteproc/remoteproc_coredump.c b/drivers/remoteproc/remoteproc_coredump.c
index c892f43..8ed597a 100644
--- a/drivers/remoteproc/remoteproc_coredump.c
+++ b/drivers/remoteproc/remoteproc_coredump.c
@@ -32,6 +32,7 @@
 		kfree(entry);
 	}
 }
+EXPORT_SYMBOL(rproc_coredump_cleanup);
 
 /**
  * rproc_coredump_add_segment() - add segment of device memory to coredump
@@ -327,6 +328,7 @@
 	 */
 	wait_for_completion(&dump_state.dump_done);
 }
+EXPORT_SYMBOL(rproc_coredump);
 
 /**
  * rproc_coredump_using_sections() - perform coredump using section headers
diff --git a/drivers/remoteproc/remoteproc_internal.h b/drivers/remoteproc/remoteproc_internal.h
index a328e63..72d4d3d 100644
--- a/drivers/remoteproc/remoteproc_internal.h
+++ b/drivers/remoteproc/remoteproc_internal.h
@@ -84,7 +84,6 @@
 void rproc_free_vring(struct rproc_vring *rvring);
 int rproc_alloc_vring(struct rproc_vdev *rvdev, int i);
 
-void *rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem);
 phys_addr_t rproc_va_to_pa(void *cpu_addr);
 int rproc_trigger_recovery(struct rproc *rproc);
 
diff --git a/drivers/remoteproc/remoteproc_sysfs.c b/drivers/remoteproc/remoteproc_sysfs.c
index ea8b89f..1c7c34e 100644
--- a/drivers/remoteproc/remoteproc_sysfs.c
+++ b/drivers/remoteproc/remoteproc_sysfs.c
@@ -5,6 +5,7 @@
 
 #include <linux/remoteproc.h>
 #include <linux/slab.h>
+#include <trace/hooks/remoteproc.h>
 
 #include "remoteproc_internal.h"
 
@@ -51,9 +52,11 @@
 	if (sysfs_streq(buf, "enabled")) {
 		/* change the flag and begin the recovery process if needed */
 		rproc->recovery_disabled = false;
+		trace_android_vh_rproc_recovery_set(rproc);
 		rproc_trigger_recovery(rproc);
 	} else if (sysfs_streq(buf, "disabled")) {
 		rproc->recovery_disabled = true;
+		trace_android_vh_rproc_recovery_set(rproc);
 	} else if (sysfs_streq(buf, "recover")) {
 		/* begin the recovery process without changing the flag */
 		rproc_trigger_recovery(rproc);
diff --git a/drivers/rpmsg/Kconfig b/drivers/rpmsg/Kconfig
index 0b4407a..d379586 100644
--- a/drivers/rpmsg/Kconfig
+++ b/drivers/rpmsg/Kconfig
@@ -15,6 +15,14 @@
 	  in /dev. They make it possible for user-space programs to send and
 	  receive rpmsg packets.
 
+config RPMSG_CTRL
+	tristate "RPMSG control interface"
+	depends on RPMSG && ( RPMSG_CHAR || RPMSG_CHAR=n )
+	help
+	  Say Y here to enable the support of the /dev/rpmsg_ctrlX API. This API
+	  allows user-space programs to create endpoints with specific service name,
+	  source and destination addresses.
+
 config RPMSG_NS
 	tristate "RPMSG name service announcement"
 	depends on RPMSG
diff --git a/drivers/rpmsg/Makefile b/drivers/rpmsg/Makefile
index 8d45265..58e3b38 100644
--- a/drivers/rpmsg/Makefile
+++ b/drivers/rpmsg/Makefile
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 obj-$(CONFIG_RPMSG)		+= rpmsg_core.o
 obj-$(CONFIG_RPMSG_CHAR)	+= rpmsg_char.o
+obj-$(CONFIG_RPMSG_CTRL)	+= rpmsg_ctrl.o
 obj-$(CONFIG_RPMSG_NS)		+= rpmsg_ns.o
 obj-$(CONFIG_RPMSG_MTK_SCP)	+= mtk_rpmsg.o
 qcom_glink-objs			:= qcom_glink_native.o qcom_glink_ssr.o
diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c
index fd4c2f0..0a7dabf 100644
--- a/drivers/rpmsg/qcom_glink_native.c
+++ b/drivers/rpmsg/qcom_glink_native.c
@@ -1643,7 +1643,7 @@
 	rpdev->dev.parent = glink->dev;
 	rpdev->dev.release = qcom_glink_device_release;
 
-	return rpmsg_chrdev_register_device(rpdev);
+	return rpmsg_ctrldev_register_device(rpdev);
 }
 
 struct qcom_glink *qcom_glink_native_probe(struct device *dev,
diff --git a/drivers/rpmsg/qcom_smd.c b/drivers/rpmsg/qcom_smd.c
index 56bc622..754161b 100644
--- a/drivers/rpmsg/qcom_smd.c
+++ b/drivers/rpmsg/qcom_smd.c
@@ -1113,7 +1113,7 @@
 	qsdev->rpdev.dev.parent = &edge->dev;
 	qsdev->rpdev.dev.release = qcom_smd_release_device;
 
-	return rpmsg_chrdev_register_device(&qsdev->rpdev);
+	return rpmsg_ctrldev_register_device(&qsdev->rpdev);
 }
 
 /*
diff --git a/drivers/rpmsg/rpmsg_char.c b/drivers/rpmsg/rpmsg_char.c
index 88c985f..aff402b 100644
--- a/drivers/rpmsg/rpmsg_char.c
+++ b/drivers/rpmsg/rpmsg_char.c
@@ -1,5 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
+ * Copyright (C) 2022, STMicroelectronics
  * Copyright (c) 2016, Linaro Ltd.
  * Copyright (c) 2012, Michal Simek <monstr@monstr.eu>
  * Copyright (c) 2012, PetaLogix
@@ -9,6 +10,9 @@
  * Based on rpmsg performance statistics driver by Michal Simek, which in turn
  * was based on TI & Google OMX rpmsg driver.
  */
+
+#define pr_fmt(fmt)	KBUILD_MODNAME ": " fmt
+
 #include <linux/cdev.h>
 #include <linux/device.h>
 #include <linux/fs.h>
@@ -22,35 +26,19 @@
 #include <linux/uaccess.h>
 #include <uapi/linux/rpmsg.h>
 
+#include "rpmsg_char.h"
 #include "rpmsg_internal.h"
 
 #define RPMSG_DEV_MAX	(MINORMASK + 1)
 
 static dev_t rpmsg_major;
-static struct class *rpmsg_class;
 
-static DEFINE_IDA(rpmsg_ctrl_ida);
 static DEFINE_IDA(rpmsg_ept_ida);
 static DEFINE_IDA(rpmsg_minor_ida);
 
 #define dev_to_eptdev(dev) container_of(dev, struct rpmsg_eptdev, dev)
 #define cdev_to_eptdev(i_cdev) container_of(i_cdev, struct rpmsg_eptdev, cdev)
 
-#define dev_to_ctrldev(dev) container_of(dev, struct rpmsg_ctrldev, dev)
-#define cdev_to_ctrldev(i_cdev) container_of(i_cdev, struct rpmsg_ctrldev, cdev)
-
-/**
- * struct rpmsg_ctrldev - control device for instantiating endpoint devices
- * @rpdev:	underlaying rpmsg device
- * @cdev:	cdev for the ctrl device
- * @dev:	device for the ctrl device
- */
-struct rpmsg_ctrldev {
-	struct rpmsg_device *rpdev;
-	struct cdev cdev;
-	struct device dev;
-};
-
 /**
  * struct rpmsg_eptdev - endpoint device context
  * @dev:	endpoint device
@@ -62,6 +50,8 @@
  * @queue_lock:	synchronization of @queue operations
  * @queue:	incoming message queue
  * @readq:	wait object for incoming queue
+ * @default_ept: set to channel default endpoint if the default endpoint should be re-used
+ *              on device open to prevent endpoint address update.
  */
 struct rpmsg_eptdev {
 	struct device dev;
@@ -72,19 +62,23 @@
 
 	struct mutex ept_lock;
 	struct rpmsg_endpoint *ept;
+	struct rpmsg_endpoint *default_ept;
 
 	spinlock_t queue_lock;
 	struct sk_buff_head queue;
 	wait_queue_head_t readq;
+
 };
 
-static int rpmsg_eptdev_destroy(struct device *dev, void *data)
+int rpmsg_chrdev_eptdev_destroy(struct device *dev, void *data)
 {
 	struct rpmsg_eptdev *eptdev = dev_to_eptdev(dev);
 
 	mutex_lock(&eptdev->ept_lock);
 	if (eptdev->ept) {
-		rpmsg_destroy_ept(eptdev->ept);
+		/* The default endpoint is released by the rpmsg core */
+		if (!eptdev->default_ept)
+			rpmsg_destroy_ept(eptdev->ept);
 		eptdev->ept = NULL;
 	}
 	mutex_unlock(&eptdev->ept_lock);
@@ -97,9 +91,10 @@
 
 	return 0;
 }
+EXPORT_SYMBOL(rpmsg_chrdev_eptdev_destroy);
 
-static int rpmsg_ept_cb(struct rpmsg_device *rpdev, void *buf, int len,
-			void *priv, u32 addr)
+static int rpmsg_ept_copy_cb(struct rpmsg_device *rpdev, void *buf, int len,
+			     void *priv, u32 addr)
 {
 	struct rpmsg_eptdev *eptdev = priv;
 	struct sk_buff *skb;
@@ -120,6 +115,43 @@
 	return 0;
 }
 
+static int rpmsg_ept_no_copy_cb(struct rpmsg_device *rpdev, void *buf, int len,
+				void *priv, u32 addr)
+{
+	struct rpmsg_eptdev *eptdev = priv;
+	struct sk_buff *skb;
+
+	skb = alloc_skb(0, GFP_ATOMIC);
+	if (!skb)
+		return -ENOMEM;
+
+	skb->head = buf;
+	skb->data = buf;
+	skb_reset_tail_pointer(skb);
+	skb_set_end_offset(skb, len);
+	skb_put(skb, len);
+
+	spin_lock(&eptdev->queue_lock);
+	skb_queue_tail(&eptdev->queue, skb);
+	spin_unlock(&eptdev->queue_lock);
+
+	/* wake up any blocking processes, waiting for new data */
+	wake_up_interruptible(&eptdev->readq);
+
+	return RPMSG_DEFER;
+}
+
+static int rpmsg_ept_cb(struct rpmsg_device *rpdev, void *buf, int len,
+			void *priv, u32 addr)
+{
+	struct rpmsg_eptdev *eptdev = priv;
+	rpmsg_rx_cb_t cb;
+
+	cb = (eptdev->ept->rx_done) ? rpmsg_ept_no_copy_cb : rpmsg_ept_copy_cb;
+
+	return cb(rpdev, buf, len, priv, addr);
+}
+
 static int rpmsg_eptdev_open(struct inode *inode, struct file *filp)
 {
 	struct rpmsg_eptdev *eptdev = cdev_to_eptdev(inode->i_cdev);
@@ -135,7 +167,15 @@
 
 	get_device(dev);
 
-	ept = rpmsg_create_ept(rpdev, rpmsg_ept_cb, eptdev, eptdev->chinfo);
+	/*
+	 * If the default_ept is set, the rpmsg device default endpoint is used.
+	 * Else a new endpoint is created on open that will be destroyed on release.
+	 */
+	if (eptdev->default_ept)
+		ept = eptdev->default_ept;
+	else
+		ept = rpmsg_create_ept(rpdev, rpmsg_ept_cb, eptdev, eptdev->chinfo);
+
 	if (!ept) {
 		dev_err(dev, "failed to open %s\n", eptdev->chinfo.name);
 		put_device(dev);
@@ -158,7 +198,8 @@
 	/* Close the endpoint, if it's not already destroyed by the parent */
 	mutex_lock(&eptdev->ept_lock);
 	if (eptdev->ept) {
-		rpmsg_destroy_ept(eptdev->ept);
+		if (!eptdev->default_ept)
+			rpmsg_destroy_ept(eptdev->ept);
 		eptdev->ept = NULL;
 	}
 	mutex_unlock(&eptdev->ept_lock);
@@ -213,6 +254,15 @@
 	if (copy_to_iter(skb->data, use, to) != use)
 		use = -EFAULT;
 
+	if (eptdev->ept->rx_done) {
+		rpmsg_rx_done(eptdev->ept, skb->data);
+		/*
+		 * Data memory is freed by rpmsg_rx_done(), reset the skb data
+		 * pointers so kfree_skb() does not try to free a second time.
+		 */
+		skb->head = NULL;
+		skb->data = NULL;
+	}
 	kfree_skb(skb);
 
 	return use;
@@ -285,7 +335,11 @@
 	if (cmd != RPMSG_DESTROY_EPT_IOCTL)
 		return -EINVAL;
 
-	return rpmsg_eptdev_destroy(&eptdev->dev, NULL);
+	/* Don't allow to destroy a default endpoint. */
+	if (eptdev->default_ept)
+		return -EINVAL;
+
+	return rpmsg_chrdev_eptdev_destroy(&eptdev->dev, NULL);
 }
 
 static const struct file_operations rpmsg_eptdev_fops = {
@@ -343,21 +397,18 @@
 	kfree(eptdev);
 }
 
-static int rpmsg_eptdev_create(struct rpmsg_ctrldev *ctrldev,
-			       struct rpmsg_channel_info chinfo)
+static struct rpmsg_eptdev *rpmsg_chrdev_eptdev_alloc(struct rpmsg_device *rpdev,
+						      struct device *parent)
 {
-	struct rpmsg_device *rpdev = ctrldev->rpdev;
 	struct rpmsg_eptdev *eptdev;
 	struct device *dev;
-	int ret;
 
 	eptdev = kzalloc(sizeof(*eptdev), GFP_KERNEL);
 	if (!eptdev)
-		return -ENOMEM;
+		return ERR_PTR(-ENOMEM);
 
 	dev = &eptdev->dev;
 	eptdev->rpdev = rpdev;
-	eptdev->chinfo = chinfo;
 
 	mutex_init(&eptdev->ept_lock);
 	spin_lock_init(&eptdev->queue_lock);
@@ -366,13 +417,23 @@
 
 	device_initialize(dev);
 	dev->class = rpmsg_class;
-	dev->parent = &ctrldev->dev;
+	dev->parent = parent;
 	dev->groups = rpmsg_eptdev_groups;
 	dev_set_drvdata(dev, eptdev);
 
 	cdev_init(&eptdev->cdev, &rpmsg_eptdev_fops);
 	eptdev->cdev.owner = THIS_MODULE;
 
+	return eptdev;
+}
+
+static int rpmsg_chrdev_eptdev_add(struct rpmsg_eptdev *eptdev, struct rpmsg_channel_info chinfo)
+{
+	struct device *dev = &eptdev->dev;
+	int ret;
+
+	eptdev->chinfo = chinfo;
+
 	ret = ida_simple_get(&rpmsg_minor_ida, 0, RPMSG_DEV_MAX, GFP_KERNEL);
 	if (ret < 0)
 		goto free_eptdev;
@@ -404,163 +465,91 @@
 	return ret;
 }
 
-static int rpmsg_ctrldev_open(struct inode *inode, struct file *filp)
+int rpmsg_chrdev_eptdev_create(struct rpmsg_device *rpdev, struct device *parent,
+			       struct rpmsg_channel_info chinfo)
 {
-	struct rpmsg_ctrldev *ctrldev = cdev_to_ctrldev(inode->i_cdev);
+	struct rpmsg_eptdev *eptdev;
+	int ret;
 
-	get_device(&ctrldev->dev);
-	filp->private_data = ctrldev;
+	eptdev = rpmsg_chrdev_eptdev_alloc(rpdev, parent);
+	if (IS_ERR(eptdev))
+		return PTR_ERR(eptdev);
 
-	return 0;
+	ret = rpmsg_chrdev_eptdev_add(eptdev, chinfo);
+
+	return ret;
 }
-
-static int rpmsg_ctrldev_release(struct inode *inode, struct file *filp)
-{
-	struct rpmsg_ctrldev *ctrldev = cdev_to_ctrldev(inode->i_cdev);
-
-	put_device(&ctrldev->dev);
-
-	return 0;
-}
-
-static long rpmsg_ctrldev_ioctl(struct file *fp, unsigned int cmd,
-				unsigned long arg)
-{
-	struct rpmsg_ctrldev *ctrldev = fp->private_data;
-	void __user *argp = (void __user *)arg;
-	struct rpmsg_endpoint_info eptinfo;
-	struct rpmsg_channel_info chinfo;
-
-	if (cmd != RPMSG_CREATE_EPT_IOCTL)
-		return -EINVAL;
-
-	if (copy_from_user(&eptinfo, argp, sizeof(eptinfo)))
-		return -EFAULT;
-
-	memcpy(chinfo.name, eptinfo.name, RPMSG_NAME_SIZE);
-	chinfo.name[RPMSG_NAME_SIZE-1] = '\0';
-	chinfo.src = eptinfo.src;
-	chinfo.dst = eptinfo.dst;
-
-	return rpmsg_eptdev_create(ctrldev, chinfo);
-};
-
-static const struct file_operations rpmsg_ctrldev_fops = {
-	.owner = THIS_MODULE,
-	.open = rpmsg_ctrldev_open,
-	.release = rpmsg_ctrldev_release,
-	.unlocked_ioctl = rpmsg_ctrldev_ioctl,
-	.compat_ioctl = compat_ptr_ioctl,
-};
-
-static void rpmsg_ctrldev_release_device(struct device *dev)
-{
-	struct rpmsg_ctrldev *ctrldev = dev_to_ctrldev(dev);
-
-	ida_simple_remove(&rpmsg_ctrl_ida, dev->id);
-	ida_simple_remove(&rpmsg_minor_ida, MINOR(dev->devt));
-	kfree(ctrldev);
-}
+EXPORT_SYMBOL(rpmsg_chrdev_eptdev_create);
 
 static int rpmsg_chrdev_probe(struct rpmsg_device *rpdev)
 {
-	struct rpmsg_ctrldev *ctrldev;
-	struct device *dev;
-	int ret;
+	struct rpmsg_channel_info chinfo;
+	struct rpmsg_eptdev *eptdev;
+	struct device *dev = &rpdev->dev;
 
-	ctrldev = kzalloc(sizeof(*ctrldev), GFP_KERNEL);
-	if (!ctrldev)
-		return -ENOMEM;
+	memcpy(chinfo.name, rpdev->id.name, RPMSG_NAME_SIZE);
+	chinfo.src = rpdev->src;
+	chinfo.dst = rpdev->dst;
 
-	ctrldev->rpdev = rpdev;
+	eptdev = rpmsg_chrdev_eptdev_alloc(rpdev, dev);
+	if (IS_ERR(eptdev))
+		return PTR_ERR(eptdev);
 
-	dev = &ctrldev->dev;
-	device_initialize(dev);
-	dev->parent = &rpdev->dev;
-	dev->class = rpmsg_class;
+	/* Set the default_ept to the rpmsg device endpoint */
+	eptdev->default_ept = rpdev->ept;
 
-	cdev_init(&ctrldev->cdev, &rpmsg_ctrldev_fops);
-	ctrldev->cdev.owner = THIS_MODULE;
+	/*
+	 * The rpmsg_ept_cb uses *priv parameter to get its rpmsg_eptdev context.
+	 * Storedit in default_ept *priv field.
+	 */
+	eptdev->default_ept->priv = eptdev;
 
-	ret = ida_simple_get(&rpmsg_minor_ida, 0, RPMSG_DEV_MAX, GFP_KERNEL);
-	if (ret < 0)
-		goto free_ctrldev;
-	dev->devt = MKDEV(MAJOR(rpmsg_major), ret);
-
-	ret = ida_simple_get(&rpmsg_ctrl_ida, 0, 0, GFP_KERNEL);
-	if (ret < 0)
-		goto free_minor_ida;
-	dev->id = ret;
-	dev_set_name(&ctrldev->dev, "rpmsg_ctrl%d", ret);
-
-	ret = cdev_device_add(&ctrldev->cdev, &ctrldev->dev);
-	if (ret)
-		goto free_ctrl_ida;
-
-	/* We can now rely on the release function for cleanup */
-	dev->release = rpmsg_ctrldev_release_device;
-
-	dev_set_drvdata(&rpdev->dev, ctrldev);
-
-	return ret;
-
-free_ctrl_ida:
-	ida_simple_remove(&rpmsg_ctrl_ida, dev->id);
-free_minor_ida:
-	ida_simple_remove(&rpmsg_minor_ida, MINOR(dev->devt));
-free_ctrldev:
-	put_device(dev);
-	kfree(ctrldev);
-
-	return ret;
+	return rpmsg_chrdev_eptdev_add(eptdev, chinfo);
 }
 
 static void rpmsg_chrdev_remove(struct rpmsg_device *rpdev)
 {
-	struct rpmsg_ctrldev *ctrldev = dev_get_drvdata(&rpdev->dev);
 	int ret;
 
-	/* Destroy all endpoints */
-	ret = device_for_each_child(&ctrldev->dev, NULL, rpmsg_eptdev_destroy);
+	ret = device_for_each_child(&rpdev->dev, NULL, rpmsg_chrdev_eptdev_destroy);
 	if (ret)
-		dev_warn(&rpdev->dev, "failed to nuke endpoints: %d\n", ret);
-
-	cdev_device_del(&ctrldev->cdev, &ctrldev->dev);
-	put_device(&ctrldev->dev);
+		dev_warn(&rpdev->dev, "failed to destroy endpoints: %d\n", ret);
 }
 
+static struct rpmsg_device_id rpmsg_chrdev_id_table[] = {
+	{ .name	= "rpmsg-raw" },
+	{ },
+};
+
 static struct rpmsg_driver rpmsg_chrdev_driver = {
 	.probe = rpmsg_chrdev_probe,
 	.remove = rpmsg_chrdev_remove,
-	.drv = {
-		.name = "rpmsg_chrdev",
-	},
+	.callback = rpmsg_ept_cb,
+	.id_table = rpmsg_chrdev_id_table,
+	.drv.name = "rpmsg_chrdev",
 };
 
 static int rpmsg_chrdev_init(void)
 {
 	int ret;
 
-	ret = alloc_chrdev_region(&rpmsg_major, 0, RPMSG_DEV_MAX, "rpmsg");
+	ret = alloc_chrdev_region(&rpmsg_major, 0, RPMSG_DEV_MAX, "rpmsg_char");
 	if (ret < 0) {
-		pr_err("rpmsg: failed to allocate char dev region\n");
+		pr_err("failed to allocate char dev region\n");
 		return ret;
 	}
 
-	rpmsg_class = class_create(THIS_MODULE, "rpmsg");
-	if (IS_ERR(rpmsg_class)) {
-		pr_err("failed to create rpmsg class\n");
-		unregister_chrdev_region(rpmsg_major, RPMSG_DEV_MAX);
-		return PTR_ERR(rpmsg_class);
-	}
-
 	ret = register_rpmsg_driver(&rpmsg_chrdev_driver);
 	if (ret < 0) {
-		pr_err("rpmsgchr: failed to register rpmsg driver\n");
-		class_destroy(rpmsg_class);
-		unregister_chrdev_region(rpmsg_major, RPMSG_DEV_MAX);
+		pr_err("rpmsg: failed to register rpmsg raw driver\n");
+		goto free_region;
 	}
 
+	return 0;
+
+free_region:
+	unregister_chrdev_region(rpmsg_major, RPMSG_DEV_MAX);
+
 	return ret;
 }
 postcore_initcall(rpmsg_chrdev_init);
@@ -568,7 +557,6 @@
 static void rpmsg_chrdev_exit(void)
 {
 	unregister_rpmsg_driver(&rpmsg_chrdev_driver);
-	class_destroy(rpmsg_class);
 	unregister_chrdev_region(rpmsg_major, RPMSG_DEV_MAX);
 }
 module_exit(rpmsg_chrdev_exit);
diff --git a/drivers/rpmsg/rpmsg_char.h b/drivers/rpmsg/rpmsg_char.h
new file mode 100644
index 0000000..117d9cb
--- /dev/null
+++ b/drivers/rpmsg/rpmsg_char.h
@@ -0,0 +1,46 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2022, STMicroelectronics
+ */
+
+#ifndef __RPMSG_CHRDEV_H__
+#define __RPMSG_CHRDEV_H__
+
+#if IS_ENABLED(CONFIG_RPMSG_CHAR)
+/**
+ * rpmsg_chrdev_eptdev_create() - register char device based on an endpoint
+ * @rpdev:  prepared rpdev to be used for creating endpoints
+ * @parent: parent device
+ * @chinfo: associated endpoint channel information.
+ *
+ * This function create a new rpmsg char endpoint device to instantiate a new
+ * endpoint based on chinfo information.
+ */
+int rpmsg_chrdev_eptdev_create(struct rpmsg_device *rpdev, struct device *parent,
+			       struct rpmsg_channel_info chinfo);
+
+/**
+ * rpmsg_chrdev_eptdev_destroy() - destroy created char device endpoint.
+ * @data: private data associated to the endpoint device
+ *
+ * This function destroys a rpmsg char endpoint device created by the RPMSG_DESTROY_EPT_IOCTL
+ * control.
+ */
+int rpmsg_chrdev_eptdev_destroy(struct device *dev, void *data);
+
+#else  /*IS_ENABLED(CONFIG_RPMSG_CHAR) */
+
+static inline int rpmsg_chrdev_eptdev_create(struct rpmsg_device *rpdev, struct device *parent,
+					     struct rpmsg_channel_info chinfo)
+{
+	return -ENXIO;
+}
+
+static inline int rpmsg_chrdev_eptdev_destroy(struct device *dev, void *data)
+{
+	return -ENXIO;
+}
+
+#endif /*IS_ENABLED(CONFIG_RPMSG_CHAR) */
+
+#endif /*__RPMSG_CHRDEV_H__ */
diff --git a/drivers/rpmsg/rpmsg_core.c b/drivers/rpmsg/rpmsg_core.c
index a71de08..79d6961 100644
--- a/drivers/rpmsg/rpmsg_core.c
+++ b/drivers/rpmsg/rpmsg_core.c
@@ -20,6 +20,9 @@
 
 #include "rpmsg_internal.h"
 
+struct class *rpmsg_class;
+EXPORT_SYMBOL(rpmsg_class);
+
 /**
  * rpmsg_create_channel() - create a new rpmsg channel
  * using its name and address info.
@@ -327,6 +330,62 @@
 }
 EXPORT_SYMBOL(rpmsg_trysend_offchannel);
 
+/**
+ * rpmsg_get_signals() - get the signals for this endpoint
+ * @ept:	the rpmsg endpoint
+ *
+ * Returns signal bits on success and an appropriate error value on failure.
+ */
+int rpmsg_get_signals(struct rpmsg_endpoint *ept)
+{
+	if (WARN_ON(!ept))
+		return -EINVAL;
+	if (!ept->ops->get_signals)
+		return -ENXIO;
+
+	return ept->ops->get_signals(ept);
+}
+EXPORT_SYMBOL(rpmsg_get_signals);
+
+/**
+ * rpmsg_set_signals() - set the remote signals for this endpoint
+ * @ept:	the rpmsg endpoint
+ * @set:	set mask for signals
+ * @clear:	clear mask for signals
+ *
+ * Returns 0 on success and an appropriate error value on failure.
+ */
+int rpmsg_set_signals(struct rpmsg_endpoint *ept, u32 set, u32 clear)
+{
+	if (WARN_ON(!ept))
+		return -EINVAL;
+	if (!ept->ops->set_signals)
+		return -ENXIO;
+
+	return ept->ops->set_signals(ept, set, clear);
+}
+EXPORT_SYMBOL(rpmsg_set_signals);
+
+/**
+ * rpmsg_rx_done() - release resources related to @data from a @rx_cb
+ * @ept:	the rpmsg endpoint
+ * @data:	payload from a message
+ *
+ * Returns 0 on success and an appropriate error value on failure.
+ */
+int rpmsg_rx_done(struct rpmsg_endpoint *ept, void *data)
+{
+	if (WARN_ON(!ept))
+		return -EINVAL;
+	if (!ept->ops->rx_done)
+		return -ENXIO;
+	if (!ept->rx_done)
+		return -EINVAL;
+
+	return ept->ops->rx_done(ept, data);
+}
+EXPORT_SYMBOL(rpmsg_rx_done);
+
 /*
  * match a rpmsg channel with a channel info struct.
  * this is used to make sure we're not creating rpmsg devices for channels
@@ -514,6 +573,10 @@
 
 		rpdev->ept = ept;
 		rpdev->src = ept->addr;
+
+		if (rpdrv->signals)
+			ept->sig_cb = rpdrv->signals;
+
 	}
 
 	err = rpdrv->probe(rpdev);
@@ -641,10 +704,17 @@
 {
 	int ret;
 
-	ret = bus_register(&rpmsg_bus);
-	if (ret)
-		pr_err("failed to register rpmsg bus: %d\n", ret);
+	rpmsg_class = class_create(THIS_MODULE, "rpmsg");
+	if (IS_ERR(rpmsg_class)) {
+		pr_err("failed to create rpmsg class\n");
+		return PTR_ERR(rpmsg_class);
+	}
 
+	ret = bus_register(&rpmsg_bus);
+	if (ret) {
+		pr_err("failed to register rpmsg bus: %d\n", ret);
+		class_destroy(rpmsg_class);
+	}
 	return ret;
 }
 postcore_initcall(rpmsg_init);
@@ -652,6 +722,7 @@
 static void __exit rpmsg_fini(void)
 {
 	bus_unregister(&rpmsg_bus);
+	class_destroy(rpmsg_class);
 }
 module_exit(rpmsg_fini);
 
diff --git a/drivers/rpmsg/rpmsg_ctrl.c b/drivers/rpmsg/rpmsg_ctrl.c
new file mode 100644
index 0000000..107da70
--- /dev/null
+++ b/drivers/rpmsg/rpmsg_ctrl.c
@@ -0,0 +1,243 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2022, STMicroelectronics
+ * Copyright (c) 2016, Linaro Ltd.
+ * Copyright (c) 2012, Michal Simek <monstr@monstr.eu>
+ * Copyright (c) 2012, PetaLogix
+ * Copyright (c) 2011, Texas Instruments, Inc.
+ * Copyright (c) 2011, Google, Inc.
+ *
+ * Based on rpmsg performance statistics driver by Michal Simek, which in turn
+ * was based on TI & Google OMX rpmsg driver.
+ */
+
+#define pr_fmt(fmt)		KBUILD_MODNAME ": " fmt
+
+#include <linux/cdev.h>
+#include <linux/device.h>
+#include <linux/fs.h>
+#include <linux/idr.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/rpmsg.h>
+#include <linux/skbuff.h>
+#include <linux/slab.h>
+#include <linux/uaccess.h>
+#include <uapi/linux/rpmsg.h>
+
+#include "rpmsg_char.h"
+#include "rpmsg_internal.h"
+
+#define RPMSG_DEV_MAX	(MINORMASK + 1)
+
+static dev_t rpmsg_major;
+
+static DEFINE_IDA(rpmsg_ctrl_ida);
+static DEFINE_IDA(rpmsg_minor_ida);
+
+#define dev_to_ctrldev(dev) container_of(dev, struct rpmsg_ctrldev, dev)
+#define cdev_to_ctrldev(i_cdev) container_of(i_cdev, struct rpmsg_ctrldev, cdev)
+
+/**
+ * struct rpmsg_ctrldev - control device for instantiating endpoint devices
+ * @rpdev:	underlaying rpmsg device
+ * @cdev:	cdev for the ctrl device
+ * @dev:	device for the ctrl device
+ * @ctrl_lock:	serialize the ioctrls.
+ */
+struct rpmsg_ctrldev {
+	struct rpmsg_device *rpdev;
+	struct cdev cdev;
+	struct device dev;
+	struct mutex ctrl_lock;
+};
+
+static int rpmsg_ctrldev_open(struct inode *inode, struct file *filp)
+{
+	struct rpmsg_ctrldev *ctrldev = cdev_to_ctrldev(inode->i_cdev);
+
+	get_device(&ctrldev->dev);
+	filp->private_data = ctrldev;
+
+	return 0;
+}
+
+static int rpmsg_ctrldev_release(struct inode *inode, struct file *filp)
+{
+	struct rpmsg_ctrldev *ctrldev = cdev_to_ctrldev(inode->i_cdev);
+
+	put_device(&ctrldev->dev);
+
+	return 0;
+}
+
+static long rpmsg_ctrldev_ioctl(struct file *fp, unsigned int cmd,
+				unsigned long arg)
+{
+	struct rpmsg_ctrldev *ctrldev = fp->private_data;
+	void __user *argp = (void __user *)arg;
+	struct rpmsg_endpoint_info eptinfo;
+	struct rpmsg_channel_info chinfo;
+	struct rpmsg_device *rpdev;
+	int ret = 0;
+
+	if (copy_from_user(&eptinfo, argp, sizeof(eptinfo)))
+		return -EFAULT;
+
+	memcpy(chinfo.name, eptinfo.name, RPMSG_NAME_SIZE);
+	chinfo.name[RPMSG_NAME_SIZE - 1] = '\0';
+	chinfo.src = eptinfo.src;
+	chinfo.dst = eptinfo.dst;
+
+	mutex_lock(&ctrldev->ctrl_lock);
+	switch (cmd) {
+	case RPMSG_CREATE_EPT_IOCTL:
+		ret = rpmsg_chrdev_eptdev_create(ctrldev->rpdev, &ctrldev->dev, chinfo);
+		break;
+
+	case RPMSG_CREATE_DEV_IOCTL:
+		rpdev = rpmsg_create_channel(ctrldev->rpdev, &chinfo);
+		if (!rpdev) {
+			dev_err(&ctrldev->dev, "failed to create %s channel\n", chinfo.name);
+			ret = -ENXIO;
+		}
+		break;
+
+	case RPMSG_RELEASE_DEV_IOCTL:
+		ret = rpmsg_release_channel(ctrldev->rpdev, &chinfo);
+		if (ret)
+			dev_err(&ctrldev->dev, "failed to release %s channel (%d)\n",
+				chinfo.name, ret);
+		break;
+
+	default:
+		ret = -EINVAL;
+	}
+	mutex_unlock(&ctrldev->ctrl_lock);
+
+	return ret;
+};
+
+static const struct file_operations rpmsg_ctrldev_fops = {
+	.owner = THIS_MODULE,
+	.open = rpmsg_ctrldev_open,
+	.release = rpmsg_ctrldev_release,
+	.unlocked_ioctl = rpmsg_ctrldev_ioctl,
+	.compat_ioctl = compat_ptr_ioctl,
+};
+
+static void rpmsg_ctrldev_release_device(struct device *dev)
+{
+	struct rpmsg_ctrldev *ctrldev = dev_to_ctrldev(dev);
+
+	ida_simple_remove(&rpmsg_ctrl_ida, dev->id);
+	ida_simple_remove(&rpmsg_minor_ida, MINOR(dev->devt));
+	kfree(ctrldev);
+}
+
+static int rpmsg_ctrldev_probe(struct rpmsg_device *rpdev)
+{
+	struct rpmsg_ctrldev *ctrldev;
+	struct device *dev;
+	int ret;
+
+	ctrldev = kzalloc(sizeof(*ctrldev), GFP_KERNEL);
+	if (!ctrldev)
+		return -ENOMEM;
+
+	ctrldev->rpdev = rpdev;
+
+	dev = &ctrldev->dev;
+	device_initialize(dev);
+	dev->parent = &rpdev->dev;
+	dev->class = rpmsg_class;
+
+	mutex_init(&ctrldev->ctrl_lock);
+	cdev_init(&ctrldev->cdev, &rpmsg_ctrldev_fops);
+	ctrldev->cdev.owner = THIS_MODULE;
+
+	ret = ida_simple_get(&rpmsg_minor_ida, 0, RPMSG_DEV_MAX, GFP_KERNEL);
+	if (ret < 0)
+		goto free_ctrldev;
+	dev->devt = MKDEV(MAJOR(rpmsg_major), ret);
+
+	ret = ida_simple_get(&rpmsg_ctrl_ida, 0, 0, GFP_KERNEL);
+	if (ret < 0)
+		goto free_minor_ida;
+	dev->id = ret;
+	dev_set_name(&ctrldev->dev, "rpmsg_ctrl%d", ret);
+
+	ret = cdev_device_add(&ctrldev->cdev, &ctrldev->dev);
+	if (ret)
+		goto free_ctrl_ida;
+
+	/* We can now rely on the release function for cleanup */
+	dev->release = rpmsg_ctrldev_release_device;
+
+	dev_set_drvdata(&rpdev->dev, ctrldev);
+
+	return ret;
+
+free_ctrl_ida:
+	ida_simple_remove(&rpmsg_ctrl_ida, dev->id);
+free_minor_ida:
+	ida_simple_remove(&rpmsg_minor_ida, MINOR(dev->devt));
+free_ctrldev:
+	put_device(dev);
+	kfree(ctrldev);
+
+	return ret;
+}
+
+static void rpmsg_ctrldev_remove(struct rpmsg_device *rpdev)
+{
+	struct rpmsg_ctrldev *ctrldev = dev_get_drvdata(&rpdev->dev);
+	int ret;
+
+	/* Destroy all endpoints */
+	ret = device_for_each_child(&ctrldev->dev, NULL, rpmsg_chrdev_eptdev_destroy);
+	if (ret)
+		dev_warn(&rpdev->dev, "failed to nuke endpoints: %d\n", ret);
+
+	cdev_device_del(&ctrldev->cdev, &ctrldev->dev);
+	put_device(&ctrldev->dev);
+}
+
+static struct rpmsg_driver rpmsg_ctrldev_driver = {
+	.probe = rpmsg_ctrldev_probe,
+	.remove = rpmsg_ctrldev_remove,
+	.drv = {
+		.name = "rpmsg_ctrl",
+	},
+};
+
+static int rpmsg_ctrldev_init(void)
+{
+	int ret;
+
+	ret = alloc_chrdev_region(&rpmsg_major, 0, RPMSG_DEV_MAX, "rpmsg_ctrl");
+	if (ret < 0) {
+		pr_err("failed to allocate char dev region\n");
+		return ret;
+	}
+
+	ret = register_rpmsg_driver(&rpmsg_ctrldev_driver);
+	if (ret < 0) {
+		pr_err("failed to register rpmsg driver\n");
+		unregister_chrdev_region(rpmsg_major, RPMSG_DEV_MAX);
+	}
+
+	return ret;
+}
+postcore_initcall(rpmsg_ctrldev_init);
+
+static void rpmsg_ctrldev_exit(void)
+{
+	unregister_rpmsg_driver(&rpmsg_ctrldev_driver);
+	unregister_chrdev_region(rpmsg_major, RPMSG_DEV_MAX);
+}
+module_exit(rpmsg_ctrldev_exit);
+
+MODULE_DESCRIPTION("rpmsg control interface");
+MODULE_ALIAS("rpmsg:" KBUILD_MODNAME);
+MODULE_LICENSE("GPL v2");
diff --git a/drivers/rpmsg/rpmsg_internal.h b/drivers/rpmsg/rpmsg_internal.h
index a76c344..63cb74e 100644
--- a/drivers/rpmsg/rpmsg_internal.h
+++ b/drivers/rpmsg/rpmsg_internal.h
@@ -2,6 +2,7 @@
 /*
  * remote processor messaging bus internals
  *
+ * Copyright (c) 2020 The Linux Foundation.
  * Copyright (C) 2011 Texas Instruments, Inc.
  * Copyright (C) 2011 Google, Inc.
  *
@@ -18,6 +19,8 @@
 #define to_rpmsg_device(d) container_of(d, struct rpmsg_device, dev)
 #define to_rpmsg_driver(d) container_of(d, struct rpmsg_driver, drv)
 
+extern struct class *rpmsg_class;
+
 /**
  * struct rpmsg_device_ops - indirection table for the rpmsg_device operations
  * @create_channel:	create backend-specific channel, optional
@@ -53,6 +56,8 @@
  * @trysendto:		see @rpmsg_trysendto(), optional
  * @trysend_offchannel:	see @rpmsg_trysend_offchannel(), optional
  * @poll:		see @rpmsg_poll(), optional
+ * @get_signals:	see @rpmsg_get_signals(), optional
+ * @set_signals:	see @rpmsg_set_signals(), optional
  *
  * Indirection table for the operations that a rpmsg backend should implement.
  * In addition to @destroy_ept, the backend must at least implement @send and
@@ -72,6 +77,9 @@
 			     void *data, int len);
 	__poll_t (*poll)(struct rpmsg_endpoint *ept, struct file *filp,
 			     poll_table *wait);
+	int (*rx_done)(struct rpmsg_endpoint *ept, void *data);
+	int (*get_signals)(struct rpmsg_endpoint *ept);
+	int (*set_signals)(struct rpmsg_endpoint *ept, u32 set, u32 clear);
 };
 
 struct device *rpmsg_find_device(struct device *parent,
@@ -82,16 +90,16 @@
 int rpmsg_release_channel(struct rpmsg_device *rpdev,
 			  struct rpmsg_channel_info *chinfo);
 /**
- * rpmsg_chrdev_register_device() - register chrdev device based on rpdev
+ * rpmsg_ctrldev_register_device() - register a char device for control based on rpdev
  * @rpdev:	prepared rpdev to be used for creating endpoints
  *
  * This function wraps rpmsg_register_device() preparing the rpdev for use as
  * basis for the rpmsg chrdev.
  */
-static inline int rpmsg_chrdev_register_device(struct rpmsg_device *rpdev)
+static inline int rpmsg_ctrldev_register_device(struct rpmsg_device *rpdev)
 {
-	strcpy(rpdev->id.name, "rpmsg_chrdev");
-	rpdev->driver_override = "rpmsg_chrdev";
+	strcpy(rpdev->id.name, "rpmsg_ctrl");
+	rpdev->driver_override = "rpmsg_ctrl";
 
 	return rpmsg_register_device(rpdev);
 }
diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c b/drivers/rpmsg/virtio_rpmsg_bus.c
index b03e740..fca034a 100644
--- a/drivers/rpmsg/virtio_rpmsg_bus.c
+++ b/drivers/rpmsg/virtio_rpmsg_bus.c
@@ -840,7 +840,7 @@
 	rpdev_ctrl->dev.release = virtio_rpmsg_release_device;
 	rpdev_ctrl->little_endian = virtio_is_little_endian(vrp->vdev);
 
-	err = rpmsg_chrdev_register_device(rpdev_ctrl);
+	err = rpmsg_ctrldev_register_device(rpdev_ctrl);
 	if (err) {
 		/* vch will be free in virtio_rpmsg_release_device() */
 		return ERR_PTR(err);
diff --git a/drivers/scsi/sd.h b/drivers/scsi/sd.h
index b59136c..c76f7c9e 100644
--- a/drivers/scsi/sd.h
+++ b/drivers/scsi/sd.h
@@ -125,6 +125,9 @@
 	unsigned	urswrz : 1;
 	unsigned	security : 1;
 	unsigned	ignore_medium_access_errors : 1;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 #define to_scsi_disk(obj) container_of(obj,struct scsi_disk,dev)
 
diff --git a/drivers/scsi/ufs/Kconfig b/drivers/scsi/ufs/Kconfig
index 432df76..0680cd892 100644
--- a/drivers/scsi/ufs/Kconfig
+++ b/drivers/scsi/ufs/Kconfig
@@ -199,3 +199,12 @@
 	help
 	  Enable fault injection support in the UFS driver. This makes it easier
 	  to test the UFS error handler and abort handler.
+
+config SCSI_UFS_HWMON
+	bool "UFS Temperature Notification"
+	depends on SCSI_UFSHCD=HWMON || HWMON=y
+	help
+	  This provides support for UFS hardware monitoring. If enabled,
+	  a hardware monitoring device will be created for the UFS device.
+
+	  If unsure, say N.
diff --git a/drivers/scsi/ufs/Makefile b/drivers/scsi/ufs/Makefile
index c407da9..9660488 100644
--- a/drivers/scsi/ufs/Makefile
+++ b/drivers/scsi/ufs/Makefile
@@ -10,6 +10,7 @@
 ufshcd-core-$(CONFIG_SCSI_UFS_CRYPTO)	+= ufshcd-crypto.o
 ufshcd-core-$(CONFIG_SCSI_UFS_HPB)	+= ufshpb.o
 ufshcd-core-$(CONFIG_SCSI_UFS_FAULT_INJECTION) += ufs-fault-injection.o
+ufshcd-core-$(CONFIG_SCSI_UFS_HWMON) += ufs-hwmon.o
 
 obj-$(CONFIG_SCSI_UFS_DWC_TC_PCI) += tc-dwc-g210-pci.o ufshcd-dwc.o tc-dwc-g210.o
 obj-$(CONFIG_SCSI_UFS_DWC_TC_PLATFORM) += tc-dwc-g210-pltfrm.o ufshcd-dwc.o tc-dwc-g210.o
diff --git a/drivers/scsi/ufs/ufs-exynos.c b/drivers/scsi/ufs/ufs-exynos.c
index bb2dd79..30d0c1a 100644
--- a/drivers/scsi/ufs/ufs-exynos.c
+++ b/drivers/scsi/ufs/ufs-exynos.c
@@ -1176,10 +1176,14 @@
 	}
 }
 
-static int exynos_ufs_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op)
+static int exynos_ufs_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op,
+	enum ufs_notify_change_status status)
 {
 	struct exynos_ufs *ufs = ufshcd_get_variant(hba);
 
+	if (status == PRE_CHANGE)
+		return 0;
+
 	if (!ufshcd_is_link_active(hba))
 		phy_power_off(ufs->phy);
 
diff --git a/drivers/scsi/ufs/ufs-hisi.c b/drivers/scsi/ufs/ufs-hisi.c
index 6b706de..8c7e8d3 100644
--- a/drivers/scsi/ufs/ufs-hisi.c
+++ b/drivers/scsi/ufs/ufs-hisi.c
@@ -396,10 +396,14 @@
 	return ret;
 }
 
-static int ufs_hisi_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op)
+static int ufs_hisi_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op,
+	enum ufs_notify_change_status status)
 {
 	struct ufs_hisi_host *host = ufshcd_get_variant(hba);
 
+	if (status == PRE_CHANGE)
+		return 0;
+
 	if (pm_op == UFS_RUNTIME_PM)
 		return 0;
 
diff --git a/drivers/scsi/ufs/ufs-hwmon.c b/drivers/scsi/ufs/ufs-hwmon.c
new file mode 100644
index 0000000..33b6673
--- /dev/null
+++ b/drivers/scsi/ufs/ufs-hwmon.c
@@ -0,0 +1,198 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * UFS hardware monitoring support
+ * Copyright (c) 2021, Western Digital Corporation
+ */
+
+#include <linux/hwmon.h>
+#include <linux/units.h>
+
+#include "ufshcd.h"
+
+struct ufs_hwmon_data {
+	struct ufs_hba *hba;
+	u8 mask;
+};
+
+static int ufs_read_temp_enable(struct ufs_hba *hba, u8 mask, long *val)
+{
+	u32 ee_mask;
+	int err;
+
+	err = ufshcd_query_attr(hba, UPIU_QUERY_OPCODE_READ_ATTR, QUERY_ATTR_IDN_EE_CONTROL, 0, 0,
+				&ee_mask);
+	if (err)
+		return err;
+
+	*val = (mask & ee_mask & MASK_EE_TOO_HIGH_TEMP) || (mask & ee_mask & MASK_EE_TOO_LOW_TEMP);
+
+	return 0;
+}
+
+static int ufs_get_temp(struct ufs_hba *hba, enum attr_idn idn, long *val)
+{
+	u32 value;
+	int err;
+
+	err = ufshcd_query_attr(hba, UPIU_QUERY_OPCODE_READ_ATTR, idn, 0, 0, &value);
+	if (err)
+		return err;
+
+	if (value == 0)
+		return -ENODATA;
+
+	*val = ((long)value - 80) * MILLIDEGREE_PER_DEGREE;
+
+	return 0;
+}
+
+static int ufs_hwmon_read(struct device *dev, enum hwmon_sensor_types type, u32 attr, int channel,
+			  long *val)
+{
+	struct ufs_hwmon_data *data = dev_get_drvdata(dev);
+	struct ufs_hba *hba = data->hba;
+	int err;
+
+	down(&hba->host_sem);
+
+	if (!ufshcd_is_user_access_allowed(hba)) {
+		up(&hba->host_sem);
+		return -EBUSY;
+	}
+
+	ufshcd_rpm_get_sync(hba);
+
+	switch (attr) {
+	case hwmon_temp_enable:
+		err = ufs_read_temp_enable(hba, data->mask, val);
+
+		break;
+	case hwmon_temp_crit:
+		err = ufs_get_temp(hba, QUERY_ATTR_IDN_HIGH_TEMP_BOUND, val);
+
+		break;
+	case hwmon_temp_lcrit:
+		err = ufs_get_temp(hba, QUERY_ATTR_IDN_LOW_TEMP_BOUND, val);
+
+		break;
+	case hwmon_temp_input:
+		err = ufs_get_temp(hba, QUERY_ATTR_IDN_CASE_ROUGH_TEMP, val);
+
+		break;
+	default:
+		err = -EOPNOTSUPP;
+
+		break;
+	}
+
+	ufshcd_rpm_put_sync(hba);
+
+	up(&hba->host_sem);
+
+	return err;
+}
+
+static int ufs_hwmon_write(struct device *dev, enum hwmon_sensor_types type, u32 attr, int channel,
+			   long val)
+{
+	struct ufs_hwmon_data *data = dev_get_drvdata(dev);
+	struct ufs_hba *hba = data->hba;
+	int err;
+
+	if (attr != hwmon_temp_enable)
+		return -EINVAL;
+
+	if (val != 0 && val != 1)
+		return -EINVAL;
+
+	down(&hba->host_sem);
+
+	if (!ufshcd_is_user_access_allowed(hba)) {
+		up(&hba->host_sem);
+		return -EBUSY;
+	}
+
+	ufshcd_rpm_get_sync(hba);
+
+	if (val == 1)
+		err = ufshcd_update_ee_usr_mask(hba, MASK_EE_URGENT_TEMP, 0);
+	else
+		err = ufshcd_update_ee_usr_mask(hba, 0, MASK_EE_URGENT_TEMP);
+
+	ufshcd_rpm_put_sync(hba);
+
+	up(&hba->host_sem);
+
+	return err;
+}
+
+static umode_t ufs_hwmon_is_visible(const void *_data, enum hwmon_sensor_types type, u32 attr,
+				    int channel)
+{
+	if (type != hwmon_temp)
+		return 0;
+
+	switch (attr) {
+	case hwmon_temp_enable:
+		return 0644;
+	case hwmon_temp_crit:
+	case hwmon_temp_lcrit:
+	case hwmon_temp_input:
+		return 0444;
+	default:
+		break;
+	}
+	return 0;
+}
+
+static const struct hwmon_channel_info *ufs_hwmon_info[] = {
+	HWMON_CHANNEL_INFO(temp, HWMON_T_ENABLE | HWMON_T_INPUT | HWMON_T_CRIT | HWMON_T_LCRIT),
+	NULL
+};
+
+static const struct hwmon_ops ufs_hwmon_ops = {
+	.is_visible	= ufs_hwmon_is_visible,
+	.read		= ufs_hwmon_read,
+	.write		= ufs_hwmon_write,
+};
+
+static const struct hwmon_chip_info ufs_hwmon_hba_info = {
+	.ops	= &ufs_hwmon_ops,
+	.info	= ufs_hwmon_info,
+};
+
+void ufs_hwmon_probe(struct ufs_hba *hba, u8 mask)
+{
+	struct device *dev = hba->dev;
+	struct ufs_hwmon_data *data;
+	struct device *hwmon;
+
+	data = kzalloc(sizeof(*data), GFP_KERNEL);
+	if (!data)
+		return;
+
+	data->hba = hba;
+	data->mask = mask;
+
+	hwmon = hwmon_device_register_with_info(dev, "ufs", data, &ufs_hwmon_hba_info, NULL);
+	if (IS_ERR(hwmon)) {
+		dev_warn(dev, "Failed to instantiate hwmon device\n");
+		kfree(data);
+		return;
+	}
+
+	hba->hwmon_device = hwmon;
+}
+
+void ufs_hwmon_remove(struct ufs_hba *hba)
+{
+	struct ufs_hwmon_data *data;
+
+	if (!hba->hwmon_device)
+		return;
+
+	data = dev_get_drvdata(hba->hwmon_device);
+	hwmon_device_unregister(hba->hwmon_device);
+	hba->hwmon_device = NULL;
+	kfree(data);
+}
diff --git a/drivers/scsi/ufs/ufs-mediatek.c b/drivers/scsi/ufs/ufs-mediatek.c
index a9ddb50..d7c1fd7 100644
--- a/drivers/scsi/ufs/ufs-mediatek.c
+++ b/drivers/scsi/ufs/ufs-mediatek.c
@@ -77,6 +77,13 @@
 	return !!(host->caps & UFS_MTK_CAP_BROKEN_VCC);
 }
 
+static bool ufs_mtk_is_pmc_via_fastauto(struct ufs_hba *hba)
+{
+	struct ufs_mtk_host *host = ufshcd_get_variant(hba);
+
+	return (host->caps & UFS_MTK_CAP_PMC_VIA_FASTAUTO);
+}
+
 static void ufs_mtk_cfg_unipro_cg(struct ufs_hba *hba, bool enable)
 {
 	u32 tmp;
@@ -296,6 +303,61 @@
 	host->ref_clk_ungating_wait_us = ungating_us;
 }
 
+static void ufs_mtk_dbg_sel(struct ufs_hba *hba)
+{
+	struct ufs_mtk_host *host = ufshcd_get_variant(hba);
+
+	if (((host->ip_ver >> 16) & 0xFF) >= 0x36) {
+		ufshcd_writel(hba, 0x820820, REG_UFS_DEBUG_SEL);
+		ufshcd_writel(hba, 0x0, REG_UFS_DEBUG_SEL_B0);
+		ufshcd_writel(hba, 0x55555555, REG_UFS_DEBUG_SEL_B1);
+		ufshcd_writel(hba, 0xaaaaaaaa, REG_UFS_DEBUG_SEL_B2);
+		ufshcd_writel(hba, 0xffffffff, REG_UFS_DEBUG_SEL_B3);
+	} else {
+		ufshcd_writel(hba, 0x20, REG_UFS_DEBUG_SEL);
+	}
+}
+
+static void ufs_mtk_wait_idle_state(struct ufs_hba *hba,
+			    unsigned long retry_ms)
+{
+	u64 timeout, time_checked;
+	u32 val, sm;
+	bool wait_idle;
+
+	/* cannot use plain ktime_get() in suspend */
+	timeout = ktime_get_mono_fast_ns() + retry_ms * 1000000UL;
+
+	/* wait a specific time after check base */
+	udelay(10);
+	wait_idle = false;
+
+	do {
+		time_checked = ktime_get_mono_fast_ns();
+		ufs_mtk_dbg_sel(hba);
+		val = ufshcd_readl(hba, REG_UFS_PROBE);
+
+		sm = val & 0x1f;
+
+		/*
+		 * if state is in H8 enter and H8 enter confirm
+		 * wait until return to idle state.
+		 */
+		if ((sm >= VS_HIB_ENTER) && (sm <= VS_HIB_EXIT)) {
+			wait_idle = true;
+			udelay(50);
+			continue;
+		} else if (!wait_idle)
+			break;
+
+		if (wait_idle && (sm == VS_HCE_BASE))
+			break;
+	} while (time_checked < timeout);
+
+	if (wait_idle && sm != VS_HCE_BASE)
+		dev_info(hba->dev, "wait idle tmo: 0x%x\n", val);
+}
+
 static int ufs_mtk_wait_link_state(struct ufs_hba *hba, u32 state,
 				   unsigned long max_wait_ms)
 {
@@ -305,7 +367,7 @@
 	timeout = ktime_add_ms(ktime_get(), max_wait_ms);
 	do {
 		time_checked = ktime_get();
-		ufshcd_writel(hba, 0x20, REG_UFS_DEBUG_SEL);
+		ufs_mtk_dbg_sel(hba);
 		val = ufshcd_readl(hba, REG_UFS_PROBE);
 		val = val >> 28;
 
@@ -524,6 +586,9 @@
 	if (of_property_read_bool(np, "mediatek,ufs-broken-vcc"))
 		host->caps |= UFS_MTK_CAP_BROKEN_VCC;
 
+	if (of_property_read_bool(np, "mediatek,ufs-pmc-via-fastauto"))
+		host->caps |= UFS_MTK_CAP_PMC_VIA_FASTAUTO;
+
 	dev_info(hba->dev, "caps: 0x%x", host->caps);
 }
 
@@ -689,6 +754,8 @@
 	ufs_mtk_mphy_power_on(hba, true);
 	ufs_mtk_setup_clocks(hba, true, POST_CHANGE);
 
+	host->ip_ver = ufshcd_readl(hba, REG_UFS_MTK_IP_VER);
+
 	goto out;
 
 out_variant_clear:
@@ -697,6 +764,26 @@
 	return err;
 }
 
+static bool ufs_mtk_pmc_via_fastauto(struct ufs_hba *hba,
+	struct ufs_pa_layer_attr *dev_req_params)
+{
+	if (!ufs_mtk_is_pmc_via_fastauto(hba))
+		return false;
+
+	if (dev_req_params->hs_rate == hba->pwr_info.hs_rate)
+		return false;
+
+	if ((dev_req_params->pwr_tx != FAST_MODE) &&
+		(dev_req_params->gear_tx < UFS_HS_G4))
+		return false;
+
+	if ((dev_req_params->pwr_rx != FAST_MODE) &&
+		(dev_req_params->gear_rx < UFS_HS_G4))
+		return false;
+
+	return true;
+}
+
 static int ufs_mtk_pre_pwr_change(struct ufs_hba *hba,
 				  struct ufs_pa_layer_attr *dev_max_params,
 				  struct ufs_pa_layer_attr *dev_req_params)
@@ -706,8 +793,8 @@
 	int ret;
 
 	ufshcd_init_pwr_dev_param(&host_cap);
-	host_cap.hs_rx_gear = UFS_HS_G4;
-	host_cap.hs_tx_gear = UFS_HS_G4;
+	host_cap.hs_rx_gear = UFS_HS_G5;
+	host_cap.hs_tx_gear = UFS_HS_G5;
 
 	ret = ufshcd_get_pwr_dev_param(&host_cap,
 				       dev_max_params,
@@ -717,6 +804,32 @@
 			__func__);
 	}
 
+	if (ufs_mtk_pmc_via_fastauto(hba, dev_req_params)) {
+		ufshcd_dme_set(hba, UIC_ARG_MIB(PA_TXTERMINATION), true);
+		ufshcd_dme_set(hba, UIC_ARG_MIB(PA_TXGEAR), UFS_HS_G1);
+
+		ufshcd_dme_set(hba, UIC_ARG_MIB(PA_RXTERMINATION), true);
+		ufshcd_dme_set(hba, UIC_ARG_MIB(PA_RXGEAR), UFS_HS_G1);
+
+		ufshcd_dme_set(hba, UIC_ARG_MIB(PA_ACTIVETXDATALANES),
+			dev_req_params->lane_tx);
+		ufshcd_dme_set(hba, UIC_ARG_MIB(PA_ACTIVERXDATALANES),
+			dev_req_params->lane_rx);
+		ufshcd_dme_set(hba, UIC_ARG_MIB(PA_HSSERIES),
+			dev_req_params->hs_rate);
+
+		ufshcd_dme_set(hba, UIC_ARG_MIB(PA_TXHSADAPTTYPE),
+			PA_NO_ADAPT);
+
+		ret = ufshcd_uic_change_pwr_mode(hba,
+			FASTAUTO_MODE << 4 | FASTAUTO_MODE);
+
+		if (ret) {
+			dev_err(hba->dev, "%s: HSG1B FASTAUTO failed ret=%d\n",
+				__func__, ret);
+		}
+	}
+
 	if (host->hw_ver.major >= 3) {
 		ret = ufshcd_dme_configure_adapt(hba,
 					   dev_req_params->gear_tx,
@@ -932,11 +1045,37 @@
 				   REGULATOR_MODE_NORMAL);
 }
 
-static int ufs_mtk_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op)
+static void ufs_mtk_auto_hibern8_disable(struct ufs_hba *hba)
+{
+	unsigned long flags;
+	int ret;
+
+	/* disable auto-hibern8 */
+	spin_lock_irqsave(hba->host->host_lock, flags);
+	ufshcd_writel(hba, 0, REG_AUTO_HIBERNATE_IDLE_TIMER);
+	spin_unlock_irqrestore(hba->host->host_lock, flags);
+
+	/* wait host return to idle state when auto-hibern8 off */
+	ufs_mtk_wait_idle_state(hba, 5);
+
+	ret = ufs_mtk_wait_link_state(hba, VS_LINK_UP, 100);
+	if (ret)
+		dev_warn(hba->dev, "exit h8 state fail, ret=%d\n", ret);
+}
+
+static int ufs_mtk_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op,
+	enum ufs_notify_change_status status)
 {
 	int err;
 	struct arm_smccc_res res;
 
+	if (status == PRE_CHANGE) {
+		if (!ufshcd_is_auto_hibern8_supported(hba))
+			return 0;
+		ufs_mtk_auto_hibern8_disable(hba);
+		return 0;
+	}
+
 	if (ufshcd_is_link_hibern8(hba)) {
 		err = ufs_mtk_link_set_lpm(hba);
 		if (err)
@@ -1001,7 +1140,7 @@
 			 "MPHY Ctrl ");
 
 	/* Direct debugging information to REG_MTK_PROBE */
-	ufshcd_writel(hba, 0x20, REG_UFS_DEBUG_SEL);
+	ufs_mtk_dbg_sel(hba);
 	ufshcd_dump_regs(hba, REG_UFS_PROBE, 0x4, "Debug Probe ");
 }
 
diff --git a/drivers/scsi/ufs/ufs-mediatek.h b/drivers/scsi/ufs/ufs-mediatek.h
index 3f0d3bb..6c5533d 100644
--- a/drivers/scsi/ufs/ufs-mediatek.h
+++ b/drivers/scsi/ufs/ufs-mediatek.h
@@ -15,9 +15,14 @@
 #define REG_UFS_REFCLK_CTRL         0x144
 #define REG_UFS_EXTREG              0x2100
 #define REG_UFS_MPHYCTRL            0x2200
+#define REG_UFS_MTK_IP_VER          0x2240
 #define REG_UFS_REJECT_MON          0x22AC
 #define REG_UFS_DEBUG_SEL           0x22C0
 #define REG_UFS_PROBE               0x22C8
+#define REG_UFS_DEBUG_SEL_B0        0x22D0
+#define REG_UFS_DEBUG_SEL_B1        0x22D4
+#define REG_UFS_DEBUG_SEL_B2        0x22D8
+#define REG_UFS_DEBUG_SEL_B3        0x22DC
 
 /*
  * Ref-clk control
@@ -50,6 +55,26 @@
 };
 
 /*
+ * Vendor specific host controller state
+ */
+enum {
+	VS_HCE_RESET                = 0,
+	VS_HCE_BASE                 = 1,
+	VS_HCE_OOCPR_WAIT           = 2,
+	VS_HCE_DME_RESET            = 3,
+	VS_HCE_MIDDLE               = 4,
+	VS_HCE_DME_ENABLE           = 5,
+	VS_HCE_DEFAULTS             = 6,
+	VS_HIB_IDLEEN               = 7,
+	VS_HIB_ENTER                = 8,
+	VS_HIB_ENTER_CONF           = 9,
+	VS_HIB_MIDDLE               = 10,
+	VS_HIB_WAITTIMER            = 11,
+	VS_HIB_EXIT_CONF            = 12,
+	VS_HIB_EXIT                 = 13,
+};
+
+/*
  * SiP commands
  */
 #define MTK_SIP_UFS_CONTROL               MTK_SIP_SMC_CMD(0x276)
@@ -82,6 +107,7 @@
 	UFS_MTK_CAP_VA09_PWR_CTRL              = 1 << 1,
 	UFS_MTK_CAP_DISABLE_AH8                = 1 << 2,
 	UFS_MTK_CAP_BROKEN_VCC                 = 1 << 3,
+	UFS_MTK_CAP_PMC_VIA_FASTAUTO	       = 1 << 6,
 };
 
 struct ufs_mtk_crypt_cfg {
@@ -113,6 +139,7 @@
 	bool ref_clk_enabled;
 	u16 ref_clk_ungating_wait_us;
 	u16 ref_clk_gating_wait_us;
+	u32 ip_ver;
 };
 
 #endif /* !_UFS_MEDIATEK_H */
diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c
index f810b99..08c7938 100644
--- a/drivers/scsi/ufs/ufs-qcom.c
+++ b/drivers/scsi/ufs/ufs-qcom.c
@@ -589,11 +589,15 @@
 	gpiod_set_value_cansleep(host->device_reset, asserted);
 }
 
-static int ufs_qcom_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op)
+static int ufs_qcom_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op,
+	enum ufs_notify_change_status status)
 {
 	struct ufs_qcom_host *host = ufshcd_get_variant(hba);
 	struct phy *phy = host->generic_phy;
 
+	if (status == PRE_CHANGE)
+		return 0;
+
 	if (ufs_qcom_is_link_off(hba)) {
 		/*
 		 * Disable the tx/rx lane symbol clocks before PHY is
@@ -862,7 +866,7 @@
 	struct ufs_qcom_host *host = ufshcd_get_variant(hba);
 
 	hba->caps |= UFSHCD_CAP_CLK_GATING | UFSHCD_CAP_HIBERN8_WITH_CLK_GATING;
-	hba->caps |= UFSHCD_CAP_CLK_SCALING;
+	hba->caps |= UFSHCD_CAP_CLK_SCALING | UFSHCD_CAP_WB_WITH_CLK_SCALING;
 	hba->caps |= UFSHCD_CAP_AUTO_BKOPS_SUSPEND;
 	hba->caps |= UFSHCD_CAP_WB_EN;
 	hba->caps |= UFSHCD_CAP_CRYPTO;
@@ -1544,10 +1548,16 @@
 #endif
 
 static const struct dev_pm_ops ufs_qcom_pm_ops = {
-	SET_SYSTEM_SLEEP_PM_OPS(ufshcd_system_suspend, ufshcd_system_resume)
 	SET_RUNTIME_PM_OPS(ufshcd_runtime_suspend, ufshcd_runtime_resume, NULL)
 	.prepare	 = ufshcd_suspend_prepare,
 	.complete	 = ufshcd_resume_complete,
+#ifdef CONFIG_PM_SLEEP
+	.suspend         = ufshcd_system_suspend,
+	.resume          = ufshcd_system_resume,
+	.freeze          = ufshcd_system_freeze,
+	.restore         = ufshcd_system_restore,
+	.thaw            = ufshcd_system_thaw,
+#endif
 };
 
 static struct platform_driver ufs_qcom_pltform = {
diff --git a/drivers/scsi/ufs/ufs-sysfs.c b/drivers/scsi/ufs/ufs-sysfs.c
index 5c405ff..77489f8 100644
--- a/drivers/scsi/ufs/ufs-sysfs.c
+++ b/drivers/scsi/ufs/ufs-sysfs.c
@@ -9,6 +9,8 @@
 #include "ufs.h"
 #include "ufs-sysfs.h"
 
+#include <trace/hooks/ufshcd.h>
+
 static const char *ufshcd_uic_link_state_to_string(
 			enum uic_link_state state)
 {
@@ -224,7 +226,8 @@
 	unsigned int wb_enable;
 	ssize_t res;
 
-	if (!ufshcd_is_wb_allowed(hba) || ufshcd_is_clkscaling_supported(hba)) {
+	if (!ufshcd_is_wb_allowed(hba) || (ufshcd_is_clkscaling_supported(hba)
+		&& ufshcd_enable_wb_if_scaling_up(hba))) {
 		/*
 		 * If the platform supports UFSHCD_CAP_CLK_SCALING, turn WB
 		 * on/off will be done while clock scaling up/down.
@@ -1250,15 +1253,19 @@
 	.attrs = ufs_sysfs_lun_attributes,
 };
 
-void ufs_sysfs_add_nodes(struct device *dev)
+void ufs_sysfs_add_nodes(struct ufs_hba *hba)
 {
 	int ret;
 
-	ret = sysfs_create_groups(&dev->kobj, ufs_sysfs_groups);
-	if (ret)
-		dev_err(dev,
+	ret = sysfs_create_groups(&hba->dev->kobj, ufs_sysfs_groups);
+	if (ret) {
+		dev_err(hba->dev,
 			"%s: sysfs groups creation failed (err = %d)\n",
 			__func__, ret);
+		return;
+	}
+
+	trace_android_vh_ufs_update_sysfs(hba);
 }
 
 void ufs_sysfs_remove_nodes(struct device *dev)
diff --git a/drivers/scsi/ufs/ufs-sysfs.h b/drivers/scsi/ufs/ufs-sysfs.h
index 0f4e750..ec7b0c8 100644
--- a/drivers/scsi/ufs/ufs-sysfs.h
+++ b/drivers/scsi/ufs/ufs-sysfs.h
@@ -9,7 +9,7 @@
 
 #include "ufshcd.h"
 
-void ufs_sysfs_add_nodes(struct device *dev);
+void ufs_sysfs_add_nodes(struct ufs_hba *hba);
 void ufs_sysfs_remove_nodes(struct device *dev);
 
 extern const struct attribute_group ufs_sysfs_unit_descriptor_group;
diff --git a/drivers/scsi/ufs/ufs.h b/drivers/scsi/ufs/ufs.h
index 8c6b38b..3f4ef22 100644
--- a/drivers/scsi/ufs/ufs.h
+++ b/drivers/scsi/ufs/ufs.h
@@ -13,6 +13,8 @@
 
 #include <linux/mutex.h>
 #include <linux/types.h>
+#include <linux/android_kabi.h>
+#include <linux/android_vendor.h>
 #include <uapi/scsi/scsi_bsg_ufs.h>
 
 #define GENERAL_UPIU_REQUEST_SIZE (sizeof(struct utp_upiu_req))
@@ -152,6 +154,9 @@
 	QUERY_ATTR_IDN_PSA_STATE		= 0x15,
 	QUERY_ATTR_IDN_PSA_DATA_SIZE		= 0x16,
 	QUERY_ATTR_IDN_REF_CLK_GATING_WAIT_TIME	= 0x17,
+	QUERY_ATTR_IDN_CASE_ROUGH_TEMP          = 0x18,
+	QUERY_ATTR_IDN_HIGH_TEMP_BOUND          = 0x19,
+	QUERY_ATTR_IDN_LOW_TEMP_BOUND           = 0x1A,
 	QUERY_ATTR_IDN_WB_FLUSH_STATUS	        = 0x1C,
 	QUERY_ATTR_IDN_AVAIL_WB_BUFF_SIZE       = 0x1D,
 	QUERY_ATTR_IDN_WB_BUFF_LIFE_TIME_EST    = 0x1E,
@@ -338,6 +343,9 @@
 
 /* Possible values for dExtendedUFSFeaturesSupport */
 enum {
+	UFS_DEV_LOW_TEMP_NOTIF		= BIT(4),
+	UFS_DEV_HIGH_TEMP_NOTIF		= BIT(5),
+	UFS_DEV_EXT_TEMP_NOTIF		= BIT(6),
 	UFS_DEV_HPB_SUPPORT		= BIT(7),
 	UFS_DEV_WRITE_BOOSTER_SUP	= BIT(8),
 };
@@ -370,6 +378,7 @@
 	MASK_EE_WRITEBOOSTER_EVENT	= BIT(5),
 	MASK_EE_PERFORMANCE_THROTTLING	= BIT(6),
 };
+#define MASK_EE_URGENT_TEMP (MASK_EE_TOO_HIGH_TEMP | MASK_EE_TOO_LOW_TEMP)
 
 /* Background operation status */
 enum bkops_status {
@@ -604,6 +613,9 @@
 
 	bool	b_rpm_dev_flush_capable;
 	u8	b_presrv_uspc_en;
+	ANDROID_KABI_RESERVE(1);
+
+	ANDROID_OEM_DATA(1);
 };
 
 /*
diff --git a/drivers/scsi/ufs/ufshcd-crypto.c b/drivers/scsi/ufs/ufshcd-crypto.c
index d70cdcd..072ef27 100644
--- a/drivers/scsi/ufs/ufshcd-crypto.c
+++ b/drivers/scsi/ufs/ufshcd-crypto.c
@@ -6,6 +6,9 @@
 #include "ufshcd.h"
 #include "ufshcd-crypto.h"
 
+#undef CREATE_TRACE_POINTS
+#include <trace/hooks/ufshcd.h>
+
 /* Blk-crypto modes supported by UFS crypto */
 static const struct ufs_crypto_alg_entry {
 	enum ufs_crypto_alg ufs_alg;
@@ -120,7 +123,17 @@
 		return false;
 
 	/* Reset might clear all keys, so reprogram all the keys. */
-	blk_ksm_reprogram_all_keys(&hba->ksm);
+	if (hba->ksm.num_slots) {
+		int err = -EOPNOTSUPP;
+
+		trace_android_rvh_ufs_reprogram_all_keys(hba, &err);
+		if (err == -EOPNOTSUPP)
+			blk_ksm_reprogram_all_keys(&hba->ksm);
+	}
+
+	if (hba->quirks & UFSHCD_QUIRK_BROKEN_CRYPTO_ENABLE)
+		return false;
+
 	return true;
 }
 
@@ -157,6 +170,9 @@
 	int err = 0;
 	enum blk_crypto_mode_num blk_mode_num;
 
+	if (hba->quirks & UFSHCD_QUIRK_CUSTOM_KEYSLOT_MANAGER)
+		return 0;
+
 	/*
 	 * Don't use crypto if either the hardware doesn't advertise the
 	 * standard crypto capability bit *or* if the vendor specific driver
@@ -187,6 +203,7 @@
 	hba->ksm.ksm_ll_ops = ufshcd_ksm_ops;
 	/* UFS only supports 8 bytes for any DUN */
 	hba->ksm.max_dun_bytes_supported = 8;
+	hba->ksm.features = BLK_CRYPTO_FEATURE_STANDARD_KEYS;
 	hba->ksm.dev = hba->dev;
 
 	/*
@@ -225,9 +242,9 @@
 	if (!(hba->caps & UFSHCD_CAP_CRYPTO))
 		return;
 
-	/* Clear all keyslots - the number of keyslots is (CFGC + 1) */
-	for (slot = 0; slot < hba->crypto_capabilities.config_count + 1; slot++)
-		ufshcd_clear_keyslot(hba, slot);
+	/* Clear all keyslots */
+	for (slot = 0; slot < hba->ksm.num_slots; slot++)
+		hba->ksm.ksm_ll_ops.keyslot_evict(&hba->ksm, NULL, slot);
 }
 
 void ufshcd_crypto_setup_rq_keyslot_manager(struct ufs_hba *hba,
diff --git a/drivers/scsi/ufs/ufshcd-crypto.h b/drivers/scsi/ufs/ufshcd-crypto.h
index 78a58e7..255ea51 100644
--- a/drivers/scsi/ufs/ufshcd-crypto.h
+++ b/drivers/scsi/ufs/ufshcd-crypto.h
@@ -34,6 +34,19 @@
 	}
 }
 
+static inline void ufshcd_crypto_clear_prdt(struct ufs_hba *hba,
+					    struct ufshcd_lrb *lrbp)
+{
+	if (!(hba->quirks & UFSHCD_QUIRK_KEYS_IN_PRDT))
+		return;
+
+	if (!(scsi_cmd_to_rq(lrbp->cmd)->crypt_ctx))
+		return;
+
+	memzero_explicit(lrbp->ucd_prdt_ptr,
+			 hba->sg_entry_size * scsi_sg_count(lrbp->cmd));
+}
+
 bool ufshcd_crypto_enable(struct ufs_hba *hba);
 
 int ufshcd_hba_init_crypto_capabilities(struct ufs_hba *hba);
@@ -52,6 +65,9 @@
 ufshcd_prepare_req_desc_hdr_crypto(struct ufshcd_lrb *lrbp, u32 *dword_0,
 				   u32 *dword_1, u32 *dword_3) { }
 
+static inline void ufshcd_crypto_clear_prdt(struct ufs_hba *hba,
+					    struct ufshcd_lrb *lrbp) { }
+
 static inline bool ufshcd_crypto_enable(struct ufs_hba *hba)
 {
 	return false;
diff --git a/drivers/scsi/ufs/ufshcd-pltfrm.c b/drivers/scsi/ufs/ufshcd-pltfrm.c
index adc302b..f28022f 100644
--- a/drivers/scsi/ufs/ufshcd-pltfrm.c
+++ b/drivers/scsi/ufs/ufshcd-pltfrm.c
@@ -119,8 +119,8 @@
 }
 
 #define MAX_PROP_SIZE 32
-static int ufshcd_populate_vreg(struct device *dev, const char *name,
-				struct ufs_vreg **out_vreg)
+int ufshcd_populate_vreg(struct device *dev, const char *name,
+			 struct ufs_vreg **out_vreg)
 {
 	char prop_name[MAX_PROP_SIZE];
 	struct ufs_vreg *vreg = NULL;
@@ -155,6 +155,7 @@
 	*out_vreg = vreg;
 	return 0;
 }
+EXPORT_SYMBOL_GPL(ufshcd_populate_vreg);
 
 /**
  * ufshcd_parse_regulator_info - get regulator info from device tree
diff --git a/drivers/scsi/ufs/ufshcd-pltfrm.h b/drivers/scsi/ufs/ufshcd-pltfrm.h
index c33e28a..c76e186 100644
--- a/drivers/scsi/ufs/ufshcd-pltfrm.h
+++ b/drivers/scsi/ufs/ufshcd-pltfrm.h
@@ -32,5 +32,7 @@
 int ufshcd_pltfrm_init(struct platform_device *pdev,
 		       const struct ufs_hba_variant_ops *vops);
 void ufshcd_pltfrm_shutdown(struct platform_device *pdev);
+int ufshcd_populate_vreg(struct device *dev, const char *name,
+			 struct ufs_vreg **out_vreg);
 
 #endif /* UFSHCD_PLTFRM_H_ */
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index d00d263..264cde1 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -31,6 +31,9 @@
 #define CREATE_TRACE_POINTS
 #include <trace/events/ufs.h>
 
+#undef CREATE_TRACE_POINTS
+#include <trace/hooks/ufshcd.h>
+
 #define UFSHCD_ENABLE_INTRS	(UTP_TRANSFER_REQ_COMPL |\
 				 UTP_TASK_REQ_COMPL |\
 				 UFSHCD_ERROR_MASK)
@@ -99,6 +102,15 @@
 		       16, 4, buf, __len, false);                        \
 } while (0)
 
+/*
+ * ANDROID: this mutex is used to serialize devfreq and sysfs write booster
+ * toggling, it was taken out of struct ufs_hba from commit b03f7ed9af6e ("scsi:
+ * ufs: core: Fix devfreq deadlocks") and made static here in order to preserve
+ * the ABI.
+ * Bug: 286803489
+*/
+static DEFINE_MUTEX(wb_mutex);
+
 int ufshcd_dump_regs(struct ufs_hba *hba, size_t offset, size_t len,
 		     const char *prefix)
 {
@@ -230,7 +242,6 @@
 static void ufshcd_hba_exit(struct ufs_hba *hba);
 static int ufshcd_probe_hba(struct ufs_hba *hba, bool init_dev_params);
 static int ufshcd_setup_clocks(struct ufs_hba *hba, bool on);
-static int ufshcd_uic_hibern8_enter(struct ufs_hba *hba);
 static inline void ufshcd_add_delay_before_dme_cmd(struct ufs_hba *hba);
 static int ufshcd_host_reset_and_restore(struct ufs_hba *hba);
 static void ufshcd_resume_clkscaling(struct ufs_hba *hba);
@@ -251,6 +262,15 @@
 static void ufshcd_hba_vreg_set_lpm(struct ufs_hba *hba);
 static void ufshcd_hba_vreg_set_hpm(struct ufs_hba *hba);
 
+static inline int ufshcd_use_mcq_hooks(struct ufs_hba *hba)
+{
+	bool mcq_hooks = false;
+
+	trace_android_vh_ufs_use_mcq_hooks(hba, &mcq_hooks);
+
+	return mcq_hooks;
+}
+
 static inline void ufshcd_enable_irq(struct ufs_hba *hba)
 {
 	if (!hba->is_irq_enabled) {
@@ -325,6 +345,8 @@
 {
 	struct utp_task_req_desc *descp = &hba->utmrdl_base_addr[tag];
 
+	trace_android_vh_ufs_send_tm_command(hba, tag, (int)str_t);
+
 	if (!trace_ufshcd_upiu_enabled())
 		return;
 
@@ -346,6 +368,8 @@
 {
 	u32 cmd;
 
+	trace_android_vh_ufs_send_uic_command(hba, ucmd, (int)str_t);
+
 	if (!trace_ufshcd_uic_command_enabled())
 		return;
 
@@ -360,7 +384,7 @@
 				 ufshcd_readl(hba, REG_UIC_COMMAND_ARG_3));
 }
 
-static void ufshcd_add_command_trace(struct ufs_hba *hba, unsigned int tag,
+void ufshcd_add_command_trace(struct ufs_hba *hba, unsigned int tag,
 				     enum ufs_trace_str_t str_t)
 {
 	u64 lba = 0;
@@ -403,6 +427,7 @@
 	trace_ufshcd_command(dev_name(hba->dev), str_t, tag,
 			doorbell, transfer_len, intr, lba, opcode, group_id);
 }
+EXPORT_SYMBOL_GPL(ufshcd_add_command_trace);
 
 static void ufshcd_print_clk_freqs(struct ufs_hba *hba)
 {
@@ -504,7 +529,7 @@
 		prdt_length = le16_to_cpu(
 			lrbp->utr_descriptor_ptr->prd_table_length);
 		if (hba->quirks & UFSHCD_QUIRK_PRDT_BYTE_GRAN)
-			prdt_length /= sizeof(struct ufshcd_sg_entry);
+			prdt_length /= hba->sg_entry_size;
 
 		dev_err(hba->dev,
 			"UPIU[%d] - PRDT - %d entries  phys@0x%llx\n",
@@ -513,7 +538,7 @@
 
 		if (pr_prdt)
 			ufshcd_hex_dump("UPIU PRDT: ", lrbp->ucd_prdt_ptr,
-				sizeof(struct ufshcd_sg_entry) * prdt_length);
+				hba->sg_entry_size * prdt_length);
 	}
 }
 
@@ -1081,6 +1106,7 @@
 	u32 tr_doorbell;
 	bool timeout = false, do_last_check = false;
 	ktime_t start;
+	bool has_outstanding = false;
 
 	ufshcd_hold(hba, false);
 	spin_lock_irqsave(hba->host->host_lock, flags);
@@ -1096,7 +1122,12 @@
 		}
 
 		tm_doorbell = ufshcd_readl(hba, REG_UTP_TASK_REQ_DOOR_BELL);
-		tr_doorbell = ufshcd_readl(hba, REG_UTP_TRANSFER_REQ_DOOR_BELL);
+		if (ufshcd_use_mcq_hooks(hba)) {
+			trace_android_vh_ufs_mcq_has_oustanding_reqs(hba, &has_outstanding);
+			tr_doorbell = has_outstanding ? 1 : 0;
+		} else {
+			tr_doorbell = ufshcd_readl(hba, REG_UTP_TRANSFER_REQ_DOOR_BELL);
+		}
 		if (!tm_doorbell && !tr_doorbell) {
 			timeout = false;
 			break;
@@ -1185,14 +1216,14 @@
 	 * clock scaling is in progress
 	 */
 	ufshcd_scsi_block_requests(hba);
-	mutex_lock(&hba->wb_mutex);
+	mutex_lock(&wb_mutex);
 	down_write(&hba->clk_scaling_lock);
 
 	if (!hba->clk_scaling.is_allowed ||
 	    ufshcd_wait_for_doorbell_clr(hba, DOORBELL_CLR_TOUT_US)) {
 		ret = -EBUSY;
 		up_write(&hba->clk_scaling_lock);
-		mutex_unlock(&hba->wb_mutex);
+		mutex_unlock(&wb_mutex);
 		ufshcd_scsi_unblock_requests(hba);
 		goto out;
 	}
@@ -1209,9 +1240,10 @@
 	up_write(&hba->clk_scaling_lock);
 
 	/* Enable Write Booster if we have scaled up else disable it */
-	ufshcd_wb_toggle(hba, scale_up);
+	if (ufshcd_enable_wb_if_scaling_up(hba) && !err)
+		ufshcd_wb_toggle(hba, scale_up);
 
-	mutex_unlock(&hba->wb_mutex);
+	mutex_unlock(&wb_mutex);
 
 	ufshcd_scsi_unblock_requests(hba);
 	ufshcd_release(hba);
@@ -1306,6 +1338,8 @@
 	struct list_head *clk_list = &hba->clk_list_head;
 	struct ufs_clk_info *clki;
 	unsigned long irq_flags;
+	bool force_out = false;
+	bool force_scaling = false;
 
 	if (!ufshcd_is_clkscaling_supported(hba))
 		return -EINVAL;
@@ -1331,8 +1365,11 @@
 	scale_up = (*freq == clki->max_freq) ? true : false;
 	if (!scale_up)
 		*freq = clki->min_freq;
+
+	trace_android_vh_ufs_clock_scaling(hba, &force_out, &force_scaling, &scale_up);
+
 	/* Update the frequency */
-	if (!ufshcd_is_devfreq_scaling_required(hba, scale_up)) {
+	if (force_out || (!force_scaling && !ufshcd_is_devfreq_scaling_required(hba, scale_up))) {
 		spin_unlock_irqrestore(hba->host->host_lock, irq_flags);
 		ret = 0;
 		goto out; /* no state change required */
@@ -1382,6 +1419,7 @@
 	struct list_head *clk_list = &hba->clk_list_head;
 	struct ufs_clk_info *clki;
 	ktime_t curr_t;
+	bool has_outstanding;
 
 	if (!ufshcd_is_clkscaling_supported(hba))
 		return -EINVAL;
@@ -1410,7 +1448,10 @@
 	scaling->window_start_t = curr_t;
 	scaling->tot_busy_t = 0;
 
-	if (hba->outstanding_reqs) {
+	has_outstanding = hba->outstanding_reqs != 0;
+	trace_android_vh_ufs_mcq_has_oustanding_reqs(hba, &has_outstanding);
+
+	if (has_outstanding) {
 		scaling->busy_start_t = curr_t;
 		scaling->is_busy_started = true;
 	} else {
@@ -1976,7 +2017,7 @@
 }
 
 /* Must be called with host lock acquired */
-static void ufshcd_clk_scaling_start_busy(struct ufs_hba *hba)
+void ufshcd_clk_scaling_start_busy(struct ufs_hba *hba)
 {
 	bool queue_resume_work = false;
 	ktime_t curr_t = ktime_get();
@@ -2010,18 +2051,22 @@
 	}
 	spin_unlock_irqrestore(hba->host->host_lock, flags);
 }
+EXPORT_SYMBOL_GPL(ufshcd_clk_scaling_start_busy);
 
-static void ufshcd_clk_scaling_update_busy(struct ufs_hba *hba)
+void ufshcd_clk_scaling_update_busy(struct ufs_hba *hba)
 {
 	struct ufs_clk_scaling *scaling = &hba->clk_scaling;
 	unsigned long flags;
+	bool has_outstanding;
 
 	if (!ufshcd_is_clkscaling_supported(hba))
 		return;
 
 	spin_lock_irqsave(hba->host->host_lock, flags);
 	hba->clk_scaling.active_reqs--;
-	if (!hba->outstanding_reqs && scaling->is_busy_started) {
+	has_outstanding = hba->outstanding_reqs != 0;
+	trace_android_vh_ufs_mcq_has_oustanding_reqs(hba, &has_outstanding);
+	if (!has_outstanding && scaling->is_busy_started) {
 		scaling->tot_busy_t += ktime_to_us(ktime_sub(ktime_get(),
 					scaling->busy_start_t));
 		scaling->busy_start_t = 0;
@@ -2029,6 +2074,7 @@
 	}
 	spin_unlock_irqrestore(hba->host->host_lock, flags);
 }
+EXPORT_SYMBOL_GPL(ufshcd_clk_scaling_update_busy);
 
 static inline int ufshcd_monitor_opcode2dir(u8 opcode)
 {
@@ -2104,8 +2150,14 @@
 	struct ufshcd_lrb *lrbp = &hba->lrb[task_tag];
 	unsigned long flags;
 
+	if (ufshcd_use_mcq_hooks(hba)) {
+		trace_android_vh_ufs_mcq_send_command(hba, task_tag);
+		return;
+	}
+
 	lrbp->issue_time_stamp = ktime_get();
 	lrbp->compl_time_stamp = ktime_set(0, 0);
+	trace_android_vh_ufs_send_command(hba, lrbp);
 	ufshcd_add_command_trace(hba, task_tag, UFS_CMD_SEND);
 	ufshcd_clk_scaling_start_busy(hba);
 	if (unlikely(ufshcd_should_inform_monitor(hba, lrbp)))
@@ -2188,7 +2240,7 @@
  */
 static inline int ufshcd_hba_capabilities(struct ufs_hba *hba)
 {
-	int err;
+	int err = 0;
 
 	hba->capabilities = ufshcd_readl(hba, REG_CONTROLLER_CAPABILITIES);
 
@@ -2198,11 +2250,15 @@
 	((hba->capabilities & MASK_TASK_MANAGEMENT_REQUEST_SLOTS) >> 16) + 1;
 	hba->reserved_slot = hba->nutrs - 1;
 
+	trace_android_vh_ufs_mcq_hba_capabilities(hba, &err);
+	if (err)
+		goto out;
+
 	/* Read crypto capabilities */
 	err = ufshcd_hba_init_crypto_capabilities(hba);
 	if (err)
 		dev_err(hba->dev, "crypto setup failed\n");
-
+out:
 	return err;
 }
 
@@ -2338,6 +2394,9 @@
 	int ret;
 	unsigned long flags;
 
+	if (hba->quirks & UFSHCD_QUIRK_BROKEN_UIC_CMD)
+		return 0;
+
 	ufshcd_hold(hba, false);
 	mutex_lock(&hba->uic_cmd_mutex);
 	ufshcd_add_delay_before_dme_cmd(hba);
@@ -2363,11 +2422,12 @@
  */
 static int ufshcd_map_sg(struct ufs_hba *hba, struct ufshcd_lrb *lrbp)
 {
-	struct ufshcd_sg_entry *prd_table;
+	struct ufshcd_sg_entry *prd;
 	struct scatterlist *sg;
 	struct scsi_cmnd *cmd;
 	int sg_segments;
 	int i;
+	int err;
 
 	cmd = lrbp->cmd;
 	sg_segments = scsi_dma_map(cmd);
@@ -2378,28 +2438,30 @@
 
 		if (hba->quirks & UFSHCD_QUIRK_PRDT_BYTE_GRAN)
 			lrbp->utr_descriptor_ptr->prd_table_length =
-				cpu_to_le16((sg_segments *
-					sizeof(struct ufshcd_sg_entry)));
+				cpu_to_le16(sg_segments * hba->sg_entry_size);
 		else
 			lrbp->utr_descriptor_ptr->prd_table_length =
 				cpu_to_le16((u16) (sg_segments));
 
-		prd_table = (struct ufshcd_sg_entry *)lrbp->ucd_prdt_ptr;
+		prd = (struct ufshcd_sg_entry *)lrbp->ucd_prdt_ptr;
 
 		scsi_for_each_sg(cmd, sg, sg_segments, i) {
-			prd_table[i].size  =
+			prd->size =
 				cpu_to_le32(((u32) sg_dma_len(sg))-1);
-			prd_table[i].base_addr =
+			prd->base_addr =
 				cpu_to_le32(lower_32_bits(sg->dma_address));
-			prd_table[i].upper_addr =
+			prd->upper_addr =
 				cpu_to_le32(upper_32_bits(sg->dma_address));
-			prd_table[i].reserved = 0;
+			prd->reserved = 0;
+			prd = (void *)prd + hba->sg_entry_size;
 		}
 	} else {
 		lrbp->utr_descriptor_ptr->prd_table_length = 0;
 	}
 
-	return 0;
+	err = 0;
+	trace_android_vh_ufs_fill_prdt(hba, lrbp, sg_segments, &err);
+	return err;
 }
 
 /**
@@ -2661,10 +2723,11 @@
 
 static void ufshcd_init_lrb(struct ufs_hba *hba, struct ufshcd_lrb *lrb, int i)
 {
-	struct utp_transfer_cmd_desc *cmd_descp = hba->ucdl_base_addr;
+	struct utp_transfer_cmd_desc *cmd_descp = (void *)hba->ucdl_base_addr +
+		i * sizeof_utp_transfer_cmd_desc(hba);
 	struct utp_transfer_req_desc *utrdlp = hba->utrdl_base_addr;
 	dma_addr_t cmd_desc_element_addr = hba->ucdl_dma_addr +
-		i * sizeof(struct utp_transfer_cmd_desc);
+		i * sizeof_utp_transfer_cmd_desc(hba);
 	u16 response_offset = offsetof(struct utp_transfer_cmd_desc,
 				       response_upiu);
 	u16 prdt_offset = offsetof(struct utp_transfer_cmd_desc, prd_table);
@@ -2672,11 +2735,11 @@
 	lrb->utr_descriptor_ptr = utrdlp + i;
 	lrb->utrd_dma_addr = hba->utrdl_dma_addr +
 		i * sizeof(struct utp_transfer_req_desc);
-	lrb->ucd_req_ptr = (struct utp_upiu_req *)(cmd_descp + i);
+	lrb->ucd_req_ptr = (struct utp_upiu_req *)cmd_descp;
 	lrb->ucd_req_dma_addr = cmd_desc_element_addr;
-	lrb->ucd_rsp_ptr = (struct utp_upiu_rsp *)cmd_descp[i].response_upiu;
+	lrb->ucd_rsp_ptr = (struct utp_upiu_rsp *)cmd_descp->response_upiu;
 	lrb->ucd_rsp_dma_addr = cmd_desc_element_addr + response_offset;
-	lrb->ucd_prdt_ptr = (struct ufshcd_sg_entry *)cmd_descp[i].prd_table;
+	lrb->ucd_prdt_ptr = (struct ufshcd_sg_entry *)cmd_descp->prd_table;
 	lrb->ucd_prdt_dma_addr = cmd_desc_element_addr + prdt_offset;
 }
 
@@ -2694,6 +2757,9 @@
 	struct ufshcd_lrb *lrbp;
 	int err = 0;
 
+	trace_android_vh_ufs_mcq_map_tag(hba,
+				(scsi_cmd_to_rq(cmd)->mq_hctx->queue_num), &tag);
+
 	WARN_ONCE(tag < 0, "Invalid tag %d\n", tag);
 
 	if (!down_read_trylock(&hba->clk_scaling_lock))
@@ -2755,8 +2821,18 @@
 	lrbp->lun = ufshcd_scsi_to_upiu_lun(cmd->device->lun);
 	lrbp->intr_cmd = !ufshcd_is_intr_aggr_allowed(hba) ? true : false;
 
+	trace_android_vh_ufs_mcq_set_sqid(hba, scsi_cmd_to_rq(cmd)->mq_hctx->queue_num, lrbp);
+
 	ufshcd_prepare_lrbp_crypto(scsi_cmd_to_rq(cmd), lrbp);
 
+	trace_android_vh_ufs_prepare_command(hba, scsi_cmd_to_rq(cmd), lrbp,
+					     &err);
+	if (err) {
+		lrbp->cmd = NULL;
+		ufshcd_release(hba);
+		goto out;
+	}
+
 	lrbp->req_abort_skip = false;
 
 	ufshpb_prep(hba, lrbp);
@@ -2810,6 +2886,11 @@
 	unsigned long flags;
 	u32 mask = 1 << tag;
 
+	if (ufshcd_use_mcq_hooks(hba)) {
+		trace_android_vh_ufs_mcq_clear_cmd(hba, tag, &err);
+		return err;
+	}
+
 	/* clear outstanding transaction before retry */
 	spin_lock_irqsave(hba->host->host_lock, flags);
 	ufshcd_utrl_clear(hba, tag);
@@ -2886,6 +2967,7 @@
 	int err = 0;
 	unsigned long time_left;
 	unsigned long flags;
+	unsigned long *outstanding_reqs;
 
 	time_left = wait_for_completion_timeout(hba->dev_cmd.complete,
 			msecs_to_jiffies(max_timeout));
@@ -2912,7 +2994,10 @@
 		 * field in hba
 		 */
 		spin_lock_irqsave(&hba->outstanding_lock, flags);
-		__clear_bit(lrbp->task_tag, &hba->outstanding_reqs);
+		outstanding_reqs = &hba->outstanding_reqs;
+		trace_android_vh_ufs_mcq_get_outstanding_reqs(hba,
+								&outstanding_reqs, NULL);
+		__clear_bit(lrbp->task_tag, outstanding_reqs);
 		spin_unlock_irqrestore(&hba->outstanding_lock, flags);
 	}
 
@@ -2949,6 +3034,8 @@
 
 	hba->dev_cmd.complete = &wait;
 
+	trace_android_vh_ufs_mcq_set_sqid(hba, 0, lrbp);
+
 	ufshcd_add_query_upiu_trace(hba, UFS_QUERY_SEND, lrbp->ucd_req_ptr);
 
 	ufshcd_send_command(hba, tag);
@@ -2985,7 +3072,7 @@
 	(*request)->upiu_req.selector = selector;
 }
 
-static int ufshcd_query_flag_retry(struct ufs_hba *hba,
+int ufshcd_query_flag_retry(struct ufs_hba *hba,
 	enum query_opcode opcode, enum flag_idn idn, u8 index, bool *flag_res)
 {
 	int ret;
@@ -3007,6 +3094,7 @@
 			__func__, opcode, idn, ret, retries);
 	return ret;
 }
+EXPORT_SYMBOL_GPL(ufshcd_query_flag_retry);
 
 /**
  * ufshcd_query_flag() - API function for sending flag query requests
@@ -3075,6 +3163,7 @@
 	ufshcd_release(hba);
 	return err;
 }
+EXPORT_SYMBOL_GPL(ufshcd_query_flag);
 
 /**
  * ufshcd_query_attr - API function for sending attribute requests
@@ -3138,6 +3227,7 @@
 	ufshcd_release(hba);
 	return err;
 }
+EXPORT_SYMBOL_GPL(ufshcd_query_attr);
 
 /**
  * ufshcd_query_attr_retry() - API function for sending query
@@ -3175,6 +3265,7 @@
 			__func__, idn, ret, QUERY_REQ_RETRIES);
 	return ret;
 }
+EXPORT_SYMBOL_GPL(ufshcd_query_attr_retry);
 
 static int __ufshcd_query_descriptor(struct ufs_hba *hba,
 			enum query_opcode opcode, enum desc_idn idn, u8 index,
@@ -3270,6 +3361,7 @@
 
 	return err;
 }
+EXPORT_SYMBOL_GPL(ufshcd_query_descriptor_retry);
 
 /**
  * ufshcd_map_desc_id_to_length - map descriptor IDN to its length
@@ -3388,6 +3480,7 @@
 		kfree(desc_buf);
 	return ret;
 }
+EXPORT_SYMBOL_GPL(ufshcd_read_desc_param);
 
 /**
  * struct uc_string_id - unicode string
@@ -3559,9 +3652,12 @@
 static int ufshcd_memory_alloc(struct ufs_hba *hba)
 {
 	size_t utmrdl_size, utrdl_size, ucdl_size;
+	int pool_size = hba->nutrs;
+
+	trace_android_vh_ufs_mcq_max_tag(hba, &pool_size);
 
 	/* Allocate memory for UTP command descriptors */
-	ucdl_size = (sizeof(struct utp_transfer_cmd_desc) * hba->nutrs);
+	ucdl_size = (sizeof_utp_transfer_cmd_desc(hba) * pool_size);
 	hba->ucdl_base_addr = dmam_alloc_coherent(hba->dev,
 						  ucdl_size,
 						  &hba->ucdl_dma_addr,
@@ -3584,7 +3680,7 @@
 	 * Allocate memory for UTP Transfer descriptors
 	 * UFSHCI requires 1024 byte alignment of UTRD
 	 */
-	utrdl_size = (sizeof(struct utp_transfer_req_desc) * hba->nutrs);
+	utrdl_size = (sizeof(struct utp_transfer_req_desc) * pool_size);
 	hba->utrdl_base_addr = dmam_alloc_coherent(hba->dev,
 						   utrdl_size,
 						   &hba->utrdl_dma_addr,
@@ -3614,7 +3710,7 @@
 
 	/* Allocate memory for local reference block */
 	hba->lrb = devm_kcalloc(hba->dev,
-				hba->nutrs, sizeof(struct ufshcd_lrb),
+				pool_size, sizeof(struct ufshcd_lrb),
 				GFP_KERNEL);
 	if (!hba->lrb) {
 		dev_err(hba->dev, "LRB Memory allocation failed\n");
@@ -3647,6 +3743,9 @@
 	u16 prdt_offset;
 	int cmd_desc_size;
 	int i;
+	int pool_size = hba->nutrs;
+
+	trace_android_vh_ufs_mcq_max_tag(hba, &pool_size);
 
 	utrdlp = hba->utrdl_base_addr;
 
@@ -3655,10 +3754,10 @@
 	prdt_offset =
 		offsetof(struct utp_transfer_cmd_desc, prd_table);
 
-	cmd_desc_size = sizeof(struct utp_transfer_cmd_desc);
+	cmd_desc_size = sizeof_utp_transfer_cmd_desc(hba);
 	cmd_desc_dma_addr = hba->ucdl_dma_addr;
 
-	for (i = 0; i < hba->nutrs; i++) {
+	for (i = 0; i < pool_size; i++) {
 		/* Configure UTRD with command descriptor base address */
 		cmd_desc_element_addr =
 				(cmd_desc_dma_addr + (cmd_desc_size * i));
@@ -3742,7 +3841,7 @@
 {
 	int ret;
 
-	if (agreed_gear != UFS_HS_G4)
+	if (agreed_gear < UFS_HS_G4)
 		adapt_val = PA_NO_ADAPT;
 
 	ret = ufshcd_dme_set(hba,
@@ -4031,7 +4130,7 @@
  *
  * Returns 0 on success, non-zero value on failure
  */
-static int ufshcd_uic_change_pwr_mode(struct ufs_hba *hba, u8 mode)
+int ufshcd_uic_change_pwr_mode(struct ufs_hba *hba, u8 mode)
 {
 	struct uic_command uic_cmd = {0};
 	int ret;
@@ -4056,6 +4155,7 @@
 out:
 	return ret;
 }
+EXPORT_SYMBOL_GPL(ufshcd_uic_change_pwr_mode);
 
 int ufshcd_link_recovery(struct ufs_hba *hba)
 {
@@ -4086,7 +4186,7 @@
 }
 EXPORT_SYMBOL_GPL(ufshcd_link_recovery);
 
-static int ufshcd_uic_hibern8_enter(struct ufs_hba *hba)
+int ufshcd_uic_hibern8_enter(struct ufs_hba *hba)
 {
 	int ret;
 	struct uic_command uic_cmd = {0};
@@ -4108,6 +4208,7 @@
 
 	return ret;
 }
+EXPORT_SYMBOL_GPL(ufshcd_uic_hibern8_enter);
 
 int ufshcd_uic_hibern8_exit(struct ufs_hba *hba)
 {
@@ -4392,7 +4493,7 @@
 					QUERY_FLAG_IDN_FDEVICEINIT, 0, &flag_res);
 		if (!flag_res)
 			break;
-		usleep_range(5000, 10000);
+		usleep_range(500, 1000);
 	} while (ktime_before(ktime_get(), timeout));
 
 	if (err) {
@@ -4426,6 +4527,11 @@
 	int err = 0;
 	u32 reg;
 
+	if (ufshcd_use_mcq_hooks(hba)) {
+		trace_android_vh_ufs_mcq_make_hba_operational(hba, &err);
+		return err;
+	}
+
 	/* Enable required interrupts */
 	ufshcd_enable_intr(hba, UFSHCD_ENABLE_INTRS);
 
@@ -4995,6 +5101,8 @@
 
 	ufshcd_crypto_setup_rq_keyslot_manager(hba, q);
 
+	trace_android_vh_ufs_update_sdev(sdev);
+
 	return 0;
 }
 
@@ -5079,8 +5187,7 @@
  *
  * Returns result of the command to notify SCSI midlayer
  */
-static inline int
-ufshcd_transfer_rsp_status(struct ufs_hba *hba, struct ufshcd_lrb *lrbp)
+int ufshcd_transfer_rsp_status(struct ufs_hba *hba, struct ufshcd_lrb *lrbp)
 {
 	int result = 0;
 	int scsi_status;
@@ -5179,6 +5286,7 @@
 		ufshcd_print_trs(hba, 1 << lrbp->task_tag, true);
 	return result;
 }
+EXPORT_SYMBOL_GPL(ufshcd_transfer_rsp_status);
 
 static bool ufshcd_is_auto_hibern8_error(struct ufs_hba *hba,
 					 u32 intr_mask)
@@ -5260,6 +5368,7 @@
 		lrbp->compl_time_stamp = ktime_get();
 		cmd = lrbp->cmd;
 		if (cmd) {
+			trace_android_vh_ufs_compl_command(hba, lrbp);
 			if (unlikely(ufshcd_should_inform_monitor(hba, lrbp)))
 				ufshcd_update_monitor(hba, lrbp);
 			ufshcd_add_command_trace(hba, index, UFS_CMD_COMP);
@@ -5267,6 +5376,7 @@
 				ufshcd_transfer_rsp_status(hba, lrbp);
 			scsi_dma_unmap(cmd);
 			cmd->result = result;
+			ufshcd_crypto_clear_prdt(hba, lrbp);
 			/* Mark completed command as NULL in LRB */
 			lrbp->cmd = NULL;
 			/* Do not touch lrbp after scsi done */
@@ -5276,6 +5386,7 @@
 		} else if (lrbp->command_type == UTP_CMD_TYPE_DEV_MANAGE ||
 			lrbp->command_type == UTP_CMD_TYPE_UFS_STORAGE) {
 			if (hba->dev_cmd.complete) {
+				trace_android_vh_ufs_compl_command(hba, lrbp);
 				ufshcd_add_command_trace(hba, index,
 							 UFS_DEV_COMP);
 				complete(hba->dev_cmd.complete);
@@ -5302,6 +5413,9 @@
 	unsigned long completed_reqs, flags;
 	u32 tr_doorbell;
 
+	if (ufshcd_use_mcq_hooks(hba))
+		return IRQ_HANDLED;
+
 	/* Resetting interrupt aggregation counters first and reading the
 	 * DOOR_BELL afterward allows us to handle all the completed requests.
 	 * In order to prevent other interrupts starvation the DB is read once
@@ -5534,7 +5648,7 @@
  * to know whether auto bkops is enabled or disabled after this function
  * returns control to it.
  */
-static int ufshcd_bkops_ctrl(struct ufs_hba *hba,
+int ufshcd_bkops_ctrl(struct ufs_hba *hba,
 			     enum bkops_status status)
 {
 	int err;
@@ -5559,6 +5673,7 @@
 out:
 	return err;
 }
+EXPORT_SYMBOL_GPL(ufshcd_bkops_ctrl);
 
 /**
  * ufshcd_urgent_bkops - handle urgent bkops exception event
@@ -5918,11 +6033,11 @@
 
 static void ufshcd_clk_scaling_allow(struct ufs_hba *hba, bool allow)
 {
-	mutex_lock(&hba->wb_mutex);
+	mutex_lock(&wb_mutex);
 	down_write(&hba->clk_scaling_lock);
 	hba->clk_scaling.is_allowed = allow;
 	up_write(&hba->clk_scaling_lock);
-	mutex_unlock(&hba->wb_mutex);
+	mutex_unlock(&wb_mutex);
 }
 
 static void ufshcd_clk_scaling_suspend(struct ufs_hba *hba, bool suspend)
@@ -6060,6 +6175,8 @@
 	int err = 0, pmc_err;
 	int tag;
 	bool needs_reset = false, needs_restore = false;
+	unsigned long *outstanding_reqs;
+	int nr_tag;
 
 	hba = container_of(work, struct ufs_hba, eh_work);
 
@@ -6108,7 +6225,11 @@
 		ufshcd_print_pwr_info(hba);
 		ufshcd_print_evt_hist(hba);
 		ufshcd_print_tmrs(hba, hba->outstanding_tasks);
-		ufshcd_print_trs(hba, hba->outstanding_reqs, pr_prdt);
+
+		if (ufshcd_use_mcq_hooks(hba))
+			trace_android_vh_ufs_mcq_print_trs(hba, pr_prdt);
+		else
+			ufshcd_print_trs(hba, hba->outstanding_reqs, pr_prdt);
 		spin_lock_irqsave(hba->host->host_lock, flags);
 	}
 
@@ -6145,8 +6266,12 @@
 	hba->silence_err_logs = true;
 	/* release lock as clear command might sleep */
 	spin_unlock_irqrestore(hba->host->host_lock, flags);
+	outstanding_reqs = &hba->outstanding_reqs;
+	nr_tag = hba->nutrs;
+	trace_android_vh_ufs_mcq_get_outstanding_reqs(hba,
+								&outstanding_reqs, &nr_tag);
 	/* Clear pending transfer requests */
-	for_each_set_bit(tag, &hba->outstanding_reqs, hba->nutrs) {
+	for_each_set_bit(tag, outstanding_reqs, nr_tag) {
 		if (ufshcd_try_to_abort_task(hba, tag)) {
 			err_xfer = true;
 			goto lock_skip_pending_xfer_clear;
@@ -6200,6 +6325,7 @@
 	if (needs_reset) {
 		hba->force_reset = false;
 		spin_unlock_irqrestore(hba->host->host_lock, flags);
+		trace_android_vh_ufs_mcq_retry_complete(hba);
 		err = ufshcd_reset_and_restore(hba);
 		if (err)
 			dev_err(hba->dev, "%s: reset and restore failed with err %d\n",
@@ -6357,6 +6483,8 @@
 		queue_eh_work = true;
 	}
 
+	trace_android_vh_ufs_check_int_errors(hba, queue_eh_work);
+
 	if (queue_eh_work) {
 		/*
 		 * update the transfer error masks to sticky bits, let's do this
@@ -6446,6 +6574,8 @@
 	if (intr_status & UTP_TRANSFER_REQ_COMPL)
 		retval |= ufshcd_transfer_req_compl(hba, /*retry_requests=*/false);
 
+	trace_android_vh_ufs_mcq_handler(hba, intr_status, &retval);
+
 	return retval;
 }
 
@@ -6464,6 +6594,7 @@
 	irqreturn_t retval = IRQ_NONE;
 	struct ufs_hba *hba = __hba;
 	int retries = hba->nutrs;
+	bool has_outstanding;
 
 	intr_status = ufshcd_readl(hba, REG_INTERRUPT_STATUS);
 	hba->ufs_stats.last_intr_status = intr_status;
@@ -6485,9 +6616,12 @@
 		intr_status = ufshcd_readl(hba, REG_INTERRUPT_STATUS);
 	}
 
+	has_outstanding = hba->outstanding_reqs != 0;
+	trace_android_vh_ufs_mcq_has_oustanding_reqs(hba, &has_outstanding);
+
 	if (enabled_intr_status && retval == IRQ_NONE &&
 	    (!(enabled_intr_status & UTP_TRANSFER_REQ_COMPL) ||
-	     hba->outstanding_reqs) && !ufshcd_eh_in_progress(hba)) {
+	     has_outstanding) && !ufshcd_eh_in_progress(hba)) {
 		dev_err(hba->dev, "%s: Unhandled interrupt 0x%08x (0x%08x, 0x%08x)\n",
 					__func__,
 					intr_status,
@@ -6678,6 +6812,9 @@
 	lrbp->task_tag = tag;
 	lrbp->lun = 0;
 	lrbp->intr_cmd = true;
+
+	trace_android_vh_ufs_mcq_set_sqid(hba, 0, lrbp);
+
 	ufshcd_prepare_lrbp_crypto(NULL, lrbp);
 	hba->dev_cmd.type = cmd_type;
 
@@ -6838,13 +6975,17 @@
 		goto out;
 	}
 
-	/* clear the commands that were pending for corresponding LUN */
-	for_each_set_bit(pos, &hba->outstanding_reqs, hba->nutrs) {
-		if (hba->lrb[pos].lun == lun) {
-			err = ufshcd_clear_cmd(hba, pos);
-			if (err)
-				break;
-			__ufshcd_transfer_req_compl(hba, 1U << pos, false);
+	if (ufshcd_use_mcq_hooks(hba)) {
+		trace_android_vh_ufs_mcq_clear_pending(hba, &err);
+	} else {
+		/* clear the commands that were pending for corresponding LUN */
+		for_each_set_bit(pos, &hba->outstanding_reqs, hba->nutrs) {
+			if (hba->lrb[pos].lun == lun) {
+				err = ufshcd_clear_cmd(hba, pos);
+				if (err)
+					break;
+				__ufshcd_transfer_req_compl(hba, 1U << pos, false);
+			}
 		}
 	}
 
@@ -6891,6 +7032,7 @@
 	int poll_cnt;
 	u8 resp = 0xF;
 	u32 reg;
+	unsigned long *outstanding_reqs;
 
 	for (poll_cnt = 100; poll_cnt; poll_cnt--) {
 		err = ufshcd_issue_tm_cmd(hba, lrbp->lun, lrbp->task_tag,
@@ -6907,12 +7049,24 @@
 			 */
 			dev_err(hba->dev, "%s: cmd at tag %d not pending in the device.\n",
 				__func__, tag);
-			reg = ufshcd_readl(hba, REG_UTP_TRANSFER_REQ_DOOR_BELL);
-			if (reg & (1 << tag)) {
-				/* sleep for max. 200us to stabilize */
-				usleep_range(100, 200);
-				continue;
+
+			if (ufshcd_use_mcq_hooks(hba)) {
+				trace_android_vh_ufs_mcq_get_outstanding_reqs(hba,
+							&outstanding_reqs, NULL);
+				if (test_bit(tag, outstanding_reqs)) {
+					/* sleep for max. 200us to stabilize */
+					usleep_range(100, 200);
+					continue;
+				}
+			} else {
+				reg = ufshcd_readl(hba, REG_UTP_TRANSFER_REQ_DOOR_BELL);
+				if (reg & (1 << tag)) {
+					/* sleep for max. 200us to stabilize */
+					usleep_range(100, 200);
+					continue;
+				}
 			}
+
 			/* command completed already */
 			dev_err(hba->dev, "%s: cmd at tag %d successfully cleared from DB.\n",
 				__func__, tag);
@@ -6968,8 +7122,16 @@
 	int err = FAILED;
 	u32 reg;
 
+	trace_android_vh_ufs_mcq_map_tag(hba,
+				(scsi_cmd_to_rq(cmd)->mq_hctx->queue_num), &tag);
+
 	WARN_ONCE(tag < 0, "Invalid tag %d\n", tag);
 
+	if (ufshcd_use_mcq_hooks(hba)) {
+		trace_android_vh_ufs_mcq_abort(cmd, &err);
+		return err;
+	}
+
 	ufshcd_hold(hba, false);
 	reg = ufshcd_readl(hba, REG_UTP_TRANSFER_REQ_DOOR_BELL);
 	/* If command is already aborted/completed, return FAILED. */
@@ -7077,7 +7239,7 @@
 	hba->silence_err_logs = false;
 
 	/* scale up clocks to max frequency before full reinitialization */
-	ufshcd_set_clk_freq(hba, true);
+	ufshcd_scale_clks(hba, true);
 
 	err = ufshcd_hba_enable(hba);
 
@@ -7443,6 +7605,29 @@
 	hba->caps &= ~UFSHCD_CAP_WB_EN;
 }
 
+static void ufshcd_temp_notif_probe(struct ufs_hba *hba, u8 *desc_buf)
+{
+	struct ufs_dev_info *dev_info = &hba->dev_info;
+	u32 ext_ufs_feature;
+	u8 mask = 0;
+
+	if (!(hba->caps & UFSHCD_CAP_TEMP_NOTIF) || dev_info->wspecversion < 0x300)
+		return;
+
+	ext_ufs_feature = get_unaligned_be32(desc_buf + DEVICE_DESC_PARAM_EXT_UFS_FEATURE_SUP);
+
+	if (ext_ufs_feature & UFS_DEV_LOW_TEMP_NOTIF)
+		mask |= MASK_EE_TOO_LOW_TEMP;
+
+	if (ext_ufs_feature & UFS_DEV_HIGH_TEMP_NOTIF)
+		mask |= MASK_EE_TOO_HIGH_TEMP;
+
+	if (mask) {
+		ufshcd_enable_ee(hba, mask);
+		ufs_hwmon_probe(hba, mask);
+	}
+}
+
 void ufshcd_fixup_dev_quirks(struct ufs_hba *hba, struct ufs_dev_fix *fixups)
 {
 	struct ufs_dev_fix *f;
@@ -7538,6 +7723,8 @@
 
 	ufshcd_wb_probe(hba, desc_buf);
 
+	ufshcd_temp_notif_probe(hba, desc_buf);
+
 	/*
 	 * ufshcd_read_string_desc returns size of the string
 	 * reset the error value
@@ -7690,7 +7877,7 @@
 	peer_pa_tactivate_us = peer_pa_tactivate *
 			     gran_to_us_table[peer_granularity - 1];
 
-	if (pa_tactivate_us > peer_pa_tactivate_us) {
+	if (pa_tactivate_us >= peer_pa_tactivate_us) {
 		u32 new_peer_pa_tactivate;
 
 		new_peer_pa_tactivate = pa_tactivate_us /
@@ -7925,6 +8112,9 @@
 	if (ret)
 		goto out;
 
+	if (hba->quirks & UFSHCD_QUIRK_SKIP_PH_CONFIGURATION)
+		goto out;
+
 	/* Debug counters initialization */
 	ufshcd_clear_dbg_ufs_stats(hba);
 
@@ -7989,6 +8179,8 @@
 	ufshcd_auto_hibern8_enable(hba);
 
 	ufshpb_reset(hba);
+
+	trace_android_rvh_ufs_complete_init(hba);
 out:
 	spin_lock_irqsave(hba->host->host_lock, flags);
 	if (ret)
@@ -8223,7 +8415,7 @@
 	return ufshcd_toggle_vreg(hba->dev, info->vdd_hba, on);
 }
 
-static int ufshcd_get_vreg(struct device *dev, struct ufs_vreg *vreg)
+int ufshcd_get_vreg(struct device *dev, struct ufs_vreg *vreg)
 {
 	int ret = 0;
 
@@ -8239,6 +8431,7 @@
 out:
 	return ret;
 }
+EXPORT_SYMBOL_GPL(ufshcd_get_vreg);
 
 static int ufshcd_init_vreg(struct ufs_hba *hba)
 {
@@ -8528,9 +8721,11 @@
 	for (retries = 3; retries > 0; --retries) {
 		ret = scsi_execute(sdp, cmd, DMA_NONE, NULL, 0, NULL, &sshdr,
 				   HZ, 0, 0, RQF_PM, NULL);
-		if (!scsi_status_is_check_condition(ret) ||
-				!scsi_sense_valid(&sshdr) ||
-				sshdr.sense_key != UNIT_ATTENTION)
+		/*
+		 * scsi_execute() only returns a negative value if the request
+		 * queue is dying.
+		 */
+		if (ret <= 0)
 			break;
 	}
 	if (ret) {
@@ -8785,6 +8980,10 @@
 
 	flush_work(&hba->eeh_work);
 
+	ret = ufshcd_vops_suspend(hba, pm_op, PRE_CHANGE);
+	if (ret)
+		goto enable_scaling;
+
 	if (req_dev_pwr_mode != hba->curr_dev_pwr_mode) {
 		if (pm_op != UFS_RUNTIME_PM)
 			/* ensure that bkops is disabled */
@@ -8830,7 +9029,7 @@
 	 * vendor specific host controller register space call them before the
 	 * host clocks are ON.
 	 */
-	ret = ufshcd_vops_suspend(hba, pm_op);
+	ret = ufshcd_vops_suspend(hba, pm_op, POST_CHANGE);
 	if (ret)
 		goto set_link_active;
 	goto out;
@@ -8958,7 +9157,8 @@
 set_old_link_state:
 	ufshcd_link_state_transition(hba, old_link_state, 0);
 vendor_suspend:
-	ufshcd_vops_suspend(hba, pm_op);
+	ufshcd_vops_suspend(hba, pm_op, PRE_CHANGE);
+	ufshcd_vops_suspend(hba, pm_op, POST_CHANGE);
 out:
 	if (ret)
 		ufshcd_update_evt_hist(hba, UFS_EVT_WL_RES_ERR, (u32)ret);
@@ -9299,6 +9499,7 @@
 {
 	if (hba->sdev_ufs_device)
 		ufshcd_rpm_get_sync(hba);
+	ufs_hwmon_remove(hba);
 	ufs_bsg_remove(hba);
 	ufshpb_remove(hba);
 	ufs_sysfs_remove_nodes(hba->dev);
@@ -9313,6 +9514,56 @@
 }
 EXPORT_SYMBOL_GPL(ufshcd_remove);
 
+#ifdef CONFIG_PM_SLEEP
+int ufshcd_system_freeze(struct device *dev)
+{
+
+	return ufshcd_system_suspend(dev);
+
+}
+EXPORT_SYMBOL_GPL(ufshcd_system_freeze);
+
+int ufshcd_system_restore(struct device *dev)
+{
+
+	struct ufs_hba *hba = dev_get_drvdata(dev);
+	int ret;
+
+	ret = ufshcd_system_resume(dev);
+	if (ret)
+		return ret;
+
+	/* Configure UTRL and UTMRL base address registers */
+	ufshcd_writel(hba, lower_32_bits(hba->utrdl_dma_addr),
+			REG_UTP_TRANSFER_REQ_LIST_BASE_L);
+	ufshcd_writel(hba, upper_32_bits(hba->utrdl_dma_addr),
+			REG_UTP_TRANSFER_REQ_LIST_BASE_H);
+	ufshcd_writel(hba, lower_32_bits(hba->utmrdl_dma_addr),
+			REG_UTP_TASK_REQ_LIST_BASE_L);
+	ufshcd_writel(hba, upper_32_bits(hba->utmrdl_dma_addr),
+			REG_UTP_TASK_REQ_LIST_BASE_H);
+	/*
+	 * Make sure that UTRL and UTMRL base address registers
+	 * are updated with the latest queue addresses. Only after
+	 * updating these addresses, we can queue the new commands.
+	 */
+	mb();
+
+	/* Resuming from hibernate, assume that link was OFF */
+	ufshcd_set_link_off(hba);
+
+	return 0;
+
+}
+EXPORT_SYMBOL_GPL(ufshcd_system_restore);
+
+int ufshcd_system_thaw(struct device *dev)
+{
+	return ufshcd_system_resume(dev);
+}
+EXPORT_SYMBOL_GPL(ufshcd_system_thaw);
+#endif /* CONFIG_PM_SLEEP  */
+
 /**
  * ufshcd_dealloc_host - deallocate Host Bus Adapter (HBA)
  * @hba: pointer to Host Bus Adapter (HBA)
@@ -9370,6 +9621,7 @@
 	hba->dev = dev;
 	hba->dev_ref_clk_freq = REF_CLK_FREQ_INVAL;
 	hba->nop_out_timeout = NOP_OUT_TIMEOUT;
+	hba->sg_entry_size = sizeof(struct ufshcd_sg_entry);
 	INIT_LIST_HEAD(&hba->clk_list_head);
 	spin_lock_init(&hba->outstanding_lock);
 
@@ -9465,6 +9717,12 @@
 
 	hba->max_pwr_info.is_valid = false;
 
+	if (ufshcd_use_mcq_hooks(hba)) {
+		trace_android_vh_ufs_mcq_config(hba, &err);
+		if (err)
+			goto out_disable;
+	}
+
 	/* Initialize work queues */
 	snprintf(eh_wq_name, sizeof(eh_wq_name), "ufs_eh_wq_%d",
 		 hba->host->host_no);
@@ -9489,7 +9747,6 @@
 	/* Initialize mutex for exception event control */
 	mutex_init(&hba->ee_ctrl_mutex);
 
-	mutex_init(&hba->wb_mutex);
 	init_rwsem(&hba->clk_scaling_lock);
 
 	ufshcd_init_clk_gating(hba);
@@ -9599,7 +9856,7 @@
 	ufshcd_set_ufs_dev_active(hba);
 
 	async_schedule(ufshcd_async_scan, hba);
-	ufs_sysfs_add_nodes(hba->dev);
+	ufs_sysfs_add_nodes(hba);
 
 	device_enable_async_suspend(dev);
 	return 0;
diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h
index c8513cc..bbdb212 100644
--- a/drivers/scsi/ufs/ufshcd.h
+++ b/drivers/scsi/ufs/ufshcd.h
@@ -43,6 +43,7 @@
 #include <scsi/scsi_tcq.h>
 #include <scsi/scsi_dbg.h>
 #include <scsi/scsi_eh.h>
+#include <linux/android_kabi.h>
 
 #include "ufs.h"
 #include "ufs_quirks.h"
@@ -222,6 +223,10 @@
 #endif
 
 	bool req_abort_skip;
+
+	ANDROID_VENDOR_DATA(1);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -344,7 +349,8 @@
 					enum ufs_notify_change_status);
 	int	(*apply_dev_quirks)(struct ufs_hba *hba);
 	void	(*fixup_dev_quirks)(struct ufs_hba *hba);
-	int     (*suspend)(struct ufs_hba *, enum ufs_pm_op);
+	int     (*suspend)(struct ufs_hba *, enum ufs_pm_op,
+					enum ufs_notify_change_status);
 	int     (*resume)(struct ufs_hba *, enum ufs_pm_op);
 	void	(*dbg_register_dump)(struct ufs_hba *hba);
 	int	(*phy_initialization)(struct ufs_hba *);
@@ -356,6 +362,11 @@
 			       const union ufs_crypto_cfg_entry *cfg, int slot);
 	void	(*event_notify)(struct ufs_hba *hba,
 				enum ufs_event_type evt, void *data);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 /* clock gating state  */
@@ -395,6 +406,8 @@
 	bool is_initialized;
 	int active_reqs;
 	struct workqueue_struct *clk_gating_workq;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct ufs_saved_pwr_info {
@@ -441,6 +454,8 @@
 	bool is_initialized;
 	bool is_busy_started;
 	bool is_suspended;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 #define UFS_EVENT_HIST_LENGTH 8
@@ -588,6 +603,41 @@
 	 * This quirk allows only sg entries aligned with page size.
 	 */
 	UFSHCD_QUIRK_ALIGN_SG_WITH_PAGE_SIZE		= 1 << 14,
+
+	/*
+	 * This quirk needs to be enabled if the host controller does not
+	 * support UIC command
+	 */
+	UFSHCD_QUIRK_BROKEN_UIC_CMD			= 1 << 15,
+
+	/*
+	 * This quirk needs to be enabled if the host controller cannot
+	 * support physical host configuration.
+	 */
+	UFSHCD_QUIRK_SKIP_PH_CONFIGURATION		= 1 << 16,
+
+	/*
+	 * This quirk needs to be enabled if the host controller supports inline
+	 * encryption, but it needs to initialize the crypto capabilities in a
+	 * nonstandard way and/or it needs to override blk_ksm_ll_ops.  If
+	 * enabled, the standard code won't initialize the blk_keyslot_manager;
+	 * ufs_hba_variant_ops::init() must do it instead.
+	 */
+	UFSHCD_QUIRK_CUSTOM_KEYSLOT_MANAGER		= 1 << 20,
+
+	/*
+	 * This quirk needs to be enabled if the host controller supports inline
+	 * encryption, but the CRYPTO_GENERAL_ENABLE bit is not implemented and
+	 * breaks the HCE sequence if used.
+	 */
+	UFSHCD_QUIRK_BROKEN_CRYPTO_ENABLE		= 1 << 21,
+
+	/*
+	 * This quirk needs to be enabled if the host controller requires that
+	 * the PRDT be cleared after each encrypted request because encryption
+	 * keys were stored in it.
+	 */
+	UFSHCD_QUIRK_KEYS_IN_PRDT			= 1 << 22,
 };
 
 enum ufshcd_caps {
@@ -653,6 +703,18 @@
 	 * in order to exit DeepSleep state.
 	 */
 	UFSHCD_CAP_DEEPSLEEP				= 1 << 10,
+
+	/*
+	 * This capability allows the host controller driver to use temperature
+	 * notification if it is supported by the UFS device.
+	 */
+	UFSHCD_CAP_TEMP_NOTIF				= 1 << 11,
+
+	/*
+	 * Enable WriteBooster when scaling up the clock and disable
+	 * WriteBooster when scaling the clock down.
+	 */
+	UFSHCD_CAP_WB_WITH_CLK_SCALING			= 1 << 12,
 };
 
 struct ufs_hba_variant_params {
@@ -729,6 +791,7 @@
  * @ufs_version: UFS Version to which controller complies
  * @vops: pointer to variant specific operations
  * @priv: pointer to variant specific private data
+ * @sg_entry_size: size of struct ufshcd_sg_entry (may include variant fields)
  * @irq: Irq number of the controller
  * @active_uic_cmd: handle of active UIC command
  * @uic_cmd_mutex: mutex for UIC command
@@ -763,7 +826,6 @@
  * @urgent_bkops_lvl: keeps track of urgent bkops level for device
  * @is_urgent_bkops_lvl_checked: keeps track if the urgent bkops level for
  *  device is known or not.
- * @wb_mutex: used to serialize devfreq and sysfs write booster toggling
  * @scsi_block_reqs_cnt: reference counting for scsi block requests
  * @crypto_capabilities: Content of crypto capabilities register (0x100)
  * @crypto_cap_array: Array of crypto capabilities
@@ -793,6 +855,10 @@
 	struct scsi_device *sdev_ufs_device;
 	struct scsi_device *sdev_rpmb;
 
+#ifdef CONFIG_SCSI_UFS_HWMON
+	struct device *hwmon_device;
+#endif
+
 	enum ufs_dev_pwr_mode curr_dev_pwr_mode;
 	enum uic_link_state uic_link_state;
 	/* Desired UFS power management level during runtime PM */
@@ -820,6 +886,7 @@
 	const struct ufs_hba_variant_ops *vops;
 	struct ufs_hba_variant_params *vps;
 	void *priv;
+	size_t sg_entry_size;
 	unsigned int irq;
 	bool is_irq_enabled;
 	enum ufs_ref_clk_freq dev_ref_clk_freq;
@@ -893,7 +960,6 @@
 	enum bkops_status urgent_bkops_lvl;
 	bool is_urgent_bkops_lvl_checked;
 
-	struct mutex wb_mutex;
 	struct rw_semaphore clk_scaling_lock;
 	unsigned char desc_size[QUERY_DESC_IDN_MAX];
 	atomic_t scsi_block_reqs_cnt;
@@ -921,6 +987,14 @@
 #endif
 	u32 luns_avail;
 	bool complete_put;
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_OEM_DATA_ARRAY(1, 2);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 /* Returns true if clocks can be gated. Otherwise false */
@@ -978,6 +1052,11 @@
 	return !hba->shutting_down;
 }
 
+static inline bool ufshcd_enable_wb_if_scaling_up(struct ufs_hba *hba)
+{
+	return hba->caps & UFSHCD_CAP_WB_WITH_CLK_SCALING;
+}
+
 #define ufshcd_writel(hba, val, reg)	\
 	writel((val), (hba)->mmio_base + (reg))
 #define ufshcd_readl(hba, reg)	\
@@ -1007,6 +1086,7 @@
 int ufshcd_link_recovery(struct ufs_hba *hba);
 int ufshcd_make_hba_operational(struct ufs_hba *hba);
 void ufshcd_remove(struct ufs_hba *);
+int ufshcd_uic_hibern8_enter(struct ufs_hba *hba);
 int ufshcd_uic_hibern8_exit(struct ufs_hba *hba);
 void ufshcd_delay_us(unsigned long us, unsigned long tolerance);
 int ufshcd_wait_for_register(struct ufs_hba *hba, u32 reg, u32 mask,
@@ -1055,6 +1135,14 @@
 	return 0;
 }
 
+#ifdef CONFIG_SCSI_UFS_HWMON
+void ufs_hwmon_probe(struct ufs_hba *hba, u8 mask);
+void ufs_hwmon_remove(struct ufs_hba *hba);
+#else
+static inline void ufs_hwmon_probe(struct ufs_hba *hba, u8 mask) {}
+static inline void ufs_hwmon_remove(struct ufs_hba *hba) {}
+#endif
+
 #ifdef CONFIG_PM
 extern int ufshcd_runtime_suspend(struct device *dev);
 extern int ufshcd_runtime_resume(struct device *dev);
@@ -1062,8 +1150,12 @@
 #ifdef CONFIG_PM_SLEEP
 extern int ufshcd_system_suspend(struct device *dev);
 extern int ufshcd_system_resume(struct device *dev);
+extern int ufshcd_system_freeze(struct device *dev);
+extern int ufshcd_system_thaw(struct device *dev);
+extern int ufshcd_system_restore(struct device *dev);
 #endif
 extern int ufshcd_shutdown(struct ufs_hba *hba);
+
 extern int ufshcd_dme_configure_adapt(struct ufs_hba *hba,
 				      int agreed_gear,
 				      int adapt_val);
@@ -1073,6 +1165,7 @@
 			       u32 *mib_val, u8 peer);
 extern int ufshcd_config_pwr_mode(struct ufs_hba *hba,
 			struct ufs_pa_layer_attr *desired_pwr_mode);
+extern int ufshcd_uic_change_pwr_mode(struct ufs_hba *hba, u8 mode);
 
 /* UIC command interfaces for DME primitives */
 #define DME_LOCAL	0
@@ -1150,8 +1243,14 @@
 			    u32 *attr_val);
 int ufshcd_query_attr(struct ufs_hba *hba, enum query_opcode opcode,
 		      enum attr_idn idn, u8 index, u8 selector, u32 *attr_val);
+int ufshcd_query_attr_retry(struct ufs_hba *hba,
+	enum query_opcode opcode, enum attr_idn idn, u8 index, u8 selector,
+	u32 *attr_val);
 int ufshcd_query_flag(struct ufs_hba *hba, enum query_opcode opcode,
 	enum flag_idn idn, u8 index, bool *flag_res);
+int ufshcd_query_flag_retry(struct ufs_hba *hba,
+	enum query_opcode opcode, enum flag_idn idn, u8 index, bool *flag_res);
+int ufshcd_bkops_ctrl(struct ufs_hba *hba, enum bkops_status status);
 
 void ufshcd_auto_hibern8_enable(struct ufs_hba *hba);
 void ufshcd_auto_hibern8_update(struct ufs_hba *hba, u32 ahit);
@@ -1168,6 +1267,7 @@
 				  int *desc_length);
 
 u32 ufshcd_get_local_unipro_ver(struct ufs_hba *hba);
+int ufshcd_get_vreg(struct device *dev, struct ufs_vreg *vreg);
 
 int ufshcd_send_uic_cmd(struct ufs_hba *hba, struct uic_command *uic_cmd);
 
@@ -1301,10 +1401,11 @@
 		hba->vops->fixup_dev_quirks(hba);
 }
 
-static inline int ufshcd_vops_suspend(struct ufs_hba *hba, enum ufs_pm_op op)
+static inline int ufshcd_vops_suspend(struct ufs_hba *hba, enum ufs_pm_op op,
+				enum ufs_notify_change_status status)
 {
 	if (hba->vops && hba->vops->suspend)
-		return hba->vops->suspend(hba, op);
+		return hba->vops->suspend(hba, op, status);
 
 	return 0;
 }
@@ -1393,4 +1494,10 @@
 	return pm_runtime_put(&hba->sdev_ufs_device->sdev_gendev);
 }
 
+int ufshcd_transfer_rsp_status(struct ufs_hba *hba, struct ufshcd_lrb *lrbp);
+void ufshcd_clk_scaling_start_busy(struct ufs_hba *hba);
+void ufshcd_clk_scaling_update_busy(struct ufs_hba *hba);
+void ufshcd_add_command_trace(struct ufs_hba *hba, unsigned int tag,
+				     enum ufs_trace_str_t str_t);
+
 #endif /* End of Header */
diff --git a/drivers/scsi/ufs/ufshci.h b/drivers/scsi/ufs/ufshci.h
index 8dbe986..b10ee9f 100644
--- a/drivers/scsi/ufs/ufshci.h
+++ b/drivers/scsi/ufs/ufshci.h
@@ -419,20 +419,28 @@
 	__le32    upper_addr;
 	__le32    reserved;
 	__le32    size;
+	/*
+	 * followed by variant-specific fields if
+	 * hba->sg_entry_size != sizeof(struct ufshcd_sg_entry)
+	 */
 };
 
 /**
  * struct utp_transfer_cmd_desc - UFS Command Descriptor structure
  * @command_upiu: Command UPIU Frame address
  * @response_upiu: Response UPIU Frame address
- * @prd_table: Physical Region Descriptor
+ * @prd_table: Physical Region Descriptor: an array of SG_ALL struct
+ *	ufshcd_sg_entry's.  Variant-specific fields may be present after each.
  */
 struct utp_transfer_cmd_desc {
 	u8 command_upiu[ALIGNED_UPIU_SIZE];
 	u8 response_upiu[ALIGNED_UPIU_SIZE];
-	struct ufshcd_sg_entry    prd_table[SG_ALL];
+	u8 prd_table[];
 };
 
+#define sizeof_utp_transfer_cmd_desc(hba)	\
+	(sizeof(struct utp_transfer_cmd_desc) + SG_ALL * (hba)->sg_entry_size)
+
 /**
  * struct request_desc_header - Descriptor Header common to both UTRD and UTMRD
  * @dword0: Descriptor Header DW0
diff --git a/drivers/scsi/ufs/unipro.h b/drivers/scsi/ufs/unipro.h
index 8e9e486..0d2131e1 100644
--- a/drivers/scsi/ufs/unipro.h
+++ b/drivers/scsi/ufs/unipro.h
@@ -231,6 +231,7 @@
 	UFS_HS_G2,		/* HS Gear 2 */
 	UFS_HS_G3,		/* HS Gear 3 */
 	UFS_HS_G4,		/* HS Gear 4 */
+	UFS_HS_G5,		/* HS Gear 5 */
 };
 
 enum ufs_unipro_ver {
diff --git a/drivers/soc/qcom/qcom-geni-se.c b/drivers/soc/qcom/qcom-geni-se.c
index 7d649d2..83fd6f4 100644
--- a/drivers/soc/qcom/qcom-geni-se.c
+++ b/drivers/soc/qcom/qcom-geni-se.c
@@ -1,6 +1,9 @@
 // SPDX-License-Identifier: GPL-2.0
 // Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
 
+/* Disable MMIO tracing to prevent excessive logging of unwanted MMIO traces */
+#define __DISABLE_TRACE_MMIO__
+
 #include <linux/acpi.h>
 #include <linux/clk.h>
 #include <linux/slab.h>
diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c
index 90e0bf8..bbb57b9 100644
--- a/drivers/soundwire/intel.c
+++ b/drivers/soundwire/intel.c
@@ -1065,8 +1065,8 @@
 	.prepare = intel_prepare,
 	.hw_free = intel_hw_free,
 	.shutdown = intel_shutdown,
-	.set_stream = intel_pcm_set_sdw_stream,
-	.get_stream = intel_get_sdw_stream,
+	.set_sdw_stream = intel_pcm_set_sdw_stream,
+	.get_sdw_stream = intel_get_sdw_stream,
 };
 
 static const struct snd_soc_dai_ops intel_pdm_dai_ops = {
@@ -1075,8 +1075,8 @@
 	.prepare = intel_prepare,
 	.hw_free = intel_hw_free,
 	.shutdown = intel_shutdown,
-	.set_stream = intel_pdm_set_sdw_stream,
-	.get_stream = intel_get_sdw_stream,
+	.set_sdw_stream = intel_pdm_set_sdw_stream,
+	.get_sdw_stream = intel_get_sdw_stream,
 };
 
 static const struct snd_soc_component_driver dai_component = {
diff --git a/drivers/soundwire/qcom.c b/drivers/soundwire/qcom.c
index e3b52d5..46928170 100644
--- a/drivers/soundwire/qcom.c
+++ b/drivers/soundwire/qcom.c
@@ -1033,8 +1033,8 @@
 	ctrl->sruntime[dai->id] = sruntime;
 
 	for_each_rtd_codec_dais(rtd, i, codec_dai) {
-		ret = snd_soc_dai_set_stream(codec_dai, sruntime,
-					     substream->stream);
+		ret = snd_soc_dai_set_sdw_stream(codec_dai, sruntime,
+						 substream->stream);
 		if (ret < 0 && ret != -ENOTSUPP) {
 			dev_err(dai->dev, "Failed to set sdw stream on %s\n",
 				codec_dai->name);
@@ -1060,8 +1060,8 @@
 	.hw_free = qcom_swrm_hw_free,
 	.startup = qcom_swrm_startup,
 	.shutdown = qcom_swrm_shutdown,
-	.set_stream = qcom_swrm_set_sdw_stream,
-	.get_stream = qcom_swrm_get_sdw_stream,
+	.set_sdw_stream = qcom_swrm_set_sdw_stream,
+	.get_sdw_stream = qcom_swrm_get_sdw_stream,
 };
 
 static const struct snd_soc_component_driver qcom_swrm_dai_component = {
diff --git a/drivers/soundwire/stream.c b/drivers/soundwire/stream.c
index 2a900aa..ebbe138 100644
--- a/drivers/soundwire/stream.c
+++ b/drivers/soundwire/stream.c
@@ -1880,7 +1880,7 @@
 
 	/* Set stream pointer on all DAIs */
 	for_each_rtd_dais(rtd, i, dai) {
-		ret = snd_soc_dai_set_stream(dai, sdw_stream, substream->stream);
+		ret = snd_soc_dai_set_sdw_stream(dai, sdw_stream, substream->stream);
 		if (ret < 0) {
 			dev_err(rtd->dev, "failed to set stream pointer on dai %s\n", dai->name);
 			break;
@@ -1951,7 +1951,7 @@
 	/* Find stream from first CPU DAI */
 	dai = asoc_rtd_to_cpu(rtd, 0);
 
-	sdw_stream = snd_soc_dai_get_stream(dai, substream->stream);
+	sdw_stream = snd_soc_dai_get_sdw_stream(dai, substream->stream);
 
 	if (IS_ERR(sdw_stream)) {
 		dev_err(rtd->dev, "no stream found for DAI %s\n", dai->name);
diff --git a/drivers/staging/android/Kconfig b/drivers/staging/android/Kconfig
index 70498ad..9aca9ce 100644
--- a/drivers/staging/android/Kconfig
+++ b/drivers/staging/android/Kconfig
@@ -14,6 +14,17 @@
 	  It is, in theory, a good memory allocator for low-memory devices,
 	  because it can discard shared memory units when under memory pressure.
 
+config DEBUG_KINFO
+	bool "Debug Kernel Information Support"
+	depends on KALLSYMS
+	help
+	  This supports kernel information backup for bootloader usage.
+	  Specifics:
+	   - The kallsyms symbols for unwind_backtrace
+	   - Page directory pointer
+	   - UTS_RELEASE
+	   - BUILD_INFO(ro.build.fingerprint)
+
 endif # if ANDROID
 
 endmenu
diff --git a/drivers/staging/android/Makefile b/drivers/staging/android/Makefile
index e9a55a5..b92c5fe 100644
--- a/drivers/staging/android/Makefile
+++ b/drivers/staging/android/Makefile
@@ -2,3 +2,4 @@
 ccflags-y += -I$(src)			# needed for trace events
 
 obj-$(CONFIG_ASHMEM)			+= ashmem.o
+obj-$(CONFIG_DEBUG_KINFO)	+= debug_kinfo.o
diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c
index ddbde3f..a998435 100644
--- a/drivers/staging/android/ashmem.c
+++ b/drivers/staging/android/ashmem.c
@@ -817,6 +817,7 @@
 static long ashmem_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 {
 	struct ashmem_area *asma = file->private_data;
+	unsigned long ino;
 	long ret = -ENOTTY;
 
 	switch (cmd) {
@@ -860,6 +861,23 @@
 			ashmem_shrink_scan(&ashmem_shrinker, &sc);
 		}
 		break;
+	case ASHMEM_GET_FILE_ID:
+		/* Lock around our check to avoid racing with ashmem_mmap(). */
+		mutex_lock(&ashmem_mutex);
+		if (!asma || !asma->file) {
+			mutex_unlock(&ashmem_mutex);
+			ret = -EINVAL;
+			break;
+		}
+		ino = file_inode(asma->file)->i_ino;
+		mutex_unlock(&ashmem_mutex);
+
+		if (copy_to_user((void __user *)arg, &ino, sizeof(ino))) {
+			ret = -EFAULT;
+			break;
+		}
+		ret = 0;
+		break;
 	}
 
 	return ret;
@@ -916,6 +934,15 @@
 #endif
 };
 
+/*
+ * is_ashmem_file - Check if struct file* is associated with ashmem
+ */
+int is_ashmem_file(struct file *file)
+{
+	return file->f_op == &ashmem_fops;
+}
+EXPORT_SYMBOL_GPL(is_ashmem_file);
+
 static struct miscdevice ashmem_misc = {
 	.minor = MISC_DYNAMIC_MINOR,
 	.name = "ashmem",
diff --git a/drivers/staging/android/ashmem.h b/drivers/staging/android/ashmem.h
index 1a47817..9fa72ed 100644
--- a/drivers/staging/android/ashmem.h
+++ b/drivers/staging/android/ashmem.h
@@ -21,4 +21,6 @@
 #define COMPAT_ASHMEM_SET_PROT_MASK	_IOW(__ASHMEMIOC, 5, unsigned int)
 #endif
 
+int is_ashmem_file(struct file *file);
+
 #endif	/* _LINUX_ASHMEM_H */
diff --git a/drivers/staging/android/debug_kinfo.c b/drivers/staging/android/debug_kinfo.c
new file mode 100644
index 0000000..6a16232
--- /dev/null
+++ b/drivers/staging/android/debug_kinfo.c
@@ -0,0 +1,198 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * debug_kinfo.c - backup kernel information for bootloader usage
+ *
+ * Copyright 2002 Rusty Russell <rusty@rustcorp.com.au> IBM Corporation
+ * Copyright 2021 Google LLC
+ */
+
+#include <linux/platform_device.h>
+#include <linux/kallsyms.h>
+#include <linux/vmalloc.h>
+#include <linux/module.h>
+#include <linux/of_address.h>
+#include <linux/of_reserved_mem.h>
+#include <linux/pgtable.h>
+#include <asm/module.h>
+#include "debug_kinfo.h"
+
+/*
+ * These will be re-linked against their real values
+ * during the second link stage.
+ */
+extern const unsigned long kallsyms_addresses[] __weak;
+extern const int kallsyms_offsets[] __weak;
+extern const u8 kallsyms_names[] __weak;
+
+/*
+ * Tell the compiler that the count isn't in the small data section if the arch
+ * has one (eg: FRV).
+ */
+extern const unsigned int kallsyms_num_syms __weak
+__section(".rodata");
+
+extern const unsigned long kallsyms_relative_base __weak
+__section(".rodata");
+
+extern const u8 kallsyms_token_table[] __weak;
+extern const u16 kallsyms_token_index[] __weak;
+
+extern const unsigned int kallsyms_markers[] __weak;
+
+static void *all_info_addr;
+static u32 all_info_size;
+
+static void update_kernel_all_info(struct kernel_all_info *all_info)
+{
+	int index;
+	struct kernel_info *info;
+	u32 *checksum_info;
+
+	all_info->magic_number = DEBUG_KINFO_MAGIC;
+	all_info->combined_checksum = 0;
+
+	info = &(all_info->info);
+	checksum_info = (u32 *)info;
+	for (index = 0; index < sizeof(*info) / sizeof(u32); index++)
+		all_info->combined_checksum ^= checksum_info[index];
+}
+
+static int build_info_set(const char *str, const struct kernel_param *kp)
+{
+	struct kernel_all_info *all_info;
+	size_t build_info_size;
+	int ret = 0;
+
+	if (all_info_addr == 0 || all_info_size == 0) {
+		ret = -EPERM;
+		goto Exit;
+	}
+
+	all_info = (struct kernel_all_info *)all_info_addr;
+	build_info_size = sizeof(all_info->info.build_info);
+
+	memcpy(&all_info->info.build_info, str, min(build_info_size - 1, strlen(str)));
+	update_kernel_all_info(all_info);
+
+	if (strlen(str) > build_info_size) {
+		pr_warn("%s: Build info buffer (len: %zd) can't hold entire string '%s'\n",
+				__func__, build_info_size, str);
+		ret = -ENOMEM;
+	}
+
+Exit:
+	return ret;
+}
+
+static const struct kernel_param_ops build_info_op = {
+	.set = build_info_set,
+};
+
+module_param_cb(build_info, &build_info_op, NULL, 0200);
+MODULE_PARM_DESC(build_info, "Write build info to field 'build_info' of debug kinfo.");
+
+static int debug_kinfo_probe(struct platform_device *pdev)
+{
+	struct device_node *mem_region;
+	struct reserved_mem *rmem;
+	struct kernel_all_info *all_info;
+	struct kernel_info *info;
+
+	mem_region = of_parse_phandle(pdev->dev.of_node, "memory-region", 0);
+	if (!mem_region) {
+		dev_warn(&pdev->dev, "no such memory-region\n");
+		return -ENODEV;
+	}
+
+	rmem = of_reserved_mem_lookup(mem_region);
+	if (!rmem) {
+		dev_warn(&pdev->dev, "no such reserved mem of node name %s\n",
+				pdev->dev.of_node->name);
+		return -ENODEV;
+	}
+
+	/* Need to wait for reserved memory to be mapped */
+	if (!rmem->priv) {
+		return -EPROBE_DEFER;
+	}
+
+	if (!rmem->base || !rmem->size) {
+		dev_warn(&pdev->dev, "unexpected reserved memory\n");
+		return -EINVAL;
+	}
+
+	if (rmem->size < sizeof(struct kernel_all_info)) {
+		dev_warn(&pdev->dev, "unexpected reserved memory size\n");
+		return -EINVAL;
+	}
+
+	all_info_addr = rmem->priv;
+	all_info_size = rmem->size;
+
+	memset(all_info_addr, 0, sizeof(struct kernel_all_info));
+	all_info = (struct kernel_all_info *)all_info_addr;
+	info = &(all_info->info);
+	info->enabled_all = IS_ENABLED(CONFIG_KALLSYMS_ALL);
+	info->enabled_base_relative = IS_ENABLED(CONFIG_KALLSYMS_BASE_RELATIVE);
+	info->enabled_absolute_percpu = IS_ENABLED(CONFIG_KALLSYMS_ABSOLUTE_PERCPU);
+	info->enabled_cfi_clang = IS_ENABLED(CONFIG_CFI_CLANG);
+	info->num_syms = kallsyms_num_syms;
+	info->name_len = KSYM_NAME_LEN;
+	info->bit_per_long = BITS_PER_LONG;
+	info->module_name_len = MODULE_NAME_LEN;
+	info->symbol_len = KSYM_SYMBOL_LEN;
+	if (!info->enabled_base_relative)
+		info->_addresses_pa = (u64)__pa_symbol((volatile void *)kallsyms_addresses);
+	else {
+		info->_relative_pa = (u64)__pa_symbol((volatile void *)kallsyms_relative_base);
+		info->_offsets_pa = (u64)__pa_symbol((volatile void *)kallsyms_offsets);
+	}
+	info->_stext_pa = (u64)__pa_symbol(_stext);
+	info->_etext_pa = (u64)__pa_symbol(_etext);
+	info->_sinittext_pa = (u64)__pa_symbol(_sinittext);
+	info->_einittext_pa = (u64)__pa_symbol(_einittext);
+	info->_end_pa = (u64)__pa_symbol(_end);
+	info->_names_pa = (u64)__pa_symbol((volatile void *)kallsyms_names);
+	info->_token_table_pa = (u64)__pa_symbol((volatile void *)kallsyms_token_table);
+	info->_token_index_pa = (u64)__pa_symbol((volatile void *)kallsyms_token_index);
+	info->_markers_pa = (u64)__pa_symbol((volatile void *)kallsyms_markers);
+	info->thread_size = THREAD_SIZE;
+	info->swapper_pg_dir_pa = (u64)__pa_symbol(swapper_pg_dir);
+	strlcpy(info->last_uts_release, init_utsname()->release, sizeof(info->last_uts_release));
+	info->enabled_modules_tree_lookup = IS_ENABLED(CONFIG_MODULES_TREE_LOOKUP);
+	info->mod_core_layout_offset = offsetof(struct module, core_layout);
+	info->mod_init_layout_offset = offsetof(struct module, init_layout);
+	info->mod_kallsyms_offset = offsetof(struct module, kallsyms);
+#if defined(CONFIG_RANDOMIZE_BASE) && defined(MODULES_VSIZE)
+	info->module_start_va = module_alloc_base;
+	info->module_end_va = info->module_start_va + MODULES_VSIZE;
+#elif defined(CONFIG_MODULES) && defined(MODULES_VADDR)
+	info->module_start_va = MODULES_VADDR;
+	info->module_end_va = MODULES_END;
+#else
+	info->module_start_va = VMALLOC_START;
+	info->module_end_va = VMALLOC_END;
+#endif
+	update_kernel_all_info(all_info);
+
+	return 0;
+}
+
+static const struct of_device_id debug_kinfo_of_match[] = {
+	{ .compatible	= "google,debug-kinfo" },
+	{},
+};
+MODULE_DEVICE_TABLE(of, debug_kinfo_of_match);
+
+static struct platform_driver debug_kinfo_driver = {
+	.probe = debug_kinfo_probe,
+	.driver = {
+		.name = "debug-kinfo",
+		.of_match_table = of_match_ptr(debug_kinfo_of_match),
+	},
+};
+module_platform_driver(debug_kinfo_driver);
+
+MODULE_AUTHOR("Jone Chou <jonechou@google.com>");
+MODULE_DESCRIPTION("Debug Kinfo Driver");
+MODULE_LICENSE("GPL v2");
diff --git a/drivers/staging/android/debug_kinfo.h b/drivers/staging/android/debug_kinfo.h
new file mode 100644
index 0000000..921f140
--- /dev/null
+++ b/drivers/staging/android/debug_kinfo.h
@@ -0,0 +1,71 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * debug_kinfo.h - backup kernel information for bootloader usage
+ *
+ * Copyright 2021 Google LLC
+ */
+
+#ifndef DEBUG_KINFO_H
+#define DEBUG_KINFO_H
+
+#include <linux/utsname.h>
+
+#define BUILD_INFO_LEN		256
+#define DEBUG_KINFO_MAGIC	0xCCEEDDFF
+
+/*
+ * Header structure must be byte-packed, since the table is provided to
+ * bootloader.
+ */
+struct kernel_info {
+	/* For kallsyms */
+	__u8 enabled_all;
+	__u8 enabled_base_relative;
+	__u8 enabled_absolute_percpu;
+	__u8 enabled_cfi_clang;
+	__u32 num_syms;
+	__u16 name_len;
+	__u16 bit_per_long;
+	__u16 module_name_len;
+	__u16 symbol_len;
+	__u64 _addresses_pa;
+	__u64 _relative_pa;
+	__u64 _stext_pa;
+	__u64 _etext_pa;
+	__u64 _sinittext_pa;
+	__u64 _einittext_pa;
+	__u64 _end_pa;
+	__u64 _offsets_pa;
+	__u64 _names_pa;
+	__u64 _token_table_pa;
+	__u64 _token_index_pa;
+	__u64 _markers_pa;
+
+	/* For frame pointer */
+	__u32 thread_size;
+
+	/* For virt_to_phys */
+	__u64 swapper_pg_dir_pa;
+
+	/* For linux banner */
+	__u8 last_uts_release[__NEW_UTS_LEN];
+
+	/* Info of running build */
+	__u8 build_info[BUILD_INFO_LEN];
+
+	/* For module kallsyms */
+	__u32 enabled_modules_tree_lookup;
+	__u32 mod_core_layout_offset;
+	__u32 mod_init_layout_offset;
+	__u32 mod_kallsyms_offset;
+	__u64 module_start_va;
+	__u64 module_end_va;
+} __packed;
+
+struct kernel_all_info {
+	__u32 magic_number;
+	__u32 combined_checksum;
+	struct kernel_info info;
+} __packed;
+
+#endif // DEBUG_KINFO_H
diff --git a/drivers/staging/android/uapi/ashmem.h b/drivers/staging/android/uapi/ashmem.h
index 134efac..f962a5f 100644
--- a/drivers/staging/android/uapi/ashmem.h
+++ b/drivers/staging/android/uapi/ashmem.h
@@ -39,5 +39,6 @@
 #define ASHMEM_UNPIN		_IOW(__ASHMEMIOC, 8, struct ashmem_pin)
 #define ASHMEM_GET_PIN_STATUS	_IO(__ASHMEMIOC, 9)
 #define ASHMEM_PURGE_ALL_CACHES	_IO(__ASHMEMIOC, 10)
+#define ASHMEM_GET_FILE_ID		_IOR(__ASHMEMIOC, 11, unsigned long)
 
 #endif	/* _UAPI_LINUX_ASHMEM_H */
diff --git a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
index b33424a..40c1b47 100644
--- a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
+++ b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
@@ -449,8 +449,8 @@
 
 		notify_channel = ieee80211_get_channel(wiphy, freq);
 
-		roam_info.channel = notify_channel;
-		roam_info.bssid = cur_network->network.mac_address;
+		roam_info.links[0].channel = notify_channel;
+		roam_info.links[0].bssid = cur_network->network.mac_address;
 		roam_info.req_ie =
 			pmlmepriv->assoc_req+sizeof(struct ieee80211_hdr_3addr)+2;
 		roam_info.req_ie_len =
@@ -854,8 +854,8 @@
 }
 
 static int cfg80211_rtw_add_key(struct wiphy *wiphy, struct net_device *ndev,
-				u8 key_index, bool pairwise, const u8 *mac_addr,
-				struct key_params *params)
+				int link_id, u8 key_index, bool pairwise,
+				const u8 *mac_addr, struct key_params *params)
 {
 	char *alg_name;
 	u32 param_len;
@@ -936,8 +936,8 @@
 }
 
 static int cfg80211_rtw_get_key(struct wiphy *wiphy, struct net_device *ndev,
-				u8 key_index, bool pairwise, const u8 *mac_addr,
-				void *cookie,
+				int link_id, u8 key_index, bool pairwise,
+				const u8 *mac_addr, void *cookie,
 				void (*callback)(void *cookie,
 						 struct key_params*))
 {
@@ -945,7 +945,8 @@
 }
 
 static int cfg80211_rtw_del_key(struct wiphy *wiphy, struct net_device *ndev,
-				u8 key_index, bool pairwise, const u8 *mac_addr)
+				int link_id, u8 key_index, bool pairwise,
+				const u8 *mac_addr)
 {
 	struct adapter *padapter = rtw_netdev_priv(ndev);
 	struct security_priv *psecuritypriv = &padapter->securitypriv;
@@ -959,7 +960,7 @@
 }
 
 static int cfg80211_rtw_set_default_key(struct wiphy *wiphy,
-	struct net_device *ndev, u8 key_index
+	struct net_device *ndev, int link_id, u8 key_index
 	, bool unicast, bool multicast
 	)
 {
@@ -1999,6 +2000,7 @@
 }
 
 static int cfg80211_rtw_get_channel(struct wiphy *wiphy, struct wireless_dev *wdev,
+				    unsigned int link_id,
 				    struct cfg80211_chan_def *chandef)
 {
 	struct adapter *adapter = wiphy_to_adapter(wiphy);
@@ -2357,7 +2359,8 @@
 	return rtw_add_beacon(adapter, info->head, info->head_len, info->tail, info->tail_len);
 }
 
-static int cfg80211_rtw_stop_ap(struct wiphy *wiphy, struct net_device *ndev)
+static int cfg80211_rtw_stop_ap(struct wiphy *wiphy, struct net_device *ndev,
+				unsigned int link_id)
 {
 	return 0;
 }
diff --git a/drivers/staging/wlan-ng/cfg80211.c b/drivers/staging/wlan-ng/cfg80211.c
index 7951bd6..63804b2 100644
--- a/drivers/staging/wlan-ng/cfg80211.c
+++ b/drivers/staging/wlan-ng/cfg80211.c
@@ -143,8 +143,8 @@
 }
 
 static int prism2_add_key(struct wiphy *wiphy, struct net_device *dev,
-			  u8 key_index, bool pairwise, const u8 *mac_addr,
-			  struct key_params *params)
+			  int link_id, u8 key_index, bool pairwise,
+			  const u8 *mac_addr, struct key_params *params)
 {
 	struct wlandevice *wlandev = dev->ml_priv;
 	u32 did;
@@ -172,7 +172,7 @@
 }
 
 static int prism2_get_key(struct wiphy *wiphy, struct net_device *dev,
-			  u8 key_index, bool pairwise,
+			  int link_id, u8 key_index, bool pairwise,
 			  const u8 *mac_addr, void *cookie,
 			  void (*callback)(void *cookie, struct key_params*))
 {
@@ -202,7 +202,8 @@
 }
 
 static int prism2_del_key(struct wiphy *wiphy, struct net_device *dev,
-			  u8 key_index, bool pairwise, const u8 *mac_addr)
+			  int link_id, u8 key_index, bool pairwise,
+			  const u8 *mac_addr)
 {
 	struct wlandevice *wlandev = dev->ml_priv;
 	u32 did;
@@ -227,7 +228,8 @@
 }
 
 static int prism2_set_default_key(struct wiphy *wiphy, struct net_device *dev,
-				  u8 key_index, bool unicast, bool multicast)
+				  int link_id, u8 key_index, bool unicast,
+				  bool multicast)
 {
 	struct wlandevice *wlandev = dev->ml_priv;
 
@@ -647,7 +649,7 @@
 void prism2_roamed(struct wlandevice *wlandev)
 {
 	struct cfg80211_roam_info roam_info = {
-		.bssid = wlandev->bssid,
+		.links[0].bssid = wlandev->bssid,
 	};
 
 	cfg80211_roamed(wlandev->netdev, &roam_info, GFP_KERNEL);
diff --git a/drivers/target/target_core_configfs.c b/drivers/target/target_core_configfs.c
index 023bd45..573a091 100644
--- a/drivers/target/target_core_configfs.c
+++ b/drivers/target/target_core_configfs.c
@@ -3686,6 +3686,7 @@
 MODULE_DESCRIPTION("Target_Core_Mod/ConfigFS");
 MODULE_AUTHOR("nab@Linux-iSCSI.org");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
 
 module_init(target_core_init_configfs);
 module_exit(target_core_exit_configfs);
diff --git a/drivers/target/target_core_file.c b/drivers/target/target_core_file.c
index 0148607..cf0ecc9 100644
--- a/drivers/target/target_core_file.c
+++ b/drivers/target/target_core_file.c
@@ -947,6 +947,7 @@
 MODULE_DESCRIPTION("TCM FILEIO subsystem plugin");
 MODULE_AUTHOR("nab@Linux-iSCSI.org");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
 
 module_init(fileio_module_init);
 module_exit(fileio_module_exit);
diff --git a/drivers/thermal/cpufreq_cooling.c b/drivers/thermal/cpufreq_cooling.c
index 12a6041..aaabbd4 100644
--- a/drivers/thermal/cpufreq_cooling.c
+++ b/drivers/thermal/cpufreq_cooling.c
@@ -23,6 +23,7 @@
 #include <linux/thermal.h>
 
 #include <trace/events/thermal.h>
+#include <trace/hooks/thermal.h>
 
 /*
  * Cooling state <-> CPUFreq frequency
@@ -59,6 +60,7 @@
  * @cdev: thermal_cooling_device pointer to keep track of the
  *	registered cooling device.
  * @policy: cpufreq policy.
+ * @cooling_ops: cpufreq callbacks to thermal cooling device ops
  * @idle_time: idle time stats
  * @qos_req: PM QoS contraint to apply
  *
@@ -71,6 +73,7 @@
 	unsigned int max_level;
 	struct em_perf_domain *em;
 	struct cpufreq_policy *policy;
+	struct thermal_cooling_device_ops cooling_ops;
 #ifndef CONFIG_SMP
 	struct time_in_idle *idle_time;
 #endif
@@ -218,6 +221,8 @@
 
 	freq = cpufreq_quick_get(policy->cpu);
 
+	trace_android_vh_modify_thermal_request_freq(policy, &freq);
+
 	if (trace_thermal_power_cpu_get_power_enabled()) {
 		u32 ncpus = cpumask_weight(policy->related_cpus);
 
@@ -243,6 +248,8 @@
 
 	*power = get_dynamic_power(cpufreq_cdev, freq);
 
+	trace_android_vh_modify_thermal_cpu_get_power(policy, power);
+
 	if (load_cpu) {
 		trace_thermal_power_cpu_get_power(policy->related_cpus, freq,
 						  load_cpu, i, *power);
@@ -317,6 +324,8 @@
 	normalised_power = (power * 100) / last_load;
 	target_freq = cpu_power_to_freq(cpufreq_cdev, normalised_power);
 
+	trace_android_vh_modify_thermal_target_freq(policy, &target_freq);
+
 	*state = get_level(cpufreq_cdev, target_freq);
 	trace_thermal_power_cpu_limit(policy->related_cpus, target_freq, *state,
 				      power);
@@ -489,14 +498,6 @@
 	return ret;
 }
 
-/* Bind cpufreq callbacks to thermal cooling device ops */
-
-static struct thermal_cooling_device_ops cpufreq_cooling_ops = {
-	.get_max_state		= cpufreq_get_max_state,
-	.get_cur_state		= cpufreq_get_cur_state,
-	.set_cur_state		= cpufreq_set_cur_state,
-};
-
 /**
  * __cpufreq_cooling_register - helper function to create cpufreq cooling device
  * @np: a valid struct device_node to the cooling device device tree node
@@ -558,7 +559,10 @@
 	/* max_level is an index, not a counter */
 	cpufreq_cdev->max_level = i - 1;
 
-	cooling_ops = &cpufreq_cooling_ops;
+	cooling_ops = &cpufreq_cdev->cooling_ops;
+	cooling_ops->get_max_state = cpufreq_get_max_state;
+	cooling_ops->get_cur_state = cpufreq_get_cur_state;
+	cooling_ops->set_cur_state = cpufreq_set_cur_state;
 
 #ifdef CONFIG_THERMAL_GOV_POWER_ALLOCATOR
 	if (em_is_sane(cpufreq_cdev, em)) {
diff --git a/drivers/thermal/gov_fair_share.c b/drivers/thermal/gov_fair_share.c
index a4c3079..1e5abf4 100644
--- a/drivers/thermal/gov_fair_share.c
+++ b/drivers/thermal/gov_fair_share.c
@@ -25,10 +25,10 @@
 	int trip_temp;
 	enum thermal_trip_type trip_type;
 
-	if (tz->num_trips == 0 || !tz->ops->get_trip_temp)
+	if (tz->trips == 0 || !tz->ops->get_trip_temp)
 		return 0;
 
-	for (count = 0; count < tz->num_trips; count++) {
+	for (count = 0; count < tz->trips; count++) {
 		tz->ops->get_trip_temp(tz, count, &trip_temp);
 		if (tz->temperature < trip_temp)
 			break;
@@ -49,7 +49,11 @@
 static long get_target_state(struct thermal_zone_device *tz,
 		struct thermal_cooling_device *cdev, int percentage, int level)
 {
-	return (long)(percentage * level * cdev->max_state) / (100 * tz->num_trips);
+	unsigned long max_state;
+
+	cdev->ops->get_max_state(cdev, &max_state);
+
+	return (long)(percentage * level * max_state) / (100 * tz->trips);
 }
 
 /**
diff --git a/drivers/thermal/gov_power_allocator.c b/drivers/thermal/gov_power_allocator.c
index 1d50524..1fa8da7 100644
--- a/drivers/thermal/gov_power_allocator.c
+++ b/drivers/thermal/gov_power_allocator.c
@@ -14,6 +14,8 @@
 
 #define CREATE_TRACE_POINTS
 #include <trace/events/thermal_power_allocator.h>
+#undef CREATE_TRACE_POINTS
+#include <trace/hooks/thermal.h>
 
 #include "thermal_core.h"
 
@@ -60,6 +62,8 @@
  *			governor switches on when this trip point is crossed.
  *			If the thermal zone only has one passive trip point,
  *			@trip_switch_on should be INVALID_TRIP.
+ * @last_switch_on_temp:Record the last switch_on_temp only when trips
+			are writable.
  * @trip_max_desired_temperature:	last passive trip point of the thermal
  *					zone.  The temperature we are
  *					controlling for.
@@ -71,6 +75,9 @@
 	s64 err_integral;
 	s32 prev_err;
 	int trip_switch_on;
+#ifdef CONFIG_THERMAL_WRITABLE_TRIPS
+	int last_switch_on_temp;
+#endif
 	int trip_max_desired_temperature;
 	u32 sustainable_power;
 };
@@ -468,6 +475,7 @@
 	}
 
 	power_range = pid_controller(tz, control_temp, max_allocatable_power);
+	trace_android_vh_thermal_power_cap(&power_range);
 
 	divvy_up_power(weighted_req_power, max_power, num_actors,
 		       total_weighted_req_power, power_range, granted_power,
@@ -527,7 +535,7 @@
 	last_active = INVALID_TRIP;
 	last_passive = INVALID_TRIP;
 
-	for (i = 0; i < tz->num_trips; i++) {
+	for (i = 0; i < tz->trips; i++) {
 		enum thermal_trip_type type;
 		int ret;
 
@@ -564,6 +572,25 @@
 	}
 }
 
+#ifdef CONFIG_THERMAL_WRITABLE_TRIPS
+static bool power_allocator_throttle_update(struct thermal_zone_device *tz, int switch_on_temp)
+{
+	bool update;
+	struct power_allocator_params *params = tz->governor_data;
+	int last_switch_on_temp = params->last_switch_on_temp;
+
+	update = (tz->last_temperature >= last_switch_on_temp);
+	params->last_switch_on_temp = switch_on_temp;
+
+	return update;
+}
+#else
+static inline bool power_allocator_throttle_update(struct thermal_zone_device *tz, int switch_on_temp)
+{
+	return false;
+}
+#endif
+
 static void reset_pid_controller(struct power_allocator_params *params)
 {
 	params->err_integral = 0;
@@ -668,7 +695,7 @@
 
 	get_governor_trips(tz, params);
 
-	if (tz->num_trips > 0) {
+	if (tz->trips > 0) {
 		ret = tz->ops->get_trip_temp(tz,
 					params->trip_max_desired_temperature,
 					&control_temp);
@@ -711,6 +738,8 @@
 	int switch_on_temp, control_temp;
 	struct power_allocator_params *params = tz->governor_data;
 	bool update;
+	bool enable = true;
+	bool override = false;
 
 	/*
 	 * We get called for every trip point but we only need to do
@@ -719,14 +748,29 @@
 	if (trip != params->trip_max_desired_temperature)
 		return 0;
 
-	ret = tz->ops->get_trip_temp(tz, params->trip_switch_on,
-				     &switch_on_temp);
-	if (!ret && (tz->temperature < switch_on_temp)) {
-		update = (tz->last_temperature >= switch_on_temp);
-		tz->passive = 0;
-		reset_pid_controller(params);
-		allow_maximum_power(tz, update);
-		return 0;
+	/*
+	 * Control the IPA by user.
+	 * About enable:
+	 *	true: enable IPA control.
+	 *	false: disable IPA control.
+	 * About override:
+	 *	true: power budget is overridden by user power budget.
+	 *	false: power budget is not overridden, there's no other thermal
+	 *	requirement.
+	 */
+	trace_android_vh_enable_thermal_power_throttle(&enable, &override);
+	ret = tz->ops->get_trip_temp(tz, params->trip_switch_on, &switch_on_temp);
+	if (!ret) {
+		update = power_allocator_throttle_update(tz, switch_on_temp);
+
+		if (!enable || ((tz->temperature < switch_on_temp) && !override)) {
+			update |= (tz->last_temperature >= switch_on_temp);
+			trace_android_vh_modify_thermal_throttle_update(tz, &update);
+			tz->passive = 0;
+			reset_pid_controller(params);
+			allow_maximum_power(tz, update);
+			return 0;
+		}
 	}
 
 	tz->passive = 1;
diff --git a/drivers/thermal/tegra/tegra30-tsensor.c b/drivers/thermal/tegra/tegra30-tsensor.c
index 0588668..9b6b693 100644
--- a/drivers/thermal/tegra/tegra30-tsensor.c
+++ b/drivers/thermal/tegra/tegra30-tsensor.c
@@ -316,7 +316,7 @@
 	*hot_trip  = 85000;
 	*crit_trip = 90000;
 
-	for (i = 0; i < tzd->num_trips; i++) {
+	for (i = 0; i < tzd->trips; i++) {
 		enum thermal_trip_type type;
 		int trip_temp;
 
diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
index 052e8e8..2b245178 100644
--- a/drivers/thermal/thermal_core.c
+++ b/drivers/thermal/thermal_core.c
@@ -23,6 +23,8 @@
 
 #define CREATE_TRACE_POINTS
 #include <trace/events/thermal.h>
+#undef CREATE_TRACE_POINTS
+#include <trace/hooks/thermal.h>
 
 #include "thermal_core.h"
 #include "thermal_hwmon.h"
@@ -503,8 +505,10 @@
 
 	tz->notify_event = event;
 
-	for (count = 0; count < tz->num_trips; count++)
+	for (count = 0; count < tz->trips; count++)
 		handle_thermal_trip(tz, count);
+
+	trace_android_vh_get_thermal_zone_device(tz);
 }
 EXPORT_SYMBOL_GPL(thermal_zone_device_update);
 
@@ -625,9 +629,10 @@
 	struct thermal_instance *pos;
 	struct thermal_zone_device *pos1;
 	struct thermal_cooling_device *pos2;
-	int result;
+	unsigned long max_state;
+	int result, ret;
 
-	if (trip >= tz->num_trips || trip < 0)
+	if (trip >= tz->trips || trip < 0)
 		return -EINVAL;
 
 	list_for_each_entry(pos1, &thermal_tz_list, node) {
@@ -642,11 +647,15 @@
 	if (tz != pos1 || cdev != pos2)
 		return -EINVAL;
 
+	ret = cdev->ops->get_max_state(cdev, &max_state);
+	if (ret)
+		return ret;
+
 	/* lower default 0, upper default max_state */
 	lower = lower == THERMAL_NO_LIMIT ? 0 : lower;
-	upper = upper == THERMAL_NO_LIMIT ? cdev->max_state : upper;
+	upper = upper == THERMAL_NO_LIMIT ? max_state : upper;
 
-	if (lower > upper || upper > cdev->max_state)
+	if (lower > upper || upper > max_state)
 		return -EINVAL;
 
 	dev = kzalloc(sizeof(*dev), GFP_KERNEL);
@@ -804,7 +813,7 @@
 {
 	int i, ret;
 
-	for (i = 0; i < tz->num_trips; i++) {
+	for (i = 0; i < tz->trips; i++) {
 		if (mask & (1 << i)) {
 			unsigned long upper, lower;
 
@@ -913,22 +922,12 @@
 	cdev->updated = false;
 	cdev->device.class = &thermal_class;
 	cdev->devdata = devdata;
-
-	ret = cdev->ops->get_max_state(cdev, &cdev->max_state);
-	if (ret) {
-		kfree(cdev->type);
-		goto out_ida_remove;
-	}
-
 	thermal_cooling_device_setup_sysfs(cdev);
-
 	ret = dev_set_name(&cdev->device, "cooling_device%d", cdev->id);
 	if (ret) {
-		kfree(cdev->type);
 		thermal_cooling_device_destroy_sysfs(cdev);
-		goto out_ida_remove;
+		goto out_kfree_type;
 	}
-
 	ret = device_register(&cdev->device);
 	if (ret)
 		goto out_kfree_type;
@@ -954,8 +953,6 @@
 	thermal_cooling_device_destroy_sysfs(cdev);
 	kfree(cdev->type);
 	put_device(&cdev->device);
-
-	/* thermal_release() takes care of the rest */
 	cdev = NULL;
 out_ida_remove:
 	ida_simple_remove(&thermal_cdev_ida, id);
@@ -1063,7 +1060,7 @@
 {
 	int i;
 
-	for (i = 0; i < tz->num_trips; i++)
+	for (i = 0; i < tz->trips; i++)
 		if (mask & (1 << i))
 			thermal_zone_unbind_cooling_device(tz, i, cdev);
 }
@@ -1168,7 +1165,7 @@
 /**
  * thermal_zone_device_register() - register a new thermal zone device
  * @type:	the thermal zone device type
- * @num_trips:	the number of trip points the thermal zone support
+ * @trips:	the number of trip points the thermal zone support
  * @mask:	a bit string indicating the writeablility of trip points
  * @devdata:	private device data
  * @ops:	standard thermal zone device callbacks
@@ -1190,7 +1187,7 @@
  * IS_ERR*() helpers.
  */
 struct thermal_zone_device *
-thermal_zone_device_register(const char *type, int num_trips, int mask,
+thermal_zone_device_register(const char *type, int trips, int mask,
 			     void *devdata, struct thermal_zone_device_ops *ops,
 			     struct thermal_zone_params *tzp, int passive_delay,
 			     int polling_delay)
@@ -1214,7 +1211,7 @@
 		return ERR_PTR(-EINVAL);
 	}
 
-	if (num_trips > THERMAL_MAX_TRIPS || num_trips < 0 || mask >> num_trips) {
+	if (trips > THERMAL_MAX_TRIPS || trips < 0 || mask >> trips) {
 		pr_err("Incorrect number of thermal trips\n");
 		return ERR_PTR(-EINVAL);
 	}
@@ -1224,7 +1221,7 @@
 		return ERR_PTR(-EINVAL);
 	}
 
-	if (num_trips > 0 && (!ops->get_trip_type || !ops->get_trip_temp))
+	if (trips > 0 && (!ops->get_trip_type || !ops->get_trip_temp))
 		return ERR_PTR(-EINVAL);
 
 	tz = kzalloc(sizeof(*tz), GFP_KERNEL);
@@ -1250,7 +1247,7 @@
 	tz->tzp = tzp;
 	tz->device.class = &thermal_class;
 	tz->devdata = devdata;
-	tz->num_trips = num_trips;
+	tz->trips = trips;
 
 	thermal_set_delay_jiffies(&tz->passive_delay_jiffies, passive_delay);
 	thermal_set_delay_jiffies(&tz->polling_delay_jiffies, polling_delay);
@@ -1273,7 +1270,7 @@
 	if (result)
 		goto release_device;
 
-	for (count = 0; count < num_trips; count++) {
+	for (count = 0; count < trips; count++) {
 		if (tz->ops->get_trip_type(tz, count, &trip_type) ||
 		    tz->ops->get_trip_temp(tz, count, &trip_temp) ||
 		    !trip_temp)
diff --git a/drivers/thermal/thermal_helpers.c b/drivers/thermal/thermal_helpers.c
index ee7027b..3edd047 100644
--- a/drivers/thermal/thermal_helpers.c
+++ b/drivers/thermal/thermal_helpers.c
@@ -90,7 +90,7 @@
 	ret = tz->ops->get_temp(tz, temp);
 
 	if (IS_ENABLED(CONFIG_THERMAL_EMULATION) && tz->emul_temperature) {
-		for (count = 0; count < tz->num_trips; count++) {
+		for (count = 0; count < tz->trips; count++) {
 			ret = tz->ops->get_trip_type(tz, count, &type);
 			if (!ret && type == THERMAL_TRIP_CRITICAL) {
 				ret = tz->ops->get_trip_temp(tz, count,
@@ -138,7 +138,7 @@
 	if (!tz->ops->set_trips || !tz->ops->get_trip_hyst)
 		goto exit;
 
-	for (i = 0; i < tz->num_trips; i++) {
+	for (i = 0; i < tz->trips; i++) {
 		int trip_low;
 
 		tz->ops->get_trip_temp(tz, i, &trip_temp);
diff --git a/drivers/thermal/thermal_netlink.c b/drivers/thermal/thermal_netlink.c
index c70d407..41c8d47 100644
--- a/drivers/thermal/thermal_netlink.c
+++ b/drivers/thermal/thermal_netlink.c
@@ -415,7 +415,7 @@
 
 	mutex_lock(&tz->lock);
 
-	for (i = 0; i < tz->num_trips; i++) {
+	for (i = 0; i < tz->trips; i++) {
 
 		enum thermal_trip_type type;
 		int temp, hyst = 0;
diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c
index 9233f7e..ca73c97 100644
--- a/drivers/thermal/thermal_of.c
+++ b/drivers/thermal/thermal_of.c
@@ -203,6 +203,28 @@
 	return data->ops->get_trend(data->sensor_data, trip, trend);
 }
 
+static int of_thermal_change_mode(struct thermal_zone_device *tz,
+				enum thermal_device_mode mode)
+{
+	struct __thermal_zone *data = tz->devdata;
+
+	return data->ops->change_mode(data->sensor_data, mode);
+}
+
+static void of_thermal_hot_notify(struct thermal_zone_device *tz)
+{
+	struct __thermal_zone *data = tz->devdata;
+
+	data->ops->hot(data->sensor_data);
+}
+
+static void of_thermal_critical_notify(struct thermal_zone_device *tz)
+{
+	struct __thermal_zone *data = tz->devdata;
+
+	data->ops->critical(data->sensor_data);
+}
+
 static int of_thermal_bind(struct thermal_zone_device *thermal,
 			   struct thermal_cooling_device *cdev)
 {
@@ -408,6 +430,14 @@
 	if (ops->set_emul_temp)
 		tzd->ops->set_emul_temp = of_thermal_set_emul_temp;
 
+	if (ops->change_mode)
+		tzd->ops->change_mode = of_thermal_change_mode;
+
+	if (ops->hot)
+		tzd->ops->hot = of_thermal_hot_notify;
+
+	if (ops->critical)
+		tzd->ops->critical = of_thermal_critical_notify;
 	mutex_unlock(&tzd->lock);
 
 	return tzd;
@@ -569,6 +599,9 @@
 	tzd->ops->get_temp = NULL;
 	tzd->ops->get_trend = NULL;
 	tzd->ops->set_emul_temp = NULL;
+	tzd->ops->change_mode = NULL;
+	tzd->ops->hot = NULL;
+	tzd->ops->critical = NULL;
 
 	tz->ops = NULL;
 	tz->sensor_data = NULL;
diff --git a/drivers/thermal/thermal_sysfs.c b/drivers/thermal/thermal_sysfs.c
index de7cdec..59a29ef 100644
--- a/drivers/thermal/thermal_sysfs.c
+++ b/drivers/thermal/thermal_sysfs.c
@@ -18,6 +18,7 @@
 #include <linux/slab.h>
 #include <linux/string.h>
 #include <linux/jiffies.h>
+#include <trace/hooks/thermal.h>
 
 #include "thermal_core.h"
 
@@ -416,15 +417,15 @@
 	int indx;
 
 	/* This function works only for zones with at least one trip */
-	if (tz->num_trips <= 0)
+	if (tz->trips <= 0)
 		return -EINVAL;
 
-	tz->trip_type_attrs = kcalloc(tz->num_trips, sizeof(*tz->trip_type_attrs),
+	tz->trip_type_attrs = kcalloc(tz->trips, sizeof(*tz->trip_type_attrs),
 				      GFP_KERNEL);
 	if (!tz->trip_type_attrs)
 		return -ENOMEM;
 
-	tz->trip_temp_attrs = kcalloc(tz->num_trips, sizeof(*tz->trip_temp_attrs),
+	tz->trip_temp_attrs = kcalloc(tz->trips, sizeof(*tz->trip_temp_attrs),
 				      GFP_KERNEL);
 	if (!tz->trip_temp_attrs) {
 		kfree(tz->trip_type_attrs);
@@ -432,7 +433,7 @@
 	}
 
 	if (tz->ops->get_trip_hyst) {
-		tz->trip_hyst_attrs = kcalloc(tz->num_trips,
+		tz->trip_hyst_attrs = kcalloc(tz->trips,
 					      sizeof(*tz->trip_hyst_attrs),
 					      GFP_KERNEL);
 		if (!tz->trip_hyst_attrs) {
@@ -442,7 +443,7 @@
 		}
 	}
 
-	attrs = kcalloc(tz->num_trips * 3 + 1, sizeof(*attrs), GFP_KERNEL);
+	attrs = kcalloc(tz->trips * 3 + 1, sizeof(*attrs), GFP_KERNEL);
 	if (!attrs) {
 		kfree(tz->trip_type_attrs);
 		kfree(tz->trip_temp_attrs);
@@ -451,7 +452,7 @@
 		return -ENOMEM;
 	}
 
-	for (indx = 0; indx < tz->num_trips; indx++) {
+	for (indx = 0; indx < tz->trips; indx++) {
 		/* create trip type attribute */
 		snprintf(tz->trip_type_attrs[indx].name, THERMAL_NAME_LENGTH,
 			 "trip_point_%d_type", indx);
@@ -478,7 +479,7 @@
 			tz->trip_temp_attrs[indx].attr.store =
 							trip_point_temp_store;
 		}
-		attrs[indx + tz->num_trips] = &tz->trip_temp_attrs[indx].attr.attr;
+		attrs[indx + tz->trips] = &tz->trip_temp_attrs[indx].attr.attr;
 
 		/* create Optional trip hyst attribute */
 		if (!tz->ops->get_trip_hyst)
@@ -496,10 +497,10 @@
 			tz->trip_hyst_attrs[indx].attr.store =
 					trip_point_hyst_store;
 		}
-		attrs[indx + tz->num_trips * 2] =
+		attrs[indx + tz->trips * 2] =
 					&tz->trip_hyst_attrs[indx].attr.attr;
 	}
-	attrs[tz->num_trips * 3] = NULL;
+	attrs[tz->trips * 3] = NULL;
 
 	tz->trips_attribute_group.attrs = attrs;
 
@@ -540,7 +541,7 @@
 	for (i = 0; i < size - 2; i++)
 		groups[i] = thermal_zone_attribute_groups[i];
 
-	if (tz->num_trips) {
+	if (tz->trips) {
 		result = create_trip_attrs(tz, mask);
 		if (result) {
 			kfree(groups);
@@ -561,7 +562,7 @@
 	if (!tz)
 		return;
 
-	if (tz->num_trips)
+	if (tz->trips)
 		destroy_trip_attrs(tz);
 
 	kfree(tz->device.groups);
@@ -580,8 +581,13 @@
 			      char *buf)
 {
 	struct thermal_cooling_device *cdev = to_cooling_device(dev);
+	unsigned long state;
+	int ret;
 
-	return sprintf(buf, "%ld\n", cdev->max_state);
+	ret = cdev->ops->get_max_state(cdev, &state);
+	if (ret)
+		return ret;
+	return sprintf(buf, "%ld\n", state);
 }
 
 static ssize_t cur_state_show(struct device *dev, struct device_attribute *attr,
@@ -611,10 +617,6 @@
 	if ((long)state < 0)
 		return -EINVAL;
 
-	/* Requested state should be less than max_state + 1 */
-	if (state > cdev->max_state)
-		return -EINVAL;
-
 	mutex_lock(&cdev->lock);
 
 	result = cdev->ops->set_cur_state(cdev, state);
@@ -816,6 +818,15 @@
 	struct cooling_dev_stats *stats;
 	unsigned long states;
 	int var;
+	int disable_cdev_stats = 0;
+
+	trace_android_vh_disable_thermal_cooling_stats(cdev,
+						&disable_cdev_stats);
+	if (disable_cdev_stats) {
+		var = ARRAY_SIZE(cooling_device_attr_groups) - 2;
+		cooling_device_attr_groups[var] = NULL;
+		return;
+	}
 
 	if (cdev->ops->get_max_state(cdev, &states))
 		goto out;
diff --git a/drivers/tty/hvc/hvc_console.h b/drivers/tty/hvc/hvc_console.h
index 18d0058..97200fb 100644
--- a/drivers/tty/hvc/hvc_console.h
+++ b/drivers/tty/hvc/hvc_console.h
@@ -30,7 +30,7 @@
  * for the tty device.  Since this driver supports hotplug of vty adapters we
  * need to make sure we have enough allocated.
  */
-#define HVC_ALLOC_TTY_ADAPTERS	8
+#define HVC_ALLOC_TTY_ADAPTERS	64
 
 struct hvc_struct {
 	struct tty_port port;
diff --git a/drivers/tty/hvc/hvc_dcc.c b/drivers/tty/hvc/hvc_dcc.c
index 8e0edb7..03c0a18 100644
--- a/drivers/tty/hvc/hvc_dcc.c
+++ b/drivers/tty/hvc/hvc_dcc.c
@@ -3,6 +3,7 @@
 
 #include <linux/console.h>
 #include <linux/init.h>
+#include <linux/moduleparam.h>
 #include <linux/serial.h>
 #include <linux/serial_core.h>
 
@@ -11,6 +12,13 @@
 
 #include "hvc_console.h"
 
+/*
+ * Disable DCC driver at runtime. Want driver enabled for GKI, but some devices
+ * do not support the registers and crash when driver pokes the registers
+ */
+static bool enable;
+module_param(enable, bool, 0444);
+
 /* DCC Status Bits */
 #define DCC_STATUS_RX		(1 << 30)
 #define DCC_STATUS_TX		(1 << 29)
@@ -91,7 +99,7 @@
 {
 	int ret;
 
-	if (!hvc_dcc_check())
+	if (!enable || !hvc_dcc_check())
 		return -ENODEV;
 
 	/* Returns -1 if error */
@@ -105,7 +113,7 @@
 {
 	struct hvc_struct *p;
 
-	if (!hvc_dcc_check())
+	if (!enable || !hvc_dcc_check())
 		return -ENODEV;
 
 	p = hvc_alloc(0, 0, &hvc_dcc_get_put_ops, 128);
diff --git a/drivers/tty/serial/8250/8250.h b/drivers/tty/serial/8250/8250.h
index d9500a2..3da545c 100644
--- a/drivers/tty/serial/8250/8250.h
+++ b/drivers/tty/serial/8250/8250.h
@@ -17,8 +17,6 @@
 struct uart_8250_dma {
 	int (*tx_dma)(struct uart_8250_port *p);
 	int (*rx_dma)(struct uart_8250_port *p);
-	void (*prepare_tx_dma)(struct uart_8250_port *p);
-	void (*prepare_rx_dma)(struct uart_8250_port *p);
 
 	/* Filter function */
 	dma_filter_fn		fn;
@@ -90,6 +88,7 @@
 #define UART_BUG_TXEN	BIT(1)	/* UART has buggy TX IIR status */
 #define UART_BUG_NOMSR	BIT(2)	/* UART has buggy MSR status bits (Au1x00) */
 #define UART_BUG_THRE	BIT(3)	/* UART has buggy THRE reassertion */
+#define UART_BUG_PARITY	BIT(4)	/* UART mishandles parity if FIFO enabled */
 #define UART_BUG_TXRACE	BIT(5)	/* UART Tx fails to set remote DR */
 
 
@@ -333,22 +332,6 @@
 extern int serial8250_request_dma(struct uart_8250_port *);
 extern void serial8250_release_dma(struct uart_8250_port *);
 
-static inline void serial8250_do_prepare_tx_dma(struct uart_8250_port *p)
-{
-	struct uart_8250_dma *dma = p->dma;
-
-	if (dma->prepare_tx_dma)
-		dma->prepare_tx_dma(p);
-}
-
-static inline void serial8250_do_prepare_rx_dma(struct uart_8250_port *p)
-{
-	struct uart_8250_dma *dma = p->dma;
-
-	if (dma->prepare_rx_dma)
-		dma->prepare_rx_dma(p);
-}
-
 static inline bool serial8250_tx_dma_running(struct uart_8250_port *p)
 {
 	struct uart_8250_dma *dma = p->dma;
diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c
index 1890f34..4aefb26 100644
--- a/drivers/tty/serial/8250/8250_core.c
+++ b/drivers/tty/serial/8250/8250_core.c
@@ -300,9 +300,10 @@
 		jiffies + uart_poll_timeout(&up->port) + HZ / 5);
 }
 
-static void univ8250_setup_timer(struct uart_8250_port *up)
+static int univ8250_setup_irq(struct uart_8250_port *up)
 {
 	struct uart_port *port = &up->port;
+	int retval = 0;
 
 	/*
 	 * The above check will only give an accurate result the first time
@@ -323,16 +324,10 @@
 	 */
 	if (!port->irq)
 		mod_timer(&up->timer, jiffies + uart_poll_timeout(port));
-}
+	else
+		retval = serial_link_irq_chain(up);
 
-static int univ8250_setup_irq(struct uart_8250_port *up)
-{
-	struct uart_port *port = &up->port;
-
-	if (port->irq)
-		return serial_link_irq_chain(up);
-
-	return 0;
+	return retval;
 }
 
 static void univ8250_release_irq(struct uart_8250_port *up)
@@ -388,7 +383,6 @@
 static const struct uart_8250_ops univ8250_driver_ops = {
 	.setup_irq	= univ8250_setup_irq,
 	.release_irq	= univ8250_release_irq,
-	.setup_timer	= univ8250_setup_timer,
 };
 
 static struct uart_8250_port serial8250_ports[UART_NR];
@@ -1016,7 +1010,6 @@
 		uart->port.throttle	= up->port.throttle;
 		uart->port.unthrottle	= up->port.unthrottle;
 		uart->port.rs485_config	= up->port.rs485_config;
-		uart->port.rs485_supported = up->port.rs485_supported;
 		uart->port.rs485	= up->port.rs485;
 		uart->rs485_start_tx	= up->rs485_start_tx;
 		uart->rs485_stop_tx	= up->rs485_stop_tx;
diff --git a/drivers/tty/serial/8250/8250_dma.c b/drivers/tty/serial/8250/8250_dma.c
index ec3cd72..33ce4b2 100644
--- a/drivers/tty/serial/8250/8250_dma.c
+++ b/drivers/tty/serial/8250/8250_dma.c
@@ -106,8 +106,6 @@
 
 	dma->tx_size = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE);
 
-	serial8250_do_prepare_tx_dma(p);
-
 	desc = dmaengine_prep_slave_single(dma->txchan,
 					   dma->tx_addr + xmit->tail,
 					   dma->tx_size, DMA_MEM_TO_DEV,
@@ -145,8 +143,6 @@
 	if (dma->rx_running)
 		return 0;
 
-	serial8250_do_prepare_rx_dma(p);
-
 	desc = dmaengine_prep_slave_single(dma->rxchan, dma->rx_addr,
 					   dma->rx_size, DMA_DEV_TO_MEM,
 					   DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c
index 5f0daa0..f8707a6 100644
--- a/drivers/tty/serial/8250/8250_pci.c
+++ b/drivers/tty/serial/8250/8250_pci.c
@@ -1232,10 +1232,6 @@
 	serial8250_do_set_mctrl(port, mctrl);
 }
 
-/*
- * We require EFR features for clock programming, so set UPF_FULL_PROBE
- * for full probing regardless of CONFIG_SERIAL_8250_16550A_VARIANTS setting.
- */
 static int pci_oxsemi_tornado_setup(struct serial_private *priv,
 				    const struct pciserial_board *board,
 				    struct uart_8250_port *up, int idx)
@@ -1243,7 +1239,6 @@
 	struct pci_dev *dev = priv->dev;
 
 	if (pci_oxsemi_tornado_p(dev)) {
-		up->port.flags |= UPF_FULL_PROBE;
 		up->port.get_divisor = pci_oxsemi_tornado_get_divisor;
 		up->port.set_divisor = pci_oxsemi_tornado_set_divisor;
 		up->port.set_mctrl = pci_oxsemi_tornado_set_mctrl;
@@ -1252,6 +1247,14 @@
 	return pci_default_setup(priv, board, up, idx);
 }
 
+static int pci_asix_setup(struct serial_private *priv,
+		  const struct pciserial_board *board,
+		  struct uart_8250_port *port, int idx)
+{
+	port->bugs |= UART_BUG_PARITY;
+	return pci_default_setup(priv, board, port, idx);
+}
+
 /* Quatech devices have their own extra interface features */
 
 struct quatech_feature {
@@ -2074,6 +2077,7 @@
 #define PCI_DEVICE_ID_WCH_CH355_4S	0x7173
 #define PCI_VENDOR_ID_AGESTAR		0x5372
 #define PCI_DEVICE_ID_AGESTAR_9375	0x6872
+#define PCI_VENDOR_ID_ASIX		0x9710
 #define PCI_DEVICE_ID_BROADCOM_TRUMANAGE 0x160a
 #define PCI_DEVICE_ID_AMCC_ADDIDATA_APCI7800 0x818e
 
@@ -2884,6 +2888,16 @@
 		.setup          = pci_wch_ch38x_setup,
 	},
 	/*
+	 * ASIX devices with FIFO bug
+	 */
+	{
+		.vendor		= PCI_VENDOR_ID_ASIX,
+		.device		= PCI_ANY_ID,
+		.subvendor	= PCI_ANY_ID,
+		.subdevice	= PCI_ANY_ID,
+		.setup		= pci_asix_setup,
+	},
+	/*
 	 * Broadcom TruManage (NetXtreme)
 	 */
 	{
diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
index 74e4770..1a15106 100644
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
@@ -1032,8 +1032,7 @@
 	up->port.type = PORT_16550A;
 	up->capabilities |= UART_CAP_FIFO;
 
-	if (!IS_ENABLED(CONFIG_SERIAL_8250_16550A_VARIANTS) &&
-	    !(up->port.flags & UPF_FULL_PROBE))
+	if (!IS_ENABLED(CONFIG_SERIAL_8250_16550A_VARIANTS))
 		return;
 
 	/*
@@ -2298,10 +2297,6 @@
 	if (port->irq && (up->port.flags & UPF_SHARE_IRQ))
 		up->port.irqflags |= IRQF_SHARED;
 
-	retval = up->ops->setup_irq(up);
-	if (retval)
-		goto out;
-
 	if (port->irq && !(up->port.flags & UPF_NO_THRE_TEST)) {
 		unsigned char iir1;
 
@@ -2344,7 +2339,9 @@
 		}
 	}
 
-	up->ops->setup_timer(up);
+	retval = up->ops->setup_irq(up);
+	if (retval)
+		goto out;
 
 	/*
 	 * Now, initialize the UART
@@ -2620,8 +2617,11 @@
 
 	if (c_cflag & CSTOPB)
 		cval |= UART_LCR_STOP;
-	if (c_cflag & PARENB)
+	if (c_cflag & PARENB) {
 		cval |= UART_LCR_PARITY;
+		if (up->bugs & UART_BUG_PARITY)
+			up->fifo_bug = true;
+	}
 	if (!(c_cflag & PARODD))
 		cval |= UART_LCR_EPAR;
 #ifdef CMSPAR
@@ -2784,7 +2784,8 @@
 	up->lcr = cval;					/* Save computed LCR */
 
 	if (up->capabilities & UART_CAP_FIFO && port->fifosize > 1) {
-		if (baud < 2400 && !up->dma) {
+		/* NOTE: If fifo_bug is not set, a user can set RX_trigger. */
+		if ((baud < 2400 && !up->dma) || up->fifo_bug) {
 			up->fcr &= ~UART_FCR_TRIGGER_MASK;
 			up->fcr |= UART_FCR_TRIGGER_1;
 		}
@@ -3120,7 +3121,8 @@
 	struct uart_8250_port *up = up_to_u8250p(uport);
 	int rxtrig;
 
-	if (!(up->capabilities & UART_CAP_FIFO) || uport->fifosize <= 1)
+	if (!(up->capabilities & UART_CAP_FIFO) || uport->fifosize <= 1 ||
+	    up->fifo_bug)
 		return -EINVAL;
 
 	rxtrig = bytes_to_fcr_rxtrig(up, bytes);
diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index 131a6a5..029210f 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -236,7 +236,6 @@
 
 config SERIAL_SAMSUNG
 	tristate "Samsung SoC serial support"
-	depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || ARCH_APPLE || COMPILE_TEST
 	select SERIAL_CORE
 	help
 	  Support for the on-chip UARTs on the Samsung S3C24XX series CPUs,
@@ -938,6 +937,18 @@
 	depends on QCOM_GENI_SE
 	select SERIAL_CORE
 
+config SERIAL_QCOM_GENI_CONSOLE_DEFAULT_ENABLED
+	bool "Enable QCOM on-chip GENI serial port for kernel console usage"
+	default y
+	depends on SERIAL_QCOM_GENI
+	help
+	  Runtime enablement of serial HW for kernel can be controlled using
+	  qcom_geni_serial.con_enabled=1. This is useful for kernels that should
+	  have serial driver compiled, but not used for performance.
+	  This option controls the default value for con_enabled.
+
+	  If unsure, say Y.
+
 config SERIAL_QCOM_GENI_CONSOLE
 	bool "QCOM GENI Serial Console support"
 	depends on SERIAL_QCOM_GENI
diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c
index e0d576b..223b735 100644
--- a/drivers/tty/serial/fsl_lpuart.c
+++ b/drivers/tty/serial/fsl_lpuart.c
@@ -2669,11 +2669,6 @@
 	.cons		= LPUART_CONSOLE,
 };
 
-static const struct serial_rs485 lpuart_rs485_supported = {
-	.flags = SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | SER_RS485_RTS_AFTER_SEND,
-	/* delay_rts_* and RX_DURING_TX are not supported */
-};
-
 static int lpuart_global_reset(struct lpuart_port *sport)
 {
 	struct uart_port *port = &sport->port;
@@ -2762,7 +2757,6 @@
 		sport->port.rs485_config = lpuart32_config_rs485;
 	else
 		sport->port.rs485_config = lpuart_config_rs485;
-	sport->port.rs485_supported = &lpuart_rs485_supported;
 
 	sport->ipg_clk = devm_clk_get(&pdev->dev, "ipg");
 	if (IS_ERR(sport->ipg_clk)) {
diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c
index 45010c7..8be8f81 100644
--- a/drivers/tty/serial/qcom_geni_serial.c
+++ b/drivers/tty/serial/qcom_geni_serial.c
@@ -1,5 +1,11 @@
 // SPDX-License-Identifier: GPL-2.0
-// Copyright (c) 2017-2018, The Linux foundation. All rights reserved.
+/*
+ * Copyright (c) 2017-2018, The Linux foundation. All rights reserved.
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/* Disable MMIO tracing to prevent excessive logging of unwanted MMIO traces */
+#define __DISABLE_TRACE_MMIO__
 
 #include <linux/clk.h>
 #include <linux/console.h>
@@ -7,6 +13,7 @@
 #include <linux/iopoll.h>
 #include <linux/irq.h>
 #include <linux/module.h>
+#include <linux/moduleparam.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
 #include <linux/pm_opp.h>
@@ -19,6 +26,10 @@
 #include <linux/slab.h>
 #include <linux/tty.h>
 #include <linux/tty_flip.h>
+#include <linux/pinctrl/consumer.h>
+
+static bool con_enabled = IS_ENABLED(CONFIG_SERIAL_QCOM_GENI_CONSOLE_DEFAULT_ENABLED);
+module_param(con_enabled, bool, 0644);
 
 /* UART specific GENI registers */
 #define SE_UART_LOOPBACK_CFG		0x22c
@@ -136,6 +147,7 @@
 	int wakeup_irq;
 	bool rx_tx_swap;
 	bool cts_rts_swap;
+	bool is_console;
 
 	struct qcom_geni_private_data private_data;
 };
@@ -941,6 +953,7 @@
 			       false, true, true);
 	geni_se_init(&port->se, UART_RX_WM, port->rx_fifo_depth - 2);
 	geni_se_select_mode(&port->se, GENI_SE_FIFO);
+	qcom_geni_serial_start_rx(uport);
 	port->setup = true;
 
 	return 0;
@@ -1370,6 +1383,18 @@
 		return PTR_ERR(port);
 	}
 
+	port->is_console = console;
+
+	if (console && !con_enabled) {
+		dev_err(&pdev->dev, "%s, Console Disabled\n", __func__);
+		ret = pinctrl_pm_select_sleep_state(&pdev->dev);
+		if (ret)
+			dev_err(&pdev->dev,
+				"failed to set pinctrl state to sleep %d\n", ret);
+		platform_set_drvdata(pdev, port);
+		return ret;
+	}
+
 	uport = &port->uport;
 	/* Don't allow 2 drivers to access the same port */
 	if (uport->private_data)
@@ -1479,6 +1504,12 @@
 	struct qcom_geni_serial_port *port = platform_get_drvdata(pdev);
 	struct uart_driver *drv = port->private_data.drv;
 
+	/* Platform driver is registered for console and when console
+	 * is disabled from cmdline simply return success.
+	 */
+	if (port->is_console && !con_enabled)
+		return 0;
+
 	dev_pm_clear_wake_irq(&pdev->dev);
 	device_init_wakeup(&pdev->dev, false);
 	uart_remove_one_port(drv, &port->uport);
@@ -1488,9 +1519,18 @@
 
 static int __maybe_unused qcom_geni_serial_sys_suspend(struct device *dev)
 {
+	struct uart_port *uport;
+	struct qcom_geni_private_data *private_data;
 	struct qcom_geni_serial_port *port = dev_get_drvdata(dev);
-	struct uart_port *uport = &port->uport;
-	struct qcom_geni_private_data *private_data = uport->private_data;
+
+	/* Platform driver is registered for console and when console
+	 * is disabled from cmdline simply return success.
+	 */
+	if (port->is_console && !con_enabled)
+		return 0;
+
+	uport = &port->uport;
+	private_data = uport->private_data;
 
 	/*
 	 * This is done so we can hit the lowest possible state in suspend
@@ -1506,9 +1546,18 @@
 static int __maybe_unused qcom_geni_serial_sys_resume(struct device *dev)
 {
 	int ret;
+	struct uart_port *uport;
+	struct qcom_geni_private_data *private_data;
 	struct qcom_geni_serial_port *port = dev_get_drvdata(dev);
-	struct uart_port *uport = &port->uport;
-	struct qcom_geni_private_data *private_data = uport->private_data;
+
+	/* Platform driver is registered for console and when console
+	 * is disabled from cmdline simply return success.
+	 */
+	if (port->is_console && !con_enabled)
+		return 0;
+
+	uport = &port->uport;
+	private_data = uport->private_data;
 
 	ret = uart_resume_port(private_data->drv, uport);
 	if (uart_console(uport)) {
@@ -1518,9 +1567,43 @@
 	return ret;
 }
 
+static int qcom_geni_serial_sys_hib_resume(struct device *dev)
+{
+	int ret = 0;
+	struct uart_port *uport;
+	struct qcom_geni_private_data *private_data;
+	struct qcom_geni_serial_port *port = dev_get_drvdata(dev);
+
+	uport = &port->uport;
+	private_data = uport->private_data;
+
+	if (uart_console(uport)) {
+		geni_icc_set_tag(&port->se, 0x7);
+		geni_icc_set_bw(&port->se);
+		ret = uart_resume_port(private_data->drv, uport);
+		/*
+		 * For hibernation usecase clients for
+		 * console UART won't call port setup during restore,
+		 * hence call port setup for console uart.
+		 */
+		qcom_geni_serial_port_setup(uport);
+	} else {
+		/*
+		 * Peripheral register settings are lost during hibernation.
+		 * Update setup flag such that port setup happens again
+		 * during next session. Clients of HS-UART will close and
+		 * open the port during hibernation.
+		 */
+		port->setup = false;
+	}
+	return ret;
+}
+
 static const struct dev_pm_ops qcom_geni_serial_pm_ops = {
 	SET_SYSTEM_SLEEP_PM_OPS(qcom_geni_serial_sys_suspend,
 					qcom_geni_serial_sys_resume)
+	.restore = qcom_geni_serial_sys_hib_resume,
+	.thaw = qcom_geni_serial_sys_hib_resume,
 };
 
 static const struct of_device_id qcom_geni_serial_match_table[] = {
@@ -1544,19 +1627,22 @@
 {
 	int ret;
 
-	ret = console_register(&qcom_geni_console_driver);
+	ret = uart_register_driver(&qcom_geni_uart_driver);
 	if (ret)
 		return ret;
 
-	ret = uart_register_driver(&qcom_geni_uart_driver);
-	if (ret) {
-		console_unregister(&qcom_geni_console_driver);
-		return ret;
+	if (con_enabled) {
+		ret = console_register(&qcom_geni_console_driver);
+		if (ret) {
+			uart_unregister_driver(&qcom_geni_uart_driver);
+			return ret;
+		}
 	}
 
 	ret = platform_driver_register(&qcom_geni_serial_platform_driver);
 	if (ret) {
-		console_unregister(&qcom_geni_console_driver);
+		if (con_enabled)
+			console_unregister(&qcom_geni_console_driver);
 		uart_unregister_driver(&qcom_geni_uart_driver);
 	}
 	return ret;
@@ -1566,7 +1652,8 @@
 static void __exit qcom_geni_serial_exit(void)
 {
 	platform_driver_unregister(&qcom_geni_serial_platform_driver);
-	console_unregister(&qcom_geni_console_driver);
+	if (con_enabled)
+		console_unregister(&qcom_geni_console_driver);
 	uart_unregister_driver(&qcom_geni_uart_driver);
 }
 module_exit(qcom_geni_serial_exit);
diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
index 4ffed77..179edba 100644
--- a/drivers/tty/sysrq.c
+++ b/drivers/tty/sysrq.c
@@ -55,6 +55,8 @@
 #include <asm/ptrace.h>
 #include <asm/irq_regs.h>
 
+#include <trace/hooks/sysrqcrash.h>
+
 /* Whether we react on sysrq keys or just ignore them */
 static int __read_mostly sysrq_enabled = CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE;
 static bool __read_mostly sysrq_always_enabled;
@@ -152,6 +154,8 @@
 	/* release the RCU read lock before crashing */
 	rcu_read_unlock();
 
+	trace_android_vh_sysrq_crash(current);
+
 	panic("sysrq triggered crash\n");
 }
 static const struct sysrq_key_op sysrq_crash_op = {
diff --git a/drivers/tty/tty_buffer.c b/drivers/tty/tty_buffer.c
index f3143ae..cc4a313 100644
--- a/drivers/tty/tty_buffer.c
+++ b/drivers/tty/tty_buffer.c
@@ -654,3 +654,9 @@
 {
 	flush_work(&port->buf.work);
 }
+
+void tty_schedule_flip(struct tty_port *port)
+{
+	tty_flip_buffer_push(port);
+}
+EXPORT_SYMBOL(tty_schedule_flip);
diff --git a/drivers/usb/atm/usbatm.c b/drivers/usb/atm/usbatm.c
index 33ae03a..02d93b7 100644
--- a/drivers/usb/atm/usbatm.c
+++ b/drivers/usb/atm/usbatm.c
@@ -1024,7 +1024,7 @@
 	/* public fields */
 
 	instance->driver = driver;
-	strlcpy(instance->driver_name, driver->driver_name,
+	strscpy(instance->driver_name, driver->driver_name,
 		sizeof(instance->driver_name));
 
 	instance->usb_dev = usb_dev;
diff --git a/drivers/usb/common/usb-conn-gpio.c b/drivers/usb/common/usb-conn-gpio.c
index 521c959..4e62807 100644
--- a/drivers/usb/common/usb-conn-gpio.c
+++ b/drivers/usb/common/usb-conn-gpio.c
@@ -42,6 +42,15 @@
 
 	struct power_supply_desc desc;
 	struct power_supply *charger;
+};
+
+/**
+ * struct usb_conn_info_vendor - contains parameters without modifying the format of usb_conn_info
+ * @info: contains usb_conn_info structure reference
+ * initial_detection: bool to check if it's initial detection after probe
+ */
+struct usb_conn_info_vendor {
+	struct usb_conn_info info;
 	bool initial_detection;
 };
 
@@ -65,12 +74,15 @@
 static void usb_conn_detect_cable(struct work_struct *work)
 {
 	struct usb_conn_info *info;
+	struct usb_conn_info_vendor *v_info;
 	enum usb_role role;
 	int id, vbus, ret;
 
 	info = container_of(to_delayed_work(work),
 			    struct usb_conn_info, dw_det);
 
+	v_info = container_of(info, struct usb_conn_info_vendor, info);
+
 	/* check ID and VBUS */
 	id = info->id_gpiod ?
 		gpiod_get_value_cansleep(info->id_gpiod) : 1;
@@ -87,12 +99,12 @@
 	dev_dbg(info->dev, "role %s -> %s, gpios: id %d, vbus %d\n",
 		usb_role_string(info->last_role), usb_role_string(role), id, vbus);
 
-	if (!info->initial_detection && info->last_role == role) {
+	if (!v_info->initial_detection && info->last_role == role) {
 		dev_warn(info->dev, "repeated role: %s\n", usb_role_string(role));
 		return;
 	}
 
-	info->initial_detection = false;
+	v_info->initial_detection = false;
 
 	if (info->last_role == USB_ROLE_HOST && info->vbus)
 		regulator_disable(info->vbus);
@@ -178,13 +190,15 @@
 {
 	struct device *dev = &pdev->dev;
 	struct usb_conn_info *info;
+	struct usb_conn_info_vendor *v_info;
 	bool need_vbus = true;
 	int ret = 0;
 
-	info = devm_kzalloc(dev, sizeof(*info), GFP_KERNEL);
-	if (!info)
+	v_info = devm_kzalloc(dev, sizeof(*v_info), GFP_KERNEL);
+	if (!v_info)
 		return -ENOMEM;
 
+	info = &v_info->info;
 	info->dev = dev;
 	info->id_gpiod = devm_gpiod_get_optional(dev, "id", GPIOD_IN);
 	if (IS_ERR(info->id_gpiod))
@@ -274,9 +288,10 @@
 	}
 
 	platform_set_drvdata(pdev, info);
+	device_set_wakeup_capable(&pdev->dev, true);
 
 	/* Perform initial detection */
-	info->initial_detection = true;
+	v_info->initial_detection = true;
 	usb_conn_queue_dwork(info, 0);
 
 	return 0;
@@ -304,6 +319,14 @@
 {
 	struct usb_conn_info *info = dev_get_drvdata(dev);
 
+	if (device_may_wakeup(dev)) {
+		if (info->id_gpiod)
+			enable_irq_wake(info->id_irq);
+		if (info->vbus_gpiod)
+			enable_irq_wake(info->vbus_irq);
+		return 0;
+	}
+
 	if (info->id_gpiod)
 		disable_irq(info->id_irq);
 	if (info->vbus_gpiod)
@@ -318,6 +341,14 @@
 {
 	struct usb_conn_info *info = dev_get_drvdata(dev);
 
+	if (device_may_wakeup(dev)) {
+		if (info->id_gpiod)
+			disable_irq_wake(info->id_irq);
+		if (info->vbus_gpiod)
+			disable_irq_wake(info->vbus_irq);
+		return 0;
+	}
+
 	pinctrl_pm_select_default_state(dev);
 
 	if (info->id_gpiod)
diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
index 5cd0a72..d4876fe 100644
--- a/drivers/usb/core/devio.c
+++ b/drivers/usb/core/devio.c
@@ -1432,7 +1432,7 @@
 	if (!intf || !intf->dev.driver)
 		ret = -ENODATA;
 	else {
-		strlcpy(gd.driver, intf->dev.driver->name,
+		strscpy(gd.driver, intf->dev.driver->name,
 				sizeof(gd.driver));
 		ret = (copy_to_user(arg, &gd, sizeof(gd)) ? -EFAULT : 0);
 	}
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
index 6c5934d..5f72914 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -1691,6 +1691,7 @@
 
 	spin_lock_irq(&bh->lock);
 	bh->running = true;
+ restart:
 	list_replace_init(&bh->head, &local_list);
 	spin_unlock_irq(&bh->lock);
 
@@ -1704,17 +1705,10 @@
 		bh->completing_ep = NULL;
 	}
 
-	/*
-	 * giveback new URBs next time to prevent this function
-	 * from not exiting for a long time.
-	 */
+	/* check if there are new URBs to giveback */
 	spin_lock_irq(&bh->lock);
-	if (!list_empty(&bh->head)) {
-		if (bh->high_prio)
-			tasklet_hi_schedule(&bh->bh);
-		else
-			tasklet_schedule(&bh->bh);
-	}
+	if (!list_empty(&bh->head))
+		goto restart;
 	bh->running = false;
 	spin_unlock_irq(&bh->lock);
 }
@@ -1743,7 +1737,7 @@
 void usb_hcd_giveback_urb(struct usb_hcd *hcd, struct urb *urb, int status)
 {
 	struct giveback_urb_bh *bh;
-	bool running;
+	bool running, high_prio_bh;
 
 	/* pass status to tasklet via unlinked */
 	if (likely(!urb->unlinked))
@@ -1754,10 +1748,13 @@
 		return;
 	}
 
-	if (usb_pipeisoc(urb->pipe) || usb_pipeint(urb->pipe))
+	if (usb_pipeisoc(urb->pipe) || usb_pipeint(urb->pipe)) {
 		bh = &hcd->high_prio_bh;
-	else
+		high_prio_bh = true;
+	} else {
 		bh = &hcd->low_prio_bh;
+		high_prio_bh = false;
+	}
 
 	spin_lock(&bh->lock);
 	list_add_tail(&urb->urb_list, &bh->head);
@@ -1766,7 +1763,7 @@
 
 	if (running)
 		;
-	else if (bh->high_prio)
+	else if (high_prio_bh)
 		tasklet_hi_schedule(&bh->bh);
 	else
 		tasklet_schedule(&bh->bh);
@@ -2962,7 +2959,6 @@
 
 	/* initialize tasklets */
 	init_giveback_urb_bh(&hcd->high_prio_bh);
-	hcd->high_prio_bh.high_prio = true;
 	init_giveback_urb_bh(&hcd->low_prio_bh);
 
 	/* enable irqs just before we start the controller,
@@ -3145,8 +3141,6 @@
 
 /*-------------------------------------------------------------------------*/
 
-#if IS_ENABLED(CONFIG_USB_MON)
-
 const struct usb_mon_operations *mon_ops;
 
 /*
@@ -3180,5 +3174,3 @@
 	mb();
 }
 EXPORT_SYMBOL_GPL (usb_mon_deregister);
-
-#endif /* CONFIG_USB_MON || CONFIG_USB_MON_MODULE */
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 2295d69..cd4d85e 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -34,6 +34,7 @@
 #include <linux/bitfield.h>
 #include <linux/uaccess.h>
 #include <asm/byteorder.h>
+#include <trace/hooks/usb.h>
 
 #include "hub.h"
 #include "otg_productlist.h"
@@ -2541,6 +2542,11 @@
 	dev_dbg(&udev->dev, "udev %d, busnum %d, minor = %d\n",
 			udev->devnum, udev->bus->busnum,
 			(((udev->bus->busnum-1) * 128) + (udev->devnum-1)));
+
+	trace_android_vh_usb_new_device_added(udev, &err);
+	if (err)
+		goto fail;
+
 	/* export the usbdev device-node for libusb */
 	udev->dev.devt = MKDEV(USB_DEVICE_MAJOR,
 			(((udev->bus->busnum-1) * 128) + (udev->devnum-1)));
@@ -3069,6 +3075,48 @@
 	return status;
 }
 
+/*
+ * hub_port_stop_enumerate - stop USB enumeration or ignore port events
+ * @hub: target hub
+ * @port1: port num of the port
+ * @retries: port retries number of hub_port_init()
+ *
+ * Return:
+ *    true: ignore port actions/events or give up connection attempts.
+ *    false: keep original behavior.
+ *
+ * This function will be based on retries to check whether the port which is
+ * marked with early_stop attribute would stop enumeration or ignore events.
+ *
+ * Note:
+ * This function didn't change anything if early_stop is not set, and it will
+ * prevent all connection attempts when early_stop is set and the attempts of
+ * the port are more than 1.
+ */
+static bool hub_port_stop_enumerate(struct usb_hub *hub, int port1, int retries)
+{
+	struct usb_port *port_dev = hub->ports[port1 - 1];
+
+	if (port_dev->early_stop) {
+		if (port_dev->ignore_event)
+			return true;
+
+		/*
+		 * We want unsuccessful attempts to fail quickly.
+		 * Since some devices may need one failure during
+		 * port initialization, we allow two tries but no
+		 * more.
+		 */
+		if (retries < 2)
+			return false;
+
+		port_dev->ignore_event = 1;
+	} else
+		port_dev->ignore_event = 0;
+
+	return port_dev->ignore_event;
+}
+
 /* Check if a port is power on */
 static int port_is_power_on(struct usb_hub *hub, unsigned portstatus)
 {
@@ -4803,6 +4851,11 @@
 	do_new_scheme = use_new_scheme(udev, retry_counter, port_dev);
 
 	for (retries = 0; retries < GET_DESCRIPTOR_TRIES; (++retries, msleep(100))) {
+		if (hub_port_stop_enumerate(hub, port1, retries)) {
+			retval = -ENODEV;
+			break;
+		}
+
 		if (do_new_scheme) {
 			struct usb_device_descriptor *buf;
 			int r = 0;
@@ -5251,6 +5304,11 @@
 	status = 0;
 
 	for (i = 0; i < PORT_INIT_TRIES; i++) {
+		if (hub_port_stop_enumerate(hub, port1, i)) {
+			status = -ENODEV;
+			break;
+		}
+
 		usb_lock_port(port_dev);
 		mutex_lock(hcd->address0_mutex);
 		retry_locked = true;
@@ -5620,6 +5678,10 @@
 	if (!pm_runtime_active(&port_dev->dev))
 		return;
 
+	/* skip port actions if ignore_event and early_stop are true */
+	if (port_dev->ignore_event && port_dev->early_stop)
+		return;
+
 	if (hub_handle_remote_wakeup(hub, port1, portstatus, portchange))
 		connect_change = 1;
 
@@ -5942,6 +6004,10 @@
 	mutex_lock(hcd->address0_mutex);
 
 	for (i = 0; i < PORT_INIT_TRIES; ++i) {
+		if (hub_port_stop_enumerate(parent_hub, port1, i)) {
+			ret = -ENODEV;
+			break;
+		}
 
 		/* ep0 maxpacket size may change; let the HCD know about it.
 		 * Other endpoints will be handled by re-enumeration. */
@@ -6055,11 +6121,6 @@
  * the reset is over (using their post_reset method).
  *
  * Return: The same as for usb_reset_and_verify_device().
- * However, if a reset is already in progress (for instance, if a
- * driver doesn't have pre_reset() or post_reset() callbacks, and while
- * being unbound or re-bound during the ongoing reset its disconnect()
- * or probe() routine tries to perform a second, nested reset), the
- * routine returns -EINPROGRESS.
  *
  * Note:
  * The caller must own the device lock.  For example, it's safe to use
@@ -6093,10 +6154,6 @@
 		return -EISDIR;
 	}
 
-	if (udev->reset_in_progress)
-		return -EINPROGRESS;
-	udev->reset_in_progress = 1;
-
 	port_dev = hub->ports[udev->portnum - 1];
 
 	/*
@@ -6161,7 +6218,6 @@
 
 	usb_autosuspend_device(udev);
 	memalloc_noio_restore(noio_flag);
-	udev->reset_in_progress = 0;
 	return ret;
 }
 EXPORT_SYMBOL_GPL(usb_reset_device);
diff --git a/drivers/usb/core/hub.h b/drivers/usb/core/hub.h
index 22ea1f4..fdb5d8c 100644
--- a/drivers/usb/core/hub.h
+++ b/drivers/usb/core/hub.h
@@ -89,6 +89,8 @@
  * @is_superspeed cache super-speed status
  * @usb3_lpm_u1_permit: whether USB3 U1 LPM is permitted.
  * @usb3_lpm_u2_permit: whether USB3 U2 LPM is permitted.
+ * @early_stop: whether port initialization will be stopped earlier.
+ * @ignore_event: whether events of the port are ignored.
  */
 struct usb_port {
 	struct usb_device *child;
@@ -102,6 +104,8 @@
 	u32 over_current_count;
 	u8 portnum;
 	u32 quirks;
+	unsigned int early_stop:1;
+	unsigned int ignore_event:1;
 	unsigned int is_superspeed:1;
 	unsigned int usb3_lpm_u1_permit:1;
 	unsigned int usb3_lpm_u2_permit:1;
diff --git a/drivers/usb/core/port.c b/drivers/usb/core/port.c
index dfcca9c..921a05a 100644
--- a/drivers/usb/core/port.c
+++ b/drivers/usb/core/port.c
@@ -16,6 +16,32 @@
 
 static const struct attribute_group *port_dev_group[];
 
+static ssize_t early_stop_show(struct device *dev,
+			       struct device_attribute *attr, char *buf)
+{
+	struct usb_port *port_dev = to_usb_port(dev);
+
+	return sysfs_emit(buf, "%s\n", port_dev->early_stop ? "yes" : "no");
+}
+
+static ssize_t early_stop_store(struct device *dev, struct device_attribute *attr,
+				const char *buf, size_t count)
+{
+	struct usb_port *port_dev = to_usb_port(dev);
+	bool value;
+
+	if (kstrtobool(buf, &value))
+		return -EINVAL;
+
+	if (value)
+		port_dev->early_stop = 1;
+	else
+		port_dev->early_stop = 0;
+
+	return count;
+}
+static DEVICE_ATTR_RW(early_stop);
+
 static ssize_t location_show(struct device *dev,
 			     struct device_attribute *attr, char *buf)
 {
@@ -152,6 +178,7 @@
 	&dev_attr_location.attr,
 	&dev_attr_quirks.attr,
 	&dev_attr_over_current_count.attr,
+	&dev_attr_early_stop.attr,
 	NULL,
 };
 
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index 6377b9c..83552f2 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -305,6 +305,7 @@
 			udelay(1);
 	} while (--retries);
 
+	dev_warn(dwc->dev, "DWC3 controller soft reset failed.\n");
 	return -ETIMEDOUT;
 
 done:
@@ -937,6 +938,44 @@
 	dwc3_writel(dwc->regs, DWC3_GSBUSCFG0, cfg);
 }
 
+static void dwc3_set_power_down_clk_scale(struct dwc3 *dwc)
+{
+	struct device *dev = dwc->dev;
+	struct device_node *node = dev->of_node;
+	struct clk *suspend_clk;
+	u32 scale;
+	u32 reg;
+
+	if (dwc->num_clks == 0)
+		return;
+
+	/*
+	 * The power down scale field specifies how many suspend_clk
+	 * periods fit into a 16KHz clock period. When performing
+	 * the division, round up the remainder.
+	 *
+	 * The power down scale value is calculated using the fastest
+	 * frequency of the suspend_clk. If it isn't fixed (but within
+	 * the accuracy requirement), the driver may not know the max
+	 * rate of the suspend_clk, so only update the power down scale
+	 * if the default is less than the calculated value from
+	 * clk_get_rate() or if the default is questionably high
+	 * (3x or more) to be within the requirement.
+	 */
+	suspend_clk = of_clk_get_by_name(node, "suspend");
+	if (IS_ERR(suspend_clk))
+		return;
+
+	scale = DIV_ROUND_UP(clk_get_rate(suspend_clk), 16000);
+	reg = dwc3_readl(dwc->regs, DWC3_GCTL);
+	if ((reg & DWC3_GCTL_PWRDNSCALE_MASK) < DWC3_GCTL_PWRDNSCALE(scale) ||
+	    (reg & DWC3_GCTL_PWRDNSCALE_MASK) > DWC3_GCTL_PWRDNSCALE(scale*3)) {
+		reg &= ~(DWC3_GCTL_PWRDNSCALE_MASK);
+		reg |= DWC3_GCTL_PWRDNSCALE(scale);
+		dwc3_writel(dwc->regs, DWC3_GCTL, reg);
+	}
+}
+
 /**
  * dwc3_core_init - Low-level initialization of DWC3 Core
  * @dwc: Pointer to our controller context structure
@@ -1018,6 +1057,9 @@
 	if (ret)
 		goto err1;
 
+	/* Set power down scale of suspend_clk */
+	dwc3_set_power_down_clk_scale(dwc);
+
 	/* Adjust Frame Length */
 	dwc3_frame_length_adjustment(dwc);
 
@@ -1050,21 +1092,6 @@
 		dwc3_writel(dwc->regs, DWC3_GUCTL2, reg);
 	}
 
-	/*
-	 * When configured in HOST mode, after issuing U3/L2 exit controller
-	 * fails to send proper CRC checksum in CRC5 feild. Because of this
-	 * behaviour Transaction Error is generated, resulting in reset and
-	 * re-enumeration of usb device attached. All the termsel, xcvrsel,
-	 * opmode becomes 0 during end of resume. Enabling bit 10 of GUCTL1
-	 * will correct this problem. This option is to support certain
-	 * legacy ULPI PHYs.
-	 */
-	if (dwc->resume_hs_terminations) {
-		reg = dwc3_readl(dwc->regs, DWC3_GUCTL1);
-		reg |= DWC3_GUCTL1_RESUME_OPMODE_HS_HOST;
-		dwc3_writel(dwc->regs, DWC3_GUCTL1, reg);
-	}
-
 	if (!DWC3_VER_IS_PRIOR(DWC3, 250A)) {
 		reg = dwc3_readl(dwc->regs, DWC3_GUCTL1);
 
@@ -1391,8 +1418,6 @@
 				"snps,dis-del-phy-power-chg-quirk");
 	dwc->dis_tx_ipgap_linecheck_quirk = device_property_read_bool(dev,
 				"snps,dis-tx-ipgap-linecheck-quirk");
-	dwc->resume_hs_terminations = device_property_read_bool(dev,
-				"snps,resume-hs-terminations");
 	dwc->parkmode_disable_ss_quirk = device_property_read_bool(dev,
 				"snps,parkmode-disable-ss-quirk");
 
@@ -1541,15 +1566,17 @@
 	struct device		*dev = &pdev->dev;
 	struct resource		*res, dwc_res;
 	struct dwc3		*dwc;
+	struct dwc3_vendor	*vdwc;
 
 	int			ret;
 
 	void __iomem		*regs;
 
-	dwc = devm_kzalloc(dev, sizeof(*dwc), GFP_KERNEL);
-	if (!dwc)
+	vdwc = devm_kzalloc(dev, sizeof(*vdwc), GFP_KERNEL);
+	if (!vdwc)
 		return -ENOMEM;
 
+	dwc = &vdwc->dwc;
 	dwc->dev = dev;
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index 3dcb5b7..1865de0 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -22,6 +22,7 @@
 #include <linux/debugfs.h>
 #include <linux/wait.h>
 #include <linux/workqueue.h>
+#include <linux/android_kabi.h>
 
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
@@ -230,6 +231,7 @@
 
 /* Global Configuration Register */
 #define DWC3_GCTL_PWRDNSCALE(n)	((n) << 19)
+#define DWC3_GCTL_PWRDNSCALE_MASK	DWC3_GCTL_PWRDNSCALE(0x1fff)
 #define DWC3_GCTL_U2RSTECN	BIT(16)
 #define DWC3_GCTL_RAMCLKSEL(x)	(((x) & DWC3_GCTL_CLK_MASK) << 6)
 #define DWC3_GCTL_CLK_BUS	(0)
@@ -257,7 +259,6 @@
 #define DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS	BIT(28)
 #define DWC3_GUCTL1_DEV_L1_EXIT_BY_HW		BIT(24)
 #define DWC3_GUCTL1_PARKMODE_DISABLE_SS		BIT(17)
-#define DWC3_GUCTL1_RESUME_OPMODE_HS_HOST	BIT(10)
 
 /* Global Status Register */
 #define DWC3_GSTS_OTG_IP	BIT(10)
@@ -658,6 +659,8 @@
 	dma_addr_t		dma;
 
 	struct dwc3		*dwc;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 #define DWC3_EP_FLAG_STALLED	BIT(0)
@@ -722,6 +725,7 @@
 #define DWC3_EP_FIRST_STREAM_PRIMED	BIT(10)
 #define DWC3_EP_PENDING_CLEAR_STALL	BIT(11)
 #define DWC3_EP_TXFIFO_RESIZED		BIT(12)
+#define DWC3_EP_DELAY_STOP             BIT(13)
 
 	/* This last one is specific to EP0 */
 #define DWC3_EP0_DIR_IN		BIT(31)
@@ -752,6 +756,9 @@
 	/* For isochronous START TRANSFER workaround only */
 	u8			combo_num;
 	int			start_cmd_status;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 enum dwc3_phy {
@@ -863,6 +870,9 @@
 	u32	hwparams7;
 	u32	hwparams8;
 	u32	hwparams9;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 /* HWPARAMS0 */
@@ -931,6 +941,9 @@
 	unsigned int		needs_extra_trb:1;
 	unsigned int		direction:1;
 	unsigned int		mapped:1;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 /*
@@ -1070,8 +1083,6 @@
  *			change quirk.
  * @dis_tx_ipgap_linecheck_quirk: set if we disable u2mac linestate
  *			check during HS transmit.
- * @resume-hs-terminations: Set if we enable quirk for fixing improper crc
- *			generation after resume from suspend.
  * @parkmode_disable_ss_quirk: set if we need to disable all SuperSpeed
  *			instances in park mode.
  * @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
@@ -1082,7 +1093,6 @@
  *	3	- Reserved
  * @dis_metastability_quirk: set to disable metastability quirk.
  * @dis_split_quirk: set to disable split boundary.
- * @suspended: set to track suspend event due to U3/L2.
  * @imod_interval: set the interrupt moderation interval in 250ns
  *			increments or 0 to disable.
  * @max_cfg_eps: current max number of IN eps used across all USB configs.
@@ -1090,6 +1100,7 @@
  *		     address.
  * @num_ep_resized: carries the current number endpoints which have had its tx
  *		    fifo resized.
+ * @clear_stall_protocol: endpoint number that requires a delayed status phase.
  * @debug_root: root debugfs directory for this device to put its files in.
  */
 struct dwc3 {
@@ -1286,7 +1297,6 @@
 	unsigned		dis_u2_freeclk_exists_quirk:1;
 	unsigned		dis_del_phy_power_chg_quirk:1;
 	unsigned		dis_tx_ipgap_linecheck_quirk:1;
-	unsigned		resume_hs_terminations:1;
 	unsigned		parkmode_disable_ss_quirk:1;
 
 	unsigned		tx_de_emphasis_quirk:1;
@@ -1296,14 +1306,29 @@
 
 	unsigned		dis_split_quirk:1;
 	unsigned		async_callbacks:1;
-	unsigned		suspended:1;
 
 	u16			imod_interval;
 
 	int			max_cfg_eps;
 	int			last_fifo_depth;
 	int			num_ep_resized;
-	struct dentry		*debug_root;
+
+	ANDROID_KABI_USE(1, struct{ u8 clear_stall_protocol; u8 padding1;
+				u8 padding2; u8 padding3; u8 padding4; u8 padding5;
+				u8 padding6; u8 padding7; });
+	ANDROID_KABI_USE(2, struct dentry *debug_root);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
+};
+
+/**
+ * struct dwc3_vendor - contains parameters without modifying the format of DWC3 core
+ * @dwc: contains dwc3 core reference
+ * @suspended: set to track suspend event due to U3/L2.
+ */
+struct dwc3_vendor {
+	struct dwc3	dwc;
+	unsigned	suspended:1;
 };
 
 #define INCRX_BURST_MODE 0
@@ -1538,6 +1563,7 @@
 int dwc3_send_gadget_generic_command(struct dwc3 *dwc, unsigned int cmd,
 		u32 param);
 void dwc3_gadget_clear_tx_fifos(struct dwc3 *dwc);
+void dwc3_remove_requests(struct dwc3 *dwc, struct dwc3_ep *dep, int status);
 #else
 static inline int dwc3_gadget_init(struct dwc3 *dwc)
 { return 0; }
diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c
index 6587394..0fdf2e4 100644
--- a/drivers/usb/dwc3/ep0.c
+++ b/drivers/usb/dwc3/ep0.c
@@ -197,7 +197,7 @@
 	int				ret;
 
 	spin_lock_irqsave(&dwc->lock, flags);
-	if (!dep->endpoint.desc || !dwc->pullups_connected) {
+	if (!dep->endpoint.desc || !dwc->pullups_connected || !dwc->connected) {
 		dev_err(dwc->dev, "%s: can't queue to disabled endpoint\n",
 				dep->name);
 		ret = -ESHUTDOWN;
@@ -218,7 +218,7 @@
 	return ret;
 }
 
-static void dwc3_ep0_stall_and_restart(struct dwc3 *dwc)
+void dwc3_ep0_stall_and_restart(struct dwc3 *dwc)
 {
 	struct dwc3_ep		*dep;
 
@@ -239,6 +239,8 @@
 		dwc3_gadget_giveback(dep, req, -ECONNRESET);
 	}
 
+	dwc->eps[0]->trb_enqueue = 0;
+	dwc->eps[1]->trb_enqueue = 0;
 	dwc->ep0state = EP0_SETUP_PHASE;
 	dwc3_ep0_out_start(dwc);
 }
@@ -271,6 +273,7 @@
 {
 	struct dwc3_ep			*dep;
 	int				ret;
+	int                             i;
 
 	complete(&dwc->ep0_in_setup);
 
@@ -279,6 +282,22 @@
 			DWC3_TRBCTL_CONTROL_SETUP, false);
 	ret = dwc3_ep0_start_trans(dep);
 	WARN_ON(ret < 0);
+	for (i = 2; i < DWC3_ENDPOINTS_NUM; i++) {
+		struct dwc3_ep *dwc3_ep;
+
+		dwc3_ep = dwc->eps[i];
+		if (!dwc3_ep)
+			continue;
+
+		if (!(dwc3_ep->flags & DWC3_EP_DELAY_STOP))
+			continue;
+
+		dwc3_ep->flags &= ~DWC3_EP_DELAY_STOP;
+		if (dwc->connected)
+			dwc3_stop_active_transfer(dwc3_ep, true, true);
+		else
+			dwc3_remove_requests(dwc, dwc3_ep, -ESHUTDOWN);
+	}
 }
 
 static struct dwc3_ep *dwc3_wIndex_to_dep(struct dwc3 *dwc, __le16 wIndex_le)
@@ -799,7 +818,7 @@
 	int ret = -EINVAL;
 	u32 len;
 
-	if (!dwc->gadget_driver)
+	if (!dwc->gadget_driver || !dwc->softconnect || !dwc->connected)
 		goto out;
 
 	trace_dwc3_ctrl_req(ctrl);
@@ -1066,6 +1085,7 @@
 	unsigned int direction = !dwc->ep0_expect_in;
 
 	dwc->delayed_status = false;
+	dwc->clear_stall_protocol = 0;
 
 	if (dwc->ep0state != EP0_STATUS_PHASE)
 		return;
@@ -1073,13 +1093,18 @@
 	__dwc3_ep0_do_control_status(dwc, dwc->eps[direction]);
 }
 
-static void dwc3_ep0_end_control_data(struct dwc3 *dwc, struct dwc3_ep *dep)
+void dwc3_ep0_end_control_data(struct dwc3 *dwc, struct dwc3_ep *dep)
 {
 	struct dwc3_gadget_ep_cmd_params params;
 	u32			cmd;
 	int			ret;
 
-	if (!dep->resource_index)
+	/*
+	 * For status/DATA OUT stage, TRB will be queued on ep0 out
+	 * endpoint for which resource index is zero. Hence allow
+	 * queuing ENDXFER command for ep0 out endpoint.
+	 */
+	if (!dep->resource_index && dep->number)
 		return;
 
 	cmd = DWC3_DEPCMD_ENDTRANSFER;
@@ -1096,6 +1121,8 @@
 {
 	switch (event->status) {
 	case DEPEVT_STATUS_CONTROL_DATA:
+		if (!dwc->softconnect || !dwc->connected)
+			return;
 		/*
 		 * We already have a DATA transfer in the controller's cache,
 		 * if we receive a XferNotReady(DATA) we will ignore it, unless
@@ -1120,6 +1147,11 @@
 		if (dwc->ep0_next_event != DWC3_EP0_NRDY_STATUS)
 			return;
 
+		if (dwc->setup_packet_pending) {
+			dwc3_ep0_stall_and_restart(dwc);
+			return;
+		}
+
 		dwc->ep0state = EP0_STATUS_PHASE;
 
 		if (dwc->delayed_status) {
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 8ada601..4a74cfc 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -139,6 +139,24 @@
 	return -ETIMEDOUT;
 }
 
+static void dwc3_ep0_reset_state(struct dwc3 *dwc)
+{
+	unsigned int	dir;
+
+	if (dwc->ep0state != EP0_SETUP_PHASE) {
+		dir = !!dwc->ep0_expect_in;
+		if (dwc->ep0state == EP0_DATA_PHASE)
+			dwc3_ep0_end_control_data(dwc, dwc->eps[dir]);
+		else
+			dwc3_ep0_end_control_data(dwc, dwc->eps[!dir]);
+
+		dwc->eps[0]->trb_enqueue = 0;
+		dwc->eps[1]->trb_enqueue = 0;
+
+		dwc3_ep0_stall_and_restart(dwc);
+	}
+}
+
 /**
  * dwc3_ep_inc_trb - increment a trb index.
  * @index: Pointer to the TRB index to increment.
@@ -333,9 +351,17 @@
 		}
 	}
 
-	dwc3_writel(dep->regs, DWC3_DEPCMDPAR0, params->param0);
-	dwc3_writel(dep->regs, DWC3_DEPCMDPAR1, params->param1);
-	dwc3_writel(dep->regs, DWC3_DEPCMDPAR2, params->param2);
+	/*
+	 * For some commands such as Update Transfer command, DEPCMDPARn
+	 * registers are reserved. Since the driver often sends Update Transfer
+	 * command, don't write to DEPCMDPARn to avoid register write delays and
+	 * improve performance.
+	 */
+	if (DWC3_DEPCMD_CMD(cmd) != DWC3_DEPCMD_UPDATETRANSFER) {
+		dwc3_writel(dep->regs, DWC3_DEPCMDPAR0, params->param0);
+		dwc3_writel(dep->regs, DWC3_DEPCMDPAR1, params->param1);
+		dwc3_writel(dep->regs, DWC3_DEPCMDPAR2, params->param2);
+	}
 
 	/*
 	 * Synopsys Databook 2.60a states in section 6.3.2.5.6 of that if we're
@@ -359,6 +385,14 @@
 		cmd |= DWC3_DEPCMD_CMDACT;
 
 	dwc3_writel(dep->regs, DWC3_DEPCMD, cmd);
+
+	if (!(cmd & DWC3_DEPCMD_CMDACT) ||
+		(DWC3_DEPCMD_CMD(cmd) == DWC3_DEPCMD_ENDTRANSFER &&
+		!(cmd & DWC3_DEPCMD_CMDIOC))) {
+		ret = 0;
+		goto skip_status;
+	}
+
 	do {
 		reg = dwc3_readl(dep->regs, DWC3_DEPCMD);
 		if (!(reg & DWC3_DEPCMD_CMDACT)) {
@@ -400,6 +434,7 @@
 		cmd_status = -ETIMEDOUT;
 	}
 
+skip_status:
 	trace_dwc3_gadget_ep_cmd(dep, cmd, params, cmd_status);
 
 	if (DWC3_DEPCMD_CMD(cmd) == DWC3_DEPCMD_STARTTRANSFER) {
@@ -641,9 +676,6 @@
 	return dwc3_send_gadget_ep_cmd(dep, DWC3_DEPCMD_SETEPCONFIG, &params);
 }
 
-static void dwc3_stop_active_transfer(struct dwc3_ep *dep, bool force,
-		bool interrupt);
-
 /**
  * dwc3_gadget_calc_tx_fifo_size - calculates the txfifo size value
  * @dwc: pointer to the DWC3 context
@@ -773,7 +805,8 @@
 		num_fifos = 3;
 
 	if (dep->endpoint.maxburst > 6 &&
-	    usb_endpoint_xfer_bulk(dep->endpoint.desc) && DWC3_IP_IS(DWC31))
+	    (usb_endpoint_xfer_bulk(dep->endpoint.desc) ||
+	     usb_endpoint_xfer_isoc(dep->endpoint.desc)) && DWC3_IP_IS(DWC31))
 		num_fifos = dwc->tx_fifo_resize_max_num;
 
 	/* FIFO size for a single buffer */
@@ -872,12 +905,13 @@
 		reg |= DWC3_DALEPENA_EP(dep->number);
 		dwc3_writel(dwc->regs, DWC3_DALEPENA, reg);
 
+		dep->trb_dequeue = 0;
+		dep->trb_enqueue = 0;
+
 		if (usb_endpoint_xfer_control(desc))
 			goto out;
 
 		/* Initialize the TRB ring */
-		dep->trb_dequeue = 0;
-		dep->trb_enqueue = 0;
 		memset(dep->trb_pool, 0,
 		       sizeof(struct dwc3_trb) * DWC3_TRB_NUM);
 
@@ -953,12 +987,16 @@
 	return 0;
 }
 
-static void dwc3_remove_requests(struct dwc3 *dwc, struct dwc3_ep *dep, int status)
+void dwc3_remove_requests(struct dwc3 *dwc, struct dwc3_ep *dep, int status)
 {
 	struct dwc3_request		*req;
 
 	dwc3_stop_active_transfer(dep, true, false);
 
+	/* If endxfer is delayed, avoid unmapping requests */
+	if (dep->flags & DWC3_EP_DELAY_STOP)
+		return;
+
 	/* - giveback all requests to gadget driver */
 	while (!list_empty(&dep->started_list)) {
 		req = next_request(&dep->started_list);
@@ -993,6 +1031,7 @@
 {
 	struct dwc3		*dwc = dep->dwc;
 	u32			reg;
+	u32			mask;
 
 	trace_dwc3_gadget_ep_disable(dep);
 
@@ -1008,7 +1047,15 @@
 
 	dep->stream_capable = false;
 	dep->type = 0;
-	dep->flags &= DWC3_EP_TXFIFO_RESIZED;
+	mask = DWC3_EP_TXFIFO_RESIZED;
+	/*
+	 * dwc3_remove_requests() can exit early if DWC3 EP delayed stop is
+	 * set.  Do not clear DEP flags, so that the end transfer command will
+	 * be reattempted during the next SETUP stage.
+	 */
+	if (dep->flags & DWC3_EP_DELAY_STOP)
+		mask |= (DWC3_EP_DELAY_STOP | DWC3_EP_TRANSFER_STARTED);
+	dep->flags &= mask;
 
 	/* Clear out the ep descriptors for non-ep0 */
 	if (dep->number > 1) {
@@ -1664,6 +1711,16 @@
 	cmd |= DWC3_DEPCMD_PARAM(dep->resource_index);
 	memset(&params, 0, sizeof(params));
 	ret = dwc3_send_gadget_ep_cmd(dep, cmd, &params);
+	/*
+	 * If the End Transfer command was timed out while the device is
+	 * not in SETUP phase, it's possible that an incoming Setup packet
+	 * may prevent the command's completion. Let's retry when the
+	 * ep0state returns to EP0_SETUP_PHASE.
+	 */
+	if (ret == -ETIMEDOUT && dep->dwc->ep0state != EP0_SETUP_PHASE) {
+		dep->flags |= DWC3_EP_DELAY_STOP;
+		return 0;
+	}
 	WARN_ON_ONCE(ret);
 	dep->resource_index = 0;
 
@@ -1675,6 +1732,7 @@
 		dep->flags |= DWC3_EP_END_TRANSFER_PENDING;
 	}
 
+	dep->flags &= ~DWC3_EP_DELAY_STOP;
 	return ret;
 }
 
@@ -1835,7 +1893,13 @@
 	}
 
 	for (i = 0; i < DWC3_ISOC_MAX_RETRIES; i++) {
-		dep->frame_number = DWC3_ALIGN_FRAME(dep, i + 1);
+		int future_interval = i + 1;
+
+		/* Give the controller at least 500us to schedule transfers */
+		if (desc->bInterval < 3)
+			future_interval += 3 - desc->bInterval;
+
+		dep->frame_number = DWC3_ALIGN_FRAME(dep, future_interval);
 
 		ret = __dwc3_gadget_kick_transfer(dep);
 		if (ret != -EAGAIN)
@@ -1858,7 +1922,7 @@
 	struct dwc3		*dwc = dep->dwc;
 
 	if (!dep->endpoint.desc || !dwc->pullups_connected || !dwc->connected) {
-		dev_err(dwc->dev, "%s: can't queue to disabled endpoint\n",
+		dev_dbg(dwc->dev, "%s: can't queue to disabled endpoint\n",
 				dep->name);
 		return -ESHUTDOWN;
 	}
@@ -1891,6 +1955,7 @@
 	 */
 	if ((dep->flags & DWC3_EP_END_TRANSFER_PENDING) ||
 	    (dep->flags & DWC3_EP_WEDGE) ||
+	    (dep->flags & DWC3_EP_DELAY_STOP) ||
 	    (dep->flags & DWC3_EP_STALL)) {
 		dep->flags |= DWC3_EP_DELAY_START;
 		return 0;
@@ -1905,13 +1970,11 @@
 	 * errors which will force us issue EndTransfer command.
 	 */
 	if (usb_endpoint_xfer_isoc(dep->endpoint.desc)) {
-		if (!(dep->flags & DWC3_EP_PENDING_REQUEST) &&
-				!(dep->flags & DWC3_EP_TRANSFER_STARTED))
-			return 0;
-
-		if ((dep->flags & DWC3_EP_PENDING_REQUEST)) {
-			if (!(dep->flags & DWC3_EP_TRANSFER_STARTED))
+		if (!(dep->flags & DWC3_EP_TRANSFER_STARTED)) {
+			if ((dep->flags & DWC3_EP_PENDING_REQUEST))
 				return __dwc3_gadget_start_isoc(dep);
+
+			return 0;
 		}
 	}
 
@@ -2061,8 +2124,6 @@
 {
 	struct dwc3_gadget_ep_cmd_params	params;
 	struct dwc3				*dwc = dep->dwc;
-	struct dwc3_request			*req;
-	struct dwc3_request			*tmp;
 	int					ret;
 
 	if (usb_endpoint_xfer_isoc(dep->endpoint.desc)) {
@@ -2111,16 +2172,18 @@
 
 		dwc3_stop_active_transfer(dep, true, true);
 
-		list_for_each_entry_safe(req, tmp, &dep->started_list, list)
-			dwc3_gadget_move_cancelled_request(req, DWC3_REQUEST_STATUS_STALLED);
+		if (!list_empty(&dep->started_list))
+			dep->flags |= DWC3_EP_DELAY_START;
 
-		if (dep->flags & DWC3_EP_END_TRANSFER_PENDING) {
+		if (dep->flags & DWC3_EP_END_TRANSFER_PENDING ||
+		    (dep->flags & DWC3_EP_DELAY_STOP)) {
 			dep->flags |= DWC3_EP_PENDING_CLEAR_STALL;
+			if (protocol)
+				dwc->clear_stall_protocol = dep->number;
+
 			return 0;
 		}
 
-		dwc3_gadget_ep_cleanup_cancelled_requests(dep);
-
 		ret = dwc3_send_clear_stall_ep_cmd(dep);
 		if (ret) {
 			dev_err(dwc->dev, "failed to clear STALL on %s\n",
@@ -2415,7 +2478,7 @@
 static int dwc3_gadget_run_stop(struct dwc3 *dwc, int is_on)
 {
 	u32			reg;
-	u32			timeout = 500;
+	u32			timeout = 2000;
 
 	if (pm_runtime_suspended(dwc->dev))
 		return 0;
@@ -2442,6 +2505,7 @@
 	dwc3_gadget_dctl_write_safe(dwc, reg);
 
 	do {
+		usleep_range(1000, 2000);
 		reg = dwc3_readl(dwc->regs, DWC3_DSTS);
 		reg &= DWC3_DSTS_DEVCTRLHLT;
 	} while (--timeout && !(!is_on ^ !reg));
@@ -2452,18 +2516,24 @@
 	return 0;
 }
 
-static void dwc3_gadget_disable_irq(struct dwc3 *dwc);
-static void __dwc3_gadget_stop(struct dwc3 *dwc);
 static int __dwc3_gadget_start(struct dwc3 *dwc);
 
 static int dwc3_gadget_soft_disconnect(struct dwc3 *dwc)
 {
 	unsigned long flags;
+	int ret;
 
 	spin_lock_irqsave(&dwc->lock, flags);
 	dwc->connected = false;
 
 	/*
+	 * Attempt to end pending SETUP status phase, and not wait for the
+	 * function to do so.
+	 */
+	if (dwc->delayed_status)
+		dwc3_ep0_send_delayed_status(dwc);
+
+	/*
 	 * In the Synopsys DesignWare Cores USB3 Databook Rev. 3.30a
 	 * Section 4.1.8 Table 4-7, it states that for a device-initiated
 	 * disconnect, the SW needs to ensure that it sends "a DEPENDXFER
@@ -2471,10 +2541,29 @@
 	 * bit.
 	 */
 	dwc3_stop_active_transfers(dwc);
-	__dwc3_gadget_stop(dwc);
 	spin_unlock_irqrestore(&dwc->lock, flags);
 
 	/*
+	 * Per databook, when we want to stop the gadget, if a control transfer
+	 * is still in process, complete it and get the core into setup phase.
+	 * In case the host is unresponsive to a SETUP transaction, forcefully
+	 * stall the transfer, and move back to the SETUP phase, so that any
+	 * pending endxfers can be executed.
+	 */
+	if (dwc->ep0state != EP0_SETUP_PHASE) {
+		reinit_completion(&dwc->ep0_in_setup);
+
+		ret = wait_for_completion_timeout(&dwc->ep0_in_setup,
+				msecs_to_jiffies(DWC3_PULL_UP_TIMEOUT));
+		if (ret == 0) {
+			dev_warn(dwc->dev, "wait for SETUP phase timed out\n");
+			spin_lock_irqsave(&dwc->lock, flags);
+			dwc3_ep0_reset_state(dwc);
+			spin_unlock_irqrestore(&dwc->lock, flags);
+		}
+	}
+
+	/*
 	 * Note: if the GEVNTCOUNT indicates events in the event buffer, the
 	 * driver needs to acknowledge them before the controller can halt.
 	 * Simply let the interrupt handler acknowledges and handle the
@@ -2505,20 +2594,7 @@
 	int			ret;
 
 	is_on = !!is_on;
-
 	dwc->softconnect = is_on;
-	/*
-	 * Per databook, when we want to stop the gadget, if a control transfer
-	 * is still in process, complete it and get the core into setup phase.
-	 */
-	if (!is_on && dwc->ep0state != EP0_SETUP_PHASE) {
-		reinit_completion(&dwc->ep0_in_setup);
-
-		ret = wait_for_completion_timeout(&dwc->ep0_in_setup,
-				msecs_to_jiffies(DWC3_PULL_UP_TIMEOUT));
-		if (ret == 0)
-			dev_warn(dwc->dev, "timed out waiting for SETUP phase\n");
-	}
 
 	/*
 	 * Avoid issuing a runtime resume if the device is already in the
@@ -2584,12 +2660,6 @@
 	dwc3_writel(dwc->regs, DWC3_DEVTEN, reg);
 }
 
-static void dwc3_gadget_disable_irq(struct dwc3 *dwc)
-{
-	/* mask all interrupts */
-	dwc3_writel(dwc->regs, DWC3_DEVTEN, 0x00);
-}
-
 static irqreturn_t dwc3_interrupt(int irq, void *_dwc);
 static irqreturn_t dwc3_thread_interrupt(int irq, void *_dwc);
 
@@ -2683,6 +2753,7 @@
 	dwc3_gadget_ep0_desc.wMaxPacketSize = cpu_to_le16(512);
 
 	dep = dwc->eps[0];
+	dep->flags = 0;
 	ret = __dwc3_gadget_ep_enable(dep, DWC3_DEPCFG_ACTION_INIT);
 	if (ret) {
 		dev_err(dwc->dev, "failed to enable %s\n", dep->name);
@@ -2690,6 +2761,7 @@
 	}
 
 	dep = dwc->eps[1];
+	dep->flags = 0;
 	ret = __dwc3_gadget_ep_enable(dep, DWC3_DEPCFG_ACTION_INIT);
 	if (ret) {
 		dev_err(dwc->dev, "failed to enable %s\n", dep->name);
@@ -2698,6 +2770,7 @@
 
 	/* begin to receive SETUP packets */
 	dwc->ep0state = EP0_SETUP_PHASE;
+	dwc->ep0_bounced = false;
 	dwc->link_state = DWC3_LINK_STATE_SS_DIS;
 	dwc->delayed_status = false;
 	dwc3_ep0_out_start(dwc);
@@ -2737,13 +2810,6 @@
 	return 0;
 }
 
-static void __dwc3_gadget_stop(struct dwc3 *dwc)
-{
-	dwc3_gadget_disable_irq(dwc);
-	__dwc3_gadget_ep_disable(dwc->eps[0]);
-	__dwc3_gadget_ep_disable(dwc->eps[1]);
-}
-
 static int dwc3_gadget_stop(struct usb_gadget *g)
 {
 	struct dwc3		*dwc = gadget_to_dwc(g);
@@ -2931,6 +2997,7 @@
 	struct dwc3 *dwc = dep->dwc;
 	u32 mdwidth;
 	int size;
+	int maxpacket;
 
 	mdwidth = dwc3_mdwidth(dwc);
 
@@ -2943,21 +3010,24 @@
 	else
 		size = DWC31_GTXFIFOSIZ_TXFDEP(size);
 
-	/* FIFO Depth is in MDWDITH bytes. Multiply */
-	size *= mdwidth;
-
 	/*
-	 * To meet performance requirement, a minimum TxFIFO size of 3x
-	 * MaxPacketSize is recommended for endpoints that support burst and a
-	 * minimum TxFIFO size of 2x MaxPacketSize for endpoints that don't
-	 * support burst. Use those numbers and we can calculate the max packet
-	 * limit as below.
+	 * maxpacket size is determined as part of the following, after assuming
+	 * a mult value of one maxpacket:
+	 * DWC3 revision 280A and prior:
+	 * fifo_size = mult * (max_packet / mdwidth) + 1;
+	 * maxpacket = mdwidth * (fifo_size - 1);
+	 *
+	 * DWC3 revision 290A and onwards:
+	 * fifo_size = mult * ((max_packet + mdwidth)/mdwidth + 1) + 1
+	 * maxpacket = mdwidth * ((fifo_size - 1) - 1) - mdwidth;
 	 */
-	if (dwc->maximum_speed >= USB_SPEED_SUPER)
-		size /= 3;
+	if (DWC3_VER_IS_PRIOR(DWC3, 290A))
+		maxpacket = mdwidth * (size - 1);
 	else
-		size /= 2;
+		maxpacket = mdwidth * ((size - 1) - 1) - mdwidth;
 
+	/* Functionally, space for one max packet is sufficient */
+	size = min_t(int, maxpacket, 1024);
 	usb_ep_set_maxpacket_limit(&dep->endpoint, size);
 
 	dep->endpoint.max_streams = 16;
@@ -3473,7 +3543,7 @@
 		}
 
 		dep->flags &= ~(DWC3_EP_STALL | DWC3_EP_WEDGE);
-		if (dwc->delayed_status)
+		if (dwc->clear_stall_protocol == dep->number)
 			dwc3_ep0_send_delayed_status(dwc);
 	}
 
@@ -3557,11 +3627,12 @@
 	dep = dwc->eps[epnum];
 
 	if (!(dep->flags & DWC3_EP_ENABLED)) {
-		if (!(dep->flags & DWC3_EP_TRANSFER_STARTED))
+		if ((epnum > 1) && !(dep->flags & DWC3_EP_TRANSFER_STARTED))
 			return;
 
 		/* Handle only EPCMDCMPLT when EP disabled */
-		if (event->endpoint_event != DWC3_DEPEVT_EPCMDCMPLT)
+		if ((event->endpoint_event != DWC3_DEPEVT_EPCMDCMPLT) &&
+			!(epnum <= 1 && event->endpoint_event == DWC3_DEPEVT_XFERCOMPLETE))
 			return;
 	}
 
@@ -3630,14 +3701,40 @@
 	}
 }
 
-static void dwc3_stop_active_transfer(struct dwc3_ep *dep, bool force,
+void dwc3_stop_active_transfer(struct dwc3_ep *dep, bool force,
 	bool interrupt)
 {
+	struct dwc3 *dwc = dep->dwc;
+
+	/*
+	 * Only issue End Transfer command to the control endpoint of a started
+	 * Data Phase. Typically we should only do so in error cases such as
+	 * invalid/unexpected direction as described in the control transfer
+	 * flow of the programming guide.
+	 */
+	if (dep->number <= 1 && dwc->ep0state != EP0_DATA_PHASE)
+		return;
+
+	if (interrupt && (dep->flags & DWC3_EP_DELAY_STOP))
+		return;
+
 	if (!(dep->flags & DWC3_EP_TRANSFER_STARTED) ||
 	    (dep->flags & DWC3_EP_END_TRANSFER_PENDING))
 		return;
 
 	/*
+	 * If a Setup packet is received but yet to DMA out, the controller will
+	 * not process the End Transfer command of any endpoint. Polling of its
+	 * DEPCMD.CmdAct may block setting up TRB for Setup packet, causing a
+	 * timeout. Delay issuing the End Transfer command until the Setup TRB is
+	 * prepared.
+	 */
+	if (dwc->ep0state != EP0_SETUP_PHASE && !dwc->delayed_status) {
+		dep->flags |= DWC3_EP_DELAY_STOP;
+		return;
+	}
+
+	/*
 	 * NOTICE: We are violating what the Databook says about the
 	 * EndTransfer command. Ideally we would _always_ wait for the
 	 * EndTransfer Command Completion IRQ, but that's causing too
@@ -3667,7 +3764,6 @@
 	 * controller to handle the command completely before DWC3
 	 * remove requests attempts to unmap USB request buffers.
 	 */
-
 	__dwc3_stop_active_transfer(dep, force, interrupt);
 }
 
@@ -3695,9 +3791,10 @@
 
 static void dwc3_gadget_disconnect_interrupt(struct dwc3 *dwc)
 {
+	struct dwc3_vendor	*vdwc = container_of(dwc, struct dwc3_vendor, dwc);
 	int			reg;
 
-	dwc->suspended = false;
+	vdwc->suspended = false;
 
 	dwc3_gadget_set_link_state(dwc, DWC3_LINK_STATE_RX_DET);
 
@@ -3706,20 +3803,23 @@
 	reg &= ~DWC3_DCTL_INITU2ENA;
 	dwc3_gadget_dctl_write_safe(dwc, reg);
 
+	dwc->connected = false;
+
 	dwc3_disconnect_gadget(dwc);
 
 	dwc->gadget->speed = USB_SPEED_UNKNOWN;
 	dwc->setup_packet_pending = false;
 	usb_gadget_set_state(dwc->gadget, USB_STATE_NOTATTACHED);
 
-	dwc->connected = false;
+	dwc3_ep0_reset_state(dwc);
 }
 
 static void dwc3_gadget_reset_interrupt(struct dwc3 *dwc)
 {
+	struct dwc3_vendor	*vdwc = container_of(dwc, struct dwc3_vendor, dwc);
 	u32			reg;
 
-	dwc->suspended = false;
+	vdwc->suspended = false;
 
 	/*
 	 * Ideally, dwc3_reset_gadget() would trigger the function
@@ -3762,6 +3862,14 @@
 	}
 
 	dwc3_reset_gadget(dwc);
+
+	/*
+	 * From SNPS databook section 8.1.2, the EP0 should be in setup
+	 * phase. So ensure that EP0 is in setup phase by issuing a stall
+	 * and restart if EP0 is not in setup phase.
+	 */
+	dwc3_ep0_reset_state(dwc);
+
 	/*
 	 * In the Synopsis DesignWare Cores USB3 Databook Rev. 3.30a
 	 * Section 4.1.2 Table 4-2, it states that during a USB reset, the SW
@@ -3791,6 +3899,9 @@
 	u8			lanes = 1;
 	u8			speed;
 
+	if (!dwc->softconnect)
+		return;
+
 	reg = dwc3_readl(dwc->regs, DWC3_DSTS);
 	speed = reg & DWC3_DSTS_CONNECTSPD;
 	dwc->speed = speed;
@@ -3926,7 +4037,9 @@
 
 static void dwc3_gadget_wakeup_interrupt(struct dwc3 *dwc)
 {
-	dwc->suspended = false;
+	struct dwc3_vendor	*vdwc = container_of(dwc, struct dwc3_vendor, dwc);
+
+	vdwc->suspended = false;
 
 	/*
 	 * TODO take core out of low power mode when that's
@@ -4041,10 +4154,11 @@
 static void dwc3_gadget_suspend_interrupt(struct dwc3 *dwc,
 					  unsigned int evtinfo)
 {
+	struct dwc3_vendor	*vdwc = container_of(dwc, struct dwc3_vendor, dwc);
 	enum dwc3_link_state next = evtinfo & DWC3_LINK_STATE_MASK;
 
-	if (!dwc->suspended && next == DWC3_LINK_STATE_U3) {
-		dwc->suspended = true;
+	if (!vdwc->suspended && next == DWC3_LINK_STATE_U3) {
+		vdwc->suspended = true;
 		dwc3_suspend_gadget(dwc);
 	}
 
@@ -4106,7 +4220,6 @@
 	struct dwc3 *dwc = evt->dwc;
 	irqreturn_t ret = IRQ_NONE;
 	int left;
-	u32 reg;
 
 	left = evt->count;
 
@@ -4137,9 +4250,8 @@
 	ret = IRQ_HANDLED;
 
 	/* Unmask interrupt */
-	reg = dwc3_readl(dwc->regs, DWC3_GEVNTSIZ(0));
-	reg &= ~DWC3_GEVNTSIZ_INTMASK;
-	dwc3_writel(dwc->regs, DWC3_GEVNTSIZ(0), reg);
+	dwc3_writel(dwc->regs, DWC3_GEVNTSIZ(0),
+		    DWC3_GEVNTSIZ_SIZE(evt->length));
 
 	if (dwc->imod_interval) {
 		dwc3_writel(dwc->regs, DWC3_GEVNTCOUNT(0), DWC3_GEVNTCOUNT_EHB);
@@ -4173,7 +4285,6 @@
 	struct dwc3 *dwc = evt->dwc;
 	u32 amount;
 	u32 count;
-	u32 reg;
 
 	if (pm_runtime_suspended(dwc->dev)) {
 		dwc->pending_events = true;
@@ -4205,9 +4316,8 @@
 	evt->flags |= DWC3_EVENT_PENDING;
 
 	/* Mask interrupt */
-	reg = dwc3_readl(dwc->regs, DWC3_GEVNTSIZ(0));
-	reg |= DWC3_GEVNTSIZ_INTMASK;
-	dwc3_writel(dwc->regs, DWC3_GEVNTSIZ(0), reg);
+	dwc3_writel(dwc->regs, DWC3_GEVNTSIZ(0),
+		    DWC3_GEVNTSIZ_INTMASK | DWC3_GEVNTSIZ_SIZE(evt->length));
 
 	amount = min(count, evt->length - evt->lpos);
 	memcpy(evt->cache + evt->lpos, evt->buf + evt->lpos, amount);
diff --git a/drivers/usb/dwc3/gadget.h b/drivers/usb/dwc3/gadget.h
index 77df4b6..55a56cf67 100644
--- a/drivers/usb/dwc3/gadget.h
+++ b/drivers/usb/dwc3/gadget.h
@@ -110,12 +110,15 @@
 void dwc3_ep0_interrupt(struct dwc3 *dwc,
 		const struct dwc3_event_depevt *event);
 void dwc3_ep0_out_start(struct dwc3 *dwc);
+void dwc3_ep0_end_control_data(struct dwc3 *dwc, struct dwc3_ep *dep);
+void dwc3_ep0_stall_and_restart(struct dwc3 *dwc);
 int __dwc3_gadget_ep0_set_halt(struct usb_ep *ep, int value);
 int dwc3_gadget_ep0_set_halt(struct usb_ep *ep, int value);
 int dwc3_gadget_ep0_queue(struct usb_ep *ep, struct usb_request *request,
 		gfp_t gfp_flags);
 int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value, int protocol);
 void dwc3_ep0_send_delayed_status(struct dwc3 *dwc);
+void dwc3_stop_active_transfer(struct dwc3_ep *dep, bool force, bool interrupt);
 
 /**
  * dwc3_gadget_ep_get_transfer_index - Gets transfer index from HW
diff --git a/drivers/usb/dwc3/trace.c b/drivers/usb/dwc3/trace.c
index 0889958..31d0355 100644
--- a/drivers/usb/dwc3/trace.c
+++ b/drivers/usb/dwc3/trace.c
@@ -9,3 +9,10 @@
 
 #define CREATE_TRACE_POINTS
 #include "trace.h"
+
+EXPORT_TRACEPOINT_SYMBOL_GPL(dwc3_event);
+EXPORT_TRACEPOINT_SYMBOL_GPL(dwc3_ctrl_req);
+EXPORT_TRACEPOINT_SYMBOL_GPL(dwc3_complete_trb);
+EXPORT_TRACEPOINT_SYMBOL_GPL(dwc3_ep_queue);
+EXPORT_TRACEPOINT_SYMBOL_GPL(dwc3_readl);
+EXPORT_TRACEPOINT_SYMBOL_GPL(dwc3_writel);
diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index dd58094..bc2cfb4 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -216,6 +216,12 @@
 config USB_F_TCM
 	tristate
 
+config USB_F_ACC
+	tristate
+
+config USB_F_AUDIO_SRC
+	tristate
+
 # this first set of drivers all depend on bulk-capable hardware.
 
 config USB_CONFIGFS
@@ -230,6 +236,14 @@
 	  appropriate symbolic links.
 	  For more information see Documentation/usb/gadget_configfs.rst.
 
+config USB_CONFIGFS_UEVENT
+	bool "Uevent notification of Gadget state"
+	depends on USB_CONFIGFS
+	help
+	  Enable uevent notifications to userspace when the gadget
+	  state changes. The gadget can be in any of the following
+	  three states: "CONNECTED/DISCONNECTED/CONFIGURED"
+
 config USB_CONFIGFS_SERIAL
 	bool "Generic serial bulk in/out"
 	depends on USB_CONFIGFS
@@ -371,6 +385,23 @@
 	  implemented in kernel space (for instance Ethernet, serial or
 	  mass storage) and other are implemented in user space.
 
+config USB_CONFIGFS_F_ACC
+	bool "Accessory gadget"
+	depends on USB_CONFIGFS
+	depends on HID=y
+	select USB_F_ACC
+	help
+	  USB gadget Accessory support
+
+config USB_CONFIGFS_F_AUDIO_SRC
+	bool "Audio Source gadget"
+	depends on USB_CONFIGFS
+	depends on SND
+	select SND_PCM
+	select USB_F_AUDIO_SRC
+	help
+	  USB gadget Audio Source support
+
 config USB_CONFIGFS_F_UAC1
 	bool "Audio Class 1.0"
 	depends on USB_CONFIGFS
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index edce0a1..41dc578 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -159,6 +159,8 @@
 	int want_comp_desc = 0;
 
 	struct usb_descriptor_header **d_spd; /* cursor for speed desc */
+	struct usb_composite_dev *cdev;
+	bool incomplete_desc = false;
 
 	if (!g || !f || !_ep)
 		return -EIO;
@@ -167,28 +169,43 @@
 	switch (g->speed) {
 	case USB_SPEED_SUPER_PLUS:
 		if (gadget_is_superspeed_plus(g)) {
-			speed_desc = f->ssp_descriptors;
-			want_comp_desc = 1;
-			break;
+			if (f->ssp_descriptors) {
+				speed_desc = f->ssp_descriptors;
+				want_comp_desc = 1;
+				break;
+			}
+			incomplete_desc = true;
 		}
 		fallthrough;
 	case USB_SPEED_SUPER:
 		if (gadget_is_superspeed(g)) {
-			speed_desc = f->ss_descriptors;
-			want_comp_desc = 1;
-			break;
+			if (f->ss_descriptors) {
+				speed_desc = f->ss_descriptors;
+				want_comp_desc = 1;
+				break;
+			}
+			incomplete_desc = true;
 		}
 		fallthrough;
 	case USB_SPEED_HIGH:
 		if (gadget_is_dualspeed(g)) {
-			speed_desc = f->hs_descriptors;
-			break;
+			if (f->hs_descriptors) {
+				speed_desc = f->hs_descriptors;
+				break;
+			}
+			incomplete_desc = true;
 		}
 		fallthrough;
 	default:
 		speed_desc = f->fs_descriptors;
 	}
 
+	cdev = get_gadget_data(g);
+	if (incomplete_desc)
+		WARNING(cdev,
+			"%s doesn't hold the descriptors for current speed\n",
+			f->name);
+
 	/* find correct alternate setting descriptor */
 	for_each_desc(speed_desc, d_spd, USB_DT_INTERFACE) {
 		int_desc = (struct usb_interface_descriptor *)*d_spd;
@@ -244,12 +261,8 @@
 			_ep->maxburst = comp_desc->bMaxBurst + 1;
 			break;
 		default:
-			if (comp_desc->bMaxBurst != 0) {
-				struct usb_composite_dev *cdev;
-
-				cdev = get_gadget_data(g);
+			if (comp_desc->bMaxBurst != 0)
 				ERROR(cdev, "ep0 bMaxBurst must be 0\n");
-			}
 			_ep->maxburst = 1;
 			break;
 		}
@@ -498,19 +511,6 @@
 		return min(val, 900U) / 8;
 }
 
-void check_remote_wakeup_config(struct usb_gadget *g,
-				struct usb_configuration *c)
-{
-	if (USB_CONFIG_ATT_WAKEUP & c->bmAttributes) {
-		/* Reset the rw bit if gadget is not capable of it */
-		if (!g->wakeup_capable && g->ops->set_remote_wakeup) {
-			WARN(c->cdev, "Clearing wakeup bit for config c.%d\n",
-			     c->bConfigurationValue);
-			c->bmAttributes &= ~USB_CONFIG_ATT_WAKEUP;
-		}
-	}
-}
-
 static int config_buf(struct usb_configuration *config,
 		enum usb_device_speed speed, void *buf, u8 type)
 {
@@ -958,11 +958,6 @@
 		power = min(power, 500U);
 	else
 		power = min(power, 900U);
-
-	if (USB_CONFIG_ATT_WAKEUP & c->bmAttributes)
-		usb_gadget_set_remote_wakeup(gadget, 1);
-	else
-		usb_gadget_set_remote_wakeup(gadget, 0);
 done:
 	if (power <= USB_SELF_POWER_VBUS_MAX_DRAW)
 		usb_gadget_set_selfpowered(gadget);
@@ -2456,6 +2451,10 @@
 			usb_gadget_clear_selfpowered(gadget);
 
 		usb_gadget_vbus_draw(gadget, maxpower);
+	} else {
+		maxpower = CONFIG_USB_GADGET_VBUS_DRAW;
+		maxpower = min(maxpower, 100U);
+		usb_gadget_vbus_draw(gadget, maxpower);
 	}
 
 	cdev->suspended = 0;
diff --git a/drivers/usb/gadget/configfs.c b/drivers/usb/gadget/configfs.c
index 528b9ec..822ad35 100644
--- a/drivers/usb/gadget/configfs.c
+++ b/drivers/usb/gadget/configfs.c
@@ -10,6 +10,32 @@
 #include "u_f.h"
 #include "u_os_desc.h"
 
+#ifdef CONFIG_USB_CONFIGFS_UEVENT
+#include <linux/platform_device.h>
+#include <linux/kdev_t.h>
+#include <linux/usb/ch9.h>
+
+#ifdef CONFIG_USB_CONFIGFS_F_ACC
+extern int acc_ctrlrequest_composite(struct usb_composite_dev *cdev,
+				const struct usb_ctrlrequest *ctrl);
+void acc_disconnect(void);
+#endif
+static struct class *android_class;
+static struct device *android_device;
+static int index;
+static int gadget_index;
+
+struct device *create_function_device(char *name)
+{
+	if (android_device && !IS_ERR(android_device))
+		return device_create(android_class, android_device,
+			MKDEV(0, index++), NULL, name);
+	else
+		return ERR_PTR(-EINVAL);
+}
+EXPORT_SYMBOL_GPL(create_function_device);
+#endif
+
 int check_user_usb_string(const char *name,
 		struct usb_gadget_strings *stringtab_dev)
 {
@@ -51,6 +77,12 @@
 	char qw_sign[OS_STRING_QW_SIGN_LEN];
 	spinlock_t spinlock;
 	bool unbind;
+#ifdef CONFIG_USB_CONFIGFS_UEVENT
+	bool connected;
+	bool sw_connected;
+	struct work_struct work;
+	struct device *dev;
+#endif
 };
 
 static inline struct gadget_info *to_gadget_info(struct config_item *item)
@@ -272,7 +304,7 @@
 
 	mutex_lock(&gi->lock);
 
-	if (!strlen(name)) {
+	if (!strlen(name) || strcmp(name, "none") == 0) {
 		ret = unregister_gadget(gi);
 		if (ret)
 			goto err;
@@ -1384,9 +1416,6 @@
 		if (gadget_is_otg(gadget))
 			c->descriptors = otg_desc;
 
-		/* Properly configure the bmAttributes wakeup bit */
-		check_remote_wakeup_config(gadget, c);
-
 		cfg = container_of(c, struct config_usb_cfg, c);
 		if (!list_empty(&cfg->string_list)) {
 			i = 0;
@@ -1435,6 +1464,57 @@
 	return ret;
 }
 
+#ifdef CONFIG_USB_CONFIGFS_UEVENT
+static void android_work(struct work_struct *data)
+{
+	struct gadget_info *gi = container_of(data, struct gadget_info, work);
+	struct usb_composite_dev *cdev = &gi->cdev;
+	char *disconnected[2] = { "USB_STATE=DISCONNECTED", NULL };
+	char *connected[2]    = { "USB_STATE=CONNECTED", NULL };
+	char *configured[2]   = { "USB_STATE=CONFIGURED", NULL };
+	/* 0-connected 1-configured 2-disconnected*/
+	bool status[3] = { false, false, false };
+	unsigned long flags;
+	bool uevent_sent = false;
+
+	spin_lock_irqsave(&cdev->lock, flags);
+	if (cdev->config)
+		status[1] = true;
+
+	if (gi->connected != gi->sw_connected) {
+		if (gi->connected)
+			status[0] = true;
+		else
+			status[2] = true;
+		gi->sw_connected = gi->connected;
+	}
+	spin_unlock_irqrestore(&cdev->lock, flags);
+
+	if (status[0]) {
+		kobject_uevent_env(&gi->dev->kobj, KOBJ_CHANGE, connected);
+		pr_info("%s: sent uevent %s\n", __func__, connected[0]);
+		uevent_sent = true;
+	}
+
+	if (status[1]) {
+		kobject_uevent_env(&gi->dev->kobj, KOBJ_CHANGE, configured);
+		pr_info("%s: sent uevent %s\n", __func__, configured[0]);
+		uevent_sent = true;
+	}
+
+	if (status[2]) {
+		kobject_uevent_env(&gi->dev->kobj, KOBJ_CHANGE, disconnected);
+		pr_info("%s: sent uevent %s\n", __func__, disconnected[0]);
+		uevent_sent = true;
+	}
+
+	if (!uevent_sent) {
+		pr_info("%s: did not send uevent (%d %d %p)\n", __func__,
+			gi->connected, gi->sw_connected, cdev->config);
+	}
+}
+#endif
+
 static void configfs_composite_unbind(struct usb_gadget *gadget)
 {
 	struct usb_composite_dev	*cdev;
@@ -1462,6 +1542,53 @@
 	spin_unlock_irqrestore(&gi->spinlock, flags);
 }
 
+#ifdef CONFIG_USB_CONFIGFS_UEVENT
+static int android_setup(struct usb_gadget *gadget,
+			const struct usb_ctrlrequest *c)
+{
+	struct usb_composite_dev *cdev = get_gadget_data(gadget);
+	unsigned long flags;
+	struct gadget_info *gi = container_of(cdev, struct gadget_info, cdev);
+	int value = -EOPNOTSUPP;
+	struct usb_function_instance *fi;
+
+	spin_lock_irqsave(&cdev->lock, flags);
+	if (!gi->connected) {
+		gi->connected = 1;
+		schedule_work(&gi->work);
+	}
+	spin_unlock_irqrestore(&cdev->lock, flags);
+	list_for_each_entry(fi, &gi->available_func, cfs_list) {
+		if (fi != NULL && fi->f != NULL && fi->f->setup != NULL) {
+			value = fi->f->setup(fi->f, c);
+			if (value >= 0)
+				break;
+		}
+	}
+
+#ifdef CONFIG_USB_CONFIGFS_F_ACC
+	if (value < 0)
+		value = acc_ctrlrequest_composite(cdev, c);
+#endif
+
+	if (value < 0) {
+		spin_lock_irqsave(&gi->spinlock, flags);
+		value = composite_setup(gadget, c);
+		spin_unlock_irqrestore(&gi->spinlock, flags);
+	}
+
+	spin_lock_irqsave(&cdev->lock, flags);
+	if (c->bRequest == USB_REQ_SET_CONFIGURATION &&
+						cdev->config) {
+		schedule_work(&gi->work);
+	}
+	spin_unlock_irqrestore(&cdev->lock, flags);
+
+	return value;
+}
+
+#else // CONFIG_USB_CONFIGFS_UEVENT
+
 static int configfs_composite_setup(struct usb_gadget *gadget,
 		const struct usb_ctrlrequest *ctrl)
 {
@@ -1487,6 +1614,8 @@
 	return ret;
 }
 
+#endif // CONFIG_USB_CONFIGFS_UEVENT
+
 static void configfs_composite_disconnect(struct usb_gadget *gadget)
 {
 	struct usb_composite_dev *cdev;
@@ -1497,6 +1626,14 @@
 	if (!cdev)
 		return;
 
+#ifdef CONFIG_USB_CONFIGFS_F_ACC
+	/*
+	 * accessory HID support can be active while the
+	 * accessory function is not actually enabled,
+	 * so we need to inform it when we are disconnected.
+	 */
+	acc_disconnect();
+#endif
 	gi = container_of(cdev, struct gadget_info, cdev);
 	spin_lock_irqsave(&gi->spinlock, flags);
 	cdev = get_gadget_data(gadget);
@@ -1505,6 +1642,10 @@
 		return;
 	}
 
+#ifdef CONFIG_USB_CONFIGFS_UEVENT
+	gi->connected = 0;
+	schedule_work(&gi->work);
+#endif
 	composite_disconnect(gadget);
 	spin_unlock_irqrestore(&gi->spinlock, flags);
 }
@@ -1579,10 +1720,13 @@
 	.bind           = configfs_composite_bind,
 	.unbind         = configfs_composite_unbind,
 
+#ifdef CONFIG_USB_CONFIGFS_UEVENT
+	.setup          = android_setup,
+#else
 	.setup          = configfs_composite_setup,
+#endif
 	.reset          = configfs_composite_reset,
 	.disconnect     = configfs_composite_disconnect,
-
 	.suspend	= configfs_composite_suspend,
 	.resume		= configfs_composite_resume,
 
@@ -1594,6 +1738,91 @@
 	.match_existing_only = 1,
 };
 
+#ifdef CONFIG_USB_CONFIGFS_UEVENT
+static ssize_t state_show(struct device *pdev, struct device_attribute *attr,
+			char *buf)
+{
+	struct gadget_info *dev = dev_get_drvdata(pdev);
+	struct usb_composite_dev *cdev;
+	char *state = "DISCONNECTED";
+	unsigned long flags;
+
+	if (!dev)
+		goto out;
+
+	cdev = &dev->cdev;
+
+	if (!cdev)
+		goto out;
+
+	spin_lock_irqsave(&cdev->lock, flags);
+	if (cdev->config)
+		state = "CONFIGURED";
+	else if (dev->connected)
+		state = "CONNECTED";
+	spin_unlock_irqrestore(&cdev->lock, flags);
+out:
+	return sprintf(buf, "%s\n", state);
+}
+
+static DEVICE_ATTR(state, S_IRUGO, state_show, NULL);
+
+static struct device_attribute *android_usb_attributes[] = {
+	&dev_attr_state,
+	NULL
+};
+
+static int android_device_create(struct gadget_info *gi)
+{
+	struct device_attribute **attrs;
+	struct device_attribute *attr;
+
+	INIT_WORK(&gi->work, android_work);
+	gi->dev = device_create(android_class, NULL,
+			MKDEV(0, 0), NULL, "android%d", gadget_index++);
+	if (IS_ERR(gi->dev))
+		return PTR_ERR(gi->dev);
+
+	dev_set_drvdata(gi->dev, gi);
+	if (!android_device)
+		android_device = gi->dev;
+
+	attrs = android_usb_attributes;
+	while ((attr = *attrs++)) {
+		int err;
+
+		err = device_create_file(gi->dev, attr);
+		if (err) {
+			device_destroy(gi->dev->class,
+				       gi->dev->devt);
+			return err;
+		}
+	}
+
+	return 0;
+}
+
+static void android_device_destroy(struct gadget_info *gi)
+{
+	struct device_attribute **attrs;
+	struct device_attribute *attr;
+
+	attrs = android_usb_attributes;
+	while ((attr = *attrs++))
+		device_remove_file(gi->dev, attr);
+	device_destroy(gi->dev->class, gi->dev->devt);
+}
+#else
+static inline int android_device_create(struct gadget_info *gi)
+{
+	return 0;
+}
+
+static inline void android_device_destroy(struct gadget_info *gi)
+{
+}
+#endif
+
 static struct config_group *gadgets_make(
 		struct config_group *group,
 		const char *name)
@@ -1646,7 +1875,11 @@
 	if (!gi->composite.gadget_driver.function)
 		goto err;
 
+	if (android_device_create(gi) < 0)
+		goto err;
+
 	return &gi->group;
+
 err:
 	kfree(gi);
 	return ERR_PTR(-ENOMEM);
@@ -1654,7 +1887,11 @@
 
 static void gadgets_drop(struct config_group *group, struct config_item *item)
 {
+	struct gadget_info *gi;
+
+	gi = container_of(to_config_group(item), struct gadget_info, group);
 	config_item_put(item);
+	android_device_destroy(gi);
 }
 
 static struct configfs_group_operations gadgets_ops = {
@@ -1694,6 +1931,13 @@
 	config_group_init(&gadget_subsys.su_group);
 
 	ret = configfs_register_subsystem(&gadget_subsys);
+
+#ifdef CONFIG_USB_CONFIGFS_UEVENT
+	android_class = class_create(THIS_MODULE, "android_usb");
+	if (IS_ERR(android_class))
+		return PTR_ERR(android_class);
+#endif
+
 	return ret;
 }
 module_init(gadget_cfs_init);
@@ -1701,5 +1945,10 @@
 static void __exit gadget_cfs_exit(void)
 {
 	configfs_unregister_subsystem(&gadget_subsys);
+#ifdef CONFIG_USB_CONFIGFS_UEVENT
+	if (!IS_ERR(android_class))
+		class_destroy(android_class);
+#endif
+
 }
 module_exit(gadget_cfs_exit);
diff --git a/drivers/usb/gadget/function/Makefile b/drivers/usb/gadget/function/Makefile
index 5d3a6cf..dd33a12 100644
--- a/drivers/usb/gadget/function/Makefile
+++ b/drivers/usb/gadget/function/Makefile
@@ -50,3 +50,7 @@
 obj-$(CONFIG_USB_F_PRINTER)	+= usb_f_printer.o
 usb_f_tcm-y			:= f_tcm.o
 obj-$(CONFIG_USB_F_TCM)		+= usb_f_tcm.o
+usb_f_accessory-y		:= f_accessory.o
+obj-$(CONFIG_USB_F_ACC)		+= usb_f_accessory.o
+usb_f_audio_source-y		:= f_audio_source.o
+obj-$(CONFIG_USB_F_AUDIO_SRC)	+= usb_f_audio_source.o
diff --git a/drivers/usb/gadget/function/f_accessory.c b/drivers/usb/gadget/function/f_accessory.c
new file mode 100644
index 0000000..ce7814c
--- /dev/null
+++ b/drivers/usb/gadget/function/f_accessory.c
@@ -0,0 +1,1574 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Gadget Function Driver for Android USB accessories
+ *
+ * Copyright (C) 2011 Google, Inc.
+ * Author: Mike Lockwood <lockwood@android.com>
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+/* #define DEBUG */
+/* #define VERBOSE_DEBUG */
+
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/poll.h>
+#include <linux/delay.h>
+#include <linux/wait.h>
+#include <linux/err.h>
+#include <linux/interrupt.h>
+#include <linux/kthread.h>
+#include <linux/freezer.h>
+#include <linux/kref.h>
+#include <linux/kernel.h>
+
+#include <linux/types.h>
+#include <linux/file.h>
+#include <linux/device.h>
+#include <linux/miscdevice.h>
+
+#include <linux/hid.h>
+#include <linux/hiddev.h>
+#include <linux/usb.h>
+#include <linux/usb/ch9.h>
+#include <linux/usb/f_accessory.h>
+
+#include <linux/configfs.h>
+#include <linux/usb/composite.h>
+
+#define MAX_INST_NAME_LEN        40
+#define BULK_BUFFER_SIZE    16384
+#define ACC_STRING_SIZE     256
+
+#define PROTOCOL_VERSION    2
+
+/* String IDs */
+#define INTERFACE_STRING_INDEX	0
+
+/* number of tx and rx requests to allocate */
+#define TX_REQ_MAX 4
+#define RX_REQ_MAX 2
+
+struct acc_hid_dev {
+	struct list_head	list;
+	struct hid_device *hid;
+	struct acc_dev *dev;
+	/* accessory defined ID */
+	int id;
+	/* HID report descriptor */
+	u8 *report_desc;
+	/* length of HID report descriptor */
+	int report_desc_len;
+	/* number of bytes of report_desc we have received so far */
+	int report_desc_offset;
+};
+
+struct acc_dev {
+	struct usb_function function;
+	struct usb_composite_dev *cdev;
+	spinlock_t lock;
+	struct acc_dev_ref *ref;
+
+	struct usb_ep *ep_in;
+	struct usb_ep *ep_out;
+
+	/* online indicates state of function_set_alt & function_unbind
+	 * set to 1 when we connect
+	 */
+	int online;
+
+	/* disconnected indicates state of open & release
+	 * Set to 1 when we disconnect.
+	 * Not cleared until our file is closed.
+	 */
+	int disconnected;
+
+	/* strings sent by the host */
+	char manufacturer[ACC_STRING_SIZE];
+	char model[ACC_STRING_SIZE];
+	char description[ACC_STRING_SIZE];
+	char version[ACC_STRING_SIZE];
+	char uri[ACC_STRING_SIZE];
+	char serial[ACC_STRING_SIZE];
+
+	/* for acc_complete_set_string */
+	int string_index;
+
+	/* set to 1 if we have a pending start request */
+	int start_requested;
+
+	int audio_mode;
+
+	/* synchronize access to our device file */
+	atomic_t open_excl;
+
+	struct list_head tx_idle;
+
+	wait_queue_head_t read_wq;
+	wait_queue_head_t write_wq;
+	struct usb_request *rx_req[RX_REQ_MAX];
+	int rx_done;
+
+	/* delayed work for handling ACCESSORY_START */
+	struct delayed_work start_work;
+
+	/* work for handling ACCESSORY GET PROTOCOL */
+	struct work_struct getprotocol_work;
+
+	/* work for handling ACCESSORY SEND STRING */
+	struct work_struct sendstring_work;
+
+	/* worker for registering and unregistering hid devices */
+	struct work_struct hid_work;
+
+	/* list of active HID devices */
+	struct list_head	hid_list;
+
+	/* list of new HID devices to register */
+	struct list_head	new_hid_list;
+
+	/* list of dead HID devices to unregister */
+	struct list_head	dead_hid_list;
+};
+
+static struct usb_interface_descriptor acc_interface_desc = {
+	.bLength                = USB_DT_INTERFACE_SIZE,
+	.bDescriptorType        = USB_DT_INTERFACE,
+	.bInterfaceNumber       = 0,
+	.bNumEndpoints          = 2,
+	.bInterfaceClass        = USB_CLASS_VENDOR_SPEC,
+	.bInterfaceSubClass     = USB_SUBCLASS_VENDOR_SPEC,
+	.bInterfaceProtocol     = 0,
+};
+
+static struct usb_endpoint_descriptor acc_superspeedplus_in_desc = {
+	.bLength                = USB_DT_ENDPOINT_SIZE,
+	.bDescriptorType        = USB_DT_ENDPOINT,
+	.bEndpointAddress       = USB_DIR_IN,
+	.bmAttributes           = USB_ENDPOINT_XFER_BULK,
+	.wMaxPacketSize         = cpu_to_le16(1024),
+};
+
+static struct usb_endpoint_descriptor acc_superspeedplus_out_desc = {
+	.bLength                = USB_DT_ENDPOINT_SIZE,
+	.bDescriptorType        = USB_DT_ENDPOINT,
+	.bEndpointAddress       = USB_DIR_OUT,
+	.bmAttributes           = USB_ENDPOINT_XFER_BULK,
+	.wMaxPacketSize         = cpu_to_le16(1024),
+};
+
+static struct usb_ss_ep_comp_descriptor acc_superspeedplus_comp_desc = {
+	.bLength                = sizeof(acc_superspeedplus_comp_desc),
+	.bDescriptorType        = USB_DT_SS_ENDPOINT_COMP,
+
+	/* the following 2 values can be tweaked if necessary */
+	/* .bMaxBurst =         0, */
+	/* .bmAttributes =      0, */
+};
+
+static struct usb_endpoint_descriptor acc_superspeed_in_desc = {
+	.bLength                = USB_DT_ENDPOINT_SIZE,
+	.bDescriptorType        = USB_DT_ENDPOINT,
+	.bEndpointAddress       = USB_DIR_IN,
+	.bmAttributes           = USB_ENDPOINT_XFER_BULK,
+	.wMaxPacketSize         = cpu_to_le16(1024),
+};
+
+static struct usb_endpoint_descriptor acc_superspeed_out_desc = {
+	.bLength                = USB_DT_ENDPOINT_SIZE,
+	.bDescriptorType        = USB_DT_ENDPOINT,
+	.bEndpointAddress       = USB_DIR_OUT,
+	.bmAttributes           = USB_ENDPOINT_XFER_BULK,
+	.wMaxPacketSize         = cpu_to_le16(1024),
+};
+
+static struct usb_ss_ep_comp_descriptor acc_superspeed_comp_desc = {
+	.bLength                = sizeof(acc_superspeed_comp_desc),
+	.bDescriptorType        = USB_DT_SS_ENDPOINT_COMP,
+
+	/* the following 2 values can be tweaked if necessary */
+	/* .bMaxBurst =         0, */
+	/* .bmAttributes =      0, */
+};
+
+static struct usb_endpoint_descriptor acc_highspeed_in_desc = {
+	.bLength                = USB_DT_ENDPOINT_SIZE,
+	.bDescriptorType        = USB_DT_ENDPOINT,
+	.bEndpointAddress       = USB_DIR_IN,
+	.bmAttributes           = USB_ENDPOINT_XFER_BULK,
+	.wMaxPacketSize         = cpu_to_le16(512),
+};
+
+static struct usb_endpoint_descriptor acc_highspeed_out_desc = {
+	.bLength                = USB_DT_ENDPOINT_SIZE,
+	.bDescriptorType        = USB_DT_ENDPOINT,
+	.bEndpointAddress       = USB_DIR_OUT,
+	.bmAttributes           = USB_ENDPOINT_XFER_BULK,
+	.wMaxPacketSize         = cpu_to_le16(512),
+};
+
+static struct usb_endpoint_descriptor acc_fullspeed_in_desc = {
+	.bLength                = USB_DT_ENDPOINT_SIZE,
+	.bDescriptorType        = USB_DT_ENDPOINT,
+	.bEndpointAddress       = USB_DIR_IN,
+	.bmAttributes           = USB_ENDPOINT_XFER_BULK,
+};
+
+static struct usb_endpoint_descriptor acc_fullspeed_out_desc = {
+	.bLength                = USB_DT_ENDPOINT_SIZE,
+	.bDescriptorType        = USB_DT_ENDPOINT,
+	.bEndpointAddress       = USB_DIR_OUT,
+	.bmAttributes           = USB_ENDPOINT_XFER_BULK,
+};
+
+static struct usb_descriptor_header *fs_acc_descs[] = {
+	(struct usb_descriptor_header *) &acc_interface_desc,
+	(struct usb_descriptor_header *) &acc_fullspeed_in_desc,
+	(struct usb_descriptor_header *) &acc_fullspeed_out_desc,
+	NULL,
+};
+
+static struct usb_descriptor_header *hs_acc_descs[] = {
+	(struct usb_descriptor_header *) &acc_interface_desc,
+	(struct usb_descriptor_header *) &acc_highspeed_in_desc,
+	(struct usb_descriptor_header *) &acc_highspeed_out_desc,
+	NULL,
+};
+
+static struct usb_descriptor_header *ss_acc_descs[] = {
+	(struct usb_descriptor_header *) &acc_interface_desc,
+	(struct usb_descriptor_header *) &acc_superspeed_in_desc,
+	(struct usb_descriptor_header *) &acc_superspeed_comp_desc,
+	(struct usb_descriptor_header *) &acc_superspeed_out_desc,
+	(struct usb_descriptor_header *) &acc_superspeed_comp_desc,
+	NULL,
+};
+
+static struct usb_descriptor_header *ssp_acc_descs[] = {
+	(struct usb_descriptor_header *) &acc_interface_desc,
+	(struct usb_descriptor_header *) &acc_superspeedplus_in_desc,
+	(struct usb_descriptor_header *) &acc_superspeedplus_comp_desc,
+	(struct usb_descriptor_header *) &acc_superspeedplus_out_desc,
+	(struct usb_descriptor_header *) &acc_superspeedplus_comp_desc,
+	NULL,
+};
+
+static struct usb_string acc_string_defs[] = {
+	[INTERFACE_STRING_INDEX].s	= "Android Accessory Interface",
+	{  },	/* end of list */
+};
+
+static struct usb_gadget_strings acc_string_table = {
+	.language		= 0x0409,	/* en-US */
+	.strings		= acc_string_defs,
+};
+
+static struct usb_gadget_strings *acc_strings[] = {
+	&acc_string_table,
+	NULL,
+};
+
+struct acc_dev_ref {
+	struct kref	kref;
+	struct acc_dev	*acc_dev;
+};
+
+static struct acc_dev_ref _acc_dev_ref = {
+	.kref = KREF_INIT(0),
+};
+
+struct acc_instance {
+	struct usb_function_instance func_inst;
+	const char *name;
+};
+
+static struct acc_dev *get_acc_dev(void)
+{
+	struct acc_dev_ref *ref = &_acc_dev_ref;
+
+	return kref_get_unless_zero(&ref->kref) ? ref->acc_dev : NULL;
+}
+
+static void __put_acc_dev(struct kref *kref)
+{
+	struct acc_dev_ref *ref = container_of(kref, struct acc_dev_ref, kref);
+	struct acc_dev *dev = ref->acc_dev;
+
+	/* Cancel any async work */
+	cancel_delayed_work_sync(&dev->start_work);
+	cancel_work_sync(&dev->getprotocol_work);
+	cancel_work_sync(&dev->sendstring_work);
+	cancel_work_sync(&dev->hid_work);
+
+	ref->acc_dev = NULL;
+	kfree(dev);
+}
+
+static void put_acc_dev(struct acc_dev *dev)
+{
+	struct acc_dev_ref *ref = dev->ref;
+
+	WARN_ON(ref->acc_dev != dev);
+	kref_put(&ref->kref, __put_acc_dev);
+}
+
+static inline struct acc_dev *func_to_dev(struct usb_function *f)
+{
+	return container_of(f, struct acc_dev, function);
+}
+
+static struct usb_request *acc_request_new(struct usb_ep *ep, int buffer_size)
+{
+	struct usb_request *req = usb_ep_alloc_request(ep, GFP_KERNEL);
+
+	if (!req)
+		return NULL;
+
+	/* now allocate buffers for the requests */
+	req->buf = kmalloc(buffer_size, GFP_KERNEL);
+	if (!req->buf) {
+		usb_ep_free_request(ep, req);
+		return NULL;
+	}
+
+	return req;
+}
+
+static void acc_request_free(struct usb_request *req, struct usb_ep *ep)
+{
+	if (req) {
+		kfree(req->buf);
+		usb_ep_free_request(ep, req);
+	}
+}
+
+/* add a request to the tail of a list */
+static void req_put(struct acc_dev *dev, struct list_head *head,
+		struct usb_request *req)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&dev->lock, flags);
+	list_add_tail(&req->list, head);
+	spin_unlock_irqrestore(&dev->lock, flags);
+}
+
+/* remove a request from the head of a list */
+static struct usb_request *req_get(struct acc_dev *dev, struct list_head *head)
+{
+	unsigned long flags;
+	struct usb_request *req;
+
+	spin_lock_irqsave(&dev->lock, flags);
+	if (list_empty(head)) {
+		req = 0;
+	} else {
+		req = list_first_entry(head, struct usb_request, list);
+		list_del(&req->list);
+	}
+	spin_unlock_irqrestore(&dev->lock, flags);
+	return req;
+}
+
+static void acc_set_disconnected(struct acc_dev *dev)
+{
+	dev->disconnected = 1;
+}
+
+static void acc_complete_in(struct usb_ep *ep, struct usb_request *req)
+{
+	struct acc_dev *dev = get_acc_dev();
+
+	if (!dev)
+		return;
+
+	if (req->status == -ESHUTDOWN) {
+		pr_debug("acc_complete_in set disconnected");
+		acc_set_disconnected(dev);
+	}
+
+	req_put(dev, &dev->tx_idle, req);
+
+	wake_up(&dev->write_wq);
+	put_acc_dev(dev);
+}
+
+static void acc_complete_out(struct usb_ep *ep, struct usb_request *req)
+{
+	struct acc_dev *dev = get_acc_dev();
+
+	if (!dev)
+		return;
+
+	dev->rx_done = 1;
+	if (req->status == -ESHUTDOWN) {
+		pr_debug("acc_complete_out set disconnected");
+		acc_set_disconnected(dev);
+	}
+
+	wake_up(&dev->read_wq);
+	put_acc_dev(dev);
+}
+
+static void acc_complete_set_string(struct usb_ep *ep, struct usb_request *req)
+{
+	struct acc_dev	*dev = ep->driver_data;
+	char *string_dest = NULL;
+	int length = req->actual;
+
+	if (req->status != 0) {
+		pr_err("acc_complete_set_string, err %d\n", req->status);
+		return;
+	}
+
+	switch (dev->string_index) {
+	case ACCESSORY_STRING_MANUFACTURER:
+		string_dest = dev->manufacturer;
+		break;
+	case ACCESSORY_STRING_MODEL:
+		string_dest = dev->model;
+		break;
+	case ACCESSORY_STRING_DESCRIPTION:
+		string_dest = dev->description;
+		break;
+	case ACCESSORY_STRING_VERSION:
+		string_dest = dev->version;
+		break;
+	case ACCESSORY_STRING_URI:
+		string_dest = dev->uri;
+		break;
+	case ACCESSORY_STRING_SERIAL:
+		string_dest = dev->serial;
+		break;
+	}
+	if (string_dest) {
+		unsigned long flags;
+
+		if (length >= ACC_STRING_SIZE)
+			length = ACC_STRING_SIZE - 1;
+
+		spin_lock_irqsave(&dev->lock, flags);
+		memcpy(string_dest, req->buf, length);
+		/* ensure zero termination */
+		string_dest[length] = 0;
+		spin_unlock_irqrestore(&dev->lock, flags);
+	} else {
+		pr_err("unknown accessory string index %d\n",
+			dev->string_index);
+	}
+}
+
+static void acc_complete_set_hid_report_desc(struct usb_ep *ep,
+		struct usb_request *req)
+{
+	struct acc_hid_dev *hid = req->context;
+	struct acc_dev *dev = hid->dev;
+	int length = req->actual;
+
+	if (req->status != 0) {
+		pr_err("acc_complete_set_hid_report_desc, err %d\n",
+			req->status);
+		return;
+	}
+
+	memcpy(hid->report_desc + hid->report_desc_offset, req->buf, length);
+	hid->report_desc_offset += length;
+	if (hid->report_desc_offset == hid->report_desc_len) {
+		/* After we have received the entire report descriptor
+		 * we schedule work to initialize the HID device
+		 */
+		schedule_work(&dev->hid_work);
+	}
+}
+
+static void acc_complete_send_hid_event(struct usb_ep *ep,
+		struct usb_request *req)
+{
+	struct acc_hid_dev *hid = req->context;
+	int length = req->actual;
+
+	if (req->status != 0) {
+		pr_err("acc_complete_send_hid_event, err %d\n", req->status);
+		return;
+	}
+
+	hid_report_raw_event(hid->hid, HID_INPUT_REPORT, req->buf, length, 1);
+}
+
+static int acc_hid_parse(struct hid_device *hid)
+{
+	struct acc_hid_dev *hdev = hid->driver_data;
+
+	hid_parse_report(hid, hdev->report_desc, hdev->report_desc_len);
+	return 0;
+}
+
+static int acc_hid_start(struct hid_device *hid)
+{
+	return 0;
+}
+
+static void acc_hid_stop(struct hid_device *hid)
+{
+}
+
+static int acc_hid_open(struct hid_device *hid)
+{
+	return 0;
+}
+
+static void acc_hid_close(struct hid_device *hid)
+{
+}
+
+static int acc_hid_raw_request(struct hid_device *hid, unsigned char reportnum,
+	__u8 *buf, size_t len, unsigned char rtype, int reqtype)
+{
+	return 0;
+}
+
+static struct hid_ll_driver acc_hid_ll_driver = {
+	.parse = acc_hid_parse,
+	.start = acc_hid_start,
+	.stop = acc_hid_stop,
+	.open = acc_hid_open,
+	.close = acc_hid_close,
+	.raw_request = acc_hid_raw_request,
+};
+
+static struct acc_hid_dev *acc_hid_new(struct acc_dev *dev,
+		int id, int desc_len)
+{
+	struct acc_hid_dev *hdev;
+
+	hdev = kzalloc(sizeof(*hdev), GFP_ATOMIC);
+	if (!hdev)
+		return NULL;
+	hdev->report_desc = kzalloc(desc_len, GFP_ATOMIC);
+	if (!hdev->report_desc) {
+		kfree(hdev);
+		return NULL;
+	}
+	hdev->dev = dev;
+	hdev->id = id;
+	hdev->report_desc_len = desc_len;
+
+	return hdev;
+}
+
+static struct acc_hid_dev *acc_hid_get(struct list_head *list, int id)
+{
+	struct acc_hid_dev *hid;
+
+	list_for_each_entry(hid, list, list) {
+		if (hid->id == id)
+			return hid;
+	}
+	return NULL;
+}
+
+static int acc_register_hid(struct acc_dev *dev, int id, int desc_length)
+{
+	struct acc_hid_dev *hid;
+	unsigned long flags;
+
+	/* report descriptor length must be > 0 */
+	if (desc_length <= 0)
+		return -EINVAL;
+
+	spin_lock_irqsave(&dev->lock, flags);
+	/* replace HID if one already exists with this ID */
+	hid = acc_hid_get(&dev->hid_list, id);
+	if (!hid)
+		hid = acc_hid_get(&dev->new_hid_list, id);
+	if (hid)
+		list_move(&hid->list, &dev->dead_hid_list);
+
+	hid = acc_hid_new(dev, id, desc_length);
+	if (!hid) {
+		spin_unlock_irqrestore(&dev->lock, flags);
+		return -ENOMEM;
+	}
+
+	list_add(&hid->list, &dev->new_hid_list);
+	spin_unlock_irqrestore(&dev->lock, flags);
+
+	/* schedule work to register the HID device */
+	schedule_work(&dev->hid_work);
+	return 0;
+}
+
+static int acc_unregister_hid(struct acc_dev *dev, int id)
+{
+	struct acc_hid_dev *hid;
+	unsigned long flags;
+
+	spin_lock_irqsave(&dev->lock, flags);
+	hid = acc_hid_get(&dev->hid_list, id);
+	if (!hid)
+		hid = acc_hid_get(&dev->new_hid_list, id);
+	if (!hid) {
+		spin_unlock_irqrestore(&dev->lock, flags);
+		return -EINVAL;
+	}
+
+	list_move(&hid->list, &dev->dead_hid_list);
+	spin_unlock_irqrestore(&dev->lock, flags);
+
+	schedule_work(&dev->hid_work);
+	return 0;
+}
+
+static int create_bulk_endpoints(struct acc_dev *dev,
+				struct usb_endpoint_descriptor *in_desc,
+				struct usb_endpoint_descriptor *out_desc)
+{
+	struct usb_composite_dev *cdev = dev->cdev;
+	struct usb_request *req;
+	struct usb_ep *ep;
+	int i;
+
+	DBG(cdev, "create_bulk_endpoints dev: %p\n", dev);
+
+	ep = usb_ep_autoconfig(cdev->gadget, in_desc);
+	if (!ep) {
+		DBG(cdev, "usb_ep_autoconfig for ep_in failed\n");
+		return -ENODEV;
+	}
+	DBG(cdev, "usb_ep_autoconfig for ep_in got %s\n", ep->name);
+	ep->driver_data = dev;		/* claim the endpoint */
+	dev->ep_in = ep;
+
+	ep = usb_ep_autoconfig(cdev->gadget, out_desc);
+	if (!ep) {
+		DBG(cdev, "usb_ep_autoconfig for ep_out failed\n");
+		return -ENODEV;
+	}
+	DBG(cdev, "usb_ep_autoconfig for ep_out got %s\n", ep->name);
+	ep->driver_data = dev;		/* claim the endpoint */
+	dev->ep_out = ep;
+
+	/* now allocate requests for our endpoints */
+	for (i = 0; i < TX_REQ_MAX; i++) {
+		req = acc_request_new(dev->ep_in, BULK_BUFFER_SIZE);
+		if (!req)
+			goto fail;
+		req->complete = acc_complete_in;
+		req_put(dev, &dev->tx_idle, req);
+	}
+	for (i = 0; i < RX_REQ_MAX; i++) {
+		req = acc_request_new(dev->ep_out, BULK_BUFFER_SIZE);
+		if (!req)
+			goto fail;
+		req->complete = acc_complete_out;
+		dev->rx_req[i] = req;
+	}
+
+	return 0;
+
+fail:
+	pr_err("acc_bind() could not allocate requests\n");
+	while ((req = req_get(dev, &dev->tx_idle)))
+		acc_request_free(req, dev->ep_in);
+	for (i = 0; i < RX_REQ_MAX; i++) {
+		acc_request_free(dev->rx_req[i], dev->ep_out);
+		dev->rx_req[i] = NULL;
+	}
+
+	return -1;
+}
+
+static ssize_t acc_read(struct file *fp, char __user *buf,
+	size_t count, loff_t *pos)
+{
+	struct acc_dev *dev = fp->private_data;
+	struct usb_request *req;
+	ssize_t r = count;
+	ssize_t data_length;
+	unsigned xfer;
+	int ret = 0;
+
+	pr_debug("acc_read(%zu)\n", count);
+
+	if (dev->disconnected) {
+		pr_debug("acc_read disconnected");
+		return -ENODEV;
+	}
+
+	if (count > BULK_BUFFER_SIZE)
+		count = BULK_BUFFER_SIZE;
+
+	/* we will block until we're online */
+	pr_debug("acc_read: waiting for online\n");
+	ret = wait_event_interruptible(dev->read_wq, dev->online);
+	if (ret < 0) {
+		r = ret;
+		goto done;
+	}
+
+	if (!dev->rx_req[0]) {
+		pr_warn("acc_read: USB request already handled/freed");
+		r = -EINVAL;
+		goto done;
+	}
+
+	/*
+	 * Calculate the data length by considering termination character.
+	 * Then compansite the difference of rounding up to
+	 * integer multiple of maxpacket size.
+	 */
+	data_length = count;
+	data_length += dev->ep_out->maxpacket - 1;
+	data_length -= data_length % dev->ep_out->maxpacket;
+
+	if (dev->rx_done) {
+		// last req cancelled. try to get it.
+		req = dev->rx_req[0];
+		goto copy_data;
+	}
+
+requeue_req:
+	/* queue a request */
+	req = dev->rx_req[0];
+	req->length = data_length;
+	dev->rx_done = 0;
+	ret = usb_ep_queue(dev->ep_out, req, GFP_KERNEL);
+	if (ret < 0) {
+		r = -EIO;
+		goto done;
+	} else {
+		pr_debug("rx %p queue\n", req);
+	}
+
+	/* wait for a request to complete */
+	ret = wait_event_interruptible(dev->read_wq, dev->rx_done);
+	if (ret < 0) {
+		r = ret;
+		ret = usb_ep_dequeue(dev->ep_out, req);
+		if (ret != 0) {
+			// cancel failed. There can be a data already received.
+			// it will be retrieved in the next read.
+			pr_debug("acc_read: cancelling failed %d", ret);
+		}
+		goto done;
+	}
+
+copy_data:
+	dev->rx_done = 0;
+	if (dev->online) {
+		/* If we got a 0-len packet, throw it back and try again. */
+		if (req->actual == 0)
+			goto requeue_req;
+
+		pr_debug("rx %p %u\n", req, req->actual);
+		xfer = (req->actual < count) ? req->actual : count;
+		r = xfer;
+		if (copy_to_user(buf, req->buf, xfer))
+			r = -EFAULT;
+	} else
+		r = -EIO;
+
+done:
+	pr_debug("acc_read returning %zd\n", r);
+	return r;
+}
+
+static ssize_t acc_write(struct file *fp, const char __user *buf,
+	size_t count, loff_t *pos)
+{
+	struct acc_dev *dev = fp->private_data;
+	struct usb_request *req = 0;
+	ssize_t r = count;
+	unsigned xfer;
+	int ret;
+
+	pr_debug("acc_write(%zu)\n", count);
+
+	if (!dev->online || dev->disconnected) {
+		pr_debug("acc_write disconnected or not online");
+		return -ENODEV;
+	}
+
+	while (count > 0) {
+		/* get an idle tx request to use */
+		req = 0;
+		ret = wait_event_interruptible(dev->write_wq,
+			((req = req_get(dev, &dev->tx_idle)) || !dev->online));
+		if (!dev->online || dev->disconnected) {
+			pr_debug("acc_write dev->error\n");
+			r = -EIO;
+			break;
+		}
+
+		if (!req) {
+			r = ret;
+			break;
+		}
+
+		if (count > BULK_BUFFER_SIZE) {
+			xfer = BULK_BUFFER_SIZE;
+			/* ZLP, They will be more TX requests so not yet. */
+			req->zero = 0;
+		} else {
+			xfer = count;
+			/* If the data length is a multple of the
+			 * maxpacket size then send a zero length packet(ZLP).
+			*/
+			req->zero = ((xfer % dev->ep_in->maxpacket) == 0);
+		}
+		if (copy_from_user(req->buf, buf, xfer)) {
+			r = -EFAULT;
+			break;
+		}
+
+		req->length = xfer;
+		ret = usb_ep_queue(dev->ep_in, req, GFP_KERNEL);
+		if (ret < 0) {
+			pr_debug("acc_write: xfer error %d\n", ret);
+			r = -EIO;
+			break;
+		}
+
+		buf += xfer;
+		count -= xfer;
+
+		/* zero this so we don't try to free it on error exit */
+		req = 0;
+	}
+
+	if (req)
+		req_put(dev, &dev->tx_idle, req);
+
+	pr_debug("acc_write returning %zd\n", r);
+	return r;
+}
+
+static long acc_ioctl(struct file *fp, unsigned code, unsigned long value)
+{
+	struct acc_dev *dev = fp->private_data;
+	char *src = NULL;
+	int ret;
+
+	switch (code) {
+	case ACCESSORY_GET_STRING_MANUFACTURER:
+		src = dev->manufacturer;
+		break;
+	case ACCESSORY_GET_STRING_MODEL:
+		src = dev->model;
+		break;
+	case ACCESSORY_GET_STRING_DESCRIPTION:
+		src = dev->description;
+		break;
+	case ACCESSORY_GET_STRING_VERSION:
+		src = dev->version;
+		break;
+	case ACCESSORY_GET_STRING_URI:
+		src = dev->uri;
+		break;
+	case ACCESSORY_GET_STRING_SERIAL:
+		src = dev->serial;
+		break;
+	case ACCESSORY_IS_START_REQUESTED:
+		return dev->start_requested;
+	case ACCESSORY_GET_AUDIO_MODE:
+		return dev->audio_mode;
+	}
+	if (!src)
+		return -EINVAL;
+
+	ret = strlen(src) + 1;
+	if (copy_to_user((void __user *)value, src, ret))
+		ret = -EFAULT;
+	return ret;
+}
+
+static int acc_open(struct inode *ip, struct file *fp)
+{
+	struct acc_dev *dev = get_acc_dev();
+
+	if (!dev)
+		return -ENODEV;
+
+	if (atomic_xchg(&dev->open_excl, 1)) {
+		put_acc_dev(dev);
+		return -EBUSY;
+	}
+
+	dev->disconnected = 0;
+	fp->private_data = dev;
+	return 0;
+}
+
+static int acc_release(struct inode *ip, struct file *fp)
+{
+	struct acc_dev *dev = fp->private_data;
+
+	if (!dev)
+		return -ENOENT;
+
+	/* indicate that we are disconnected
+	 * still could be online so don't touch online flag
+	 */
+	dev->disconnected = 1;
+
+	fp->private_data = NULL;
+	WARN_ON(!atomic_xchg(&dev->open_excl, 0));
+	put_acc_dev(dev);
+	return 0;
+}
+
+/* file operations for /dev/usb_accessory */
+static const struct file_operations acc_fops = {
+	.owner = THIS_MODULE,
+	.read = acc_read,
+	.write = acc_write,
+	.unlocked_ioctl = acc_ioctl,
+	.compat_ioctl = acc_ioctl,
+	.open = acc_open,
+	.release = acc_release,
+};
+
+static int acc_hid_probe(struct hid_device *hdev,
+		const struct hid_device_id *id)
+{
+	int ret;
+
+	ret = hid_parse(hdev);
+	if (ret)
+		return ret;
+	return hid_hw_start(hdev, HID_CONNECT_DEFAULT);
+}
+
+static struct miscdevice acc_device = {
+	.minor = MISC_DYNAMIC_MINOR,
+	.name = "usb_accessory",
+	.fops = &acc_fops,
+};
+
+static const struct hid_device_id acc_hid_table[] = {
+	{ HID_USB_DEVICE(HID_ANY_ID, HID_ANY_ID) },
+	{ }
+};
+
+static struct hid_driver acc_hid_driver = {
+	.name = "USB accessory",
+	.id_table = acc_hid_table,
+	.probe = acc_hid_probe,
+};
+
+static void acc_complete_setup_noop(struct usb_ep *ep, struct usb_request *req)
+{
+	/*
+	 * Default no-op function when nothing needs to be done for the
+	 * setup request
+	 */
+}
+
+int acc_ctrlrequest(struct usb_composite_dev *cdev,
+				const struct usb_ctrlrequest *ctrl)
+{
+	struct acc_dev	*dev = get_acc_dev();
+	int	value = -EOPNOTSUPP;
+	struct acc_hid_dev *hid;
+	int offset;
+	u8 b_requestType = ctrl->bRequestType;
+	u8 b_request = ctrl->bRequest;
+	u16	w_index = le16_to_cpu(ctrl->wIndex);
+	u16	w_value = le16_to_cpu(ctrl->wValue);
+	u16	w_length = le16_to_cpu(ctrl->wLength);
+	unsigned long flags;
+
+	/*
+	 * If instance is not created which is the case in power off charging
+	 * mode, dev will be NULL. Hence return error if it is the case.
+	 */
+	if (!dev)
+		return -ENODEV;
+
+	if (b_requestType == (USB_DIR_OUT | USB_TYPE_VENDOR)) {
+		if (b_request == ACCESSORY_START) {
+			dev->start_requested = 1;
+			schedule_delayed_work(
+				&dev->start_work, msecs_to_jiffies(10));
+			value = 0;
+			cdev->req->complete = acc_complete_setup_noop;
+		} else if (b_request == ACCESSORY_SEND_STRING) {
+			schedule_work(&dev->sendstring_work);
+			dev->string_index = w_index;
+			cdev->gadget->ep0->driver_data = dev;
+			cdev->req->complete = acc_complete_set_string;
+			value = w_length;
+		} else if (b_request == ACCESSORY_SET_AUDIO_MODE &&
+				w_index == 0 && w_length == 0) {
+			dev->audio_mode = w_value;
+			cdev->req->complete = acc_complete_setup_noop;
+			value = 0;
+		} else if (b_request == ACCESSORY_REGISTER_HID) {
+			cdev->req->complete = acc_complete_setup_noop;
+			value = acc_register_hid(dev, w_value, w_index);
+		} else if (b_request == ACCESSORY_UNREGISTER_HID) {
+			cdev->req->complete = acc_complete_setup_noop;
+			value = acc_unregister_hid(dev, w_value);
+		} else if (b_request == ACCESSORY_SET_HID_REPORT_DESC) {
+			spin_lock_irqsave(&dev->lock, flags);
+			hid = acc_hid_get(&dev->new_hid_list, w_value);
+			spin_unlock_irqrestore(&dev->lock, flags);
+			if (!hid) {
+				value = -EINVAL;
+				goto err;
+			}
+			offset = w_index;
+			if (offset != hid->report_desc_offset
+				|| offset + w_length > hid->report_desc_len) {
+				value = -EINVAL;
+				goto err;
+			}
+			cdev->req->context = hid;
+			cdev->req->complete = acc_complete_set_hid_report_desc;
+			value = w_length;
+		} else if (b_request == ACCESSORY_SEND_HID_EVENT) {
+			spin_lock_irqsave(&dev->lock, flags);
+			hid = acc_hid_get(&dev->hid_list, w_value);
+			spin_unlock_irqrestore(&dev->lock, flags);
+			if (!hid) {
+				value = -EINVAL;
+				goto err;
+			}
+			cdev->req->context = hid;
+			cdev->req->complete = acc_complete_send_hid_event;
+			value = w_length;
+		}
+	} else if (b_requestType == (USB_DIR_IN | USB_TYPE_VENDOR)) {
+		if (b_request == ACCESSORY_GET_PROTOCOL) {
+			schedule_work(&dev->getprotocol_work);
+			*((u16 *)cdev->req->buf) = PROTOCOL_VERSION;
+			value = sizeof(u16);
+			cdev->req->complete = acc_complete_setup_noop;
+			/* clear any string left over from a previous session */
+			memset(dev->manufacturer, 0, sizeof(dev->manufacturer));
+			memset(dev->model, 0, sizeof(dev->model));
+			memset(dev->description, 0, sizeof(dev->description));
+			memset(dev->version, 0, sizeof(dev->version));
+			memset(dev->uri, 0, sizeof(dev->uri));
+			memset(dev->serial, 0, sizeof(dev->serial));
+			dev->start_requested = 0;
+			dev->audio_mode = 0;
+		}
+	}
+
+	if (value >= 0) {
+		cdev->req->zero = 0;
+		cdev->req->length = value;
+		value = usb_ep_queue(cdev->gadget->ep0, cdev->req, GFP_ATOMIC);
+		if (value < 0)
+			ERROR(cdev, "%s setup response queue error\n",
+				__func__);
+	}
+
+err:
+	if (value == -EOPNOTSUPP)
+		VDBG(cdev,
+			"unknown class-specific control req "
+			"%02x.%02x v%04x i%04x l%u\n",
+			ctrl->bRequestType, ctrl->bRequest,
+			w_value, w_index, w_length);
+	put_acc_dev(dev);
+	return value;
+}
+EXPORT_SYMBOL_GPL(acc_ctrlrequest);
+
+int acc_ctrlrequest_composite(struct usb_composite_dev *cdev,
+			      const struct usb_ctrlrequest *ctrl)
+{
+	u16 w_length = le16_to_cpu(ctrl->wLength);
+
+	if (w_length > USB_COMP_EP0_BUFSIZ) {
+		if (ctrl->bRequestType & USB_DIR_IN) {
+			/* Cast away the const, we are going to overwrite on purpose. */
+			__le16 *temp = (__le16 *)&ctrl->wLength;
+
+			*temp = cpu_to_le16(USB_COMP_EP0_BUFSIZ);
+			w_length = USB_COMP_EP0_BUFSIZ;
+		} else {
+			return -EINVAL;
+		}
+	}
+	return acc_ctrlrequest(cdev, ctrl);
+}
+EXPORT_SYMBOL_GPL(acc_ctrlrequest_composite);
+
+static int
+__acc_function_bind(struct usb_configuration *c,
+			struct usb_function *f, bool configfs)
+{
+	struct usb_composite_dev *cdev = c->cdev;
+	struct usb_string *us;
+	struct acc_dev	*dev = func_to_dev(f);
+	int			id;
+	int			ret;
+
+	DBG(cdev, "acc_function_bind dev: %p\n", dev);
+
+	if (configfs) {
+		us = usb_gstrings_attach(cdev, acc_strings, ARRAY_SIZE(acc_string_defs));
+		if (IS_ERR(us))
+			return PTR_ERR(us);
+		ret = us[INTERFACE_STRING_INDEX].id;
+		acc_interface_desc.iInterface = ret;
+		dev->cdev = c->cdev;
+	}
+	ret = hid_register_driver(&acc_hid_driver);
+	if (ret)
+		return ret;
+
+	dev->start_requested = 0;
+
+	/* allocate interface ID(s) */
+	id = usb_interface_id(c, f);
+	if (id < 0)
+		return id;
+	acc_interface_desc.bInterfaceNumber = id;
+
+	/* allocate endpoints */
+	ret = create_bulk_endpoints(dev, &acc_fullspeed_in_desc,
+			&acc_fullspeed_out_desc);
+	if (ret)
+		return ret;
+
+	/* support high speed hardware */
+	acc_highspeed_in_desc.bEndpointAddress =
+		acc_fullspeed_in_desc.bEndpointAddress;
+	acc_highspeed_out_desc.bEndpointAddress =
+		acc_fullspeed_out_desc.bEndpointAddress;
+
+	/* support super speed hardware */
+	acc_superspeed_in_desc.bEndpointAddress =
+		acc_fullspeed_in_desc.bEndpointAddress;
+	acc_superspeed_out_desc.bEndpointAddress =
+		acc_fullspeed_out_desc.bEndpointAddress;
+
+	/* support super speed plus hardware */
+	acc_superspeedplus_in_desc.bEndpointAddress =
+		acc_fullspeed_in_desc.bEndpointAddress;
+	acc_superspeedplus_out_desc.bEndpointAddress =
+		acc_fullspeed_out_desc.bEndpointAddress;
+
+	DBG(cdev, "%s speed %s: IN/%s, OUT/%s\n",
+			gadget_is_dualspeed(c->cdev->gadget) ? "dual" : "full",
+			f->name, dev->ep_in->name, dev->ep_out->name);
+	return 0;
+}
+
+static int
+acc_function_bind_configfs(struct usb_configuration *c,
+			struct usb_function *f) {
+	return __acc_function_bind(c, f, true);
+}
+
+static void
+kill_all_hid_devices(struct acc_dev *dev)
+{
+	struct acc_hid_dev *hid;
+	struct list_head *entry, *temp;
+	unsigned long flags;
+
+	spin_lock_irqsave(&dev->lock, flags);
+	list_for_each_safe(entry, temp, &dev->hid_list) {
+		hid = list_entry(entry, struct acc_hid_dev, list);
+		list_del(&hid->list);
+		list_add(&hid->list, &dev->dead_hid_list);
+	}
+	list_for_each_safe(entry, temp, &dev->new_hid_list) {
+		hid = list_entry(entry, struct acc_hid_dev, list);
+		list_del(&hid->list);
+		list_add(&hid->list, &dev->dead_hid_list);
+	}
+	spin_unlock_irqrestore(&dev->lock, flags);
+
+	schedule_work(&dev->hid_work);
+}
+
+static void
+acc_hid_unbind(struct acc_dev *dev)
+{
+	hid_unregister_driver(&acc_hid_driver);
+	kill_all_hid_devices(dev);
+}
+
+static void
+acc_function_unbind(struct usb_configuration *c, struct usb_function *f)
+{
+	struct acc_dev	*dev = func_to_dev(f);
+	struct usb_request *req;
+	int i;
+
+	dev->online = 0;		/* clear online flag */
+	wake_up(&dev->read_wq);		/* unblock reads on closure */
+	wake_up(&dev->write_wq);	/* likewise for writes */
+
+	while ((req = req_get(dev, &dev->tx_idle)))
+		acc_request_free(req, dev->ep_in);
+	for (i = 0; i < RX_REQ_MAX; i++) {
+		acc_request_free(dev->rx_req[i], dev->ep_out);
+		dev->rx_req[i] = NULL;
+	}
+
+	acc_hid_unbind(dev);
+}
+
+static void acc_getprotocol_work(struct work_struct *data)
+{
+	char *envp[2] = { "ACCESSORY=GETPROTOCOL", NULL };
+
+	kobject_uevent_env(&acc_device.this_device->kobj, KOBJ_CHANGE, envp);
+}
+
+static void acc_sendstring_work(struct work_struct *data)
+{
+	char *envp[2] = { "ACCESSORY=SENDSTRING", NULL };
+
+	kobject_uevent_env(&acc_device.this_device->kobj, KOBJ_CHANGE, envp);
+}
+
+static void acc_start_work(struct work_struct *data)
+{
+	char *envp[2] = { "ACCESSORY=START", NULL };
+
+	kobject_uevent_env(&acc_device.this_device->kobj, KOBJ_CHANGE, envp);
+}
+
+static int acc_hid_init(struct acc_hid_dev *hdev)
+{
+	struct hid_device *hid;
+	int ret;
+
+	hid = hid_allocate_device();
+	if (IS_ERR(hid))
+		return PTR_ERR(hid);
+
+	hid->ll_driver = &acc_hid_ll_driver;
+	hid->dev.parent = acc_device.this_device;
+
+	hid->bus = BUS_USB;
+	hid->vendor = HID_ANY_ID;
+	hid->product = HID_ANY_ID;
+	hid->driver_data = hdev;
+	ret = hid_add_device(hid);
+	if (ret) {
+		pr_err("can't add hid device: %d\n", ret);
+		hid_destroy_device(hid);
+		return ret;
+	}
+
+	hdev->hid = hid;
+	return 0;
+}
+
+static void acc_hid_delete(struct acc_hid_dev *hid)
+{
+	kfree(hid->report_desc);
+	kfree(hid);
+}
+
+static void acc_hid_work(struct work_struct *data)
+{
+	struct acc_dev *dev = get_acc_dev();
+	struct list_head	*entry, *temp;
+	struct acc_hid_dev *hid;
+	struct list_head	new_list, dead_list;
+	unsigned long flags;
+
+	if (!dev)
+		return;
+
+	INIT_LIST_HEAD(&new_list);
+
+	spin_lock_irqsave(&dev->lock, flags);
+
+	/* copy hids that are ready for initialization to new_list */
+	list_for_each_safe(entry, temp, &dev->new_hid_list) {
+		hid = list_entry(entry, struct acc_hid_dev, list);
+		if (hid->report_desc_offset == hid->report_desc_len)
+			list_move(&hid->list, &new_list);
+	}
+
+	if (list_empty(&dev->dead_hid_list)) {
+		INIT_LIST_HEAD(&dead_list);
+	} else {
+		/* move all of dev->dead_hid_list to dead_list */
+		dead_list.prev = dev->dead_hid_list.prev;
+		dead_list.next = dev->dead_hid_list.next;
+		dead_list.next->prev = &dead_list;
+		dead_list.prev->next = &dead_list;
+		INIT_LIST_HEAD(&dev->dead_hid_list);
+	}
+
+	spin_unlock_irqrestore(&dev->lock, flags);
+
+	/* register new HID devices */
+	list_for_each_safe(entry, temp, &new_list) {
+		hid = list_entry(entry, struct acc_hid_dev, list);
+		if (acc_hid_init(hid)) {
+			pr_err("can't add HID device %p\n", hid);
+			acc_hid_delete(hid);
+		} else {
+			spin_lock_irqsave(&dev->lock, flags);
+			list_move(&hid->list, &dev->hid_list);
+			spin_unlock_irqrestore(&dev->lock, flags);
+		}
+	}
+
+	/* remove dead HID devices */
+	list_for_each_safe(entry, temp, &dead_list) {
+		hid = list_entry(entry, struct acc_hid_dev, list);
+		list_del(&hid->list);
+		if (hid->hid)
+			hid_destroy_device(hid->hid);
+		acc_hid_delete(hid);
+	}
+
+	put_acc_dev(dev);
+}
+
+static int acc_function_set_alt(struct usb_function *f,
+		unsigned intf, unsigned alt)
+{
+	struct acc_dev	*dev = func_to_dev(f);
+	struct usb_composite_dev *cdev = f->config->cdev;
+	int ret;
+
+	DBG(cdev, "acc_function_set_alt intf: %d alt: %d\n", intf, alt);
+
+	ret = config_ep_by_speed(cdev->gadget, f, dev->ep_in);
+	if (ret)
+		return ret;
+
+	ret = usb_ep_enable(dev->ep_in);
+	if (ret)
+		return ret;
+
+	ret = config_ep_by_speed(cdev->gadget, f, dev->ep_out);
+	if (ret)
+		return ret;
+
+	ret = usb_ep_enable(dev->ep_out);
+	if (ret) {
+		usb_ep_disable(dev->ep_in);
+		return ret;
+	}
+
+	dev->online = 1;
+	dev->disconnected = 0; /* if online then not disconnected */
+
+	/* readers may be blocked waiting for us to go online */
+	wake_up(&dev->read_wq);
+	return 0;
+}
+
+static void acc_function_disable(struct usb_function *f)
+{
+	struct acc_dev	*dev = func_to_dev(f);
+	struct usb_composite_dev	*cdev = dev->cdev;
+
+	DBG(cdev, "acc_function_disable\n");
+	acc_set_disconnected(dev); /* this now only sets disconnected */
+	dev->online = 0; /* so now need to clear online flag here too */
+	usb_ep_disable(dev->ep_in);
+	usb_ep_disable(dev->ep_out);
+
+	/* readers may be blocked waiting for us to go online */
+	wake_up(&dev->read_wq);
+
+	VDBG(cdev, "%s disabled\n", dev->function.name);
+}
+
+static int acc_setup(void)
+{
+	struct acc_dev_ref *ref = &_acc_dev_ref;
+	struct acc_dev *dev;
+	int ret;
+
+	if (kref_read(&ref->kref))
+		return -EBUSY;
+
+	dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+	if (!dev)
+		return -ENOMEM;
+
+	spin_lock_init(&dev->lock);
+	init_waitqueue_head(&dev->read_wq);
+	init_waitqueue_head(&dev->write_wq);
+	atomic_set(&dev->open_excl, 0);
+	INIT_LIST_HEAD(&dev->tx_idle);
+	INIT_LIST_HEAD(&dev->hid_list);
+	INIT_LIST_HEAD(&dev->new_hid_list);
+	INIT_LIST_HEAD(&dev->dead_hid_list);
+	INIT_DELAYED_WORK(&dev->start_work, acc_start_work);
+	INIT_WORK(&dev->hid_work, acc_hid_work);
+	INIT_WORK(&dev->getprotocol_work, acc_getprotocol_work);
+	INIT_WORK(&dev->sendstring_work, acc_sendstring_work);
+
+	dev->ref = ref;
+	if (cmpxchg_relaxed(&ref->acc_dev, NULL, dev)) {
+		ret = -EBUSY;
+		goto err_free_dev;
+	}
+
+	ret = misc_register(&acc_device);
+	if (ret)
+		goto err_zap_ptr;
+
+	kref_init(&ref->kref);
+	return 0;
+
+err_zap_ptr:
+	ref->acc_dev = NULL;
+err_free_dev:
+	kfree(dev);
+	pr_err("USB accessory gadget driver failed to initialize\n");
+	return ret;
+}
+
+void acc_disconnect(void)
+{
+	struct acc_dev *dev = get_acc_dev();
+
+	if (!dev)
+		return;
+
+	/* unregister all HID devices if USB is disconnected */
+	kill_all_hid_devices(dev);
+	put_acc_dev(dev);
+}
+EXPORT_SYMBOL_GPL(acc_disconnect);
+
+static void acc_cleanup(void)
+{
+	struct acc_dev *dev = get_acc_dev();
+
+	misc_deregister(&acc_device);
+	put_acc_dev(dev);
+	put_acc_dev(dev); /* Pairs with kref_init() in acc_setup() */
+}
+static struct acc_instance *to_acc_instance(struct config_item *item)
+{
+	return container_of(to_config_group(item), struct acc_instance,
+		func_inst.group);
+}
+
+static void acc_attr_release(struct config_item *item)
+{
+	struct acc_instance *fi_acc = to_acc_instance(item);
+
+	usb_put_function_instance(&fi_acc->func_inst);
+}
+
+static struct configfs_item_operations acc_item_ops = {
+	.release        = acc_attr_release,
+};
+
+static struct config_item_type acc_func_type = {
+	.ct_item_ops    = &acc_item_ops,
+	.ct_owner       = THIS_MODULE,
+};
+
+static struct acc_instance *to_fi_acc(struct usb_function_instance *fi)
+{
+	return container_of(fi, struct acc_instance, func_inst);
+}
+
+static int acc_set_inst_name(struct usb_function_instance *fi, const char *name)
+{
+	struct acc_instance *fi_acc;
+	char *ptr;
+	int name_len;
+
+	name_len = strlen(name) + 1;
+	if (name_len > MAX_INST_NAME_LEN)
+		return -ENAMETOOLONG;
+
+	ptr = kstrndup(name, name_len, GFP_KERNEL);
+	if (!ptr)
+		return -ENOMEM;
+
+	fi_acc = to_fi_acc(fi);
+	fi_acc->name = ptr;
+	return 0;
+}
+
+static void acc_free_inst(struct usb_function_instance *fi)
+{
+	struct acc_instance *fi_acc;
+
+	fi_acc = to_fi_acc(fi);
+	kfree(fi_acc->name);
+	acc_cleanup();
+}
+
+static struct usb_function_instance *acc_alloc_inst(void)
+{
+	struct acc_instance *fi_acc;
+	int err;
+
+	fi_acc = kzalloc(sizeof(*fi_acc), GFP_KERNEL);
+	if (!fi_acc)
+		return ERR_PTR(-ENOMEM);
+	fi_acc->func_inst.set_inst_name = acc_set_inst_name;
+	fi_acc->func_inst.free_func_inst = acc_free_inst;
+
+	err = acc_setup();
+	if (err) {
+		kfree(fi_acc);
+		return ERR_PTR(err);
+	}
+
+	config_group_init_type_name(&fi_acc->func_inst.group,
+					"", &acc_func_type);
+	return  &fi_acc->func_inst;
+}
+
+static void acc_free(struct usb_function *f)
+{
+	struct acc_dev *dev = func_to_dev(f);
+
+	put_acc_dev(dev);
+}
+
+int acc_ctrlrequest_configfs(struct usb_function *f,
+			const struct usb_ctrlrequest *ctrl) {
+	if (f->config != NULL && f->config->cdev != NULL)
+		return acc_ctrlrequest(f->config->cdev, ctrl);
+	else
+		return -1;
+}
+
+static struct usb_function *acc_alloc(struct usb_function_instance *fi)
+{
+	struct acc_dev *dev = get_acc_dev();
+
+	dev->function.name = "accessory";
+	dev->function.strings = acc_strings,
+	dev->function.fs_descriptors = fs_acc_descs;
+	dev->function.hs_descriptors = hs_acc_descs;
+	dev->function.ss_descriptors = ss_acc_descs;
+	dev->function.ssp_descriptors = ssp_acc_descs;
+	dev->function.bind = acc_function_bind_configfs;
+	dev->function.unbind = acc_function_unbind;
+	dev->function.set_alt = acc_function_set_alt;
+	dev->function.disable = acc_function_disable;
+	dev->function.free_func = acc_free;
+	dev->function.setup = acc_ctrlrequest_configfs;
+
+	return &dev->function;
+}
+DECLARE_USB_FUNCTION_INIT(accessory, acc_alloc_inst, acc_alloc);
+MODULE_LICENSE("GPL");
diff --git a/drivers/usb/gadget/function/f_audio_source.c b/drivers/usb/gadget/function/f_audio_source.c
new file mode 100644
index 0000000..c768a52
--- /dev/null
+++ b/drivers/usb/gadget/function/f_audio_source.c
@@ -0,0 +1,1071 @@
+/*
+ * Gadget Function Driver for USB audio source device
+ *
+ * Copyright (C) 2012 Google, Inc.
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <linux/device.h>
+#include <linux/usb/audio.h>
+#include <linux/wait.h>
+#include <linux/pm_qos.h>
+#include <sound/core.h>
+#include <sound/initval.h>
+#include <sound/pcm.h>
+
+#include <linux/usb.h>
+#include <linux/usb_usual.h>
+#include <linux/usb/ch9.h>
+#include <linux/configfs.h>
+#include <linux/usb/composite.h>
+#include <linux/module.h>
+#include <linux/moduleparam.h>
+#define SAMPLE_RATE 44100
+#define FRAMES_PER_MSEC (SAMPLE_RATE / 1000)
+
+#define IN_EP_MAX_PACKET_SIZE 256
+
+/* Number of requests to allocate */
+#define IN_EP_REQ_COUNT 4
+
+#define AUDIO_AC_INTERFACE	0
+#define AUDIO_AS_INTERFACE	1
+#define AUDIO_NUM_INTERFACES	2
+#define MAX_INST_NAME_LEN     40
+
+/* B.3.1  Standard AC Interface Descriptor */
+static struct usb_interface_descriptor ac_interface_desc = {
+	.bLength =		USB_DT_INTERFACE_SIZE,
+	.bDescriptorType =	USB_DT_INTERFACE,
+	.bNumEndpoints =	0,
+	.bInterfaceClass =	USB_CLASS_AUDIO,
+	.bInterfaceSubClass =	USB_SUBCLASS_AUDIOCONTROL,
+};
+
+DECLARE_UAC_AC_HEADER_DESCRIPTOR(2);
+
+#define UAC_DT_AC_HEADER_LENGTH	UAC_DT_AC_HEADER_SIZE(AUDIO_NUM_INTERFACES)
+/* 1 input terminal, 1 output terminal and 1 feature unit */
+#define UAC_DT_TOTAL_LENGTH (UAC_DT_AC_HEADER_LENGTH \
+	+ UAC_DT_INPUT_TERMINAL_SIZE + UAC_DT_OUTPUT_TERMINAL_SIZE \
+	+ UAC_DT_FEATURE_UNIT_SIZE(0))
+/* B.3.2  Class-Specific AC Interface Descriptor */
+static struct uac1_ac_header_descriptor_2 ac_header_desc = {
+	.bLength =		UAC_DT_AC_HEADER_LENGTH,
+	.bDescriptorType =	USB_DT_CS_INTERFACE,
+	.bDescriptorSubtype =	UAC_HEADER,
+	.bcdADC =		__constant_cpu_to_le16(0x0100),
+	.wTotalLength =		__constant_cpu_to_le16(UAC_DT_TOTAL_LENGTH),
+	.bInCollection =	AUDIO_NUM_INTERFACES,
+	.baInterfaceNr = {
+		[0] =		AUDIO_AC_INTERFACE,
+		[1] =		AUDIO_AS_INTERFACE,
+	}
+};
+
+#define INPUT_TERMINAL_ID	1
+static struct uac_input_terminal_descriptor input_terminal_desc = {
+	.bLength =		UAC_DT_INPUT_TERMINAL_SIZE,
+	.bDescriptorType =	USB_DT_CS_INTERFACE,
+	.bDescriptorSubtype =	UAC_INPUT_TERMINAL,
+	.bTerminalID =		INPUT_TERMINAL_ID,
+	.wTerminalType =	UAC_INPUT_TERMINAL_MICROPHONE,
+	.bAssocTerminal =	0,
+	.wChannelConfig =	0x3,
+};
+
+DECLARE_UAC_FEATURE_UNIT_DESCRIPTOR(0);
+
+#define FEATURE_UNIT_ID		2
+static struct uac_feature_unit_descriptor_0 feature_unit_desc = {
+	.bLength		= UAC_DT_FEATURE_UNIT_SIZE(0),
+	.bDescriptorType	= USB_DT_CS_INTERFACE,
+	.bDescriptorSubtype	= UAC_FEATURE_UNIT,
+	.bUnitID		= FEATURE_UNIT_ID,
+	.bSourceID		= INPUT_TERMINAL_ID,
+	.bControlSize		= 2,
+};
+
+#define OUTPUT_TERMINAL_ID	3
+static struct uac1_output_terminal_descriptor output_terminal_desc = {
+	.bLength		= UAC_DT_OUTPUT_TERMINAL_SIZE,
+	.bDescriptorType	= USB_DT_CS_INTERFACE,
+	.bDescriptorSubtype	= UAC_OUTPUT_TERMINAL,
+	.bTerminalID		= OUTPUT_TERMINAL_ID,
+	.wTerminalType		= UAC_TERMINAL_STREAMING,
+	.bAssocTerminal		= FEATURE_UNIT_ID,
+	.bSourceID		= FEATURE_UNIT_ID,
+};
+
+/* B.4.1  Standard AS Interface Descriptor */
+static struct usb_interface_descriptor as_interface_alt_0_desc = {
+	.bLength =		USB_DT_INTERFACE_SIZE,
+	.bDescriptorType =	USB_DT_INTERFACE,
+	.bAlternateSetting =	0,
+	.bNumEndpoints =	0,
+	.bInterfaceClass =	USB_CLASS_AUDIO,
+	.bInterfaceSubClass =	USB_SUBCLASS_AUDIOSTREAMING,
+};
+
+static struct usb_interface_descriptor as_interface_alt_1_desc = {
+	.bLength =		USB_DT_INTERFACE_SIZE,
+	.bDescriptorType =	USB_DT_INTERFACE,
+	.bAlternateSetting =	1,
+	.bNumEndpoints =	1,
+	.bInterfaceClass =	USB_CLASS_AUDIO,
+	.bInterfaceSubClass =	USB_SUBCLASS_AUDIOSTREAMING,
+};
+
+/* B.4.2  Class-Specific AS Interface Descriptor */
+static struct uac1_as_header_descriptor as_header_desc = {
+	.bLength =		UAC_DT_AS_HEADER_SIZE,
+	.bDescriptorType =	USB_DT_CS_INTERFACE,
+	.bDescriptorSubtype =	UAC_AS_GENERAL,
+	.bTerminalLink =	INPUT_TERMINAL_ID,
+	.bDelay =		1,
+	.wFormatTag =		UAC_FORMAT_TYPE_I_PCM,
+};
+
+DECLARE_UAC_FORMAT_TYPE_I_DISCRETE_DESC(1);
+
+static struct uac_format_type_i_discrete_descriptor_1 as_type_i_desc = {
+	.bLength =		UAC_FORMAT_TYPE_I_DISCRETE_DESC_SIZE(1),
+	.bDescriptorType =	USB_DT_CS_INTERFACE,
+	.bDescriptorSubtype =	UAC_FORMAT_TYPE,
+	.bFormatType =		UAC_FORMAT_TYPE_I,
+	.bSubframeSize =	2,
+	.bBitResolution =	16,
+	.bSamFreqType =		1,
+};
+
+/* Standard ISO IN Endpoint Descriptor for highspeed */
+static struct usb_endpoint_descriptor hs_as_in_ep_desc  = {
+	.bLength =		USB_DT_ENDPOINT_AUDIO_SIZE,
+	.bDescriptorType =	USB_DT_ENDPOINT,
+	.bEndpointAddress =	USB_DIR_IN,
+	.bmAttributes =		USB_ENDPOINT_SYNC_SYNC
+				| USB_ENDPOINT_XFER_ISOC,
+	.wMaxPacketSize =	__constant_cpu_to_le16(IN_EP_MAX_PACKET_SIZE),
+	.bInterval =		4, /* poll 1 per millisecond */
+};
+
+/* Standard ISO IN Endpoint Descriptor for highspeed */
+static struct usb_endpoint_descriptor fs_as_in_ep_desc  = {
+	.bLength =		USB_DT_ENDPOINT_AUDIO_SIZE,
+	.bDescriptorType =	USB_DT_ENDPOINT,
+	.bEndpointAddress =	USB_DIR_IN,
+	.bmAttributes =		USB_ENDPOINT_SYNC_SYNC
+				| USB_ENDPOINT_XFER_ISOC,
+	.wMaxPacketSize =	__constant_cpu_to_le16(IN_EP_MAX_PACKET_SIZE),
+	.bInterval =		1, /* poll 1 per millisecond */
+};
+
+/* Class-specific AS ISO OUT Endpoint Descriptor */
+static struct uac_iso_endpoint_descriptor as_iso_in_desc = {
+	.bLength =		UAC_ISO_ENDPOINT_DESC_SIZE,
+	.bDescriptorType =	USB_DT_CS_ENDPOINT,
+	.bDescriptorSubtype =	UAC_EP_GENERAL,
+	.bmAttributes =		1,
+	.bLockDelayUnits =	1,
+	.wLockDelay =		__constant_cpu_to_le16(1),
+};
+
+static struct usb_descriptor_header *hs_audio_desc[] = {
+	(struct usb_descriptor_header *)&ac_interface_desc,
+	(struct usb_descriptor_header *)&ac_header_desc,
+
+	(struct usb_descriptor_header *)&input_terminal_desc,
+	(struct usb_descriptor_header *)&output_terminal_desc,
+	(struct usb_descriptor_header *)&feature_unit_desc,
+
+	(struct usb_descriptor_header *)&as_interface_alt_0_desc,
+	(struct usb_descriptor_header *)&as_interface_alt_1_desc,
+	(struct usb_descriptor_header *)&as_header_desc,
+
+	(struct usb_descriptor_header *)&as_type_i_desc,
+
+	(struct usb_descriptor_header *)&hs_as_in_ep_desc,
+	(struct usb_descriptor_header *)&as_iso_in_desc,
+	NULL,
+};
+
+static struct usb_descriptor_header *fs_audio_desc[] = {
+	(struct usb_descriptor_header *)&ac_interface_desc,
+	(struct usb_descriptor_header *)&ac_header_desc,
+
+	(struct usb_descriptor_header *)&input_terminal_desc,
+	(struct usb_descriptor_header *)&output_terminal_desc,
+	(struct usb_descriptor_header *)&feature_unit_desc,
+
+	(struct usb_descriptor_header *)&as_interface_alt_0_desc,
+	(struct usb_descriptor_header *)&as_interface_alt_1_desc,
+	(struct usb_descriptor_header *)&as_header_desc,
+
+	(struct usb_descriptor_header *)&as_type_i_desc,
+
+	(struct usb_descriptor_header *)&fs_as_in_ep_desc,
+	(struct usb_descriptor_header *)&as_iso_in_desc,
+	NULL,
+};
+
+static struct snd_pcm_hardware audio_hw_info = {
+	.info =			SNDRV_PCM_INFO_MMAP |
+				SNDRV_PCM_INFO_MMAP_VALID |
+				SNDRV_PCM_INFO_BATCH |
+				SNDRV_PCM_INFO_INTERLEAVED |
+				SNDRV_PCM_INFO_BLOCK_TRANSFER,
+
+	.formats		= SNDRV_PCM_FMTBIT_S16_LE,
+	.channels_min		= 2,
+	.channels_max		= 2,
+	.rate_min		= SAMPLE_RATE,
+	.rate_max		= SAMPLE_RATE,
+
+	.buffer_bytes_max =	1024 * 1024,
+	.period_bytes_min =	64,
+	.period_bytes_max =	512 * 1024,
+	.periods_min =		2,
+	.periods_max =		1024,
+};
+
+/*-------------------------------------------------------------------------*/
+
+struct audio_source_config {
+	int	card;
+	int	device;
+};
+
+struct audio_dev {
+	struct usb_function		func;
+	struct snd_card			*card;
+	struct snd_pcm			*pcm;
+	struct snd_pcm_substream *substream;
+
+	struct list_head		idle_reqs;
+	struct usb_ep			*in_ep;
+
+	spinlock_t			lock;
+
+	/* beginning, end and current position in our buffer */
+	void				*buffer_start;
+	void				*buffer_end;
+	void				*buffer_pos;
+
+	/* byte size of a "period" */
+	unsigned int			period;
+	/* bytes sent since last call to snd_pcm_period_elapsed */
+	unsigned int			period_offset;
+	/* time we started playing */
+	ktime_t				start_time;
+	/* number of frames sent since start_time */
+	s64				frames_sent;
+	struct audio_source_config	*config;
+	/* for creating and issuing QoS requests */
+	struct pm_qos_request pm_qos;
+};
+
+static inline struct audio_dev *func_to_audio(struct usb_function *f)
+{
+	return container_of(f, struct audio_dev, func);
+}
+
+/*-------------------------------------------------------------------------*/
+
+struct audio_source_instance {
+	struct usb_function_instance func_inst;
+	const char *name;
+	struct audio_source_config *config;
+	struct device *audio_device;
+};
+
+static void audio_source_attr_release(struct config_item *item);
+
+static struct configfs_item_operations audio_source_item_ops = {
+	.release        = audio_source_attr_release,
+};
+
+static struct config_item_type audio_source_func_type = {
+	.ct_item_ops    = &audio_source_item_ops,
+	.ct_owner       = THIS_MODULE,
+};
+
+static ssize_t audio_source_pcm_show(struct device *dev,
+		struct device_attribute *attr, char *buf);
+
+static DEVICE_ATTR(pcm, S_IRUGO, audio_source_pcm_show, NULL);
+
+static struct device_attribute *audio_source_function_attributes[] = {
+	&dev_attr_pcm,
+	NULL
+};
+
+/*--------------------------------------------------------------------------*/
+
+static struct usb_request *audio_request_new(struct usb_ep *ep, int buffer_size)
+{
+	struct usb_request *req = usb_ep_alloc_request(ep, GFP_KERNEL);
+
+	if (!req)
+		return NULL;
+
+	req->buf = kmalloc(buffer_size, GFP_KERNEL);
+	if (!req->buf) {
+		usb_ep_free_request(ep, req);
+		return NULL;
+	}
+	req->length = buffer_size;
+	return req;
+}
+
+static void audio_request_free(struct usb_request *req, struct usb_ep *ep)
+{
+	if (req) {
+		kfree(req->buf);
+		usb_ep_free_request(ep, req);
+	}
+}
+
+static void audio_req_put(struct audio_dev *audio, struct usb_request *req)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&audio->lock, flags);
+	list_add_tail(&req->list, &audio->idle_reqs);
+	spin_unlock_irqrestore(&audio->lock, flags);
+}
+
+static struct usb_request *audio_req_get(struct audio_dev *audio)
+{
+	unsigned long flags;
+	struct usb_request *req;
+
+	spin_lock_irqsave(&audio->lock, flags);
+	if (list_empty(&audio->idle_reqs)) {
+		req = 0;
+	} else {
+		req = list_first_entry(&audio->idle_reqs, struct usb_request,
+				list);
+		list_del(&req->list);
+	}
+	spin_unlock_irqrestore(&audio->lock, flags);
+	return req;
+}
+
+/* send the appropriate number of packets to match our bitrate */
+static void audio_send(struct audio_dev *audio)
+{
+	struct snd_pcm_runtime *runtime;
+	struct usb_request *req;
+	int length, length1, length2, ret;
+	s64 msecs;
+	s64 frames;
+	ktime_t now;
+
+	/* audio->substream will be null if we have been closed */
+	if (!audio->substream)
+		return;
+	/* audio->buffer_pos will be null if we have been stopped */
+	if (!audio->buffer_pos)
+		return;
+
+	runtime = audio->substream->runtime;
+
+	/* compute number of frames to send */
+	now = ktime_get();
+	msecs = div_s64((ktime_to_ns(now) - ktime_to_ns(audio->start_time)),
+			1000000);
+	frames = div_s64((msecs * SAMPLE_RATE), 1000);
+
+	/* Readjust our frames_sent if we fall too far behind.
+	 * If we get too far behind it is better to drop some frames than
+	 * to keep sending data too fast in an attempt to catch up.
+	 */
+	if (frames - audio->frames_sent > 10 * FRAMES_PER_MSEC)
+		audio->frames_sent = frames - FRAMES_PER_MSEC;
+
+	frames -= audio->frames_sent;
+
+	/* We need to send something to keep the pipeline going */
+	if (frames <= 0)
+		frames = FRAMES_PER_MSEC;
+
+	while (frames > 0) {
+		req = audio_req_get(audio);
+		if (!req)
+			break;
+
+		length = frames_to_bytes(runtime, frames);
+		if (length > IN_EP_MAX_PACKET_SIZE)
+			length = IN_EP_MAX_PACKET_SIZE;
+
+		if (audio->buffer_pos + length > audio->buffer_end)
+			length1 = audio->buffer_end - audio->buffer_pos;
+		else
+			length1 = length;
+		memcpy(req->buf, audio->buffer_pos, length1);
+		if (length1 < length) {
+			/* Wrap around and copy remaining length
+			 * at beginning of buffer.
+			 */
+			length2 = length - length1;
+			memcpy(req->buf + length1, audio->buffer_start,
+					length2);
+			audio->buffer_pos = audio->buffer_start + length2;
+		} else {
+			audio->buffer_pos += length1;
+			if (audio->buffer_pos >= audio->buffer_end)
+				audio->buffer_pos = audio->buffer_start;
+		}
+
+		req->length = length;
+		ret = usb_ep_queue(audio->in_ep, req, GFP_ATOMIC);
+		if (ret < 0) {
+			pr_err("usb_ep_queue failed ret: %d\n", ret);
+			audio_req_put(audio, req);
+			break;
+		}
+
+		frames -= bytes_to_frames(runtime, length);
+		audio->frames_sent += bytes_to_frames(runtime, length);
+	}
+}
+
+static void audio_control_complete(struct usb_ep *ep, struct usb_request *req)
+{
+	/* nothing to do here */
+}
+
+static void audio_data_complete(struct usb_ep *ep, struct usb_request *req)
+{
+	struct audio_dev *audio = req->context;
+
+	pr_debug("audio_data_complete req->status %d req->actual %d\n",
+		req->status, req->actual);
+
+	audio_req_put(audio, req);
+
+	if (!audio->buffer_start || req->status)
+		return;
+
+	audio->period_offset += req->actual;
+	if (audio->period_offset >= audio->period) {
+		snd_pcm_period_elapsed(audio->substream);
+		audio->period_offset = 0;
+	}
+	audio_send(audio);
+}
+
+static int audio_set_endpoint_req(struct usb_function *f,
+		const struct usb_ctrlrequest *ctrl)
+{
+	int value = -EOPNOTSUPP;
+	u16 ep = le16_to_cpu(ctrl->wIndex);
+	u16 len = le16_to_cpu(ctrl->wLength);
+	u16 w_value = le16_to_cpu(ctrl->wValue);
+
+	pr_debug("bRequest 0x%x, w_value 0x%04x, len %d, endpoint %d\n",
+			ctrl->bRequest, w_value, len, ep);
+
+	switch (ctrl->bRequest) {
+	case UAC_SET_CUR:
+	case UAC_SET_MIN:
+	case UAC_SET_MAX:
+	case UAC_SET_RES:
+		value = len;
+		break;
+	default:
+		break;
+	}
+
+	return value;
+}
+
+static int audio_get_endpoint_req(struct usb_function *f,
+		const struct usb_ctrlrequest *ctrl)
+{
+	struct usb_composite_dev *cdev = f->config->cdev;
+	int value = -EOPNOTSUPP;
+	u8 ep = ((le16_to_cpu(ctrl->wIndex) >> 8) & 0xFF);
+	u16 len = le16_to_cpu(ctrl->wLength);
+	u16 w_value = le16_to_cpu(ctrl->wValue);
+	u8 *buf = cdev->req->buf;
+
+	pr_debug("bRequest 0x%x, w_value 0x%04x, len %d, endpoint %d\n",
+			ctrl->bRequest, w_value, len, ep);
+
+	if (w_value == UAC_EP_CS_ATTR_SAMPLE_RATE << 8) {
+		switch (ctrl->bRequest) {
+		case UAC_GET_CUR:
+		case UAC_GET_MIN:
+		case UAC_GET_MAX:
+		case UAC_GET_RES:
+			/* return our sample rate */
+			buf[0] = (u8)SAMPLE_RATE;
+			buf[1] = (u8)(SAMPLE_RATE >> 8);
+			buf[2] = (u8)(SAMPLE_RATE >> 16);
+			value = 3;
+			break;
+		default:
+			break;
+		}
+	}
+
+	return value;
+}
+
+static int
+audio_setup(struct usb_function *f, const struct usb_ctrlrequest *ctrl)
+{
+	struct usb_composite_dev *cdev = f->config->cdev;
+	struct usb_request *req = cdev->req;
+	int value = -EOPNOTSUPP;
+	u16 w_index = le16_to_cpu(ctrl->wIndex);
+	u16 w_value = le16_to_cpu(ctrl->wValue);
+	u16 w_length = le16_to_cpu(ctrl->wLength);
+
+	/* composite driver infrastructure handles everything; interface
+	 * activation uses set_alt().
+	 */
+	switch (ctrl->bRequestType) {
+	case USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_ENDPOINT:
+		value = audio_set_endpoint_req(f, ctrl);
+		break;
+
+	case USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_ENDPOINT:
+		value = audio_get_endpoint_req(f, ctrl);
+		break;
+	}
+
+	/* respond with data transfer or status phase? */
+	if (value >= 0) {
+		pr_debug("audio req%02x.%02x v%04x i%04x l%d\n",
+			ctrl->bRequestType, ctrl->bRequest,
+			w_value, w_index, w_length);
+		req->zero = 0;
+		req->length = value;
+		req->complete = audio_control_complete;
+		value = usb_ep_queue(cdev->gadget->ep0, req, GFP_ATOMIC);
+		if (value < 0)
+			pr_err("audio response on err %d\n", value);
+	}
+
+	/* device either stalls (value < 0) or reports success */
+	return value;
+}
+
+static int audio_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
+{
+	struct audio_dev *audio = func_to_audio(f);
+	struct usb_composite_dev *cdev = f->config->cdev;
+	int ret;
+
+	pr_debug("audio_set_alt intf %d, alt %d\n", intf, alt);
+
+	ret = config_ep_by_speed(cdev->gadget, f, audio->in_ep);
+	if (ret)
+		return ret;
+
+	usb_ep_enable(audio->in_ep);
+	return 0;
+}
+
+static void audio_disable(struct usb_function *f)
+{
+	struct audio_dev	*audio = func_to_audio(f);
+
+	pr_debug("audio_disable\n");
+	usb_ep_disable(audio->in_ep);
+}
+
+static void audio_free_func(struct usb_function *f)
+{
+	/* no-op */
+}
+
+/*-------------------------------------------------------------------------*/
+
+static void audio_build_desc(struct audio_dev *audio)
+{
+	u8 *sam_freq;
+	int rate;
+
+	/* Set channel numbers */
+	input_terminal_desc.bNrChannels = 2;
+	as_type_i_desc.bNrChannels = 2;
+
+	/* Set sample rates */
+	rate = SAMPLE_RATE;
+	sam_freq = as_type_i_desc.tSamFreq[0];
+	memcpy(sam_freq, &rate, 3);
+}
+
+
+static int snd_card_setup(struct usb_configuration *c,
+	struct audio_source_config *config);
+static struct audio_source_instance *to_fi_audio_source(
+	const struct usb_function_instance *fi);
+
+
+/* audio function driver setup/binding */
+static int
+audio_bind(struct usb_configuration *c, struct usb_function *f)
+{
+	struct usb_composite_dev *cdev = c->cdev;
+	struct audio_dev *audio = func_to_audio(f);
+	int status;
+	struct usb_ep *ep;
+	struct usb_request *req;
+	int i;
+	int err;
+
+	if (IS_ENABLED(CONFIG_USB_CONFIGFS)) {
+		struct audio_source_instance *fi_audio =
+				to_fi_audio_source(f->fi);
+		struct audio_source_config *config =
+				fi_audio->config;
+
+		err = snd_card_setup(c, config);
+		if (err)
+			return err;
+	}
+
+	audio_build_desc(audio);
+
+	/* allocate instance-specific interface IDs, and patch descriptors */
+	status = usb_interface_id(c, f);
+	if (status < 0)
+		goto fail;
+	ac_interface_desc.bInterfaceNumber = status;
+
+	/* AUDIO_AC_INTERFACE */
+	ac_header_desc.baInterfaceNr[0] = status;
+
+	status = usb_interface_id(c, f);
+	if (status < 0)
+		goto fail;
+	as_interface_alt_0_desc.bInterfaceNumber = status;
+	as_interface_alt_1_desc.bInterfaceNumber = status;
+
+	/* AUDIO_AS_INTERFACE */
+	ac_header_desc.baInterfaceNr[1] = status;
+
+	status = -ENODEV;
+
+	/* allocate our endpoint */
+	ep = usb_ep_autoconfig(cdev->gadget, &fs_as_in_ep_desc);
+	if (!ep)
+		goto fail;
+	audio->in_ep = ep;
+	ep->driver_data = audio; /* claim */
+
+	if (gadget_is_dualspeed(c->cdev->gadget))
+		hs_as_in_ep_desc.bEndpointAddress =
+			fs_as_in_ep_desc.bEndpointAddress;
+
+	f->fs_descriptors = fs_audio_desc;
+	f->hs_descriptors = hs_audio_desc;
+
+	for (i = 0, status = 0; i < IN_EP_REQ_COUNT && status == 0; i++) {
+		req = audio_request_new(ep, IN_EP_MAX_PACKET_SIZE);
+		if (req) {
+			req->context = audio;
+			req->complete = audio_data_complete;
+			audio_req_put(audio, req);
+		} else
+			status = -ENOMEM;
+	}
+
+fail:
+	return status;
+}
+
+static void
+audio_unbind(struct usb_configuration *c, struct usb_function *f)
+{
+	struct audio_dev *audio = func_to_audio(f);
+	struct usb_request *req;
+
+	while ((req = audio_req_get(audio)))
+		audio_request_free(req, audio->in_ep);
+
+	snd_card_free_when_closed(audio->card);
+	audio->card = NULL;
+	audio->pcm = NULL;
+	audio->substream = NULL;
+	audio->in_ep = NULL;
+
+	if (IS_ENABLED(CONFIG_USB_CONFIGFS)) {
+		struct audio_source_instance *fi_audio =
+				to_fi_audio_source(f->fi);
+		struct audio_source_config *config =
+				fi_audio->config;
+
+		config->card = -1;
+		config->device = -1;
+	}
+}
+
+static void audio_pcm_playback_start(struct audio_dev *audio)
+{
+	audio->start_time = ktime_get();
+	audio->frames_sent = 0;
+	audio_send(audio);
+}
+
+static void audio_pcm_playback_stop(struct audio_dev *audio)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&audio->lock, flags);
+	audio->buffer_start = 0;
+	audio->buffer_end = 0;
+	audio->buffer_pos = 0;
+	spin_unlock_irqrestore(&audio->lock, flags);
+}
+
+static int audio_pcm_open(struct snd_pcm_substream *substream)
+{
+	struct snd_pcm_runtime *runtime = substream->runtime;
+	struct audio_dev *audio = substream->private_data;
+
+	runtime->private_data = audio;
+	runtime->hw = audio_hw_info;
+	snd_pcm_limit_hw_rates(runtime);
+	runtime->hw.channels_max = 2;
+
+	audio->substream = substream;
+
+	/* Add the QoS request and set the latency to 0 */
+	cpu_latency_qos_add_request(&audio->pm_qos, 0);
+
+	return 0;
+}
+
+static int audio_pcm_close(struct snd_pcm_substream *substream)
+{
+	struct audio_dev *audio = substream->private_data;
+	unsigned long flags;
+
+	spin_lock_irqsave(&audio->lock, flags);
+
+	/* Remove the QoS request */
+	cpu_latency_qos_remove_request(&audio->pm_qos);
+
+	audio->substream = NULL;
+	spin_unlock_irqrestore(&audio->lock, flags);
+
+	return 0;
+}
+
+static int audio_pcm_hw_params(struct snd_pcm_substream *substream,
+				struct snd_pcm_hw_params *params)
+{
+	unsigned int channels = params_channels(params);
+	unsigned int rate = params_rate(params);
+
+	if (rate != SAMPLE_RATE)
+		return -EINVAL;
+	if (channels != 2)
+		return -EINVAL;
+
+	return snd_pcm_lib_alloc_vmalloc_buffer(substream,
+		params_buffer_bytes(params));
+}
+
+static int audio_pcm_hw_free(struct snd_pcm_substream *substream)
+{
+	return snd_pcm_lib_free_vmalloc_buffer(substream);
+}
+
+static int audio_pcm_prepare(struct snd_pcm_substream *substream)
+{
+	struct snd_pcm_runtime *runtime = substream->runtime;
+	struct audio_dev *audio = runtime->private_data;
+
+	audio->period = snd_pcm_lib_period_bytes(substream);
+	audio->period_offset = 0;
+	audio->buffer_start = runtime->dma_area;
+	audio->buffer_end = audio->buffer_start
+		+ snd_pcm_lib_buffer_bytes(substream);
+	audio->buffer_pos = audio->buffer_start;
+
+	return 0;
+}
+
+static snd_pcm_uframes_t audio_pcm_pointer(struct snd_pcm_substream *substream)
+{
+	struct snd_pcm_runtime *runtime = substream->runtime;
+	struct audio_dev *audio = runtime->private_data;
+	ssize_t bytes = audio->buffer_pos - audio->buffer_start;
+
+	/* return offset of next frame to fill in our buffer */
+	return bytes_to_frames(runtime, bytes);
+}
+
+static int audio_pcm_playback_trigger(struct snd_pcm_substream *substream,
+					int cmd)
+{
+	struct audio_dev *audio = substream->runtime->private_data;
+	int ret = 0;
+
+	switch (cmd) {
+	case SNDRV_PCM_TRIGGER_START:
+	case SNDRV_PCM_TRIGGER_RESUME:
+		audio_pcm_playback_start(audio);
+		break;
+
+	case SNDRV_PCM_TRIGGER_STOP:
+	case SNDRV_PCM_TRIGGER_SUSPEND:
+		audio_pcm_playback_stop(audio);
+		break;
+
+	default:
+		ret = -EINVAL;
+	}
+
+	return ret;
+}
+
+static struct audio_dev _audio_dev = {
+	.func = {
+		.name = "audio_source",
+		.bind = audio_bind,
+		.unbind = audio_unbind,
+		.set_alt = audio_set_alt,
+		.setup = audio_setup,
+		.disable = audio_disable,
+		.free_func = audio_free_func,
+	},
+	.lock = __SPIN_LOCK_UNLOCKED(_audio_dev.lock),
+	.idle_reqs = LIST_HEAD_INIT(_audio_dev.idle_reqs),
+};
+
+static struct snd_pcm_ops audio_playback_ops = {
+	.open		= audio_pcm_open,
+	.close		= audio_pcm_close,
+	.ioctl		= snd_pcm_lib_ioctl,
+	.hw_params	= audio_pcm_hw_params,
+	.hw_free	= audio_pcm_hw_free,
+	.prepare	= audio_pcm_prepare,
+	.trigger	= audio_pcm_playback_trigger,
+	.pointer	= audio_pcm_pointer,
+};
+
+int audio_source_bind_config(struct usb_configuration *c,
+		struct audio_source_config *config)
+{
+	struct audio_dev *audio;
+	int err;
+
+	config->card = -1;
+	config->device = -1;
+
+	audio = &_audio_dev;
+
+	err = snd_card_setup(c, config);
+	if (err)
+		return err;
+
+	err = usb_add_function(c, &audio->func);
+	if (err)
+		goto add_fail;
+
+	return 0;
+
+add_fail:
+	snd_card_free(audio->card);
+	return err;
+}
+
+static int snd_card_setup(struct usb_configuration *c,
+		struct audio_source_config *config)
+{
+	struct audio_dev *audio;
+	struct snd_card *card;
+	struct snd_pcm *pcm;
+	int err;
+
+	audio = &_audio_dev;
+
+	err = snd_card_new(&c->cdev->gadget->dev,
+			SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1,
+			THIS_MODULE, 0, &card);
+	if (err)
+		return err;
+
+	err = snd_pcm_new(card, "USB audio source", 0, 1, 0, &pcm);
+	if (err)
+		goto pcm_fail;
+
+	pcm->private_data = audio;
+	pcm->info_flags = 0;
+	audio->pcm = pcm;
+
+	strlcpy(pcm->name, "USB gadget audio", sizeof(pcm->name));
+
+	snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &audio_playback_ops);
+	snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
+				NULL, 0, 64 * 1024);
+
+	strlcpy(card->driver, "audio_source", sizeof(card->driver));
+	strlcpy(card->shortname, card->driver, sizeof(card->shortname));
+	strlcpy(card->longname, "USB accessory audio source",
+		sizeof(card->longname));
+
+	err = snd_card_register(card);
+	if (err)
+		goto register_fail;
+
+	config->card = pcm->card->number;
+	config->device = pcm->device;
+	audio->card = card;
+	return 0;
+
+register_fail:
+pcm_fail:
+	snd_card_free(audio->card);
+	return err;
+}
+
+static struct audio_source_instance *to_audio_source_instance(
+					struct config_item *item)
+{
+	return container_of(to_config_group(item), struct audio_source_instance,
+		func_inst.group);
+}
+
+static struct audio_source_instance *to_fi_audio_source(
+					const struct usb_function_instance *fi)
+{
+	return container_of(fi, struct audio_source_instance, func_inst);
+}
+
+static void audio_source_attr_release(struct config_item *item)
+{
+	struct audio_source_instance *fi_audio = to_audio_source_instance(item);
+
+	usb_put_function_instance(&fi_audio->func_inst);
+}
+
+static int audio_source_set_inst_name(struct usb_function_instance *fi,
+					const char *name)
+{
+	struct audio_source_instance *fi_audio;
+	char *ptr;
+	int name_len;
+
+	name_len = strlen(name) + 1;
+	if (name_len > MAX_INST_NAME_LEN)
+		return -ENAMETOOLONG;
+
+	ptr = kstrndup(name, name_len, GFP_KERNEL);
+	if (!ptr)
+		return -ENOMEM;
+
+	fi_audio = to_fi_audio_source(fi);
+	fi_audio->name = ptr;
+
+	return 0;
+}
+
+static void audio_source_free_inst(struct usb_function_instance *fi)
+{
+	struct audio_source_instance *fi_audio;
+
+	fi_audio = to_fi_audio_source(fi);
+	device_destroy(fi_audio->audio_device->class,
+			fi_audio->audio_device->devt);
+	kfree(fi_audio->name);
+	kfree(fi_audio->config);
+}
+
+static ssize_t audio_source_pcm_show(struct device *dev,
+		struct device_attribute *attr, char *buf)
+{
+	struct audio_source_instance *fi_audio = dev_get_drvdata(dev);
+	struct audio_source_config *config = fi_audio->config;
+
+	/* print PCM card and device numbers */
+	return sprintf(buf, "%d %d\n", config->card, config->device);
+}
+
+struct device *create_function_device(char *name);
+
+static struct usb_function_instance *audio_source_alloc_inst(void)
+{
+	struct audio_source_instance *fi_audio;
+	struct device_attribute **attrs;
+	struct device_attribute *attr;
+	struct device *dev;
+	void *err_ptr;
+	int err = 0;
+
+	fi_audio = kzalloc(sizeof(*fi_audio), GFP_KERNEL);
+	if (!fi_audio)
+		return ERR_PTR(-ENOMEM);
+
+	fi_audio->func_inst.set_inst_name = audio_source_set_inst_name;
+	fi_audio->func_inst.free_func_inst = audio_source_free_inst;
+
+	fi_audio->config = kzalloc(sizeof(struct audio_source_config),
+							GFP_KERNEL);
+	if (!fi_audio->config) {
+		err_ptr = ERR_PTR(-ENOMEM);
+		goto fail_audio;
+	}
+
+	config_group_init_type_name(&fi_audio->func_inst.group, "",
+						&audio_source_func_type);
+	dev = create_function_device("f_audio_source");
+
+	if (IS_ERR(dev)) {
+		err_ptr = dev;
+		goto fail_audio_config;
+	}
+
+	fi_audio->config->card = -1;
+	fi_audio->config->device = -1;
+	fi_audio->audio_device = dev;
+
+	attrs = audio_source_function_attributes;
+	if (attrs) {
+		while ((attr = *attrs++) && !err)
+			err = device_create_file(dev, attr);
+		if (err) {
+			err_ptr = ERR_PTR(-EINVAL);
+			goto fail_device;
+		}
+	}
+
+	dev_set_drvdata(dev, fi_audio);
+	_audio_dev.config = fi_audio->config;
+
+	return  &fi_audio->func_inst;
+
+fail_device:
+	device_destroy(dev->class, dev->devt);
+fail_audio_config:
+	kfree(fi_audio->config);
+fail_audio:
+	kfree(fi_audio);
+	return err_ptr;
+
+}
+
+static struct usb_function *audio_source_alloc(struct usb_function_instance *fi)
+{
+	return &_audio_dev.func;
+}
+
+DECLARE_USB_FUNCTION_INIT(audio_source, audio_source_alloc_inst,
+			audio_source_alloc);
+MODULE_LICENSE("GPL");
diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c
index 73ad9c3..9e81197 100644
--- a/drivers/usb/gadget/function/f_fs.c
+++ b/drivers/usb/gadget/function/f_fs.c
@@ -3709,7 +3709,7 @@
 
 	existing = _ffs_do_find_dev(name);
 	if (!existing)
-		strlcpy(dev->name, name, ARRAY_SIZE(dev->name));
+		strscpy(dev->name, name, ARRAY_SIZE(dev->name));
 	else if (existing != dev)
 		ret = -EBUSY;
 
diff --git a/drivers/usb/gadget/function/f_mass_storage.c b/drivers/usb/gadget/function/f_mass_storage.c
index 6ad669d..1635ca2 100644
--- a/drivers/usb/gadget/function/f_mass_storage.c
+++ b/drivers/usb/gadget/function/f_mass_storage.c
@@ -1156,25 +1156,72 @@
 	int		msf = common->cmnd[1] & 0x02;
 	int		start_track = common->cmnd[6];
 	u8		*buf = (u8 *)bh->buf;
+	u8		format;
+	int		i, len;
+
+	format = common->cmnd[2] & 0xf;
 
 	if ((common->cmnd[1] & ~0x02) != 0 ||	/* Mask away MSF */
-			start_track > 1) {
+			(start_track > 1 && format != 0x1)) {
 		curlun->sense_data = SS_INVALID_FIELD_IN_CDB;
 		return -EINVAL;
 	}
 
-	memset(buf, 0, 20);
-	buf[1] = (20-2);		/* TOC data length */
-	buf[2] = 1;			/* First track number */
-	buf[3] = 1;			/* Last track number */
-	buf[5] = 0x16;			/* Data track, copying allowed */
-	buf[6] = 0x01;			/* Only track is number 1 */
-	store_cdrom_address(&buf[8], msf, 0);
+	/*
+	 * Check if CDB is old style SFF-8020i
+	 * i.e. format is in 2 MSBs of byte 9
+	 * Mac OS-X host sends us this.
+	 */
+	if (format == 0)
+		format = (common->cmnd[9] >> 6) & 0x3;
 
-	buf[13] = 0x16;			/* Lead-out track is data */
-	buf[14] = 0xAA;			/* Lead-out track number */
-	store_cdrom_address(&buf[16], msf, curlun->num_sectors);
-	return 20;
+	switch (format) {
+	case 0:	/* Formatted TOC */
+	case 1:	/* Multi-session info */
+		len = 4 + 2*8;		/* 4 byte header + 2 descriptors */
+		memset(buf, 0, len);
+		buf[1] = len - 2;	/* TOC Length excludes length field */
+		buf[2] = 1;		/* First track number */
+		buf[3] = 1;		/* Last track number */
+		buf[5] = 0x16;		/* Data track, copying allowed */
+		buf[6] = 0x01;		/* Only track is number 1 */
+		store_cdrom_address(&buf[8], msf, 0);
+
+		buf[13] = 0x16;		/* Lead-out track is data */
+		buf[14] = 0xAA;		/* Lead-out track number */
+		store_cdrom_address(&buf[16], msf, curlun->num_sectors);
+		return len;
+
+	case 2:
+		/* Raw TOC */
+		len = 4 + 3*11;		/* 4 byte header + 3 descriptors */
+		memset(buf, 0, len);	/* Header + A0, A1 & A2 descriptors */
+		buf[1] = len - 2;	/* TOC Length excludes length field */
+		buf[2] = 1;		/* First complete session */
+		buf[3] = 1;		/* Last complete session */
+
+		buf += 4;
+		/* fill in A0, A1 and A2 points */
+		for (i = 0; i < 3; i++) {
+			buf[0] = 1;	/* Session number */
+			buf[1] = 0x16;	/* Data track, copying allowed */
+			/* 2 - Track number 0 ->  TOC */
+			buf[3] = 0xA0 + i; /* A0, A1, A2 point */
+			/* 4, 5, 6 - Min, sec, frame is zero */
+			buf[8] = 1;	/* Pmin: last track number */
+			buf += 11;	/* go to next track descriptor */
+		}
+		buf -= 11;		/* go back to A2 descriptor */
+
+		/* For A2, 7, 8, 9, 10 - zero, Pmin, Psec, Pframe of Lead out */
+		store_cdrom_address(&buf[7], msf, curlun->num_sectors);
+		return len;
+
+	default:
+		/* PMA, ATIP, CD-TEXT not supported/required */
+		curlun->sense_data = SS_INVALID_FIELD_IN_CDB;
+		return -EINVAL;
+	}
 }
 
 static int do_mode_sense(struct fsg_common *common, struct fsg_buffhd *bh)
@@ -1901,7 +1948,7 @@
 		common->data_size_from_cmnd =
 			get_unaligned_be16(&common->cmnd[7]);
 		reply = check_command(common, 10, DATA_DIR_TO_HOST,
-				      (7<<6) | (1<<1), 1,
+				      (0xf<<6) | (3<<1), 1,
 				      "READ TOC");
 		if (reply == 0)
 			reply = do_read_toc(common, bh);
@@ -2269,6 +2316,16 @@
 {
 	struct fsg_dev *fsg = fsg_from_func(f);
 
+	/* Disable the endpoints */
+	if (fsg->bulk_in_enabled) {
+		usb_ep_disable(fsg->bulk_in);
+		fsg->bulk_in_enabled = 0;
+	}
+	if (fsg->bulk_out_enabled) {
+		usb_ep_disable(fsg->bulk_out);
+		fsg->bulk_out_enabled = 0;
+	}
+
 	__raise_exception(fsg->common, FSG_STATE_CONFIG_CHANGE, NULL);
 }
 
@@ -3404,6 +3461,7 @@
 
 DECLARE_USB_FUNCTION_INIT(mass_storage, fsg_alloc_inst, fsg_alloc);
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
 MODULE_AUTHOR("Michal Nazarewicz");
 
 /************************* Module parameters *************************/
diff --git a/drivers/usb/gadget/function/f_midi.c b/drivers/usb/gadget/function/f_midi.c
index 71a1a26..0e78da6 100644
--- a/drivers/usb/gadget/function/f_midi.c
+++ b/drivers/usb/gadget/function/f_midi.c
@@ -1224,6 +1224,65 @@
 	}
 }
 
+#ifdef CONFIG_USB_CONFIGFS_UEVENT
+extern struct device *create_function_device(char *name);
+static ssize_t alsa_show(struct device *dev,
+		struct device_attribute *attr, char *buf)
+{
+	struct usb_function_instance *fi_midi = dev_get_drvdata(dev);
+	struct f_midi *midi;
+
+	if (!fi_midi->f)
+		dev_warn(dev, "f_midi: function not set\n");
+
+	if (fi_midi && fi_midi->f) {
+		midi = func_to_midi(fi_midi->f);
+		if (midi->rmidi && midi->card && midi->rmidi->card)
+			return sprintf(buf, "%d %d\n",
+			midi->rmidi->card->number, midi->rmidi->device);
+	}
+
+	/* print PCM card and device numbers */
+	return sprintf(buf, "%d %d\n", -1, -1);
+}
+
+static DEVICE_ATTR(alsa, S_IRUGO, alsa_show, NULL);
+
+static struct device_attribute *alsa_function_attributes[] = {
+	&dev_attr_alsa,
+	NULL
+};
+
+static int create_alsa_device(struct usb_function_instance *fi)
+{
+	struct device *dev;
+	struct device_attribute **attrs;
+	struct device_attribute *attr;
+	int err = 0;
+
+	dev = create_function_device("f_midi");
+	if (IS_ERR(dev))
+		return PTR_ERR(dev);
+
+	attrs = alsa_function_attributes;
+	if (attrs) {
+		while ((attr = *attrs++) && !err)
+			err = device_create_file(dev, attr);
+		if (err) {
+			device_destroy(dev->class, dev->devt);
+			return -EINVAL;
+		}
+	}
+	dev_set_drvdata(dev, fi);
+	return 0;
+}
+#else
+static int create_alsa_device(struct usb_function_instance *fi)
+{
+	return 0;
+}
+#endif
+
 static struct usb_function_instance *f_midi_alloc_inst(void)
 {
 	struct f_midi_opts *opts;
@@ -1242,6 +1301,11 @@
 	opts->out_ports = 1;
 	opts->refcnt = 1;
 
+	if (create_alsa_device(&opts->func_inst)) {
+		kfree(opts);
+		return ERR_PTR(-ENODEV);
+	}
+
 	config_group_init_type_name(&opts->func_inst.group, "",
 				    &midi_func_type);
 
@@ -1262,6 +1326,7 @@
 		kfifo_free(&midi->in_req_fifo);
 		kfree(midi);
 		free = true;
+		opts->func_inst.f = NULL;
 	}
 	mutex_unlock(&opts->lock);
 
@@ -1349,6 +1414,7 @@
 	midi->func.disable	= f_midi_disable;
 	midi->func.free_func	= f_midi_free;
 
+	fi->f = &midi->func;
 	return &midi->func;
 
 midi_free:
diff --git a/drivers/usb/gadget/function/f_serial.c b/drivers/usb/gadget/function/f_serial.c
index 1ed8ff0..a9480b9 100644
--- a/drivers/usb/gadget/function/f_serial.c
+++ b/drivers/usb/gadget/function/f_serial.c
@@ -345,6 +345,10 @@
 
 static void gser_unbind(struct usb_configuration *c, struct usb_function *f)
 {
+	struct f_gser	*gser = func_to_gser(f);
+
+	/* Ensure port is disconnected before unbinding */
+	gserial_disconnect(&gser->port);
 	usb_free_all_descriptors(f);
 }
 
diff --git a/drivers/usb/gadget/function/f_uac1_legacy.c b/drivers/usb/gadget/function/f_uac1_legacy.c
index e2d7f69..8ffd477 100644
--- a/drivers/usb/gadget/function/f_uac1_legacy.c
+++ b/drivers/usb/gadget/function/f_uac1_legacy.c
@@ -1015,4 +1015,5 @@
 
 DECLARE_USB_FUNCTION_INIT(uac1_legacy, f_audio_alloc_inst, f_audio_alloc);
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
 MODULE_AUTHOR("Bryan Wu");
diff --git a/drivers/usb/gadget/function/f_uvc.c b/drivers/usb/gadget/function/f_uvc.c
index 5df1b68..32f2c16 100644
--- a/drivers/usb/gadget/function/f_uvc.c
+++ b/drivers/usb/gadget/function/f_uvc.c
@@ -24,7 +24,6 @@
 #include <media/v4l2-dev.h>
 #include <media/v4l2-event.h>
 
-#include "u_uvc.h"
 #include "uvc.h"
 #include "uvc_configfs.h"
 #include "uvc_v4l2.h"
@@ -40,11 +39,8 @@
 
 /* string IDs are assigned dynamically */
 
-#define UVC_STRING_CONTROL_IDX			0
-#define UVC_STRING_STREAMING_IDX		1
-
 static struct usb_string uvc_en_us_strings[] = {
-	[UVC_STRING_CONTROL_IDX].s = "UVC Camera",
+	/* [UVC_STRING_CONTROL_IDX].s = DYNAMIC, */
 	[UVC_STRING_STREAMING_IDX].s = "Video Streaming",
 	{  }
 };
@@ -142,7 +138,8 @@
 	.bEndpointAddress	= USB_DIR_IN,
 	.bmAttributes		= USB_ENDPOINT_SYNC_ASYNC
 				| USB_ENDPOINT_XFER_ISOC,
-	/* The wMaxPacketSize and bInterval values will be initialized from
+	/*
+	 * The wMaxPacketSize and bInterval values will be initialized from
 	 * module parameters.
 	 */
 };
@@ -153,7 +150,8 @@
 	.bEndpointAddress	= USB_DIR_IN,
 	.bmAttributes		= USB_ENDPOINT_SYNC_ASYNC
 				| USB_ENDPOINT_XFER_ISOC,
-	/* The wMaxPacketSize and bInterval values will be initialized from
+	/*
+	 * The wMaxPacketSize and bInterval values will be initialized from
 	 * module parameters.
 	 */
 };
@@ -165,7 +163,8 @@
 	.bEndpointAddress	= USB_DIR_IN,
 	.bmAttributes		= USB_ENDPOINT_SYNC_ASYNC
 				| USB_ENDPOINT_XFER_ISOC,
-	/* The wMaxPacketSize and bInterval values will be initialized from
+	/*
+	 * The wMaxPacketSize and bInterval values will be initialized from
 	 * module parameters.
 	 */
 };
@@ -173,7 +172,8 @@
 static struct usb_ss_ep_comp_descriptor uvc_ss_streaming_comp = {
 	.bLength		= sizeof(uvc_ss_streaming_comp),
 	.bDescriptorType	= USB_DT_SS_ENDPOINT_COMP,
-	/* The bMaxBurst, bmAttributes and wBytesPerInterval values will be
+	/*
+	 * The bMaxBurst, bmAttributes and wBytesPerInterval values will be
 	 * initialized from module parameters.
 	 */
 };
@@ -226,6 +226,8 @@
 	struct uvc_device *uvc = to_uvc(f);
 	struct v4l2_event v4l2_event;
 	struct uvc_event *uvc_event = (void *)&v4l2_event.u.data;
+	unsigned int interface = le16_to_cpu(ctrl->wIndex) & 0xff;
+	struct usb_ctrlrequest *mctrl;
 
 	if ((ctrl->bRequestType & USB_TYPE_MASK) != USB_TYPE_CLASS) {
 		uvcg_info(f, "invalid request type\n");
@@ -236,7 +238,8 @@
 	if (le16_to_cpu(ctrl->wLength) > UVC_MAX_REQUEST_SIZE)
 		return -EINVAL;
 
-	/* Tell the complete callback to generate an event for the next request
+	/*
+	 * Tell the complete callback to generate an event for the next request
 	 * that will be enqueued by UVCIOC_SEND_RESPONSE.
 	 */
 	uvc->event_setup_out = !(ctrl->bRequestType & USB_DIR_IN);
@@ -245,6 +248,16 @@
 	memset(&v4l2_event, 0, sizeof(v4l2_event));
 	v4l2_event.type = UVC_EVENT_SETUP;
 	memcpy(&uvc_event->req, ctrl, sizeof(uvc_event->req));
+
+	/* check for the interface number, fixup the interface number in
+	 * the ctrl request so the userspace doesn't have to bother with
+	 * offset and configfs parsing
+	 */
+	mctrl = &uvc_event->req;
+	mctrl->wIndex &= ~cpu_to_le16(0xff);
+	if (interface == uvc->streaming_intf)
+		mctrl->wIndex = cpu_to_le16(UVC_STRING_STREAMING_IDX);
+
 	v4l2_event_queue(&uvc->vdev, &v4l2_event);
 
 	return 0;
@@ -418,6 +431,7 @@
 	int ret;
 
 	/* TODO reference counting. */
+	memset(&uvc->vdev, 0, sizeof(uvc->vdev));
 	uvc->vdev.v4l2_dev = &uvc->v4l2_dev;
 	uvc->vdev.v4l2_dev->dev = &cdev->gadget->dev;
 	uvc->vdev.fops = &uvc_v4l2_fops;
@@ -426,7 +440,7 @@
 	uvc->vdev.vfl_dir = VFL_DIR_TX;
 	uvc->vdev.lock = &uvc->video.mutex;
 	uvc->vdev.device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING;
-	strlcpy(uvc->vdev.name, cdev->gadget->name, sizeof(uvc->vdev.name));
+	strscpy(uvc->vdev.name, cdev->gadget->name, sizeof(uvc->vdev.name));
 
 	video_set_drvdata(&uvc->vdev, uvc);
 
@@ -501,7 +515,8 @@
 	if (!uvc_control_desc || !uvc_streaming_cls)
 		return ERR_PTR(-ENODEV);
 
-	/* Descriptors layout
+	/*
+	 * Descriptors layout
 	 *
 	 * uvc_iad
 	 * uvc_control_intf
@@ -598,8 +613,7 @@
 	uvcg_info(f, "%s()\n", __func__);
 
 	opts = fi_to_f_uvc_opts(f->fi);
-	/* Sanity check the streaming endpoint module parameters.
-	 */
+	/* Sanity check the streaming endpoint module parameters. */
 	opts->streaming_interval = clamp(opts->streaming_interval, 1U, 16U);
 	opts->streaming_maxpacket = clamp(opts->streaming_maxpacket, 1U, 3072U);
 	opts->streaming_maxburst = min(opts->streaming_maxburst, 15U);
@@ -612,7 +626,8 @@
 			  opts->streaming_maxpacket);
 	}
 
-	/* Fill in the FS/HS/SS Video Streaming specific descriptors from the
+	/*
+	 * Fill in the FS/HS/SS Video Streaming specific descriptors from the
 	 * module parameters.
 	 *
 	 * NOTE: We assume that the user knows what they are doing and won't
@@ -676,6 +691,7 @@
 	uvc_hs_streaming_ep.bEndpointAddress = uvc->video.ep->address;
 	uvc_ss_streaming_ep.bEndpointAddress = uvc->video.ep->address;
 
+	uvc_en_us_strings[UVC_STRING_CONTROL_IDX].s = opts->function_name;
 	us = usb_gstrings_attach(cdev, uvc_function_strings,
 				 ARRAY_SIZE(uvc_en_us_strings));
 	if (IS_ERR(us)) {
@@ -866,6 +882,7 @@
 
 	opts->streaming_interval = 1;
 	opts->streaming_maxpacket = 1024;
+	snprintf(opts->function_name, sizeof(opts->function_name), "UVC Camera");
 
 	ret = uvcg_attach_configfs(opts);
 	if (ret < 0) {
@@ -881,6 +898,7 @@
 	struct uvc_device *uvc = to_uvc(f);
 	struct f_uvc_opts *opts = container_of(f->fi, struct f_uvc_opts,
 					       func_inst);
+	config_item_put(&uvc->header->item);
 	--opts->refcnt;
 	kfree(uvc);
 }
@@ -890,11 +908,16 @@
 {
 	struct usb_composite_dev *cdev = c->cdev;
 	struct uvc_device *uvc = to_uvc(f);
+	struct uvc_video *video = &uvc->video;
 	long wait_ret = 1;
 
 	uvcg_info(f, "%s()\n", __func__);
 
-	/* If we know we're connected via v4l2, then there should be a cleanup
+	if (video->async_wq)
+		destroy_workqueue(video->async_wq);
+
+	/*
+	 * If we know we're connected via v4l2, then there should be a cleanup
 	 * of the device from userspace either via UVC_EVENT_DISCONNECT or
 	 * though the video device removal uevent. Allow some time for the
 	 * application to close out before things get deleted.
@@ -911,7 +934,8 @@
 	v4l2_device_unregister(&uvc->v4l2_dev);
 
 	if (uvc->func_connected) {
-		/* Wait for the release to occur to ensure there are no longer any
+		/*
+		 * Wait for the release to occur to ensure there are no longer any
 		 * pending operations that may cause panics when resources are cleaned
 		 * up.
 		 */
@@ -932,6 +956,7 @@
 	struct uvc_device *uvc;
 	struct f_uvc_opts *opts;
 	struct uvc_descriptor_header **strm_cls;
+	struct config_item *streaming, *header, *h;
 
 	uvc = kzalloc(sizeof(*uvc), GFP_KERNEL);
 	if (uvc == NULL)
@@ -964,6 +989,28 @@
 	uvc->desc.fs_streaming = opts->fs_streaming;
 	uvc->desc.hs_streaming = opts->hs_streaming;
 	uvc->desc.ss_streaming = opts->ss_streaming;
+
+	streaming = config_group_find_item(&opts->func_inst.group, "streaming");
+	if (!streaming)
+		goto err_config;
+
+	header = config_group_find_item(to_config_group(streaming), "header");
+	config_item_put(streaming);
+	if (!header)
+		goto err_config;
+
+	h = config_group_find_item(to_config_group(header), "h");
+	config_item_put(header);
+	if (!h)
+		goto err_config;
+
+	uvc->header = to_uvcg_streaming_header(h);
+	if (!uvc->header->linked) {
+		mutex_unlock(&opts->lock);
+		kfree(uvc);
+		return ERR_PTR(-EBUSY);
+	}
+
 	++opts->refcnt;
 	mutex_unlock(&opts->lock);
 
@@ -979,6 +1026,11 @@
 	uvc->func.bind_deactivated = true;
 
 	return &uvc->func;
+
+err_config:
+	mutex_unlock(&opts->lock);
+	kfree(uvc);
+	return ERR_PTR(-ENOENT);
 }
 
 DECLARE_USB_FUNCTION_INIT(uvc, uvc_alloc_inst, uvc_alloc);
diff --git a/drivers/usb/gadget/function/storage_common.c b/drivers/usb/gadget/function/storage_common.c
index e122050..93305b3b 100644
--- a/drivers/usb/gadget/function/storage_common.c
+++ b/drivers/usb/gadget/function/storage_common.c
@@ -522,3 +522,4 @@
 EXPORT_SYMBOL_GPL(fsg_store_inquiry_string);
 
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
diff --git a/drivers/usb/gadget/function/u_ether.c b/drivers/usb/gadget/function/u_ether.c
index 116dbc2..ba7284a 100644
--- a/drivers/usb/gadget/function/u_ether.c
+++ b/drivers/usb/gadget/function/u_ether.c
@@ -146,10 +146,10 @@
 {
 	struct eth_dev *dev = netdev_priv(net);
 
-	strlcpy(p->driver, "g_ether", sizeof(p->driver));
-	strlcpy(p->version, UETH__VERSION, sizeof(p->version));
-	strlcpy(p->fw_version, dev->gadget->name, sizeof(p->fw_version));
-	strlcpy(p->bus_info, dev_name(&dev->gadget->dev), sizeof(p->bus_info));
+	strscpy(p->driver, "g_ether", sizeof(p->driver));
+	strscpy(p->version, UETH__VERSION, sizeof(p->version));
+	strscpy(p->fw_version, dev->gadget->name, sizeof(p->fw_version));
+	strscpy(p->bus_info, dev_name(&dev->gadget->dev), sizeof(p->bus_info));
 }
 
 /* REVISIT can also support:
diff --git a/drivers/usb/gadget/function/u_uvc.h b/drivers/usb/gadget/function/u_uvc.h
index 9a01a7d..24b8681 100644
--- a/drivers/usb/gadget/function/u_uvc.h
+++ b/drivers/usb/gadget/function/u_uvc.h
@@ -27,6 +27,7 @@
 
 	unsigned int					control_interface;
 	unsigned int					streaming_interface;
+	char						function_name[32];
 
 	/*
 	 * Control descriptors array pointers for full-/high-speed and
diff --git a/drivers/usb/gadget/function/uvc.h b/drivers/usb/gadget/function/uvc.h
index d1a4ef7..40226b1 100644
--- a/drivers/usb/gadget/function/uvc.h
+++ b/drivers/usb/gadget/function/uvc.h
@@ -69,7 +69,7 @@
 #define UVC_MAX_REQUEST_SIZE			64
 #define UVC_MAX_EVENTS				4
 
-#define UVCG_REQUEST_HEADER_LEN			2
+#define UVCG_REQUEST_HEADER_LEN			12
 
 /* ------------------------------------------------------------------------
  * Structures
@@ -88,6 +88,7 @@
 	struct usb_ep *ep;
 
 	struct work_struct pump;
+	struct workqueue_struct *async_wq;
 
 	/* Frame parameters */
 	u8 bpp;
@@ -133,6 +134,8 @@
 	bool func_connected;
 	wait_queue_head_t func_connected_queue;
 
+	struct uvcg_streaming_header *header;
+
 	/* Descriptors */
 	struct {
 		const struct uvc_descriptor_header * const *fs_control;
diff --git a/drivers/usb/gadget/function/uvc_configfs.c b/drivers/usb/gadget/function/uvc_configfs.c
index b553dca..1460142 100644
--- a/drivers/usb/gadget/function/uvc_configfs.c
+++ b/drivers/usb/gadget/function/uvc_configfs.c
@@ -10,17 +10,14 @@
  * Author: Andrzej Pietrasiewicz <andrzejtp2010@gmail.com>
  */
 
-#include <linux/sort.h>
-
-#include "u_uvc.h"
 #include "uvc_configfs.h"
 
+#include <linux/sort.h>
+
 /* -----------------------------------------------------------------------------
  * Global Utility Structures and Macros
  */
 
-#define UVCG_STREAMING_CONTROL_SIZE	1
-
 #define UVC_ATTR(prefix, cname, aname) \
 static struct configfs_attribute prefix##attr_##cname = { \
 	.ca_name	= __stringify(aname),				\
@@ -49,12 +46,6 @@
 	return li < ri ? -1 : li == ri ? 0 : 1;
 }
 
-static inline struct f_uvc_opts *to_f_uvc_opts(struct config_item *item)
-{
-	return container_of(to_config_group(item), struct f_uvc_opts,
-			    func_inst.group);
-}
-
 struct uvcg_config_group_type {
 	struct config_item_type type;
 	const char *name;
@@ -125,19 +116,6 @@
  * control/header
  */
 
-DECLARE_UVC_HEADER_DESCRIPTOR(1);
-
-struct uvcg_control_header {
-	struct config_item		item;
-	struct UVC_HEADER_DESCRIPTOR(1)	desc;
-	unsigned			linked;
-};
-
-static struct uvcg_control_header *to_uvcg_control_header(struct config_item *item)
-{
-	return container_of(item, struct uvcg_control_header, item);
-}
-
 #define UVCG_CTRL_HDR_ATTR(cname, aname, bits, limit)			\
 static ssize_t uvcg_control_header_##cname##_show(			\
 	struct config_item *item, char *page)				\
@@ -826,24 +804,6 @@
 	"mjpeg",
 };
 
-enum uvcg_format_type {
-	UVCG_UNCOMPRESSED = 0,
-	UVCG_MJPEG,
-};
-
-struct uvcg_format {
-	struct config_group	group;
-	enum uvcg_format_type	type;
-	unsigned		linked;
-	unsigned		num_frames;
-	__u8			bmaControls[UVCG_STREAMING_CONTROL_SIZE];
-};
-
-static struct uvcg_format *to_uvcg_format(struct config_item *item)
-{
-	return container_of(to_config_group(item), struct uvcg_format, group);
-}
-
 static ssize_t uvcg_format_bma_controls_show(struct uvcg_format *f, char *page)
 {
 	struct f_uvc_opts *opts;
@@ -902,29 +862,11 @@
 	return ret;
 }
 
-struct uvcg_format_ptr {
-	struct uvcg_format	*fmt;
-	struct list_head	entry;
-};
-
 /* -----------------------------------------------------------------------------
  * streaming/header/<NAME>
  * streaming/header
  */
 
-struct uvcg_streaming_header {
-	struct config_item				item;
-	struct uvc_input_header_descriptor		desc;
-	unsigned					linked;
-	struct list_head				formats;
-	unsigned					num_fmt;
-};
-
-static struct uvcg_streaming_header *to_uvcg_streaming_header(struct config_item *item)
-{
-	return container_of(item, struct uvcg_streaming_header, item);
-}
-
 static void uvcg_format_set_indices(struct config_group *fmt);
 
 static int uvcg_streaming_header_allow_link(struct config_item *src,
@@ -1116,31 +1058,6 @@
  * streaming/<mode>/<format>/<NAME>
  */
 
-struct uvcg_frame {
-	struct config_item	item;
-	enum uvcg_format_type	fmt_type;
-	struct {
-		u8	b_length;
-		u8	b_descriptor_type;
-		u8	b_descriptor_subtype;
-		u8	b_frame_index;
-		u8	bm_capabilities;
-		u16	w_width;
-		u16	w_height;
-		u32	dw_min_bit_rate;
-		u32	dw_max_bit_rate;
-		u32	dw_max_video_frame_buffer_size;
-		u32	dw_default_frame_interval;
-		u8	b_frame_interval_type;
-	} __attribute__((packed)) frame;
-	u32 *dw_frame_interval;
-};
-
-static struct uvcg_frame *to_uvcg_frame(struct config_item *item)
-{
-	return container_of(item, struct uvcg_frame, item);
-}
-
 #define UVCG_FRAME_ATTR(cname, aname, bits) \
 static ssize_t uvcg_frame_##cname##_show(struct config_item *item, char *page)\
 {									\
@@ -1402,6 +1319,7 @@
 	struct uvcg_format *fmt;
 	struct f_uvc_opts *opts;
 	struct config_item *opts_item;
+	struct uvcg_frame_ptr *frame_ptr;
 
 	h = kzalloc(sizeof(*h), GFP_KERNEL);
 	if (!h)
@@ -1432,6 +1350,16 @@
 		kfree(h);
 		return ERR_PTR(-EINVAL);
 	}
+
+	frame_ptr = kzalloc(sizeof(*frame_ptr), GFP_KERNEL);
+	if (!frame_ptr) {
+		mutex_unlock(&opts->lock);
+		kfree(h);
+		return ERR_PTR(-ENOMEM);
+	}
+
+	frame_ptr->frm = h;
+	list_add_tail(&frame_ptr->entry, &fmt->frames);
 	++fmt->num_frames;
 	mutex_unlock(&opts->lock);
 
@@ -1445,13 +1373,23 @@
 	struct uvcg_format *fmt;
 	struct f_uvc_opts *opts;
 	struct config_item *opts_item;
+	struct uvcg_frame *target_frm = NULL;
+	struct uvcg_frame_ptr *frame_ptr, *tmp;
 
 	opts_item = group->cg_item.ci_parent->ci_parent->ci_parent;
 	opts = to_f_uvc_opts(opts_item);
 
 	mutex_lock(&opts->lock);
+	target_frm = container_of(item, struct uvcg_frame, item);
 	fmt = to_uvcg_format(&group->cg_item);
-	--fmt->num_frames;
+
+	list_for_each_entry_safe(frame_ptr, tmp, &fmt->frames, entry)
+		if (frame_ptr->frm == target_frm) {
+			list_del(&frame_ptr->entry);
+			kfree(frame_ptr);
+			--fmt->num_frames;
+			break;
+		}
 	mutex_unlock(&opts->lock);
 
 	config_item_put(item);
@@ -1477,18 +1415,6 @@
  * streaming/uncompressed/<NAME>
  */
 
-struct uvcg_uncompressed {
-	struct uvcg_format		fmt;
-	struct uvc_format_uncompressed	desc;
-};
-
-static struct uvcg_uncompressed *to_uvcg_uncompressed(struct config_item *item)
-{
-	return container_of(
-		container_of(to_config_group(item), struct uvcg_format, group),
-		struct uvcg_uncompressed, fmt);
-}
-
 static struct configfs_group_operations uvcg_uncompressed_group_ops = {
 	.make_item		= uvcg_frame_make,
 	.drop_item		= uvcg_frame_drop,
@@ -1622,6 +1548,12 @@
 	if (ret)							\
 		goto end;						\
 									\
+	/* index values in uvc are never 0 */				\
+	if (!num) {							\
+		ret = -EINVAL;						\
+		goto end;						\
+	}								\
+									\
 	u->desc.aname = num;						\
 	ret = len;							\
 end:									\
@@ -1637,7 +1569,7 @@
 UVCG_UNCOMPRESSED_ATTR(b_default_frame_index, bDefaultFrameIndex, 8);
 UVCG_UNCOMPRESSED_ATTR_RO(b_aspect_ratio_x, bAspectRatioX, 8);
 UVCG_UNCOMPRESSED_ATTR_RO(b_aspect_ratio_y, bAspectRatioY, 8);
-UVCG_UNCOMPRESSED_ATTR_RO(bm_interface_flags, bmInterfaceFlags, 8);
+UVCG_UNCOMPRESSED_ATTR_RO(bm_interlace_flags, bmInterlaceFlags, 8);
 
 #undef UVCG_UNCOMPRESSED_ATTR
 #undef UVCG_UNCOMPRESSED_ATTR_RO
@@ -1666,7 +1598,7 @@
 	&uvcg_uncompressed_attr_b_default_frame_index,
 	&uvcg_uncompressed_attr_b_aspect_ratio_x,
 	&uvcg_uncompressed_attr_b_aspect_ratio_y,
-	&uvcg_uncompressed_attr_bm_interface_flags,
+	&uvcg_uncompressed_attr_bm_interlace_flags,
 	&uvcg_uncompressed_attr_bma_controls,
 	NULL,
 };
@@ -1699,9 +1631,10 @@
 	h->desc.bDefaultFrameIndex	= 1;
 	h->desc.bAspectRatioX		= 0;
 	h->desc.bAspectRatioY		= 0;
-	h->desc.bmInterfaceFlags	= 0;
+	h->desc.bmInterlaceFlags	= 0;
 	h->desc.bCopyProtect		= 0;
 
+	INIT_LIST_HEAD(&h->fmt.frames);
 	h->fmt.type = UVCG_UNCOMPRESSED;
 	config_group_init_type_name(&h->fmt.group, name,
 				    &uvcg_uncompressed_type);
@@ -1726,18 +1659,6 @@
  * streaming/mjpeg/<NAME>
  */
 
-struct uvcg_mjpeg {
-	struct uvcg_format		fmt;
-	struct uvc_format_mjpeg		desc;
-};
-
-static struct uvcg_mjpeg *to_uvcg_mjpeg(struct config_item *item)
-{
-	return container_of(
-		container_of(to_config_group(item), struct uvcg_format, group),
-		struct uvcg_mjpeg, fmt);
-}
-
 static struct configfs_group_operations uvcg_mjpeg_group_ops = {
 	.make_item		= uvcg_frame_make,
 	.drop_item		= uvcg_frame_drop,
@@ -1815,6 +1736,12 @@
 	if (ret)							\
 		goto end;						\
 									\
+	/* index values in uvc are never 0 */				\
+	if (!num) {							\
+		ret = -EINVAL;						\
+		goto end;						\
+	}								\
+									\
 	u->desc.aname = num;						\
 	ret = len;							\
 end:									\
@@ -1830,7 +1757,7 @@
 UVCG_MJPEG_ATTR_RO(bm_flags, bmFlags, 8);
 UVCG_MJPEG_ATTR_RO(b_aspect_ratio_x, bAspectRatioX, 8);
 UVCG_MJPEG_ATTR_RO(b_aspect_ratio_y, bAspectRatioY, 8);
-UVCG_MJPEG_ATTR_RO(bm_interface_flags, bmInterfaceFlags, 8);
+UVCG_MJPEG_ATTR_RO(bm_interlace_flags, bmInterlaceFlags, 8);
 
 #undef UVCG_MJPEG_ATTR
 #undef UVCG_MJPEG_ATTR_RO
@@ -1858,7 +1785,7 @@
 	&uvcg_mjpeg_attr_bm_flags,
 	&uvcg_mjpeg_attr_b_aspect_ratio_x,
 	&uvcg_mjpeg_attr_b_aspect_ratio_y,
-	&uvcg_mjpeg_attr_bm_interface_flags,
+	&uvcg_mjpeg_attr_bm_interlace_flags,
 	&uvcg_mjpeg_attr_bma_controls,
 	NULL,
 };
@@ -1885,9 +1812,10 @@
 	h->desc.bDefaultFrameIndex	= 1;
 	h->desc.bAspectRatioX		= 0;
 	h->desc.bAspectRatioY		= 0;
-	h->desc.bmInterfaceFlags	= 0;
+	h->desc.bmInterlaceFlags	= 0;
 	h->desc.bCopyProtect		= 0;
 
+	INIT_LIST_HEAD(&h->fmt.frames);
 	h->fmt.type = UVCG_MJPEG;
 	config_group_init_type_name(&h->fmt.group, name,
 				    &uvcg_mjpeg_type);
@@ -2482,10 +2410,53 @@
 
 #undef UVCG_OPTS_ATTR
 
+#define UVCG_OPTS_STRING_ATTR(cname, aname)				\
+static ssize_t f_uvc_opts_string_##cname##_show(struct config_item *item,\
+					 char *page)			\
+{									\
+	struct f_uvc_opts *opts = to_f_uvc_opts(item);			\
+	int result;							\
+									\
+	mutex_lock(&opts->lock);					\
+	result = snprintf(page, sizeof(opts->aname), "%s", opts->aname);\
+	mutex_unlock(&opts->lock);					\
+									\
+	return result;							\
+}									\
+									\
+static ssize_t f_uvc_opts_string_##cname##_store(struct config_item *item,\
+					  const char *page, size_t len)	\
+{									\
+	struct f_uvc_opts *opts = to_f_uvc_opts(item);			\
+	int size = min(sizeof(opts->aname), len + 1);			\
+	int ret = 0;							\
+									\
+	mutex_lock(&opts->lock);					\
+	if (opts->refcnt) {						\
+		ret = -EBUSY;						\
+		goto end;						\
+	}								\
+									\
+	ret = strscpy(opts->aname, page, size);				\
+	if (ret == -E2BIG)						\
+		ret = size - 1;						\
+									\
+end:									\
+	mutex_unlock(&opts->lock);					\
+	return ret;							\
+}									\
+									\
+UVC_ATTR(f_uvc_opts_string_, cname, aname)
+
+UVCG_OPTS_STRING_ATTR(function_name, function_name);
+
+#undef UVCG_OPTS_STRING_ATTR
+
 static struct configfs_attribute *uvc_attrs[] = {
 	&f_uvc_opts_attr_streaming_interval,
 	&f_uvc_opts_attr_streaming_maxpacket,
 	&f_uvc_opts_attr_streaming_maxburst,
+	&f_uvc_opts_string_attr_function_name,
 	NULL,
 };
 
diff --git a/drivers/usb/gadget/function/uvc_configfs.h b/drivers/usb/gadget/function/uvc_configfs.h
index 7e1d7ca..ad2ec8c 100644
--- a/drivers/usb/gadget/function/uvc_configfs.h
+++ b/drivers/usb/gadget/function/uvc_configfs.h
@@ -12,7 +12,125 @@
 #ifndef UVC_CONFIGFS_H
 #define UVC_CONFIGFS_H
 
-struct f_uvc_opts;
+#include <linux/configfs.h>
+
+#include "u_uvc.h"
+
+static inline struct f_uvc_opts *to_f_uvc_opts(struct config_item *item)
+{
+	return container_of(to_config_group(item), struct f_uvc_opts,
+			    func_inst.group);
+}
+
+#define UVCG_STREAMING_CONTROL_SIZE	1
+
+DECLARE_UVC_HEADER_DESCRIPTOR(1);
+
+struct uvcg_control_header {
+	struct config_item		item;
+	struct UVC_HEADER_DESCRIPTOR(1)	desc;
+	unsigned			linked;
+};
+
+static inline struct uvcg_control_header *to_uvcg_control_header(struct config_item *item)
+{
+	return container_of(item, struct uvcg_control_header, item);
+}
+
+enum uvcg_format_type {
+	UVCG_UNCOMPRESSED = 0,
+	UVCG_MJPEG,
+};
+
+struct uvcg_format {
+	struct config_group	group;
+	enum uvcg_format_type	type;
+	unsigned		linked;
+	struct list_head	frames;
+	unsigned		num_frames;
+	__u8			bmaControls[UVCG_STREAMING_CONTROL_SIZE];
+};
+
+struct uvcg_format_ptr {
+	struct uvcg_format	*fmt;
+	struct list_head	entry;
+};
+
+static inline struct uvcg_format *to_uvcg_format(struct config_item *item)
+{
+	return container_of(to_config_group(item), struct uvcg_format, group);
+}
+
+struct uvcg_streaming_header {
+	struct config_item				item;
+	struct uvc_input_header_descriptor		desc;
+	unsigned					linked;
+	struct list_head				formats;
+	unsigned					num_fmt;
+};
+
+static inline struct uvcg_streaming_header *to_uvcg_streaming_header(struct config_item *item)
+{
+	return container_of(item, struct uvcg_streaming_header, item);
+}
+
+struct uvcg_frame_ptr {
+	struct uvcg_frame	*frm;
+	struct list_head	entry;
+};
+
+struct uvcg_frame {
+	struct config_item	item;
+	enum uvcg_format_type	fmt_type;
+	struct {
+		u8	b_length;
+		u8	b_descriptor_type;
+		u8	b_descriptor_subtype;
+		u8	b_frame_index;
+		u8	bm_capabilities;
+		u16	w_width;
+		u16	w_height;
+		u32	dw_min_bit_rate;
+		u32	dw_max_bit_rate;
+		u32	dw_max_video_frame_buffer_size;
+		u32	dw_default_frame_interval;
+		u8	b_frame_interval_type;
+	} __attribute__((packed)) frame;
+	u32 *dw_frame_interval;
+};
+
+static inline struct uvcg_frame *to_uvcg_frame(struct config_item *item)
+{
+	return container_of(item, struct uvcg_frame, item);
+}
+
+/* -----------------------------------------------------------------------------
+ * streaming/uncompressed/<NAME>
+ */
+
+struct uvcg_uncompressed {
+	struct uvcg_format		fmt;
+	struct uvc_format_uncompressed	desc;
+};
+
+static inline struct uvcg_uncompressed *to_uvcg_uncompressed(struct config_item *item)
+{
+	return container_of(to_uvcg_format(item), struct uvcg_uncompressed, fmt);
+}
+
+/* -----------------------------------------------------------------------------
+ * streaming/mjpeg/<NAME>
+ */
+
+struct uvcg_mjpeg {
+	struct uvcg_format		fmt;
+	struct uvc_format_mjpeg		desc;
+};
+
+static inline struct uvcg_mjpeg *to_uvcg_mjpeg(struct config_item *item)
+{
+	return container_of(to_uvcg_format(item), struct uvcg_mjpeg, fmt);
+}
 
 int uvcg_attach_configfs(struct f_uvc_opts *opts);
 
diff --git a/drivers/usb/gadget/function/uvc_queue.c b/drivers/usb/gadget/function/uvc_queue.c
index 0cc8422..0aa3d7e 100644
--- a/drivers/usb/gadget/function/uvc_queue.c
+++ b/drivers/usb/gadget/function/uvc_queue.c
@@ -111,7 +111,8 @@
 	if (likely(!(queue->flags & UVC_QUEUE_DISCONNECTED))) {
 		list_add_tail(&buf->queue, &queue->irqqueue);
 	} else {
-		/* If the device is disconnected return the buffer to userspace
+		/*
+		 * If the device is disconnected return the buffer to userspace
 		 * directly. The next QBUF call will fail with -ENODEV.
 		 */
 		buf->state = UVC_BUF_STATE_ERROR;
@@ -149,7 +150,7 @@
 		queue->queue.mem_ops = &vb2_vmalloc_memops;
 	}
 
-	queue->queue.timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC
+	queue->queue.timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY
 				     | V4L2_BUF_FLAG_TSTAMP_SRC_EOF;
 	queue->queue.dev = dev;
 
@@ -192,18 +193,7 @@
 
 int uvcg_queue_buffer(struct uvc_video_queue *queue, struct v4l2_buffer *buf)
 {
-	unsigned long flags;
-	int ret;
-
-	ret = vb2_qbuf(&queue->queue, NULL, buf);
-	if (ret < 0)
-		return ret;
-
-	spin_lock_irqsave(&queue->irqlock, flags);
-	ret = (queue->flags & UVC_QUEUE_PAUSED) != 0;
-	queue->flags &= ~UVC_QUEUE_PAUSED;
-	spin_unlock_irqrestore(&queue->irqlock, flags);
-	return ret;
+	return vb2_qbuf(&queue->queue, NULL, buf);
 }
 
 /*
@@ -273,7 +263,8 @@
 	}
 	queue->buf_used = 0;
 
-	/* This must be protected by the irqlock spinlock to avoid race
+	/*
+	 * This must be protected by the irqlock spinlock to avoid race
 	 * conditions between uvc_queue_buffer and the disconnection event that
 	 * could result in an interruptible wait in uvc_dequeue_buffer. Do not
 	 * blindly replace this logic by checking for the UVC_DEV_DISCONNECTED
@@ -362,8 +353,6 @@
 	if (!list_empty(&queue->irqqueue))
 		buf = list_first_entry(&queue->irqqueue, struct uvc_buffer,
 				       queue);
-	else
-		queue->flags |= UVC_QUEUE_PAUSED;
 
 	return buf;
 }
diff --git a/drivers/usb/gadget/function/uvc_queue.h b/drivers/usb/gadget/function/uvc_queue.h
index b668927..41f87b9 100644
--- a/drivers/usb/gadget/function/uvc_queue.h
+++ b/drivers/usb/gadget/function/uvc_queue.h
@@ -43,7 +43,6 @@
 
 #define UVC_QUEUE_DISCONNECTED		(1 << 0)
 #define UVC_QUEUE_DROP_INCOMPLETE	(1 << 1)
-#define UVC_QUEUE_PAUSED		(1 << 2)
 
 struct uvc_video_queue {
 	struct vb2_queue queue;
diff --git a/drivers/usb/gadget/function/uvc_v4l2.c b/drivers/usb/gadget/function/uvc_v4l2.c
index 65abd55..a189b08 100644
--- a/drivers/usb/gadget/function/uvc_v4l2.c
+++ b/drivers/usb/gadget/function/uvc_v4l2.c
@@ -18,12 +18,161 @@
 #include <media/v4l2-dev.h>
 #include <media/v4l2-event.h>
 #include <media/v4l2-ioctl.h>
+#include <media/v4l2-uvc.h>
 
 #include "f_uvc.h"
 #include "uvc.h"
 #include "uvc_queue.h"
 #include "uvc_video.h"
 #include "uvc_v4l2.h"
+#include "uvc_configfs.h"
+
+static struct uvc_format_desc *to_uvc_format(struct uvcg_format *uformat)
+{
+	char guid[16] = UVC_GUID_FORMAT_MJPEG;
+	struct uvc_format_desc *format;
+	struct uvcg_uncompressed *unc;
+
+	if (uformat->type == UVCG_UNCOMPRESSED) {
+		unc = to_uvcg_uncompressed(&uformat->group.cg_item);
+		if (!unc)
+			return ERR_PTR(-EINVAL);
+
+		memcpy(guid, unc->desc.guidFormat, sizeof(guid));
+	}
+
+	format = uvc_format_by_guid(guid);
+	if (!format)
+		return ERR_PTR(-EINVAL);
+
+	return format;
+}
+
+static int uvc_v4l2_get_bytesperline(struct uvcg_format *uformat,
+			      struct uvcg_frame *uframe)
+{
+	struct uvcg_uncompressed *u;
+
+	if (uformat->type == UVCG_UNCOMPRESSED) {
+		u = to_uvcg_uncompressed(&uformat->group.cg_item);
+		if (!u)
+			return 0;
+
+		return u->desc.bBitsPerPixel * uframe->frame.w_width / 8;
+	}
+
+	return 0;
+}
+
+static int uvc_get_frame_size(struct uvcg_format *uformat,
+		       struct uvcg_frame *uframe)
+{
+	unsigned int bpl = uvc_v4l2_get_bytesperline(uformat, uframe);
+
+	return bpl ? bpl * uframe->frame.w_height :
+		uframe->frame.dw_max_video_frame_buffer_size;
+}
+
+static struct uvcg_format *find_format_by_index(struct uvc_device *uvc, int index)
+{
+	struct uvcg_format_ptr *format;
+	struct uvcg_format *uformat = NULL;
+	int i = 1;
+
+	list_for_each_entry(format, &uvc->header->formats, entry) {
+		if (index == i) {
+			uformat = format->fmt;
+			break;
+		}
+		i++;
+	}
+
+	return uformat;
+}
+
+static struct uvcg_frame *find_frame_by_index(struct uvc_device *uvc,
+				       struct uvcg_format *uformat,
+				       int index)
+{
+	struct uvcg_format_ptr *format;
+	struct uvcg_frame_ptr *frame;
+	struct uvcg_frame *uframe = NULL;
+
+	list_for_each_entry(format, &uvc->header->formats, entry) {
+		if (format->fmt->type != uformat->type)
+			continue;
+		list_for_each_entry(frame, &format->fmt->frames, entry) {
+			if (index == frame->frm->frame.b_frame_index) {
+				uframe = frame->frm;
+				break;
+			}
+		}
+	}
+
+	return uframe;
+}
+
+static struct uvcg_format *find_format_by_pix(struct uvc_device *uvc,
+					      u32 pixelformat)
+{
+	struct uvcg_format_ptr *format;
+	struct uvcg_format *uformat = NULL;
+
+	list_for_each_entry(format, &uvc->header->formats, entry) {
+		struct uvc_format_desc *fmtdesc = to_uvc_format(format->fmt);
+
+		if (fmtdesc->fcc == pixelformat) {
+			uformat = format->fmt;
+			break;
+		}
+	}
+
+	return uformat;
+}
+
+static struct uvcg_frame *find_closest_frame_by_size(struct uvc_device *uvc,
+					   struct uvcg_format *uformat,
+					   u16 rw, u16 rh)
+{
+	struct uvc_video *video = &uvc->video;
+	struct uvcg_format_ptr *format;
+	struct uvcg_frame_ptr *frame;
+	struct uvcg_frame *uframe = NULL;
+	unsigned int d, maxd;
+
+	/* Find the closest image size. The distance between image sizes is
+	 * the size in pixels of the non-overlapping regions between the
+	 * requested size and the frame-specified size.
+	 */
+	maxd = (unsigned int)-1;
+
+	list_for_each_entry(format, &uvc->header->formats, entry) {
+		if (format->fmt->type != uformat->type)
+			continue;
+
+		list_for_each_entry(frame, &format->fmt->frames, entry) {
+			u16 w, h;
+
+			w = frame->frm->frame.w_width;
+			h = frame->frm->frame.w_height;
+
+			d = min(w, rw) * min(h, rh);
+			d = w*h + rw*rh - 2*d;
+			if (d < maxd) {
+				maxd = d;
+				uframe = frame->frm;
+			}
+
+			if (maxd == 0)
+				break;
+		}
+	}
+
+	if (!uframe)
+		uvcg_dbg(&video->uvc->func, "Unsupported size %ux%u\n", rw, rh);
+
+	return uframe;
+}
 
 /* --------------------------------------------------------------------------
  * Requests handling
@@ -50,16 +199,6 @@
  * V4L2 ioctls
  */
 
-struct uvc_format {
-	u8 bpp;
-	u32 fcc;
-};
-
-static struct uvc_format uvc_formats[] = {
-	{ 16, V4L2_PIX_FMT_YUYV  },
-	{ 0,  V4L2_PIX_FMT_MJPEG },
-};
-
 static int
 uvc_v4l2_querycap(struct file *file, void *fh, struct v4l2_capability *cap)
 {
@@ -67,9 +206,9 @@
 	struct uvc_device *uvc = video_get_drvdata(vdev);
 	struct usb_composite_dev *cdev = uvc->func.config->cdev;
 
-	strlcpy(cap->driver, "g_uvc", sizeof(cap->driver));
-	strlcpy(cap->card, cdev->gadget->name, sizeof(cap->card));
-	strlcpy(cap->bus_info, dev_name(&cdev->gadget->dev),
+	strscpy(cap->driver, "g_uvc", sizeof(cap->driver));
+	strscpy(cap->card, cdev->gadget->name, sizeof(cap->card));
+	strscpy(cap->bus_info, dev_name(&cdev->gadget->dev),
 		sizeof(cap->bus_info));
 	return 0;
 }
@@ -94,42 +233,155 @@
 }
 
 static int
+uvc_v4l2_try_format(struct file *file, void *fh, struct v4l2_format *fmt)
+{
+	struct video_device *vdev = video_devdata(file);
+	struct uvc_device *uvc = video_get_drvdata(vdev);
+	struct uvc_video *video = &uvc->video;
+	struct uvcg_format *uformat;
+	struct uvcg_frame *uframe;
+	u8 *fcc;
+
+	if (fmt->type != video->queue.queue.type)
+		return -EINVAL;
+
+	fcc = (u8 *)&fmt->fmt.pix.pixelformat;
+	uvcg_dbg(&uvc->func, "Trying format 0x%08x (%c%c%c%c): %ux%u\n",
+		fmt->fmt.pix.pixelformat,
+		fcc[0], fcc[1], fcc[2], fcc[3],
+		fmt->fmt.pix.width, fmt->fmt.pix.height);
+
+	uformat = find_format_by_pix(uvc, fmt->fmt.pix.pixelformat);
+	if (!uformat)
+		return -EINVAL;
+
+	uframe = find_closest_frame_by_size(uvc, uformat,
+				fmt->fmt.pix.width, fmt->fmt.pix.height);
+	if (!uframe)
+		return -EINVAL;
+
+	fmt->fmt.pix.width = uframe->frame.w_width;
+	fmt->fmt.pix.height = uframe->frame.w_height;
+	fmt->fmt.pix.field = V4L2_FIELD_NONE;
+	fmt->fmt.pix.bytesperline = uvc_v4l2_get_bytesperline(uformat, uframe);
+	fmt->fmt.pix.sizeimage = uvc_get_frame_size(uformat, uframe);
+	fmt->fmt.pix.pixelformat = to_uvc_format(uformat)->fcc;
+	fmt->fmt.pix.colorspace = V4L2_COLORSPACE_SRGB;
+	fmt->fmt.pix.priv = 0;
+
+	return 0;
+}
+
+static int
 uvc_v4l2_set_format(struct file *file, void *fh, struct v4l2_format *fmt)
 {
 	struct video_device *vdev = video_devdata(file);
 	struct uvc_device *uvc = video_get_drvdata(vdev);
 	struct uvc_video *video = &uvc->video;
-	struct uvc_format *format;
-	unsigned int imagesize;
-	unsigned int bpl;
-	unsigned int i;
+	int ret;
 
-	for (i = 0; i < ARRAY_SIZE(uvc_formats); ++i) {
-		format = &uvc_formats[i];
-		if (format->fcc == fmt->fmt.pix.pixelformat)
-			break;
-	}
+	ret = uvc_v4l2_try_format(file, fh, fmt);
+	if (ret)
+		return ret;
 
-	if (i == ARRAY_SIZE(uvc_formats)) {
-		uvcg_info(&uvc->func, "Unsupported format 0x%08x.\n",
-			  fmt->fmt.pix.pixelformat);
-		return -EINVAL;
-	}
-
-	bpl = format->bpp * fmt->fmt.pix.width / 8;
-	imagesize = bpl ? bpl * fmt->fmt.pix.height : fmt->fmt.pix.sizeimage;
-
-	video->fcc = format->fcc;
-	video->bpp = format->bpp;
+	video->fcc = fmt->fmt.pix.pixelformat;
+	video->bpp = fmt->fmt.pix.bytesperline * 8 / video->width;
 	video->width = fmt->fmt.pix.width;
 	video->height = fmt->fmt.pix.height;
-	video->imagesize = imagesize;
+	video->imagesize = fmt->fmt.pix.sizeimage;
 
-	fmt->fmt.pix.field = V4L2_FIELD_NONE;
-	fmt->fmt.pix.bytesperline = bpl;
-	fmt->fmt.pix.sizeimage = imagesize;
-	fmt->fmt.pix.colorspace = V4L2_COLORSPACE_SRGB;
-	fmt->fmt.pix.priv = 0;
+	return ret;
+}
+
+static int
+uvc_v4l2_enum_frameintervals(struct file *file, void *fh,
+		struct v4l2_frmivalenum *fival)
+{
+	struct video_device *vdev = video_devdata(file);
+	struct uvc_device *uvc = video_get_drvdata(vdev);
+	struct uvcg_format *uformat = NULL;
+	struct uvcg_frame *uframe = NULL;
+	struct uvcg_frame_ptr *frame;
+
+	uformat = find_format_by_pix(uvc, fival->pixel_format);
+	if (!uformat)
+		return -EINVAL;
+
+	list_for_each_entry(frame, &uformat->frames, entry) {
+		if (frame->frm->frame.w_width == fival->width &&
+		    frame->frm->frame.w_height == fival->height) {
+			uframe = frame->frm;
+			break;
+		}
+	}
+	if (!uframe)
+		return -EINVAL;
+
+	if (fival->index >= uframe->frame.b_frame_interval_type)
+		return -EINVAL;
+
+	fival->discrete.numerator =
+		uframe->dw_frame_interval[fival->index];
+
+	/* TODO: handle V4L2_FRMIVAL_TYPE_STEPWISE */
+	fival->type = V4L2_FRMIVAL_TYPE_DISCRETE;
+	fival->discrete.denominator = 10000000;
+	v4l2_simplify_fraction(&fival->discrete.numerator,
+		&fival->discrete.denominator, 8, 333);
+
+	return 0;
+}
+
+static int
+uvc_v4l2_enum_framesizes(struct file *file, void *fh,
+		struct v4l2_frmsizeenum *fsize)
+{
+	struct video_device *vdev = video_devdata(file);
+	struct uvc_device *uvc = video_get_drvdata(vdev);
+	struct uvcg_format *uformat = NULL;
+	struct uvcg_frame *uframe = NULL;
+
+	uformat = find_format_by_pix(uvc, fsize->pixel_format);
+	if (!uformat)
+		return -EINVAL;
+
+	if (fsize->index >= uformat->num_frames)
+		return -EINVAL;
+
+	uframe = find_frame_by_index(uvc, uformat, fsize->index + 1);
+	if (!uframe)
+		return -EINVAL;
+
+	fsize->type = V4L2_FRMSIZE_TYPE_DISCRETE;
+	fsize->discrete.width = uframe->frame.w_width;
+	fsize->discrete.height = uframe->frame.w_height;
+
+	return 0;
+}
+
+static int
+uvc_v4l2_enum_format(struct file *file, void *fh, struct v4l2_fmtdesc *f)
+{
+	struct video_device *vdev = video_devdata(file);
+	struct uvc_device *uvc = video_get_drvdata(vdev);
+	struct uvc_format_desc *fmtdesc;
+	struct uvcg_format *uformat;
+
+	if (f->index >= uvc->header->num_fmt)
+		return -EINVAL;
+
+	uformat = find_format_by_index(uvc, f->index + 1);
+	if (!uformat)
+		return -EINVAL;
+
+	if (uformat->type != UVCG_UNCOMPRESSED)
+		f->flags |= V4L2_FMT_FLAG_COMPRESSED;
+
+	fmtdesc = to_uvc_format(uformat);
+	f->pixelformat = fmtdesc->fcc;
+
+	strscpy(f->description, fmtdesc->name, sizeof(f->description));
+	f->description[strlen(fmtdesc->name) - 1] = 0;
 
 	return 0;
 }
@@ -169,7 +421,8 @@
 	if (ret < 0)
 		return ret;
 
-	schedule_work(&video->pump);
+	if (uvc->state == UVC_STATE_STREAMING)
+		queue_work(video->async_wq, &video->pump);
 
 	return ret;
 }
@@ -297,8 +550,12 @@
 
 const struct v4l2_ioctl_ops uvc_v4l2_ioctl_ops = {
 	.vidioc_querycap = uvc_v4l2_querycap,
+	.vidioc_try_fmt_vid_out = uvc_v4l2_try_format,
 	.vidioc_g_fmt_vid_out = uvc_v4l2_get_format,
 	.vidioc_s_fmt_vid_out = uvc_v4l2_set_format,
+	.vidioc_enum_frameintervals = uvc_v4l2_enum_frameintervals,
+	.vidioc_enum_framesizes = uvc_v4l2_enum_framesizes,
+	.vidioc_enum_fmt_vid_out = uvc_v4l2_enum_format,
 	.vidioc_reqbufs = uvc_v4l2_reqbufs,
 	.vidioc_querybuf = uvc_v4l2_querybuf,
 	.vidioc_qbuf = uvc_v4l2_qbuf,
diff --git a/drivers/usb/gadget/function/uvc_video.c b/drivers/usb/gadget/function/uvc_video.c
index 0de7f11..e818659 100644
--- a/drivers/usb/gadget/function/uvc_video.c
+++ b/drivers/usb/gadget/function/uvc_video.c
@@ -12,6 +12,7 @@
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
 #include <linux/usb/video.h>
+#include <asm/unaligned.h>
 
 #include <media/v4l2-dev.h>
 
@@ -27,13 +28,41 @@
 uvc_video_encode_header(struct uvc_video *video, struct uvc_buffer *buf,
 		u8 *data, int len)
 {
-	data[0] = UVCG_REQUEST_HEADER_LEN;
+	struct uvc_device *uvc = container_of(video, struct uvc_device, video);
+	struct usb_composite_dev *cdev = uvc->func.config->cdev;
+	struct timespec64 ts = ns_to_timespec64(buf->buf.vb2_buf.timestamp);
+	int pos = 2;
+
 	data[1] = UVC_STREAM_EOH | video->fid;
 
-	if (buf->bytesused - video->queue.buf_used <= len - UVCG_REQUEST_HEADER_LEN)
+	if (video->queue.buf_used == 0 && ts.tv_sec) {
+		/* dwClockFrequency is 48 MHz */
+		u32 pts = ((u64)ts.tv_sec * USEC_PER_SEC + ts.tv_nsec / NSEC_PER_USEC) * 48;
+
+		data[1] |= UVC_STREAM_PTS;
+		put_unaligned_le32(pts, &data[pos]);
+		pos += 4;
+	}
+
+	if (cdev->gadget->ops->get_frame) {
+		u32 sof, stc;
+
+		sof = usb_gadget_frame_number(cdev->gadget);
+		ktime_get_ts64(&ts);
+		stc = ((u64)ts.tv_sec * USEC_PER_SEC + ts.tv_nsec / NSEC_PER_USEC) * 48;
+
+		data[1] |= UVC_STREAM_SCR;
+		put_unaligned_le32(stc, &data[pos]);
+		put_unaligned_le16(sof, &data[pos+4]);
+		pos += 6;
+	}
+
+	data[0] = pos;
+
+	if (buf->bytesused - video->queue.buf_used <= len - pos)
 		data[1] |= UVC_STREAM_EOF;
 
-	return UVCG_REQUEST_HEADER_LEN;
+	return pos;
 }
 
 static int
@@ -207,9 +236,12 @@
 		uvcg_err(&video->uvc->func, "Failed to queue request (%d).\n",
 			 ret);
 
-		/* Isochronous endpoints can't be halted. */
-		if (usb_endpoint_xfer_bulk(video->ep->desc))
-			usb_ep_set_halt(video->ep);
+		/* If the endpoint is disabled the descriptor may be NULL. */
+		if (video->ep->desc) {
+			/* Isochronous endpoints can't be halted. */
+			if (usb_endpoint_xfer_bulk(video->ep->desc))
+				usb_ep_set_halt(video->ep);
+		}
 	}
 
 	return ret;
@@ -221,6 +253,7 @@
 	struct uvc_request *ureq = req->context;
 	struct uvc_video *video = ureq->video;
 	struct uvc_video_queue *queue = &video->queue;
+	struct uvc_device *uvc = video->uvc;
 	unsigned long flags;
 
 	switch (req->status) {
@@ -253,7 +286,8 @@
 	list_add_tail(&req->list, &video->req_free);
 	spin_unlock_irqrestore(&video->req_lock, flags);
 
-	schedule_work(&video->pump);
+	if (uvc->state == UVC_STATE_STREAMING)
+		queue_work(video->async_wq, &video->pump);
 }
 
 static int
@@ -348,13 +382,17 @@
 {
 	struct uvc_video *video = container_of(work, struct uvc_video, pump);
 	struct uvc_video_queue *queue = &video->queue;
-	struct usb_request *req;
+	struct usb_request *req = NULL;
 	struct uvc_buffer *buf;
 	unsigned long flags;
 	int ret;
+	bool buf_int;
+	/* video->max_payload_size is only set when using bulk transfer */
+	bool is_bulk = video->max_payload_size;
 
-	while (1) {
-		/* Retrieve the first available USB request, protected by the
+	while (video->ep->enabled) {
+		/*
+		 * Retrieve the first available USB request, protected by the
 		 * request lock.
 		 */
 		spin_lock_irqsave(&video->req_lock, flags);
@@ -367,23 +405,41 @@
 		list_del(&req->list);
 		spin_unlock_irqrestore(&video->req_lock, flags);
 
-		/* Retrieve the first available video buffer and fill the
+		/*
+		 * Retrieve the first available video buffer and fill the
 		 * request, protected by the video queue irqlock.
 		 */
 		spin_lock_irqsave(&queue->irqlock, flags);
 		buf = uvcg_queue_head(queue);
-		if (buf == NULL) {
+
+		if (buf != NULL) {
+			video->encode(req, video, buf);
+			/* Always interrupt for the last request of a video buffer */
+			buf_int = buf->state == UVC_BUF_STATE_DONE;
+		} else if (!(queue->flags & UVC_QUEUE_DISCONNECTED) && !is_bulk) {
+			/*
+			 * No video buffer available; the queue is still connected and
+			 * we're traferring over ISOC. Queue a 0 length request to
+			 * prevent missed ISOC transfers.
+			 */
+			req->length = 0;
+			buf_int = false;
+		} else {
+			/*
+			 * Either queue has been disconnected or no video buffer
+			 * available to bulk transfer. Either way, stop processing
+			 * further.
+			 */
 			spin_unlock_irqrestore(&queue->irqlock, flags);
 			break;
 		}
 
-		video->encode(req, video, buf);
-
-		/* With usb3 we have more requests. This will decrease the
+		/*
+		 * With usb3 we have more requests. This will decrease the
 		 * interrupt load to a quarter but also catches the corner
-		 * cases, which needs to be handled */
-		if (list_empty(&video->req_free) ||
-		    buf->state == UVC_BUF_STATE_DONE ||
+		 * cases, which needs to be handled.
+		 */
+		if (list_empty(&video->req_free) || buf_int ||
 		    !(video->req_int_count %
 		       DIV_ROUND_UP(video->uvc_num_requests, 4))) {
 			video->req_int_count = 0;
@@ -400,9 +456,15 @@
 			uvcg_queue_cancel(queue, 0);
 			break;
 		}
+
+		/* Endpoint now owns the request */
+		req = NULL;
 		video->req_int_count++;
 	}
 
+	if (!req)
+		return;
+
 	spin_lock_irqsave(&video->req_lock, flags);
 	list_add_tail(&req->list, &video->req_free);
 	spin_unlock_irqrestore(&video->req_lock, flags);
@@ -451,7 +513,7 @@
 
 	video->req_int_count = 0;
 
-	schedule_work(&video->pump);
+	queue_work(video->async_wq, &video->pump);
 
 	return ret;
 }
@@ -465,6 +527,11 @@
 	spin_lock_init(&video->req_lock);
 	INIT_WORK(&video->pump, uvcg_video_pump);
 
+	/* Allocate a work queue for asynchronous video pump handler. */
+	video->async_wq = alloc_workqueue("uvcgadget", WQ_UNBOUND | WQ_HIGHPRI, 0);
+	if (!video->async_wq)
+		return -EINVAL;
+
 	video->uvc = uvc;
 	video->fcc = V4L2_PIX_FMT_YUYV;
 	video->bpp = 16;
@@ -477,4 +544,3 @@
 			V4L2_BUF_TYPE_VIDEO_OUTPUT, &video->mutex);
 	return 0;
 }
-
diff --git a/drivers/usb/gadget/legacy/webcam.c b/drivers/usb/gadget/legacy/webcam.c
index e9b5846..c06dd1a 100644
--- a/drivers/usb/gadget/legacy/webcam.c
+++ b/drivers/usb/gadget/legacy/webcam.c
@@ -171,7 +171,7 @@
 	.bDefaultFrameIndex	= 1,
 	.bAspectRatioX		= 0,
 	.bAspectRatioY		= 0,
-	.bmInterfaceFlags	= 0,
+	.bmInterlaceFlags	= 0,
 	.bCopyProtect		= 0,
 };
 
@@ -222,7 +222,7 @@
 	.bDefaultFrameIndex	= 1,
 	.bAspectRatioX		= 0,
 	.bAspectRatioY		= 0,
-	.bmInterfaceFlags	= 0,
+	.bmInterlaceFlags	= 0,
 	.bCopyProtect		= 0,
 };
 
diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c
index 6c05a3a..940dd59 100644
--- a/drivers/usb/gadget/udc/core.c
+++ b/drivers/usb/gadget/udc/core.c
@@ -6,6 +6,8 @@
  * Author: Felipe Balbi <balbi@ti.com>
  */
 
+#define pr_fmt(fmt)	"UDC core: " fmt
+
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/device.h>
@@ -89,7 +91,7 @@
  * configurable, with more generic names like "ep-a".  (remember that for
  * USB, "in" means "towards the USB host".)
  *
- * This routine must be called in process context.
+ * This routine may be called in an atomic (interrupt) context.
  *
  * returns zero, or a negative error code.
  */
@@ -134,7 +136,7 @@
  * gadget drivers must call usb_ep_enable() again before queueing
  * requests to the endpoint.
  *
- * This routine must be called in process context.
+ * This routine may be called in an atomic (interrupt) context.
  *
  * returns zero, or a negative error code.
  */
@@ -509,33 +511,6 @@
 EXPORT_SYMBOL_GPL(usb_gadget_wakeup);
 
 /**
- * usb_gadget_set_remote_wakeup - configures the device remote wakeup feature.
- * @gadget:the device being configured for remote wakeup
- * @set:value to be configured.
- *
- * set to one to enable remote wakeup feature and zero to disable it.
- *
- * returns zero on success, else negative errno.
- */
-int usb_gadget_set_remote_wakeup(struct usb_gadget *gadget, int set)
-{
-	int ret = 0;
-
-	if (!gadget->ops->set_remote_wakeup) {
-		ret = -EOPNOTSUPP;
-		goto out;
-	}
-
-	ret = gadget->ops->set_remote_wakeup(gadget, set);
-
-out:
-	trace_usb_gadget_set_remote_wakeup(gadget, ret);
-
-	return ret;
-}
-EXPORT_SYMBOL_GPL(usb_gadget_set_remote_wakeup);
-
-/**
  * usb_gadget_set_selfpowered - sets the device selfpowered feature.
  * @gadget:the device being declared as self-powered
  *
@@ -1070,12 +1045,16 @@
 
 /* ------------------------------------------------------------------------- */
 
-static void usb_udc_connect_control(struct usb_udc *udc)
+static int usb_udc_connect_control(struct usb_udc *udc)
 {
+	int ret;
+
 	if (udc->vbus)
-		usb_gadget_connect(udc->gadget);
+		ret = usb_gadget_connect(udc->gadget);
 	else
-		usb_gadget_disconnect(udc->gadget);
+		ret = usb_gadget_disconnect(udc->gadget);
+
+	return ret;
 }
 
 /**
@@ -1530,15 +1509,26 @@
 	if (ret)
 		goto err1;
 	ret = usb_gadget_udc_start(udc);
-	if (ret) {
-		driver->unbind(udc->gadget);
-		goto err1;
-	}
+	if (ret)
+		goto err_start;
+
 	usb_gadget_enable_async_callbacks(udc);
-	usb_udc_connect_control(udc);
+	ret = usb_udc_connect_control(udc);
+	if (ret)
+		goto err_connect_control;
 
 	kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE);
 	return 0;
+
+err_connect_control:
+	usb_gadget_disable_async_callbacks(udc);
+	if (udc->gadget->irq)
+		synchronize_irq(udc->gadget->irq);
+	usb_gadget_udc_stop(udc);
+
+err_start:
+	driver->unbind(udc->gadget);
+
 err1:
 	if (ret != -EISNAM)
 		dev_err(&udc->dev, "failed to start %s: %d\n",
@@ -1550,7 +1540,7 @@
 
 int usb_gadget_probe_driver(struct usb_gadget_driver *driver)
 {
-	struct usb_udc		*udc = NULL;
+	struct usb_udc		*udc = NULL, *iter;
 	int			ret = -ENODEV;
 
 	if (!driver || !driver->bind || !driver->setup)
@@ -1558,10 +1548,12 @@
 
 	mutex_lock(&udc_lock);
 	if (driver->udc_name) {
-		list_for_each_entry(udc, &udc_list, list) {
-			ret = strcmp(driver->udc_name, dev_name(&udc->dev));
-			if (!ret)
-				break;
+		list_for_each_entry(iter, &udc_list, list) {
+			ret = strcmp(driver->udc_name, dev_name(&iter->dev));
+			if (ret)
+				continue;
+			udc = iter;
+			break;
 		}
 		if (ret)
 			ret = -ENODEV;
@@ -1570,23 +1562,25 @@
 		else
 			goto found;
 	} else {
-		list_for_each_entry(udc, &udc_list, list) {
+		list_for_each_entry(iter, &udc_list, list) {
 			/* For now we take the first one */
-			if (!udc->driver)
-				goto found;
+			if (iter->driver)
+				continue;
+			udc = iter;
+			goto found;
 		}
 	}
 
 	if (!driver->match_existing_only) {
 		list_add_tail(&driver->pending, &gadget_driver_pending_list);
-		pr_info("udc-core: couldn't find an available UDC - added [%s] to list of pending drivers\n",
+		pr_info("couldn't find an available UDC - added [%s] to list of pending drivers\n",
 			driver->function);
 		ret = 0;
 	}
 
 	mutex_unlock(&udc_lock);
 	if (ret)
-		pr_warn("udc-core: couldn't find an available UDC or it's busy\n");
+		pr_warn("couldn't find an available UDC or it's busy: %d\n", ret);
 	return ret;
 found:
 	ret = udc_bind_to_driver(udc, driver);
diff --git a/drivers/usb/gadget/udc/omap_udc.c b/drivers/usb/gadget/udc/omap_udc.c
index 494da00..1183842 100644
--- a/drivers/usb/gadget/udc/omap_udc.c
+++ b/drivers/usb/gadget/udc/omap_udc.c
@@ -2553,7 +2553,7 @@
 
 	/* set up driver data structures */
 	BUG_ON(strlen(name) >= sizeof ep->name);
-	strlcpy(ep->name, name, sizeof ep->name);
+	strscpy(ep->name, name, sizeof(ep->name));
 	INIT_LIST_HEAD(&ep->queue);
 	INIT_LIST_HEAD(&ep->iso);
 	ep->bEndpointAddress = addr;
diff --git a/drivers/usb/gadget/udc/trace.c b/drivers/usb/gadget/udc/trace.c
index 19e837d..1b98420 100644
--- a/drivers/usb/gadget/udc/trace.c
+++ b/drivers/usb/gadget/udc/trace.c
@@ -8,3 +8,6 @@
 
 #define CREATE_TRACE_POINTS
 #include "trace.h"
+
+EXPORT_TRACEPOINT_SYMBOL_GPL(usb_gadget_connect);
+EXPORT_TRACEPOINT_SYMBOL_GPL(usb_gadget_disconnect);
diff --git a/drivers/usb/gadget/udc/trace.h b/drivers/usb/gadget/udc/trace.h
index 4288193..98584f6b 100644
--- a/drivers/usb/gadget/udc/trace.h
+++ b/drivers/usb/gadget/udc/trace.h
@@ -91,11 +91,6 @@
 	TP_ARGS(g, ret)
 );
 
-DEFINE_EVENT(udc_log_gadget, usb_gadget_set_remote_wakeup,
-	TP_PROTO(struct usb_gadget *g, int ret),
-	TP_ARGS(g, ret)
-);
-
 DEFINE_EVENT(udc_log_gadget, usb_gadget_set_selfpowered,
 	TP_PROTO(struct usb_gadget *g, int ret),
 	TP_ARGS(g, ret)
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
index b975478..f65f1ba 100644
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
@@ -1647,17 +1647,6 @@
 
 	status = bus_state->resuming_ports;
 
-	/*
-	 * SS devices are only visible to roothub after link training completes.
-	 * Keep polling roothubs for a grace period after xHC start
-	 */
-	if (xhci->run_graceperiod) {
-		if (time_before(jiffies, xhci->run_graceperiod))
-			status = 1;
-		else
-			xhci->run_graceperiod = 0;
-	}
-
 	mask = PORT_CSC | PORT_PEC | PORT_OCC | PORT_PLC | PORT_WRC | PORT_CEC;
 
 	/* For each port, did anything change?  If so, set that bit in buf. */
diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
index 6444aef..34985e4 100644
--- a/drivers/usb/host/xhci-mem.c
+++ b/drivers/usb/host/xhci-mem.c
@@ -292,6 +292,7 @@
 
 	kfree(ring);
 }
+EXPORT_SYMBOL_GPL(xhci_ring_free);
 
 void xhci_initialize_ring_info(struct xhci_ring *ring,
 			       unsigned int cycle_state)
@@ -407,6 +408,7 @@
 	kfree(ring);
 	return NULL;
 }
+EXPORT_SYMBOL_GPL(xhci_ring_alloc);
 
 void xhci_free_endpoint_ring(struct xhci_hcd *xhci,
 		struct xhci_virt_device *virt_dev,
@@ -1764,6 +1766,7 @@
 	INIT_LIST_HEAD(&command->cmd_list);
 	return command;
 }
+EXPORT_SYMBOL_GPL(xhci_alloc_command);
 
 struct xhci_command *xhci_alloc_command_with_ctx(struct xhci_hcd *xhci,
 		bool allocate_completion, gfp_t mem_flags)
@@ -1797,6 +1800,7 @@
 	kfree(command->completion);
 	kfree(command);
 }
+EXPORT_SYMBOL_GPL(xhci_free_command);
 
 int xhci_alloc_erst(struct xhci_hcd *xhci,
 		    struct xhci_ring *evt_ring,
@@ -1827,6 +1831,7 @@
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(xhci_alloc_erst);
 
 void xhci_free_erst(struct xhci_hcd *xhci, struct xhci_erst *erst)
 {
@@ -1840,6 +1845,7 @@
 				erst->erst_dma_addr);
 	erst->entries = NULL;
 }
+EXPORT_SYMBOL_GPL(xhci_free_erst);
 
 void xhci_mem_cleanup(struct xhci_hcd *xhci)
 {
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index 29a442b..6467b20 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -79,12 +79,9 @@
 static struct hc_driver __read_mostly xhci_pci_hc_driver;
 
 static int xhci_pci_setup(struct usb_hcd *hcd);
-static int xhci_pci_update_hub_device(struct usb_hcd *hcd, struct usb_device *hdev,
-				      struct usb_tt *tt, gfp_t mem_flags);
 
 static const struct xhci_driver_overrides xhci_pci_overrides __initconst = {
 	.reset = xhci_pci_setup,
-	.update_hub_device = xhci_pci_update_hub_device,
 };
 
 /* called after powerup, by probe or system-pm "wakeup" */
@@ -367,38 +364,8 @@
 				NULL);
 	ACPI_FREE(obj);
 }
-
-static void xhci_find_lpm_incapable_ports(struct usb_hcd *hcd, struct usb_device *hdev)
-{
-	struct xhci_hcd	*xhci = hcd_to_xhci(hcd);
-	struct xhci_hub *rhub = &xhci->usb3_rhub;
-	int ret;
-	int i;
-
-	/* This is not the usb3 roothub we are looking for */
-	if (hcd != rhub->hcd)
-		return;
-
-	if (hdev->maxchild > rhub->num_ports) {
-		dev_err(&hdev->dev, "USB3 roothub port number mismatch\n");
-		return;
-	}
-
-	for (i = 0; i < hdev->maxchild; i++) {
-		ret = usb_acpi_port_lpm_incapable(hdev, i);
-
-		dev_dbg(&hdev->dev, "port-%d disable U1/U2 _DSM: %d\n", i + 1, ret);
-
-		if (ret >= 0) {
-			rhub->ports[i]->lpm_incapable = ret;
-			continue;
-		}
-	}
-}
-
 #else
 static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
-static void xhci_find_lpm_incapable_ports(struct usb_hcd *hcd, struct usb_device *hdev) { }
 #endif /* CONFIG_ACPI */
 
 /* called during probe() after chip reset completes */
@@ -431,16 +398,6 @@
 	return xhci_pci_reinit(xhci, pdev);
 }
 
-static int xhci_pci_update_hub_device(struct usb_hcd *hcd, struct usb_device *hdev,
-				      struct usb_tt *tt, gfp_t mem_flags)
-{
-	/* Check if acpi claims some USB3 roothub ports are lpm incapable */
-	if (!hdev->parent)
-		xhci_find_lpm_incapable_ports(hcd, hdev);
-
-	return xhci_update_hub_device(hcd, hdev, tt, mem_flags);
-}
-
 /*
  * We need to register our own PCI probe function (instead of the USB core's
  * function) in order to create a second roothub under xHCI.
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index 15e4404..3cff45c 100644
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -79,6 +79,7 @@
 		return 0;
 	return seg->dma + (segment_offset * sizeof(*trb));
 }
+EXPORT_SYMBOL_GPL(xhci_trb_virt_to_dma);
 
 static bool trb_is_noop(union xhci_trb *trb)
 {
@@ -331,6 +332,7 @@
 	/* Flush PCI posted writes */
 	readl(&xhci->dba->doorbell[0]);
 }
+EXPORT_SYMBOL_GPL(xhci_ring_cmd_db);
 
 static bool xhci_mod_cmd_timer(struct xhci_hcd *xhci, unsigned long delay)
 {
@@ -2531,7 +2533,7 @@
 
 	switch (trb_comp_code) {
 	case COMP_SUCCESS:
-		ep->err_count = 0;
+		ep_ring->err_count = 0;
 		/* handle success with untransferred data as short packet */
 		if (ep_trb != td->last_trb || remaining) {
 			xhci_warn(xhci, "WARN Successful completion on short TX\n");
@@ -2557,7 +2559,7 @@
 		break;
 	case COMP_USB_TRANSACTION_ERROR:
 		if (xhci->quirks & XHCI_NO_SOFT_RETRY ||
-		    (ep->err_count++ > MAX_SOFT_RETRY) ||
+		    (ep_ring->err_count++ > MAX_SOFT_RETRY) ||
 		    le32_to_cpu(slot_ctx->tt_info) & TT_SLOT)
 			break;
 
@@ -2638,14 +2640,8 @@
 		case COMP_USB_TRANSACTION_ERROR:
 		case COMP_INVALID_STREAM_TYPE_ERROR:
 		case COMP_INVALID_STREAM_ID_ERROR:
-			xhci_dbg(xhci, "Stream transaction error ep %u no id\n",
-				 ep_index);
-			if (ep->err_count++ > MAX_SOFT_RETRY)
-				xhci_handle_halted_endpoint(xhci, ep, 0, NULL,
-							    EP_HARD_RESET);
-			else
-				xhci_handle_halted_endpoint(xhci, ep, 0, NULL,
-							    EP_SOFT_RESET);
+			xhci_handle_halted_endpoint(xhci, ep, 0, NULL,
+						    EP_SOFT_RESET);
 			goto cleanup;
 		case COMP_RING_UNDERRUN:
 		case COMP_RING_OVERRUN:
@@ -4434,6 +4430,7 @@
 	return queue_command(xhci, cmd, 0, 0, 0,
 			trb_slot_id | trb_ep_index | type | trb_suspend, false);
 }
+EXPORT_SYMBOL_GPL(xhci_queue_stop_endpoint);
 
 int xhci_queue_reset_ep(struct xhci_hcd *xhci, struct xhci_command *cmd,
 			int slot_id, unsigned int ep_index,
diff --git a/drivers/usb/host/xhci-trace.c b/drivers/usb/host/xhci-trace.c
index d007081..c417835 100644
--- a/drivers/usb/host/xhci-trace.c
+++ b/drivers/usb/host/xhci-trace.c
@@ -12,3 +12,6 @@
 #include "xhci-trace.h"
 
 EXPORT_TRACEPOINT_SYMBOL_GPL(xhci_dbg_quirks);
+EXPORT_TRACEPOINT_SYMBOL_GPL(xhci_urb_enqueue);
+EXPORT_TRACEPOINT_SYMBOL_GPL(xhci_handle_transfer);
+EXPORT_TRACEPOINT_SYMBOL_GPL(xhci_urb_giveback);
diff --git a/drivers/usb/host/xhci-trace.h b/drivers/usb/host/xhci-trace.h
index a5da020..5daf41b 100644
--- a/drivers/usb/host/xhci-trace.h
+++ b/drivers/usb/host/xhci-trace.h
@@ -80,20 +80,16 @@
 		__field(dma_addr_t, ctx_dma)
 		__field(u8 *, ctx_va)
 		__field(unsigned, ctx_ep_num)
-		__field(int, slot_id)
 		__dynamic_array(u32, ctx_data,
 			((HCC_64BYTE_CONTEXT(xhci->hcc_params) + 1) * 8) *
 			((ctx->type == XHCI_CTX_TYPE_INPUT) + ep_num + 1))
 	),
 	TP_fast_assign(
-		struct usb_device *udev;
 
-		udev = to_usb_device(xhci_to_hcd(xhci)->self.controller);
 		__entry->ctx_64 = HCC_64BYTE_CONTEXT(xhci->hcc_params);
 		__entry->ctx_type = ctx->type;
 		__entry->ctx_dma = ctx->dma;
 		__entry->ctx_va = ctx->bytes;
-		__entry->slot_id = udev->slot_id;
 		__entry->ctx_ep_num = ep_num;
 		memcpy(__get_dynamic_array(ctx_data), ctx->bytes,
 			((HCC_64BYTE_CONTEXT(xhci->hcc_params) + 1) * 32) *
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 1fd2f6a..4d3adcc 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -9,7 +9,9 @@
  */
 
 #include <linux/pci.h>
+#ifndef __GENKSYMS__	/* ANDROID: KABI CRC preservation hack */
 #include <linux/iommu.h>
+#endif
 #include <linux/iopoll.h>
 #include <linux/irq.h>
 #include <linux/log2.h>
@@ -149,11 +151,9 @@
 		xhci_err(xhci, "Host took too long to start, "
 				"waited %u microseconds.\n",
 				XHCI_MAX_HALT_USEC);
-	if (!ret) {
+	if (!ret)
 		/* clear state flags. Including dying, halted or removing */
 		xhci->xhc_state = 0;
-		xhci->run_graceperiod = jiffies + msecs_to_jiffies(500);
-	}
 
 	return ret;
 }
@@ -5055,7 +5055,6 @@
 			struct usb_device *udev, enum usb3_link_state state)
 {
 	struct xhci_hcd	*xhci;
-	struct xhci_port *port;
 	u16 hub_encoded_timeout;
 	int mel;
 	int ret;
@@ -5069,13 +5068,6 @@
 			!xhci->devs[udev->slot_id])
 		return USB3_LPM_DISABLED;
 
-	/* If connected to root port then check port can handle lpm */
-	if (udev->parent && !udev->parent->parent) {
-		port = xhci->usb3_rhub.ports[udev->portnum - 1];
-		if (port->lpm_incapable)
-			return USB3_LPM_DISABLED;
-	}
-
 	hub_encoded_timeout = xhci_calculate_lpm_timeout(hcd, udev, state);
 	mel = calculate_max_exit_latency(udev, state, hub_encoded_timeout);
 	if (mel < 0) {
@@ -5135,7 +5127,7 @@
 /* Once a hub descriptor is fetched for a device, we need to update the xHC's
  * internal data structures for the device.
  */
-int xhci_update_hub_device(struct usb_hcd *hcd, struct usb_device *hdev,
+static int xhci_update_hub_device(struct usb_hcd *hcd, struct usb_device *hdev,
 			struct usb_tt *tt, gfp_t mem_flags)
 {
 	struct xhci_hcd *xhci = hcd_to_xhci(hcd);
@@ -5235,7 +5227,6 @@
 	xhci_free_command(xhci, config_cmd);
 	return ret;
 }
-EXPORT_SYMBOL_GPL(xhci_update_hub_device);
 
 static int xhci_get_frame(struct usb_hcd *hcd)
 {
@@ -5513,8 +5504,6 @@
 			drv->check_bandwidth = over->check_bandwidth;
 		if (over->reset_bandwidth)
 			drv->reset_bandwidth = over->reset_bandwidth;
-		if (over->update_hub_device)
-			drv->update_hub_device = over->update_hub_device;
 	}
 }
 EXPORT_SYMBOL_GPL(xhci_init_driver);
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index 64278cd..9fbadc8 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -17,6 +17,7 @@
 #include <linux/kernel.h>
 #include <linux/usb/hcd.h>
 #include <linux/io-64-nonatomic-lo-hi.h>
+#include <linux/android_kabi.h>
 
 /* Code sharing between pci-quirks and xhci hcd */
 #include	"xhci-ext-caps.h"
@@ -815,6 +816,9 @@
 	struct completion		*completion;
 	union xhci_trb			*command_trb;
 	struct list_head		cmd_list;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 /* drop context bitmasks */
@@ -933,7 +937,6 @@
 	 * have to restore the device state to the previous state
 	 */
 	struct xhci_ring		*new_ring;
-	unsigned int			err_count;
 	unsigned int			ep_state;
 #define SET_DEQ_PENDING		(1 << 0)
 #define EP_HALTED		(1 << 1)	/* For stall handling */
@@ -1550,6 +1553,8 @@
 	void			*bounce_buf;
 	unsigned int		bounce_offs;
 	unsigned int		bounce_len;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 enum xhci_cancelled_td_status {
@@ -1630,6 +1635,7 @@
 	 * if we own the TRB (if we are the consumer).  See section 4.9.1.
 	 */
 	u32			cycle_state;
+	unsigned int            err_count;
 	unsigned int		stream_id;
 	unsigned int		num_segs;
 	unsigned int		num_trbs_free;
@@ -1638,6 +1644,9 @@
 	enum xhci_ring_type	type;
 	bool			last_td_was_short;
 	struct radix_tree_root	*trb_address_map;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 struct xhci_erst_entry {
@@ -1655,6 +1664,8 @@
 	dma_addr_t		erst_dma_addr;
 	/* Num entries the ERST can contain */
 	unsigned int		erst_size;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct xhci_scratchpad {
@@ -1737,7 +1748,6 @@
 	int			hcd_portnum;
 	struct xhci_hub		*rhub;
 	struct xhci_port_cap	*port_cap;
-	unsigned int		lpm_incapable:1;
 };
 
 struct xhci_hub {
@@ -1831,7 +1841,7 @@
 
 	/* Host controller watchdog timer structures */
 	unsigned int		xhc_state;
-	unsigned long		run_graceperiod;
+
 	u32			command;
 	struct s3_save		s3;
 /* Host controller is dying - not responding to commands. "I'm not dead yet!"
@@ -1936,6 +1946,12 @@
 	struct list_head	regset_list;
 
 	void			*dbc;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
+
 	/* platform-specific data -- must come last */
 	unsigned long		priv[] __aligned(sizeof(s64));
 };
@@ -1951,8 +1967,6 @@
 			     struct usb_host_endpoint *ep);
 	int (*check_bandwidth)(struct usb_hcd *, struct usb_device *);
 	void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *);
-	int (*update_hub_device)(struct usb_hcd *hcd, struct usb_device *hdev,
-			    struct usb_tt *tt, gfp_t mem_flags);
 };
 
 #define	XHCI_CFC_DELAY		10
@@ -2109,8 +2123,6 @@
 		       struct usb_host_endpoint *ep);
 int xhci_check_bandwidth(struct usb_hcd *hcd, struct usb_device *udev);
 void xhci_reset_bandwidth(struct usb_hcd *hcd, struct usb_device *udev);
-int xhci_update_hub_device(struct usb_hcd *hcd, struct usb_device *hdev,
-			   struct usb_tt *tt, gfp_t mem_flags);
 int xhci_disable_slot(struct xhci_hcd *xhci, u32 slot_id);
 int xhci_ext_cap_init(struct xhci_hcd *xhci);
 
diff --git a/drivers/usb/misc/usb251xb.c b/drivers/usb/misc/usb251xb.c
index 507deef..ccab870 100644
--- a/drivers/usb/misc/usb251xb.c
+++ b/drivers/usb/misc/usb251xb.c
@@ -544,7 +544,7 @@
 		hub->lang_id = USB251XB_DEF_LANGUAGE_ID;
 
 	cproperty_char = of_get_property(np, "manufacturer", NULL);
-	strlcpy(str, cproperty_char ? : USB251XB_DEF_MANUFACTURER_STRING,
+	strscpy(str, cproperty_char ? : USB251XB_DEF_MANUFACTURER_STRING,
 		sizeof(str));
 	hub->manufacturer_len = strlen(str) & 0xFF;
 	memset(hub->manufacturer, 0, USB251XB_STRING_BUFSIZE);
@@ -554,7 +554,7 @@
 			      USB251XB_STRING_BUFSIZE);
 
 	cproperty_char = of_get_property(np, "product", NULL);
-	strlcpy(str, cproperty_char ? : data->product_str, sizeof(str));
+	strscpy(str, cproperty_char ? : data->product_str, sizeof(str));
 	hub->product_len = strlen(str) & 0xFF;
 	memset(hub->product, 0, USB251XB_STRING_BUFSIZE);
 	len = min_t(size_t, USB251XB_STRING_BUFSIZE / 2, strlen(str));
@@ -563,7 +563,7 @@
 			      USB251XB_STRING_BUFSIZE);
 
 	cproperty_char = of_get_property(np, "serial", NULL);
-	strlcpy(str, cproperty_char ? : USB251XB_DEF_SERIAL_STRING,
+	strscpy(str, cproperty_char ? : USB251XB_DEF_SERIAL_STRING,
 		sizeof(str));
 	hub->serial_len = strlen(str) & 0xFF;
 	memset(hub->serial, 0, USB251XB_STRING_BUFSIZE);
diff --git a/drivers/usb/storage/onetouch.c b/drivers/usb/storage/onetouch.c
index a989fe9..3ebd88b 100644
--- a/drivers/usb/storage/onetouch.c
+++ b/drivers/usb/storage/onetouch.c
@@ -201,7 +201,7 @@
 	onetouch->dev = input_dev;
 
 	if (udev->manufacturer)
-		strlcpy(onetouch->name, udev->manufacturer,
+		strscpy(onetouch->name, udev->manufacturer,
 			sizeof(onetouch->name));
 	if (udev->product) {
 		if (udev->manufacturer)
diff --git a/drivers/usb/typec/bus.h b/drivers/usb/typec/bus.h
index 56dec26..fa021ed 100644
--- a/drivers/usb/typec/bus.h
+++ b/drivers/usb/typec/bus.h
@@ -4,6 +4,7 @@
 #define __USB_TYPEC_ALTMODE_H__
 
 #include <linux/usb/typec_altmode.h>
+#include <linux/android_kabi.h>
 
 struct bus_type;
 struct typec_mux;
@@ -22,6 +23,7 @@
 
 	struct altmode			*partner;
 	struct altmode			*plug[2];
+	ANDROID_KABI_RESERVE(1);
 };
 
 #define to_altmode(d) container_of(d, struct altmode, adev)
diff --git a/drivers/usb/typec/class.h b/drivers/usb/typec/class.h
index aef03eb..fa08d5c 100644
--- a/drivers/usb/typec/class.h
+++ b/drivers/usb/typec/class.h
@@ -5,6 +5,7 @@
 
 #include <linux/device.h>
 #include <linux/usb/typec.h>
+#include <linux/android_kabi.h>
 
 struct typec_mux;
 struct typec_switch;
@@ -14,6 +15,7 @@
 	enum typec_plug_index		index;
 	struct ida			mode_ids;
 	int				num_altmodes;
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct typec_cable {
@@ -22,6 +24,7 @@
 	struct usb_pd_identity		*identity;
 	unsigned int			active:1;
 	u16				pd_revision; /* 0300H = "3.0" */
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct typec_partner {
@@ -33,6 +36,7 @@
 	int				num_altmodes;
 	u16				pd_revision; /* 0300H = "3.0" */
 	enum usb_pd_svdm_ver		svdm_version;
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct typec_port {
@@ -59,6 +63,7 @@
 	struct mutex			port_list_lock; /* Port list lock */
 
 	void				*pld;
+	ANDROID_KABI_RESERVE(1);
 };
 
 #define to_typec_port(_dev_) container_of(_dev_, struct typec_port, dev)
diff --git a/drivers/usb/typec/mux.h b/drivers/usb/typec/mux.h
index b1d6e837..a15b926e 100644
--- a/drivers/usb/typec/mux.h
+++ b/drivers/usb/typec/mux.h
@@ -4,15 +4,18 @@
 #define __USB_TYPEC_MUX__
 
 #include <linux/usb/typec_mux.h>
+#include <linux/android_kabi.h>
 
 struct typec_switch {
 	struct device dev;
 	typec_switch_set_fn_t set;
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct typec_mux {
 	struct device dev;
 	typec_mux_set_fn_t set;
+	ANDROID_KABI_RESERVE(1);
 };
 
 #define to_typec_switch(_dev_) container_of(_dev_, struct typec_switch, dev)
diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c
index 96c55ea..ab89c01 100644
--- a/drivers/usb/typec/tcpm/fusb302.c
+++ b/drivers/usb/typec/tcpm/fusb302.c
@@ -151,7 +151,7 @@
 
 	if (fusb302_log_full(chip)) {
 		chip->logbuffer_head = max(chip->logbuffer_head - 1, 0);
-		strlcpy(tmpbuffer, "overflow", sizeof(tmpbuffer));
+		strscpy(tmpbuffer, "overflow", sizeof(tmpbuffer));
 	}
 
 	if (chip->logbuffer_head < 0 ||
diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c
index 4f38b2d..1dfbfe2 100644
--- a/drivers/usb/typec/tcpm/tcpm.c
+++ b/drivers/usb/typec/tcpm/tcpm.c
@@ -475,6 +475,10 @@
 	 * SNK_READY for non-pd link.
 	 */
 	bool slow_charger_loop;
+
+	/* Port is still in tCCDebounce */
+	bool debouncing;
+
 #ifdef CONFIG_DEBUG_FS
 	struct dentry *dentry;
 	struct mutex logbuffer_lock;	/* log buffer access lock */
@@ -977,6 +981,21 @@
 	return ret;
 }
 
+bool tcpm_is_debouncing(struct tcpm_port *port)
+{
+	bool debounce;
+
+	if (!port)
+		return false;
+
+	mutex_lock(&port->lock);
+	debounce = port->debouncing;
+	mutex_unlock(&port->lock);
+
+	return debounce;
+}
+EXPORT_SYMBOL_GPL(tcpm_is_debouncing);
+
 static u32 tcpm_get_current_limit(struct tcpm_port *port)
 {
 	enum typec_cc_status cc;
@@ -3636,6 +3655,7 @@
 	port->partner = NULL;
 
 	port->attached = true;
+	port->debouncing = false;
 	port->send_discover = true;
 
 	return 0;
@@ -3762,6 +3782,7 @@
 	port->partner = NULL;
 
 	port->attached = true;
+	port->debouncing = false;
 	port->send_discover = true;
 
 	return 0;
@@ -3789,6 +3810,7 @@
 	tcpm_typec_connect(port);
 
 	port->attached = true;
+	port->debouncing = false;
 
 	return 0;
 }
@@ -3878,6 +3900,15 @@
 		if (!port->non_pd_role_swap)
 			tcpm_swap_complete(port, -ENOTCONN);
 		tcpm_src_detach(port);
+		if (port->debouncing) {
+			port->debouncing = false;
+			if (port->tcpc->check_contaminant &&
+			    port->tcpc->check_contaminant(port->tcpc)) {
+				/* Contaminant detection would handle toggling */
+				tcpm_set_state(port, TOGGLING, 0);
+				break;
+			}
+		}
 		if (tcpm_start_toggling(port, tcpm_rp_cc(port))) {
 			tcpm_set_state(port, TOGGLING, 0);
 			break;
@@ -3887,6 +3918,7 @@
 			tcpm_set_state(port, SNK_UNATTACHED, PD_T_DRP_SNK);
 		break;
 	case SRC_ATTACH_WAIT:
+		port->debouncing = true;
 		if (tcpm_port_is_debug(port))
 			tcpm_set_state(port, DEBUG_ACC_ATTACHED,
 				       PD_T_CC_DEBOUNCE);
@@ -3901,6 +3933,7 @@
 		break;
 
 	case SNK_TRY:
+		port->debouncing = false;
 		port->try_snk_count++;
 		/*
 		 * Requirements:
@@ -4115,6 +4148,15 @@
 			tcpm_swap_complete(port, -ENOTCONN);
 		tcpm_pps_complete(port, -ENOTCONN);
 		tcpm_snk_detach(port);
+		if (port->debouncing) {
+			port->debouncing = false;
+			if (port->tcpc->check_contaminant &&
+			    port->tcpc->check_contaminant(port->tcpc)) {
+				/* Contaminant detection would handle toggling */
+				tcpm_set_state(port, TOGGLING, 0);
+				break;
+			}
+		}
 		if (tcpm_start_toggling(port, TYPEC_CC_RD)) {
 			tcpm_set_state(port, TOGGLING, 0);
 			break;
@@ -4124,6 +4166,7 @@
 			tcpm_set_state(port, SRC_UNATTACHED, PD_T_DRP_SRC);
 		break;
 	case SNK_ATTACH_WAIT:
+		port->debouncing = true;
 		if ((port->cc1 == TYPEC_CC_OPEN &&
 		     port->cc2 != TYPEC_CC_OPEN) ||
 		    (port->cc1 != TYPEC_CC_OPEN &&
@@ -4135,14 +4178,18 @@
 				       PD_T_PD_DEBOUNCE);
 		break;
 	case SNK_DEBOUNCED:
-		if (tcpm_port_is_disconnected(port))
+		if (tcpm_port_is_disconnected(port)) {
 			tcpm_set_state(port, SNK_UNATTACHED,
 				       PD_T_PD_DEBOUNCE);
-		else if (port->vbus_present)
+		} else if (port->vbus_present) {
 			tcpm_set_state(port,
 				       tcpm_try_src(port) ? SRC_TRY
 							  : SNK_ATTACHED,
 				       0);
+			port->debouncing = false;
+		} else {
+			port->debouncing = false;
+		}
 		break;
 	case SRC_TRY:
 		port->try_src_count++;
@@ -5188,6 +5235,7 @@
 		break;
 	case SNK_ATTACH_WAIT:
 	case SNK_DEBOUNCED:
+		port->debouncing = false;
 		/* Do nothing, as TCPM is still waiting for vbus to reaach VSAFE5V to connect */
 		break;
 
@@ -6084,6 +6132,49 @@
 	return 0;
 }
 
+static int tcpm_copy_pdos(u32 *dest_pdo, const u32 *src_pdo, unsigned int nr_pdo)
+{
+	unsigned int i;
+
+	if (nr_pdo > PDO_MAX_OBJECTS)
+		nr_pdo = PDO_MAX_OBJECTS;
+
+	for (i = 0; i < nr_pdo; i++)
+		dest_pdo[i] = src_pdo[i];
+
+	return nr_pdo;
+}
+
+int tcpm_update_sink_capabilities(struct tcpm_port *port, const u32 *pdo, unsigned int nr_pdo,
+				  unsigned int operating_snk_mw)
+{
+	if (tcpm_validate_caps(port, pdo, nr_pdo))
+		return -EINVAL;
+
+	mutex_lock(&port->lock);
+	port->nr_snk_pdo = tcpm_copy_pdos(port->snk_pdo, pdo, nr_pdo);
+	port->operating_snk_mw = operating_snk_mw;
+	port->update_sink_caps = true;
+
+	switch (port->state) {
+	case SNK_NEGOTIATE_CAPABILITIES:
+	case SNK_NEGOTIATE_PPS_CAPABILITIES:
+	case SNK_READY:
+	case SNK_TRANSITION_SINK:
+	case SNK_TRANSITION_SINK_VBUS:
+		if (port->pps_data.active)
+			tcpm_set_state(port, SNK_NEGOTIATE_PPS_CAPABILITIES, 0);
+		else
+			tcpm_set_state(port, SNK_NEGOTIATE_CAPABILITIES, 0);
+		break;
+	default:
+		break;
+	}
+	mutex_unlock(&port->lock);
+	return 0;
+}
+EXPORT_SYMBOL_GPL(tcpm_update_sink_capabilities);
+
 /* Power Supply access to expose source power information */
 enum tcpm_psy_online_states {
 	TCPM_PSY_OFFLINE = 0,
diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c
index dca6803..bb55aac 100644
--- a/drivers/usb/typec/ucsi/ucsi.c
+++ b/drivers/usb/typec/ucsi/ucsi.c
@@ -1061,6 +1061,15 @@
 	con->num = index + 1;
 	con->ucsi = ucsi;
 
+	cap->fwnode = ucsi_find_fwnode(con);
+	con->usb_role_sw = fwnode_usb_role_switch_get(cap->fwnode);
+	if (IS_ERR(con->usb_role_sw)) {
+		dev_err(ucsi->dev, "con%d: failed to get usb role switch\n",
+			con->num);
+		return PTR_ERR(con->usb_role_sw);
+	}
+
+
 	/* Delay other interactions with the con until registration is complete */
 	mutex_lock(&con->lock);
 
@@ -1096,7 +1105,6 @@
 	if (con->cap.op_mode & UCSI_CONCAP_OPMODE_DEBUG_ACCESSORY)
 		*accessory = TYPEC_ACCESSORY_DEBUG;
 
-	cap->fwnode = ucsi_find_fwnode(con);
 	cap->driver_data = con;
 	cap->ops = &ucsi_ops;
 
@@ -1154,13 +1162,6 @@
 		ucsi_port_psy_changed(con);
 	}
 
-	con->usb_role_sw = fwnode_usb_role_switch_get(cap->fwnode);
-	if (IS_ERR(con->usb_role_sw)) {
-		dev_err(ucsi->dev, "con%d: failed to get usb role switch\n",
-			con->num);
-		con->usb_role_sw = NULL;
-	}
-
 	/* Only notify USB controller if partner supports USB data */
 	if (!(UCSI_CONSTAT_PARTNER_FLAGS(con->status.flags) & UCSI_CONSTAT_PARTNER_FLAG_USB))
 		u_role = USB_ROLE_NONE;
@@ -1274,12 +1275,21 @@
 
 static void ucsi_init_work(struct work_struct *work)
 {
-	struct ucsi *ucsi = container_of(work, struct ucsi, work);
+	struct ucsi_android *aucsi = container_of(work,
+				    struct ucsi_android, work.work);
 	int ret;
 
-	ret = ucsi_init(ucsi);
+	ret = ucsi_init(&aucsi->ucsi);
 	if (ret)
-		dev_err(ucsi->dev, "PPM init failed (%d)\n", ret);
+		dev_err(aucsi->ucsi.dev, "PPM init failed (%d)\n", ret);
+
+	if (ret == -EPROBE_DEFER) {
+		if (aucsi->work_count++ > UCSI_ROLE_SWITCH_WAIT_COUNT)
+			return;
+
+		queue_delayed_work(system_long_wq, &aucsi->work,
+				   UCSI_ROLE_SWITCH_INTERVAL);
+	}
 }
 
 /**
@@ -1311,15 +1321,17 @@
 struct ucsi *ucsi_create(struct device *dev, const struct ucsi_operations *ops)
 {
 	struct ucsi *ucsi;
+	struct ucsi_android *aucsi;
 
 	if (!ops || !ops->read || !ops->sync_write || !ops->async_write)
 		return ERR_PTR(-EINVAL);
 
-	ucsi = kzalloc(sizeof(*ucsi), GFP_KERNEL);
-	if (!ucsi)
+	aucsi = kzalloc(sizeof(*aucsi), GFP_KERNEL);
+	if (!aucsi)
 		return ERR_PTR(-ENOMEM);
 
-	INIT_WORK(&ucsi->work, ucsi_init_work);
+	ucsi = &aucsi->ucsi;
+	INIT_DELAYED_WORK(&aucsi->work, ucsi_init_work);
 	mutex_init(&ucsi->ppm_lock);
 	ucsi->dev = dev;
 	ucsi->ops = ops;
@@ -1334,7 +1346,9 @@
  */
 void ucsi_destroy(struct ucsi *ucsi)
 {
-	kfree(ucsi);
+	struct ucsi_android *aucsi = container_of(ucsi,
+				    struct ucsi_android, ucsi);
+	kfree(aucsi);
 }
 EXPORT_SYMBOL_GPL(ucsi_destroy);
 
@@ -1344,6 +1358,8 @@
  */
 int ucsi_register(struct ucsi *ucsi)
 {
+	struct ucsi_android *aucsi = container_of(ucsi,
+				    struct ucsi_android, ucsi);
 	int ret;
 
 	ret = ucsi->ops->read(ucsi, UCSI_VERSION, &ucsi->version,
@@ -1354,7 +1370,7 @@
 	if (!ucsi->version)
 		return -ENODEV;
 
-	queue_work(system_long_wq, &ucsi->work);
+	queue_delayed_work(system_long_wq, &aucsi->work, 0);
 
 	return 0;
 }
@@ -1368,11 +1384,13 @@
  */
 void ucsi_unregister(struct ucsi *ucsi)
 {
+	struct ucsi_android *aucsi = container_of(ucsi,
+				    struct ucsi_android, ucsi);
 	u64 cmd = UCSI_SET_NOTIFICATION_ENABLE;
 	int i;
 
 	/* Make sure that we are not in the middle of driver initialization */
-	cancel_work_sync(&ucsi->work);
+	cancel_delayed_work_sync(&aucsi->work);
 
 	/* Disable notifications */
 	ucsi->ops->async_write(ucsi, UCSI_CONTROL, &cmd, sizeof(cmd));
diff --git a/drivers/usb/typec/ucsi/ucsi.h b/drivers/usb/typec/ucsi/ucsi.h
index cee6667..192728d 100644
--- a/drivers/usb/typec/ucsi/ucsi.h
+++ b/drivers/usb/typec/ucsi/ucsi.h
@@ -288,6 +288,9 @@
 	struct ucsi_connector *connector;
 
 	struct work_struct work;
+#define UCSI_ROLE_SWITCH_RETRY_PER_HZ	10
+#define UCSI_ROLE_SWITCH_INTERVAL	(HZ / UCSI_ROLE_SWITCH_RETRY_PER_HZ)
+#define UCSI_ROLE_SWITCH_WAIT_COUNT	(10 * UCSI_ROLE_SWITCH_RETRY_PER_HZ)
 
 	/* PPM Communication lock */
 	struct mutex ppm_lock;
@@ -303,6 +306,25 @@
 #define EVENT_PROCESSING	3
 };
 
+/**
+ * struct ucsi_android - contains parameters without modifying the format
+ * of ucsi struct.
+ * @ucsi: contains the ucsi reference.
+ * @work: work structure for queuing ucsi_init_work.
+ * @work_count: to track the wait count(MAX= UCSI_ROLE_SWITCH_WAIT_COUNT).
+ *
+ * Required to address Bug: 260537721
+ * If the role switch module probes late the
+ * fwnode_usb_role_switch_get() will fail with -EPROBE_DEFER.
+ * To recover from this, restart the ucsi_init_work
+ * to find the fwnode again using a delayed workqueue.
+ */
+struct ucsi_android {
+	struct ucsi ucsi;
+	struct delayed_work work;
+	int work_count;
+};
+
 #define UCSI_MAX_SVID		5
 #define UCSI_MAX_ALTMODES	(UCSI_MAX_SVID * 6)
 
diff --git a/drivers/usb/usbip/stub_main.c b/drivers/usb/usbip/stub_main.c
index 77a5b3f..e8c3131 100644
--- a/drivers/usb/usbip/stub_main.c
+++ b/drivers/usb/usbip/stub_main.c
@@ -100,7 +100,7 @@
 	for (i = 0; i < MAX_BUSID; i++) {
 		spin_lock(&busid_table[i].busid_lock);
 		if (!busid_table[i].name[0]) {
-			strlcpy(busid_table[i].name, busid, BUSID_SIZE);
+			strscpy(busid_table[i].name, busid, BUSID_SIZE);
 			if ((busid_table[i].status != STUB_BUSID_ALLOC) &&
 			    (busid_table[i].status != STUB_BUSID_REMOV))
 				busid_table[i].status = STUB_BUSID_ADDED;
diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c
index 74ac0c2..47e7fec 100644
--- a/drivers/vhost/vsock.c
+++ b/drivers/vhost/vsock.c
@@ -726,6 +726,10 @@
 	 * executing.
 	 */
 
+	/* Only handle our own sockets */
+	if (vsk->transport != &vhost_transport.transport)
+		return;
+
 	/* If the peer is still valid, no need to reset connection */
 	if (vhost_vsock_get(vsk->remote_addr.svm_cid))
 		return;
@@ -757,8 +761,7 @@
 
 	/* Iterating over all connections for all CIDs to find orphans is
 	 * inefficient.  Room for improvement here. */
-	vsock_for_each_connected_socket(&vhost_transport.transport,
-					vhost_vsock_reset_orphans);
+	vsock_for_each_connected_socket(vhost_vsock_reset_orphans);
 
 	/* Don't check the owner, because we are in the release path, so we
 	 * need to stop the vsock device in any case.
diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
index 1b288a6..7bd849b 100644
--- a/drivers/video/fbdev/core/fbmem.c
+++ b/drivers/video/fbdev/core/fbmem.c
@@ -1596,14 +1596,7 @@
 			 * If it's not a platform device, at least print a warning. A
 			 * fix would add code to remove the device from the system.
 			 */
-			if (!device) {
-				/* TODO: Represent each OF framebuffer as its own
-				 * device in the device hierarchy. For now, offb
-				 * doesn't have such a device, so unregister the
-				 * framebuffer as before without warning.
-				 */
-				do_unregister_framebuffer(registered_fb[i]);
-			} else if (dev_is_platform(device)) {
+			if (dev_is_platform(device)) {
 				registered_fb[i]->forced_out = true;
 				platform_device_unregister(to_platform_device(device));
 			} else {
diff --git a/drivers/virtio/Kconfig b/drivers/virtio/Kconfig
index ce1b3f6..d9b8c06 100644
--- a/drivers/virtio/Kconfig
+++ b/drivers/virtio/Kconfig
@@ -142,7 +142,7 @@
 	 If unsure, say 'N'.
 
 config VIRTIO_DMA_SHARED_BUFFER
-	tristate
+	tristate "Virtio DMA shared buffer support"
 	depends on DMA_SHARED_BUFFER
 	help
 	 This option adds a flavor of dma buffers that are backed by
diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c
index c2b733e..c7dc7a9 100644
--- a/drivers/virtio/virtio.c
+++ b/drivers/virtio/virtio.c
@@ -504,8 +504,9 @@
 			goto err;
 	}
 
-	/* Finally, tell the device we're all set */
-	virtio_add_status(dev, VIRTIO_CONFIG_S_DRIVER_OK);
+	/* If restore didn't do it, mark device DRIVER_OK ourselves. */
+	if (!(dev->config->get_status(dev) & VIRTIO_CONFIG_S_DRIVER_OK))
+		virtio_device_ready(dev);
 
 	virtio_config_enable(dev);
 
diff --git a/drivers/virtio/virtio_dma_buf.c b/drivers/virtio/virtio_dma_buf.c
index 5127a2f..f94ab97 100644
--- a/drivers/virtio/virtio_dma_buf.c
+++ b/drivers/virtio/virtio_dma_buf.c
@@ -25,11 +25,14 @@
 			     const struct virtio_dma_buf_ops, ops);
 
 	if (!exp_info->ops ||
-	    exp_info->ops->attach != &virtio_dma_buf_attach ||
 	    !virtio_ops->get_uuid) {
 		return ERR_PTR(-EINVAL);
 	}
 
+	if (!(IS_ENABLED(CONFIG_CFI_CLANG) && IS_ENABLED(CONFIG_MODULES)) &&
+	    exp_info->ops->attach != &virtio_dma_buf_attach)
+		return ERR_PTR(-EINVAL);
+
 	return dma_buf_export(exp_info);
 }
 EXPORT_SYMBOL(virtio_dma_buf_export);
@@ -60,6 +63,9 @@
  */
 bool is_virtio_dma_buf(struct dma_buf *dma_buf)
 {
+	if (IS_ENABLED(CONFIG_CFI_CLANG) && IS_ENABLED(CONFIG_MODULES))
+		return true;
+
 	return dma_buf->ops->attach == &virtio_dma_buf_attach;
 }
 EXPORT_SYMBOL(is_virtio_dma_buf);
diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c
index f4d43d6..cd4c57d 100644
--- a/drivers/virtio/virtio_mmio.c
+++ b/drivers/virtio/virtio_mmio.c
@@ -475,6 +475,9 @@
 	if (err)
 		return err;
 
+	if (of_property_read_bool(vm_dev->pdev->dev.of_node, "wakeup-source"))
+		enable_irq_wake(irq);
+
 	for (i = 0; i < nvqs; ++i) {
 		if (!names[i]) {
 			vqs[i] = NULL;
diff --git a/drivers/virtio/virtio_pci_modern.c b/drivers/virtio/virtio_pci_modern.c
index a274261..0a08384 100644
--- a/drivers/virtio/virtio_pci_modern.c
+++ b/drivers/virtio/virtio_pci_modern.c
@@ -293,7 +293,7 @@
 
 	for (pos = pci_find_capability(dev, PCI_CAP_ID_VNDR); pos > 0;
 	     pos = pci_find_next_capability(dev, pos, PCI_CAP_ID_VNDR)) {
-		u8 type, cap_len, id;
+		u8 type, cap_len, id, res_bar;
 		u32 tmp32;
 		u64 res_offset, res_length;
 
@@ -315,9 +315,14 @@
 		if (id != required_id)
 			continue;
 
-		/* Type, and ID match, looks good */
 		pci_read_config_byte(dev, pos + offsetof(struct virtio_pci_cap,
-							 bar), bar);
+							 bar), &res_bar);
+		if (res_bar >= PCI_STD_NUM_BARS)
+			continue;
+
+		/* Type and ID match, and the BAR value isn't reserved.
+		 * Looks good.
+		 */
 
 		/* Read the lower 32bit of length and offset */
 		pci_read_config_dword(dev, pos + offsetof(struct virtio_pci_cap,
@@ -337,6 +342,7 @@
 						     length_hi), &tmp32);
 		res_length |= ((u64)tmp32) << 32;
 
+		*bar = res_bar;
 		*offset = res_offset;
 		*len = res_length;
 
diff --git a/drivers/virtio/virtio_pci_modern_dev.c b/drivers/virtio/virtio_pci_modern_dev.c
index 9ab66e4..d2b1acb 100644
--- a/drivers/virtio/virtio_pci_modern_dev.c
+++ b/drivers/virtio/virtio_pci_modern_dev.c
@@ -35,6 +35,13 @@
 	pci_read_config_dword(dev, off + offsetof(struct virtio_pci_cap, length),
 			      &length);
 
+	/* Check if the BAR may have changed since we requested the region. */
+	if (bar >= PCI_STD_NUM_BARS || !(mdev->modern_bars & (1 << bar))) {
+		dev_err(&dev->dev,
+			"virtio_pci: bar unexpectedly changed to %u\n", bar);
+		return NULL;
+	}
+
 	if (length <= start) {
 		dev_err(&dev->dev,
 			"virtio_pci: bad capability len %u (>%u expected)\n",
@@ -120,7 +127,7 @@
 				     &bar);
 
 		/* Ignore structures with reserved BAR values */
-		if (bar > 0x5)
+		if (bar >= PCI_STD_NUM_BARS)
 			continue;
 
 		if (type == cfg_type) {
diff --git a/fs/9p/v9fs.c b/fs/9p/v9fs.c
index 1410673..4fb76c3 100644
--- a/fs/9p/v9fs.c
+++ b/fs/9p/v9fs.c
@@ -740,3 +740,4 @@
 MODULE_AUTHOR("Eric Van Hensbergen <ericvh@gmail.com>");
 MODULE_AUTHOR("Ron Minnich <rminnich@lanl.gov>");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/Kconfig b/fs/Kconfig
index a6313a9..fd3cd36 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -127,6 +127,7 @@
 source "fs/autofs/Kconfig"
 source "fs/fuse/Kconfig"
 source "fs/overlayfs/Kconfig"
+source "fs/incfs/Kconfig"
 
 menu "Caches"
 
diff --git a/fs/Kconfig.binfmt b/fs/Kconfig.binfmt
index 4d5ae61..68e5862 100644
--- a/fs/Kconfig.binfmt
+++ b/fs/Kconfig.binfmt
@@ -36,6 +36,9 @@
 config ARCH_BINFMT_ELF_STATE
 	bool
 
+config ARCH_BINFMT_ELF_EXTRA_PHDRS
+	bool
+
 config ARCH_HAVE_ELF_PROT
 	bool
 
diff --git a/fs/Makefile b/fs/Makefile
index d504be6..e4adb988 100644
--- a/fs/Makefile
+++ b/fs/Makefile
@@ -6,6 +6,8 @@
 # Rewritten to use lists instead of if-statements.
 # 
 
+subdir-ccflags-y += -DANDROID_GKI_VFS_EXPORT_ONLY=VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver
+
 obj-y :=	open.o read_write.o file_table.o super.o \
 		char_dev.o stat.o exec.o pipe.o namei.o fcntl.o \
 		ioctl.o readdir.o select.o dcache.o inode.o \
@@ -113,6 +115,7 @@
 obj-$(CONFIG_FUSE_FS)		+= fuse/
 obj-$(CONFIG_OVERLAY_FS)	+= overlayfs/
 obj-$(CONFIG_ORANGEFS_FS)       += orangefs/
+obj-$(CONFIG_INCREMENTAL_FS)	+= incfs/
 obj-$(CONFIG_UDF_FS)		+= udf/
 obj-$(CONFIG_SUN_OPENPROMFS)	+= openpromfs/
 obj-$(CONFIG_OMFS_FS)		+= omfs/
diff --git a/fs/adfs/super.c b/fs/adfs/super.c
index bdbd26e..57044e5 100644
--- a/fs/adfs/super.c
+++ b/fs/adfs/super.c
@@ -492,3 +492,4 @@
 module_init(init_adfs_fs)
 module_exit(exit_adfs_fs)
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/affs/super.c b/fs/affs/super.c
index c6c2a51..2d2797e 100644
--- a/fs/affs/super.c
+++ b/fs/affs/super.c
@@ -676,6 +676,7 @@
 
 MODULE_DESCRIPTION("Amiga filesystem support for Linux");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 
 module_init(init_affs_fs)
 module_exit(exit_affs_fs)
diff --git a/fs/afs/main.c b/fs/afs/main.c
index 179004b..c6bd956 100644
--- a/fs/afs/main.c
+++ b/fs/afs/main.c
@@ -18,6 +18,7 @@
 MODULE_DESCRIPTION("AFS Client File System");
 MODULE_AUTHOR("Red Hat, Inc.");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 
 unsigned afs_debug;
 module_param_named(debug, afs_debug, uint, S_IWUSR | S_IRUGO);
diff --git a/fs/attr.c b/fs/attr.c
index 28e953e..593faf3 100644
--- a/fs/attr.c
+++ b/fs/attr.c
@@ -228,7 +228,7 @@
 
 	return 0;
 }
-EXPORT_SYMBOL(setattr_prepare);
+EXPORT_SYMBOL_NS(setattr_prepare, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * inode_newsize_ok - may this inode be truncated to a given size
@@ -274,7 +274,7 @@
 out_big:
 	return -EFBIG;
 }
-EXPORT_SYMBOL(inode_newsize_ok);
+EXPORT_SYMBOL_NS(inode_newsize_ok, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * setattr_copy - copy simple metadata updates into the generic inode
@@ -498,4 +498,4 @@
 
 	return error;
 }
-EXPORT_SYMBOL(notify_change);
+EXPORT_SYMBOL_NS(notify_change, ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/autofs/init.c b/fs/autofs/init.c
index d3f55e8..ba08261 100644
--- a/fs/autofs/init.c
+++ b/fs/autofs/init.c
@@ -44,3 +44,4 @@
 module_init(init_autofs_fs)
 module_exit(exit_autofs_fs)
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/bad_inode.c b/fs/bad_inode.c
index 12b8fdc..649e28f 100644
--- a/fs/bad_inode.c
+++ b/fs/bad_inode.c
@@ -215,7 +215,7 @@
 	inode->i_opflags &= ~IOP_XATTR;
 	inode->i_fop = &bad_file_ops;	
 }
-EXPORT_SYMBOL(make_bad_inode);
+EXPORT_SYMBOL_NS(make_bad_inode, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * This tests whether an inode has been flagged as bad. The test uses
@@ -235,7 +235,7 @@
 	return (inode->i_op == &bad_inode_ops);	
 }
 
-EXPORT_SYMBOL(is_bad_inode);
+EXPORT_SYMBOL_NS(is_bad_inode, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * iget_failed - Mark an under-construction inode as dead and release it
diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c
index c1ba13d..abb8f6b 100644
--- a/fs/befs/linuxvfs.c
+++ b/fs/befs/linuxvfs.c
@@ -34,6 +34,7 @@
 MODULE_DESCRIPTION("BeOS File System (BeFS) driver");
 MODULE_AUTHOR("Will Dyson");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /* The units the vfs expects inode->i_blocks to be in */
 #define VFS_BLOCK_SIZE 512
diff --git a/fs/bfs/inode.c b/fs/bfs/inode.c
index fd691e4..293223c 100644
--- a/fs/bfs/inode.c
+++ b/fs/bfs/inode.c
@@ -22,6 +22,7 @@
 MODULE_AUTHOR("Tigran Aivazian <aivazian.tigran@gmail.com>");
 MODULE_DESCRIPTION("SCO UnixWare BFS filesystem for Linux");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 
 #undef DEBUG
 
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
index 30379c3..ebc4590 100644
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -2182,7 +2182,7 @@
 	 * The number of segs are recored into ELF header as 16bit value.
 	 * Please check DEFAULT_MAX_MAP_COUNT definition when you modify here.
 	 */
-	segs = cprm->vma_count + elf_core_extra_phdrs();
+	segs = cprm->vma_count + elf_core_extra_phdrs(cprm);
 
 	/* for notes section */
 	segs++;
@@ -2222,7 +2222,7 @@
 	dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE);
 
 	offset += cprm->vma_data_size;
-	offset += elf_core_extra_data_size();
+	offset += elf_core_extra_data_size(cprm);
 	e_shoff = offset;
 
 	if (e_phnum == PN_XNUM) {
diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
index c316931..766e5e2 100644
--- a/fs/binfmt_elf_fdpic.c
+++ b/fs/binfmt_elf_fdpic.c
@@ -1509,7 +1509,7 @@
 	tmp->next = thread_list;
 	thread_list = tmp;
 
-	segs = cprm->vma_count + elf_core_extra_phdrs();
+	segs = cprm->vma_count + elf_core_extra_phdrs(cprm);
 
 	/* for notes section */
 	segs++;
@@ -1555,7 +1555,7 @@
 	dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE);
 
 	offset += cprm->vma_data_size;
-	offset += elf_core_extra_data_size();
+	offset += elf_core_extra_data_size(cprm);
 	e_shoff = offset;
 
 	if (e_phnum == PN_XNUM) {
diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c
index bb202ad..7c01973 100644
--- a/fs/binfmt_misc.c
+++ b/fs/binfmt_misc.c
@@ -834,3 +834,4 @@
 core_initcall(init_misc_binfmt);
 module_exit(exit_misc_binfmt);
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index eae622e..32cb24c 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -2412,6 +2412,7 @@
 	.fault		= filemap_fault,
 	.map_pages	= filemap_map_pages,
 	.page_mkwrite	= btrfs_page_mkwrite,
+	.speculative	= true,
 };
 
 static int btrfs_file_mmap(struct file	*filp, struct vm_area_struct *vma)
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index ea23b83..42725e6 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -2787,6 +2787,7 @@
 module_exit(exit_btrfs_fs)
 
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 MODULE_SOFTDEP("pre: crc32c");
 MODULE_SOFTDEP("pre: xxhash64");
 MODULE_SOFTDEP("pre: sha256");
diff --git a/fs/buffer.c b/fs/buffer.c
index 1960e2d..6f53160 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -173,7 +173,7 @@
 	unlock_buffer(bh);
 	put_bh(bh);
 }
-EXPORT_SYMBOL(end_buffer_write_sync);
+EXPORT_SYMBOL_NS(end_buffer_write_sync, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * Various filesystems appear to want __find_get_block to be non-blocking.
@@ -419,7 +419,7 @@
 {
 	mark_buffer_async_write_endio(bh, end_buffer_async_write);
 }
-EXPORT_SYMBOL(mark_buffer_async_write);
+EXPORT_SYMBOL_NS(mark_buffer_async_write, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 
 /*
@@ -649,7 +649,7 @@
 
 	return newly_dirty;
 }
-EXPORT_SYMBOL(__set_page_dirty_buffers);
+EXPORT_SYMBOL_NS(__set_page_dirty_buffers, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * Write out and wait upon a list of buffers.
@@ -1112,7 +1112,7 @@
 			__mark_inode_dirty(mapping->host, I_DIRTY_PAGES);
 	}
 }
-EXPORT_SYMBOL(mark_buffer_dirty);
+EXPORT_SYMBOL_NS(mark_buffer_dirty, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 void mark_buffer_write_io_error(struct buffer_head *bh)
 {
@@ -1130,7 +1130,7 @@
 		errseq_set(&sb->s_wb_err, -EIO);
 	rcu_read_unlock();
 }
-EXPORT_SYMBOL(mark_buffer_write_io_error);
+EXPORT_SYMBOL_NS(mark_buffer_write_io_error, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * Decrement a buffer_head's reference count.  If all buffers against a page
@@ -1147,7 +1147,7 @@
 	}
 	WARN(1, KERN_ERR "VFS: brelse: Trying to free free buffer\n");
 }
-EXPORT_SYMBOL(__brelse);
+EXPORT_SYMBOL_NS(__brelse, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * bforget() is like brelse(), except it discards any
@@ -1166,7 +1166,7 @@
 	}
 	__brelse(bh);
 }
-EXPORT_SYMBOL(__bforget);
+EXPORT_SYMBOL_NS(__bforget, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 static struct buffer_head *__bread_slow(struct buffer_head *bh)
 {
@@ -1349,7 +1349,7 @@
 		brelse(bh);
 	}
 }
-EXPORT_SYMBOL(__breadahead);
+EXPORT_SYMBOL_NS(__breadahead, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 void __breadahead_gfp(struct block_device *bdev, sector_t block, unsigned size,
 		      gfp_t gfp)
@@ -1384,7 +1384,7 @@
 		bh = __bread_slow(bh);
 	return bh;
 }
-EXPORT_SYMBOL(__bread_gfp);
+EXPORT_SYMBOL_NS(__bread_gfp, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 static void __invalidate_bh_lrus(struct bh_lru *b)
 {
@@ -1546,7 +1546,7 @@
 out:
 	return;
 }
-EXPORT_SYMBOL(block_invalidatepage);
+EXPORT_SYMBOL_NS(block_invalidatepage, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 
 /*
@@ -1582,7 +1582,7 @@
 	attach_page_private(page, head);
 	spin_unlock(&page->mapping->private_lock);
 }
-EXPORT_SYMBOL(create_empty_buffers);
+EXPORT_SYMBOL_NS(create_empty_buffers, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * clean_bdev_aliases: clean a range of buffers in block device
@@ -1656,7 +1656,7 @@
 			break;
 	}
 }
-EXPORT_SYMBOL(clean_bdev_aliases);
+EXPORT_SYMBOL_NS(clean_bdev_aliases, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * Size is a power-of-two in the range 512..PAGE_SIZE,
@@ -1914,7 +1914,7 @@
 		bh = bh->b_this_page;
 	} while (bh != head);
 }
-EXPORT_SYMBOL(page_zero_new_buffers);
+EXPORT_SYMBOL_NS(page_zero_new_buffers, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 static void
 iomap_to_bh(struct inode *inode, sector_t block, struct buffer_head *bh,
@@ -2204,7 +2204,7 @@
 		mark_inode_dirty(inode);
 	return copied;
 }
-EXPORT_SYMBOL(generic_write_end);
+EXPORT_SYMBOL_NS(generic_write_end, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * block_is_partially_uptodate checks whether buffers within a page are
@@ -2249,7 +2249,7 @@
 
 	return ret;
 }
-EXPORT_SYMBOL(block_is_partially_uptodate);
+EXPORT_SYMBOL_NS(block_is_partially_uptodate, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * Generic "read page" function for block devices that have the normal
@@ -2370,7 +2370,7 @@
 out:
 	return err;
 }
-EXPORT_SYMBOL(generic_cont_expand_simple);
+EXPORT_SYMBOL_NS(generic_cont_expand_simple, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 static int cont_expand_zero(struct file *file, struct address_space *mapping,
 			    loff_t pos, loff_t *bytes)
@@ -2995,7 +2995,7 @@
 	get_block(inode, block, &tmp, 0);
 	return tmp.b_blocknr;
 }
-EXPORT_SYMBOL(generic_block_bmap);
+EXPORT_SYMBOL_NS(generic_block_bmap, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 static void end_bio_bh_io_sync(struct bio *bio)
 {
@@ -3116,7 +3116,7 @@
 		unlock_buffer(bh);
 	}
 }
-EXPORT_SYMBOL(ll_rw_block);
+EXPORT_SYMBOL_NS(ll_rw_block, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 void write_dirty_buffer(struct buffer_head *bh, int op_flags)
 {
@@ -3163,13 +3163,13 @@
 	}
 	return ret;
 }
-EXPORT_SYMBOL(__sync_dirty_buffer);
+EXPORT_SYMBOL_NS(__sync_dirty_buffer, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 int sync_dirty_buffer(struct buffer_head *bh)
 {
 	return __sync_dirty_buffer(bh, REQ_SYNC);
 }
-EXPORT_SYMBOL(sync_dirty_buffer);
+EXPORT_SYMBOL_NS(sync_dirty_buffer, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * try_to_free_buffers() checks if all the buffers on this particular page
diff --git a/fs/cachefiles/main.c b/fs/cachefiles/main.c
index 9c8d34c..8c454fa 100644
--- a/fs/cachefiles/main.c
+++ b/fs/cachefiles/main.c
@@ -28,6 +28,7 @@
 MODULE_DESCRIPTION("Mounted-filesystem based cache");
 MODULE_AUTHOR("Red Hat, Inc.");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 
 struct kmem_cache *cachefiles_object_jar;
 
diff --git a/fs/ceph/super.c b/fs/ceph/super.c
index 1723ec2..e1624d5 100644
--- a/fs/ceph/super.c
+++ b/fs/ceph/super.c
@@ -1351,3 +1351,4 @@
 MODULE_AUTHOR("Patience Warnick <patience@newdream.net>");
 MODULE_DESCRIPTION("Ceph filesystem for Linux");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/ceph/xattr.c b/fs/ceph/xattr.c
index db288b4..e41b22b 100644
--- a/fs/ceph/xattr.c
+++ b/fs/ceph/xattr.c
@@ -1319,7 +1319,7 @@
 	int err;
 
 	err = security_dentry_init_security(dentry, mode, &dentry->d_name,
-					    &as_ctx->sec_ctx,
+					    &name, &as_ctx->sec_ctx,
 					    &as_ctx->sec_ctxlen);
 	if (err < 0) {
 		WARN_ON_ONCE(err != -EOPNOTSUPP);
@@ -1343,7 +1343,6 @@
 	 * It only supports single security module and only selinux has
 	 * dentry_init_security hook.
 	 */
-	name = XATTR_NAME_SELINUX;
 	name_len = strlen(name);
 	err = ceph_pagelist_reserve(pagelist,
 				    4 * 2 + name_len + as_ctx->sec_ctxlen);
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index b5ae209..fabe560 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -1772,6 +1772,7 @@
 
 MODULE_AUTHOR("Steve French");
 MODULE_LICENSE("GPL");	/* combination of LGPL + GPL source behaves as GPL */
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 MODULE_DESCRIPTION
 	("VFS to access SMB3 servers e.g. Samba, Macs, Azure and Windows (and "
 	"also older servers complying with the SNIA CIFS Specification)");
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index 9e8a69f..a7ba290 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -4231,6 +4231,7 @@
 	.fault = filemap_fault,
 	.map_pages = filemap_map_pages,
 	.page_mkwrite = cifs_page_mkwrite,
+	.speculative = true,
 };
 
 int cifs_file_strict_mmap(struct file *file, struct vm_area_struct *vma)
diff --git a/fs/coda/psdev.c b/fs/coda/psdev.c
index 240669f..897c7cb 100644
--- a/fs/coda/psdev.c
+++ b/fs/coda/psdev.c
@@ -388,6 +388,7 @@
 MODULE_DESCRIPTION("Coda Distributed File System VFS interface");
 MODULE_ALIAS_CHARDEV_MAJOR(CODA_PSDEV_MAJOR);
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 MODULE_VERSION("7.0");
 
 static int __init init_coda(void)
diff --git a/fs/configfs/mount.c b/fs/configfs/mount.c
index c2d82006..107c9fb 100644
--- a/fs/configfs/mount.c
+++ b/fs/configfs/mount.c
@@ -173,6 +173,7 @@
 MODULE_LICENSE("GPL");
 MODULE_VERSION("0.0.2");
 MODULE_DESCRIPTION("Simple RAM filesystem for user driven kernel subsystem configuration.");
+MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
 
 core_initcall(configfs_init);
 module_exit(configfs_exit);
diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c
index 2be6526..bc2e0d9 100644
--- a/fs/cramfs/inode.c
+++ b/fs/cramfs/inode.c
@@ -1008,3 +1008,4 @@
 module_init(init_cramfs_fs)
 module_exit(exit_cramfs_fs)
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/crypto/Makefile b/fs/crypto/Makefile
index 652c718..d390775 100644
--- a/fs/crypto/Makefile
+++ b/fs/crypto/Makefile
@@ -1,6 +1,8 @@
 # SPDX-License-Identifier: GPL-2.0-only
 obj-$(CONFIG_FS_ENCRYPTION)	+= fscrypto.o
 
+ccflags-y += -DDEFAULT_SYMBOL_NAMESPACE=ANDROID_GKI_VFS_EXPORT_ONLY
+
 fscrypto-y := crypto.o \
 	      fname.o \
 	      hkdf.o \
diff --git a/fs/crypto/bio.c b/fs/crypto/bio.c
index 68a2de6..bfc2a5b 100644
--- a/fs/crypto/bio.c
+++ b/fs/crypto/bio.c
@@ -1,23 +1,10 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * This contains encryption functions for per-file encryption.
+ * Utility functions for file contents encryption/decryption on
+ * block device-based filesystems.
  *
  * Copyright (C) 2015, Google, Inc.
  * Copyright (C) 2015, Motorola Mobility
- *
- * Written by Michael Halcrow, 2014.
- *
- * Filename encryption additions
- *	Uday Savagaonkar, 2014
- * Encryption policy handling additions
- *	Ildar Muslukhov, 2014
- * Add fscrypt_pullback_bio_page()
- *	Jaegeuk Kim, 2015.
- *
- * This has not yet undergone a rigorous security audit.
- *
- * The usage of AES-XTS should conform to recommendations in NIST
- * Special Publication 800-38E and IEEE P1619/D16.
  */
 
 #include <linux/pagemap.h>
@@ -26,6 +13,21 @@
 #include <linux/namei.h>
 #include "fscrypt_private.h"
 
+/**
+ * fscrypt_decrypt_bio() - decrypt the contents of a bio
+ * @bio: the bio to decrypt
+ *
+ * Decrypt the contents of a "read" bio following successful completion of the
+ * underlying disk read.  The bio must be reading a whole number of blocks of an
+ * encrypted file directly into the page cache.  If the bio is reading the
+ * ciphertext into bounce pages instead of the page cache (for example, because
+ * the file is also compressed, so decompression is required after decryption),
+ * then this function isn't applicable.  This function may sleep, so it must be
+ * called from a workqueue rather than from the bio's bi_end_io callback.
+ *
+ * This function sets PG_error on any pages that contain any blocks that failed
+ * to be decrypted.  The filesystem must not mark such pages uptodate.
+ */
 void fscrypt_decrypt_bio(struct bio *bio)
 {
 	struct bio_vec *bv;
diff --git a/fs/crypto/crypto.c b/fs/crypto/crypto.c
index 4ef3f71..4fcca79f 100644
--- a/fs/crypto/crypto.c
+++ b/fs/crypto/crypto.c
@@ -69,6 +69,14 @@
 }
 EXPORT_SYMBOL(fscrypt_free_bounce_page);
 
+/*
+ * Generate the IV for the given logical block number within the given file.
+ * For filenames encryption, lblk_num == 0.
+ *
+ * Keep this in sync with fscrypt_limit_io_blocks().  fscrypt_limit_io_blocks()
+ * needs to know about any IV generation methods where the low bits of IV don't
+ * simply contain the lblk_num (e.g., IV_INO_LBLK_32).
+ */
 void fscrypt_generate_iv(union fscrypt_iv *iv, u64 lblk_num,
 			 const struct fscrypt_info *ci)
 {
diff --git a/fs/crypto/fname.c b/fs/crypto/fname.c
index eb538c2..a9be4bc 100644
--- a/fs/crypto/fname.c
+++ b/fs/crypto/fname.c
@@ -429,8 +429,7 @@
 
 	if (fscrypt_has_encryption_key(dir)) {
 		if (!fscrypt_fname_encrypted_size(&dir->i_crypt_info->ci_policy,
-						  iname->len,
-						  dir->i_sb->s_cop->max_namelen,
+						  iname->len, NAME_MAX,
 						  &fname->crypto_buf.len))
 			return -ENAMETOOLONG;
 		fname->crypto_buf.name = kmalloc(fname->crypto_buf.len,
diff --git a/fs/crypto/fscrypt_private.h b/fs/crypto/fscrypt_private.h
index 373c434..659366e 100644
--- a/fs/crypto/fscrypt_private.h
+++ b/fs/crypto/fscrypt_private.h
@@ -20,13 +20,20 @@
 
 #define FSCRYPT_FILE_NONCE_SIZE	16
 
+/*
+ * Minimum size of an fscrypt master key.  Note: a longer key will be required
+ * if ciphers with a 256-bit security strength are used.  This is just the
+ * absolute minimum, which applies when only 128-bit encryption is used.
+ */
 #define FSCRYPT_MIN_KEY_SIZE	16
 
+#define FSCRYPT_MAX_HW_WRAPPED_KEY_SIZE	128
+
 #define FSCRYPT_CONTEXT_V1	1
 #define FSCRYPT_CONTEXT_V2	2
 
 /* Keep this in sync with include/uapi/linux/fscrypt.h */
-#define FSCRYPT_MODE_MAX	FSCRYPT_MODE_ADIANTUM
+#define FSCRYPT_MODE_MAX	FSCRYPT_MODE_AES_256_HCTR2
 
 struct fscrypt_context_v1 {
 	u8 version; /* FSCRYPT_CONTEXT_V1 */
@@ -220,7 +227,16 @@
 	 * will be NULL if the master key was found in a process-subscribed
 	 * keyring rather than in the filesystem-level keyring.
 	 */
+#ifdef __GENKSYMS__
+	/*
+	 * Android ABI CRC preservation due to commit 391cceee6d43 ("fscrypt:
+	 * stop using keyrings subsystem for fscrypt_master_key") changing this
+	 * type.  Size is the same, this is a private field.
+	 */
+	struct key *ci_master_key;
+#else
 	struct fscrypt_master_key *ci_master_key;
+#endif
 
 	/*
 	 * Link in list of inodes that were unlocked with the master key.
@@ -330,7 +346,8 @@
 
 /* inline_crypt.c */
 #ifdef CONFIG_FS_ENCRYPTION_INLINE_CRYPT
-int fscrypt_select_encryption_impl(struct fscrypt_info *ci);
+int fscrypt_select_encryption_impl(struct fscrypt_info *ci,
+				   bool is_hw_wrapped_key);
 
 static inline bool
 fscrypt_using_inline_encryption(const struct fscrypt_info *ci)
@@ -340,10 +357,18 @@
 
 int fscrypt_prepare_inline_crypt_key(struct fscrypt_prepared_key *prep_key,
 				     const u8 *raw_key,
+				     unsigned int raw_key_size,
+				     bool is_hw_wrapped,
 				     const struct fscrypt_info *ci);
 
 void fscrypt_destroy_inline_crypt_key(struct fscrypt_prepared_key *prep_key);
 
+extern int fscrypt_derive_raw_secret(struct super_block *sb,
+				     const u8 *wrapped_key,
+				     unsigned int wrapped_key_size,
+				     u8 *raw_secret,
+				     unsigned int raw_secret_size);
+
 /*
  * Check whether the crypto transform or blk-crypto key has been allocated in
  * @prep_key, depending on which encryption implementation the file will use.
@@ -367,7 +392,8 @@
 
 #else /* CONFIG_FS_ENCRYPTION_INLINE_CRYPT */
 
-static inline int fscrypt_select_encryption_impl(struct fscrypt_info *ci)
+static inline int fscrypt_select_encryption_impl(struct fscrypt_info *ci,
+						 bool is_hw_wrapped_key)
 {
 	return 0;
 }
@@ -380,7 +406,8 @@
 
 static inline int
 fscrypt_prepare_inline_crypt_key(struct fscrypt_prepared_key *prep_key,
-				 const u8 *raw_key,
+				 const u8 *raw_key, unsigned int raw_key_size,
+				 bool is_hw_wrapped,
 				 const struct fscrypt_info *ci)
 {
 	WARN_ON(1);
@@ -392,6 +419,17 @@
 {
 }
 
+static inline int fscrypt_derive_raw_secret(struct super_block *sb,
+					    const u8 *wrapped_key,
+					    unsigned int wrapped_key_size,
+					    u8 *raw_secret,
+					    unsigned int raw_secret_size)
+{
+	fscrypt_warn(NULL,
+		     "kernel built without support for hardware-wrapped keys");
+	return -EOPNOTSUPP;
+}
+
 static inline bool
 fscrypt_is_key_prepared(struct fscrypt_prepared_key *prep_key,
 			const struct fscrypt_info *ci)
@@ -413,11 +451,22 @@
 	 */
 	struct fscrypt_hkdf	hkdf;
 
-	/* Size of the raw key in bytes.  Set even if ->raw isn't set. */
+	/*
+	 * Size of the raw key in bytes.  This remains set even if ->raw was
+	 * zeroized due to no longer being needed.  I.e. we still remember the
+	 * size of the key even if we don't need to remember the key itself.
+	 */
 	u32			size;
 
-	/* For v1 policy keys: the raw key.  Wiped for v2 policy keys. */
-	u8			raw[FSCRYPT_MAX_KEY_SIZE];
+	/* True if the key in ->raw is a hardware-wrapped key. */
+	bool			is_hw_wrapped;
+
+	/*
+	 * For v1 policy keys: the raw key.  Wiped for v2 policy keys, unless
+	 * ->is_hw_wrapped is true, in which case this contains the wrapped key
+	 * rather than the key with which 'hkdf' was keyed.
+	 */
+	u8			raw[FSCRYPT_MAX_HW_WRAPPED_KEY_SIZE];
 
 } __randomize_layout;
 
@@ -590,7 +639,8 @@
 extern struct fscrypt_mode fscrypt_modes[];
 
 int fscrypt_prepare_key(struct fscrypt_prepared_key *prep_key,
-			const u8 *raw_key, const struct fscrypt_info *ci);
+			const u8 *raw_key, unsigned int raw_key_size,
+			bool is_hw_wrapped, const struct fscrypt_info *ci);
 
 void fscrypt_destroy_prepared_key(struct fscrypt_prepared_key *prep_key);
 
diff --git a/fs/crypto/inline_crypt.c b/fs/crypto/inline_crypt.c
index c57bebf..68ab683 100644
--- a/fs/crypto/inline_crypt.c
+++ b/fs/crypto/inline_crypt.c
@@ -15,8 +15,10 @@
 #include <linux/blk-crypto.h>
 #include <linux/blkdev.h>
 #include <linux/buffer_head.h>
+#include <linux/keyslot-manager.h>
 #include <linux/sched/mm.h>
 #include <linux/slab.h>
+#include <linux/uio.h>
 
 #include "fscrypt_private.h"
 
@@ -64,7 +66,8 @@
 }
 
 /* Enable inline encryption for this file if supported. */
-int fscrypt_select_encryption_impl(struct fscrypt_info *ci)
+int fscrypt_select_encryption_impl(struct fscrypt_info *ci,
+				   bool is_hw_wrapped_key)
 {
 	const struct inode *inode = ci->ci_inode;
 	struct super_block *sb = inode->i_sb;
@@ -105,6 +108,7 @@
 	crypto_cfg.crypto_mode = ci->ci_mode->blk_crypto_mode;
 	crypto_cfg.data_unit_size = sb->s_blocksize;
 	crypto_cfg.dun_bytes = fscrypt_get_dun_bytes(ci);
+	crypto_cfg.is_hw_wrapped = is_hw_wrapped_key;
 	num_devs = fscrypt_get_num_devices(sb);
 	devs = kmalloc_array(num_devs, sizeof(*devs), GFP_KERNEL);
 	if (!devs)
@@ -125,6 +129,8 @@
 
 int fscrypt_prepare_inline_crypt_key(struct fscrypt_prepared_key *prep_key,
 				     const u8 *raw_key,
+				     unsigned int raw_key_size,
+				     bool is_hw_wrapped,
 				     const struct fscrypt_info *ci)
 {
 	const struct inode *inode = ci->ci_inode;
@@ -143,7 +149,11 @@
 	blk_key->num_devs = num_devs;
 	fscrypt_get_devices(sb, num_devs, blk_key->devs);
 
-	err = blk_crypto_init_key(&blk_key->base, raw_key, crypto_mode,
+	BUILD_BUG_ON(FSCRYPT_MAX_HW_WRAPPED_KEY_SIZE >
+		     BLK_CRYPTO_MAX_WRAPPED_KEY_SIZE);
+
+	err = blk_crypto_init_key(&blk_key->base, raw_key, raw_key_size,
+				  is_hw_wrapped, crypto_mode,
 				  fscrypt_get_dun_bytes(ci), sb->s_blocksize);
 	if (err) {
 		fscrypt_err(inode, "error %d initializing blk-crypto key", err);
@@ -203,6 +213,21 @@
 	}
 }
 
+int fscrypt_derive_raw_secret(struct super_block *sb,
+			      const u8 *wrapped_key,
+			      unsigned int wrapped_key_size,
+			      u8 *raw_secret, unsigned int raw_secret_size)
+{
+	struct request_queue *q;
+
+	q = bdev_get_queue(sb->s_bdev);
+	if (!q->ksm)
+		return -EOPNOTSUPP;
+
+	return blk_ksm_derive_raw_secret(q->ksm, wrapped_key, wrapped_key_size,
+					 raw_secret, raw_secret_size);
+}
+
 bool __fscrypt_inode_uses_inline_crypto(const struct inode *inode)
 {
 	return inode->i_crypt_info->ci_inlinecrypt;
@@ -238,6 +263,8 @@
  * otherwise fscrypt_mergeable_bio() won't work as intended.
  *
  * The encryption context will be freed automatically when the bio is freed.
+ *
+ * This function also handles setting bi_skip_dm_default_key when needed.
  */
 void fscrypt_set_bio_crypt_ctx(struct bio *bio, const struct inode *inode,
 			       u64 first_lblk, gfp_t gfp_mask)
@@ -245,6 +272,9 @@
 	const struct fscrypt_info *ci;
 	u64 dun[BLK_CRYPTO_DUN_ARRAY_SIZE];
 
+	if (fscrypt_inode_should_skip_dm_default_key(inode))
+		bio_set_skip_dm_default_key(bio);
+
 	if (!fscrypt_inode_uses_inline_crypto(inode))
 		return;
 	ci = inode->i_crypt_info;
@@ -315,6 +345,13 @@
  *
  * fscrypt_set_bio_crypt_ctx() must have already been called on the bio.
  *
+ * This function isn't required in cases where crypto-mergeability is ensured in
+ * another way, such as I/O targeting only a single file (and thus a single key)
+ * combined with fscrypt_limit_io_blocks() to ensure DUN contiguity.
+ *
+ * This function also returns false if the next part of the I/O would need to
+ * have a different value for the bi_skip_dm_default_key flag.
+ *
  * Return: true iff the I/O is mergeable
  */
 bool fscrypt_mergeable_bio(struct bio *bio, const struct inode *inode,
@@ -325,6 +362,9 @@
 
 	if (!!bc != fscrypt_inode_uses_inline_crypto(inode))
 		return false;
+	if (bio_should_skip_dm_default_key(bio) !=
+	    fscrypt_inode_should_skip_dm_default_key(inode))
+		return false;
 	if (!bc)
 		return true;
 
@@ -358,8 +398,97 @@
 	u64 next_lblk;
 
 	if (!bh_get_inode_and_lblk_num(next_bh, &inode, &next_lblk))
-		return !bio->bi_crypt_context;
+		return !bio->bi_crypt_context &&
+		       !bio_should_skip_dm_default_key(bio);
 
 	return fscrypt_mergeable_bio(bio, inode, next_lblk);
 }
 EXPORT_SYMBOL_GPL(fscrypt_mergeable_bio_bh);
+
+/**
+ * fscrypt_dio_supported() - check whether a DIO (direct I/O) request is
+ *			     supported as far as encryption is concerned
+ * @iocb: the file and position the I/O is targeting
+ * @iter: the I/O data segment(s)
+ *
+ * Return: %true if there are no encryption constraints that prevent DIO from
+ *	   being supported; %false if DIO is unsupported.  (Note that in the
+ *	   %true case, the filesystem might have other, non-encryption-related
+ *	   constraints that prevent DIO from actually being supported.)
+ */
+bool fscrypt_dio_supported(struct kiocb *iocb, struct iov_iter *iter)
+{
+	const struct inode *inode = file_inode(iocb->ki_filp);
+	const unsigned int blocksize = i_blocksize(inode);
+
+	/* If the file is unencrypted, no veto from us. */
+	if (!fscrypt_needs_contents_encryption(inode))
+		return true;
+
+	/* We only support DIO with inline crypto, not fs-layer crypto. */
+	if (!fscrypt_inode_uses_inline_crypto(inode))
+		return false;
+
+	/*
+	 * Since the granularity of encryption is filesystem blocks, the file
+	 * position and total I/O length must be aligned to the filesystem block
+	 * size -- not just to the block device's logical block size as is
+	 * traditionally the case for DIO on many filesystems.
+	 *
+	 * We require that the user-provided memory buffers be filesystem block
+	 * aligned too.  It is simpler to have a single alignment value required
+	 * for all properties of the I/O, as is normally the case for DIO.
+	 * Also, allowing less aligned buffers would imply that data units could
+	 * cross bvecs, which would greatly complicate the I/O stack, which
+	 * assumes that bios can be split at any bvec boundary.
+	 */
+	if (!IS_ALIGNED(iocb->ki_pos | iov_iter_alignment(iter), blocksize))
+		return false;
+
+	return true;
+}
+EXPORT_SYMBOL_GPL(fscrypt_dio_supported);
+
+/**
+ * fscrypt_limit_io_blocks() - limit I/O blocks to avoid discontiguous DUNs
+ * @inode: the file on which I/O is being done
+ * @lblk: the block at which the I/O is being started from
+ * @nr_blocks: the number of blocks we want to submit starting at @lblk
+ *
+ * Determine the limit to the number of blocks that can be submitted in a bio
+ * targeting @lblk without causing a data unit number (DUN) discontiguity.
+ *
+ * This is normally just @nr_blocks, as normally the DUNs just increment along
+ * with the logical blocks.  (Or the file is not encrypted.)
+ *
+ * In rare cases, fscrypt can be using an IV generation method that allows the
+ * DUN to wrap around within logically contiguous blocks, and that wraparound
+ * will occur.  If this happens, a value less than @nr_blocks will be returned
+ * so that the wraparound doesn't occur in the middle of a bio, which would
+ * cause encryption/decryption to produce wrong results.
+ *
+ * Return: the actual number of blocks that can be submitted
+ */
+u64 fscrypt_limit_io_blocks(const struct inode *inode, u64 lblk, u64 nr_blocks)
+{
+	const struct fscrypt_info *ci;
+	u32 dun;
+
+	if (!fscrypt_inode_uses_inline_crypto(inode))
+		return nr_blocks;
+
+	if (nr_blocks <= 1)
+		return nr_blocks;
+
+	ci = inode->i_crypt_info;
+	if (!(fscrypt_policy_flags(&ci->ci_policy) &
+	      FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32))
+		return nr_blocks;
+
+	/* With IV_INO_LBLK_32, the DUN can wrap around from U32_MAX to 0. */
+
+	dun = ci->ci_hashed_ino + lblk;
+
+	return min_t(u64, nr_blocks, (u64)U32_MAX + 1 - dun);
+}
+EXPORT_SYMBOL_GPL(fscrypt_limit_io_blocks);
diff --git a/fs/crypto/keyring.c b/fs/crypto/keyring.c
index 02f8bf8..eb7b904 100644
--- a/fs/crypto/keyring.c
+++ b/fs/crypto/keyring.c
@@ -527,6 +527,9 @@
 	return err;
 }
 
+/* Size of software "secret" derived from hardware-wrapped key */
+#define RAW_SECRET_SIZE 32
+
 static int add_master_key(struct super_block *sb,
 			  struct fscrypt_master_key_secret *secret,
 			  struct fscrypt_key_specifier *key_spec)
@@ -534,17 +537,28 @@
 	int err;
 
 	if (key_spec->type == FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER) {
-		err = fscrypt_init_hkdf(&secret->hkdf, secret->raw,
-					secret->size);
+		u8 _kdf_key[RAW_SECRET_SIZE];
+		u8 *kdf_key = secret->raw;
+		unsigned int kdf_key_size = secret->size;
+
+		if (secret->is_hw_wrapped) {
+			kdf_key = _kdf_key;
+			kdf_key_size = RAW_SECRET_SIZE;
+			err = fscrypt_derive_raw_secret(sb, secret->raw,
+							secret->size,
+							kdf_key, kdf_key_size);
+			if (err)
+				return err;
+		}
+		err = fscrypt_init_hkdf(&secret->hkdf, kdf_key, kdf_key_size);
+		/*
+		 * Now that the HKDF context is initialized, the raw HKDF key is
+		 * no longer needed.
+		 */
+		memzero_explicit(kdf_key, kdf_key_size);
 		if (err)
 			return err;
 
-		/*
-		 * Now that the HKDF context is initialized, the raw key is no
-		 * longer needed.
-		 */
-		memzero_explicit(secret->raw, secret->size);
-
 		/* Calculate the key identifier */
 		err = fscrypt_hkdf_expand(&secret->hkdf,
 					  HKDF_CONTEXT_KEY_IDENTIFIER, NULL, 0,
@@ -560,8 +574,10 @@
 {
 	const struct fscrypt_provisioning_key_payload *payload = prep->data;
 
+	BUILD_BUG_ON(FSCRYPT_MAX_HW_WRAPPED_KEY_SIZE < FSCRYPT_MAX_KEY_SIZE);
+
 	if (prep->datalen < sizeof(*payload) + FSCRYPT_MIN_KEY_SIZE ||
-	    prep->datalen > sizeof(*payload) + FSCRYPT_MAX_KEY_SIZE)
+	    prep->datalen > sizeof(*payload) + FSCRYPT_MAX_HW_WRAPPED_KEY_SIZE)
 		return -EINVAL;
 
 	if (payload->type != FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR &&
@@ -710,15 +726,29 @@
 		return -EACCES;
 
 	memset(&secret, 0, sizeof(secret));
+
+	if (arg.__flags) {
+		if (arg.__flags & ~__FSCRYPT_ADD_KEY_FLAG_HW_WRAPPED)
+			return -EINVAL;
+		if (arg.key_spec.type != FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER)
+			return -EINVAL;
+		secret.is_hw_wrapped = true;
+	}
+
 	if (arg.key_id) {
 		if (arg.raw_size != 0)
 			return -EINVAL;
 		err = get_keyring_key(arg.key_id, arg.key_spec.type, &secret);
 		if (err)
 			goto out_wipe_secret;
+		err = -EINVAL;
+		if (secret.size > FSCRYPT_MAX_KEY_SIZE && !secret.is_hw_wrapped)
+			goto out_wipe_secret;
 	} else {
 		if (arg.raw_size < FSCRYPT_MIN_KEY_SIZE ||
-		    arg.raw_size > FSCRYPT_MAX_KEY_SIZE)
+		    arg.raw_size > (secret.is_hw_wrapped ?
+				    FSCRYPT_MAX_HW_WRAPPED_KEY_SIZE :
+				    FSCRYPT_MAX_KEY_SIZE))
 			return -EINVAL;
 		secret.size = arg.raw_size;
 		err = -EFAULT;
diff --git a/fs/crypto/keysetup.c b/fs/crypto/keysetup.c
index c3fbd59..7dba62c 100644
--- a/fs/crypto/keysetup.c
+++ b/fs/crypto/keysetup.c
@@ -52,6 +52,13 @@
 		.ivsize = 32,
 		.blk_crypto_mode = BLK_ENCRYPTION_MODE_ADIANTUM,
 	},
+	[FSCRYPT_MODE_AES_256_HCTR2] = {
+		.friendly_name = "AES-256-HCTR2",
+		.cipher_str = "hctr2(aes)",
+		.keysize = 32,
+		.security_strength = 32,
+		.ivsize = 32,
+	},
 };
 
 static DEFINE_MUTEX(fscrypt_mode_key_setup_mutex);
@@ -121,16 +128,22 @@
 
 /*
  * Prepare the crypto transform object or blk-crypto key in @prep_key, given the
- * raw key, encryption mode, and flag indicating which encryption implementation
- * (fs-layer or blk-crypto) will be used.
+ * raw key, encryption mode (@ci->ci_mode), flag indicating which encryption
+ * implementation (fs-layer or blk-crypto) will be used (@ci->ci_inlinecrypt),
+ * and IV generation method (@ci->ci_policy.flags).
  */
 int fscrypt_prepare_key(struct fscrypt_prepared_key *prep_key,
-			const u8 *raw_key, const struct fscrypt_info *ci)
+			const u8 *raw_key, unsigned int raw_key_size,
+			bool is_hw_wrapped, const struct fscrypt_info *ci)
 {
 	struct crypto_skcipher *tfm;
 
 	if (fscrypt_using_inline_encryption(ci))
-		return fscrypt_prepare_inline_crypt_key(prep_key, raw_key, ci);
+		return fscrypt_prepare_inline_crypt_key(prep_key,
+				raw_key, raw_key_size, is_hw_wrapped, ci);
+
+	if (WARN_ON(is_hw_wrapped || raw_key_size != ci->ci_mode->keysize))
+		return -EINVAL;
 
 	tfm = fscrypt_allocate_skcipher(ci->ci_mode, raw_key, ci->ci_inode);
 	if (IS_ERR(tfm))
@@ -157,7 +170,9 @@
 int fscrypt_set_per_file_enc_key(struct fscrypt_info *ci, const u8 *raw_key)
 {
 	ci->ci_owns_key = true;
-	return fscrypt_prepare_key(&ci->ci_enc_key, raw_key, ci);
+	return fscrypt_prepare_key(&ci->ci_enc_key, raw_key,
+				   ci->ci_mode->keysize,
+				   false /*is_hw_wrapped*/, ci);
 }
 
 static int setup_per_mode_enc_key(struct fscrypt_info *ci,
@@ -189,24 +204,48 @@
 	if (fscrypt_is_key_prepared(prep_key, ci))
 		goto done_unlock;
 
-	BUILD_BUG_ON(sizeof(mode_num) != 1);
-	BUILD_BUG_ON(sizeof(sb->s_uuid) != 16);
-	BUILD_BUG_ON(sizeof(hkdf_info) != 17);
-	hkdf_info[hkdf_infolen++] = mode_num;
-	if (include_fs_uuid) {
-		memcpy(&hkdf_info[hkdf_infolen], &sb->s_uuid,
-		       sizeof(sb->s_uuid));
-		hkdf_infolen += sizeof(sb->s_uuid);
+	if (mk->mk_secret.is_hw_wrapped && S_ISREG(inode->i_mode)) {
+		int i;
+
+		if (!fscrypt_using_inline_encryption(ci)) {
+			fscrypt_warn(ci->ci_inode,
+				     "Hardware-wrapped keys require inline encryption (-o inlinecrypt)");
+			err = -EINVAL;
+			goto out_unlock;
+		}
+		for (i = 0; i <= FSCRYPT_MODE_MAX; i++) {
+			if (fscrypt_is_key_prepared(&keys[i], ci)) {
+				fscrypt_warn(ci->ci_inode,
+					     "Each hardware-wrapped key can only be used with one encryption mode");
+				err = -EINVAL;
+				goto out_unlock;
+			}
+		}
+		err = fscrypt_prepare_key(prep_key, mk->mk_secret.raw,
+					  mk->mk_secret.size, true, ci);
+		if (err)
+			goto out_unlock;
+	} else {
+		BUILD_BUG_ON(sizeof(mode_num) != 1);
+		BUILD_BUG_ON(sizeof(sb->s_uuid) != 16);
+		BUILD_BUG_ON(sizeof(hkdf_info) != 17);
+		hkdf_info[hkdf_infolen++] = mode_num;
+		if (include_fs_uuid) {
+			memcpy(&hkdf_info[hkdf_infolen], &sb->s_uuid,
+				   sizeof(sb->s_uuid));
+			hkdf_infolen += sizeof(sb->s_uuid);
+		}
+		err = fscrypt_hkdf_expand(&mk->mk_secret.hkdf,
+					  hkdf_context, hkdf_info, hkdf_infolen,
+					  mode_key, mode->keysize);
+		if (err)
+			goto out_unlock;
+		err = fscrypt_prepare_key(prep_key, mode_key, mode->keysize,
+					  false /*is_hw_wrapped*/, ci);
+		memzero_explicit(mode_key, mode->keysize);
+		if (err)
+			goto out_unlock;
 	}
-	err = fscrypt_hkdf_expand(&mk->mk_secret.hkdf,
-				  hkdf_context, hkdf_info, hkdf_infolen,
-				  mode_key, mode->keysize);
-	if (err)
-		goto out_unlock;
-	err = fscrypt_prepare_key(prep_key, mode_key, ci);
-	memzero_explicit(mode_key, mode->keysize);
-	if (err)
-		goto out_unlock;
 done_unlock:
 	ci->ci_enc_key = *prep_key;
 	err = 0;
@@ -311,6 +350,14 @@
 {
 	int err;
 
+	if (mk->mk_secret.is_hw_wrapped &&
+	    !(ci->ci_policy.v2.flags & (FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 |
+					FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32))) {
+		fscrypt_warn(ci->ci_inode,
+			     "Hardware-wrapped keys are only supported with IV_INO_LBLK policies");
+		return -EINVAL;
+	}
+
 	if (ci->ci_policy.v2.flags & FSCRYPT_POLICY_FLAG_DIRECT_KEY) {
 		/*
 		 * DIRECT_KEY: instead of deriving per-file encryption keys, the
@@ -418,10 +465,6 @@
 	struct fscrypt_master_key *mk;
 	int err;
 
-	err = fscrypt_select_encryption_impl(ci);
-	if (err)
-		return err;
-
 	switch (ci->ci_policy.version) {
 	case FSCRYPT_POLICY_V1:
 		mk_spec.type = FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR;
@@ -445,6 +488,10 @@
 		if (ci->ci_policy.version != FSCRYPT_POLICY_V1)
 			return -ENOKEY;
 
+		err = fscrypt_select_encryption_impl(ci, false);
+		if (err)
+			return err;
+
 		/*
 		 * As a legacy fallback for v1 policies, search for the key in
 		 * the current task's subscribed keyrings too.  Don't move this
@@ -466,6 +513,10 @@
 		goto out_release_key;
 	}
 
+	err = fscrypt_select_encryption_impl(ci, mk->mk_secret.is_hw_wrapped);
+	if (err)
+		goto out_release_key;
+
 	switch (ci->ci_policy.version) {
 	case FSCRYPT_POLICY_V1:
 		err = fscrypt_setup_v1_file_key(ci, mk->mk_secret.raw);
diff --git a/fs/crypto/keysetup_v1.c b/fs/crypto/keysetup_v1.c
index 2762c53..f0c22b5 100644
--- a/fs/crypto/keysetup_v1.c
+++ b/fs/crypto/keysetup_v1.c
@@ -233,7 +233,8 @@
 		return ERR_PTR(-ENOMEM);
 	refcount_set(&dk->dk_refcount, 1);
 	dk->dk_mode = ci->ci_mode;
-	err = fscrypt_prepare_key(&dk->dk_key, raw_key, ci);
+	err = fscrypt_prepare_key(&dk->dk_key, raw_key, ci->ci_mode->keysize,
+				  false /*is_hw_wrapped*/, ci);
 	if (err)
 		goto err_free_dk;
 	memcpy(dk->dk_descriptor, ci->ci_policy.v1.master_key_descriptor,
diff --git a/fs/crypto/policy.c b/fs/crypto/policy.c
index cad34db..a76adf0 100644
--- a/fs/crypto/policy.c
+++ b/fs/crypto/policy.c
@@ -40,7 +40,7 @@
 	return sb->s_cop->get_dummy_policy(sb);
 }
 
-static bool fscrypt_valid_enc_modes(u32 contents_mode, u32 filenames_mode)
+static bool fscrypt_valid_enc_modes_v1(u32 contents_mode, u32 filenames_mode)
 {
 	if (contents_mode == FSCRYPT_MODE_AES_256_XTS &&
 	    filenames_mode == FSCRYPT_MODE_AES_256_CTS)
@@ -57,6 +57,14 @@
 	return false;
 }
 
+static bool fscrypt_valid_enc_modes_v2(u32 contents_mode, u32 filenames_mode)
+{
+	if (contents_mode == FSCRYPT_MODE_AES_256_XTS &&
+	    filenames_mode == FSCRYPT_MODE_AES_256_HCTR2)
+		return true;
+	return fscrypt_valid_enc_modes_v1(contents_mode, filenames_mode);
+}
+
 static bool supported_direct_key_modes(const struct inode *inode,
 				       u32 contents_mode, u32 filenames_mode)
 {
@@ -130,7 +138,7 @@
 static bool fscrypt_supported_v1_policy(const struct fscrypt_policy_v1 *policy,
 					const struct inode *inode)
 {
-	if (!fscrypt_valid_enc_modes(policy->contents_encryption_mode,
+	if (!fscrypt_valid_enc_modes_v1(policy->contents_encryption_mode,
 				     policy->filenames_encryption_mode)) {
 		fscrypt_warn(inode,
 			     "Unsupported encryption modes (contents %d, filenames %d)",
@@ -166,7 +174,7 @@
 {
 	int count = 0;
 
-	if (!fscrypt_valid_enc_modes(policy->contents_encryption_mode,
+	if (!fscrypt_valid_enc_modes_v2(policy->contents_encryption_mode,
 				     policy->filenames_encryption_mode)) {
 		fscrypt_warn(inode,
 			     "Unsupported encryption modes (contents %d, filenames %d)",
diff --git a/fs/dcache.c b/fs/dcache.c
index cf871a8..2225920 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -2145,7 +2145,7 @@
 {
 	return __d_obtain_alias(inode, true);
 }
-EXPORT_SYMBOL(d_obtain_alias);
+EXPORT_SYMBOL_NS(d_obtain_alias, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * d_obtain_root - find or allocate a dentry for a given inode
@@ -2219,7 +2219,7 @@
 	}
 	return found;
 }
-EXPORT_SYMBOL(d_add_ci);
+EXPORT_SYMBOL_NS(d_add_ci, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 
 static inline bool d_same_name(const struct dentry *dentry,
@@ -2950,7 +2950,7 @@
 	__d_move(dentry, target, false);
 	write_sequnlock(&rename_lock);
 }
-EXPORT_SYMBOL(d_move);
+EXPORT_SYMBOL_NS(d_move, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * d_exchange - exchange two dentries
@@ -3100,7 +3100,7 @@
 	__d_add(dentry, inode);
 	return NULL;
 }
-EXPORT_SYMBOL(d_splice_alias);
+EXPORT_SYMBOL_NS(d_splice_alias, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * Test whether new_dentry is a subdirectory of old_dentry.
diff --git a/fs/direct-io.c b/fs/direct-io.c
index b2e86e7..a13576d 100644
--- a/fs/direct-io.c
+++ b/fs/direct-io.c
@@ -1369,7 +1369,7 @@
 				     end_io, submit_io, flags);
 }
 
-EXPORT_SYMBOL(__blockdev_direct_IO);
+EXPORT_SYMBOL_NS(__blockdev_direct_IO, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 static __init int dio_init(void)
 {
diff --git a/fs/drop_caches.c b/fs/drop_caches.c
index e619c31..b957595 100644
--- a/fs/drop_caches.c
+++ b/fs/drop_caches.c
@@ -10,6 +10,7 @@
 #include <linux/writeback.h>
 #include <linux/sysctl.h>
 #include <linux/gfp.h>
+#include <linux/swap.h>
 #include "internal.h"
 
 /* A global variable is a bit ugly, but it keeps the code simple */
@@ -59,6 +60,7 @@
 		static int stfu;
 
 		if (sysctl_drop_caches & 1) {
+			lru_add_drain_all();
 			iterate_supers(drop_pagecache_sb, NULL);
 			count_vm_event(DROP_PAGECACHE);
 		}
diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c
index 2dd23a8..1cd7c94 100644
--- a/fs/ecryptfs/main.c
+++ b/fs/ecryptfs/main.c
@@ -897,6 +897,7 @@
 MODULE_DESCRIPTION("eCryptfs");
 
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 
 module_init(ecryptfs_init)
 module_exit(ecryptfs_exit)
diff --git a/fs/efivarfs/super.c b/fs/efivarfs/super.c
index 15880a6..b62aefe 100644
--- a/fs/efivarfs/super.c
+++ b/fs/efivarfs/super.c
@@ -272,6 +272,7 @@
 MODULE_AUTHOR("Matthew Garrett, Jeremy Kerr");
 MODULE_DESCRIPTION("EFI Variable Filesystem");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 MODULE_ALIAS_FS("efivarfs");
 
 module_init(efivarfs_init);
diff --git a/fs/efs/inode.c b/fs/efs/inode.c
index 89e73a6..8c0ecaa6 100644
--- a/fs/efs/inode.c
+++ b/fs/efs/inode.c
@@ -311,3 +311,4 @@
 }  
 
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/erofs/Kconfig b/fs/erofs/Kconfig
index 14b7470..dd99f06 100644
--- a/fs/erofs/Kconfig
+++ b/fs/erofs/Kconfig
@@ -6,16 +6,22 @@
 	select FS_IOMAP
 	select LIBCRC32C
 	help
-	  EROFS (Enhanced Read-Only File System) is a lightweight
-	  read-only file system with modern designs (eg. page-sized
-	  blocks, inline xattrs/data, etc.) for scenarios which need
-	  high-performance read-only requirements, e.g. Android OS
-	  for mobile phones and LIVECDs.
+	  EROFS (Enhanced Read-Only File System) is a lightweight read-only
+	  file system with modern designs (e.g. no buffer heads, inline
+	  xattrs/data, chunk-based deduplication, multiple devices, etc.) for
+	  scenarios which need high-performance read-only solutions, e.g.
+	  smartphones with Android OS, LiveCDs and high-density hosts with
+	  numerous containers;
 
-	  It also provides fixed-sized output compression support,
-	  which improves storage density, keeps relatively higher
-	  compression ratios, which is more useful to achieve high
-	  performance for embedded devices with limited memory.
+	  It also provides fixed-sized output compression support in order to
+	  improve storage density as well as keep relatively higher compression
+	  ratios and implements in-place decompression to reuse the file page
+	  for compressed data temporarily with proper strategies, which is
+	  quite useful to ensure guaranteed end-to-end runtime decompression
+	  performance under extremely memory pressure without extra cost.
+
+	  See the documentation at <file:Documentation/filesystems/erofs.rst>
+	  for more details.
 
 	  If unsure, say N.
 
@@ -76,3 +82,37 @@
 	  Enable fixed-sized output compression for EROFS.
 
 	  If you don't want to enable compression feature, say N.
+
+config EROFS_FS_ZIP_LZMA
+	bool "EROFS LZMA compressed data support"
+	depends on EROFS_FS_ZIP
+	select XZ_DEC
+	select XZ_DEC_MICROLZMA
+	help
+	  Saying Y here includes support for reading EROFS file systems
+	  containing LZMA compressed data, specifically called microLZMA. it
+	  gives better compression ratios than the LZ4 algorithm, at the
+	  expense of more CPU overhead.
+
+	  LZMA support is an experimental feature for now and so most file
+	  systems will be readable without selecting this option.
+
+	  If unsure, say N.
+
+config EROFS_FS_PCPU_KTHREAD
+	bool "EROFS per-cpu decompression kthread workers"
+	depends on EROFS_FS_ZIP
+	help
+	  Saying Y here enables per-CPU kthread workers pool to carry out
+	  async decompression for low latencies on some architectures.
+
+	  If unsure, say N.
+
+config EROFS_FS_PCPU_KTHREAD_HIPRI
+	bool "EROFS high priority per-CPU kthread workers"
+	depends on EROFS_FS_ZIP && EROFS_FS_PCPU_KTHREAD
+	help
+	  This permits EROFS to configure per-CPU kthread workers to run
+	  at higher priority.
+
+	  If unsure, say N.
diff --git a/fs/erofs/Makefile b/fs/erofs/Makefile
index 1f9aced..8a3317e 100644
--- a/fs/erofs/Makefile
+++ b/fs/erofs/Makefile
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
 
 obj-$(CONFIG_EROFS_FS) += erofs.o
-erofs-objs := super.o inode.o data.o namei.o dir.o utils.o pcpubuf.o
+erofs-objs := super.o inode.o data.o namei.o dir.o utils.o pcpubuf.o sysfs.o
 erofs-$(CONFIG_EROFS_FS_XATTR) += xattr.o
 erofs-$(CONFIG_EROFS_FS_ZIP) += decompressor.o zmap.o zdata.o
+erofs-$(CONFIG_EROFS_FS_ZIP_LZMA) += decompressor_lzma.o
diff --git a/fs/erofs/compress.h b/fs/erofs/compress.h
index 3701c72..5794065 100644
--- a/fs/erofs/compress.h
+++ b/fs/erofs/compress.h
@@ -8,11 +8,6 @@
 
 #include "internal.h"
 
-enum {
-	Z_EROFS_COMPRESSION_SHIFTED = Z_EROFS_COMPRESSION_MAX,
-	Z_EROFS_COMPRESSION_RUNTIME_MAX
-};
-
 struct z_erofs_decompress_req {
 	struct super_block *sb;
 	struct page **in, **out;
@@ -25,6 +20,12 @@
 	bool inplace_io, partial_decoding;
 };
 
+struct z_erofs_decompressor {
+	int (*decompress)(struct z_erofs_decompress_req *rq,
+			  struct page **pagepool);
+	char *name;
+};
+
 /* some special page->private (unsigned long, see below) */
 #define Z_EROFS_SHORTLIVED_PAGE		(-1UL << 2)
 #define Z_EROFS_PREALLOCATED_PAGE	(-2UL << 2)
@@ -63,7 +64,7 @@
 	return true;
 }
 
-static inline bool z_erofs_put_shortlivedpage(struct list_head *pagepool,
+static inline bool z_erofs_put_shortlivedpage(struct page **pagepool,
 					      struct page *page)
 {
 	if (!z_erofs_is_shortlived_page(page))
@@ -74,13 +75,22 @@
 		put_page(page);
 	} else {
 		/* follow the pcluster rule above. */
-		set_page_private(page, 0);
-		list_add(&page->lru, pagepool);
+		erofs_pagepool_add(pagepool, page);
 	}
 	return true;
 }
 
-int z_erofs_decompress(struct z_erofs_decompress_req *rq,
-		       struct list_head *pagepool);
+#define MNGD_MAPPING(sbi)	((sbi)->managed_cache->i_mapping)
+static inline bool erofs_page_is_managed(const struct erofs_sb_info *sbi,
+					 struct page *page)
+{
+	return page->mapping == MNGD_MAPPING(sbi);
+}
 
+int z_erofs_decompress(struct z_erofs_decompress_req *rq,
+		       struct page **pagepool);
+
+/* prototypes for specific algorithms */
+int z_erofs_lzma_decompress(struct z_erofs_decompress_req *rq,
+			    struct page **pagepool);
 #endif
diff --git a/fs/erofs/data.c b/fs/erofs/data.c
index 16a41d0..0e35ef3 100644
--- a/fs/erofs/data.c
+++ b/fs/erofs/data.c
@@ -89,6 +89,7 @@
 	erofs_off_t pos;
 	int err = 0;
 
+	map->m_deviceid = 0;
 	if (map->m_la >= inode->i_size) {
 		/* leave out-of-bound access unmapped */
 		map->m_flags = 0;
@@ -135,14 +136,8 @@
 		map->m_flags = 0;
 		break;
 	default:
-		/* only one device is supported for now */
-		if (idx->device_id) {
-			erofs_err(sb, "invalid device id %u @ %llu for nid %llu",
-				  le16_to_cpu(idx->device_id),
-				  chunknr, vi->nid);
-			err = -EFSCORRUPTED;
-			goto out_unlock;
-		}
+		map->m_deviceid = le16_to_cpu(idx->device_id) &
+			EROFS_SB(sb)->device_id_mask;
 		map->m_pa = blknr_to_addr(le32_to_cpu(idx->blkaddr));
 		map->m_flags = EROFS_MAP_MAPPED;
 		break;
@@ -155,11 +150,55 @@
 	return err;
 }
 
+int erofs_map_dev(struct super_block *sb, struct erofs_map_dev *map)
+{
+	struct erofs_dev_context *devs = EROFS_SB(sb)->devs;
+	struct erofs_device_info *dif;
+	int id;
+
+	/* primary device by default */
+	map->m_bdev = sb->s_bdev;
+	map->m_daxdev = EROFS_SB(sb)->dax_dev;
+
+	if (map->m_deviceid) {
+		down_read(&devs->rwsem);
+		dif = idr_find(&devs->tree, map->m_deviceid - 1);
+		if (!dif) {
+			up_read(&devs->rwsem);
+			return -ENODEV;
+		}
+		map->m_bdev = dif->bdev;
+		map->m_daxdev = dif->dax_dev;
+		up_read(&devs->rwsem);
+	} else if (devs->extra_devices) {
+		down_read(&devs->rwsem);
+		idr_for_each_entry(&devs->tree, dif, id) {
+			erofs_off_t startoff, length;
+
+			if (!dif->mapped_blkaddr)
+				continue;
+			startoff = blknr_to_addr(dif->mapped_blkaddr);
+			length = blknr_to_addr(dif->blocks);
+
+			if (map->m_pa >= startoff &&
+			    map->m_pa < startoff + length) {
+				map->m_pa -= startoff;
+				map->m_bdev = dif->bdev;
+				map->m_daxdev = dif->dax_dev;
+				break;
+			}
+		}
+		up_read(&devs->rwsem);
+	}
+	return 0;
+}
+
 static int erofs_iomap_begin(struct inode *inode, loff_t offset, loff_t length,
 		unsigned int flags, struct iomap *iomap, struct iomap *srcmap)
 {
 	int ret;
 	struct erofs_map_blocks map;
+	struct erofs_map_dev mdev;
 
 	map.m_la = offset;
 	map.m_llen = length;
@@ -168,8 +207,16 @@
 	if (ret < 0)
 		return ret;
 
-	iomap->bdev = inode->i_sb->s_bdev;
-	iomap->dax_dev = EROFS_I_SB(inode)->dax_dev;
+	mdev = (struct erofs_map_dev) {
+		.m_deviceid = map.m_deviceid,
+		.m_pa = map.m_pa,
+	};
+	ret = erofs_map_dev(inode->i_sb, &mdev);
+	if (ret)
+		return ret;
+
+	iomap->bdev = mdev.m_bdev;
+	iomap->dax_dev = mdev.m_daxdev;
 	iomap->offset = map.m_la;
 	iomap->length = map.m_llen;
 	iomap->flags = 0;
@@ -188,15 +235,15 @@
 
 		iomap->type = IOMAP_INLINE;
 		ipage = erofs_get_meta_page(inode->i_sb,
-					    erofs_blknr(map.m_pa));
+					    erofs_blknr(mdev.m_pa));
 		if (IS_ERR(ipage))
 			return PTR_ERR(ipage);
 		iomap->inline_data = page_address(ipage) +
-					erofs_blkoff(map.m_pa);
+					erofs_blkoff(mdev.m_pa);
 		iomap->private = ipage;
 	} else {
 		iomap->type = IOMAP_MAPPED;
-		iomap->addr = map.m_pa;
+		iomap->addr = mdev.m_pa;
 	}
 	return 0;
 }
diff --git a/fs/erofs/decompressor.c b/fs/erofs/decompressor.c
index 8193c14..49568a4 100644
--- a/fs/erofs/decompressor.c
+++ b/fs/erofs/decompressor.c
@@ -16,17 +16,6 @@
 #define LZ4_DECOMPRESS_INPLACE_MARGIN(srcsize)  (((srcsize) >> 8) + 32)
 #endif
 
-struct z_erofs_decompressor {
-	/*
-	 * if destpages have sparsed pages, fill them with bounce pages.
-	 * it also check whether destpages indicate continuous physical memory.
-	 */
-	int (*prepare_destpages)(struct z_erofs_decompress_req *rq,
-				 struct list_head *pagepool);
-	int (*decompress)(struct z_erofs_decompress_req *rq, u8 *out);
-	char *name;
-};
-
 int z_erofs_load_lz4_config(struct super_block *sb,
 			    struct erofs_super_block *dsb,
 			    struct z_erofs_lz4_cfgs *lz4, int size)
@@ -63,8 +52,12 @@
 	return erofs_pcpubuf_growsize(sbi->lz4.max_pclusterblks);
 }
 
-static int z_erofs_lz4_prepare_destpages(struct z_erofs_decompress_req *rq,
-					 struct list_head *pagepool)
+/*
+ * Fill all gaps with bounce pages if it's a sparse page list. Also check if
+ * all physical pages are consecutive, which can be seen for moderate CR.
+ */
+static int z_erofs_lz4_prepare_dstpages(struct z_erofs_decompress_req *rq,
+					struct page **pagepool)
 {
 	const unsigned int nr =
 		PAGE_ALIGN(rq->pageofs_out + rq->outputsize) >> PAGE_SHIFT;
@@ -123,7 +116,7 @@
 	return kaddr ? 1 : 0;
 }
 
-static void *z_erofs_handle_inplace_io(struct z_erofs_decompress_req *rq,
+static void *z_erofs_lz4_handle_inplace_io(struct z_erofs_decompress_req *rq,
 			void *inpage, unsigned int *inputmargin, int *maptype,
 			bool support_0padding)
 {
@@ -193,7 +186,8 @@
 	return src;
 }
 
-static int z_erofs_lz4_decompress(struct z_erofs_decompress_req *rq, u8 *out)
+static int z_erofs_lz4_decompress_mem(struct z_erofs_decompress_req *rq,
+				      u8 *out)
 {
 	unsigned int inputmargin;
 	u8 *headpage, *src;
@@ -220,8 +214,8 @@
 	}
 
 	rq->inputsize -= inputmargin;
-	src = z_erofs_handle_inplace_io(rq, headpage, &inputmargin, &maptype,
-					support_0padding);
+	src = z_erofs_lz4_handle_inplace_io(rq, headpage, &inputmargin,
+					    &maptype, support_0padding);
 	if (IS_ERR(src))
 		return PTR_ERR(src);
 
@@ -245,6 +239,8 @@
 		if (ret >= 0)
 			memset(out + ret, 0, rq->outputsize - ret);
 		ret = -EIO;
+	} else {
+		ret = 0;
 	}
 
 	if (maptype == 0) {
@@ -260,86 +256,25 @@
 	return ret;
 }
 
-static struct z_erofs_decompressor decompressors[] = {
-	[Z_EROFS_COMPRESSION_SHIFTED] = {
-		.name = "shifted"
-	},
-	[Z_EROFS_COMPRESSION_LZ4] = {
-		.prepare_destpages = z_erofs_lz4_prepare_destpages,
-		.decompress = z_erofs_lz4_decompress,
-		.name = "lz4"
-	},
-};
-
-static void copy_from_pcpubuf(struct page **out, const char *dst,
-			      unsigned short pageofs_out,
-			      unsigned int outputsize)
-{
-	const char *end = dst + outputsize;
-	const unsigned int righthalf = PAGE_SIZE - pageofs_out;
-	const char *cur = dst - pageofs_out;
-
-	while (cur < end) {
-		struct page *const page = *out++;
-
-		if (page) {
-			char *buf = kmap_atomic(page);
-
-			if (cur >= dst) {
-				memcpy(buf, cur, min_t(uint, PAGE_SIZE,
-						       end - cur));
-			} else {
-				memcpy(buf + pageofs_out, cur + pageofs_out,
-				       min_t(uint, righthalf, end - cur));
-			}
-			kunmap_atomic(buf);
-		}
-		cur += PAGE_SIZE;
-	}
-}
-
-static int z_erofs_decompress_generic(struct z_erofs_decompress_req *rq,
-				      struct list_head *pagepool)
+static int z_erofs_lz4_decompress(struct z_erofs_decompress_req *rq,
+				  struct page **pagepool)
 {
 	const unsigned int nrpages_out =
 		PAGE_ALIGN(rq->pageofs_out + rq->outputsize) >> PAGE_SHIFT;
-	const struct z_erofs_decompressor *alg = decompressors + rq->alg;
 	unsigned int dst_maptype;
 	void *dst;
 	int ret;
 
-	/* two optimized fast paths only for non bigpcluster cases yet */
-	if (rq->inputsize <= PAGE_SIZE) {
-		if (nrpages_out == 1 && !rq->inplace_io) {
-			DBG_BUGON(!*rq->out);
-			dst = kmap_atomic(*rq->out);
-			dst_maptype = 0;
-			goto dstmap_out;
-		}
-
-		/*
-		 * For the case of small output size (especially much less
-		 * than PAGE_SIZE), memcpy the decompressed data rather than
-		 * compressed data is preferred.
-		 */
-		if (rq->outputsize <= PAGE_SIZE * 7 / 8) {
-			dst = erofs_get_pcpubuf(1);
-			if (IS_ERR(dst))
-				return PTR_ERR(dst);
-
-			rq->inplace_io = false;
-			ret = alg->decompress(rq, dst);
-			if (!ret)
-				copy_from_pcpubuf(rq->out, dst, rq->pageofs_out,
-						  rq->outputsize);
-
-			erofs_put_pcpubuf(dst);
-			return ret;
-		}
+	/* one optimized fast path only for non bigpcluster cases yet */
+	if (rq->inputsize <= PAGE_SIZE && nrpages_out == 1 && !rq->inplace_io) {
+		DBG_BUGON(!*rq->out);
+		dst = kmap_atomic(*rq->out);
+		dst_maptype = 0;
+		goto dstmap_out;
 	}
 
 	/* general decoding path which can be used for all cases */
-	ret = alg->prepare_destpages(rq, pagepool);
+	ret = z_erofs_lz4_prepare_dstpages(rq, pagepool);
 	if (ret < 0)
 		return ret;
 	if (ret) {
@@ -354,7 +289,7 @@
 	dst_maptype = 2;
 
 dstmap_out:
-	ret = alg->decompress(rq, dst + rq->pageofs_out);
+	ret = z_erofs_lz4_decompress_mem(rq, dst + rq->pageofs_out);
 
 	if (!dst_maptype)
 		kunmap_atomic(dst);
@@ -363,8 +298,8 @@
 	return ret;
 }
 
-static int z_erofs_shifted_transform(const struct z_erofs_decompress_req *rq,
-				     struct list_head *pagepool)
+static int z_erofs_shifted_transform(struct z_erofs_decompress_req *rq,
+				     struct page **pagepool)
 {
 	const unsigned int nrpages_out =
 		PAGE_ALIGN(rq->pageofs_out + rq->outputsize) >> PAGE_SHIFT;
@@ -402,10 +337,25 @@
 	return 0;
 }
 
+static struct z_erofs_decompressor decompressors[] = {
+	[Z_EROFS_COMPRESSION_SHIFTED] = {
+		.decompress = z_erofs_shifted_transform,
+		.name = "shifted"
+	},
+	[Z_EROFS_COMPRESSION_LZ4] = {
+		.decompress = z_erofs_lz4_decompress,
+		.name = "lz4"
+	},
+#ifdef CONFIG_EROFS_FS_ZIP_LZMA
+	[Z_EROFS_COMPRESSION_LZMA] = {
+		.decompress = z_erofs_lzma_decompress,
+		.name = "lzma"
+	},
+#endif
+};
+
 int z_erofs_decompress(struct z_erofs_decompress_req *rq,
-		       struct list_head *pagepool)
+		       struct page **pagepool)
 {
-	if (rq->alg == Z_EROFS_COMPRESSION_SHIFTED)
-		return z_erofs_shifted_transform(rq, pagepool);
-	return z_erofs_decompress_generic(rq, pagepool);
+	return decompressors[rq->alg].decompress(rq, pagepool);
 }
diff --git a/fs/erofs/decompressor_lzma.c b/fs/erofs/decompressor_lzma.c
new file mode 100644
index 0000000..5004551
--- /dev/null
+++ b/fs/erofs/decompressor_lzma.c
@@ -0,0 +1,290 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include <linux/xz.h>
+#include <linux/module.h>
+#include "compress.h"
+
+struct z_erofs_lzma {
+	struct z_erofs_lzma *next;
+	struct xz_dec_microlzma *state;
+	struct xz_buf buf;
+	u8 bounce[PAGE_SIZE];
+};
+
+/* considering the LZMA performance, no need to use a lockless list for now */
+static DEFINE_SPINLOCK(z_erofs_lzma_lock);
+static unsigned int z_erofs_lzma_max_dictsize;
+static unsigned int z_erofs_lzma_nstrms, z_erofs_lzma_avail_strms;
+static struct z_erofs_lzma *z_erofs_lzma_head;
+static DECLARE_WAIT_QUEUE_HEAD(z_erofs_lzma_wq);
+
+module_param_named(lzma_streams, z_erofs_lzma_nstrms, uint, 0444);
+
+void z_erofs_lzma_exit(void)
+{
+	/* there should be no running fs instance */
+	while (z_erofs_lzma_avail_strms) {
+		struct z_erofs_lzma *strm;
+
+		spin_lock(&z_erofs_lzma_lock);
+		strm = z_erofs_lzma_head;
+		if (!strm) {
+			spin_unlock(&z_erofs_lzma_lock);
+			DBG_BUGON(1);
+			return;
+		}
+		z_erofs_lzma_head = NULL;
+		spin_unlock(&z_erofs_lzma_lock);
+
+		while (strm) {
+			struct z_erofs_lzma *n = strm->next;
+
+			if (strm->state)
+				xz_dec_microlzma_end(strm->state);
+			kfree(strm);
+			--z_erofs_lzma_avail_strms;
+			strm = n;
+		}
+	}
+}
+
+int z_erofs_lzma_init(void)
+{
+	unsigned int i;
+
+	/* by default, use # of possible CPUs instead */
+	if (!z_erofs_lzma_nstrms)
+		z_erofs_lzma_nstrms = num_possible_cpus();
+
+	for (i = 0; i < z_erofs_lzma_nstrms; ++i) {
+		struct z_erofs_lzma *strm = kzalloc(sizeof(*strm), GFP_KERNEL);
+
+		if (!strm) {
+			z_erofs_lzma_exit();
+			return -ENOMEM;
+		}
+		spin_lock(&z_erofs_lzma_lock);
+		strm->next = z_erofs_lzma_head;
+		z_erofs_lzma_head = strm;
+		spin_unlock(&z_erofs_lzma_lock);
+		++z_erofs_lzma_avail_strms;
+	}
+	return 0;
+}
+
+int z_erofs_load_lzma_config(struct super_block *sb,
+			     struct erofs_super_block *dsb,
+			     struct z_erofs_lzma_cfgs *lzma, int size)
+{
+	static DEFINE_MUTEX(lzma_resize_mutex);
+	unsigned int dict_size, i;
+	struct z_erofs_lzma *strm, *head = NULL;
+	int err;
+
+	if (!lzma || size < sizeof(struct z_erofs_lzma_cfgs)) {
+		erofs_err(sb, "invalid lzma cfgs, size=%u", size);
+		return -EINVAL;
+	}
+	if (lzma->format) {
+		erofs_err(sb, "unidentified lzma format %x, please check kernel version",
+			  le16_to_cpu(lzma->format));
+		return -EINVAL;
+	}
+	dict_size = le32_to_cpu(lzma->dict_size);
+	if (dict_size > Z_EROFS_LZMA_MAX_DICT_SIZE || dict_size < 4096) {
+		erofs_err(sb, "unsupported lzma dictionary size %u",
+			  dict_size);
+		return -EINVAL;
+	}
+
+	erofs_info(sb, "EXPERIMENTAL MicroLZMA in use. Use at your own risk!");
+
+	/* in case 2 z_erofs_load_lzma_config() race to avoid deadlock */
+	mutex_lock(&lzma_resize_mutex);
+
+	if (z_erofs_lzma_max_dictsize >= dict_size) {
+		mutex_unlock(&lzma_resize_mutex);
+		return 0;
+	}
+
+	/* 1. collect/isolate all streams for the following check */
+	for (i = 0; i < z_erofs_lzma_avail_strms; ++i) {
+		struct z_erofs_lzma *last;
+
+again:
+		spin_lock(&z_erofs_lzma_lock);
+		strm = z_erofs_lzma_head;
+		if (!strm) {
+			spin_unlock(&z_erofs_lzma_lock);
+			wait_event(z_erofs_lzma_wq,
+				   READ_ONCE(z_erofs_lzma_head));
+			goto again;
+		}
+		z_erofs_lzma_head = NULL;
+		spin_unlock(&z_erofs_lzma_lock);
+
+		for (last = strm; last->next; last = last->next)
+			++i;
+		last->next = head;
+		head = strm;
+	}
+
+	err = 0;
+	/* 2. walk each isolated stream and grow max dict_size if needed */
+	for (strm = head; strm; strm = strm->next) {
+		if (strm->state)
+			xz_dec_microlzma_end(strm->state);
+		strm->state = xz_dec_microlzma_alloc(XZ_PREALLOC, dict_size);
+		if (!strm->state)
+			err = -ENOMEM;
+	}
+
+	/* 3. push back all to the global list and update max dict_size */
+	spin_lock(&z_erofs_lzma_lock);
+	DBG_BUGON(z_erofs_lzma_head);
+	z_erofs_lzma_head = head;
+	spin_unlock(&z_erofs_lzma_lock);
+
+	z_erofs_lzma_max_dictsize = dict_size;
+	mutex_unlock(&lzma_resize_mutex);
+	return err;
+}
+
+int z_erofs_lzma_decompress(struct z_erofs_decompress_req *rq,
+			    struct page **pagepool)
+{
+	const unsigned int nrpages_out =
+		PAGE_ALIGN(rq->pageofs_out + rq->outputsize) >> PAGE_SHIFT;
+	const unsigned int nrpages_in =
+		PAGE_ALIGN(rq->inputsize) >> PAGE_SHIFT;
+	unsigned int inputmargin, inlen, outlen, pageofs;
+	struct z_erofs_lzma *strm;
+	u8 *kin;
+	bool bounced = false;
+	int no, ni, j, err = 0;
+
+	/* 1. get the exact LZMA compressed size */
+	kin = kmap(*rq->in);
+	inputmargin = 0;
+	while (!kin[inputmargin & ~PAGE_MASK])
+		if (!(++inputmargin & ~PAGE_MASK))
+			break;
+
+	if (inputmargin >= PAGE_SIZE) {
+		kunmap(*rq->in);
+		return -EFSCORRUPTED;
+	}
+	rq->inputsize -= inputmargin;
+
+	/* 2. get an available lzma context */
+again:
+	spin_lock(&z_erofs_lzma_lock);
+	strm = z_erofs_lzma_head;
+	if (!strm) {
+		spin_unlock(&z_erofs_lzma_lock);
+		wait_event(z_erofs_lzma_wq, READ_ONCE(z_erofs_lzma_head));
+		goto again;
+	}
+	z_erofs_lzma_head = strm->next;
+	spin_unlock(&z_erofs_lzma_lock);
+
+	/* 3. multi-call decompress */
+	inlen = rq->inputsize;
+	outlen = rq->outputsize;
+	xz_dec_microlzma_reset(strm->state, inlen, outlen,
+			       !rq->partial_decoding);
+	pageofs = rq->pageofs_out;
+	strm->buf.in = kin + inputmargin;
+	strm->buf.in_pos = 0;
+	strm->buf.in_size = min_t(u32, inlen, PAGE_SIZE - inputmargin);
+	inlen -= strm->buf.in_size;
+	strm->buf.out = NULL;
+	strm->buf.out_pos = 0;
+	strm->buf.out_size = 0;
+
+	for (ni = 0, no = -1;;) {
+		enum xz_ret xz_err;
+
+		if (strm->buf.out_pos == strm->buf.out_size) {
+			if (strm->buf.out) {
+				kunmap(rq->out[no]);
+				strm->buf.out = NULL;
+			}
+
+			if (++no >= nrpages_out || !outlen) {
+				erofs_err(rq->sb, "decompressed buf out of bound");
+				err = -EFSCORRUPTED;
+				break;
+			}
+			strm->buf.out_pos = 0;
+			strm->buf.out_size = min_t(u32, outlen,
+						   PAGE_SIZE - pageofs);
+			outlen -= strm->buf.out_size;
+			if (rq->out[no])
+				strm->buf.out = kmap(rq->out[no]) + pageofs;
+			pageofs = 0;
+		} else if (strm->buf.in_pos == strm->buf.in_size) {
+			kunmap(rq->in[ni]);
+
+			if (++ni >= nrpages_in || !inlen) {
+				erofs_err(rq->sb, "compressed buf out of bound");
+				err = -EFSCORRUPTED;
+				break;
+			}
+			strm->buf.in_pos = 0;
+			strm->buf.in_size = min_t(u32, inlen, PAGE_SIZE);
+			inlen -= strm->buf.in_size;
+			kin = kmap(rq->in[ni]);
+			strm->buf.in = kin;
+			bounced = false;
+		}
+
+		/*
+		 * Handle overlapping: Use bounced buffer if the compressed
+		 * data is under processing; Otherwise, Use short-lived pages
+		 * from the on-stack pagepool where pages share with the same
+		 * request.
+		 */
+		if (!bounced && rq->out[no] == rq->in[ni]) {
+			memcpy(strm->bounce, strm->buf.in, strm->buf.in_size);
+			strm->buf.in = strm->bounce;
+			bounced = true;
+		}
+		for (j = ni + 1; j < nrpages_in; ++j) {
+			struct page *tmppage;
+
+			if (rq->out[no] != rq->in[j])
+				continue;
+
+			DBG_BUGON(erofs_page_is_managed(EROFS_SB(rq->sb),
+							rq->in[j]));
+			tmppage = erofs_allocpage(pagepool,
+						  GFP_KERNEL | __GFP_NOFAIL);
+			set_page_private(tmppage, Z_EROFS_SHORTLIVED_PAGE);
+			copy_highpage(tmppage, rq->in[j]);
+			rq->in[j] = tmppage;
+		}
+		xz_err = xz_dec_microlzma_run(strm->state, &strm->buf);
+		DBG_BUGON(strm->buf.out_pos > strm->buf.out_size);
+		DBG_BUGON(strm->buf.in_pos > strm->buf.in_size);
+
+		if (xz_err != XZ_OK) {
+			if (xz_err == XZ_STREAM_END && !outlen)
+				break;
+			erofs_err(rq->sb, "failed to decompress %d in[%u] out[%u]",
+				  xz_err, rq->inputsize, rq->outputsize);
+			err = -EFSCORRUPTED;
+			break;
+		}
+	}
+	if (no < nrpages_out && strm->buf.out)
+		kunmap(rq->in[no]);
+	if (ni < nrpages_in)
+		kunmap(rq->in[ni]);
+	/* 4. push back LZMA stream context to the global list */
+	spin_lock(&z_erofs_lzma_lock);
+	strm->next = z_erofs_lzma_head;
+	z_erofs_lzma_head = strm;
+	spin_unlock(&z_erofs_lzma_lock);
+	wake_up(&z_erofs_lzma_wq);
+	return err;
+}
diff --git a/fs/erofs/erofs_fs.h b/fs/erofs/erofs_fs.h
index b0b23f4..083997a 100644
--- a/fs/erofs/erofs_fs.h
+++ b/fs/erofs/erofs_fs.h
@@ -21,14 +21,29 @@
 #define EROFS_FEATURE_INCOMPAT_COMPR_CFGS	0x00000002
 #define EROFS_FEATURE_INCOMPAT_BIG_PCLUSTER	0x00000002
 #define EROFS_FEATURE_INCOMPAT_CHUNKED_FILE	0x00000004
+#define EROFS_FEATURE_INCOMPAT_DEVICE_TABLE	0x00000008
+#define EROFS_FEATURE_INCOMPAT_COMPR_HEAD2	0x00000008
 #define EROFS_ALL_FEATURE_INCOMPAT		\
 	(EROFS_FEATURE_INCOMPAT_LZ4_0PADDING | \
 	 EROFS_FEATURE_INCOMPAT_COMPR_CFGS | \
 	 EROFS_FEATURE_INCOMPAT_BIG_PCLUSTER | \
-	 EROFS_FEATURE_INCOMPAT_CHUNKED_FILE)
+	 EROFS_FEATURE_INCOMPAT_CHUNKED_FILE | \
+	 EROFS_FEATURE_INCOMPAT_DEVICE_TABLE | \
+	 EROFS_FEATURE_INCOMPAT_COMPR_HEAD2)
 
 #define EROFS_SB_EXTSLOT_SIZE	16
 
+struct erofs_deviceslot {
+	union {
+		u8 uuid[16];		/* used for device manager later */
+		u8 userdata[64];	/* digest(sha256), etc. */
+	} u;
+	__le32 blocks;			/* total fs blocks of this device */
+	__le32 mapped_blkaddr;		/* map starting at mapped_blkaddr */
+	u8 reserved[56];
+};
+#define EROFS_DEVT_SLOT_SIZE	sizeof(struct erofs_deviceslot)
+
 /* erofs on-disk super block (currently 128 bytes) */
 struct erofs_super_block {
 	__le32 magic;           /* file system magic number */
@@ -54,7 +69,9 @@
 		/* customized sliding window size instead of 64k by default */
 		__le16 lz4_max_distance;
 	} __packed u1;
-	__u8 reserved2[42];
+	__le16 extra_devices;	/* # of devices besides the primary device */
+	__le16 devt_slotoff;	/* startoff = devt_slotoff * devt_slotsize */
+	__u8 reserved2[38];
 };
 
 /*
@@ -238,7 +255,7 @@
 /* 8-byte inode chunk indexes */
 struct erofs_inode_chunk_index {
 	__le16 advise;		/* always 0, don't care for now */
-	__le16 device_id;	/* back-end storage id, always 0 for now */
+	__le16 device_id;	/* back-end storage id (with bits masked) */
 	__le32 blkaddr;		/* start block address of this inode chunk */
 };
 
@@ -247,10 +264,11 @@
 
 /* available compression algorithm types (for h_algorithmtype) */
 enum {
-	Z_EROFS_COMPRESSION_LZ4	= 0,
+	Z_EROFS_COMPRESSION_LZ4		= 0,
+	Z_EROFS_COMPRESSION_LZMA	= 1,
 	Z_EROFS_COMPRESSION_MAX
 };
-#define Z_EROFS_ALL_COMPR_ALGS		(1 << (Z_EROFS_COMPRESSION_MAX - 1))
+#define Z_EROFS_ALL_COMPR_ALGS		((1 << Z_EROFS_COMPRESSION_MAX) - 1)
 
 /* 14 bytes (+ length field = 16 bytes) */
 struct z_erofs_lz4_cfgs {
@@ -259,6 +277,15 @@
 	u8 reserved[10];
 } __packed;
 
+/* 14 bytes (+ length field = 16 bytes) */
+struct z_erofs_lzma_cfgs {
+	__le32 dict_size;
+	__le16 format;
+	u8 reserved[8];
+} __packed;
+
+#define Z_EROFS_LZMA_MAX_DICT_SIZE	(8 * Z_EROFS_PCLUSTER_MAX_SIZE)
+
 /*
  * bit 0 : COMPACTED_2B indexes (0 - off; 1 - on)
  *  e.g. for 4k logical cluster size,      4B        if compacted 2B is off;
@@ -288,35 +315,34 @@
 #define Z_EROFS_VLE_LEGACY_HEADER_PADDING       8
 
 /*
- * Fixed-sized output compression ondisk Logical Extent cluster type:
- *    0 - literal (uncompressed) cluster
- *    1 - compressed cluster (for the head logical cluster)
- *    2 - compressed cluster (for the other logical clusters)
+ * Fixed-sized output compression on-disk logical cluster type:
+ *    0   - literal (uncompressed) lcluster
+ *    1,3 - compressed lcluster (for HEAD lclusters)
+ *    2   - compressed lcluster (for NONHEAD lclusters)
  *
  * In detail,
- *    0 - literal (uncompressed) cluster,
+ *    0 - literal (uncompressed) lcluster,
  *        di_advise = 0
- *        di_clusterofs = the literal data offset of the cluster
- *        di_blkaddr = the blkaddr of the literal cluster
+ *        di_clusterofs = the literal data offset of the lcluster
+ *        di_blkaddr = the blkaddr of the literal pcluster
  *
- *    1 - compressed cluster (for the head logical cluster)
- *        di_advise = 1
- *        di_clusterofs = the decompressed data offset of the cluster
- *        di_blkaddr = the blkaddr of the compressed cluster
+ *    1,3 - compressed lcluster (for HEAD lclusters)
+ *        di_advise = 1 or 3
+ *        di_clusterofs = the decompressed data offset of the lcluster
+ *        di_blkaddr = the blkaddr of the compressed pcluster
  *
- *    2 - compressed cluster (for the other logical clusters)
+ *    2 - compressed lcluster (for NONHEAD lclusters)
  *        di_advise = 2
  *        di_clusterofs =
- *           the decompressed data offset in its own head cluster
- *        di_u.delta[0] = distance to its corresponding head cluster
- *        di_u.delta[1] = distance to its corresponding tail cluster
- *                (di_advise could be 0, 1 or 2)
+ *           the decompressed data offset in its own HEAD lcluster
+ *        di_u.delta[0] = distance to this HEAD lcluster
+ *        di_u.delta[1] = distance to the next HEAD lcluster
  */
 enum {
 	Z_EROFS_VLE_CLUSTER_TYPE_PLAIN		= 0,
-	Z_EROFS_VLE_CLUSTER_TYPE_HEAD		= 1,
+	Z_EROFS_VLE_CLUSTER_TYPE_HEAD1		= 1,
 	Z_EROFS_VLE_CLUSTER_TYPE_NONHEAD	= 2,
-	Z_EROFS_VLE_CLUSTER_TYPE_RESERVED	= 3,
+	Z_EROFS_VLE_CLUSTER_TYPE_HEAD2		= 3,
 	Z_EROFS_VLE_CLUSTER_TYPE_MAX
 };
 
@@ -384,6 +410,7 @@
 	/* keep in sync between 2 index structures for better extendibility */
 	BUILD_BUG_ON(sizeof(struct erofs_inode_chunk_index) !=
 		     sizeof(struct z_erofs_vle_decompressed_index));
+	BUILD_BUG_ON(sizeof(struct erofs_deviceslot) != 128);
 
 	BUILD_BUG_ON(BIT(Z_EROFS_VLE_DI_CLUSTER_TYPE_BITS) <
 		     Z_EROFS_VLE_CLUSTER_TYPE_MAX - 1);
diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h
index 323e46d..c2eb214 100644
--- a/fs/erofs/internal.h
+++ b/fs/erofs/internal.h
@@ -47,6 +47,15 @@
 /* data type for filesystem-wide blocks number */
 typedef u32 erofs_blk_t;
 
+struct erofs_device_info {
+	char *path;
+	struct block_device *bdev;
+	struct dax_device *dax_dev;
+
+	u32 blocks;
+	u32 mapped_blkaddr;
+};
+
 struct erofs_mount_opts {
 #ifdef CONFIG_EROFS_FS_ZIP
 	/* current strategy of how to use managed cache */
@@ -60,8 +69,16 @@
 	unsigned int mount_opt;
 };
 
+struct erofs_dev_context {
+	struct idr tree;
+	struct rw_semaphore rwsem;
+
+	unsigned int extra_devices;
+};
+
 struct erofs_fs_context {
 	struct erofs_mount_opts opt;
+	struct erofs_dev_context *devs;
 };
 
 /* all filesystem-wide lz4 configurations */
@@ -74,7 +91,6 @@
 
 struct erofs_sb_info {
 	struct erofs_mount_opts opt;	/* options */
-
 #ifdef CONFIG_EROFS_FS_ZIP
 	/* list for all registered superblocks, mainly for shrinker */
 	struct list_head list;
@@ -91,12 +107,16 @@
 
 	struct erofs_sb_lz4_info lz4;
 #endif	/* CONFIG_EROFS_FS_ZIP */
+	struct erofs_dev_context *devs;
 	struct dax_device *dax_dev;
-	u32 blocks;
+	u64 total_blocks;
+	u32 primarydevice_blocks;
+
 	u32 meta_blkaddr;
 #ifdef CONFIG_EROFS_FS_XATTR
 	u32 xattr_blkaddr;
 #endif
+	u16 device_id_mask;	/* valid bits of device id to be used */
 
 	/* inode slot unit size in bit shift */
 	unsigned char islotbits;
@@ -114,6 +134,10 @@
 	u8 volume_name[16];             /* volume name */
 	u32 feature_compat;
 	u32 feature_incompat;
+
+	/* sysfs support */
+	struct kobject s_kobj;		/* /sys/fs/erofs/<devname> */
+	struct completion s_kobj_unregister;
 };
 
 #define EROFS_SB(sb) ((struct erofs_sb_info *)(sb)->s_fs_info)
@@ -212,6 +236,9 @@
 EROFS_FEATURE_FUNCS(lz4_0padding, incompat, INCOMPAT_LZ4_0PADDING)
 EROFS_FEATURE_FUNCS(compr_cfgs, incompat, INCOMPAT_COMPR_CFGS)
 EROFS_FEATURE_FUNCS(big_pcluster, incompat, INCOMPAT_BIG_PCLUSTER)
+EROFS_FEATURE_FUNCS(chunked_file, incompat, INCOMPAT_CHUNKED_FILE)
+EROFS_FEATURE_FUNCS(device_table, incompat, INCOMPAT_DEVICE_TABLE)
+EROFS_FEATURE_FUNCS(compr_head2, incompat, INCOMPAT_COMPR_HEAD2)
 EROFS_FEATURE_FUNCS(sb_chksum, compat, COMPAT_SB_CHKSUM)
 
 /* atomic flag definitions */
@@ -282,6 +309,19 @@
 			      EROFS_I_DATALAYOUT_BITS);
 }
 
+/*
+ * Different from grab_cache_page_nowait(), reclaiming is never triggered
+ * when allocating new pages.
+ */
+static inline
+struct page *erofs_grab_cache_page_nowait(struct address_space *mapping,
+					  pgoff_t index)
+{
+	return pagecache_get_page(mapping, index,
+			FGP_LOCK|FGP_CREAT|FGP_NOFS|FGP_NOWAIT,
+			readahead_gfp_mask(mapping) & ~__GFP_RECLAIM);
+}
+
 extern const struct super_operations erofs_sops;
 
 extern const struct address_space_operations erofs_raw_access_aops;
@@ -313,7 +353,7 @@
  * of the corresponding uncompressed data in the file.
  */
 enum {
-	BH_Zipped = BH_PrivateStart,
+	BH_Encoded = BH_PrivateStart,
 	BH_FullMapped,
 };
 
@@ -321,8 +361,8 @@
 #define EROFS_MAP_MAPPED	(1 << BH_Mapped)
 /* Located in metadata (could be copied from bd_inode) */
 #define EROFS_MAP_META		(1 << BH_Meta)
-/* The extent has been compressed */
-#define EROFS_MAP_ZIPPED	(1 << BH_Zipped)
+/* The extent is encoded */
+#define EROFS_MAP_ENCODED	(1 << BH_Encoded)
 /* The length of extent is full */
 #define EROFS_MAP_FULL_MAPPED	(1 << BH_FullMapped)
 
@@ -330,6 +370,8 @@
 	erofs_off_t m_pa, m_la;
 	u64 m_plen, m_llen;
 
+	unsigned short m_deviceid;
+	char m_algorithmformat;
 	unsigned int m_flags;
 
 	struct page *mpage;
@@ -342,6 +384,13 @@
  * approach instead if possible since it's more metadata lightweight.)
  */
 #define EROFS_GET_BLOCKS_FIEMAP	0x0002
+/* Used to map the whole extent if non-negligible data is requested for LZMA */
+#define EROFS_GET_BLOCKS_READMORE	0x0004
+
+enum {
+	Z_EROFS_COMPRESSION_SHIFTED = Z_EROFS_COMPRESSION_MAX,
+	Z_EROFS_COMPRESSION_RUNTIME_MAX
+};
 
 /* zmap.c */
 extern const struct iomap_ops z_erofs_iomap_report_ops;
@@ -361,9 +410,18 @@
 }
 #endif	/* !CONFIG_EROFS_FS_ZIP */
 
+struct erofs_map_dev {
+	struct block_device *m_bdev;
+	struct dax_device *m_daxdev;
+
+	erofs_off_t m_pa;
+	unsigned int m_deviceid;
+};
+
 /* data.c */
 extern const struct file_operations erofs_file_fops;
 struct page *erofs_get_meta_page(struct super_block *sb, erofs_blk_t blkaddr);
+int erofs_map_dev(struct super_block *sb, struct erofs_map_dev *dev);
 int erofs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
 		 u64 start, u64 len);
 
@@ -417,8 +475,21 @@
 void erofs_pcpubuf_init(void);
 void erofs_pcpubuf_exit(void);
 
+/* sysfs.c */
+int erofs_register_sysfs(struct super_block *sb);
+void erofs_unregister_sysfs(struct super_block *sb);
+int __init erofs_init_sysfs(void);
+void erofs_exit_sysfs(void);
+
 /* utils.c / zdata.c */
-struct page *erofs_allocpage(struct list_head *pool, gfp_t gfp);
+struct page *erofs_allocpage(struct page **pagepool, gfp_t gfp);
+static inline void erofs_pagepool_add(struct page **pagepool,
+		struct page *page)
+{
+	set_page_private(page, (unsigned long)*pagepool);
+	*pagepool = page;
+}
+void erofs_release_pages(struct page **pagepool);
 
 #ifdef CONFIG_EROFS_FS_ZIP
 int erofs_workgroup_put(struct erofs_workgroup *grp);
@@ -458,6 +529,26 @@
 }
 #endif	/* !CONFIG_EROFS_FS_ZIP */
 
+#ifdef CONFIG_EROFS_FS_ZIP_LZMA
+int z_erofs_lzma_init(void);
+void z_erofs_lzma_exit(void);
+int z_erofs_load_lzma_config(struct super_block *sb,
+			     struct erofs_super_block *dsb,
+			     struct z_erofs_lzma_cfgs *lzma, int size);
+#else
+static inline int z_erofs_lzma_init(void) { return 0; }
+static inline int z_erofs_lzma_exit(void) { return 0; }
+static inline int z_erofs_load_lzma_config(struct super_block *sb,
+			     struct erofs_super_block *dsb,
+			     struct z_erofs_lzma_cfgs *lzma, int size) {
+	if (lzma) {
+		erofs_err(sb, "lzma algorithm isn't enabled");
+		return -EINVAL;
+	}
+	return 0;
+}
+#endif	/* !CONFIG_EROFS_FS_ZIP */
+
 #define EFSCORRUPTED    EUCLEAN         /* Filesystem is corrupted */
 
 #endif	/* __EROFS_INTERNAL_H */
diff --git a/fs/erofs/pcpubuf.c b/fs/erofs/pcpubuf.c
index 6c88557..a2efd83 100644
--- a/fs/erofs/pcpubuf.c
+++ b/fs/erofs/pcpubuf.c
@@ -49,7 +49,7 @@
 {
 	static DEFINE_MUTEX(pcb_resize_mutex);
 	static unsigned int pcb_nrpages;
-	LIST_HEAD(pagepool);
+	struct page *pagepool = NULL;
 	int delta, cpu, ret, i;
 
 	mutex_lock(&pcb_resize_mutex);
@@ -102,13 +102,13 @@
 			vunmap(old_ptr);
 free_pagearray:
 		while (i)
-			list_add(&oldpages[--i]->lru, &pagepool);
+			erofs_pagepool_add(&pagepool, oldpages[--i]);
 		kfree(oldpages);
 		if (ret)
 			break;
 	}
 	pcb_nrpages = nrpages;
-	put_pages_list(&pagepool);
+	erofs_release_pages(&pagepool);
 out:
 	mutex_unlock(&pcb_resize_mutex);
 	return ret;
diff --git a/fs/erofs/super.c b/fs/erofs/super.c
index 25f6b8b..b84394d 100644
--- a/fs/erofs/super.c
+++ b/fs/erofs/super.c
@@ -225,6 +225,9 @@
 		case Z_EROFS_COMPRESSION_LZ4:
 			ret = z_erofs_load_lz4_config(sb, dsb, data, size);
 			break;
+		case Z_EROFS_COMPRESSION_LZMA:
+			ret = z_erofs_load_lzma_config(sb, dsb, data, size);
+			break;
 		default:
 			DBG_BUGON(1);
 			ret = -EFAULT;
@@ -252,6 +255,79 @@
 }
 #endif
 
+static int erofs_init_devices(struct super_block *sb,
+			      struct erofs_super_block *dsb)
+{
+	struct erofs_sb_info *sbi = EROFS_SB(sb);
+	unsigned int ondisk_extradevs;
+	erofs_off_t pos;
+	struct page *page = NULL;
+	struct erofs_device_info *dif;
+	struct erofs_deviceslot *dis;
+	void *ptr;
+	int id, err = 0;
+
+	sbi->total_blocks = sbi->primarydevice_blocks;
+	if (!erofs_sb_has_device_table(sbi))
+		ondisk_extradevs = 0;
+	else
+		ondisk_extradevs = le16_to_cpu(dsb->extra_devices);
+
+	if (ondisk_extradevs != sbi->devs->extra_devices) {
+		erofs_err(sb, "extra devices don't match (ondisk %u, given %u)",
+			  ondisk_extradevs, sbi->devs->extra_devices);
+		return -EINVAL;
+	}
+	if (!ondisk_extradevs)
+		return 0;
+
+	sbi->device_id_mask = roundup_pow_of_two(ondisk_extradevs + 1) - 1;
+	pos = le16_to_cpu(dsb->devt_slotoff) * EROFS_DEVT_SLOT_SIZE;
+	down_read(&sbi->devs->rwsem);
+	idr_for_each_entry(&sbi->devs->tree, dif, id) {
+		erofs_blk_t blk = erofs_blknr(pos);
+		struct block_device *bdev;
+
+		if (!page || page->index != blk) {
+			if (page) {
+				kunmap(page);
+				unlock_page(page);
+				put_page(page);
+			}
+
+			page = erofs_get_meta_page(sb, blk);
+			if (IS_ERR(page)) {
+				up_read(&sbi->devs->rwsem);
+				return PTR_ERR(page);
+			}
+			ptr = kmap(page);
+		}
+		dis = ptr + erofs_blkoff(pos);
+
+		bdev = blkdev_get_by_path(dif->path,
+					  FMODE_READ | FMODE_EXCL,
+					  sb->s_type);
+		if (IS_ERR(bdev)) {
+			err = PTR_ERR(bdev);
+			goto err_out;
+		}
+		dif->bdev = bdev;
+		dif->dax_dev = fs_dax_get_by_bdev(bdev);
+		dif->blocks = le32_to_cpu(dis->blocks);
+		dif->mapped_blkaddr = le32_to_cpu(dis->mapped_blkaddr);
+		sbi->total_blocks += dif->blocks;
+		pos += EROFS_DEVT_SLOT_SIZE;
+	}
+err_out:
+	up_read(&sbi->devs->rwsem);
+	if (page) {
+		kunmap(page);
+		unlock_page(page);
+		put_page(page);
+	}
+	return err;
+}
+
 static int erofs_read_superblock(struct super_block *sb)
 {
 	struct erofs_sb_info *sbi;
@@ -303,7 +379,7 @@
 			  sbi->sb_size);
 		goto out;
 	}
-	sbi->blocks = le32_to_cpu(dsb->blocks);
+	sbi->primarydevice_blocks = le32_to_cpu(dsb->blocks);
 	sbi->meta_blkaddr = le32_to_cpu(dsb->meta_blkaddr);
 #ifdef CONFIG_EROFS_FS_XATTR
 	sbi->xattr_blkaddr = le32_to_cpu(dsb->xattr_blkaddr);
@@ -330,6 +406,11 @@
 		ret = erofs_load_compr_cfgs(sb, dsb);
 	else
 		ret = z_erofs_load_lz4_config(sb, dsb, NULL, 0);
+	if (ret < 0)
+		goto out;
+
+	/* handle multiple devices */
+	ret = erofs_init_devices(sb, dsb);
 out:
 	kunmap(page);
 	put_page(page);
@@ -358,6 +439,7 @@
 	Opt_cache_strategy,
 	Opt_dax,
 	Opt_dax_enum,
+	Opt_device,
 	Opt_err
 };
 
@@ -381,6 +463,7 @@
 		     erofs_param_cache_strategy),
 	fsparam_flag("dax",             Opt_dax),
 	fsparam_enum("dax",		Opt_dax_enum, erofs_dax_param_enums),
+	fsparam_string("device",	Opt_device),
 	{}
 };
 
@@ -412,9 +495,10 @@
 static int erofs_fc_parse_param(struct fs_context *fc,
 				struct fs_parameter *param)
 {
-	struct erofs_fs_context *ctx __maybe_unused = fc->fs_private;
+	struct erofs_fs_context *ctx = fc->fs_private;
 	struct fs_parse_result result;
-	int opt;
+	struct erofs_device_info *dif;
+	int opt, ret;
 
 	opt = fs_parse(fc, erofs_fs_parameters, param, &result);
 	if (opt < 0)
@@ -456,6 +540,25 @@
 		if (!erofs_fc_set_dax_mode(fc, result.uint_32))
 			return -EINVAL;
 		break;
+	case Opt_device:
+		dif = kzalloc(sizeof(*dif), GFP_KERNEL);
+		if (!dif)
+			return -ENOMEM;
+		dif->path = kstrdup(param->string, GFP_KERNEL);
+		if (!dif->path) {
+			kfree(dif);
+			return -ENOMEM;
+		}
+		down_write(&ctx->devs->rwsem);
+		ret = idr_alloc(&ctx->devs->tree, dif, 0, 0, GFP_KERNEL);
+		up_write(&ctx->devs->rwsem);
+		if (ret < 0) {
+			kfree(dif->path);
+			kfree(dif);
+			return ret;
+		}
+		++ctx->devs->extra_devices;
+		break;
 	default:
 		return -ENOPARAM;
 	}
@@ -542,6 +645,9 @@
 	sb->s_fs_info = sbi;
 	sbi->opt = ctx->opt;
 	sbi->dax_dev = fs_dax_get_by_bdev(sb->s_bdev);
+	sbi->devs = ctx->devs;
+	ctx->devs = NULL;
+
 	err = erofs_read_superblock(sb);
 	if (err)
 		return err;
@@ -589,6 +695,10 @@
 	if (err)
 		return err;
 
+	err = erofs_register_sysfs(sb);
+	if (err)
+		return err;
+
 	erofs_info(sb, "mounted with root inode @ nid %llu.", ROOT_NID(sbi));
 	return 0;
 }
@@ -617,9 +727,33 @@
 	return 0;
 }
 
+static int erofs_release_device_info(int id, void *ptr, void *data)
+{
+	struct erofs_device_info *dif = ptr;
+
+	fs_put_dax(dif->dax_dev);
+	if (dif->bdev)
+		blkdev_put(dif->bdev, FMODE_READ | FMODE_EXCL);
+	kfree(dif->path);
+	kfree(dif);
+	return 0;
+}
+
+static void erofs_free_dev_context(struct erofs_dev_context *devs)
+{
+	if (!devs)
+		return;
+	idr_for_each(&devs->tree, &erofs_release_device_info, NULL);
+	idr_destroy(&devs->tree);
+	kfree(devs);
+}
+
 static void erofs_fc_free(struct fs_context *fc)
 {
-	kfree(fc->fs_private);
+	struct erofs_fs_context *ctx = fc->fs_private;
+
+	erofs_free_dev_context(ctx->devs);
+	kfree(ctx);
 }
 
 static const struct fs_context_operations erofs_context_ops = {
@@ -631,13 +765,20 @@
 
 static int erofs_init_fs_context(struct fs_context *fc)
 {
-	fc->fs_private = kzalloc(sizeof(struct erofs_fs_context), GFP_KERNEL);
-	if (!fc->fs_private)
+	struct erofs_fs_context *ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+
+	if (!ctx)
 		return -ENOMEM;
+	ctx->devs = kzalloc(sizeof(struct erofs_dev_context), GFP_KERNEL);
+	if (!ctx->devs) {
+		kfree(ctx);
+		return -ENOMEM;
+	}
+	fc->fs_private = ctx;
 
-	/* set default mount options */
-	erofs_default_options(fc->fs_private);
-
+	idr_init(&ctx->devs->tree);
+	init_rwsem(&ctx->devs->rwsem);
+	erofs_default_options(ctx);
 	fc->ops = &erofs_context_ops;
 	return 0;
 }
@@ -657,6 +798,8 @@
 	sbi = EROFS_SB(sb);
 	if (!sbi)
 		return;
+
+	erofs_free_dev_context(sbi->devs);
 	fs_put_dax(sbi->dax_dev);
 	kfree(sbi);
 	sb->s_fs_info = NULL;
@@ -669,6 +812,7 @@
 
 	DBG_BUGON(!sbi);
 
+	erofs_unregister_sysfs(sb);
 	erofs_shrinker_unregister(sb);
 #ifdef CONFIG_EROFS_FS_ZIP
 	iput(sbi->managed_cache);
@@ -704,11 +848,19 @@
 	if (err)
 		goto shrinker_err;
 
+	err = z_erofs_lzma_init();
+	if (err)
+		goto lzma_err;
+
 	erofs_pcpubuf_init();
 	err = z_erofs_init_zip_subsystem();
 	if (err)
 		goto zip_err;
 
+	err = erofs_init_sysfs();
+	if (err)
+		goto sysfs_err;
+
 	err = register_filesystem(&erofs_fs_type);
 	if (err)
 		goto fs_err;
@@ -716,8 +868,12 @@
 	return 0;
 
 fs_err:
+	erofs_exit_sysfs();
+sysfs_err:
 	z_erofs_exit_zip_subsystem();
 zip_err:
+	z_erofs_lzma_exit();
+lzma_err:
 	erofs_exit_shrinker();
 shrinker_err:
 	kmem_cache_destroy(erofs_inode_cachep);
@@ -728,11 +884,14 @@
 static void __exit erofs_module_exit(void)
 {
 	unregister_filesystem(&erofs_fs_type);
-	z_erofs_exit_zip_subsystem();
-	erofs_exit_shrinker();
 
-	/* Ensure all RCU free inodes are safe before cache is destroyed. */
+	/* Ensure all RCU free inodes / pclusters are safe to be destroyed. */
 	rcu_barrier();
+
+	erofs_exit_sysfs();
+	z_erofs_exit_zip_subsystem();
+	z_erofs_lzma_exit();
+	erofs_exit_shrinker();
 	kmem_cache_destroy(erofs_inode_cachep);
 	erofs_pcpubuf_exit();
 }
@@ -746,7 +905,7 @@
 
 	buf->f_type = sb->s_magic;
 	buf->f_bsize = EROFS_BLKSIZ;
-	buf->f_blocks = sbi->blocks;
+	buf->f_blocks = sbi->total_blocks;
 	buf->f_bfree = buf->f_bavail = 0;
 
 	buf->f_files = ULLONG_MAX;
@@ -804,3 +963,4 @@
 MODULE_DESCRIPTION("Enhanced ROM File System");
 MODULE_AUTHOR("Gao Xiang, Chao Yu, Miao Xie, CONSUMER BG, HUAWEI Inc.");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/erofs/sysfs.c b/fs/erofs/sysfs.c
new file mode 100644
index 0000000..dd122dd
--- /dev/null
+++ b/fs/erofs/sysfs.c
@@ -0,0 +1,241 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C), 2008-2021, OPPO Mobile Comm Corp., Ltd.
+ *             https://www.oppo.com/
+ */
+#include <linux/sysfs.h>
+#include <linux/kobject.h>
+
+#include "internal.h"
+
+enum {
+	attr_feature,
+	attr_pointer_ui,
+	attr_pointer_bool,
+};
+
+enum {
+	struct_erofs_sb_info,
+};
+
+struct erofs_attr {
+	struct attribute attr;
+	short attr_id;
+	int struct_type, offset;
+};
+
+#define EROFS_ATTR(_name, _mode, _id)					\
+static struct erofs_attr erofs_attr_##_name = {				\
+	.attr = {.name = __stringify(_name), .mode = _mode },		\
+	.attr_id = attr_##_id,						\
+}
+#define EROFS_ATTR_FUNC(_name, _mode)	EROFS_ATTR(_name, _mode, _name)
+#define EROFS_ATTR_FEATURE(_name)	EROFS_ATTR(_name, 0444, feature)
+
+#define EROFS_ATTR_OFFSET(_name, _mode, _id, _struct)	\
+static struct erofs_attr erofs_attr_##_name = {			\
+	.attr = {.name = __stringify(_name), .mode = _mode },	\
+	.attr_id = attr_##_id,					\
+	.struct_type = struct_##_struct,			\
+	.offset = offsetof(struct _struct, _name),\
+}
+
+#define EROFS_ATTR_RW(_name, _id, _struct)	\
+	EROFS_ATTR_OFFSET(_name, 0644, _id, _struct)
+
+#define EROFS_RO_ATTR(_name, _id, _struct)	\
+	EROFS_ATTR_OFFSET(_name, 0444, _id, _struct)
+
+#define EROFS_ATTR_RW_UI(_name, _struct)	\
+	EROFS_ATTR_RW(_name, pointer_ui, _struct)
+
+#define EROFS_ATTR_RW_BOOL(_name, _struct)	\
+	EROFS_ATTR_RW(_name, pointer_bool, _struct)
+
+#define ATTR_LIST(name) (&erofs_attr_##name.attr)
+
+static struct attribute *erofs_attrs[] = {
+	NULL,
+};
+ATTRIBUTE_GROUPS(erofs);
+
+/* Features this copy of erofs supports */
+EROFS_ATTR_FEATURE(zero_padding);
+EROFS_ATTR_FEATURE(compr_cfgs);
+EROFS_ATTR_FEATURE(big_pcluster);
+EROFS_ATTR_FEATURE(chunked_file);
+EROFS_ATTR_FEATURE(device_table);
+EROFS_ATTR_FEATURE(compr_head2);
+EROFS_ATTR_FEATURE(sb_chksum);
+
+static struct attribute *erofs_feat_attrs[] = {
+	ATTR_LIST(zero_padding),
+	ATTR_LIST(compr_cfgs),
+	ATTR_LIST(big_pcluster),
+	ATTR_LIST(chunked_file),
+	ATTR_LIST(device_table),
+	ATTR_LIST(compr_head2),
+	ATTR_LIST(sb_chksum),
+	NULL,
+};
+ATTRIBUTE_GROUPS(erofs_feat);
+
+static unsigned char *__struct_ptr(struct erofs_sb_info *sbi,
+					  int struct_type, int offset)
+{
+	if (struct_type == struct_erofs_sb_info)
+		return (unsigned char *)sbi + offset;
+	return NULL;
+}
+
+static ssize_t erofs_attr_show(struct kobject *kobj,
+				struct attribute *attr, char *buf)
+{
+	struct erofs_sb_info *sbi = container_of(kobj, struct erofs_sb_info,
+						s_kobj);
+	struct erofs_attr *a = container_of(attr, struct erofs_attr, attr);
+	unsigned char *ptr = __struct_ptr(sbi, a->struct_type, a->offset);
+
+	switch (a->attr_id) {
+	case attr_feature:
+		return sysfs_emit(buf, "supported\n");
+	case attr_pointer_ui:
+		if (!ptr)
+			return 0;
+		return sysfs_emit(buf, "%u\n", *(unsigned int *)ptr);
+	case attr_pointer_bool:
+		if (!ptr)
+			return 0;
+		return sysfs_emit(buf, "%d\n", *(bool *)ptr);
+	}
+	return 0;
+}
+
+static ssize_t erofs_attr_store(struct kobject *kobj, struct attribute *attr,
+						const char *buf, size_t len)
+{
+	struct erofs_sb_info *sbi = container_of(kobj, struct erofs_sb_info,
+						s_kobj);
+	struct erofs_attr *a = container_of(attr, struct erofs_attr, attr);
+	unsigned char *ptr = __struct_ptr(sbi, a->struct_type, a->offset);
+	unsigned long t;
+	int ret;
+
+	switch (a->attr_id) {
+	case attr_pointer_ui:
+		if (!ptr)
+			return 0;
+		ret = kstrtoul(skip_spaces(buf), 0, &t);
+		if (ret)
+			return ret;
+		if (t != (unsigned int)t)
+			return -ERANGE;
+		*(unsigned int *)ptr = t;
+		return len;
+	case attr_pointer_bool:
+		if (!ptr)
+			return 0;
+		ret = kstrtoul(skip_spaces(buf), 0, &t);
+		if (ret)
+			return ret;
+		if (t != 0 && t != 1)
+			return -EINVAL;
+		*(bool *)ptr = !!t;
+		return len;
+	}
+	return 0;
+}
+
+static void erofs_sb_release(struct kobject *kobj)
+{
+	struct erofs_sb_info *sbi = container_of(kobj, struct erofs_sb_info,
+						 s_kobj);
+	complete(&sbi->s_kobj_unregister);
+}
+
+static const struct sysfs_ops erofs_attr_ops = {
+	.show	= erofs_attr_show,
+	.store	= erofs_attr_store,
+};
+
+static struct kobj_type erofs_sb_ktype = {
+	.default_groups = erofs_groups,
+	.sysfs_ops	= &erofs_attr_ops,
+	.release	= erofs_sb_release,
+};
+
+static struct kobj_type erofs_ktype = {
+	.sysfs_ops	= &erofs_attr_ops,
+};
+
+static struct kset erofs_root = {
+	.kobj	= {.ktype = &erofs_ktype},
+};
+
+static struct kobj_type erofs_feat_ktype = {
+	.default_groups = erofs_feat_groups,
+	.sysfs_ops	= &erofs_attr_ops,
+};
+
+static struct kobject erofs_feat = {
+	.kset	= &erofs_root,
+};
+
+int erofs_register_sysfs(struct super_block *sb)
+{
+	struct erofs_sb_info *sbi = EROFS_SB(sb);
+	int err;
+
+	sbi->s_kobj.kset = &erofs_root;
+	init_completion(&sbi->s_kobj_unregister);
+	err = kobject_init_and_add(&sbi->s_kobj, &erofs_sb_ktype, NULL,
+				   "%s", sb->s_id);
+	if (err)
+		goto put_sb_kobj;
+	return 0;
+
+put_sb_kobj:
+	kobject_put(&sbi->s_kobj);
+	wait_for_completion(&sbi->s_kobj_unregister);
+	return err;
+}
+
+void erofs_unregister_sysfs(struct super_block *sb)
+{
+	struct erofs_sb_info *sbi = EROFS_SB(sb);
+
+	if (sbi->s_kobj.state_in_sysfs) {
+		kobject_del(&sbi->s_kobj);
+		kobject_put(&sbi->s_kobj);
+		wait_for_completion(&sbi->s_kobj_unregister);
+	}
+}
+
+int __init erofs_init_sysfs(void)
+{
+	int ret;
+
+	kobject_set_name(&erofs_root.kobj, "erofs");
+	erofs_root.kobj.parent = fs_kobj;
+	ret = kset_register(&erofs_root);
+	if (ret)
+		goto root_err;
+
+	ret = kobject_init_and_add(&erofs_feat, &erofs_feat_ktype,
+				   NULL, "features");
+	if (ret)
+		goto feat_err;
+	return ret;
+
+feat_err:
+	kobject_put(&erofs_feat);
+	kset_unregister(&erofs_root);
+root_err:
+	return ret;
+}
+
+void erofs_exit_sysfs(void)
+{
+	kobject_put(&erofs_feat);
+	kset_unregister(&erofs_root);
+}
diff --git a/fs/erofs/utils.c b/fs/erofs/utils.c
index 3ca703c..ec9a1d7 100644
--- a/fs/erofs/utils.c
+++ b/fs/erofs/utils.c
@@ -6,20 +6,29 @@
 #include "internal.h"
 #include <linux/pagevec.h>
 
-struct page *erofs_allocpage(struct list_head *pool, gfp_t gfp)
+struct page *erofs_allocpage(struct page **pagepool, gfp_t gfp)
 {
-	struct page *page;
+	struct page *page = *pagepool;
 
-	if (!list_empty(pool)) {
-		page = lru_to_page(pool);
+	if (page) {
 		DBG_BUGON(page_ref_count(page) != 1);
-		list_del(&page->lru);
+		*pagepool = (struct page *)page_private(page);
 	} else {
 		page = alloc_page(gfp);
 	}
 	return page;
 }
 
+void erofs_release_pages(struct page **pagepool)
+{
+	while (*pagepool) {
+		struct page *page = *pagepool;
+
+		*pagepool = (struct page *)page_private(page);
+		put_page(page);
+	}
+}
+
 #ifdef CONFIG_EROFS_FS_ZIP
 /* global shrink count (for all mounted EROFS instances) */
 static atomic_long_t erofs_global_shrink_cnt;
diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c
index f6536b2..608106d 100644
--- a/fs/erofs/zdata.c
+++ b/fs/erofs/zdata.c
@@ -6,7 +6,7 @@
 #include "zdata.h"
 #include "compress.h"
 #include <linux/prefetch.h>
-
+#include <linux/cpuhotplug.h>
 #include <trace/events/erofs.h>
 
 /*
@@ -96,16 +96,9 @@
 	DBG_BUGON(1);
 }
 
-/*
- * a compressed_pages[] placeholder in order to avoid
- * being filled with file pages for in-place decompression.
- */
-#define PAGE_UNALLOCATED     ((void *)0x5F0E4B1D)
-
 /* how to allocate cached pages for a pcluster */
 enum z_erofs_cache_alloctype {
 	DONTALLOC,	/* don't allocate any cached pages */
-	DELAYEDALLOC,	/* delayed allocation (at the time of submitting io) */
 	/*
 	 * try to use cached I/O if page allocation succeeds or fallback
 	 * to in-place I/O instead to avoid any direct reclaim.
@@ -124,24 +117,128 @@
 
 static struct workqueue_struct *z_erofs_workqueue __read_mostly;
 
-void z_erofs_exit_zip_subsystem(void)
+#ifdef CONFIG_EROFS_FS_PCPU_KTHREAD
+static struct kthread_worker __rcu **z_erofs_pcpu_workers;
+
+static void erofs_destroy_percpu_workers(void)
 {
-	destroy_workqueue(z_erofs_workqueue);
-	z_erofs_destroy_pcluster_pool();
+	struct kthread_worker *worker;
+	unsigned int cpu;
+
+	for_each_possible_cpu(cpu) {
+		worker = rcu_dereference_protected(
+					z_erofs_pcpu_workers[cpu], 1);
+		rcu_assign_pointer(z_erofs_pcpu_workers[cpu], NULL);
+		if (worker)
+			kthread_destroy_worker(worker);
+	}
+	kfree(z_erofs_pcpu_workers);
 }
 
-static inline int z_erofs_init_workqueue(void)
+static struct kthread_worker *erofs_init_percpu_worker(int cpu)
 {
-	const unsigned int onlinecpus = num_possible_cpus();
+	struct kthread_worker *worker =
+		kthread_create_worker_on_cpu(cpu, 0, "erofs_worker/%u", cpu);
 
-	/*
-	 * no need to spawn too many threads, limiting threads could minimum
-	 * scheduling overhead, perhaps per-CPU threads should be better?
-	 */
-	z_erofs_workqueue = alloc_workqueue("erofs_unzipd",
-					    WQ_UNBOUND | WQ_HIGHPRI,
-					    onlinecpus + onlinecpus / 4);
-	return z_erofs_workqueue ? 0 : -ENOMEM;
+	if (IS_ERR(worker))
+		return worker;
+	if (IS_ENABLED(CONFIG_EROFS_FS_PCPU_KTHREAD_HIPRI))
+		sched_set_fifo_low(worker->task);
+	else
+		sched_set_normal(worker->task, 0);
+	return worker;
+}
+
+static int erofs_init_percpu_workers(void)
+{
+	struct kthread_worker *worker;
+	unsigned int cpu;
+
+	z_erofs_pcpu_workers = kcalloc(num_possible_cpus(),
+			sizeof(struct kthread_worker *), GFP_ATOMIC);
+	if (!z_erofs_pcpu_workers)
+		return -ENOMEM;
+
+	for_each_online_cpu(cpu) {	/* could miss cpu{off,on}line? */
+		worker = erofs_init_percpu_worker(cpu);
+		if (!IS_ERR(worker))
+			rcu_assign_pointer(z_erofs_pcpu_workers[cpu], worker);
+	}
+	return 0;
+}
+#else
+static inline void erofs_destroy_percpu_workers(void) {}
+static inline int erofs_init_percpu_workers(void) { return 0; }
+#endif
+
+#if defined(CONFIG_HOTPLUG_CPU) && defined(CONFIG_EROFS_FS_PCPU_KTHREAD)
+static DEFINE_SPINLOCK(z_erofs_pcpu_worker_lock);
+static enum cpuhp_state erofs_cpuhp_state;
+
+static int erofs_cpu_online(unsigned int cpu)
+{
+	struct kthread_worker *worker, *old;
+
+	worker = erofs_init_percpu_worker(cpu);
+	if (IS_ERR(worker))
+		return PTR_ERR(worker);
+
+	spin_lock(&z_erofs_pcpu_worker_lock);
+	old = rcu_dereference_protected(z_erofs_pcpu_workers[cpu],
+			lockdep_is_held(&z_erofs_pcpu_worker_lock));
+	if (!old)
+		rcu_assign_pointer(z_erofs_pcpu_workers[cpu], worker);
+	spin_unlock(&z_erofs_pcpu_worker_lock);
+	if (old)
+		kthread_destroy_worker(worker);
+	return 0;
+}
+
+static int erofs_cpu_offline(unsigned int cpu)
+{
+	struct kthread_worker *worker;
+
+	spin_lock(&z_erofs_pcpu_worker_lock);
+	worker = rcu_dereference_protected(z_erofs_pcpu_workers[cpu],
+			lockdep_is_held(&z_erofs_pcpu_worker_lock));
+	rcu_assign_pointer(z_erofs_pcpu_workers[cpu], NULL);
+	spin_unlock(&z_erofs_pcpu_worker_lock);
+
+	synchronize_rcu();
+	if (worker)
+		kthread_destroy_worker(worker);
+	return 0;
+}
+
+static int erofs_cpu_hotplug_init(void)
+{
+	int state;
+
+	state = cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN,
+			"fs/erofs:online", erofs_cpu_online, erofs_cpu_offline);
+	if (state < 0)
+		return state;
+
+	erofs_cpuhp_state = state;
+	return 0;
+}
+
+static void erofs_cpu_hotplug_destroy(void)
+{
+	if (erofs_cpuhp_state)
+		cpuhp_remove_state_nocalls(erofs_cpuhp_state);
+}
+#else /* !CONFIG_HOTPLUG_CPU || !CONFIG_EROFS_FS_PCPU_KTHREAD */
+static inline int erofs_cpu_hotplug_init(void) { return 0; }
+static inline void erofs_cpu_hotplug_destroy(void) {}
+#endif
+
+void z_erofs_exit_zip_subsystem(void)
+{
+	erofs_cpu_hotplug_destroy();
+	erofs_destroy_percpu_workers();
+	destroy_workqueue(z_erofs_workqueue);
+	z_erofs_destroy_pcluster_pool();
 }
 
 int __init z_erofs_init_zip_subsystem(void)
@@ -149,10 +246,31 @@
 	int err = z_erofs_create_pcluster_pool();
 
 	if (err)
-		return err;
-	err = z_erofs_init_workqueue();
+		goto out_error_pcluster_pool;
+
+	z_erofs_workqueue = alloc_workqueue("erofs_worker",
+			WQ_UNBOUND | WQ_HIGHPRI, num_possible_cpus());
+	if (!z_erofs_workqueue) {
+		err = -ENOMEM;
+		goto out_error_workqueue_init;
+	}
+
+	err = erofs_init_percpu_workers();
 	if (err)
-		z_erofs_destroy_pcluster_pool();
+		goto out_error_pcpu_worker;
+
+	err = erofs_cpu_hotplug_init();
+	if (err < 0)
+		goto out_error_cpuhp_init;
+	return err;
+
+out_error_cpuhp_init:
+	erofs_destroy_percpu_workers();
+out_error_pcpu_worker:
+	destroy_workqueue(z_erofs_workqueue);
+out_error_workqueue_init:
+	z_erofs_destroy_pcluster_pool();
+out_error_pcluster_pool:
 	return err;
 }
 
@@ -236,7 +354,7 @@
 static void preload_compressed_pages(struct z_erofs_collector *clt,
 				     struct address_space *mc,
 				     enum z_erofs_cache_alloctype type,
-				     struct list_head *pagepool)
+				     struct page **pagepool)
 {
 	struct z_erofs_pcluster *pcl = clt->pcl;
 	bool standalone = true;
@@ -267,10 +385,6 @@
 			/* I/O is needed, no possible to decompress directly */
 			standalone = false;
 			switch (type) {
-			case DELAYEDALLOC:
-				t = tagptr_init(compressed_page_t,
-						PAGE_UNALLOCATED);
-				break;
 			case TRYALLOC:
 				newpage = erofs_allocpage(pagepool, gfp);
 				if (!newpage)
@@ -287,12 +401,10 @@
 		if (!cmpxchg_relaxed(pages, NULL, tagptr_cast_ptr(t)))
 			continue;
 
-		if (page) {
+		if (page)
 			put_page(page);
-		} else if (newpage) {
-			set_page_private(newpage, 0);
-			list_add(&newpage->lru, pagepool);
-		}
+		else if (newpage)
+			erofs_pagepool_add(pagepool, newpage);
 	}
 
 	/*
@@ -476,6 +588,11 @@
 	struct erofs_workgroup *grp;
 	int err;
 
+	if (!(map->m_flags & EROFS_MAP_ENCODED)) {
+		DBG_BUGON(1);
+		return -EFSCORRUPTED;
+	}
+
 	/* no available pcluster, let's allocate one */
 	pcl = z_erofs_alloc_pcluster(map->m_plen >> PAGE_SHIFT);
 	if (IS_ERR(pcl))
@@ -483,16 +600,11 @@
 
 	atomic_set(&pcl->obj.refcount, 1);
 	pcl->obj.index = map->m_pa >> PAGE_SHIFT;
-
+	pcl->algorithmformat = map->m_algorithmformat;
 	pcl->length = (map->m_llen << Z_EROFS_PCLUSTER_LENGTH_BIT) |
 		(map->m_flags & EROFS_MAP_FULL_MAPPED ?
 			Z_EROFS_PCLUSTER_FULL_LENGTH : 0);
 
-	if (map->m_flags & EROFS_MAP_ZIPPED)
-		pcl->algorithmformat = Z_EROFS_COMPRESSION_LZ4;
-	else
-		pcl->algorithmformat = Z_EROFS_COMPRESSION_SHIFTED;
-
 	/* new pclusters should be claimed as type 1, primary and followed */
 	pcl->next = clt->owned_head;
 	clt->mode = COLLECT_PRIMARY_FOLLOWED;
@@ -643,7 +755,7 @@
 }
 
 static int z_erofs_do_read_page(struct z_erofs_decompress_frontend *fe,
-				struct page *page, struct list_head *pagepool)
+				struct page *page, struct page **pagepool)
 {
 	struct inode *const inode = fe->inode;
 	struct erofs_sb_info *const sbi = EROFS_I_SB(inode);
@@ -778,6 +890,12 @@
 }
 
 static void z_erofs_decompressqueue_work(struct work_struct *work);
+#ifdef CONFIG_EROFS_FS_PCPU_KTHREAD
+static void z_erofs_decompressqueue_kthread_work(struct kthread_work *work)
+{
+	z_erofs_decompressqueue_work((struct work_struct *)work);
+}
+#endif
 static void z_erofs_decompress_kickoff(struct z_erofs_decompressqueue *io,
 				       bool sync, int bios)
 {
@@ -785,12 +903,9 @@
 
 	/* wake up the caller thread for sync decompression */
 	if (sync) {
-		unsigned long flags;
-
-		spin_lock_irqsave(&io->u.wait.lock, flags);
 		if (!atomic_add_return(bios, &io->pending_bios))
-			wake_up_locked(&io->u.wait);
-		spin_unlock_irqrestore(&io->u.wait.lock, flags);
+			complete(&io->u.done);
+
 		return;
 	}
 
@@ -798,7 +913,22 @@
 		return;
 	/* Use workqueue and sync decompression for atomic contexts only */
 	if (in_atomic() || irqs_disabled()) {
+#ifdef CONFIG_EROFS_FS_PCPU_KTHREAD
+		struct kthread_worker *worker;
+
+		rcu_read_lock();
+		worker = rcu_dereference(
+				z_erofs_pcpu_workers[raw_smp_processor_id()]);
+		if (!worker) {
+			INIT_WORK(&io->u.work, z_erofs_decompressqueue_work);
+			queue_work(z_erofs_workqueue, &io->u.work);
+		} else {
+			kthread_queue_work(worker, &io->u.kthread_work);
+		}
+		rcu_read_unlock();
+#else
 		queue_work(z_erofs_workqueue, &io->u.work);
+#endif
 		sbi->opt.readahead_sync_decompress = true;
 		return;
 	}
@@ -839,7 +969,7 @@
 
 static int z_erofs_decompress_pcluster(struct super_block *sb,
 				       struct z_erofs_pcluster *pcl,
-				       struct list_head *pagepool)
+				       struct page **pagepool)
 {
 	struct erofs_sb_info *const sbi = EROFS_SB(sb);
 	struct z_erofs_pagevec_ctor ctor;
@@ -1039,7 +1169,7 @@
 }
 
 static void z_erofs_decompress_queue(const struct z_erofs_decompressqueue *io,
-				     struct list_head *pagepool)
+				     struct page **pagepool)
 {
 	z_erofs_next_pcluster_t owned = io->head;
 
@@ -1063,18 +1193,17 @@
 {
 	struct z_erofs_decompressqueue *bgq =
 		container_of(work, struct z_erofs_decompressqueue, u.work);
-	LIST_HEAD(pagepool);
+	struct page *pagepool = NULL;
 
 	DBG_BUGON(bgq->head == Z_EROFS_PCLUSTER_TAIL_CLOSED);
 	z_erofs_decompress_queue(bgq, &pagepool);
-
-	put_pages_list(&pagepool);
+	erofs_release_pages(&pagepool);
 	kvfree(bgq);
 }
 
 static struct page *pickup_page_for_submission(struct z_erofs_pcluster *pcl,
 					       unsigned int nr,
-					       struct list_head *pagepool,
+					       struct page **pagepool,
 					       struct address_space *mc,
 					       gfp_t gfp)
 {
@@ -1094,15 +1223,6 @@
 	if (!page)
 		goto out_allocpage;
 
-	/*
-	 * the cached page has not been allocated and
-	 * an placeholder is out there, prepare it now.
-	 */
-	if (page == PAGE_UNALLOCATED) {
-		tocache = true;
-		goto out_allocpage;
-	}
-
 	/* process the target tagged pointer */
 	t = tagptr_init(compressed_page_t, page);
 	justfound = tagptr_unfold_tags(t);
@@ -1176,7 +1296,7 @@
 out_allocpage:
 	page = erofs_allocpage(pagepool, gfp | __GFP_NOFAIL);
 	if (oldpage != cmpxchg(&pcl->compressed_pages[nr], oldpage, page)) {
-		list_add(&page->lru, pagepool);
+		erofs_pagepool_add(pagepool, page);
 		cond_resched();
 		goto repeat;
 	}
@@ -1206,11 +1326,16 @@
 			*fg = true;
 			goto fg_out;
 		}
+#ifdef CONFIG_EROFS_FS_PCPU_KTHREAD
+		kthread_init_work(&q->u.kthread_work,
+				  z_erofs_decompressqueue_kthread_work);
+#else
 		INIT_WORK(&q->u.work, z_erofs_decompressqueue_work);
+#endif
 	} else {
 fg_out:
 		q = fgq;
-		init_waitqueue_head(&fgq->u.wait);
+		init_completion(&fgq->u.done);
 		atomic_set(&fgq->pending_bios, 0);
 	}
 	q->sb = sb;
@@ -1260,7 +1385,7 @@
 
 static void z_erofs_submit_queue(struct super_block *sb,
 				 struct z_erofs_decompress_frontend *f,
-				 struct list_head *pagepool,
+				 struct page **pagepool,
 				 struct z_erofs_decompressqueue *fgq,
 				 bool *force_fg)
 {
@@ -1269,8 +1394,9 @@
 	struct z_erofs_decompressqueue *q[NR_JOBQUEUES];
 	void *bi_private;
 	z_erofs_next_pcluster_t owned_head = f->clt.owned_head;
-	/* since bio will be NULL, no need to initialize last_index */
+	/* bio is NULL initially, so no need to initialize last_{index,bdev} */
 	pgoff_t last_index;
+	struct block_device *last_bdev;
 	unsigned int nr_bios = 0;
 	struct bio *bio = NULL;
 
@@ -1282,6 +1408,7 @@
 	q[JQ_SUBMIT]->head = owned_head;
 
 	do {
+		struct erofs_map_dev mdev;
 		struct z_erofs_pcluster *pcl;
 		pgoff_t cur, end;
 		unsigned int i = 0;
@@ -1293,7 +1420,13 @@
 
 		pcl = container_of(owned_head, struct z_erofs_pcluster, next);
 
-		cur = pcl->obj.index;
+		/* no device id here, thus it will always succeed */
+		mdev = (struct erofs_map_dev) {
+			.m_pa = blknr_to_addr(pcl->obj.index),
+		};
+		(void)erofs_map_dev(sb, &mdev);
+
+		cur = erofs_blknr(mdev.m_pa);
 		end = cur + pcl->pclusterpages;
 
 		/* close the main owned chain at first */
@@ -1309,7 +1442,8 @@
 			if (!page)
 				continue;
 
-			if (bio && cur != last_index + 1) {
+			if (bio && (cur != last_index + 1 ||
+				    last_bdev != mdev.m_bdev)) {
 submit_bio_retry:
 				submit_bio(bio);
 				bio = NULL;
@@ -1317,9 +1451,10 @@
 
 			if (!bio) {
 				bio = bio_alloc(GFP_NOIO, BIO_MAX_VECS);
-
 				bio->bi_end_io = z_erofs_decompressqueue_endio;
-				bio_set_dev(bio, sb->s_bdev);
+
+				bio_set_dev(bio, mdev.m_bdev);
+				last_bdev = mdev.m_bdev;
 				bio->bi_iter.bi_sector = (sector_t)cur <<
 					LOG_SECTORS_PER_BLOCK;
 				bio->bi_private = bi_private;
@@ -1347,7 +1482,7 @@
 
 	/*
 	 * although background is preferred, no one is pending for submission.
-	 * don't issue workqueue for decompression but drop it directly instead.
+	 * don't issue decompression but drop it directly instead.
 	 */
 	if (!*force_fg && !nr_bios) {
 		kvfree(q[JQ_SUBMIT]);
@@ -1358,7 +1493,7 @@
 
 static void z_erofs_runqueue(struct super_block *sb,
 			     struct z_erofs_decompress_frontend *f,
-			     struct list_head *pagepool, bool force_fg)
+			     struct page **pagepool, bool force_fg)
 {
 	struct z_erofs_decompressqueue io[NR_JOBQUEUES];
 
@@ -1373,25 +1508,93 @@
 		return;
 
 	/* wait until all bios are completed */
-	io_wait_event(io[JQ_SUBMIT].u.wait,
-		      !atomic_read(&io[JQ_SUBMIT].pending_bios));
+	wait_for_completion_io(&io[JQ_SUBMIT].u.done);
 
 	/* handle synchronous decompress queue in the caller context */
 	z_erofs_decompress_queue(&io[JQ_SUBMIT], pagepool);
 }
 
+/*
+ * Since partial uptodate is still unimplemented for now, we have to use
+ * approximate readmore strategies as a start.
+ */
+static void z_erofs_pcluster_readmore(struct z_erofs_decompress_frontend *f,
+				      struct readahead_control *rac,
+				      erofs_off_t end,
+				      struct page **pagepool,
+				      bool backmost)
+{
+	struct inode *inode = f->inode;
+	struct erofs_map_blocks *map = &f->map;
+	erofs_off_t cur;
+	int err;
+
+	if (backmost) {
+		map->m_la = end;
+		err = z_erofs_map_blocks_iter(inode, map,
+					      EROFS_GET_BLOCKS_READMORE);
+		if (err)
+			return;
+
+		/* expend ra for the trailing edge if readahead */
+		if (rac) {
+			loff_t newstart = readahead_pos(rac);
+
+			cur = round_up(map->m_la + map->m_llen, PAGE_SIZE);
+			readahead_expand(rac, newstart, cur - newstart);
+			return;
+		}
+		end = round_up(end, PAGE_SIZE);
+	} else {
+		end = round_up(map->m_la, PAGE_SIZE);
+
+		if (!map->m_llen)
+			return;
+	}
+
+	cur = map->m_la + map->m_llen - 1;
+	while (cur >= end) {
+		pgoff_t index = cur >> PAGE_SHIFT;
+		struct page *page;
+
+		page = erofs_grab_cache_page_nowait(inode->i_mapping, index);
+		if (!page)
+			goto skip;
+
+		if (PageUptodate(page)) {
+			unlock_page(page);
+			put_page(page);
+			goto skip;
+		}
+
+		err = z_erofs_do_read_page(f, page, pagepool);
+		if (err)
+			erofs_err(inode->i_sb,
+				  "readmore error at page %lu @ nid %llu",
+				  index, EROFS_I(inode)->nid);
+		put_page(page);
+skip:
+		if (cur < PAGE_SIZE)
+			break;
+		cur = (index << PAGE_SHIFT) - 1;
+	}
+}
+
 static int z_erofs_readpage(struct file *file, struct page *page)
 {
 	struct inode *const inode = page->mapping->host;
 	struct z_erofs_decompress_frontend f = DECOMPRESS_FRONTEND_INIT(inode);
+	struct page *pagepool = NULL;
 	int err;
-	LIST_HEAD(pagepool);
 
 	trace_erofs_readpage(page, false);
-
 	f.headoffset = (erofs_off_t)page->index << PAGE_SHIFT;
 
+	z_erofs_pcluster_readmore(&f, NULL, f.headoffset + PAGE_SIZE - 1,
+				  &pagepool, true);
 	err = z_erofs_do_read_page(&f, page, &pagepool);
+	z_erofs_pcluster_readmore(&f, NULL, 0, &pagepool, false);
+
 	(void)z_erofs_collector_end(&f.clt);
 
 	/* if some compressed cluster ready, need submit them anyway */
@@ -1403,8 +1606,7 @@
 	if (f.map.mpage)
 		put_page(f.map.mpage);
 
-	/* clean up the remaining free pages */
-	put_pages_list(&pagepool);
+	erofs_release_pages(&pagepool);
 	return err;
 }
 
@@ -1412,29 +1614,19 @@
 {
 	struct inode *const inode = rac->mapping->host;
 	struct erofs_sb_info *const sbi = EROFS_I_SB(inode);
-
-	unsigned int nr_pages = readahead_count(rac);
-	bool sync = (sbi->opt.readahead_sync_decompress &&
-			nr_pages <= sbi->opt.max_sync_decompress_pages);
 	struct z_erofs_decompress_frontend f = DECOMPRESS_FRONTEND_INIT(inode);
-	struct page *page, *head = NULL;
-	LIST_HEAD(pagepool);
-
-	trace_erofs_readpages(inode, readahead_index(rac), nr_pages, false);
+	struct page *pagepool = NULL, *head = NULL, *page;
+	unsigned int nr_pages;
 
 	f.readahead = true;
 	f.headoffset = readahead_pos(rac);
 
+	z_erofs_pcluster_readmore(&f, rac, f.headoffset +
+				  readahead_length(rac) - 1, &pagepool, true);
+	nr_pages = readahead_count(rac);
+	trace_erofs_readpages(inode, readahead_index(rac), nr_pages, false);
+
 	while ((page = readahead_page(rac))) {
-		prefetchw(&page->flags);
-
-		/*
-		 * A pure asynchronous readahead is indicated if
-		 * a PG_readahead marked page is hitted at first.
-		 * Let's also do asynchronous decompression for this case.
-		 */
-		sync &= !(PageReadahead(page) && !head);
-
 		set_page_private(page, (unsigned long)head);
 		head = page;
 	}
@@ -1453,16 +1645,15 @@
 				  page->index, EROFS_I(inode)->nid);
 		put_page(page);
 	}
-
+	z_erofs_pcluster_readmore(&f, rac, 0, &pagepool, false);
 	(void)z_erofs_collector_end(&f.clt);
 
-	z_erofs_runqueue(inode->i_sb, &f, &pagepool, sync);
-
+	z_erofs_runqueue(inode->i_sb, &f, &pagepool,
+			 sbi->opt.readahead_sync_decompress &&
+			 nr_pages <= sbi->opt.max_sync_decompress_pages);
 	if (f.map.mpage)
 		put_page(f.map.mpage);
-
-	/* clean up the remaining free pages */
-	put_pages_list(&pagepool);
+	erofs_release_pages(&pagepool);
 }
 
 const struct address_space_operations z_erofs_aops = {
diff --git a/fs/erofs/zdata.h b/fs/erofs/zdata.h
index 3a008f1..02e26e1 100644
--- a/fs/erofs/zdata.h
+++ b/fs/erofs/zdata.h
@@ -6,6 +6,7 @@
 #ifndef __EROFS_FS_ZDATA_H
 #define __EROFS_FS_ZDATA_H
 
+#include <linux/kthread.h>
 #include "internal.h"
 #include "zpvec.h"
 
@@ -89,18 +90,12 @@
 	z_erofs_next_pcluster_t head;
 
 	union {
-		wait_queue_head_t wait;
+		struct completion done;
 		struct work_struct work;
+		struct kthread_work kthread_work;
 	} u;
 };
 
-#define MNGD_MAPPING(sbi)	((sbi)->managed_cache->i_mapping)
-static inline bool erofs_page_is_managed(const struct erofs_sb_info *sbi,
-					 struct page *page)
-{
-	return page->mapping == MNGD_MAPPING(sbi);
-}
-
 #define Z_EROFS_ONLINEPAGE_COUNT_BITS   2
 #define Z_EROFS_ONLINEPAGE_COUNT_MASK   ((1 << Z_EROFS_ONLINEPAGE_COUNT_BITS) - 1)
 #define Z_EROFS_ONLINEPAGE_INDEX_SHIFT  (Z_EROFS_ONLINEPAGE_COUNT_BITS)
@@ -186,4 +181,3 @@
 #define Z_EROFS_VMAP_GLOBAL_PAGES	2048
 
 #endif
-
diff --git a/fs/erofs/zmap.c b/fs/erofs/zmap.c
index 15cac6b..68c7674 100644
--- a/fs/erofs/zmap.c
+++ b/fs/erofs/zmap.c
@@ -28,7 +28,7 @@
 {
 	struct erofs_inode *const vi = EROFS_I(inode);
 	struct super_block *const sb = inode->i_sb;
-	int err;
+	int err, headnr;
 	erofs_off_t pos;
 	struct page *page;
 	void *kaddr;
@@ -68,9 +68,11 @@
 	vi->z_algorithmtype[0] = h->h_algorithmtype & 15;
 	vi->z_algorithmtype[1] = h->h_algorithmtype >> 4;
 
-	if (vi->z_algorithmtype[0] >= Z_EROFS_COMPRESSION_MAX) {
-		erofs_err(sb, "unknown compression format %u for nid %llu, please upgrade kernel",
-			  vi->z_algorithmtype[0], vi->nid);
+	headnr = 0;
+	if (vi->z_algorithmtype[0] >= Z_EROFS_COMPRESSION_MAX ||
+	    vi->z_algorithmtype[++headnr] >= Z_EROFS_COMPRESSION_MAX) {
+		erofs_err(sb, "unknown HEAD%u format %u for nid %llu, please upgrade kernel",
+			  headnr + 1, vi->z_algorithmtype[headnr], vi->nid);
 		err = -EOPNOTSUPP;
 		goto unmap_done;
 	}
@@ -111,7 +113,7 @@
 
 	unsigned long lcn;
 	/* compression extent information gathered */
-	u8  type;
+	u8  type, headtype;
 	u16 clusterofs;
 	u16 delta[2];
 	erofs_blk_t pblk, compressedlcs;
@@ -178,7 +180,8 @@
 		m->clusterofs = 1 << vi->z_logical_clusterbits;
 		m->delta[0] = le16_to_cpu(di->di_u.delta[0]);
 		if (m->delta[0] & Z_EROFS_VLE_DI_D0_CBLKCNT) {
-			if (!(vi->z_advise & Z_EROFS_ADVISE_BIG_PCLUSTER_1)) {
+			if (!(vi->z_advise & (Z_EROFS_ADVISE_BIG_PCLUSTER_1 |
+					Z_EROFS_ADVISE_BIG_PCLUSTER_2))) {
 				DBG_BUGON(1);
 				return -EFSCORRUPTED;
 			}
@@ -189,7 +192,8 @@
 		m->delta[1] = le16_to_cpu(di->di_u.delta[1]);
 		break;
 	case Z_EROFS_VLE_CLUSTER_TYPE_PLAIN:
-	case Z_EROFS_VLE_CLUSTER_TYPE_HEAD:
+	case Z_EROFS_VLE_CLUSTER_TYPE_HEAD1:
+	case Z_EROFS_VLE_CLUSTER_TYPE_HEAD2:
 		m->clusterofs = le16_to_cpu(di->di_clusterofs);
 		if (m->clusterofs >= 1 << vi->z_logical_clusterbits) {
 			DBG_BUGON(1);
@@ -446,9 +450,9 @@
 		}
 		return z_erofs_extent_lookback(m, m->delta[0]);
 	case Z_EROFS_VLE_CLUSTER_TYPE_PLAIN:
-		map->m_flags &= ~EROFS_MAP_ZIPPED;
-		fallthrough;
-	case Z_EROFS_VLE_CLUSTER_TYPE_HEAD:
+	case Z_EROFS_VLE_CLUSTER_TYPE_HEAD1:
+	case Z_EROFS_VLE_CLUSTER_TYPE_HEAD2:
+		m->headtype = m->type;
 		map->m_la = (lcn << lclusterbits) | m->clusterofs;
 		break;
 	default:
@@ -471,13 +475,18 @@
 	int err;
 
 	DBG_BUGON(m->type != Z_EROFS_VLE_CLUSTER_TYPE_PLAIN &&
-		  m->type != Z_EROFS_VLE_CLUSTER_TYPE_HEAD);
-	if (!(map->m_flags & EROFS_MAP_ZIPPED) ||
-	    !(vi->z_advise & Z_EROFS_ADVISE_BIG_PCLUSTER_1)) {
+		  m->type != Z_EROFS_VLE_CLUSTER_TYPE_HEAD1 &&
+		  m->type != Z_EROFS_VLE_CLUSTER_TYPE_HEAD2);
+	DBG_BUGON(m->type != m->headtype);
+
+	if (m->headtype == Z_EROFS_VLE_CLUSTER_TYPE_PLAIN ||
+	    ((m->headtype == Z_EROFS_VLE_CLUSTER_TYPE_HEAD1) &&
+	     !(vi->z_advise & Z_EROFS_ADVISE_BIG_PCLUSTER_1)) ||
+	    ((m->headtype == Z_EROFS_VLE_CLUSTER_TYPE_HEAD2) &&
+	     !(vi->z_advise & Z_EROFS_ADVISE_BIG_PCLUSTER_2))) {
 		map->m_plen = 1 << lclusterbits;
 		return 0;
 	}
-
 	lcn = m->lcn + 1;
 	if (m->compressedlcs)
 		goto out;
@@ -499,7 +508,8 @@
 
 	switch (m->type) {
 	case Z_EROFS_VLE_CLUSTER_TYPE_PLAIN:
-	case Z_EROFS_VLE_CLUSTER_TYPE_HEAD:
+	case Z_EROFS_VLE_CLUSTER_TYPE_HEAD1:
+	case Z_EROFS_VLE_CLUSTER_TYPE_HEAD2:
 		/*
 		 * if the 1st NONHEAD lcluster is actually PLAIN or HEAD type
 		 * rather than CBLKCNT, it's a 1 lcluster-sized pcluster.
@@ -554,7 +564,8 @@
 			DBG_BUGON(!m->delta[1] &&
 				  m->clusterofs != 1 << lclusterbits);
 		} else if (m->type == Z_EROFS_VLE_CLUSTER_TYPE_PLAIN ||
-			   m->type == Z_EROFS_VLE_CLUSTER_TYPE_HEAD) {
+			   m->type == Z_EROFS_VLE_CLUSTER_TYPE_HEAD1 ||
+			   m->type == Z_EROFS_VLE_CLUSTER_TYPE_HEAD2) {
 			/* go on until the next HEAD lcluster */
 			if (lcn != headlcn)
 				break;
@@ -609,16 +620,15 @@
 	if (err)
 		goto unmap_out;
 
-	map->m_flags = EROFS_MAP_ZIPPED;	/* by default, compressed */
+	map->m_flags = EROFS_MAP_MAPPED | EROFS_MAP_ENCODED;
 	end = (m.lcn + 1ULL) << lclusterbits;
 
 	switch (m.type) {
 	case Z_EROFS_VLE_CLUSTER_TYPE_PLAIN:
-		if (endoff >= m.clusterofs)
-			map->m_flags &= ~EROFS_MAP_ZIPPED;
-		fallthrough;
-	case Z_EROFS_VLE_CLUSTER_TYPE_HEAD:
+	case Z_EROFS_VLE_CLUSTER_TYPE_HEAD1:
+	case Z_EROFS_VLE_CLUSTER_TYPE_HEAD2:
 		if (endoff >= m.clusterofs) {
+			m.headtype = m.type;
 			map->m_la = (m.lcn << lclusterbits) | m.clusterofs;
 			break;
 		}
@@ -650,13 +660,22 @@
 
 	map->m_llen = end - map->m_la;
 	map->m_pa = blknr_to_addr(m.pblk);
-	map->m_flags |= EROFS_MAP_MAPPED;
 
 	err = z_erofs_get_extent_compressedlen(&m, initial_lcn);
 	if (err)
 		goto out;
 
-	if (flags & EROFS_GET_BLOCKS_FIEMAP) {
+	if (m.headtype == Z_EROFS_VLE_CLUSTER_TYPE_PLAIN)
+		map->m_algorithmformat = Z_EROFS_COMPRESSION_SHIFTED;
+	else if (m.headtype == Z_EROFS_VLE_CLUSTER_TYPE_HEAD2)
+		map->m_algorithmformat = vi->z_algorithmtype[1];
+	else
+		map->m_algorithmformat = vi->z_algorithmtype[0];
+
+	if ((flags & EROFS_GET_BLOCKS_FIEMAP) ||
+	    ((flags & EROFS_GET_BLOCKS_READMORE) &&
+	     map->m_algorithmformat == Z_EROFS_COMPRESSION_LZMA &&
+	     map->m_llen >= EROFS_BLKSIZ)) {
 		err = z_erofs_get_extent_decompressedlen(&m);
 		if (!err)
 			map->m_flags |= EROFS_MAP_FULL_MAPPED;
diff --git a/fs/eventfd.c b/fs/eventfd.c
index 249ca6c..29d2451 100644
--- a/fs/eventfd.c
+++ b/fs/eventfd.c
@@ -55,17 +55,17 @@
 	 * it returns false, the eventfd_signal() call should be deferred to a
 	 * safe context.
 	 */
-	if (WARN_ON_ONCE(current->in_eventfd))
+	if (WARN_ON_ONCE(current->in_eventfd_signal))
 		return 0;
 
 	spin_lock_irqsave(&ctx->wqh.lock, flags);
-	current->in_eventfd = 1;
+	current->in_eventfd_signal = 1;
 	if (ULLONG_MAX - ctx->count < n)
 		n = ULLONG_MAX - ctx->count;
 	ctx->count += n;
 	if (waitqueue_active(&ctx->wqh))
 		wake_up_locked_poll(&ctx->wqh, EPOLLIN | mask);
-	current->in_eventfd = 0;
+	current->in_eventfd_signal = 0;
 	spin_unlock_irqrestore(&ctx->wqh.lock, flags);
 
 	return n;
@@ -258,10 +258,10 @@
 		__set_current_state(TASK_RUNNING);
 	}
 	eventfd_ctx_do_read(ctx, &ucnt);
-	current->in_eventfd = 1;
+	current->in_eventfd_signal = 1;
 	if (waitqueue_active(&ctx->wqh))
 		wake_up_locked_poll(&ctx->wqh, EPOLLOUT);
-	current->in_eventfd = 0;
+	current->in_eventfd_signal = 0;
 	spin_unlock_irq(&ctx->wqh.lock);
 	if (unlikely(copy_to_iter(&ucnt, sizeof(ucnt), to) != sizeof(ucnt)))
 		return -EFAULT;
@@ -308,10 +308,10 @@
 	}
 	if (likely(res > 0)) {
 		ctx->count += ucnt;
-		current->in_eventfd = 1;
+		current->in_eventfd_signal = 1;
 		if (waitqueue_active(&ctx->wqh))
 			wake_up_locked_poll(&ctx->wqh, EPOLLIN);
-		current->in_eventfd = 0;
+		current->in_eventfd_signal = 0;
 	}
 	spin_unlock_irq(&ctx->wqh.lock);
 
diff --git a/fs/eventpoll.c b/fs/eventpoll.c
index 1c25409..805537f 100644
--- a/fs/eventpoll.c
+++ b/fs/eventpoll.c
@@ -29,6 +29,7 @@
 #include <linux/mutex.h>
 #include <linux/anon_inodes.h>
 #include <linux/device.h>
+#include <linux/freezer.h>
 #include <linux/uaccess.h>
 #include <asm/io.h>
 #include <asm/mman.h>
@@ -1874,8 +1875,8 @@
 		write_unlock_irq(&ep->lock);
 
 		if (!eavail)
-			timed_out = !schedule_hrtimeout_range(to, slack,
-							      HRTIMER_MODE_ABS);
+			timed_out = !freezable_schedule_hrtimeout_range(to, slack,
+									HRTIMER_MODE_ABS);
 		__set_current_state(TASK_RUNNING);
 
 		/*
diff --git a/fs/exec.c b/fs/exec.c
index 881390b..3ce0c74 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -75,6 +75,8 @@
 
 #include <trace/events/sched.h>
 
+EXPORT_TRACEPOINT_SYMBOL_GPL(task_rename);
+
 static int bprm_creds_from_file(struct linux_binprm *bprm);
 
 int suid_dumpable = 0;
@@ -285,6 +287,7 @@
 	mmap_write_unlock(mm);
 err_free:
 	bprm->vma = NULL;
+	VM_BUG_ON(vma->vm_file);
 	vm_area_free(vma);
 	return err;
 }
@@ -1026,8 +1029,10 @@
 	if (IS_ENABLED(CONFIG_ARCH_WANT_IRQS_OFF_ACTIVATE_MM))
 		local_irq_enable();
 	tsk->mm->vmacache_seqnum = 0;
+	lru_gen_add_mm(mm);
 	vmacache_flush(tsk);
 	task_unlock(tsk);
+	lru_gen_use_mm(mm);
 	if (old_mm) {
 		mmap_read_unlock(old_mm);
 		BUG_ON(active_mm != old_mm);
diff --git a/fs/exfat/fatent.c b/fs/exfat/fatent.c
index 421c273..85ee839 100644
--- a/fs/exfat/fatent.c
+++ b/fs/exfat/fatent.c
@@ -6,6 +6,7 @@
 #include <linux/slab.h>
 #include <asm/unaligned.h>
 #include <linux/buffer_head.h>
+#include <linux/blk_types.h>
 
 #include "exfat_raw.h"
 #include "exfat_fs.h"
@@ -268,10 +269,9 @@
 {
 	struct super_block *sb = dir->i_sb;
 	struct exfat_sb_info *sbi = EXFAT_SB(sb);
-	struct buffer_head *bhs[MAX_BUF_PER_PAGE];
-	int nr_bhs = MAX_BUF_PER_PAGE;
-	sector_t blknr, last_blknr;
-	int err, i, n;
+	struct buffer_head *bh;
+	struct address_space *mapping = sb->s_bdev->bd_inode->i_mapping;
+	sector_t blknr, last_blknr, i;
 
 	blknr = exfat_cluster_to_sector(sbi, clu);
 	last_blknr = blknr + sbi->sect_per_clus;
@@ -285,30 +285,22 @@
 	}
 
 	/* Zeroing the unused blocks on this cluster */
-	while (blknr < last_blknr) {
-		for (n = 0; n < nr_bhs && blknr < last_blknr; n++, blknr++) {
-			bhs[n] = sb_getblk(sb, blknr);
-			if (!bhs[n]) {
-				err = -ENOMEM;
-				goto release_bhs;
-			}
-			memset(bhs[n]->b_data, 0, sb->s_blocksize);
-		}
+	for (i = blknr; i < last_blknr; i++) {
+		bh = sb_getblk(sb, i);
+		if (!bh)
+			return -ENOMEM;
 
-		err = exfat_update_bhs(bhs, n, IS_DIRSYNC(dir));
-		if (err)
-			goto release_bhs;
-
-		for (i = 0; i < n; i++)
-			brelse(bhs[i]);
+		memset(bh->b_data, 0, sb->s_blocksize);
+		set_buffer_uptodate(bh);
+		mark_buffer_dirty(bh);
+		brelse(bh);
 	}
-	return 0;
+	if (IS_DIRSYNC(dir))
+		return filemap_write_and_wait_range(mapping,
+				EXFAT_BLK_TO_B(blknr, sb),
+				EXFAT_BLK_TO_B(last_blknr, sb) - 1);
 
-release_bhs:
-	exfat_err(sb, "failed zeroed sect %llu\n", (unsigned long long)blknr);
-	for (i = 0; i < n; i++)
-		bforget(bhs[i]);
-	return err;
+	return 0;
 }
 
 int exfat_alloc_cluster(struct inode *inode, unsigned int num_alloc,
diff --git a/fs/exfat/super.c b/fs/exfat/super.c
index 82297623..3c18d34 100644
--- a/fs/exfat/super.c
+++ b/fs/exfat/super.c
@@ -836,5 +836,6 @@
 
 MODULE_ALIAS_FS("exfat");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 MODULE_DESCRIPTION("exFAT filesystem support");
 MODULE_AUTHOR("Samsung Electronics Co., Ltd.");
diff --git a/fs/ext2/super.c b/fs/ext2/super.c
index 81798b7..5dabaf7 100644
--- a/fs/ext2/super.c
+++ b/fs/ext2/super.c
@@ -1649,5 +1649,6 @@
 MODULE_AUTHOR("Remy Card and others");
 MODULE_DESCRIPTION("Second Extended Filesystem");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 module_init(init_ext2_fs)
 module_exit(exit_ext2_fs)
diff --git a/fs/ext4/file.c b/fs/ext4/file.c
index 4704fe62..a8c953c 100644
--- a/fs/ext4/file.c
+++ b/fs/ext4/file.c
@@ -36,9 +36,11 @@
 #include "acl.h"
 #include "truncate.h"
 
-static bool ext4_dio_supported(struct inode *inode)
+static bool ext4_dio_supported(struct kiocb *iocb, struct iov_iter *iter)
 {
-	if (IS_ENABLED(CONFIG_FS_ENCRYPTION) && IS_ENCRYPTED(inode))
+	struct inode *inode = file_inode(iocb->ki_filp);
+
+	if (!fscrypt_dio_supported(iocb, iter))
 		return false;
 	if (fsverity_active(inode))
 		return false;
@@ -61,7 +63,7 @@
 		inode_lock_shared(inode);
 	}
 
-	if (!ext4_dio_supported(inode)) {
+	if (!ext4_dio_supported(iocb, to)) {
 		inode_unlock_shared(inode);
 		/*
 		 * Fallback to buffered I/O if the operation being performed on
@@ -509,7 +511,7 @@
 	}
 
 	/* Fallback to buffered I/O if the inode does not support direct I/O. */
-	if (!ext4_dio_supported(inode)) {
+	if (!ext4_dio_supported(iocb, from)) {
 		if (ilock_shared)
 			inode_unlock_shared(inode);
 		else
@@ -763,6 +765,7 @@
 	.fault		= filemap_fault,
 	.map_pages	= filemap_map_pages,
 	.page_mkwrite   = ext4_page_mkwrite,
+	.speculative	= true,
 };
 
 static int ext4_file_mmap(struct file *file, struct vm_area_struct *vma)
diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c
index 6fe665de..76602ba 100644
--- a/fs/ext4/inline.c
+++ b/fs/ext4/inline.c
@@ -13,6 +13,7 @@
 #include "ext4.h"
 #include "xattr.h"
 #include "truncate.h"
+#include <trace/events/android_fs.h>
 
 #define EXT4_XATTR_SYSTEM_DATA	"data"
 #define EXT4_MIN_INLINE_DATA_SIZE	((sizeof(__le32) * EXT4_N_BLOCKS))
@@ -521,6 +522,17 @@
 		return -EAGAIN;
 	}
 
+	if (trace_android_fs_dataread_start_enabled()) {
+		char *path, pathbuf[MAX_TRACE_PATHBUF_LEN];
+
+		path = android_fstrace_get_pathname(pathbuf,
+						    MAX_TRACE_PATHBUF_LEN,
+						    inode);
+		trace_android_fs_dataread_start(inode, page_offset(page),
+						PAGE_SIZE, current->pid,
+						path, current->comm);
+	}
+
 	/*
 	 * Current inline data can only exist in the 1st page,
 	 * So for all the other pages, just set them uptodate.
@@ -532,6 +544,8 @@
 		SetPageUptodate(page);
 	}
 
+	trace_android_fs_dataread_end(inode, page_offset(page), PAGE_SIZE);
+
 	up_read(&EXT4_I(inode)->xattr_sem);
 
 	unlock_page(page);
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 64a783f2..2520561 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -48,6 +48,7 @@
 #include "truncate.h"
 
 #include <trace/events/ext4.h>
+#include <trace/events/android_fs.h>
 
 static __u32 ext4_inode_csum(struct inode *inode, struct ext4_inode *raw,
 			      struct ext4_inode_info *ei)
@@ -1143,6 +1144,16 @@
 	if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb))))
 		return -EIO;
 
+	if (trace_android_fs_datawrite_start_enabled()) {
+		char *path, pathbuf[MAX_TRACE_PATHBUF_LEN];
+
+		path = android_fstrace_get_pathname(pathbuf,
+						    MAX_TRACE_PATHBUF_LEN,
+						    inode);
+		trace_android_fs_datawrite_start(inode, pos, len,
+						 current->pid, path,
+						 current->comm);
+	}
 	trace_ext4_write_begin(inode, pos, len, flags);
 	/*
 	 * Reserve one block more for addition to orphan list in case
@@ -1292,6 +1303,7 @@
 	int i_size_changed = 0;
 	bool verity = ext4_verity_in_progress(inode);
 
+	trace_android_fs_datawrite_end(inode, pos, len);
 	trace_ext4_write_end(inode, pos, len, copied);
 
 	if (ext4_has_inline_data(inode) &&
@@ -1396,6 +1408,7 @@
 	int size_changed = 0;
 	bool verity = ext4_verity_in_progress(inode);
 
+	trace_android_fs_datawrite_end(inode, pos, len);
 	trace_ext4_journalled_write_end(inode, pos, len, copied);
 	from = pos & (PAGE_SIZE - 1);
 	to = from + len;
@@ -2964,6 +2977,16 @@
 					len, flags, pagep, fsdata);
 	}
 	*fsdata = (void *)0;
+	if (trace_android_fs_datawrite_start_enabled()) {
+		char *path, pathbuf[MAX_TRACE_PATHBUF_LEN];
+
+		path = android_fstrace_get_pathname(pathbuf,
+						    MAX_TRACE_PATHBUF_LEN,
+						    inode);
+		trace_android_fs_datawrite_start(inode, pos, len,
+						 current->pid,
+						 path, current->comm);
+	}
 	trace_ext4_da_write_begin(inode, pos, len, flags);
 
 	if (ext4_test_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA)) {
@@ -3048,6 +3071,7 @@
 		return ext4_write_end(file, mapping, pos,
 				      len, copied, page, fsdata);
 
+	trace_android_fs_datawrite_end(inode, pos, len);
 	trace_ext4_da_write_end(inode, pos, len, copied);
 
 	if (write_mode != CONVERT_INLINE_DATA &&
@@ -3451,6 +3475,13 @@
 	if (ret < 0)
 		return ret;
 out:
+	/*
+	 * When inline encryption is enabled, sometimes I/O to an encrypted file
+	 * has to be broken up to guarantee DUN contiguity.  Handle this by
+	 * limiting the length of the mapping returned.
+	 */
+	map.m_len = fscrypt_limit_io_blocks(inode, map.m_lblk, map.m_len);
+
 	ext4_set_iomap(inode, iomap, &map, offset, length);
 
 	return 0;
diff --git a/fs/ext4/readpage.c b/fs/ext4/readpage.c
index 3db9234..fdabff5 100644
--- a/fs/ext4/readpage.c
+++ b/fs/ext4/readpage.c
@@ -46,6 +46,7 @@
 #include <linux/cleancache.h>
 
 #include "ext4.h"
+#include <trace/events/android_fs.h>
 
 #define NUM_PREALLOC_POST_READ_CTXS	128
 
@@ -159,6 +160,17 @@
 	return bio->bi_private && !bio->bi_status;
 }
 
+static void
+ext4_trace_read_completion(struct bio *bio)
+{
+	struct page *first_page = bio->bi_io_vec[0].bv_page;
+
+	if (first_page != NULL)
+		trace_android_fs_dataread_end(first_page->mapping->host,
+					      page_offset(first_page),
+					      bio->bi_iter.bi_size);
+}
+
 /*
  * I/O completion handler for multipage BIOs.
  *
@@ -173,6 +185,9 @@
  */
 static void mpage_end_io(struct bio *bio)
 {
+	if (trace_android_fs_dataread_start_enabled())
+		ext4_trace_read_completion(bio);
+
 	if (bio_post_read_required(bio)) {
 		struct bio_post_read_ctx *ctx = bio->bi_private;
 
@@ -221,6 +236,30 @@
 	return i_size_read(inode);
 }
 
+static void
+ext4_submit_bio_read(struct bio *bio)
+{
+	if (trace_android_fs_dataread_start_enabled()) {
+		struct page *first_page = bio->bi_io_vec[0].bv_page;
+
+		if (first_page != NULL) {
+			char *path, pathbuf[MAX_TRACE_PATHBUF_LEN];
+
+			path = android_fstrace_get_pathname(pathbuf,
+						    MAX_TRACE_PATHBUF_LEN,
+						    first_page->mapping->host);
+			trace_android_fs_dataread_start(
+				first_page->mapping->host,
+				page_offset(first_page),
+				bio->bi_iter.bi_size,
+				current->pid,
+				path,
+				current->comm);
+		}
+	}
+	submit_bio(bio);
+}
+
 int ext4_mpage_readpages(struct inode *inode,
 		struct readahead_control *rac, struct page *page)
 {
@@ -363,7 +402,7 @@
 		if (bio && (last_block_in_bio != blocks[0] - 1 ||
 			    !fscrypt_mergeable_bio(bio, inode, next_block))) {
 		submit_and_realloc:
-			submit_bio(bio);
+			ext4_submit_bio_read(bio);
 			bio = NULL;
 		}
 		if (bio == NULL) {
@@ -389,14 +428,14 @@
 		if (((map.m_flags & EXT4_MAP_BOUNDARY) &&
 		     (relative_block == map.m_len)) ||
 		    (first_hole != blocks_per_page)) {
-			submit_bio(bio);
+			ext4_submit_bio_read(bio);
 			bio = NULL;
 		} else
 			last_block_in_bio = blocks[blocks_per_page - 1];
 		goto next_page;
 	confused:
 		if (bio) {
-			submit_bio(bio);
+			ext4_submit_bio_read(bio);
 			bio = NULL;
 		}
 		if (!PageUptodate(page))
@@ -408,7 +447,7 @@
 			put_page(page);
 	}
 	if (bio)
-		submit_bio(bio);
+		ext4_submit_bio_read(bio);
 	return 0;
 }
 
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 65716a1..6ea9434 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -1574,7 +1574,6 @@
 	.set_context		= ext4_set_context,
 	.get_dummy_policy	= ext4_get_dummy_policy,
 	.empty_dir		= ext4_empty_dir,
-	.max_namelen		= EXT4_NAME_LEN,
 	.has_stable_inodes	= ext4_has_stable_inodes,
 	.get_ino_and_lblk_bits	= ext4_get_ino_and_lblk_bits,
 };
@@ -6749,6 +6748,7 @@
 MODULE_AUTHOR("Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others");
 MODULE_DESCRIPTION("Fourth Extended Filesystem");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 MODULE_SOFTDEP("pre: crc32c");
 module_init(ext4_init_fs)
 module_exit(ext4_exit_fs)
diff --git a/fs/f2fs/Kconfig b/fs/f2fs/Kconfig
index 7eea3cf..03ef087 100644
--- a/fs/f2fs/Kconfig
+++ b/fs/f2fs/Kconfig
@@ -7,6 +7,7 @@
 	select CRYPTO_CRC32
 	select F2FS_FS_XATTR if FS_ENCRYPTION
 	select FS_ENCRYPTION_ALGS if FS_ENCRYPTION
+	select FS_IOMAP
 	select LZ4_COMPRESS if F2FS_FS_LZ4
 	select LZ4_DECOMPRESS if F2FS_FS_LZ4
 	select LZ4HC_COMPRESS if F2FS_FS_LZ4HC
@@ -142,3 +143,10 @@
 	  Support getting IO statistics through sysfs and printing out periodic
 	  IO statistics tracepoint events. You have to turn on "iostat_enable"
 	  sysfs node to enable this feature.
+
+config F2FS_UNFAIR_RWSEM
+	bool "F2FS unfair rw_semaphore"
+	depends on F2FS_FS && BLK_CGROUP
+	help
+	  Use unfair rw_semaphore, if system configured IO priority by block
+	  cgroup.
diff --git a/fs/f2fs/acl.c b/fs/f2fs/acl.c
index 16e826e..eaa240b 100644
--- a/fs/f2fs/acl.c
+++ b/fs/f2fs/acl.c
@@ -204,8 +204,9 @@
 	return __f2fs_get_acl(inode, type, NULL);
 }
 
-static int f2fs_acl_update_mode(struct inode *inode, umode_t *mode_p,
-			  struct posix_acl **acl)
+static int f2fs_acl_update_mode(struct user_namespace *mnt_userns,
+				struct inode *inode, umode_t *mode_p,
+				struct posix_acl **acl)
 {
 	umode_t mode = inode->i_mode;
 	int error;
@@ -218,14 +219,15 @@
 		return error;
 	if (error == 0)
 		*acl = NULL;
-	if (!in_group_p(i_gid_into_mnt(&init_user_ns, inode)) &&
-	    !capable_wrt_inode_uidgid(&init_user_ns, inode, CAP_FSETID))
+	if (!in_group_p(i_gid_into_mnt(mnt_userns, inode)) &&
+	    !capable_wrt_inode_uidgid(mnt_userns, inode, CAP_FSETID))
 		mode &= ~S_ISGID;
 	*mode_p = mode;
 	return 0;
 }
 
-static int __f2fs_set_acl(struct inode *inode, int type,
+static int __f2fs_set_acl(struct user_namespace *mnt_userns,
+			struct inode *inode, int type,
 			struct posix_acl *acl, struct page *ipage)
 {
 	int name_index;
@@ -238,7 +240,8 @@
 	case ACL_TYPE_ACCESS:
 		name_index = F2FS_XATTR_INDEX_POSIX_ACL_ACCESS;
 		if (acl && !ipage) {
-			error = f2fs_acl_update_mode(inode, &mode, &acl);
+			error = f2fs_acl_update_mode(mnt_userns, inode,
+								&mode, &acl);
 			if (error)
 				return error;
 			set_acl_inode(inode, mode);
@@ -279,7 +282,7 @@
 	if (unlikely(f2fs_cp_error(F2FS_I_SB(inode))))
 		return -EIO;
 
-	return __f2fs_set_acl(inode, type, acl, NULL);
+	return __f2fs_set_acl(mnt_userns, inode, type, acl, NULL);
 }
 
 /*
@@ -419,7 +422,7 @@
 	f2fs_mark_inode_dirty_sync(inode, true);
 
 	if (default_acl) {
-		error = __f2fs_set_acl(inode, ACL_TYPE_DEFAULT, default_acl,
+		error = __f2fs_set_acl(NULL, inode, ACL_TYPE_DEFAULT, default_acl,
 				       ipage);
 		posix_acl_release(default_acl);
 	} else {
@@ -427,7 +430,7 @@
 	}
 	if (acl) {
 		if (!error)
-			error = __f2fs_set_acl(inode, ACL_TYPE_ACCESS, acl,
+			error = __f2fs_set_acl(NULL, inode, ACL_TYPE_ACCESS, acl,
 					       ipage);
 		posix_acl_release(acl);
 	} else {
diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
index d6ae6de..71fd73f 100644
--- a/fs/f2fs/checkpoint.c
+++ b/fs/f2fs/checkpoint.c
@@ -26,12 +26,16 @@
 static struct kmem_cache *ino_entry_slab;
 struct kmem_cache *f2fs_inode_entry_slab;
 
-void f2fs_stop_checkpoint(struct f2fs_sb_info *sbi, bool end_io)
+void f2fs_stop_checkpoint(struct f2fs_sb_info *sbi, bool end_io,
+						unsigned char reason)
 {
 	f2fs_build_fault_attr(sbi, 0, 0);
 	set_ckpt_flags(sbi, CP_ERROR_FLAG);
-	if (!end_io)
+	if (!end_io) {
 		f2fs_flush_merged_writes(sbi);
+
+		f2fs_handle_stop(sbi, reason);
+	}
 }
 
 /*
@@ -98,6 +102,7 @@
 	}
 
 	if (unlikely(!PageUptodate(page))) {
+		f2fs_handle_page_eio(sbi, page->index, META);
 		f2fs_put_page(page, 1);
 		return ERR_PTR(-EIO);
 	}
@@ -121,7 +126,7 @@
 		if (PTR_ERR(page) == -EIO &&
 				++count <= DEFAULT_RETRY_IO_COUNT)
 			goto retry;
-		f2fs_stop_checkpoint(sbi, false);
+		f2fs_stop_checkpoint(sbi, false, STOP_CP_REASON_META_PAGE);
 	}
 	return page;
 }
@@ -290,18 +295,22 @@
 	return blkno - start;
 }
 
-void f2fs_ra_meta_pages_cond(struct f2fs_sb_info *sbi, pgoff_t index)
+void f2fs_ra_meta_pages_cond(struct f2fs_sb_info *sbi, pgoff_t index,
+							unsigned int ra_blocks)
 {
 	struct page *page;
 	bool readahead = false;
 
+	if (ra_blocks == RECOVERY_MIN_RA_BLOCKS)
+		return;
+
 	page = find_get_page(META_MAPPING(sbi), index);
 	if (!page || !PageUptodate(page))
 		readahead = true;
 	f2fs_put_page(page, 0);
 
 	if (readahead)
-		f2fs_ra_meta_pages(sbi, index, BIO_MAX_VECS, META_POR, true);
+		f2fs_ra_meta_pages(sbi, index, ra_blocks, META_POR, true);
 }
 
 static int __f2fs_write_meta_page(struct page *page,
@@ -366,13 +375,13 @@
 		goto skip_write;
 
 	/* if locked failed, cp will flush dirty pages instead */
-	if (!down_write_trylock(&sbi->cp_global_sem))
+	if (!f2fs_down_write_trylock(&sbi->cp_global_sem))
 		goto skip_write;
 
 	trace_f2fs_writepages(mapping->host, wbc, META);
 	diff = nr_pages_to_write(sbi, META, wbc);
 	written = f2fs_sync_meta_pages(sbi, META, wbc->nr_to_write, FS_META_IO);
-	up_write(&sbi->cp_global_sem);
+	f2fs_up_write(&sbi->cp_global_sem);
 	wbc->nr_to_write = max((long)0, wbc->nr_to_write - written - diff);
 	return 0;
 
@@ -720,9 +729,6 @@
 	}
 
 #ifdef CONFIG_QUOTA
-	/* Needed for iput() to work correctly and not trash data */
-	sbi->sb->s_flags |= SB_ACTIVE;
-
 	/*
 	 * Turn on quotas which were not enabled for read-only mounts if
 	 * filesystem has quota feature, so that they are updated correctly.
@@ -1184,7 +1190,7 @@
 	if (!is_journalled_quota(sbi))
 		return false;
 
-	if (!down_write_trylock(&sbi->quota_sem))
+	if (!f2fs_down_write_trylock(&sbi->quota_sem))
 		return true;
 	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH)) {
 		ret = false;
@@ -1196,7 +1202,7 @@
 	} else if (get_pages(sbi, F2FS_DIRTY_QDATA)) {
 		ret = true;
 	}
-	up_write(&sbi->quota_sem);
+	f2fs_up_write(&sbi->quota_sem);
 	return ret;
 }
 
@@ -1253,10 +1259,10 @@
 	 * POR: we should ensure that there are no dirty node pages
 	 * until finishing nat/sit flush. inode->i_blocks can be updated.
 	 */
-	down_write(&sbi->node_change);
+	f2fs_down_write(&sbi->node_change);
 
 	if (get_pages(sbi, F2FS_DIRTY_IMETA)) {
-		up_write(&sbi->node_change);
+		f2fs_up_write(&sbi->node_change);
 		f2fs_unlock_all(sbi);
 		err = f2fs_sync_inode_meta(sbi);
 		if (err)
@@ -1266,15 +1272,15 @@
 	}
 
 retry_flush_nodes:
-	down_write(&sbi->node_write);
+	f2fs_down_write(&sbi->node_write);
 
 	if (get_pages(sbi, F2FS_DIRTY_NODES)) {
-		up_write(&sbi->node_write);
+		f2fs_up_write(&sbi->node_write);
 		atomic_inc(&sbi->wb_sync_req[NODE]);
 		err = f2fs_sync_node_pages(sbi, &wbc, false, FS_CP_NODE_IO);
 		atomic_dec(&sbi->wb_sync_req[NODE]);
 		if (err) {
-			up_write(&sbi->node_change);
+			f2fs_up_write(&sbi->node_change);
 			f2fs_unlock_all(sbi);
 			return err;
 		}
@@ -1287,13 +1293,13 @@
 	 * dirty node blocks and some checkpoint values by block allocation.
 	 */
 	__prepare_cp_block(sbi);
-	up_write(&sbi->node_change);
+	f2fs_up_write(&sbi->node_change);
 	return err;
 }
 
 static void unblock_operations(struct f2fs_sb_info *sbi)
 {
-	up_write(&sbi->node_write);
+	f2fs_up_write(&sbi->node_write);
 	f2fs_unlock_all(sbi);
 }
 
@@ -1569,6 +1575,7 @@
 	/* update user_block_counts */
 	sbi->last_valid_block_count = sbi->total_valid_block_count;
 	percpu_counter_set(&sbi->alloc_valid_block_count, 0);
+	percpu_counter_set(&sbi->rf_node_block_count, 0);
 
 	/* Here, we have one bio having CP pack except cp pack 2 page */
 	f2fs_sync_meta_pages(sbi, META, LONG_MAX, FS_CP_META_IO);
@@ -1638,7 +1645,7 @@
 		f2fs_warn(sbi, "Start checkpoint disabled!");
 	}
 	if (cpc->reason != CP_RESIZE)
-		down_write(&sbi->cp_global_sem);
+		f2fs_down_write(&sbi->cp_global_sem);
 
 	if (!is_sbi_flag_set(sbi, SBI_IS_DIRTY) &&
 		((cpc->reason & CP_FASTBOOT) || (cpc->reason & CP_SYNC) ||
@@ -1719,7 +1726,7 @@
 	trace_f2fs_write_checkpoint(sbi->sb, cpc->reason, "finish checkpoint");
 out:
 	if (cpc->reason != CP_RESIZE)
-		up_write(&sbi->cp_global_sem);
+		f2fs_up_write(&sbi->cp_global_sem);
 	return err;
 }
 
@@ -1767,9 +1774,9 @@
 	struct cp_control cpc = { .reason = CP_SYNC, };
 	int err;
 
-	down_write(&sbi->gc_lock);
+	f2fs_down_write(&sbi->gc_lock);
 	err = f2fs_write_checkpoint(sbi, &cpc);
-	up_write(&sbi->gc_lock);
+	f2fs_up_write(&sbi->gc_lock);
 
 	return err;
 }
@@ -1857,9 +1864,9 @@
 	if (!test_opt(sbi, MERGE_CHECKPOINT) || cpc.reason != CP_SYNC) {
 		int ret;
 
-		down_write(&sbi->gc_lock);
+		f2fs_down_write(&sbi->gc_lock);
 		ret = f2fs_write_checkpoint(sbi, &cpc);
-		up_write(&sbi->gc_lock);
+		f2fs_up_write(&sbi->gc_lock);
 
 		return ret;
 	}
diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c
index 455fac1..9ac0f39 100644
--- a/fs/f2fs/compress.c
+++ b/fs/f2fs/compress.c
@@ -153,6 +153,7 @@
 	cc->rpages = NULL;
 	cc->nr_rpages = 0;
 	cc->nr_cpages = 0;
+	cc->valid_nr_cpages = 0;
 	if (!reuse)
 		cc->cluster_idx = NULL_CLUSTER;
 }
@@ -618,7 +619,6 @@
 	const struct f2fs_compress_ops *cops =
 				f2fs_cops[fi->i_compress_algorithm];
 	unsigned int max_len, new_nr_cpages;
-	struct page **new_cpages;
 	u32 chksum = 0;
 	int i, ret;
 
@@ -633,6 +633,7 @@
 
 	max_len = COMPRESS_HEADER_SIZE + cc->clen;
 	cc->nr_cpages = DIV_ROUND_UP(max_len, PAGE_SIZE);
+	cc->valid_nr_cpages = cc->nr_cpages;
 
 	cc->cpages = page_array_alloc(cc->inode, cc->nr_cpages);
 	if (!cc->cpages) {
@@ -683,13 +684,6 @@
 
 	new_nr_cpages = DIV_ROUND_UP(cc->clen + COMPRESS_HEADER_SIZE, PAGE_SIZE);
 
-	/* Now we're going to cut unnecessary tail pages */
-	new_cpages = page_array_alloc(cc->inode, new_nr_cpages);
-	if (!new_cpages) {
-		ret = -ENOMEM;
-		goto out_vunmap_cbuf;
-	}
-
 	/* zero out any unused part of the last page */
 	memset(&cc->cbuf->cdata[cc->clen], 0,
 			(new_nr_cpages * PAGE_SIZE) -
@@ -699,10 +693,8 @@
 	vm_unmap_ram(cc->rbuf, cc->cluster_size);
 
 	for (i = 0; i < cc->nr_cpages; i++) {
-		if (i < new_nr_cpages) {
-			new_cpages[i] = cc->cpages[i];
+		if (i < new_nr_cpages)
 			continue;
-		}
 		f2fs_compress_free_page(cc->cpages[i]);
 		cc->cpages[i] = NULL;
 	}
@@ -710,9 +702,7 @@
 	if (cops->destroy_compress_ctx)
 		cops->destroy_compress_ctx(cc);
 
-	page_array_free(cc->inode, cc->cpages, cc->nr_cpages);
-	cc->cpages = new_cpages;
-	cc->nr_cpages = new_nr_cpages;
+	cc->valid_nr_cpages = new_nr_cpages;
 
 	trace_f2fs_compress_pages_end(cc->inode, cc->cluster_idx,
 							cc->clen, ret);
@@ -738,14 +728,19 @@
 	return ret;
 }
 
-void f2fs_decompress_cluster(struct decompress_io_ctx *dic)
+static int f2fs_prepare_decomp_mem(struct decompress_io_ctx *dic,
+		bool pre_alloc);
+static void f2fs_release_decomp_mem(struct decompress_io_ctx *dic,
+		bool bypass_destroy_callback, bool pre_alloc);
+
+void f2fs_decompress_cluster(struct decompress_io_ctx *dic, bool in_task)
 {
 	struct f2fs_sb_info *sbi = F2FS_I_SB(dic->inode);
 	struct f2fs_inode_info *fi = F2FS_I(dic->inode);
 	const struct f2fs_compress_ops *cops =
 			f2fs_cops[fi->i_compress_algorithm];
+	bool bypass_callback = false;
 	int ret;
-	int i;
 
 	trace_f2fs_decompress_pages_start(dic->inode, dic->cluster_idx,
 				dic->cluster_size, fi->i_compress_algorithm);
@@ -755,41 +750,10 @@
 		goto out_end_io;
 	}
 
-	dic->tpages = page_array_alloc(dic->inode, dic->cluster_size);
-	if (!dic->tpages) {
-		ret = -ENOMEM;
-		goto out_end_io;
-	}
-
-	for (i = 0; i < dic->cluster_size; i++) {
-		if (dic->rpages[i]) {
-			dic->tpages[i] = dic->rpages[i];
-			continue;
-		}
-
-		dic->tpages[i] = f2fs_compress_alloc_page();
-		if (!dic->tpages[i]) {
-			ret = -ENOMEM;
-			goto out_end_io;
-		}
-	}
-
-	if (cops->init_decompress_ctx) {
-		ret = cops->init_decompress_ctx(dic);
-		if (ret)
-			goto out_end_io;
-	}
-
-	dic->rbuf = f2fs_vmap(dic->tpages, dic->cluster_size);
-	if (!dic->rbuf) {
-		ret = -ENOMEM;
-		goto out_destroy_decompress_ctx;
-	}
-
-	dic->cbuf = f2fs_vmap(dic->cpages, dic->nr_cpages);
-	if (!dic->cbuf) {
-		ret = -ENOMEM;
-		goto out_vunmap_rbuf;
+	ret = f2fs_prepare_decomp_mem(dic, false);
+	if (ret) {
+		bypass_callback = true;
+		goto out_release;
 	}
 
 	dic->clen = le32_to_cpu(dic->cbuf->clen);
@@ -797,7 +761,7 @@
 
 	if (dic->clen > PAGE_SIZE * dic->nr_cpages - COMPRESS_HEADER_SIZE) {
 		ret = -EFSCORRUPTED;
-		goto out_vunmap_cbuf;
+		goto out_release;
 	}
 
 	ret = cops->decompress_pages(dic);
@@ -818,17 +782,13 @@
 		}
 	}
 
-out_vunmap_cbuf:
-	vm_unmap_ram(dic->cbuf, dic->nr_cpages);
-out_vunmap_rbuf:
-	vm_unmap_ram(dic->rbuf, dic->cluster_size);
-out_destroy_decompress_ctx:
-	if (cops->destroy_decompress_ctx)
-		cops->destroy_decompress_ctx(dic);
+out_release:
+	f2fs_release_decomp_mem(dic, bypass_callback, false);
+
 out_end_io:
 	trace_f2fs_decompress_pages_end(dic->inode, dic->cluster_idx,
 							dic->clen, ret);
-	f2fs_decompress_end_io(dic, ret);
+	f2fs_decompress_end_io(dic, ret, in_task);
 }
 
 /*
@@ -838,7 +798,7 @@
  * (or in the case of a failure, cleans up without actually decompressing).
  */
 void f2fs_end_read_compressed_page(struct page *page, bool failed,
-						block_t blkaddr)
+		block_t blkaddr, bool in_task)
 {
 	struct decompress_io_ctx *dic =
 			(struct decompress_io_ctx *)page_private(page);
@@ -848,12 +808,12 @@
 
 	if (failed)
 		WRITE_ONCE(dic->failed, true);
-	else if (blkaddr)
+	else if (blkaddr && in_task)
 		f2fs_cache_compressed_page(sbi, page,
 					dic->inode->i_ino, blkaddr);
 
 	if (atomic_dec_and_test(&dic->remaining_pages))
-		f2fs_decompress_cluster(dic);
+		f2fs_decompress_cluster(dic, in_task);
 }
 
 static bool is_page_in_cluster(struct compress_ctx *cc, pgoff_t index)
@@ -880,6 +840,25 @@
 	return is_page_in_cluster(cc, index);
 }
 
+bool f2fs_all_cluster_page_loaded(struct compress_ctx *cc, struct pagevec *pvec,
+				int index, int nr_pages)
+{
+	unsigned long pgidx;
+	int i;
+
+	if (nr_pages - index < cc->cluster_size)
+		return false;
+
+	pgidx = pvec->pages[index]->index;
+
+	for (i = 1; i < cc->cluster_size; i++) {
+		if (pvec->pages[index + i]->index != pgidx + i)
+			return false;
+	}
+
+	return true;
+}
+
 static bool cluster_has_invalid_data(struct compress_ctx *cc)
 {
 	loff_t i_size = i_size_read(cc->inode);
@@ -1256,7 +1235,7 @@
 		 * checkpoint. This can only happen to quota writes which can cause
 		 * the below discard race condition.
 		 */
-		down_read(&sbi->node_write);
+		f2fs_down_read(&sbi->node_write);
 	} else if (!f2fs_trylock_op(sbi)) {
 		goto out_free;
 	}
@@ -1287,14 +1266,14 @@
 
 	cic->magic = F2FS_COMPRESSED_PAGE_MAGIC;
 	cic->inode = inode;
-	atomic_set(&cic->pending_pages, cc->nr_cpages);
+	atomic_set(&cic->pending_pages, cc->valid_nr_cpages);
 	cic->rpages = page_array_alloc(cc->inode, cc->cluster_size);
 	if (!cic->rpages)
 		goto out_put_cic;
 
 	cic->nr_rpages = cc->cluster_size;
 
-	for (i = 0; i < cc->nr_cpages; i++) {
+	for (i = 0; i < cc->valid_nr_cpages; i++) {
 		f2fs_set_compressed_page(cc->cpages[i], inode,
 					cc->rpages[i + 1]->index, cic);
 		fio.compressed_page = cc->cpages[i];
@@ -1339,7 +1318,7 @@
 		if (fio.compr_blocks && __is_valid_data_blkaddr(blkaddr))
 			fio.compr_blocks++;
 
-		if (i > cc->nr_cpages) {
+		if (i > cc->valid_nr_cpages) {
 			if (__is_valid_data_blkaddr(blkaddr)) {
 				f2fs_invalidate_blocks(sbi, blkaddr);
 				f2fs_update_data_blkaddr(&dn, NEW_ADDR);
@@ -1364,8 +1343,8 @@
 
 	if (fio.compr_blocks)
 		f2fs_i_compr_blocks_update(inode, fio.compr_blocks - 1, false);
-	f2fs_i_compr_blocks_update(inode, cc->nr_cpages, true);
-	add_compr_block_stat(inode, cc->nr_cpages);
+	f2fs_i_compr_blocks_update(inode, cc->valid_nr_cpages, true);
+	add_compr_block_stat(inode, cc->valid_nr_cpages);
 
 	set_inode_flag(cc->inode, FI_APPEND_WRITE);
 	if (cc->cluster_idx == 0)
@@ -1373,7 +1352,7 @@
 
 	f2fs_put_dnode(&dn);
 	if (IS_NOQUOTA(inode))
-		up_read(&sbi->node_write);
+		f2fs_up_read(&sbi->node_write);
 	else
 		f2fs_unlock_op(sbi);
 
@@ -1399,13 +1378,11 @@
 	f2fs_put_dnode(&dn);
 out_unlock_op:
 	if (IS_NOQUOTA(inode))
-		up_read(&sbi->node_write);
+		f2fs_up_read(&sbi->node_write);
 	else
 		f2fs_unlock_op(sbi);
 out_free:
-	for (i = 0; i < cc->nr_cpages; i++) {
-		if (!cc->cpages[i])
-			continue;
+	for (i = 0; i < cc->valid_nr_cpages; i++) {
 		f2fs_compress_free_page(cc->cpages[i]);
 		cc->cpages[i] = NULL;
 	}
@@ -1502,9 +1479,7 @@
 				if (IS_NOQUOTA(cc->inode))
 					return 0;
 				ret = 0;
-				cond_resched();
-				congestion_wait(BLK_RW_ASYNC,
-						DEFAULT_IO_TIMEOUT);
+				f2fs_io_schedule_timeout(DEFAULT_IO_TIMEOUT);
 				goto retry_write;
 			}
 			return ret;
@@ -1552,16 +1527,85 @@
 	return err;
 }
 
-static void f2fs_free_dic(struct decompress_io_ctx *dic);
+static inline bool allow_memalloc_for_decomp(struct f2fs_sb_info *sbi,
+		bool pre_alloc)
+{
+	return pre_alloc ^ f2fs_low_mem_mode(sbi);
+}
+
+static int f2fs_prepare_decomp_mem(struct decompress_io_ctx *dic,
+		bool pre_alloc)
+{
+	const struct f2fs_compress_ops *cops =
+		f2fs_cops[F2FS_I(dic->inode)->i_compress_algorithm];
+	int i;
+
+	if (!allow_memalloc_for_decomp(F2FS_I_SB(dic->inode), pre_alloc))
+		return 0;
+
+	dic->tpages = page_array_alloc(dic->inode, dic->cluster_size);
+	if (!dic->tpages)
+		return -ENOMEM;
+
+	for (i = 0; i < dic->cluster_size; i++) {
+		if (dic->rpages[i]) {
+			dic->tpages[i] = dic->rpages[i];
+			continue;
+		}
+
+		dic->tpages[i] = f2fs_compress_alloc_page();
+		if (!dic->tpages[i])
+			return -ENOMEM;
+	}
+
+	dic->rbuf = f2fs_vmap(dic->tpages, dic->cluster_size);
+	if (!dic->rbuf)
+		return -ENOMEM;
+
+	dic->cbuf = f2fs_vmap(dic->cpages, dic->nr_cpages);
+	if (!dic->cbuf)
+		return -ENOMEM;
+
+	if (cops->init_decompress_ctx) {
+		int ret = cops->init_decompress_ctx(dic);
+
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+static void f2fs_release_decomp_mem(struct decompress_io_ctx *dic,
+		bool bypass_destroy_callback, bool pre_alloc)
+{
+	const struct f2fs_compress_ops *cops =
+		f2fs_cops[F2FS_I(dic->inode)->i_compress_algorithm];
+
+	if (!allow_memalloc_for_decomp(F2FS_I_SB(dic->inode), pre_alloc))
+		return;
+
+	if (!bypass_destroy_callback && cops->destroy_decompress_ctx)
+		cops->destroy_decompress_ctx(dic);
+
+	if (dic->cbuf)
+		vm_unmap_ram(dic->cbuf, dic->nr_cpages);
+
+	if (dic->rbuf)
+		vm_unmap_ram(dic->rbuf, dic->cluster_size);
+}
+
+static void f2fs_free_dic(struct decompress_io_ctx *dic,
+		bool bypass_destroy_callback);
 
 struct decompress_io_ctx *f2fs_alloc_dic(struct compress_ctx *cc)
 {
 	struct decompress_io_ctx *dic;
 	pgoff_t start_idx = start_idx_of_cluster(cc);
-	int i;
+	struct f2fs_sb_info *sbi = F2FS_I_SB(cc->inode);
+	int i, ret;
 
-	dic = f2fs_kmem_cache_alloc(dic_entry_slab, GFP_F2FS_ZERO,
-					false, F2FS_I_SB(cc->inode));
+	dic = f2fs_kmem_cache_alloc(dic_entry_slab, GFP_F2FS_ZERO, false, sbi);
 	if (!dic)
 		return ERR_PTR(-ENOMEM);
 
@@ -1587,32 +1631,43 @@
 	dic->nr_rpages = cc->cluster_size;
 
 	dic->cpages = page_array_alloc(dic->inode, dic->nr_cpages);
-	if (!dic->cpages)
+	if (!dic->cpages) {
+		ret = -ENOMEM;
 		goto out_free;
+	}
 
 	for (i = 0; i < dic->nr_cpages; i++) {
 		struct page *page;
 
 		page = f2fs_compress_alloc_page();
-		if (!page)
+		if (!page) {
+			ret = -ENOMEM;
 			goto out_free;
+		}
 
 		f2fs_set_compressed_page(page, cc->inode,
 					start_idx + i + 1, dic);
 		dic->cpages[i] = page;
 	}
 
+	ret = f2fs_prepare_decomp_mem(dic, true);
+	if (ret)
+		goto out_free;
+
 	return dic;
 
 out_free:
-	f2fs_free_dic(dic);
-	return ERR_PTR(-ENOMEM);
+	f2fs_free_dic(dic, true);
+	return ERR_PTR(ret);
 }
 
-static void f2fs_free_dic(struct decompress_io_ctx *dic)
+static void f2fs_free_dic(struct decompress_io_ctx *dic,
+		bool bypass_destroy_callback)
 {
 	int i;
 
+	f2fs_release_decomp_mem(dic, bypass_destroy_callback, true);
+
 	if (dic->tpages) {
 		for (i = 0; i < dic->cluster_size; i++) {
 			if (dic->rpages[i])
@@ -1637,17 +1692,33 @@
 	kmem_cache_free(dic_entry_slab, dic);
 }
 
-static void f2fs_put_dic(struct decompress_io_ctx *dic)
+static void f2fs_late_free_dic(struct work_struct *work)
 {
-	if (refcount_dec_and_test(&dic->refcnt))
-		f2fs_free_dic(dic);
+	struct decompress_io_ctx *dic =
+		container_of(work, struct decompress_io_ctx, free_work);
+
+	f2fs_free_dic(dic, false);
+}
+
+static void f2fs_put_dic(struct decompress_io_ctx *dic, bool in_task)
+{
+	if (refcount_dec_and_test(&dic->refcnt)) {
+		if (in_task) {
+			f2fs_free_dic(dic, false);
+		} else {
+			INIT_WORK(&dic->free_work, f2fs_late_free_dic);
+			queue_work(F2FS_I_SB(dic->inode)->post_read_wq,
+					&dic->free_work);
+		}
+	}
 }
 
 /*
  * Update and unlock the cluster's pagecache pages, and release the reference to
  * the decompress_io_ctx that was being held for I/O completion.
  */
-static void __f2fs_decompress_end_io(struct decompress_io_ctx *dic, bool failed)
+static void __f2fs_decompress_end_io(struct decompress_io_ctx *dic, bool failed,
+				bool in_task)
 {
 	int i;
 
@@ -1668,7 +1739,7 @@
 		unlock_page(rpage);
 	}
 
-	f2fs_put_dic(dic);
+	f2fs_put_dic(dic, in_task);
 }
 
 static void f2fs_verify_cluster(struct work_struct *work)
@@ -1685,14 +1756,15 @@
 			SetPageError(rpage);
 	}
 
-	__f2fs_decompress_end_io(dic, false);
+	__f2fs_decompress_end_io(dic, false, true);
 }
 
 /*
  * This is called when a compressed cluster has been decompressed
  * (or failed to be read and/or decompressed).
  */
-void f2fs_decompress_end_io(struct decompress_io_ctx *dic, bool failed)
+void f2fs_decompress_end_io(struct decompress_io_ctx *dic, bool failed,
+				bool in_task)
 {
 	if (!failed && dic->need_verity) {
 		/*
@@ -1704,7 +1776,7 @@
 		INIT_WORK(&dic->verity_work, f2fs_verify_cluster);
 		fsverity_enqueue_verify_work(&dic->verity_work);
 	} else {
-		__f2fs_decompress_end_io(dic, failed);
+		__f2fs_decompress_end_io(dic, failed, in_task);
 	}
 }
 
@@ -1713,12 +1785,12 @@
  *
  * This is called when the page is no longer needed and can be freed.
  */
-void f2fs_put_page_dic(struct page *page)
+void f2fs_put_page_dic(struct page *page, bool in_task)
 {
 	struct decompress_io_ctx *dic =
 			(struct decompress_io_ctx *)page_private(page);
 
-	f2fs_put_dic(dic);
+	f2fs_put_dic(dic, in_task);
 }
 
 /*
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 3956852..70b8bf0 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -21,12 +21,14 @@
 #include <linux/cleancache.h>
 #include <linux/sched/signal.h>
 #include <linux/fiemap.h>
+#include <linux/iomap.h>
 
 #include "f2fs.h"
 #include "node.h"
 #include "segment.h"
 #include "iostat.h"
 #include <trace/events/f2fs.h>
+#include <trace/events/android_fs.h>
 
 #define NUM_PREALLOC_POST_READ_CTXS	128
 
@@ -120,7 +122,7 @@
 	block_t fs_blkaddr;
 };
 
-static void f2fs_finish_read_bio(struct bio *bio)
+static void f2fs_finish_read_bio(struct bio *bio, bool in_task)
 {
 	struct bio_vec *bv;
 	struct bvec_iter_all iter_all;
@@ -134,8 +136,9 @@
 
 		if (f2fs_is_compressed_page(page)) {
 			if (bio->bi_status)
-				f2fs_end_read_compressed_page(page, true, 0);
-			f2fs_put_page_dic(page);
+				f2fs_end_read_compressed_page(page, true, 0,
+							in_task);
+			f2fs_put_page_dic(page, in_task);
 			continue;
 		}
 
@@ -192,7 +195,7 @@
 		fsverity_verify_bio(bio);
 	}
 
-	f2fs_finish_read_bio(bio);
+	f2fs_finish_read_bio(bio, true);
 }
 
 /*
@@ -204,7 +207,7 @@
  * can involve reading verity metadata pages from the file, and these verity
  * metadata pages may be encrypted and/or compressed.
  */
-static void f2fs_verify_and_finish_bio(struct bio *bio)
+static void f2fs_verify_and_finish_bio(struct bio *bio, bool in_task)
 {
 	struct bio_post_read_ctx *ctx = bio->bi_private;
 
@@ -212,7 +215,7 @@
 		INIT_WORK(&ctx->work, f2fs_verify_bio);
 		fsverity_enqueue_verify_work(&ctx->work);
 	} else {
-		f2fs_finish_read_bio(bio);
+		f2fs_finish_read_bio(bio, in_task);
 	}
 }
 
@@ -225,7 +228,8 @@
  * that the bio includes at least one compressed page.  The actual decompression
  * is done on a per-cluster basis, not a per-bio basis.
  */
-static void f2fs_handle_step_decompress(struct bio_post_read_ctx *ctx)
+static void f2fs_handle_step_decompress(struct bio_post_read_ctx *ctx,
+		bool in_task)
 {
 	struct bio_vec *bv;
 	struct bvec_iter_all iter_all;
@@ -238,7 +242,7 @@
 		/* PG_error was set if decryption failed. */
 		if (f2fs_is_compressed_page(page))
 			f2fs_end_read_compressed_page(page, PageError(page),
-						blkaddr);
+						blkaddr, in_task);
 		else
 			all_compressed = false;
 
@@ -263,15 +267,16 @@
 		fscrypt_decrypt_bio(ctx->bio);
 
 	if (ctx->enabled_steps & STEP_DECOMPRESS)
-		f2fs_handle_step_decompress(ctx);
+		f2fs_handle_step_decompress(ctx, true);
 
-	f2fs_verify_and_finish_bio(ctx->bio);
+	f2fs_verify_and_finish_bio(ctx->bio, true);
 }
 
 static void f2fs_read_end_io(struct bio *bio)
 {
 	struct f2fs_sb_info *sbi = F2FS_P_SB(bio_first_page_all(bio));
 	struct bio_post_read_ctx *ctx;
+	bool intask = in_task();
 
 	iostat_update_and_unbind_ctx(bio, 0);
 	ctx = bio->bi_private;
@@ -282,16 +287,29 @@
 	}
 
 	if (bio->bi_status) {
-		f2fs_finish_read_bio(bio);
+		f2fs_finish_read_bio(bio, intask);
 		return;
 	}
 
-	if (ctx && (ctx->enabled_steps & (STEP_DECRYPT | STEP_DECOMPRESS))) {
-		INIT_WORK(&ctx->work, f2fs_post_read_work);
-		queue_work(ctx->sbi->post_read_wq, &ctx->work);
-	} else {
-		f2fs_verify_and_finish_bio(bio);
+	if (ctx) {
+		unsigned int enabled_steps = ctx->enabled_steps &
+					(STEP_DECRYPT | STEP_DECOMPRESS);
+
+		/*
+		 * If we have only decompression step between decompression and
+		 * decrypt, we don't need post processing for this.
+		 */
+		if (enabled_steps == STEP_DECOMPRESS &&
+				!f2fs_low_mem_mode(sbi)) {
+			f2fs_handle_step_decompress(ctx, intask);
+		} else if (enabled_steps) {
+			INIT_WORK(&ctx->work, f2fs_post_read_work);
+			queue_work(ctx->sbi->post_read_wq, &ctx->work);
+			return;
+		}
 	}
+
+	f2fs_verify_and_finish_bio(bio, intask);
 }
 
 static void f2fs_write_end_io(struct bio *bio)
@@ -318,7 +336,8 @@
 			mempool_free(page, sbi->write_io_dummy);
 
 			if (unlikely(bio->bi_status))
-				f2fs_stop_checkpoint(sbi, true);
+				f2fs_stop_checkpoint(sbi, true,
+						STOP_CP_REASON_WRITE_FAIL);
 			continue;
 		}
 
@@ -334,7 +353,8 @@
 		if (unlikely(bio->bi_status)) {
 			mapping_set_error(page->mapping, -EIO);
 			if (type == F2FS_WB_CP_DATA)
-				f2fs_stop_checkpoint(sbi, true);
+				f2fs_stop_checkpoint(sbi, true,
+						STOP_CP_REASON_WRITE_FAIL);
 		}
 
 		f2fs_bug_on(sbi, page->mapping == NODE_MAPPING(sbi) &&
@@ -425,6 +445,8 @@
 	 */
 	if (!fio || !fio->encrypted_page)
 		fscrypt_set_bio_crypt_ctx(bio, inode, first_idx, gfp_mask);
+	else if (fscrypt_inode_should_skip_dm_default_key(inode))
+		bio_set_skip_dm_default_key(bio);
 }
 
 static bool f2fs_crypt_mergeable_bio(struct bio *bio, const struct inode *inode,
@@ -436,7 +458,9 @@
 	 * read/write raw data without encryption.
 	 */
 	if (fio && fio->encrypted_page)
-		return !bio_has_crypt_ctx(bio);
+		return !bio_has_crypt_ctx(bio) &&
+			(bio_should_skip_dm_default_key(bio) ==
+			 fscrypt_inode_should_skip_dm_default_key(inode));
 
 	return fscrypt_mergeable_bio(bio, inode, next_idx);
 }
@@ -590,7 +614,7 @@
 	enum page_type btype = PAGE_TYPE_OF_BIO(type);
 	struct f2fs_bio_info *io = sbi->write_io[btype] + temp;
 
-	down_write(&io->io_rwsem);
+	f2fs_down_write(&io->io_rwsem);
 
 	/* change META to META_FLUSH in the checkpoint procedure */
 	if (type >= META_FLUSH) {
@@ -601,7 +625,7 @@
 			io->fio.op_flags |= REQ_PREFLUSH | REQ_FUA;
 	}
 	__submit_merged_bio(io);
-	up_write(&io->io_rwsem);
+	f2fs_up_write(&io->io_rwsem);
 }
 
 static void __submit_merged_write_cond(struct f2fs_sb_info *sbi,
@@ -616,9 +640,9 @@
 			enum page_type btype = PAGE_TYPE_OF_BIO(type);
 			struct f2fs_bio_info *io = sbi->write_io[btype] + temp;
 
-			down_read(&io->io_rwsem);
+			f2fs_down_read(&io->io_rwsem);
 			ret = __has_merged_page(io->bio, inode, page, ino);
-			up_read(&io->io_rwsem);
+			f2fs_up_read(&io->io_rwsem);
 		}
 		if (ret)
 			__f2fs_submit_merged_write(sbi, type, temp);
@@ -742,9 +766,9 @@
 	if (bio_add_page(bio, page, PAGE_SIZE, 0) != PAGE_SIZE)
 		f2fs_bug_on(sbi, 1);
 
-	down_write(&io->bio_list_lock);
+	f2fs_down_write(&io->bio_list_lock);
 	list_add_tail(&be->list, &io->bio_list);
-	up_write(&io->bio_list_lock);
+	f2fs_up_write(&io->bio_list_lock);
 }
 
 static void del_bio_entry(struct bio_entry *be)
@@ -766,7 +790,7 @@
 		struct list_head *head = &io->bio_list;
 		struct bio_entry *be;
 
-		down_write(&io->bio_list_lock);
+		f2fs_down_write(&io->bio_list_lock);
 		list_for_each_entry(be, head, list) {
 			if (be->bio != *bio)
 				continue;
@@ -790,7 +814,7 @@
 			__submit_bio(sbi, *bio, DATA);
 			break;
 		}
-		up_write(&io->bio_list_lock);
+		f2fs_up_write(&io->bio_list_lock);
 	}
 
 	if (ret) {
@@ -818,7 +842,7 @@
 		if (list_empty(head))
 			continue;
 
-		down_read(&io->bio_list_lock);
+		f2fs_down_read(&io->bio_list_lock);
 		list_for_each_entry(be, head, list) {
 			if (target)
 				found = (target == be->bio);
@@ -828,14 +852,14 @@
 			if (found)
 				break;
 		}
-		up_read(&io->bio_list_lock);
+		f2fs_up_read(&io->bio_list_lock);
 
 		if (!found)
 			continue;
 
 		found = false;
 
-		down_write(&io->bio_list_lock);
+		f2fs_down_write(&io->bio_list_lock);
 		list_for_each_entry(be, head, list) {
 			if (target)
 				found = (target == be->bio);
@@ -848,7 +872,7 @@
 				break;
 			}
 		}
-		up_write(&io->bio_list_lock);
+		f2fs_up_write(&io->bio_list_lock);
 	}
 
 	if (found)
@@ -908,7 +932,7 @@
 
 	f2fs_bug_on(sbi, is_read_io(fio->op));
 
-	down_write(&io->io_rwsem);
+	f2fs_down_write(&io->io_rwsem);
 next:
 	if (fio->in_list) {
 		spin_lock(&io->io_lock);
@@ -975,7 +999,7 @@
 	if (is_sbi_flag_set(sbi, SBI_IS_SHUTDOWN) ||
 				!f2fs_is_checkpoint_ready(sbi))
 		__submit_merged_bio(io);
-	up_write(&io->io_rwsem);
+	f2fs_up_write(&io->io_rwsem);
 }
 
 static struct bio *f2fs_grab_read_bio(struct inode *inode, block_t blkaddr,
@@ -1378,68 +1402,16 @@
 		f2fs_invalidate_compress_page(sbi, old_blkaddr);
 	}
 	f2fs_update_data_blkaddr(dn, dn->data_blkaddr);
-
-	/*
-	 * i_size will be updated by direct_IO. Otherwise, we'll get stale
-	 * data from unwritten block via dio_read.
-	 */
 	return 0;
 }
 
-int f2fs_preallocate_blocks(struct kiocb *iocb, struct iov_iter *from)
-{
-	struct inode *inode = file_inode(iocb->ki_filp);
-	struct f2fs_map_blocks map;
-	int flag;
-	int err = 0;
-	bool direct_io = iocb->ki_flags & IOCB_DIRECT;
-
-	map.m_lblk = F2FS_BLK_ALIGN(iocb->ki_pos);
-	map.m_len = F2FS_BYTES_TO_BLK(iocb->ki_pos + iov_iter_count(from));
-	if (map.m_len > map.m_lblk)
-		map.m_len -= map.m_lblk;
-	else
-		map.m_len = 0;
-
-	map.m_next_pgofs = NULL;
-	map.m_next_extent = NULL;
-	map.m_seg_type = NO_CHECK_TYPE;
-	map.m_may_create = true;
-
-	if (direct_io) {
-		map.m_seg_type = f2fs_rw_hint_to_seg_type(iocb->ki_hint);
-		flag = f2fs_force_buffered_io(inode, iocb, from) ?
-					F2FS_GET_BLOCK_PRE_AIO :
-					F2FS_GET_BLOCK_PRE_DIO;
-		goto map_blocks;
-	}
-	if (iocb->ki_pos + iov_iter_count(from) > MAX_INLINE_DATA(inode)) {
-		err = f2fs_convert_inline_inode(inode);
-		if (err)
-			return err;
-	}
-	if (f2fs_has_inline_data(inode))
-		return err;
-
-	flag = F2FS_GET_BLOCK_PRE_AIO;
-
-map_blocks:
-	err = f2fs_map_blocks(inode, &map, 1, flag);
-	if (map.m_len > 0 && err == -ENOSPC) {
-		if (!direct_io)
-			set_inode_flag(inode, FI_NO_PREALLOC);
-		err = 0;
-	}
-	return err;
-}
-
 void f2fs_do_map_lock(struct f2fs_sb_info *sbi, int flag, bool lock)
 {
 	if (flag == F2FS_GET_BLOCK_PRE_AIO) {
 		if (lock)
-			down_read(&sbi->node_change);
+			f2fs_down_read(&sbi->node_change);
 		else
-			up_read(&sbi->node_change);
+			f2fs_up_read(&sbi->node_change);
 	} else {
 		if (lock)
 			f2fs_lock_op(sbi);
@@ -1467,10 +1439,15 @@
 	struct extent_info ei = {0, };
 	block_t blkaddr;
 	unsigned int start_pgofs;
+	int bidx = 0;
 
 	if (!maxblocks)
 		return 0;
 
+	map->m_bdev = inode->i_sb->s_bdev;
+	map->m_multidev_dio =
+		f2fs_allow_multi_device_dio(F2FS_I_SB(inode), flag);
+
 	map->m_len = 0;
 	map->m_flags = 0;
 
@@ -1493,6 +1470,21 @@
 		if (flag == F2FS_GET_BLOCK_DIO)
 			f2fs_wait_on_block_writeback_range(inode,
 						map->m_pblk, map->m_len);
+
+		if (map->m_multidev_dio) {
+			block_t blk_addr = map->m_pblk;
+
+			bidx = f2fs_target_device_index(sbi, map->m_pblk);
+
+			map->m_bdev = FDEV(bidx).bdev;
+			map->m_pblk -= FDEV(bidx).start_blk;
+			map->m_len = min(map->m_len,
+				FDEV(bidx).end_blk + 1 - map->m_pblk);
+
+			if (map->m_may_create)
+				f2fs_update_device_state(sbi, inode->i_ino,
+							blk_addr, map->m_len);
+		}
 		goto out;
 	}
 
@@ -1572,8 +1564,11 @@
 					flag != F2FS_GET_BLOCK_DIO);
 				err = __allocate_data_block(&dn,
 							map->m_seg_type);
-				if (!err)
+				if (!err) {
+					if (flag == F2FS_GET_BLOCK_PRE_DIO)
+						file_need_truncate(inode);
 					set_inode_flag(inode, FI_APPEND_WRITE);
+				}
 			}
 			if (err)
 				goto sync_out;
@@ -1611,6 +1606,9 @@
 	if (flag == F2FS_GET_BLOCK_PRE_AIO)
 		goto skip;
 
+	if (map->m_multidev_dio)
+		bidx = f2fs_target_device_index(sbi, blkaddr);
+
 	if (map->m_len == 0) {
 		/* preallocated unwritten block should be mapped for fiemap. */
 		if (blkaddr == NEW_ADDR)
@@ -1619,10 +1617,15 @@
 
 		map->m_pblk = blkaddr;
 		map->m_len = 1;
+
+		if (map->m_multidev_dio)
+			map->m_bdev = FDEV(bidx).bdev;
 	} else if ((map->m_pblk != NEW_ADDR &&
 			blkaddr == (map->m_pblk + ofs)) ||
 			(map->m_pblk == NEW_ADDR && blkaddr == NEW_ADDR) ||
 			flag == F2FS_GET_BLOCK_PRE_DIO) {
+		if (map->m_multidev_dio && map->m_bdev != FDEV(bidx).bdev)
+			goto sync_out;
 		ofs++;
 		map->m_len++;
 	} else {
@@ -1675,11 +1678,31 @@
 
 sync_out:
 
-	/* for hardware encryption, but to avoid potential issue in future */
-	if (flag == F2FS_GET_BLOCK_DIO && map->m_flags & F2FS_MAP_MAPPED)
+	if (flag == F2FS_GET_BLOCK_DIO && map->m_flags & F2FS_MAP_MAPPED) {
+		/*
+		 * for hardware encryption, but to avoid potential issue
+		 * in future
+		 */
 		f2fs_wait_on_block_writeback_range(inode,
 						map->m_pblk, map->m_len);
 
+		if (map->m_multidev_dio) {
+			block_t blk_addr = map->m_pblk;
+
+			bidx = f2fs_target_device_index(sbi, map->m_pblk);
+
+			map->m_bdev = FDEV(bidx).bdev;
+			map->m_pblk -= FDEV(bidx).start_blk;
+
+			if (map->m_may_create)
+				f2fs_update_device_state(sbi, inode->i_ino,
+							blk_addr, map->m_len);
+
+			f2fs_bug_on(sbi, blk_addr + map->m_len >
+						FDEV(bidx).end_blk + 1);
+		}
+	}
+
 	if (flag == F2FS_GET_BLOCK_PRECACHE) {
 		if (map->m_flags & F2FS_MAP_MAPPED) {
 			unsigned int ofs = start_pgofs - map->m_lblk;
@@ -1698,7 +1721,7 @@
 		f2fs_balance_fs(sbi, dn.node_changed);
 	}
 out:
-	trace_f2fs_map_blocks(inode, map, err);
+	trace_f2fs_map_blocks(inode, map, create, flag, err);
 	return err;
 }
 
@@ -1738,47 +1761,6 @@
 	return (blks << inode->i_blkbits);
 }
 
-static int __get_data_block(struct inode *inode, sector_t iblock,
-			struct buffer_head *bh, int create, int flag,
-			pgoff_t *next_pgofs, int seg_type, bool may_write)
-{
-	struct f2fs_map_blocks map;
-	int err;
-
-	map.m_lblk = iblock;
-	map.m_len = bytes_to_blks(inode, bh->b_size);
-	map.m_next_pgofs = next_pgofs;
-	map.m_next_extent = NULL;
-	map.m_seg_type = seg_type;
-	map.m_may_create = may_write;
-
-	err = f2fs_map_blocks(inode, &map, create, flag);
-	if (!err) {
-		map_bh(bh, inode->i_sb, map.m_pblk);
-		bh->b_state = (bh->b_state & ~F2FS_MAP_FLAGS) | map.m_flags;
-		bh->b_size = blks_to_bytes(inode, map.m_len);
-	}
-	return err;
-}
-
-static int get_data_block_dio_write(struct inode *inode, sector_t iblock,
-			struct buffer_head *bh_result, int create)
-{
-	return __get_data_block(inode, iblock, bh_result, create,
-				F2FS_GET_BLOCK_DIO, NULL,
-				f2fs_rw_hint_to_seg_type(inode->i_write_hint),
-				true);
-}
-
-static int get_data_block_dio(struct inode *inode, sector_t iblock,
-			struct buffer_head *bh_result, int create)
-{
-	return __get_data_block(inode, iblock, bh_result, create,
-				F2FS_GET_BLOCK_DIO, NULL,
-				f2fs_rw_hint_to_seg_type(inode->i_write_hint),
-				false);
-}
-
 static int f2fs_xattr_fiemap(struct inode *inode,
 				struct fiemap_extent_info *fieinfo)
 {
@@ -2254,7 +2236,7 @@
 
 		if (f2fs_load_compressed_page(sbi, page, blkaddr)) {
 			if (atomic_dec_and_test(&dic->remaining_pages))
-				f2fs_decompress_cluster(dic);
+				f2fs_decompress_cluster(dic, true);
 			continue;
 		}
 
@@ -2272,7 +2254,7 @@
 					page->index, for_write);
 			if (IS_ERR(bio)) {
 				ret = PTR_ERR(bio);
-				f2fs_decompress_end_io(dic, ret);
+				f2fs_decompress_end_io(dic, ret, true);
 				f2fs_put_dnode(&dn);
 				*bio_ret = NULL;
 				return ret;
@@ -2514,6 +2496,9 @@
 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
 	unsigned int policy = SM_I(sbi)->ipu_policy;
 
+	if (policy & (0x1 << F2FS_IPU_HONOR_OPU_WRITE) &&
+			is_inode_flag_set(inode, FI_OPU_WRITE))
+		return false;
 	if (policy & (0x1 << F2FS_IPU_FORCE))
 		return true;
 	if (policy & (0x1 << F2FS_IPU_SSR) && f2fs_need_SSR(sbi))
@@ -2556,7 +2541,7 @@
 		return true;
 
 	/* if this is cold file, we should overwrite to avoid fragmentation */
-	if (file_is_cold(inode))
+	if (file_is_cold(inode) && !is_inode_flag_set(inode, FI_OPU_WRITE))
 		return true;
 
 	return check_inplace_update_policy(inode, fio);
@@ -2584,6 +2569,9 @@
 	if (is_inode_flag_set(inode, FI_ALIGNED_WRITE))
 		return true;
 
+	if (is_inode_flag_set(inode, FI_OPU_WRITE))
+		return true;
+
 	if (fio) {
 		if (page_private_gcing(fio->page))
 			return true;
@@ -2749,6 +2737,7 @@
 		.submitted = false,
 		.compr_blocks = compr_blocks,
 		.need_lock = LOCK_RETRY,
+		.post_read = f2fs_post_read_required(inode),
 		.io_type = io_type,
 		.io_wbc = wbc,
 		.bio = bio,
@@ -2804,13 +2793,13 @@
 		 * the below discard race condition.
 		 */
 		if (IS_NOQUOTA(inode))
-			down_read(&sbi->node_write);
+			f2fs_down_read(&sbi->node_write);
 
 		fio.need_lock = LOCK_DONE;
 		err = f2fs_do_write_data_page(&fio);
 
 		if (IS_NOQUOTA(inode))
-			up_read(&sbi->node_write);
+			f2fs_up_read(&sbi->node_write);
 
 		goto done;
 	}
@@ -2941,6 +2930,7 @@
 		.rpages = NULL,
 		.nr_rpages = 0,
 		.cpages = NULL,
+		.valid_nr_cpages = 0,
 		.rbuf = NULL,
 		.cbuf = NULL,
 		.rlen = PAGE_SIZE * F2FS_I(inode)->i_cluster_size,
@@ -2996,6 +2986,10 @@
 			need_readd = false;
 #ifdef CONFIG_F2FS_FS_COMPRESSION
 			if (f2fs_compressed_file(inode)) {
+				void *fsdata = NULL;
+				struct page *pagep;
+				int ret2;
+
 				ret = f2fs_init_compress_ctx(&cc);
 				if (ret) {
 					done = 1;
@@ -3014,27 +3008,23 @@
 				if (unlikely(f2fs_cp_error(sbi)))
 					goto lock_page;
 
-				if (f2fs_cluster_is_empty(&cc)) {
-					void *fsdata = NULL;
-					struct page *pagep;
-					int ret2;
+				if (!f2fs_cluster_is_empty(&cc))
+					goto lock_page;
 
-					ret2 = f2fs_prepare_compress_overwrite(
+				ret2 = f2fs_prepare_compress_overwrite(
 							inode, &pagep,
 							page->index, &fsdata);
-					if (ret2 < 0) {
-						ret = ret2;
-						done = 1;
-						break;
-					} else if (ret2 &&
-						!f2fs_compress_write_end(inode,
-								fsdata, page->index,
-								1)) {
-						retry = 1;
-						break;
-					}
-				} else {
-					goto lock_page;
+				if (ret2 < 0) {
+					ret = ret2;
+					done = 1;
+					break;
+				} else if (ret2 &&
+					(!f2fs_compress_write_end(inode,
+						fsdata, page->index, 1) ||
+					 !f2fs_all_cluster_page_loaded(&cc,
+						&pvec, i, nr_pages))) {
+					retry = 1;
+					break;
 				}
 			}
 #endif
@@ -3102,8 +3092,7 @@
 				} else if (ret == -EAGAIN) {
 					ret = 0;
 					if (wbc->sync_mode == WB_SYNC_ALL) {
-						cond_resched();
-						congestion_wait(BLK_RW_ASYNC,
+						f2fs_io_schedule_timeout(
 							DEFAULT_IO_TIMEOUT);
 						goto retry_write;
 					}
@@ -3209,8 +3198,8 @@
 			f2fs_available_free_memory(sbi, DIRTY_DENTS))
 		goto skip_write;
 
-	/* skip writing during file defragment */
-	if (is_inode_flag_set(inode, FI_DO_DEFRAG))
+	/* skip writing in file defragment preparing stage */
+	if (is_inode_flag_set(inode, FI_SKIP_WRITES))
 		goto skip_write;
 
 	trace_f2fs_writepages(mapping->host, wbc, DATA);
@@ -3263,7 +3252,7 @@
 			FS_CP_DATA_IO : FS_DATA_IO);
 }
 
-static void f2fs_write_failed(struct inode *inode, loff_t to)
+void f2fs_write_failed(struct inode *inode, loff_t to)
 {
 	loff_t i_size = i_size_read(inode);
 
@@ -3272,14 +3261,14 @@
 
 	/* In the fs-verity case, f2fs_end_enable_verity() does the truncate */
 	if (to > i_size && !f2fs_verity_in_progress(inode)) {
-		down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+		f2fs_down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 		filemap_invalidate_lock(inode->i_mapping);
 
 		truncate_pagecache(inode, i_size);
 		f2fs_truncate_blocks(inode, i_size, true);
 
 		filemap_invalidate_unlock(inode->i_mapping);
-		up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+		f2fs_up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 	}
 }
 
@@ -3297,12 +3286,10 @@
 	int flag;
 
 	/*
-	 * we already allocated all the blocks, so we don't need to get
-	 * the block addresses when there is no need to fill the page.
+	 * If a whole page is being written and we already preallocated all the
+	 * blocks, then there is no need to get a block address now.
 	 */
-	if (!f2fs_has_inline_data(inode) && len == PAGE_SIZE &&
-	    !is_inode_flag_set(inode, FI_NO_PREALLOC) &&
-	    !f2fs_verity_in_progress(inode))
+	if (len == PAGE_SIZE && is_inode_flag_set(inode, FI_PREALLOCATED_ALL))
 		return 0;
 
 	/* f2fs_lock_op avoids race between write CP and convert_inline_page */
@@ -3382,6 +3369,22 @@
 	block_t blkaddr = NULL_ADDR;
 	int err = 0;
 
+	/*
+	 * Should avoid quota operations which can make deadlock:
+	 * kswapd -> f2fs_evict_inode -> dquot_drop ->
+	 *   f2fs_dquot_commit -> f2fs_write_begin ->
+	 *   d_obtain_alias -> __d_alloc -> kmem_cache_alloc(GFP_KERNEL)
+	 */
+	if (trace_android_fs_datawrite_start_enabled() && !IS_NOQUOTA(inode)) {
+		char *path, pathbuf[MAX_TRACE_PATHBUF_LEN];
+
+		path = android_fstrace_get_pathname(pathbuf,
+						    MAX_TRACE_PATHBUF_LEN,
+						    inode);
+		trace_android_fs_datawrite_start(inode, pos, len,
+						 current->pid, path,
+						 current->comm);
+	}
 	trace_f2fs_write_begin(inode, pos, len, flags);
 
 	if (!f2fs_is_checkpoint_ready(sbi)) {
@@ -3512,6 +3515,7 @@
 {
 	struct inode *inode = page->mapping->host;
 
+	trace_android_fs_datawrite_end(inode, pos, len);
 	trace_f2fs_write_end(inode, pos, len, copied);
 
 	/*
@@ -3553,158 +3557,6 @@
 	return copied;
 }
 
-static int check_direct_IO(struct inode *inode, struct iov_iter *iter,
-			   loff_t offset)
-{
-	unsigned i_blkbits = READ_ONCE(inode->i_blkbits);
-	unsigned blkbits = i_blkbits;
-	unsigned blocksize_mask = (1 << blkbits) - 1;
-	unsigned long align = offset | iov_iter_alignment(iter);
-	struct block_device *bdev = inode->i_sb->s_bdev;
-
-	if (iov_iter_rw(iter) == READ && offset >= i_size_read(inode))
-		return 1;
-
-	if (align & blocksize_mask) {
-		if (bdev)
-			blkbits = blksize_bits(bdev_logical_block_size(bdev));
-		blocksize_mask = (1 << blkbits) - 1;
-		if (align & blocksize_mask)
-			return -EINVAL;
-		return 1;
-	}
-	return 0;
-}
-
-static void f2fs_dio_end_io(struct bio *bio)
-{
-	struct f2fs_private_dio *dio = bio->bi_private;
-
-	dec_page_count(F2FS_I_SB(dio->inode),
-			dio->write ? F2FS_DIO_WRITE : F2FS_DIO_READ);
-
-	bio->bi_private = dio->orig_private;
-	bio->bi_end_io = dio->orig_end_io;
-
-	kfree(dio);
-
-	bio_endio(bio);
-}
-
-static void f2fs_dio_submit_bio(struct bio *bio, struct inode *inode,
-							loff_t file_offset)
-{
-	struct f2fs_private_dio *dio;
-	bool write = (bio_op(bio) == REQ_OP_WRITE);
-
-	dio = f2fs_kzalloc(F2FS_I_SB(inode),
-			sizeof(struct f2fs_private_dio), GFP_NOFS);
-	if (!dio)
-		goto out;
-
-	dio->inode = inode;
-	dio->orig_end_io = bio->bi_end_io;
-	dio->orig_private = bio->bi_private;
-	dio->write = write;
-
-	bio->bi_end_io = f2fs_dio_end_io;
-	bio->bi_private = dio;
-
-	inc_page_count(F2FS_I_SB(inode),
-			write ? F2FS_DIO_WRITE : F2FS_DIO_READ);
-
-	submit_bio(bio);
-	return;
-out:
-	bio->bi_status = BLK_STS_IOERR;
-	bio_endio(bio);
-}
-
-static ssize_t f2fs_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
-{
-	struct address_space *mapping = iocb->ki_filp->f_mapping;
-	struct inode *inode = mapping->host;
-	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
-	struct f2fs_inode_info *fi = F2FS_I(inode);
-	size_t count = iov_iter_count(iter);
-	loff_t offset = iocb->ki_pos;
-	int rw = iov_iter_rw(iter);
-	int err;
-	enum rw_hint hint = iocb->ki_hint;
-	int whint_mode = F2FS_OPTION(sbi).whint_mode;
-	bool do_opu;
-
-	err = check_direct_IO(inode, iter, offset);
-	if (err)
-		return err < 0 ? err : 0;
-
-	if (f2fs_force_buffered_io(inode, iocb, iter))
-		return 0;
-
-	do_opu = rw == WRITE && f2fs_lfs_mode(sbi);
-
-	trace_f2fs_direct_IO_enter(inode, offset, count, rw);
-
-	if (rw == WRITE && whint_mode == WHINT_MODE_OFF)
-		iocb->ki_hint = WRITE_LIFE_NOT_SET;
-
-	if (iocb->ki_flags & IOCB_NOWAIT) {
-		if (!down_read_trylock(&fi->i_gc_rwsem[rw])) {
-			iocb->ki_hint = hint;
-			err = -EAGAIN;
-			goto out;
-		}
-		if (do_opu && !down_read_trylock(&fi->i_gc_rwsem[READ])) {
-			up_read(&fi->i_gc_rwsem[rw]);
-			iocb->ki_hint = hint;
-			err = -EAGAIN;
-			goto out;
-		}
-	} else {
-		down_read(&fi->i_gc_rwsem[rw]);
-		if (do_opu)
-			down_read(&fi->i_gc_rwsem[READ]);
-	}
-
-	err = __blockdev_direct_IO(iocb, inode, inode->i_sb->s_bdev,
-			iter, rw == WRITE ? get_data_block_dio_write :
-			get_data_block_dio, NULL, f2fs_dio_submit_bio,
-			rw == WRITE ? DIO_LOCKING | DIO_SKIP_HOLES :
-			DIO_SKIP_HOLES);
-
-	if (do_opu)
-		up_read(&fi->i_gc_rwsem[READ]);
-
-	up_read(&fi->i_gc_rwsem[rw]);
-
-	if (rw == WRITE) {
-		if (whint_mode == WHINT_MODE_OFF)
-			iocb->ki_hint = hint;
-		if (err > 0) {
-			f2fs_update_iostat(F2FS_I_SB(inode), APP_DIRECT_IO,
-									err);
-			if (!do_opu)
-				set_inode_flag(inode, FI_UPDATE_WRITE);
-		} else if (err == -EIOCBQUEUED) {
-			f2fs_update_iostat(F2FS_I_SB(inode), APP_DIRECT_IO,
-						count - iov_iter_count(iter));
-		} else if (err < 0) {
-			f2fs_write_failed(inode, offset + count);
-		}
-	} else {
-		if (err > 0)
-			f2fs_update_iostat(sbi, APP_DIRECT_READ_IO, err);
-		else if (err == -EIOCBQUEUED)
-			f2fs_update_iostat(F2FS_I_SB(inode), APP_DIRECT_READ_IO,
-						count - iov_iter_count(iter));
-	}
-
-out:
-	trace_f2fs_direct_IO_exit(inode, offset, count, rw, err);
-
-	return err;
-}
-
 void f2fs_invalidate_page(struct page *page, unsigned int offset,
 							unsigned int length)
 {
@@ -3728,12 +3580,9 @@
 
 	clear_page_private_gcing(page);
 
-	if (test_opt(sbi, COMPRESS_CACHE)) {
-		if (f2fs_compressed_file(inode))
-			f2fs_invalidate_compress_pages(sbi, inode->i_ino);
-		if (inode->i_ino == F2FS_COMPRESS_INO(sbi))
-			clear_page_private_data(page);
-	}
+	if (test_opt(sbi, COMPRESS_CACHE) &&
+			inode->i_ino == F2FS_COMPRESS_INO(sbi))
+		clear_page_private_data(page);
 
 	if (page_private_atomic(page))
 		return f2fs_drop_inmem_page(inode, page);
@@ -3753,12 +3602,9 @@
 		return 0;
 
 	if (test_opt(F2FS_P_SB(page), COMPRESS_CACHE)) {
-		struct f2fs_sb_info *sbi = F2FS_P_SB(page);
 		struct inode *inode = page->mapping->host;
 
-		if (f2fs_compressed_file(inode))
-			f2fs_invalidate_compress_pages(sbi, inode->i_ino);
-		if (inode->i_ino == F2FS_COMPRESS_INO(sbi))
+		if (inode->i_ino == F2FS_COMPRESS_INO(F2FS_I_SB(inode)))
 			clear_page_private_data(page);
 	}
 
@@ -3940,19 +3786,20 @@
 	unsigned int end_sec = secidx + blkcnt / blk_per_sec;
 	int ret = 0;
 
-	down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+	f2fs_down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 	filemap_invalidate_lock(inode->i_mapping);
 
 	set_inode_flag(inode, FI_ALIGNED_WRITE);
+	set_inode_flag(inode, FI_OPU_WRITE);
 
 	for (; secidx < end_sec; secidx++) {
-		down_write(&sbi->pin_sem);
+		f2fs_down_write(&sbi->pin_sem);
 
 		f2fs_lock_op(sbi);
 		f2fs_allocate_new_section(sbi, CURSEG_COLD_DATA_PINNED, false);
 		f2fs_unlock_op(sbi);
 
-		set_inode_flag(inode, FI_DO_DEFRAG);
+		set_inode_flag(inode, FI_SKIP_WRITES);
 
 		for (blkofs = 0; blkofs < blk_per_sec; blkofs++) {
 			struct page *page;
@@ -3960,7 +3807,7 @@
 
 			page = f2fs_get_lock_data_page(inode, blkidx, true);
 			if (IS_ERR(page)) {
-				up_write(&sbi->pin_sem);
+				f2fs_up_write(&sbi->pin_sem);
 				ret = PTR_ERR(page);
 				goto done;
 			}
@@ -3969,22 +3816,23 @@
 			f2fs_put_page(page, 1);
 		}
 
-		clear_inode_flag(inode, FI_DO_DEFRAG);
+		clear_inode_flag(inode, FI_SKIP_WRITES);
 
 		ret = filemap_fdatawrite(inode->i_mapping);
 
-		up_write(&sbi->pin_sem);
+		f2fs_up_write(&sbi->pin_sem);
 
 		if (ret)
 			break;
 	}
 
 done:
-	clear_inode_flag(inode, FI_DO_DEFRAG);
+	clear_inode_flag(inode, FI_SKIP_WRITES);
+	clear_inode_flag(inode, FI_OPU_WRITE);
 	clear_inode_flag(inode, FI_ALIGNED_WRITE);
 
 	filemap_invalidate_unlock(inode->i_mapping);
-	up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+	f2fs_up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 
 	return ret;
 }
@@ -4160,7 +4008,7 @@
 	.set_page_dirty	= f2fs_set_data_page_dirty,
 	.invalidatepage	= f2fs_invalidate_page,
 	.releasepage	= f2fs_release_page,
-	.direct_IO	= f2fs_direct_IO,
+	.direct_IO	= noop_direct_IO,
 	.bmap		= f2fs_bmap,
 	.swap_activate  = f2fs_swap_activate,
 	.swap_deactivate = f2fs_swap_deactivate,
@@ -4240,3 +4088,65 @@
 {
 	kmem_cache_destroy(bio_entry_slab);
 }
+
+static int f2fs_iomap_begin(struct inode *inode, loff_t offset, loff_t length,
+			    unsigned int flags, struct iomap *iomap,
+			    struct iomap *srcmap)
+{
+	struct f2fs_map_blocks map = {};
+	pgoff_t next_pgofs = 0;
+	int err;
+
+	map.m_lblk = bytes_to_blks(inode, offset);
+	map.m_len = bytes_to_blks(inode, offset + length - 1) - map.m_lblk + 1;
+	map.m_next_pgofs = &next_pgofs;
+	map.m_seg_type = f2fs_rw_hint_to_seg_type(inode->i_write_hint);
+	if (flags & IOMAP_WRITE)
+		map.m_may_create = true;
+
+	err = f2fs_map_blocks(inode, &map, flags & IOMAP_WRITE,
+			      F2FS_GET_BLOCK_DIO);
+	if (err)
+		return err;
+
+	iomap->offset = blks_to_bytes(inode, map.m_lblk);
+
+	/*
+	 * When inline encryption is enabled, sometimes I/O to an encrypted file
+	 * has to be broken up to guarantee DUN contiguity.  Handle this by
+	 * limiting the length of the mapping returned.
+	 */
+	map.m_len = fscrypt_limit_io_blocks(inode, map.m_lblk, map.m_len);
+
+	if (map.m_flags & (F2FS_MAP_MAPPED | F2FS_MAP_UNWRITTEN)) {
+		iomap->length = blks_to_bytes(inode, map.m_len);
+		if (map.m_flags & F2FS_MAP_MAPPED) {
+			iomap->type = IOMAP_MAPPED;
+			iomap->flags |= IOMAP_F_MERGED;
+		} else {
+			iomap->type = IOMAP_UNWRITTEN;
+		}
+		if (WARN_ON_ONCE(!__is_valid_data_blkaddr(map.m_pblk)))
+			return -EINVAL;
+
+		iomap->bdev = map.m_bdev;
+		iomap->addr = blks_to_bytes(inode, map.m_pblk);
+	} else {
+		iomap->length = blks_to_bytes(inode, next_pgofs) -
+				iomap->offset;
+		iomap->type = IOMAP_HOLE;
+		iomap->addr = IOMAP_NULL_ADDR;
+	}
+
+	if (map.m_flags & F2FS_MAP_NEW)
+		iomap->flags |= IOMAP_F_NEW;
+	if ((inode->i_state & I_DIRTY_DATASYNC) ||
+	    offset + length > i_size_read(inode))
+		iomap->flags |= IOMAP_F_DIRTY;
+
+	return 0;
+}
+
+const struct iomap_ops f2fs_iomap_ops = {
+	.iomap_begin	= f2fs_iomap_begin,
+};
diff --git a/fs/f2fs/debug.c b/fs/f2fs/debug.c
index b449c7a..fcdf253 100644
--- a/fs/f2fs/debug.c
+++ b/fs/f2fs/debug.c
@@ -476,12 +476,14 @@
 				si->node_segs, si->bg_node_segs);
 		seq_printf(s, "  - Reclaimed segs : Normal (%d), Idle CB (%d), "
 				"Idle Greedy (%d), Idle AT (%d), "
-				"Urgent High (%d), Urgent Low (%d)\n",
+				"Urgent High (%d), Urgent Mid (%d), "
+				"Urgent Low (%d)\n",
 				si->sbi->gc_reclaimed_segs[GC_NORMAL],
 				si->sbi->gc_reclaimed_segs[GC_IDLE_CB],
 				si->sbi->gc_reclaimed_segs[GC_IDLE_GREEDY],
 				si->sbi->gc_reclaimed_segs[GC_IDLE_AT],
 				si->sbi->gc_reclaimed_segs[GC_URGENT_HIGH],
+				si->sbi->gc_reclaimed_segs[GC_URGENT_MID],
 				si->sbi->gc_reclaimed_segs[GC_URGENT_LOW]);
 		seq_printf(s, "Try to move %d blocks (BG: %d)\n", si->tot_blks,
 				si->bg_data_blks + si->bg_node_blks);
@@ -534,6 +536,9 @@
 			   si->ndirty_meta, si->meta_pages);
 		seq_printf(s, "  - imeta: %4d\n",
 			   si->ndirty_imeta);
+		seq_printf(s, "  - fsync mark: %4lld\n",
+			   percpu_counter_sum_positive(
+					&si->sbi->rf_node_block_count));
 		seq_printf(s, "  - NATs: %9d/%9d\n  - SITs: %9d/%9d\n",
 			   si->dirty_nats, si->nats, si->dirty_sits, si->sits);
 		seq_printf(s, "  - free_nids: %9d/%9d\n  - alloc_nids: %9d\n",
diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c
index 5c78350..0a3b630 100644
--- a/fs/f2fs/dir.c
+++ b/fs/f2fs/dir.c
@@ -767,7 +767,7 @@
 	f2fs_wait_on_page_writeback(dentry_page, DATA, true, true);
 
 	if (inode) {
-		down_write(&F2FS_I(inode)->i_sem);
+		f2fs_down_write(&F2FS_I(inode)->i_sem);
 		page = f2fs_init_inode_metadata(inode, dir, fname, NULL);
 		if (IS_ERR(page)) {
 			err = PTR_ERR(page);
@@ -794,7 +794,7 @@
 	f2fs_update_parent_metadata(dir, inode, current_depth);
 fail:
 	if (inode)
-		up_write(&F2FS_I(inode)->i_sem);
+		f2fs_up_write(&F2FS_I(inode)->i_sem);
 
 	f2fs_put_page(dentry_page, 1);
 
@@ -859,7 +859,7 @@
 	struct page *page;
 	int err = 0;
 
-	down_write(&F2FS_I(inode)->i_sem);
+	f2fs_down_write(&F2FS_I(inode)->i_sem);
 	page = f2fs_init_inode_metadata(inode, dir, NULL, NULL);
 	if (IS_ERR(page)) {
 		err = PTR_ERR(page);
@@ -870,7 +870,7 @@
 	clear_inode_flag(inode, FI_NEW_INODE);
 	f2fs_update_time(F2FS_I_SB(inode), REQ_TIME);
 fail:
-	up_write(&F2FS_I(inode)->i_sem);
+	f2fs_up_write(&F2FS_I(inode)->i_sem);
 	return err;
 }
 
@@ -878,7 +878,7 @@
 {
 	struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
 
-	down_write(&F2FS_I(inode)->i_sem);
+	f2fs_down_write(&F2FS_I(inode)->i_sem);
 
 	if (S_ISDIR(inode->i_mode))
 		f2fs_i_links_write(dir, false);
@@ -889,7 +889,7 @@
 		f2fs_i_links_write(inode, false);
 		f2fs_i_size_write(inode, 0);
 	}
-	up_write(&F2FS_I(inode)->i_sem);
+	f2fs_up_write(&F2FS_I(inode)->i_sem);
 
 	if (inode->i_nlink == 0)
 		f2fs_add_orphan_inode(inode);
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index 835ef986..6507d37 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -56,6 +56,7 @@
 	FAULT_WRITE_IO,
 	FAULT_SLAB_ALLOC,
 	FAULT_DQUOT_INIT,
+	FAULT_LOCK_OP,
 	FAULT_MAX,
 };
 
@@ -120,6 +121,20 @@
 
 #define COMPRESS_EXT_NUM		16
 
+/*
+ * An implementation of an rwsem that is explicitly unfair to readers. This
+ * prevents priority inversion when a low-priority reader acquires the read lock
+ * while sleeping on the write lock but the write lock is needed by
+ * higher-priority clients.
+ */
+
+struct f2fs_rwsem {
+        struct rw_semaphore internal_rwsem;
+#ifdef CONFIG_F2FS_UNFAIR_RWSEM
+        wait_queue_head_t read_waiters;
+#endif
+};
+
 struct f2fs_mount_info {
 	unsigned int opt;
 	int write_io_size_bits;		/* Write IO size bits */
@@ -142,6 +157,7 @@
 	int fsync_mode;			/* fsync policy */
 	int fs_mode;			/* fs mode: LFS or ADAPTIVE */
 	int bggc_mode;			/* bggc mode: off, on or sync */
+	int memory_mode;		/* memory mode */
 	int discard_unit;		/*
 					 * discard command's offset/size should
 					 * be aligned to this unit: block,
@@ -387,6 +403,10 @@
 	struct mutex cmd_lock;
 	unsigned int nr_discards;		/* # of discards in the list */
 	unsigned int max_discards;		/* max. discards to be issued */
+	unsigned int max_discard_request;	/* max. discard request per round */
+	unsigned int min_discard_issue_time;	/* min. interval between discard issue */
+	unsigned int mid_discard_issue_time;	/* mid. interval between discard issue */
+	unsigned int max_discard_issue_time;	/* max. interval between discard issue */
 	unsigned int discard_granularity;	/* discard granularity */
 	unsigned int undiscard_blks;		/* # of undiscard blocks */
 	unsigned int next_pos;			/* next discard position */
@@ -562,16 +582,25 @@
 /* maximum retry quota flush count */
 #define DEFAULT_RETRY_QUOTA_FLUSH_COUNT		8
 
+/* maximum retry of EIO'ed page */
+#define MAX_RETRY_PAGE_EIO			100
+
 #define F2FS_LINK_MAX	0xffffffff	/* maximum link count per file */
 
 #define MAX_DIR_RA_PAGES	4	/* maximum ra pages of dir */
 
+/* dirty segments threshold for triggering CP */
+#define DEFAULT_DIRTY_THRESHOLD		4
+
 /* for in-memory extent cache entry */
 #define F2FS_MIN_EXTENT_LEN	64	/* minimum extent length */
 
 /* number of extent info in extent cache we try to shrink */
 #define EXTENT_CACHE_SHRINK_NUMBER	128
 
+#define RECOVERY_MAX_RA_BLOCKS		BIO_MAX_VECS
+#define RECOVERY_MIN_RA_BLOCKS		1
+
 struct rb_entry {
 	struct rb_node rb_node;		/* rb node located in rb-tree */
 	union {
@@ -622,6 +651,7 @@
 				F2FS_MAP_UNWRITTEN)
 
 struct f2fs_map_blocks {
+	struct block_device *m_bdev;	/* for multi-device dio */
 	block_t m_pblk;
 	block_t m_lblk;
 	unsigned int m_len;
@@ -630,6 +660,7 @@
 	pgoff_t *m_next_extent;		/* point to next possible extent */
 	int m_seg_type;
 	bool m_may_create;		/* indicate it is from write path */
+	bool m_multidev_dio;		/* indicate it allows multi-device dio */
 };
 
 /* for flag in get_data_block */
@@ -653,6 +684,7 @@
 #define FADVISE_KEEP_SIZE_BIT	0x10
 #define FADVISE_HOT_BIT		0x20
 #define FADVISE_VERITY_BIT	0x40
+#define FADVISE_TRUNC_BIT	0x80
 
 #define FADVISE_MODIFIABLE_BITS	(FADVISE_COLD_BIT | FADVISE_HOT_BIT)
 
@@ -680,6 +712,10 @@
 #define file_is_verity(inode)	is_file(inode, FADVISE_VERITY_BIT)
 #define file_set_verity(inode)	set_file(inode, FADVISE_VERITY_BIT)
 
+#define file_should_truncate(inode)	is_file(inode, FADVISE_TRUNC_BIT)
+#define file_need_truncate(inode)	set_file(inode, FADVISE_TRUNC_BIT)
+#define file_dont_truncate(inode)	clear_file(inode, FADVISE_TRUNC_BIT)
+
 #define DEF_DIR_LEVEL		0
 
 enum {
@@ -712,9 +748,10 @@
 	FI_DROP_CACHE,		/* drop dirty page cache */
 	FI_DATA_EXIST,		/* indicate data exists */
 	FI_INLINE_DOTS,		/* indicate inline dot dentries */
-	FI_DO_DEFRAG,		/* indicate defragment is running */
+	FI_SKIP_WRITES,		/* should skip data page writeback */
+	FI_OPU_WRITE,		/* used for opu per file */
 	FI_DIRTY_FILE,		/* indicate regular/symlink has dirty pages */
-	FI_NO_PREALLOC,		/* indicate skipped preallocated blocks */
+	FI_PREALLOCATED_ALL,	/* all blocks for write were preallocated */
 	FI_HOT_DATA,		/* indicate file is hot */
 	FI_EXTRA_ATTR,		/* indicate file has extra attribute */
 	FI_PROJ_INHERIT,	/* indicate file inherits projectid */
@@ -743,7 +780,7 @@
 
 	/* Use below internally in f2fs*/
 	unsigned long flags[BITS_TO_LONGS(FI_MAX)];	/* use to pass per-file flags */
-	struct rw_semaphore i_sem;	/* protect fi info */
+	struct f2fs_rwsem i_sem;	/* protect fi info */
 	atomic_t dirty_pages;		/* # of dirty pages */
 	f2fs_hash_t chash;		/* hash value of given file name */
 	unsigned int clevel;		/* maximum level of given file name */
@@ -769,8 +806,8 @@
 	struct extent_tree *extent_tree;	/* cached extent_tree entry */
 
 	/* avoid racing between foreground op and gc */
-	struct rw_semaphore i_gc_rwsem[2];
-	struct rw_semaphore i_xattr_sem; /* avoid racing between reading and changing EAs */
+	struct f2fs_rwsem i_gc_rwsem[2];
+	struct f2fs_rwsem i_xattr_sem; /* avoid racing between reading and changing EAs */
 
 	int i_extra_isize;		/* size of extra space located in i_addr */
 	kprojid_t i_projid;		/* id for project quota */
@@ -889,6 +926,7 @@
 	nid_t max_nid;			/* maximum possible node ids */
 	nid_t available_nids;		/* # of available node ids */
 	nid_t next_scan_nid;		/* the next nid to be scanned */
+	nid_t max_rf_node_blocks;	/* max # of nodes for recovery */
 	unsigned int ram_thresh;	/* control the memory footprint */
 	unsigned int ra_nid_pages;	/* # of nid pages to be readaheaded */
 	unsigned int dirty_nats_ratio;	/* control dirty nats ratio threshold */
@@ -896,7 +934,7 @@
 	/* NAT cache management */
 	struct radix_tree_root nat_root;/* root of the nat entry cache */
 	struct radix_tree_root nat_set_root;/* root of the nat set cache */
-	struct rw_semaphore nat_tree_lock;	/* protect nat entry tree */
+	struct f2fs_rwsem nat_tree_lock;	/* protect nat entry tree */
 	struct list_head nat_entries;	/* cached nat entry list (clean) */
 	spinlock_t nat_list_lock;	/* protect clean nat entry list */
 	unsigned int nat_cnt[MAX_NAT_STATE]; /* the # of cached nat entries */
@@ -1009,7 +1047,7 @@
 	struct dirty_seglist_info *dirty_info;	/* dirty segment information */
 	struct curseg_info *curseg_array;	/* active segment information */
 
-	struct rw_semaphore curseg_lock;	/* for preventing curseg change */
+	struct f2fs_rwsem curseg_lock;	/* for preventing curseg change */
 
 	block_t seg0_blkaddr;		/* block address of 0'th segment */
 	block_t main_blkaddr;		/* start block address of main area */
@@ -1175,6 +1213,7 @@
 	bool retry;		/* need to reallocate block address */
 	int compr_blocks;	/* # of compressed block addresses */
 	bool encrypted;		/* indicate file is encrypted */
+	bool post_read;		/* require post read */
 	enum iostat_type io_type;	/* io type */
 	struct writeback_control *io_wbc; /* writeback control */
 	struct bio **bio;		/* bio for ipu */
@@ -1193,11 +1232,11 @@
 	struct bio *bio;		/* bios to merge */
 	sector_t last_block_in_bio;	/* last block number */
 	struct f2fs_io_info fio;	/* store buffered io info. */
-	struct rw_semaphore io_rwsem;	/* blocking op for bio */
+	struct f2fs_rwsem io_rwsem;	/* blocking op for bio */
 	spinlock_t io_lock;		/* serialize DATA/NODE IOs */
 	struct list_head io_list;	/* track fios */
 	struct list_head bio_list;	/* bio entry list head */
-	struct rw_semaphore bio_list_lock;	/* lock to protect bio entry list */
+	struct f2fs_rwsem bio_list_lock;	/* lock to protect bio entry list */
 };
 
 #define FDEV(i)				(sbi->devs[i])
@@ -1278,6 +1317,7 @@
 	GC_IDLE_AT,
 	GC_URGENT_HIGH,
 	GC_URGENT_LOW,
+	GC_URGENT_MID,
 	MAX_GC_MODE,
 };
 
@@ -1291,8 +1331,10 @@
 };
 
 enum {
-	FS_MODE_ADAPTIVE,	/* use both lfs/ssr allocation */
-	FS_MODE_LFS,		/* use lfs allocation only */
+	FS_MODE_ADAPTIVE,		/* use both lfs/ssr allocation */
+	FS_MODE_LFS,			/* use lfs allocation only */
+	FS_MODE_FRAGMENT_SEG,		/* segment fragmentation mode */
+	FS_MODE_FRAGMENT_BLK,		/* block fragmentation mode */
 };
 
 enum {
@@ -1330,6 +1372,13 @@
 	DISCARD_UNIT_SECTION,	/* basic discard unit is section */
 };
 
+enum {
+	MEMORY_MODE_NORMAL,	/* memory mode for normal devices */
+	MEMORY_MODE_LOW,	/* memory mode for low memry devices */
+};
+
+
+
 static inline int f2fs_test_bit(unsigned int nr, char *addr);
 static inline void f2fs_set_bit(unsigned int nr, char *addr);
 static inline void f2fs_clear_bit(unsigned int nr, char *addr);
@@ -1485,6 +1534,7 @@
 	unsigned int nr_rpages;		/* total page number in rpages */
 	struct page **cpages;		/* pages store compressed data in cluster */
 	unsigned int nr_cpages;		/* total page number in cpages */
+	unsigned int valid_nr_cpages;	/* valid page number in cpages */
 	void *rbuf;			/* virtual mapped address on rpages */
 	struct compress_data *cbuf;	/* virtual mapped address on cpages */
 	size_t rlen;			/* valid data length in rbuf */
@@ -1549,6 +1599,7 @@
 	void *private;			/* payload buffer for specified decompression algorithm */
 	void *private2;			/* extra payload buffer */
 	struct work_struct verity_work;	/* work to verify the decompressed pages */
+	struct work_struct free_work;	/* work for late free this structure itself */
 };
 
 #define NULL_CLUSTER			((unsigned int)(~0))
@@ -1560,7 +1611,7 @@
 	struct super_block *sb;			/* pointer to VFS super block */
 	struct proc_dir_entry *s_proc;		/* proc entry */
 	struct f2fs_super_block *raw_super;	/* raw super block pointer */
-	struct rw_semaphore sb_lock;		/* lock for raw super block */
+	struct f2fs_rwsem sb_lock;		/* lock for raw super block */
 	int valid_super_block;			/* valid super block no */
 	unsigned long s_flag;				/* flags for sbi */
 	struct mutex writepages;		/* mutex for writepages() */
@@ -1580,18 +1631,20 @@
 	/* for bio operations */
 	struct f2fs_bio_info *write_io[NR_PAGE_TYPE];	/* for write bios */
 	/* keep migration IO order for LFS mode */
-	struct rw_semaphore io_order_lock;
+	struct f2fs_rwsem io_order_lock;
 	mempool_t *write_io_dummy;		/* Dummy pages */
+	pgoff_t page_eio_ofs[NR_PAGE_TYPE];	/* EIO page offset */
+	int page_eio_cnt[NR_PAGE_TYPE];		/* EIO count */
 
 	/* for checkpoint */
 	struct f2fs_checkpoint *ckpt;		/* raw checkpoint pointer */
 	int cur_cp_pack;			/* remain current cp pack */
 	spinlock_t cp_lock;			/* for flag in ckpt */
 	struct inode *meta_inode;		/* cache meta blocks */
-	struct rw_semaphore cp_global_sem;	/* checkpoint procedure lock */
-	struct rw_semaphore cp_rwsem;		/* blocking FS operations */
-	struct rw_semaphore node_write;		/* locking node writes */
-	struct rw_semaphore node_change;	/* locking node change */
+	struct f2fs_rwsem cp_global_sem;	/* checkpoint procedure lock */
+	struct f2fs_rwsem cp_rwsem;		/* blocking FS operations */
+	struct f2fs_rwsem node_write;		/* locking node writes */
+	struct f2fs_rwsem node_change;	/* locking node change */
 	wait_queue_head_t cp_wait;
 	unsigned long last_time[MAX_TIME];	/* to store time in jiffies */
 	long interval_time[MAX_TIME];		/* to store thresholds */
@@ -1652,12 +1705,14 @@
 	block_t unusable_block_count;		/* # of blocks saved by last cp */
 
 	unsigned int nquota_files;		/* # of quota sysfile */
-	struct rw_semaphore quota_sem;		/* blocking cp for flags */
+	struct f2fs_rwsem quota_sem;		/* blocking cp for flags */
 
 	/* # of pages, see count_type */
 	atomic_t nr_pages[NR_COUNT_TYPE];
 	/* # of allocated blocks */
 	struct percpu_counter alloc_valid_block_count;
+	/* # of node block writes as roll forward recovery */
+	struct percpu_counter rf_node_block_count;
 
 	/* writeback control */
 	atomic_t wb_sync_req[META];	/* count # of WB_SYNC threads */
@@ -1668,7 +1723,7 @@
 	struct f2fs_mount_info mount_opt;	/* mount options */
 
 	/* for cleaning operations */
-	struct rw_semaphore gc_lock;		/*
+	struct f2fs_rwsem gc_lock;		/*
 						 * semaphore for GC, avoid
 						 * race between GC and GC or CP
 						 */
@@ -1677,6 +1732,8 @@
 	unsigned int cur_victim_sec;		/* current victim section num */
 	unsigned int gc_mode;			/* current GC state */
 	unsigned int next_victim_seg[2];	/* next segment in victim section */
+	spinlock_t gc_urgent_high_lock;
+	unsigned int gc_urgent_high_remaining;	/* remaining trial count for GC_URGENT_HIGH */
 
 	/* for skip statistic */
 	unsigned int atomic_files;		/* # of opened atomic file */
@@ -1685,7 +1742,7 @@
 
 	/* threshold for gc trials on pinned files */
 	u64 gc_pin_file_threshold;
-	struct rw_semaphore pin_sem;
+	struct f2fs_rwsem pin_sem;
 
 	/* maximum # of trials to find a victim segment for SSR and GC */
 	unsigned int max_victim_search;
@@ -1736,12 +1793,15 @@
 
 	/* For shrinker support */
 	struct list_head s_list;
+	struct mutex umount_mutex;
+	unsigned int shrinker_run_no;
+
+	/* For multi devices */
 	int s_ndevs;				/* number of devices */
 	struct f2fs_dev_info *devs;		/* for device list */
 	unsigned int dirty_device;		/* for checkpoint data flush */
 	spinlock_t dev_lock;			/* protect dirty_device */
-	struct mutex umount_mutex;
-	unsigned int shrinker_run_no;
+	bool aligned_blksize;			/* all devices has the same logical blksize */
 
 	/* For write statistics */
 	u64 sectors_written_start;
@@ -1764,6 +1824,9 @@
 
 	unsigned long seq_file_ra_mul;		/* multiplier for ra_pages of seq. files in fadvise */
 
+	int max_fragment_chunk;			/* max chunk size for block fragmentation mode */
+	int max_fragment_hole;			/* max hole size for block fragmentation mode */
+
 #ifdef CONFIG_F2FS_FS_COMPRESSION
 	struct kmem_cache *page_array_slab;	/* page array entry */
 	unsigned int page_array_slab_size;	/* default page array slab size */
@@ -1795,13 +1858,6 @@
 #endif
 };
 
-struct f2fs_private_dio {
-	struct inode *inode;
-	void *orig_private;
-	bio_end_io_t *orig_end_io;
-	bool write;
-};
-
 #ifdef CONFIG_F2FS_FAULT_INJECTION
 #define f2fs_show_injection_info(sbi, type)					\
 	printk_ratelimited("%sF2FS-fs (%s) : inject %s in %s of %pS\n",	\
@@ -2080,29 +2136,105 @@
 	spin_unlock_irqrestore(&sbi->cp_lock, flags);
 }
 
+#define init_f2fs_rwsem(sem)					\
+do {								\
+	static struct lock_class_key __key;			\
+								\
+	__init_f2fs_rwsem((sem), #sem, &__key);			\
+} while (0)
+
+static inline void __init_f2fs_rwsem(struct f2fs_rwsem *sem,
+		const char *sem_name, struct lock_class_key *key)
+{
+	__init_rwsem(&sem->internal_rwsem, sem_name, key);
+#ifdef CONFIG_F2FS_UNFAIR_RWSEM
+	init_waitqueue_head(&sem->read_waiters);
+#endif
+}
+
+static inline int f2fs_rwsem_is_locked(struct f2fs_rwsem *sem)
+{
+	return rwsem_is_locked(&sem->internal_rwsem);
+}
+
+static inline int f2fs_rwsem_is_contended(struct f2fs_rwsem *sem)
+{
+	return rwsem_is_contended(&sem->internal_rwsem);
+}
+
+static inline void f2fs_down_read(struct f2fs_rwsem *sem)
+{
+#ifdef CONFIG_F2FS_UNFAIR_RWSEM
+	wait_event(sem->read_waiters, down_read_trylock(&sem->internal_rwsem));
+#else
+	down_read(&sem->internal_rwsem);
+#endif
+}
+
+static inline int f2fs_down_read_trylock(struct f2fs_rwsem *sem)
+{
+	return down_read_trylock(&sem->internal_rwsem);
+}
+
+#ifdef CONFIG_DEBUG_LOCK_ALLOC
+static inline void f2fs_down_read_nested(struct f2fs_rwsem *sem, int subclass)
+{
+	down_read_nested(&sem->internal_rwsem, subclass);
+}
+#else
+#define f2fs_down_read_nested(sem, subclass) f2fs_down_read(sem)
+#endif
+
+static inline void f2fs_up_read(struct f2fs_rwsem *sem)
+{
+	up_read(&sem->internal_rwsem);
+}
+
+static inline void f2fs_down_write(struct f2fs_rwsem *sem)
+{
+	down_write(&sem->internal_rwsem);
+}
+
+static inline int f2fs_down_write_trylock(struct f2fs_rwsem *sem)
+{
+	return down_write_trylock(&sem->internal_rwsem);
+}
+
+static inline void f2fs_up_write(struct f2fs_rwsem *sem)
+{
+	up_write(&sem->internal_rwsem);
+#ifdef CONFIG_F2FS_UNFAIR_RWSEM
+	wake_up_all(&sem->read_waiters);
+#endif
+}
+
 static inline void f2fs_lock_op(struct f2fs_sb_info *sbi)
 {
-	down_read(&sbi->cp_rwsem);
+	f2fs_down_read(&sbi->cp_rwsem);
 }
 
 static inline int f2fs_trylock_op(struct f2fs_sb_info *sbi)
 {
-	return down_read_trylock(&sbi->cp_rwsem);
+	if (time_to_inject(sbi, FAULT_LOCK_OP)) {
+		f2fs_show_injection_info(sbi, FAULT_LOCK_OP);
+		return 0;
+	}
+	return f2fs_down_read_trylock(&sbi->cp_rwsem);
 }
 
 static inline void f2fs_unlock_op(struct f2fs_sb_info *sbi)
 {
-	up_read(&sbi->cp_rwsem);
+	f2fs_up_read(&sbi->cp_rwsem);
 }
 
 static inline void f2fs_lock_all(struct f2fs_sb_info *sbi)
 {
-	down_write(&sbi->cp_rwsem);
+	f2fs_down_write(&sbi->cp_rwsem);
 }
 
 static inline void f2fs_unlock_all(struct f2fs_sb_info *sbi)
 {
-	up_write(&sbi->cp_rwsem);
+	f2fs_up_write(&sbi->cp_rwsem);
 }
 
 static inline int __get_cp_reason(struct f2fs_sb_info *sbi)
@@ -2671,6 +2803,9 @@
 	if (is_inflight_io(sbi, type))
 		return false;
 
+	if (sbi->gc_mode == GC_URGENT_MID)
+		return true;
+
 	if (sbi->gc_mode == GC_URGENT_LOW &&
 			(type == DISCARD_TIME || type == GC_TIME))
 		return true;
@@ -3126,12 +3261,16 @@
 
 static inline void set_file(struct inode *inode, int type)
 {
+	if (is_file(inode, type))
+		return;
 	F2FS_I(inode)->i_advise |= type;
 	f2fs_mark_inode_dirty_sync(inode, true);
 }
 
 static inline void clear_file(struct inode *inode, int type)
 {
+	if (!is_file(inode, type))
+		return;
 	F2FS_I(inode)->i_advise &= ~type;
 	f2fs_mark_inode_dirty_sync(inode, true);
 }
@@ -3392,6 +3531,7 @@
 int f2fs_quota_sync(struct super_block *sb, int type);
 loff_t max_file_blocks(struct inode *inode);
 void f2fs_quota_off_umount(struct super_block *sb);
+void f2fs_handle_stop(struct f2fs_sb_info *sbi, unsigned char reason);
 int f2fs_commit_super(struct f2fs_sb_info *sbi, bool recover);
 int f2fs_sync_fs(struct super_block *sb, int sync);
 int f2fs_sanity_check_ckpt(struct f2fs_sb_info *sbi);
@@ -3517,6 +3657,8 @@
 			block_t old_blkaddr, block_t *new_blkaddr,
 			struct f2fs_summary *sum, int type,
 			struct f2fs_io_info *fio);
+void f2fs_update_device_state(struct f2fs_sb_info *sbi, nid_t ino,
+					block_t blkaddr, unsigned int blkcnt);
 void f2fs_wait_on_page_writeback(struct page *page,
 			enum page_type type, bool ordered, bool locked);
 void f2fs_wait_on_block_writeback(struct inode *inode, block_t blkaddr);
@@ -3541,10 +3683,21 @@
 unsigned int f2fs_usable_blks_in_seg(struct f2fs_sb_info *sbi,
 			unsigned int segno);
 
+#define DEF_FRAGMENT_SIZE	4
+#define MIN_FRAGMENT_SIZE	1
+#define MAX_FRAGMENT_SIZE	512
+
+static inline bool f2fs_need_rand_seg(struct f2fs_sb_info *sbi)
+{
+	return F2FS_OPTION(sbi).fs_mode == FS_MODE_FRAGMENT_SEG ||
+		F2FS_OPTION(sbi).fs_mode == FS_MODE_FRAGMENT_BLK;
+}
+
 /*
  * checkpoint.c
  */
-void f2fs_stop_checkpoint(struct f2fs_sb_info *sbi, bool end_io);
+void f2fs_stop_checkpoint(struct f2fs_sb_info *sbi, bool end_io,
+							unsigned char reason);
 void f2fs_flush_ckpt_thread(struct f2fs_sb_info *sbi);
 struct page *f2fs_grab_meta_page(struct f2fs_sb_info *sbi, pgoff_t index);
 struct page *f2fs_get_meta_page(struct f2fs_sb_info *sbi, pgoff_t index);
@@ -3554,7 +3707,8 @@
 					block_t blkaddr, int type);
 int f2fs_ra_meta_pages(struct f2fs_sb_info *sbi, block_t start, int nrpages,
 			int type, bool sync);
-void f2fs_ra_meta_pages_cond(struct f2fs_sb_info *sbi, pgoff_t index);
+void f2fs_ra_meta_pages_cond(struct f2fs_sb_info *sbi, pgoff_t index,
+							unsigned int ra_blocks);
 long f2fs_sync_meta_pages(struct f2fs_sb_info *sbi, enum page_type type,
 			long nr_to_write, enum iostat_type io_type);
 void f2fs_add_ino_entry(struct f2fs_sb_info *sbi, nid_t ino, int type);
@@ -3614,7 +3768,6 @@
 int f2fs_reserve_new_blocks(struct dnode_of_data *dn, blkcnt_t count);
 int f2fs_reserve_new_block(struct dnode_of_data *dn);
 int f2fs_get_block(struct dnode_of_data *dn, pgoff_t index);
-int f2fs_preallocate_blocks(struct kiocb *iocb, struct iov_iter *from);
 int f2fs_reserve_block(struct dnode_of_data *dn, pgoff_t index);
 struct page *f2fs_get_read_data_page(struct inode *inode, pgoff_t index,
 			int op_flags, bool for_write);
@@ -3637,6 +3790,7 @@
 				struct writeback_control *wbc,
 				enum iostat_type io_type,
 				int compr_blocks, bool allow_balance);
+void f2fs_write_failed(struct inode *inode, loff_t to);
 void f2fs_invalidate_page(struct page *page, unsigned int offset,
 			unsigned int length);
 int f2fs_release_page(struct page *page, gfp_t wait);
@@ -3650,6 +3804,7 @@
 void f2fs_destroy_post_read_processing(void);
 int f2fs_init_post_read_wq(struct f2fs_sb_info *sbi);
 void f2fs_destroy_post_read_wq(struct f2fs_sb_info *sbi);
+extern const struct iomap_ops f2fs_iomap_ops;
 
 /*
  * gc.c
@@ -4050,11 +4205,13 @@
 bool f2fs_is_compress_backend_ready(struct inode *inode);
 int f2fs_init_compress_mempool(void);
 void f2fs_destroy_compress_mempool(void);
-void f2fs_decompress_cluster(struct decompress_io_ctx *dic);
+void f2fs_decompress_cluster(struct decompress_io_ctx *dic, bool in_task);
 void f2fs_end_read_compressed_page(struct page *page, bool failed,
-							block_t blkaddr);
+				block_t blkaddr, bool in_task);
 bool f2fs_cluster_is_empty(struct compress_ctx *cc);
 bool f2fs_cluster_can_merge_page(struct compress_ctx *cc, pgoff_t index);
+bool f2fs_all_cluster_page_loaded(struct compress_ctx *cc, struct pagevec *pvec,
+				int index, int nr_pages);
 bool f2fs_sanity_check_cluster(struct dnode_of_data *dn);
 void f2fs_compress_ctx_add_page(struct compress_ctx *cc, struct page *page);
 int f2fs_write_multi_pages(struct compress_ctx *cc,
@@ -4069,8 +4226,9 @@
 				unsigned nr_pages, sector_t *last_block_in_bio,
 				bool is_readahead, bool for_write);
 struct decompress_io_ctx *f2fs_alloc_dic(struct compress_ctx *cc);
-void f2fs_decompress_end_io(struct decompress_io_ctx *dic, bool failed);
-void f2fs_put_page_dic(struct page *page);
+void f2fs_decompress_end_io(struct decompress_io_ctx *dic, bool failed,
+				bool in_task);
+void f2fs_put_page_dic(struct page *page, bool in_task);
 unsigned int f2fs_cluster_blocks_are_contiguous(struct dnode_of_data *dn);
 int f2fs_init_compress_ctx(struct compress_ctx *cc);
 void f2fs_destroy_compress_ctx(struct compress_ctx *cc, bool reuse);
@@ -4116,13 +4274,14 @@
 }
 static inline int f2fs_init_compress_mempool(void) { return 0; }
 static inline void f2fs_destroy_compress_mempool(void) { }
-static inline void f2fs_decompress_cluster(struct decompress_io_ctx *dic) { }
+static inline void f2fs_decompress_cluster(struct decompress_io_ctx *dic,
+				bool in_task) { }
 static inline void f2fs_end_read_compressed_page(struct page *page,
-						bool failed, block_t blkaddr)
+				bool failed, block_t blkaddr, bool in_task)
 {
 	WARN_ON_ONCE(1);
 }
-static inline void f2fs_put_page_dic(struct page *page)
+static inline void f2fs_put_page_dic(struct page *page, bool in_task)
 {
 	WARN_ON_ONCE(1);
 }
@@ -4148,8 +4307,9 @@
 				unsigned int c_len) { }
 #endif
 
-static inline void set_compress_context(struct inode *inode)
+static inline int set_compress_context(struct inode *inode)
 {
+#ifdef CONFIG_F2FS_FS_COMPRESSION
 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
 
 	F2FS_I(inode)->i_compress_algorithm =
@@ -4172,6 +4332,10 @@
 	stat_inc_compr_inode(inode);
 	inc_compr_inode_stat(inode);
 	f2fs_mark_inode_dirty_sync(inode, true);
+	return 0;
+#else
+	return -EOPNOTSUPP;
+#endif
 }
 
 static inline bool f2fs_disable_compressed_file(struct inode *inode)
@@ -4294,6 +4458,11 @@
 	return F2FS_OPTION(sbi).fs_mode == FS_MODE_LFS;
 }
 
+static inline bool f2fs_low_mem_mode(struct f2fs_sb_info *sbi)
+{
+	return F2FS_OPTION(sbi).memory_mode == MEMORY_MODE_LOW;
+}
+
 static inline bool f2fs_may_compress(struct inode *inode)
 {
 	if (IS_SWAPFILE(inode) || f2fs_is_pinned_file(inode) ||
@@ -4334,15 +4503,31 @@
 	return align & blocksize_mask;
 }
 
+static inline bool f2fs_allow_multi_device_dio(struct f2fs_sb_info *sbi,
+								int flag)
+{
+	if (!f2fs_is_multi_device(sbi))
+		return false;
+	if (flag != F2FS_GET_BLOCK_DIO)
+		return false;
+	return sbi->aligned_blksize;
+}
+
 static inline bool f2fs_force_buffered_io(struct inode *inode,
 				struct kiocb *iocb, struct iov_iter *iter)
 {
 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
 	int rw = iov_iter_rw(iter);
 
-	if (f2fs_post_read_required(inode))
+	if (!fscrypt_dio_supported(iocb, iter))
 		return true;
-	if (f2fs_is_multi_device(sbi))
+	if (fsverity_active(inode))
+		return true;
+	if (f2fs_compressed_file(inode))
+		return true;
+
+	/* disallow direct IO if any of devices has unaligned blksize */
+	if (f2fs_is_multi_device(sbi) && !sbi->aligned_blksize)
 		return true;
 	/*
 	 * for blkzoned device, fallback direct IO to buffered IO, so
@@ -4393,6 +4578,27 @@
 	return F2FS_OPTION(sbi).discard_unit == DISCARD_UNIT_BLOCK;
 }
 
+static inline void f2fs_io_schedule_timeout(long timeout)
+{
+	set_current_state(TASK_UNINTERRUPTIBLE);
+	io_schedule_timeout(timeout);
+}
+
+static inline void f2fs_handle_page_eio(struct f2fs_sb_info *sbi, pgoff_t ofs,
+					enum page_type type)
+{
+	if (unlikely(f2fs_cp_error(sbi)))
+		return;
+
+	if (ofs == sbi->page_eio_ofs[type]) {
+		if (sbi->page_eio_cnt[type]++ == MAX_RETRY_PAGE_EIO)
+			set_ckpt_flags(sbi, CP_ERROR_FLAG);
+	} else {
+		sbi->page_eio_ofs[type] = ofs;
+		sbi->page_eio_cnt[type] = 0;
+	}
+}
+
 #define EFSBADCRC	EBADMSG		/* Bad CRC detected */
 #define EFSCORRUPTED	EUCLEAN		/* Filesystem is corrupted */
 
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index e1131af..3b146e2 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -24,6 +24,7 @@
 #include <linux/sched/signal.h>
 #include <linux/fileattr.h>
 #include <linux/fadvise.h>
+#include <linux/iomap.h>
 
 #include "f2fs.h"
 #include "node.h"
@@ -33,6 +34,7 @@
 #include "gc.h"
 #include "iostat.h"
 #include <trace/events/f2fs.h>
+#include <trace/events/android_fs.h>
 #include <uapi/linux/f2fs.h>
 
 static vm_fault_t f2fs_filemap_fault(struct vm_fault *vmf)
@@ -169,6 +171,7 @@
 	.fault		= f2fs_filemap_fault,
 	.map_pages	= filemap_map_pages,
 	.page_mkwrite	= f2fs_vm_page_mkwrite,
+	.speculative	= true,
 };
 
 static int get_parent_ino(struct inode *inode, nid_t *pino)
@@ -236,13 +239,13 @@
 	struct f2fs_inode_info *fi = F2FS_I(inode);
 	nid_t pino;
 
-	down_write(&fi->i_sem);
+	f2fs_down_write(&fi->i_sem);
 	if (file_wrong_pino(inode) && inode->i_nlink == 1 &&
 			get_parent_ino(inode, &pino)) {
 		f2fs_i_pino_write(inode, pino);
 		file_got_pino(inode);
 	}
-	up_write(&fi->i_sem);
+	f2fs_up_write(&fi->i_sem);
 }
 
 static int f2fs_do_sync_file(struct file *file, loff_t start, loff_t end,
@@ -317,9 +320,9 @@
 	 * Both of fdatasync() and fsync() are able to be recovered from
 	 * sudden-power-off.
 	 */
-	down_read(&F2FS_I(inode)->i_sem);
+	f2fs_down_read(&F2FS_I(inode)->i_sem);
 	cp_reason = need_do_checkpoint(inode);
-	up_read(&F2FS_I(inode)->i_sem);
+	f2fs_up_read(&F2FS_I(inode)->i_sem);
 
 	if (cp_reason) {
 		/* all the dirty node pages should be flushed for POR */
@@ -811,7 +814,7 @@
 {
 	struct inode *inode = d_inode(path->dentry);
 	struct f2fs_inode_info *fi = F2FS_I(inode);
-	struct f2fs_inode *ri;
+	struct f2fs_inode *ri = NULL;
 	unsigned int flags;
 
 	if (f2fs_has_extra_attr(inode) &&
@@ -843,7 +846,7 @@
 				  STATX_ATTR_NODUMP |
 				  STATX_ATTR_VERITY);
 
-	generic_fillattr(&init_user_ns, inode, stat);
+	generic_fillattr(mnt_userns, inode, stat);
 
 	/* we need to show initial sectors used for inline_data/dentries */
 	if ((S_ISREG(inode->i_mode) && f2fs_has_inline_data(inode)) ||
@@ -903,7 +906,7 @@
 		!f2fs_is_compress_backend_ready(inode))
 		return -EOPNOTSUPP;
 
-	err = setattr_prepare(&init_user_ns, dentry, attr);
+	err = setattr_prepare(mnt_userns, dentry, attr);
 	if (err)
 		return err;
 
@@ -957,7 +960,7 @@
 				return err;
 		}
 
-		down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+		f2fs_down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 		filemap_invalidate_lock(inode->i_mapping);
 
 		truncate_setsize(inode, attr->ia_size);
@@ -969,7 +972,7 @@
 		 * larger than i_size.
 		 */
 		filemap_invalidate_unlock(inode->i_mapping);
-		up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+		f2fs_up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 		if (err)
 			return err;
 
@@ -979,10 +982,10 @@
 		spin_unlock(&F2FS_I(inode)->i_size_lock);
 	}
 
-	__setattr_copy(&init_user_ns, inode, attr);
+	__setattr_copy(mnt_userns, inode, attr);
 
 	if (attr->ia_valid & ATTR_MODE) {
-		err = posix_acl_chmod(&init_user_ns, inode, f2fs_get_inode_mode(inode));
+		err = posix_acl_chmod(mnt_userns, inode, f2fs_get_inode_mode(inode));
 
 		if (is_inode_flag_set(inode, FI_ACL_MODE)) {
 			if (!err)
@@ -1111,7 +1114,7 @@
 			blk_start = (loff_t)pg_start << PAGE_SHIFT;
 			blk_end = (loff_t)pg_end << PAGE_SHIFT;
 
-			down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+			f2fs_down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 			filemap_invalidate_lock(inode->i_mapping);
 
 			truncate_pagecache_range(inode, blk_start, blk_end - 1);
@@ -1121,7 +1124,7 @@
 			f2fs_unlock_op(sbi);
 
 			filemap_invalidate_unlock(inode->i_mapping);
-			up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+			f2fs_up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 		}
 	}
 
@@ -1354,7 +1357,7 @@
 	f2fs_balance_fs(sbi, true);
 
 	/* avoid gc operation during block exchange */
-	down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+	f2fs_down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 	filemap_invalidate_lock(inode->i_mapping);
 
 	f2fs_lock_op(sbi);
@@ -1364,7 +1367,7 @@
 	f2fs_unlock_op(sbi);
 
 	filemap_invalidate_unlock(inode->i_mapping);
-	up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+	f2fs_up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 	return ret;
 }
 
@@ -1507,7 +1510,7 @@
 			unsigned int end_offset;
 			pgoff_t end;
 
-			down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+			f2fs_down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 			filemap_invalidate_lock(mapping);
 
 			truncate_pagecache_range(inode,
@@ -1521,7 +1524,7 @@
 			if (ret) {
 				f2fs_unlock_op(sbi);
 				filemap_invalidate_unlock(mapping);
-				up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+				f2fs_up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 				goto out;
 			}
 
@@ -1533,7 +1536,7 @@
 
 			f2fs_unlock_op(sbi);
 			filemap_invalidate_unlock(mapping);
-			up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+			f2fs_up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 
 			f2fs_balance_fs(sbi, dn.node_changed);
 
@@ -1607,7 +1610,7 @@
 	idx = DIV_ROUND_UP(i_size_read(inode), PAGE_SIZE);
 
 	/* avoid gc operation during block exchange */
-	down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+	f2fs_down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 	filemap_invalidate_lock(mapping);
 	truncate_pagecache(inode, offset);
 
@@ -1625,7 +1628,7 @@
 		f2fs_unlock_op(sbi);
 	}
 	filemap_invalidate_unlock(mapping);
-	up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+	f2fs_up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 
 	/* write out all moved pages, if possible */
 	filemap_invalidate_lock(mapping);
@@ -1681,13 +1684,13 @@
 next_alloc:
 		if (has_not_enough_free_secs(sbi, 0,
 			GET_SEC_FROM_SEG(sbi, overprovision_segments(sbi)))) {
-			down_write(&sbi->gc_lock);
+			f2fs_down_write(&sbi->gc_lock);
 			err = f2fs_gc(sbi, true, false, false, NULL_SEGNO);
 			if (err && err != -ENODATA && err != -EAGAIN)
 				goto out_err;
 		}
 
-		down_write(&sbi->pin_sem);
+		f2fs_down_write(&sbi->pin_sem);
 
 		f2fs_lock_op(sbi);
 		f2fs_allocate_new_section(sbi, CURSEG_COLD_DATA_PINNED, false);
@@ -1695,8 +1698,9 @@
 
 		map.m_seg_type = CURSEG_COLD_DATA_PINNED;
 		err = f2fs_map_blocks(inode, &map, 1, F2FS_GET_BLOCK_PRE_DIO);
+		file_dont_truncate(inode);
 
-		up_write(&sbi->pin_sem);
+		f2fs_up_write(&sbi->pin_sem);
 
 		expanded += map.m_len;
 		sec_len -= map.m_len;
@@ -1756,7 +1760,11 @@
 		(mode & (FALLOC_FL_COLLAPSE_RANGE | FALLOC_FL_INSERT_RANGE)))
 		return -EOPNOTSUPP;
 
-	if (f2fs_compressed_file(inode) &&
+	/*
+	 * Pinned file should not support partial trucation since the block
+	 * can be used by applications.
+	 */
+	if ((f2fs_compressed_file(inode) || f2fs_is_pinned_file(inode)) &&
 		(mode & (FALLOC_FL_PUNCH_HOLE | FALLOC_FL_COLLAPSE_RANGE |
 			FALLOC_FL_ZERO_RANGE | FALLOC_FL_INSERT_RANGE)))
 		return -EOPNOTSUPP;
@@ -1874,8 +1882,8 @@
 				return -EINVAL;
 			if (S_ISREG(inode->i_mode) && inode->i_size)
 				return -EINVAL;
-
-			set_compress_context(inode);
+			if (set_compress_context(inode))
+				return -EOPNOTSUPP;
 		}
 	}
 
@@ -1988,11 +1996,12 @@
 static int f2fs_ioc_start_atomic_write(struct file *filp)
 {
 	struct inode *inode = file_inode(filp);
+	struct user_namespace *mnt_userns = file_mnt_user_ns(filp);
 	struct f2fs_inode_info *fi = F2FS_I(inode);
 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
 	int ret;
 
-	if (!inode_owner_or_capable(&init_user_ns, inode))
+	if (!inode_owner_or_capable(mnt_userns, inode))
 		return -EACCES;
 
 	if (!S_ISREG(inode->i_mode))
@@ -2022,7 +2031,7 @@
 	if (ret)
 		goto out;
 
-	down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+	f2fs_down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 
 	/*
 	 * Should wait end_io to count F2FS_WB_CP_DATA correctly by
@@ -2033,7 +2042,7 @@
 			  inode->i_ino, get_dirty_pages(inode));
 	ret = filemap_write_and_wait_range(inode->i_mapping, 0, LLONG_MAX);
 	if (ret) {
-		up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+		f2fs_up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 		goto out;
 	}
 
@@ -2046,7 +2055,7 @@
 	/* add inode in inmem_list first and set atomic_file */
 	set_inode_flag(inode, FI_ATOMIC_FILE);
 	clear_inode_flag(inode, FI_ATOMIC_REVOKE_REQUEST);
-	up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+	f2fs_up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 
 	f2fs_update_time(F2FS_I_SB(inode), REQ_TIME);
 	F2FS_I(inode)->inmem_task = current;
@@ -2060,9 +2069,10 @@
 static int f2fs_ioc_commit_atomic_write(struct file *filp)
 {
 	struct inode *inode = file_inode(filp);
+	struct user_namespace *mnt_userns = file_mnt_user_ns(filp);
 	int ret;
 
-	if (!inode_owner_or_capable(&init_user_ns, inode))
+	if (!inode_owner_or_capable(mnt_userns, inode))
 		return -EACCES;
 
 	ret = mnt_want_write_file(filp);
@@ -2102,9 +2112,10 @@
 static int f2fs_ioc_start_volatile_write(struct file *filp)
 {
 	struct inode *inode = file_inode(filp);
+	struct user_namespace *mnt_userns = file_mnt_user_ns(filp);
 	int ret;
 
-	if (!inode_owner_or_capable(&init_user_ns, inode))
+	if (!inode_owner_or_capable(mnt_userns, inode))
 		return -EACCES;
 
 	if (!S_ISREG(inode->i_mode))
@@ -2137,9 +2148,10 @@
 static int f2fs_ioc_release_volatile_write(struct file *filp)
 {
 	struct inode *inode = file_inode(filp);
+	struct user_namespace *mnt_userns = file_mnt_user_ns(filp);
 	int ret;
 
-	if (!inode_owner_or_capable(&init_user_ns, inode))
+	if (!inode_owner_or_capable(mnt_userns, inode))
 		return -EACCES;
 
 	ret = mnt_want_write_file(filp);
@@ -2166,9 +2178,10 @@
 static int f2fs_ioc_abort_volatile_write(struct file *filp)
 {
 	struct inode *inode = file_inode(filp);
+	struct user_namespace *mnt_userns = file_mnt_user_ns(filp);
 	int ret;
 
-	if (!inode_owner_or_capable(&init_user_ns, inode))
+	if (!inode_owner_or_capable(mnt_userns, inode))
 		return -EACCES;
 
 	ret = mnt_want_write_file(filp);
@@ -2213,7 +2226,8 @@
 		if (ret) {
 			if (ret == -EROFS) {
 				ret = 0;
-				f2fs_stop_checkpoint(sbi, false);
+				f2fs_stop_checkpoint(sbi, false,
+						STOP_CP_REASON_SHUTDOWN);
 				set_sbi_flag(sbi, SBI_IS_SHUTDOWN);
 				trace_f2fs_shutdown(sbi, in, ret);
 			}
@@ -2226,7 +2240,7 @@
 		ret = freeze_bdev(sb->s_bdev);
 		if (ret)
 			goto out;
-		f2fs_stop_checkpoint(sbi, false);
+		f2fs_stop_checkpoint(sbi, false, STOP_CP_REASON_SHUTDOWN);
 		set_sbi_flag(sbi, SBI_IS_SHUTDOWN);
 		thaw_bdev(sb->s_bdev);
 		break;
@@ -2235,16 +2249,16 @@
 		ret = f2fs_sync_fs(sb, 1);
 		if (ret)
 			goto out;
-		f2fs_stop_checkpoint(sbi, false);
+		f2fs_stop_checkpoint(sbi, false, STOP_CP_REASON_SHUTDOWN);
 		set_sbi_flag(sbi, SBI_IS_SHUTDOWN);
 		break;
 	case F2FS_GOING_DOWN_NOSYNC:
-		f2fs_stop_checkpoint(sbi, false);
+		f2fs_stop_checkpoint(sbi, false, STOP_CP_REASON_SHUTDOWN);
 		set_sbi_flag(sbi, SBI_IS_SHUTDOWN);
 		break;
 	case F2FS_GOING_DOWN_METAFLUSH:
 		f2fs_sync_meta_pages(sbi, META, LONG_MAX, FS_META_IO);
-		f2fs_stop_checkpoint(sbi, false);
+		f2fs_stop_checkpoint(sbi, false, STOP_CP_REASON_SHUTDOWN);
 		set_sbi_flag(sbi, SBI_IS_SHUTDOWN);
 		break;
 	case F2FS_GOING_DOWN_NEED_FSCK:
@@ -2353,7 +2367,7 @@
 	if (err)
 		return err;
 
-	down_write(&sbi->sb_lock);
+	f2fs_down_write(&sbi->sb_lock);
 
 	if (uuid_is_nonzero(sbi->raw_super->encrypt_pw_salt))
 		goto got_it;
@@ -2372,7 +2386,7 @@
 									16))
 		err = -EFAULT;
 out_err:
-	up_write(&sbi->sb_lock);
+	f2fs_up_write(&sbi->sb_lock);
 	mnt_drop_write_file(filp);
 	return err;
 }
@@ -2449,12 +2463,12 @@
 		return ret;
 
 	if (!sync) {
-		if (!down_write_trylock(&sbi->gc_lock)) {
+		if (!f2fs_down_write_trylock(&sbi->gc_lock)) {
 			ret = -EBUSY;
 			goto out;
 		}
 	} else {
-		down_write(&sbi->gc_lock);
+		f2fs_down_write(&sbi->gc_lock);
 	}
 
 	ret = f2fs_gc(sbi, sync, true, false, NULL_SEGNO);
@@ -2485,12 +2499,12 @@
 
 do_more:
 	if (!range->sync) {
-		if (!down_write_trylock(&sbi->gc_lock)) {
+		if (!f2fs_down_write_trylock(&sbi->gc_lock)) {
 			ret = -EBUSY;
 			goto out;
 		}
 	} else {
-		down_write(&sbi->gc_lock);
+		f2fs_down_write(&sbi->gc_lock);
 	}
 
 	ret = f2fs_gc(sbi, range->sync, true, false,
@@ -2561,10 +2575,6 @@
 	bool fragmented = false;
 	int err;
 
-	/* if in-place-update policy is enabled, don't waste time here */
-	if (f2fs_should_update_inplace(inode, NULL))
-		return -EINVAL;
-
 	pg_start = range->start >> PAGE_SHIFT;
 	pg_end = (range->start + range->len) >> PAGE_SHIFT;
 
@@ -2572,6 +2582,13 @@
 
 	inode_lock(inode);
 
+	/* if in-place-update policy is enabled, don't waste time here */
+	set_inode_flag(inode, FI_OPU_WRITE);
+	if (f2fs_should_update_inplace(inode, NULL)) {
+		err = -EINVAL;
+		goto out;
+	}
+
 	/* writeback all dirty pages in the range */
 	err = filemap_write_and_wait_range(inode->i_mapping, range->start,
 						range->start + range->len - 1);
@@ -2653,7 +2670,7 @@
 			goto check;
 		}
 
-		set_inode_flag(inode, FI_DO_DEFRAG);
+		set_inode_flag(inode, FI_SKIP_WRITES);
 
 		idx = map.m_lblk;
 		while (idx < map.m_lblk + map.m_len && cnt < blk_per_seg) {
@@ -2679,15 +2696,16 @@
 		if (map.m_lblk < pg_end && cnt < blk_per_seg)
 			goto do_map;
 
-		clear_inode_flag(inode, FI_DO_DEFRAG);
+		clear_inode_flag(inode, FI_SKIP_WRITES);
 
 		err = filemap_fdatawrite(inode->i_mapping);
 		if (err)
 			goto out;
 	}
 clear_out:
-	clear_inode_flag(inode, FI_DO_DEFRAG);
+	clear_inode_flag(inode, FI_SKIP_WRITES);
 out:
+	clear_inode_flag(inode, FI_OPU_WRITE);
 	inode_unlock(inode);
 	if (!err)
 		range->len = (u64)total << PAGE_SHIFT;
@@ -2823,10 +2841,10 @@
 
 	f2fs_balance_fs(sbi, true);
 
-	down_write(&F2FS_I(src)->i_gc_rwsem[WRITE]);
+	f2fs_down_write(&F2FS_I(src)->i_gc_rwsem[WRITE]);
 	if (src != dst) {
 		ret = -EBUSY;
-		if (!down_write_trylock(&F2FS_I(dst)->i_gc_rwsem[WRITE]))
+		if (!f2fs_down_write_trylock(&F2FS_I(dst)->i_gc_rwsem[WRITE]))
 			goto out_src;
 	}
 
@@ -2844,9 +2862,9 @@
 	f2fs_unlock_op(sbi);
 
 	if (src != dst)
-		up_write(&F2FS_I(dst)->i_gc_rwsem[WRITE]);
+		f2fs_up_write(&F2FS_I(dst)->i_gc_rwsem[WRITE]);
 out_src:
-	up_write(&F2FS_I(src)->i_gc_rwsem[WRITE]);
+	f2fs_up_write(&F2FS_I(src)->i_gc_rwsem[WRITE]);
 out_unlock:
 	if (src != dst)
 		inode_unlock(dst);
@@ -2941,7 +2959,7 @@
 	end_segno = min(start_segno + range.segments, dev_end_segno);
 
 	while (start_segno < end_segno) {
-		if (!down_write_trylock(&sbi->gc_lock)) {
+		if (!f2fs_down_write_trylock(&sbi->gc_lock)) {
 			ret = -EBUSY;
 			goto out;
 		}
@@ -2994,7 +3012,7 @@
 {
 	struct f2fs_inode_info *fi = F2FS_I(inode);
 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
-	struct page *ipage;
+	struct f2fs_inode *ri = NULL;
 	kprojid_t kprojid;
 	int err;
 
@@ -3018,17 +3036,8 @@
 	if (IS_NOQUOTA(inode))
 		return err;
 
-	ipage = f2fs_get_node_page(sbi, inode->i_ino);
-	if (IS_ERR(ipage))
-		return PTR_ERR(ipage);
-
-	if (!F2FS_FITS_IN_INODE(F2FS_INODE(ipage), fi->i_extra_isize,
-								i_projid)) {
-		err = -EOVERFLOW;
-		f2fs_put_page(ipage, 1);
-		return err;
-	}
-	f2fs_put_page(ipage, 1);
+	if (!F2FS_FITS_IN_INODE(ri, fi->i_extra_isize, i_projid))
+		return -EOVERFLOW;
 
 	err = f2fs_dquot_initialize(inode);
 	if (err)
@@ -3219,9 +3228,9 @@
 	while (map.m_lblk < end) {
 		map.m_len = end - map.m_lblk;
 
-		down_write(&fi->i_gc_rwsem[WRITE]);
+		f2fs_down_write(&fi->i_gc_rwsem[WRITE]);
 		err = f2fs_map_blocks(inode, &map, 0, F2FS_GET_BLOCK_PRECACHE);
-		up_write(&fi->i_gc_rwsem[WRITE]);
+		f2fs_up_write(&fi->i_gc_rwsem[WRITE]);
 		if (err)
 			return err;
 
@@ -3298,11 +3307,11 @@
 	if (!vbuf)
 		return -ENOMEM;
 
-	down_read(&sbi->sb_lock);
+	f2fs_down_read(&sbi->sb_lock);
 	count = utf16s_to_utf8s(sbi->raw_super->volume_name,
 			ARRAY_SIZE(sbi->raw_super->volume_name),
 			UTF16_LITTLE_ENDIAN, vbuf, MAX_VOLUME_NAME);
-	up_read(&sbi->sb_lock);
+	f2fs_up_read(&sbi->sb_lock);
 
 	if (copy_to_user((char __user *)arg, vbuf,
 				min(FSLABEL_MAX, count)))
@@ -3330,7 +3339,7 @@
 	if (err)
 		goto out;
 
-	down_write(&sbi->sb_lock);
+	f2fs_down_write(&sbi->sb_lock);
 
 	memset(sbi->raw_super->volume_name, 0,
 			sizeof(sbi->raw_super->volume_name));
@@ -3340,7 +3349,7 @@
 
 	err = f2fs_commit_super(sbi, false);
 
-	up_write(&sbi->sb_lock);
+	f2fs_up_write(&sbi->sb_lock);
 
 	mnt_drop_write_file(filp);
 out:
@@ -3466,7 +3475,7 @@
 	if (!atomic_read(&F2FS_I(inode)->i_compr_blocks))
 		goto out;
 
-	down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+	f2fs_down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 	filemap_invalidate_lock(inode->i_mapping);
 
 	last_idx = DIV_ROUND_UP(i_size_read(inode), PAGE_SIZE);
@@ -3503,7 +3512,7 @@
 	}
 
 	filemap_invalidate_unlock(inode->i_mapping);
-	up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+	f2fs_up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 out:
 	inode_unlock(inode);
 
@@ -3619,7 +3628,7 @@
 		goto unlock_inode;
 	}
 
-	down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+	f2fs_down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 	filemap_invalidate_lock(inode->i_mapping);
 
 	last_idx = DIV_ROUND_UP(i_size_read(inode), PAGE_SIZE);
@@ -3656,7 +3665,7 @@
 	}
 
 	filemap_invalidate_unlock(inode->i_mapping);
-	up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+	f2fs_up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 
 	if (ret >= 0) {
 		clear_inode_flag(inode, FI_COMPRESS_RELEASED);
@@ -3774,7 +3783,7 @@
 	if (ret)
 		goto err;
 
-	down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+	f2fs_down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 	filemap_invalidate_lock(mapping);
 
 	ret = filemap_write_and_wait_range(mapping, range.start,
@@ -3863,7 +3872,7 @@
 				prev_block, len, range.flags);
 out:
 	filemap_invalidate_unlock(mapping);
-	up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+	f2fs_up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 err:
 	inode_unlock(inode);
 	file_end_write(filp);
@@ -4228,27 +4237,431 @@
 	return __f2fs_ioctl(filp, cmd, arg);
 }
 
-static ssize_t f2fs_file_read_iter(struct kiocb *iocb, struct iov_iter *iter)
+/*
+ * Return %true if the given read or write request should use direct I/O, or
+ * %false if it should use buffered I/O.
+ */
+static bool f2fs_should_use_dio(struct inode *inode, struct kiocb *iocb,
+				struct iov_iter *iter)
+{
+	unsigned int align;
+
+	if (!(iocb->ki_flags & IOCB_DIRECT))
+		return false;
+
+	if (f2fs_force_buffered_io(inode, iocb, iter))
+		return false;
+
+	/*
+	 * Direct I/O not aligned to the disk's logical_block_size will be
+	 * attempted, but will fail with -EINVAL.
+	 *
+	 * f2fs additionally requires that direct I/O be aligned to the
+	 * filesystem block size, which is often a stricter requirement.
+	 * However, f2fs traditionally falls back to buffered I/O on requests
+	 * that are logical_block_size-aligned but not fs-block aligned.
+	 *
+	 * The below logic implements this behavior.
+	 */
+	align = iocb->ki_pos | iov_iter_alignment(iter);
+	if (!IS_ALIGNED(align, i_blocksize(inode)) &&
+	    IS_ALIGNED(align, bdev_logical_block_size(inode->i_sb->s_bdev)))
+		return false;
+
+	return true;
+}
+
+static int f2fs_dio_read_end_io(struct kiocb *iocb, ssize_t size, int error,
+				unsigned int flags)
+{
+	struct f2fs_sb_info *sbi = F2FS_I_SB(file_inode(iocb->ki_filp));
+
+	dec_page_count(sbi, F2FS_DIO_READ);
+	if (error)
+		return error;
+	f2fs_update_iostat(sbi, APP_DIRECT_READ_IO, size);
+	return 0;
+}
+
+static const struct iomap_dio_ops f2fs_iomap_dio_read_ops = {
+	.end_io = f2fs_dio_read_end_io,
+};
+
+static ssize_t f2fs_dio_read_iter(struct kiocb *iocb, struct iov_iter *to)
 {
 	struct file *file = iocb->ki_filp;
 	struct inode *inode = file_inode(file);
-	int ret;
+	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
+	struct f2fs_inode_info *fi = F2FS_I(inode);
+	const loff_t pos = iocb->ki_pos;
+	const size_t count = iov_iter_count(to);
+	struct iomap_dio *dio;
+	ssize_t ret;
+
+	if (count == 0)
+		return 0; /* skip atime update */
+
+	trace_f2fs_direct_IO_enter(inode, iocb, count, READ);
+	if (trace_android_fs_dataread_start_enabled()) {
+		char *path, pathbuf[MAX_TRACE_PATHBUF_LEN];
+
+		path = android_fstrace_get_pathname(pathbuf,
+						    MAX_TRACE_PATHBUF_LEN,
+						    inode);
+		trace_android_fs_dataread_start(inode, pos,
+						count, current->pid, path,
+						current->comm);
+	}
+
+	if (iocb->ki_flags & IOCB_NOWAIT) {
+		if (!f2fs_down_read_trylock(&fi->i_gc_rwsem[READ])) {
+			ret = -EAGAIN;
+			goto out;
+		}
+	} else {
+		f2fs_down_read(&fi->i_gc_rwsem[READ]);
+	}
+
+	/*
+	 * We have to use __iomap_dio_rw() and iomap_dio_complete() instead of
+	 * the higher-level function iomap_dio_rw() in order to ensure that the
+	 * F2FS_DIO_READ counter will be decremented correctly in all cases.
+	 */
+	inc_page_count(sbi, F2FS_DIO_READ);
+	dio = __iomap_dio_rw(iocb, to, &f2fs_iomap_ops,
+			     &f2fs_iomap_dio_read_ops, 0, 0);
+	if (IS_ERR_OR_NULL(dio)) {
+		ret = PTR_ERR_OR_ZERO(dio);
+		if (ret != -EIOCBQUEUED)
+			dec_page_count(sbi, F2FS_DIO_READ);
+	} else {
+		ret = iomap_dio_complete(dio);
+	}
+
+	f2fs_up_read(&fi->i_gc_rwsem[READ]);
+
+	file_accessed(file);
+out:
+	if (trace_android_fs_dataread_start_enabled())
+		trace_android_fs_dataread_end(inode, pos, count);
+	trace_f2fs_direct_IO_exit(inode, pos, count, READ, ret);
+	return ret;
+}
+
+static ssize_t f2fs_file_read_iter(struct kiocb *iocb, struct iov_iter *to)
+{
+	struct inode *inode = file_inode(iocb->ki_filp);
+	const loff_t pos = iocb->ki_pos;
+	ssize_t ret;
 
 	if (!f2fs_is_compress_backend_ready(inode))
 		return -EOPNOTSUPP;
 
-	ret = generic_file_read_iter(iocb, iter);
+	if (trace_f2fs_dataread_start_enabled()) {
+		char *p = f2fs_kmalloc(F2FS_I_SB(inode), PATH_MAX, GFP_KERNEL);
+		char *path;
 
-	if (ret > 0)
-		f2fs_update_iostat(F2FS_I_SB(inode), APP_READ_IO, ret);
+		if (!p)
+			goto skip_read_trace;
 
+		path = dentry_path_raw(file_dentry(iocb->ki_filp), p, PATH_MAX);
+		if (IS_ERR(path)) {
+			kfree(p);
+			goto skip_read_trace;
+		}
+
+		trace_f2fs_dataread_start(inode, pos, iov_iter_count(to),
+					current->pid, path, current->comm);
+		kfree(p);
+	}
+skip_read_trace:
+	if (f2fs_should_use_dio(inode, iocb, to)) {
+		ret = f2fs_dio_read_iter(iocb, to);
+	} else {
+		ret = filemap_read(iocb, to, 0);
+		if (ret > 0)
+			f2fs_update_iostat(F2FS_I_SB(inode), APP_BUFFERED_READ_IO, ret);
+	}
+	if (trace_f2fs_dataread_end_enabled())
+		trace_f2fs_dataread_end(inode, pos, ret);
+	return ret;
+}
+
+static ssize_t f2fs_write_checks(struct kiocb *iocb, struct iov_iter *from)
+{
+	struct file *file = iocb->ki_filp;
+	struct inode *inode = file_inode(file);
+	ssize_t count;
+	int err;
+
+	if (IS_IMMUTABLE(inode))
+		return -EPERM;
+
+	if (is_inode_flag_set(inode, FI_COMPRESS_RELEASED))
+		return -EPERM;
+
+	count = generic_write_checks(iocb, from);
+	if (count <= 0)
+		return count;
+
+	err = file_modified(file);
+	if (err)
+		return err;
+	return count;
+}
+
+/*
+ * Preallocate blocks for a write request, if it is possible and helpful to do
+ * so.  Returns a positive number if blocks may have been preallocated, 0 if no
+ * blocks were preallocated, or a negative errno value if something went
+ * seriously wrong.  Also sets FI_PREALLOCATED_ALL on the inode if *all* the
+ * requested blocks (not just some of them) have been allocated.
+ */
+static int f2fs_preallocate_blocks(struct kiocb *iocb, struct iov_iter *iter,
+				   bool dio)
+{
+	struct inode *inode = file_inode(iocb->ki_filp);
+	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
+	const loff_t pos = iocb->ki_pos;
+	const size_t count = iov_iter_count(iter);
+	struct f2fs_map_blocks map = {};
+	int flag;
+	int ret;
+
+	/* If it will be an out-of-place direct write, don't bother. */
+	if (dio && f2fs_lfs_mode(sbi))
+		return 0;
+	/*
+	 * Don't preallocate holes aligned to DIO_SKIP_HOLES which turns into
+	 * buffered IO, if DIO meets any holes.
+	 */
+	if (dio && i_size_read(inode) &&
+		(F2FS_BYTES_TO_BLK(pos) < F2FS_BLK_ALIGN(i_size_read(inode))))
+		return 0;
+
+	/* No-wait I/O can't allocate blocks. */
+	if (iocb->ki_flags & IOCB_NOWAIT)
+		return 0;
+
+	/* If it will be a short write, don't bother. */
+	if (fault_in_iov_iter_readable(iter, count))
+		return 0;
+
+	if (f2fs_has_inline_data(inode)) {
+		/* If the data will fit inline, don't bother. */
+		if (pos + count <= MAX_INLINE_DATA(inode))
+			return 0;
+		ret = f2fs_convert_inline_inode(inode);
+		if (ret)
+			return ret;
+	}
+
+	/* Do not preallocate blocks that will be written partially in 4KB. */
+	map.m_lblk = F2FS_BLK_ALIGN(pos);
+	map.m_len = F2FS_BYTES_TO_BLK(pos + count);
+	if (map.m_len > map.m_lblk)
+		map.m_len -= map.m_lblk;
+	else
+		map.m_len = 0;
+	map.m_may_create = true;
+	if (dio) {
+		map.m_seg_type = f2fs_rw_hint_to_seg_type(inode->i_write_hint);
+		flag = F2FS_GET_BLOCK_PRE_DIO;
+	} else {
+		map.m_seg_type = NO_CHECK_TYPE;
+		flag = F2FS_GET_BLOCK_PRE_AIO;
+	}
+
+	ret = f2fs_map_blocks(inode, &map, 1, flag);
+	/* -ENOSPC|-EDQUOT are fine to report the number of allocated blocks. */
+	if (ret < 0 && !((ret == -ENOSPC || ret == -EDQUOT) && map.m_len > 0))
+		return ret;
+	if (ret == 0)
+		set_inode_flag(inode, FI_PREALLOCATED_ALL);
+	return map.m_len;
+}
+
+static ssize_t f2fs_buffered_write_iter(struct kiocb *iocb,
+					struct iov_iter *from)
+{
+	struct file *file = iocb->ki_filp;
+	struct inode *inode = file_inode(file);
+	ssize_t ret;
+
+	if (iocb->ki_flags & IOCB_NOWAIT)
+		return -EOPNOTSUPP;
+
+	current->backing_dev_info = inode_to_bdi(inode);
+	ret = generic_perform_write(file, from, iocb->ki_pos);
+	current->backing_dev_info = NULL;
+
+	if (ret > 0) {
+		iocb->ki_pos += ret;
+		f2fs_update_iostat(F2FS_I_SB(inode), APP_BUFFERED_IO, ret);
+	}
+	return ret;
+}
+
+static int f2fs_dio_write_end_io(struct kiocb *iocb, ssize_t size, int error,
+				 unsigned int flags)
+{
+	struct f2fs_sb_info *sbi = F2FS_I_SB(file_inode(iocb->ki_filp));
+
+	dec_page_count(sbi, F2FS_DIO_WRITE);
+	if (error)
+		return error;
+	f2fs_update_iostat(sbi, APP_DIRECT_IO, size);
+	return 0;
+}
+
+static const struct iomap_dio_ops f2fs_iomap_dio_write_ops = {
+	.end_io = f2fs_dio_write_end_io,
+};
+
+static ssize_t f2fs_dio_write_iter(struct kiocb *iocb, struct iov_iter *from,
+				   bool *may_need_sync)
+{
+	struct file *file = iocb->ki_filp;
+	struct inode *inode = file_inode(file);
+	struct f2fs_inode_info *fi = F2FS_I(inode);
+	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
+	const bool do_opu = f2fs_lfs_mode(sbi);
+	const int whint_mode = F2FS_OPTION(sbi).whint_mode;
+	const loff_t pos = iocb->ki_pos;
+	const ssize_t count = iov_iter_count(from);
+	const enum rw_hint hint = iocb->ki_hint;
+	unsigned int dio_flags;
+	struct iomap_dio *dio;
+	ssize_t ret;
+
+	trace_f2fs_direct_IO_enter(inode, iocb, count, WRITE);
+	if (trace_android_fs_datawrite_start_enabled()) {
+		char *path, pathbuf[MAX_TRACE_PATHBUF_LEN];
+
+		path = android_fstrace_get_pathname(pathbuf,
+						    MAX_TRACE_PATHBUF_LEN,
+						    inode);
+		trace_android_fs_datawrite_start(inode, pos, count,
+						 current->pid, path,
+						 current->comm);
+	}
+
+	if (iocb->ki_flags & IOCB_NOWAIT) {
+		/* f2fs_convert_inline_inode() and block allocation can block */
+		if (f2fs_has_inline_data(inode) ||
+		    !f2fs_overwrite_io(inode, pos, count)) {
+			ret = -EAGAIN;
+			goto out;
+		}
+
+		if (!f2fs_down_read_trylock(&fi->i_gc_rwsem[WRITE])) {
+			ret = -EAGAIN;
+			goto out;
+		}
+		if (do_opu && !f2fs_down_read_trylock(&fi->i_gc_rwsem[READ])) {
+			f2fs_up_read(&fi->i_gc_rwsem[WRITE]);
+			ret = -EAGAIN;
+			goto out;
+		}
+	} else {
+		ret = f2fs_convert_inline_inode(inode);
+		if (ret)
+			goto out;
+
+		f2fs_down_read(&fi->i_gc_rwsem[WRITE]);
+		if (do_opu)
+			f2fs_down_read(&fi->i_gc_rwsem[READ]);
+	}
+	if (whint_mode == WHINT_MODE_OFF)
+		iocb->ki_hint = WRITE_LIFE_NOT_SET;
+
+	/*
+	 * We have to use __iomap_dio_rw() and iomap_dio_complete() instead of
+	 * the higher-level function iomap_dio_rw() in order to ensure that the
+	 * F2FS_DIO_WRITE counter will be decremented correctly in all cases.
+	 */
+	inc_page_count(sbi, F2FS_DIO_WRITE);
+	dio_flags = 0;
+	if (pos + count > inode->i_size)
+		dio_flags |= IOMAP_DIO_FORCE_WAIT;
+	dio = __iomap_dio_rw(iocb, from, &f2fs_iomap_ops,
+			     &f2fs_iomap_dio_write_ops, dio_flags, 0);
+	if (IS_ERR_OR_NULL(dio)) {
+		ret = PTR_ERR_OR_ZERO(dio);
+		if (ret == -ENOTBLK)
+			ret = 0;
+		if (ret != -EIOCBQUEUED)
+			dec_page_count(sbi, F2FS_DIO_WRITE);
+	} else {
+		ret = iomap_dio_complete(dio);
+	}
+
+	if (whint_mode == WHINT_MODE_OFF)
+		iocb->ki_hint = hint;
+	if (do_opu)
+		f2fs_up_read(&fi->i_gc_rwsem[READ]);
+	f2fs_up_read(&fi->i_gc_rwsem[WRITE]);
+
+	if (ret < 0)
+		goto out;
+	if (pos + ret > inode->i_size)
+		f2fs_i_size_write(inode, pos + ret);
+	if (!do_opu)
+		set_inode_flag(inode, FI_UPDATE_WRITE);
+
+	if (iov_iter_count(from)) {
+		ssize_t ret2;
+		loff_t bufio_start_pos = iocb->ki_pos;
+
+		/*
+		 * The direct write was partial, so we need to fall back to a
+		 * buffered write for the remainder.
+		 */
+
+		ret2 = f2fs_buffered_write_iter(iocb, from);
+		if (iov_iter_count(from))
+			f2fs_write_failed(inode, iocb->ki_pos);
+		if (ret2 < 0)
+			goto out;
+
+		/*
+		 * Ensure that the pagecache pages are written to disk and
+		 * invalidated to preserve the expected O_DIRECT semantics.
+		 */
+		if (ret2 > 0) {
+			loff_t bufio_end_pos = bufio_start_pos + ret2 - 1;
+
+			ret += ret2;
+
+			ret2 = filemap_write_and_wait_range(file->f_mapping,
+							    bufio_start_pos,
+							    bufio_end_pos);
+			if (ret2 < 0)
+				goto out;
+			invalidate_mapping_pages(file->f_mapping,
+						 bufio_start_pos >> PAGE_SHIFT,
+						 bufio_end_pos >> PAGE_SHIFT);
+		}
+	} else {
+		/* iomap_dio_rw() already handled the generic_write_sync(). */
+		*may_need_sync = false;
+	}
+out:
+	if (trace_android_fs_datawrite_start_enabled())
+		trace_android_fs_datawrite_end(inode, pos, count);
+	trace_f2fs_direct_IO_exit(inode, pos, count, WRITE, ret);
 	return ret;
 }
 
 static ssize_t f2fs_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
 {
-	struct file *file = iocb->ki_filp;
-	struct inode *inode = file_inode(file);
+	struct inode *inode = file_inode(iocb->ki_filp);
+	const loff_t orig_pos = iocb->ki_pos;
+	const size_t orig_count = iov_iter_count(from);
+	loff_t target_size;
+	bool dio;
+	bool may_need_sync = true;
+	int preallocated;
 	ssize_t ret;
 
 	if (unlikely(f2fs_cp_error(F2FS_I_SB(inode)))) {
@@ -4270,91 +4683,64 @@
 		inode_lock(inode);
 	}
 
-	if (unlikely(IS_IMMUTABLE(inode))) {
-		ret = -EPERM;
-		goto unlock;
-	}
+	ret = f2fs_write_checks(iocb, from);
+	if (ret <= 0)
+		goto out_unlock;
 
-	if (is_inode_flag_set(inode, FI_COMPRESS_RELEASED)) {
-		ret = -EPERM;
-		goto unlock;
-	}
+	/* Determine whether we will do a direct write or a buffered write. */
+	dio = f2fs_should_use_dio(inode, iocb, from);
 
-	ret = generic_write_checks(iocb, from);
-	if (ret > 0) {
-		bool preallocated = false;
-		size_t target_size = 0;
-		int err;
+	/* Possibly preallocate the blocks for the write. */
+	target_size = iocb->ki_pos + iov_iter_count(from);
+	preallocated = f2fs_preallocate_blocks(iocb, from, dio);
+	if (preallocated < 0) {
+		ret = preallocated;
+	} else {
+		if (trace_f2fs_datawrite_start_enabled()) {
+			char *p = f2fs_kmalloc(F2FS_I_SB(inode),
+						PATH_MAX, GFP_KERNEL);
+			char *path;
 
-		if (fault_in_iov_iter_readable(from, iov_iter_count(from)))
-			set_inode_flag(inode, FI_NO_PREALLOC);
-
-		if ((iocb->ki_flags & IOCB_NOWAIT)) {
-			if (!f2fs_overwrite_io(inode, iocb->ki_pos,
-						iov_iter_count(from)) ||
-				f2fs_has_inline_data(inode) ||
-				f2fs_force_buffered_io(inode, iocb, from)) {
-				clear_inode_flag(inode, FI_NO_PREALLOC);
-				inode_unlock(inode);
-				ret = -EAGAIN;
-				goto out;
+			if (!p)
+				goto skip_write_trace;
+			path = dentry_path_raw(file_dentry(iocb->ki_filp),
+								p, PATH_MAX);
+			if (IS_ERR(path)) {
+				kfree(p);
+				goto skip_write_trace;
 			}
-			goto write;
+			trace_f2fs_datawrite_start(inode, orig_pos, orig_count,
+					current->pid, path, current->comm);
+			kfree(p);
 		}
+skip_write_trace:
+		/* Do the actual write. */
+		ret = dio ?
+			f2fs_dio_write_iter(iocb, from, &may_need_sync):
+			f2fs_buffered_write_iter(iocb, from);
 
-		if (is_inode_flag_set(inode, FI_NO_PREALLOC))
-			goto write;
-
-		if (iocb->ki_flags & IOCB_DIRECT) {
-			/*
-			 * Convert inline data for Direct I/O before entering
-			 * f2fs_direct_IO().
-			 */
-			err = f2fs_convert_inline_inode(inode);
-			if (err)
-				goto out_err;
-			/*
-			 * If force_buffere_io() is true, we have to allocate
-			 * blocks all the time, since f2fs_direct_IO will fall
-			 * back to buffered IO.
-			 */
-			if (!f2fs_force_buffered_io(inode, iocb, from) &&
-					f2fs_lfs_mode(F2FS_I_SB(inode)))
-				goto write;
-		}
-		preallocated = true;
-		target_size = iocb->ki_pos + iov_iter_count(from);
-
-		err = f2fs_preallocate_blocks(iocb, from);
-		if (err) {
-out_err:
-			clear_inode_flag(inode, FI_NO_PREALLOC);
-			inode_unlock(inode);
-			ret = err;
-			goto out;
-		}
-write:
-		ret = __generic_file_write_iter(iocb, from);
-		clear_inode_flag(inode, FI_NO_PREALLOC);
-
-		/* if we couldn't write data, we should deallocate blocks. */
-		if (preallocated && i_size_read(inode) < target_size) {
-			down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
-			filemap_invalidate_lock(inode->i_mapping);
-			f2fs_truncate(inode);
-			filemap_invalidate_unlock(inode->i_mapping);
-			up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
-		}
-
-		if (ret > 0)
-			f2fs_update_iostat(F2FS_I_SB(inode), APP_WRITE_IO, ret);
+		if (trace_f2fs_datawrite_end_enabled())
+			trace_f2fs_datawrite_end(inode, orig_pos, ret);
 	}
-unlock:
+
+	/* Don't leave any preallocated blocks around past i_size. */
+	if (preallocated && i_size_read(inode) < target_size) {
+		f2fs_down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+		filemap_invalidate_lock(inode->i_mapping);
+		if (!f2fs_truncate(inode))
+			file_dont_truncate(inode);
+		filemap_invalidate_unlock(inode->i_mapping);
+		f2fs_up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+	} else {
+		file_dont_truncate(inode);
+	}
+
+	clear_inode_flag(inode, FI_PREALLOCATED_ALL);
+out_unlock:
 	inode_unlock(inode);
 out:
-	trace_f2fs_file_write_iter(inode, iocb->ki_pos,
-					iov_iter_count(from), ret);
-	if (ret > 0)
+	trace_f2fs_file_write_iter(inode, orig_pos, orig_count, ret);
+	if (ret > 0 && may_need_sync)
 		ret = generic_write_sync(iocb, ret);
 	return ret;
 }
@@ -4362,12 +4748,12 @@
 static int f2fs_file_fadvise(struct file *filp, loff_t offset, loff_t len,
 		int advice)
 {
-	struct inode *inode;
 	struct address_space *mapping;
 	struct backing_dev_info *bdi;
+	struct inode *inode = file_inode(filp);
+	int err;
 
 	if (advice == POSIX_FADV_SEQUENTIAL) {
-		inode = file_inode(filp);
 		if (S_ISFIFO(inode->i_mode))
 			return -ESPIPE;
 
@@ -4384,7 +4770,13 @@
 		return 0;
 	}
 
-	return generic_fadvise(filp, offset, len, advice);
+	err = generic_fadvise(filp, offset, len, advice);
+	if (!err && advice == POSIX_FADV_DONTNEED &&
+		test_opt(F2FS_I_SB(inode), COMPRESS_CACHE) &&
+		f2fs_compressed_file(inode))
+		f2fs_invalidate_compress_pages(F2FS_I_SB(inode), inode->i_ino);
+
+	return err;
 }
 
 #ifdef CONFIG_COMPAT
diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
index 7010440c..d4a3154 100644
--- a/fs/f2fs/gc.c
+++ b/fs/f2fs/gc.c
@@ -14,6 +14,7 @@
 #include <linux/delay.h>
 #include <linux/freezer.h>
 #include <linux/sched/signal.h>
+#include <linux/random.h>
 
 #include "f2fs.h"
 #include "node.h"
@@ -69,7 +70,8 @@
 
 		if (time_to_inject(sbi, FAULT_CHECKPOINT)) {
 			f2fs_show_injection_info(sbi, FAULT_CHECKPOINT);
-			f2fs_stop_checkpoint(sbi, false);
+			f2fs_stop_checkpoint(sbi, false,
+					STOP_CP_REASON_FAULT_INJECT);
 		}
 
 		if (!sb_start_write_trylock(sbi->sb)) {
@@ -90,23 +92,24 @@
 		 * invalidated soon after by user update or deletion.
 		 * So, I'd like to wait some time to collect dirty segments.
 		 */
-		if (sbi->gc_mode == GC_URGENT_HIGH) {
+		if (sbi->gc_mode == GC_URGENT_HIGH ||
+				sbi->gc_mode == GC_URGENT_MID) {
 			wait_ms = gc_th->urgent_sleep_time;
-			down_write(&sbi->gc_lock);
+			f2fs_down_write(&sbi->gc_lock);
 			goto do_gc;
 		}
 
 		if (foreground) {
-			down_write(&sbi->gc_lock);
+			f2fs_down_write(&sbi->gc_lock);
 			goto do_gc;
-		} else if (!down_write_trylock(&sbi->gc_lock)) {
+		} else if (!f2fs_down_write_trylock(&sbi->gc_lock)) {
 			stat_other_skip_bggc_count(sbi);
 			goto next;
 		}
 
 		if (!is_idle(sbi, GC_TIME)) {
 			increase_sleep_time(gc_th, &wait_ms);
-			up_write(&sbi->gc_lock);
+			f2fs_up_write(&sbi->gc_lock);
 			stat_io_skip_bggc_count(sbi);
 			goto next;
 		}
@@ -138,6 +141,15 @@
 		/* balancing f2fs's metadata periodically */
 		f2fs_balance_fs_bg(sbi, true);
 next:
+		if (sbi->gc_mode == GC_URGENT_HIGH) {
+			spin_lock(&sbi->gc_urgent_high_lock);
+			if (sbi->gc_urgent_high_remaining) {
+				sbi->gc_urgent_high_remaining--;
+				if (!sbi->gc_urgent_high_remaining)
+					sbi->gc_mode = GC_NORMAL;
+			}
+			spin_unlock(&sbi->gc_urgent_high_lock);
+		}
 		sb_end_write(sbi->sb);
 
 	} while (!kthread_should_stop());
@@ -257,7 +269,9 @@
 		p->max_search = sbi->max_victim_search;
 
 	/* let's select beginning hot/small space first in no_heap mode*/
-	if (test_opt(sbi, NOHEAP) &&
+	if (f2fs_need_rand_seg(sbi))
+		p->offset = prandom_u32() % (MAIN_SECS(sbi) * sbi->segs_per_sec);
+	else if (test_opt(sbi, NOHEAP) &&
 		(type == CURSEG_HOT_DATA || IS_NODESEG(type)))
 		p->offset = 0;
 	else
@@ -628,6 +642,54 @@
 	f2fs_bug_on(sbi, !list_empty(&am->victim_list));
 }
 
+static bool f2fs_pin_section(struct f2fs_sb_info *sbi, unsigned int segno)
+{
+	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
+	unsigned int secno = GET_SEC_FROM_SEG(sbi, segno);
+
+	if (!dirty_i->enable_pin_section)
+		return false;
+	if (!test_and_set_bit(secno, dirty_i->pinned_secmap))
+		dirty_i->pinned_secmap_cnt++;
+	return true;
+}
+
+static bool f2fs_pinned_section_exists(struct dirty_seglist_info *dirty_i)
+{
+	return dirty_i->pinned_secmap_cnt;
+}
+
+static bool f2fs_section_is_pinned(struct dirty_seglist_info *dirty_i,
+						unsigned int secno)
+{
+	return dirty_i->enable_pin_section &&
+		f2fs_pinned_section_exists(dirty_i) &&
+		test_bit(secno, dirty_i->pinned_secmap);
+}
+
+static void f2fs_unpin_all_sections(struct f2fs_sb_info *sbi, bool enable)
+{
+	unsigned int bitmap_size = f2fs_bitmap_size(MAIN_SECS(sbi));
+
+	if (f2fs_pinned_section_exists(DIRTY_I(sbi))) {
+		memset(DIRTY_I(sbi)->pinned_secmap, 0, bitmap_size);
+		DIRTY_I(sbi)->pinned_secmap_cnt = 0;
+	}
+	DIRTY_I(sbi)->enable_pin_section = enable;
+}
+
+static int f2fs_gc_pinned_control(struct inode *inode, int gc_type,
+							unsigned int segno)
+{
+	if (!f2fs_is_pinned_file(inode))
+		return 0;
+	if (gc_type != FG_GC)
+		return -EBUSY;
+	if (!f2fs_pin_section(F2FS_I_SB(inode), segno))
+		f2fs_pin_file_control(inode, true);
+	return -EAGAIN;
+}
+
 /*
  * This function is called from two paths.
  * One is garbage collection and the other is SSR segment selection.
@@ -769,6 +831,9 @@
 		if (gc_type == BG_GC && test_bit(secno, dirty_i->victim_secmap))
 			goto next;
 
+		if (gc_type == FG_GC && f2fs_section_is_pinned(dirty_i, secno))
+			goto next;
+
 		if (is_atgc) {
 			add_victim_entry(sbi, &p, segno);
 			goto next;
@@ -1198,11 +1263,9 @@
 		goto out;
 	}
 
-	if (f2fs_is_pinned_file(inode)) {
-		f2fs_pin_file_control(inode, true);
-		err = -EAGAIN;
+	err = f2fs_gc_pinned_control(inode, gc_type, segno);
+	if (err)
 		goto out;
-	}
 
 	set_new_dnode(&dn, inode, NULL, NULL, 0);
 	err = f2fs_get_dnode_of_data(&dn, bidx, LOOKUP_NODE);
@@ -1232,7 +1295,7 @@
 	fio.new_blkaddr = fio.old_blkaddr = dn.data_blkaddr;
 
 	if (lfs_mode)
-		down_write(&fio.sbi->io_order_lock);
+		f2fs_down_write(&fio.sbi->io_order_lock);
 
 	mpage = f2fs_grab_cache_page(META_MAPPING(fio.sbi),
 					fio.old_blkaddr, false);
@@ -1318,7 +1381,7 @@
 							true, true, true);
 up_out:
 	if (lfs_mode)
-		up_write(&fio.sbi->io_order_lock);
+		f2fs_up_write(&fio.sbi->io_order_lock);
 put_out:
 	f2fs_put_dnode(&dn);
 out:
@@ -1347,12 +1410,9 @@
 		err = -EAGAIN;
 		goto out;
 	}
-	if (f2fs_is_pinned_file(inode)) {
-		if (gc_type == FG_GC)
-			f2fs_pin_file_control(inode, true);
-		err = -EAGAIN;
+	err = f2fs_gc_pinned_control(inode, gc_type, segno);
+	if (err)
 		goto out;
-	}
 
 	if (gc_type == BG_GC) {
 		if (PageWriteback(page)) {
@@ -1473,12 +1533,20 @@
 		ofs_in_node = le16_to_cpu(entry->ofs_in_node);
 
 		if (phase == 3) {
+			int err;
+
 			inode = f2fs_iget(sb, dni.ino);
 			if (IS_ERR(inode) || is_bad_inode(inode) ||
 					special_file(inode->i_mode))
 				continue;
 
-			if (!down_write_trylock(
+			err = f2fs_gc_pinned_control(inode, gc_type, segno);
+			if (err == -EAGAIN) {
+				iput(inode);
+				return submitted;
+			}
+
+			if (!f2fs_down_write_trylock(
 				&F2FS_I(inode)->i_gc_rwsem[WRITE])) {
 				iput(inode);
 				sbi->skipped_gc_rwsem++;
@@ -1491,7 +1559,7 @@
 			if (f2fs_post_read_required(inode)) {
 				int err = ra_data_block(inode, start_bidx);
 
-				up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+				f2fs_up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 				if (err) {
 					iput(inode);
 					continue;
@@ -1502,7 +1570,7 @@
 
 			data_page = f2fs_get_read_data_page(inode,
 						start_bidx, REQ_RAHEAD, true);
-			up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+			f2fs_up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 			if (IS_ERR(data_page)) {
 				iput(inode);
 				continue;
@@ -1521,14 +1589,14 @@
 			int err;
 
 			if (S_ISREG(inode->i_mode)) {
-				if (!down_write_trylock(&fi->i_gc_rwsem[READ])) {
+				if (!f2fs_down_write_trylock(&fi->i_gc_rwsem[READ])) {
 					sbi->skipped_gc_rwsem++;
 					continue;
 				}
-				if (!down_write_trylock(
+				if (!f2fs_down_write_trylock(
 						&fi->i_gc_rwsem[WRITE])) {
 					sbi->skipped_gc_rwsem++;
-					up_write(&fi->i_gc_rwsem[READ]);
+					f2fs_up_write(&fi->i_gc_rwsem[READ]);
 					continue;
 				}
 				locked = true;
@@ -1551,8 +1619,8 @@
 				submitted++;
 
 			if (locked) {
-				up_write(&fi->i_gc_rwsem[WRITE]);
-				up_write(&fi->i_gc_rwsem[READ]);
+				f2fs_up_write(&fi->i_gc_rwsem[WRITE]);
+				f2fs_up_write(&fi->i_gc_rwsem[READ]);
 			}
 
 			stat_inc_data_blk_count(sbi, 1, gc_type);
@@ -1652,7 +1720,8 @@
 			f2fs_err(sbi, "Inconsistent segment (%u) type [%d, %d] in SSA and SIT",
 				 segno, type, GET_SUM_TYPE((&sum->footer)));
 			set_sbi_flag(sbi, SBI_NEED_FSCK);
-			f2fs_stop_checkpoint(sbi, false);
+			f2fs_stop_checkpoint(sbi, false,
+				STOP_CP_REASON_CORRUPTED_SUMMARY);
 			goto skip;
 		}
 
@@ -1757,9 +1826,17 @@
 		ret = -EINVAL;
 		goto stop;
 	}
+retry:
 	ret = __get_victim(sbi, &segno, gc_type);
-	if (ret)
+	if (ret) {
+		/* allow to search victim from sections has pinned data */
+		if (ret == -ENODATA && gc_type == FG_GC &&
+				f2fs_pinned_section_exists(DIRTY_I(sbi))) {
+			f2fs_unpin_all_sections(sbi, false);
+			goto retry;
+		}
 		goto stop;
+	}
 
 	seg_freed = do_garbage_collect(sbi, segno, &gc_list, gc_type, force);
 	if (gc_type == FG_GC &&
@@ -1802,6 +1879,9 @@
 	SIT_I(sbi)->last_victim[ALLOC_NEXT] = 0;
 	SIT_I(sbi)->last_victim[FLUSH_DEVICE] = init_segno;
 
+	if (gc_type == FG_GC)
+		f2fs_unpin_all_sections(sbi, true);
+
 	trace_f2fs_gc_end(sbi->sb, ret, total_freed, sec_freed,
 				get_pages(sbi, F2FS_DIRTY_NODES),
 				get_pages(sbi, F2FS_DIRTY_DENTS),
@@ -1811,7 +1891,7 @@
 				reserved_segments(sbi),
 				prefree_segments(sbi));
 
-	up_write(&sbi->gc_lock);
+	f2fs_up_write(&sbi->gc_lock);
 
 	put_gc_inode(&gc_list);
 
@@ -1940,7 +2020,7 @@
 	long long block_count;
 	int segs = secs * sbi->segs_per_sec;
 
-	down_write(&sbi->sb_lock);
+	f2fs_down_write(&sbi->sb_lock);
 
 	section_count = le32_to_cpu(raw_sb->section_count);
 	segment_count = le32_to_cpu(raw_sb->segment_count);
@@ -1961,7 +2041,7 @@
 						cpu_to_le32(dev_segs + segs);
 	}
 
-	up_write(&sbi->sb_lock);
+	f2fs_up_write(&sbi->sb_lock);
 }
 
 static void update_fs_metadata(struct f2fs_sb_info *sbi, int secs)
@@ -2040,7 +2120,7 @@
 	secs = div_u64(shrunk_blocks, BLKS_PER_SEC(sbi));
 
 	/* stop other GC */
-	if (!down_write_trylock(&sbi->gc_lock)) {
+	if (!f2fs_down_write_trylock(&sbi->gc_lock)) {
 		err = -EAGAIN;
 		goto out_drop_write;
 	}
@@ -2062,7 +2142,7 @@
 
 out_unlock:
 	f2fs_unlock_op(sbi);
-	up_write(&sbi->gc_lock);
+	f2fs_up_write(&sbi->gc_lock);
 out_drop_write:
 	mnt_drop_write_file(filp);
 	if (err)
@@ -2075,8 +2155,8 @@
 		return -EROFS;
 	}
 
-	down_write(&sbi->gc_lock);
-	down_write(&sbi->cp_global_sem);
+	f2fs_down_write(&sbi->gc_lock);
+	f2fs_down_write(&sbi->cp_global_sem);
 
 	spin_lock(&sbi->stat_lock);
 	if (shrunk_blocks + valid_user_blocks(sbi) +
@@ -2123,8 +2203,8 @@
 		spin_unlock(&sbi->stat_lock);
 	}
 out_err:
-	up_write(&sbi->cp_global_sem);
-	up_write(&sbi->gc_lock);
+	f2fs_up_write(&sbi->cp_global_sem);
+	f2fs_up_write(&sbi->gc_lock);
 	thaw_super(sbi->sb);
 	return err;
 }
diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c
index e4fc169..5bcd242 100644
--- a/fs/f2fs/inline.c
+++ b/fs/f2fs/inline.c
@@ -13,6 +13,7 @@
 #include "f2fs.h"
 #include "node.h"
 #include <trace/events/f2fs.h>
+#include <trace/events/android_fs.h>
 
 static bool support_inline_data(struct inode *inode)
 {
@@ -101,14 +102,29 @@
 {
 	struct page *ipage;
 
+	if (trace_android_fs_dataread_start_enabled()) {
+		char *path, pathbuf[MAX_TRACE_PATHBUF_LEN];
+
+		path = android_fstrace_get_pathname(pathbuf,
+						    MAX_TRACE_PATHBUF_LEN,
+						    inode);
+		trace_android_fs_dataread_start(inode, page_offset(page),
+						PAGE_SIZE, current->pid,
+						path, current->comm);
+	}
+
 	ipage = f2fs_get_node_page(F2FS_I_SB(inode), inode->i_ino);
 	if (IS_ERR(ipage)) {
+		trace_android_fs_dataread_end(inode, page_offset(page),
+					      PAGE_SIZE);
 		unlock_page(page);
 		return PTR_ERR(ipage);
 	}
 
 	if (!f2fs_has_inline_data(inode)) {
 		f2fs_put_page(ipage, 1);
+		trace_android_fs_dataread_end(inode, page_offset(page),
+					      PAGE_SIZE);
 		return -EAGAIN;
 	}
 
@@ -120,6 +136,8 @@
 	if (!PageUptodate(page))
 		SetPageUptodate(page);
 	f2fs_put_page(ipage, 1);
+	trace_android_fs_dataread_end(inode, page_offset(page),
+				      PAGE_SIZE);
 	unlock_page(page);
 	return 0;
 }
@@ -640,7 +658,7 @@
 	}
 
 	if (inode) {
-		down_write(&F2FS_I(inode)->i_sem);
+		f2fs_down_write(&F2FS_I(inode)->i_sem);
 		page = f2fs_init_inode_metadata(inode, dir, fname, ipage);
 		if (IS_ERR(page)) {
 			err = PTR_ERR(page);
@@ -669,7 +687,7 @@
 	f2fs_update_parent_metadata(dir, inode, 0);
 fail:
 	if (inode)
-		up_write(&F2FS_I(inode)->i_sem);
+		f2fs_up_write(&F2FS_I(inode)->i_sem);
 out:
 	f2fs_put_page(ipage, 1);
 	return err;
diff --git a/fs/f2fs/inode.c b/fs/f2fs/inode.c
index 94e2113..829d767 100644
--- a/fs/f2fs/inode.c
+++ b/fs/f2fs/inode.c
@@ -548,6 +548,15 @@
 		goto bad_inode;
 	}
 	f2fs_set_inode_flags(inode);
+
+	if (file_should_truncate(inode) &&
+			!is_sbi_flag_set(sbi, SBI_POR_DOING)) {
+		ret = f2fs_truncate(inode);
+		if (ret)
+			goto bad_inode;
+		file_dont_truncate(inode);
+	}
+
 	unlock_new_inode(inode);
 	trace_f2fs_iget(inode);
 	return inode;
@@ -681,19 +690,18 @@
 {
 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
 	struct page *node_page;
-	int count = 0;
 retry:
 	node_page = f2fs_get_node_page(sbi, inode->i_ino);
 	if (IS_ERR(node_page)) {
 		int err = PTR_ERR(node_page);
 
-		/* The node block was truncated. */
-		if (err == -ENOENT)
-			return;
-
-		if (err == -ENOMEM || ++count <= DEFAULT_RETRY_IO_COUNT)
+		if (err == -ENOMEM) {
+			cond_resched();
 			goto retry;
-		f2fs_stop_checkpoint(sbi, false);
+		} else if (err != -ENOENT) {
+			f2fs_stop_checkpoint(sbi, false,
+					STOP_CP_REASON_UPDATE_INODE);
+		}
 		return;
 	}
 	f2fs_update_inode(inode, node_page);
@@ -744,7 +752,8 @@
 	trace_f2fs_evict_inode(inode);
 	truncate_inode_pages_final(&inode->i_data);
 
-	if (test_opt(sbi, COMPRESS_CACHE) && f2fs_compressed_file(inode))
+	if ((inode->i_nlink || is_bad_inode(inode)) &&
+		test_opt(sbi, COMPRESS_CACHE) && f2fs_compressed_file(inode))
 		f2fs_invalidate_compress_pages(sbi, inode->i_ino);
 
 	if (inode->i_ino == F2FS_NODE_INO(sbi) ||
diff --git a/fs/f2fs/iostat.c b/fs/f2fs/iostat.c
index 9e0160a..6492c3f 100644
--- a/fs/f2fs/iostat.c
+++ b/fs/f2fs/iostat.c
@@ -91,8 +91,9 @@
 	unsigned int cnt;
 	struct f2fs_iostat_latency iostat_lat[MAX_IO_TYPE][NR_PAGE_TYPE];
 	struct iostat_lat_info *io_lat = sbi->iostat_io_lat;
+	unsigned long flags;
 
-	spin_lock_irq(&sbi->iostat_lat_lock);
+	spin_lock_irqsave(&sbi->iostat_lat_lock, flags);
 	for (idx = 0; idx < MAX_IO_TYPE; idx++) {
 		for (io = 0; io < NR_PAGE_TYPE; io++) {
 			cnt = io_lat->bio_cnt[idx][io];
@@ -106,7 +107,7 @@
 			io_lat->bio_cnt[idx][io] = 0;
 		}
 	}
-	spin_unlock_irq(&sbi->iostat_lat_lock);
+	spin_unlock_irqrestore(&sbi->iostat_lat_lock, flags);
 
 	trace_f2fs_iostat_latency(sbi, iostat_lat);
 }
@@ -115,14 +116,15 @@
 {
 	unsigned long long iostat_diff[NR_IO_TYPE];
 	int i;
+	unsigned long flags;
 
 	if (time_is_after_jiffies(sbi->iostat_next_period))
 		return;
 
 	/* Need double check under the lock */
-	spin_lock(&sbi->iostat_lock);
+	spin_lock_irqsave(&sbi->iostat_lock, flags);
 	if (time_is_after_jiffies(sbi->iostat_next_period)) {
-		spin_unlock(&sbi->iostat_lock);
+		spin_unlock_irqrestore(&sbi->iostat_lock, flags);
 		return;
 	}
 	sbi->iostat_next_period = jiffies +
@@ -133,7 +135,7 @@
 				sbi->prev_rw_iostat[i];
 		sbi->prev_rw_iostat[i] = sbi->rw_iostat[i];
 	}
-	spin_unlock(&sbi->iostat_lock);
+	spin_unlock_irqrestore(&sbi->iostat_lock, flags);
 
 	trace_f2fs_iostat(sbi, iostat_diff);
 
@@ -145,12 +147,12 @@
 	struct iostat_lat_info *io_lat = sbi->iostat_io_lat;
 	int i;
 
-	spin_lock(&sbi->iostat_lock);
+	spin_lock_irq(&sbi->iostat_lock);
 	for (i = 0; i < NR_IO_TYPE; i++) {
 		sbi->rw_iostat[i] = 0;
 		sbi->prev_rw_iostat[i] = 0;
 	}
-	spin_unlock(&sbi->iostat_lock);
+	spin_unlock_irq(&sbi->iostat_lock);
 
 	spin_lock_irq(&sbi->iostat_lat_lock);
 	memset(io_lat, 0, sizeof(struct iostat_lat_info));
@@ -160,22 +162,21 @@
 void f2fs_update_iostat(struct f2fs_sb_info *sbi,
 			enum iostat_type type, unsigned long long io_bytes)
 {
+	unsigned long flags;
+
 	if (!sbi->iostat_enable)
 		return;
 
-	spin_lock(&sbi->iostat_lock);
+	spin_lock_irqsave(&sbi->iostat_lock, flags);
 	sbi->rw_iostat[type] += io_bytes;
 
-	if (type == APP_WRITE_IO || type == APP_DIRECT_IO)
-		sbi->rw_iostat[APP_BUFFERED_IO] =
-			sbi->rw_iostat[APP_WRITE_IO] -
-			sbi->rw_iostat[APP_DIRECT_IO];
+	if (type == APP_BUFFERED_IO || type == APP_DIRECT_IO)
+		sbi->rw_iostat[APP_WRITE_IO] += io_bytes;
 
-	if (type == APP_READ_IO || type == APP_DIRECT_READ_IO)
-		sbi->rw_iostat[APP_BUFFERED_READ_IO] =
-			sbi->rw_iostat[APP_READ_IO] -
-			sbi->rw_iostat[APP_DIRECT_READ_IO];
-	spin_unlock(&sbi->iostat_lock);
+	if (type == APP_BUFFERED_READ_IO || type == APP_DIRECT_READ_IO)
+		sbi->rw_iostat[APP_READ_IO] += io_bytes;
+
+	spin_unlock_irqrestore(&sbi->iostat_lock, flags);
 
 	f2fs_record_iostat(sbi);
 }
@@ -185,10 +186,10 @@
 {
 	unsigned long ts_diff;
 	unsigned int iotype = iostat_ctx->type;
-	unsigned long flags;
 	struct f2fs_sb_info *sbi = iostat_ctx->sbi;
 	struct iostat_lat_info *io_lat = sbi->iostat_io_lat;
 	int idx;
+	unsigned long flags;
 
 	if (!sbi->iostat_enable)
 		return;
diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c
index 7a86a8d..e5a61a6 100644
--- a/fs/f2fs/namei.c
+++ b/fs/f2fs/namei.c
@@ -22,7 +22,8 @@
 #include "acl.h"
 #include <trace/events/f2fs.h>
 
-static struct inode *f2fs_new_inode(struct inode *dir, umode_t mode)
+static struct inode *f2fs_new_inode(struct user_namespace *mnt_userns,
+						struct inode *dir, umode_t mode)
 {
 	struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
 	nid_t ino;
@@ -46,7 +47,7 @@
 
 	nid_free = true;
 
-	inode_init_owner(&init_user_ns, inode, dir, mode);
+	inode_init_owner(mnt_userns, inode, dir, mode);
 
 	inode->i_ino = ino;
 	inode->i_blocks = 0;
@@ -67,7 +68,7 @@
 		(F2FS_I(dir)->i_flags & F2FS_PROJINHERIT_FL))
 		F2FS_I(inode)->i_projid = F2FS_I(dir)->i_projid;
 	else
-		F2FS_I(inode)->i_projid = make_kprojid(&init_user_ns,
+		F2FS_I(inode)->i_projid = make_kprojid(mnt_userns,
 							F2FS_DEF_PROJID);
 
 	err = fscrypt_prepare_new_inode(dir, inode, &encrypt);
@@ -198,7 +199,7 @@
 	__u8 (*extlist)[F2FS_EXTENSION_LEN] = sbi->raw_super->extension_list;
 	int i, cold_count, hot_count;
 
-	down_read(&sbi->sb_lock);
+	f2fs_down_read(&sbi->sb_lock);
 
 	cold_count = le32_to_cpu(sbi->raw_super->extension_count);
 	hot_count = sbi->raw_super->hot_ext_count;
@@ -208,7 +209,7 @@
 			break;
 	}
 
-	up_read(&sbi->sb_lock);
+	f2fs_up_read(&sbi->sb_lock);
 
 	if (i == cold_count + hot_count)
 		return;
@@ -301,19 +302,19 @@
 			(!ext_cnt && !noext_cnt))
 		return;
 
-	down_read(&sbi->sb_lock);
+	f2fs_down_read(&sbi->sb_lock);
 
 	cold_count = le32_to_cpu(sbi->raw_super->extension_count);
 	hot_count = sbi->raw_super->hot_ext_count;
 
 	for (i = cold_count; i < cold_count + hot_count; i++) {
 		if (is_extension_exist(name, extlist[i], false)) {
-			up_read(&sbi->sb_lock);
+			f2fs_up_read(&sbi->sb_lock);
 			return;
 		}
 	}
 
-	up_read(&sbi->sb_lock);
+	f2fs_up_read(&sbi->sb_lock);
 
 	for (i = 0; i < noext_cnt; i++) {
 		if (is_extension_exist(name, noext[i], false)) {
@@ -354,7 +355,7 @@
 	if (err)
 		return err;
 
-	inode = f2fs_new_inode(dir, mode);
+	inode = f2fs_new_inode(mnt_userns, dir, mode);
 	if (IS_ERR(inode))
 		return PTR_ERR(inode);
 
@@ -634,6 +635,8 @@
 		goto fail;
 	}
 	f2fs_delete_entry(de, page, dir, inode);
+	f2fs_unlock_op(sbi);
+
 #ifdef CONFIG_UNICODE
 	/* VFS negative dentries are incompatible with Encoding and
 	 * Case-insensitiveness. Eventually we'll want avoid
@@ -644,8 +647,6 @@
 	if (IS_CASEFOLDED(dir))
 		d_invalidate(dentry);
 #endif
-	f2fs_unlock_op(sbi);
-
 	if (IS_DIRSYNC(dir))
 		f2fs_sync_fs(sbi->sb, 1);
 fail:
@@ -691,7 +692,7 @@
 	if (err)
 		return err;
 
-	inode = f2fs_new_inode(dir, S_IFLNK | S_IRWXUGO);
+	inode = f2fs_new_inode(mnt_userns, dir, S_IFLNK | S_IRWXUGO);
 	if (IS_ERR(inode))
 		return PTR_ERR(inode);
 
@@ -762,7 +763,7 @@
 	if (err)
 		return err;
 
-	inode = f2fs_new_inode(dir, S_IFDIR | mode);
+	inode = f2fs_new_inode(mnt_userns, dir, S_IFDIR | mode);
 	if (IS_ERR(inode))
 		return PTR_ERR(inode);
 
@@ -819,7 +820,7 @@
 	if (err)
 		return err;
 
-	inode = f2fs_new_inode(dir, mode);
+	inode = f2fs_new_inode(mnt_userns, dir, mode);
 	if (IS_ERR(inode))
 		return PTR_ERR(inode);
 
@@ -846,8 +847,9 @@
 	return err;
 }
 
-static int __f2fs_tmpfile(struct inode *dir, struct dentry *dentry,
-					umode_t mode, struct inode **whiteout)
+static int __f2fs_tmpfile(struct user_namespace *mnt_userns, struct inode *dir,
+					struct dentry *dentry, umode_t mode,
+					struct inode **whiteout)
 {
 	struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
 	struct inode *inode;
@@ -857,7 +859,7 @@
 	if (err)
 		return err;
 
-	inode = f2fs_new_inode(dir, mode);
+	inode = f2fs_new_inode(mnt_userns, dir, mode);
 	if (IS_ERR(inode))
 		return PTR_ERR(inode);
 
@@ -921,20 +923,22 @@
 	if (!f2fs_is_checkpoint_ready(sbi))
 		return -ENOSPC;
 
-	return __f2fs_tmpfile(dir, dentry, mode, NULL);
+	return __f2fs_tmpfile(mnt_userns, dir, dentry, mode, NULL);
 }
 
-static int f2fs_create_whiteout(struct inode *dir, struct inode **whiteout)
+static int f2fs_create_whiteout(struct user_namespace *mnt_userns,
+				struct inode *dir, struct inode **whiteout)
 {
 	if (unlikely(f2fs_cp_error(F2FS_I_SB(dir))))
 		return -EIO;
 
-	return __f2fs_tmpfile(dir, NULL, S_IFCHR | WHITEOUT_MODE, whiteout);
+	return __f2fs_tmpfile(mnt_userns, dir, NULL,
+				S_IFCHR | WHITEOUT_MODE, whiteout);
 }
 
-static int f2fs_rename(struct inode *old_dir, struct dentry *old_dentry,
-			struct inode *new_dir, struct dentry *new_dentry,
-			unsigned int flags)
+static int f2fs_rename(struct user_namespace *mnt_userns, struct inode *old_dir,
+			struct dentry *old_dentry, struct inode *new_dir,
+			struct dentry *new_dentry, unsigned int flags)
 {
 	struct f2fs_sb_info *sbi = F2FS_I_SB(old_dir);
 	struct inode *old_inode = d_inode(old_dentry);
@@ -972,7 +976,7 @@
 	}
 
 	if (flags & RENAME_WHITEOUT) {
-		err = f2fs_create_whiteout(old_dir, &whiteout);
+		err = f2fs_create_whiteout(mnt_userns, old_dir, &whiteout);
 		if (err)
 			return err;
 	}
@@ -1035,11 +1039,11 @@
 		new_page = NULL;
 
 		new_inode->i_ctime = current_time(new_inode);
-		down_write(&F2FS_I(new_inode)->i_sem);
+		f2fs_down_write(&F2FS_I(new_inode)->i_sem);
 		if (old_dir_entry)
 			f2fs_i_links_write(new_inode, false);
 		f2fs_i_links_write(new_inode, false);
-		up_write(&F2FS_I(new_inode)->i_sem);
+		f2fs_up_write(&F2FS_I(new_inode)->i_sem);
 
 		if (!new_inode->i_nlink)
 			f2fs_add_orphan_inode(new_inode);
@@ -1060,13 +1064,13 @@
 			f2fs_i_links_write(new_dir, true);
 	}
 
-	down_write(&F2FS_I(old_inode)->i_sem);
+	f2fs_down_write(&F2FS_I(old_inode)->i_sem);
 	if (!old_dir_entry || whiteout)
 		file_lost_pino(old_inode);
 	else
 		/* adjust dir's i_pino to pass fsck check */
 		f2fs_i_pino_write(old_inode, new_dir->i_ino);
-	up_write(&F2FS_I(old_inode)->i_sem);
+	f2fs_up_write(&F2FS_I(old_inode)->i_sem);
 
 	old_inode->i_ctime = current_time(old_inode);
 	f2fs_mark_inode_dirty_sync(old_inode, false);
@@ -1119,8 +1123,7 @@
 out_old:
 	f2fs_put_page(old_page, 0);
 out:
-	if (whiteout)
-		iput(whiteout);
+	iput(whiteout);
 	return err;
 }
 
@@ -1226,38 +1229,38 @@
 	/* update directory entry info of old dir inode */
 	f2fs_set_link(old_dir, old_entry, old_page, new_inode);
 
-	down_write(&F2FS_I(old_inode)->i_sem);
+	f2fs_down_write(&F2FS_I(old_inode)->i_sem);
 	if (!old_dir_entry)
 		file_lost_pino(old_inode);
 	else
 		/* adjust dir's i_pino to pass fsck check */
 		f2fs_i_pino_write(old_inode, new_dir->i_ino);
-	up_write(&F2FS_I(old_inode)->i_sem);
+	f2fs_up_write(&F2FS_I(old_inode)->i_sem);
 
 	old_dir->i_ctime = current_time(old_dir);
 	if (old_nlink) {
-		down_write(&F2FS_I(old_dir)->i_sem);
+		f2fs_down_write(&F2FS_I(old_dir)->i_sem);
 		f2fs_i_links_write(old_dir, old_nlink > 0);
-		up_write(&F2FS_I(old_dir)->i_sem);
+		f2fs_up_write(&F2FS_I(old_dir)->i_sem);
 	}
 	f2fs_mark_inode_dirty_sync(old_dir, false);
 
 	/* update directory entry info of new dir inode */
 	f2fs_set_link(new_dir, new_entry, new_page, old_inode);
 
-	down_write(&F2FS_I(new_inode)->i_sem);
+	f2fs_down_write(&F2FS_I(new_inode)->i_sem);
 	if (!new_dir_entry)
 		file_lost_pino(new_inode);
 	else
 		/* adjust dir's i_pino to pass fsck check */
 		f2fs_i_pino_write(new_inode, old_dir->i_ino);
-	up_write(&F2FS_I(new_inode)->i_sem);
+	f2fs_up_write(&F2FS_I(new_inode)->i_sem);
 
 	new_dir->i_ctime = current_time(new_dir);
 	if (new_nlink) {
-		down_write(&F2FS_I(new_dir)->i_sem);
+		f2fs_down_write(&F2FS_I(new_dir)->i_sem);
 		f2fs_i_links_write(new_dir, new_nlink > 0);
-		up_write(&F2FS_I(new_dir)->i_sem);
+		f2fs_up_write(&F2FS_I(new_dir)->i_sem);
 	}
 	f2fs_mark_inode_dirty_sync(new_dir, false);
 
@@ -1312,7 +1315,8 @@
 	 * VFS has already handled the new dentry existence case,
 	 * here, we just deal with "RENAME_NOREPLACE" as regular rename.
 	 */
-	return f2fs_rename(old_dir, old_dentry, new_dir, new_dentry, flags);
+	return f2fs_rename(mnt_userns, old_dir, old_dentry,
+					new_dir, new_dentry, flags);
 }
 
 static const char *f2fs_encrypted_get_link(struct dentry *dentry,
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
index 1956582..cf673ee1 100644
--- a/fs/f2fs/node.c
+++ b/fs/f2fs/node.c
@@ -382,14 +382,14 @@
 	struct nat_entry *e;
 	bool need = false;
 
-	down_read(&nm_i->nat_tree_lock);
+	f2fs_down_read(&nm_i->nat_tree_lock);
 	e = __lookup_nat_cache(nm_i, nid);
 	if (e) {
 		if (!get_nat_flag(e, IS_CHECKPOINTED) &&
 				!get_nat_flag(e, HAS_FSYNCED_INODE))
 			need = true;
 	}
-	up_read(&nm_i->nat_tree_lock);
+	f2fs_up_read(&nm_i->nat_tree_lock);
 	return need;
 }
 
@@ -399,11 +399,11 @@
 	struct nat_entry *e;
 	bool is_cp = true;
 
-	down_read(&nm_i->nat_tree_lock);
+	f2fs_down_read(&nm_i->nat_tree_lock);
 	e = __lookup_nat_cache(nm_i, nid);
 	if (e && !get_nat_flag(e, IS_CHECKPOINTED))
 		is_cp = false;
-	up_read(&nm_i->nat_tree_lock);
+	f2fs_up_read(&nm_i->nat_tree_lock);
 	return is_cp;
 }
 
@@ -413,13 +413,13 @@
 	struct nat_entry *e;
 	bool need_update = true;
 
-	down_read(&nm_i->nat_tree_lock);
+	f2fs_down_read(&nm_i->nat_tree_lock);
 	e = __lookup_nat_cache(nm_i, ino);
 	if (e && get_nat_flag(e, HAS_LAST_FSYNC) &&
 			(get_nat_flag(e, IS_CHECKPOINTED) ||
 			 get_nat_flag(e, HAS_FSYNCED_INODE)))
 		need_update = false;
-	up_read(&nm_i->nat_tree_lock);
+	f2fs_up_read(&nm_i->nat_tree_lock);
 	return need_update;
 }
 
@@ -431,14 +431,14 @@
 	struct nat_entry *new, *e;
 
 	/* Let's mitigate lock contention of nat_tree_lock during checkpoint */
-	if (rwsem_is_locked(&sbi->cp_global_sem))
+	if (f2fs_rwsem_is_locked(&sbi->cp_global_sem))
 		return;
 
 	new = __alloc_nat_entry(sbi, nid, false);
 	if (!new)
 		return;
 
-	down_write(&nm_i->nat_tree_lock);
+	f2fs_down_write(&nm_i->nat_tree_lock);
 	e = __lookup_nat_cache(nm_i, nid);
 	if (!e)
 		e = __init_nat_entry(nm_i, new, ne, false);
@@ -447,7 +447,7 @@
 				nat_get_blkaddr(e) !=
 					le32_to_cpu(ne->block_addr) ||
 				nat_get_version(e) != ne->version);
-	up_write(&nm_i->nat_tree_lock);
+	f2fs_up_write(&nm_i->nat_tree_lock);
 	if (e != new)
 		__free_nat_entry(new);
 }
@@ -459,7 +459,7 @@
 	struct nat_entry *e;
 	struct nat_entry *new = __alloc_nat_entry(sbi, ni->nid, true);
 
-	down_write(&nm_i->nat_tree_lock);
+	f2fs_down_write(&nm_i->nat_tree_lock);
 	e = __lookup_nat_cache(nm_i, ni->nid);
 	if (!e) {
 		e = __init_nat_entry(nm_i, new, NULL, true);
@@ -508,7 +508,7 @@
 			set_nat_flag(e, HAS_FSYNCED_INODE, true);
 		set_nat_flag(e, HAS_LAST_FSYNC, fsync_done);
 	}
-	up_write(&nm_i->nat_tree_lock);
+	f2fs_up_write(&nm_i->nat_tree_lock);
 }
 
 int f2fs_try_to_free_nats(struct f2fs_sb_info *sbi, int nr_shrink)
@@ -516,7 +516,7 @@
 	struct f2fs_nm_info *nm_i = NM_I(sbi);
 	int nr = nr_shrink;
 
-	if (!down_write_trylock(&nm_i->nat_tree_lock))
+	if (!f2fs_down_write_trylock(&nm_i->nat_tree_lock))
 		return 0;
 
 	spin_lock(&nm_i->nat_list_lock);
@@ -538,7 +538,7 @@
 	}
 	spin_unlock(&nm_i->nat_list_lock);
 
-	up_write(&nm_i->nat_tree_lock);
+	f2fs_up_write(&nm_i->nat_tree_lock);
 	return nr - nr_shrink;
 }
 
@@ -560,13 +560,13 @@
 	ni->nid = nid;
 retry:
 	/* Check nat cache */
-	down_read(&nm_i->nat_tree_lock);
+	f2fs_down_read(&nm_i->nat_tree_lock);
 	e = __lookup_nat_cache(nm_i, nid);
 	if (e) {
 		ni->ino = nat_get_ino(e);
 		ni->blk_addr = nat_get_blkaddr(e);
 		ni->version = nat_get_version(e);
-		up_read(&nm_i->nat_tree_lock);
+		f2fs_up_read(&nm_i->nat_tree_lock);
 		return 0;
 	}
 
@@ -576,11 +576,11 @@
 	 * nat_tree_lock. Therefore, we should retry, if we failed to grab here
 	 * while not bothering checkpoint.
 	 */
-	if (!rwsem_is_locked(&sbi->cp_global_sem) || checkpoint_context) {
+	if (!f2fs_rwsem_is_locked(&sbi->cp_global_sem) || checkpoint_context) {
 		down_read(&curseg->journal_rwsem);
-	} else if (rwsem_is_contended(&nm_i->nat_tree_lock) ||
+	} else if (f2fs_rwsem_is_contended(&nm_i->nat_tree_lock) ||
 				!down_read_trylock(&curseg->journal_rwsem)) {
-		up_read(&nm_i->nat_tree_lock);
+		f2fs_up_read(&nm_i->nat_tree_lock);
 		goto retry;
 	}
 
@@ -589,15 +589,15 @@
 		ne = nat_in_journal(journal, i);
 		node_info_from_raw_nat(ni, &ne);
 	}
-	up_read(&curseg->journal_rwsem);
+        up_read(&curseg->journal_rwsem);
 	if (i >= 0) {
-		up_read(&nm_i->nat_tree_lock);
+		f2fs_up_read(&nm_i->nat_tree_lock);
 		goto cache;
 	}
 
 	/* Fill node_info from nat page */
 	index = current_nat_addr(sbi, nid);
-	up_read(&nm_i->nat_tree_lock);
+	f2fs_up_read(&nm_i->nat_tree_lock);
 
 	page = f2fs_get_meta_page(sbi, index);
 	if (IS_ERR(page))
@@ -1421,8 +1421,7 @@
 
 	err = read_node_page(page, 0);
 	if (err < 0) {
-		f2fs_put_page(page, 1);
-		return ERR_PTR(err);
+		goto out_put_err;
 	} else if (err == LOCKED_PAGE) {
 		err = 0;
 		goto page_hit;
@@ -1448,19 +1447,23 @@
 		goto out_err;
 	}
 page_hit:
-	if (unlikely(nid != nid_of_node(page))) {
-		f2fs_warn(sbi, "inconsistent node block, nid:%lu, node_footer[nid:%u,ino:%u,ofs:%u,cpver:%llu,blkaddr:%u]",
+	if (likely(nid == nid_of_node(page)))
+		return page;
+
+	f2fs_warn(sbi, "inconsistent node block, nid:%lu, node_footer[nid:%u,ino:%u,ofs:%u,cpver:%llu,blkaddr:%u]",
 			  nid, nid_of_node(page), ino_of_node(page),
 			  ofs_of_node(page), cpver_of_node(page),
 			  next_blkaddr_of_node(page));
-		set_sbi_flag(sbi, SBI_NEED_FSCK);
-		err = -EINVAL;
+	set_sbi_flag(sbi, SBI_NEED_FSCK);
+	err = -EINVAL;
 out_err:
-		ClearPageUptodate(page);
-		f2fs_put_page(page, 1);
-		return ERR_PTR(err);
-	}
-	return page;
+	ClearPageUptodate(page);
+out_put_err:
+	/* ENOENT comes from read_node_page which is not an error. */
+	if (err != -ENOENT)
+		f2fs_handle_page_eio(sbi, page->index, NODE);
+	f2fs_put_page(page, 1);
+	return ERR_PTR(err);
 }
 
 struct page *f2fs_get_node_page(struct f2fs_sb_info *sbi, pgoff_t nid)
@@ -1614,17 +1617,17 @@
 		goto redirty_out;
 
 	if (wbc->for_reclaim) {
-		if (!down_read_trylock(&sbi->node_write))
+		if (!f2fs_down_read_trylock(&sbi->node_write))
 			goto redirty_out;
 	} else {
-		down_read(&sbi->node_write);
+		f2fs_down_read(&sbi->node_write);
 	}
 
 	/* This page is already truncated */
 	if (unlikely(ni.blk_addr == NULL_ADDR)) {
 		ClearPageUptodate(page);
 		dec_page_count(sbi, F2FS_DIRTY_NODES);
-		up_read(&sbi->node_write);
+		f2fs_up_read(&sbi->node_write);
 		unlock_page(page);
 		return 0;
 	}
@@ -1632,7 +1635,7 @@
 	if (__is_valid_data_blkaddr(ni.blk_addr) &&
 		!f2fs_is_valid_blkaddr(sbi, ni.blk_addr,
 					DATA_GENERIC_ENHANCE)) {
-		up_read(&sbi->node_write);
+		f2fs_up_read(&sbi->node_write);
 		goto redirty_out;
 	}
 
@@ -1653,7 +1656,7 @@
 	f2fs_do_write_node_page(nid, &fio);
 	set_node_addr(sbi, &ni, fio.new_blkaddr, is_fsync_dnode(page));
 	dec_page_count(sbi, F2FS_DIRTY_NODES);
-	up_read(&sbi->node_write);
+	f2fs_up_read(&sbi->node_write);
 
 	if (wbc->for_reclaim) {
 		f2fs_submit_merged_write_cond(sbi, NULL, page, 0, NODE);
@@ -1787,6 +1790,7 @@
 
 			if (!atomic || page == last_page) {
 				set_fsync_mark(page, 1);
+				percpu_counter_inc(&sbi->rf_node_block_count);
 				if (IS_INODE(page)) {
 					if (is_inode_flag_set(inode,
 								FI_DIRTY_INODE))
@@ -1950,7 +1954,6 @@
 		for (i = 0; i < nr_pages; i++) {
 			struct page *page = pvec.pages[i];
 			bool submitted = false;
-			bool may_dirty = true;
 
 			/* give a priority to WB_SYNC threads */
 			if (atomic_read(&sbi->wb_sync_req[NODE]) &&
@@ -2003,11 +2006,8 @@
 			}
 
 			/* flush dirty inode */
-			if (IS_INODE(page) && may_dirty) {
-				may_dirty = false;
-				if (flush_dirty_inode(page))
-					goto lock_node;
-			}
+			if (IS_INODE(page) && flush_dirty_inode(page))
+				goto lock_node;
 write_node:
 			f2fs_wait_on_page_writeback(page, NODE, true, true);
 
@@ -2234,14 +2234,14 @@
 	unsigned int i;
 	bool ret = true;
 
-	down_read(&nm_i->nat_tree_lock);
+	f2fs_down_read(&nm_i->nat_tree_lock);
 	for (i = 0; i < nm_i->nat_blocks; i++) {
 		if (!test_bit_le(i, nm_i->nat_block_bitmap)) {
 			ret = false;
 			break;
 		}
 	}
-	up_read(&nm_i->nat_tree_lock);
+	f2fs_up_read(&nm_i->nat_tree_lock);
 
 	return ret;
 }
@@ -2424,7 +2424,7 @@
 	unsigned int i, idx;
 	nid_t nid;
 
-	down_read(&nm_i->nat_tree_lock);
+	f2fs_down_read(&nm_i->nat_tree_lock);
 
 	for (i = 0; i < nm_i->nat_blocks; i++) {
 		if (!test_bit_le(i, nm_i->nat_block_bitmap))
@@ -2447,7 +2447,7 @@
 out:
 	scan_curseg_cache(sbi);
 
-	up_read(&nm_i->nat_tree_lock);
+	f2fs_up_read(&nm_i->nat_tree_lock);
 }
 
 static int __f2fs_build_free_nids(struct f2fs_sb_info *sbi,
@@ -2482,7 +2482,7 @@
 	f2fs_ra_meta_pages(sbi, NAT_BLOCK_OFFSET(nid), FREE_NID_PAGES,
 							META_NAT, true);
 
-	down_read(&nm_i->nat_tree_lock);
+	f2fs_down_read(&nm_i->nat_tree_lock);
 
 	while (1) {
 		if (!test_bit_le(NAT_BLOCK_OFFSET(nid),
@@ -2497,7 +2497,7 @@
 			}
 
 			if (ret) {
-				up_read(&nm_i->nat_tree_lock);
+				f2fs_up_read(&nm_i->nat_tree_lock);
 				f2fs_err(sbi, "NAT is corrupt, run fsck to fix it");
 				return ret;
 			}
@@ -2517,7 +2517,7 @@
 	/* find free nids from current sum_pages */
 	scan_curseg_cache(sbi);
 
-	up_read(&nm_i->nat_tree_lock);
+	f2fs_up_read(&nm_i->nat_tree_lock);
 
 	f2fs_ra_meta_pages(sbi, NAT_BLOCK_OFFSET(nm_i->next_scan_nid),
 					nm_i->ra_nid_pages, META_NAT, false);
@@ -2962,7 +2962,7 @@
 	struct f2fs_nm_info *nm_i = NM_I(sbi);
 	unsigned int nat_ofs;
 
-	down_read(&nm_i->nat_tree_lock);
+	f2fs_down_read(&nm_i->nat_tree_lock);
 
 	for (nat_ofs = 0; nat_ofs < nm_i->nat_blocks; nat_ofs++) {
 		unsigned int valid = 0, nid_ofs = 0;
@@ -2982,7 +2982,7 @@
 		__update_nat_bits(nm_i, nat_ofs, valid);
 	}
 
-	up_read(&nm_i->nat_tree_lock);
+	f2fs_up_read(&nm_i->nat_tree_lock);
 }
 
 static int __flush_nat_entry_set(struct f2fs_sb_info *sbi,
@@ -3080,15 +3080,15 @@
 	 * nat_cnt[DIRTY_NAT].
 	 */
 	if (cpc->reason & CP_UMOUNT) {
-		down_write(&nm_i->nat_tree_lock);
+		f2fs_down_write(&nm_i->nat_tree_lock);
 		remove_nats_in_journal(sbi);
-		up_write(&nm_i->nat_tree_lock);
+		f2fs_up_write(&nm_i->nat_tree_lock);
 	}
 
 	if (!nm_i->nat_cnt[DIRTY_NAT])
 		return 0;
 
-	down_write(&nm_i->nat_tree_lock);
+	f2fs_down_write(&nm_i->nat_tree_lock);
 
 	/*
 	 * if there are no enough space in journal to store dirty nat
@@ -3117,7 +3117,7 @@
 			break;
 	}
 
-	up_write(&nm_i->nat_tree_lock);
+	f2fs_up_write(&nm_i->nat_tree_lock);
 	/* Allow dirty nats by node block allocation in write_begin */
 
 	return err;
@@ -3227,6 +3227,7 @@
 	nm_i->ram_thresh = DEF_RAM_THRESHOLD;
 	nm_i->ra_nid_pages = DEF_RA_NID_PAGES;
 	nm_i->dirty_nats_ratio = DEF_DIRTY_NAT_RATIO_THRESHOLD;
+	nm_i->max_rf_node_blocks = DEF_RF_NODE_BLOCKS;
 
 	INIT_RADIX_TREE(&nm_i->free_nid_root, GFP_ATOMIC);
 	INIT_LIST_HEAD(&nm_i->free_nid_list);
@@ -3237,7 +3238,7 @@
 
 	mutex_init(&nm_i->build_lock);
 	spin_lock_init(&nm_i->nid_list_lock);
-	init_rwsem(&nm_i->nat_tree_lock);
+	init_f2fs_rwsem(&nm_i->nat_tree_lock);
 
 	nm_i->next_scan_nid = le32_to_cpu(sbi->ckpt->next_free_nid);
 	nm_i->bitmap_size = __bitmap_size(sbi, NAT_BITMAP);
@@ -3343,7 +3344,7 @@
 	spin_unlock(&nm_i->nid_list_lock);
 
 	/* destroy nat cache */
-	down_write(&nm_i->nat_tree_lock);
+	f2fs_down_write(&nm_i->nat_tree_lock);
 	while ((found = __gang_lookup_nat_cache(nm_i,
 					nid, NATVEC_SIZE, natvec))) {
 		unsigned idx;
@@ -3373,7 +3374,7 @@
 			kmem_cache_free(nat_entry_set_slab, setvec[idx]);
 		}
 	}
-	up_write(&nm_i->nat_tree_lock);
+	f2fs_up_write(&nm_i->nat_tree_lock);
 
 	kvfree(nm_i->nat_block_bitmap);
 	if (nm_i->free_nid_bitmap) {
diff --git a/fs/f2fs/node.h b/fs/f2fs/node.h
index ff14a6e..4c1d34b 100644
--- a/fs/f2fs/node.h
+++ b/fs/f2fs/node.h
@@ -31,6 +31,9 @@
 /* control total # of nats */
 #define DEF_NAT_CACHE_THRESHOLD			100000
 
+/* control total # of node writes used for roll-fowrad recovery */
+#define DEF_RF_NODE_BLOCKS			0
+
 /* vector size for gang look-up from nat cache that consists of radix tree */
 #define NATVEC_SIZE	64
 #define SETVEC_SIZE	32
@@ -138,11 +141,6 @@
 	return NM_I(sbi)->nat_cnt[TOTAL_NAT] >= DEF_NAT_CACHE_THRESHOLD;
 }
 
-static inline bool excess_dirty_nodes(struct f2fs_sb_info *sbi)
-{
-	return get_pages(sbi, F2FS_DIRTY_NODES) >= sbi->blocks_per_seg * 8;
-}
-
 enum mem_type {
 	FREE_NIDS,	/* indicates the free nid list */
 	NAT_ENTRIES,	/* indicates the cached nat entry */
diff --git a/fs/f2fs/recovery.c b/fs/f2fs/recovery.c
index ba7eeb3..30fc972 100644
--- a/fs/f2fs/recovery.c
+++ b/fs/f2fs/recovery.c
@@ -55,6 +55,10 @@
 
 	if (sbi->last_valid_block_count + nalloc > sbi->user_block_count)
 		return false;
+	if (NM_I(sbi)->max_rf_node_blocks &&
+		percpu_counter_sum_positive(&sbi->rf_node_block_count) >=
+						NM_I(sbi)->max_rf_node_blocks)
+		return false;
 	return true;
 }
 
@@ -342,6 +346,19 @@
 	return 0;
 }
 
+static unsigned int adjust_por_ra_blocks(struct f2fs_sb_info *sbi,
+				unsigned int ra_blocks, unsigned int blkaddr,
+				unsigned int next_blkaddr)
+{
+	if (blkaddr + 1 == next_blkaddr)
+		ra_blocks = min_t(unsigned int, RECOVERY_MAX_RA_BLOCKS,
+							ra_blocks * 2);
+	else if (next_blkaddr % sbi->blocks_per_seg)
+		ra_blocks = max_t(unsigned int, RECOVERY_MIN_RA_BLOCKS,
+							ra_blocks / 2);
+	return ra_blocks;
+}
+
 static int find_fsync_dnodes(struct f2fs_sb_info *sbi, struct list_head *head,
 				bool check_only)
 {
@@ -349,6 +366,7 @@
 	struct page *page = NULL;
 	block_t blkaddr;
 	unsigned int loop_cnt = 0;
+	unsigned int ra_blocks = RECOVERY_MAX_RA_BLOCKS;
 	unsigned int free_blocks = MAIN_SEGS(sbi) * sbi->blocks_per_seg -
 						valid_user_blocks(sbi);
 	int err = 0;
@@ -423,11 +441,14 @@
 			break;
 		}
 
+		ra_blocks = adjust_por_ra_blocks(sbi, ra_blocks, blkaddr,
+						next_blkaddr_of_node(page));
+
 		/* check next segment */
 		blkaddr = next_blkaddr_of_node(page);
 		f2fs_put_page(page, 1);
 
-		f2fs_ra_meta_pages_cond(sbi, blkaddr);
+		f2fs_ra_meta_pages_cond(sbi, blkaddr, ra_blocks);
 	}
 	return err;
 }
@@ -721,6 +742,7 @@
 	struct page *page = NULL;
 	int err = 0;
 	block_t blkaddr;
+	unsigned int ra_blocks = RECOVERY_MAX_RA_BLOCKS;
 
 	/* get node pages in the current segment */
 	curseg = CURSEG_I(sbi, CURSEG_WARM_NODE);
@@ -732,8 +754,6 @@
 		if (!f2fs_is_valid_blkaddr(sbi, blkaddr, META_POR))
 			break;
 
-		f2fs_ra_meta_pages_cond(sbi, blkaddr);
-
 		page = f2fs_get_tmp_page(sbi, blkaddr);
 		if (IS_ERR(page)) {
 			err = PTR_ERR(page);
@@ -776,9 +796,14 @@
 		if (entry->blkaddr == blkaddr)
 			list_move_tail(&entry->list, tmp_inode_list);
 next:
+		ra_blocks = adjust_por_ra_blocks(sbi, ra_blocks, blkaddr,
+						next_blkaddr_of_node(page));
+
 		/* check next segment */
 		blkaddr = next_blkaddr_of_node(page);
 		f2fs_put_page(page, 1);
+
+		f2fs_ra_meta_pages_cond(sbi, blkaddr, ra_blocks);
 	}
 	if (!err)
 		f2fs_allocate_new_segments(sbi);
@@ -804,8 +829,6 @@
 	}
 
 #ifdef CONFIG_QUOTA
-	/* Needed for iput() to work correctly and not trash data */
-	sbi->sb->s_flags |= SB_ACTIVE;
 	/* Turn on quotas so that they are updated correctly */
 	quota_enabled = f2fs_enable_quota_files(sbi, s_flags & SB_RDONLY);
 #endif
@@ -815,7 +838,7 @@
 	INIT_LIST_HEAD(&dir_list);
 
 	/* prevent checkpoint */
-	down_write(&sbi->cp_global_sem);
+	f2fs_down_write(&sbi->cp_global_sem);
 
 	/* step #1: find fsynced inode numbers */
 	err = find_fsync_dnodes(sbi, &inode_list, check_only);
@@ -833,10 +856,8 @@
 	err = recover_data(sbi, &inode_list, &tmp_inode_list, &dir_list);
 	if (!err)
 		f2fs_bug_on(sbi, !list_empty(&inode_list));
-	else {
-		/* restore s_flags to let iput() trash data */
-		sbi->sb->s_flags = s_flags;
-	}
+	else
+		f2fs_bug_on(sbi, sbi->sb->s_flags & SB_ACTIVE);
 skip:
 	fix_curseg_write_pointer = !check_only || list_empty(&inode_list);
 
@@ -866,7 +887,7 @@
 	if (!err)
 		clear_sbi_flag(sbi, SBI_POR_DOING);
 
-	up_write(&sbi->cp_global_sem);
+	f2fs_up_write(&sbi->cp_global_sem);
 
 	/* let's drop all the directory inodes for clean checkpoint */
 	destroy_fsync_dnodes(&dir_list, err);
diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
index 79ad696..b2c750a 100644
--- a/fs/f2fs/segment.c
+++ b/fs/f2fs/segment.c
@@ -15,6 +15,7 @@
 #include <linux/timer.h>
 #include <linux/freezer.h>
 #include <linux/sched/signal.h>
+#include <linux/random.h>
 
 #include "f2fs.h"
 #include "segment.h"
@@ -313,8 +314,7 @@
 skip:
 		iput(inode);
 	}
-	congestion_wait(BLK_RW_ASYNC, DEFAULT_IO_TIMEOUT);
-	cond_resched();
+	f2fs_io_schedule_timeout(DEFAULT_IO_TIMEOUT);
 	if (gc_failure) {
 		if (++looped >= count)
 			return;
@@ -476,7 +476,7 @@
 
 	f2fs_balance_fs(sbi, true);
 
-	down_write(&fi->i_gc_rwsem[WRITE]);
+	f2fs_down_write(&fi->i_gc_rwsem[WRITE]);
 
 	f2fs_lock_op(sbi);
 	set_inode_flag(inode, FI_ATOMIC_COMMIT);
@@ -488,7 +488,7 @@
 	clear_inode_flag(inode, FI_ATOMIC_COMMIT);
 
 	f2fs_unlock_op(sbi);
-	up_write(&fi->i_gc_rwsem[WRITE]);
+	f2fs_up_write(&fi->i_gc_rwsem[WRITE]);
 
 	return err;
 }
@@ -501,7 +501,7 @@
 {
 	if (time_to_inject(sbi, FAULT_CHECKPOINT)) {
 		f2fs_show_injection_info(sbi, FAULT_CHECKPOINT);
-		f2fs_stop_checkpoint(sbi, false);
+		f2fs_stop_checkpoint(sbi, false, STOP_CP_REASON_FAULT_INJECT);
 	}
 
 	/* balance_fs_bg is able to be pending */
@@ -526,12 +526,31 @@
 			io_schedule();
 			finish_wait(&sbi->gc_thread->fggc_wq, &wait);
 		} else {
-			down_write(&sbi->gc_lock);
+			f2fs_down_write(&sbi->gc_lock);
 			f2fs_gc(sbi, false, false, false, NULL_SEGNO);
 		}
 	}
 }
 
+static inline bool excess_dirty_threshold(struct f2fs_sb_info *sbi)
+{
+	int factor = f2fs_rwsem_is_locked(&sbi->cp_rwsem) ? 3 : 2;
+	unsigned int dents = get_pages(sbi, F2FS_DIRTY_DENTS);
+	unsigned int qdata = get_pages(sbi, F2FS_DIRTY_QDATA);
+	unsigned int nodes = get_pages(sbi, F2FS_DIRTY_NODES);
+	unsigned int meta = get_pages(sbi, F2FS_DIRTY_META);
+	unsigned int imeta = get_pages(sbi, F2FS_DIRTY_IMETA);
+	unsigned int threshold = sbi->blocks_per_seg * factor *
+					DEFAULT_DIRTY_THRESHOLD;
+	unsigned int global_threshold = threshold * 3 / 2;
+
+	if (dents >= threshold || qdata >= threshold ||
+		nodes >= threshold || meta >= threshold ||
+		imeta >= threshold)
+		return true;
+	return dents + qdata + nodes + meta + imeta >  global_threshold;
+}
+
 void f2fs_balance_fs_bg(struct f2fs_sb_info *sbi, bool from_bg)
 {
 	if (unlikely(is_sbi_flag_set(sbi, SBI_POR_DOING)))
@@ -550,13 +569,13 @@
 	else
 		f2fs_build_free_nids(sbi, false, false);
 
-	if (excess_dirty_nats(sbi) || excess_dirty_nodes(sbi) ||
-		excess_prefree_segs(sbi))
+	if (excess_dirty_nats(sbi) || excess_dirty_threshold(sbi) ||
+		excess_prefree_segs(sbi) || !f2fs_space_for_roll_forward(sbi))
 		goto do_sync;
 
 	/* there is background inflight IO or foreground operation recently */
 	if (is_inflight_io(sbi, REQ_TIME) ||
-		(!f2fs_time_over(sbi, REQ_TIME) && rwsem_is_locked(&sbi->cp_rwsem)))
+		(!f2fs_time_over(sbi, REQ_TIME) && f2fs_rwsem_is_locked(&sbi->cp_rwsem)))
 		return;
 
 	/* exceed periodical checkpoint timeout threshold */
@@ -789,12 +808,12 @@
 		do {
 			ret = __submit_flush_wait(sbi, FDEV(i).bdev);
 			if (ret)
-				congestion_wait(BLK_RW_ASYNC,
-						DEFAULT_IO_TIMEOUT);
+				f2fs_io_schedule_timeout(DEFAULT_IO_TIMEOUT);
 		} while (ret && --count);
 
 		if (ret) {
-			f2fs_stop_checkpoint(sbi, false);
+			f2fs_stop_checkpoint(sbi, false,
+					STOP_CP_REASON_FLUSH_FAIL);
 			break;
 		}
 
@@ -1142,14 +1161,14 @@
 	dpolicy->ordered = false;
 	dpolicy->granularity = granularity;
 
-	dpolicy->max_requests = DEF_MAX_DISCARD_REQUEST;
+	dpolicy->max_requests = dcc->max_discard_request;
 	dpolicy->io_aware_gran = MAX_PLIST_NUM;
 	dpolicy->timeout = false;
 
 	if (discard_type == DPOLICY_BG) {
-		dpolicy->min_interval = DEF_MIN_DISCARD_ISSUE_TIME;
-		dpolicy->mid_interval = DEF_MID_DISCARD_ISSUE_TIME;
-		dpolicy->max_interval = DEF_MAX_DISCARD_ISSUE_TIME;
+		dpolicy->min_interval = dcc->min_discard_issue_time;
+		dpolicy->mid_interval = dcc->mid_discard_issue_time;
+		dpolicy->max_interval = dcc->max_discard_issue_time;
 		dpolicy->io_aware = true;
 		dpolicy->sync = false;
 		dpolicy->ordered = true;
@@ -1157,12 +1176,12 @@
 			dpolicy->granularity = 1;
 			if (atomic_read(&dcc->discard_cmd_cnt))
 				dpolicy->max_interval =
-					DEF_MIN_DISCARD_ISSUE_TIME;
+					dcc->min_discard_issue_time;
 		}
 	} else if (discard_type == DPOLICY_FORCE) {
-		dpolicy->min_interval = DEF_MIN_DISCARD_ISSUE_TIME;
-		dpolicy->mid_interval = DEF_MID_DISCARD_ISSUE_TIME;
-		dpolicy->max_interval = DEF_MAX_DISCARD_ISSUE_TIME;
+		dpolicy->min_interval = dcc->min_discard_issue_time;
+		dpolicy->mid_interval = dcc->mid_discard_issue_time;
+		dpolicy->max_interval = dcc->max_discard_issue_time;
 		dpolicy->io_aware = false;
 	} else if (discard_type == DPOLICY_FSTRIM) {
 		dpolicy->io_aware = false;
@@ -1767,7 +1786,7 @@
 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
 	wait_queue_head_t *q = &dcc->discard_wait_queue;
 	struct discard_policy dpolicy;
-	unsigned int wait_ms = DEF_MIN_DISCARD_ISSUE_TIME;
+	unsigned int wait_ms = dcc->min_discard_issue_time;
 	int issued;
 
 	set_freezable();
@@ -2168,6 +2187,10 @@
 	atomic_set(&dcc->discard_cmd_cnt, 0);
 	dcc->nr_discards = 0;
 	dcc->max_discards = MAIN_SEGS(sbi) << sbi->log_blocks_per_seg;
+	dcc->max_discard_request = DEF_MAX_DISCARD_REQUEST;
+	dcc->min_discard_issue_time = DEF_MIN_DISCARD_ISSUE_TIME;
+	dcc->mid_discard_issue_time = DEF_MID_DISCARD_ISSUE_TIME;
+	dcc->max_discard_issue_time = DEF_MAX_DISCARD_ISSUE_TIME;
 	dcc->undiscard_blks = 0;
 	dcc->next_pos = 0;
 	dcc->root = RB_ROOT_CACHED;
@@ -2635,6 +2658,8 @@
 	unsigned short seg_type = curseg->seg_type;
 
 	sanity_check_seg_type(sbi, seg_type);
+	if (f2fs_need_rand_seg(sbi))
+		return prandom_u32() % (MAIN_SECS(sbi) * sbi->segs_per_sec);
 
 	/* if segs_per_sec is large than 1, we need to keep original policy. */
 	if (__is_large_section(sbi))
@@ -2686,6 +2711,9 @@
 	curseg->next_segno = segno;
 	reset_curseg(sbi, type, 1);
 	curseg->alloc_type = LFS;
+	if (F2FS_OPTION(sbi).fs_mode == FS_MODE_FRAGMENT_BLK)
+		curseg->fragment_remained_chunk =
+				prandom_u32() % sbi->max_fragment_chunk + 1;
 }
 
 static int __next_free_blkoff(struct f2fs_sb_info *sbi,
@@ -2712,12 +2740,22 @@
 static void __refresh_next_blkoff(struct f2fs_sb_info *sbi,
 				struct curseg_info *seg)
 {
-	if (seg->alloc_type == SSR)
+	if (seg->alloc_type == SSR) {
 		seg->next_blkoff =
 			__next_free_blkoff(sbi, seg->segno,
 						seg->next_blkoff + 1);
-	else
+	} else {
 		seg->next_blkoff++;
+		if (F2FS_OPTION(sbi).fs_mode == FS_MODE_FRAGMENT_BLK) {
+			/* To allocate block chunks in different sizes, use random number */
+			if (--seg->fragment_remained_chunk <= 0) {
+				seg->fragment_remained_chunk =
+				   prandom_u32() % sbi->max_fragment_chunk + 1;
+				seg->next_blkoff +=
+				   prandom_u32() % sbi->max_fragment_hole + 1;
+			}
+		}
+	}
 }
 
 bool f2fs_segment_has_free_slot(struct f2fs_sb_info *sbi, int segno)
@@ -2794,7 +2832,7 @@
 	if (!sbi->am.atgc_enabled)
 		return;
 
-	down_read(&SM_I(sbi)->curseg_lock);
+	f2fs_down_read(&SM_I(sbi)->curseg_lock);
 
 	mutex_lock(&curseg->curseg_mutex);
 	down_write(&SIT_I(sbi)->sentry_lock);
@@ -2804,7 +2842,7 @@
 	up_write(&SIT_I(sbi)->sentry_lock);
 	mutex_unlock(&curseg->curseg_mutex);
 
-	up_read(&SM_I(sbi)->curseg_lock);
+	f2fs_up_read(&SM_I(sbi)->curseg_lock);
 
 }
 void f2fs_init_inmem_curseg(struct f2fs_sb_info *sbi)
@@ -2955,7 +2993,7 @@
 	struct curseg_info *curseg = CURSEG_I(sbi, type);
 	unsigned int segno;
 
-	down_read(&SM_I(sbi)->curseg_lock);
+	f2fs_down_read(&SM_I(sbi)->curseg_lock);
 	mutex_lock(&curseg->curseg_mutex);
 	down_write(&SIT_I(sbi)->sentry_lock);
 
@@ -2979,7 +3017,7 @@
 			    type, segno, curseg->segno);
 
 	mutex_unlock(&curseg->curseg_mutex);
-	up_read(&SM_I(sbi)->curseg_lock);
+	f2fs_up_read(&SM_I(sbi)->curseg_lock);
 }
 
 static void __allocate_new_segment(struct f2fs_sb_info *sbi, int type,
@@ -3011,23 +3049,23 @@
 
 void f2fs_allocate_new_section(struct f2fs_sb_info *sbi, int type, bool force)
 {
-	down_read(&SM_I(sbi)->curseg_lock);
+	f2fs_down_read(&SM_I(sbi)->curseg_lock);
 	down_write(&SIT_I(sbi)->sentry_lock);
 	__allocate_new_section(sbi, type, force);
 	up_write(&SIT_I(sbi)->sentry_lock);
-	up_read(&SM_I(sbi)->curseg_lock);
+	f2fs_up_read(&SM_I(sbi)->curseg_lock);
 }
 
 void f2fs_allocate_new_segments(struct f2fs_sb_info *sbi)
 {
 	int i;
 
-	down_read(&SM_I(sbi)->curseg_lock);
+	f2fs_down_read(&SM_I(sbi)->curseg_lock);
 	down_write(&SIT_I(sbi)->sentry_lock);
 	for (i = CURSEG_HOT_DATA; i <= CURSEG_COLD_DATA; i++)
 		__allocate_new_segment(sbi, i, false, false);
 	up_write(&SIT_I(sbi)->sentry_lock);
-	up_read(&SM_I(sbi)->curseg_lock);
+	f2fs_up_read(&SM_I(sbi)->curseg_lock);
 }
 
 static const struct segment_allocation default_salloc_ops = {
@@ -3106,7 +3144,7 @@
 			blk_finish_plug(&plug);
 			mutex_unlock(&dcc->cmd_lock);
 			trimmed += __wait_all_discard_cmd(sbi, NULL);
-			congestion_wait(BLK_RW_ASYNC, DEFAULT_IO_TIMEOUT);
+			f2fs_io_schedule_timeout(DEFAULT_IO_TIMEOUT);
 			goto next;
 		}
 skip:
@@ -3165,9 +3203,9 @@
 	if (sbi->discard_blks == 0)
 		goto out;
 
-	down_write(&sbi->gc_lock);
+	f2fs_down_write(&sbi->gc_lock);
 	err = f2fs_write_checkpoint(sbi, &cpc);
-	up_write(&sbi->gc_lock);
+	f2fs_up_write(&sbi->gc_lock);
 	if (err)
 		goto out;
 
@@ -3404,7 +3442,7 @@
 	bool from_gc = (type == CURSEG_ALL_DATA_ATGC);
 	struct seg_entry *se = NULL;
 
-	down_read(&SM_I(sbi)->curseg_lock);
+	f2fs_down_read(&SM_I(sbi)->curseg_lock);
 
 	mutex_lock(&curseg->curseg_mutex);
 	down_write(&sit_i->sentry_lock);
@@ -3487,27 +3525,33 @@
 
 	mutex_unlock(&curseg->curseg_mutex);
 
-	up_read(&SM_I(sbi)->curseg_lock);
+	f2fs_up_read(&SM_I(sbi)->curseg_lock);
 }
 
-static void update_device_state(struct f2fs_io_info *fio)
+void f2fs_update_device_state(struct f2fs_sb_info *sbi, nid_t ino,
+					block_t blkaddr, unsigned int blkcnt)
 {
-	struct f2fs_sb_info *sbi = fio->sbi;
-	unsigned int devidx;
-
 	if (!f2fs_is_multi_device(sbi))
 		return;
 
-	devidx = f2fs_target_device_index(sbi, fio->new_blkaddr);
+	while (1) {
+		unsigned int devidx = f2fs_target_device_index(sbi, blkaddr);
+		unsigned int blks = FDEV(devidx).end_blk - blkaddr + 1;
 
-	/* update device state for fsync */
-	f2fs_set_dirty_device(sbi, fio->ino, devidx, FLUSH_INO);
+		/* update device state for fsync */
+		f2fs_set_dirty_device(sbi, ino, devidx, FLUSH_INO);
 
-	/* update device state for checkpoint */
-	if (!f2fs_test_bit(devidx, (char *)&sbi->dirty_device)) {
-		spin_lock(&sbi->dev_lock);
-		f2fs_set_bit(devidx, (char *)&sbi->dirty_device);
-		spin_unlock(&sbi->dev_lock);
+		/* update device state for checkpoint */
+		if (!f2fs_test_bit(devidx, (char *)&sbi->dirty_device)) {
+			spin_lock(&sbi->dev_lock);
+			f2fs_set_bit(devidx, (char *)&sbi->dirty_device);
+			spin_unlock(&sbi->dev_lock);
+		}
+
+		if (blkcnt <= blks)
+			break;
+		blkcnt -= blks;
+		blkaddr += blks;
 	}
 }
 
@@ -3517,7 +3561,7 @@
 	bool keep_order = (f2fs_lfs_mode(fio->sbi) && type == CURSEG_COLD_DATA);
 
 	if (keep_order)
-		down_read(&fio->sbi->io_order_lock);
+		f2fs_down_read(&fio->sbi->io_order_lock);
 reallocate:
 	f2fs_allocate_data_block(fio->sbi, fio->page, fio->old_blkaddr,
 			&fio->new_blkaddr, sum, type, fio);
@@ -3534,10 +3578,10 @@
 		goto reallocate;
 	}
 
-	update_device_state(fio);
+	f2fs_update_device_state(fio->sbi, fio->ino, fio->new_blkaddr, 1);
 
 	if (keep_order)
-		up_read(&fio->sbi->io_order_lock);
+		f2fs_up_read(&fio->sbi->io_order_lock);
 }
 
 void f2fs_do_write_meta_page(struct f2fs_sb_info *sbi, struct page *page,
@@ -3616,6 +3660,10 @@
 		goto drop_bio;
 	}
 
+	if (fio->post_read)
+		invalidate_mapping_pages(META_MAPPING(sbi),
+				fio->new_blkaddr, fio->new_blkaddr);
+
 	stat_inc_inplace_blocks(fio->sbi);
 
 	if (fio->bio && !(SM_I(sbi)->ipu_policy & (1 << F2FS_IPU_NOCACHE)))
@@ -3623,7 +3671,8 @@
 	else
 		err = f2fs_submit_page_bio(fio);
 	if (!err) {
-		update_device_state(fio);
+		f2fs_update_device_state(fio->sbi, fio->ino,
+						fio->new_blkaddr, 1);
 		f2fs_update_iostat(fio->sbi, fio->io_type, F2FS_BLKSIZE);
 	}
 
@@ -3668,7 +3717,7 @@
 	se = get_seg_entry(sbi, segno);
 	type = se->type;
 
-	down_write(&SM_I(sbi)->curseg_lock);
+	f2fs_down_write(&SM_I(sbi)->curseg_lock);
 
 	if (!recover_curseg) {
 		/* for recovery flow */
@@ -3737,7 +3786,7 @@
 
 	up_write(&sit_i->sentry_lock);
 	mutex_unlock(&curseg->curseg_mutex);
-	up_write(&SM_I(sbi)->curseg_lock);
+	f2fs_up_write(&SM_I(sbi)->curseg_lock);
 }
 
 void f2fs_replace_block(struct f2fs_sb_info *sbi, struct dnode_of_data *dn,
@@ -3795,10 +3844,16 @@
 void f2fs_wait_on_block_writeback_range(struct inode *inode, block_t blkaddr,
 								block_t len)
 {
+	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
 	block_t i;
 
+	if (!f2fs_post_read_required(inode))
+		return;
+
 	for (i = 0; i < len; i++)
 		f2fs_wait_on_block_writeback(inode, blkaddr + i);
+
+	invalidate_mapping_pages(META_MAPPING(sbi), blkaddr, blkaddr + len - 1);
 }
 
 static int read_compacted_summaries(struct f2fs_sb_info *sbi)
@@ -4719,6 +4774,13 @@
 	dirty_i->victim_secmap = f2fs_kvzalloc(sbi, bitmap_size, GFP_KERNEL);
 	if (!dirty_i->victim_secmap)
 		return -ENOMEM;
+
+	dirty_i->pinned_secmap = f2fs_kvzalloc(sbi, bitmap_size, GFP_KERNEL);
+	if (!dirty_i->pinned_secmap)
+		return -ENOMEM;
+
+	dirty_i->pinned_secmap_cnt = 0;
+	dirty_i->enable_pin_section = true;
 	return 0;
 }
 
@@ -5188,7 +5250,7 @@
 
 	INIT_LIST_HEAD(&sm_info->sit_entry_set);
 
-	init_rwsem(&sm_info->curseg_lock);
+	init_f2fs_rwsem(&sm_info->curseg_lock);
 
 	if (!f2fs_readonly(sbi->sb)) {
 		err = f2fs_create_flush_cmd_control(sbi);
@@ -5243,6 +5305,7 @@
 {
 	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
 
+	kvfree(dirty_i->pinned_secmap);
 	kvfree(dirty_i->victim_secmap);
 }
 
diff --git a/fs/f2fs/segment.h b/fs/f2fs/segment.h
index 04f448d..9d3400a 100644
--- a/fs/f2fs/segment.h
+++ b/fs/f2fs/segment.h
@@ -301,6 +301,9 @@
 	struct mutex seglist_lock;		/* lock for segment bitmaps */
 	int nr_dirty[NR_DIRTY_TYPE];		/* # of dirty segments */
 	unsigned long *victim_secmap;		/* background GC victims */
+	unsigned long *pinned_secmap;		/* pinned victims from foreground GC */
+	unsigned int pinned_secmap_cnt;		/* count of victims which has pinned data */
+	bool enable_pin_section;		/* enable pinning section */
 };
 
 /* victim selection function for cleaning and SSR */
@@ -321,6 +324,7 @@
 	unsigned short next_blkoff;		/* next block offset to write */
 	unsigned int zone;			/* current zone number */
 	unsigned int next_segno;		/* preallocated segment */
+	int fragment_remained_chunk;		/* remained block size in a chunk for block fragmentation mode */
 	bool inited;				/* indicate inmem log is inited */
 };
 
@@ -665,7 +669,9 @@
  *                     pages over min_fsync_blocks. (=default option)
  * F2FS_IPU_ASYNC - do IPU given by asynchronous write requests.
  * F2FS_IPU_NOCACHE - disable IPU bio cache.
- * F2FS_IPUT_DISABLE - disable IPU. (=default option in LFS mode)
+ * F2FS_IPU_HONOR_OPU_WRITE - use OPU write prior to IPU write if inode has
+ *                            FI_OPU_WRITE flag.
+ * F2FS_IPU_DISABLE - disable IPU. (=default option in LFS mode)
  */
 #define DEF_MIN_IPU_UTIL	70
 #define DEF_MIN_FSYNC_BLOCKS	8
@@ -681,6 +687,7 @@
 	F2FS_IPU_FSYNC,
 	F2FS_IPU_ASYNC,
 	F2FS_IPU_NOCACHE,
+	F2FS_IPU_HONOR_OPU_WRITE,
 };
 
 static inline unsigned int curseg_segno(struct f2fs_sb_info *sbi,
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 5c0b2b3..5106351 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -59,6 +59,7 @@
 	[FAULT_WRITE_IO]	= "write IO error",
 	[FAULT_SLAB_ALLOC]	= "slab alloc",
 	[FAULT_DQUOT_INIT]	= "dquot initialize",
+	[FAULT_LOCK_OP]		= "lock_op",
 };
 
 void f2fs_build_fault_attr(struct f2fs_sb_info *sbi, unsigned int rate,
@@ -159,6 +160,7 @@
 	Opt_gc_merge,
 	Opt_nogc_merge,
 	Opt_discard_unit,
+	Opt_memory_mode,
 	Opt_err,
 };
 
@@ -236,6 +238,7 @@
 	{Opt_gc_merge, "gc_merge"},
 	{Opt_nogc_merge, "nogc_merge"},
 	{Opt_discard_unit, "discard_unit=%s"},
+	{Opt_memory_mode, "memory=%s"},
 	{Opt_err, NULL},
 };
 
@@ -858,6 +861,10 @@
 				F2FS_OPTION(sbi).fs_mode = FS_MODE_ADAPTIVE;
 			} else if (!strcmp(name, "lfs")) {
 				F2FS_OPTION(sbi).fs_mode = FS_MODE_LFS;
+			} else if (!strcmp(name, "fragment:segment")) {
+				F2FS_OPTION(sbi).fs_mode = FS_MODE_FRAGMENT_SEG;
+			} else if (!strcmp(name, "fragment:block")) {
+				F2FS_OPTION(sbi).fs_mode = FS_MODE_FRAGMENT_BLK;
 			} else {
 				kfree(name);
 				return -EINVAL;
@@ -1241,6 +1248,22 @@
 			}
 			kfree(name);
 			break;
+		case Opt_memory_mode:
+			name = match_strdup(&args[0]);
+			if (!name)
+				return -ENOMEM;
+			if (!strcmp(name, "normal")) {
+				F2FS_OPTION(sbi).memory_mode =
+						MEMORY_MODE_NORMAL;
+			} else if (!strcmp(name, "low")) {
+				F2FS_OPTION(sbi).memory_mode =
+						MEMORY_MODE_LOW;
+			} else {
+				kfree(name);
+				return -EINVAL;
+			}
+			kfree(name);
+			break;
 		default:
 			f2fs_err(sbi, "Unrecognized mount option \"%s\" or missing value",
 				 p);
@@ -1357,16 +1380,16 @@
 	/* Initialize f2fs-specific inode info */
 	atomic_set(&fi->dirty_pages, 0);
 	atomic_set(&fi->i_compr_blocks, 0);
-	init_rwsem(&fi->i_sem);
+	init_f2fs_rwsem(&fi->i_sem);
 	spin_lock_init(&fi->i_size_lock);
 	INIT_LIST_HEAD(&fi->dirty_list);
 	INIT_LIST_HEAD(&fi->gdirty_list);
 	INIT_LIST_HEAD(&fi->inmem_ilist);
 	INIT_LIST_HEAD(&fi->inmem_pages);
 	mutex_init(&fi->inmem_lock);
-	init_rwsem(&fi->i_gc_rwsem[READ]);
-	init_rwsem(&fi->i_gc_rwsem[WRITE]);
-	init_rwsem(&fi->i_xattr_sem);
+	init_f2fs_rwsem(&fi->i_gc_rwsem[READ]);
+	init_f2fs_rwsem(&fi->i_gc_rwsem[WRITE]);
+	init_f2fs_rwsem(&fi->i_xattr_sem);
 
 	/* Will be used by directory only */
 	fi->i_dir_level = F2FS_SB(sb)->dir_level;
@@ -1503,8 +1526,9 @@
 
 static void destroy_percpu_info(struct f2fs_sb_info *sbi)
 {
-	percpu_counter_destroy(&sbi->alloc_valid_block_count);
 	percpu_counter_destroy(&sbi->total_valid_inode_count);
+	percpu_counter_destroy(&sbi->rf_node_block_count);
+	percpu_counter_destroy(&sbi->alloc_valid_block_count);
 }
 
 static void destroy_device_list(struct f2fs_sb_info *sbi)
@@ -1939,6 +1963,10 @@
 		seq_puts(seq, "adaptive");
 	else if (F2FS_OPTION(sbi).fs_mode == FS_MODE_LFS)
 		seq_puts(seq, "lfs");
+	else if (F2FS_OPTION(sbi).fs_mode == FS_MODE_FRAGMENT_SEG)
+		seq_puts(seq, "fragment:segment");
+	else if (F2FS_OPTION(sbi).fs_mode == FS_MODE_FRAGMENT_BLK)
+		seq_puts(seq, "fragment:block");
 	seq_printf(seq, ",active_logs=%u", F2FS_OPTION(sbi).active_logs);
 	if (test_opt(sbi, RESERVE_ROOT))
 		seq_printf(seq, ",reserve_root=%u,resuid=%u,resgid=%u",
@@ -2012,6 +2040,11 @@
 	else if (F2FS_OPTION(sbi).discard_unit == DISCARD_UNIT_SECTION)
 		seq_printf(seq, ",discard_unit=%s", "section");
 
+	if (F2FS_OPTION(sbi).memory_mode == MEMORY_MODE_NORMAL)
+		seq_printf(seq, ",memory=%s", "normal");
+	else if (F2FS_OPTION(sbi).memory_mode == MEMORY_MODE_LOW)
+		seq_printf(seq, ",memory=%s", "low");
+
 	return 0;
 }
 
@@ -2034,6 +2067,7 @@
 	F2FS_OPTION(sbi).compress_ext_cnt = 0;
 	F2FS_OPTION(sbi).compress_mode = COMPR_MODE_FS;
 	F2FS_OPTION(sbi).bggc_mode = BGGC_MODE_ON;
+	F2FS_OPTION(sbi).memory_mode = MEMORY_MODE_NORMAL;
 
 	sbi->sb->s_flags &= ~SB_INLINECRYPT;
 
@@ -2075,6 +2109,7 @@
 {
 	unsigned int s_flags = sbi->sb->s_flags;
 	struct cp_control cpc;
+	unsigned int gc_mode = sbi->gc_mode;
 	int err = 0;
 	int ret;
 	block_t unusable;
@@ -2085,10 +2120,17 @@
 	}
 	sbi->sb->s_flags |= SB_ACTIVE;
 
+	/* check if we need more GC first */
+	unusable = f2fs_get_unusable_blocks(sbi);
+	if (!f2fs_disable_cp_again(sbi, unusable))
+		goto skip_gc;
+
 	f2fs_update_time(sbi, DISABLE_TIME);
 
+	sbi->gc_mode = GC_URGENT_HIGH;
+
 	while (!f2fs_time_over(sbi, DISABLE_TIME)) {
-		down_write(&sbi->gc_lock);
+		f2fs_down_write(&sbi->gc_lock);
 		err = f2fs_gc(sbi, true, false, false, NULL_SEGNO);
 		if (err == -ENODATA) {
 			err = 0;
@@ -2110,7 +2152,8 @@
 		goto restore_flag;
 	}
 
-	down_write(&sbi->gc_lock);
+skip_gc:
+	f2fs_down_write(&sbi->gc_lock);
 	cpc.reason = CP_PAUSE;
 	set_sbi_flag(sbi, SBI_CP_DISABLED);
 	err = f2fs_write_checkpoint(sbi, &cpc);
@@ -2122,8 +2165,9 @@
 	spin_unlock(&sbi->stat_lock);
 
 out_unlock:
-	up_write(&sbi->gc_lock);
+	f2fs_up_write(&sbi->gc_lock);
 restore_flag:
+	sbi->gc_mode = gc_mode;
 	sbi->sb->s_flags = s_flags;	/* Restore SB_RDONLY status */
 	return err;
 }
@@ -2135,19 +2179,18 @@
 	/* we should flush all the data to keep data consistency */
 	do {
 		sync_inodes_sb(sbi->sb);
-		cond_resched();
-		congestion_wait(BLK_RW_ASYNC, DEFAULT_IO_TIMEOUT);
+		f2fs_io_schedule_timeout(DEFAULT_IO_TIMEOUT);
 	} while (get_pages(sbi, F2FS_DIRTY_DATA) && retry--);
 
 	if (unlikely(retry < 0))
 		f2fs_warn(sbi, "checkpoint=enable has some unwritten data.");
 
-	down_write(&sbi->gc_lock);
+	f2fs_down_write(&sbi->gc_lock);
 	f2fs_dirty_to_prefree(sbi);
 
 	clear_sbi_flag(sbi, SBI_CP_DISABLED);
 	set_sbi_flag(sbi, SBI_IS_DIRTY);
-	up_write(&sbi->gc_lock);
+	f2fs_up_write(&sbi->gc_lock);
 
 	f2fs_sync_fs(sbi->sb, 1);
 
@@ -2507,8 +2550,7 @@
 							&page, &fsdata);
 		if (unlikely(err)) {
 			if (err == -ENOMEM) {
-				congestion_wait(BLK_RW_ASYNC,
-						DEFAULT_IO_TIMEOUT);
+				f2fs_io_schedule_timeout(DEFAULT_IO_TIMEOUT);
 				goto retry;
 			}
 			set_sbi_flag(F2FS_SB(sb), SBI_QUOTA_NEED_REPAIR);
@@ -2708,18 +2750,18 @@
 		/*
 		 * do_quotactl
 		 *  f2fs_quota_sync
-		 *  down_read(quota_sem)
+		 *  f2fs_down_read(quota_sem)
 		 *  dquot_writeback_dquots()
 		 *  f2fs_dquot_commit
 		 *			      block_operation
-		 *			      down_read(quota_sem)
+		 *			      f2fs_down_read(quota_sem)
 		 */
 		f2fs_lock_op(sbi);
-		down_read(&sbi->quota_sem);
+		f2fs_down_read(&sbi->quota_sem);
 
 		ret = f2fs_quota_sync_file(sbi, cnt);
 
-		up_read(&sbi->quota_sem);
+		f2fs_up_read(&sbi->quota_sem);
 		f2fs_unlock_op(sbi);
 
 		if (!f2fs_sb_has_quota_ino(sbi))
@@ -2845,11 +2887,11 @@
 	struct f2fs_sb_info *sbi = F2FS_SB(dquot->dq_sb);
 	int ret;
 
-	down_read_nested(&sbi->quota_sem, SINGLE_DEPTH_NESTING);
+	f2fs_down_read_nested(&sbi->quota_sem, SINGLE_DEPTH_NESTING);
 	ret = dquot_commit(dquot);
 	if (ret < 0)
 		set_sbi_flag(sbi, SBI_QUOTA_NEED_REPAIR);
-	up_read(&sbi->quota_sem);
+	f2fs_up_read(&sbi->quota_sem);
 	return ret;
 }
 
@@ -2858,11 +2900,11 @@
 	struct f2fs_sb_info *sbi = F2FS_SB(dquot->dq_sb);
 	int ret;
 
-	down_read(&sbi->quota_sem);
+	f2fs_down_read(&sbi->quota_sem);
 	ret = dquot_acquire(dquot);
 	if (ret < 0)
 		set_sbi_flag(sbi, SBI_QUOTA_NEED_REPAIR);
-	up_read(&sbi->quota_sem);
+	f2fs_up_read(&sbi->quota_sem);
 	return ret;
 }
 
@@ -3035,7 +3077,6 @@
 	.set_context		= f2fs_set_context,
 	.get_dummy_policy	= f2fs_get_dummy_policy,
 	.empty_dir		= f2fs_empty_dir,
-	.max_namelen		= F2FS_NAME_LEN,
 	.has_stable_inodes	= f2fs_has_stable_inodes,
 	.get_ino_and_lblk_bits	= f2fs_get_ino_and_lblk_bits,
 	.get_num_devices	= f2fs_get_num_devices,
@@ -3577,11 +3618,15 @@
 	F2FS_NODE_INO(sbi) = le32_to_cpu(raw_super->node_ino);
 	F2FS_META_INO(sbi) = le32_to_cpu(raw_super->meta_ino);
 	sbi->cur_victim_sec = NULL_SECNO;
+	sbi->gc_mode = GC_NORMAL;
 	sbi->next_victim_seg[BG_GC] = NULL_SEGNO;
 	sbi->next_victim_seg[FG_GC] = NULL_SEGNO;
 	sbi->max_victim_search = DEF_MAX_VICTIM_SEARCH;
 	sbi->migration_granularity = sbi->segs_per_sec;
 	sbi->seq_file_ra_mul = MIN_RA_MUL;
+	sbi->max_fragment_chunk = DEF_FRAGMENT_SIZE;
+	sbi->max_fragment_hole = DEF_FRAGMENT_SIZE;
+	spin_lock_init(&sbi->gc_urgent_high_lock);
 
 	sbi->dir_level = DEF_DIR_LEVEL;
 	sbi->interval_time[CP_TIME] = DEF_CP_INTERVAL;
@@ -3601,14 +3646,14 @@
 
 	INIT_LIST_HEAD(&sbi->s_list);
 	mutex_init(&sbi->umount_mutex);
-	init_rwsem(&sbi->io_order_lock);
+	init_f2fs_rwsem(&sbi->io_order_lock);
 	spin_lock_init(&sbi->cp_lock);
 
 	sbi->dirty_device = 0;
 	spin_lock_init(&sbi->dev_lock);
 
-	init_rwsem(&sbi->sb_lock);
-	init_rwsem(&sbi->pin_sem);
+	init_f2fs_rwsem(&sbi->sb_lock);
+	init_f2fs_rwsem(&sbi->pin_sem);
 }
 
 static int init_percpu_info(struct f2fs_sb_info *sbi)
@@ -3619,11 +3664,20 @@
 	if (err)
 		return err;
 
+	err = percpu_counter_init(&sbi->rf_node_block_count, 0, GFP_KERNEL);
+	if (err)
+		goto err_valid_block;
+
 	err = percpu_counter_init(&sbi->total_valid_inode_count, 0,
 								GFP_KERNEL);
 	if (err)
-		percpu_counter_destroy(&sbi->alloc_valid_block_count);
+		goto err_node_block;
+	return 0;
 
+err_node_block:
+	percpu_counter_destroy(&sbi->rf_node_block_count);
+err_valid_block:
+	percpu_counter_destroy(&sbi->alloc_valid_block_count);
 	return err;
 }
 
@@ -3794,10 +3848,31 @@
 	return err;
 }
 
+void f2fs_handle_stop(struct f2fs_sb_info *sbi, unsigned char reason)
+{
+	struct f2fs_super_block *raw_super = F2FS_RAW_SUPER(sbi);
+	int err;
+
+	f2fs_bug_on(sbi, reason >= MAX_STOP_REASON);
+
+	f2fs_down_write(&sbi->sb_lock);
+
+	if (raw_super->s_stop_reason[reason] < ((1 << BITS_PER_BYTE) - 1))
+		raw_super->s_stop_reason[reason]++;
+
+	err = f2fs_commit_super(sbi, false);
+	if (err)
+		f2fs_err(sbi, "f2fs_commit_super fails to record reason:%u err:%d",
+								reason, err);
+
+	f2fs_up_write(&sbi->sb_lock);
+}
+
 static int f2fs_scan_devices(struct f2fs_sb_info *sbi)
 {
 	struct f2fs_super_block *raw_super = F2FS_RAW_SUPER(sbi);
 	unsigned int max_devices = MAX_DEVICES;
+	unsigned int logical_blksize;
 	int i;
 
 	/* Initialize single device information */
@@ -3818,6 +3893,9 @@
 	if (!sbi->devs)
 		return -ENOMEM;
 
+	logical_blksize = bdev_logical_block_size(sbi->sb->s_bdev);
+	sbi->aligned_blksize = true;
+
 	for (i = 0; i < max_devices; i++) {
 
 		if (i > 0 && !RDEV(i).path[0])
@@ -3854,6 +3932,9 @@
 		/* to release errored devices */
 		sbi->s_ndevs = i + 1;
 
+		if (logical_blksize != bdev_logical_block_size(FDEV(i).bdev))
+			sbi->aligned_blksize = false;
+
 #ifdef CONFIG_BLK_DEV_ZONED
 		if (bdev_zoned_model(FDEV(i).bdev) == BLK_ZONED_HM &&
 				!f2fs_sb_has_blkzoned(sbi)) {
@@ -3935,7 +4016,8 @@
 		F2FS_OPTION(sbi).alloc_mode = ALLOC_MODE_REUSE;
 		if (f2fs_block_unit_discard(sbi))
 			sm_i->dcc_info->discard_granularity = 1;
-		sm_i->ipu_policy = 1 << F2FS_IPU_FORCE;
+		sm_i->ipu_policy = 1 << F2FS_IPU_FORCE |
+					1 << F2FS_IPU_HONOR_OPU_WRITE;
 	}
 
 	sbi->readdir_ra = 1;
@@ -4045,11 +4127,11 @@
 
 	/* init f2fs-specific super block info */
 	sbi->valid_super_block = valid_super_block;
-	init_rwsem(&sbi->gc_lock);
+	init_f2fs_rwsem(&sbi->gc_lock);
 	mutex_init(&sbi->writepages);
-	init_rwsem(&sbi->cp_global_sem);
-	init_rwsem(&sbi->node_write);
-	init_rwsem(&sbi->node_change);
+	init_f2fs_rwsem(&sbi->cp_global_sem);
+	init_f2fs_rwsem(&sbi->node_write);
+	init_f2fs_rwsem(&sbi->node_change);
 
 	/* disallow all the data/node/meta page writes */
 	set_sbi_flag(sbi, SBI_POR_DOING);
@@ -4070,18 +4152,18 @@
 		}
 
 		for (j = HOT; j < n; j++) {
-			init_rwsem(&sbi->write_io[i][j].io_rwsem);
+			init_f2fs_rwsem(&sbi->write_io[i][j].io_rwsem);
 			sbi->write_io[i][j].sbi = sbi;
 			sbi->write_io[i][j].bio = NULL;
 			spin_lock_init(&sbi->write_io[i][j].io_lock);
 			INIT_LIST_HEAD(&sbi->write_io[i][j].io_list);
 			INIT_LIST_HEAD(&sbi->write_io[i][j].bio_list);
-			init_rwsem(&sbi->write_io[i][j].bio_list_lock);
+			init_f2fs_rwsem(&sbi->write_io[i][j].bio_list_lock);
 		}
 	}
 
-	init_rwsem(&sbi->cp_rwsem);
-	init_rwsem(&sbi->quota_sem);
+	init_f2fs_rwsem(&sbi->cp_rwsem);
+	init_f2fs_rwsem(&sbi->quota_sem);
 	init_waitqueue_head(&sbi->cp_wait);
 	init_sb_info(sbi);
 
@@ -4506,7 +4588,7 @@
 	.name		= "f2fs",
 	.mount		= f2fs_mount,
 	.kill_sb	= kill_f2fs_super,
-	.fs_flags	= FS_REQUIRES_DEV,
+	.fs_flags	= FS_REQUIRES_DEV | FS_ALLOW_IDMAP,
 };
 MODULE_ALIAS_FS("f2fs");
 
@@ -4658,5 +4740,6 @@
 MODULE_AUTHOR("Samsung Electronics's Praesto Team");
 MODULE_DESCRIPTION("Flash Friendly File System");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 MODULE_SOFTDEP("pre: crc32");
 
diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c
index 63af157..ca187e4 100644
--- a/fs/f2fs/sysfs.c
+++ b/fs/f2fs/sysfs.c
@@ -41,6 +41,16 @@
 	ATGC_INFO,	/* struct atgc_management */
 };
 
+static const char *gc_mode_names[MAX_GC_MODE] = {
+	"GC_NORMAL",
+	"GC_IDLE_CB",
+	"GC_IDLE_GREEDY",
+	"GC_IDLE_AT",
+	"GC_URGENT_HIGH",
+	"GC_URGENT_LOW",
+	"GC_URGENT_MID"
+};
+
 struct f2fs_attr {
 	struct attribute attr;
 	ssize_t (*show)(struct f2fs_attr *, struct f2fs_sb_info *, char *);
@@ -118,6 +128,15 @@
 	return sprintf(buf, "%lx\n", sbi->s_flag);
 }
 
+static ssize_t pending_discard_show(struct f2fs_attr *a,
+		struct f2fs_sb_info *sbi, char *buf)
+{
+	if (!SM_I(sbi)->dcc_info)
+		return -EINVAL;
+	return sprintf(buf, "%llu\n", (unsigned long long)atomic_read(
+				&SM_I(sbi)->dcc_info->discard_cmd_cnt));
+}
+
 static ssize_t features_show(struct f2fs_attr *a,
 		struct f2fs_sb_info *sbi, char *buf)
 {
@@ -196,7 +215,7 @@
 	struct super_block *sb = sbi->sb;
 
 	if (f2fs_sb_has_casefold(sbi))
-		return snprintf(buf, PAGE_SIZE, "%s (%d.%d.%d)\n",
+		return sysfs_emit(buf, "%s (%d.%d.%d)\n",
 			sb->s_encoding->charset,
 			(sb->s_encoding->version >> 16) & 0xff,
 			(sb->s_encoding->version >> 8) & 0xff,
@@ -245,7 +264,7 @@
 static ssize_t main_blkaddr_show(struct f2fs_attr *a,
 				struct f2fs_sb_info *sbi, char *buf)
 {
-	return snprintf(buf, PAGE_SIZE, "%llu\n",
+	return sysfs_emit(buf, "%llu\n",
 			(unsigned long long)MAIN_BLKADDR(sbi));
 }
 
@@ -308,8 +327,13 @@
 		return sysfs_emit(buf, "%u\n", sbi->compr_new_inode);
 #endif
 
+	if (!strcmp(a->attr.name, "gc_urgent"))
+		return sysfs_emit(buf, "%s\n",
+				gc_mode_names[sbi->gc_mode]);
+
 	if (!strcmp(a->attr.name, "gc_segment_mode"))
-		return sysfs_emit(buf, "%u\n", sbi->gc_segment_mode);
+		return sysfs_emit(buf, "%s\n",
+				gc_mode_names[sbi->gc_segment_mode]);
 
 	if (!strcmp(a->attr.name, "gc_reclaimed_segments")) {
 		return sysfs_emit(buf, "%u\n",
@@ -355,7 +379,7 @@
 		if (!strlen(name) || strlen(name) >= F2FS_EXTENSION_LEN)
 			return -EINVAL;
 
-		down_write(&sbi->sb_lock);
+		f2fs_down_write(&sbi->sb_lock);
 
 		ret = f2fs_update_extension_list(sbi, name, hot, set);
 		if (ret)
@@ -365,7 +389,7 @@
 		if (ret)
 			f2fs_update_extension_list(sbi, name, hot, !set);
 out:
-		up_write(&sbi->sb_lock);
+		f2fs_up_write(&sbi->sb_lock);
 		return ret ? ret : count;
 	}
 
@@ -460,6 +484,13 @@
 			}
 		} else if (t == 2) {
 			sbi->gc_mode = GC_URGENT_LOW;
+		} else if (t == 3) {
+			sbi->gc_mode = GC_URGENT_MID;
+			if (sbi->gc_thread) {
+				sbi->gc_thread->gc_wake = 1;
+				wake_up_interruptible_all(
+					&sbi->gc_thread->gc_wait_queue_head);
+			}
 		} else {
 			return -EINVAL;
 		}
@@ -480,6 +511,14 @@
 		return count;
 	}
 
+	if (!strcmp(a->attr.name, "gc_urgent_high_remaining")) {
+		spin_lock(&sbi->gc_urgent_high_lock);
+		sbi->gc_urgent_high_remaining = t;
+		spin_unlock(&sbi->gc_urgent_high_lock);
+
+		return count;
+	}
+
 #ifdef CONFIG_F2FS_IOSTAT
 	if (!strcmp(a->attr.name, "iostat_enable")) {
 		sbi->iostat_enable = !!t;
@@ -553,6 +592,22 @@
 		return count;
 	}
 
+	if (!strcmp(a->attr.name, "max_fragment_chunk")) {
+		if (t >= MIN_FRAGMENT_SIZE && t <= MAX_FRAGMENT_SIZE)
+			sbi->max_fragment_chunk = t;
+		else
+			return -EINVAL;
+		return count;
+	}
+
+	if (!strcmp(a->attr.name, "max_fragment_hole")) {
+		if (t >= MIN_FRAGMENT_SIZE && t <= MAX_FRAGMENT_SIZE)
+			sbi->max_fragment_hole = t;
+		else
+			return -EINVAL;
+		return count;
+	}
+
 	*ui = (unsigned int)t;
 
 	return count;
@@ -683,6 +738,10 @@
 F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, gc_urgent, gc_mode);
 F2FS_RW_ATTR(SM_INFO, f2fs_sm_info, reclaim_segments, rec_prefree_segments);
 F2FS_RW_ATTR(DCC_INFO, discard_cmd_control, max_small_discards, max_discards);
+F2FS_RW_ATTR(DCC_INFO, discard_cmd_control, max_discard_request, max_discard_request);
+F2FS_RW_ATTR(DCC_INFO, discard_cmd_control, min_discard_issue_time, min_discard_issue_time);
+F2FS_RW_ATTR(DCC_INFO, discard_cmd_control, mid_discard_issue_time, mid_discard_issue_time);
+F2FS_RW_ATTR(DCC_INFO, discard_cmd_control, max_discard_issue_time, max_discard_issue_time);
 F2FS_RW_ATTR(DCC_INFO, discard_cmd_control, discard_granularity, discard_granularity);
 F2FS_RW_ATTR(RESERVED_BLOCKS, f2fs_sb_info, reserved_blocks, reserved_blocks);
 F2FS_RW_ATTR(SM_INFO, f2fs_sm_info, batched_trim_sections, trim_sections);
@@ -695,6 +754,7 @@
 F2FS_RW_ATTR(NM_INFO, f2fs_nm_info, ram_thresh, ram_thresh);
 F2FS_RW_ATTR(NM_INFO, f2fs_nm_info, ra_nid_pages, ra_nid_pages);
 F2FS_RW_ATTR(NM_INFO, f2fs_nm_info, dirty_nats_ratio, dirty_nats_ratio);
+F2FS_RW_ATTR(NM_INFO, f2fs_nm_info, max_roll_forward_node_blocks, max_rf_node_blocks);
 F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, max_victim_search, max_victim_search);
 F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, migration_granularity, migration_granularity);
 F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, dir_level, dir_level);
@@ -719,6 +779,7 @@
 #endif
 F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, data_io_flag, data_io_flag);
 F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, node_io_flag, node_io_flag);
+F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, gc_urgent_high_remaining, gc_urgent_high_remaining);
 F2FS_RW_ATTR(CPRC_INFO, ckpt_req_control, ckpt_thread_ioprio, ckpt_thread_ioprio);
 F2FS_GENERAL_RO_ATTR(dirty_segments);
 F2FS_GENERAL_RO_ATTR(free_segments);
@@ -730,6 +791,7 @@
 F2FS_GENERAL_RO_ATTR(encoding);
 F2FS_GENERAL_RO_ATTR(mounted_time_sec);
 F2FS_GENERAL_RO_ATTR(main_blkaddr);
+F2FS_GENERAL_RO_ATTR(pending_discard);
 #ifdef CONFIG_F2FS_STAT_FS
 F2FS_STAT_ATTR(STAT_INFO, f2fs_stat_info, cp_foreground_calls, cp_count);
 F2FS_STAT_ATTR(STAT_INFO, f2fs_stat_info, cp_background_calls, bg_cp_count);
@@ -783,6 +845,8 @@
 F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, seq_file_ra_mul, seq_file_ra_mul);
 F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, gc_segment_mode, gc_segment_mode);
 F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, gc_reclaimed_segments, gc_reclaimed_segs);
+F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, max_fragment_chunk, max_fragment_chunk);
+F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, max_fragment_hole, max_fragment_hole);
 
 #define ATTR_LIST(name) (&f2fs_attr_##name.attr)
 static struct attribute *f2fs_attrs[] = {
@@ -795,7 +859,12 @@
 	ATTR_LIST(reclaim_segments),
 	ATTR_LIST(main_blkaddr),
 	ATTR_LIST(max_small_discards),
+	ATTR_LIST(max_discard_request),
+	ATTR_LIST(min_discard_issue_time),
+	ATTR_LIST(mid_discard_issue_time),
+	ATTR_LIST(max_discard_issue_time),
 	ATTR_LIST(discard_granularity),
+	ATTR_LIST(pending_discard),
 	ATTR_LIST(batched_trim_sections),
 	ATTR_LIST(ipu_policy),
 	ATTR_LIST(min_ipu_util),
@@ -809,6 +878,7 @@
 	ATTR_LIST(ram_thresh),
 	ATTR_LIST(ra_nid_pages),
 	ATTR_LIST(dirty_nats_ratio),
+	ATTR_LIST(max_roll_forward_node_blocks),
 	ATTR_LIST(cp_interval),
 	ATTR_LIST(idle_interval),
 	ATTR_LIST(discard_idle_interval),
@@ -828,6 +898,7 @@
 #endif
 	ATTR_LIST(data_io_flag),
 	ATTR_LIST(node_io_flag),
+	ATTR_LIST(gc_urgent_high_remaining),
 	ATTR_LIST(ckpt_thread_ioprio),
 	ATTR_LIST(dirty_segments),
 	ATTR_LIST(free_segments),
@@ -861,6 +932,8 @@
 	ATTR_LIST(seq_file_ra_mul),
 	ATTR_LIST(gc_segment_mode),
 	ATTR_LIST(gc_reclaimed_segments),
+	ATTR_LIST(max_fragment_chunk),
+	ATTR_LIST(max_fragment_hole),
 	NULL,
 };
 ATTRIBUTE_GROUPS(f2fs);
diff --git a/fs/f2fs/verity.c b/fs/f2fs/verity.c
index d5a50e7..23d23cc 100644
--- a/fs/f2fs/verity.c
+++ b/fs/f2fs/verity.c
@@ -202,7 +202,7 @@
 	 * from re-instantiating cached pages we are truncating (since unlike
 	 * normal file accesses, garbage collection isn't limited by i_size).
 	 */
-	down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+	f2fs_down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 	truncate_inode_pages(inode->i_mapping, inode->i_size);
 	err2 = f2fs_truncate(inode);
 	if (err2) {
@@ -210,7 +210,7 @@
 			 err2);
 		set_sbi_flag(sbi, SBI_NEED_FSCK);
 	}
-	up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
+	f2fs_up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
 	clear_inode_flag(inode, FI_VERITY_IN_PROGRESS);
 	return err ?: err2;
 }
diff --git a/fs/f2fs/xattr.c b/fs/f2fs/xattr.c
index 797ac50..c76c150 100644
--- a/fs/f2fs/xattr.c
+++ b/fs/f2fs/xattr.c
@@ -226,15 +226,18 @@
 }
 
 static struct f2fs_xattr_entry *__find_xattr(void *base_addr,
-				void *last_base_addr, int index,
-				size_t len, const char *name)
+				void *last_base_addr, void **last_addr,
+				int index, size_t len, const char *name)
 {
 	struct f2fs_xattr_entry *entry;
 
 	list_for_each_xattr(entry, base_addr) {
 		if ((void *)(entry) + sizeof(__u32) > last_base_addr ||
-			(void *)XATTR_NEXT_ENTRY(entry) > last_base_addr)
+			(void *)XATTR_NEXT_ENTRY(entry) > last_base_addr) {
+			if (last_addr)
+				*last_addr = entry;
 			return NULL;
+		}
 
 		if (entry->e_name_index != index)
 			continue;
@@ -254,19 +257,9 @@
 	unsigned int inline_size = inline_xattr_size(inode);
 	void *max_addr = base_addr + inline_size;
 
-	list_for_each_xattr(entry, base_addr) {
-		if ((void *)entry + sizeof(__u32) > max_addr ||
-			(void *)XATTR_NEXT_ENTRY(entry) > max_addr) {
-			*last_addr = entry;
-			return NULL;
-		}
-		if (entry->e_name_index != index)
-			continue;
-		if (entry->e_name_len != len)
-			continue;
-		if (!memcmp(entry->e_name, name, len))
-			break;
-	}
+	entry = __find_xattr(base_addr, max_addr, last_addr, index, len, name);
+	if (!entry)
+		return NULL;
 
 	/* inline xattr header or entry across max inline xattr size */
 	if (IS_XATTR_LAST_ENTRY(entry) &&
@@ -368,7 +361,7 @@
 	else
 		cur_addr = txattr_addr;
 
-	*xe = __find_xattr(cur_addr, last_txattr_addr, index, len, name);
+	*xe = __find_xattr(cur_addr, last_txattr_addr, NULL, index, len, name);
 	if (!*xe) {
 		f2fs_err(F2FS_I_SB(inode), "inode (%lu) has corrupted xattr",
 								inode->i_ino);
@@ -532,10 +525,10 @@
 	if (len > F2FS_NAME_LEN)
 		return -ERANGE;
 
-	down_read(&F2FS_I(inode)->i_xattr_sem);
+	f2fs_down_read(&F2FS_I(inode)->i_xattr_sem);
 	error = lookup_all_xattrs(inode, ipage, index, len, name,
 				&entry, &base_addr, &base_size, &is_inline);
-	up_read(&F2FS_I(inode)->i_xattr_sem);
+	f2fs_up_read(&F2FS_I(inode)->i_xattr_sem);
 	if (error)
 		return error;
 
@@ -569,9 +562,9 @@
 	int error;
 	size_t rest = buffer_size;
 
-	down_read(&F2FS_I(inode)->i_xattr_sem);
+	f2fs_down_read(&F2FS_I(inode)->i_xattr_sem);
 	error = read_all_xattrs(inode, NULL, &base_addr);
-	up_read(&F2FS_I(inode)->i_xattr_sem);
+	f2fs_up_read(&F2FS_I(inode)->i_xattr_sem);
 	if (error)
 		return error;
 
@@ -659,7 +652,7 @@
 	last_base_addr = (void *)base_addr + XATTR_SIZE(inode);
 
 	/* find entry with wanted name. */
-	here = __find_xattr(base_addr, last_base_addr, index, len, name);
+	here = __find_xattr(base_addr, last_base_addr, NULL, index, len, name);
 	if (!here) {
 		f2fs_err(F2FS_I_SB(inode), "inode (%lu) has corrupted xattr",
 								inode->i_ino);
@@ -793,9 +786,9 @@
 	f2fs_balance_fs(sbi, true);
 
 	f2fs_lock_op(sbi);
-	down_write(&F2FS_I(inode)->i_xattr_sem);
+	f2fs_down_write(&F2FS_I(inode)->i_xattr_sem);
 	err = __f2fs_setxattr(inode, index, name, value, size, ipage, flags);
-	up_write(&F2FS_I(inode)->i_xattr_sem);
+	f2fs_up_write(&F2FS_I(inode)->i_xattr_sem);
 	f2fs_unlock_op(sbi);
 
 	f2fs_update_time(sbi, REQ_TIME);
diff --git a/fs/fat/inode.c b/fs/fat/inode.c
index de0c9b0..f5b1f59 100644
--- a/fs/fat/inode.c
+++ b/fs/fat/inode.c
@@ -1980,3 +1980,4 @@
 module_exit(exit_fat_fs)
 
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/fat/namei_msdos.c b/fs/fat/namei_msdos.c
index efba301..c2e7e0c 100644
--- a/fs/fat/namei_msdos.c
+++ b/fs/fat/namei_msdos.c
@@ -682,6 +682,7 @@
 }
 
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 MODULE_AUTHOR("Werner Almesberger");
 MODULE_DESCRIPTION("MS-DOS filesystem support");
 
diff --git a/fs/fat/namei_vfat.c b/fs/fat/namei_vfat.c
index 5369d82..2ec184e 100644
--- a/fs/fat/namei_vfat.c
+++ b/fs/fat/namei_vfat.c
@@ -1078,6 +1078,7 @@
 }
 
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 MODULE_DESCRIPTION("VFAT filesystem support");
 MODULE_AUTHOR("Gordon Chaffee");
 
diff --git a/fs/file.c b/fs/file.c
index 69a51d3..68c172d 100644
--- a/fs/file.c
+++ b/fs/file.c
@@ -671,7 +671,7 @@
 
 	return filp_close(file, files);
 }
-EXPORT_SYMBOL(close_fd); /* for ksys_close() */
+EXPORT_SYMBOL_NS(close_fd, ANDROID_GKI_VFS_EXPORT_ONLY); /* for ksys_close() */
 
 /**
  * last_fd - return last valid index into fd table
diff --git a/fs/freevxfs/vxfs_super.c b/fs/freevxfs/vxfs_super.c
index 578a506..88fe3f4 100644
--- a/fs/freevxfs/vxfs_super.c
+++ b/fs/freevxfs/vxfs_super.c
@@ -52,6 +52,7 @@
 MODULE_AUTHOR("Christoph Hellwig, Krzysztof Blaszkowski");
 MODULE_DESCRIPTION("Veritas Filesystem (VxFS) driver");
 MODULE_LICENSE("Dual BSD/GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 
 static struct kmem_cache *vxfs_inode_cachep;
 
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index c76537a..5678604 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -2544,7 +2544,7 @@
 		spin_unlock(&wb->list_lock);
 	spin_unlock(&inode->i_lock);
 }
-EXPORT_SYMBOL(__mark_inode_dirty);
+EXPORT_SYMBOL_NS(__mark_inode_dirty, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * The @s_sync_lock is used to serialise concurrent sync operations
@@ -2710,7 +2710,7 @@
 	__writeback_inodes_sb_nr(sb, get_nr_dirty_pages(), reason, true);
 	up_read(&sb->s_umount);
 }
-EXPORT_SYMBOL(try_to_writeback_inodes_sb);
+EXPORT_SYMBOL_NS(try_to_writeback_inodes_sb, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * sync_inodes_sb	-	sync sb inode pages
@@ -2777,7 +2777,7 @@
 	might_sleep();
 	return writeback_single_inode(inode, &wbc);
 }
-EXPORT_SYMBOL(write_inode_now);
+EXPORT_SYMBOL_NS(write_inode_now, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * sync_inode_metadata - write an inode to disk
@@ -2797,4 +2797,4 @@
 
 	return writeback_single_inode(inode, &wbc);
 }
-EXPORT_SYMBOL(sync_inode_metadata);
+EXPORT_SYMBOL_NS(sync_inode_metadata, ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/fs_types.c b/fs/fs_types.c
index 78365e5..a11a1d8 100644
--- a/fs/fs_types.c
+++ b/fs/fs_types.c
@@ -41,7 +41,7 @@
 
 	return fs_dtype_by_ftype[filetype];
 }
-EXPORT_SYMBOL_GPL(fs_ftype_to_dtype);
+EXPORT_SYMBOL_NS_GPL(fs_ftype_to_dtype, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * dirent file type to fs on-disk file type conversion
diff --git a/fs/fscache/Makefile b/fs/fscache/Makefile
index 03a871d..14739ac 100644
--- a/fs/fscache/Makefile
+++ b/fs/fscache/Makefile
@@ -3,6 +3,8 @@
 # Makefile for general filesystem caching code
 #
 
+ccflags-y += -DDEFAULT_SYMBOL_NAMESPACE=ANDROID_GKI_VFS_EXPORT_ONLY
+
 fscache-y := \
 	cache.o \
 	cookie.o \
diff --git a/fs/fuse/Kconfig b/fs/fuse/Kconfig
index 40ce9a1..d6bd90b5 100644
--- a/fs/fuse/Kconfig
+++ b/fs/fuse/Kconfig
@@ -52,3 +52,11 @@
 
 	  If you want to allow mounting a Virtio Filesystem with the "dax"
 	  option, answer Y.
+
+config FUSE_BPF
+	bool "Adds BPF to fuse"
+	depends on FUSE_FS
+	depends on BPF
+	help
+	  Extends FUSE by adding BPF to prefilter calls and potentially pass to a
+	  backing file system
diff --git a/fs/fuse/Makefile b/fs/fuse/Makefile
index 0c48b35..096bd78 100644
--- a/fs/fuse/Makefile
+++ b/fs/fuse/Makefile
@@ -8,6 +8,8 @@
 obj-$(CONFIG_VIRTIO_FS) += virtiofs.o
 
 fuse-y := dev.o dir.o file.o inode.o control.o xattr.o acl.o readdir.o ioctl.o
+fuse-y += passthrough.o
 fuse-$(CONFIG_FUSE_DAX) += dax.o
+fuse-$(CONFIG_FUSE_BPF) += backing.o
 
 virtiofs-y := virtio_fs.o
diff --git a/fs/fuse/backing.c b/fs/fuse/backing.c
new file mode 100644
index 0000000..85aea03
--- /dev/null
+++ b/fs/fuse/backing.c
@@ -0,0 +1,2492 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * FUSE-BPF: Filesystem in Userspace with BPF
+ * Copyright (c) 2021 Google LLC
+ */
+
+#include "fuse_i.h"
+
+#include <linux/fdtable.h>
+#include <linux/filter.h>
+#include <linux/fs_stack.h>
+#include <linux/namei.h>
+
+#include "../internal.h"
+
+#define FUSE_BPF_IOCB_MASK (IOCB_APPEND | IOCB_DSYNC | IOCB_HIPRI | IOCB_NOWAIT | IOCB_SYNC)
+
+struct fuse_bpf_aio_req {
+	struct kiocb iocb;
+	refcount_t ref;
+	struct kiocb *iocb_orig;
+};
+
+static struct kmem_cache *fuse_bpf_aio_request_cachep;
+
+static void fuse_stat_to_attr(struct fuse_conn *fc, struct inode *inode,
+		struct kstat *stat, struct fuse_attr *attr);
+
+static void fuse_file_accessed(struct file *dst_file, struct file *src_file)
+{
+	struct inode *dst_inode;
+	struct inode *src_inode;
+
+	if (dst_file->f_flags & O_NOATIME)
+		return;
+
+	dst_inode = file_inode(dst_file);
+	src_inode = file_inode(src_file);
+
+	if ((!timespec64_equal(&dst_inode->i_mtime, &src_inode->i_mtime) ||
+	     !timespec64_equal(&dst_inode->i_ctime, &src_inode->i_ctime))) {
+		dst_inode->i_mtime = src_inode->i_mtime;
+		dst_inode->i_ctime = src_inode->i_ctime;
+	}
+
+	touch_atime(&dst_file->f_path);
+}
+
+int fuse_open_initialize(struct fuse_bpf_args *fa, struct fuse_open_io *foio,
+			 struct inode *inode, struct file *file, bool isdir)
+{
+	foio->foi = (struct fuse_open_in) {
+		.flags = file->f_flags & ~(O_CREAT | O_EXCL | O_NOCTTY),
+	};
+
+	foio->foo = (struct fuse_open_out) {0};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_fuse_inode(inode)->nodeid,
+		.opcode = isdir ? FUSE_OPENDIR : FUSE_OPEN,
+		.in_numargs = 1,
+		.out_numargs = 1,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(foio->foi),
+			.value = &foio->foi,
+		},
+		.out_args[0] = (struct fuse_bpf_arg) {
+			.size = sizeof(foio->foo),
+			.value = &foio->foo,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_open_backing(struct fuse_bpf_args *fa,
+		      struct inode *inode, struct file *file, bool isdir)
+{
+	struct fuse_mount *fm = get_fuse_mount(inode);
+	const struct fuse_open_in *foi = fa->in_args[0].value;
+	struct fuse_file *ff;
+	int retval;
+	int mask;
+	struct fuse_dentry *fd = get_fuse_dentry(file->f_path.dentry);
+	struct file *backing_file;
+
+	ff = fuse_file_alloc(fm);
+	if (!ff)
+		return -ENOMEM;
+	file->private_data = ff;
+
+	switch (foi->flags & O_ACCMODE) {
+	case O_RDONLY:
+		mask = MAY_READ;
+		break;
+
+	case O_WRONLY:
+		mask = MAY_WRITE;
+		break;
+
+	case O_RDWR:
+		mask = MAY_READ | MAY_WRITE;
+		break;
+
+	default:
+		return -EINVAL;
+	}
+
+	retval = inode_permission(&init_user_ns,
+				  get_fuse_inode(inode)->backing_inode, mask);
+	if (retval)
+		return retval;
+
+	backing_file = dentry_open(&fd->backing_path,
+				   foi->flags,
+				   current_cred());
+
+	if (IS_ERR(backing_file)) {
+		fuse_file_free(ff);
+		file->private_data = NULL;
+		return PTR_ERR(backing_file);
+	}
+	ff->backing_file = backing_file;
+
+	return 0;
+}
+
+void *fuse_open_finalize(struct fuse_bpf_args *fa,
+		       struct inode *inode, struct file *file, bool isdir)
+{
+	struct fuse_file *ff = file->private_data;
+	struct fuse_open_out *foo = fa->out_args[0].value;
+
+	if (ff) {
+		ff->fh = foo->fh;
+		ff->nodeid = get_fuse_inode(inode)->nodeid;
+	}
+	return 0;
+}
+
+int fuse_create_open_initialize(
+		struct fuse_bpf_args *fa, struct fuse_create_open_io *fcoio,
+		struct inode *dir, struct dentry *entry,
+		struct file *file, unsigned int flags, umode_t mode)
+{
+	fcoio->fci = (struct fuse_create_in) {
+		.flags = file->f_flags & ~(O_CREAT | O_EXCL | O_NOCTTY),
+		.mode = mode,
+	};
+
+	fcoio->feo = (struct fuse_entry_out) {0};
+	fcoio->foo = (struct fuse_open_out) {0};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(dir),
+		.opcode = FUSE_CREATE,
+		.in_numargs = 2,
+		.out_numargs = 2,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(fcoio->fci),
+			.value = &fcoio->fci,
+		},
+		.in_args[1] = (struct fuse_bpf_in_arg) {
+			.size = entry->d_name.len + 1,
+			.value = entry->d_name.name,
+		},
+		.out_args[0] = (struct fuse_bpf_arg) {
+			.size = sizeof(fcoio->feo),
+			.value = &fcoio->feo,
+		},
+		.out_args[1] = (struct fuse_bpf_arg) {
+			.size = sizeof(fcoio->foo),
+			.value = &fcoio->foo,
+		},
+	};
+
+	return 0;
+}
+
+static int fuse_open_file_backing(struct inode *inode, struct file *file)
+{
+	struct fuse_mount *fm = get_fuse_mount(inode);
+	struct dentry *entry = file->f_path.dentry;
+	struct fuse_dentry *fuse_dentry = get_fuse_dentry(entry);
+	struct fuse_file *fuse_file;
+	struct file *backing_file;
+
+	fuse_file = fuse_file_alloc(fm);
+	if (!fuse_file)
+		return -ENOMEM;
+	file->private_data = fuse_file;
+
+	backing_file = dentry_open(&fuse_dentry->backing_path, file->f_flags,
+				   current_cred());
+	if (IS_ERR(backing_file)) {
+		fuse_file_free(fuse_file);
+		file->private_data = NULL;
+		return PTR_ERR(backing_file);
+	}
+	fuse_file->backing_file = backing_file;
+
+	return 0;
+}
+
+int fuse_create_open_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry,
+		struct file *file, unsigned int flags, umode_t mode)
+{
+	struct fuse_inode *dir_fuse_inode = get_fuse_inode(dir);
+	struct fuse_dentry *fuse_entry = get_fuse_dentry(entry);
+	struct fuse_dentry *dir_fuse_dentry = get_fuse_dentry(entry->d_parent);
+	struct dentry *backing_dentry = NULL;
+	struct inode *inode = NULL;
+	struct dentry *newent;
+	int err = 0;
+	const struct fuse_create_in *fci = fa->in_args[0].value;
+	struct inode *d_inode = entry->d_inode;
+	u64 target_nodeid = 0;
+
+	if (!dir_fuse_inode || !dir_fuse_dentry)
+		return -EIO;
+
+	inode_lock_nested(dir_fuse_inode->backing_inode, I_MUTEX_PARENT);
+	backing_dentry = lookup_one_len(fa->in_args[1].value,
+					dir_fuse_dentry->backing_path.dentry,
+					strlen(fa->in_args[1].value));
+	inode_unlock(dir_fuse_inode->backing_inode);
+
+	if (IS_ERR(backing_dentry))
+		return PTR_ERR(backing_dentry);
+
+	if (d_really_is_positive(backing_dentry)) {
+		err = -EIO;
+		goto out;
+	}
+
+	err = vfs_create(&init_user_ns,  dir_fuse_inode->backing_inode,
+			 backing_dentry, fci->mode, true);
+	if (err)
+		goto out;
+
+	if (fuse_entry->backing_path.dentry)
+		path_put(&fuse_entry->backing_path);
+	fuse_entry->backing_path = (struct path) {
+		.mnt = dir_fuse_dentry->backing_path.mnt,
+		.dentry = backing_dentry,
+	};
+	path_get(&fuse_entry->backing_path);
+
+	if (d_inode)
+		target_nodeid = get_fuse_inode(d_inode)->nodeid;
+
+	inode = fuse_iget_backing(dir->i_sb, target_nodeid,
+			fuse_entry->backing_path.dentry->d_inode);
+	if (!inode) {
+		err = -EIO;
+		goto out;
+	}
+
+	if (get_fuse_inode(inode)->bpf)
+		bpf_prog_put(get_fuse_inode(inode)->bpf);
+	get_fuse_inode(inode)->bpf = fuse_entry->bpf;
+	fuse_entry->bpf = NULL;
+
+	newent = d_splice_alias(inode, entry);
+	if (IS_ERR(newent)) {
+		err = PTR_ERR(newent);
+		goto out;
+	}
+
+	inode = NULL;
+	entry = newent ? newent : entry;
+	err = finish_open(file, entry, fuse_open_file_backing);
+
+out:
+	iput(inode);
+	dput(backing_dentry);
+	return err;
+}
+
+void *fuse_create_open_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry,
+		struct file *file, unsigned int flags, umode_t mode)
+{
+	struct fuse_file *ff = file->private_data;
+	struct fuse_inode *fi = get_fuse_inode(file->f_inode);
+	struct fuse_entry_out *feo = fa->out_args[0].value;
+	struct fuse_open_out *foo = fa->out_args[1].value;
+
+	if (fi)
+		fi->nodeid = feo->nodeid;
+	if (ff)
+		ff->fh = foo->fh;
+	return 0;
+}
+
+int fuse_release_initialize(struct fuse_bpf_args *fa, struct fuse_release_in *fri,
+			    struct inode *inode, struct fuse_file *ff)
+{
+	/* Always put backing file whatever bpf/userspace says */
+	fput(ff->backing_file);
+
+	*fri = (struct fuse_release_in) {
+		.fh = ff->fh,
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_fuse_inode(inode)->nodeid,
+		.opcode = S_ISDIR(inode->i_mode) ? FUSE_RELEASEDIR
+						 : FUSE_RELEASE,
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(*fri),
+		.in_args[0].value = fri,
+	};
+
+	return 0;
+}
+
+int fuse_release_backing(struct fuse_bpf_args *fa,
+			 struct inode *inode, struct fuse_file *ff)
+{
+	return 0;
+}
+
+void *fuse_release_finalize(struct fuse_bpf_args *fa,
+			    struct inode *inode, struct fuse_file *ff)
+{
+	return NULL;
+}
+
+int fuse_flush_initialize(struct fuse_bpf_args *fa, struct fuse_flush_in *ffi,
+			   struct file *file, fl_owner_t id)
+{
+	struct fuse_file *fuse_file = file->private_data;
+
+	*ffi = (struct fuse_flush_in) {
+		.fh = fuse_file->fh,
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(file->f_inode),
+		.opcode = FUSE_FLUSH,
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(*ffi),
+		.in_args[0].value = ffi,
+		.flags = FUSE_BPF_FORCE,
+	};
+
+	return 0;
+}
+
+int fuse_flush_backing(struct fuse_bpf_args *fa, struct file *file, fl_owner_t id)
+{
+	struct fuse_file *fuse_file = file->private_data;
+	struct file *backing_file = fuse_file->backing_file;
+
+	if (backing_file->f_op->flush)
+		return backing_file->f_op->flush(backing_file, id);
+	return 0;
+}
+
+void *fuse_flush_finalize(struct fuse_bpf_args *fa, struct file *file, fl_owner_t id)
+{
+	return NULL;
+}
+
+int fuse_lseek_initialize(struct fuse_bpf_args *fa, struct fuse_lseek_io *flio,
+			  struct file *file, loff_t offset, int whence)
+{
+	struct fuse_file *fuse_file = file->private_data;
+
+	flio->fli = (struct fuse_lseek_in) {
+		.fh = fuse_file->fh,
+		.offset = offset,
+		.whence = whence,
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(file->f_inode),
+		.opcode = FUSE_LSEEK,
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(flio->fli),
+		.in_args[0].value = &flio->fli,
+		.out_numargs = 1,
+		.out_args[0].size = sizeof(flio->flo),
+		.out_args[0].value = &flio->flo,
+	};
+
+	return 0;
+}
+
+int fuse_lseek_backing(struct fuse_bpf_args *fa, struct file *file, loff_t offset, int whence)
+{
+	const struct fuse_lseek_in *fli = fa->in_args[0].value;
+	struct fuse_lseek_out *flo = fa->out_args[0].value;
+	struct fuse_file *fuse_file = file->private_data;
+	struct file *backing_file = fuse_file->backing_file;
+	loff_t ret;
+
+	/* TODO: Handle changing of the file handle */
+	if (offset == 0) {
+		if (whence == SEEK_CUR) {
+			flo->offset = file->f_pos;
+			return flo->offset;
+		}
+
+		if (whence == SEEK_SET) {
+			flo->offset = vfs_setpos(file, 0, 0);
+			return flo->offset;
+		}
+	}
+
+	inode_lock(file->f_inode);
+	backing_file->f_pos = file->f_pos;
+	ret = vfs_llseek(backing_file, fli->offset, fli->whence);
+	flo->offset = ret;
+	inode_unlock(file->f_inode);
+	return ret;
+}
+
+void *fuse_lseek_finalize(struct fuse_bpf_args *fa, struct file *file, loff_t offset, int whence)
+{
+	struct fuse_lseek_out *flo = fa->out_args[0].value;
+
+	if (!fa->error_in)
+		file->f_pos = flo->offset;
+	return ERR_PTR(flo->offset);
+}
+
+int fuse_copy_file_range_initialize(struct fuse_bpf_args *fa, struct fuse_copy_file_range_io *fcf,
+				   struct file *file_in, loff_t pos_in, struct file *file_out,
+				   loff_t pos_out, size_t len, unsigned int flags)
+{
+	struct fuse_file *fuse_file_in = file_in->private_data;
+	struct fuse_file *fuse_file_out = file_out->private_data;
+
+
+	fcf->fci = (struct fuse_copy_file_range_in) {
+		.fh_in = fuse_file_in->fh,
+		.off_in = pos_in,
+		.nodeid_out = fuse_file_out->nodeid,
+		.fh_out = fuse_file_out->fh,
+		.off_out = pos_out,
+		.len = len,
+		.flags = flags,
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(file_in->f_inode),
+		.opcode = FUSE_COPY_FILE_RANGE,
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(fcf->fci),
+		.in_args[0].value = &fcf->fci,
+		.out_numargs = 1,
+		.out_args[0].size = sizeof(fcf->fwo),
+		.out_args[0].value = &fcf->fwo,
+	};
+
+	return 0;
+}
+
+int fuse_copy_file_range_backing(struct fuse_bpf_args *fa, struct file *file_in, loff_t pos_in,
+				 struct file *file_out, loff_t pos_out, size_t len,
+				 unsigned int flags)
+{
+	const struct fuse_copy_file_range_in *fci = fa->in_args[0].value;
+	struct fuse_file *fuse_file_in = file_in->private_data;
+	struct file *backing_file_in = fuse_file_in->backing_file;
+	struct fuse_file *fuse_file_out = file_out->private_data;
+	struct file *backing_file_out = fuse_file_out->backing_file;
+
+	/* TODO: Handle changing of in/out files */
+	if (backing_file_out)
+		return vfs_copy_file_range(backing_file_in, fci->off_in, backing_file_out,
+					   fci->off_out, fci->len, fci->flags);
+	else
+		return generic_copy_file_range(file_in, pos_in, file_out, pos_out, len,
+					       flags);
+}
+
+void *fuse_copy_file_range_finalize(struct fuse_bpf_args *fa, struct file *file_in, loff_t pos_in,
+				    struct file *file_out, loff_t pos_out, size_t len,
+				    unsigned int flags)
+{
+	return NULL;
+}
+
+int fuse_fsync_initialize(struct fuse_bpf_args *fa, struct fuse_fsync_in *ffi,
+		   struct file *file, loff_t start, loff_t end, int datasync)
+{
+	struct fuse_file *fuse_file = file->private_data;
+
+	*ffi = (struct fuse_fsync_in) {
+		.fh = fuse_file->fh,
+		.fsync_flags = datasync ? FUSE_FSYNC_FDATASYNC : 0,
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_fuse_inode(file->f_inode)->nodeid,
+		.opcode = FUSE_FSYNC,
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(*ffi),
+		.in_args[0].value = ffi,
+		.flags = FUSE_BPF_FORCE,
+	};
+
+	return 0;
+}
+
+int fuse_fsync_backing(struct fuse_bpf_args *fa,
+		   struct file *file, loff_t start, loff_t end, int datasync)
+{
+	struct fuse_file *fuse_file = file->private_data;
+	struct file *backing_file = fuse_file->backing_file;
+	const struct fuse_fsync_in *ffi = fa->in_args[0].value;
+	int new_datasync = (ffi->fsync_flags & FUSE_FSYNC_FDATASYNC) ? 1 : 0;
+
+	return vfs_fsync(backing_file, new_datasync);
+}
+
+void *fuse_fsync_finalize(struct fuse_bpf_args *fa,
+		   struct file *file, loff_t start, loff_t end, int datasync)
+{
+	return NULL;
+}
+
+int fuse_dir_fsync_initialize(struct fuse_bpf_args *fa, struct fuse_fsync_in *ffi,
+		   struct file *file, loff_t start, loff_t end, int datasync)
+{
+	struct fuse_file *fuse_file = file->private_data;
+
+	*ffi = (struct fuse_fsync_in) {
+		.fh = fuse_file->fh,
+		.fsync_flags = datasync ? FUSE_FSYNC_FDATASYNC : 0,
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_fuse_inode(file->f_inode)->nodeid,
+		.opcode = FUSE_FSYNCDIR,
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(*ffi),
+		.in_args[0].value = ffi,
+		.flags = FUSE_BPF_FORCE,
+	};
+
+	return 0;
+}
+
+int fuse_getxattr_initialize(struct fuse_bpf_args *fa,
+		struct fuse_getxattr_io *fgio,
+		struct dentry *dentry, const char *name, void *value,
+		size_t size)
+{
+	*fgio = (struct fuse_getxattr_io) {
+		.fgi.size = size,
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_fuse_inode(dentry->d_inode)->nodeid,
+		.opcode = FUSE_GETXATTR,
+		.in_numargs = 2,
+		.out_numargs = 1,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(fgio->fgi),
+			.value = &fgio->fgi,
+		},
+		.in_args[1] = (struct fuse_bpf_in_arg) {
+			.size = strlen(name) + 1,
+			.value = name,
+		},
+		.flags = size ? FUSE_BPF_OUT_ARGVAR : 0,
+		.out_args[0].size = size ? size : sizeof(fgio->fgo),
+		.out_args[0].value = size ? value : &fgio->fgo,
+	};
+	return 0;
+}
+
+int fuse_getxattr_backing(struct fuse_bpf_args *fa,
+		struct dentry *dentry, const char *name, void *value,
+		size_t size)
+{
+	ssize_t ret = vfs_getxattr(&init_user_ns,
+				   get_fuse_dentry(dentry)->backing_path.dentry,
+				   fa->in_args[1].value, value, size);
+
+	if (fa->flags & FUSE_BPF_OUT_ARGVAR)
+		fa->out_args[0].size = ret;
+	else
+		((struct fuse_getxattr_out *)fa->out_args[0].value)->size = ret;
+
+	return 0;
+}
+
+void *fuse_getxattr_finalize(struct fuse_bpf_args *fa,
+		struct dentry *dentry, const char *name, void *value,
+		size_t size)
+{
+	struct fuse_getxattr_out *fgo;
+
+	if (fa->flags & FUSE_BPF_OUT_ARGVAR)
+		return ERR_PTR(fa->out_args[0].size);
+
+	fgo = fa->out_args[0].value;
+
+	return ERR_PTR(fgo->size);
+
+}
+
+int fuse_listxattr_initialize(struct fuse_bpf_args *fa,
+			      struct fuse_getxattr_io *fgio,
+			      struct dentry *dentry, char *list, size_t size)
+{
+	*fgio = (struct fuse_getxattr_io){
+		.fgi.size = size,
+	};
+
+	*fa = (struct fuse_bpf_args){
+		.nodeid = get_fuse_inode(dentry->d_inode)->nodeid,
+		.opcode = FUSE_LISTXATTR,
+		.in_numargs = 1,
+		.out_numargs = 1,
+		.in_args[0] =
+			(struct fuse_bpf_in_arg){
+				.size = sizeof(fgio->fgi),
+				.value = &fgio->fgi,
+			},
+		.flags = size ? FUSE_BPF_OUT_ARGVAR : 0,
+		.out_args[0].size = size ? size : sizeof(fgio->fgo),
+		.out_args[0].value = size ? (void *)list : &fgio->fgo,
+	};
+
+	return 0;
+}
+
+int fuse_listxattr_backing(struct fuse_bpf_args *fa, struct dentry *dentry,
+			   char *list, size_t size)
+{
+	ssize_t ret =
+		vfs_listxattr(get_fuse_dentry(dentry)->backing_path.dentry,
+			      list, size);
+
+	if (ret < 0)
+		return ret;
+
+	if (fa->flags & FUSE_BPF_OUT_ARGVAR)
+		fa->out_args[0].size = ret;
+	else
+		((struct fuse_getxattr_out *)fa->out_args[0].value)->size = ret;
+
+	return ret;
+}
+
+void *fuse_listxattr_finalize(struct fuse_bpf_args *fa, struct dentry *dentry,
+			      char *list, size_t size)
+{
+	struct fuse_getxattr_out *fgo;
+
+	if (fa->error_in)
+		return NULL;
+
+	if (fa->flags & FUSE_BPF_OUT_ARGVAR)
+		return ERR_PTR(fa->out_args[0].size);
+
+	fgo = fa->out_args[0].value;
+	return ERR_PTR(fgo->size);
+}
+
+int fuse_setxattr_initialize(struct fuse_bpf_args *fa,
+			     struct fuse_setxattr_in *fsxi,
+			     struct dentry *dentry, const char *name,
+			     const void *value, size_t size, int flags)
+{
+	*fsxi = (struct fuse_setxattr_in) {
+		.size = size,
+		.flags = flags,
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_fuse_inode(dentry->d_inode)->nodeid,
+		.opcode = FUSE_SETXATTR,
+		.in_numargs = 3,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(*fsxi),
+			.value = fsxi,
+		},
+		.in_args[1] = (struct fuse_bpf_in_arg) {
+			.size = strlen(name) + 1,
+			.value = name,
+		},
+		.in_args[2] = (struct fuse_bpf_in_arg) {
+			.size = size,
+			.value = value,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_setxattr_backing(struct fuse_bpf_args *fa, struct dentry *dentry,
+			  const char *name, const void *value, size_t size,
+			  int flags)
+{
+	return vfs_setxattr(&init_user_ns,
+			    get_fuse_dentry(dentry)->backing_path.dentry, name,
+			    value, size, flags);
+}
+
+void *fuse_setxattr_finalize(struct fuse_bpf_args *fa, struct dentry *dentry,
+			     const char *name, const void *value, size_t size,
+			     int flags)
+{
+	return NULL;
+}
+
+int fuse_removexattr_initialize(struct fuse_bpf_args *fa,
+				struct fuse_dummy_io *unused,
+				struct dentry *dentry, const char *name)
+{
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_fuse_inode(dentry->d_inode)->nodeid,
+		.opcode = FUSE_REMOVEXATTR,
+		.in_numargs = 1,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = strlen(name) + 1,
+			.value = name,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_removexattr_backing(struct fuse_bpf_args *fa,
+			     struct dentry *dentry, const char *name)
+{
+	struct path *backing_path =
+		&get_fuse_dentry(dentry)->backing_path;
+
+	/* TODO account for changes of the name by prefilter */
+	return vfs_removexattr(&init_user_ns, backing_path->dentry, name);
+}
+
+void *fuse_removexattr_finalize(struct fuse_bpf_args *fa,
+				struct dentry *dentry, const char *name)
+{
+	return NULL;
+}
+
+static inline void fuse_bpf_aio_put(struct fuse_bpf_aio_req *aio_req)
+{
+	if (refcount_dec_and_test(&aio_req->ref))
+		kmem_cache_free(fuse_bpf_aio_request_cachep, aio_req);
+}
+
+static void fuse_bpf_aio_cleanup_handler(struct fuse_bpf_aio_req *aio_req)
+{
+	struct kiocb *iocb = &aio_req->iocb;
+	struct kiocb *iocb_orig = aio_req->iocb_orig;
+
+	if (iocb->ki_flags & IOCB_WRITE) {
+		__sb_writers_acquired(file_inode(iocb->ki_filp)->i_sb,
+				      SB_FREEZE_WRITE);
+		file_end_write(iocb->ki_filp);
+		fuse_copyattr(iocb_orig->ki_filp, iocb->ki_filp);
+	}
+	iocb_orig->ki_pos = iocb->ki_pos;
+	fuse_bpf_aio_put(aio_req);
+}
+
+static void fuse_bpf_aio_rw_complete(struct kiocb *iocb, long res, long res2)
+{
+	struct fuse_bpf_aio_req *aio_req =
+		container_of(iocb, struct fuse_bpf_aio_req, iocb);
+	struct kiocb *iocb_orig = aio_req->iocb_orig;
+
+	fuse_bpf_aio_cleanup_handler(aio_req);
+	iocb_orig->ki_complete(iocb_orig, res, res2);
+}
+
+
+int fuse_file_read_iter_initialize(
+		struct fuse_bpf_args *fa, struct fuse_file_read_iter_io *fri,
+		struct kiocb *iocb, struct iov_iter *to)
+{
+	struct file *file = iocb->ki_filp;
+	struct fuse_file *ff = file->private_data;
+
+	fri->fri = (struct fuse_read_in) {
+		.fh = ff->fh,
+		.offset = iocb->ki_pos,
+		.size = to->count,
+	};
+
+	fri->frio = (struct fuse_read_iter_out) {
+		.ret = fri->fri.size,
+	};
+
+	/* TODO we can't assume 'to' is a kvec */
+	/* TODO we also can't assume the vector has only one component */
+	*fa = (struct fuse_bpf_args) {
+		.opcode = FUSE_READ,
+		.nodeid = ff->nodeid,
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(fri->fri),
+		.in_args[0].value = &fri->fri,
+		.out_numargs = 1,
+		.out_args[0].size = sizeof(fri->frio),
+		.out_args[0].value = &fri->frio,
+		/*
+		 * TODO Design this properly.
+		 * Possible approach: do not pass buf to bpf
+		 * If going to userland, do a deep copy
+		 * For extra credit, do that to/from the vector, rather than
+		 * making an extra copy in the kernel
+		 */
+	};
+
+	return 0;
+}
+
+int fuse_file_read_iter_backing(struct fuse_bpf_args *fa,
+		struct kiocb *iocb, struct iov_iter *to)
+{
+	struct fuse_read_iter_out *frio = fa->out_args[0].value;
+	struct file *file = iocb->ki_filp;
+	struct fuse_file *ff = file->private_data;
+	ssize_t ret;
+
+	if (!iov_iter_count(to))
+		return 0;
+
+	if ((iocb->ki_flags & IOCB_DIRECT) &&
+	    (!ff->backing_file->f_mapping->a_ops ||
+	     !ff->backing_file->f_mapping->a_ops->direct_IO))
+		return -EINVAL;
+
+	/* TODO This just plain ignores any change to fuse_read_in */
+	if (is_sync_kiocb(iocb)) {
+		ret = vfs_iter_read(ff->backing_file, to, &iocb->ki_pos,
+				iocb_to_rw_flags(iocb->ki_flags, FUSE_BPF_IOCB_MASK));
+	} else {
+		struct fuse_bpf_aio_req *aio_req;
+
+		ret = -ENOMEM;
+		aio_req = kmem_cache_zalloc(fuse_bpf_aio_request_cachep, GFP_KERNEL);
+		if (!aio_req)
+			goto out;
+
+		aio_req->iocb_orig = iocb;
+		kiocb_clone(&aio_req->iocb, iocb, ff->backing_file);
+		aio_req->iocb.ki_complete = fuse_bpf_aio_rw_complete;
+		refcount_set(&aio_req->ref, 2);
+		ret = vfs_iocb_iter_read(ff->backing_file, &aio_req->iocb, to);
+		fuse_bpf_aio_put(aio_req);
+		if (ret != -EIOCBQUEUED)
+			fuse_bpf_aio_cleanup_handler(aio_req);
+	}
+
+	frio->ret = ret;
+
+	/* TODO Need to point value at the buffer for post-modification */
+
+out:
+	fuse_file_accessed(file, ff->backing_file);
+
+	return ret;
+}
+
+void *fuse_file_read_iter_finalize(struct fuse_bpf_args *fa,
+		struct kiocb *iocb, struct iov_iter *to)
+{
+	struct fuse_read_iter_out *frio = fa->out_args[0].value;
+
+	return ERR_PTR(frio->ret);
+}
+
+int fuse_file_write_iter_initialize(
+		struct fuse_bpf_args *fa, struct fuse_file_write_iter_io *fwio,
+		struct kiocb *iocb, struct iov_iter *from)
+{
+	struct file *file = iocb->ki_filp;
+	struct fuse_file *ff = file->private_data;
+
+	*fwio = (struct fuse_file_write_iter_io) {
+		.fwi.fh = ff->fh,
+		.fwi.offset = iocb->ki_pos,
+		.fwi.size = from->count,
+	};
+
+	/* TODO we can't assume 'from' is a kvec */
+	*fa = (struct fuse_bpf_args) {
+		.opcode = FUSE_WRITE,
+		.nodeid = ff->nodeid,
+		.in_numargs = 2,
+		.in_args[0].size = sizeof(fwio->fwi),
+		.in_args[0].value = &fwio->fwi,
+		.in_args[1].size = fwio->fwi.size,
+		.in_args[1].value = from->kvec->iov_base,
+		.out_numargs = 1,
+		.out_args[0].size = sizeof(fwio->fwio),
+		.out_args[0].value = &fwio->fwio,
+	};
+
+	return 0;
+}
+
+int fuse_file_write_iter_backing(struct fuse_bpf_args *fa,
+		struct kiocb *iocb, struct iov_iter *from)
+{
+	struct file *file = iocb->ki_filp;
+	struct fuse_file *ff = file->private_data;
+	struct fuse_write_iter_out *fwio = fa->out_args[0].value;
+	ssize_t ret;
+
+	if (!iov_iter_count(from))
+		return 0;
+
+	/* TODO This just plain ignores any change to fuse_write_in */
+	/* TODO uint32_t seems smaller than ssize_t.... right? */
+	inode_lock(file_inode(file));
+
+	fuse_copyattr(file, ff->backing_file);
+
+	if (is_sync_kiocb(iocb)) {
+		file_start_write(ff->backing_file);
+		ret = vfs_iter_write(ff->backing_file, from, &iocb->ki_pos,
+					   iocb_to_rw_flags(iocb->ki_flags, FUSE_BPF_IOCB_MASK));
+		file_end_write(ff->backing_file);
+
+		/* Must reflect change in size of backing file to upper file */
+		if (ret > 0)
+			fuse_copyattr(file, ff->backing_file);
+	} else {
+		struct fuse_bpf_aio_req *aio_req;
+
+		ret = -ENOMEM;
+		aio_req = kmem_cache_zalloc(fuse_bpf_aio_request_cachep, GFP_KERNEL);
+		if (!aio_req)
+			goto out;
+
+		file_start_write(ff->backing_file);
+		__sb_writers_release(file_inode(ff->backing_file)->i_sb, SB_FREEZE_WRITE);
+		aio_req->iocb_orig = iocb;
+		kiocb_clone(&aio_req->iocb, iocb, ff->backing_file);
+		aio_req->iocb.ki_complete = fuse_bpf_aio_rw_complete;
+		refcount_set(&aio_req->ref, 2);
+		ret = vfs_iocb_iter_write(ff->backing_file, &aio_req->iocb, from);
+		fuse_bpf_aio_put(aio_req);
+		if (ret != -EIOCBQUEUED)
+			fuse_bpf_aio_cleanup_handler(aio_req);
+	}
+
+out:
+	inode_unlock(file_inode(file));
+	fwio->ret = ret;
+	if (ret < 0)
+		return ret;
+	return 0;
+}
+
+void *fuse_file_write_iter_finalize(struct fuse_bpf_args *fa,
+		struct kiocb *iocb, struct iov_iter *from)
+{
+	struct fuse_write_iter_out *fwio = fa->out_args[0].value;
+
+	return ERR_PTR(fwio->ret);
+}
+
+long fuse_backing_ioctl(struct file *file, unsigned int command, unsigned long arg, int flags)
+{
+	struct fuse_file *ff = file->private_data;
+	long ret;
+
+	if (flags & FUSE_IOCTL_COMPAT)
+		ret = -ENOTTY;
+	else
+		ret = vfs_ioctl(ff->backing_file, command, arg);
+
+	return ret;
+}
+
+int fuse_file_flock_backing(struct file *file, int cmd, struct file_lock *fl)
+{
+	struct fuse_file *ff = file->private_data;
+	struct file *backing_file = ff->backing_file;
+	int error;
+
+	fl->fl_file = backing_file;
+	if (backing_file->f_op->flock)
+		error = backing_file->f_op->flock(backing_file, cmd, fl);
+	else
+		error = locks_lock_file_wait(backing_file, fl);
+	return error;
+}
+
+ssize_t fuse_backing_mmap(struct file *file, struct vm_area_struct *vma)
+{
+	int ret;
+	struct fuse_file *ff = file->private_data;
+	struct inode *fuse_inode = file_inode(file);
+	struct file *backing_file = ff->backing_file;
+	struct inode *backing_inode = file_inode(backing_file);
+
+	if (!backing_file->f_op->mmap)
+		return -ENODEV;
+
+	if (WARN_ON(file != vma->vm_file))
+		return -EIO;
+
+	vma->vm_file = get_file(backing_file);
+
+	ret = call_mmap(vma->vm_file, vma);
+
+	if (ret)
+		fput(backing_file);
+	else
+		fput(file);
+
+	if (file->f_flags & O_NOATIME)
+		return ret;
+
+	if ((!timespec64_equal(&fuse_inode->i_mtime,
+			       &backing_inode->i_mtime) ||
+	     !timespec64_equal(&fuse_inode->i_ctime,
+			       &backing_inode->i_ctime))) {
+		fuse_inode->i_mtime = backing_inode->i_mtime;
+		fuse_inode->i_ctime = backing_inode->i_ctime;
+	}
+	touch_atime(&file->f_path);
+
+	return ret;
+}
+
+int fuse_file_fallocate_initialize(struct fuse_bpf_args *fa,
+		struct fuse_fallocate_in *ffi,
+		struct file *file, int mode, loff_t offset, loff_t length)
+{
+	struct fuse_file *ff = file->private_data;
+
+	*ffi = (struct fuse_fallocate_in) {
+		.fh = ff->fh,
+		.offset = offset,
+		.length = length,
+		.mode = mode
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.opcode = FUSE_FALLOCATE,
+		.nodeid = ff->nodeid,
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(*ffi),
+		.in_args[0].value = ffi,
+	};
+
+	return 0;
+}
+
+int fuse_file_fallocate_backing(struct fuse_bpf_args *fa,
+		struct file *file, int mode, loff_t offset, loff_t length)
+{
+	const struct fuse_fallocate_in *ffi = fa->in_args[0].value;
+	struct fuse_file *ff = file->private_data;
+
+	return vfs_fallocate(ff->backing_file, ffi->mode, ffi->offset,
+			     ffi->length);
+}
+
+void *fuse_file_fallocate_finalize(struct fuse_bpf_args *fa,
+		struct file *file, int mode, loff_t offset, loff_t length)
+{
+	return NULL;
+}
+
+/*******************************************************************************
+ * Directory operations after here                                             *
+ ******************************************************************************/
+
+int fuse_lookup_initialize(struct fuse_bpf_args *fa, struct fuse_lookup_io *fli,
+	       struct inode *dir, struct dentry *entry, unsigned int flags)
+{
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_fuse_inode(dir)->nodeid,
+		.opcode = FUSE_LOOKUP,
+		.in_numargs = 1,
+		.out_numargs = 2,
+		.flags = FUSE_BPF_OUT_ARGVAR,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = entry->d_name.len + 1,
+			.value = entry->d_name.name,
+		},
+		.out_args[0] = (struct fuse_bpf_arg) {
+			.size = sizeof(fli->feo),
+			.value = &fli->feo,
+		},
+		.out_args[1] = (struct fuse_bpf_arg) {
+			.size = sizeof(fli->feb.out),
+			.value = &fli->feb.out,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_lookup_backing(struct fuse_bpf_args *fa, struct inode *dir,
+			  struct dentry *entry, unsigned int flags)
+{
+	struct fuse_dentry *fuse_entry = get_fuse_dentry(entry);
+	struct fuse_dentry *dir_fuse_entry = get_fuse_dentry(entry->d_parent);
+	struct dentry *dir_backing_entry = dir_fuse_entry->backing_path.dentry;
+	struct inode *dir_backing_inode = dir_backing_entry->d_inode;
+	struct dentry *backing_entry;
+	struct fuse_entry_out *feo = (void *)fa->out_args[0].value;
+	struct kstat stat;
+	int err;
+
+	/* TODO this will not handle lookups over mount points */
+	inode_lock_nested(dir_backing_inode, I_MUTEX_PARENT);
+	backing_entry = lookup_one_len(entry->d_name.name, dir_backing_entry,
+					strlen(entry->d_name.name));
+	inode_unlock(dir_backing_inode);
+
+	if (IS_ERR(backing_entry))
+		return PTR_ERR(backing_entry);
+
+	fuse_entry->backing_path = (struct path) {
+		.dentry = backing_entry,
+		.mnt = mntget(dir_fuse_entry->backing_path.mnt),
+	};
+
+	if (d_is_negative(backing_entry)) {
+		fa->error_in = -ENOENT;
+		return 0;
+	}
+
+	err = vfs_getattr(&fuse_entry->backing_path, &stat,
+				  STATX_BASIC_STATS, 0);
+	if (err) {
+		path_put_init(&fuse_entry->backing_path);
+		return err;
+	}
+
+	fuse_stat_to_attr(get_fuse_conn(dir),
+			  backing_entry->d_inode, &stat, &feo->attr);
+	return 0;
+}
+
+int fuse_handle_backing(struct fuse_entry_bpf *feb, struct inode **backing_inode,
+			struct path *backing_path)
+{
+	switch (feb->out.backing_action) {
+	case FUSE_ACTION_KEEP:
+		/* backing inode/path are added in fuse_lookup_backing */
+		break;
+
+	case FUSE_ACTION_REMOVE:
+		iput(*backing_inode);
+		*backing_inode = NULL;
+		path_put_init(backing_path);
+		break;
+
+	case FUSE_ACTION_REPLACE: {
+		struct file *backing_file = feb->backing_file;
+
+		if (!backing_file)
+			return -EINVAL;
+		if (IS_ERR(backing_file))
+			return PTR_ERR(backing_file);
+
+		if (backing_inode)
+			iput(*backing_inode);
+		*backing_inode = backing_file->f_inode;
+		ihold(*backing_inode);
+
+		path_put(backing_path);
+		*backing_path = backing_file->f_path;
+		path_get(backing_path);
+		break;
+	}
+
+	default:
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+int fuse_handle_bpf_prog(struct fuse_entry_bpf *feb, struct inode *parent,
+			 struct bpf_prog **bpf)
+{
+	struct bpf_prog *new_bpf = NULL;
+
+	switch (feb->out.bpf_action) {
+	case FUSE_ACTION_KEEP: {
+		/* Parent isn't presented, but we want to keep
+		 * Don't touch bpf program at all in this case
+		 */
+		if (!parent)
+			return 0;
+
+		new_bpf = get_fuse_inode(parent)->bpf;
+		if (new_bpf)
+			bpf_prog_inc(new_bpf);
+		break;
+	}
+
+	case FUSE_ACTION_REMOVE:
+		break;
+
+	case FUSE_ACTION_REPLACE: {
+		struct file *bpf_file = feb->bpf_file;
+
+		if (!bpf_file)
+			return -EINVAL;
+		if (IS_ERR(bpf_file))
+			return PTR_ERR(bpf_file);
+
+		new_bpf = fuse_get_bpf_prog(bpf_file);
+		if (IS_ERR(new_bpf))
+			return PTR_ERR(new_bpf);
+		break;
+	}
+
+	default:
+		return -EINVAL;
+	}
+
+	/* Cannot change existing program */
+	if (*bpf) {
+		if (new_bpf)
+			bpf_prog_put(new_bpf);
+		return new_bpf == *bpf ? 0 : -EINVAL;
+	}
+
+	*bpf = new_bpf;
+	return 0;
+}
+
+struct dentry *fuse_lookup_finalize(struct fuse_bpf_args *fa, struct inode *dir,
+			   struct dentry *entry, unsigned int flags)
+{
+	struct fuse_dentry *fuse_entry;
+	struct dentry *backing_entry;
+	struct inode *inode = NULL, *backing_inode;
+	struct inode *entry_inode = entry->d_inode;
+	struct fuse_entry_out *feo = fa->out_args[0].value;
+	struct fuse_entry_bpf_out *febo = fa->out_args[1].value;
+	struct fuse_entry_bpf *feb = container_of(febo, struct fuse_entry_bpf,
+						  out);
+	int error = -1;
+	u64 target_nodeid = 0;
+	struct dentry *ret = NULL;
+
+	fuse_entry = get_fuse_dentry(entry);
+	if (!fuse_entry) {
+		ret = ERR_PTR(-EIO);
+		goto out;
+	}
+
+	backing_entry = fuse_entry->backing_path.dentry;
+	if (!backing_entry) {
+		ret = ERR_PTR(-ENOENT);
+		goto out;
+	}
+
+	if (entry_inode)
+		target_nodeid = get_fuse_inode(entry_inode)->nodeid;
+
+	backing_inode = backing_entry->d_inode;
+	if (backing_inode)
+		inode = fuse_iget_backing(dir->i_sb, target_nodeid,
+					  backing_inode);
+
+	error = inode ?
+		fuse_handle_bpf_prog(feb, dir, &get_fuse_inode(inode)->bpf) :
+		fuse_handle_bpf_prog(feb, dir, &fuse_entry->bpf);
+	if (error) {
+		ret = ERR_PTR(error);
+		goto out;
+	}
+
+	if (inode) {
+		error = fuse_handle_backing(feb,
+					&get_fuse_inode(inode)->backing_inode,
+					&fuse_entry->backing_path);
+		if (error) {
+			ret = ERR_PTR(error);
+			goto out;
+		}
+
+		get_fuse_inode(inode)->nodeid = feo->nodeid;
+		ret = d_splice_alias(inode, entry);
+		if (!IS_ERR(ret))
+			inode = NULL;
+	}
+out:
+	iput(inode);
+	if (feb->backing_file)
+		fput(feb->backing_file);
+	return ret;
+}
+
+int fuse_revalidate_backing(struct dentry *entry, unsigned int flags)
+{
+	struct fuse_dentry *fuse_dentry = get_fuse_dentry(entry);
+	struct dentry *backing_entry = fuse_dentry->backing_path.dentry;
+
+	spin_lock(&backing_entry->d_lock);
+	if (d_unhashed(backing_entry)) {
+		spin_unlock(&backing_entry->d_lock);
+			return 0;
+	}
+	spin_unlock(&backing_entry->d_lock);
+
+	if (unlikely(backing_entry->d_flags & DCACHE_OP_REVALIDATE))
+		return backing_entry->d_op->d_revalidate(backing_entry, flags);
+	return 1;
+}
+
+int fuse_canonical_path_initialize(struct fuse_bpf_args *fa,
+				   struct fuse_dummy_io *fdi,
+				   const struct path *path,
+				   struct path *canonical_path)
+{
+	fa->opcode = FUSE_CANONICAL_PATH;
+	return 0;
+}
+
+int fuse_canonical_path_backing(struct fuse_bpf_args *fa, const struct path *path,
+				struct path *canonical_path)
+{
+	get_fuse_backing_path(path->dentry, canonical_path);
+	return 0;
+}
+
+void *fuse_canonical_path_finalize(struct fuse_bpf_args *fa,
+				   const struct path *path,
+				   struct path *canonical_path)
+{
+	return NULL;
+}
+
+int fuse_mknod_initialize(
+		struct fuse_bpf_args *fa, struct fuse_mknod_in *fmi,
+		struct inode *dir, struct dentry *entry, umode_t mode, dev_t rdev)
+{
+	*fmi = (struct fuse_mknod_in) {
+		.mode = mode,
+		.rdev = new_encode_dev(rdev),
+		.umask = current_umask(),
+	};
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(dir),
+		.opcode = FUSE_MKNOD,
+		.in_numargs = 2,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(*fmi),
+			.value = fmi,
+		},
+		.in_args[1] = (struct fuse_bpf_in_arg) {
+			.size = entry->d_name.len + 1,
+			.value = entry->d_name.name,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_mknod_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, umode_t mode, dev_t rdev)
+{
+	int err = 0;
+	const struct fuse_mknod_in *fmi = fa->in_args[0].value;
+	struct fuse_inode *fuse_inode = get_fuse_inode(dir);
+	struct inode *backing_inode = fuse_inode->backing_inode;
+	struct path backing_path = {};
+	struct inode *inode = NULL;
+
+	//TODO Actually deal with changing the backing entry in mknod
+	get_fuse_backing_path(entry, &backing_path);
+	if (!backing_path.dentry)
+		return -EBADF;
+
+	inode_lock_nested(backing_inode, I_MUTEX_PARENT);
+	mode = fmi->mode;
+	if (!IS_POSIXACL(backing_inode))
+		mode &= ~fmi->umask;
+	err = vfs_mknod(&init_user_ns, backing_inode, backing_path.dentry,
+			mode, new_decode_dev(fmi->rdev));
+	inode_unlock(backing_inode);
+	if (err)
+		goto out;
+	if (d_really_is_negative(backing_path.dentry) ||
+		unlikely(d_unhashed(backing_path.dentry))) {
+		err = -EINVAL;
+		/**
+		 * TODO: overlayfs responds to this situation with a
+		 * lookupOneLen. Should we do that too?
+		 */
+		goto out;
+	}
+	inode = fuse_iget_backing(dir->i_sb, fuse_inode->nodeid, backing_inode);
+	if (IS_ERR(inode)) {
+		err = PTR_ERR(inode);
+		goto out;
+	}
+	d_instantiate(entry, inode);
+out:
+	path_put(&backing_path);
+	return err;
+}
+
+void *fuse_mknod_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, umode_t mode, dev_t rdev)
+{
+	return NULL;
+}
+
+int fuse_mkdir_initialize(
+		struct fuse_bpf_args *fa, struct fuse_mkdir_in *fmi,
+		struct inode *dir, struct dentry *entry, umode_t mode)
+{
+	*fmi = (struct fuse_mkdir_in) {
+		.mode = mode,
+		.umask = current_umask(),
+	};
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(dir),
+		.opcode = FUSE_MKDIR,
+		.in_numargs = 2,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(*fmi),
+			.value = fmi,
+		},
+		.in_args[1] = (struct fuse_bpf_in_arg) {
+			.size = entry->d_name.len + 1,
+			.value = entry->d_name.name,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_mkdir_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, umode_t mode)
+{
+	int err = 0;
+	const struct fuse_mkdir_in *fmi = fa->in_args[0].value;
+	struct fuse_inode *fuse_inode = get_fuse_inode(dir);
+	struct inode *backing_inode = fuse_inode->backing_inode;
+	struct path backing_path = {};
+	struct inode *inode = NULL;
+	struct dentry *d;
+
+	//TODO Actually deal with changing the backing entry in mkdir
+	get_fuse_backing_path(entry, &backing_path);
+	if (!backing_path.dentry)
+		return -EBADF;
+
+	inode_lock_nested(backing_inode, I_MUTEX_PARENT);
+	mode = fmi->mode;
+	if (!IS_POSIXACL(backing_inode))
+		mode &= ~fmi->umask;
+	err = vfs_mkdir(&init_user_ns, backing_inode, backing_path.dentry, mode);
+	if (err)
+		goto out;
+	if (d_really_is_negative(backing_path.dentry) ||
+		unlikely(d_unhashed(backing_path.dentry))) {
+		d = lookup_one_len(entry->d_name.name, backing_path.dentry->d_parent,
+				entry->d_name.len);
+		if (IS_ERR(d)) {
+			err = PTR_ERR(d);
+			goto out;
+		}
+		dput(backing_path.dentry);
+		backing_path.dentry = d;
+	}
+	inode = fuse_iget_backing(dir->i_sb, fuse_inode->nodeid, backing_inode);
+	if (IS_ERR(inode)) {
+		err = PTR_ERR(inode);
+		goto out;
+	}
+	d_instantiate(entry, inode);
+out:
+	inode_unlock(backing_inode);
+	path_put(&backing_path);
+	return err;
+}
+
+void *fuse_mkdir_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, umode_t mode)
+{
+	return NULL;
+}
+
+int fuse_rmdir_initialize(
+		struct fuse_bpf_args *fa, struct fuse_dummy_io *dummy,
+		struct inode *dir, struct dentry *entry)
+{
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(dir),
+		.opcode = FUSE_RMDIR,
+		.in_numargs = 1,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = entry->d_name.len + 1,
+			.value = entry->d_name.name,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_rmdir_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry)
+{
+	int err = 0;
+	struct path backing_path = {};
+	struct dentry *backing_parent_dentry;
+	struct inode *backing_inode;
+
+	/* TODO Actually deal with changing the backing entry in rmdir */
+	get_fuse_backing_path(entry, &backing_path);
+	if (!backing_path.dentry)
+		return -EBADF;
+
+	/* TODO Not sure if we should reverify like overlayfs, or get inode from d_parent */
+	backing_parent_dentry = dget_parent(backing_path.dentry);
+	backing_inode = d_inode(backing_parent_dentry);
+
+	inode_lock_nested(backing_inode, I_MUTEX_PARENT);
+	err = vfs_rmdir(&init_user_ns, backing_inode, backing_path.dentry);
+	inode_unlock(backing_inode);
+
+	dput(backing_parent_dentry);
+	if (!err)
+		d_drop(entry);
+	path_put(&backing_path);
+	return err;
+}
+
+void *fuse_rmdir_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry)
+{
+	return NULL;
+}
+
+static int fuse_rename_backing_common(
+			 struct inode *olddir, struct dentry *oldent,
+			 struct inode *newdir, struct dentry *newent,
+			 unsigned int flags)
+{
+	int err = 0;
+	struct path old_backing_path;
+	struct path new_backing_path;
+	struct dentry *old_backing_dir_dentry;
+	struct dentry *old_backing_dentry;
+	struct dentry *new_backing_dir_dentry;
+	struct dentry *new_backing_dentry;
+	struct dentry *trap = NULL;
+	struct inode *target_inode;
+	struct renamedata rd;
+
+	//TODO Actually deal with changing anything that isn't a flag
+	get_fuse_backing_path(oldent, &old_backing_path);
+	if (!old_backing_path.dentry)
+		return -EBADF;
+	get_fuse_backing_path(newent, &new_backing_path);
+	if (!new_backing_path.dentry) {
+		/*
+		 * TODO A file being moved from a backing path to another
+		 * backing path which is not yet instrumented with FUSE-BPF.
+		 * This may be slow and should be substituted with something
+		 * more clever.
+		 */
+		err = -EXDEV;
+		goto put_old_path;
+	}
+	if (new_backing_path.mnt != old_backing_path.mnt) {
+		err = -EXDEV;
+		goto put_new_path;
+	}
+	old_backing_dentry = old_backing_path.dentry;
+	new_backing_dentry = new_backing_path.dentry;
+	old_backing_dir_dentry = dget_parent(old_backing_dentry);
+	new_backing_dir_dentry = dget_parent(new_backing_dentry);
+	target_inode = d_inode(newent);
+
+	trap = lock_rename(old_backing_dir_dentry, new_backing_dir_dentry);
+	if (trap == old_backing_dentry) {
+		err = -EINVAL;
+		goto put_parents;
+	}
+	if (trap == new_backing_dentry) {
+		err = -ENOTEMPTY;
+		goto put_parents;
+	}
+	rd = (struct renamedata) {
+		.old_mnt_userns = &init_user_ns,
+		.old_dir = d_inode(old_backing_dir_dentry),
+		.old_dentry = old_backing_dentry,
+		.new_mnt_userns = &init_user_ns,
+		.new_dir = d_inode(new_backing_dir_dentry),
+		.new_dentry = new_backing_dentry,
+		.flags = flags,
+	};
+	err = vfs_rename(&rd);
+	if (err)
+		goto unlock;
+	if (target_inode)
+		fsstack_copy_attr_all(target_inode,
+				get_fuse_inode(target_inode)->backing_inode);
+	fsstack_copy_attr_all(d_inode(oldent), d_inode(old_backing_dentry));
+unlock:
+	unlock_rename(old_backing_dir_dentry, new_backing_dir_dentry);
+put_parents:
+	dput(new_backing_dir_dentry);
+	dput(old_backing_dir_dentry);
+put_new_path:
+	path_put(&new_backing_path);
+put_old_path:
+	path_put(&old_backing_path);
+	return err;
+}
+
+int fuse_rename2_initialize(struct fuse_bpf_args *fa, struct fuse_rename2_in *fri,
+			    struct inode *olddir, struct dentry *oldent,
+			    struct inode *newdir, struct dentry *newent,
+			    unsigned int flags)
+{
+	*fri = (struct fuse_rename2_in) {
+		.newdir = get_node_id(newdir),
+		.flags = flags,
+	};
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(olddir),
+		.opcode = FUSE_RENAME2,
+		.in_numargs = 3,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(*fri),
+			.value = fri,
+		},
+		.in_args[1] = (struct fuse_bpf_in_arg) {
+			.size = oldent->d_name.len + 1,
+			.value = oldent->d_name.name,
+		},
+		.in_args[2] = (struct fuse_bpf_in_arg) {
+			.size = newent->d_name.len + 1,
+			.value = newent->d_name.name,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_rename2_backing(struct fuse_bpf_args *fa,
+			 struct inode *olddir, struct dentry *oldent,
+			 struct inode *newdir, struct dentry *newent,
+			 unsigned int flags)
+{
+	const struct fuse_rename2_in *fri = fa->in_args[0].value;
+
+	/* TODO: deal with changing dirs/ents */
+	return fuse_rename_backing_common(olddir, oldent, newdir, newent, fri->flags);
+}
+
+void *fuse_rename2_finalize(struct fuse_bpf_args *fa,
+			    struct inode *olddir, struct dentry *oldent,
+			    struct inode *newdir, struct dentry *newent,
+			    unsigned int flags)
+{
+	return NULL;
+}
+
+int fuse_rename_initialize(struct fuse_bpf_args *fa, struct fuse_rename_in *fri,
+			   struct inode *olddir, struct dentry *oldent,
+			   struct inode *newdir, struct dentry *newent)
+{
+	*fri = (struct fuse_rename_in) {
+		.newdir = get_node_id(newdir),
+	};
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(olddir),
+		.opcode = FUSE_RENAME,
+		.in_numargs = 3,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(*fri),
+			.value = fri,
+		},
+		.in_args[1] = (struct fuse_bpf_in_arg) {
+			.size = oldent->d_name.len + 1,
+			.value = oldent->d_name.name,
+		},
+		.in_args[2] = (struct fuse_bpf_in_arg) {
+			.size = newent->d_name.len + 1,
+			.value = newent->d_name.name,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_rename_backing(struct fuse_bpf_args *fa,
+			struct inode *olddir, struct dentry *oldent,
+			struct inode *newdir, struct dentry *newent)
+{
+	/* TODO: deal with changing dirs/ents */
+	return fuse_rename_backing_common(olddir, oldent, newdir, newent, 0);
+}
+
+void *fuse_rename_finalize(struct fuse_bpf_args *fa,
+			   struct inode *olddir, struct dentry *oldent,
+			   struct inode *newdir, struct dentry *newent)
+{
+	return NULL;
+}
+
+int fuse_unlink_initialize(
+		struct fuse_bpf_args *fa, struct fuse_dummy_io *dummy,
+		struct inode *dir, struct dentry *entry)
+{
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(dir),
+		.opcode = FUSE_UNLINK,
+		.in_numargs = 1,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = entry->d_name.len + 1,
+			.value = entry->d_name.name,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_unlink_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry)
+{
+	int err = 0;
+	struct path backing_path = {};
+	struct dentry *backing_parent_dentry;
+	struct inode *backing_inode;
+
+	/* TODO Actually deal with changing the backing entry in unlink */
+	get_fuse_backing_path(entry, &backing_path);
+	if (!backing_path.dentry)
+		return -EBADF;
+
+	/* TODO Not sure if we should reverify like overlayfs, or get inode from d_parent */
+	backing_parent_dentry = dget_parent(backing_path.dentry);
+	backing_inode = d_inode(backing_parent_dentry);
+
+	inode_lock_nested(backing_inode, I_MUTEX_PARENT);
+	err = vfs_unlink(&init_user_ns, backing_inode, backing_path.dentry, NULL);
+	inode_unlock(backing_inode);
+
+	dput(backing_parent_dentry);
+	if (!err)
+		d_drop(entry);
+	path_put(&backing_path);
+	return err;
+}
+
+void *fuse_unlink_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry)
+{
+	return NULL;
+}
+
+int fuse_link_initialize(struct fuse_bpf_args *fa, struct fuse_link_in *fli,
+			 struct dentry *entry, struct inode *dir,
+			 struct dentry *newent)
+{
+	struct inode *src_inode = entry->d_inode;
+
+	*fli = (struct fuse_link_in){
+		.oldnodeid = get_node_id(src_inode),
+	};
+
+	fa->opcode = FUSE_LINK;
+	fa->in_numargs = 2;
+	fa->in_args[0].size = sizeof(*fli);
+	fa->in_args[0].value = fli;
+	fa->in_args[1].size = newent->d_name.len + 1;
+	fa->in_args[1].value = newent->d_name.name;
+
+	return 0;
+}
+
+int fuse_link_backing(struct fuse_bpf_args *fa, struct dentry *entry,
+		      struct inode *dir, struct dentry *newent)
+{
+	int err = 0;
+	struct path backing_old_path = {};
+	struct path backing_new_path = {};
+	struct dentry *backing_dir_dentry;
+	struct inode *fuse_new_inode = NULL;
+	struct fuse_inode *fuse_dir_inode = get_fuse_inode(dir);
+	struct inode *backing_dir_inode = fuse_dir_inode->backing_inode;
+
+	get_fuse_backing_path(entry, &backing_old_path);
+	if (!backing_old_path.dentry)
+		return -EBADF;
+
+	get_fuse_backing_path(newent, &backing_new_path);
+	if (!backing_new_path.dentry) {
+		err = -EBADF;
+		goto err_dst_path;
+	}
+
+	backing_dir_dentry = dget_parent(backing_new_path.dentry);
+	backing_dir_inode = d_inode(backing_dir_dentry);
+
+	inode_lock_nested(backing_dir_inode, I_MUTEX_PARENT);
+	err = vfs_link(backing_old_path.dentry,  &init_user_ns,
+		       backing_dir_inode, backing_new_path.dentry, NULL);
+	inode_unlock(backing_dir_inode);
+	if (err)
+		goto out;
+
+	if (d_really_is_negative(backing_new_path.dentry) ||
+	    unlikely(d_unhashed(backing_new_path.dentry))) {
+		err = -EINVAL;
+		/**
+		 * TODO: overlayfs responds to this situation with a
+		 * lookupOneLen. Should we do that too?
+		 */
+		goto out;
+	}
+
+	fuse_new_inode = fuse_iget_backing(dir->i_sb, fuse_dir_inode->nodeid, backing_dir_inode);
+	if (IS_ERR(fuse_new_inode)) {
+		err = PTR_ERR(fuse_new_inode);
+		goto out;
+	}
+	d_instantiate(newent, fuse_new_inode);
+
+out:
+	dput(backing_dir_dentry);
+	path_put(&backing_new_path);
+err_dst_path:
+	path_put(&backing_old_path);
+	return err;
+}
+
+void *fuse_link_finalize(struct fuse_bpf_args *fa, struct dentry *entry,
+			 struct inode *dir, struct dentry *newent)
+{
+	return NULL;
+}
+
+int fuse_getattr_initialize(struct fuse_bpf_args *fa, struct fuse_getattr_io *fgio,
+			const struct dentry *entry, struct kstat *stat,
+			u32 request_mask, unsigned int flags)
+{
+	fgio->fgi = (struct fuse_getattr_in) {
+		.getattr_flags = flags,
+		.fh = -1, /* TODO is this OK? */
+	};
+
+	fgio->fao = (struct fuse_attr_out) {0};
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(entry->d_inode),
+		.opcode = FUSE_GETATTR,
+		.in_numargs = 1,
+		.out_numargs = 1,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(fgio->fgi),
+			.value = &fgio->fgi,
+		},
+		.out_args[0] = (struct fuse_bpf_arg) {
+			.size = sizeof(fgio->fao),
+			.value = &fgio->fao,
+		},
+	};
+
+	return 0;
+}
+
+static void fuse_stat_to_attr(struct fuse_conn *fc, struct inode *inode,
+		struct kstat *stat, struct fuse_attr *attr)
+{
+	unsigned int blkbits;
+
+	/* see the comment in fuse_change_attributes() */
+	if (fc->writeback_cache && S_ISREG(inode->i_mode)) {
+		stat->size = i_size_read(inode);
+		stat->mtime.tv_sec = inode->i_mtime.tv_sec;
+		stat->mtime.tv_nsec = inode->i_mtime.tv_nsec;
+		stat->ctime.tv_sec = inode->i_ctime.tv_sec;
+		stat->ctime.tv_nsec = inode->i_ctime.tv_nsec;
+	}
+
+	attr->ino = stat->ino;
+	attr->mode = (inode->i_mode & S_IFMT) | (stat->mode & 07777);
+	attr->nlink = stat->nlink;
+	attr->uid = from_kuid(fc->user_ns, stat->uid);
+	attr->gid = from_kgid(fc->user_ns, stat->gid);
+	attr->atime = stat->atime.tv_sec;
+	attr->atimensec = stat->atime.tv_nsec;
+	attr->mtime = stat->mtime.tv_sec;
+	attr->mtimensec = stat->mtime.tv_nsec;
+	attr->ctime = stat->ctime.tv_sec;
+	attr->ctimensec = stat->ctime.tv_nsec;
+	attr->size = stat->size;
+	attr->blocks = stat->blocks;
+
+	if (stat->blksize != 0)
+		blkbits = ilog2(stat->blksize);
+	else
+		blkbits = inode->i_sb->s_blocksize_bits;
+
+	attr->blksize = 1 << blkbits;
+}
+
+int fuse_getattr_backing(struct fuse_bpf_args *fa,
+		const struct dentry *entry, struct kstat *stat,
+			u32 request_mask, unsigned int flags)
+{
+	struct path *backing_path =
+		&get_fuse_dentry(entry)->backing_path;
+	struct inode *backing_inode = backing_path->dentry->d_inode;
+	struct fuse_attr_out *fao = fa->out_args[0].value;
+	struct kstat tmp;
+	int err;
+
+	if (!stat)
+		stat = &tmp;
+
+	err = vfs_getattr(backing_path, stat, request_mask, flags);
+
+	if (!err)
+		fuse_stat_to_attr(get_fuse_conn(entry->d_inode),
+				  backing_inode, stat, &fao->attr);
+
+	return err;
+}
+
+void *fuse_getattr_finalize(struct fuse_bpf_args *fa,
+			const struct dentry *entry, struct kstat *stat,
+			u32 request_mask, unsigned int flags)
+{
+	struct fuse_attr_out *outarg = fa->out_args[0].value;
+	struct inode *inode = entry->d_inode;
+	u64 attr_version = fuse_get_attr_version(get_fuse_mount(inode)->fc);
+	int err = 0;
+
+	/* TODO: Ensure this doesn't happen if we had an error getting attrs in
+	 * backing.
+	 */
+	err = finalize_attr(inode, outarg, attr_version, stat);
+	return ERR_PTR(err);
+}
+
+static void fattr_to_iattr(struct fuse_conn *fc,
+			   const struct fuse_setattr_in *arg,
+			   struct iattr *iattr)
+{
+	unsigned int fvalid = arg->valid;
+
+	if (fvalid & FATTR_MODE)
+		iattr->ia_valid |= ATTR_MODE, iattr->ia_mode = arg->mode;
+	if (fvalid & FATTR_UID) {
+		iattr->ia_valid |= ATTR_UID;
+		iattr->ia_uid = make_kuid(fc->user_ns, arg->uid);
+	}
+	if (fvalid & FATTR_GID) {
+		iattr->ia_valid |= ATTR_GID;
+		iattr->ia_gid = make_kgid(fc->user_ns, arg->gid);
+	}
+	if (fvalid & FATTR_SIZE)
+		iattr->ia_valid |= ATTR_SIZE,  iattr->ia_size = arg->size;
+	if (fvalid & FATTR_ATIME) {
+		iattr->ia_valid |= ATTR_ATIME;
+		iattr->ia_atime.tv_sec = arg->atime;
+		iattr->ia_atime.tv_nsec = arg->atimensec;
+		if (!(fvalid & FATTR_ATIME_NOW))
+			iattr->ia_valid |= ATTR_ATIME_SET;
+	}
+	if (fvalid & FATTR_MTIME) {
+		iattr->ia_valid |= ATTR_MTIME;
+		iattr->ia_mtime.tv_sec = arg->mtime;
+		iattr->ia_mtime.tv_nsec = arg->mtimensec;
+		if (!(fvalid & FATTR_MTIME_NOW))
+			iattr->ia_valid |= ATTR_MTIME_SET;
+	}
+	if (fvalid & FATTR_CTIME) {
+		iattr->ia_valid |= ATTR_CTIME;
+		iattr->ia_ctime.tv_sec = arg->ctime;
+		iattr->ia_ctime.tv_nsec = arg->ctimensec;
+	}
+}
+
+int fuse_setattr_initialize(struct fuse_bpf_args *fa, struct fuse_setattr_io *fsio,
+		struct dentry *dentry, struct iattr *attr, struct file *file)
+{
+	struct fuse_conn *fc = get_fuse_conn(dentry->d_inode);
+
+	*fsio = (struct fuse_setattr_io) {0};
+	iattr_to_fattr(fc, attr, &fsio->fsi, true);
+
+	*fa = (struct fuse_bpf_args) {
+		.opcode = FUSE_SETATTR,
+		.nodeid = get_node_id(dentry->d_inode),
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(fsio->fsi),
+		.in_args[0].value = &fsio->fsi,
+		.out_numargs = 1,
+		.out_args[0].size = sizeof(fsio->fao),
+		.out_args[0].value = &fsio->fao,
+	};
+
+	return 0;
+}
+
+int fuse_setattr_backing(struct fuse_bpf_args *fa,
+		struct dentry *dentry, struct iattr *attr, struct file *file)
+{
+	struct fuse_conn *fc = get_fuse_conn(dentry->d_inode);
+	const struct fuse_setattr_in *fsi = fa->in_args[0].value;
+	struct iattr new_attr = {0};
+	struct path *backing_path = &get_fuse_dentry(dentry)->backing_path;
+	int res;
+
+	fattr_to_iattr(fc, fsi, &new_attr);
+	/* TODO: Some info doesn't get saved by the attr->fattr->attr transition
+	 * When we actually allow the bpf to change these, we may have to consider
+	 * the extra flags more, or pass more info into the bpf. Until then we can
+	 * keep everything except for ATTR_FILE, since we'd need a file on the
+	 * lower fs. For what it's worth, neither f2fs nor ext4 make use of that
+	 * even if it is present.
+	 */
+	new_attr.ia_valid = attr->ia_valid & ~ATTR_FILE;
+	inode_lock(d_inode(backing_path->dentry));
+	res = notify_change(&init_user_ns, backing_path->dentry, &new_attr,
+			    NULL);
+	inode_unlock(d_inode(backing_path->dentry));
+
+	if (res == 0 && (new_attr.ia_valid & ATTR_SIZE))
+		i_size_write(dentry->d_inode, new_attr.ia_size);
+	return res;
+}
+
+void *fuse_setattr_finalize(struct fuse_bpf_args *fa,
+		struct dentry *dentry, struct iattr *attr, struct file *file)
+{
+	return NULL;
+}
+
+int fuse_statfs_initialize(
+		struct fuse_bpf_args *fa, struct fuse_statfs_out *fso,
+		struct dentry *dentry, struct kstatfs *buf)
+{
+	*fso = (struct fuse_statfs_out) {0};
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(d_inode(dentry)),
+		.opcode = FUSE_STATFS,
+		.out_numargs = 1,
+		.out_numargs = 1,
+		.out_args[0].size = sizeof(fso),
+		.out_args[0].value = fso,
+	};
+
+	return 0;
+}
+
+int fuse_statfs_backing(
+		struct fuse_bpf_args *fa,
+		struct dentry *dentry, struct kstatfs *buf)
+{
+	int err = 0;
+	struct path backing_path;
+	struct fuse_statfs_out *fso = fa->out_args[0].value;
+
+	get_fuse_backing_path(dentry, &backing_path);
+	if (!backing_path.dentry)
+		return -EBADF;
+	err = vfs_statfs(&backing_path, buf);
+	path_put(&backing_path);
+	buf->f_type = FUSE_SUPER_MAGIC;
+
+	//TODO Provide postfilter opportunity to modify
+	if (!err)
+		convert_statfs_to_fuse(&fso->st, buf);
+
+	return err;
+}
+
+void *fuse_statfs_finalize(
+		struct fuse_bpf_args *fa,
+		struct dentry *dentry, struct kstatfs *buf)
+{
+	struct fuse_statfs_out *fso = fa->out_args[0].value;
+
+	if (!fa->error_in)
+		convert_fuse_statfs(buf, &fso->st);
+	return NULL;
+}
+
+int fuse_get_link_initialize(struct fuse_bpf_args *fa, struct fuse_dummy_io *unused,
+		struct inode *inode, struct dentry *dentry,
+		struct delayed_call *callback, const char **out)
+{
+	/*
+	 * TODO
+	 * If we want to handle changing these things, we'll need to copy
+	 * the lower fs's data into our own buffer, and provide our own callback
+	 * to free that buffer.
+	 *
+	 * Pre could change the name we're looking at
+	 * postfilter can change the name we return
+	 *
+	 * We ought to only make that buffer if it's been requested, so leaving
+	 * this unimplemented for the moment
+	 */
+	*fa = (struct fuse_bpf_args) {
+		.opcode = FUSE_READLINK,
+		.nodeid = get_node_id(inode),
+		.in_numargs = 1,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = dentry->d_name.len + 1,
+			.value = dentry->d_name.name,
+		},
+		/*
+		 * .out_argvar = 1,
+		 * .out_numargs = 1,
+		 * .out_args[0].size = ,
+		 * .out_args[0].value = ,
+		 */
+	};
+
+	return 0;
+}
+
+int fuse_get_link_backing(struct fuse_bpf_args *fa,
+		struct inode *inode, struct dentry *dentry,
+		struct delayed_call *callback, const char **out)
+{
+	struct path backing_path;
+
+	if (!dentry) {
+		*out = ERR_PTR(-ECHILD);
+		return PTR_ERR(*out);
+	}
+
+	get_fuse_backing_path(dentry, &backing_path);
+	if (!backing_path.dentry) {
+		*out = ERR_PTR(-ECHILD);
+		return PTR_ERR(*out);
+	}
+
+	/*
+	 * TODO: If we want to do our own thing, copy the data and then call the
+	 * callback
+	 */
+	*out = vfs_get_link(backing_path.dentry, callback);
+
+	path_put(&backing_path);
+	return 0;
+}
+
+void *fuse_get_link_finalize(struct fuse_bpf_args *fa,
+		struct inode *inode, struct dentry *dentry,
+		struct delayed_call *callback,  const char **out)
+{
+	return NULL;
+}
+
+int fuse_symlink_initialize(
+		struct fuse_bpf_args *fa, struct fuse_dummy_io *unused,
+		struct inode *dir, struct dentry *entry, const char *link, int len)
+{
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = get_node_id(dir),
+		.opcode = FUSE_SYMLINK,
+		.in_numargs = 2,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = entry->d_name.len + 1,
+			.value = entry->d_name.name,
+		},
+		.in_args[1] = (struct fuse_bpf_in_arg) {
+			.size = len,
+			.value = link,
+		},
+	};
+
+	return 0;
+}
+
+int fuse_symlink_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, const char *link, int len)
+{
+	int err = 0;
+	struct fuse_inode *fuse_inode = get_fuse_inode(dir);
+	struct inode *backing_inode = fuse_inode->backing_inode;
+	struct path backing_path = {};
+	struct inode *inode = NULL;
+
+	//TODO Actually deal with changing the backing entry in symlink
+	get_fuse_backing_path(entry, &backing_path);
+	if (!backing_path.dentry)
+		return -EBADF;
+
+	inode_lock_nested(backing_inode, I_MUTEX_PARENT);
+	err = vfs_symlink(&init_user_ns, backing_inode, backing_path.dentry,
+			  link);
+	inode_unlock(backing_inode);
+	if (err)
+		goto out;
+	if (d_really_is_negative(backing_path.dentry) ||
+		unlikely(d_unhashed(backing_path.dentry))) {
+		err = -EINVAL;
+		/**
+		 * TODO: overlayfs responds to this situation with a
+		 * lookupOneLen. Should we do that too?
+		 */
+		goto out;
+	}
+	inode = fuse_iget_backing(dir->i_sb, fuse_inode->nodeid, backing_inode);
+	if (IS_ERR(inode)) {
+		err = PTR_ERR(inode);
+		goto out;
+	}
+	d_instantiate(entry, inode);
+out:
+	path_put(&backing_path);
+	return err;
+}
+
+void *fuse_symlink_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, const char *link, int len)
+{
+	return NULL;
+}
+
+int fuse_readdir_initialize(struct fuse_bpf_args *fa, struct fuse_read_io *frio,
+			    struct file *file, struct dir_context *ctx,
+			    bool *force_again, bool *allow_force, bool is_continued)
+{
+	struct fuse_file *ff = file->private_data;
+	u8 *page = (u8 *)__get_free_page(GFP_KERNEL);
+
+	if (!page)
+		return -ENOMEM;
+
+	*fa = (struct fuse_bpf_args) {
+		.nodeid = ff->nodeid,
+		.opcode = FUSE_READDIR,
+		.in_numargs = 1,
+		.flags = FUSE_BPF_OUT_ARGVAR,
+		.out_numargs = 2,
+		.in_args[0] = (struct fuse_bpf_in_arg) {
+			.size = sizeof(frio->fri),
+			.value = &frio->fri,
+		},
+		.out_args[0] = (struct fuse_bpf_arg) {
+			.size = sizeof(frio->fro),
+			.value = &frio->fro,
+		},
+		.out_args[1] = (struct fuse_bpf_arg) {
+			.size = PAGE_SIZE,
+			.value = page,
+		},
+	};
+
+	frio->fri = (struct fuse_read_in) {
+		.fh = ff->fh,
+		.offset = ctx->pos,
+		.size = PAGE_SIZE,
+	};
+	frio->fro = (struct fuse_read_out) {
+		.again = 0,
+		.offset = 0,
+	};
+	*force_again = false;
+	*allow_force = true;
+	return 0;
+}
+
+struct extfuse_ctx {
+	struct dir_context ctx;
+	u8 *addr;
+	size_t offset;
+};
+
+static int filldir(struct dir_context *ctx, const char *name, int namelen,
+				   loff_t offset, u64 ino, unsigned int d_type)
+{
+	struct extfuse_ctx *ec = container_of(ctx, struct extfuse_ctx, ctx);
+	struct fuse_dirent *fd = (struct fuse_dirent *) (ec->addr + ec->offset);
+
+	if (ec->offset + sizeof(struct fuse_dirent) + namelen > PAGE_SIZE)
+		return -ENOMEM;
+
+	*fd = (struct fuse_dirent) {
+		.ino = ino,
+		.off = offset,
+		.namelen = namelen,
+		.type = d_type,
+	};
+
+	memcpy(fd->name, name, namelen);
+	ec->offset += FUSE_DIRENT_SIZE(fd);
+
+	return 0;
+}
+
+static int parse_dirfile(char *buf, size_t nbytes, struct dir_context *ctx)
+{
+	while (nbytes >= FUSE_NAME_OFFSET) {
+		struct fuse_dirent *dirent = (struct fuse_dirent *) buf;
+		size_t reclen = FUSE_DIRENT_SIZE(dirent);
+
+		if (!dirent->namelen || dirent->namelen > FUSE_NAME_MAX)
+			return -EIO;
+		if (reclen > nbytes)
+			break;
+		if (memchr(dirent->name, '/', dirent->namelen) != NULL)
+			return -EIO;
+
+		ctx->pos = dirent->off;
+		if (!dir_emit(ctx, dirent->name, dirent->namelen, dirent->ino,
+				dirent->type))
+			break;
+
+		buf += reclen;
+		nbytes -= reclen;
+	}
+
+	return 0;
+}
+
+
+int fuse_readdir_backing(struct fuse_bpf_args *fa,
+			 struct file *file, struct dir_context *ctx,
+			 bool *force_again, bool *allow_force, bool is_continued)
+{
+	struct fuse_file *ff = file->private_data;
+	struct file *backing_dir = ff->backing_file;
+	struct fuse_read_out *fro = fa->out_args[0].value;
+	struct extfuse_ctx ec;
+	int err;
+
+	ec = (struct extfuse_ctx) {
+		.ctx.actor = filldir,
+		.ctx.pos = ctx->pos,
+		.addr = fa->out_args[1].value,
+	};
+
+	if (!ec.addr)
+		return -ENOMEM;
+
+	if (!is_continued)
+		backing_dir->f_pos = file->f_pos;
+
+	err = iterate_dir(backing_dir, &ec.ctx);
+	if (ec.offset == 0)
+		*allow_force = false;
+	fa->out_args[1].size = ec.offset;
+
+	fro->offset = ec.ctx.pos;
+	fro->again = false;
+	return err;
+}
+
+void *fuse_readdir_finalize(struct fuse_bpf_args *fa,
+			    struct file *file, struct dir_context *ctx,
+			    bool *force_again, bool *allow_force, bool is_continued)
+{
+	struct fuse_read_out *fro = fa->out_args[0].value;
+	struct fuse_file *ff = file->private_data;
+	struct file *backing_dir = ff->backing_file;
+	int err = 0;
+
+	err = parse_dirfile(fa->out_args[1].value, fa->out_args[1].size, ctx);
+	*force_again = !!fro->again;
+	if (*force_again && !*allow_force)
+		err = -EINVAL;
+
+	ctx->pos = fro->offset;
+	backing_dir->f_pos = fro->offset;
+
+	free_page((unsigned long) fa->out_args[1].value);
+	return ERR_PTR(err);
+}
+
+int fuse_access_initialize(struct fuse_bpf_args *fa, struct fuse_access_in *fai,
+			    struct inode *inode, int mask)
+{
+	*fai = (struct fuse_access_in) {
+		.mask = mask,
+	};
+
+	*fa = (struct fuse_bpf_args) {
+		.opcode = FUSE_ACCESS,
+		.nodeid = get_node_id(inode),
+		.in_numargs = 1,
+		.in_args[0].size = sizeof(*fai),
+		.in_args[0].value = fai,
+	};
+
+	return 0;
+}
+
+int fuse_access_backing(struct fuse_bpf_args *fa, struct inode *inode, int mask)
+{
+	struct fuse_inode *fi = get_fuse_inode(inode);
+	const struct fuse_access_in *fai = fa->in_args[0].value;
+
+	return inode_permission(&init_user_ns, fi->backing_inode, fai->mask);
+}
+
+void *fuse_access_finalize(struct fuse_bpf_args *fa, struct inode *inode, int mask)
+{
+	return NULL;
+}
+
+int __init fuse_bpf_init(void)
+{
+	fuse_bpf_aio_request_cachep = kmem_cache_create("fuse_bpf_aio_req",
+						   sizeof(struct fuse_bpf_aio_req),
+						   0, SLAB_HWCACHE_ALIGN, NULL);
+	if (!fuse_bpf_aio_request_cachep)
+		return -ENOMEM;
+
+	return 0;
+}
+
+void __exit fuse_bpf_cleanup(void)
+{
+	kmem_cache_destroy(fuse_bpf_aio_request_cachep);
+}
+
+ssize_t fuse_bpf_simple_request(struct fuse_mount *fm, struct fuse_bpf_args *bpf_args)
+{
+	int i;
+	ssize_t res;
+	struct fuse_args args = {
+		.nodeid = bpf_args->nodeid,
+		.opcode = bpf_args->opcode,
+		.error_in = bpf_args->error_in,
+		.in_numargs = bpf_args->in_numargs,
+		.out_numargs = bpf_args->out_numargs,
+		.force = !!(bpf_args->flags & FUSE_BPF_FORCE),
+		.out_argvar = !!(bpf_args->flags & FUSE_BPF_OUT_ARGVAR),
+	};
+
+	for (i = 0; i < args.in_numargs; ++i)
+		args.in_args[i] = (struct fuse_in_arg) {
+			.size = bpf_args->in_args[i].size,
+			.value = bpf_args->in_args[i].value,
+		};
+	for (i = 0; i < args.out_numargs; ++i)
+		args.out_args[i] = (struct fuse_arg) {
+			.size = bpf_args->out_args[i].size,
+			.value = bpf_args->out_args[i].value,
+		};
+
+	res = fuse_simple_request(fm, &args);
+
+	*bpf_args = (struct fuse_bpf_args) {
+		.nodeid = args.nodeid,
+		.opcode = args.opcode,
+		.error_in = args.error_in,
+		.in_numargs = args.in_numargs,
+		.out_numargs = args.out_numargs,
+	};
+	if (args.force)
+		bpf_args->flags |= FUSE_BPF_FORCE;
+	if (args.out_argvar)
+		bpf_args->flags |= FUSE_BPF_OUT_ARGVAR;
+	for (i = 0; i < args.in_numargs; ++i)
+		bpf_args->in_args[i] = (struct fuse_bpf_in_arg) {
+			.size = args.in_args[i].size,
+			.value = args.in_args[i].value,
+		};
+	for (i = 0; i < args.out_numargs; ++i)
+		bpf_args->out_args[i] = (struct fuse_bpf_arg) {
+			.size = args.out_args[i].size,
+			.value = args.out_args[i].value,
+		};
+	return res;
+}
diff --git a/fs/fuse/control.c b/fs/fuse/control.c
index 79f01d0..4aae0e6 100644
--- a/fs/fuse/control.c
+++ b/fs/fuse/control.c
@@ -395,7 +395,7 @@
 	return register_filesystem(&fuse_ctl_fs_type);
 }
 
-void __exit fuse_ctl_cleanup(void)
+void fuse_ctl_cleanup(void)
 {
 	unregister_filesystem(&fuse_ctl_fs_type);
 }
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
index d6b5339..5d309199 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -14,6 +14,7 @@
 #include <linux/sched/signal.h>
 #include <linux/uio.h>
 #include <linux/miscdevice.h>
+#include <linux/namei.h>
 #include <linux/pagemap.h>
 #include <linux/file.h>
 #include <linux/slab.h>
@@ -207,10 +208,13 @@
 /**
  * A new request is available, wake fiq->waitq
  */
-static void fuse_dev_wake_and_unlock(struct fuse_iqueue *fiq)
+static void fuse_dev_wake_and_unlock(struct fuse_iqueue *fiq, bool sync)
 __releases(fiq->lock)
 {
-	wake_up(&fiq->waitq);
+	if (sync)
+		wake_up_sync(&fiq->waitq);
+	else
+		wake_up(&fiq->waitq);
 	kill_fasync(&fiq->fasync, SIGIO, POLL_IN);
 	spin_unlock(&fiq->lock);
 }
@@ -223,14 +227,14 @@
 EXPORT_SYMBOL_GPL(fuse_dev_fiq_ops);
 
 static void queue_request_and_unlock(struct fuse_iqueue *fiq,
-				     struct fuse_req *req)
+				     struct fuse_req *req, bool sync)
 __releases(fiq->lock)
 {
 	req->in.h.len = sizeof(struct fuse_in_header) +
 		fuse_len_args(req->args->in_numargs,
 			      (struct fuse_arg *) req->args->in_args);
 	list_add_tail(&req->list, &fiq->pending);
-	fiq->ops->wake_pending_and_unlock(fiq);
+	fiq->ops->wake_pending_and_unlock(fiq, sync);
 }
 
 void fuse_queue_forget(struct fuse_conn *fc, struct fuse_forget_link *forget,
@@ -238,6 +242,11 @@
 {
 	struct fuse_iqueue *fiq = &fc->iq;
 
+	if (nodeid == 0) {
+		kfree(forget);
+		return;
+	}
+
 	forget->forget_one.nodeid = nodeid;
 	forget->forget_one.nlookup = nlookup;
 
@@ -245,7 +254,7 @@
 	if (fiq->connected) {
 		fiq->forget_list_tail->next = forget;
 		fiq->forget_list_tail = forget;
-		fiq->ops->wake_forget_and_unlock(fiq);
+		fiq->ops->wake_forget_and_unlock(fiq, false);
 	} else {
 		kfree(forget);
 		spin_unlock(&fiq->lock);
@@ -265,7 +274,7 @@
 		fc->active_background++;
 		spin_lock(&fiq->lock);
 		req->in.h.unique = fuse_get_unique(fiq);
-		queue_request_and_unlock(fiq, req);
+		queue_request_and_unlock(fiq, req, false);
 	}
 }
 
@@ -358,7 +367,7 @@
 			spin_unlock(&fiq->lock);
 			return 0;
 		}
-		fiq->ops->wake_interrupt_and_unlock(fiq);
+		fiq->ops->wake_interrupt_and_unlock(fiq, false);
 	} else {
 		spin_unlock(&fiq->lock);
 	}
@@ -425,7 +434,7 @@
 		/* acquire extra reference, since request is still needed
 		   after fuse_request_end() */
 		__fuse_get_request(req);
-		queue_request_and_unlock(fiq, req);
+		queue_request_and_unlock(fiq, req, true);
 
 		request_wait_answer(req);
 		/* Pairs with smp_wmb() in fuse_request_end() */
@@ -479,6 +488,7 @@
 {
 	req->in.h.opcode = args->opcode;
 	req->in.h.nodeid = args->nodeid;
+	req->in.h.padding = args->error_in;
 	req->args = args;
 	if (args->end)
 		__set_bit(FR_ASYNC, &req->flags);
@@ -600,7 +610,7 @@
 
 	spin_lock(&fiq->lock);
 	if (fiq->connected) {
-		queue_request_and_unlock(fiq, req);
+		queue_request_and_unlock(fiq, req, false);
 	} else {
 		err = -ENODEV;
 		spin_unlock(&fiq->lock);
@@ -785,7 +795,8 @@
 	       1 << PG_active |
 	       1 << PG_workingset |
 	       1 << PG_reclaim |
-	       1 << PG_waiters))) {
+	       1 << PG_waiters |
+	       LRU_GEN_MASK | LRU_REFS_MASK))) {
 		dump_page(page, "fuse: trying to steal weird page");
 		return 1;
 	}
@@ -1930,6 +1941,27 @@
 		err = copy_out_args(cs, req->args, nbytes);
 	fuse_copy_finish(cs);
 
+	if (!err && req->in.h.opcode == FUSE_CANONICAL_PATH && !oh.error) {
+		char *path = (char *)req->args->out_args[0].value;
+
+		path[req->args->out_args[0].size - 1] = 0;
+		req->out.h.error =
+			kern_path(path, 0, req->args->canonical_path);
+	}
+
+	if (!err && (req->in.h.opcode == FUSE_LOOKUP ||
+		     req->in.h.opcode == (FUSE_LOOKUP | FUSE_POSTFILTER)) &&
+		req->args->out_args[1].size == sizeof(struct fuse_entry_bpf_out)) {
+		struct fuse_entry_bpf_out *febo = (struct fuse_entry_bpf_out *)
+				req->args->out_args[1].value;
+		struct fuse_entry_bpf *feb = container_of(febo, struct fuse_entry_bpf, out);
+
+		if (febo->backing_action == FUSE_ACTION_REPLACE)
+			feb->backing_file = fget(febo->backing_fd);
+		if (febo->bpf_action == FUSE_ACTION_REPLACE)
+			feb->bpf_file = fget(febo->bpf_fd);
+	}
+
 	spin_lock(&fpq->lock);
 	clear_bit(FR_LOCKED, &req->flags);
 	if (!fpq->connected)
@@ -2276,7 +2308,8 @@
 				 * uses the same ioctl handler.
 				 */
 				if (old->f_op == file->f_op &&
-				    old->f_cred->user_ns == file->f_cred->user_ns)
+				    old->f_cred->user_ns ==
+					    file->f_cred->user_ns)
 					fud = fuse_get_dev(old);
 
 				if (fud) {
@@ -2288,6 +2321,15 @@
 			}
 		}
 		break;
+	case FUSE_DEV_IOC_PASSTHROUGH_OPEN:
+		res = -EFAULT;
+		if (!get_user(oldfd, (__u32 __user *)arg)) {
+			res = -EINVAL;
+			fud = fuse_get_dev(file);
+			if (fud)
+				res = fuse_passthrough_open(fud, oldfd);
+		}
+		break;
 	default:
 		res = -ENOTTY;
 		break;
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
index 4ea5290..b0164fa 100644
--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -8,8 +8,10 @@
 
 #include "fuse_i.h"
 
+#include <linux/fdtable.h>
 #include <linux/pagemap.h>
 #include <linux/file.h>
+#include <linux/filter.h>
 #include <linux/fs_context.h>
 #include <linux/sched.h>
 #include <linux/namei.h>
@@ -17,6 +19,11 @@
 #include <linux/xattr.h>
 #include <linux/iversion.h>
 #include <linux/posix_acl.h>
+#include <linux/security.h>
+#include <linux/types.h>
+#include <linux/kernel.h>
+
+#include "../internal.h"
 
 static void fuse_advise_use_readdirplus(struct inode *dir)
 {
@@ -25,7 +32,7 @@
 	set_bit(FUSE_I_ADVISE_RDPLUS, &fi->state);
 }
 
-#if BITS_PER_LONG >= 64
+#if BITS_PER_LONG >= 64 && !defined(CONFIG_FUSE_BPF)
 static inline void __fuse_dentry_settime(struct dentry *entry, u64 time)
 {
 	entry->d_fsdata = (void *) time;
@@ -37,19 +44,15 @@
 }
 
 #else
-union fuse_dentry {
-	u64 time;
-	struct rcu_head rcu;
-};
 
 static inline void __fuse_dentry_settime(struct dentry *dentry, u64 time)
 {
-	((union fuse_dentry *) dentry->d_fsdata)->time = time;
+	((struct fuse_dentry *) dentry->d_fsdata)->time = time;
 }
 
 static inline u64 fuse_dentry_time(const struct dentry *entry)
 {
-	return ((union fuse_dentry *) entry->d_fsdata)->time;
+	return ((struct fuse_dentry *) entry->d_fsdata)->time;
 }
 #endif
 
@@ -74,26 +77,16 @@
 	__fuse_dentry_settime(dentry, time);
 }
 
-/*
- * FUSE caches dentries and attributes with separate timeout.  The
- * time in jiffies until the dentry/attributes are valid is stored in
- * dentry->d_fsdata and fuse_inode->i_time respectively.
- */
-
-/*
- * Calculate the time in jiffies until a dentry/attributes are valid
- */
-static u64 time_to_jiffies(u64 sec, u32 nsec)
+void fuse_init_dentry_root(struct dentry *root, struct file *backing_dir)
 {
-	if (sec || nsec) {
-		struct timespec64 ts = {
-			sec,
-			min_t(u32, nsec, NSEC_PER_SEC - 1)
-		};
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_dentry *fuse_dentry = root->d_fsdata;
 
-		return get_jiffies_64() + timespec64_to_jiffies(&ts);
-	} else
-		return 0;
+	if (backing_dir) {
+		fuse_dentry->backing_path = backing_dir->f_path;
+		path_get(&fuse_dentry->backing_path);
+	}
+#endif
 }
 
 /*
@@ -106,11 +99,6 @@
 		time_to_jiffies(o->entry_valid, o->entry_valid_nsec));
 }
 
-static u64 attr_timeout(struct fuse_attr_out *o)
-{
-	return time_to_jiffies(o->attr_valid, o->attr_valid_nsec);
-}
-
 u64 entry_attr_timeout(struct fuse_entry_out *o)
 {
 	return time_to_jiffies(o->attr_valid, o->attr_valid_nsec);
@@ -171,7 +159,8 @@
 
 static void fuse_lookup_init(struct fuse_conn *fc, struct fuse_args *args,
 			     u64 nodeid, const struct qstr *name,
-			     struct fuse_entry_out *outarg)
+			     struct fuse_entry_out *outarg,
+			     struct fuse_entry_bpf_out *bpf_outarg)
 {
 	memset(outarg, 0, sizeof(struct fuse_entry_out));
 	args->opcode = FUSE_LOOKUP;
@@ -179,11 +168,57 @@
 	args->in_numargs = 1;
 	args->in_args[0].size = name->len + 1;
 	args->in_args[0].value = name->name;
-	args->out_numargs = 1;
+	args->out_argvar = true;
+	args->out_numargs = 2;
 	args->out_args[0].size = sizeof(struct fuse_entry_out);
 	args->out_args[0].value = outarg;
+	args->out_args[1].size = sizeof(struct fuse_entry_bpf_out);
+	args->out_args[1].value = bpf_outarg;
 }
 
+#ifdef CONFIG_FUSE_BPF
+static bool backing_data_changed(struct fuse_inode *fi, struct dentry *entry,
+				 struct fuse_entry_bpf *bpf_arg)
+{
+	struct path new_backing_path;
+	struct inode *new_backing_inode;
+	struct bpf_prog *bpf = NULL;
+	int err;
+	bool ret = true;
+
+	if (!entry) {
+		ret = false;
+		goto put_backing_file;
+	}
+
+	get_fuse_backing_path(entry, &new_backing_path);
+	new_backing_inode = fi->backing_inode;
+	ihold(new_backing_inode);
+
+	err = fuse_handle_backing(bpf_arg, &new_backing_inode, &new_backing_path);
+
+	if (err)
+		goto put_inode;
+
+	err = fuse_handle_bpf_prog(bpf_arg, entry->d_parent->d_inode, &bpf);
+	if (err)
+		goto put_bpf;
+
+	ret = (bpf != fi->bpf || fi->backing_inode != new_backing_inode ||
+			!path_equal(&get_fuse_dentry(entry)->backing_path, &new_backing_path));
+put_bpf:
+	if (bpf)
+		bpf_prog_put(bpf);
+put_inode:
+	iput(new_backing_inode);
+	path_put(&new_backing_path);
+put_backing_file:
+	if (bpf_arg->backing_file)
+		fput(bpf_arg->backing_file);
+	return ret;
+}
+#endif
+
 /*
  * Check whether the dentry is still valid
  *
@@ -204,9 +239,23 @@
 	inode = d_inode_rcu(entry);
 	if (inode && fuse_is_bad(inode))
 		goto invalid;
-	else if (time_before64(fuse_dentry_time(entry), get_jiffies_64()) ||
+
+#ifdef CONFIG_FUSE_BPF
+	/* TODO: Do we need bpf support for revalidate?
+	 * If the lower filesystem says the entry is invalid, FUSE probably shouldn't
+	 * try to fix that without going through the normal lookup path...
+	 */
+	if (get_fuse_dentry(entry)->backing_path.dentry) {
+		ret = fuse_revalidate_backing(entry, flags);
+		if (ret <= 0) {
+			goto out;
+		}
+	}
+#endif
+	if (time_before64(fuse_dentry_time(entry), get_jiffies_64()) ||
 		 (flags & (LOOKUP_EXCL | LOOKUP_REVAL | LOOKUP_RENAME_TARGET))) {
 		struct fuse_entry_out outarg;
+		struct fuse_entry_bpf bpf_arg;
 		FUSE_ARGS(args);
 		struct fuse_forget_link *forget;
 		u64 attr_version;
@@ -218,27 +267,44 @@
 		ret = -ECHILD;
 		if (flags & LOOKUP_RCU)
 			goto out;
-
 		fm = get_fuse_mount(inode);
 
+		parent = dget_parent(entry);
+
+#ifdef CONFIG_FUSE_BPF
+		/* TODO: Once we're handling timeouts for backing inodes, do a
+		 * bpf based lookup_revalidate here.
+		 */
+		if (get_fuse_inode(parent->d_inode)->backing_inode) {
+			dput(parent);
+			ret = 1;
+			goto out;
+		}
+#endif
 		forget = fuse_alloc_forget();
 		ret = -ENOMEM;
-		if (!forget)
+		if (!forget) {
+			dput(parent);
 			goto out;
+		}
 
 		attr_version = fuse_get_attr_version(fm->fc);
 
-		parent = dget_parent(entry);
 		fuse_lookup_init(fm->fc, &args, get_node_id(d_inode(parent)),
-				 &entry->d_name, &outarg);
+				 &entry->d_name, &outarg, &bpf_arg.out);
 		ret = fuse_simple_request(fm, &args);
 		dput(parent);
+
 		/* Zero nodeid is same as -ENOENT */
 		if (!ret && !outarg.nodeid)
 			ret = -ENOENT;
-		if (!ret) {
+		if (!ret || ret == sizeof(bpf_arg.out)) {
 			fi = get_fuse_inode(inode);
 			if (outarg.nodeid != get_node_id(inode) ||
+#ifdef CONFIG_FUSE_BPF
+			    (ret == sizeof(bpf_arg.out) &&
+					    backing_data_changed(fi, entry, &bpf_arg)) ||
+#endif
 			    (bool) IS_AUTOMOUNT(inode) != (bool) (outarg.attr.flags & FUSE_ATTR_SUBMOUNT)) {
 				fuse_queue_forget(fm->fc, forget,
 						  outarg.nodeid, 1);
@@ -280,17 +346,25 @@
 	goto out;
 }
 
-#if BITS_PER_LONG < 64
+#if BITS_PER_LONG < 64 || defined(CONFIG_FUSE_BPF)
 static int fuse_dentry_init(struct dentry *dentry)
 {
-	dentry->d_fsdata = kzalloc(sizeof(union fuse_dentry),
+	dentry->d_fsdata = kzalloc(sizeof(struct fuse_dentry),
 				   GFP_KERNEL_ACCOUNT | __GFP_RECLAIMABLE);
 
 	return dentry->d_fsdata ? 0 : -ENOMEM;
 }
 static void fuse_dentry_release(struct dentry *dentry)
 {
-	union fuse_dentry *fd = dentry->d_fsdata;
+	struct fuse_dentry *fd = dentry->d_fsdata;
+
+#ifdef CONFIG_FUSE_BPF
+	if (fd && fd->backing_path.dentry)
+		path_put(&fd->backing_path);
+
+	if (fd && fd->bpf)
+		bpf_prog_put(fd->bpf);
+#endif
 
 	kfree_rcu(fd, rcu);
 }
@@ -328,18 +402,80 @@
 	return mnt;
 }
 
+/*
+ * Get the canonical path. Since we must translate to a path, this must be done
+ * in the context of the userspace daemon, however, the userspace daemon cannot
+ * look up paths on its own. Instead, we handle the lookup as a special case
+ * inside of the write request.
+ */
+static void fuse_dentry_canonical_path(const struct path *path,
+				       struct path *canonical_path)
+{
+	struct inode *inode = d_inode(path->dentry);
+	//struct fuse_conn *fc = get_fuse_conn(inode);
+	struct fuse_mount *fm = get_fuse_mount_super(path->mnt->mnt_sb);
+	FUSE_ARGS(args);
+	char *path_name;
+	int err;
+
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_dummy_io,
+			       fuse_canonical_path_initialize,
+			       fuse_canonical_path_backing,
+			       fuse_canonical_path_finalize, path,
+			       canonical_path);
+	if (fer.ret) {
+		if (IS_ERR(fer.result))
+			canonical_path->dentry = fer.result;
+		return;
+	}
+#endif
+
+	path_name = (char *)get_zeroed_page(GFP_KERNEL);
+	if (!path_name) {
+		canonical_path->dentry = ERR_PTR(-ENOMEM);
+		return;
+	}
+
+	args.opcode = FUSE_CANONICAL_PATH;
+	args.nodeid = get_node_id(inode);
+	args.in_numargs = 0;
+	args.out_numargs = 1;
+	args.out_args[0].size = PATH_MAX;
+	args.out_args[0].value = path_name;
+	args.canonical_path = canonical_path;
+	args.out_argvar = 1;
+
+	err = fuse_simple_request(fm, &args);
+	free_page((unsigned long)path_name);
+	if (err > 0)
+		return;
+	if (err < 0) {
+		canonical_path->dentry = ERR_PTR(err);
+		return;
+	}
+
+	canonical_path->dentry = path->dentry;
+	canonical_path->mnt = path->mnt;
+	path_get(canonical_path);
+	return;
+}
+
 const struct dentry_operations fuse_dentry_operations = {
 	.d_revalidate	= fuse_dentry_revalidate,
 	.d_delete	= fuse_dentry_delete,
-#if BITS_PER_LONG < 64
+#if BITS_PER_LONG < 64 || defined(CONFIG_FUSE_BPF)
 	.d_init		= fuse_dentry_init,
 	.d_release	= fuse_dentry_release,
 #endif
 	.d_automount	= fuse_dentry_automount,
+	.d_canonical_path = fuse_dentry_canonical_path,
 };
 
 const struct dentry_operations fuse_root_dentry_operations = {
-#if BITS_PER_LONG < 64
+#if BITS_PER_LONG < 64 || defined(CONFIG_FUSE_BPF)
 	.d_init		= fuse_dentry_init,
 	.d_release	= fuse_dentry_release,
 #endif
@@ -358,10 +494,13 @@
 }
 
 int fuse_lookup_name(struct super_block *sb, u64 nodeid, const struct qstr *name,
-		     struct fuse_entry_out *outarg, struct inode **inode)
+		     struct fuse_entry_out *outarg,
+		     struct dentry *entry,
+		     struct inode **inode)
 {
 	struct fuse_mount *fm = get_fuse_mount_super(sb);
 	FUSE_ARGS(args);
+	struct fuse_entry_bpf bpf_arg = {0};
 	struct fuse_forget_link *forget;
 	u64 attr_version;
 	int err;
@@ -371,7 +510,6 @@
 	if (name->len > FUSE_NAME_MAX)
 		goto out;
 
-
 	forget = fuse_alloc_forget();
 	err = -ENOMEM;
 	if (!forget)
@@ -379,23 +517,65 @@
 
 	attr_version = fuse_get_attr_version(fm->fc);
 
-	fuse_lookup_init(fm->fc, &args, nodeid, name, outarg);
+	fuse_lookup_init(fm->fc, &args, nodeid, name, outarg, &bpf_arg.out);
 	err = fuse_simple_request(fm, &args);
-	/* Zero nodeid is same as -ENOENT, but with valid timeout */
-	if (err || !outarg->nodeid)
-		goto out_put_forget;
 
-	err = -EIO;
-	if (!outarg->nodeid)
-		goto out_put_forget;
-	if (fuse_invalid_attr(&outarg->attr))
-		goto out_put_forget;
+#ifdef CONFIG_FUSE_BPF
+	if (err == sizeof(bpf_arg.out)) {
+		/* TODO Make sure this handles invalid handles */
+		struct file *backing_file;
+		struct inode *backing_inode;
 
-	*inode = fuse_iget(sb, outarg->nodeid, outarg->generation,
-			   &outarg->attr, entry_attr_timeout(outarg),
-			   attr_version);
+		err = -ENOENT;
+		if (!entry)
+			goto out_put_forget;
+
+		err = -EINVAL;
+		backing_file = bpf_arg.backing_file;
+		if (!backing_file)
+			goto out_put_forget;
+
+		if (IS_ERR(backing_file)) {
+			err = PTR_ERR(backing_file);
+			goto out_put_forget;
+		}
+
+		backing_inode = backing_file->f_inode;
+		*inode = fuse_iget_backing(sb, outarg->nodeid, backing_inode);
+		if (!*inode)
+			goto out_put_forget;
+
+		err = fuse_handle_backing(&bpf_arg,
+				&get_fuse_inode(*inode)->backing_inode,
+				&get_fuse_dentry(entry)->backing_path);
+		if (!err)
+			err = fuse_handle_bpf_prog(&bpf_arg, NULL,
+					   &get_fuse_inode(*inode)->bpf);
+		if (err) {
+			iput(*inode);
+			*inode = NULL;
+			goto out_put_forget;
+		}
+	} else
+#endif
+	{
+		/* Zero nodeid is same as -ENOENT, but with valid timeout */
+		if (err || !outarg->nodeid)
+			goto out_put_forget;
+
+		err = -EIO;
+		if (!outarg->nodeid)
+			goto out_put_forget;
+		if (fuse_invalid_attr(&outarg->attr))
+			goto out_put_forget;
+
+		*inode = fuse_iget(sb, outarg->nodeid, outarg->generation,
+				   &outarg->attr, entry_attr_timeout(outarg),
+				   attr_version);
+	}
+
 	err = -ENOMEM;
-	if (!*inode) {
+	if (!*inode && outarg->nodeid) {
 		fuse_queue_forget(fm->fc, forget, outarg->nodeid, 1);
 		goto out;
 	}
@@ -404,6 +584,8 @@
  out_put_forget:
 	kfree(forget);
  out:
+	if (bpf_arg.backing_file)
+		fput(bpf_arg.backing_file);
 	return err;
 }
 
@@ -417,12 +599,23 @@
 	bool outarg_valid = true;
 	bool locked;
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(dir, struct fuse_lookup_io,
+			       fuse_lookup_initialize, fuse_lookup_backing,
+			       fuse_lookup_finalize,
+			       dir, entry, flags);
+	if (fer.ret)
+		return fer.result;
+#endif
+
 	if (fuse_is_bad(dir))
 		return ERR_PTR(-EIO);
 
 	locked = fuse_lock_inode(dir);
 	err = fuse_lookup_name(dir->i_sb, get_node_id(dir), &entry->d_name,
-			       &outarg, &inode);
+			       &outarg, entry, &inode);
 	fuse_unlock_inode(dir, locked);
 	if (err == -ENOENT) {
 		outarg_valid = false;
@@ -456,6 +649,62 @@
 	return ERR_PTR(err);
 }
 
+static int get_security_context(struct dentry *entry, umode_t mode,
+				void **security_ctx, u32 *security_ctxlen)
+{
+	struct fuse_secctx *fctx;
+	struct fuse_secctx_header *header;
+	void *ctx = NULL, *ptr;
+	u32 ctxlen, total_len = sizeof(*header);
+	int err, nr_ctx = 0;
+	const char *name;
+	size_t namelen;
+
+	err = security_dentry_init_security(entry, mode, &entry->d_name,
+					    &name, &ctx, &ctxlen);
+	if (err) {
+		if (err != -EOPNOTSUPP)
+			goto out_err;
+		/* No LSM is supporting this security hook. Ignore error */
+		ctxlen = 0;
+		ctx = NULL;
+	}
+
+	if (ctxlen) {
+		nr_ctx = 1;
+		namelen = strlen(name) + 1;
+		err = -EIO;
+		if (WARN_ON(namelen > XATTR_NAME_MAX + 1 || ctxlen > S32_MAX))
+			goto out_err;
+		total_len += FUSE_REC_ALIGN(sizeof(*fctx) + namelen + ctxlen);
+	}
+
+	err = -ENOMEM;
+	header = ptr = kzalloc(total_len, GFP_KERNEL);
+	if (!ptr)
+		goto out_err;
+
+	header->nr_secctx = nr_ctx;
+	header->size = total_len;
+	ptr += sizeof(*header);
+	if (nr_ctx) {
+		fctx = ptr;
+		fctx->size = ctxlen;
+		ptr += sizeof(*fctx);
+
+		strcpy(ptr, name);
+		ptr += namelen;
+
+		memcpy(ptr, ctx, ctxlen);
+	}
+	*security_ctxlen = total_len;
+	*security_ctx = header;
+	err = 0;
+out_err:
+	kfree(ctx);
+	return err;
+}
+
 /*
  * Atomic create+open operation
  *
@@ -468,6 +717,7 @@
 {
 	int err;
 	struct inode *inode;
+	struct fuse_conn *fc = get_fuse_conn(dir);
 	struct fuse_mount *fm = get_fuse_mount(dir);
 	FUSE_ARGS(args);
 	struct fuse_forget_link *forget;
@@ -476,11 +726,27 @@
 	struct fuse_entry_out outentry;
 	struct fuse_inode *fi;
 	struct fuse_file *ff;
+	void *security_ctx = NULL;
+	u32 security_ctxlen;
 	bool trunc = flags & O_TRUNC;
 
 	/* Userspace expects S_IFREG in create mode */
 	BUG_ON((mode & S_IFMT) != S_IFREG);
 
+#ifdef CONFIG_FUSE_BPF
+	{
+		struct fuse_err_ret fer;
+
+		fer = fuse_bpf_backing(dir, struct fuse_create_open_io,
+				       fuse_create_open_initialize,
+				       fuse_create_open_backing,
+				       fuse_create_open_finalize,
+				       dir, entry, file, flags, mode);
+		if (fer.ret)
+			return PTR_ERR(fer.result);
+	}
+#endif
+
 	forget = fuse_alloc_forget();
 	err = -ENOMEM;
 	if (!forget)
@@ -518,7 +784,20 @@
 	args.out_args[0].value = &outentry;
 	args.out_args[1].size = sizeof(outopen);
 	args.out_args[1].value = &outopen;
+
+	if (fm->fc->init_security) {
+		err = get_security_context(entry, mode, &security_ctx,
+					   &security_ctxlen);
+		if (err)
+			goto out_put_forget_req;
+
+		args.in_numargs = 3;
+		args.in_args[2].size = security_ctxlen;
+		args.in_args[2].value = security_ctx;
+	}
+
 	err = fuse_simple_request(fm, &args);
+	kfree(security_ctx);
 	if (err)
 		goto out_free_ff;
 
@@ -530,6 +809,7 @@
 	ff->fh = outopen.fh;
 	ff->nodeid = outentry.nodeid;
 	ff->open_flags = outopen.open_flags;
+	fuse_passthrough_setup(fc, ff, &outopen);
 	inode = fuse_iget(dir->i_sb, outentry.nodeid, outentry.generation,
 			  &outentry.attr, entry_attr_timeout(&outentry), 0);
 	if (!inode) {
@@ -625,6 +905,8 @@
 	struct dentry *d;
 	int err;
 	struct fuse_forget_link *forget;
+	void *security_ctx = NULL;
+	u32 security_ctxlen;
 
 	if (fuse_is_bad(dir))
 		return -EIO;
@@ -638,7 +920,22 @@
 	args->out_numargs = 1;
 	args->out_args[0].size = sizeof(outarg);
 	args->out_args[0].value = &outarg;
+
+	if (fm->fc->init_security && args->opcode != FUSE_LINK) {
+		err = get_security_context(entry, mode, &security_ctx,
+					   &security_ctxlen);
+		if (err)
+			goto out_put_forget_req;
+
+		BUG_ON(args->in_numargs != 2);
+
+		args->in_numargs = 3;
+		args->in_args[2].size = security_ctxlen;
+		args->in_args[2].value = security_ctx;
+	}
+
 	err = fuse_simple_request(fm, args);
+	kfree(security_ctx);
 	if (err)
 		goto out_put_forget_req;
 
@@ -683,6 +980,17 @@
 	struct fuse_mount *fm = get_fuse_mount(dir);
 	FUSE_ARGS(args);
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(dir, struct fuse_mknod_in,
+			fuse_mknod_initialize, fuse_mknod_backing,
+			fuse_mknod_finalize,
+			dir, entry, mode, rdev);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (!fm->fc->dont_mask)
 		mode &= ~current_umask();
 
@@ -712,6 +1020,17 @@
 	struct fuse_mount *fm = get_fuse_mount(dir);
 	FUSE_ARGS(args);
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(dir, struct fuse_mkdir_in,
+			fuse_mkdir_initialize, fuse_mkdir_backing,
+			fuse_mkdir_finalize,
+			dir, entry, mode);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (!fm->fc->dont_mask)
 		mode &= ~current_umask();
 
@@ -734,6 +1053,17 @@
 	unsigned len = strlen(link) + 1;
 	FUSE_ARGS(args);
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(dir, struct fuse_dummy_io,
+			fuse_symlink_initialize, fuse_symlink_backing,
+			fuse_symlink_finalize,
+			dir, entry, link, len);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	args.opcode = FUSE_SYMLINK;
 	args.in_numargs = 2;
 	args.in_args[0].size = entry->d_name.len + 1;
@@ -768,6 +1098,20 @@
 	if (fuse_is_bad(dir))
 		return -EIO;
 
+#ifdef CONFIG_FUSE_BPF
+	{
+		struct fuse_err_ret fer;
+
+		fer = fuse_bpf_backing(dir, struct fuse_dummy_io,
+					fuse_unlink_initialize,
+					fuse_unlink_backing,
+					fuse_unlink_finalize,
+					dir, entry);
+		if (fer.ret)
+			return PTR_ERR(fer.result);
+	}
+#endif
+
 	args.opcode = FUSE_UNLINK;
 	args.nodeid = get_node_id(dir);
 	args.in_numargs = 1;
@@ -807,6 +1151,20 @@
 	if (fuse_is_bad(dir))
 		return -EIO;
 
+#ifdef CONFIG_FUSE_BPF
+	{
+		struct fuse_err_ret fer;
+
+		fer = fuse_bpf_backing(dir, struct fuse_dummy_io,
+					fuse_rmdir_initialize,
+					fuse_rmdir_backing,
+					fuse_rmdir_finalize,
+					dir, entry);
+		if (fer.ret)
+			return PTR_ERR(fer.result);
+	}
+#endif
+
 	args.opcode = FUSE_RMDIR;
 	args.nodeid = get_node_id(dir);
 	args.in_numargs = 1;
@@ -892,6 +1250,18 @@
 		return -EINVAL;
 
 	if (flags) {
+#ifdef CONFIG_FUSE_BPF
+		struct fuse_err_ret fer;
+
+		fer = fuse_bpf_backing(olddir, struct fuse_rename2_in,
+						fuse_rename2_initialize, fuse_rename2_backing,
+						fuse_rename2_finalize,
+						olddir, oldent, newdir, newent, flags);
+		if (fer.ret)
+			return PTR_ERR(fer.result);
+#endif
+
+		/* TODO: how should this go with bpfs involved? */
 		if (fc->no_rename2 || fc->minor < 23)
 			return -EINVAL;
 
@@ -903,6 +1273,17 @@
 			err = -EINVAL;
 		}
 	} else {
+#ifdef CONFIG_FUSE_BPF
+		struct fuse_err_ret fer;
+
+		fer = fuse_bpf_backing(olddir, struct fuse_rename_in,
+						fuse_rename_initialize, fuse_rename_backing,
+						fuse_rename_finalize,
+						olddir, oldent, newdir, newent);
+		if (fer.ret)
+			return PTR_ERR(fer.result);
+#endif
+
 		err = fuse_rename_common(olddir, oldent, newdir, newent, 0,
 					 FUSE_RENAME,
 					 sizeof(struct fuse_rename_in));
@@ -920,6 +1301,16 @@
 	struct fuse_mount *fm = get_fuse_mount(inode);
 	FUSE_ARGS(args);
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_link_in, fuse_link_initialize,
+			       fuse_link_backing, fuse_link_finalize, entry,
+			       newdir, newent);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	memset(&inarg, 0, sizeof(inarg));
 	inarg.oldnodeid = get_node_id(inode);
 	args.opcode = FUSE_LINK;
@@ -951,7 +1342,7 @@
 	return err;
 }
 
-static void fuse_fillattr(struct inode *inode, struct fuse_attr *attr,
+void fuse_fillattr(struct inode *inode, struct fuse_attr *attr,
 			  struct kstat *stat)
 {
 	unsigned int blkbits;
@@ -1020,23 +1411,13 @@
 	args.out_args[0].size = sizeof(outarg);
 	args.out_args[0].value = &outarg;
 	err = fuse_simple_request(fm, &args);
-	if (!err) {
-		if (fuse_invalid_attr(&outarg.attr) ||
-		    inode_wrong_type(inode, outarg.attr.mode)) {
-			fuse_make_bad(inode);
-			err = -EIO;
-		} else {
-			fuse_change_attributes(inode, &outarg.attr,
-					       attr_timeout(&outarg),
-					       attr_version);
-			if (stat)
-				fuse_fillattr(inode, &outarg.attr, stat);
-		}
-	}
+	if (!err)
+		err = finalize_attr(inode, &outarg, attr_version, stat);
 	return err;
 }
 
 static int fuse_update_get_attr(struct inode *inode, struct file *file,
+				const struct path *path,
 				struct kstat *stat, u32 request_mask,
 				unsigned int flags)
 {
@@ -1044,6 +1425,17 @@
 	int err = 0;
 	bool sync;
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_getattr_io,
+			       fuse_getattr_initialize,	fuse_getattr_backing,
+			       fuse_getattr_finalize,
+			       path->dentry, stat, request_mask, flags);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (flags & AT_STATX_FORCE_SYNC)
 		sync = true;
 	else if (flags & AT_STATX_DONT_SYNC)
@@ -1068,7 +1460,7 @@
 int fuse_update_attributes(struct inode *inode, struct file *file)
 {
 	/* Do *not* need to get atime for internal purposes */
-	return fuse_update_get_attr(inode, file, NULL,
+	return fuse_update_get_attr(inode, file, &file->f_path, NULL,
 				    STATX_BASIC_STATS & ~STATX_ATIME, 0);
 }
 
@@ -1177,6 +1569,16 @@
 	struct fuse_access_in inarg;
 	int err;
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_access_in,
+			       fuse_access_initialize, fuse_access_backing,
+			       fuse_access_finalize, inode, mask);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	BUG_ON(mask & MAY_NOT_BLOCK);
 
 	if (fm->fc->no_access)
@@ -1225,6 +1627,10 @@
 	struct fuse_conn *fc = get_fuse_conn(inode);
 	bool refreshed = false;
 	int err = 0;
+	struct fuse_inode *fi = get_fuse_inode(inode);
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+#endif
 
 	if (fuse_is_bad(inode))
 		return -EIO;
@@ -1232,12 +1638,19 @@
 	if (!fuse_allow_current_process(fc))
 		return -EACCES;
 
+#ifdef CONFIG_FUSE_BPF
+	fer = fuse_bpf_backing(inode, struct fuse_access_in,
+			       fuse_access_initialize, fuse_access_backing,
+			       fuse_access_finalize, inode, mask);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	/*
 	 * If attributes are needed, refresh them before proceeding
 	 */
 	if (fc->default_permissions ||
 	    ((mask & MAY_EXEC) && S_ISREG(inode->i_mode))) {
-		struct fuse_inode *fi = get_fuse_inode(inode);
 		u32 perm_mask = STATX_MODE | STATX_UID | STATX_GID;
 
 		if (perm_mask & READ_ONCE(fi->inval_mask) ||
@@ -1328,6 +1741,21 @@
 	if (fuse_is_bad(inode))
 		goto out_err;
 
+#ifdef CONFIG_FUSE_BPF
+	{
+		struct fuse_err_ret fer;
+		const char *out = NULL;
+
+		fer = fuse_bpf_backing(inode, struct fuse_dummy_io,
+				       fuse_get_link_initialize,
+				       fuse_get_link_backing,
+				       fuse_get_link_finalize,
+				       inode, dentry, callback, &out);
+		if (fer.ret)
+			return fer.result ?: out;
+	}
+#endif
+
 	if (fc->cache_symlinks)
 		return page_get_link(dentry, inode, callback);
 
@@ -1362,7 +1790,6 @@
 static int fuse_dir_release(struct inode *inode, struct file *file)
 {
 	fuse_release_common(file, true);
-
 	return 0;
 }
 
@@ -1376,6 +1803,19 @@
 	if (fuse_is_bad(inode))
 		return -EIO;
 
+#ifdef CONFIG_FUSE_BPF
+	{
+		struct fuse_err_ret fer;
+
+		fer = fuse_bpf_backing(inode, struct fuse_fsync_in,
+				fuse_dir_fsync_initialize, fuse_fsync_backing,
+				fuse_fsync_finalize,
+				file, start, end, datasync);
+		if (fer.ret)
+			return PTR_ERR(fer.result);
+	}
+#endif
+
 	if (fc->no_fsyncdir)
 		return 0;
 
@@ -1414,58 +1854,6 @@
 				 FUSE_IOCTL_COMPAT | FUSE_IOCTL_DIR);
 }
 
-static bool update_mtime(unsigned ivalid, bool trust_local_mtime)
-{
-	/* Always update if mtime is explicitly set  */
-	if (ivalid & ATTR_MTIME_SET)
-		return true;
-
-	/* Or if kernel i_mtime is the official one */
-	if (trust_local_mtime)
-		return true;
-
-	/* If it's an open(O_TRUNC) or an ftruncate(), don't update */
-	if ((ivalid & ATTR_SIZE) && (ivalid & (ATTR_OPEN | ATTR_FILE)))
-		return false;
-
-	/* In all other cases update */
-	return true;
-}
-
-static void iattr_to_fattr(struct fuse_conn *fc, struct iattr *iattr,
-			   struct fuse_setattr_in *arg, bool trust_local_cmtime)
-{
-	unsigned ivalid = iattr->ia_valid;
-
-	if (ivalid & ATTR_MODE)
-		arg->valid |= FATTR_MODE,   arg->mode = iattr->ia_mode;
-	if (ivalid & ATTR_UID)
-		arg->valid |= FATTR_UID,    arg->uid = from_kuid(fc->user_ns, iattr->ia_uid);
-	if (ivalid & ATTR_GID)
-		arg->valid |= FATTR_GID,    arg->gid = from_kgid(fc->user_ns, iattr->ia_gid);
-	if (ivalid & ATTR_SIZE)
-		arg->valid |= FATTR_SIZE,   arg->size = iattr->ia_size;
-	if (ivalid & ATTR_ATIME) {
-		arg->valid |= FATTR_ATIME;
-		arg->atime = iattr->ia_atime.tv_sec;
-		arg->atimensec = iattr->ia_atime.tv_nsec;
-		if (!(ivalid & ATTR_ATIME_SET))
-			arg->valid |= FATTR_ATIME_NOW;
-	}
-	if ((ivalid & ATTR_MTIME) && update_mtime(ivalid, trust_local_cmtime)) {
-		arg->valid |= FATTR_MTIME;
-		arg->mtime = iattr->ia_mtime.tv_sec;
-		arg->mtimensec = iattr->ia_mtime.tv_nsec;
-		if (!(ivalid & ATTR_MTIME_SET) && !trust_local_cmtime)
-			arg->valid |= FATTR_MTIME_NOW;
-	}
-	if ((ivalid & ATTR_CTIME) && trust_local_cmtime) {
-		arg->valid |= FATTR_CTIME;
-		arg->ctime = iattr->ia_ctime.tv_sec;
-		arg->ctimensec = iattr->ia_ctime.tv_nsec;
-	}
-}
-
 /*
  * Prevent concurrent writepages on inode
  *
@@ -1580,6 +1968,16 @@
 	bool trust_local_cmtime = is_wb && S_ISREG(inode->i_mode);
 	bool fault_blocked = false;
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_setattr_io,
+			       fuse_setattr_initialize, fuse_setattr_backing,
+			       fuse_setattr_finalize, dentry, attr, file);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (!fc->default_permissions)
 		attr->ia_valid |= ATTR_FORCE;
 
@@ -1754,11 +2152,22 @@
 		 * This should be done on write(), truncate() and chown().
 		 */
 		if (!fc->handle_killpriv && !fc->handle_killpriv_v2) {
+#ifdef CONFIG_FUSE_BPF
+			struct fuse_err_ret fer;
+
 			/*
 			 * ia_mode calculation may have used stale i_mode.
 			 * Refresh and recalculate.
 			 */
-			ret = fuse_do_getattr(inode, NULL, file);
+			fer = fuse_bpf_backing(inode, struct fuse_getattr_io,
+					       fuse_getattr_initialize,	fuse_getattr_backing,
+					       fuse_getattr_finalize,
+					       entry, NULL, 0, 0);
+			if (fer.ret)
+				ret = PTR_ERR(fer.result);
+			else
+#endif
+				ret = fuse_do_getattr(inode, NULL, file);
 			if (ret)
 				return ret;
 
@@ -1815,7 +2224,8 @@
 		return -EACCES;
 	}
 
-	return fuse_update_get_attr(inode, NULL, stat, request_mask, flags);
+	return fuse_update_get_attr(inode, NULL, path, stat, request_mask,
+				    flags);
 }
 
 static const struct inode_operations fuse_dir_inode_operations = {
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 2c4cac6..48b02d64 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -8,6 +8,7 @@
 
 #include "fuse_i.h"
 
+#include <linux/filter.h>
 #include <linux/pagemap.h>
 #include <linux/slab.h>
 #include <linux/kernel.h>
@@ -103,25 +104,39 @@
 	kfree(ra);
 }
 
-static void fuse_file_put(struct fuse_file *ff, bool sync, bool isdir)
+static void fuse_file_put(struct inode *inode, struct fuse_file *ff,
+			  bool sync, bool isdir)
 {
-	if (refcount_dec_and_test(&ff->count)) {
-		struct fuse_args *args = &ff->release_args->args;
+	struct fuse_args *args = &ff->release_args->args;
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+#endif
 
-		if (isdir ? ff->fm->fc->no_opendir : ff->fm->fc->no_open) {
-			/* Do nothing when client does not implement 'open' */
-			fuse_release_end(ff->fm, args, 0);
-		} else if (sync) {
-			fuse_simple_request(ff->fm, args);
-			fuse_release_end(ff->fm, args, 0);
-		} else {
-			args->end = fuse_release_end;
-			if (fuse_simple_background(ff->fm, args,
-						   GFP_KERNEL | __GFP_NOFAIL))
-				fuse_release_end(ff->fm, args, -ENOTCONN);
-		}
-		kfree(ff);
+	if (!refcount_dec_and_test(&ff->count))
+		return;
+
+#ifdef CONFIG_FUSE_BPF
+	fer = fuse_bpf_backing(inode, struct fuse_release_in,
+		       fuse_release_initialize, fuse_release_backing,
+		       fuse_release_finalize,
+		       inode, ff);
+	if (fer.ret) {
+		fuse_release_end(ff->fm, args, 0);
+	} else
+#endif
+	if (isdir ? ff->fm->fc->no_opendir : ff->fm->fc->no_open) {
+		/* Do nothing when client does not implement 'open' */
+		fuse_release_end(ff->fm, args, 0);
+	} else if (sync) {
+		fuse_simple_request(ff->fm, args);
+		fuse_release_end(ff->fm, args, 0);
+	} else {
+		args->end = fuse_release_end;
+		if (fuse_simple_background(ff->fm, args,
+				GFP_KERNEL | __GFP_NOFAIL))
+			fuse_release_end(ff->fm, args, -ENOTCONN);
 	}
+	kfree(ff);
 }
 
 struct fuse_file *fuse_file_open(struct fuse_mount *fm, u64 nodeid,
@@ -146,7 +161,7 @@
 		if (!err) {
 			ff->fh = outarg.fh;
 			ff->open_flags = outarg.open_flags;
-
+			fuse_passthrough_setup(fc, ff, &outarg);
 		} else if (err != -ENOSYS) {
 			fuse_file_free(ff);
 			return ERR_PTR(err);
@@ -237,6 +252,20 @@
 	if (err)
 		return err;
 
+#ifdef CONFIG_FUSE_BPF
+	{
+		struct fuse_err_ret fer;
+
+		fer = fuse_bpf_backing(inode, struct fuse_open_io,
+				       fuse_open_initialize,
+				       fuse_open_backing,
+				       fuse_open_finalize,
+				       inode, file, isdir);
+		if (fer.ret)
+			return PTR_ERR(fer.result);
+	}
+#endif
+
 	if (is_wb_truncate || dax_truncate)
 		inode_lock(inode);
 
@@ -310,6 +339,8 @@
 	struct fuse_release_args *ra = ff->release_args;
 	int opcode = isdir ? FUSE_RELEASEDIR : FUSE_RELEASE;
 
+	fuse_passthrough_release(&ff->passthrough);
+
 	fuse_prepare_release(fi, ff, open_flags, opcode);
 
 	if (ff->flock) {
@@ -328,7 +359,7 @@
 	 * synchronous RELEASE is allowed (and desirable) in this case
 	 * because the server can be trusted not to screw up.
 	 */
-	fuse_file_put(ff, ff->fm->fc->destroy, isdir);
+	fuse_file_put(ra->inode, ff, ff->fm->fc->destroy, isdir);
 }
 
 void fuse_release_common(struct file *file, bool isdir)
@@ -365,7 +396,7 @@
 	 * iput(NULL) is a no-op and since the refcount is 1 and everything's
 	 * synchronous, we are fine with not doing igrab() here"
 	 */
-	fuse_file_put(ff, true, false);
+	fuse_file_put(&fi->inode, ff, true, false);
 }
 EXPORT_SYMBOL_GPL(fuse_sync_release);
 
@@ -485,6 +516,17 @@
 	FUSE_ARGS(args);
 	int err;
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(file->f_inode, struct fuse_flush_in,
+			       fuse_flush_initialize, fuse_flush_backing,
+			       fuse_flush_finalize,
+			       file, id);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (fuse_is_bad(inode))
 		return -EIO;
 
@@ -557,6 +599,17 @@
 	struct fuse_conn *fc = get_fuse_conn(inode);
 	int err;
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_fsync_in,
+			       fuse_fsync_initialize, fuse_fsync_backing,
+			       fuse_fsync_finalize,
+			       file, start, end, datasync);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (fuse_is_bad(inode))
 		return -EIO;
 
@@ -917,8 +970,11 @@
 		unlock_page(page);
 		put_page(page);
 	}
-	if (ia->ff)
-		fuse_file_put(ia->ff, false, false);
+	if (ia->ff) {
+		WARN_ON(!mapping);
+		fuse_file_put(mapping ? mapping->host : NULL, ia->ff,
+			      false, false);
+	}
 
 	fuse_io_free(ia);
 }
@@ -1589,7 +1645,23 @@
 	if (FUSE_IS_DAX(inode))
 		return fuse_dax_read_iter(iocb, to);
 
-	if (!(ff->open_flags & FOPEN_DIRECT_IO))
+#ifdef CONFIG_FUSE_BPF
+	{
+		struct fuse_err_ret fer;
+
+		fer = fuse_bpf_backing(inode, struct fuse_file_read_iter_io,
+				       fuse_file_read_iter_initialize,
+				       fuse_file_read_iter_backing,
+				       fuse_file_read_iter_finalize,
+				       iocb, to);
+		if (fer.ret)
+			return PTR_ERR(fer.result);
+	}
+#endif
+
+	if (ff->passthrough.filp)
+		return fuse_passthrough_read_iter(iocb, to);
+	else if (!(ff->open_flags & FOPEN_DIRECT_IO))
 		return fuse_cache_read_iter(iocb, to);
 	else
 		return fuse_direct_read_iter(iocb, to);
@@ -1607,7 +1679,23 @@
 	if (FUSE_IS_DAX(inode))
 		return fuse_dax_write_iter(iocb, from);
 
-	if (!(ff->open_flags & FOPEN_DIRECT_IO))
+#ifdef CONFIG_FUSE_BPF
+	{
+		struct fuse_err_ret fer;
+
+		fer = fuse_bpf_backing(inode, struct fuse_file_write_iter_io,
+				       fuse_file_write_iter_initialize,
+				       fuse_file_write_iter_backing,
+				       fuse_file_write_iter_finalize,
+				       iocb, from);
+		if (fer.ret)
+			return PTR_ERR(fer.result);
+	}
+#endif
+
+	if (ff->passthrough.filp)
+		return fuse_passthrough_write_iter(iocb, from);
+	else if (!(ff->open_flags & FOPEN_DIRECT_IO))
 		return fuse_cache_write_iter(iocb, from);
 	else
 		return fuse_direct_write_iter(iocb, from);
@@ -1625,7 +1713,7 @@
 		__free_page(ap->pages[i]);
 
 	if (wpa->ia.ff)
-		fuse_file_put(wpa->ia.ff, false, false);
+		fuse_file_put(wpa->inode, wpa->ia.ff, false, false);
 
 	kfree(ap->pages);
 	kfree(wpa);
@@ -1854,6 +1942,19 @@
 	struct fuse_file *ff;
 	int err;
 
+	/**
+	 * TODO - fully understand why this is necessary
+	 *
+	 * With fuse-bpf, fsstress fails if rename is enabled without this
+	 *
+	 * We are getting writes here on directory inodes, which do not have an
+	 * initialized file list so crash.
+	 *
+	 * The question is why we are getting those writes
+	 */
+	if (!S_ISREG(inode->i_mode))
+		return 0;
+
 	/*
 	 * Inode is always written before the last reference is dropped and
 	 * hence this should not be reached from reclaim.
@@ -1868,7 +1969,7 @@
 	ff = __fuse_write_file_get(fi);
 	err = fuse_flush_times(inode, ff);
 	if (ff)
-		fuse_file_put(ff, false, false);
+		fuse_file_put(inode, ff, false, false);
 
 	return err;
 }
@@ -2257,7 +2358,7 @@
 		fuse_writepages_send(&data);
 	}
 	if (data.ff)
-		fuse_file_put(data.ff, false, false);
+		fuse_file_put(inode, data.ff, false, false);
 
 	kfree(data.orig_pages);
 out:
@@ -2401,6 +2502,7 @@
 	.fault		= filemap_fault,
 	.map_pages	= filemap_map_pages,
 	.page_mkwrite	= fuse_page_mkwrite,
+	.speculative	= true,
 };
 
 static int fuse_file_mmap(struct file *file, struct vm_area_struct *vma)
@@ -2411,6 +2513,15 @@
 	if (FUSE_IS_DAX(file_inode(file)))
 		return fuse_dax_mmap(file, vma);
 
+#ifdef CONFIG_FUSE_BPF
+	/* TODO - this is simply passthrough, not a proper BPF filter */
+	if (ff->backing_file)
+		return fuse_backing_mmap(file, vma);
+#endif
+
+	if (ff->passthrough.filp)
+		return fuse_passthrough_mmap(file, vma);
+
 	if (ff->open_flags & FOPEN_DIRECT_IO) {
 		/* Can't provide the coherency needed for MAP_SHARED */
 		if (vma->vm_flags & VM_MAYSHARE)
@@ -2563,12 +2674,18 @@
 {
 	struct inode *inode = file_inode(file);
 	struct fuse_conn *fc = get_fuse_conn(inode);
+	struct fuse_file *ff = file->private_data;
 	int err;
 
+#ifdef CONFIG_FUSE_BPF
+	/* TODO - this is simply passthrough, not a proper BPF filter */
+	if (ff->backing_file)
+		return fuse_file_flock_backing(file, cmd, fl);
+#endif
+
 	if (fc->no_flock) {
 		err = locks_lock_file_wait(file, fl);
 	} else {
-		struct fuse_file *ff = file->private_data;
 
 		/* emulate flock with POSIX locks */
 		ff->flock = true;
@@ -2656,6 +2773,17 @@
 {
 	loff_t retval;
 	struct inode *inode = file_inode(file);
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_lseek_io,
+			       fuse_lseek_initialize,
+			       fuse_lseek_backing,
+			       fuse_lseek_finalize,
+			       file, offset, whence);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
 
 	switch (whence) {
 	case SEEK_SET:
@@ -2946,6 +3074,18 @@
 		(!(mode & FALLOC_FL_KEEP_SIZE) ||
 		 (mode & (FALLOC_FL_PUNCH_HOLE | FALLOC_FL_ZERO_RANGE)));
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_fallocate_in,
+			       fuse_file_fallocate_initialize,
+			       fuse_file_fallocate_backing,
+			       fuse_file_fallocate_finalize,
+			       file, mode, offset, length);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (mode & ~(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE |
 		     FALLOC_FL_ZERO_RANGE))
 		return -EOPNOTSUPP;
@@ -3051,6 +3191,18 @@
 	bool is_unstable = (!fc->writeback_cache) &&
 			   ((pos_out + len) > inode_out->i_size);
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(file_in->f_inode, struct fuse_copy_file_range_io,
+			       fuse_copy_file_range_initialize,
+			       fuse_copy_file_range_backing,
+			       fuse_copy_file_range_finalize,
+			       file_in, pos_in, file_out, pos_out, len, flags);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (fc->no_copy_file_range)
 		return -EOPNOTSUPP;
 
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
index c3a8758..c059696 100644
--- a/fs/fuse/fuse_i.h
+++ b/fs/fuse/fuse_i.h
@@ -13,6 +13,9 @@
 # define pr_fmt(fmt) "fuse: " fmt
 #endif
 
+#include <linux/android_fuse.h>
+#include <linux/filter.h>
+#include <linux/pagemap.h>
 #include <linux/fuse.h>
 #include <linux/fs.h>
 #include <linux/mount.h>
@@ -31,6 +34,9 @@
 #include <linux/pid_namespace.h>
 #include <linux/refcount.h>
 #include <linux/user_namespace.h>
+#include <linux/statfs.h>
+
+#define FUSE_SUPER_MAGIC 0x65735546
 
 /** Default max number of pages that can be used in a single read request */
 #define FUSE_DEFAULT_MAX_PAGES_PER_REQ 32
@@ -63,11 +69,63 @@
 	struct fuse_forget_link *next;
 };
 
+/** FUSE specific dentry data */
+#if BITS_PER_LONG < 64 || defined(CONFIG_FUSE_BPF)
+struct fuse_dentry {
+	union {
+		u64 time;
+		struct rcu_head rcu;
+	};
+
+#ifdef CONFIG_FUSE_BPF
+	struct path backing_path;
+
+	/* bpf program *only* set for negative dentries */
+	struct bpf_prog *bpf;
+#endif
+};
+
+static inline struct fuse_dentry *get_fuse_dentry(const struct dentry *entry)
+{
+	return entry->d_fsdata;
+}
+#endif
+
+#ifdef CONFIG_FUSE_BPF
+static inline void get_fuse_backing_path(const struct dentry *d,
+					  struct path *path)
+{
+	struct fuse_dentry *di = get_fuse_dentry(d);
+
+	if (!di) {
+		*path = (struct path) {};
+		return;
+	}
+
+	*path = di->backing_path;
+	path_get(path);
+}
+#endif
+
 /** FUSE inode */
 struct fuse_inode {
 	/** Inode data */
 	struct inode inode;
 
+#ifdef CONFIG_FUSE_BPF
+	/**
+	 * Backing inode, if this inode is from a backing file system.
+	 * If this is set, nodeid is 0.
+	 */
+	struct inode *backing_inode;
+
+	/**
+	 * bpf_prog, run on all operations to determine whether to pass through
+	 * or handle in place
+	 */
+	struct bpf_prog *bpf;
+#endif
+
 	/** Unique ID, which identifies the inode between userspace
 	 * and kernel */
 	u64 nodeid;
@@ -173,6 +231,17 @@
 struct fuse_mount;
 struct fuse_release_args;
 
+/**
+ * Reference to lower filesystem file for read/write operations handled in
+ * passthrough mode.
+ * This struct also tracks the credentials to be used for handling read/write
+ * operations.
+ */
+struct fuse_passthrough {
+	struct file *filp;
+	struct cred *cred;
+};
+
 /** FUSE specific file data */
 struct fuse_file {
 	/** Fuse connection for this file */
@@ -218,6 +287,17 @@
 
 	} readdir;
 
+	/** Container for data related to the passthrough functionality */
+	struct fuse_passthrough passthrough;
+
+#ifdef CONFIG_FUSE_BPF
+	/**
+	 * TODO: Reconcile with passthrough file
+	 * backing file when in bpf mode
+	 */
+	struct file *backing_file;
+#endif
+
 	/** RB node to be linked on fuse_conn->polled_files */
 	struct rb_node polled_node;
 
@@ -249,6 +329,7 @@
 struct fuse_args {
 	uint64_t nodeid;
 	uint32_t opcode;
+	uint32_t error_in;
 	unsigned short in_numargs;
 	unsigned short out_numargs;
 	bool force:1;
@@ -261,9 +342,12 @@
 	bool page_zeroing:1;
 	bool page_replace:1;
 	bool may_block:1;
-	struct fuse_in_arg in_args[3];
-	struct fuse_arg out_args[2];
+	struct fuse_in_arg in_args[FUSE_MAX_IN_ARGS];
+	struct fuse_arg out_args[FUSE_MAX_OUT_ARGS];
 	void (*end)(struct fuse_mount *fm, struct fuse_args *args, int error);
+
+	/* Path used for completing d_canonical_path */
+	struct path *canonical_path;
 };
 
 struct fuse_args_pages {
@@ -367,10 +451,8 @@
 	/** Used to wake up the task waiting for completion of request*/
 	wait_queue_head_t waitq;
 
-#if IS_ENABLED(CONFIG_VIRTIO_FS)
 	/** virtio-fs's physically contiguous buffer for in and out args */
 	void *argbuf;
-#endif
 
 	/** fuse_mount this request belongs to */
 	struct fuse_mount *fm;
@@ -390,19 +472,19 @@
 	/**
 	 * Signal that a forget has been queued
 	 */
-	void (*wake_forget_and_unlock)(struct fuse_iqueue *fiq)
+	void (*wake_forget_and_unlock)(struct fuse_iqueue *fiq, bool sync)
 		__releases(fiq->lock);
 
 	/**
 	 * Signal that an INTERRUPT request has been queued
 	 */
-	void (*wake_interrupt_and_unlock)(struct fuse_iqueue *fiq)
+	void (*wake_interrupt_and_unlock)(struct fuse_iqueue *fiq, bool sync)
 		__releases(fiq->lock);
 
 	/**
 	 * Signal that a request has been queued
 	 */
-	void (*wake_pending_and_unlock)(struct fuse_iqueue *fiq)
+	void (*wake_pending_and_unlock)(struct fuse_iqueue *fiq, bool sync)
 		__releases(fiq->lock);
 
 	/**
@@ -499,9 +581,12 @@
 	bool no_force_umount:1;
 	bool legacy_opts_show:1;
 	bool dax:1;
+	bool no_daemon:1;
 	unsigned int max_read;
 	unsigned int blksize;
 	const char *subtype;
+	struct bpf_prog *root_bpf;
+	struct file *root_dir;
 
 	/* DAX device, may be NULL */
 	struct dax_device *dax_dev;
@@ -763,9 +848,18 @@
 	/* Auto-mount submounts announced by the server */
 	unsigned int auto_submounts:1;
 
+	/** Passthrough mode for read/write IO */
+	unsigned int passthrough:1;
+
 	/* Propagate syncfs() to server */
 	unsigned int sync_fs:1;
 
+	/* Initialize security xattrs when creating a new inode */
+	unsigned int init_security:1;
+
+	/** BPF Only, no Daemon running */
+	unsigned int no_daemon:1;
+
 	/** The number of requests waiting for completion */
 	atomic_t num_waiting;
 
@@ -812,6 +906,12 @@
 
 	/* New writepages go into this bucket */
 	struct fuse_sync_bucket __rcu *curr_bucket;
+
+	/** IDR for passthrough requests */
+	struct idr passthrough_req;
+
+	/** Protects passthrough_req */
+	spinlock_t passthrough_req_lock;
 };
 
 /*
@@ -931,14 +1031,18 @@
 extern const struct dentry_operations fuse_root_dentry_operations;
 
 /**
- * Get a filled in inode
+ * Get a filled-in inode
  */
+struct inode *fuse_iget_backing(struct super_block *sb,
+				u64 nodeid,
+				struct inode *backing_inode);
 struct inode *fuse_iget(struct super_block *sb, u64 nodeid,
 			int generation, struct fuse_attr *attr,
 			u64 attr_valid, u64 attr_version);
 
 int fuse_lookup_name(struct super_block *sb, u64 nodeid, const struct qstr *name,
-		     struct fuse_entry_out *outarg, struct inode **inode);
+		     struct fuse_entry_out *outarg,
+		     struct dentry *entry, struct inode **inode);
 
 /**
  * Send FORGET command
@@ -975,7 +1079,6 @@
 void fuse_read_args_fill(struct fuse_io_args *ia, struct file *file, loff_t pos,
 			 size_t count, int opcode);
 
-
 /**
  * Send OPEN or OPENDIR request
  */
@@ -1045,7 +1148,7 @@
 void fuse_dev_cleanup(void);
 
 int fuse_ctl_init(void);
-void __exit fuse_ctl_cleanup(void);
+void fuse_ctl_cleanup(void);
 
 /**
  * Simple request sending that does request allocation and freeing
@@ -1073,6 +1176,7 @@
 void fuse_invalidate_atime(struct inode *inode);
 
 u64 entry_attr_timeout(struct fuse_entry_out *o);
+void fuse_init_dentry_root(struct dentry *root, struct file *backing_dir);
 void fuse_change_entry_timeout(struct dentry *entry, struct fuse_entry_out *o);
 
 /**
@@ -1283,4 +1387,657 @@
 void fuse_file_release(struct inode *inode, struct fuse_file *ff,
 		       unsigned int open_flags, fl_owner_t id, bool isdir);
 
+/* passthrough.c */
+void fuse_copyattr(struct file *dst_file, struct file *src_file);
+int fuse_passthrough_open(struct fuse_dev *fud, u32 lower_fd);
+int fuse_passthrough_setup(struct fuse_conn *fc, struct fuse_file *ff,
+			   struct fuse_open_out *openarg);
+void fuse_passthrough_release(struct fuse_passthrough *passthrough);
+ssize_t fuse_passthrough_read_iter(struct kiocb *iocb, struct iov_iter *to);
+ssize_t fuse_passthrough_write_iter(struct kiocb *iocb, struct iov_iter *from);
+ssize_t fuse_passthrough_mmap(struct file *file, struct vm_area_struct *vma);
+
+/* backing.c */
+
+/*
+ * Dummy io passed to fuse_bpf_backing when io operation needs no scratch space
+ */
+struct fuse_dummy_io {
+	int unused;
+};
+
+struct fuse_open_io {
+	struct fuse_open_in foi;
+	struct fuse_open_out foo;
+};
+
+int fuse_open_initialize(struct fuse_bpf_args *fa, struct fuse_open_io *foi,
+			 struct inode *inode, struct file *file, bool isdir);
+int fuse_open_backing(struct fuse_bpf_args *fa,
+		      struct inode *inode, struct file *file, bool isdir);
+void *fuse_open_finalize(struct fuse_bpf_args *fa,
+		       struct inode *inode, struct file *file, bool isdir);
+
+struct fuse_create_open_io {
+	struct fuse_create_in fci;
+	struct fuse_entry_out feo;
+	struct fuse_open_out foo;
+};
+
+int fuse_create_open_initialize(
+		struct fuse_bpf_args *fa, struct fuse_create_open_io *fcoi,
+		struct inode *dir, struct dentry *entry,
+		struct file *file, unsigned int flags, umode_t mode);
+int fuse_create_open_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry,
+		struct file *file, unsigned int flags, umode_t mode);
+void *fuse_create_open_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry,
+		struct file *file, unsigned int flags, umode_t mode);
+
+int fuse_mknod_initialize(
+		struct fuse_bpf_args *fa, struct fuse_mknod_in *fmi,
+		struct inode *dir, struct dentry *entry, umode_t mode, dev_t rdev);
+int fuse_mknod_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, umode_t mode, dev_t rdev);
+void *fuse_mknod_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, umode_t mode, dev_t rdev);
+
+int fuse_mkdir_initialize(
+		struct fuse_bpf_args *fa, struct fuse_mkdir_in *fmi,
+		struct inode *dir, struct dentry *entry, umode_t mode);
+int fuse_mkdir_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, umode_t mode);
+void *fuse_mkdir_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, umode_t mode);
+
+int fuse_rmdir_initialize(
+		struct fuse_bpf_args *fa, struct fuse_dummy_io *fmi,
+		struct inode *dir, struct dentry *entry);
+int fuse_rmdir_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry);
+void *fuse_rmdir_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry);
+
+int fuse_rename2_initialize(struct fuse_bpf_args *fa, struct fuse_rename2_in *fri,
+			    struct inode *olddir, struct dentry *oldent,
+			    struct inode *newdir, struct dentry *newent,
+			    unsigned int flags);
+int fuse_rename2_backing(struct fuse_bpf_args *fa,
+			 struct inode *olddir, struct dentry *oldent,
+			 struct inode *newdir, struct dentry *newent,
+			 unsigned int flags);
+void *fuse_rename2_finalize(struct fuse_bpf_args *fa,
+			    struct inode *olddir, struct dentry *oldent,
+			    struct inode *newdir, struct dentry *newent,
+			    unsigned int flags);
+
+int fuse_rename_initialize(struct fuse_bpf_args *fa, struct fuse_rename_in *fri,
+			   struct inode *olddir, struct dentry *oldent,
+			   struct inode *newdir, struct dentry *newent);
+int fuse_rename_backing(struct fuse_bpf_args *fa,
+			struct inode *olddir, struct dentry *oldent,
+			struct inode *newdir, struct dentry *newent);
+void *fuse_rename_finalize(struct fuse_bpf_args *fa,
+			   struct inode *olddir, struct dentry *oldent,
+			   struct inode *newdir, struct dentry *newent);
+
+int fuse_unlink_initialize(
+		struct fuse_bpf_args *fa, struct fuse_dummy_io *fmi,
+		struct inode *dir, struct dentry *entry);
+int fuse_unlink_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry);
+void *fuse_unlink_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry);
+
+int fuse_link_initialize(struct fuse_bpf_args *fa, struct fuse_link_in *fli,
+			  struct dentry *entry, struct inode *dir,
+			  struct dentry *newent);
+int fuse_link_backing(struct fuse_bpf_args *fa, struct dentry *entry,
+		      struct inode *dir, struct dentry *newent);
+void *fuse_link_finalize(struct fuse_bpf_args *fa, struct dentry *entry,
+			 struct inode *dir, struct dentry *newent);
+
+int fuse_release_initialize(struct fuse_bpf_args *fa, struct fuse_release_in *fri,
+			    struct inode *inode, struct fuse_file *ff);
+int fuse_release_backing(struct fuse_bpf_args *fa,
+			 struct inode *inode, struct fuse_file *ff);
+void *fuse_release_finalize(struct fuse_bpf_args *fa,
+			    struct inode *inode, struct fuse_file *ff);
+
+int fuse_flush_initialize(struct fuse_bpf_args *fa, struct fuse_flush_in *ffi,
+			  struct file *file, fl_owner_t id);
+int fuse_flush_backing(struct fuse_bpf_args *fa, struct file *file, fl_owner_t id);
+void *fuse_flush_finalize(struct fuse_bpf_args *fa,
+			  struct file *file, fl_owner_t id);
+
+struct fuse_lseek_io {
+	struct fuse_lseek_in fli;
+	struct fuse_lseek_out flo;
+};
+
+int fuse_lseek_initialize(struct fuse_bpf_args *fa, struct fuse_lseek_io *fli,
+			  struct file *file, loff_t offset, int whence);
+int fuse_lseek_backing(struct fuse_bpf_args *fa, struct file *file, loff_t offset, int whence);
+void *fuse_lseek_finalize(struct fuse_bpf_args *fa, struct file *file, loff_t offset, int whence);
+
+struct fuse_copy_file_range_io {
+	struct fuse_copy_file_range_in fci;
+	struct fuse_write_out fwo;
+};
+
+int fuse_copy_file_range_initialize(struct fuse_bpf_args *fa,
+				   struct fuse_copy_file_range_io *fcf,
+				   struct file *file_in, loff_t pos_in,
+				   struct file *file_out, loff_t pos_out,
+				   size_t len, unsigned int flags);
+int fuse_copy_file_range_backing(struct fuse_bpf_args *fa,
+				 struct file *file_in, loff_t pos_in,
+				 struct file *file_out, loff_t pos_out,
+				 size_t len, unsigned int flags);
+void *fuse_copy_file_range_finalize(struct fuse_bpf_args *fa,
+				    struct file *file_in, loff_t pos_in,
+				    struct file *file_out, loff_t pos_out,
+				    size_t len, unsigned int flags);
+
+int fuse_fsync_initialize(struct fuse_bpf_args *fa, struct fuse_fsync_in *ffi,
+		   struct file *file, loff_t start, loff_t end, int datasync);
+int fuse_fsync_backing(struct fuse_bpf_args *fa,
+		   struct file *file, loff_t start, loff_t end, int datasync);
+void *fuse_fsync_finalize(struct fuse_bpf_args *fa,
+		   struct file *file, loff_t start, loff_t end, int datasync);
+int fuse_dir_fsync_initialize(struct fuse_bpf_args *fa, struct fuse_fsync_in *ffi,
+		   struct file *file, loff_t start, loff_t end, int datasync);
+
+struct fuse_getxattr_io {
+	struct fuse_getxattr_in fgi;
+	struct fuse_getxattr_out fgo;
+};
+
+int fuse_getxattr_initialize(
+		struct fuse_bpf_args *fa, struct fuse_getxattr_io *fgio,
+		struct dentry *dentry, const char *name, void *value,
+		size_t size);
+int fuse_getxattr_backing(
+		struct fuse_bpf_args *fa,
+		struct dentry *dentry, const char *name, void *value,
+		size_t size);
+void *fuse_getxattr_finalize(
+		struct fuse_bpf_args *fa,
+		struct dentry *dentry, const char *name, void *value,
+		size_t size);
+
+int fuse_listxattr_initialize(struct fuse_bpf_args *fa,
+			       struct fuse_getxattr_io *fgio,
+			       struct dentry *dentry, char *list, size_t size);
+int fuse_listxattr_backing(struct fuse_bpf_args *fa, struct dentry *dentry,
+			   char *list, size_t size);
+void *fuse_listxattr_finalize(struct fuse_bpf_args *fa, struct dentry *dentry,
+			      char *list, size_t size);
+
+int fuse_setxattr_initialize(struct fuse_bpf_args *fa,
+			     struct fuse_setxattr_in *fsxi,
+			     struct dentry *dentry, const char *name,
+			     const void *value, size_t size, int flags);
+int fuse_setxattr_backing(struct fuse_bpf_args *fa, struct dentry *dentry,
+			  const char *name, const void *value, size_t size,
+			  int flags);
+void *fuse_setxattr_finalize(struct fuse_bpf_args *fa, struct dentry *dentry,
+			     const char *name, const void *value, size_t size,
+			     int flags);
+
+int fuse_removexattr_initialize(struct fuse_bpf_args *fa,
+				struct fuse_dummy_io *unused,
+				struct dentry *dentry, const char *name);
+int fuse_removexattr_backing(struct fuse_bpf_args *fa,
+			     struct dentry *dentry, const char *name);
+void *fuse_removexattr_finalize(struct fuse_bpf_args *fa,
+				struct dentry *dentry, const char *name);
+
+struct fuse_read_iter_out {
+	uint64_t ret;
+};
+struct fuse_file_read_iter_io {
+	struct fuse_read_in fri;
+	struct fuse_read_iter_out frio;
+};
+
+int fuse_file_read_iter_initialize(
+		struct fuse_bpf_args *fa, struct fuse_file_read_iter_io *fri,
+		struct kiocb *iocb, struct iov_iter *to);
+int fuse_file_read_iter_backing(struct fuse_bpf_args *fa,
+		struct kiocb *iocb, struct iov_iter *to);
+void *fuse_file_read_iter_finalize(struct fuse_bpf_args *fa,
+		struct kiocb *iocb, struct iov_iter *to);
+
+struct fuse_write_iter_out {
+	uint64_t ret;
+};
+struct fuse_file_write_iter_io {
+	struct fuse_write_in fwi;
+	struct fuse_write_out fwo;
+	struct fuse_write_iter_out fwio;
+};
+
+int fuse_file_write_iter_initialize(
+		struct fuse_bpf_args *fa, struct fuse_file_write_iter_io *fwio,
+		struct kiocb *iocb, struct iov_iter *from);
+int fuse_file_write_iter_backing(struct fuse_bpf_args *fa,
+		struct kiocb *iocb, struct iov_iter *from);
+void *fuse_file_write_iter_finalize(struct fuse_bpf_args *fa,
+		struct kiocb *iocb, struct iov_iter *from);
+
+long fuse_backing_ioctl(struct file *file, unsigned int command, unsigned long arg, int flags);
+
+int fuse_file_flock_backing(struct file *file, int cmd, struct file_lock *fl);
+ssize_t fuse_backing_mmap(struct file *file, struct vm_area_struct *vma);
+
+int fuse_file_fallocate_initialize(struct fuse_bpf_args *fa,
+		struct fuse_fallocate_in *ffi,
+		struct file *file, int mode, loff_t offset, loff_t length);
+int fuse_file_fallocate_backing(struct fuse_bpf_args *fa,
+		struct file *file, int mode, loff_t offset, loff_t length);
+void *fuse_file_fallocate_finalize(struct fuse_bpf_args *fa,
+		struct file *file, int mode, loff_t offset, loff_t length);
+
+struct fuse_lookup_io {
+	struct fuse_entry_out feo;
+	struct fuse_entry_bpf feb;
+};
+
+int fuse_handle_backing(struct fuse_entry_bpf *feb, struct inode **backing_inode,
+			struct path *backing_path);
+int fuse_handle_bpf_prog(struct fuse_entry_bpf *feb, struct inode *parent,
+			 struct bpf_prog **bpf);
+
+int fuse_lookup_initialize(struct fuse_bpf_args *fa, struct fuse_lookup_io *feo,
+	       struct inode *dir, struct dentry *entry, unsigned int flags);
+int fuse_lookup_backing(struct fuse_bpf_args *fa, struct inode *dir,
+			  struct dentry *entry, unsigned int flags);
+struct dentry *fuse_lookup_finalize(struct fuse_bpf_args *fa, struct inode *dir,
+			   struct dentry *entry, unsigned int flags);
+int fuse_revalidate_backing(struct dentry *entry, unsigned int flags);
+
+int fuse_canonical_path_initialize(struct fuse_bpf_args *fa,
+				   struct fuse_dummy_io *fdi,
+				   const struct path *path,
+				   struct path *canonical_path);
+int fuse_canonical_path_backing(struct fuse_bpf_args *fa, const struct path *path,
+				struct path *canonical_path);
+void *fuse_canonical_path_finalize(struct fuse_bpf_args *fa,
+				   const struct path *path,
+				   struct path *canonical_path);
+
+struct fuse_getattr_io {
+	struct fuse_getattr_in fgi;
+	struct fuse_attr_out fao;
+};
+int fuse_getattr_initialize(struct fuse_bpf_args *fa, struct fuse_getattr_io *fgio,
+			const struct dentry *entry, struct kstat *stat,
+			u32 request_mask, unsigned int flags);
+int fuse_getattr_backing(struct fuse_bpf_args *fa,
+			const struct dentry *entry, struct kstat *stat,
+			u32 request_mask, unsigned int flags);
+void *fuse_getattr_finalize(struct fuse_bpf_args *fa,
+			const struct dentry *entry, struct kstat *stat,
+			u32 request_mask, unsigned int flags);
+
+struct fuse_setattr_io {
+	struct fuse_setattr_in fsi;
+	struct fuse_attr_out fao;
+};
+
+int fuse_setattr_initialize(struct fuse_bpf_args *fa, struct fuse_setattr_io *fsi,
+		struct dentry *dentry, struct iattr *attr, struct file *file);
+int fuse_setattr_backing(struct fuse_bpf_args *fa,
+		struct dentry *dentry, struct iattr *attr, struct file *file);
+void *fuse_setattr_finalize(struct fuse_bpf_args *fa,
+		struct dentry *dentry, struct iattr *attr, struct file *file);
+
+int fuse_statfs_initialize(struct fuse_bpf_args *fa, struct fuse_statfs_out *fso,
+		struct dentry *dentry, struct kstatfs *buf);
+int fuse_statfs_backing(struct fuse_bpf_args *fa,
+		struct dentry *dentry, struct kstatfs *buf);
+void *fuse_statfs_finalize(struct fuse_bpf_args *fa,
+		struct dentry *dentry, struct kstatfs *buf);
+
+int fuse_get_link_initialize(struct fuse_bpf_args *fa, struct fuse_dummy_io *dummy,
+		struct inode *inode, struct dentry *dentry,
+		struct delayed_call *callback, const char **out);
+int fuse_get_link_backing(struct fuse_bpf_args *fa,
+		struct inode *inode, struct dentry *dentry,
+		struct delayed_call *callback, const char **out);
+void *fuse_get_link_finalize(struct fuse_bpf_args *fa,
+		struct inode *inode, struct dentry *dentry,
+		struct delayed_call *callback, const char **out);
+
+int fuse_symlink_initialize(
+		struct fuse_bpf_args *fa, struct fuse_dummy_io *unused,
+		struct inode *dir, struct dentry *entry, const char *link, int len);
+int fuse_symlink_backing(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, const char *link, int len);
+void *fuse_symlink_finalize(
+		struct fuse_bpf_args *fa,
+		struct inode *dir, struct dentry *entry, const char *link, int len);
+
+struct fuse_read_io {
+	struct fuse_read_in fri;
+	struct fuse_read_out fro;
+};
+
+int fuse_readdir_initialize(struct fuse_bpf_args *fa, struct fuse_read_io *frio,
+			    struct file *file, struct dir_context *ctx,
+			    bool *force_again, bool *allow_force, bool is_continued);
+int fuse_readdir_backing(struct fuse_bpf_args *fa,
+			 struct file *file, struct dir_context *ctx,
+			 bool *force_again, bool *allow_force, bool is_continued);
+void *fuse_readdir_finalize(struct fuse_bpf_args *fa,
+			    struct file *file, struct dir_context *ctx,
+			    bool *force_again, bool *allow_force, bool is_continued);
+
+int fuse_access_initialize(struct fuse_bpf_args *fa, struct fuse_access_in *fai,
+			   struct inode *inode, int mask);
+int fuse_access_backing(struct fuse_bpf_args *fa, struct inode *inode, int mask);
+void *fuse_access_finalize(struct fuse_bpf_args *fa, struct inode *inode, int mask);
+
+/*
+ * FUSE caches dentries and attributes with separate timeout.  The
+ * time in jiffies until the dentry/attributes are valid is stored in
+ * dentry->d_fsdata and fuse_inode->i_time respectively.
+ */
+
+/*
+ * Calculate the time in jiffies until a dentry/attributes are valid
+ */
+static inline u64 time_to_jiffies(u64 sec, u32 nsec)
+{
+	if (sec || nsec) {
+		struct timespec64 ts = {
+			sec,
+			min_t(u32, nsec, NSEC_PER_SEC - 1)
+		};
+
+		return get_jiffies_64() + timespec64_to_jiffies(&ts);
+	} else
+		return 0;
+}
+
+static inline u64 attr_timeout(struct fuse_attr_out *o)
+{
+	return time_to_jiffies(o->attr_valid, o->attr_valid_nsec);
+}
+
+static inline bool update_mtime(unsigned int ivalid, bool trust_local_mtime)
+{
+	/* Always update if mtime is explicitly set  */
+	if (ivalid & ATTR_MTIME_SET)
+		return true;
+
+	/* Or if kernel i_mtime is the official one */
+	if (trust_local_mtime)
+		return true;
+
+	/* If it's an open(O_TRUNC) or an ftruncate(), don't update */
+	if ((ivalid & ATTR_SIZE) && (ivalid & (ATTR_OPEN | ATTR_FILE)))
+		return false;
+
+	/* In all other cases update */
+	return true;
+}
+
+void fuse_fillattr(struct inode *inode, struct fuse_attr *attr,
+			  struct kstat *stat);
+
+static inline void iattr_to_fattr(struct fuse_conn *fc, struct iattr *iattr,
+			   struct fuse_setattr_in *arg, bool trust_local_cmtime)
+{
+	unsigned int ivalid = iattr->ia_valid;
+
+	if (ivalid & ATTR_MODE)
+		arg->valid |= FATTR_MODE,   arg->mode = iattr->ia_mode;
+	if (ivalid & ATTR_UID)
+		arg->valid |= FATTR_UID,    arg->uid = from_kuid(fc->user_ns, iattr->ia_uid);
+	if (ivalid & ATTR_GID)
+		arg->valid |= FATTR_GID,    arg->gid = from_kgid(fc->user_ns, iattr->ia_gid);
+	if (ivalid & ATTR_SIZE)
+		arg->valid |= FATTR_SIZE,   arg->size = iattr->ia_size;
+	if (ivalid & ATTR_ATIME) {
+		arg->valid |= FATTR_ATIME;
+		arg->atime = iattr->ia_atime.tv_sec;
+		arg->atimensec = iattr->ia_atime.tv_nsec;
+		if (!(ivalid & ATTR_ATIME_SET))
+			arg->valid |= FATTR_ATIME_NOW;
+	}
+	if ((ivalid & ATTR_MTIME) && update_mtime(ivalid, trust_local_cmtime)) {
+		arg->valid |= FATTR_MTIME;
+		arg->mtime = iattr->ia_mtime.tv_sec;
+		arg->mtimensec = iattr->ia_mtime.tv_nsec;
+		if (!(ivalid & ATTR_MTIME_SET) && !trust_local_cmtime)
+			arg->valid |= FATTR_MTIME_NOW;
+	}
+	if ((ivalid & ATTR_CTIME) && trust_local_cmtime) {
+		arg->valid |= FATTR_CTIME;
+		arg->ctime = iattr->ia_ctime.tv_sec;
+		arg->ctimensec = iattr->ia_ctime.tv_nsec;
+	}
+}
+
+static inline int finalize_attr(struct inode *inode, struct fuse_attr_out *outarg,
+				u64 attr_version, struct kstat *stat)
+{
+	int err = 0;
+
+	if (fuse_invalid_attr(&outarg->attr) ||
+	    ((inode->i_mode ^ outarg->attr.mode) & S_IFMT)) {
+		fuse_make_bad(inode);
+		err = -EIO;
+	} else {
+		fuse_change_attributes(inode, &outarg->attr,
+				       attr_timeout(outarg),
+				       attr_version);
+		if (stat)
+			fuse_fillattr(inode, &outarg->attr, stat);
+	}
+	return err;
+}
+
+static inline void convert_statfs_to_fuse(struct fuse_kstatfs *attr, struct kstatfs *stbuf)
+{
+	attr->bsize   = stbuf->f_bsize;
+	attr->frsize  = stbuf->f_frsize;
+	attr->blocks  = stbuf->f_blocks;
+	attr->bfree   = stbuf->f_bfree;
+	attr->bavail  = stbuf->f_bavail;
+	attr->files   = stbuf->f_files;
+	attr->ffree   = stbuf->f_ffree;
+	attr->namelen = stbuf->f_namelen;
+	/* fsid is left zero */
+}
+
+static inline void convert_fuse_statfs(struct kstatfs *stbuf, struct fuse_kstatfs *attr)
+{
+	stbuf->f_type    = FUSE_SUPER_MAGIC;
+	stbuf->f_bsize   = attr->bsize;
+	stbuf->f_frsize  = attr->frsize;
+	stbuf->f_blocks  = attr->blocks;
+	stbuf->f_bfree   = attr->bfree;
+	stbuf->f_bavail  = attr->bavail;
+	stbuf->f_files   = attr->files;
+	stbuf->f_ffree   = attr->ffree;
+	stbuf->f_namelen = attr->namelen;
+	/* fsid is left zero */
+}
+
+#ifdef CONFIG_FUSE_BPF
+struct fuse_err_ret {
+	void *result;
+	bool ret;
+};
+
+int __init fuse_bpf_init(void);
+void __exit fuse_bpf_cleanup(void);
+
+ssize_t fuse_bpf_simple_request(struct fuse_mount *fm, struct fuse_bpf_args *args);
+
+static inline int fuse_bpf_run(struct bpf_prog *prog, struct fuse_bpf_args *fba)
+{
+	int ret;
+
+	migrate_disable();
+	ret = bpf_prog_run(prog, fba);
+	migrate_enable();
+	return ret;
+}
+
+/*
+ * expression statement to wrap the backing filter logic
+ * struct inode *inode: inode with bpf and backing inode
+ * typedef io: (typically complex) type whose components fuse_args can point to.
+ *	An instance of this type is created locally and passed to initialize
+ * void initialize(struct fuse_bpf_args *fa, io *in_out, args...): function that sets
+ *	up fa and io based on args
+ * int backing(struct fuse_bpf_args *fa, args...): function that actually performs
+ *	the backing io operation
+ * void *finalize(struct fuse_bpf_args *, args...): function that performs any final
+ *	work needed to commit the backing io
+ */
+#define fuse_bpf_backing(inode, io, initialize, backing, finalize,	\
+			 args...)					\
+({									\
+	struct fuse_err_ret fer = {0};					\
+	int ext_flags;							\
+	struct fuse_inode *fuse_inode = get_fuse_inode(inode);		\
+	struct fuse_mount *fm = get_fuse_mount(inode);			\
+	io feo = {0};							\
+	struct fuse_bpf_args fa = {0}, fa_backup = {0};			\
+	bool locked;							\
+	ssize_t res;							\
+	void *err;							\
+	int i;								\
+	bool initialized = false;					\
+									\
+	do {								\
+		if (!fuse_inode || !fuse_inode->backing_inode)		\
+			break;						\
+									\
+		err = ERR_PTR(initialize(&fa, &feo, args));		\
+		if (err) {						\
+			fer = (struct fuse_err_ret) {			\
+				err,					\
+				true,					\
+			};						\
+			break;						\
+		}							\
+		initialized = true;					\
+									\
+		fa_backup = fa;						\
+		fa.opcode |= FUSE_PREFILTER;				\
+		for (i = 0; i < fa.in_numargs; ++i)			\
+			fa.out_args[i] = (struct fuse_bpf_arg) {	\
+				.size = fa.in_args[i].size,		\
+				.value = (void *)fa.in_args[i].value,	\
+			};						\
+		fa.out_numargs = fa.in_numargs;				\
+									\
+		ext_flags = fuse_inode->bpf ?				\
+			fuse_bpf_run(fuse_inode->bpf, &fa) :		\
+			FUSE_BPF_BACKING;				\
+		if (ext_flags < 0) {					\
+			fer = (struct fuse_err_ret) {			\
+				ERR_PTR(ext_flags),			\
+				true,					\
+			};						\
+			break;						\
+		}							\
+									\
+		if (ext_flags & FUSE_BPF_USER_FILTER) {			\
+			locked = fuse_lock_inode(inode);		\
+			res = fuse_bpf_simple_request(fm, &fa);		\
+			fuse_unlock_inode(inode, locked);		\
+			if (res < 0) {					\
+				fer = (struct fuse_err_ret) {		\
+					ERR_PTR(res),			\
+					true,				\
+				};					\
+				break;					\
+			}						\
+		}							\
+									\
+		if (!(ext_flags & FUSE_BPF_BACKING))			\
+			break;						\
+									\
+		fa.opcode &= ~FUSE_PREFILTER;				\
+		for (i = 0; i < fa.in_numargs; ++i)			\
+			fa.in_args[i] = (struct fuse_bpf_in_arg) {	\
+				.size = fa.out_args[i].size,		\
+				.value = fa.out_args[i].value,		\
+			};						\
+		for (i = 0; i < fa_backup.out_numargs; ++i)		\
+			fa.out_args[i] = (struct fuse_bpf_arg) {	\
+				.size = fa_backup.out_args[i].size,	\
+				.value = fa_backup.out_args[i].value,	\
+			};						\
+		fa.out_numargs = fa_backup.out_numargs;			\
+									\
+		fer = (struct fuse_err_ret) {				\
+			ERR_PTR(backing(&fa, args)),			\
+			true,						\
+		};							\
+		if (IS_ERR(fer.result))					\
+			fa.error_in = PTR_ERR(fer.result);		\
+		if (!(ext_flags & FUSE_BPF_POST_FILTER))		\
+			break;						\
+									\
+		fa.opcode |= FUSE_POSTFILTER;				\
+		for (i = 0; i < fa.out_numargs; ++i)			\
+			fa.in_args[fa.in_numargs++] =			\
+				(struct fuse_bpf_in_arg) {		\
+					.size = fa.out_args[i].size,	\
+					.value = fa.out_args[i].value,	\
+				};					\
+		ext_flags = fuse_bpf_run(fuse_inode->bpf, &fa);		\
+		if (ext_flags < 0) {					\
+			fer = (struct fuse_err_ret) {			\
+				ERR_PTR(ext_flags),			\
+				true,					\
+			};						\
+			break;						\
+		}							\
+		if (!(ext_flags & FUSE_BPF_USER_FILTER))		\
+			break;						\
+									\
+		fa.out_args[0].size = fa_backup.out_args[0].size;	\
+		fa.out_args[1].size = fa_backup.out_args[1].size;	\
+		fa.out_numargs = fa_backup.out_numargs;			\
+		locked = fuse_lock_inode(inode);			\
+		res = fuse_bpf_simple_request(fm, &fa);			\
+		fuse_unlock_inode(inode, locked);			\
+		if (res < 0) {						\
+			fer.result = ERR_PTR(res);			\
+			break;						\
+		}							\
+	} while (false);						\
+									\
+	if (initialized && fer.ret) {					\
+		err = finalize(&fa, args);				\
+		if (err)						\
+			fer.result = err;				\
+	}								\
+									\
+	fer;								\
+})
+
+#endif /* CONFIG_FUSE_BPF */
+
 #endif /* _FS_FUSE_I_H */
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
index 5036514..25c92f1 100644
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
@@ -27,6 +27,7 @@
 MODULE_AUTHOR("Miklos Szeredi <miklos@szeredi.hu>");
 MODULE_DESCRIPTION("Filesystem in Userspace");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 
 static struct kmem_cache *fuse_inode_cachep;
 struct list_head fuse_conn_list;
@@ -50,8 +51,6 @@
  "Global limit for the maximum congestion threshold an "
  "unprivileged user can set");
 
-#define FUSE_SUPER_MAGIC 0x65735546
-
 #define FUSE_DEFAULT_BLKSIZE 512
 
 /** Maximum number of outstanding background requests */
@@ -79,6 +78,10 @@
 
 	fi->i_time = 0;
 	fi->inval_mask = 0;
+#ifdef CONFIG_FUSE_BPF
+	fi->backing_inode = NULL;
+	fi->bpf = NULL;
+#endif
 	fi->nodeid = 0;
 	fi->nlookup = 0;
 	fi->attr_version = 0;
@@ -111,6 +114,10 @@
 #ifdef CONFIG_FUSE_DAX
 	kfree(fi->dax);
 #endif
+#ifdef CONFIG_FUSE_BPF
+	if (fi->bpf)
+		bpf_prog_put(fi->bpf);
+#endif
 	kmem_cache_free(fuse_inode_cachep, fi);
 }
 
@@ -120,7 +127,6 @@
 
 	/* Will write inode on close/munmap and in all other dirtiers */
 	WARN_ON(inode->i_state & I_DIRTY_INODE);
-
 	truncate_inode_pages_final(&inode->i_data);
 	clear_inode(inode);
 	if (inode->i_sb->s_flags & SB_ACTIVE) {
@@ -140,6 +146,15 @@
 	}
 }
 
+#ifdef CONFIG_FUSE_BPF
+static void fuse_destroy_inode(struct inode *inode)
+{
+	struct fuse_inode *fi = get_fuse_inode(inode);
+
+	iput(fi->backing_inode);
+}
+#endif
+
 static int fuse_reconfigure(struct fs_context *fsc)
 {
 	struct super_block *sb = fsc->root->d_sb;
@@ -163,6 +178,28 @@
 	return ino;
 }
 
+static void fuse_fill_attr_from_inode(struct fuse_attr *attr,
+				      const struct inode *inode)
+{
+	*attr = (struct fuse_attr){
+		.ino		= inode->i_ino,
+		.size		= inode->i_size,
+		.blocks		= inode->i_blocks,
+		.atime		= inode->i_atime.tv_sec,
+		.mtime		= inode->i_mtime.tv_sec,
+		.ctime		= inode->i_ctime.tv_sec,
+		.atimensec	= inode->i_atime.tv_nsec,
+		.mtimensec	= inode->i_mtime.tv_nsec,
+		.ctimensec	= inode->i_ctime.tv_nsec,
+		.mode		= inode->i_mode,
+		.nlink		= inode->i_nlink,
+		.uid		= inode->i_uid.val,
+		.gid		= inode->i_gid.val,
+		.rdev		= inode->i_rdev,
+		.blksize	= 1u << inode->i_blkbits,
+	};
+}
+
 void fuse_change_attributes_common(struct inode *inode, struct fuse_attr *attr,
 				   u64 attr_valid)
 {
@@ -297,28 +334,104 @@
 	else if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode) ||
 		 S_ISFIFO(inode->i_mode) || S_ISSOCK(inode->i_mode)) {
 		fuse_init_common(inode);
-		init_special_inode(inode, inode->i_mode,
-				   new_decode_dev(attr->rdev));
+		init_special_inode(inode, inode->i_mode, attr->rdev);
 	} else
 		BUG();
 }
 
+struct fuse_inode_identifier {
+	u64 nodeid;
+	struct inode *backing_inode;
+};
+
 static int fuse_inode_eq(struct inode *inode, void *_nodeidp)
 {
-	u64 nodeid = *(u64 *) _nodeidp;
-	if (get_node_id(inode) == nodeid)
-		return 1;
-	else
-		return 0;
+	struct fuse_inode_identifier *fii =
+		(struct fuse_inode_identifier *) _nodeidp;
+	struct fuse_inode *fi = get_fuse_inode(inode);
+
+	return fii->nodeid == fi->nodeid;
+}
+
+static int fuse_inode_backing_eq(struct inode *inode, void *_nodeidp)
+{
+	struct fuse_inode_identifier *fii =
+		(struct fuse_inode_identifier *) _nodeidp;
+	struct fuse_inode *fi = get_fuse_inode(inode);
+
+	return fii->nodeid == fi->nodeid
+#ifdef CONFIG_FUSE_BPF
+		&& fii->backing_inode == fi->backing_inode
+#endif
+		;
 }
 
 static int fuse_inode_set(struct inode *inode, void *_nodeidp)
 {
-	u64 nodeid = *(u64 *) _nodeidp;
-	get_fuse_inode(inode)->nodeid = nodeid;
+	struct fuse_inode_identifier *fii =
+		(struct fuse_inode_identifier *) _nodeidp;
+	struct fuse_inode *fi = get_fuse_inode(inode);
+
+	fi->nodeid = fii->nodeid;
+
 	return 0;
 }
 
+static int fuse_inode_backing_set(struct inode *inode, void *_nodeidp)
+{
+	struct fuse_inode_identifier *fii =
+		(struct fuse_inode_identifier *) _nodeidp;
+	struct fuse_inode *fi = get_fuse_inode(inode);
+
+	fi->nodeid = fii->nodeid;
+#ifdef CONFIG_FUSE_BPF
+	fi->backing_inode = fii->backing_inode;
+	if (fi->backing_inode)
+		ihold(fi->backing_inode);
+#endif
+
+	return 0;
+}
+
+struct inode *fuse_iget_backing(struct super_block *sb, u64 nodeid,
+				struct inode *backing_inode)
+{
+	struct inode *inode;
+	struct fuse_inode *fi;
+	struct fuse_conn *fc = get_fuse_conn_super(sb);
+	struct fuse_inode_identifier fii = {
+		.nodeid = nodeid,
+		.backing_inode = backing_inode,
+	};
+	struct fuse_attr attr;
+	unsigned long hash = (unsigned long) backing_inode;
+
+	if (nodeid)
+		hash = nodeid;
+
+	fuse_fill_attr_from_inode(&attr, backing_inode);
+	inode = iget5_locked(sb, hash, fuse_inode_backing_eq,
+			     fuse_inode_backing_set, &fii);
+	if (!inode)
+		return NULL;
+
+	if ((inode->i_state & I_NEW)) {
+		inode->i_flags |= S_NOATIME;
+		if (!fc->writeback_cache)
+			inode->i_flags |= S_NOCMTIME;
+		fuse_init_common(inode);
+		unlock_new_inode(inode);
+	}
+
+	fi = get_fuse_inode(inode);
+	fuse_init_inode(inode, &attr);
+	spin_lock(&fi->lock);
+	fi->nlookup++;
+	spin_unlock(&fi->lock);
+
+	return inode;
+}
+
 struct inode *fuse_iget(struct super_block *sb, u64 nodeid,
 			int generation, struct fuse_attr *attr,
 			u64 attr_valid, u64 attr_version)
@@ -326,6 +439,9 @@
 	struct inode *inode;
 	struct fuse_inode *fi;
 	struct fuse_conn *fc = get_fuse_conn_super(sb);
+	struct fuse_inode_identifier fii = {
+		.nodeid = nodeid,
+	};
 
 	/*
 	 * Auto mount points get their node id from the submount root, which is
@@ -347,7 +463,7 @@
 	}
 
 retry:
-	inode = iget5_locked(sb, nodeid, fuse_inode_eq, fuse_inode_set, &nodeid);
+	inode = iget5_locked(sb, nodeid, fuse_inode_eq, fuse_inode_set, &fii);
 	if (!inode)
 		return NULL;
 
@@ -379,13 +495,16 @@
 {
 	struct fuse_mount *fm_iter;
 	struct inode *inode;
+	struct fuse_inode_identifier fii = {
+		.nodeid = nodeid,
+	};
 
 	WARN_ON(!rwsem_is_locked(&fc->killsb));
 	list_for_each_entry(fm_iter, &fc->mounts, fc_entry) {
 		if (!fm_iter->sb)
 			continue;
 
-		inode = ilookup5(fm_iter->sb, nodeid, fuse_inode_eq, &nodeid);
+		inode = ilookup5(fm_iter->sb, nodeid, fuse_inode_eq, &fii);
 		if (inode) {
 			if (fm)
 				*fm = fm_iter;
@@ -466,20 +585,6 @@
 	}
 }
 
-static void convert_fuse_statfs(struct kstatfs *stbuf, struct fuse_kstatfs *attr)
-{
-	stbuf->f_type    = FUSE_SUPER_MAGIC;
-	stbuf->f_bsize   = attr->bsize;
-	stbuf->f_frsize  = attr->frsize;
-	stbuf->f_blocks  = attr->blocks;
-	stbuf->f_bfree   = attr->bfree;
-	stbuf->f_bavail  = attr->bavail;
-	stbuf->f_files   = attr->files;
-	stbuf->f_ffree   = attr->ffree;
-	stbuf->f_namelen = attr->namelen;
-	/* fsid is left zero */
-}
-
 static int fuse_statfs(struct dentry *dentry, struct kstatfs *buf)
 {
 	struct super_block *sb = dentry->d_sb;
@@ -487,12 +592,24 @@
 	FUSE_ARGS(args);
 	struct fuse_statfs_out outarg;
 	int err;
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+#endif
 
 	if (!fuse_allow_current_process(fm->fc)) {
 		buf->f_type = FUSE_SUPER_MAGIC;
 		return 0;
 	}
 
+#ifdef CONFIG_FUSE_BPF
+	fer = fuse_bpf_backing(dentry->d_inode, struct fuse_statfs_out,
+			       fuse_statfs_initialize, fuse_statfs_backing,
+			       fuse_statfs_finalize,
+			       dentry, buf);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	memset(&outarg, 0, sizeof(outarg));
 	args.in_numargs = 0;
 	args.opcode = FUSE_STATFS;
@@ -609,6 +726,9 @@
 	OPT_ALLOW_OTHER,
 	OPT_MAX_READ,
 	OPT_BLKSIZE,
+	OPT_ROOT_BPF,
+	OPT_ROOT_DIR,
+	OPT_NO_DAEMON,
 	OPT_ERR
 };
 
@@ -623,6 +743,9 @@
 	fsparam_u32	("max_read",		OPT_MAX_READ),
 	fsparam_u32	("blksize",		OPT_BLKSIZE),
 	fsparam_string	("subtype",		OPT_SUBTYPE),
+	fsparam_u32	("root_bpf",		OPT_ROOT_BPF),
+	fsparam_u32	("root_dir",		OPT_ROOT_DIR),
+	fsparam_flag	("no_daemon",		OPT_NO_DAEMON),
 	{}
 };
 
@@ -706,6 +829,26 @@
 		ctx->blksize = result.uint_32;
 		break;
 
+	case OPT_ROOT_BPF:
+		ctx->root_bpf = bpf_prog_get_type_dev(result.uint_32,
+						BPF_PROG_TYPE_FUSE, false);
+		if (IS_ERR(ctx->root_bpf)) {
+			ctx->root_bpf = NULL;
+			return invalfc(fsc, "Unable to open bpf program");
+		}
+		break;
+
+	case OPT_ROOT_DIR:
+		ctx->root_dir = fget(result.uint_32);
+		if (!ctx->root_dir)
+			return invalfc(fsc, "Unable to open root directory");
+		break;
+
+	case OPT_NO_DAEMON:
+		ctx->no_daemon = true;
+		ctx->fd_present = true;
+		break;
+
 	default:
 		return -EINVAL;
 	}
@@ -718,6 +861,10 @@
 	struct fuse_fs_context *ctx = fsc->fs_private;
 
 	if (ctx) {
+		if (ctx->root_dir)
+			fput(ctx->root_dir);
+		if (ctx->root_bpf)
+			bpf_prog_put(ctx->root_bpf);
 		kfree(ctx->subtype);
 		kfree(ctx);
 	}
@@ -783,6 +930,7 @@
 	memset(fc, 0, sizeof(*fc));
 	spin_lock_init(&fc->lock);
 	spin_lock_init(&fc->bg_lock);
+	spin_lock_init(&fc->passthrough_req_lock);
 	init_rwsem(&fc->killsb);
 	refcount_set(&fc->count, 1);
 	atomic_set(&fc->dev_count, 1);
@@ -791,6 +939,7 @@
 	INIT_LIST_HEAD(&fc->bg_queue);
 	INIT_LIST_HEAD(&fc->entry);
 	INIT_LIST_HEAD(&fc->devices);
+	idr_init(&fc->passthrough_req);
 	atomic_set(&fc->num_waiting, 0);
 	fc->max_background = FUSE_DEFAULT_MAX_BACKGROUND;
 	fc->congestion_threshold = FUSE_DEFAULT_CONGESTION_THRESHOLD;
@@ -841,15 +990,34 @@
 }
 EXPORT_SYMBOL_GPL(fuse_conn_get);
 
-static struct inode *fuse_get_root_inode(struct super_block *sb, unsigned mode)
+static struct inode *fuse_get_root_inode(struct super_block *sb,
+					 unsigned int mode,
+					 struct bpf_prog *root_bpf,
+					 struct file *backing_fd)
 {
 	struct fuse_attr attr;
-	memset(&attr, 0, sizeof(attr));
+	struct inode *inode;
 
+	memset(&attr, 0, sizeof(attr));
 	attr.mode = mode;
 	attr.ino = FUSE_ROOT_ID;
 	attr.nlink = 1;
-	return fuse_iget(sb, 1, 0, &attr, 0, 0);
+	inode = fuse_iget(sb, 1, 0, &attr, 0, 0);
+	if (!inode)
+		return NULL;
+
+#ifdef CONFIG_FUSE_BPF
+	get_fuse_inode(inode)->bpf = root_bpf;
+	if (root_bpf)
+		bpf_prog_inc(root_bpf);
+
+	if (backing_fd) {
+		get_fuse_inode(inode)->backing_inode = backing_fd->f_inode;
+		ihold(backing_fd->f_inode);
+	}
+#endif
+
+	return inode;
 }
 
 struct fuse_inode_handle {
@@ -864,11 +1032,14 @@
 	struct inode *inode;
 	struct dentry *entry;
 	int err = -ESTALE;
+	struct fuse_inode_identifier fii = {
+		.nodeid = handle->nodeid,
+	};
 
 	if (handle->nodeid == 0)
 		goto out_err;
 
-	inode = ilookup5(sb, handle->nodeid, fuse_inode_eq, &handle->nodeid);
+	inode = ilookup5(sb, handle->nodeid, fuse_inode_eq, &fii);
 	if (!inode) {
 		struct fuse_entry_out outarg;
 		const struct qstr name = QSTR_INIT(".", 1);
@@ -877,7 +1048,7 @@
 			goto out_err;
 
 		err = fuse_lookup_name(sb, handle->nodeid, &name, &outarg,
-				       &inode);
+				       NULL, &inode);
 		if (err && err != -ENOENT)
 			goto out_err;
 		if (err || !inode) {
@@ -971,13 +1142,14 @@
 	struct inode *inode;
 	struct dentry *parent;
 	struct fuse_entry_out outarg;
+	const struct qstr name = QSTR_INIT("..", 2);
 	int err;
 
 	if (!fc->export_support)
 		return ERR_PTR(-ESTALE);
 
 	err = fuse_lookup_name(child_inode->i_sb, get_node_id(child_inode),
-			       &dotdot_name, &outarg, &inode);
+			       &name, &outarg, NULL, &inode);
 	if (err) {
 		if (err == -ENOENT)
 			return ERR_PTR(-ESTALE);
@@ -1000,6 +1172,9 @@
 
 static const struct super_operations fuse_super_operations = {
 	.alloc_inode    = fuse_alloc_inode,
+#ifdef CONFIG_FUSE_BPF
+	.destroy_inode  = fuse_destroy_inode,
+#endif
 	.free_inode     = fuse_free_inode,
 	.evict_inode	= fuse_evict_inode,
 	.write_inode	= fuse_write_inode,
@@ -1085,73 +1260,83 @@
 		process_init_limits(fc, arg);
 
 		if (arg->minor >= 6) {
+			u64 flags = arg->flags | (u64) arg->flags2 << 32;
+
 			ra_pages = arg->max_readahead / PAGE_SIZE;
-			if (arg->flags & FUSE_ASYNC_READ)
+			if (flags & FUSE_ASYNC_READ)
 				fc->async_read = 1;
-			if (!(arg->flags & FUSE_POSIX_LOCKS))
+			if (!(flags & FUSE_POSIX_LOCKS))
 				fc->no_lock = 1;
 			if (arg->minor >= 17) {
-				if (!(arg->flags & FUSE_FLOCK_LOCKS))
+				if (!(flags & FUSE_FLOCK_LOCKS))
 					fc->no_flock = 1;
 			} else {
-				if (!(arg->flags & FUSE_POSIX_LOCKS))
+				if (!(flags & FUSE_POSIX_LOCKS))
 					fc->no_flock = 1;
 			}
-			if (arg->flags & FUSE_ATOMIC_O_TRUNC)
+			if (flags & FUSE_ATOMIC_O_TRUNC)
 				fc->atomic_o_trunc = 1;
 			if (arg->minor >= 9) {
 				/* LOOKUP has dependency on proto version */
-				if (arg->flags & FUSE_EXPORT_SUPPORT)
+				if (flags & FUSE_EXPORT_SUPPORT)
 					fc->export_support = 1;
 			}
-			if (arg->flags & FUSE_BIG_WRITES)
+			if (flags & FUSE_BIG_WRITES)
 				fc->big_writes = 1;
-			if (arg->flags & FUSE_DONT_MASK)
+			if (flags & FUSE_DONT_MASK)
 				fc->dont_mask = 1;
-			if (arg->flags & FUSE_AUTO_INVAL_DATA)
+			if (flags & FUSE_AUTO_INVAL_DATA)
 				fc->auto_inval_data = 1;
-			else if (arg->flags & FUSE_EXPLICIT_INVAL_DATA)
+			else if (flags & FUSE_EXPLICIT_INVAL_DATA)
 				fc->explicit_inval_data = 1;
-			if (arg->flags & FUSE_DO_READDIRPLUS) {
+			if (flags & FUSE_DO_READDIRPLUS) {
 				fc->do_readdirplus = 1;
-				if (arg->flags & FUSE_READDIRPLUS_AUTO)
+				if (flags & FUSE_READDIRPLUS_AUTO)
 					fc->readdirplus_auto = 1;
 			}
-			if (arg->flags & FUSE_ASYNC_DIO)
+			if (flags & FUSE_ASYNC_DIO)
 				fc->async_dio = 1;
-			if (arg->flags & FUSE_WRITEBACK_CACHE)
+			if (flags & FUSE_WRITEBACK_CACHE)
 				fc->writeback_cache = 1;
-			if (arg->flags & FUSE_PARALLEL_DIROPS)
+			if (flags & FUSE_PARALLEL_DIROPS)
 				fc->parallel_dirops = 1;
-			if (arg->flags & FUSE_HANDLE_KILLPRIV)
+			if (flags & FUSE_HANDLE_KILLPRIV)
 				fc->handle_killpriv = 1;
 			if (arg->time_gran && arg->time_gran <= 1000000000)
 				fm->sb->s_time_gran = arg->time_gran;
-			if ((arg->flags & FUSE_POSIX_ACL)) {
+			if ((flags & FUSE_POSIX_ACL)) {
 				fc->default_permissions = 1;
 				fc->posix_acl = 1;
 				fm->sb->s_xattr = fuse_acl_xattr_handlers;
 			}
-			if (arg->flags & FUSE_CACHE_SYMLINKS)
+			if (flags & FUSE_CACHE_SYMLINKS)
 				fc->cache_symlinks = 1;
-			if (arg->flags & FUSE_ABORT_ERROR)
+			if (flags & FUSE_ABORT_ERROR)
 				fc->abort_err = 1;
-			if (arg->flags & FUSE_MAX_PAGES) {
+			if (flags & FUSE_MAX_PAGES) {
 				fc->max_pages =
 					min_t(unsigned int, fc->max_pages_limit,
 					max_t(unsigned int, arg->max_pages, 1));
 			}
 			if (IS_ENABLED(CONFIG_FUSE_DAX) &&
-			    arg->flags & FUSE_MAP_ALIGNMENT &&
+			    flags & FUSE_MAP_ALIGNMENT &&
 			    !fuse_dax_check_alignment(fc, arg->map_alignment)) {
 				ok = false;
 			}
-			if (arg->flags & FUSE_HANDLE_KILLPRIV_V2) {
+			if (flags & FUSE_HANDLE_KILLPRIV_V2) {
 				fc->handle_killpriv_v2 = 1;
 				fm->sb->s_flags |= SB_NOSEC;
 			}
-			if (arg->flags & FUSE_SETXATTR_EXT)
+			if (flags & FUSE_PASSTHROUGH) {
+				fc->passthrough = 1;
+				/* Prevent further stacking */
+				fm->sb->s_stack_depth =
+					FILESYSTEM_MAX_STACK_DEPTH;
+			}
+			if (flags & FUSE_SETXATTR_EXT)
 				fc->setxattr_ext = 1;
+			if (flags & FUSE_SECURITY_CTX)
+				fc->init_security = 1;
 		} else {
 			ra_pages = fc->max_read / PAGE_SIZE;
 			fc->no_lock = 1;
@@ -1179,13 +1364,14 @@
 void fuse_send_init(struct fuse_mount *fm)
 {
 	struct fuse_init_args *ia;
+	u64 flags;
 
 	ia = kzalloc(sizeof(*ia), GFP_KERNEL | __GFP_NOFAIL);
 
 	ia->in.major = FUSE_KERNEL_VERSION;
 	ia->in.minor = FUSE_KERNEL_MINOR_VERSION;
 	ia->in.max_readahead = fm->sb->s_bdi->ra_pages * PAGE_SIZE;
-	ia->in.flags |=
+	flags =
 		FUSE_ASYNC_READ | FUSE_POSIX_LOCKS | FUSE_ATOMIC_O_TRUNC |
 		FUSE_EXPORT_SUPPORT | FUSE_BIG_WRITES | FUSE_DONT_MASK |
 		FUSE_SPLICE_WRITE | FUSE_SPLICE_MOVE | FUSE_SPLICE_READ |
@@ -1195,13 +1381,18 @@
 		FUSE_PARALLEL_DIROPS | FUSE_HANDLE_KILLPRIV | FUSE_POSIX_ACL |
 		FUSE_ABORT_ERROR | FUSE_MAX_PAGES | FUSE_CACHE_SYMLINKS |
 		FUSE_NO_OPENDIR_SUPPORT | FUSE_EXPLICIT_INVAL_DATA |
-		FUSE_HANDLE_KILLPRIV_V2 | FUSE_SETXATTR_EXT;
+		FUSE_PASSTHROUGH |
+		FUSE_HANDLE_KILLPRIV_V2 | FUSE_SETXATTR_EXT | FUSE_INIT_EXT |
+		FUSE_SECURITY_CTX;
 #ifdef CONFIG_FUSE_DAX
 	if (fm->fc->dax)
-		ia->in.flags |= FUSE_MAP_ALIGNMENT;
+		flags |= FUSE_MAP_ALIGNMENT;
 #endif
 	if (fm->fc->auto_submounts)
-		ia->in.flags |= FUSE_SUBMOUNTS;
+		flags |= FUSE_SUBMOUNTS;
+
+	ia->in.flags = flags;
+	ia->in.flags2 = flags >> 32;
 
 	ia->args.opcode = FUSE_INIT;
 	ia->args.in_numargs = 1;
@@ -1218,14 +1409,26 @@
 	ia->args.nocreds = true;
 	ia->args.end = process_init_reply;
 
-	if (fuse_simple_background(fm, &ia->args, GFP_KERNEL) != 0)
+	if (unlikely(fm->fc->no_daemon) || fuse_simple_background(fm, &ia->args, GFP_KERNEL) != 0)
 		process_init_reply(fm, &ia->args, -ENOTCONN);
 }
 EXPORT_SYMBOL_GPL(fuse_send_init);
 
+static int free_fuse_passthrough(int id, void *p, void *data)
+{
+	struct fuse_passthrough *passthrough = (struct fuse_passthrough *)p;
+
+	fuse_passthrough_release(passthrough);
+	kfree(p);
+
+	return 0;
+}
+
 void fuse_free_conn(struct fuse_conn *fc)
 {
 	WARN_ON(!list_empty(&fc->devices));
+	idr_for_each(&fc->passthrough_req, free_fuse_passthrough, NULL);
+	idr_destroy(&fc->passthrough_req);
 	kfree_rcu(fc, rcu);
 }
 EXPORT_SYMBOL_GPL(fuse_free_conn);
@@ -1330,28 +1533,6 @@
 }
 EXPORT_SYMBOL_GPL(fuse_dev_free);
 
-static void fuse_fill_attr_from_inode(struct fuse_attr *attr,
-				      const struct fuse_inode *fi)
-{
-	*attr = (struct fuse_attr){
-		.ino		= fi->inode.i_ino,
-		.size		= fi->inode.i_size,
-		.blocks		= fi->inode.i_blocks,
-		.atime		= fi->inode.i_atime.tv_sec,
-		.mtime		= fi->inode.i_mtime.tv_sec,
-		.ctime		= fi->inode.i_ctime.tv_sec,
-		.atimensec	= fi->inode.i_atime.tv_nsec,
-		.mtimensec	= fi->inode.i_mtime.tv_nsec,
-		.ctimensec	= fi->inode.i_ctime.tv_nsec,
-		.mode		= fi->inode.i_mode,
-		.nlink		= fi->inode.i_nlink,
-		.uid		= fi->inode.i_uid.val,
-		.gid		= fi->inode.i_gid.val,
-		.rdev		= fi->inode.i_rdev,
-		.blksize	= 1u << fi->inode.i_blkbits,
-	};
-}
-
 static void fuse_sb_defaults(struct super_block *sb)
 {
 	sb->s_magic = FUSE_SUPER_MAGIC;
@@ -1395,7 +1576,7 @@
 	if (parent_sb->s_subtype && !sb->s_subtype)
 		return -ENOMEM;
 
-	fuse_fill_attr_from_inode(&root_attr, parent_fi);
+	fuse_fill_attr_from_inode(&root_attr, &parent_fi->inode);
 	root = fuse_iget(sb, parent_fi->nodeid, 0, &root_attr, 0, 0);
 	/*
 	 * This inode is just a duplicate, so it is not looked up and
@@ -1522,13 +1703,16 @@
 	fc->destroy = ctx->destroy;
 	fc->no_control = ctx->no_control;
 	fc->no_force_umount = ctx->no_force_umount;
+	fc->no_daemon = ctx->no_daemon;
 
 	err = -ENOMEM;
-	root = fuse_get_root_inode(sb, ctx->rootmode);
+	root = fuse_get_root_inode(sb, ctx->rootmode, ctx->root_bpf,
+				   ctx->root_dir);
 	sb->s_d_op = &fuse_root_dentry_operations;
 	root_dentry = d_make_root(root);
 	if (!root_dentry)
 		goto err_dev_free;
+	fuse_init_dentry_root(root_dentry, ctx->root_dir);
 	/* Root dentry doesn't have .d_revalidate */
 	sb->s_d_op = &fuse_dentry_operations;
 
@@ -1567,18 +1751,20 @@
 	struct fuse_fs_context *ctx = fsc->fs_private;
 	int err;
 
-	if (!ctx->file || !ctx->rootmode_present ||
-	    !ctx->user_id_present || !ctx->group_id_present)
-		return -EINVAL;
+	if (!ctx->no_daemon) {
+		if (!ctx->file || !ctx->rootmode_present ||
+		    !ctx->user_id_present || !ctx->group_id_present)
+			return -EINVAL;
 
-	/*
-	 * Require mount to happen from the same user namespace which
-	 * opened /dev/fuse to prevent potential attacks.
-	 */
-	if ((ctx->file->f_op != &fuse_dev_operations) ||
-	    (ctx->file->f_cred->user_ns != sb->s_user_ns))
-		return -EINVAL;
-	ctx->fudptr = &ctx->file->private_data;
+		/*
+		 * Require mount to happen from the same user namespace which
+		 * opened /dev/fuse to prevent potential attacks.
+		 */
+		if ((ctx->file->f_op != &fuse_dev_operations) ||
+		    (ctx->file->f_cred->user_ns != sb->s_user_ns))
+			return -EINVAL;
+		ctx->fudptr = &ctx->file->private_data;
+	}
 
 	err = fuse_fill_super_common(sb, ctx);
 	if (err)
@@ -1859,6 +2045,57 @@
 
 static struct kobject *fuse_kobj;
 
+static ssize_t fuse_bpf_show(struct kobject *kobj,
+				       struct kobj_attribute *attr, char *buff)
+{
+	return sysfs_emit(buff, "supported\n");
+}
+
+static struct kobj_attribute fuse_bpf_attr =
+		__ATTR_RO(fuse_bpf);
+
+static struct attribute *bpf_features[] = {
+	&fuse_bpf_attr.attr,
+	NULL,
+};
+
+static const struct attribute_group bpf_features_group = {
+	.name = "features",
+	.attrs = bpf_features,
+};
+
+/*
+ * TODO Remove this once fuse-bpf is upstreamed
+ *
+ * bpf_prog_type_fuse exports the bpf_prog_type_fuse 'constant', which cannot be
+ * constant until the code is upstreamed
+ */
+static ssize_t bpf_prog_type_fuse_show(struct kobject *kobj,
+				       struct kobj_attribute *attr, char *buff)
+{
+	return sysfs_emit(buff, "%d\n", BPF_PROG_TYPE_FUSE);
+}
+
+static struct kobj_attribute bpf_prog_type_fuse_attr =
+		__ATTR_RO(bpf_prog_type_fuse);
+
+static struct attribute *bpf_attributes[] = {
+	&bpf_prog_type_fuse_attr.attr,
+	NULL,
+};
+
+static const struct attribute_group bpf_attr_group = {
+	.attrs = bpf_attributes,
+};
+
+static const struct attribute_group *attribute_groups[] = {
+	&bpf_features_group,
+	&bpf_attr_group,
+	NULL
+};
+
+/* TODO remove to here */
+
 static int fuse_sysfs_init(void)
 {
 	int err;
@@ -1873,8 +2110,15 @@
 	if (err)
 		goto out_fuse_unregister;
 
+	/* TODO Remove when BPF_PROG_TYPE_FUSE is upstreamed */
+	err = sysfs_create_groups(fuse_kobj, attribute_groups);
+	if (err)
+		goto out_fuse_remove_mount_point;
+
 	return 0;
 
+ out_fuse_remove_mount_point:
+	sysfs_remove_mount_point(fuse_kobj, "connections");
  out_fuse_unregister:
 	kobject_put(fuse_kobj);
  out_err:
@@ -1883,6 +2127,7 @@
 
 static void fuse_sysfs_cleanup(void)
 {
+	sysfs_remove_groups(fuse_kobj, attribute_groups);
 	sysfs_remove_mount_point(fuse_kobj, "connections");
 	kobject_put(fuse_kobj);
 }
@@ -1911,11 +2156,21 @@
 	if (res)
 		goto err_sysfs_cleanup;
 
+#ifdef CONFIG_FUSE_BPF
+	res = fuse_bpf_init();
+	if (res)
+		goto err_ctl_cleanup;
+#endif
+
 	sanitize_global_limit(&max_user_bgreq);
 	sanitize_global_limit(&max_user_congthresh);
 
 	return 0;
 
+#ifdef CONFIG_FUSE_BPF
+ err_ctl_cleanup:
+	fuse_ctl_cleanup();
+#endif
  err_sysfs_cleanup:
 	fuse_sysfs_cleanup();
  err_dev_cleanup:
@@ -1933,6 +2188,9 @@
 	fuse_ctl_cleanup();
 	fuse_sysfs_cleanup();
 	fuse_fs_cleanup();
+#ifdef CONFIG_FUSE_BPF
+	fuse_bpf_cleanup();
+#endif
 	fuse_dev_cleanup();
 }
 
diff --git a/fs/fuse/ioctl.c b/fs/fuse/ioctl.c
index 2f26b5c..db5aadc 100644
--- a/fs/fuse/ioctl.c
+++ b/fs/fuse/ioctl.c
@@ -360,6 +360,15 @@
 	if (fuse_is_bad(inode))
 		return -EIO;
 
+#ifdef CONFIG_FUSE_BPF
+	{
+		struct fuse_file *ff = file->private_data;
+
+		/* TODO - this is simply passthrough, not a proper BPF filter */
+		if (ff->backing_file)
+			return fuse_backing_ioctl(file, cmd, arg, flags);
+	}
+#endif
 	return fuse_do_ioctl(file, cmd, arg, flags);
 }
 
diff --git a/fs/fuse/passthrough.c b/fs/fuse/passthrough.c
new file mode 100644
index 0000000..6031e72
--- /dev/null
+++ b/fs/fuse/passthrough.c
@@ -0,0 +1,293 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include "fuse_i.h"
+
+#include <linux/fuse.h>
+#include <linux/idr.h>
+#include <linux/uio.h>
+
+#define PASSTHROUGH_IOCB_MASK                                                  \
+	(IOCB_APPEND | IOCB_DSYNC | IOCB_HIPRI | IOCB_NOWAIT | IOCB_SYNC)
+
+struct fuse_aio_req {
+	struct kiocb iocb;
+	struct kiocb *iocb_fuse;
+};
+
+static void fuse_file_accessed(struct file *dst_file, struct file *src_file)
+{
+	struct inode *dst_inode;
+	struct inode *src_inode;
+
+	if (dst_file->f_flags & O_NOATIME)
+		return;
+
+	dst_inode = file_inode(dst_file);
+	src_inode = file_inode(src_file);
+
+	if ((!timespec64_equal(&dst_inode->i_mtime, &src_inode->i_mtime) ||
+	     !timespec64_equal(&dst_inode->i_ctime, &src_inode->i_ctime))) {
+		dst_inode->i_mtime = src_inode->i_mtime;
+		dst_inode->i_ctime = src_inode->i_ctime;
+	}
+
+	touch_atime(&dst_file->f_path);
+}
+
+void fuse_copyattr(struct file *dst_file, struct file *src_file)
+{
+	struct inode *dst = file_inode(dst_file);
+	struct inode *src = file_inode(src_file);
+
+	dst->i_atime = src->i_atime;
+	dst->i_mtime = src->i_mtime;
+	dst->i_ctime = src->i_ctime;
+	i_size_write(dst, i_size_read(src));
+}
+
+static void fuse_aio_cleanup_handler(struct fuse_aio_req *aio_req)
+{
+	struct kiocb *iocb = &aio_req->iocb;
+	struct kiocb *iocb_fuse = aio_req->iocb_fuse;
+
+	if (iocb->ki_flags & IOCB_WRITE) {
+		__sb_writers_acquired(file_inode(iocb->ki_filp)->i_sb,
+				      SB_FREEZE_WRITE);
+		file_end_write(iocb->ki_filp);
+		fuse_copyattr(iocb_fuse->ki_filp, iocb->ki_filp);
+	}
+
+	iocb_fuse->ki_pos = iocb->ki_pos;
+	kfree(aio_req);
+}
+
+static void fuse_aio_rw_complete(struct kiocb *iocb, long res, long res2)
+{
+	struct fuse_aio_req *aio_req =
+		container_of(iocb, struct fuse_aio_req, iocb);
+	struct kiocb *iocb_fuse = aio_req->iocb_fuse;
+
+	fuse_aio_cleanup_handler(aio_req);
+	iocb_fuse->ki_complete(iocb_fuse, res, res2);
+}
+
+ssize_t fuse_passthrough_read_iter(struct kiocb *iocb_fuse,
+				   struct iov_iter *iter)
+{
+	ssize_t ret;
+	const struct cred *old_cred;
+	struct file *fuse_filp = iocb_fuse->ki_filp;
+	struct fuse_file *ff = fuse_filp->private_data;
+	struct file *passthrough_filp = ff->passthrough.filp;
+
+	if (!iov_iter_count(iter))
+		return 0;
+
+	old_cred = override_creds(ff->passthrough.cred);
+	if (is_sync_kiocb(iocb_fuse)) {
+		ret = vfs_iter_read(passthrough_filp, iter, &iocb_fuse->ki_pos,
+				    iocb_to_rw_flags(iocb_fuse->ki_flags,
+						     PASSTHROUGH_IOCB_MASK));
+	} else {
+		struct fuse_aio_req *aio_req;
+
+		aio_req = kmalloc(sizeof(struct fuse_aio_req), GFP_KERNEL);
+		if (!aio_req) {
+			ret = -ENOMEM;
+			goto out;
+		}
+
+		aio_req->iocb_fuse = iocb_fuse;
+		kiocb_clone(&aio_req->iocb, iocb_fuse, passthrough_filp);
+		aio_req->iocb.ki_complete = fuse_aio_rw_complete;
+		ret = call_read_iter(passthrough_filp, &aio_req->iocb, iter);
+		if (ret != -EIOCBQUEUED)
+			fuse_aio_cleanup_handler(aio_req);
+	}
+out:
+	revert_creds(old_cred);
+
+	fuse_file_accessed(fuse_filp, passthrough_filp);
+
+	return ret;
+}
+
+ssize_t fuse_passthrough_write_iter(struct kiocb *iocb_fuse,
+				    struct iov_iter *iter)
+{
+	ssize_t ret;
+	const struct cred *old_cred;
+	struct file *fuse_filp = iocb_fuse->ki_filp;
+	struct fuse_file *ff = fuse_filp->private_data;
+	struct inode *fuse_inode = file_inode(fuse_filp);
+	struct file *passthrough_filp = ff->passthrough.filp;
+	struct inode *passthrough_inode = file_inode(passthrough_filp);
+
+	if (!iov_iter_count(iter))
+		return 0;
+
+	inode_lock(fuse_inode);
+
+	fuse_copyattr(fuse_filp, passthrough_filp);
+
+	old_cred = override_creds(ff->passthrough.cred);
+	if (is_sync_kiocb(iocb_fuse)) {
+		file_start_write(passthrough_filp);
+		ret = vfs_iter_write(passthrough_filp, iter, &iocb_fuse->ki_pos,
+				     iocb_to_rw_flags(iocb_fuse->ki_flags,
+						      PASSTHROUGH_IOCB_MASK));
+		file_end_write(passthrough_filp);
+		if (ret > 0)
+			fuse_copyattr(fuse_filp, passthrough_filp);
+	} else {
+		struct fuse_aio_req *aio_req;
+
+		aio_req = kmalloc(sizeof(struct fuse_aio_req), GFP_KERNEL);
+		if (!aio_req) {
+			ret = -ENOMEM;
+			goto out;
+		}
+
+		file_start_write(passthrough_filp);
+		__sb_writers_release(passthrough_inode->i_sb, SB_FREEZE_WRITE);
+
+		aio_req->iocb_fuse = iocb_fuse;
+		kiocb_clone(&aio_req->iocb, iocb_fuse, passthrough_filp);
+		aio_req->iocb.ki_complete = fuse_aio_rw_complete;
+		ret = call_write_iter(passthrough_filp, &aio_req->iocb, iter);
+		if (ret != -EIOCBQUEUED)
+			fuse_aio_cleanup_handler(aio_req);
+	}
+out:
+	revert_creds(old_cred);
+	inode_unlock(fuse_inode);
+
+	return ret;
+}
+
+ssize_t fuse_passthrough_mmap(struct file *file, struct vm_area_struct *vma)
+{
+	int ret;
+	const struct cred *old_cred;
+	struct fuse_file *ff = file->private_data;
+	struct file *passthrough_filp = ff->passthrough.filp;
+
+	if (!passthrough_filp->f_op->mmap)
+		return -ENODEV;
+
+	if (WARN_ON(file != vma->vm_file))
+		return -EIO;
+
+	vma->vm_file = get_file(passthrough_filp);
+
+	old_cred = override_creds(ff->passthrough.cred);
+	ret = call_mmap(vma->vm_file, vma);
+	revert_creds(old_cred);
+
+	if (ret)
+		fput(passthrough_filp);
+	else
+		fput(file);
+
+	fuse_file_accessed(file, passthrough_filp);
+
+	return ret;
+}
+
+int fuse_passthrough_open(struct fuse_dev *fud, u32 lower_fd)
+{
+	int res;
+	struct file *passthrough_filp;
+	struct fuse_conn *fc = fud->fc;
+	struct inode *passthrough_inode;
+	struct super_block *passthrough_sb;
+	struct fuse_passthrough *passthrough;
+
+	if (!fc->passthrough)
+		return -EPERM;
+
+	passthrough_filp = fget(lower_fd);
+	if (!passthrough_filp) {
+		pr_err("FUSE: invalid file descriptor for passthrough.\n");
+		return -EBADF;
+	}
+
+	if (!passthrough_filp->f_op->read_iter ||
+	    !passthrough_filp->f_op->write_iter) {
+		pr_err("FUSE: passthrough file misses file operations.\n");
+		res = -EBADF;
+		goto err_free_file;
+	}
+
+	passthrough_inode = file_inode(passthrough_filp);
+	passthrough_sb = passthrough_inode->i_sb;
+	if (passthrough_sb->s_stack_depth >= FILESYSTEM_MAX_STACK_DEPTH) {
+		pr_err("FUSE: fs stacking depth exceeded for passthrough\n");
+		res = -EINVAL;
+		goto err_free_file;
+	}
+
+	passthrough = kmalloc(sizeof(struct fuse_passthrough), GFP_KERNEL);
+	if (!passthrough) {
+		res = -ENOMEM;
+		goto err_free_file;
+	}
+
+	passthrough->filp = passthrough_filp;
+	passthrough->cred = prepare_creds();
+
+	idr_preload(GFP_KERNEL);
+	spin_lock(&fc->passthrough_req_lock);
+	res = idr_alloc(&fc->passthrough_req, passthrough, 1, 0, GFP_ATOMIC);
+	spin_unlock(&fc->passthrough_req_lock);
+	idr_preload_end();
+
+	if (res > 0)
+		return res;
+
+	fuse_passthrough_release(passthrough);
+	kfree(passthrough);
+
+err_free_file:
+	fput(passthrough_filp);
+
+	return res;
+}
+
+int fuse_passthrough_setup(struct fuse_conn *fc, struct fuse_file *ff,
+			   struct fuse_open_out *openarg)
+{
+	struct fuse_passthrough *passthrough;
+	int passthrough_fh = openarg->passthrough_fh;
+
+	if (!fc->passthrough)
+		return -EPERM;
+
+	/* Default case, passthrough is not requested */
+	if (passthrough_fh <= 0)
+		return -EINVAL;
+
+	spin_lock(&fc->passthrough_req_lock);
+	passthrough = idr_remove(&fc->passthrough_req, passthrough_fh);
+	spin_unlock(&fc->passthrough_req_lock);
+
+	if (!passthrough)
+		return -EINVAL;
+
+	ff->passthrough = *passthrough;
+	kfree(passthrough);
+
+	return 0;
+}
+
+void fuse_passthrough_release(struct fuse_passthrough *passthrough)
+{
+	if (passthrough->filp) {
+		fput(passthrough->filp);
+		passthrough->filp = NULL;
+	}
+	if (passthrough->cred) {
+		put_cred(passthrough->cred);
+		passthrough->cred = NULL;
+	}
+}
diff --git a/fs/fuse/readdir.c b/fs/fuse/readdir.c
index d5294e6..0516686 100644
--- a/fs/fuse/readdir.c
+++ b/fs/fuse/readdir.c
@@ -20,6 +20,8 @@
 
 	if (!fc->do_readdirplus)
 		return false;
+	if (fi->nodeid == 0)
+		return false;
 	if (!fc->readdirplus_auto)
 		return true;
 	if (test_and_clear_bit(FUSE_I_ADVISE_RDPLUS, &fi->state))
@@ -579,6 +581,26 @@
 	struct inode *inode = file_inode(file);
 	int err;
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+	bool allow_force;
+	bool force_again = false;
+	bool is_continued = false;
+
+again:
+	fer = fuse_bpf_backing(inode, struct fuse_read_io,
+			       fuse_readdir_initialize, fuse_readdir_backing,
+			       fuse_readdir_finalize,
+			       file, ctx, &force_again, &allow_force, is_continued);
+	if (force_again && !IS_ERR(fer.result)) {
+		is_continued = true;
+		goto again;
+	}
+
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (fuse_is_bad(inode))
 		return -EIO;
 
diff --git a/fs/fuse/virtio_fs.c b/fs/fuse/virtio_fs.c
index 94fc874..9901b3c 100644
--- a/fs/fuse/virtio_fs.c
+++ b/fs/fuse/virtio_fs.c
@@ -972,7 +972,7 @@
 #endif
 };
 
-static void virtio_fs_wake_forget_and_unlock(struct fuse_iqueue *fiq)
+static void virtio_fs_wake_forget_and_unlock(struct fuse_iqueue *fiq, bool sync)
 __releases(fiq->lock)
 {
 	struct fuse_forget_link *link;
@@ -1007,7 +1007,8 @@
 	kfree(link);
 }
 
-static void virtio_fs_wake_interrupt_and_unlock(struct fuse_iqueue *fiq)
+static void virtio_fs_wake_interrupt_and_unlock(struct fuse_iqueue *fiq,
+						bool sync)
 __releases(fiq->lock)
 {
 	/*
@@ -1222,7 +1223,8 @@
 	return ret;
 }
 
-static void virtio_fs_wake_pending_and_unlock(struct fuse_iqueue *fiq)
+static void virtio_fs_wake_pending_and_unlock(struct fuse_iqueue *fiq,
+					      bool sync)
 __releases(fiq->lock)
 {
 	unsigned int queue_id = VQ_REQUEST; /* TODO multiqueue */
diff --git a/fs/fuse/xattr.c b/fs/fuse/xattr.c
index 61dfaf7..6c95d0d 100644
--- a/fs/fuse/xattr.c
+++ b/fs/fuse/xattr.c
@@ -116,6 +116,17 @@
 	struct fuse_getxattr_out outarg;
 	ssize_t ret;
 
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_getxattr_io,
+			       fuse_listxattr_initialize,
+			       fuse_listxattr_backing, fuse_listxattr_finalize,
+			       entry, list, size);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (fuse_is_bad(inode))
 		return -EIO;
 
@@ -184,6 +195,17 @@
 			 struct dentry *dentry, struct inode *inode,
 			 const char *name, void *value, size_t size)
 {
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	fer = fuse_bpf_backing(inode, struct fuse_getxattr_io,
+			       fuse_getxattr_initialize, fuse_getxattr_backing,
+			       fuse_getxattr_finalize,
+			       dentry, name, value, size);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (fuse_is_bad(inode))
 		return -EIO;
 
@@ -196,6 +218,24 @@
 			  const char *name, const void *value, size_t size,
 			  int flags)
 {
+#ifdef CONFIG_FUSE_BPF
+	struct fuse_err_ret fer;
+
+	if (value)
+		fer = fuse_bpf_backing(inode, struct fuse_setxattr_in,
+			       fuse_setxattr_initialize, fuse_setxattr_backing,
+			       fuse_setxattr_finalize, dentry, name, value,
+			       size, flags);
+	else
+		fer = fuse_bpf_backing(inode, struct fuse_dummy_io,
+				       fuse_removexattr_initialize,
+				       fuse_removexattr_backing,
+				       fuse_removexattr_finalize,
+				       dentry, name);
+	if (fer.ret)
+		return PTR_ERR(fer.result);
+#endif
+
 	if (fuse_is_bad(inode))
 		return -EIO;
 
diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c
index e93185d..3dc796f 100644
--- a/fs/gfs2/file.c
+++ b/fs/gfs2/file.c
@@ -858,9 +858,9 @@
 		leftover = fault_in_iov_iter_writeable(to, window_size);
 		gfs2_holder_disallow_demote(gh);
 		if (leftover != window_size) {
-			if (gfs2_holder_queued(gh))
-				goto retry_under_glock;
-			goto retry;
+			if (!gfs2_holder_queued(gh))
+				goto retry;
+			goto retry_under_glock;
 		}
 	}
 	if (gfs2_holder_queued(gh))
@@ -927,9 +927,9 @@
 		leftover = fault_in_iov_iter_readable(from, window_size);
 		gfs2_holder_disallow_demote(gh);
 		if (leftover != window_size) {
-			if (gfs2_holder_queued(gh))
-				goto retry_under_glock;
-			goto retry;
+			if (!gfs2_holder_queued(gh))
+				goto retry;
+			goto retry_under_glock;
 		}
 	}
 out:
@@ -998,9 +998,12 @@
 		leftover = fault_in_iov_iter_writeable(to, window_size);
 		gfs2_holder_disallow_demote(&gh);
 		if (leftover != window_size) {
-			if (gfs2_holder_queued(&gh))
-				goto retry_under_glock;
-			goto retry;
+			if (!gfs2_holder_queued(&gh)) {
+				if (written)
+					goto out_uninit;
+				goto retry;
+			}
+			goto retry_under_glock;
 		}
 	}
 	if (gfs2_holder_queued(&gh))
@@ -1074,9 +1077,12 @@
 		gfs2_holder_disallow_demote(gh);
 		if (leftover != window_size) {
 			from->count = min(from->count, window_size - leftover);
-			if (gfs2_holder_queued(gh))
-				goto retry_under_glock;
-			goto retry;
+			if (!gfs2_holder_queued(gh)) {
+				if (read)
+					goto out_uninit;
+				goto retry;
+			}
+			goto retry_under_glock;
 		}
 	}
 out_unlock:
diff --git a/fs/gfs2/main.c b/fs/gfs2/main.c
index 28d0eb2..3e7b2eb 100644
--- a/fs/gfs2/main.c
+++ b/fs/gfs2/main.c
@@ -260,6 +260,7 @@
 MODULE_DESCRIPTION("Global File System");
 MODULE_AUTHOR("Red Hat, Inc.");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 
 module_init(init_gfs2_fs);
 module_exit(exit_gfs2_fs);
diff --git a/fs/hfs/super.c b/fs/hfs/super.c
index 12d9bae..6432d65 100644
--- a/fs/hfs/super.c
+++ b/fs/hfs/super.c
@@ -29,6 +29,7 @@
 static struct kmem_cache *hfs_inode_cachep;
 
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 
 static int hfs_sync_fs(struct super_block *sb, int wait)
 {
diff --git a/fs/hfsplus/super.c b/fs/hfsplus/super.c
index 392edb6..50ee864 100644
--- a/fs/hfsplus/super.c
+++ b/fs/hfsplus/super.c
@@ -617,6 +617,7 @@
 MODULE_AUTHOR("Brad Boyer");
 MODULE_DESCRIPTION("Extended Macintosh Filesystem");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 
 static struct kmem_cache *hfsplus_inode_cachep;
 
diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c
index a7dbfc8..d7598d7 100644
--- a/fs/hpfs/super.c
+++ b/fs/hpfs/super.c
@@ -791,3 +791,4 @@
 module_init(init_hpfs_fs)
 module_exit(exit_hpfs_fs)
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/incfs/Kconfig b/fs/incfs/Kconfig
new file mode 100644
index 0000000..5f15000
--- /dev/null
+++ b/fs/incfs/Kconfig
@@ -0,0 +1,13 @@
+config INCREMENTAL_FS
+	tristate "Incremental file system support"
+	depends on BLOCK
+	select DECOMPRESS_LZ4
+	select DECOMPRESS_ZSTD
+	select CRYPTO_SHA256
+	help
+	  Incremental FS is a read-only virtual file system that facilitates execution
+	  of programs while their binaries are still being lazily downloaded over the
+	  network, USB or pigeon post.
+
+	  To compile this file system support as a module, choose M here: the
+	  module will be called incrementalfs.
diff --git a/fs/incfs/Makefile b/fs/incfs/Makefile
new file mode 100644
index 0000000..05795d1
--- /dev/null
+++ b/fs/incfs/Makefile
@@ -0,0 +1,13 @@
+# SPDX-License-Identifier: GPL-2.0
+obj-$(CONFIG_INCREMENTAL_FS)	+= incrementalfs.o
+
+incrementalfs-y := \
+	data_mgmt.o \
+	format.o \
+	integrity.o \
+	main.o \
+	pseudo_files.o \
+	sysfs.o \
+	vfs.o
+
+incrementalfs-$(CONFIG_FS_VERITY) += verity.o
diff --git a/fs/incfs/data_mgmt.c b/fs/incfs/data_mgmt.c
new file mode 100644
index 0000000..5abb20a
--- /dev/null
+++ b/fs/incfs/data_mgmt.c
@@ -0,0 +1,1889 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 Google LLC
+ */
+#include <linux/crc32.h>
+#include <linux/file.h>
+#include <linux/fsverity.h>
+#include <linux/gfp.h>
+#include <linux/kobject.h>
+#include <linux/ktime.h>
+#include <linux/lz4.h>
+#include <linux/mm.h>
+#include <linux/namei.h>
+#include <linux/pagemap.h>
+#include <linux/slab.h>
+#include <linux/types.h>
+#include <linux/workqueue.h>
+
+#include "data_mgmt.h"
+#include "format.h"
+#include "integrity.h"
+#include "sysfs.h"
+#include "verity.h"
+
+static int incfs_scan_metadata_chain(struct data_file *df);
+
+static void log_wake_up_all(struct work_struct *work)
+{
+	struct delayed_work *dw = container_of(work, struct delayed_work, work);
+	struct read_log *rl = container_of(dw, struct read_log, ml_wakeup_work);
+	wake_up_all(&rl->ml_notif_wq);
+}
+
+static void zstd_free_workspace(struct work_struct *work)
+{
+	struct delayed_work *dw = container_of(work, struct delayed_work, work);
+	struct mount_info *mi =
+		container_of(dw, struct mount_info, mi_zstd_cleanup_work);
+
+	mutex_lock(&mi->mi_zstd_workspace_mutex);
+	kvfree(mi->mi_zstd_workspace);
+	mi->mi_zstd_workspace = NULL;
+	mi->mi_zstd_stream = NULL;
+	mutex_unlock(&mi->mi_zstd_workspace_mutex);
+}
+
+struct mount_info *incfs_alloc_mount_info(struct super_block *sb,
+					  struct mount_options *options,
+					  struct path *backing_dir_path)
+{
+	struct mount_info *mi = NULL;
+	int error = 0;
+	struct incfs_sysfs_node *node;
+
+	mi = kzalloc(sizeof(*mi), GFP_NOFS);
+	if (!mi)
+		return ERR_PTR(-ENOMEM);
+
+	mi->mi_sb = sb;
+	mi->mi_backing_dir_path = *backing_dir_path;
+	mi->mi_owner = get_current_cred();
+	path_get(&mi->mi_backing_dir_path);
+	mutex_init(&mi->mi_dir_struct_mutex);
+	init_waitqueue_head(&mi->mi_pending_reads_notif_wq);
+	init_waitqueue_head(&mi->mi_log.ml_notif_wq);
+	init_waitqueue_head(&mi->mi_blocks_written_notif_wq);
+	atomic_set(&mi->mi_blocks_written, 0);
+	INIT_DELAYED_WORK(&mi->mi_log.ml_wakeup_work, log_wake_up_all);
+	spin_lock_init(&mi->mi_log.rl_lock);
+	spin_lock_init(&mi->pending_read_lock);
+	INIT_LIST_HEAD(&mi->mi_reads_list_head);
+	spin_lock_init(&mi->mi_per_uid_read_timeouts_lock);
+	mutex_init(&mi->mi_zstd_workspace_mutex);
+	INIT_DELAYED_WORK(&mi->mi_zstd_cleanup_work, zstd_free_workspace);
+	mutex_init(&mi->mi_le_mutex);
+
+	node = incfs_add_sysfs_node(options->sysfs_name, mi);
+	if (IS_ERR(node)) {
+		error = PTR_ERR(node);
+		goto err;
+	}
+	mi->mi_sysfs_node = node;
+
+	error = incfs_realloc_mount_info(mi, options);
+	if (error)
+		goto err;
+
+	return mi;
+
+err:
+	incfs_free_mount_info(mi);
+	return ERR_PTR(error);
+}
+
+int incfs_realloc_mount_info(struct mount_info *mi,
+			     struct mount_options *options)
+{
+	void *new_buffer = NULL;
+	void *old_buffer;
+	size_t new_buffer_size = 0;
+
+	if (options->read_log_pages != mi->mi_options.read_log_pages) {
+		struct read_log_state log_state;
+		/*
+		 * Even though having two buffers allocated at once isn't
+		 * usually good, allocating a multipage buffer under a spinlock
+		 * is even worse, so let's optimize for the shorter lock
+		 * duration. It's not end of the world if we fail to increase
+		 * the buffer size anyway.
+		 */
+		if (options->read_log_pages > 0) {
+			new_buffer_size = PAGE_SIZE * options->read_log_pages;
+			new_buffer = kzalloc(new_buffer_size, GFP_NOFS);
+			if (!new_buffer)
+				return -ENOMEM;
+		}
+
+		spin_lock(&mi->mi_log.rl_lock);
+		old_buffer = mi->mi_log.rl_ring_buf;
+		mi->mi_log.rl_ring_buf = new_buffer;
+		mi->mi_log.rl_size = new_buffer_size;
+		log_state = (struct read_log_state){
+			.generation_id = mi->mi_log.rl_head.generation_id + 1,
+		};
+		mi->mi_log.rl_head = log_state;
+		mi->mi_log.rl_tail = log_state;
+		spin_unlock(&mi->mi_log.rl_lock);
+
+		kfree(old_buffer);
+	}
+
+	if (options->sysfs_name && !mi->mi_sysfs_node)
+		mi->mi_sysfs_node = incfs_add_sysfs_node(options->sysfs_name,
+							 mi);
+	else if (!options->sysfs_name && mi->mi_sysfs_node) {
+		incfs_free_sysfs_node(mi->mi_sysfs_node);
+		mi->mi_sysfs_node = NULL;
+	} else if (options->sysfs_name &&
+		strcmp(options->sysfs_name,
+		       kobject_name(&mi->mi_sysfs_node->isn_sysfs_node))) {
+		incfs_free_sysfs_node(mi->mi_sysfs_node);
+		mi->mi_sysfs_node = incfs_add_sysfs_node(options->sysfs_name,
+							 mi);
+	}
+
+	if (IS_ERR(mi->mi_sysfs_node)) {
+		int err = PTR_ERR(mi->mi_sysfs_node);
+
+		mi->mi_sysfs_node = NULL;
+		return err;
+	}
+
+	mi->mi_options = *options;
+	return 0;
+}
+
+void incfs_free_mount_info(struct mount_info *mi)
+{
+	int i;
+	if (!mi)
+		return;
+
+	flush_delayed_work(&mi->mi_log.ml_wakeup_work);
+	flush_delayed_work(&mi->mi_zstd_cleanup_work);
+
+	dput(mi->mi_index_dir);
+	dput(mi->mi_incomplete_dir);
+	path_put(&mi->mi_backing_dir_path);
+	mutex_destroy(&mi->mi_dir_struct_mutex);
+	mutex_destroy(&mi->mi_zstd_workspace_mutex);
+	put_cred(mi->mi_owner);
+	kfree(mi->mi_log.rl_ring_buf);
+	for (i = 0; i < ARRAY_SIZE(mi->pseudo_file_xattr); ++i)
+		kfree(mi->pseudo_file_xattr[i].data);
+	kfree(mi->mi_per_uid_read_timeouts);
+	incfs_free_sysfs_node(mi->mi_sysfs_node);
+	kfree(mi);
+}
+
+static void data_file_segment_init(struct data_file_segment *segment)
+{
+	init_waitqueue_head(&segment->new_data_arrival_wq);
+	init_rwsem(&segment->rwsem);
+	INIT_LIST_HEAD(&segment->reads_list_head);
+}
+
+char *file_id_to_str(incfs_uuid_t id)
+{
+	char *result = kmalloc(1 + sizeof(id.bytes) * 2, GFP_NOFS);
+	char *end;
+
+	if (!result)
+		return NULL;
+
+	end = bin2hex(result, id.bytes, sizeof(id.bytes));
+	*end = 0;
+	return result;
+}
+
+struct dentry *incfs_lookup_dentry(struct dentry *parent, const char *name)
+{
+	struct inode *inode;
+	struct dentry *result = NULL;
+
+	if (!parent)
+		return ERR_PTR(-EFAULT);
+
+	inode = d_inode(parent);
+	inode_lock_nested(inode, I_MUTEX_PARENT);
+	result = lookup_one_len(name, parent, strlen(name));
+	inode_unlock(inode);
+
+	if (IS_ERR(result))
+		pr_warn("%s err:%ld\n", __func__, PTR_ERR(result));
+
+	return result;
+}
+
+static struct data_file *handle_mapped_file(struct mount_info *mi,
+					    struct data_file *df)
+{
+	char *file_id_str;
+	struct dentry *index_file_dentry;
+	struct path path;
+	struct file *bf;
+	struct data_file *result = NULL;
+	const struct cred *old_cred;
+
+	file_id_str = file_id_to_str(df->df_id);
+	if (!file_id_str)
+		return ERR_PTR(-ENOENT);
+
+	index_file_dentry = incfs_lookup_dentry(mi->mi_index_dir,
+						file_id_str);
+	kfree(file_id_str);
+	if (!index_file_dentry)
+		return ERR_PTR(-ENOENT);
+	if (IS_ERR(index_file_dentry))
+		return (struct data_file *)index_file_dentry;
+	if (!d_really_is_positive(index_file_dentry)) {
+		result = ERR_PTR(-ENOENT);
+		goto out;
+	}
+
+	path = (struct path) {
+		.mnt = mi->mi_backing_dir_path.mnt,
+		.dentry = index_file_dentry
+	};
+
+	old_cred = override_creds(mi->mi_owner);
+	bf = dentry_open(&path, O_RDWR | O_NOATIME | O_LARGEFILE,
+			 current_cred());
+	revert_creds(old_cred);
+
+	if (IS_ERR(bf)) {
+		result = (struct data_file *)bf;
+		goto out;
+	}
+
+	result = incfs_open_data_file(mi, bf);
+	fput(bf);
+	if (IS_ERR(result))
+		goto out;
+
+	result->df_mapped_offset = df->df_metadata_off;
+
+out:
+	dput(index_file_dentry);
+	return result;
+}
+
+struct data_file *incfs_open_data_file(struct mount_info *mi, struct file *bf)
+{
+	struct data_file *df = NULL;
+	struct backing_file_context *bfc = NULL;
+	int md_records;
+	u64 size;
+	int error = 0;
+	int i;
+
+	if (!bf || !mi)
+		return ERR_PTR(-EFAULT);
+
+	if (!S_ISREG(bf->f_inode->i_mode))
+		return ERR_PTR(-EBADF);
+
+	bfc = incfs_alloc_bfc(mi, bf);
+	if (IS_ERR(bfc))
+		return ERR_CAST(bfc);
+
+	df = kzalloc(sizeof(*df), GFP_NOFS);
+	if (!df) {
+		error = -ENOMEM;
+		goto out;
+	}
+
+	mutex_init(&df->df_enable_verity);
+
+	df->df_backing_file_context = bfc;
+	df->df_mount_info = mi;
+	for (i = 0; i < ARRAY_SIZE(df->df_segments); i++)
+		data_file_segment_init(&df->df_segments[i]);
+
+	error = incfs_read_file_header(bfc, &df->df_metadata_off, &df->df_id,
+				       &size, &df->df_header_flags);
+
+	if (error)
+		goto out;
+
+	df->df_size = size;
+	if (size > 0)
+		df->df_data_block_count = get_blocks_count_for_size(size);
+
+	if (df->df_header_flags & INCFS_FILE_MAPPED) {
+		struct data_file *mapped_df = handle_mapped_file(mi, df);
+
+		incfs_free_data_file(df);
+		return mapped_df;
+	}
+
+	md_records = incfs_scan_metadata_chain(df);
+	if (md_records < 0)
+		error = md_records;
+
+out:
+	if (error) {
+		incfs_free_bfc(bfc);
+		if (df)
+			df->df_backing_file_context = NULL;
+		incfs_free_data_file(df);
+		return ERR_PTR(error);
+	}
+	return df;
+}
+
+void incfs_free_data_file(struct data_file *df)
+{
+	u32 data_blocks_written, hash_blocks_written;
+
+	if (!df)
+		return;
+
+	data_blocks_written = atomic_read(&df->df_data_blocks_written);
+	hash_blocks_written = atomic_read(&df->df_hash_blocks_written);
+
+	if (data_blocks_written != df->df_initial_data_blocks_written ||
+	    hash_blocks_written != df->df_initial_hash_blocks_written) {
+		struct backing_file_context *bfc = df->df_backing_file_context;
+		int error = -1;
+
+		if (bfc && !mutex_lock_interruptible(&bfc->bc_mutex)) {
+			error = incfs_write_status_to_backing_file(
+						df->df_backing_file_context,
+						df->df_status_offset,
+						data_blocks_written,
+						hash_blocks_written);
+			mutex_unlock(&bfc->bc_mutex);
+		}
+
+		if (error)
+			/* Nothing can be done, just warn */
+			pr_warn("incfs: failed to write status to backing file\n");
+	}
+
+	incfs_free_mtree(df->df_hash_tree);
+	incfs_free_bfc(df->df_backing_file_context);
+	kfree(df->df_signature);
+	kfree(df->df_verity_file_digest.data);
+	kfree(df->df_verity_signature);
+	mutex_destroy(&df->df_enable_verity);
+	kfree(df);
+}
+
+int make_inode_ready_for_data_ops(struct mount_info *mi,
+				struct inode *inode,
+				struct file *backing_file)
+{
+	struct inode_info *node = get_incfs_node(inode);
+	struct data_file *df = NULL;
+	int err = 0;
+
+	inode_lock(inode);
+	if (S_ISREG(inode->i_mode)) {
+		if (!node->n_file) {
+			df = incfs_open_data_file(mi, backing_file);
+
+			if (IS_ERR(df))
+				err = PTR_ERR(df);
+			else
+				node->n_file = df;
+		}
+	} else
+		err = -EBADF;
+	inode_unlock(inode);
+	return err;
+}
+
+struct dir_file *incfs_open_dir_file(struct mount_info *mi, struct file *bf)
+{
+	struct dir_file *dir = NULL;
+
+	if (!S_ISDIR(bf->f_inode->i_mode))
+		return ERR_PTR(-EBADF);
+
+	dir = kzalloc(sizeof(*dir), GFP_NOFS);
+	if (!dir)
+		return ERR_PTR(-ENOMEM);
+
+	dir->backing_dir = get_file(bf);
+	dir->mount_info = mi;
+	return dir;
+}
+
+void incfs_free_dir_file(struct dir_file *dir)
+{
+	if (!dir)
+		return;
+	if (dir->backing_dir)
+		fput(dir->backing_dir);
+	kfree(dir);
+}
+
+static ssize_t zstd_decompress_safe(struct mount_info *mi,
+				    struct mem_range src, struct mem_range dst)
+{
+	ssize_t result;
+	ZSTD_inBuffer inbuf = {.src = src.data,	.size = src.len};
+	ZSTD_outBuffer outbuf = {.dst = dst.data, .size = dst.len};
+
+	result = mutex_lock_interruptible(&mi->mi_zstd_workspace_mutex);
+	if (result)
+		return result;
+
+	if (!mi->mi_zstd_stream) {
+		unsigned int workspace_size = ZSTD_DStreamWorkspaceBound(
+						INCFS_DATA_FILE_BLOCK_SIZE);
+		void *workspace = kvmalloc(workspace_size, GFP_NOFS);
+		ZSTD_DStream *stream;
+
+		if (!workspace) {
+			result = -ENOMEM;
+			goto out;
+		}
+
+		stream = ZSTD_initDStream(INCFS_DATA_FILE_BLOCK_SIZE, workspace,
+				  workspace_size);
+		if (!stream) {
+			kvfree(workspace);
+			result = -EIO;
+			goto out;
+		}
+
+		mi->mi_zstd_workspace = workspace;
+		mi->mi_zstd_stream = stream;
+	}
+
+	result = ZSTD_decompressStream(mi->mi_zstd_stream, &outbuf, &inbuf) ?
+		-EBADMSG : outbuf.pos;
+
+	mod_delayed_work(system_wq, &mi->mi_zstd_cleanup_work,
+			 msecs_to_jiffies(5000));
+
+out:
+	mutex_unlock(&mi->mi_zstd_workspace_mutex);
+	return result;
+}
+
+static ssize_t decompress(struct mount_info *mi,
+			  struct mem_range src, struct mem_range dst, int alg)
+{
+	int result;
+
+	switch (alg) {
+	case INCFS_BLOCK_COMPRESSED_LZ4:
+		result = LZ4_decompress_safe(src.data, dst.data, src.len,
+					     dst.len);
+		if (result < 0)
+			return -EBADMSG;
+		return result;
+
+	case INCFS_BLOCK_COMPRESSED_ZSTD:
+		return zstd_decompress_safe(mi, src, dst);
+
+	default:
+		WARN_ON(true);
+		return -EOPNOTSUPP;
+	}
+}
+
+static void log_read_one_record(struct read_log *rl, struct read_log_state *rs)
+{
+	union log_record *record =
+		(union log_record *)((u8 *)rl->rl_ring_buf + rs->next_offset);
+	size_t record_size;
+
+	switch (record->full_record.type) {
+	case FULL:
+		rs->base_record = record->full_record;
+		record_size = sizeof(record->full_record);
+		break;
+
+	case SAME_FILE:
+		rs->base_record.block_index =
+			record->same_file.block_index;
+		rs->base_record.absolute_ts_us +=
+			record->same_file.relative_ts_us;
+		rs->base_record.uid = record->same_file.uid;
+		record_size = sizeof(record->same_file);
+		break;
+
+	case SAME_FILE_CLOSE_BLOCK:
+		rs->base_record.block_index +=
+			record->same_file_close_block.block_index_delta;
+		rs->base_record.absolute_ts_us +=
+			record->same_file_close_block.relative_ts_us;
+		record_size = sizeof(record->same_file_close_block);
+		break;
+
+	case SAME_FILE_CLOSE_BLOCK_SHORT:
+		rs->base_record.block_index +=
+			record->same_file_close_block_short.block_index_delta;
+		rs->base_record.absolute_ts_us +=
+		   record->same_file_close_block_short.relative_ts_tens_us * 10;
+		record_size = sizeof(record->same_file_close_block_short);
+		break;
+
+	case SAME_FILE_NEXT_BLOCK:
+		++rs->base_record.block_index;
+		rs->base_record.absolute_ts_us +=
+			record->same_file_next_block.relative_ts_us;
+		record_size = sizeof(record->same_file_next_block);
+		break;
+
+	case SAME_FILE_NEXT_BLOCK_SHORT:
+		++rs->base_record.block_index;
+		rs->base_record.absolute_ts_us +=
+		    record->same_file_next_block_short.relative_ts_tens_us * 10;
+		record_size = sizeof(record->same_file_next_block_short);
+		break;
+	}
+
+	rs->next_offset += record_size;
+	if (rs->next_offset > rl->rl_size - sizeof(*record)) {
+		rs->next_offset = 0;
+		++rs->current_pass_no;
+	}
+	++rs->current_record_no;
+}
+
+static void log_block_read(struct mount_info *mi, incfs_uuid_t *id,
+			   int block_index)
+{
+	struct read_log *log = &mi->mi_log;
+	struct read_log_state *head, *tail;
+	s64 now_us;
+	s64 relative_us;
+	union log_record record;
+	size_t record_size;
+	uid_t uid = current_uid().val;
+	int block_delta;
+	bool same_file, same_uid;
+	bool next_block, close_block, very_close_block;
+	bool close_time, very_close_time, very_very_close_time;
+
+	/*
+	 * This may read the old value, but it's OK to delay the logging start
+	 * right after the configuration update.
+	 */
+	if (READ_ONCE(log->rl_size) == 0)
+		return;
+
+	now_us = ktime_to_us(ktime_get());
+
+	spin_lock(&log->rl_lock);
+	if (log->rl_size == 0) {
+		spin_unlock(&log->rl_lock);
+		return;
+	}
+
+	head = &log->rl_head;
+	tail = &log->rl_tail;
+	relative_us = now_us - head->base_record.absolute_ts_us;
+
+	same_file = !memcmp(id, &head->base_record.file_id,
+			    sizeof(incfs_uuid_t));
+	same_uid = uid == head->base_record.uid;
+
+	block_delta = block_index - head->base_record.block_index;
+	next_block = block_delta == 1;
+	very_close_block = block_delta >= S8_MIN && block_delta <= S8_MAX;
+	close_block = block_delta >= S16_MIN && block_delta <= S16_MAX;
+
+	very_very_close_time = relative_us < (1 << 5) * 10;
+	very_close_time = relative_us < (1 << 13);
+	close_time = relative_us < (1 << 16);
+
+	if (same_file && same_uid && next_block && very_very_close_time) {
+		record.same_file_next_block_short =
+			(struct same_file_next_block_short){
+				.type = SAME_FILE_NEXT_BLOCK_SHORT,
+				.relative_ts_tens_us = div_s64(relative_us, 10),
+			};
+		record_size = sizeof(struct same_file_next_block_short);
+	} else if (same_file && same_uid && next_block && very_close_time) {
+		record.same_file_next_block = (struct same_file_next_block){
+			.type = SAME_FILE_NEXT_BLOCK,
+			.relative_ts_us = relative_us,
+		};
+		record_size = sizeof(struct same_file_next_block);
+	} else if (same_file && same_uid && very_close_block &&
+		   very_very_close_time) {
+		record.same_file_close_block_short =
+			(struct same_file_close_block_short){
+				.type = SAME_FILE_CLOSE_BLOCK_SHORT,
+				.relative_ts_tens_us = div_s64(relative_us, 10),
+				.block_index_delta = block_delta,
+			};
+		record_size = sizeof(struct same_file_close_block_short);
+	} else if (same_file && same_uid && close_block && very_close_time) {
+		record.same_file_close_block = (struct same_file_close_block){
+				.type = SAME_FILE_CLOSE_BLOCK,
+				.relative_ts_us = relative_us,
+				.block_index_delta = block_delta,
+			};
+		record_size = sizeof(struct same_file_close_block);
+	} else if (same_file && close_time) {
+		record.same_file = (struct same_file){
+			.type = SAME_FILE,
+			.block_index = block_index,
+			.relative_ts_us = relative_us,
+			.uid = uid,
+		};
+		record_size = sizeof(struct same_file);
+	} else {
+		record.full_record = (struct full_record){
+			.type = FULL,
+			.block_index = block_index,
+			.file_id = *id,
+			.absolute_ts_us = now_us,
+			.uid = uid,
+		};
+		head->base_record.file_id = *id;
+		record_size = sizeof(struct full_record);
+	}
+
+	head->base_record.block_index = block_index;
+	head->base_record.absolute_ts_us = now_us;
+
+	/* Advance tail beyond area we are going to overwrite */
+	while (tail->current_pass_no < head->current_pass_no &&
+	       tail->next_offset < head->next_offset + record_size)
+		log_read_one_record(log, tail);
+
+	memcpy(((u8 *)log->rl_ring_buf) + head->next_offset, &record,
+	       record_size);
+	head->next_offset += record_size;
+	if (head->next_offset > log->rl_size - sizeof(record)) {
+		head->next_offset = 0;
+		++head->current_pass_no;
+	}
+	++head->current_record_no;
+
+	spin_unlock(&log->rl_lock);
+	schedule_delayed_work(&log->ml_wakeup_work, msecs_to_jiffies(16));
+}
+
+static int validate_hash_tree(struct backing_file_context *bfc, struct file *f,
+			      int block_index, struct mem_range data, u8 *buf)
+{
+	struct data_file *df = get_incfs_data_file(f);
+	u8 stored_digest[INCFS_MAX_HASH_SIZE] = {};
+	u8 calculated_digest[INCFS_MAX_HASH_SIZE] = {};
+	struct mtree *tree = NULL;
+	struct incfs_df_signature *sig = NULL;
+	int digest_size;
+	int hash_block_index = block_index;
+	int lvl;
+	int res;
+	loff_t hash_block_offset[INCFS_MAX_MTREE_LEVELS];
+	size_t hash_offset_in_block[INCFS_MAX_MTREE_LEVELS];
+	int hash_per_block;
+	pgoff_t file_pages;
+
+	/*
+	 * Memory barrier to make sure tree is fully present if added via enable
+	 * verity
+	 */
+	tree = smp_load_acquire(&df->df_hash_tree);
+	sig = df->df_signature;
+	if (!tree || !sig)
+		return 0;
+
+	digest_size = tree->alg->digest_size;
+	hash_per_block = INCFS_DATA_FILE_BLOCK_SIZE / digest_size;
+	for (lvl = 0; lvl < tree->depth; lvl++) {
+		loff_t lvl_off = tree->hash_level_suboffset[lvl];
+
+		hash_block_offset[lvl] =
+			lvl_off + round_down(hash_block_index * digest_size,
+					     INCFS_DATA_FILE_BLOCK_SIZE);
+		hash_offset_in_block[lvl] = hash_block_index * digest_size %
+					    INCFS_DATA_FILE_BLOCK_SIZE;
+		hash_block_index /= hash_per_block;
+	}
+
+	memcpy(stored_digest, tree->root_hash, digest_size);
+
+	file_pages = DIV_ROUND_UP(df->df_size, INCFS_DATA_FILE_BLOCK_SIZE);
+	for (lvl = tree->depth - 1; lvl >= 0; lvl--) {
+		pgoff_t hash_page =
+			file_pages +
+			hash_block_offset[lvl] / INCFS_DATA_FILE_BLOCK_SIZE;
+		struct page *page = find_get_page_flags(
+			f->f_inode->i_mapping, hash_page, FGP_ACCESSED);
+
+		if (page && PageChecked(page)) {
+			u8 *addr = kmap_atomic(page);
+
+			memcpy(stored_digest, addr + hash_offset_in_block[lvl],
+			       digest_size);
+
+			kunmap_atomic(addr);
+			put_page(page);
+			continue;
+		}
+
+		if (page)
+			put_page(page);
+
+		res = incfs_kread(bfc, buf, INCFS_DATA_FILE_BLOCK_SIZE,
+				  hash_block_offset[lvl] + sig->hash_offset);
+		if (res < 0)
+			return res;
+		if (res != INCFS_DATA_FILE_BLOCK_SIZE)
+			return -EIO;
+		res = incfs_calc_digest(tree->alg,
+					range(buf, INCFS_DATA_FILE_BLOCK_SIZE),
+					range(calculated_digest, digest_size));
+		if (res)
+			return res;
+
+		if (memcmp(stored_digest, calculated_digest, digest_size)) {
+			int i;
+			bool zero = true;
+
+			pr_warn("incfs: Hash mismatch lvl:%d blk:%d\n",
+				lvl, block_index);
+			for (i = 0; i < digest_size; i++)
+				if (stored_digest[i]) {
+					zero = false;
+					break;
+				}
+
+			if (zero)
+				pr_debug("Note saved_digest all zero - did you forget to load the hashes?\n");
+			return -EBADMSG;
+		}
+
+		memcpy(stored_digest, buf + hash_offset_in_block[lvl],
+		       digest_size);
+
+		page = grab_cache_page(f->f_inode->i_mapping, hash_page);
+		if (page) {
+			u8 *addr = kmap_atomic(page);
+
+			memcpy(addr, buf, INCFS_DATA_FILE_BLOCK_SIZE);
+			kunmap_atomic(addr);
+			SetPageChecked(page);
+			SetPageUptodate(page);
+			unlock_page(page);
+			put_page(page);
+		}
+	}
+
+	res = incfs_calc_digest(tree->alg, data,
+				range(calculated_digest, digest_size));
+	if (res)
+		return res;
+
+	if (memcmp(stored_digest, calculated_digest, digest_size)) {
+		pr_debug("Leaf hash mismatch blk:%d\n", block_index);
+		return -EBADMSG;
+	}
+
+	return 0;
+}
+
+static struct data_file_segment *get_file_segment(struct data_file *df,
+						  int block_index)
+{
+	int seg_idx = block_index % ARRAY_SIZE(df->df_segments);
+
+	return &df->df_segments[seg_idx];
+}
+
+static bool is_data_block_present(struct data_file_block *block)
+{
+	return (block->db_backing_file_data_offset != 0) &&
+	       (block->db_stored_size != 0);
+}
+
+static void convert_data_file_block(struct incfs_blockmap_entry *bme,
+				    struct data_file_block *res_block)
+{
+	u16 flags = le16_to_cpu(bme->me_flags);
+
+	res_block->db_backing_file_data_offset =
+		le16_to_cpu(bme->me_data_offset_hi);
+	res_block->db_backing_file_data_offset <<= 32;
+	res_block->db_backing_file_data_offset |=
+		le32_to_cpu(bme->me_data_offset_lo);
+	res_block->db_stored_size = le16_to_cpu(bme->me_data_size);
+	res_block->db_comp_alg = flags & INCFS_BLOCK_COMPRESSED_MASK;
+}
+
+static int get_data_file_block(struct data_file *df, int index,
+			       struct data_file_block *res_block)
+{
+	struct incfs_blockmap_entry bme = {};
+	struct backing_file_context *bfc = NULL;
+	loff_t blockmap_off = 0;
+	int error = 0;
+
+	if (!df || !res_block)
+		return -EFAULT;
+
+	blockmap_off = df->df_blockmap_off;
+	bfc = df->df_backing_file_context;
+
+	if (index < 0 || blockmap_off == 0)
+		return -EINVAL;
+
+	error = incfs_read_blockmap_entry(bfc, index, blockmap_off, &bme);
+	if (error)
+		return error;
+
+	convert_data_file_block(&bme, res_block);
+	return 0;
+}
+
+static int check_room_for_one_range(u32 size, u32 size_out)
+{
+	if (size_out + sizeof(struct incfs_filled_range) > size)
+		return -ERANGE;
+	return 0;
+}
+
+static int copy_one_range(struct incfs_filled_range *range, void __user *buffer,
+			  u32 size, u32 *size_out)
+{
+	int error = check_room_for_one_range(size, *size_out);
+	if (error)
+		return error;
+
+	if (copy_to_user(((char __user *)buffer) + *size_out, range,
+				sizeof(*range)))
+		return -EFAULT;
+
+	*size_out += sizeof(*range);
+	return 0;
+}
+
+#define READ_BLOCKMAP_ENTRIES 512
+int incfs_get_filled_blocks(struct data_file *df,
+			    struct incfs_file_data *fd,
+			    struct incfs_get_filled_blocks_args *arg)
+{
+	int error = 0;
+	bool in_range = false;
+	struct incfs_filled_range range;
+	void __user *buffer = u64_to_user_ptr(arg->range_buffer);
+	u32 size = arg->range_buffer_size;
+	u32 end_index =
+		arg->end_index ? arg->end_index : df->df_total_block_count;
+	u32 *size_out = &arg->range_buffer_size_out;
+	int i = READ_BLOCKMAP_ENTRIES - 1;
+	int entries_read = 0;
+	struct incfs_blockmap_entry *bme;
+	int data_blocks_filled = 0;
+	int hash_blocks_filled = 0;
+
+	*size_out = 0;
+	if (end_index > df->df_total_block_count)
+		end_index = df->df_total_block_count;
+	arg->total_blocks_out = df->df_total_block_count;
+	arg->data_blocks_out = df->df_data_block_count;
+
+	if (atomic_read(&df->df_data_blocks_written) ==
+	    df->df_data_block_count) {
+		pr_debug("File marked full, fast get_filled_blocks");
+		if (arg->start_index > end_index) {
+			arg->index_out = arg->start_index;
+			return 0;
+		}
+		arg->index_out = arg->start_index;
+
+		error = check_room_for_one_range(size, *size_out);
+		if (error)
+			return error;
+
+		range = (struct incfs_filled_range){
+			.begin = arg->start_index,
+			.end = end_index,
+		};
+
+		error = copy_one_range(&range, buffer, size, size_out);
+		if (error)
+			return error;
+		arg->index_out = end_index;
+		return 0;
+	}
+
+	bme = kzalloc(sizeof(*bme) * READ_BLOCKMAP_ENTRIES,
+		      GFP_NOFS | __GFP_COMP);
+	if (!bme)
+		return -ENOMEM;
+
+	for (arg->index_out = arg->start_index; arg->index_out < end_index;
+	     ++arg->index_out) {
+		struct data_file_block dfb;
+
+		if (++i == READ_BLOCKMAP_ENTRIES) {
+			entries_read = incfs_read_blockmap_entries(
+				df->df_backing_file_context, bme,
+				arg->index_out, READ_BLOCKMAP_ENTRIES,
+				df->df_blockmap_off);
+			if (entries_read < 0) {
+				error = entries_read;
+				break;
+			}
+
+			i = 0;
+		}
+
+		if (i >= entries_read) {
+			error = -EIO;
+			break;
+		}
+
+		convert_data_file_block(bme + i, &dfb);
+
+		if (is_data_block_present(&dfb)) {
+			if (arg->index_out >= df->df_data_block_count)
+				++hash_blocks_filled;
+			else
+				++data_blocks_filled;
+		}
+
+		if (is_data_block_present(&dfb) == in_range)
+			continue;
+
+		if (!in_range) {
+			error = check_room_for_one_range(size, *size_out);
+			if (error)
+				break;
+			in_range = true;
+			range.begin = arg->index_out;
+		} else {
+			range.end = arg->index_out;
+			error = copy_one_range(&range, buffer, size, size_out);
+			if (error) {
+				/* there will be another try out of the loop,
+				 * it will reset the index_out if it fails too
+				 */
+				break;
+			}
+			in_range = false;
+		}
+	}
+
+	if (in_range) {
+		range.end = arg->index_out;
+		error = copy_one_range(&range, buffer, size, size_out);
+		if (error)
+			arg->index_out = range.begin;
+	}
+
+	if (arg->start_index == 0) {
+		fd->fd_get_block_pos = 0;
+		fd->fd_filled_data_blocks = 0;
+		fd->fd_filled_hash_blocks = 0;
+	}
+
+	if (arg->start_index == fd->fd_get_block_pos) {
+		fd->fd_get_block_pos = arg->index_out + 1;
+		fd->fd_filled_data_blocks += data_blocks_filled;
+		fd->fd_filled_hash_blocks += hash_blocks_filled;
+	}
+
+	if (fd->fd_get_block_pos == df->df_total_block_count + 1) {
+		if (fd->fd_filled_data_blocks >
+		   atomic_read(&df->df_data_blocks_written))
+			atomic_set(&df->df_data_blocks_written,
+				   fd->fd_filled_data_blocks);
+
+		if (fd->fd_filled_hash_blocks >
+		   atomic_read(&df->df_hash_blocks_written))
+			atomic_set(&df->df_hash_blocks_written,
+				   fd->fd_filled_hash_blocks);
+	}
+
+	kfree(bme);
+	return error;
+}
+
+static bool is_read_done(struct pending_read *read)
+{
+	return atomic_read_acquire(&read->done) != 0;
+}
+
+static void set_read_done(struct pending_read *read)
+{
+	atomic_set_release(&read->done, 1);
+}
+
+/*
+ * Notifies a given data file about pending read from a given block.
+ * Returns a new pending read entry.
+ */
+static struct pending_read *add_pending_read(struct data_file *df,
+					     int block_index)
+{
+	struct pending_read *result = NULL;
+	struct data_file_segment *segment = NULL;
+	struct mount_info *mi = NULL;
+
+	segment = get_file_segment(df, block_index);
+	mi = df->df_mount_info;
+
+	result = kzalloc(sizeof(*result), GFP_NOFS);
+	if (!result)
+		return NULL;
+
+	result->file_id = df->df_id;
+	result->block_index = block_index;
+	result->timestamp_us = ktime_to_us(ktime_get());
+	result->uid = current_uid().val;
+
+	spin_lock(&mi->pending_read_lock);
+
+	result->serial_number = ++mi->mi_last_pending_read_number;
+	mi->mi_pending_reads_count++;
+
+	list_add_rcu(&result->mi_reads_list, &mi->mi_reads_list_head);
+	list_add_rcu(&result->segment_reads_list, &segment->reads_list_head);
+
+	spin_unlock(&mi->pending_read_lock);
+
+	wake_up_all(&mi->mi_pending_reads_notif_wq);
+	return result;
+}
+
+static void free_pending_read_entry(struct rcu_head *entry)
+{
+	struct pending_read *read;
+
+	read = container_of(entry, struct pending_read, rcu);
+
+	kfree(read);
+}
+
+/* Notifies a given data file that pending read is completed. */
+static void remove_pending_read(struct data_file *df, struct pending_read *read)
+{
+	struct mount_info *mi = NULL;
+
+	if (!df || !read) {
+		WARN_ON(!df);
+		WARN_ON(!read);
+		return;
+	}
+
+	mi = df->df_mount_info;
+
+	spin_lock(&mi->pending_read_lock);
+
+	list_del_rcu(&read->mi_reads_list);
+	list_del_rcu(&read->segment_reads_list);
+
+	mi->mi_pending_reads_count--;
+
+	spin_unlock(&mi->pending_read_lock);
+
+	/* Don't free. Wait for readers */
+	call_rcu(&read->rcu, free_pending_read_entry);
+}
+
+static void notify_pending_reads(struct mount_info *mi,
+		struct data_file_segment *segment,
+		int index)
+{
+	struct pending_read *entry = NULL;
+
+	/* Notify pending reads waiting for this block. */
+	rcu_read_lock();
+	list_for_each_entry_rcu(entry, &segment->reads_list_head,
+						segment_reads_list) {
+		if (entry->block_index == index)
+			set_read_done(entry);
+	}
+	rcu_read_unlock();
+	wake_up_all(&segment->new_data_arrival_wq);
+
+	atomic_inc(&mi->mi_blocks_written);
+	wake_up_all(&mi->mi_blocks_written_notif_wq);
+}
+
+static int wait_for_data_block(struct data_file *df, int block_index,
+			       struct data_file_block *res_block,
+			       struct incfs_read_data_file_timeouts *timeouts,
+			       unsigned int *delayed_min_us)
+{
+	struct data_file_block block = {};
+	struct data_file_segment *segment = NULL;
+	struct pending_read *read = NULL;
+	struct mount_info *mi = NULL;
+	int error;
+	int wait_res = 0;
+	unsigned int delayed_pending_us = 0;
+	bool delayed_pending = false;
+
+	if (!df || !res_block)
+		return -EFAULT;
+
+	if (block_index < 0 || block_index >= df->df_data_block_count)
+		return -EINVAL;
+
+	if (df->df_blockmap_off <= 0 || !df->df_mount_info)
+		return -ENODATA;
+
+	mi = df->df_mount_info;
+	segment = get_file_segment(df, block_index);
+
+	error = down_read_killable(&segment->rwsem);
+	if (error)
+		return error;
+
+	/* Look up the given block */
+	error = get_data_file_block(df, block_index, &block);
+
+	up_read(&segment->rwsem);
+
+	if (error)
+		return error;
+
+	/* If the block was found, just return it. No need to wait. */
+	if (is_data_block_present(&block)) {
+		*res_block = block;
+		if (timeouts && timeouts->min_time_us) {
+			*delayed_min_us = timeouts->min_time_us;
+			goto out;
+		}
+		return 0;
+	} else {
+		/* If it's not found, create a pending read */
+		if (timeouts && timeouts->max_pending_time_us) {
+			read = add_pending_read(df, block_index);
+			if (!read)
+				return -ENOMEM;
+		} else {
+			log_block_read(mi, &df->df_id, block_index);
+			return -ETIME;
+		}
+	}
+
+	/* Rest of function only applies if timeouts != NULL */
+	if (!timeouts) {
+		pr_warn("incfs: timeouts unexpectedly NULL\n");
+		return -EFSCORRUPTED;
+	}
+
+	/* Wait for notifications about block's arrival */
+	wait_res =
+		wait_event_interruptible_timeout(segment->new_data_arrival_wq,
+			(is_read_done(read)),
+			usecs_to_jiffies(timeouts->max_pending_time_us));
+
+	/* Woke up, the pending read is no longer needed. */
+	remove_pending_read(df, read);
+
+	if (wait_res == 0) {
+		/* Wait has timed out */
+		log_block_read(mi, &df->df_id, block_index);
+		return -ETIME;
+	}
+	if (wait_res < 0) {
+		/*
+		 * Only ERESTARTSYS is really expected here when a signal
+		 * comes while we wait.
+		 */
+		return wait_res;
+	}
+
+	delayed_pending = true;
+	delayed_pending_us = timeouts->max_pending_time_us -
+				jiffies_to_usecs(wait_res);
+	if (timeouts->min_pending_time_us > delayed_pending_us)
+		*delayed_min_us = timeouts->min_pending_time_us -
+					     delayed_pending_us;
+
+	error = down_read_killable(&segment->rwsem);
+	if (error)
+		return error;
+
+	/*
+	 * Re-read blocks info now, it has just arrived and
+	 * should be available.
+	 */
+	error = get_data_file_block(df, block_index, &block);
+	if (!error) {
+		if (is_data_block_present(&block))
+			*res_block = block;
+		else {
+			/*
+			 * Somehow wait finished successfully but block still
+			 * can't be found. It's not normal.
+			 */
+			pr_warn("incfs: Wait succeeded but block not found.\n");
+			error = -ENODATA;
+		}
+	}
+	up_read(&segment->rwsem);
+
+out:
+	if (error)
+		return error;
+
+	if (delayed_pending) {
+		mi->mi_reads_delayed_pending++;
+		mi->mi_reads_delayed_pending_us +=
+			delayed_pending_us;
+	}
+
+	if (delayed_min_us && *delayed_min_us) {
+		mi->mi_reads_delayed_min++;
+		mi->mi_reads_delayed_min_us += *delayed_min_us;
+	}
+
+	return 0;
+}
+
+static int incfs_update_sysfs_error(struct file *file, int index, int result,
+				struct mount_info *mi, struct data_file *df)
+{
+	int error;
+
+	if (result >= 0)
+		return 0;
+
+	error = mutex_lock_interruptible(&mi->mi_le_mutex);
+	if (error)
+		return error;
+
+	mi->mi_le_file_id = df->df_id;
+	mi->mi_le_time_us = ktime_to_us(ktime_get());
+	mi->mi_le_page = index;
+	mi->mi_le_errno = result;
+	mi->mi_le_uid = current_uid().val;
+	mutex_unlock(&mi->mi_le_mutex);
+
+	return 0;
+}
+
+ssize_t incfs_read_data_file_block(struct mem_range dst, struct file *f,
+			int index, struct mem_range tmp,
+			struct incfs_read_data_file_timeouts *timeouts,
+			unsigned int *delayed_min_us)
+{
+	loff_t pos;
+	ssize_t result;
+	size_t bytes_to_read;
+	struct mount_info *mi = NULL;
+	struct backing_file_context *bfc = NULL;
+	struct data_file_block block = {};
+	struct data_file *df = get_incfs_data_file(f);
+
+	if (!dst.data || !df || !tmp.data)
+		return -EFAULT;
+
+	if (tmp.len < 2 * INCFS_DATA_FILE_BLOCK_SIZE)
+		return -ERANGE;
+
+	mi = df->df_mount_info;
+	bfc = df->df_backing_file_context;
+
+	result = wait_for_data_block(df, index, &block, timeouts,
+				     delayed_min_us);
+	if (result < 0)
+		goto out;
+
+	pos = block.db_backing_file_data_offset;
+	if (block.db_comp_alg == COMPRESSION_NONE) {
+		bytes_to_read = min(dst.len, block.db_stored_size);
+		result = incfs_kread(bfc, dst.data, bytes_to_read, pos);
+
+		/* Some data was read, but not enough */
+		if (result >= 0 && result != bytes_to_read)
+			result = -EIO;
+	} else {
+		bytes_to_read = min(tmp.len, block.db_stored_size);
+		result = incfs_kread(bfc, tmp.data, bytes_to_read, pos);
+		if (result == bytes_to_read) {
+			result =
+				decompress(mi, range(tmp.data, bytes_to_read),
+					   dst, block.db_comp_alg);
+			if (result < 0) {
+				const char *name =
+				    bfc->bc_file->f_path.dentry->d_name.name;
+
+				pr_warn_once("incfs: Decompression error. %s",
+					     name);
+			}
+		} else if (result >= 0) {
+			/* Some data was read, but not enough */
+			result = -EIO;
+		}
+	}
+
+	if (result > 0) {
+		int err = validate_hash_tree(bfc, f, index, dst, tmp.data);
+
+		if (err < 0)
+			result = err;
+	}
+
+	if (result >= 0)
+		log_block_read(mi, &df->df_id, index);
+
+out:
+	if (result == -ETIME)
+		mi->mi_reads_failed_timed_out++;
+	else if (result == -EBADMSG)
+		mi->mi_reads_failed_hash_verification++;
+	else if (result < 0)
+		mi->mi_reads_failed_other++;
+
+	incfs_update_sysfs_error(f, index, result, mi, df);
+
+	return result;
+}
+
+ssize_t incfs_read_merkle_tree_blocks(struct mem_range dst,
+				      struct data_file *df, size_t offset)
+{
+	struct backing_file_context *bfc = NULL;
+	struct incfs_df_signature *sig = NULL;
+	size_t to_read = dst.len;
+
+	if (!dst.data || !df)
+		return -EFAULT;
+
+	sig = df->df_signature;
+	bfc = df->df_backing_file_context;
+
+	if (offset > sig->hash_size)
+		return -ERANGE;
+
+	if (offset + to_read > sig->hash_size)
+		to_read = sig->hash_size - offset;
+
+	return incfs_kread(bfc, dst.data, to_read, sig->hash_offset + offset);
+}
+
+int incfs_process_new_data_block(struct data_file *df,
+				 struct incfs_fill_block *block, u8 *data,
+				 bool *complete)
+{
+	struct mount_info *mi = NULL;
+	struct backing_file_context *bfc = NULL;
+	struct data_file_segment *segment = NULL;
+	struct data_file_block existing_block = {};
+	u16 flags = 0;
+	int error = 0;
+
+	if (!df || !block)
+		return -EFAULT;
+
+	bfc = df->df_backing_file_context;
+	mi = df->df_mount_info;
+
+	if (block->block_index >= df->df_data_block_count)
+		return -ERANGE;
+
+	segment = get_file_segment(df, block->block_index);
+	if (!segment)
+		return -EFAULT;
+
+	if (block->compression == COMPRESSION_LZ4)
+		flags |= INCFS_BLOCK_COMPRESSED_LZ4;
+	else if (block->compression == COMPRESSION_ZSTD)
+		flags |= INCFS_BLOCK_COMPRESSED_ZSTD;
+	else if (block->compression)
+		return -EINVAL;
+
+	error = down_read_killable(&segment->rwsem);
+	if (error)
+		return error;
+
+	error = get_data_file_block(df, block->block_index, &existing_block);
+
+	up_read(&segment->rwsem);
+
+	if (error)
+		return error;
+	if (is_data_block_present(&existing_block))
+		/* Block is already present, nothing to do here */
+		return 0;
+
+	error = down_write_killable(&segment->rwsem);
+	if (error)
+		return error;
+
+	/* Recheck inside write lock */
+	error = get_data_file_block(df, block->block_index, &existing_block);
+	if (error)
+		goto out_up_write;
+
+	if (is_data_block_present(&existing_block))
+		goto out_up_write;
+
+	error = mutex_lock_interruptible(&bfc->bc_mutex);
+	if (error)
+		goto out_up_write;
+
+	error = incfs_write_data_block_to_backing_file(bfc,
+			range(data, block->data_len), block->block_index,
+			df->df_blockmap_off, flags);
+	if (error)
+		goto out_mutex_unlock;
+
+	if (atomic_inc_return(&df->df_data_blocks_written)
+			>= df->df_data_block_count)
+		*complete = true;
+
+out_mutex_unlock:
+	mutex_unlock(&bfc->bc_mutex);
+	if (!error)
+		notify_pending_reads(mi, segment, block->block_index);
+
+out_up_write:
+	up_write(&segment->rwsem);
+
+	if (error)
+		pr_debug("%d error: %d\n", block->block_index, error);
+	return error;
+}
+
+int incfs_read_file_signature(struct data_file *df, struct mem_range dst)
+{
+	struct backing_file_context *bfc = df->df_backing_file_context;
+	struct incfs_df_signature *sig;
+	int read_res = 0;
+
+	if (!dst.data)
+		return -EFAULT;
+
+	sig = df->df_signature;
+	if (!sig)
+		return 0;
+
+	if (dst.len < sig->sig_size)
+		return -E2BIG;
+
+	read_res = incfs_kread(bfc, dst.data, sig->sig_size, sig->sig_offset);
+
+	if (read_res < 0)
+		return read_res;
+
+	if (read_res != sig->sig_size)
+		return -EIO;
+
+	return read_res;
+}
+
+int incfs_process_new_hash_block(struct data_file *df,
+				 struct incfs_fill_block *block, u8 *data)
+{
+	struct backing_file_context *bfc = NULL;
+	struct mount_info *mi = NULL;
+	struct mtree *hash_tree = NULL;
+	struct incfs_df_signature *sig = NULL;
+	loff_t hash_area_base = 0;
+	loff_t hash_area_size = 0;
+	int error = 0;
+
+	if (!df || !block)
+		return -EFAULT;
+
+	if (!(block->flags & INCFS_BLOCK_FLAGS_HASH))
+		return -EINVAL;
+
+	bfc = df->df_backing_file_context;
+	mi = df->df_mount_info;
+
+	if (!df)
+		return -ENOENT;
+
+	hash_tree = df->df_hash_tree;
+	sig = df->df_signature;
+	if (!hash_tree || !sig || sig->hash_offset == 0)
+		return -ENOTSUPP;
+
+	hash_area_base = sig->hash_offset;
+	hash_area_size = sig->hash_size;
+	if (hash_area_size < block->block_index * INCFS_DATA_FILE_BLOCK_SIZE
+				+ block->data_len) {
+		/* Hash block goes beyond dedicated hash area of this file. */
+		return -ERANGE;
+	}
+
+	error = mutex_lock_interruptible(&bfc->bc_mutex);
+	if (!error) {
+		error = incfs_write_hash_block_to_backing_file(
+			bfc, range(data, block->data_len), block->block_index,
+			hash_area_base, df->df_blockmap_off, df->df_size);
+		mutex_unlock(&bfc->bc_mutex);
+	}
+	if (!error)
+		atomic_inc(&df->df_hash_blocks_written);
+
+	return error;
+}
+
+static int process_blockmap_md(struct incfs_blockmap *bm,
+			       struct metadata_handler *handler)
+{
+	struct data_file *df = handler->context;
+	int error = 0;
+	loff_t base_off = le64_to_cpu(bm->m_base_offset);
+	u32 block_count = le32_to_cpu(bm->m_block_count);
+
+	if (!df)
+		return -EFAULT;
+
+	if (df->df_data_block_count > block_count)
+		return -EBADMSG;
+
+	df->df_total_block_count = block_count;
+	df->df_blockmap_off = base_off;
+	return error;
+}
+
+static int process_file_signature_md(struct incfs_file_signature *sg,
+				struct metadata_handler *handler)
+{
+	struct data_file *df = handler->context;
+	struct mtree *hash_tree = NULL;
+	int error = 0;
+	struct incfs_df_signature *signature =
+		kzalloc(sizeof(*signature), GFP_NOFS);
+	void *buf = NULL;
+	ssize_t read;
+
+	if (!signature)
+		return -ENOMEM;
+
+	if (!df || !df->df_backing_file_context ||
+	    !df->df_backing_file_context->bc_file) {
+		error = -ENOENT;
+		goto out;
+	}
+
+	signature->hash_offset = le64_to_cpu(sg->sg_hash_tree_offset);
+	signature->hash_size = le32_to_cpu(sg->sg_hash_tree_size);
+	signature->sig_offset = le64_to_cpu(sg->sg_sig_offset);
+	signature->sig_size = le32_to_cpu(sg->sg_sig_size);
+
+	buf = kzalloc(signature->sig_size, GFP_NOFS);
+	if (!buf) {
+		error = -ENOMEM;
+		goto out;
+	}
+
+	read = incfs_kread(df->df_backing_file_context, buf,
+			   signature->sig_size, signature->sig_offset);
+	if (read < 0) {
+		error = read;
+		goto out;
+	}
+
+	if (read != signature->sig_size) {
+		error = -EINVAL;
+		goto out;
+	}
+
+	hash_tree = incfs_alloc_mtree(range(buf, signature->sig_size),
+				      df->df_data_block_count);
+	if (IS_ERR(hash_tree)) {
+		error = PTR_ERR(hash_tree);
+		hash_tree = NULL;
+		goto out;
+	}
+	if (hash_tree->hash_tree_area_size != signature->hash_size) {
+		error = -EINVAL;
+		goto out;
+	}
+	if (signature->hash_size > 0 &&
+	    handler->md_record_offset <= signature->hash_offset) {
+		error = -EINVAL;
+		goto out;
+	}
+	if (handler->md_record_offset <= signature->sig_offset) {
+		error = -EINVAL;
+		goto out;
+	}
+	df->df_hash_tree = hash_tree;
+	hash_tree = NULL;
+	df->df_signature = signature;
+	signature = NULL;
+out:
+	incfs_free_mtree(hash_tree);
+	kfree(signature);
+	kfree(buf);
+
+	return error;
+}
+
+static int process_status_md(struct incfs_status *is,
+			     struct metadata_handler *handler)
+{
+	struct data_file *df = handler->context;
+
+	df->df_initial_data_blocks_written =
+		le32_to_cpu(is->is_data_blocks_written);
+	atomic_set(&df->df_data_blocks_written,
+		   df->df_initial_data_blocks_written);
+
+	df->df_initial_hash_blocks_written =
+		le32_to_cpu(is->is_hash_blocks_written);
+	atomic_set(&df->df_hash_blocks_written,
+		   df->df_initial_hash_blocks_written);
+
+	df->df_status_offset = handler->md_record_offset;
+	return 0;
+}
+
+static int process_file_verity_signature_md(
+		struct incfs_file_verity_signature *vs,
+		struct metadata_handler *handler)
+{
+	struct data_file *df = handler->context;
+	struct incfs_df_verity_signature *verity_signature;
+
+	if (!df)
+		return -EFAULT;
+
+	verity_signature = kzalloc(sizeof(*verity_signature), GFP_NOFS);
+	if (!verity_signature)
+		return -ENOMEM;
+
+	verity_signature->offset = le64_to_cpu(vs->vs_offset);
+	verity_signature->size = le32_to_cpu(vs->vs_size);
+	if (verity_signature->size > FS_VERITY_MAX_SIGNATURE_SIZE) {
+		kfree(verity_signature);
+		return -EFAULT;
+	}
+
+	df->df_verity_signature = verity_signature;
+	return 0;
+}
+
+static int incfs_scan_metadata_chain(struct data_file *df)
+{
+	struct metadata_handler *handler = NULL;
+	int result = 0;
+	int records_count = 0;
+	int error = 0;
+	struct backing_file_context *bfc = NULL;
+	int nondata_block_count;
+
+	if (!df || !df->df_backing_file_context)
+		return -EFAULT;
+
+	bfc = df->df_backing_file_context;
+
+	handler = kzalloc(sizeof(*handler), GFP_NOFS);
+	if (!handler)
+		return -ENOMEM;
+
+	handler->md_record_offset = df->df_metadata_off;
+	handler->context = df;
+	handler->handle_blockmap = process_blockmap_md;
+	handler->handle_signature = process_file_signature_md;
+	handler->handle_status = process_status_md;
+	handler->handle_verity_signature = process_file_verity_signature_md;
+
+	while (handler->md_record_offset > 0) {
+		error = incfs_read_next_metadata_record(bfc, handler);
+		if (error) {
+			pr_warn("incfs: Error during reading incfs-metadata record. Offset: %lld Record #%d Error code: %d\n",
+				handler->md_record_offset, records_count + 1,
+				-error);
+			break;
+		}
+		records_count++;
+	}
+	if (error) {
+		pr_warn("incfs: Error %d after reading %d incfs-metadata records.\n",
+			 -error, records_count);
+		result = error;
+	} else
+		result = records_count;
+
+	nondata_block_count = df->df_total_block_count -
+		df->df_data_block_count;
+	if (df->df_hash_tree) {
+		int hash_block_count = get_blocks_count_for_size(
+			df->df_hash_tree->hash_tree_area_size);
+
+		/*
+		 * Files that were created with a hash tree have the hash tree
+		 * included in the block map, i.e. nondata_block_count ==
+		 * hash_block_count.  Files whose hash tree was added by
+		 * FS_IOC_ENABLE_VERITY will still have the original block
+		 * count, i.e. nondata_block_count == 0.
+		 */
+		if (nondata_block_count != hash_block_count &&
+		    nondata_block_count != 0)
+			result = -EINVAL;
+	} else if (nondata_block_count != 0) {
+		result = -EINVAL;
+	}
+
+	kfree(handler);
+	return result;
+}
+
+/*
+ * Quickly checks if there are pending reads with a serial number larger
+ * than a given one.
+ */
+bool incfs_fresh_pending_reads_exist(struct mount_info *mi, int last_number)
+{
+	bool result = false;
+
+	spin_lock(&mi->pending_read_lock);
+	result = (mi->mi_last_pending_read_number > last_number) &&
+		(mi->mi_pending_reads_count > 0);
+	spin_unlock(&mi->pending_read_lock);
+	return result;
+}
+
+int incfs_collect_pending_reads(struct mount_info *mi, int sn_lowerbound,
+				struct incfs_pending_read_info *reads,
+				struct incfs_pending_read_info2 *reads2,
+				int reads_size, int *new_max_sn)
+{
+	int reported_reads = 0;
+	struct pending_read *entry = NULL;
+
+	if (!mi)
+		return -EFAULT;
+
+	if (reads_size <= 0)
+		return 0;
+
+	if (!incfs_fresh_pending_reads_exist(mi, sn_lowerbound))
+		return 0;
+
+	rcu_read_lock();
+
+	list_for_each_entry_rcu(entry, &mi->mi_reads_list_head, mi_reads_list) {
+		if (entry->serial_number <= sn_lowerbound)
+			continue;
+
+		if (reads) {
+			reads[reported_reads].file_id = entry->file_id;
+			reads[reported_reads].block_index = entry->block_index;
+			reads[reported_reads].serial_number =
+				entry->serial_number;
+			reads[reported_reads].timestamp_us =
+				entry->timestamp_us;
+		}
+
+		if (reads2) {
+			reads2[reported_reads].file_id = entry->file_id;
+			reads2[reported_reads].block_index = entry->block_index;
+			reads2[reported_reads].serial_number =
+				entry->serial_number;
+			reads2[reported_reads].timestamp_us =
+				entry->timestamp_us;
+			reads2[reported_reads].uid = entry->uid;
+		}
+
+		if (entry->serial_number > *new_max_sn)
+			*new_max_sn = entry->serial_number;
+
+		reported_reads++;
+		if (reported_reads >= reads_size)
+			break;
+	}
+
+	rcu_read_unlock();
+
+	return reported_reads;
+}
+
+struct read_log_state incfs_get_log_state(struct mount_info *mi)
+{
+	struct read_log *log = &mi->mi_log;
+	struct read_log_state result;
+
+	spin_lock(&log->rl_lock);
+	result = log->rl_head;
+	spin_unlock(&log->rl_lock);
+	return result;
+}
+
+int incfs_get_uncollected_logs_count(struct mount_info *mi,
+				     const struct read_log_state *state)
+{
+	struct read_log *log = &mi->mi_log;
+	u32 generation;
+	u64 head_no, tail_no;
+
+	spin_lock(&log->rl_lock);
+	tail_no = log->rl_tail.current_record_no;
+	head_no = log->rl_head.current_record_no;
+	generation = log->rl_head.generation_id;
+	spin_unlock(&log->rl_lock);
+
+	if (generation != state->generation_id)
+		return head_no - tail_no;
+	else
+		return head_no - max_t(u64, tail_no, state->current_record_no);
+}
+
+int incfs_collect_logged_reads(struct mount_info *mi,
+			       struct read_log_state *state,
+			       struct incfs_pending_read_info *reads,
+			       struct incfs_pending_read_info2 *reads2,
+			       int reads_size)
+{
+	int dst_idx;
+	struct read_log *log = &mi->mi_log;
+	struct read_log_state *head, *tail;
+
+	spin_lock(&log->rl_lock);
+	head = &log->rl_head;
+	tail = &log->rl_tail;
+
+	if (state->generation_id != head->generation_id) {
+		pr_debug("read ptr is wrong generation: %u/%u",
+			 state->generation_id, head->generation_id);
+
+		*state = (struct read_log_state){
+			.generation_id = head->generation_id,
+		};
+	}
+
+	if (state->current_record_no < tail->current_record_no) {
+		pr_debug("read ptr is behind, moving: %u/%u -> %u/%u\n",
+			 (u32)state->next_offset,
+			 (u32)state->current_pass_no,
+			 (u32)tail->next_offset, (u32)tail->current_pass_no);
+
+		*state = *tail;
+	}
+
+	for (dst_idx = 0; dst_idx < reads_size; dst_idx++) {
+		if (state->current_record_no == head->current_record_no)
+			break;
+
+		log_read_one_record(log, state);
+
+		if (reads)
+			reads[dst_idx] = (struct incfs_pending_read_info) {
+				.file_id = state->base_record.file_id,
+				.block_index = state->base_record.block_index,
+				.serial_number = state->current_record_no,
+				.timestamp_us =
+					state->base_record.absolute_ts_us,
+			};
+
+		if (reads2)
+			reads2[dst_idx] = (struct incfs_pending_read_info2) {
+				.file_id = state->base_record.file_id,
+				.block_index = state->base_record.block_index,
+				.serial_number = state->current_record_no,
+				.timestamp_us =
+					state->base_record.absolute_ts_us,
+				.uid = state->base_record.uid,
+			};
+	}
+
+	spin_unlock(&log->rl_lock);
+	return dst_idx;
+}
+
diff --git a/fs/incfs/data_mgmt.h b/fs/incfs/data_mgmt.h
new file mode 100644
index 0000000..8bd5c2f
--- /dev/null
+++ b/fs/incfs/data_mgmt.h
@@ -0,0 +1,551 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright 2019 Google LLC
+ */
+#ifndef _INCFS_DATA_MGMT_H
+#define _INCFS_DATA_MGMT_H
+
+#include <linux/cred.h>
+#include <linux/fs.h>
+#include <linux/types.h>
+#include <linux/mutex.h>
+#include <linux/spinlock.h>
+#include <linux/rcupdate.h>
+#include <linux/completion.h>
+#include <linux/wait.h>
+#include <linux/zstd.h>
+#include <crypto/hash.h>
+#include <linux/rwsem.h>
+
+#include <uapi/linux/incrementalfs.h>
+
+#include "internal.h"
+#include "pseudo_files.h"
+
+#define SEGMENTS_PER_FILE 3
+
+enum LOG_RECORD_TYPE {
+	FULL,
+	SAME_FILE,
+	SAME_FILE_CLOSE_BLOCK,
+	SAME_FILE_CLOSE_BLOCK_SHORT,
+	SAME_FILE_NEXT_BLOCK,
+	SAME_FILE_NEXT_BLOCK_SHORT,
+};
+
+struct full_record {
+	enum LOG_RECORD_TYPE type : 3; /* FULL */
+	u32 block_index : 29;
+	incfs_uuid_t file_id;
+	u64 absolute_ts_us;
+	uid_t uid;
+} __packed; /* 32 bytes */
+
+struct same_file {
+	enum LOG_RECORD_TYPE type : 3; /* SAME_FILE */
+	u32 block_index : 29;
+	uid_t uid;
+	u16 relative_ts_us; /* max 2^16 us ~= 64 ms */
+} __packed; /* 10 bytes */
+
+struct same_file_close_block {
+	enum LOG_RECORD_TYPE type : 3; /* SAME_FILE_CLOSE_BLOCK */
+	u16 relative_ts_us : 13; /* max 2^13 us ~= 8 ms */
+	s16 block_index_delta;
+} __packed; /* 4 bytes */
+
+struct same_file_close_block_short {
+	enum LOG_RECORD_TYPE type : 3; /* SAME_FILE_CLOSE_BLOCK_SHORT */
+	u8 relative_ts_tens_us : 5; /* max 2^5*10 us ~= 320 us */
+	s8 block_index_delta;
+} __packed; /* 2 bytes */
+
+struct same_file_next_block {
+	enum LOG_RECORD_TYPE type : 3; /* SAME_FILE_NEXT_BLOCK */
+	u16 relative_ts_us : 13; /* max 2^13 us ~= 8 ms */
+} __packed; /* 2 bytes */
+
+struct same_file_next_block_short {
+	enum LOG_RECORD_TYPE type : 3; /* SAME_FILE_NEXT_BLOCK_SHORT */
+	u8 relative_ts_tens_us : 5; /* max 2^5*10 us ~= 320 us */
+} __packed; /* 1 byte */
+
+union log_record {
+	struct full_record full_record;
+	struct same_file same_file;
+	struct same_file_close_block same_file_close_block;
+	struct same_file_close_block_short same_file_close_block_short;
+	struct same_file_next_block same_file_next_block;
+	struct same_file_next_block_short same_file_next_block_short;
+};
+
+struct read_log_state {
+	/* Log buffer generation id, incremented on configuration changes */
+	u32 generation_id;
+
+	/* Offset in rl_ring_buf to write into. */
+	u32 next_offset;
+
+	/* Current number of writer passes over rl_ring_buf */
+	u32 current_pass_no;
+
+	/* Current full_record to diff against */
+	struct full_record base_record;
+
+	/* Current record number counting from configuration change */
+	u64 current_record_no;
+};
+
+/* A ring buffer to save records about data blocks which were recently read. */
+struct read_log {
+	void *rl_ring_buf;
+
+	int rl_size;
+
+	struct read_log_state rl_head;
+
+	struct read_log_state rl_tail;
+
+	/* A lock to protect the above fields */
+	spinlock_t rl_lock;
+
+	/* A queue of waiters who want to be notified about reads */
+	wait_queue_head_t ml_notif_wq;
+
+	/* A work item to wake up those waiters without slowing down readers */
+	struct delayed_work ml_wakeup_work;
+};
+
+struct mount_options {
+	unsigned int read_timeout_ms;
+	unsigned int readahead_pages;
+	unsigned int read_log_pages;
+	unsigned int read_log_wakeup_count;
+	bool report_uid;
+	char *sysfs_name;
+};
+
+struct mount_info {
+	struct super_block *mi_sb;
+
+	struct path mi_backing_dir_path;
+
+	struct dentry *mi_index_dir;
+	/* For stacking mounts, if true, this indicates if the index dir needs
+	 * to be freed for this SB otherwise it was created by lower level SB */
+	bool mi_index_free;
+
+	struct dentry *mi_incomplete_dir;
+	/* For stacking mounts, if true, this indicates if the incomplete dir
+	 * needs to be freed for this SB. Similar to mi_index_free */
+	bool mi_incomplete_free;
+
+	const struct cred *mi_owner;
+
+	struct mount_options mi_options;
+
+	/* This mutex is to be taken before create, rename, delete */
+	struct mutex mi_dir_struct_mutex;
+
+	/*
+	 * A queue of waiters who want to be notified about new pending reads.
+	 */
+	wait_queue_head_t mi_pending_reads_notif_wq;
+
+	/*
+	 * Protects - RCU safe:
+	 *  - reads_list_head
+	 *  - mi_pending_reads_count
+	 *  - mi_last_pending_read_number
+	 *  - data_file_segment.reads_list_head
+	 */
+	spinlock_t pending_read_lock;
+
+	/* List of active pending_read objects */
+	struct list_head mi_reads_list_head;
+
+	/* Total number of items in reads_list_head */
+	int mi_pending_reads_count;
+
+	/*
+	 * Last serial number that was assigned to a pending read.
+	 * 0 means no pending reads have been seen yet.
+	 */
+	int mi_last_pending_read_number;
+
+	/* Temporary buffer for read logger. */
+	struct read_log mi_log;
+
+	/* SELinux needs special xattrs on our pseudo files */
+	struct mem_range pseudo_file_xattr[PSEUDO_FILE_COUNT];
+
+	/* A queue of waiters who want to be notified about blocks_written */
+	wait_queue_head_t mi_blocks_written_notif_wq;
+
+	/* Number of blocks written since mount */
+	atomic_t mi_blocks_written;
+
+	/* Per UID read timeouts */
+	spinlock_t mi_per_uid_read_timeouts_lock;
+	struct incfs_per_uid_read_timeouts *mi_per_uid_read_timeouts;
+	int mi_per_uid_read_timeouts_size;
+
+	/* zstd workspace */
+	struct mutex mi_zstd_workspace_mutex;
+	void *mi_zstd_workspace;
+	ZSTD_DStream *mi_zstd_stream;
+	struct delayed_work mi_zstd_cleanup_work;
+
+	/* sysfs node */
+	struct incfs_sysfs_node *mi_sysfs_node;
+
+	/* Last error information */
+	struct mutex	mi_le_mutex;
+	incfs_uuid_t	mi_le_file_id;
+	u64		mi_le_time_us;
+	u32		mi_le_page;
+	u32		mi_le_errno;
+	uid_t		mi_le_uid;
+
+	/* Number of reads timed out */
+	u32 mi_reads_failed_timed_out;
+
+	/* Number of reads failed because hash verification failed */
+	u32 mi_reads_failed_hash_verification;
+
+	/* Number of reads failed for another reason */
+	u32 mi_reads_failed_other;
+
+	/* Number of reads delayed because page had to be fetched */
+	u32 mi_reads_delayed_pending;
+
+	/* Total time waiting for pages to be fetched */
+	u64 mi_reads_delayed_pending_us;
+
+	/*
+	 * Number of reads delayed because of per-uid min_time_us or
+	 * min_pending_time_us settings
+	 */
+	u32 mi_reads_delayed_min;
+
+	/* Total time waiting because of per-uid min_time_us or
+	 * min_pending_time_us settings.
+	 *
+	 * Note that if a read is initially delayed because we have to wait for
+	 * the page, then further delayed because of min_pending_time_us
+	 * setting, this counter gets incremented by only the further delay
+	 * time.
+	 */
+	u64 mi_reads_delayed_min_us;
+};
+
+struct data_file_block {
+	loff_t db_backing_file_data_offset;
+
+	size_t db_stored_size;
+
+	enum incfs_compression_alg db_comp_alg;
+};
+
+struct pending_read {
+	incfs_uuid_t file_id;
+
+	s64 timestamp_us;
+
+	atomic_t done;
+
+	int block_index;
+
+	int serial_number;
+
+	uid_t uid;
+
+	struct list_head mi_reads_list;
+
+	struct list_head segment_reads_list;
+
+	struct rcu_head rcu;
+};
+
+struct data_file_segment {
+	wait_queue_head_t new_data_arrival_wq;
+
+	/* Protects reads and writes from the blockmap */
+	struct rw_semaphore rwsem;
+
+	/* List of active pending_read objects belonging to this segment */
+	/* Protected by mount_info.pending_reads_mutex */
+	struct list_head reads_list_head;
+};
+
+/*
+ * Extra info associated with a file. Just a few bytes set by a user.
+ */
+struct file_attr {
+	loff_t fa_value_offset;
+
+	size_t fa_value_size;
+
+	u32 fa_crc;
+};
+
+
+struct data_file {
+	struct backing_file_context *df_backing_file_context;
+
+	struct mount_info *df_mount_info;
+
+	incfs_uuid_t df_id;
+
+	/*
+	 * Array of segments used to reduce lock contention for the file.
+	 * Segment is chosen for a block depends on the block's index.
+	 */
+	struct data_file_segment df_segments[SEGMENTS_PER_FILE];
+
+	/* Base offset of the first metadata record. */
+	loff_t df_metadata_off;
+
+	/* Base offset of the block map. */
+	loff_t df_blockmap_off;
+
+	/* File size in bytes */
+	loff_t df_size;
+
+	/* File header flags */
+	u32 df_header_flags;
+
+	/* File size in DATA_FILE_BLOCK_SIZE blocks */
+	int df_data_block_count;
+
+	/* Total number of blocks, data + hash */
+	int df_total_block_count;
+
+	/* For mapped files, the offset into the actual file */
+	loff_t df_mapped_offset;
+
+	/* Number of data blocks written to file */
+	atomic_t df_data_blocks_written;
+
+	/* Number of data blocks in the status block */
+	u32 df_initial_data_blocks_written;
+
+	/* Number of hash blocks written to file */
+	atomic_t df_hash_blocks_written;
+
+	/* Number of hash blocks in the status block */
+	u32 df_initial_hash_blocks_written;
+
+	/* Offset to status metadata header */
+	loff_t df_status_offset;
+
+	/*
+	 * Mutex acquired while enabling verity. Note that df_hash_tree is set
+	 * by enable verity.
+	 *
+	 * The backing file mutex bc_mutex  may be taken while this mutex is
+	 * held.
+	 */
+	struct mutex df_enable_verity;
+
+	/*
+	 * Set either at construction time or during enabling verity. In the
+	 * latter case, set via smp_store_release, so use smp_load_acquire to
+	 * read it.
+	 */
+	struct mtree *df_hash_tree;
+
+	/* Guaranteed set if df_hash_tree is set. */
+	struct incfs_df_signature *df_signature;
+
+	/*
+	 * The verity file digest, set when verity is enabled and the file has
+	 * been opened
+	 */
+	struct mem_range df_verity_file_digest;
+
+	struct incfs_df_verity_signature *df_verity_signature;
+};
+
+struct dir_file {
+	struct mount_info *mount_info;
+
+	struct file *backing_dir;
+};
+
+struct inode_info {
+	struct mount_info *n_mount_info; /* A mount, this file belongs to */
+
+	struct inode *n_backing_inode;
+
+	struct data_file *n_file;
+
+	struct inode n_vfs_inode;
+};
+
+struct dentry_info {
+	struct path backing_path;
+};
+
+enum FILL_PERMISSION {
+	CANT_FILL = 0,
+	CAN_FILL = 1,
+};
+
+struct incfs_file_data {
+	/* Does this file handle have INCFS_IOC_FILL_BLOCKS permission */
+	enum FILL_PERMISSION fd_fill_permission;
+
+	/* If INCFS_IOC_GET_FILLED_BLOCKS has been called, where are we */
+	int fd_get_block_pos;
+
+	/* And how many filled blocks are there up to that point */
+	int fd_filled_data_blocks;
+	int fd_filled_hash_blocks;
+};
+
+struct mount_info *incfs_alloc_mount_info(struct super_block *sb,
+					  struct mount_options *options,
+					  struct path *backing_dir_path);
+
+int incfs_realloc_mount_info(struct mount_info *mi,
+			     struct mount_options *options);
+
+void incfs_free_mount_info(struct mount_info *mi);
+
+char *file_id_to_str(incfs_uuid_t id);
+struct dentry *incfs_lookup_dentry(struct dentry *parent, const char *name);
+struct data_file *incfs_open_data_file(struct mount_info *mi, struct file *bf);
+void incfs_free_data_file(struct data_file *df);
+
+struct dir_file *incfs_open_dir_file(struct mount_info *mi, struct file *bf);
+void incfs_free_dir_file(struct dir_file *dir);
+
+struct incfs_read_data_file_timeouts {
+	u32 min_time_us;
+	u32 min_pending_time_us;
+	u32 max_pending_time_us;
+};
+
+ssize_t incfs_read_data_file_block(struct mem_range dst, struct file *f,
+			int index, struct mem_range tmp,
+			struct incfs_read_data_file_timeouts *timeouts,
+			unsigned int *delayed_min_us);
+
+ssize_t incfs_read_merkle_tree_blocks(struct mem_range dst,
+				      struct data_file *df, size_t offset);
+
+int incfs_get_filled_blocks(struct data_file *df,
+			    struct incfs_file_data *fd,
+			    struct incfs_get_filled_blocks_args *arg);
+
+int incfs_read_file_signature(struct data_file *df, struct mem_range dst);
+
+int incfs_process_new_data_block(struct data_file *df,
+				 struct incfs_fill_block *block, u8 *data,
+				 bool *complete);
+
+int incfs_process_new_hash_block(struct data_file *df,
+				 struct incfs_fill_block *block, u8 *data);
+
+bool incfs_fresh_pending_reads_exist(struct mount_info *mi, int last_number);
+
+/*
+ * Collects pending reads and saves them into the array (reads/reads_size).
+ * Only reads with serial_number > sn_lowerbound are reported.
+ * Returns how many reads were saved into the array.
+ */
+int incfs_collect_pending_reads(struct mount_info *mi, int sn_lowerbound,
+				struct incfs_pending_read_info *reads,
+				struct incfs_pending_read_info2 *reads2,
+				int reads_size, int *new_max_sn);
+
+int incfs_collect_logged_reads(struct mount_info *mi,
+			       struct read_log_state *start_state,
+			       struct incfs_pending_read_info *reads,
+			       struct incfs_pending_read_info2 *reads2,
+			       int reads_size);
+struct read_log_state incfs_get_log_state(struct mount_info *mi);
+int incfs_get_uncollected_logs_count(struct mount_info *mi,
+				     const struct read_log_state *state);
+
+static inline struct inode_info *get_incfs_node(struct inode *inode)
+{
+	if (!inode)
+		return NULL;
+
+	if (inode->i_sb->s_magic != INCFS_MAGIC_NUMBER) {
+		/* This inode doesn't belong to us. */
+		pr_warn_once("incfs: %s on an alien inode.", __func__);
+		return NULL;
+	}
+
+	return container_of(inode, struct inode_info, n_vfs_inode);
+}
+
+static inline struct data_file *get_incfs_data_file(struct file *f)
+{
+	struct inode_info *node = NULL;
+
+	if (!f)
+		return NULL;
+
+	if (!S_ISREG(f->f_inode->i_mode))
+		return NULL;
+
+	node = get_incfs_node(f->f_inode);
+	if (!node)
+		return NULL;
+
+	return node->n_file;
+}
+
+static inline struct dir_file *get_incfs_dir_file(struct file *f)
+{
+	if (!f)
+		return NULL;
+
+	if (!S_ISDIR(f->f_inode->i_mode))
+		return NULL;
+
+	return (struct dir_file *)f->private_data;
+}
+
+/*
+ * Make sure that inode_info.n_file is initialized and inode can be used
+ * for reading and writing data from/to the backing file.
+ */
+int make_inode_ready_for_data_ops(struct mount_info *mi,
+				struct inode *inode,
+				struct file *backing_file);
+
+static inline struct dentry_info *get_incfs_dentry(const struct dentry *d)
+{
+	if (!d)
+		return NULL;
+
+	return (struct dentry_info *)d->d_fsdata;
+}
+
+static inline void get_incfs_backing_path(const struct dentry *d,
+					  struct path *path)
+{
+	struct dentry_info *di = get_incfs_dentry(d);
+
+	if (!di) {
+		*path = (struct path) {};
+		return;
+	}
+
+	*path = di->backing_path;
+	path_get(path);
+}
+
+static inline int get_blocks_count_for_size(u64 size)
+{
+	if (size == 0)
+		return 0;
+	return 1 + (size - 1) / INCFS_DATA_FILE_BLOCK_SIZE;
+}
+
+#endif /* _INCFS_DATA_MGMT_H */
diff --git a/fs/incfs/format.c b/fs/incfs/format.c
new file mode 100644
index 0000000..6ffcf33
--- /dev/null
+++ b/fs/incfs/format.c
@@ -0,0 +1,752 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2018 Google LLC
+ */
+#include <linux/fs.h>
+#include <linux/file.h>
+#include <linux/types.h>
+#include <linux/mutex.h>
+#include <linux/mm.h>
+#include <linux/falloc.h>
+#include <linux/slab.h>
+#include <linux/crc32.h>
+#include <linux/kernel.h>
+
+#include "format.h"
+#include "data_mgmt.h"
+
+struct backing_file_context *incfs_alloc_bfc(struct mount_info *mi,
+					     struct file *backing_file)
+{
+	struct backing_file_context *result = NULL;
+
+	result = kzalloc(sizeof(*result), GFP_NOFS);
+	if (!result)
+		return ERR_PTR(-ENOMEM);
+
+	result->bc_file = get_file(backing_file);
+	result->bc_cred = mi->mi_owner;
+	mutex_init(&result->bc_mutex);
+	return result;
+}
+
+void incfs_free_bfc(struct backing_file_context *bfc)
+{
+	if (!bfc)
+		return;
+
+	if (bfc->bc_file)
+		fput(bfc->bc_file);
+
+	mutex_destroy(&bfc->bc_mutex);
+	kfree(bfc);
+}
+
+static loff_t incfs_get_end_offset(struct file *f)
+{
+	/*
+	 * This function assumes that file size and the end-offset
+	 * are the same. This is not always true.
+	 */
+	return i_size_read(file_inode(f));
+}
+
+/*
+ * Truncate the tail of the file to the given length.
+ * Used to rollback partially successful multistep writes.
+ */
+static int truncate_backing_file(struct backing_file_context *bfc,
+				loff_t new_end)
+{
+	struct inode *inode = NULL;
+	struct dentry *dentry = NULL;
+	loff_t old_end = 0;
+	struct iattr attr;
+	int result = 0;
+
+	if (!bfc)
+		return -EFAULT;
+
+	LOCK_REQUIRED(bfc->bc_mutex);
+
+	if (!bfc->bc_file)
+		return -EFAULT;
+
+	old_end = incfs_get_end_offset(bfc->bc_file);
+	if (old_end == new_end)
+		return 0;
+	if (old_end < new_end)
+		return -EINVAL;
+
+	inode = bfc->bc_file->f_inode;
+	dentry = bfc->bc_file->f_path.dentry;
+
+	attr.ia_size = new_end;
+	attr.ia_valid = ATTR_SIZE;
+
+	inode_lock(inode);
+	result = notify_change(&init_user_ns, dentry, &attr, NULL);
+	inode_unlock(inode);
+
+	return result;
+}
+
+static int write_to_bf(struct backing_file_context *bfc, const void *buf,
+			size_t count, loff_t pos)
+{
+	ssize_t res = incfs_kwrite(bfc, buf, count, pos);
+
+	if (res < 0)
+		return res;
+	if (res != count)
+		return -EIO;
+	return 0;
+}
+
+static int append_zeros_no_fallocate(struct backing_file_context *bfc,
+				     size_t file_size, size_t len)
+{
+	u8 buffer[256] = {};
+	size_t i;
+
+	for (i = 0; i < len; i += sizeof(buffer)) {
+		int to_write = len - i > sizeof(buffer)
+			? sizeof(buffer) : len - i;
+		int err = write_to_bf(bfc, buffer, to_write, file_size + i);
+
+		if (err)
+			return err;
+	}
+
+	return 0;
+}
+
+/* Append a given number of zero bytes to the end of the backing file. */
+static int append_zeros(struct backing_file_context *bfc, size_t len)
+{
+	loff_t file_size = 0;
+	loff_t new_last_byte_offset = 0;
+	int result;
+
+	if (!bfc)
+		return -EFAULT;
+
+	if (len == 0)
+		return 0;
+
+	LOCK_REQUIRED(bfc->bc_mutex);
+
+	/*
+	 * Allocate only one byte at the new desired end of the file.
+	 * It will increase file size and create a zeroed area of
+	 * a given size.
+	 */
+	file_size = incfs_get_end_offset(bfc->bc_file);
+	new_last_byte_offset = file_size + len - 1;
+	result = vfs_fallocate(bfc->bc_file, 0, new_last_byte_offset, 1);
+	if (result != -EOPNOTSUPP)
+		return result;
+
+	return append_zeros_no_fallocate(bfc, file_size, len);
+}
+
+/*
+ * Append a given metadata record to the backing file and update a previous
+ * record to add the new record the the metadata list.
+ */
+static int append_md_to_backing_file(struct backing_file_context *bfc,
+			      struct incfs_md_header *record)
+{
+	int result = 0;
+	loff_t record_offset;
+	loff_t file_pos;
+	__le64 new_md_offset;
+	size_t record_size;
+
+	if (!bfc || !record)
+		return -EFAULT;
+
+	if (bfc->bc_last_md_record_offset < 0)
+		return -EINVAL;
+
+	LOCK_REQUIRED(bfc->bc_mutex);
+
+	record_size = le16_to_cpu(record->h_record_size);
+	file_pos = incfs_get_end_offset(bfc->bc_file);
+	record->h_next_md_offset = 0;
+
+	/* Write the metadata record to the end of the backing file */
+	record_offset = file_pos;
+	new_md_offset = cpu_to_le64(record_offset);
+	result = write_to_bf(bfc, record, record_size, file_pos);
+	if (result)
+		return result;
+
+	/* Update next metadata offset in a previous record or a superblock. */
+	if (bfc->bc_last_md_record_offset) {
+		/*
+		 * Find a place in the previous md record where new record's
+		 * offset needs to be saved.
+		 */
+		file_pos = bfc->bc_last_md_record_offset +
+			offsetof(struct incfs_md_header, h_next_md_offset);
+	} else {
+		/*
+		 * No metadata yet, file a place to update in the
+		 * file_header.
+		 */
+		file_pos = offsetof(struct incfs_file_header,
+				    fh_first_md_offset);
+	}
+	result = write_to_bf(bfc, &new_md_offset, sizeof(new_md_offset),
+			     file_pos);
+	if (result)
+		return result;
+
+	bfc->bc_last_md_record_offset = record_offset;
+	return result;
+}
+
+/*
+ * Reserve 0-filled space for the blockmap body, and append
+ * incfs_blockmap metadata record pointing to it.
+ */
+int incfs_write_blockmap_to_backing_file(struct backing_file_context *bfc,
+					 u32 block_count)
+{
+	struct incfs_blockmap blockmap = {};
+	int result = 0;
+	loff_t file_end = 0;
+	size_t map_size = block_count * sizeof(struct incfs_blockmap_entry);
+
+	if (!bfc)
+		return -EFAULT;
+
+	blockmap.m_header.h_md_entry_type = INCFS_MD_BLOCK_MAP;
+	blockmap.m_header.h_record_size = cpu_to_le16(sizeof(blockmap));
+	blockmap.m_header.h_next_md_offset = cpu_to_le64(0);
+	blockmap.m_block_count = cpu_to_le32(block_count);
+
+	LOCK_REQUIRED(bfc->bc_mutex);
+
+	/* Reserve 0-filled space for the blockmap body in the backing file. */
+	file_end = incfs_get_end_offset(bfc->bc_file);
+	result = append_zeros(bfc, map_size);
+	if (result)
+		return result;
+
+	/* Write blockmap metadata record pointing to the body written above. */
+	blockmap.m_base_offset = cpu_to_le64(file_end);
+	result = append_md_to_backing_file(bfc, &blockmap.m_header);
+	if (result)
+		/* Error, rollback file changes */
+		truncate_backing_file(bfc, file_end);
+
+	return result;
+}
+
+int incfs_write_signature_to_backing_file(struct backing_file_context *bfc,
+					struct mem_range sig, u32 tree_size,
+					loff_t *tree_offset, loff_t *sig_offset)
+{
+	struct incfs_file_signature sg = {};
+	int result = 0;
+	loff_t rollback_pos = 0;
+	loff_t tree_area_pos = 0;
+	size_t alignment = 0;
+
+	if (!bfc)
+		return -EFAULT;
+
+	LOCK_REQUIRED(bfc->bc_mutex);
+
+	rollback_pos = incfs_get_end_offset(bfc->bc_file);
+
+	sg.sg_header.h_md_entry_type = INCFS_MD_SIGNATURE;
+	sg.sg_header.h_record_size = cpu_to_le16(sizeof(sg));
+	sg.sg_header.h_next_md_offset = cpu_to_le64(0);
+	if (sig.data != NULL && sig.len > 0) {
+		sg.sg_sig_size = cpu_to_le32(sig.len);
+		sg.sg_sig_offset = cpu_to_le64(rollback_pos);
+
+		result = write_to_bf(bfc, sig.data, sig.len, rollback_pos);
+		if (result)
+			goto err;
+	}
+
+	tree_area_pos = incfs_get_end_offset(bfc->bc_file);
+	if (tree_size > 0) {
+		if (tree_size > 5 * INCFS_DATA_FILE_BLOCK_SIZE) {
+			/*
+			 * If hash tree is big enough, it makes sense to
+			 * align in the backing file for faster access.
+			 */
+			loff_t offset = round_up(tree_area_pos, PAGE_SIZE);
+
+			alignment = offset - tree_area_pos;
+			tree_area_pos = offset;
+		}
+
+		/*
+		 * If root hash is not the only hash in the tree.
+		 * reserve 0-filled space for the tree.
+		 */
+		result = append_zeros(bfc, tree_size + alignment);
+		if (result)
+			goto err;
+
+		sg.sg_hash_tree_size = cpu_to_le32(tree_size);
+		sg.sg_hash_tree_offset = cpu_to_le64(tree_area_pos);
+	}
+
+	/* Write a hash tree metadata record pointing to the hash tree above. */
+	result = append_md_to_backing_file(bfc, &sg.sg_header);
+err:
+	if (result)
+		/* Error, rollback file changes */
+		truncate_backing_file(bfc, rollback_pos);
+	else {
+		if (tree_offset)
+			*tree_offset = tree_area_pos;
+		if (sig_offset)
+			*sig_offset = rollback_pos;
+	}
+
+	return result;
+}
+
+static int write_new_status_to_backing_file(struct backing_file_context *bfc,
+				       u32 data_blocks_written,
+				       u32 hash_blocks_written)
+{
+	int result;
+	loff_t rollback_pos;
+	struct incfs_status is = {
+		.is_header = {
+			.h_md_entry_type = INCFS_MD_STATUS,
+			.h_record_size = cpu_to_le16(sizeof(is)),
+		},
+		.is_data_blocks_written = cpu_to_le32(data_blocks_written),
+		.is_hash_blocks_written = cpu_to_le32(hash_blocks_written),
+	};
+
+	LOCK_REQUIRED(bfc->bc_mutex);
+	rollback_pos = incfs_get_end_offset(bfc->bc_file);
+	result = append_md_to_backing_file(bfc, &is.is_header);
+	if (result)
+		truncate_backing_file(bfc, rollback_pos);
+
+	return result;
+}
+
+int incfs_write_status_to_backing_file(struct backing_file_context *bfc,
+				       loff_t status_offset,
+				       u32 data_blocks_written,
+				       u32 hash_blocks_written)
+{
+	struct incfs_status is;
+	int result;
+
+	if (!bfc)
+		return -EFAULT;
+
+	if (status_offset == 0)
+		return write_new_status_to_backing_file(bfc,
+				data_blocks_written, hash_blocks_written);
+
+	result = incfs_kread(bfc, &is, sizeof(is), status_offset);
+	if (result != sizeof(is))
+		return -EIO;
+
+	is.is_data_blocks_written = cpu_to_le32(data_blocks_written);
+	is.is_hash_blocks_written = cpu_to_le32(hash_blocks_written);
+	result = incfs_kwrite(bfc, &is, sizeof(is), status_offset);
+	if (result != sizeof(is))
+		return -EIO;
+
+	return 0;
+}
+
+int incfs_write_verity_signature_to_backing_file(
+		struct backing_file_context *bfc, struct mem_range signature,
+		loff_t *offset)
+{
+	struct incfs_file_verity_signature vs = {};
+	int result;
+	loff_t pos;
+
+	/* No verity signature section is equivalent to an empty section */
+	if (signature.data == NULL || signature.len == 0)
+		return 0;
+
+	pos = incfs_get_end_offset(bfc->bc_file);
+
+	vs = (struct incfs_file_verity_signature) {
+		.vs_header = (struct incfs_md_header) {
+			.h_md_entry_type = INCFS_MD_VERITY_SIGNATURE,
+			.h_record_size = cpu_to_le16(sizeof(vs)),
+			.h_next_md_offset = cpu_to_le64(0),
+		},
+		.vs_size = cpu_to_le32(signature.len),
+		.vs_offset = cpu_to_le64(pos),
+	};
+
+	result = write_to_bf(bfc, signature.data, signature.len, pos);
+	if (result)
+		goto err;
+
+	result = append_md_to_backing_file(bfc, &vs.vs_header);
+	if (result)
+		goto err;
+
+	*offset = pos;
+err:
+	if (result)
+		/* Error, rollback file changes */
+		truncate_backing_file(bfc, pos);
+	return result;
+}
+
+/*
+ * Write a backing file header
+ * It should always be called only on empty file.
+ * fh.fh_first_md_offset is 0 for now, but will be updated
+ * once first metadata record is added.
+ */
+int incfs_write_fh_to_backing_file(struct backing_file_context *bfc,
+				   incfs_uuid_t *uuid, u64 file_size)
+{
+	struct incfs_file_header fh = {};
+	loff_t file_pos = 0;
+
+	if (!bfc)
+		return -EFAULT;
+
+	fh.fh_magic = cpu_to_le64(INCFS_MAGIC_NUMBER);
+	fh.fh_version = cpu_to_le64(INCFS_FORMAT_CURRENT_VER);
+	fh.fh_header_size = cpu_to_le16(sizeof(fh));
+	fh.fh_first_md_offset = cpu_to_le64(0);
+	fh.fh_data_block_size = cpu_to_le16(INCFS_DATA_FILE_BLOCK_SIZE);
+
+	fh.fh_file_size = cpu_to_le64(file_size);
+	fh.fh_uuid = *uuid;
+
+	LOCK_REQUIRED(bfc->bc_mutex);
+
+	file_pos = incfs_get_end_offset(bfc->bc_file);
+	if (file_pos != 0)
+		return -EEXIST;
+
+	return write_to_bf(bfc, &fh, sizeof(fh), file_pos);
+}
+
+/*
+ * Write a backing file header for a mapping file
+ * It should always be called only on empty file.
+ */
+int incfs_write_mapping_fh_to_backing_file(struct backing_file_context *bfc,
+				incfs_uuid_t *uuid, u64 file_size, u64 offset)
+{
+	struct incfs_file_header fh = {};
+	loff_t file_pos = 0;
+
+	if (!bfc)
+		return -EFAULT;
+
+	fh.fh_magic = cpu_to_le64(INCFS_MAGIC_NUMBER);
+	fh.fh_version = cpu_to_le64(INCFS_FORMAT_CURRENT_VER);
+	fh.fh_header_size = cpu_to_le16(sizeof(fh));
+	fh.fh_original_offset = cpu_to_le64(offset);
+	fh.fh_data_block_size = cpu_to_le16(INCFS_DATA_FILE_BLOCK_SIZE);
+
+	fh.fh_mapped_file_size = cpu_to_le64(file_size);
+	fh.fh_original_uuid = *uuid;
+	fh.fh_flags = cpu_to_le32(INCFS_FILE_MAPPED);
+
+	LOCK_REQUIRED(bfc->bc_mutex);
+
+	file_pos = incfs_get_end_offset(bfc->bc_file);
+	if (file_pos != 0)
+		return -EEXIST;
+
+	return write_to_bf(bfc, &fh, sizeof(fh), file_pos);
+}
+
+/* Write a given data block and update file's blockmap to point it. */
+int incfs_write_data_block_to_backing_file(struct backing_file_context *bfc,
+				     struct mem_range block, int block_index,
+				     loff_t bm_base_off, u16 flags)
+{
+	struct incfs_blockmap_entry bm_entry = {};
+	int result = 0;
+	loff_t data_offset = 0;
+	loff_t bm_entry_off =
+		bm_base_off + sizeof(struct incfs_blockmap_entry) * block_index;
+
+	if (!bfc)
+		return -EFAULT;
+
+	if (block.len >= (1 << 16) || block_index < 0)
+		return -EINVAL;
+
+	LOCK_REQUIRED(bfc->bc_mutex);
+
+	data_offset = incfs_get_end_offset(bfc->bc_file);
+	if (data_offset <= bm_entry_off) {
+		/* Blockmap entry is beyond the file's end. It is not normal. */
+		return -EINVAL;
+	}
+
+	/* Write the block data at the end of the backing file. */
+	result = write_to_bf(bfc, block.data, block.len, data_offset);
+	if (result)
+		return result;
+
+	/* Update the blockmap to point to the newly written data. */
+	bm_entry.me_data_offset_lo = cpu_to_le32((u32)data_offset);
+	bm_entry.me_data_offset_hi = cpu_to_le16((u16)(data_offset >> 32));
+	bm_entry.me_data_size = cpu_to_le16((u16)block.len);
+	bm_entry.me_flags = cpu_to_le16(flags);
+
+	return write_to_bf(bfc, &bm_entry, sizeof(bm_entry),
+				bm_entry_off);
+}
+
+int incfs_write_hash_block_to_backing_file(struct backing_file_context *bfc,
+					   struct mem_range block,
+					   int block_index,
+					   loff_t hash_area_off,
+					   loff_t bm_base_off,
+					   loff_t file_size)
+{
+	struct incfs_blockmap_entry bm_entry = {};
+	int result;
+	loff_t data_offset = 0;
+	loff_t file_end = 0;
+	loff_t bm_entry_off =
+		bm_base_off +
+		sizeof(struct incfs_blockmap_entry) *
+			(block_index + get_blocks_count_for_size(file_size));
+
+	if (!bfc)
+		return -EFAULT;
+
+	LOCK_REQUIRED(bfc->bc_mutex);
+
+	data_offset = hash_area_off + block_index * INCFS_DATA_FILE_BLOCK_SIZE;
+	file_end = incfs_get_end_offset(bfc->bc_file);
+	if (data_offset + block.len > file_end) {
+		/* Block is located beyond the file's end. It is not normal. */
+		return -EINVAL;
+	}
+
+	result = write_to_bf(bfc, block.data, block.len, data_offset);
+	if (result)
+		return result;
+
+	bm_entry.me_data_offset_lo = cpu_to_le32((u32)data_offset);
+	bm_entry.me_data_offset_hi = cpu_to_le16((u16)(data_offset >> 32));
+	bm_entry.me_data_size = cpu_to_le16(INCFS_DATA_FILE_BLOCK_SIZE);
+
+	return write_to_bf(bfc, &bm_entry, sizeof(bm_entry), bm_entry_off);
+}
+
+int incfs_read_blockmap_entry(struct backing_file_context *bfc, int block_index,
+			loff_t bm_base_off,
+			struct incfs_blockmap_entry *bm_entry)
+{
+	int error = incfs_read_blockmap_entries(bfc, bm_entry, block_index, 1,
+						bm_base_off);
+
+	if (error < 0)
+		return error;
+
+	if (error == 0)
+		return -EIO;
+
+	if (error != 1)
+		return -EFAULT;
+
+	return 0;
+}
+
+int incfs_read_blockmap_entries(struct backing_file_context *bfc,
+		struct incfs_blockmap_entry *entries,
+		int start_index, int blocks_number,
+		loff_t bm_base_off)
+{
+	loff_t bm_entry_off =
+		bm_base_off + sizeof(struct incfs_blockmap_entry) * start_index;
+	const size_t bytes_to_read = sizeof(struct incfs_blockmap_entry)
+					* blocks_number;
+	int result = 0;
+
+	if (!bfc || !entries)
+		return -EFAULT;
+
+	if (start_index < 0 || bm_base_off <= 0)
+		return -ENODATA;
+
+	result = incfs_kread(bfc, entries, bytes_to_read, bm_entry_off);
+	if (result < 0)
+		return result;
+	return result / sizeof(*entries);
+}
+
+int incfs_read_file_header(struct backing_file_context *bfc,
+			   loff_t *first_md_off, incfs_uuid_t *uuid,
+			   u64 *file_size, u32 *flags)
+{
+	ssize_t bytes_read = 0;
+	struct incfs_file_header fh = {};
+
+	if (!bfc || !first_md_off)
+		return -EFAULT;
+
+	bytes_read = incfs_kread(bfc, &fh, sizeof(fh), 0);
+	if (bytes_read < 0)
+		return bytes_read;
+
+	if (bytes_read < sizeof(fh))
+		return -EBADMSG;
+
+	if (le64_to_cpu(fh.fh_magic) != INCFS_MAGIC_NUMBER)
+		return -EILSEQ;
+
+	if (le64_to_cpu(fh.fh_version) > INCFS_FORMAT_CURRENT_VER)
+		return -EILSEQ;
+
+	if (le16_to_cpu(fh.fh_data_block_size) != INCFS_DATA_FILE_BLOCK_SIZE)
+		return -EILSEQ;
+
+	if (le16_to_cpu(fh.fh_header_size) != sizeof(fh))
+		return -EILSEQ;
+
+	if (first_md_off)
+		*first_md_off = le64_to_cpu(fh.fh_first_md_offset);
+	if (uuid)
+		*uuid = fh.fh_uuid;
+	if (file_size)
+		*file_size = le64_to_cpu(fh.fh_file_size);
+	if (flags)
+		*flags = le32_to_cpu(fh.fh_flags);
+	return 0;
+}
+
+/*
+ * Read through metadata records from the backing file one by one
+ * and call provided metadata handlers.
+ */
+int incfs_read_next_metadata_record(struct backing_file_context *bfc,
+			      struct metadata_handler *handler)
+{
+	const ssize_t max_md_size = INCFS_MAX_METADATA_RECORD_SIZE;
+	ssize_t bytes_read = 0;
+	size_t md_record_size = 0;
+	loff_t next_record = 0;
+	int res = 0;
+	struct incfs_md_header *md_hdr = NULL;
+
+	if (!bfc || !handler)
+		return -EFAULT;
+
+	if (handler->md_record_offset == 0)
+		return -EPERM;
+
+	memset(&handler->md_buffer, 0, max_md_size);
+	bytes_read = incfs_kread(bfc, &handler->md_buffer, max_md_size,
+				 handler->md_record_offset);
+	if (bytes_read < 0)
+		return bytes_read;
+	if (bytes_read < sizeof(*md_hdr))
+		return -EBADMSG;
+
+	md_hdr = &handler->md_buffer.md_header;
+	next_record = le64_to_cpu(md_hdr->h_next_md_offset);
+	md_record_size = le16_to_cpu(md_hdr->h_record_size);
+
+	if (md_record_size > max_md_size) {
+		pr_warn("incfs: The record is too large. Size: %zu",
+				md_record_size);
+		return -EBADMSG;
+	}
+
+	if (bytes_read < md_record_size) {
+		pr_warn("incfs: The record hasn't been fully read.");
+		return -EBADMSG;
+	}
+
+	if (next_record <= handler->md_record_offset && next_record != 0) {
+		pr_warn("incfs: Next record (%lld) points back in file.",
+			next_record);
+		return -EBADMSG;
+	}
+
+	switch (md_hdr->h_md_entry_type) {
+	case INCFS_MD_NONE:
+		break;
+	case INCFS_MD_BLOCK_MAP:
+		if (handler->handle_blockmap)
+			res = handler->handle_blockmap(
+				&handler->md_buffer.blockmap, handler);
+		break;
+	case INCFS_MD_FILE_ATTR:
+		/*
+		 * File attrs no longer supported, ignore section for
+		 * compatibility
+		 */
+		break;
+	case INCFS_MD_SIGNATURE:
+		if (handler->handle_signature)
+			res = handler->handle_signature(
+				&handler->md_buffer.signature, handler);
+		break;
+	case INCFS_MD_STATUS:
+		if (handler->handle_status)
+			res = handler->handle_status(
+				&handler->md_buffer.status, handler);
+		break;
+	case INCFS_MD_VERITY_SIGNATURE:
+		if (handler->handle_verity_signature)
+			res = handler->handle_verity_signature(
+				&handler->md_buffer.verity_signature, handler);
+		break;
+	default:
+		res = -ENOTSUPP;
+		break;
+	}
+
+	if (!res) {
+		if (next_record == 0) {
+			/*
+			 * Zero offset for the next record means that the last
+			 * metadata record has just been processed.
+			 */
+			bfc->bc_last_md_record_offset =
+				handler->md_record_offset;
+		}
+		handler->md_prev_record_offset = handler->md_record_offset;
+		handler->md_record_offset = next_record;
+	}
+	return res;
+}
+
+ssize_t incfs_kread(struct backing_file_context *bfc, void *buf, size_t size,
+		    loff_t pos)
+{
+	const struct cred *old_cred = override_creds(bfc->bc_cred);
+	int ret = kernel_read(bfc->bc_file, buf, size, &pos);
+
+	revert_creds(old_cred);
+	return ret;
+}
+
+ssize_t incfs_kwrite(struct backing_file_context *bfc, const void *buf,
+		     size_t size, loff_t pos)
+{
+	const struct cred *old_cred = override_creds(bfc->bc_cred);
+	int ret = kernel_write(bfc->bc_file, buf, size, &pos);
+
+	revert_creds(old_cred);
+	return ret;
+}
diff --git a/fs/incfs/format.h b/fs/incfs/format.h
new file mode 100644
index 0000000..14e475b
--- /dev/null
+++ b/fs/incfs/format.h
@@ -0,0 +1,407 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright 2018 Google LLC
+ */
+
+/*
+ * Overview
+ * --------
+ * The backbone of the incremental-fs ondisk format is an append only linked
+ * list of metadata blocks. Each metadata block contains an offset of the next
+ * one. These blocks describe files and directories on the
+ * file system. They also represent actions of adding and removing file names
+ * (hard links).
+ *
+ * Every time incremental-fs instance is mounted, it reads through this list
+ * to recreate filesystem's state in memory. An offset of the first record in
+ * the metadata list is stored in the superblock at the beginning of the backing
+ * file.
+ *
+ * Most of the backing file is taken by data areas and blockmaps.
+ * Since data blocks can be compressed and have different sizes,
+ * single per-file data area can't be pre-allocated. That's why blockmaps are
+ * needed in order to find a location and size of each data block in
+ * the backing file. Each time a file is created, a corresponding block map is
+ * allocated to store future offsets of data blocks.
+ *
+ * Whenever a data block is given by data loader to incremental-fs:
+ *   - A data area with the given block is appended to the end of
+ *     the backing file.
+ *   - A record in the blockmap for the given block index is updated to reflect
+ *     its location, size, and compression algorithm.
+
+ * Metadata records
+ * ----------------
+ * incfs_blockmap - metadata record that specifies size and location
+ *                           of a blockmap area for a given file. This area
+ *                           contains an array of incfs_blockmap_entry-s.
+ * incfs_file_signature - metadata record that specifies where file signature
+ *                           and its hash tree can be found in the backing file.
+ *
+ * incfs_file_attr - metadata record that specifies where additional file
+ *		        attributes blob can be found.
+ *
+ * Metadata header
+ * ---------------
+ * incfs_md_header - header of a metadata record. It's always a part
+ *                   of other structures and served purpose of metadata
+ *                   bookkeeping.
+ *
+ *              +-----------------------------------------------+       ^
+ *              |            incfs_md_header                    |       |
+ *              | 1. type of body(BLOCKMAP, FILE_ATTR..)        |       |
+ *              | 2. size of the whole record header + body     |       |
+ *              | 3. CRC the whole record header + body         |       |
+ *              | 4. offset of the previous md record           |]------+
+ *              | 5. offset of the next md record (md link)     |]---+
+ *              +-----------------------------------------------+    |
+ *              |  Metadata record body with useful data        |    |
+ *              +-----------------------------------------------+    |
+ *                                                                   +--->
+ *
+ * Other ondisk structures
+ * -----------------------
+ * incfs_super_block - backing file header
+ * incfs_blockmap_entry - a record in a blockmap area that describes size
+ *                       and location of a data block.
+ * Data blocks dont have any particular structure, they are written to the
+ * backing file in a raw form as they come from a data loader.
+ *
+ * Backing file layout
+ * -------------------
+ *
+ *
+ *              +-------------------------------------------+
+ *              |            incfs_file_header              |]---+
+ *              +-------------------------------------------+    |
+ *              |                 metadata                  |<---+
+ *              |           incfs_file_signature            |]---+
+ *              +-------------------------------------------+    |
+ *                        .........................              |
+ *              +-------------------------------------------+    |   metadata
+ *     +------->|               blockmap area               |    |  list links
+ *     |        |          [incfs_blockmap_entry]           |    |
+ *     |        |          [incfs_blockmap_entry]           |    |
+ *     |        |          [incfs_blockmap_entry]           |    |
+ *     |    +--[|          [incfs_blockmap_entry]           |    |
+ *     |    |   |          [incfs_blockmap_entry]           |    |
+ *     |    |   |          [incfs_blockmap_entry]           |    |
+ *     |    |   +-------------------------------------------+    |
+ *     |    |             .........................              |
+ *     |    |   +-------------------------------------------+    |
+ *     |    |   |                 metadata                  |<---+
+ *     +----|--[|               incfs_blockmap              |]---+
+ *          |   +-------------------------------------------+    |
+ *          |             .........................              |
+ *          |   +-------------------------------------------+    |
+ *          +-->|                 data block                |    |
+ *              +-------------------------------------------+    |
+ *                        .........................              |
+ *              +-------------------------------------------+    |
+ *              |                 metadata                  |<---+
+ *              |              incfs_file_attr              |
+ *              +-------------------------------------------+
+ */
+#ifndef _INCFS_FORMAT_H
+#define _INCFS_FORMAT_H
+#include <linux/types.h>
+#include <linux/kernel.h>
+#include <uapi/linux/incrementalfs.h>
+
+#include "internal.h"
+
+#define INCFS_MAX_NAME_LEN 255
+#define INCFS_FORMAT_V1 1
+#define INCFS_FORMAT_CURRENT_VER INCFS_FORMAT_V1
+
+enum incfs_metadata_type {
+	INCFS_MD_NONE = 0,
+	INCFS_MD_BLOCK_MAP = 1,
+	INCFS_MD_FILE_ATTR = 2,
+	INCFS_MD_SIGNATURE = 3,
+	INCFS_MD_STATUS = 4,
+	INCFS_MD_VERITY_SIGNATURE = 5,
+};
+
+enum incfs_file_header_flags {
+	INCFS_FILE_MAPPED = 1 << 1,
+};
+
+/* Header included at the beginning of all metadata records on the disk. */
+struct incfs_md_header {
+	__u8 h_md_entry_type;
+
+	/*
+	 * Size of the metadata record.
+	 * (e.g. inode, dir entry etc) not just this struct.
+	 */
+	__le16 h_record_size;
+
+	/*
+	 * Was: CRC32 of the metadata record.
+	 * (e.g. inode, dir entry etc) not just this struct.
+	 */
+	__le32 h_unused1;
+
+	/* Offset of the next metadata entry if any */
+	__le64 h_next_md_offset;
+
+	/* Was: Offset of the previous metadata entry if any */
+	__le64 h_unused2;
+
+} __packed;
+
+/* Backing file header */
+struct incfs_file_header {
+	/* Magic number: INCFS_MAGIC_NUMBER */
+	__le64 fh_magic;
+
+	/* Format version: INCFS_FORMAT_CURRENT_VER */
+	__le64 fh_version;
+
+	/* sizeof(incfs_file_header) */
+	__le16 fh_header_size;
+
+	/* INCFS_DATA_FILE_BLOCK_SIZE */
+	__le16 fh_data_block_size;
+
+	/* File flags, from incfs_file_header_flags */
+	__le32 fh_flags;
+
+	union {
+		/* Standard incfs file */
+		struct {
+			/* Offset of the first metadata record */
+			__le64 fh_first_md_offset;
+
+			/* Full size of the file's content */
+			__le64 fh_file_size;
+
+			/* File uuid */
+			incfs_uuid_t fh_uuid;
+		};
+
+		/* Mapped file - INCFS_FILE_MAPPED set in fh_flags */
+		struct {
+			/* Offset in original file */
+			__le64 fh_original_offset;
+
+			/* Full size of the file's content */
+			__le64 fh_mapped_file_size;
+
+			/* Original file's uuid */
+			incfs_uuid_t fh_original_uuid;
+		};
+	};
+} __packed;
+
+enum incfs_block_map_entry_flags {
+	INCFS_BLOCK_COMPRESSED_LZ4 = 1,
+	INCFS_BLOCK_COMPRESSED_ZSTD = 2,
+
+	/* Reserve 3 bits for compression alg */
+	INCFS_BLOCK_COMPRESSED_MASK = 7,
+};
+
+/* Block map entry pointing to an actual location of the data block. */
+struct incfs_blockmap_entry {
+	/* Offset of the actual data block. Lower 32 bits */
+	__le32 me_data_offset_lo;
+
+	/* Offset of the actual data block. Higher 16 bits */
+	__le16 me_data_offset_hi;
+
+	/* How many bytes the data actually occupies in the backing file */
+	__le16 me_data_size;
+
+	/* Block flags from incfs_block_map_entry_flags */
+	__le16 me_flags;
+} __packed;
+
+/* Metadata record for locations of file blocks. Type = INCFS_MD_BLOCK_MAP */
+struct incfs_blockmap {
+	struct incfs_md_header m_header;
+
+	/* Base offset of the array of incfs_blockmap_entry */
+	__le64 m_base_offset;
+
+	/* Size of the map entry array in blocks */
+	__le32 m_block_count;
+} __packed;
+
+/*
+ * Metadata record for file signature. Type = INCFS_MD_SIGNATURE
+ *
+ * The signature stored here is the APK V4 signature data blob. See the
+ * definition of incfs_new_file_args::signature_info for an explanation of this
+ * blob. Specifically, it contains the root hash, but it does *not* contain
+ * anything that the kernel treats as a signature.
+ *
+ * When FS_IOC_ENABLE_VERITY is called on a file without this record, an APK V4
+ * signature blob and a hash tree are added to the file, and then this metadata
+ * record is created to record their locations.
+ */
+struct incfs_file_signature {
+	struct incfs_md_header sg_header;
+
+	__le32 sg_sig_size; /* The size of the signature. */
+
+	__le64 sg_sig_offset; /* Signature's offset in the backing file */
+
+	__le32 sg_hash_tree_size; /* The size of the hash tree. */
+
+	__le64 sg_hash_tree_offset; /* Hash tree offset in the backing file */
+} __packed;
+
+/* In memory version of above */
+struct incfs_df_signature {
+	u32 sig_size;
+	u64 sig_offset;
+	u32 hash_size;
+	u64 hash_offset;
+};
+
+struct incfs_status {
+	struct incfs_md_header is_header;
+
+	__le32 is_data_blocks_written; /* Number of data blocks written */
+
+	__le32 is_hash_blocks_written; /* Number of hash blocks written */
+
+	__le32 is_dummy[6]; /* Spare fields */
+} __packed;
+
+/*
+ * Metadata record for verity signature. Type = INCFS_MD_VERITY_SIGNATURE
+ *
+ * This record will only exist for verity-enabled files with signatures. Verity
+ * enabled files without signatures do not have this record. This signature is
+ * checked by fs-verity identically to any other fs-verity signature.
+ */
+struct incfs_file_verity_signature {
+	struct incfs_md_header vs_header;
+
+	 /* The size of the signature */
+	__le32 vs_size;
+
+	 /* Signature's offset in the backing file */
+	__le64 vs_offset;
+} __packed;
+
+/* In memory version of above */
+struct incfs_df_verity_signature {
+	u32 size;
+	u64 offset;
+};
+
+/* State of the backing file. */
+struct backing_file_context {
+	/* Protects writes to bc_file */
+	struct mutex bc_mutex;
+
+	/* File object to read data from */
+	struct file *bc_file;
+
+	/*
+	 * Offset of the last known metadata record in the backing file.
+	 * 0 means there are no metadata records.
+	 */
+	loff_t bc_last_md_record_offset;
+
+	/*
+	 * Credentials to set before reads/writes
+	 * Note that this is a pointer to the mount_info mi_owner field so
+	 * there is no need to get/put the creds
+	 */
+	const struct cred *bc_cred;
+};
+
+struct metadata_handler {
+	loff_t md_record_offset;
+	loff_t md_prev_record_offset;
+	void *context;
+
+	union {
+		struct incfs_md_header md_header;
+		struct incfs_blockmap blockmap;
+		struct incfs_file_signature signature;
+		struct incfs_status status;
+		struct incfs_file_verity_signature verity_signature;
+	} md_buffer;
+
+	int (*handle_blockmap)(struct incfs_blockmap *bm,
+			       struct metadata_handler *handler);
+	int (*handle_signature)(struct incfs_file_signature *sig,
+				 struct metadata_handler *handler);
+	int (*handle_status)(struct incfs_status *sig,
+				 struct metadata_handler *handler);
+	int (*handle_verity_signature)(struct incfs_file_verity_signature *s,
+					struct metadata_handler *handler);
+};
+#define INCFS_MAX_METADATA_RECORD_SIZE \
+	sizeof_field(struct metadata_handler, md_buffer)
+
+/* Backing file context management */
+struct mount_info;
+struct backing_file_context *incfs_alloc_bfc(struct mount_info *mi,
+					     struct file *backing_file);
+
+void incfs_free_bfc(struct backing_file_context *bfc);
+
+/* Writing stuff */
+int incfs_write_blockmap_to_backing_file(struct backing_file_context *bfc,
+					 u32 block_count);
+
+int incfs_write_fh_to_backing_file(struct backing_file_context *bfc,
+				   incfs_uuid_t *uuid, u64 file_size);
+
+int incfs_write_mapping_fh_to_backing_file(struct backing_file_context *bfc,
+				incfs_uuid_t *uuid, u64 file_size, u64 offset);
+
+int incfs_write_data_block_to_backing_file(struct backing_file_context *bfc,
+					   struct mem_range block,
+					   int block_index, loff_t bm_base_off,
+					   u16 flags);
+
+int incfs_write_hash_block_to_backing_file(struct backing_file_context *bfc,
+					   struct mem_range block,
+					   int block_index,
+					   loff_t hash_area_off,
+					   loff_t bm_base_off,
+					   loff_t file_size);
+
+int incfs_write_signature_to_backing_file(struct backing_file_context *bfc,
+				struct mem_range sig, u32 tree_size,
+				loff_t *tree_offset, loff_t *sig_offset);
+
+int incfs_write_status_to_backing_file(struct backing_file_context *bfc,
+				       loff_t status_offset,
+				       u32 data_blocks_written,
+				       u32 hash_blocks_written);
+int incfs_write_verity_signature_to_backing_file(
+		struct backing_file_context *bfc, struct mem_range signature,
+		loff_t *offset);
+
+/* Reading stuff */
+int incfs_read_file_header(struct backing_file_context *bfc,
+			   loff_t *first_md_off, incfs_uuid_t *uuid,
+			   u64 *file_size, u32 *flags);
+
+int incfs_read_blockmap_entry(struct backing_file_context *bfc, int block_index,
+			      loff_t bm_base_off,
+			      struct incfs_blockmap_entry *bm_entry);
+
+int incfs_read_blockmap_entries(struct backing_file_context *bfc,
+		struct incfs_blockmap_entry *entries,
+		int start_index, int blocks_number,
+		loff_t bm_base_off);
+
+int incfs_read_next_metadata_record(struct backing_file_context *bfc,
+				    struct metadata_handler *handler);
+
+ssize_t incfs_kread(struct backing_file_context *bfc, void *buf, size_t size,
+		    loff_t pos);
+ssize_t incfs_kwrite(struct backing_file_context *bfc, const void *buf,
+		     size_t size, loff_t pos);
+
+#endif /* _INCFS_FORMAT_H */
diff --git a/fs/incfs/integrity.c b/fs/incfs/integrity.c
new file mode 100644
index 0000000..93e7643
--- /dev/null
+++ b/fs/incfs/integrity.c
@@ -0,0 +1,235 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 Google LLC
+ */
+#include <crypto/sha2.h>
+#include <crypto/hash.h>
+#include <linux/err.h>
+#include <linux/version.h>
+
+#include "integrity.h"
+
+struct incfs_hash_alg *incfs_get_hash_alg(enum incfs_hash_tree_algorithm id)
+{
+	static struct incfs_hash_alg sha256 = {
+		.name = "sha256",
+		.digest_size = SHA256_DIGEST_SIZE,
+		.id = INCFS_HASH_TREE_SHA256
+	};
+	struct incfs_hash_alg *result = NULL;
+	struct crypto_shash *shash;
+
+	if (id == INCFS_HASH_TREE_SHA256) {
+		BUILD_BUG_ON(INCFS_MAX_HASH_SIZE < SHA256_DIGEST_SIZE);
+		result = &sha256;
+	}
+
+	if (result == NULL)
+		return ERR_PTR(-ENOENT);
+
+	/* pairs with cmpxchg_release() below */
+	shash = smp_load_acquire(&result->shash);
+	if (shash)
+		return result;
+
+	shash = crypto_alloc_shash(result->name, 0, 0);
+	if (IS_ERR(shash)) {
+		int err = PTR_ERR(shash);
+
+		pr_err("Can't allocate hash alg %s, error code:%d",
+			result->name, err);
+		return ERR_PTR(err);
+	}
+
+	/* pairs with smp_load_acquire() above */
+	if (cmpxchg_release(&result->shash, NULL, shash) != NULL)
+		crypto_free_shash(shash);
+
+	return result;
+}
+
+struct signature_info {
+	u32 version;
+	enum incfs_hash_tree_algorithm hash_algorithm;
+	u8 log2_blocksize;
+	struct mem_range salt;
+	struct mem_range root_hash;
+};
+
+static bool read_u32(u8 **p, u8 *top, u32 *result)
+{
+	if (*p + sizeof(u32) > top)
+		return false;
+
+	*result = le32_to_cpu(*(__le32 *)*p);
+	*p += sizeof(u32);
+	return true;
+}
+
+static bool read_u8(u8 **p, u8 *top, u8 *result)
+{
+	if (*p + sizeof(u8) > top)
+		return false;
+
+	*result = *(u8 *)*p;
+	*p += sizeof(u8);
+	return true;
+}
+
+static bool read_mem_range(u8 **p, u8 *top, struct mem_range *range)
+{
+	u32 len;
+
+	if (!read_u32(p, top, &len) || *p + len > top)
+		return false;
+
+	range->len = len;
+	range->data = *p;
+	*p += len;
+	return true;
+}
+
+static int incfs_parse_signature(struct mem_range signature,
+				 struct signature_info *si)
+{
+	u8 *p = signature.data;
+	u8 *top = signature.data + signature.len;
+	u32 hash_section_size;
+
+	if (signature.len > INCFS_MAX_SIGNATURE_SIZE)
+		return -EINVAL;
+
+	if (!read_u32(&p, top, &si->version) ||
+	    si->version != INCFS_SIGNATURE_VERSION)
+		return -EINVAL;
+
+	if (!read_u32(&p, top, &hash_section_size) ||
+	    p + hash_section_size > top)
+		return -EINVAL;
+	top = p + hash_section_size;
+
+	if (!read_u32(&p, top, &si->hash_algorithm) ||
+	    si->hash_algorithm != INCFS_HASH_TREE_SHA256)
+		return -EINVAL;
+
+	if (!read_u8(&p, top, &si->log2_blocksize) || si->log2_blocksize != 12)
+		return -EINVAL;
+
+	if (!read_mem_range(&p, top, &si->salt))
+		return -EINVAL;
+
+	if (!read_mem_range(&p, top, &si->root_hash))
+		return -EINVAL;
+
+	if (p != top)
+		return -EINVAL;
+
+	return 0;
+}
+
+struct mtree *incfs_alloc_mtree(struct mem_range signature,
+				int data_block_count)
+{
+	int error;
+	struct signature_info si;
+	struct mtree *result = NULL;
+	struct incfs_hash_alg *hash_alg = NULL;
+	int hash_per_block;
+	int lvl;
+	int total_blocks = 0;
+	int blocks_in_level[INCFS_MAX_MTREE_LEVELS];
+	int blocks = data_block_count;
+
+	if (data_block_count <= 0)
+		return ERR_PTR(-EINVAL);
+
+	error = incfs_parse_signature(signature, &si);
+	if (error)
+		return ERR_PTR(error);
+
+	hash_alg = incfs_get_hash_alg(si.hash_algorithm);
+	if (IS_ERR(hash_alg))
+		return ERR_PTR(PTR_ERR(hash_alg));
+
+	if (si.root_hash.len < hash_alg->digest_size)
+		return ERR_PTR(-EINVAL);
+
+	result = kzalloc(sizeof(*result), GFP_NOFS);
+	if (!result)
+		return ERR_PTR(-ENOMEM);
+
+	result->alg = hash_alg;
+	hash_per_block = INCFS_DATA_FILE_BLOCK_SIZE / result->alg->digest_size;
+
+	/* Calculating tree geometry. */
+	/* First pass: calculate how many blocks in each tree level. */
+	for (lvl = 0; blocks > 1; lvl++) {
+		if (lvl >= INCFS_MAX_MTREE_LEVELS) {
+			pr_err("incfs: too much data in mtree");
+			goto err;
+		}
+
+		blocks = (blocks + hash_per_block - 1) / hash_per_block;
+		blocks_in_level[lvl] = blocks;
+		total_blocks += blocks;
+	}
+	result->depth = lvl;
+	result->hash_tree_area_size = total_blocks * INCFS_DATA_FILE_BLOCK_SIZE;
+	if (result->hash_tree_area_size > INCFS_MAX_HASH_AREA_SIZE)
+		goto err;
+
+	blocks = 0;
+	/* Second pass: calculate offset of each level. 0th level goes last. */
+	for (lvl = 0; lvl < result->depth; lvl++) {
+		u32 suboffset;
+
+		blocks += blocks_in_level[lvl];
+		suboffset = (total_blocks - blocks)
+					* INCFS_DATA_FILE_BLOCK_SIZE;
+
+		result->hash_level_suboffset[lvl] = suboffset;
+	}
+
+	/* Root hash is stored separately from the rest of the tree. */
+	memcpy(result->root_hash, si.root_hash.data, hash_alg->digest_size);
+	return result;
+
+err:
+	kfree(result);
+	return ERR_PTR(-E2BIG);
+}
+
+void incfs_free_mtree(struct mtree *tree)
+{
+	kfree(tree);
+}
+
+int incfs_calc_digest(struct incfs_hash_alg *alg, struct mem_range data,
+			struct mem_range digest)
+{
+	SHASH_DESC_ON_STACK(desc, alg->shash);
+
+	if (!alg || !alg->shash || !data.data || !digest.data)
+		return -EFAULT;
+
+	if (alg->digest_size > digest.len)
+		return -EINVAL;
+
+	desc->tfm = alg->shash;
+
+	if (data.len < INCFS_DATA_FILE_BLOCK_SIZE) {
+		int err;
+		void *buf = kzalloc(INCFS_DATA_FILE_BLOCK_SIZE, GFP_NOFS);
+
+		if (!buf)
+			return -ENOMEM;
+
+		memcpy(buf, data.data, data.len);
+		err = crypto_shash_digest(desc, buf, INCFS_DATA_FILE_BLOCK_SIZE,
+					  digest.data);
+		kfree(buf);
+		return err;
+	}
+	return crypto_shash_digest(desc, data.data, data.len, digest.data);
+}
+
diff --git a/fs/incfs/integrity.h b/fs/incfs/integrity.h
new file mode 100644
index 0000000..cf79b64
--- /dev/null
+++ b/fs/incfs/integrity.h
@@ -0,0 +1,56 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright 2019 Google LLC
+ */
+#ifndef _INCFS_INTEGRITY_H
+#define _INCFS_INTEGRITY_H
+#include <linux/types.h>
+#include <linux/kernel.h>
+#include <crypto/hash.h>
+
+#include <uapi/linux/incrementalfs.h>
+
+#include "internal.h"
+
+#define INCFS_MAX_MTREE_LEVELS 8
+#define INCFS_MAX_HASH_AREA_SIZE (1280 * 1024 * 1024)
+
+struct incfs_hash_alg {
+	const char *name;
+	int digest_size;
+	enum incfs_hash_tree_algorithm id;
+
+	struct crypto_shash *shash;
+};
+
+/* Merkle tree structure. */
+struct mtree {
+	struct incfs_hash_alg *alg;
+
+	u8 root_hash[INCFS_MAX_HASH_SIZE];
+
+	/* Offset of each hash level in the hash area. */
+	u32 hash_level_suboffset[INCFS_MAX_MTREE_LEVELS];
+
+	u32 hash_tree_area_size;
+
+	/* Number of levels in hash_level_suboffset */
+	int depth;
+};
+
+struct incfs_hash_alg *incfs_get_hash_alg(enum incfs_hash_tree_algorithm id);
+
+struct mtree *incfs_alloc_mtree(struct mem_range signature,
+				int data_block_count);
+
+void incfs_free_mtree(struct mtree *tree);
+
+size_t incfs_get_mtree_depth(enum incfs_hash_tree_algorithm alg, loff_t size);
+
+size_t incfs_get_mtree_hash_count(enum incfs_hash_tree_algorithm alg,
+					loff_t size);
+
+int incfs_calc_digest(struct incfs_hash_alg *alg, struct mem_range data,
+			struct mem_range digest);
+
+#endif /* _INCFS_INTEGRITY_H */
diff --git a/fs/incfs/internal.h b/fs/incfs/internal.h
new file mode 100644
index 0000000..c2df8bf
--- /dev/null
+++ b/fs/incfs/internal.h
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright 2018 Google LLC
+ */
+#ifndef _INCFS_INTERNAL_H
+#define _INCFS_INTERNAL_H
+#include <linux/types.h>
+
+struct mem_range {
+	u8 *data;
+	size_t len;
+};
+
+static inline struct mem_range range(u8 *data, size_t len)
+{
+	return (struct mem_range){ .data = data, .len = len };
+}
+
+#define LOCK_REQUIRED(lock)  WARN_ON_ONCE(!mutex_is_locked(&lock))
+
+#define EFSCORRUPTED EUCLEAN
+
+#endif /* _INCFS_INTERNAL_H */
diff --git a/fs/incfs/main.c b/fs/incfs/main.c
new file mode 100644
index 0000000..213faa5
--- /dev/null
+++ b/fs/incfs/main.c
@@ -0,0 +1,49 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2018 Google LLC
+ */
+#include <linux/fs.h>
+#include <linux/init.h>
+#include <linux/module.h>
+
+#include <uapi/linux/incrementalfs.h>
+
+#include "sysfs.h"
+#include "vfs.h"
+
+static struct file_system_type incfs_fs_type = {
+	.owner = THIS_MODULE,
+	.name = INCFS_NAME,
+	.mount = incfs_mount_fs,
+	.kill_sb = incfs_kill_sb,
+	.fs_flags = 0
+};
+
+static int __init init_incfs_module(void)
+{
+	int err = 0;
+
+	err = incfs_init_sysfs();
+	if (err)
+		return err;
+
+	err = register_filesystem(&incfs_fs_type);
+	if (err)
+		incfs_cleanup_sysfs();
+
+	return err;
+}
+
+static void __exit cleanup_incfs_module(void)
+{
+	incfs_cleanup_sysfs();
+	unregister_filesystem(&incfs_fs_type);
+}
+
+module_init(init_incfs_module);
+module_exit(cleanup_incfs_module);
+
+MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
+MODULE_AUTHOR("Eugene Zemtsov <ezemtsov@google.com>");
+MODULE_DESCRIPTION("Incremental File System");
diff --git a/fs/incfs/pseudo_files.c b/fs/incfs/pseudo_files.c
new file mode 100644
index 0000000..814d706
--- /dev/null
+++ b/fs/incfs/pseudo_files.c
@@ -0,0 +1,1393 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2020 Google LLC
+ */
+
+#include <linux/file.h>
+#include <linux/fs.h>
+#include <linux/fsnotify.h>
+#include <linux/namei.h>
+#include <linux/poll.h>
+#include <linux/syscalls.h>
+#include <linux/fdtable.h>
+
+#include <uapi/linux/incrementalfs.h>
+
+#include "pseudo_files.h"
+
+#include "data_mgmt.h"
+#include "format.h"
+#include "integrity.h"
+#include "vfs.h"
+
+#define READ_WRITE_FILE_MODE 0666
+
+static bool is_pseudo_filename(struct mem_range name);
+
+/*******************************************************************************
+ * .pending_reads pseudo file definition
+ ******************************************************************************/
+#define INCFS_PENDING_READS_INODE 2
+static const char pending_reads_file_name[] = INCFS_PENDING_READS_FILENAME;
+
+/* State of an open .pending_reads file, unique for each file descriptor. */
+struct pending_reads_state {
+	/* A serial number of the last pending read obtained from this file. */
+	int last_pending_read_sn;
+};
+
+static ssize_t pending_reads_read(struct file *f, char __user *buf, size_t len,
+			    loff_t *ppos)
+{
+	struct pending_reads_state *pr_state = f->private_data;
+	struct mount_info *mi = get_mount_info(file_superblock(f));
+	bool report_uid;
+	unsigned long page = 0;
+	struct incfs_pending_read_info *reads_buf = NULL;
+	struct incfs_pending_read_info2 *reads_buf2 = NULL;
+	size_t record_size;
+	size_t reads_to_collect;
+	int last_known_read_sn = READ_ONCE(pr_state->last_pending_read_sn);
+	int new_max_sn = last_known_read_sn;
+	int reads_collected = 0;
+	ssize_t result = 0;
+
+	if (!mi)
+		return -EFAULT;
+
+	report_uid = mi->mi_options.report_uid;
+	record_size = report_uid ? sizeof(*reads_buf2) : sizeof(*reads_buf);
+	reads_to_collect = len / record_size;
+
+	if (!incfs_fresh_pending_reads_exist(mi, last_known_read_sn))
+		return 0;
+
+	page = get_zeroed_page(GFP_NOFS);
+	if (!page)
+		return -ENOMEM;
+
+	if (report_uid)
+		reads_buf2 = (struct incfs_pending_read_info2 *) page;
+	else
+		reads_buf = (struct incfs_pending_read_info *) page;
+
+	reads_to_collect =
+		min_t(size_t, PAGE_SIZE / record_size, reads_to_collect);
+
+	reads_collected = incfs_collect_pending_reads(mi, last_known_read_sn,
+				reads_buf, reads_buf2, reads_to_collect,
+				&new_max_sn);
+
+	if (reads_collected < 0) {
+		result = reads_collected;
+		goto out;
+	}
+
+	/*
+	 * Just to make sure that we don't accidentally copy more data
+	 * to reads buffer than userspace can handle.
+	 */
+	reads_collected = min_t(size_t, reads_collected, reads_to_collect);
+	result = reads_collected * record_size;
+
+	/* Copy reads info to the userspace buffer */
+	if (copy_to_user(buf, (void *)page, result)) {
+		result = -EFAULT;
+		goto out;
+	}
+
+	WRITE_ONCE(pr_state->last_pending_read_sn, new_max_sn);
+	*ppos = 0;
+
+out:
+	free_page(page);
+	return result;
+}
+
+static __poll_t pending_reads_poll(struct file *file, poll_table *wait)
+{
+	struct pending_reads_state *state = file->private_data;
+	struct mount_info *mi = get_mount_info(file_superblock(file));
+	__poll_t ret = 0;
+
+	poll_wait(file, &mi->mi_pending_reads_notif_wq, wait);
+	if (incfs_fresh_pending_reads_exist(mi,
+					    state->last_pending_read_sn))
+		ret = EPOLLIN | EPOLLRDNORM;
+
+	return ret;
+}
+
+static int pending_reads_open(struct inode *inode, struct file *file)
+{
+	struct pending_reads_state *state = NULL;
+
+	state = kzalloc(sizeof(*state), GFP_NOFS);
+	if (!state)
+		return -ENOMEM;
+
+	file->private_data = state;
+	return 0;
+}
+
+static int pending_reads_release(struct inode *inode, struct file *file)
+{
+	kfree(file->private_data);
+	return 0;
+}
+
+static long ioctl_permit_fill(struct file *f, void __user *arg)
+{
+	struct incfs_permit_fill __user *usr_permit_fill = arg;
+	struct incfs_permit_fill permit_fill;
+	long error = 0;
+	struct file *file = NULL;
+	struct incfs_file_data *fd;
+
+	if (copy_from_user(&permit_fill, usr_permit_fill, sizeof(permit_fill)))
+		return -EFAULT;
+
+	file = fget(permit_fill.file_descriptor);
+	if (IS_ERR_OR_NULL(file)) {
+		if (!file)
+			return -ENOENT;
+
+		return PTR_ERR(file);
+	}
+
+	if (file->f_op != &incfs_file_ops) {
+		error = -EPERM;
+		goto out;
+	}
+
+	if (file->f_inode->i_sb != f->f_inode->i_sb) {
+		error = -EPERM;
+		goto out;
+	}
+
+	fd = file->private_data;
+
+	switch (fd->fd_fill_permission) {
+	case CANT_FILL:
+		fd->fd_fill_permission = CAN_FILL;
+		break;
+
+	case CAN_FILL:
+		pr_debug("CAN_FILL already set");
+		break;
+
+	default:
+		pr_warn("Invalid file private data");
+		error = -EFAULT;
+		goto out;
+	}
+
+out:
+	fput(file);
+	return error;
+}
+
+static int chmod(struct dentry *dentry, umode_t mode)
+{
+	struct inode *inode = dentry->d_inode;
+	struct inode *delegated_inode = NULL;
+	struct iattr newattrs;
+	int error;
+
+retry_deleg:
+	inode_lock(inode);
+	newattrs.ia_mode = (mode & S_IALLUGO) | (inode->i_mode & ~S_IALLUGO);
+	newattrs.ia_valid = ATTR_MODE | ATTR_CTIME;
+	error = notify_change(&init_user_ns, dentry, &newattrs, &delegated_inode);
+	inode_unlock(inode);
+	if (delegated_inode) {
+		error = break_deleg_wait(&delegated_inode);
+		if (!error)
+			goto retry_deleg;
+	}
+	return error;
+}
+
+static bool incfs_equal_ranges(struct mem_range lhs, struct mem_range rhs)
+{
+	if (lhs.len != rhs.len)
+		return false;
+	return memcmp(lhs.data, rhs.data, lhs.len) == 0;
+}
+
+static int validate_name(char *file_name)
+{
+	struct mem_range name = range(file_name, strlen(file_name));
+	int i = 0;
+
+	if (name.len > INCFS_MAX_NAME_LEN)
+		return -ENAMETOOLONG;
+
+	if (is_pseudo_filename(name))
+		return -EINVAL;
+
+	for (i = 0; i < name.len; i++)
+		if (name.data[i] == '/')
+			return -EINVAL;
+
+	return 0;
+}
+
+static int dir_relative_path_resolve(
+			struct mount_info *mi,
+			const char __user *relative_path,
+			struct path *result_path,
+			struct path *base_path)
+{
+	int dir_fd = get_unused_fd_flags(0);
+	struct file *dir_f = NULL;
+	int error = 0;
+
+	if (!base_path)
+		base_path = &mi->mi_backing_dir_path;
+
+	if (dir_fd < 0)
+		return dir_fd;
+
+	dir_f = dentry_open(base_path, O_RDONLY | O_NOATIME, current_cred());
+
+	if (IS_ERR(dir_f)) {
+		error = PTR_ERR(dir_f);
+		goto out;
+	}
+	fd_install(dir_fd, dir_f);
+
+	if (!relative_path) {
+		/* No relative path given, just return the base dir. */
+		*result_path = *base_path;
+		path_get(result_path);
+		goto out;
+	}
+
+	error = user_path_at_empty(dir_fd, relative_path,
+		LOOKUP_FOLLOW | LOOKUP_DIRECTORY, result_path, NULL);
+
+out:
+	close_fd(dir_fd);
+	if (error)
+		pr_debug("Error: %d\n", error);
+	return error;
+}
+
+static struct mem_range incfs_copy_signature_info_from_user(u8 __user *original,
+							    u64 size)
+{
+	u8 *result;
+
+	if (!original)
+		return range(NULL, 0);
+
+	if (size > INCFS_MAX_SIGNATURE_SIZE)
+		return range(ERR_PTR(-EFAULT), 0);
+
+	result = kzalloc(size, GFP_NOFS | __GFP_COMP);
+	if (!result)
+		return range(ERR_PTR(-ENOMEM), 0);
+
+	if (copy_from_user(result, original, size)) {
+		kfree(result);
+		return range(ERR_PTR(-EFAULT), 0);
+	}
+
+	return range(result, size);
+}
+
+static int init_new_file(struct mount_info *mi, struct dentry *dentry,
+			 incfs_uuid_t *uuid, u64 size, struct mem_range attr,
+			 u8 __user *user_signature_info, u64 signature_size)
+{
+	struct path path = {};
+	struct file *new_file;
+	int error = 0;
+	struct backing_file_context *bfc = NULL;
+	u32 block_count;
+	struct mem_range raw_signature = { NULL };
+	struct mtree *hash_tree = NULL;
+
+	if (!mi || !dentry || !uuid)
+		return -EFAULT;
+
+	/* Resize newly created file to its true size. */
+	path = (struct path) {
+		.mnt = mi->mi_backing_dir_path.mnt,
+		.dentry = dentry
+	};
+
+	new_file = dentry_open(&path, O_RDWR | O_NOATIME | O_LARGEFILE,
+			       current_cred());
+
+	if (IS_ERR(new_file)) {
+		error = PTR_ERR(new_file);
+		goto out;
+	}
+
+	bfc = incfs_alloc_bfc(mi, new_file);
+	fput(new_file);
+	if (IS_ERR(bfc)) {
+		error = PTR_ERR(bfc);
+		bfc = NULL;
+		goto out;
+	}
+
+	mutex_lock(&bfc->bc_mutex);
+	error = incfs_write_fh_to_backing_file(bfc, uuid, size);
+	if (error)
+		goto out;
+
+	block_count = (u32)get_blocks_count_for_size(size);
+
+	if (user_signature_info) {
+		raw_signature = incfs_copy_signature_info_from_user(
+			user_signature_info, signature_size);
+
+		if (IS_ERR(raw_signature.data)) {
+			error = PTR_ERR(raw_signature.data);
+			raw_signature.data = NULL;
+			goto out;
+		}
+
+		hash_tree = incfs_alloc_mtree(raw_signature, block_count);
+		if (IS_ERR(hash_tree)) {
+			error = PTR_ERR(hash_tree);
+			hash_tree = NULL;
+			goto out;
+		}
+
+		error = incfs_write_signature_to_backing_file(bfc,
+				raw_signature, hash_tree->hash_tree_area_size,
+				NULL, NULL);
+		if (error)
+			goto out;
+
+		block_count += get_blocks_count_for_size(
+			hash_tree->hash_tree_area_size);
+	}
+
+	if (block_count)
+		error = incfs_write_blockmap_to_backing_file(bfc, block_count);
+
+	if (error)
+		goto out;
+
+out:
+	if (bfc) {
+		mutex_unlock(&bfc->bc_mutex);
+		incfs_free_bfc(bfc);
+	}
+	incfs_free_mtree(hash_tree);
+	kfree(raw_signature.data);
+
+	if (error)
+		pr_debug("incfs: %s error: %d\n", __func__, error);
+	return error;
+}
+
+static void notify_create(struct file *pending_reads_file,
+			  const char  __user *dir_name, const char *file_name,
+			  const char *file_id_str, bool incomplete_file)
+{
+	struct mount_info *mi =
+		get_mount_info(file_superblock(pending_reads_file));
+	struct path base_path = {
+		.mnt = pending_reads_file->f_path.mnt,
+		.dentry = pending_reads_file->f_path.dentry->d_parent,
+	};
+	struct path dir_path = {};
+	struct dentry *file = NULL;
+	struct dentry *dir = NULL;
+	int error;
+
+	error = dir_relative_path_resolve(mi, dir_name, &dir_path, &base_path);
+	if (error)
+		goto out;
+
+	file = incfs_lookup_dentry(dir_path.dentry, file_name);
+	if (IS_ERR(file)) {
+		error = PTR_ERR(file);
+		file = NULL;
+		goto out;
+	}
+
+	fsnotify_create(d_inode(dir_path.dentry), file);
+
+	if (file_id_str) {
+		dir = incfs_lookup_dentry(base_path.dentry, INCFS_INDEX_NAME);
+		if (IS_ERR(dir)) {
+			error = PTR_ERR(dir);
+			dir = NULL;
+			goto out;
+		}
+
+		dput(file);
+		file = incfs_lookup_dentry(dir, file_id_str);
+		if (IS_ERR(file)) {
+			error = PTR_ERR(file);
+			file = NULL;
+			goto out;
+		}
+
+		fsnotify_create(d_inode(dir), file);
+
+		if (incomplete_file) {
+			dput(dir);
+			dir = incfs_lookup_dentry(base_path.dentry,
+						  INCFS_INCOMPLETE_NAME);
+			if (IS_ERR(dir)) {
+				error = PTR_ERR(dir);
+				dir = NULL;
+				goto out;
+			}
+
+			dput(file);
+			file = incfs_lookup_dentry(dir, file_id_str);
+			if (IS_ERR(file)) {
+				error = PTR_ERR(file);
+				file = NULL;
+				goto out;
+			}
+
+			fsnotify_create(d_inode(dir), file);
+		}
+	}
+out:
+	if (error)
+		pr_warn("%s failed with error %d\n", __func__, error);
+
+	dput(dir);
+	dput(file);
+	path_put(&dir_path);
+}
+
+static long ioctl_create_file(struct file *file,
+			struct incfs_new_file_args __user *usr_args)
+{
+	struct mount_info *mi = get_mount_info(file_superblock(file));
+	struct incfs_new_file_args args;
+	char *file_id_str = NULL;
+	struct dentry *index_file_dentry = NULL;
+	struct dentry *named_file_dentry = NULL;
+	struct dentry *incomplete_file_dentry = NULL;
+	struct path parent_dir_path = {};
+	struct inode *index_dir_inode = NULL;
+	__le64 size_attr_value = 0;
+	char *file_name = NULL;
+	char *attr_value = NULL;
+	int error = 0;
+	bool locked = false;
+	bool index_linked = false;
+	bool name_linked = false;
+	bool incomplete_linked = false;
+
+	if (!mi || !mi->mi_index_dir || !mi->mi_incomplete_dir) {
+		error = -EFAULT;
+		goto out;
+	}
+
+	if (copy_from_user(&args, usr_args, sizeof(args)) > 0) {
+		error = -EFAULT;
+		goto out;
+	}
+
+	file_name = strndup_user(u64_to_user_ptr(args.file_name), PATH_MAX);
+	if (IS_ERR(file_name)) {
+		error = PTR_ERR(file_name);
+		file_name = NULL;
+		goto out;
+	}
+
+	error = validate_name(file_name);
+	if (error)
+		goto out;
+
+	file_id_str = file_id_to_str(args.file_id);
+	if (!file_id_str) {
+		error = -ENOMEM;
+		goto out;
+	}
+
+	error = mutex_lock_interruptible(&mi->mi_dir_struct_mutex);
+	if (error)
+		goto out;
+	locked = true;
+
+	/* Find a directory to put the file into. */
+	error = dir_relative_path_resolve(mi,
+			u64_to_user_ptr(args.directory_path),
+			&parent_dir_path, NULL);
+	if (error)
+		goto out;
+
+	if (parent_dir_path.dentry == mi->mi_index_dir) {
+		/* Can't create a file directly inside .index */
+		error = -EBUSY;
+		goto out;
+	}
+
+	if (parent_dir_path.dentry == mi->mi_incomplete_dir) {
+		/* Can't create a file directly inside .incomplete */
+		error = -EBUSY;
+		goto out;
+	}
+
+	/* Look up a dentry in the parent dir. It should be negative. */
+	named_file_dentry = incfs_lookup_dentry(parent_dir_path.dentry,
+					file_name);
+	if (!named_file_dentry) {
+		error = -EFAULT;
+		goto out;
+	}
+	if (IS_ERR(named_file_dentry)) {
+		error = PTR_ERR(named_file_dentry);
+		named_file_dentry = NULL;
+		goto out;
+	}
+	if (d_really_is_positive(named_file_dentry)) {
+		/* File with this path already exists. */
+		error = -EEXIST;
+		goto out;
+	}
+
+	/* Look up a dentry in the incomplete dir. It should be negative. */
+	incomplete_file_dentry = incfs_lookup_dentry(mi->mi_incomplete_dir,
+					file_id_str);
+	if (!incomplete_file_dentry) {
+		error = -EFAULT;
+		goto out;
+	}
+	if (IS_ERR(incomplete_file_dentry)) {
+		error = PTR_ERR(incomplete_file_dentry);
+		incomplete_file_dentry = NULL;
+		goto out;
+	}
+	if (d_really_is_positive(incomplete_file_dentry)) {
+		/* File with this path already exists. */
+		error = -EEXIST;
+		goto out;
+	}
+
+	/* Look up a dentry in the .index dir. It should be negative. */
+	index_file_dentry = incfs_lookup_dentry(mi->mi_index_dir, file_id_str);
+	if (!index_file_dentry) {
+		error = -EFAULT;
+		goto out;
+	}
+	if (IS_ERR(index_file_dentry)) {
+		error = PTR_ERR(index_file_dentry);
+		index_file_dentry = NULL;
+		goto out;
+	}
+	if (d_really_is_positive(index_file_dentry)) {
+		/* File with this ID already exists in index. */
+		error = -EEXIST;
+		goto out;
+	}
+
+	/* Creating a file in the .index dir. */
+	index_dir_inode = d_inode(mi->mi_index_dir);
+	inode_lock_nested(index_dir_inode, I_MUTEX_PARENT);
+	error = vfs_create(&init_user_ns, index_dir_inode, index_file_dentry,
+			   args.mode | 0222, true);
+	inode_unlock(index_dir_inode);
+
+	if (error)
+		goto out;
+	if (!d_really_is_positive(index_file_dentry)) {
+		error = -EINVAL;
+		goto out;
+	}
+
+	error = chmod(index_file_dentry, args.mode | 0222);
+	if (error) {
+		pr_debug("incfs: chmod err: %d\n", error);
+		goto out;
+	}
+
+	/* Save the file's ID as an xattr for easy fetching in future. */
+	error = vfs_setxattr(&init_user_ns, index_file_dentry, INCFS_XATTR_ID_NAME,
+		file_id_str, strlen(file_id_str), XATTR_CREATE);
+	if (error) {
+		pr_debug("incfs: vfs_setxattr err:%d\n", error);
+		goto out;
+	}
+
+	/* Save the file's size as an xattr for easy fetching in future. */
+	size_attr_value = cpu_to_le64(args.size);
+	error = vfs_setxattr(&init_user_ns, index_file_dentry, INCFS_XATTR_SIZE_NAME,
+		(char *)&size_attr_value, sizeof(size_attr_value),
+		XATTR_CREATE);
+	if (error) {
+		pr_debug("incfs: vfs_setxattr err:%d\n", error);
+		goto out;
+	}
+
+	/* Save the file's attribute as an xattr */
+	if (args.file_attr_len && args.file_attr) {
+		if (args.file_attr_len > INCFS_MAX_FILE_ATTR_SIZE) {
+			error = -E2BIG;
+			goto out;
+		}
+
+		attr_value = kmalloc(args.file_attr_len, GFP_NOFS);
+		if (!attr_value) {
+			error = -ENOMEM;
+			goto out;
+		}
+
+		if (copy_from_user(attr_value,
+				u64_to_user_ptr(args.file_attr),
+				args.file_attr_len) > 0) {
+			error = -EFAULT;
+			goto out;
+		}
+
+		error = vfs_setxattr(&init_user_ns, index_file_dentry,
+				INCFS_XATTR_METADATA_NAME,
+				attr_value, args.file_attr_len,
+				XATTR_CREATE);
+
+		if (error)
+			goto out;
+	}
+
+	/* Initializing a newly created file. */
+	error = init_new_file(mi, index_file_dentry, &args.file_id, args.size,
+			      range(attr_value, args.file_attr_len),
+			      u64_to_user_ptr(args.signature_info),
+			      args.signature_size);
+	if (error)
+		goto out;
+	index_linked = true;
+
+	/* Linking a file with its real name from the requested dir. */
+	error = incfs_link(index_file_dentry, named_file_dentry);
+	if (error)
+		goto out;
+	name_linked = true;
+
+	if (args.size) {
+		/* Linking a file with its incomplete entry */
+		error = incfs_link(index_file_dentry, incomplete_file_dentry);
+		if (error)
+			goto out;
+		incomplete_linked = true;
+	}
+
+	notify_create(file, u64_to_user_ptr(args.directory_path), file_name,
+		      file_id_str, args.size != 0);
+
+out:
+	if (error) {
+		pr_debug("incfs: %s err:%d\n", __func__, error);
+		if (index_linked)
+			incfs_unlink(index_file_dentry);
+		if (name_linked)
+			incfs_unlink(named_file_dentry);
+		if (incomplete_linked)
+			incfs_unlink(incomplete_file_dentry);
+	}
+
+	kfree(file_id_str);
+	kfree(file_name);
+	kfree(attr_value);
+	dput(named_file_dentry);
+	dput(index_file_dentry);
+	dput(incomplete_file_dentry);
+	path_put(&parent_dir_path);
+	if (locked)
+		mutex_unlock(&mi->mi_dir_struct_mutex);
+
+	return error;
+}
+
+static int init_new_mapped_file(struct mount_info *mi, struct dentry *dentry,
+			 incfs_uuid_t *uuid, u64 size, u64 offset)
+{
+	struct path path = {};
+	struct file *new_file;
+	int error = 0;
+	struct backing_file_context *bfc = NULL;
+
+	if (!mi || !dentry || !uuid)
+		return -EFAULT;
+
+	/* Resize newly created file to its true size. */
+	path = (struct path) {
+		.mnt = mi->mi_backing_dir_path.mnt,
+		.dentry = dentry
+	};
+	new_file = dentry_open(&path, O_RDWR | O_NOATIME | O_LARGEFILE,
+			       current_cred());
+
+	if (IS_ERR(new_file)) {
+		error = PTR_ERR(new_file);
+		goto out;
+	}
+
+	bfc = incfs_alloc_bfc(mi, new_file);
+	fput(new_file);
+	if (IS_ERR(bfc)) {
+		error = PTR_ERR(bfc);
+		bfc = NULL;
+		goto out;
+	}
+
+	mutex_lock(&bfc->bc_mutex);
+	error = incfs_write_mapping_fh_to_backing_file(bfc, uuid, size, offset);
+	if (error)
+		goto out;
+
+out:
+	if (bfc) {
+		mutex_unlock(&bfc->bc_mutex);
+		incfs_free_bfc(bfc);
+	}
+
+	if (error)
+		pr_debug("incfs: %s error: %d\n", __func__, error);
+	return error;
+}
+
+static long ioctl_create_mapped_file(struct file *file, void __user *arg)
+{
+	struct mount_info *mi = get_mount_info(file_superblock(file));
+	struct incfs_create_mapped_file_args __user *args_usr_ptr = arg;
+	struct incfs_create_mapped_file_args args = {};
+	char *file_name;
+	int error = 0;
+	struct path parent_dir_path = {};
+	char *source_file_name = NULL;
+	struct dentry *source_file_dentry = NULL;
+	u64 source_file_size;
+	struct dentry *file_dentry = NULL;
+	struct inode *parent_inode;
+	__le64 size_attr_value;
+
+	if (copy_from_user(&args, args_usr_ptr, sizeof(args)) > 0)
+		return -EINVAL;
+
+	file_name = strndup_user(u64_to_user_ptr(args.file_name), PATH_MAX);
+	if (IS_ERR(file_name)) {
+		error = PTR_ERR(file_name);
+		file_name = NULL;
+		goto out;
+	}
+
+	error = validate_name(file_name);
+	if (error)
+		goto out;
+
+	if (args.source_offset % INCFS_DATA_FILE_BLOCK_SIZE) {
+		error = -EINVAL;
+		goto out;
+	}
+
+	/* Validate file mapping is in range */
+	source_file_name = file_id_to_str(args.source_file_id);
+	if (!source_file_name) {
+		pr_warn("Failed to alloc source_file_name\n");
+		error = -ENOMEM;
+		goto out;
+	}
+
+	source_file_dentry = incfs_lookup_dentry(mi->mi_index_dir,
+						       source_file_name);
+	if (!source_file_dentry) {
+		pr_warn("Source file does not exist\n");
+		error = -EINVAL;
+		goto out;
+	}
+	if (IS_ERR(source_file_dentry)) {
+		pr_warn("Error opening source file\n");
+		error = PTR_ERR(source_file_dentry);
+		source_file_dentry = NULL;
+		goto out;
+	}
+	if (!d_really_is_positive(source_file_dentry)) {
+		pr_warn("Source file dentry negative\n");
+		error = -EINVAL;
+		goto out;
+	}
+
+	error = vfs_getxattr(&init_user_ns, source_file_dentry, INCFS_XATTR_SIZE_NAME,
+			     (char *)&size_attr_value, sizeof(size_attr_value));
+	if (error < 0)
+		goto out;
+
+	if (error != sizeof(size_attr_value)) {
+		pr_warn("Mapped file has no size attr\n");
+		error = -EINVAL;
+		goto out;
+	}
+
+	source_file_size = le64_to_cpu(size_attr_value);
+	if (args.source_offset + args.size > source_file_size) {
+		pr_warn("Mapped file out of range\n");
+		error = -EINVAL;
+		goto out;
+	}
+
+	/* Find a directory to put the file into. */
+	error = dir_relative_path_resolve(mi,
+			u64_to_user_ptr(args.directory_path),
+			&parent_dir_path, NULL);
+	if (error)
+		goto out;
+
+	if (parent_dir_path.dentry == mi->mi_index_dir) {
+		/* Can't create a file directly inside .index */
+		error = -EBUSY;
+		goto out;
+	}
+
+	/* Look up a dentry in the parent dir. It should be negative. */
+	file_dentry = incfs_lookup_dentry(parent_dir_path.dentry,
+					file_name);
+	if (!file_dentry) {
+		error = -EFAULT;
+		goto out;
+	}
+	if (IS_ERR(file_dentry)) {
+		error = PTR_ERR(file_dentry);
+		file_dentry = NULL;
+		goto out;
+	}
+	if (d_really_is_positive(file_dentry)) {
+		error = -EEXIST;
+		goto out;
+	}
+
+	parent_inode = d_inode(parent_dir_path.dentry);
+	inode_lock_nested(parent_inode, I_MUTEX_PARENT);
+	error = vfs_create(&init_user_ns, parent_inode, file_dentry,
+			   args.mode | 0222, true);
+	inode_unlock(parent_inode);
+	if (error)
+		goto out;
+
+	error = chmod(file_dentry, args.mode | 0222);
+	if (error) {
+		pr_debug("incfs: chmod err: %d\n", error);
+		goto delete_file;
+	}
+
+	/* Save the file's size as an xattr for easy fetching in future. */
+	size_attr_value = cpu_to_le64(args.size);
+	error = vfs_setxattr(&init_user_ns, file_dentry, INCFS_XATTR_SIZE_NAME,
+		(char *)&size_attr_value, sizeof(size_attr_value),
+		XATTR_CREATE);
+	if (error) {
+		pr_debug("incfs: vfs_setxattr err:%d\n", error);
+		goto delete_file;
+	}
+
+	error = init_new_mapped_file(mi, file_dentry, &args.source_file_id,
+			args.size, args.source_offset);
+	if (error)
+		goto delete_file;
+
+	notify_create(file, u64_to_user_ptr(args.directory_path), file_name,
+		      NULL, false);
+
+	goto out;
+
+delete_file:
+	incfs_unlink(file_dentry);
+
+out:
+	dput(file_dentry);
+	dput(source_file_dentry);
+	path_put(&parent_dir_path);
+	kfree(file_name);
+	kfree(source_file_name);
+	return error;
+}
+
+static long ioctl_get_read_timeouts(struct mount_info *mi, void __user *arg)
+{
+	struct incfs_get_read_timeouts_args __user *args_usr_ptr = arg;
+	struct incfs_get_read_timeouts_args args = {};
+	int error = 0;
+	struct incfs_per_uid_read_timeouts *buffer;
+	int size;
+
+	if (copy_from_user(&args, args_usr_ptr, sizeof(args)))
+		return -EINVAL;
+
+	if (args.timeouts_array_size > INCFS_DATA_FILE_BLOCK_SIZE)
+		return -EINVAL;
+
+	buffer = kzalloc(args.timeouts_array_size, GFP_NOFS);
+	if (!buffer)
+		return -ENOMEM;
+
+	spin_lock(&mi->mi_per_uid_read_timeouts_lock);
+	size = mi->mi_per_uid_read_timeouts_size;
+	if (args.timeouts_array_size < size)
+		error = -E2BIG;
+	else if (size)
+		memcpy(buffer, mi->mi_per_uid_read_timeouts, size);
+	spin_unlock(&mi->mi_per_uid_read_timeouts_lock);
+
+	args.timeouts_array_size_out = size;
+	if (!error && size)
+		if (copy_to_user(u64_to_user_ptr(args.timeouts_array), buffer,
+				 size))
+			error = -EFAULT;
+
+	if (!error || error == -E2BIG)
+		if (copy_to_user(args_usr_ptr, &args, sizeof(args)) > 0)
+			error = -EFAULT;
+
+	kfree(buffer);
+	return error;
+}
+
+static long ioctl_set_read_timeouts(struct mount_info *mi, void __user *arg)
+{
+	struct incfs_set_read_timeouts_args __user *args_usr_ptr = arg;
+	struct incfs_set_read_timeouts_args args = {};
+	int error = 0;
+	int size;
+	struct incfs_per_uid_read_timeouts *buffer = NULL, *tmp;
+	int i;
+
+	if (copy_from_user(&args, args_usr_ptr, sizeof(args)))
+		return -EINVAL;
+
+	size = args.timeouts_array_size;
+	if (size) {
+		if (size > INCFS_DATA_FILE_BLOCK_SIZE ||
+		    size % sizeof(*buffer) != 0)
+			return -EINVAL;
+
+		buffer = kzalloc(size, GFP_NOFS);
+		if (!buffer)
+			return -ENOMEM;
+
+		if (copy_from_user(buffer, u64_to_user_ptr(args.timeouts_array),
+				   size)) {
+			error = -EINVAL;
+			goto out;
+		}
+
+		for (i = 0; i < size / sizeof(*buffer); ++i) {
+			struct incfs_per_uid_read_timeouts *t = &buffer[i];
+
+			if (t->min_pending_time_us > t->max_pending_time_us) {
+				error = -EINVAL;
+				goto out;
+			}
+		}
+	}
+
+	spin_lock(&mi->mi_per_uid_read_timeouts_lock);
+	mi->mi_per_uid_read_timeouts_size = size;
+	tmp = mi->mi_per_uid_read_timeouts;
+	mi->mi_per_uid_read_timeouts = buffer;
+	buffer = tmp;
+	spin_unlock(&mi->mi_per_uid_read_timeouts_lock);
+
+out:
+	kfree(buffer);
+	return error;
+}
+
+static long ioctl_get_last_read_error(struct mount_info *mi, void __user *arg)
+{
+	struct incfs_get_last_read_error_args __user *args_usr_ptr = arg;
+	struct incfs_get_last_read_error_args args = {};
+	int error;
+
+	error = mutex_lock_interruptible(&mi->mi_le_mutex);
+	if (error)
+		return error;
+
+	args.file_id_out = mi->mi_le_file_id;
+	args.time_us_out = mi->mi_le_time_us;
+	args.page_out = mi->mi_le_page;
+	args.errno_out = mi->mi_le_errno;
+	args.uid_out = mi->mi_le_uid;
+
+	mutex_unlock(&mi->mi_le_mutex);
+	if (copy_to_user(args_usr_ptr, &args, sizeof(args)) > 0)
+		error = -EFAULT;
+
+	return error;
+}
+
+static long pending_reads_dispatch_ioctl(struct file *f, unsigned int req,
+					unsigned long arg)
+{
+	struct mount_info *mi = get_mount_info(file_superblock(f));
+
+	switch (req) {
+	case INCFS_IOC_CREATE_FILE:
+		return ioctl_create_file(f, (void __user *)arg);
+	case INCFS_IOC_PERMIT_FILL:
+		return ioctl_permit_fill(f, (void __user *)arg);
+	case INCFS_IOC_CREATE_MAPPED_FILE:
+		return ioctl_create_mapped_file(f, (void __user *)arg);
+	case INCFS_IOC_GET_READ_TIMEOUTS:
+		return ioctl_get_read_timeouts(mi, (void __user *)arg);
+	case INCFS_IOC_SET_READ_TIMEOUTS:
+		return ioctl_set_read_timeouts(mi, (void __user *)arg);
+	case INCFS_IOC_GET_LAST_READ_ERROR:
+		return ioctl_get_last_read_error(mi, (void __user *)arg);
+	default:
+		return -EINVAL;
+	}
+}
+
+static const struct file_operations incfs_pending_reads_file_ops = {
+	.read = pending_reads_read,
+	.poll = pending_reads_poll,
+	.open = pending_reads_open,
+	.release = pending_reads_release,
+	.llseek = noop_llseek,
+	.unlocked_ioctl = pending_reads_dispatch_ioctl,
+	.compat_ioctl = pending_reads_dispatch_ioctl
+};
+
+/*******************************************************************************
+ * .log pseudo file definition
+ ******************************************************************************/
+#define INCFS_LOG_INODE 3
+static const char log_file_name[] = INCFS_LOG_FILENAME;
+
+/* State of an open .log file, unique for each file descriptor. */
+struct log_file_state {
+	struct read_log_state state;
+};
+
+static ssize_t log_read(struct file *f, char __user *buf, size_t len,
+			loff_t *ppos)
+{
+	struct log_file_state *log_state = f->private_data;
+	struct mount_info *mi = get_mount_info(file_superblock(f));
+	int total_reads_collected = 0;
+	int rl_size;
+	ssize_t result = 0;
+	bool report_uid;
+	unsigned long page = 0;
+	struct incfs_pending_read_info *reads_buf = NULL;
+	struct incfs_pending_read_info2 *reads_buf2 = NULL;
+	size_t record_size;
+	ssize_t reads_to_collect;
+	ssize_t reads_per_page;
+
+	if (!mi)
+		return -EFAULT;
+
+	report_uid = mi->mi_options.report_uid;
+	record_size = report_uid ? sizeof(*reads_buf2) : sizeof(*reads_buf);
+	reads_to_collect = len / record_size;
+	reads_per_page = PAGE_SIZE / record_size;
+
+	rl_size = READ_ONCE(mi->mi_log.rl_size);
+	if (rl_size == 0)
+		return 0;
+
+	page = __get_free_page(GFP_NOFS);
+	if (!page)
+		return -ENOMEM;
+
+	if (report_uid)
+		reads_buf2 = (struct incfs_pending_read_info2 *)page;
+	else
+		reads_buf = (struct incfs_pending_read_info *)page;
+
+	reads_to_collect = min_t(ssize_t, rl_size, reads_to_collect);
+	while (reads_to_collect > 0) {
+		struct read_log_state next_state;
+		int reads_collected;
+
+		memcpy(&next_state, &log_state->state, sizeof(next_state));
+		reads_collected = incfs_collect_logged_reads(
+			mi, &next_state, reads_buf, reads_buf2,
+			min_t(ssize_t, reads_to_collect, reads_per_page));
+		if (reads_collected <= 0) {
+			result = total_reads_collected ?
+				       total_reads_collected * record_size :
+				       reads_collected;
+			goto out;
+		}
+		if (copy_to_user(buf, (void *)page,
+				 reads_collected * record_size)) {
+			result = total_reads_collected ?
+				       total_reads_collected * record_size :
+				       -EFAULT;
+			goto out;
+		}
+
+		memcpy(&log_state->state, &next_state, sizeof(next_state));
+		total_reads_collected += reads_collected;
+		buf += reads_collected * record_size;
+		reads_to_collect -= reads_collected;
+	}
+
+	result = total_reads_collected * record_size;
+	*ppos = 0;
+out:
+	free_page(page);
+	return result;
+}
+
+static __poll_t log_poll(struct file *file, poll_table *wait)
+{
+	struct log_file_state *log_state = file->private_data;
+	struct mount_info *mi = get_mount_info(file_superblock(file));
+	int count;
+	__poll_t ret = 0;
+
+	poll_wait(file, &mi->mi_log.ml_notif_wq, wait);
+	count = incfs_get_uncollected_logs_count(mi, &log_state->state);
+	if (count >= mi->mi_options.read_log_wakeup_count)
+		ret = EPOLLIN | EPOLLRDNORM;
+
+	return ret;
+}
+
+static int log_open(struct inode *inode, struct file *file)
+{
+	struct log_file_state *log_state = NULL;
+	struct mount_info *mi = get_mount_info(file_superblock(file));
+
+	log_state = kzalloc(sizeof(*log_state), GFP_NOFS);
+	if (!log_state)
+		return -ENOMEM;
+
+	log_state->state = incfs_get_log_state(mi);
+	file->private_data = log_state;
+	return 0;
+}
+
+static int log_release(struct inode *inode, struct file *file)
+{
+	kfree(file->private_data);
+	return 0;
+}
+
+static const struct file_operations incfs_log_file_ops = {
+	.read = log_read,
+	.poll = log_poll,
+	.open = log_open,
+	.release = log_release,
+	.llseek = noop_llseek,
+};
+
+/*******************************************************************************
+ * .blocks_written pseudo file definition
+ ******************************************************************************/
+#define INCFS_BLOCKS_WRITTEN_INODE 4
+static const char blocks_written_file_name[] = INCFS_BLOCKS_WRITTEN_FILENAME;
+
+/* State of an open .blocks_written file, unique for each file descriptor. */
+struct blocks_written_file_state {
+	unsigned long blocks_written;
+};
+
+static ssize_t blocks_written_read(struct file *f, char __user *buf, size_t len,
+			loff_t *ppos)
+{
+	struct mount_info *mi = get_mount_info(file_superblock(f));
+	struct blocks_written_file_state *state = f->private_data;
+	unsigned long blocks_written;
+	char string[21];
+	int result = 0;
+
+	if (!mi)
+		return -EFAULT;
+
+	blocks_written = atomic_read(&mi->mi_blocks_written);
+	if (state->blocks_written == blocks_written)
+		return 0;
+
+	result = snprintf(string, sizeof(string), "%lu", blocks_written);
+	if (result > len)
+		result = len;
+	if (copy_to_user(buf, string, result))
+		return -EFAULT;
+
+	state->blocks_written = blocks_written;
+	return result;
+}
+
+static __poll_t blocks_written_poll(struct file *f, poll_table *wait)
+{
+	struct mount_info *mi = get_mount_info(file_superblock(f));
+	struct blocks_written_file_state *state = f->private_data;
+	unsigned long blocks_written;
+
+	if (!mi)
+		return 0;
+
+	poll_wait(f, &mi->mi_blocks_written_notif_wq, wait);
+	blocks_written = atomic_read(&mi->mi_blocks_written);
+	if (state->blocks_written == blocks_written)
+		return 0;
+
+	return EPOLLIN | EPOLLRDNORM;
+}
+
+static int blocks_written_open(struct inode *inode, struct file *file)
+{
+	struct blocks_written_file_state *state =
+		kzalloc(sizeof(*state), GFP_NOFS);
+
+	if (!state)
+		return -ENOMEM;
+
+	state->blocks_written = -1;
+	file->private_data = state;
+	return 0;
+}
+
+static int blocks_written_release(struct inode *inode, struct file *file)
+{
+	kfree(file->private_data);
+	return 0;
+}
+
+static const struct file_operations incfs_blocks_written_file_ops = {
+	.read = blocks_written_read,
+	.poll = blocks_written_poll,
+	.open = blocks_written_open,
+	.release = blocks_written_release,
+	.llseek = noop_llseek,
+};
+
+/*******************************************************************************
+ * Generic inode lookup functionality
+ ******************************************************************************/
+
+const struct mem_range incfs_pseudo_file_names[] = {
+	{ .data = (u8 *)pending_reads_file_name,
+	  .len = ARRAY_SIZE(pending_reads_file_name) - 1 },
+	{ .data = (u8 *)log_file_name, .len = ARRAY_SIZE(log_file_name) - 1 },
+	{ .data = (u8 *)blocks_written_file_name,
+	  .len = ARRAY_SIZE(blocks_written_file_name) - 1 }
+};
+
+const unsigned long incfs_pseudo_file_inodes[] = { INCFS_PENDING_READS_INODE,
+						   INCFS_LOG_INODE,
+						   INCFS_BLOCKS_WRITTEN_INODE };
+
+static const struct file_operations *const pseudo_file_operations[] = {
+	&incfs_pending_reads_file_ops, &incfs_log_file_ops,
+	&incfs_blocks_written_file_ops
+};
+
+static bool is_pseudo_filename(struct mem_range name)
+{
+	int i = 0;
+
+	for (; i < ARRAY_SIZE(incfs_pseudo_file_names); ++i)
+		if (incfs_equal_ranges(incfs_pseudo_file_names[i], name))
+			return true;
+	return false;
+}
+
+static bool get_pseudo_inode(int ino, struct inode *inode)
+{
+	int i = 0;
+
+	for (; i < ARRAY_SIZE(incfs_pseudo_file_inodes); ++i)
+		if (ino == incfs_pseudo_file_inodes[i])
+			break;
+	if (i == ARRAY_SIZE(incfs_pseudo_file_inodes))
+		return false;
+
+	inode->i_ctime = (struct timespec64){};
+	inode->i_mtime = inode->i_ctime;
+	inode->i_atime = inode->i_ctime;
+	inode->i_size = 0;
+	inode->i_ino = ino;
+	inode->i_private = NULL;
+	inode_init_owner(&init_user_ns, inode, NULL, S_IFREG | READ_WRITE_FILE_MODE);
+	inode->i_op = &incfs_file_inode_ops;
+	inode->i_fop = pseudo_file_operations[i];
+	return true;
+}
+
+struct inode_search {
+	unsigned long ino;
+};
+
+static int inode_test(struct inode *inode, void *opaque)
+{
+	struct inode_search *search = opaque;
+
+	return inode->i_ino == search->ino;
+}
+
+static int inode_set(struct inode *inode, void *opaque)
+{
+	struct inode_search *search = opaque;
+
+	if (get_pseudo_inode(search->ino, inode))
+		return 0;
+
+	/* Unknown inode requested. */
+	return -EINVAL;
+}
+
+static struct inode *fetch_inode(struct super_block *sb, unsigned long ino)
+{
+	struct inode_search search = {
+		.ino = ino
+	};
+	struct inode *inode = iget5_locked(sb, search.ino, inode_test,
+				inode_set, &search);
+
+	if (!inode)
+		return ERR_PTR(-ENOMEM);
+
+	if (inode->i_state & I_NEW)
+		unlock_new_inode(inode);
+
+	return inode;
+}
+
+int dir_lookup_pseudo_files(struct super_block *sb, struct dentry *dentry)
+{
+	struct mem_range name_range =
+			range((u8 *)dentry->d_name.name, dentry->d_name.len);
+	unsigned long ino;
+	struct inode *inode;
+	int i = 0;
+
+	for (; i < ARRAY_SIZE(incfs_pseudo_file_names); ++i)
+		if (incfs_equal_ranges(incfs_pseudo_file_names[i], name_range))
+			break;
+	if (i == ARRAY_SIZE(incfs_pseudo_file_names))
+		return -ENOENT;
+
+	ino = incfs_pseudo_file_inodes[i];
+
+	inode = fetch_inode(sb, ino);
+	if (IS_ERR(inode))
+		return PTR_ERR(inode);
+
+	d_add(dentry, inode);
+	return 0;
+}
+
+int emit_pseudo_files(struct dir_context *ctx)
+{
+	loff_t i = ctx->pos;
+
+	for (; i < ARRAY_SIZE(incfs_pseudo_file_names); ++i) {
+		if (!dir_emit(ctx, incfs_pseudo_file_names[i].data,
+			      incfs_pseudo_file_names[i].len,
+			      incfs_pseudo_file_inodes[i], DT_REG))
+			return -EINVAL;
+
+		ctx->pos++;
+	}
+	return 0;
+}
diff --git a/fs/incfs/pseudo_files.h b/fs/incfs/pseudo_files.h
new file mode 100644
index 0000000..1887218
--- /dev/null
+++ b/fs/incfs/pseudo_files.h
@@ -0,0 +1,20 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright 2020 Google LLC
+ */
+
+#ifndef _INCFS_PSEUDO_FILES_H
+#define _INCFS_PSEUDO_FILES_H
+
+#include "internal.h"
+
+#define PSEUDO_FILE_COUNT 3
+#define INCFS_START_INO_RANGE 10
+
+extern const struct mem_range incfs_pseudo_file_names[PSEUDO_FILE_COUNT];
+extern const unsigned long incfs_pseudo_file_inodes[PSEUDO_FILE_COUNT];
+
+int dir_lookup_pseudo_files(struct super_block *sb, struct dentry *dentry);
+int emit_pseudo_files(struct dir_context *ctx);
+
+#endif
diff --git a/fs/incfs/sysfs.c b/fs/incfs/sysfs.c
new file mode 100644
index 0000000..ba91c07
--- /dev/null
+++ b/fs/incfs/sysfs.c
@@ -0,0 +1,205 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2021 Google LLC
+ */
+#include <linux/fs.h>
+#include <linux/kobject.h>
+
+#include <uapi/linux/incrementalfs.h>
+
+#include "sysfs.h"
+#include "data_mgmt.h"
+#include "vfs.h"
+
+/******************************************************************************
+ * Define sys/fs/incrementalfs & sys/fs/incrementalfs/features
+ *****************************************************************************/
+#define INCFS_NODE_FEATURES "features"
+#define INCFS_NODE_INSTANCES "instances"
+
+static struct kobject *sysfs_root;
+static struct kobject *features_node;
+static struct kobject *instances_node;
+
+#define DECLARE_FEATURE_FLAG(name)					\
+	static ssize_t name##_show(struct kobject *kobj,		\
+			 struct kobj_attribute *attr, char *buff)	\
+{									\
+	return sysfs_emit(buff, "supported\n");				\
+}									\
+									\
+static struct kobj_attribute name##_attr = __ATTR_RO(name)
+
+DECLARE_FEATURE_FLAG(corefs);
+DECLARE_FEATURE_FLAG(zstd);
+DECLARE_FEATURE_FLAG(v2);
+DECLARE_FEATURE_FLAG(bugfix_throttling);
+DECLARE_FEATURE_FLAG(bugfix_inode_eviction);
+
+static struct attribute *attributes[] = {
+	&corefs_attr.attr,
+	&zstd_attr.attr,
+	&v2_attr.attr,
+	&bugfix_throttling_attr.attr,
+	&bugfix_inode_eviction_attr.attr,
+	NULL,
+};
+
+static const struct attribute_group attr_group = {
+	.attrs = attributes,
+};
+
+int __init incfs_init_sysfs(void)
+{
+	int res = -ENOMEM;
+
+	sysfs_root = kobject_create_and_add(INCFS_NAME, fs_kobj);
+	if (!sysfs_root)
+		return -ENOMEM;
+
+	instances_node = kobject_create_and_add(INCFS_NODE_INSTANCES,
+						sysfs_root);
+	if (!instances_node)
+		goto err_put_root;
+
+	features_node = kobject_create_and_add(INCFS_NODE_FEATURES,
+						sysfs_root);
+	if (!features_node)
+		goto err_put_instances;
+
+	res = sysfs_create_group(features_node, &attr_group);
+	if (res)
+		goto err_put_features;
+
+	return 0;
+
+err_put_features:
+	kobject_put(features_node);
+err_put_instances:
+	kobject_put(instances_node);
+err_put_root:
+	kobject_put(sysfs_root);
+
+	return res;
+}
+
+void incfs_cleanup_sysfs(void)
+{
+	if (features_node) {
+		sysfs_remove_group(features_node, &attr_group);
+		kobject_put(features_node);
+	}
+
+	kobject_put(instances_node);
+	kobject_put(sysfs_root);
+}
+
+/******************************************************************************
+ * Define sys/fs/incrementalfs/instances/<name>/
+ *****************************************************************************/
+#define __DECLARE_STATUS_FLAG(name)					\
+static ssize_t name##_show(struct kobject *kobj,			\
+			 struct kobj_attribute *attr, char *buff)	\
+{									\
+	struct incfs_sysfs_node *node = container_of(kobj,		\
+			struct incfs_sysfs_node, isn_sysfs_node);	\
+									\
+	return sysfs_emit(buff, "%d\n", node->isn_mi->mi_##name);	\
+}									\
+									\
+static struct kobj_attribute name##_attr = __ATTR_RO(name)
+
+#define __DECLARE_STATUS_FLAG64(name)					\
+static ssize_t name##_show(struct kobject *kobj,			\
+			 struct kobj_attribute *attr, char *buff)	\
+{									\
+	struct incfs_sysfs_node *node = container_of(kobj,		\
+			struct incfs_sysfs_node, isn_sysfs_node);	\
+									\
+	return sysfs_emit(buff, "%lld\n", node->isn_mi->mi_##name);	\
+}									\
+									\
+static struct kobj_attribute name##_attr = __ATTR_RO(name)
+
+__DECLARE_STATUS_FLAG(reads_failed_timed_out);
+__DECLARE_STATUS_FLAG(reads_failed_hash_verification);
+__DECLARE_STATUS_FLAG(reads_failed_other);
+__DECLARE_STATUS_FLAG(reads_delayed_pending);
+__DECLARE_STATUS_FLAG64(reads_delayed_pending_us);
+__DECLARE_STATUS_FLAG(reads_delayed_min);
+__DECLARE_STATUS_FLAG64(reads_delayed_min_us);
+
+static struct attribute *mount_attributes[] = {
+	&reads_failed_timed_out_attr.attr,
+	&reads_failed_hash_verification_attr.attr,
+	&reads_failed_other_attr.attr,
+	&reads_delayed_pending_attr.attr,
+	&reads_delayed_pending_us_attr.attr,
+	&reads_delayed_min_attr.attr,
+	&reads_delayed_min_us_attr.attr,
+	NULL,
+};
+
+static void incfs_sysfs_release(struct kobject *kobj)
+{
+	struct incfs_sysfs_node *node = container_of(kobj,
+				struct incfs_sysfs_node, isn_sysfs_node);
+
+	complete(&node->isn_completion);
+}
+
+static const struct attribute_group mount_attr_group = {
+	.attrs = mount_attributes,
+};
+
+static struct kobj_type incfs_kobj_node_ktype = {
+	.sysfs_ops	= &kobj_sysfs_ops,
+	.release	= &incfs_sysfs_release,
+};
+
+struct incfs_sysfs_node *incfs_add_sysfs_node(const char *name,
+					      struct mount_info *mi)
+{
+	struct incfs_sysfs_node *node = NULL;
+	int error;
+
+	if (!name)
+		return NULL;
+
+	node = kzalloc(sizeof(*node), GFP_NOFS);
+	if (!node)
+		return ERR_PTR(-ENOMEM);
+
+	node->isn_mi = mi;
+
+	init_completion(&node->isn_completion);
+	kobject_init(&node->isn_sysfs_node, &incfs_kobj_node_ktype);
+	error = kobject_add(&node->isn_sysfs_node, instances_node, "%s", name);
+	if (error)
+		goto err;
+
+	error = sysfs_create_group(&node->isn_sysfs_node, &mount_attr_group);
+	if (error)
+		goto err;
+
+	return node;
+
+err:
+	/*
+	 * Note kobject_put always calls release, so incfs_sysfs_release will
+	 * free node
+	 */
+	kobject_put(&node->isn_sysfs_node);
+	return ERR_PTR(error);
+}
+
+void incfs_free_sysfs_node(struct incfs_sysfs_node *node)
+{
+	if (!node)
+		return;
+
+	sysfs_remove_group(&node->isn_sysfs_node, &mount_attr_group);
+	kobject_put(&node->isn_sysfs_node);
+	wait_for_completion_interruptible(&node->isn_completion);
+	kfree(node);
+}
diff --git a/fs/incfs/sysfs.h b/fs/incfs/sysfs.h
new file mode 100644
index 0000000..65bf554
--- /dev/null
+++ b/fs/incfs/sysfs.h
@@ -0,0 +1,22 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright 2021 Google LLC
+ */
+#ifndef _INCFS_SYSFS_H
+#define _INCFS_SYSFS_H
+
+struct incfs_sysfs_node {
+	struct kobject isn_sysfs_node;
+
+	struct completion isn_completion;
+
+	struct mount_info *isn_mi;
+};
+
+int incfs_init_sysfs(void);
+void incfs_cleanup_sysfs(void);
+struct incfs_sysfs_node *incfs_add_sysfs_node(const char *name,
+					      struct mount_info *mi);
+void incfs_free_sysfs_node(struct incfs_sysfs_node *node);
+
+#endif
diff --git a/fs/incfs/verity.c b/fs/incfs/verity.c
new file mode 100644
index 0000000..562a8e77
--- /dev/null
+++ b/fs/incfs/verity.c
@@ -0,0 +1,851 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2020 Google LLC
+ */
+
+/*
+ * fs-verity integration into incfs
+ *
+ * Since incfs has its own merkle tree implementation, most of fs-verity code
+ * is not needed. The key part that is needed is the signature check, since
+ * that is based on the private /proc/sys/fs/verity/require_signatures value
+ * and a private keyring. Thus the first change is to modify verity code to
+ * export a version of fsverity_verify_signature.
+ *
+ * fs-verity integration then consists of the following modifications:
+ *
+ * 1. Add the (optional) verity signature to the incfs file format
+ * 2. Add a pointer to the digest of the fs-verity descriptor struct to the
+ *    data_file struct that incfs attaches to each file inode.
+ * 3. Add the following ioclts:
+ *  - FS_IOC_ENABLE_VERITY
+ *  - FS_IOC_GETFLAGS
+ *  - FS_IOC_MEASURE_VERITY
+ * 4. When FS_IOC_ENABLE_VERITY is called on a non-verity file, the
+ *    fs-verity descriptor struct is populated and digested. If it passes the
+ *    signature check or the signature is NULL and
+ *    fs.verity.require_signatures=0, then the S_VERITY flag is set and the
+ *    xattr incfs.verity is set. If the signature is non-NULL, an
+ *    INCFS_MD_VERITY_SIGNATURE is added to the backing file containing the
+ *    signature.
+ * 5. When a file with an incfs.verity xattr's inode is initialized, the
+ *    inode’s S_VERITY flag is set.
+ * 6. When a file with the S_VERITY flag set on its inode is opened, the
+ *    data_file is checked for its verity digest. If the file doesn’t have a
+ *    digest, the file’s digest is calculated as above, checked, and set, or the
+ *    open is denied if it is not valid.
+ * 7. FS_IOC_GETFLAGS simply returns the value of the S_VERITY flag
+ * 8. FS_IOC_MEASURE_VERITY simply returns the cached digest
+ * 9. The final complication is that if FS_IOC_ENABLE_VERITY is called on a file
+ *    which doesn’t have a merkle tree, the merkle tree is calculated before the
+ *    rest of the process is completed.
+ */
+
+#include <crypto/hash.h>
+#include <crypto/sha2.h>
+#include <linux/fsverity.h>
+#include <linux/mount.h>
+
+#include "verity.h"
+
+#include "data_mgmt.h"
+#include "format.h"
+#include "integrity.h"
+#include "vfs.h"
+
+#define FS_VERITY_MAX_SIGNATURE_SIZE	16128
+
+static int incfs_get_root_hash(struct file *filp, u8 *root_hash)
+{
+	struct data_file *df = get_incfs_data_file(filp);
+
+	if (!df)
+		return -EINVAL;
+
+	memcpy(root_hash, df->df_hash_tree->root_hash,
+	       df->df_hash_tree->alg->digest_size);
+
+	return 0;
+}
+
+static int incfs_end_enable_verity(struct file *filp, u8 *sig, size_t sig_size)
+{
+	struct inode *inode = file_inode(filp);
+	struct mem_range signature = {
+		.data = sig,
+		.len = sig_size,
+	};
+	struct data_file *df = get_incfs_data_file(filp);
+	struct backing_file_context *bfc;
+	int error;
+	struct incfs_df_verity_signature *vs = NULL;
+	loff_t offset;
+
+	if (!df || !df->df_backing_file_context)
+		return -EFSCORRUPTED;
+
+	if (sig) {
+		vs = kzalloc(sizeof(*vs), GFP_NOFS);
+		if (!vs)
+			return -ENOMEM;
+	}
+
+	bfc = df->df_backing_file_context;
+	error = mutex_lock_interruptible(&bfc->bc_mutex);
+	if (error)
+		goto out;
+
+	error = incfs_write_verity_signature_to_backing_file(bfc, signature,
+							     &offset);
+	mutex_unlock(&bfc->bc_mutex);
+	if (error)
+		goto out;
+
+	/*
+	 * Set verity xattr so we can set S_VERITY without opening backing file
+	 */
+	error = vfs_setxattr(&init_user_ns, bfc->bc_file->f_path.dentry,
+			     INCFS_XATTR_VERITY_NAME, NULL, 0, XATTR_CREATE);
+	if (error) {
+		pr_warn("incfs: error setting verity xattr: %d\n", error);
+		goto out;
+	}
+
+	if (sig) {
+		*vs = (struct incfs_df_verity_signature) {
+			.size = signature.len,
+			.offset = offset,
+		};
+
+		df->df_verity_signature = vs;
+		vs = NULL;
+	}
+
+	inode_set_flags(inode, S_VERITY, S_VERITY);
+
+out:
+	kfree(vs);
+	return error;
+}
+
+static int incfs_compute_file_digest(struct incfs_hash_alg *alg,
+				struct fsverity_descriptor *desc,
+				u8 *digest)
+{
+	SHASH_DESC_ON_STACK(d, alg->shash);
+
+	d->tfm = alg->shash;
+	return crypto_shash_digest(d, (u8 *)desc, sizeof(*desc), digest);
+}
+
+static enum incfs_hash_tree_algorithm incfs_convert_fsverity_hash_alg(
+								int hash_alg)
+{
+	switch (hash_alg) {
+	case FS_VERITY_HASH_ALG_SHA256:
+		return INCFS_HASH_TREE_SHA256;
+	default:
+		return -EINVAL;
+	}
+}
+
+static struct mem_range incfs_get_verity_digest(struct inode *inode)
+{
+	struct inode_info *node = get_incfs_node(inode);
+	struct data_file *df;
+	struct mem_range verity_file_digest;
+
+	if (!node) {
+		pr_warn("Invalid inode\n");
+		return range(NULL, 0);
+	}
+
+	df = node->n_file;
+
+	/*
+	 * Pairs with the cmpxchg_release() in incfs_set_verity_digest().
+	 * I.e., another task may publish ->df_verity_file_digest concurrently,
+	 * executing a RELEASE barrier.  We need to use smp_load_acquire() here
+	 * to safely ACQUIRE the memory the other task published.
+	 */
+	verity_file_digest.data = smp_load_acquire(
+					&df->df_verity_file_digest.data);
+	verity_file_digest.len = df->df_verity_file_digest.len;
+	return verity_file_digest;
+}
+
+static void incfs_set_verity_digest(struct inode *inode,
+				     struct mem_range verity_file_digest)
+{
+	struct inode_info *node = get_incfs_node(inode);
+	struct data_file *df;
+
+	if (!node) {
+		pr_warn("Invalid inode\n");
+		kfree(verity_file_digest.data);
+		return;
+	}
+
+	df = node->n_file;
+	df->df_verity_file_digest.len = verity_file_digest.len;
+
+	/*
+	 * Multiple tasks may race to set ->df_verity_file_digest.data, so use
+	 * cmpxchg_release().  This pairs with the smp_load_acquire() in
+	 * incfs_get_verity_digest().  I.e., here we publish
+	 * ->df_verity_file_digest.data, with a RELEASE barrier so that other
+	 * tasks can ACQUIRE it.
+	 */
+	if (cmpxchg_release(&df->df_verity_file_digest.data, NULL,
+			    verity_file_digest.data) != NULL)
+		/* Lost the race, so free the file_digest we allocated. */
+		kfree(verity_file_digest.data);
+}
+
+/*
+ * Calculate the digest of the fsverity_descriptor. The signature (if present)
+ * is also checked.
+ */
+static struct mem_range incfs_calc_verity_digest_from_desc(
+					const struct inode *inode,
+					struct fsverity_descriptor *desc,
+					u8 *signature, size_t sig_size)
+{
+	enum incfs_hash_tree_algorithm incfs_hash_alg;
+	struct mem_range verity_file_digest;
+	int err;
+	struct incfs_hash_alg *hash_alg;
+
+	incfs_hash_alg = incfs_convert_fsverity_hash_alg(desc->hash_algorithm);
+	if (incfs_hash_alg < 0)
+		return range(ERR_PTR(incfs_hash_alg), 0);
+
+	hash_alg = incfs_get_hash_alg(incfs_hash_alg);
+	if (IS_ERR(hash_alg))
+		return range((u8 *)hash_alg, 0);
+
+	verity_file_digest = range(kzalloc(hash_alg->digest_size, GFP_KERNEL),
+				   hash_alg->digest_size);
+	if (!verity_file_digest.data)
+		return range(ERR_PTR(-ENOMEM), 0);
+
+	err = incfs_compute_file_digest(hash_alg, desc,
+					verity_file_digest.data);
+	if (err) {
+		pr_err("Error %d computing file digest", err);
+		goto out;
+	}
+	pr_debug("Computed file digest: %s:%*phN\n",
+		 hash_alg->name, (int) verity_file_digest.len,
+		 verity_file_digest.data);
+
+	err = __fsverity_verify_signature(inode, signature, sig_size,
+					  verity_file_digest.data,
+					  desc->hash_algorithm);
+out:
+	if (err) {
+		kfree(verity_file_digest.data);
+		verity_file_digest = range(ERR_PTR(err), 0);
+	}
+	return verity_file_digest;
+}
+
+static struct fsverity_descriptor *incfs_get_fsverity_descriptor(
+					struct file *filp, int hash_algorithm)
+{
+	struct inode *inode = file_inode(filp);
+	struct fsverity_descriptor *desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+	int err;
+
+	if (!desc)
+		return ERR_PTR(-ENOMEM);
+
+	*desc = (struct fsverity_descriptor) {
+		.version = 1,
+		.hash_algorithm = hash_algorithm,
+		.log_blocksize = ilog2(INCFS_DATA_FILE_BLOCK_SIZE),
+		.data_size = cpu_to_le64(inode->i_size),
+	};
+
+	err = incfs_get_root_hash(filp, desc->root_hash);
+	if (err) {
+		kfree(desc);
+		return ERR_PTR(err);
+	}
+
+	return desc;
+}
+
+static struct mem_range incfs_calc_verity_digest(
+					struct inode *inode, struct file *filp,
+					u8 *signature, size_t signature_size,
+					int hash_algorithm)
+{
+	struct fsverity_descriptor *desc = incfs_get_fsverity_descriptor(filp,
+							hash_algorithm);
+	struct mem_range verity_file_digest;
+
+	if (IS_ERR(desc))
+		return range((u8 *)desc, 0);
+	verity_file_digest = incfs_calc_verity_digest_from_desc(inode, desc,
+						signature, signature_size);
+	kfree(desc);
+	return verity_file_digest;
+}
+
+static int incfs_build_merkle_tree(struct file *f, struct data_file *df,
+			     struct backing_file_context *bfc,
+			     struct mtree *hash_tree, loff_t hash_offset,
+			     struct incfs_hash_alg *alg, struct mem_range hash)
+{
+	int error = 0;
+	int limit, lvl, i, result;
+	struct mem_range buf = {.len = INCFS_DATA_FILE_BLOCK_SIZE};
+	struct mem_range tmp = {.len = 2 * INCFS_DATA_FILE_BLOCK_SIZE};
+
+	buf.data = (u8 *)__get_free_pages(GFP_NOFS, get_order(buf.len));
+	tmp.data = (u8 *)__get_free_pages(GFP_NOFS, get_order(tmp.len));
+	if (!buf.data || !tmp.data) {
+		error = -ENOMEM;
+		goto out;
+	}
+
+	/*
+	 * lvl - 1 is the level we are reading, lvl the level we are writing
+	 * lvl == -1 means actual blocks
+	 * lvl == hash_tree->depth means root hash
+	 */
+	limit = df->df_data_block_count;
+	for (lvl = 0; lvl <= hash_tree->depth; lvl++) {
+		for (i = 0; i < limit; ++i) {
+			loff_t hash_level_offset;
+			struct mem_range partial_buf = buf;
+
+			if (lvl == 0)
+				result = incfs_read_data_file_block(partial_buf,
+						f, i, tmp, NULL, NULL);
+			else {
+				hash_level_offset = hash_offset +
+				       hash_tree->hash_level_suboffset[lvl - 1];
+
+				result = incfs_kread(bfc, partial_buf.data,
+						partial_buf.len,
+						hash_level_offset + i *
+						INCFS_DATA_FILE_BLOCK_SIZE);
+			}
+
+			if (result < 0) {
+				error = result;
+				goto out;
+			}
+
+			partial_buf.len = result;
+			error = incfs_calc_digest(alg, partial_buf, hash);
+			if (error)
+				goto out;
+
+			/*
+			 * last level - only one hash to take and it is stored
+			 * in the incfs signature record
+			 */
+			if (lvl == hash_tree->depth)
+				break;
+
+			hash_level_offset = hash_offset +
+				hash_tree->hash_level_suboffset[lvl];
+
+			result = incfs_kwrite(bfc, hash.data, hash.len,
+					hash_level_offset + hash.len * i);
+
+			if (result < 0) {
+				error = result;
+				goto out;
+			}
+
+			if (result != hash.len) {
+				error = -EIO;
+				goto out;
+			}
+		}
+		limit = DIV_ROUND_UP(limit,
+				     INCFS_DATA_FILE_BLOCK_SIZE / hash.len);
+	}
+
+out:
+	free_pages((unsigned long)tmp.data, get_order(tmp.len));
+	free_pages((unsigned long)buf.data, get_order(buf.len));
+	return error;
+}
+
+/*
+ * incfs files have a signature record that is separate from the
+ * verity_signature record. The signature record does not actually contain a
+ * signature, rather it contains the size/offset of the hash tree, and a binary
+ * blob which contains the root hash and potentially a signature.
+ *
+ * If the file was created with a signature record, then this function simply
+ * returns.
+ *
+ * Otherwise it will create a signature record with a minimal binary blob as
+ * defined by the structure below, create space for the hash tree and then
+ * populate it using incfs_build_merkle_tree
+ */
+static int incfs_add_signature_record(struct file *f)
+{
+	/* See incfs_parse_signature */
+	struct {
+		__le32 version;
+		__le32 size_of_hash_info_section;
+		struct {
+			__le32 hash_algorithm;
+			u8 log2_blocksize;
+			__le32 salt_size;
+			u8 salt[0];
+			__le32 hash_size;
+			u8 root_hash[32];
+		} __packed hash_section;
+		__le32 size_of_signing_info_section;
+		u8 signing_info_section[0];
+	} __packed sig = {
+		.version = cpu_to_le32(INCFS_SIGNATURE_VERSION),
+		.size_of_hash_info_section =
+			cpu_to_le32(sizeof(sig.hash_section)),
+		.hash_section = {
+			.hash_algorithm = cpu_to_le32(INCFS_HASH_TREE_SHA256),
+			.log2_blocksize = ilog2(INCFS_DATA_FILE_BLOCK_SIZE),
+			.hash_size = cpu_to_le32(SHA256_DIGEST_SIZE),
+		},
+	};
+
+	struct data_file *df = get_incfs_data_file(f);
+	struct mtree *hash_tree = NULL;
+	struct backing_file_context *bfc;
+	int error;
+	loff_t hash_offset, sig_offset;
+	struct incfs_hash_alg *alg = incfs_get_hash_alg(INCFS_HASH_TREE_SHA256);
+	u8 hash_buf[INCFS_MAX_HASH_SIZE];
+	int hash_size = alg->digest_size;
+	struct mem_range hash = range(hash_buf, hash_size);
+	int result;
+	struct incfs_df_signature *signature = NULL;
+
+	if (!df)
+		return -EINVAL;
+
+	if (df->df_header_flags & INCFS_FILE_MAPPED)
+		return -EINVAL;
+
+	/* Already signed? */
+	if (df->df_signature && df->df_hash_tree)
+		return 0;
+
+	if (df->df_signature || df->df_hash_tree)
+		return -EFSCORRUPTED;
+
+	/* Add signature metadata record to file */
+	hash_tree = incfs_alloc_mtree(range((u8 *)&sig, sizeof(sig)),
+				      df->df_data_block_count);
+	if (IS_ERR(hash_tree))
+		return PTR_ERR(hash_tree);
+
+	bfc = df->df_backing_file_context;
+	if (!bfc) {
+		error = -EFSCORRUPTED;
+		goto out;
+	}
+
+	error = mutex_lock_interruptible(&bfc->bc_mutex);
+	if (error)
+		goto out;
+
+	error = incfs_write_signature_to_backing_file(bfc,
+				range((u8 *)&sig, sizeof(sig)),
+				hash_tree->hash_tree_area_size,
+				&hash_offset, &sig_offset);
+	mutex_unlock(&bfc->bc_mutex);
+	if (error)
+		goto out;
+
+	/* Populate merkle tree */
+	error = incfs_build_merkle_tree(f, df, bfc, hash_tree, hash_offset, alg,
+				  hash);
+	if (error)
+		goto out;
+
+	/* Update signature metadata record */
+	memcpy(sig.hash_section.root_hash, hash.data, alg->digest_size);
+	result = incfs_kwrite(bfc, &sig, sizeof(sig), sig_offset);
+	if (result < 0) {
+		error = result;
+		goto out;
+	}
+
+	if (result != sizeof(sig)) {
+		error = -EIO;
+		goto out;
+	}
+
+	/* Update in-memory records */
+	memcpy(hash_tree->root_hash, hash.data, alg->digest_size);
+	signature = kzalloc(sizeof(*signature), GFP_NOFS);
+	if (!signature) {
+		error = -ENOMEM;
+		goto out;
+	}
+	*signature = (struct incfs_df_signature) {
+		.hash_offset = hash_offset,
+		.hash_size = hash_tree->hash_tree_area_size,
+		.sig_offset = sig_offset,
+		.sig_size = sizeof(sig),
+	};
+	df->df_signature = signature;
+	signature = NULL;
+
+	/*
+	 * Use memory barrier to prevent readpage seeing the hash tree until
+	 * it's fully there
+	 */
+	smp_store_release(&df->df_hash_tree, hash_tree);
+	hash_tree = NULL;
+
+out:
+	kfree(signature);
+	kfree(hash_tree);
+	return error;
+}
+
+static int incfs_enable_verity(struct file *filp,
+			 const struct fsverity_enable_arg *arg)
+{
+	struct inode *inode = file_inode(filp);
+	struct data_file *df = get_incfs_data_file(filp);
+	u8 *signature = NULL;
+	struct mem_range verity_file_digest = range(NULL, 0);
+	int err;
+
+	if (!df)
+		return -EFSCORRUPTED;
+
+	err = mutex_lock_interruptible(&df->df_enable_verity);
+	if (err)
+		return err;
+
+	if (IS_VERITY(inode)) {
+		err = -EEXIST;
+		goto out;
+	}
+
+	err = incfs_add_signature_record(filp);
+	if (err)
+		goto out;
+
+	/* Get the signature if the user provided one */
+	if (arg->sig_size) {
+		signature = memdup_user(u64_to_user_ptr(arg->sig_ptr),
+					arg->sig_size);
+		if (IS_ERR(signature)) {
+			err = PTR_ERR(signature);
+			signature = NULL;
+			goto out;
+		}
+	}
+
+	verity_file_digest = incfs_calc_verity_digest(inode, filp, signature,
+					arg->sig_size, arg->hash_algorithm);
+	if (IS_ERR(verity_file_digest.data)) {
+		err = PTR_ERR(verity_file_digest.data);
+		verity_file_digest.data = NULL;
+		goto out;
+	}
+
+	err = incfs_end_enable_verity(filp, signature, arg->sig_size);
+	if (err)
+		goto out;
+
+	/* Successfully enabled verity */
+	incfs_set_verity_digest(inode, verity_file_digest);
+	verity_file_digest.data = NULL;
+out:
+	mutex_unlock(&df->df_enable_verity);
+	kfree(signature);
+	kfree(verity_file_digest.data);
+	if (err)
+		pr_err("%s failed with err %d\n", __func__, err);
+	return err;
+}
+
+int incfs_ioctl_enable_verity(struct file *filp, const void __user *uarg)
+{
+	struct inode *inode = file_inode(filp);
+	struct fsverity_enable_arg arg;
+
+	if (copy_from_user(&arg, uarg, sizeof(arg)))
+		return -EFAULT;
+
+	if (arg.version != 1)
+		return -EINVAL;
+
+	if (arg.__reserved1 ||
+	    memchr_inv(arg.__reserved2, 0, sizeof(arg.__reserved2)))
+		return -EINVAL;
+
+	if (arg.hash_algorithm != FS_VERITY_HASH_ALG_SHA256)
+		return -EINVAL;
+
+	if (arg.block_size != PAGE_SIZE)
+		return -EINVAL;
+
+	if (arg.salt_size)
+		return -EINVAL;
+
+	if (arg.sig_size > FS_VERITY_MAX_SIGNATURE_SIZE)
+		return -EMSGSIZE;
+
+	if (S_ISDIR(inode->i_mode))
+		return -EISDIR;
+
+	if (!S_ISREG(inode->i_mode))
+		return -EINVAL;
+
+	return incfs_enable_verity(filp, &arg);
+}
+
+static u8 *incfs_get_verity_signature(struct file *filp, size_t *sig_size)
+{
+	struct data_file *df = get_incfs_data_file(filp);
+	struct incfs_df_verity_signature *vs;
+	u8 *signature;
+	int res;
+
+	if (!df || !df->df_backing_file_context)
+		return ERR_PTR(-EFSCORRUPTED);
+
+	vs = df->df_verity_signature;
+	if (!vs) {
+		*sig_size = 0;
+		return NULL;
+	}
+
+	if (!vs->size) {
+		*sig_size = 0;
+		return ERR_PTR(-EFSCORRUPTED);
+	}
+
+	signature = kzalloc(vs->size, GFP_KERNEL);
+	if (!signature)
+		return ERR_PTR(-ENOMEM);
+
+	res = incfs_kread(df->df_backing_file_context,
+			  signature, vs->size, vs->offset);
+
+	if (res < 0)
+		goto err_out;
+
+	if (res != vs->size) {
+		res = -EINVAL;
+		goto err_out;
+	}
+
+	*sig_size = vs->size;
+	return signature;
+
+err_out:
+	kfree(signature);
+	return ERR_PTR(res);
+}
+
+/* Ensure data_file->df_verity_file_digest is populated */
+static int ensure_verity_info(struct inode *inode, struct file *filp)
+{
+	struct mem_range verity_file_digest;
+	u8 *signature = NULL;
+	size_t sig_size;
+	int err = 0;
+
+	/* See if this file's verity file digest is already cached */
+	verity_file_digest = incfs_get_verity_digest(inode);
+	if (verity_file_digest.data)
+		return 0;
+
+	signature = incfs_get_verity_signature(filp, &sig_size);
+	if (IS_ERR(signature))
+		return PTR_ERR(signature);
+
+	verity_file_digest = incfs_calc_verity_digest(inode, filp, signature,
+						     sig_size,
+						     FS_VERITY_HASH_ALG_SHA256);
+	if (IS_ERR(verity_file_digest.data)) {
+		err = PTR_ERR(verity_file_digest.data);
+		goto out;
+	}
+
+	incfs_set_verity_digest(inode, verity_file_digest);
+
+out:
+	kfree(signature);
+	return err;
+}
+
+/**
+ * incfs_fsverity_file_open() - prepare to open a file that may be
+ * verity-enabled
+ * @inode: the inode being opened
+ * @filp: the struct file being set up
+ *
+ * When opening a verity file, set up data_file->df_verity_file_digest if not
+ * already done. Note that incfs does not allow opening for writing, so there is
+ * no need for that check.
+ *
+ * Return: 0 on success, -errno on failure
+ */
+int incfs_fsverity_file_open(struct inode *inode, struct file *filp)
+{
+	if (IS_VERITY(inode))
+		return ensure_verity_info(inode, filp);
+
+	return 0;
+}
+
+int incfs_ioctl_measure_verity(struct file *filp, void __user *_uarg)
+{
+	struct inode *inode = file_inode(filp);
+	struct mem_range verity_file_digest = incfs_get_verity_digest(inode);
+	struct fsverity_digest __user *uarg = _uarg;
+	struct fsverity_digest arg;
+
+	if (!verity_file_digest.data || !verity_file_digest.len)
+		return -ENODATA; /* not a verity file */
+
+	/*
+	 * The user specifies the digest_size their buffer has space for; we can
+	 * return the digest if it fits in the available space.  We write back
+	 * the actual size, which may be shorter than the user-specified size.
+	 */
+
+	if (get_user(arg.digest_size, &uarg->digest_size))
+		return -EFAULT;
+	if (arg.digest_size < verity_file_digest.len)
+		return -EOVERFLOW;
+
+	memset(&arg, 0, sizeof(arg));
+	arg.digest_algorithm = FS_VERITY_HASH_ALG_SHA256;
+	arg.digest_size = verity_file_digest.len;
+
+	if (copy_to_user(uarg, &arg, sizeof(arg)))
+		return -EFAULT;
+
+	if (copy_to_user(uarg->digest, verity_file_digest.data,
+			 verity_file_digest.len))
+		return -EFAULT;
+
+	return 0;
+}
+
+static int incfs_read_merkle_tree(struct file *filp, void __user *buf,
+				  u64 start_offset, int length)
+{
+	struct mem_range tmp_buf;
+	size_t offset;
+	int retval = 0;
+	int err = 0;
+	struct data_file *df = get_incfs_data_file(filp);
+
+	if (!df)
+		return -EINVAL;
+
+	tmp_buf = (struct mem_range) {
+		.data = kzalloc(INCFS_DATA_FILE_BLOCK_SIZE, GFP_NOFS),
+		.len = INCFS_DATA_FILE_BLOCK_SIZE,
+	};
+	if (!tmp_buf.data)
+		return -ENOMEM;
+
+	for (offset = start_offset; offset < start_offset + length;
+	     offset += tmp_buf.len) {
+		err = incfs_read_merkle_tree_blocks(tmp_buf, df, offset);
+
+		if (err < 0)
+			break;
+
+		if (err != tmp_buf.len)
+			break;
+
+		if (copy_to_user(buf, tmp_buf.data, tmp_buf.len))
+			break;
+
+		buf += tmp_buf.len;
+		retval += tmp_buf.len;
+	}
+
+	kfree(tmp_buf.data);
+	return retval ? retval : err;
+}
+
+static int incfs_read_descriptor(struct file *filp,
+				 void __user *buf, u64 offset, int length)
+{
+	int err;
+	struct fsverity_descriptor *desc = incfs_get_fsverity_descriptor(filp,
+						FS_VERITY_HASH_ALG_SHA256);
+
+	if (IS_ERR(desc))
+		return PTR_ERR(desc);
+	length = min_t(u64, length, sizeof(*desc));
+	err = copy_to_user(buf, desc, length);
+	kfree(desc);
+	return err ? err : length;
+}
+
+static int incfs_read_signature(struct file *filp,
+				void __user *buf, u64 offset, int length)
+{
+	size_t sig_size;
+	static u8 *signature;
+	int err;
+
+	signature = incfs_get_verity_signature(filp, &sig_size);
+	if (IS_ERR(signature))
+		return PTR_ERR(signature);
+
+	if (!signature)
+		return -ENODATA;
+
+	length = min_t(u64, length, sig_size);
+	err = copy_to_user(buf, signature, length);
+	kfree(signature);
+	return err ? err : length;
+}
+
+int incfs_ioctl_read_verity_metadata(struct file *filp,
+				     const void __user *uarg)
+{
+	struct fsverity_read_metadata_arg arg;
+	int length;
+	void __user *buf;
+
+	if (copy_from_user(&arg, uarg, sizeof(arg)))
+		return -EFAULT;
+
+	if (arg.__reserved)
+		return -EINVAL;
+
+	/* offset + length must not overflow. */
+	if (arg.offset + arg.length < arg.offset)
+		return -EINVAL;
+
+	/* Ensure that the return value will fit in INT_MAX. */
+	length = min_t(u64, arg.length, INT_MAX);
+
+	buf = u64_to_user_ptr(arg.buf_ptr);
+
+	switch (arg.metadata_type) {
+	case FS_VERITY_METADATA_TYPE_MERKLE_TREE:
+		return incfs_read_merkle_tree(filp, buf, arg.offset, length);
+	case FS_VERITY_METADATA_TYPE_DESCRIPTOR:
+		return incfs_read_descriptor(filp, buf, arg.offset, length);
+	case FS_VERITY_METADATA_TYPE_SIGNATURE:
+		return incfs_read_signature(filp, buf, arg.offset, length);
+	default:
+		return -EINVAL;
+	}
+}
diff --git a/fs/incfs/verity.h b/fs/incfs/verity.h
new file mode 100644
index 0000000..8fcdbc8
--- /dev/null
+++ b/fs/incfs/verity.h
@@ -0,0 +1,49 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright 2020 Google LLC
+ */
+
+#ifndef _INCFS_VERITY_H
+#define _INCFS_VERITY_H
+
+/* Arbitrary limit to bound the kmalloc() size.  Can be changed. */
+#define FS_VERITY_MAX_SIGNATURE_SIZE	16128
+
+#ifdef CONFIG_FS_VERITY
+
+int incfs_ioctl_enable_verity(struct file *filp, const void __user *uarg);
+int incfs_ioctl_measure_verity(struct file *filp, void __user *_uarg);
+
+int incfs_fsverity_file_open(struct inode *inode, struct file *filp);
+int incfs_ioctl_read_verity_metadata(struct file *filp,
+				     const void __user *uarg);
+
+#else /* !CONFIG_FS_VERITY */
+
+static inline int incfs_ioctl_enable_verity(struct file *filp,
+					    const void __user *uarg)
+{
+	return -EOPNOTSUPP;
+}
+
+static inline int incfs_ioctl_measure_verity(struct file *filp,
+					     void __user *_uarg)
+{
+	return -EOPNOTSUPP;
+}
+
+static inline int incfs_fsverity_file_open(struct inode *inode,
+					   struct file *filp)
+{
+	return -EOPNOTSUPP;
+}
+
+static inline int incfs_ioctl_read_verity_metadata(struct file *filp,
+						const void __user *uarg)
+{
+	return -EOPNOTSUPP;
+}
+
+#endif /* !CONFIG_FS_VERITY */
+
+#endif
diff --git a/fs/incfs/vfs.c b/fs/incfs/vfs.c
new file mode 100644
index 0000000..a3e2877
--- /dev/null
+++ b/fs/incfs/vfs.c
@@ -0,0 +1,1992 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2018 Google LLC
+ */
+
+#include <linux/blkdev.h>
+#include <linux/compat.h>
+#include <linux/delay.h>
+#include <linux/file.h>
+#include <linux/fs.h>
+#include <linux/fs_stack.h>
+#include <linux/fsnotify.h>
+#include <linux/fsverity.h>
+#include <linux/mmap_lock.h>
+#include <linux/namei.h>
+#include <linux/pagemap.h>
+#include <linux/parser.h>
+#include <linux/seq_file.h>
+#include <linux/backing-dev-defs.h>
+
+#include <uapi/linux/incrementalfs.h>
+
+#include "vfs.h"
+
+#include "data_mgmt.h"
+#include "format.h"
+#include "internal.h"
+#include "pseudo_files.h"
+#include "sysfs.h"
+#include "verity.h"
+
+static int incfs_remount_fs(struct super_block *sb, int *flags, char *data);
+
+static int dentry_revalidate(struct dentry *dentry, unsigned int flags);
+static void dentry_release(struct dentry *d);
+
+static int iterate_incfs_dir(struct file *file, struct dir_context *ctx);
+static struct dentry *dir_lookup(struct inode *dir_inode,
+		struct dentry *dentry, unsigned int flags);
+static int dir_mkdir(struct user_namespace *ns, struct inode *dir,
+		     struct dentry *dentry, umode_t mode);
+static int dir_unlink(struct inode *dir, struct dentry *dentry);
+static int dir_link(struct dentry *old_dentry, struct inode *dir,
+			 struct dentry *new_dentry);
+static int dir_rmdir(struct inode *dir, struct dentry *dentry);
+static int dir_rename(struct inode *old_dir, struct dentry *old_dentry,
+		struct inode *new_dir, struct dentry *new_dentry,
+		unsigned int flags);
+
+static int file_open(struct inode *inode, struct file *file);
+static int file_release(struct inode *inode, struct file *file);
+static int read_single_page(struct file *f, struct page *page);
+static long dispatch_ioctl(struct file *f, unsigned int req, unsigned long arg);
+
+#ifdef CONFIG_COMPAT
+static long incfs_compat_ioctl(struct file *file, unsigned int cmd,
+			 unsigned long arg);
+#endif
+
+static struct inode *alloc_inode(struct super_block *sb);
+static void free_inode(struct inode *inode);
+static void evict_inode(struct inode *inode);
+
+static int incfs_setattr(struct user_namespace *ns, struct dentry *dentry,
+			 struct iattr *ia);
+static int incfs_getattr(struct user_namespace *ns, const struct path *path,
+			 struct kstat *stat, u32 request_mask,
+			 unsigned int query_flags);
+static ssize_t incfs_getxattr(struct dentry *d, const char *name,
+			void *value, size_t size);
+static ssize_t incfs_setxattr(struct user_namespace *ns, struct dentry *d,
+			      const char *name, const void *value, size_t size,
+			      int flags);
+static ssize_t incfs_listxattr(struct dentry *d, char *list, size_t size);
+
+static int show_options(struct seq_file *, struct dentry *);
+
+static const struct super_operations incfs_super_ops = {
+	.statfs = simple_statfs,
+	.remount_fs = incfs_remount_fs,
+	.alloc_inode	= alloc_inode,
+	.destroy_inode	= free_inode,
+	.evict_inode = evict_inode,
+	.show_options = show_options
+};
+
+static int dir_rename_wrap(struct user_namespace *ns, struct inode *old_dir,
+			   struct dentry *old_dentry, struct inode *new_dir,
+			   struct dentry *new_dentry, unsigned int flags)
+{
+	return dir_rename(old_dir, old_dentry, new_dir, new_dentry, flags);
+}
+
+static const struct inode_operations incfs_dir_inode_ops = {
+	.lookup = dir_lookup,
+	.mkdir = dir_mkdir,
+	.rename = dir_rename_wrap,
+	.unlink = dir_unlink,
+	.link = dir_link,
+	.rmdir = dir_rmdir,
+	.setattr = incfs_setattr,
+};
+
+static const struct file_operations incfs_dir_fops = {
+	.llseek = generic_file_llseek,
+	.read = generic_read_dir,
+	.iterate = iterate_incfs_dir,
+	.open = file_open,
+	.release = file_release,
+};
+
+static const struct dentry_operations incfs_dentry_ops = {
+	.d_revalidate = dentry_revalidate,
+	.d_release = dentry_release
+};
+
+static const struct address_space_operations incfs_address_space_ops = {
+	.readpage = read_single_page,
+	/* .readpages = readpages */
+};
+
+static vm_fault_t incfs_fault(struct vm_fault *vmf)
+{
+	vmf->flags &= ~FAULT_FLAG_ALLOW_RETRY;
+	return filemap_fault(vmf);
+}
+
+static const struct vm_operations_struct incfs_file_vm_ops = {
+	.fault		= incfs_fault,
+	.map_pages	= filemap_map_pages,
+	.page_mkwrite	= filemap_page_mkwrite,
+};
+
+/* This is used for a general mmap of a disk file */
+
+static int incfs_file_mmap(struct file *file, struct vm_area_struct *vma)
+{
+	struct address_space *mapping = file->f_mapping;
+
+	if (!mapping->a_ops->readpage)
+		return -ENOEXEC;
+	file_accessed(file);
+	vma->vm_ops = &incfs_file_vm_ops;
+	return 0;
+}
+
+const struct file_operations incfs_file_ops = {
+	.open = file_open,
+	.release = file_release,
+	.read_iter = generic_file_read_iter,
+	.mmap = incfs_file_mmap,
+	.splice_read = generic_file_splice_read,
+	.llseek = generic_file_llseek,
+	.unlocked_ioctl = dispatch_ioctl,
+#ifdef CONFIG_COMPAT
+	.compat_ioctl = incfs_compat_ioctl,
+#endif
+};
+
+const struct inode_operations incfs_file_inode_ops = {
+	.setattr = incfs_setattr,
+	.getattr = incfs_getattr,
+	.listxattr = incfs_listxattr
+};
+
+static int incfs_handler_getxattr(const struct xattr_handler *xh,
+				  struct dentry *d, struct inode *inode,
+				  const char *name, void *buffer, size_t size)
+{
+	return incfs_getxattr(d, name, buffer, size);
+}
+
+static int incfs_handler_setxattr(const struct xattr_handler *xh,
+				  struct user_namespace *ns,
+				  struct dentry *d, struct inode *inode,
+				  const char *name, const void *buffer,
+				  size_t size, int flags)
+{
+	return incfs_setxattr(ns, d, name, buffer, size, flags);
+}
+
+static const struct xattr_handler incfs_xattr_handler = {
+	.prefix = "",	/* AKA all attributes */
+	.get = incfs_handler_getxattr,
+	.set = incfs_handler_setxattr,
+};
+
+static const struct xattr_handler *incfs_xattr_ops[] = {
+	&incfs_xattr_handler,
+	NULL,
+};
+
+struct inode_search {
+	unsigned long ino;
+
+	struct dentry *backing_dentry;
+
+	size_t size;
+
+	bool verity;
+};
+
+enum parse_parameter {
+	Opt_read_timeout,
+	Opt_readahead_pages,
+	Opt_rlog_pages,
+	Opt_rlog_wakeup_cnt,
+	Opt_report_uid,
+	Opt_sysfs_name,
+	Opt_err
+};
+
+static const match_table_t option_tokens = {
+	{ Opt_read_timeout, "read_timeout_ms=%u" },
+	{ Opt_readahead_pages, "readahead=%u" },
+	{ Opt_rlog_pages, "rlog_pages=%u" },
+	{ Opt_rlog_wakeup_cnt, "rlog_wakeup_cnt=%u" },
+	{ Opt_report_uid, "report_uid" },
+	{ Opt_sysfs_name, "sysfs_name=%s" },
+	{ Opt_err, NULL }
+};
+
+static void free_options(struct mount_options *opts)
+{
+	kfree(opts->sysfs_name);
+	opts->sysfs_name = NULL;
+}
+
+static int parse_options(struct mount_options *opts, char *str)
+{
+	substring_t args[MAX_OPT_ARGS];
+	int value;
+	char *position;
+
+	if (opts == NULL)
+		return -EFAULT;
+
+	*opts = (struct mount_options) {
+		.read_timeout_ms = 1000, /* Default: 1s */
+		.readahead_pages = 10,
+		.read_log_pages = 2,
+		.read_log_wakeup_count = 10,
+	};
+
+	if (str == NULL || *str == 0)
+		return 0;
+
+	while ((position = strsep(&str, ",")) != NULL) {
+		int token;
+
+		if (!*position)
+			continue;
+
+		token = match_token(position, option_tokens, args);
+
+		switch (token) {
+		case Opt_read_timeout:
+			if (match_int(&args[0], &value))
+				return -EINVAL;
+			if (value > 3600000)
+				return -EINVAL;
+			opts->read_timeout_ms = value;
+			break;
+		case Opt_readahead_pages:
+			if (match_int(&args[0], &value))
+				return -EINVAL;
+			opts->readahead_pages = value;
+			break;
+		case Opt_rlog_pages:
+			if (match_int(&args[0], &value))
+				return -EINVAL;
+			opts->read_log_pages = value;
+			break;
+		case Opt_rlog_wakeup_cnt:
+			if (match_int(&args[0], &value))
+				return -EINVAL;
+			opts->read_log_wakeup_count = value;
+			break;
+		case Opt_report_uid:
+			opts->report_uid = true;
+			break;
+		case Opt_sysfs_name:
+			opts->sysfs_name = match_strdup(&args[0]);
+			break;
+		default:
+			free_options(opts);
+			return -EINVAL;
+		}
+	}
+
+	return 0;
+}
+
+/* Read file size from the attribute. Quicker than reading the header */
+static u64 read_size_attr(struct dentry *backing_dentry)
+{
+	__le64 attr_value;
+	ssize_t bytes_read;
+
+	bytes_read = vfs_getxattr(&init_user_ns, backing_dentry, INCFS_XATTR_SIZE_NAME,
+			(char *)&attr_value, sizeof(attr_value));
+
+	if (bytes_read != sizeof(attr_value))
+		return 0;
+
+	return le64_to_cpu(attr_value);
+}
+
+/* Read verity flag from the attribute. Quicker than reading the header */
+static bool read_verity_attr(struct dentry *backing_dentry)
+{
+	return vfs_getxattr(&init_user_ns, backing_dentry, INCFS_XATTR_VERITY_NAME, NULL, 0)
+		>= 0;
+}
+
+static int inode_test(struct inode *inode, void *opaque)
+{
+	struct inode_search *search = opaque;
+	struct inode_info *node = get_incfs_node(inode);
+	struct inode *backing_inode = d_inode(search->backing_dentry);
+
+	if (!node)
+		return 0;
+
+	return node->n_backing_inode == backing_inode &&
+		inode->i_ino == search->ino;
+}
+
+static int inode_set(struct inode *inode, void *opaque)
+{
+	struct inode_search *search = opaque;
+	struct inode_info *node = get_incfs_node(inode);
+	struct dentry *backing_dentry = search->backing_dentry;
+	struct inode *backing_inode = d_inode(backing_dentry);
+
+	fsstack_copy_attr_all(inode, backing_inode);
+	if (S_ISREG(inode->i_mode)) {
+		u64 size = search->size;
+
+		inode->i_size = size;
+		inode->i_blocks = get_blocks_count_for_size(size);
+		inode->i_mapping->a_ops = &incfs_address_space_ops;
+		inode->i_op = &incfs_file_inode_ops;
+		inode->i_fop = &incfs_file_ops;
+		inode->i_mode &= ~0222;
+		if (search->verity)
+			inode_set_flags(inode, S_VERITY, S_VERITY);
+	} else if (S_ISDIR(inode->i_mode)) {
+		inode->i_size = 0;
+		inode->i_blocks = 1;
+		inode->i_mapping->a_ops = &incfs_address_space_ops;
+		inode->i_op = &incfs_dir_inode_ops;
+		inode->i_fop = &incfs_dir_fops;
+	} else {
+		pr_warn_once("incfs: Unexpected inode type\n");
+		return -EBADF;
+	}
+
+	ihold(backing_inode);
+	node->n_backing_inode = backing_inode;
+	node->n_mount_info = get_mount_info(inode->i_sb);
+	inode->i_ctime = backing_inode->i_ctime;
+	inode->i_mtime = backing_inode->i_mtime;
+	inode->i_atime = backing_inode->i_atime;
+	inode->i_ino = backing_inode->i_ino;
+	if (backing_inode->i_ino < INCFS_START_INO_RANGE) {
+		pr_warn("incfs: ino conflict with backing FS %ld\n",
+			backing_inode->i_ino);
+	}
+
+	return 0;
+}
+
+static struct inode *fetch_regular_inode(struct super_block *sb,
+					struct dentry *backing_dentry)
+{
+	struct inode *backing_inode = d_inode(backing_dentry);
+	struct inode_search search = {
+		.ino = backing_inode->i_ino,
+		.backing_dentry = backing_dentry,
+		.size = read_size_attr(backing_dentry),
+		.verity = read_verity_attr(backing_dentry),
+	};
+	struct inode *inode = iget5_locked(sb, search.ino, inode_test,
+				inode_set, &search);
+
+	if (!inode)
+		return ERR_PTR(-ENOMEM);
+
+	if (inode->i_state & I_NEW)
+		unlock_new_inode(inode);
+
+	return inode;
+}
+
+static int iterate_incfs_dir(struct file *file, struct dir_context *ctx)
+{
+	struct dir_file *dir = get_incfs_dir_file(file);
+	int error = 0;
+	struct mount_info *mi = get_mount_info(file_superblock(file));
+	bool root;
+
+	if (!dir) {
+		error = -EBADF;
+		goto out;
+	}
+
+	root = dir->backing_dir->f_inode
+			== d_inode(mi->mi_backing_dir_path.dentry);
+
+	if (root) {
+		error = emit_pseudo_files(ctx);
+		if (error)
+			goto out;
+	}
+
+	ctx->pos -= PSEUDO_FILE_COUNT;
+	error = iterate_dir(dir->backing_dir, ctx);
+	ctx->pos += PSEUDO_FILE_COUNT;
+	file->f_pos = dir->backing_dir->f_pos;
+out:
+	if (error)
+		pr_warn("incfs: %s %s %d\n", __func__,
+			file->f_path.dentry->d_name.name, error);
+	return error;
+}
+
+static int incfs_init_dentry(struct dentry *dentry, struct path *path)
+{
+	struct dentry_info *d_info = NULL;
+
+	if (!dentry || !path)
+		return -EFAULT;
+
+	d_info = kzalloc(sizeof(*d_info), GFP_NOFS);
+	if (!d_info)
+		return -ENOMEM;
+
+	d_info->backing_path = *path;
+	path_get(path);
+
+	dentry->d_fsdata = d_info;
+	return 0;
+}
+
+static struct dentry *open_or_create_special_dir(struct dentry *backing_dir,
+						 const char *name,
+						 bool *created)
+{
+	struct dentry *index_dentry;
+	struct inode *backing_inode = d_inode(backing_dir);
+	int err = 0;
+
+	index_dentry = incfs_lookup_dentry(backing_dir, name);
+	if (!index_dentry) {
+		return ERR_PTR(-EINVAL);
+	} else if (IS_ERR(index_dentry)) {
+		return index_dentry;
+	} else if (d_really_is_positive(index_dentry)) {
+		/* Index already exists. */
+		*created = false;
+		return index_dentry;
+	}
+
+	/* Index needs to be created. */
+	inode_lock_nested(backing_inode, I_MUTEX_PARENT);
+	err = vfs_mkdir(&init_user_ns, backing_inode, index_dentry, 0777);
+	inode_unlock(backing_inode);
+
+	if (err) {
+		dput(index_dentry);
+		return ERR_PTR(err);
+	}
+
+	if (!d_really_is_positive(index_dentry) ||
+		unlikely(d_unhashed(index_dentry))) {
+		dput(index_dentry);
+		return ERR_PTR(-EINVAL);
+	}
+
+	*created = true;
+	return index_dentry;
+}
+
+static int read_single_page_timeouts(struct data_file *df, struct file *f,
+				     int block_index, struct mem_range range,
+				     struct mem_range tmp,
+				     unsigned int *delayed_min_us)
+{
+	struct mount_info *mi = df->df_mount_info;
+	struct incfs_read_data_file_timeouts timeouts = {
+		.max_pending_time_us = U32_MAX,
+	};
+	int uid = current_uid().val;
+	int i;
+
+	spin_lock(&mi->mi_per_uid_read_timeouts_lock);
+	for (i = 0; i < mi->mi_per_uid_read_timeouts_size /
+		sizeof(*mi->mi_per_uid_read_timeouts); ++i) {
+		struct incfs_per_uid_read_timeouts *t =
+			&mi->mi_per_uid_read_timeouts[i];
+
+		if(t->uid == uid) {
+			timeouts.min_time_us = t->min_time_us;
+			timeouts.min_pending_time_us = t->min_pending_time_us;
+			timeouts.max_pending_time_us = t->max_pending_time_us;
+			break;
+		}
+	}
+	spin_unlock(&mi->mi_per_uid_read_timeouts_lock);
+	if (timeouts.max_pending_time_us == U32_MAX) {
+		u64 read_timeout_us = (u64)mi->mi_options.read_timeout_ms *
+					1000;
+
+		timeouts.max_pending_time_us = read_timeout_us <= U32_MAX ?
+					       read_timeout_us : U32_MAX;
+	}
+
+	return incfs_read_data_file_block(range, f, block_index, tmp,
+					  &timeouts, delayed_min_us);
+}
+
+static int usleep_interruptible(u32 us)
+{
+	/* See:
+	 * https://www.kernel.org/doc/Documentation/timers/timers-howto.txt
+	 * for explanation
+	 */
+	if (us < 10) {
+		udelay(us);
+		return 0;
+	} else if (us < 20000) {
+		usleep_range(us, us + us / 10);
+		return 0;
+	} else
+		return msleep_interruptible(us / 1000);
+}
+
+static int read_single_page(struct file *f, struct page *page)
+{
+	loff_t offset = 0;
+	loff_t size = 0;
+	ssize_t bytes_to_read = 0;
+	ssize_t read_result = 0;
+	struct data_file *df = get_incfs_data_file(f);
+	int result = 0;
+	void *page_start;
+	int block_index;
+	unsigned int delayed_min_us = 0;
+
+	if (!df) {
+		SetPageError(page);
+		unlock_page(page);
+		return -EBADF;
+	}
+
+	page_start = kmap(page);
+	offset = page_offset(page);
+	block_index = (offset + df->df_mapped_offset) /
+		INCFS_DATA_FILE_BLOCK_SIZE;
+	size = df->df_size;
+
+	if (offset < size) {
+		struct mem_range tmp = {
+			.len = 2 * INCFS_DATA_FILE_BLOCK_SIZE
+		};
+		tmp.data = (u8 *)__get_free_pages(GFP_NOFS, get_order(tmp.len));
+		if (!tmp.data) {
+			read_result = -ENOMEM;
+			goto err;
+		}
+		bytes_to_read = min_t(loff_t, size - offset, PAGE_SIZE);
+
+		read_result = read_single_page_timeouts(df, f, block_index,
+					range(page_start, bytes_to_read), tmp,
+					&delayed_min_us);
+
+		free_pages((unsigned long)tmp.data, get_order(tmp.len));
+	} else {
+		bytes_to_read = 0;
+		read_result = 0;
+	}
+
+err:
+	if (read_result < 0)
+		result = read_result;
+	else if (read_result < PAGE_SIZE)
+		zero_user(page, read_result, PAGE_SIZE - read_result);
+
+	if (result == 0)
+		SetPageUptodate(page);
+	else
+		SetPageError(page);
+
+	flush_dcache_page(page);
+	kunmap(page);
+	unlock_page(page);
+	if (delayed_min_us)
+		usleep_interruptible(delayed_min_us);
+	return result;
+}
+
+int incfs_link(struct dentry *what, struct dentry *where)
+{
+	struct dentry *parent_dentry = dget_parent(where);
+	struct inode *pinode = d_inode(parent_dentry);
+	int error = 0;
+
+	inode_lock_nested(pinode, I_MUTEX_PARENT);
+	error = vfs_link(what, &init_user_ns, pinode, where, NULL);
+	inode_unlock(pinode);
+
+	dput(parent_dentry);
+	return error;
+}
+
+int incfs_unlink(struct dentry *dentry)
+{
+	struct dentry *parent_dentry = dget_parent(dentry);
+	struct inode *pinode = d_inode(parent_dentry);
+	int error = 0;
+
+	inode_lock_nested(pinode, I_MUTEX_PARENT);
+	error = vfs_unlink(&init_user_ns, pinode, dentry, NULL);
+	inode_unlock(pinode);
+
+	dput(parent_dentry);
+	return error;
+}
+
+static int incfs_rmdir(struct dentry *dentry)
+{
+	struct dentry *parent_dentry = dget_parent(dentry);
+	struct inode *pinode = d_inode(parent_dentry);
+	int error = 0;
+
+	inode_lock_nested(pinode, I_MUTEX_PARENT);
+	error = vfs_rmdir(&init_user_ns, pinode, dentry);
+	inode_unlock(pinode);
+
+	dput(parent_dentry);
+	return error;
+}
+
+static void notify_unlink(struct dentry *dentry, const char *file_id_str,
+			  const char *special_directory)
+{
+	struct dentry *root = dentry;
+	struct dentry *file = NULL;
+	struct dentry *dir = NULL;
+	int error = 0;
+	bool take_lock = root->d_parent != root->d_parent->d_parent;
+
+	while (root != root->d_parent)
+		root = root->d_parent;
+
+	if (take_lock)
+		dir = incfs_lookup_dentry(root, special_directory);
+	else
+		dir = lookup_one_len(special_directory, root,
+				     strlen(special_directory));
+
+	if (IS_ERR(dir)) {
+		error = PTR_ERR(dir);
+		goto out;
+	}
+	if (d_is_negative(dir)) {
+		error = -ENOENT;
+		goto out;
+	}
+
+	file = incfs_lookup_dentry(dir, file_id_str);
+	if (IS_ERR(file)) {
+		error = PTR_ERR(file);
+		goto out;
+	}
+	if (d_is_negative(file)) {
+		error = -ENOENT;
+		goto out;
+	}
+
+	fsnotify_unlink(d_inode(dir), file);
+	d_delete(file);
+
+out:
+	if (error)
+		pr_warn("%s failed with error %d\n", __func__, error);
+
+	dput(dir);
+	dput(file);
+}
+
+static void handle_file_completed(struct file *f, struct data_file *df)
+{
+	struct backing_file_context *bfc;
+	struct mount_info *mi = df->df_mount_info;
+	char *file_id_str = NULL;
+	struct dentry *incomplete_file_dentry = NULL;
+	const struct cred *old_cred = override_creds(mi->mi_owner);
+	int error;
+
+	/* Truncate file to remove any preallocated space */
+	bfc = df->df_backing_file_context;
+	if (bfc) {
+		struct file *f = bfc->bc_file;
+
+		if (f) {
+			loff_t size = i_size_read(file_inode(f));
+
+			error = vfs_truncate(&f->f_path, size);
+			if (error)
+				/* No useful action on failure */
+				pr_warn("incfs: Failed to truncate complete file: %d\n",
+					error);
+		}
+	}
+
+	/* This is best effort - there is no useful action to take on failure */
+	file_id_str = file_id_to_str(df->df_id);
+	if (!file_id_str)
+		goto out;
+
+	incomplete_file_dentry = incfs_lookup_dentry(
+					df->df_mount_info->mi_incomplete_dir,
+					file_id_str);
+	if (!incomplete_file_dentry || IS_ERR(incomplete_file_dentry)) {
+		incomplete_file_dentry = NULL;
+		goto out;
+	}
+
+	if (!d_really_is_positive(incomplete_file_dentry))
+		goto out;
+
+	vfs_fsync(df->df_backing_file_context->bc_file, 0);
+	error = incfs_unlink(incomplete_file_dentry);
+	if (error) {
+		pr_warn("incfs: Deleting incomplete file failed: %d\n", error);
+		goto out;
+	}
+
+	notify_unlink(f->f_path.dentry, file_id_str, INCFS_INCOMPLETE_NAME);
+
+out:
+	dput(incomplete_file_dentry);
+	kfree(file_id_str);
+	revert_creds(old_cred);
+}
+
+static long ioctl_fill_blocks(struct file *f, void __user *arg)
+{
+	struct incfs_fill_blocks __user *usr_fill_blocks = arg;
+	struct incfs_fill_blocks fill_blocks;
+	struct incfs_fill_block __user *usr_fill_block_array;
+	struct data_file *df = get_incfs_data_file(f);
+	struct incfs_file_data *fd = f->private_data;
+	const ssize_t data_buf_size = 2 * INCFS_DATA_FILE_BLOCK_SIZE;
+	u8 *data_buf = NULL;
+	ssize_t error = 0;
+	int i = 0;
+	bool complete = false;
+
+	if (!df)
+		return -EBADF;
+
+	if (!fd || fd->fd_fill_permission != CAN_FILL)
+		return -EPERM;
+
+	if (copy_from_user(&fill_blocks, usr_fill_blocks, sizeof(fill_blocks)))
+		return -EFAULT;
+
+	usr_fill_block_array = u64_to_user_ptr(fill_blocks.fill_blocks);
+	data_buf = (u8 *)__get_free_pages(GFP_NOFS | __GFP_COMP,
+					  get_order(data_buf_size));
+	if (!data_buf)
+		return -ENOMEM;
+
+	for (i = 0; i < fill_blocks.count; i++) {
+		struct incfs_fill_block fill_block = {};
+
+		if (copy_from_user(&fill_block, &usr_fill_block_array[i],
+				   sizeof(fill_block)) > 0) {
+			error = -EFAULT;
+			break;
+		}
+
+		if (fill_block.data_len > data_buf_size) {
+			error = -E2BIG;
+			break;
+		}
+
+		if (copy_from_user(data_buf, u64_to_user_ptr(fill_block.data),
+				   fill_block.data_len) > 0) {
+			error = -EFAULT;
+			break;
+		}
+		fill_block.data = 0; /* To make sure nobody uses it. */
+		if (fill_block.flags & INCFS_BLOCK_FLAGS_HASH) {
+			error = incfs_process_new_hash_block(df, &fill_block,
+							     data_buf);
+		} else {
+			error = incfs_process_new_data_block(df, &fill_block,
+							data_buf, &complete);
+		}
+		if (error)
+			break;
+	}
+
+	if (data_buf)
+		free_pages((unsigned long)data_buf, get_order(data_buf_size));
+
+	if (complete)
+		handle_file_completed(f, df);
+
+	/*
+	 * Only report the error if no records were processed, otherwise
+	 * just return how many were processed successfully.
+	 */
+	if (i == 0)
+		return error;
+
+	return i;
+}
+
+static long ioctl_read_file_signature(struct file *f, void __user *arg)
+{
+	struct incfs_get_file_sig_args __user *args_usr_ptr = arg;
+	struct incfs_get_file_sig_args args = {};
+	u8 *sig_buffer = NULL;
+	size_t sig_buf_size = 0;
+	int error = 0;
+	int read_result = 0;
+	struct data_file *df = get_incfs_data_file(f);
+
+	if (!df)
+		return -EINVAL;
+
+	if (copy_from_user(&args, args_usr_ptr, sizeof(args)) > 0)
+		return -EINVAL;
+
+	sig_buf_size = args.file_signature_buf_size;
+	if (sig_buf_size > INCFS_MAX_SIGNATURE_SIZE)
+		return -E2BIG;
+
+	sig_buffer = kzalloc(sig_buf_size, GFP_NOFS | __GFP_COMP);
+	if (!sig_buffer)
+		return -ENOMEM;
+
+	read_result = incfs_read_file_signature(df,
+			range(sig_buffer, sig_buf_size));
+
+	if (read_result < 0) {
+		error = read_result;
+		goto out;
+	}
+
+	if (copy_to_user(u64_to_user_ptr(args.file_signature), sig_buffer,
+			read_result)) {
+		error = -EFAULT;
+		goto out;
+	}
+
+	args.file_signature_len_out = read_result;
+	if (copy_to_user(args_usr_ptr, &args, sizeof(args)))
+		error = -EFAULT;
+
+out:
+	kfree(sig_buffer);
+
+	return error;
+}
+
+static long ioctl_get_filled_blocks(struct file *f, void __user *arg)
+{
+	struct incfs_get_filled_blocks_args __user *args_usr_ptr = arg;
+	struct incfs_get_filled_blocks_args args = {};
+	struct data_file *df = get_incfs_data_file(f);
+	struct incfs_file_data *fd = f->private_data;
+	int error;
+
+	if (!df || !fd)
+		return -EINVAL;
+
+	if (fd->fd_fill_permission != CAN_FILL)
+		return -EPERM;
+
+	if (copy_from_user(&args, args_usr_ptr, sizeof(args)) > 0)
+		return -EINVAL;
+
+	error = incfs_get_filled_blocks(df, fd, &args);
+
+	if (copy_to_user(args_usr_ptr, &args, sizeof(args)))
+		return -EFAULT;
+
+	return error;
+}
+
+static long ioctl_get_block_count(struct file *f, void __user *arg)
+{
+	struct incfs_get_block_count_args __user *args_usr_ptr = arg;
+	struct incfs_get_block_count_args args = {};
+	struct data_file *df = get_incfs_data_file(f);
+
+	if (!df)
+		return -EINVAL;
+
+	args.total_data_blocks_out = df->df_data_block_count;
+	args.filled_data_blocks_out = atomic_read(&df->df_data_blocks_written);
+	args.total_hash_blocks_out = df->df_total_block_count -
+		df->df_data_block_count;
+	args.filled_hash_blocks_out = atomic_read(&df->df_hash_blocks_written);
+
+	if (copy_to_user(args_usr_ptr, &args, sizeof(args)))
+		return -EFAULT;
+
+	return 0;
+}
+
+static int incfs_ioctl_get_flags(struct file *f, void __user *arg)
+{
+	u32 flags = IS_VERITY(file_inode(f)) ? FS_VERITY_FL : 0;
+
+	return put_user(flags, (int __user *) arg);
+}
+
+static long dispatch_ioctl(struct file *f, unsigned int req, unsigned long arg)
+{
+	switch (req) {
+	case INCFS_IOC_FILL_BLOCKS:
+		return ioctl_fill_blocks(f, (void __user *)arg);
+	case INCFS_IOC_READ_FILE_SIGNATURE:
+		return ioctl_read_file_signature(f, (void __user *)arg);
+	case INCFS_IOC_GET_FILLED_BLOCKS:
+		return ioctl_get_filled_blocks(f, (void __user *)arg);
+	case INCFS_IOC_GET_BLOCK_COUNT:
+		return ioctl_get_block_count(f, (void __user *)arg);
+	case FS_IOC_ENABLE_VERITY:
+		return incfs_ioctl_enable_verity(f, (const void __user *)arg);
+	case FS_IOC_GETFLAGS:
+		return incfs_ioctl_get_flags(f, (void __user *) arg);
+	case FS_IOC_MEASURE_VERITY:
+		return incfs_ioctl_measure_verity(f, (void __user *)arg);
+	case FS_IOC_READ_VERITY_METADATA:
+		return incfs_ioctl_read_verity_metadata(f, (void __user *)arg);
+	default:
+		return -EINVAL;
+	}
+}
+
+#ifdef CONFIG_COMPAT
+static long incfs_compat_ioctl(struct file *file, unsigned int cmd,
+			       unsigned long arg)
+{
+	switch (cmd) {
+	case FS_IOC32_GETFLAGS:
+		cmd = FS_IOC_GETFLAGS;
+		break;
+	case INCFS_IOC_FILL_BLOCKS:
+	case INCFS_IOC_READ_FILE_SIGNATURE:
+	case INCFS_IOC_GET_FILLED_BLOCKS:
+	case INCFS_IOC_GET_BLOCK_COUNT:
+	case FS_IOC_ENABLE_VERITY:
+	case FS_IOC_MEASURE_VERITY:
+	case FS_IOC_READ_VERITY_METADATA:
+		break;
+	default:
+		return -ENOIOCTLCMD;
+	}
+	return dispatch_ioctl(file, cmd, (unsigned long) compat_ptr(arg));
+}
+#endif
+
+static struct dentry *dir_lookup(struct inode *dir_inode, struct dentry *dentry,
+				 unsigned int flags)
+{
+	struct mount_info *mi = get_mount_info(dir_inode->i_sb);
+	struct dentry *dir_dentry = NULL;
+	struct dentry *backing_dentry = NULL;
+	struct path dir_backing_path = {};
+	struct inode_info *dir_info = get_incfs_node(dir_inode);
+	int err = 0;
+
+	if (!mi || !dir_info || !dir_info->n_backing_inode)
+		return ERR_PTR(-EBADF);
+
+	if (d_inode(mi->mi_backing_dir_path.dentry) ==
+		dir_info->n_backing_inode) {
+		/* We do lookup in the FS root. Show pseudo files. */
+		err = dir_lookup_pseudo_files(dir_inode->i_sb, dentry);
+		if (err != -ENOENT)
+			goto out;
+		err = 0;
+	}
+
+	dir_dentry = dget_parent(dentry);
+	get_incfs_backing_path(dir_dentry, &dir_backing_path);
+	backing_dentry = incfs_lookup_dentry(dir_backing_path.dentry,
+						dentry->d_name.name);
+
+	if (!backing_dentry || IS_ERR(backing_dentry)) {
+		err = IS_ERR(backing_dentry)
+			? PTR_ERR(backing_dentry)
+			: -EFAULT;
+		backing_dentry = NULL;
+		goto out;
+	} else {
+		struct inode *inode = NULL;
+		struct path backing_path = {
+			.mnt = dir_backing_path.mnt,
+			.dentry = backing_dentry
+		};
+
+		err = incfs_init_dentry(dentry, &backing_path);
+		if (err)
+			goto out;
+
+		if (!d_really_is_positive(backing_dentry)) {
+			/*
+			 * No such entry found in the backing dir.
+			 * Create a negative entry.
+			 */
+			d_add(dentry, NULL);
+			err = 0;
+			goto out;
+		}
+
+		if (d_inode(backing_dentry)->i_sb !=
+				dir_info->n_backing_inode->i_sb) {
+			/*
+			 * Somehow after the path lookup we ended up in a
+			 * different fs mount. If we keep going it's going
+			 * to end badly.
+			 */
+			err = -EXDEV;
+			goto out;
+		}
+
+		inode = fetch_regular_inode(dir_inode->i_sb, backing_dentry);
+		if (IS_ERR(inode)) {
+			err = PTR_ERR(inode);
+			goto out;
+		}
+
+		d_add(dentry, inode);
+	}
+
+out:
+	dput(dir_dentry);
+	dput(backing_dentry);
+	path_put(&dir_backing_path);
+	if (err)
+		pr_debug("incfs: %s %s %d\n", __func__,
+			 dentry->d_name.name, err);
+	return ERR_PTR(err);
+}
+
+static int dir_mkdir(struct user_namespace *ns, struct inode *dir, struct dentry *dentry, umode_t mode)
+{
+	struct mount_info *mi = get_mount_info(dir->i_sb);
+	struct inode_info *dir_node = get_incfs_node(dir);
+	struct dentry *backing_dentry = NULL;
+	struct path backing_path = {};
+	int err = 0;
+
+
+	if (!mi || !dir_node || !dir_node->n_backing_inode)
+		return -EBADF;
+
+	err = mutex_lock_interruptible(&mi->mi_dir_struct_mutex);
+	if (err)
+		return err;
+
+	get_incfs_backing_path(dentry, &backing_path);
+	backing_dentry = backing_path.dentry;
+
+	if (!backing_dentry) {
+		err = -EBADF;
+		goto path_err;
+	}
+
+	if (backing_dentry->d_parent == mi->mi_index_dir) {
+		/* Can't create a subdir inside .index */
+		err = -EBUSY;
+		goto out;
+	}
+
+	if (backing_dentry->d_parent == mi->mi_incomplete_dir) {
+		/* Can't create a subdir inside .incomplete */
+		err = -EBUSY;
+		goto out;
+	}
+	inode_lock_nested(dir_node->n_backing_inode, I_MUTEX_PARENT);
+	err = vfs_mkdir(ns, dir_node->n_backing_inode, backing_dentry, mode | 0222);
+	inode_unlock(dir_node->n_backing_inode);
+	if (!err) {
+		struct inode *inode = NULL;
+
+		if (d_really_is_negative(backing_dentry) ||
+			unlikely(d_unhashed(backing_dentry))) {
+			err = -EINVAL;
+			goto out;
+		}
+
+		inode = fetch_regular_inode(dir->i_sb, backing_dentry);
+		if (IS_ERR(inode)) {
+			err = PTR_ERR(inode);
+			goto out;
+		}
+		d_instantiate(dentry, inode);
+	}
+
+out:
+	if (d_really_is_negative(dentry))
+		d_drop(dentry);
+	path_put(&backing_path);
+
+path_err:
+	mutex_unlock(&mi->mi_dir_struct_mutex);
+	if (err)
+		pr_debug("incfs: %s err:%d\n", __func__, err);
+	return err;
+}
+
+/*
+ * Delete file referenced by backing_dentry and if appropriate its hardlink
+ * from .index and .incomplete
+ */
+static int file_delete(struct mount_info *mi, struct dentry *dentry,
+			struct dentry *backing_dentry, int nlink)
+{
+	struct dentry *index_file_dentry = NULL;
+	struct dentry *incomplete_file_dentry = NULL;
+	/* 2 chars per byte of file ID + 1 char for \0 */
+	char file_id_str[2 * sizeof(incfs_uuid_t) + 1] = {0};
+	ssize_t uuid_size = 0;
+	int error = 0;
+
+	WARN_ON(!mutex_is_locked(&mi->mi_dir_struct_mutex));
+
+	if (nlink > 3)
+		goto just_unlink;
+
+	uuid_size = vfs_getxattr(&init_user_ns, backing_dentry, INCFS_XATTR_ID_NAME,
+			file_id_str, 2 * sizeof(incfs_uuid_t));
+	if (uuid_size < 0) {
+		error = uuid_size;
+		goto out;
+	}
+
+	if (uuid_size != 2 * sizeof(incfs_uuid_t)) {
+		error = -EBADMSG;
+		goto out;
+	}
+
+	index_file_dentry = incfs_lookup_dentry(mi->mi_index_dir, file_id_str);
+	if (IS_ERR(index_file_dentry)) {
+		error = PTR_ERR(index_file_dentry);
+		index_file_dentry = NULL;
+		goto out;
+	}
+
+	if (d_really_is_positive(index_file_dentry) && nlink > 0)
+		nlink--;
+
+	if (nlink > 2)
+		goto just_unlink;
+
+	incomplete_file_dentry = incfs_lookup_dentry(mi->mi_incomplete_dir,
+						     file_id_str);
+	if (IS_ERR(incomplete_file_dentry)) {
+		error = PTR_ERR(incomplete_file_dentry);
+		incomplete_file_dentry = NULL;
+		goto out;
+	}
+
+	if (d_really_is_positive(incomplete_file_dentry) && nlink > 0)
+		nlink--;
+
+	if (nlink > 1)
+		goto just_unlink;
+
+	if (d_really_is_positive(index_file_dentry)) {
+		error = incfs_unlink(index_file_dentry);
+		if (error)
+			goto out;
+		notify_unlink(dentry, file_id_str, INCFS_INDEX_NAME);
+	}
+
+	if (d_really_is_positive(incomplete_file_dentry)) {
+		error = incfs_unlink(incomplete_file_dentry);
+		if (error)
+			goto out;
+		notify_unlink(dentry, file_id_str, INCFS_INCOMPLETE_NAME);
+	}
+
+just_unlink:
+	error = incfs_unlink(backing_dentry);
+
+out:
+	dput(index_file_dentry);
+	dput(incomplete_file_dentry);
+	if (error)
+		pr_debug("incfs: delete_file_from_index err:%d\n", error);
+	return error;
+}
+
+static int dir_unlink(struct inode *dir, struct dentry *dentry)
+{
+	struct mount_info *mi = get_mount_info(dir->i_sb);
+	struct path backing_path = {};
+	struct kstat stat;
+	int err = 0;
+
+	if (!mi)
+		return -EBADF;
+
+	err = mutex_lock_interruptible(&mi->mi_dir_struct_mutex);
+	if (err)
+		return err;
+
+	get_incfs_backing_path(dentry, &backing_path);
+	if (!backing_path.dentry) {
+		err = -EBADF;
+		goto path_err;
+	}
+
+	if (backing_path.dentry->d_parent == mi->mi_index_dir) {
+		/* Direct unlink from .index are not allowed. */
+		err = -EBUSY;
+		goto out;
+	}
+
+	if (backing_path.dentry->d_parent == mi->mi_incomplete_dir) {
+		/* Direct unlink from .incomplete are not allowed. */
+		err = -EBUSY;
+		goto out;
+	}
+
+	err = vfs_getattr(&backing_path, &stat, STATX_NLINK,
+			  AT_STATX_SYNC_AS_STAT);
+	if (err)
+		goto out;
+
+	err = file_delete(mi, dentry, backing_path.dentry, stat.nlink);
+
+	d_drop(dentry);
+out:
+	path_put(&backing_path);
+path_err:
+	if (err)
+		pr_debug("incfs: %s err:%d\n", __func__, err);
+	mutex_unlock(&mi->mi_dir_struct_mutex);
+	return err;
+}
+
+static int dir_link(struct dentry *old_dentry, struct inode *dir,
+			 struct dentry *new_dentry)
+{
+	struct mount_info *mi = get_mount_info(dir->i_sb);
+	struct path backing_old_path = {};
+	struct path backing_new_path = {};
+	int error = 0;
+
+	if (!mi)
+		return -EBADF;
+
+	error = mutex_lock_interruptible(&mi->mi_dir_struct_mutex);
+	if (error)
+		return error;
+
+	get_incfs_backing_path(old_dentry, &backing_old_path);
+	get_incfs_backing_path(new_dentry, &backing_new_path);
+
+	if (backing_new_path.dentry->d_parent == mi->mi_index_dir) {
+		/* Can't link to .index */
+		error = -EBUSY;
+		goto out;
+	}
+
+	if (backing_new_path.dentry->d_parent == mi->mi_incomplete_dir) {
+		/* Can't link to .incomplete */
+		error = -EBUSY;
+		goto out;
+	}
+
+	error = incfs_link(backing_old_path.dentry, backing_new_path.dentry);
+	if (!error) {
+		struct inode *inode = NULL;
+		struct dentry *bdentry = backing_new_path.dentry;
+
+		if (d_really_is_negative(bdentry)) {
+			error = -EINVAL;
+			goto out;
+		}
+
+		inode = fetch_regular_inode(dir->i_sb, bdentry);
+		if (IS_ERR(inode)) {
+			error = PTR_ERR(inode);
+			goto out;
+		}
+		d_instantiate(new_dentry, inode);
+	}
+
+out:
+	path_put(&backing_old_path);
+	path_put(&backing_new_path);
+	if (error)
+		pr_debug("incfs: %s err:%d\n", __func__, error);
+	mutex_unlock(&mi->mi_dir_struct_mutex);
+	return error;
+}
+
+static int dir_rmdir(struct inode *dir, struct dentry *dentry)
+{
+	struct mount_info *mi = get_mount_info(dir->i_sb);
+	struct path backing_path = {};
+	int err = 0;
+
+	if (!mi)
+		return -EBADF;
+
+	err = mutex_lock_interruptible(&mi->mi_dir_struct_mutex);
+	if (err)
+		return err;
+
+	get_incfs_backing_path(dentry, &backing_path);
+	if (!backing_path.dentry) {
+		err = -EBADF;
+		goto path_err;
+	}
+
+	if (backing_path.dentry == mi->mi_index_dir) {
+		/* Can't delete .index */
+		err = -EBUSY;
+		goto out;
+	}
+
+	if (backing_path.dentry == mi->mi_incomplete_dir) {
+		/* Can't delete .incomplete */
+		err = -EBUSY;
+		goto out;
+	}
+
+	err = incfs_rmdir(backing_path.dentry);
+	if (!err)
+		d_drop(dentry);
+out:
+	path_put(&backing_path);
+
+path_err:
+	if (err)
+		pr_debug("incfs: %s err:%d\n", __func__, err);
+	mutex_unlock(&mi->mi_dir_struct_mutex);
+	return err;
+}
+
+static int dir_rename(struct inode *old_dir, struct dentry *old_dentry,
+		struct inode *new_dir, struct dentry *new_dentry,
+		unsigned int flags)
+{
+	struct mount_info *mi = get_mount_info(old_dir->i_sb);
+	struct dentry *backing_old_dentry;
+	struct dentry *backing_new_dentry;
+	struct dentry *backing_old_dir_dentry;
+	struct dentry *backing_new_dir_dentry;
+	struct inode *target_inode;
+	struct dentry *trap;
+	struct renamedata rd = {};
+	int error = 0;
+
+	error = mutex_lock_interruptible(&mi->mi_dir_struct_mutex);
+	if (error)
+		return error;
+
+	backing_old_dentry = get_incfs_dentry(old_dentry)->backing_path.dentry;
+
+	if (!backing_old_dentry || backing_old_dentry == mi->mi_index_dir ||
+	    backing_old_dentry == mi->mi_incomplete_dir) {
+		/* Renaming .index or .incomplete not allowed */
+		error = -EBUSY;
+		goto exit;
+	}
+
+	backing_new_dentry = get_incfs_dentry(new_dentry)->backing_path.dentry;
+	dget(backing_old_dentry);
+	dget(backing_new_dentry);
+
+	backing_old_dir_dentry = dget_parent(backing_old_dentry);
+	backing_new_dir_dentry = dget_parent(backing_new_dentry);
+	target_inode = d_inode(new_dentry);
+
+	if (backing_old_dir_dentry == mi->mi_index_dir ||
+	    backing_old_dir_dentry == mi->mi_incomplete_dir) {
+		/* Direct moves from .index or .incomplete are not allowed. */
+		error = -EBUSY;
+		goto out;
+	}
+
+	trap = lock_rename(backing_old_dir_dentry, backing_new_dir_dentry);
+
+	if (trap == backing_old_dentry) {
+		error = -EINVAL;
+		goto unlock_out;
+	}
+	if (trap == backing_new_dentry) {
+		error = -ENOTEMPTY;
+		goto unlock_out;
+	}
+
+	rd.old_dir	= d_inode(backing_old_dir_dentry);
+	rd.old_dentry	= backing_old_dentry;
+	rd.new_dir	= d_inode(backing_new_dir_dentry);
+	rd.new_dentry	= backing_new_dentry;
+	rd.flags	= flags;
+	rd.old_mnt_userns = &init_user_ns;
+	rd.new_mnt_userns = &init_user_ns;
+	rd.delegated_inode = NULL;
+
+	error = vfs_rename(&rd);
+	if (error)
+		goto unlock_out;
+	if (target_inode)
+		fsstack_copy_attr_all(target_inode,
+			get_incfs_node(target_inode)->n_backing_inode);
+	fsstack_copy_attr_all(new_dir, d_inode(backing_new_dir_dentry));
+	if (new_dir != old_dir)
+		fsstack_copy_attr_all(old_dir, d_inode(backing_old_dir_dentry));
+
+unlock_out:
+	unlock_rename(backing_old_dir_dentry, backing_new_dir_dentry);
+
+out:
+	dput(backing_new_dir_dentry);
+	dput(backing_old_dir_dentry);
+	dput(backing_new_dentry);
+	dput(backing_old_dentry);
+
+exit:
+	mutex_unlock(&mi->mi_dir_struct_mutex);
+	if (error)
+		pr_debug("incfs: %s err:%d\n", __func__, error);
+	return error;
+}
+
+
+static int file_open(struct inode *inode, struct file *file)
+{
+	struct mount_info *mi = get_mount_info(inode->i_sb);
+	struct file *backing_file = NULL;
+	struct path backing_path = {};
+	int err = 0;
+	int flags = O_NOATIME | O_LARGEFILE |
+		(S_ISDIR(inode->i_mode) ? O_RDONLY : O_RDWR);
+	const struct cred *old_cred;
+
+	WARN_ON(file->private_data);
+
+	if (!mi)
+		return -EBADF;
+
+	get_incfs_backing_path(file->f_path.dentry, &backing_path);
+	if (!backing_path.dentry)
+		return -EBADF;
+
+	old_cred = override_creds(mi->mi_owner);
+	backing_file = dentry_open(&backing_path, flags, current_cred());
+	revert_creds(old_cred);
+	path_put(&backing_path);
+
+	if (IS_ERR(backing_file)) {
+		err = PTR_ERR(backing_file);
+		backing_file = NULL;
+		goto out;
+	}
+
+	if (S_ISREG(inode->i_mode)) {
+		struct incfs_file_data *fd = kzalloc(sizeof(*fd), GFP_NOFS);
+
+		if (!fd) {
+			err = -ENOMEM;
+			goto out;
+		}
+
+		*fd = (struct incfs_file_data) {
+			.fd_fill_permission = CANT_FILL,
+		};
+		file->private_data = fd;
+
+		err = make_inode_ready_for_data_ops(mi, inode, backing_file);
+		if (err)
+			goto out;
+
+		err = incfs_fsverity_file_open(inode, file);
+		if (err)
+			goto out;
+	} else if (S_ISDIR(inode->i_mode)) {
+		struct dir_file *dir = NULL;
+
+		dir = incfs_open_dir_file(mi, backing_file);
+		if (IS_ERR(dir))
+			err = PTR_ERR(dir);
+		else
+			file->private_data = dir;
+	} else
+		err = -EBADF;
+
+out:
+	if (err) {
+		pr_debug("name:%s err: %d\n",
+			 file->f_path.dentry->d_name.name, err);
+		if (S_ISREG(inode->i_mode))
+			kfree(file->private_data);
+		else if (S_ISDIR(inode->i_mode))
+			incfs_free_dir_file(file->private_data);
+
+		file->private_data = NULL;
+	}
+
+	if (backing_file)
+		fput(backing_file);
+	return err;
+}
+
+static int file_release(struct inode *inode, struct file *file)
+{
+	if (S_ISREG(inode->i_mode)) {
+		kfree(file->private_data);
+		file->private_data = NULL;
+	} else if (S_ISDIR(inode->i_mode)) {
+		struct dir_file *dir = get_incfs_dir_file(file);
+
+		incfs_free_dir_file(dir);
+	}
+
+	return 0;
+}
+
+static int dentry_revalidate(struct dentry *d, unsigned int flags)
+{
+	struct path backing_path = {};
+	struct inode_info *info = get_incfs_node(d_inode(d));
+	struct inode *binode = (info == NULL) ? NULL : info->n_backing_inode;
+	struct dentry *backing_dentry = NULL;
+	int result = 0;
+
+	if (flags & LOOKUP_RCU)
+		return -ECHILD;
+
+	get_incfs_backing_path(d, &backing_path);
+	backing_dentry = backing_path.dentry;
+	if (!backing_dentry)
+		goto out;
+
+	if (d_inode(backing_dentry) != binode) {
+		/*
+		 * Backing inodes obtained via dentry and inode don't match.
+		 * It indicates that most likely backing dir has changed
+		 * directly bypassing Incremental FS interface.
+		 */
+		goto out;
+	}
+
+	if (backing_dentry->d_flags & DCACHE_OP_REVALIDATE) {
+		result = backing_dentry->d_op->d_revalidate(backing_dentry,
+				flags);
+	} else
+		result = 1;
+
+out:
+	path_put(&backing_path);
+	return result;
+}
+
+static void dentry_release(struct dentry *d)
+{
+	struct dentry_info *di = get_incfs_dentry(d);
+
+	if (di)
+		path_put(&di->backing_path);
+	kfree(d->d_fsdata);
+	d->d_fsdata = NULL;
+}
+
+static struct inode *alloc_inode(struct super_block *sb)
+{
+	struct inode_info *node = kzalloc(sizeof(*node), GFP_NOFS);
+
+	/* TODO: add a slab-based cache here. */
+	if (!node)
+		return NULL;
+	inode_init_once(&node->n_vfs_inode);
+	return &node->n_vfs_inode;
+}
+
+static void free_inode(struct inode *inode)
+{
+	struct inode_info *node = get_incfs_node(inode);
+
+	kfree(node);
+}
+
+static void evict_inode(struct inode *inode)
+{
+	struct inode_info *node = get_incfs_node(inode);
+
+	if (node) {
+		if (node->n_backing_inode) {
+			iput(node->n_backing_inode);
+			node->n_backing_inode = NULL;
+		}
+		if (node->n_file) {
+			incfs_free_data_file(node->n_file);
+			node->n_file = NULL;
+		}
+	}
+
+	truncate_inode_pages(&inode->i_data, 0);
+	clear_inode(inode);
+}
+
+static int incfs_setattr(struct user_namespace *ns, struct dentry *dentry,
+			 struct iattr *ia)
+{
+	struct dentry_info *di = get_incfs_dentry(dentry);
+	struct dentry *backing_dentry;
+	struct inode *backing_inode;
+	int error;
+
+	if (ia->ia_valid & ATTR_SIZE)
+		return -EINVAL;
+
+	if ((ia->ia_valid & (ATTR_KILL_SUID|ATTR_KILL_SGID)) &&
+	    (ia->ia_valid & ATTR_MODE))
+		return -EINVAL;
+
+	if (!di)
+		return -EINVAL;
+	backing_dentry = di->backing_path.dentry;
+	if (!backing_dentry)
+		return -EINVAL;
+
+	backing_inode = d_inode(backing_dentry);
+
+	/* incfs files are readonly, but the backing files must be writeable */
+	if (S_ISREG(backing_inode->i_mode)) {
+		if ((ia->ia_valid & ATTR_MODE) && (ia->ia_mode & 0222))
+			return -EINVAL;
+
+		ia->ia_mode |= 0222;
+	}
+
+	inode_lock(d_inode(backing_dentry));
+	error = notify_change(ns, backing_dentry, ia, NULL);
+	inode_unlock(d_inode(backing_dentry));
+
+	if (error)
+		return error;
+
+	if (S_ISREG(backing_inode->i_mode))
+		ia->ia_mode &= ~0222;
+
+	return simple_setattr(ns, dentry, ia);
+}
+
+
+static int incfs_getattr(struct user_namespace *ns, const struct path *path,
+			 struct kstat *stat, u32 request_mask,
+			 unsigned int query_flags)
+{
+	struct inode *inode = d_inode(path->dentry);
+
+	generic_fillattr(ns, inode, stat);
+
+	if (inode->i_ino < INCFS_START_INO_RANGE)
+		return 0;
+
+	stat->attributes &= ~STATX_ATTR_VERITY;
+	if (IS_VERITY(inode))
+		stat->attributes |= STATX_ATTR_VERITY;
+	stat->attributes_mask |= STATX_ATTR_VERITY;
+
+	if (request_mask & STATX_BLOCKS) {
+		struct kstat backing_kstat;
+		struct dentry_info *di = get_incfs_dentry(path->dentry);
+		int error = 0;
+		struct path *backing_path;
+
+		if (!di)
+			return -EFSCORRUPTED;
+		backing_path = &di->backing_path;
+		error = vfs_getattr(backing_path, &backing_kstat, STATX_BLOCKS,
+				    AT_STATX_SYNC_AS_STAT);
+		if (error)
+			return error;
+
+		stat->blocks = backing_kstat.blocks;
+	}
+
+	return 0;
+}
+
+static ssize_t incfs_getxattr(struct dentry *d, const char *name,
+			void *value, size_t size)
+{
+	struct dentry_info *di = get_incfs_dentry(d);
+	struct mount_info *mi = get_mount_info(d->d_sb);
+	char *stored_value;
+	size_t stored_size;
+	int i;
+
+	if (di && di->backing_path.dentry)
+		return vfs_getxattr(&init_user_ns, di->backing_path.dentry, name, value, size);
+
+	if (strcmp(name, "security.selinux"))
+		return -ENODATA;
+
+	for (i = 0; i < PSEUDO_FILE_COUNT; ++i)
+		if (!strcmp(d->d_iname, incfs_pseudo_file_names[i].data))
+			break;
+	if (i == PSEUDO_FILE_COUNT)
+		return -ENODATA;
+
+	stored_value = mi->pseudo_file_xattr[i].data;
+	stored_size = mi->pseudo_file_xattr[i].len;
+	if (!stored_value)
+		return -ENODATA;
+
+	if (stored_size > size)
+		return -E2BIG;
+
+	memcpy(value, stored_value, stored_size);
+	return stored_size;
+}
+
+
+static ssize_t incfs_setxattr(struct user_namespace *ns, struct dentry *d,
+			      const char *name, const void *value, size_t size,
+			      int flags)
+{
+	struct dentry_info *di = get_incfs_dentry(d);
+	struct mount_info *mi = get_mount_info(d->d_sb);
+	u8 **stored_value;
+	size_t *stored_size;
+	int i;
+
+	if (di && di->backing_path.dentry)
+		return vfs_setxattr(ns, di->backing_path.dentry, name, value,
+				    size, flags);
+
+	if (strcmp(name, "security.selinux"))
+		return -ENODATA;
+
+	if (size > INCFS_MAX_FILE_ATTR_SIZE)
+		return -E2BIG;
+
+	for (i = 0; i < PSEUDO_FILE_COUNT; ++i)
+		if (!strcmp(d->d_iname, incfs_pseudo_file_names[i].data))
+			break;
+	if (i == PSEUDO_FILE_COUNT)
+		return -ENODATA;
+
+	stored_value = &mi->pseudo_file_xattr[i].data;
+	stored_size = &mi->pseudo_file_xattr[i].len;
+	kfree (*stored_value);
+	*stored_value = kzalloc(size, GFP_NOFS);
+	if (!*stored_value)
+		return -ENOMEM;
+
+	memcpy(*stored_value, value, size);
+	*stored_size = size;
+	return 0;
+}
+
+static ssize_t incfs_listxattr(struct dentry *d, char *list, size_t size)
+{
+	struct dentry_info *di = get_incfs_dentry(d);
+
+	if (!di || !di->backing_path.dentry)
+		return -ENODATA;
+
+	return vfs_listxattr(di->backing_path.dentry, list, size);
+}
+
+struct dentry *incfs_mount_fs(struct file_system_type *type, int flags,
+			      const char *dev_name, void *data)
+{
+	struct mount_options options = {};
+	struct mount_info *mi = NULL;
+	struct path backing_dir_path = {};
+	struct dentry *index_dir = NULL;
+	struct dentry *incomplete_dir = NULL;
+	struct super_block *src_fs_sb = NULL;
+	struct inode *root_inode = NULL;
+	struct super_block *sb = sget(type, NULL, set_anon_super, flags, NULL);
+	bool dir_created = false;
+	int error = 0;
+
+	if (IS_ERR(sb))
+		return ERR_CAST(sb);
+
+	sb->s_op = &incfs_super_ops;
+	sb->s_d_op = &incfs_dentry_ops;
+	sb->s_flags |= S_NOATIME;
+	sb->s_magic = INCFS_MAGIC_NUMBER;
+	sb->s_time_gran = 1;
+	sb->s_blocksize = INCFS_DATA_FILE_BLOCK_SIZE;
+	sb->s_blocksize_bits = blksize_bits(sb->s_blocksize);
+	sb->s_xattr = incfs_xattr_ops;
+
+	BUILD_BUG_ON(PAGE_SIZE != INCFS_DATA_FILE_BLOCK_SIZE);
+
+	if (!dev_name) {
+		pr_err("incfs: Backing dir is not set, filesystem can't be mounted.\n");
+		error = -ENOENT;
+		goto err_deactivate;
+	}
+
+	error = parse_options(&options, (char *)data);
+	if (error != 0) {
+		pr_err("incfs: Options parsing error. %d\n", error);
+		goto err_deactivate;
+	}
+
+	sb->s_bdi->ra_pages = options.readahead_pages;
+	if (!dev_name) {
+		pr_err("incfs: Backing dir is not set, filesystem can't be mounted.\n");
+		error = -ENOENT;
+		goto err_free_opts;
+	}
+
+	error = kern_path(dev_name, LOOKUP_FOLLOW | LOOKUP_DIRECTORY,
+			&backing_dir_path);
+	if (error || backing_dir_path.dentry == NULL ||
+		!d_really_is_positive(backing_dir_path.dentry)) {
+		pr_err("incfs: Error accessing: %s.\n",
+			dev_name);
+		goto err_free_opts;
+	}
+	src_fs_sb = backing_dir_path.dentry->d_sb;
+	sb->s_maxbytes = src_fs_sb->s_maxbytes;
+	sb->s_stack_depth = src_fs_sb->s_stack_depth + 1;
+
+	if (sb->s_stack_depth > FILESYSTEM_MAX_STACK_DEPTH) {
+		error = -EINVAL;
+		goto err_put_path;
+	}
+
+	mi = incfs_alloc_mount_info(sb, &options, &backing_dir_path);
+	if (IS_ERR_OR_NULL(mi)) {
+		error = PTR_ERR(mi);
+		pr_err("incfs: Error allocating mount info. %d\n", error);
+		goto err_put_path;
+	}
+
+	sb->s_fs_info = mi;
+	mi->mi_backing_dir_path = backing_dir_path;
+	index_dir = open_or_create_special_dir(backing_dir_path.dentry,
+					       INCFS_INDEX_NAME, &dir_created);
+	if (IS_ERR_OR_NULL(index_dir)) {
+		error = PTR_ERR(index_dir);
+		pr_err("incfs: Can't find or create .index dir in %s\n",
+			dev_name);
+		/* No need to null index_dir since we don't put it */
+		goto err_put_path;
+	}
+
+	mi->mi_index_dir = index_dir;
+	mi->mi_index_free = dir_created;
+
+	incomplete_dir = open_or_create_special_dir(backing_dir_path.dentry,
+						    INCFS_INCOMPLETE_NAME,
+						    &dir_created);
+	if (IS_ERR_OR_NULL(incomplete_dir)) {
+		error = PTR_ERR(incomplete_dir);
+		pr_err("incfs: Can't find or create .incomplete dir in %s\n",
+			dev_name);
+		/* No need to null incomplete_dir since we don't put it */
+		goto err_put_path;
+	}
+	mi->mi_incomplete_dir = incomplete_dir;
+	mi->mi_incomplete_free = dir_created;
+
+	root_inode = fetch_regular_inode(sb, backing_dir_path.dentry);
+	if (IS_ERR(root_inode)) {
+		error = PTR_ERR(root_inode);
+		goto err_put_path;
+	}
+
+	sb->s_root = d_make_root(root_inode);
+	if (!sb->s_root) {
+		error = -ENOMEM;
+		goto err_put_path;
+	}
+	error = incfs_init_dentry(sb->s_root, &backing_dir_path);
+	if (error)
+		goto err_put_path;
+
+	path_put(&backing_dir_path);
+	sb->s_flags |= SB_ACTIVE;
+
+	pr_debug("incfs: mount\n");
+	return dget(sb->s_root);
+
+err_put_path:
+	path_put(&backing_dir_path);
+err_free_opts:
+	free_options(&options);
+err_deactivate:
+	deactivate_locked_super(sb);
+	pr_err("incfs: mount failed %d\n", error);
+	return ERR_PTR(error);
+}
+
+static int incfs_remount_fs(struct super_block *sb, int *flags, char *data)
+{
+	struct mount_options options;
+	struct mount_info *mi = get_mount_info(sb);
+	int err = 0;
+
+	sync_filesystem(sb);
+	err = parse_options(&options, (char *)data);
+	if (err)
+		return err;
+
+	if (options.report_uid != mi->mi_options.report_uid) {
+		pr_err("incfs: Can't change report_uid mount option on remount\n");
+		err = -EOPNOTSUPP;
+		goto out;
+	}
+
+	err = incfs_realloc_mount_info(mi, &options);
+	if (err)
+		goto out;
+
+	pr_debug("incfs: remount\n");
+
+out:
+	free_options(&options);
+	return err;
+}
+
+void incfs_kill_sb(struct super_block *sb)
+{
+	struct mount_info *mi = sb->s_fs_info;
+	struct inode *dinode = NULL;
+
+	pr_debug("incfs: unmount\n");
+
+	/*
+	 * We must kill the super before freeing mi, since killing the super
+	 * triggers inode eviction, which triggers the final update of the
+	 * backing file, which uses certain information for mi
+	 */
+	kill_anon_super(sb);
+
+	if (mi) {
+		if (mi->mi_backing_dir_path.dentry)
+			dinode = d_inode(mi->mi_backing_dir_path.dentry);
+
+		if (dinode) {
+			if (mi->mi_index_dir && mi->mi_index_free)
+				vfs_rmdir(&init_user_ns, dinode,
+					  mi->mi_index_dir);
+
+			if (mi->mi_incomplete_dir && mi->mi_incomplete_free)
+				vfs_rmdir(&init_user_ns, dinode,
+					  mi->mi_incomplete_dir);
+		}
+
+		incfs_free_mount_info(mi);
+		sb->s_fs_info = NULL;
+	}
+}
+
+static int show_options(struct seq_file *m, struct dentry *root)
+{
+	struct mount_info *mi = get_mount_info(root->d_sb);
+
+	seq_printf(m, ",read_timeout_ms=%u", mi->mi_options.read_timeout_ms);
+	seq_printf(m, ",readahead=%u", mi->mi_options.readahead_pages);
+	if (mi->mi_options.read_log_pages != 0) {
+		seq_printf(m, ",rlog_pages=%u", mi->mi_options.read_log_pages);
+		seq_printf(m, ",rlog_wakeup_cnt=%u",
+			   mi->mi_options.read_log_wakeup_count);
+	}
+	if (mi->mi_options.report_uid)
+		seq_puts(m, ",report_uid");
+
+	if (mi->mi_sysfs_node)
+		seq_printf(m, ",sysfs_name=%s",
+			   kobject_name(&mi->mi_sysfs_node->isn_sysfs_node));
+	return 0;
+}
diff --git a/fs/incfs/vfs.h b/fs/incfs/vfs.h
new file mode 100644
index 0000000..79fdf24
--- /dev/null
+++ b/fs/incfs/vfs.h
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright 2018 Google LLC
+ */
+
+#ifndef _INCFS_VFS_H
+#define _INCFS_VFS_H
+
+extern const struct file_operations incfs_file_ops;
+extern const struct inode_operations incfs_file_inode_ops;
+
+void incfs_kill_sb(struct super_block *sb);
+struct dentry *incfs_mount_fs(struct file_system_type *type, int flags,
+			      const char *dev_name, void *data);
+int incfs_link(struct dentry *what, struct dentry *where);
+int incfs_unlink(struct dentry *dentry);
+
+static inline struct mount_info *get_mount_info(struct super_block *sb)
+{
+	struct mount_info *result = sb->s_fs_info;
+
+	WARN_ON(!result);
+	return result;
+}
+
+static inline struct super_block *file_superblock(struct file *f)
+{
+	struct inode *inode = file_inode(f);
+
+	return inode->i_sb;
+}
+
+#endif
diff --git a/fs/inode.c b/fs/inode.c
index 7cb048a..e906ef23 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -309,7 +309,7 @@
 	if (!inode->i_nlink)
 		atomic_long_inc(&inode->i_sb->s_remove_count);
 }
-EXPORT_SYMBOL(drop_nlink);
+EXPORT_SYMBOL_NS(drop_nlink, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * clear_nlink - directly zero an inode's link count
@@ -348,7 +348,7 @@
 		inode->__i_nlink = nlink;
 	}
 }
-EXPORT_SYMBOL(set_nlink);
+EXPORT_SYMBOL_NS(set_nlink, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * inc_nlink - directly increment an inode's link count
@@ -401,7 +401,7 @@
 	__address_space_init_once(&inode->i_data);
 	i_size_ordered_init(inode);
 }
-EXPORT_SYMBOL(inode_init_once);
+EXPORT_SYMBOL_NS(inode_init_once, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 static void init_once(void *foo)
 {
@@ -425,7 +425,7 @@
 {
 	WARN_ON(atomic_inc_return(&inode->i_count) < 2);
 }
-EXPORT_SYMBOL(ihold);
+EXPORT_SYMBOL_NS(ihold, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 static void inode_lru_list_add(struct inode *inode)
 {
@@ -505,7 +505,7 @@
 	spin_unlock(&inode->i_lock);
 	spin_unlock(&inode_hash_lock);
 }
-EXPORT_SYMBOL(__insert_inode_hash);
+EXPORT_SYMBOL_NS(__insert_inode_hash, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  *	__remove_inode_hash - remove an inode from the hash
@@ -521,7 +521,7 @@
 	spin_unlock(&inode->i_lock);
 	spin_unlock(&inode_hash_lock);
 }
-EXPORT_SYMBOL(__remove_inode_hash);
+EXPORT_SYMBOL_NS(__remove_inode_hash, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 void clear_inode(struct inode *inode)
 {
@@ -548,7 +548,7 @@
 	/* don't need i_lock here, no concurrent mods to i_state */
 	inode->i_state = I_FREEING | I_CLEAR;
 }
-EXPORT_SYMBOL(clear_inode);
+EXPORT_SYMBOL_NS(clear_inode, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * Free the inode passed in, removing it from the lists it is still connected
@@ -1008,7 +1008,7 @@
 	wake_up_bit(&inode->i_state, __I_NEW);
 	spin_unlock(&inode->i_lock);
 }
-EXPORT_SYMBOL(unlock_new_inode);
+EXPORT_SYMBOL_NS(unlock_new_inode, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 void discard_new_inode(struct inode *inode)
 {
@@ -1207,7 +1207,7 @@
 	}
 	return inode;
 }
-EXPORT_SYMBOL(iget5_locked);
+EXPORT_SYMBOL_NS(iget5_locked, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * iget_locked - obtain an inode from a mounted file system
@@ -1339,7 +1339,7 @@
 
 	return res;
 }
-EXPORT_SYMBOL(iunique);
+EXPORT_SYMBOL_NS(iunique, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 struct inode *igrab(struct inode *inode)
 {
@@ -1422,7 +1422,7 @@
 	}
 	return inode;
 }
-EXPORT_SYMBOL(ilookup5);
+EXPORT_SYMBOL_NS(ilookup5, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * ilookup - search for an inode in the inode cache
@@ -1904,7 +1904,7 @@
 skip_update:
 	sb_end_write(inode->i_sb);
 }
-EXPORT_SYMBOL(touch_atime);
+EXPORT_SYMBOL_NS(touch_atime, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * Return mask of changes for notify_change() that need to be done as a
@@ -1973,7 +1973,7 @@
 
 	return error;
 }
-EXPORT_SYMBOL(file_remove_privs);
+EXPORT_SYMBOL_NS(file_remove_privs, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  *	file_update_time	-	update mtime and ctime time
@@ -2154,7 +2154,7 @@
 				  " inode %s:%lu\n", mode, inode->i_sb->s_id,
 				  inode->i_ino);
 }
-EXPORT_SYMBOL(init_special_inode);
+EXPORT_SYMBOL_NS(init_special_inode, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * inode_init_owner - Init uid,gid,mode for new inode according to posix standards
@@ -2183,7 +2183,7 @@
 		inode_fsgid_set(inode, mnt_userns);
 	inode->i_mode = mode;
 }
-EXPORT_SYMBOL(inode_init_owner);
+EXPORT_SYMBOL_NS(inode_init_owner, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * inode_owner_or_capable - check current task permissions to inode
@@ -2247,7 +2247,7 @@
 	if (atomic_read(&inode->i_dio_count))
 		__inode_dio_wait(inode);
 }
-EXPORT_SYMBOL(inode_dio_wait);
+EXPORT_SYMBOL_NS(inode_dio_wait, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * inode_set_flags - atomically set some inode flags
@@ -2271,7 +2271,7 @@
 	WARN_ON_ONCE(flags & ~mask);
 	set_mask_bits(&inode->i_flags, mask, flags);
 }
-EXPORT_SYMBOL(inode_set_flags);
+EXPORT_SYMBOL_NS(inode_set_flags, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 void inode_nohighmem(struct inode *inode)
 {
@@ -2308,7 +2308,7 @@
 		WARN(1, "invalid file time granularity: %u", gran);
 	return t;
 }
-EXPORT_SYMBOL(timestamp_truncate);
+EXPORT_SYMBOL_NS(timestamp_truncate, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * current_time - Return FS time
diff --git a/fs/ioctl.c b/fs/ioctl.c
index e0a3455..88d1959 100644
--- a/fs/ioctl.c
+++ b/fs/ioctl.c
@@ -149,7 +149,7 @@
 		return 1;
 	return (flags & FIEMAP_EXTENT_LAST) ? 1 : 0;
 }
-EXPORT_SYMBOL(fiemap_fill_next_extent);
+EXPORT_SYMBOL_NS(fiemap_fill_next_extent, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * fiemap_prep - check validity of requested flags for fiemap
@@ -194,7 +194,7 @@
 		ret = filemap_write_and_wait(inode->i_mapping);
 	return ret;
 }
-EXPORT_SYMBOL(fiemap_prep);
+EXPORT_SYMBOL_NS(fiemap_prep, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 static int ioctl_fiemap(struct file *filp, struct fiemap __user *ufiemap)
 {
diff --git a/fs/iomap/direct-io.c b/fs/iomap/direct-io.c
index 468dcbb..a2faeb4 100644
--- a/fs/iomap/direct-io.c
+++ b/fs/iomap/direct-io.c
@@ -6,11 +6,13 @@
 #include <linux/module.h>
 #include <linux/compiler.h>
 #include <linux/fs.h>
+#include <linux/fscrypt.h>
 #include <linux/iomap.h>
 #include <linux/backing-dev.h>
 #include <linux/uio.h>
 #include <linux/task_io_accounting_ops.h>
 #include "trace.h"
+#include <trace/hooks/direct_io.h>
 
 #include "../internal.h"
 
@@ -186,11 +188,14 @@
 static void iomap_dio_zero(const struct iomap_iter *iter, struct iomap_dio *dio,
 		loff_t pos, unsigned len)
 {
+	struct inode *inode = file_inode(dio->iocb->ki_filp);
 	struct page *page = ZERO_PAGE(0);
 	int flags = REQ_SYNC | REQ_IDLE;
 	struct bio *bio;
 
 	bio = bio_alloc(GFP_KERNEL, 1);
+	fscrypt_set_bio_crypt_ctx(bio, inode, pos >> inode->i_blkbits,
+				  GFP_KERNEL);
 	bio_set_dev(bio, iter->iomap.bdev);
 	bio->bi_iter.bi_sector = iomap_sector(&iter->iomap, pos);
 	bio->bi_private = dio;
@@ -310,6 +315,8 @@
 		}
 
 		bio = bio_alloc(GFP_KERNEL, nr_pages);
+		fscrypt_set_bio_crypt_ctx(bio, inode, pos >> inode->i_blkbits,
+					  GFP_KERNEL);
 		bio_set_dev(bio, iomap->bdev);
 		bio->bi_iter.bi_sector = iomap_sector(iomap, pos);
 		bio->bi_write_hint = dio->iocb->ki_hint;
@@ -317,6 +324,7 @@
 		bio->bi_private = dio;
 		bio->bi_end_io = iomap_dio_bio_end_io;
 		bio->bi_opf = bio_opf;
+		trace_android_vh_direct_io_update_bio(dio->iocb, bio);
 
 		ret = bio_iov_iter_get_pages(bio, dio->submit.iter);
 		if (unlikely(ret)) {
diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c
index 0c6eacf..7130a9b 100644
--- a/fs/isofs/inode.c
+++ b/fs/isofs/inode.c
@@ -1613,3 +1613,4 @@
 module_init(init_iso9660_fs)
 module_exit(exit_iso9660_fs)
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/jbd2/Makefile b/fs/jbd2/Makefile
index 126b4da..b64f933 100644
--- a/fs/jbd2/Makefile
+++ b/fs/jbd2/Makefile
@@ -3,6 +3,8 @@
 # Makefile for the linux journaling routines.
 #
 
+ccflags-y += -DDEFAULT_SYMBOL_NAMESPACE=ANDROID_GKI_VFS_EXPORT_ONLY
+
 obj-$(CONFIG_JBD2) += jbd2.o
 
 jbd2-objs := transaction.o commit.o recovery.o checkpoint.o revoke.o journal.o
diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
index 580d2fd..bd15793 100644
--- a/fs/jbd2/journal.c
+++ b/fs/jbd2/journal.c
@@ -3197,6 +3197,7 @@
 }
 
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 module_init(journal_init);
 module_exit(journal_exit);
 
diff --git a/fs/jffs2/super.c b/fs/jffs2/super.c
index 81ca58c..16dcc35 100644
--- a/fs/jffs2/super.c
+++ b/fs/jffs2/super.c
@@ -439,3 +439,4 @@
 MODULE_AUTHOR("Red Hat, Inc.");
 MODULE_LICENSE("GPL"); // Actually dual-licensed, but it doesn't matter for
 		       // the sake of this tag. It's Free Software.
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/jfs/super.c b/fs/jfs/super.c
index 9030aea..820e107 100644
--- a/fs/jfs/super.c
+++ b/fs/jfs/super.c
@@ -37,6 +37,7 @@
 MODULE_DESCRIPTION("The Journaled Filesystem (JFS)");
 MODULE_AUTHOR("Steve Best/Dave Kleikamp/Barry Arndt, IBM");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 
 static struct kmem_cache *jfs_inode_cachep;
 
diff --git a/fs/ksmbd/server.c b/fs/ksmbd/server.c
index eb45d56..358f42f 100644
--- a/fs/ksmbd/server.c
+++ b/fs/ksmbd/server.c
@@ -626,6 +626,7 @@
 MODULE_VERSION(KSMBD_VERSION);
 MODULE_DESCRIPTION("Linux kernel CIFS/SMB SERVER");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 MODULE_SOFTDEP("pre: ecb");
 MODULE_SOFTDEP("pre: hmac");
 MODULE_SOFTDEP("pre: md4");
diff --git a/fs/libfs.c b/fs/libfs.c
index 7bb5d90..2a75bf3 100644
--- a/fs/libfs.c
+++ b/fs/libfs.c
@@ -226,7 +226,7 @@
 {
 	return -EISDIR;
 }
-EXPORT_SYMBOL(generic_read_dir);
+EXPORT_SYMBOL_NS(generic_read_dir, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 const struct file_operations simple_dir_operations = {
 	.open		= dcache_dir_open,
@@ -1124,7 +1124,7 @@
 		ret = err;
 	return ret;
 }
-EXPORT_SYMBOL(__generic_file_fsync);
+EXPORT_SYMBOL_NS(__generic_file_fsync, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * generic_file_fsync - generic fsync implementation for simple filesystems
@@ -1147,7 +1147,7 @@
 		return err;
 	return blkdev_issue_flush(inode->i_sb->s_bdev);
 }
-EXPORT_SYMBOL(generic_file_fsync);
+EXPORT_SYMBOL_NS(generic_file_fsync, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * generic_check_addressable - Check addressability of file system
diff --git a/fs/minix/inode.c b/fs/minix/inode.c
index d4bd942..9717e6f7 100644
--- a/fs/minix/inode.c
+++ b/fs/minix/inode.c
@@ -721,4 +721,5 @@
 module_init(init_minix_fs)
 module_exit(exit_minix_fs)
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 
diff --git a/fs/mpage.c b/fs/mpage.c
index 334e7d0..fd74199d 100644
--- a/fs/mpage.c
+++ b/fs/mpage.c
@@ -32,6 +32,14 @@
 #include <linux/cleancache.h>
 #include "internal.h"
 
+#define CREATE_TRACE_POINTS
+#include <trace/events/android_fs.h>
+
+EXPORT_TRACEPOINT_SYMBOL(android_fs_datawrite_start);
+EXPORT_TRACEPOINT_SYMBOL(android_fs_datawrite_end);
+EXPORT_TRACEPOINT_SYMBOL(android_fs_dataread_start);
+EXPORT_TRACEPOINT_SYMBOL(android_fs_dataread_end);
+
 /*
  * I/O completion handler for multipage BIOs.
  *
@@ -49,6 +57,16 @@
 	struct bio_vec *bv;
 	struct bvec_iter_all iter_all;
 
+	if (trace_android_fs_dataread_end_enabled() &&
+	    (bio_data_dir(bio) == READ)) {
+		struct page *first_page = bio->bi_io_vec[0].bv_page;
+
+		if (first_page != NULL)
+			trace_android_fs_dataread_end(first_page->mapping->host,
+						      page_offset(first_page),
+						      bio->bi_iter.bi_size);
+	}
+
 	bio_for_each_segment_all(bv, bio, iter_all) {
 		struct page *page = bv->bv_page;
 		page_endio(page, bio_op(bio),
@@ -60,6 +78,24 @@
 
 static struct bio *mpage_bio_submit(int op, int op_flags, struct bio *bio)
 {
+	if (trace_android_fs_dataread_start_enabled() && (op == REQ_OP_READ)) {
+		struct page *first_page = bio->bi_io_vec[0].bv_page;
+
+		if (first_page != NULL) {
+			char *path, pathbuf[MAX_TRACE_PATHBUF_LEN];
+
+			path = android_fstrace_get_pathname(pathbuf,
+						    MAX_TRACE_PATHBUF_LEN,
+						    first_page->mapping->host);
+			trace_android_fs_dataread_start(
+				first_page->mapping->host,
+				page_offset(first_page),
+				bio->bi_iter.bi_size,
+				current->pid,
+				path,
+				current->comm);
+		}
+	}
 	bio->bi_end_io = mpage_end_io;
 	bio_set_op_attrs(bio, op, op_flags);
 	guard_bio_eod(bio);
@@ -392,7 +428,7 @@
 	if (args.bio)
 		mpage_bio_submit(REQ_OP_READ, REQ_RAHEAD, args.bio);
 }
-EXPORT_SYMBOL(mpage_readahead);
+EXPORT_SYMBOL_NS(mpage_readahead, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * This isn't called much at all
@@ -410,7 +446,7 @@
 		mpage_bio_submit(REQ_OP_READ, 0, args.bio);
 	return 0;
 }
-EXPORT_SYMBOL(mpage_readpage);
+EXPORT_SYMBOL_NS(mpage_readpage, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * Writing is not so simple.
diff --git a/fs/namei.c b/fs/namei.c
index 885b0e9..85cdd24 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -2573,7 +2573,7 @@
 	return ret;
 
 }
-EXPORT_SYMBOL(kern_path);
+EXPORT_SYMBOL_NS(kern_path, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * vfs_path_lookup - lookup a file path relative to a dentry-vfsmount pair
@@ -3094,7 +3094,7 @@
 		fsnotify_create(dir, dentry);
 	return error;
 }
-EXPORT_SYMBOL(vfs_create);
+EXPORT_SYMBOL_NS(vfs_create, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 int vfs_mkobj(struct dentry *dentry, umode_t mode,
 		int (*f)(struct dentry *, umode_t, void *),
@@ -3996,7 +3996,7 @@
 		fsnotify_mkdir(dir, dentry);
 	return error;
 }
-EXPORT_SYMBOL(vfs_mkdir);
+EXPORT_SYMBOL_NS(vfs_mkdir, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 int do_mkdirat(int dfd, struct filename *name, umode_t mode)
 {
@@ -4091,7 +4091,7 @@
 		d_delete_notify(dir, dentry);
 	return error;
 }
-EXPORT_SYMBOL(vfs_rmdir);
+EXPORT_SYMBOL_NS(vfs_rmdir, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 int do_rmdir(int dfd, struct filename *name)
 {
@@ -4226,7 +4226,7 @@
 
 	return error;
 }
-EXPORT_SYMBOL(vfs_unlink);
+EXPORT_SYMBOL_NS(vfs_unlink, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * Make sure that the actual truncation of the file will occur outside its
@@ -4496,7 +4496,7 @@
 		fsnotify_link(dir, inode, new_dentry);
 	return error;
 }
-EXPORT_SYMBOL(vfs_link);
+EXPORT_SYMBOL_NS(vfs_link, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * Hardlinks are often used in delicate situations.  We avoid
@@ -4775,7 +4775,7 @@
 
 	return error;
 }
-EXPORT_SYMBOL(vfs_rename);
+EXPORT_SYMBOL_NS(vfs_rename, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 int do_renameat2(int olddfd, struct filename *from, int newdfd,
 		 struct filename *to, unsigned int flags)
diff --git a/fs/namespace.c b/fs/namespace.c
index 1a9df6a..709ea09 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -424,7 +424,7 @@
 		sb_end_write(file_inode(file)->i_sb);
 	return ret;
 }
-EXPORT_SYMBOL_GPL(mnt_want_write_file);
+EXPORT_SYMBOL_NS_GPL(mnt_want_write_file, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * __mnt_drop_write - give up write access to a mount
@@ -467,7 +467,7 @@
 	__mnt_drop_write_file(file);
 	sb_end_write(file_inode(file)->i_sb);
 }
-EXPORT_SYMBOL(mnt_drop_write_file);
+EXPORT_SYMBOL_NS(mnt_drop_write_file, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 static inline int mnt_hold_writers(struct mount *mnt)
 {
diff --git a/fs/nfs/file.c b/fs/nfs/file.c
index dd53d0f9..402e5e5 100644
--- a/fs/nfs/file.c
+++ b/fs/nfs/file.c
@@ -592,6 +592,7 @@
 	.fault = filemap_fault,
 	.map_pages = filemap_map_pages,
 	.page_mkwrite = nfs_vm_page_mkwrite,
+	.speculative = true,
 };
 
 ssize_t nfs_file_write(struct kiocb *iocb, struct iov_iter *from)
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index d8f01d2..dd23195 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -2475,6 +2475,7 @@
 /* Not quite true; I just maintain it */
 MODULE_AUTHOR("Olaf Kirch <okir@monad.swb.de>");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 module_param(enable_ino64, bool, 0644);
 
 module_init(init_nfs_fs)
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index a21e25cb..c37379c 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -132,7 +132,8 @@
 	label->label = NULL;
 
 	err = security_dentry_init_security(dentry, sattr->ia_mode,
-				&dentry->d_name, (void **)&label->label, &label->len);
+				&dentry->d_name, NULL,
+				(void **)&label->label, &label->len);
 	if (err == 0)
 		return label;
 
diff --git a/fs/nfs/nfs4super.c b/fs/nfs/nfs4super.c
index d09bcfd..b422e8a 100644
--- a/fs/nfs/nfs4super.c
+++ b/fs/nfs/nfs4super.c
@@ -309,6 +309,7 @@
 }
 
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 
 module_init(init_nfs_v4);
 module_exit(exit_nfs_v4);
diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c
index cb73c12..af8c402 100644
--- a/fs/nfsd/nfsctl.c
+++ b/fs/nfsd/nfsctl.c
@@ -1583,5 +1583,6 @@
 
 MODULE_AUTHOR("Olaf Kirch <okir@monad.swb.de>");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 module_init(init_nfsd)
 module_exit(exit_nfsd)
diff --git a/fs/nilfs2/super.c b/fs/nilfs2/super.c
index 130ffa8..aee09f9 100644
--- a/fs/nilfs2/super.c
+++ b/fs/nilfs2/super.c
@@ -53,6 +53,7 @@
 MODULE_DESCRIPTION("A New Implementation of the Log-structured Filesystem "
 		   "(NILFS)");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 
 static struct kmem_cache *nilfs_inode_cachep;
 struct kmem_cache *nilfs_transaction_cachep;
diff --git a/fs/nls/nls_base.c b/fs/nls/nls_base.c
index 52ccd34..06c368c 100644
--- a/fs/nls/nls_base.c
+++ b/fs/nls/nls_base.c
@@ -541,8 +541,8 @@
 }
 
 EXPORT_SYMBOL(unregister_nls);
-EXPORT_SYMBOL(unload_nls);
-EXPORT_SYMBOL(load_nls);
-EXPORT_SYMBOL(load_nls_default);
+EXPORT_SYMBOL_NS(unload_nls, ANDROID_GKI_VFS_EXPORT_ONLY);
+EXPORT_SYMBOL_NS(load_nls, ANDROID_GKI_VFS_EXPORT_ONLY);
+EXPORT_SYMBOL_NS(load_nls_default, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 MODULE_LICENSE("Dual BSD/GPL");
diff --git a/fs/nls/nls_euc-jp.c b/fs/nls/nls_euc-jp.c
index 162b3f1..498b8a4 100644
--- a/fs/nls/nls_euc-jp.c
+++ b/fs/nls/nls_euc-jp.c
@@ -578,3 +578,4 @@
 module_exit(exit_nls_euc_jp)
 
 MODULE_LICENSE("Dual BSD/GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/nls/nls_koi8-ru.c b/fs/nls/nls_koi8-ru.c
index a80a741..99ceec9 100644
--- a/fs/nls/nls_koi8-ru.c
+++ b/fs/nls/nls_koi8-ru.c
@@ -80,3 +80,4 @@
 module_exit(exit_nls_koi8_ru)
 
 MODULE_LICENSE("Dual BSD/GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_user.c
index 9fb7701..f641dcb 100644
--- a/fs/notify/inotify/inotify_user.c
+++ b/fs/notify/inotify/inotify_user.c
@@ -712,6 +712,8 @@
 	struct fsnotify_group *group;
 	struct inode *inode;
 	struct path path;
+	struct path alteredpath = {};
+	struct path *canonical_path = &path;
 	struct fd f;
 	int ret;
 	unsigned flags = 0;
@@ -758,13 +760,29 @@
 	if (ret)
 		goto fput_and_out;
 
+	/* support stacked filesystems */
+	if (path.dentry && path.dentry->d_op) {
+		if (path.dentry->d_op->d_canonical_path) {
+			path.dentry->d_op->d_canonical_path(&path,
+							    &alteredpath);
+			if (IS_ERR(alteredpath.dentry)) {
+				ret = PTR_ERR(alteredpath.dentry);
+				goto path_put_and_out;
+			}
+
+			canonical_path = &alteredpath;
+			path_put(&path);
+		}
+	}
+
 	/* inode held in place by reference to path; group by fget on fd */
-	inode = path.dentry->d_inode;
+	inode = canonical_path->dentry->d_inode;
 	group = f.file->private_data;
 
 	/* create/update an inode mark */
 	ret = inotify_update_watch(group, inode, mask);
-	path_put(&path);
+path_put_and_out:
+	path_put(canonical_path);
 fput_and_out:
 	fdput(f);
 	return ret;
diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c
index 7f69422..3ded933 100644
--- a/fs/ntfs/super.c
+++ b/fs/ntfs/super.c
@@ -3187,6 +3187,7 @@
 MODULE_DESCRIPTION("NTFS 1.2/3.x driver - Copyright (c) 2001-2014 Anton Altaparmakov and Tuxera Inc.");
 MODULE_VERSION(NTFS_VERSION);
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 #ifdef DEBUG
 module_param(debug_msgs, bint, 0);
 MODULE_PARM_DESC(debug_msgs, "Enable debug messages.");
diff --git a/fs/ntfs3/super.c b/fs/ntfs3/super.c
index 33b1833..a0360f2 100644
--- a/fs/ntfs3/super.c
+++ b/fs/ntfs3/super.c
@@ -1494,6 +1494,7 @@
 }
 
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 MODULE_DESCRIPTION("ntfs3 read/write filesystem");
 #ifdef CONFIG_NTFS3_FS_POSIX_ACL
 MODULE_INFO(behaviour, "Enabled Linux POSIX ACLs support");
diff --git a/fs/ocfs2/dlmfs/dlmfs.c b/fs/ocfs2/dlmfs/dlmfs.c
index fa0a14f..308afb6 100644
--- a/fs/ocfs2/dlmfs/dlmfs.c
+++ b/fs/ocfs2/dlmfs/dlmfs.c
@@ -616,6 +616,7 @@
 
 MODULE_AUTHOR("Oracle");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 MODULE_DESCRIPTION("OCFS2 DLM-Filesystem");
 
 module_init(init_dlmfs_fs)
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
index 1904f78..892a7e7 100644
--- a/fs/ocfs2/super.c
+++ b/fs/ocfs2/super.c
@@ -69,6 +69,7 @@
 
 MODULE_AUTHOR("Oracle");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 MODULE_DESCRIPTION("OCFS2 cluster file system");
 
 struct mount_options
diff --git a/fs/omfs/inode.c b/fs/omfs/inode.c
index 2a0e832..52b6e1a 100644
--- a/fs/omfs/inode.c
+++ b/fs/omfs/inode.c
@@ -20,6 +20,7 @@
 MODULE_AUTHOR("Bob Copeland <me@bobcopeland.com>");
 MODULE_DESCRIPTION("OMFS (ReplayTV/Karma) Filesystem for Linux");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 
 struct buffer_head *omfs_bread(struct super_block *sb, sector_t block)
 {
diff --git a/fs/open.c b/fs/open.c
index 159a276..acb11b3 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -35,6 +35,7 @@
 #include <linux/mnt_idmapping.h>
 
 #include "internal.h"
+#include <trace/hooks/syscall_check.h>
 
 int do_truncate(struct user_namespace *mnt_userns, struct dentry *dentry,
 		loff_t length, unsigned int time_attrs, struct file *filp)
@@ -809,6 +810,7 @@
 		error = -ENODEV;
 		goto cleanup_all;
 	}
+	trace_android_vh_check_file_open(f);
 
 	error = security_file_open(f);
 	if (error)
@@ -1178,7 +1180,28 @@
 	}
 	return file;
 }
-EXPORT_SYMBOL(filp_open);
+EXPORT_SYMBOL_NS(filp_open, ANDROID_GKI_VFS_EXPORT_ONLY);
+
+
+/* ANDROID: Allow drivers to open only block files from kernel mode */
+struct file *filp_open_block(const char *filename, int flags, umode_t mode)
+{
+	struct file *file;
+
+	file = filp_open(filename, flags, mode);
+	if (IS_ERR(file))
+		goto err_out;
+
+	/* Drivers should only be allowed to open block devices */
+	if (!S_ISBLK(file->f_mapping->host->i_mode)) {
+		filp_close(file, NULL);
+		file = ERR_PTR(-ENOTBLK);
+	}
+
+err_out:
+	return file;
+}
+EXPORT_SYMBOL_GPL(filp_open_block);
 
 struct file *file_open_root(const struct path *root,
 			    const char *filename, int flags, umode_t mode)
@@ -1390,7 +1413,7 @@
 	return 0;
 }
 
-EXPORT_SYMBOL(generic_file_open);
+EXPORT_SYMBOL_NS(generic_file_open, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /*
  * This is used by subsystems that don't want seekable
diff --git a/fs/orangefs/orangefs-mod.c b/fs/orangefs/orangefs-mod.c
index 5ab741c..dee0516 100644
--- a/fs/orangefs/orangefs-mod.c
+++ b/fs/orangefs/orangefs-mod.c
@@ -36,6 +36,7 @@
 int orangefs_getattr_timeout_msecs = 50;
 
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 MODULE_AUTHOR("ORANGEFS Development Team");
 MODULE_DESCRIPTION("The Linux Kernel VFS interface to ORANGEFS");
 MODULE_PARM_DESC(module_parm_debug_mask, "debugging level (see orangefs-debug.h for values)");
diff --git a/fs/overlayfs/copy_up.c b/fs/overlayfs/copy_up.c
index 46cc429..3f37b96 100644
--- a/fs/overlayfs/copy_up.c
+++ b/fs/overlayfs/copy_up.c
@@ -1048,7 +1048,7 @@
 		dput(parent);
 		dput(next);
 	}
-	revert_creds(old_cred);
+	ovl_revert_creds(dentry->d_sb, old_cred);
 
 	return err;
 }
diff --git a/fs/overlayfs/dir.c b/fs/overlayfs/dir.c
index 519193c..1dd153fd 100644
--- a/fs/overlayfs/dir.c
+++ b/fs/overlayfs/dir.c
@@ -568,7 +568,7 @@
 			      struct ovl_cattr *attr, bool origin)
 {
 	int err;
-	const struct cred *old_cred;
+	const struct cred *old_cred, *hold_cred = NULL;
 	struct cred *override_cred;
 	struct dentry *parent = dentry->d_parent;
 
@@ -609,13 +609,14 @@
 		override_cred->fsuid = inode->i_uid;
 		override_cred->fsgid = inode->i_gid;
 		err = security_dentry_create_files_as(dentry,
-				attr->mode, &dentry->d_name, old_cred,
+				attr->mode, &dentry->d_name,
+				old_cred ? old_cred : current_cred(),
 				override_cred);
 		if (err) {
 			put_cred(override_cred);
 			goto out_revert_creds;
 		}
-		put_cred(override_creds(override_cred));
+		hold_cred = override_creds(override_cred);
 		put_cred(override_cred);
 	}
 
@@ -625,7 +626,9 @@
 		err = ovl_create_over_whiteout(dentry, inode, attr);
 
 out_revert_creds:
-	revert_creds(old_cred);
+	ovl_revert_creds(dentry->d_sb, old_cred ?: hold_cred);
+	if (old_cred && hold_cred)
+		put_cred(hold_cred);
 	return err;
 }
 
@@ -702,7 +705,7 @@
 
 	old_cred = ovl_override_creds(dentry->d_sb);
 	err = ovl_set_redirect(dentry, false);
-	revert_creds(old_cred);
+	ovl_revert_creds(dentry->d_sb, old_cred);
 
 	return err;
 }
@@ -920,7 +923,7 @@
 		err = ovl_remove_upper(dentry, is_dir, &list);
 	else
 		err = ovl_remove_and_whiteout(dentry, &list);
-	revert_creds(old_cred);
+	ovl_revert_creds(dentry->d_sb, old_cred);
 	if (!err) {
 		if (is_dir)
 			clear_nlink(dentry->d_inode);
@@ -1294,7 +1297,7 @@
 out_unlock:
 	unlock_rename(new_upperdir, old_upperdir);
 out_revert_creds:
-	revert_creds(old_cred);
+	ovl_revert_creds(old->d_sb, old_cred);
 	if (update_nlink)
 		ovl_nlink_end(new);
 out_drop_write:
diff --git a/fs/overlayfs/file.c b/fs/overlayfs/file.c
index 28cb05e..26c17ca 100644
--- a/fs/overlayfs/file.c
+++ b/fs/overlayfs/file.c
@@ -15,6 +15,8 @@
 #include <linux/fs.h>
 #include "overlayfs.h"
 
+#define OVL_IOCB_MASK (IOCB_DSYNC | IOCB_HIPRI | IOCB_NOWAIT | IOCB_SYNC)
+
 struct ovl_aio_req {
 	struct kiocb iocb;
 	refcount_t ref;
@@ -55,13 +57,14 @@
 	if (err) {
 		realfile = ERR_PTR(err);
 	} else {
-		if (!inode_owner_or_capable(&init_user_ns, realinode))
+		if (old_cred && !inode_owner_or_capable(&init_user_ns,
+							realinode))
 			flags &= ~O_NOATIME;
 
 		realfile = open_with_fake_path(&file->f_path, flags, realinode,
 					       current_cred());
 	}
-	revert_creds(old_cred);
+	ovl_revert_creds(inode->i_sb, old_cred);
 
 	pr_debug("open(%p[%pD2/%c], 0%o) -> (%p, 0%o)\n",
 		 file, file, ovl_whatisit(inode, realinode), file->f_flags,
@@ -205,7 +208,7 @@
 
 	old_cred = ovl_override_creds(inode->i_sb);
 	ret = vfs_llseek(real.file, offset, whence);
-	revert_creds(old_cred);
+	ovl_revert_creds(inode->i_sb, old_cred);
 
 	file->f_pos = real.file->f_pos;
 	ovl_inode_unlock(inode);
@@ -237,22 +240,6 @@
 	touch_atime(&file->f_path);
 }
 
-static rwf_t ovl_iocb_to_rwf(int ifl)
-{
-	rwf_t flags = 0;
-
-	if (ifl & IOCB_NOWAIT)
-		flags |= RWF_NOWAIT;
-	if (ifl & IOCB_HIPRI)
-		flags |= RWF_HIPRI;
-	if (ifl & IOCB_DSYNC)
-		flags |= RWF_DSYNC;
-	if (ifl & IOCB_SYNC)
-		flags |= RWF_SYNC;
-
-	return flags;
-}
-
 static inline void ovl_aio_put(struct ovl_aio_req *aio_req)
 {
 	if (refcount_dec_and_test(&aio_req->ref)) {
@@ -313,7 +300,8 @@
 	old_cred = ovl_override_creds(file_inode(file)->i_sb);
 	if (is_sync_kiocb(iocb)) {
 		ret = vfs_iter_read(real.file, iter, &iocb->ki_pos,
-				    ovl_iocb_to_rwf(iocb->ki_flags));
+				    iocb_to_rw_flags(iocb->ki_flags,
+						     OVL_IOCB_MASK));
 	} else {
 		struct ovl_aio_req *aio_req;
 
@@ -334,7 +322,7 @@
 			ovl_aio_cleanup_handler(aio_req);
 	}
 out:
-	revert_creds(old_cred);
+	ovl_revert_creds(file_inode(file)->i_sb, old_cred);
 	ovl_file_accessed(file);
 out_fdput:
 	fdput(real);
@@ -378,7 +366,7 @@
 	if (is_sync_kiocb(iocb)) {
 		file_start_write(real.file);
 		ret = vfs_iter_write(real.file, iter, &iocb->ki_pos,
-				     ovl_iocb_to_rwf(ifl));
+				     iocb_to_rw_flags(ifl, OVL_IOCB_MASK));
 		file_end_write(real.file);
 		/* Update size */
 		ovl_copyattr(inode);
@@ -407,7 +395,7 @@
 			ovl_aio_cleanup_handler(aio_req);
 	}
 out:
-	revert_creds(old_cred);
+	ovl_revert_creds(file_inode(file)->i_sb, old_cred);
 out_fdput:
 	fdput(real);
 
@@ -452,7 +440,7 @@
 	file_end_write(real.file);
 	/* Update size */
 	ovl_copyattr(inode);
-	revert_creds(old_cred);
+	ovl_revert_creds(inode->i_sb, old_cred);
 	fdput(real);
 
 out_unlock:
@@ -479,7 +467,7 @@
 	if (file_inode(real.file) == ovl_inode_upper(file_inode(file))) {
 		old_cred = ovl_override_creds(file_inode(file)->i_sb);
 		ret = vfs_fsync_range(real.file, start, end, datasync);
-		revert_creds(old_cred);
+		ovl_revert_creds(file_inode(file)->i_sb, old_cred);
 	}
 
 	fdput(real);
@@ -503,7 +491,7 @@
 
 	old_cred = ovl_override_creds(file_inode(file)->i_sb);
 	ret = call_mmap(vma->vm_file, vma);
-	revert_creds(old_cred);
+	ovl_revert_creds(file_inode(file)->i_sb, old_cred);
 	ovl_file_accessed(file);
 
 	return ret;
@@ -529,7 +517,7 @@
 
 	old_cred = ovl_override_creds(file_inode(file)->i_sb);
 	ret = vfs_fallocate(real.file, mode, offset, len);
-	revert_creds(old_cred);
+	ovl_revert_creds(file_inode(file)->i_sb, old_cred);
 
 	/* Update size */
 	ovl_copyattr(inode);
@@ -554,7 +542,7 @@
 
 	old_cred = ovl_override_creds(file_inode(file)->i_sb);
 	ret = vfs_fadvise(real.file, offset, len, advice);
-	revert_creds(old_cred);
+	ovl_revert_creds(file_inode(file)->i_sb, old_cred);
 
 	fdput(real);
 
@@ -613,7 +601,7 @@
 						flags);
 		break;
 	}
-	revert_creds(old_cred);
+	ovl_revert_creds(file_inode(file_out)->i_sb, old_cred);
 
 	/* Update size */
 	ovl_copyattr(inode_out);
@@ -675,7 +663,7 @@
 	if (real.file->f_op->flush) {
 		old_cred = ovl_override_creds(file_inode(file)->i_sb);
 		err = real.file->f_op->flush(real.file, id);
-		revert_creds(old_cred);
+		ovl_revert_creds(file_inode(file)->i_sb, old_cred);
 	}
 	fdput(real);
 
diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c
index 65e5e6e..de80b0d 100644
--- a/fs/overlayfs/inode.c
+++ b/fs/overlayfs/inode.c
@@ -78,7 +78,7 @@
 		inode_lock(upperdentry->d_inode);
 		old_cred = ovl_override_creds(dentry->d_sb);
 		err = notify_change(&init_user_ns, upperdentry, attr, NULL);
-		revert_creds(old_cred);
+		ovl_revert_creds(dentry->d_sb, old_cred);
 		if (!err)
 			ovl_copyattr(dentry->d_inode);
 		inode_unlock(upperdentry->d_inode);
@@ -270,7 +270,7 @@
 		stat->nlink = dentry->d_inode->i_nlink;
 
 out:
-	revert_creds(old_cred);
+	ovl_revert_creds(dentry->d_sb, old_cred);
 
 	return err;
 }
@@ -305,7 +305,7 @@
 		mask |= MAY_READ;
 	}
 	err = inode_permission(&init_user_ns, realinode, mask);
-	revert_creds(old_cred);
+	ovl_revert_creds(inode->i_sb, old_cred);
 
 	return err;
 }
@@ -322,7 +322,7 @@
 
 	old_cred = ovl_override_creds(dentry->d_sb);
 	p = vfs_get_link(ovl_dentry_real(dentry), done);
-	revert_creds(old_cred);
+	ovl_revert_creds(dentry->d_sb, old_cred);
 	return p;
 }
 
@@ -353,7 +353,7 @@
 	if (!value && !upperdentry) {
 		old_cred = ovl_override_creds(dentry->d_sb);
 		err = vfs_getxattr(&init_user_ns, realdentry, name, NULL, 0);
-		revert_creds(old_cred);
+		ovl_revert_creds(dentry->d_sb, old_cred);
 		if (err < 0)
 			goto out_drop_write;
 	}
@@ -374,7 +374,7 @@
 		WARN_ON(flags != XATTR_REPLACE);
 		err = vfs_removexattr(&init_user_ns, realdentry, name);
 	}
-	revert_creds(old_cred);
+	ovl_revert_creds(dentry->d_sb, old_cred);
 
 	/* copy c/mtime */
 	ovl_copyattr(inode);
@@ -395,7 +395,7 @@
 
 	old_cred = ovl_override_creds(dentry->d_sb);
 	res = vfs_getxattr(&init_user_ns, realdentry, name, value, size);
-	revert_creds(old_cred);
+	ovl_revert_creds(dentry->d_sb, old_cred);
 	return res;
 }
 
@@ -423,7 +423,7 @@
 
 	old_cred = ovl_override_creds(dentry->d_sb);
 	res = vfs_listxattr(realdentry, list, size);
-	revert_creds(old_cred);
+	ovl_revert_creds(dentry->d_sb, old_cred);
 	if (res <= 0 || size == 0)
 		return res;
 
@@ -469,7 +469,7 @@
 
 	old_cred = ovl_override_creds(inode->i_sb);
 	acl = get_acl(realinode, type);
-	revert_creds(old_cred);
+	ovl_revert_creds(inode->i_sb, old_cred);
 
 	return acl;
 }
@@ -503,7 +503,7 @@
 
 	old_cred = ovl_override_creds(inode->i_sb);
 	err = realinode->i_op->fiemap(realinode, fieinfo, start, len);
-	revert_creds(old_cred);
+	ovl_revert_creds(inode->i_sb, old_cred);
 
 	return err;
 }
@@ -574,7 +574,7 @@
 		err = ovl_set_protattr(inode, upperpath.dentry, fa);
 		if (!err)
 			err = ovl_real_fileattr_set(&upperpath, fa);
-		revert_creds(old_cred);
+		ovl_revert_creds(inode->i_sb, old_cred);
 
 		/*
 		 * Merge real inode flags with inode flags read from
@@ -636,7 +636,7 @@
 	old_cred = ovl_override_creds(inode->i_sb);
 	err = ovl_real_fileattr_get(&realpath, fa);
 	ovl_fileattr_prot_flags(inode, fa);
-	revert_creds(old_cred);
+	ovl_revert_creds(inode->i_sb, old_cred);
 
 	return err;
 }
diff --git a/fs/overlayfs/namei.c b/fs/overlayfs/namei.c
index 9c055d1..233f3cf 100644
--- a/fs/overlayfs/namei.c
+++ b/fs/overlayfs/namei.c
@@ -1105,7 +1105,7 @@
 
 	ovl_dentry_init_reval(dentry, upperdentry);
 
-	revert_creds(old_cred);
+	ovl_revert_creds(dentry->d_sb, old_cred);
 	if (origin_path) {
 		dput(origin_path->dentry);
 		kfree(origin_path);
@@ -1132,7 +1132,7 @@
 	kfree(upperredirect);
 out:
 	kfree(d.redirect);
-	revert_creds(old_cred);
+	ovl_revert_creds(dentry->d_sb, old_cred);
 	return ERR_PTR(err);
 }
 
@@ -1184,7 +1184,7 @@
 			dput(this);
 		}
 	}
-	revert_creds(old_cred);
+	ovl_revert_creds(dentry->d_sb, old_cred);
 
 	return positive;
 }
diff --git a/fs/overlayfs/overlayfs.h b/fs/overlayfs/overlayfs.h
index a96b675..00fced1 100644
--- a/fs/overlayfs/overlayfs.h
+++ b/fs/overlayfs/overlayfs.h
@@ -280,6 +280,7 @@
 void ovl_drop_write(struct dentry *dentry);
 struct dentry *ovl_workdir(struct dentry *dentry);
 const struct cred *ovl_override_creds(struct super_block *sb);
+void ovl_revert_creds(struct super_block *sb, const struct cred *oldcred);
 int ovl_can_decode_fh(struct super_block *sb);
 struct dentry *ovl_indexdir(struct super_block *sb);
 bool ovl_index_all(struct super_block *sb);
diff --git a/fs/overlayfs/ovl_entry.h b/fs/overlayfs/ovl_entry.h
index 0803163..f7d9699 100644
--- a/fs/overlayfs/ovl_entry.h
+++ b/fs/overlayfs/ovl_entry.h
@@ -20,6 +20,7 @@
 	bool metacopy;
 	bool userxattr;
 	bool ovl_volatile;
+	bool override_creds;
 };
 
 struct ovl_sb {
diff --git a/fs/overlayfs/readdir.c b/fs/overlayfs/readdir.c
index 150fdf3..c6038e6 100644
--- a/fs/overlayfs/readdir.c
+++ b/fs/overlayfs/readdir.c
@@ -286,7 +286,7 @@
 		}
 		inode_unlock(dir->d_inode);
 	}
-	revert_creds(old_cred);
+	ovl_revert_creds(rdd->dentry->d_sb, old_cred);
 
 	return err;
 }
@@ -789,7 +789,7 @@
 	}
 	err = 0;
 out:
-	revert_creds(old_cred);
+	ovl_revert_creds(dentry->d_sb, old_cred);
 	return err;
 }
 
@@ -841,7 +841,7 @@
 
 	old_cred = ovl_override_creds(file_inode(file)->i_sb);
 	res = ovl_path_open(realpath, O_RDONLY | (file->f_flags & O_LARGEFILE));
-	revert_creds(old_cred);
+	ovl_revert_creds(file_inode(file)->i_sb, old_cred);
 
 	return res;
 }
@@ -967,7 +967,7 @@
 
 	old_cred = ovl_override_creds(dentry->d_sb);
 	err = ovl_dir_read_merged(dentry, list, &root);
-	revert_creds(old_cred);
+	ovl_revert_creds(dentry->d_sb, old_cred);
 	if (err)
 		return err;
 
diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c
index 5310271c..fb86a93 100644
--- a/fs/overlayfs/super.c
+++ b/fs/overlayfs/super.c
@@ -20,6 +20,7 @@
 MODULE_AUTHOR("Miklos Szeredi <miklos@szeredi.hu>");
 MODULE_DESCRIPTION("Overlay filesystem");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 
 
 struct ovl_dir_cache;
@@ -53,6 +54,11 @@
 MODULE_PARM_DESC(xino_auto,
 		 "Auto enable xino feature");
 
+static bool __read_mostly ovl_override_creds_def = true;
+module_param_named(override_creds, ovl_override_creds_def, bool, 0644);
+MODULE_PARM_DESC(ovl_override_creds_def,
+		 "Use mounter's credentials for accesses");
+
 static void ovl_entry_stack_free(struct ovl_entry *oe)
 {
 	unsigned int i;
@@ -388,6 +394,9 @@
 		seq_puts(m, ",volatile");
 	if (ofs->config.userxattr)
 		seq_puts(m, ",userxattr");
+	if (ofs->config.override_creds != ovl_override_creds_def)
+		seq_show_option(m, "override_creds",
+				ofs->config.override_creds ? "on" : "off");
 	return 0;
 }
 
@@ -443,6 +452,8 @@
 	OPT_METACOPY_ON,
 	OPT_METACOPY_OFF,
 	OPT_VOLATILE,
+	OPT_OVERRIDE_CREDS_ON,
+	OPT_OVERRIDE_CREDS_OFF,
 	OPT_ERR,
 };
 
@@ -465,6 +476,8 @@
 	{OPT_METACOPY_ON,		"metacopy=on"},
 	{OPT_METACOPY_OFF,		"metacopy=off"},
 	{OPT_VOLATILE,			"volatile"},
+	{OPT_OVERRIDE_CREDS_ON,		"override_creds=on"},
+	{OPT_OVERRIDE_CREDS_OFF,	"override_creds=off"},
 	{OPT_ERR,			NULL}
 };
 
@@ -524,6 +537,7 @@
 	config->redirect_mode = kstrdup(ovl_redirect_mode_def(), GFP_KERNEL);
 	if (!config->redirect_mode)
 		return -ENOMEM;
+	config->override_creds = ovl_override_creds_def;
 
 	while ((p = ovl_next_opt(&opt)) != NULL) {
 		int token;
@@ -625,6 +639,14 @@
 			config->userxattr = true;
 			break;
 
+		case OPT_OVERRIDE_CREDS_ON:
+			config->override_creds = true;
+			break;
+
+		case OPT_OVERRIDE_CREDS_OFF:
+			config->override_creds = false;
+			break;
+
 		default:
 			pr_err("unrecognized mount option \"%s\" or missing value\n",
 					p);
@@ -2151,7 +2173,6 @@
 	kfree(splitlower);
 
 	sb->s_root = root_dentry;
-
 	return 0;
 
 out_free_oe:
diff --git a/fs/overlayfs/util.c b/fs/overlayfs/util.c
index d62d5ede..aad0042 100644
--- a/fs/overlayfs/util.c
+++ b/fs/overlayfs/util.c
@@ -38,9 +38,18 @@
 {
 	struct ovl_fs *ofs = sb->s_fs_info;
 
+	if (!ofs->config.override_creds)
+		return NULL;
 	return override_creds(ofs->creator_cred);
 }
 
+void ovl_revert_creds(struct super_block *sb, const struct cred *old_cred)
+{
+	if (old_cred)
+		revert_creds(old_cred);
+}
+
+
 /*
  * Check if underlying fs supports file handles and try to determine encoding
  * type, in order to deduce maximum inode number used by fs.
@@ -928,7 +937,7 @@
 	 * value relative to the upper inode nlink in an upper inode xattr.
 	 */
 	err = ovl_set_nlink_upper(dentry);
-	revert_creds(old_cred);
+	ovl_revert_creds(dentry->d_sb, old_cred);
 
 out:
 	if (err)
@@ -946,7 +955,7 @@
 
 		old_cred = ovl_override_creds(dentry->d_sb);
 		ovl_cleanup_index(dentry);
-		revert_creds(old_cred);
+		ovl_revert_creds(dentry->d_sb, old_cred);
 	}
 
 	ovl_inode_unlock(inode);
diff --git a/fs/pipe.c b/fs/pipe.c
index e08f0fe..671d756 100644
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -652,7 +652,7 @@
 	unsigned int head, tail;
 
 	/* Epoll has some historical nasty semantics, this enables them */
-	WRITE_ONCE(pipe->poll_usage, true);
+	WRITE_ONCE(pipe->poll_usage, 1);
 
 	/*
 	 * Reading pipe state only -- no need for acquiring the semaphore.
diff --git a/fs/proc/base.c b/fs/proc/base.c
index 300d53e..01825cb 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -97,6 +97,7 @@
 #include <linux/time_namespace.h>
 #include <linux/resctrl.h>
 #include <linux/cn_proc.h>
+#include <linux/cpufreq_times.h>
 #include <trace/events/oom.h>
 #include "internal.h"
 #include "fd.h"
@@ -3303,6 +3304,9 @@
 #ifdef CONFIG_LIVEPATCH
 	ONE("patch_state",  S_IRUSR, proc_pid_patch_state),
 #endif
+#ifdef CONFIG_CPU_FREQ_TIMES
+	ONE("time_in_state", 0444, proc_time_in_state_show),
+#endif
 #ifdef CONFIG_STACKLEAK_METRICS
 	ONE("stack_depth", S_IRUGO, proc_stack_depth),
 #endif
@@ -3646,6 +3650,9 @@
 #ifdef CONFIG_SECCOMP_CACHE_DEBUG
 	ONE("seccomp_cache", S_IRUSR, proc_pid_seccomp_cache),
 #endif
+#ifdef CONFIG_CPU_FREQ_TIMES
+	ONE("time_in_state", 0444, proc_time_in_state_show),
+#endif
 };
 
 static int proc_tid_base_readdir(struct file *file, struct dir_context *ctx)
diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
index 6fa761c..2a3f23e 100644
--- a/fs/proc/meminfo.c
+++ b/fs/proc/meminfo.c
@@ -18,7 +18,7 @@
 #endif
 #include <asm/page.h>
 #include "internal.h"
-
+#include <trace/hooks/mm.h>
 void __attribute__((weak)) arch_report_meminfo(struct seq_file *m)
 {
 }
@@ -145,6 +145,7 @@
 	show_val_kb(m, "CmaFree:        ",
 		    global_zone_page_state(NR_FREE_CMA_PAGES));
 #endif
+	trace_android_vh_meminfo_proc_show(m);
 
 	hugetlb_report_meminfo(m);
 
diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
index 0b7a00e..518a4f3 100644
--- a/fs/proc/proc_sysctl.c
+++ b/fs/proc/proc_sysctl.c
@@ -26,8 +26,10 @@
 static const struct inode_operations proc_sys_dir_operations;
 
 /* shared constants to be used in various sysctls */
-const int sysctl_vals[] = { -1, 0, 1, 2, 4, 100, 200, 1000, 3000, INT_MAX };
+const int sysctl_vals[] = { 0, 1, INT_MAX };
 EXPORT_SYMBOL(sysctl_vals);
+const int sysctl_vals_new[] = { -1, 0, 1, 2, 4, 100, 200, 1000, 3000, INT_MAX };
+EXPORT_SYMBOL(sysctl_vals_new);
 
 /* Support for permanently empty directories */
 
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index 705a41f..16a537a 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 #include <linux/pagewalk.h>
 #include <linux/vmacache.h>
+#include <linux/mm_inline.h>
 #include <linux/hugetlb.h>
 #include <linux/huge_mm.h>
 #include <linux/mount.h>
@@ -308,6 +309,8 @@
 
 	name = arch_vma_name(vma);
 	if (!name) {
+		struct anon_vma_name *anon_name;
+
 		if (!mm) {
 			name = "[vdso]";
 			goto done;
@@ -319,8 +322,16 @@
 			goto done;
 		}
 
-		if (is_stack(vma))
+		if (is_stack(vma)) {
 			name = "[stack]";
+			goto done;
+		}
+
+		anon_name = anon_vma_name(vma);
+		if (anon_name) {
+			seq_pad(m, ' ');
+			seq_printf(m, "[anon:%s]", anon_name->name);
+		}
 	}
 
 done:
diff --git a/fs/pstore/blk.c b/fs/pstore/blk.c
index 6093088..2d4f78a 100644
--- a/fs/pstore/blk.c
+++ b/fs/pstore/blk.c
@@ -358,6 +358,7 @@
 module_exit(pstore_blk_exit);
 
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 MODULE_AUTHOR("WeiXiong Liao <liaoweixiong@allwinnertech.com>");
 MODULE_AUTHOR("Kees Cook <keescook@chromium.org>");
 MODULE_DESCRIPTION("pstore backend for block devices");
diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c
index f3fa362..80bfa26 100644
--- a/fs/pstore/ram.c
+++ b/fs/pstore/ram.c
@@ -21,6 +21,7 @@
 #include <linux/pstore_ram.h>
 #include <linux/of.h>
 #include <linux/of_address.h>
+#include <linux/of_reserved_mem.h>
 #include "internal.h"
 
 #define RAMOOPS_KERNMSG_HDR "===="
@@ -633,6 +634,7 @@
 {
 	struct device_node *of_node = pdev->dev.of_node;
 	struct device_node *parent_node;
+	struct reserved_mem *rmem;
 	struct resource *res;
 	u32 value;
 	int ret;
@@ -641,13 +643,20 @@
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	if (!res) {
-		dev_err(&pdev->dev,
-			"failed to locate DT /reserved-memory resource\n");
-		return -EINVAL;
+		rmem = of_reserved_mem_lookup(of_node);
+		if (rmem) {
+			pdata->mem_size = rmem->size;
+			pdata->mem_address = rmem->base;
+		} else {
+			dev_err(&pdev->dev,
+				"failed to locate DT /reserved-memory resource\n");
+			return -EINVAL;
+		}
+	} else {
+		pdata->mem_size = resource_size(res);
+		pdata->mem_address = res->start;
 	}
 
-	pdata->mem_size = resource_size(res);
-	pdata->mem_address = res->start;
 	/*
 	 * Setting "unbuffered" is deprecated and will be ignored if
 	 * "mem_type" is also specified.
diff --git a/fs/qnx4/inode.c b/fs/qnx4/inode.c
index 3fb7fc8..704fb7d 100644
--- a/fs/qnx4/inode.c
+++ b/fs/qnx4/inode.c
@@ -420,4 +420,5 @@
 module_init(init_qnx4_fs)
 module_exit(exit_qnx4_fs)
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 
diff --git a/fs/qnx6/inode.c b/fs/qnx6/inode.c
index 61191f7b..ac771f0 100644
--- a/fs/qnx6/inode.c
+++ b/fs/qnx6/inode.c
@@ -679,3 +679,4 @@
 module_init(init_qnx6_fs)
 module_exit(exit_qnx6_fs)
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/read_write.c b/fs/read_write.c
index b4b1527..3f68186 100644
--- a/fs/read_write.c
+++ b/fs/read_write.c
@@ -460,7 +460,7 @@
 		return ret;
 	return __kernel_read(file, buf, count, pos);
 }
-EXPORT_SYMBOL(kernel_read);
+EXPORT_SYMBOL_NS(kernel_read, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
 {
@@ -569,7 +569,7 @@
 	file_end_write(file);
 	return ret;
 }
-EXPORT_SYMBOL(kernel_write);
+EXPORT_SYMBOL_NS(kernel_write, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_t *pos)
 {
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
index f7b05c6..87258c2 100644
--- a/fs/reiserfs/super.c
+++ b/fs/reiserfs/super.c
@@ -2649,6 +2649,7 @@
 MODULE_DESCRIPTION("ReiserFS journaled filesystem");
 MODULE_AUTHOR("Hans Reiser <reiser@namesys.com>");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 
 module_init(init_reiserfs_fs);
 module_exit(exit_reiserfs_fs);
diff --git a/fs/romfs/super.c b/fs/romfs/super.c
index 259f684..c335658 100644
--- a/fs/romfs/super.c
+++ b/fs/romfs/super.c
@@ -666,3 +666,4 @@
 MODULE_DESCRIPTION("Direct-MTD Capable RomFS");
 MODULE_AUTHOR("Red Hat, Inc.");
 MODULE_LICENSE("GPL"); /* Actually dual-licensed, but it doesn't matter for */
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/splice.c b/fs/splice.c
index 5dbce4d..4f15576 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -326,7 +326,7 @@
 
 	return ret;
 }
-EXPORT_SYMBOL(generic_file_splice_read);
+EXPORT_SYMBOL_NS(generic_file_splice_read, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 const struct pipe_buf_operations default_pipe_buf_ops = {
 	.release	= generic_pipe_buf_release,
@@ -725,7 +725,7 @@
 	return ret;
 }
 
-EXPORT_SYMBOL(iter_file_splice_write);
+EXPORT_SYMBOL_NS(iter_file_splice_write, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * generic_splice_sendpage - splice data from a pipe to a socket
diff --git a/fs/squashfs/Makefile b/fs/squashfs/Makefile
index 7bd9b8b..477c89a 100644
--- a/fs/squashfs/Makefile
+++ b/fs/squashfs/Makefile
@@ -5,9 +5,9 @@
 
 obj-$(CONFIG_SQUASHFS) += squashfs.o
 squashfs-y += block.o cache.o dir.o export.o file.o fragment.o id.o inode.o
-squashfs-y += namei.o super.o symlink.o decompressor.o
+squashfs-y += namei.o super.o symlink.o decompressor.o page_actor.o
 squashfs-$(CONFIG_SQUASHFS_FILE_CACHE) += file_cache.o
-squashfs-$(CONFIG_SQUASHFS_FILE_DIRECT) += file_direct.o page_actor.o
+squashfs-$(CONFIG_SQUASHFS_FILE_DIRECT) += file_direct.o
 squashfs-$(CONFIG_SQUASHFS_DECOMP_SINGLE) += decompressor_single.o
 squashfs-$(CONFIG_SQUASHFS_DECOMP_MULTI) += decompressor_multi.o
 squashfs-$(CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU) += decompressor_multi_percpu.o
diff --git a/fs/squashfs/block.c b/fs/squashfs/block.c
index 2db8bcf..6733e60 100644
--- a/fs/squashfs/block.c
+++ b/fs/squashfs/block.c
@@ -17,6 +17,7 @@
 #include <linux/fs.h>
 #include <linux/vfs.h>
 #include <linux/slab.h>
+#include <linux/pagemap.h>
 #include <linux/string.h>
 #include <linux/buffer_head.h>
 #include <linux/bio.h>
@@ -34,12 +35,15 @@
 			     struct squashfs_page_actor *actor,
 			     int offset, int req_length)
 {
-	void *actor_addr = squashfs_first_page(actor);
+	void *actor_addr;
 	struct bvec_iter_all iter_all = {};
 	struct bio_vec *bvec = bvec_init_iter_all(&iter_all);
 	int copied_bytes = 0;
 	int actor_offset = 0;
 
+	squashfs_actor_nobuff(actor);
+	actor_addr = squashfs_first_page(actor);
+
 	if (WARN_ON_ONCE(!bio_next_segment(bio, &iter_all)))
 		return 0;
 
@@ -49,8 +53,9 @@
 
 		bytes_to_copy = min_t(int, bytes_to_copy,
 				      req_length - copied_bytes);
-		memcpy(actor_addr + actor_offset, bvec_virt(bvec) + offset,
-		       bytes_to_copy);
+		if (!IS_ERR(actor_addr))
+			memcpy(actor_addr + actor_offset, bvec_virt(bvec) +
+					offset, bytes_to_copy);
 
 		actor_offset += bytes_to_copy;
 		copied_bytes += bytes_to_copy;
@@ -72,10 +77,120 @@
 	return copied_bytes;
 }
 
+static int squashfs_bio_read_cached(struct bio *fullbio,
+		struct address_space *cache_mapping, u64 index, int length,
+		u64 read_start, u64 read_end, int page_count)
+{
+	struct page *head_to_cache = NULL, *tail_to_cache = NULL;
+	int start_idx = 0, end_idx = 0;
+	struct bvec_iter_all iter_all;
+	struct bio *bio = NULL;
+	struct bio_vec *bv;
+	int idx = 0;
+	int err = 0;
+
+	bio_for_each_segment_all(bv, fullbio, iter_all) {
+		struct page *page = bv->bv_page;
+
+		if (page->mapping == cache_mapping) {
+			idx++;
+			continue;
+		}
+
+		/*
+		 * We only use this when the device block size is the same as
+		 * the page size, so read_start and read_end cover full pages.
+		 *
+		 * Compare these to the original required index and length to
+		 * only cache pages which were requested partially, since these
+		 * are the ones which are likely to be needed when reading
+		 * adjacent blocks.
+		 */
+		if (idx == 0 && index != read_start)
+			head_to_cache = page;
+		else if (idx == page_count - 1 && index + length != read_end)
+			tail_to_cache = page;
+
+		if (!bio || idx != end_idx) {
+			struct bio *new = bio_clone_fast(fullbio,
+							  GFP_NOIO, &fs_bio_set);
+
+			if (bio) {
+				bio_trim(bio, start_idx * PAGE_SECTORS,
+					 (end_idx - start_idx) * PAGE_SECTORS);
+				bio_chain(bio, new);
+				submit_bio(bio);
+			}
+
+			bio = new;
+			start_idx = idx;
+		}
+
+		idx++;
+		end_idx = idx;
+	}
+
+	if (bio) {
+		bio_trim(bio, start_idx * PAGE_SECTORS,
+			 (end_idx - start_idx) * PAGE_SECTORS);
+		err = submit_bio_wait(bio);
+		bio_put(bio);
+	}
+
+	if (err)
+		return err;
+
+	if (head_to_cache) {
+		int ret = add_to_page_cache_lru(head_to_cache, cache_mapping,
+						read_start >> PAGE_SHIFT,
+						GFP_NOIO);
+
+		if (!ret) {
+			SetPageUptodate(head_to_cache);
+			unlock_page(head_to_cache);
+		}
+
+	}
+
+	if (tail_to_cache) {
+		int ret = add_to_page_cache_lru(tail_to_cache, cache_mapping,
+						(read_end >> PAGE_SHIFT) - 1,
+						GFP_NOIO);
+
+		if (!ret) {
+			SetPageUptodate(tail_to_cache);
+			unlock_page(tail_to_cache);
+		}
+	}
+
+	return 0;
+}
+
+static struct page *squashfs_get_cache_page(struct address_space *mapping,
+					    pgoff_t index)
+{
+	struct page *page;
+
+	if (!mapping)
+		return NULL;
+
+	page = find_get_page(mapping, index);
+	if (!page)
+		return NULL;
+
+	if (!PageUptodate(page)) {
+		put_page(page);
+		return NULL;
+	}
+
+	return page;
+}
+
 static int squashfs_bio_read(struct super_block *sb, u64 index, int length,
 			     struct bio **biop, int *block_offset)
 {
 	struct squashfs_sb_info *msblk = sb->s_fs_info;
+	struct address_space *cache_mapping = msblk->cache_mapping;
 	const u64 read_start = round_down(index, msblk->devblksize);
 	const sector_t block = read_start >> msblk->devblksize_log2;
 	const u64 read_end = round_up(index + length, msblk->devblksize);
@@ -101,21 +216,33 @@
 	for (i = 0; i < page_count; ++i) {
 		unsigned int len =
 			min_t(unsigned int, PAGE_SIZE - offset, total_len);
-		struct page *page = alloc_page(GFP_NOIO);
+		pgoff_t index = (read_start >> PAGE_SHIFT) + i;
+		struct page *page;
+
+		page = squashfs_get_cache_page(cache_mapping, index);
+		if (!page)
+			page = alloc_page(GFP_NOIO);
 
 		if (!page) {
 			error = -ENOMEM;
 			goto out_free_bio;
 		}
-		if (!bio_add_page(bio, page, len, offset)) {
-			error = -EIO;
-			goto out_free_bio;
-		}
+
+		/*
+		 * Use the __ version to avoid merging since we need each page
+		 * to be separate when we check for and avoid cached pages.
+		 */
+		__bio_add_page(bio, page, len, offset);
 		offset = 0;
 		total_len -= len;
 	}
 
-	error = submit_bio_wait(bio);
+	if (cache_mapping)
+		error = squashfs_bio_read_cached(bio, cache_mapping, index,
+						 length, read_start, read_end,
+						 page_count);
+	else
+		error = submit_bio_wait(bio);
 	if (error)
 		goto out_free_bio;
 
diff --git a/fs/squashfs/decompressor.h b/fs/squashfs/decompressor.h
index 1b9ccfd..19ab608 100644
--- a/fs/squashfs/decompressor.h
+++ b/fs/squashfs/decompressor.h
@@ -20,6 +20,7 @@
 		struct bio *, int, int, struct squashfs_page_actor *);
 	int	id;
 	char	*name;
+	int	alloc_buffer;
 	int	supported;
 };
 
diff --git a/fs/squashfs/file.c b/fs/squashfs/file.c
index 89d4929..c2cda43 100644
--- a/fs/squashfs/file.c
+++ b/fs/squashfs/file.c
@@ -39,6 +39,7 @@
 #include "squashfs_fs_sb.h"
 #include "squashfs_fs_i.h"
 #include "squashfs.h"
+#include "page_actor.h"
 
 /*
  * Locate cache slot in range [offset, index] for specified inode.  If
@@ -494,7 +495,142 @@
 	return 0;
 }
 
+static int squashfs_readahead_fragment(struct page **page,
+	unsigned int pages, unsigned int expected)
+{
+	struct inode *inode = page[0]->mapping->host;
+	struct squashfs_cache_entry *buffer = squashfs_get_fragment(inode->i_sb,
+		squashfs_i(inode)->fragment_block,
+		squashfs_i(inode)->fragment_size);
+	struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info;
+	unsigned int n, mask = (1 << (msblk->block_log - PAGE_SHIFT)) - 1;
+	int error = buffer->error;
+
+	if (error)
+		goto out;
+
+	expected += squashfs_i(inode)->fragment_offset;
+
+	for (n = 0; n < pages; n++) {
+		unsigned int base = (page[n]->index & mask) << PAGE_SHIFT;
+		unsigned int offset = base + squashfs_i(inode)->fragment_offset;
+
+		if (expected > offset) {
+			unsigned int avail = min_t(unsigned int, expected -
+				offset, PAGE_SIZE);
+
+			squashfs_fill_page(page[n], buffer, offset, avail);
+		}
+
+		unlock_page(page[n]);
+		put_page(page[n]);
+	}
+
+out:
+	squashfs_cache_put(buffer);
+	return error;
+}
+
+static void squashfs_readahead(struct readahead_control *ractl)
+{
+	struct inode *inode = ractl->mapping->host;
+	struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info;
+	size_t mask = (1UL << msblk->block_log) - 1;
+	unsigned short shift = msblk->block_log - PAGE_SHIFT;
+	loff_t start = readahead_pos(ractl) & ~mask;
+	size_t len = readahead_length(ractl) + readahead_pos(ractl) - start;
+	struct squashfs_page_actor *actor;
+	unsigned int nr_pages = 0;
+	struct page **pages;
+	int i, file_end = i_size_read(inode) >> msblk->block_log;
+	unsigned int max_pages = 1UL << shift;
+
+	readahead_expand(ractl, start, (len | mask) + 1);
+
+	pages = kmalloc_array(max_pages, sizeof(void *), GFP_KERNEL);
+	if (!pages)
+		return;
+
+	for (;;) {
+		pgoff_t index;
+		int res, bsize;
+		u64 block = 0;
+		unsigned int expected;
+		struct page *last_page;
+
+		expected = start >> msblk->block_log == file_end ?
+			   (i_size_read(inode) & (msblk->block_size - 1)) :
+			    msblk->block_size;
+
+		max_pages = (expected + PAGE_SIZE - 1) >> PAGE_SHIFT;
+
+		nr_pages = __readahead_batch(ractl, pages, max_pages);
+		if (!nr_pages)
+			break;
+
+		if (readahead_pos(ractl) >= i_size_read(inode))
+			goto skip_pages;
+
+		index = pages[0]->index >> shift;
+
+		if ((pages[nr_pages - 1]->index >> shift) != index)
+			goto skip_pages;
+
+		if (index == file_end && squashfs_i(inode)->fragment_block !=
+						SQUASHFS_INVALID_BLK) {
+			res = squashfs_readahead_fragment(pages, nr_pages,
+							  expected);
+			if (res)
+				goto skip_pages;
+			continue;
+		}
+
+		bsize = read_blocklist(inode, index, &block);
+		if (bsize == 0)
+			goto skip_pages;
+
+		actor = squashfs_page_actor_init_special(msblk, pages, nr_pages,
+							 expected);
+		if (!actor)
+			goto skip_pages;
+
+		res = squashfs_read_data(inode->i_sb, block, bsize, NULL, actor);
+
+		last_page = squashfs_page_actor_free(actor);
+
+		if (res == expected) {
+			int bytes;
+
+			/* Last page (if present) may have trailing bytes not filled */
+			bytes = res % PAGE_SIZE;
+			if (index == file_end && bytes && last_page)
+				memzero_page(last_page, bytes,
+					     PAGE_SIZE - bytes);
+
+			for (i = 0; i < nr_pages; i++) {
+				flush_dcache_page(pages[i]);
+				SetPageUptodate(pages[i]);
+			}
+		}
+
+		for (i = 0; i < nr_pages; i++) {
+			unlock_page(pages[i]);
+			put_page(pages[i]);
+		}
+	}
+
+	kfree(pages);
+	return;
+
+skip_pages:
+	for (i = 0; i < nr_pages; i++) {
+		unlock_page(pages[i]);
+		put_page(pages[i]);
+	}
+	kfree(pages);
+}
 
 const struct address_space_operations squashfs_aops = {
-	.readpage = squashfs_readpage
+	.readpage = squashfs_readpage,
+	.readahead = squashfs_readahead
 };
diff --git a/fs/squashfs/file_direct.c b/fs/squashfs/file_direct.c
index a4894cc..f1ccad5 100644
--- a/fs/squashfs/file_direct.c
+++ b/fs/squashfs/file_direct.c
@@ -18,9 +18,6 @@
 #include "squashfs.h"
 #include "page_actor.h"
 
-static int squashfs_read_cache(struct page *target_page, u64 block, int bsize,
-	int pages, struct page **page, int bytes);
-
 /* Read separately compressed datablock directly into page cache */
 int squashfs_readpage_block(struct page *target_page, u64 block, int bsize,
 	int expected)
@@ -33,7 +30,7 @@
 	int mask = (1 << (msblk->block_log - PAGE_SHIFT)) - 1;
 	int start_index = target_page->index & ~mask;
 	int end_index = start_index | mask;
-	int i, n, pages, missing_pages, bytes, res = -ENOMEM;
+	int i, n, pages, bytes, res = -ENOMEM;
 	struct page **page;
 	struct squashfs_page_actor *actor;
 	void *pageaddr;
@@ -47,50 +44,38 @@
 	if (page == NULL)
 		return res;
 
-	/*
-	 * Create a "page actor" which will kmap and kunmap the
-	 * page cache pages appropriately within the decompressor
-	 */
-	actor = squashfs_page_actor_init_special(page, pages, 0);
-	if (actor == NULL)
-		goto out;
-
 	/* Try to grab all the pages covered by the Squashfs block */
-	for (missing_pages = 0, i = 0, n = start_index; i < pages; i++, n++) {
+	for (i = 0, n = start_index; n <= end_index; n++) {
 		page[i] = (n == target_page->index) ? target_page :
 			grab_cache_page_nowait(target_page->mapping, n);
 
-		if (page[i] == NULL) {
-			missing_pages++;
+		if (page[i] == NULL)
 			continue;
-		}
 
 		if (PageUptodate(page[i])) {
 			unlock_page(page[i]);
 			put_page(page[i]);
-			page[i] = NULL;
-			missing_pages++;
+			continue;
 		}
+
+		i++;
 	}
 
-	if (missing_pages) {
-		/*
-		 * Couldn't get one or more pages, this page has either
-		 * been VM reclaimed, but others are still in the page cache
-		 * and uptodate, or we're racing with another thread in
-		 * squashfs_readpage also trying to grab them.  Fall back to
-		 * using an intermediate buffer.
-		 */
-		res = squashfs_read_cache(target_page, block, bsize, pages,
-							page, expected);
-		if (res < 0)
-			goto mark_errored;
+	pages = i;
 
+	/*
+	 * Create a "page actor" which will kmap and kunmap the
+	 * page cache pages appropriately within the decompressor
+	 */
+	actor = squashfs_page_actor_init_special(msblk, page, pages, expected);
+	if (actor == NULL)
 		goto out;
-	}
 
 	/* Decompress directly into the page cache buffers */
 	res = squashfs_read_data(inode->i_sb, block, bsize, NULL, actor);
+
+	squashfs_page_actor_free(actor);
+
 	if (res < 0)
 		goto mark_errored;
 
@@ -99,12 +84,12 @@
 		goto mark_errored;
 	}
 
-	/* Last page may have trailing bytes not filled */
+	/* Last page (if present) may have trailing bytes not filled */
 	bytes = res % PAGE_SIZE;
-	if (bytes) {
-		pageaddr = kmap_atomic(page[pages - 1]);
+	if (page[pages - 1]->index == end_index && bytes) {
+		pageaddr = kmap_local_page(page[pages - 1]);
 		memset(pageaddr + bytes, 0, PAGE_SIZE - bytes);
-		kunmap_atomic(pageaddr);
+		kunmap_local(pageaddr);
 	}
 
 	/* Mark pages as uptodate, unlock and release */
@@ -116,7 +101,6 @@
 			put_page(page[i]);
 	}
 
-	kfree(actor);
 	kfree(page);
 
 	return 0;
@@ -135,40 +119,6 @@
 	}
 
 out:
-	kfree(actor);
 	kfree(page);
 	return res;
 }
-
-
-static int squashfs_read_cache(struct page *target_page, u64 block, int bsize,
-	int pages, struct page **page, int bytes)
-{
-	struct inode *i = target_page->mapping->host;
-	struct squashfs_cache_entry *buffer = squashfs_get_datablock(i->i_sb,
-						 block, bsize);
-	int res = buffer->error, n, offset = 0;
-
-	if (res) {
-		ERROR("Unable to read page, block %llx, size %x\n", block,
-			bsize);
-		goto out;
-	}
-
-	for (n = 0; n < pages && bytes > 0; n++,
-			bytes -= PAGE_SIZE, offset += PAGE_SIZE) {
-		int avail = min_t(int, bytes, PAGE_SIZE);
-
-		if (page[n] == NULL)
-			continue;
-
-		squashfs_fill_page(page[n], buffer, offset, avail);
-		unlock_page(page[n]);
-		if (page[n] != target_page)
-			put_page(page[n]);
-	}
-
-out:
-	squashfs_cache_put(buffer);
-	return res;
-}
diff --git a/fs/squashfs/lz4_wrapper.c b/fs/squashfs/lz4_wrapper.c
index b685b62..4979772 100644
--- a/fs/squashfs/lz4_wrapper.c
+++ b/fs/squashfs/lz4_wrapper.c
@@ -119,10 +119,12 @@
 	buff = stream->output;
 	while (data) {
 		if (bytes <= PAGE_SIZE) {
-			memcpy(data, buff, bytes);
+			if (!IS_ERR(data))
+				memcpy(data, buff, bytes);
 			break;
 		}
-		memcpy(data, buff, PAGE_SIZE);
+		if (!IS_ERR(data))
+			memcpy(data, buff, PAGE_SIZE);
 		buff += PAGE_SIZE;
 		bytes -= PAGE_SIZE;
 		data = squashfs_next_page(output);
@@ -139,5 +141,6 @@
 	.decompress = lz4_uncompress,
 	.id = LZ4_COMPRESSION,
 	.name = "lz4",
+	.alloc_buffer = 0,
 	.supported = 1
 };
diff --git a/fs/squashfs/lzo_wrapper.c b/fs/squashfs/lzo_wrapper.c
index cb510a6..d216aee 100644
--- a/fs/squashfs/lzo_wrapper.c
+++ b/fs/squashfs/lzo_wrapper.c
@@ -93,10 +93,12 @@
 	buff = stream->output;
 	while (data) {
 		if (bytes <= PAGE_SIZE) {
-			memcpy(data, buff, bytes);
+			if (!IS_ERR(data))
+				memcpy(data, buff, bytes);
 			break;
 		} else {
-			memcpy(data, buff, PAGE_SIZE);
+			if (!IS_ERR(data))
+				memcpy(data, buff, PAGE_SIZE);
 			buff += PAGE_SIZE;
 			bytes -= PAGE_SIZE;
 			data = squashfs_next_page(output);
@@ -116,5 +118,6 @@
 	.decompress = lzo_uncompress,
 	.id = LZO_COMPRESSION,
 	.name = "lzo",
+	.alloc_buffer = 0,
 	.supported = 1
 };
diff --git a/fs/squashfs/page_actor.c b/fs/squashfs/page_actor.c
index 520d323..81af6c4 100644
--- a/fs/squashfs/page_actor.c
+++ b/fs/squashfs/page_actor.c
@@ -7,6 +7,8 @@
 #include <linux/kernel.h>
 #include <linux/slab.h>
 #include <linux/pagemap.h>
+#include "squashfs_fs_sb.h"
+#include "decompressor.h"
 #include "page_actor.h"
 
 /*
@@ -50,6 +52,7 @@
 	actor->buffer = buffer;
 	actor->pages = pages;
 	actor->next_page = 0;
+	actor->tmp_buffer = NULL;
 	actor->squashfs_first_page = cache_first_page;
 	actor->squashfs_next_page = cache_next_page;
 	actor->squashfs_finish_page = cache_finish_page;
@@ -57,40 +60,75 @@
 }
 
 /* Implementation of page_actor for decompressing directly into page cache. */
+static void *handle_next_page(struct squashfs_page_actor *actor)
+{
+	int max_pages = (actor->length + PAGE_SIZE - 1) >> PAGE_SHIFT;
+
+	if (actor->returned_pages == max_pages)
+		return NULL;
+
+	if ((actor->next_page == actor->pages) ||
+			(actor->next_index != actor->page[actor->next_page]->index)) {
+		actor->next_index++;
+		actor->returned_pages++;
+		actor->last_page = NULL;
+		return actor->alloc_buffer ? actor->tmp_buffer : ERR_PTR(-ENOMEM);
+	}
+
+	actor->next_index++;
+	actor->returned_pages++;
+	actor->last_page = actor->page[actor->next_page];
+	return actor->pageaddr = kmap_local_page(actor->page[actor->next_page++]);
+}
+
 static void *direct_first_page(struct squashfs_page_actor *actor)
 {
-	actor->next_page = 1;
-	return actor->pageaddr = kmap_atomic(actor->page[0]);
+	return handle_next_page(actor);
 }
 
 static void *direct_next_page(struct squashfs_page_actor *actor)
 {
-	if (actor->pageaddr)
-		kunmap_atomic(actor->pageaddr);
+	if (actor->pageaddr) {
+		kunmap_local(actor->pageaddr);
+		actor->pageaddr = NULL;
+	}
 
-	return actor->pageaddr = actor->next_page == actor->pages ? NULL :
-		kmap_atomic(actor->page[actor->next_page++]);
+	return handle_next_page(actor);
 }
 
 static void direct_finish_page(struct squashfs_page_actor *actor)
 {
 	if (actor->pageaddr)
-		kunmap_atomic(actor->pageaddr);
+		kunmap_local(actor->pageaddr);
 }
 
-struct squashfs_page_actor *squashfs_page_actor_init_special(struct page **page,
-	int pages, int length)
+struct squashfs_page_actor *squashfs_page_actor_init_special(struct squashfs_sb_info *msblk,
+	struct page **page, int pages, int length)
 {
 	struct squashfs_page_actor *actor = kmalloc(sizeof(*actor), GFP_KERNEL);
 
 	if (actor == NULL)
 		return NULL;
 
+	if (msblk->decompressor->alloc_buffer) {
+		actor->tmp_buffer = kmalloc(PAGE_SIZE, GFP_KERNEL);
+
+		if (actor->tmp_buffer == NULL) {
+			kfree(actor);
+			return NULL;
+		}
+	} else
+		actor->tmp_buffer = NULL;
+
 	actor->length = length ? : pages * PAGE_SIZE;
 	actor->page = page;
 	actor->pages = pages;
 	actor->next_page = 0;
+	actor->returned_pages = 0;
+	actor->next_index = page[0]->index & ~((1 << (msblk->block_log - PAGE_SHIFT)) - 1);
 	actor->pageaddr = NULL;
+	actor->last_page = NULL;
+	actor->alloc_buffer = msblk->decompressor->alloc_buffer;
 	actor->squashfs_first_page = direct_first_page;
 	actor->squashfs_next_page = direct_next_page;
 	actor->squashfs_finish_page = direct_finish_page;
diff --git a/fs/squashfs/page_actor.h b/fs/squashfs/page_actor.h
index 2e3073a..97d4983 100644
--- a/fs/squashfs/page_actor.h
+++ b/fs/squashfs/page_actor.h
@@ -6,63 +6,38 @@
  * Phillip Lougher <phillip@squashfs.org.uk>
  */
 
-#ifndef CONFIG_SQUASHFS_FILE_DIRECT
-struct squashfs_page_actor {
-	void	**page;
-	int	pages;
-	int	length;
-	int	next_page;
-};
-
-static inline struct squashfs_page_actor *squashfs_page_actor_init(void **page,
-	int pages, int length)
-{
-	struct squashfs_page_actor *actor = kmalloc(sizeof(*actor), GFP_KERNEL);
-
-	if (actor == NULL)
-		return NULL;
-
-	actor->length = length ? : pages * PAGE_SIZE;
-	actor->page = page;
-	actor->pages = pages;
-	actor->next_page = 0;
-	return actor;
-}
-
-static inline void *squashfs_first_page(struct squashfs_page_actor *actor)
-{
-	actor->next_page = 1;
-	return actor->page[0];
-}
-
-static inline void *squashfs_next_page(struct squashfs_page_actor *actor)
-{
-	return actor->next_page == actor->pages ? NULL :
-		actor->page[actor->next_page++];
-}
-
-static inline void squashfs_finish_page(struct squashfs_page_actor *actor)
-{
-	/* empty */
-}
-#else
 struct squashfs_page_actor {
 	union {
 		void		**buffer;
 		struct page	**page;
 	};
 	void	*pageaddr;
+	void	*tmp_buffer;
 	void    *(*squashfs_first_page)(struct squashfs_page_actor *);
 	void    *(*squashfs_next_page)(struct squashfs_page_actor *);
 	void    (*squashfs_finish_page)(struct squashfs_page_actor *);
+	struct page *last_page;
 	int	pages;
 	int	length;
 	int	next_page;
+	int	alloc_buffer;
+	int	returned_pages;
+	pgoff_t	next_index;
 };
 
-extern struct squashfs_page_actor *squashfs_page_actor_init(void **, int, int);
-extern struct squashfs_page_actor *squashfs_page_actor_init_special(struct page
-							 **, int, int);
+extern struct squashfs_page_actor *squashfs_page_actor_init(void **buffer,
+				int pages, int length);
+extern struct squashfs_page_actor *squashfs_page_actor_init_special(
+				struct squashfs_sb_info *msblk,
+				struct page **page, int pages, int length);
+static inline struct page *squashfs_page_actor_free(struct squashfs_page_actor *actor)
+{
+	struct page *last_page = actor->last_page;
+
+	kfree(actor->tmp_buffer);
+	kfree(actor);
+	return last_page;
+}
 static inline void *squashfs_first_page(struct squashfs_page_actor *actor)
 {
 	return actor->squashfs_first_page(actor);
@@ -75,5 +50,8 @@
 {
 	actor->squashfs_finish_page(actor);
 }
-#endif
+static inline void squashfs_actor_nobuff(struct squashfs_page_actor *actor)
+{
+	actor->alloc_buffer = 0;
+}
 #endif
diff --git a/fs/squashfs/squashfs_fs_sb.h b/fs/squashfs/squashfs_fs_sb.h
index 0c1ae97..7b49852 100644
--- a/fs/squashfs/squashfs_fs_sb.h
+++ b/fs/squashfs/squashfs_fs_sb.h
@@ -47,6 +47,7 @@
 	struct squashfs_cache			*block_cache;
 	struct squashfs_cache			*fragment_cache;
 	struct squashfs_cache			*read_page;
+	struct address_space			*cache_mapping;
 	int					next_meta_index;
 	__le64					*id_table;
 	__le64					*fragment_index;
diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c
index 60d6951..b6f3caa 100644
--- a/fs/squashfs/super.c
+++ b/fs/squashfs/super.c
@@ -257,6 +257,19 @@
 		goto failed_mount;
 	}
 
+	if (msblk->devblksize == PAGE_SIZE) {
+		struct inode *cache = new_inode(sb);
+
+		if (cache == NULL)
+			goto failed_mount;
+
+		set_nlink(cache, 1);
+		cache->i_size = OFFSET_MAX;
+		mapping_set_gfp_mask(cache->i_mapping, GFP_NOFS);
+
+		msblk->cache_mapping = cache->i_mapping;
+	}
+
 	msblk->stream = squashfs_decompressor_setup(sb, flags);
 	if (IS_ERR(msblk->stream)) {
 		err = PTR_ERR(msblk->stream);
@@ -383,6 +396,8 @@
 	squashfs_cache_delete(msblk->fragment_cache);
 	squashfs_cache_delete(msblk->read_page);
 	squashfs_decompressor_destroy(msblk);
+	if (msblk->cache_mapping)
+		iput(msblk->cache_mapping->host);
 	kfree(msblk->inode_lookup_table);
 	kfree(msblk->fragment_index);
 	kfree(msblk->id_table);
@@ -478,6 +493,8 @@
 		squashfs_cache_delete(sbi->fragment_cache);
 		squashfs_cache_delete(sbi->read_page);
 		squashfs_decompressor_destroy(sbi);
+		if (sbi->cache_mapping)
+			iput(sbi->cache_mapping->host);
 		kfree(sbi->id_table);
 		kfree(sbi->fragment_index);
 		kfree(sbi->meta_index);
@@ -584,3 +601,4 @@
 MODULE_DESCRIPTION("squashfs 4.0, a compressed read-only filesystem");
 MODULE_AUTHOR("Phillip Lougher <phillip@squashfs.org.uk>");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/squashfs/xz_wrapper.c b/fs/squashfs/xz_wrapper.c
index 68f6d09..6c49481 100644
--- a/fs/squashfs/xz_wrapper.c
+++ b/fs/squashfs/xz_wrapper.c
@@ -131,6 +131,10 @@
 	stream->buf.out_pos = 0;
 	stream->buf.out_size = PAGE_SIZE;
 	stream->buf.out = squashfs_first_page(output);
+	if (IS_ERR(stream->buf.out)) {
+		error = PTR_ERR(stream->buf.out);
+		goto finish;
+	}
 
 	for (;;) {
 		enum xz_ret xz_err;
@@ -156,7 +160,10 @@
 
 		if (stream->buf.out_pos == stream->buf.out_size) {
 			stream->buf.out = squashfs_next_page(output);
-			if (stream->buf.out != NULL) {
+			if (IS_ERR(stream->buf.out)) {
+				error = PTR_ERR(stream->buf.out);
+				break;
+			} else if (stream->buf.out != NULL) {
 				stream->buf.out_pos = 0;
 				total += PAGE_SIZE;
 			}
@@ -171,6 +178,7 @@
 		}
 	}
 
+finish:
 	squashfs_finish_page(output);
 
 	return error ? error : total + stream->buf.out_pos;
@@ -183,5 +191,6 @@
 	.decompress = squashfs_xz_uncompress,
 	.id = XZ_COMPRESSION,
 	.name = "xz",
+	.alloc_buffer = 1,
 	.supported = 1
 };
diff --git a/fs/squashfs/zlib_wrapper.c b/fs/squashfs/zlib_wrapper.c
index a20e904..cbb7afe 100644
--- a/fs/squashfs/zlib_wrapper.c
+++ b/fs/squashfs/zlib_wrapper.c
@@ -62,6 +62,11 @@
 	stream->next_out = squashfs_first_page(output);
 	stream->avail_in = 0;
 
+	if (IS_ERR(stream->next_out)) {
+		error = PTR_ERR(stream->next_out);
+		goto finish;
+	}
+
 	for (;;) {
 		int zlib_err;
 
@@ -85,7 +90,10 @@
 
 		if (stream->avail_out == 0) {
 			stream->next_out = squashfs_next_page(output);
-			if (stream->next_out != NULL)
+			if (IS_ERR(stream->next_out)) {
+				error = PTR_ERR(stream->next_out);
+				break;
+			} else if (stream->next_out != NULL)
 				stream->avail_out = PAGE_SIZE;
 		}
 
@@ -107,6 +115,7 @@
 		}
 	}
 
+finish:
 	squashfs_finish_page(output);
 
 	if (!error)
@@ -122,6 +131,7 @@
 	.decompress = zlib_uncompress,
 	.id = ZLIB_COMPRESSION,
 	.name = "zlib",
+	.alloc_buffer = 1,
 	.supported = 1
 };
 
diff --git a/fs/squashfs/zstd_wrapper.c b/fs/squashfs/zstd_wrapper.c
index 0015cf8..ef91a49 100644
--- a/fs/squashfs/zstd_wrapper.c
+++ b/fs/squashfs/zstd_wrapper.c
@@ -80,6 +80,10 @@
 
 	out_buf.size = PAGE_SIZE;
 	out_buf.dst = squashfs_first_page(output);
+	if (IS_ERR(out_buf.dst)) {
+		error = PTR_ERR(out_buf.dst);
+		goto finish;
+	}
 
 	for (;;) {
 		size_t zstd_err;
@@ -104,7 +108,10 @@
 
 		if (out_buf.pos == out_buf.size) {
 			out_buf.dst = squashfs_next_page(output);
-			if (out_buf.dst == NULL) {
+			if (IS_ERR(out_buf.dst)) {
+				error = PTR_ERR(out_buf.dst);
+				break;
+			} else if (out_buf.dst == NULL) {
 				/* Shouldn't run out of pages
 				 * before stream is done.
 				 */
@@ -129,6 +136,8 @@
 		}
 	}
 
+finish:
+
 	squashfs_finish_page(output);
 
 	return error ? error : total_out;
@@ -140,5 +149,6 @@
 	.decompress = zstd_uncompress,
 	.id = ZSTD_COMPRESSION,
 	.name = "zstd",
+	.alloc_buffer = 1,
 	.supported = 1
 };
diff --git a/fs/stat.c b/fs/stat.c
index 246d138..3e5be67 100644
--- a/fs/stat.c
+++ b/fs/stat.c
@@ -57,7 +57,7 @@
 	stat->blksize = i_blocksize(inode);
 	stat->blocks = inode->i_blocks;
 }
-EXPORT_SYMBOL(generic_fillattr);
+EXPORT_SYMBOL_NS(generic_fillattr, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 /**
  * generic_fill_statx_attr - Fill in the statx attributes from the inode flags
diff --git a/fs/super.c b/fs/super.c
index 048576b..becf62d 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -1403,7 +1403,7 @@
 error:
 	return ERR_PTR(error);
 }
-EXPORT_SYMBOL(mount_bdev);
+EXPORT_SYMBOL_NS(mount_bdev, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 void kill_block_super(struct super_block *sb)
 {
@@ -1417,7 +1417,7 @@
 	blkdev_put(bdev, mode | FMODE_EXCL);
 }
 
-EXPORT_SYMBOL(kill_block_super);
+EXPORT_SYMBOL_NS(kill_block_super, ANDROID_GKI_VFS_EXPORT_ONLY);
 #endif
 
 struct dentry *mount_nodev(struct file_system_type *fs_type,
diff --git a/fs/sync.c b/fs/sync.c
index c769001..847f4c6 100644
--- a/fs/sync.c
+++ b/fs/sync.c
@@ -10,7 +10,7 @@
 #include <linux/slab.h>
 #include <linux/export.h>
 #include <linux/namei.h>
-#include <linux/sched.h>
+#include <linux/sched/xacct.h>
 #include <linux/writeback.h>
 #include <linux/syscalls.h>
 #include <linux/linkage.h>
@@ -69,7 +69,7 @@
 	}
 	return sync_blockdev(sb->s_bdev);
 }
-EXPORT_SYMBOL(sync_filesystem);
+EXPORT_SYMBOL_NS(sync_filesystem, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 static void sync_inodes_one_sb(struct super_block *sb, void *arg)
 {
@@ -211,6 +211,7 @@
 	if (f.file) {
 		ret = vfs_fsync(f.file, datasync);
 		fdput(f);
+		inc_syscfs(current);
 	}
 	return ret;
 }
diff --git a/fs/sysv/super.c b/fs/sysv/super.c
index cc8e2ed..e5383bf 100644
--- a/fs/sysv/super.c
+++ b/fs/sysv/super.c
@@ -592,3 +592,4 @@
 module_init(init_sysv_fs)
 module_exit(exit_sysv_fs)
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/tracefs/inode.c b/fs/tracefs/inode.c
index 066e834..8c11efc 100644
--- a/fs/tracefs/inode.c
+++ b/fs/tracefs/inode.c
@@ -522,8 +522,7 @@
 	if (unlikely(!inode))
 		return failed_creating(dentry);
 
-	/* Do not set bits for OTH */
-	inode->i_mode = S_IFDIR | S_IRWXU | S_IRUSR| S_IRGRP | S_IXUSR | S_IXGRP;
+	inode->i_mode = S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO;
 	inode->i_op = ops;
 	inode->i_fop = &simple_dir_operations;
 	inode->i_uid = d_inode(dentry->d_parent)->i_uid;
diff --git a/fs/ubifs/crypto.c b/fs/ubifs/crypto.c
index 22be7ae..c57b46a 100644
--- a/fs/ubifs/crypto.c
+++ b/fs/ubifs/crypto.c
@@ -82,5 +82,4 @@
 	.get_context		= ubifs_crypt_get_context,
 	.set_context		= ubifs_crypt_set_context,
 	.empty_dir		= ubifs_crypt_empty_dir,
-	.max_namelen		= UBIFS_MAX_NLEN,
 };
diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c
index 7cc2abc..9471df4 100644
--- a/fs/ubifs/file.c
+++ b/fs/ubifs/file.c
@@ -1604,6 +1604,7 @@
 	.fault        = filemap_fault,
 	.map_pages = filemap_map_pages,
 	.page_mkwrite = ubifs_vm_page_mkwrite,
+	.speculative = true,
 };
 
 static int ubifs_file_mmap(struct file *file, struct vm_area_struct *vma)
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
index 32c1f42..c0fc3db 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -2484,6 +2484,7 @@
 module_exit(ubifs_exit);
 
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 MODULE_VERSION(__stringify(UBIFS_VERSION));
 MODULE_AUTHOR("Artem Bityutskiy, Adrian Hunter");
 MODULE_DESCRIPTION("UBIFS - UBI File System");
diff --git a/fs/udf/super.c b/fs/udf/super.c
index 6b85c66..7d5ae48 100644
--- a/fs/udf/super.c
+++ b/fs/udf/super.c
@@ -2547,5 +2547,6 @@
 MODULE_AUTHOR("Ben Fennema");
 MODULE_DESCRIPTION("Universal Disk Format Filesystem");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 module_init(init_udf_fs)
 module_exit(exit_udf_fs)
diff --git a/fs/ufs/super.c b/fs/ufs/super.c
index 00a01471..5a6452c 100644
--- a/fs/ufs/super.c
+++ b/fs/ufs/super.c
@@ -1541,3 +1541,4 @@
 module_init(init_ufs_fs)
 module_exit(exit_ufs_fs)
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c
index b56e8e3..232861e 100644
--- a/fs/userfaultfd.c
+++ b/fs/userfaultfd.c
@@ -15,6 +15,7 @@
 #include <linux/sched/signal.h>
 #include <linux/sched/mm.h>
 #include <linux/mm.h>
+#include <linux/mm_inline.h>
 #include <linux/mmu_notifier.h>
 #include <linux/poll.h>
 #include <linux/slab.h>
@@ -877,7 +878,7 @@
 				 new_flags, vma->anon_vma,
 				 vma->vm_file, vma->vm_pgoff,
 				 vma_policy(vma),
-				 NULL_VM_UFFD_CTX);
+				 NULL_VM_UFFD_CTX, anon_vma_name(vma));
 		if (prev)
 			vma = prev;
 		else
@@ -1436,7 +1437,8 @@
 		prev = vma_merge(mm, prev, start, vma_end, new_flags,
 				 vma->anon_vma, vma->vm_file, vma->vm_pgoff,
 				 vma_policy(vma),
-				 ((struct vm_userfaultfd_ctx){ ctx }));
+				 ((struct vm_userfaultfd_ctx){ ctx }),
+				 anon_vma_name(vma));
 		if (prev) {
 			vma = prev;
 			goto next;
@@ -1613,7 +1615,7 @@
 		prev = vma_merge(mm, prev, start, vma_end, new_flags,
 				 vma->anon_vma, vma->vm_file, vma->vm_pgoff,
 				 vma_policy(vma),
-				 NULL_VM_UFFD_CTX);
+				 NULL_VM_UFFD_CTX, anon_vma_name(vma));
 		if (prev) {
 			vma = prev;
 			goto next;
diff --git a/fs/vboxsf/file.c b/fs/vboxsf/file.c
index 864c2fa..2bdfdfc 100644
--- a/fs/vboxsf/file.c
+++ b/fs/vboxsf/file.c
@@ -163,6 +163,7 @@
 	.close		= vboxsf_vma_close,
 	.fault		= filemap_fault,
 	.map_pages	= filemap_map_pages,
+	.speculative	= true,
 };
 
 static int vboxsf_file_mmap(struct file *file, struct vm_area_struct *vma)
diff --git a/fs/vboxsf/super.c b/fs/vboxsf/super.c
index 37dd3fe..dd70aef 100644
--- a/fs/vboxsf/super.c
+++ b/fs/vboxsf/super.c
@@ -482,4 +482,5 @@
 MODULE_DESCRIPTION("Oracle VM VirtualBox Module for Host File System Access");
 MODULE_AUTHOR("Oracle Corporation");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 MODULE_ALIAS_FS("vboxsf");
diff --git a/fs/verity/Makefile b/fs/verity/Makefile
index 435559a..4b83234 100644
--- a/fs/verity/Makefile
+++ b/fs/verity/Makefile
@@ -1,5 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 
+ccflags-y += -DDEFAULT_SYMBOL_NAMESPACE=ANDROID_GKI_VFS_EXPORT_ONLY
+
 obj-$(CONFIG_FS_VERITY) += enable.o \
 			   hash_algs.o \
 			   init.o \
diff --git a/fs/verity/signature.c b/fs/verity/signature.c
index 143a530..e33f6c4 100644
--- a/fs/verity/signature.c
+++ b/fs/verity/signature.c
@@ -40,11 +40,38 @@
 int fsverity_verify_signature(const struct fsverity_info *vi,
 			      const u8 *signature, size_t sig_size)
 {
-	const struct inode *inode = vi->inode;
-	const struct fsverity_hash_alg *hash_alg = vi->tree_params.hash_alg;
+	unsigned int digest_algorithm =
+		vi->tree_params.hash_alg - fsverity_hash_algs;
+
+	return __fsverity_verify_signature(vi->inode, signature, sig_size,
+					   vi->file_digest, digest_algorithm);
+}
+
+/**
+ * __fsverity_verify_signature() - check a verity file's signature
+ * @inode: the file's inode
+ * @signature: the file's signature
+ * @sig_size: size of @signature. Can be 0 if there is no signature
+ * @file_digest: the file's digest
+ * @digest_algorithm: the digest algorithm used
+ *
+ * Takes the file's digest and optional signature and verifies the signature
+ * against the digest and the fs-verity keyring if appropriate
+ *
+ * Return: 0 on success (signature valid or not required); -errno on failure
+ */
+int __fsverity_verify_signature(const struct inode *inode, const u8 *signature,
+				size_t sig_size, const u8 *file_digest,
+				unsigned int digest_algorithm)
+{
 	struct fsverity_formatted_digest *d;
+	struct fsverity_hash_alg *hash_alg = fsverity_get_hash_alg(inode,
+							digest_algorithm);
 	int err;
 
+	if (IS_ERR(hash_alg))
+		return PTR_ERR(hash_alg);
+
 	if (sig_size == 0) {
 		if (fsverity_require_signatures) {
 			fsverity_err(inode,
@@ -60,7 +87,7 @@
 	memcpy(d->magic, "FSVerity", 8);
 	d->digest_algorithm = cpu_to_le16(hash_alg - fsverity_hash_algs);
 	d->digest_size = cpu_to_le16(hash_alg->digest_size);
-	memcpy(d->digest, vi->file_digest, hash_alg->digest_size);
+	memcpy(d->digest, file_digest, hash_alg->digest_size);
 
 	err = verify_pkcs7_signature(d, sizeof(*d) + hash_alg->digest_size,
 				     signature, sig_size, fsverity_keyring,
@@ -83,9 +110,10 @@
 	}
 
 	pr_debug("Valid signature for file digest %s:%*phN\n",
-		 hash_alg->name, hash_alg->digest_size, vi->file_digest);
+		 hash_alg->name, hash_alg->digest_size, file_digest);
 	return 0;
 }
+EXPORT_SYMBOL_GPL(__fsverity_verify_signature);
 
 #ifdef CONFIG_SYSCTL
 static struct ctl_table_header *fsverity_sysctl_header;
diff --git a/fs/xattr.c b/fs/xattr.c
index 4c82f27..c17327f 100644
--- a/fs/xattr.c
+++ b/fs/xattr.c
@@ -314,7 +314,7 @@
 
 	return error;
 }
-EXPORT_SYMBOL_GPL(vfs_setxattr);
+EXPORT_SYMBOL_NS_GPL(vfs_setxattr, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 static ssize_t
 xattr_getsecurity(struct user_namespace *mnt_userns, struct inode *inode,
@@ -433,7 +433,7 @@
 nolsm:
 	return __vfs_getxattr(dentry, inode, name, value, size);
 }
-EXPORT_SYMBOL_GPL(vfs_getxattr);
+EXPORT_SYMBOL_NS_GPL(vfs_getxattr, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 ssize_t
 vfs_listxattr(struct dentry *dentry, char *list, size_t size)
@@ -453,7 +453,7 @@
 	}
 	return error;
 }
-EXPORT_SYMBOL_GPL(vfs_listxattr);
+EXPORT_SYMBOL_NS_GPL(vfs_listxattr, ANDROID_GKI_VFS_EXPORT_ONLY);
 
 int
 __vfs_removexattr(struct user_namespace *mnt_userns, struct dentry *dentry,
diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
index 8cd0c3df..ed1a91e 100644
--- a/fs/xfs/xfs_file.c
+++ b/fs/xfs/xfs_file.c
@@ -1408,6 +1408,9 @@
 	struct inode		*inode = file_inode(vmf->vma->vm_file);
 	vm_fault_t ret;
 
+	if (!xfs_ilock_nowait(XFS_I(inode), XFS_MMAPLOCK_SHARED))
+		return (vmf->flags & FAULT_FLAG_SPECULATIVE) ?
+			VM_FAULT_RETRY : 0;
 	xfs_ilock(XFS_I(inode), XFS_MMAPLOCK_SHARED);
 	ret = filemap_map_pages(vmf, start_pgoff, end_pgoff);
 	xfs_iunlock(XFS_I(inode), XFS_MMAPLOCK_SHARED);
diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
index df1d6be..d0f1497 100644
--- a/fs/xfs/xfs_super.c
+++ b/fs/xfs/xfs_super.c
@@ -2361,3 +2361,4 @@
 MODULE_AUTHOR("Silicon Graphics, Inc.");
 MODULE_DESCRIPTION(XFS_VERSION_STRING " with " XFS_BUILD_OPTIONS " enabled");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
diff --git a/fs/zonefs/super.c b/fs/zonefs/super.c
index 9619a68..667ceae 100644
--- a/fs/zonefs/super.c
+++ b/fs/zonefs/super.c
@@ -1911,5 +1911,6 @@
 MODULE_DESCRIPTION("Zone file system for zoned block devices");
 MODULE_LICENSE("GPL");
 MODULE_ALIAS_FS("zonefs");
+MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
 module_init(zonefs_init);
 module_exit(zonefs_exit);
diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
index 82f2c01..c154199 100644
--- a/include/asm-generic/io.h
+++ b/include/asm-generic/io.h
@@ -61,6 +61,35 @@
 #define __io_par(v)     __io_ar(v)
 #endif
 
+#if IS_ENABLED(CONFIG_TRACE_MMIO_ACCESS) && !(defined(__DISABLE_TRACE_MMIO__))
+#include <linux/tracepoint-defs.h>
+
+DECLARE_TRACEPOINT(rwmmio_write);
+DECLARE_TRACEPOINT(rwmmio_post_write);
+DECLARE_TRACEPOINT(rwmmio_read);
+DECLARE_TRACEPOINT(rwmmio_post_read);
+
+void log_write_mmio(u64 val, u8 width, volatile void __iomem *addr,
+		    unsigned long caller_addr);
+void log_post_write_mmio(u64 val, u8 width, volatile void __iomem *addr,
+			 unsigned long caller_addr);
+void log_read_mmio(u8 width, const volatile void __iomem *addr,
+		   unsigned long caller_addr);
+void log_post_read_mmio(u64 val, u8 width, const volatile void __iomem *addr,
+			unsigned long caller_addr);
+
+#else
+
+static inline void log_write_mmio(u64 val, u8 width, volatile void __iomem *addr,
+				  unsigned long caller_addr) {}
+static inline void log_post_write_mmio(u64 val, u8 width, volatile void __iomem *addr,
+				       unsigned long caller_addr) {}
+static inline void log_read_mmio(u8 width, const volatile void __iomem *addr,
+				 unsigned long caller_addr) {}
+static inline void log_post_read_mmio(u64 val, u8 width, const volatile void __iomem *addr,
+				      unsigned long caller_addr) {}
+
+#endif /* CONFIG_TRACE_MMIO_ACCESS */
 
 /*
  * __raw_{read,write}{b,w,l,q}() access memory in native endianness.
@@ -149,9 +178,11 @@
 {
 	u8 val;
 
+	log_read_mmio(8, addr, _THIS_IP_);
 	__io_br();
 	val = __raw_readb(addr);
 	__io_ar(val);
+	log_post_read_mmio(val, 8, addr, _THIS_IP_);
 	return val;
 }
 #endif
@@ -162,9 +193,11 @@
 {
 	u16 val;
 
+	log_read_mmio(16, addr, _THIS_IP_);
 	__io_br();
 	val = __le16_to_cpu((__le16 __force)__raw_readw(addr));
 	__io_ar(val);
+	log_post_read_mmio(val, 16, addr, _THIS_IP_);
 	return val;
 }
 #endif
@@ -175,9 +208,11 @@
 {
 	u32 val;
 
+	log_read_mmio(32, addr, _THIS_IP_);
 	__io_br();
 	val = __le32_to_cpu((__le32 __force)__raw_readl(addr));
 	__io_ar(val);
+	log_post_read_mmio(val, 32, addr, _THIS_IP_);
 	return val;
 }
 #endif
@@ -189,9 +224,11 @@
 {
 	u64 val;
 
+	log_read_mmio(64, addr, _THIS_IP_);
 	__io_br();
 	val = __le64_to_cpu((__le64 __force)__raw_readq(addr));
 	__io_ar(val);
+	log_post_read_mmio(val, 64, addr, _THIS_IP_);
 	return val;
 }
 #endif
@@ -201,9 +238,11 @@
 #define writeb writeb
 static inline void writeb(u8 value, volatile void __iomem *addr)
 {
+	log_write_mmio(value, 8, addr, _THIS_IP_);
 	__io_bw();
 	__raw_writeb(value, addr);
 	__io_aw();
+	log_post_write_mmio(value, 8, addr, _THIS_IP_);
 }
 #endif
 
@@ -211,9 +250,11 @@
 #define writew writew
 static inline void writew(u16 value, volatile void __iomem *addr)
 {
+	log_write_mmio(value, 16, addr, _THIS_IP_);
 	__io_bw();
 	__raw_writew((u16 __force)cpu_to_le16(value), addr);
 	__io_aw();
+	log_post_write_mmio(value, 16, addr, _THIS_IP_);
 }
 #endif
 
@@ -221,9 +262,11 @@
 #define writel writel
 static inline void writel(u32 value, volatile void __iomem *addr)
 {
+	log_write_mmio(value, 32, addr, _THIS_IP_);
 	__io_bw();
 	__raw_writel((u32 __force)__cpu_to_le32(value), addr);
 	__io_aw();
+	log_post_write_mmio(value, 32, addr, _THIS_IP_);
 }
 #endif
 
@@ -232,9 +275,11 @@
 #define writeq writeq
 static inline void writeq(u64 value, volatile void __iomem *addr)
 {
+	log_write_mmio(value, 64, addr, _THIS_IP_);
 	__io_bw();
 	__raw_writeq((u64 __force)__cpu_to_le64(value), addr);
 	__io_aw();
+	log_post_write_mmio(value, 64, addr, _THIS_IP_);
 }
 #endif
 #endif /* CONFIG_64BIT */
@@ -248,7 +293,12 @@
 #define readb_relaxed readb_relaxed
 static inline u8 readb_relaxed(const volatile void __iomem *addr)
 {
-	return __raw_readb(addr);
+	u8 val;
+
+	log_read_mmio(8, addr, _THIS_IP_);
+	val = __raw_readb(addr);
+	log_post_read_mmio(val, 8, addr, _THIS_IP_);
+	return val;
 }
 #endif
 
@@ -256,7 +306,12 @@
 #define readw_relaxed readw_relaxed
 static inline u16 readw_relaxed(const volatile void __iomem *addr)
 {
-	return __le16_to_cpu(__raw_readw(addr));
+	u16 val;
+
+	log_read_mmio(16, addr, _THIS_IP_);
+	val = __le16_to_cpu(__raw_readw(addr));
+	log_post_read_mmio(val, 16, addr, _THIS_IP_);
+	return val;
 }
 #endif
 
@@ -264,7 +319,12 @@
 #define readl_relaxed readl_relaxed
 static inline u32 readl_relaxed(const volatile void __iomem *addr)
 {
-	return __le32_to_cpu(__raw_readl(addr));
+	u32 val;
+
+	log_read_mmio(32, addr, _THIS_IP_);
+	val = __le32_to_cpu(__raw_readl(addr));
+	log_post_read_mmio(val, 32, addr, _THIS_IP_);
+	return val;
 }
 #endif
 
@@ -272,7 +332,12 @@
 #define readq_relaxed readq_relaxed
 static inline u64 readq_relaxed(const volatile void __iomem *addr)
 {
-	return __le64_to_cpu(__raw_readq(addr));
+	u64 val;
+
+	log_read_mmio(64, addr, _THIS_IP_);
+	val =__le64_to_cpu(__raw_readq(addr));
+	log_post_read_mmio(val, 64, addr, _THIS_IP_);
+	return val;
 }
 #endif
 
@@ -280,7 +345,9 @@
 #define writeb_relaxed writeb_relaxed
 static inline void writeb_relaxed(u8 value, volatile void __iomem *addr)
 {
+	log_write_mmio(value, 8, addr, _THIS_IP_);
 	__raw_writeb(value, addr);
+	log_post_write_mmio(value, 8, addr, _THIS_IP_);
 }
 #endif
 
@@ -288,7 +355,9 @@
 #define writew_relaxed writew_relaxed
 static inline void writew_relaxed(u16 value, volatile void __iomem *addr)
 {
+	log_write_mmio(value, 16, addr, _THIS_IP_);
 	__raw_writew(cpu_to_le16(value), addr);
+	log_post_write_mmio(value, 16, addr, _THIS_IP_);
 }
 #endif
 
@@ -296,7 +365,9 @@
 #define writel_relaxed writel_relaxed
 static inline void writel_relaxed(u32 value, volatile void __iomem *addr)
 {
+	log_write_mmio(value, 32, addr, _THIS_IP_);
 	__raw_writel(__cpu_to_le32(value), addr);
+	log_post_write_mmio(value, 32, addr, _THIS_IP_);
 }
 #endif
 
@@ -304,7 +375,9 @@
 #define writeq_relaxed writeq_relaxed
 static inline void writeq_relaxed(u64 value, volatile void __iomem *addr)
 {
+	log_write_mmio(value, 64, addr, _THIS_IP_);
 	__raw_writeq(__cpu_to_le64(value), addr);
+	log_post_write_mmio(value, 64, addr, _THIS_IP_);
 }
 #endif
 
diff --git a/include/crypto/hash.h b/include/crypto/hash.h
index f140e46..7e1e7cda 100644
--- a/include/crypto/hash.h
+++ b/include/crypto/hash.h
@@ -149,7 +149,7 @@
 
 struct shash_desc {
 	struct crypto_shash *tfm;
-	void *__ctx[] __aligned(ARCH_SLAB_MINALIGN);
+	void *__ctx[] __aligned(UL(16));
 };
 
 #define HASH_MAX_DIGESTSIZE	 64
diff --git a/include/crypto/polyval.h b/include/crypto/polyval.h
new file mode 100644
index 0000000..1d630f3
--- /dev/null
+++ b/include/crypto/polyval.h
@@ -0,0 +1,22 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Common values for the Polyval hash algorithm
+ *
+ * Copyright 2021 Google LLC
+ */
+
+#ifndef _CRYPTO_POLYVAL_H
+#define _CRYPTO_POLYVAL_H
+
+#include <linux/types.h>
+#include <linux/crypto.h>
+
+#define POLYVAL_BLOCK_SIZE	16
+#define POLYVAL_DIGEST_SIZE	16
+
+void polyval_mul_non4k(u8 *op1, const u8 *op2);
+
+void polyval_update_non4k(const u8 *key, const u8 *in,
+			  size_t nblocks, u8 *accumulator);
+
+#endif
diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h
index 9c7949eb..dfb4691 100644
--- a/include/drm/drm_dp_helper.h
+++ b/include/drm/drm_dp_helper.h
@@ -1495,7 +1495,7 @@
 
 #define DP_BRANCH_OUI_HEADER_SIZE	0xc
 #define DP_RECEIVER_CAP_SIZE		0xf
-#define DP_DSC_RECEIVER_CAP_SIZE        0x10 /* DSC Capabilities 0x60 through 0x6F */
+#define DP_DSC_RECEIVER_CAP_SIZE        0xf
 #define EDP_PSR_RECEIVER_CAP_SIZE	2
 #define EDP_DISPLAY_CTL_CAP_SIZE	3
 #define DP_LTTPR_COMMON_CAP_SIZE	8
diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h
index c24559f..deccfd3 100644
--- a/include/drm/drm_edid.h
+++ b/include/drm/drm_edid.h
@@ -121,7 +121,7 @@
 			u8 supported_scalings;
 			u8 preferred_refresh;
 		} __attribute__((packed)) cvt;
-	} __attribute__((packed)) formula;
+	} formula;
 } __attribute__((packed));
 
 struct detailed_data_wpindex {
@@ -154,7 +154,7 @@
 		struct detailed_data_wpindex color;
 		struct std_timing timings[6];
 		struct cvt_timing cvt[4];
-	} __attribute__((packed)) data;
+	} data;
 } __attribute__((packed));
 
 #define EDID_DETAIL_EST_TIMINGS 0xf7
@@ -172,7 +172,7 @@
 	union {
 		struct detailed_pixel_timing pixel_data;
 		struct detailed_non_pixel other_data;
-	} __attribute__((packed)) data;
+	} data;
 } __attribute__((packed));
 
 #define DRM_EDID_INPUT_SERRATION_VSYNC (1 << 0)
diff --git a/include/drm/drm_gem_shmem_helper.h b/include/drm/drm_gem_shmem_helper.h
index 311d66c..4199877 100644
--- a/include/drm/drm_gem_shmem_helper.h
+++ b/include/drm/drm_gem_shmem_helper.h
@@ -107,17 +107,16 @@
 	container_of(obj, struct drm_gem_shmem_object, base)
 
 struct drm_gem_shmem_object *drm_gem_shmem_create(struct drm_device *dev, size_t size);
-void drm_gem_shmem_free(struct drm_gem_shmem_object *shmem);
+void drm_gem_shmem_free_object(struct drm_gem_object *obj);
 
 int drm_gem_shmem_get_pages(struct drm_gem_shmem_object *shmem);
 void drm_gem_shmem_put_pages(struct drm_gem_shmem_object *shmem);
-int drm_gem_shmem_pin(struct drm_gem_shmem_object *shmem);
-void drm_gem_shmem_unpin(struct drm_gem_shmem_object *shmem);
-int drm_gem_shmem_vmap(struct drm_gem_shmem_object *shmem, struct dma_buf_map *map);
-void drm_gem_shmem_vunmap(struct drm_gem_shmem_object *shmem, struct dma_buf_map *map);
-int drm_gem_shmem_mmap(struct drm_gem_shmem_object *shmem, struct vm_area_struct *vma);
+int drm_gem_shmem_pin(struct drm_gem_object *obj);
+void drm_gem_shmem_unpin(struct drm_gem_object *obj);
+int drm_gem_shmem_vmap(struct drm_gem_object *obj, struct dma_buf_map *map);
+void drm_gem_shmem_vunmap(struct drm_gem_object *obj, struct dma_buf_map *map);
 
-int drm_gem_shmem_madvise(struct drm_gem_shmem_object *shmem, int madv);
+int drm_gem_shmem_madvise(struct drm_gem_object *obj, int madv);
 
 static inline bool drm_gem_shmem_is_purgeable(struct drm_gem_shmem_object *shmem)
 {
@@ -126,31 +125,33 @@
 		!shmem->base.dma_buf && !shmem->base.import_attach;
 }
 
-void drm_gem_shmem_purge_locked(struct drm_gem_shmem_object *shmem);
-bool drm_gem_shmem_purge(struct drm_gem_shmem_object *shmem);
+void drm_gem_shmem_purge_locked(struct drm_gem_object *obj);
+bool drm_gem_shmem_purge(struct drm_gem_object *obj);
 
-struct sg_table *drm_gem_shmem_get_sg_table(struct drm_gem_shmem_object *shmem);
-struct sg_table *drm_gem_shmem_get_pages_sgt(struct drm_gem_shmem_object *shmem);
+int drm_gem_shmem_dumb_create(struct drm_file *file, struct drm_device *dev,
+			      struct drm_mode_create_dumb *args);
 
-void drm_gem_shmem_print_info(const struct drm_gem_shmem_object *shmem,
-			      struct drm_printer *p, unsigned int indent);
+int drm_gem_shmem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma);
+
+void drm_gem_shmem_print_info(struct drm_printer *p, unsigned int indent,
+			      const struct drm_gem_object *obj);
+
+struct sg_table *drm_gem_shmem_get_sg_table(struct drm_gem_object *obj);
 
 /*
  * GEM object functions
  */
 
 /**
- * drm_gem_shmem_object_free - GEM object function for drm_gem_shmem_free()
+ * drm_gem_shmem_object_free - GEM object function for drm_gem_shmem_free_object()
  * @obj: GEM object to free
  *
- * This function wraps drm_gem_shmem_free(). Drivers that employ the shmem helpers
+ * This function wraps drm_gem_shmem_free_object(). Drivers that employ the shmem helpers
  * should use it as their &drm_gem_object_funcs.free handler.
  */
 static inline void drm_gem_shmem_object_free(struct drm_gem_object *obj)
 {
-	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
-
-	drm_gem_shmem_free(shmem);
+	drm_gem_shmem_free_object(obj);
 }
 
 /**
@@ -165,9 +166,7 @@
 static inline void drm_gem_shmem_object_print_info(struct drm_printer *p, unsigned int indent,
 						   const struct drm_gem_object *obj)
 {
-	const struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
-
-	drm_gem_shmem_print_info(shmem, p, indent);
+	drm_gem_shmem_print_info(p, indent, obj);
 }
 
 /**
@@ -179,9 +178,7 @@
  */
 static inline int drm_gem_shmem_object_pin(struct drm_gem_object *obj)
 {
-	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
-
-	return drm_gem_shmem_pin(shmem);
+	return drm_gem_shmem_pin(obj);
 }
 
 /**
@@ -193,9 +190,7 @@
  */
 static inline void drm_gem_shmem_object_unpin(struct drm_gem_object *obj)
 {
-	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
-
-	drm_gem_shmem_unpin(shmem);
+	drm_gem_shmem_unpin(obj);
 }
 
 /**
@@ -210,9 +205,7 @@
  */
 static inline struct sg_table *drm_gem_shmem_object_get_sg_table(struct drm_gem_object *obj)
 {
-	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
-
-	return drm_gem_shmem_get_sg_table(shmem);
+	return drm_gem_shmem_get_sg_table(obj);
 }
 
 /*
@@ -228,9 +221,7 @@
  */
 static inline int drm_gem_shmem_object_vmap(struct drm_gem_object *obj, struct dma_buf_map *map)
 {
-	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
-
-	return drm_gem_shmem_vmap(shmem, map);
+	return drm_gem_shmem_vmap(obj, map);
 }
 
 /*
@@ -243,9 +234,7 @@
  */
 static inline void drm_gem_shmem_object_vunmap(struct drm_gem_object *obj, struct dma_buf_map *map)
 {
-	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
-
-	drm_gem_shmem_vunmap(shmem, map);
+	drm_gem_shmem_vunmap(obj, map);
 }
 
 /**
@@ -261,9 +250,7 @@
  */
 static inline int drm_gem_shmem_object_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma)
 {
-	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
-
-	return drm_gem_shmem_mmap(shmem, vma);
+	return drm_gem_shmem_mmap(obj, vma);
 }
 
 /*
@@ -274,8 +261,8 @@
 drm_gem_shmem_prime_import_sg_table(struct drm_device *dev,
 				    struct dma_buf_attachment *attach,
 				    struct sg_table *sgt);
-int drm_gem_shmem_dumb_create(struct drm_file *file, struct drm_device *dev,
-			      struct drm_mode_create_dumb *args);
+
+struct sg_table *drm_gem_shmem_get_pages_sgt(struct drm_gem_object *obj);
 
 /**
  * DRM_GEM_SHMEM_DRIVER_OPS - Default shmem GEM operations
diff --git a/include/drm/drm_mode_object.h b/include/drm/drm_mode_object.h
index c34a3e8..6292fa6 100644
--- a/include/drm/drm_mode_object.h
+++ b/include/drm/drm_mode_object.h
@@ -60,7 +60,7 @@
 	void (*free_cb)(struct kref *kref);
 };
 
-#define DRM_OBJECT_MAX_PROPERTY 24
+#define DRM_OBJECT_MAX_PROPERTY 64
 /**
  * struct drm_object_properties - property tracking for &drm_mode_object
  */
diff --git a/include/dt-bindings/leds/common.h b/include/dt-bindings/leds/common.h
index 52b619d..3be89a7 100644
--- a/include/dt-bindings/leds/common.h
+++ b/include/dt-bindings/leds/common.h
@@ -60,6 +60,13 @@
 #define LED_FUNCTION_MICMUTE "micmute"
 #define LED_FUNCTION_MUTE "mute"
 
+/* Used for player LEDs as found on game controllers from e.g. Nintendo, Sony. */
+#define LED_FUNCTION_PLAYER1 "player-1"
+#define LED_FUNCTION_PLAYER2 "player-2"
+#define LED_FUNCTION_PLAYER3 "player-3"
+#define LED_FUNCTION_PLAYER4 "player-4"
+#define LED_FUNCTION_PLAYER5 "player-5"
+
 /* Miscelleaus functions. Use functions above if you can. */
 #define LED_FUNCTION_ACTIVITY "activity"
 #define LED_FUNCTION_ALARM "alarm"
diff --git a/include/kvm/arm_psci.h b/include/kvm/arm_psci.h
index 5b58bd2..4a10033 100644
--- a/include/kvm/arm_psci.h
+++ b/include/kvm/arm_psci.h
@@ -13,8 +13,9 @@
 #define KVM_ARM_PSCI_0_1	PSCI_VERSION(0, 1)
 #define KVM_ARM_PSCI_0_2	PSCI_VERSION(0, 2)
 #define KVM_ARM_PSCI_1_0	PSCI_VERSION(1, 0)
+#define KVM_ARM_PSCI_1_1	PSCI_VERSION(1, 1)
 
-#define KVM_ARM_PSCI_LATEST	KVM_ARM_PSCI_1_0
+#define KVM_ARM_PSCI_LATEST	KVM_ARM_PSCI_1_1
 
 /*
  * We need the KVM pointer independently from the vcpu as we can call
diff --git a/include/kvm/arm_vgic.h b/include/kvm/arm_vgic.h
index e602d84..65e09c3 100644
--- a/include/kvm/arm_vgic.h
+++ b/include/kvm/arm_vgic.h
@@ -5,9 +5,11 @@
 #ifndef __KVM_ARM_VGIC_H
 #define __KVM_ARM_VGIC_H
 
-#include <linux/kernel.h>
+#include <linux/bits.h>
 #include <linux/kvm.h>
 #include <linux/irqreturn.h>
+#include <linux/kref.h>
+#include <linux/mutex.h>
 #include <linux/spinlock.h>
 #include <linux/static_key.h>
 #include <linux/types.h>
@@ -378,8 +380,7 @@
 int kvm_vgic_vcpu_pending_irq(struct kvm_vcpu *vcpu);
 
 void kvm_vgic_load(struct kvm_vcpu *vcpu);
-void kvm_vgic_put(struct kvm_vcpu *vcpu);
-void kvm_vgic_vmcr_sync(struct kvm_vcpu *vcpu);
+void kvm_vgic_put(struct kvm_vcpu *vcpu, bool blocking);
 
 #define irqchip_in_kernel(k)	(!!((k)->arch.vgic.in_kernel))
 #define vgic_initialized(k)	((k)->arch.vgic.initialized)
diff --git a/include/linux/amba/bus.h b/include/linux/amba/bus.h
index c68d87b..5970a43 100644
--- a/include/linux/amba/bus.h
+++ b/include/linux/amba/bus.h
@@ -17,6 +17,7 @@
 #include <linux/err.h>
 #include <linux/resource.h>
 #include <linux/regulator/consumer.h>
+#include <linux/android_kabi.h>
 
 #define AMBA_NR_IRQS	9
 #define AMBA_CID	0xb105f00d
@@ -71,6 +72,8 @@
 	struct amba_cs_uci_id	uci;
 	unsigned int		irq[AMBA_NR_IRQS];
 	char			*driver_override;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct amba_driver {
@@ -79,6 +82,8 @@
 	void			(*remove)(struct amba_device *);
 	void			(*shutdown)(struct amba_device *);
 	const struct amba_id	*id_table;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /*
diff --git a/include/linux/android_debug_symbols.h b/include/linux/android_debug_symbols.h
new file mode 100644
index 0000000..87a0a77
--- /dev/null
+++ b/include/linux/android_debug_symbols.h
@@ -0,0 +1,77 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ */
+
+#ifndef _ANDROID_DEBUG_SYMBOLS_H
+#define _ANDROID_DEBUG_SYMBOLS_H
+
+enum android_debug_symbol {
+	ADS_SDATA = 0,
+	ADS_BSS_END,
+	ADS_PER_CPU_START,
+	ADS_PER_CPU_END,
+	ADS_START_RO_AFTER_INIT,
+	ADS_END_RO_AFTER_INIT,
+	ADS_LINUX_BANNER,
+#ifdef CONFIG_CMA
+	ADS_TOTAL_CMA,
+#endif
+	ADS_SLAB_CACHES,
+	ADS_SLAB_MUTEX,
+	ADS_MIN_LOW_PFN,
+	ADS_MAX_PFN,
+	ADS_VMALLOC_NR_PAGES,
+	ADS_PCPU_NR_PAGES,
+#ifdef CONFIG_PAGE_OWNER
+	ADS_PAGE_OWNER_ENABLED,
+#endif
+#ifdef CONFIG_SLUB_DEBUG
+	ADS_SLUB_DEBUG,
+#endif
+#ifdef CONFIG_SWAP
+	ADS_NR_SWAP_PAGES,
+#endif
+#ifdef CONFIG_MMU
+	ADS_MMAP_MIN_ADDR,
+#endif
+	ADS_STACK_GUARD_GAP,
+#ifdef CONFIG_SYSCTL
+	ADS_SYSCTL_LEGACY_VA_LAYOUT,
+#endif
+	ADS_SHOW_MEM,
+#if !defined (__GENKSYMS__) && defined(CONFIG_ARM64)
+	ADS_PUT_TASK_STACK,
+#endif
+	ADS_END
+};
+
+enum android_debug_per_cpu_symbol {
+	ADS_IRQ_STACK_PTR = 0,
+	ADS_DEBUG_PER_CPU_END
+};
+
+#ifdef CONFIG_ANDROID_DEBUG_SYMBOLS
+
+void *android_debug_symbol(enum android_debug_symbol symbol);
+void *android_debug_per_cpu_symbol(enum android_debug_per_cpu_symbol symbol);
+
+void android_debug_for_each_module(int (*fn)(const char *mod_name, void *mod_addr, void *data),
+	void *data);
+
+#else /* !CONFIG_ANDROID_DEBUG_SYMBOLS */
+
+static inline void *android_debug_symbol(enum android_debug_symbol symbol)
+{
+	return NULL;
+}
+static inline void *android_debug_per_cpu_symbol(enum android_debug_per_cpu_symbol symbol)
+{
+	return NULL;
+}
+
+static inline void android_debug_for_each_module(int (*fn)(const char *mod_name, void *mod_addr,
+	void *data), void *data) {}
+#endif /* CONFIG_ANDROID_DEBUG_SYMBOLS */
+
+#endif /* _ANDROID_DEBUG_SYMBOLS_H */
diff --git a/include/linux/android_kabi.h b/include/linux/android_kabi.h
new file mode 100644
index 0000000..f6dd7f0
--- /dev/null
+++ b/include/linux/android_kabi.h
@@ -0,0 +1,117 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * android_kabi.h - Android kernel abi abstraction header
+ *
+ * Copyright (C) 2020 Google, Inc.
+ *
+ * Heavily influenced by rh_kabi.h which came from the RHEL/CENTOS kernel and
+ * was:
+ *	Copyright (c) 2014 Don Zickus
+ *	Copyright (c) 2015-2018 Jiri Benc
+ *	Copyright (c) 2015 Sabrina Dubroca, Hannes Frederic Sowa
+ *	Copyright (c) 2016-2018 Prarit Bhargava
+ *	Copyright (c) 2017 Paolo Abeni, Larry Woodman
+ *
+ * These macros are to be used to try to help alleviate future kernel abi
+ * changes that will occur as LTS and other kernel patches are merged into the
+ * tree during a period in which the kernel abi is wishing to not be disturbed.
+ *
+ * There are two times these macros should be used:
+ *  - Before the kernel abi is "frozen"
+ *    Padding can be added to various kernel structures that have in the past
+ *    been known to change over time.  That will give "room" in the structure
+ *    that can then be used when fields are added so that the structure size
+ *    will not change.
+ *
+ *  - After the kernel abi is "frozen"
+ *    If a structure's field is changed to a type that is identical in size to
+ *    the previous type, it can be changed with a union macro
+ *    If a field is added to a structure, the padding fields can be used to add
+ *    the new field in a "safe" way.
+ */
+#ifndef _ANDROID_KABI_H
+#define _ANDROID_KABI_H
+
+#include <linux/compiler.h>
+
+/*
+ * Worker macros, don't use these, use the ones without a leading '_'
+ */
+
+#define __ANDROID_KABI_CHECK_SIZE_ALIGN(_orig, _new)				\
+	union {									\
+		_Static_assert(sizeof(struct{_new;}) <= sizeof(struct{_orig;}),	\
+			       __FILE__ ":" __stringify(__LINE__) ": "		\
+			       __stringify(_new)				\
+			       " is larger than "				\
+			       __stringify(_orig) );				\
+		_Static_assert(__alignof__(struct{_new;}) <= __alignof__(struct{_orig;}),	\
+			       __FILE__ ":" __stringify(__LINE__) ": "		\
+			       __stringify(_orig)				\
+			       " is not aligned the same as "			\
+			       __stringify(_new) );				\
+	}
+
+#ifdef __GENKSYMS__
+
+#define _ANDROID_KABI_REPLACE(_orig, _new)		_orig
+
+#else
+
+#define _ANDROID_KABI_REPLACE(_orig, _new)			\
+	union {							\
+		_new;						\
+		struct {					\
+			_orig;					\
+		};						\
+		__ANDROID_KABI_CHECK_SIZE_ALIGN(_orig, _new);	\
+	}
+
+#endif /* __GENKSYMS__ */
+
+#define _ANDROID_KABI_RESERVE(n)		u64 android_kabi_reserved##n
+
+
+/*
+ * Macros to use _before_ the ABI is frozen
+ */
+
+/*
+ * ANDROID_KABI_RESERVE
+ *   Reserve some "padding" in a structure for potential future use.
+ *   This normally placed at the end of a structure.
+ *   number: the "number" of the padding variable in the structure.  Start with
+ *   1 and go up.
+ */
+#ifdef CONFIG_ANDROID_KABI_RESERVE
+#define ANDROID_KABI_RESERVE(number)	_ANDROID_KABI_RESERVE(number)
+#else
+#define ANDROID_KABI_RESERVE(number)
+#endif
+
+
+/*
+ * Macros to use _after_ the ABI is frozen
+ */
+
+/*
+ * ANDROID_KABI_USE(number, _new)
+ *   Use a previous padding entry that was defined with ANDROID_KABI_RESERVE
+ *   number: the previous "number" of the padding variable
+ *   _new: the variable to use now instead of the padding variable
+ */
+#define ANDROID_KABI_USE(number, _new)		\
+	_ANDROID_KABI_REPLACE(_ANDROID_KABI_RESERVE(number), _new)
+
+/*
+ * ANDROID_KABI_USE2(number, _new1, _new2)
+ *   Use a previous padding entry that was defined with ANDROID_KABI_RESERVE for
+ *   two new variables that fit into 64 bits.  This is good for when you do not
+ *   want to "burn" a 64bit padding variable for a smaller variable size if not
+ *   needed.
+ */
+#define ANDROID_KABI_USE2(number, _new1, _new2)			\
+	_ANDROID_KABI_REPLACE(_ANDROID_KABI_RESERVE(number), struct{ _new1; _new2; })
+
+
+#endif /* _ANDROID_KABI_H */
diff --git a/include/linux/android_vendor.h b/include/linux/android_vendor.h
new file mode 100644
index 0000000..03f8624
--- /dev/null
+++ b/include/linux/android_vendor.h
@@ -0,0 +1,88 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * android_vendor.h - Android vendor data
+ *
+ * Copyright 2020 Google LLC
+ *
+ * These macros are to be used to reserve space in kernel data structures
+ * for use by vendor modules.
+ *
+ * These macros should be used before the kernel abi is "frozen".
+ * Fields can be added to various kernel structures that need space
+ * for functionality implemented in vendor modules. The use of
+ * these fields is vendor specific.
+ */
+#ifndef _ANDROID_VENDOR_H
+#define _ANDROID_VENDOR_H
+
+#include "android_kabi.h"
+
+#define _ANDROID_BACKPORT_RESERVED(n)	u64 android_backport_reserved##n
+
+/*
+ * ANDROID_VENDOR_DATA
+ *   Reserve some "padding" in a structure for potential future use.
+ *   This normally placed at the end of a structure.
+ *   number: the "number" of the padding variable in the structure.  Start with
+ *   1 and go up.
+ *
+ * ANDROID_VENDOR_DATA_ARRAY
+ *   Same as ANDROID_VENDOR_DATA but allocates an array of u64 with
+ *   the specified size
+ *
+ * ANDROID_BACKPORT_RESERVED
+ *   Reserve some "padding" in a structure for potential future use while
+ *   backporting upstream changes. This normally placed at the end of a
+ *   structure.
+ *   number: the "number" of the padding variable in the structure.  Start with
+ *   1 and go up.
+ */
+#ifdef CONFIG_ANDROID_VENDOR_OEM_DATA
+#define ANDROID_VENDOR_DATA(n)		u64 android_vendor_data##n
+#define ANDROID_VENDOR_DATA_ARRAY(n, s)	u64 android_vendor_data##n[s]
+
+#define ANDROID_OEM_DATA(n)		u64 android_oem_data##n
+#define ANDROID_OEM_DATA_ARRAY(n, s)	u64 android_oem_data##n[s]
+#define ANDROID_BACKPORT_RESERVED(n)	_ANDROID_BACKPORT_RESERVED(n)
+
+#define android_init_vendor_data(p, n) \
+	memset(&p->android_vendor_data##n, 0, sizeof(p->android_vendor_data##n))
+#define android_init_oem_data(p, n) \
+	memset(&p->android_oem_data##n, 0, sizeof(p->android_oem_data##n))
+#else
+#define ANDROID_VENDOR_DATA(n)
+#define ANDROID_VENDOR_DATA_ARRAY(n, s)
+#define ANDROID_OEM_DATA(n)
+#define ANDROID_OEM_DATA_ARRAY(n, s)
+#define ANDROID_BACKPORT_RESERVED(n)
+
+#define android_init_vendor_data(p, n)
+#define android_init_oem_data(p, n)
+#endif
+
+
+/*
+ * Macros to use _after_ the ABI is frozen
+ */
+
+/*
+ * ANDROID_BACKPORT_RESERVED_USE(number, _new)
+ *   Use a previous padding entry that was defined with
+ *   ANDROID_BACKPORT_RESERVED
+ *   number: the previous "number" of the padding variable
+ *   _new: the variable to use now instead of the padding variable
+ */
+#define ANDROID_BACKPORT_RESERVED_USE(number, _new)		\
+	_ANDROID_KABI_REPLACE(_ANDROID_BACKPORT_RESERVED(number), _new)
+
+/*
+ * ANDROID_BACKPORT_RESERVED_USE2(number, _new1, _new2)
+ *   Use a previous padding entry that was defined with
+ *   ANDROID_BACKPORT_RESERVED for two new variables that fit into 64 bits.
+ *   This is good for when you do not want to "burn" a 64bit padding variable
+ *   for a smaller variable size if not needed.
+ */
+#define ANDROID_BACKPORT_RESERVED_USE2(number, _new1, _new2)			\
+	_ANDROID_KABI_REPLACE(_ANDROID_BACKPORT_RESERVED(number), struct{ _new1; _new2; })
+
+#endif /* _ANDROID_VENDOR_H */
diff --git a/include/linux/arch_topology.h b/include/linux/arch_topology.h
index f180240..c5ce6c5 100644
--- a/include/linux/arch_topology.h
+++ b/include/linux/arch_topology.h
@@ -7,6 +7,7 @@
 
 #include <linux/types.h>
 #include <linux/percpu.h>
+#include <linux/android_vendor.h>
 
 void topology_normalize_cpu_scale(void);
 int topology_update_cpu_topology(void);
@@ -67,6 +68,8 @@
 	cpumask_t thread_sibling;
 	cpumask_t core_sibling;
 	cpumask_t llc_sibling;
+
+	cpumask_t android_vendor_data1;
 };
 
 #ifdef CONFIG_GENERIC_ARCH_TOPOLOGY
@@ -85,5 +88,6 @@
 void reset_cpu_topology(void);
 int parse_acpi_topology(void);
 #endif
+extern bool topology_update_done;
 
 #endif /* _LINUX_ARCH_TOPOLOGY_H_ */
diff --git a/include/linux/arm-smccc.h b/include/linux/arm-smccc.h
index 220c8c6..2a998fb 100644
--- a/include/linux/arm-smccc.h
+++ b/include/linux/arm-smccc.h
@@ -112,6 +112,13 @@
 /* KVM "vendor specific" services */
 #define ARM_SMCCC_KVM_FUNC_FEATURES		0
 #define ARM_SMCCC_KVM_FUNC_PTP			1
+#define ARM_SMCCC_KVM_FUNC_HYP_MEMINFO		2
+#define ARM_SMCCC_KVM_FUNC_MEM_SHARE		3
+#define ARM_SMCCC_KVM_FUNC_MEM_UNSHARE		4
+#define ARM_SMCCC_KVM_FUNC_MMIO_GUARD_INFO	5
+#define ARM_SMCCC_KVM_FUNC_MMIO_GUARD_ENROLL	6
+#define ARM_SMCCC_KVM_FUNC_MMIO_GUARD_MAP	7
+#define ARM_SMCCC_KVM_FUNC_MMIO_GUARD_UNMAP	8
 #define ARM_SMCCC_KVM_FUNC_FEATURES_2		127
 #define ARM_SMCCC_KVM_NUM_FUNCS			128
 
@@ -134,10 +141,52 @@
 			   ARM_SMCCC_OWNER_VENDOR_HYP,			\
 			   ARM_SMCCC_KVM_FUNC_PTP)
 
+#define ARM_SMCCC_VENDOR_HYP_KVM_HYP_MEMINFO_FUNC_ID			\
+	ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,				\
+			   ARM_SMCCC_SMC_64,				\
+			   ARM_SMCCC_OWNER_VENDOR_HYP,			\
+			   ARM_SMCCC_KVM_FUNC_HYP_MEMINFO)
+
+#define ARM_SMCCC_VENDOR_HYP_KVM_MEM_SHARE_FUNC_ID			\
+	ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,				\
+			   ARM_SMCCC_SMC_64,				\
+			   ARM_SMCCC_OWNER_VENDOR_HYP,			\
+			   ARM_SMCCC_KVM_FUNC_MEM_SHARE)
+
+#define ARM_SMCCC_VENDOR_HYP_KVM_MEM_UNSHARE_FUNC_ID			\
+	ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,				\
+			   ARM_SMCCC_SMC_64,				\
+			   ARM_SMCCC_OWNER_VENDOR_HYP,			\
+			   ARM_SMCCC_KVM_FUNC_MEM_UNSHARE)
+
 /* ptp_kvm counter type ID */
 #define KVM_PTP_VIRT_COUNTER			0
 #define KVM_PTP_PHYS_COUNTER			1
 
+#define ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_INFO_FUNC_ID		\
+	ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,				\
+			   ARM_SMCCC_SMC_64,				\
+			   ARM_SMCCC_OWNER_VENDOR_HYP,			\
+			   ARM_SMCCC_KVM_FUNC_MMIO_GUARD_INFO)
+
+#define ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_ENROLL_FUNC_ID		\
+	ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,				\
+			   ARM_SMCCC_SMC_64,				\
+			   ARM_SMCCC_OWNER_VENDOR_HYP,			\
+			   ARM_SMCCC_KVM_FUNC_MMIO_GUARD_ENROLL)
+
+#define ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_MAP_FUNC_ID			\
+	ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,				\
+			   ARM_SMCCC_SMC_64,				\
+			   ARM_SMCCC_OWNER_VENDOR_HYP,			\
+			   ARM_SMCCC_KVM_FUNC_MMIO_GUARD_MAP)
+
+#define ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_UNMAP_FUNC_ID		\
+	ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,				\
+			   ARM_SMCCC_SMC_64,				\
+			   ARM_SMCCC_OWNER_VENDOR_HYP,			\
+			   ARM_SMCCC_KVM_FUNC_MMIO_GUARD_UNMAP)
+
 /* Paravirtualised time calls (defined by ARM DEN0057A) */
 #define ARM_SMCCC_HV_PV_TIME_FEATURES				\
 	ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,			\
diff --git a/include/linux/arm_ffa.h b/include/linux/arm_ffa.h
index 99e2127..45a36ce 100644
--- a/include/linux/arm_ffa.h
+++ b/include/linux/arm_ffa.h
@@ -11,6 +11,97 @@
 #include <linux/types.h>
 #include <linux/uuid.h>
 
+#define FFA_SMC(calling_convention, func_num)				\
+	ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, (calling_convention),	\
+			   ARM_SMCCC_OWNER_STANDARD, (func_num))
+
+#define FFA_SMC_32(func_num)	FFA_SMC(ARM_SMCCC_SMC_32, (func_num))
+#define FFA_SMC_64(func_num)	FFA_SMC(ARM_SMCCC_SMC_64, (func_num))
+
+#define FFA_ERROR			FFA_SMC_32(0x60)
+#define FFA_SUCCESS			FFA_SMC_32(0x61)
+#define FFA_INTERRUPT			FFA_SMC_32(0x62)
+#define FFA_VERSION			FFA_SMC_32(0x63)
+#define FFA_FEATURES			FFA_SMC_32(0x64)
+#define FFA_RX_RELEASE			FFA_SMC_32(0x65)
+#define FFA_RXTX_MAP			FFA_SMC_32(0x66)
+#define FFA_FN64_RXTX_MAP		FFA_SMC_64(0x66)
+#define FFA_RXTX_UNMAP			FFA_SMC_32(0x67)
+#define FFA_PARTITION_INFO_GET		FFA_SMC_32(0x68)
+#define FFA_ID_GET			FFA_SMC_32(0x69)
+#define FFA_MSG_POLL			FFA_SMC_32(0x6A)
+#define FFA_MSG_WAIT			FFA_SMC_32(0x6B)
+#define FFA_YIELD			FFA_SMC_32(0x6C)
+#define FFA_RUN				FFA_SMC_32(0x6D)
+#define FFA_MSG_SEND			FFA_SMC_32(0x6E)
+#define FFA_MSG_SEND_DIRECT_REQ		FFA_SMC_32(0x6F)
+#define FFA_FN64_MSG_SEND_DIRECT_REQ	FFA_SMC_64(0x6F)
+#define FFA_MSG_SEND_DIRECT_RESP	FFA_SMC_32(0x70)
+#define FFA_FN64_MSG_SEND_DIRECT_RESP	FFA_SMC_64(0x70)
+#define FFA_MEM_DONATE			FFA_SMC_32(0x71)
+#define FFA_FN64_MEM_DONATE		FFA_SMC_64(0x71)
+#define FFA_MEM_LEND			FFA_SMC_32(0x72)
+#define FFA_FN64_MEM_LEND		FFA_SMC_64(0x72)
+#define FFA_MEM_SHARE			FFA_SMC_32(0x73)
+#define FFA_FN64_MEM_SHARE		FFA_SMC_64(0x73)
+#define FFA_MEM_RETRIEVE_REQ		FFA_SMC_32(0x74)
+#define FFA_FN64_MEM_RETRIEVE_REQ	FFA_SMC_64(0x74)
+#define FFA_MEM_RETRIEVE_RESP		FFA_SMC_32(0x75)
+#define FFA_MEM_RELINQUISH		FFA_SMC_32(0x76)
+#define FFA_MEM_RECLAIM			FFA_SMC_32(0x77)
+#define FFA_MEM_OP_PAUSE		FFA_SMC_32(0x78)
+#define FFA_MEM_OP_RESUME		FFA_SMC_32(0x79)
+#define FFA_MEM_FRAG_RX			FFA_SMC_32(0x7A)
+#define FFA_MEM_FRAG_TX			FFA_SMC_32(0x7B)
+#define FFA_NORMAL_WORLD_RESUME		FFA_SMC_32(0x7C)
+
+/*
+ * For some calls it is necessary to use SMC64 to pass or return 64-bit values.
+ * For such calls FFA_FN_NATIVE(name) will choose the appropriate
+ * (native-width) function ID.
+ */
+#ifdef CONFIG_64BIT
+#define FFA_FN_NATIVE(name)	FFA_FN64_##name
+#else
+#define FFA_FN_NATIVE(name)	FFA_##name
+#endif
+
+/* FFA error codes. */
+#define FFA_RET_SUCCESS            (0)
+#define FFA_RET_NOT_SUPPORTED      (-1)
+#define FFA_RET_INVALID_PARAMETERS (-2)
+#define FFA_RET_NO_MEMORY          (-3)
+#define FFA_RET_BUSY               (-4)
+#define FFA_RET_INTERRUPTED        (-5)
+#define FFA_RET_DENIED             (-6)
+#define FFA_RET_RETRY              (-7)
+#define FFA_RET_ABORTED            (-8)
+
+/* FFA version encoding */
+#define FFA_MAJOR_VERSION_MASK	GENMASK(30, 16)
+#define FFA_MINOR_VERSION_MASK	GENMASK(15, 0)
+#define FFA_MAJOR_VERSION(x)	((u16)(FIELD_GET(FFA_MAJOR_VERSION_MASK, (x))))
+#define FFA_MINOR_VERSION(x)	((u16)(FIELD_GET(FFA_MINOR_VERSION_MASK, (x))))
+#define FFA_PACK_VERSION_INFO(major, minor)			\
+	(FIELD_PREP(FFA_MAJOR_VERSION_MASK, (major)) |		\
+	 FIELD_PREP(FFA_MINOR_VERSION_MASK, (minor)))
+#define FFA_VERSION_1_0		FFA_PACK_VERSION_INFO(1, 0)
+
+/**
+ * FF-A specification mentions explicitly about '4K pages'. This should
+ * not be confused with the kernel PAGE_SIZE, which is the translation
+ * granule kernel is configured and may be one among 4K, 16K and 64K.
+ */
+#define FFA_PAGE_SIZE		SZ_4K
+
+/*
+ * Minimum buffer size/alignment encodings returned by an FFA_FEATURES
+ * query for FFA_RXTX_MAP.
+ */
+#define FFA_FEAT_RXTX_MIN_SZ_4K		0
+#define FFA_FEAT_RXTX_MIN_SZ_64K	1
+#define FFA_FEAT_RXTX_MIN_SZ_16K	2
+
 /* FFA Bus/Device/Driver related */
 struct ffa_device {
 	u32 id;
@@ -157,11 +248,11 @@
 	 */
 #define FFA_MEM_RETRIEVE_SELF_BORROWER	BIT(0)
 	u8 flag;
-	u32 composite_off;
 	/*
 	 * Offset in bytes from the start of the outer `ffa_memory_region` to
 	 * an `struct ffa_mem_region_addr_range`.
 	 */
+	u32 composite_off;
 	u64 reserved;
 };
 
@@ -263,6 +354,8 @@
 	int (*memory_reclaim)(u64 g_handle, u32 flags);
 	int (*memory_share)(struct ffa_device *dev,
 			    struct ffa_mem_ops_args *args);
+	int (*memory_lend)(struct ffa_device *dev,
+			   struct ffa_mem_ops_args *args);
 };
 
 #endif /* _LINUX_ARM_FFA_H */
diff --git a/include/linux/backing-dev-defs.h b/include/linux/backing-dev-defs.h
index 3320700..b298388 100644
--- a/include/linux/backing-dev-defs.h
+++ b/include/linux/backing-dev-defs.h
@@ -13,6 +13,7 @@
 #include <linux/workqueue.h>
 #include <linux/kref.h>
 #include <linux/refcount.h>
+#include <linux/android_kabi.h>
 
 struct page;
 struct device;
@@ -164,6 +165,9 @@
 		struct rcu_head rcu;
 	};
 #endif
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 struct backing_dev_info {
@@ -202,6 +206,9 @@
 #ifdef CONFIG_DEBUG_FS
 	struct dentry *debug_dir;
 #endif
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 enum {
diff --git a/include/linux/bio.h b/include/linux/bio.h
index 00952e92..dc18d86 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -10,6 +10,7 @@
 /* struct bio, bio_vec and BIO_* flags are defined in blk_types.h */
 #include <linux/blk_types.h>
 #include <linux/uio.h>
+#include <linux/android_kabi.h>
 
 #define BIO_DEBUG
 
@@ -338,6 +339,10 @@
 	struct work_struct	bip_work;	/* I/O completion */
 
 	struct bio_vec		*bip_vec;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+
 	struct bio_vec		bip_inline_vecs[];/* embedded bvec array */
 };
 
@@ -686,6 +691,11 @@
 	 * Hot un-plug notifier for the per-cpu cache, if used
 	 */
 	struct hlist_node cpuhp_dead;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 static inline bool bioset_initialized(struct bio_set *bs)
diff --git a/include/linux/blk-crypto.h b/include/linux/blk-crypto.h
index 5e96bad..d89f521 100644
--- a/include/linux/blk-crypto.h
+++ b/include/linux/blk-crypto.h
@@ -17,6 +17,8 @@
 };
 
 #define BLK_CRYPTO_MAX_KEY_SIZE		64
+#define BLK_CRYPTO_MAX_WRAPPED_KEY_SIZE                128
+
 /**
  * struct blk_crypto_config - an inline encryption key's crypto configuration
  * @crypto_mode: encryption algorithm this key is for
@@ -25,11 +27,14 @@
  *	ciphertext.  This is always a power of 2.  It might be e.g. the
  *	filesystem block size or the disk sector size.
  * @dun_bytes: the maximum number of bytes of DUN used when using this key
+ * @is_hw_wrapped: @raw points to a wrapped key to be used by an inline
+ *	encryption hardware that accepts wrapped keys.
  */
 struct blk_crypto_config {
 	enum blk_crypto_mode_num crypto_mode;
 	unsigned int data_unit_size;
 	unsigned int dun_bytes;
+	bool is_hw_wrapped;
 };
 
 /**
@@ -48,7 +53,7 @@
 	struct blk_crypto_config crypto_cfg;
 	unsigned int data_unit_size_bits;
 	unsigned int size;
-	u8 raw[BLK_CRYPTO_MAX_KEY_SIZE];
+	u8 raw[BLK_CRYPTO_MAX_WRAPPED_KEY_SIZE];
 };
 
 #define BLK_CRYPTO_MAX_IV_SIZE		32
@@ -89,7 +94,9 @@
 				 unsigned int bytes,
 				 const u64 next_dun[BLK_CRYPTO_DUN_ARRAY_SIZE]);
 
-int blk_crypto_init_key(struct blk_crypto_key *blk_key, const u8 *raw_key,
+int blk_crypto_init_key(struct blk_crypto_key *blk_key,
+			const u8 *raw_key, unsigned int raw_key_size,
+			bool is_hw_wrapped,
 			enum blk_crypto_mode_num crypto_mode,
 			unsigned int dun_bytes,
 			unsigned int data_unit_size);
@@ -112,6 +119,9 @@
 
 #endif /* CONFIG_BLK_INLINE_ENCRYPTION */
 
+static inline void bio_clone_skip_dm_default_key(struct bio *dst,
+						 const struct bio *src);
+
 int __bio_crypt_clone(struct bio *dst, struct bio *src, gfp_t gfp_mask);
 /**
  * bio_crypt_clone - clone bio encryption context
@@ -127,9 +137,42 @@
 static inline int bio_crypt_clone(struct bio *dst, struct bio *src,
 				  gfp_t gfp_mask)
 {
+	bio_clone_skip_dm_default_key(dst, src);
 	if (bio_has_crypt_ctx(src))
 		return __bio_crypt_clone(dst, src, gfp_mask);
 	return 0;
 }
 
+#if IS_ENABLED(CONFIG_DM_DEFAULT_KEY)
+static inline void bio_set_skip_dm_default_key(struct bio *bio)
+{
+	bio->bi_skip_dm_default_key = true;
+}
+
+static inline bool bio_should_skip_dm_default_key(const struct bio *bio)
+{
+	return bio->bi_skip_dm_default_key;
+}
+
+static inline void bio_clone_skip_dm_default_key(struct bio *dst,
+						 const struct bio *src)
+{
+	dst->bi_skip_dm_default_key = src->bi_skip_dm_default_key;
+}
+#else /* CONFIG_DM_DEFAULT_KEY */
+static inline void bio_set_skip_dm_default_key(struct bio *bio)
+{
+}
+
+static inline bool bio_should_skip_dm_default_key(const struct bio *bio)
+{
+	return false;
+}
+
+static inline void bio_clone_skip_dm_default_key(struct bio *dst,
+						 const struct bio *src)
+{
+}
+#endif /* !CONFIG_DM_DEFAULT_KEY */
+
 #endif /* __LINUX_BLK_CRYPTO_H */
diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
index 36ce3d0..6f76f90 100644
--- a/include/linux/blk_types.h
+++ b/include/linux/blk_types.h
@@ -10,6 +10,7 @@
 #include <linux/bvec.h>
 #include <linux/device.h>
 #include <linux/ktime.h>
+#include <linux/android_kabi.h>
 
 struct bio_set;
 struct bio;
@@ -49,6 +50,11 @@
 #ifdef CONFIG_FAIL_MAKE_REQUEST
 	bool			bd_make_it_fail;
 #endif
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 } __randomize_layout;
 
 #define bdev_whole(_bdev) \
@@ -245,6 +251,9 @@
 
 #ifdef CONFIG_BLK_INLINE_ENCRYPTION
 	struct bio_crypt_ctx	*bi_crypt_context;
+#if IS_ENABLED(CONFIG_DM_DEFAULT_KEY)
+	bool			bi_skip_dm_default_key;
+#endif
 #endif
 
 	union {
@@ -267,6 +276,10 @@
 
 	struct bio_set		*bi_pool;
 
+	ANDROID_OEM_DATA(1);
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+
 	/*
 	 * We can inline a number of vecs at the end of the bio, to avoid
 	 * double allocations for a small number of bio_vecs. This member
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 67344df..011b1c0 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -24,6 +24,8 @@
 #include <linux/blkzoned.h>
 #include <linux/pm.h>
 #include <linux/sbitmap.h>
+#include <linux/android_kabi.h>
+#include <linux/android_vendor.h>
 
 struct module;
 struct request_queue;
@@ -233,6 +235,8 @@
 	 */
 	rq_end_io_fn *end_io;
 	void *end_io_data;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 static inline int blk_validate_block_size(unsigned int bsize)
@@ -329,6 +333,10 @@
 	unsigned char		discard_misaligned;
 	unsigned char		raid_partial_stripes_expensive;
 	enum blk_zoned_model	zoned;
+
+	ANDROID_KABI_RESERVE(1);
+
+	ANDROID_OEM_DATA(1);
 };
 
 typedef int (*report_zones_cb)(struct blk_zone *zone, unsigned int idx,
@@ -559,6 +567,13 @@
 
 #define BLK_MAX_WRITE_HINTS	5
 	u64			write_hints[BLK_MAX_WRITE_HINTS];
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
+
+	ANDROID_OEM_DATA(1);
 };
 
 /* Keep blk_queue_flag_name[] in sync with the definitions below */
@@ -1872,6 +1887,10 @@
 	 * driver.
 	 */
 	int (*alternative_gpt_sector)(struct gendisk *disk, sector_t *sector);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_OEM_DATA(1);
 };
 
 #ifdef CONFIG_COMPAT
diff --git a/include/linux/bpf.h b/include/linux/bpf.h
index 84efd8d..cc30380 100644
--- a/include/linux/bpf.h
+++ b/include/linux/bpf.h
@@ -23,6 +23,7 @@
 #include <linux/slab.h>
 #include <linux/percpu-refcount.h>
 #include <linux/bpfptr.h>
+#include <linux/android_kabi.h>
 
 struct bpf_verifier_env;
 struct bpf_verifier_log;
@@ -151,6 +152,9 @@
 
 	/* bpf_iter info used to open a seq_file */
 	const struct bpf_iter_seq_info *iter_seq_info;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 struct bpf_map {
@@ -257,6 +261,8 @@
 	int (*map_update_elem)(struct bpf_offloaded_map *map,
 			       void *key, void *value, u64 flags);
 	int (*map_delete_elem)(struct bpf_offloaded_map *map, void *key);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct bpf_offloaded_map {
@@ -570,6 +576,7 @@
 				 enum bpf_access_type atype,
 				 u32 *next_btf_id);
 	bool (*check_kfunc_call)(u32 kfunc_btf_id);
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct bpf_prog_offload_ops {
@@ -585,6 +592,7 @@
 	int (*prepare)(struct bpf_prog *prog);
 	int (*translate)(struct bpf_prog *prog);
 	void (*destroy)(struct bpf_prog *prog);
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct bpf_prog_offload {
@@ -597,6 +605,7 @@
 	bool			opt_failed;
 	void			*jited_image;
 	u32			jited_len;
+	ANDROID_KABI_RESERVE(1);
 };
 
 enum bpf_cgroup_storage_type {
@@ -980,6 +989,7 @@
 		struct work_struct work;
 		struct rcu_head	rcu;
 	};
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct bpf_array_aux {
@@ -1018,6 +1028,7 @@
 	void (*show_fdinfo)(const struct bpf_link *link, struct seq_file *seq);
 	int (*fill_link_info)(const struct bpf_link *link,
 			      struct bpf_link_info *info);
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct bpf_link_primer {
@@ -1047,6 +1058,7 @@
 	struct btf_func_model func_models[BPF_STRUCT_OPS_MAX_NR_MEMBERS];
 	u32 type_id;
 	u32 value_id;
+	ANDROID_KABI_RESERVE(1);
 };
 
 #if defined(CONFIG_BPF_JIT) && defined(CONFIG_BPF_SYSCALL)
@@ -2022,7 +2034,6 @@
 int sock_map_prog_detach(const union bpf_attr *attr, enum bpf_prog_type ptype);
 int sock_map_update_elem_sys(struct bpf_map *map, void *key, void *value, u64 flags);
 void sock_map_unhash(struct sock *sk);
-void sock_map_destroy(struct sock *sk);
 void sock_map_close(struct sock *sk, long timeout);
 #else
 static inline int bpf_prog_offload_init(struct bpf_prog *prog,
diff --git a/include/linux/bpf_types.h b/include/linux/bpf_types.h
index bbe1eef..a49d350 100644
--- a/include/linux/bpf_types.h
+++ b/include/linux/bpf_types.h
@@ -79,6 +79,9 @@
 #endif
 BPF_PROG_TYPE(BPF_PROG_TYPE_SYSCALL, bpf_syscall,
 	      void *, void *)
+#ifdef CONFIG_FUSE_BPF
+BPF_PROG_TYPE(BPF_PROG_TYPE_FUSE, fuse, struct fuse_bpf_args, struct fuse_bpf_args)
+#endif
 
 BPF_MAP_TYPE(BPF_MAP_TYPE_ARRAY, array_map_ops)
 BPF_MAP_TYPE(BPF_MAP_TYPE_PERCPU_ARRAY, percpu_array_map_ops)
diff --git a/include/linux/bpf_verifier.h b/include/linux/bpf_verifier.h
index 3d04b48..e72f448 100644
--- a/include/linux/bpf_verifier.h
+++ b/include/linux/bpf_verifier.h
@@ -8,6 +8,7 @@
 #include <linux/btf.h> /* for struct btf and btf_id() */
 #include <linux/filter.h> /* for MAX_BPF_STACK */
 #include <linux/tnum.h>
+#include <linux/android_kabi.h>
 
 /* Maximum variable offset umax_value permitted when resolving memory accesses.
  * In practice this is far bigger than any realistic pointer offset; this limit
@@ -192,17 +193,6 @@
 	 * is used purely to inform the user of a reference leak.
 	 */
 	int insn_idx;
-	/* There can be a case like:
-	 * main (frame 0)
-	 *  cb (frame 1)
-	 *   func (frame 3)
-	 *    cb (frame 4)
-	 * Hence for frame 4, if callback_ref just stored boolean, it would be
-	 * impossible to distinguish nested callback refs. Hence store the
-	 * frameno and compare that to callback_ref in check_reference_leak when
-	 * exiting a callback function.
-	 */
-	int callback_ref;
 };
 
 /* state of the program:
@@ -448,6 +438,8 @@
 	bool tail_call_reachable;
 	bool has_ld_abs;
 	bool is_async_cb;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /* single container for all structs
@@ -510,6 +502,9 @@
 	bpfptr_t fd_array;
 	/* buffer used in reg_type_str() to generate reg_type string */
 	char type_str_buf[TYPE_STR_BUF_LEN];
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 __printf(2, 0) void bpf_verifier_vlog(struct bpf_verifier_log *log,
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h
index 45cdb12..a0ff347 100644
--- a/include/linux/cgroup.h
+++ b/include/linux/cgroup.h
@@ -24,6 +24,7 @@
 #include <linux/user_namespace.h>
 #include <linux/refcount.h>
 #include <linux/kernel_stat.h>
+#include <linux/android_kabi.h>
 
 #include <linux/cgroup-defs.h>
 
@@ -66,6 +67,8 @@
 	struct css_set			*cur_dcset;
 	struct task_struct		*cur_task;
 	struct list_head		iters_node;	/* css_set->task_iters */
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 extern struct file_system_type cgroup_fs_type;
@@ -433,6 +436,18 @@
 	css_put(&cgrp->self);
 }
 
+extern struct mutex cgroup_mutex;
+
+static inline void cgroup_lock(void)
+{
+	mutex_lock(&cgroup_mutex);
+}
+
+static inline void cgroup_unlock(void)
+{
+	mutex_unlock(&cgroup_mutex);
+}
+
 /**
  * task_css_set_check - obtain a task's css_set with extra access conditions
  * @task: the task to obtain css_set for
@@ -447,7 +462,6 @@
  * as locks used during the cgroup_subsys::attach() methods.
  */
 #ifdef CONFIG_PROVE_RCU
-extern struct mutex cgroup_mutex;
 extern spinlock_t css_set_lock;
 #define task_css_set_check(task, __c)					\
 	rcu_dereference_check((task)->cgroups,				\
@@ -708,6 +722,8 @@
 static inline u64 cgroup_id(const struct cgroup *cgrp) { return 1; }
 static inline void css_get(struct cgroup_subsys_state *css) {}
 static inline void css_put(struct cgroup_subsys_state *css) {}
+static inline void cgroup_lock(void) {}
+static inline void cgroup_unlock(void) {}
 static inline int cgroup_attach_task_all(struct task_struct *from,
 					 struct task_struct *t) { return 0; }
 static inline int cgroupstats_build(struct cgroupstats *stats,
diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
index 5f5730c..b6c42ce 100644
--- a/include/linux/cleancache.h
+++ b/include/linux/cleancache.h
@@ -5,6 +5,7 @@
 #include <linux/fs.h>
 #include <linux/exportfs.h>
 #include <linux/mm.h>
+#include <linux/android_vendor.h>
 
 #define CLEANCACHE_NO_POOL		-1
 #define CLEANCACHE_NO_BACKEND		-2
@@ -36,6 +37,7 @@
 	void (*invalidate_page)(int, struct cleancache_filekey, pgoff_t);
 	void (*invalidate_inode)(int, struct cleancache_filekey);
 	void (*invalidate_fs)(int);
+	ANDROID_OEM_DATA(1);
 };
 
 extern int cleancache_register_ops(const struct cleancache_ops *ops);
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
index f59c875..f72c372 100644
--- a/include/linux/clk-provider.h
+++ b/include/linux/clk-provider.h
@@ -32,6 +32,7 @@
 #define CLK_OPS_PARENT_ENABLE	BIT(12)
 /* duty cycle call may be forwarded to the parent clock */
 #define CLK_DUTY_CYCLE_PARENT	BIT(13)
+#define CLK_DONT_HOLD_STATE	BIT(14) /* Don't hold state */
 
 struct clk;
 struct clk_hw;
@@ -205,6 +206,13 @@
  *		directory is provided as an argument.  Called with
  *		prepare_lock held.  Returns 0 on success, -EERROR otherwise.
  *
+ * @pre_rate_change: Optional callback for a clock to fulfill its rate
+ *		change requirements before any rate change has occurred in
+ *		its clock tree. Returns 0 on success, -EERROR otherwise.
+ *
+ * @post_rate_change: Optional callback for a clock to clean up any
+ *		requirements that were needed while the clock and its tree
+ *		was changing states. Returns 0 on success, -EERROR otherwise.
  *
  * The clk_enable/clk_disable and clk_prepare/clk_unprepare pairs allow
  * implementations to split any work between atomic (enable) and sleepable
@@ -252,6 +260,12 @@
 	int		(*init)(struct clk_hw *hw);
 	void		(*terminate)(struct clk_hw *hw);
 	void		(*debug_init)(struct clk_hw *hw, struct dentry *dentry);
+	int		(*pre_rate_change)(struct clk_hw *hw,
+					   unsigned long rate,
+					   unsigned long new_rate);
+	int		(*post_rate_change)(struct clk_hw *hw,
+					    unsigned long old_rate,
+					    unsigned long rate);
 };
 
 /**
@@ -1154,6 +1168,7 @@
 
 void clk_hw_unregister(struct clk_hw *hw);
 void devm_clk_hw_unregister(struct device *dev, struct clk_hw *hw);
+void clk_sync_state(struct device *dev);
 
 /* helper functions */
 const char *__clk_get_name(const struct clk *clk);
diff --git a/include/linux/compaction.h b/include/linux/compaction.h
index 34bce35..b99b753 100644
--- a/include/linux/compaction.h
+++ b/include/linux/compaction.h
@@ -180,6 +180,8 @@
 extern int kcompactd_run(int nid);
 extern void kcompactd_stop(int nid);
 extern void wakeup_kcompactd(pg_data_t *pgdat, int order, int highest_zoneidx);
+extern unsigned long isolate_and_split_free_page(struct page *page,
+				struct list_head *list);
 
 #else
 static inline void reset_isolation_suitable(pg_data_t *pgdat)
@@ -225,6 +227,12 @@
 {
 }
 
+static inline unsigned long isolate_and_split_free_page(struct page *page,
+				struct list_head *list)
+{
+	return 0;
+}
+
 #endif /* CONFIG_COMPACTION */
 
 struct node;
diff --git a/include/linux/compat.h b/include/linux/compat.h
index 01fddf7..1c758b0 100644
--- a/include/linux/compat.h
+++ b/include/linux/compat.h
@@ -235,7 +235,6 @@
 				struct {
 					compat_ulong_t _data;
 					u32 _type;
-					u32 _flags;
 				} _perf;
 			};
 		} _sigfault;
diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
index 025391b..4b4fbf4 100644
--- a/include/linux/cpufreq.h
+++ b/include/linux/cpufreq.h
@@ -1083,14 +1083,6 @@
 }
 #endif
 
-#if defined(CONFIG_ENERGY_MODEL) && defined(CONFIG_CPU_FREQ_GOV_SCHEDUTIL)
-void sched_cpufreq_governor_change(struct cpufreq_policy *policy,
-			struct cpufreq_governor *old_gov);
-#else
-static inline void sched_cpufreq_governor_change(struct cpufreq_policy *policy,
-			struct cpufreq_governor *old_gov) { }
-#endif
-
 extern void arch_freq_prepare_all(void);
 extern unsigned int arch_freq_get_on_cpu(int cpu);
 
diff --git a/include/linux/cpufreq_times.h b/include/linux/cpufreq_times.h
new file mode 100644
index 0000000..38272a5
--- /dev/null
+++ b/include/linux/cpufreq_times.h
@@ -0,0 +1,42 @@
+/* drivers/cpufreq/cpufreq_times.c
+ *
+ * Copyright (C) 2018 Google, Inc.
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef _LINUX_CPUFREQ_TIMES_H
+#define _LINUX_CPUFREQ_TIMES_H
+
+#include <linux/cpufreq.h>
+#include <linux/pid.h>
+
+#ifdef CONFIG_CPU_FREQ_TIMES
+void cpufreq_task_times_init(struct task_struct *p);
+void cpufreq_task_times_alloc(struct task_struct *p);
+void cpufreq_task_times_exit(struct task_struct *p);
+int proc_time_in_state_show(struct seq_file *m, struct pid_namespace *ns,
+			    struct pid *pid, struct task_struct *p);
+void cpufreq_acct_update_power(struct task_struct *p, u64 cputime);
+void cpufreq_times_create_policy(struct cpufreq_policy *policy);
+void cpufreq_times_record_transition(struct cpufreq_policy *policy,
+                                     unsigned int new_freq);
+#else
+static inline void cpufreq_task_times_init(struct task_struct *p) {}
+static inline void cpufreq_task_times_alloc(struct task_struct *p) {}
+static inline void cpufreq_task_times_exit(struct task_struct *p) {}
+static inline void cpufreq_acct_update_power(struct task_struct *p,
+					     u64 cputime) {}
+static inline void cpufreq_times_create_policy(struct cpufreq_policy *policy) {}
+static inline void cpufreq_times_record_transition(
+	struct cpufreq_policy *policy, unsigned int new_freq) {}
+#endif /* CONFIG_CPU_FREQ_TIMES */
+#endif /* _LINUX_CPUFREQ_TIMES_H */
diff --git a/include/linux/cpuhotplug.h b/include/linux/cpuhotplug.h
index dbca858..74ce8ddf 100644
--- a/include/linux/cpuhotplug.h
+++ b/include/linux/cpuhotplug.h
@@ -99,7 +99,6 @@
 	CPUHP_LUSTRE_CFS_DEAD,
 	CPUHP_AP_ARM_CACHE_B15_RAC_DEAD,
 	CPUHP_PADATA_DEAD,
-	CPUHP_RANDOM_PREPARE,
 	CPUHP_WORKQUEUE_PREP,
 	CPUHP_POWER_NUMA_PREPARE,
 	CPUHP_HRTIMERS_PREPARE,
@@ -159,6 +158,7 @@
 	CPUHP_AP_PERF_X86_CSTATE_STARTING,
 	CPUHP_AP_PERF_XTENSA_STARTING,
 	CPUHP_AP_MIPS_OP_LOONGSON3_STARTING,
+	CPUHP_AP_ARM_SDEI_STARTING,
 	CPUHP_AP_ARM_VFP_STARTING,
 	CPUHP_AP_ARM64_DEBUG_MONITORS_STARTING,
 	CPUHP_AP_PERF_ARM_HW_BREAKPOINT_STARTING,
@@ -238,7 +238,6 @@
 	CPUHP_AP_PERF_CSKY_ONLINE,
 	CPUHP_AP_WATCHDOG_ONLINE,
 	CPUHP_AP_WORKQUEUE_ONLINE,
-	CPUHP_AP_RANDOM_ONLINE,
 	CPUHP_AP_RCUTREE_ONLINE,
 	CPUHP_AP_BASE_CACHEINFO_ONLINE,
 	CPUHP_AP_ONLINE_DYN,
@@ -249,6 +248,10 @@
 	CPUHP_AP_X86_KVM_CLK_ONLINE,
 	CPUHP_AP_DTPM_CPU_ONLINE,
 	CPUHP_AP_ACTIVE,
+	CPUHP_ANDROID_RESERVED_1,
+	CPUHP_ANDROID_RESERVED_2,
+	CPUHP_ANDROID_RESERVED_3,
+	CPUHP_ANDROID_RESERVED_4,
 	CPUHP_ONLINE,
 };
 
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
index fce4762..1035cb4 100644
--- a/include/linux/cpuidle.h
+++ b/include/linux/cpuidle.h
@@ -14,6 +14,7 @@
 #include <linux/percpu.h>
 #include <linux/list.h>
 #include <linux/hrtimer.h>
+#include <linux/android_kabi.h>
 
 #define CPUIDLE_STATE_MAX	10
 #define CPUIDLE_NAME_LEN	16
@@ -110,6 +111,8 @@
 	cpumask_t		coupled_cpus;
 	struct cpuidle_coupled	*coupled;
 #endif
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 DECLARE_PER_CPU(struct cpuidle_device *, cpuidle_devices);
@@ -135,6 +138,8 @@
 
 	/* preferred governor to switch at register time */
 	const char		*governor;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 #ifdef CONFIG_CPU_IDLE
diff --git a/include/linux/damon.h b/include/linux/damon.h
index d68b67b..5e1e3a1 100644
--- a/include/linux/damon.h
+++ b/include/linux/damon.h
@@ -11,9 +11,18 @@
 #include <linux/mutex.h>
 #include <linux/time64.h>
 #include <linux/types.h>
+#include <linux/random.h>
 
 /* Minimal region size.  Every damon_region is aligned by this. */
 #define DAMON_MIN_REGION	PAGE_SIZE
+/* Max priority score for DAMON-based operation schemes */
+#define DAMOS_MAX_SCORE		(99)
+
+/* Get a random number in [l, r) */
+static inline unsigned long damon_rand(unsigned long l, unsigned long r)
+{
+	return l + prandom_u32_max(r - l);
+}
 
 /**
  * struct damon_addr_range - Represents an address region of [@start, @end).
@@ -31,12 +40,22 @@
  * @sampling_addr:	Address of the sample for the next access check.
  * @nr_accesses:	Access frequency of this region.
  * @list:		List head for siblings.
+ * @age:		Age of this region.
+ *
+ * @age is initially zero, increased for each aggregation interval, and reset
+ * to zero again if the access frequency is significantly changed.  If two
+ * regions are merged into a new region, both @nr_accesses and @age of the new
+ * region are set as region size-weighted average of those of the two regions.
  */
 struct damon_region {
 	struct damon_addr_range ar;
 	unsigned long sampling_addr;
 	unsigned int nr_accesses;
 	struct list_head list;
+
+	unsigned int age;
+/* private: Internal value for age calculation. */
+	unsigned int last_nr_accesses;
 };
 
 /**
@@ -59,16 +78,194 @@
 	struct list_head list;
 };
 
+/**
+ * enum damos_action - Represents an action of a Data Access Monitoring-based
+ * Operation Scheme.
+ *
+ * @DAMOS_WILLNEED:	Call ``madvise()`` for the region with MADV_WILLNEED.
+ * @DAMOS_COLD:		Call ``madvise()`` for the region with MADV_COLD.
+ * @DAMOS_PAGEOUT:	Call ``madvise()`` for the region with MADV_PAGEOUT.
+ * @DAMOS_HUGEPAGE:	Call ``madvise()`` for the region with MADV_HUGEPAGE.
+ * @DAMOS_NOHUGEPAGE:	Call ``madvise()`` for the region with MADV_NOHUGEPAGE.
+ * @DAMOS_STAT:		Do nothing but count the stat.
+ */
+enum damos_action {
+	DAMOS_WILLNEED,
+	DAMOS_COLD,
+	DAMOS_PAGEOUT,
+	DAMOS_HUGEPAGE,
+	DAMOS_NOHUGEPAGE,
+	DAMOS_STAT,		/* Do nothing but only record the stat */
+};
+
+/**
+ * struct damos_quota - Controls the aggressiveness of the given scheme.
+ * @ms:			Maximum milliseconds that the scheme can use.
+ * @sz:			Maximum bytes of memory that the action can be applied.
+ * @reset_interval:	Charge reset interval in milliseconds.
+ *
+ * @weight_sz:		Weight of the region's size for prioritization.
+ * @weight_nr_accesses:	Weight of the region's nr_accesses for prioritization.
+ * @weight_age:		Weight of the region's age for prioritization.
+ *
+ * To avoid consuming too much CPU time or IO resources for applying the
+ * &struct damos->action to large memory, DAMON allows users to set time and/or
+ * size quotas.  The quotas can be set by writing non-zero values to &ms and
+ * &sz, respectively.  If the time quota is set, DAMON tries to use only up to
+ * &ms milliseconds within &reset_interval for applying the action.  If the
+ * size quota is set, DAMON tries to apply the action only up to &sz bytes
+ * within &reset_interval.
+ *
+ * Internally, the time quota is transformed to a size quota using estimated
+ * throughput of the scheme's action.  DAMON then compares it against &sz and
+ * uses smaller one as the effective quota.
+ *
+ * For selecting regions within the quota, DAMON prioritizes current scheme's
+ * target memory regions using the &struct damon_primitive->get_scheme_score.
+ * You could customize the prioritization logic by setting &weight_sz,
+ * &weight_nr_accesses, and &weight_age, because monitoring primitives are
+ * encouraged to respect those.
+ */
+struct damos_quota {
+	unsigned long ms;
+	unsigned long sz;
+	unsigned long reset_interval;
+
+	unsigned int weight_sz;
+	unsigned int weight_nr_accesses;
+	unsigned int weight_age;
+
+/* private: */
+	/* For throughput estimation */
+	unsigned long total_charged_sz;
+	unsigned long total_charged_ns;
+
+	unsigned long esz;	/* Effective size quota in bytes */
+
+	/* For charging the quota */
+	unsigned long charged_sz;
+	unsigned long charged_from;
+	struct damon_target *charge_target_from;
+	unsigned long charge_addr_from;
+
+	/* For prioritization */
+	unsigned long histogram[DAMOS_MAX_SCORE + 1];
+	unsigned int min_score;
+};
+
+/**
+ * enum damos_wmark_metric - Represents the watermark metric.
+ *
+ * @DAMOS_WMARK_NONE:		Ignore the watermarks of the given scheme.
+ * @DAMOS_WMARK_FREE_MEM_RATE:	Free memory rate of the system in [0,1000].
+ */
+enum damos_wmark_metric {
+	DAMOS_WMARK_NONE,
+	DAMOS_WMARK_FREE_MEM_RATE,
+};
+
+/**
+ * struct damos_watermarks - Controls when a given scheme should be activated.
+ * @metric:	Metric for the watermarks.
+ * @interval:	Watermarks check time interval in microseconds.
+ * @high:	High watermark.
+ * @mid:	Middle watermark.
+ * @low:	Low watermark.
+ *
+ * If &metric is &DAMOS_WMARK_NONE, the scheme is always active.  Being active
+ * means DAMON does monitoring and applying the action of the scheme to
+ * appropriate memory regions.  Else, DAMON checks &metric of the system for at
+ * least every &interval microseconds and works as below.
+ *
+ * If &metric is higher than &high, the scheme is inactivated.  If &metric is
+ * between &mid and &low, the scheme is activated.  If &metric is lower than
+ * &low, the scheme is inactivated.
+ */
+struct damos_watermarks {
+	enum damos_wmark_metric metric;
+	unsigned long interval;
+	unsigned long high;
+	unsigned long mid;
+	unsigned long low;
+
+/* private: */
+	bool activated;
+};
+
+/**
+ * struct damos_stat - Statistics on a given scheme.
+ * @nr_tried:	Total number of regions that the scheme is tried to be applied.
+ * @sz_tried:	Total size of regions that the scheme is tried to be applied.
+ * @nr_applied:	Total number of regions that the scheme is applied.
+ * @sz_applied:	Total size of regions that the scheme is applied.
+ * @qt_exceeds: Total number of times the quota of the scheme has exceeded.
+ */
+struct damos_stat {
+	unsigned long nr_tried;
+	unsigned long sz_tried;
+	unsigned long nr_applied;
+	unsigned long sz_applied;
+	unsigned long qt_exceeds;
+};
+
+/**
+ * struct damos - Represents a Data Access Monitoring-based Operation Scheme.
+ * @min_sz_region:	Minimum size of target regions.
+ * @max_sz_region:	Maximum size of target regions.
+ * @min_nr_accesses:	Minimum ``->nr_accesses`` of target regions.
+ * @max_nr_accesses:	Maximum ``->nr_accesses`` of target regions.
+ * @min_age_region:	Minimum age of target regions.
+ * @max_age_region:	Maximum age of target regions.
+ * @action:		&damo_action to be applied to the target regions.
+ * @quota:		Control the aggressiveness of this scheme.
+ * @wmarks:		Watermarks for automated (in)activation of this scheme.
+ * @stat:		Statistics of this scheme.
+ * @list:		List head for siblings.
+ *
+ * For each aggregation interval, DAMON finds regions which fit in the
+ * condition (&min_sz_region, &max_sz_region, &min_nr_accesses,
+ * &max_nr_accesses, &min_age_region, &max_age_region) and applies &action to
+ * those.  To avoid consuming too much CPU time or IO resources for the
+ * &action, &quota is used.
+ *
+ * To do the work only when needed, schemes can be activated for specific
+ * system situations using &wmarks.  If all schemes that registered to the
+ * monitoring context are inactive, DAMON stops monitoring either, and just
+ * repeatedly checks the watermarks.
+ *
+ * If all schemes that registered to a &struct damon_ctx are inactive, DAMON
+ * stops monitoring and just repeatedly checks the watermarks.
+ *
+ * After applying the &action to each region, &stat_count and &stat_sz is
+ * updated to reflect the number of regions and total size of regions that the
+ * &action is applied.
+ */
+struct damos {
+	unsigned long min_sz_region;
+	unsigned long max_sz_region;
+	unsigned int min_nr_accesses;
+	unsigned int max_nr_accesses;
+	unsigned int min_age_region;
+	unsigned int max_age_region;
+	enum damos_action action;
+	struct damos_quota quota;
+	struct damos_watermarks wmarks;
+	struct damos_stat stat;
+	struct list_head list;
+};
+
 struct damon_ctx;
 
 /**
- * struct damon_primitive	Monitoring primitives for given use cases.
+ * struct damon_primitive - Monitoring primitives for given use cases.
  *
  * @init:			Initialize primitive-internal data structures.
  * @update:			Update primitive-internal data structures.
  * @prepare_access_checks:	Prepare next access check of target regions.
  * @check_accesses:		Check the accesses to target regions.
  * @reset_aggregated:		Reset aggregated accesses monitoring results.
+ * @get_scheme_score:		Get the score of a region for a scheme.
+ * @apply_scheme:		Apply a DAMON-based operation scheme.
  * @target_valid:		Determine if the target is valid.
  * @cleanup:			Clean up the context.
  *
@@ -94,6 +291,12 @@
  * of its update.  The value will be used for regions adjustment threshold.
  * @reset_aggregated should reset the access monitoring results that aggregated
  * by @check_accesses.
+ * @get_scheme_score should return the priority score of a region for a scheme
+ * as an integer in [0, &DAMOS_MAX_SCORE].
+ * @apply_scheme is called from @kdamond when a region for user provided
+ * DAMON-based operation scheme is found.  It should apply the scheme's action
+ * to the region and return bytes of the region that the action is successfully
+ * applied.
  * @target_valid should check whether the target is still valid for the
  * monitoring.
  * @cleanup is called from @kdamond just before its termination.
@@ -104,12 +307,18 @@
 	void (*prepare_access_checks)(struct damon_ctx *context);
 	unsigned int (*check_accesses)(struct damon_ctx *context);
 	void (*reset_aggregated)(struct damon_ctx *context);
+	int (*get_scheme_score)(struct damon_ctx *context,
+			struct damon_target *t, struct damon_region *r,
+			struct damos *scheme);
+	unsigned long (*apply_scheme)(struct damon_ctx *context,
+			struct damon_target *t, struct damon_region *r,
+			struct damos *scheme);
 	bool (*target_valid)(void *target);
 	void (*cleanup)(struct damon_ctx *context);
 };
 
-/*
- * struct damon_callback	Monitoring events notification callbacks.
+/**
+ * struct damon_callback - Monitoring events notification callbacks.
  *
  * @before_start:	Called before starting the monitoring.
  * @after_sampling:	Called after each sampling.
@@ -136,7 +345,7 @@
 	int (*before_start)(struct damon_ctx *context);
 	int (*after_sampling)(struct damon_ctx *context);
 	int (*after_aggregation)(struct damon_ctx *context);
-	int (*before_terminate)(struct damon_ctx *context);
+	void (*before_terminate)(struct damon_ctx *context);
 };
 
 /**
@@ -182,6 +391,7 @@
  * @min_nr_regions:	The minimum number of adaptive monitoring regions.
  * @max_nr_regions:	The maximum number of adaptive monitoring regions.
  * @adaptive_targets:	Head of monitoring targets (&damon_target) list.
+ * @schemes:		Head of schemes (&damos) list.
  */
 struct damon_ctx {
 	unsigned long sample_interval;
@@ -194,7 +404,6 @@
 
 /* public: */
 	struct task_struct *kdamond;
-	bool kdamond_stop;
 	struct mutex kdamond_lock;
 
 	struct damon_primitive primitive;
@@ -203,13 +412,23 @@
 	unsigned long min_nr_regions;
 	unsigned long max_nr_regions;
 	struct list_head adaptive_targets;
+	struct list_head schemes;
 };
 
-#define damon_next_region(r) \
-	(container_of(r->list.next, struct damon_region, list))
+static inline struct damon_region *damon_next_region(struct damon_region *r)
+{
+	return container_of(r->list.next, struct damon_region, list);
+}
 
-#define damon_prev_region(r) \
-	(container_of(r->list.prev, struct damon_region, list))
+static inline struct damon_region *damon_prev_region(struct damon_region *r)
+{
+	return container_of(r->list.prev, struct damon_region, list);
+}
+
+static inline struct damon_region *damon_last_region(struct damon_target *t)
+{
+	return list_last_entry(&t->regions_list, struct damon_region, list);
+}
 
 #define damon_for_each_region(r, t) \
 	list_for_each_entry(r, &t->regions_list, list)
@@ -223,17 +442,42 @@
 #define damon_for_each_target_safe(t, next, ctx)	\
 	list_for_each_entry_safe(t, next, &(ctx)->adaptive_targets, list)
 
+#define damon_for_each_scheme(s, ctx) \
+	list_for_each_entry(s, &(ctx)->schemes, list)
+
+#define damon_for_each_scheme_safe(s, next, ctx) \
+	list_for_each_entry_safe(s, next, &(ctx)->schemes, list)
+
 #ifdef CONFIG_DAMON
 
 struct damon_region *damon_new_region(unsigned long start, unsigned long end);
-inline void damon_insert_region(struct damon_region *r,
+
+/*
+ * Add a region between two other regions
+ */
+static inline void damon_insert_region(struct damon_region *r,
 		struct damon_region *prev, struct damon_region *next,
-		struct damon_target *t);
+		struct damon_target *t)
+{
+	__list_add(&r->list, &prev->list, &next->list);
+	t->nr_regions++;
+}
+
 void damon_add_region(struct damon_region *r, struct damon_target *t);
 void damon_destroy_region(struct damon_region *r, struct damon_target *t);
 
+struct damos *damon_new_scheme(
+		unsigned long min_sz_region, unsigned long max_sz_region,
+		unsigned int min_nr_accesses, unsigned int max_nr_accesses,
+		unsigned int min_age_region, unsigned int max_age_region,
+		enum damos_action action, struct damos_quota *quota,
+		struct damos_watermarks *wmarks);
+void damon_add_scheme(struct damon_ctx *ctx, struct damos *s);
+void damon_destroy_scheme(struct damos *s);
+
 struct damon_target *damon_new_target(unsigned long id);
 void damon_add_target(struct damon_ctx *ctx, struct damon_target *t);
+bool damon_targets_empty(struct damon_ctx *ctx);
 void damon_free_target(struct damon_target *t);
 void damon_destroy_target(struct damon_target *t);
 unsigned int damon_nr_regions(struct damon_target *t);
@@ -245,6 +489,8 @@
 int damon_set_attrs(struct damon_ctx *ctx, unsigned long sample_int,
 		unsigned long aggr_int, unsigned long primitive_upd_int,
 		unsigned long min_nr_reg, unsigned long max_nr_reg);
+int damon_set_schemes(struct damon_ctx *ctx,
+			struct damos **schemes, ssize_t nr_schemes);
 int damon_nr_running_ctxs(void);
 
 int damon_start(struct damon_ctx **ctxs, int nr_ctxs);
@@ -253,16 +499,13 @@
 #endif	/* CONFIG_DAMON */
 
 #ifdef CONFIG_DAMON_VADDR
-
-/* Monitoring primitives for virtual memory address spaces */
-void damon_va_init(struct damon_ctx *ctx);
-void damon_va_update(struct damon_ctx *ctx);
-void damon_va_prepare_access_checks(struct damon_ctx *ctx);
-unsigned int damon_va_check_accesses(struct damon_ctx *ctx);
 bool damon_va_target_valid(void *t);
-void damon_va_cleanup(struct damon_ctx *ctx);
 void damon_va_set_primitives(struct damon_ctx *ctx);
-
 #endif	/* CONFIG_DAMON_VADDR */
 
+#ifdef CONFIG_DAMON_PADDR
+bool damon_pa_target_valid(void *t);
+void damon_pa_set_primitives(struct damon_ctx *ctx);
+#endif	/* CONFIG_DAMON_PADDR */
+
 #endif	/* _DAMON_H */
diff --git a/include/linux/dcache.h b/include/linux/dcache.h
index 9e23d33..fcb6a04 100644
--- a/include/linux/dcache.h
+++ b/include/linux/dcache.h
@@ -14,6 +14,7 @@
 #include <linux/lockref.h>
 #include <linux/stringhash.h>
 #include <linux/wait.h>
+#include <linux/android_kabi.h>
 
 struct path;
 struct vfsmount;
@@ -120,6 +121,9 @@
 		struct hlist_bl_node d_in_lookup_hash;	/* only for in-lookup ones */
 	 	struct rcu_head d_rcu;
 	} d_u;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 } __randomize_layout;
 
 /*
@@ -149,6 +153,11 @@
 	struct vfsmount *(*d_automount)(struct path *);
 	int (*d_manage)(const struct path *, bool);
 	struct dentry *(*d_real)(struct dentry *, const struct inode *);
+	void (*d_canonical_path)(const struct path *, struct path *);
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 } ____cacheline_aligned;
 
 /*
diff --git a/include/linux/devfreq.h b/include/linux/devfreq.h
index d94b9ed..142474b 100644
--- a/include/linux/devfreq.h
+++ b/include/linux/devfreq.h
@@ -149,8 +149,8 @@
  * @work:	delayed work for load monitoring.
  * @previous_freq:	previously configured frequency value.
  * @last_status:	devfreq user device info, performance statistics
- * @data:	devfreq driver pass to governors, governor should not change it.
- * @governor_data:	private data for governors, devfreq core doesn't touch it.
+ * @data:	Private data of the governor. The devfreq framework does not
+ *		touch this.
  * @user_min_freq_req:	PM QoS minimum frequency request from user (via sysfs)
  * @user_max_freq_req:	PM QoS maximum frequency request from user (via sysfs)
  * @scaling_min_freq:	Limit minimum frequency requested by OPP interface
@@ -187,8 +187,7 @@
 	unsigned long previous_freq;
 	struct devfreq_dev_status last_status;
 
-	void *data;
-	void *governor_data;
+	void *data; /* private data for governors */
 
 	struct dev_pm_qos_request user_min_freq_req;
 	struct dev_pm_qos_request user_max_freq_req;
diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h
index 114553b..b335ec3 100644
--- a/include/linux/device-mapper.h
+++ b/include/linux/device-mapper.h
@@ -13,6 +13,7 @@
 #include <linux/dm-ioctl.h>
 #include <linux/math64.h>
 #include <linux/ratelimit.h>
+#include <linux/android_kabi.h>
 
 struct dm_dev;
 struct dm_target;
@@ -204,6 +205,9 @@
 	dm_dax_copy_iter_fn dax_copy_to_iter;
 	dm_dax_zero_page_range_fn dax_zero_page_range;
 
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+
 	/* For internal device-mapper use. */
 	struct list_head list;
 };
@@ -366,6 +370,9 @@
 	 * zone append operations using regular writes.
 	 */
 	bool emulate_zone_append:1;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 void *dm_per_bio_data(struct bio *bio, size_t data_size);
diff --git a/include/linux/device.h b/include/linux/device.h
index e270cb7..9bbf87d 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -30,6 +30,7 @@
 #include <linux/device/bus.h>
 #include <linux/device/class.h>
 #include <linux/device/driver.h>
+#include <linux/android_kabi.h>
 #include <asm/device.h>
 
 struct device;
@@ -575,6 +576,14 @@
 #ifdef CONFIG_DMA_OPS_BYPASS
 	bool			dma_ops_bypass : 1;
 #endif
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
+	ANDROID_KABI_RESERVE(5);
+	ANDROID_KABI_RESERVE(6);
+	ANDROID_KABI_RESERVE(7);
+	ANDROID_KABI_RESERVE(8);
 };
 
 /**
@@ -603,6 +612,8 @@
 	struct kref kref;
 	struct work_struct rm_work;
 	bool supplier_preactivated; /* Owned by consumer probe. */
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 static inline struct device *kobj_to_dev(struct kobject *kobj)
diff --git a/include/linux/device/bus.h b/include/linux/device/bus.h
index 062777a..e73ea43 100644
--- a/include/linux/device/bus.h
+++ b/include/linux/device/bus.h
@@ -112,6 +112,11 @@
 	struct lock_class_key lock_key;
 
 	bool need_parent_lock;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 extern int __must_check bus_register(struct bus_type *bus);
diff --git a/include/linux/device/class.h b/include/linux/device/class.h
index e61ec55..3d6a2b8 100644
--- a/include/linux/device/class.h
+++ b/include/linux/device/class.h
@@ -18,6 +18,7 @@
 #include <linux/klist.h>
 #include <linux/pm.h>
 #include <linux/device/bus.h>
+#include <linux/android_kabi.h>
 
 struct device;
 struct fwnode_handle;
@@ -75,6 +76,11 @@
 	const struct dev_pm_ops *pm;
 
 	struct subsys_private *p;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 struct class_dev_iter {
diff --git a/include/linux/device/driver.h b/include/linux/device/driver.h
index a498ebc..c5b52e5 100644
--- a/include/linux/device/driver.h
+++ b/include/linux/device/driver.h
@@ -118,6 +118,11 @@
 	void (*coredump) (struct device *dev);
 
 	struct driver_private *p;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 
diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
index 3ad636a1..1b935d1 100644
--- a/include/linux/dma-buf.h
+++ b/include/linux/dma-buf.h
@@ -22,6 +22,8 @@
 #include <linux/fs.h>
 #include <linux/dma-fence.h>
 #include <linux/wait.h>
+#include <linux/android_kabi.h>
+#include <linux/workqueue.h>
 
 struct device;
 struct dma_buf;
@@ -230,6 +232,41 @@
 	int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
 
 	/**
+	 * @begin_cpu_access_partial:
+	 *
+	 * This is called from dma_buf_begin_cpu_access_partial() and allows the
+	 * exporter to ensure that the memory specified in the range is
+	 * available for cpu access - the exporter might need to allocate or
+	 * swap-in and pin the backing storage.
+	 * The exporter also needs to ensure that cpu access is
+	 * coherent for the access direction. The direction can be used by the
+	 * exporter to optimize the cache flushing, i.e. access with a different
+	 * direction (read instead of write) might return stale or even bogus
+	 * data (e.g. when the exporter needs to copy the data to temporary
+	 * storage).
+	 *
+	 * This callback is optional.
+	 *
+	 * FIXME: This is both called through the DMA_BUF_IOCTL_SYNC command
+	 * from userspace (where storage shouldn't be pinned to avoid handing
+	 * de-factor mlock rights to userspace) and for the kernel-internal
+	 * users of the various kmap interfaces, where the backing storage must
+	 * be pinned to guarantee that the atomic kmap calls can succeed. Since
+	 * there's no in-kernel users of the kmap interfaces yet this isn't a
+	 * real problem.
+	 *
+	 * Returns:
+	 *
+	 * 0 on success or a negative error code on failure. This can for
+	 * example fail when the backing storage can't be allocated. Can also
+	 * return -ERESTARTSYS or -EINTR when the call has been interrupted and
+	 * needs to be restarted.
+	 */
+	int (*begin_cpu_access_partial)(struct dma_buf *dmabuf,
+					enum dma_data_direction,
+					unsigned int offset, unsigned int len);
+
+	/**
 	 * @end_cpu_access:
 	 *
 	 * This is called from dma_buf_end_cpu_access() when the importer is
@@ -247,6 +284,28 @@
 	int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
 
 	/**
+	 * @end_cpu_access_partial:
+	 *
+	 * This is called from dma_buf_end_cpu_access_partial() when the
+	 * importer is done accessing the CPU. The exporter can use to limit
+	 * cache flushing to only the range specefied and to unpin any
+	 * resources pinned in @begin_cpu_access_umapped.
+	 * The result of any dma_buf kmap calls after end_cpu_access_partial is
+	 * undefined.
+	 *
+	 * This callback is optional.
+	 *
+	 * Returns:
+	 *
+	 * 0 on success or a negative error code on failure. Can return
+	 * -ERESTARTSYS or -EINTR when the call has been interrupted and needs
+	 * to be restarted.
+	 */
+	int (*end_cpu_access_partial)(struct dma_buf *dmabuf,
+				      enum dma_data_direction,
+				      unsigned int offset, unsigned int len);
+
+	/**
 	 * @mmap:
 	 *
 	 * This callback is used by the dma_buf_mmap() function
@@ -285,6 +344,23 @@
 
 	int (*vmap)(struct dma_buf *dmabuf, struct dma_buf_map *map);
 	void (*vunmap)(struct dma_buf *dmabuf, struct dma_buf_map *map);
+
+	/**
+	 * @get_flags:
+	 *
+	 * This is called by dma_buf_get_flags and is used to get the buffer's
+	 * flags.
+	 * This callback is optional.
+	 *
+	 * Returns:
+	 *
+	 * 0 on success or a negative error code on failure. On success flags
+	 * will be populated with the buffer's flags.
+	 */
+	int (*get_flags)(struct dma_buf *dmabuf, unsigned long *flags);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 /**
@@ -442,10 +518,21 @@
 	 * `DMA-BUF statistics`_ for the uapi this enables.
 	 */
 	struct dma_buf_sysfs_entry {
-		struct kobject kobj;
+		union {
+			struct kobject kobj;
+
+			/** @sysfs_add_work:
+			 *
+			 * For deferred sysfs kobject creation using a workqueue.
+			 */
+			struct work_struct sysfs_add_work;
+		};
 		struct dma_buf *dmabuf;
 	} *sysfs_entry;
 #endif
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 /**
@@ -481,6 +568,7 @@
 	 * point to the new location of the DMA-buf.
 	 */
 	void (*move_notify)(struct dma_buf_attachment *attach);
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -495,6 +583,8 @@
  * @importer_ops: importer operations for this attachment, if provided
  * dma_buf_map/unmap_attachment() must be called with the dma_resv lock held.
  * @importer_priv: importer specific attachment data.
+ * @dma_map_attrs: DMA attributes to be used when the exporter maps the buffer
+ * through dma_buf_map_attachment.
  *
  * This structure holds the attachment information between the dma_buf buffer
  * and its user device(s). The list contains one attachment struct per device
@@ -515,6 +605,10 @@
 	const struct dma_buf_attach_ops *importer_ops;
 	void *importer_priv;
 	void *priv;
+	unsigned long dma_map_attrs;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 /**
@@ -538,6 +632,9 @@
 	int flags;
 	struct dma_resv *resv;
 	void *priv;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 /**
@@ -592,6 +689,9 @@
 	return !!attach->importer_ops;
 }
 
+int get_each_dmabuf(int (*callback)(const struct dma_buf *dmabuf,
+		    void *private), void *private);
+int is_dma_buf_file(struct file *file);
 struct dma_buf_attachment *dma_buf_attach(struct dma_buf *dmabuf,
 					  struct device *dev);
 struct dma_buf_attachment *
@@ -616,11 +716,19 @@
 void dma_buf_move_notify(struct dma_buf *dma_buf);
 int dma_buf_begin_cpu_access(struct dma_buf *dma_buf,
 			     enum dma_data_direction dir);
+int dma_buf_begin_cpu_access_partial(struct dma_buf *dma_buf,
+				     enum dma_data_direction dir,
+				     unsigned int offset, unsigned int len);
 int dma_buf_end_cpu_access(struct dma_buf *dma_buf,
 			   enum dma_data_direction dir);
+int dma_buf_end_cpu_access_partial(struct dma_buf *dma_buf,
+				     enum dma_data_direction dir,
+				     unsigned int offset, unsigned int len);
 
 int dma_buf_mmap(struct dma_buf *, struct vm_area_struct *,
 		 unsigned long);
 int dma_buf_vmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
 void dma_buf_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map);
+long dma_buf_set_name(struct dma_buf *dmabuf, const char *name);
+int dma_buf_get_flags(struct dma_buf *dmabuf, unsigned long *flags);
 #endif /* __DMA_BUF_H__ */
diff --git a/include/linux/dma-direct.h b/include/linux/dma-direct.h
index 18aade1..80f0dba 100644
--- a/include/linux/dma-direct.h
+++ b/include/linux/dma-direct.h
@@ -24,6 +24,33 @@
 	u64		offset;
 };
 
+static inline bool zone_dma32_is_empty(int node)
+{
+#ifdef CONFIG_ZONE_DMA32
+	pg_data_t *pgdat = NODE_DATA(node);
+
+	return zone_is_empty(&pgdat->node_zones[ZONE_DMA32]);
+#else
+	return true;
+#endif
+}
+
+static inline bool zone_dma32_are_empty(void)
+{
+#ifdef CONFIG_NUMA
+	int node;
+
+	for_each_node(node)
+		if (!zone_dma32_is_empty(node))
+			return false;
+#else
+	if (!zone_dma32_is_empty(numa_node_id()))
+		return false;
+#endif
+
+	return true;
+}
+
 static inline dma_addr_t translate_phys_to_dma(struct device *dev,
 		phys_addr_t paddr)
 {
diff --git a/include/linux/dma-heap.h b/include/linux/dma-heap.h
index 0c05561..a1a190e 100644
--- a/include/linux/dma-heap.h
+++ b/include/linux/dma-heap.h
@@ -17,6 +17,7 @@
 /**
  * struct dma_heap_ops - ops to operate on a given heap
  * @allocate:		allocate dmabuf and return struct dma_buf ptr
+ * @get_pool_size:	if heap maintains memory pools, get pool size in bytes
  *
  * allocate returns dmabuf on success, ERR_PTR(-errno) on error.
  */
@@ -25,6 +26,7 @@
 				    unsigned long len,
 				    unsigned long fd_flags,
 				    unsigned long heap_flags);
+	long (*get_pool_size)(struct dma_heap *heap);
 };
 
 /**
@@ -51,6 +53,15 @@
 void *dma_heap_get_drvdata(struct dma_heap *heap);
 
 /**
+ * dma_heap_get_dev() - get device struct for the heap
+ * @heap: DMA-Heap to retrieve device struct from
+ *
+ * Returns:
+ * The device struct for the heap.
+ */
+struct device *dma_heap_get_dev(struct dma_heap *heap);
+
+/**
  * dma_heap_get_name() - get heap name
  * @heap: DMA-Heap to retrieve private data for
  *
@@ -65,4 +76,49 @@
  */
 struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info);
 
+/**
+ * dma_heap_put - drops a reference to a dmabuf heaps, potentially freeing it
+ * @heap:		heap pointer
+ */
+void dma_heap_put(struct dma_heap *heap);
+
+/**
+ * dma_heap_find - Returns the registered dma_heap with the specified name
+ * @name: Name of the heap to find
+ *
+ * NOTE: dma_heaps returned from this function MUST be released
+ * using dma_heap_put() when the user is done.
+ */
+struct dma_heap *dma_heap_find(const char *name);
+
+/**
+ * dma_heap_buffer_alloc - Allocate dma-buf from a dma_heap
+ * @heap:	dma_heap to allocate from
+ * @len:	size to allocate
+ * @fd_flags:	flags to set on returned dma-buf fd
+ * @heap_flags:	flags to pass to the dma heap
+ *
+ * This is for internal dma-buf allocations only.
+ */
+struct dma_buf *dma_heap_buffer_alloc(struct dma_heap *heap, size_t len,
+				      unsigned int fd_flags,
+				      unsigned int heap_flags);
+
+/** dma_heap_buffer_free - Free dma_buf allocated by dma_heap_buffer_alloc
+ * @dma_buf:	dma_buf to free
+ *
+ * This is really only a simple wrapper to dma_buf_put()
+ */
+void dma_heap_buffer_free(struct dma_buf *);
+
+/**
+ * dma_heap_bufferfd_alloc - Allocate dma-buf fd from a dma_heap
+ * @heap:	dma_heap to allocate from
+ * @len:	size to allocate
+ * @fd_flags:	flags to set on returned dma-buf fd
+ * @heap_flags:	flags to pass to the dma heap
+ */
+int dma_heap_bufferfd_alloc(struct dma_heap *heap, size_t len,
+			    unsigned int fd_flags,
+			    unsigned int heap_flags);
 #endif /* _DMA_HEAPS_H */
diff --git a/include/linux/dma-iommu.h b/include/linux/dma-iommu.h
index 24607dc..ee6eee9 100644
--- a/include/linux/dma-iommu.h
+++ b/include/linux/dma-iommu.h
@@ -43,6 +43,8 @@
 
 extern bool iommu_dma_forcedac;
 
+int iommu_dma_enable_best_fit_algo(struct device *dev);
+
 #else /* CONFIG_IOMMU_DMA */
 
 struct iommu_domain;
@@ -89,5 +91,10 @@
 {
 }
 
+static inline int iommu_dma_enable_best_fit_algo(struct device *dev)
+{
+	return -ENODEV;
+}
+
 #endif	/* CONFIG_IOMMU_DMA */
 #endif	/* __DMA_IOMMU_H */
diff --git a/include/linux/dma-map-ops.h b/include/linux/dma-map-ops.h
index 0d5b06b..1a269c8 100644
--- a/include/linux/dma-map-ops.h
+++ b/include/linux/dma-map-ops.h
@@ -8,6 +8,7 @@
 
 #include <linux/dma-mapping.h>
 #include <linux/pgtable.h>
+#include <linux/android_kabi.h>
 
 struct cma;
 
@@ -70,6 +71,11 @@
 	u64 (*get_required_mask)(struct device *dev);
 	size_t (*max_mapping_size)(struct device *dev);
 	unsigned long (*get_merge_boundary)(struct device *dev);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 #ifdef CONFIG_DMA_OPS
@@ -166,6 +172,7 @@
 #ifdef CONFIG_DMA_DECLARE_COHERENT
 int dma_declare_coherent_memory(struct device *dev, phys_addr_t phys_addr,
 		dma_addr_t device_addr, size_t size);
+void dma_release_coherent_memory(struct device *dev);
 int dma_alloc_from_dev_coherent(struct device *dev, ssize_t size,
 		dma_addr_t *dma_handle, void **ret);
 int dma_release_from_dev_coherent(struct device *dev, int order, void *vaddr);
@@ -177,9 +184,11 @@
 {
 	return -ENOSYS;
 }
+
 #define dma_alloc_from_dev_coherent(dev, size, handle, ret) (0)
 #define dma_release_from_dev_coherent(dev, order, vaddr) (0)
 #define dma_mmap_from_dev_coherent(dev, vma, vaddr, order, ret) (0)
+static inline void dma_release_coherent_memory(struct device *dev) { }
 #endif /* CONFIG_DMA_DECLARE_COHERENT */
 
 #ifdef CONFIG_DMA_GLOBAL_POOL
@@ -277,6 +286,14 @@
 #define pgprot_dmacoherent(prot)	pgprot_noncached(prot)
 #endif
 
+/*
+ * If there is no system cache pgprot, then fallback to dmacoherent
+ * pgprot, as the expectation is that the device is not coherent.
+ */
+#ifndef pgprot_syscached
+#define pgprot_syscached(prot)		pgprot_dmacoherent(prot)
+#endif
+
 pgprot_t dma_pgprot(struct device *dev, pgprot_t prot, unsigned long attrs);
 #else
 static inline pgprot_t dma_pgprot(struct device *dev, pgprot_t prot,
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index dca2b135..b610693 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -62,6 +62,23 @@
 #define DMA_ATTR_PRIVILEGED		(1UL << 9)
 
 /*
+ * DMA_ATTR_SYS_CACHE_ONLY: used to indicate that the buffer should be mapped
+ * with the correct memory attributes so that it can be cached in the system
+ * or last level cache. This is useful for buffers that are being mapped for
+ * devices that are non-coherent, but can use the system cache.
+ */
+#define DMA_ATTR_SYS_CACHE_ONLY		(1UL << 10)
+
+/*
+ * DMA_ATTR_SYS_CACHE_ONLY_NWA: used to indicate that the buffer should be
+ * mapped with the correct memory attributes so that it can be cached in the
+ * system or last level cache, with a no write allocate cache policy. This is
+ * useful for buffers that are being mapped for devices that are non-coherent,
+ * but can use the system cache.
+ */
+#define DMA_ATTR_SYS_CACHE_ONLY_NWA	(1UL << 11)
+
+/*
  * A dma_addr_t can hold any valid DMA or bus address for the platform.  It can
  * be given to a device to use as a DMA source or target.  It is specific to a
  * given device and there may be a translation between the CPU physical address
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
index 9000f3f..ba37dfc 100644
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -12,6 +12,7 @@
 #include <linux/scatterlist.h>
 #include <linux/bitmap.h>
 #include <linux/types.h>
+#include <linux/android_kabi.h>
 #include <asm/page.h>
 
 /**
@@ -621,6 +622,11 @@
 	struct dma_async_tx_descriptor *parent;
 	spinlock_t lock;
 #endif
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 #ifdef CONFIG_DMA_ENGINE
diff --git a/include/linux/elevator.h b/include/linux/elevator.h
index ef9ceea..bd8093bc 100644
--- a/include/linux/elevator.h
+++ b/include/linux/elevator.h
@@ -4,6 +4,7 @@
 
 #include <linux/percpu.h>
 #include <linux/hashtable.h>
+#include <linux/android_kabi.h>
 
 #ifdef CONFIG_BLOCK
 
@@ -50,6 +51,11 @@
 	struct request *(*next_request)(struct request_queue *, struct request *);
 	void (*init_icq)(struct io_cq *);
 	void (*exit_icq)(struct io_cq *);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 #define ELV_NAME_MAX	(16)
@@ -86,6 +92,9 @@
 	/* managed by elevator core */
 	char icq_cache_name[ELV_NAME_MAX + 6];	/* elvname + "_io_cq" */
 	struct list_head list;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 #define ELV_HASH_BITS 6
diff --git a/include/linux/elfcore.h b/include/linux/elfcore.h
index 957ebec..42c34a6 100644
--- a/include/linux/elfcore.h
+++ b/include/linux/elfcore.h
@@ -109,7 +109,7 @@
 #endif
 }
 
-#if (defined(CONFIG_UML) && defined(CONFIG_X86_32)) || defined(CONFIG_IA64)
+#ifdef CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS
 /*
  * These functions parameterize elf_core_dump in fs/binfmt_elf.c to write out
  * extra segments containing the gate DSO contents.  Dumping its
@@ -118,14 +118,14 @@
  * Dumping its extra ELF program headers includes all the other information
  * a debugger needs to easily find how the gate DSO was being used.
  */
-extern Elf_Half elf_core_extra_phdrs(void);
+extern Elf_Half elf_core_extra_phdrs(struct coredump_params *cprm);
 extern int
 elf_core_write_extra_phdrs(struct coredump_params *cprm, loff_t offset);
 extern int
 elf_core_write_extra_data(struct coredump_params *cprm);
-extern size_t elf_core_extra_data_size(void);
+extern size_t elf_core_extra_data_size(struct coredump_params *cprm);
 #else
-static inline Elf_Half elf_core_extra_phdrs(void)
+static inline Elf_Half elf_core_extra_phdrs(struct coredump_params *cprm)
 {
 	return 0;
 }
@@ -140,10 +140,10 @@
 	return 1;
 }
 
-static inline size_t elf_core_extra_data_size(void)
+static inline size_t elf_core_extra_data_size(struct coredump_params *cprm)
 {
 	return 0;
 }
-#endif
+#endif /* CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS */
 
 #endif /* _LINUX_ELFCORE_H */
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index 3fad741..200e7f3 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -16,6 +16,7 @@
 #include <linux/bitmap.h>
 #include <linux/compat.h>
 #include <linux/netlink.h>
+#include <linux/android_kabi.h>
 #include <uapi/linux/ethtool.h>
 
 struct compat_ethtool_rx_flow_spec {
@@ -705,6 +706,11 @@
 	void	(*get_rmon_stats)(struct net_device *dev,
 				  struct ethtool_rmon_stats *rmon_stats,
 				  const struct ethtool_rmon_hist_range **ranges);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 int ethtool_check_ops(const struct ethtool_ops *ops);
diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h
index 36a4865..842d223d 100644
--- a/include/linux/eventfd.h
+++ b/include/linux/eventfd.h
@@ -47,7 +47,7 @@
 
 static inline bool eventfd_signal_allowed(void)
 {
-	return !current->in_eventfd;
+	return !current->in_eventfd_signal;
 }
 
 #else /* CONFIG_EVENTFD */
diff --git a/include/linux/export.h b/include/linux/export.h
index 5910ccb..770abed 100644
--- a/include/linux/export.h
+++ b/include/linux/export.h
@@ -120,7 +120,7 @@
  */
 #define __EXPORT_SYMBOL(sym, sec, ns)
 
-#elif defined(CONFIG_TRIM_UNUSED_KSYMS)
+#elif defined(CONFIG_TRIM_UNUSED_KSYMS) && !defined(MODULE)
 
 #include <generated/autoksyms.h>
 
diff --git a/include/linux/f2fs_fs.h b/include/linux/f2fs_fs.h
index d445150..5dd1e52 100644
--- a/include/linux/f2fs_fs.h
+++ b/include/linux/f2fs_fs.h
@@ -73,6 +73,20 @@
 	__le32 total_segments;
 } __packed;
 
+/* reason of stop_checkpoint */
+enum stop_cp_reason {
+	STOP_CP_REASON_SHUTDOWN,
+	STOP_CP_REASON_FAULT_INJECT,
+	STOP_CP_REASON_META_PAGE,
+	STOP_CP_REASON_WRITE_FAIL,
+	STOP_CP_REASON_CORRUPTED_SUMMARY,
+	STOP_CP_REASON_UPDATE_INODE,
+	STOP_CP_REASON_FLUSH_FAIL,
+	STOP_CP_REASON_MAX,
+};
+
+#define	MAX_STOP_REASON			32
+
 struct f2fs_super_block {
 	__le32 magic;			/* Magic Number */
 	__le16 major_ver;		/* Major Version */
@@ -116,7 +130,8 @@
 	__u8 hot_ext_count;		/* # of hot file extension */
 	__le16  s_encoding;		/* Filename charset encoding */
 	__le16  s_encoding_flags;	/* Filename charset encoding flags */
-	__u8 reserved[306];		/* valid reserved region */
+	__u8 s_stop_reason[MAX_STOP_REASON];	/* stop checkpoint reason */
+	__u8 reserved[274];		/* valid reserved region */
 	__le32 crc;			/* checksum of superblock */
 } __packed;
 
diff --git a/include/linux/fips.h b/include/linux/fips.h
index c6961e9..83f5d6f 100644
--- a/include/linux/fips.h
+++ b/include/linux/fips.h
@@ -2,7 +2,15 @@
 #ifndef _FIPS_H
 #define _FIPS_H
 
-#ifdef CONFIG_CRYPTO_FIPS
+#ifdef BUILD_FIPS140_KO
+/*
+ * In fips140.ko, enable the behavior that the upstream fips_enabled flag
+ * controls, such as the XTS weak key check.
+ */
+#define fips_enabled 1
+#define CONFIG_CRYPTO_FIPS 1
+
+#elif defined(CONFIG_CRYPTO_FIPS)
 extern int fips_enabled;
 extern struct atomic_notifier_head fips_fail_notif_chain;
 
diff --git a/include/linux/freezer.h b/include/linux/freezer.h
index 0621c5f..3a2b690 100644
--- a/include/linux/freezer.h
+++ b/include/linux/freezer.h
@@ -8,6 +8,9 @@
 #include <linux/sched.h>
 #include <linux/wait.h>
 #include <linux/atomic.h>
+#if defined(CONFIG_ARM64) && !defined(__GENKSYMS__)
+#include <linux/mmu_context.h>
+#endif
 
 #ifdef CONFIG_FREEZER
 extern atomic_t system_freezing_cnt;	/* nr of freezing conds in effect */
@@ -27,6 +30,11 @@
 	return p->flags & PF_FROZEN;
 }
 
+static inline bool frozen_or_skipped(struct task_struct *p)
+{
+	return p->flags & (PF_FROZEN | PF_FREEZER_SKIP);
+}
+
 extern bool freezing_slow_path(struct task_struct *p);
 
 /*
@@ -103,10 +111,15 @@
  * The caller shouldn't do anything which isn't allowed for a frozen task
  * until freezer_cont() is called.  Usually, freezer[_do_not]_count() pair
  * wrap a scheduling operation and nothing much else.
+ *
+ * The write to current->flags uses release semantics to prevent a concurrent
+ * freezer_should_skip() from observing this write before a write to on_rq
+ * during a prior call to activate_task(), which may cause it to return true
+ * before deactivate_task() is called.
  */
 static inline void freezer_do_not_count(void)
 {
-	current->flags |= PF_FREEZER_SKIP;
+	smp_store_release(&current->flags, current->flags | PF_FREEZER_SKIP);
 }
 
 /**
@@ -156,7 +169,19 @@
 	 * clearing %PF_FREEZER_SKIP.
 	 */
 	smp_mb();
+#ifdef CONFIG_ARM64
+	return (p->flags & PF_FREEZER_SKIP) &&
+	       (!p->on_rq || task_cpu_possible_mask(p) == cpu_possible_mask);
+#else
+	/*
+	 * On non-aarch64, avoid depending on task_cpu_possible_mask(), which is
+	 * defined in <linux/mmu_context.h>, because including that header from
+	 * here exposes a tricky bug in the tracepoint headers on x86, and that
+	 * macro would end up being defined equal to cpu_possible_mask on other
+	 * architectures anyway.
+	 */
 	return p->flags & PF_FREEZER_SKIP;
+#endif
 }
 
 /*
@@ -270,6 +295,7 @@
 
 #else /* !CONFIG_FREEZER */
 static inline bool frozen(struct task_struct *p) { return false; }
+static inline bool frozen_or_skipped(struct task_struct *p) { return false; }
 static inline bool freezing(struct task_struct *p) { return false; }
 static inline void __thaw_task(struct task_struct *t) {}
 
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 6bba7a5..6ea687f 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -42,6 +42,7 @@
 #include <linux/mount.h>
 #include <linux/cred.h>
 #include <linux/mnt_idmapping.h>
+#include <linux/android_kabi.h>
 
 #include <asm/byteorder.h>
 #include <uapi/linux/fs.h>
@@ -419,6 +420,11 @@
 	int (*swap_activate)(struct swap_info_struct *sis, struct file *file,
 				sector_t *span);
 	void (*swap_deactivate)(struct file *file);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 extern const struct address_space_operations empty_aops;
@@ -477,6 +483,11 @@
 	spinlock_t		private_lock;
 	struct list_head	private_list;
 	void			*private_data;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 } __attribute__((aligned(sizeof(long)))) __randomize_layout;
 	/*
 	 * On most architectures that alignment is already the case; but
@@ -512,6 +523,11 @@
 	up_write(&mapping->i_mmap_rwsem);
 }
 
+static inline int i_mmap_trylock_read(struct address_space *mapping)
+{
+	return down_read_trylock(&mapping->i_mmap_rwsem);
+}
+
 static inline void i_mmap_lock_read(struct address_space *mapping)
 {
 	down_read(&mapping->i_mmap_rwsem);
@@ -731,6 +747,9 @@
 #endif
 
 	void			*i_private; /* fs or device private pointer */
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 } __randomize_layout;
 
 struct timespec64 timestamp_truncate(struct timespec64 t, struct inode *inode);
@@ -1001,6 +1020,9 @@
 	struct address_space	*f_mapping;
 	errseq_t		f_wb_err;
 	errseq_t		f_sb_err; /* for syncfs */
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 } __randomize_layout
   __attribute__((aligned(4)));	/* lest something weird decides that 2 is OK */
 
@@ -1061,6 +1083,9 @@
 struct file_lock_operations {
 	void (*fl_copy_lock)(struct file_lock *, struct file_lock *);
 	void (*fl_release_private)(struct file_lock *);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 struct lock_manager_operations {
@@ -1072,6 +1097,9 @@
 	int (*lm_change)(struct file_lock *, int, struct list_head *);
 	void (*lm_setup)(struct file_lock *, void **);
 	bool (*lm_breaker_owns_lease)(struct file_lock *);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 struct lock_manager {
@@ -1145,6 +1173,10 @@
 			unsigned int	debug_id;
 		} afs;
 	} fl_u;
+
+	struct list_head android_reserved1;	/* not a macro as we might just need it as-is */
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 } __randomize_layout;
 
 struct file_lock_context {
@@ -1493,8 +1525,17 @@
 	const struct xattr_handler **s_xattr;
 #ifdef CONFIG_FS_ENCRYPTION
 	const struct fscrypt_operations	*s_cop;
+#ifdef __GENKSYMS__
+	/*
+	 * Android ABI CRC preservation due to commit 391cceee6d43 ("fscrypt:
+	 * stop using keyrings subsystem for fscrypt_master_key") changing this
+	 * type.  Size is the same, this is a private field.
+	 */
+	struct key		*s_master_keys; /* master crypto keys in use */
+#else
 	struct fscrypt_keyring	*s_master_keys; /* master crypto keys in use */
 #endif
+#endif
 #ifdef CONFIG_FS_VERITY
 	const struct fsverity_operations *s_vop;
 #endif
@@ -1606,6 +1647,11 @@
 
 	spinlock_t		s_inode_wblist_lock;
 	struct list_head	s_inodes_wb;	/* writeback inodes */
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 } __randomize_layout;
 
 static inline struct user_namespace *i_user_ns(const struct inode *inode)
@@ -2048,6 +2094,11 @@
 				   struct file *file_out, loff_t pos_out,
 				   loff_t len, unsigned int remap_flags);
 	int (*fadvise)(struct file *, loff_t, loff_t, int);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 } __randomize_layout;
 
 struct inode_operations {
@@ -2089,6 +2140,11 @@
 	int (*fileattr_set)(struct user_namespace *mnt_userns,
 			    struct dentry *dentry, struct fileattr *fa);
 	int (*fileattr_get)(struct dentry *dentry, struct fileattr *fa);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 } ____cacheline_aligned;
 
 static inline ssize_t call_read_iter(struct file *file, struct kiocb *kio,
@@ -2164,6 +2220,11 @@
 				  struct shrink_control *);
 	long (*free_cached_objects)(struct super_block *,
 				    struct shrink_control *);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 /*
@@ -2480,6 +2541,11 @@
 	struct lock_class_key i_mutex_key;
 	struct lock_class_key invalidate_lock_key;
 	struct lock_class_key i_mutex_dir_key;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 #define MODULE_ALIAS_FS(NAME) MODULE_ALIAS("fs-" NAME)
@@ -2691,6 +2757,7 @@
 			umode_t mode);
 extern struct file *file_open_name(struct filename *, int, umode_t);
 extern struct file *filp_open(const char *, int, umode_t);
+extern struct file *filp_open_block(const char *, int, umode_t);
 extern struct file *file_open_root(const struct path *,
 				   const char *, int, umode_t);
 static inline struct file *file_open_root_mnt(struct vfsmount *mnt,
@@ -3466,6 +3533,11 @@
 	return 0;
 }
 
+static inline rwf_t iocb_to_rw_flags(int ifl, int iocb_mask)
+{
+	return ifl & iocb_mask;
+}
+
 static inline ino_t parent_ino(struct dentry *dentry)
 {
 	ino_t res;
diff --git a/include/linux/fscrypt.h b/include/linux/fscrypt.h
index 3c7ea2c..380eb98 100644
--- a/include/linux/fscrypt.h
+++ b/include/linux/fscrypt.h
@@ -118,9 +118,6 @@
 	 */
 	bool (*empty_dir)(struct inode *inode);
 
-	/* The filesystem's maximum ciphertext filename length, in bytes */
-	unsigned int max_namelen;
-
 	/*
 	 * Check whether the filesystem's inode numbers and UUID are stable,
 	 * meaning that they will never be changed even by offline operations
@@ -171,6 +168,13 @@
 	 */
 	void (*get_devices)(struct super_block *sb,
 			    struct request_queue **devs);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
+
+	ANDROID_OEM_DATA_ARRAY(1, 4);
 };
 
 static inline struct fscrypt_info *fscrypt_get_info(const struct inode *inode)
@@ -717,6 +721,10 @@
 bool fscrypt_mergeable_bio_bh(struct bio *bio,
 			      const struct buffer_head *next_bh);
 
+bool fscrypt_dio_supported(struct kiocb *iocb, struct iov_iter *iter);
+
+u64 fscrypt_limit_io_blocks(const struct inode *inode, u64 lblk, u64 nr_blocks);
+
 #else /* CONFIG_FS_ENCRYPTION_INLINE_CRYPT */
 
 static inline bool __fscrypt_inode_uses_inline_crypto(const struct inode *inode)
@@ -745,8 +753,36 @@
 {
 	return true;
 }
+
+static inline bool fscrypt_dio_supported(struct kiocb *iocb,
+					 struct iov_iter *iter)
+{
+	const struct inode *inode = file_inode(iocb->ki_filp);
+
+	return !fscrypt_needs_contents_encryption(inode);
+}
+
+static inline u64 fscrypt_limit_io_blocks(const struct inode *inode, u64 lblk,
+					  u64 nr_blocks)
+{
+	return nr_blocks;
+}
 #endif /* !CONFIG_FS_ENCRYPTION_INLINE_CRYPT */
 
+#if IS_ENABLED(CONFIG_FS_ENCRYPTION) && IS_ENABLED(CONFIG_DM_DEFAULT_KEY)
+static inline bool
+fscrypt_inode_should_skip_dm_default_key(const struct inode *inode)
+{
+	return IS_ENCRYPTED(inode) && S_ISREG(inode->i_mode);
+}
+#else
+static inline bool
+fscrypt_inode_should_skip_dm_default_key(const struct inode *inode)
+{
+	return false;
+}
+#endif
+
 /**
  * fscrypt_inode_uses_inline_crypto() - test whether an inode uses inline
  *					encryption
diff --git a/include/linux/fsnotify.h b/include/linux/fsnotify.h
index a9477c14..a5bd54c 100644
--- a/include/linux/fsnotify.h
+++ b/include/linux/fsnotify.h
@@ -96,6 +96,28 @@
 	if (file->f_mode & FMODE_NONOTIFY)
 		return 0;
 
+	/*
+	 * Open calls notify early on, so lower file system must be notified
+	 */
+	if (mask & FS_OPEN) {
+		if (path->dentry->d_op &&
+		    path->dentry->d_op->d_canonical_path) {
+			struct path lower_path = {};
+			int ret;
+
+			path->dentry->d_op->d_canonical_path(path, &lower_path);
+			if (IS_ERR(lower_path.dentry))
+				return PTR_ERR(lower_path.dentry);
+
+			ret = fsnotify_parent(lower_path.dentry, mask,
+					      &lower_path, FSNOTIFY_EVENT_PATH);
+			path_put(&lower_path);
+
+			if (ret)
+				return ret;
+		}
+	}
+
 	return fsnotify_parent(path->dentry, mask, path, FSNOTIFY_EVENT_PATH);
 }
 
diff --git a/include/linux/fsverity.h b/include/linux/fsverity.h
index b568b3c..19c118e 100644
--- a/include/linux/fsverity.h
+++ b/include/linux/fsverity.h
@@ -233,4 +233,18 @@
 	return fsverity_get_info(inode) != NULL;
 }
 
+#ifdef CONFIG_FS_VERITY_BUILTIN_SIGNATURES
+int __fsverity_verify_signature(const struct inode *inode, const u8 *signature,
+				size_t sig_size, const u8 *file_digest,
+				unsigned int digest_algorithm);
+#else /* !CONFIG_FS_VERITY_BUILTIN_SIGNATURES */
+static inline int __fsverity_verify_signature(const struct inode *inode,
+				const u8 *signature, size_t sig_size,
+				const u8 *file_digest,
+				unsigned int digest_algorithm)
+{
+	return 0;
+}
+#endif /* !CONFIG_FS_VERITY_BUILTIN_SIGNATURES */
+
 #endif	/* _LINUX_FSVERITY_H */
diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h
index 2d68606..84fa9ee 100644
--- a/include/linux/fwnode.h
+++ b/include/linux/fwnode.h
@@ -12,6 +12,7 @@
 #include <linux/types.h>
 #include <linux/list.h>
 #include <linux/err.h>
+#include <linux/android_kabi.h>
 
 struct fwnode_operations;
 struct device;
@@ -39,6 +40,7 @@
 	struct list_head suppliers;
 	struct list_head consumers;
 	u8 flags;
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct fwnode_link {
@@ -46,6 +48,9 @@
 	struct list_head s_hook;
 	struct fwnode_handle *consumer;
 	struct list_head c_hook;
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
 };
 
 /**
diff --git a/include/linux/genhd.h b/include/linux/genhd.h
index 0b48a0c..422806e 100644
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
@@ -16,6 +16,7 @@
 #include <linux/blk_types.h>
 #include <linux/device.h>
 #include <linux/xarray.h>
+#include <linux/android_kabi.h>
 
 extern const struct device_type disk_type;
 extern struct device_type part_type;
@@ -112,6 +113,9 @@
 	unsigned char				tuple_size;
 	unsigned char				interval_exp;
 	unsigned char				tag_size;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 struct gendisk {
@@ -162,6 +166,11 @@
 	struct badblocks *bb;
 	struct lockdep_map lockdep_map;
 	u64 diskseq;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 static inline bool disk_live(struct gendisk *disk)
diff --git a/include/linux/gfp.h b/include/linux/gfp.h
index 55b2ec1..8ed4a56 100644
--- a/include/linux/gfp.h
+++ b/include/linux/gfp.h
@@ -54,12 +54,30 @@
 #define ___GFP_THISNODE		0x200000u
 #define ___GFP_ACCOUNT		0x400000u
 #define ___GFP_ZEROTAGS		0x800000u
-#define ___GFP_SKIP_KASAN_POISON	0x1000000u
+#ifdef CONFIG_KASAN_HW_TAGS
+#define ___GFP_SKIP_ZERO		0x1000000u
+#define ___GFP_SKIP_KASAN_UNPOISON	0x2000000u
+#define ___GFP_SKIP_KASAN_POISON	0x4000000u
+#else
+#define ___GFP_SKIP_ZERO		0
+#define ___GFP_SKIP_KASAN_UNPOISON	0
+#define ___GFP_SKIP_KASAN_POISON	0
+#endif
+#ifdef CONFIG_CMA
+#define ___GFP_CMA		0x8000000u
+#else
+#define ___GFP_CMA		0
+#endif
 #ifdef CONFIG_LOCKDEP
-#define ___GFP_NOLOCKDEP	0x2000000u
+#ifdef CONFIG_CMA
+#define ___GFP_NOLOCKDEP	0x10000000u
+#else
+#define ___GFP_NOLOCKDEP	0x8000000u
+#endif
 #else
 #define ___GFP_NOLOCKDEP	0
 #endif
+
 /* If the above are modified, __GFP_BITS_SHIFT may need updating */
 
 /*
@@ -73,6 +91,7 @@
 #define __GFP_HIGHMEM	((__force gfp_t)___GFP_HIGHMEM)
 #define __GFP_DMA32	((__force gfp_t)___GFP_DMA32)
 #define __GFP_MOVABLE	((__force gfp_t)___GFP_MOVABLE)  /* ZONE_MOVABLE allowed */
+#define __GFP_CMA	((__force gfp_t)___GFP_CMA)
 #define GFP_ZONEMASK	(__GFP_DMA|__GFP_HIGHMEM|__GFP_DMA32|__GFP_MOVABLE)
 
 /**
@@ -232,24 +251,35 @@
  *
  * %__GFP_ZERO returns a zeroed page on success.
  *
- * %__GFP_ZEROTAGS returns a page with zeroed memory tags on success, if
- * __GFP_ZERO is set.
+ * %__GFP_ZEROTAGS zeroes memory tags at allocation time if the memory itself
+ * is being zeroed (either via __GFP_ZERO or via init_on_alloc, provided that
+ * __GFP_SKIP_ZERO is not set). This flag is intended for optimization: setting
+ * memory tags at the same time as zeroing memory has minimal additional
+ * performace impact.
  *
- * %__GFP_SKIP_KASAN_POISON returns a page which does not need to be poisoned
- * on deallocation. Typically used for userspace pages. Currently only has an
- * effect in HW tags mode.
+ * %__GFP_SKIP_KASAN_UNPOISON makes KASAN skip unpoisoning on page allocation.
+ * Only effective in HW_TAGS mode.
+ *
+ * %__GFP_SKIP_KASAN_POISON makes KASAN skip poisoning on page deallocation.
+ * Typically, used for userspace pages. Only effective in HW_TAGS mode.
  */
 #define __GFP_NOWARN	((__force gfp_t)___GFP_NOWARN)
 #define __GFP_COMP	((__force gfp_t)___GFP_COMP)
 #define __GFP_ZERO	((__force gfp_t)___GFP_ZERO)
 #define __GFP_ZEROTAGS	((__force gfp_t)___GFP_ZEROTAGS)
-#define __GFP_SKIP_KASAN_POISON	((__force gfp_t)___GFP_SKIP_KASAN_POISON)
+#define __GFP_SKIP_ZERO ((__force gfp_t)___GFP_SKIP_ZERO)
+#define __GFP_SKIP_KASAN_UNPOISON ((__force gfp_t)___GFP_SKIP_KASAN_UNPOISON)
+#define __GFP_SKIP_KASAN_POISON   ((__force gfp_t)___GFP_SKIP_KASAN_POISON)
 
 /* Disable lockdep for GFP context tracking */
 #define __GFP_NOLOCKDEP ((__force gfp_t)___GFP_NOLOCKDEP)
 
 /* Room for N __GFP_FOO bits */
-#define __GFP_BITS_SHIFT (25 + IS_ENABLED(CONFIG_LOCKDEP))
+#ifdef CONFIG_CMA
+#define __GFP_BITS_SHIFT (28 + IS_ENABLED(CONFIG_LOCKDEP))
+#else
+#define __GFP_BITS_SHIFT (27 + IS_ENABLED(CONFIG_LOCKDEP))
+#endif
 #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1))
 
 /**
@@ -473,16 +503,7 @@
 	| 1 << (___GFP_MOVABLE | ___GFP_DMA32 | ___GFP_DMA | ___GFP_HIGHMEM)  \
 )
 
-static inline enum zone_type gfp_zone(gfp_t flags)
-{
-	enum zone_type z;
-	int bit = (__force int) (flags & GFP_ZONEMASK);
-
-	z = (GFP_ZONE_TABLE >> (bit * GFP_ZONES_SHIFT)) &
-					 ((1 << GFP_ZONES_SHIFT) - 1);
-	VM_BUG_ON((GFP_ZONE_BAD >> bit) & 1);
-	return z;
-}
+enum zone_type gfp_zone(gfp_t flags);
 
 /*
  * There is only one page-allocator function, and two main namespaces to
diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h
index 65df2ce..fc757fd 100644
--- a/include/linux/gpio/driver.h
+++ b/include/linux/gpio/driver.h
@@ -10,6 +10,7 @@
 #include <linux/lockdep.h>
 #include <linux/pinctrl/pinctrl.h>
 #include <linux/pinctrl/pinconf-generic.h>
+#include <linux/android_kabi.h>
 
 struct gpio_desc;
 struct of_phandle_args;
@@ -168,18 +169,11 @@
 
 	/**
 	 * @parent_handler_data:
-	 * @parent_handler_data_array:
 	 *
 	 * Data associated, and passed to, the handler for the parent
-	 * interrupt. Can either be a single pointer if @per_parent_data
-	 * is false, or an array of @num_parents pointers otherwise.  If
-	 * @per_parent_data is true, @parent_handler_data_array cannot be
-	 * NULL.
+	 * interrupt.
 	 */
-	union {
-		void *parent_handler_data;
-		void **parent_handler_data_array;
-	};
+	void *parent_handler_data;
 
 	/**
 	 * @num_parents:
@@ -211,14 +205,6 @@
 	bool threaded;
 
 	/**
-	 * @per_parent_data:
-	 *
-	 * True if parent_handler_data_array describes a @num_parents
-	 * sized array to be used as parent data.
-	 */
-	bool per_parent_data;
-
-	/**
 	 * @init_hw: optional routine to initialize hardware before
 	 * an IRQ chip will be added. This is quite useful when
 	 * a particular driver wants to clear IRQ related registers
@@ -290,6 +276,9 @@
 	 * Store old irq_chip irq_mask callback
 	 */
 	void		(*irq_mask)(struct irq_data *data);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 /**
@@ -440,7 +429,7 @@
 	void __iomem *reg_dir_in;
 	bool bgpio_dir_unreadable;
 	int bgpio_bits;
-	raw_spinlock_t bgpio_lock;
+	spinlock_t bgpio_lock;
 	unsigned long bgpio_data;
 	unsigned long bgpio_dir;
 #endif /* CONFIG_GPIO_GENERIC */
@@ -496,19 +485,10 @@
 	 */
 	int (*of_xlate)(struct gpio_chip *gc,
 			const struct of_phandle_args *gpiospec, u32 *flags);
-
-	/**
-	 * @of_gpio_ranges_fallback:
-	 *
-	 * Optional hook for the case that no gpio-ranges property is defined
-	 * within the device tree node "np" (usually DT before introduction
-	 * of gpio-ranges). So this callback is helpful to provide the
-	 * necessary backward compatibility for the pin ranges.
-	 */
-	int (*of_gpio_ranges_fallback)(struct gpio_chip *gc,
-				       struct device_node *np);
-
 #endif /* CONFIG_OF_GPIO */
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 extern const char *gpiochip_is_requested(struct gpio_chip *gc,
diff --git a/include/linux/hid.h b/include/linux/hid.h
index c3478e3..92965bc 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -26,6 +26,7 @@
 #include <linux/mutex.h>
 #include <linux/power_supply.h>
 #include <uapi/linux/hid.h>
+#include <linux/android_kabi.h>
 
 /*
  * We parse each description item into this structure. Short items data
@@ -155,6 +156,7 @@
 #define HID_UP_DIGITIZER	0x000d0000
 #define HID_UP_PID		0x000f0000
 #define HID_UP_BATTERY		0x00850000
+#define HID_UP_CAMERA 		0x00900000
 #define HID_UP_HPVENDOR         0xff7f0000
 #define HID_UP_HPVENDOR2        0xff010000
 #define HID_UP_MSVENDOR		0xff000000
@@ -599,7 +601,6 @@
 	unsigned long status;						/* see STAT flags above */
 	unsigned claimed;						/* Claimed by hidinput, hiddev? */
 	unsigned quirks;						/* Various quirks the device can pull on us */
-	unsigned initial_quirks;					/* Initial set of quirks supplied when creating device */
 	bool io_started;						/* If IO has started */
 
 	struct list_head inputs;					/* The list of inputs */
@@ -630,6 +631,9 @@
 	struct list_head debug_list;
 	spinlock_t  debug_list_lock;
 	wait_queue_head_t debug_wait;
+
+	ANDROID_KABI_USE(1, struct { u32 initial_quirks; u32 padding; });
+	ANDROID_KABI_RESERVE(2);
 };
 
 #define to_hid_device(pdev) \
@@ -805,7 +809,6 @@
  * @output_report: send output report to device
  * @idle: send idle request to device
  * @may_wakeup: return if device may act as a wakeup source during system-suspend
- * @max_buffer_size: over-ride maximum data buffer size (default: HID_MAX_BUFFER_SIZE)
  */
 struct hid_ll_driver {
 	int (*start)(struct hid_device *hdev);
@@ -831,8 +834,6 @@
 
 	int (*idle)(struct hid_device *hdev, int report, int idle, int reqtype);
 	bool (*may_wakeup)(struct hid_device *hdev);
-
-	unsigned int max_buffer_size;
 };
 
 extern struct hid_ll_driver i2c_hid_ll_driver;
diff --git a/include/linux/highmem.h b/include/linux/highmem.h
index 87763f4..400db9b 100644
--- a/include/linux/highmem.h
+++ b/include/linux/highmem.h
@@ -166,7 +166,7 @@
 alloc_zeroed_user_highpage_movable(struct vm_area_struct *vma,
 				   unsigned long vaddr)
 {
-	struct page *page = alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma, vaddr);
+	struct page *page = alloc_page_vma(GFP_HIGHUSER_MOVABLE | __GFP_CMA, vma, vaddr);
 
 	if (page)
 		clear_user_highpage(page, vaddr);
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
index 0ee1401..f5d4392 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -20,6 +20,7 @@
 #include <linux/seqlock.h>
 #include <linux/timer.h>
 #include <linux/timerqueue.h>
+#include <linux/android_kabi.h>
 
 struct hrtimer_clock_base;
 struct hrtimer_cpu_base;
@@ -124,6 +125,8 @@
 	u8				is_rel;
 	u8				is_soft;
 	u8				is_hard;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 00ed7c1..1d3fbd2 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -9,7 +9,7 @@
  * Copyright (c) 2006, Michael Wu <flamingice@sourmilk.net>
  * Copyright (c) 2013 - 2014 Intel Mobile Communications GmbH
  * Copyright (c) 2016 - 2017 Intel Deutschland GmbH
- * Copyright (c) 2018 - 2021 Intel Corporation
+ * Copyright (c) 2018 - 2022 Intel Corporation
  */
 
 #ifndef LINUX_IEEE80211_H
@@ -18,6 +18,7 @@
 #include <linux/types.h>
 #include <linux/if_ether.h>
 #include <linux/etherdevice.h>
+#include <linux/bitfield.h>
 #include <asm/byteorder.h>
 #include <asm/unaligned.h>
 
@@ -1929,6 +1930,131 @@
 	struct ieee80211_he_mu_edca_param_ac_rec ac_vo;
 } __packed;
 
+#define IEEE80211_EHT_MCS_NSS_RX 0x0f
+#define IEEE80211_EHT_MCS_NSS_TX 0xf0
+
+/**
+ * struct ieee80211_eht_mcs_nss_supp_20mhz_only - EHT 20MHz only station max
+ * supported NSS for per MCS.
+ *
+ * For each field below, bits 0 - 3 indicate the maximal number of spatial
+ * streams for Rx, and bits 4 - 7 indicate the maximal number of spatial streams
+ * for Tx.
+ *
+ * @rx_tx_mcs7_max_nss: indicates the maximum number of spatial streams
+ *     supported for reception and the maximum number of spatial streams
+ *     supported for transmission for MCS 0 - 7.
+ * @rx_tx_mcs9_max_nss: indicates the maximum number of spatial streams
+ *     supported for reception and the maximum number of spatial streams
+ *     supported for transmission for MCS 8 - 9.
+ * @rx_tx_mcs11_max_nss: indicates the maximum number of spatial streams
+ *     supported for reception and the maximum number of spatial streams
+ *     supported for transmission for MCS 10 - 11.
+ * @rx_tx_mcs13_max_nss: indicates the maximum number of spatial streams
+ *     supported for reception and the maximum number of spatial streams
+ *     supported for transmission for MCS 12 - 13.
+ */
+struct ieee80211_eht_mcs_nss_supp_20mhz_only {
+	u8 rx_tx_mcs7_max_nss;
+	u8 rx_tx_mcs9_max_nss;
+	u8 rx_tx_mcs11_max_nss;
+	u8 rx_tx_mcs13_max_nss;
+};
+
+/**
+ * struct ieee80211_eht_mcs_nss_supp_bw - EHT max supported NSS per MCS (except
+ * 20MHz only stations).
+ *
+ * For each field below, bits 0 - 3 indicate the maximal number of spatial
+ * streams for Rx, and bits 4 - 7 indicate the maximal number of spatial streams
+ * for Tx.
+ *
+ * @rx_tx_mcs9_max_nss: indicates the maximum number of spatial streams
+ *     supported for reception and the maximum number of spatial streams
+ *     supported for transmission for MCS 0 - 9.
+ * @rx_tx_mcs11_max_nss: indicates the maximum number of spatial streams
+ *     supported for reception and the maximum number of spatial streams
+ *     supported for transmission for MCS 10 - 11.
+ * @rx_tx_mcs13_max_nss: indicates the maximum number of spatial streams
+ *     supported for reception and the maximum number of spatial streams
+ *     supported for transmission for MCS 12 - 13.
+ */
+struct ieee80211_eht_mcs_nss_supp_bw {
+	u8 rx_tx_mcs9_max_nss;
+	u8 rx_tx_mcs11_max_nss;
+	u8 rx_tx_mcs13_max_nss;
+};
+
+/**
+ * struct ieee80211_eht_cap_elem_fixed - EHT capabilities fixed data
+ *
+ * This structure is the "EHT Capabilities element" fixed fields as
+ * described in P802.11be_D2.0 section 9.4.2.313.
+ *
+ * @mac_cap_info: MAC capabilities, see IEEE80211_EHT_MAC_CAP*
+ * @phy_cap_info: PHY capabilities, see IEEE80211_EHT_PHY_CAP*
+ */
+struct ieee80211_eht_cap_elem_fixed {
+	u8 mac_cap_info[2];
+	u8 phy_cap_info[9];
+} __packed;
+
+/**
+ * struct ieee80211_eht_cap_elem - EHT capabilities element
+ * @fixed: fixed parts, see &ieee80211_eht_cap_elem_fixed
+ * @optional: optional parts
+ */
+struct ieee80211_eht_cap_elem {
+	struct ieee80211_eht_cap_elem_fixed fixed;
+
+	/*
+	 * Followed by:
+	 * Supported EHT-MCS And NSS Set field: 4, 3, 6 or 9 octets.
+	 * EHT PPE Thresholds field: variable length.
+	 */
+	u8 optional[];
+} __packed;
+
+#define IEEE80211_EHT_OPER_INFO_PRESENT	                        0x01
+#define IEEE80211_EHT_OPER_DISABLED_SUBCHANNEL_BITMAP_PRESENT	0x02
+#define IEEE80211_EHT_OPER_EHT_DEF_PE_DURATION	                0x04
+#define IEEE80211_EHT_OPER_GROUP_ADDRESSED_BU_IND_LIMIT         0x08
+#define IEEE80211_EHT_OPER_GROUP_ADDRESSED_BU_IND_EXP_MASK      0x30
+
+/**
+ * struct ieee80211_eht_operation - eht operation element
+ *
+ * This structure is the "EHT Operation Element" fields as
+ * described in P802.11be_D2.0 section 9.4.2.311
+ *
+ * @params: EHT operation element parameters. See &IEEE80211_EHT_OPER_*
+ * @basic_mcs_nss: indicates the EHT-MCSs for each number of spatial streams in
+ *     EHT PPDUs that are supported by all EHT STAs in the BSS in transmit and
+ *     receive.
+ * @optional: optional parts
+ */
+struct ieee80211_eht_operation {
+	u8 params;
+	__le32 basic_mcs_nss;
+	u8 optional[];
+} __packed;
+
+/**
+ * struct ieee80211_eht_operation_info - eht operation information
+ *
+ * @control: EHT operation information control.
+ * @ccfs0: defines a channel center frequency for a 20, 40, 80, 160, or 320 MHz
+ *     EHT BSS.
+ * @ccfs1: defines a channel center frequency for a 160 or 320 MHz EHT BSS.
+ * @optional: optional parts
+ */
+struct ieee80211_eht_operation_info {
+	u8 control;
+	u8 ccfs0;
+	u8 ccfs1;
+	u8 optional[];
+} __packed;
+
 /* 802.11ac VHT Capabilities */
 #define IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_3895			0x00000000
 #define IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_7991			0x00000001
@@ -2094,6 +2220,8 @@
 #define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G	0x04
 #define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G		0x08
 #define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G	0x10
+#define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_MASK_ALL		0x1e
+
 #define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_RU_MAPPING_IN_2G	0x20
 #define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_RU_MAPPING_IN_5G	0x40
 #define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_MASK			0xfe
@@ -2302,6 +2430,29 @@
 	return n;
 }
 
+static inline bool ieee80211_he_capa_size_ok(const u8 *data, u8 len)
+{
+	const struct ieee80211_he_cap_elem *he_cap_ie_elem = (const void *)data;
+	u8 needed = sizeof(*he_cap_ie_elem);
+
+	if (len < needed)
+		return false;
+
+	needed += ieee80211_he_mcs_nss_size(he_cap_ie_elem);
+	if (len < needed)
+		return false;
+
+	if (he_cap_ie_elem->phy_cap_info[6] &
+			IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT) {
+		if (len < needed + 1)
+			return false;
+		needed += ieee80211_he_ppe_size(data[needed],
+						he_cap_ie_elem->phy_cap_info);
+	}
+
+	return len >= needed;
+}
+
 /* HE Operation defines */
 #define IEEE80211_HE_OPERATION_DFLT_PE_DURATION_MASK		0x00000007
 #define IEEE80211_HE_OPERATION_TWT_REQUIRED			0x00000008
@@ -2563,6 +2714,207 @@
 #define S1G_OPER_CH_WIDTH_PRIMARY_1MHZ	BIT(0)
 #define S1G_OPER_CH_WIDTH_OPER		GENMASK(4, 1)
 
+/* EHT MAC capabilities as defined in P802.11be_D2.0 section 9.4.2.313.2 */
+#define IEEE80211_EHT_MAC_CAP0_EPCS_PRIO_ACCESS			0x01
+#define IEEE80211_EHT_MAC_CAP0_OM_CONTROL			0x02
+#define IEEE80211_EHT_MAC_CAP0_TRIG_TXOP_SHARING_MODE1		0x04
+#define IEEE80211_EHT_MAC_CAP0_TRIG_TXOP_SHARING_MODE2		0x08
+#define IEEE80211_EHT_MAC_CAP0_RESTRICTED_TWT			0x10
+#define IEEE80211_EHT_MAC_CAP0_SCS_TRAFFIC_DESC			0x20
+#define IEEE80211_EHT_MAC_CAP0_MAX_MPDU_LEN_MASK		0xc0
+#define	IEEE80211_EHT_MAC_CAP0_MAX_MPDU_LEN_3895	        0
+#define	IEEE80211_EHT_MAC_CAP0_MAX_MPDU_LEN_7991	        1
+#define	IEEE80211_EHT_MAC_CAP0_MAX_MPDU_LEN_11454	        2
+
+#define IEEE80211_EHT_MAC_CAP1_MAX_AMPDU_LEN_MASK		0x01
+
+/* EHT PHY capabilities as defined in P802.11be_D2.0 section 9.4.2.313.3 */
+#define IEEE80211_EHT_PHY_CAP0_320MHZ_IN_6GHZ			0x02
+#define IEEE80211_EHT_PHY_CAP0_242_TONE_RU_GT20MHZ		0x04
+#define IEEE80211_EHT_PHY_CAP0_NDP_4_EHT_LFT_32_GI		0x08
+#define IEEE80211_EHT_PHY_CAP0_PARTIAL_BW_UL_MU_MIMO		0x10
+#define IEEE80211_EHT_PHY_CAP0_SU_BEAMFORMER			0x20
+#define IEEE80211_EHT_PHY_CAP0_SU_BEAMFORMEE			0x40
+
+/* EHT beamformee number of spatial streams <= 80MHz is split */
+#define IEEE80211_EHT_PHY_CAP0_BEAMFORMEE_SS_80MHZ_MASK		0x80
+#define IEEE80211_EHT_PHY_CAP1_BEAMFORMEE_SS_80MHZ_MASK		0x03
+
+#define IEEE80211_EHT_PHY_CAP1_BEAMFORMEE_SS_160MHZ_MASK	0x1c
+#define IEEE80211_EHT_PHY_CAP1_BEAMFORMEE_SS_320MHZ_MASK	0xe0
+
+#define IEEE80211_EHT_PHY_CAP2_SOUNDING_DIM_80MHZ_MASK		0x07
+#define IEEE80211_EHT_PHY_CAP2_SOUNDING_DIM_160MHZ_MASK		0x38
+
+/* EHT number of sounding dimensions for 320MHz is split */
+#define IEEE80211_EHT_PHY_CAP2_SOUNDING_DIM_320MHZ_MASK		0xc0
+#define IEEE80211_EHT_PHY_CAP3_SOUNDING_DIM_320MHZ_MASK		0x01
+#define IEEE80211_EHT_PHY_CAP3_NG_16_SU_FEEDBACK		0x02
+#define IEEE80211_EHT_PHY_CAP3_NG_16_MU_FEEDBACK		0x04
+#define IEEE80211_EHT_PHY_CAP3_CODEBOOK_4_2_SU_FDBK		0x08
+#define IEEE80211_EHT_PHY_CAP3_CODEBOOK_7_5_MU_FDBK		0x10
+#define IEEE80211_EHT_PHY_CAP3_TRIG_SU_BF_FDBK			0x20
+#define IEEE80211_EHT_PHY_CAP3_TRIG_MU_BF_PART_BW_FDBK		0x40
+#define IEEE80211_EHT_PHY_CAP3_TRIG_CQI_FDBK			0x80
+
+#define IEEE80211_EHT_PHY_CAP4_PART_BW_DL_MU_MIMO		0x01
+#define IEEE80211_EHT_PHY_CAP4_PSR_SR_SUPP			0x02
+#define IEEE80211_EHT_PHY_CAP4_POWER_BOOST_FACT_SUPP		0x04
+#define IEEE80211_EHT_PHY_CAP4_EHT_MU_PPDU_4_EHT_LTF_08_GI	0x08
+#define IEEE80211_EHT_PHY_CAP4_MAX_NC_MASK			0xf0
+
+#define IEEE80211_EHT_PHY_CAP5_NON_TRIG_CQI_FEEDBACK		0x01
+#define IEEE80211_EHT_PHY_CAP5_TX_LESS_242_TONE_RU_SUPP		0x02
+#define IEEE80211_EHT_PHY_CAP5_RX_LESS_242_TONE_RU_SUPP		0x04
+#define IEEE80211_EHT_PHY_CAP5_PPE_THRESHOLD_PRESENT		0x08
+#define IEEE80211_EHT_PHY_CAP5_COMMON_NOMINAL_PKT_PAD_MASK	0x30
+#define   IEEE80211_EHT_PHY_CAP5_COMMON_NOMINAL_PKT_PAD_0US	0
+#define   IEEE80211_EHT_PHY_CAP5_COMMON_NOMINAL_PKT_PAD_8US	1
+#define   IEEE80211_EHT_PHY_CAP5_COMMON_NOMINAL_PKT_PAD_16US	2
+#define   IEEE80211_EHT_PHY_CAP5_COMMON_NOMINAL_PKT_PAD_20US	3
+
+/* Maximum number of supported EHT LTF is split */
+#define IEEE80211_EHT_PHY_CAP5_MAX_NUM_SUPP_EHT_LTF_MASK	0xc0
+#define IEEE80211_EHT_PHY_CAP6_MAX_NUM_SUPP_EHT_LTF_MASK	0x07
+
+#define IEEE80211_EHT_PHY_CAP6_MCS15_SUPP_MASK			0x78
+#define IEEE80211_EHT_PHY_CAP6_EHT_DUP_6GHZ_SUPP		0x80
+
+#define IEEE80211_EHT_PHY_CAP7_20MHZ_STA_RX_NDP_WIDER_BW	0x01
+#define IEEE80211_EHT_PHY_CAP7_NON_OFDMA_UL_MU_MIMO_80MHZ	0x02
+#define IEEE80211_EHT_PHY_CAP7_NON_OFDMA_UL_MU_MIMO_160MHZ	0x04
+#define IEEE80211_EHT_PHY_CAP7_NON_OFDMA_UL_MU_MIMO_320MHZ	0x08
+#define IEEE80211_EHT_PHY_CAP7_MU_BEAMFORMER_80MHZ		0x10
+#define IEEE80211_EHT_PHY_CAP7_MU_BEAMFORMER_160MHZ		0x20
+#define IEEE80211_EHT_PHY_CAP7_MU_BEAMFORMER_320MHZ		0x40
+#define IEEE80211_EHT_PHY_CAP7_TB_SOUNDING_FDBK_RATE_LIMIT	0x80
+
+#define IEEE80211_EHT_PHY_CAP8_RX_1024QAM_WIDER_BW_DL_OFDMA	0x01
+#define IEEE80211_EHT_PHY_CAP8_RX_4096QAM_WIDER_BW_DL_OFDMA	0x02
+
+/*
+ * EHT operation channel width as defined in P802.11be_D2.0 section 9.4.2.311
+ */
+#define IEEE80211_EHT_OPER_CHAN_WIDTH		0x7
+#define IEEE80211_EHT_OPER_CHAN_WIDTH_20MHZ	0
+#define IEEE80211_EHT_OPER_CHAN_WIDTH_40MHZ	1
+#define IEEE80211_EHT_OPER_CHAN_WIDTH_80MHZ	2
+#define IEEE80211_EHT_OPER_CHAN_WIDTH_160MHZ	3
+#define IEEE80211_EHT_OPER_CHAN_WIDTH_320MHZ	4
+
+/* Calculate 802.11be EHT capabilities IE Tx/Rx EHT MCS NSS Support Field size */
+static inline u8
+ieee80211_eht_mcs_nss_size(const struct ieee80211_he_cap_elem *he_cap,
+			   const struct ieee80211_eht_cap_elem_fixed *eht_cap,
+			   bool from_ap)
+{
+	u8 count = 0;
+
+	/* on 2.4 GHz, if it supports 40 MHz, the result is 3 */
+	if (he_cap->phy_cap_info[0] &
+	    IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G)
+		return 3;
+
+	/* on 2.4 GHz, these three bits are reserved, so should be 0 */
+	if (he_cap->phy_cap_info[0] &
+	    IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G)
+		count += 3;
+
+	if (he_cap->phy_cap_info[0] &
+	    IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G)
+		count += 3;
+
+	if (eht_cap->phy_cap_info[0] & IEEE80211_EHT_PHY_CAP0_320MHZ_IN_6GHZ)
+		count += 3;
+
+	if (count)
+		return count;
+
+	return from_ap ? 3 : 4;
+}
+
+/* 802.11be EHT PPE Thresholds */
+#define IEEE80211_EHT_PPE_THRES_NSS_POS			0
+#define IEEE80211_EHT_PPE_THRES_NSS_MASK		0xf
+#define IEEE80211_EHT_PPE_THRES_RU_INDEX_BITMASK_MASK	0x1f0
+#define IEEE80211_EHT_PPE_THRES_INFO_PPET_SIZE		3
+#define IEEE80211_EHT_PPE_THRES_INFO_HEADER_SIZE	9
+
+/*
+ * Calculate 802.11be EHT capabilities IE EHT field size
+ */
+static inline u8
+ieee80211_eht_ppe_size(u16 ppe_thres_hdr, const u8 *phy_cap_info)
+{
+	u32 n;
+
+	if (!(phy_cap_info[5] &
+	      IEEE80211_EHT_PHY_CAP5_PPE_THRESHOLD_PRESENT))
+		return 0;
+
+	n = hweight16(ppe_thres_hdr &
+		      IEEE80211_EHT_PPE_THRES_RU_INDEX_BITMASK_MASK);
+	n *= 1 + u16_get_bits(ppe_thres_hdr, IEEE80211_EHT_PPE_THRES_NSS_MASK);
+
+	/*
+	 * Each pair is 6 bits, and we need to add the 9 "header" bits to the
+	 * total size.
+	 */
+	n = n * IEEE80211_EHT_PPE_THRES_INFO_PPET_SIZE * 2 +
+	    IEEE80211_EHT_PPE_THRES_INFO_HEADER_SIZE;
+	return DIV_ROUND_UP(n, 8);
+}
+
+static inline bool
+ieee80211_eht_capa_size_ok(const u8 *he_capa, const u8 *data, u8 len,
+			   bool from_ap)
+{
+	const struct ieee80211_eht_cap_elem_fixed *elem = (const void *)data;
+	u8 needed = sizeof(struct ieee80211_eht_cap_elem_fixed);
+
+	if (len < needed || !he_capa)
+		return false;
+
+	needed += ieee80211_eht_mcs_nss_size((const void *)he_capa,
+					     (const void *)data,
+					     from_ap);
+	if (len < needed)
+		return false;
+
+	if (elem->phy_cap_info[5] &
+			IEEE80211_EHT_PHY_CAP5_PPE_THRESHOLD_PRESENT) {
+		u16 ppe_thres_hdr;
+
+		if (len < needed + sizeof(ppe_thres_hdr))
+			return false;
+
+		ppe_thres_hdr = get_unaligned_le16(data + needed);
+		needed += ieee80211_eht_ppe_size(ppe_thres_hdr,
+						 elem->phy_cap_info);
+	}
+
+	return len >= needed;
+}
+
+static inline bool
+ieee80211_eht_oper_size_ok(const u8 *data, u8 len)
+{
+	const struct ieee80211_eht_operation *elem = (const void *)data;
+	u8 needed = sizeof(*elem);
+
+	if (len < needed)
+		return false;
+
+	if (elem->params & IEEE80211_EHT_OPER_INFO_PRESENT) {
+		needed += 3;
+
+		if (elem->params &
+		    IEEE80211_EHT_OPER_DISABLED_SUBCHANNEL_BITMAP_PRESENT)
+			needed += 2;
+	}
+
+	return len >= needed;
+}
 
 #define LISTEN_INT_USF	GENMASK(15, 14)
 #define LISTEN_INT_UI	GENMASK(13, 0)
@@ -3018,6 +3370,9 @@
 	WLAN_EID_EXT_SHORT_SSID_LIST = 58,
 	WLAN_EID_EXT_HE_6GHZ_CAPA = 59,
 	WLAN_EID_EXT_UL_MU_POWER_CAPA = 60,
+	WLAN_EID_EXT_EHT_OPERATION = 106,
+	WLAN_EID_EXT_EHT_MULTI_LINK = 107,
+	WLAN_EID_EXT_EHT_CAPABILITY = 108,
 };
 
 /* Action category code */
@@ -3960,6 +4315,17 @@
 #define IEEE80211_TBTT_INFO_OFFSET_BSSID_BSS_PARAM		9
 #define IEEE80211_TBTT_INFO_OFFSET_BSSID_SSSID_BSS_PARAM	13
 
+/*
+ * TBTT Information field, based on Draft P802.11be_D1.4
+ * section 9.4.2.170.2
+ */
+#define IEEE80211_TBTT_INFO_BSSID_SSID_BSS_PARAM_PSD		13
+#define IEEE80211_TBTT_INFO_BSSID_SSID_BSS_PARAM_PSD_MLD_PARAM	16
+#define IEEE80211_TBTT_TYPE_MASK	0xC0
+#define IEEE80211_TBTT_COUNT_MASK	0x0F
+/* TBTT infomation header(2) + Operating class(1) + Channel number(1) */
+#define IEEE80211_NBR_AP_INFO_LEN	4
+
 #define IEEE80211_RNR_TBTT_PARAMS_OCT_RECOMMENDED		0x01
 #define IEEE80211_RNR_TBTT_PARAMS_SAME_SSID			0x02
 #define IEEE80211_RNR_TBTT_PARAMS_MULTI_BSSID			0x04
@@ -3982,4 +4348,229 @@
 	IEEE80211_RANGE_PARAMS_MAX_TOTAL_LTF_UNSPECIFIED,
 };
 
+/* multi-link device */
+#define IEEE80211_MLD_MAX_NUM_LINKS	15
+
+#define IEEE80211_ML_CONTROL_TYPE			0x0007
+#define IEEE80211_ML_CONTROL_TYPE_BASIC			0
+#define IEEE80211_ML_CONTROL_TYPE_PREQ			1
+#define IEEE80211_ML_CONTROL_TYPE_RECONF		2
+#define IEEE80211_ML_CONTROL_TYPE_TDLS			3
+#define IEEE80211_ML_CONTROL_TYPE_PRIO_ACCESS		4
+#define IEEE80211_ML_CONTROL_PRESENCE_MASK		0xfff0
+
+struct ieee80211_multi_link_elem {
+	__le16 control;
+	u8 variable[];
+} __packed;
+
+#define IEEE80211_MLC_BASIC_PRES_LINK_ID		0x0010
+#define IEEE80211_MLC_BASIC_PRES_BSS_PARAM_CH_CNT	0x0020
+#define IEEE80211_MLC_BASIC_PRES_MED_SYNC_DELAY		0x0040
+#define IEEE80211_MLC_BASIC_PRES_EML_CAPA		0x0080
+#define IEEE80211_MLC_BASIC_PRES_MLD_CAPA_OP		0x0100
+#define IEEE80211_MLC_BASIC_PRES_MLD_ID			0x0200
+
+#define IEEE80211_MED_SYNC_DELAY_DURATION		0x00ff
+#define IEEE80211_MED_SYNC_DELAY_SYNC_OFDM_ED_THRESH	0x0f00
+#define IEEE80211_MED_SYNC_DELAY_SYNC_MAX_NUM_TXOPS	0xf000
+
+#define IEEE80211_EML_CAP_EMLSR_SUPP			0x0001
+#define IEEE80211_EML_CAP_EMLSR_PADDING_DELAY		0x000e
+#define  IEEE80211_EML_CAP_EMLSR_PADDING_DELAY_0US		0
+#define  IEEE80211_EML_CAP_EMLSR_PADDING_DELAY_32US		1
+#define  IEEE80211_EML_CAP_EMLSR_PADDING_DELAY_64US		2
+#define  IEEE80211_EML_CAP_EMLSR_PADDING_DELAY_128US		3
+#define  IEEE80211_EML_CAP_EMLSR_PADDING_DELAY_256US		4
+#define IEEE80211_EML_CAP_EMLSR_TRANSITION_DELAY	0x0070
+#define  IEEE80211_EML_CAP_EMLSR_TRANSITION_DELAY_0US		0
+#define  IEEE80211_EML_CAP_EMLSR_TRANSITION_DELAY_16US		1
+#define  IEEE80211_EML_CAP_EMLSR_TRANSITION_DELAY_32US		2
+#define  IEEE80211_EML_CAP_EMLSR_TRANSITION_DELAY_64US		3
+#define  IEEE80211_EML_CAP_EMLSR_TRANSITION_DELAY_128US		4
+#define  IEEE80211_EML_CAP_EMLSR_TRANSITION_DELAY_256US		5
+#define IEEE80211_EML_CAP_EMLMR_SUPPORT			0x0080
+#define IEEE80211_EML_CAP_EMLMR_DELAY			0x0700
+#define  IEEE80211_EML_CAP_EMLMR_DELAY_0US			0
+#define  IEEE80211_EML_CAP_EMLMR_DELAY_32US			1
+#define  IEEE80211_EML_CAP_EMLMR_DELAY_64US			2
+#define  IEEE80211_EML_CAP_EMLMR_DELAY_128US			3
+#define  IEEE80211_EML_CAP_EMLMR_DELAY_256US			4
+#define IEEE80211_EML_CAP_TRANSITION_TIMEOUT		0x7800
+#define  IEEE80211_EML_CAP_TRANSITION_TIMEOUT_0			0
+#define  IEEE80211_EML_CAP_TRANSITION_TIMEOUT_128US		1
+#define  IEEE80211_EML_CAP_TRANSITION_TIMEOUT_256US		2
+#define  IEEE80211_EML_CAP_TRANSITION_TIMEOUT_512US		3
+#define  IEEE80211_EML_CAP_TRANSITION_TIMEOUT_1TU		4
+#define  IEEE80211_EML_CAP_TRANSITION_TIMEOUT_2TU		5
+#define  IEEE80211_EML_CAP_TRANSITION_TIMEOUT_4TU		6
+#define  IEEE80211_EML_CAP_TRANSITION_TIMEOUT_8TU		7
+#define  IEEE80211_EML_CAP_TRANSITION_TIMEOUT_16TU		8
+#define  IEEE80211_EML_CAP_TRANSITION_TIMEOUT_32TU		9
+#define  IEEE80211_EML_CAP_TRANSITION_TIMEOUT_64TU		10
+#define  IEEE80211_EML_CAP_TRANSITION_TIMEOUT_128TU		11
+
+#define IEEE80211_MLD_CAP_OP_MAX_SIMUL_LINKS		0x000f
+#define IEEE80211_MLD_CAP_OP_SRS_SUPPORT		0x0010
+#define IEEE80211_MLD_CAP_OP_TID_TO_LINK_MAP_NEG_SUPP	0x0060
+#define IEEE80211_MLD_CAP_OP_FREQ_SEP_TYPE_IND		0x0f80
+#define IEEE80211_MLD_CAP_OP_AAR_SUPPORT		0x1000
+
+struct ieee80211_mle_basic_common_info {
+	u8 len;
+	u8 mld_mac_addr[ETH_ALEN];
+	u8 variable[];
+} __packed;
+
+#define IEEE80211_MLC_PREQ_PRES_MLD_ID			0x0010
+
+struct ieee80211_mle_preq_common_info {
+	u8 len;
+	u8 variable[];
+} __packed;
+
+#define IEEE80211_MLC_RECONF_PRES_MLD_MAC_ADDR		0x0010
+
+/* no fixed fields in RECONF */
+
+struct ieee80211_mle_tdls_common_info {
+	u8 len;
+	u8 ap_mld_mac_addr[ETH_ALEN];
+} __packed;
+
+#define IEEE80211_MLC_PRIO_ACCESS_PRES_AP_MLD_MAC_ADDR	0x0010
+
+/* no fixed fields in PRIO_ACCESS */
+
+/**
+ * ieee80211_mle_common_size - check multi-link element common size
+ * @data: multi-link element, must already be checked for size using
+ *	ieee80211_mle_size_ok()
+ */
+static inline u8 ieee80211_mle_common_size(const u8 *data)
+{
+	const struct ieee80211_multi_link_elem *mle = (const void *)data;
+	u16 control = le16_to_cpu(mle->control);
+	u8 common = 0;
+
+	switch (u16_get_bits(control, IEEE80211_ML_CONTROL_TYPE)) {
+	case IEEE80211_ML_CONTROL_TYPE_BASIC:
+		common += sizeof(struct ieee80211_mle_basic_common_info);
+		break;
+	case IEEE80211_ML_CONTROL_TYPE_PREQ:
+		common += sizeof(struct ieee80211_mle_preq_common_info);
+		break;
+	case IEEE80211_ML_CONTROL_TYPE_RECONF:
+		if (control & IEEE80211_MLC_RECONF_PRES_MLD_MAC_ADDR)
+			common += ETH_ALEN;
+		return common;
+	case IEEE80211_ML_CONTROL_TYPE_TDLS:
+		common += sizeof(struct ieee80211_mle_tdls_common_info);
+		break;
+	case IEEE80211_ML_CONTROL_TYPE_PRIO_ACCESS:
+		if (control & IEEE80211_MLC_PRIO_ACCESS_PRES_AP_MLD_MAC_ADDR)
+			common += ETH_ALEN;
+		return common;
+	default:
+		WARN_ON(1);
+		return 0;
+	}
+
+	return sizeof(*mle) + common + mle->variable[0];
+}
+
+/**
+ * ieee80211_mle_size_ok - validate multi-link element size
+ * @data: pointer to the element data
+ * @len: length of the containing element
+ */
+static inline bool ieee80211_mle_size_ok(const u8 *data, u8 len)
+{
+	const struct ieee80211_multi_link_elem *mle = (const void *)data;
+	u8 fixed = sizeof(*mle);
+	u8 common = 0;
+	bool check_common_len = false;
+	u16 control;
+
+	if (len < fixed)
+		return false;
+
+	control = le16_to_cpu(mle->control);
+
+	switch (u16_get_bits(control, IEEE80211_ML_CONTROL_TYPE)) {
+	case IEEE80211_ML_CONTROL_TYPE_BASIC:
+		common += sizeof(struct ieee80211_mle_basic_common_info);
+		check_common_len = true;
+		if (control & IEEE80211_MLC_BASIC_PRES_LINK_ID)
+			common += 1;
+		if (control & IEEE80211_MLC_BASIC_PRES_BSS_PARAM_CH_CNT)
+			common += 1;
+		if (control & IEEE80211_MLC_BASIC_PRES_MED_SYNC_DELAY)
+			common += 2;
+		if (control & IEEE80211_MLC_BASIC_PRES_EML_CAPA)
+			common += 2;
+		if (control & IEEE80211_MLC_BASIC_PRES_MLD_CAPA_OP)
+			common += 2;
+		if (control & IEEE80211_MLC_BASIC_PRES_MLD_ID)
+			common += 1;
+		break;
+	case IEEE80211_ML_CONTROL_TYPE_PREQ:
+		common += sizeof(struct ieee80211_mle_preq_common_info);
+		if (control & IEEE80211_MLC_PREQ_PRES_MLD_ID)
+			common += 1;
+		check_common_len = true;
+		break;
+	case IEEE80211_ML_CONTROL_TYPE_RECONF:
+		if (control & IEEE80211_MLC_RECONF_PRES_MLD_MAC_ADDR)
+			common += ETH_ALEN;
+		break;
+	case IEEE80211_ML_CONTROL_TYPE_TDLS:
+		common += sizeof(struct ieee80211_mle_tdls_common_info);
+		check_common_len = true;
+		break;
+	case IEEE80211_ML_CONTROL_TYPE_PRIO_ACCESS:
+		if (control & IEEE80211_MLC_PRIO_ACCESS_PRES_AP_MLD_MAC_ADDR)
+			common += ETH_ALEN;
+		break;
+	default:
+		/* we don't know this type */
+		return true;
+	}
+
+	if (len < fixed + common)
+		return false;
+
+	if (!check_common_len)
+		return true;
+
+	/* if present, common length is the first octet there */
+	return mle->variable[0] >= common;
+}
+
+enum ieee80211_mle_subelems {
+	IEEE80211_MLE_SUBELEM_PER_STA_PROFILE		= 0,
+};
+
+#define IEEE80211_MLE_STA_CONTROL_LINK_ID			0x000f
+#define IEEE80211_MLE_STA_CONTROL_COMPLETE_PROFILE		0x0010
+#define IEEE80211_MLE_STA_CONTROL_STA_MAC_ADDR_PRESENT		0x0020
+#define IEEE80211_MLE_STA_CONTROL_BEACON_INT_PRESENT		0x0040
+#define IEEE80211_MLE_STA_CONTROL_TSF_OFFS_PRESENT		0x0080
+#define IEEE80211_MLE_STA_CONTROL_DTIM_INFO_PRESENT		0x0100
+#define IEEE80211_MLE_STA_CONTROL_NSTR_LINK_PAIR_PRESENT	0x0200
+#define IEEE80211_MLE_STA_CONTROL_NSTR_BITMAP_SIZE		0x0400
+#define IEEE80211_MLE_STA_CONTROL_BSS_PARAM_CHANGE_CNT_PRESENT	0x0800
+
+struct ieee80211_mle_per_sta_profile {
+	__le16 control;
+	u8 sta_info_len;
+	u8 variable[];
+} __packed;
+
+#define for_each_mle_subelement(_elem, _data, _len)			\
+	if (ieee80211_mle_size_ok(_data, _len))				\
+		for_each_element(_elem,					\
+				 _data + ieee80211_mle_common_size(_data),\
+				 _len - ieee80211_mle_common_size(_data))
+
 #endif /* LINUX_IEEE80211_H */
diff --git a/include/linux/input.h b/include/linux/input.h
index 0354b29..dbf4ba6 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -7,6 +7,7 @@
 
 #include <linux/time.h>
 #include <linux/list.h>
+#include <linux/android_kabi.h>
 #include <uapi/linux/input.h>
 /* Implementation details, userspace should not care about these */
 #define ABS_MT_FIRST		ABS_MT_TOUCH_MAJOR
@@ -209,6 +210,11 @@
 	ktime_t timestamp[INPUT_CLK_MAX];
 
 	bool inhibited;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 #define to_input_dev(d) container_of(d, struct input_dev, dev)
 
@@ -328,6 +334,8 @@
 
 	struct list_head	h_list;
 	struct list_head	node;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -354,6 +362,8 @@
 
 	struct list_head	d_node;
 	struct list_head	h_node;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct input_dev __must_check *input_allocate_device(void);
@@ -560,6 +570,9 @@
 
 	int max_effects;
 	struct ff_effect *effects;
+
+	ANDROID_KABI_RESERVE(1);
+
 	struct file *effect_owners[];
 };
 
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
index 1f22a30..48a6365 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -529,6 +529,12 @@
 };
 
 #define SOFTIRQ_STOP_IDLE_MASK (~(1 << RCU_SOFTIRQ))
+/* Softirq's where the handling might be long: */
+#define LONG_SOFTIRQ_MASK ((1 << NET_TX_SOFTIRQ)       | \
+			   (1 << NET_RX_SOFTIRQ)       | \
+			   (1 << BLOCK_SOFTIRQ)        | \
+			   (1 << IRQ_POLL_SOFTIRQ) | \
+			   (1 << TASKLET_SOFTIRQ))
 
 /* map softirq index to softirq name. update 'softirq_to_name' in
  * kernel/softirq.c when adding a new softirq.
@@ -555,6 +561,7 @@
 extern void raise_softirq(unsigned int nr);
 
 DECLARE_PER_CPU(struct task_struct *, ksoftirqd);
+DECLARE_PER_CPU(__u32, active_softirqs);
 
 static inline struct task_struct *this_cpu_ksoftirqd(void)
 {
diff --git a/include/linux/io-pgtable.h b/include/linux/io-pgtable.h
index ca98aea..1ccc25a 100644
--- a/include/linux/io-pgtable.h
+++ b/include/linux/io-pgtable.h
@@ -150,6 +150,9 @@
  *
  * @map:          Map a physically contiguous memory region.
  * @map_pages:    Map a physically contiguous range of pages of the same size.
+ * @map_sg:       Map a scatter-gather list of physically contiguous memory
+ *                chunks. The mapped pointer argument is used to store how
+ *                many bytes are mapped.
  * @unmap:        Unmap a physically contiguous memory region.
  * @unmap_pages:  Unmap a range of virtually contiguous pages of the same size.
  * @iova_to_phys: Translate iova to physical address.
@@ -163,6 +166,9 @@
 	int (*map_pages)(struct io_pgtable_ops *ops, unsigned long iova,
 			 phys_addr_t paddr, size_t pgsize, size_t pgcount,
 			 int prot, gfp_t gfp, size_t *mapped);
+	int (*map_sg)(struct io_pgtable_ops *ops, unsigned long iova,
+		      struct scatterlist *sg, unsigned int nents, int prot,
+		      gfp_t gfp, size_t *mapped);
 	size_t (*unmap)(struct io_pgtable_ops *ops, unsigned long iova,
 			size_t size, struct iommu_iotlb_gather *gather);
 	size_t (*unmap_pages)(struct io_pgtable_ops *ops, unsigned long iova,
diff --git a/include/linux/io.h b/include/linux/io.h
index 9595151..84eac81 100644
--- a/include/linux/io.h
+++ b/include/linux/io.h
@@ -21,6 +21,8 @@
 void __iowrite64_copy(void __iomem *to, const void *from, size_t count);
 
 #ifdef CONFIG_MMU
+void ioremap_phys_range_hook(phys_addr_t phys_addr, size_t size, pgprot_t prot);
+void iounmap_phys_range_hook(phys_addr_t phys_addr, size_t size);
 int ioremap_page_range(unsigned long addr, unsigned long end,
 		       phys_addr_t phys_addr, pgprot_t prot);
 #else
diff --git a/include/linux/iomap.h b/include/linux/iomap.h
index 829f232..9693aa8 100644
--- a/include/linux/iomap.h
+++ b/include/linux/iomap.h
@@ -9,6 +9,7 @@
 #include <linux/types.h>
 #include <linux/mm_types.h>
 #include <linux/blkdev.h>
+#include <linux/android_kabi.h>
 
 struct address_space;
 struct fiemap_extent_info;
@@ -89,6 +90,8 @@
 	void			*inline_data;
 	void			*private; /* filesystem private */
 	const struct iomap_page_ops *page_ops;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 static inline sector_t iomap_sector(const struct iomap *iomap, loff_t pos)
@@ -160,6 +163,9 @@
 	 */
 	int (*iomap_end)(struct inode *inode, loff_t pos, loff_t length,
 			ssize_t written, unsigned flags, struct iomap *iomap);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 /**
diff --git a/include/linux/iommu.h b/include/linux/iommu.h
index d2f3435..1016c15 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
@@ -31,6 +31,18 @@
  * if the IOMMU page table format is equivalent.
  */
 #define IOMMU_PRIV	(1 << 5)
+/*
+ * Allow caching in a transparent outer level of cache, also known as
+ * the last-level or system cache, with a read/write allocation policy.
+ * Does not depend on IOMMU_CACHE. Incompatible with IOMMU_SYS_CACHE_NWA.
+ */
+#define IOMMU_SYS_CACHE	(1 << 6)
+/*
+ * Allow caching in a transparent outer level of cache, also known as
+ * the last-level or system cache, with a read allocation policy.
+ * Does not depend on IOMMU_CACHE. Incompatible with IOMMU_SYS_CACHE.
+ */
+#define IOMMU_SYS_CACHE_NWA (1 << 7)
 
 struct iommu_ops;
 struct iommu_group;
@@ -200,6 +212,8 @@
  * @map: map a physically contiguous memory region to an iommu domain
  * @map_pages: map a physically contiguous set of pages of the same size to
  *             an iommu domain.
+ * @map_sg: map a scatter-gather list of physically contiguous chunks to
+ *          an iommu domain.
  * @unmap: unmap a physically contiguous memory region from an iommu domain
  * @unmap_pages: unmap a number of pages of the same size from an iommu domain
  * @flush_iotlb_all: Synchronously flush all hardware TLBs for this domain
@@ -253,6 +267,9 @@
 	int (*map_pages)(struct iommu_domain *domain, unsigned long iova,
 			 phys_addr_t paddr, size_t pgsize, size_t pgcount,
 			 int prot, gfp_t gfp, size_t *mapped);
+	int (*map_sg)(struct iommu_domain *domain, unsigned long iova,
+		      struct scatterlist *sg, unsigned int nents, int prot,
+		      gfp_t gfp, size_t *mapped);
 	size_t (*unmap)(struct iommu_domain *domain, unsigned long iova,
 		     size_t size, struct iommu_iotlb_gather *iotlb_gather);
 	size_t (*unmap_pages)(struct iommu_domain *domain, unsigned long iova,
diff --git a/include/linux/ioport.h b/include/linux/ioport.h
index ec5f71f..2c4484d 100644
--- a/include/linux/ioport.h
+++ b/include/linux/ioport.h
@@ -14,6 +14,7 @@
 #include <linux/compiler.h>
 #include <linux/minmax.h>
 #include <linux/types.h>
+#include <linux/android_kabi.h>
 /*
  * Resources are tree-like, allowing
  * nesting etc..
@@ -25,6 +26,11 @@
 	unsigned long flags;
 	unsigned long desc;
 	struct resource *parent, *sibling, *child;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 /*
diff --git a/include/linux/iova.h b/include/linux/iova.h
index 6b6cc10..052bf06 100644
--- a/include/linux/iova.h
+++ b/include/linux/iova.h
@@ -96,6 +96,7 @@
 	atomic_t fq_timer_on;			/* 1 when timer is active, 0
 						   when not */
 	struct hlist_node	cpuhp_dead;
+	bool best_fit;
 };
 
 static inline unsigned long iova_size(struct iova *iova)
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h
index d1f3864..ab1fff4 100644
--- a/include/linux/ipv6.h
+++ b/include/linux/ipv6.h
@@ -3,6 +3,7 @@
 #define _IPV6_H
 
 #include <uapi/linux/ipv6.h>
+#include <linux/android_kabi.h>
 
 #define ipv6_optlen(p)  (((p)->hdrlen+1) << 3)
 #define ipv6_authlen(p) (((p)->hdrlen+2) << 2)
@@ -43,6 +44,7 @@
 	__s32		accept_ra_rt_info_max_plen;
 #endif
 #endif
+	__s32		accept_ra_rt_table;
 	__s32		proxy_ndp;
 	__s32		accept_source_route;
 	__s32		accept_ra_from_local;
@@ -81,6 +83,11 @@
 	__u8		ioam6_enabled;
 
 	struct ctl_table_header *sysctl_header;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 struct ipv6_params {
diff --git a/include/linux/irq.h b/include/linux/irq.h
index f9e6449..d34fe84 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -73,6 +73,7 @@
  * IRQ_DISABLE_UNLAZY		- Disable lazy irq disable
  * IRQ_HIDDEN			- Don't show up in /proc/interrupts
  * IRQ_NO_DEBUG			- Exclude from note_interrupt() debugging
+ * IRQ_RAW			- Skip tick management and irqtime accounting
  */
 enum {
 	IRQ_TYPE_NONE		= 0x00000000,
@@ -101,6 +102,7 @@
 	IRQ_DISABLE_UNLAZY	= (1 << 19),
 	IRQ_HIDDEN		= (1 << 20),
 	IRQ_NO_DEBUG		= (1 << 21),
+	IRQ_RAW			= (1 << 22),
 };
 
 #define IRQF_MODIFY_MASK	\
diff --git a/include/linux/irqchip/arm-gic-v3.h b/include/linux/irqchip/arm-gic-v3.h
index 81cbf85..6f8c621 100644
--- a/include/linux/irqchip/arm-gic-v3.h
+++ b/include/linux/irqchip/arm-gic-v3.h
@@ -599,7 +599,9 @@
 #define ICC_SGI1R_AFFINITY_3_SHIFT	48
 #define ICC_SGI1R_AFFINITY_3_MASK	(0xffULL << ICC_SGI1R_AFFINITY_3_SHIFT)
 
+#if defined(CONFIG_ARM64) || defined(CONFIG_ARM)
 #include <asm/arch_gicv3.h>
+#endif
 
 #ifndef __ASSEMBLY__
 
@@ -637,6 +639,21 @@
 	     struct irq_domain *domain);
 int mbi_init(struct fwnode_handle *fwnode, struct irq_domain *parent);
 
+struct gic_chip_data {
+	struct fwnode_handle	*fwnode;
+	void __iomem		*dist_base;
+	struct redist_region	*redist_regions;
+	struct rdists		rdists;
+	struct irq_domain	*domain;
+	u64			redist_stride;
+	u32			nr_redist_regions;
+	u64			flags;
+	bool			has_rss;
+	unsigned int		ppi_nr;
+	struct partition_desc	**ppi_descs;
+};
+
+#if defined(CONFIG_ARM64) || defined(CONFIG_ARM)
 static inline bool gic_enable_sre(void)
 {
 	u32 val;
@@ -651,6 +668,17 @@
 
 	return !!(val & ICC_SRE_EL1_SRE);
 }
+#else
+static inline bool gic_enable_sre(void)
+{
+	return false;
+}
+#endif
+
+void gic_resume(void);
+void gic_dist_init(void);
+void gic_cpu_init(void);
+void gic_dist_wait_for_rwp(void);
 
 #endif
 
diff --git a/include/linux/irqchip/arm-gic.h b/include/linux/irqchip/arm-gic.h
index 5686711..cf22619 100644
--- a/include/linux/irqchip/arm-gic.h
+++ b/include/linux/irqchip/arm-gic.h
@@ -161,6 +161,7 @@
 int gic_get_cpu_id(unsigned int cpu);
 void gic_migrate_target(unsigned int new_cpu_id);
 unsigned long gic_get_sgir_physaddr(void);
+void gic_v2_resume(void);
 
 #endif /* __ASSEMBLY */
 #endif
diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
index 9ee238a..6121f43 100644
--- a/include/linux/irqdomain.h
+++ b/include/linux/irqdomain.h
@@ -35,6 +35,7 @@
 #include <linux/of.h>
 #include <linux/mutex.h>
 #include <linux/radix-tree.h>
+#include <linux/android_kabi.h>
 
 struct device_node;
 struct fwnode_handle;
@@ -171,6 +172,11 @@
 	struct irq_domain *parent;
 #endif
 
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
+
 	/* reverse map data. The linear map gets appended to the irq_domain */
 	irq_hw_number_t hwirq_max;
 	unsigned int revmap_size;
diff --git a/include/linux/jump_label.h b/include/linux/jump_label.h
index 019e55c..9a7ebc8 100644
--- a/include/linux/jump_label.h
+++ b/include/linux/jump_label.h
@@ -113,7 +113,7 @@
 #endif	/* CONFIG_JUMP_LABEL */
 #endif /* __ASSEMBLY__ */
 
-#ifdef CONFIG_JUMP_LABEL
+#if defined(CONFIG_JUMP_LABEL) && !defined(BUILD_FIPS140_KO)
 #include <asm/jump_label.h>
 
 #ifndef __ASSEMBLY__
@@ -200,7 +200,30 @@
 
 struct module;
 
-#ifdef CONFIG_JUMP_LABEL
+#ifdef BUILD_FIPS140_KO
+
+#include <linux/atomic.h>
+
+static inline int static_key_count(struct static_key *key)
+{
+	return atomic_read(&key->enabled);
+}
+
+static __always_inline bool static_key_false(struct static_key *key)
+{
+	if (unlikely(static_key_count(key) > 0))
+		return true;
+	return false;
+}
+
+static __always_inline bool static_key_true(struct static_key *key)
+{
+	if (likely(static_key_count(key) > 0))
+		return true;
+	return false;
+}
+
+#elif defined(CONFIG_JUMP_LABEL)
 
 #define JUMP_TYPE_FALSE		0UL
 #define JUMP_TYPE_TRUE		1UL
@@ -420,7 +443,7 @@
 	static_key_count((struct static_key *)x) > 0;				\
 })
 
-#ifdef CONFIG_JUMP_LABEL
+#if defined(CONFIG_JUMP_LABEL) && !defined(BUILD_FIPS140_KO)
 
 /*
  * Combine the right initial value (type) with the right branch order
diff --git a/include/linux/kasan-enabled.h b/include/linux/kasan-enabled.h
new file mode 100644
index 0000000..6f612d6
--- /dev/null
+++ b/include/linux/kasan-enabled.h
@@ -0,0 +1,35 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _LINUX_KASAN_ENABLED_H
+#define _LINUX_KASAN_ENABLED_H
+
+#include <linux/static_key.h>
+
+#ifdef CONFIG_KASAN_HW_TAGS
+
+DECLARE_STATIC_KEY_FALSE(kasan_flag_enabled);
+
+static __always_inline bool kasan_enabled(void)
+{
+	return static_branch_likely(&kasan_flag_enabled);
+}
+
+static inline bool kasan_hw_tags_enabled(void)
+{
+	return kasan_enabled();
+}
+
+#else /* CONFIG_KASAN_HW_TAGS */
+
+static inline bool kasan_enabled(void)
+{
+	return IS_ENABLED(CONFIG_KASAN);
+}
+
+static inline bool kasan_hw_tags_enabled(void)
+{
+	return false;
+}
+
+#endif /* CONFIG_KASAN_HW_TAGS */
+
+#endif /* LINUX_KASAN_ENABLED_H */
diff --git a/include/linux/kasan.h b/include/linux/kasan.h
index f407e937..0ab2dfa 100644
--- a/include/linux/kasan.h
+++ b/include/linux/kasan.h
@@ -3,6 +3,7 @@
 #define _LINUX_KASAN_H
 
 #include <linux/bug.h>
+#include <linux/kasan-enabled.h>
 #include <linux/kernel.h>
 #include <linux/static_key.h>
 #include <linux/types.h>
@@ -17,13 +18,15 @@
 #include <linux/linkage.h>
 #include <asm/kasan.h>
 
-/* kasan_data struct is used in KUnit tests for KASAN expected failures */
-struct kunit_kasan_expectation {
-	bool report_found;
-};
-
 #endif
 
+typedef unsigned int __bitwise kasan_vmalloc_flags_t;
+
+#define KASAN_VMALLOC_NONE		((__force kasan_vmalloc_flags_t)0x00u)
+#define KASAN_VMALLOC_INIT		((__force kasan_vmalloc_flags_t)0x01u)
+#define KASAN_VMALLOC_VM_ALLOC		((__force kasan_vmalloc_flags_t)0x02u)
+#define KASAN_VMALLOC_PROT_NORMAL	((__force kasan_vmalloc_flags_t)0x04u)
+
 #if defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)
 
 #include <linux/pgtable.h>
@@ -80,51 +83,11 @@
 
 #endif /* CONFIG_KASAN_GENERIC || CONFIG_KASAN_SW_TAGS */
 
-#ifdef CONFIG_KASAN_HW_TAGS
-
-DECLARE_STATIC_KEY_FALSE(kasan_flag_enabled);
-
-static __always_inline bool kasan_enabled(void)
-{
-	return static_branch_likely(&kasan_flag_enabled);
-}
-
 static inline bool kasan_has_integrated_init(void)
 {
-	return kasan_enabled();
+	return kasan_hw_tags_enabled();
 }
 
-void kasan_alloc_pages(struct page *page, unsigned int order, gfp_t flags);
-void kasan_free_pages(struct page *page, unsigned int order);
-
-#else /* CONFIG_KASAN_HW_TAGS */
-
-static inline bool kasan_enabled(void)
-{
-	return IS_ENABLED(CONFIG_KASAN);
-}
-
-static inline bool kasan_has_integrated_init(void)
-{
-	return false;
-}
-
-static __always_inline void kasan_alloc_pages(struct page *page,
-					      unsigned int order, gfp_t flags)
-{
-	/* Only available for integrated init. */
-	BUILD_BUG();
-}
-
-static __always_inline void kasan_free_pages(struct page *page,
-					     unsigned int order)
-{
-	/* Only available for integrated init. */
-	BUILD_BUG();
-}
-
-#endif /* CONFIG_KASAN_HW_TAGS */
-
 #ifdef CONFIG_KASAN
 
 struct kasan_cache {
@@ -370,12 +333,14 @@
 void kasan_cache_shrink(struct kmem_cache *cache);
 void kasan_cache_shutdown(struct kmem_cache *cache);
 void kasan_record_aux_stack(void *ptr);
+void kasan_record_aux_stack_noalloc(void *ptr);
 
 #else /* CONFIG_KASAN_GENERIC */
 
 static inline void kasan_cache_shrink(struct kmem_cache *cache) {}
 static inline void kasan_cache_shutdown(struct kmem_cache *cache) {}
 static inline void kasan_record_aux_stack(void *ptr) {}
+static inline void kasan_record_aux_stack_noalloc(void *ptr) {}
 
 #endif /* CONFIG_KASAN_GENERIC */
 
@@ -427,29 +392,69 @@
 
 #ifdef CONFIG_KASAN_VMALLOC
 
+#if defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)
+
+void kasan_populate_early_vm_area_shadow(void *start, unsigned long size);
 int kasan_populate_vmalloc(unsigned long addr, unsigned long size);
-void kasan_poison_vmalloc(const void *start, unsigned long size);
-void kasan_unpoison_vmalloc(const void *start, unsigned long size);
 void kasan_release_vmalloc(unsigned long start, unsigned long end,
 			   unsigned long free_region_start,
 			   unsigned long free_region_end);
 
-#else /* CONFIG_KASAN_VMALLOC */
+#else /* CONFIG_KASAN_GENERIC || CONFIG_KASAN_SW_TAGS */
 
 static inline int kasan_populate_vmalloc(unsigned long start,
 					unsigned long size)
 {
 	return 0;
 }
-
-static inline void kasan_poison_vmalloc(const void *start, unsigned long size)
-{ }
-static inline void kasan_unpoison_vmalloc(const void *start, unsigned long size)
-{ }
 static inline void kasan_release_vmalloc(unsigned long start,
 					 unsigned long end,
 					 unsigned long free_region_start,
-					 unsigned long free_region_end) {}
+					 unsigned long free_region_end) { }
+
+#endif /* CONFIG_KASAN_GENERIC || CONFIG_KASAN_SW_TAGS */
+
+void *__kasan_unpoison_vmalloc(const void *start, unsigned long size,
+			       kasan_vmalloc_flags_t flags);
+static __always_inline void *kasan_unpoison_vmalloc(const void *start,
+						unsigned long size,
+						kasan_vmalloc_flags_t flags)
+{
+	if (kasan_enabled())
+		return __kasan_unpoison_vmalloc(start, size, flags);
+	return (void *)start;
+}
+
+void __kasan_poison_vmalloc(const void *start, unsigned long size);
+static __always_inline void kasan_poison_vmalloc(const void *start,
+						 unsigned long size)
+{
+	if (kasan_enabled())
+		__kasan_poison_vmalloc(start, size);
+}
+
+#else /* CONFIG_KASAN_VMALLOC */
+
+static inline void kasan_populate_early_vm_area_shadow(void *start,
+						       unsigned long size) { }
+static inline int kasan_populate_vmalloc(unsigned long start,
+					unsigned long size)
+{
+	return 0;
+}
+static inline void kasan_release_vmalloc(unsigned long start,
+					 unsigned long end,
+					 unsigned long free_region_start,
+					 unsigned long free_region_end) { }
+
+static inline void *kasan_unpoison_vmalloc(const void *start,
+					   unsigned long size,
+					   kasan_vmalloc_flags_t flags)
+{
+	return (void *)start;
+}
+static inline void kasan_poison_vmalloc(const void *start, unsigned long size)
+{ }
 
 #endif /* CONFIG_KASAN_VMALLOC */
 
@@ -457,17 +462,17 @@
 		!defined(CONFIG_KASAN_VMALLOC)
 
 /*
- * These functions provide a special case to support backing module
- * allocations with real shadow memory. With KASAN vmalloc, the special
- * case is unnecessary, as the work is handled in the generic case.
+ * These functions allocate and free shadow memory for kernel modules.
+ * They are only required when KASAN_VMALLOC is not supported, as otherwise
+ * shadow memory is allocated by the generic vmalloc handlers.
  */
-int kasan_module_alloc(void *addr, size_t size, gfp_t gfp_mask);
-void kasan_free_shadow(const struct vm_struct *vm);
+int kasan_alloc_module_shadow(void *addr, size_t size, gfp_t gfp_mask);
+void kasan_free_module_shadow(const struct vm_struct *vm);
 
 #else /* (CONFIG_KASAN_GENERIC || CONFIG_KASAN_SW_TAGS) && !CONFIG_KASAN_VMALLOC */
 
-static inline int kasan_module_alloc(void *addr, size_t size, gfp_t gfp_mask) { return 0; }
-static inline void kasan_free_shadow(const struct vm_struct *vm) {}
+static inline int kasan_alloc_module_shadow(void *addr, size_t size, gfp_t gfp_mask) { return 0; }
+static inline void kasan_free_module_shadow(const struct vm_struct *vm) {}
 
 #endif /* (CONFIG_KASAN_GENERIC || CONFIG_KASAN_SW_TAGS) && !CONFIG_KASAN_VMALLOC */
 
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index f56cd88..3e5a0f8 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -277,7 +277,11 @@
 	return buf;
 }
 
+#ifdef __GENKSYMS__
+extern int hex_to_bin(char ch);
+#else
 extern int hex_to_bin(unsigned char ch);
+#endif
 extern int __must_check hex2bin(u8 *dst, const char *src, size_t count);
 extern char *bin2hex(char *dst, const void *src, size_t count);
 
diff --git a/include/linux/kernfs.h b/include/linux/kernfs.h
index 1093abf..867b43e 100644
--- a/include/linux/kernfs.h
+++ b/include/linux/kernfs.h
@@ -16,6 +16,7 @@
 #include <linux/atomic.h>
 #include <linux/uidgid.h>
 #include <linux/wait.h>
+#include <linux/android_kabi.h>
 
 struct file;
 struct dentry;
@@ -161,6 +162,8 @@
 	unsigned short		flags;
 	umode_t			mode;
 	struct kernfs_iattrs	*iattr;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /*
@@ -180,6 +183,11 @@
 		      const char *new_name);
 	int (*show_path)(struct seq_file *sf, struct kernfs_node *kn,
 			 struct kernfs_root *root);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 struct kernfs_root {
@@ -197,6 +205,8 @@
 	struct list_head	supers;
 
 	wait_queue_head_t	deactivate_waitq;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct kernfs_open_file {
@@ -217,6 +227,8 @@
 	bool			mmapped:1;
 	bool			released:1;
 	const struct vm_operations_struct *vm_ops;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct kernfs_ops {
@@ -273,6 +285,9 @@
 #ifdef CONFIG_DEBUG_LOCK_ALLOC
 	struct lock_class_key	lockdep_key;
 #endif
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 /*
diff --git a/include/linux/key-type.h b/include/linux/key-type.h
index 7d985a1..106f8d0 100644
--- a/include/linux/key-type.h
+++ b/include/linux/key-type.h
@@ -10,6 +10,7 @@
 
 #include <linux/key.h>
 #include <linux/errno.h>
+#include <linux/android_kabi.h>
 
 #ifdef CONFIG_KEYS
 
@@ -156,6 +157,9 @@
 	int (*asym_verify_signature)(struct kernel_pkey_params *params,
 				     const void *in, const void *in2);
 
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+
 	/* internal fields */
 	struct list_head	link;		/* link in types list */
 	struct lock_class_key	lock_class;	/* key->sem lock class */
diff --git a/include/linux/keyslot-manager.h b/include/linux/keyslot-manager.h
index a27605e..2eb44e2 100644
--- a/include/linux/keyslot-manager.h
+++ b/include/linux/keyslot-manager.h
@@ -9,6 +9,15 @@
 #include <linux/bio.h>
 #include <linux/blk-crypto.h>
 
+/* Inline crypto feature bits.  Must set at least one. */
+enum {
+	/* Support for standard software-specified keys */
+	BLK_CRYPTO_FEATURE_STANDARD_KEYS = BIT(0),
+
+	/* Support for hardware-wrapped keys */
+	BLK_CRYPTO_FEATURE_WRAPPED_KEYS = BIT(1),
+};
+
 struct blk_keyslot_manager;
 
 /**
@@ -19,6 +28,9 @@
  *			The key is provided so that e.g. dm layers can evict
  *			keys from the devices that they map over.
  *			Returns 0 on success, -errno otherwise.
+ * @derive_raw_secret:	(Optional) Derive a software secret from a
+ *			hardware-wrapped key.  Returns 0 on success, -EOPNOTSUPP
+ *			if unsupported on the hardware, or another -errno code.
  *
  * This structure should be provided by storage device drivers when they set up
  * a keyslot manager - this structure holds the function ptrs that the keyslot
@@ -31,6 +43,10 @@
 	int (*keyslot_evict)(struct blk_keyslot_manager *ksm,
 			     const struct blk_crypto_key *key,
 			     unsigned int slot);
+	int (*derive_raw_secret)(struct blk_keyslot_manager *ksm,
+				 const u8 *wrapped_key,
+				 unsigned int wrapped_key_size,
+				 u8 *secret, unsigned int secret_size);
 };
 
 struct blk_keyslot_manager {
@@ -48,6 +64,12 @@
 	unsigned int max_dun_bytes_supported;
 
 	/*
+	 * The supported features as a bitmask of BLK_CRYPTO_FEATURE_* flags.
+	 * Most drivers should set BLK_CRYPTO_FEATURE_STANDARD_KEYS here.
+	 */
+	unsigned int features;
+
+	/*
 	 * Array of size BLK_ENCRYPTION_MODE_MAX of bitmasks that represents
 	 * whether a crypto mode and data unit size are supported. The i'th
 	 * bit of crypto_mode_supported[crypto_mode] is set iff a data unit
@@ -106,6 +128,11 @@
 
 void blk_ksm_destroy(struct blk_keyslot_manager *ksm);
 
+int blk_ksm_derive_raw_secret(struct blk_keyslot_manager *ksm,
+			      const u8 *wrapped_key,
+			      unsigned int wrapped_key_size,
+			      u8 *secret, unsigned int secret_size);
+
 void blk_ksm_intersect_modes(struct blk_keyslot_manager *parent,
 			     const struct blk_keyslot_manager *child);
 
diff --git a/include/linux/kobject.h b/include/linux/kobject.h
index d38916e..8b9d976 100644
--- a/include/linux/kobject.h
+++ b/include/linux/kobject.h
@@ -27,6 +27,7 @@
 #include <linux/atomic.h>
 #include <linux/workqueue.h>
 #include <linux/uidgid.h>
+#include <linux/android_kabi.h>
 
 #define UEVENT_HELPER_PATH_LEN		256
 #define UEVENT_NUM_ENVP			64	/* number of env pointers */
@@ -77,6 +78,11 @@
 	unsigned int state_add_uevent_sent:1;
 	unsigned int state_remove_uevent_sent:1;
 	unsigned int uevent_suppress:1;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 extern __printf(2, 3)
@@ -116,7 +122,11 @@
 extern const void *kobject_namespace(struct kobject *kobj);
 extern void kobject_get_ownership(struct kobject *kobj,
 				  kuid_t *uid, kgid_t *gid);
+#ifdef __GENKSYMS__	// ANDROID KABI CRC preservation
+extern char *kobject_get_path(struct kobject *kobj, gfp_t flag);
+#else
 extern char *kobject_get_path(const struct kobject *kobj, gfp_t flag);
+#endif
 
 /**
  * kobject_has_children - Returns whether a kobject has children.
@@ -143,6 +153,11 @@
 	const struct kobj_ns_type_operations *(*child_ns_type)(struct kobject *kobj);
 	const void *(*namespace)(struct kobject *kobj);
 	void (*get_ownership)(struct kobject *kobj, kuid_t *uid, kgid_t *gid);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 struct kobj_uevent_env {
@@ -194,6 +209,11 @@
 	spinlock_t list_lock;
 	struct kobject kobj;
 	const struct kset_uevent_ops *uevent_ops;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 } __randomize_layout;
 
 extern void kset_init(struct kset *kset);
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index 7e2423f..f4be406 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -1272,7 +1272,6 @@
 
 bool kvm_is_reserved_pfn(kvm_pfn_t pfn);
 bool kvm_is_zone_device_pfn(kvm_pfn_t pfn);
-bool kvm_is_transparent_hugepage(kvm_pfn_t pfn);
 
 struct kvm_irq_ack_notifier {
 	struct hlist_node link;
diff --git a/include/linux/lsm_hook_defs.h b/include/linux/lsm_hook_defs.h
index 61590c1..42dc2cf 100644
--- a/include/linux/lsm_hook_defs.h
+++ b/include/linux/lsm_hook_defs.h
@@ -83,7 +83,8 @@
 LSM_HOOK(int, 0, move_mount, const struct path *from_path,
 	 const struct path *to_path)
 LSM_HOOK(int, 0, dentry_init_security, struct dentry *dentry,
-	 int mode, const struct qstr *name, void **ctx, u32 *ctxlen)
+	 int mode, const struct qstr *name, const char **xattr_name,
+	 void **ctx, u32 *ctxlen)
 LSM_HOOK(int, 0, dentry_create_files_as, struct dentry *dentry, int mode,
 	 struct qstr *name, const struct cred *old, struct cred *new)
 
diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h
index 5902461..68a992c 100644
--- a/include/linux/lsm_hooks.h
+++ b/include/linux/lsm_hooks.h
@@ -196,6 +196,9 @@
  *	@dentry dentry to use in calculating the context.
  *	@mode mode used to determine resource type.
  *	@name name of the last path component used to create file
+ *	@xattr_name pointer to place the pointer to security xattr name.
+ *		    Caller does not have to free the resulting pointer. Its
+ *		    a pointer to static string.
  *	@ctx pointer to place the pointer to the resulting context in.
  *	@ctxlen point to place the length of the resulting context.
  * @dentry_create_files_as:
diff --git a/include/linux/mailbox_controller.h b/include/linux/mailbox_controller.h
index 6fee33c..36d6ce6 100644
--- a/include/linux/mailbox_controller.h
+++ b/include/linux/mailbox_controller.h
@@ -83,7 +83,6 @@
 				      const struct of_phandle_args *sp);
 	/* Internal to API */
 	struct hrtimer poll_hrt;
-	spinlock_t poll_hrt_lock;
 	struct list_head node;
 };
 
diff --git a/include/linux/memblock.h b/include/linux/memblock.h
index 5df3833..d9b25e5 100644
--- a/include/linux/memblock.h
+++ b/include/linux/memblock.h
@@ -372,7 +372,7 @@
 /* Flags for memblock allocation APIs */
 #define MEMBLOCK_ALLOC_ANYWHERE	(~(phys_addr_t)0)
 #define MEMBLOCK_ALLOC_ACCESSIBLE	0
-#define MEMBLOCK_ALLOC_KASAN		1
+#define MEMBLOCK_ALLOC_NOLEAKTRACE	1
 
 /* We are using top down, so it is safe to use 0 here */
 #define MEMBLOCK_LOW_LIMIT 0
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
index 4f189b1..b7573b4 100644
--- a/include/linux/memcontrol.h
+++ b/include/linux/memcontrol.h
@@ -21,6 +21,7 @@
 #include <linux/vmstat.h>
 #include <linux/writeback.h>
 #include <linux/page-flags.h>
+#include <linux/android_vendor.h>
 
 struct mem_cgroup;
 struct obj_cgroup;
@@ -348,6 +349,15 @@
 	struct deferred_split deferred_split_queue;
 #endif
 
+#ifdef CONFIG_LRU_GEN
+	/* per-memcg mm_struct list */
+	struct lru_gen_mm_list mm_list;
+#endif
+
+	/* for dynamic low */
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_OEM_DATA_ARRAY(1, 2);
+
 	struct mem_cgroup_per_node *nodeinfo[];
 };
 
@@ -372,6 +382,9 @@
 
 static inline bool PageMemcgKmem(struct page *page);
 
+void do_traversal_all_lruvec(void);
+struct lruvec *page_to_lruvec(struct page *page, pg_data_t *pgdat);
+
 /*
  * After the initialization objcg->memcg is always pointing at
  * a valid memcg, but can be atomically swapped to the parent memcg.
@@ -442,6 +455,7 @@
  * - LRU isolation
  * - lock_page_memcg()
  * - exclusive reference
+ * - mem_cgroup_trylock_pages()
  *
  * For a kmem page a caller should hold an rcu read lock to protect memcg
  * associated with a kmem page from being released.
@@ -497,6 +511,7 @@
  * - LRU isolation
  * - lock_page_memcg()
  * - exclusive reference
+ * - mem_cgroup_trylock_pages()
  *
  * For a kmem page a caller should hold an rcu read lock to protect memcg
  * associated with a kmem page from being released.
@@ -953,6 +968,23 @@
 
 void __mod_memcg_state(struct mem_cgroup *memcg, int idx, int val);
 
+/* try to stablize page_memcg() for all the pages in a memcg */
+static inline bool mem_cgroup_trylock_pages(struct mem_cgroup *memcg)
+{
+	rcu_read_lock();
+
+	if (mem_cgroup_disabled() || !atomic_read(&memcg->moving_account))
+		return true;
+
+	rcu_read_unlock();
+	return false;
+}
+
+static inline void mem_cgroup_unlock_pages(void)
+{
+	rcu_read_unlock();
+}
+
 /* idx can be of type enum memcg_stat_item or node_stat_item */
 static inline void mod_memcg_state(struct mem_cgroup *memcg,
 				   int idx, int val)
@@ -1149,6 +1181,15 @@
 	return false;
 }
 
+static inline struct lruvec *page_to_lruvec(struct page *page, pg_data_t *pgdat)
+{
+	return NULL;
+}
+
+static inline void do_traversal_all_lruvec(void)
+{
+}
+
 static inline bool mem_cgroup_is_root(struct mem_cgroup *memcg)
 {
 	return true;
@@ -1369,6 +1410,18 @@
 {
 }
 
+static inline bool mem_cgroup_trylock_pages(struct mem_cgroup *memcg)
+{
+	/* to match page_memcg_rcu() */
+	rcu_read_lock();
+	return true;
+}
+
+static inline void mem_cgroup_unlock_pages(void)
+{
+	rcu_read_unlock();
+}
+
 static inline void mem_cgroup_handle_over_high(void)
 {
 }
diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h
index e5a867c..e348e0f 100644
--- a/include/linux/memory_hotplug.h
+++ b/include/linux/memory_hotplug.h
@@ -302,6 +302,7 @@
 extern int offline_pages(unsigned long start_pfn, unsigned long nr_pages,
 			 struct memory_group *group);
 extern int remove_memory(u64 start, u64 size);
+extern int remove_memory_subsection(u64 start, u64 size);
 extern void __remove_memory(u64 start, u64 size);
 extern int offline_and_remove_memory(u64 start, u64 size);
 
@@ -329,6 +330,7 @@
 extern void __ref free_area_init_core_hotplug(int nid);
 extern int __add_memory(int nid, u64 start, u64 size, mhp_t mhp_flags);
 extern int add_memory(int nid, u64 start, u64 size, mhp_t mhp_flags);
+extern int add_memory_subsection(int nid, u64 start, u64 size);
 extern int add_memory_resource(int nid, struct resource *resource,
 			       mhp_t mhp_flags);
 extern int add_memory_driver_managed(int nid, u64 start, u64 size,
diff --git a/include/linux/memremap.h b/include/linux/memremap.h
index a8bc588..c0e9d35 100644
--- a/include/linux/memremap.h
+++ b/include/linux/memremap.h
@@ -73,6 +73,16 @@
 	void (*page_free)(struct page *page);
 
 	/*
+	 * Transition the refcount in struct dev_pagemap to the dead state.
+	 */
+	void (*kill)(struct dev_pagemap *pgmap);
+
+	/*
+	 * Wait for refcount in struct dev_pagemap to be idle and reap it.
+	 */
+	void (*cleanup)(struct dev_pagemap *pgmap);
+
+	/*
 	 * Used for private (un-addressable) device memory only.  Must migrate
 	 * the page back to a CPU accessible page.
 	 */
@@ -85,7 +95,8 @@
  * struct dev_pagemap - metadata for ZONE_DEVICE mappings
  * @altmap: pre-allocated/reserved memory for vmemmap allocations
  * @ref: reference count that pins the devm_memremap_pages() mapping
- * @done: completion for @ref
+ * @internal_ref: internal reference if @ref is not provided by the caller
+ * @done: completion for @internal_ref
  * @type: memory type: see MEMORY_* in memory_hotplug.h
  * @flags: PGMAP_* flags to specify defailed behavior
  * @ops: method table
@@ -98,7 +109,8 @@
  */
 struct dev_pagemap {
 	struct vmem_altmap altmap;
-	struct percpu_ref ref;
+	struct percpu_ref *ref;
+	struct percpu_ref internal_ref;
 	struct completion done;
 	enum memory_type type;
 	unsigned int flags;
@@ -179,7 +191,7 @@
 static inline void put_dev_pagemap(struct dev_pagemap *pgmap)
 {
 	if (pgmap)
-		percpu_ref_put(&pgmap->ref);
+		percpu_ref_put(pgmap->ref);
 }
 
 #endif /* _LINUX_MEMREMAP_H_ */
diff --git a/include/linux/mm.h b/include/linux/mm.h
index a27a6b5..f1683fa 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -32,6 +32,7 @@
 #include <linux/sched.h>
 #include <linux/pgtable.h>
 #include <linux/kasan.h>
+#include <linux/android_kabi.h>
 
 struct mempolicy;
 struct anon_vma;
@@ -252,6 +253,7 @@
 
 struct vm_area_struct *vm_area_alloc(struct mm_struct *);
 struct vm_area_struct *vm_area_dup(struct vm_area_struct *);
+void vm_area_free_no_check(struct vm_area_struct *);
 void vm_area_free(struct vm_area_struct *);
 
 #ifndef CONFIG_MMU
@@ -446,6 +448,7 @@
  * @FAULT_FLAG_REMOTE: The fault is not for current task/mm.
  * @FAULT_FLAG_INSTRUCTION: The fault was during an instruction fetch.
  * @FAULT_FLAG_INTERRUPTIBLE: The fault can be interrupted by non-fatal signals.
+ * @FAULT_FLAG_SPECULATIVE: The fault is handled without holding the mmap lock.
  *
  * About @FAULT_FLAG_ALLOW_RETRY and @FAULT_FLAG_TRIED: we can specify
  * whether we would allow page faults to retry by specifying these two
@@ -477,6 +480,7 @@
 	FAULT_FLAG_REMOTE =		1 << 7,
 	FAULT_FLAG_INSTRUCTION =	1 << 8,
 	FAULT_FLAG_INTERRUPTIBLE =	1 << 9,
+	FAULT_FLAG_SPECULATIVE =	1 << 10,
 };
 
 /*
@@ -516,7 +520,8 @@
 	{ FAULT_FLAG_USER,		"USER" }, \
 	{ FAULT_FLAG_REMOTE,		"REMOTE" }, \
 	{ FAULT_FLAG_INSTRUCTION,	"INSTRUCTION" }, \
-	{ FAULT_FLAG_INTERRUPTIBLE,	"INTERRUPTIBLE" }
+	{ FAULT_FLAG_INTERRUPTIBLE,	"INTERRUPTIBLE" }, \
+	{ FAULT_FLAG_SPECULATIVE,	"SPECULATIVE" }
 
 /*
  * vm_fault is filled by the pagefault handler and passed to the vma's
@@ -537,6 +542,10 @@
 	};
 	enum fault_flag flags;		/* FAULT_FLAG_xxx flags
 					 * XXX: should really be 'const' */
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	unsigned long seq;
+	pmd_t orig_pmd;
+#endif
 	pmd_t *pmd;			/* Pointer to pmd entry matching
 					 * the 'address' */
 	pud_t *pud;			/* Pointer to pud entry matching
@@ -544,9 +553,11 @@
 					 */
 	union {
 		pte_t orig_pte;		/* Value of PTE at the time of fault */
+#ifndef CONFIG_SPECULATIVE_PAGE_FAULT
 		pmd_t orig_pmd;		/* Value of PMD at the time of fault,
 					 * used by PMD fault only.
 					 */
+#endif
 	};
 
 	struct page *cow_page;		/* Page handler may use for COW fault */
@@ -654,8 +665,29 @@
 	 */
 	struct page *(*find_special_page)(struct vm_area_struct *vma,
 					  unsigned long addr);
+	/*
+	 * speculative indicates that the vm_operations support
+	 * speculative page faults. This allows ->fault and ->map_pages
+	 * to be called with FAULT_FLAG_SPECULATIVE set; such calls will
+	 * run within an rcu read locked section and with mmap lock not held.
+	 */
+	bool speculative;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
+static inline void INIT_VMA(struct vm_area_struct *vma)
+{
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	/* Start from 0 to use atomic_inc_unless_negative() in get_vma() */
+	atomic_set(&vma->file_ref_count, 0);
+#endif
+	INIT_LIST_HEAD(&vma->anon_vma_chain);
+}
+
 static inline void vma_init(struct vm_area_struct *vma, struct mm_struct *mm)
 {
 	static const struct vm_operations_struct dummy_vm_ops = {};
@@ -663,7 +695,7 @@
 	memset(vma, 0, sizeof(*vma));
 	vma->vm_mm = mm;
 	vma->vm_ops = &dummy_vm_ops;
-	INIT_LIST_HEAD(&vma->anon_vma_chain);
+	INIT_VMA(vma);
 }
 
 static inline void vma_set_anonymous(struct vm_area_struct *vma)
@@ -706,6 +738,20 @@
 	return vma->vm_flags & VM_ACCESS_FLAGS;
 }
 
+static inline bool vma_can_speculate(struct vm_area_struct *vma,
+		unsigned int flags)
+{
+	if (vma_is_anonymous(vma))
+		return true;
+	if (!vma->vm_ops->speculative)
+		return false;
+	if (!(flags & FAULT_FLAG_WRITE))
+		return true;
+	if (!(vma->vm_flags & VM_SHARED))
+		return true;
+	return false;
+}
+
 #ifdef CONFIG_SHMEM
 /*
  * The vma_is_shmem is not inline because it is used only by slow
@@ -1093,6 +1139,8 @@
 #define ZONES_PGOFF		(NODES_PGOFF - ZONES_WIDTH)
 #define LAST_CPUPID_PGOFF	(ZONES_PGOFF - LAST_CPUPID_WIDTH)
 #define KASAN_TAG_PGOFF		(LAST_CPUPID_PGOFF - KASAN_TAG_WIDTH)
+#define LRU_GEN_PGOFF		(KASAN_TAG_PGOFF - LRU_GEN_WIDTH)
+#define LRU_REFS_PGOFF		(LRU_GEN_PGOFF - LRU_REFS_WIDTH)
 
 /*
  * Define the bit shifts to access each section.  For non-existent
@@ -1570,8 +1618,13 @@
 #ifdef CONFIG_MIGRATION
 static inline bool is_pinnable_page(struct page *page)
 {
-	return !(is_zone_movable_page(page) || is_migrate_cma_page(page)) ||
-		is_zero_pfn(page_to_pfn(page));
+#ifdef CONFIG_CMA
+	int mt = get_pageblock_migratetype(page);
+
+	if (mt == MIGRATE_CMA || mt == MIGRATE_ISOLATE)
+		return false;
+#endif
+	return !is_zone_movable_page(page) || is_zero_pfn(page_to_pfn(page));
 }
 #else
 static inline bool is_pinnable_page(struct page *page)
@@ -1773,9 +1826,15 @@
 int invalidate_inode_page(struct page *page);
 
 #ifdef CONFIG_MMU
-extern vm_fault_t handle_mm_fault(struct vm_area_struct *vma,
-				  unsigned long address, unsigned int flags,
-				  struct pt_regs *regs);
+extern vm_fault_t do_handle_mm_fault(struct vm_area_struct *vma,
+		unsigned long address, unsigned int flags,
+		unsigned long seq, struct pt_regs *regs);
+static inline vm_fault_t handle_mm_fault(struct vm_area_struct *vma,
+		unsigned long address, unsigned int flags,
+		struct pt_regs *regs)
+{
+	return do_handle_mm_fault(vma, address, flags, 0, regs);
+}
 extern int fixup_user_fault(struct mm_struct *mm,
 			    unsigned long address, unsigned int fault_flags,
 			    bool *unlocked);
@@ -2482,6 +2541,7 @@
 		unsigned long, unsigned long, enum meminit_context,
 		struct vmem_altmap *, int migratetype);
 extern void setup_per_zone_wmarks(void);
+extern void calculate_min_free_kbytes(void);
 extern int __meminit init_per_zone_wmark_min(void);
 extern void mem_init(void);
 extern void __init mmap_init(void);
@@ -2555,7 +2615,7 @@
 extern struct vm_area_struct *vma_merge(struct mm_struct *,
 	struct vm_area_struct *prev, unsigned long addr, unsigned long end,
 	unsigned long vm_flags, struct anon_vma *, struct file *, pgoff_t,
-	struct mempolicy *, struct vm_userfaultfd_ctx);
+	struct mempolicy *, struct vm_userfaultfd_ctx, struct anon_vma_name *);
 extern struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *);
 extern int __split_vma(struct mm_struct *, struct vm_area_struct *,
 	unsigned long addr, int new_below);
@@ -2684,11 +2744,20 @@
   #define expand_upwards(vma, address) (0)
 #endif
 
+extern struct vm_area_struct *find_vma_from_tree(struct mm_struct *mm,
+						 unsigned long addr);
 /* Look up the first VMA which satisfies  addr < vm_end,  NULL if none. */
-extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr);
+extern struct vm_area_struct * __find_vma(struct mm_struct * mm, unsigned long addr);
 extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr,
 					     struct vm_area_struct **pprev);
 
+static inline
+struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr)
+{
+	mmap_assert_locked(mm);
+	return __find_vma(mm, addr);
+}
+
 /**
  * find_vma_intersection() - Look up the first VMA which intersects the interval
  * @mm: The process address space.
@@ -3265,6 +3334,7 @@
 #endif
 
 extern int sysctl_nr_trim_pages;
+extern int reclaim_shmem_address_space(struct address_space *mapping);
 
 #ifdef CONFIG_PRINTK
 void mem_dump_obj(void *object);
@@ -3304,5 +3374,56 @@
 	return 0;
 }
 
+#ifdef CONFIG_ANON_VMA_NAME
+int madvise_set_anon_name(struct mm_struct *mm, unsigned long start,
+			  unsigned long len_in,
+			  struct anon_vma_name *anon_name);
+#else
+static inline int
+madvise_set_anon_name(struct mm_struct *mm, unsigned long start,
+		      unsigned long len_in, struct anon_vma_name *anon_name) {
+	return 0;
+}
+#endif
+
+#ifdef CONFIG_MMU
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+
+bool __pte_map_lock(struct vm_fault *vmf);
+
+static inline bool pte_map_lock(struct vm_fault *vmf)
+{
+	VM_BUG_ON(vmf->pte);
+	return __pte_map_lock(vmf);
+}
+
+static inline bool pte_spinlock(struct vm_fault *vmf)
+{
+	VM_BUG_ON(!vmf->pte);
+	return __pte_map_lock(vmf);
+}
+
+struct vm_area_struct *get_vma(struct mm_struct *mm, unsigned long addr);
+void put_vma(struct vm_area_struct *vma);
+
+#else	/* !CONFIG_SPECULATIVE_PAGE_FAULT */
+
+#define pte_map_lock(___vmf)						\
+({									\
+	___vmf->pte = pte_offset_map_lock(___vmf->vma->vm_mm, ___vmf->pmd,\
+				       ___vmf->address, &___vmf->ptl);	\
+	true;								\
+})
+
+#define pte_spinlock(___vmf)						\
+({									\
+	___vmf->ptl = pte_lockptr(___vmf->vma->vm_mm, ___vmf->pmd);	\
+	spin_lock(___vmf->ptl);						\
+	true;								\
+})
+
+#endif	/* CONFIG_SPECULATIVE_PAGE_FAULT */
+#endif	/* CONFIG_MMU */
+
 #endif /* __KERNEL__ */
 #endif /* _LINUX_MM_H */
diff --git a/include/linux/mm_inline.h b/include/linux/mm_inline.h
index 355ea1e..29a16e3 100644
--- a/include/linux/mm_inline.h
+++ b/include/linux/mm_inline.h
@@ -4,6 +4,11 @@
 
 #include <linux/huge_mm.h>
 #include <linux/swap.h>
+#include <linux/string.h>
+#ifndef __GENKSYMS__
+#define PROTECT_TRACE_INCLUDE_PATH
+#include <trace/hooks/mm.h>
+#endif
 
 /**
  * page_is_file_lru - should the page be on a file LRU or anon LRU?
@@ -24,15 +29,25 @@
 	return !PageSwapBacked(page);
 }
 
-static __always_inline void update_lru_size(struct lruvec *lruvec,
+static __always_inline void __update_lru_size(struct lruvec *lruvec,
 				enum lru_list lru, enum zone_type zid,
-				int nr_pages)
+				long nr_pages)
 {
 	struct pglist_data *pgdat = lruvec_pgdat(lruvec);
 
+	lockdep_assert_held(&lruvec->lru_lock);
+	WARN_ON_ONCE(nr_pages != (int)nr_pages);
+
 	__mod_lruvec_state(lruvec, NR_LRU_BASE + lru, nr_pages);
 	__mod_zone_page_state(&pgdat->node_zones[zid],
 				NR_ZONE_LRU_BASE + lru, nr_pages);
+}
+
+static __always_inline void update_lru_size(struct lruvec *lruvec,
+				enum lru_list lru, enum zone_type zid,
+				long nr_pages)
+{
+	__update_lru_size(lruvec, lru, zid, nr_pages);
 #ifdef CONFIG_MEMCG
 	mem_cgroup_update_lru_size(lruvec, lru, zid, nr_pages);
 #endif
@@ -79,11 +94,225 @@
 	return lru;
 }
 
+#ifdef CONFIG_LRU_GEN
+
+#ifdef CONFIG_LRU_GEN_ENABLED
+static inline bool lru_gen_enabled(void)
+{
+	DECLARE_STATIC_KEY_TRUE(lru_gen_caps[NR_LRU_GEN_CAPS]);
+
+	return static_branch_likely(&lru_gen_caps[LRU_GEN_CORE]);
+}
+#else
+static inline bool lru_gen_enabled(void)
+{
+	DECLARE_STATIC_KEY_FALSE(lru_gen_caps[NR_LRU_GEN_CAPS]);
+
+	return static_branch_unlikely(&lru_gen_caps[LRU_GEN_CORE]);
+}
+#endif
+
+static inline bool lru_gen_in_fault(void)
+{
+	return current->in_lru_fault;
+}
+
+static inline int lru_gen_from_seq(unsigned long seq)
+{
+	return seq % MAX_NR_GENS;
+}
+
+static inline int lru_hist_from_seq(unsigned long seq)
+{
+	return seq % NR_HIST_GENS;
+}
+
+static inline int lru_tier_from_refs(int refs)
+{
+	VM_WARN_ON_ONCE(refs > BIT(LRU_REFS_WIDTH));
+
+	/* see the comment in page_lru_refs() */
+	return order_base_2(refs + 1);
+}
+
+static inline int page_lru_refs(struct page *page)
+{
+	unsigned long flags = READ_ONCE(page->flags);
+	bool workingset = flags & BIT(PG_workingset);
+
+	/*
+	 * Return the number of accesses beyond PG_referenced, i.e., N-1 if the
+	 * total number of accesses is N>1, since N=0,1 both map to the first
+	 * tier. lru_tier_from_refs() will account for this off-by-one. Also see
+	 * the comment on MAX_NR_TIERS.
+	 */
+	return ((flags & LRU_REFS_MASK) >> LRU_REFS_PGOFF) + workingset;
+}
+
+static inline int page_lru_gen(struct page *page)
+{
+	unsigned long flags = READ_ONCE(page->flags);
+
+	return ((flags & LRU_GEN_MASK) >> LRU_GEN_PGOFF) - 1;
+}
+
+static inline bool lru_gen_is_active(struct lruvec *lruvec, int gen)
+{
+	unsigned long max_seq = lruvec->lrugen.max_seq;
+
+	VM_WARN_ON_ONCE(gen >= MAX_NR_GENS);
+
+	/* see the comment on MIN_NR_GENS */
+	return gen == lru_gen_from_seq(max_seq) || gen == lru_gen_from_seq(max_seq - 1);
+}
+
+static inline void lru_gen_update_size(struct lruvec *lruvec, struct page *page,
+				       int old_gen, int new_gen)
+{
+	int type = page_is_file_lru(page);
+	int zone = page_zonenum(page);
+	int delta = thp_nr_pages(page);
+	enum lru_list lru = type * LRU_INACTIVE_FILE;
+	struct lru_gen_struct *lrugen = &lruvec->lrugen;
+
+	VM_WARN_ON_ONCE(old_gen != -1 && old_gen >= MAX_NR_GENS);
+	VM_WARN_ON_ONCE(new_gen != -1 && new_gen >= MAX_NR_GENS);
+	VM_WARN_ON_ONCE(old_gen == -1 && new_gen == -1);
+
+	if (old_gen >= 0)
+		WRITE_ONCE(lrugen->nr_pages[old_gen][type][zone],
+			   lrugen->nr_pages[old_gen][type][zone] - delta);
+	if (new_gen >= 0)
+		WRITE_ONCE(lrugen->nr_pages[new_gen][type][zone],
+			   lrugen->nr_pages[new_gen][type][zone] + delta);
+
+	/* addition */
+	if (old_gen < 0) {
+		if (lru_gen_is_active(lruvec, new_gen))
+			lru += LRU_ACTIVE;
+		__update_lru_size(lruvec, lru, zone, delta);
+		return;
+	}
+
+	/* deletion */
+	if (new_gen < 0) {
+		if (lru_gen_is_active(lruvec, old_gen))
+			lru += LRU_ACTIVE;
+		__update_lru_size(lruvec, lru, zone, -delta);
+		return;
+	}
+
+	/* promotion */
+	if (!lru_gen_is_active(lruvec, old_gen) && lru_gen_is_active(lruvec, new_gen)) {
+		__update_lru_size(lruvec, lru, zone, -delta);
+		__update_lru_size(lruvec, lru + LRU_ACTIVE, zone, delta);
+	}
+
+	/* demotion requires isolation, e.g., lru_deactivate_fn() */
+	VM_WARN_ON_ONCE(lru_gen_is_active(lruvec, old_gen) && !lru_gen_is_active(lruvec, new_gen));
+}
+
+static inline bool lru_gen_add_page(struct lruvec *lruvec, struct page *page, bool reclaiming)
+{
+	unsigned long seq;
+	unsigned long flags;
+	int gen = page_lru_gen(page);
+	int type = page_is_file_lru(page);
+	int zone = page_zonenum(page);
+	struct lru_gen_struct *lrugen = &lruvec->lrugen;
+
+	VM_WARN_ON_ONCE_PAGE(gen != -1, page);
+
+	if (PageUnevictable(page) || !lrugen->enabled)
+		return false;
+	/*
+	 * There are three common cases for this page:
+	 * 1. If it's hot, e.g., freshly faulted in or previously hot and
+	 *    migrated, add it to the youngest generation.
+	 * 2. If it's cold but can't be evicted immediately, i.e., an anon page
+	 *    not in swapcache or a dirty page pending writeback, add it to the
+	 *    second oldest generation.
+	 * 3. Everything else (clean, cold) is added to the oldest generation.
+	 */
+	if (PageActive(page))
+		seq = lrugen->max_seq;
+	else if ((type == LRU_GEN_ANON && !PageSwapCache(page)) ||
+		 (PageReclaim(page) &&
+		  (PageDirty(page) || PageWriteback(page))))
+		seq = lrugen->min_seq[type] + 1;
+	else
+		seq = lrugen->min_seq[type];
+
+	gen = lru_gen_from_seq(seq);
+	flags = (gen + 1UL) << LRU_GEN_PGOFF;
+	/* see the comment on MIN_NR_GENS about PG_active */
+	set_mask_bits(&page->flags, LRU_GEN_MASK | BIT(PG_active), flags);
+
+	lru_gen_update_size(lruvec, page, -1, gen);
+	/* for rotate_reclaimable_page() */
+	if (reclaiming)
+		list_add_tail(&page->lru, &lrugen->lists[gen][type][zone]);
+	else
+		list_add(&page->lru, &lrugen->lists[gen][type][zone]);
+
+	return true;
+}
+
+static inline bool lru_gen_del_page(struct lruvec *lruvec, struct page *page, bool reclaiming)
+{
+	unsigned long flags;
+	int gen = page_lru_gen(page);
+
+	if (gen < 0)
+		return false;
+
+	VM_WARN_ON_ONCE_PAGE(PageActive(page), page);
+	VM_WARN_ON_ONCE_PAGE(PageUnevictable(page), page);
+
+	/* for migrate_page_states() */
+	flags = !reclaiming && lru_gen_is_active(lruvec, gen) ? BIT(PG_active) : 0;
+	flags = set_mask_bits(&page->flags, LRU_GEN_MASK, flags);
+	gen = ((flags & LRU_GEN_MASK) >> LRU_GEN_PGOFF) - 1;
+
+	lru_gen_update_size(lruvec, page, gen, -1);
+	list_del(&page->lru);
+
+	return true;
+}
+
+#else /* !CONFIG_LRU_GEN */
+
+static inline bool lru_gen_enabled(void)
+{
+	return false;
+}
+
+static inline bool lru_gen_in_fault(void)
+{
+	return false;
+}
+
+static inline bool lru_gen_add_page(struct lruvec *lruvec, struct page *page, bool reclaiming)
+{
+	return false;
+}
+
+static inline bool lru_gen_del_page(struct lruvec *lruvec, struct page *page, bool reclaiming)
+{
+	return false;
+}
+
+#endif /* CONFIG_LRU_GEN */
+
 static __always_inline void add_page_to_lru_list(struct page *page,
 				struct lruvec *lruvec)
 {
 	enum lru_list lru = page_lru(page);
 
+	if (lru_gen_add_page(lruvec, page, false))
+		return;
+
+	trace_android_vh_add_page_to_lrulist(page, false, lru);
 	update_lru_size(lruvec, lru, page_zonenum(page), thp_nr_pages(page));
 	list_add(&page->lru, &lruvec->lists[lru]);
 }
@@ -93,6 +322,10 @@
 {
 	enum lru_list lru = page_lru(page);
 
+	if (lru_gen_add_page(lruvec, page, true))
+		return;
+
+	trace_android_vh_add_page_to_lrulist(page, false, page_lru(page));
 	update_lru_size(lruvec, lru, page_zonenum(page), thp_nr_pages(page));
 	list_add_tail(&page->lru, &lruvec->lists[lru]);
 }
@@ -100,8 +333,101 @@
 static __always_inline void del_page_from_lru_list(struct page *page,
 				struct lruvec *lruvec)
 {
+	if (lru_gen_del_page(lruvec, page, false))
+		return;
+
+	trace_android_vh_del_page_from_lrulist(page, false, page_lru(page));
 	list_del(&page->lru);
 	update_lru_size(lruvec, page_lru(page), page_zonenum(page),
 			-thp_nr_pages(page));
 }
+
+#ifdef CONFIG_ANON_VMA_NAME
+/*
+ * mmap_lock should be read-locked when calling anon_vma_name(). Caller should
+ * either keep holding the lock while using the returned pointer or it should
+ * raise anon_vma_name refcount before releasing the lock.
+ */
+extern struct anon_vma_name *anon_vma_name(struct vm_area_struct *vma);
+extern struct anon_vma_name *anon_vma_name_alloc(const char *name);
+extern void anon_vma_name_free(struct kref *kref);
+
+/* mmap_lock should be read-locked */
+static inline void anon_vma_name_get(struct anon_vma_name *anon_name)
+{
+	if (anon_name)
+		kref_get(&anon_name->kref);
+}
+
+static inline void anon_vma_name_put(struct anon_vma_name *anon_name)
+{
+	if (anon_name)
+		kref_put(&anon_name->kref, anon_vma_name_free);
+}
+
+static inline
+struct anon_vma_name *anon_vma_name_reuse(struct anon_vma_name *anon_name)
+{
+	/* Prevent anon_name refcount saturation early on */
+	if (kref_read(&anon_name->kref) < REFCOUNT_MAX) {
+		anon_vma_name_get(anon_name);
+		return anon_name;
+
+	}
+	return anon_vma_name_alloc(anon_name->name);
+}
+
+static inline void dup_anon_vma_name(struct vm_area_struct *orig_vma,
+				     struct vm_area_struct *new_vma)
+{
+	struct anon_vma_name *anon_name = anon_vma_name(orig_vma);
+
+	if (anon_name)
+		new_vma->anon_name = anon_vma_name_reuse(anon_name);
+}
+
+static inline void free_anon_vma_name(struct vm_area_struct *vma)
+{
+	/*
+	 * Not using anon_vma_name because it generates a warning if mmap_lock
+	 * is not held, which might be the case here.
+	 */
+	if (!vma->vm_file)
+		anon_vma_name_put(vma->anon_name);
+}
+
+static inline bool anon_vma_name_eq(struct anon_vma_name *anon_name1,
+				    struct anon_vma_name *anon_name2)
+{
+	if (anon_name1 == anon_name2)
+		return true;
+
+	return anon_name1 && anon_name2 &&
+		!strcmp(anon_name1->name, anon_name2->name);
+}
+#else /* CONFIG_ANON_VMA_NAME */
+static inline struct anon_vma_name *anon_vma_name(struct vm_area_struct *vma)
+{
+	return NULL;
+}
+
+static inline struct anon_vma_name *anon_vma_name_alloc(const char *name)
+{
+	return NULL;
+}
+
+static inline void anon_vma_name_get(struct anon_vma_name *anon_name) {}
+static inline void anon_vma_name_put(struct anon_vma_name *anon_name) {}
+static inline void dup_anon_vma_name(struct vm_area_struct *orig_vma,
+				     struct vm_area_struct *new_vma) {}
+static inline void free_anon_vma_name(struct vm_area_struct *vma) {}
+
+static inline bool anon_vma_name_eq(struct anon_vma_name *anon_name1,
+				    struct anon_vma_name *anon_name2)
+{
+	return true;
+}
+
+#endif  /* CONFIG_ANON_VMA_NAME */
+
 #endif
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index 7f8ee09..90bd503 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -3,8 +3,10 @@
 #define _LINUX_MM_TYPES_H
 
 #include <linux/mm_types_task.h>
+#include <linux/sched.h>
 
 #include <linux/auxvec.h>
+#include <linux/kref.h>
 #include <linux/list.h>
 #include <linux/spinlock.h>
 #include <linux/rbtree.h>
@@ -15,6 +17,9 @@
 #include <linux/page-flags-layout.h>
 #include <linux/workqueue.h>
 #include <linux/seqlock.h>
+#include <linux/nodemask.h>
+#include <linux/mmdebug.h>
+#include <linux/android_kabi.h>
 
 #include <asm/mmu.h>
 
@@ -84,6 +89,7 @@
 			 * by the page owner.
 			 */
 			struct list_head lru;
+
 			/* See page-flags.h for PAGE_MAPPING_FLAGS */
 			struct address_space *mapping;
 			pgoff_t index;		/* Our offset within mapping. */
@@ -310,21 +316,38 @@
 struct vm_userfaultfd_ctx {};
 #endif /* CONFIG_USERFAULTFD */
 
+struct anon_vma_name {
+	struct kref kref;
+	/* The name needs to be at the end because it is dynamically sized. */
+	char name[];
+};
+
 /*
  * This struct describes a virtual memory area. There is one of these
  * per VM-area/task. A VM area is any part of the process virtual memory
  * space that has a special rule for the page-fault handlers (ie a shared
  * library, the executable area etc).
+ *
+ * Note that speculative page faults make an on-stack copy of the VMA,
+ * so the structure size matters.
+ * (TODO - it would be preferable to copy only the required vma attributes
+ *  rather than the entire vma).
  */
 struct vm_area_struct {
 	/* The first cache line has the info for VMA tree walking. */
 
-	unsigned long vm_start;		/* Our start address within vm_mm. */
-	unsigned long vm_end;		/* The first byte after our end address
-					   within vm_mm. */
+	union {
+		struct {
+			/* VMA covers [vm_start; vm_end) addresses within mm */
+			unsigned long vm_start, vm_end;
 
-	/* linked list of VM areas per task, sorted by address */
-	struct vm_area_struct *vm_next, *vm_prev;
+			/* linked list of VMAs per task, sorted by address */
+			struct vm_area_struct *vm_next, *vm_prev;
+		};
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+		struct rcu_head vm_rcu;	/* Used for deferred freeing. */
+#endif
+	};
 
 	struct rb_node vm_rb;
 
@@ -350,11 +373,22 @@
 	/*
 	 * For areas with an address space and backing store,
 	 * linkage into the address_space->i_mmap interval tree.
+	 *
+	 * For private anonymous mappings, a pointer to a null terminated string
+	 * containing the name given to the vma, or NULL if unnamed.
 	 */
-	struct {
-		struct rb_node rb;
-		unsigned long rb_subtree_last;
-	} shared;
+
+	union {
+		struct {
+			struct rb_node rb;
+			unsigned long rb_subtree_last;
+		} shared;
+		/*
+		 * Serialized by mmap_sem. Never use directly because it is
+		 * valid only when vm_file is NULL. Use anon_vma_name instead.
+		 */
+		struct anon_vma_name *anon_name;
+	};
 
 	/*
 	 * A file's MAP_PRIVATE vma can be in both i_mmap tree and anon_vma
@@ -385,6 +419,19 @@
 	struct mempolicy *vm_policy;	/* NUMA policy for the VMA */
 #endif
 	struct vm_userfaultfd_ctx vm_userfaultfd_ctx;
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	/*
+	 * The name does not reflect the usage and is not renamed to keep
+	 * the ABI intact.
+	 * This is used to refcount VMA in get_vma/put_vma.
+	 */
+	atomic_t file_ref_count;
+#endif
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 } __randomize_layout;
 
 struct core_thread {
@@ -399,6 +446,7 @@
 };
 
 struct kioctx_table;
+struct percpu_rw_semaphore;
 struct mm_struct {
 	struct {
 		struct vm_area_struct *mmap;		/* list of VMAs */
@@ -471,6 +519,10 @@
 		 * cacheline.
 		 */
 		struct rw_semaphore mmap_lock;
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+		unsigned long mmap_seq;
+#endif
+
 
 		struct list_head mmlist; /* List of maybe swapped mm's.	These
 					  * are globally strung together off
@@ -543,7 +595,10 @@
 		struct file __rcu *exe_file;
 #ifdef CONFIG_MMU_NOTIFIER
 		struct mmu_notifier_subscriptions *notifier_subscriptions;
-#endif
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+		struct percpu_rw_semaphore *mmu_notifier_lock;
+#endif	/* CONFIG_SPECULATIVE_PAGE_FAULT */
+#endif	/* CONFIG_MMU_NOTIFIER */
 #if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !USE_SPLIT_PMD_PTLOCKS
 		pgtable_t pmd_huge_pte; /* protected by page_table_lock */
 #endif
@@ -580,6 +635,24 @@
 #ifdef CONFIG_IOMMU_SUPPORT
 		u32 pasid;
 #endif
+#ifdef CONFIG_LRU_GEN
+		struct {
+			/* this mm_struct is on lru_gen_mm_list */
+			struct list_head list;
+#ifdef CONFIG_MEMCG
+			/* points to the memcg of "owner" above */
+			struct mem_cgroup *memcg;
+#endif
+			/*
+			 * Set when switching to this mm_struct, as a hint of
+			 * whether it has been used since the last time per-node
+			 * page table walkers cleared the corresponding bits.
+			 */
+			nodemask_t nodes;
+		} lru_gen;
+#endif /* CONFIG_LRU_GEN */
+
+		ANDROID_KABI_RESERVE(1);
 	} __randomize_layout;
 
 	/*
@@ -606,6 +679,66 @@
 	return (struct cpumask *)&mm->cpu_bitmap;
 }
 
+#ifdef CONFIG_LRU_GEN
+
+struct lru_gen_mm_list {
+	/* mm_struct list for page table walkers */
+	struct list_head fifo;
+	/* protects the list above */
+	spinlock_t lock;
+};
+
+void lru_gen_add_mm(struct mm_struct *mm);
+void lru_gen_del_mm(struct mm_struct *mm);
+#ifdef CONFIG_MEMCG
+void lru_gen_migrate_mm(struct mm_struct *mm);
+#endif
+
+static inline void lru_gen_init_mm(struct mm_struct *mm)
+{
+	INIT_LIST_HEAD(&mm->lru_gen.list);
+	nodes_clear(mm->lru_gen.nodes);
+#ifdef CONFIG_MEMCG
+	mm->lru_gen.memcg = NULL;
+#endif
+}
+
+static inline void lru_gen_use_mm(struct mm_struct *mm)
+{
+	/*
+	 * When the bitmap is set, page reclaim knows this mm_struct has been
+	 * used since the last time it cleared the bitmap. So it might be worth
+	 * walking the page tables of this mm_struct to clear the accessed bit.
+	 */
+	nodes_setall(mm->lru_gen.nodes);
+}
+
+#else /* !CONFIG_LRU_GEN */
+
+static inline void lru_gen_add_mm(struct mm_struct *mm)
+{
+}
+
+static inline void lru_gen_del_mm(struct mm_struct *mm)
+{
+}
+
+#ifdef CONFIG_MEMCG
+static inline void lru_gen_migrate_mm(struct mm_struct *mm)
+{
+}
+#endif
+
+static inline void lru_gen_init_mm(struct mm_struct *mm)
+{
+}
+
+static inline void lru_gen_use_mm(struct mm_struct *mm)
+{
+}
+
+#endif /* CONFIG_LRU_GEN */
+
 struct mmu_gather;
 extern void tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm);
 extern void tlb_gather_mmu_fullmm(struct mmu_gather *tlb, struct mm_struct *mm);
diff --git a/include/linux/mmap_lock.h b/include/linux/mmap_lock.h
index 96e113e..747805c 100644
--- a/include/linux/mmap_lock.h
+++ b/include/linux/mmap_lock.h
@@ -7,9 +7,18 @@
 #include <linux/rwsem.h>
 #include <linux/tracepoint-defs.h>
 #include <linux/types.h>
+#include <linux/vm_event.h>
 
-#define MMAP_LOCK_INITIALIZER(name) \
-	.mmap_lock = __RWSEM_INITIALIZER((name).mmap_lock),
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+#define MMAP_LOCK_SEQ_INITIALIZER(name) \
+	.mmap_seq = 0,
+#else
+#define MMAP_LOCK_SEQ_INITIALIZER(name)
+#endif
+
+#define MMAP_LOCK_INITIALIZER(name)				\
+	.mmap_lock = __RWSEM_INITIALIZER((name).mmap_lock),	\
+	MMAP_LOCK_SEQ_INITIALIZER(name)
 
 DECLARE_TRACEPOINT(mmap_lock_start_locking);
 DECLARE_TRACEPOINT(mmap_lock_acquire_returned);
@@ -63,13 +72,66 @@
 static inline void mmap_init_lock(struct mm_struct *mm)
 {
 	init_rwsem(&mm->mmap_lock);
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	mm->mmap_seq = 0;
+#endif
 }
 
+static inline void __mmap_seq_write_lock(struct mm_struct *mm)
+{
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	VM_BUG_ON_MM(mm->mmap_seq & 1, mm);
+	mm->mmap_seq++;
+	smp_wmb();
+#endif
+}
+
+static inline void __mmap_seq_write_unlock(struct mm_struct *mm)
+{
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	smp_wmb();
+	mm->mmap_seq++;
+	VM_BUG_ON_MM(mm->mmap_seq & 1, mm);
+#endif
+}
+
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+static inline unsigned long mmap_seq_read_start(struct mm_struct *mm)
+{
+	unsigned long seq;
+
+	seq = READ_ONCE(mm->mmap_seq);
+	smp_rmb();
+	return seq;
+}
+
+static inline bool __mmap_seq_read_check(struct mm_struct *mm,
+					 unsigned long seq)
+{
+	smp_rmb();
+	return seq == READ_ONCE(mm->mmap_seq);
+}
+
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT_STATS
+static inline bool mmap_seq_read_check(struct mm_struct *mm, unsigned long seq,
+	enum vm_event_item fail_event)
+{
+	if (__mmap_seq_read_check(mm, seq))
+		return true;
+	count_vm_event(fail_event);
+	return false;
+}
+#else
+#define mmap_seq_read_check(mm, seq, fail) __mmap_seq_read_check(mm, seq)
+#endif /* CONFIG_SPECULATIVE_PAGE_FAULT_STATS */
+#endif /* CONFIG_SPECULATIVE_PAGE_FAULT */
+
 static inline void mmap_write_lock(struct mm_struct *mm)
 {
 	__mmap_lock_trace_start_locking(mm, true);
 	down_write(&mm->mmap_lock);
 	__mmap_lock_trace_acquire_returned(mm, true, true);
+	__mmap_seq_write_lock(mm);
 }
 
 static inline void mmap_write_lock_nested(struct mm_struct *mm, int subclass)
@@ -77,37 +139,44 @@
 	__mmap_lock_trace_start_locking(mm, true);
 	down_write_nested(&mm->mmap_lock, subclass);
 	__mmap_lock_trace_acquire_returned(mm, true, true);
+	__mmap_seq_write_lock(mm);
 }
 
 static inline int mmap_write_lock_killable(struct mm_struct *mm)
 {
-	int ret;
+	int error;
 
 	__mmap_lock_trace_start_locking(mm, true);
-	ret = down_write_killable(&mm->mmap_lock);
-	__mmap_lock_trace_acquire_returned(mm, true, ret == 0);
-	return ret;
+	error = down_write_killable(&mm->mmap_lock);
+	__mmap_lock_trace_acquire_returned(mm, true, !error);
+	if (likely(!error))
+		__mmap_seq_write_lock(mm);
+	return error;
 }
 
 static inline bool mmap_write_trylock(struct mm_struct *mm)
 {
-	bool ret;
+	bool ok;
 
 	__mmap_lock_trace_start_locking(mm, true);
-	ret = down_write_trylock(&mm->mmap_lock) != 0;
-	__mmap_lock_trace_acquire_returned(mm, true, ret);
-	return ret;
+	ok = down_write_trylock(&mm->mmap_lock) != 0;
+	__mmap_lock_trace_acquire_returned(mm, true, ok);
+	if (likely(ok))
+		__mmap_seq_write_lock(mm);
+	return ok;
 }
 
 static inline void mmap_write_unlock(struct mm_struct *mm)
 {
 	__mmap_lock_trace_released(mm, true);
+	__mmap_seq_write_unlock(mm);
 	up_write(&mm->mmap_lock);
 }
 
 static inline void mmap_write_downgrade(struct mm_struct *mm)
 {
 	__mmap_lock_trace_acquire_returned(mm, false, true);
+	__mmap_seq_write_unlock(mm);
 	downgrade_write(&mm->mmap_lock);
 }
 
@@ -120,22 +189,22 @@
 
 static inline int mmap_read_lock_killable(struct mm_struct *mm)
 {
-	int ret;
+	int error;
 
 	__mmap_lock_trace_start_locking(mm, false);
-	ret = down_read_killable(&mm->mmap_lock);
-	__mmap_lock_trace_acquire_returned(mm, false, ret == 0);
-	return ret;
+	error = down_read_killable(&mm->mmap_lock);
+	__mmap_lock_trace_acquire_returned(mm, false, !error);
+	return error;
 }
 
 static inline bool mmap_read_trylock(struct mm_struct *mm)
 {
-	bool ret;
+	bool ok;
 
 	__mmap_lock_trace_start_locking(mm, false);
-	ret = down_read_trylock(&mm->mmap_lock) != 0;
-	__mmap_lock_trace_acquire_returned(mm, false, ret);
-	return ret;
+	ok = down_read_trylock(&mm->mmap_lock) != 0;
+	__mmap_lock_trace_acquire_returned(mm, false, ok);
+	return ok;
 }
 
 static inline void mmap_read_unlock(struct mm_struct *mm)
@@ -162,9 +231,9 @@
 	VM_BUG_ON_MM(!rwsem_is_locked(&mm->mmap_lock), mm);
 }
 
-static inline int mmap_lock_is_contended(struct mm_struct *mm)
+static inline bool mmap_lock_is_contended(struct mm_struct *mm)
 {
-	return rwsem_is_contended(&mm->mmap_lock);
+	return rwsem_is_contended(&mm->mmap_lock) != 0;
 }
 
 #endif /* _LINUX_MMAP_LOCK_H */
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
index 12c7f2d..493c69e 100644
--- a/include/linux/mmc/card.h
+++ b/include/linux/mmc/card.h
@@ -9,6 +9,7 @@
 
 #include <linux/device.h>
 #include <linux/mod_devicetable.h>
+#include <linux/android_kabi.h>
 
 struct mmc_cid {
 	unsigned int		manfid;
@@ -258,6 +259,8 @@
 #define MMC_BLK_DATA_AREA_BOOT	(1<<1)
 #define MMC_BLK_DATA_AREA_GP	(1<<2)
 #define MMC_BLK_DATA_AREA_RPMB	(1<<3)
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /*
@@ -337,6 +340,9 @@
 	unsigned int    nr_parts;
 
 	struct workqueue_struct *complete_wq;	/* Private workqueue */
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 static inline bool mmc_large_sector(struct mmc_card *card)
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index 0c0c9a0..b7f2842 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -16,6 +16,9 @@
 #include <linux/mmc/pm.h>
 #include <linux/dma-direction.h>
 #include <linux/keyslot-manager.h>
+#include <linux/android_kabi.h>
+
+#include <linux/android_vendor.h>
 
 struct mmc_ios {
 	unsigned int	clock;			/* clock rate */
@@ -93,6 +96,25 @@
 
 struct mmc_host;
 
+enum mmc_err_stat {
+	MMC_ERR_CMD_TIMEOUT,
+	MMC_ERR_CMD_CRC,
+	MMC_ERR_DAT_TIMEOUT,
+	MMC_ERR_DAT_CRC,
+	MMC_ERR_AUTO_CMD,
+	MMC_ERR_ADMA,
+	MMC_ERR_TUNING,
+	MMC_ERR_CMDQ_RED,
+	MMC_ERR_CMDQ_GCE,
+	MMC_ERR_CMDQ_ICCE,
+	MMC_ERR_REQ_TIMEOUT,
+	MMC_ERR_CMDQ_REQ_TIMEOUT,
+	MMC_ERR_ICE_CFG,
+	MMC_ERR_CTRL_TIMEOUT,
+	MMC_ERR_UNEXPECTED_IRQ,
+	MMC_ERR_MAX,
+};
+
 struct mmc_host_ops {
 	/*
 	 * It is optional for the host to implement pre_req and post_req in
@@ -162,6 +184,9 @@
 	/* Prepare HS400 target operating frequency depending host driver */
 	int	(*prepare_hs400_tuning)(struct mmc_host *host, struct mmc_ios *ios);
 
+	/* Execute HS400 tuning depending host driver */
+	int	(*execute_hs400_tuning)(struct mmc_host *host, struct mmc_card *card);
+
 	/* Prepare switch to DDR during the HS400 init sequence */
 	int	(*hs400_prepare_ddr)(struct mmc_host *host);
 
@@ -190,6 +215,9 @@
 
 	/* Initialize an SD express card, mandatory for MMC_CAP2_SD_EXP. */
 	int	(*init_sd_express)(struct mmc_host *host, struct mmc_ios *ios);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 struct mmc_cqe_ops {
@@ -234,6 +262,9 @@
 	 * will have zero data bytes transferred.
 	 */
 	void	(*cqe_recovery_finish)(struct mmc_host *host);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 struct mmc_async_req {
@@ -261,6 +292,7 @@
 	int cd_irq;
 	bool cd_wake_enabled;
 	void *handler_priv;
+	ANDROID_OEM_DATA(1);
 };
 
 /**
@@ -489,6 +521,7 @@
 	int			cqe_qdepth;
 	bool			cqe_enabled;
 	bool			cqe_on;
+	bool			cqe_recovery_reset_always;
 
 	/* Inline encryption support */
 #ifdef CONFIG_MMC_CRYPTO
@@ -498,6 +531,12 @@
 	/* Host Software Queue support */
 	bool			hsq_enabled;
 
+	u32			err_stats[MMC_ERR_MAX];
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_OEM_DATA(1);
+
 	unsigned long		private[] ____cacheline_aligned;
 };
 
@@ -632,7 +671,14 @@
 	return data->flags & MMC_DATA_WRITE ? DMA_TO_DEVICE : DMA_FROM_DEVICE;
 }
 
+static inline void mmc_debugfs_err_stats_inc(struct mmc_host *host,
+					     enum mmc_err_stat stat)
+{
+	host->err_stats[stat] += 1;
+}
+
 int mmc_send_tuning(struct mmc_host *host, u32 opcode, int *cmd_error);
 int mmc_send_abort_tuning(struct mmc_host *host, u32 opcode);
+int mmc_get_ext_csd(struct mmc_card *card, u8 **new_ext_csd);
 
 #endif /* LINUX_MMC_HOST_H */
diff --git a/include/linux/mmc/mmc.h b/include/linux/mmc/mmc.h
index 545578f..f490e2c 100644
--- a/include/linux/mmc/mmc.h
+++ b/include/linux/mmc/mmc.h
@@ -99,6 +99,12 @@
 	       opcode == MMC_READ_MULTIPLE_BLOCK;
 }
 
+static inline bool mmc_op_tuning(u32 opcode)
+{
+	return opcode == MMC_SEND_TUNING_BLOCK ||
+			opcode == MMC_SEND_TUNING_BLOCK_HS200;
+}
+
 /*
  * MMC_SWITCH argument format:
  *
@@ -449,4 +455,13 @@
 
 #define mmc_driver_type_mask(n)		(1 << (n))
 
+struct mmc_card;
+
+extern int mmc_select_bus_width(struct mmc_card *card);
+extern int mmc_select_hs(struct mmc_card *card);
+extern int mmc_select_hs_ddr(struct mmc_card *card);
+extern int mmc_select_hs400(struct mmc_card *card);
+extern int mmc_hs200_tuning(struct mmc_card *card);
+extern int mmc_select_timing(struct mmc_card *card);
+
 #endif /* LINUX_MMC_MMC_H */
diff --git a/include/linux/mmu_notifier.h b/include/linux/mmu_notifier.h
index 45fc2c8..dd0e301 100644
--- a/include/linux/mmu_notifier.h
+++ b/include/linux/mmu_notifier.h
@@ -6,8 +6,11 @@
 #include <linux/spinlock.h>
 #include <linux/mm_types.h>
 #include <linux/mmap_lock.h>
+#include <linux/percpu-rwsem.h>
+#include <linux/slab.h>
 #include <linux/srcu.h>
 #include <linux/interval_tree.h>
+#include <linux/android_kabi.h>
 
 struct mmu_notifier_subscriptions;
 struct mmu_notifier;
@@ -221,6 +224,11 @@
 	 */
 	struct mmu_notifier *(*alloc_notifier)(struct mm_struct *mm);
 	void (*free_notifier)(struct mmu_notifier *subscription);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 /*
@@ -240,6 +248,9 @@
 	struct mm_struct *mm;
 	struct rcu_head rcu;
 	unsigned int users;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 /**
@@ -499,15 +510,30 @@
 		__mmu_notifier_invalidate_range(mm, start, end);
 }
 
-static inline void mmu_notifier_subscriptions_init(struct mm_struct *mm)
+static inline bool mmu_notifier_subscriptions_init(struct mm_struct *mm)
 {
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	mm->mmu_notifier_lock = kzalloc(sizeof(struct percpu_rw_semaphore), GFP_KERNEL);
+	if (!mm->mmu_notifier_lock)
+		return false;
+	if (percpu_init_rwsem(mm->mmu_notifier_lock)) {
+		kfree(mm->mmu_notifier_lock);
+		return false;
+	}
+#endif
+
 	mm->notifier_subscriptions = NULL;
+	return true;
 }
 
 static inline void mmu_notifier_subscriptions_destroy(struct mm_struct *mm)
 {
 	if (mm_has_notifiers(mm))
 		__mmu_notifier_subscriptions_destroy(mm);
+
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	percpu_rwsem_async_destroy(mm->mmu_notifier_lock);
+#endif
 }
 
 
@@ -724,8 +750,9 @@
 {
 }
 
-static inline void mmu_notifier_subscriptions_init(struct mm_struct *mm)
+static inline bool mmu_notifier_subscriptions_init(struct mm_struct *mm)
 {
+	return true;
 }
 
 static inline void mmu_notifier_subscriptions_destroy(struct mm_struct *mm)
@@ -749,4 +776,29 @@
 
 #endif /* CONFIG_MMU_NOTIFIER */
 
+#if defined(CONFIG_MMU_NOTIFIER) && defined(CONFIG_SPECULATIVE_PAGE_FAULT)
+
+static inline bool mmu_notifier_trylock(struct mm_struct *mm)
+{
+	return percpu_down_read_trylock(mm->mmu_notifier_lock);
+}
+
+static inline void mmu_notifier_unlock(struct mm_struct *mm)
+{
+	percpu_up_read(mm->mmu_notifier_lock);
+}
+
+#else
+
+static inline bool mmu_notifier_trylock(struct mm_struct *mm)
+{
+	return true;
+}
+
+static inline void mmu_notifier_unlock(struct mm_struct *mm)
+{
+}
+
+#endif
+
 #endif /* _LINUX_MMU_NOTIFIER_H */
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 6ba1002..d6ef3b8 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -21,6 +21,7 @@
 #include <linux/mm_types.h>
 #include <linux/page-flags.h>
 #include <linux/local_lock.h>
+#include <linux/android_kabi.h>
 #include <asm/page.h>
 
 /* Free memory management - zoned buddy allocator.  */
@@ -39,12 +40,12 @@
  */
 #define PAGE_ALLOC_COSTLY_ORDER 3
 
+#define MAX_KSWAPD_THREADS 16
+
 enum migratetype {
 	MIGRATE_UNMOVABLE,
 	MIGRATE_MOVABLE,
 	MIGRATE_RECLAIMABLE,
-	MIGRATE_PCPTYPES,	/* the number of types on the pcp lists */
-	MIGRATE_HIGHATOMIC = MIGRATE_PCPTYPES,
 #ifdef CONFIG_CMA
 	/*
 	 * MIGRATE_CMA migration type is designed to mimic the way
@@ -61,6 +62,8 @@
 	 */
 	MIGRATE_CMA,
 #endif
+	MIGRATE_PCPTYPES, /* the number of types on the pcp lists */
+	MIGRATE_HIGHATOMIC = MIGRATE_PCPTYPES,
 #ifdef CONFIG_MEMORY_ISOLATION
 	MIGRATE_ISOLATE,	/* can't allocate from here */
 #endif
@@ -73,9 +76,11 @@
 #ifdef CONFIG_CMA
 #  define is_migrate_cma(migratetype) unlikely((migratetype) == MIGRATE_CMA)
 #  define is_migrate_cma_page(_page) (get_pageblock_migratetype(_page) == MIGRATE_CMA)
+#  define get_cma_migrate_type() MIGRATE_CMA
 #else
 #  define is_migrate_cma(migratetype) false
 #  define is_migrate_cma_page(_page) false
+#  define get_cma_migrate_type() MIGRATE_MOVABLE
 #endif
 
 static inline bool is_migrate_movable(int mt)
@@ -154,9 +159,7 @@
 	NR_MLOCK,		/* mlock()ed pages found and moved off LRU */
 	/* Second 128 byte cacheline */
 	NR_BOUNCE,
-#if IS_ENABLED(CONFIG_ZSMALLOC)
 	NR_ZSPAGES,		/* allocated in zsmalloc */
-#endif
 	NR_FREE_CMA_PAGES,
 	NR_VM_ZONE_STAT_ITEMS };
 
@@ -294,6 +297,209 @@
 					 */
 };
 
+#endif /* !__GENERATING_BOUNDS_H */
+
+/*
+ * Evictable pages are divided into multiple generations. The youngest and the
+ * oldest generation numbers, max_seq and min_seq, are monotonically increasing.
+ * They form a sliding window of a variable size [MIN_NR_GENS, MAX_NR_GENS]. An
+ * offset within MAX_NR_GENS, i.e., gen, indexes the LRU list of the
+ * corresponding generation. The gen counter in page->flags stores gen+1 while
+ * a page is on one of lrugen->lists[]. Otherwise it stores 0.
+ *
+ * A page is added to the youngest generation on faulting. The aging needs to
+ * check the accessed bit at least twice before handing this page over to the
+ * eviction. The first check takes care of the accessed bit set on the initial
+ * fault; the second check makes sure this page hasn't been used since then.
+ * This process, AKA second chance, requires a minimum of two generations,
+ * hence MIN_NR_GENS. And to maintain ABI compatibility with the active/inactive
+ * LRU, e.g., /proc/vmstat, these two generations are considered active; the
+ * rest of generations, if they exist, are considered inactive. See
+ * lru_gen_is_active().
+ *
+ * PG_active is always cleared while a page is on one of lrugen->lists[] so that
+ * the aging needs not to worry about it. And it's set again when a page
+ * considered active is isolated for non-reclaiming purposes, e.g., migration.
+ * See lru_gen_add_page() and lru_gen_del_page().
+ *
+ * MAX_NR_GENS is set to 4 so that the multi-gen LRU can support twice the
+ * number of categories of the active/inactive LRU when keeping track of
+ * accesses through page tables. This requires order_base_2(MAX_NR_GENS+1) bits
+ * in page->flags.
+ */
+#define MIN_NR_GENS		2U
+#define MAX_NR_GENS		4U
+
+/*
+ * Each generation is divided into multiple tiers. A page accessed N times
+ * through file descriptors is in tier order_base_2(N). A page in the first tier
+ * (N=0,1) is marked by PG_referenced unless it was faulted in through page
+ * tables or read ahead. A page in any other tier (N>1) is marked by
+ * PG_referenced and PG_workingset. This implies a minimum of two tiers is
+ * supported without using additional bits in page->flags.
+ *
+ * In contrast to moving across generations which requires the LRU lock, moving
+ * across tiers only involves atomic operations on page->flags and therefore
+ * has a negligible cost in the buffered access path. In the eviction path,
+ * comparisons of refaulted/(evicted+protected) from the first tier and the
+ * rest infer whether pages accessed multiple times through file descriptors
+ * are statistically hot and thus worth protecting.
+ *
+ * MAX_NR_TIERS is set to 4 so that the multi-gen LRU can support twice the
+ * number of categories of the active/inactive LRU when keeping track of
+ * accesses through file descriptors. This uses MAX_NR_TIERS-2 spare bits in
+ * page->flags.
+ */
+#define MAX_NR_TIERS		4U
+
+#ifndef __GENERATING_BOUNDS_H
+
+struct lruvec;
+struct page_vma_mapped_walk;
+
+#define LRU_GEN_MASK		((BIT(LRU_GEN_WIDTH) - 1) << LRU_GEN_PGOFF)
+#define LRU_REFS_MASK		((BIT(LRU_REFS_WIDTH) - 1) << LRU_REFS_PGOFF)
+
+#ifdef CONFIG_LRU_GEN
+
+enum {
+	LRU_GEN_ANON,
+	LRU_GEN_FILE,
+};
+
+enum {
+	LRU_GEN_CORE,
+	LRU_GEN_MM_WALK,
+	LRU_GEN_NONLEAF_YOUNG,
+	NR_LRU_GEN_CAPS
+};
+
+#define MIN_LRU_BATCH		BITS_PER_LONG
+#define MAX_LRU_BATCH		(MIN_LRU_BATCH * 64)
+
+/* whether to keep historical stats from evicted generations */
+#ifdef CONFIG_LRU_GEN_STATS
+#define NR_HIST_GENS		MAX_NR_GENS
+#else
+#define NR_HIST_GENS		1U
+#endif
+
+/*
+ * The youngest generation number is stored in max_seq for both anon and file
+ * types as they are aged on an equal footing. The oldest generation numbers are
+ * stored in min_seq[] separately for anon and file types as clean file pages
+ * can be evicted regardless of swap constraints.
+ *
+ * Normally anon and file min_seq are in sync. But if swapping is constrained,
+ * e.g., out of swap space, file min_seq is allowed to advance and leave anon
+ * min_seq behind.
+ *
+ * The number of pages in each generation is eventually consistent and therefore
+ * can be transiently negative when reset_batch_size() is pending.
+ */
+struct lru_gen_struct {
+	/* the aging increments the youngest generation number */
+	unsigned long max_seq;
+	/* the eviction increments the oldest generation numbers */
+	unsigned long min_seq[ANON_AND_FILE];
+	/* the birth time of each generation in jiffies */
+	unsigned long timestamps[MAX_NR_GENS];
+	/* the multi-gen LRU lists, lazily sorted on eviction */
+	struct list_head lists[MAX_NR_GENS][ANON_AND_FILE][MAX_NR_ZONES];
+	/* the multi-gen LRU sizes, eventually consistent */
+	unsigned long nr_pages[MAX_NR_GENS][ANON_AND_FILE][MAX_NR_ZONES];
+	/* the exponential moving average of refaulted */
+	unsigned long avg_refaulted[ANON_AND_FILE][MAX_NR_TIERS];
+	/* the exponential moving average of evicted+protected */
+	unsigned long avg_total[ANON_AND_FILE][MAX_NR_TIERS];
+	/* the first tier doesn't need protection, hence the minus one */
+	unsigned long protected[NR_HIST_GENS][ANON_AND_FILE][MAX_NR_TIERS - 1];
+	/* can be modified without holding the LRU lock */
+	atomic_long_t evicted[NR_HIST_GENS][ANON_AND_FILE][MAX_NR_TIERS];
+	atomic_long_t refaulted[NR_HIST_GENS][ANON_AND_FILE][MAX_NR_TIERS];
+	/* whether the multi-gen LRU is enabled */
+	bool enabled;
+};
+
+enum {
+	MM_LEAF_TOTAL,		/* total leaf entries */
+	MM_LEAF_OLD,		/* old leaf entries */
+	MM_LEAF_YOUNG,		/* young leaf entries */
+	MM_NONLEAF_TOTAL,	/* total non-leaf entries */
+	MM_NONLEAF_FOUND,	/* non-leaf entries found in Bloom filters */
+	MM_NONLEAF_ADDED,	/* non-leaf entries added to Bloom filters */
+	NR_MM_STATS
+};
+
+/* double-buffering Bloom filters */
+#define NR_BLOOM_FILTERS	2
+
+struct lru_gen_mm_state {
+	/* set to max_seq after each iteration */
+	unsigned long seq;
+	/* where the current iteration continues after */
+	struct list_head *head;
+	/* where the last iteration ended before */
+	struct list_head *tail;
+	/* Unused - keep for ABI compatiiblity */
+	struct wait_queue_head wait;
+	/* Bloom filters flip after each iteration */
+	unsigned long *filters[NR_BLOOM_FILTERS];
+	/* the mm stats for debugging */
+	unsigned long stats[NR_HIST_GENS][NR_MM_STATS];
+	/* Unused - keep for ABI compatiiblity */
+	int nr_walkers;
+};
+
+struct lru_gen_mm_walk {
+	/* the lruvec under reclaim */
+	struct lruvec *lruvec;
+	/* unstable max_seq from lru_gen_struct */
+	unsigned long max_seq;
+	/* the next address within an mm to scan */
+	unsigned long next_addr;
+	/* Unused -- for ABI compatibility */
+	unsigned long bitmap[BITS_TO_LONGS(MIN_LRU_BATCH)];
+	/* to batch promoted pages */
+	int nr_pages[MAX_NR_GENS][ANON_AND_FILE][MAX_NR_ZONES];
+	/* to batch the mm stats */
+	int mm_stats[NR_MM_STATS];
+	/* total batched items */
+	int batched;
+	bool can_swap;
+	bool full_scan;
+};
+
+void lru_gen_init_lruvec(struct lruvec *lruvec);
+void lru_gen_look_around(struct page_vma_mapped_walk *pvmw);
+
+#ifdef CONFIG_MEMCG
+void lru_gen_init_memcg(struct mem_cgroup *memcg);
+void lru_gen_exit_memcg(struct mem_cgroup *memcg);
+#endif
+
+#else /* !CONFIG_LRU_GEN */
+
+static inline void lru_gen_init_lruvec(struct lruvec *lruvec)
+{
+}
+
+static inline void lru_gen_look_around(struct page_vma_mapped_walk *pvmw)
+{
+}
+
+#ifdef CONFIG_MEMCG
+static inline void lru_gen_init_memcg(struct mem_cgroup *memcg)
+{
+}
+
+static inline void lru_gen_exit_memcg(struct mem_cgroup *memcg)
+{
+}
+#endif
+
+#endif /* CONFIG_LRU_GEN */
+
 struct lruvec {
 	struct list_head		lists[NR_LRU_LISTS];
 	/* per lruvec lru_lock for memcg */
@@ -311,9 +517,16 @@
 	unsigned long			refaults[ANON_AND_FILE];
 	/* Various lruvec state flags (enum lruvec_flags) */
 	unsigned long			flags;
+#ifdef CONFIG_LRU_GEN
+	/* evictable pages divided into generations */
+	struct lru_gen_struct		lrugen;
+	/* to concurrently iterate lru_gen_mm_list */
+	struct lru_gen_mm_state		mm_state;
+#endif
 #ifdef CONFIG_MEMCG
 	struct pglist_data *pgdat;
 #endif
+	ANDROID_VENDOR_DATA(1);
 };
 
 /* Isolate unmapped pages */
@@ -370,6 +583,11 @@
 	struct list_head lists[NR_PCP_LISTS];
 };
 
+struct per_cpu_pages_ext {
+	spinlock_t lock;	/* Protects pcp.lists field */
+	struct per_cpu_pages pcp;
+};
+
 struct per_cpu_zonestat {
 #ifdef CONFIG_SMP
 	s8 vm_stat_diff[NR_VM_ZONE_STAT_ITEMS];
@@ -655,6 +873,11 @@
 	/* Zone statistics */
 	atomic_long_t		vm_stat[NR_VM_ZONE_STAT_ITEMS];
 	atomic_long_t		vm_numa_event[NR_VM_NUMA_EVENT_ITEMS];
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 } ____cacheline_internodealigned_in_smp;
 
 enum pgdat_flags {
@@ -843,11 +1066,13 @@
 	wait_queue_head_t pfmemalloc_wait;
 	struct task_struct *kswapd;	/* Protected by
 					   mem_hotplug_begin/end() */
+	struct task_struct *mkswapd[MAX_KSWAPD_THREADS];
 	int kswapd_order;
 	enum zone_type kswapd_highest_zoneidx;
 
 	int kswapd_failures;		/* Number of 'reclaimed == 0' runs */
 
+	ANDROID_OEM_DATA(1);
 #ifdef CONFIG_COMPACTION
 	int kcompactd_max_order;
 	enum zone_type kcompactd_highest_zoneidx;
@@ -895,6 +1120,11 @@
 
 	unsigned long		flags;
 
+#ifdef CONFIG_LRU_GEN
+	/* kswap mm walk data */
+	struct lru_gen_mm_walk	mm_walk;
+#endif
+
 	ZONE_PADDING(_pad2_)
 
 	/* Per-node vmstats */
@@ -1096,6 +1326,7 @@
 extern struct pglist_data *first_online_pgdat(void);
 extern struct pglist_data *next_online_pgdat(struct pglist_data *pgdat);
 extern struct zone *next_zone(struct zone *zone);
+extern int isolate_anon_lru_page(struct page *page);
 
 /**
  * for_each_online_pgdat - helper macro to iterate over all online nodes
diff --git a/include/linux/module.h b/include/linux/module.h
index c9f1200..0f004d5 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -28,6 +28,7 @@
 #include <linux/srcu.h>
 #include <linux/static_call_types.h>
 #include <linux/cfi.h>
+#include <linux/android_kabi.h>
 
 #include <linux/percpu.h>
 #include <asm/module.h>
@@ -290,7 +291,7 @@
  * files require multiple MODULE_FIRMWARE() specifiers */
 #define MODULE_FIRMWARE(_firmware) MODULE_INFO(firmware, _firmware)
 
-#define MODULE_IMPORT_NS(ns) MODULE_INFO(import_ns, #ns)
+#define MODULE_IMPORT_NS(ns)	MODULE_INFO(import_ns, __stringify(ns))
 
 struct notifier_block;
 
@@ -380,6 +381,7 @@
 	struct module_attribute *modinfo_attrs;
 	const char *version;
 	const char *srcversion;
+	const char *scmversion;
 	struct kobject *holders_dir;
 
 	/* Exported symbols */
@@ -404,10 +406,12 @@
 	const s32 *gpl_crcs;
 	bool using_gplonly_symbols;
 
-#ifdef CONFIG_MODULE_SIG
-	/* Signature was verified. */
+	/*
+	 * Signature was verified. Unconditionally compiled in Android to
+	 * preserve ABI compatibility between kernels without module
+	 * signing enabled and signed modules.
+	 */
 	bool sig_ok;
-#endif
 
 	bool async_probe_requested;
 
@@ -538,6 +542,10 @@
 	struct error_injection_entry *ei_funcs;
 	unsigned int num_ei_funcs;
 #endif
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 } ____cacheline_aligned __randomize_layout;
 #ifndef MODULE_ARCH_INIT
 #define MODULE_ARCH_INIT {}
diff --git a/include/linux/mount.h b/include/linux/mount.h
index 5d92a7e1..9fc7993 100644
--- a/include/linux/mount.h
+++ b/include/linux/mount.h
@@ -16,6 +16,7 @@
 #include <linux/spinlock.h>
 #include <linux/seqlock.h>
 #include <linux/atomic.h>
+#include <linux/android_kabi.h>
 
 struct super_block;
 struct vfsmount;
@@ -73,6 +74,11 @@
 	struct super_block *mnt_sb;	/* pointer to superblock */
 	int mnt_flags;
 	struct user_namespace *mnt_userns;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 } __randomize_layout;
 
 static inline struct user_namespace *mnt_user_ns(const struct vfsmount *mnt)
diff --git a/include/linux/mutex.h b/include/linux/mutex.h
index 8f226d4..35d7b14 100644
--- a/include/linux/mutex.h
+++ b/include/linux/mutex.h
@@ -19,6 +19,7 @@
 #include <asm/processor.h>
 #include <linux/osq_lock.h>
 #include <linux/debug_locks.h>
+#include <linux/android_vendor.h>
 
 #ifdef CONFIG_DEBUG_LOCK_ALLOC
 # define __DEP_MAP_MUTEX_INITIALIZER(lockname)			\
@@ -73,6 +74,7 @@
 #ifdef CONFIG_DEBUG_LOCK_ALLOC
 	struct lockdep_map	dep_map;
 #endif
+	ANDROID_OEM_DATA_ARRAY(1, 2);
 };
 
 #ifdef CONFIG_DEBUG_MUTEXES
diff --git a/include/linux/net.h b/include/linux/net.h
index ba736b4..b08d7c6 100644
--- a/include/linux/net.h
+++ b/include/linux/net.h
@@ -23,6 +23,7 @@
 #include <linux/fs.h>
 #include <linux/mm.h>
 #include <linux/sockptr.h>
+#include <linux/android_kabi.h>
 
 #include <uapi/linux/net.h>
 
@@ -200,6 +201,11 @@
 	int		(*sendmsg_locked)(struct sock *sk, struct msghdr *msg,
 					  size_t size);
 	int		(*set_rcvlowat)(struct sock *sk, int val);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 #define DECLARE_SOCKADDR(type, dst, src)	\
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index b5df2e5..f68ba57 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -48,6 +48,7 @@
 #include <uapi/linux/pkt_cls.h>
 #include <linux/hashtable.h>
 #include <linux/rbtree.h>
+#include <linux/android_kabi.h>
 
 struct netpoll_info;
 struct device;
@@ -167,38 +168,31 @@
  *	(unsigned long) so they can be read and written atomically.
  */
 
-#define NET_DEV_STAT(FIELD)			\
-	union {					\
-		unsigned long FIELD;		\
-		atomic_long_t __##FIELD;	\
-	}
-
 struct net_device_stats {
-	NET_DEV_STAT(rx_packets);
-	NET_DEV_STAT(tx_packets);
-	NET_DEV_STAT(rx_bytes);
-	NET_DEV_STAT(tx_bytes);
-	NET_DEV_STAT(rx_errors);
-	NET_DEV_STAT(tx_errors);
-	NET_DEV_STAT(rx_dropped);
-	NET_DEV_STAT(tx_dropped);
-	NET_DEV_STAT(multicast);
-	NET_DEV_STAT(collisions);
-	NET_DEV_STAT(rx_length_errors);
-	NET_DEV_STAT(rx_over_errors);
-	NET_DEV_STAT(rx_crc_errors);
-	NET_DEV_STAT(rx_frame_errors);
-	NET_DEV_STAT(rx_fifo_errors);
-	NET_DEV_STAT(rx_missed_errors);
-	NET_DEV_STAT(tx_aborted_errors);
-	NET_DEV_STAT(tx_carrier_errors);
-	NET_DEV_STAT(tx_fifo_errors);
-	NET_DEV_STAT(tx_heartbeat_errors);
-	NET_DEV_STAT(tx_window_errors);
-	NET_DEV_STAT(rx_compressed);
-	NET_DEV_STAT(tx_compressed);
+	unsigned long	rx_packets;
+	unsigned long	tx_packets;
+	unsigned long	rx_bytes;
+	unsigned long	tx_bytes;
+	unsigned long	rx_errors;
+	unsigned long	tx_errors;
+	unsigned long	rx_dropped;
+	unsigned long	tx_dropped;
+	unsigned long	multicast;
+	unsigned long	collisions;
+	unsigned long	rx_length_errors;
+	unsigned long	rx_over_errors;
+	unsigned long	rx_crc_errors;
+	unsigned long	rx_frame_errors;
+	unsigned long	rx_fifo_errors;
+	unsigned long	rx_missed_errors;
+	unsigned long	tx_aborted_errors;
+	unsigned long	tx_carrier_errors;
+	unsigned long	tx_fifo_errors;
+	unsigned long	tx_heartbeat_errors;
+	unsigned long	tx_window_errors;
+	unsigned long	rx_compressed;
+	unsigned long	tx_compressed;
 };
-#undef NET_DEV_STAT
 
 
 #include <linux/cache.h>
@@ -292,6 +286,9 @@
 				const unsigned char *haddr);
 	bool	(*validate)(const char *ll_header, unsigned int len);
 	__be16	(*parse_protocol)(const struct sk_buff *skb);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 /* These flag bits are private to the generic network queueing
@@ -350,6 +347,11 @@
 	struct hlist_node	napi_hash_node;
 	unsigned int		napi_id;
 	struct task_struct	*thread;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 enum {
@@ -623,6 +625,11 @@
 #ifdef CONFIG_BQL
 	struct dql		dql;
 #endif
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 } ____cacheline_aligned_in_smp;
 
 extern int sysctl_fb_tunnels_only_for_init_net;
@@ -763,6 +770,11 @@
 #ifdef CONFIG_XDP_SOCKETS
 	struct xsk_buff_pool            *pool;
 #endif
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 } ____cacheline_aligned_in_smp;
 
 /*
@@ -1014,6 +1026,11 @@
 	bool	(*xdo_dev_offload_ok) (struct sk_buff *skb,
 				       struct xfrm_state *x);
 	void	(*xdo_dev_state_advance_esn) (struct xfrm_state *x);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 #endif
 
@@ -1589,6 +1606,15 @@
 	struct net_device *	(*ndo_get_peer_dev)(struct net_device *dev);
 	int                     (*ndo_fill_forward_path)(struct net_device_path_ctx *ctx,
                                                          struct net_device_path *path);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
+	ANDROID_KABI_RESERVE(5);
+	ANDROID_KABI_RESERVE(6);
+	ANDROID_KABI_RESERVE(7);
+	ANDROID_KABI_RESERVE(8);
 };
 
 /**
@@ -2288,6 +2314,15 @@
 
 	/* protected by rtnl_lock */
 	struct bpf_xdp_entity	xdp_state[__MAX_XDP_MODE];
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
+	ANDROID_KABI_RESERVE(5);
+	ANDROID_KABI_RESERVE(6);
+	ANDROID_KABI_RESERVE(7);
+	ANDROID_KABI_RESERVE(8);
 };
 #define to_net_dev(d) container_of(d, struct net_device, dev)
 
@@ -2661,6 +2696,11 @@
 	struct net		*af_packet_net;
 	void			*af_packet_priv;
 	struct list_head	list;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 struct offload_callbacks {
@@ -5494,9 +5534,4 @@
 
 extern struct net_device *blackhole_netdev;
 
-/* Note: Avoid these macros in fast path, prefer per-cpu or per-queue counters. */
-#define DEV_STATS_INC(DEV, FIELD) atomic_long_inc(&(DEV)->stats.__##FIELD)
-#define DEV_STATS_ADD(DEV, FIELD, VAL) 	\
-		atomic_long_add((VAL), &(DEV)->stats.__##FIELD)
-
 #endif	/* _LINUX_NETDEVICE_H */
diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
index e20c2db..c3c2c02 100644
--- a/include/linux/netfilter.h
+++ b/include/linux/netfilter.h
@@ -14,6 +14,7 @@
 #include <linux/netfilter_defs.h>
 #include <linux/netdevice.h>
 #include <linux/sockptr.h>
+#include <linux/android_kabi.h>
 #include <net/net_namespace.h>
 
 static inline int NF_DROP_GETERR(int verdict)
@@ -177,6 +178,8 @@
 	int (*get)(struct sock *sk, int optval, void __user *user, int *len);
 	/* Use the module struct to lock set/get code in place */
 	struct module *owner;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /* Function to register/unregister hook points. */
@@ -374,6 +377,8 @@
 	unsigned int (*manip_pkt)(struct sk_buff *skb, struct nf_conn *ct,
 				  enum nf_nat_manip_type mtype,
 				  enum ip_conntrack_dir dir);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 extern struct nf_nat_hook __rcu *nf_nat_hook;
@@ -458,6 +463,8 @@
 	void (*destroy)(struct nf_conntrack *);
 	bool (*get_tuple_skb)(struct nf_conntrack_tuple *,
 			      const struct sk_buff *);
+
+	ANDROID_KABI_RESERVE(1);
 };
 extern struct nf_ct_hook __rcu *nf_ct_hook;
 
@@ -473,6 +480,8 @@
 			     u32 portid, u32 report);
 	void (*seq_adjust)(struct sk_buff *skb, struct nf_conn *ct,
 			   enum ip_conntrack_info ctinfo, s32 off);
+
+	ANDROID_KABI_RESERVE(1);
 };
 extern struct nfnl_ct_hook __rcu *nfnl_ct_hook;
 
diff --git a/include/linux/netfilter/ipset/ip_set.h b/include/linux/netfilter/ipset/ip_set.h
index 72f5ebc..99de4d5 100644
--- a/include/linux/netfilter/ipset/ip_set.h
+++ b/include/linux/netfilter/ipset/ip_set.h
@@ -14,6 +14,7 @@
 #include <linux/netfilter/x_tables.h>
 #include <linux/stringify.h>
 #include <linux/vmalloc.h>
+#include <linux/android_kabi.h>
 #include <net/netlink.h>
 #include <uapi/linux/netfilter/ipset/ip_set.h>
 
@@ -188,6 +189,8 @@
 	bool (*same_set)(const struct ip_set *a, const struct ip_set *b);
 	/* Region-locking is used */
 	bool region_lock;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct ip_set_region {
@@ -234,6 +237,8 @@
 
 	/* Set this to THIS_MODULE if you are a module, otherwise NULL */
 	struct module *me;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /* register and unregister set type */
@@ -276,6 +281,8 @@
 	size_t offset[IPSET_EXT_ID_MAX];
 	/* The type specific data */
 	void *data;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 static inline void
diff --git a/include/linux/netfilter/nfnetlink.h b/include/linux/netfilter/nfnetlink.h
index e9a9ab3..82cb392 100644
--- a/include/linux/netfilter/nfnetlink.h
+++ b/include/linux/netfilter/nfnetlink.h
@@ -4,6 +4,7 @@
 
 #include <linux/netlink.h>
 #include <linux/capability.h>
+#include <linux/android_kabi.h>
 #include <net/netlink.h>
 #include <uapi/linux/netfilter/nfnetlink.h>
 
@@ -28,6 +29,8 @@
 	const struct nla_policy	*policy;
 	enum nfnl_callback_type	type;
 	__u16			attr_count;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 enum nfnl_abort_action {
@@ -46,6 +49,8 @@
 	int (*abort)(struct net *net, struct sk_buff *skb,
 		     enum nfnl_abort_action action);
 	bool (*valid_genid)(struct net *net, u32 genid);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 int nfnetlink_subsys_register(const struct nfnetlink_subsystem *n);
diff --git a/include/linux/netfilter/xt_quota2.h b/include/linux/netfilter/xt_quota2.h
new file mode 100644
index 0000000..a391871
--- /dev/null
+++ b/include/linux/netfilter/xt_quota2.h
@@ -0,0 +1,26 @@
+#ifndef _XT_QUOTA_H
+#define _XT_QUOTA_H
+#include <linux/types.h>
+
+enum xt_quota_flags {
+	XT_QUOTA_INVERT    = 1 << 0,
+	XT_QUOTA_GROW      = 1 << 1,
+	XT_QUOTA_PACKET    = 1 << 2,
+	XT_QUOTA_NO_CHANGE = 1 << 3,
+	XT_QUOTA_MASK      = 0x0F,
+};
+
+struct xt_quota_counter;
+
+struct xt_quota_mtinfo2 {
+	char name[15];
+	u_int8_t flags;
+
+	/* Comparison-invariant */
+	aligned_u64 quota;
+
+	/* Used internally by the kernel */
+	struct xt_quota_counter *master __attribute__((aligned(8)));
+};
+
+#endif /* _XT_QUOTA_H */
diff --git a/include/linux/netfilter_ipv6.h b/include/linux/netfilter_ipv6.h
index 48314ad..c3d17fe 100644
--- a/include/linux/netfilter_ipv6.h
+++ b/include/linux/netfilter_ipv6.h
@@ -7,6 +7,7 @@
 #ifndef __LINUX_IP6_NETFILTER_H
 #define __LINUX_IP6_NETFILTER_H
 
+#include <linux/android_kabi.h>
 #include <uapi/linux/netfilter_ipv6.h>
 #include <net/tcp.h>
 
@@ -65,6 +66,8 @@
 					 const struct nf_bridge_frag_data *data,
 					 struct sk_buff *));
 #endif
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 #ifdef CONFIG_NETFILTER
diff --git a/include/linux/nodemask.h b/include/linux/nodemask.h
index 0f233b76c..292ec0c 100644
--- a/include/linux/nodemask.h
+++ b/include/linux/nodemask.h
@@ -485,6 +485,7 @@
 #define first_online_node	0
 #define first_memory_node	0
 #define next_online_node(nid)	(MAX_NUMNODES)
+#define next_memory_node(nid)	(MAX_NUMNODES)
 #define nr_node_ids		1U
 #define nr_online_nodes		1U
 
diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h
index 0895976..87932bdb 100644
--- a/include/linux/nvmem-provider.h
+++ b/include/linux/nvmem-provider.h
@@ -66,6 +66,7 @@
  * @word_size:	Minimum read/write access granularity.
  * @stride:	Minimum read/write access stride.
  * @priv:	User context passed to read/write callbacks.
+ * @wp-gpio:	Write protect pin
  * @ignore_wp:  Write Protect pin is managed by the provider.
  *
  * Note: A default "nvmem<id>" name will be assigned to the device if
@@ -80,6 +81,7 @@
 	const char		*name;
 	int			id;
 	struct module		*owner;
+	struct gpio_desc	*wp_gpio;
 	const struct nvmem_cell_info	*cells;
 	int			ncells;
 	const struct nvmem_keepout *keepout;
diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h
index 6508b97..4d486ef 100644
--- a/include/linux/of_fdt.h
+++ b/include/linux/of_fdt.h
@@ -58,6 +58,27 @@
 extern unsigned long of_get_flat_dt_root(void);
 extern uint32_t of_get_flat_dt_phandle(unsigned long node);
 
+/*
+ * early_init_dt_scan_chosen - scan the device tree for ramdisk and bootargs
+ *
+ * The boot arguments will be placed into the memory pointed to by @data.
+ * That memory should be COMMAND_LINE_SIZE big and initialized to be a valid
+ * (possibly empty) string.  Logic for what will be in @data after this
+ * function finishes:
+ *
+ * - CONFIG_CMDLINE_FORCE=true
+ *     CONFIG_CMDLINE
+ * - CONFIG_CMDLINE_EXTEND=true, @data is non-empty string
+ *     @data + dt bootargs (even if dt bootargs are empty)
+ * - CONFIG_CMDLINE_EXTEND=true, @data is empty string
+ *     CONFIG_CMDLINE + dt bootargs (even if dt bootargs are empty)
+ * - CMDLINE_FROM_BOOTLOADER=true, dt bootargs=non-empty:
+ *     dt bootargs
+ * - CMDLINE_FROM_BOOTLOADER=true, dt bootargs=empty, @data is non-empty string
+ *     @data is left unchanged
+ * - CMDLINE_FROM_BOOTLOADER=true, dt bootargs=empty, @data is empty string
+ *     CONFIG_CMDLINE (or "" if that's not defined)
+ */
 extern int early_init_dt_scan_chosen(unsigned long node, const char *uname,
 				     int depth, void *data);
 extern int early_init_dt_scan_memory(unsigned long node, const char *uname,
diff --git a/include/linux/of_mdio.h b/include/linux/of_mdio.h
index 8a52ef2..da633d3 100644
--- a/include/linux/of_mdio.h
+++ b/include/linux/of_mdio.h
@@ -14,25 +14,9 @@
 
 #if IS_ENABLED(CONFIG_OF_MDIO)
 bool of_mdiobus_child_is_phy(struct device_node *child);
-int __of_mdiobus_register(struct mii_bus *mdio, struct device_node *np,
-			  struct module *owner);
-
-static inline int of_mdiobus_register(struct mii_bus *mdio,
-				      struct device_node *np)
-{
-	return __of_mdiobus_register(mdio, np, THIS_MODULE);
-}
-
-int __devm_of_mdiobus_register(struct device *dev, struct mii_bus *mdio,
-			       struct device_node *np, struct module *owner);
-
-static inline int devm_of_mdiobus_register(struct device *dev,
-					   struct mii_bus *mdio,
-					   struct device_node *np)
-{
-	return __devm_of_mdiobus_register(dev, mdio, np, THIS_MODULE);
-}
-
+int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np);
+int devm_of_mdiobus_register(struct device *dev, struct mii_bus *mdio,
+			     struct device_node *np);
 struct mdio_device *of_mdio_find_device(struct device_node *np);
 struct phy_device *of_phy_find_device(struct device_node *phy_np);
 struct phy_device *
diff --git a/include/linux/oom.h b/include/linux/oom.h
index 2db9a14..0a11a17 100644
--- a/include/linux/oom.h
+++ b/include/linux/oom.h
@@ -127,4 +127,7 @@
 extern int sysctl_oom_dump_tasks;
 extern int sysctl_oom_kill_allocating_task;
 extern int sysctl_panic_on_oom;
+
+/* call for adding killed process to reaper. */
+extern void add_to_oom_reaper(struct task_struct *p);
 #endif /* _INCLUDE_LINUX_OOM_H */
diff --git a/include/linux/page-flags-layout.h b/include/linux/page-flags-layout.h
index ef1e3e73..7d79818 100644
--- a/include/linux/page-flags-layout.h
+++ b/include/linux/page-flags-layout.h
@@ -55,7 +55,8 @@
 #define SECTIONS_WIDTH		0
 #endif
 
-#if ZONES_WIDTH + SECTIONS_WIDTH + NODES_SHIFT <= BITS_PER_LONG - NR_PAGEFLAGS
+#if ZONES_WIDTH + LRU_GEN_WIDTH + SECTIONS_WIDTH + NODES_SHIFT \
+	<= BITS_PER_LONG - NR_PAGEFLAGS
 #define NODES_WIDTH		NODES_SHIFT
 #elif defined(CONFIG_SPARSEMEM_VMEMMAP)
 #error "Vmemmap: No space for nodes field in page flags"
@@ -89,8 +90,8 @@
 #define LAST_CPUPID_SHIFT 0
 #endif
 
-#if ZONES_WIDTH + SECTIONS_WIDTH + NODES_WIDTH + KASAN_TAG_WIDTH + LAST_CPUPID_SHIFT \
-	<= BITS_PER_LONG - NR_PAGEFLAGS
+#if ZONES_WIDTH + LRU_GEN_WIDTH + SECTIONS_WIDTH + NODES_WIDTH + \
+	KASAN_TAG_WIDTH + LAST_CPUPID_SHIFT <= BITS_PER_LONG - NR_PAGEFLAGS
 #define LAST_CPUPID_WIDTH LAST_CPUPID_SHIFT
 #else
 #define LAST_CPUPID_WIDTH 0
@@ -100,10 +101,15 @@
 #define LAST_CPUPID_NOT_IN_PAGE_FLAGS
 #endif
 
-#if ZONES_WIDTH + SECTIONS_WIDTH + NODES_WIDTH + KASAN_TAG_WIDTH + LAST_CPUPID_WIDTH \
-	> BITS_PER_LONG - NR_PAGEFLAGS
+#if ZONES_WIDTH + LRU_GEN_WIDTH + SECTIONS_WIDTH + NODES_WIDTH + \
+	KASAN_TAG_WIDTH + LAST_CPUPID_WIDTH > BITS_PER_LONG - NR_PAGEFLAGS
 #error "Not enough bits in page flags"
 #endif
 
+/* see the comment on MAX_NR_TIERS */
+#define LRU_REFS_WIDTH	min(__LRU_REFS_WIDTH, BITS_PER_LONG - NR_PAGEFLAGS - \
+			    ZONES_WIDTH - LRU_GEN_WIDTH - SECTIONS_WIDTH - \
+			    NODES_WIDTH - KASAN_TAG_WIDTH - LAST_CPUPID_WIDTH)
+
 #endif
 #endif /* _LINUX_PAGE_FLAGS_LAYOUT */
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
index fbfd3fa..2e75a29 100644
--- a/include/linux/page-flags.h
+++ b/include/linux/page-flags.h
@@ -141,6 +141,9 @@
 #ifdef CONFIG_KASAN_HW_TAGS
 	PG_skip_kasan_poison,
 #endif
+#ifdef CONFIG_64BIT
+	PG_oem_reserved,
+#endif
 	__NR_PAGEFLAGS,
 
 	/* Filesystems */
@@ -791,7 +794,7 @@
 
 extern bool is_free_buddy_page(struct page *page);
 
-__PAGEFLAG(Isolated, isolated, PF_ANY);
+PAGEFLAG(Isolated, isolated, PF_ANY);
 
 /*
  * If network-based swap is enabled, sl*b must keep track of whether pages
@@ -845,7 +848,7 @@
 	 1UL << PG_private	| 1UL << PG_private_2	|	\
 	 1UL << PG_writeback	| 1UL << PG_reserved	|	\
 	 1UL << PG_slab		| 1UL << PG_active 	|	\
-	 1UL << PG_unevictable	| __PG_MLOCKED)
+	 1UL << PG_unevictable	| __PG_MLOCKED | LRU_GEN_MASK)
 
 /*
  * Flags checked when a page is prepped for return by the page allocator.
@@ -856,7 +859,7 @@
  * alloc-free cycle to prevent from reusing the page.
  */
 #define PAGE_FLAGS_CHECK_AT_PREP	\
-	(PAGEFLAGS_MASK & ~__PG_HWPOISON)
+	((PAGEFLAGS_MASK & ~__PG_HWPOISON) | LRU_GEN_MASK | LRU_REFS_MASK)
 
 #define PAGE_FLAGS_PRIVATE				\
 	(1UL << PG_private | 1UL << PG_private_2)
diff --git a/include/linux/page_counter.h b/include/linux/page_counter.h
index 6795913..6c90168 100644
--- a/include/linux/page_counter.h
+++ b/include/linux/page_counter.h
@@ -5,6 +5,7 @@
 #include <linux/atomic.h>
 #include <linux/kernel.h>
 #include <asm/page.h>
+#include <linux/android_vendor.h>
 
 struct page_counter {
 	atomic_long_t usage;
@@ -26,6 +27,7 @@
 	/* legacy */
 	unsigned long watermark;
 	unsigned long failcnt;
+	ANDROID_VENDOR_DATA(1);
 
 	/*
 	 * 'parent' is placed here to be far from 'usage' to reduce
diff --git a/include/linux/page_ext.h b/include/linux/page_ext.h
index fabb2e1..12733d8 100644
--- a/include/linux/page_ext.h
+++ b/include/linux/page_ext.h
@@ -19,6 +19,10 @@
 enum page_ext_flags {
 	PAGE_EXT_OWNER,
 	PAGE_EXT_OWNER_ALLOCATED,
+#if defined(CONFIG_PAGE_PINNER)
+	/* page migration failed */
+	PAGE_EXT_PINNER_MIGRATION_FAILED,
+#endif
 #if defined(CONFIG_PAGE_IDLE_FLAG) && !defined(CONFIG_64BIT)
 	PAGE_EXT_YOUNG,
 	PAGE_EXT_IDLE,
@@ -54,8 +58,9 @@
 {
 }
 #endif
-
 struct page_ext *lookup_page_ext(const struct page *page);
+extern struct page_ext *page_ext_get(struct page *page);
+extern void page_ext_put(struct page_ext *page_ext);
 
 static inline struct page_ext *page_ext_next(struct page_ext *curr)
 {
@@ -71,11 +76,6 @@
 {
 }
 
-static inline struct page_ext *lookup_page_ext(const struct page *page)
-{
-	return NULL;
-}
-
 static inline void page_ext_init(void)
 {
 }
@@ -87,5 +87,14 @@
 static inline void page_ext_init_flatmem(void)
 {
 }
+
+static inline struct page_ext *page_ext_get(struct page *page)
+{
+	return NULL;
+}
+
+static inline void page_ext_put(struct page_ext *page_ext)
+{
+}
 #endif /* CONFIG_PAGE_EXTENSION */
 #endif /* __LINUX_PAGE_EXT_H */
diff --git a/include/linux/page_idle.h b/include/linux/page_idle.h
index d8a6aec..2a21c79 100644
--- a/include/linux/page_idle.h
+++ b/include/linux/page_idle.h
@@ -47,62 +47,77 @@
 
 static inline bool page_is_young(struct page *page)
 {
-	struct page_ext *page_ext = lookup_page_ext(page);
+	struct page_ext *page_ext = page_ext_get(page);
+	bool page_young;
 
 	if (unlikely(!page_ext))
 		return false;
 
-	return test_bit(PAGE_EXT_YOUNG, &page_ext->flags);
+	page_young = test_bit(PAGE_EXT_YOUNG, &page_ext->flags);
+	page_ext_put(page_ext);
+
+	return page_young;
 }
 
 static inline void set_page_young(struct page *page)
 {
-	struct page_ext *page_ext = lookup_page_ext(page);
+	struct page_ext *page_ext = page_ext_get(page);
 
 	if (unlikely(!page_ext))
 		return;
 
 	set_bit(PAGE_EXT_YOUNG, &page_ext->flags);
+	page_ext_put(page_ext);
 }
 
 static inline bool test_and_clear_page_young(struct page *page)
 {
-	struct page_ext *page_ext = lookup_page_ext(page);
+	struct page_ext *page_ext = page_ext_get(page);
+	bool page_young;
 
 	if (unlikely(!page_ext))
 		return false;
 
-	return test_and_clear_bit(PAGE_EXT_YOUNG, &page_ext->flags);
+	page_young = test_and_clear_bit(PAGE_EXT_YOUNG, &page_ext->flags);
+	page_ext_put(page_ext);
+
+	return page_young;
 }
 
 static inline bool page_is_idle(struct page *page)
 {
-	struct page_ext *page_ext = lookup_page_ext(page);
+	struct page_ext *page_ext = page_ext_get(page);
+	bool page_idle;
 
 	if (unlikely(!page_ext))
 		return false;
 
-	return test_bit(PAGE_EXT_IDLE, &page_ext->flags);
+	page_idle =  test_bit(PAGE_EXT_IDLE, &page_ext->flags);
+	page_ext_put(page_ext);
+
+	return page_idle;
 }
 
 static inline void set_page_idle(struct page *page)
 {
-	struct page_ext *page_ext = lookup_page_ext(page);
+	struct page_ext *page_ext = page_ext_get(page);
 
 	if (unlikely(!page_ext))
 		return;
 
 	set_bit(PAGE_EXT_IDLE, &page_ext->flags);
+	page_ext_put(page_ext);
 }
 
 static inline void clear_page_idle(struct page *page)
 {
-	struct page_ext *page_ext = lookup_page_ext(page);
+	struct page_ext *page_ext = page_ext_get(page);
 
 	if (unlikely(!page_ext))
 		return;
 
 	clear_bit(PAGE_EXT_IDLE, &page_ext->flags);
+	page_ext_put(page_ext);
 }
 #endif /* CONFIG_64BIT */
 
diff --git a/include/linux/page_owner.h b/include/linux/page_owner.h
index 719bfe5..aa8d211 100644
--- a/include/linux/page_owner.h
+++ b/include/linux/page_owner.h
@@ -8,6 +8,8 @@
 extern struct static_key_false page_owner_inited;
 extern struct page_ext_operations page_owner_ops;
 
+extern depot_stack_handle_t get_page_owner_handle(struct page_ext *page_ext,
+					unsigned long pfn);
 extern void __reset_page_owner(struct page *page, unsigned int order);
 extern void __set_page_owner(struct page *page,
 			unsigned int order, gfp_t gfp_mask);
diff --git a/include/linux/page_pinner.h b/include/linux/page_pinner.h
new file mode 100644
index 0000000..cb29f5c
--- /dev/null
+++ b/include/linux/page_pinner.h
@@ -0,0 +1,54 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef __LINUX_PAGE_PINNER_H
+#define __LINUX_PAGE_PINNER_H
+
+#include <linux/jump_label.h>
+
+#ifdef CONFIG_PAGE_PINNER
+extern struct static_key_false page_pinner_inited;
+extern struct static_key_true failure_tracking;
+extern struct page_ext_operations page_pinner_ops;
+
+extern void __free_page_pinner(struct page *page, unsigned int order);
+void __page_pinner_failure_detect(struct page *page);
+void __page_pinner_put_page(struct page *page);
+
+static inline void free_page_pinner(struct page *page, unsigned int order)
+{
+	if (static_branch_unlikely(&page_pinner_inited))
+		__free_page_pinner(page, order);
+}
+
+static inline void page_pinner_put_page(struct page *page)
+{
+	if (!static_branch_unlikely(&page_pinner_inited))
+		return;
+
+	if (!static_branch_unlikely(&failure_tracking))
+		return;
+
+	__page_pinner_put_page(page);
+}
+
+static inline void page_pinner_failure_detect(struct page *page)
+{
+	if (!static_branch_unlikely(&page_pinner_inited))
+		return;
+
+	if (!static_branch_unlikely(&failure_tracking))
+		return;
+
+	__page_pinner_failure_detect(page);
+}
+#else
+static inline void free_page_pinner(struct page *page, unsigned int order)
+{
+}
+static inline void page_pinner_put_page(struct page *page)
+{
+}
+static inline void page_pinner_failure_detect(struct page *page)
+{
+}
+#endif /* CONFIG_PAGE_PINNER */
+#endif /* __LINUX_PAGE_PINNER_H */
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h
index 2f7dd14..c033489 100644
--- a/include/linux/pagemap.h
+++ b/include/linux/pagemap.h
@@ -15,6 +15,7 @@
 #include <linux/bitops.h>
 #include <linux/hardirq.h> /* for in_interrupt() */
 #include <linux/hugetlb_inline.h>
+#include <linux/sched/debug.h>
 
 struct pagevec;
 
@@ -310,10 +311,7 @@
 	return __page_cache_alloc(mapping_gfp_mask(x));
 }
 
-static inline gfp_t readahead_gfp_mask(struct address_space *x)
-{
-	return mapping_gfp_mask(x) | __GFP_NORETRY | __GFP_NOWARN;
-}
+gfp_t readahead_gfp_mask(struct address_space *x);
 
 typedef int filler_t(void *, struct page *);
 
@@ -618,7 +616,7 @@
 /*
  * lock_page may only be called if we have the page's inode pinned.
  */
-static inline void lock_page(struct page *page)
+static inline __sched void lock_page(struct page *page)
 {
 	might_sleep();
 	if (!trylock_page(page))
@@ -630,7 +628,7 @@
  * signals.  It returns 0 if it locked the page and -EINTR if it was
  * killed while waiting.
  */
-static inline int lock_page_killable(struct page *page)
+static inline __sched int lock_page_killable(struct page *page)
 {
 	might_sleep();
 	if (!trylock_page(page))
@@ -646,7 +644,7 @@
  * Returns 0 if the page is locked successfully, or -EIOCBQUEUED if the page
  * was already locked and the callback defined in 'wait' was queued.
  */
-static inline int lock_page_async(struct page *page,
+static inline __sched int lock_page_async(struct page *page,
 				  struct wait_page_queue *wait)
 {
 	if (!trylock_page(page))
@@ -661,7 +659,7 @@
  * Return value and mmap_lock implications depend on flags; see
  * __lock_page_or_retry().
  */
-static inline int lock_page_or_retry(struct page *page, struct mm_struct *mm,
+static inline __sched int lock_page_or_retry(struct page *page, struct mm_struct *mm,
 				     unsigned int flags)
 {
 	might_sleep();
@@ -682,13 +680,13 @@
  * ie with increased "page->count" so that the page won't
  * go away during the wait..
  */
-static inline void wait_on_page_locked(struct page *page)
+static inline __sched void wait_on_page_locked(struct page *page)
 {
 	if (PageLocked(page))
 		wait_on_page_bit(compound_head(page), PG_locked);
 }
 
-static inline int wait_on_page_locked_killable(struct page *page)
+static inline __sched int wait_on_page_locked_killable(struct page *page)
 {
 	if (!PageLocked(page))
 		return 0;
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 99dfb8c..c6cc7c2 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -41,6 +41,7 @@
 #include <uapi/linux/pci.h>
 
 #include <linux/pci_ids.h>
+#include <linux/android_kabi.h>
 
 #define PCI_STATUS_ERROR_BITS (PCI_STATUS_DETECTED_PARITY  | \
 			       PCI_STATUS_SIG_SYSTEM_ERROR | \
@@ -510,6 +511,11 @@
 
 	/* These methods index pci_reset_fn_methods[] */
 	u8 reset_methods[PCI_NUM_RESET_METHODS]; /* In priority order */
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 static inline struct pci_dev *pci_physfn(struct pci_dev *dev)
@@ -557,7 +563,6 @@
 	void		*release_data;
 	unsigned int	ignore_reset_delay:1;	/* For entire hierarchy */
 	unsigned int	no_ext_tags:1;		/* No Extended Tags */
-	unsigned int	no_inc_mrrs:1;		/* No Increase MRRS */
 	unsigned int	native_aer:1;		/* OS may use PCIe AER */
 	unsigned int	native_pcie_hotplug:1;	/* OS may use PCIe hotplug */
 	unsigned int	native_shpc_hotplug:1;	/* OS may use SHPC hotplug */
@@ -574,6 +579,10 @@
 			resource_size_t start,
 			resource_size_t size,
 			resource_size_t align);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+
 	unsigned long	private[] ____cacheline_aligned;
 };
 
@@ -658,6 +667,11 @@
 	struct bin_attribute	*legacy_mem;	/* Legacy mem */
 	unsigned int		is_added:1;
 	unsigned int		unsafe_warn:1;	/* warned about RW1C config write */
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 #define to_pci_bus(n)	container_of(n, struct pci_bus, dev)
@@ -756,6 +770,8 @@
 	void __iomem *(*map_bus)(struct pci_bus *bus, unsigned int devfn, int where);
 	int (*read)(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 *val);
 	int (*write)(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 val);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /*
@@ -831,6 +847,8 @@
 
 	/* Device driver may resume normal operations */
 	void (*resume)(struct pci_dev *dev);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 
@@ -902,6 +920,11 @@
 	const struct attribute_group **dev_groups;
 	struct device_driver	driver;
 	struct pci_dynids	dynids;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 #define	to_pci_driver(drv) container_of(drv, struct pci_driver, driver)
diff --git a/include/linux/percpu-rwsem.h b/include/linux/percpu-rwsem.h
index 5fda40f..f8d4e0c 100644
--- a/include/linux/percpu-rwsem.h
+++ b/include/linux/percpu-rwsem.h
@@ -9,11 +9,21 @@
 #include <linux/rcu_sync.h>
 #include <linux/lockdep.h>
 
+void _trace_android_vh_record_pcpu_rwsem_starttime(
+		struct task_struct *tsk, unsigned long settime);
+
 struct percpu_rw_semaphore {
 	struct rcu_sync		rss;
 	unsigned int __percpu	*read_count;
 	struct rcuwait		writer;
-	wait_queue_head_t	waiters;
+	/*
+	 * destroy_list_entry is used during object destruction when waiters
+	 * can't be used, therefore reusing the same space.
+	 */
+	union {
+		wait_queue_head_t	waiters;
+		struct list_head	destroy_list_entry;
+	};
 	atomic_t		block;
 #ifdef CONFIG_DEBUG_LOCK_ALLOC
 	struct lockdep_map	dep_map;
@@ -68,6 +78,7 @@
 	 * bleeding the critical section out.
 	 */
 	preempt_enable();
+	_trace_android_vh_record_pcpu_rwsem_starttime(current, jiffies);
 }
 
 static inline bool percpu_down_read_trylock(struct percpu_rw_semaphore *sem)
@@ -88,8 +99,10 @@
 	 * bleeding the critical section out.
 	 */
 
-	if (ret)
+	if (ret) {
+		_trace_android_vh_record_pcpu_rwsem_starttime(current, jiffies);
 		rwsem_acquire_read(&sem->dep_map, 0, 1, _RET_IP_);
+	}
 
 	return ret;
 }
@@ -118,6 +131,7 @@
 		this_cpu_dec(*sem->read_count);
 		rcuwait_wake_up(&sem->writer);
 	}
+	_trace_android_vh_record_pcpu_rwsem_starttime(current, 0);
 	preempt_enable();
 }
 
@@ -127,8 +141,12 @@
 extern int __percpu_init_rwsem(struct percpu_rw_semaphore *,
 				const char *, struct lock_class_key *);
 
+/* Can't be called in atomic context. */
 extern void percpu_free_rwsem(struct percpu_rw_semaphore *);
 
+/* Invokes percpu_free_rwsem and frees the semaphore from a worker thread. */
+extern void percpu_rwsem_async_destroy(struct percpu_rw_semaphore *sem);
+
 #define percpu_init_rwsem(sem)					\
 ({								\
 	static struct lock_class_key rwsem_key;			\
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 014eb0a..6cce33e 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -723,14 +723,11 @@
 	struct fasync_struct		*fasync;
 
 	/* delayed work for NMIs and such */
-	unsigned int			pending_wakeup;
-	unsigned int			pending_kill;
-	unsigned int			pending_disable;
-	unsigned int			pending_sigtrap;
+	int				pending_wakeup;
+	int				pending_kill;
+	int				pending_disable;
 	unsigned long			pending_addr;	/* SIGTRAP */
-	struct irq_work			pending_irq;
-	struct callback_head		pending_task;
-	unsigned int			pending_work;
+	struct irq_work			pending;
 
 	atomic_t			event_limit;
 
@@ -844,14 +841,6 @@
 #endif
 	void				*task_ctx_data; /* pmu specific data */
 	struct rcu_head			rcu_head;
-
-	/*
-	 * Sum (event->pending_sigtrap + event->pending_work)
-	 *
-	 * The SIGTRAP is targeted at ctx->task, as such it won't do changing
-	 * that until the signal is delivered.
-	 */
-	local_t				nr_pending;
 };
 
 /*
diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
index d468efc..e688955 100644
--- a/include/linux/pgtable.h
+++ b/include/linux/pgtable.h
@@ -212,7 +212,7 @@
 #endif
 
 #ifndef __HAVE_ARCH_PMDP_TEST_AND_CLEAR_YOUNG
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+#if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG)
 static inline int pmdp_test_and_clear_young(struct vm_area_struct *vma,
 					    unsigned long address,
 					    pmd_t *pmdp)
@@ -233,7 +233,7 @@
 	BUILD_BUG();
 	return 0;
 }
-#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
+#endif /* CONFIG_TRANSPARENT_HUGEPAGE || CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG */
 #endif
 
 #ifndef __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH
@@ -259,6 +259,19 @@
 #endif /* CONFIG_TRANSPARENT_HUGEPAGE */
 #endif
 
+#ifndef arch_has_hw_pte_young
+/*
+ * Return whether the accessed bit is supported on the local CPU.
+ *
+ * This stub assumes accessing through an old PTE triggers a page fault.
+ * Architectures that automatically set the access bit should overwrite it.
+ */
+static inline bool arch_has_hw_pte_young(void)
+{
+	return false;
+}
+#endif
+
 #ifndef __HAVE_ARCH_PTEP_GET_AND_CLEAR
 static inline pte_t ptep_get_and_clear(struct mm_struct *mm,
 				       unsigned long address,
diff --git a/include/linux/phy.h b/include/linux/phy.h
index 946ccec..c258a3e 100644
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -27,6 +27,7 @@
 #include <linux/irqreturn.h>
 #include <linux/iopoll.h>
 #include <linux/refcount.h>
+#include <linux/android_kabi.h>
 
 #include <linux/atomic.h>
 
@@ -536,10 +537,6 @@
  * @mdix: Current crossover
  * @mdix_ctrl: User setting of crossover
  * @interrupts: Flag interrupts have been enabled
- * @irq_suspended: Flag indicating PHY is suspended and therefore interrupt
- *                 handling shall be postponed until PHY has resumed
- * @irq_rerun: Flag indicating interrupts occurred while PHY was suspended,
- *             requiring a rerun of the interrupt handler after resume
  * @interface: enum phy_interface_t value
  * @skb: Netlink message for cable diagnostics
  * @nest: Netlink nest used for cable diagnostics
@@ -594,8 +591,6 @@
 
 	/* Interrupts are enabled */
 	unsigned interrupts:1;
-	unsigned irq_suspended:1;
-	unsigned irq_rerun:1;
 
 	enum phy_state state;
 
@@ -676,6 +671,11 @@
 	/* MACsec management functions */
 	const struct macsec_ops *macsec_ops;
 #endif
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 static inline struct phy_device *to_phy_device(const struct device *dev)
@@ -903,6 +903,9 @@
 	int (*get_sqi)(struct phy_device *dev);
 	/** @get_sqi_max: Get the maximum signal quality indication */
 	int (*get_sqi_max)(struct phy_device *dev);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 #define to_phy_driver(d) container_of(to_mdio_common_driver(d),		\
 				      struct phy_driver, mdiodrv)
diff --git a/include/linux/phylink.h b/include/linux/phylink.h
index b306159..2372911 100644
--- a/include/linux/phylink.h
+++ b/include/linux/phylink.h
@@ -64,7 +64,6 @@
  * @pcs_poll: MAC PCS cannot provide link change interrupt
  * @poll_fixed_state: if true, starts link_poll,
  *		      if MAC link is at %MLO_AN_FIXED mode.
- * @mac_managed_pm: if true, indicate the MAC driver is responsible for PHY PM.
  * @ovr_an_inband: if true, override PCS to MLO_AN_INBAND
  * @get_fixed_state: callback to execute to determine the fixed link state,
  *		     if MAC link is at %MLO_AN_FIXED mode.
@@ -74,7 +73,6 @@
 	enum phylink_op_type type;
 	bool pcs_poll;
 	bool poll_fixed_state;
-	bool mac_managed_pm;
 	bool ovr_an_inband;
 	void (*get_fixed_state)(struct phylink_config *config,
 				struct phylink_link_state *state);
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
index d15190b..9dff70f 100644
--- a/include/linux/pipe_fs_i.h
+++ b/include/linux/pipe_fs_i.h
@@ -71,7 +71,7 @@
 	unsigned int files;
 	unsigned int r_counter;
 	unsigned int w_counter;
-	bool poll_usage;
+	unsigned int poll_usage;
 	struct page *tmp_page;
 	struct fasync_struct *fasync_readers;
 	struct fasync_struct *fasync_writers;
diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h
index 8aefdc0..dcc1744 100644
--- a/include/linux/platform_device.h
+++ b/include/linux/platform_device.h
@@ -11,6 +11,7 @@
 #define _PLATFORM_DEVICE_H_
 
 #include <linux/device.h>
+#include <linux/android_kabi.h>
 
 #define PLATFORM_DEVID_NONE	(-1)
 #define PLATFORM_DEVID_AUTO	(-2)
@@ -38,6 +39,9 @@
 
 	/* arch specific additions */
 	struct pdev_archdata	archdata;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 #define platform_get_device_id(pdev)	((pdev)->id_entry)
@@ -100,6 +104,8 @@
 		u64 dma_mask;
 
 		const struct property_entry *properties;
+
+		ANDROID_KABI_RESERVE(1);
 };
 extern struct platform_device *platform_device_register_full(
 		const struct platform_device_info *pdevinfo);
@@ -203,24 +209,15 @@
 
 struct platform_driver {
 	int (*probe)(struct platform_device *);
-
-	/*
-	 * Traditionally the remove callback returned an int which however is
-	 * ignored by the driver core. This led to wrong expectations by driver
-	 * authors who thought returning an error code was a valid error
-	 * handling strategy. To convert to a callback returning void, new
-	 * drivers should implement .remove_new() until the conversion it done
-	 * that eventually makes .remove() return void.
-	 */
 	int (*remove)(struct platform_device *);
-	void (*remove_new)(struct platform_device *);
-
 	void (*shutdown)(struct platform_device *);
 	int (*suspend)(struct platform_device *, pm_message_t state);
 	int (*resume)(struct platform_device *);
 	struct device_driver driver;
 	const struct platform_device_id *id_table;
 	bool prevent_deferred_probe;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 #define to_platform_driver(drv)	(container_of((drv), struct platform_driver, \
diff --git a/include/linux/pm.h b/include/linux/pm.h
index 1d8209c..81b017b 100644
--- a/include/linux/pm.h
+++ b/include/linux/pm.h
@@ -15,6 +15,7 @@
 #include <linux/timer.h>
 #include <linux/hrtimer.h>
 #include <linux/completion.h>
+#include <linux/android_kabi.h>
 
 /*
  * Callbacks for platform drivers to implement.
@@ -298,6 +299,8 @@
 	int (*runtime_suspend)(struct device *dev);
 	int (*runtime_resume)(struct device *dev);
 	int (*runtime_idle)(struct device *dev);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 #ifdef CONFIG_PM_SLEEP
@@ -622,6 +625,9 @@
 	struct pm_subsys_data	*subsys_data;  /* Owned by the subsystem. */
 	void (*set_latency_tolerance)(struct device *, s32);
 	struct dev_pm_qos	*qos;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 extern int dev_pm_get_subsys_data(struct device *dev);
@@ -648,6 +654,8 @@
 	int (*activate)(struct device *dev);
 	void (*sync)(struct device *dev);
 	void (*dismiss)(struct device *dev);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /*
diff --git a/include/linux/pm_qos.h b/include/linux/pm_qos.h
index 4a69d4a..200841b9 100644
--- a/include/linux/pm_qos.h
+++ b/include/linux/pm_qos.h
@@ -93,6 +93,7 @@
 	enum freq_qos_req_type type;
 	struct plist_node pnode;
 	struct freq_constraints *qos;
+	ANDROID_OEM_DATA_ARRAY(1, 2);
 };
 
 
diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h
index 0735b89..7f78c8b 100644
--- a/include/linux/power_supply.h
+++ b/include/linux/power_supply.h
@@ -17,6 +17,7 @@
 #include <linux/leds.h>
 #include <linux/spinlock.h>
 #include <linux/notifier.h>
+#include <linux/android_kabi.h>
 
 /*
  * All voltages, currents, charges, energies, time and temperatures in uV,
@@ -49,6 +50,12 @@
 	POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE,	/* dynamically adjusted speed */
 	POWER_SUPPLY_CHARGE_TYPE_CUSTOM,	/* use CHARGE_CONTROL_* props */
 	POWER_SUPPLY_CHARGE_TYPE_LONGLIFE,	/* slow speed, longer life */
+
+	/*
+	 * force to 50 to minimize the chances of userspace binary
+	 * incompatibility on newer upstream kernels
+	 */
+	POWER_SUPPLY_CHARGE_TYPE_TAPER_EXT = 50,	/* charging in CV phase */
 };
 
 enum {
@@ -227,6 +234,8 @@
 
 	char **supplied_to;
 	size_t num_supplicants;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /* Description of power supply */
@@ -268,6 +277,8 @@
 	bool no_thermal;
 	/* For APM emulation, think legacy userspace. */
 	int use_for_apm;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct power_supply {
@@ -309,6 +320,8 @@
 	struct led_trigger *charging_blink_full_solid_trig;
 	char *charging_blink_full_solid_trig_name;
 #endif
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /*
@@ -377,6 +390,8 @@
 	int ocv_table_size[POWER_SUPPLY_OCV_TEMP_MAX];
 	struct power_supply_resistance_temp_table *resist_table;
 	int resist_table_size;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 extern struct atomic_notifier_head power_supply_notifier;
@@ -393,12 +408,22 @@
 #ifdef CONFIG_OF
 extern struct power_supply *power_supply_get_by_phandle(struct device_node *np,
 							const char *property);
+extern int power_supply_get_by_phandle_array(struct device_node *np,
+					     const char *property,
+					     struct power_supply **psy,
+					     ssize_t size);
 extern struct power_supply *devm_power_supply_get_by_phandle(
 				    struct device *dev, const char *property);
 #else /* !CONFIG_OF */
 static inline struct power_supply *
 power_supply_get_by_phandle(struct device_node *np, const char *property)
 { return NULL; }
+static inline int
+power_supply_get_by_phandle_array(struct device_node *np,
+				  const char *property,
+				  struct power_supply **psy,
+				  int size)
+{ return 0; }
 static inline struct power_supply *
 devm_power_supply_get_by_phandle(struct device *dev, const char *property)
 { return NULL; }
diff --git a/include/linux/printk.h b/include/linux/printk.h
index 9497f6b..a0deaac 100644
--- a/include/linux/printk.h
+++ b/include/linux/printk.h
@@ -6,7 +6,6 @@
 #include <linux/init.h>
 #include <linux/kern_levels.h>
 #include <linux/linkage.h>
-#include <linux/cache.h>
 #include <linux/ratelimit_types.h>
 #include <linux/once_lite.h>
 
diff --git a/include/linux/psi_types.h b/include/linux/psi_types.h
index 6f19000..2a4dea8 100644
--- a/include/linux/psi_types.h
+++ b/include/linux/psi_types.h
@@ -142,6 +142,11 @@
 	u64 last_event_time;
 };
 
+enum poll_wakeup_bits {
+	POLL_WAKEUP	= 0,
+	POLL_SCHEDULED	= 1,
+};
+
 struct psi_group {
 	/* Protects data used by the aggregator */
 	struct mutex avgs_lock;
diff --git a/include/linux/pwm.h b/include/linux/pwm.h
index c7bfa64..7af7cf66 100644
--- a/include/linux/pwm.h
+++ b/include/linux/pwm.h
@@ -5,6 +5,7 @@
 #include <linux/err.h>
 #include <linux/mutex.h>
 #include <linux/of.h>
+#include <linux/android_kabi.h>
 
 struct pwm_capture;
 struct seq_file;
@@ -90,6 +91,8 @@
 	struct pwm_args args;
 	struct pwm_state state;
 	struct pwm_state last;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -284,6 +287,8 @@
 			    enum pwm_polarity polarity);
 	int (*enable)(struct pwm_chip *chip, struct pwm_device *pwm);
 	void (*disable)(struct pwm_chip *chip, struct pwm_device *pwm);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -310,6 +315,8 @@
 	/* only used internally by the PWM framework */
 	struct list_head list;
 	struct pwm_device *pwms;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
diff --git a/include/linux/quota.h b/include/linux/quota.h
index 18ebd39..6d0e5ee 100644
--- a/include/linux/quota.h
+++ b/include/linux/quota.h
@@ -316,6 +316,9 @@
 	int (*commit_dqblk)(struct dquot *dquot);	/* Write structure for one user */
 	int (*release_dqblk)(struct dquot *dquot);	/* Called when last reference to dquot is being dropped */
 	int (*get_next_id)(struct super_block *sb, struct kqid *qid);	/* Get next ID with existing structure in the quota file */
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 /* Operations working with dquots */
@@ -335,6 +338,9 @@
 	int (*get_inode_usage) (struct inode *, qsize_t *);
 	/* Get next ID with active quota structure */
 	int (*get_next_id) (struct super_block *sb, struct kqid *qid);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 struct path;
@@ -438,6 +444,9 @@
 	int (*set_dqblk)(struct super_block *, struct kqid, struct qc_dqblk *);
 	int (*get_state)(struct super_block *, struct qc_state *);
 	int (*rm_xquota)(struct super_block *, unsigned int);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 struct quota_format_type {
diff --git a/include/linux/random.h b/include/linux/random.h
index ed75fb2..318ad38 100644
--- a/include/linux/random.h
+++ b/include/linux/random.h
@@ -12,7 +12,7 @@
 
 struct notifier_block;
 
-void add_device_randomness(const void *buf, size_t len);
+void add_device_randomness(const void *buf, unsigned int len);
 void __init add_bootloader_randomness(const void *buf, size_t len);
 void add_input_randomness(unsigned int type, unsigned int code,
 			  unsigned int value) __latent_entropy;
@@ -28,7 +28,7 @@
 #endif
 }
 
-void get_random_bytes(void *buf, size_t len);
+void get_random_bytes(void *buf, int len);
 size_t __must_check get_random_bytes_arch(void *buf, size_t len);
 u32 get_random_u32(void);
 u64 get_random_u64(void);
@@ -138,4 +138,17 @@
 extern const struct file_operations random_fops, urandom_fops;
 #endif
 
+/*
+ * Android KABI fixups
+ * Added back the following structure and calls to preserve the ABI for
+ * out-of-tree drivers that were using them.
+ */
+struct random_ready_callback {
+	struct list_head list;
+	void (*func)(struct random_ready_callback *rdy);
+	struct module *owner;
+};
+int add_random_ready_callback(struct random_ready_callback *rdy);
+void del_random_ready_callback(struct random_ready_callback *rdy);
+
 #endif /* _LINUX_RANDOM_H */
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
index 13bddb8..aed84b1 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@ -83,7 +83,7 @@
 
 /* Internal to kernel */
 void rcu_init(void);
-extern int rcu_scheduler_active __read_mostly;
+extern int rcu_scheduler_active;
 void rcu_sched_clock_irq(int user);
 void rcu_report_dead(unsigned int cpu);
 void rcutree_migrate_callbacks(int cpu);
diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h
index 53209d6..76665db 100644
--- a/include/linux/rcutree.h
+++ b/include/linux/rcutree.h
@@ -62,7 +62,7 @@
 void exit_rcu(void);
 
 void rcu_scheduler_starting(void);
-extern int rcu_scheduler_active __read_mostly;
+extern int rcu_scheduler_active;
 void rcu_end_inkernel_boot(void);
 bool rcu_inkernel_boot_has_ended(void);
 bool rcu_is_watching(void);
diff --git a/include/linux/regmap.h b/include/linux/regmap.h
index e3c9a25..2b49ce6 100644
--- a/include/linux/regmap.h
+++ b/include/linux/regmap.h
@@ -19,6 +19,7 @@
 #include <linux/lockdep.h>
 #include <linux/iopoll.h>
 #include <linux/fwnode.h>
+#include <linux/android_kabi.h>
 
 struct module;
 struct clk;
@@ -290,6 +291,11 @@
  *		  read operation on a bus such as SPI, I2C, etc. Most of the
  *		  devices do not need this.
  * @reg_write:	  Same as above for writing.
+ * @reg_update_bits: Optional callback that if filled will be used to perform
+ *		     all the update_bits(rmw) operation. Should only be provided
+ *		     if the function require special handling with lock and reg
+ *		     handling and the operation cannot be represented as a simple
+ *		     update_bits operation on a bus such as SPI, I2C, etc.
  * @fast_io:	  Register IO is fast. Use a spinlock instead of a mutex
  *	     	  to perform locking. This field is ignored if custom lock/unlock
  *	     	  functions are used (see fields lock/unlock of struct regmap_config).
@@ -372,6 +378,8 @@
 
 	int (*reg_read)(void *context, unsigned int reg, unsigned int *val);
 	int (*reg_write)(void *context, unsigned int reg, unsigned int val);
+	int (*reg_update_bits)(void *context, unsigned int reg,
+			       unsigned int mask, unsigned int val);
 
 	bool fast_io;
 
@@ -409,6 +417,8 @@
 	unsigned int hwlock_mode;
 
 	bool can_sleep;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -446,6 +456,8 @@
 	/* Data window (per each page) */
 	unsigned int window_start;
 	unsigned int window_len;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct regmap_async;
@@ -524,6 +536,8 @@
 	size_t max_raw_read;
 	size_t max_raw_write;
 	bool free_on_exit;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /*
diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h
index bd7a73d..2a6ca85 100644
--- a/include/linux/regulator/driver.h
+++ b/include/linux/regulator/driver.h
@@ -17,6 +17,7 @@
 #include <linux/notifier.h>
 #include <linux/regulator/consumer.h>
 #include <linux/ww_mutex.h>
+#include <linux/android_kabi.h>
 
 struct gpio_desc;
 struct regmap;
@@ -235,6 +236,8 @@
 	int (*resume)(struct regulator_dev *rdev);
 
 	int (*set_pull_down) (struct regulator_dev *);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /*
@@ -424,6 +427,8 @@
 	unsigned int poll_enabled_time;
 
 	unsigned int (*of_map_mode)(unsigned int mode);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -642,6 +647,8 @@
 	int cached_err;
 	bool use_cached_err;
 	spinlock_t err_lock;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct regulator_dev *
diff --git a/include/linux/remoteproc.h b/include/linux/remoteproc.h
index 83c09ac..49a8e24 100644
--- a/include/linux/remoteproc.h
+++ b/include/linux/remoteproc.h
@@ -656,6 +656,7 @@
 int devm_rproc_add(struct device *dev, struct rproc *rproc);
 
 void rproc_add_carveout(struct rproc *rproc, struct rproc_mem_entry *mem);
+void rproc_del_carveout(struct rproc *rproc, struct rproc_mem_entry *mem);
 
 struct rproc_mem_entry *
 rproc_mem_entry_init(struct device *dev,
@@ -663,6 +664,7 @@
 		     int (*alloc)(struct rproc *, struct rproc_mem_entry *),
 		     int (*release)(struct rproc *, struct rproc_mem_entry *),
 		     const char *name, ...);
+void rproc_mem_entry_free(struct rproc_mem_entry *mem);
 
 struct rproc_mem_entry *
 rproc_of_resm_mem_entry_init(struct device *dev, u32 of_resm_idx, size_t len,
@@ -673,6 +675,7 @@
 int rproc_detach(struct rproc *rproc);
 int rproc_set_firmware(struct rproc *rproc, const char *fw_name);
 void rproc_report_crash(struct rproc *rproc, enum rproc_crash_type type);
+void *rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem);
 void rproc_coredump_using_sections(struct rproc *rproc);
 int rproc_coredump_add_segment(struct rproc *rproc, dma_addr_t da, size_t size);
 int rproc_coredump_add_custom_segment(struct rproc *rproc,
diff --git a/include/linux/rmap.h b/include/linux/rmap.h
index c29d9c1..b44dd56 100644
--- a/include/linux/rmap.h
+++ b/include/linux/rmap.h
@@ -11,6 +11,10 @@
 #include <linux/rwsem.h>
 #include <linux/memcontrol.h>
 #include <linux/highmem.h>
+#ifndef __GENKSYMS__
+#define PROTECT_TRACE_INCLUDE_PATH
+#include <trace/hooks/mm.h>
+#endif
 
 /*
  * The anon_vma heads a list of private "related" vmas, to scan if
@@ -38,16 +42,7 @@
 	 */
 	atomic_t refcount;
 
-	/*
-	 * Count of child anon_vmas. Equals to the count of all anon_vmas that
-	 * have ->parent pointing to this one, including itself.
-	 *
-	 * This counter is used for making decision about reusing anon_vma
-	 * instead of forking new one. See comments in function anon_vma_clone.
-	 */
-	unsigned long num_children;
-	/* Count of VMAs whose ->anon_vma pointer points to this object. */
-	unsigned long num_active_vmas;
+	unsigned degree;		/* ANDROID: KABI preservation, DO NOT USE! */
 
 	struct anon_vma *parent;	/* Parent of this anon_vma */
 
@@ -62,6 +57,25 @@
 
 	/* Interval tree of private "related" vmas */
 	struct rb_root_cached rb_root;
+
+	/*
+	 * ANDROID: KABI preservation, it's safe to put these at the end of this structure as it's
+	 * only passed by a pointer everywhere, the size and internal structures are local to the
+	 * core kernel.
+	 */
+#ifndef __GENKSYMS__
+	/*
+	 * Count of child anon_vmas. Equals to the count of all anon_vmas that
+	 * have ->parent pointing to this one, including itself.
+	 *
+	 * This counter is used for making decision about reusing anon_vma
+	 * instead of forking new one. See comments in function anon_vma_clone.
+	 */
+	unsigned long num_children;
+	/* Count of VMAs whose ->anon_vma pointer points to this object. */
+	unsigned long num_active_vmas;
+#endif
+
 };
 
 /*
@@ -129,6 +143,11 @@
 	down_read(&anon_vma->root->rwsem);
 }
 
+static inline int anon_vma_trylock_read(struct anon_vma *anon_vma)
+{
+	return down_read_trylock(&anon_vma->root->rwsem);
+}
+
 static inline void anon_vma_unlock_read(struct anon_vma *anon_vma)
 {
 	up_read(&anon_vma->root->rwsem);
@@ -185,7 +204,12 @@
 
 static inline void page_dup_rmap(struct page *page, bool compound)
 {
-	atomic_inc(compound ? compound_mapcount_ptr(page) : &page->_mapcount);
+	bool success = false;
+
+	if (!compound)
+		trace_android_vh_update_page_mapcount(page, true, compound, NULL, &success);
+	if (!success)
+		atomic_inc(compound ? compound_mapcount_ptr(page) : &page->_mapcount);
 }
 
 /*
@@ -248,17 +272,14 @@
 
 void remove_migration_ptes(struct page *old, struct page *new, bool locked);
 
-/*
- * Called by memory-failure.c to kill processes.
- */
-struct anon_vma *page_lock_anon_vma_read(struct page *page);
-void page_unlock_anon_vma_read(struct anon_vma *anon_vma);
 int page_mapped_in_vma(struct page *page, struct vm_area_struct *vma);
 
 /*
  * rmap_walk_control: To control rmap traversing for specific needs
  *
  * arg: passed to rmap_one() and invalid_vma()
+ * try_lock: bail out if the rmap lock is contended
+ * contended: indicate the rmap traversal bailed out due to lock contention
  * rmap_one: executed on each vma where page is mapped
  * done: for checking traversing termination condition
  * anon_lock: for getting anon_lock by optimized way rather than default
@@ -266,6 +287,8 @@
  */
 struct rmap_walk_control {
 	void *arg;
+	bool try_lock;
+	bool contended;
 	/*
 	 * Return false if page table scanning in rmap_walk should be stopped.
 	 * Otherwise, return true.
@@ -273,13 +296,21 @@
 	bool (*rmap_one)(struct page *page, struct vm_area_struct *vma,
 					unsigned long addr, void *arg);
 	int (*done)(struct page *page);
-	struct anon_vma *(*anon_lock)(struct page *page);
+	struct anon_vma *(*anon_lock)(struct page *page,
+				      struct rmap_walk_control *rwc);
 	bool (*invalid_vma)(struct vm_area_struct *vma, void *arg);
 };
 
 void rmap_walk(struct page *page, struct rmap_walk_control *rwc);
 void rmap_walk_locked(struct page *page, struct rmap_walk_control *rwc);
 
+/*
+ * Called by memory-failure.c to kill processes.
+ */
+struct anon_vma *page_lock_anon_vma_read(struct page *page,
+					 struct rmap_walk_control *rwc);
+void page_unlock_anon_vma_read(struct anon_vma *anon_vma);
+
 #else	/* !CONFIG_MMU */
 
 #define anon_vma_init()		do {} while (0)
diff --git a/include/linux/rpmsg.h b/include/linux/rpmsg.h
index a8dcf8a..e301b22 100644
--- a/include/linux/rpmsg.h
+++ b/include/linux/rpmsg.h
@@ -2,6 +2,7 @@
 /*
  * Remote processor messaging
  *
+ * Copyright (c) 2020 The Linux Foundation.
  * Copyright (C) 2011 Texas Instruments, Inc.
  * Copyright (C) 2011 Google, Inc.
  * All rights reserved.
@@ -61,7 +62,20 @@
 	const struct rpmsg_device_ops *ops;
 };
 
+/**
+ * rpmsg rx callback return definitions
+ * @RPMSG_HANDLED: rpmsg user is done processing data, framework can free the
+ *                 resources related to the buffer
+ * @RPMSG_DEFER:   rpmsg user is not done processing data, framework will hold
+ *                 onto resources related to the buffer until rpmsg_rx_done is
+ *                 called. User should check their endpoint to see if rx_done
+ *                 is a supported operation.
+ */
+#define RPMSG_HANDLED	0
+#define RPMSG_DEFER	1
+
 typedef int (*rpmsg_rx_cb_t)(struct rpmsg_device *, void *, int, void *, u32);
+typedef int (*rpmsg_rx_sig_t)(struct rpmsg_device *, void *, u32, u32);
 
 /**
  * struct rpmsg_endpoint - binds a local rpmsg address to its user
@@ -69,6 +83,8 @@
  * @refcount: when this drops to zero, the ept is deallocated
  * @cb: rx callback handler
  * @cb_lock: must be taken before accessing/changing @cb
+ * @sig_cb: rx serial signal handler
+ * @rx_done: if set, rpmsg endpoint supports rpmsg_rx_done
  * @addr: local rpmsg address
  * @priv: private data for the driver's use
  *
@@ -91,6 +107,8 @@
 	struct kref refcount;
 	rpmsg_rx_cb_t cb;
 	struct mutex cb_lock;
+	rpmsg_rx_sig_t sig_cb;
+	bool rx_done;
 	u32 addr;
 	void *priv;
 
@@ -104,6 +122,7 @@
  * @probe: invoked when a matching rpmsg channel (i.e. device) is found
  * @remove: invoked when the rpmsg channel is removed
  * @callback: invoked when an inbound message is received on the channel
+ * @signals: invoked when a serial signal change is received on the channel
  */
 struct rpmsg_driver {
 	struct device_driver drv;
@@ -111,6 +130,8 @@
 	int (*probe)(struct rpmsg_device *dev);
 	void (*remove)(struct rpmsg_device *dev);
 	int (*callback)(struct rpmsg_device *, void *, int, void *, u32);
+	int (*signals)(struct rpmsg_device *rpdev,
+		       void *priv, u32 old, u32 new);
 };
 
 static inline u16 rpmsg16_to_cpu(struct rpmsg_device *rpdev, __rpmsg16 val)
@@ -186,6 +207,11 @@
 __poll_t rpmsg_poll(struct rpmsg_endpoint *ept, struct file *filp,
 			poll_table *wait);
 
+int rpmsg_get_signals(struct rpmsg_endpoint *ept);
+int rpmsg_set_signals(struct rpmsg_endpoint *ept, u32 set, u32 clear);
+
+int rpmsg_rx_done(struct rpmsg_endpoint *ept, void *data);
+
 #else
 
 static inline int rpmsg_register_device(struct rpmsg_device *rpdev)
@@ -296,6 +322,31 @@
 	return 0;
 }
 
+static inline int rpmsg_get_signals(struct rpmsg_endpoint *ept)
+{
+	/* This shouldn't be possible */
+	WARN_ON(1);
+
+	return -ENXIO;
+}
+
+static inline int rpmsg_set_signals(struct rpmsg_endpoint *ept,
+				    u32 set, u32 clear)
+{
+	/* This shouldn't be possible */
+	WARN_ON(1);
+
+	return -ENXIO;
+}
+
+static inline int rpmsg_rx_done(struct rpmsg_endpoint *ept, void *data)
+{
+	/* This shouldn't be possible */
+	WARN_ON(1);
+
+	return -ENXIO;
+}
+
 #endif /* IS_ENABLED(CONFIG_RPMSG) */
 
 /* use a macro to avoid include chaining to get THIS_MODULE */
diff --git a/include/linux/rtc.h b/include/linux/rtc.h
index bd611e2..3c384fe 100644
--- a/include/linux/rtc.h
+++ b/include/linux/rtc.h
@@ -16,6 +16,7 @@
 #include <linux/types.h>
 #include <linux/interrupt.h>
 #include <linux/nvmem-provider.h>
+#include <linux/android_kabi.h>
 #include <uapi/linux/rtc.h>
 
 extern int rtc_month_days(unsigned int month, unsigned int year);
@@ -66,6 +67,8 @@
 	int (*alarm_irq_enable)(struct device *, unsigned int enabled);
 	int (*read_offset)(struct device *, long *offset);
 	int (*set_offset)(struct device *, long offset);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct rtc_device;
@@ -159,6 +162,8 @@
 	unsigned int uie_task_active:1;
 	unsigned int uie_timer_active:1;
 #endif
+
+	ANDROID_KABI_RESERVE(1);
 };
 #define to_rtc_device(d) container_of(d, struct rtc_device, dev)
 
diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h
index 352c612..c206146 100644
--- a/include/linux/rwsem.h
+++ b/include/linux/rwsem.h
@@ -32,6 +32,7 @@
 #ifdef CONFIG_RWSEM_SPIN_ON_OWNER
 #include <linux/osq_lock.h>
 #endif
+#include <linux/android_vendor.h>
 
 /*
  * For an uncontended rwsem, count and owner are the only fields a task
@@ -64,6 +65,24 @@
 #ifdef CONFIG_DEBUG_LOCK_ALLOC
 	struct lockdep_map	dep_map;
 #endif
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_OEM_DATA_ARRAY(1, 2);
+};
+
+enum rwsem_waiter_type {
+	RWSEM_WAITING_FOR_WRITE,
+	RWSEM_WAITING_FOR_READ
+};
+
+struct rwsem_waiter {
+	struct list_head list;
+	struct task_struct *task;
+	enum rwsem_waiter_type type;
+	unsigned long timeout;
+	unsigned long last_rowner;
+
+	/* Writer only, not initialized in reader */
+	bool handoff_set;
 };
 
 /* In all implementations count != 0 means locked */
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 7bfc2b4..14d1a70 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -34,7 +34,9 @@
 #include <linux/rseq.h>
 #include <linux/seqlock.h>
 #include <linux/kcsan.h>
+#include <linux/android_vendor.h>
 #include <asm/kmap_size.h>
+#include <linux/android_kabi.h>
 
 /* task_struct member predeclarations (sorted alphabetically): */
 struct audit_context;
@@ -297,6 +299,8 @@
 extern void io_schedule_finish(int token);
 extern long io_schedule_timeout(long timeout);
 extern void io_schedule(void);
+extern struct task_struct *pick_migrate_task(struct rq *rq);
+extern int select_fallback_rq(int cpu, struct task_struct *p);
 
 /**
  * struct prev_cputime - snapshot of system and user cputime
@@ -522,7 +526,7 @@
 	u64				nr_wakeups_passive;
 	u64				nr_wakeups_idle;
 #endif
-} ____cacheline_aligned;
+};
 
 struct sched_entity {
 	/* For load-balancing: */
@@ -538,6 +542,8 @@
 
 	u64				nr_migrations;
 
+	struct sched_statistics		statistics;
+
 #ifdef CONFIG_FAIR_GROUP_SCHED
 	int				depth;
 	struct sched_entity		*parent;
@@ -558,6 +564,11 @@
 	 */
 	struct sched_avg		avg;
 #endif
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 struct sched_rt_entity {
@@ -576,6 +587,11 @@
 	/* rq "owned" by this entity/group: */
 	struct rt_rq			*my_q;
 #endif
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 } __randomize_layout;
 
 struct sched_dl_entity {
@@ -801,8 +817,6 @@
 	struct uclamp_se		uclamp[UCLAMP_CNT];
 #endif
 
-	struct sched_statistics         stats;
-
 #ifdef CONFIG_PREEMPT_NOTIFIERS
 	/* List of struct preempt_notifier: */
 	struct hlist_head		preempt_notifiers;
@@ -911,6 +925,10 @@
 #ifdef CONFIG_MEMCG
 	unsigned			in_user_fault:1;
 #endif
+#ifdef CONFIG_LRU_GEN
+	/* whether the LRU algorithm may apply to this access */
+	unsigned			in_lru_fault:1;
+#endif
 #ifdef CONFIG_COMPAT_BRK
 	unsigned			brk_randomized:1;
 #endif
@@ -933,7 +951,7 @@
 #endif
 #ifdef CONFIG_EVENTFD
 	/* Recursion prevention for eventfd_signal() */
-	unsigned			in_eventfd:1;
+	unsigned			in_eventfd_signal:1;
 #endif
 
 	unsigned long			atomic_flags; /* Flags requiring atomic access. */
@@ -999,6 +1017,10 @@
 	u64				stimescaled;
 #endif
 	u64				gtime;
+#ifdef CONFIG_CPU_FREQ_TIMES
+	u64				*time_in_state;
+	unsigned int			max_state;
+#endif
 	struct prev_cputime		prev_cputime;
 #ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN
 	struct vtime			vtime;
@@ -1111,6 +1133,7 @@
 	raw_spinlock_t			pi_lock;
 
 	struct wake_q_node		wake_q;
+	int				wake_q_count;
 
 #ifdef CONFIG_RT_MUTEXES
 	/* PI waiters blocked on a rt_mutex held by this task: */
@@ -1345,9 +1368,7 @@
 #endif
 #endif
 
-#if IS_ENABLED(CONFIG_KUNIT)
 	struct kunit			*kunit_test;
-#endif
 
 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
 	/* Index of current stored address in ret_stack: */
@@ -1474,6 +1495,8 @@
 	struct callback_head		mce_kill_me;
 	int				mce_count;
 #endif
+	ANDROID_VENDOR_DATA_ARRAY(1, 64);
+	ANDROID_OEM_DATA_ARRAY(1, 6);
 
 #ifdef CONFIG_KRETPROBES
 	struct llist_head               kretprobe_instances;
@@ -1489,6 +1512,15 @@
 	struct callback_head		l1d_flush_kill;
 #endif
 
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
+	ANDROID_KABI_RESERVE(5);
+	ANDROID_KABI_RESERVE(6);
+	ANDROID_KABI_RESERVE(7);
+	ANDROID_KABI_RESERVE(8);
+
 	/*
 	 * New fields for task_struct should be added above here, so that
 	 * they are included in the randomized portion of task_struct.
@@ -1800,6 +1832,16 @@
 extern int task_can_attach(struct task_struct *p);
 extern int dl_bw_alloc(int cpu, u64 dl_bw);
 extern void dl_bw_free(int cpu, u64 dl_bw);
+
+#ifdef CONFIG_RT_SOFTINT_OPTIMIZATION
+extern bool cpupri_check_rt(void);
+#else
+static inline bool cpupri_check_rt(void)
+{
+	return false;
+}
+#endif
+
 #ifdef CONFIG_SMP
 extern void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask);
 extern int set_cpus_allowed_ptr(struct task_struct *p, const struct cpumask *new_mask);
diff --git a/include/linux/sched/signal.h b/include/linux/sched/signal.h
index 5f0e840..688b44e 100644
--- a/include/linux/sched/signal.h
+++ b/include/linux/sched/signal.h
@@ -12,6 +12,7 @@
 #include <linux/posix-timers.h>
 #include <linux/mm_types.h>
 #include <asm/ptrace.h>
+#include <linux/android_kabi.h>
 
 /*
  * Types defining task->signal and task->sighand and APIs using them:
@@ -235,6 +236,11 @@
 						 * and may have inconsistent
 						 * permissions.
 						 */
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 } __randomize_layout;
 
 /*
@@ -318,7 +324,7 @@
 
 int force_sig_bnderr(void __user *addr, void __user *lower, void __user *upper);
 int force_sig_pkuerr(void __user *addr, u32 pkey);
-int send_sig_perf(void __user *addr, u32 type, u64 sig_data);
+int force_sig_perf(void __user *addr, u32 type, u64 sig_data);
 
 int force_sig_ptrace_errno_trap(int errno, void __user *addr);
 int force_sig_fault_trapno(int sig, int code, void __user *addr, int trapno);
diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h
index 304f431..d5ebdb6 100644
--- a/include/linux/sched/sysctl.h
+++ b/include/linux/sched/sysctl.h
@@ -75,6 +75,13 @@
 int sysctl_schedstats(struct ctl_table *table, int write, void *buffer,
 		size_t *lenp, loff_t *ppos);
 
+#ifdef CONFIG_SMP
+extern unsigned int sysctl_sched_pelt_multiplier;
+
+int sched_pelt_multiplier(struct ctl_table *table, int write, void *buffer,
+		size_t *lenp, loff_t *ppos);
+#endif
+
 #if defined(CONFIG_ENERGY_MODEL) && defined(CONFIG_CPU_FREQ_GOV_SCHEDUTIL)
 extern unsigned int sysctl_sched_energy_aware;
 int sched_energy_aware_handler(struct ctl_table *table, int write,
diff --git a/include/linux/sched/topology.h b/include/linux/sched/topology.h
index 63a04a6..775e77e 100644
--- a/include/linux/sched/topology.h
+++ b/include/linux/sched/topology.h
@@ -3,6 +3,8 @@
 #define _LINUX_SCHED_TOPOLOGY_H
 
 #include <linux/topology.h>
+#include <linux/android_kabi.h>
+#include <linux/android_vendor.h>
 
 #include <linux/sched/idle.h>
 
@@ -74,7 +76,8 @@
 	atomic_t	ref;
 	atomic_t	nr_busy_cpus;
 	int		has_idle_cores;
-	int		nr_idle_scan;
+
+	ANDROID_VENDOR_DATA(1);
 };
 
 struct sched_domain {
@@ -144,6 +147,10 @@
 	struct sched_domain_shared *shared;
 
 	unsigned int span_weight;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+
 	/*
 	 * Span of all CPUs in this domain.
 	 *
diff --git a/include/linux/sched/user.h b/include/linux/sched/user.h
index 00ed419..037ebc0 100644
--- a/include/linux/sched/user.h
+++ b/include/linux/sched/user.h
@@ -7,6 +7,7 @@
 #include <linux/percpu_counter.h>
 #include <linux/refcount.h>
 #include <linux/ratelimit.h>
+#include <linux/android_kabi.h>
 
 /*
  * Some day this will be a full-fledged user tracking system..
@@ -33,15 +34,23 @@
 
 	/* Miscellaneous per-user rate limit */
 	struct ratelimit_state ratelimit;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+};
+
+struct ext_user_struct {
+	struct user_struct user;
+	ANDROID_OEM_DATA_ARRAY(1, 2);
 };
 
 extern int uids_sysfs_init(void);
 
 extern struct user_struct *find_user(kuid_t);
 
-extern struct user_struct root_user;
-#define INIT_USER (&root_user)
-
+extern struct ext_user_struct ext_root_user;
+extern struct user_struct *root_user;
+#define INIT_USER (&ext_root_user.user)
 
 /* per-UID process charging. */
 extern struct user_struct * alloc_uid(kuid_t);
diff --git a/include/linux/sched/wake_q.h b/include/linux/sched/wake_q.h
index 06cd8fb..9a1394f 100644
--- a/include/linux/sched/wake_q.h
+++ b/include/linux/sched/wake_q.h
@@ -38,6 +38,7 @@
 struct wake_q_head {
 	struct wake_q_node *first;
 	struct wake_q_node **lastp;
+	int count;
 };
 
 #define WAKE_Q_TAIL ((struct wake_q_node *) 0x01)
@@ -52,6 +53,7 @@
 {
 	head->first = WAKE_Q_TAIL;
 	head->lastp = &head->first;
+	head->count = 0;
 }
 
 static inline bool wake_q_empty(struct wake_q_head *head)
diff --git a/include/linux/sched/xacct.h b/include/linux/sched/xacct.h
index c078f0a..9544c9d 100644
--- a/include/linux/sched/xacct.h
+++ b/include/linux/sched/xacct.h
@@ -28,6 +28,11 @@
 {
 	tsk->ioac.syscw++;
 }
+
+static inline void inc_syscfs(struct task_struct *tsk)
+{
+	tsk->ioac.syscfs++;
+}
 #else
 static inline void add_rchar(struct task_struct *tsk, ssize_t amt)
 {
@@ -44,6 +49,10 @@
 static inline void inc_syscw(struct task_struct *tsk)
 {
 }
+
+static inline void inc_syscfs(struct task_struct *tsk)
+{
+}
 #endif
 
 #endif /* _LINUX_SCHED_XACCT_H */
diff --git a/include/linux/scmi_protocol.h b/include/linux/scmi_protocol.h
index d22f622..28b40b8 100644
--- a/include/linux/scmi_protocol.h
+++ b/include/linux/scmi_protocol.h
@@ -12,6 +12,7 @@
 #include <linux/device.h>
 #include <linux/notifier.h>
 #include <linux/types.h>
+#include <linux/android_kabi.h>
 
 #define SCMI_MAX_STR_SIZE	16
 #define SCMI_MAX_NUM_RATES	16
@@ -82,6 +83,8 @@
 			u64 rate);
 	int (*enable)(const struct scmi_protocol_handle *ph, u32 clk_id);
 	int (*disable)(const struct scmi_protocol_handle *ph, u32 clk_id);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -129,6 +132,8 @@
 	bool (*fast_switch_possible)(const struct scmi_protocol_handle *ph,
 				     struct device *dev);
 	bool (*power_scale_mw_get)(const struct scmi_protocol_handle *ph);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -154,6 +159,8 @@
 			 u32 state);
 	int (*state_get)(const struct scmi_protocol_handle *ph, u32 domain,
 			 u32 *state);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -330,6 +337,8 @@
 	unsigned int resolution;
 	int exponent;
 	struct scmi_range_attrs scalar_attrs;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /*
@@ -465,6 +474,8 @@
 			  u32 sensor_id, u32 *sensor_config);
 	int (*config_set)(const struct scmi_protocol_handle *ph,
 			  u32 sensor_id, u32 sensor_config);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -485,6 +496,8 @@
 	int (*reset)(const struct scmi_protocol_handle *ph, u32 domain);
 	int (*assert)(const struct scmi_protocol_handle *ph, u32 domain);
 	int (*deassert)(const struct scmi_protocol_handle *ph, u32 domain);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -624,6 +637,8 @@
 	void (*devm_protocol_put)(struct scmi_device *sdev, u8 proto);
 
 	const struct scmi_notify_ops *notify_ops;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 enum scmi_std_protocol {
@@ -652,6 +667,8 @@
 	const char *name;
 	struct device dev;
 	struct scmi_handle *handle;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 #define to_scmi_dev(d) container_of(d, struct scmi_device, dev)
diff --git a/include/linux/security.h b/include/linux/security.h
index da184e7..543ceff 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
@@ -319,8 +319,9 @@
 				int len, void **mnt_opts);
 int security_move_mount(const struct path *from_path, const struct path *to_path);
 int security_dentry_init_security(struct dentry *dentry, int mode,
-					const struct qstr *name, void **ctx,
-					u32 *ctxlen);
+				  const struct qstr *name,
+				  const char **xattr_name, void **ctx,
+				  u32 *ctxlen);
 int security_dentry_create_files_as(struct dentry *dentry, int mode,
 					struct qstr *name,
 					const struct cred *old,
@@ -741,6 +742,7 @@
 static inline int security_dentry_init_security(struct dentry *dentry,
 						 int mode,
 						 const struct qstr *name,
+						 const char **xattr_name,
 						 void **ctx,
 						 u32 *ctxlen)
 {
diff --git a/include/linux/serial_8250.h b/include/linux/serial_8250.h
index 979586e3..5db211f 100644
--- a/include/linux/serial_8250.h
+++ b/include/linux/serial_8250.h
@@ -74,7 +74,6 @@
 struct uart_8250_ops {
 	int		(*setup_irq)(struct uart_8250_port *);
 	void		(*release_irq)(struct uart_8250_port *);
-	void		(*setup_timer)(struct uart_8250_port *);
 };
 
 struct uart_8250_em485 {
@@ -98,6 +97,7 @@
 	struct list_head	list;		/* ports on this IRQ */
 	u32			capabilities;	/* port capabilities */
 	unsigned short		bugs;		/* port bugs */
+	bool			fifo_bug;	/* min RX trigger if enabled */
 	unsigned int		tx_loadsz;	/* transmit fifo load size */
 	unsigned char		acr;
 	unsigned char		fcr;
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index d5b6b15..214df8b 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -17,6 +17,7 @@
 #include <linux/tty.h>
 #include <linux/mutex.h>
 #include <linux/sysrq.h>
+#include <linux/android_kabi.h>
 #include <uapi/linux/serial_core.h>
 
 #ifdef CONFIG_SERIAL_CORE_CONSOLE
@@ -80,6 +81,9 @@
 	void		(*poll_put_char)(struct uart_port *, unsigned char);
 	int		(*poll_get_char)(struct uart_port *);
 #endif
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 #define NO_POLL_CHAR		0x00ff0000
@@ -100,7 +104,7 @@
 	__u32	buf_overrun;
 };
 
-typedef u64 __bitwise upf_t;
+typedef unsigned int __bitwise upf_t;
 typedef unsigned int __bitwise upstat_t;
 
 struct uart_port {
@@ -207,7 +211,6 @@
 #define UPF_FIXED_PORT		((__force upf_t) (1 << 29))
 #define UPF_DEAD		((__force upf_t) (1 << 30))
 #define UPF_IOREMAP		((__force upf_t) (1 << 31))
-#define UPF_FULL_PROBE		((__force upf_t) (1ULL << 32))
 
 #define __UPF_CHANGE_MASK	0x17fff
 #define UPF_CHANGE_MASK		((__force upf_t) __UPF_CHANGE_MASK)
@@ -254,10 +257,12 @@
 	struct attribute_group	*attr_group;		/* port specific attributes */
 	const struct attribute_group **tty_groups;	/* all attributes (serial core use only) */
 	struct serial_rs485     rs485;
-	const struct serial_rs485	*rs485_supported;	/* Supported mask for serial_rs485 */
 	struct gpio_desc	*rs485_term_gpio;	/* enable RS485 bus termination */
 	struct serial_iso7816   iso7816;
 	void			*private_data;		/* generic platform data pointer */
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 static inline int serial_port_in(struct uart_port *up, int offset)
@@ -337,6 +342,8 @@
 	 */
 	struct uart_state	*state;
 	struct tty_driver	*tty_driver;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 void uart_write_wakeup(struct uart_port *port);
diff --git a/include/linux/serio.h b/include/linux/serio.h
index 6c27d41..25d638f5 100644
--- a/include/linux/serio.h
+++ b/include/linux/serio.h
@@ -13,6 +13,7 @@
 #include <linux/mutex.h>
 #include <linux/device.h>
 #include <linux/mod_devicetable.h>
+#include <linux/android_kabi.h>
 #include <uapi/linux/serio.h>
 
 extern struct bus_type serio_bus;
@@ -61,6 +62,8 @@
 	 * may get indigestion when exposed to concurrent access (i8042).
 	 */
 	struct mutex *ps2_cmd_mutex;
+
+	ANDROID_KABI_RESERVE(1);
 };
 #define to_serio_port(d)	container_of(d, struct serio, dev)
 
@@ -79,6 +82,8 @@
 	void (*cleanup)(struct serio *);
 
 	struct device_driver driver;
+
+	ANDROID_KABI_RESERVE(1);
 };
 #define to_serio_driver(d)	container_of(d, struct serio_driver, driver)
 
diff --git a/include/linux/shrinker.h b/include/linux/shrinker.h
index 9814fff..45944ba 100644
--- a/include/linux/shrinker.h
+++ b/include/linux/shrinker.h
@@ -2,6 +2,8 @@
 #ifndef _LINUX_SHRINKER_H
 #define _LINUX_SHRINKER_H
 
+#include <linux/android_vendor.h>
+
 /*
  * This struct is used to pass information from page reclaim to the shrinkers.
  * We consolidate the values for easier extension later.
@@ -31,6 +33,7 @@
 
 	/* current memcg being shrunk (for memcg aware shrinkers) */
 	struct mem_cgroup *memcg;
+	ANDROID_OEM_DATA_ARRAY(1, 3);
 };
 
 #define SHRINK_STOP (~0UL)
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 7ed1d44..bd002dd 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -41,6 +41,8 @@
 #if IS_ENABLED(CONFIG_NF_CONNTRACK)
 #include <linux/netfilter/nf_conntrack_common.h>
 #endif
+#include <linux/android_kabi.h>
+#include <linux/android_vendor.h>
 
 /* The interface for checksum offload between the stack and networking drivers
  * is as follows...
@@ -573,6 +575,8 @@
 	 * remains valid until skb destructor */
 	void *		destructor_arg;
 
+	ANDROID_OEM_DATA_ARRAY(1, 3);
+
 	/* must be last field, see pskb_expand_head() */
 	skb_frag_t	frags[MAX_SKB_FRAGS];
 };
@@ -912,7 +916,6 @@
 	__u8			decrypted:1;
 #endif
 	__u8			slow_gro:1;
-	__u8			scm_io_uring:1;
 
 #ifdef CONFIG_NET_SCHED
 	__u16			tc_index;	/* traffic control index */
@@ -967,6 +970,27 @@
 	__u32			headers_end[0];
 	/* public: */
 
+	/* Android KABI preservation.
+	 *
+	 * "open coded" version of ANDROID_KABI_USE() to pack more
+	 * fields/variables into the space that we have.
+	 *
+	 * scm_io_uring is from 04df9719df18 ("io_uring/af_unix: defer
+	 * registered files gc to io_uring release")
+	 */
+	/* NOTE: due to these fields ending up after headers_end, we have to
+	 * manually copy them in the __copy_skb_header() call in skbuf.c.  Be
+	 * very aware of that if you change these fields.
+	 */
+	_ANDROID_KABI_REPLACE(_ANDROID_KABI_RESERVE(1),
+			 struct {
+				__u8 scm_io_uring:1;
+				__u8 android_kabi_reserved1_padding1;
+				__u16 android_kabi_reserved1_padding2;
+				__u32 android_kabi_reserved1_padding3;
+				});
+	ANDROID_KABI_RESERVE(2);
+
 	/* These elements must be at the end, see alloc_skb() for details.  */
 	sk_buff_data_t		tail;
 	sk_buff_data_t		end;
@@ -1113,15 +1137,7 @@
 }
 
 void kfree_skb_reason(struct sk_buff *skb, enum skb_drop_reason reason);
-
-/**
- *	kfree_skb - free an sk_buff with 'NOT_SPECIFIED' reason
- *	@skb: buffer to free
- */
-static inline void kfree_skb(struct sk_buff *skb)
-{
-	kfree_skb_reason(skb, SKB_DROP_REASON_NOT_SPECIFIED);
-}
+void kfree_skb(struct sk_buff *skb);
 
 void skb_release_head_state(struct sk_buff *skb);
 void kfree_skb_list(struct sk_buff *segs);
diff --git a/include/linux/skmsg.h b/include/linux/skmsg.h
index 4273505..ee51499 100644
--- a/include/linux/skmsg.h
+++ b/include/linux/skmsg.h
@@ -84,7 +84,6 @@
 	u32				apply_bytes;
 	u32				cork_bytes;
 	u32				eval;
-	bool				redir_ingress; /* undefined if sk_redir is null */
 	struct sk_msg			*cork;
 	struct sk_psock_progs		progs;
 #if IS_ENABLED(CONFIG_BPF_STREAM_PARSER)
@@ -98,7 +97,6 @@
 	spinlock_t			link_lock;
 	refcount_t			refcnt;
 	void (*saved_unhash)(struct sock *sk);
-	void (*saved_destroy)(struct sock *sk);
 	void (*saved_close)(struct sock *sk, long timeout);
 	void (*saved_write_space)(struct sock *sk);
 	void (*saved_data_ready)(struct sock *sk);
diff --git a/include/linux/slab.h b/include/linux/slab.h
index 083f3ce..ebcebd2 100644
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -222,6 +222,18 @@
 #endif
 
 /*
+ * Arches can define this function if they want to decide the minimum slab
+ * alignment at runtime. The value returned by the function must be a power
+ * of two and >= ARCH_SLAB_MINALIGN.
+ */
+#ifndef arch_slab_minalign
+static inline unsigned int arch_slab_minalign(void)
+{
+	return ARCH_SLAB_MINALIGN;
+}
+#endif
+
+/*
  * kmalloc and friends return ARCH_KMALLOC_MINALIGN aligned
  * pointers. kmem_cache_alloc and friends return ARCH_SLAB_MINALIGN
  * aligned pointers.
diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h
index 6b0b686..04c72d9f 100644
--- a/include/linux/spi/spi.h
+++ b/include/linux/spi/spi.h
@@ -15,6 +15,7 @@
 #include <linux/scatterlist.h>
 #include <linux/gpio/consumer.h>
 #include <linux/ptp_clock_kernel.h>
+#include <linux/android_kabi.h>
 
 #include <uapi/linux/spi/spi.h>
 
@@ -200,6 +201,9 @@
 	/* the statistics */
 	struct spi_statistics	statistics;
 
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+
 	/*
 	 * likely need more hooks for more protocol options affecting how
 	 * the controller talks to each chip, like:
@@ -287,6 +291,8 @@
 	int			(*remove)(struct spi_device *spi);
 	void			(*shutdown)(struct spi_device *spi);
 	struct device_driver	driver;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 static inline struct spi_driver *to_spi_driver(struct device_driver *drv)
@@ -672,6 +678,9 @@
 
 	/* Interrupt enable state during PTP system timestamping */
 	unsigned long		irq_flags;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 static inline void *spi_controller_get_devdata(struct spi_controller *ctlr)
@@ -967,6 +976,8 @@
 
 #define SPI_TRANS_FAIL_NO_START	BIT(0)
 	u16		error;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -1033,6 +1044,8 @@
 
 	/* list of spi_res reources when the spi message is processed */
 	struct list_head        resources;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 static inline void spi_message_init_no_memset(struct spi_message *m)
@@ -1457,6 +1470,8 @@
 	 */
 	u32		mode;
 
+	ANDROID_KABI_RESERVE(1);
+
 	/* ... may need additional spi_device chip config data here.
 	 * avoid stuff protocol drivers can set; but include stuff
 	 * needed to behave without being bound to a driver:
diff --git a/include/linux/spmi.h b/include/linux/spmi.h
index 729bcbf..743f08c 100644
--- a/include/linux/spmi.h
+++ b/include/linux/spmi.h
@@ -7,6 +7,7 @@
 #include <linux/types.h>
 #include <linux/device.h>
 #include <linux/mod_devicetable.h>
+#include <linux/android_kabi.h>
 
 /* Maximum slave identifier */
 #define SPMI_MAX_SLAVE_ID		16
@@ -85,6 +86,7 @@
 			    u8 sid, u16 addr, u8 *buf, size_t len);
 	int	(*write_cmd)(struct spmi_controller *ctrl, u8 opcode,
 			     u8 sid, u16 addr, const u8 *buf, size_t len);
+	ANDROID_KABI_RESERVE(1);
 };
 
 static inline struct spmi_controller *to_spmi_controller(struct device *d)
@@ -139,6 +141,7 @@
 	int	(*probe)(struct spmi_device *sdev);
 	void	(*remove)(struct spmi_device *sdev);
 	void	(*shutdown)(struct spmi_device *sdev);
+	ANDROID_KABI_RESERVE(1);
 };
 
 static inline struct spmi_driver *to_spmi_driver(struct device_driver *d)
diff --git a/include/linux/stackdepot.h b/include/linux/stackdepot.h
index 22919a9..d298609 100644
--- a/include/linux/stackdepot.h
+++ b/include/linux/stackdepot.h
@@ -11,8 +11,14 @@
 #ifndef _LINUX_STACKDEPOT_H
 #define _LINUX_STACKDEPOT_H
 
+#include <linux/gfp.h>
+
 typedef u32 depot_stack_handle_t;
 
+depot_stack_handle_t __stack_depot_save(unsigned long *entries,
+					unsigned int nr_entries,
+					gfp_t gfp_flags, bool can_alloc);
+
 depot_stack_handle_t stack_depot_save(unsigned long *entries,
 				      unsigned int nr_entries, gfp_t gfp_flags);
 
diff --git a/include/linux/suspend.h b/include/linux/suspend.h
index 4bcd656..27321d5 100644
--- a/include/linux/suspend.h
+++ b/include/linux/suspend.h
@@ -8,6 +8,7 @@
 #include <linux/pm.h>
 #include <linux/mm.h>
 #include <linux/freezer.h>
+#include <linux/android_kabi.h>
 #include <asm/errno.h>
 
 #ifdef CONFIG_VT
@@ -185,6 +186,8 @@
 	bool (*suspend_again)(void);
 	void (*end)(void);
 	void (*recover)(void);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct platform_s2idle_ops {
@@ -195,6 +198,8 @@
 	void (*restore_early)(void);
 	void (*restore)(void);
 	void (*end)(void);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 #ifdef CONFIG_SUSPEND
@@ -426,6 +431,8 @@
 	int (*pre_restore)(void);
 	void (*restore_cleanup)(void);
 	void (*recover)(void);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 #ifdef CONFIG_HIBERNATION
@@ -508,6 +515,7 @@
 extern bool pm_save_wakeup_count(unsigned int count);
 extern void pm_wakep_autosleep_enabled(bool set);
 extern void pm_print_active_wakeup_sources(void);
+extern void pm_get_active_wakeup_sources(char *pending_sources, size_t max);
 
 extern void lock_system_sleep(void);
 extern void unlock_system_sleep(void);
diff --git a/include/linux/swap.h b/include/linux/swap.h
index 4efd267..fa17b77 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -34,6 +34,8 @@
 				 SWAP_FLAG_DISCARD_PAGES)
 #define SWAP_BATCH 64
 
+int kswapd (void *p);
+
 static inline int current_is_kswapd(void)
 {
 	return current->flags & PF_KSWAPD;
@@ -137,6 +139,10 @@
  */
 struct reclaim_state {
 	unsigned long reclaimed_slab;
+#ifdef CONFIG_LRU_GEN
+	/* per-thread mm walk data */
+	struct lru_gen_mm_walk *mm_walk;
+#endif
 };
 
 #ifdef __KERNEL__
@@ -289,6 +295,7 @@
 					 */
 	struct work_struct discard_work; /* discard worker */
 	struct swap_cluster_list discard_clusters; /* discard clusters list */
+	ANDROID_VENDOR_DATA(1);
 	struct plist_node avail_lists[]; /*
 					   * entries in swap_avail_heads, one
 					   * entry per node.
@@ -514,6 +521,7 @@
 extern void exit_swap_address_space(unsigned int type);
 extern struct swap_info_struct *get_swap_device(swp_entry_t entry);
 sector_t swap_page_sector(struct page *page);
+extern sector_t alloc_swapdev_block(int swap);
 
 static inline void put_swap_device(struct swap_info_struct *si)
 {
diff --git a/include/linux/swap_slots.h b/include/linux/swap_slots.h
index 347f1a3..c4dc91e 100644
--- a/include/linux/swap_slots.h
+++ b/include/linux/swap_slots.h
@@ -19,6 +19,7 @@
 	spinlock_t	free_lock;  /* protects slots_ret, n_ret */
 	swp_entry_t	*slots_ret;
 	int		n_ret;
+	ANDROID_VENDOR_DATA(1);
 };
 
 void disable_swap_slots_cache_lock(void);
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
index 47cf70c..0d69bb7 100644
--- a/include/linux/sysctl.h
+++ b/include/linux/sysctl.h
@@ -38,18 +38,19 @@
 struct ctl_dir;
 
 /* Keep the same order as in fs/proc/proc_sysctl.c */
-#define SYSCTL_NEG_ONE			((void *)&sysctl_vals[0])
-#define SYSCTL_ZERO			((void *)&sysctl_vals[1])
-#define SYSCTL_ONE			((void *)&sysctl_vals[2])
-#define SYSCTL_TWO			((void *)&sysctl_vals[3])
-#define SYSCTL_FOUR			((void *)&sysctl_vals[4])
-#define SYSCTL_ONE_HUNDRED		((void *)&sysctl_vals[5])
-#define SYSCTL_TWO_HUNDRED		((void *)&sysctl_vals[6])
-#define SYSCTL_ONE_THOUSAND		((void *)&sysctl_vals[7])
-#define SYSCTL_THREE_THOUSAND		((void *)&sysctl_vals[8])
-#define SYSCTL_INT_MAX			((void *)&sysctl_vals[9])
+#define SYSCTL_NEG_ONE			((void *)&sysctl_vals_new[0])
+#define SYSCTL_ZERO			((void *)&sysctl_vals_new[1])
+#define SYSCTL_ONE			((void *)&sysctl_vals_new[2])
+#define SYSCTL_TWO			((void *)&sysctl_vals_new[3])
+#define SYSCTL_FOUR			((void *)&sysctl_vals_new[4])
+#define SYSCTL_ONE_HUNDRED		((void *)&sysctl_vals_new[5])
+#define SYSCTL_TWO_HUNDRED		((void *)&sysctl_vals_new[6])
+#define SYSCTL_ONE_THOUSAND		((void *)&sysctl_vals_new[7])
+#define SYSCTL_THREE_THOUSAND		((void *)&sysctl_vals_new[8])
+#define SYSCTL_INT_MAX			((void *)&sysctl_vals_new[9])
 
 extern const int sysctl_vals[];
+extern const int sysctl_vals_new[];
 
 typedef int proc_handler(struct ctl_table *ctl, int write, void *buffer,
 		size_t *lenp, loff_t *ppos);
diff --git a/include/linux/task_io_accounting.h b/include/linux/task_io_accounting.h
index 6f6acce..bb26108 100644
--- a/include/linux/task_io_accounting.h
+++ b/include/linux/task_io_accounting.h
@@ -19,6 +19,8 @@
 	u64 syscr;
 	/* # of write syscalls */
 	u64 syscw;
+	/* # of fsync syscalls */
+	u64 syscfs;
 #endif /* CONFIG_TASK_XACCT */
 
 #ifdef CONFIG_TASK_IO_ACCOUNTING
diff --git a/include/linux/task_io_accounting_ops.h b/include/linux/task_io_accounting_ops.h
index bb5498b..733ab62 100644
--- a/include/linux/task_io_accounting_ops.h
+++ b/include/linux/task_io_accounting_ops.h
@@ -97,6 +97,7 @@
 	dst->wchar += src->wchar;
 	dst->syscr += src->syscr;
 	dst->syscw += src->syscw;
+	dst->syscfs += src->syscfs;
 }
 #else
 static inline void task_chr_io_accounting_add(struct task_io_accounting *dst,
diff --git a/include/linux/tcp.h b/include/linux/tcp.h
index 07a84ae..9483af8 100644
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -16,6 +16,7 @@
 
 #include <linux/skbuff.h>
 #include <linux/win_minmax.h>
+#include <linux/android_kabi.h>
 #include <net/sock.h>
 #include <net/inet_connection_sock.h>
 #include <net/inet_timewait_sock.h>
@@ -265,7 +266,12 @@
 	u32	packets_out;	/* Packets which are "in flight"	*/
 	u32	retrans_out;	/* Retransmitted packets out		*/
 	u32	max_packets_out;  /* max packets_out in last window */
-	u32	cwnd_usage_seq;  /* right edge of cwnd usage tracking flight */
+	/* ANDROID:
+	 * max_packets_seq is really cwnd_usage_seq upstream, old name kept
+	 * to preserve ABI due to changes in commit 49d429760df7 ("tcp: fix
+	 * tcp_cwnd_validate() to not forget is_cwnd_limited")
+	 */
+	u32	max_packets_seq; /* right edge of cwnd usage tracking flight */
 
 	u16	urg_data;	/* Saved octet of OOB data and control flags */
 	u8	ecn_flags;	/* ECN status bits.			*/
@@ -412,6 +418,8 @@
 	 */
 	struct request_sock __rcu *fastopen_rsk;
 	struct saved_syn *saved_syn;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 enum tsq_enum {
diff --git a/include/linux/thermal.h b/include/linux/thermal.h
index b94314e..84fd13e 100644
--- a/include/linux/thermal.h
+++ b/include/linux/thermal.h
@@ -15,6 +15,7 @@
 #include <linux/device.h>
 #include <linux/sysfs.h>
 #include <linux/workqueue.h>
+#include <linux/android_kabi.h>
 #include <uapi/linux/thermal.h>
 
 #define THERMAL_MAX_TRIPS	12
@@ -78,6 +79,8 @@
 			  enum thermal_trend *);
 	void (*hot)(struct thermal_zone_device *);
 	void (*critical)(struct thermal_zone_device *);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct thermal_cooling_device_ops {
@@ -87,12 +90,13 @@
 	int (*get_requested_power)(struct thermal_cooling_device *, u32 *);
 	int (*state2power)(struct thermal_cooling_device *, unsigned long, u32 *);
 	int (*power2state)(struct thermal_cooling_device *, u32, unsigned long *);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct thermal_cooling_device {
 	int id;
 	char *type;
-	unsigned long max_state;
 	struct device device;
 	struct device_node *np;
 	void *devdata;
@@ -102,6 +106,8 @@
 	struct mutex lock; /* protect thermal_instances list */
 	struct list_head thermal_instances;
 	struct list_head node;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -114,7 +120,7 @@
  * @trip_hyst_attrs:	attributes for trip points for sysfs: trip hysteresis
  * @mode:		current mode of this thermal zone
  * @devdata:	private pointer for device private data
- * @num_trips:	number of trip points the thermal zone supports
+ * @trips:	number of trip points the thermal zone supports
  * @trips_disabled;	bitmap for disabled trips
  * @passive_delay_jiffies: number of jiffies to wait between polls when
  *			performing passive cooling.
@@ -154,7 +160,7 @@
 	struct thermal_attr *trip_hyst_attrs;
 	enum thermal_device_mode mode;
 	void *devdata;
-	int num_trips;
+	int trips;
 	unsigned long trips_disabled;	/* bitmap for disabled trips */
 	unsigned long passive_delay_jiffies;
 	unsigned long polling_delay_jiffies;
@@ -175,6 +181,8 @@
 	struct list_head node;
 	struct delayed_work poll_queue;
 	enum thermal_notify_event notify_event;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -195,6 +203,8 @@
 	void (*unbind_from_tz)(struct thermal_zone_device *tz);
 	int (*throttle)(struct thermal_zone_device *tz, int trip);
 	struct list_head	governor_list;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /* Structure that holds binding parameters for a zone */
@@ -230,6 +240,8 @@
 	unsigned long *binding_limits;
 	int (*match) (struct thermal_zone_device *tz,
 			struct thermal_cooling_device *cdev);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /* Structure to define Thermal Zone parameters */
@@ -283,6 +295,8 @@
 	 * 		Used by thermal zone drivers (default 0).
 	 */
 	int offset;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -300,6 +314,12 @@
  *		   temperature.
  * @set_trip_temp: a pointer to a function that sets the trip temperature on
  *		   hardware.
+ * @change_mode: a pointer to a function that notifies the thermal zone
+ *		   mode change.
+ * @hot:	 a pointer to a function that notifies the thermal zone
+ *		   hot trip violation.
+ * @critical: a pointer to a function that notifies the thermal zone
+ *		   critical trip violation.
  */
 struct thermal_zone_of_device_ops {
 	int (*get_temp)(void *, int *);
@@ -307,6 +327,11 @@
 	int (*set_trips)(void *, int, int);
 	int (*set_emul_temp)(void *, int);
 	int (*set_trip_temp)(void *, int, int);
+	int (*change_mode) (void *, enum thermal_device_mode);
+	void (*hot)(void *sensor_data);
+	void (*critical)(void *sensor_data);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /* Function declarations */
diff --git a/include/linux/time32.h b/include/linux/time32.h
index 83a400b..f22df7b 100644
--- a/include/linux/time32.h
+++ b/include/linux/time32.h
@@ -67,6 +67,19 @@
  *
  * Returns the timeval representation of the nsec parameter.
  */
+#ifndef __GENKSYMS__
+/*
+ * There is a mismatch between this signature and the declaration
+ * in kernel/time/time.c where the argument actually should be
+ * s64, but is declared as const s64 in kernel/time/time.c. Since
+ * the KMI expects const, we can't cherry-pick the upstream
+ * fix: 46dae32fe625 ("time: Correct the prototype of ns_to_kernel_old_timeval
+ * and ns_to_timespec64"). Use __GENKSYMS__ to force CRC to stay
+ * constant.
+ */
+extern struct __kernel_old_timeval ns_to_kernel_old_timeval(const s64 nsec);
+#else
 extern struct __kernel_old_timeval ns_to_kernel_old_timeval(s64 nsec);
+#endif
 
 #endif
diff --git a/include/linux/timer.h b/include/linux/timer.h
index fda13c9..6d765a94 100644
--- a/include/linux/timer.h
+++ b/include/linux/timer.h
@@ -7,6 +7,7 @@
 #include <linux/stddef.h>
 #include <linux/debugobjects.h>
 #include <linux/stringify.h>
+#include <linux/android_kabi.h>
 
 struct timer_list {
 	/*
@@ -21,6 +22,9 @@
 #ifdef CONFIG_LOCKDEP
 	struct lockdep_map	lockdep_map;
 #endif
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 #ifdef CONFIG_LOCKDEP
diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h
index ff13717..5711319 100644
--- a/include/linux/trace_events.h
+++ b/include/linux/trace_events.h
@@ -91,7 +91,6 @@
 	unsigned int		temp_size;
 	char			*fmt;	/* modified format holder */
 	unsigned int		fmt_size;
-	long			wait_index;
 
 	/* trace_seq for __print_flags() and __print_symbolic() etc. */
 	struct trace_seq	tmp_seq;
diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h
index cd01da1..d86e9b2 100644
--- a/include/linux/tracepoint.h
+++ b/include/linux/tracepoint.h
@@ -241,7 +241,7 @@
 	extern int __traceiter_##name(data_proto);			\
 	DECLARE_STATIC_CALL(tp_func_##name, __traceiter_##name);	\
 	extern struct tracepoint __tracepoint_##name;			\
-	static inline void trace_##name(proto)				\
+	static inline void __nocfi trace_##name(proto)				\
 	{								\
 		if (static_key_false(&__tracepoint_##name.key))		\
 			__DO_TRACE(name,				\
@@ -303,7 +303,7 @@
 		.unregfunc = _unreg,					\
 		.funcs = NULL };					\
 	__TRACEPOINT_ENTRY(_name);					\
-	int __traceiter_##_name(void *__data, proto)			\
+	int __nocfi __traceiter_##_name(void *__data, proto)			\
 	{								\
 		struct tracepoint_func *it_func_ptr;			\
 		void *it_func;						\
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 168e57e..b41d8dfc 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -15,6 +15,7 @@
 #include <uapi/linux/tty.h>
 #include <linux/rwsem.h>
 #include <linux/llist.h>
+#include <linux/android_kabi.h>
 
 
 /*
@@ -202,6 +203,9 @@
 	/* If the tty has a pending do_SAK, queue it here - akpm */
 	struct work_struct SAK_work;
 	struct tty_port *port;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 } __randomize_layout;
 
 /* Each of a tty's open files has private_data pointing to tty_file_private */
diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h
index c20431d..8ae79ad 100644
--- a/include/linux/tty_driver.h
+++ b/include/linux/tty_driver.h
@@ -238,6 +238,7 @@
 #include <linux/cdev.h>
 #include <linux/termios.h>
 #include <linux/seq_file.h>
+#include <linux/android_kabi.h>
 
 struct tty_struct;
 struct tty_driver;
@@ -289,6 +290,9 @@
 	void (*poll_put_char)(struct tty_driver *driver, int line, char ch);
 #endif
 	int (*proc_show)(struct seq_file *, void *);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 } __randomize_layout;
 
 struct tty_driver {
@@ -323,6 +327,9 @@
 
 	const struct tty_operations *ops;
 	struct list_head tty_drivers;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 } __randomize_layout;
 
 extern struct list_head tty_drivers;
diff --git a/include/linux/tty_flip.h b/include/linux/tty_flip.h
index 1fb727b..4c124f4 100644
--- a/include/linux/tty_flip.h
+++ b/include/linux/tty_flip.h
@@ -47,4 +47,5 @@
 extern void tty_buffer_lock_exclusive(struct tty_port *port);
 extern void tty_buffer_unlock_exclusive(struct tty_port *port);
 
+void tty_schedule_flip(struct tty_port *port);
 #endif /* _LINUX_TTY_FLIP_H */
diff --git a/include/linux/tty_ldisc.h b/include/linux/tty_ldisc.h
index b1d812e..c0aa3a6c 100644
--- a/include/linux/tty_ldisc.h
+++ b/include/linux/tty_ldisc.h
@@ -131,6 +131,7 @@
 #include <linux/list.h>
 #include <linux/lockdep.h>
 #include <linux/seq_file.h>
+#include <linux/android_kabi.h>
 
 /*
  * the semaphore definition
@@ -213,6 +214,9 @@
 				const char *fp, int count);
 
 	struct  module *owner;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 struct tty_ldisc {
diff --git a/include/linux/tty_port.h b/include/linux/tty_port.h
index 6e86e9e1..8737f89 100644
--- a/include/linux/tty_port.h
+++ b/include/linux/tty_port.h
@@ -6,6 +6,7 @@
 #include <linux/mutex.h>
 #include <linux/tty_buffer.h>
 #include <linux/wait.h>
+#include <linux/android_kabi.h>
 
 /*
  * Port level information. Each device keeps its own port level information
@@ -39,6 +40,8 @@
 	int (*activate)(struct tty_port *port, struct tty_struct *tty);
 	/* Called on the final put of a port */
 	void (*destruct)(struct tty_port *port);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct tty_port_client_operations {
@@ -72,6 +75,8 @@
 						   set to size of fifo */
 	struct kref		kref;		/* Ref counter */
 	void 			*client_data;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /* tty_port::iflags bits -- use atomic bit ops */
diff --git a/include/linux/uio_driver.h b/include/linux/uio_driver.h
index 47c5962b..7f4e6c7 100644
--- a/include/linux/uio_driver.h
+++ b/include/linux/uio_driver.h
@@ -16,6 +16,7 @@
 #include <linux/device.h>
 #include <linux/fs.h>
 #include <linux/interrupt.h>
+#include <linux/android_kabi.h>
 
 struct module;
 struct uio_map;
@@ -77,6 +78,8 @@
 	struct mutex		info_lock;
 	struct kobject          *map_dir;
 	struct kobject          *portio_dir;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -109,6 +112,7 @@
 	int (*open)(struct uio_info *info, struct inode *inode);
 	int (*release)(struct uio_info *info, struct inode *inode);
 	int (*irqcontrol)(struct uio_info *info, s32 irq_on);
+	ANDROID_KABI_RESERVE(1);
 };
 
 extern int __must_check
diff --git a/include/linux/usb.h b/include/linux/usb.h
index 987550f..fe572ee 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -22,6 +22,7 @@
 #include <linux/sched.h>	/* for current && schedule_timeout */
 #include <linux/mutex.h>	/* for struct mutex */
 #include <linux/pm_runtime.h>	/* for runtime PM */
+#include <linux/android_kabi.h>
 
 struct usb_device;
 struct usb_driver;
@@ -257,6 +258,11 @@
 	struct device dev;		/* interface specific device info */
 	struct device *usb_dev;
 	struct work_struct reset_ws;	/* for resets in atomic context */
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 #define	to_usb_interface(d) container_of(d, struct usb_interface, dev)
 
@@ -407,6 +413,11 @@
 	struct usb_ssp_cap_descriptor	*ssp_cap;
 	struct usb_ss_container_id_descriptor	*ss_id;
 	struct usb_ptm_cap_descriptor	*ptm_cap;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 int __usb_get_extra_descriptor(char *buffer, unsigned size,
@@ -466,10 +477,13 @@
 
 	unsigned resuming_ports;	/* bit array: resuming root-hub ports */
 
-#if defined(CONFIG_USB_MON) || defined(CONFIG_USB_MON_MODULE)
 	struct mon_bus *mon_bus;	/* non-null when associated */
 	int monitored;			/* non-zero when monitored */
-#endif
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 struct usb_dev_state;
@@ -580,7 +594,6 @@
  * @devaddr: device address, XHCI: assigned by HW, others: same as devnum
  * @can_submit: URBs may be submitted
  * @persist_enabled:  USB_PERSIST enabled for this device
- * @reset_in_progress: the device is being reset
  * @have_langid: whether string_langid is valid
  * @authorized: policy has said we can use it;
  *	(user space) policy determines if we authorize this device to be
@@ -667,7 +680,6 @@
 
 	unsigned can_submit:1;
 	unsigned persist_enabled:1;
-	unsigned reset_in_progress:1;
 	unsigned have_langid:1;
 	unsigned authorized:1;
 	unsigned authenticated:1;
@@ -711,6 +723,11 @@
 
 	u16 hub_delay;
 	unsigned use_generic_driver:1;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 #define	to_usb_device(d) container_of(d, struct usb_device, dev)
 
@@ -1224,6 +1241,11 @@
 	unsigned int supports_autosuspend:1;
 	unsigned int disable_hub_initiated_lpm:1;
 	unsigned int soft_unbind:1;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 #define	to_usb_driver(d) container_of(d, struct usb_driver, drvwrap.driver)
 
@@ -1607,6 +1629,12 @@
 	int error_count;		/* (return) number of ISO errors */
 	void *context;			/* (in) context for completion */
 	usb_complete_t complete;	/* (in) completion routine */
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
+
 	struct usb_iso_packet_descriptor iso_frame_desc[];
 					/* (in) ISO ONLY */
 };
diff --git a/include/linux/usb/composite.h b/include/linux/usb/composite.h
index 0399d12..043a7bf 100644
--- a/include/linux/usb/composite.h
+++ b/include/linux/usb/composite.h
@@ -426,8 +426,6 @@
 extern int composite_os_desc_req_prepare(struct usb_composite_dev *cdev,
 					 struct usb_ep *ep0);
 void composite_dev_cleanup(struct usb_composite_dev *cdev);
-void check_remote_wakeup_config(struct usb_gadget *g,
-				struct usb_configuration *c);
 
 static inline struct usb_composite_driver *to_cdriver(
 		struct usb_gadget_driver *gdrv)
@@ -594,6 +592,7 @@
 	struct config_group group;
 	struct list_head cfs_list;
 	struct usb_function_driver *fd;
+	struct usb_function *f;
 	int (*set_inst_name)(struct usb_function_instance *inst,
 			      const char *name);
 	void (*free_func_inst)(struct usb_function_instance *inst);
diff --git a/include/linux/usb/f_accessory.h b/include/linux/usb/f_accessory.h
new file mode 100644
index 0000000..ebe3c4d
--- /dev/null
+++ b/include/linux/usb/f_accessory.h
@@ -0,0 +1,23 @@
+/*
+ * Gadget Function Driver for Android USB accessories
+ *
+ * Copyright (C) 2011 Google, Inc.
+ * Author: Mike Lockwood <lockwood@android.com>
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef __LINUX_USB_F_ACCESSORY_H
+#define __LINUX_USB_F_ACCESSORY_H
+
+#include <uapi/linux/usb/f_accessory.h>
+
+#endif /* __LINUX_USB_F_ACCESSORY_H */
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index c5bc739..a0fd828 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -122,6 +122,8 @@
 
 	int			status;
 	unsigned		actual;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /*-------------------------------------------------------------------------*/
@@ -152,6 +154,8 @@
 
 	int (*fifo_status) (struct usb_ep *ep);
 	void (*fifo_flush) (struct usb_ep *ep);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -240,6 +244,8 @@
 	u8			address;
 	const struct usb_endpoint_descriptor	*desc;
 	const struct usb_ss_ep_comp_descriptor	*comp_desc;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /*-------------------------------------------------------------------------*/
@@ -311,7 +317,6 @@
 struct usb_gadget_ops {
 	int	(*get_frame)(struct usb_gadget *);
 	int	(*wakeup)(struct usb_gadget *);
-	int	(*set_remote_wakeup)(struct usb_gadget *, int set);
 	int	(*set_selfpowered) (struct usb_gadget *, int is_selfpowered);
 	int	(*vbus_session) (struct usb_gadget *, int is_active);
 	int	(*vbus_draw) (struct usb_gadget *, unsigned mA);
@@ -331,6 +336,11 @@
 			struct usb_endpoint_descriptor *,
 			struct usb_ss_ep_comp_descriptor *);
 	int	(*check_config)(struct usb_gadget *gadget);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 /**
@@ -386,8 +396,6 @@
  * @connected: True if gadget is connected.
  * @lpm_capable: If the gadget max_speed is FULL or HIGH, this flag
  *	indicates that it supports LPM as per the LPM ECN & errata.
- * @wakeup_capable: True if gadget is capable of sending remote wakeup.
- * @wakeup_armed: True if gadget is armed by the host for remote wakeup.
  * @irq: the interrupt number for device controller.
  *
  * Gadgets have a mostly-portable "gadget driver" implementing device
@@ -448,8 +456,6 @@
 	unsigned			deactivated:1;
 	unsigned			connected:1;
 	unsigned			lpm_capable:1;
-	unsigned			wakeup_capable:1;
-	unsigned			wakeup_armed:1;
 	int				irq;
 };
 #define work_to_gadget(w)	(container_of((w), struct usb_gadget, work))
@@ -605,7 +611,6 @@
 #if IS_ENABLED(CONFIG_USB_GADGET)
 int usb_gadget_frame_number(struct usb_gadget *gadget);
 int usb_gadget_wakeup(struct usb_gadget *gadget);
-int usb_gadget_set_remote_wakeup(struct usb_gadget *gadget, int set);
 int usb_gadget_set_selfpowered(struct usb_gadget *gadget);
 int usb_gadget_clear_selfpowered(struct usb_gadget *gadget);
 int usb_gadget_vbus_connect(struct usb_gadget *gadget);
@@ -621,8 +626,6 @@
 { return 0; }
 static inline int usb_gadget_wakeup(struct usb_gadget *gadget)
 { return 0; }
-static inline int usb_gadget_set_remote_wakeup(struct usb_gadget *gadget, int set)
-{ return 0; }
 static inline int usb_gadget_set_selfpowered(struct usb_gadget *gadget)
 { return 0; }
 static inline int usb_gadget_clear_selfpowered(struct usb_gadget *gadget)
diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h
index e4e18a5..66c3f15 100644
--- a/include/linux/usb/hcd.h
+++ b/include/linux/usb/hcd.h
@@ -25,6 +25,7 @@
 #include <linux/rwsem.h>
 #include <linux/interrupt.h>
 #include <linux/idr.h>
+#include <linux/android_kabi.h>
 
 #define MAX_TOPO_LEVEL		6
 
@@ -66,7 +67,6 @@
 
 struct giveback_urb_bh {
 	bool running;
-	bool high_prio;
 	spinlock_t lock;
 	struct list_head  head;
 	struct tasklet_struct bh;
@@ -228,6 +228,11 @@
 	 * (ohci 32, uhci 1024, ehci 256/512/1024).
 	 */
 
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
+
 	/* The HC driver's private data is stored at the end of
 	 * this structure.
 	 */
@@ -416,6 +421,11 @@
 #define EHSET_TEST_SINGLE_STEP_SET_FEATURE 0x06
 	int	(*submit_single_step_set_feature)(struct usb_hcd *,
 			struct urb *, int);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 static inline int hcd_giveback_urb_in_bh(struct usb_hcd *hcd)
@@ -580,6 +590,11 @@
 	spinlock_t		lock;
 	struct list_head	clear_list;	/* of usb_tt_clear */
 	struct work_struct	clear_work;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 struct usb_tt_clear {
@@ -705,8 +720,6 @@
 
 /*-------------------------------------------------------------------------*/
 
-#if defined(CONFIG_USB_MON) || defined(CONFIG_USB_MON_MODULE)
-
 struct usb_mon_operations {
 	void (*urb_submit)(struct usb_bus *bus, struct urb *urb);
 	void (*urb_submit_error)(struct usb_bus *bus, struct urb *urb, int err);
@@ -739,16 +752,6 @@
 int usb_mon_register(const struct usb_mon_operations *ops);
 void usb_mon_deregister(void);
 
-#else
-
-static inline void usbmon_urb_submit(struct usb_bus *bus, struct urb *urb) {}
-static inline void usbmon_urb_submit_error(struct usb_bus *bus, struct urb *urb,
-    int error) {}
-static inline void usbmon_urb_complete(struct usb_bus *bus, struct urb *urb,
-		int status) {}
-
-#endif /* CONFIG_USB_MON || CONFIG_USB_MON_MODULE */
-
 /*-------------------------------------------------------------------------*/
 
 /* random stuff */
diff --git a/include/linux/usb/otg.h b/include/linux/usb/otg.h
index 6475f88..9a1b417 100644
--- a/include/linux/usb/otg.h
+++ b/include/linux/usb/otg.h
@@ -12,6 +12,7 @@
 
 #include <linux/phy/phy.h>
 #include <linux/usb/phy.h>
+#include <linux/android_kabi.h>
 
 struct usb_otg {
 	u8			default_a;
@@ -40,6 +41,7 @@
 	/* start or continue HNP role switch */
 	int	(*start_hnp)(struct usb_otg *otg);
 
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
diff --git a/include/linux/usb/phy.h b/include/linux/usb/phy.h
index e4de6bc..fd0f13b 100644
--- a/include/linux/usb/phy.h
+++ b/include/linux/usb/phy.h
@@ -10,9 +10,11 @@
 #ifndef __LINUX_USB_PHY_H
 #define __LINUX_USB_PHY_H
 
+#include <linux/android_vendor.h>
 #include <linux/extcon.h>
 #include <linux/notifier.h>
 #include <linux/usb.h>
+#include <linux/android_kabi.h>
 #include <uapi/linux/usb/charger.h>
 
 enum usb_phy_interface {
@@ -155,6 +157,9 @@
 	 * manually detect the charger type.
 	 */
 	enum usb_charger_type (*charger_detect)(struct usb_phy *x);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_KABI_RESERVE(1);
 };
 
 /* for board-specific init logic */
diff --git a/include/linux/usb/tcpm.h b/include/linux/usb/tcpm.h
index bffc8d3..cfe939b 100644
--- a/include/linux/usb/tcpm.h
+++ b/include/linux/usb/tcpm.h
@@ -114,6 +114,14 @@
  *              Optional; The USB Communications Capable bit indicates if port
  *              partner is capable of communication over the USB data lines
  *              (e.g. D+/- or SS Tx/Rx). Called to notify the status of the bit.
+ * @check_contaminant:
+ *		Optional; The callback is called when CC pins report open status
+ *		at the end of the toggling period. Chip level drivers are
+ *		expected to check for contaminant and re-enable toggling if
+ *		needed. When 0 is not returned, check_contaminant is expected to
+ *		restart toggling after checking the connector for contaminant.
+ *		This forces the TCPM state machine to tranistion to TOGGLING state
+ *		without calling start_toggling callback.
  */
 struct tcpc_dev {
 	struct fwnode_handle *fwnode;
@@ -148,6 +156,7 @@
 						 bool pps_active, u32 requested_vbus_voltage);
 	bool (*is_vbus_vsafe0v)(struct tcpc_dev *dev);
 	void (*set_partner_usb_comm_capable)(struct tcpc_dev *dev, bool enable);
+	int (*check_contaminant)(struct tcpc_dev *dev);
 };
 
 struct tcpm_port;
@@ -155,6 +164,10 @@
 struct tcpm_port *tcpm_register_port(struct device *dev, struct tcpc_dev *tcpc);
 void tcpm_unregister_port(struct tcpm_port *port);
 
+int tcpm_update_sink_capabilities(struct tcpm_port *port, const u32 *pdo,
+				  unsigned int nr_pdo,
+				  unsigned int operating_snk_mw);
+
 void tcpm_vbus_change(struct tcpm_port *port);
 void tcpm_cc_change(struct tcpm_port *port);
 void tcpm_sink_frs(struct tcpm_port *port);
@@ -165,5 +178,6 @@
 			       enum tcpm_transmit_status status);
 void tcpm_pd_hard_reset(struct tcpm_port *port);
 void tcpm_tcpc_reset(struct tcpm_port *port);
+bool tcpm_is_debouncing(struct tcpm_port *tcpm);
 
 #endif /* __LINUX_USB_TCPM_H */
diff --git a/include/linux/usb/typec.h b/include/linux/usb/typec.h
index c1e5910..9afa52b 100644
--- a/include/linux/usb/typec.h
+++ b/include/linux/usb/typec.h
@@ -4,6 +4,7 @@
 #define __LINUX_USB_TYPEC_H
 
 #include <linux/types.h>
+#include <linux/android_kabi.h>
 
 /* USB Type-C Specification releases */
 #define USB_TYPEC_REV_1_0	0x100 /* 1.0 */
@@ -221,6 +222,7 @@
 	int (*vconn_set)(struct typec_port *port, enum typec_role role);
 	int (*port_type_set)(struct typec_port *port,
 			     enum typec_port_type type);
+	ANDROID_KABI_RESERVE(1);
 };
 
 enum usb_pd_svdm_ver {
@@ -258,6 +260,7 @@
 	void			*driver_data;
 
 	const struct typec_operations	*ops;
+	ANDROID_KABI_RESERVE(1);
 };
 
 /* Specific to try_role(). Indicates the user want's to clear the preference. */
diff --git a/include/linux/usb/typec_altmode.h b/include/linux/usb/typec_altmode.h
index 65933cb..6053128 100644
--- a/include/linux/usb/typec_altmode.h
+++ b/include/linux/usb/typec_altmode.h
@@ -30,6 +30,7 @@
 
 	char				*desc;
 	const struct typec_altmode_ops	*ops;
+	ANDROID_KABI_RESERVE(1);
 };
 
 #define to_typec_altmode(d) container_of(d, struct typec_altmode, dev)
@@ -63,6 +64,7 @@
 	int (*notify)(struct typec_altmode *altmode, unsigned long conf,
 		      void *data);
 	int (*activate)(struct typec_altmode *altmode, int activate);
+	ANDROID_KABI_RESERVE(1);
 };
 
 int typec_altmode_enter(struct typec_altmode *altmode, u32 *vdo);
diff --git a/include/linux/usb/usbnet.h b/include/linux/usb/usbnet.h
index 8336e86..a25e384 100644
--- a/include/linux/usb/usbnet.h
+++ b/include/linux/usb/usbnet.h
@@ -23,6 +23,8 @@
 #ifndef	__LINUX_USB_USBNET_H
 #define	__LINUX_USB_USBNET_H
 
+#include <linux/android_kabi.h>
+
 /* interface from usbnet core to each USB networking link we handle */
 struct usbnet {
 	/* housekeeping */
@@ -84,6 +86,11 @@
 #		define EVENT_LINK_CHANGE	11
 #		define EVENT_SET_RX_MODE	12
 #		define EVENT_NO_IP_ALIGN	13
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 static inline struct usb_driver *driver_of(struct usb_interface *intf)
@@ -173,6 +180,9 @@
 	int		out;		/* tx endpoint */
 
 	unsigned long	data;		/* Misc driver specific data */
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 /* Minidrivers are just drivers using the "usbnet" core as a powerful
diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h
index 33a4240..bd1c6f3 100644
--- a/include/linux/user_namespace.h
+++ b/include/linux/user_namespace.h
@@ -10,6 +10,7 @@
 #include <linux/rwsem.h>
 #include <linux/sysctl.h>
 #include <linux/err.h>
+#include <linux/android_kabi.h>
 
 #define UID_GID_MAP_MAX_BASE_EXTENTS 5
 #define UID_GID_MAP_MAX_EXTENTS 340
@@ -99,6 +100,9 @@
 #endif
 	struct ucounts		*ucounts;
 	long ucount_max[UCOUNT_COUNTS];
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 } __randomize_layout;
 
 struct ucounts {
diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h
index b341dd6..dafdc7f 100644
--- a/include/linux/virtio_config.h
+++ b/include/linux/virtio_config.h
@@ -23,6 +23,8 @@
  *       any of @get/@set, @get_status/@set_status, or @get_features/
  *       @finalize_features are NOT safe to be called from an atomic
  *       context.
+ * @enable_cbs: enable the callbacks
+ *      vdev: the virtio_device
  * @get: read the value of a configuration field
  *	vdev: the virtio_device
  *	offset: the offset of the configuration field
@@ -76,6 +78,7 @@
  */
 typedef void vq_callback_t(struct virtqueue *);
 struct virtio_config_ops {
+	void (*enable_cbs)(struct virtio_device *vdev);
 	void (*get)(struct virtio_device *vdev, unsigned offset,
 		    void *buf, unsigned len);
 	void (*set)(struct virtio_device *vdev, unsigned offset,
@@ -230,6 +233,9 @@
 {
 	unsigned status = dev->config->get_status(dev);
 
+	if (dev->config->enable_cbs)
+                  dev->config->enable_cbs(dev);
+
 	BUG_ON(status & VIRTIO_CONFIG_S_DRIVER_OK);
 	dev->config->set_status(dev, status | VIRTIO_CONFIG_S_DRIVER_OK);
 }
diff --git a/include/linux/virtio_vsock.h b/include/linux/virtio_vsock.h
index 35d7eed..de584a7 100644
--- a/include/linux/virtio_vsock.h
+++ b/include/linux/virtio_vsock.h
@@ -9,7 +9,8 @@
 
 #define VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE	(1024 * 4)
 #define VIRTIO_VSOCK_MAX_BUF_SIZE		0xFFFFFFFFUL
-#define VIRTIO_VSOCK_MAX_PKT_BUF_SIZE		(1024 * 64)
+#define VIRTIO_VSOCK_MAX_PKT_BUF_SIZE		virtio_transport_max_vsock_pkt_buf_size
+extern uint virtio_transport_max_vsock_pkt_buf_size;
 
 enum {
 	VSOCK_VQ_RX     = 0, /* for host to guest data */
diff --git a/include/linux/vm_event.h b/include/linux/vm_event.h
new file mode 100644
index 0000000..689a213
--- /dev/null
+++ b/include/linux/vm_event.h
@@ -0,0 +1,111 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _LINUX_VM_EVENT_H
+#define _LINUX_VM_EVENT_H
+
+#include <linux/types.h>
+#include <linux/percpu.h>
+#include <linux/mmzone.h>
+#include <linux/vm_event_item.h>
+#include <linux/atomic.h>
+
+#ifdef CONFIG_VM_EVENT_COUNTERS
+/*
+ * Light weight per cpu counter implementation.
+ *
+ * Counters should only be incremented and no critical kernel component
+ * should rely on the counter values.
+ *
+ * Counters are handled completely inline. On many platforms the code
+ * generated will simply be the increment of a global address.
+ */
+
+struct vm_event_state {
+	unsigned long event[NR_VM_EVENT_ITEMS];
+};
+
+DECLARE_PER_CPU(struct vm_event_state, vm_event_states);
+
+/*
+ * vm counters are allowed to be racy. Use raw_cpu_ops to avoid the
+ * local_irq_disable overhead.
+ */
+static inline void __count_vm_event(enum vm_event_item item)
+{
+	raw_cpu_inc(vm_event_states.event[item]);
+}
+
+static inline void count_vm_event(enum vm_event_item item)
+{
+	this_cpu_inc(vm_event_states.event[item]);
+}
+
+static inline void __count_vm_events(enum vm_event_item item, long delta)
+{
+	raw_cpu_add(vm_event_states.event[item], delta);
+}
+
+static inline void count_vm_events(enum vm_event_item item, long delta)
+{
+	this_cpu_add(vm_event_states.event[item], delta);
+}
+
+extern void all_vm_events(unsigned long *);
+
+extern void vm_events_fold_cpu(int cpu);
+
+#else
+
+/* Disable counters */
+static inline void count_vm_event(enum vm_event_item item)
+{
+}
+static inline void count_vm_events(enum vm_event_item item, long delta)
+{
+}
+static inline void __count_vm_event(enum vm_event_item item)
+{
+}
+static inline void __count_vm_events(enum vm_event_item item, long delta)
+{
+}
+static inline void all_vm_events(unsigned long *ret)
+{
+}
+static inline void vm_events_fold_cpu(int cpu)
+{
+}
+
+#endif /* CONFIG_VM_EVENT_COUNTERS */
+
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT_STATS
+#define count_vm_spf_event(x) count_vm_event(x)
+#else
+#define count_vm_spf_event(x) do {} while (0)
+#endif
+
+#ifdef CONFIG_NUMA_BALANCING
+#define count_vm_numa_event(x)     count_vm_event(x)
+#define count_vm_numa_events(x, y) count_vm_events(x, y)
+#else
+#define count_vm_numa_event(x) do {} while (0)
+#define count_vm_numa_events(x, y) do { (void)(y); } while (0)
+#endif /* CONFIG_NUMA_BALANCING */
+
+#ifdef CONFIG_DEBUG_TLBFLUSH
+#define count_vm_tlb_event(x)	   count_vm_event(x)
+#define count_vm_tlb_events(x, y)  count_vm_events(x, y)
+#else
+#define count_vm_tlb_event(x)     do {} while (0)
+#define count_vm_tlb_events(x, y) do { (void)(y); } while (0)
+#endif
+
+#ifdef CONFIG_DEBUG_VM_VMACACHE
+#define count_vm_vmacache_event(x) count_vm_event(x)
+#else
+#define count_vm_vmacache_event(x) do {} while (0)
+#endif
+
+#define __count_zid_vm_events(item, zid, delta) \
+	__count_vm_events(item##_NORMAL - ZONE_NORMAL + zid, delta)
+
+#endif /* _LINUX_VM_EVENT_H */
diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h
index a185cc7..0e1302d 100644
--- a/include/linux/vm_event_item.h
+++ b/include/linux/vm_event_item.h
@@ -131,6 +131,32 @@
 		DIRECT_MAP_LEVEL2_SPLIT,
 		DIRECT_MAP_LEVEL3_SPLIT,
 #endif
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+		SPF_ATTEMPT,
+		SPF_ABORT,
+#endif
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT_STATS
+		SPF_ABORT_ODD,
+		SPF_ABORT_UNMAPPED,
+		SPF_ABORT_NO_SPECULATE,
+		SPF_ABORT_VMA_COPY,
+		SPF_ABORT_ACCESS_ERROR,
+		SPF_ABORT_PUD,
+		SPF_ABORT_PMD,
+		SPF_ABORT_ANON_VMA,
+		SPF_ABORT_PTE_MAP_LOCK_SEQ1,
+		SPF_ABORT_PTE_MAP_LOCK_PMD,
+		SPF_ABORT_PTE_MAP_LOCK_PTL,
+		SPF_ABORT_PTE_MAP_LOCK_SEQ2,
+		SPF_ABORT_USERFAULTFD,
+		SPF_ABORT_FAULT,
+		SPF_ABORT_SWAP,
+		SPF_ATTEMPT_ANON,
+		SPF_ATTEMPT_FILE,
+		SPF_ATTEMPT_NUMA,
+		SPF_ATTEMPT_PTE,
+		SPF_ATTEMPT_WP,
+#endif
 		NR_VM_EVENT_ITEMS
 };
 
diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h
index 5535be1..1d8c46f 100644
--- a/include/linux/vmalloc.h
+++ b/include/linux/vmalloc.h
@@ -35,17 +35,6 @@
 #define VM_DEFER_KMEMLEAK	0
 #endif
 
-/*
- * VM_KASAN is used slightly differently depending on CONFIG_KASAN_VMALLOC.
- *
- * If IS_ENABLED(CONFIG_KASAN_VMALLOC), VM_KASAN is set on a vm_struct after
- * shadow memory has been mapped. It's used to handle allocation errors so that
- * we don't try to poison shadow on free if it was never allocated.
- *
- * Otherwise, VM_KASAN is set for kasan_module_alloc() allocations and used to
- * determine which allocations need the module shadow freed.
- */
-
 /* bits [20..32] reserved for arch specific ioremap internals */
 
 /*
@@ -126,6 +115,13 @@
 }
 #endif
 
+#ifndef arch_vmap_pgprot_tagged
+static inline pgprot_t arch_vmap_pgprot_tagged(pgprot_t prot)
+{
+	return prot;
+}
+#endif
+
 /*
  *	Highlevel APIs for driver use
  */
diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h
index d6a6cf53..b6f2207 100644
--- a/include/linux/vmstat.h
+++ b/include/linux/vmstat.h
@@ -6,6 +6,7 @@
 #include <linux/percpu.h>
 #include <linux/mmzone.h>
 #include <linux/vm_event_item.h>
+#include <linux/vm_event.h>
 #include <linux/atomic.h>
 #include <linux/static_key.h>
 #include <linux/mmdebug.h>
@@ -40,100 +41,6 @@
 	NR_VM_WRITEBACK_STAT_ITEMS,
 };
 
-#ifdef CONFIG_VM_EVENT_COUNTERS
-/*
- * Light weight per cpu counter implementation.
- *
- * Counters should only be incremented and no critical kernel component
- * should rely on the counter values.
- *
- * Counters are handled completely inline. On many platforms the code
- * generated will simply be the increment of a global address.
- */
-
-struct vm_event_state {
-	unsigned long event[NR_VM_EVENT_ITEMS];
-};
-
-DECLARE_PER_CPU(struct vm_event_state, vm_event_states);
-
-/*
- * vm counters are allowed to be racy. Use raw_cpu_ops to avoid the
- * local_irq_disable overhead.
- */
-static inline void __count_vm_event(enum vm_event_item item)
-{
-	raw_cpu_inc(vm_event_states.event[item]);
-}
-
-static inline void count_vm_event(enum vm_event_item item)
-{
-	this_cpu_inc(vm_event_states.event[item]);
-}
-
-static inline void __count_vm_events(enum vm_event_item item, long delta)
-{
-	raw_cpu_add(vm_event_states.event[item], delta);
-}
-
-static inline void count_vm_events(enum vm_event_item item, long delta)
-{
-	this_cpu_add(vm_event_states.event[item], delta);
-}
-
-extern void all_vm_events(unsigned long *);
-
-extern void vm_events_fold_cpu(int cpu);
-
-#else
-
-/* Disable counters */
-static inline void count_vm_event(enum vm_event_item item)
-{
-}
-static inline void count_vm_events(enum vm_event_item item, long delta)
-{
-}
-static inline void __count_vm_event(enum vm_event_item item)
-{
-}
-static inline void __count_vm_events(enum vm_event_item item, long delta)
-{
-}
-static inline void all_vm_events(unsigned long *ret)
-{
-}
-static inline void vm_events_fold_cpu(int cpu)
-{
-}
-
-#endif /* CONFIG_VM_EVENT_COUNTERS */
-
-#ifdef CONFIG_NUMA_BALANCING
-#define count_vm_numa_event(x)     count_vm_event(x)
-#define count_vm_numa_events(x, y) count_vm_events(x, y)
-#else
-#define count_vm_numa_event(x) do {} while (0)
-#define count_vm_numa_events(x, y) do { (void)(y); } while (0)
-#endif /* CONFIG_NUMA_BALANCING */
-
-#ifdef CONFIG_DEBUG_TLBFLUSH
-#define count_vm_tlb_event(x)	   count_vm_event(x)
-#define count_vm_tlb_events(x, y)  count_vm_events(x, y)
-#else
-#define count_vm_tlb_event(x)     do {} while (0)
-#define count_vm_tlb_events(x, y) do { (void)(y); } while (0)
-#endif
-
-#ifdef CONFIG_DEBUG_VM_VMACACHE
-#define count_vm_vmacache_event(x) count_vm_event(x)
-#else
-#define count_vm_vmacache_event(x) do {} while (0)
-#endif
-
-#define __count_zid_vm_events(item, zid, delta) \
-	__count_vm_events(item##_NORMAL - ZONE_NORMAL + zid, delta)
-
 /*
  * Zone and node-based page accounting with per cpu differentials.
  */
diff --git a/include/linux/wait.h b/include/linux/wait.h
index 2104456..f93e0da 100644
--- a/include/linux/wait.h
+++ b/include/linux/wait.h
@@ -229,6 +229,7 @@
 #define wake_up_interruptible_nr(x, nr)	__wake_up(x, TASK_INTERRUPTIBLE, nr, NULL)
 #define wake_up_interruptible_all(x)	__wake_up(x, TASK_INTERRUPTIBLE, 0, NULL)
 #define wake_up_interruptible_sync(x)	__wake_up_sync((x), TASK_INTERRUPTIBLE)
+#define wake_up_sync(x)			__wake_up_sync((x), TASK_NORMAL)
 
 /*
  * Wakeup macros to be used to report events to the targets.
diff --git a/include/linux/wakeup_reason.h b/include/linux/wakeup_reason.h
new file mode 100644
index 0000000..54f5caa
--- /dev/null
+++ b/include/linux/wakeup_reason.h
@@ -0,0 +1,37 @@
+/*
+ * include/linux/wakeup_reason.h
+ *
+ * Logs the reason which caused the kernel to resume
+ * from the suspend mode.
+ *
+ * Copyright (C) 2014 Google, Inc.
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef _LINUX_WAKEUP_REASON_H
+#define _LINUX_WAKEUP_REASON_H
+
+#define MAX_SUSPEND_ABORT_LEN 256
+
+#ifdef CONFIG_SUSPEND
+void log_irq_wakeup_reason(int irq);
+void log_threaded_irq_wakeup_reason(int irq, int parent_irq);
+void log_suspend_abort_reason(const char *fmt, ...);
+void log_abnormal_wakeup_reason(const char *fmt, ...);
+void clear_wakeup_reasons(void);
+#else
+static inline void log_irq_wakeup_reason(int irq) { }
+static inline void log_threaded_irq_wakeup_reason(int irq, int parent_irq) { }
+static inline void log_suspend_abort_reason(const char *fmt, ...) { }
+static inline void log_abnormal_wakeup_reason(const char *fmt, ...) { }
+static inline void clear_wakeup_reasons(void) { }
+#endif
+
+#endif /* _LINUX_WAKEUP_REASON_H */
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h
index 20a47eb..d42c3a6 100644
--- a/include/linux/workqueue.h
+++ b/include/linux/workqueue.h
@@ -14,6 +14,7 @@
 #include <linux/atomic.h>
 #include <linux/cpumask.h>
 #include <linux/rcupdate.h>
+#include <linux/android_kabi.h>
 
 struct workqueue_struct;
 
@@ -102,6 +103,8 @@
 #ifdef CONFIG_LOCKDEP
 	struct lockdep_map lockdep_map;
 #endif
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 #define WORK_DATA_INIT()	ATOMIC_LONG_INIT((unsigned long)WORK_STRUCT_NO_POOL)
@@ -115,6 +118,9 @@
 	/* target workqueue and CPU ->timer uses to queue ->work */
 	struct workqueue_struct *wq;
 	int cpu;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 struct rcu_work {
diff --git a/include/linux/xz.h b/include/linux/xz.h
index 9884c84..7285ca5 100644
--- a/include/linux/xz.h
+++ b/include/linux/xz.h
@@ -234,6 +234,112 @@
 XZ_EXTERN void xz_dec_end(struct xz_dec *s);
 
 /*
+ * Decompressor for MicroLZMA, an LZMA variant with a very minimal header.
+ * See xz_dec_microlzma_alloc() below for details.
+ *
+ * These functions aren't used or available in preboot code and thus aren't
+ * marked with XZ_EXTERN. This avoids warnings about static functions that
+ * are never defined.
+ */
+/**
+ * struct xz_dec_microlzma - Opaque type to hold the MicroLZMA decoder state
+ */
+struct xz_dec_microlzma;
+
+/**
+ * xz_dec_microlzma_alloc() - Allocate memory for the MicroLZMA decoder
+ * @mode        XZ_SINGLE or XZ_PREALLOC
+ * @dict_size   LZMA dictionary size. This must be at least 4 KiB and
+ *              at most 3 GiB.
+ *
+ * In contrast to xz_dec_init(), this function only allocates the memory
+ * and remembers the dictionary size. xz_dec_microlzma_reset() must be used
+ * before calling xz_dec_microlzma_run().
+ *
+ * The amount of allocated memory is a little less than 30 KiB with XZ_SINGLE.
+ * With XZ_PREALLOC also a dictionary buffer of dict_size bytes is allocated.
+ *
+ * On success, xz_dec_microlzma_alloc() returns a pointer to
+ * struct xz_dec_microlzma. If memory allocation fails or
+ * dict_size is invalid, NULL is returned.
+ *
+ * The compressed format supported by this decoder is a raw LZMA stream
+ * whose first byte (always 0x00) has been replaced with bitwise-negation
+ * of the LZMA properties (lc/lp/pb) byte. For example, if lc/lp/pb is
+ * 3/0/2, the first byte is 0xA2. This way the first byte can never be 0x00.
+ * Just like with LZMA2, lc + lp <= 4 must be true. The LZMA end-of-stream
+ * marker must not be used. The unused values are reserved for future use.
+ * This MicroLZMA header format was created for use in EROFS but may be used
+ * by others too.
+ */
+extern struct xz_dec_microlzma *xz_dec_microlzma_alloc(enum xz_mode mode,
+						       uint32_t dict_size);
+
+/**
+ * xz_dec_microlzma_reset() - Reset the MicroLZMA decoder state
+ * @s           Decoder state allocated using xz_dec_microlzma_alloc()
+ * @comp_size   Compressed size of the input stream
+ * @uncomp_size Uncompressed size of the input stream. A value smaller
+ *              than the real uncompressed size of the input stream can
+ *              be specified if uncomp_size_is_exact is set to false.
+ *              uncomp_size can never be set to a value larger than the
+ *              expected real uncompressed size because it would eventually
+ *              result in XZ_DATA_ERROR.
+ * @uncomp_size_is_exact  This is an int instead of bool to avoid
+ *              requiring stdbool.h. This should normally be set to true.
+ *              When this is set to false, error detection is weaker.
+ */
+extern void xz_dec_microlzma_reset(struct xz_dec_microlzma *s,
+				   uint32_t comp_size, uint32_t uncomp_size,
+				   int uncomp_size_is_exact);
+
+/**
+ * xz_dec_microlzma_run() - Run the MicroLZMA decoder
+ * @s           Decoder state initialized using xz_dec_microlzma_reset()
+ * @b:          Input and output buffers
+ *
+ * This works similarly to xz_dec_run() with a few important differences.
+ * Only the differences are documented here.
+ *
+ * The only possible return values are XZ_OK, XZ_STREAM_END, and
+ * XZ_DATA_ERROR. This function cannot return XZ_BUF_ERROR: if no progress
+ * is possible due to lack of input data or output space, this function will
+ * keep returning XZ_OK. Thus, the calling code must be written so that it
+ * will eventually provide input and output space matching (or exceeding)
+ * comp_size and uncomp_size arguments given to xz_dec_microlzma_reset().
+ * If the caller cannot do this (for example, if the input file is truncated
+ * or otherwise corrupt), the caller must detect this error by itself to
+ * avoid an infinite loop.
+ *
+ * If the compressed data seems to be corrupt, XZ_DATA_ERROR is returned.
+ * This can happen also when incorrect dictionary, uncompressed, or
+ * compressed sizes have been specified.
+ *
+ * With XZ_PREALLOC only: As an extra feature, b->out may be NULL to skip over
+ * uncompressed data. This way the caller doesn't need to provide a temporary
+ * output buffer for the bytes that will be ignored.
+ *
+ * With XZ_SINGLE only: In contrast to xz_dec_run(), the return value XZ_OK
+ * is also possible and thus XZ_SINGLE is actually a limited multi-call mode.
+ * After XZ_OK the bytes decoded so far may be read from the output buffer.
+ * It is possible to continue decoding but the variables b->out and b->out_pos
+ * MUST NOT be changed by the caller. Increasing the value of b->out_size is
+ * allowed to make more output space available; one doesn't need to provide
+ * space for the whole uncompressed data on the first call. The input buffer
+ * may be changed normally like with XZ_PREALLOC. This way input data can be
+ * provided from non-contiguous memory.
+ */
+extern enum xz_ret xz_dec_microlzma_run(struct xz_dec_microlzma *s,
+					struct xz_buf *b);
+
+/**
+ * xz_dec_microlzma_end() - Free the memory allocated for the decoder state
+ * @s:          Decoder state allocated using xz_dec_microlzma_alloc().
+ *              If s is NULL, this function does nothing.
+ */
+extern void xz_dec_microlzma_end(struct xz_dec_microlzma *s);
+
+/*
  * Standalone build (userspace build or in-kernel build for boot time use)
  * needs a CRC32 implementation. For normal in-kernel use, kernel's own
  * CRC32 module is used instead, and users of this module don't need to
diff --git a/include/media/v4l2-common.h b/include/media/v4l2-common.h
index 5e25a09..40cd995 100644
--- a/include/media/v4l2-common.h
+++ b/include/media/v4l2-common.h
@@ -541,6 +541,10 @@
 s64 v4l2_get_link_freq(struct v4l2_ctrl_handler *handler, unsigned int mul,
 		       unsigned int div);
 
+void v4l2_simplify_fraction(u32 *numerator, u32 *denominator,
+		unsigned int n_terms, unsigned int threshold);
+u32 v4l2_fraction_to_interval(u32 numerator, u32 denominator);
+
 static inline u64 v4l2_buffer_get_timestamp(const struct v4l2_buffer *buf)
 {
 	/*
diff --git a/include/media/v4l2-ctrls.h b/include/media/v4l2-ctrls.h
index 575b59f..dc8a59b 100644
--- a/include/media/v4l2-ctrls.h
+++ b/include/media/v4l2-ctrls.h
@@ -11,6 +11,7 @@
 #include <linux/list.h>
 #include <linux/mutex.h>
 #include <linux/videodev2.h>
+#include <linux/android_kabi.h>
 #include <media/media-request.h>
 
 /*
@@ -85,6 +86,9 @@
 	struct v4l2_area *p_area;
 	void *p;
 	const void *p_const;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 /**
@@ -117,6 +121,8 @@
 	int (*g_volatile_ctrl)(struct v4l2_ctrl *ctrl);
 	int (*try_ctrl)(struct v4l2_ctrl *ctrl);
 	int (*s_ctrl)(struct v4l2_ctrl *ctrl);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -138,6 +144,8 @@
 	void (*log)(const struct v4l2_ctrl *ctrl);
 	int (*validate)(const struct v4l2_ctrl *ctrl, u32 idx,
 			union v4l2_ctrl_ptr ptr);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -288,6 +296,8 @@
 	union v4l2_ctrl_ptr p_def;
 	union v4l2_ctrl_ptr p_new;
 	union v4l2_ctrl_ptr p_cur;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -327,6 +337,8 @@
 	bool req_done;
 	bool valid_p_req;
 	union v4l2_ctrl_ptr p_req;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -377,6 +389,8 @@
 	struct list_head requests;
 	struct list_head requests_queued;
 	struct media_request_object req_obj;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -428,6 +442,8 @@
 	const char * const *qmenu;
 	const s64 *qmenu_int;
 	unsigned int is_private:1;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h
index 6a4afd4..72e6c26 100644
--- a/include/media/v4l2-dev.h
+++ b/include/media/v4l2-dev.h
@@ -16,6 +16,7 @@
 #include <linux/cdev.h>
 #include <linux/mutex.h>
 #include <linux/videodev2.h>
+#include <linux/android_kabi.h>
 
 #include <media/media-entity.h>
 
@@ -211,6 +212,8 @@
 	int (*mmap) (struct file *, struct vm_area_struct *);
 	int (*open) (struct file *);
 	int (*release) (struct file *);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /*
@@ -307,6 +310,9 @@
 	DECLARE_BITMAP(valid_ioctls, BASE_VIDIOC_PRIVATE);
 
 	struct mutex *lock;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 /**
diff --git a/include/media/v4l2-uvc.h b/include/media/v4l2-uvc.h
new file mode 100644
index 0000000..f83e316
--- /dev/null
+++ b/include/media/v4l2-uvc.h
@@ -0,0 +1,359 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ *  v4l2 uvc internal API header
+ *
+ *  Some commonly needed functions for uvc drivers
+ */
+
+#ifndef __LINUX_V4L2_UVC_H
+#define __LINUX_V4L2_UVC_H
+
+/* ------------------------------------------------------------------------
+ * GUIDs
+ */
+#define UVC_GUID_UVC_CAMERA \
+	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}
+#define UVC_GUID_UVC_OUTPUT \
+	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02}
+#define UVC_GUID_UVC_MEDIA_TRANSPORT_INPUT \
+	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}
+#define UVC_GUID_UVC_PROCESSING \
+	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01}
+#define UVC_GUID_UVC_SELECTOR \
+	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02}
+#define UVC_GUID_EXT_GPIO_CONTROLLER \
+	{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03}
+
+#define UVC_GUID_FORMAT_MJPEG \
+	{ 'M',  'J',  'P',  'G', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_YUY2 \
+	{ 'Y',  'U',  'Y',  '2', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_YUY2_ISIGHT \
+	{ 'Y',  'U',  'Y',  '2', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0x00, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_NV12 \
+	{ 'N',  'V',  '1',  '2', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_YV12 \
+	{ 'Y',  'V',  '1',  '2', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_I420 \
+	{ 'I',  '4',  '2',  '0', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_UYVY \
+	{ 'U',  'Y',  'V',  'Y', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_Y800 \
+	{ 'Y',  '8',  '0',  '0', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_Y8 \
+	{ 'Y',  '8',  ' ',  ' ', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_Y10 \
+	{ 'Y',  '1',  '0',  ' ', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_Y12 \
+	{ 'Y',  '1',  '2',  ' ', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_Y16 \
+	{ 'Y',  '1',  '6',  ' ', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_BY8 \
+	{ 'B',  'Y',  '8',  ' ', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_BA81 \
+	{ 'B',  'A',  '8',  '1', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_GBRG \
+	{ 'G',  'B',  'R',  'G', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_GRBG \
+	{ 'G',  'R',  'B',  'G', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_RGGB \
+	{ 'R',  'G',  'G',  'B', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_BG16 \
+	{ 'B',  'G',  '1',  '6', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_GB16 \
+	{ 'G',  'B',  '1',  '6', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_RG16 \
+	{ 'R',  'G',  '1',  '6', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_GR16 \
+	{ 'G',  'R',  '1',  '6', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_RGBP \
+	{ 'R',  'G',  'B',  'P', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_BGR3 \
+	{ 0x7d, 0xeb, 0x36, 0xe4, 0x4f, 0x52, 0xce, 0x11, \
+	 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70}
+#define UVC_GUID_FORMAT_M420 \
+	{ 'M',  '4',  '2',  '0', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+
+#define UVC_GUID_FORMAT_H264 \
+	{ 'H',  '2',  '6',  '4', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_H265 \
+	{ 'H',  '2',  '6',  '5', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_Y8I \
+	{ 'Y',  '8',  'I',  ' ', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_Y12I \
+	{ 'Y',  '1',  '2',  'I', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_Z16 \
+	{ 'Z',  '1',  '6',  ' ', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_RW10 \
+	{ 'R',  'W',  '1',  '0', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_INVZ \
+	{ 'I',  'N',  'V',  'Z', 0x90, 0x2d, 0x58, 0x4a, \
+	 0x92, 0x0b, 0x77, 0x3f, 0x1f, 0x2c, 0x55, 0x6b}
+#define UVC_GUID_FORMAT_INZI \
+	{ 'I',  'N',  'Z',  'I', 0x66, 0x1a, 0x42, 0xa2, \
+	 0x90, 0x65, 0xd0, 0x18, 0x14, 0xa8, 0xef, 0x8a}
+#define UVC_GUID_FORMAT_INVI \
+	{ 'I',  'N',  'V',  'I', 0xdb, 0x57, 0x49, 0x5e, \
+	 0x8e, 0x3f, 0xf4, 0x79, 0x53, 0x2b, 0x94, 0x6f}
+#define UVC_GUID_FORMAT_CNF4 \
+	{ 'C',  ' ',  ' ',  ' ', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+
+#define UVC_GUID_FORMAT_D3DFMT_L8 \
+	{0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_KSMEDIA_L8_IR \
+	{0x32, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+
+#define UVC_GUID_FORMAT_HEVC \
+	{ 'H',  'E',  'V',  'C', 0x00, 0x00, 0x10, 0x00, \
+	 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+
+/* ------------------------------------------------------------------------
+ * Video formats
+ */
+
+struct uvc_format_desc {
+	char *name;
+	u8 guid[16];
+	u32 fcc;
+};
+
+static struct uvc_format_desc uvc_fmts[] = {
+	{
+		.name		= "YUV 4:2:2 (YUYV)",
+		.guid		= UVC_GUID_FORMAT_YUY2,
+		.fcc		= V4L2_PIX_FMT_YUYV,
+	},
+	{
+		.name		= "YUV 4:2:2 (YUYV)",
+		.guid		= UVC_GUID_FORMAT_YUY2_ISIGHT,
+		.fcc		= V4L2_PIX_FMT_YUYV,
+	},
+	{
+		.name		= "YUV 4:2:0 (NV12)",
+		.guid		= UVC_GUID_FORMAT_NV12,
+		.fcc		= V4L2_PIX_FMT_NV12,
+	},
+	{
+		.name		= "MJPEG",
+		.guid		= UVC_GUID_FORMAT_MJPEG,
+		.fcc		= V4L2_PIX_FMT_MJPEG,
+	},
+	{
+		.name		= "YVU 4:2:0 (YV12)",
+		.guid		= UVC_GUID_FORMAT_YV12,
+		.fcc		= V4L2_PIX_FMT_YVU420,
+	},
+	{
+		.name		= "YUV 4:2:0 (I420)",
+		.guid		= UVC_GUID_FORMAT_I420,
+		.fcc		= V4L2_PIX_FMT_YUV420,
+	},
+	{
+		.name		= "YUV 4:2:0 (M420)",
+		.guid		= UVC_GUID_FORMAT_M420,
+		.fcc		= V4L2_PIX_FMT_M420,
+	},
+	{
+		.name		= "YUV 4:2:2 (UYVY)",
+		.guid		= UVC_GUID_FORMAT_UYVY,
+		.fcc		= V4L2_PIX_FMT_UYVY,
+	},
+	{
+		.name		= "Greyscale 8-bit (Y800)",
+		.guid		= UVC_GUID_FORMAT_Y800,
+		.fcc		= V4L2_PIX_FMT_GREY,
+	},
+	{
+		.name		= "Greyscale 8-bit (Y8  )",
+		.guid		= UVC_GUID_FORMAT_Y8,
+		.fcc		= V4L2_PIX_FMT_GREY,
+	},
+	{
+		.name		= "Greyscale 8-bit (D3DFMT_L8)",
+		.guid		= UVC_GUID_FORMAT_D3DFMT_L8,
+		.fcc		= V4L2_PIX_FMT_GREY,
+	},
+	{
+		.name		= "IR 8-bit (L8_IR)",
+		.guid		= UVC_GUID_FORMAT_KSMEDIA_L8_IR,
+		.fcc		= V4L2_PIX_FMT_GREY,
+	},
+	{
+		.name		= "Greyscale 10-bit (Y10 )",
+		.guid		= UVC_GUID_FORMAT_Y10,
+		.fcc		= V4L2_PIX_FMT_Y10,
+	},
+	{
+		.name		= "Greyscale 12-bit (Y12 )",
+		.guid		= UVC_GUID_FORMAT_Y12,
+		.fcc		= V4L2_PIX_FMT_Y12,
+	},
+	{
+		.name		= "Greyscale 16-bit (Y16 )",
+		.guid		= UVC_GUID_FORMAT_Y16,
+		.fcc		= V4L2_PIX_FMT_Y16,
+	},
+	{
+		.name		= "BGGR Bayer (BY8 )",
+		.guid		= UVC_GUID_FORMAT_BY8,
+		.fcc		= V4L2_PIX_FMT_SBGGR8,
+	},
+	{
+		.name		= "BGGR Bayer (BA81)",
+		.guid		= UVC_GUID_FORMAT_BA81,
+		.fcc		= V4L2_PIX_FMT_SBGGR8,
+	},
+	{
+		.name		= "GBRG Bayer (GBRG)",
+		.guid		= UVC_GUID_FORMAT_GBRG,
+		.fcc		= V4L2_PIX_FMT_SGBRG8,
+	},
+	{
+		.name		= "GRBG Bayer (GRBG)",
+		.guid		= UVC_GUID_FORMAT_GRBG,
+		.fcc		= V4L2_PIX_FMT_SGRBG8,
+	},
+	{
+		.name		= "RGGB Bayer (RGGB)",
+		.guid		= UVC_GUID_FORMAT_RGGB,
+		.fcc		= V4L2_PIX_FMT_SRGGB8,
+	},
+	{
+		.name		= "RGB565",
+		.guid		= UVC_GUID_FORMAT_RGBP,
+		.fcc		= V4L2_PIX_FMT_RGB565,
+	},
+	{
+		.name		= "BGR 8:8:8 (BGR3)",
+		.guid		= UVC_GUID_FORMAT_BGR3,
+		.fcc		= V4L2_PIX_FMT_BGR24,
+	},
+	{
+		.name		= "H.264",
+		.guid		= UVC_GUID_FORMAT_H264,
+		.fcc		= V4L2_PIX_FMT_H264,
+	},
+	{
+		.name		= "H.265",
+		.guid		= UVC_GUID_FORMAT_H265,
+		.fcc		= V4L2_PIX_FMT_HEVC,
+	},
+	{
+		.name		= "Greyscale 8 L/R (Y8I)",
+		.guid		= UVC_GUID_FORMAT_Y8I,
+		.fcc		= V4L2_PIX_FMT_Y8I,
+	},
+	{
+		.name		= "Greyscale 12 L/R (Y12I)",
+		.guid		= UVC_GUID_FORMAT_Y12I,
+		.fcc		= V4L2_PIX_FMT_Y12I,
+	},
+	{
+		.name		= "Depth data 16-bit (Z16)",
+		.guid		= UVC_GUID_FORMAT_Z16,
+		.fcc		= V4L2_PIX_FMT_Z16,
+	},
+	{
+		.name		= "Bayer 10-bit (SRGGB10P)",
+		.guid		= UVC_GUID_FORMAT_RW10,
+		.fcc		= V4L2_PIX_FMT_SRGGB10P,
+	},
+	{
+		.name		= "Bayer 16-bit (SBGGR16)",
+		.guid		= UVC_GUID_FORMAT_BG16,
+		.fcc		= V4L2_PIX_FMT_SBGGR16,
+	},
+	{
+		.name		= "Bayer 16-bit (SGBRG16)",
+		.guid		= UVC_GUID_FORMAT_GB16,
+		.fcc		= V4L2_PIX_FMT_SGBRG16,
+	},
+	{
+		.name		= "Bayer 16-bit (SRGGB16)",
+		.guid		= UVC_GUID_FORMAT_RG16,
+		.fcc		= V4L2_PIX_FMT_SRGGB16,
+	},
+	{
+		.name		= "Bayer 16-bit (SGRBG16)",
+		.guid		= UVC_GUID_FORMAT_GR16,
+		.fcc		= V4L2_PIX_FMT_SGRBG16,
+	},
+	{
+		.name		= "Depth data 16-bit (Z16)",
+		.guid		= UVC_GUID_FORMAT_INVZ,
+		.fcc		= V4L2_PIX_FMT_Z16,
+	},
+	{
+		.name		= "Greyscale 10-bit (Y10 )",
+		.guid		= UVC_GUID_FORMAT_INVI,
+		.fcc		= V4L2_PIX_FMT_Y10,
+	},
+	{
+		.name		= "IR:Depth 26-bit (INZI)",
+		.guid		= UVC_GUID_FORMAT_INZI,
+		.fcc		= V4L2_PIX_FMT_INZI,
+	},
+	{
+		.name		= "4-bit Depth Confidence (Packed)",
+		.guid		= UVC_GUID_FORMAT_CNF4,
+		.fcc		= V4L2_PIX_FMT_CNF4,
+	},
+	{
+		.name		= "HEVC",
+		.guid		= UVC_GUID_FORMAT_HEVC,
+		.fcc		= V4L2_PIX_FMT_HEVC,
+	},
+};
+
+static inline struct uvc_format_desc *uvc_format_by_guid(const u8 guid[16])
+{
+	unsigned int len = ARRAY_SIZE(uvc_fmts);
+	unsigned int i;
+
+	for (i = 0; i < len; ++i) {
+		if (memcmp(guid, uvc_fmts[i].guid, 16) == 0)
+			return &uvc_fmts[i];
+	}
+
+	return NULL;
+}
+
+#endif /* __LINUX_V4L2_UVC_H */
diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h
index 3b5986c..e2ffcc5 100644
--- a/include/media/videobuf2-core.h
+++ b/include/media/videobuf2-core.h
@@ -20,7 +20,7 @@
 #include <media/media-request.h>
 #include <media/frame_vector.h>
 
-#define VB2_MAX_FRAME	(32)
+#define VB2_MAX_FRAME	(64)
 #define VB2_MAX_PLANES	(8)
 
 /**
diff --git a/include/media/videobuf2-v4l2.h b/include/media/videobuf2-v4l2.h
index b66585e..0055b079 100644
--- a/include/media/videobuf2-v4l2.h
+++ b/include/media/videobuf2-v4l2.h
@@ -13,6 +13,7 @@
 #define _MEDIA_VIDEOBUF2_V4L2_H
 
 #include <linux/videodev2.h>
+#include <linux/android_kabi.h>
 #include <media/videobuf2-core.h>
 
 #if VB2_MAX_FRAME != VIDEO_MAX_FRAME
@@ -51,6 +52,8 @@
 	__s32			request_fd;
 	bool			is_held;
 	struct vb2_plane	planes[VB2_MAX_PLANES];
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /* VB2 V4L2 flags as set in vb2_queue.subsystem_flags */
diff --git a/include/net/TEST_MAPPING b/include/net/TEST_MAPPING
new file mode 100644
index 0000000..1eb8d43
--- /dev/null
+++ b/include/net/TEST_MAPPING
@@ -0,0 +1,12 @@
+{
+  "presubmit": [
+    {
+      "name": "CtsNetTestCases",
+      "options": [
+        {
+          "exclude-annotation": "com.android.testutils.SkipPresubmit"
+        }
+      ]
+    }
+  ]
+}
diff --git a/include/net/addrconf.h b/include/net/addrconf.h
index 53627afab..1f14107 100644
--- a/include/net/addrconf.h
+++ b/include/net/addrconf.h
@@ -269,6 +269,18 @@
 void addrconf_prefix_rcv(struct net_device *dev,
 			 u8 *opt, int len, bool sllao);
 
+/* Determines into what table to put autoconf PIO/RIO/default routes
+ * learned on this device.
+ *
+ * - If 0, use the same table for every device. This puts routes into
+ *   one of RT_TABLE_{PREFIX,INFO,DFLT} depending on the type of route
+ *   (but note that these three are currently all equal to
+ *   RT6_TABLE_MAIN).
+ * - If > 0, use the specified table.
+ * - If < 0, put routes into table dev->ifindex + (-rt_table).
+ */
+u32 addrconf_rt_table(const struct net_device *dev, u32 default_table);
+
 /*
  *	anycast prototypes (anycast.c)
  */
diff --git a/include/net/af_vsock.h b/include/net/af_vsock.h
index f742e50..ab20767 100644
--- a/include/net/af_vsock.h
+++ b/include/net/af_vsock.h
@@ -205,8 +205,7 @@
 struct sock *vsock_find_connected_socket(struct sockaddr_vm *src,
 					 struct sockaddr_vm *dst);
 void vsock_remove_sock(struct vsock_sock *vsk);
-void vsock_for_each_connected_socket(struct vsock_transport *transport,
-				     void (*fn)(struct sock *sk));
+void vsock_for_each_connected_socket(void (*fn)(struct sock *sk));
 int vsock_assign_transport(struct vsock_sock *vsk, struct vsock_sock *psk);
 bool vsock_find_cid(unsigned int cid);
 
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index 3da5cfc..ea63120f 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -28,6 +28,7 @@
 #include <linux/idr.h>
 #include <linux/leds.h>
 #include <linux/rculist.h>
+#include <linux/android_kabi.h>
 
 #include <net/bluetooth/hci.h>
 #include <net/bluetooth/hci_sock.h>
@@ -609,6 +610,11 @@
 	int (*set_bdaddr)(struct hci_dev *hdev, const bdaddr_t *bdaddr);
 	void (*cmd_timeout)(struct hci_dev *hdev);
 	bool (*prevent_wake)(struct hci_dev *hdev);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 #define HCI_PHY_HANDLE(handle)	(handle & 0xff)
@@ -706,6 +712,11 @@
 	void (*connect_cfm_cb)	(struct hci_conn *conn, u8 status);
 	void (*security_cfm_cb)	(struct hci_conn *conn, u8 status);
 	void (*disconn_cfm_cb)	(struct hci_conn *conn, u8 reason);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 struct hci_chan {
@@ -716,6 +727,8 @@
 	unsigned int	sent;
 	__u8		state;
 	bool		amp;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct hci_conn_params {
@@ -742,6 +755,8 @@
 	struct hci_conn *conn;
 	bool explicit_connect;
 	u32 current_flags;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 extern struct list_head hci_dev_list;
@@ -1494,6 +1509,8 @@
 								__u8 encrypt);
 	void (*key_change_cfm)	(struct hci_conn *conn, __u8 status);
 	void (*role_switch_cfm)	(struct hci_conn *conn, __u8 status, __u8 role);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 static inline void hci_connect_cfm(struct hci_conn *conn, __u8 status)
@@ -1754,6 +1771,8 @@
 	size_t handler_count;
 	const struct hci_mgmt_handler *handlers;
 	void (*hdev_init) (struct sock *sk, struct hci_dev *hdev);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 int hci_mgmt_chan_register(struct hci_mgmt_chan *c);
diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h
index 2f766e3..2145350 100644
--- a/include/net/bluetooth/l2cap.h
+++ b/include/net/bluetooth/l2cap.h
@@ -29,6 +29,7 @@
 
 #include <asm/unaligned.h>
 #include <linux/atomic.h>
+#include <linux/android_kabi.h>
 
 /* L2CAP defaults */
 #define L2CAP_DEFAULT_MTU		672
@@ -645,6 +646,9 @@
 	void			*data;
 	const struct l2cap_ops	*ops;
 	struct mutex		lock;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 struct l2cap_ops {
@@ -669,6 +673,9 @@
 					       unsigned long len, int nb);
 	int			(*filter) (struct l2cap_chan * chan,
 					   struct sk_buff *skb);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 struct l2cap_conn {
@@ -704,6 +711,9 @@
 	struct mutex		chan_lock;
 	struct kref		ref;
 	struct list_head	users;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 struct l2cap_user {
diff --git a/include/net/bluetooth/rfcomm.h b/include/net/bluetooth/rfcomm.h
index 99d2687..d8f4e83 100644
--- a/include/net/bluetooth/rfcomm.h
+++ b/include/net/bluetooth/rfcomm.h
@@ -22,6 +22,7 @@
 */
 
 #include <linux/refcount.h>
+#include <linux/android_kabi.h>
 
 #ifndef __RFCOMM_H
 #define __RFCOMM_H
@@ -164,6 +165,8 @@
 	uint   mtu;
 
 	struct list_head dlcs;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct rfcomm_dlc {
@@ -197,6 +200,9 @@
 	void (*data_ready)(struct rfcomm_dlc *d, struct sk_buff *skb);
 	void (*state_change)(struct rfcomm_dlc *d, int err);
 	void (*modem_status)(struct rfcomm_dlc *d, u8 v24_sig);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 /* DLC and session flags */
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 963a810..e626e45 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -23,6 +23,7 @@
 #include <linux/ieee80211.h>
 #include <linux/net.h>
 #include <linux/rfkill.h>
+#include <linux/android_kabi.h>
 #include <net/regulatory.h>
 
 /**
@@ -109,7 +110,12 @@
  *	on this channel.
  * @IEEE80211_CHAN_16MHZ: 16 MHz bandwidth is permitted
  *	on this channel.
- *
+ * @IEEE80211_CHAN_NO_320MHZ: If the driver supports 320 MHz on the band,
+ *	this flag indicates that a 320 MHz channel cannot use this
+ *	channel as the control or any of the secondary channels.
+ *	This may be due to the driver or due to regulatory bandwidth
+ *	restrictions.
+ * @IEEE80211_CHAN_NO_EHT: EHT operation is not permitted on this channel.
  */
 enum ieee80211_channel_flags {
 	IEEE80211_CHAN_DISABLED		= 1<<0,
@@ -131,6 +137,8 @@
 	IEEE80211_CHAN_4MHZ		= 1<<16,
 	IEEE80211_CHAN_8MHZ		= 1<<17,
 	IEEE80211_CHAN_16MHZ		= 1<<18,
+	IEEE80211_CHAN_NO_320MHZ	= 1<<19,
+	IEEE80211_CHAN_NO_EHT		= 1<<20,
 };
 
 #define IEEE80211_CHAN_NO_HT40 \
@@ -361,6 +369,49 @@
 };
 
 /**
+ * struct ieee80211_eht_mcs_nss_supp - EHT max supported NSS per MCS
+ *
+ * See P802.11be_D1.3 Table 9-401k - "Subfields of the Supported EHT-MCS
+ * and NSS Set field"
+ *
+ * @only_20mhz: MCS/NSS support for 20 MHz-only STA.
+ * @bw: MCS/NSS support for 80, 160 and 320 MHz
+ * @bw._80: MCS/NSS support for BW <= 80 MHz
+ * @bw._160: MCS/NSS support for BW = 160 MHz
+ * @bw._320: MCS/NSS support for BW = 320 MHz
+ */
+struct ieee80211_eht_mcs_nss_supp {
+	union {
+		struct ieee80211_eht_mcs_nss_supp_20mhz_only only_20mhz;
+		struct {
+			struct ieee80211_eht_mcs_nss_supp_bw _80;
+			struct ieee80211_eht_mcs_nss_supp_bw _160;
+			struct ieee80211_eht_mcs_nss_supp_bw _320;
+		} __packed bw;
+	} __packed;
+} __packed;
+
+#define IEEE80211_EHT_PPE_THRES_MAX_LEN		32
+
+/**
+ * struct ieee80211_sta_eht_cap - STA's EHT capabilities
+ *
+ * This structure describes most essential parameters needed
+ * to describe 802.11be EHT capabilities for a STA.
+ *
+ * @has_eht: true iff EHT data is valid.
+ * @eht_cap_elem: Fixed portion of the eht capabilities element.
+ * @eht_mcs_nss_supp: The supported NSS/MCS combinations.
+ * @eht_ppe_thres: Holds the PPE Thresholds data.
+ */
+struct ieee80211_sta_eht_cap {
+	bool has_eht;
+	struct ieee80211_eht_cap_elem_fixed eht_cap_elem;
+	struct ieee80211_eht_mcs_nss_supp eht_mcs_nss_supp;
+	u8 eht_ppe_thres[IEEE80211_EHT_PPE_THRES_MAX_LEN];
+};
+
+/**
  * struct ieee80211_sband_iftype_data - sband data per interface type
  *
  * This structure encapsulates sband data that is relevant for the
@@ -371,6 +422,7 @@
  * @he_cap: holds the HE capabilities
  * @he_6ghz_capa: HE 6 GHz capabilities, must be filled in for a
  *	6 GHz band channel (and 0 may be valid value).
+ * @eht_cap: STA's EHT capabilities
  * @vendor_elems: vendor element(s) to advertise
  * @vendor_elems.data: vendor element(s) data
  * @vendor_elems.len: vendor element(s) length
@@ -379,10 +431,21 @@
 	u16 types_mask;
 	struct ieee80211_sta_he_cap he_cap;
 	struct ieee80211_he_6ghz_capa he_6ghz_capa;
+	struct ieee80211_sta_eht_cap eht_cap;
 	struct {
 		const u8 *data;
 		unsigned int len;
 	} vendor_elems;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+	ANDROID_BACKPORT_RESERVED(4);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
+	ANDROID_VENDOR_DATA(4);
 };
 
 /**
@@ -445,7 +508,7 @@
  * This structure describes most essential parameters needed
  * to describe 802.11ah S1G capabilities for a STA.
  *
- * @s1g_supported: is STA an S1G STA
+ * @s1g: is STA an S1G STA
  * @cap: S1G capabilities information
  * @nss_mcs: Supported NSS MCS set
  */
@@ -492,6 +555,16 @@
 	struct ieee80211_edmg edmg_cap;
 	u16 n_iftype_data;
 	const struct ieee80211_sband_iftype_data *iftype_data;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+	ANDROID_BACKPORT_RESERVED(4);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
+	ANDROID_VENDOR_DATA(4);
 };
 
 /**
@@ -565,6 +638,26 @@
 }
 
 /**
+ * ieee80211_get_eht_iftype_cap - return ETH capabilities for an sband's iftype
+ * @sband: the sband to search for the iftype on
+ * @iftype: enum nl80211_iftype
+ *
+ * Return: pointer to the struct ieee80211_sta_eht_cap, or NULL is none found
+ */
+static inline const struct ieee80211_sta_eht_cap *
+ieee80211_get_eht_iftype_cap(const struct ieee80211_supported_band *sband,
+			     enum nl80211_iftype iftype)
+{
+	const struct ieee80211_sband_iftype_data *data =
+		ieee80211_get_sband_iftype_data(sband, iftype);
+
+	if (data && data->eht_cap.has_eht)
+		return &data->eht_cap;
+
+	return NULL;
+}
+
+/**
  * wiphy_read_of_freq_limits - read frequency limits from device tree
  *
  * @wiphy: the wireless device to get extra limits for
@@ -661,6 +754,12 @@
 	u16 vlan_id;
 	u32 cipher;
 	enum nl80211_key_mode mode;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
 };
 
 /**
@@ -683,6 +782,16 @@
 	u32 center_freq2;
 	struct ieee80211_edmg edmg;
 	u16 freq1_offset;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+	ANDROID_BACKPORT_RESERVED(4);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
+	ANDROID_VENDOR_DATA(4);
 };
 
 /*
@@ -743,6 +852,22 @@
 };
 
 /**
+ * struct cfg80211_fils_aad - FILS AAD data
+ * @macaddr: STA MAC address
+ * @kek: FILS KEK
+ * @kek_len: FILS KEK length
+ * @snonce: STA Nonce
+ * @anonce: AP Nonce
+ */
+struct cfg80211_fils_aad {
+	const u8 *macaddr;
+	const u8 *kek;
+	u8 kek_len;
+	const u8 *snonce;
+	const u8 *anonce;
+};
+
+/**
  * cfg80211_get_chandef_type - return old channel type from chandef
  * @chandef: the channel definition
  *
@@ -854,19 +979,18 @@
 				  enum nl80211_iftype iftype);
 
 /**
- * ieee80211_chandef_rate_flags - returns rate flags for a channel
+ * ieee80211_chanwidth_rate_flags - return rate flags for channel width
+ * @width: the channel width of the channel
  *
  * In some channel types, not all rates may be used - for example CCK
  * rates may not be used in 5/10 MHz channels.
  *
- * @chandef: channel definition for the channel
- *
- * Returns: rate flags which apply for this channel
+ * Returns: rate flags which apply for this channel width
  */
 static inline enum ieee80211_rate_flags
-ieee80211_chandef_rate_flags(struct cfg80211_chan_def *chandef)
+ieee80211_chanwidth_rate_flags(enum nl80211_chan_width width)
 {
-	switch (chandef->width) {
+	switch (width) {
 	case NL80211_CHAN_WIDTH_5:
 		return IEEE80211_RATE_SUPPORTS_5MHZ;
 	case NL80211_CHAN_WIDTH_10:
@@ -878,6 +1002,20 @@
 }
 
 /**
+ * ieee80211_chandef_rate_flags - returns rate flags for a channel
+ * @chandef: channel definition for the channel
+ *
+ * See ieee80211_chanwidth_rate_flags().
+ *
+ * Returns: rate flags which apply for this channel
+ */
+static inline enum ieee80211_rate_flags
+ieee80211_chandef_rate_flags(struct cfg80211_chan_def *chandef)
+{
+	return ieee80211_chanwidth_rate_flags(chandef->width);
+}
+
+/**
  * ieee80211_chandef_max_power - maximum transmission power for the chandef
  *
  * In some regulations, the transmit power may depend on the configured channel
@@ -978,6 +1116,7 @@
 };
 
 #define CFG80211_MAX_WEP_KEYS	4
+#define CFG80211_MAX_NUM_AKM_SUITES	10
 
 /**
  * struct cfg80211_crypto_settings - Crypto settings
@@ -1029,7 +1168,7 @@
 	int n_ciphers_pairwise;
 	u32 ciphers_pairwise[NL80211_MAX_NR_CIPHER_SUITES];
 	int n_akm_suites;
-	u32 akm_suites[NL80211_MAX_NR_AKM_SUITES];
+	u32 akm_suites[CFG80211_MAX_NUM_AKM_SUITES];
 	bool control_port;
 	__be16 control_port_ethertype;
 	bool control_port_no_encrypt;
@@ -1041,10 +1180,49 @@
 	const u8 *sae_pwd;
 	u8 sae_pwd_len;
 	enum nl80211_sae_pwe_mechanism sae_pwe;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+
+	ANDROID_KABI_RESERVE(1);
+};
+
+/**
+ * struct cfg80211_mbssid_config - AP settings for multi bssid
+ *
+ * @tx_wdev: pointer to the transmitted interface in the MBSSID set
+ * @index: index of this AP in the multi bssid group.
+ * @ema: set to true if the beacons should be sent out in EMA mode.
+ */
+struct cfg80211_mbssid_config {
+	struct wireless_dev *tx_wdev;
+	u8 index;
+	bool ema;
+};
+
+/**
+ * struct cfg80211_mbssid_elems - Multiple BSSID elements
+ *
+ * @cnt: Number of elements in array %elems.
+ *
+ * @elem: Array of multiple BSSID element(s) to be added into Beacon frames.
+ * @elem.data: Data for multiple BSSID elements.
+ * @elem.len: Length of data.
+ */
+struct cfg80211_mbssid_elems {
+	u8 cnt;
+	struct {
+		const u8 *data;
+		size_t len;
+	} elem[];
 };
 
 /**
  * struct cfg80211_beacon_data - beacon data
+ * @link_id: the link ID for the AP MLD link sending this beacon
  * @head: head portion of beacon (before TIM IE)
  *	or %NULL if not changed
  * @tail: tail portion of beacon (after TIM IE)
@@ -1061,6 +1239,7 @@
  * @assocresp_ies_len: length of assocresp_ies in octets
  * @probe_resp_len: length of probe response template (@probe_resp)
  * @probe_resp: probe response template (AP mode only)
+ * @mbssid_ies: multiple BSSID elements
  * @ftm_responder: enable FTM responder functionality; -1 for no change
  *	(which also implies no change in LCI/civic location data)
  * @lci: Measurement Report element content, starting with Measurement Token
@@ -1069,8 +1248,13 @@
  *	Token (measurement type 11)
  * @lci_len: LCI data length
  * @civicloc_len: Civic location data length
+ * @he_bss_color: BSS Color settings
+ * @he_bss_color_valid: indicates whether bss color
+ *	attribute is present in beacon data or not.
  */
 struct cfg80211_beacon_data {
+	unsigned int link_id;
+
 	const u8 *head, *tail;
 	const u8 *beacon_ies;
 	const u8 *proberesp_ies;
@@ -1078,6 +1262,7 @@
 	const u8 *probe_resp;
 	const u8 *lci;
 	const u8 *civicloc;
+	struct cfg80211_mbssid_elems *mbssid_ies;
 	s8 ftm_responder;
 
 	size_t head_len, tail_len;
@@ -1087,6 +1272,20 @@
 	size_t probe_resp_len;
 	size_t lci_len;
 	size_t civicloc_len;
+	struct cfg80211_he_bss_color he_bss_color;
+	bool he_bss_color_valid;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+	ANDROID_BACKPORT_RESERVED(4);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
+	ANDROID_VENDOR_DATA(4);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct mac_address {
@@ -1143,17 +1342,6 @@
 };
 
 /**
- * enum cfg80211_ap_settings_flags - AP settings flags
- *
- * Used by cfg80211_ap_settings
- *
- * @AP_SETTINGS_EXTERNAL_AUTH_SUPPORT: AP supports external authentication
- */
-enum cfg80211_ap_settings_flags {
-	AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = BIT(0),
-};
-
-/**
  * struct cfg80211_ap_settings - AP configuration
  *
  * Used to configure an AP interface.
@@ -1181,6 +1369,8 @@
  * @ht_cap: HT capabilities (or %NULL if HT isn't enabled)
  * @vht_cap: VHT capabilities (or %NULL if VHT isn't enabled)
  * @he_cap: HE capabilities (or %NULL if HE isn't enabled)
+ * @eht_cap: EHT capabilities (or %NULL if EHT isn't enabled)
+ * @eht_oper: EHT operation IE (or %NULL if EHT isn't enabled)
  * @ht_required: stations must support HT
  * @vht_required: stations must support VHT
  * @twt_responder: Enable Target Wait Time
@@ -1188,10 +1378,13 @@
  * @sae_h2e_required: stations must support direct H2E technique in SAE
  * @flags: flags, as defined in enum cfg80211_ap_settings_flags
  * @he_obss_pd: OBSS Packet Detection settings
- * @he_bss_color: BSS Color settings
  * @he_oper: HE operation IE (or %NULL if HE isn't enabled)
  * @fils_discovery: FILS discovery transmission parameters
  * @unsol_bcast_probe_resp: Unsolicited broadcast probe response parameters
+ * @mbssid_config: AP settings for multiple bssid
+ * @punct_bitmap: Preamble puncturing bitmap. Each bit represents
+ *	a 20 MHz channel, lowest bit corresponding to the lowest channel.
+ *	Bit set to 1 indicates that the channel is punctured.
  */
 struct cfg80211_ap_settings {
 	struct cfg80211_chan_def chandef;
@@ -1217,13 +1410,30 @@
 	const struct ieee80211_vht_cap *vht_cap;
 	const struct ieee80211_he_cap_elem *he_cap;
 	const struct ieee80211_he_operation *he_oper;
+	const struct ieee80211_eht_cap_elem *eht_cap;
+	const struct ieee80211_eht_operation *eht_oper;
 	bool ht_required, vht_required, he_required, sae_h2e_required;
 	bool twt_responder;
 	u32 flags;
 	struct ieee80211_he_obss_pd he_obss_pd;
-	struct cfg80211_he_bss_color he_bss_color;
 	struct cfg80211_fils_discovery fils_discovery;
 	struct cfg80211_unsol_bcast_probe_resp unsol_bcast_probe_resp;
+	struct cfg80211_mbssid_config mbssid_config;
+	u16 punct_bitmap;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+	ANDROID_BACKPORT_RESERVED(4);
+	ANDROID_BACKPORT_RESERVED(5);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
+	ANDROID_VENDOR_DATA(4);
+	ANDROID_VENDOR_DATA(5);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -1241,6 +1451,9 @@
  * @radar_required: whether radar detection is required on the new channel
  * @block_tx: whether transmissions should be blocked while changing
  * @count: number of beacons until switch
+ * @punct_bitmap: Preamble puncturing bitmap. Each bit represents
+ *	a 20 MHz channel, lowest bit corresponding to the lowest channel.
+ *	Bit set to 1 indicates that the channel is punctured.
  */
 struct cfg80211_csa_settings {
 	struct cfg80211_chan_def chandef;
@@ -1253,6 +1466,15 @@
 	bool radar_required;
 	bool block_tx;
 	u8 count;
+	u16 punct_bitmap;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -1261,8 +1483,8 @@
  * Used for bss color change
  *
  * @beacon_color_change: beacon data while performing the color countdown
- * @counter_offsets_beacon: offsets of the counters within the beacon (tail)
- * @counter_offsets_presp: offsets of the counters within the probe response
+ * @counter_offset_beacon: offsets of the counters within the beacon (tail)
+ * @counter_offset_presp: offsets of the counters within the probe response
  * @beacon_next: beacon data to be used after the color change
  * @count: number of beacons until the color change
  * @color: the color used after the change
@@ -1305,6 +1527,7 @@
  * @STATION_PARAM_APPLY_UAPSD: apply new uAPSD parameters (uapsd_queues, max_sp)
  * @STATION_PARAM_APPLY_CAPABILITY: apply new capability
  * @STATION_PARAM_APPLY_PLINK_STATE: apply new plink state
+ * @STATION_PARAM_APPLY_STA_TXPOWER: apply tx power for STA
  *
  * Not all station parameters have in-band "no change" signalling,
  * for those that don't these flags will are used.
@@ -1313,7 +1536,6 @@
 	STATION_PARAM_APPLY_UAPSD = BIT(0),
 	STATION_PARAM_APPLY_CAPABILITY = BIT(1),
 	STATION_PARAM_APPLY_PLINK_STATE = BIT(2),
-	STATION_PARAM_APPLY_STA_TXPOWER = BIT(3),
 };
 
 /**
@@ -1337,14 +1559,66 @@
 };
 
 /**
+ * struct link_station_parameters - link station parameters
+ *
+ * Used to change and create a new link station.
+ *
+ * @mld_mac: MAC address of the station
+ * @link_id: the link id (-1 for non-MLD station)
+ * @link_mac: MAC address of the link
+ * @supported_rates: supported rates in IEEE 802.11 format
+ *	(or NULL for no change)
+ * @supported_rates_len: number of supported rates
+ * @ht_capa: HT capabilities of station
+ * @vht_capa: VHT capabilities of station
+ * @opmode_notif: operating mode field from Operating Mode Notification
+ * @opmode_notif_used: information if operating mode field is used
+ * @he_capa: HE capabilities of station
+ * @he_capa_len: the length of the HE capabilities
+ * @txpwr: transmit power for an associated station
+ * @txpwr_set: txpwr field is set
+ * @he_6ghz_capa: HE 6 GHz Band capabilities of station
+ * @eht_capa: EHT capabilities of station
+ * @eht_capa_len: the length of the EHT capabilities
+ */
+struct link_station_parameters {
+	const u8 *mld_mac;
+	int link_id;
+	const u8 *link_mac;
+	const u8 *supported_rates;
+	u8 supported_rates_len;
+	const struct ieee80211_ht_cap *ht_capa;
+	const struct ieee80211_vht_cap *vht_capa;
+	u8 opmode_notif;
+	bool opmode_notif_used;
+	const struct ieee80211_he_cap_elem *he_capa;
+	u8 he_capa_len;
+	struct sta_txpwr txpwr;
+	bool txpwr_set;
+	const struct ieee80211_he_6ghz_capa *he_6ghz_capa;
+	const struct ieee80211_eht_cap_elem *eht_capa;
+	u8 eht_capa_len;
+};
+
+/**
+ * struct link_station_del_parameters - link station deletion parameters
+ *
+ * Used to delete a link station entry (or all stations).
+ *
+ * @mld_mac: MAC address of the station
+ * @link_id: the link id
+ */
+struct link_station_del_parameters {
+	const u8 *mld_mac;
+	u32 link_id;
+};
+
+/**
  * struct station_parameters - station parameters
  *
  * Used to change and create a new station.
  *
  * @vlan: vlan interface station should belong to
- * @supported_rates: supported rates in IEEE 802.11 format
- *	(or NULL for no change)
- * @supported_rates_len: number of supported rates
  * @sta_flags_mask: station flags that changed
  *	(bitmask of BIT(%NL80211_STA_FLAG_...))
  * @sta_flags_set: station flags values
@@ -1355,8 +1629,6 @@
  * @peer_aid: mesh peer AID or zero for no change
  * @plink_action: plink action to take
  * @plink_state: set the peer link state for a station
- * @ht_capa: HT capabilities of station
- * @vht_capa: VHT capabilities of station
  * @uapsd_queues: bitmap of queues configured for uapsd. same format
  *	as the AC bitmap in the QoS info field
  * @max_sp: max Service Period. same format as the MAX_SP in the
@@ -1373,17 +1645,11 @@
  * @supported_channels_len: number of supported channels
  * @supported_oper_classes: supported oper classes in IEEE 802.11 format
  * @supported_oper_classes_len: number of supported operating classes
- * @opmode_notif: operating mode field from Operating Mode Notification
- * @opmode_notif_used: information if operating mode field is used
  * @support_p2p_ps: information if station supports P2P PS mechanism
- * @he_capa: HE capabilities of station
- * @he_capa_len: the length of the HE capabilities
  * @airtime_weight: airtime scheduler weight for this station
- * @txpwr: transmit power for an associated station
- * @he_6ghz_capa: HE 6 GHz Band capabilities of station
+ * @link_sta_params: link related params.
  */
 struct station_parameters {
-	const u8 *supported_rates;
 	struct net_device *vlan;
 	u32 sta_flags_mask, sta_flags_set;
 	u32 sta_modify_mask;
@@ -1391,11 +1657,8 @@
 	u16 aid;
 	u16 vlan_id;
 	u16 peer_aid;
-	u8 supported_rates_len;
 	u8 plink_action;
 	u8 plink_state;
-	const struct ieee80211_ht_cap *ht_capa;
-	const struct ieee80211_vht_cap *vht_capa;
 	u8 uapsd_queues;
 	u8 max_sp;
 	enum nl80211_mesh_power_mode local_pm;
@@ -1406,14 +1669,21 @@
 	u8 supported_channels_len;
 	const u8 *supported_oper_classes;
 	u8 supported_oper_classes_len;
-	u8 opmode_notif;
-	bool opmode_notif_used;
 	int support_p2p_ps;
-	const struct ieee80211_he_cap_elem *he_capa;
-	u8 he_capa_len;
 	u16 airtime_weight;
-	struct sta_txpwr txpwr;
-	const struct ieee80211_he_6ghz_capa *he_6ghz_capa;
+	struct link_station_parameters link_sta_params;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+	ANDROID_BACKPORT_RESERVED(4);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
+	ANDROID_VENDOR_DATA(4);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -1491,6 +1761,7 @@
  * @RATE_INFO_FLAGS_HE_MCS: HE MCS information
  * @RATE_INFO_FLAGS_EDMG: 60GHz MCS in EDMG mode
  * @RATE_INFO_FLAGS_EXTENDED_SC_DMG: 60GHz extended SC MCS
+ * @RATE_INFO_FLAGS_EHT_MCS: EHT MCS information
  */
 enum rate_info_flags {
 	RATE_INFO_FLAGS_MCS			= BIT(0),
@@ -1500,6 +1771,7 @@
 	RATE_INFO_FLAGS_HE_MCS			= BIT(4),
 	RATE_INFO_FLAGS_EDMG			= BIT(5),
 	RATE_INFO_FLAGS_EXTENDED_SC_DMG		= BIT(6),
+	RATE_INFO_FLAGS_EHT_MCS			= BIT(7),
 };
 
 /**
@@ -1514,6 +1786,8 @@
  * @RATE_INFO_BW_80: 80 MHz bandwidth
  * @RATE_INFO_BW_160: 160 MHz bandwidth
  * @RATE_INFO_BW_HE_RU: bandwidth determined by HE RU allocation
+ * @RATE_INFO_BW_320: 320 MHz bandwidth
+ * @RATE_INFO_BW_EHT_RU: bandwidth determined by EHT RU allocation
  */
 enum rate_info_bw {
 	RATE_INFO_BW_20 = 0,
@@ -1523,6 +1797,8 @@
 	RATE_INFO_BW_80,
 	RATE_INFO_BW_160,
 	RATE_INFO_BW_HE_RU,
+	RATE_INFO_BW_320,
+	RATE_INFO_BW_EHT_RU,
 };
 
 /**
@@ -1540,6 +1816,9 @@
  * @he_ru_alloc: HE RU allocation (from &enum nl80211_he_ru_alloc,
  *	only valid if bw is %RATE_INFO_BW_HE_RU)
  * @n_bonded_ch: In case of EDMG the number of bonded channels (1-4)
+ * @eht_gi: EHT guard interval (from &enum nl80211_eht_gi)
+ * @eht_ru_alloc: EHT RU allocation (from &enum nl80211_eht_ru_alloc,
+ *	only valid if bw is %RATE_INFO_BW_EHT_RU)
  */
 struct rate_info {
 	u8 flags;
@@ -1551,6 +1830,14 @@
 	u8 he_dcm;
 	u8 he_ru_alloc;
 	u8 n_bonded_ch;
+	u8 eht_gi;
+	u8 eht_ru_alloc;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
 };
 
 /**
@@ -1703,6 +1990,24 @@
  *	received packet with an FCS error matches the peer MAC address.
  * @airtime_link_metric: mesh airtime link metric.
  * @connected_to_as: true if mesh STA has a path to authentication server
+ * @mlo_params_valid: Indicates @assoc_link_id and @mld_addr fields are filled
+ *	by driver. Drivers use this only in cfg80211_new_sta() calls when AP
+ *	MLD's MLME/SME is offload to driver. Drivers won't fill this
+ *	information in cfg80211_del_sta_sinfo(), get_station() and
+ *	dump_station() callbacks.
+ * @assoc_link_id: Indicates MLO link ID of the AP, with which the station
+ *	completed (re)association. This information filled for both MLO
+ *	and non-MLO STA connections when the AP affiliated with an MLD.
+ * @mld_addr: For MLO STA connection, filled with MLD address of the station.
+ *	For non-MLO STA connection, filled with all zeros.
+ * @assoc_resp_ies: IEs from (Re)Association Response.
+ *	This is used only when in AP mode with drivers that do not use user
+ *	space MLME/SME implementation. The information is provided only for the
+ *	cfg80211_new_sta() calls to notify user space of the IEs. Drivers won't
+ *	fill this information in cfg80211_del_sta_sinfo(), get_station() and
+ *	dump_station() callbacks. User space needs this information to determine
+ *	the accepted and rejected affiliated links of the connected station.
+ * @assoc_resp_ies_len: Length of @assoc_resp_ies buffer in octets.
  */
 struct station_info {
 	u64 filled;
@@ -1762,6 +2067,24 @@
 	u32 airtime_link_metric;
 
 	u8 connected_to_as;
+
+	bool mlo_params_valid;
+	u8 assoc_link_id;
+	u8 mld_addr[ETH_ALEN] __aligned(2);
+	const u8 *assoc_resp_ies;
+	size_t assoc_resp_ies_len;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+	ANDROID_BACKPORT_RESERVED(4);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
+	ANDROID_VENDOR_DATA(4);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -1926,6 +2249,7 @@
  *
  * Used to change BSS parameters (mainly for AP mode).
  *
+ * @link_id: link_id or -1 for non-MLD
  * @use_cts_prot: Whether to use CTS protection
  *	(0 = no, 1 = yes, -1 = do not change)
  * @use_short_preamble: Whether the use of short preambles is allowed
@@ -1943,6 +2267,7 @@
  * @p2p_opp_ps: P2P opportunistic PS (-1 = no change)
  */
 struct bss_parameters {
+	int link_id;
 	int use_cts_prot;
 	int use_short_preamble;
 	int use_short_slot_time;
@@ -2022,6 +2347,9 @@
  * @plink_timeout: If no tx activity is seen from a STA we've established
  *	peering with for longer than this time (in seconds), then remove it
  *	from the STA's list of peers.  Default is 30 minutes.
+ * @dot11MeshConnectedToAuthServer: if set to true then this mesh STA
+ *	will advertise that it is connected to a authentication server
+ *	in the mesh formation field.
  * @dot11MeshConnectedToMeshGate: if set to true, advertise that this STA is
  *      connected to a mesh gate in mesh formation info.  If false, the
  *      value in mesh formation is determined by the presence of root paths
@@ -2064,6 +2392,8 @@
 	u16 dot11MeshAwakeWindowDuration;
 	u32 plink_timeout;
 	bool dot11MeshNolearn;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -2113,6 +2443,8 @@
 	struct cfg80211_bitrate_mask beacon_rate;
 	bool userspace_handles_dfs;
 	bool control_port_over_nl80211;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -2134,6 +2466,7 @@
  * @cwmax: Maximum contention window [a value of the form 2^n-1 in the range
  *	1..32767]
  * @aifs: Arbitration interframe space [0..255]
+ * @link_id: link_id or -1 for non-MLD
  */
 struct ieee80211_txq_params {
 	enum nl80211_ac ac;
@@ -2141,6 +2474,7 @@
 	u16 cwmin;
 	u16 cwmax;
 	u8 aifs;
+	int link_id;
 };
 
 /**
@@ -2194,12 +2528,12 @@
 /**
  * struct cfg80211_scan_6ghz_params - relevant for 6 GHz only
  *
- * @short_bssid: short ssid to scan for
+ * @short_ssid: short ssid to scan for
  * @bssid: bssid to scan for
  * @channel_idx: idx of the channel in the channel array in the scan request
  *	 which the above info relvant to
  * @unsolicited_probe: the AP transmits unsolicited probe response every 20 TU
- * @short_ssid_valid: short_ssid is valid and can be used
+ * @short_ssid_valid: @short_ssid is valid and can be used
  * @psc_no_listen: when set, and the channel is a PSC channel, no need to wait
  *       20 TUs before starting to send probe requests.
  */
@@ -2274,6 +2608,18 @@
 	u32 n_6ghz_params;
 	struct cfg80211_scan_6ghz_params *scan_6ghz_params;
 
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+	ANDROID_BACKPORT_RESERVED(4);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
+	ANDROID_VENDOR_DATA(4);
+
+	ANDROID_KABI_RESERVE(1);
+
 	/* keep last */
 	struct ieee80211_channel *channels[];
 };
@@ -2420,6 +2766,18 @@
 	bool nl_owner_dead;
 	struct list_head list;
 
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+	ANDROID_BACKPORT_RESERVED(4);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
+	ANDROID_VENDOR_DATA(4);
+
+	ANDROID_KABI_RESERVE(1);
+
 	/* keep last */
 	struct ieee80211_channel *channels[];
 };
@@ -2466,6 +2824,12 @@
 	u8 parent_bssid[ETH_ALEN] __aligned(2);
 	u8 chains;
 	s8 chain_signal[IEEE80211_MAX_CHAINS];
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
 };
 
 /**
@@ -2543,6 +2907,18 @@
 	u8 bssid_index;
 	u8 max_bssid_indicator;
 
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+	ANDROID_BACKPORT_RESERVED(4);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
+	ANDROID_VENDOR_DATA(4);
+
+	ANDROID_KABI_RESERVE(1);
+
 	u8 priv[] __aligned(sizeof(void *));
 };
 
@@ -2591,6 +2967,12 @@
  *	Authentication algorithm number, i.e., starting at the Authentication
  *	transaction sequence number field.
  * @auth_data_len: Length of auth_data buffer in octets
+ * @link_id: if >= 0, indicates authentication should be done as an MLD,
+ *	the interface address is included as the MLD address and the
+ *	necessary link (with the given link_id) will be created (and
+ *	given an MLD address) by the driver
+ * @ap_mld_addr: AP MLD address in case of authentication request with
+ *	an AP MLD, valid iff @link_id >= 0
  */
 struct cfg80211_auth_request {
 	struct cfg80211_bss *bss;
@@ -2598,9 +2980,25 @@
 	size_t ie_len;
 	enum nl80211_auth_type auth_type;
 	const u8 *key;
-	u8 key_len, key_idx;
+	u8 key_len;
+	s8 key_idx;
 	const u8 *auth_data;
 	size_t auth_data_len;
+	s8 link_id;
+	const u8 *ap_mld_addr;
+};
+
+/**
+ * struct cfg80211_assoc_link - per-link information for MLO association
+ * @bss: the BSS pointer, see also &struct cfg80211_assoc_request::bss;
+ *	if this is %NULL for a link, that link is not requested
+ * @elems: extra elements for the per-STA profile for this link
+ * @elems_len: length of the elements
+ */
+struct cfg80211_assoc_link {
+	struct cfg80211_bss *bss;
+	const u8 *elems;
+	size_t elems_len;
 };
 
 /**
@@ -2614,6 +3012,10 @@
  *	userspace if this flag is set. Only applicable for cfg80211_connect()
  *	request (connect callback).
  * @ASSOC_REQ_DISABLE_HE:  Disable HE
+ * @ASSOC_REQ_DISABLE_EHT:  Disable EHT
+ * @CONNECT_REQ_MLO_SUPPORT: Userspace indicates support for handling MLD links.
+ *	Drivers shall disable MLO features for the current association if this
+ *	flag is not set.
  */
 enum cfg80211_assoc_req_flags {
 	ASSOC_REQ_DISABLE_HT			= BIT(0),
@@ -2621,6 +3023,8 @@
 	ASSOC_REQ_USE_RRM			= BIT(2),
 	CONNECT_REQ_EXTERNAL_AUTH_SUPPORT	= BIT(3),
 	ASSOC_REQ_DISABLE_HE			= BIT(4),
+	ASSOC_REQ_DISABLE_EHT			= BIT(5),
+	CONNECT_REQ_MLO_SUPPORT			= BIT(6),
 };
 
 /**
@@ -2632,6 +3036,8 @@
  *	given a reference that it must give back to cfg80211_send_rx_assoc()
  *	or to cfg80211_assoc_timeout(). To ensure proper refcounting, new
  *	association requests while already associating must be rejected.
+ *	This also applies to the @links.bss parameter, which is used instead
+ *	of this one (it is %NULL) for MLO associations.
  * @ie: Extra IEs to add to (Re)Association Request frame or %NULL
  * @ie_len: Length of ie buffer in octets
  * @use_mfp: Use management frame protection (IEEE 802.11w) in this association
@@ -2656,6 +3062,11 @@
  *	with 16 octets of STA Nonce followed by 16 octets of AP Nonce.
  * @s1g_capa: S1G capability override
  * @s1g_capa_mask: S1G capability override mask
+ * @links: per-link information for MLO connections
+ * @link_id: >= 0 for MLO connections, where links are given, and indicates
+ *	the link on which the association request should be sent
+ * @ap_mld_addr: AP MLD address in case of MLO association request,
+ *	valid iff @link_id >= 0
  */
 struct cfg80211_assoc_request {
 	struct cfg80211_bss *bss;
@@ -2671,6 +3082,11 @@
 	size_t fils_kek_len;
 	const u8 *fils_nonces;
 	struct ieee80211_s1g_cap s1g_capa, s1g_capa_mask;
+	struct cfg80211_assoc_link links[IEEE80211_MLD_MAX_NUM_LINKS];
+	const u8 *ap_mld_addr;
+	s8 link_id;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -2679,7 +3095,7 @@
  * This structure provides information needed to complete IEEE 802.11
  * deauthentication.
  *
- * @bssid: the BSSID of the BSS to deauthenticate from
+ * @bssid: the BSSID or AP MLD address to deauthenticate from
  * @ie: Extra IEs to add to Deauthentication frame or %NULL
  * @ie_len: Length of ie buffer in octets
  * @reason_code: The reason code for the deauthentication
@@ -2700,7 +3116,7 @@
  * This structure provides information needed to complete IEEE 802.11
  * disassociation.
  *
- * @bss: the BSS to disassociate from
+ * @ap_addr: the BSSID or AP MLD address to disassociate from
  * @ie: Extra IEs to add to Disassociation frame or %NULL
  * @ie_len: Length of ie buffer in octets
  * @reason_code: The reason code for the disassociation
@@ -2708,7 +3124,7 @@
  *	Disassociation frame is to be transmitted.
  */
 struct cfg80211_disassoc_request {
-	struct cfg80211_bss *bss;
+	const u8 *ap_addr;
 	const u8 *ie;
 	size_t ie_len;
 	u16 reason_code;
@@ -2769,6 +3185,8 @@
 	struct ieee80211_ht_cap ht_capa_mask;
 	struct key_params *wep_keys;
 	int wep_tx_key;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -2883,6 +3301,20 @@
 	size_t fils_erp_rrk_len;
 	bool want_1x;
 	struct ieee80211_edmg edmg;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+	ANDROID_BACKPORT_RESERVED(4);
+	ANDROID_BACKPORT_RESERVED(5);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
+	ANDROID_VENDOR_DATA(4);
+	ANDROID_VENDOR_DATA(5);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -2975,6 +3407,14 @@
 	const u8 *cache_id;
 	u32 pmk_lifetime;
 	u8 pmk_reauth_threshold;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
 };
 
 /**
@@ -3153,13 +3593,21 @@
  * @kck: key confirmation key (@kck_len bytes)
  * @replay_ctr: replay counter (NL80211_REPLAY_CTR_LEN bytes)
  * @kek_len: length of kek
- * @kck_len length of kck
+ * @kck_len: length of kck
  * @akm: akm (oui, id)
  */
 struct cfg80211_gtk_rekey_data {
 	const u8 *kek, *kck, *replay_ctr;
 	u32 akm;
 	u8 kek_len, kck_len;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
 };
 
 /**
@@ -3191,6 +3639,9 @@
  * @dont_wait_for_ack: tells the low level not to wait for an ack
  * @n_csa_offsets: length of csa_offsets array
  * @csa_offsets: array of all the csa offsets in the frame
+ * @link_id: for MLO, the link ID to transmit on, -1 if not given; note
+ *	that the link ID isn't validated (much), it's in range but the
+ *	link might not exist (or be used by the receiver STA)
  */
 struct cfg80211_mgmt_tx_params {
 	struct ieee80211_channel *chan;
@@ -3202,6 +3653,13 @@
 	bool dont_wait_for_ack;
 	int n_csa_offsets;
 	const u16 *csa_offsets;
+	int link_id;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
 };
 
 /**
@@ -3340,6 +3798,8 @@
 	u8 num_rx_filters;
 	u8 instance_id;
 	u64 cookie;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -3378,6 +3838,17 @@
  *	the real status code for failures. Used only for the authentication
  *	response command interface (user space to driver).
  * @pmkid: The identifier to refer a PMKSA.
+ * @mld_addr: MLD address of the peer. Used by the authentication request event
+ *	interface. Driver indicates this to enable MLO during the authentication
+ *	offload to user space. Driver shall look at %NL80211_ATTR_MLO_SUPPORT
+ *	flag capability in NL80211_CMD_CONNECT to know whether the user space
+ *	supports enabling MLO during the authentication offload.
+ *	User space should use the address of the interface (on which the
+ *	authentication request event reported) as self MLD address. User space
+ *	and driver should use MLD addresses in RA, TA and BSSID fields of
+ *	authentication frames sent or received via cfg80211. The driver
+ *	translates the MLD addresses to/from link addresses based on the link
+ *	chosen for the authentication.
  */
 struct cfg80211_external_auth_params {
 	enum nl80211_external_auth_action action;
@@ -3386,6 +3857,15 @@
 	unsigned int key_mgmt_suite;
 	u16 status;
 	const u8 *pmkid;
+	u8 mld_addr[ETH_ALEN] __aligned(2);
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
 };
 
 /**
@@ -3500,6 +3980,8 @@
 	    dist_avg_valid:1,
 	    dist_variance_valid:1,
 	    dist_spread_valid:1;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -3515,6 +3997,7 @@
  * @type: type of the measurement reported, note that we only support reporting
  *	one type at a time, but you can report multiple results separately and
  *	they're all aggregated for userspace.
+ * @ftm: FTM result
  */
 struct cfg80211_pmsr_result {
 	u64 host_time, ap_tsf;
@@ -3639,12 +4122,30 @@
  *	the IEs of the remote peer in the event from the host driver and
  *	the constructed IEs by the user space in the request interface.
  * @ie_len: Length of IEs in octets.
+ * @assoc_link_id: MLO link ID of the AP, with which (re)association requested
+ *	by peer. This will be filled by driver for both MLO and non-MLO station
+ *	connections when the AP affiliated with an MLD. For non-MLD AP mode, it
+ *	will be -1. Used only with OWE update event (driver to user space).
+ * @peer_mld_addr: For MLO connection, MLD address of the peer. For non-MLO
+ *	connection, it will be all zeros. This is applicable only when
+ *	@assoc_link_id is not -1, i.e., the AP affiliated with an MLD. Used only
+ *	with OWE update event (driver to user space).
  */
 struct cfg80211_update_owe_info {
 	u8 peer[ETH_ALEN] __aligned(2);
 	u16 status;
 	const u8 *ie;
 	size_t ie_len;
+	int assoc_link_id;
+	u8 peer_mld_addr[ETH_ALEN] __aligned(2);
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
 };
 
 /**
@@ -3653,7 +4154,7 @@
  *	for the entire device
  * @interface_stypes: bitmap of management frame subtypes registered
  *	for the given interface
- * @global_mcast_rx: mcast RX is needed globally for these subtypes
+ * @global_mcast_stypes: mcast RX is needed globally for these subtypes
  * @interface_mcast_stypes: mcast RX is needed on this interface
  *	for these subtypes
  */
@@ -3698,23 +4199,39 @@
  *	keep the struct wireless_dev's iftype updated.
  *	This additionally holds the RTNL to be able to do netdev changes.
  *
+ * @add_intf_link: Add a new MLO link to the given interface. Note that
+ *	the wdev->link[] data structure has been updated, so the new link
+ *	address is available.
+ * @del_intf_link: Remove an MLO link from the given interface.
+ *
  * @add_key: add a key with the given parameters. @mac_addr will be %NULL
- *	when adding a group key.
+ *	when adding a group key. @link_id will be -1 for non-MLO connection.
+ *	For MLO connection, @link_id will be >= 0 for group key and -1 for
+ *	pairwise key, @mac_addr will be peer's MLD address for MLO pairwise key.
  *
  * @get_key: get information about the key with the given parameters.
  *	@mac_addr will be %NULL when requesting information for a group
  *	key. All pointers given to the @callback function need not be valid
  *	after it returns. This function should return an error if it is
  *	not possible to retrieve the key, -ENOENT if it doesn't exist.
+ *	@link_id will be -1 for non-MLO connection. For MLO connection,
+ *	@link_id will be >= 0 for group key and -1 for pairwise key, @mac_addr
+ *	will be peer's MLD address for MLO pairwise key.
  *
  * @del_key: remove a key given the @mac_addr (%NULL for a group key)
- *	and @key_index, return -ENOENT if the key doesn't exist.
+ *	and @key_index, return -ENOENT if the key doesn't exist. @link_id will
+ *	be -1 for non-MLO connection. For MLO connection, @link_id will be >= 0
+ *	for group key and -1 for pairwise key, @mac_addr will be peer's MLD
+ *	address for MLO pairwise key.
  *
- * @set_default_key: set the default key on an interface
+ * @set_default_key: set the default key on an interface. @link_id will be >= 0
+ *	for MLO connection and -1 for non-MLO connection.
  *
- * @set_default_mgmt_key: set the default management frame key on an interface
+ * @set_default_mgmt_key: set the default management frame key on an interface.
+ *	@link_id will be >= 0 for MLO connection and -1 for non-MLO connection.
  *
- * @set_default_beacon_key: set the default Beacon frame key on an interface
+ * @set_default_beacon_key: set the default Beacon frame key on an interface.
+ *	@link_id will be >= 0 for MLO connection and -1 for non-MLO connection.
  *
  * @set_rekey_data: give the data necessary for GTK rekeying to the driver
  *
@@ -4021,6 +4538,22 @@
  * @set_sar_specs: Update the SAR (TX power) settings.
  *
  * @color_change: Initiate a color change.
+ *
+ * @set_fils_aad: Set FILS AAD data to the AP driver so that the driver can use
+ *	those to decrypt (Re)Association Request and encrypt (Re)Association
+ *	Response frame.
+ *
+ * @set_radar_background: Configure dedicated offchannel chain available for
+ *	radar/CAC detection on some hw. This chain can't be used to transmit
+ *	or receive frames and it is bounded to a running wdev.
+ *	Background radar/CAC detection allows to avoid the CAC downtime
+ *	switching to a different channel during CAC detection on the selected
+ *	radar channel.
+ *	The caller is expected to set chandef pointer to NULL in order to
+ *	disable background CAC/radar detection.
+ * @add_link_station: Add a link to a station.
+ * @mod_link_station: Modify a link of a station.
+ * @del_link_station: Remove a link of a station.
  */
 struct cfg80211_ops {
 	int	(*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow);
@@ -4039,30 +4572,40 @@
 				       enum nl80211_iftype type,
 				       struct vif_params *params);
 
+	int	(*add_intf_link)(struct wiphy *wiphy,
+				 struct wireless_dev *wdev,
+				 unsigned int link_id);
+	void	(*del_intf_link)(struct wiphy *wiphy,
+				 struct wireless_dev *wdev,
+				 unsigned int link_id);
+
 	int	(*add_key)(struct wiphy *wiphy, struct net_device *netdev,
-			   u8 key_index, bool pairwise, const u8 *mac_addr,
-			   struct key_params *params);
+			   int link_id, u8 key_index, bool pairwise,
+			   const u8 *mac_addr, struct key_params *params);
 	int	(*get_key)(struct wiphy *wiphy, struct net_device *netdev,
-			   u8 key_index, bool pairwise, const u8 *mac_addr,
-			   void *cookie,
+			   int link_id, u8 key_index, bool pairwise,
+			   const u8 *mac_addr, void *cookie,
 			   void (*callback)(void *cookie, struct key_params*));
 	int	(*del_key)(struct wiphy *wiphy, struct net_device *netdev,
-			   u8 key_index, bool pairwise, const u8 *mac_addr);
+			   int link_id, u8 key_index, bool pairwise,
+			   const u8 *mac_addr);
 	int	(*set_default_key)(struct wiphy *wiphy,
-				   struct net_device *netdev,
+				   struct net_device *netdev, int link_id,
 				   u8 key_index, bool unicast, bool multicast);
 	int	(*set_default_mgmt_key)(struct wiphy *wiphy,
-					struct net_device *netdev,
+					struct net_device *netdev, int link_id,
 					u8 key_index);
 	int	(*set_default_beacon_key)(struct wiphy *wiphy,
 					  struct net_device *netdev,
+					  int link_id,
 					  u8 key_index);
 
 	int	(*start_ap)(struct wiphy *wiphy, struct net_device *dev,
 			    struct cfg80211_ap_settings *settings);
 	int	(*change_beacon)(struct wiphy *wiphy, struct net_device *dev,
 				 struct cfg80211_beacon_data *info);
-	int	(*stop_ap)(struct wiphy *wiphy, struct net_device *dev);
+	int	(*stop_ap)(struct wiphy *wiphy, struct net_device *dev,
+			   unsigned int link_id);
 
 
 	int	(*add_station)(struct wiphy *wiphy, struct net_device *dev,
@@ -4170,6 +4713,7 @@
 
 	int	(*set_bitrate_mask)(struct wiphy *wiphy,
 				    struct net_device *dev,
+				    unsigned int link_id,
 				    const u8 *peer,
 				    const struct cfg80211_bitrate_mask *mask);
 
@@ -4245,6 +4789,7 @@
 
 	int	(*get_channel)(struct wiphy *wiphy,
 			       struct wireless_dev *wdev,
+			       unsigned int link_id,
 			       struct cfg80211_chan_def *chandef);
 
 	int	(*start_p2p_device)(struct wiphy *wiphy,
@@ -4281,6 +4826,7 @@
 			       struct cfg80211_qos_map *qos_map);
 
 	int	(*set_ap_chanwidth)(struct wiphy *wiphy, struct net_device *dev,
+				    unsigned int link_id,
 				    struct cfg80211_chan_def *chandef);
 
 	int	(*add_tx_ts)(struct wiphy *wiphy, struct net_device *dev,
@@ -4327,7 +4873,7 @@
 				   struct net_device *dev,
 				   const u8 *buf, size_t len,
 				   const u8 *dest, const __be16 proto,
-				   const bool noencrypt,
+				   const bool noencrypt, int link_id,
 				   u64 *cookie);
 
 	int	(*get_ftm_responder_stats)(struct wiphy *wiphy,
@@ -4351,6 +4897,33 @@
 	int	(*color_change)(struct wiphy *wiphy,
 				struct net_device *dev,
 				struct cfg80211_color_change_settings *params);
+	int     (*set_fils_aad)(struct wiphy *wiphy, struct net_device *dev,
+				struct cfg80211_fils_aad *fils_aad);
+	int	(*set_radar_background)(struct wiphy *wiphy,
+					struct cfg80211_chan_def *chandef);
+	int	(*add_link_station)(struct wiphy *wiphy, struct net_device *dev,
+				    struct link_station_parameters *params);
+	int	(*mod_link_station)(struct wiphy *wiphy, struct net_device *dev,
+				    struct link_station_parameters *params);
+	int	(*del_link_station)(struct wiphy *wiphy, struct net_device *dev,
+				    struct link_station_del_parameters *params);
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+	ANDROID_BACKPORT_RESERVED(4);
+	ANDROID_BACKPORT_RESERVED(5);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
+	ANDROID_VENDOR_DATA(4);
+	ANDROID_VENDOR_DATA(5);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 /*
@@ -4402,10 +4975,15 @@
  * @WIPHY_FLAG_HAS_STATIC_WEP: The device supports static WEP key installation
  *	before connection.
  * @WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK: The device supports bigger kek and kck keys
+ * @WIPHY_FLAG_SUPPORTS_MLO: This is a temporary flag gating the MLO APIs,
+ *	in order to not have them reachable in normal drivers, until we have
+ *	complete feature/interface combinations/etc. advertisement. No driver
+ *	should set this flag for now.
+ * @WIPHY_FLAG_SUPPORTS_EXT_KCK_32: The device supports 32-byte KCK keys.
  */
 enum wiphy_flags {
 	WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK		= BIT(0),
-	/* use hole at 1 */
+	WIPHY_FLAG_SUPPORTS_MLO			= BIT(1),
 	WIPHY_FLAG_SPLIT_SCAN_6GHZ		= BIT(2),
 	WIPHY_FLAG_NETNS_OK			= BIT(3),
 	WIPHY_FLAG_PS_ON_BY_DEFAULT		= BIT(4),
@@ -4414,7 +4992,7 @@
 	WIPHY_FLAG_CONTROL_PORT_PROTOCOL	= BIT(7),
 	WIPHY_FLAG_IBSS_RSN			= BIT(8),
 	WIPHY_FLAG_MESH_AUTH			= BIT(10),
-	/* use hole at 11 */
+	WIPHY_FLAG_SUPPORTS_EXT_KCK_32          = BIT(11),
 	/* use hole at 12 */
 	WIPHY_FLAG_SUPPORTS_FW_ROAM		= BIT(13),
 	WIPHY_FLAG_AP_UAPSD			= BIT(14),
@@ -4438,6 +5016,12 @@
 struct ieee80211_iface_limit {
 	u16 max;
 	u16 types;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
 };
 
 /**
@@ -4555,6 +5139,18 @@
 	 *   combination must be greater or equal to this value.
 	 */
 	u32 beacon_int_min_gcd;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+	ANDROID_BACKPORT_RESERVED(4);
+
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
+	ANDROID_VENDOR_DATA(4);
+
 };
 
 struct ieee80211_txrx_stypes {
@@ -4714,6 +5310,8 @@
 		      unsigned long *storage);
 	const struct nla_policy *policy;
 	unsigned int maxattr;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -4735,10 +5333,32 @@
 };
 
 /**
+ * cfg80211_get_iftype_ext_capa - lookup interface type extended capability
+ * @wiphy: the wiphy to look up from
+ * @type: the interface type to look up
+ */
+const struct wiphy_iftype_ext_capab *
+cfg80211_get_iftype_ext_capa(struct wiphy *wiphy, enum nl80211_iftype type);
+
+/**
+ * struct wiphy_iftype_ext_capab2 - backported extended capabilities per
+ *	interface type
+ * @iftype: interface type
+ * @eml_capabilities: EML capabilities (for MLO)
+ * @mld_capa_and_ops: MLD capabilities and operations (for MLO)
+ */
+struct wiphy_iftype_ext_capab2 {
+	enum nl80211_iftype iftype;
+	u16 eml_capabilities;
+	u16 mld_capa_and_ops;
+};
+
+/**
  * struct cfg80211_pmsr_capabilities - cfg80211 peer measurement capabilities
  * @max_peers: maximum number of peers in a single measurement
  * @report_ap_tsf: can report assoc AP's TSF for radio resource measurement
  * @randomize_mac_addr: can randomize MAC address for measurement
+ * @ftm: FTM measurement data
  * @ftm.supported: FTM measurement is supported
  * @ftm.asap: ASAP-mode is supported
  * @ftm.non_asap: non-ASAP-mode is supported
@@ -4790,6 +5410,19 @@
 };
 
 /**
+ * struct wiphy_backport - backported wireless hardware description
+ * @iftype_ext_capab2: extension to @wiphy.iftype_ext_capab. Backported array of
+ *	extended capabilities per interface type. Driver should allocate array
+ *	of size @wiphy.num_iftype_ext_capab same as @wiphy.iftype_ext_capab.
+ * @num_iftype_ext_capab2: number of interface types for which extended. must be
+ *	be same as @wiphy.num_iftype_ext_capab.
+ */
+struct wiphy_backport {
+	const struct wiphy_iftype_ext_capab2 *iftype_ext_capab2;
+	unsigned int num_iftype_ext_capab2;
+};
+
+/**
  * struct wiphy - wireless hardware description
  * @mtx: mutex for the data (structures) of this device
  * @reg_notifier: the driver's regulatory notification callback,
@@ -4984,6 +5617,21 @@
  *	%NL80211_TID_CONFIG_ATTR_RETRY_LONG attributes
  * @sar_capa: SAR control capabilities
  * @rfkill: a pointer to the rfkill structure
+ *
+ * @mbssid_max_interfaces: maximum number of interfaces supported by the driver
+ *	in a multiple BSSID set. This field must be set to a non-zero value
+ *	by the driver to advertise MBSSID support.
+ * @ema_max_profile_periodicity: maximum profile periodicity supported by
+ *	the driver. Setting this field to a non-zero value indicates that the
+ *	driver supports enhanced multi-BSSID advertisements (EMA AP).
+ * @max_num_akm_suites: maximum number of AKM suites allowed for
+ *	configuration through %NL80211_CMD_CONNECT, %NL80211_CMD_ASSOCIATE and
+ *	%NL80211_CMD_START_AP. Set to NL80211_MAX_NR_AKM_SUITES if not set by
+ *	driver. If set by driver minimum allowed value is
+ *	NL80211_MAX_NR_AKM_SUITES in order to avoid compatibility issues with
+ *	legacy userspace and maximum allowed value is
+ *	CFG80211_MAX_NUM_AKM_SUITES.
+ * @backport: backported wiphy information.
  */
 struct wiphy {
 	struct mutex mtx;
@@ -5128,6 +5776,36 @@
 
 	struct rfkill *rfkill;
 
+	u8 mbssid_max_interfaces;
+	u8 ema_max_profile_periodicity;
+	u16 max_num_akm_suites;
+
+	/* Enabled with bug 253289327 */
+	ANDROID_BACKPORT_RESERVED_USE(1, const struct wiphy_backport *backport);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+	ANDROID_BACKPORT_RESERVED(4);
+	ANDROID_BACKPORT_RESERVED(5);
+	ANDROID_BACKPORT_RESERVED(6);
+	ANDROID_BACKPORT_RESERVED(7);
+	ANDROID_BACKPORT_RESERVED(8);
+	ANDROID_BACKPORT_RESERVED(9);
+	ANDROID_BACKPORT_RESERVED(10);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
+	ANDROID_VENDOR_DATA(4);
+	ANDROID_VENDOR_DATA(5);
+	ANDROID_VENDOR_DATA(6);
+	ANDROID_VENDOR_DATA(7);
+	ANDROID_VENDOR_DATA(8);
+	ANDROID_VENDOR_DATA(9);
+	ANDROID_VENDOR_DATA(10);
+
+
+	ANDROID_KABI_RESERVE(1);
+
 	char priv[] __aligned(NETDEV_ALIGN);
 };
 
@@ -5352,16 +6030,9 @@
  * @netdev: (private) Used to reference back to the netdev, may be %NULL
  * @identifier: (private) Identifier used in nl80211 to identify this
  *	wireless device if it has no netdev
- * @current_bss: (private) Used by the internal configuration code
- * @chandef: (private) Used by the internal configuration code to track
- *	the user-set channel definition.
- * @preset_chandef: (private) Used by the internal configuration code to
- *	track the channel to be used for AP later
+ * @u: union containing data specific to @iftype
+ * @connected: indicates if connected or not (STA mode)
  * @bssid: (private) Used by the internal configuration code
- * @ssid: (private) Used by the internal configuration code
- * @ssid_len: (private) Used by the internal configuration code
- * @mesh_id_len: (private) Used by the internal configuration code
- * @mesh_id_up_len: (private) Used by the internal configuration code
  * @wext: (private) Used by the internal wireless extensions compat code
  * @wext.ibss: (private) IBSS data part of wext handling
  * @wext.connect: (private) connection handling data
@@ -5401,8 +6072,6 @@
  * @conn_owner_nlportid: (private) connection owner socket port ID
  * @disconnect_wk: (private) auto-disconnect work
  * @disconnect_bssid: (private) the BSSID to use for auto-disconnect
- * @ibss_fixed: (private) IBSS is using fixed BSSID
- * @ibss_dfs_possible: (private) IBSS may change to a DFS channel
  * @event_list: (private) list for internal event processing
  * @event_lock: (private) lock for event list
  * @owner_nlportid: (private) owner socket port ID
@@ -5413,6 +6082,9 @@
  * @pmsr_free_wk: (private) peer measurements cleanup work
  * @unprot_beacon_reported: (private) timestamp of last
  *	unprotected beacon report
+ * @links: array of %IEEE80211_MLD_MAX_NUM_LINKS elements containing @addr
+ *	@ap and @client for each link
+ * @valid_links: bitmap describing what elements of @links are valid
  */
 struct wireless_dev {
 	struct wiphy *wiphy;
@@ -5434,8 +6106,6 @@
 	u8 address[ETH_ALEN] __aligned(sizeof(u16));
 
 	/* currently used for IBSS and SME - might be rearranged later */
-	u8 ssid[IEEE80211_MAX_SSID_LEN];
-	u8 ssid_len, mesh_id_len, mesh_id_up_len;
 	struct cfg80211_conn *conn;
 	struct cfg80211_cached_keys *connect_keys;
 	enum ieee80211_bss_type conn_bss_type;
@@ -5447,23 +6117,17 @@
 	struct list_head event_list;
 	spinlock_t event_lock;
 
-	struct cfg80211_internal_bss *current_bss; /* associated / joined */
-	struct cfg80211_chan_def preset_chandef;
-	struct cfg80211_chan_def chandef;
-
-	bool ibss_fixed;
-	bool ibss_dfs_possible;
+	u8 connected:1;
 
 	bool ps;
 	int ps_timeout;
 
-	int beacon_interval;
-
 	u32 ap_unexpected_nlportid;
 
 	u32 owner_nlportid;
 	bool nl_owner_dead;
 
+	/* FIXME: need to rework radar detection for MLO */
 	bool cac_started;
 	unsigned long cac_start_time;
 	unsigned int cac_time_ms;
@@ -5491,6 +6155,65 @@
 	struct work_struct pmsr_free_wk;
 
 	unsigned long unprot_beacon_reported;
+
+	union {
+		struct {
+			u8 connected_addr[ETH_ALEN] __aligned(2);
+			u8 ssid[IEEE80211_MAX_SSID_LEN];
+			u8 ssid_len;
+		} client;
+		struct {
+			int beacon_interval;
+			struct cfg80211_chan_def preset_chandef;
+			struct cfg80211_chan_def chandef;
+			u8 id[IEEE80211_MAX_SSID_LEN];
+			u8 id_len, id_up_len;
+		} mesh;
+		struct {
+			struct cfg80211_chan_def preset_chandef;
+			u8 ssid[IEEE80211_MAX_SSID_LEN];
+			u8 ssid_len;
+		} ap;
+		struct {
+			struct cfg80211_internal_bss *current_bss;
+			struct cfg80211_chan_def chandef;
+			int beacon_interval;
+			u8 ssid[IEEE80211_MAX_SSID_LEN];
+			u8 ssid_len;
+		} ibss;
+		struct {
+			struct cfg80211_chan_def chandef;
+		} ocb;
+	} u;
+
+	struct {
+		u8 addr[ETH_ALEN] __aligned(2);
+		union {
+			struct {
+				unsigned int beacon_interval;
+				struct cfg80211_chan_def chandef;
+			} ap;
+			struct {
+				struct cfg80211_internal_bss *current_bss;
+			} client;
+		};
+	} links[IEEE80211_MLD_MAX_NUM_LINKS];
+	u16 valid_links;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+	ANDROID_BACKPORT_RESERVED(4);
+	ANDROID_BACKPORT_RESERVED(5);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
+	ANDROID_VENDOR_DATA(4);
+	ANDROID_VENDOR_DATA(5);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 static inline u8 *wdev_address(struct wireless_dev *wdev)
@@ -5520,6 +6243,32 @@
 }
 
 /**
+ * wdev_chandef - return chandef pointer from wireless_dev
+ * @wdev: the wdev
+ * @link_id: the link ID for MLO
+ *
+ * Return: The chandef depending on the mode, or %NULL.
+ */
+struct cfg80211_chan_def *wdev_chandef(struct wireless_dev *wdev,
+				       unsigned int link_id);
+
+static inline void WARN_INVALID_LINK_ID(struct wireless_dev *wdev,
+					unsigned int link_id)
+{
+	WARN_ON(link_id && !wdev->valid_links);
+	WARN_ON(wdev->valid_links &&
+		!(wdev->valid_links & BIT(link_id)));
+}
+
+#define for_each_valid_link(link_info, link_id)			\
+	for (link_id = 0;					\
+	     link_id < ((link_info)->valid_links ?		\
+			ARRAY_SIZE((link_info)->links) : 1);	\
+	     link_id++)						\
+		if (!(link_info)->valid_links ||		\
+		    ((link_info)->valid_links & BIT(link_id)))
+
+/**
  * DOC: Utility functions
  *
  * cfg80211 offers a number of utility functions that can be useful.
@@ -5795,6 +6544,7 @@
  * @addr: the device MAC address
  * @iftype: the virtual interface type
  * @data_offset: offset of payload after the 802.11 header
+ * @is_amsdu: true if the 802.11 header is A-MSDU
  * Return: 0 on success. Non-zero on error.
  */
 int ieee80211_data_to_8023_exthdr(struct sk_buff *skb, struct ethhdr *ehdr,
@@ -6534,16 +7284,39 @@
 void cfg80211_auth_timeout(struct net_device *dev, const u8 *addr);
 
 /**
- * cfg80211_rx_assoc_resp - notification of processed association response
- * @dev: network device
+ * struct cfg80211_rx_assoc_resp - association response data
  * @bss: the BSS that association was requested with, ownership of the pointer
- *	moves to cfg80211 in this call
+ *	moves to cfg80211 in the call to cfg80211_rx_assoc_resp()
  * @buf: (Re)Association Response frame (header + body)
  * @len: length of the frame data
  * @uapsd_queues: bitmap of queues configured for uapsd. Same format
  *	as the AC bitmap in the QoS info field
  * @req_ies: information elements from the (Re)Association Request frame
  * @req_ies_len: length of req_ies data
+ * @ap_mld_addr: AP MLD address (in case of MLO)
+ * @links: per-link information indexed by link ID, use links[0] for
+ *	non-MLO connections
+ * @links.status: Set this (along with a BSS pointer) for links that
+ *	were rejected by the AP.
+ */
+struct cfg80211_rx_assoc_resp {
+	const u8 *buf;
+	size_t len;
+	const u8 *req_ies;
+	size_t req_ies_len;
+	int uapsd_queues;
+	const u8 *ap_mld_addr;
+	struct {
+		const u8 *addr;
+		struct cfg80211_bss *bss;
+		u16 status;
+	} links[IEEE80211_MLD_MAX_NUM_LINKS];
+};
+
+/**
+ * cfg80211_rx_assoc_resp - notification of processed association response
+ * @dev: network device
+ * @data: association response data, &struct cfg80211_rx_assoc_resp
  *
  * After being asked to associate via cfg80211_ops::assoc() the driver must
  * call either this function or cfg80211_auth_timeout().
@@ -6551,30 +7324,32 @@
  * This function may sleep. The caller must hold the corresponding wdev's mutex.
  */
 void cfg80211_rx_assoc_resp(struct net_device *dev,
-			    struct cfg80211_bss *bss,
-			    const u8 *buf, size_t len,
-			    int uapsd_queues,
-			    const u8 *req_ies, size_t req_ies_len);
+			    struct cfg80211_rx_assoc_resp *data);
 
 /**
- * cfg80211_assoc_timeout - notification of timed out association
+ * struct cfg80211_assoc_failure - association failure data
+ * @ap_mld_addr: AP MLD address, or %NULL
+ * @bss: list of BSSes, must use entry 0 for non-MLO connections
+ *	(@ap_mld_addr is %NULL)
+ * @timeout: indicates the association failed due to timeout, otherwise
+ *	the association was abandoned for a reason reported through some
+ *	other API (e.g. deauth RX)
+ */
+struct cfg80211_assoc_failure {
+	const u8 *ap_mld_addr;
+	struct cfg80211_bss *bss[IEEE80211_MLD_MAX_NUM_LINKS];
+	bool timeout;
+};
+
+/**
+ * cfg80211_assoc_failure - notification of association failure
  * @dev: network device
- * @bss: The BSS entry with which association timed out.
+ * @data: data describing the association failure
  *
  * This function may sleep. The caller must hold the corresponding wdev's mutex.
  */
-void cfg80211_assoc_timeout(struct net_device *dev, struct cfg80211_bss *bss);
-
-/**
- * cfg80211_abandon_assoc - notify cfg80211 of abandoned association attempt
- * @dev: network device
- * @bss: The BSS entry with which association was abandoned.
- *
- * Call this whenever - for reasons reported through other API, like deauth RX,
- * an association attempt was abandoned.
- * This function may sleep. The caller must hold the corresponding wdev's mutex.
- */
-void cfg80211_abandon_assoc(struct net_device *dev, struct cfg80211_bss *bss);
+void cfg80211_assoc_failure(struct net_device *dev,
+			    struct cfg80211_assoc_failure *data);
 
 /**
  * cfg80211_tx_mlme_mgmt - notification of transmitted deauth/disassoc frame
@@ -6651,6 +7426,7 @@
  * @macaddr: the MAC address of the new candidate
  * @ie: information elements advertised by the peer candidate
  * @ie_len: length of the information elements buffer
+ * @sig_dbm: signal level in dBm
  * @gfp: allocation flags
  *
  * This function notifies cfg80211 that the mesh peer candidate has been
@@ -7003,6 +7779,12 @@
 	const u8 *pmk;
 	size_t pmk_len;
 	const u8 *pmkid;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
 };
 
 /**
@@ -7015,13 +7797,6 @@
  *	indicate that this is a failure, but without a status code.
  *	@timeout_reason is used to report the reason for the timeout in that
  *	case.
- * @bssid: The BSSID of the AP (may be %NULL)
- * @bss: Entry of bss to which STA got connected to, can be obtained through
- *	cfg80211_get_bss() (may be %NULL). But it is recommended to store the
- *	bss from the connect_request and hold a reference to it and return
- *	through this param to avoid a warning if the bss is expired during the
- *	connection, esp. for those drivers implementing connect op.
- *	Only one parameter among @bssid and @bss needs to be specified.
  * @req_ie: Association request IEs (may be %NULL)
  * @req_ie_len: Association request IEs length
  * @resp_ie: Association response IEs (may be %NULL)
@@ -7033,17 +7808,55 @@
  *	not known. This value is used only if @status < 0 to indicate that the
  *	failure is due to a timeout and not due to explicit rejection by the AP.
  *	This value is ignored in other cases (@status >= 0).
+ * @valid_links: For MLO connection, BIT mask of the valid link ids. Otherwise
+ *	zero.
+ * @ap_mld_addr: For MLO connection, MLD address of the AP. Otherwise %NULL.
+ * @links : For MLO connection, contains link info for the valid links indicated
+ *	using @valid_links. For non-MLO connection, links[0] contains the
+ *	connected AP info.
+ * @links.addr: For MLO connection, MAC address of the STA link. Otherwise
+ *	%NULL.
+ * @links.bssid: For MLO connection, MAC address of the AP link. For non-MLO
+ *	connection, links[0].bssid points to the BSSID of the AP (may be %NULL).
+ * @links.bss: For MLO connection, entry of bss to which STA link is connected.
+ *	For non-MLO connection, links[0].bss points to entry of bss to which STA
+ *	is connected. It can be obtained through cfg80211_get_bss() (may be
+ *	%NULL). It is recommended to store the bss from the connect_request and
+ *	hold a reference to it and return through this param to avoid a warning
+ *	if the bss is expired during the connection, esp. for those drivers
+ *	implementing connect op. Only one parameter among @bssid and @bss needs
+ *	to be specified.
+ * @links.status: per-link status code, to report a status code that's not
+ *	%WLAN_STATUS_SUCCESS for a given link, it must also be in the
+ *	@valid_links bitmap and may have a BSS pointer (which is then released)
  */
 struct cfg80211_connect_resp_params {
 	int status;
-	const u8 *bssid;
-	struct cfg80211_bss *bss;
 	const u8 *req_ie;
 	size_t req_ie_len;
 	const u8 *resp_ie;
 	size_t resp_ie_len;
 	struct cfg80211_fils_resp_params fils;
 	enum nl80211_timeout_reason timeout_reason;
+
+	const u8 *ap_mld_addr;
+	u16 valid_links;
+	struct {
+		const u8 *addr;
+		const u8 *bssid;
+		struct cfg80211_bss *bss;
+		u16 status;
+	} links[IEEE80211_MLD_MAX_NUM_LINKS];
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+	ANDROID_BACKPORT_RESERVED(4);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
+	ANDROID_VENDOR_DATA(4);
 };
 
 /**
@@ -7113,8 +7926,8 @@
 
 	memset(&params, 0, sizeof(params));
 	params.status = status;
-	params.bssid = bssid;
-	params.bss = bss;
+	params.links[0].bssid = bssid;
+	params.links[0].bss = bss;
 	params.req_ie = req_ie;
 	params.req_ie_len = req_ie_len;
 	params.resp_ie = resp_ie;
@@ -7185,24 +7998,50 @@
 /**
  * struct cfg80211_roam_info - driver initiated roaming information
  *
- * @channel: the channel of the new AP
- * @bss: entry of bss to which STA got roamed (may be %NULL if %bssid is set)
- * @bssid: the BSSID of the new AP (may be %NULL if %bss is set)
  * @req_ie: association request IEs (maybe be %NULL)
  * @req_ie_len: association request IEs length
  * @resp_ie: association response IEs (may be %NULL)
  * @resp_ie_len: assoc response IEs length
  * @fils: FILS related roaming information.
+ * @valid_links: For MLO roaming, BIT mask of the new valid links is set.
+ *	Otherwise zero.
+ * @ap_mld_addr: For MLO roaming, MLD address of the new AP. Otherwise %NULL.
+ * @links : For MLO roaming, contains new link info for the valid links set in
+ *	@valid_links. For non-MLO roaming, links[0] contains the new AP info.
+ * @links.addr: For MLO roaming, MAC address of the STA link. Otherwise %NULL.
+ * @links.bssid: For MLO roaming, MAC address of the new AP link. For non-MLO
+ *	roaming, links[0].bssid points to the BSSID of the new AP. May be
+ *	%NULL if %links.bss is set.
+ * @links.channel: the channel of the new AP.
+ * @links.bss: For MLO roaming, entry of new bss to which STA link got
+ *	roamed. For non-MLO roaming, links[0].bss points to entry of bss to
+ *	which STA got roamed (may be %NULL if %links.bssid is set)
  */
 struct cfg80211_roam_info {
-	struct ieee80211_channel *channel;
-	struct cfg80211_bss *bss;
-	const u8 *bssid;
 	const u8 *req_ie;
 	size_t req_ie_len;
 	const u8 *resp_ie;
 	size_t resp_ie_len;
 	struct cfg80211_fils_resp_params fils;
+
+	const u8 *ap_mld_addr;
+	u16 valid_links;
+	struct {
+		const u8 *addr;
+		const u8 *bssid;
+		struct ieee80211_channel *channel;
+		struct cfg80211_bss *bss;
+	} links[IEEE80211_MLD_MAX_NUM_LINKS];
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+	ANDROID_BACKPORT_RESERVED(3);
+	ANDROID_BACKPORT_RESERVED(4);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
+	ANDROID_VENDOR_DATA(3);
+	ANDROID_VENDOR_DATA(4);
 };
 
 /**
@@ -7231,6 +8070,8 @@
  *
  * @dev: network device
  * @bssid: the BSSID of the AP
+ * @td_bitmap: transition disable policy
+ * @td_bitmap_len: Length of transition disable policy
  * @gfp: allocation flags
  *
  * This function should be called by a driver that supports 4 way handshake
@@ -7241,7 +8082,7 @@
  * indicate the 802.11 association.
  */
 void cfg80211_port_authorized(struct net_device *dev, const u8 *bssid,
-			      gfp_t gfp);
+			      const u8* td_bitmap, u8 td_bitmap_len, gfp_t gfp);
 
 /**
  * cfg80211_disconnected - notify cfg80211 that connection was dropped
@@ -7369,6 +8210,48 @@
 			  gfp_t gfp);
 
 /**
+ * struct cfg80211_rx_info - received management frame info
+ *
+ * @freq: Frequency on which the frame was received in kHz
+ * @sig_dbm: signal strength in dBm, or 0 if unknown
+ * @have_link_id: indicates the frame was received on a link of
+ *	an MLD, i.e. the @link_id field is valid
+ * @link_id: the ID of the link the frame was received	on
+ * @buf: Management frame (header + body)
+ * @len: length of the frame data
+ * @flags: flags, as defined in enum nl80211_rxmgmt_flags
+ * @rx_tstamp: Hardware timestamp of frame RX in nanoseconds
+ * @ack_tstamp: Hardware timestamp of ack TX in nanoseconds
+ */
+struct cfg80211_rx_info {
+	int freq;
+	int sig_dbm;
+	bool have_link_id;
+	u8 link_id;
+	const u8 *buf;
+	size_t len;
+	u32 flags;
+	u64 rx_tstamp;
+	u64 ack_tstamp;
+};
+
+/**
+ * cfg80211_rx_mgmt_ext - management frame notification with extended info
+ * @wdev: wireless device receiving the frame
+ * @info: RX info as defined in struct cfg80211_rx_info
+ *
+ * This function is called whenever an Action frame is received for a station
+ * mode interface, but is not processed in kernel.
+ *
+ * Return: %true if a user space application has registered for this frame.
+ * For action frames, that makes it responsible for rejecting unrecognized
+ * action frames; %false otherwise, in which case for action frames the
+ * driver is responsible for rejecting the frame.
+ */
+bool cfg80211_rx_mgmt_ext(struct wireless_dev *wdev,
+			  struct cfg80211_rx_info *info);
+
+/**
  * cfg80211_rx_mgmt_khz - notification of received, unprocessed management frame
  * @wdev: wireless device receiving the frame
  * @freq: Frequency on which the frame was received in KHz
@@ -7385,8 +8268,20 @@
  * action frames; %false otherwise, in which case for action frames the
  * driver is responsible for rejecting the frame.
  */
-bool cfg80211_rx_mgmt_khz(struct wireless_dev *wdev, int freq, int sig_dbm,
-			  const u8 *buf, size_t len, u32 flags);
+static inline bool cfg80211_rx_mgmt_khz(struct wireless_dev *wdev, int freq,
+					int sig_dbm, const u8 *buf, size_t len,
+					u32 flags)
+{
+	struct cfg80211_rx_info info = {
+		.freq = freq,
+		.sig_dbm = sig_dbm,
+		.buf = buf,
+		.len = len,
+		.flags = flags
+	};
+
+	return cfg80211_rx_mgmt_ext(wdev, &info);
+}
 
 /**
  * cfg80211_rx_mgmt - notification of received, unprocessed management frame
@@ -7409,11 +8304,50 @@
 				    int sig_dbm, const u8 *buf, size_t len,
 				    u32 flags)
 {
-	return cfg80211_rx_mgmt_khz(wdev, MHZ_TO_KHZ(freq), sig_dbm, buf, len,
-				    flags);
+	struct cfg80211_rx_info info = {
+		.freq = MHZ_TO_KHZ(freq),
+		.sig_dbm = sig_dbm,
+		.buf = buf,
+		.len = len,
+		.flags = flags
+	};
+
+	return cfg80211_rx_mgmt_ext(wdev, &info);
 }
 
 /**
+ * struct cfg80211_tx_status - TX status for management frame information
+ *
+ * @cookie: Cookie returned by cfg80211_ops::mgmt_tx()
+ * @tx_tstamp: hardware TX timestamp in nanoseconds
+ * @ack_tstamp: hardware ack RX timestamp in nanoseconds
+ * @buf: Management frame (header + body)
+ * @len: length of the frame data
+ * @ack: Whether frame was acknowledged
+ */
+struct cfg80211_tx_status {
+	u64 cookie;
+	u64 tx_tstamp;
+	u64 ack_tstamp;
+	const u8 *buf;
+	size_t len;
+	bool ack;
+};
+
+/**
+ * cfg80211_mgmt_tx_status_ext - TX status notification with extended info
+ * @wdev: wireless device receiving the frame
+ * @status: TX status data
+ * @gfp: context flags
+ *
+ * This function is called whenever a management frame was requested to be
+ * transmitted with cfg80211_ops::mgmt_tx() to report the TX status of the
+ * transmission attempt with extended info.
+ */
+void cfg80211_mgmt_tx_status_ext(struct wireless_dev *wdev,
+				 struct cfg80211_tx_status *status, gfp_t gfp);
+
+/**
  * cfg80211_mgmt_tx_status - notification of TX status for management frame
  * @wdev: wireless device receiving the frame
  * @cookie: Cookie returned by cfg80211_ops::mgmt_tx()
@@ -7426,8 +8360,19 @@
  * transmitted with cfg80211_ops::mgmt_tx() to report the TX status of the
  * transmission attempt.
  */
-void cfg80211_mgmt_tx_status(struct wireless_dev *wdev, u64 cookie,
-			     const u8 *buf, size_t len, bool ack, gfp_t gfp);
+static inline void cfg80211_mgmt_tx_status(struct wireless_dev *wdev,
+					   u64 cookie, const u8 *buf,
+					   size_t len, bool ack, gfp_t gfp)
+{
+	struct cfg80211_tx_status status = {
+		.cookie = cookie,
+		.buf = buf,
+		.len = len,
+		.ack = ack
+	};
+
+	cfg80211_mgmt_tx_status_ext(wdev, &status, gfp);
+}
 
 /**
  * cfg80211_control_port_tx_status - notification of TX status for control
@@ -7456,6 +8401,7 @@
  *	responsible for any cleanup.  The caller must also ensure that
  *	skb->protocol is set appropriately.
  * @unencrypted: Whether the frame was received unencrypted
+ * @link_id: the link the frame was received on, -1 if not applicable or unknown
  *
  * This function is used to inform userspace about a received control port
  * frame.  It should only be used if userspace indicated it wants to receive
@@ -7466,8 +8412,8 @@
  *
  * Return: %true if the frame was passed to userspace
  */
-bool cfg80211_rx_control_port(struct net_device *dev,
-			      struct sk_buff *skb, bool unencrypted);
+bool cfg80211_rx_control_port(struct net_device *dev, struct sk_buff *skb,
+			      bool unencrypted, int link_id);
 
 /**
  * cfg80211_cqm_rssi_notify - connection quality monitoring rssi event
@@ -7520,15 +8466,33 @@
 void cfg80211_cqm_beacon_loss_notify(struct net_device *dev, gfp_t gfp);
 
 /**
- * cfg80211_radar_event - radar detection event
+ * __cfg80211_radar_event - radar detection event
  * @wiphy: the wiphy
  * @chandef: chandef for the current channel
+ * @offchan: the radar has been detected on the offchannel chain
  * @gfp: context flags
  *
  * This function is called when a radar is detected on the current chanenl.
  */
-void cfg80211_radar_event(struct wiphy *wiphy,
-			  struct cfg80211_chan_def *chandef, gfp_t gfp);
+void __cfg80211_radar_event(struct wiphy *wiphy,
+			    struct cfg80211_chan_def *chandef,
+			    bool offchan, gfp_t gfp);
+
+static inline void
+cfg80211_radar_event(struct wiphy *wiphy,
+		     struct cfg80211_chan_def *chandef,
+		     gfp_t gfp)
+{
+	__cfg80211_radar_event(wiphy, chandef, false, gfp);
+}
+
+static inline void
+cfg80211_background_radar_event(struct wiphy *wiphy,
+				struct cfg80211_chan_def *chandef,
+				gfp_t gfp)
+{
+	__cfg80211_radar_event(wiphy, chandef, true, gfp);
+}
 
 /**
  * cfg80211_sta_opmode_change_notify - STA's ht/vht operation mode change event
@@ -7559,6 +8523,14 @@
 			const struct cfg80211_chan_def *chandef,
 			enum nl80211_radar_event event, gfp_t gfp);
 
+/**
+ * cfg80211_background_cac_abort - Channel Availability Check offchan abort event
+ * @wiphy: the wiphy
+ *
+ * This function is called by the driver when a Channel Availability Check
+ * (CAC) is aborted by a offchannel dedicated chain.
+ */
+void cfg80211_background_cac_abort(struct wiphy *wiphy);
 
 /**
  * cfg80211_gtk_rekey_notify - notify userspace about driver rekeying
@@ -7695,19 +8667,24 @@
  * cfg80211_ch_switch_notify - update wdev channel and notify userspace
  * @dev: the device which switched channels
  * @chandef: the new channel definition
+ * @link_id: the link ID for MLO, must be 0 for non-MLO
+ * @punct_bitmap: the new puncturing bitmap
  *
  * Caller must acquire wdev_lock, therefore must only be called from sleepable
  * driver context!
  */
 void cfg80211_ch_switch_notify(struct net_device *dev,
-			       struct cfg80211_chan_def *chandef);
+			       struct cfg80211_chan_def *chandef,
+			       unsigned int link_id, u16 punct_bitmap);
 
 /*
  * cfg80211_ch_switch_started_notify - notify channel switch start
  * @dev: the device on which the channel switch started
  * @chandef: the future channel definition
+ * @link_id: the link ID for MLO, must be 0 for non-MLO
  * @count: the number of TBTTs until the channel switch happens
  * @quiet: whether or not immediate quiet was requested by the AP
+ * @punct_bitmap: the future puncturing bitmap
  *
  * Inform the userspace about the channel switch that has just
  * started, so that it can take appropriate actions (eg. starting
@@ -7715,7 +8692,8 @@
  */
 void cfg80211_ch_switch_started_notify(struct net_device *dev,
 				       struct cfg80211_chan_def *chandef,
-				       u8 count, bool quiet);
+				       unsigned int link_id, u8 count,
+				       bool quiet, u16 punct_bitmap);
 
 /**
  * ieee80211_operating_class_to_band - convert operating class to band
@@ -7836,6 +8814,12 @@
 	const u8 *target_ap;
 	const u8 *ric_ies;
 	size_t ric_ies_len;
+
+	ANDROID_BACKPORT_RESERVED(1);
+	ANDROID_BACKPORT_RESERVED(2);
+
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_VENDOR_DATA(2);
 };
 
 /**
@@ -8176,6 +9160,18 @@
 			     bool is_4addr, u8 check_swif);
 
 
+/**
+ * cfg80211_assoc_comeback - notification of association that was
+ * temporarly rejected with a comeback
+ * @netdev: network device
+ * @ap_addr: AP (MLD) address that rejected the assocation
+ * @timeout: timeout interval value TUs.
+ *
+ * this function may sleep. the caller must hold the corresponding wdev's mutex.
+ */
+void cfg80211_assoc_comeback(struct net_device *netdev,
+			     const u8 *ap_addr, u32 timeout);
+
 /* Logging, debugging and troubleshooting/diagnostic helpers. */
 
 /* wiphy_printk helpers, similar to dev_printk */
@@ -8311,4 +9307,16 @@
 					 0, 0);
 }
 
+/**
+ * cfg80211_valid_disable_subchannel_bitmap - validate puncturing bitmap
+ * @bitmap: bitmap to be validated
+ * @chandef: channel definition
+ *
+ * Validate the puncturing bitmap.
+ *
+ * Return: %true if the bitmap is valid. %false otherwise.
+ */
+bool cfg80211_valid_disable_subchannel_bitmap(u16 *bitmap,
+					      const struct cfg80211_chan_def *chandef);
+
 #endif /* __NET_CFG80211_H */
diff --git a/include/net/dst.h b/include/net/dst.h
index 827f99d..5f36b60 100644
--- a/include/net/dst.h
+++ b/include/net/dst.h
@@ -355,8 +355,9 @@
 static inline void skb_tunnel_rx(struct sk_buff *skb, struct net_device *dev,
 				 struct net *net)
 {
-	DEV_STATS_INC(dev, rx_packets);
-	DEV_STATS_ADD(dev, rx_bytes, skb->len);
+	/* TODO : stats should be SMP safe */
+	dev->stats.rx_packets++;
+	dev->stats.rx_bytes += skb->len;
 	__skb_tunnel_rx(skb, dev, net);
 }
 
diff --git a/include/net/flow.h b/include/net/flow.h
index e3f9d92..58beb16 100644
--- a/include/net/flow.h
+++ b/include/net/flow.h
@@ -54,6 +54,11 @@
 		__u8	code;
 	} icmpt;
 
+	struct {
+		__le16	dport;
+		__le16	sport;
+	} dnports;
+
 	__be32		gre_key;
 
 	struct {
@@ -148,11 +153,27 @@
 	__u32			mp_hash;
 } __attribute__((__aligned__(BITS_PER_LONG/8)));
 
+struct flowidn {
+	struct flowi_common	__fl_common;
+#define flowidn_oif		__fl_common.flowic_oif
+#define flowidn_iif		__fl_common.flowic_iif
+#define flowidn_mark		__fl_common.flowic_mark
+#define flowidn_scope		__fl_common.flowic_scope
+#define flowidn_proto		__fl_common.flowic_proto
+#define flowidn_flags		__fl_common.flowic_flags
+	__le16			daddr;
+	__le16			saddr;
+	union flowi_uli		uli;
+#define fld_sport		uli.ports.sport
+#define fld_dport		uli.ports.dport
+} __attribute__((__aligned__(BITS_PER_LONG/8)));
+
 struct flowi {
 	union {
 		struct flowi_common	__fl_common;
 		struct flowi4		ip4;
 		struct flowi6		ip6;
+		struct flowidn		dn;
 	} u;
 #define flowi_oif	u.__fl_common.flowic_oif
 #define flowi_iif	u.__fl_common.flowic_iif
@@ -186,6 +207,11 @@
 	return &(fl6->__fl_common);
 }
 
+static inline struct flowi *flowidn_to_flowi(struct flowidn *fldn)
+{
+	return container_of(fldn, struct flowi, u.dn);
+}
+
 __u32 __get_hash_from_flowi6(const struct flowi6 *fl6, struct flow_keys *keys);
 
 #endif
diff --git a/include/net/genetlink.h b/include/net/genetlink.h
index 7cb3fa8..a48feee 100644
--- a/include/net/genetlink.h
+++ b/include/net/genetlink.h
@@ -3,6 +3,7 @@
 #define __NET_GENERIC_NETLINK_H
 
 #include <linux/genetlink.h>
+#include <linux/android_kabi.h>
 #include <net/netlink.h>
 #include <net/net_namespace.h>
 
@@ -68,6 +69,8 @@
 	const struct genl_small_ops *small_ops;
 	const struct genl_multicast_group *mcgrps;
 	struct module		*module;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -159,6 +162,8 @@
 	u8			internal_flags;
 	u8			flags;
 	u8			validate;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h
index 695ed45..9b9de29 100644
--- a/include/net/inet_connection_sock.h
+++ b/include/net/inet_connection_sock.h
@@ -17,6 +17,7 @@
 #include <linux/poll.h>
 #include <linux/kernel.h>
 #include <linux/sockptr.h>
+#include <linux/android_kabi.h>
 
 #include <net/inet_sock.h>
 #include <net/request_sock.h>
@@ -51,6 +52,8 @@
 				  char __user *optval, int __user *optlen);
 	void	    (*addr2sockaddr)(struct sock *sk, struct sockaddr *);
 	void	    (*mtu_reduced)(struct sock *sk);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /** inet_connection_sock - INET connection oriented sock
@@ -134,6 +137,8 @@
 	u32			  icsk_probes_tstamp;
 	u32			  icsk_user_timeout;
 
+	ANDROID_KABI_RESERVE(1);
+
 	u64			  icsk_ca_priv[104 / sizeof(u64)];
 #define ICSK_CA_PRIV_SIZE	  sizeof_field(struct inet_connection_sock, icsk_ca_priv)
 };
diff --git a/include/net/ip.h b/include/net/ip.h
index fc05e01..20b80c7 100644
--- a/include/net/ip.h
+++ b/include/net/ip.h
@@ -347,6 +347,13 @@
 	return test_bit(port, net->ipv4.sysctl_local_reserved_ports);
 }
 
+static inline bool inet_is_local_unbindable_port(struct net *net, unsigned short port)
+{
+	if (!net->ipv4.sysctl_local_unbindable_ports)
+		return false;
+	return test_bit(port, net->ipv4.sysctl_local_unbindable_ports);
+}
+
 static inline bool sysctl_dev_name_is_allowed(const char *name)
 {
 	return strcmp(name, "default") != 0  && strcmp(name, "all") != 0;
@@ -363,6 +370,11 @@
 	return false;
 }
 
+static inline bool inet_is_local_unbindable_port(struct net *net, unsigned short port)
+{
+	return false;
+}
+
 static inline bool inet_port_requires_bind_service(struct net *net, unsigned short port)
 {
 	return port < PROT_SOCK;
@@ -561,7 +573,7 @@
 	BUILD_BUG_ON(offsetof(typeof(flow->addrs), v4addrs.dst) !=
 		     offsetof(typeof(flow->addrs), v4addrs.src) +
 			      sizeof(flow->addrs.v4addrs.src));
-	memcpy(&flow->addrs.v4addrs, &iph->addrs, sizeof(flow->addrs.v4addrs));
+	memcpy(&flow->addrs.v4addrs, &iph->saddr, sizeof(flow->addrs.v4addrs));
 	flow->control.addr_type = FLOW_DISSECTOR_KEY_IPV4_ADDRS;
 }
 
diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h
index bbb2763..1b4d27e 100644
--- a/include/net/ip6_fib.h
+++ b/include/net/ip6_fib.h
@@ -13,6 +13,7 @@
 #include <linux/rtnetlink.h>
 #include <linux/spinlock.h>
 #include <linux/notifier.h>
+#include <linux/android_kabi.h>
 #include <net/dst.h>
 #include <net/flow.h>
 #include <net/ip_fib.h>
@@ -67,6 +68,8 @@
 	struct nlattr	*fc_encap;
 	u16		fc_encap_type;
 	bool		fc_is_fdb;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct fib6_node {
@@ -83,6 +86,8 @@
 	int			fn_sernum;
 	struct fib6_info __rcu	*rr_ptr;
 	struct rcu_head		rcu;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct fib6_gc_args {
@@ -202,6 +207,9 @@
 
 	struct rcu_head			rcu;
 	struct nexthop			*nh;
+
+	ANDROID_KABI_RESERVE(1);
+
 	struct fib6_nh			fib6_nh[];
 };
 
@@ -221,6 +229,8 @@
 
 	/* more non-fragment space at head required */
 	unsigned short			rt6i_nfheader_len;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct fib6_result {
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index 20930086..4002fc9 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -839,7 +839,7 @@
 	BUILD_BUG_ON(offsetof(typeof(flow->addrs), v6addrs.dst) !=
 		     offsetof(typeof(flow->addrs), v6addrs.src) +
 		     sizeof(flow->addrs.v6addrs.src));
-	memcpy(&flow->addrs.v6addrs, &iph->addrs, sizeof(flow->addrs.v6addrs));
+	memcpy(&flow->addrs.v6addrs, &iph->saddr, sizeof(flow->addrs.v6addrs));
 	flow->control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS;
 }
 
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 618d1f4..8eac316 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -18,6 +18,7 @@
 #include <linux/if_ether.h>
 #include <linux/skbuff.h>
 #include <linux/ieee80211.h>
+#include <linux/android_kabi.h>
 #include <net/cfg80211.h>
 #include <net/codel.h>
 #include <net/ieee80211_radiotap.h>
@@ -702,6 +703,8 @@
 	u32 unsol_bcast_probe_resp_interval;
 	bool s1g;
 	struct cfg80211_bitrate_mask beacon_tx_rate;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -1102,6 +1105,9 @@
 			void *rate_driver_data[
 				IEEE80211_TX_INFO_RATE_DRIVER_DATA_SIZE / sizeof(void *)];
 		};
+
+		ANDROID_KABI_RESERVE(1);
+
 		void *driver_data[
 			IEEE80211_TX_INFO_DRIVER_DATA_SIZE / sizeof(void *)];
 	};
@@ -1591,6 +1597,8 @@
 	struct cfg80211_chan_def chandef;
 	bool radar_enabled;
 	enum ieee80211_smps_mode smps_mode;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -1746,6 +1754,8 @@
 	bool color_change_active;
 	u8 color_change_color;
 
+	ANDROID_KABI_RESERVE(1);
+
 	/* must be last */
 	u8 drv_priv[] __aligned(sizeof(void *));
 };
@@ -2128,6 +2138,8 @@
 
 	struct ieee80211_txq *txq[IEEE80211_NUM_TIDS + 1];
 
+	ANDROID_KABI_RESERVE(1);
+
 	/* must be last */
 	u8 drv_priv[] __aligned(sizeof(void *));
 };
@@ -2633,6 +2645,8 @@
 	u8 tx_sk_pacing_shift;
 	u8 weight_multiplier;
 	u32 max_mtu;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 static inline bool _ieee80211_hw_check(struct ieee80211_hw *hw,
@@ -3933,6 +3947,14 @@
  *	twt structure.
  * @twt_teardown_request: Update the hw with TWT teardown request received
  *	from the peer.
+ * @set_radar_background: Configure dedicated offchannel chain available for
+ *	radar/CAC detection on some hw. This chain can't be used to transmit
+ *	or receive frames and it is bounded to a running wdev.
+ *	Background radar/CAC detection allows to avoid the CAC downtime
+ *	switching to a different channel during CAC detection on the selected
+ *	radar channel.
+ *	The caller is expected to set chandef pointer to NULL in order to
+ *	disable background CAC/radar detection.
  */
 struct ieee80211_ops {
 	void (*tx)(struct ieee80211_hw *hw,
@@ -4261,6 +4283,13 @@
 			      struct ieee80211_twt_setup *twt);
 	void (*twt_teardown_request)(struct ieee80211_hw *hw,
 				     struct ieee80211_sta *sta, u8 flowid);
+	int (*set_radar_background)(struct ieee80211_hw *hw,
+				    struct cfg80211_chan_def *chandef);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 /**
@@ -6276,6 +6305,11 @@
 				struct dentry *dir);
 
 	u32 (*get_expected_throughput)(void *priv_sta);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 static inline int rate_supported(struct ieee80211_sta *sta,
diff --git a/include/net/neighbour.h b/include/net/neighbour.h
index 0e9d33e4..42f74b5 100644
--- a/include/net/neighbour.h
+++ b/include/net/neighbour.h
@@ -28,6 +28,7 @@
 #include <linux/err.h>
 #include <linux/sysctl.h>
 #include <linux/workqueue.h>
+#include <linux/android_kabi.h>
 #include <net/rtnetlink.h>
 
 /*
@@ -83,6 +84,8 @@
 	int	reachable_time;
 	int	data[NEIGH_VAR_DATA_MAX];
 	DECLARE_BITMAP(data_state, NEIGH_VAR_DATA_MAX);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 static inline void neigh_var_set(struct neigh_parms *p, int index, int val)
@@ -157,6 +160,9 @@
 	struct list_head	gc_list;
 	struct rcu_head		rcu;
 	struct net_device	*dev;
+
+	ANDROID_KABI_RESERVE(1);
+
 	u8			primary_key[0];
 } __randomize_layout;
 
@@ -174,7 +180,7 @@
 	struct net_device	*dev;
 	u8			flags;
 	u8			protocol;
-	u32			key[];
+	u8			key[];
 };
 
 /*
@@ -226,6 +232,8 @@
 	struct neigh_statistics	__percpu *stats;
 	struct neigh_hash_table __rcu *nht;
 	struct pneigh_entry	**phash_buckets;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 enum {
diff --git a/include/net/netfilter/nf_conntrack.h b/include/net/netfilter/nf_conntrack.h
index 34c2665..8e2a91e 100644
--- a/include/net/netfilter/nf_conntrack.h
+++ b/include/net/netfilter/nf_conntrack.h
@@ -15,6 +15,8 @@
 
 #include <linux/bitops.h>
 #include <linux/compiler.h>
+#include <linux/android_vendor.h>
+#include <linux/android_kabi.h>
 
 #include <linux/netfilter/nf_conntrack_common.h>
 #include <linux/netfilter/nf_conntrack_tcp.h>
@@ -121,6 +123,10 @@
 
 	/* Storage reserved for other modules, must be the last member */
 	union nf_conntrack_proto proto;
+
+	ANDROID_OEM_DATA(1);
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 static inline struct nf_conn *
diff --git a/include/net/netns/can.h b/include/net/netns/can.h
index 52fbd82..d075f61 100644
--- a/include/net/netns/can.h
+++ b/include/net/netns/can.h
@@ -7,6 +7,7 @@
 #define __NETNS_CAN_H__
 
 #include <linux/spinlock.h>
+#include <linux/android_kabi.h>
 
 struct can_dev_rcv_lists;
 struct can_pkg_stats;
@@ -35,6 +36,8 @@
 
 	/* CAN GW per-net gateway jobs */
 	struct hlist_head cgw_list;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 #endif /* __NETNS_CAN_H__ */
diff --git a/include/net/netns/ipv4.h b/include/net/netns/ipv4.h
index d60a10c..9ee19a5 100644
--- a/include/net/netns/ipv4.h
+++ b/include/net/netns/ipv4.h
@@ -10,6 +10,7 @@
 #include <net/inet_frag.h>
 #include <linux/rcupdate.h>
 #include <linux/siphash.h>
+#include <linux/android_kabi.h>
 
 struct ctl_table_header;
 struct ipv4_devconf;
@@ -74,6 +75,7 @@
 	struct sock		*mc_autojoin_sk;
 
 	struct inet_peer_base	*peers;
+	struct sock  * __percpu	*tcp_sk;
 	struct fqdir		*fqdir;
 
 	u8 sysctl_icmp_echo_ignore_all;
@@ -197,6 +199,7 @@
 
 #ifdef CONFIG_SYSCTL
 	unsigned long *sysctl_local_reserved_ports;
+	unsigned long *sysctl_local_unbindable_ports;
 	int sysctl_ip_prot_sock;
 #endif
 
@@ -222,5 +225,7 @@
 
 	atomic_t	rt_genid;
 	siphash_key_t	ip_id_key;
+
+	ANDROID_KABI_RESERVE(1);
 };
 #endif
diff --git a/include/net/netns/ipv6.h b/include/net/netns/ipv6.h
index 181b44f..b0916c8 100644
--- a/include/net/netns/ipv6.h
+++ b/include/net/netns/ipv6.h
@@ -7,6 +7,7 @@
 
 #ifndef __NETNS_IPV6_H__
 #define __NETNS_IPV6_H__
+#include <linux/android_kabi.h>
 #include <net/dst_ops.h>
 #include <uapi/linux/icmpv6.h>
 
@@ -53,8 +54,9 @@
 	int seg6_flowlabel;
 	u32 ioam6_id;
 	u64 ioam6_id_wide;
-	int skip_notify_on_dev_down;
+	bool skip_notify_on_dev_down;
 	u8 fib_notify_on_flag_change;
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct netns_ipv6 {
@@ -114,6 +116,8 @@
 		u32		seq;
 	} ip6addrlbl_table;
 	struct ioam6_pernet_data *ioam6_data;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 #if IS_ENABLED(CONFIG_NF_DEFRAG_IPV6)
diff --git a/include/net/netns/netfilter.h b/include/net/netns/netfilter.h
index 02bbdc5..3b7eb0c 100644
--- a/include/net/netns/netfilter.h
+++ b/include/net/netns/netfilter.h
@@ -3,6 +3,7 @@
 #define __NETNS_NETFILTER_H
 
 #include <linux/netfilter_defs.h>
+#include <linux/android_kabi.h>
 
 struct proc_dir_entry;
 struct nf_logger;
@@ -30,5 +31,7 @@
 #if IS_ENABLED(CONFIG_NF_DEFRAG_IPV6)
 	unsigned int defrag_ipv6_users;
 #endif
+
+	ANDROID_KABI_RESERVE(1);
 };
 #endif
diff --git a/include/net/netns/nftables.h b/include/net/netns/nftables.h
index 8c77832..26930d6 100644
--- a/include/net/netns/nftables.h
+++ b/include/net/netns/nftables.h
@@ -3,9 +3,11 @@
 #define _NETNS_NFTABLES_H_
 
 #include <linux/list.h>
+#include <linux/android_kabi.h>
 
 struct netns_nftables {
 	u8			gencursor;
+	ANDROID_KABI_RESERVE(1);
 };
 
 #endif
diff --git a/include/net/netns/xfrm.h b/include/net/netns/xfrm.h
index bd7c3be..c8dcbf3 100644
--- a/include/net/netns/xfrm.h
+++ b/include/net/netns/xfrm.h
@@ -7,6 +7,7 @@
 #include <linux/workqueue.h>
 #include <linux/rhashtable-types.h>
 #include <linux/xfrm.h>
+#include <linux/android_kabi.h>
 #include <net/dst_ops.h>
 
 struct ctl_table_header;
@@ -82,6 +83,8 @@
 
 	spinlock_t xfrm_policy_lock;
 	struct mutex xfrm_cfg_mutex;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 #endif
diff --git a/include/net/page_pool.h b/include/net/page_pool.h
index edcc226..9932942 100644
--- a/include/net/page_pool.h
+++ b/include/net/page_pool.h
@@ -33,6 +33,7 @@
 #include <linux/mm.h> /* Needed by ptr_ring */
 #include <linux/ptr_ring.h>
 #include <linux/dma-direction.h>
+#include <linux/android_kabi.h>
 
 #define PP_FLAG_DMA_MAP		BIT(0) /* Should page_pool do the DMA
 					* map/unmap
@@ -132,6 +133,8 @@
 	refcount_t user_cnt;
 
 	u64 destroy_cnt;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct page *page_pool_alloc_pages(struct page_pool *pool, gfp_t gfp);
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
index 6906da5..ce4e891 100644
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
@@ -16,6 +16,7 @@
 #include <linux/rwsem.h>
 #include <linux/atomic.h>
 #include <linux/hashtable.h>
+#include <linux/android_kabi.h>
 #include <net/gen_stats.h>
 #include <net/rtnetlink.h>
 #include <net/flow_offload.h>
@@ -119,6 +120,8 @@
 
 	struct rcu_head		rcu;
 
+	ANDROID_KABI_RESERVE(1);
+
 	/* private data */
 	long privdata[] ____cacheline_aligned;
 };
@@ -263,6 +266,8 @@
 					struct sk_buff *skb, struct tcmsg*);
 	int			(*dump_stats)(struct Qdisc *, unsigned long,
 					struct gnet_dump *);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /* Qdisc_class_ops flag values */
@@ -308,6 +313,8 @@
 	u32			(*egress_block_get)(struct Qdisc *sch);
 
 	struct module		*owner;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 
diff --git a/include/net/sock.h b/include/net/sock.h
index 640bd7a..77c2d57 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -69,6 +69,8 @@
 #include <linux/net_tstamp.h>
 #include <net/l3mdev.h>
 #include <uapi/linux/socket.h>
+#include <linux/android_vendor.h>
+#include <linux/android_kabi.h>
 
 /*
  * This structure really needs to be cleaned up.
@@ -334,7 +336,6 @@
   *	@sk_cgrp_data: cgroup data for this cgroup
   *	@sk_memcg: this socket's memory cgroup association
   *	@sk_write_pending: a write to stream socket waits to start
-  *	@sk_wait_pending: number of threads blocked on this socket
   *	@sk_state_change: callback to indicate change in the state of the sock
   *	@sk_data_ready: callback to indicate there is data to be processed
   *	@sk_write_space: callback to indicate there is bf sending space available
@@ -419,7 +420,6 @@
 	unsigned int		sk_napi_id;
 #endif
 	int			sk_rcvbuf;
-	int			sk_wait_pending;
 
 	struct sk_filter __rcu	*sk_filter;
 	union {
@@ -537,6 +537,16 @@
 	struct bpf_local_storage __rcu	*sk_bpf_storage;
 #endif
 	struct rcu_head		sk_rcu;
+
+	ANDROID_OEM_DATA(1);
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
+	ANDROID_KABI_RESERVE(5);
+	ANDROID_KABI_RESERVE(6);
+	ANDROID_KABI_RESERVE(7);
+	ANDROID_KABI_RESERVE(8);
 };
 
 enum sk_pacing {
@@ -1125,7 +1135,6 @@
 
 #define sk_wait_event(__sk, __timeo, __condition, __wait)		\
 	({	int __rc;						\
-		__sk->sk_wait_pending++;				\
 		release_sock(__sk);					\
 		__rc = __condition;					\
 		if (!__rc) {						\
@@ -1135,7 +1144,6 @@
 		}							\
 		sched_annotate_sleep();					\
 		lock_sock(__sk);					\
-		__sk->sk_wait_pending--;				\
 		__rc = __condition;					\
 		__rc;							\
 	})
diff --git a/include/net/sock_reuseport.h b/include/net/sock_reuseport.h
index 6ec140b..efc9085 100644
--- a/include/net/sock_reuseport.h
+++ b/include/net/sock_reuseport.h
@@ -16,7 +16,6 @@
 	u16			max_socks;		/* length of socks */
 	u16			num_socks;		/* elements in socks */
 	u16			num_closed_socks;	/* closed elements in socks */
-	u16			incoming_cpu;
 	/* The last synq overflow event timestamp of this
 	 * reuse->socks[] group.
 	 */
@@ -59,6 +58,5 @@
 }
 
 void reuseport_has_conns_set(struct sock *sk);
-void reuseport_update_incoming_cpu(struct sock *sk, int val);
 
 #endif  /* _SOCK_REUSEPORT_H */
diff --git a/include/net/tcp.h b/include/net/tcp.h
index d8920f8..e1b8ec8 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -2260,8 +2260,8 @@
 void tcp_bpf_clone(const struct sock *sk, struct sock *newsk);
 #endif /* CONFIG_BPF_SYSCALL */
 
-int tcp_bpf_sendmsg_redir(struct sock *sk, bool ingress,
-			  struct sk_msg *msg, u32 bytes, int flags);
+int tcp_bpf_sendmsg_redir(struct sock *sk, struct sk_msg *msg, u32 bytes,
+			  int flags);
 #endif /* CONFIG_NET_SOCK_MSG */
 
 #if !defined(CONFIG_BPF_SYSCALL) || !defined(CONFIG_NET_SOCK_MSG)
diff --git a/include/net/tls.h b/include/net/tls.h
index eda0015..de30e7c 100644
--- a/include/net/tls.h
+++ b/include/net/tls.h
@@ -43,6 +43,7 @@
 #include <linux/mutex.h>
 #include <linux/netdevice.h>
 #include <linux/rcupdate.h>
+#include <linux/android_kabi.h>
 
 #include <net/net_namespace.h>
 #include <net/tcp.h>
@@ -113,6 +114,9 @@
 	char aad_space[TLS_AAD_SPACE_SIZE];
 	u8 iv_data[MAX_IV_SIZE];
 	struct aead_request aead_req;
+
+	ANDROID_KABI_RESERVE(1);
+
 	u8 aead_req_ctx[];
 };
 
@@ -141,6 +145,8 @@
 #define BIT_TX_SCHEDULED	0
 #define BIT_TX_CLOSING		1
 	unsigned long tx_bitmask;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct tls_sw_context_rx {
@@ -158,6 +164,8 @@
 	/* protect crypto_wait with decrypt_pending*/
 	spinlock_t decrypt_compl_lock;
 	bool async_notify;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct tls_record_info {
@@ -298,6 +306,12 @@
 	int (*tls_dev_resync)(struct net_device *netdev,
 			      struct sock *sk, u32 seq, u8 *rcd_sn,
 			      enum tls_offload_ctx_dir direction);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
+
 };
 
 enum tls_offload_sync_type {
diff --git a/include/net/virt_wifi.h b/include/net/virt_wifi.h
new file mode 100644
index 0000000..343e739
--- /dev/null
+++ b/include/net/virt_wifi.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* include/net/virt_wifi.h
+ *
+ * Define the extension interface for the network data simulation
+ *
+ * Copyright (C) 2019 Google, Inc.
+ *
+ * Author: lesl@google.com
+ */
+#ifndef __VIRT_WIFI_H
+#define __VIRT_WIFI_H
+
+struct virt_wifi_network_simulation {
+	void (*notify_device_open)(struct net_device *dev);
+	void (*notify_device_stop)(struct net_device *dev);
+	void (*notify_scan_trigger)(struct wiphy *wiphy,
+				    struct cfg80211_scan_request *request);
+	int (*generate_virt_scan_result)(struct wiphy *wiphy);
+};
+
+int virt_wifi_register_network_simulation(
+	    struct virt_wifi_network_simulation *ops);
+int virt_wifi_unregister_network_simulation(void);
+#endif
+
diff --git a/include/net/xdp_sock_drv.h b/include/net/xdp_sock_drv.h
index ffe13a1..4e295541 100644
--- a/include/net/xdp_sock_drv.h
+++ b/include/net/xdp_sock_drv.h
@@ -13,7 +13,7 @@
 
 void xsk_tx_completed(struct xsk_buff_pool *pool, u32 nb_entries);
 bool xsk_tx_peek_desc(struct xsk_buff_pool *pool, struct xdp_desc *desc);
-u32 xsk_tx_peek_release_desc_batch(struct xsk_buff_pool *pool, u32 max);
+u32 xsk_tx_peek_release_desc_batch(struct xsk_buff_pool *pool, struct xdp_desc *desc, u32 max);
 void xsk_tx_release(struct xsk_buff_pool *pool);
 struct xsk_buff_pool *xsk_get_pool_from_qid(struct net_device *dev,
 					    u16 queue_id);
@@ -129,7 +129,8 @@
 	return false;
 }
 
-static inline u32 xsk_tx_peek_release_desc_batch(struct xsk_buff_pool *pool, u32 max)
+static inline u32 xsk_tx_peek_release_desc_batch(struct xsk_buff_pool *pool, struct xdp_desc *desc,
+						 u32 max)
 {
 	return 0;
 }
diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index 6156ed2..bcd5761 100644
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -1581,12 +1581,10 @@
 int xfrm_trans_queue(struct sk_buff *skb,
 		     int (*finish)(struct net *, struct sock *,
 				   struct sk_buff *));
-int xfrm_output_resume(struct sock *sk, struct sk_buff *skb, int err);
+int xfrm_output_resume(struct sk_buff *skb, int err);
 int xfrm_output(struct sock *sk, struct sk_buff *skb);
 
-#if IS_ENABLED(CONFIG_NET_PKTGEN)
 int pktgen_xfrm_outer_mode_output(struct xfrm_state *x, struct sk_buff *skb);
-#endif
 
 void xfrm_local_error(struct sk_buff *skb, int mtu);
 int xfrm4_extract_input(struct xfrm_state *x, struct sk_buff *skb);
diff --git a/include/net/xsk_buff_pool.h b/include/net/xsk_buff_pool.h
index ebd1f43..5a63e3b 100644
--- a/include/net/xsk_buff_pool.h
+++ b/include/net/xsk_buff_pool.h
@@ -60,7 +60,6 @@
 	 */
 	dma_addr_t *dma_pages;
 	struct xdp_buff_xsk *heads;
-	struct xdp_desc *tx_descs;
 	u64 chunk_mask;
 	u64 addrs_cnt;
 	u32 free_list_cnt;
@@ -89,7 +88,6 @@
 		  u16 queue_id, u16 flags);
 int xp_assign_dev_shared(struct xsk_buff_pool *pool, struct xdp_sock *umem_xs,
 			 struct net_device *dev, u16 queue_id);
-int xp_alloc_tx_descs(struct xsk_buff_pool *pool, struct xdp_sock *xs);
 void xp_destroy(struct xsk_buff_pool *pool);
 void xp_release(struct xdp_buff_xsk *xskb);
 void xp_get_pool(struct xsk_buff_pool *pool);
diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h
index 6852492..c891237 100644
--- a/include/scsi/scsi_cmnd.h
+++ b/include/scsi/scsi_cmnd.h
@@ -12,6 +12,7 @@
 #include <scsi/scsi_device.h>
 #include <scsi/scsi_host.h>
 #include <scsi/scsi_request.h>
+#include <linux/android_kabi.h>
 
 struct Scsi_Host;
 struct scsi_driver;
@@ -140,6 +141,11 @@
 	unsigned long state;	/* Command completion state */
 
 	unsigned int extra_len;	/* length of alignment and padding */
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 /* Variant of blk_mq_rq_from_pdu() that verifies the type of its argument. */
diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h
index 3b3dbc3..6b81c68 100644
--- a/include/scsi/scsi_device.h
+++ b/include/scsi/scsi_device.h
@@ -9,6 +9,7 @@
 #include <scsi/scsi.h>
 #include <linux/atomic.h>
 #include <linux/sbitmap.h>
+#include <linux/android_kabi.h>
 
 struct bsg_device;
 struct device;
@@ -244,6 +245,12 @@
 	struct mutex		state_mutex;
 	enum scsi_device_state sdev_state;
 	struct task_struct	*quiesced_by;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
+
 	unsigned long		sdev_data[];
 } __attribute__((aligned(sizeof(unsigned long))));
 
diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h
index 1a02e58..ccb7759 100644
--- a/include/scsi/scsi_host.h
+++ b/include/scsi/scsi_host.h
@@ -10,6 +10,7 @@
 #include <linux/seq_file.h>
 #include <linux/blk-mq.h>
 #include <scsi/scsi.h>
+#include <linux/android_kabi.h>
 
 struct block_device;
 struct completion;
@@ -502,6 +503,11 @@
 
 	/* Delay for runtime autosuspend */
 	int rpm_autosuspend_delay;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 /*
@@ -709,6 +715,8 @@
 	 */
 	struct device *dma_dev;
 
+	ANDROID_KABI_RESERVE(1);
+
 	/*
 	 * We should ensure that this is aligned, both for better performance
 	 * and also because some compilers (m68k) don't automatically force
diff --git a/include/sound/compress_driver.h b/include/sound/compress_driver.h
index d91289c6..77d027f 100644
--- a/include/sound/compress_driver.h
+++ b/include/sound/compress_driver.h
@@ -12,6 +12,7 @@
 
 #include <linux/types.h>
 #include <linux/sched.h>
+#include <linux/android_kabi.h>
 #include <sound/core.h>
 #include <sound/compress_offload.h>
 #include <sound/asound.h>
@@ -54,6 +55,8 @@
 	dma_addr_t dma_addr;
 	size_t dma_bytes;
 	struct snd_dma_buffer *dma_buffer_p;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -84,6 +87,8 @@
 	bool pause_in_draining;
 	void *private_data;
 	struct snd_dma_buffer dma_buffer;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -132,6 +137,8 @@
 			struct snd_compr_caps *caps);
 	int (*get_codec_caps) (struct snd_compr_stream *stream,
 			struct snd_compr_codec_caps *codec);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /**
@@ -162,6 +169,7 @@
 	struct snd_info_entry *proc_root;
 	struct snd_info_entry *proc_info_entry;
 #endif
+	ANDROID_KABI_RESERVE(1);
 };
 
 /* compress device register APIs */
diff --git a/include/sound/control.h b/include/sound/control.h
index a1fc7e0..985c51a 100644
--- a/include/sound/control.h
+++ b/include/sound/control.h
@@ -109,7 +109,7 @@
 	int preferred_subdevice[SND_CTL_SUBDEV_ITEMS];
 	wait_queue_head_t change_sleep;
 	spinlock_t read_lock;
-	struct snd_fasync *fasync;
+	struct fasync_struct *fasync;
 	int subscribed;			/* read interface is activated */
 	struct list_head events;	/* waiting events for read */
 };
diff --git a/include/sound/core.h b/include/sound/core.h
index 39cee40..3c196f5 100644
--- a/include/sound/core.h
+++ b/include/sound/core.h
@@ -14,6 +14,8 @@
 #include <linux/pm.h>			/* pm_message_t */
 #include <linux/stringify.h>
 #include <linux/printk.h>
+#include <linux/android_kabi.h>
+#include <linux/xarray.h>
 
 /* number of supported soundcards */
 #ifdef CONFIG_SND_DYNAMIC_MINORS
@@ -61,6 +63,8 @@
 	int (*dev_free)(struct snd_device *dev);
 	int (*dev_register)(struct snd_device *dev);
 	int (*dev_disconnect)(struct snd_device *dev);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct snd_device {
@@ -70,6 +74,8 @@
 	enum snd_device_type type;	/* device type */
 	void *device_data;		/* device structure */
 	const struct snd_device_ops *ops;	/* operations */
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 #define snd_device(n) list_entry(n, struct snd_device, list)
@@ -103,6 +109,11 @@
 	size_t user_ctl_alloc_size;	// current memory allocation by user controls.
 	struct list_head controls;	/* all controls for this card */
 	struct list_head ctl_files;	/* active control files */
+#ifdef CONFIG_SND_CTL_FAST_LOOKUP
+	struct xarray ctl_numids;	/* hash table for numids */
+	struct xarray ctl_hash;		/* hash table for ctl id matching */
+	bool ctl_hash_collision;	/* ctl_hash collision seen? */
+#endif
 
 	struct snd_info_entry *proc_root;	/* root for soundcard specific files */
 	struct proc_dir_entry *proc_root_link;	/* number link to real id */
@@ -139,6 +150,9 @@
 	struct snd_mixer_oss *mixer_oss;
 	int mixer_oss_change_count;
 #endif
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 #define dev_to_snd_card(p)	container_of(p, struct snd_card, card_dev)
@@ -214,6 +228,8 @@
 	void *private_data;		/* private data for f_ops->open */
 	struct device *dev;		/* device for sysfs */
 	struct snd_card *card_ptr;	/* assigned card instance */
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /* return a device pointer linked to each sound device as a parent */
diff --git a/include/sound/hwdep.h b/include/sound/hwdep.h
index 8d6cdb2..d99a530 100644
--- a/include/sound/hwdep.h
+++ b/include/sound/hwdep.h
@@ -9,6 +9,7 @@
 
 #include <sound/asound.h>
 #include <linux/poll.h>
+#include <linux/android_kabi.h>
 
 struct snd_hwdep;
 
@@ -34,6 +35,8 @@
 			  struct snd_hwdep_dsp_status *status);
 	int (*dsp_load)(struct snd_hwdep *hw,
 			struct snd_hwdep_dsp_image *image);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct snd_hwdep {
@@ -59,6 +62,8 @@
 	int used;			/* reference counter */
 	unsigned int dsp_loaded;	/* bit fields of loaded dsp indices */
 	unsigned int exclusive:1;	/* exclusive access mode */
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 extern int snd_hwdep_new(struct snd_card *card, char *id, int device,
diff --git a/include/sound/info.h b/include/sound/info.h
index 7c13bf5..25af5d8 100644
--- a/include/sound/info.h
+++ b/include/sound/info.h
@@ -9,6 +9,7 @@
 
 #include <linux/poll.h>
 #include <linux/seq_file.h>
+#include <linux/android_kabi.h>
 #include <sound/core.h>
 
 /* buffer for information */
@@ -55,6 +56,8 @@
 	int (*mmap)(struct snd_info_entry *entry, void *file_private_data,
 		    struct inode *inode, struct file *file,
 		    struct vm_area_struct *vma);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct snd_info_entry {
@@ -74,6 +77,8 @@
 	struct mutex access;
 	struct list_head children;
 	struct list_head list;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 #if defined(CONFIG_SND_OSSEMUL) && defined(CONFIG_SND_PROC_FS)
diff --git a/include/sound/jack.h b/include/sound/jack.h
index 1ed90e2..9e4299e 100644
--- a/include/sound/jack.h
+++ b/include/sound/jack.h
@@ -9,6 +9,7 @@
  */
 
 #include <sound/core.h>
+#include <linux/android_kabi.h>
 
 struct input_dev;
 
@@ -62,7 +63,6 @@
 	const char *id;
 #ifdef CONFIG_SND_JACK_INPUT_DEV
 	struct input_dev *input_dev;
-	struct mutex input_dev_lock;
 	int registered;
 	int type;
 	char name[100];
@@ -71,6 +71,8 @@
 	int hw_status_cache;
 	void *private_data;
 	void (*private_free)(struct snd_jack *);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 #ifdef CONFIG_SND_JACK
diff --git a/include/sound/pcm.h b/include/sound/pcm.h
index cb9be36..7e8c513 100644
--- a/include/sound/pcm.h
+++ b/include/sound/pcm.h
@@ -16,6 +16,7 @@
 #include <linux/bitops.h>
 #include <linux/pm_qos.h>
 #include <linux/refcount.h>
+#include <linux/android_kabi.h>
 
 #define snd_pcm_substream_chip(substream) ((substream)->private_data)
 #define snd_pcm_chip(pcm) ((pcm)->private_data)
@@ -77,6 +78,7 @@
 			     unsigned long offset);
 	int (*mmap)(struct snd_pcm_substream *substream, struct vm_area_struct *vma);
 	int (*ack)(struct snd_pcm_substream *substream);
+	ANDROID_KABI_RESERVE(1);
 };
 
 /*
@@ -430,6 +432,8 @@
 	/* -- OSS things -- */
 	struct snd_pcm_oss_runtime oss;
 #endif
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
 };
 
 struct snd_pcm_group {		/* keep linked substreams */
@@ -482,6 +486,8 @@
 	/* misc flags */
 	unsigned int hw_opened: 1;
 	unsigned int managed_buffer_alloc:1;
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_KABI_RESERVE(1);
 };
 
 #define SUBSTREAM_BUSY(substream) ((substream)->ref_count > 0)
@@ -506,6 +512,7 @@
 #endif
 	struct snd_kcontrol *chmap_kctl; /* channel-mapping controls */
 	struct device dev;
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct snd_pcm {
@@ -528,6 +535,7 @@
 #if IS_ENABLED(CONFIG_SND_PCM_OSS)
 	struct snd_pcm_oss oss;
 #endif
+	ANDROID_KABI_RESERVE(1);
 };
 
 /*
diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h
index ef3bb1b..0dcb361a 100644
--- a/include/sound/soc-dai.h
+++ b/include/sound/soc-dai.h
@@ -295,9 +295,9 @@
 			unsigned int *rx_num, unsigned int *rx_slot);
 	int (*set_tristate)(struct snd_soc_dai *dai, int tristate);
 
-	int (*set_stream)(struct snd_soc_dai *dai,
-			  void *stream, int direction);
-	void *(*get_stream)(struct snd_soc_dai *dai, int direction);
+	int (*set_sdw_stream)(struct snd_soc_dai *dai,
+			void *stream, int direction);
+	void *(*get_sdw_stream)(struct snd_soc_dai *dai, int direction);
 
 	/*
 	 * DAI digital mute - optional.
@@ -515,42 +515,42 @@
 }
 
 /**
- * snd_soc_dai_set_stream() - Configures a DAI for stream operation
+ * snd_soc_dai_set_sdw_stream() - Configures a DAI for SDW stream operation
  * @dai: DAI
- * @stream: STREAM (opaque structure depending on DAI type)
+ * @stream: STREAM
  * @direction: Stream direction(Playback/Capture)
- * Some subsystems, such as SoundWire, don't have a notion of direction and we reuse
+ * SoundWire subsystem doesn't have a notion of direction and we reuse
  * the ASoC stream direction to configure sink/source ports.
  * Playback maps to source ports and Capture for sink ports.
  *
  * This should be invoked with NULL to clear the stream set previously.
  * Returns 0 on success, a negative error code otherwise.
  */
-static inline int snd_soc_dai_set_stream(struct snd_soc_dai *dai,
-					 void *stream, int direction)
+static inline int snd_soc_dai_set_sdw_stream(struct snd_soc_dai *dai,
+				void *stream, int direction)
 {
-	if (dai->driver->ops->set_stream)
-		return dai->driver->ops->set_stream(dai, stream, direction);
+	if (dai->driver->ops->set_sdw_stream)
+		return dai->driver->ops->set_sdw_stream(dai, stream, direction);
 	else
 		return -ENOTSUPP;
 }
 
 /**
- * snd_soc_dai_get_stream() - Retrieves stream from DAI
+ * snd_soc_dai_get_sdw_stream() - Retrieves SDW stream from DAI
  * @dai: DAI
  * @direction: Stream direction(Playback/Capture)
  *
  * This routine only retrieves that was previously configured
- * with snd_soc_dai_get_stream()
+ * with snd_soc_dai_get_sdw_stream()
  *
  * Returns pointer to stream or an ERR_PTR value, e.g.
  * ERR_PTR(-ENOTSUPP) if callback is not supported;
  */
-static inline void *snd_soc_dai_get_stream(struct snd_soc_dai *dai,
-					   int direction)
+static inline void *snd_soc_dai_get_sdw_stream(struct snd_soc_dai *dai,
+					       int direction)
 {
-	if (dai->driver->ops->get_stream)
-		return dai->driver->ops->get_stream(dai, direction);
+	if (dai->driver->ops->get_sdw_stream)
+		return dai->driver->ops->get_sdw_stream(dai, direction);
 	else
 		return ERR_PTR(-ENOTSUPP);
 }
diff --git a/include/sound/soc-dpcm.h b/include/sound/soc-dpcm.h
index 4bb3ebf..f46d148 100644
--- a/include/sound/soc-dpcm.h
+++ b/include/sound/soc-dpcm.h
@@ -101,8 +101,6 @@
 	enum snd_soc_dpcm_state state;
 
 	int trigger_pending; /* trigger cmd + 1 if pending, 0 if not */
-
-	int be_start; /* refcount protected by BE stream pcm lock */
 };
 
 #define for_each_dpcm_fe(be, stream, _dpcm)				\
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 5872a88..a40fcad 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -19,6 +19,7 @@
 #include <linux/kernel.h>
 #include <linux/regmap.h>
 #include <linux/log2.h>
+#include <linux/android_kabi.h>
 #include <sound/core.h>
 #include <sound/pcm.h>
 #include <sound/compress_driver.h>
@@ -239,6 +240,14 @@
 	.get = xhandler_get, .put = xhandler_put, \
 	.private_value = SOC_DOUBLE_R_VALUE(reg_left, reg_right, xshift, \
 					    xmax, xinvert) }
+#define SOC_SINGLE_MULTI_EXT(xname, xreg, xshift, xmax, xinvert, xcount,\
+	xhandler_get, xhandler_put) \
+{	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
+	.info = snd_soc_info_multi_ext, \
+	.get = xhandler_get, .put = xhandler_put, \
+	.private_value = (unsigned long)&(struct soc_multi_mixer_control) \
+		{.reg = xreg, .shift = xshift, .rshift = xshift, .max = xmax, \
+		.count = xcount, .platform_max = xmax, .invert = xinvert} }
 #define SOC_SINGLE_EXT_TLV(xname, xreg, xshift, xmax, xinvert,\
 	 xhandler_get, xhandler_put, tlv_array) \
 {	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
@@ -575,6 +584,8 @@
 	struct snd_ctl_elem_value *ucontrol);
 int snd_soc_put_strobe(struct snd_kcontrol *kcontrol,
 	struct snd_ctl_elem_value *ucontrol);
+int snd_soc_info_multi_ext(struct snd_kcontrol *kcontrol,
+	struct snd_ctl_elem_info *uinfo);
 
 /* SoC PCM stream information */
 struct snd_soc_pcm_stream {
@@ -586,6 +597,7 @@
 	unsigned int channels_min;	/* min channels */
 	unsigned int channels_max;	/* max channels */
 	unsigned int sig_bits;		/* number of bits of content */
+	ANDROID_VENDOR_DATA(1);
 };
 
 /* SoC audio ops */
@@ -721,6 +733,8 @@
 #ifdef CONFIG_SND_SOC_TOPOLOGY
 	struct snd_soc_dobj dobj; /* For topology */
 #endif
+	ANDROID_VENDOR_DATA(1);
+	ANDROID_KABI_RESERVE(1);
 };
 
 static inline struct snd_soc_dai_link_component*
@@ -893,6 +907,12 @@
 	struct mutex pcm_mutex;
 	enum snd_soc_pcm_subclass pcm_subclass;
 
+#ifdef __GENKSYMS__
+	spinlock_t dpcm_lock;
+#else
+	spinlock_t unused;
+#endif
+
 	int (*probe)(struct snd_soc_card *card);
 	int (*late_probe)(struct snd_soc_card *card);
 	int (*remove)(struct snd_soc_card *card);
@@ -988,6 +1008,11 @@
 	unsigned int component_chaining:1;
 
 	void *drvdata;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 #define for_each_card_prelinks(card, i, link)				\
 	for ((i) = 0;							\
@@ -1072,6 +1097,19 @@
 	unsigned int fe_compr:1; /* for Dynamic PCM */
 
 	int num_components;
+
+	/* Android KABI preservation.
+	 *
+	 * dpcm_be_start[2] is the backport version of be_start from
+	 * 848aedfdc6ba ("ASoC: soc-pcm: test refcount before triggering")
+	 * which is originally in struct snd_soc_dpcm_runtime. Since we don't
+	 * have ABI reserve fields there, we are adding this refcount variable
+	 * here as an array for each BE stream.
+	 *
+	 * refcount protected by BE stream pcm lock
+	 */
+	ANDROID_KABI_USE(1, u32 dpcm_be_start[2]);
+
 	struct snd_soc_component *components[]; /* CPU/Codec/Platform */
 };
 /* see soc_new_pcm_runtime()  */
@@ -1111,6 +1149,8 @@
 #ifdef CONFIG_SND_SOC_TOPOLOGY
 	struct snd_soc_dobj dobj;
 #endif
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct soc_bytes {
@@ -1137,6 +1177,11 @@
 	unsigned int regbase, regcount, nbits, invert;
 };
 
+struct soc_multi_mixer_control {
+	int min, max, platform_max, count;
+	unsigned int reg, rreg, shift, rshift, invert;
+};
+
 /* enumerated kcontrol */
 struct soc_enum {
 	int reg;
@@ -1150,6 +1195,8 @@
 #ifdef CONFIG_SND_SOC_TOPOLOGY
 	struct snd_soc_dobj dobj;
 #endif
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 static inline bool snd_soc_volsw_is_stereo(struct soc_mixer_control *mc)
diff --git a/include/sound/timer.h b/include/sound/timer.h
index 760e132..b7695e4 100644
--- a/include/sound/timer.h
+++ b/include/sound/timer.h
@@ -10,6 +10,7 @@
 
 #include <sound/asound.h>
 #include <linux/interrupt.h>
+#include <linux/android_kabi.h>
 
 #define snd_timer_chip(timer) ((timer)->private_data)
 
@@ -52,6 +53,8 @@
 	int (*stop) (struct snd_timer * timer);
 	int (*set_period) (struct snd_timer * timer, unsigned long period_num, unsigned long period_den);
 	int (*precise_resolution) (struct snd_timer * timer, unsigned long *num, unsigned long *den);
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct snd_timer {
@@ -77,6 +80,8 @@
 	struct work_struct task_work;
 	int max_instances;	/* upper limit of timer instances */
 	int num_instances;	/* current number of timer instances */
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct snd_timer_instance {
@@ -106,6 +111,8 @@
 	struct list_head slave_list_head;
 	struct list_head slave_active_head;
 	struct snd_timer_instance *master;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 /*
diff --git a/include/trace/events/android_fs.h b/include/trace/events/android_fs.h
new file mode 100644
index 0000000..7edb6bc
--- /dev/null
+++ b/include/trace/events/android_fs.h
@@ -0,0 +1,66 @@
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM android_fs
+
+#if !defined(_TRACE_ANDROID_FS_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_ANDROID_FS_H
+
+#include <linux/fs.h>
+#include <linux/tracepoint.h>
+#include <trace/events/android_fs_template.h>
+
+DEFINE_EVENT(android_fs_data_start_template, android_fs_dataread_start,
+	TP_PROTO(struct inode *inode, loff_t offset, int bytes,
+		 pid_t pid, char *pathname, char *command),
+	TP_ARGS(inode, offset, bytes, pid, pathname, command));
+
+DEFINE_EVENT(android_fs_data_end_template, android_fs_dataread_end,
+	TP_PROTO(struct inode *inode, loff_t offset, int bytes),
+	TP_ARGS(inode, offset, bytes));
+
+DEFINE_EVENT(android_fs_data_start_template, android_fs_datawrite_start,
+	TP_PROTO(struct inode *inode, loff_t offset, int bytes,
+		 pid_t pid, char *pathname, char *command),
+	TP_ARGS(inode, offset, bytes, pid, pathname, command));
+
+DEFINE_EVENT(android_fs_data_end_template, android_fs_datawrite_end,
+	TP_PROTO(struct inode *inode, loff_t offset, int bytes),
+	     TP_ARGS(inode, offset, bytes));
+
+#endif /* _TRACE_ANDROID_FS_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
+
+#ifndef ANDROID_FSTRACE_GET_PATHNAME
+#define ANDROID_FSTRACE_GET_PATHNAME
+
+/* Sizes an on-stack array, so careful if sizing this up ! */
+#define MAX_TRACE_PATHBUF_LEN	256
+
+static inline char *
+android_fstrace_get_pathname(char *buf, int buflen, struct inode *inode)
+{
+	char *path;
+	struct dentry *d;
+
+	/*
+	 * d_obtain_alias() will either iput() if it locates an existing
+	 * dentry or transfer the reference to the new dentry created.
+	 * So get an extra reference here.
+	 */
+	ihold(inode);
+	d = d_obtain_alias(inode);
+	if (likely(!IS_ERR(d))) {
+		path = dentry_path_raw(d, buf, buflen);
+		if (unlikely(IS_ERR(path))) {
+			strcpy(buf, "ERROR");
+			path = buf;
+		}
+		dput(d);
+	} else {
+		strcpy(buf, "ERROR");
+		path = buf;
+	}
+	return path;
+}
+#endif
diff --git a/include/trace/events/android_fs_template.h b/include/trace/events/android_fs_template.h
new file mode 100644
index 0000000..efc4878
--- /dev/null
+++ b/include/trace/events/android_fs_template.h
@@ -0,0 +1,64 @@
+#if !defined(_TRACE_ANDROID_FS_TEMPLATE_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_ANDROID_FS_TEMPLATE_H
+
+#include <linux/tracepoint.h>
+
+DECLARE_EVENT_CLASS(android_fs_data_start_template,
+	TP_PROTO(struct inode *inode, loff_t offset, int bytes,
+		 pid_t pid, char *pathname, char *command),
+	TP_ARGS(inode, offset, bytes, pid, pathname, command),
+	TP_STRUCT__entry(
+		__string(pathbuf, pathname)
+		__field(loff_t,	offset)
+		__field(int,	bytes)
+		__field(loff_t,	i_size)
+		__string(cmdline, command)
+		__field(pid_t,	pid)
+		__field(ino_t,	ino)
+	),
+	TP_fast_assign(
+		{
+			/*
+			 * Replace the spaces in filenames and cmdlines
+			 * because this screws up the tooling that parses
+			 * the traces.
+			 */
+			__assign_str(pathbuf, pathname);
+			(void)strreplace(__get_str(pathbuf), ' ', '_');
+			__entry->offset		= offset;
+			__entry->bytes		= bytes;
+			__entry->i_size		= i_size_read(inode);
+			__assign_str(cmdline, command);
+			(void)strreplace(__get_str(cmdline), ' ', '_');
+			__entry->pid		= pid;
+			__entry->ino		= inode->i_ino;
+		}
+	),
+	TP_printk("entry_name %s, offset %llu, bytes %d, cmdline %s,"
+		  " pid %d, i_size %llu, ino %lu",
+		  __get_str(pathbuf), __entry->offset, __entry->bytes,
+		  __get_str(cmdline), __entry->pid, __entry->i_size,
+		  (unsigned long) __entry->ino)
+);
+
+DECLARE_EVENT_CLASS(android_fs_data_end_template,
+	TP_PROTO(struct inode *inode, loff_t offset, int bytes),
+	TP_ARGS(inode, offset, bytes),
+	TP_STRUCT__entry(
+		__field(ino_t,	ino)
+		__field(loff_t,	offset)
+		__field(int,	bytes)
+	),
+	TP_fast_assign(
+		{
+			__entry->ino		= inode->i_ino;
+			__entry->offset		= offset;
+			__entry->bytes		= bytes;
+		}
+	),
+	TP_printk("ino %lu, offset %llu, bytes %d",
+		  (unsigned long) __entry->ino,
+		  __entry->offset, __entry->bytes)
+);
+
+#endif /* _TRACE_ANDROID_FS_TEMPLATE_H */
diff --git a/include/trace/events/damon.h b/include/trace/events/damon.h
index 2f422f4..c79f1d4 100644
--- a/include/trace/events/damon.h
+++ b/include/trace/events/damon.h
@@ -11,10 +11,10 @@
 
 TRACE_EVENT(damon_aggregated,
 
-	TP_PROTO(struct damon_target *t, struct damon_region *r,
-		unsigned int nr_regions),
+	TP_PROTO(struct damon_target *t, unsigned int target_id,
+		struct damon_region *r, unsigned int nr_regions),
 
-	TP_ARGS(t, r, nr_regions),
+	TP_ARGS(t, target_id, r, nr_regions),
 
 	TP_STRUCT__entry(
 		__field(unsigned long, target_id)
@@ -22,19 +22,22 @@
 		__field(unsigned long, start)
 		__field(unsigned long, end)
 		__field(unsigned int, nr_accesses)
+		__field(unsigned int, age)
 	),
 
 	TP_fast_assign(
-		__entry->target_id = t->id;
+		__entry->target_id = target_id;
 		__entry->nr_regions = nr_regions;
 		__entry->start = r->ar.start;
 		__entry->end = r->ar.end;
 		__entry->nr_accesses = r->nr_accesses;
+		__entry->age = r->age;
 	),
 
-	TP_printk("target_id=%lu nr_regions=%u %lu-%lu: %u",
+	TP_printk("target_id=%lu nr_regions=%u %lu-%lu: %u %u",
 			__entry->target_id, __entry->nr_regions,
-			__entry->start, __entry->end, __entry->nr_accesses)
+			__entry->start, __entry->end,
+			__entry->nr_accesses, __entry->age)
 );
 
 #endif /* _TRACE_DAMON_H */
diff --git a/include/trace/events/erofs.h b/include/trace/events/erofs.h
index db4f2ce..16ae7b6 100644
--- a/include/trace/events/erofs.h
+++ b/include/trace/events/erofs.h
@@ -24,7 +24,7 @@
 #define show_mflags(flags) __print_flags(flags, "",	\
 	{ EROFS_MAP_MAPPED,	"M" },			\
 	{ EROFS_MAP_META,	"I" },			\
-	{ EROFS_MAP_ZIPPED,	"Z" })
+	{ EROFS_MAP_ENCODED,	"E" })
 
 TRACE_EVENT(erofs_lookup,
 
diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h
index f5dcf7c..e6ec99ed6 100644
--- a/include/trace/events/f2fs.h
+++ b/include/trace/events/f2fs.h
@@ -330,7 +330,7 @@
 		__field(ino_t,	ino)
 		__field(loff_t,	size)
 		__field(blkcnt_t, blocks)
-		__field(const char *,	name)
+		__string(name,  dentry->d_name.name)
 	),
 
 	TP_fast_assign(
@@ -338,7 +338,7 @@
 		__entry->ino	= dir->i_ino;
 		__entry->size	= dir->i_size;
 		__entry->blocks	= dir->i_blocks;
-		__entry->name	= dentry->d_name.name;
+		__assign_str(name, dentry->d_name.name);
 	),
 
 	TP_printk("dev = (%d,%d), dir ino = %lu, i_size = %lld, "
@@ -346,7 +346,7 @@
 		show_dev_ino(__entry),
 		__entry->size,
 		(unsigned long long)__entry->blocks,
-		__entry->name)
+		__get_str(name))
 );
 
 DEFINE_EVENT(f2fs__inode_exit, f2fs_unlink_exit,
@@ -540,17 +540,17 @@
 
 TRACE_EVENT(f2fs_file_write_iter,
 
-	TP_PROTO(struct inode *inode, unsigned long offset,
-		unsigned long length, int ret),
+	TP_PROTO(struct inode *inode, loff_t offset, size_t length,
+		 ssize_t ret),
 
 	TP_ARGS(inode, offset, length, ret),
 
 	TP_STRUCT__entry(
 		__field(dev_t,	dev)
 		__field(ino_t,	ino)
-		__field(unsigned long, offset)
-		__field(unsigned long, length)
-		__field(int,	ret)
+		__field(loff_t, offset)
+		__field(size_t, length)
+		__field(ssize_t, ret)
 	),
 
 	TP_fast_assign(
@@ -562,7 +562,7 @@
 	),
 
 	TP_printk("dev = (%d,%d), ino = %lu, "
-		"offset = %lu, length = %lu, written(err) = %d",
+		"offset = %lld, length = %zu, written(err) = %zd",
 		show_dev_ino(__entry),
 		__entry->offset,
 		__entry->length,
@@ -570,9 +570,10 @@
 );
 
 TRACE_EVENT(f2fs_map_blocks,
-	TP_PROTO(struct inode *inode, struct f2fs_map_blocks *map, int ret),
+	TP_PROTO(struct inode *inode, struct f2fs_map_blocks *map,
+				int create, int flag, int ret),
 
-	TP_ARGS(inode, map, ret),
+	TP_ARGS(inode, map, create, flag, ret),
 
 	TP_STRUCT__entry(
 		__field(dev_t,	dev)
@@ -583,11 +584,14 @@
 		__field(unsigned int,	m_flags)
 		__field(int,	m_seg_type)
 		__field(bool,	m_may_create)
+		__field(bool,	m_multidev_dio)
+		__field(int,	create)
+		__field(int,	flag)
 		__field(int,	ret)
 	),
 
 	TP_fast_assign(
-		__entry->dev		= inode->i_sb->s_dev;
+		__entry->dev		= map->m_bdev->bd_dev;
 		__entry->ino		= inode->i_ino;
 		__entry->m_lblk		= map->m_lblk;
 		__entry->m_pblk		= map->m_pblk;
@@ -595,12 +599,16 @@
 		__entry->m_flags	= map->m_flags;
 		__entry->m_seg_type	= map->m_seg_type;
 		__entry->m_may_create	= map->m_may_create;
+		__entry->m_multidev_dio	= map->m_multidev_dio;
+		__entry->create		= create;
+		__entry->flag		= flag;
 		__entry->ret		= ret;
 	),
 
 	TP_printk("dev = (%d,%d), ino = %lu, file offset = %llu, "
-		"start blkaddr = 0x%llx, len = 0x%llx, flags = %u,"
-		"seg_type = %d, may_create = %d, err = %d",
+		"start blkaddr = 0x%llx, len = 0x%llx, flags = %u, "
+		"seg_type = %d, may_create = %d, multidevice = %d, "
+		"create = %d, flag = %d, err = %d",
 		show_dev_ino(__entry),
 		(unsigned long long)__entry->m_lblk,
 		(unsigned long long)__entry->m_pblk,
@@ -608,6 +616,9 @@
 		__entry->m_flags,
 		__entry->m_seg_type,
 		__entry->m_may_create,
+		__entry->m_multidev_dio,
+		__entry->create,
+		__entry->flag,
 		__entry->ret)
 );
 
@@ -925,30 +936,39 @@
 
 TRACE_EVENT(f2fs_direct_IO_enter,
 
-	TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw),
+	TP_PROTO(struct inode *inode, struct kiocb *iocb, long len, int rw),
 
-	TP_ARGS(inode, offset, len, rw),
+	TP_ARGS(inode, iocb, len, rw),
 
 	TP_STRUCT__entry(
 		__field(dev_t,	dev)
 		__field(ino_t,	ino)
-		__field(loff_t,	pos)
+		__field(loff_t,	ki_pos)
+		__field(int,	ki_flags)
+		__field(u16,	ki_hint)
+		__field(u16,	ki_ioprio)
 		__field(unsigned long,	len)
 		__field(int,	rw)
 	),
 
 	TP_fast_assign(
-		__entry->dev	= inode->i_sb->s_dev;
-		__entry->ino	= inode->i_ino;
-		__entry->pos	= offset;
-		__entry->len	= len;
-		__entry->rw	= rw;
+		__entry->dev		= inode->i_sb->s_dev;
+		__entry->ino		= inode->i_ino;
+		__entry->ki_pos		= iocb->ki_pos;
+		__entry->ki_flags	= iocb->ki_flags;
+		__entry->ki_hint	= iocb->ki_hint;
+		__entry->ki_ioprio	= iocb->ki_ioprio;
+		__entry->len		= len;
+		__entry->rw		= rw;
 	),
 
-	TP_printk("dev = (%d,%d), ino = %lu pos = %lld len = %lu rw = %d",
+	TP_printk("dev = (%d,%d), ino = %lu pos = %lld len = %lu ki_flags = %x ki_hint = %x ki_ioprio = %x rw = %d",
 		show_dev_ino(__entry),
-		__entry->pos,
+		__entry->ki_pos,
 		__entry->len,
+		__entry->ki_flags,
+		__entry->ki_hint,
+		__entry->ki_ioprio,
 		__entry->rw)
 );
 
@@ -1408,26 +1428,26 @@
 
 TRACE_EVENT(f2fs_write_checkpoint,
 
-	TP_PROTO(struct super_block *sb, int reason, char *msg),
+	TP_PROTO(struct super_block *sb, int reason, const char *msg),
 
 	TP_ARGS(sb, reason, msg),
 
 	TP_STRUCT__entry(
 		__field(dev_t,	dev)
 		__field(int,	reason)
-		__field(char *,	msg)
+		__string(dest_msg, msg)
 	),
 
 	TP_fast_assign(
 		__entry->dev		= sb->s_dev;
 		__entry->reason		= reason;
-		__entry->msg		= msg;
+		__assign_str(dest_msg, msg);
 	),
 
 	TP_printk("dev = (%d,%d), checkpoint for %s, state = %s",
 		show_dev(__entry->dev),
 		show_cpreason(__entry->reason),
-		__entry->msg)
+		__get_str(dest_msg))
 );
 
 DECLARE_EVENT_CLASS(f2fs_discard,
@@ -2054,6 +2074,100 @@
 		__entry->ret)
 );
 
+DECLARE_EVENT_CLASS(f2fs__rw_start,
+
+	TP_PROTO(struct inode *inode, loff_t offset, int bytes,
+			pid_t pid, char *pathname, char *command),
+
+	TP_ARGS(inode, offset, bytes, pid, pathname, command),
+
+	TP_STRUCT__entry(
+		__string(pathbuf, pathname)
+		__field(loff_t, offset)
+		__field(int, bytes)
+		__field(loff_t, i_size)
+		__string(cmdline, command)
+		__field(pid_t, pid)
+		__field(ino_t, ino)
+	),
+
+	TP_fast_assign(
+		/*
+		 * Replace the spaces in filenames and cmdlines
+		 * because this screws up the tooling that parses
+		 * the traces.
+		 */
+		__assign_str(pathbuf, pathname);
+		(void)strreplace(__get_str(pathbuf), ' ', '_');
+		__entry->offset = offset;
+		__entry->bytes = bytes;
+		__entry->i_size = i_size_read(inode);
+		__assign_str(cmdline, command);
+		(void)strreplace(__get_str(cmdline), ' ', '_');
+		__entry->pid = pid;
+		__entry->ino = inode->i_ino;
+	),
+
+	TP_printk("entry_name %s, offset %llu, bytes %d, cmdline %s,"
+		" pid %d, i_size %llu, ino %lu",
+		__get_str(pathbuf), __entry->offset, __entry->bytes,
+		__get_str(cmdline), __entry->pid, __entry->i_size,
+		(unsigned long) __entry->ino)
+);
+
+DECLARE_EVENT_CLASS(f2fs__rw_end,
+
+	TP_PROTO(struct inode *inode, loff_t offset, int bytes),
+
+	TP_ARGS(inode, offset, bytes),
+
+	TP_STRUCT__entry(
+		__field(ino_t,	ino)
+		__field(loff_t,	offset)
+		__field(int,	bytes)
+	),
+
+	TP_fast_assign(
+		__entry->ino		= inode->i_ino;
+		__entry->offset		= offset;
+		__entry->bytes		= bytes;
+	),
+
+	TP_printk("ino %lu, offset %llu, bytes %d",
+		(unsigned long) __entry->ino,
+		__entry->offset, __entry->bytes)
+);
+
+DEFINE_EVENT(f2fs__rw_start, f2fs_dataread_start,
+
+	TP_PROTO(struct inode *inode, loff_t offset, int bytes,
+		pid_t pid, char *pathname, char *command),
+
+	TP_ARGS(inode, offset, bytes, pid, pathname, command)
+);
+
+DEFINE_EVENT(f2fs__rw_end, f2fs_dataread_end,
+
+	TP_PROTO(struct inode *inode, loff_t offset, int bytes),
+
+	TP_ARGS(inode, offset, bytes)
+);
+
+DEFINE_EVENT(f2fs__rw_start, f2fs_datawrite_start,
+
+	TP_PROTO(struct inode *inode, loff_t offset, int bytes,
+		pid_t pid, char *pathname, char *command),
+
+	TP_ARGS(inode, offset, bytes, pid, pathname, command)
+);
+
+DEFINE_EVENT(f2fs__rw_end, f2fs_datawrite_end,
+
+	TP_PROTO(struct inode *inode, loff_t offset, int bytes),
+
+	TP_ARGS(inode, offset, bytes)
+);
+
 #endif /* _TRACE_F2FS_H */
 
  /* This part must be outside protection */
diff --git a/include/trace/events/irq.h b/include/trace/events/irq.h
index eeceafa..bb70f46 100644
--- a/include/trace/events/irq.h
+++ b/include/trace/events/irq.h
@@ -160,6 +160,51 @@
 	TP_ARGS(vec_nr)
 );
 
+DECLARE_EVENT_CLASS(tasklet,
+
+	TP_PROTO(void *func),
+
+	TP_ARGS(func),
+
+	TP_STRUCT__entry(
+		__field( void *,	func)
+	),
+
+	TP_fast_assign(
+		__entry->func = func;
+	),
+
+	TP_printk("function=%ps", __entry->func)
+);
+
+DEFINE_EVENT(tasklet, tasklet_entry,
+
+	TP_PROTO(void *func),
+
+	TP_ARGS(func)
+);
+
+DEFINE_EVENT(tasklet, tasklet_exit,
+
+	TP_PROTO(void *func),
+
+	TP_ARGS(func)
+);
+
+DEFINE_EVENT(tasklet, tasklet_hi_entry,
+
+	TP_PROTO(void *func),
+
+	TP_ARGS(func)
+);
+
+DEFINE_EVENT(tasklet, tasklet_hi_exit,
+
+	TP_PROTO(void *func),
+
+	TP_ARGS(func)
+);
+
 #endif /*  _TRACE_IRQ_H */
 
 /* This part must be outside protection */
diff --git a/include/trace/events/mmflags.h b/include/trace/events/mmflags.h
index 116ed4d5..9bd906d 100644
--- a/include/trace/events/mmflags.h
+++ b/include/trace/events/mmflags.h
@@ -49,12 +49,20 @@
 	{(unsigned long)__GFP_RECLAIM,		"__GFP_RECLAIM"},	\
 	{(unsigned long)__GFP_DIRECT_RECLAIM,	"__GFP_DIRECT_RECLAIM"},\
 	{(unsigned long)__GFP_KSWAPD_RECLAIM,	"__GFP_KSWAPD_RECLAIM"},\
-	{(unsigned long)__GFP_ZEROTAGS,		"__GFP_ZEROTAGS"},	\
-	{(unsigned long)__GFP_SKIP_KASAN_POISON,"__GFP_SKIP_KASAN_POISON"}\
+	{(unsigned long)__GFP_ZEROTAGS,		"__GFP_ZEROTAGS"}	\
+
+#ifdef CONFIG_KASAN_HW_TAGS
+#define __def_gfpflag_names_kasan ,					       \
+	{(unsigned long)__GFP_SKIP_ZERO,	   "__GFP_SKIP_ZERO"},	       \
+	{(unsigned long)__GFP_SKIP_KASAN_POISON,   "__GFP_SKIP_KASAN_POISON"}, \
+	{(unsigned long)__GFP_SKIP_KASAN_UNPOISON, "__GFP_SKIP_KASAN_UNPOISON"}
+#else
+#define __def_gfpflag_names_kasan
+#endif
 
 #define show_gfp_flags(flags)						\
 	(flags) ? __print_flags(flags, "|",				\
-	__def_gfpflag_names						\
+	__def_gfpflag_names __def_gfpflag_names_kasan			\
 	) : "none"
 
 #ifdef CONFIG_MMU
@@ -83,8 +91,10 @@
 
 #ifdef CONFIG_64BIT
 #define IF_HAVE_PG_ARCH_2(flag,string) ,{1UL << flag, string}
+#define IF_HAVE_PG_OEM_RESERVED(flag,string) ,{1UL << flag, string}
 #else
 #define IF_HAVE_PG_ARCH_2(flag,string)
+#define IF_HAVE_PG_OEM_RESERVED(flag,string)
 #endif
 
 #ifdef CONFIG_KASAN_HW_TAGS
@@ -121,6 +131,7 @@
 IF_HAVE_PG_IDLE(PG_young,		"young"		)		\
 IF_HAVE_PG_IDLE(PG_idle,		"idle"		)		\
 IF_HAVE_PG_ARCH_2(PG_arch_2,		"arch_2"	)		\
+IF_HAVE_PG_OEM_RESERVED(PG_oem_reserved,"oem_reserved"	)		\
 IF_HAVE_PG_SKIP_KASAN_POISON(PG_skip_kasan_poison, "skip_kasan_poison")
 
 #define show_page_flags(flags)						\
diff --git a/include/trace/events/net.h b/include/trace/events/net.h
index 78c448c..2399073 100644
--- a/include/trace/events/net.h
+++ b/include/trace/events/net.h
@@ -136,7 +136,7 @@
 		__assign_str(name, skb->dev->name);
 	),
 
-	TP_printk("dev=%s skbaddr=%px len=%u",
+	TP_printk("dev=%s skbaddr=%p len=%u",
 		__get_str(name), __entry->skbaddr, __entry->len)
 )
 
diff --git a/include/trace/events/qdisc.h b/include/trace/events/qdisc.h
index 59c945b..a399592 100644
--- a/include/trace/events/qdisc.h
+++ b/include/trace/events/qdisc.h
@@ -41,7 +41,7 @@
 		__entry->txq_state	= txq->state;
 	),
 
-	TP_printk("dequeue ifindex=%d qdisc handle=0x%X parent=0x%X txq_state=0x%lX packets=%d skbaddr=%px",
+	TP_printk("dequeue ifindex=%d qdisc handle=0x%X parent=0x%X txq_state=0x%lX packets=%d skbaddr=%p",
 		  __entry->ifindex, __entry->handle, __entry->parent,
 		  __entry->txq_state, __entry->packets, __entry->skbaddr )
 );
@@ -70,7 +70,7 @@
 		__entry->parent	 = qdisc->parent;
 	),
 
-	TP_printk("enqueue ifindex=%d qdisc handle=0x%X parent=0x%X skbaddr=%px",
+	TP_printk("enqueue ifindex=%d qdisc handle=0x%X parent=0x%X skbaddr=%p",
 		  __entry->ifindex, __entry->handle, __entry->parent, __entry->skbaddr)
 );
 
diff --git a/include/trace/events/rwmmio.h b/include/trace/events/rwmmio.h
new file mode 100644
index 0000000..f663970
--- /dev/null
+++ b/include/trace/events/rwmmio.h
@@ -0,0 +1,112 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM rwmmio
+
+#if !defined(_TRACE_RWMMIO_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_RWMMIO_H
+
+#include <linux/tracepoint.h>
+
+TRACE_EVENT(rwmmio_write,
+
+	TP_PROTO(unsigned long caller, u64 val, u8 width, volatile void __iomem *addr),
+
+	TP_ARGS(caller, val, width, addr),
+
+	TP_STRUCT__entry(
+		__field(u64, caller)
+		__field(u64, val)
+		__field(u64, addr)
+		__field(u8, width)
+	),
+
+	TP_fast_assign(
+		__entry->caller = caller;
+		__entry->val = val;
+		__entry->addr = (unsigned long)(void *)addr;
+		__entry->width = width;
+	),
+
+	TP_printk("%pS width=%d val=%#llx addr=%#llx",
+		(void *)(unsigned long)__entry->caller, __entry->width,
+		__entry->val, __entry->addr)
+);
+
+TRACE_EVENT(rwmmio_post_write,
+
+	TP_PROTO(unsigned long caller, u64 val, u8 width, volatile void __iomem *addr),
+
+	TP_ARGS(caller, val, width, addr),
+
+	TP_STRUCT__entry(
+		__field(u64, caller)
+		__field(u64, val)
+		__field(u64, addr)
+		__field(u8, width)
+	),
+
+	TP_fast_assign(
+		__entry->caller = caller;
+		__entry->val = val;
+		__entry->addr = (unsigned long)(void *)addr;
+		__entry->width = width;
+	),
+
+	TP_printk("%pS width=%d val=%#llx addr=%#llx",
+		(void *)(unsigned long)__entry->caller, __entry->width,
+		__entry->val, __entry->addr)
+);
+
+TRACE_EVENT(rwmmio_read,
+
+	TP_PROTO(unsigned long caller, u8 width, const volatile void __iomem *addr),
+
+	TP_ARGS(caller, width, addr),
+
+	TP_STRUCT__entry(
+		__field(u64, caller)
+		__field(u64, addr)
+		__field(u8, width)
+	),
+
+	TP_fast_assign(
+		__entry->caller = caller;
+		__entry->addr = (unsigned long)(void *)addr;
+		__entry->width = width;
+	),
+
+	TP_printk("%pS width=%d addr=%#llx",
+		 (void *)(unsigned long)__entry->caller, __entry->width, __entry->addr)
+);
+
+TRACE_EVENT(rwmmio_post_read,
+
+	TP_PROTO(unsigned long caller, u64 val, u8 width, const volatile void __iomem *addr),
+
+	TP_ARGS(caller, val, width, addr),
+
+	TP_STRUCT__entry(
+		__field(u64, caller)
+		__field(u64, val)
+		__field(u64, addr)
+		__field(u8, width)
+	),
+
+	TP_fast_assign(
+		__entry->caller = caller;
+		__entry->val = val;
+		__entry->addr = (unsigned long)(void *)addr;
+		__entry->width = width;
+	),
+
+	TP_printk("%pS width=%d val=%#llx addr=%#llx",
+		 (void *)(unsigned long)__entry->caller, __entry->width,
+		 __entry->val, __entry->addr)
+);
+
+#endif /* _TRACE_RWMMIO_H */
+
+#include <trace/define_trace.h>
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h
index 9464048..a059a62 100644
--- a/include/trace/events/sched.h
+++ b/include/trace/events/sched.h
@@ -485,6 +485,30 @@
 	     TP_ARGS(tsk, delay));
 
 /*
+ * Tracepoint for recording the cause of uninterruptible sleep.
+ */
+TRACE_EVENT(sched_blocked_reason,
+
+	TP_PROTO(struct task_struct *tsk),
+
+	TP_ARGS(tsk),
+
+	TP_STRUCT__entry(
+		__field( pid_t,	pid	)
+		__field( void*, caller	)
+		__field( bool, io_wait	)
+	),
+
+	TP_fast_assign(
+		__entry->pid	= tsk->pid;
+		__entry->caller = (void *)get_wchan(tsk);
+		__entry->io_wait = tsk->in_iowait;
+	),
+
+	TP_printk("pid=%d iowait=%d caller=%pS", __entry->pid, __entry->io_wait, __entry->caller)
+);
+
+/*
  * Tracepoint for accounting runtime (time the task is executing
  * on a CPU).
  */
diff --git a/include/trace/hooks/audio_usboffload.h b/include/trace/hooks/audio_usboffload.h
new file mode 100644
index 0000000..763abf7
--- /dev/null
+++ b/include/trace/hooks/audio_usboffload.h
@@ -0,0 +1,48 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM audio_usboffload
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_AUDIO_USBOFFLOAD_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_AUDIO_USBOFFLOAD_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <../sound/usb/usbaudio.h>
+#include <linux/usb.h>
+#include <sound/pcm.h>
+#endif
+
+struct snd_usb_audio;
+struct usb_interface;
+struct snd_pcm_substream;
+
+DECLARE_HOOK(android_vh_audio_usb_offload_vendor_set,
+	TP_PROTO(void *arg),
+	TP_ARGS(arg));
+
+DECLARE_HOOK(android_vh_audio_usb_offload_ep_action,
+	TP_PROTO(void *arg, bool action),
+	TP_ARGS(arg, action));
+
+DECLARE_HOOK(android_vh_audio_usb_offload_synctype,
+	TP_PROTO(void *arg, int attr, bool *need_ignore),
+	TP_ARGS(arg, attr, need_ignore));
+
+DECLARE_HOOK(android_vh_audio_usb_offload_connect,
+	TP_PROTO(struct usb_interface *intf, struct snd_usb_audio *chip),
+	TP_ARGS(intf, chip));
+
+DECLARE_RESTRICTED_HOOK(android_rvh_audio_usb_offload_disconnect,
+	TP_PROTO(struct usb_interface *intf),
+	TP_ARGS(intf), 1);
+
+DECLARE_HOOK(android_vh_audio_usb_offload_suspend,
+	TP_PROTO(struct snd_pcm_substream *substream, int cmd, bool *suspend),
+	TP_ARGS(substream, cmd, suspend));
+
+#endif /* _TRACE_HOOK_AUDIO_USBOFFLOAD_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/avc.h b/include/trace/hooks/avc.h
new file mode 100644
index 0000000..5100dde
--- /dev/null
+++ b/include/trace/hooks/avc.h
@@ -0,0 +1,32 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM avc
+
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_AVC_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_AVC_H
+#include <trace/hooks/vendor_hooks.h>
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+struct avc_node;
+DECLARE_RESTRICTED_HOOK(android_rvh_selinux_avc_insert,
+	TP_PROTO(const struct avc_node *node),
+	TP_ARGS(node), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_selinux_avc_node_delete,
+	TP_PROTO(const struct avc_node *node),
+	TP_ARGS(node), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_selinux_avc_node_replace,
+	TP_PROTO(const struct avc_node *old, const struct avc_node *new),
+	TP_ARGS(old, new), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_selinux_avc_lookup,
+	TP_PROTO(const struct avc_node *node, u32 ssid, u32 tsid, u16 tclass),
+	TP_ARGS(node, ssid, tsid, tclass), 1);
+
+#endif /* _TRACE_HOOK_AVC_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/binder.h b/include/trace/hooks/binder.h
new file mode 100644
index 0000000..b442c86
--- /dev/null
+++ b/include/trace/hooks/binder.h
@@ -0,0 +1,110 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM binder
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_BINDER_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_BINDER_H
+#include <trace/hooks/vendor_hooks.h>
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+#ifdef __GENKSYMS__
+#include <../drivers/android/binder_internal.h>
+#include <linux/sched.h>
+#include <uapi/linux/android/binder.h>
+#endif
+
+struct binder_proc;
+struct binder_thread;
+struct binder_transaction;
+struct binder_transaction_data;
+struct task_struct;
+
+DECLARE_HOOK(android_vh_binder_transaction_init,
+	TP_PROTO(struct binder_transaction *t),
+	TP_ARGS(t));
+DECLARE_HOOK(android_vh_binder_priority_skip,
+	TP_PROTO(struct task_struct *task, bool *skip),
+	TP_ARGS(task, skip));
+DECLARE_HOOK(android_vh_binder_set_priority,
+	TP_PROTO(struct binder_transaction *t, struct task_struct *task),
+	TP_ARGS(t, task));
+DECLARE_HOOK(android_vh_binder_restore_priority,
+	TP_PROTO(struct binder_transaction *t, struct task_struct *task),
+	TP_ARGS(t, task));
+DECLARE_HOOK(android_vh_binder_wakeup_ilocked,
+	TP_PROTO(struct task_struct *task, bool sync, struct binder_proc *proc),
+	TP_ARGS(task, sync, proc));
+DECLARE_HOOK(android_vh_binder_wait_for_work,
+	TP_PROTO(bool do_proc_work, struct binder_thread *tsk, struct binder_proc *proc),
+	TP_ARGS(do_proc_work, tsk, proc));
+DECLARE_HOOK(android_vh_sync_txn_recvd,
+	TP_PROTO(struct task_struct *tsk, struct task_struct *from),
+	TP_ARGS(tsk, from));
+DECLARE_HOOK(android_vh_binder_proc_transaction_entry,
+	TP_PROTO(struct binder_proc *proc, struct binder_transaction *t,
+	struct binder_thread **thread, int node_debug_id, bool pending_async,
+	bool sync, bool *skip),
+	TP_ARGS(proc, t, thread, node_debug_id, pending_async, sync, skip));
+DECLARE_HOOK(android_vh_binder_select_worklist_ilocked,
+	TP_PROTO(struct list_head **list, struct binder_thread *thread, struct binder_proc *proc,
+	int wait_for_proc_work),
+	TP_ARGS(list, thread, proc, wait_for_proc_work));
+DECLARE_HOOK(android_vh_binder_proc_transaction_finish,
+	TP_PROTO(struct binder_proc *proc, struct binder_transaction *t,
+		struct task_struct *binder_th_task, bool pending_async, bool sync),
+	TP_ARGS(proc, t, binder_th_task, pending_async, sync));
+DECLARE_HOOK(android_vh_binder_print_transaction_info,
+	TP_PROTO(struct seq_file *m, struct binder_proc *proc,
+		 const char *prefix, struct binder_transaction *t),
+	TP_ARGS(m, proc, prefix, t));
+DECLARE_HOOK(android_vh_binder_looper_state_registered,
+	TP_PROTO(struct binder_thread *thread, struct binder_proc *proc),
+	TP_ARGS(thread, proc));
+DECLARE_HOOK(android_vh_binder_thread_read,
+	TP_PROTO(struct list_head **list, struct binder_proc *proc,
+		struct binder_thread *thread),
+	TP_ARGS(list, proc, thread));
+DECLARE_HOOK(android_vh_binder_free_proc,
+	TP_PROTO(struct binder_proc *proc),
+	TP_ARGS(proc));
+DECLARE_HOOK(android_vh_binder_thread_release,
+	TP_PROTO(struct binder_proc *proc, struct binder_thread *thread),
+	TP_ARGS(proc, thread));
+DECLARE_HOOK(android_vh_binder_read_done,
+	TP_PROTO(struct binder_proc *proc, struct binder_thread *thread),
+	TP_ARGS(proc, thread));
+DECLARE_HOOK(android_vh_binder_has_work_ilocked,
+	TP_PROTO(struct binder_thread *thread, bool do_proc_work, int *ret),
+	TP_ARGS(thread, do_proc_work, ret));
+DECLARE_HOOK(android_vh_binder_alloc_new_buf_locked,
+	TP_PROTO(size_t size, size_t *free_async_space, int is_async),
+	TP_ARGS(size, free_async_space, is_async));
+DECLARE_HOOK(android_vh_binder_reply,
+	TP_PROTO(struct binder_proc *target_proc, struct binder_proc *proc,
+		struct binder_thread *thread, struct binder_transaction_data *tr),
+	TP_ARGS(target_proc, proc, thread, tr));
+DECLARE_HOOK(android_vh_binder_trans,
+	TP_PROTO(struct binder_proc *target_proc, struct binder_proc *proc,
+		struct binder_thread *thread, struct binder_transaction_data *tr),
+	TP_ARGS(target_proc, proc, thread, tr));
+DECLARE_HOOK(android_vh_binder_preset,
+	TP_PROTO(struct hlist_head *hhead, struct mutex *lock),
+	TP_ARGS(hhead, lock));
+DECLARE_HOOK(android_vh_binder_proc_transaction,
+	TP_PROTO(struct task_struct *caller_task, struct task_struct *binder_proc_task,
+		struct task_struct *binder_th_task, int node_debug_id,
+		unsigned int code, bool pending_async),
+	TP_ARGS(caller_task, binder_proc_task, binder_th_task, node_debug_id, code, pending_async));
+DECLARE_HOOK(android_vh_binder_new_ref,
+	TP_PROTO(struct task_struct *proc, uint32_t ref_desc, int node_debug_id),
+	TP_ARGS(proc, ref_desc, node_debug_id));
+DECLARE_HOOK(android_vh_binder_del_ref,
+	TP_PROTO(struct task_struct *proc, uint32_t ref_desc),
+	TP_ARGS(proc, ref_desc));
+
+#endif /* _TRACE_HOOK_BINDER_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/bl_hib.h b/include/trace/hooks/bl_hib.h
new file mode 100644
index 0000000..7fb33cfc
--- /dev/null
+++ b/include/trace/hooks/bl_hib.h
@@ -0,0 +1,44 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM bl_hib
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_S2D_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_S2D_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+struct block_device;
+
+DECLARE_HOOK(android_vh_check_hibernation_swap,
+	TP_PROTO(struct block_device *resume_block, bool *hib_swap),
+	TP_ARGS(resume_block, hib_swap));
+
+DECLARE_HOOK(android_vh_save_cpu_resume,
+	TP_PROTO(u64 *addr, u64 phys_addr),
+	TP_ARGS(addr, phys_addr));
+
+DECLARE_HOOK(android_vh_save_hib_resume_bdev,
+	TP_PROTO(struct block_device *hib_resume_bdev),
+	TP_ARGS(hib_resume_bdev));
+
+DECLARE_HOOK(android_vh_encrypt_page,
+	TP_PROTO(void *buf),
+	TP_ARGS(buf));
+
+DECLARE_HOOK(android_vh_init_aes_encrypt,
+	TP_PROTO(void *unused),
+	TP_ARGS(unused));
+
+DECLARE_HOOK(android_vh_skip_swap_map_write,
+	TP_PROTO(bool *skip),
+	TP_ARGS(skip));
+
+DECLARE_HOOK(android_vh_post_image_save,
+	TP_PROTO(unsigned short root_swap),
+	TP_ARGS(root_swap));
+
+#endif /* _TRACE_HOOK_S2D_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/block.h b/include/trace/hooks/block.h
new file mode 100644
index 0000000..99b6604
--- /dev/null
+++ b/include/trace/hooks/block.h
@@ -0,0 +1,41 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM block
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_BLOCK_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_BLOCK_H
+
+#include <linux/tracepoint.h>
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <../block/blk-mq-tag.h>
+#include <../block/blk-mq.h>
+#include <linux/blk-mq.h>
+#endif
+
+struct blk_mq_tags;
+struct blk_mq_alloc_data;
+struct blk_mq_tag_set;
+struct request;
+
+DECLARE_HOOK(android_vh_blk_alloc_rqs,
+	TP_PROTO(size_t *rq_size, struct blk_mq_tag_set *set,
+		struct blk_mq_tags *tags, unsigned int hctx_idx),
+	TP_ARGS(rq_size, set, tags, hctx_idx));
+
+DECLARE_HOOK(android_vh_blk_rq_ctx_init,
+	TP_PROTO(struct request *rq, struct blk_mq_tags *tags,
+		struct blk_mq_alloc_data *data, u64 alloc_time_ns),
+	TP_ARGS(rq, tags, data, alloc_time_ns));
+
+DECLARE_HOOK(android_vh_blk_account_io_done,
+        TP_PROTO(struct request *rq),
+        TP_ARGS(rq));
+
+#endif /* _TRACE_HOOK_BLOCK_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/bug.h b/include/trace/hooks/bug.h
new file mode 100644
index 0000000..bbae73f
--- /dev/null
+++ b/include/trace/hooks/bug.h
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM bug
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_BUG_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_BUG_H
+#include <trace/hooks/vendor_hooks.h>
+
+DECLARE_RESTRICTED_HOOK(android_rvh_report_bug,
+	TP_PROTO(const char *file, unsigned int line, unsigned long bugaddr),
+	TP_ARGS(file, line, bugaddr), 1);
+
+#endif /* _TRACE_HOOK_BUG_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/cfg80211.h b/include/trace/hooks/cfg80211.h
new file mode 100644
index 0000000..ee901e3
--- /dev/null
+++ b/include/trace/hooks/cfg80211.h
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM cfg80211
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_CFG80211_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_CFG80211_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <net/cfg80211.h>
+#endif
+
+struct wiphy;
+struct wireless_dev;
+
+DECLARE_HOOK(android_vh_cfg80211_set_context,
+	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, int context_id,
+		 const void *data),
+	TP_ARGS(wiphy, wdev, context_id, data));
+
+DECLARE_HOOK(android_vh_cfg80211_get_context,
+	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, int context_id,
+		 void *data, size_t max_data_len),
+	TP_ARGS(wiphy, wdev, context_id, data, max_data_len));
+
+#endif /* _TRACE_HOOK_CFG80211_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/cgroup.h b/include/trace/hooks/cgroup.h
new file mode 100644
index 0000000..3e1ea11
--- /dev/null
+++ b/include/trace/hooks/cgroup.h
@@ -0,0 +1,64 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM cgroup
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_CGROUP_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_CGROUP_H
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <../kernel/cgroup/cgroup-internal.h>
+#include <linux/cgroup-defs.h>
+#include <linux/sched.h>
+#endif
+
+struct cgroup;
+struct cgroup_taskset;
+struct cgroup_subsys;
+struct cgroup_subsys_state;
+struct task_struct;
+
+DECLARE_HOOK(android_vh_cgroup_set_task,
+	TP_PROTO(int ret, struct task_struct *task),
+	TP_ARGS(ret, task));
+DECLARE_RESTRICTED_HOOK(android_rvh_refrigerator,
+	TP_PROTO(bool f),
+	TP_ARGS(f), 1);
+DECLARE_HOOK(android_vh_cgroup_attach,
+	TP_PROTO(struct cgroup_subsys *ss, struct cgroup_taskset *tset),
+	TP_ARGS(ss, tset))
+DECLARE_RESTRICTED_HOOK(android_rvh_cgroup_force_kthread_migration,
+	TP_PROTO(struct task_struct *tsk, struct cgroup *dst_cgrp, bool *force_migration),
+	TP_ARGS(tsk, dst_cgrp, force_migration), 1);
+struct mem_cgroup;
+DECLARE_HOOK(android_rvh_memcgv2_init,
+	TP_PROTO(struct mem_cgroup *memcg),
+	TP_ARGS(memcg));
+
+DECLARE_HOOK(android_rvh_memcgv2_calc_decayed_watermark,
+	TP_PROTO(struct mem_cgroup *memcg),
+	TP_ARGS(memcg));
+DECLARE_RESTRICTED_HOOK(android_rvh_cpuset_fork,
+	TP_PROTO(struct task_struct *p, int *inherit_cpus),
+	TP_ARGS(p, inherit_cpus), 1);
+
+struct page_counter;
+DECLARE_HOOK(android_rvh_update_watermark,
+	TP_PROTO(u64 new, struct page_counter *counter),
+	TP_ARGS(new, counter));
+
+DECLARE_RESTRICTED_HOOK(android_rvh_cpu_cgroup_attach,
+	TP_PROTO(struct cgroup_taskset *tset),
+	TP_ARGS(tset), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_cpu_cgroup_can_attach,
+	TP_PROTO(struct cgroup_taskset *tset, int *retval),
+	TP_ARGS(tset, retval), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_cpu_cgroup_online,
+	TP_PROTO(struct cgroup_subsys_state *css),
+	TP_ARGS(css), 1);
+#endif
+
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/cpufreq.h b/include/trace/hooks/cpufreq.h
new file mode 100644
index 0000000..b9d2e2d
--- /dev/null
+++ b/include/trace/hooks/cpufreq.h
@@ -0,0 +1,55 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM cpufreq
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_CPUFREQ_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_CPUFREQ_H
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <linux/cpufreq.h>
+#endif
+
+struct cpufreq_policy;
+struct task_struct;
+
+DECLARE_RESTRICTED_HOOK(android_rvh_show_max_freq,
+	TP_PROTO(struct cpufreq_policy *policy, unsigned int *max_freq),
+	TP_ARGS(policy, max_freq), 1);
+
+DECLARE_HOOK(android_vh_freq_table_limits,
+	TP_PROTO(struct cpufreq_policy *policy, unsigned int min_freq,
+		 unsigned int max_freq),
+	TP_ARGS(policy, min_freq, max_freq));
+
+DECLARE_HOOK(android_vh_cpufreq_acct_update_power,
+	TP_PROTO(u64 cputime, struct task_struct *p, unsigned int state),
+	TP_ARGS(cputime, p, state));
+
+DECLARE_RESTRICTED_HOOK(android_rvh_cpufreq_transition,
+	TP_PROTO(struct cpufreq_policy *policy),
+	TP_ARGS(policy), 1);
+
+DECLARE_HOOK(android_vh_cpufreq_resolve_freq,
+	TP_PROTO(struct cpufreq_policy *policy, unsigned int *target_freq,
+		unsigned int old_target_freq),
+	TP_ARGS(policy, target_freq, old_target_freq));
+
+DECLARE_HOOK(android_vh_cpufreq_fast_switch,
+	TP_PROTO(struct cpufreq_policy *policy, unsigned int *target_freq,
+		unsigned int old_target_freq),
+	TP_ARGS(policy, target_freq, old_target_freq));
+
+DECLARE_HOOK(android_vh_cpufreq_target,
+	TP_PROTO(struct cpufreq_policy *policy, unsigned int *target_freq,
+		unsigned int old_target_freq),
+	TP_ARGS(policy, target_freq, old_target_freq));
+
+DECLARE_HOOK(android_vh_cpufreq_offline,
+	TP_PROTO(struct device *dev, int val),
+	TP_ARGS(dev, val));
+#endif /* _TRACE_HOOK_CPUFREQ_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/cpuidle.h b/include/trace/hooks/cpuidle.h
new file mode 100644
index 0000000..c7c5d61
--- /dev/null
+++ b/include/trace/hooks/cpuidle.h
@@ -0,0 +1,28 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM cpuidle
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_CPUIDLE_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_CPUIDLE_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <linux/cpuidle.h>
+#endif
+
+struct cpuidle_device;
+
+DECLARE_HOOK(android_vh_cpu_idle_enter,
+	TP_PROTO(int *state, struct cpuidle_device *dev),
+	TP_ARGS(state, dev))
+DECLARE_HOOK(android_vh_cpu_idle_exit,
+	TP_PROTO(int state, struct cpuidle_device *dev),
+	TP_ARGS(state, dev))
+
+#endif /* _TRACE_HOOK_CPUIDLE_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
+
diff --git a/include/trace/hooks/cpuidle_psci.h b/include/trace/hooks/cpuidle_psci.h
new file mode 100644
index 0000000..9e21545
--- /dev/null
+++ b/include/trace/hooks/cpuidle_psci.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM cpuidle_psci
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_CPUIDLE_PSCI_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_CPUIDLE_PSCI_H
+#include <trace/hooks/vendor_hooks.h>
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+
+#ifdef __GENKSYMS__
+#include <linux/cpuidle.h>
+#endif
+
+struct cpuidle_device;
+
+DECLARE_HOOK(android_vh_cpuidle_psci_enter,
+	TP_PROTO(struct cpuidle_device *dev, bool s2idle),
+	TP_ARGS(dev, s2idle));
+
+DECLARE_HOOK(android_vh_cpuidle_psci_exit,
+	TP_PROTO(struct cpuidle_device *dev, bool s2idle),
+	TP_ARGS(dev, s2idle));
+
+#endif /* _TRACE_HOOK_CPUIDLE_PSCI_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/creds.h b/include/trace/hooks/creds.h
new file mode 100644
index 0000000..d190290
--- /dev/null
+++ b/include/trace/hooks/creds.h
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM creds
+
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_CREDS_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_CREDS_H
+#include <trace/hooks/vendor_hooks.h>
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+
+#ifdef __GENKSYMS__
+#include <linux/cred.h>
+#include <linux/sched.h>
+#endif
+
+struct cred;
+struct task_struct;
+
+DECLARE_RESTRICTED_HOOK(android_rvh_commit_creds,
+	TP_PROTO(const struct task_struct *task, const struct cred *new),
+	TP_ARGS(task, new), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_exit_creds,
+	TP_PROTO(const struct task_struct *task, const struct cred *cred),
+	TP_ARGS(task, cred), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_override_creds,
+	TP_PROTO(const struct task_struct *task, const struct cred *new),
+	TP_ARGS(task, new), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_revert_creds,
+	TP_PROTO(const struct task_struct *task, const struct cred *old),
+	TP_ARGS(task, old), 1);
+
+#endif /* _TRACE_HOOK_CREDS_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/debug.h b/include/trace/hooks/debug.h
new file mode 100644
index 0000000..779c6e6
--- /dev/null
+++ b/include/trace/hooks/debug.h
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM debug
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_DEBUG_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_DEBUG_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <asm/ptrace.h>
+#endif
+
+struct pt_regs;
+
+DECLARE_HOOK(android_vh_ipi_stop,
+	TP_PROTO(struct pt_regs *regs),
+	TP_ARGS(regs))
+
+#endif /* _TRACE_HOOK_DEBUG_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/direct_io.h b/include/trace/hooks/direct_io.h
new file mode 100644
index 0000000..6317666
--- /dev/null
+++ b/include/trace/hooks/direct_io.h
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM direct_io
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_DIRECT_IO_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_DIRECT_IO_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+struct kiocb;
+struct bio;
+DECLARE_HOOK(android_vh_direct_io_update_bio,
+	TP_PROTO(struct kiocb *iocb, struct bio *bio),
+	TP_ARGS(iocb, bio));
+
+#endif /* _TRACE_HOOK_DIRECT_IO_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/dm.h b/include/trace/hooks/dm.h
new file mode 100644
index 0000000..da42a17
--- /dev/null
+++ b/include/trace/hooks/dm.h
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM dm
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_DM_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_DM_H
+
+#include <trace/hooks/vendor_hooks.h>
+#include <linux/blk_types.h>
+
+struct bio;
+DECLARE_HOOK(android_vh_dm_update_clone_bio,
+	TP_PROTO(struct bio *clone, struct bio *bio),
+	TP_ARGS(clone, bio));
+
+#endif /* _TRACE_HOOK_DM_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/dmabuf.h b/include/trace/hooks/dmabuf.h
new file mode 100644
index 0000000..ddf11c6
--- /dev/null
+++ b/include/trace/hooks/dmabuf.h
@@ -0,0 +1,37 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM dmabuf
+
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_DMABUF_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_DMABUF_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <linux/dma-buf.h>
+#endif
+
+struct dma_buf;
+
+DECLARE_HOOK(android_vh_dma_buf_release,
+		TP_PROTO(struct dma_buf *data),
+		TP_ARGS(data));
+
+struct dma_heap;
+DECLARE_HOOK(android_vh_dmabuf_heap_flags_validation,
+		TP_PROTO(struct dma_heap *heap, size_t len,
+			unsigned int fd_flags, unsigned int heap_flags, bool *skip),
+		TP_ARGS(heap, len, fd_flags, heap_flags, skip));
+
+struct dma_buf_sysfs_entry;
+DECLARE_RESTRICTED_HOOK(android_rvh_dma_buf_stats_teardown,
+	TP_PROTO(struct dma_buf_sysfs_entry *sysfs_entry, bool *skip_sysfs_release),
+	TP_ARGS(sysfs_entry, skip_sysfs_release), 1);
+#endif /* _TRACE_HOOK_DMABUF_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
+
diff --git a/include/trace/hooks/drm_atomic.h b/include/trace/hooks/drm_atomic.h
new file mode 100644
index 0000000..25fe92d
--- /dev/null
+++ b/include/trace/hooks/drm_atomic.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM drm_atomic
+
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_DRM_ATOMIC_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_DRM_ATOMIC_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <drm/drm_atomic.h>
+#include <drm/drm_crtc.h>
+#endif
+
+struct drm_atomic_state;
+struct drm_crtc;
+
+DECLARE_HOOK(android_vh_drm_atomic_check_modeset,
+	TP_PROTO(struct drm_atomic_state *state, struct drm_crtc *crtc, bool *allow),
+	TP_ARGS(state, crtc, allow))
+
+#endif /* _TRACE_HOOK_DRM_ATOMIC_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
+
diff --git a/include/trace/hooks/drm_framebuffer.h b/include/trace/hooks/drm_framebuffer.h
new file mode 100644
index 0000000..c37f081
--- /dev/null
+++ b/include/trace/hooks/drm_framebuffer.h
@@ -0,0 +1,27 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM drm_framebuffer
+
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_DRM_FRAMEBUFFER_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_DRM_FRAMEBUFFER_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <drm/drm_framebuffer.h>
+#endif
+
+struct drm_framebuffer;
+
+DECLARE_HOOK(android_vh_atomic_remove_fb,
+	TP_PROTO(struct drm_framebuffer *fb, bool *allow),
+	TP_ARGS(fb, allow))
+
+#endif /* _TRACE_HOOK_DRM_FRAMEBUFFER_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
+
diff --git a/include/trace/hooks/dtask.h b/include/trace/hooks/dtask.h
new file mode 100644
index 0000000..0796ed8
--- /dev/null
+++ b/include/trace/hooks/dtask.h
@@ -0,0 +1,113 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM dtask
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_DTASK_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_DTASK_H
+#include <trace/hooks/vendor_hooks.h>
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+
+#ifdef __GENKSYMS__
+#include <linux/mutex.h>
+#include <linux/rtmutex.h>
+#include <linux/rwsem.h>
+#include <linux/sched.h>
+#endif
+
+struct mutex;
+struct rt_mutex_base;
+struct rw_semaphore;
+struct task_struct;
+
+DECLARE_HOOK(android_vh_mutex_wait_start,
+	TP_PROTO(struct mutex *lock),
+	TP_ARGS(lock));
+DECLARE_HOOK(android_vh_mutex_wait_finish,
+	TP_PROTO(struct mutex *lock),
+	TP_ARGS(lock));
+DECLARE_HOOK(android_vh_mutex_init,
+	TP_PROTO(struct mutex *lock),
+	TP_ARGS(lock));
+DECLARE_HOOK(android_vh_mutex_opt_spin_start,
+	TP_PROTO(struct mutex *lock, bool *time_out, int *cnt),
+	TP_ARGS(lock, time_out, cnt));
+DECLARE_HOOK(android_vh_mutex_opt_spin_finish,
+	TP_PROTO(struct mutex *lock, bool taken),
+	TP_ARGS(lock, taken));
+DECLARE_HOOK(android_vh_mutex_can_spin_on_owner,
+	TP_PROTO(struct mutex *lock, int *retval),
+	TP_ARGS(lock, retval));
+
+DECLARE_HOOK(android_vh_rtmutex_wait_start,
+	TP_PROTO(struct rt_mutex_base *lock),
+	TP_ARGS(lock));
+DECLARE_HOOK(android_vh_rtmutex_wait_finish,
+	TP_PROTO(struct rt_mutex_base *lock),
+	TP_ARGS(lock));
+
+DECLARE_HOOK(android_vh_rwsem_read_wait_start,
+	TP_PROTO(struct rw_semaphore *sem),
+	TP_ARGS(sem));
+DECLARE_HOOK(android_vh_rwsem_read_wait_finish,
+	TP_PROTO(struct rw_semaphore *sem),
+	TP_ARGS(sem));
+DECLARE_HOOK(android_vh_rwsem_write_wait_start,
+	TP_PROTO(struct rw_semaphore *sem),
+	TP_ARGS(sem));
+DECLARE_HOOK(android_vh_rwsem_write_wait_finish,
+	TP_PROTO(struct rw_semaphore *sem),
+	TP_ARGS(sem));
+DECLARE_HOOK(android_vh_rwsem_opt_spin_start,
+	TP_PROTO(struct rw_semaphore *sem, bool *time_out, int *cnt, bool chk_only),
+	TP_ARGS(sem, time_out, cnt, chk_only));
+DECLARE_HOOK(android_vh_rwsem_opt_spin_finish,
+	TP_PROTO(struct rw_semaphore *sem, bool taken),
+	TP_ARGS(sem, taken));
+DECLARE_HOOK(android_vh_rwsem_can_spin_on_owner,
+	TP_PROTO(struct rw_semaphore *sem, bool *ret),
+	TP_ARGS(sem, ret));
+
+DECLARE_HOOK(android_vh_sched_show_task,
+	TP_PROTO(struct task_struct *task),
+	TP_ARGS(task));
+
+struct mutex_waiter;
+DECLARE_HOOK(android_vh_alter_mutex_list_add,
+	TP_PROTO(struct mutex *lock,
+		struct mutex_waiter *waiter,
+		struct list_head *list,
+		bool *already_on_list),
+	TP_ARGS(lock, waiter, list, already_on_list));
+DECLARE_HOOK(android_vh_mutex_unlock_slowpath,
+	TP_PROTO(struct mutex *lock),
+	TP_ARGS(lock));
+DECLARE_HOOK(android_vh_record_mutex_lock_starttime,
+	TP_PROTO(struct task_struct *tsk, unsigned long settime_jiffies),
+	TP_ARGS(tsk, settime_jiffies));
+DECLARE_HOOK(android_vh_record_rtmutex_lock_starttime,
+	TP_PROTO(struct task_struct *tsk, unsigned long settime_jiffies),
+	TP_ARGS(tsk, settime_jiffies));
+DECLARE_HOOK(android_vh_record_rwsem_lock_starttime,
+	TP_PROTO(struct task_struct *tsk, unsigned long settime_jiffies),
+	TP_ARGS(tsk, settime_jiffies));
+DECLARE_HOOK(android_vh_record_pcpu_rwsem_starttime,
+	TP_PROTO(struct task_struct *tsk, unsigned long settime_jiffies),
+	TP_ARGS(tsk, settime_jiffies));
+
+struct rt_mutex_waiter;
+struct ww_acquire_ctx;
+DECLARE_HOOK(android_vh_task_blocks_on_rtmutex,
+	TP_PROTO(struct rt_mutex_base *lock, struct rt_mutex_waiter *waiter,
+		struct task_struct *task, struct ww_acquire_ctx *ww_ctx,
+		unsigned int *chwalk),
+	TP_ARGS(lock, waiter, task, ww_ctx, chwalk));
+DECLARE_HOOK(android_vh_rtmutex_waiter_prio,
+	TP_PROTO(struct task_struct *task, int *waiter_prio),
+	TP_ARGS(task, waiter_prio));
+#endif /* _TRACE_HOOK_DTASK_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/epoch.h b/include/trace/hooks/epoch.h
new file mode 100644
index 0000000..ccee2d8
--- /dev/null
+++ b/include/trace/hooks/epoch.h
@@ -0,0 +1,22 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM epoch
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_EPOCH_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_EPOCH_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+DECLARE_HOOK(android_vh_show_suspend_epoch_val,
+	TP_PROTO(u64 suspend_ns, u64 suspend_cycles),
+	TP_ARGS(suspend_ns, suspend_cycles));
+
+DECLARE_HOOK(android_vh_show_resume_epoch_val,
+	TP_PROTO(u64 resume_cycles),
+	TP_ARGS(resume_cycles));
+
+#endif /* _TRACE_HOOK_EPOCH_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/evdev.h b/include/trace/hooks/evdev.h
new file mode 100644
index 0000000..48ac94a
--- /dev/null
+++ b/include/trace/hooks/evdev.h
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM evdev
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_EVDEV_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_EVDEV_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+DECLARE_HOOK(android_vh_pass_input_event,
+       TP_PROTO(int head, int tail, int bufsize, int type, int code, int value),
+       TP_ARGS(head, tail, bufsize, type, code, value))
+
+#endif /* _TRACE_HOOK_EVDEV_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
+
diff --git a/include/trace/hooks/fault.h b/include/trace/hooks/fault.h
new file mode 100644
index 0000000..8bd9728
--- /dev/null
+++ b/include/trace/hooks/fault.h
@@ -0,0 +1,39 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM fault
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_FAULT_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_FAULT_H
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <asm/ptrace.h>
+#endif
+
+struct pt_regs;
+
+DECLARE_RESTRICTED_HOOK(android_rvh_die_kernel_fault,
+	TP_PROTO(const char *msg, unsigned long addr, unsigned int esr, struct pt_regs *regs),
+	TP_ARGS(msg, addr, esr, regs), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_do_sea,
+	TP_PROTO(unsigned long addr, unsigned int esr, struct pt_regs *regs),
+	TP_ARGS(addr, esr, regs), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_do_mem_abort,
+	TP_PROTO(unsigned long addr, unsigned int esr, struct pt_regs *regs),
+	TP_ARGS(addr, esr, regs), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_do_sp_pc_abort,
+	TP_PROTO(unsigned long addr, unsigned int esr, struct pt_regs *regs),
+	TP_ARGS(addr, esr, regs),
+	TP_CONDITION(!user_mode(regs)));
+
+DECLARE_HOOK(android_vh_handle_tlb_conf,
+	TP_PROTO(unsigned long addr, unsigned int esr, int *ret),
+	TP_ARGS(addr, esr, ret));
+
+#endif /* _TRACE_HOOK_FAULT_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/fips140.h b/include/trace/hooks/fips140.h
new file mode 100644
index 0000000..ae8416a
--- /dev/null
+++ b/include/trace/hooks/fips140.h
@@ -0,0 +1,54 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM fips140
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_FIPS140_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_FIPS140_H
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <crypto/aes.h>
+#endif
+
+struct crypto_aes_ctx;
+
+/*
+ * These hooks exist only for the benefit of the FIPS140 crypto module, which
+ * uses them to swap out the underlying implementation with one that is integrity
+ * checked as per FIPS 140 requirements. No other uses are allowed or
+ * supported.
+ */
+
+DECLARE_HOOK(android_vh_sha256,
+	     TP_PROTO(const u8 *data,
+		      unsigned int len,
+		      u8 *out,
+		      int *hook_inuse),
+	     TP_ARGS(data, len, out, hook_inuse));
+
+DECLARE_HOOK(android_vh_aes_expandkey,
+	     TP_PROTO(struct crypto_aes_ctx *ctx,
+		      const u8 *in_key,
+		      unsigned int key_len,
+		      int *err),
+	     TP_ARGS(ctx, in_key, key_len, err));
+
+DECLARE_HOOK(android_vh_aes_encrypt,
+	     TP_PROTO(const struct crypto_aes_ctx *ctx,
+		      u8 *out,
+		      const u8 *in,
+		      int *hook_inuse),
+	     TP_ARGS(ctx, out, in, hook_inuse));
+
+DECLARE_HOOK(android_vh_aes_decrypt,
+	     TP_PROTO(const struct crypto_aes_ctx *ctx,
+		      u8 *out,
+		      const u8 *in,
+		      int *hook_inuse),
+	     TP_ARGS(ctx, out, in, hook_inuse));
+
+#endif /* _TRACE_HOOK_FIPS140_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/fpsimd.h b/include/trace/hooks/fpsimd.h
new file mode 100644
index 0000000..b92382f
--- /dev/null
+++ b/include/trace/hooks/fpsimd.h
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM fpsimd
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_FPSIMD_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_FPSIMD_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <linux/sched.h>
+#endif
+
+struct task_struct;
+
+DECLARE_HOOK(android_vh_is_fpsimd_save,
+	TP_PROTO(struct task_struct *prev, struct task_struct *next),
+	TP_ARGS(prev, next))
+
+#endif /* _TRACE_HOOK_FPSIMD_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/ftrace_dump.h b/include/trace/hooks/ftrace_dump.h
new file mode 100644
index 0000000..9fb4bae
--- /dev/null
+++ b/include/trace/hooks/ftrace_dump.h
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM ftrace_dump
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_FTRACE_DUMP_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_FTRACE_DUMP_H
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <linux/trace_seq.h>
+#include <linux/trace_events.h>
+#endif
+
+struct trace_seq;
+
+DECLARE_HOOK(android_vh_ftrace_oops_enter,
+	TP_PROTO(bool *ftrace_check),
+	TP_ARGS(ftrace_check));
+
+DECLARE_HOOK(android_vh_ftrace_oops_exit,
+	TP_PROTO(bool *ftrace_check),
+	TP_ARGS(ftrace_check));
+
+DECLARE_HOOK(android_vh_ftrace_size_check,
+	TP_PROTO(unsigned long size, bool *ftrace_check),
+	TP_ARGS(size, ftrace_check));
+
+DECLARE_HOOK(android_vh_ftrace_format_check,
+	TP_PROTO(bool *ftrace_check),
+	TP_ARGS(ftrace_check));
+
+DECLARE_HOOK(android_vh_ftrace_dump_buffer,
+	TP_PROTO(struct trace_seq *trace_buf, bool *dump_printk),
+	TP_ARGS(trace_buf, dump_printk));
+
+#endif /* _TRACE_HOOK_FTRACE_DUMP_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/futex.h b/include/trace/hooks/futex.h
new file mode 100644
index 0000000..f4d6c38
--- /dev/null
+++ b/include/trace/hooks/futex.h
@@ -0,0 +1,66 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM futex
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_FUTEX_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_FUTEX_H
+#include <trace/hooks/vendor_hooks.h>
+
+#ifndef __GENKSYMS__
+#include <linux/plist.h>
+#include <linux/futex.h>
+#endif
+
+struct plist_node;
+struct plist_head;
+struct task_struct;
+union futex_key;
+
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+DECLARE_HOOK(android_vh_alter_futex_plist_add,
+	TP_PROTO(struct plist_node *node,
+		 struct plist_head *head,
+		 bool *already_on_hb),
+	TP_ARGS(node, head, already_on_hb));
+
+DECLARE_HOOK(android_vh_futex_sleep_start,
+	TP_PROTO(struct task_struct *p),
+	TP_ARGS(p));
+
+DECLARE_HOOK(android_vh_do_futex,
+	TP_PROTO(int cmd,
+		 unsigned int *flags,
+		 u32 __user *uaddr2),
+	TP_ARGS(cmd, flags, uaddr2));
+
+DECLARE_HOOK(android_vh_futex_wait_start,
+	TP_PROTO(unsigned int flags,
+		 u32 bitset),
+	TP_ARGS(flags, bitset));
+
+DECLARE_HOOK(android_vh_futex_wait_end,
+	TP_PROTO(unsigned int flags,
+		 u32 bitset),
+	TP_ARGS(flags, bitset));
+
+DECLARE_HOOK(android_vh_futex_wake_traverse_plist,
+	TP_PROTO(struct plist_head *chain, int *target_nr,
+		 union futex_key key, u32 bitset),
+	TP_ARGS(chain, target_nr, key, bitset));
+
+DECLARE_HOOK(android_vh_futex_wake_this,
+	TP_PROTO(int ret, int nr_wake, int target_nr,
+		 struct task_struct *p),
+	TP_ARGS(ret, nr_wake, target_nr, p));
+
+DECLARE_HOOK(android_vh_futex_wake_up_q_finish,
+	TP_PROTO(int nr_wake, int target_nr),
+	TP_ARGS(nr_wake, target_nr));
+
+#endif /* _TRACE_HOOK_FUTEX_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/gic.h b/include/trace/hooks/gic.h
new file mode 100644
index 0000000..732952d
--- /dev/null
+++ b/include/trace/hooks/gic.h
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM gic
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_GIC_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_GIC_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <linux/cpumask.h>
+#include <linux/irq.h>
+#include <linux/irqdomain.h>
+#endif
+
+struct cpumask;
+struct irq_data;
+struct irq_domain;
+
+DECLARE_HOOK(android_vh_gic_v2_resume,
+	TP_PROTO(struct irq_domain *domain, void __iomem *dist_base),
+	TP_ARGS(domain, dist_base));
+
+DECLARE_HOOK(android_vh_gic_set_affinity,
+	TP_PROTO(struct irq_data *d, const struct cpumask *mask_val,
+		 bool force, u8 *gic_cpu_map, void __iomem *reg),
+	TP_ARGS(d, mask_val, force, gic_cpu_map, reg));
+
+#endif /* _TRACE_HOOK_GIC_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/gic_v3.h b/include/trace/hooks/gic_v3.h
new file mode 100644
index 0000000..4d93422a
--- /dev/null
+++ b/include/trace/hooks/gic_v3.h
@@ -0,0 +1,41 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM gic_v3
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_GIC_V3_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_GIC_V3_H
+#include <trace/hooks/vendor_hooks.h>
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+
+#ifdef __GENKSYMS__
+#include <linux/cpumask.h>
+#include <linux/irq.h>
+#include <linux/irqchip/arm-gic-v3.h>
+#endif
+
+struct cpumask;
+struct irq_data;
+struct gic_chip_data;
+
+DECLARE_HOOK(android_vh_gic_v3_affinity_init,
+	TP_PROTO(int irq, u32 offset, u64 *affinity),
+	TP_ARGS(irq, offset, affinity));
+DECLARE_RESTRICTED_HOOK(android_rvh_gic_v3_set_affinity,
+	TP_PROTO(struct irq_data *d, const struct cpumask *mask_val,
+		 u64 *affinity, bool force, void __iomem *base,
+		 void __iomem *rbase, u64 redist_stride),
+	TP_ARGS(d, mask_val, affinity, force, base, rbase, redist_stride),
+	1);
+DECLARE_HOOK(android_vh_gic_resume,
+	TP_PROTO(struct gic_chip_data *gd),
+	TP_ARGS(gd));
+DECLARE_HOOK(android_vh_gic_suspend,
+	TP_PROTO(struct gic_chip_data *gd),
+	TP_ARGS(gd));
+
+#endif /* _TRACE_HOOK_GIC_V3_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/hung_task.h b/include/trace/hooks/hung_task.h
new file mode 100644
index 0000000..1559d3e
--- /dev/null
+++ b/include/trace/hooks/hung_task.h
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM hung_task
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_HUNG_TASK_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_HUNG_TASK_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+DECLARE_HOOK(android_vh_check_uninterruptible_tasks,
+	TP_PROTO(struct task_struct *t, unsigned long timeout,
+		bool *need_check),
+	TP_ARGS(t, timeout, need_check));
+
+DECLARE_HOOK(android_vh_check_uninterruptible_tasks_dn,
+	TP_PROTO(void *unused),
+	TP_ARGS(unused));
+
+#endif /* _TRACE_HOOK_HUNG_TASK_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/iommu.h b/include/trace/hooks/iommu.h
new file mode 100644
index 0000000..63f6b93
--- /dev/null
+++ b/include/trace/hooks/iommu.h
@@ -0,0 +1,35 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM iommu
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_IOMMU_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_IOMMU_H
+#include <trace/hooks/vendor_hooks.h>
+
+#include <linux/types.h>
+
+#ifdef __GENKSYMS__
+#include <linux/iova.h>
+#endif
+
+struct iova_domain;
+
+DECLARE_RESTRICTED_HOOK(android_rvh_iommu_setup_dma_ops,
+	TP_PROTO(struct device *dev, u64 dma_base, u64 dma_limit),
+	TP_ARGS(dev, dma_base, dma_limit), 1);
+
+
+DECLARE_HOOK(android_vh_iommu_iovad_alloc_iova,
+	TP_PROTO(struct device *dev, struct iova_domain *iovad, dma_addr_t iova, size_t size),
+	TP_ARGS(dev, iovad, iova, size));
+
+DECLARE_HOOK(android_vh_iommu_iovad_free_iova,
+	TP_PROTO(struct iova_domain *iovad, dma_addr_t iova, size_t size),
+	TP_ARGS(iovad, iova, size));
+
+#endif /* _TRACE_HOOK_IOMMU_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/logbuf.h b/include/trace/hooks/logbuf.h
new file mode 100644
index 0000000..a6e871b7
--- /dev/null
+++ b/include/trace/hooks/logbuf.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM logbuf
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_LOGBUF_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_LOGBUF_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <../kernel/printk/printk_ringbuffer.h>
+#endif
+
+struct printk_record;
+struct printk_ringbuffer;
+
+DECLARE_HOOK(android_vh_logbuf,
+	TP_PROTO(struct printk_ringbuffer *rb, struct printk_record *r),
+	TP_ARGS(rb, r))
+
+DECLARE_HOOK(android_vh_logbuf_pr_cont,
+	TP_PROTO(struct printk_record *r, size_t text_len),
+	TP_ARGS(r, text_len))
+
+#endif /* _TRACE_HOOK_LOGBUF_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/loop.h b/include/trace/hooks/loop.h
new file mode 100644
index 0000000..abbafd4
--- /dev/null
+++ b/include/trace/hooks/loop.h
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM loop
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_LOOP__H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_LOOP_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+struct bio;
+struct kiocb;
+DECLARE_HOOK(android_vh_loop_prepare_cmd,
+	TP_PROTO(struct bio *bio, struct kiocb *iocb),
+	TP_ARGS(bio, iocb));
+
+#endif /* _TRACE_HOOK_LOOP_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/memory.h b/include/trace/hooks/memory.h
new file mode 100644
index 0000000..d7dbfde
--- /dev/null
+++ b/include/trace/hooks/memory.h
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM memory
+
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_MEMORY_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_MEMORY_H
+#include <trace/hooks/vendor_hooks.h>
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+DECLARE_HOOK(android_vh_set_memory_nx,
+	TP_PROTO(unsigned long addr, int nr_pages),
+	TP_ARGS(addr, nr_pages));
+
+DECLARE_HOOK(android_vh_set_memory_rw,
+	TP_PROTO(unsigned long addr, int nr_pages),
+	TP_ARGS(addr, nr_pages));
+
+#endif /* _TRACE_HOOK_MEMORY_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/mm.h b/include/trace/hooks/mm.h
new file mode 100644
index 0000000..74128c8
--- /dev/null
+++ b/include/trace/hooks/mm.h
@@ -0,0 +1,257 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifdef PROTECT_TRACE_INCLUDE_PATH
+#undef PROTECT_TRACE_INCLUDE_PATH
+
+#include <trace/hooks/save_incpath.h>
+#include <trace/hooks/mm.h>
+#include <trace/hooks/restore_incpath.h>
+
+#else /* PROTECT_TRACE_INCLUDE_PATH */
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM mm
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_MM_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_MM_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <linux/types.h>
+#include <linux/mm.h>
+#include <linux/oom.h>
+#include <linux/rwsem.h>
+#include <../mm/slab.h>
+#endif
+
+struct oom_control;
+struct slabinfo;
+struct track;
+struct address_space;
+struct page_vma_mapped_walk;
+
+DECLARE_RESTRICTED_HOOK(android_rvh_set_skip_swapcache_flags,
+			TP_PROTO(gfp_t *flags),
+			TP_ARGS(flags), 1);
+DECLARE_RESTRICTED_HOOK(android_rvh_set_gfp_zone_flags,
+			TP_PROTO(gfp_t *flags),
+			TP_ARGS(flags), 1);
+DECLARE_RESTRICTED_HOOK(android_rvh_update_readahead_gfp_mask,
+			TP_PROTO(struct address_space *mapping, gfp_t *flags),
+			TP_ARGS(mapping, flags), 2);
+DECLARE_RESTRICTED_HOOK(android_rvh_set_readahead_gfp_mask,
+			TP_PROTO(gfp_t *flags),
+			TP_ARGS(flags), 1);
+DECLARE_RESTRICTED_HOOK(android_rvh_rmqueue_bulk,
+			TP_PROTO(void *unused),
+			TP_ARGS(unused), 1);
+DECLARE_HOOK(android_vh_meminfo_proc_show,
+	TP_PROTO(struct seq_file *m),
+	TP_ARGS(m));
+DECLARE_HOOK(android_vh_exit_mm,
+	TP_PROTO(struct mm_struct *mm),
+	TP_ARGS(mm));
+DECLARE_HOOK(android_vh_show_mem,
+	TP_PROTO(unsigned int filter, nodemask_t *nodemask),
+	TP_ARGS(filter, nodemask));
+DECLARE_HOOK(android_vh_alloc_pages_slowpath,
+	TP_PROTO(gfp_t gfp_mask, unsigned int order, unsigned long delta),
+	TP_ARGS(gfp_mask, order, delta));
+DECLARE_HOOK(android_vh_print_slabinfo_header,
+	TP_PROTO(struct seq_file *m),
+	TP_ARGS(m));
+DECLARE_HOOK(android_vh_cache_show,
+	TP_PROTO(struct seq_file *m, struct slabinfo *sinfo, struct kmem_cache *s),
+	TP_ARGS(m, sinfo, s));
+DECLARE_HOOK(android_vh_oom_check_panic,
+	TP_PROTO(struct oom_control *oc, int *ret),
+	TP_ARGS(oc, ret));
+DECLARE_HOOK(android_vh_drain_all_pages_bypass,
+	TP_PROTO(gfp_t gfp_mask, unsigned int order, unsigned long alloc_flags,
+		int migratetype, unsigned long did_some_progress,
+		bool *bypass),
+	TP_ARGS(gfp_mask, order, alloc_flags, migratetype, did_some_progress, bypass));
+DECLARE_HOOK(android_vh_dm_bufio_shrink_scan_bypass,
+	TP_PROTO(unsigned long dm_bufio_current_allocated, bool *bypass),
+	TP_ARGS(dm_bufio_current_allocated, bypass));
+DECLARE_HOOK(android_vh_cleanup_old_buffers_bypass,
+	TP_PROTO(unsigned long dm_bufio_current_allocated,
+		unsigned long *max_age_hz,
+		bool *bypass),
+	TP_ARGS(dm_bufio_current_allocated, max_age_hz, bypass));
+DECLARE_HOOK(android_vh_cma_drain_all_pages_bypass,
+	TP_PROTO(unsigned int migratetype, bool *bypass),
+	TP_ARGS(migratetype, bypass));
+DECLARE_HOOK(android_vh_pcplist_add_cma_pages_bypass,
+	TP_PROTO(int migratetype, bool *bypass),
+	TP_ARGS(migratetype, bypass));
+DECLARE_HOOK(android_vh_free_unref_page_bypass,
+	TP_PROTO(struct page *page, int order, int migratetype, bool *bypass),
+	TP_ARGS(page, order, migratetype, bypass));
+DECLARE_HOOK(android_vh_kvmalloc_node_use_vmalloc,
+	TP_PROTO(size_t size, gfp_t *kmalloc_flags, bool *use_vmalloc),
+	TP_ARGS(size, kmalloc_flags, use_vmalloc));
+DECLARE_HOOK(android_vh_should_alloc_pages_retry,
+	TP_PROTO(gfp_t gfp_mask, int order, int *alloc_flags,
+	int migratetype, struct zone *preferred_zone, struct page **page, bool *should_alloc_retry),
+	TP_ARGS(gfp_mask, order, alloc_flags,
+		migratetype, preferred_zone, page, should_alloc_retry));
+DECLARE_HOOK(android_vh_unreserve_highatomic_bypass,
+	TP_PROTO(bool force, struct zone *zone, bool *skip_unreserve_highatomic),
+	TP_ARGS(force, zone, skip_unreserve_highatomic));
+DECLARE_HOOK(android_vh_rmqueue_bulk_bypass,
+	TP_PROTO(unsigned int order, struct per_cpu_pages *pcp, int migratetype,
+		struct list_head *list),
+	TP_ARGS(order, pcp, migratetype, list));
+DECLARE_HOOK(android_vh_ra_tuning_max_page,
+	TP_PROTO(struct readahead_control *ractl, unsigned long *max_page),
+	TP_ARGS(ractl, max_page));
+DECLARE_HOOK(android_vh_tune_mmap_readaround,
+	TP_PROTO(unsigned int ra_pages, pgoff_t pgoff,
+		pgoff_t *start, unsigned int *size, unsigned int *async_size),
+	TP_ARGS(ra_pages, pgoff, start, size, async_size));
+DECLARE_HOOK(android_vh_mmap_region,
+	TP_PROTO(struct vm_area_struct *vma, unsigned long addr),
+	TP_ARGS(vma, addr));
+DECLARE_HOOK(android_vh_try_to_unmap_one,
+	TP_PROTO(struct vm_area_struct *vma, struct page *page, unsigned long addr, bool ret),
+	TP_ARGS(vma, page, addr, ret));
+DECLARE_HOOK(android_vh_cma_alloc_retry,
+	TP_PROTO(char *name, int *retry),
+	TP_ARGS(name, retry));
+struct mem_cgroup;
+DECLARE_HOOK(android_vh_mem_cgroup_alloc,
+	TP_PROTO(struct mem_cgroup *memcg),
+	TP_ARGS(memcg));
+DECLARE_HOOK(android_vh_mem_cgroup_free,
+	TP_PROTO(struct mem_cgroup *memcg),
+	TP_ARGS(memcg));
+DECLARE_HOOK(android_vh_mem_cgroup_id_remove,
+	TP_PROTO(struct mem_cgroup *memcg),
+	TP_ARGS(memcg));
+struct cgroup_subsys_state;
+DECLARE_HOOK(android_vh_mem_cgroup_css_online,
+	TP_PROTO(struct cgroup_subsys_state *css, struct mem_cgroup *memcg),
+	TP_ARGS(css, memcg));
+DECLARE_HOOK(android_vh_mem_cgroup_css_offline,
+	TP_PROTO(struct cgroup_subsys_state *css, struct mem_cgroup *memcg),
+	TP_ARGS(css, memcg));
+DECLARE_HOOK(android_vh_vmpressure,
+	TP_PROTO(struct mem_cgroup *memcg, bool *bypass),
+	TP_ARGS(memcg, bypass));
+DECLARE_HOOK(android_vh_do_page_trylock,
+	TP_PROTO(struct page *page, struct rw_semaphore *sem,
+		bool *got_lock, bool *success),
+	TP_ARGS(page, sem, got_lock, success));
+DECLARE_HOOK(android_vh_update_page_mapcount,
+	TP_PROTO(struct page *page, bool inc_size, bool compound,
+			bool *first_mapping, bool *success),
+	TP_ARGS(page, inc_size, compound, first_mapping, success));
+DECLARE_HOOK(android_vh_add_page_to_lrulist,
+	TP_PROTO(struct page *page, bool compound, enum lru_list lru),
+	TP_ARGS(page, compound, lru));
+DECLARE_HOOK(android_vh_del_page_from_lrulist,
+	TP_PROTO(struct page *page, bool compound, enum lru_list lru),
+	TP_ARGS(page, compound, lru));
+DECLARE_HOOK(android_vh_show_mapcount_pages,
+	TP_PROTO(void *unused),
+	TP_ARGS(unused));
+DECLARE_HOOK(android_vh_do_traversal_lruvec,
+	TP_PROTO(struct lruvec *lruvec),
+	TP_ARGS(lruvec));
+DECLARE_HOOK(android_vh_page_should_be_protected,
+	TP_PROTO(struct page *page, bool *should_protect),
+	TP_ARGS(page, should_protect));
+DECLARE_HOOK(android_vh_mark_page_accessed,
+	TP_PROTO(struct page *page),
+	TP_ARGS(page));
+DECLARE_HOOK(android_vh_page_cache_forced_ra,
+	TP_PROTO(struct readahead_control *ractl, unsigned long req_count, bool *do_forced_ra),
+	TP_ARGS(ractl, req_count, do_forced_ra));
+DECLARE_HOOK(android_vh_alloc_pages_reclaim_bypass,
+	TP_PROTO(gfp_t gfp_mask, int order, int alloc_flags,
+	int migratetype, struct page **page),
+	TP_ARGS(gfp_mask, order, alloc_flags, migratetype, page));
+DECLARE_HOOK(android_vh_alloc_pages_failure_bypass,
+	TP_PROTO(gfp_t gfp_mask, int order, int alloc_flags,
+	int migratetype, struct page **page),
+	TP_ARGS(gfp_mask, order, alloc_flags, migratetype, page));
+DECLARE_HOOK(android_vh_save_track_hash,
+	TP_PROTO(bool alloc, struct track *p),
+	TP_ARGS(alloc, p));
+DECLARE_HOOK(android_vh_rmqueue,
+	TP_PROTO(struct zone *preferred_zone, struct zone *zone,
+		unsigned int order, gfp_t gfp_flags,
+		unsigned int alloc_flags, int migratetype),
+	TP_ARGS(preferred_zone, zone, order,
+		gfp_flags, alloc_flags, migratetype));
+DECLARE_HOOK(android_vh_kmalloc_slab,
+	TP_PROTO(unsigned int index, gfp_t flags, struct kmem_cache **s),
+	TP_ARGS(index, flags, s));
+DECLARE_HOOK(android_vh_madvise_cold_or_pageout,
+	TP_PROTO(struct vm_area_struct *vma, bool *allow_shared),
+	TP_ARGS(vma, allow_shared));
+DECLARE_RESTRICTED_HOOK(android_rvh_ctl_dirty_rate,
+	TP_PROTO(void *unused),
+	TP_ARGS(unused), 1);
+DECLARE_HOOK(android_vh_rmqueue_smallest_bypass,
+	TP_PROTO(struct page **page, struct zone *zone, int order, int migratetype),
+	TP_ARGS(page, zone, order, migratetype));
+DECLARE_HOOK(android_vh_free_one_page_bypass,
+	TP_PROTO(struct page *page, struct zone *zone, int order, int migratetype,
+		int fpi_flags, bool *bypass),
+	TP_ARGS(page, zone, order, migratetype, fpi_flags, bypass));
+DECLARE_HOOK(android_vh_use_cma_first_check,
+	TP_PROTO(bool *use_cma_first_check),
+	TP_ARGS(use_cma_first_check));
+DECLARE_HOOK(android_vh_alloc_highpage_movable_gfp_adjust,
+        TP_PROTO(gfp_t *gfp_mask),
+        TP_ARGS(gfp_mask));
+DECLARE_HOOK(android_vh_anon_gfp_adjust,
+	TP_PROTO(gfp_t *gfp_mask),
+	TP_ARGS(gfp_mask));
+DECLARE_HOOK(android_vh_slab_page_alloced,
+	TP_PROTO(struct page *page, size_t size, gfp_t flags),
+	TP_ARGS(page, size, flags));
+DECLARE_HOOK(android_vh_kmalloc_order_alloced,
+        TP_PROTO(struct page *page, size_t size, gfp_t flags),
+        TP_ARGS(page, size, flags));
+DECLARE_HOOK(android_vh_compact_finished,
+	TP_PROTO(bool *abort_compact),
+	TP_ARGS(abort_compact));
+DECLARE_HOOK(android_vh_madvise_cold_or_pageout_abort,
+	TP_PROTO(struct vm_area_struct *vma, bool *abort_madvise),
+	TP_ARGS(vma, abort_madvise));
+DECLARE_HOOK(android_vh_alloc_flags_cma_adjust,
+	TP_PROTO(gfp_t gfp_mask, unsigned int *alloc_flags),
+	TP_ARGS(gfp_mask, alloc_flags));
+DECLARE_HOOK(android_vh_rmqueue_cma_fallback,
+	TP_PROTO(struct zone *zone, unsigned int order, struct page **page),
+	TP_ARGS(zone, order, page));
+DECLARE_HOOK(android_vh_test_clear_look_around_ref,
+	TP_PROTO(struct page *page),
+	TP_ARGS(page));
+DECLARE_HOOK(android_vh_look_around_migrate_page,
+	TP_PROTO(struct page *old_page, struct page *new_page),
+	TP_ARGS(old_page, new_page));
+DECLARE_HOOK(android_vh_look_around,
+	TP_PROTO(struct page_vma_mapped_walk *pvmw, struct page *page,
+		struct vm_area_struct *vma, int *referenced),
+	TP_ARGS(pvmw, page, vma, referenced));
+DECLARE_HOOK(android_vh_try_cma_fallback,
+	TP_PROTO(struct zone *zone, unsigned int order, bool *try_cma),
+	TP_ARGS(zone, order, try_cma));
+DECLARE_HOOK(android_vh_set_page_migrating,
+	TP_PROTO(struct page *page),
+	TP_ARGS(page));
+DECLARE_HOOK(android_vh_clear_page_migrating,
+	TP_PROTO(struct page *page),
+	TP_ARGS(page));
+#endif /* _TRACE_HOOK_MM_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
+
+#endif /* PROTECT_TRACE_INCLUDE_PATH */
diff --git a/include/trace/hooks/mmc.h b/include/trace/hooks/mmc.h
new file mode 100644
index 0000000..e59dd32
--- /dev/null
+++ b/include/trace/hooks/mmc.h
@@ -0,0 +1,89 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM mmc
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_MMC_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_MMC_H
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <linux/blk-mq.h>
+#include <linux/mmc/host.h>
+#include <linux/mmc/card.h>
+#include "../../drivers/mmc/host/sdhci.h"
+#endif
+
+struct blk_mq_queue_data;
+struct mmc_host;
+struct mmc_card;
+struct sdhci_host;
+
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+DECLARE_HOOK(android_vh_mmc_check_status,
+	TP_PROTO(const struct blk_mq_queue_data *bd, int *ret),
+	TP_ARGS(bd, ret));
+
+DECLARE_HOOK(android_vh_mmc_sdio_pm_flag_set,
+	TP_PROTO(struct mmc_host *host),
+	TP_ARGS(host));
+DECLARE_HOOK(android_vh_mmc_blk_reset,
+	TP_PROTO(struct mmc_host *host, int err),
+	TP_ARGS(host, err));
+DECLARE_HOOK(android_vh_mmc_blk_mq_rw_recovery,
+	TP_PROTO(struct mmc_card *card),
+	TP_ARGS(card));
+DECLARE_HOOK(android_vh_sd_update_bus_speed_mode,
+	TP_PROTO(struct mmc_card *card),
+	TP_ARGS(card));
+DECLARE_HOOK(android_vh_mmc_attach_sd,
+	TP_PROTO(struct mmc_host *host, u32 ocr, int err),
+	TP_ARGS(host, ocr, err));
+DECLARE_HOOK(android_vh_sdhci_get_cd,
+	TP_PROTO(struct sdhci_host *host, bool *allow),
+	TP_ARGS(host, allow));
+DECLARE_HOOK(android_vh_mmc_gpio_cd_irqt,
+	TP_PROTO(struct mmc_host *host, bool *allow),
+	TP_ARGS(host, allow));
+DECLARE_HOOK(android_vh_mmc_ffu_update_cid,
+	TP_PROTO(struct mmc_host *host, struct mmc_card *card, u32 *cid),
+	TP_ARGS(host, card, cid));
+
+DECLARE_RESTRICTED_HOOK(android_rvh_mmc_cache_card_properties,
+	TP_PROTO(struct mmc_host *host),
+	TP_ARGS(host), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_partial_init,
+	TP_PROTO(struct mmc_host *host, bool *partial_init),
+	TP_ARGS(host, partial_init), 1);
+
+DECLARE_HOOK(android_vh_mmc_update_partition_status,
+	TP_PROTO(struct mmc_card *card),
+	TP_ARGS(card));
+
+DECLARE_HOOK(android_vh_mmc_sd_update_cmdline_timing,
+	TP_PROTO(struct mmc_card *card, int *err),
+	TP_ARGS(card, err));
+
+DECLARE_HOOK(android_vh_mmc_sd_update_dataline_timing,
+	TP_PROTO(struct mmc_card *card, int *err),
+	TP_ARGS(card, err));
+
+DECLARE_RESTRICTED_HOOK(android_rvh_mmc_partition_status,
+	TP_PROTO(struct mmc_card *card),
+	TP_ARGS(card), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_mmc_sd_cmdline_timing,
+	TP_PROTO(struct mmc_card *card, int *err),
+	TP_ARGS(card, err), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_mmc_sd_dataline_timing,
+	TP_PROTO(struct mmc_card *card, int *err),
+	TP_ARGS(card, err), 1);
+
+#endif /* _TRACE_HOOK_MMC_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/module.h b/include/trace/hooks/module.h
new file mode 100644
index 0000000..90000ce
--- /dev/null
+++ b/include/trace/hooks/module.h
@@ -0,0 +1,30 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM module
+
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_MODULE_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_MODULE_H
+#include <trace/hooks/vendor_hooks.h>
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+
+#ifdef __GENKSYMS__
+#include <linux/module.h>
+#endif
+
+struct module;
+
+DECLARE_HOOK(android_vh_set_module_permit_before_init,
+	TP_PROTO(const struct module *mod),
+	TP_ARGS(mod));
+
+DECLARE_HOOK(android_vh_set_module_permit_after_init,
+	TP_PROTO(const struct module *mod),
+	TP_ARGS(mod));
+
+#endif /* _TRACE_HOOK_MODULE_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/mpam.h b/include/trace/hooks/mpam.h
new file mode 100644
index 0000000..f914810
--- /dev/null
+++ b/include/trace/hooks/mpam.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM mpam
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_MPAM_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_MPAM_H
+#include <trace/hooks/vendor_hooks.h>
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+#ifdef __GENKSYMS__
+#include <linux/sched.h>
+#endif
+
+struct task_struct;
+
+DECLARE_HOOK(android_vh_mpam_set,
+	TP_PROTO(struct task_struct *prev, struct task_struct *next),
+	TP_ARGS(prev, next));
+
+#endif /* _TRACE_HOOK_MPAM_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/net.h b/include/trace/hooks/net.h
new file mode 100644
index 0000000..bc6f242
--- /dev/null
+++ b/include/trace/hooks/net.h
@@ -0,0 +1,42 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM net
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_NET_VH_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_NET_VH_H
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <linux/netdevice.h>
+#include <linux/skbuff.h>
+#include <linux/types.h>
+#endif
+
+struct packet_type;
+struct sk_buff;
+struct list_head;
+
+DECLARE_HOOK(android_vh_ptype_head,
+	TP_PROTO(const struct packet_type *pt, struct list_head *vendor_pt),
+	TP_ARGS(pt, vendor_pt));
+DECLARE_HOOK(android_vh_kfree_skb,
+	TP_PROTO(struct sk_buff *skb), TP_ARGS(skb));
+
+struct nf_conn;
+struct sock;
+DECLARE_RESTRICTED_HOOK(android_rvh_nf_conn_alloc,
+	TP_PROTO(struct nf_conn *nf_conn), TP_ARGS(nf_conn), 1);
+DECLARE_RESTRICTED_HOOK(android_rvh_nf_conn_free,
+	TP_PROTO(struct nf_conn *nf_conn), TP_ARGS(nf_conn), 1);
+DECLARE_RESTRICTED_HOOK(android_rvh_sk_alloc,
+	TP_PROTO(struct sock *sock), TP_ARGS(sock), 1);
+DECLARE_RESTRICTED_HOOK(android_rvh_sk_free,
+	TP_PROTO(struct sock *sock), TP_ARGS(sock), 1);
+
+/* macro versions of hooks are no longer required */
+
+#endif /* _TRACE_HOOK_NET_VH_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/pm_domain.h b/include/trace/hooks/pm_domain.h
new file mode 100644
index 0000000..725805e
--- /dev/null
+++ b/include/trace/hooks/pm_domain.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM pm_domain
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_PM_DOMAIN_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_PM_DOMAIN_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <linux/pm_domain.h>
+#endif
+
+struct generic_pm_domain;
+
+DECLARE_HOOK(android_vh_allow_domain_state,
+	TP_PROTO(struct generic_pm_domain *genpd, uint32_t idx, bool *allow),
+	TP_ARGS(genpd, idx, allow))
+
+#endif /* _TRACE_HOOK_PM_DOMAIN_H */
+
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/power.h b/include/trace/hooks/power.h
new file mode 100644
index 0000000..a2f5898
--- /dev/null
+++ b/include/trace/hooks/power.h
@@ -0,0 +1,50 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM power
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_POWER_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_POWER_H
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <linux/sched.h>
+#endif
+
+/* needed for enum freq_qos_req_type */
+#include <linux/pm_qos.h>
+
+struct task_struct;
+
+DECLARE_HOOK(android_vh_try_to_freeze_todo,
+	TP_PROTO(unsigned int todo, unsigned int elapsed_msecs, bool wq_busy),
+	TP_ARGS(todo, elapsed_msecs, wq_busy));
+
+DECLARE_HOOK(android_vh_try_to_freeze_todo_logging,
+	TP_PROTO(bool *logging_on),
+	TP_ARGS(logging_on));
+
+DECLARE_HOOK(android_vh_try_to_freeze_todo_unfrozen,
+	TP_PROTO(struct task_struct *p),
+	TP_ARGS(p));
+
+enum freq_qos_req_type;
+struct freq_qos_request;
+struct freq_constraints;
+
+DECLARE_HOOK(android_vh_freq_qos_add_request,
+	TP_PROTO(struct freq_constraints *qos, struct freq_qos_request *req,
+		enum freq_qos_req_type type, int value, int ret),
+	TP_ARGS(qos, req, type, value, ret));
+
+DECLARE_HOOK(android_vh_freq_qos_update_request,
+		TP_PROTO(struct freq_qos_request *req, int value),
+		TP_ARGS(req, value));
+
+DECLARE_HOOK(android_vh_freq_qos_remove_request,
+		TP_PROTO(struct freq_qos_request *req),
+		TP_ARGS(req));
+
+#endif /* _TRACE_HOOK_POWER_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/preemptirq.h b/include/trace/hooks/preemptirq.h
new file mode 100644
index 0000000..52308c8
--- /dev/null
+++ b/include/trace/hooks/preemptirq.h
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM preemptirq
+
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_PREEMPTIRQ_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_PREEMPTIRQ_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+DECLARE_RESTRICTED_HOOK(android_rvh_preempt_disable,
+	TP_PROTO(unsigned long ip, unsigned long parent_ip),
+	TP_ARGS(ip, parent_ip), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_preempt_enable,
+	TP_PROTO(unsigned long ip, unsigned long parent_ip),
+	TP_ARGS(ip, parent_ip), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_irqs_disable,
+	TP_PROTO(unsigned long ip, unsigned long parent_ip),
+	TP_ARGS(ip, parent_ip), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_irqs_enable,
+	TP_PROTO(unsigned long ip, unsigned long parent_ip),
+	TP_ARGS(ip, parent_ip), 1);
+
+#endif /* _TRACE_HOOK_PREEMPTIRQ_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/printk.h b/include/trace/hooks/printk.h
new file mode 100644
index 0000000..b3e9598
--- /dev/null
+++ b/include/trace/hooks/printk.h
@@ -0,0 +1,28 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM printk
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_PRINTK_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_PRINTK_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+DECLARE_HOOK(android_vh_printk_hotplug,
+	TP_PROTO(int *flag),
+	TP_ARGS(flag));
+
+DECLARE_HOOK(android_vh_printk_caller_id,
+	TP_PROTO(u32 *caller_id),
+	TP_ARGS(caller_id));
+DECLARE_HOOK(android_vh_printk_caller,
+	TP_PROTO(char *caller, size_t size, u32 id, int *ret),
+	TP_ARGS(caller, size, id, ret));
+DECLARE_HOOK(android_vh_printk_ext_header,
+	TP_PROTO(char *caller, size_t size, u32 id, int *ret),
+	TP_ARGS(caller, size, id, ret));
+
+#endif /* _TRACE_HOOK_PRINTK_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/psci.h b/include/trace/hooks/psci.h
new file mode 100644
index 0000000..97d0fb1
--- /dev/null
+++ b/include/trace/hooks/psci.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM psci
+#undef TRACE_INCLUDE_PATH
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_PSCI_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_PSCI_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+DECLARE_RESTRICTED_HOOK(android_rvh_psci_tos_resident_on,
+	TP_PROTO(int cpu, bool *resident),
+	TP_ARGS(cpu, resident), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_psci_cpu_suspend,
+	TP_PROTO(u32 state, bool *deny),
+	TP_ARGS(state, deny), 1);
+
+/* macro versions of hooks are no longer required */
+
+#endif /* _TRACE_HOOK_PSCI_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/psi.h b/include/trace/hooks/psi.h
new file mode 100644
index 0000000..91a0086
--- /dev/null
+++ b/include/trace/hooks/psi.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM psi
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_PSI_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_PSI_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+struct psi_trigger;
+struct psi_group;
+DECLARE_HOOK(android_vh_psi_event,
+	TP_PROTO(struct psi_trigger *t),
+	TP_ARGS(t));
+
+DECLARE_HOOK(android_vh_psi_group,
+	TP_PROTO(struct psi_group *group),
+	TP_ARGS(group));
+
+#endif /* _TRACE_HOOK_PSI_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/regmap.h b/include/trace/hooks/regmap.h
new file mode 100644
index 0000000..f642ee4
--- /dev/null
+++ b/include/trace/hooks/regmap.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM regmap
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_REGMAP_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_REGMAP_H
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <../drivers/base/regmap/internal.h>
+#include <linux/regmap.h>
+#endif
+
+struct regmap;
+struct regmap_config;
+
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+DECLARE_HOOK(android_vh_regmap_update,
+	TP_PROTO(const struct regmap_config *config, struct regmap *map),
+	TP_ARGS(config, map));
+
+#endif /* _TRACE_HOOK_REGMAP_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/remoteproc.h b/include/trace/hooks/remoteproc.h
new file mode 100644
index 0000000..b37d8c8
--- /dev/null
+++ b/include/trace/hooks/remoteproc.h
@@ -0,0 +1,30 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM remoteproc
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_RPROC_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_RPROC_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <linux/remoteproc.h>
+#endif
+
+struct rproc;
+
+/* When recovery succeeds */
+DECLARE_HOOK(android_vh_rproc_recovery,
+	TP_PROTO(struct rproc *rproc),
+	TP_ARGS(rproc));
+
+/* When recovery mode is enabled or disabled by sysfs */
+DECLARE_HOOK(android_vh_rproc_recovery_set,
+	TP_PROTO(struct rproc *rproc),
+	TP_ARGS(rproc));
+
+#endif /* _TRACE_HOOK_RPROC_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/restore_incpath.h b/include/trace/hooks/restore_incpath.h
new file mode 100644
index 0000000..3a97e45
--- /dev/null
+++ b/include/trace/hooks/restore_incpath.h
@@ -0,0 +1,32 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Include this file from a header declaring vendor hooks to preserve and later
+ * restore TRACE_INCLUDE_PATH value. Typical usage:
+ *
+ *   #ifdef PROTECT_TRACE_INCLUDE_PATH
+ *   #undef PROTECT_TRACE_INCLUDE_PATH
+ *
+ *   #include <trace/hooks/save_incpath.h>
+ *   #include <vendor hooks header>
+ *   #include <trace/hooks/restore_incpath.h>
+ *
+ *   #else
+ *
+ *   <vendor hook definitions>
+ *
+ *   #endif
+ *
+ * The header that includes vendor hooks header file should define
+ * PROTECT_TRACE_INCLUDE_PATH before including the vendor hook file like this:
+ *
+ *   #define PROTECT_TRACE_INCLUDE_PATH
+ *   #include <vendor hooks header>
+ */
+#ifdef STORED_TRACE_INCLUDE_PATH
+# undef TRACE_INCLUDE_PATH
+# define TRACE_INCLUDE_PATH STORED_TRACE_INCLUDE_PATH
+# undef STORED_TRACE_INCLUDE_PATH
+#else
+# undef TRACE_INCLUDE_PATH
+#endif
+
diff --git a/include/trace/hooks/rwsem.h b/include/trace/hooks/rwsem.h
new file mode 100644
index 0000000..02d8742
--- /dev/null
+++ b/include/trace/hooks/rwsem.h
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM rwsem
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_RWSEM_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_RWSEM_H
+#include <trace/hooks/vendor_hooks.h>
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+
+#ifdef __GENKSYMS__
+#include <linux/rwsem.h>
+#endif
+
+struct rw_semaphore;
+struct rwsem_waiter;
+
+DECLARE_HOOK(android_vh_rwsem_init,
+	TP_PROTO(struct rw_semaphore *sem),
+	TP_ARGS(sem));
+DECLARE_HOOK(android_vh_rwsem_wake,
+	TP_PROTO(struct rw_semaphore *sem),
+	TP_ARGS(sem));
+DECLARE_HOOK(android_vh_rwsem_write_finished,
+	TP_PROTO(struct rw_semaphore *sem),
+	TP_ARGS(sem));
+DECLARE_HOOK(android_vh_alter_rwsem_list_add,
+	TP_PROTO(struct rwsem_waiter *waiter,
+		 struct rw_semaphore *sem,
+		 bool *already_on_list),
+	TP_ARGS(waiter, sem, already_on_list));
+DECLARE_HOOK(android_vh_rwsem_wake_finish,
+	TP_PROTO(struct rw_semaphore *sem),
+	TP_ARGS(sem));
+
+#endif /* _TRACE_HOOK_RWSEM_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/save_incpath.h b/include/trace/hooks/save_incpath.h
new file mode 100644
index 0000000..3b4621a
--- /dev/null
+++ b/include/trace/hooks/save_incpath.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Include this file from a header declaring vendor hooks to preserve and later
+ * restore TRACE_INCLUDE_PATH value. Typical usage:
+ *
+ *   #ifdef PROTECT_TRACE_INCLUDE_PATH
+ *   #undef PROTECT_TRACE_INCLUDE_PATH
+ *
+ *   #include <trace/hooks/save_incpath.h>
+ *   #include <vendor hooks header>
+ *   #include <trace/hooks/restore_incpath.h>
+ *
+ *   #else
+ *
+ *   <vendor hook definitions>
+ *
+ *   #endif
+ *
+ * The header that includes vendor hooks header file should define
+ * PROTECT_TRACE_INCLUDE_PATH before including the vendor hook file like this:
+ *
+ *   #define PROTECT_TRACE_INCLUDE_PATH
+ *   #include <vendor hooks header>
+ */
+#ifdef TRACE_INCLUDE_PATH
+#define STORED_TRACE_INCLUDE_PATH TRACE_INCLUDE_PATH
+#undef TRACE_INCLUDE_PATH
+#endif
+
diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h
new file mode 100644
index 0000000..d112d0a
--- /dev/null
+++ b/include/trace/hooks/sched.h
@@ -0,0 +1,442 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM sched
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_SCHED_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_SCHED_H
+#include <trace/hooks/vendor_hooks.h>
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+#ifdef __GENKSYMS__
+/* needed for KMI stability */
+#include <../kernel/cgroup/cgroup-internal.h>
+#endif
+
+DECLARE_RESTRICTED_HOOK(android_rvh_select_task_rq_fair,
+	TP_PROTO(struct task_struct *p, int prev_cpu, int sd_flag, int wake_flags, int *new_cpu),
+	TP_ARGS(p, prev_cpu, sd_flag, wake_flags, new_cpu), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_select_task_rq_rt,
+	TP_PROTO(struct task_struct *p, int prev_cpu, int sd_flag, int wake_flags, int *new_cpu),
+	TP_ARGS(p, prev_cpu, sd_flag, wake_flags, new_cpu), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_select_task_rq_dl,
+	TP_PROTO(struct task_struct *p, int prev_cpu, int sd_flag, int wake_flags, int *new_cpu),
+	TP_ARGS(p, prev_cpu, sd_flag, wake_flags, new_cpu), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_select_fallback_rq,
+	TP_PROTO(int cpu, struct task_struct *p, int *new_cpu),
+	TP_ARGS(cpu, p, new_cpu), 1);
+
+struct rq;
+DECLARE_HOOK(android_vh_scheduler_tick,
+	TP_PROTO(struct rq *rq),
+	TP_ARGS(rq));
+
+DECLARE_RESTRICTED_HOOK(android_rvh_enqueue_task,
+	TP_PROTO(struct rq *rq, struct task_struct *p, int flags),
+	TP_ARGS(rq, p, flags), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_dequeue_task,
+	TP_PROTO(struct rq *rq, struct task_struct *p, int flags),
+	TP_ARGS(rq, p, flags), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_can_migrate_task,
+	TP_PROTO(struct task_struct *p, int dst_cpu, int *can_migrate),
+	TP_ARGS(p, dst_cpu, can_migrate), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_find_lowest_rq,
+	TP_PROTO(struct task_struct *p, struct cpumask *local_cpu_mask,
+			int ret, int *lowest_cpu),
+	TP_ARGS(p, local_cpu_mask, ret, lowest_cpu), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_prepare_prio_fork,
+	TP_PROTO(struct task_struct *p),
+	TP_ARGS(p), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_finish_prio_fork,
+	TP_PROTO(struct task_struct *p),
+	TP_ARGS(p), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_rtmutex_force_update,
+	TP_PROTO(struct task_struct *p, struct task_struct *pi_task, int *update),
+	TP_ARGS(p, pi_task, update), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_rtmutex_prepare_setprio,
+	TP_PROTO(struct task_struct *p, struct task_struct *pi_task),
+	TP_ARGS(p, pi_task), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_rto_next_cpu,
+	TP_PROTO(int rto_cpu, struct cpumask *rto_mask, int *cpu),
+	TP_ARGS(rto_cpu, rto_mask, cpu), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_is_cpu_allowed,
+	TP_PROTO(struct task_struct *p, int cpu, bool *allowed),
+	TP_ARGS(p, cpu, allowed), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_get_nohz_timer_target,
+	TP_PROTO(int *cpu, bool *done),
+	TP_ARGS(cpu, done), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_set_user_nice,
+	TP_PROTO(struct task_struct *p, long *nice, bool *allowed),
+	TP_ARGS(p, nice, allowed), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_setscheduler,
+	TP_PROTO(struct task_struct *p),
+	TP_ARGS(p), 1);
+
+struct sched_group;
+DECLARE_RESTRICTED_HOOK(android_rvh_find_busiest_group,
+	TP_PROTO(struct sched_group *busiest, struct rq *dst_rq, int *out_balance),
+		TP_ARGS(busiest, dst_rq, out_balance), 1);
+
+DECLARE_HOOK(android_vh_dump_throttled_rt_tasks,
+	TP_PROTO(int cpu, u64 clock, ktime_t rt_period, u64 rt_runtime,
+			s64 rt_period_timer_expires),
+	TP_ARGS(cpu, clock, rt_period, rt_runtime, rt_period_timer_expires));
+
+DECLARE_HOOK(android_vh_jiffies_update,
+	TP_PROTO(void *unused),
+	TP_ARGS(unused));
+
+struct rq_flags;
+DECLARE_RESTRICTED_HOOK(android_rvh_sched_newidle_balance,
+	TP_PROTO(struct rq *this_rq, struct rq_flags *rf,
+		 int *pulled_task, int *done),
+	TP_ARGS(this_rq, rf, pulled_task, done), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_sched_nohz_balancer_kick,
+	TP_PROTO(struct rq *rq, unsigned int *flags, int *done),
+	TP_ARGS(rq, flags, done), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_sched_rebalance_domains,
+	TP_PROTO(struct rq *rq, int *continue_balancing),
+	TP_ARGS(rq, continue_balancing), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_find_busiest_queue,
+	TP_PROTO(int dst_cpu, struct sched_group *group,
+		 struct cpumask *env_cpus, struct rq **busiest,
+		 int *done),
+	TP_ARGS(dst_cpu, group, env_cpus, busiest, done), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_migrate_queued_task,
+	TP_PROTO(struct rq *rq, struct rq_flags *rf,
+		 struct task_struct *p, int new_cpu,
+		 int *detached),
+	TP_ARGS(rq, rf, p, new_cpu, detached), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_find_energy_efficient_cpu,
+	TP_PROTO(struct task_struct *p, int prev_cpu, int sync, int *new_cpu),
+	TP_ARGS(p, prev_cpu, sync, new_cpu), 1);
+
+DECLARE_HOOK(android_vh_set_sugov_sched_attr,
+	TP_PROTO(struct sched_attr *attr),
+	TP_ARGS(attr));
+
+DECLARE_RESTRICTED_HOOK(android_rvh_set_iowait,
+	TP_PROTO(struct task_struct *p, struct rq *rq, int *should_iowait_boost),
+	TP_ARGS(p, rq, should_iowait_boost), 1);
+
+struct sugov_policy;
+DECLARE_RESTRICTED_HOOK(android_rvh_set_sugov_update,
+	TP_PROTO(struct sugov_policy *sg_policy, unsigned int next_freq, bool *should_update),
+	TP_ARGS(sg_policy, next_freq, should_update), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_cpu_overutilized,
+	TP_PROTO(int cpu, int *overutilized),
+	TP_ARGS(cpu, overutilized), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_sched_setaffinity,
+	TP_PROTO(struct task_struct *p, const struct cpumask *in_mask, int *retval),
+	TP_ARGS(p, in_mask, retval), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_sched_getaffinity,
+	TP_PROTO(struct task_struct *p, struct cpumask *in_mask),
+	TP_ARGS(p, in_mask), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_update_cpus_allowed,
+	TP_PROTO(struct task_struct *p, cpumask_var_t cpus_requested,
+		 const struct cpumask *new_mask, int *ret),
+	TP_ARGS(p, cpus_requested, new_mask, ret), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_set_task_cpu,
+	TP_PROTO(struct task_struct *p, unsigned int new_cpu),
+	TP_ARGS(p, new_cpu), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_try_to_wake_up,
+	TP_PROTO(struct task_struct *p),
+	TP_ARGS(p), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_try_to_wake_up_success,
+	TP_PROTO(struct task_struct *p),
+	TP_ARGS(p), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_sched_fork,
+	TP_PROTO(struct task_struct *p),
+	TP_ARGS(p), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_wake_up_new_task,
+	TP_PROTO(struct task_struct *p),
+	TP_ARGS(p), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_new_task_stats,
+	TP_PROTO(struct task_struct *p),
+	TP_ARGS(p), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_flush_task,
+	TP_PROTO(struct task_struct *prev),
+	TP_ARGS(prev), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_tick_entry,
+	TP_PROTO(struct rq *rq),
+	TP_ARGS(rq), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_schedule,
+	TP_PROTO(struct task_struct *prev, struct task_struct *next, struct rq *rq),
+	TP_ARGS(prev, next, rq), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_sched_cpu_starting,
+	TP_PROTO(int cpu),
+	TP_ARGS(cpu), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_sched_cpu_dying,
+	TP_PROTO(int cpu),
+	TP_ARGS(cpu), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_account_irq,
+	TP_PROTO(struct task_struct *curr, int cpu, s64 delta),
+	TP_ARGS(curr, cpu, delta), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_account_irq_start,
+	TP_PROTO(struct task_struct *curr, int cpu, s64 delta),
+	TP_ARGS(curr, cpu, delta), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_account_irq_end,
+	TP_PROTO(struct task_struct *curr, int cpu, s64 delta),
+	TP_ARGS(curr, cpu, delta), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_place_entity,
+	TP_PROTO(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial, u64 *vruntime),
+	TP_ARGS(cfs_rq, se, initial, vruntime), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_build_perf_domains,
+	TP_PROTO(bool *eas_check),
+	TP_ARGS(eas_check), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_update_cpu_capacity,
+	TP_PROTO(int cpu, unsigned long *capacity),
+	TP_ARGS(cpu, capacity), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_update_misfit_status,
+	TP_PROTO(struct task_struct *p, struct rq *rq, bool *need_update),
+	TP_ARGS(p, rq, need_update), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_sched_fork_init,
+	TP_PROTO(struct task_struct *p),
+	TP_ARGS(p), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_ttwu_cond,
+	TP_PROTO(int cpu, bool *cond),
+	TP_ARGS(cpu, cond), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_schedule_bug,
+	TP_PROTO(void *unused),
+	TP_ARGS(unused), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_sched_exec,
+	TP_PROTO(bool *cond),
+	TP_ARGS(cond), 1);
+
+DECLARE_HOOK(android_vh_map_util_freq,
+	TP_PROTO(unsigned long util, unsigned long freq,
+		unsigned long cap, unsigned long *next_freq),
+	TP_ARGS(util, freq, cap, next_freq));
+
+struct cpufreq_policy;
+DECLARE_HOOK(android_vh_map_util_freq_new,
+	TP_PROTO(unsigned long util, unsigned long freq,
+		unsigned long cap, unsigned long *next_freq, struct cpufreq_policy *policy,
+		bool *need_freq_update),
+	TP_ARGS(util, freq, cap, next_freq, policy, need_freq_update));
+
+DECLARE_HOOK(android_vh_em_cpu_energy,
+	TP_PROTO(struct em_perf_domain *pd,
+		unsigned long max_util, unsigned long sum_util,
+		unsigned long *energy),
+	TP_ARGS(pd, max_util, sum_util, energy));
+
+DECLARE_HOOK(android_vh_build_sched_domains,
+	TP_PROTO(bool has_asym),
+	TP_ARGS(has_asym));
+
+DECLARE_RESTRICTED_HOOK(android_rvh_check_preempt_tick,
+	TP_PROTO(struct task_struct *p, unsigned long *ideal_runtime, bool *skip_preempt,
+			unsigned long delta_exec, struct cfs_rq *cfs_rq, struct sched_entity *curr,
+			unsigned int granularity),
+	TP_ARGS(p, ideal_runtime, skip_preempt, delta_exec, cfs_rq, curr, granularity), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_check_preempt_wakeup_ignore,
+	TP_PROTO(struct task_struct *p, bool *ignore),
+	TP_ARGS(p, ignore), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_replace_next_task_fair,
+	TP_PROTO(struct rq *rq, struct task_struct **p, struct sched_entity **se, bool *repick,
+			bool simple, struct task_struct *prev),
+	TP_ARGS(rq, p, se, repick, simple, prev), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_sched_balance_rt,
+	TP_PROTO(struct rq *rq, struct task_struct *p, int *done),
+	TP_ARGS(rq, p, done), 1);
+
+struct cfs_rq;
+DECLARE_RESTRICTED_HOOK(android_rvh_pick_next_entity,
+	TP_PROTO(struct cfs_rq *cfs_rq, struct sched_entity *curr,
+		 struct sched_entity **se),
+	TP_ARGS(cfs_rq, curr, se), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_check_preempt_wakeup,
+	TP_PROTO(struct rq *rq, struct task_struct *p, bool *preempt, bool *nopreempt,
+			int wake_flags, struct sched_entity *se, struct sched_entity *pse,
+			int next_buddy_marked, unsigned int granularity),
+	TP_ARGS(rq, p, preempt, nopreempt, wake_flags, se, pse, next_buddy_marked,
+			granularity), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_set_cpus_allowed_ptr_locked,
+	TP_PROTO(const struct cpumask *cpu_valid_mask, const struct cpumask *new_mask,
+		 unsigned int *dest_cpu),
+	TP_ARGS(cpu_valid_mask, new_mask, dest_cpu), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_set_cpus_allowed_by_task,
+	TP_PROTO(const struct cpumask *cpu_valid_mask, const struct cpumask *new_mask,
+		 struct task_struct *p, unsigned int *dest_cpu),
+	TP_ARGS(cpu_valid_mask, new_mask, p, dest_cpu), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_do_sched_yield,
+	TP_PROTO(struct rq *rq),
+	TP_ARGS(rq), 1);
+
+DECLARE_HOOK(android_vh_free_task,
+	TP_PROTO(struct task_struct *p),
+	TP_ARGS(p));
+
+DECLARE_HOOK(android_vh_irqtime_account_process_tick,
+	TP_PROTO(struct task_struct *p, struct rq *rq, int user_tick, int ticks),
+	TP_ARGS(p, rq, user_tick, ticks));
+
+DECLARE_HOOK(android_vh_sched_pelt_multiplier,
+	TP_PROTO(unsigned int old, unsigned int cur, int *ret),
+	TP_ARGS(old, cur, ret));
+
+/* Conditionally defined upon CONFIG_UCLAMP_TASK */
+struct uclamp_se;
+DECLARE_RESTRICTED_HOOK(android_rvh_uclamp_eff_get,
+	TP_PROTO(struct task_struct *p, enum uclamp_id clamp_id,
+		 struct uclamp_se *uclamp_max, struct uclamp_se *uclamp_eff, int *ret),
+	TP_ARGS(p, clamp_id, uclamp_max, uclamp_eff, ret), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_after_enqueue_task,
+	TP_PROTO(struct rq *rq, struct task_struct *p, int flags),
+	TP_ARGS(rq, p, flags), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_after_dequeue_task,
+	TP_PROTO(struct rq *rq, struct task_struct *p, int flags),
+	TP_ARGS(rq, p, flags), 1);
+
+struct cfs_rq;
+struct rq_flags;
+DECLARE_RESTRICTED_HOOK(android_rvh_enqueue_entity,
+	TP_PROTO(struct cfs_rq *cfs, struct sched_entity *se),
+	TP_ARGS(cfs, se), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_dequeue_entity,
+	TP_PROTO(struct cfs_rq *cfs, struct sched_entity *se),
+	TP_ARGS(cfs, se), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_entity_tick,
+	TP_PROTO(struct cfs_rq *cfs_rq, struct sched_entity *se),
+	TP_ARGS(cfs_rq, se), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_enqueue_task_fair,
+	TP_PROTO(struct rq *rq, struct task_struct *p, int flags),
+	TP_ARGS(rq, p, flags), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_dequeue_task_fair,
+	TP_PROTO(struct rq *rq, struct task_struct *p, int flags),
+	TP_ARGS(rq, p, flags), 1);
+
+DECLARE_HOOK(android_vh_em_dev_register_pd,
+	TP_PROTO(bool *cond),
+	TP_ARGS(cond));
+
+DECLARE_HOOK(android_vh_sched_stat_runtime_rt,
+	TP_PROTO(struct task_struct *tsk, u64 delta),
+	TP_ARGS(tsk, delta));
+
+DECLARE_RESTRICTED_HOOK(android_rvh_post_init_entity_util_avg,
+	TP_PROTO(struct sched_entity *se),
+	TP_ARGS(se), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_find_new_ilb,
+	TP_PROTO(struct cpumask *nohz_idle_cpus_mask, int *ilb),
+	TP_ARGS(nohz_idle_cpus_mask, ilb), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_util_est_update,
+	TP_PROTO(struct cfs_rq *cfs_rq, struct task_struct *p, bool task_sleep, int *ret),
+	TP_ARGS(cfs_rq, p, task_sleep, ret), 1);
+
+DECLARE_HOOK(android_vh_setscheduler_uclamp,
+	TP_PROTO(struct task_struct *tsk, int clamp_id, unsigned int value),
+	TP_ARGS(tsk, clamp_id, value));
+
+DECLARE_HOOK(android_vh_do_wake_up_sync,
+	TP_PROTO(struct wait_queue_head *wq_head, int *done),
+	TP_ARGS(wq_head, done));
+
+DECLARE_HOOK(android_vh_set_wake_flags,
+	TP_PROTO(int *wake_flags, unsigned int *mode),
+	TP_ARGS(wake_flags, mode));
+
+DECLARE_RESTRICTED_HOOK(android_rvh_effective_cpu_util,
+	TP_PROTO(int cpu, unsigned long util_cfs, unsigned long max, int type,
+		 struct task_struct *p, unsigned long *new_util),
+	TP_ARGS(cpu, util_cfs, max, type, p, new_util), 1);
+
+DECLARE_HOOK(android_vh_force_compatible_pre,
+	TP_PROTO(void *unused),
+	TP_ARGS(unused));
+
+DECLARE_HOOK(android_vh_force_compatible_post,
+	TP_PROTO(void *unused),
+	TP_ARGS(unused));
+
+DECLARE_HOOK(android_vh_dup_task_struct,
+	TP_PROTO(struct task_struct *tsk, struct task_struct *orig),
+	TP_ARGS(tsk, orig));
+
+DECLARE_HOOK(android_vh_account_task_time,
+	TP_PROTO(struct task_struct *p, struct rq *rq, int user_tick),
+	TP_ARGS(p, rq, user_tick));
+
+DECLARE_RESTRICTED_HOOK(android_rvh_set_cpus_allowed_comm,
+	TP_PROTO(struct task_struct *p, const struct cpumask *new_mask),
+	TP_ARGS(p, new_mask), 1);
+
+DECLARE_HOOK(android_vh_sched_setaffinity_early,
+	TP_PROTO(struct task_struct *p, const struct cpumask *new_mask, int *retval),
+	TP_ARGS(p, new_mask, retval));
+
+DECLARE_RESTRICTED_HOOK(android_rvh_update_rt_rq_load_avg,
+	TP_PROTO(u64 now, struct rq *rq, struct task_struct *tsk, int running),
+	TP_ARGS(now, rq, tsk, running), 1);
+
+DECLARE_HOOK(android_vh_mmput,
+	TP_PROTO(struct mm_struct *mm),
+	TP_ARGS(mm));
+/* macro versions of hooks are no longer required */
+
+#endif /* _TRACE_HOOK_SCHED_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/selinux.h b/include/trace/hooks/selinux.h
new file mode 100644
index 0000000..0b65631b
--- /dev/null
+++ b/include/trace/hooks/selinux.h
@@ -0,0 +1,20 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM selinux
+
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_SELINUX_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_SELINUX_H
+#include <trace/hooks/vendor_hooks.h>
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+struct selinux_state;
+DECLARE_RESTRICTED_HOOK(android_rvh_selinux_is_initialized,
+	TP_PROTO(const struct selinux_state *state),
+	TP_ARGS(state), 1);
+
+#endif /* _TRACE_HOOK_SELINUX_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/signal.h b/include/trace/hooks/signal.h
new file mode 100644
index 0000000..2b51854
--- /dev/null
+++ b/include/trace/hooks/signal.h
@@ -0,0 +1,26 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM signal
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_SIGNAL_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_SIGNAL_H
+#include <linux/tracepoint.h>
+#include <trace/hooks/vendor_hooks.h>
+
+struct task_struct;
+DECLARE_HOOK(android_vh_do_send_sig_info,
+	TP_PROTO(int sig, struct task_struct *killer, struct task_struct *dst),
+	TP_ARGS(sig, killer, dst));
+DECLARE_HOOK(android_vh_process_killed,
+	TP_PROTO(struct task_struct *task, bool *reap),
+	TP_ARGS(task, reap));
+DECLARE_HOOK(android_vh_exit_signal,
+	TP_PROTO(struct task_struct *task),
+	TP_ARGS(task));
+DECLARE_HOOK(android_vh_killed_process,
+	TP_PROTO(struct task_struct *killer, struct task_struct *dst, bool *reap),
+	TP_ARGS(killer, dst, reap));
+#endif /* _TRACE_HOOK_SIGNAL_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/softlockup.h b/include/trace/hooks/softlockup.h
new file mode 100644
index 0000000..be38c33
--- /dev/null
+++ b/include/trace/hooks/softlockup.h
@@ -0,0 +1,22 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM softlockup
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_SOFTLOCKUP_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_SOFTLOCKUP_H
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <asm/ptrace.h>
+#endif
+
+struct pt_regs;
+
+DECLARE_HOOK(android_vh_watchdog_timer_softlockup,
+	TP_PROTO(int duration, struct pt_regs *regs, bool is_panic),
+	TP_ARGS(duration, regs, is_panic));
+
+#endif /* _TRACE_HOOK_SOFTLOCKUP_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/sys.h b/include/trace/hooks/sys.h
new file mode 100644
index 0000000..0bb3a87
--- /dev/null
+++ b/include/trace/hooks/sys.h
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM sys
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_SYS_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_SYS_H
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <linux/sched.h>
+#endif
+
+struct task_struct;
+
+DECLARE_HOOK(android_vh_syscall_prctl_finished,
+	TP_PROTO(int option, struct task_struct *task),
+	TP_ARGS(option, task));
+#endif
+
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/syscall_check.h b/include/trace/hooks/syscall_check.h
new file mode 100644
index 0000000..55aab0f
--- /dev/null
+++ b/include/trace/hooks/syscall_check.h
@@ -0,0 +1,37 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM syscall_check
+
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_SYSCALL_CHECK_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_SYSCALL_CHECK_H
+#include <trace/hooks/vendor_hooks.h>
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+
+#ifdef __GENKSYMS__
+#include <linux/fs.h>
+#include <uapi/linux/bpf.h>
+#endif
+
+struct file;
+union bpf_attr;
+
+DECLARE_HOOK(android_vh_check_mmap_file,
+	TP_PROTO(const struct file *file, unsigned long prot,
+		unsigned long flag, unsigned long ret),
+	TP_ARGS(file, prot, flag, ret));
+
+DECLARE_HOOK(android_vh_check_file_open,
+	TP_PROTO(const struct file *file),
+	TP_ARGS(file));
+
+DECLARE_HOOK(android_vh_check_bpf_syscall,
+	TP_PROTO(int cmd, const union bpf_attr *attr, unsigned int size),
+	TP_ARGS(cmd, attr, size));
+
+#endif /* _TRACE_HOOK_SYSCALL_CHECK_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/sysrqcrash.h b/include/trace/hooks/sysrqcrash.h
new file mode 100644
index 0000000..92e7bc7
--- /dev/null
+++ b/include/trace/hooks/sysrqcrash.h
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM sysrqcrash
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_SYSRQCRASH_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_SYSRQCRASH_H
+#include <trace/hooks/vendor_hooks.h>
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+DECLARE_HOOK(android_vh_sysrq_crash,
+	TP_PROTO(void *data),
+	TP_ARGS(data));
+
+#endif /* _TRACE_HOOK_SYSRQCRASH_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/thermal.h b/include/trace/hooks/thermal.h
new file mode 100644
index 0000000..0cfd0e8
--- /dev/null
+++ b/include/trace/hooks/thermal.h
@@ -0,0 +1,63 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM thermal
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_THERMAL_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_THERMAL_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <linux/cpufreq.h>
+#include <linux/thermal.h>
+#endif
+
+struct cpufreq_policy;
+struct thermal_cooling_device;
+struct thermal_zone_device;
+
+DECLARE_HOOK(android_vh_modify_thermal_request_freq,
+	TP_PROTO(struct cpufreq_policy *policy, unsigned long *request_freq),
+	TP_ARGS(policy, request_freq));
+
+DECLARE_HOOK(android_vh_modify_thermal_target_freq,
+	TP_PROTO(struct cpufreq_policy *policy, unsigned int *target_freq),
+	TP_ARGS(policy, target_freq));
+
+DECLARE_HOOK(android_vh_thermal_register,
+	TP_PROTO(struct cpufreq_policy *policy),
+	TP_ARGS(policy));
+
+DECLARE_HOOK(android_vh_thermal_unregister,
+	TP_PROTO(struct cpufreq_policy *policy),
+	TP_ARGS(policy));
+
+DECLARE_HOOK(android_vh_enable_thermal_power_throttle,
+	TP_PROTO(bool *enable, bool *override),
+	TP_ARGS(enable, override));
+
+DECLARE_HOOK(android_vh_modify_thermal_throttle_update,
+	TP_PROTO(struct thermal_zone_device *tz, bool *update),
+	TP_ARGS(tz, update));
+
+DECLARE_HOOK(android_vh_thermal_power_cap,
+	TP_PROTO(u32 *power_range),
+	TP_ARGS(power_range));
+
+DECLARE_HOOK(android_vh_get_thermal_zone_device,
+	TP_PROTO(struct thermal_zone_device *tz),
+	TP_ARGS(tz));
+
+DECLARE_HOOK(android_vh_disable_thermal_cooling_stats,
+	TP_PROTO(struct thermal_cooling_device *cdev, int *disable_stats),
+	TP_ARGS(cdev, disable_stats));
+
+DECLARE_HOOK(android_vh_modify_thermal_cpu_get_power,
+	TP_PROTO(struct cpufreq_policy *policy, u32 *power),
+	TP_ARGS(policy, power));
+
+#endif /* _TRACE_HOOK_THERMAL_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/timekeeping.h b/include/trace/hooks/timekeeping.h
new file mode 100644
index 0000000..d884ff7
--- /dev/null
+++ b/include/trace/hooks/timekeeping.h
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM timekeeping
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_TIMEKEEPING_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_TIMEKEEPING_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <linux/timekeeper_internal.h>
+#endif
+
+struct timekeeper;
+
+DECLARE_RESTRICTED_HOOK(android_rvh_tk_based_time_sync,
+	TP_PROTO(struct timekeeper *tk),
+	TP_ARGS(tk), 1);
+
+#endif /* _TRACE_HOOK_TIMEKEEPING_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/timer.h b/include/trace/hooks/timer.h
new file mode 100644
index 0000000..67ef865
--- /dev/null
+++ b/include/trace/hooks/timer.h
@@ -0,0 +1,18 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM timer
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_TIMER_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_TIMER_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+DECLARE_HOOK(android_vh_timer_calc_index,
+	TP_PROTO(unsigned int lvl, unsigned long *expires),
+	TP_ARGS(lvl, expires));
+
+#endif /* _TRACE_HOOK_TIMER_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/topology.h b/include/trace/hooks/topology.h
new file mode 100644
index 0000000..59ec6cc
--- /dev/null
+++ b/include/trace/hooks/topology.h
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM topology
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_TOPOLOGY_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_TOPOLOGY_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <linux/cpumask.h>
+#endif
+
+struct cpumask;
+
+DECLARE_HOOK(android_vh_arch_set_freq_scale,
+	TP_PROTO(const struct cpumask *cpus, unsigned long freq,
+		 unsigned long max, unsigned long *scale),
+	TP_ARGS(cpus, freq, max, scale));
+
+DECLARE_HOOK(android_vh_update_topology_flags_workfn,
+	TP_PROTO(void *unused),
+	TP_ARGS(unused));
+
+DECLARE_RESTRICTED_HOOK(android_rvh_update_thermal_stats,
+	TP_PROTO(int cpu),
+	TP_ARGS(cpu), 1);
+
+#endif /* _TRACE_HOOK_TOPOLOGY_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/traps.h b/include/trace/hooks/traps.h
new file mode 100644
index 0000000..4357f80
--- /dev/null
+++ b/include/trace/hooks/traps.h
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM traps
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_TRAPS_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_TRAPS_H
+#include <trace/hooks/vendor_hooks.h>
+
+#ifdef __GENKSYMS__
+#include <asm/ptrace.h>
+#endif
+
+struct pt_regs;
+
+DECLARE_RESTRICTED_HOOK(android_rvh_do_undefinstr,
+	TP_PROTO(struct pt_regs *regs),
+	TP_ARGS(regs),
+	TP_CONDITION(!user_mode(regs)));
+
+DECLARE_RESTRICTED_HOOK(android_rvh_do_ptrauth_fault,
+	TP_PROTO(struct pt_regs *regs, unsigned int esr),
+	TP_ARGS(regs, esr),
+	TP_CONDITION(!user_mode(regs)));
+
+DECLARE_RESTRICTED_HOOK(android_rvh_panic_unhandled,
+	TP_PROTO(struct pt_regs *regs, const char *vector, unsigned int esr),
+	TP_ARGS(regs, vector, esr), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_arm64_serror_panic,
+	TP_PROTO(struct pt_regs *regs, unsigned int esr),
+	TP_ARGS(regs, esr), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_do_serror,
+	TP_PROTO(struct pt_regs *regs, unsigned int esr, int *ret),
+	TP_ARGS(regs, esr, ret), 1);
+
+#endif /* _TRACE_HOOK_TRAPS_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/ufshcd.h b/include/trace/hooks/ufshcd.h
new file mode 100644
index 0000000..bee30ab
--- /dev/null
+++ b/include/trace/hooks/ufshcd.h
@@ -0,0 +1,141 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM ufshcd
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_UFSHCD_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_UFSHCD_H
+#include <trace/hooks/vendor_hooks.h>
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+#ifdef __GENKSYMS__
+#include <../drivers/scsi/ufs/ufshcd.h>
+#include <linux/blkdev.h>
+#include <scsi/scsi_device.h>
+#endif
+
+struct ufs_hba;
+struct ufshcd_lrb;
+struct uic_command;
+struct request;
+struct scsi_device;
+
+DECLARE_HOOK(android_vh_ufs_fill_prdt,
+	TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp,
+		 unsigned int segments, int *err),
+	TP_ARGS(hba, lrbp, segments, err));
+
+DECLARE_RESTRICTED_HOOK(android_rvh_ufs_complete_init,
+			TP_PROTO(struct ufs_hba *hba),
+			TP_ARGS(hba), 1);
+
+DECLARE_RESTRICTED_HOOK(android_rvh_ufs_reprogram_all_keys,
+			TP_PROTO(struct ufs_hba *hba, int *err),
+			TP_ARGS(hba, err), 1);
+
+DECLARE_HOOK(android_vh_ufs_prepare_command,
+	TP_PROTO(struct ufs_hba *hba, struct request *rq,
+		 struct ufshcd_lrb *lrbp, int *err),
+	TP_ARGS(hba, rq, lrbp, err));
+
+DECLARE_HOOK(android_vh_ufs_update_sysfs,
+	TP_PROTO(struct ufs_hba *hba),
+	TP_ARGS(hba));
+
+DECLARE_HOOK(android_vh_ufs_send_command,
+	TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp),
+	TP_ARGS(hba, lrbp));
+
+DECLARE_HOOK(android_vh_ufs_compl_command,
+	TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp),
+	TP_ARGS(hba, lrbp));
+
+DECLARE_HOOK(android_vh_ufs_send_uic_command,
+	TP_PROTO(struct ufs_hba *hba, struct uic_command *ucmd, int str_t),
+	TP_ARGS(hba, ucmd, str_t));
+
+DECLARE_HOOK(android_vh_ufs_send_tm_command,
+	TP_PROTO(struct ufs_hba *hba, int tag, int str_t),
+	TP_ARGS(hba, tag, str_t));
+
+DECLARE_HOOK(android_vh_ufs_check_int_errors,
+	TP_PROTO(struct ufs_hba *hba, bool queue_eh_work),
+	TP_ARGS(hba, queue_eh_work));
+
+DECLARE_HOOK(android_vh_ufs_update_sdev,
+	TP_PROTO(struct scsi_device *sdev),
+	TP_ARGS(sdev));
+
+DECLARE_HOOK(android_vh_ufs_clock_scaling,
+		TP_PROTO(struct ufs_hba *hba, bool *force_out, bool *force_scaling, bool *scale_up),
+		TP_ARGS(hba, force_out, force_scaling, scale_up));
+
+DECLARE_HOOK(android_vh_ufs_use_mcq_hooks,
+	TP_PROTO(struct ufs_hba *hba, bool *use_mcq),
+	TP_ARGS(hba, use_mcq));
+
+DECLARE_HOOK(android_vh_ufs_mcq_max_tag,
+	TP_PROTO(struct ufs_hba *hba, int *max_tag),
+	TP_ARGS(hba, max_tag));
+
+DECLARE_HOOK(android_vh_ufs_mcq_map_tag,
+	TP_PROTO(struct ufs_hba *hba, int index, int *tag),
+	TP_ARGS(hba, index, tag));
+
+DECLARE_HOOK(android_vh_ufs_mcq_set_sqid,
+	TP_PROTO(struct ufs_hba *hba, int index, struct ufshcd_lrb *lrbp),
+	TP_ARGS(hba, index, lrbp));
+
+DECLARE_HOOK(android_vh_ufs_mcq_handler,
+	TP_PROTO(struct ufs_hba *hba, u32 intr_status, irqreturn_t *retval),
+	TP_ARGS(hba, intr_status, retval));
+
+DECLARE_HOOK(android_vh_ufs_mcq_make_hba_operational,
+	TP_PROTO(struct ufs_hba *hba, int *err),
+	TP_ARGS(hba, err));
+
+DECLARE_HOOK(android_vh_ufs_mcq_hba_capabilities,
+	TP_PROTO(struct ufs_hba *hba, int *err),
+	TP_ARGS(hba, err));
+
+DECLARE_HOOK(android_vh_ufs_mcq_print_trs,
+	TP_PROTO(struct ufs_hba *hba, bool pr_prdt),
+	TP_ARGS(hba, pr_prdt));
+
+DECLARE_HOOK(android_vh_ufs_mcq_send_command,
+	TP_PROTO(struct ufs_hba *hba, unsigned int task_tag),
+	TP_ARGS(hba, task_tag));
+
+DECLARE_HOOK(android_vh_ufs_mcq_config,
+	TP_PROTO(struct ufs_hba *hba, int *err),
+	TP_ARGS(hba, err));
+
+DECLARE_HOOK(android_vh_ufs_mcq_has_oustanding_reqs,
+	TP_PROTO(struct ufs_hba *hba, bool *ret),
+	TP_ARGS(hba, ret));
+
+DECLARE_HOOK(android_vh_ufs_mcq_get_outstanding_reqs,
+	TP_PROTO(struct ufs_hba *hba, unsigned long **outstanding, int *nr_tag),
+	TP_ARGS(hba, outstanding, nr_tag));
+
+struct scsi_cmnd;
+DECLARE_HOOK(android_vh_ufs_mcq_abort,
+	TP_PROTO(struct scsi_cmnd *cmd, int *ret),
+	TP_ARGS(cmd, ret));
+
+DECLARE_HOOK(android_vh_ufs_mcq_clear_cmd,
+	TP_PROTO(struct ufs_hba *hba, int tag, int *ret),
+	TP_ARGS(hba, tag, ret));
+
+DECLARE_HOOK(android_vh_ufs_mcq_clear_pending,
+	TP_PROTO(struct ufs_hba *hba, int *ret),
+	TP_ARGS(hba, ret));
+
+DECLARE_HOOK(android_vh_ufs_mcq_retry_complete,
+	TP_PROTO(struct ufs_hba *hba),
+	TP_ARGS(hba));
+
+#endif /* _TRACE_HOOK_UFSHCD_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/usb.h b/include/trace/hooks/usb.h
new file mode 100644
index 0000000..24b8159
--- /dev/null
+++ b/include/trace/hooks/usb.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM usb
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_USB_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_USB_H
+#include <trace/hooks/vendor_hooks.h>
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+
+#ifdef __GENKSYMS__
+#include <linux/usb.h>
+#endif
+
+struct usb_device;
+
+DECLARE_HOOK(android_vh_usb_new_device_added,
+	TP_PROTO(struct usb_device *udev, int *err),
+	TP_ARGS(udev, err));
+#endif /* _TRACE_HOOK_USB_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/user.h b/include/trace/hooks/user.h
new file mode 100644
index 0000000..b5b507c
--- /dev/null
+++ b/include/trace/hooks/user.h
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM user
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH trace/hooks
+#if !defined(_TRACE_HOOK_USER_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_USER_H
+#include <linux/tracepoint.h>
+#include <trace/hooks/vendor_hooks.h>
+
+struct user_struct;
+DECLARE_HOOK(android_vh_alloc_uid,
+	TP_PROTO(struct user_struct *user),
+	TP_ARGS(user));
+
+DECLARE_HOOK(android_vh_free_user,
+	TP_PROTO(struct user_struct *up),
+	TP_ARGS(up));
+
+#endif /* _TRACE_HOOK_USER_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
+
diff --git a/include/trace/hooks/vendor_hooks.h b/include/trace/hooks/vendor_hooks.h
new file mode 100644
index 0000000..9f71c75
--- /dev/null
+++ b/include/trace/hooks/vendor_hooks.h
@@ -0,0 +1,122 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+/*
+ * Note: we intentionally omit include file ifdef protection
+ *  This is due to the way trace events work. If a file includes two
+ *  trace event headers under one "CREATE_TRACE_POINTS" the first include
+ *  will override the DECLARE_RESTRICTED_HOOK and break the second include.
+ */
+
+#ifndef __GENKSYMS__
+#include <linux/tracepoint.h>
+#endif
+
+#if defined(CONFIG_TRACEPOINTS) && defined(CONFIG_ANDROID_VENDOR_HOOKS)
+
+#define DECLARE_HOOK DECLARE_TRACE
+
+int android_rvh_probe_register(struct tracepoint *tp, void *probe, void *data);
+
+#ifdef TRACE_HEADER_MULTI_READ
+
+#define DEFINE_HOOK_FN(_name, _reg, _unreg, proto, args)		\
+	static const char __tpstrtab_##_name[]				\
+	__section("__tracepoints_strings") = #_name;			\
+	extern struct static_call_key STATIC_CALL_KEY(tp_func_##_name);	\
+	int __traceiter_##_name(void *__data, proto);			\
+	struct tracepoint __tracepoint_##_name	__used			\
+	__section("__tracepoints") = {					\
+		.name = __tpstrtab_##_name,				\
+		.key = STATIC_KEY_INIT_FALSE,				\
+		.static_call_key = &STATIC_CALL_KEY(tp_func_##_name),	\
+		.static_call_tramp = STATIC_CALL_TRAMP_ADDR(tp_func_##_name), \
+		.iterator = &__traceiter_##_name,			\
+		.regfunc = _reg,					\
+		.unregfunc = _unreg,					\
+		.funcs = NULL };					\
+	__TRACEPOINT_ENTRY(_name);					\
+	int __nocfi __traceiter_##_name(void *__data, proto)			\
+	{								\
+		struct tracepoint_func *it_func_ptr;			\
+		void *it_func;						\
+									\
+		it_func_ptr = (&__tracepoint_##_name)->funcs;		\
+		it_func = (it_func_ptr)->func;				\
+		do {							\
+			__data = (it_func_ptr)->data;			\
+			((void(*)(void *, proto))(it_func))(__data, args); \
+			it_func = READ_ONCE((++it_func_ptr)->func);	\
+		} while (it_func);					\
+		return 0;						\
+	}								\
+	DEFINE_STATIC_CALL(tp_func_##_name, __traceiter_##_name);
+
+#undef DECLARE_RESTRICTED_HOOK
+#define DECLARE_RESTRICTED_HOOK(name, proto, args, cond) \
+	DEFINE_HOOK_FN(name, NULL, NULL, PARAMS(proto), PARAMS(args))
+
+/* prevent additional recursion */
+#undef TRACE_HEADER_MULTI_READ
+#else /* TRACE_HEADER_MULTI_READ */
+
+#ifdef CONFIG_HAVE_STATIC_CALL
+#define __DO_RESTRICTED_HOOK_CALL(name, args)					\
+	do {								\
+		struct tracepoint_func *it_func_ptr;			\
+		void *__data;						\
+		it_func_ptr = (&__tracepoint_##name)->funcs;		\
+		if (it_func_ptr) {					\
+			__data = (it_func_ptr)->data;			\
+			static_call(tp_func_##name)(__data, args);	\
+		}							\
+	} while (0)
+#else
+#define __DO_RESTRICTED_HOOK_CALL(name, args)	__traceiter_##name(NULL, args)
+#endif
+
+#define DO_RESTRICTED_HOOK(name, args, cond)					\
+	do {								\
+		if (!(cond))						\
+			return;						\
+									\
+		__DO_RESTRICTED_HOOK_CALL(name, TP_ARGS(args));		\
+	} while (0)
+
+#define __DECLARE_RESTRICTED_HOOK(name, proto, args, cond, data_proto)	\
+	extern int __traceiter_##name(data_proto);			\
+	DECLARE_STATIC_CALL(tp_func_##name, __traceiter_##name);	\
+	extern struct tracepoint __tracepoint_##name;			\
+	static inline void __nocfi trace_##name(proto)			\
+	{								\
+		if (static_key_false(&__tracepoint_##name.key))		\
+			DO_RESTRICTED_HOOK(name,			\
+					   TP_ARGS(args),		\
+					   TP_CONDITION(cond));		\
+	}								\
+	static inline bool						\
+	trace_##name##_enabled(void)					\
+	{								\
+		return static_key_false(&__tracepoint_##name.key);	\
+	}								\
+	static inline int						\
+	register_trace_##name(void (*probe)(data_proto), void *data) 	\
+	{								\
+		return android_rvh_probe_register(&__tracepoint_##name,	\
+						  (void *)probe, data);	\
+	}								\
+	/* vendor hooks cannot be unregistered */			\
+
+#undef DECLARE_RESTRICTED_HOOK
+#define DECLARE_RESTRICTED_HOOK(name, proto, args, cond)		\
+	__DECLARE_RESTRICTED_HOOK(name, PARAMS(proto), PARAMS(args),	\
+			cond,						\
+			PARAMS(void *__data, proto))
+
+#endif /* TRACE_HEADER_MULTI_READ */
+
+#else /* !CONFIG_TRACEPOINTS || !CONFIG_ANDROID_VENDOR_HOOKS */
+/* suppress trace hooks */
+#define DECLARE_HOOK DECLARE_EVENT_NOP
+#define DECLARE_RESTRICTED_HOOK(name, proto, args, cond)		\
+	DECLARE_EVENT_NOP(name, PARAMS(proto), PARAMS(args))
+#endif
diff --git a/include/trace/hooks/vmscan.h b/include/trace/hooks/vmscan.h
new file mode 100644
index 0000000..ce892a2
--- /dev/null
+++ b/include/trace/hooks/vmscan.h
@@ -0,0 +1,59 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM vmscan
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_VMSCAN_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_VMSCAN_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+DECLARE_RESTRICTED_HOOK(android_rvh_set_balance_anon_file_reclaim,
+			TP_PROTO(bool *balance_anon_file_reclaim),
+			TP_ARGS(balance_anon_file_reclaim), 1);
+DECLARE_HOOK(android_vh_kswapd_per_node,
+	TP_PROTO(int nid, bool *skip, bool run),
+	TP_ARGS(nid, skip, run));
+DECLARE_HOOK(android_vh_page_referenced_check_bypass,
+	TP_PROTO(struct page *page, unsigned long nr_to_scan, int lru, bool *bypass),
+	TP_ARGS(page, nr_to_scan, lru, bypass));
+DECLARE_HOOK(android_vh_page_trylock_get_result,
+	TP_PROTO(struct page *page, bool *trylock_fail),
+	TP_ARGS(page, trylock_fail));
+DECLARE_HOOK(android_vh_handle_failed_page_trylock,
+	TP_PROTO(struct list_head *page_list),
+	TP_ARGS(page_list));
+DECLARE_HOOK(android_vh_page_trylock_set,
+	TP_PROTO(struct page *page),
+	TP_ARGS(page));
+DECLARE_HOOK(android_vh_page_trylock_clear,
+	TP_PROTO(struct page *page),
+	TP_ARGS(page));
+DECLARE_HOOK(android_vh_shrink_node_memcgs,
+	TP_PROTO(struct mem_cgroup *memcg, bool *skip),
+	TP_ARGS(memcg, skip));
+DECLARE_HOOK(android_vh_tune_scan_type,
+	TP_PROTO(char *scan_type),
+	TP_ARGS(scan_type));
+DECLARE_HOOK(android_vh_tune_swappiness,
+	TP_PROTO(int *swappiness),
+	TP_ARGS(swappiness));
+DECLARE_HOOK(android_vh_shrink_slab_bypass,
+	TP_PROTO(gfp_t gfp_mask, int nid, struct mem_cgroup *memcg, int priority, bool *bypass),
+	TP_ARGS(gfp_mask, nid, memcg, priority, bypass));
+DECLARE_HOOK(android_vh_do_shrink_slab,
+	TP_PROTO(struct shrinker *shrinker, struct shrink_control *shrinkctl, int priority),
+	TP_ARGS(shrinker, shrinkctl, priority));
+DECLARE_HOOK(android_vh_tune_memcg_scan_type,
+	TP_PROTO(struct mem_cgroup *memcg, char *scan_type),
+	TP_ARGS(memcg, scan_type));
+DECLARE_HOOK(android_vh_tune_inactive_ratio,
+	TP_PROTO(unsigned long *inactive_ratio, int file),
+	TP_ARGS(inactive_ratio, file))
+DECLARE_HOOK(android_vh_check_page_look_around_ref,
+	TP_PROTO(struct page *page, int *skip),
+	TP_ARGS(page, skip));
+#endif /* _TRACE_HOOK_VMSCAN_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/wqlockup.h b/include/trace/hooks/wqlockup.h
new file mode 100644
index 0000000..92e01ab
--- /dev/null
+++ b/include/trace/hooks/wqlockup.h
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM wqlockup
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_WQLOCKUP_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_WQLOCKUP_H
+#include <trace/hooks/vendor_hooks.h>
+/*
+ * Following tracepoints are not exported in tracefs and provide a
+ * mechanism for vendor modules to hook and extend functionality
+ */
+DECLARE_HOOK(android_vh_wq_lockup_pool,
+	TP_PROTO(int cpu, unsigned long pool_ts),
+	TP_ARGS(cpu, pool_ts));
+
+#endif /* _TRACE_HOOK_WQLOCKUP_H */
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/uapi/asm-generic/siginfo.h b/include/uapi/asm-generic/siginfo.h
index ffbe4ce..3ba180f 100644
--- a/include/uapi/asm-generic/siginfo.h
+++ b/include/uapi/asm-generic/siginfo.h
@@ -99,7 +99,6 @@
 			struct {
 				unsigned long _data;
 				__u32 _type;
-				__u32 _flags;
 			} _perf;
 		};
 	} _sigfault;
@@ -165,7 +164,6 @@
 #define si_pkey		_sifields._sigfault._addr_pkey._pkey
 #define si_perf_data	_sifields._sigfault._perf._data
 #define si_perf_type	_sifields._sigfault._perf._type
-#define si_perf_flags	_sifields._sigfault._perf._flags
 #define si_band		_sifields._sigpoll._band
 #define si_fd		_sifields._sigpoll._fd
 #define si_call_addr	_sifields._sigsys._call_addr
@@ -273,11 +271,6 @@
  */
 
 /*
- * Flags for si_perf_flags if SIGTRAP si_code is TRAP_PERF.
- */
-#define TRAP_PERF_FLAG_ASYNC (1u << 0)
-
-/*
  * SIGCHLD si_codes
  */
 #define CLD_EXITED	1	/* child has exited */
diff --git a/include/uapi/linux/android/binder.h b/include/uapi/linux/android/binder.h
index 3246f2c..7badb67 100644
--- a/include/uapi/linux/android/binder.h
+++ b/include/uapi/linux/android/binder.h
@@ -38,11 +38,59 @@
 	BINDER_TYPE_PTR		= B_PACK_CHARS('p', 't', '*', B_TYPE_LARGE),
 };
 
-enum {
+/**
+ * enum flat_binder_object_shifts: shift values for flat_binder_object_flags
+ * @FLAT_BINDER_FLAG_SCHED_POLICY_SHIFT: shift for getting scheduler policy.
+ *
+ */
+enum flat_binder_object_shifts {
+	FLAT_BINDER_FLAG_SCHED_POLICY_SHIFT = 9,
+};
+
+/**
+ * enum flat_binder_object_flags - flags for use in flat_binder_object.flags
+ */
+enum flat_binder_object_flags {
+	/**
+	 * @FLAT_BINDER_FLAG_PRIORITY_MASK: bit-mask for min scheduler priority
+	 *
+	 * These bits can be used to set the minimum scheduler priority
+	 * at which transactions into this node should run. Valid values
+	 * in these bits depend on the scheduler policy encoded in
+	 * @FLAT_BINDER_FLAG_SCHED_POLICY_MASK.
+	 *
+	 * For SCHED_NORMAL/SCHED_BATCH, the valid range is between [-20..19]
+	 * For SCHED_FIFO/SCHED_RR, the value can run between [1..99]
+	 */
 	FLAT_BINDER_FLAG_PRIORITY_MASK = 0xff,
+	/**
+	 * @FLAT_BINDER_FLAG_ACCEPTS_FDS: whether the node accepts fds.
+	 */
 	FLAT_BINDER_FLAG_ACCEPTS_FDS = 0x100,
 
 	/**
+	 * @FLAT_BINDER_FLAG_SCHED_POLICY_MASK: bit-mask for scheduling policy
+	 *
+	 * These two bits can be used to set the min scheduling policy at which
+	 * transactions on this node should run. These match the UAPI
+	 * scheduler policy values, eg:
+	 * 00b: SCHED_NORMAL
+	 * 01b: SCHED_FIFO
+	 * 10b: SCHED_RR
+	 * 11b: SCHED_BATCH
+	 */
+	FLAT_BINDER_FLAG_SCHED_POLICY_MASK =
+		3U << FLAT_BINDER_FLAG_SCHED_POLICY_SHIFT,
+
+	/**
+	 * @FLAT_BINDER_FLAG_INHERIT_RT: whether the node inherits RT policy
+	 *
+	 * Only when set, calls into this node will inherit a real-time
+	 * scheduling policy from the caller (for synchronous transactions).
+	 */
+	FLAT_BINDER_FLAG_INHERIT_RT = 0x800,
+
+	/**
 	 * @FLAT_BINDER_FLAG_TXN_SECURITY_CTX: request security contexts
 	 *
 	 * Only when set, causes senders to include their security
@@ -271,6 +319,7 @@
 	TF_STATUS_CODE	= 0x08,	/* contents are a 32-bit status code */
 	TF_ACCEPT_FDS	= 0x10,	/* allow replies with file descriptors */
 	TF_CLEAR_BUF	= 0x20,	/* clear buffer on txn complete */
+	TF_UPDATE_TXN	= 0x40,	/* update the outdated pending async txn */
 };
 
 struct binder_transaction_data {
diff --git a/include/uapi/linux/android_fuse.h b/include/uapi/linux/android_fuse.h
new file mode 100644
index 0000000..221e30e
--- /dev/null
+++ b/include/uapi/linux/android_fuse.h
@@ -0,0 +1,97 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause WITH Linux-syscall-note */
+/* Copyright (c) 2022 Google LLC */
+
+#ifndef _LINUX_ANDROID_FUSE_H
+#define _LINUX_ANDROID_FUSE_H
+
+#ifdef __KERNEL__
+#include <linux/types.h>
+#else
+#include <stdint.h>
+#endif
+
+#define FUSE_ACTION_KEEP	0
+#define FUSE_ACTION_REMOVE	1
+#define FUSE_ACTION_REPLACE	2
+
+struct fuse_entry_bpf_out {
+	uint64_t	backing_action;
+	uint64_t	backing_fd;
+	uint64_t	bpf_action;
+	uint64_t	bpf_fd;
+};
+
+struct fuse_entry_bpf {
+	struct fuse_entry_bpf_out out;
+	struct file *backing_file;
+	struct file *bpf_file;
+};
+
+struct fuse_read_out {
+	uint64_t	offset;
+	uint32_t	again;
+	uint32_t	padding;
+};
+
+struct fuse_in_postfilter_header {
+	uint32_t	len;
+	uint32_t	opcode;
+	uint64_t	unique;
+	uint64_t	nodeid;
+	uint32_t	uid;
+	uint32_t	gid;
+	uint32_t	pid;
+	uint32_t	error_in;
+};
+
+/*
+ * Fuse BPF Args
+ *
+ * Used to communicate with bpf programs to allow checking or altering certain values.
+ * The end_offset allows the bpf verifier to check boundaries statically. This reflects
+ * the ends of the buffer. size shows the length that was actually used.
+ *
+ */
+
+/** One input argument of a request */
+struct fuse_bpf_in_arg {
+	uint32_t size;
+	const void *value;
+	const void *end_offset;
+};
+
+/** One output argument of a request */
+struct fuse_bpf_arg {
+	uint32_t size;
+	void *value;
+	void *end_offset;
+};
+
+#define FUSE_MAX_IN_ARGS 5
+#define FUSE_MAX_OUT_ARGS 3
+
+#define FUSE_BPF_FORCE (1 << 0)
+#define FUSE_BPF_OUT_ARGVAR (1 << 6)
+
+struct fuse_bpf_args {
+	uint64_t nodeid;
+	uint32_t opcode;
+	uint32_t error_in;
+	uint32_t in_numargs;
+	uint32_t out_numargs;
+	uint32_t flags;
+	struct fuse_bpf_in_arg in_args[FUSE_MAX_IN_ARGS];
+	struct fuse_bpf_arg out_args[FUSE_MAX_OUT_ARGS];
+};
+
+#define FUSE_BPF_USER_FILTER	1
+#define FUSE_BPF_BACKING	2
+#define FUSE_BPF_POST_FILTER	4
+
+#define FUSE_OPCODE_FILTER	0x0ffff
+#define FUSE_PREFILTER		0x10000
+#define FUSE_POSTFILTER		0x20000
+
+struct bpf_prog *fuse_get_bpf_prog(struct file *file);
+
+#endif  /* _LINUX_ANDROID_FUSE_H */
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
index a887e58..d331249 100644
--- a/include/uapi/linux/bpf.h
+++ b/include/uapi/linux/bpf.h
@@ -949,6 +949,18 @@
 	BPF_PROG_TYPE_LSM,
 	BPF_PROG_TYPE_SK_LOOKUP,
 	BPF_PROG_TYPE_SYSCALL, /* a program that can execute syscalls */
+
+#ifndef __GENKSYMS__
+	/*
+	 * Until fuse-bpf is upstreamed, this value must be at the end to allow for
+	 * other recently-added upstreamed values to be correct.
+	 * This works because no one should use this value directly, rather they must
+	 * read the value from /sys/fs/fuse/bpf_prog_type_fuse
+	 * Please maintain this value at the end of the list until fuse-bpf is
+	 * upstreamed.
+	 */
+	BPF_PROG_TYPE_FUSE,
+#endif
 };
 
 enum bpf_attach_type {
diff --git a/include/uapi/linux/const.h b/include/uapi/linux/const.h
index a429381..af2a44c 100644
--- a/include/uapi/linux/const.h
+++ b/include/uapi/linux/const.h
@@ -28,7 +28,7 @@
 #define _BITUL(x)	(_UL(1) << (x))
 #define _BITULL(x)	(_ULL(1) << (x))
 
-#define __ALIGN_KERNEL(x, a)		__ALIGN_KERNEL_MASK(x, (__typeof__(x))(a) - 1)
+#define __ALIGN_KERNEL(x, a)		__ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1)
 #define __ALIGN_KERNEL_MASK(x, mask)	(((x) + (mask)) & ~(mask))
 
 #define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
diff --git a/include/uapi/linux/dm-user.h b/include/uapi/linux/dm-user.h
new file mode 100644
index 0000000..6d8f535b
--- /dev/null
+++ b/include/uapi/linux/dm-user.h
@@ -0,0 +1,68 @@
+/* SPDX-License-Identifier: LGPL-2.0+ WITH Linux-syscall-note */
+/*
+ * Copyright (C) 2020 Google, Inc
+ * Copyright (C) 2020 Palmer Dabbelt <palmerdabbelt@google.com>
+ */
+
+#ifndef _LINUX_DM_USER_H
+#define _LINUX_DM_USER_H
+
+#include <linux/types.h>
+
+/*
+ * dm-user proxies device mapper ops between the kernel and userspace.  It's
+ * essentially just an RPC mechanism: all kernel calls create a request,
+ * userspace handles that with a response.  Userspace obtains requests via
+ * read() and provides responses via write().
+ *
+ * See Documentation/block/dm-user.rst for more information.
+ */
+
+#define DM_USER_REQ_MAP_READ 0
+#define DM_USER_REQ_MAP_WRITE 1
+#define DM_USER_REQ_MAP_FLUSH 2
+#define DM_USER_REQ_MAP_DISCARD 3
+#define DM_USER_REQ_MAP_SECURE_ERASE 4
+#define DM_USER_REQ_MAP_WRITE_SAME 5
+#define DM_USER_REQ_MAP_WRITE_ZEROES 6
+#define DM_USER_REQ_MAP_ZONE_OPEN 7
+#define DM_USER_REQ_MAP_ZONE_CLOSE 8
+#define DM_USER_REQ_MAP_ZONE_FINISH 9
+#define DM_USER_REQ_MAP_ZONE_APPEND 10
+#define DM_USER_REQ_MAP_ZONE_RESET 11
+#define DM_USER_REQ_MAP_ZONE_RESET_ALL 12
+
+#define DM_USER_REQ_MAP_FLAG_FAILFAST_DEV 0x00001
+#define DM_USER_REQ_MAP_FLAG_FAILFAST_TRANSPORT 0x00002
+#define DM_USER_REQ_MAP_FLAG_FAILFAST_DRIVER 0x00004
+#define DM_USER_REQ_MAP_FLAG_SYNC 0x00008
+#define DM_USER_REQ_MAP_FLAG_META 0x00010
+#define DM_USER_REQ_MAP_FLAG_PRIO 0x00020
+#define DM_USER_REQ_MAP_FLAG_NOMERGE 0x00040
+#define DM_USER_REQ_MAP_FLAG_IDLE 0x00080
+#define DM_USER_REQ_MAP_FLAG_INTEGRITY 0x00100
+#define DM_USER_REQ_MAP_FLAG_FUA 0x00200
+#define DM_USER_REQ_MAP_FLAG_PREFLUSH 0x00400
+#define DM_USER_REQ_MAP_FLAG_RAHEAD 0x00800
+#define DM_USER_REQ_MAP_FLAG_BACKGROUND 0x01000
+#define DM_USER_REQ_MAP_FLAG_NOWAIT 0x02000
+#define DM_USER_REQ_MAP_FLAG_CGROUP_PUNT 0x04000
+#define DM_USER_REQ_MAP_FLAG_NOUNMAP 0x08000
+#define DM_USER_REQ_MAP_FLAG_HIPRI 0x10000
+#define DM_USER_REQ_MAP_FLAG_DRV 0x20000
+#define DM_USER_REQ_MAP_FLAG_SWAP 0x40000
+
+#define DM_USER_RESP_SUCCESS 0
+#define DM_USER_RESP_ERROR 1
+#define DM_USER_RESP_UNSUPPORTED 2
+
+struct dm_user_message {
+	__u64 seq;
+	__u64 type;
+	__u64 flags;
+	__u64 sector;
+	__u64 len;
+	__u8 buf[];
+};
+
+#endif
diff --git a/include/uapi/linux/elf.h b/include/uapi/linux/elf.h
index 61bf477..4fb5099 100644
--- a/include/uapi/linux/elf.h
+++ b/include/uapi/linux/elf.h
@@ -40,6 +40,9 @@
 
 #define PT_GNU_STACK	(PT_LOOS + 0x474e551)
 
+/* ARM MTE memory tag segment type */
+#define PT_AARCH64_MEMTAG_MTE	(PT_LOPROC + 0x2)
+
 /*
  * Extended Numbering
  *
diff --git a/include/uapi/linux/fscrypt.h b/include/uapi/linux/fscrypt.h
index 9f4428b..5b0918f 100644
--- a/include/uapi/linux/fscrypt.h
+++ b/include/uapi/linux/fscrypt.h
@@ -27,7 +27,8 @@
 #define FSCRYPT_MODE_AES_128_CBC		5
 #define FSCRYPT_MODE_AES_128_CTS		6
 #define FSCRYPT_MODE_ADIANTUM			9
-/* If adding a mode number > 9, update FSCRYPT_MODE_MAX in fscrypt_private.h */
+#define FSCRYPT_MODE_AES_256_HCTR2		10
+/* If adding a mode number > 10, update FSCRYPT_MODE_MAX in fscrypt_private.h */
 
 /*
  * Legacy policy version; ad-hoc KDF and no key verification.
@@ -124,7 +125,10 @@
 	struct fscrypt_key_specifier key_spec;
 	__u32 raw_size;
 	__u32 key_id;
-	__u32 __reserved[8];
+	__u32 __reserved[7];
+	/* N.B.: "temporary" flag, not reserved upstream */
+#define __FSCRYPT_ADD_KEY_FLAG_HW_WRAPPED		0x00000001
+	__u32 __flags;
 	__u8 raw[];
 };
 
diff --git a/include/uapi/linux/fuse.h b/include/uapi/linux/fuse.h
index 36ed092..99b9583 100644
--- a/include/uapi/linux/fuse.h
+++ b/include/uapi/linux/fuse.h
@@ -184,6 +184,12 @@
  *
  *  7.34
  *  - add FUSE_SYNCFS
+ *
+ *  7.36
+ *  - extend fuse_init_in with reserved fields, add FUSE_INIT_EXT init flag
+ *  - add flags2 to fuse_init_in and fuse_init_out
+ *  - add FUSE_SECURITY_CTX init flag
+ *  - add security context to create, mkdir, symlink, and mknod requests
  */
 
 #ifndef _LINUX_FUSE_H
@@ -219,7 +225,7 @@
 #define FUSE_KERNEL_VERSION 7
 
 /** Minor version number of this interface */
-#define FUSE_KERNEL_MINOR_VERSION 34
+#define FUSE_KERNEL_MINOR_VERSION 36
 
 /** The node ID of the root inode */
 #define FUSE_ROOT_ID 1
@@ -336,6 +342,9 @@
  *			write/truncate sgid is killed only if file has group
  *			execute permission. (Same as Linux VFS behavior).
  * FUSE_SETXATTR_EXT:	Server supports extended struct fuse_setxattr_in
+ * FUSE_INIT_EXT: extended fuse_init_in request
+ * FUSE_SECURITY_CTX:	add security context to create, mkdir, symlink, and
+ *			mknod
  */
 #define FUSE_ASYNC_READ		(1 << 0)
 #define FUSE_POSIX_LOCKS	(1 << 1)
@@ -367,6 +376,10 @@
 #define FUSE_SUBMOUNTS		(1 << 27)
 #define FUSE_HANDLE_KILLPRIV_V2	(1 << 28)
 #define FUSE_SETXATTR_EXT	(1 << 29)
+#define FUSE_INIT_EXT		(1 << 30)
+#define FUSE_PASSTHROUGH	(1 << 31)
+/* bits 32..63 get shifted down 32 bits into the flags2 field */
+#define FUSE_SECURITY_CTX	(1ULL << 32)
 
 /**
  * CUSE INIT request/reply flags
@@ -513,6 +526,7 @@
 	FUSE_SETUPMAPPING	= 48,
 	FUSE_REMOVEMAPPING	= 49,
 	FUSE_SYNCFS		= 50,
+	FUSE_CANONICAL_PATH	= 2016,
 
 	/* CUSE specific operations */
 	CUSE_INIT		= 4096,
@@ -639,7 +653,7 @@
 struct fuse_open_out {
 	uint64_t	fh;
 	uint32_t	open_flags;
-	uint32_t	padding;
+	uint32_t	passthrough_fh;
 };
 
 struct fuse_release_in {
@@ -736,6 +750,8 @@
 	uint32_t	minor;
 	uint32_t	max_readahead;
 	uint32_t	flags;
+	uint32_t	flags2;
+	uint32_t	unused[11];
 };
 
 #define FUSE_COMPAT_INIT_OUT_SIZE 8
@@ -752,7 +768,8 @@
 	uint32_t	time_gran;
 	uint16_t	max_pages;
 	uint16_t	map_alignment;
-	uint32_t	unused[8];
+	uint32_t	flags2;
+	uint32_t	unused[7];
 };
 
 #define CUSE_INIT_INFO_MAX 4096
@@ -860,9 +877,12 @@
 	char name[];
 };
 
-#define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
-#define FUSE_DIRENT_ALIGN(x) \
+/* Align variable length records to 64bit boundary */
+#define FUSE_REC_ALIGN(x) \
 	(((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
+
+#define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
+#define FUSE_DIRENT_ALIGN(x) FUSE_REC_ALIGN(x)
 #define FUSE_DIRENT_SIZE(d) \
 	FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
 
@@ -923,6 +943,9 @@
 /* Device ioctls: */
 #define FUSE_DEV_IOC_MAGIC		229
 #define FUSE_DEV_IOC_CLONE		_IOR(FUSE_DEV_IOC_MAGIC, 0, uint32_t)
+/* 127 is reserved for the V1 interface implementation in Android (deprecated) */
+/* 126 is reserved for the V2 interface implementation in Android */
+#define FUSE_DEV_IOC_PASSTHROUGH_OPEN	_IOW(FUSE_DEV_IOC_MAGIC, 126, __u32)
 
 struct fuse_lseek_in {
 	uint64_t	fh;
@@ -979,4 +1002,26 @@
 	uint64_t	padding;
 };
 
+/*
+ * For each security context, send fuse_secctx with size of security context
+ * fuse_secctx will be followed by security context name and this in turn
+ * will be followed by actual context label.
+ * fuse_secctx, name, context
+ */
+struct fuse_secctx {
+	uint32_t	size;
+	uint32_t	padding;
+};
+
+/*
+ * Contains the information about how many fuse_secctx structures are being
+ * sent and what's the total size of all security contexts (including
+ * size of fuse_secctx_header).
+ *
+ */
+struct fuse_secctx_header {
+	uint32_t	size;
+	uint32_t	nr_secctx;
+};
+
 #endif /* _LINUX_FUSE_H */
diff --git a/include/uapi/linux/icmp.h b/include/uapi/linux/icmp.h
index 163c099..d3242d5 100644
--- a/include/uapi/linux/icmp.h
+++ b/include/uapi/linux/icmp.h
@@ -97,7 +97,11 @@
 	} echo;
 	__be32	gateway;
 	struct {
+#ifdef __BIONIC__
+		__be16	__linux_unused;
+#else
 		__be16	__unused;
+#endif
 		__be16	mtu;
 	} frag;
 	__u8	reserved[4];
diff --git a/include/uapi/linux/incrementalfs.h b/include/uapi/linux/incrementalfs.h
new file mode 100644
index 0000000..f8338af
--- /dev/null
+++ b/include/uapi/linux/incrementalfs.h
@@ -0,0 +1,590 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
+ * Userspace interface for Incremental FS.
+ *
+ * Incremental FS is special-purpose Linux virtual file system that allows
+ * execution of a program while its binary and resource files are still being
+ * lazily downloaded over the network, USB etc.
+ *
+ * Copyright 2019 Google LLC
+ */
+#ifndef _UAPI_LINUX_INCREMENTALFS_H
+#define _UAPI_LINUX_INCREMENTALFS_H
+
+#include <linux/limits.h>
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#include <linux/xattr.h>
+
+/* ===== constants ===== */
+#define INCFS_NAME "incremental-fs"
+
+/*
+ * Magic number used in file header and in memory superblock
+ * Note that it is a 5 byte unsigned long. Thus on 32 bit kernels, it is
+ * truncated to a 4 byte number
+ */
+#define INCFS_MAGIC_NUMBER (0x5346434e49ul & ULONG_MAX)
+
+#define INCFS_DATA_FILE_BLOCK_SIZE 4096
+#define INCFS_HEADER_VER 1
+
+/* TODO: This value is assumed in incfs_copy_signature_info_from_user to be the
+ * actual signature length. Set back to 64 when fixed.
+ */
+#define INCFS_MAX_HASH_SIZE 32
+#define INCFS_MAX_FILE_ATTR_SIZE 512
+
+#define INCFS_INDEX_NAME ".index"
+#define INCFS_INCOMPLETE_NAME ".incomplete"
+#define INCFS_PENDING_READS_FILENAME ".pending_reads"
+#define INCFS_LOG_FILENAME ".log"
+#define INCFS_BLOCKS_WRITTEN_FILENAME ".blocks_written"
+#define INCFS_XATTR_ID_NAME (XATTR_USER_PREFIX "incfs.id")
+#define INCFS_XATTR_SIZE_NAME (XATTR_USER_PREFIX "incfs.size")
+#define INCFS_XATTR_METADATA_NAME (XATTR_USER_PREFIX "incfs.metadata")
+#define INCFS_XATTR_VERITY_NAME (XATTR_USER_PREFIX "incfs.verity")
+
+#define INCFS_MAX_SIGNATURE_SIZE 8096
+#define INCFS_SIGNATURE_VERSION 2
+#define INCFS_SIGNATURE_SECTIONS 2
+
+#define INCFS_IOCTL_BASE_CODE 'g'
+
+/* ===== ioctl requests on the command dir ===== */
+
+/*
+ * Create a new file
+ * May only be called on .pending_reads file
+ */
+#define INCFS_IOC_CREATE_FILE \
+	_IOWR(INCFS_IOCTL_BASE_CODE, 30, struct incfs_new_file_args)
+
+/* Read file signature */
+#define INCFS_IOC_READ_FILE_SIGNATURE                                          \
+	_IOR(INCFS_IOCTL_BASE_CODE, 31, struct incfs_get_file_sig_args)
+
+/*
+ * Fill in one or more data block. This may only be called on a handle
+ * passed as a parameter to INCFS_IOC_PERMIT_FILLING
+ *
+ * Returns number of blocks filled in, or error if none were
+ */
+#define INCFS_IOC_FILL_BLOCKS                                                  \
+	_IOR(INCFS_IOCTL_BASE_CODE, 32, struct incfs_fill_blocks)
+
+/*
+ * Permit INCFS_IOC_FILL_BLOCKS on the given file descriptor
+ * May only be called on .pending_reads file
+ *
+ * Returns 0 on success or error
+ */
+#define INCFS_IOC_PERMIT_FILL                                                  \
+	_IOW(INCFS_IOCTL_BASE_CODE, 33, struct incfs_permit_fill)
+
+/*
+ * Fills buffer with ranges of populated blocks
+ *
+ * Returns 0 if all ranges written
+ *	   error otherwise
+ *
+ *	   Either way, range_buffer_size_out is set to the number
+ *	   of bytes written. Should be set to 0 by caller. The ranges
+ *	   filled are valid, but if an error was returned there might
+ *	   be more ranges to come.
+ *
+ *	   Ranges are ranges of filled blocks:
+ *
+ *	   1 2 7 9
+ *
+ *	   means blocks 1, 2, 7, 8, 9 are filled, 0, 3, 4, 5, 6 and 10 on
+ *	   are not
+ *
+ *	   If hashing is enabled for the file, the hash blocks are simply
+ *	   treated as though they immediately followed the data blocks.
+ */
+#define INCFS_IOC_GET_FILLED_BLOCKS                                            \
+	_IOR(INCFS_IOCTL_BASE_CODE, 34, struct incfs_get_filled_blocks_args)
+
+/*
+ * Creates a new mapped file
+ * May only be called on .pending_reads file
+ */
+#define INCFS_IOC_CREATE_MAPPED_FILE \
+	_IOWR(INCFS_IOCTL_BASE_CODE, 35, struct incfs_create_mapped_file_args)
+
+/*
+ * Get number of blocks, total and filled
+ * May only be called on .pending_reads file
+ */
+#define INCFS_IOC_GET_BLOCK_COUNT \
+	_IOR(INCFS_IOCTL_BASE_CODE, 36, struct incfs_get_block_count_args)
+
+/*
+ * Get per UID read timeouts
+ * May only be called on .pending_reads file
+ */
+#define INCFS_IOC_GET_READ_TIMEOUTS \
+	_IOR(INCFS_IOCTL_BASE_CODE, 37, struct incfs_get_read_timeouts_args)
+
+/*
+ * Set per UID read timeouts
+ * May only be called on .pending_reads file
+ */
+#define INCFS_IOC_SET_READ_TIMEOUTS \
+	_IOW(INCFS_IOCTL_BASE_CODE, 38, struct incfs_set_read_timeouts_args)
+
+/*
+ * Get last read error
+ * May only be called on .pending_reads file
+ */
+#define INCFS_IOC_GET_LAST_READ_ERROR \
+	_IOW(INCFS_IOCTL_BASE_CODE, 39, struct incfs_get_last_read_error_args)
+
+/* ===== sysfs feature flags ===== */
+/*
+ * Each flag is represented by a file in /sys/fs/incremental-fs/features
+ * If the file exists the feature is supported
+ * Also the file contents will be the line "supported"
+ */
+
+/*
+ * Basic flag stating that the core incfs file system is available
+ */
+#define INCFS_FEATURE_FLAG_COREFS "corefs"
+
+/*
+ * zstd compression support
+ */
+#define INCFS_FEATURE_FLAG_ZSTD "zstd"
+
+/*
+ * v2 feature set support. Covers:
+ *   INCFS_IOC_CREATE_MAPPED_FILE
+ *   INCFS_IOC_GET_BLOCK_COUNT
+ *   INCFS_IOC_GET_READ_TIMEOUTS/INCFS_IOC_SET_READ_TIMEOUTS
+ *   .blocks_written status file
+ *   .incomplete folder
+ *   report_uid mount option
+ */
+#define INCFS_FEATURE_FLAG_V2 "v2"
+
+enum incfs_compression_alg {
+	COMPRESSION_NONE = 0,
+	COMPRESSION_LZ4 = 1,
+	COMPRESSION_ZSTD = 2,
+};
+
+enum incfs_block_flags {
+	INCFS_BLOCK_FLAGS_NONE = 0,
+	INCFS_BLOCK_FLAGS_HASH = 1,
+};
+
+typedef struct {
+	__u8 bytes[16];
+} incfs_uuid_t __attribute__((aligned (8)));
+
+/*
+ * Description of a pending read. A pending read - a read call by
+ * a userspace program for which the filesystem currently doesn't have data.
+ *
+ * Reads from .pending_reads and .log return an array of these structure
+ */
+struct incfs_pending_read_info {
+	/* Id of a file that is being read from. */
+	incfs_uuid_t file_id;
+
+	/* A number of microseconds since system boot to the read. */
+	__aligned_u64 timestamp_us;
+
+	/* Index of a file block that is being read. */
+	__u32 block_index;
+
+	/* A serial number of this pending read. */
+	__u32 serial_number;
+};
+
+/*
+ * Description of a pending read. A pending read - a read call by
+ * a userspace program for which the filesystem currently doesn't have data.
+ *
+ * This version of incfs_pending_read_info is used whenever the file system is
+ * mounted with the report_uid flag
+ */
+struct incfs_pending_read_info2 {
+	/* Id of a file that is being read from. */
+	incfs_uuid_t file_id;
+
+	/* A number of microseconds since system boot to the read. */
+	__aligned_u64 timestamp_us;
+
+	/* Index of a file block that is being read. */
+	__u32 block_index;
+
+	/* A serial number of this pending read. */
+	__u32 serial_number;
+
+	/* The UID of the reading process */
+	__u32 uid;
+
+	__u32 reserved;
+};
+
+/*
+ * Description of a data or hash block to add to a data file.
+ */
+struct incfs_fill_block {
+	/* Index of a data block. */
+	__u32 block_index;
+
+	/* Length of data */
+	__u32 data_len;
+
+	/*
+	 * A pointer to an actual data for the block.
+	 *
+	 * Equivalent to: __u8 *data;
+	 */
+	__aligned_u64 data;
+
+	/*
+	 * Compression algorithm used to compress the data block.
+	 * Values from enum incfs_compression_alg.
+	 */
+	__u8 compression;
+
+	/* Values from enum incfs_block_flags */
+	__u8 flags;
+
+	__u16 reserved1;
+
+	__u32 reserved2;
+
+	__aligned_u64 reserved3;
+};
+
+/*
+ * Description of a number of blocks to add to a data file
+ *
+ * Argument for INCFS_IOC_FILL_BLOCKS
+ */
+struct incfs_fill_blocks {
+	/* Number of blocks */
+	__u64 count;
+
+	/* A pointer to an array of incfs_fill_block structs */
+	__aligned_u64 fill_blocks;
+};
+
+/*
+ * Permit INCFS_IOC_FILL_BLOCKS on the given file descriptor
+ * May only be called on .pending_reads file
+ *
+ * Argument for INCFS_IOC_PERMIT_FILL
+ */
+struct incfs_permit_fill {
+	/* File to permit fills on */
+	__u32 file_descriptor;
+};
+
+enum incfs_hash_tree_algorithm {
+	INCFS_HASH_TREE_NONE = 0,
+	INCFS_HASH_TREE_SHA256 = 1
+};
+
+/*
+ * Create a new file or directory.
+ */
+struct incfs_new_file_args {
+	/* Id of a file to create. */
+	incfs_uuid_t file_id;
+
+	/*
+	 * Total size of the new file. Ignored if S_ISDIR(mode).
+	 */
+	__aligned_u64 size;
+
+	/*
+	 * File mode. Permissions and dir flag.
+	 */
+	__u16 mode;
+
+	__u16 reserved1;
+
+	__u32 reserved2;
+
+	/*
+	 * A pointer to a null-terminated relative path to the file's parent
+	 * dir.
+	 * Max length: PATH_MAX
+	 *
+	 * Equivalent to: char *directory_path;
+	 */
+	__aligned_u64 directory_path;
+
+	/*
+	 * A pointer to a null-terminated file's name.
+	 * Max length: PATH_MAX
+	 *
+	 * Equivalent to: char *file_name;
+	 */
+	__aligned_u64 file_name;
+
+	/*
+	 * A pointer to a file attribute to be set on creation.
+	 *
+	 * Equivalent to: u8 *file_attr;
+	 */
+	__aligned_u64 file_attr;
+
+	/*
+	 * Length of the data buffer specfied by file_attr.
+	 * Max value: INCFS_MAX_FILE_ATTR_SIZE
+	 */
+	__u32 file_attr_len;
+
+	__u32 reserved4;
+
+	/*
+	 * Points to an APK V4 Signature data blob
+	 * Signature must have two sections
+	 * Format is:
+	 *	u32 version
+	 *	u32 size_of_hash_info_section
+	 *	u8 hash_info_section[]
+	 *	u32 size_of_signing_info_section
+	 *	u8 signing_info_section[]
+	 *
+	 * Note that incfs does not care about what is in signing_info_section
+	 *
+	 * hash_info_section has following format:
+	 *	u32 hash_algorithm; // Must be SHA256 == 1
+	 *	u8 log2_blocksize;  // Must be 12 for 4096 byte blocks
+	 *	u32 salt_size;
+	 *	u8 salt[];
+	 *	u32 hash_size;
+	 *	u8 root_hash[];
+	 */
+	__aligned_u64 signature_info;
+
+	/* Size of signature_info */
+	__aligned_u64 signature_size;
+
+	__aligned_u64 reserved6;
+};
+
+/*
+ * Request a digital signature blob for a given file.
+ * Argument for INCFS_IOC_READ_FILE_SIGNATURE ioctl
+ */
+struct incfs_get_file_sig_args {
+	/*
+	 * A pointer to the data buffer to save an signature blob to.
+	 *
+	 * Equivalent to: u8 *file_signature;
+	 */
+	__aligned_u64 file_signature;
+
+	/* Size of the buffer at file_signature. */
+	__u32 file_signature_buf_size;
+
+	/*
+	 * Number of bytes save file_signature buffer.
+	 * It is set after ioctl done.
+	 */
+	__u32 file_signature_len_out;
+};
+
+struct incfs_filled_range {
+	__u32 begin;
+	__u32 end;
+};
+
+/*
+ * Request ranges of filled blocks
+ * Argument for INCFS_IOC_GET_FILLED_BLOCKS
+ */
+struct incfs_get_filled_blocks_args {
+	/*
+	 * A buffer to populate with ranges of filled blocks
+	 *
+	 * Equivalent to struct incfs_filled_ranges *range_buffer
+	 */
+	__aligned_u64 range_buffer;
+
+	/* Size of range_buffer */
+	__u32 range_buffer_size;
+
+	/* Start index to read from */
+	__u32 start_index;
+
+	/*
+	 * End index to read to. 0 means read to end. This is a range,
+	 * so incfs will read from start_index to end_index - 1
+	 */
+	__u32 end_index;
+
+	/* Actual number of blocks in file */
+	__u32 total_blocks_out;
+
+	/* The  number of data blocks in file */
+	__u32 data_blocks_out;
+
+	/* Number of bytes written to range buffer */
+	__u32 range_buffer_size_out;
+
+	/* Sector scanned up to, if the call was interrupted */
+	__u32 index_out;
+};
+
+/*
+ * Create a new mapped file
+ * Argument for INCFS_IOC_CREATE_MAPPED_FILE
+ */
+struct incfs_create_mapped_file_args {
+	/*
+	 * Total size of the new file.
+	 */
+	__aligned_u64 size;
+
+	/*
+	 * File mode. Permissions and dir flag.
+	 */
+	__u16 mode;
+
+	__u16 reserved1;
+
+	__u32 reserved2;
+
+	/*
+	 * A pointer to a null-terminated relative path to the incfs mount
+	 * point
+	 * Max length: PATH_MAX
+	 *
+	 * Equivalent to: char *directory_path;
+	 */
+	__aligned_u64 directory_path;
+
+	/*
+	 * A pointer to a null-terminated file name.
+	 * Max length: PATH_MAX
+	 *
+	 * Equivalent to: char *file_name;
+	 */
+	__aligned_u64 file_name;
+
+	/* Id of source file to map. */
+	incfs_uuid_t source_file_id;
+
+	/*
+	 * Offset in source file to start mapping. Must be a multiple of
+	 * INCFS_DATA_FILE_BLOCK_SIZE
+	 */
+	__aligned_u64 source_offset;
+};
+
+/*
+ * Get information about the blocks in this file
+ * Argument for INCFS_IOC_GET_BLOCK_COUNT
+ */
+struct incfs_get_block_count_args {
+	/* Total number of data blocks in the file */
+	__u32 total_data_blocks_out;
+
+	/* Number of filled data blocks in the file */
+	__u32 filled_data_blocks_out;
+
+	/* Total number of hash blocks in the file */
+	__u32 total_hash_blocks_out;
+
+	/* Number of filled hash blocks in the file */
+	__u32 filled_hash_blocks_out;
+};
+
+/* Description of timeouts for one UID */
+struct incfs_per_uid_read_timeouts {
+	/* UID to apply these timeouts to */
+	__u32 uid;
+
+	/*
+	 * Min time in microseconds to read any block. Note that this doesn't
+	 * apply to reads which are satisfied from the page cache.
+	 */
+	__u32 min_time_us;
+
+	/*
+	 * Min time in microseconds to satisfy a pending read. Any pending read
+	 * which is filled before this time will be delayed so that the total
+	 * read time >= this value.
+	 */
+	__u32 min_pending_time_us;
+
+	/*
+	 * Max time in microseconds to satisfy a pending read before the read
+	 * times out. If set to U32_MAX, defaults to mount options
+	 * read_timeout_ms * 1000. Must be >= min_pending_time_us
+	 */
+	__u32 max_pending_time_us;
+};
+
+/*
+ * Get the read timeouts array
+ * Argument for INCFS_IOC_GET_READ_TIMEOUTS
+ */
+struct incfs_get_read_timeouts_args {
+	/*
+	 * A pointer to a buffer to fill with the current timeouts
+	 *
+	 * Equivalent to struct incfs_per_uid_read_timeouts *
+	 */
+	__aligned_u64 timeouts_array;
+
+	/* Size of above buffer in bytes */
+	__u32 timeouts_array_size;
+
+	/* Size used in bytes, or size needed if -ENOMEM returned */
+	__u32 timeouts_array_size_out;
+};
+
+/*
+ * Set the read timeouts array
+ * Arguments for INCFS_IOC_SET_READ_TIMEOUTS
+ */
+struct incfs_set_read_timeouts_args {
+	/*
+	 * A pointer to an array containing the new timeouts
+	 * This will replace any existing timeouts
+	 *
+	 * Equivalent to struct incfs_per_uid_read_timeouts *
+	 */
+	__aligned_u64 timeouts_array;
+
+	/* Size of above array in bytes. Must be < 256 */
+	__u32 timeouts_array_size;
+};
+
+/*
+ * Get last read error struct
+ * Arguments for INCFS_IOC_GET_LAST_READ_ERROR
+ */
+struct incfs_get_last_read_error_args {
+	/* File id of last file that had a read error */
+	incfs_uuid_t	file_id_out;
+
+	/* Time of last read error, in us, from CLOCK_MONOTONIC */
+	__u64	time_us_out;
+
+	/* Index of page that was being read at last read error */
+	__u32	page_out;
+
+	/* errno of last read error */
+	__u32	errno_out;
+
+	/* uid of last read error */
+	__u32	uid_out;
+
+	__u32	reserved1;
+	__u64	reserved2;
+};
+
+#endif /* _UAPI_LINUX_INCREMENTALFS_H */
diff --git a/include/uapi/linux/ip.h b/include/uapi/linux/ip.h
index 860bbf6..51717b9 100644
--- a/include/uapi/linux/ip.h
+++ b/include/uapi/linux/ip.h
@@ -101,10 +101,8 @@
 	__u8	ttl;
 	__u8	protocol;
 	__sum16	check;
-	__struct_group(/* no tag */, addrs, /* no attrs */,
-		__be32	saddr;
-		__be32	daddr;
-	);
+	__be32	saddr;
+	__be32	daddr;
 	/*The options start here. */
 };
 
diff --git a/include/uapi/linux/ipv6.h b/include/uapi/linux/ipv6.h
index 39c6add..6fa1e9a 100644
--- a/include/uapi/linux/ipv6.h
+++ b/include/uapi/linux/ipv6.h
@@ -131,10 +131,8 @@
 	__u8			nexthdr;
 	__u8			hop_limit;
 
-	__struct_group(/* no tag */, addrs, /* no attrs */,
-		struct	in6_addr	saddr;
-		struct	in6_addr	daddr;
-	);
+	struct	in6_addr	saddr;
+	struct	in6_addr	daddr;
 };
 
 
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
index a067410..f7828c9 100644
--- a/include/uapi/linux/kvm.h
+++ b/include/uapi/linux/kvm.h
@@ -863,6 +863,12 @@
 #define KVM_VM_TYPE_ARM_IPA_SIZE_MASK	0xffULL
 #define KVM_VM_TYPE_ARM_IPA_SIZE(x)		\
 	((x) & KVM_VM_TYPE_ARM_IPA_SIZE_MASK)
+
+#define KVM_VM_TYPE_ARM_PROTECTED	(1UL << 31)
+
+#define KVM_VM_TYPE_MASK	(KVM_VM_TYPE_ARM_IPA_SIZE_MASK | \
+				 KVM_VM_TYPE_ARM_PROTECTED)
+
 /*
  * ioctls for /dev/kvm fds:
  */
@@ -1112,6 +1118,7 @@
 #define KVM_CAP_BINARY_STATS_FD 203
 #define KVM_CAP_EXIT_ON_EMULATION_FAILURE 204
 #define KVM_CAP_ARM_MTE 205
+#define KVM_CAP_ARM_PROTECTED_VM 0xffbadab1
 
 #ifdef KVM_CAP_IRQ_ROUTING
 
diff --git a/include/uapi/linux/netfilter/xt_IDLETIMER.h b/include/uapi/linux/netfilter/xt_IDLETIMER.h
index 7bfb31a..104ac32 100644
--- a/include/uapi/linux/netfilter/xt_IDLETIMER.h
+++ b/include/uapi/linux/netfilter/xt_IDLETIMER.h
@@ -33,7 +33,7 @@
 
 	char label[MAX_IDLETIMER_LABEL_SIZE];
 
-	__u8 send_nl_msg;   /* unused: for compatibility with Android */
+	__u8 send_nl_msg;
 	__u8 timer_type;
 
 	/* for kernel module internal use only */
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index c2efea9..73fd223 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -11,7 +11,7 @@
  * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
  * Copyright 2008 Colin McCabe <colin@cozybit.com>
  * Copyright 2015-2017	Intel Deutschland GmbH
- * Copyright (C) 2018-2021 Intel Corporation
+ * Copyright (C) 2018-2022 Intel Corporation
  *
  * Permission to use, copy, modify, and/or distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -301,6 +301,40 @@
  */
 
 /**
+ * DOC: FILS shared key crypto offload
+ *
+ * This feature is applicable to drivers running in AP mode.
+ *
+ * FILS shared key crypto offload can be advertised by drivers by setting
+ * @NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD flag. The drivers that support
+ * FILS shared key crypto offload should be able to encrypt and decrypt
+ * association frames for FILS shared key authentication as per IEEE 802.11ai.
+ * With this capability, for FILS key derivation, drivers depend on userspace.
+ *
+ * After FILS key derivation, userspace shares the FILS AAD details with the
+ * driver and the driver stores the same to use in decryption of association
+ * request and in encryption of association response. The below parameters
+ * should be given to the driver in %NL80211_CMD_SET_FILS_AAD.
+ *	%NL80211_ATTR_MAC - STA MAC address, used for storing FILS AAD per STA
+ *	%NL80211_ATTR_FILS_KEK - Used for encryption or decryption
+ *	%NL80211_ATTR_FILS_NONCES - Used for encryption or decryption
+ *			(STA Nonce 16 bytes followed by AP Nonce 16 bytes)
+ *
+ * Once the association is done, the driver cleans the FILS AAD data.
+ */
+
+/**
+ * DOC: Multi-Link Operation
+ *
+ * In Multi-Link Operation, a connection between to MLDs utilizes multiple
+ * links. To use this in nl80211, various commands and responses now need
+ * to or will include the new %NL80211_ATTR_MLO_LINKS attribute.
+ * Additionally, various commands that need to operate on a specific link
+ * now need to be given the %NL80211_ATTR_MLO_LINK_ID attribute, e.g. to
+ * use %NL80211_CMD_START_AP or similar functions.
+ */
+
+/**
  * enum nl80211_commands - supported nl80211 commands
  *
  * @NL80211_CMD_UNSPEC: unspecified command to catch errors
@@ -337,17 +371,28 @@
  * @NL80211_CMD_DEL_INTERFACE: Virtual interface was deleted, has attributes
  *	%NL80211_ATTR_IFINDEX and %NL80211_ATTR_WIPHY. Can also be sent from
  *	userspace to request deletion of a virtual interface, then requires
- *	attribute %NL80211_ATTR_IFINDEX.
+ *	attribute %NL80211_ATTR_IFINDEX. If multiple BSSID advertisements are
+ *	enabled using %NL80211_ATTR_MBSSID_CONFIG, %NL80211_ATTR_MBSSID_ELEMS,
+ *	and if this command is used for the transmitting interface, then all
+ *	the non-transmitting interfaces are deleted as well.
  *
  * @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified
- *	by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC.
+ *	by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC. %NL80211_ATTR_MAC
+ *	represents peer's MLD address for MLO pairwise key. For MLO group key,
+ *	the link is identified by %NL80211_ATTR_MLO_LINK_ID.
  * @NL80211_CMD_SET_KEY: Set key attributes %NL80211_ATTR_KEY_DEFAULT,
  *	%NL80211_ATTR_KEY_DEFAULT_MGMT, or %NL80211_ATTR_KEY_THRESHOLD.
+ *	For MLO connection, the link to set default key is identified by
+ *	%NL80211_ATTR_MLO_LINK_ID.
  * @NL80211_CMD_NEW_KEY: add a key with given %NL80211_ATTR_KEY_DATA,
  *	%NL80211_ATTR_KEY_IDX, %NL80211_ATTR_MAC, %NL80211_ATTR_KEY_CIPHER,
- *	and %NL80211_ATTR_KEY_SEQ attributes.
+ *	and %NL80211_ATTR_KEY_SEQ attributes. %NL80211_ATTR_MAC represents
+ *	peer's MLD address for MLO pairwise key. The link to add MLO
+ *	group key is identified by %NL80211_ATTR_MLO_LINK_ID.
  * @NL80211_CMD_DEL_KEY: delete a key identified by %NL80211_ATTR_KEY_IDX
- *	or %NL80211_ATTR_MAC.
+ *	or %NL80211_ATTR_MAC. %NL80211_ATTR_MAC represents peer's MLD address
+ *	for MLO pairwise key. The link to delete group key is identified by
+ *	%NL80211_ATTR_MLO_LINK_ID.
  *
  * @NL80211_CMD_GET_BEACON: (not used)
  * @NL80211_CMD_SET_BEACON: change the beacon on an access point interface
@@ -727,6 +772,13 @@
  *	%NL80211_ATTR_CSA_C_OFFSETS_TX is an array of offsets to CSA
  *	counters which will be updated to the current value. This attribute
  *	is used during CSA period.
+ *	For TX on an MLD, the frequency can be omitted and the link ID be
+ *	specified, or if transmitting to a known peer MLD (with MLD addresses
+ *	in the frame) both can be omitted and the link will be selected by
+ *	lower layers.
+ *	For RX notification, %NL80211_ATTR_RX_HW_TIMESTAMP may be included to
+ *	indicate the frame RX timestamp and %NL80211_ATTR_TX_HW_TIMESTAMP may
+ *	be included to indicate the ack TX timestamp.
  * @NL80211_CMD_FRAME_WAIT_CANCEL: When an off-channel TX was requested, this
  *	command may be used with the corresponding cookie to cancel the wait
  *	time if it is known that it is no longer necessary.  This command is
@@ -737,7 +789,9 @@
  *	transmitted with %NL80211_CMD_FRAME. %NL80211_ATTR_COOKIE identifies
  *	the TX command and %NL80211_ATTR_FRAME includes the contents of the
  *	frame. %NL80211_ATTR_ACK flag is included if the recipient acknowledged
- *	the frame.
+ *	the frame. %NL80211_ATTR_TX_HW_TIMESTAMP may be included to indicate the
+ *	tx timestamp and %NL80211_ATTR_RX_HW_TIMESTAMP may be included to
+ *	indicate the ack RX timestamp.
  * @NL80211_CMD_ACTION_TX_STATUS: Alias for @NL80211_CMD_FRAME_TX_STATUS for
  *	backward compatibility.
  *
@@ -1082,6 +1136,12 @@
  *	has been received. %NL80211_ATTR_FRAME is used to specify the
  *	frame contents.  The frame is the raw EAPoL data, without ethernet or
  *	802.11 headers.
+ *	For an MLD transmitter, the %NL80211_ATTR_MLO_LINK_ID may be given and
+ *	its effect will depend on the destination: If the destination is known
+ *	to be an MLD, this will be used as a hint to select the link to transmit
+ *	the frame on. If the destination is not an MLD, this will select both
+ *	the link to transmit on and the source address will be set to the link
+ *	address of that link.
  *	When used as an event indication %NL80211_ATTR_CONTROL_PORT_ETHERTYPE,
  *	%NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT and %NL80211_ATTR_MAC are added
  *	indicating the protocol type of the received frame; whether the frame
@@ -1106,6 +1166,23 @@
  *	%NL80211_ATTR_STATUS_CODE attribute in %NL80211_CMD_EXTERNAL_AUTH
  *	command interface.
  *
+ *	Host driver sends MLD address of the AP with %NL80211_ATTR_MLD_ADDR in
+ *	%NL80211_CMD_EXTERNAL_AUTH event to indicate user space to enable MLO
+ *	during the authentication offload in STA mode while connecting to MLD
+ *	APs. Host driver should check %NL80211_ATTR_MLO_SUPPORT flag capability
+ *	in %NL80211_CMD_CONNECT to know whether the user space supports enabling
+ *	MLO during the authentication offload or not.
+ *	User space should enable MLO during the authentication only when it
+ *	receives the AP MLD address in authentication offload request. User
+ *	space shouldn't enable MLO when the authentication offload request
+ *	doesn't indicate the AP MLD address even if the AP is MLO capable.
+ *	User space should use %NL80211_ATTR_MLD_ADDR as peer's MLD address and
+ *	interface address identified by %NL80211_ATTR_IFINDEX as self MLD
+ *	address. User space and host driver to use MLD addresses in RA, TA and
+ *	BSSID fields of the frames between them, and host driver translates the
+ *	MLD addresses to/from link addresses based on the link chosen for the
+ *	authentication.
+ *
  *	Host driver reports this status on an authentication failure to the
  *	user space through the connect result as the user space would have
  *	initiated the connection through the connect request.
@@ -1200,6 +1277,27 @@
  * @NL80211_CMD_COLOR_CHANGE_COMPLETED: Notify userland that the color change
  *	has completed
  *
+ * @NL80211_CMD_SET_FILS_AAD: Set FILS AAD data to the driver using -
+ *	&NL80211_ATTR_MAC - for STA MAC address
+ *	&NL80211_ATTR_FILS_KEK - for KEK
+ *	&NL80211_ATTR_FILS_NONCES - for FILS Nonces
+ *		(STA Nonce 16 bytes followed by AP Nonce 16 bytes)
+ *
+ * @NL80211_CMD_ASSOC_COMEBACK: notification about an association
+ *      temporal rejection with comeback. The event includes %NL80211_ATTR_MAC
+ *      to describe the BSSID address of the AP and %NL80211_ATTR_TIMEOUT to
+ *      specify the timeout value.
+ *
+ * @NL80211_CMD_ADD_LINK: Add a new link to an interface. The
+ *	%NL80211_ATTR_MLO_LINK_ID attribute is used for the new link.
+ * @NL80211_CMD_REMOVE_LINK: Remove a link from an interface. This may come
+ *	without %NL80211_ATTR_MLO_LINK_ID as an easy way to remove all links
+ *	in preparation for e.g. roaming to a regular (non-MLO) AP.
+ *
+ * @NL80211_CMD_ADD_LINK_STA: Add a link to an MLD station
+ * @NL80211_CMD_MODIFY_LINK_STA: Modify a link of an MLD station
+ * @NL80211_CMD_REMOVE_LINK_STA: Remove a link of an MLD station
+ *
  * @NL80211_CMD_MAX: highest used command number
  * @__NL80211_CMD_AFTER_LAST: internal use
  */
@@ -1440,6 +1538,23 @@
 	NL80211_CMD_COLOR_CHANGE_ABORTED,
 	NL80211_CMD_COLOR_CHANGE_COMPLETED,
 
+	NL80211_CMD_SET_FILS_AAD,
+
+	NL80211_CMD_ASSOC_COMEBACK,
+
+	NL80211_CMD_ADD_LINK,
+	NL80211_CMD_REMOVE_LINK,
+
+	NL80211_CMD_ADD_LINK_STA,
+	NL80211_CMD_MODIFY_LINK_STA,
+	NL80211_CMD_REMOVE_LINK_STA,
+
+	NL80211_CMD_RESERVED_DO_NOT_USE_6 = 153,
+	NL80211_CMD_RESERVED_DO_NOT_USE_7 = 154,
+	NL80211_CMD_RESERVED_DO_NOT_USE_8 = 155,
+	NL80211_CMD_RESERVED_DO_NOT_USE_9 = 156,
+	NL80211_CMD_RESERVED_DO_NOT_USE_10 = 157,
+
 	/* add new commands above here */
 
 	/* used to define NL80211_CMD_MAX below */
@@ -2299,8 +2414,10 @@
  *
  * @NL80211_ATTR_IFTYPE_EXT_CAPA: Nested attribute of the following attributes:
  *	%NL80211_ATTR_IFTYPE, %NL80211_ATTR_EXT_CAPA,
- *	%NL80211_ATTR_EXT_CAPA_MASK, to specify the extended capabilities per
- *	interface type.
+ *	%NL80211_ATTR_EXT_CAPA_MASK, to specify the extended capabilities and
+ *	other interface-type specific capabilities per interface type. For MLO,
+ *	%NL80211_ATTR_EML_CAPABILITY and %NL80211_ATTR_MLD_CAPA_AND_OPS are
+ *	present.
  *
  * @NL80211_ATTR_MU_MIMO_GROUP_DATA: array of 24 bytes that defines a MU-MIMO
  *	groupID for monitor mode.
@@ -2436,7 +2553,9 @@
  *	space supports external authentication. This attribute shall be used
  *	with %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP request. The driver
  *	may offload authentication processing to user space if this capability
- *	is indicated in the respective requests from the user space.
+ *	is indicated in the respective requests from the user space. (This flag
+ *	attribute deprecated for %NL80211_CMD_START_AP, use
+ *	%NL80211_ATTR_AP_SETTINGS_FLAGS)
  *
  * @NL80211_ATTR_NSS: Station's New/updated  RX_NSS value notified using this
  *	u8 attribute. This is used with %NL80211_CMD_STA_OPMODE_CHANGED.
@@ -2593,6 +2712,74 @@
  * @NL80211_ATTR_COLOR_CHANGE_ELEMS: Nested set of attributes containing the IE
  *	information for the time while performing a color switch.
  *
+ * @NL80211_ATTR_MBSSID_CONFIG: Nested attribute for multiple BSSID
+ *	advertisements (MBSSID) parameters in AP mode.
+ *	Kernel uses this attribute to indicate the driver's support for MBSSID
+ *	and enhanced multi-BSSID advertisements (EMA AP) to the userspace.
+ *	Userspace should use this attribute to configure per interface MBSSID
+ *	parameters.
+ *	See &enum nl80211_mbssid_config_attributes for details.
+ *
+ * @NL80211_ATTR_MBSSID_ELEMS: Nested parameter to pass multiple BSSID elements.
+ *	Mandatory parameter for the transmitting interface to enable MBSSID.
+ *	Optional for the non-transmitting interfaces.
+ *
+ * @NL80211_ATTR_RADAR_BACKGROUND: Configure dedicated offchannel chain
+ *	available for radar/CAC detection on some hw. This chain can't be used
+ *	to transmit or receive frames and it is bounded to a running wdev.
+ *	Background radar/CAC detection allows to avoid the CAC downtime
+ *	switching on a different channel during CAC detection on the selected
+ *	radar channel.
+ *
+ * @NL80211_ATTR_AP_SETTINGS_FLAGS: u32 attribute contains ap settings flags,
+ *	enumerated in &enum nl80211_ap_settings_flags. This attribute shall be
+ *	used with %NL80211_CMD_START_AP request.
+ *
+ * @NL80211_ATTR_EHT_CAPABILITY: EHT Capability information element (from
+ *	association request when used with NL80211_CMD_NEW_STATION). Can be set
+ *	only if %NL80211_STA_FLAG_WME is set.
+ *
+ * @NL80211_ATTR_MAX_NUM_AKM_SUITES: U16 attribute. Indicates maximum number of
+ *	AKM suites allowed for %NL80211_CMD_CONNECT, %NL80211_CMD_ASSOCIATE and
+ *	%NL80211_CMD_START_AP in %NL80211_CMD_GET_WIPHY response. If this
+ *	attribute is not present userspace shall consider maximum number of AKM
+ *	suites allowed as %NL80211_MAX_NR_AKM_SUITES which is the legacy maximum
+ *	number prior to the introduction of this attribute.
+ *
+ * @NL80211_ATTR_MLO_LINK_ID: A (u8) link ID for use with MLO, to be used with
+ *	various commands that need a link ID to operate.
+ * @NL80211_ATTR_MLO_LINKS: A nested array of links, each containing some
+ *	per-link information and a link ID.
+ * @NL80211_ATTR_MLD_ADDR: An MLD address, used with various commands such as
+ *	authenticate/associate.
+ *
+ * @NL80211_ATTR_MLO_SUPPORT: Flag attribute to indicate user space supports MLO
+ *	connection. Used with %NL80211_CMD_CONNECT. If this attribute is not
+ *	included in NL80211_CMD_CONNECT drivers must not perform MLO connection.
+ *
+ * @NL80211_ATTR_EML_CAPABILITY: EML Capability information (u16)
+ * @NL80211_ATTR_MLD_CAPA_AND_OPS: MLD Capabilities and Operations (u16)
+ *
+ * @NL80211_ATTR_TX_HW_TIMESTAMP: Hardware timestamp for TX operation in
+ *	nanoseconds (u64). This is the device clock timestamp so it will
+ *	probably reset when the device is stopped or the firmware is reset.
+ *	When used with %NL80211_CMD_FRAME_TX_STATUS, indicates the frame TX
+ *	timestamp. When used with %NL80211_CMD_FRAME RX notification, indicates
+ *	the ack TX timestamp.
+ * @NL80211_ATTR_RX_HW_TIMESTAMP: Hardware timestamp for RX operation in
+ *	nanoseconds (u64). This is the device clock timestamp so it will
+ *	probably reset when the device is stopped or the firmware is reset.
+ *	When used with %NL80211_CMD_FRAME_TX_STATUS, indicates the ack RX
+ *	timestamp. When used with %NL80211_CMD_FRAME RX notification, indicates
+ *	the incoming frame RX timestamp.
+ * @NL80211_ATTR_TD_BITMAP: Transition Disable bitmap, for subsequent
+ *	(re)associations.
+ *
+ * @NL80211_ATTR_PUNCT_BITMAP: (u32) Preamble puncturing bitmap, lowest
+ *	bit corresponds to the lowest 20 MHz channel. Each bit set to 1
+ *	indicates that the sub-channel is punctured. Higher 16 bits are
+ *	reserved.
+ *
  * @NUM_NL80211_ATTR: total number of nl80211_attrs available
  * @NL80211_ATTR_MAX: highest attribute number currently defined
  * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -3096,6 +3283,48 @@
 	NL80211_ATTR_COLOR_CHANGE_COLOR,
 	NL80211_ATTR_COLOR_CHANGE_ELEMS,
 
+	NL80211_ATTR_MBSSID_CONFIG,
+	NL80211_ATTR_MBSSID_ELEMS,
+
+	NL80211_ATTR_RADAR_BACKGROUND,
+
+	NL80211_ATTR_AP_SETTINGS_FLAGS,
+
+	NL80211_ATTR_EHT_CAPABILITY,
+
+	NL80211_ATTR_DISABLE_EHT,
+
+	NL80211_ATTR_MLO_LINKS,
+	NL80211_ATTR_MLO_LINK_ID,
+	NL80211_ATTR_MLD_ADDR,
+
+	NL80211_ATTR_MLO_SUPPORT,
+
+	NL80211_ATTR_MAX_NUM_AKM_SUITES,
+
+	NL80211_ATTR_EML_CAPABILITY,
+	NL80211_ATTR_MLD_CAPA_AND_OPS,
+
+	NL80211_ATTR_TX_HW_TIMESTAMP,
+	NL80211_ATTR_RX_HW_TIMESTAMP,
+	NL80211_ATTR_TD_BITMAP,
+	NL80211_ATTR_PUNCT_BITMAP,
+
+	NL80211_ATTR_RESERVED_DO_NOT_USE_12 = 323,
+	NL80211_ATTR_RESERVED_DO_NOT_USE_13 = 324,
+	NL80211_ATTR_RESERVED_DO_NOT_USE_14 = 325,
+	NL80211_ATTR_RESERVED_DO_NOT_USE_15 = 326,
+	NL80211_ATTR_RESERVED_DO_NOT_USE_16 = 327,
+	NL80211_ATTR_RESERVED_DO_NOT_USE_17 = 328,
+	NL80211_ATTR_RESERVED_DO_NOT_USE_18 = 329,
+	NL80211_ATTR_RESERVED_DO_NOT_USE_19 = 330,
+	NL80211_ATTR_RESERVED_DO_NOT_USE_20 = 331,
+	NL80211_ATTR_RESERVED_DO_NOT_USE_21 = 332,
+	NL80211_ATTR_RESERVED_DO_NOT_USE_22 = 333,
+	NL80211_ATTR_RESERVED_DO_NOT_USE_23 = 334,
+	NL80211_ATTR_RESERVED_DO_NOT_USE_24 = 335,
+	NL80211_ATTR_RESERVED_DO_NOT_USE_25 = 336,
+
 	/* add attributes here, update the policy in nl80211.c */
 
 	__NL80211_ATTR_AFTER_LAST,
@@ -3150,7 +3379,14 @@
 #define NL80211_HE_MIN_CAPABILITY_LEN           16
 #define NL80211_HE_MAX_CAPABILITY_LEN           54
 #define NL80211_MAX_NR_CIPHER_SUITES		5
+
+/*
+ * NL80211_MAX_NR_AKM_SUITES is obsolete when %NL80211_ATTR_MAX_NUM_AKM_SUITES
+ * present in %NL80211_CMD_GET_WIPHY response.
+ */
 #define NL80211_MAX_NR_AKM_SUITES		2
+#define NL80211_EHT_MIN_CAPABILITY_LEN          13
+#define NL80211_EHT_MAX_CAPABILITY_LEN          51
 
 #define NL80211_MIN_REMAIN_ON_CHANNEL_TIME	10
 
@@ -3320,6 +3556,56 @@
 };
 
 /**
+ * enum nl80211_eht_gi - EHT guard interval
+ * @NL80211_RATE_INFO_EHT_GI_0_8: 0.8 usec
+ * @NL80211_RATE_INFO_EHT_GI_1_6: 1.6 usec
+ * @NL80211_RATE_INFO_EHT_GI_3_2: 3.2 usec
+ */
+enum nl80211_eht_gi {
+	NL80211_RATE_INFO_EHT_GI_0_8,
+	NL80211_RATE_INFO_EHT_GI_1_6,
+	NL80211_RATE_INFO_EHT_GI_3_2,
+};
+
+/**
+ * enum nl80211_eht_ru_alloc - EHT RU allocation values
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_26: 26-tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_52: 52-tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_52P26: 52+26-tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_106: 106-tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_106P26: 106+26 tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_242: 242-tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_484: 484-tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_484P242: 484+242 tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_996: 996-tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_996P484: 996+484 tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242: 996+484+242 tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_2x996: 2x996-tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484: 2x996+484 tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_3x996: 3x996-tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484: 3x996+484 tone RU allocation
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC_4x996: 4x996-tone RU allocation
+ */
+enum nl80211_eht_ru_alloc {
+	NL80211_RATE_INFO_EHT_RU_ALLOC_26,
+	NL80211_RATE_INFO_EHT_RU_ALLOC_52,
+	NL80211_RATE_INFO_EHT_RU_ALLOC_52P26,
+	NL80211_RATE_INFO_EHT_RU_ALLOC_106,
+	NL80211_RATE_INFO_EHT_RU_ALLOC_106P26,
+	NL80211_RATE_INFO_EHT_RU_ALLOC_242,
+	NL80211_RATE_INFO_EHT_RU_ALLOC_484,
+	NL80211_RATE_INFO_EHT_RU_ALLOC_484P242,
+	NL80211_RATE_INFO_EHT_RU_ALLOC_996,
+	NL80211_RATE_INFO_EHT_RU_ALLOC_996P484,
+	NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242,
+	NL80211_RATE_INFO_EHT_RU_ALLOC_2x996,
+	NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484,
+	NL80211_RATE_INFO_EHT_RU_ALLOC_3x996,
+	NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484,
+	NL80211_RATE_INFO_EHT_RU_ALLOC_4x996,
+};
+
+/**
  * enum nl80211_rate_info - bitrate information
  *
  * These attribute types are used with %NL80211_STA_INFO_TXRATE
@@ -3358,6 +3644,13 @@
  * @NL80211_RATE_INFO_HE_DCM: HE DCM value (u8, 0/1)
  * @NL80211_RATE_INFO_RU_ALLOC: HE RU allocation, if not present then
  *	non-OFDMA was used (u8, see &enum nl80211_he_ru_alloc)
+ * @NL80211_RATE_INFO_320_MHZ_WIDTH: 320 MHz bitrate
+ * @NL80211_RATE_INFO_EHT_MCS: EHT MCS index (u8, 0-15)
+ * @NL80211_RATE_INFO_EHT_NSS: EHT NSS value (u8, 1-8)
+ * @NL80211_RATE_INFO_EHT_GI: EHT guard interval identifier
+ *	(u8, see &enum nl80211_eht_gi)
+ * @NL80211_RATE_INFO_EHT_RU_ALLOC: EHT RU allocation, if not present then
+ *	non-OFDMA was used (u8, see &enum nl80211_eht_ru_alloc)
  * @__NL80211_RATE_INFO_AFTER_LAST: internal use
  */
 enum nl80211_rate_info {
@@ -3379,6 +3672,16 @@
 	NL80211_RATE_INFO_HE_GI,
 	NL80211_RATE_INFO_HE_DCM,
 	NL80211_RATE_INFO_HE_RU_ALLOC,
+	NL80211_RATE_INFO_320_MHZ_WIDTH,
+	NL80211_RATE_INFO_EHT_MCS,
+	NL80211_RATE_INFO_EHT_NSS,
+	NL80211_RATE_INFO_EHT_GI,
+	NL80211_RATE_INFO_EHT_RU_ALLOC,
+	NL80211_RATE_INFO_RESERVED_DO_NOT_USE_1 = 23,
+	NL80211_RATE_INFO_RESERVED_DO_NOT_USE_2 = 24,
+	NL80211_RATE_INFO_RESERVED_DO_NOT_USE_3 = 25,
+	NL80211_RATE_INFO_RESERVED_DO_NOT_USE_4 = 26,
+	NL80211_RATE_INFO_RESERVED_DO_NOT_USE_5 = 27,
 
 	/* keep last */
 	__NL80211_RATE_INFO_AFTER_LAST,
@@ -3409,6 +3712,9 @@
 	NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME,
 	NL80211_STA_BSS_PARAM_DTIM_PERIOD,
 	NL80211_STA_BSS_PARAM_BEACON_INTERVAL,
+	NL80211_STA_BSS_PARAM_RESERVED_DO_NOT_USE_1 = 6,
+	NL80211_STA_BSS_PARAM_RESERVED_DO_NOT_USE_2 = 7,
+	NL80211_STA_BSS_PARAM_RESERVED_DO_NOT_USE_3 = 8,
 
 	/* keep last */
 	__NL80211_STA_BSS_PARAM_AFTER_LAST,
@@ -3543,6 +3849,11 @@
 	NL80211_STA_INFO_AIRTIME_LINK_METRIC,
 	NL80211_STA_INFO_ASSOC_AT_BOOTTIME,
 	NL80211_STA_INFO_CONNECTED_TO_AS,
+	NL80211_STA_INFO_RESERVED_DO_NOT_USE_1 = 44,
+	NL80211_STA_INFO_RESERVED_DO_NOT_USE_2 = 45,
+	NL80211_STA_INFO_RESERVED_DO_NOT_USE_3 = 46,
+	NL80211_STA_INFO_RESERVED_DO_NOT_USE_4 = 47,
+	NL80211_STA_INFO_RESERVED_DO_NOT_USE_5 = 48,
 
 	/* keep last */
 	__NL80211_STA_INFO_AFTER_LAST,
@@ -3689,13 +4000,20 @@
  *     capabilities IE
  * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE: HE PPE thresholds information as
  *     defined in HE capabilities IE
- * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band HE capability attribute currently
- *     defined
  * @NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA: HE 6GHz band capabilities (__le16),
  *	given for all 6 GHz band channels
  * @NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS: vendor element capabilities that are
  *	advertised on this band/for this iftype (binary)
+ * @NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC: EHT MAC capabilities as in EHT
+ *	capabilities element
+ * @NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY: EHT PHY capabilities as in EHT
+ *	capabilities element
+ * @NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET: EHT supported NSS/MCS as in EHT
+ *	capabilities element
+ * @NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE: EHT PPE thresholds information as
+ *	defined in EHT capabilities element
  * @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use
+ * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band attribute currently defined
  */
 enum nl80211_band_iftype_attr {
 	__NL80211_BAND_IFTYPE_ATTR_INVALID,
@@ -3707,6 +4025,15 @@
 	NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
 	NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA,
 	NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS,
+	NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC,
+	NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY,
+	NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET,
+	NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE,
+	NL80211_BAND_IFTYPE_ATTR_RESERVED_DO_NOT_USE_1 = 12,
+	NL80211_BAND_IFTYPE_ATTR_RESERVED_DO_NOT_USE_2 = 13,
+	NL80211_BAND_IFTYPE_ATTR_RESERVED_DO_NOT_USE_3 = 14,
+	NL80211_BAND_IFTYPE_ATTR_RESERVED_DO_NOT_USE_4 = 15,
+	NL80211_BAND_IFTYPE_ATTR_RESERVED_DO_NOT_USE_5 = 16,
 
 	/* keep last */
 	__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
@@ -3756,6 +4083,10 @@
 	NL80211_BAND_ATTR_EDMG_CHANNELS,
 	NL80211_BAND_ATTR_EDMG_BW_CONFIG,
 
+	NL80211_BAND_ATTR_RESERVED_DO_NOT_USE_1 = 12,
+	NL80211_BAND_ATTR_RESERVED_DO_NOT_USE_2 = 13,
+	NL80211_BAND_ATTR_RESERVED_DO_NOT_USE_3 = 14,
+
 	/* keep last */
 	__NL80211_BAND_ATTR_AFTER_LAST,
 	NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1
@@ -3851,6 +4182,10 @@
  *	on this channel in current regulatory domain.
  * @NL80211_FREQUENCY_ATTR_16MHZ: 16 MHz operation is allowed
  *	on this channel in current regulatory domain.
+ * @NL80211_FREQUENCY_ATTR_NO_320MHZ: any 320 MHz channel using this channel
+ *	as the primary or any of the secondary channels isn't possible
+ * @NL80211_FREQUENCY_ATTR_NO_EHT: EHT operation is not allowed on this channel
+ *	in current regulatory domain.
  * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
  *	currently defined
  * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
@@ -3887,6 +4222,8 @@
 	NL80211_FREQUENCY_ATTR_4MHZ,
 	NL80211_FREQUENCY_ATTR_8MHZ,
 	NL80211_FREQUENCY_ATTR_16MHZ,
+	NL80211_FREQUENCY_ATTR_NO_320MHZ,
+	NL80211_FREQUENCY_ATTR_NO_EHT,
 
 	/* keep last */
 	__NL80211_FREQUENCY_ATTR_AFTER_LAST,
@@ -4085,6 +4422,7 @@
  * @NL80211_RRF_NO_80MHZ: 80MHz operation not allowed
  * @NL80211_RRF_NO_160MHZ: 160MHz operation not allowed
  * @NL80211_RRF_NO_HE: HE operation not allowed
+ * @NL80211_RRF_NO_320MHZ: 320MHz operation not allowed
  */
 enum nl80211_reg_rule_flags {
 	NL80211_RRF_NO_OFDM		= 1<<0,
@@ -4103,6 +4441,7 @@
 	NL80211_RRF_NO_80MHZ		= 1<<15,
 	NL80211_RRF_NO_160MHZ		= 1<<16,
 	NL80211_RRF_NO_HE		= 1<<17,
+	NL80211_RRF_NO_320MHZ		= 1<<18,
 };
 
 #define NL80211_RRF_PASSIVE_SCAN	NL80211_RRF_NO_IR
@@ -4600,6 +4939,8 @@
  * @NL80211_CHAN_WIDTH_4: 4 MHz OFDM channel
  * @NL80211_CHAN_WIDTH_8: 8 MHz OFDM channel
  * @NL80211_CHAN_WIDTH_16: 16 MHz OFDM channel
+ * @NL80211_CHAN_WIDTH_320: 320 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
+ *	attribute must be provided as well
  */
 enum nl80211_chan_width {
 	NL80211_CHAN_WIDTH_20_NOHT,
@@ -4615,6 +4956,7 @@
 	NL80211_CHAN_WIDTH_4,
 	NL80211_CHAN_WIDTH_8,
 	NL80211_CHAN_WIDTH_16,
+	NL80211_CHAN_WIDTH_320,
 };
 
 /**
@@ -4686,6 +5028,8 @@
  *	Contains a nested array of signal strength attributes (u8, dBm),
  *	using the nesting index as the antenna number.
  * @NL80211_BSS_FREQUENCY_OFFSET: frequency offset in KHz
+ * @NL80211_BSS_MLO_LINK_ID: MLO link ID of the BSS (u8).
+ * @NL80211_BSS_MLD_ADDR: MLD address of this BSS if connected to it.
  * @__NL80211_BSS_AFTER_LAST: internal
  * @NL80211_BSS_MAX: highest BSS attribute
  */
@@ -4711,6 +5055,11 @@
 	NL80211_BSS_PARENT_BSSID,
 	NL80211_BSS_CHAIN_SIGNAL,
 	NL80211_BSS_FREQUENCY_OFFSET,
+	NL80211_BSS_MLO_LINK_ID,
+	NL80211_BSS_MLD_ADDR,
+	NL80211_BSS_RESERVED_DO_NOT_USE_3 = 23,
+	NL80211_BSS_RESERVED_DO_NOT_USE_4 = 24,
+	NL80211_BSS_RESERVED_DO_NOT_USE_5 = 25,
 
 	/* keep last */
 	__NL80211_BSS_AFTER_LAST,
@@ -4856,6 +5205,11 @@
 	NL80211_KEY_DEFAULT_TYPES,
 	NL80211_KEY_MODE,
 	NL80211_KEY_DEFAULT_BEACON,
+	NL80211_KEY_RESERVED_DO_NOT_USE_1 = 11,
+	NL80211_KEY_RESERVED_DO_NOT_USE_2 = 12,
+	NL80211_KEY_RESERVED_DO_NOT_USE_3 = 13,
+	NL80211_KEY_RESERVED_DO_NOT_USE_4 = 14,
+	NL80211_KEY_RESERVED_DO_NOT_USE_5 = 15,
 
 	/* keep last */
 	__NL80211_KEY_AFTER_LAST,
@@ -4890,6 +5244,11 @@
 	NL80211_TXRATE_HE,
 	NL80211_TXRATE_HE_GI,
 	NL80211_TXRATE_HE_LTF,
+	NL80211_TXRATE_RESERVED_DO_NOT_USE_1 = 8,
+	NL80211_TXRATE_RESERVED_DO_NOT_USE_2 = 9,
+	NL80211_TXRATE_RESERVED_DO_NOT_USE_3 = 10,
+	NL80211_TXRATE_RESERVED_DO_NOT_USE_4 = 11,
+	NL80211_TXRATE_RESERVED_DO_NOT_USE_5 = 12,
 
 	/* keep last */
 	__NL80211_TXRATE_AFTER_LAST,
@@ -4929,6 +5288,7 @@
  * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz)
  * @NL80211_BAND_6GHZ: around 6 GHz band (5.9 - 7.2 GHz)
  * @NL80211_BAND_S1GHZ: around 900MHz, supported by S1G PHYs
+ * @NL80211_BAND_LC: light communication band (placeholder)
  * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace
  *	since newer kernel versions may support more bands
  */
@@ -4938,6 +5298,7 @@
 	NL80211_BAND_60GHZ,
 	NL80211_BAND_6GHZ,
 	NL80211_BAND_S1GHZ,
+	NL80211_BAND_LC,
 
 	NUM_NL80211_BANDS,
 };
@@ -5588,6 +5949,7 @@
 #define NL80211_KEK_LEN			16
 #define NL80211_KCK_EXT_LEN		24
 #define NL80211_KEK_EXT_LEN		32
+#define NL80211_KCK_EXT_LEN_32		32
 #define NL80211_REPLAY_CTR_LEN		8
 
 /**
@@ -5686,13 +6048,15 @@
 	NL80211_TDLS_DISABLE_LINK,
 };
 
-/*
+/**
  * enum nl80211_ap_sme_features - device-integrated AP features
- * Reserved for future use, no bits are defined in
- * NL80211_ATTR_DEVICE_AP_SME yet.
-enum nl80211_ap_sme_features {
-};
+ * @NL80211_AP_SME_SA_QUERY_OFFLOAD: SA Query procedures offloaded to driver
+ *	when user space indicates support for SA Query procedures offload during
+ *	"start ap" with %NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT.
  */
+enum nl80211_ap_sme_features {
+	NL80211_AP_SME_SA_QUERY_OFFLOAD		= 1 << 0,
+};
 
 /**
  * enum nl80211_feature_flags - device/driver features
@@ -5995,6 +6359,27 @@
  * @NL80211_EXT_FEATURE_BSS_COLOR: The driver supports BSS color collision
  *	detection and change announcemnts.
  *
+ * @NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD: Driver running in AP mode supports
+ *	FILS encryption and decryption for (Re)Association Request and Response
+ *	frames. Userspace has to share FILS AAD details to the driver by using
+ *	@NL80211_CMD_SET_FILS_AAD.
+ *
+ * @NL80211_EXT_FEATURE_RADAR_BACKGROUND: Device supports background radar/CAC
+ *	detection.
+ *
+ * @NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE: Device can perform a MAC address
+ *	change without having to bring the underlying network device down
+ *	first. For example, in station mode this can be used to vary the
+ *	origin MAC address prior to a connection to a new AP for privacy
+ *	or other reasons. Note that certain driver specific restrictions
+ *	might apply, e.g. no scans in progress, no offchannel operations
+ *	in progress, and no active connections.
+ *
+ * @NL80211_EXT_FEATURE_PUNCT: Driver supports preamble puncturing in AP mode.
+ *
+ * @NL80211_EXT_FEATURE_SECURE_NAN: Device supports NAN Pairing which enables
+ *	authentication, data encryption and message integrity.
+ *
  * @NUM_NL80211_EXT_FEATURES: number of extended features.
  * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
  */
@@ -6060,6 +6445,18 @@
 	NL80211_EXT_FEATURE_SECURE_RTT,
 	NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE,
 	NL80211_EXT_FEATURE_BSS_COLOR,
+	NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
+	NL80211_EXT_FEATURE_RADAR_BACKGROUND,
+	NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE,
+	NL80211_EXT_FEATURE_PUNCT,
+	NL80211_EXT_FEATURE_SECURE_NAN,
+	NL80211_EXT_FEATURE_RESERVED_DO_NOT_USE_4 = 65,
+	NL80211_EXT_FEATURE_RESERVED_DO_NOT_USE_5 = 66,
+	NL80211_EXT_FEATURE_RESERVED_DO_NOT_USE_6 = 67,
+	NL80211_EXT_FEATURE_RESERVED_DO_NOT_USE_7 = 68,
+	NL80211_EXT_FEATURE_RESERVED_DO_NOT_USE_8 = 69,
+	NL80211_EXT_FEATURE_RESERVED_DO_NOT_USE_9 = 70,
+	NL80211_EXT_FEATURE_RESERVED_DO_NOT_USE_10 = 71,
 
 	/* add new features before the definition below */
 	NUM_NL80211_EXT_FEATURES,
@@ -6364,6 +6761,9 @@
 	NL80211_TDLS_PEER_VHT = 1<<1,
 	NL80211_TDLS_PEER_WMM = 1<<2,
 	NL80211_TDLS_PEER_HE = 1<<3,
+	NL80211_TDLS_PEER_RESERVED_DO_NOT_USE_1 = 1<<4,
+	NL80211_TDLS_PEER_RESERVED_DO_NOT_USE_2 = 1<<5,
+	NL80211_TDLS_PEER_RESERVED_DO_NOT_USE_3 = 1<<6,
 };
 
 /**
@@ -7349,4 +7749,76 @@
 	NL80211_SAR_ATTR_SPECS_MAX = __NL80211_SAR_ATTR_SPECS_LAST - 1,
 };
 
+/**
+ * enum nl80211_mbssid_config_attributes - multiple BSSID (MBSSID) and enhanced
+ * multi-BSSID advertisements (EMA) in AP mode.
+ * Kernel uses some of these attributes to advertise driver's support for
+ * MBSSID and EMA.
+ * Remaining attributes should be used by the userspace to configure the
+ * features.
+ *
+ * @__NL80211_MBSSID_CONFIG_ATTR_INVALID: Invalid
+ *
+ * @NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES: Used by the kernel to advertise
+ *	the maximum number of MBSSID interfaces supported by the driver.
+ *	Driver should indicate MBSSID support by setting
+ *	wiphy->mbssid_max_interfaces to a value more than or equal to 2.
+ *
+ * @NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY: Used by the kernel
+ *	to advertise the maximum profile periodicity supported by the driver
+ *	if EMA is enabled. Driver should indicate EMA support to the userspace
+ *	by setting wiphy->ema_max_profile_periodicity to
+ *	a non-zero value.
+ *
+ * @NL80211_MBSSID_CONFIG_ATTR_INDEX: Mandatory parameter to pass the index of
+ *	this BSS (u8) in the multiple BSSID set.
+ *	Value must be set to 0 for the transmitting interface and non-zero for
+ *	all non-transmitting interfaces. The userspace will be responsible
+ *	for using unique indices for the interfaces.
+ *	Range: 0 to wiphy->mbssid_max_interfaces-1.
+ *
+ * @NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX: Mandatory parameter for
+ *	a non-transmitted profile which provides the interface index (u32) of
+ *	the transmitted profile. The value must match one of the interface
+ *	indices advertised by the kernel. Optional if the interface being set up
+ *	is the transmitting one, however, if provided then the value must match
+ *	the interface index of the same.
+ *
+ * @NL80211_MBSSID_CONFIG_ATTR_EMA: Flag used to enable EMA AP feature.
+ *	Setting this flag is permitted only if the driver advertises EMA support
+ *	by setting wiphy->ema_max_profile_periodicity to non-zero.
+ *
+ * @__NL80211_MBSSID_CONFIG_ATTR_LAST: Internal
+ * @NL80211_MBSSID_CONFIG_ATTR_MAX: highest attribute
+ */
+enum nl80211_mbssid_config_attributes {
+	__NL80211_MBSSID_CONFIG_ATTR_INVALID,
+
+	NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES,
+	NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY,
+	NL80211_MBSSID_CONFIG_ATTR_INDEX,
+	NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX,
+	NL80211_MBSSID_CONFIG_ATTR_EMA,
+
+	/* keep last */
+	__NL80211_MBSSID_CONFIG_ATTR_LAST,
+	NL80211_MBSSID_CONFIG_ATTR_MAX = __NL80211_MBSSID_CONFIG_ATTR_LAST - 1,
+};
+
+/**
+ * enum nl80211_ap_settings_flags - AP settings flags
+ *
+ * @NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT: AP supports external
+ *	authentication.
+ * @NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT: Userspace supports SA Query
+ *	procedures offload to driver. If driver advertises
+ *	%NL80211_AP_SME_SA_QUERY_OFFLOAD in AP SME features, userspace shall
+ *	ignore SA Query procedures and validations when this flag is set by
+ *	userspace.
+ */
+enum nl80211_ap_settings_flags {
+	NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT	= 1 << 0,
+	NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT	= 1 << 1,
+};
+
 #endif /* __LINUX_NL80211_H */
diff --git a/include/uapi/linux/prctl.h b/include/uapi/linux/prctl.h
index 43bd7f7..1bb49a4 100644
--- a/include/uapi/linux/prctl.h
+++ b/include/uapi/linux/prctl.h
@@ -235,7 +235,7 @@
 #define PR_GET_TAGGED_ADDR_CTRL		56
 # define PR_TAGGED_ADDR_ENABLE		(1UL << 0)
 /* MTE tag check fault modes */
-# define PR_MTE_TCF_NONE		0
+# define PR_MTE_TCF_NONE		0UL
 # define PR_MTE_TCF_SYNC		(1UL << 1)
 # define PR_MTE_TCF_ASYNC		(1UL << 2)
 # define PR_MTE_TCF_MASK		(PR_MTE_TCF_SYNC | PR_MTE_TCF_ASYNC)
@@ -269,4 +269,7 @@
 # define PR_SCHED_CORE_SHARE_FROM	3 /* pull core_sched cookie to pid */
 # define PR_SCHED_CORE_MAX		4
 
+#define PR_SET_VMA		0x53564d41
+# define PR_SET_VMA_ANON_NAME		0
+
 #endif /* _LINUX_PRCTL_H */
diff --git a/include/uapi/linux/psci.h b/include/uapi/linux/psci.h
index 2fcad1d..1529f31 100644
--- a/include/uapi/linux/psci.h
+++ b/include/uapi/linux/psci.h
@@ -51,6 +51,7 @@
 #define PSCI_1_0_FN_SYSTEM_SUSPEND		PSCI_0_2_FN(14)
 #define PSCI_1_0_FN_SET_SUSPEND_MODE		PSCI_0_2_FN(15)
 #define PSCI_1_1_FN_SYSTEM_RESET2		PSCI_0_2_FN(18)
+#define PSCI_1_1_FN_MEM_PROTECT			PSCI_0_2_FN(19)
 
 #define PSCI_1_0_FN64_SYSTEM_SUSPEND		PSCI_0_2_FN64(14)
 #define PSCI_1_1_FN64_SYSTEM_RESET2		PSCI_0_2_FN64(18)
@@ -82,6 +83,10 @@
 #define PSCI_0_2_TOS_UP_NO_MIGRATE		1
 #define PSCI_0_2_TOS_MP				2
 
+/* PSCI v1.1 reset type encoding for SYSTEM_RESET2 */
+#define PSCI_1_1_RESET_TYPE_SYSTEM_WARM_RESET	0
+#define PSCI_1_1_RESET_TYPE_VENDOR_START	0x80000000U
+
 /* PSCI version decoding (independent of PSCI version) */
 #define PSCI_VERSION_MAJOR_SHIFT		16
 #define PSCI_VERSION_MINOR_MASK			\
diff --git a/include/uapi/linux/rpmsg.h b/include/uapi/linux/rpmsg.h
index f5ca874..1637e68 100644
--- a/include/uapi/linux/rpmsg.h
+++ b/include/uapi/linux/rpmsg.h
@@ -33,4 +33,14 @@
  */
 #define RPMSG_DESTROY_EPT_IOCTL	_IO(0xb5, 0x2)
 
+/**
+ * Instantiate a new local rpmsg service device.
+ */
+#define RPMSG_CREATE_DEV_IOCTL	_IOW(0xb5, 0x3, struct rpmsg_endpoint_info)
+
+/**
+ * Release a local rpmsg device.
+ */
+#define RPMSG_RELEASE_DEV_IOCTL	_IOW(0xb5, 0x4, struct rpmsg_endpoint_info)
+
 #endif
diff --git a/include/uapi/linux/tipc_config.h b/include/uapi/linux/tipc_config.h
index 4dfc056..c00adf2 100644
--- a/include/uapi/linux/tipc_config.h
+++ b/include/uapi/linux/tipc_config.h
@@ -43,10 +43,6 @@
 #include <linux/tipc.h>
 #include <asm/byteorder.h>
 
-#ifndef __KERNEL__
-#include <arpa/inet.h> /* for ntohs etc. */
-#endif
-
 /*
  * Configuration
  *
@@ -269,33 +265,33 @@
 	 */
 
 	return (space >= TLV_SPACE(0)) &&
-		(ntohs(((struct tlv_desc *)tlv)->tlv_len) <= space);
+		(__be16_to_cpu(((struct tlv_desc *)tlv)->tlv_len) <= space);
 }
 
 static inline int TLV_CHECK(const void *tlv, __u16 space, __u16 exp_type)
 {
 	return TLV_OK(tlv, space) &&
-		(ntohs(((struct tlv_desc *)tlv)->tlv_type) == exp_type);
+		(__be16_to_cpu(((struct tlv_desc *)tlv)->tlv_type) == exp_type);
 }
 
 static inline int TLV_GET_LEN(struct tlv_desc *tlv)
 {
-	return ntohs(tlv->tlv_len);
+	return __be16_to_cpu(tlv->tlv_len);
 }
 
 static inline void TLV_SET_LEN(struct tlv_desc *tlv, __u16 len)
 {
-	tlv->tlv_len = htons(len);
+	tlv->tlv_len = __cpu_to_be16(len);
 }
 
 static inline int TLV_CHECK_TYPE(struct tlv_desc *tlv,  __u16 type)
 {
-	return (ntohs(tlv->tlv_type) == type);
+	return (__be16_to_cpu(tlv->tlv_type) == type);
 }
 
 static inline void TLV_SET_TYPE(struct tlv_desc *tlv, __u16 type)
 {
-	tlv->tlv_type = htons(type);
+	tlv->tlv_type = __cpu_to_be16(type);
 }
 
 static inline int TLV_SET(void *tlv, __u16 type, void *data, __u16 len)
@@ -305,8 +301,8 @@
 
 	tlv_len = TLV_LENGTH(len);
 	tlv_ptr = (struct tlv_desc *)tlv;
-	tlv_ptr->tlv_type = htons(type);
-	tlv_ptr->tlv_len  = htons(tlv_len);
+	tlv_ptr->tlv_type = __cpu_to_be16(type);
+	tlv_ptr->tlv_len  = __cpu_to_be16(tlv_len);
 	if (len && data) {
 		memcpy(TLV_DATA(tlv_ptr), data, len);
 		memset((char *)TLV_DATA(tlv_ptr) + len, 0, TLV_SPACE(len) - tlv_len);
@@ -348,7 +344,7 @@
 
 static inline void TLV_LIST_STEP(struct tlv_list_desc *list)
 {
-	__u16 tlv_space = TLV_ALIGN(ntohs(list->tlv_ptr->tlv_len));
+	__u16 tlv_space = TLV_ALIGN(__be16_to_cpu(list->tlv_ptr->tlv_len));
 
 	list->tlv_ptr = (struct tlv_desc *)((char *)list->tlv_ptr + tlv_space);
 	list->tlv_space -= tlv_space;
@@ -404,9 +400,9 @@
 
 	msg_len = TCM_LENGTH(data_len);
 	tcm_hdr = (struct tipc_cfg_msg_hdr *)msg;
-	tcm_hdr->tcm_len   = htonl(msg_len);
-	tcm_hdr->tcm_type  = htons(cmd);
-	tcm_hdr->tcm_flags = htons(flags);
+	tcm_hdr->tcm_len   = __cpu_to_be32(msg_len);
+	tcm_hdr->tcm_type  = __cpu_to_be16(cmd);
+	tcm_hdr->tcm_flags = __cpu_to_be16(flags);
 	if (data_len && data) {
 		memcpy(TCM_DATA(msg), data, data_len);
 		memset((char *)TCM_DATA(msg) + data_len, 0, TCM_SPACE(data_len) - msg_len);
diff --git a/include/uapi/linux/usb/f_accessory.h b/include/uapi/linux/usb/f_accessory.h
new file mode 100644
index 0000000..0baeb7d
--- /dev/null
+++ b/include/uapi/linux/usb/f_accessory.h
@@ -0,0 +1,146 @@
+/*
+ * Gadget Function Driver for Android USB accessories
+ *
+ * Copyright (C) 2011 Google, Inc.
+ * Author: Mike Lockwood <lockwood@android.com>
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef _UAPI_LINUX_USB_F_ACCESSORY_H
+#define _UAPI_LINUX_USB_F_ACCESSORY_H
+
+/* Use Google Vendor ID when in accessory mode */
+#define USB_ACCESSORY_VENDOR_ID 0x18D1
+
+
+/* Product ID to use when in accessory mode */
+#define USB_ACCESSORY_PRODUCT_ID 0x2D00
+
+/* Product ID to use when in accessory mode and adb is enabled */
+#define USB_ACCESSORY_ADB_PRODUCT_ID 0x2D01
+
+/* Indexes for strings sent by the host via ACCESSORY_SEND_STRING */
+#define ACCESSORY_STRING_MANUFACTURER   0
+#define ACCESSORY_STRING_MODEL          1
+#define ACCESSORY_STRING_DESCRIPTION    2
+#define ACCESSORY_STRING_VERSION        3
+#define ACCESSORY_STRING_URI            4
+#define ACCESSORY_STRING_SERIAL         5
+
+/* Control request for retrieving device's protocol version
+ *
+ *	requestType:    USB_DIR_IN | USB_TYPE_VENDOR
+ *	request:        ACCESSORY_GET_PROTOCOL
+ *	value:          0
+ *	index:          0
+ *	data            version number (16 bits little endian)
+ *                     1 for original accessory support
+ *                     2 adds HID and device to host audio support
+ */
+#define ACCESSORY_GET_PROTOCOL  51
+
+/* Control request for host to send a string to the device
+ *
+ *	requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
+ *	request:        ACCESSORY_SEND_STRING
+ *	value:          0
+ *	index:          string ID
+ *	data            zero terminated UTF8 string
+ *
+ *  The device can later retrieve these strings via the
+ *  ACCESSORY_GET_STRING_* ioctls
+ */
+#define ACCESSORY_SEND_STRING   52
+
+/* Control request for starting device in accessory mode.
+ * The host sends this after setting all its strings to the device.
+ *
+ *	requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
+ *	request:        ACCESSORY_START
+ *	value:          0
+ *	index:          0
+ *	data            none
+ */
+#define ACCESSORY_START         53
+
+/* Control request for registering a HID device.
+ * Upon registering, a unique ID is sent by the accessory in the
+ * value parameter. This ID will be used for future commands for
+ * the device
+ *
+ *	requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
+ *	request:        ACCESSORY_REGISTER_HID_DEVICE
+ *	value:          Accessory assigned ID for the HID device
+ *	index:          total length of the HID report descriptor
+ *	data            none
+ */
+#define ACCESSORY_REGISTER_HID         54
+
+/* Control request for unregistering a HID device.
+ *
+ *	requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
+ *	request:        ACCESSORY_REGISTER_HID
+ *	value:          Accessory assigned ID for the HID device
+ *	index:          0
+ *	data            none
+ */
+#define ACCESSORY_UNREGISTER_HID         55
+
+/* Control request for sending the HID report descriptor.
+ * If the HID descriptor is longer than the endpoint zero max packet size,
+ * the descriptor will be sent in multiple ACCESSORY_SET_HID_REPORT_DESC
+ * commands. The data for the descriptor must be sent sequentially
+ * if multiple packets are needed.
+ *
+ *	requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
+ *	request:        ACCESSORY_SET_HID_REPORT_DESC
+ *	value:          Accessory assigned ID for the HID device
+ *	index:          offset of data in descriptor
+ *                      (needed when HID descriptor is too big for one packet)
+ *	data            the HID report descriptor
+ */
+#define ACCESSORY_SET_HID_REPORT_DESC         56
+
+/* Control request for sending HID events.
+ *
+ *	requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
+ *	request:        ACCESSORY_SEND_HID_EVENT
+ *	value:          Accessory assigned ID for the HID device
+ *	index:          0
+ *	data            the HID report for the event
+ */
+#define ACCESSORY_SEND_HID_EVENT         57
+
+/* Control request for setting the audio mode.
+ *
+ *	requestType:	USB_DIR_OUT | USB_TYPE_VENDOR
+ *	request:        ACCESSORY_SET_AUDIO_MODE
+ *	value:          0 - no audio
+ *                     1 - device to host, 44100 16-bit stereo PCM
+ *	index:          0
+ *	data            none
+ */
+#define ACCESSORY_SET_AUDIO_MODE         58
+
+/* ioctls for retrieving strings set by the host */
+#define ACCESSORY_GET_STRING_MANUFACTURER   _IOW('M', 1, char[256])
+#define ACCESSORY_GET_STRING_MODEL          _IOW('M', 2, char[256])
+#define ACCESSORY_GET_STRING_DESCRIPTION    _IOW('M', 3, char[256])
+#define ACCESSORY_GET_STRING_VERSION        _IOW('M', 4, char[256])
+#define ACCESSORY_GET_STRING_URI            _IOW('M', 5, char[256])
+#define ACCESSORY_GET_STRING_SERIAL         _IOW('M', 6, char[256])
+/* returns 1 if there is a start request pending */
+#define ACCESSORY_IS_START_REQUESTED        _IO('M', 7)
+/* returns audio mode (set via the ACCESSORY_SET_AUDIO_MODE control request) */
+#define ACCESSORY_GET_AUDIO_MODE            _IO('M', 8)
+
+#endif /* _UAPI_LINUX_USB_F_ACCESSORY_H */
diff --git a/include/uapi/linux/usb/g_uvc.h b/include/uapi/linux/usb/g_uvc.h
index 652f169..8d7824d 100644
--- a/include/uapi/linux/usb/g_uvc.h
+++ b/include/uapi/linux/usb/g_uvc.h
@@ -21,6 +21,9 @@
 #define UVC_EVENT_DATA			(V4L2_EVENT_PRIVATE_START + 5)
 #define UVC_EVENT_LAST			(V4L2_EVENT_PRIVATE_START + 5)
 
+#define UVC_STRING_CONTROL_IDX			0
+#define UVC_STRING_STREAMING_IDX		1
+
 struct uvc_request_data {
 	__s32 length;
 	__u8 data[60];
diff --git a/include/uapi/linux/usb/video.h b/include/uapi/linux/usb/video.h
index c58854f..2ff0e8a 100644
--- a/include/uapi/linux/usb/video.h
+++ b/include/uapi/linux/usb/video.h
@@ -496,7 +496,7 @@
 	__u8  bDefaultFrameIndex;
 	__u8  bAspectRatioX;
 	__u8  bAspectRatioY;
-	__u8  bmInterfaceFlags;
+	__u8  bmInterlaceFlags;
 	__u8  bCopyProtect;
 } __attribute__((__packed__));
 
@@ -552,7 +552,7 @@
 	__u8  bDefaultFrameIndex;
 	__u8  bAspectRatioX;
 	__u8  bAspectRatioY;
-	__u8  bmInterfaceFlags;
+	__u8  bmInterlaceFlags;
 	__u8  bCopyProtect;
 } __attribute__((__packed__));
 
diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
index 5532b5f..9aa3fd3 100644
--- a/include/uapi/linux/v4l2-controls.h
+++ b/include/uapi/linux/v4l2-controls.h
@@ -128,6 +128,7 @@
 	V4L2_COLORFX_SOLARIZATION		= 13,
 	V4L2_COLORFX_ANTIQUE			= 14,
 	V4L2_COLORFX_SET_CBCR			= 15,
+	V4L2_COLORFX_SET_RGB			= 16,
 };
 #define V4L2_CID_AUTOBRIGHTNESS			(V4L2_CID_BASE+32)
 #define V4L2_CID_BAND_STOP_FILTER		(V4L2_CID_BASE+33)
@@ -145,9 +146,10 @@
 
 #define V4L2_CID_ALPHA_COMPONENT		(V4L2_CID_BASE+41)
 #define V4L2_CID_COLORFX_CBCR			(V4L2_CID_BASE+42)
+#define V4L2_CID_COLORFX_RGB			(V4L2_CID_BASE+43)
 
 /* last CID + 1 */
-#define V4L2_CID_LASTP1                         (V4L2_CID_BASE+43)
+#define V4L2_CID_LASTP1                         (V4L2_CID_BASE+44)
 
 /* USER-class private control IDs */
 
diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
index f5c6758..4f4b00f 100644
--- a/include/uapi/linux/videodev2.h
+++ b/include/uapi/linux/videodev2.h
@@ -70,7 +70,7 @@
  * Common stuff for both V4L1 and V4L2
  * Moved from videodev.h
  */
-#define VIDEO_MAX_FRAME               32
+#define VIDEO_MAX_FRAME               64
 #define VIDEO_MAX_PLANES               8
 
 /*
diff --git a/init/Kconfig b/init/Kconfig
index dafc3ba..d07fc6e 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -62,13 +62,13 @@
 
 config CC_CAN_LINK
 	bool
-	default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(m64-flag)) if 64BIT
-	default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(m32-flag))
+	default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m64-flag)) if 64BIT
+	default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m32-flag))
 
 config CC_CAN_LINK_STATIC
 	bool
-	default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(m64-flag) -static) if 64BIT
-	default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(m32-flag) -static)
+	default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m64-flag) -static) if 64BIT
+	default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m32-flag) -static)
 
 config CC_HAS_ASM_GOTO
 	def_bool $(success,$(srctree)/scripts/gcc-goto.sh $(CC))
@@ -148,7 +148,7 @@
 
 config WERROR
 	bool "Compile the kernel with warnings as errors"
-	default COMPILE_TEST
+	default y
 	help
 	  A kernel build should not cause any compiler warnings, and this
 	  enables the '-Werror' flag to enforce that rule by default.
@@ -1278,6 +1278,17 @@
 	  desktop applications.  Task group autogeneration is currently based
 	  upon task session.
 
+config RT_SOFTINT_OPTIMIZATION
+       bool "Improve RT scheduling during long softint execution"
+       depends on ARM64
+       depends on SMP
+       default n
+       help
+         Enable an optimization which tries to avoid placing RT tasks on CPUs
+	 occupied by nonpreemptible tasks, such as a long softint, or CPUs
+	 which may soon block preemptions, such as a CPU running a ksoftirq
+	 thread which handles slow softints.
+
 config SYSFS_DEPRECATED
 	bool "Enable deprecated sysfs features to support old userspace tools"
 	depends on SYSFS
@@ -2151,6 +2162,20 @@
 	  the version).  With this option, such a "srcversion" field
 	  will be created for all modules.  If unsure, say N.
 
+config MODULE_SCMVERSION
+	bool "SCM version for modules"
+	depends on LOCALVERSION_AUTO
+	help
+	  This enables the module attribute "scmversion" which can be used
+	  by developers to identify the SCM version of a given module, e.g.
+	  git sha1 or hg sha1. The SCM version can be queried by modinfo or
+	  via the sysfs node: /sys/modules/MODULENAME/scmversion. This is
+	  useful when the kernel or kernel modules are updated separately
+	  since that causes the vermagic of the kernel and the module to
+	  differ.
+
+	  If unsure, say N.
+
 config MODULE_SIG
 	bool "Module signature verification"
 	select MODULE_SIG_FORMAT
@@ -2180,6 +2205,19 @@
 	  Reject unsigned modules or signed modules for which we don't have a
 	  key.  Without this, such modules will simply taint the kernel.
 
+config MODULE_SIG_PROTECT
+	bool "Android GKI module protection"
+	depends on MODULE_SIG && !MODULE_SIG_FORCE
+	help
+	  Enables Android GKI symbol and export protection support.
+
+	  This modifies the behavior of the MODULE_SIG_FORCE as follows:
+	  - Allows Android GKI Modules signed using MODULE_SIG_ALL during build.
+	  - Allows other modules to load if they don't violate the access to
+	    Android GKI protected symbols and do not export the symbols already
+	    exported by the Android GKI modules. Loading will fail and return
+	    -EACCES (Permission denied) if symbol access contidions are not met.
+
 config MODULE_SIG_ALL
 	bool "Automatically sign all modules"
 	default y
@@ -2385,3 +2423,5 @@
 # <asm/syscall_wrapper.h>.
 config ARCH_HAS_SYSCALL_WRAPPER
 	def_bool n
+
+source "init/Kconfig.gki"
diff --git a/init/Kconfig.gki b/init/Kconfig.gki
new file mode 100644
index 0000000..1db2ea30
--- /dev/null
+++ b/init/Kconfig.gki
@@ -0,0 +1,266 @@
+config GKI_HIDDEN_DRM_CONFIGS
+	bool "Hidden DRM configs needed for GKI"
+	select DRM_KMS_HELPER if (HAS_IOMEM && DRM)
+	select DRM_GEM_SHMEM_HELPER if (DRM)
+	select DRM_GEM_CMA_HELPER
+	select DRM_KMS_CMA_HELPER
+	select DRM_MIPI_DSI
+	select DRM_TTM if (HAS_IOMEM && DRM)
+	select VIDEOMODE_HELPERS
+	select WANT_DEV_COREDUMP
+	select INTERVAL_TREE
+	help
+	  Dummy config option used to enable hidden DRM configs.
+	  These are normally selected implicitly when including a
+	  DRM module, but for GKI, the modules are built out-of-tree.
+
+config GKI_HIDDEN_REGMAP_CONFIGS
+	bool "Hidden Regmap configs needed for GKI"
+	select REGMAP_IRQ
+	select REGMAP_MMIO
+	help
+	  Dummy config option used to enable hidden regmap configs.
+	  These are normally selected implicitly when a module
+	  that relies on it is configured.
+
+config GKI_HIDDEN_CRYPTO_CONFIGS
+	bool "Hidden CRYPTO configs needed for GKI"
+	select CRYPTO_ENGINE
+	help
+	  Dummy config option used to enable hidden CRYPTO configs.
+	  These are normally selected implicitly when a module
+	  that relies on it is configured.
+
+config GKI_HIDDEN_SND_CONFIGS
+	bool "Hidden SND configs needed for GKI"
+	select SND_VMASTER
+	select SND_PCM_ELD
+	select SND_JACK
+	select SND_JACK_INPUT_DEV
+	select SND_INTEL_NHLT if (ACPI)
+	help
+	  Dummy config option used to enable hidden SND configs.
+	  These are normally selected implicitly when a module
+	  that relies on it is configured.
+
+config GKI_HIDDEN_SND_SOC_CONFIGS
+	bool "Hidden SND_SOC configs needed for GKI"
+	select SND_SOC_GENERIC_DMAENGINE_PCM if (SND_SOC && SND)
+	select SND_PCM_IEC958
+	select SND_SOC_COMPRESS if (SND_SOC && SND)
+	select SND_SOC_TOPOLOGY if (SND_SOC && SND)
+	select DMADEVICES
+	select DMA_VIRTUAL_CHANNELS
+	help
+	  Dummy config option used to enable hidden SND_SOC configs.
+	  These are normally selected implicitly when a module
+	  that relies on it is configured.
+
+config GKI_HIDDEN_MMC_CONFIGS
+	bool "Hidden MMC configs needed for GKI"
+	select MMC_SDHCI_IO_ACCESSORS if (MMC_SDHCI)
+	help
+	  Dummy config option used to enable hidden MMC configs.
+	  These are normally selected implicitly when a module
+	  that relies on it is configured.
+
+config GKI_HIDDEN_GPIO_CONFIGS
+	bool "Hidden GPIO configs needed for GKI"
+	select PINCTRL_SINGLE if (PINCTRL && OF && HAS_IOMEM)
+	select GPIO_PL061 if (HAS_IOMEM && ARM_AMBA && GPIOLIB)
+	help
+	  Dummy config option used to enable hidden GPIO configs.
+	  These are normally selected implicitly when a module
+	  that relies on it is configured.
+
+config GKI_HIDDEN_QCOM_CONFIGS
+	bool "Hidden QCOM configs needed for GKI"
+	select QCOM_SMEM_STATE
+	select QCOM_GDSC if (ARCH_QCOM)
+	select IOMMU_IO_PGTABLE_LPAE if (ARCH_QCOM)
+
+	help
+	  Dummy config option used to enable hidden QCOM configs.
+	  These are normally selected implicitly when a module
+	  that relies on it is configured.
+
+config GKI_HIDDEN_MEDIA_CONFIGS
+	bool "Hidden Media configs needed for GKI"
+	select VIDEOBUF2_CORE
+	select V4L2_MEM2MEM_DEV
+	select MEDIA_CONTROLLER
+	select MEDIA_CONTROLLER_REQUEST_API
+	select MEDIA_SUPPORT
+	select FRAME_VECTOR
+	select CEC_CORE
+	select CEC_NOTIFIER
+	select CEC_PIN
+	select VIDEOBUF2_DMA_CONTIG
+	select VIDEOBUF2_DMA_SG
+	help
+	  Dummy config option used to enable hidden media configs.
+	  These are normally selected implicitly when a module
+	  that relies on it is configured.
+
+config GKI_HIDDEN_VIRTUAL_CONFIGS
+	bool "Hidden Virtual configs needed for GKI"
+	select HVC_DRIVER
+	help
+	  Dummy config option used to enable hidden virtual device configs.
+	  These are normally selected implicitly when a module
+	  that relies on it is configured.
+
+# LEGACY_WEXT_ALLCONFIG Discussed upstream, soundly rejected as a unique
+# problem for GKI to solve.  It should be noted that these extensions are
+# in-effect deprecated and generally unsupported and we should pressure
+# the SOC vendors to drop any modules that require these extensions.
+config GKI_LEGACY_WEXT_ALLCONFIG
+	bool "Hidden wireless extension configs needed for GKI"
+	select WIRELESS_EXT
+	select WEXT_CORE
+	select WEXT_PROC
+	select WEXT_SPY
+	select WEXT_PRIV
+	help
+	  Dummy config option used to enable all the hidden legacy wireless
+	  extensions to the core wireless network functionality used by
+	  add-in modules.
+
+	  If you are not building a kernel to be used for a variety of
+	  out-of-kernel built wireless modules, say N here.
+
+config GKI_HIDDEN_USB_CONFIGS
+	bool "Hiddel USB configurations needed for GKI"
+	select USB_PHY
+	help
+	  Dummy config option used to enable all USB related hidden configs.
+	  These configurations are usually only selected by another config
+	  option or a combination of them.
+
+	  If you are not building a kernel to be used for a variety of
+	  out-of-kernel build USB drivers, say N here.
+
+config GKI_HIDDEN_SOC_BUS_CONFIGS
+	bool "Hidden SoC bus configuration needed for GKI"
+	select SOC_BUS
+	  help
+	    Dummy config option used to enable SOC_BUS hidden Kconfig.
+	    The configuration is required for SoCs to register themselves to the bus.
+
+	    If you are not building a kernel to be used for a variety of SoCs and
+	    out-of-tree drivers, say N here.
+
+config GKI_HIDDEN_RPMSG_CONFIGS
+	bool "Hidden RPMSG configuration needed for GKI"
+	select RPMSG
+	help
+	  Dummy config option used to enable the hidden RPMSG config.
+	  This configuration is usually only selected by another config
+	  option or a combination of them.
+
+	  If you are not building a kernel to be used for a variety of
+	  out-of-kernel build RPMSG drivers, say N here.
+
+config GKI_HIDDEN_GPU_CONFIGS
+	bool "Hidden GPU configuration needed for GKI"
+	select TRACE_GPU_MEM
+	help
+	  Dummy config option used to enable the hidden GPU config.
+	  These are normally selected implicitly when a module
+	  that relies on it is configured.
+
+config GKI_HIDDEN_IRQ_CONFIGS
+	bool "Hidden IRQ configuration needed for GKI"
+	select GENERIC_IRQ_CHIP
+	select IRQ_DOMAIN_HIERARCHY
+	select IRQ_FASTEOI_HIERARCHY_HANDLERS
+	help
+	  Dummy config option used to enable GENERIC_IRQ_CHIP hidden
+	  config, required by various SoC platforms. This is usually
+	  selected by ARCH_*.
+
+config GKI_HIDDEN_HYPERVISOR_CONFIGS
+	bool "Hidden hypervisor configuration needed for GKI"
+	select SYS_HYPERVISOR
+	help
+	  Dummy config option used to enable the SYS_HYPERVISOR hidden
+	  config, required by various SoC platforms. This is usually
+	  selected by XEN or S390.
+
+config GKI_HIDDEN_NET_CONFIGS
+	bool "Hidden networking configuration needed for GKI"
+	select PAGE_POOL
+	select NET_PTP_CLASSIFY
+	select NET_DEVLINK
+	help
+	  Dummy config option used to enable the networking hidden
+	  config, required by various SoC platforms.
+
+config GKI_HIDDEN_PHY_CONFIGS
+	bool "Hidden PHY configuration needed for GKI"
+	select GENERIC_PHY_MIPI_DPHY
+	help
+	  Dummy config option used to enable the hidden PHY configs,
+	  required by various SoC platforms.
+
+config GKI_HIDDEN_MM_CONFIGS
+	bool "Hidden MM configuration needed for GKI"
+	select PAGE_REPORTING
+	select BALLOON_COMPACTION
+	select MEMORY_BALLOON
+	help
+	  Dummy config option used to enable hidden MM configs,
+	  currently required for VIRTIO_BALLOON
+
+config GKI_HIDDEN_ETHERNET_CONFIGS
+	bool "Hidden Ethernet configuration needed for GKI"
+	select PHYLINK
+	help
+	  Dummy config option used to enable the hidden Ethernet PHYLINK
+	  configs, required by various ethernet devices.
+
+config GKI_HIDDEN_DMA_CONFIGS
+	bool "Hidden DMA configuration needed for GKI"
+	select ASYNC_TX_ENABLE_CHANNEL_SWITCH
+	help
+	  Dummy config option used to enable the hidden DMA configs,
+	  required by various SoC platforms.
+
+# Atrocities needed for
+# a) building GKI modules in separate tree, or
+# b) building drivers that are not modularizable
+#
+# All of these should be reworked into an upstream solution
+# if possible.
+#
+config GKI_HACKS_TO_FIX
+	bool "GKI Dummy config options"
+	select GKI_HIDDEN_CRYPTO_CONFIGS
+	select GKI_HIDDEN_DRM_CONFIGS
+	select GKI_HIDDEN_REGMAP_CONFIGS
+	select GKI_HIDDEN_SND_CONFIGS
+	select GKI_HIDDEN_SND_SOC_CONFIGS
+	select GKI_HIDDEN_MMC_CONFIGS
+	select GKI_HIDDEN_GPIO_CONFIGS
+	select GKI_HIDDEN_QCOM_CONFIGS
+	select GKI_LEGACY_WEXT_ALLCONFIG
+	select GKI_HIDDEN_MEDIA_CONFIGS
+	select GKI_HIDDEN_VIRTUAL_CONFIGS
+	select GKI_HIDDEN_USB_CONFIGS
+	select GKI_HIDDEN_SOC_BUS_CONFIGS
+	select GKI_HIDDEN_RPMSG_CONFIGS
+	select GKI_HIDDEN_GPU_CONFIGS
+	select GKI_HIDDEN_IRQ_CONFIGS
+	select GKI_HIDDEN_HYPERVISOR_CONFIGS
+	select GKI_HIDDEN_NET_CONFIGS
+	select GKI_HIDDEN_PHY_CONFIGS
+	select GKI_HIDDEN_MM_CONFIGS
+	select GKI_HIDDEN_ETHERNET_CONFIGS
+	select GKI_HIDDEN_DMA_CONFIGS
+
+	help
+	  Dummy config option used to enable core functionality used by
+	  modules that may not be selectable in this config.
+
+	  Unless you are building a GKI kernel to be used with modules
+	  built from a different config, say N here.
diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c
index 533d81e..cd4a811 100644
--- a/init/do_mounts_initrd.c
+++ b/init/do_mounts_initrd.c
@@ -83,7 +83,7 @@
 	 * In case that a resume from disk is carried out by linuxrc or one of
 	 * its children, we need to tell the freezer not to wait for us.
 	 */
-	current->flags |= PF_FREEZER_SKIP;
+	freezer_do_not_count();
 
 	info = call_usermodehelper_setup("/linuxrc", argv, envp_init,
 					 GFP_KERNEL, init_linuxrc, NULL, NULL);
diff --git a/init/init_task.c b/init/init_task.c
index 2d02406..559eff8 100644
--- a/init/init_task.c
+++ b/init/init_task.c
@@ -214,6 +214,10 @@
 #ifdef CONFIG_SECCOMP_FILTER
 	.seccomp	= { .filter_count = ATOMIC_INIT(0) },
 #endif
+#ifdef CONFIG_ANDROID_VENDOR_OEM_DATA
+	.android_vendor_data1 = {0, },
+	.android_oem_data1 = {0, },
+#endif
 };
 EXPORT_SYMBOL(init_task);
 
diff --git a/kernel/.gitignore b/kernel/.gitignore
index c6b299a..43a96fc 100644
--- a/kernel/.gitignore
+++ b/kernel/.gitignore
@@ -1,3 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0-only
 /config_data
 /kheaders.md5
+/gki_module_exported.h
+/gki_module_protected.h
diff --git a/kernel/Makefile b/kernel/Makefile
index 599cb92..0228514 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -41,9 +41,6 @@
 UBSAN_SANITIZE_kcov.o := n
 CFLAGS_kcov.o := $(call cc-option, -fno-conserve-stack) -fno-stack-protector
 
-# Don't instrument error handlers
-CFLAGS_REMOVE_cfi.o := $(CC_FLAGS_CFI)
-
 obj-y += sched/
 obj-y += locking/
 obj-y += power/
@@ -69,6 +66,7 @@
 obj-$(CONFIG_MODULES) += module.o
 obj-$(CONFIG_MODULE_SIG) += module_signing.o
 obj-$(CONFIG_MODULE_SIG_FORMAT) += module_signature.o
+obj-$(CONFIG_MODULE_SIG_PROTECT) += gki_module.o
 obj-$(CONFIG_KALLSYMS) += kallsyms.o
 obj-$(CONFIG_BSD_PROCESS_ACCT) += acct.o
 obj-$(CONFIG_CRASH_CORE) += crash_core.o
@@ -160,3 +158,19 @@
 	$(call cmd,genikh)
 
 clean-files := kheaders_data.tar.xz kheaders.md5
+
+#
+# ANDROID: GKI: Generate headerfiles required for gki_module.o
+#
+# Dependencies on generated files need to be listed explicitly
+$(obj)/gki_module.o: $(obj)/gki_module_protected.h $(obj)/gki_module_exported.h
+
+$(obj)/gki_module_protected.h: $(srctree)/android/abi_gki_modules_protected \
+				$(srctree)/scripts/gen_gki_modules_headers.sh
+	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/gen_gki_modules_headers.sh $@ \
+	"$(srctree)"
+
+$(obj)/gki_module_exported.h: $(srctree)/android/abi_gki_modules_exports \
+				$(srctree)/scripts/gen_gki_modules_headers.sh
+	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/gen_gki_modules_headers.sh $@ \
+	"$(srctree)"
diff --git a/kernel/bounds.c b/kernel/bounds.c
index 9795d75..b529182 100644
--- a/kernel/bounds.c
+++ b/kernel/bounds.c
@@ -22,6 +22,13 @@
 	DEFINE(NR_CPUS_BITS, ilog2(CONFIG_NR_CPUS));
 #endif
 	DEFINE(SPINLOCK_SIZE, sizeof(spinlock_t));
+#ifdef CONFIG_LRU_GEN
+	DEFINE(LRU_GEN_WIDTH, order_base_2(MAX_NR_GENS + 1));
+	DEFINE(__LRU_REFS_WIDTH, MAX_NR_TIERS - 2);
+#else
+	DEFINE(LRU_GEN_WIDTH, 0);
+	DEFINE(__LRU_REFS_WIDTH, 0);
+#endif
 	/* End of constants */
 
 	return 0;
diff --git a/kernel/bpf/Makefile b/kernel/bpf/Makefile
index 7f33098..0115967 100644
--- a/kernel/bpf/Makefile
+++ b/kernel/bpf/Makefile
@@ -36,3 +36,6 @@
 obj-${CONFIG_BPF_LSM} += bpf_lsm.o
 endif
 obj-$(CONFIG_BPF_PRELOAD) += preload/
+ifeq ($(CONFIG_FUSE_BPF),y)
+obj-$(CONFIG_BPF_SYSCALL) += bpf_fuse.o
+endif
diff --git a/kernel/bpf/bpf_fuse.c b/kernel/bpf/bpf_fuse.c
new file mode 100644
index 0000000..c6aa670b
--- /dev/null
+++ b/kernel/bpf/bpf_fuse.c
@@ -0,0 +1,128 @@
+// SPDX-License-Identifier: GPL-2.0
+// Copyright (c) 2021 Google LLC
+
+#include <linux/filter.h>
+#include <linux/android_fuse.h>
+
+static const struct bpf_func_proto *
+fuse_prog_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
+{
+	switch (func_id) {
+	case BPF_FUNC_trace_printk:
+			return bpf_get_trace_printk_proto();
+
+	case BPF_FUNC_get_current_uid_gid:
+			return &bpf_get_current_uid_gid_proto;
+
+	case BPF_FUNC_get_current_pid_tgid:
+			return &bpf_get_current_pid_tgid_proto;
+
+	case BPF_FUNC_map_lookup_elem:
+		return &bpf_map_lookup_elem_proto;
+
+	case BPF_FUNC_map_update_elem:
+		return &bpf_map_update_elem_proto;
+
+	default:
+		pr_debug("Invalid fuse bpf func %d\n", func_id);
+		return NULL;
+	}
+}
+
+static bool fuse_prog_is_valid_access(int off, int size,
+				enum bpf_access_type type,
+				const struct bpf_prog *prog,
+				struct bpf_insn_access_aux *info)
+{
+	int i;
+
+	if (off < 0 || off > offsetofend(struct fuse_bpf_args, out_args))
+		return false;
+
+	/* TODO This is garbage. Do it properly */
+	for (i = 0; i < 5; i++) {
+		if (off == offsetof(struct fuse_bpf_args, in_args[i].value)) {
+			info->reg_type = PTR_TO_BUF;
+			info->ctx_field_size = 256;
+			if (type != BPF_READ)
+				return false;
+			return true;
+		}
+	}
+	for (i = 0; i < 3; i++) {
+		if (off == offsetof(struct fuse_bpf_args, out_args[i].value)) {
+			info->reg_type = PTR_TO_BUF;
+			info->ctx_field_size = 256;
+			return true;
+		}
+	}
+	if (type != BPF_READ)
+		return false;
+
+	return true;
+}
+
+const struct bpf_verifier_ops fuse_verifier_ops = {
+	.get_func_proto  = fuse_prog_func_proto,
+	.is_valid_access = fuse_prog_is_valid_access,
+};
+
+const struct bpf_prog_ops fuse_prog_ops = {
+};
+
+struct bpf_prog *fuse_get_bpf_prog(struct file *file)
+{
+	struct bpf_prog *bpf_prog = ERR_PTR(-EINVAL);
+
+	if (!file || IS_ERR(file))
+		return bpf_prog;
+	/**
+	 * Two ways of getting a bpf prog from another task's fd, since
+	 * bpf_prog_get_type_dev only works with an fd
+	 *
+	 * 1) Duplicate a little of the needed code. Requires access to
+	 *    bpf_prog_fops for validation, which is not exported for modules
+	 * 2) Insert the bpf_file object into a fd from the current task
+	 *    Stupidly complex, but I think OK, as security checks are not run
+	 *    during the existence of the handle
+	 *
+	 * Best would be to upstream 1) into kernel/bpf/syscall.c and export it
+	 * for use here. Failing that, we have to use 2, since fuse must be
+	 * compilable as a module.
+	 */
+#if 1
+	if (file->f_op != &bpf_prog_fops)
+		goto out;
+
+	bpf_prog = file->private_data;
+	if (bpf_prog->type == BPF_PROG_TYPE_FUSE)
+		bpf_prog_inc(bpf_prog);
+	else
+		bpf_prog = ERR_PTR(-EINVAL);
+
+#else
+	{
+		int task_fd = get_unused_fd_flags(file->f_flags);
+
+		if (task_fd < 0)
+			goto out;
+
+		fd_install(task_fd, file);
+
+		bpf_prog = bpf_prog_get_type_dev(task_fd, BPF_PROG_TYPE_FUSE,
+						 false);
+
+		/* Close the fd, which also closes the file */
+		__close_fd(current->files, task_fd);
+		file = NULL;
+	}
+#endif
+
+out:
+	if (file)
+		fput(file);
+	return bpf_prog;
+}
+EXPORT_SYMBOL(fuse_get_bpf_prog);
+
+
diff --git a/kernel/bpf/bpf_lru_list.h b/kernel/bpf/bpf_lru_list.h
index 6b12f06..4ea227c 100644
--- a/kernel/bpf/bpf_lru_list.h
+++ b/kernel/bpf/bpf_lru_list.h
@@ -4,6 +4,7 @@
 #ifndef __BPF_LRU_LIST_H_
 #define __BPF_LRU_LIST_H_
 
+#include <linux/cache.h>
 #include <linux/list.h>
 #include <linux/spinlock_types.h>
 
diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c
index 5d4bea5..ae48567 100644
--- a/kernel/bpf/btf.c
+++ b/kernel/bpf/btf.c
@@ -3,6 +3,7 @@
 
 #include <uapi/linux/btf.h>
 #include <uapi/linux/bpf.h>
+#include <uapi/linux/android_fuse.h>
 #include <uapi/linux/bpf_perf_event.h>
 #include <uapi/linux/types.h>
 #include <linux/seq_file.h>
@@ -1295,12 +1296,18 @@
 	if (!bpf_verifier_log_needed(log))
 		return;
 
-	/* btf verifier prints all types it is processing via
-	 * btf_verifier_log_type(..., fmt = NULL).
-	 * Skip those prints for in-kernel BTF verification.
-	 */
-	if (log->level == BPF_LOG_KERNEL && !fmt)
-		return;
+	if (log->level == BPF_LOG_KERNEL) {
+		/* btf verifier prints all types it is processing via
+		 * btf_verifier_log_type(..., fmt = NULL).
+		 * Skip those prints for in-kernel BTF verification.
+		 */
+		if (!fmt)
+			return;
+
+		/* Skip logging when loading module BTF with mismatches permitted */
+		if (env->btf->base_btf && IS_ENABLED(CONFIG_MODULE_ALLOW_BTF_MISMATCH))
+			return;
+	}
 
 	__btf_verifier_log(log, "[%u] %s %s%s",
 			   env->log_type_id,
@@ -1339,8 +1346,15 @@
 	if (!bpf_verifier_log_needed(log))
 		return;
 
-	if (log->level == BPF_LOG_KERNEL && !fmt)
-		return;
+	if (log->level == BPF_LOG_KERNEL) {
+		if (!fmt)
+			return;
+
+		/* Skip logging when loading module BTF with mismatches permitted */
+		if (env->btf->base_btf && IS_ENABLED(CONFIG_MODULE_ALLOW_BTF_MISMATCH))
+			return;
+	}
+
 	/* The CHECK_META phase already did a btf dump.
 	 *
 	 * If member is logged again, it must hit an error in
@@ -6069,10 +6083,14 @@
 		}
 		btf = btf_parse_module(mod->name, mod->btf_data, mod->btf_data_size);
 		if (IS_ERR(btf)) {
-			pr_warn("failed to validate module [%s] BTF: %ld\n",
-				mod->name, PTR_ERR(btf));
 			kfree(btf_mod);
-			err = PTR_ERR(btf);
+			if (!IS_ENABLED(CONFIG_MODULE_ALLOW_BTF_MISMATCH)) {
+				pr_warn("failed to validate module [%s] BTF: %ld\n",
+					mod->name, PTR_ERR(btf));
+				err = PTR_ERR(btf);
+			} else {
+				pr_warn_once("Kernel module BTF mismatch detected, BTF debug info may be unavailable for some modules\n");
+			}
 			goto out;
 		}
 		err = btf_alloc_id(btf);
diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
index ad41b82..b5f17f9 100644
--- a/kernel/bpf/syscall.c
+++ b/kernel/bpf/syscall.c
@@ -32,6 +32,8 @@
 #include <linux/rcupdate_trace.h>
 #include <linux/memcontrol.h>
 
+#include <trace/hooks/syscall_check.h>
+
 #define IS_FD_ARRAY(map) ((map)->map_type == BPF_MAP_TYPE_PERF_EVENT_ARRAY || \
 			  (map)->map_type == BPF_MAP_TYPE_CGROUP_ARRAY || \
 			  (map)->map_type == BPF_MAP_TYPE_ARRAY_OF_MAPS)
@@ -4587,6 +4589,8 @@
 	if (copy_from_bpfptr(&attr, uattr, size) != 0)
 		return -EFAULT;
 
+	trace_android_vh_check_bpf_syscall(cmd, &attr, size);
+
 	err = security_bpf(cmd, &attr, size);
 	if (err < 0)
 		return err;
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index ecf4332..9c185d7 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -876,7 +876,6 @@
 	id = ++env->id_gen;
 	state->refs[new_ofs].id = id;
 	state->refs[new_ofs].insn_idx = insn_idx;
-	state->refs[new_ofs].callback_ref = state->in_callback_fn ? state->frameno : 0;
 
 	return id;
 }
@@ -889,9 +888,6 @@
 	last_idx = state->acquired_refs - 1;
 	for (i = 0; i < state->acquired_refs; i++) {
 		if (state->refs[i].id == ptr_id) {
-			/* Cannot release caller references in callbacks */
-			if (state->in_callback_fn && state->refs[i].callback_ref != state->frameno)
-				return -EINVAL;
 			if (last_idx && i != last_idx)
 				memcpy(&state->refs[i], &state->refs[last_idx],
 				       sizeof(*state->refs));
@@ -6248,17 +6244,10 @@
 		caller->regs[BPF_REG_0] = *r0;
 	}
 
-	/* callback_fn frame should have released its own additions to parent's
-	 * reference state at this point, or check_reference_leak would
-	 * complain, hence it must be the same as the caller. There is no need
-	 * to copy it back.
-	 */
-	if (!callee->in_callback_fn) {
-		/* Transfer references to the caller */
-		err = copy_reference_state(caller, callee);
-		if (err)
-			return err;
-	}
+	/* Transfer references to the caller */
+	err = copy_reference_state(caller, callee);
+	if (err)
+		return err;
 
 	*insn_idx = callee->callsite + 1;
 	if (env->log.level & BPF_LOG_LEVEL) {
@@ -6379,20 +6368,13 @@
 static int check_reference_leak(struct bpf_verifier_env *env)
 {
 	struct bpf_func_state *state = cur_func(env);
-	bool refs_lingering = false;
 	int i;
 
-	if (state->frameno && !state->in_callback_fn)
-		return 0;
-
 	for (i = 0; i < state->acquired_refs; i++) {
-		if (state->in_callback_fn && state->refs[i].callback_ref != state->frameno)
-			continue;
 		verbose(env, "Unreleased reference id=%d alloc_insn=%d\n",
 			state->refs[i].id, state->refs[i].insn_idx);
-		refs_lingering = true;
 	}
-	return refs_lingering ? -EINVAL : 0;
+	return state->acquired_refs ? -EINVAL : 0;
 }
 
 static int check_bpf_snprintf_call(struct bpf_verifier_env *env,
@@ -11374,16 +11356,6 @@
 					return -EINVAL;
 				}
 
-				/* We must do check_reference_leak here before
-				 * prepare_func_exit to handle the case when
-				 * state->curframe > 0, it may be a callback
-				 * function, for which reference_state must
-				 * match caller reference state when it exits.
-				 */
-				err = check_reference_leak(env);
-				if (err)
-					return err;
-
 				if (state->curframe) {
 					/* exit from nested function */
 					err = prepare_func_exit(env, &env->insn_idx);
@@ -11393,6 +11365,10 @@
 					continue;
 				}
 
+				err = check_reference_leak(env);
+				if (err)
+					return err;
+
 				err = check_return_code(env);
 				if (err)
 					return err;
diff --git a/kernel/cfi.c b/kernel/cfi.c
index 08102d1..2789b06 100644
--- a/kernel/cfi.c
+++ b/kernel/cfi.c
@@ -43,6 +43,8 @@
 struct cfi_shadow {
 	/* Page index for the beginning of the shadow */
 	unsigned long base;
+	/* rcu to free old cfi_shadow asynchronously */
+	struct rcu_head rcu;
 	/* An array of __cfi_check locations (as indices to the shadow) */
 	shadow_t shadow[1];
 } __packed;
@@ -182,6 +184,13 @@
 	}
 }
 
+static void free_shadow(struct rcu_head *rcu)
+{
+	struct cfi_shadow *old = container_of(rcu, struct cfi_shadow, rcu);
+
+	vfree(old);
+}
+
 typedef void (*update_shadow_fn)(struct cfi_shadow *, struct module *,
 			unsigned long min_addr, unsigned long max_addr);
 
@@ -211,11 +220,10 @@
 
 	rcu_assign_pointer(cfi_shadow, next);
 	mutex_unlock(&shadow_update_lock);
-	synchronize_rcu();
 
 	if (prev) {
 		set_memory_rw((unsigned long)prev, SHADOW_PAGES);
-		vfree(prev);
+		call_rcu(&prev->rcu, free_shadow);
 	}
 }
 
@@ -311,7 +319,7 @@
 	return fn;
 }
 
-void __cfi_slowpath_diag(uint64_t id, void *ptr, void *diag)
+static inline void __nocfi ___cfi_slowpath_diag(uint64_t id, void *ptr, void *diag)
 {
 	cfi_check_fn fn = find_check_fn((unsigned long)ptr);
 
@@ -320,6 +328,11 @@
 	else /* Don't allow unchecked modules */
 		handle_cfi_failure(ptr);
 }
+
+void __cfi_slowpath_diag(uint64_t id, void *ptr, void *diag)
+{
+	___cfi_slowpath_diag(id, ptr, diag);
+}
 EXPORT_SYMBOL(__cfi_slowpath_diag);
 
 #else /* !CONFIG_MODULES */
diff --git a/kernel/cgroup/cgroup-internal.h b/kernel/cgroup/cgroup-internal.h
index d8fcc13..c45ba89 100644
--- a/kernel/cgroup/cgroup-internal.h
+++ b/kernel/cgroup/cgroup-internal.h
@@ -165,7 +165,6 @@
 #define DEFINE_CGROUP_MGCTX(name)						\
 	struct cgroup_mgctx name = CGROUP_MGCTX_INIT(name)
 
-extern struct mutex cgroup_mutex;
 extern spinlock_t css_set_lock;
 extern struct cgroup_subsys *cgroup_subsys[];
 extern struct list_head cgroup_roots;
@@ -250,7 +249,8 @@
 int cgroup_attach_task(struct cgroup *dst_cgrp, struct task_struct *leader,
 		       bool threadgroup);
 struct task_struct *cgroup_procs_write_start(char *buf, bool threadgroup,
-					     bool *locked)
+					     bool *locked,
+					     struct cgroup *dst_cgrp);
 	__acquires(&cgroup_threadgroup_rwsem);
 void cgroup_procs_write_finish(struct task_struct *task, bool locked)
 	__releases(&cgroup_threadgroup_rwsem);
diff --git a/kernel/cgroup/cgroup-v1.c b/kernel/cgroup/cgroup-v1.c
index ee8b3d8..ce4b987 100644
--- a/kernel/cgroup/cgroup-v1.c
+++ b/kernel/cgroup/cgroup-v1.c
@@ -17,6 +17,7 @@
 #include <linux/fs_parser.h>
 
 #include <trace/events/cgroup.h>
+#include <trace/hooks/cgroup.h>
 
 /*
  * pidlists linger the following amount before being destroyed.  The goal
@@ -505,7 +506,7 @@
 	if (!cgrp)
 		return -ENODEV;
 
-	task = cgroup_procs_write_start(buf, threadgroup, &locked);
+	task = cgroup_procs_write_start(buf, threadgroup, &locked, cgrp);
 	ret = PTR_ERR_OR_ZERO(task);
 	if (ret)
 		goto out_unlock;
@@ -519,13 +520,15 @@
 	tcred = get_task_cred(task);
 	if (!uid_eq(cred->euid, GLOBAL_ROOT_UID) &&
 	    !uid_eq(cred->euid, tcred->uid) &&
-	    !uid_eq(cred->euid, tcred->suid))
+	    !uid_eq(cred->euid, tcred->suid) &&
+	    !ns_capable(tcred->user_ns, CAP_SYS_NICE))
 		ret = -EACCES;
 	put_cred(tcred);
 	if (ret)
 		goto out_finish;
 
 	ret = cgroup_attach_task(cgrp, task, threadgroup);
+	trace_android_vh_cgroup_set_task(ret, task);
 
 out_finish:
 	cgroup_procs_write_finish(task, locked);
diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
index be467ae..6b0d3a0c 100644
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@ -62,6 +62,9 @@
 
 #define CREATE_TRACE_POINTS
 #include <trace/events/cgroup.h>
+#undef CREATE_TRACE_POINTS
+
+#include <trace/hooks/cgroup.h>
 
 #define CGROUP_FILE_NAME_MAX		(MAX_CGROUP_TYPE_NAMELEN +	\
 					 MAX_CFTYPE_NAME + 2)
@@ -2455,6 +2458,7 @@
 
 	return cgroup_taskset_next(tset, dst_cssp);
 }
+EXPORT_SYMBOL_GPL(cgroup_taskset_first);
 
 /**
  * cgroup_taskset_next - iterate to the next task in taskset
@@ -2501,6 +2505,7 @@
 
 	return NULL;
 }
+EXPORT_SYMBOL_GPL(cgroup_taskset_next);
 
 /**
  * cgroup_migrate_execute - migrate a taskset
@@ -2571,6 +2576,7 @@
 		do_each_subsys_mask(ss, ssid, mgctx->ss_mask) {
 			if (ss->attach) {
 				tset->ssid = ssid;
+				trace_android_vh_cgroup_attach(ss, tset);
 				ss->attach(tset);
 			}
 		} while_each_subsys_mask();
@@ -2877,10 +2883,12 @@
 }
 
 struct task_struct *cgroup_procs_write_start(char *buf, bool threadgroup,
-					     bool *threadgroup_locked)
+					     bool *threadgroup_locked,
+					     struct cgroup *dst_cgrp)
 {
 	struct task_struct *tsk;
 	pid_t pid;
+	bool force_migration = false;
 
 	if (kstrtoint(strstrip(buf), 0, &pid) || pid < 0)
 		return ERR_PTR(-EINVAL);
@@ -2911,13 +2919,16 @@
 	if (threadgroup)
 		tsk = tsk->group_leader;
 
+	if (tsk->flags & PF_KTHREAD)
+		trace_android_rvh_cgroup_force_kthread_migration(tsk, dst_cgrp, &force_migration);
+
 	/*
 	 * kthreads may acquire PF_NO_SETAFFINITY during initialization.
 	 * If userland migrates such a kthread to a non-root cgroup, it can
 	 * become trapped in a cpuset, or RT kthread may be born in a
 	 * cgroup with no rt_runtime allocated.  Just say no.
 	 */
-	if (tsk->no_cgroup_migration || (tsk->flags & PF_NO_SETAFFINITY)) {
+	if (!force_migration && (tsk->no_cgroup_migration || (tsk->flags & PF_NO_SETAFFINITY))) {
 		tsk = ERR_PTR(-EINVAL);
 		goto out_unlock_threadgroup;
 	}
@@ -4313,6 +4324,7 @@
 		cft->flags |= __CFTYPE_ONLY_ON_DFL;
 	return cgroup_add_cftypes(ss, cfts);
 }
+EXPORT_SYMBOL_GPL(cgroup_add_dfl_cftypes);
 
 /**
  * cgroup_add_legacy_cftypes - add an array of cftypes for legacy hierarchies
@@ -4330,6 +4342,7 @@
 		cft->flags |= __CFTYPE_NOT_ON_DFL;
 	return cgroup_add_cftypes(ss, cfts);
 }
+EXPORT_SYMBOL_GPL(cgroup_add_legacy_cftypes);
 
 /**
  * cgroup_file_notify - generate a file modified event for a cgroup_file
@@ -4419,6 +4432,7 @@
 		return next;
 	return NULL;
 }
+EXPORT_SYMBOL_GPL(css_next_child);
 
 /**
  * css_next_descendant_pre - find the next descendant for pre-order walk
@@ -4994,7 +5008,7 @@
 	if (!dst_cgrp)
 		return -ENODEV;
 
-	task = cgroup_procs_write_start(buf, threadgroup, &threadgroup_locked);
+	task = cgroup_procs_write_start(buf, threadgroup, &threadgroup_locked, dst_cgrp);
 	ret = PTR_ERR_OR_ZERO(task);
 	if (ret)
 		goto out_unlock;
diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index 6905079..25bc56f 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -67,6 +67,9 @@
 #include <linux/cgroup.h>
 #include <linux/wait.h>
 
+#include <trace/hooks/sched.h>
+#include <trace/hooks/cgroup.h>
+
 DEFINE_STATIC_KEY_FALSE(cpusets_pre_enable_key);
 DEFINE_STATIC_KEY_FALSE(cpusets_enabled_key);
 
@@ -106,6 +109,7 @@
 
 	/* user-configured CPUs and Memory Nodes allow to tasks */
 	cpumask_var_t cpus_allowed;
+	cpumask_var_t cpus_requested;
 	nodemask_t mems_allowed;
 
 	/* effective CPUs and Memory Nodes allow to tasks */
@@ -473,7 +477,8 @@
 /*
  * update task's spread flag if cpuset's page/slab spread flag is set
  *
- * Call with callback_lock or cpuset_mutex held.
+ * Call with callback_lock or cpuset_mutex held. The check can be skipped
+ * if on default hierarchy.
  */
 static void cpuset_update_task_spread_flag(struct cpuset *cs,
 					struct task_struct *tsk)
@@ -499,7 +504,7 @@
 
 static int is_cpuset_subset(const struct cpuset *p, const struct cpuset *q)
 {
-	return	cpumask_subset(p->cpus_allowed, q->cpus_allowed) &&
+	return	cpumask_subset(p->cpus_requested, q->cpus_requested) &&
 		nodes_subset(p->mems_allowed, q->mems_allowed) &&
 		is_cpu_exclusive(p) <= is_cpu_exclusive(q) &&
 		is_mem_exclusive(p) <= is_mem_exclusive(q);
@@ -536,8 +541,13 @@
 	if (!zalloc_cpumask_var(pmask3, GFP_KERNEL))
 		goto free_two;
 
+	if (cs && !zalloc_cpumask_var(&cs->cpus_requested, GFP_KERNEL))
+		goto free_three;
+
 	return 0;
 
+free_three:
+	free_cpumask_var(*pmask3);
 free_two:
 	free_cpumask_var(*pmask2);
 free_one:
@@ -554,6 +564,7 @@
 {
 	if (cs) {
 		free_cpumask_var(cs->cpus_allowed);
+		free_cpumask_var(cs->cpus_requested);
 		free_cpumask_var(cs->effective_cpus);
 		free_cpumask_var(cs->subparts_cpus);
 	}
@@ -582,6 +593,7 @@
 	}
 
 	cpumask_copy(trial->cpus_allowed, cs->cpus_allowed);
+	cpumask_copy(trial->cpus_requested, cs->cpus_requested);
 	cpumask_copy(trial->effective_cpus, cs->effective_cpus);
 	return trial;
 }
@@ -650,7 +662,7 @@
 	cpuset_for_each_child(c, css, par) {
 		if ((is_cpu_exclusive(trial) || is_cpu_exclusive(c)) &&
 		    c != cur &&
-		    cpumask_intersects(trial->cpus_allowed, c->cpus_allowed))
+		    cpumask_intersects(trial->cpus_requested, c->cpus_requested))
 			goto out;
 		if ((is_mem_exclusive(trial) || is_mem_exclusive(c)) &&
 		    c != cur &&
@@ -1101,6 +1113,19 @@
 	mutex_unlock(&cpuset_mutex);
 	cpus_read_unlock();
 }
+EXPORT_SYMBOL_GPL(rebuild_sched_domains);
+
+static int update_cpus_allowed(struct cpuset *cs, struct task_struct *p,
+				const struct cpumask *new_mask)
+{
+	int ret = -EINVAL;
+
+	trace_android_rvh_update_cpus_allowed(p, cs->cpus_requested, new_mask, &ret);
+	if (!ret)
+		return ret;
+
+	return set_cpus_allowed_ptr(p, new_mask);
+}
 
 /**
  * update_tasks_cpumask - Update the cpumasks of tasks in the cpuset.
@@ -1124,7 +1149,7 @@
 		if (top_cs && (task->flags & PF_KTHREAD) &&
 		    kthread_is_per_cpu(task))
 			continue;
-		set_cpus_allowed_ptr(task, cs->effective_cpus);
+		update_cpus_allowed(cs, task, cs->effective_cpus);
 	}
 	css_task_iter_end(&it);
 }
@@ -1146,10 +1171,10 @@
 	if (parent->nr_subparts_cpus) {
 		cpumask_or(new_cpus, parent->effective_cpus,
 			   parent->subparts_cpus);
-		cpumask_and(new_cpus, new_cpus, cs->cpus_allowed);
+		cpumask_and(new_cpus, new_cpus, cs->cpus_requested);
 		cpumask_and(new_cpus, new_cpus, cpu_active_mask);
 	} else {
-		cpumask_and(new_cpus, cs->cpus_allowed, parent->effective_cpus);
+		cpumask_and(new_cpus, cs->cpus_requested, parent_cs(cs)->effective_cpus);
 	}
 }
 
@@ -1591,25 +1616,26 @@
 		return -EACCES;
 
 	/*
-	 * An empty cpus_allowed is ok only if the cpuset has no tasks.
+	 * An empty cpus_requested is ok only if the cpuset has no tasks.
 	 * Since cpulist_parse() fails on an empty mask, we special case
 	 * that parsing.  The validate_change() call ensures that cpusets
 	 * with tasks have cpus.
 	 */
 	if (!*buf) {
-		cpumask_clear(trialcs->cpus_allowed);
+		cpumask_clear(trialcs->cpus_requested);
 	} else {
-		retval = cpulist_parse(buf, trialcs->cpus_allowed);
+		retval = cpulist_parse(buf, trialcs->cpus_requested);
 		if (retval < 0)
 			return retval;
-
-		if (!cpumask_subset(trialcs->cpus_allowed,
-				    top_cpuset.cpus_allowed))
-			return -EINVAL;
 	}
 
+	if (!cpumask_subset(trialcs->cpus_requested, cpu_present_mask))
+		return -EINVAL;
+
+	cpumask_and(trialcs->cpus_allowed, trialcs->cpus_requested, cpu_active_mask);
+
 	/* Nothing to do if the cpus didn't change */
-	if (cpumask_equal(cs->cpus_allowed, trialcs->cpus_allowed))
+	if (cpumask_equal(cs->cpus_requested, trialcs->cpus_requested))
 		return 0;
 
 	retval = validate_change(cs, trialcs);
@@ -1637,6 +1663,7 @@
 
 	spin_lock_irq(&callback_lock);
 	cpumask_copy(cs->cpus_allowed, trialcs->cpus_allowed);
+	cpumask_copy(cs->cpus_requested, trialcs->cpus_requested);
 
 	/*
 	 * Make sure that subparts_cpus is a subset of cpus_allowed.
@@ -2337,7 +2364,7 @@
 		 * can_attach beforehand should guarantee that this doesn't
 		 * fail.  TODO: have a better way to handle failure here
 		 */
-		WARN_ON_ONCE(set_cpus_allowed_ptr(task, cpus_attach));
+		WARN_ON_ONCE(update_cpus_allowed(cs, task, cpus_attach));
 
 		cpuset_change_task_nodemask(task, &cpuset_attach_nodemask_to);
 		cpuset_update_task_spread_flag(cs, task);
@@ -2567,7 +2594,7 @@
 
 	switch (type) {
 	case FILE_CPULIST:
-		seq_printf(sf, "%*pbl\n", cpumask_pr_args(cs->cpus_allowed));
+		seq_printf(sf, "%*pbl\n", cpumask_pr_args(cs->cpus_requested));
 		break;
 	case FILE_MEMLIST:
 		seq_printf(sf, "%*pbl\n", nodemask_pr_args(&cs->mems_allowed));
@@ -2941,6 +2968,7 @@
 	cs->mems_allowed = parent->mems_allowed;
 	cs->effective_mems = parent->mems_allowed;
 	cpumask_copy(cs->cpus_allowed, parent->cpus_allowed);
+	cpumask_copy(cs->cpus_requested, parent->cpus_requested);
 	cpumask_copy(cs->effective_cpus, parent->cpus_allowed);
 	spin_unlock_irq(&callback_lock);
 out_unlock:
@@ -3020,10 +3048,13 @@
  */
 static void cpuset_fork(struct task_struct *task)
 {
+	int inherit_cpus = 0;
 	if (task_css_is_root(task, cpuset_cgrp_id))
 		return;
 
-	set_cpus_allowed_ptr(task, current->cpus_ptr);
+	trace_android_rvh_cpuset_fork(task, &inherit_cpus);
+	if (!inherit_cpus)
+		set_cpus_allowed_ptr(task, current->cpus_ptr);
 	task->mems_allowed = current->mems_allowed;
 }
 
@@ -3055,8 +3086,10 @@
 	BUG_ON(!alloc_cpumask_var(&top_cpuset.cpus_allowed, GFP_KERNEL));
 	BUG_ON(!alloc_cpumask_var(&top_cpuset.effective_cpus, GFP_KERNEL));
 	BUG_ON(!zalloc_cpumask_var(&top_cpuset.subparts_cpus, GFP_KERNEL));
+	BUG_ON(!alloc_cpumask_var(&top_cpuset.cpus_requested, GFP_KERNEL));
 
 	cpumask_setall(top_cpuset.cpus_allowed);
+	cpumask_setall(top_cpuset.cpus_requested);
 	nodes_setall(top_cpuset.mems_allowed);
 	cpumask_setall(top_cpuset.effective_cpus);
 	nodes_setall(top_cpuset.effective_mems);
@@ -3448,18 +3481,41 @@
  * Description: Returns the cpumask_var_t cpus_allowed of the cpuset
  * attached to the specified @tsk.  Guaranteed to return some non-empty
  * subset of cpu_online_mask, even if this means going outside the
- * tasks cpuset.
+ * tasks cpuset, except when the task is in the top cpuset.
  **/
 
 void cpuset_cpus_allowed(struct task_struct *tsk, struct cpumask *pmask)
 {
 	unsigned long flags;
+	struct cpuset *cs;
 
 	spin_lock_irqsave(&callback_lock, flags);
-	guarantee_online_cpus(tsk, pmask);
+	rcu_read_lock();
+
+	cs = task_cs(tsk);
+	if (cs != &top_cpuset)
+		guarantee_online_cpus(tsk, pmask);
+	/*
+	 * Tasks in the top cpuset won't get update to their cpumasks
+	 * when a hotplug online/offline event happens. So we include all
+	 * offline cpus in the allowed cpu list.
+	 */
+	if ((cs == &top_cpuset) || cpumask_empty(pmask)) {
+		const struct cpumask *possible_mask = task_cpu_possible_mask(tsk);
+
+		/*
+		 * We first exclude cpus allocated to partitions. If there is no
+		 * allowable online cpu left, we fall back to all possible cpus.
+		 */
+		cpumask_andnot(pmask, possible_mask, top_cpuset.subparts_cpus);
+		if (!cpumask_intersects(pmask, cpu_online_mask))
+			cpumask_copy(pmask, possible_mask);
+	}
+
+	rcu_read_unlock();
 	spin_unlock_irqrestore(&callback_lock, flags);
 }
-
+EXPORT_SYMBOL_GPL(cpuset_cpus_allowed);
 /**
  * cpuset_cpus_allowed_fallback - final fallback before complete catastrophe.
  * @tsk: pointer to task_struct with which the scheduler is struggling
diff --git a/kernel/cgroup/legacy_freezer.c b/kernel/cgroup/legacy_freezer.c
index 0823679..081d026 100644
--- a/kernel/cgroup/legacy_freezer.c
+++ b/kernel/cgroup/legacy_freezer.c
@@ -479,3 +479,4 @@
 	.fork		= freezer_fork,
 	.legacy_cftypes	= files,
 };
+EXPORT_SYMBOL_GPL(freezer_cgrp_subsys);
diff --git a/kernel/cpu.c b/kernel/cpu.c
index 393114c..fbd2455 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -35,6 +35,7 @@
 #include <linux/percpu-rwsem.h>
 #include <linux/cpuset.h>
 #include <linux/random.h>
+#include <uapi/linux/sched/types.h>
 
 #include <trace/events/power.h>
 #define CREATE_TRACE_POINTS
@@ -1344,6 +1345,25 @@
 	complete_ap_thread(st, true);
 }
 
+static int switch_to_rt_policy(void)
+{
+	struct sched_param param = { .sched_priority = MAX_RT_PRIO - 1 };
+	unsigned int policy = current->policy;
+
+	if (policy == SCHED_NORMAL)
+		/* Switch to SCHED_FIFO from SCHED_NORMAL. */
+		return sched_setscheduler_nocheck(current, SCHED_FIFO, &param);
+	else
+		return 1;
+}
+
+static int switch_to_fair_policy(void)
+{
+	struct sched_param param = { .sched_priority = 0 };
+
+	return sched_setscheduler_nocheck(current, SCHED_NORMAL, &param);
+}
+
 /* Requires cpu_add_remove_lock to be held */
 static int _cpu_up(unsigned int cpu, int tasks_frozen, enum cpuhp_state target)
 {
@@ -1408,6 +1428,7 @@
 static int cpu_up(unsigned int cpu, enum cpuhp_state target)
 {
 	int err = 0;
+	int switch_err;
 
 	if (!cpu_possible(cpu)) {
 		pr_err("can't online cpu %d because it is not configured as may-hotadd at boot time\n",
@@ -1418,9 +1439,21 @@
 		return -EINVAL;
 	}
 
+	/*
+	 * CPU hotplug operations consists of many steps and each step
+	 * calls a callback of core kernel subsystem. CPU hotplug-in
+	 * operation may get preempted by other CFS tasks and whole
+	 * operation of cpu hotplug in CPU gets delayed. Switch the
+	 * current task to SCHED_FIFO from SCHED_NORMAL, so that
+	 * hotplug in operation may complete quickly in heavy loaded
+	 * conditions and new CPU will start handle the workload.
+	 */
+
+	switch_err = switch_to_rt_policy();
+
 	err = try_online_node(cpu_to_node(cpu));
 	if (err)
-		return err;
+		goto switch_out;
 
 	cpu_maps_update_begin();
 
@@ -1436,6 +1469,14 @@
 	err = _cpu_up(cpu, 0, target);
 out:
 	cpu_maps_update_done();
+switch_out:
+	if (!switch_err) {
+		switch_err = switch_to_fair_policy();
+		if (switch_err)
+			pr_err("Hotplug policy switch err=%d Task %s pid=%d\n",
+				switch_err, current->comm, current->pid);
+	}
+
 	return err;
 }
 
@@ -1663,6 +1704,30 @@
 
 int __boot_cpu_id;
 
+/* Horrific hacks because we can't add more to cpuhp_hp_states. */
+static int random_and_perf_prepare_fusion(unsigned int cpu)
+{
+	int (*fn)(unsigned int cpu);
+	fn = perf_event_init_cpu;
+	if (fn)
+		fn(cpu);
+	fn = random_prepare_cpu;
+	if (fn)
+		fn(cpu);
+	return 0;
+}
+static int random_and_workqueue_online_fusion(unsigned int cpu)
+{
+	int (*fn)(unsigned int cpu);
+	fn = workqueue_online_cpu;
+	if (fn)
+		fn(cpu);
+	fn = random_online_cpu;
+	if (fn)
+		fn(cpu);
+	return 0;
+}
+
 #endif /* CONFIG_SMP */
 
 /* Boot processor state steps */
@@ -1681,14 +1746,9 @@
 	},
 	[CPUHP_PERF_PREPARE] = {
 		.name			= "perf:prepare",
-		.startup.single		= perf_event_init_cpu,
+		.startup.single		= random_and_perf_prepare_fusion,
 		.teardown.single	= perf_event_exit_cpu,
 	},
-	[CPUHP_RANDOM_PREPARE] = {
-		.name			= "random:prepare",
-		.startup.single		= random_prepare_cpu,
-		.teardown.single	= NULL,
-	},
 	[CPUHP_WORKQUEUE_PREP] = {
 		.name			= "workqueue:prepare",
 		.startup.single		= workqueue_prepare_cpu,
@@ -1809,14 +1869,9 @@
 	},
 	[CPUHP_AP_WORKQUEUE_ONLINE] = {
 		.name			= "workqueue:online",
-		.startup.single		= workqueue_online_cpu,
+		.startup.single		= random_and_workqueue_online_fusion,
 		.teardown.single	= workqueue_offline_cpu,
 	},
-	[CPUHP_AP_RANDOM_ONLINE] = {
-		.name			= "random:online",
-		.startup.single		= random_online_cpu,
-		.teardown.single	= NULL,
-	},
 	[CPUHP_AP_RCUTREE_ONLINE] = {
 		.name			= "RCU/tree:online",
 		.startup.single		= rcutree_online_cpu,
diff --git a/kernel/cred.c b/kernel/cred.c
index 933155c..bd863bc5 100644
--- a/kernel/cred.c
+++ b/kernel/cred.c
@@ -17,6 +17,8 @@
 #include <linux/cn_proc.h>
 #include <linux/uidgid.h>
 
+#include <trace/hooks/creds.h>
+
 #if 0
 #define kdebug(FMT, ...)						\
 	printk("[%-5.5s%5u] " FMT "\n",					\
@@ -181,6 +183,7 @@
 	key_put(tsk->cached_requested_key);
 	tsk->cached_requested_key = NULL;
 #endif
+	trace_android_rvh_exit_creds(tsk, cred);
 }
 
 /**
@@ -499,6 +502,7 @@
 		inc_rlimit_ucounts(new->ucounts, UCOUNT_RLIMIT_NPROC, 1);
 	rcu_assign_pointer(task->real_cred, new);
 	rcu_assign_pointer(task->cred, new);
+	trace_android_rvh_commit_creds(task, new);
 	if (new->user != old->user || new->user_ns != old->user_ns)
 		dec_rlimit_ucounts(old->ucounts, UCOUNT_RLIMIT_NPROC, 1);
 	alter_cred_subscribers(old, -2);
@@ -576,6 +580,7 @@
 	get_new_cred((struct cred *)new);
 	alter_cred_subscribers(new, 1);
 	rcu_assign_pointer(current->cred, new);
+	trace_android_rvh_override_creds(current, new);
 	alter_cred_subscribers(old, -1);
 
 	kdebug("override_creds() = %p{%d,%d}", old,
@@ -604,6 +609,7 @@
 	validate_creds(override);
 	alter_cred_subscribers(old, 1);
 	rcu_assign_pointer(current->cred, old);
+	trace_android_rvh_revert_creds(current, old);
 	alter_cred_subscribers(override, -1);
 	put_cred(override);
 }
diff --git a/kernel/dma/coherent.c b/kernel/dma/coherent.c
index 25fc85a..ca05989 100644
--- a/kernel/dma/coherent.c
+++ b/kernel/dma/coherent.c
@@ -75,7 +75,7 @@
 	return ERR_PTR(-ENOMEM);
 }
 
-static void dma_release_coherent_memory(struct dma_coherent_mem *mem)
+static void _dma_release_coherent_memory(struct dma_coherent_mem *mem)
 {
 	if (!mem)
 		return;
@@ -127,10 +127,16 @@
 
 	ret = dma_assign_coherent_memory(dev, mem);
 	if (ret)
-		dma_release_coherent_memory(mem);
+		_dma_release_coherent_memory(mem);
 	return ret;
 }
 
+void dma_release_coherent_memory(struct device *dev)
+{
+	if (dev)
+		_dma_release_coherent_memory(dev->dma_mem);
+}
+
 static void *__dma_alloc_from_coherent(struct device *dev,
 				       struct dma_coherent_mem *mem,
 				       ssize_t size, dma_addr_t *dma_handle)
diff --git a/kernel/dma/contiguous.c b/kernel/dma/contiguous.c
index 3d63d91..7e97771 100644
--- a/kernel/dma/contiguous.c
+++ b/kernel/dma/contiguous.c
@@ -58,6 +58,7 @@
 #endif
 
 struct cma *dma_contiguous_default_area;
+EXPORT_SYMBOL_GPL(dma_contiguous_default_area);
 
 /*
  * Default global CMA area size can be defined in kernel's .config.
diff --git a/kernel/dma/debug.c b/kernel/dma/debug.c
index 2caafd1..13207b5 100644
--- a/kernel/dma/debug.c
+++ b/kernel/dma/debug.c
@@ -1136,10 +1136,11 @@
 				dir2name[entry->direction],
 				dir2name[ref->direction]);
 
+	/* sg list count can be less than map count when partial cache sync */
 	if (ref->sg_call_ents && ref->type == dma_debug_sg &&
-	    ref->sg_call_ents != entry->sg_call_ents) {
+	    ref->sg_call_ents > entry->sg_call_ents) {
 		err_printk(ref->dev, entry, "device driver syncs "
-			   "DMA sg list with different entry count "
+			   "DMA sg list count larger than map count "
 			   "[map count=%d] [sync count=%d]\n",
 			   entry->sg_call_ents, ref->sg_call_ents);
 	}
diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
index ed5dd9e..f330923 100644
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
@@ -60,7 +60,8 @@
 	*phys_limit = dma_to_phys(dev, dma_limit);
 	if (*phys_limit <= DMA_BIT_MASK(zone_dma_bits))
 		return GFP_DMA;
-	if (*phys_limit <= DMA_BIT_MASK(32))
+	if (*phys_limit <= DMA_BIT_MASK(32) &&
+		!zone_dma32_are_empty())
 		return GFP_DMA32;
 	return 0;
 }
@@ -141,7 +142,8 @@
 
 		if (IS_ENABLED(CONFIG_ZONE_DMA32) &&
 		    phys_limit < DMA_BIT_MASK(64) &&
-		    !(gfp & (GFP_DMA32 | GFP_DMA))) {
+		    !(gfp & (GFP_DMA32 | GFP_DMA)) &&
+		    !zone_dma32_are_empty()) {
 			gfp |= GFP_DMA32;
 			goto again;
 		}
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 9478ecc..de839f6 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -415,6 +415,9 @@
 	if (attrs & DMA_ATTR_WRITE_COMBINE)
 		return pgprot_writecombine(prot);
 #endif
+	if (attrs & DMA_ATTR_SYS_CACHE_ONLY ||
+	    attrs & DMA_ATTR_SYS_CACHE_ONLY_NWA)
+		return pgprot_syscached(prot);
 	return pgprot_dmacoherent(prot);
 }
 #endif /* CONFIG_MMU */
diff --git a/kernel/dma/pool.c b/kernel/dma/pool.c
index 4d40dcc..8e79903 100644
--- a/kernel/dma/pool.c
+++ b/kernel/dma/pool.c
@@ -71,7 +71,7 @@
 	end = cma_get_base(cma) + size - 1;
 	if (IS_ENABLED(CONFIG_ZONE_DMA) && (gfp & GFP_DMA))
 		return end <= DMA_BIT_MASK(zone_dma_bits);
-	if (IS_ENABLED(CONFIG_ZONE_DMA32) && (gfp & GFP_DMA32))
+	if (IS_ENABLED(CONFIG_ZONE_DMA32) && (gfp & GFP_DMA32) && !zone_dma32_are_empty())
 		return end <= DMA_BIT_MASK(32);
 	return true;
 }
@@ -153,7 +153,7 @@
 	if (IS_ENABLED(CONFIG_ZONE_DMA))
 		atomic_pool_resize(atomic_pool_dma,
 				   GFP_KERNEL | GFP_DMA);
-	if (IS_ENABLED(CONFIG_ZONE_DMA32))
+	if (IS_ENABLED(CONFIG_ZONE_DMA32) && !zone_dma32_are_empty())
 		atomic_pool_resize(atomic_pool_dma32,
 				   GFP_KERNEL | GFP_DMA32);
 	atomic_pool_resize(atomic_pool_kernel, GFP_KERNEL);
@@ -209,7 +209,7 @@
 		if (!atomic_pool_dma)
 			ret = -ENOMEM;
 	}
-	if (IS_ENABLED(CONFIG_ZONE_DMA32)) {
+	if (IS_ENABLED(CONFIG_ZONE_DMA32) && !zone_dma32_are_empty()) {
 		atomic_pool_dma32 = __dma_atomic_pool_init(atomic_pool_size,
 						GFP_KERNEL | GFP_DMA32);
 		if (!atomic_pool_dma32)
@@ -224,7 +224,7 @@
 static inline struct gen_pool *dma_guess_pool(struct gen_pool *prev, gfp_t gfp)
 {
 	if (prev == NULL) {
-		if (IS_ENABLED(CONFIG_ZONE_DMA32) && (gfp & GFP_DMA32))
+		if (IS_ENABLED(CONFIG_ZONE_DMA32) && (gfp & GFP_DMA32) && !zone_dma32_are_empty())
 			return atomic_pool_dma32;
 		if (atomic_pool_dma && (gfp & GFP_DMA))
 			return atomic_pool_dma;
diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c
index a984967..24fb902 100644
--- a/kernel/dma/swiotlb.c
+++ b/kernel/dma/swiotlb.c
@@ -808,6 +808,11 @@
 	struct io_tlb_mem *mem = rmem->priv;
 	unsigned long nslabs = rmem->size >> IO_TLB_SHIFT;
 
+	if (PageHighMem(pfn_to_page(PHYS_PFN(rmem->base)))) {
+		dev_err(dev, "Restricted DMA pool must be accessible within the linear mapping.");
+		return -EINVAL;
+	}
+
 	/*
 	 * Since multiple devices can share the same pool, the private data,
 	 * io_tlb_mem struct, will be initialized by the first device attached
@@ -862,11 +867,6 @@
 	    of_get_flat_dt_prop(node, "no-map", NULL))
 		return -EINVAL;
 
-	if (PageHighMem(pfn_to_page(PHYS_PFN(rmem->base)))) {
-		pr_err("Restricted DMA pool must be accessible within the linear mapping.");
-		return -EINVAL;
-	}
-
 	rmem->ops = &rmem_swiotlb_ops;
 	pr_info("Reserved memory: created restricted DMA pool at %pa, size %ld MiB\n",
 		&rmem->base, (unsigned long)rmem->size / SZ_1M);
diff --git a/kernel/events/core.c b/kernel/events/core.c
index c7f13da..d24c8fd 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -54,7 +54,6 @@
 #include <linux/highmem.h>
 #include <linux/pgtable.h>
 #include <linux/buildid.h>
-#include <linux/task_work.h>
 
 #include "internal.h"
 
@@ -2358,27 +2357,11 @@
 	event->pmu->del(event, 0);
 	event->oncpu = -1;
 
-	if (event->pending_disable) {
-		event->pending_disable = 0;
+	if (READ_ONCE(event->pending_disable) >= 0) {
+		WRITE_ONCE(event->pending_disable, -1);
 		perf_cgroup_event_disable(event, ctx);
 		state = PERF_EVENT_STATE_OFF;
 	}
-
-	if (event->pending_sigtrap) {
-		bool dec = true;
-
-		event->pending_sigtrap = 0;
-		if (state != PERF_EVENT_STATE_OFF &&
-		    !event->pending_work) {
-			event->pending_work = 1;
-			dec = false;
-			WARN_ON_ONCE(!atomic_long_inc_not_zero(&event->refcount));
-			task_work_add(current, &event->pending_task, TWA_RESUME);
-		}
-		if (dec)
-			local_dec(&event->ctx->nr_pending);
-	}
-
 	perf_event_set_state(event, state);
 
 	if (!is_software_event(event))
@@ -2539,7 +2522,7 @@
  * hold the top-level event's child_mutex, so any descendant that
  * goes to exit will block in perf_event_exit_event().
  *
- * When called from perf_pending_irq it's OK because event->ctx
+ * When called from perf_pending_event it's OK because event->ctx
  * is the current context on this CPU and preemption is disabled,
  * hence we can't get into perf_event_task_sched_out for this context.
  */
@@ -2578,8 +2561,9 @@
 
 void perf_event_disable_inatomic(struct perf_event *event)
 {
-	event->pending_disable = 1;
-	irq_work_queue(&event->pending_irq);
+	WRITE_ONCE(event->pending_disable, smp_processor_id());
+	/* can fail, see perf_pending_event_disable() */
+	irq_work_queue(&event->pending);
 }
 
 #define MAX_INTERRUPTS (~0ULL)
@@ -3536,23 +3520,11 @@
 		raw_spin_lock_nested(&next_ctx->lock, SINGLE_DEPTH_NESTING);
 		if (context_equiv(ctx, next_ctx)) {
 
-			perf_pmu_disable(pmu);
-
-			/* PMIs are disabled; ctx->nr_pending is stable. */
-			if (local_read(&ctx->nr_pending) ||
-			    local_read(&next_ctx->nr_pending)) {
-				/*
-				 * Must not swap out ctx when there's pending
-				 * events that rely on the ctx->task relation.
-				 */
-				raw_spin_unlock(&next_ctx->lock);
-				rcu_read_unlock();
-				goto inside_switch;
-			}
-
 			WRITE_ONCE(ctx->task, next);
 			WRITE_ONCE(next_ctx->task, task);
 
+			perf_pmu_disable(pmu);
+
 			if (cpuctx->sched_cb_usage && pmu->sched_task)
 				pmu->sched_task(ctx, false);
 
@@ -3593,7 +3565,6 @@
 		raw_spin_lock(&ctx->lock);
 		perf_pmu_disable(pmu);
 
-inside_switch:
 		if (cpuctx->sched_cb_usage && pmu->sched_task)
 			pmu->sched_task(ctx, false);
 		task_ctx_sched_out(cpuctx, ctx, EVENT_ALL);
@@ -4612,6 +4583,7 @@
 
 	return ret;
 }
+EXPORT_SYMBOL_GPL(perf_event_read_local);
 
 static int perf_event_read(struct perf_event *event, bool group)
 {
@@ -5073,7 +5045,7 @@
 
 static void _free_event(struct perf_event *event)
 {
-	irq_work_sync(&event->pending_irq);
+	irq_work_sync(&event->pending);
 
 	unaccount_event(event);
 
@@ -6564,43 +6536,32 @@
 		return;
 
 	/*
-	 * Both perf_pending_task() and perf_pending_irq() can race with the
-	 * task exiting.
+	 * perf_pending_event() can race with the task exiting.
 	 */
 	if (current->flags & PF_EXITING)
 		return;
 
-	send_sig_perf((void __user *)event->pending_addr,
-		      event->attr.type, event->attr.sig_data);
+	force_sig_perf((void __user *)event->pending_addr,
+		       event->attr.type, event->attr.sig_data);
 }
 
-/*
- * Deliver the pending work in-event-context or follow the context.
- */
-static void __perf_pending_irq(struct perf_event *event)
+static void perf_pending_event_disable(struct perf_event *event)
 {
-	int cpu = READ_ONCE(event->oncpu);
+	int cpu = READ_ONCE(event->pending_disable);
 
-	/*
-	 * If the event isn't running; we done. event_sched_out() will have
-	 * taken care of things.
-	 */
 	if (cpu < 0)
 		return;
 
-	/*
-	 * Yay, we hit home and are in the context of the event.
-	 */
 	if (cpu == smp_processor_id()) {
-		if (event->pending_sigtrap) {
-			event->pending_sigtrap = 0;
+		WRITE_ONCE(event->pending_disable, -1);
+
+		if (event->attr.sigtrap) {
 			perf_sigtrap(event);
-			local_dec(&event->ctx->nr_pending);
+			atomic_set_release(&event->event_limit, 1); /* rearm event */
+			return;
 		}
-		if (event->pending_disable) {
-			event->pending_disable = 0;
-			perf_event_disable_local(event);
-		}
+
+		perf_event_disable_local(event);
 		return;
 	}
 
@@ -6620,65 +6581,36 @@
 	 *				  irq_work_queue(); // FAILS
 	 *
 	 *  irq_work_run()
-	 *    perf_pending_irq()
+	 *    perf_pending_event()
 	 *
 	 * But the event runs on CPU-B and wants disabling there.
 	 */
-	irq_work_queue_on(&event->pending_irq, cpu);
+	irq_work_queue_on(&event->pending, cpu);
 }
 
-static void perf_pending_irq(struct irq_work *entry)
+static void perf_pending_event(struct irq_work *entry)
 {
-	struct perf_event *event = container_of(entry, struct perf_event, pending_irq);
+	struct perf_event *event = container_of(entry, struct perf_event, pending);
 	int rctx;
 
+	rctx = perf_swevent_get_recursion_context();
 	/*
 	 * If we 'fail' here, that's OK, it means recursion is already disabled
 	 * and we won't recurse 'further'.
 	 */
-	rctx = perf_swevent_get_recursion_context();
 
-	/*
-	 * The wakeup isn't bound to the context of the event -- it can happen
-	 * irrespective of where the event is.
-	 */
+	perf_pending_event_disable(event);
+
 	if (event->pending_wakeup) {
 		event->pending_wakeup = 0;
 		perf_event_wakeup(event);
 	}
 
-	__perf_pending_irq(event);
-
 	if (rctx >= 0)
 		perf_swevent_put_recursion_context(rctx);
 }
 
-static void perf_pending_task(struct callback_head *head)
-{
-	struct perf_event *event = container_of(head, struct perf_event, pending_task);
-	int rctx;
-
-	/*
-	 * If we 'fail' here, that's OK, it means recursion is already disabled
-	 * and we won't recurse 'further'.
-	 */
-	preempt_disable_notrace();
-	rctx = perf_swevent_get_recursion_context();
-
-	if (event->pending_work) {
-		event->pending_work = 0;
-		perf_sigtrap(event);
-		local_dec(&event->ctx->nr_pending);
-	}
-
-	if (rctx >= 0)
-		perf_swevent_put_recursion_context(rctx);
-	preempt_enable_notrace();
-
-	put_event(event);
-}
-
-/*              
+/*
  * We assume there is only KVM supporting the callbacks.
  * Later on, we might change it to a list if there is
  * another virtualization implementation supporting the callbacks.
@@ -9309,8 +9241,8 @@
  */
 
 static int __perf_event_overflow(struct perf_event *event,
-				 int throttle, struct perf_sample_data *data,
-				 struct pt_regs *regs)
+				   int throttle, struct perf_sample_data *data,
+				   struct pt_regs *regs)
 {
 	int events = atomic_read(&event->event_limit);
 	int ret = 0;
@@ -9333,49 +9265,24 @@
 	if (events && atomic_dec_and_test(&event->event_limit)) {
 		ret = 1;
 		event->pending_kill = POLL_HUP;
-		perf_event_disable_inatomic(event);
-	}
-
-	if (event->attr.sigtrap) {
-		unsigned int pending_id = 1;
-
-		if (regs)
-			pending_id = hash32_ptr((void *)instruction_pointer(regs)) ?: 1;
-		if (!event->pending_sigtrap) {
-			event->pending_sigtrap = pending_id;
-			local_inc(&event->ctx->nr_pending);
-		} else if (event->attr.exclude_kernel) {
-			/*
-			 * Should not be able to return to user space without
-			 * consuming pending_sigtrap; with exceptions:
-			 *
-			 *  1. Where !exclude_kernel, events can overflow again
-			 *     in the kernel without returning to user space.
-			 *
-			 *  2. Events that can overflow again before the IRQ-
-			 *     work without user space progress (e.g. hrtimer).
-			 *     To approximate progress (with false negatives),
-			 *     check 32-bit hash of the current IP.
-			 */
-			WARN_ON_ONCE(event->pending_sigtrap != pending_id);
-		}
 		event->pending_addr = data->addr;
-		irq_work_queue(&event->pending_irq);
+
+		perf_event_disable_inatomic(event);
 	}
 
 	READ_ONCE(event->overflow_handler)(event, data, regs);
 
 	if (*perf_event_fasync(event) && event->pending_kill) {
 		event->pending_wakeup = 1;
-		irq_work_queue(&event->pending_irq);
+		irq_work_queue(&event->pending);
 	}
 
 	return ret;
 }
 
 int perf_event_overflow(struct perf_event *event,
-			struct perf_sample_data *data,
-			struct pt_regs *regs)
+			  struct perf_sample_data *data,
+			  struct pt_regs *regs)
 {
 	return __perf_event_overflow(event, 1, data, regs);
 }
@@ -11682,8 +11589,8 @@
 
 
 	init_waitqueue_head(&event->waitq);
-	init_irq_work(&event->pending_irq, perf_pending_irq);
-	init_task_work(&event->pending_task, perf_pending_task);
+	event->pending_disable = -1;
+	init_irq_work(&event->pending, perf_pending_event);
 
 	mutex_init(&event->mmap_mutex);
 	raw_spin_lock_init(&event->addr_filters.lock);
@@ -11705,6 +11612,9 @@
 	if (parent_event)
 		event->event_caps = parent_event->event_caps;
 
+	if (event->attr.sigtrap)
+		atomic_set(&event->event_limit, 1);
+
 	if (task) {
 		event->attach_state = PERF_ATTACH_TASK;
 		/*
diff --git a/kernel/events/ring_buffer.c b/kernel/events/ring_buffer.c
index f40da32..fb35b92 100644
--- a/kernel/events/ring_buffer.c
+++ b/kernel/events/ring_buffer.c
@@ -22,7 +22,7 @@
 	atomic_set(&handle->rb->poll, EPOLLIN);
 
 	handle->event->pending_wakeup = 1;
-	irq_work_queue(&handle->event->pending_irq);
+	irq_work_queue(&handle->event->pending);
 }
 
 /*
diff --git a/kernel/exit.c b/kernel/exit.c
index 80efdfd..e278891 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -69,6 +69,7 @@
 #include <linux/uaccess.h>
 #include <asm/unistd.h>
 #include <asm/mmu_context.h>
+#include <trace/hooks/mm.h>
 
 /*
  * The default value should be high enough to not crash a system that randomly
@@ -469,6 +470,7 @@
 		goto retry;
 	}
 	WRITE_ONCE(mm->owner, c);
+	lru_gen_migrate_mm(mm);
 	task_unlock(c);
 	put_task_struct(c);
 }
@@ -545,6 +547,7 @@
 	task_unlock(current);
 	mmap_read_unlock(mm);
 	mm_update_next_owner(mm);
+	trace_android_vh_exit_mm(mm);
 	mmput(mm);
 	if (test_thread_flag(TIF_MEMDIE))
 		exit_oom_victim();
diff --git a/kernel/fork.c b/kernel/fork.c
index ace0717..cbc4d27 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -42,6 +42,7 @@
 #include <linux/mmu_notifier.h>
 #include <linux/fs.h>
 #include <linux/mm.h>
+#include <linux/mm_inline.h>
 #include <linux/vmacache.h>
 #include <linux/nsproxy.h>
 #include <linux/capability.h>
@@ -97,6 +98,7 @@
 #include <linux/scs.h>
 #include <linux/io_uring.h>
 #include <linux/bpf.h>
+#include <linux/cpufreq_times.h>
 
 #include <asm/pgalloc.h>
 #include <linux/uaccess.h>
@@ -109,6 +111,8 @@
 #define CREATE_TRACE_POINTS
 #include <trace/events/task.h>
 
+#undef CREATE_TRACE_POINTS
+#include <trace/hooks/sched.h>
 /*
  * Minimum number of threads to boot the kernel
  */
@@ -119,6 +123,8 @@
  */
 #define MAX_THREADS FUTEX_TID_MASK
 
+EXPORT_TRACEPOINT_SYMBOL_GPL(task_newtask);
+
 /*
  * Protected counters by write_lock_irq(&tasklist_lock)
  */
@@ -139,6 +145,7 @@
 DEFINE_PER_CPU(unsigned long, process_counts) = 0;
 
 __cacheline_aligned DEFINE_RWLOCK(tasklist_lock);  /* outer */
+EXPORT_SYMBOL_GPL(tasklist_lock);
 
 #ifdef CONFIG_PROVE_RCU
 int lockdep_tasklist_lock_is_held(void)
@@ -226,15 +233,17 @@
 		if (!s)
 			continue;
 
-		/* Mark stack accessible for KASAN. */
+		/* Reset stack metadata. */
 		kasan_unpoison_range(s->addr, THREAD_SIZE);
 
+		stack = kasan_reset_tag(s->addr);
+
 		/* Clear stale pointers from reused stack. */
-		memset(s->addr, 0, THREAD_SIZE);
+		memset(stack, 0, THREAD_SIZE);
 
 		tsk->stack_vm_area = s;
-		tsk->stack = s->addr;
-		return s->addr;
+		tsk->stack = stack;
+		return stack;
 	}
 
 	/*
@@ -254,6 +263,7 @@
 	 * so cache the vm_struct.
 	 */
 	if (stack) {
+		stack = kasan_reset_tag(stack);
 		tsk->stack_vm_area = find_vm_area(stack);
 		tsk->stack = stack;
 	}
@@ -364,16 +374,49 @@
 		 * will be reinitialized.
 		 */
 		*new = data_race(*orig);
-		INIT_LIST_HEAD(&new->anon_vma_chain);
+		INIT_VMA(new);
 		new->vm_next = new->vm_prev = NULL;
+		dup_anon_vma_name(orig, new);
 	}
 	return new;
 }
 
-void vm_area_free(struct vm_area_struct *vma)
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+static void __free_vm_area_struct(struct rcu_head *head)
+{
+	struct vm_area_struct *vma = container_of(head, struct vm_area_struct,
+						  vm_rcu);
+	kmem_cache_free(vm_area_cachep, vma);
+}
+
+static inline void free_vm_area_struct(struct vm_area_struct *vma)
+{
+	call_rcu(&vma->vm_rcu, __free_vm_area_struct);
+}
+#else
+static inline void free_vm_area_struct(struct vm_area_struct *vma)
 {
 	kmem_cache_free(vm_area_cachep, vma);
 }
+#endif
+
+void vm_area_free_no_check(struct vm_area_struct *vma)
+{
+	free_anon_vma_name(vma);
+	if (vma->vm_file)
+		fput(vma->vm_file);
+	free_vm_area_struct(vma);
+}
+
+void vm_area_free(struct vm_area_struct *vma)
+{
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	/* Free only after refcount dropped to negative */
+	if (atomic_dec_return(&vma->file_ref_count) >= 0)
+		return;
+#endif
+	vm_area_free_no_check(vma);
+}
 
 static void account_kernel_stack(struct task_struct *tsk, int account)
 {
@@ -449,9 +492,11 @@
 #ifdef CONFIG_SECCOMP
 	WARN_ON_ONCE(tsk->seccomp.filter);
 #endif
+	cpufreq_task_times_exit(tsk);
 	release_user_cpus_ptr(tsk);
 	scs_release(tsk);
 
+	trace_android_vh_free_task(tsk);
 #ifndef CONFIG_THREAD_INFO_IN_TASK
 	/*
 	 * The task is finally done with both the stack and thread_info,
@@ -632,6 +677,7 @@
 fail_nomem_anon_vma_fork:
 	mpol_put(vma_policy(tmp));
 fail_nomem_policy:
+	tmp->vm_file = NULL;	/* prevents fput within vm_area_free() */
 	vm_area_free(tmp);
 fail_nomem:
 	retval = -ENOMEM;
@@ -973,6 +1019,11 @@
 #ifdef CONFIG_MEMCG
 	tsk->active_memcg = NULL;
 #endif
+#ifdef CONFIG_ANDROID_VENDOR_OEM_DATA
+	memset(&tsk->android_vendor_data1, 0, sizeof(tsk->android_vendor_data1));
+	memset(&tsk->android_oem_data1, 0, sizeof(tsk->android_oem_data1));
+#endif
+	trace_android_vh_dup_task_struct(tsk, orig);
 	return tsk;
 
 free_stack:
@@ -1060,7 +1111,8 @@
 	mm_init_owner(mm, p);
 	mm_init_pasid(mm);
 	RCU_INIT_POINTER(mm->exe_file, NULL);
-	mmu_notifier_subscriptions_init(mm);
+	if (!mmu_notifier_subscriptions_init(mm))
+		goto fail_nopgd;
 	init_tlb_flush_pending(mm);
 #if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !USE_SPLIT_PMD_PTLOCKS
 	mm->pmd_huge_pte = NULL;
@@ -1083,6 +1135,7 @@
 		goto fail_nocontext;
 
 	mm->user_ns = get_user_ns(user_ns);
+	lru_gen_init_mm(mm);
 	return mm;
 
 fail_nocontext:
@@ -1125,6 +1178,7 @@
 	}
 	if (mm->binfmt)
 		module_put(mm->binfmt->module);
+	lru_gen_del_mm(mm);
 	mmdrop(mm);
 }
 
@@ -1135,8 +1189,10 @@
 {
 	might_sleep();
 
-	if (atomic_dec_and_test(&mm->mm_users))
+	if (atomic_dec_and_test(&mm->mm_users)) {
+		trace_android_vh_mmput(mm);
 		__mmput(mm);
+	}
 }
 EXPORT_SYMBOL_GPL(mmput);
 
@@ -2039,6 +2095,8 @@
 		siginitsetinv(&p->blocked, sigmask(SIGKILL)|sigmask(SIGSTOP));
 	}
 
+	cpufreq_task_times_init(p);
+
 	/*
 	 * This _must_ happen before we call free_task(), i.e. before we jump
 	 * to any of the bad_fork_* labels. This is to avoid freeing
@@ -2599,6 +2657,8 @@
 	if (IS_ERR(p))
 		return PTR_ERR(p);
 
+	cpufreq_task_times_alloc(p);
+
 	/*
 	 * Do this prior waking up the new thread - the thread pointer
 	 * might get invalid after that point, if the thread exits quickly.
@@ -2617,6 +2677,13 @@
 		get_task_struct(p);
 	}
 
+	if (IS_ENABLED(CONFIG_LRU_GEN) && !(clone_flags & CLONE_VM)) {
+		/* lock the task to synchronize with memcg migration */
+		task_lock(p);
+		lru_gen_add_mm(p->mm);
+		task_unlock(p);
+	}
+
 	wake_up_new_task(p);
 
 	/* forking complete and child started to run, tell ptracer */
diff --git a/kernel/freezer.c b/kernel/freezer.c
index 45ab36f..d1f7ffe 100644
--- a/kernel/freezer.c
+++ b/kernel/freezer.c
@@ -11,6 +11,7 @@
 #include <linux/syscalls.h>
 #include <linux/freezer.h>
 #include <linux/kthread.h>
+#include <linux/mmu_context.h>
 
 /* total number of freezing conditions in effect */
 atomic_t system_freezing_cnt = ATOMIC_INIT(0);
@@ -52,6 +53,9 @@
 }
 EXPORT_SYMBOL(freezing_slow_path);
 
+#undef CREATE_TRACE_POINT
+#include <trace/hooks/cgroup.h>
+
 /* Refrigerator is place where frozen processes are stored :-). */
 bool __refrigerator(bool check_kthr_stop)
 {
@@ -70,6 +74,7 @@
 		if (!freezing(current) ||
 		    (check_kthr_stop && kthread_should_stop()))
 			current->flags &= ~PF_FROZEN;
+		trace_android_rvh_refrigerator(pm_nosig_freezing);
 		spin_unlock_irq(&freezer_lock);
 
 		if (!(current->flags & PF_FROZEN))
@@ -146,9 +151,16 @@
 void __thaw_task(struct task_struct *p)
 {
 	unsigned long flags;
+	const struct cpumask *mask = task_cpu_possible_mask(p);
 
 	spin_lock_irqsave(&freezer_lock, flags);
-	if (frozen(p))
+	/*
+	 * Wake up frozen tasks. On asymmetric systems where tasks cannot
+	 * run on all CPUs, ttwu() may have deferred a wakeup generated
+	 * before thaw_secondary_cpus() had completed so we generate
+	 * additional wakeups here for tasks in the PF_FREEZER_SKIP state.
+	 */
+	if (frozen(p) || (frozen_or_skipped(p) && mask != cpu_possible_mask))
 		wake_up_process(p);
 	spin_unlock_irqrestore(&freezer_lock, flags);
 }
diff --git a/kernel/futex/core.c b/kernel/futex/core.c
index 764e736..e743c2e 100644
--- a/kernel/futex/core.c
+++ b/kernel/futex/core.c
@@ -43,6 +43,7 @@
 #include <asm/futex.h>
 
 #include "../locking/rtmutex_common.h"
+#include <trace/hooks/futex.h>
 
 /*
  * READ this before attempting to hack on futexes!
@@ -1654,6 +1655,7 @@
 	struct futex_q *this, *next;
 	union futex_key key = FUTEX_KEY_INIT;
 	int ret;
+	int target_nr;
 	DEFINE_WAKE_Q(wake_q);
 
 	if (!bitset)
@@ -1671,6 +1673,7 @@
 
 	spin_lock(&hb->lock);
 
+	trace_android_vh_futex_wake_traverse_plist(&hb->chain, &target_nr, key, bitset);
 	plist_for_each_entry_safe(this, next, &hb->chain, list) {
 		if (match_futex (&this->key, &key)) {
 			if (this->pi_state || this->rt_waiter) {
@@ -1682,6 +1685,7 @@
 			if (!(this->bitset & bitset))
 				continue;
 
+			trace_android_vh_futex_wake_this(ret, nr_wake, target_nr, this->task);
 			mark_wake_futex(&wake_q, this);
 			if (++ret >= nr_wake)
 				break;
@@ -1690,6 +1694,7 @@
 
 	spin_unlock(&hb->lock);
 	wake_up_q(&wake_q);
+	trace_android_vh_futex_wake_up_q_finish(nr_wake, target_nr);
 	return ret;
 }
 
@@ -2475,6 +2480,7 @@
 static inline void __queue_me(struct futex_q *q, struct futex_hash_bucket *hb)
 {
 	int prio;
+	bool already_on_hb = false;
 
 	/*
 	 * The priority used to register this element is
@@ -2487,7 +2493,9 @@
 	prio = min(current->normal_prio, MAX_RT_PRIO);
 
 	plist_node_init(&q->list, prio);
-	plist_add(&q->list, &hb->chain);
+	trace_android_vh_alter_futex_plist_add(&q->list, &hb->chain, &already_on_hb);
+	if (!already_on_hb)
+		plist_add(&q->list, &hb->chain);
 	q->task = current;
 }
 
@@ -2849,8 +2857,10 @@
 		 * flagged for rescheduling. Only call schedule if there
 		 * is no timeout, or if it has yet to expire.
 		 */
-		if (!timeout || timeout->task)
+		if (!timeout || timeout->task) {
+			trace_android_vh_futex_sleep_start(current);
 			freezable_schedule();
+		}
 	}
 	__set_current_state(TASK_RUNNING);
 }
@@ -2938,6 +2948,7 @@
 	if (!bitset)
 		return -EINVAL;
 	q.bitset = bitset;
+	trace_android_vh_futex_wait_start(flags, bitset);
 
 	to = futex_setup_timer(abs_time, &timeout, flags,
 			       current->timer_slack_ns);
@@ -2986,6 +2997,7 @@
 		hrtimer_cancel(&to->timer);
 		destroy_hrtimer_on_stack(&to->timer);
 	}
+	trace_android_vh_futex_wait_end(flags, bitset);
 	return ret;
 }
 
@@ -3964,6 +3976,7 @@
 			return -ENOSYS;
 	}
 
+	trace_android_vh_do_futex(cmd, &flags, uaddr2);
 	switch (cmd) {
 	case FUTEX_WAIT:
 		val3 = FUTEX_BITSET_MATCH_ANY;
diff --git a/kernel/gen_kheaders.sh b/kernel/gen_kheaders.sh
index 1966a74..0c78e64 100755
--- a/kernel/gen_kheaders.sh
+++ b/kernel/gen_kheaders.sh
@@ -74,7 +74,7 @@
 # of tree builds having stale headers in srctree. Just silence CPIO for now.
 for f in $dir_list;
 	do find "$f" -name "*.h";
-done | cpio --quiet -pd $cpio_dir >/dev/null 2>&1
+done | cpio --quiet -pdu $cpio_dir >/dev/null 2>&1
 
 # Remove comments except SDPX lines
 find $cpio_dir -type f -print0 |
diff --git a/kernel/gki_module.c b/kernel/gki_module.c
new file mode 100644
index 0000000..24651df
--- /dev/null
+++ b/kernel/gki_module.c
@@ -0,0 +1,50 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright 2021 Google LLC
+ * Author: ramjiyani@google.com (Ramji Jiyani)
+ */
+
+#include <linux/bsearch.h>
+#include <linux/errno.h>
+#include <linux/kernel.h>
+#include <linux/printk.h>
+#include <linux/string.h>
+
+/*
+ * Build time generated header files
+ *
+ * gki_module_exported.h -- Symbols protected from _export_ by unsigned modules
+ * gki_module_protected.h -- Symbols protected from _access_ by unsigned modules
+ */
+#include "gki_module_protected.h"
+#include "gki_module_exported.h"
+
+#define MAX_STRCMP_LEN (max(MAX_PROTECTED_NAME_LEN, MAX_EXPORTED_NAME_LEN))
+
+/* bsearch() comparision callback */
+static int cmp_name(const void *sym, const void *protected_sym)
+{
+	return strncmp(sym, protected_sym, MAX_STRCMP_LEN);
+}
+
+/**
+ * gki_is_module_protected_symbol - Is a symbol protected from unsigned module?
+ *
+ * @name:	Symbol being checked against protection from unsigned module
+ */
+bool gki_is_module_protected_symbol(const char *name)
+{
+	return bsearch(name, gki_protected_symbols, NO_OF_PROTECTED_SYMBOLS,
+		       MAX_PROTECTED_NAME_LEN, cmp_name) != NULL;
+}
+
+/**
+ * gki_is_module_exported_symbol - Is a symbol exported from a GKI module?
+ *
+ * @name:	Symbol being checked against exported symbols from GKI modules
+ */
+bool gki_is_module_exported_symbol(const char *name)
+{
+	return bsearch(name, gki_exported_symbols, NO_OF_EXPORTED_SYMBOLS,
+		       MAX_EXPORTED_NAME_LEN, cmp_name) != NULL;
+}
diff --git a/kernel/hung_task.c b/kernel/hung_task.c
index 9888e2b..f71b00ac 100644
--- a/kernel/hung_task.c
+++ b/kernel/hung_task.c
@@ -24,6 +24,8 @@
 #include <linux/sched/sysctl.h>
 
 #include <trace/events/sched.h>
+#undef CREATE_TRACE_POINTS
+#include <trace/hooks/hung_task.h>
 
 /*
  * The number of tasks checked:
@@ -93,8 +95,8 @@
 	 * Ensure the task is not frozen.
 	 * Also, skip vfork and any other user process that freezer should skip.
 	 */
-	if (unlikely(t->flags & (PF_FROZEN | PF_FREEZER_SKIP)))
-	    return;
+	if (unlikely(frozen_or_skipped(t)))
+		return;
 
 	/*
 	 * When a freshly created task is scheduled once, changes its state to
@@ -178,6 +180,7 @@
 	int max_count = sysctl_hung_task_check_count;
 	unsigned long last_break = jiffies;
 	struct task_struct *g, *t;
+	bool need_check = true;
 
 	/*
 	 * If the system crashed already then all bets are off,
@@ -196,10 +199,13 @@
 				goto unlock;
 			last_break = jiffies;
 		}
-		/* use "==" to skip the TASK_KILLABLE tasks waiting on NFS */
-		if (READ_ONCE(t->__state) == TASK_UNINTERRUPTIBLE)
-			check_hung_task(t, timeout);
+		trace_android_vh_check_uninterruptible_tasks(t, timeout, &need_check);
+		if (need_check)
+			/* use "==" to skip the TASK_KILLABLE tasks waiting on NFS */
+			if (READ_ONCE(t->__state) == TASK_UNINTERRUPTIBLE)
+				check_hung_task(t, timeout);
 	}
+	trace_android_vh_check_uninterruptible_tasks_dn(NULL);
  unlock:
 	rcu_read_unlock();
 	if (hung_task_show_lock)
diff --git a/kernel/irq/Kconfig b/kernel/irq/Kconfig
index 00d5858..5bf36cb 100644
--- a/kernel/irq/Kconfig
+++ b/kernel/irq/Kconfig
@@ -110,6 +110,9 @@
 config GENERIC_IRQ_RESERVATION_MODE
 	bool
 
+config ARCH_WANTS_IRQ_RAW
+	bool
+
 # Support forced irq threading
 config IRQ_FORCED_THREADING
        bool
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index f392037..aa087b0 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -14,6 +14,7 @@
 #include <linux/interrupt.h>
 #include <linux/kernel_stat.h>
 #include <linux/irqdomain.h>
+#include <linux/wakeup_reason.h>
 
 #include <trace/events/irq.h>
 
@@ -510,8 +511,22 @@
 	 * If the interrupt is not in progress and is not an armed
 	 * wakeup interrupt, proceed.
 	 */
-	if (!irqd_has_set(&desc->irq_data, mask))
+	if (!irqd_has_set(&desc->irq_data, mask)) {
+#ifdef CONFIG_PM_SLEEP
+		if (unlikely(desc->no_suspend_depth &&
+			     irqd_is_wakeup_set(&desc->irq_data))) {
+			unsigned int irq = irq_desc_get_irq(desc);
+			const char *name = "(unnamed)";
+
+			if (desc->action && desc->action->name)
+				name = desc->action->name;
+
+			log_abnormal_wakeup_reason("misconfigured IRQ %u %s",
+						   irq, name);
+		}
+#endif
 		return true;
+	}
 
 	/*
 	 * If the interrupt is an armed wakeup source, mark it pending
diff --git a/kernel/irq/debugfs.c b/kernel/irq/debugfs.c
index e4cff35..f53475d 100644
--- a/kernel/irq/debugfs.c
+++ b/kernel/irq/debugfs.c
@@ -140,6 +140,7 @@
 	BIT_MASK_DESCR(_IRQ_IS_POLLED),
 	BIT_MASK_DESCR(_IRQ_DISABLE_UNLAZY),
 	BIT_MASK_DESCR(_IRQ_HIDDEN),
+	BIT_MASK_DESCR(_IRQ_RAW),
 };
 
 static const struct irq_bit_descr irqdesc_istates[] = {
diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c
index 7a45fd5..fcdda72 100644
--- a/kernel/irq/irqdesc.c
+++ b/kernel/irq/irqdesc.c
@@ -355,9 +355,7 @@
 {
 	return radix_tree_lookup(&irq_desc_tree, irq);
 }
-#ifdef CONFIG_KVM_BOOK3S_64_HV_MODULE
 EXPORT_SYMBOL_GPL(irq_to_desc);
-#endif
 
 static void delete_irq_desc(unsigned int irq)
 {
@@ -698,16 +696,24 @@
 	struct irq_desc *desc;
 	int ret = 0;
 
-	irq_enter();
 
+	__irq_enter_raw();
 	/* The irqdomain code provides boundary checks */
 	desc = irq_resolve_mapping(domain, hwirq);
-	if (likely(desc))
-		handle_irq_desc(desc);
+	__irq_exit_raw();
+	if (likely(desc)) {
+		if (IS_ENABLED(CONFIG_ARCH_WANTS_IRQ_RAW) &&
+		    unlikely(irq_settings_is_raw(desc))) {
+			handle_irq_desc(desc);
+		} else {
+			irq_enter();
+			handle_irq_desc(desc);
+			irq_exit();
+		}
+	}
 	else
 		ret = -EINVAL;
 
-	irq_exit();
 	set_irq_regs(old_regs);
 	return ret;
 }
@@ -937,6 +943,7 @@
 	return desc && desc->kstat_irqs ?
 			*per_cpu_ptr(desc->kstat_irqs, cpu) : 0;
 }
+EXPORT_SYMBOL_GPL(kstat_irqs_cpu);
 
 static bool irq_is_nmi(struct irq_desc *desc)
 {
@@ -994,3 +1001,4 @@
 }
 EXPORT_SYMBOL_GPL(__irq_set_lockdep_class);
 #endif
+EXPORT_SYMBOL_GPL(kstat_irqs_usr);
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 9862372..b208e80 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -294,6 +294,7 @@
 
 	return ret;
 }
+EXPORT_SYMBOL_GPL(irq_do_set_affinity);
 
 #ifdef CONFIG_GENERIC_PENDING_IRQ
 static inline int irq_set_affinity_pending(struct irq_data *data,
diff --git a/kernel/irq/settings.h b/kernel/irq/settings.h
index 7b7efb1..94110c80 100644
--- a/kernel/irq/settings.h
+++ b/kernel/irq/settings.h
@@ -19,6 +19,7 @@
 	_IRQ_DISABLE_UNLAZY	= IRQ_DISABLE_UNLAZY,
 	_IRQ_HIDDEN		= IRQ_HIDDEN,
 	_IRQ_NO_DEBUG		= IRQ_NO_DEBUG,
+	_IRQ_RAW		= IRQ_RAW,
 	_IRQF_MODIFY_MASK	= IRQF_MODIFY_MASK,
 };
 
@@ -35,6 +36,7 @@
 #define IRQ_DISABLE_UNLAZY	GOT_YOU_MORON
 #define IRQ_HIDDEN		GOT_YOU_MORON
 #define IRQ_NO_DEBUG		GOT_YOU_MORON
+#define IRQ_RAW			GOT_YOU_MORON
 #undef IRQF_MODIFY_MASK
 #define IRQF_MODIFY_MASK	GOT_YOU_MORON
 
@@ -186,3 +188,16 @@
 {
 	return desc->status_use_accessors & _IRQ_NO_DEBUG;
 }
+
+static inline bool irq_settings_is_raw(struct irq_desc *desc)
+{
+	if (IS_ENABLED(CONFIG_ARCH_WANTS_IRQ_RAW))
+		return desc->status_use_accessors & _IRQ_RAW;
+
+	/*
+	 * Using IRQ_RAW on architectures that don't expect it is
+	 * likely to be wrong.
+	 */
+	WARN_ON_ONCE(1);
+	return false;
+}
diff --git a/kernel/irq_work.c b/kernel/irq_work.c
index db8c248..1394ca6 100644
--- a/kernel/irq_work.c
+++ b/kernel/irq_work.c
@@ -98,7 +98,7 @@
 	if (!irq_work_claim(work))
 		return false;
 
-	kasan_record_aux_stack(work);
+	kasan_record_aux_stack_noalloc(work);
 
 	preempt_disable();
 	if (cpu != smp_processor_id()) {
@@ -113,7 +113,7 @@
 	return true;
 #endif /* CONFIG_SMP */
 }
-
+EXPORT_SYMBOL_GPL(irq_work_queue_on);
 
 bool irq_work_needs_cpu(void)
 {
diff --git a/kernel/kthread.c b/kernel/kthread.c
index e319a1b6..296b332 100644
--- a/kernel/kthread.c
+++ b/kernel/kthread.c
@@ -482,6 +482,7 @@
 {
 	__kthread_bind_mask(p, mask, TASK_UNINTERRUPTIBLE);
 }
+EXPORT_SYMBOL_GPL(kthread_bind_mask);
 
 /**
  * kthread_bind - bind a just-created kthread to a cpu.
diff --git a/kernel/locking/mutex.c b/kernel/locking/mutex.c
index d456579..5636c8ba 100644
--- a/kernel/locking/mutex.c
+++ b/kernel/locking/mutex.c
@@ -39,6 +39,8 @@
 # define MUTEX_WARN_ON(cond)
 #endif
 
+#include <trace/hooks/dtask.h>
+
 void
 __mutex_init(struct mutex *lock, const char *name, struct lock_class_key *key)
 {
@@ -49,6 +51,7 @@
 	osq_lock_init(&lock->osq);
 #endif
 
+	trace_android_vh_mutex_init(lock);
 	debug_mutex_init(lock, name, key);
 }
 EXPORT_SYMBOL(__mutex_init);
@@ -162,8 +165,10 @@
 	unsigned long curr = (unsigned long)current;
 	unsigned long zero = 0UL;
 
-	if (atomic_long_try_cmpxchg_acquire(&lock->owner, &zero, curr))
+	if (atomic_long_try_cmpxchg_acquire(&lock->owner, &zero, curr)) {
+		trace_android_vh_record_mutex_lock_starttime(current, jiffies);
 		return true;
+	}
 
 	return false;
 }
@@ -199,9 +204,12 @@
 __mutex_add_waiter(struct mutex *lock, struct mutex_waiter *waiter,
 		   struct list_head *list)
 {
+	bool already_on_list = false;
 	debug_mutex_add_waiter(lock, waiter, current);
 
-	list_add_tail(&waiter->list, list);
+	trace_android_vh_alter_mutex_list_add(lock, waiter, list, &already_on_list);
+	if (!already_on_list)
+		list_add_tail(&waiter->list, list);
 	if (__mutex_waiter_is_first(lock, waiter))
 		__mutex_set_flag(lock, MUTEX_FLAG_WAITERS);
 }
@@ -347,9 +355,16 @@
 			 struct ww_acquire_ctx *ww_ctx, struct mutex_waiter *waiter)
 {
 	bool ret = true;
+	int cnt = 0;
+	bool time_out = false;
 
 	rcu_read_lock();
 	while (__mutex_owner(lock) == owner) {
+		trace_android_vh_mutex_opt_spin_start(lock, &time_out, &cnt);
+		if (time_out) {
+			ret = false;
+			break;
+		}
 		/*
 		 * Ensure we emit the owner->on_cpu, dereference _after_
 		 * checking lock->owner still matches owner. If that fails,
@@ -400,6 +415,7 @@
 	if (owner)
 		retval = owner->on_cpu && !vcpu_is_preempted(task_cpu(owner));
 	rcu_read_unlock();
+	trace_android_vh_mutex_can_spin_on_owner(lock, &retval);
 
 	/*
 	 * If lock->owner is not set, the mutex has been released. Return true
@@ -481,6 +497,7 @@
 	if (!waiter)
 		osq_unlock(&lock->osq);
 
+	trace_android_vh_mutex_opt_spin_finish(lock, true);
 	return true;
 
 
@@ -489,6 +506,7 @@
 		osq_unlock(&lock->osq);
 
 fail:
+	trace_android_vh_mutex_opt_spin_finish(lock, false);
 	/*
 	 * If we fell out of the spin path because of need_resched(),
 	 * reschedule now, before we try-lock the mutex. This avoids getting
@@ -530,10 +548,13 @@
 void __sched mutex_unlock(struct mutex *lock)
 {
 #ifndef CONFIG_DEBUG_LOCK_ALLOC
-	if (__mutex_unlock_fast(lock))
+	if (__mutex_unlock_fast(lock)) {
+		trace_android_vh_record_mutex_lock_starttime(current, 0);
 		return;
+	}
 #endif
 	__mutex_unlock_slowpath(lock, _RET_IP_);
+	trace_android_vh_record_mutex_lock_starttime(current, 0);
 }
 EXPORT_SYMBOL(mutex_unlock);
 
@@ -601,6 +622,7 @@
 		lock_acquired(&lock->dep_map, ip);
 		if (ww_ctx)
 			ww_mutex_set_context_fastpath(ww, ww_ctx);
+		trace_android_vh_record_mutex_lock_starttime(current, jiffies);
 		preempt_enable();
 		return 0;
 	}
@@ -636,6 +658,7 @@
 			goto err_early_kill;
 	}
 
+	trace_android_vh_mutex_wait_start(lock);
 	set_current_state(state);
 	for (;;) {
 		bool first;
@@ -685,6 +708,7 @@
 	raw_spin_lock(&lock->wait_lock);
 acquired:
 	__set_current_state(TASK_RUNNING);
+	trace_android_vh_mutex_wait_finish(lock);
 
 	if (ww_ctx) {
 		/*
@@ -709,10 +733,12 @@
 
 	raw_spin_unlock(&lock->wait_lock);
 	preempt_enable();
+	trace_android_vh_record_mutex_lock_starttime(current, jiffies);
 	return 0;
 
 err:
 	__set_current_state(TASK_RUNNING);
+	trace_android_vh_mutex_wait_finish(lock);
 	__mutex_remove_waiter(lock, &waiter);
 err_early_kill:
 	raw_spin_unlock(&lock->wait_lock);
@@ -890,6 +916,7 @@
 	if (owner & MUTEX_FLAG_HANDOFF)
 		__mutex_handoff(lock, next);
 
+	trace_android_vh_mutex_unlock_slowpath(lock);
 	raw_spin_unlock(&lock->wait_lock);
 
 	wake_up_q(&wake_q);
@@ -1029,8 +1056,10 @@
 	MUTEX_WARN_ON(lock->magic != lock);
 
 	locked = __mutex_trylock(lock);
-	if (locked)
+	if (locked) {
+		trace_android_vh_record_mutex_lock_starttime(current, jiffies);
 		mutex_acquire(&lock->dep_map, 0, 1, _RET_IP_);
+	}
 
 	return locked;
 }
diff --git a/kernel/locking/percpu-rwsem.c b/kernel/locking/percpu-rwsem.c
index 70a32a5..be997b3 100644
--- a/kernel/locking/percpu-rwsem.c
+++ b/kernel/locking/percpu-rwsem.c
@@ -7,8 +7,25 @@
 #include <linux/rcupdate.h>
 #include <linux/sched.h>
 #include <linux/sched/task.h>
+#include <linux/slab.h>
+#include <linux/sched/debug.h>
 #include <linux/errno.h>
 
+#include <trace/hooks/dtask.h>
+
+/*
+ * trace_android_vh_record_pcpu_rwsem_starttime  is called in
+ * include/linux/percpu-rwsem.h by including include/hooks/dtask.h, which
+ * will result to build-err. So we create
+ * func:_trace_android_vh_record_pcpu_rwsem_starttime for percpu-rwsem.h to call.
+ */
+void _trace_android_vh_record_pcpu_rwsem_starttime(struct task_struct *tsk,
+		unsigned long settime)
+{
+	trace_android_vh_record_pcpu_rwsem_starttime(tsk, settime);
+}
+EXPORT_SYMBOL_GPL(_trace_android_vh_record_pcpu_rwsem_starttime);
+
 int __percpu_init_rwsem(struct percpu_rw_semaphore *sem,
 			const char *name, struct lock_class_key *key)
 {
@@ -162,7 +179,7 @@
 	__set_current_state(TASK_RUNNING);
 }
 
-bool __percpu_down_read(struct percpu_rw_semaphore *sem, bool try)
+bool __sched __percpu_down_read(struct percpu_rw_semaphore *sem, bool try)
 {
 	if (__percpu_down_read_trylock(sem))
 		return true;
@@ -211,7 +228,7 @@
 	return true;
 }
 
-void percpu_down_write(struct percpu_rw_semaphore *sem)
+void __sched percpu_down_write(struct percpu_rw_semaphore *sem)
 {
 	might_sleep();
 	rwsem_acquire(&sem->dep_map, 0, 0, _RET_IP_);
@@ -236,6 +253,7 @@
 
 	/* Wait for all active readers to complete. */
 	rcuwait_wait_event(&sem->writer, readers_active_check(sem), TASK_UNINTERRUPTIBLE);
+	trace_android_vh_record_pcpu_rwsem_starttime(current, jiffies);
 }
 EXPORT_SYMBOL_GPL(percpu_down_write);
 
@@ -266,5 +284,37 @@
 	 * exclusive write lock because its counting.
 	 */
 	rcu_sync_exit(&sem->rss);
+	trace_android_vh_record_pcpu_rwsem_starttime(current, 0);
 }
 EXPORT_SYMBOL_GPL(percpu_up_write);
+
+static LIST_HEAD(destroy_list);
+static DEFINE_SPINLOCK(destroy_list_lock);
+
+static void destroy_list_workfn(struct work_struct *work)
+{
+	struct percpu_rw_semaphore *sem, *sem2;
+	LIST_HEAD(to_destroy);
+
+	spin_lock(&destroy_list_lock);
+	list_splice_init(&destroy_list, &to_destroy);
+	spin_unlock(&destroy_list_lock);
+
+	if (list_empty(&to_destroy))
+		return;
+
+	list_for_each_entry_safe(sem, sem2, &to_destroy, destroy_list_entry) {
+		percpu_free_rwsem(sem);
+		kfree(sem);
+	}
+}
+
+static DECLARE_WORK(destroy_list_work, destroy_list_workfn);
+
+void percpu_rwsem_async_destroy(struct percpu_rw_semaphore *sem)
+{
+	spin_lock(&destroy_list_lock);
+	list_add_tail(&sem->destroy_list_entry, &destroy_list);
+	spin_unlock(&destroy_list_lock);
+	schedule_work(&destroy_list_work);
+}
diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
index ee5be1d..e7fe51d 100644
--- a/kernel/locking/rtmutex.c
+++ b/kernel/locking/rtmutex.c
@@ -23,6 +23,7 @@
 #include <linux/sched/rt.h>
 #include <linux/sched/wake_q.h>
 #include <linux/ww_mutex.h>
+#include <trace/hooks/dtask.h>
 
 #include "rtmutex_common.h"
 
@@ -324,6 +325,11 @@
 static __always_inline int __waiter_prio(struct task_struct *task)
 {
 	int prio = task->prio;
+	int waiter_prio = 0;
+
+	trace_android_vh_rtmutex_waiter_prio(task, &waiter_prio);
+	if (waiter_prio > 0)
+		return waiter_prio;
 
 	if (!rt_prio(prio))
 		return DEFAULT_PRIO;
@@ -331,43 +337,21 @@
 	return prio;
 }
 
-/*
- * Update the waiter->tree copy of the sort keys.
- */
 static __always_inline void
 waiter_update_prio(struct rt_mutex_waiter *waiter, struct task_struct *task)
 {
-	lockdep_assert_held(&waiter->lock->wait_lock);
-	lockdep_assert(RB_EMPTY_NODE(&waiter->tree.entry));
-
-	waiter->tree.prio = __waiter_prio(task);
-	waiter->tree.deadline = task->dl.deadline;
+	waiter->prio = __waiter_prio(task);
+	waiter->deadline = task->dl.deadline;
 }
 
 /*
- * Update the waiter->pi_tree copy of the sort keys (from the tree copy).
+ * Only use with rt_mutex_waiter_{less,equal}()
  */
-static __always_inline void
-waiter_clone_prio(struct rt_mutex_waiter *waiter, struct task_struct *task)
-{
-	lockdep_assert_held(&waiter->lock->wait_lock);
-	lockdep_assert_held(&task->pi_lock);
-	lockdep_assert(RB_EMPTY_NODE(&waiter->pi_tree.entry));
-
-	waiter->pi_tree.prio = waiter->tree.prio;
-	waiter->pi_tree.deadline = waiter->tree.deadline;
-}
-
-/*
- * Only use with rt_waiter_node_{less,equal}()
- */
-#define task_to_waiter_node(p)	\
-	&(struct rt_waiter_node){ .prio = __waiter_prio(p), .deadline = (p)->dl.deadline }
 #define task_to_waiter(p)	\
-	&(struct rt_mutex_waiter){ .tree = *task_to_waiter_node(p) }
+	&(struct rt_mutex_waiter){ .prio = __waiter_prio(p), .deadline = (p)->dl.deadline }
 
-static __always_inline int rt_waiter_node_less(struct rt_waiter_node *left,
-					       struct rt_waiter_node *right)
+static __always_inline int rt_mutex_waiter_less(struct rt_mutex_waiter *left,
+						struct rt_mutex_waiter *right)
 {
 	if (left->prio < right->prio)
 		return 1;
@@ -384,8 +368,8 @@
 	return 0;
 }
 
-static __always_inline int rt_waiter_node_equal(struct rt_waiter_node *left,
-						 struct rt_waiter_node *right)
+static __always_inline int rt_mutex_waiter_equal(struct rt_mutex_waiter *left,
+						 struct rt_mutex_waiter *right)
 {
 	if (left->prio != right->prio)
 		return 0;
@@ -405,7 +389,7 @@
 static inline bool rt_mutex_steal(struct rt_mutex_waiter *waiter,
 				  struct rt_mutex_waiter *top_waiter)
 {
-	if (rt_waiter_node_less(&waiter->tree, &top_waiter->tree))
+	if (rt_mutex_waiter_less(waiter, top_waiter))
 		return true;
 
 #ifdef RT_MUTEX_BUILD_SPINLOCKS
@@ -413,30 +397,30 @@
 	 * Note that RT tasks are excluded from same priority (lateral)
 	 * steals to prevent the introduction of an unbounded latency.
 	 */
-	if (rt_prio(waiter->tree.prio) || dl_prio(waiter->tree.prio))
+	if (rt_prio(waiter->prio) || dl_prio(waiter->prio))
 		return false;
 
-	return rt_waiter_node_equal(&waiter->tree, &top_waiter->tree);
+	return rt_mutex_waiter_equal(waiter, top_waiter);
 #else
 	return false;
 #endif
 }
 
 #define __node_2_waiter(node) \
-	rb_entry((node), struct rt_mutex_waiter, tree.entry)
+	rb_entry((node), struct rt_mutex_waiter, tree_entry)
 
 static __always_inline bool __waiter_less(struct rb_node *a, const struct rb_node *b)
 {
 	struct rt_mutex_waiter *aw = __node_2_waiter(a);
 	struct rt_mutex_waiter *bw = __node_2_waiter(b);
 
-	if (rt_waiter_node_less(&aw->tree, &bw->tree))
+	if (rt_mutex_waiter_less(aw, bw))
 		return 1;
 
 	if (!build_ww_mutex())
 		return 0;
 
-	if (rt_waiter_node_less(&bw->tree, &aw->tree))
+	if (rt_mutex_waiter_less(bw, aw))
 		return 0;
 
 	/* NOTE: relies on waiter->ww_ctx being set before insertion */
@@ -454,58 +438,48 @@
 static __always_inline void
 rt_mutex_enqueue(struct rt_mutex_base *lock, struct rt_mutex_waiter *waiter)
 {
-	lockdep_assert_held(&lock->wait_lock);
-
-	rb_add_cached(&waiter->tree.entry, &lock->waiters, __waiter_less);
+	rb_add_cached(&waiter->tree_entry, &lock->waiters, __waiter_less);
 }
 
 static __always_inline void
 rt_mutex_dequeue(struct rt_mutex_base *lock, struct rt_mutex_waiter *waiter)
 {
-	lockdep_assert_held(&lock->wait_lock);
-
-	if (RB_EMPTY_NODE(&waiter->tree.entry))
+	if (RB_EMPTY_NODE(&waiter->tree_entry))
 		return;
 
-	rb_erase_cached(&waiter->tree.entry, &lock->waiters);
-	RB_CLEAR_NODE(&waiter->tree.entry);
+	rb_erase_cached(&waiter->tree_entry, &lock->waiters);
+	RB_CLEAR_NODE(&waiter->tree_entry);
 }
 
-#define __node_2_rt_node(node) \
-	rb_entry((node), struct rt_waiter_node, entry)
+#define __node_2_pi_waiter(node) \
+	rb_entry((node), struct rt_mutex_waiter, pi_tree_entry)
 
-static __always_inline bool __pi_waiter_less(struct rb_node *a, const struct rb_node *b)
+static __always_inline bool
+__pi_waiter_less(struct rb_node *a, const struct rb_node *b)
 {
-	return rt_waiter_node_less(__node_2_rt_node(a), __node_2_rt_node(b));
+	return rt_mutex_waiter_less(__node_2_pi_waiter(a), __node_2_pi_waiter(b));
 }
 
 static __always_inline void
 rt_mutex_enqueue_pi(struct task_struct *task, struct rt_mutex_waiter *waiter)
 {
-	lockdep_assert_held(&task->pi_lock);
-
-	rb_add_cached(&waiter->pi_tree.entry, &task->pi_waiters, __pi_waiter_less);
+	rb_add_cached(&waiter->pi_tree_entry, &task->pi_waiters, __pi_waiter_less);
 }
 
 static __always_inline void
 rt_mutex_dequeue_pi(struct task_struct *task, struct rt_mutex_waiter *waiter)
 {
-	lockdep_assert_held(&task->pi_lock);
-
-	if (RB_EMPTY_NODE(&waiter->pi_tree.entry))
+	if (RB_EMPTY_NODE(&waiter->pi_tree_entry))
 		return;
 
-	rb_erase_cached(&waiter->pi_tree.entry, &task->pi_waiters);
-	RB_CLEAR_NODE(&waiter->pi_tree.entry);
+	rb_erase_cached(&waiter->pi_tree_entry, &task->pi_waiters);
+	RB_CLEAR_NODE(&waiter->pi_tree_entry);
 }
 
-static __always_inline void rt_mutex_adjust_prio(struct rt_mutex_base *lock,
-						 struct task_struct *p)
+static __always_inline void rt_mutex_adjust_prio(struct task_struct *p)
 {
 	struct task_struct *pi_task = NULL;
 
-	lockdep_assert_held(&lock->wait_lock);
-	lockdep_assert(rt_mutex_owner(lock) == p);
 	lockdep_assert_held(&p->pi_lock);
 
 	if (task_has_pi_waiters(p))
@@ -594,14 +568,9 @@
  * Chain walk basics and protection scope
  *
  * [R] refcount on task
- * [Pn] task->pi_lock held
+ * [P] task->pi_lock held
  * [L] rtmutex->wait_lock held
  *
- * Normal locking order:
- *
- *   rtmutex->wait_lock
- *     task->pi_lock
- *
  * Step	Description				Protected by
  *	function arguments:
  *	@task					[R]
@@ -616,32 +585,27 @@
  *	again:
  *	  loop_sanity_check();
  *	retry:
- * [1]	  lock(task->pi_lock);			[R] acquire [P1]
- * [2]	  waiter = task->pi_blocked_on;		[P1]
- * [3]	  check_exit_conditions_1();		[P1]
- * [4]	  lock = waiter->lock;			[P1]
- * [5]	  if (!try_lock(lock->wait_lock)) {	[P1] try to acquire [L]
- *	    unlock(task->pi_lock);		release [P1]
+ * [1]	  lock(task->pi_lock);			[R] acquire [P]
+ * [2]	  waiter = task->pi_blocked_on;		[P]
+ * [3]	  check_exit_conditions_1();		[P]
+ * [4]	  lock = waiter->lock;			[P]
+ * [5]	  if (!try_lock(lock->wait_lock)) {	[P] try to acquire [L]
+ *	    unlock(task->pi_lock);		release [P]
  *	    goto retry;
  *	  }
- * [6]	  check_exit_conditions_2();		[P1] + [L]
- * [7]	  requeue_lock_waiter(lock, waiter);	[P1] + [L]
- * [8]	  unlock(task->pi_lock);		release [P1]
+ * [6]	  check_exit_conditions_2();		[P] + [L]
+ * [7]	  requeue_lock_waiter(lock, waiter);	[P] + [L]
+ * [8]	  unlock(task->pi_lock);		release [P]
  *	  put_task_struct(task);		release [R]
  * [9]	  check_exit_conditions_3();		[L]
  * [10]	  task = owner(lock);			[L]
  *	  get_task_struct(task);		[L] acquire [R]
- *	  lock(task->pi_lock);			[L] acquire [P2]
- * [11]	  requeue_pi_waiter(tsk, waiters(lock));[P2] + [L]
- * [12]	  check_exit_conditions_4();		[P2] + [L]
- * [13]	  unlock(task->pi_lock);		release [P2]
+ *	  lock(task->pi_lock);			[L] acquire [P]
+ * [11]	  requeue_pi_waiter(tsk, waiters(lock));[P] + [L]
+ * [12]	  check_exit_conditions_4();		[P] + [L]
+ * [13]	  unlock(task->pi_lock);		release [P]
  *	  unlock(lock->wait_lock);		release [L]
  *	  goto again;
- *
- * Where P1 is the blocking task and P2 is the lock owner; going up one step
- * the owner becomes the next blocked task etc..
- *
-*
  */
 static int __sched rt_mutex_adjust_prio_chain(struct task_struct *task,
 					      enum rtmutex_chainwalk chwalk,
@@ -789,7 +753,7 @@
 	 * enabled we continue, but stop the requeueing in the chain
 	 * walk.
 	 */
-	if (rt_waiter_node_equal(&waiter->tree, task_to_waiter_node(task))) {
+	if (rt_mutex_waiter_equal(waiter, task_to_waiter(task))) {
 		if (!detect_deadlock)
 			goto out_unlock_pi;
 		else
@@ -797,18 +761,13 @@
 	}
 
 	/*
-	 * [4] Get the next lock; per holding task->pi_lock we can't unblock
-	 * and guarantee @lock's existence.
+	 * [4] Get the next lock
 	 */
 	lock = waiter->lock;
 	/*
 	 * [5] We need to trylock here as we are holding task->pi_lock,
 	 * which is the reverse lock order versus the other rtmutex
 	 * operations.
-	 *
-	 * Per the above, holding task->pi_lock guarantees lock exists, so
-	 * inverting this lock order is infeasible from a life-time
-	 * perspective.
 	 */
 	if (!raw_spin_trylock(&lock->wait_lock)) {
 		raw_spin_unlock_irq(&task->pi_lock);
@@ -912,18 +871,17 @@
 	 * or
 	 *
 	 *   DL CBS enforcement advancing the effective deadline.
+	 *
+	 * Even though pi_waiters also uses these fields, and that tree is only
+	 * updated in [11], we can do this here, since we hold [L], which
+	 * serializes all pi_waiters access and rb_erase() does not care about
+	 * the values of the node being removed.
 	 */
 	waiter_update_prio(waiter, task);
 
 	rt_mutex_enqueue(lock, waiter);
 
-	/*
-	 * [8] Release the (blocking) task in preparation for
-	 * taking the owner task in [10].
-	 *
-	 * Since we hold lock->waiter_lock, task cannot unblock, even if we
-	 * release task->pi_lock.
-	 */
+	/* [8] Release the task */
 	raw_spin_unlock(&task->pi_lock);
 	put_task_struct(task);
 
@@ -947,12 +905,7 @@
 		return 0;
 	}
 
-	/*
-	 * [10] Grab the next task, i.e. the owner of @lock
-	 *
-	 * Per holding lock->wait_lock and checking for !owner above, there
-	 * must be an owner and it cannot go away.
-	 */
+	/* [10] Grab the next task, i.e. the owner of @lock */
 	task = get_task_struct(rt_mutex_owner(lock));
 	raw_spin_lock(&task->pi_lock);
 
@@ -965,9 +918,8 @@
 		 * and adjust the priority of the owner.
 		 */
 		rt_mutex_dequeue_pi(task, prerequeue_top_waiter);
-		waiter_clone_prio(waiter, task);
 		rt_mutex_enqueue_pi(task, waiter);
-		rt_mutex_adjust_prio(lock, task);
+		rt_mutex_adjust_prio(task);
 
 	} else if (prerequeue_top_waiter == waiter) {
 		/*
@@ -982,9 +934,8 @@
 		 */
 		rt_mutex_dequeue_pi(task, waiter);
 		waiter = rt_mutex_top_waiter(lock);
-		waiter_clone_prio(waiter, task);
 		rt_mutex_enqueue_pi(task, waiter);
-		rt_mutex_adjust_prio(lock, task);
+		rt_mutex_adjust_prio(task);
 	} else {
 		/*
 		 * Nothing changed. No need to do any priority
@@ -1193,11 +1144,11 @@
 	if (owner == task)
 		return -EDEADLK;
 
+	trace_android_vh_task_blocks_on_rtmutex(lock, waiter, task, ww_ctx, &chwalk);
 	raw_spin_lock(&task->pi_lock);
 	waiter->task = task;
 	waiter->lock = lock;
 	waiter_update_prio(waiter, task);
-	waiter_clone_prio(waiter, task);
 
 	/* Get the top priority waiter on the lock */
 	if (rt_mutex_has_waiters(lock))
@@ -1231,7 +1182,7 @@
 		rt_mutex_dequeue_pi(owner, top_waiter);
 		rt_mutex_enqueue_pi(owner, waiter);
 
-		rt_mutex_adjust_prio(lock, owner);
+		rt_mutex_adjust_prio(owner);
 		if (owner->pi_blocked_on)
 			chain_walk = 1;
 	} else if (rt_mutex_cond_detect_deadlock(waiter, chwalk)) {
@@ -1278,8 +1229,6 @@
 {
 	struct rt_mutex_waiter *waiter;
 
-	lockdep_assert_held(&lock->wait_lock);
-
 	raw_spin_lock(&current->pi_lock);
 
 	waiter = rt_mutex_top_waiter(lock);
@@ -1292,7 +1241,7 @@
 	 * task unblocks.
 	 */
 	rt_mutex_dequeue_pi(current, waiter);
-	rt_mutex_adjust_prio(lock, current);
+	rt_mutex_adjust_prio(current);
 
 	/*
 	 * As we are waking up the top waiter, and the waiter stays
@@ -1529,7 +1478,7 @@
 	if (rt_mutex_has_waiters(lock))
 		rt_mutex_enqueue_pi(owner, rt_mutex_top_waiter(lock));
 
-	rt_mutex_adjust_prio(lock, owner);
+	rt_mutex_adjust_prio(owner);
 
 	/* Store the lock on which owner is blocked or NULL */
 	next_lock = task_blocked_on_lock(owner);
@@ -1575,6 +1524,7 @@
 	struct task_struct *owner;
 	int ret = 0;
 
+	trace_android_vh_rtmutex_wait_start(lock);
 	for (;;) {
 		/* Try to acquire the lock: */
 		if (try_to_take_rt_mutex(lock, current, waiter))
@@ -1608,6 +1558,7 @@
 		set_current_state(state);
 	}
 
+	trace_android_vh_rtmutex_wait_finish(lock);
 	__set_current_state(TASK_RUNNING);
 	return ret;
 }
diff --git a/kernel/locking/rtmutex_api.c b/kernel/locking/rtmutex_api.c
index 56d1938..c45fbf2 100644
--- a/kernel/locking/rtmutex_api.c
+++ b/kernel/locking/rtmutex_api.c
@@ -30,6 +30,8 @@
 	ret = __rt_mutex_lock(&lock->rtmutex, state);
 	if (ret)
 		mutex_release(&lock->dep_map, _RET_IP_);
+	else
+		trace_android_vh_record_rtmutex_lock_starttime(current, jiffies);
 	return ret;
 }
 
@@ -101,8 +103,10 @@
 		return 0;
 
 	ret = __rt_mutex_trylock(&lock->rtmutex);
-	if (ret)
+	if (ret) {
+		trace_android_vh_record_rtmutex_lock_starttime(current, jiffies);
 		mutex_acquire(&lock->dep_map, 0, 1, _RET_IP_);
+	}
 
 	return ret;
 }
@@ -115,6 +119,7 @@
  */
 void __sched rt_mutex_unlock(struct rt_mutex *lock)
 {
+	trace_android_vh_record_rtmutex_lock_starttime(current, 0);
 	mutex_release(&lock->dep_map, _RET_IP_);
 	__rt_mutex_unlock(&lock->rtmutex);
 }
@@ -437,7 +442,7 @@
 	raw_spin_lock_irqsave(&task->pi_lock, flags);
 
 	waiter = task->pi_blocked_on;
-	if (!waiter || rt_waiter_node_equal(&waiter->tree, task_to_waiter_node(task))) {
+	if (!waiter || rt_mutex_waiter_equal(waiter, task_to_waiter(task))) {
 		raw_spin_unlock_irqrestore(&task->pi_lock, flags);
 		return;
 	}
diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h
index 1162e07..c47e836 100644
--- a/kernel/locking/rtmutex_common.h
+++ b/kernel/locking/rtmutex_common.h
@@ -17,44 +17,27 @@
 #include <linux/rtmutex.h>
 #include <linux/sched/wake_q.h>
 
-
-/*
- * This is a helper for the struct rt_mutex_waiter below. A waiter goes in two
- * separate trees and they need their own copy of the sort keys because of
- * different locking requirements.
- *
- * @entry:		rbtree node to enqueue into the waiters tree
- * @prio:		Priority of the waiter
- * @deadline:		Deadline of the waiter if applicable
- *
- * See rt_waiter_node_less() and waiter_*_prio().
- */
-struct rt_waiter_node {
-	struct rb_node	entry;
-	int		prio;
-	u64		deadline;
-};
-
 /*
  * This is the control structure for tasks blocked on a rt_mutex,
  * which is allocated on the kernel stack on of the blocked task.
  *
- * @tree:		node to enqueue into the mutex waiters tree
- * @pi_tree:		node to enqueue into the mutex owner waiters tree
+ * @tree_entry:		pi node to enqueue into the mutex waiters tree
+ * @pi_tree_entry:	pi node to enqueue into the mutex owner waiters tree
  * @task:		task reference to the blocked task
  * @lock:		Pointer to the rt_mutex on which the waiter blocks
  * @wake_state:		Wakeup state to use (TASK_NORMAL or TASK_RTLOCK_WAIT)
+ * @prio:		Priority of the waiter
+ * @deadline:		Deadline of the waiter if applicable
  * @ww_ctx:		WW context pointer
- *
- * @tree is ordered by @lock->wait_lock
- * @pi_tree is ordered by rt_mutex_owner(@lock)->pi_lock
  */
 struct rt_mutex_waiter {
-	struct rt_waiter_node	tree;
-	struct rt_waiter_node	pi_tree;
+	struct rb_node		tree_entry;
+	struct rb_node		pi_tree_entry;
 	struct task_struct	*task;
 	struct rt_mutex_base	*lock;
 	unsigned int		wake_state;
+	int			prio;
+	u64			deadline;
 	struct ww_acquire_ctx	*ww_ctx;
 };
 
@@ -122,7 +105,7 @@
 {
 	struct rb_node *leftmost = rb_first_cached(&lock->waiters);
 
-	return rb_entry(leftmost, struct rt_mutex_waiter, tree.entry) == waiter;
+	return rb_entry(leftmost, struct rt_mutex_waiter, tree_entry) == waiter;
 }
 
 static inline struct rt_mutex_waiter *rt_mutex_top_waiter(struct rt_mutex_base *lock)
@@ -130,10 +113,8 @@
 	struct rb_node *leftmost = rb_first_cached(&lock->waiters);
 	struct rt_mutex_waiter *w = NULL;
 
-	lockdep_assert_held(&lock->wait_lock);
-
 	if (leftmost) {
-		w = rb_entry(leftmost, struct rt_mutex_waiter, tree.entry);
+		w = rb_entry(leftmost, struct rt_mutex_waiter, tree_entry);
 		BUG_ON(w->lock != lock);
 	}
 	return w;
@@ -146,10 +127,8 @@
 
 static inline struct rt_mutex_waiter *task_top_pi_waiter(struct task_struct *p)
 {
-	lockdep_assert_held(&p->pi_lock);
-
 	return rb_entry(p->pi_waiters.rb_leftmost, struct rt_mutex_waiter,
-			pi_tree.entry);
+			pi_tree_entry);
 }
 
 #define RT_MUTEX_HAS_WAITERS	1UL
@@ -211,8 +190,8 @@
 static inline void rt_mutex_init_waiter(struct rt_mutex_waiter *waiter)
 {
 	debug_rt_mutex_init_waiter(waiter);
-	RB_CLEAR_NODE(&waiter->pi_tree.entry);
-	RB_CLEAR_NODE(&waiter->tree.entry);
+	RB_CLEAR_NODE(&waiter->pi_tree_entry);
+	RB_CLEAR_NODE(&waiter->tree_entry);
 	waiter->wake_state = TASK_NORMAL;
 	waiter->task = NULL;
 }
diff --git a/kernel/locking/rwsem.c b/kernel/locking/rwsem.c
index f0287a1..20dc383 100644
--- a/kernel/locking/rwsem.c
+++ b/kernel/locking/rwsem.c
@@ -30,6 +30,8 @@
 
 #ifndef CONFIG_PREEMPT_RT
 #include "lock_events.h"
+#include <trace/hooks/dtask.h>
+#include <trace/hooks/rwsem.h>
 
 /*
  * The least significant 2 bits of the owner value has the following
@@ -133,14 +135,19 @@
  * the owner value concurrently without lock. Read from owner, however,
  * may not need READ_ONCE() as long as the pointer value is only used
  * for comparison and isn't being dereferenced.
+ *
+ * Both rwsem_{set,clear}_owner() functions should be in the same
+ * preempt disable section as the atomic op that changes sem->count.
  */
 static inline void rwsem_set_owner(struct rw_semaphore *sem)
 {
+	lockdep_assert_preemption_disabled();
 	atomic_long_set(&sem->owner, (long)current);
 }
 
 static inline void rwsem_clear_owner(struct rw_semaphore *sem)
 {
+	lockdep_assert_preemption_disabled();
 	atomic_long_set(&sem->owner, 0);
 }
 
@@ -242,6 +249,7 @@
 
 	if (!(*cntp & RWSEM_READ_FAILED_MASK)) {
 		rwsem_set_reader_owned(sem);
+		trace_android_vh_record_rwsem_lock_starttime(current, jiffies);
 		return true;
 	}
 
@@ -251,13 +259,17 @@
 static inline bool rwsem_write_trylock(struct rw_semaphore *sem)
 {
 	long tmp = RWSEM_UNLOCKED_VALUE;
+	bool ret = false;
 
+	preempt_disable();
 	if (atomic_long_try_cmpxchg_acquire(&sem->count, &tmp, RWSEM_WRITER_LOCKED)) {
+		trace_android_vh_record_rwsem_lock_starttime(current, jiffies);
 		rwsem_set_owner(sem);
-		return true;
+		ret = true;
 	}
 
-	return false;
+	preempt_enable();
+	return ret;
 }
 
 /*
@@ -322,21 +334,10 @@
 #ifdef CONFIG_RWSEM_SPIN_ON_OWNER
 	osq_lock_init(&sem->osq);
 #endif
+	trace_android_vh_rwsem_init(sem);
 }
 EXPORT_SYMBOL(__init_rwsem);
 
-enum rwsem_waiter_type {
-	RWSEM_WAITING_FOR_WRITE,
-	RWSEM_WAITING_FOR_READ
-};
-
-struct rwsem_waiter {
-	struct list_head list;
-	struct task_struct *task;
-	enum rwsem_waiter_type type;
-	unsigned long timeout;
-	bool handoff_set;
-};
 #define rwsem_first_waiter(sem) \
 	list_first_entry(&sem->wait_list, struct rwsem_waiter, list)
 
@@ -698,6 +699,7 @@
 		ret = false;
 	rcu_read_unlock();
 	preempt_enable();
+	trace_android_vh_rwsem_can_spin_on_owner(sem, &ret);
 
 	lockevent_cond_inc(rwsem_opt_fail, !ret);
 	return ret;
@@ -723,6 +725,8 @@
 	struct task_struct *new, *owner;
 	unsigned long flags, new_flags;
 	enum owner_state state;
+	int cnt = 0;
+	bool time_out = false;
 
 	owner = rwsem_owner_flags(sem, &flags);
 	state = rwsem_owner_state(owner, flags);
@@ -731,6 +735,9 @@
 
 	rcu_read_lock();
 	for (;;) {
+		trace_android_vh_rwsem_opt_spin_start(sem, &time_out, &cnt, true);
+		if (time_out)
+			break;
 		/*
 		 * When a waiting writer set the handoff flag, it may spin
 		 * on the owner as well. Once that writer acquires the lock,
@@ -794,6 +801,8 @@
 	int prev_owner_state = OWNER_NULL;
 	int loop = 0;
 	u64 rspin_threshold = 0;
+	int cnt = 0;
+	bool time_out = false;
 
 	preempt_disable();
 
@@ -810,6 +819,9 @@
 	for (;;) {
 		enum owner_state owner_state;
 
+		trace_android_vh_rwsem_opt_spin_start(sem, &time_out, &cnt, false);
+		if (time_out)
+			break;
 		owner_state = rwsem_spin_on_owner(sem);
 		if (!(owner_state & OWNER_SPINNABLE))
 			break;
@@ -903,6 +915,7 @@
 		cpu_relax();
 	}
 	osq_unlock(&sem->osq);
+	trace_android_vh_rwsem_opt_spin_finish(sem, taken);
 done:
 	preempt_enable();
 	lockevent_cond_inc(rwsem_opt_fail, !taken);
@@ -950,6 +963,7 @@
 	struct rwsem_waiter waiter;
 	DEFINE_WAKE_Q(wake_q);
 	bool wake = false;
+	bool already_on_list = false;
 
 	/*
 	 * To prevent a constant stream of readers from starving a sleeping
@@ -979,6 +993,7 @@
 			raw_spin_unlock_irq(&sem->wait_lock);
 			wake_up_q(&wake_q);
 		}
+		trace_android_vh_record_rwsem_lock_starttime(current, jiffies);
 		return sem;
 	}
 
@@ -1003,11 +1018,18 @@
 			raw_spin_unlock_irq(&sem->wait_lock);
 			rwsem_set_reader_owned(sem);
 			lockevent_inc(rwsem_rlock_fast);
+			trace_android_vh_record_rwsem_lock_starttime(
+							current, jiffies);
 			return sem;
 		}
 		adjustment += RWSEM_FLAG_WAITERS;
 	}
-	rwsem_add_waiter(sem, &waiter);
+
+	trace_android_vh_alter_rwsem_list_add(
+					&waiter,
+					sem, &already_on_list);
+	if (!already_on_list)
+		rwsem_add_waiter(sem, &waiter);
 
 	/* we're now waiting on the lock, but no longer actively locking */
 	count = atomic_long_add_return(adjustment, &sem->count);
@@ -1026,10 +1048,12 @@
 		    (adjustment & RWSEM_FLAG_WAITERS)))
 		rwsem_mark_wake(sem, RWSEM_WAKE_ANY, &wake_q);
 
+	trace_android_vh_rwsem_wake(sem);
 	raw_spin_unlock_irq(&sem->wait_lock);
 	wake_up_q(&wake_q);
 
 	/* wait to be given the lock */
+	trace_android_vh_rwsem_read_wait_start(sem);
 	for (;;) {
 		set_current_state(state);
 		if (!smp_load_acquire(&waiter.task)) {
@@ -1049,13 +1073,16 @@
 	}
 
 	__set_current_state(TASK_RUNNING);
+	trace_android_vh_rwsem_read_wait_finish(sem);
 	lockevent_inc(rwsem_rlock);
+	trace_android_vh_record_rwsem_lock_starttime(current, jiffies);
 	return sem;
 
 out_nolock:
 	rwsem_del_waiter(sem, &waiter);
 	raw_spin_unlock_irq(&sem->wait_lock);
 	__set_current_state(TASK_RUNNING);
+	trace_android_vh_rwsem_read_wait_finish(sem);
 	lockevent_inc(rwsem_rlock_fail);
 	return ERR_PTR(-EINTR);
 }
@@ -1063,16 +1090,19 @@
 /*
  * Wait until we successfully acquire the write lock
  */
-static struct rw_semaphore *
+static struct rw_semaphore __sched *
 rwsem_down_write_slowpath(struct rw_semaphore *sem, int state)
 {
 	long count;
 	struct rwsem_waiter waiter;
+	int null_owner_retries;
 	DEFINE_WAKE_Q(wake_q);
+	bool already_on_list = false;
 
 	/* do optimistic spinning and steal lock if possible */
 	if (rwsem_can_spin_on_owner(sem) && rwsem_optimistic_spin(sem)) {
 		/* rwsem_optimistic_spin() implies ACQUIRE on success */
+		trace_android_vh_record_rwsem_lock_starttime(current, jiffies);
 		return sem;
 	}
 
@@ -1086,7 +1116,12 @@
 	waiter.handoff_set = false;
 
 	raw_spin_lock_irq(&sem->wait_lock);
-	rwsem_add_waiter(sem, &waiter);
+
+	trace_android_vh_alter_rwsem_list_add(
+					&waiter,
+					sem, &already_on_list);
+	if (!already_on_list)
+		rwsem_add_waiter(sem, &waiter);
 
 	/* we're now waiting on the lock */
 	if (rwsem_first_waiter(sem) != &waiter) {
@@ -1122,9 +1157,11 @@
 	}
 
 wait:
+	trace_android_vh_rwsem_wake(sem);
 	/* wait until we successfully acquire the lock */
+	trace_android_vh_rwsem_write_wait_start(sem);
 	set_current_state(state);
-	for (;;) {
+	for (null_owner_retries = 0;;) {
 		if (rwsem_try_write_lock(sem, &waiter)) {
 			/* rwsem_try_write_lock() implies ACQUIRE on success */
 			break;
@@ -1150,8 +1187,21 @@
 			owner_state = rwsem_spin_on_owner(sem);
 			preempt_enable();
 
-			if (owner_state == OWNER_NULL)
+			/*
+			 * owner is NULL doesn't guarantee the lock is free.
+			 * An incoming reader will temporarily increment the
+			 * reader count without changing owner and the
+			 * rwsem_try_write_lock() will fails if the reader
+			 * is not able to decrement it in time. Allow 8
+			 * trylock attempts when hitting a NULL owner before
+			 * going to sleep.
+			 */
+			if ((owner_state == OWNER_NULL) &&
+			    (null_owner_retries < 8)) {
+				null_owner_retries++;
 				goto trylock_again;
+			}
+			null_owner_retries = 0;
 		}
 
 		schedule();
@@ -1161,12 +1211,15 @@
 		raw_spin_lock_irq(&sem->wait_lock);
 	}
 	__set_current_state(TASK_RUNNING);
+	trace_android_vh_rwsem_write_wait_finish(sem);
 	raw_spin_unlock_irq(&sem->wait_lock);
 	lockevent_inc(rwsem_wlock);
+	trace_android_vh_record_rwsem_lock_starttime(current, jiffies);
 	return sem;
 
 out_nolock:
 	__set_current_state(TASK_RUNNING);
+	trace_android_vh_rwsem_write_wait_finish(sem);
 	raw_spin_lock_irq(&sem->wait_lock);
 	rwsem_del_waiter(sem, &waiter);
 	if (!list_empty(&sem->wait_list))
@@ -1190,6 +1243,7 @@
 
 	if (!list_empty(&sem->wait_list))
 		rwsem_mark_wake(sem, RWSEM_WAKE_ANY, &wake_q);
+	trace_android_vh_rwsem_wake_finish(sem);
 
 	raw_spin_unlock_irqrestore(&sem->wait_lock, flags);
 	wake_up_q(&wake_q);
@@ -1267,6 +1321,7 @@
 		if (atomic_long_try_cmpxchg_acquire(&sem->count, &tmp,
 						    tmp + RWSEM_READER_BIAS)) {
 			rwsem_set_reader_owned(sem);
+			trace_android_vh_record_rwsem_lock_starttime(current, jiffies);
 			ret = 1;
 			break;
 		}
@@ -1323,6 +1378,7 @@
 		clear_nonspinnable(sem);
 		rwsem_wake(sem);
 	}
+	trace_android_vh_record_rwsem_lock_starttime(current, 0);
 	preempt_enable();
 }
 
@@ -1341,10 +1397,13 @@
 	DEBUG_RWSEMS_WARN_ON((rwsem_owner(sem) != current) &&
 			    !rwsem_test_oflags(sem, RWSEM_NONSPINNABLE), sem);
 
+	preempt_disable();
 	rwsem_clear_owner(sem);
 	tmp = atomic_long_fetch_add_release(-RWSEM_WRITER_LOCKED, &sem->count);
+	preempt_enable();
 	if (unlikely(tmp & RWSEM_FLAG_WAITERS))
 		rwsem_wake(sem);
+	trace_android_vh_record_rwsem_lock_starttime(current, 0);
 }
 
 /*
@@ -1591,6 +1650,7 @@
 void up_write(struct rw_semaphore *sem)
 {
 	rwsem_release(&sem->dep_map, _RET_IP_);
+	trace_android_vh_rwsem_write_finished(sem);
 	__up_write(sem);
 }
 EXPORT_SYMBOL(up_write);
@@ -1601,6 +1661,7 @@
 void downgrade_write(struct rw_semaphore *sem)
 {
 	lock_downgrade(&sem->dep_map, _RET_IP_);
+	trace_android_vh_rwsem_write_finished(sem);
 	__downgrade_write(sem);
 }
 EXPORT_SYMBOL(downgrade_write);
diff --git a/kernel/locking/ww_mutex.h b/kernel/locking/ww_mutex.h
index 3ad2cc4..56f1392 100644
--- a/kernel/locking/ww_mutex.h
+++ b/kernel/locking/ww_mutex.h
@@ -96,25 +96,25 @@
 	struct rb_node *n = rb_first(&lock->rtmutex.waiters.rb_root);
 	if (!n)
 		return NULL;
-	return rb_entry(n, struct rt_mutex_waiter, tree.entry);
+	return rb_entry(n, struct rt_mutex_waiter, tree_entry);
 }
 
 static inline struct rt_mutex_waiter *
 __ww_waiter_next(struct rt_mutex *lock, struct rt_mutex_waiter *w)
 {
-	struct rb_node *n = rb_next(&w->tree.entry);
+	struct rb_node *n = rb_next(&w->tree_entry);
 	if (!n)
 		return NULL;
-	return rb_entry(n, struct rt_mutex_waiter, tree.entry);
+	return rb_entry(n, struct rt_mutex_waiter, tree_entry);
 }
 
 static inline struct rt_mutex_waiter *
 __ww_waiter_prev(struct rt_mutex *lock, struct rt_mutex_waiter *w)
 {
-	struct rb_node *n = rb_prev(&w->tree.entry);
+	struct rb_node *n = rb_prev(&w->tree_entry);
 	if (!n)
 		return NULL;
-	return rb_entry(n, struct rt_mutex_waiter, tree.entry);
+	return rb_entry(n, struct rt_mutex_waiter, tree_entry);
 }
 
 static inline struct rt_mutex_waiter *
@@ -123,7 +123,7 @@
 	struct rb_node *n = rb_last(&lock->rtmutex.waiters.rb_root);
 	if (!n)
 		return NULL;
-	return rb_entry(n, struct rt_mutex_waiter, tree.entry);
+	return rb_entry(n, struct rt_mutex_waiter, tree_entry);
 }
 
 static inline void
diff --git a/kernel/module-internal.h b/kernel/module-internal.h
index 33783ab..9b04051 100644
--- a/kernel/module-internal.h
+++ b/kernel/module-internal.h
@@ -29,3 +29,17 @@
 };
 
 extern int mod_verify_sig(const void *mod, struct load_info *info);
+
+#ifdef CONFIG_MODULE_SIG_PROTECT
+extern bool gki_is_module_exported_symbol(const char *name);
+extern bool gki_is_module_protected_symbol(const char *name);
+#else
+static inline bool gki_is_module_exported_symbol(const char *name)
+{
+	return 0;
+}
+static inline bool gki_is_module_protected_symbol(const char *name)
+{
+	return 0;
+}
+#endif /* CONFIG_MODULE_SIG_PROTECT */
diff --git a/kernel/module.c b/kernel/module.c
index 3c90840..775f009b 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -63,6 +63,10 @@
 #define CREATE_TRACE_POINTS
 #include <trace/events/module.h>
 
+#undef CREATE_TRACE_POINTS
+#include <trace/hooks/module.h>
+#include <trace/hooks/memory.h>
+
 #ifndef ARCH_SHF_SMALL
 #define ARCH_SHF_SMALL 0
 #endif
@@ -267,7 +271,7 @@
 #endif
 }
 
-#ifdef CONFIG_MODULE_SIG
+#if defined(CONFIG_MODULE_SIG) && !defined(CONFIG_MODULE_SIG_PROTECT)
 static bool sig_enforce = IS_ENABLED(CONFIG_MODULE_SIG_FORCE);
 module_param(sig_enforce, bool_enable_only, 0644);
 
@@ -743,6 +747,7 @@
 
 MODINFO_ATTR(version);
 MODINFO_ATTR(srcversion);
+MODINFO_ATTR(scmversion);
 
 static char last_unloaded_module[MODULE_NAME_LEN+1];
 
@@ -1206,6 +1211,7 @@
 	&module_uevent,
 	&modinfo_version,
 	&modinfo_srcversion,
+	&modinfo_scmversion,
 	&modinfo_initstate,
 	&modinfo_coresize,
 	&modinfo_initsize,
@@ -1373,20 +1379,20 @@
 	return 0;
 }
 
-static bool inherit_taint(struct module *mod, struct module *owner)
+static bool inherit_taint(struct module *mod, struct module *owner, const char *name)
 {
 	if (!owner || !test_bit(TAINT_PROPRIETARY_MODULE, &owner->taints))
 		return true;
 
 	if (mod->using_gplonly_symbols) {
-		pr_err("%s: module using GPL-only symbols uses symbols from proprietary module %s.\n",
-			mod->name, owner->name);
+		pr_err("%s: module using GPL-only symbols uses symbols %s from proprietary module %s.\n",
+			mod->name, name, owner->name);
 		return false;
 	}
 
 	if (!test_bit(TAINT_PROPRIETARY_MODULE, &mod->taints)) {
-		pr_warn("%s: module uses symbols from proprietary module %s, inheriting taint.\n",
-			mod->name, owner->name);
+		pr_warn("%s: module uses symbols %s from proprietary module %s, inheriting taint.\n",
+			mod->name, name, owner->name);
 		set_bit(TAINT_PROPRIETARY_MODULE, &mod->taints);
 	}
 	return true;
@@ -1418,7 +1424,7 @@
 	if (fsa.license == GPL_ONLY)
 		mod->using_gplonly_symbols = true;
 
-	if (!inherit_taint(mod, fsa.owner)) {
+	if (!inherit_taint(mod, fsa.owner, name)) {
 		fsa.sym = NULL;
 		goto getname;
 	}
@@ -2200,6 +2206,10 @@
 
 	/* This may be empty, but that's OK */
 	module_arch_freeing_init(mod);
+	trace_android_vh_set_memory_rw((unsigned long)mod->init_layout.base,
+		(mod->init_layout.size)>>PAGE_SHIFT);
+	trace_android_vh_set_memory_nx((unsigned long)mod->init_layout.base,
+		(mod->init_layout.size)>>PAGE_SHIFT);
 	module_memfree(mod->init_layout.base);
 	kfree(mod->args);
 	percpu_modfree(mod);
@@ -2208,6 +2218,10 @@
 	lockdep_free_key_range(mod->core_layout.base, mod->core_layout.size);
 
 	/* Finally, free the core (containing the module structure) */
+	trace_android_vh_set_memory_rw((unsigned long)mod->core_layout.base,
+		(mod->core_layout.size)>>PAGE_SHIFT);
+	trace_android_vh_set_memory_nx((unsigned long)mod->core_layout.base,
+		(mod->core_layout.size)>>PAGE_SHIFT);
 	module_memfree(mod->core_layout.base);
 }
 
@@ -2261,6 +2275,14 @@
 				.name	= kernel_symbol_name(s),
 				.gplok	= true,
 			};
+
+			if (!mod->sig_ok && gki_is_module_exported_symbol(
+						    kernel_symbol_name(s))) {
+				pr_err("%s: exporting protected symbol(%s)\n",
+				       mod->name, kernel_symbol_name(s));
+				return -EACCES;
+			}
+
 			if (find_symbol(&fsa)) {
 				pr_err("%s: exports duplicate symbol %s"
 				       " (owned by %s)\n",
@@ -2328,6 +2350,13 @@
 			break;
 
 		case SHN_UNDEF:
+			if (!mod->sig_ok &&
+			    gki_is_module_protected_symbol(name)) {
+				pr_err("%s: is not an Android GKI signed module. It can not access protected symbol: %s\n",
+				       mod->name, name);
+				return -EACCES;
+			}
+
 			ksym = resolve_symbol_wait(mod, info, name);
 			/* Ok if resolved.  */
 			if (ksym && !IS_ERR(ksym)) {
@@ -2939,7 +2968,15 @@
 		return -EKEYREJECTED;
 	}
 
+/*
+ * ANDROID: GKI: Do not prevent loading of unsigned modules;
+ * as all modules except GKI modules are not signed.
+ */
+#ifndef CONFIG_MODULE_SIG_PROTECT
 	return security_locked_down(LOCKDOWN_MODULE_SIGNATURE);
+#else
+	return 0;
+#endif
 }
 #else /* !CONFIG_MODULE_SIG */
 static int module_sig_check(struct load_info *info, int flags)
@@ -3632,7 +3669,15 @@
 {
 	percpu_modfree(mod);
 	module_arch_freeing_init(mod);
+	trace_android_vh_set_memory_rw((unsigned long)mod->init_layout.base,
+		(mod->init_layout.size)>>PAGE_SHIFT);
+	trace_android_vh_set_memory_nx((unsigned long)mod->init_layout.base,
+		(mod->init_layout.size)>>PAGE_SHIFT);
 	module_memfree(mod->init_layout.base);
+	trace_android_vh_set_memory_rw((unsigned long)mod->core_layout.base,
+		(mod->core_layout.size)>>PAGE_SHIFT);
+	trace_android_vh_set_memory_nx((unsigned long)mod->core_layout.base,
+		(mod->core_layout.size)>>PAGE_SHIFT);
 	module_memfree(mod->core_layout.base);
 }
 
@@ -3776,8 +3821,13 @@
 	rcu_assign_pointer(mod->kallsyms, &mod->core_kallsyms);
 #endif
 	module_enable_ro(mod, true);
+	trace_android_vh_set_module_permit_after_init(mod);
 	mod_tree_remove_init(mod);
 	module_arch_freeing_init(mod);
+	trace_android_vh_set_memory_rw((unsigned long)mod->init_layout.base,
+		(mod->init_layout.size)>>PAGE_SHIFT);
+	trace_android_vh_set_memory_nx((unsigned long)mod->init_layout.base,
+		(mod->init_layout.size)>>PAGE_SHIFT);
 	mod->init_layout.base = NULL;
 	mod->init_layout.size = 0;
 	mod->init_layout.ro_size = 0;
@@ -3903,6 +3953,7 @@
 	module_enable_ro(mod, false);
 	module_enable_nx(mod);
 	module_enable_x(mod);
+	trace_android_vh_set_module_permit_before_init(mod);
 
 	/*
 	 * Mark state as coming so strong_try_module_get() ignores us,
@@ -4041,6 +4092,8 @@
 			       "kernel\n", mod->name);
 		add_taint_module(mod, TAINT_UNSIGNED_MODULE, LOCKDEP_STILL_OK);
 	}
+#else
+	mod->sig_ok = 0;
 #endif
 
 	/* To avoid stressing percpu allocator, do this once we're unique. */
@@ -4803,6 +4856,22 @@
 	pr_cont("\n");
 }
 
+#ifdef CONFIG_ANDROID_DEBUG_SYMBOLS
+void android_debug_for_each_module(int (*fn)(const char *mod_name, void *mod_addr, void *data),
+	void *data)
+{
+	struct module *module;
+	preempt_disable();
+	list_for_each_entry_rcu(module, &modules, list) {
+		if (fn(module->name, module->core_layout.base, data))
+			goto out;
+	}
+out:
+	preempt_enable();
+}
+EXPORT_SYMBOL_NS_GPL(android_debug_for_each_module, MINIDUMP);
+#endif
+
 #ifdef CONFIG_MODVERSIONS
 /*
  * Generate the signature for all relevant module structures here.
diff --git a/kernel/pid.c b/kernel/pid.c
index efe87db..de13b46 100644
--- a/kernel/pid.c
+++ b/kernel/pid.c
@@ -421,6 +421,7 @@
 {
 	return find_task_by_pid_ns(vnr, task_active_pid_ns(current));
 }
+EXPORT_SYMBOL_GPL(find_task_by_vpid);
 
 struct task_struct *find_get_task_by_vpid(pid_t nr)
 {
diff --git a/kernel/power/Makefile b/kernel/power/Makefile
index 5899260..9770575 100644
--- a/kernel/power/Makefile
+++ b/kernel/power/Makefile
@@ -17,4 +17,5 @@
 
 obj-$(CONFIG_MAGIC_SYSRQ)	+= poweroff.o
 
+obj-$(CONFIG_SUSPEND)		+= wakeup_reason.o
 obj-$(CONFIG_ENERGY_MODEL)	+= energy_model.o
diff --git a/kernel/power/energy_model.c b/kernel/power/energy_model.c
index 1b902f9..9fa8b89 100644
--- a/kernel/power/energy_model.c
+++ b/kernel/power/energy_model.c
@@ -15,6 +15,7 @@
 #include <linux/energy_model.h>
 #include <linux/sched/topology.h>
 #include <linux/slab.h>
+#include <trace/hooks/sched.h>
 
 /*
  * Mutex serializing the registrations of performance domains and letting
@@ -276,6 +277,7 @@
 {
 	unsigned long cap, prev_cap = 0;
 	int cpu, ret;
+	bool cond = false;
 
 	if (!dev || !nr_states || !cb)
 		return -EINVAL;
@@ -304,6 +306,10 @@
 				ret = -EEXIST;
 				goto unlock;
 			}
+
+			trace_android_vh_em_dev_register_pd(&cond);
+			if (cond)
+				continue;
 			/*
 			 * All CPUs of a domain must have the same
 			 * micro-architecture since they all share the same
diff --git a/kernel/power/main.c b/kernel/power/main.c
index 7e64607..b6219c8 100644
--- a/kernel/power/main.c
+++ b/kernel/power/main.c
@@ -23,7 +23,7 @@
 
 void lock_system_sleep(void)
 {
-	current->flags |= PF_FREEZER_SKIP;
+	freezer_do_not_count();
 	mutex_lock(&system_transition_mutex);
 }
 EXPORT_SYMBOL_GPL(lock_system_sleep);
diff --git a/kernel/power/process.c b/kernel/power/process.c
index 11b570f..d7b939c 100644
--- a/kernel/power/process.c
+++ b/kernel/power/process.c
@@ -23,6 +23,8 @@
 #include <trace/events/power.h>
 #include <linux/cpuset.h>
 
+#include <trace/hooks/power.h>
+
 /*
  * Timeout for stopping processes
  */
@@ -38,6 +40,7 @@
 	unsigned int elapsed_msecs;
 	bool wakeup = false;
 	int sleep_usecs = USEC_PER_MSEC;
+	bool todo_logging_on = false;
 
 	start = ktime_get_boottime();
 
@@ -85,26 +88,34 @@
 	elapsed = ktime_sub(end, start);
 	elapsed_msecs = ktime_to_ms(elapsed);
 
-	if (todo) {
+	if (wakeup) {
 		pr_cont("\n");
-		pr_err("Freezing of tasks %s after %d.%03d seconds "
-		       "(%d tasks refusing to freeze, wq_busy=%d):\n",
-		       wakeup ? "aborted" : "failed",
+		pr_err("Freezing of tasks aborted after %d.%03d seconds",
+		       elapsed_msecs / 1000, elapsed_msecs % 1000);
+	} else if (todo) {
+		pr_cont("\n");
+		pr_err("Freezing of tasks failed after %d.%03d seconds"
+		       " (%d tasks refusing to freeze, wq_busy=%d):\n",
 		       elapsed_msecs / 1000, elapsed_msecs % 1000,
 		       todo - wq_busy, wq_busy);
 
 		if (wq_busy)
 			show_all_workqueues();
 
-		if (!wakeup || pm_debug_messages_on) {
+		trace_android_vh_try_to_freeze_todo_logging(&todo_logging_on);
+		if (pm_debug_messages_on || todo_logging_on) {
 			read_lock(&tasklist_lock);
 			for_each_process_thread(g, p) {
 				if (p != current && !freezer_should_skip(p)
-				    && freezing(p) && !frozen(p))
+				    && freezing(p) && !frozen(p)) {
 					sched_show_task(p);
+					trace_android_vh_try_to_freeze_todo_unfrozen(p);
+				}
 			}
 			read_unlock(&tasklist_lock);
 		}
+
+		trace_android_vh_try_to_freeze_todo(todo, elapsed_msecs, wq_busy);
 	} else {
 		pr_cont("(elapsed %d.%03d seconds) ", elapsed_msecs / 1000,
 			elapsed_msecs % 1000);
diff --git a/kernel/power/qos.c b/kernel/power/qos.c
index ec7e1e8..8da76f9 100644
--- a/kernel/power/qos.c
+++ b/kernel/power/qos.c
@@ -38,6 +38,9 @@
 #include <linux/uaccess.h>
 #include <linux/export.h>
 #include <trace/events/power.h>
+#undef CREATE_TRACE_POINT
+#include <trace/hooks/power.h>
+
 
 /*
  * locking rule: all changes to constraints or notifiers lists
@@ -546,6 +549,7 @@
 		req->type = 0;
 	}
 
+	trace_android_vh_freq_qos_add_request(qos, req, type, value, ret);
 	return ret;
 }
 EXPORT_SYMBOL_GPL(freq_qos_add_request);
@@ -570,6 +574,7 @@
 		 "%s() called for unknown object\n", __func__))
 		return -EINVAL;
 
+	trace_android_vh_freq_qos_update_request(req, new_value);
 	if (req->pnode.prio == new_value)
 		return 0;
 
@@ -598,6 +603,7 @@
 		 "%s() called for unknown object\n", __func__))
 		return -EINVAL;
 
+	trace_android_vh_freq_qos_remove_request(req);
 	ret = freq_qos_apply(req, PM_QOS_REMOVE_REQ, PM_QOS_DEFAULT_VALUE);
 	req->qos = NULL;
 	req->type = 0;
diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c
index 475d630..79ff61d 100644
--- a/kernel/power/snapshot.c
+++ b/kernel/power/snapshot.c
@@ -2078,6 +2078,7 @@
 {
 	return nr_copy_pages + nr_meta_pages + 1;
 }
+EXPORT_SYMBOL_GPL(snapshot_get_image_size);
 
 static int init_header(struct swsusp_info *info)
 {
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
index 13d905d..f167af45 100644
--- a/kernel/power/suspend.c
+++ b/kernel/power/suspend.c
@@ -30,6 +30,7 @@
 #include <trace/events/power.h>
 #include <linux/compiler.h>
 #include <linux/moduleparam.h>
+#include <linux/wakeup_reason.h>
 
 #include "power.h"
 
@@ -138,6 +139,7 @@
 			break;
 		}
 
+		clear_wakeup_reasons();
 		s2idle_enter();
 	}
 
@@ -359,6 +361,7 @@
 	if (!error)
 		return 0;
 
+	log_suspend_abort_reason("One or more tasks refusing to freeze");
 	suspend_stats.failed_freeze++;
 	dpm_save_failed_step(SUSPEND_FREEZE);
 	pm_notifier_call_chain(PM_POST_SUSPEND);
@@ -388,7 +391,7 @@
  */
 static int suspend_enter(suspend_state_t state, bool *wakeup)
 {
-	int error;
+	int error, last_dev;
 
 	error = platform_suspend_prepare(state);
 	if (error)
@@ -396,7 +399,11 @@
 
 	error = dpm_suspend_late(PMSG_SUSPEND);
 	if (error) {
+		last_dev = suspend_stats.last_failed_dev + REC_FAILED_NUM - 1;
+		last_dev %= REC_FAILED_NUM;
 		pr_err("late suspend of devices failed\n");
+		log_suspend_abort_reason("late suspend of %s device failed",
+					 suspend_stats.failed_devs[last_dev]);
 		goto Platform_finish;
 	}
 	error = platform_suspend_prepare_late(state);
@@ -405,7 +412,11 @@
 
 	error = dpm_suspend_noirq(PMSG_SUSPEND);
 	if (error) {
+		last_dev = suspend_stats.last_failed_dev + REC_FAILED_NUM - 1;
+		last_dev %= REC_FAILED_NUM;
 		pr_err("noirq suspend of devices failed\n");
+		log_suspend_abort_reason("noirq suspend of %s device failed",
+					 suspend_stats.failed_devs[last_dev]);
 		goto Platform_early_resume;
 	}
 	error = platform_suspend_prepare_noirq(state);
@@ -421,8 +432,10 @@
 	}
 
 	error = suspend_disable_secondary_cpus();
-	if (error || suspend_test(TEST_CPUS))
+	if (error || suspend_test(TEST_CPUS)) {
+		log_suspend_abort_reason("Disabling non-boot cpus failed");
 		goto Enable_cpus;
+	}
 
 	arch_suspend_disable_irqs();
 	BUG_ON(!irqs_disabled());
@@ -493,6 +506,8 @@
 	error = dpm_suspend_start(PMSG_SUSPEND);
 	if (error) {
 		pr_err("Some devices failed to suspend, or early wake event detected\n");
+		log_suspend_abort_reason(
+				"Some devices failed to suspend, or early wake event detected");
 		goto Recover_platform;
 	}
 	suspend_test_finish("suspend devices");
diff --git a/kernel/power/swap.c b/kernel/power/swap.c
index f3a1086..09ee9fb 100644
--- a/kernel/power/swap.c
+++ b/kernel/power/swap.c
@@ -31,6 +31,7 @@
 #include <linux/kthread.h>
 #include <linux/crc32.h>
 #include <linux/ktime.h>
+#include <trace/hooks/bl_hib.h>
 
 #include "power.h"
 
@@ -186,6 +187,7 @@
 	}
 	return 0;
 }
+EXPORT_SYMBOL_GPL(alloc_swapdev_block);
 
 /**
  *	free_all_swap_pages - free swap pages allocated for saving image data.
@@ -450,6 +452,7 @@
 {
 	int error = 0;
 	sector_t offset;
+	bool skip = false;
 
 	if (!handle->cur)
 		return -EINVAL;
@@ -463,9 +466,12 @@
 		if (!offset)
 			return -ENOSPC;
 		handle->cur->next_swap = offset;
-		error = write_page(handle->cur, handle->cur_swap, hb);
-		if (error)
-			goto out;
+		trace_android_vh_skip_swap_map_write(&skip);
+		if (!skip) {
+			error = write_page(handle->cur, handle->cur_swap, hb);
+			if (error)
+				goto out;
+		}
 		clear_page(handle->cur);
 		handle->cur_swap = offset;
 		handle->k = 0;
@@ -560,6 +566,7 @@
 		ret = snapshot_read_next(snapshot);
 		if (ret <= 0)
 			break;
+		trace_android_vh_encrypt_page(data_of(*snapshot));
 		ret = swap_write_page(handle, data_of(*snapshot), &hb);
 		if (ret)
 			break;
@@ -576,6 +583,7 @@
 	if (!ret)
 		pr_info("Image saving done\n");
 	swsusp_show_speed(start, stop, nr_to_write, "Wrote");
+	trace_android_vh_post_image_save(root_swap);
 	return ret;
 }
 
@@ -922,6 +930,7 @@
 		pr_err("Cannot get swap writer\n");
 		return error;
 	}
+	trace_android_vh_init_aes_encrypt(NULL);
 	if (flags & SF_NOCOMPRESS_MODE) {
 		if (!enough_swap(pages)) {
 			pr_err("Not enough free swap\n");
@@ -1527,6 +1536,7 @@
 					    FMODE_READ | FMODE_EXCL, &holder);
 	if (!IS_ERR(hib_resume_bdev)) {
 		set_blocksize(hib_resume_bdev, PAGE_SIZE);
+		trace_android_vh_save_hib_resume_bdev(hib_resume_bdev);
 		clear_page(swsusp_header);
 		error = hib_submit_io(REQ_OP_READ, 0,
 					swsusp_resume_block,
diff --git a/kernel/power/wakeup_reason.c b/kernel/power/wakeup_reason.c
new file mode 100644
index 0000000..8fefaa3
--- /dev/null
+++ b/kernel/power/wakeup_reason.c
@@ -0,0 +1,438 @@
+/*
+ * kernel/power/wakeup_reason.c
+ *
+ * Logs the reasons which caused the kernel to resume from
+ * the suspend mode.
+ *
+ * Copyright (C) 2020 Google, Inc.
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <linux/wakeup_reason.h>
+#include <linux/kernel.h>
+#include <linux/irq.h>
+#include <linux/interrupt.h>
+#include <linux/io.h>
+#include <linux/kobject.h>
+#include <linux/sysfs.h>
+#include <linux/init.h>
+#include <linux/spinlock.h>
+#include <linux/notifier.h>
+#include <linux/suspend.h>
+#include <linux/slab.h>
+
+/*
+ * struct wakeup_irq_node - stores data and relationships for IRQs logged as
+ * either base or nested wakeup reasons during suspend/resume flow.
+ * @siblings - for membership on leaf or parent IRQ lists
+ * @irq      - the IRQ number
+ * @irq_name - the name associated with the IRQ, or a default if none
+ */
+struct wakeup_irq_node {
+	struct list_head siblings;
+	int irq;
+	const char *irq_name;
+};
+
+enum wakeup_reason_flag {
+	RESUME_NONE = 0,
+	RESUME_IRQ,
+	RESUME_ABORT,
+	RESUME_ABNORMAL,
+};
+
+static DEFINE_SPINLOCK(wakeup_reason_lock);
+
+static LIST_HEAD(leaf_irqs);   /* kept in ascending IRQ sorted order */
+static LIST_HEAD(parent_irqs); /* unordered */
+
+static struct kmem_cache *wakeup_irq_nodes_cache;
+
+static const char *default_irq_name = "(unnamed)";
+
+static struct kobject *kobj;
+
+static bool capture_reasons;
+static int wakeup_reason;
+static char non_irq_wake_reason[MAX_SUSPEND_ABORT_LEN];
+
+static ktime_t last_monotime; /* monotonic time before last suspend */
+static ktime_t curr_monotime; /* monotonic time after last suspend */
+static ktime_t last_stime; /* monotonic boottime offset before last suspend */
+static ktime_t curr_stime; /* monotonic boottime offset after last suspend */
+
+static void init_node(struct wakeup_irq_node *p, int irq)
+{
+	struct irq_desc *desc;
+
+	INIT_LIST_HEAD(&p->siblings);
+
+	p->irq = irq;
+	desc = irq_to_desc(irq);
+	if (desc && desc->action && desc->action->name)
+		p->irq_name = desc->action->name;
+	else
+		p->irq_name = default_irq_name;
+}
+
+static struct wakeup_irq_node *create_node(int irq)
+{
+	struct wakeup_irq_node *result;
+
+	result = kmem_cache_alloc(wakeup_irq_nodes_cache, GFP_ATOMIC);
+	if (unlikely(!result))
+		pr_warn("Failed to log wakeup IRQ %d\n", irq);
+	else
+		init_node(result, irq);
+
+	return result;
+}
+
+static void delete_list(struct list_head *head)
+{
+	struct wakeup_irq_node *n;
+
+	while (!list_empty(head)) {
+		n = list_first_entry(head, struct wakeup_irq_node, siblings);
+		list_del(&n->siblings);
+		kmem_cache_free(wakeup_irq_nodes_cache, n);
+	}
+}
+
+static bool add_sibling_node_sorted(struct list_head *head, int irq)
+{
+	struct wakeup_irq_node *n = NULL;
+	struct list_head *predecessor = head;
+
+	if (unlikely(WARN_ON(!head)))
+		return NULL;
+
+	if (!list_empty(head))
+		list_for_each_entry(n, head, siblings) {
+			if (n->irq < irq)
+				predecessor = &n->siblings;
+			else if (n->irq == irq)
+				return true;
+			else
+				break;
+		}
+
+	n = create_node(irq);
+	if (n) {
+		list_add(&n->siblings, predecessor);
+		return true;
+	}
+
+	return false;
+}
+
+static struct wakeup_irq_node *find_node_in_list(struct list_head *head,
+						 int irq)
+{
+	struct wakeup_irq_node *n;
+
+	if (unlikely(WARN_ON(!head)))
+		return NULL;
+
+	list_for_each_entry(n, head, siblings)
+		if (n->irq == irq)
+			return n;
+
+	return NULL;
+}
+
+void log_irq_wakeup_reason(int irq)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&wakeup_reason_lock, flags);
+	if (wakeup_reason == RESUME_ABNORMAL || wakeup_reason == RESUME_ABORT) {
+		spin_unlock_irqrestore(&wakeup_reason_lock, flags);
+		return;
+	}
+
+	if (!capture_reasons) {
+		spin_unlock_irqrestore(&wakeup_reason_lock, flags);
+		return;
+	}
+
+	if (find_node_in_list(&parent_irqs, irq) == NULL)
+		add_sibling_node_sorted(&leaf_irqs, irq);
+
+	wakeup_reason = RESUME_IRQ;
+	spin_unlock_irqrestore(&wakeup_reason_lock, flags);
+}
+
+void log_threaded_irq_wakeup_reason(int irq, int parent_irq)
+{
+	struct wakeup_irq_node *parent;
+	unsigned long flags;
+
+	/*
+	 * Intentionally unsynchronized.  Calls that come in after we have
+	 * resumed should have a fast exit path since there's no work to be
+	 * done, any any coherence issue that could cause a wrong value here is
+	 * both highly improbable - given the set/clear timing - and very low
+	 * impact (parent IRQ gets logged instead of the specific child).
+	 */
+	if (!capture_reasons)
+		return;
+
+	spin_lock_irqsave(&wakeup_reason_lock, flags);
+
+	if (wakeup_reason == RESUME_ABNORMAL || wakeup_reason == RESUME_ABORT) {
+		spin_unlock_irqrestore(&wakeup_reason_lock, flags);
+		return;
+	}
+
+	if (!capture_reasons || (find_node_in_list(&leaf_irqs, irq) != NULL)) {
+		spin_unlock_irqrestore(&wakeup_reason_lock, flags);
+		return;
+	}
+
+	parent = find_node_in_list(&parent_irqs, parent_irq);
+	if (parent != NULL)
+		add_sibling_node_sorted(&leaf_irqs, irq);
+	else {
+		parent = find_node_in_list(&leaf_irqs, parent_irq);
+		if (parent != NULL) {
+			list_del_init(&parent->siblings);
+			list_add_tail(&parent->siblings, &parent_irqs);
+			add_sibling_node_sorted(&leaf_irqs, irq);
+		}
+	}
+
+	spin_unlock_irqrestore(&wakeup_reason_lock, flags);
+}
+EXPORT_SYMBOL_GPL(log_threaded_irq_wakeup_reason);
+
+static void __log_abort_or_abnormal_wake(bool abort, const char *fmt,
+					 va_list args)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&wakeup_reason_lock, flags);
+
+	/* Suspend abort or abnormal wake reason has already been logged. */
+	if (wakeup_reason != RESUME_NONE) {
+		spin_unlock_irqrestore(&wakeup_reason_lock, flags);
+		return;
+	}
+
+	if (abort)
+		wakeup_reason = RESUME_ABORT;
+	else
+		wakeup_reason = RESUME_ABNORMAL;
+
+	vsnprintf(non_irq_wake_reason, MAX_SUSPEND_ABORT_LEN, fmt, args);
+
+	spin_unlock_irqrestore(&wakeup_reason_lock, flags);
+}
+
+void log_suspend_abort_reason(const char *fmt, ...)
+{
+	va_list args;
+
+	va_start(args, fmt);
+	__log_abort_or_abnormal_wake(true, fmt, args);
+	va_end(args);
+}
+EXPORT_SYMBOL_GPL(log_suspend_abort_reason);
+
+void log_abnormal_wakeup_reason(const char *fmt, ...)
+{
+	va_list args;
+
+	va_start(args, fmt);
+	__log_abort_or_abnormal_wake(false, fmt, args);
+	va_end(args);
+}
+EXPORT_SYMBOL_GPL(log_abnormal_wakeup_reason);
+
+void clear_wakeup_reasons(void)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&wakeup_reason_lock, flags);
+
+	delete_list(&leaf_irqs);
+	delete_list(&parent_irqs);
+	wakeup_reason = RESUME_NONE;
+	capture_reasons = true;
+
+	spin_unlock_irqrestore(&wakeup_reason_lock, flags);
+}
+
+static void print_wakeup_sources(void)
+{
+	struct wakeup_irq_node *n;
+	unsigned long flags;
+
+	spin_lock_irqsave(&wakeup_reason_lock, flags);
+
+	capture_reasons = false;
+
+	if (wakeup_reason == RESUME_ABORT) {
+		pr_info("Abort: %s\n", non_irq_wake_reason);
+		spin_unlock_irqrestore(&wakeup_reason_lock, flags);
+		return;
+	}
+
+	if (wakeup_reason == RESUME_IRQ && !list_empty(&leaf_irqs))
+		list_for_each_entry(n, &leaf_irqs, siblings)
+			pr_info("Resume caused by IRQ %d, %s\n", n->irq,
+				n->irq_name);
+	else if (wakeup_reason == RESUME_ABNORMAL)
+		pr_info("Resume caused by %s\n", non_irq_wake_reason);
+	else
+		pr_info("Resume cause unknown\n");
+
+	spin_unlock_irqrestore(&wakeup_reason_lock, flags);
+}
+
+static ssize_t last_resume_reason_show(struct kobject *kobj,
+				       struct kobj_attribute *attr, char *buf)
+{
+	ssize_t buf_offset = 0;
+	struct wakeup_irq_node *n;
+	unsigned long flags;
+
+	spin_lock_irqsave(&wakeup_reason_lock, flags);
+
+	if (wakeup_reason == RESUME_ABORT) {
+		buf_offset = scnprintf(buf, PAGE_SIZE, "Abort: %s",
+				       non_irq_wake_reason);
+		spin_unlock_irqrestore(&wakeup_reason_lock, flags);
+		return buf_offset;
+	}
+
+	if (wakeup_reason == RESUME_IRQ && !list_empty(&leaf_irqs))
+		list_for_each_entry(n, &leaf_irqs, siblings)
+			buf_offset += scnprintf(buf + buf_offset,
+						PAGE_SIZE - buf_offset,
+						"%d %s\n", n->irq, n->irq_name);
+	else if (wakeup_reason == RESUME_ABNORMAL)
+		buf_offset = scnprintf(buf, PAGE_SIZE, "-1 %s",
+				       non_irq_wake_reason);
+
+	spin_unlock_irqrestore(&wakeup_reason_lock, flags);
+
+	return buf_offset;
+}
+
+static ssize_t last_suspend_time_show(struct kobject *kobj,
+			struct kobj_attribute *attr, char *buf)
+{
+	struct timespec64 sleep_time;
+	struct timespec64 total_time;
+	struct timespec64 suspend_resume_time;
+
+	/*
+	 * total_time is calculated from monotonic bootoffsets because
+	 * unlike CLOCK_MONOTONIC it include the time spent in suspend state.
+	 */
+	total_time = ktime_to_timespec64(ktime_sub(curr_stime, last_stime));
+
+	/*
+	 * suspend_resume_time is calculated as monotonic (CLOCK_MONOTONIC)
+	 * time interval before entering suspend and post suspend.
+	 */
+	suspend_resume_time =
+		ktime_to_timespec64(ktime_sub(curr_monotime, last_monotime));
+
+	/* sleep_time = total_time - suspend_resume_time */
+	sleep_time = timespec64_sub(total_time, suspend_resume_time);
+
+	/* Export suspend_resume_time and sleep_time in pair here. */
+	return sprintf(buf, "%llu.%09lu %llu.%09lu\n",
+		       (unsigned long long)suspend_resume_time.tv_sec,
+		       suspend_resume_time.tv_nsec,
+		       (unsigned long long)sleep_time.tv_sec,
+		       sleep_time.tv_nsec);
+}
+
+static struct kobj_attribute resume_reason = __ATTR_RO(last_resume_reason);
+static struct kobj_attribute suspend_time = __ATTR_RO(last_suspend_time);
+
+static struct attribute *attrs[] = {
+	&resume_reason.attr,
+	&suspend_time.attr,
+	NULL,
+};
+static struct attribute_group attr_group = {
+	.attrs = attrs,
+};
+
+/* Detects a suspend and clears all the previous wake up reasons*/
+static int wakeup_reason_pm_event(struct notifier_block *notifier,
+		unsigned long pm_event, void *unused)
+{
+	switch (pm_event) {
+	case PM_SUSPEND_PREPARE:
+		/* monotonic time since boot */
+		last_monotime = ktime_get();
+		/* monotonic time since boot including the time spent in suspend */
+		last_stime = ktime_get_boottime();
+		clear_wakeup_reasons();
+		break;
+	case PM_POST_SUSPEND:
+		/* monotonic time since boot */
+		curr_monotime = ktime_get();
+		/* monotonic time since boot including the time spent in suspend */
+		curr_stime = ktime_get_boottime();
+		print_wakeup_sources();
+		break;
+	default:
+		break;
+	}
+	return NOTIFY_DONE;
+}
+
+static struct notifier_block wakeup_reason_pm_notifier_block = {
+	.notifier_call = wakeup_reason_pm_event,
+};
+
+static int __init wakeup_reason_init(void)
+{
+	if (register_pm_notifier(&wakeup_reason_pm_notifier_block)) {
+		pr_warn("[%s] failed to register PM notifier\n", __func__);
+		goto fail;
+	}
+
+	kobj = kobject_create_and_add("wakeup_reasons", kernel_kobj);
+	if (!kobj) {
+		pr_warn("[%s] failed to create a sysfs kobject\n", __func__);
+		goto fail_unregister_pm_notifier;
+	}
+
+	if (sysfs_create_group(kobj, &attr_group)) {
+		pr_warn("[%s] failed to create a sysfs group\n", __func__);
+		goto fail_kobject_put;
+	}
+
+	wakeup_irq_nodes_cache =
+		kmem_cache_create("wakeup_irq_node_cache",
+				  sizeof(struct wakeup_irq_node), 0, 0, NULL);
+	if (!wakeup_irq_nodes_cache)
+		goto fail_remove_group;
+
+	return 0;
+
+fail_remove_group:
+	sysfs_remove_group(kobj, &attr_group);
+fail_kobject_put:
+	kobject_put(kobj);
+fail_unregister_pm_notifier:
+	unregister_pm_notifier(&wakeup_reason_pm_notifier_block);
+fail:
+	return 1;
+}
+
+late_initcall(wakeup_reason_init);
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index 8d856b7..c731398 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -54,6 +54,9 @@
 #include <trace/events/initcall.h>
 #define CREATE_TRACE_POINTS
 #include <trace/events/printk.h>
+#undef CREATE_TRACE_POINTS
+#include <trace/hooks/printk.h>
+#include <trace/hooks/logbuf.h>
 
 #include "printk_ringbuffer.h"
 #include "console_cmdline.h"
@@ -467,12 +470,14 @@
 {
 	return log_buf;
 }
+EXPORT_SYMBOL_GPL(log_buf_addr_get);
 
 /* Return log buffer size */
 u32 log_buf_len_get(void)
 {
 	return log_buf_len;
 }
+EXPORT_SYMBOL_GPL(log_buf_len_get);
 
 /*
  * Define how much of the log buffer we could take at maximum. The value
@@ -556,10 +561,14 @@
 	u64 ts_usec = info->ts_nsec;
 	char caller[20];
 #ifdef CONFIG_PRINTK_CALLER
+	int vh_ret = 0;
 	u32 id = info->caller_id;
 
-	snprintf(caller, sizeof(caller), ",caller=%c%u",
-		 id & 0x80000000 ? 'C' : 'T', id & ~0x80000000);
+	trace_android_vh_printk_ext_header(caller, sizeof(caller), id, &vh_ret);
+
+	if (!vh_ret)
+		snprintf(caller, sizeof(caller), ",caller=%c%u",
+			 id & 0x80000000 ? 'C' : 'T', id & ~0x80000000);
 #else
 	caller[0] = '\0';
 #endif
@@ -1279,9 +1288,12 @@
 static size_t print_caller(u32 id, char *buf)
 {
 	char caller[12];
+	int vh_ret = 0;
 
-	snprintf(caller, sizeof(caller), "%c%u",
-		 id & 0x80000000 ? 'C' : 'T', id & ~0x80000000);
+	trace_android_vh_printk_caller(caller, sizeof(caller), id, &vh_ret);
+	if (!vh_ret)
+		snprintf(caller, sizeof(caller), "%c%u",
+			 id & 0x80000000 ? 'C' : 'T', id & ~0x80000000);
 	return sprintf(buf, "[%6s]", caller);
 }
 #else
@@ -2041,6 +2053,12 @@
 
 static inline u32 printk_caller_id(void)
 {
+	u32 caller_id = 0;
+
+	trace_android_vh_printk_caller_id(&caller_id);
+	if (caller_id)
+		return caller_id;
+
 	return in_task() ? task_pid_nr(current) :
 		0x80000000 + raw_smp_processor_id();
 }
@@ -2185,6 +2203,7 @@
 				prb_commit(&e);
 			}
 
+			trace_android_vh_logbuf_pr_cont(&r, text_len);
 			ret = text_len;
 			goto out;
 		}
@@ -2224,6 +2243,7 @@
 	else
 		prb_final_commit(&e);
 
+	trace_android_vh_logbuf(prb, &r);
 	ret = text_len + trunc_msg_len;
 out:
 	printk_exit_irqrestore(recursion_ptr, irqflags);
@@ -2524,6 +2544,12 @@
  */
 static int console_cpu_notify(unsigned int cpu)
 {
+	int flag = 0;
+
+	trace_android_vh_printk_hotplug(&flag);
+	if (flag)
+		return 0;
+
 	if (!cpuhp_tasks_frozen) {
 		/* If trylock fails, someone else is doing the printing */
 		if (console_trylock())
@@ -3317,6 +3343,7 @@
 
 	return r;
 }
+EXPORT_SYMBOL_GPL(_printk_deferred);
 
 /*
  * printk rate limiting, lifted from the networking subsystem.
diff --git a/kernel/printk/printk_ringbuffer.c b/kernel/printk/printk_ringbuffer.c
index 8a7b736..2b7b6dd 100644
--- a/kernel/printk/printk_ringbuffer.c
+++ b/kernel/printk/printk_ringbuffer.c
@@ -474,8 +474,10 @@
 	 * state has been re-checked. A memcpy() for all of @desc
 	 * cannot be used because of the atomic_t @state_var field.
 	 */
-	memcpy(&desc_out->text_blk_lpos, &desc->text_blk_lpos,
-	       sizeof(desc_out->text_blk_lpos)); /* LMM(desc_read:C) */
+	if (desc_out) {
+		memcpy(&desc_out->text_blk_lpos, &desc->text_blk_lpos,
+		       sizeof(desc_out->text_blk_lpos)); /* LMM(desc_read:C) */
+	}
 	if (seq_out)
 		*seq_out = info->seq; /* also part of desc_read:C */
 	if (caller_id_out)
@@ -528,7 +530,8 @@
 	state_val = atomic_long_read(state_var); /* LMM(desc_read:E) */
 	d_state = get_desc_state(id, state_val);
 out:
-	atomic_long_set(&desc_out->state_var, state_val);
+	if (desc_out)
+		atomic_long_set(&desc_out->state_var, state_val);
 	return d_state;
 }
 
@@ -1449,6 +1452,9 @@
 
 	atomic_long_cmpxchg_relaxed(&d->state_var, prev_state_val,
 			DESC_SV(id, desc_finalized)); /* LMM(desc_make_final:A) */
+
+	/* Best effort to remember the last finalized @id. */
+	atomic_long_set(&desc_ring->last_finalized_id, id);
 }
 
 /**
@@ -1657,7 +1663,12 @@
  */
 void prb_final_commit(struct prb_reserved_entry *e)
 {
+	struct prb_desc_ring *desc_ring = &e->rb->desc_ring;
+
 	_prb_commit(e, desc_finalized);
+
+	/* Best effort to remember the last finalized @id. */
+	atomic_long_set(&desc_ring->last_finalized_id, e->id);
 }
 
 /*
@@ -2005,9 +2016,39 @@
  */
 u64 prb_next_seq(struct printk_ringbuffer *rb)
 {
-	u64 seq = 0;
+	struct prb_desc_ring *desc_ring = &rb->desc_ring;
+	enum desc_state d_state;
+	unsigned long id;
+	u64 seq;
 
-	/* Search forward from the oldest descriptor. */
+	/* Check if the cached @id still points to a valid @seq. */
+	id = atomic_long_read(&desc_ring->last_finalized_id);
+	d_state = desc_read(desc_ring, id, NULL, &seq, NULL);
+
+	if (d_state == desc_finalized || d_state == desc_reusable) {
+		/*
+		 * Begin searching after the last finalized record.
+		 *
+		 * On 0, the search must begin at 0 because of hack#2
+		 * of the bootstrapping phase it is not known if a
+		 * record at index 0 exists.
+		 */
+		if (seq != 0)
+			seq++;
+	} else {
+		/*
+		 * The information about the last finalized sequence number
+		 * has gone. It should happen only when there is a flood of
+		 * new messages and the ringbuffer is rapidly recycled.
+		 * Give up and start from the beginning.
+		 */
+		seq = 0;
+	}
+
+	/*
+	 * The information about the last finalized @seq might be inaccurate.
+	 * Search forward to find the current one.
+	 */
 	while (_prb_read_valid(rb, &seq, NULL, NULL))
 		seq++;
 
@@ -2044,6 +2085,7 @@
 	rb->desc_ring.infos = infos;
 	atomic_long_set(&rb->desc_ring.head_id, DESC0_ID(descbits));
 	atomic_long_set(&rb->desc_ring.tail_id, DESC0_ID(descbits));
+	atomic_long_set(&rb->desc_ring.last_finalized_id, DESC0_ID(descbits));
 
 	rb->text_data_ring.size_bits = textbits;
 	rb->text_data_ring.data = text_buf;
diff --git a/kernel/printk/printk_ringbuffer.h b/kernel/printk/printk_ringbuffer.h
index 73cc80e..18cd25e 100644
--- a/kernel/printk/printk_ringbuffer.h
+++ b/kernel/printk/printk_ringbuffer.h
@@ -75,6 +75,7 @@
 	struct printk_info	*infos;
 	atomic_long_t		head_id;
 	atomic_long_t		tail_id;
+	atomic_long_t		last_finalized_id;
 };
 
 /*
@@ -258,6 +259,7 @@
 		.infos		= &_##name##_infos[0],						\
 		.head_id	= ATOMIC_INIT(DESC0_ID(descbits)),				\
 		.tail_id	= ATOMIC_INIT(DESC0_ID(descbits)),				\
+		.last_finalized_id = ATOMIC_INIT(DESC0_ID(descbits)),				\
 	},											\
 	.text_data_ring = {									\
 		.size_bits	= (avgtextbits) + (descbits),					\
diff --git a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig
index f73cf17..066be3b 100644
--- a/kernel/rcu/Kconfig
+++ b/kernel/rcu/Kconfig
@@ -214,6 +214,20 @@
 
 	  Accept the default if unsure.
 
+config RCU_EXP_KTHREAD
+	bool "Perform RCU expedited work in a real-time kthread"
+	depends on RCU_BOOST && RCU_EXPERT
+	default !PREEMPT_RT && NR_CPUS <= 32
+	help
+	  Use this option to further reduce the latencies of expedited
+	  grace periods at the expense of being more disruptive.
+
+	  This option is disabled by default on PREEMPT_RT=y kernels which
+	  disable expedited grace periods after boot by unconditionally
+	  setting rcupdate.rcu_normal_after_boot=1.
+
+	  Accept the default if unsure.
+
 config RCU_NOCB_CPU
 	bool "Offload RCU callback processing from boot-selected CPUs"
 	depends on TREE_RCU
diff --git a/kernel/rcu/rcu.h b/kernel/rcu/rcu.h
index 24b5f2c..5510d22 100644
--- a/kernel/rcu/rcu.h
+++ b/kernel/rcu/rcu.h
@@ -534,7 +534,12 @@
 void rcu_fwd_progress_check(unsigned long j);
 void rcu_force_quiescent_state(void);
 extern struct workqueue_struct *rcu_gp_wq;
+#ifdef CONFIG_RCU_EXP_KTHREAD
+extern struct kthread_worker *rcu_exp_gp_kworker;
+extern struct kthread_worker *rcu_exp_par_gp_kworker;
+#else /* !CONFIG_RCU_EXP_KTHREAD */
 extern struct workqueue_struct *rcu_par_gp_wq;
+#endif /* CONFIG_RCU_EXP_KTHREAD */
 #endif /* #else #ifdef CONFIG_TINY_RCU */
 
 #ifdef CONFIG_RCU_NOCB_CPU
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index df016f6..abb43d0 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -2991,7 +2991,7 @@
 	head->func = func;
 	head->next = NULL;
 	local_irq_save(flags);
-	kasan_record_aux_stack(head);
+	kasan_record_aux_stack_noalloc(head);
 	rdp = this_cpu_ptr(&rcu_data);
 
 	/* Add the callback to our list. */
@@ -3580,7 +3580,7 @@
 		return;
 	}
 
-	kasan_record_aux_stack(ptr);
+	kasan_record_aux_stack_noalloc(ptr);
 	success = add_ptr_to_bulk_krc_lock(&krcp, &flags, ptr, !head);
 	if (!success) {
 		run_page_cache_worker(krcp);
@@ -4428,6 +4428,51 @@
 	return NOTIFY_OK;
 }
 
+#ifdef CONFIG_RCU_EXP_KTHREAD
+struct kthread_worker *rcu_exp_gp_kworker;
+struct kthread_worker *rcu_exp_par_gp_kworker;
+
+static void __init rcu_start_exp_gp_kworkers(void)
+{
+	const char *par_gp_kworker_name = "rcu_exp_par_gp_kthread_worker";
+	const char *gp_kworker_name = "rcu_exp_gp_kthread_worker";
+	struct sched_param param = { .sched_priority = kthread_prio };
+
+	rcu_exp_gp_kworker = kthread_create_worker(0, gp_kworker_name);
+	if (IS_ERR_OR_NULL(rcu_exp_gp_kworker)) {
+		pr_err("Failed to create %s!\n", gp_kworker_name);
+		return;
+	}
+
+	rcu_exp_par_gp_kworker = kthread_create_worker(0, par_gp_kworker_name);
+	if (IS_ERR_OR_NULL(rcu_exp_par_gp_kworker)) {
+		pr_err("Failed to create %s!\n", par_gp_kworker_name);
+		kthread_destroy_worker(rcu_exp_gp_kworker);
+		return;
+	}
+
+	sched_setscheduler_nocheck(rcu_exp_gp_kworker->task, SCHED_FIFO, &param);
+	sched_setscheduler_nocheck(rcu_exp_par_gp_kworker->task, SCHED_FIFO,
+				   &param);
+}
+
+static inline void rcu_alloc_par_gp_wq(void)
+{
+}
+#else /* !CONFIG_RCU_EXP_KTHREAD */
+struct workqueue_struct *rcu_par_gp_wq;
+
+static void __init rcu_start_exp_gp_kworkers(void)
+{
+}
+
+static inline void rcu_alloc_par_gp_wq(void)
+{
+	rcu_par_gp_wq = alloc_workqueue("rcu_par_gp", WQ_MEM_RECLAIM, 0);
+	WARN_ON(!rcu_par_gp_wq);
+}
+#endif /* CONFIG_RCU_EXP_KTHREAD */
+
 /*
  * Spawn the kthreads that handle RCU's grace periods.
  */
@@ -4473,6 +4518,8 @@
 	rcu_spawn_nocb_kthreads();
 	rcu_spawn_boost_kthreads();
 	rcu_spawn_core_kthreads();
+	/* Create kthread worker for expedited GPs */
+	rcu_start_exp_gp_kworkers();
 	return 0;
 }
 early_initcall(rcu_spawn_gp_kthread);
@@ -4695,7 +4742,6 @@
 }
 
 struct workqueue_struct *rcu_gp_wq;
-struct workqueue_struct *rcu_par_gp_wq;
 
 static void __init kfree_rcu_batch_init(void)
 {
@@ -4760,8 +4806,7 @@
 	/* Create workqueue for Tree SRCU and for expedited GPs. */
 	rcu_gp_wq = alloc_workqueue("rcu_gp", WQ_MEM_RECLAIM, 0);
 	WARN_ON(!rcu_gp_wq);
-	rcu_par_gp_wq = alloc_workqueue("rcu_par_gp", WQ_MEM_RECLAIM, 0);
-	WARN_ON(!rcu_par_gp_wq);
+	rcu_alloc_par_gp_wq();
 
 	/* Fill in default value for rcutree.qovld boot parameter. */
 	/* -After- the rcu_node ->lock fields are initialized! */
diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h
index 305cf6a..f0a16b4a8 100644
--- a/kernel/rcu/tree.h
+++ b/kernel/rcu/tree.h
@@ -10,6 +10,7 @@
  */
 
 #include <linux/cache.h>
+#include <linux/kthread.h>
 #include <linux/spinlock.h>
 #include <linux/rtmutex.h>
 #include <linux/threads.h>
@@ -23,7 +24,11 @@
 /* Communicate arguments to a workqueue handler. */
 struct rcu_exp_work {
 	unsigned long rew_s;
+#ifdef CONFIG_RCU_EXP_KTHREAD
+	struct kthread_work rew_work;
+#else
 	struct work_struct rew_work;
+#endif /* CONFIG_RCU_EXP_KTHREAD */
 };
 
 /* RCU's kthread states for tracing. */
diff --git a/kernel/rcu/tree_exp.h b/kernel/rcu/tree_exp.h
index 407941a..f36b812 100644
--- a/kernel/rcu/tree_exp.h
+++ b/kernel/rcu/tree_exp.h
@@ -334,15 +334,13 @@
  * Select the CPUs within the specified rcu_node that the upcoming
  * expedited grace period needs to wait for.
  */
-static void sync_rcu_exp_select_node_cpus(struct work_struct *wp)
+static void __sync_rcu_exp_select_node_cpus(struct rcu_exp_work *rewp)
 {
 	int cpu;
 	unsigned long flags;
 	unsigned long mask_ofl_test;
 	unsigned long mask_ofl_ipi;
 	int ret;
-	struct rcu_exp_work *rewp =
-		container_of(wp, struct rcu_exp_work, rew_work);
 	struct rcu_node *rnp = container_of(rewp, struct rcu_node, rew);
 
 	raw_spin_lock_irqsave_rcu_node(rnp, flags);
@@ -417,13 +415,119 @@
 		rcu_report_exp_cpu_mult(rnp, mask_ofl_test, false);
 }
 
+static void rcu_exp_sel_wait_wake(unsigned long s);
+
+#ifdef CONFIG_RCU_EXP_KTHREAD
+static void sync_rcu_exp_select_node_cpus(struct kthread_work *wp)
+{
+	struct rcu_exp_work *rewp =
+		container_of(wp, struct rcu_exp_work, rew_work);
+
+	__sync_rcu_exp_select_node_cpus(rewp);
+}
+
+static inline bool rcu_gp_par_worker_started(void)
+{
+	return !!READ_ONCE(rcu_exp_par_gp_kworker);
+}
+
+static inline void sync_rcu_exp_select_cpus_queue_work(struct rcu_node *rnp)
+{
+	kthread_init_work(&rnp->rew.rew_work, sync_rcu_exp_select_node_cpus);
+	/*
+	 * Use rcu_exp_par_gp_kworker, because flushing a work item from
+	 * another work item on the same kthread worker can result in
+	 * deadlock.
+	 */
+	kthread_queue_work(rcu_exp_par_gp_kworker, &rnp->rew.rew_work);
+}
+
+static inline void sync_rcu_exp_select_cpus_flush_work(struct rcu_node *rnp)
+{
+	kthread_flush_work(&rnp->rew.rew_work);
+}
+
+/*
+ * Work-queue handler to drive an expedited grace period forward.
+ */
+static void wait_rcu_exp_gp(struct kthread_work *wp)
+{
+	struct rcu_exp_work *rewp;
+
+	rewp = container_of(wp, struct rcu_exp_work, rew_work);
+	rcu_exp_sel_wait_wake(rewp->rew_s);
+}
+
+static inline void synchronize_rcu_expedited_queue_work(struct rcu_exp_work *rew)
+{
+	kthread_init_work(&rew->rew_work, wait_rcu_exp_gp);
+	kthread_queue_work(rcu_exp_gp_kworker, &rew->rew_work);
+}
+
+static inline void synchronize_rcu_expedited_destroy_work(struct rcu_exp_work *rew)
+{
+}
+#else /* !CONFIG_RCU_EXP_KTHREAD */
+static void sync_rcu_exp_select_node_cpus(struct work_struct *wp)
+{
+	struct rcu_exp_work *rewp =
+		container_of(wp, struct rcu_exp_work, rew_work);
+
+	__sync_rcu_exp_select_node_cpus(rewp);
+}
+
+static inline bool rcu_gp_par_worker_started(void)
+{
+	return !!READ_ONCE(rcu_par_gp_wq);
+}
+
+static inline void sync_rcu_exp_select_cpus_queue_work(struct rcu_node *rnp)
+{
+	int cpu = find_next_bit(&rnp->ffmask, BITS_PER_LONG, -1);
+
+	INIT_WORK(&rnp->rew.rew_work, sync_rcu_exp_select_node_cpus);
+	/* If all offline, queue the work on an unbound CPU. */
+	if (unlikely(cpu > rnp->grphi - rnp->grplo))
+		cpu = WORK_CPU_UNBOUND;
+	else
+		cpu += rnp->grplo;
+	queue_work_on(cpu, rcu_par_gp_wq, &rnp->rew.rew_work);
+}
+
+static inline void sync_rcu_exp_select_cpus_flush_work(struct rcu_node *rnp)
+{
+	flush_work(&rnp->rew.rew_work);
+}
+
+/*
+ * Work-queue handler to drive an expedited grace period forward.
+ */
+static void wait_rcu_exp_gp(struct work_struct *wp)
+{
+	struct rcu_exp_work *rewp;
+
+	rewp = container_of(wp, struct rcu_exp_work, rew_work);
+	rcu_exp_sel_wait_wake(rewp->rew_s);
+}
+
+static inline void synchronize_rcu_expedited_queue_work(struct rcu_exp_work *rew)
+{
+	INIT_WORK_ONSTACK(&rew->rew_work, wait_rcu_exp_gp);
+	queue_work(rcu_gp_wq, &rew->rew_work);
+}
+
+static inline void synchronize_rcu_expedited_destroy_work(struct rcu_exp_work *rew)
+{
+	destroy_work_on_stack(&rew->rew_work);
+}
+#endif /* CONFIG_RCU_EXP_KTHREAD */
+
 /*
  * Select the nodes that the upcoming expedited grace period needs
  * to wait for.
  */
 static void sync_rcu_exp_select_cpus(void)
 {
-	int cpu;
 	struct rcu_node *rnp;
 
 	trace_rcu_exp_grace_period(rcu_state.name, rcu_exp_gp_seq_endval(), TPS("reset"));
@@ -435,28 +539,21 @@
 		rnp->exp_need_flush = false;
 		if (!READ_ONCE(rnp->expmask))
 			continue; /* Avoid early boot non-existent wq. */
-		if (!READ_ONCE(rcu_par_gp_wq) ||
+		if (!rcu_gp_par_worker_started() ||
 		    rcu_scheduler_active != RCU_SCHEDULER_RUNNING ||
 		    rcu_is_last_leaf_node(rnp)) {
-			/* No workqueues yet or last leaf, do direct call. */
+			/* No worker started yet or last leaf, do direct call. */
 			sync_rcu_exp_select_node_cpus(&rnp->rew.rew_work);
 			continue;
 		}
-		INIT_WORK(&rnp->rew.rew_work, sync_rcu_exp_select_node_cpus);
-		cpu = find_next_bit(&rnp->ffmask, BITS_PER_LONG, -1);
-		/* If all offline, queue the work on an unbound CPU. */
-		if (unlikely(cpu > rnp->grphi - rnp->grplo))
-			cpu = WORK_CPU_UNBOUND;
-		else
-			cpu += rnp->grplo;
-		queue_work_on(cpu, rcu_par_gp_wq, &rnp->rew.rew_work);
+		sync_rcu_exp_select_cpus_queue_work(rnp);
 		rnp->exp_need_flush = true;
 	}
 
-	/* Wait for workqueue jobs (if any) to complete. */
+	/* Wait for jobs (if any) to complete. */
 	rcu_for_each_leaf_node(rnp)
 		if (rnp->exp_need_flush)
-			flush_work(&rnp->rew.rew_work);
+			sync_rcu_exp_select_cpus_flush_work(rnp);
 }
 
 /*
@@ -624,17 +721,6 @@
 	rcu_exp_wait_wake(s);
 }
 
-/*
- * Work-queue handler to drive an expedited grace period forward.
- */
-static void wait_rcu_exp_gp(struct work_struct *wp)
-{
-	struct rcu_exp_work *rewp;
-
-	rewp = container_of(wp, struct rcu_exp_work, rew_work);
-	rcu_exp_sel_wait_wake(rewp->rew_s);
-}
-
 #ifdef CONFIG_PREEMPT_RCU
 
 /*
@@ -852,20 +938,19 @@
 	} else {
 		/* Marshall arguments & schedule the expedited grace period. */
 		rew.rew_s = s;
-		INIT_WORK_ONSTACK(&rew.rew_work, wait_rcu_exp_gp);
-		queue_work(rcu_gp_wq, &rew.rew_work);
+		synchronize_rcu_expedited_queue_work(&rew);
 	}
 
 	/* Wait for expedited grace period to complete. */
 	rnp = rcu_get_root();
 	wait_event(rnp->exp_wq[rcu_seq_ctr(s) & 0x3],
 		   sync_exp_work_done(s));
-	smp_mb(); /* Workqueue actions happen before return. */
+	smp_mb(); /* Work actions happen before return. */
 
 	/* Let the next expedited grace period start. */
 	mutex_unlock(&rcu_state.exp_mutex);
 
 	if (likely(!boottime))
-		destroy_work_on_stack(&rew.rew_work);
+		synchronize_rcu_expedited_destroy_work(&rew);
 }
 EXPORT_SYMBOL_GPL(synchronize_rcu_expedited);
diff --git a/kernel/reboot.c b/kernel/reboot.c
index f7440c0..957ef52 100644
--- a/kernel/reboot.c
+++ b/kernel/reboot.c
@@ -33,7 +33,9 @@
 #define DEFAULT_REBOOT_MODE
 #endif
 enum reboot_mode reboot_mode DEFAULT_REBOOT_MODE;
+EXPORT_SYMBOL_GPL(reboot_mode);
 enum reboot_mode panic_reboot_mode = REBOOT_UNDEFINED;
+EXPORT_SYMBOL_GPL(panic_reboot_mode);
 
 /*
  * This variable is used privately to keep track of whether or not
diff --git a/kernel/sched/Makefile b/kernel/sched/Makefile
index 978fcfc..660d6d6 100644
--- a/kernel/sched/Makefile
+++ b/kernel/sched/Makefile
@@ -37,3 +37,4 @@
 obj-$(CONFIG_CPU_ISOLATION) += isolation.o
 obj-$(CONFIG_PSI) += psi.o
 obj-$(CONFIG_SCHED_CORE) += core_sched.o
+obj-$(CONFIG_ANDROID_VENDOR_HOOKS) += vendor_hooks.o
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 2324b70..a27cd84 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -27,6 +27,10 @@
 #include "pelt.h"
 #include "smp.h"
 
+#include <trace/hooks/sched.h>
+#include <trace/hooks/dtask.h>
+#include <trace/hooks/cgroup.h>
+
 /*
  * Export tracepoints that act as a bare tracehook (ie: have no trace event
  * associated with them) to allow external modules to probe them.
@@ -42,8 +46,17 @@
 EXPORT_TRACEPOINT_SYMBOL_GPL(sched_util_est_cfs_tp);
 EXPORT_TRACEPOINT_SYMBOL_GPL(sched_util_est_se_tp);
 EXPORT_TRACEPOINT_SYMBOL_GPL(sched_update_nr_running_tp);
+EXPORT_TRACEPOINT_SYMBOL_GPL(sched_switch);
+EXPORT_TRACEPOINT_SYMBOL_GPL(sched_waking);
+#ifdef CONFIG_SCHEDSTATS
+EXPORT_TRACEPOINT_SYMBOL_GPL(sched_stat_sleep);
+EXPORT_TRACEPOINT_SYMBOL_GPL(sched_stat_wait);
+EXPORT_TRACEPOINT_SYMBOL_GPL(sched_stat_iowait);
+EXPORT_TRACEPOINT_SYMBOL_GPL(sched_stat_blocked);
+#endif
 
 DEFINE_PER_CPU_SHARED_ALIGNED(struct rq, runqueues);
+EXPORT_SYMBOL_GPL(runqueues);
 
 #ifdef CONFIG_SCHED_DEBUG
 /*
@@ -58,6 +71,7 @@
 const_debug unsigned int sysctl_sched_features =
 #include "features.h"
 	0;
+EXPORT_SYMBOL_GPL(sysctl_sched_features);
 #undef SCHED_FEAT
 
 /*
@@ -489,6 +503,7 @@
 		raw_spin_unlock(lock);
 	}
 }
+EXPORT_SYMBOL_GPL(raw_spin_rq_lock_nested);
 
 bool raw_spin_rq_trylock(struct rq *rq)
 {
@@ -518,6 +533,7 @@
 {
 	raw_spin_unlock(rq_lockp(rq));
 }
+EXPORT_SYMBOL_GPL(raw_spin_rq_unlock);
 
 #ifdef CONFIG_SMP
 /*
@@ -536,6 +552,7 @@
 
 	double_rq_clock_clear_update(rq1, rq2);
 }
+EXPORT_SYMBOL_GPL(double_rq_lock);
 #endif
 
 /*
@@ -561,6 +578,7 @@
 			cpu_relax();
 	}
 }
+EXPORT_SYMBOL_GPL(__task_rq_lock);
 
 /*
  * task_rq_lock - lock p->pi_lock and lock the rq @p resides on.
@@ -603,6 +621,7 @@
 			cpu_relax();
 	}
 }
+EXPORT_SYMBOL_GPL(task_rq_lock);
 
 /*
  * RQ-clock updating methods:
@@ -683,6 +702,7 @@
 	rq->clock += delta;
 	update_rq_clock_task(rq, delta);
 }
+EXPORT_SYMBOL_GPL(update_rq_clock);
 
 #ifdef CONFIG_SCHED_HRTICK
 /*
@@ -887,6 +907,7 @@
 	 */
 	*head->lastp = node;
 	head->lastp = &node->next;
+	head->count++;
 	return true;
 }
 
@@ -942,12 +963,14 @@
 		/* Task can safely be re-inserted now: */
 		node = node->next;
 		task->wake_q.next = NULL;
+		task->wake_q_count = head->count;
 
 		/*
 		 * wake_up_process() executes a full barrier, which pairs with
 		 * the queueing in wake_q_add() so as not to miss wakeups.
 		 */
 		wake_up_process(task);
+		task->wake_q_count = 0;
 		put_task_struct(task);
 	}
 }
@@ -982,6 +1005,7 @@
 	else
 		trace_sched_wake_idle_without_ipi(cpu);
 }
+EXPORT_SYMBOL_GPL(resched_curr);
 
 void resched_cpu(int cpu)
 {
@@ -1009,6 +1033,11 @@
 	int i, cpu = smp_processor_id(), default_cpu = -1;
 	struct sched_domain *sd;
 	const struct cpumask *hk_mask;
+	bool done = false;
+
+	trace_android_rvh_get_nohz_timer_target(&cpu, &done);
+	if (done)
+		return cpu;
 
 	if (housekeeping_cpu(cpu, HK_FLAG_TIMER)) {
 		if (!idle_cpu(cpu))
@@ -1284,6 +1313,7 @@
  *   * An admin modifying the cgroup cpu.uclamp.{min, max}
  */
 DEFINE_STATIC_KEY_FALSE(sched_uclamp_used);
+EXPORT_SYMBOL_GPL(sched_uclamp_used);
 
 /* Integer rounded range for each bucket */
 #define UCLAMP_BUCKET_DELTA DIV_ROUND_CLOSEST(SCHED_CAPACITY_SCALE, UCLAMP_BUCKETS)
@@ -1457,6 +1487,12 @@
 {
 	struct uclamp_se uc_req = uclamp_tg_restrict(p, clamp_id);
 	struct uclamp_se uc_max = uclamp_default[clamp_id];
+	struct uclamp_se uc_eff;
+	int ret = 0;
+
+	trace_android_rvh_uclamp_eff_get(p, clamp_id, &uc_max, &uc_eff, &ret);
+	if (ret)
+		return uc_eff;
 
 	/* System default restrictions always apply */
 	if (unlikely(uc_req.value > uc_max.value))
@@ -1477,6 +1513,7 @@
 
 	return (unsigned long)uc_eff.value;
 }
+EXPORT_SYMBOL_GPL(uclamp_eff_value);
 
 /*
  * When a task is enqueued on a rq, the clamp bucket currently defined by the
@@ -1870,12 +1907,14 @@
 	    attr->sched_util_min != -1) {
 		uclamp_se_set(&p->uclamp_req[UCLAMP_MIN],
 			      attr->sched_util_min, true);
+		trace_android_vh_setscheduler_uclamp(p, UCLAMP_MIN, attr->sched_util_min);
 	}
 
 	if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP_MAX &&
 	    attr->sched_util_max != -1) {
 		uclamp_se_set(&p->uclamp_req[UCLAMP_MAX],
 			      attr->sched_util_max, true);
+		trace_android_vh_setscheduler_uclamp(p, UCLAMP_MAX, attr->sched_util_max);
 	}
 }
 
@@ -1974,7 +2013,9 @@
 	}
 
 	uclamp_rq_inc(rq, p);
+	trace_android_rvh_enqueue_task(rq, p, flags);
 	p->sched_class->enqueue_task(rq, p, flags);
+	trace_android_rvh_after_enqueue_task(rq, p, flags);
 
 	if (sched_core_enabled(rq))
 		sched_core_enqueue(rq, p);
@@ -1994,7 +2035,9 @@
 	}
 
 	uclamp_rq_dec(rq, p);
+	trace_android_rvh_dequeue_task(rq, p, flags);
 	p->sched_class->dequeue_task(rq, p, flags);
+	trace_android_rvh_after_dequeue_task(rq, p, flags);
 }
 
 void activate_task(struct rq *rq, struct task_struct *p, int flags)
@@ -2006,6 +2049,7 @@
 
 	p->on_rq = TASK_ON_RQ_QUEUED;
 }
+EXPORT_SYMBOL_GPL(activate_task);
 
 void deactivate_task(struct rq *rq, struct task_struct *p, int flags)
 {
@@ -2013,6 +2057,7 @@
 
 	dequeue_task(rq, p, flags);
 }
+EXPORT_SYMBOL_GPL(deactivate_task);
 
 static inline int __normal_prio(int policy, int rt_prio, int nice)
 {
@@ -2105,6 +2150,7 @@
 	if (task_on_rq_queued(rq->curr) && test_tsk_need_resched(rq->curr))
 		rq_clock_skip_update(rq);
 }
+EXPORT_SYMBOL_GPL(check_preempt_curr);
 
 #ifdef CONFIG_SMP
 
@@ -2184,6 +2230,8 @@
  */
 static inline bool is_cpu_allowed(struct task_struct *p, int cpu)
 {
+	bool allowed = true;
+
 	/* When not in the task's cpumask, no point in looking further. */
 	if (!cpumask_test_cpu(cpu, p->cpus_ptr))
 		return false;
@@ -2192,14 +2240,20 @@
 	if (is_migration_disabled(p))
 		return cpu_online(cpu);
 
+	/* check for all cases */
+	trace_android_rvh_is_cpu_allowed(p, cpu, &allowed);
+
 	/* Non kernel threads are not allowed during either online or offline. */
 	if (!(p->flags & PF_KTHREAD))
-		return cpu_active(cpu) && task_cpu_possible(cpu, p);
+		return cpu_active(cpu) && task_cpu_possible(cpu, p) && allowed;
 
 	/* KTHREAD_IS_PER_CPU is always allowed. */
 	if (kthread_is_per_cpu(p))
 		return cpu_online(cpu);
 
+	if (!allowed)
+		return false;
+
 	/* Regular kernel threads don't get to stay during offline. */
 	if (cpu_dying(cpu))
 		return false;
@@ -2230,12 +2284,24 @@
 static struct rq *move_queued_task(struct rq *rq, struct rq_flags *rf,
 				   struct task_struct *p, int new_cpu)
 {
+	int detached = 0;
+
 	lockdep_assert_rq_held(rq);
 
+	/*
+	 * The vendor hook may drop the lock temporarily, so
+	 * pass the rq flags to unpin lock. We expect the
+	 * rq lock to be held after return.
+	 */
+	trace_android_rvh_migrate_queued_task(rq, rf, p, new_cpu, &detached);
+	if (detached)
+		goto attach;
+
 	deactivate_task(rq, p, DEQUEUE_NOCLOCK);
 	set_task_cpu(p, new_cpu);
-	rq_unlock(rq, rf);
 
+attach:
+	rq_unlock(rq, rf);
 	rq = cpu_rq(new_cpu);
 
 	rq_lock(rq, rf);
@@ -2273,8 +2339,8 @@
  * So we race with normal scheduler movements, but that's OK, as long
  * as the task is no longer on this CPU.
  */
-static struct rq *__migrate_task(struct rq *rq, struct rq_flags *rf,
-				 struct task_struct *p, int dest_cpu)
+struct rq *__migrate_task(struct rq *rq, struct rq_flags *rf,
+			  struct task_struct *p, int dest_cpu)
 {
 	/* Affinity changed (again). */
 	if (!is_cpu_allowed(p, dest_cpu))
@@ -2285,6 +2351,7 @@
 
 	return rq;
 }
+EXPORT_SYMBOL_GPL(__migrate_task);
 
 /*
  * migration_cpu_stop - this will be executed by a highprio stopper thread
@@ -2449,6 +2516,7 @@
 
 	cpumask_copy(&p->cpus_mask, new_mask);
 	p->nr_cpus_allowed = cpumask_weight(new_mask);
+	trace_android_rvh_set_cpus_allowed_comm(p, new_mask);
 }
 
 static void
@@ -2840,6 +2908,9 @@
 	 * immediately required to distribute the tasks within their new mask.
 	 */
 	dest_cpu = cpumask_any_and_distribute(cpu_valid_mask, new_mask);
+	trace_android_rvh_set_cpus_allowed_ptr_locked(cpu_valid_mask, new_mask, &dest_cpu);
+	trace_android_rvh_set_cpus_allowed_by_task(cpu_valid_mask, new_mask, p, &dest_cpu);
+
 	if (dest_cpu >= nr_cpu_ids) {
 		ret = -EINVAL;
 		goto out;
@@ -2961,6 +3032,7 @@
 	 * offlining of the chosen destination CPU, so take the hotplug
 	 * lock to ensure that the migration succeeds.
 	 */
+	trace_android_vh_force_compatible_pre(NULL);
 	cpus_read_lock();
 	if (!cpumask_available(new_mask))
 		goto out_set_mask;
@@ -2985,6 +3057,7 @@
 	WARN_ON(set_cpus_allowed_ptr(p, override_mask));
 out_free_mask:
 	cpus_read_unlock();
+	trace_android_vh_force_compatible_post(NULL);
 	free_cpumask_var(new_mask);
 }
 
@@ -3069,12 +3142,13 @@
 		p->se.nr_migrations++;
 		rseq_migrate(p);
 		perf_event_task_migrate(p);
+		trace_android_rvh_set_task_cpu(p, new_cpu);
 	}
 
 	__set_task_cpu(p, new_cpu);
 }
+EXPORT_SYMBOL_GPL(set_task_cpu);
 
-#ifdef CONFIG_NUMA_BALANCING
 static void __migrate_swap_task(struct task_struct *p, int cpu)
 {
 	if (task_on_rq_queued(p)) {
@@ -3189,7 +3263,7 @@
 out:
 	return ret;
 }
-#endif /* CONFIG_NUMA_BALANCING */
+EXPORT_SYMBOL_GPL(migrate_swap);
 
 /*
  * wait_task_inactive - wait for a thread to unschedule.
@@ -3346,12 +3420,16 @@
  * select_task_rq() below may allow selection of !active CPUs in order
  * to satisfy the above rules.
  */
-static int select_fallback_rq(int cpu, struct task_struct *p)
+int select_fallback_rq(int cpu, struct task_struct *p)
 {
 	int nid = cpu_to_node(cpu);
 	const struct cpumask *nodemask = NULL;
 	enum { cpuset, possible, fail } state = cpuset;
-	int dest_cpu;
+	int dest_cpu = -1;
+
+	trace_android_rvh_select_fallback_rq(cpu, p, &dest_cpu);
+	if (dest_cpu >= 0)
+		return dest_cpu;
 
 	/*
 	 * If the node that the CPU is on has been offlined, cpu_to_node()
@@ -3416,6 +3494,7 @@
 
 	return dest_cpu;
 }
+EXPORT_SYMBOL_GPL(select_fallback_rq);
 
 /*
  * The caller (fork, wakeup) owns p->pi_lock, ->cpus_ptr is stable.
@@ -3522,11 +3601,11 @@
 #ifdef CONFIG_SMP
 	if (cpu == rq->cpu) {
 		__schedstat_inc(rq->ttwu_local);
-		__schedstat_inc(p->stats.nr_wakeups_local);
+		__schedstat_inc(p->se.statistics.nr_wakeups_local);
 	} else {
 		struct sched_domain *sd;
 
-		__schedstat_inc(p->stats.nr_wakeups_remote);
+		__schedstat_inc(p->se.statistics.nr_wakeups_remote);
 		rcu_read_lock();
 		for_each_domain(rq->cpu, sd) {
 			if (cpumask_test_cpu(cpu, sched_domain_span(sd))) {
@@ -3538,14 +3617,14 @@
 	}
 
 	if (wake_flags & WF_MIGRATED)
-		__schedstat_inc(p->stats.nr_wakeups_migrate);
+		__schedstat_inc(p->se.statistics.nr_wakeups_migrate);
 #endif /* CONFIG_SMP */
 
 	__schedstat_inc(rq->ttwu_count);
-	__schedstat_inc(p->stats.nr_wakeups);
+	__schedstat_inc(p->se.statistics.nr_wakeups);
 
 	if (wake_flags & WF_SYNC)
-		__schedstat_inc(p->stats.nr_wakeups_sync);
+		__schedstat_inc(p->se.statistics.nr_wakeups_sync);
 }
 
 /*
@@ -3592,6 +3671,9 @@
 {
 	int en_flags = ENQUEUE_WAKEUP | ENQUEUE_NOCLOCK;
 
+	if (wake_flags & WF_SYNC)
+		en_flags |= ENQUEUE_WAKEUP_SYNC;
+
 	lockdep_assert_rq_held(rq);
 
 	if (p->sched_contributes_to_load)
@@ -3737,6 +3819,7 @@
 out:
 	rcu_read_unlock();
 }
+EXPORT_SYMBOL_GPL(wake_up_if_idle);
 
 bool cpus_share_cache(int this_cpu, int that_cpu)
 {
@@ -3788,7 +3871,11 @@
 
 static bool ttwu_queue_wakelist(struct task_struct *p, int cpu, int wake_flags)
 {
-	if (sched_feat(TTWU_QUEUE) && ttwu_queue_cond(p, cpu)) {
+	bool cond = false;
+
+	trace_android_rvh_ttwu_cond(cpu, &cond);
+
+	if ((sched_feat(TTWU_QUEUE) && ttwu_queue_cond(p, cpu)) || cond) {
 		sched_clock_cpu(cpu); /* Sync clocks across CPUs */
 		__ttwu_queue_wakelist(p, cpu, wake_flags);
 		return true;
@@ -4028,6 +4115,19 @@
 	if (!ttwu_state_match(p, state, &success))
 		goto unlock;
 
+#ifdef CONFIG_FREEZER
+	/*
+	 * If we're going to wake up a thread which may be frozen, then
+	 * we can only do so if we have an active CPU which is capable of
+	 * running it. This may not be the case when resuming from suspend,
+	 * as the secondary CPUs may not yet be back online. See __thaw_task()
+	 * for the actual wakeup.
+	 */
+	if (unlikely(frozen_or_skipped(p)) &&
+	    !cpumask_intersects(cpu_active_mask, task_cpu_possible_mask(p)))
+		goto unlock;
+#endif
+
 	trace_sched_waking(p);
 
 	/*
@@ -4056,6 +4156,9 @@
 	if (READ_ONCE(p->on_rq) && ttwu_runnable(p, wake_flags))
 		goto unlock;
 
+	if (READ_ONCE(p->__state) & TASK_UNINTERRUPTIBLE)
+		trace_sched_blocked_reason(p);
+
 #ifdef CONFIG_SMP
 	/*
 	 * Ensure we load p->on_cpu _after_ p->on_rq, otherwise it would be
@@ -4124,6 +4227,8 @@
 	 */
 	smp_cond_load_acquire(&p->on_cpu, !VAL);
 
+	trace_android_rvh_try_to_wake_up(p);
+
 	cpu = select_task_rq(p, p->wake_cpu, wake_flags | WF_TTWU);
 	if (task_cpu(p) != cpu) {
 		if (p->in_iowait) {
@@ -4143,8 +4248,10 @@
 unlock:
 	raw_spin_unlock_irqrestore(&p->pi_lock, flags);
 out:
-	if (success)
+	if (success) {
+		trace_android_rvh_try_to_wake_up_success(p);
 		ttwu_stat(p, task_cpu(p), wake_flags);
+	}
 	preempt_enable();
 
 	return success;
@@ -4239,9 +4346,11 @@
 	p->se.cfs_rq			= NULL;
 #endif
 
+	trace_android_rvh_sched_fork_init(p);
+
 #ifdef CONFIG_SCHEDSTATS
 	/* Even if schedstat is disabled, there should not be garbage */
-	memset(&p->stats, 0, sizeof(p->stats));
+	memset(&p->se.statistics, 0, sizeof(p->se.statistics));
 #endif
 
 	RB_CLEAR_NODE(&p->dl.rb_node);
@@ -4373,6 +4482,8 @@
  */
 int sched_fork(unsigned long clone_flags, struct task_struct *p)
 {
+	trace_android_rvh_sched_fork(p);
+
 	__sched_fork(clone_flags, p);
 	/*
 	 * We mark the process as NEW here. This guarantees that
@@ -4385,6 +4496,7 @@
 	 * Make sure we do not leak PI boosting priority to the child.
 	 */
 	p->prio = current->normal_prio;
+	trace_android_rvh_prepare_prio_fork(p);
 
 	uclamp_fork(p);
 
@@ -4417,6 +4529,8 @@
 		p->sched_class = &fair_sched_class;
 
 	init_entity_runnable_average(&p->se);
+	trace_android_rvh_finish_prio_fork(p);
+
 
 
 #ifdef CONFIG_SCHED_INFO
@@ -4496,6 +4610,8 @@
 	struct rq_flags rf;
 	struct rq *rq;
 
+	trace_android_rvh_wake_up_new_task(p);
+
 	raw_spin_lock_irqsave(&p->pi_lock, rf.flags);
 	WRITE_ONCE(p->__state, TASK_RUNNING);
 #ifdef CONFIG_SMP
@@ -4514,6 +4630,7 @@
 	rq = __task_rq_lock(p, &rf);
 	update_rq_clock(rq);
 	post_init_entity_util_avg(p);
+	trace_android_rvh_new_task_stats(p);
 
 	activate_task(rq, p, ENQUEUE_NOCLOCK);
 	trace_sched_wakeup_new(p);
@@ -4687,6 +4804,7 @@
 	.next = NULL,
 	.func = (void (*)(struct callback_head *))balance_push,
 };
+EXPORT_SYMBOL_GPL(balance_push_callback);
 
 static inline struct callback_head *
 __splice_balance_callbacks(struct rq *rq, bool split)
@@ -4718,10 +4836,11 @@
 	return __splice_balance_callbacks(rq, true);
 }
 
-static void __balance_callbacks(struct rq *rq)
+void __balance_callbacks(struct rq *rq)
 {
 	do_balance_callbacks(rq, __splice_balance_callbacks(rq, false));
 }
+EXPORT_SYMBOL_GPL(__balance_callbacks);
 
 static inline void balance_callbacks(struct rq *rq, struct callback_head *head)
 {
@@ -4933,6 +5052,7 @@
 		 * task and put them back on the free list.
 		 */
 		kprobe_flush_task(prev);
+		trace_android_rvh_flush_task(prev);
 
 		/* Task is done with its stack. */
 		put_task_stack(prev);
@@ -5010,6 +5130,7 @@
 		 * finish_task_switch()'s mmdrop().
 		 */
 		switch_mm_irqs_off(prev->active_mm, next->mm, next);
+		lru_gen_use_mm(next->mm);
 
 		if (!prev->mm) {                        // from kernel
 			/* will mmdrop() in finish_task_switch(). */
@@ -5138,6 +5259,11 @@
 	struct task_struct *p = current;
 	unsigned long flags;
 	int dest_cpu;
+	bool cond = false;
+
+	trace_android_rvh_sched_exec(&cond);
+	if (cond)
+		return;
 
 	raw_spin_lock_irqsave(&p->pi_lock, flags);
 	dest_cpu = p->sched_class->select_task_rq(p, task_cpu(p), WF_EXEC);
@@ -5223,6 +5349,7 @@
 
 	return ns;
 }
+EXPORT_SYMBOL_GPL(task_sched_runtime);
 
 #ifdef CONFIG_SCHED_DEBUG
 static u64 cpu_resched_latency(struct rq *rq)
@@ -5292,6 +5419,8 @@
 	rq_lock(rq, &rf);
 
 	update_rq_clock(rq);
+	trace_android_rvh_tick_entry(rq);
+
 	thermal_pressure = arch_scale_thermal_pressure(cpu_of(rq));
 	update_thermal_load_avg(rq_clock_thermal(rq), rq, thermal_pressure);
 	curr->sched_class->task_tick(rq, curr, 0);
@@ -5310,6 +5439,8 @@
 	rq->idle_balance = idle_cpu(cpu);
 	trigger_load_balance(rq);
 #endif
+
+	trace_android_vh_scheduler_tick(rq);
 }
 
 #ifdef CONFIG_NO_HZ_FULL
@@ -5565,6 +5696,8 @@
 	}
 	check_panic_on_warn("scheduling while atomic");
 
+	trace_android_rvh_schedule_bug(prev);
+
 	dump_stack();
 	add_taint(TAINT_WARN, LOCKDEP_STILL_OK);
 }
@@ -6340,6 +6473,7 @@
 	rq->last_seen_need_resched_ns = 0;
 #endif
 
+	trace_android_rvh_schedule(prev, next, rq);
 	if (likely(prev != next)) {
 		rq->nr_switches++;
 		/*
@@ -6784,7 +6918,7 @@
 int default_wake_function(wait_queue_entry_t *curr, unsigned mode, int wake_flags,
 			  void *key)
 {
-	WARN_ON_ONCE(IS_ENABLED(CONFIG_SCHED_DEBUG) && wake_flags & ~WF_SYNC);
+	WARN_ON_ONCE(IS_ENABLED(CONFIG_SCHED_DEBUG) && wake_flags & ~(WF_SYNC | WF_ANDROID_VENDOR));
 	return try_to_wake_up(curr->private, mode, wake_flags);
 }
 EXPORT_SYMBOL(default_wake_function);
@@ -6836,14 +6970,17 @@
 	const struct sched_class *prev_class;
 	struct rq_flags rf;
 	struct rq *rq;
+	int update = 0;
 
+	trace_android_rvh_rtmutex_prepare_setprio(p, pi_task);
 	/* XXX used to be waiter->prio, not waiter->task->prio */
 	prio = __rt_effective_prio(pi_task, p->normal_prio);
 
+	trace_android_rvh_rtmutex_force_update(p, pi_task, &update);
 	/*
 	 * If nothing changed; bail early.
 	 */
-	if (p->pi_top_task == pi_task && prio == p->prio && !dl_prio(prio))
+	if (!update && p->pi_top_task == pi_task && prio == p->prio && !dl_prio(prio))
 		return;
 
 	rq = __task_rq_lock(p, &rf);
@@ -6863,7 +7000,7 @@
 	/*
 	 * For FIFO/RR we only need to set prio, if that matches we're done.
 	 */
-	if (prio == p->prio && !dl_prio(prio))
+	if (!update && prio == p->prio && !dl_prio(prio))
 		goto out_unlock;
 
 	/*
@@ -6955,12 +7092,13 @@
 
 void set_user_nice(struct task_struct *p, long nice)
 {
-	bool queued, running;
+	bool queued, running, allowed = false;
 	int old_prio;
 	struct rq_flags rf;
 	struct rq *rq;
 
-	if (task_nice(p) == nice || nice < MIN_NICE || nice > MAX_NICE)
+	trace_android_rvh_set_user_nice(p, &nice, &allowed);
+	if ((task_nice(p) == nice || nice < MIN_NICE || nice > MAX_NICE) && !allowed)
 		return;
 	/*
 	 * We have to be careful, if called from sys_setpriority(),
@@ -7113,6 +7251,7 @@
 
 	return 1;
 }
+EXPORT_SYMBOL_GPL(available_idle_cpu);
 
 /**
  * idle_task - return the idle task for a given CPU.
@@ -7152,6 +7291,11 @@
 {
 	unsigned long dl_util, util, irq;
 	struct rq *rq = cpu_rq(cpu);
+	unsigned long new_util = ULONG_MAX;
+
+	trace_android_rvh_effective_cpu_util(cpu, util_cfs, max, type, p, &new_util);
+	if (new_util != ULONG_MAX)
+		return new_util;
 
 	if (!uclamp_is_used() &&
 	    type == FREQUENCY_UTIL && rt_rq_is_runnable(&rq->rt)) {
@@ -7388,6 +7532,10 @@
 		/* Normal users shall not reset the sched_reset_on_fork flag: */
 		if (p->sched_reset_on_fork && !reset_on_fork)
 			return -EPERM;
+
+		/* Can't change util-clamps */
+		if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP)
+			return -EPERM;
 	}
 
 	if (user) {
@@ -7610,11 +7758,13 @@
 {
 	return _sched_setscheduler(p, policy, param, true);
 }
+EXPORT_SYMBOL_GPL(sched_setscheduler);
 
 int sched_setattr(struct task_struct *p, const struct sched_attr *attr)
 {
 	return __sched_setscheduler(p, attr, true, true);
 }
+EXPORT_SYMBOL_GPL(sched_setattr);
 
 int sched_setattr_nocheck(struct task_struct *p, const struct sched_attr *attr)
 {
@@ -7640,6 +7790,7 @@
 {
 	return _sched_setscheduler(p, policy, param, false);
 }
+EXPORT_SYMBOL_GPL(sched_setscheduler_nocheck);
 
 /*
  * SCHED_FIFO is a broken scheduler model; that is, it is fundamentally
@@ -7701,14 +7852,9 @@
 	rcu_read_lock();
 	retval = -ESRCH;
 	p = find_process_by_pid(pid);
-	if (likely(p))
-		get_task_struct(p);
-	rcu_read_unlock();
-
-	if (likely(p)) {
+	if (p != NULL)
 		retval = sched_setscheduler(p, policy, &lparam);
-		put_task_struct(p);
-	}
+	rcu_read_unlock();
 
 	return retval;
 }
@@ -8072,7 +8218,8 @@
 long sched_setaffinity(pid_t pid, const struct cpumask *in_mask)
 {
 	struct task_struct *p;
-	int retval;
+	int retval = 0;
+	int skip = 0;
 
 	rcu_read_lock();
 
@@ -8101,11 +8248,16 @@
 		rcu_read_unlock();
 	}
 
+	trace_android_vh_sched_setaffinity_early(p, in_mask, &skip);
+	if (skip)
+		goto out_put_task;
 	retval = security_task_setscheduler(p);
 	if (retval)
 		goto out_put_task;
 
 	retval = __sched_setaffinity(p, in_mask);
+	trace_android_rvh_sched_setaffinity(p, in_mask, &retval);
+
 out_put_task:
 	put_task_struct(p);
 	return retval;
@@ -8165,6 +8317,7 @@
 
 	raw_spin_lock_irqsave(&p->pi_lock, flags);
 	cpumask_and(mask, &p->cpus_mask, cpu_active_mask);
+	trace_android_rvh_sched_getaffinity(p, mask);
 	raw_spin_unlock_irqrestore(&p->pi_lock, flags);
 
 out_unlock:
@@ -8220,6 +8373,8 @@
 	schedstat_inc(rq->yld_count);
 	current->sched_class->yield_task(rq);
 
+	trace_android_rvh_do_sched_yield(rq);
+
 	preempt_disable();
 	rq_unlock_irq(rq, &rf);
 	sched_preempt_enable_no_resched();
@@ -8633,6 +8788,7 @@
 
 	print_worker_info(KERN_INFO, p);
 	print_stop_info(KERN_INFO, p);
+	trace_android_vh_sched_show_task(p);
 	show_stack(p, NULL, KERN_INFO);
 	put_task_stack(p);
 }
@@ -8878,6 +9034,24 @@
 	/* finish_cpu(), as ran on the BP, will clean up the active_mm state */
 }
 
+struct task_struct *pick_migrate_task(struct rq *rq)
+{
+	const struct sched_class *class;
+	struct task_struct *next;
+
+	for_each_class(class) {
+		next = class->pick_next_task(rq);
+		if (next) {
+			next->sched_class->put_prev_task(rq, next);
+			return next;
+		}
+	}
+
+	/* The idle class should always have a runnable task */
+	BUG();
+}
+EXPORT_SYMBOL_GPL(pick_migrate_task);
+
 static int __balance_push_cpu_stop(void *arg)
 {
 	struct task_struct *p = arg;
@@ -9220,6 +9394,7 @@
 	sched_core_cpu_starting(cpu);
 	sched_rq_cpu_starting(cpu);
 	sched_tick_start(cpu);
+	trace_android_rvh_sched_cpu_starting(cpu);
 	return 0;
 }
 
@@ -9293,6 +9468,8 @@
 	}
 	rq_unlock_irqrestore(rq, &rf);
 
+	trace_android_rvh_sched_cpu_dying(cpu);
+
 	calc_load_migrate(rq);
 	update_max_interval();
 	hrtick_clear(rq);
@@ -9353,7 +9530,9 @@
  * Every task in system belongs to this group at bootup.
  */
 struct task_group root_task_group;
+EXPORT_SYMBOL_GPL(root_task_group);
 LIST_HEAD(task_groups);
+EXPORT_SYMBOL_GPL(task_groups);
 
 /* Cacheline aligned slab cache for task_group */
 static struct kmem_cache *task_group_cache __read_mostly;
@@ -9617,6 +9796,9 @@
 		pr_err("Preemption disabled at:");
 		print_ip_sym(KERN_ERR, preempt_disable_ip);
 	}
+
+	trace_android_rvh_schedule_bug(NULL);
+
 	dump_stack();
 	add_taint(TAINT_WARN, LOCKDEP_STILL_OK);
 }
@@ -9701,9 +9883,9 @@
 			continue;
 
 		p->se.exec_start = 0;
-		schedstat_set(p->stats.wait_start,  0);
-		schedstat_set(p->stats.sleep_start, 0);
-		schedstat_set(p->stats.block_start, 0);
+		schedstat_set(p->se.statistics.wait_start,  0);
+		schedstat_set(p->se.statistics.sleep_start, 0);
+		schedstat_set(p->se.statistics.block_start, 0);
 
 		if (!dl_task(p) && !rt_task(p)) {
 			/*
@@ -9996,6 +10178,7 @@
 	mutex_unlock(&uclamp_mutex);
 #endif
 
+	trace_android_rvh_cpu_cgroup_online(css);
 	return 0;
 }
 
@@ -10061,6 +10244,9 @@
 		if (ret)
 			break;
 	}
+
+	trace_android_rvh_cpu_cgroup_can_attach(tset, &ret);
+
 	return ret;
 }
 
@@ -10071,6 +10257,8 @@
 
 	cgroup_taskset_for_each(task, css, tset)
 		sched_move_task(task);
+
+	trace_android_rvh_cpu_cgroup_attach(tset);
 }
 
 #ifdef CONFIG_UCLAMP_TASK_GROUP
@@ -10248,6 +10436,27 @@
 	cpu_uclamp_print(sf, UCLAMP_MAX);
 	return 0;
 }
+
+static int cpu_uclamp_ls_write_u64(struct cgroup_subsys_state *css,
+				   struct cftype *cftype, u64 ls)
+{
+	struct task_group *tg;
+
+	if (ls > 1)
+		return -EINVAL;
+	tg = css_tg(css);
+	tg->latency_sensitive = (unsigned int) ls;
+
+	return 0;
+}
+
+static u64 cpu_uclamp_ls_read_u64(struct cgroup_subsys_state *css,
+				  struct cftype *cft)
+{
+	struct task_group *tg = css_tg(css);
+
+	return (u64) tg->latency_sensitive;
+}
 #endif /* CONFIG_UCLAMP_TASK_GROUP */
 
 #ifdef CONFIG_FAIR_GROUP_SCHED
@@ -10571,14 +10780,11 @@
 	seq_printf(sf, "throttled_time %llu\n", cfs_b->throttled_time);
 
 	if (schedstat_enabled() && tg != &root_task_group) {
-		struct sched_statistics *stats;
 		u64 ws = 0;
 		int i;
 
-		for_each_possible_cpu(i) {
-			stats = __schedstats_from_se(tg->se[i]);
-			ws += schedstat_val(stats->wait_sum);
-		}
+		for_each_possible_cpu(i)
+			ws += schedstat_val(tg->se[i]->statistics.wait_sum);
 
 		seq_printf(sf, "wait_sum %llu\n", ws);
 	}
@@ -10687,6 +10893,12 @@
 		.seq_show = cpu_uclamp_max_show,
 		.write = cpu_uclamp_max_write,
 	},
+	{
+		.name = "uclamp.latency_sensitive",
+		.flags = CFTYPE_NOT_ON_ROOT,
+		.read_u64 = cpu_uclamp_ls_read_u64,
+		.write_u64 = cpu_uclamp_ls_write_u64,
+	},
 #endif
 	{ }	/* Terminate */
 };
@@ -10881,6 +11093,12 @@
 		.seq_show = cpu_uclamp_max_show,
 		.write = cpu_uclamp_max_write,
 	},
+	{
+		.name = "uclamp.latency_sensitive",
+		.flags = CFTYPE_NOT_ON_ROOT,
+		.read_u64 = cpu_uclamp_ls_read_u64,
+		.write_u64 = cpu_uclamp_ls_write_u64,
+	},
 #endif
 	{ }	/* terminate */
 };
diff --git a/kernel/sched/cpufreq.c b/kernel/sched/cpufreq.c
index 7c2fe50..17fa956 100644
--- a/kernel/sched/cpufreq.c
+++ b/kernel/sched/cpufreq.c
@@ -10,6 +10,7 @@
 #include "sched.h"
 
 DEFINE_PER_CPU(struct update_util_data __rcu *, cpufreq_update_util_data);
+EXPORT_PER_CPU_SYMBOL_GPL(cpufreq_update_util_data);
 
 /**
  * cpufreq_add_update_util_hook - Populate the CPU's update_util_data pointer.
@@ -75,3 +76,4 @@
 		(policy->dvfs_possible_from_any_cpu &&
 		 rcu_dereference_sched(*this_cpu_ptr(&cpufreq_update_util_data)));
 }
+EXPORT_SYMBOL_GPL(cpufreq_this_cpu_can_update);
diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c
index 7f6bb37..c43bbdf 100644
--- a/kernel/sched/cpufreq_schedutil.c
+++ b/kernel/sched/cpufreq_schedutil.c
@@ -12,6 +12,7 @@
 
 #include <linux/sched/cpufreq.h>
 #include <trace/events/power.h>
+#include <trace/hooks/sched.h>
 
 #define IOWAIT_BOOST_MIN	(SCHED_CAPACITY_SCALE / 8)
 
@@ -103,11 +104,17 @@
 static bool sugov_update_next_freq(struct sugov_policy *sg_policy, u64 time,
 				   unsigned int next_freq)
 {
+	bool should_update = true;
+
 	if (sg_policy->need_freq_update)
 		sg_policy->need_freq_update = cpufreq_driver_test_flags(CPUFREQ_NEED_UPDATE_LIMITS);
 	else if (sg_policy->next_freq == next_freq)
 		return false;
 
+	trace_android_rvh_set_sugov_update(sg_policy, next_freq, &should_update);
+	if (!should_update)
+		return false;
+
 	sg_policy->next_freq = next_freq;
 	sg_policy->last_freq_update_time = time;
 
@@ -150,9 +157,16 @@
 	struct cpufreq_policy *policy = sg_policy->policy;
 	unsigned int freq = arch_scale_freq_invariant() ?
 				policy->cpuinfo.max_freq : policy->cur;
+	unsigned long next_freq = 0;
 
 	util = map_util_perf(util);
-	freq = map_util_freq(util, freq, max);
+	trace_android_vh_map_util_freq(util, freq, max, &next_freq);
+	trace_android_vh_map_util_freq_new(util, freq, max, &next_freq, policy,
+			&sg_policy->need_freq_update);
+	if (next_freq)
+		freq = next_freq;
+	else
+		freq = map_util_freq(util, freq, max);
 
 	if (freq == sg_policy->cached_raw_freq && !sg_policy->need_freq_update)
 		return sg_policy->next_freq;
@@ -597,6 +611,7 @@
 	if (policy->fast_switch_enabled)
 		return 0;
 
+	trace_android_vh_set_sugov_sched_attr(&attr);
 	kthread_init_work(&sg_policy->work, sugov_work);
 	kthread_init_worker(&sg_policy->worker);
 	thread = kthread_create(kthread_worker_fn, &sg_policy->worker,
@@ -836,29 +851,3 @@
 #endif
 
 cpufreq_governor_init(schedutil_gov);
-
-#ifdef CONFIG_ENERGY_MODEL
-static void rebuild_sd_workfn(struct work_struct *work)
-{
-	rebuild_sched_domains_energy();
-}
-static DECLARE_WORK(rebuild_sd_work, rebuild_sd_workfn);
-
-/*
- * EAS shouldn't be attempted without sugov, so rebuild the sched_domains
- * on governor changes to make sure the scheduler knows about it.
- */
-void sched_cpufreq_governor_change(struct cpufreq_policy *policy,
-				  struct cpufreq_governor *old_gov)
-{
-	if (old_gov == &schedutil_gov || policy->governor == &schedutil_gov) {
-		/*
-		 * When called from the cpufreq_register_driver() path, the
-		 * cpu_hotplug_lock is already held, so use a work item to
-		 * avoid nested locking in rebuild_sched_domains().
-		 */
-		schedule_work(&rebuild_sd_work);
-	}
-
-}
-#endif
diff --git a/kernel/sched/cpupri.c b/kernel/sched/cpupri.c
index d583f2a..a4a0c21 100644
--- a/kernel/sched/cpupri.c
+++ b/kernel/sched/cpupri.c
@@ -65,8 +65,29 @@
 	return cpupri;
 }
 
+#ifdef CONFIG_RT_SOFTINT_OPTIMIZATION
+/**
+ * drop_nopreempt_cpus - remove likely nonpreemptible cpus from the mask
+ * @lowest_mask: mask with selected CPUs (non-NULL)
+ */
+static void
+drop_nopreempt_cpus(struct cpumask *lowest_mask)
+{
+	unsigned int cpu = cpumask_first(lowest_mask);
+	while (cpu < nr_cpu_ids) {
+		/* unlocked access */
+		struct task_struct *task = READ_ONCE(cpu_rq(cpu)->curr);
+		if (task_may_not_preempt(task, cpu)) {
+			cpumask_clear_cpu(cpu, lowest_mask);
+		}
+		cpu = cpumask_next(cpu, lowest_mask);
+	}
+}
+#endif
+
 static inline int __cpupri_find(struct cpupri *cp, struct task_struct *p,
-				struct cpumask *lowest_mask, int idx)
+				struct cpumask *lowest_mask, int idx,
+				bool drop_nopreempts)
 {
 	struct cpupri_vec *vec  = &cp->pri_to_cpu[idx];
 	int skip = 0;
@@ -103,6 +124,11 @@
 	if (lowest_mask) {
 		cpumask_and(lowest_mask, &p->cpus_mask, vec->mask);
 
+#ifdef CONFIG_RT_SOFTINT_OPTIMIZATION
+		if (drop_nopreempts)
+			drop_nopreempt_cpus(lowest_mask);
+#endif
+
 		/*
 		 * We have to ensure that we have at least one bit
 		 * still set in the array, since the map could have
@@ -147,12 +173,16 @@
 {
 	int task_pri = convert_prio(p->prio);
 	int idx, cpu;
+	bool drop_nopreempts = task_pri <= MAX_RT_PRIO;
 
 	BUG_ON(task_pri >= CPUPRI_NR_PRIORITIES);
 
+#ifdef CONFIG_RT_SOFTINT_OPTIMIZATION
+retry:
+#endif
 	for (idx = 0; idx < task_pri; idx++) {
 
-		if (!__cpupri_find(cp, p, lowest_mask, idx))
+		if (!__cpupri_find(cp, p, lowest_mask, idx, drop_nopreempts))
 			continue;
 
 		if (!lowest_mask || !fitness_fn)
@@ -175,6 +205,17 @@
 	}
 
 	/*
+	 * If we can't find any non-preemptible cpu's, retry so we can
+	 * find the lowest priority target and avoid priority inversion.
+	 */
+#ifdef CONFIG_RT_SOFTINT_OPTIMIZATION
+	if (drop_nopreempts) {
+		drop_nopreempts = false;
+		goto retry;
+	}
+#endif
+
+	/*
 	 * If we failed to find a fitting lowest_mask, kick off a new search
 	 * but without taking into account any fitness criteria this time.
 	 *
@@ -196,6 +237,7 @@
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(cpupri_find_fitness);
 
 /**
  * cpupri_set - update the CPU priority setting
@@ -314,3 +356,17 @@
 	for (i = 0; i < CPUPRI_NR_PRIORITIES; i++)
 		free_cpumask_var(cp->pri_to_cpu[i].mask);
 }
+
+#ifdef CONFIG_RT_SOFTINT_OPTIMIZATION
+/*
+ * cpupri_check_rt - check if CPU has a RT task
+ * should be called from rcu-sched read section.
+ */
+bool cpupri_check_rt(void)
+{
+	int cpu = raw_smp_processor_id();
+
+	return (cpu_rq(cpu)->rd->cpupri.cpu_to_pri[cpu] > CPUPRI_NORMAL) &&
+	       (cpu_rq(cpu)->rt.rt_throttled == 0);
+}
+#endif
diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
index 042a6db..be02fcf 100644
--- a/kernel/sched/cputime.c
+++ b/kernel/sched/cputime.c
@@ -2,7 +2,9 @@
 /*
  * Simple CPU accounting cgroup controller
  */
+#include <linux/cpufreq_times.h>
 #include "sched.h"
+#include <trace/hooks/sched.h>
 
 #ifdef CONFIG_IRQ_TIME_ACCOUNTING
 
@@ -18,6 +20,7 @@
  * compromise in place of having locks on each irq in account_system_time.
  */
 DEFINE_PER_CPU(struct irqtime, cpu_irqtime);
+EXPORT_PER_CPU_SYMBOL_GPL(cpu_irqtime);
 
 static int sched_clock_irqtime;
 
@@ -53,6 +56,7 @@
 	unsigned int pc;
 	s64 delta;
 	int cpu;
+	bool irq_start = true;
 
 	if (!sched_clock_irqtime)
 		return;
@@ -68,10 +72,20 @@
 	 * in that case, so as not to confuse scheduler with a special task
 	 * that do not consume any time, but still wants to run.
 	 */
-	if (pc & HARDIRQ_MASK)
+	if (pc & HARDIRQ_MASK) {
 		irqtime_account_delta(irqtime, delta, CPUTIME_IRQ);
-	else if ((pc & SOFTIRQ_OFFSET) && curr != this_cpu_ksoftirqd())
+		irq_start = false;
+	} else if ((pc & SOFTIRQ_OFFSET) && curr != this_cpu_ksoftirqd()) {
 		irqtime_account_delta(irqtime, delta, CPUTIME_SOFTIRQ);
+		irq_start = false;
+	}
+
+	trace_android_rvh_account_irq(curr, cpu, delta);
+
+	if (irq_start)
+		trace_android_rvh_account_irq_start(curr, cpu, delta);
+	else
+		trace_android_rvh_account_irq_end(curr, cpu, delta);
 }
 
 static u64 irqtime_tick_accounted(u64 maxtime)
@@ -130,6 +144,9 @@
 
 	/* Account for user time used */
 	acct_account_cputime(p);
+
+	/* Account power usage for user time */
+	cpufreq_acct_update_power(p, cputime);
 }
 
 /*
@@ -174,6 +191,9 @@
 
 	/* Account for system time used */
 	acct_account_cputime(p);
+
+	/* Account power usage for system time */
+	cpufreq_acct_update_power(p, cputime);
 }
 
 /*
@@ -389,6 +409,7 @@
 	} else {
 		account_system_index_time(p, cputime, CPUTIME_SYSTEM);
 	}
+	trace_android_vh_irqtime_account_process_tick(p, this_rq(), user_tick, ticks);
 }
 
 static void irqtime_account_idle_ticks(int ticks)
@@ -458,6 +479,7 @@
 	*ut = cputime.utime;
 	*st = cputime.stime;
 }
+EXPORT_SYMBOL_GPL(thread_group_cputime_adjusted);
 
 #else /* !CONFIG_VIRT_CPU_ACCOUNTING_NATIVE: */
 
@@ -472,6 +494,7 @@
 
 	if (vtime_accounting_enabled_this_cpu())
 		return;
+	trace_android_vh_account_task_time(p, this_rq(), user_tick);
 
 	if (sched_clock_irqtime) {
 		irqtime_account_process_tick(p, user_tick, 1);
@@ -627,6 +650,8 @@
 	thread_group_cputime(p, &cputime);
 	cputime_adjust(&cputime, &p->signal->prev_cputime, ut, st);
 }
+EXPORT_SYMBOL_GPL(thread_group_cputime_adjusted);
+
 #endif /* !CONFIG_VIRT_CPU_ACCOUNTING_NATIVE */
 
 #ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN
diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index de45e4d..ffc84fe 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -18,6 +18,7 @@
 #include "sched.h"
 #include "pelt.h"
 #include <linux/cpuset.h>
+#include <trace/hooks/sched.h>
 
 struct dl_bandwidth def_dl_bandwidth;
 
@@ -1266,8 +1267,8 @@
 		return;
 	}
 
-	schedstat_set(curr->stats.exec_max,
-		      max(curr->stats.exec_max, delta_exec));
+	schedstat_set(curr->se.statistics.exec_max,
+		      max(curr->se.statistics.exec_max, delta_exec));
 
 	curr->se.sum_exec_runtime += delta_exec;
 	account_group_exec_runtime(curr, delta_exec);
@@ -1677,6 +1678,12 @@
 	struct task_struct *curr;
 	bool select_rq;
 	struct rq *rq;
+	int target_cpu = -1;
+
+	trace_android_rvh_select_task_rq_dl(p, cpu, flags & 0xF,
+						flags, &target_cpu);
+	if (target_cpu >= 0)
+		return target_cpu;
 
 	if (!(flags & WF_TTWU))
 		goto out;
diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
index 5ffe16f..3d1b581 100644
--- a/kernel/sched/debug.c
+++ b/kernel/sched/debug.c
@@ -48,9 +48,10 @@
 #define SCHED_FEAT(name, enabled)	\
 	#name ,
 
-static const char * const sched_feat_names[] = {
+const char * const sched_feat_names[] = {
 #include "features.h"
 };
+EXPORT_SYMBOL_GPL(sched_feat_names);
 
 #undef SCHED_FEAT
 
@@ -79,6 +80,7 @@
 struct static_key sched_feat_keys[__SCHED_FEAT_NR] = {
 #include "features.h"
 };
+EXPORT_SYMBOL_GPL(sched_feat_keys);
 
 #undef SCHED_FEAT
 
@@ -448,11 +450,9 @@
 	struct sched_entity *se = tg->se[cpu];
 
 #define P(F)		SEQ_printf(m, "  .%-30s: %lld\n",	#F, (long long)F)
-#define P_SCHEDSTAT(F)	SEQ_printf(m, "  .%-30s: %lld\n",	\
-		#F, (long long)schedstat_val(stats->F))
+#define P_SCHEDSTAT(F)	SEQ_printf(m, "  .%-30s: %lld\n",	#F, (long long)schedstat_val(F))
 #define PN(F)		SEQ_printf(m, "  .%-30s: %lld.%06ld\n", #F, SPLIT_NS((long long)F))
-#define PN_SCHEDSTAT(F)	SEQ_printf(m, "  .%-30s: %lld.%06ld\n", \
-		#F, SPLIT_NS((long long)schedstat_val(stats->F)))
+#define PN_SCHEDSTAT(F)	SEQ_printf(m, "  .%-30s: %lld.%06ld\n", #F, SPLIT_NS((long long)schedstat_val(F)))
 
 	if (!se)
 		return;
@@ -462,19 +462,16 @@
 	PN(se->sum_exec_runtime);
 
 	if (schedstat_enabled()) {
-		struct sched_statistics *stats;
-		stats = __schedstats_from_se(se);
-
-		PN_SCHEDSTAT(wait_start);
-		PN_SCHEDSTAT(sleep_start);
-		PN_SCHEDSTAT(block_start);
-		PN_SCHEDSTAT(sleep_max);
-		PN_SCHEDSTAT(block_max);
-		PN_SCHEDSTAT(exec_max);
-		PN_SCHEDSTAT(slice_max);
-		PN_SCHEDSTAT(wait_max);
-		PN_SCHEDSTAT(wait_sum);
-		P_SCHEDSTAT(wait_count);
+		PN_SCHEDSTAT(se->statistics.wait_start);
+		PN_SCHEDSTAT(se->statistics.sleep_start);
+		PN_SCHEDSTAT(se->statistics.block_start);
+		PN_SCHEDSTAT(se->statistics.sleep_max);
+		PN_SCHEDSTAT(se->statistics.block_max);
+		PN_SCHEDSTAT(se->statistics.exec_max);
+		PN_SCHEDSTAT(se->statistics.slice_max);
+		PN_SCHEDSTAT(se->statistics.wait_max);
+		PN_SCHEDSTAT(se->statistics.wait_sum);
+		P_SCHEDSTAT(se->statistics.wait_count);
 	}
 
 	P(se->load.weight);
@@ -541,9 +538,9 @@
 		p->prio);
 
 	SEQ_printf(m, "%9Ld.%06ld %9Ld.%06ld %9Ld.%06ld",
-		SPLIT_NS(schedstat_val_or_zero(p->stats.wait_sum)),
+		SPLIT_NS(schedstat_val_or_zero(p->se.statistics.wait_sum)),
 		SPLIT_NS(p->se.sum_exec_runtime),
-		SPLIT_NS(schedstat_val_or_zero(p->stats.sum_sleep_runtime)));
+		SPLIT_NS(schedstat_val_or_zero(p->se.statistics.sum_sleep_runtime)));
 
 #ifdef CONFIG_NUMA_BALANCING
 	SEQ_printf(m, " %d %d", task_node(p), task_numa_group_id(p));
@@ -949,8 +946,8 @@
 		"---------------------------------------------------------"
 		"----------\n");
 
-#define P_SCHEDSTAT(F)  __PS(#F, schedstat_val(p->stats.F))
-#define PN_SCHEDSTAT(F) __PSN(#F, schedstat_val(p->stats.F))
+#define P_SCHEDSTAT(F)  __PS(#F, schedstat_val(p->F))
+#define PN_SCHEDSTAT(F) __PSN(#F, schedstat_val(p->F))
 
 	PN(se.exec_start);
 	PN(se.vruntime);
@@ -963,33 +960,33 @@
 	if (schedstat_enabled()) {
 		u64 avg_atom, avg_per_cpu;
 
-		PN_SCHEDSTAT(sum_sleep_runtime);
-		PN_SCHEDSTAT(wait_start);
-		PN_SCHEDSTAT(sleep_start);
-		PN_SCHEDSTAT(block_start);
-		PN_SCHEDSTAT(sleep_max);
-		PN_SCHEDSTAT(block_max);
-		PN_SCHEDSTAT(exec_max);
-		PN_SCHEDSTAT(slice_max);
-		PN_SCHEDSTAT(wait_max);
-		PN_SCHEDSTAT(wait_sum);
-		P_SCHEDSTAT(wait_count);
-		PN_SCHEDSTAT(iowait_sum);
-		P_SCHEDSTAT(iowait_count);
-		P_SCHEDSTAT(nr_migrations_cold);
-		P_SCHEDSTAT(nr_failed_migrations_affine);
-		P_SCHEDSTAT(nr_failed_migrations_running);
-		P_SCHEDSTAT(nr_failed_migrations_hot);
-		P_SCHEDSTAT(nr_forced_migrations);
-		P_SCHEDSTAT(nr_wakeups);
-		P_SCHEDSTAT(nr_wakeups_sync);
-		P_SCHEDSTAT(nr_wakeups_migrate);
-		P_SCHEDSTAT(nr_wakeups_local);
-		P_SCHEDSTAT(nr_wakeups_remote);
-		P_SCHEDSTAT(nr_wakeups_affine);
-		P_SCHEDSTAT(nr_wakeups_affine_attempts);
-		P_SCHEDSTAT(nr_wakeups_passive);
-		P_SCHEDSTAT(nr_wakeups_idle);
+		PN_SCHEDSTAT(se.statistics.sum_sleep_runtime);
+		PN_SCHEDSTAT(se.statistics.wait_start);
+		PN_SCHEDSTAT(se.statistics.sleep_start);
+		PN_SCHEDSTAT(se.statistics.block_start);
+		PN_SCHEDSTAT(se.statistics.sleep_max);
+		PN_SCHEDSTAT(se.statistics.block_max);
+		PN_SCHEDSTAT(se.statistics.exec_max);
+		PN_SCHEDSTAT(se.statistics.slice_max);
+		PN_SCHEDSTAT(se.statistics.wait_max);
+		PN_SCHEDSTAT(se.statistics.wait_sum);
+		P_SCHEDSTAT(se.statistics.wait_count);
+		PN_SCHEDSTAT(se.statistics.iowait_sum);
+		P_SCHEDSTAT(se.statistics.iowait_count);
+		P_SCHEDSTAT(se.statistics.nr_migrations_cold);
+		P_SCHEDSTAT(se.statistics.nr_failed_migrations_affine);
+		P_SCHEDSTAT(se.statistics.nr_failed_migrations_running);
+		P_SCHEDSTAT(se.statistics.nr_failed_migrations_hot);
+		P_SCHEDSTAT(se.statistics.nr_forced_migrations);
+		P_SCHEDSTAT(se.statistics.nr_wakeups);
+		P_SCHEDSTAT(se.statistics.nr_wakeups_sync);
+		P_SCHEDSTAT(se.statistics.nr_wakeups_migrate);
+		P_SCHEDSTAT(se.statistics.nr_wakeups_local);
+		P_SCHEDSTAT(se.statistics.nr_wakeups_remote);
+		P_SCHEDSTAT(se.statistics.nr_wakeups_affine);
+		P_SCHEDSTAT(se.statistics.nr_wakeups_affine_attempts);
+		P_SCHEDSTAT(se.statistics.nr_wakeups_passive);
+		P_SCHEDSTAT(se.statistics.nr_wakeups_idle);
 
 		avg_atom = p->se.sum_exec_runtime;
 		if (nr_switches)
@@ -1055,7 +1052,7 @@
 void proc_sched_set_task(struct task_struct *p)
 {
 #ifdef CONFIG_SCHEDSTATS
-	memset(&p->stats, 0, sizeof(p->stats));
+	memset(&p->se.statistics, 0, sizeof(p->se.statistics));
 #endif
 }
 
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 646a6ae..dda524e 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -22,6 +22,10 @@
  */
 #include "sched.h"
 
+#include <trace/hooks/sched.h>
+
+EXPORT_TRACEPOINT_SYMBOL_GPL(sched_stat_runtime);
+
 /*
  * Targeted preemption latency for CPU-bound tasks:
  *
@@ -36,6 +40,7 @@
  * (default: 6ms * (1 + ilog(ncpus)), units: nanoseconds)
  */
 unsigned int sysctl_sched_latency			= 6000000ULL;
+EXPORT_SYMBOL_GPL(sysctl_sched_latency);
 static unsigned int normalized_sysctl_sched_latency	= 6000000ULL;
 
 /*
@@ -577,11 +582,13 @@
  */
 static void __enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se)
 {
+	trace_android_rvh_enqueue_entity(cfs_rq, se);
 	rb_add_cached(&se->run_node, &cfs_rq->tasks_timeline, __entity_less);
 }
 
 static void __dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se)
 {
+	trace_android_rvh_dequeue_entity(cfs_rq, se);
 	rb_erase_cached(&se->run_node, &cfs_rq->tasks_timeline);
 }
 
@@ -804,6 +811,8 @@
 		return;
 	}
 
+	/* Hook before this se's util is attached to cfs_rq's util */
+	trace_android_rvh_post_init_entity_util_avg(se);
 	attach_entity_cfs_rq(se);
 }
 
@@ -837,13 +846,8 @@
 
 	curr->exec_start = now;
 
-	if (schedstat_enabled()) {
-		struct sched_statistics *stats;
-
-		stats = __schedstats_from_se(curr);
-		__schedstat_set(stats->exec_max,
-				max(delta_exec, stats->exec_max));
-	}
+	schedstat_set(curr->statistics.exec_max,
+		      max(delta_exec, curr->statistics.exec_max));
 
 	curr->sum_exec_runtime += delta_exec;
 	schedstat_add(cfs_rq->exec_clock, delta_exec);
@@ -871,45 +875,39 @@
 update_stats_wait_start(struct cfs_rq *cfs_rq, struct sched_entity *se)
 {
 	u64 wait_start, prev_wait_start;
-	struct sched_statistics *stats;
 
 	if (!schedstat_enabled())
 		return;
 
-	stats = __schedstats_from_se(se);
-
 	wait_start = rq_clock(rq_of(cfs_rq));
-	prev_wait_start = schedstat_val(stats->wait_start);
+	prev_wait_start = schedstat_val(se->statistics.wait_start);
 
 	if (entity_is_task(se) && task_on_rq_migrating(task_of(se)) &&
 	    likely(wait_start > prev_wait_start))
 		wait_start -= prev_wait_start;
 
-	__schedstat_set(stats->wait_start, wait_start);
+	__schedstat_set(se->statistics.wait_start, wait_start);
 }
 
 static inline void
 update_stats_wait_end(struct cfs_rq *cfs_rq, struct sched_entity *se)
 {
-	struct sched_statistics *stats;
-	struct task_struct *p = NULL;
+	struct task_struct *p;
 	u64 delta;
 
 	if (!schedstat_enabled())
 		return;
 
-	stats = __schedstats_from_se(se);
-
 	/*
 	 * When the sched_schedstat changes from 0 to 1, some sched se
 	 * maybe already in the runqueue, the se->statistics.wait_start
 	 * will be 0.So it will let the delta wrong. We need to avoid this
 	 * scenario.
 	 */
-	if (unlikely(!schedstat_val(stats->wait_start)))
+	if (unlikely(!schedstat_val(se->statistics.wait_start)))
 		return;
 
-	delta = rq_clock(rq_of(cfs_rq)) - schedstat_val(stats->wait_start);
+	delta = rq_clock(rq_of(cfs_rq)) - schedstat_val(se->statistics.wait_start);
 
 	if (entity_is_task(se)) {
 		p = task_of(se);
@@ -919,33 +917,30 @@
 			 * time stamp can be adjusted to accumulate wait time
 			 * prior to migration.
 			 */
-			__schedstat_set(stats->wait_start, delta);
+			__schedstat_set(se->statistics.wait_start, delta);
 			return;
 		}
 		trace_sched_stat_wait(p, delta);
 	}
 
-	__schedstat_set(stats->wait_max,
-		      max(schedstat_val(stats->wait_max), delta));
-	__schedstat_inc(stats->wait_count);
-	__schedstat_add(stats->wait_sum, delta);
-	__schedstat_set(stats->wait_start, 0);
+	__schedstat_set(se->statistics.wait_max,
+		      max(schedstat_val(se->statistics.wait_max), delta));
+	__schedstat_inc(se->statistics.wait_count);
+	__schedstat_add(se->statistics.wait_sum, delta);
+	__schedstat_set(se->statistics.wait_start, 0);
 }
 
 static inline void
 update_stats_enqueue_sleeper(struct cfs_rq *cfs_rq, struct sched_entity *se)
 {
-	struct sched_statistics *stats;
 	struct task_struct *tsk = NULL;
 	u64 sleep_start, block_start;
 
 	if (!schedstat_enabled())
 		return;
 
-	stats = __schedstats_from_se(se);
-
-	sleep_start = schedstat_val(stats->sleep_start);
-	block_start = schedstat_val(stats->block_start);
+	sleep_start = schedstat_val(se->statistics.sleep_start);
+	block_start = schedstat_val(se->statistics.block_start);
 
 	if (entity_is_task(se))
 		tsk = task_of(se);
@@ -956,11 +951,11 @@
 		if ((s64)delta < 0)
 			delta = 0;
 
-		if (unlikely(delta > schedstat_val(stats->sleep_max)))
-			__schedstat_set(stats->sleep_max, delta);
+		if (unlikely(delta > schedstat_val(se->statistics.sleep_max)))
+			__schedstat_set(se->statistics.sleep_max, delta);
 
-		__schedstat_set(stats->sleep_start, 0);
-		__schedstat_add(stats->sum_sleep_runtime, delta);
+		__schedstat_set(se->statistics.sleep_start, 0);
+		__schedstat_add(se->statistics.sum_sleep_runtime, delta);
 
 		if (tsk) {
 			account_scheduler_latency(tsk, delta >> 10, 1);
@@ -973,16 +968,16 @@
 		if ((s64)delta < 0)
 			delta = 0;
 
-		if (unlikely(delta > schedstat_val(stats->block_max)))
-			__schedstat_set(stats->block_max, delta);
+		if (unlikely(delta > schedstat_val(se->statistics.block_max)))
+			__schedstat_set(se->statistics.block_max, delta);
 
-		__schedstat_set(stats->block_start, 0);
-		__schedstat_add(stats->sum_sleep_runtime, delta);
+		__schedstat_set(se->statistics.block_start, 0);
+		__schedstat_add(se->statistics.sum_sleep_runtime, delta);
 
 		if (tsk) {
 			if (tsk->in_iowait) {
-				__schedstat_add(stats->iowait_sum, delta);
-				__schedstat_inc(stats->iowait_count);
+				__schedstat_add(se->statistics.iowait_sum, delta);
+				__schedstat_inc(se->statistics.iowait_count);
 				trace_sched_stat_iowait(tsk, delta);
 			}
 
@@ -1044,10 +1039,10 @@
 		/* XXX racy against TTWU */
 		state = READ_ONCE(tsk->__state);
 		if (state & TASK_INTERRUPTIBLE)
-			__schedstat_set(tsk->stats.sleep_start,
+			__schedstat_set(se->statistics.sleep_start,
 				      rq_clock(rq_of(cfs_rq)));
 		if (state & TASK_UNINTERRUPTIBLE)
-			__schedstat_set(tsk->stats.block_start,
+			__schedstat_set(se->statistics.block_start,
 				      rq_clock(rq_of(cfs_rq)));
 	}
 }
@@ -4056,6 +4051,11 @@
 {
 	long last_ewma_diff, last_enqueued_diff;
 	struct util_est ue;
+	int ret = 0;
+
+	trace_android_rvh_util_est_update(cfs_rq, p, task_sleep, &ret);
+	if (ret)
+		return;
 
 	if (!sched_feat(UTIL_EST))
 		return;
@@ -4173,16 +4173,12 @@
 	 * For uclamp_max, we can tolerate a drop in performance level as the
 	 * goal is to cap the task. So it's okay if it's getting less.
 	 *
-	 * In case of capacity inversion we should honour the inverted capacity
-	 * for both uclamp_min and uclamp_max all the time.
+	 * In case of capacity inversion, which is not handled yet, we should
+	 * honour the inverted capacity for both uclamp_min and uclamp_max all
+	 * the time.
 	 */
-	capacity_orig = cpu_in_capacity_inversion(cpu);
-	if (capacity_orig) {
-		capacity_orig_thermal = capacity_orig;
-	} else {
-		capacity_orig = capacity_orig_of(cpu);
-		capacity_orig_thermal = capacity_orig - arch_scale_thermal_pressure(cpu);
-	}
+	capacity_orig = capacity_orig_of(cpu);
+	capacity_orig_thermal = capacity_orig - arch_scale_thermal_pressure(cpu);
 
 	/*
 	 * We want to force a task to fit a cpu as implied by uclamp_max.
@@ -4273,7 +4269,10 @@
 
 static inline void update_misfit_status(struct task_struct *p, struct rq *rq)
 {
-	if (!sched_asym_cpucap_active())
+	bool need_update = true;
+
+	trace_android_rvh_update_misfit_status(p, rq, &need_update);
+	if (!sched_asym_cpucap_active() || !need_update)
 		return;
 
 	if (!p || p->nr_cpus_allowed == 1) {
@@ -4421,6 +4420,7 @@
 		se->vruntime = vruntime;
 	else
 		se->vruntime = max_vruntime(se->vruntime, vruntime);
+	trace_android_rvh_place_entity(cfs_rq, se, initial, &vruntime);
 }
 
 static void check_enqueue_throttle(struct cfs_rq *cfs_rq);
@@ -4647,9 +4647,14 @@
 	unsigned long ideal_runtime, delta_exec;
 	struct sched_entity *se;
 	s64 delta;
+	bool skip_preempt = false;
 
 	ideal_runtime = sched_slice(cfs_rq, curr);
 	delta_exec = curr->sum_exec_runtime - curr->prev_sum_exec_runtime;
+	trace_android_rvh_check_preempt_tick(current, &ideal_runtime, &skip_preempt,
+			delta_exec, cfs_rq, curr, sysctl_sched_min_granularity);
+	if (skip_preempt)
+		return;
 	if (delta_exec > ideal_runtime) {
 		resched_curr(rq_of(cfs_rq));
 		/*
@@ -4678,8 +4683,7 @@
 		resched_curr(rq_of(cfs_rq));
 }
 
-static void
-set_next_entity(struct cfs_rq *cfs_rq, struct sched_entity *se)
+void set_next_entity(struct cfs_rq *cfs_rq, struct sched_entity *se)
 {
 	clear_buddies(cfs_rq, se);
 
@@ -4705,16 +4709,14 @@
 	 */
 	if (schedstat_enabled() &&
 	    rq_of(cfs_rq)->cfs.load.weight >= 2*se->load.weight) {
-		struct sched_statistics *stats;
-
-		stats = __schedstats_from_se(se);
-		__schedstat_set(stats->slice_max,
-				max((u64)stats->slice_max,
+		__schedstat_set(se->statistics.slice_max,
+				max((u64)se->statistics.slice_max,
 				    se->sum_exec_runtime - se->prev_sum_exec_runtime));
 	}
 
 	se->prev_sum_exec_runtime = se->sum_exec_runtime;
 }
+EXPORT_SYMBOL_GPL(set_next_entity);
 
 static int
 wakeup_preempt_entity(struct sched_entity *curr, struct sched_entity *se);
@@ -4730,7 +4732,11 @@
 pick_next_entity(struct cfs_rq *cfs_rq, struct sched_entity *curr)
 {
 	struct sched_entity *left = __pick_first_entity(cfs_rq);
-	struct sched_entity *se;
+	struct sched_entity *se = NULL;
+
+	trace_android_rvh_pick_next_entity(cfs_rq, curr, &se);
+	if (se)
+		goto done;
 
 	/*
 	 * If curr is set we have to see if its left of the leftmost entity
@@ -4772,6 +4778,7 @@
 		se = cfs_rq->last;
 	}
 
+done:
 	return se;
 }
 
@@ -4834,6 +4841,7 @@
 
 	if (cfs_rq->nr_running > 1)
 		check_preempt_tick(cfs_rq, curr);
+	trace_android_rvh_entity_tick(cfs_rq, curr);
 }
 
 
@@ -5008,7 +5016,7 @@
 
 	cfs_rq->throttle_count--;
 	if (!cfs_rq->throttle_count) {
-		cfs_rq->throttled_clock_pelt_time += rq_clock_pelt(rq) -
+		cfs_rq->throttled_clock_pelt_time += rq_clock_task_mult(rq) -
 					     cfs_rq->throttled_clock_pelt;
 
 		/* Add cfs_rq with load or one or more already running entities to the list */
@@ -5026,7 +5034,7 @@
 
 	/* group is entering throttled state, stop time */
 	if (!cfs_rq->throttle_count) {
-		cfs_rq->throttled_clock_pelt = rq_clock_pelt(rq);
+		cfs_rq->throttled_clock_pelt = rq_clock_task_mult(rq);
 		list_del_leaf_cfs_rq(cfs_rq);
 	}
 	cfs_rq->throttle_count++;
@@ -5470,7 +5478,7 @@
 	pcfs_rq = tg->parent->cfs_rq[cpu];
 
 	cfs_rq->throttle_count = pcfs_rq->throttle_count;
-	cfs_rq->throttled_clock_pelt = rq_clock_pelt(cpu_rq(cpu));
+	cfs_rq->throttled_clock_pelt = rq_clock_task_mult(cpu_rq(cpu));
 }
 
 /* conditionally throttle active cfs_rq's from put_prev_entity() */
@@ -5764,6 +5772,11 @@
 {
 	unsigned long rq_util_min = uclamp_rq_get(cpu_rq(cpu), UCLAMP_MIN);
 	unsigned long rq_util_max = uclamp_rq_get(cpu_rq(cpu), UCLAMP_MAX);
+	int overutilized = -1;
+
+	trace_android_rvh_cpu_overutilized(cpu, &overutilized);
+	if (overutilized != -1)
+		return overutilized;
 
 	return !util_fits_cpu(cpu_util(cpu), rq_util_min, rq_util_max, cpu);
 }
@@ -5805,6 +5818,7 @@
 	struct sched_entity *se = &p->se;
 	int idle_h_nr_running = task_has_idle_policy(p);
 	int task_new = !(flags & ENQUEUE_WAKEUP);
+	int should_iowait_boost;
 
 	/*
 	 * The code below (indirectly) updates schedutil which looks at
@@ -5819,7 +5833,9 @@
 	 * utilization updates, so do it here explicitly with the IOWAIT flag
 	 * passed.
 	 */
-	if (p->in_iowait)
+	should_iowait_boost = p->in_iowait;
+	trace_android_rvh_set_iowait(p, rq, &should_iowait_boost);
+	if (should_iowait_boost)
 		cpufreq_update_util(rq, SCHED_CPUFREQ_IOWAIT);
 
 	for_each_sched_entity(se) {
@@ -5841,6 +5857,7 @@
 		flags = ENQUEUE_WAKEUP;
 	}
 
+	trace_android_rvh_enqueue_task_fair(rq, p, flags);
 	for_each_sched_entity(se) {
 		cfs_rq = cfs_rq_of(se);
 
@@ -5953,6 +5970,7 @@
 		flags |= DEQUEUE_SLEEP;
 	}
 
+	trace_android_rvh_dequeue_task_fair(rq, p, flags);
 	for_each_sched_entity(se) {
 		cfs_rq = cfs_rq_of(se);
 
@@ -6206,12 +6224,12 @@
 	if (sched_feat(WA_WEIGHT) && target == nr_cpumask_bits)
 		target = wake_affine_weight(sd, p, this_cpu, prev_cpu, sync);
 
-	schedstat_inc(p->stats.nr_wakeups_affine_attempts);
-	if (target != this_cpu)
+	schedstat_inc(p->se.statistics.nr_wakeups_affine_attempts);
+	if (target == nr_cpumask_bits)
 		return prev_cpu;
 
 	schedstat_inc(sd->ttwu_move_affine);
-	schedstat_inc(p->stats.nr_wakeups_affine);
+	schedstat_inc(p->se.statistics.nr_wakeups_affine);
 	return target;
 }
 
@@ -6479,7 +6497,6 @@
 {
 	struct cpumask *cpus = this_cpu_cpumask_var_ptr(select_idle_mask);
 	int i, cpu, idle_cpu = -1, nr = INT_MAX;
-	struct sched_domain_shared *sd_share;
 	struct rq *this_rq = this_rq();
 	int this = smp_processor_id();
 	struct sched_domain *this_sd;
@@ -6519,17 +6536,6 @@
 		time = cpu_clock(this);
 	}
 
-	if (sched_feat(SIS_UTIL)) {
-		sd_share = rcu_dereference(per_cpu(sd_llc_shared, target));
-		if (sd_share) {
-			/* because !--nr is the condition to stop scan */
-			nr = READ_ONCE(sd_share->nr_idle_scan) + 1;
-			/* overloaded LLC is unlikely to have idle cpu/core */
-			if (nr == 1)
-				return -1;
-		}
-	}
-
 	for_each_cpu_wrap(cpu, cpus, target + 1) {
 		if (has_idle_core) {
 			i = select_idle_core(p, cpu, cpus, &idle_cpu);
@@ -6910,6 +6916,7 @@
 	unsigned long cpu_cap = arch_scale_cpu_capacity(cpumask_first(pd_mask));
 	unsigned long max_util = 0, sum_util = 0;
 	unsigned long _cpu_cap = cpu_cap;
+	unsigned long energy = 0;
 	int cpu;
 
 	_cpu_cap -= arch_scale_thermal_pressure(cpumask_first(pd_mask));
@@ -6966,7 +6973,11 @@
 		max_util = max(max_util, min(cpu_util, _cpu_cap));
 	}
 
-	return em_cpu_energy(pd->em_pd, max_util, sum_util, _cpu_cap);
+	trace_android_vh_em_cpu_energy(pd->em_pd, max_util, sum_util, &energy);
+	if (!energy)
+		energy = em_cpu_energy(pd->em_pd, max_util, sum_util, _cpu_cap);
+
+	return energy;
 }
 
 /*
@@ -7008,22 +7019,41 @@
  * other use-cases too. So, until someone finds a better way to solve this,
  * let's keep things simple by re-using the existing slow path.
  */
-static int find_energy_efficient_cpu(struct task_struct *p, int prev_cpu)
+static int find_energy_efficient_cpu(struct task_struct *p, int prev_cpu, int sync)
 {
 	unsigned long prev_delta = ULONG_MAX, best_delta = ULONG_MAX;
 	unsigned long p_util_min = uclamp_is_used() ? uclamp_eff_value(p, UCLAMP_MIN) : 0;
 	unsigned long p_util_max = uclamp_is_used() ? uclamp_eff_value(p, UCLAMP_MAX) : 1024;
 	struct root_domain *rd = cpu_rq(smp_processor_id())->rd;
+	int max_spare_cap_cpu_ls = prev_cpu, best_idle_cpu = -1;
 	int cpu, best_energy_cpu = prev_cpu, target = -1;
+	unsigned long max_spare_cap_ls = 0, target_cap;
 	unsigned long cpu_cap, util, base_energy = 0;
+	bool boosted, latency_sensitive = false;
+	unsigned int min_exit_lat = UINT_MAX;
+	struct cpuidle_state *idle;
 	struct sched_domain *sd;
 	struct perf_domain *pd;
+	int new_cpu = INT_MAX;
+
+	sync_entity_load_avg(&p->se);
+	trace_android_rvh_find_energy_efficient_cpu(p, prev_cpu, sync, &new_cpu);
+	if (new_cpu != INT_MAX)
+		return new_cpu;
 
 	rcu_read_lock();
 	pd = rcu_dereference(rd->pd);
 	if (!pd || READ_ONCE(rd->overutilized))
 		goto unlock;
 
+	cpu = smp_processor_id();
+	if (sync && cpu_rq(cpu)->nr_running == 1 &&
+	    cpumask_test_cpu(cpu, p->cpus_ptr) &&
+	    task_fits_cpu(p, cpu)) {
+		rcu_read_unlock();
+		return cpu;
+	}
+
 	/*
 	 * Energy-aware wake-up happens on the lowest sched_domain starting
 	 * from sd_asym_cpucapacity spanning over this_cpu and prev_cpu.
@@ -7036,21 +7066,22 @@
 
 	target = prev_cpu;
 
-	sync_entity_load_avg(&p->se);
 	if (!uclamp_task_util(p, p_util_min, p_util_max))
 		goto unlock;
 
+	latency_sensitive = uclamp_latency_sensitive(p);
+	boosted = uclamp_boosted(p);
+	target_cap = boosted ? 0 : ULONG_MAX;
+
 	for (; pd; pd = pd->next) {
-		unsigned long util_min = p_util_min, util_max = p_util_max;
 		unsigned long cur_delta, spare_cap, max_spare_cap = 0;
 		unsigned long rq_util_min, rq_util_max;
+		unsigned long util_min, util_max;
 		bool compute_prev_delta = false;
 		unsigned long base_energy_pd;
 		int max_spare_cap_cpu = -1;
 
 		for_each_cpu_and(cpu, perf_domain_span(pd), sched_domain_span(sd)) {
-			struct rq *rq = cpu_rq(cpu);
-
 			if (!cpumask_test_cpu(cpu, p->cpus_ptr))
 				continue;
 
@@ -7066,24 +7097,29 @@
 			 * much capacity we can get out of the CPU; this is
 			 * aligned with sched_cpu_util().
 			 */
-			if (uclamp_is_used() && !uclamp_rq_is_idle(rq)) {
-				/*
-				 * Open code uclamp_rq_util_with() except for
-				 * the clamp() part. Ie: apply max aggregation
-				 * only. util_fits_cpu() logic requires to
-				 * operate on non clamped util but must use the
-				 * max-aggregated uclamp_{min, max}.
-				 */
-				rq_util_min = uclamp_rq_get(rq, UCLAMP_MIN);
-				rq_util_max = uclamp_rq_get(rq, UCLAMP_MAX);
+			if (uclamp_is_used()) {
+				if (uclamp_rq_is_idle(cpu_rq(cpu))) {
+					util_min = p_util_min;
+					util_max = p_util_max;
+				} else {
+					/*
+					 * Open code uclamp_rq_util_with() except for
+					 * the clamp() part. Ie: apply max aggregation
+					 * only. util_fits_cpu() logic requires to
+					 * operate on non clamped util but must use the
+					 * max-aggregated uclamp_{min, max}.
+					 */
+					rq_util_min = uclamp_rq_get(cpu_rq(cpu), UCLAMP_MIN);
+					rq_util_max = uclamp_rq_get(cpu_rq(cpu), UCLAMP_MAX);
 
-				util_min = max(rq_util_min, p_util_min);
-				util_max = max(rq_util_max, p_util_max);
+					util_min = max(rq_util_min, p_util_min);
+					util_max = max(rq_util_max, p_util_max);
+				}
 			}
 			if (!util_fits_cpu(util, util_min, util_max, cpu))
 				continue;
 
-			if (cpu == prev_cpu) {
+			if (!latency_sensitive && cpu == prev_cpu) {
 				/* Always use prev_cpu as a candidate. */
 				compute_prev_delta = true;
 			} else if (spare_cap > max_spare_cap) {
@@ -7094,9 +7130,32 @@
 				max_spare_cap = spare_cap;
 				max_spare_cap_cpu = cpu;
 			}
+
+			if (!latency_sensitive)
+				continue;
+
+			if (idle_cpu(cpu)) {
+				cpu_cap = capacity_orig_of(cpu);
+				if (boosted && cpu_cap < target_cap)
+					continue;
+				if (!boosted && cpu_cap > target_cap)
+					continue;
+				idle = idle_get_state(cpu_rq(cpu));
+				if (idle && idle->exit_latency > min_exit_lat &&
+						cpu_cap == target_cap)
+					continue;
+
+				if (idle)
+					min_exit_lat = idle->exit_latency;
+				target_cap = cpu_cap;
+				best_idle_cpu = cpu;
+			} else if (spare_cap > max_spare_cap_ls) {
+				max_spare_cap_ls = spare_cap;
+				max_spare_cap_cpu_ls = cpu;
+			}
 		}
 
-		if (max_spare_cap_cpu < 0 && !compute_prev_delta)
+		if (!latency_sensitive && max_spare_cap_cpu < 0 && !compute_prev_delta)
 			continue;
 
 		/* Compute the 'base' energy of the pd, without @p */
@@ -7126,6 +7185,9 @@
 	}
 	rcu_read_unlock();
 
+	if (latency_sensitive)
+		return best_idle_cpu >= 0 ? best_idle_cpu : max_spare_cap_cpu_ls;
+
 	/*
 	 * Pick the best CPU if prev_cpu cannot be used, or if it saves at
 	 * least 6% of the energy used by prev_cpu.
@@ -7160,9 +7222,18 @@
 	int cpu = smp_processor_id();
 	int new_cpu = prev_cpu;
 	int want_affine = 0;
+	int target_cpu = -1;
 	/* SD_flags and WF_flags share the first nibble */
 	int sd_flag = wake_flags & 0xF;
 
+	if (trace_android_rvh_select_task_rq_fair_enabled() &&
+	    !(sd_flag & SD_BALANCE_FORK))
+		sync_entity_load_avg(&p->se);
+	trace_android_rvh_select_task_rq_fair(p, prev_cpu, sd_flag,
+			wake_flags, &target_cpu);
+	if (target_cpu >= 0)
+		return target_cpu;
+
 	/*
 	 * required for stable ->cpus_allowed
 	 */
@@ -7171,7 +7242,7 @@
 		record_wakee(p);
 
 		if (sched_energy_enabled()) {
-			new_cpu = find_energy_efficient_cpu(p, prev_cpu);
+			new_cpu = find_energy_efficient_cpu(p, prev_cpu, sync);
 			if (new_cpu >= 0)
 				return new_cpu;
 			new_cpu = prev_cpu;
@@ -7377,9 +7448,14 @@
 	int scale = cfs_rq->nr_running >= sched_nr_latency;
 	int next_buddy_marked = 0;
 	int cse_is_idle, pse_is_idle;
+	bool ignore = false;
+	bool preempt = false;
 
 	if (unlikely(se == pse))
 		return;
+	trace_android_rvh_check_preempt_wakeup_ignore(curr, &ignore);
+	if (ignore)
+		return;
 
 	/*
 	 * This is possible from callers such as attach_tasks(), in which we
@@ -7436,6 +7512,13 @@
 		return;
 
 	update_curr(cfs_rq_of(se));
+	trace_android_rvh_check_preempt_wakeup(rq, p, &preempt, &ignore,
+			wake_flags, se, pse, next_buddy_marked, sysctl_sched_wakeup_granularity);
+	if (preempt)
+		goto preempt;
+	if (ignore)
+		return;
+
 	if (wakeup_preempt_entity(se, pse) == 1) {
 		/*
 		 * Bias pick_next to pick the sched entity that is
@@ -7503,9 +7586,10 @@
 pick_next_task_fair(struct rq *rq, struct task_struct *prev, struct rq_flags *rf)
 {
 	struct cfs_rq *cfs_rq = &rq->cfs;
-	struct sched_entity *se;
-	struct task_struct *p;
+	struct sched_entity *se = NULL;
+	struct task_struct *p = NULL;
 	int new_tasks;
+	bool repick = false;
 
 again:
 	if (!sched_fair_runnable(rq))
@@ -7559,7 +7643,7 @@
 	} while (cfs_rq);
 
 	p = task_of(se);
-
+	trace_android_rvh_replace_next_task_fair(rq, &p, &se, &repick, false, prev);
 	/*
 	 * Since we haven't yet done put_prev_entity and if the selected task
 	 * is a different task than we started out with, try and touch the
@@ -7592,6 +7676,10 @@
 	if (prev)
 		put_prev_task(rq, prev);
 
+	trace_android_rvh_replace_next_task_fair(rq, &p, &se, &repick, true, prev);
+	if (repick)
+		goto done;
+
 	do {
 		se = pick_next_entity(cfs_rq, NULL);
 		set_next_entity(cfs_rq, se);
@@ -7833,7 +7921,8 @@
  *      rewrite all of this once again.]
  */
 
-static unsigned long __read_mostly max_load_balance_interval = HZ/10;
+unsigned long __read_mostly max_load_balance_interval = HZ/10;
+EXPORT_SYMBOL_GPL(max_load_balance_interval);
 
 enum fbq_type { regular, remote, all };
 
@@ -7913,6 +8002,7 @@
 	enum fbq_type		fbq_type;
 	enum migration_type	migration_type;
 	struct list_head	tasks;
+	struct rq_flags		*src_rq_rf;
 };
 
 /*
@@ -8027,9 +8117,14 @@
 int can_migrate_task(struct task_struct *p, struct lb_env *env)
 {
 	int tsk_cache_hot;
+	int can_migrate = 1;
 
 	lockdep_assert_rq_held(env->src_rq);
 
+	trace_android_rvh_can_migrate_task(p, env->dst_cpu, &can_migrate);
+	if (!can_migrate)
+		return 0;
+
 	/*
 	 * We do not migrate tasks that are:
 	 * 1) throttled_lb_pair, or
@@ -8047,7 +8142,7 @@
 	if (!cpumask_test_cpu(env->dst_cpu, p->cpus_ptr)) {
 		int cpu;
 
-		schedstat_inc(p->stats.nr_failed_migrations_affine);
+		schedstat_inc(p->se.statistics.nr_failed_migrations_affine);
 
 		env->flags |= LBF_SOME_PINNED;
 
@@ -8081,7 +8176,7 @@
 	env->flags &= ~LBF_ALL_PINNED;
 
 	if (task_running(env->src_rq, p)) {
-		schedstat_inc(p->stats.nr_failed_migrations_running);
+		schedstat_inc(p->se.statistics.nr_failed_migrations_running);
 		return 0;
 	}
 
@@ -8103,12 +8198,12 @@
 	    env->sd->nr_balance_failed > env->sd->cache_nice_tries) {
 		if (tsk_cache_hot == 1) {
 			schedstat_inc(env->sd->lb_hot_gained[env->idle]);
-			schedstat_inc(p->stats.nr_forced_migrations);
+			schedstat_inc(p->se.statistics.nr_forced_migrations);
 		}
 		return 1;
 	}
 
-	schedstat_inc(p->stats.nr_failed_migrations_hot);
+	schedstat_inc(p->se.statistics.nr_failed_migrations_hot);
 	return 0;
 }
 
@@ -8117,8 +8212,20 @@
  */
 static void detach_task(struct task_struct *p, struct lb_env *env)
 {
+	int detached = 0;
+
 	lockdep_assert_rq_held(env->src_rq);
 
+	/*
+	 * The vendor hook may drop the lock temporarily, so
+	 * pass the rq flags to unpin lock. We expect the
+	 * rq lock to be held after return.
+	 */
+	trace_android_rvh_migrate_queued_task(env->src_rq, env->src_rq_rf, p,
+					      env->dst_cpu, &detached);
+	if (detached)
+		return;
+
 	deactivate_task(env->src_rq, p, DEQUEUE_NOCLOCK);
 	set_task_cpu(p, env->dst_cpu);
 }
@@ -8636,82 +8743,17 @@
 
 static void update_cpu_capacity(struct sched_domain *sd, int cpu)
 {
-	unsigned long capacity_orig = arch_scale_cpu_capacity(cpu);
 	unsigned long capacity = scale_rt_capacity(cpu);
 	struct sched_group *sdg = sd->groups;
-	struct rq *rq = cpu_rq(cpu);
 
-	rq->cpu_capacity_orig = capacity_orig;
+	cpu_rq(cpu)->cpu_capacity_orig = arch_scale_cpu_capacity(cpu);
 
 	if (!capacity)
 		capacity = 1;
 
-	rq->cpu_capacity = capacity;
-
-	/*
-	 * Detect if the performance domain is in capacity inversion state.
-	 *
-	 * Capacity inversion happens when another perf domain with equal or
-	 * lower capacity_orig_of() ends up having higher capacity than this
-	 * domain after subtracting thermal pressure.
-	 *
-	 * We only take into account thermal pressure in this detection as it's
-	 * the only metric that actually results in *real* reduction of
-	 * capacity due to performance points (OPPs) being dropped/become
-	 * unreachable due to thermal throttling.
-	 *
-	 * We assume:
-	 *   * That all cpus in a perf domain have the same capacity_orig
-	 *     (same uArch).
-	 *   * Thermal pressure will impact all cpus in this perf domain
-	 *     equally.
-	 */
-	if (sched_energy_enabled()) {
-		unsigned long inv_cap = capacity_orig - thermal_load_avg(rq);
-		struct perf_domain *pd;
-
-		rcu_read_lock();
-
-		pd = rcu_dereference(rq->rd->pd);
-		rq->cpu_capacity_inverted = 0;
-
-		for (; pd; pd = pd->next) {
-			struct cpumask *pd_span = perf_domain_span(pd);
-			unsigned long pd_cap_orig, pd_cap;
-
-			/* We can't be inverted against our own pd */
-			if (cpumask_test_cpu(cpu_of(rq), pd_span))
-				continue;
-
-			cpu = cpumask_any(pd_span);
-			pd_cap_orig = arch_scale_cpu_capacity(cpu);
-
-			if (capacity_orig < pd_cap_orig)
-				continue;
-
-			/*
-			 * handle the case of multiple perf domains have the
-			 * same capacity_orig but one of them is under higher
-			 * thermal pressure. We record it as capacity
-			 * inversion.
-			 */
-			if (capacity_orig == pd_cap_orig) {
-				pd_cap = pd_cap_orig - thermal_load_avg(cpu_rq(cpu));
-
-				if (pd_cap > inv_cap) {
-					rq->cpu_capacity_inverted = inv_cap;
-					break;
-				}
-			} else if (pd_cap_orig > inv_cap) {
-				rq->cpu_capacity_inverted = inv_cap;
-				break;
-			}
-		}
-
-		rcu_read_unlock();
-	}
-
-	trace_sched_cpu_capacity_tp(rq);
+	trace_android_rvh_update_cpu_capacity(cpu, &capacity);
+	cpu_rq(cpu)->cpu_capacity = capacity;
+	trace_sched_cpu_capacity_tp(cpu_rq(cpu));
 
 	sdg->sgc->capacity = capacity;
 	sdg->sgc->min_capacity = capacity;
@@ -9465,77 +9507,6 @@
 	return idlest;
 }
 
-static void update_idle_cpu_scan(struct lb_env *env,
-				 unsigned long sum_util)
-{
-	struct sched_domain_shared *sd_share;
-	int llc_weight, pct;
-	u64 x, y, tmp;
-	/*
-	 * Update the number of CPUs to scan in LLC domain, which could
-	 * be used as a hint in select_idle_cpu(). The update of sd_share
-	 * could be expensive because it is within a shared cache line.
-	 * So the write of this hint only occurs during periodic load
-	 * balancing, rather than CPU_NEWLY_IDLE, because the latter
-	 * can fire way more frequently than the former.
-	 */
-	if (!sched_feat(SIS_UTIL) || env->idle == CPU_NEWLY_IDLE)
-		return;
-
-	llc_weight = per_cpu(sd_llc_size, env->dst_cpu);
-	if (env->sd->span_weight != llc_weight)
-		return;
-
-	sd_share = rcu_dereference(per_cpu(sd_llc_shared, env->dst_cpu));
-	if (!sd_share)
-		return;
-
-	/*
-	 * The number of CPUs to search drops as sum_util increases, when
-	 * sum_util hits 85% or above, the scan stops.
-	 * The reason to choose 85% as the threshold is because this is the
-	 * imbalance_pct(117) when a LLC sched group is overloaded.
-	 *
-	 * let y = SCHED_CAPACITY_SCALE - p * x^2                       [1]
-	 * and y'= y / SCHED_CAPACITY_SCALE
-	 *
-	 * x is the ratio of sum_util compared to the CPU capacity:
-	 * x = sum_util / (llc_weight * SCHED_CAPACITY_SCALE)
-	 * y' is the ratio of CPUs to be scanned in the LLC domain,
-	 * and the number of CPUs to scan is calculated by:
-	 *
-	 * nr_scan = llc_weight * y'                                    [2]
-	 *
-	 * When x hits the threshold of overloaded, AKA, when
-	 * x = 100 / pct, y drops to 0. According to [1],
-	 * p should be SCHED_CAPACITY_SCALE * pct^2 / 10000
-	 *
-	 * Scale x by SCHED_CAPACITY_SCALE:
-	 * x' = sum_util / llc_weight;                                  [3]
-	 *
-	 * and finally [1] becomes:
-	 * y = SCHED_CAPACITY_SCALE -
-	 *     x'^2 * pct^2 / (10000 * SCHED_CAPACITY_SCALE)            [4]
-	 *
-	 */
-	/* equation [3] */
-	x = sum_util;
-	do_div(x, llc_weight);
-
-	/* equation [4] */
-	pct = env->sd->imbalance_pct;
-	tmp = x * x * pct * pct;
-	do_div(tmp, 10000 * SCHED_CAPACITY_SCALE);
-	tmp = min_t(long, tmp, SCHED_CAPACITY_SCALE);
-	y = SCHED_CAPACITY_SCALE - tmp;
-
-	/* equation [2] */
-	y *= llc_weight;
-	do_div(y, SCHED_CAPACITY_SCALE);
-	if ((int)y != sd_share->nr_idle_scan)
-		WRITE_ONCE(sd_share->nr_idle_scan, (int)y);
-}
-
 /**
  * update_sd_lb_stats - Update sched_domain's statistics for load balancing.
  * @env: The load balancing environment.
@@ -9548,7 +9519,6 @@
 	struct sched_group *sg = env->sd->groups;
 	struct sg_lb_stats *local = &sds->local_stat;
 	struct sg_lb_stats tmp_sgs;
-	unsigned long sum_util = 0;
 	int sg_status = 0;
 
 	do {
@@ -9581,7 +9551,6 @@
 		sds->total_load += sgs->group_load;
 		sds->total_capacity += sgs->group_capacity;
 
-		sum_util += sgs->group_util;
 		sg = sg->next;
 	} while (sg != env->sd->groups);
 
@@ -9607,8 +9576,6 @@
 		WRITE_ONCE(rd->overutilized, SG_OVERUTILIZED);
 		trace_sched_overutilized_tp(rd, SG_OVERUTILIZED);
 	}
-
-	update_idle_cpu_scan(env, sum_util);
 }
 
 #define NUMA_IMBALANCE_MIN 2
@@ -9833,8 +9800,12 @@
 
 	if (sched_energy_enabled()) {
 		struct root_domain *rd = env->dst_rq->rd;
+		int out_balance = 1;
 
-		if (rcu_dereference(rd->pd) && !READ_ONCE(rd->overutilized))
+		trace_android_rvh_find_busiest_group(sds.busiest, env->dst_rq,
+					&out_balance);
+		if (rcu_dereference(rd->pd) && !READ_ONCE(rd->overutilized)
+					&& out_balance)
 			goto out_balanced;
 	}
 
@@ -9953,7 +9924,12 @@
 	struct rq *busiest = NULL, *rq;
 	unsigned long busiest_util = 0, busiest_load = 0, busiest_capacity = 1;
 	unsigned int busiest_nr = 0;
-	int i;
+	int i, done = 0;
+
+	trace_android_rvh_find_busiest_queue(env->dst_cpu, group, env->cpus,
+					     &busiest, &done);
+	if (done)
+		return busiest;
 
 	for_each_cpu_and(i, sched_group_span(group), env->cpus) {
 		unsigned long capacity, load, util;
@@ -10244,6 +10220,7 @@
 
 more_balance:
 		rq_lock_irqsave(busiest, &rf);
+		env.src_rq_rf = &rf;
 		update_rq_clock(busiest);
 
 		/*
@@ -10537,6 +10514,7 @@
 			.src_rq		= busiest_rq,
 			.idle		= CPU_IDLE,
 			.flags		= LBF_ACTIVE_LB,
+			.src_rq_rf	= &rf,
 		};
 
 		schedstat_inc(sd->alb_count);
@@ -10594,6 +10572,10 @@
 	int need_serialize, need_decay = 0;
 	u64 max_cost = 0;
 
+	trace_android_rvh_sched_rebalance_domains(rq, &continue_balancing);
+	if (!continue_balancing)
+		return;
+
 	rcu_read_lock();
 	for_each_domain(cpu, sd) {
 		/*
@@ -10685,9 +10667,13 @@
 
 static inline int find_new_ilb(void)
 {
-	int ilb;
+	int ilb = -1;
 	const struct cpumask *hk_mask;
 
+	trace_android_rvh_find_new_ilb(nohz.idle_cpus_mask, &ilb);
+	if (ilb >= 0)
+		return ilb;
+
 	hk_mask = housekeeping_cpumask(HK_FLAG_MISC);
 
 	for_each_cpu_and(ilb, nohz.idle_cpus_mask, hk_mask) {
@@ -10749,6 +10735,7 @@
 	struct sched_domain *sd;
 	int nr_busy, i, cpu = rq->cpu;
 	unsigned int flags = 0;
+	int done = 0;
 
 	if (unlikely(rq->idle_balance))
 		return;
@@ -10773,6 +10760,10 @@
 	if (time_before(now, nohz.next_balance))
 		goto out;
 
+	trace_android_rvh_sched_nohz_balancer_kick(rq, &flags, &done);
+	if (done)
+		goto out;
+
 	if (rq->nr_running >= 2) {
 		flags = NOHZ_KICK_MASK;
 		goto out;
@@ -11165,6 +11156,11 @@
 	struct sched_domain *sd;
 	int pulled_task = 0;
 	u64 curr_cost = 0;
+	int done = 0;
+
+	trace_android_rvh_sched_newidle_balance(this_rq, rf, &pulled_task, &done);
+	if (done)
+		return pulled_task;
 
 	update_misfit_status(NULL, this_rq);
 
@@ -11791,7 +11787,7 @@
 		if (!cfs_rq)
 			goto err;
 
-		se = kzalloc_node(sizeof(struct sched_entity_stats),
+		se = kzalloc_node(sizeof(struct sched_entity),
 				  GFP_KERNEL, cpu_to_node(i));
 		if (!se)
 			goto err_free_rq;
diff --git a/kernel/sched/features.h b/kernel/sched/features.h
index c4947c1..7f8dace 100644
--- a/kernel/sched/features.h
+++ b/kernel/sched/features.h
@@ -55,8 +55,7 @@
 /*
  * When doing wakeups, attempt to limit superfluous scans of the LLC domain.
  */
-SCHED_FEAT(SIS_PROP, false)
-SCHED_FEAT(SIS_UTIL, true)
+SCHED_FEAT(SIS_PROP, true)
 
 /*
  * Issue a WARN when we do multiple update_rq_clock() calls
diff --git a/kernel/sched/pelt.c b/kernel/sched/pelt.c
index a554e3b..a353f3f 100644
--- a/kernel/sched/pelt.c
+++ b/kernel/sched/pelt.c
@@ -180,8 +180,7 @@
  *   load_avg = u_0` + y*(u_0 + u_1*y + u_2*y^2 + ... )
  *            = u_0 + u_1*y + u_2*y^2 + ... [re-labeling u_i --> u_{i+1}]
  */
-static __always_inline int
-___update_load_sum(u64 now, struct sched_avg *sa,
+int ___update_load_sum(u64 now, struct sched_avg *sa,
 		  unsigned long load, unsigned long runnable, int running)
 {
 	u64 delta;
@@ -232,6 +231,7 @@
 
 	return 1;
 }
+EXPORT_SYMBOL_GPL(___update_load_sum);
 
 /*
  * When syncing *_avg with *_sum, we must take into account the current
@@ -257,8 +257,7 @@
  * the period_contrib of cfs_rq when updating the sched_avg of a sched_entity
  * if it's more convenient.
  */
-static __always_inline void
-___update_load_avg(struct sched_avg *sa, unsigned long load)
+void ___update_load_avg(struct sched_avg *sa, unsigned long load)
 {
 	u32 divider = get_pelt_divider(sa);
 
@@ -269,6 +268,7 @@
 	sa->runnable_avg = div_u64(sa->runnable_sum, divider);
 	WRITE_ONCE(sa->util_avg, sa->util_sum / divider);
 }
+EXPORT_SYMBOL_GPL(___update_load_avg);
 
 /*
  * sched_entity:
@@ -306,6 +306,7 @@
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(__update_load_avg_blocked_se);
 
 int __update_load_avg_se(u64 now, struct cfs_rq *cfs_rq, struct sched_entity *se)
 {
@@ -471,3 +472,48 @@
 	return ret;
 }
 #endif
+
+#include <trace/hooks/sched.h>
+unsigned int sysctl_sched_pelt_multiplier = 1;
+__read_mostly unsigned int sched_pelt_lshift;
+
+int sched_pelt_multiplier(struct ctl_table *table, int write, void *buffer,
+			  size_t *lenp, loff_t *ppos)
+{
+	static DEFINE_MUTEX(mutex);
+	unsigned int old;
+	int ret;
+
+	mutex_lock(&mutex);
+
+	old = sysctl_sched_pelt_multiplier;
+	ret = proc_dointvec(table, write, buffer, lenp, ppos);
+	if (ret)
+		goto undo;
+	if (!write)
+		goto done;
+
+	trace_android_vh_sched_pelt_multiplier(old, sysctl_sched_pelt_multiplier, &ret);
+	if (ret)
+		goto undo;
+
+	switch (sysctl_sched_pelt_multiplier)  {
+	case 1:
+		fallthrough;
+	case 2:
+		fallthrough;
+	case 4:
+		WRITE_ONCE(sched_pelt_lshift,
+			   sysctl_sched_pelt_multiplier >> 1);
+		goto done;
+	default:
+		ret = -EINVAL;
+	}
+
+undo:
+	sysctl_sched_pelt_multiplier = old;
+done:
+	mutex_unlock(&mutex);
+
+	return ret;
+}
diff --git a/kernel/sched/pelt.h b/kernel/sched/pelt.h
index 4ff2ed4..74ef537 100644
--- a/kernel/sched/pelt.h
+++ b/kernel/sched/pelt.h
@@ -61,6 +61,8 @@
 	WRITE_ONCE(avg->util_est.enqueued, enqueued);
 }
 
+extern unsigned int sched_pelt_lshift;
+
 /*
  * The clock_pelt scales the time to reflect the effective amount of
  * computation done during the running delta time but then sync back to
@@ -75,9 +77,13 @@
  */
 static inline void update_rq_clock_pelt(struct rq *rq, s64 delta)
 {
+	delta <<= READ_ONCE(sched_pelt_lshift);
+
+	rq->clock_task_mult += delta;
+
 	if (unlikely(is_idle_task(rq->curr))) {
 		/* The rq is idle, we can sync to clock_task */
-		rq->clock_pelt  = rq_clock_task(rq);
+		rq->clock_pelt = rq_clock_task_mult(rq);
 		return;
 	}
 
@@ -129,7 +135,8 @@
 	 * rq's clock_task.
 	 */
 	if (util_sum >= divider)
-		rq->lost_idle_time += rq_clock_task(rq) - rq->clock_pelt;
+		rq->lost_idle_time += rq_clock_task_mult(rq) -
+				      rq->clock_pelt;
 }
 
 static inline u64 rq_clock_pelt(struct rq *rq)
diff --git a/kernel/sched/psi.c b/kernel/sched/psi.c
index fa88bf6..15c79a9 100644
--- a/kernel/sched/psi.c
+++ b/kernel/sched/psi.c
@@ -151,6 +151,8 @@
 #include <linux/psi.h>
 #include "sched.h"
 
+#include <trace/hooks/psi.h>
+
 static int psi_bug __read_mostly;
 
 DEFINE_STATIC_KEY_FALSE(psi_disabled);
@@ -186,11 +188,33 @@
 struct psi_group psi_system = {
 	.pcpu = &system_group_pcpu,
 };
-
+EXPORT_SYMBOL_GPL(psi_system);
 static void psi_avgs_work(struct work_struct *work);
 
 static void poll_timer_fn(struct timer_list *t);
 
+static inline void atomic_set_bit(int i, atomic_t *v)
+{
+	atomic_or(1 << i, v);
+}
+
+static inline void atomic_clear_bit(int i, atomic_t *v)
+{
+	atomic_and(~(1 << i), v);
+}
+
+static inline int atomic_fetch_and_set_bit(int i, atomic_t *v)
+{
+	int mask = 1 << i;
+	return atomic_fetch_or(mask, v) & mask;
+}
+
+static inline int atomic_fetch_and_clear_bit(int i, atomic_t *v)
+{
+	int mask = 1 << i;
+	return atomic_fetch_and(~mask, v) & mask;
+}
+
 static void group_init(struct psi_group *group)
 {
 	int cpu;
@@ -202,6 +226,7 @@
 	INIT_DELAYED_WORK(&group->avgs_work, psi_avgs_work);
 	mutex_init(&group->avgs_lock);
 	/* Init trigger-related members */
+	atomic_set(&group->poll_wakeup, 0);
 	mutex_init(&group->trigger_lock);
 	INIT_LIST_HEAD(&group->triggers);
 	memset(group->nr_triggers, 0, sizeof(group->nr_triggers));
@@ -553,12 +578,16 @@
 		if (now < t->last_event_time + t->win.size)
 			continue;
 
+		trace_android_vh_psi_event(t);
+
 		/* Generate an event */
 		if (cmpxchg(&t->event, 0, 1) == 0)
 			wake_up_interruptible(&t->event_wait);
 		t->last_event_time = now;
 	}
 
+	trace_android_vh_psi_group(group);
+
 	if (new_stall)
 		memcpy(group->polling_total, total,
 				sizeof(group->polling_total));
@@ -566,18 +595,18 @@
 	return now + group->poll_min_period;
 }
 
-/* Schedule polling if it's not already scheduled. */
-static void psi_schedule_poll_work(struct psi_group *group, unsigned long delay)
+/* Schedule polling if it's not already scheduled or forced. */
+static void psi_schedule_poll_work(struct psi_group *group, unsigned long delay,
+				   bool force)
 {
 	struct task_struct *task;
 
 	/*
-	 * Do not reschedule if already scheduled.
-	 * Possible race with a timer scheduled after this check but before
-	 * mod_timer below can be tolerated because group->polling_next_update
-	 * will keep updates on schedule.
+	 * atomic_xchg should be called even when !force to provide a
+	 * full memory barrier (see the comment inside psi_poll_work).
 	 */
-	if (timer_pending(&group->poll_timer))
+	if (atomic_fetch_and_set_bit(POLL_SCHEDULED, &group->poll_wakeup) &&
+				     !force)
 		return;
 
 	rcu_read_lock();
@@ -589,12 +618,15 @@
 	 */
 	if (likely(task))
 		mod_timer(&group->poll_timer, jiffies + delay);
+	else
+		atomic_clear_bit(POLL_SCHEDULED, &group->poll_wakeup);
 
 	rcu_read_unlock();
 }
 
 static void psi_poll_work(struct psi_group *group)
 {
+	bool force_reschedule = false;
 	u32 changed_states;
 	u64 now;
 
@@ -602,6 +634,43 @@
 
 	now = sched_clock();
 
+	if (now > group->polling_until) {
+		/*
+		 * We are either about to start or might stop polling if no
+		 * state change was recorded. Resetting poll_scheduled leaves
+		 * a small window for psi_group_change to sneak in and schedule
+		 * an immegiate poll_work before we get to rescheduling. One
+		 * potential extra wakeup at the end of the polling window
+		 * should be negligible and polling_next_update still keeps
+		 * updates correctly on schedule.
+		 */
+		atomic_clear_bit(POLL_SCHEDULED, &group->poll_wakeup);
+		/*
+		 * A task change can race with the poll worker that is supposed to
+		 * report on it. To avoid missing events, ensure ordering between
+		 * poll_scheduled and the task state accesses, such that if the poll
+		 * worker misses the state update, the task change is guaranteed to
+		 * reschedule the poll worker:
+		 *
+		 * poll worker:
+		 *   atomic_set(poll_scheduled, 0)
+		 *   smp_mb()
+		 *   LOAD states
+		 *
+		 * task change:
+		 *   STORE states
+		 *   if atomic_xchg(poll_scheduled, 1) == 0:
+		 *     schedule poll worker
+		 *
+		 * The atomic_xchg() implies a full barrier.
+		 */
+		smp_mb();
+	} else {
+		/* Polling window is not over, keep rescheduling */
+		force_reschedule = true;
+	}
+
+
 	collect_percpu_times(group, PSI_POLL, &changed_states);
 
 	if (changed_states & group->poll_states) {
@@ -627,7 +696,8 @@
 		group->polling_next_update = update_triggers(group, now);
 
 	psi_schedule_poll_work(group,
-		nsecs_to_jiffies(group->polling_next_update - now) + 1);
+		nsecs_to_jiffies(group->polling_next_update - now) + 1,
+		force_reschedule);
 
 out:
 	mutex_unlock(&group->trigger_lock);
@@ -641,7 +711,7 @@
 
 	while (true) {
 		wait_event_interruptible(group->poll_wait,
-				atomic_cmpxchg(&group->poll_wakeup, 1, 0) ||
+				atomic_fetch_and_clear_bit(POLL_WAKEUP, &group->poll_wakeup) ||
 				kthread_should_stop());
 		if (kthread_should_stop())
 			break;
@@ -655,7 +725,7 @@
 {
 	struct psi_group *group = from_timer(group, t, poll_timer);
 
-	atomic_set(&group->poll_wakeup, 1);
+	atomic_set_bit(POLL_WAKEUP, &group->poll_wakeup);
 	wake_up_interruptible(&group->poll_wait);
 }
 
@@ -752,7 +822,7 @@
 	write_seqcount_end(&groupc->seq);
 
 	if (state_mask & group->poll_states)
-		psi_schedule_poll_work(group, 1);
+		psi_schedule_poll_work(group, 1, false);
 
 	if (wake_clock && !delayed_work_pending(&group->avgs_work))
 		schedule_delayed_work(&group->avgs_work, PSI_FREQ);
@@ -1139,7 +1209,7 @@
 			mutex_unlock(&group->trigger_lock);
 			return ERR_CAST(task);
 		}
-		atomic_set(&group->poll_wakeup, 0);
+		atomic_clear_bit(POLL_WAKEUP, &group->poll_wakeup);
 		wake_up_process(task);
 		rcu_assign_pointer(group->poll_task, task);
 	}
@@ -1219,6 +1289,7 @@
 		 * can no longer be found through group->poll_task.
 		 */
 		kthread_stop(task_to_destroy);
+		atomic_clear_bit(POLL_SCHEDULED, &group->poll_wakeup);
 	}
 	kfree(t);
 }
@@ -1260,27 +1331,19 @@
 	return psi_show(m, &psi_system, PSI_CPU);
 }
 
-static int psi_open(struct file *file, int (*psi_show)(struct seq_file *, void *))
-{
-	if (file->f_mode & FMODE_WRITE && !capable(CAP_SYS_RESOURCE))
-		return -EPERM;
-
-	return single_open(file, psi_show, NULL);
-}
-
 static int psi_io_open(struct inode *inode, struct file *file)
 {
-	return psi_open(file, psi_io_show);
+	return single_open(file, psi_io_show, NULL);
 }
 
 static int psi_memory_open(struct inode *inode, struct file *file)
 {
-	return psi_open(file, psi_memory_show);
+	return single_open(file, psi_memory_show, NULL);
 }
 
 static int psi_cpu_open(struct inode *inode, struct file *file)
 {
-	return psi_open(file, psi_cpu_show);
+	return single_open(file, psi_cpu_show, NULL);
 }
 
 static ssize_t psi_write(struct file *file, const char __user *user_buf,
@@ -1390,9 +1453,9 @@
 {
 	if (psi_enable) {
 		proc_mkdir("pressure", NULL);
-		proc_create("pressure/io", 0666, NULL, &psi_io_proc_ops);
-		proc_create("pressure/memory", 0666, NULL, &psi_memory_proc_ops);
-		proc_create("pressure/cpu", 0666, NULL, &psi_cpu_proc_ops);
+		proc_create("pressure/io", 0, NULL, &psi_io_proc_ops);
+		proc_create("pressure/memory", 0, NULL, &psi_memory_proc_ops);
+		proc_create("pressure/cpu", 0, NULL, &psi_cpu_proc_ops);
 	}
 	return 0;
 }
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index 4b9281e..485bf71 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -7,6 +7,8 @@
 
 #include "pelt.h"
 
+#include <trace/hooks/sched.h>
+
 int sched_rr_timeslice = RR_TIMESLICE;
 int sysctl_sched_rr_timeslice = (MSEC_PER_SEC / HZ) * RR_TIMESLICE;
 /* More than 4 hours if BW_SHIFT equals 20. */
@@ -984,6 +986,13 @@
 		if (likely(rt_b->rt_runtime)) {
 			rt_rq->rt_throttled = 1;
 			printk_deferred_once("sched: RT throttling activated\n");
+
+			trace_android_vh_dump_throttled_rt_tasks(
+				raw_smp_processor_id(),
+				rq_clock(rq_of_rt_rq(rt_rq)),
+				sched_rt_period(rt_rq),
+				runtime,
+				hrtimer_get_expires_ns(&rt_b->rt_period_timer));
 		} else {
 			/*
 			 * In case we did anyway, make it go away,
@@ -1021,8 +1030,8 @@
 	if (unlikely((s64)delta_exec <= 0))
 		return;
 
-	schedstat_set(curr->stats.exec_max,
-		      max(curr->stats.exec_max, delta_exec));
+	schedstat_set(curr->se.statistics.exec_max,
+		      max(curr->se.statistics.exec_max, delta_exec));
 
 	curr->se.sum_exec_runtime += delta_exec;
 	account_group_exec_runtime(curr, delta_exec);
@@ -1030,6 +1039,8 @@
 	curr->se.exec_start = now;
 	cgroup_account_cputime(curr, delta_exec);
 
+	trace_android_vh_sched_stat_runtime_rt(curr, delta_exec);
+
 	if (!rt_bandwidth_enabled())
 		return;
 
@@ -1384,6 +1395,27 @@
 	enqueue_top_rt_rq(&rq->rt);
 }
 
+#ifdef CONFIG_SMP
+static inline bool should_honor_rt_sync(struct rq *rq, struct task_struct *p,
+					bool sync)
+{
+	/*
+	 * If the waker is CFS, then an RT sync wakeup would preempt the waker
+	 * and force it to run for a likely small time after the RT wakee is
+	 * done. So, only honor RT sync wakeups from RT wakers.
+	 */
+	return sync && task_has_rt_policy(rq->curr) &&
+		p->prio <= rq->rt.highest_prio.next &&
+		rq->rt.rt_nr_running <= 2;
+}
+#else
+static inline bool should_honor_rt_sync(struct rq *rq, struct task_struct *p,
+					bool sync)
+{
+	return 0;
+}
+#endif
+
 /*
  * Adding/removing a task to/from a priority array:
  */
@@ -1391,13 +1423,15 @@
 enqueue_task_rt(struct rq *rq, struct task_struct *p, int flags)
 {
 	struct sched_rt_entity *rt_se = &p->rt;
+	bool sync = !!(flags & ENQUEUE_WAKEUP_SYNC);
 
 	if (flags & ENQUEUE_WAKEUP)
 		rt_se->timeout = 0;
 
 	enqueue_rt_entity(rt_se, flags);
 
-	if (!task_current(rq, p) && p->nr_cpus_allowed > 1)
+	if (!task_current(rq, p) && p->nr_cpus_allowed > 1 &&
+	    !should_honor_rt_sync(rq, p, sync))
 		enqueue_pushable_task(rq, p);
 }
 
@@ -1448,12 +1482,43 @@
 #ifdef CONFIG_SMP
 static int find_lowest_rq(struct task_struct *task);
 
+#ifdef CONFIG_RT_SOFTINT_OPTIMIZATION
+/*
+ * Return whether the task on the given cpu is currently non-preemptible
+ * while handling a potentially long softint, or if the task is likely
+ * to block preemptions soon because it is a ksoftirq thread that is
+ * handling slow softints.
+ */
+bool
+task_may_not_preempt(struct task_struct *task, int cpu)
+{
+	__u32 softirqs = per_cpu(active_softirqs, cpu) |
+			local_softirq_pending();
+
+	struct task_struct *cpu_ksoftirqd = per_cpu(ksoftirqd, cpu);
+	return ((softirqs & LONG_SOFTIRQ_MASK) &&
+		(task == cpu_ksoftirqd ||
+		 task_thread_info(task)->preempt_count & SOFTIRQ_MASK));
+}
+EXPORT_SYMBOL_GPL(task_may_not_preempt);
+#endif /* CONFIG_RT_SOFTINT_OPTIMIZATION */
+
 static int
 select_task_rq_rt(struct task_struct *p, int cpu, int flags)
 {
 	struct task_struct *curr;
 	struct rq *rq;
+	struct rq *this_cpu_rq;
 	bool test;
+	int target_cpu = -1;
+	bool may_not_preempt;
+	bool sync = !!(flags & WF_SYNC);
+	int this_cpu;
+
+	trace_android_rvh_select_task_rq_rt(p, cpu, flags & 0xF,
+					flags, &target_cpu);
+	if (target_cpu >= 0)
+		return target_cpu;
 
 	/* For anything but wake ups, just return the task_cpu */
 	if (!(flags & (WF_TTWU | WF_FORK)))
@@ -1463,9 +1528,16 @@
 
 	rcu_read_lock();
 	curr = READ_ONCE(rq->curr); /* unlocked access */
+	this_cpu = smp_processor_id();
+	this_cpu_rq = cpu_rq(this_cpu);
 
 	/*
-	 * If the current task on @p's runqueue is an RT task, then
+	 * If the current task on @p's runqueue is a softirq task,
+	 * it may run without preemption for a time that is
+	 * ill-suited for a waiting RT task. Therefore, try to
+	 * wake this RT task on another runqueue.
+	 *
+	 * Also, if the current task on @p's runqueue is an RT task, then
 	 * try to see if we can wake this RT task up on another
 	 * runqueue. Otherwise simply start this RT task
 	 * on its current runqueue.
@@ -1490,9 +1562,19 @@
 	 * requirement of the task - which is only important on heterogeneous
 	 * systems like big.LITTLE.
 	 */
-	test = curr &&
-	       unlikely(rt_task(curr)) &&
-	       (curr->nr_cpus_allowed < 2 || curr->prio <= p->prio);
+	may_not_preempt = task_may_not_preempt(curr, cpu);
+	test = (curr && (may_not_preempt ||
+			 (unlikely(rt_task(curr)) &&
+			  (curr->nr_cpus_allowed < 2 || curr->prio <= p->prio))));
+
+	/*
+	 * Respect the sync flag as long as the task can run on this CPU.
+	 */
+	if (should_honor_rt_sync(this_cpu_rq, p, sync) &&
+	    cpumask_test_cpu(this_cpu, p->cpus_ptr)) {
+		cpu = this_cpu;
+		goto out_unlock;
+	}
 
 	if (test || !rt_task_fits_capacity(p, cpu)) {
 		int target = find_lowest_rq(p);
@@ -1505,11 +1587,14 @@
 			goto out_unlock;
 
 		/*
-		 * Don't bother moving it if the destination CPU is
+		 * If cpu is non-preemptible, prefer remote cpu
+		 * even if it's running a higher-prio task.
+		 * Otherwise: Don't bother moving it if the destination CPU is
 		 * not running a lower priority task.
 		 */
 		if (target != -1 &&
-		    p->prio < cpu_rq(target)->rt.highest_prio.curr)
+		    (may_not_preempt ||
+		     p->prio < cpu_rq(target)->rt.highest_prio.curr))
 			cpu = target;
 	}
 
@@ -1550,6 +1635,8 @@
 static int balance_rt(struct rq *rq, struct task_struct *p, struct rq_flags *rf)
 {
 	if (!on_rt_rq(&p->rt) && need_pull_rt_task(rq, p)) {
+		int done = 0;
+
 		/*
 		 * This is OK, because current is on_cpu, which avoids it being
 		 * picked for load-balance and preemption/IRQs are still
@@ -1557,7 +1644,9 @@
 		 * not yet started the picking loop.
 		 */
 		rq_unpin_lock(rq, rf);
-		pull_rt_task(rq);
+		trace_android_rvh_sched_balance_rt(rq, p, &done);
+		if (!done)
+			pull_rt_task(rq);
 		rq_repin_lock(rq, rf);
 	}
 
@@ -1610,6 +1699,7 @@
 	 */
 	if (rq->curr->sched_class != &rt_sched_class)
 		update_rt_rq_load_avg(rq_clock_pelt(rq), rq, 0);
+	trace_android_rvh_update_rt_rq_load_avg(rq_clock_pelt(rq), rq, p, 0);
 
 	rt_queue_push_tasks(rq);
 }
@@ -1674,6 +1764,7 @@
 	update_curr_rt(rq);
 
 	update_rt_rq_load_avg(rq_clock_pelt(rq), rq, 1);
+	trace_android_rvh_update_rt_rq_load_avg(rq_clock_pelt(rq), rq, p, 1);
 
 	/*
 	 * The previous task needs to be made eligible for pushing
@@ -1701,7 +1792,7 @@
  * Return the highest pushable rq's task, which is suitable to be executed
  * on the CPU, NULL otherwise
  */
-static struct task_struct *pick_highest_pushable_task(struct rq *rq, int cpu)
+struct task_struct *pick_highest_pushable_task(struct rq *rq, int cpu)
 {
 	struct plist_head *head = &rq->rt.pushable_tasks;
 	struct task_struct *p;
@@ -1716,6 +1807,7 @@
 
 	return NULL;
 }
+EXPORT_SYMBOL_GPL(pick_highest_pushable_task);
 
 static DEFINE_PER_CPU(cpumask_var_t, local_cpu_mask);
 
@@ -1724,7 +1816,7 @@
 	struct sched_domain *sd;
 	struct cpumask *lowest_mask = this_cpu_cpumask_var_ptr(local_cpu_mask);
 	int this_cpu = smp_processor_id();
-	int cpu      = task_cpu(task);
+	int cpu      = -1;
 	int ret;
 
 	/* Make sure the mask is initialized first */
@@ -1749,9 +1841,15 @@
 				  task, lowest_mask);
 	}
 
+	trace_android_rvh_find_lowest_rq(task, lowest_mask, ret, &cpu);
+	if (cpu >= 0)
+		return cpu;
+
 	if (!ret)
 		return -1; /* No targets found */
 
+	cpu = task_cpu(task);
+
 	/*
 	 * At this point we have built a mask of CPUs representing the
 	 * lowest priority tasks in the system.  Now we want to elect
@@ -2087,6 +2185,9 @@
 		/* When rto_cpu is -1 this acts like cpumask_first() */
 		cpu = cpumask_next(rd->rto_cpu, rd->rto_mask);
 
+		/* this will be any CPU in the rd->rto_mask, and can be a halted cpu update it */
+		trace_android_rvh_rto_next_cpu(rd->rto_cpu, rd->rto_mask, &cpu);
+
 		rd->rto_cpu = cpu;
 
 		if (cpu < nr_cpu_ids)
@@ -2484,6 +2585,7 @@
 
 	update_curr_rt(rq);
 	update_rt_rq_load_avg(rq_clock_pelt(rq), rq, 1);
+	trace_android_rvh_update_rt_rq_load_avg(rq_clock_pelt(rq), rq, p, 1);
 
 	watchdog(rq, p);
 
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index 5061093..8d5512b 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -67,6 +67,8 @@
 #include <linux/syscalls.h>
 #include <linux/task_work.h>
 #include <linux/tsacct_kern.h>
+#include <linux/android_vendor.h>
+#include <linux/android_kabi.h>
 
 #include <asm/tlb.h>
 
@@ -435,8 +437,16 @@
 	struct uclamp_se	uclamp_req[UCLAMP_CNT];
 	/* Effective clamp values used for a task group */
 	struct uclamp_se	uclamp[UCLAMP_CNT];
+	/* Latency-sensitive flag used for a task group */
+	unsigned int		latency_sensitive;
+
+	ANDROID_VENDOR_DATA_ARRAY(1, 4);
 #endif
 
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 #ifdef CONFIG_FAIR_GROUP_SCHED
@@ -855,6 +865,13 @@
 	 * CPUs of the rd. Protected by RCU.
 	 */
 	struct perf_domain __rcu *pd;
+
+	ANDROID_VENDOR_DATA_ARRAY(1, 4);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 extern void init_defrootdomain(void);
@@ -866,6 +883,7 @@
 #ifdef HAVE_RT_PUSH_IPI
 extern void rto_push_irq_work_func(struct irq_work *work);
 #endif
+extern struct task_struct *pick_highest_pushable_task(struct rq *rq, int cpu);
 #endif /* CONFIG_SMP */
 
 #ifdef CONFIG_UCLAMP_TASK
@@ -983,6 +1001,7 @@
 	u64			clock;
 	/* Ensure that all clocks are in the same cache line */
 	u64			clock_task ____cacheline_aligned;
+	u64			clock_task_mult;
 	u64			clock_pelt;
 	unsigned long		lost_idle_time;
 
@@ -1003,7 +1022,6 @@
 
 	unsigned long		cpu_capacity;
 	unsigned long		cpu_capacity_orig;
-	unsigned long		cpu_capacity_inverted;
 
 	struct callback_head	*balance_callback;
 
@@ -1111,6 +1129,14 @@
 	unsigned char		core_forceidle;
 	unsigned int		core_forceidle_seq;
 #endif
+
+	ANDROID_VENDOR_DATA_ARRAY(1, 96);
+	ANDROID_OEM_DATA_ARRAY(1, 16);
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 #ifdef CONFIG_FAIR_GROUP_SCHED
@@ -1480,6 +1506,14 @@
 	return rq->clock_task;
 }
 
+static inline u64 rq_clock_task_mult(struct rq *rq)
+{
+	lockdep_assert_rq_held(rq);
+	assert_clock_updated(rq);
+
+	return rq->clock_task_mult;
+}
+
 /**
  * By default the decay is the default pelt decay period.
  * The decay shift can change the decay period in
@@ -1527,6 +1561,11 @@
 #endif
 };
 
+#ifdef CONFIG_SMP
+extern struct rq *__migrate_task(struct rq *rq, struct rq_flags *rf,
+				 struct task_struct *p, int dest_cpu);
+#endif
+
 extern struct callback_head balance_push_callback;
 
 /*
@@ -1699,8 +1738,6 @@
 };
 extern void sched_setnuma(struct task_struct *p, int node);
 extern int migrate_task_to(struct task_struct *p, int cpu);
-extern int migrate_swap(struct task_struct *p, struct task_struct *t,
-			int cpu, int scpu);
 extern void init_numa_balancing(unsigned long clone_flags, struct task_struct *p);
 #else
 static inline void
@@ -1711,6 +1748,9 @@
 
 #ifdef CONFIG_SMP
 
+extern int migrate_swap(struct task_struct *p, struct task_struct *t,
+			int cpu, int scpu);
+
 static inline void
 queue_balance_callback(struct rq *rq,
 		       struct callback_head *head,
@@ -1985,6 +2025,8 @@
 #undef SCHED_FEAT
 
 extern struct static_key sched_feat_keys[__SCHED_FEAT_NR];
+extern const char * const sched_feat_names[__SCHED_FEAT_NR];
+
 #define sched_feat(x) (static_branch_##x(&sched_feat_keys[__SCHED_FEAT_##x]))
 
 #else /* !CONFIG_JUMP_LABEL */
@@ -2059,6 +2101,8 @@
 #define WF_SYNC     0x10 /* Waker goes to sleep after wakeup */
 #define WF_MIGRATED 0x20 /* Internal use, task got migrated */
 
+#define WF_ANDROID_VENDOR	0x1000 /* Vendor specific for Android */
+
 #ifdef CONFIG_SMP
 static_assert(WF_EXEC == SD_BALANCE_EXEC);
 static_assert(WF_FORK == SD_BALANCE_FORK);
@@ -2117,6 +2161,8 @@
 #define ENQUEUE_MIGRATED	0x00
 #endif
 
+#define ENQUEUE_WAKEUP_SYNC	0x80
+
 #define RETRY_TASK		((void *)-1UL)
 
 struct sched_class {
@@ -2285,6 +2331,7 @@
 
 extern int push_cpu_stop(void *arg);
 
+extern unsigned long __read_mostly max_load_balance_interval;
 #endif
 
 #ifdef CONFIG_CPU_IDLE
@@ -2926,6 +2973,11 @@
 	return clamp(util, min_util, max_util);
 }
 
+static inline bool uclamp_boosted(struct task_struct *p)
+{
+	return uclamp_eff_value(p, UCLAMP_MIN) > 0;
+}
+
 /*
  * When uclamp is compiled in, the aggregation at rq level is 'turned off'
  * by default in the fast path and only gets turned on once userspace performs
@@ -2955,6 +3007,11 @@
 	return util;
 }
 
+static inline bool uclamp_boosted(struct task_struct *p)
+{
+	return false;
+}
+
 static inline bool uclamp_is_used(void)
 {
 	return false;
@@ -2980,6 +3037,25 @@
 }
 #endif /* CONFIG_UCLAMP_TASK */
 
+#ifdef CONFIG_UCLAMP_TASK_GROUP
+static inline bool uclamp_latency_sensitive(struct task_struct *p)
+{
+	struct cgroup_subsys_state *css = task_css(p, cpu_cgrp_id);
+	struct task_group *tg;
+
+	if (!css)
+		return false;
+	tg = container_of(css, struct task_group, css);
+
+	return tg->latency_sensitive;
+}
+#else
+static inline bool uclamp_latency_sensitive(struct task_struct *p)
+{
+	return false;
+}
+#endif /* CONFIG_UCLAMP_TASK_GROUP */
+
 #ifdef arch_scale_freq_capacity
 # ifndef arch_scale_freq_invariant
 #  define arch_scale_freq_invariant()	true
@@ -2994,24 +3070,6 @@
 	return cpu_rq(cpu)->cpu_capacity_orig;
 }
 
-/*
- * Returns inverted capacity if the CPU is in capacity inversion state.
- * 0 otherwise.
- *
- * Capacity inversion detection only considers thermal impact where actual
- * performance points (OPPs) gets dropped.
- *
- * Capacity inversion state happens when another performance domain that has
- * equal or lower capacity_orig_of() becomes effectively larger than the perf
- * domain this CPU belongs to due to thermal pressure throttling it hard.
- *
- * See comment in update_cpu_capacity().
- */
-static inline unsigned long cpu_in_capacity_inversion(int cpu)
-{
-	return cpu_rq(cpu)->cpu_capacity_inverted;
-}
-
 /**
  * enum cpu_util_type - CPU utilization type
  * @FREQUENCY_UTIL:	Utilization used to select frequency
@@ -3157,3 +3215,14 @@
 extern void sched_dynamic_update(int mode);
 #endif
 
+/*
+ * task_may_not_preempt - check whether a task may not be preemptible soon
+ */
+#ifdef CONFIG_RT_SOFTINT_OPTIMIZATION
+extern bool task_may_not_preempt(struct task_struct *task, int cpu);
+#else
+static inline bool task_may_not_preempt(struct task_struct *task, int cpu)
+{
+	return false;
+}
+#endif /* CONFIG_RT_SOFTINT_OPTIMIZATION */
diff --git a/kernel/sched/stats.h b/kernel/sched/stats.h
index 9757035..606a398 100644
--- a/kernel/sched/stats.h
+++ b/kernel/sched/stats.h
@@ -41,7 +41,6 @@
 #define   schedstat_val_or_zero(var)	((schedstat_enabled()) ? (var) : 0)
 
 #else /* !CONFIG_SCHEDSTATS: */
-
 static inline void rq_sched_info_arrive  (struct rq *rq, unsigned long long delta) { }
 static inline void rq_sched_info_dequeue(struct rq *rq, unsigned long long delta) { }
 static inline void rq_sched_info_depart  (struct rq *rq, unsigned long long delta) { }
@@ -54,26 +53,8 @@
 # define   schedstat_set(var, val)	do { } while (0)
 # define   schedstat_val(var)		0
 # define   schedstat_val_or_zero(var)	0
-
 #endif /* CONFIG_SCHEDSTATS */
 
-#ifdef CONFIG_FAIR_GROUP_SCHED
-struct sched_entity_stats {
-	struct sched_entity     se;
-	struct sched_statistics stats;
-} __no_randomize_layout;
-#endif
-
-static inline struct sched_statistics *
-__schedstats_from_se(struct sched_entity *se)
-{
-#ifdef CONFIG_FAIR_GROUP_SCHED
-	if (!entity_is_task(se))
-		return &container_of(se, struct sched_entity_stats, se)->stats;
-#endif
-	return &task_of(se)->stats;
-}
-
 #ifdef CONFIG_PSI
 /*
  * PSI tracks state that persists across sleeps, such as iowaits and
diff --git a/kernel/sched/stop_task.c b/kernel/sched/stop_task.c
index 0b165a2..f988ebe 100644
--- a/kernel/sched/stop_task.c
+++ b/kernel/sched/stop_task.c
@@ -78,8 +78,8 @@
 	if (unlikely((s64)delta_exec < 0))
 		delta_exec = 0;
 
-	schedstat_set(curr->stats.exec_max,
-		      max(curr->stats.exec_max, delta_exec));
+	schedstat_set(curr->se.statistics.exec_max,
+			max(curr->se.statistics.exec_max, delta_exec));
 
 	curr->se.sum_exec_runtime += delta_exec;
 	account_group_exec_runtime(curr, delta_exec);
diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
index 4e8698e..14be3c4 100644
--- a/kernel/sched/topology.c
+++ b/kernel/sched/topology.c
@@ -4,7 +4,12 @@
  */
 #include "sched.h"
 
+#include <trace/hooks/sched.h>
+
 DEFINE_MUTEX(sched_domains_mutex);
+#ifdef CONFIG_LOCKDEP
+EXPORT_SYMBOL_GPL(sched_domains_mutex);
+#endif
 
 /* Protected by sched_domains_mutex: */
 static cpumask_var_t sched_domains_tmpmask;
@@ -327,8 +332,7 @@
  *    2. the SD_ASYM_CPUCAPACITY flag is set in the sched_domain hierarchy.
  *    3. no SMT is detected.
  *    4. the EM complexity is low enough to keep scheduling overheads low;
- *    5. schedutil is driving the frequency of all CPUs of the rd;
- *    6. frequency invariance support is present;
+ *    5. frequency invariance support is present;
  *
  * The complexity of the Energy Model is defined as:
  *
@@ -348,21 +352,23 @@
  */
 #define EM_MAX_COMPLEXITY 2048
 
-extern struct cpufreq_governor schedutil_gov;
 static bool build_perf_domains(const struct cpumask *cpu_map)
 {
 	int i, nr_pd = 0, nr_ps = 0, nr_cpus = cpumask_weight(cpu_map);
 	struct perf_domain *pd = NULL, *tmp;
 	int cpu = cpumask_first(cpu_map);
 	struct root_domain *rd = cpu_rq(cpu)->rd;
-	struct cpufreq_policy *policy;
-	struct cpufreq_governor *gov;
+	bool eas_check = false;
 
 	if (!sysctl_sched_energy_aware)
 		goto free;
 
-	/* EAS is enabled for asymmetric CPU capacity topologies. */
-	if (!per_cpu(sd_asym_cpucapacity, cpu)) {
+	/*
+	 * EAS is enabled for asymmetric CPU capacity topologies.
+	 * Allow vendor to override if desired.
+	 */
+	trace_android_rvh_build_perf_domains(&eas_check);
+	if (!per_cpu(sd_asym_cpucapacity, cpu) && !eas_check) {
 		if (sched_debug()) {
 			pr_info("rd %*pbl: CPUs do not have asymmetric capacities\n",
 					cpumask_pr_args(cpu_map));
@@ -390,19 +396,6 @@
 		if (find_pd(pd, i))
 			continue;
 
-		/* Do not attempt EAS if schedutil is not being used. */
-		policy = cpufreq_cpu_get(i);
-		if (!policy)
-			goto free;
-		gov = policy->governor;
-		cpufreq_cpu_put(policy);
-		if (gov != &schedutil_gov) {
-			if (rd->pd)
-				pr_warn("rd %*pbl: Disabling EAS, schedutil is mandatory\n",
-						cpumask_pr_args(cpu_map));
-			goto free;
-		}
-
 		/* Create the new pd and add it to the local list. */
 		tmp = pd_init(i);
 		if (!tmp)
@@ -2259,6 +2252,7 @@
 		pr_info("root domain span: %*pbl (max cpu_capacity = %lu)\n",
 			cpumask_pr_args(cpu_map), rq->rd->max_cpu_capacity);
 	}
+	trace_android_vh_build_sched_domains(has_asym);
 
 	ret = 0;
 error:
diff --git a/kernel/sched/vendor_hooks.c b/kernel/sched/vendor_hooks.c
new file mode 100644
index 0000000..b1ace3d
--- /dev/null
+++ b/kernel/sched/vendor_hooks.c
@@ -0,0 +1,129 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/* vendor_hook.c
+ *
+ * Copyright 2022 Google LLC
+ */
+#ifndef __GENKSYMS__
+#include "sched.h"
+#include "pelt.h"
+#include "smp.h"
+#else
+/*
+ * These includes are necessary to preserve the KMI for the
+ * scheduler-related vendor hooks.
+ */
+#include <trace/hooks/gic.h>
+#include <trace/hooks/mm.h>
+#include <trace/hooks/ufshcd.h>
+#include <trace/hooks/block.h>
+#include <trace/hooks/pm_domain.h>
+#include <trace/hooks/remoteproc.h>
+#include <trace/hooks/power.h>
+#include <trace/hooks/fault.h>
+#include <trace/hooks/traps.h>
+#include <trace/hooks/fips140.h>
+#include <trace/hooks/thermal.h>
+#include <trace/hooks/cfg80211.h>
+#endif
+
+#define CREATE_TRACE_POINTS
+#include <trace/hooks/vendor_hooks.h>
+#include <linux/tracepoint.h>
+#include <trace/hooks/sched.h>
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_select_task_rq_fair);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_select_task_rq_rt);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_select_task_rq_dl);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_select_fallback_rq);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_scheduler_tick);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_enqueue_task);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_dequeue_task);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_can_migrate_task);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_lowest_rq);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_prepare_prio_fork);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_finish_prio_fork);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_rtmutex_force_update);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_rtmutex_prepare_setprio);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_rto_next_cpu);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_is_cpu_allowed);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_get_nohz_timer_target);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_user_nice);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_setscheduler);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_busiest_group);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_dump_throttled_rt_tasks);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_jiffies_update);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_newidle_balance);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_nohz_balancer_kick);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_rebalance_domains);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_busiest_queue);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_migrate_queued_task);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_energy_efficient_cpu);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_sugov_sched_attr);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_iowait);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_sugov_update);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_overutilized);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_setaffinity);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_getaffinity);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_cpus_allowed);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_task_cpu);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_try_to_wake_up);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_try_to_wake_up_success);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_fork);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_wake_up_new_task);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_new_task_stats);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_flush_task);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_tick_entry);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_schedule);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_cpu_starting);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_cpu_dying);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_account_irq);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_account_irq_start);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_account_irq_end);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_place_entity);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_build_perf_domains);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_cpu_capacity);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_misfit_status);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_fork_init);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ttwu_cond);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_schedule_bug);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_exec);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_map_util_freq);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_map_util_freq_new);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_em_cpu_energy);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_build_sched_domains);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_check_preempt_tick);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_check_preempt_wakeup_ignore);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_replace_next_task_fair);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_balance_rt);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_pick_next_entity);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_check_preempt_wakeup);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_cpus_allowed_ptr_locked);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_cpus_allowed_by_task);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_sched_yield);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_free_task);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_irqtime_account_process_tick);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_pelt_multiplier);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_uclamp_eff_get);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_after_enqueue_task);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_after_dequeue_task);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_enqueue_entity);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_dequeue_entity);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_entity_tick);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_enqueue_task_fair);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_dequeue_task_fair);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_em_dev_register_pd);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_stat_runtime_rt);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_post_init_entity_util_avg);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_new_ilb);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_util_est_update);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_setscheduler_uclamp);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_wake_up_sync);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_set_wake_flags);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_effective_cpu_util);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_force_compatible_pre);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_force_compatible_post);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_dup_task_struct);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_account_task_time);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_cpus_allowed_comm);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_setaffinity_early);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_rt_rq_load_avg);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmput);
diff --git a/kernel/sched/wait.c b/kernel/sched/wait.c
index eca3810..7f4c5e0 100644
--- a/kernel/sched/wait.c
+++ b/kernel/sched/wait.c
@@ -5,6 +5,7 @@
  * (C) 2004 Nadia Yvette Chambers, Oracle
  */
 #include "sched.h"
+#include <trace/hooks/sched.h>
 
 void __init_waitqueue_head(struct wait_queue_head *wq_head, const char *name, struct lock_class_key *key)
 {
@@ -199,10 +200,13 @@
 void __wake_up_sync_key(struct wait_queue_head *wq_head, unsigned int mode,
 			void *key)
 {
+	int wake_flags = WF_SYNC;
+
 	if (unlikely(!wq_head))
 		return;
 
-	__wake_up_common_lock(wq_head, mode, 1, WF_SYNC, key);
+	trace_android_vh_set_wake_flags(&wake_flags, &mode);
+	__wake_up_common_lock(wq_head, mode, 1, wake_flags, key);
 }
 EXPORT_SYMBOL_GPL(__wake_up_sync_key);
 
@@ -411,7 +415,8 @@
 }
 EXPORT_SYMBOL(finish_wait);
 
-int autoremove_wake_function(struct wait_queue_entry *wq_entry, unsigned mode, int sync, void *key)
+__sched int autoremove_wake_function(struct wait_queue_entry *wq_entry, unsigned int mode,
+				     int sync, void *key)
 {
 	int ret = default_wake_function(wq_entry, mode, sync, key);
 
@@ -447,7 +452,7 @@
  * }						smp_mb(); // C
  * remove_wait_queue(&wq_head, &wait);		wq_entry->flags |= WQ_FLAG_WOKEN;
  */
-long wait_woken(struct wait_queue_entry *wq_entry, unsigned mode, long timeout)
+__sched long wait_woken(struct wait_queue_entry *wq_entry, unsigned int mode, long timeout)
 {
 	/*
 	 * The below executes an smp_mb(), which matches with the full barrier
@@ -472,7 +477,8 @@
 }
 EXPORT_SYMBOL(wait_woken);
 
-int woken_wake_function(struct wait_queue_entry *wq_entry, unsigned mode, int sync, void *key)
+__sched int woken_wake_function(struct wait_queue_entry *wq_entry, unsigned int mode,
+				int sync, void *key)
 {
 	/* Pairs with the smp_store_mb() in wait_woken(). */
 	smp_mb(); /* C */
diff --git a/kernel/scs.c b/kernel/scs.c
index 579841b..b7e1b09 100644
--- a/kernel/scs.c
+++ b/kernel/scs.c
@@ -32,15 +32,19 @@
 	for (i = 0; i < NR_CACHED_SCS; i++) {
 		s = this_cpu_xchg(scs_cache[i], NULL);
 		if (s) {
-			kasan_unpoison_vmalloc(s, SCS_SIZE);
+			s = kasan_unpoison_vmalloc(s, SCS_SIZE,
+						   KASAN_VMALLOC_PROT_NORMAL);
 			memset(s, 0, SCS_SIZE);
-			return s;
+			goto out;
 		}
 	}
 
-	return __vmalloc_node_range(SCS_SIZE, 1, VMALLOC_START, VMALLOC_END,
+	s = __vmalloc_node_range(SCS_SIZE, 1, VMALLOC_START, VMALLOC_END,
 				    GFP_SCS, PAGE_KERNEL, 0, node,
 				    __builtin_return_address(0));
+
+out:
+	return kasan_reset_tag(s);
 }
 
 void *scs_alloc(int node)
@@ -78,7 +82,7 @@
 		if (this_cpu_cmpxchg(scs_cache[i], 0, s) == NULL)
 			return;
 
-	kasan_unpoison_vmalloc(s, SCS_SIZE);
+	kasan_unpoison_vmalloc(s, SCS_SIZE, KASAN_VMALLOC_PROT_NORMAL);
 	vfree_atomic(s);
 }
 
diff --git a/kernel/signal.c b/kernel/signal.c
index c7dbb19..6164d65 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -45,6 +45,7 @@
 #include <linux/posix-timers.h>
 #include <linux/cgroup.h>
 #include <linux/audit.h>
+#include <linux/oom.h>
 
 #define CREATE_TRACE_POINTS
 #include <trace/events/signal.h>
@@ -56,6 +57,8 @@
 #include <asm/cacheflush.h>
 #include <asm/syscall.h>	/* for syscall_get_* */
 
+#undef CREATE_TRACE_POINTS
+#include <trace/hooks/signal.h>
 /*
  * SLAB caches for signal bits.
  */
@@ -1047,6 +1050,7 @@
 			signal->group_stop_count = 0;
 			t = p;
 			do {
+				trace_android_vh_exit_signal(t);
 				task_clear_jobctl_pending(t, JOBCTL_PENDING_MASK);
 				sigaddset(&t->pending.signal, SIGKILL);
 				signal_wake_up(t, 1);
@@ -1289,7 +1293,7 @@
 {
 	unsigned long flags;
 	int ret = -ESRCH;
-
+	trace_android_vh_do_send_sig_info(sig, current, p);
 	if (lock_task_sighand(p, &flags)) {
 		ret = send_signal(sig, info, p, type);
 		unlock_task_sighand(p, &flags);
@@ -1438,8 +1442,17 @@
 	ret = check_kill_permission(sig, info, p);
 	rcu_read_unlock();
 
-	if (!ret && sig)
+	if (!ret && sig) {
 		ret = do_send_sig_info(sig, info, p, type);
+		if (!ret && sig == SIGKILL) {
+			bool reap = false;
+
+			trace_android_vh_process_killed(current, &reap);
+			trace_android_vh_killed_process(current, p, &reap);
+			if (reap)
+				add_to_oom_reaper(p);
+		}
+	}
 
 	return ret;
 }
@@ -1802,7 +1815,7 @@
 }
 #endif
 
-int send_sig_perf(void __user *addr, u32 type, u64 sig_data)
+int force_sig_perf(void __user *addr, u32 type, u64 sig_data)
 {
 	struct kernel_siginfo info;
 
@@ -1814,18 +1827,7 @@
 	info.si_perf_data = sig_data;
 	info.si_perf_type = type;
 
-	/*
-	 * Signals generated by perf events should not terminate the whole
-	 * process if SIGTRAP is blocked, however, delivering the signal
-	 * asynchronously is better than not delivering at all. But tell user
-	 * space if the signal was asynchronous, so it can clearly be
-	 * distinguished from normal synchronous ones.
-	 */
-	info.si_perf_flags = sigismember(&current->blocked, info.si_signo) ?
-				     TRAP_PERF_FLAG_ASYNC :
-				     0;
-
-	return send_sig_info(info.si_signo, &info, current);
+	return force_sig_info(&info);
 }
 
 /**
@@ -3456,7 +3458,6 @@
 		to->si_addr = ptr_to_compat(from->si_addr);
 		to->si_perf_data = from->si_perf_data;
 		to->si_perf_type = from->si_perf_type;
-		to->si_perf_flags = from->si_perf_flags;
 		break;
 	case SIL_CHLD:
 		to->si_pid = from->si_pid;
@@ -3534,7 +3535,6 @@
 		to->si_addr = compat_ptr(from->si_addr);
 		to->si_perf_data = from->si_perf_data;
 		to->si_perf_type = from->si_perf_type;
-		to->si_perf_flags = from->si_perf_flags;
 		break;
 	case SIL_CHLD:
 		to->si_pid    = from->si_pid;
@@ -4715,7 +4715,6 @@
 	CHECK_OFFSET(si_pkey);
 	CHECK_OFFSET(si_perf_data);
 	CHECK_OFFSET(si_perf_type);
-	CHECK_OFFSET(si_perf_flags);
 
 	/* sigpoll */
 	CHECK_OFFSET(si_band);
diff --git a/kernel/softirq.c b/kernel/softirq.c
index 41f4709..c60683c 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -33,6 +33,9 @@
 #define CREATE_TRACE_POINTS
 #include <trace/events/irq.h>
 
+EXPORT_TRACEPOINT_SYMBOL_GPL(irq_handler_entry);
+EXPORT_TRACEPOINT_SYMBOL_GPL(irq_handler_exit);
+
 /*
    - No shared variables, all the data are CPU local.
    - If a softirq needs serialization, let it serialize itself
@@ -59,6 +62,14 @@
 static struct softirq_action softirq_vec[NR_SOFTIRQS] __cacheline_aligned_in_smp;
 
 DEFINE_PER_CPU(struct task_struct *, ksoftirqd);
+EXPORT_PER_CPU_SYMBOL_GPL(ksoftirqd);
+
+/*
+ * active_softirqs -- per cpu, a mask of softirqs that are being handled,
+ * with the expectation that approximate answers are acceptable and therefore
+ * no synchronization.
+ */
+DEFINE_PER_CPU(__u32, active_softirqs);
 
 const char * const softirq_to_name[NR_SOFTIRQS] = {
 	"HI", "TIMER", "NET_TX", "NET_RX", "BLOCK", "IRQ_POLL",
@@ -80,21 +91,6 @@
 		wake_up_process(tsk);
 }
 
-/*
- * If ksoftirqd is scheduled, we do not want to process pending softirqs
- * right now. Let ksoftirqd handle this at its own rate, to get fairness,
- * unless we're doing some of the synchronous softirqs.
- */
-#define SOFTIRQ_NOW_MASK ((1 << HI_SOFTIRQ) | (1 << TASKLET_SOFTIRQ))
-static bool ksoftirqd_running(unsigned long pending)
-{
-	struct task_struct *tsk = __this_cpu_read(ksoftirqd);
-
-	if (pending & SOFTIRQ_NOW_MASK)
-		return false;
-	return tsk && task_is_running(tsk) && !__kthread_should_park(tsk);
-}
-
 #ifdef CONFIG_TRACE_IRQFLAGS
 DEFINE_PER_CPU(int, hardirqs_enabled);
 DEFINE_PER_CPU(int, hardirq_context);
@@ -236,7 +232,7 @@
 		goto out;
 
 	pending = local_softirq_pending();
-	if (!pending || ksoftirqd_running(pending))
+	if (!pending)
 		goto out;
 
 	/*
@@ -419,9 +415,6 @@
 
 static inline void invoke_softirq(void)
 {
-	if (ksoftirqd_running(local_softirq_pending()))
-		return;
-
 	if (!force_irqthreads() || !__this_cpu_read(ksoftirqd)) {
 #ifdef CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK
 		/*
@@ -455,7 +448,7 @@
 
 	pending = local_softirq_pending();
 
-	if (pending && !ksoftirqd_running(pending))
+	if (pending)
 		do_softirq_own_stack();
 
 	local_irq_restore(flags);
@@ -512,6 +505,17 @@
 static inline void lockdep_softirq_end(bool in_hardirq) { }
 #endif
 
+static inline __u32 softirq_deferred_for_rt(__u32 *pending)
+{
+	__u32 deferred = 0;
+
+	if (cpupri_check_rt()) {
+		deferred = *pending & LONG_SOFTIRQ_MASK;
+		*pending &= ~LONG_SOFTIRQ_MASK;
+	}
+	return deferred;
+}
+
 asmlinkage __visible void __softirq_entry __do_softirq(void)
 {
 	unsigned long end = jiffies + MAX_SOFTIRQ_TIME;
@@ -519,6 +523,7 @@
 	int max_restart = MAX_SOFTIRQ_RESTART;
 	struct softirq_action *h;
 	bool in_hardirq;
+	__u32 deferred;
 	__u32 pending;
 	int softirq_bit;
 
@@ -531,13 +536,15 @@
 
 	pending = local_softirq_pending();
 
+	deferred = softirq_deferred_for_rt(&pending);
 	softirq_handle_begin();
 	in_hardirq = lockdep_softirq_start();
 	account_softirq_enter(current);
 
 restart:
 	/* Reset the pending bitmask before enabling irqs */
-	set_softirq_pending(0);
+	set_softirq_pending(deferred);
+	__this_cpu_write(active_softirqs, pending);
 
 	local_irq_enable();
 
@@ -567,6 +574,7 @@
 		pending >>= softirq_bit;
 	}
 
+	__this_cpu_write(active_softirqs, 0);
 	if (!IS_ENABLED(CONFIG_PREEMPT_RT) &&
 	    __this_cpu_read(ksoftirqd) == current)
 		rcu_softirq_qs();
@@ -574,14 +582,17 @@
 	local_irq_disable();
 
 	pending = local_softirq_pending();
+	deferred = softirq_deferred_for_rt(&pending);
+
 	if (pending) {
 		if (time_before(jiffies, end) && !need_resched() &&
 		    --max_restart)
 			goto restart;
-
-		wakeup_softirqd();
 	}
 
+	if (pending | deferred)
+		wakeup_softirqd();
+
 	account_softirq_exit(current);
 	lockdep_softirq_end(in_hardirq);
 	softirq_handle_end();
@@ -780,10 +791,15 @@
 		if (tasklet_trylock(t)) {
 			if (!atomic_read(&t->count)) {
 				if (tasklet_clear_sched(t)) {
-					if (t->use_callback)
+					if (t->use_callback) {
+						trace_tasklet_entry(t->callback);
 						t->callback(t);
-					else
+						trace_tasklet_exit(t->callback);
+					} else {
+						trace_tasklet_entry(t->func);
 						t->func(t->data);
+						trace_tasklet_exit(t->func);
+					}
 				}
 				tasklet_unlock(t);
 				continue;
diff --git a/kernel/stacktrace.c b/kernel/stacktrace.c
index 9c62525..6a2fe34 100644
--- a/kernel/stacktrace.c
+++ b/kernel/stacktrace.c
@@ -151,6 +151,7 @@
 	put_task_stack(tsk);
 	return c.len;
 }
+EXPORT_SYMBOL_GPL(stack_trace_save_tsk);
 
 /**
  * stack_trace_save_regs - Save a stack trace based on pt_regs into a storage array
@@ -174,6 +175,7 @@
 	arch_stack_walk(consume_entry, &c, current, regs);
 	return c.len;
 }
+EXPORT_SYMBOL_GPL(stack_trace_save_regs);
 
 #ifdef CONFIG_HAVE_RELIABLE_STACKTRACE
 /**
diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c
index cbc3027..ac3fc7f 100644
--- a/kernel/stop_machine.c
+++ b/kernel/stop_machine.c
@@ -152,6 +152,7 @@
 	wait_for_completion(&done.completion);
 	return done.ret;
 }
+EXPORT_SYMBOL_GPL(stop_one_cpu);
 
 /* This controls the threads on each CPU. */
 enum multi_stop_state {
@@ -387,6 +388,7 @@
 	*work_buf = (struct cpu_stop_work){ .fn = fn, .arg = arg, .caller = _RET_IP_, };
 	return cpu_stop_queue_work(cpu, work_buf);
 }
+EXPORT_SYMBOL_GPL(stop_one_cpu_nowait);
 
 static bool queue_stop_cpus_work(const struct cpumask *cpumask,
 				 cpu_stop_fn_t fn, void *arg,
diff --git a/kernel/sys.c b/kernel/sys.c
index 2efab44..9702653 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -7,6 +7,7 @@
 
 #include <linux/export.h>
 #include <linux/mm.h>
+#include <linux/mm_inline.h>
 #include <linux/utsname.h>
 #include <linux/mman.h>
 #include <linux/reboot.h>
@@ -74,6 +75,8 @@
 
 #include "uid16.h"
 
+#include <trace/hooks/sys.h>
+
 #ifndef SET_UNALIGN_CTL
 # define SET_UNALIGN_CTL(a, b)	(-EINVAL)
 #endif
@@ -2282,6 +2285,70 @@
 
 #define PR_IO_FLUSHER (PF_MEMALLOC_NOIO | PF_LOCAL_THROTTLE)
 
+#ifdef CONFIG_ANON_VMA_NAME
+
+#define ANON_VMA_NAME_MAX_LEN		256
+#define ANON_VMA_NAME_INVALID_CHARS	"\\`$[]"
+
+static inline bool is_valid_name_char(char ch)
+{
+	/* printable ascii characters, excluding ANON_VMA_NAME_INVALID_CHARS */
+	return ch > 0x1f && ch < 0x7f &&
+		!strchr(ANON_VMA_NAME_INVALID_CHARS, ch);
+}
+
+static int prctl_set_vma(unsigned long opt, unsigned long addr,
+			 unsigned long size, unsigned long arg)
+{
+	struct mm_struct *mm = current->mm;
+	const char __user *uname;
+	struct anon_vma_name *anon_name = NULL;
+	int error;
+
+	switch (opt) {
+	case PR_SET_VMA_ANON_NAME:
+		uname = (const char __user *)arg;
+		if (uname) {
+			char *name, *pch;
+
+			name = strndup_user(uname, ANON_VMA_NAME_MAX_LEN);
+			if (IS_ERR(name))
+				return PTR_ERR(name);
+
+			for (pch = name; *pch != '\0'; pch++) {
+				if (!is_valid_name_char(*pch)) {
+					kfree(name);
+					return -EINVAL;
+				}
+			}
+			/* anon_vma has its own copy */
+			anon_name = anon_vma_name_alloc(name);
+			kfree(name);
+			if (!anon_name)
+				return -ENOMEM;
+
+		}
+
+		mmap_write_lock(mm);
+		error = madvise_set_anon_name(mm, addr, size, anon_name);
+		mmap_write_unlock(mm);
+		anon_vma_name_put(anon_name);
+		break;
+	default:
+		error = -EINVAL;
+	}
+
+	return error;
+}
+
+#else /* CONFIG_ANON_VMA_NAME */
+static int prctl_set_vma(unsigned long opt, unsigned long start,
+			 unsigned long size, unsigned long arg)
+{
+	return -EINVAL;
+}
+#endif /* CONFIG_ANON_VMA_NAME */
+
 SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
 		unsigned long, arg4, unsigned long, arg5)
 {
@@ -2551,10 +2618,14 @@
 		error = sched_core_share_pid(arg2, arg3, arg4, arg5);
 		break;
 #endif
+	case PR_SET_VMA:
+		error = prctl_set_vma(arg2, arg3, arg4, arg5);
+		break;
 	default:
 		error = -EINVAL;
 		break;
 	}
+	trace_android_vh_syscall_prctl_finished(option, me);
 	return error;
 }
 
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 928798f8..21acf51 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -1850,6 +1850,15 @@
 		.mode		= 0644,
 		.proc_handler	= sched_rr_handler,
 	},
+#ifdef CONFIG_SMP
+	{
+		.procname	= "sched_pelt_multiplier",
+		.data		= &sysctl_sched_pelt_multiplier,
+		.maxlen		= sizeof(unsigned int),
+		.mode		= 0644,
+		.proc_handler	= sched_pelt_multiplier,
+	},
+#endif
 #ifdef CONFIG_UCLAMP_TASK
 	{
 		.procname	= "sched_util_clamp_min",
diff --git a/kernel/time/sched_clock.c b/kernel/time/sched_clock.c
index b1b9b12..6740dd0 100644
--- a/kernel/time/sched_clock.c
+++ b/kernel/time/sched_clock.c
@@ -16,6 +16,7 @@
 #include <linux/sched_clock.h>
 #include <linux/seqlock.h>
 #include <linux/bitops.h>
+#include <trace/hooks/epoch.h>
 
 #include "timekeeping.h"
 
@@ -149,8 +150,7 @@
 	return HRTIMER_RESTART;
 }
 
-void __init
-sched_clock_register(u64 (*read)(void), int bits, unsigned long rate)
+void sched_clock_register(u64 (*read)(void), int bits, unsigned long rate)
 {
 	u64 res, wrap, new_mask, new_epoch, cyc, ns;
 	u32 new_mult, new_shift;
@@ -224,6 +224,7 @@
 
 	pr_debug("Registered %pS as sched_clock source\n", read);
 }
+EXPORT_SYMBOL_GPL(sched_clock_register);
 
 void __init generic_sched_clock_init(void)
 {
@@ -270,6 +271,7 @@
 	update_sched_clock();
 	hrtimer_cancel(&sched_clock_timer);
 	rd->read_sched_clock = suspended_sched_clock_read;
+	trace_android_vh_show_suspend_epoch_val(rd->epoch_ns, rd->epoch_cyc);
 
 	return 0;
 }
@@ -281,6 +283,7 @@
 	rd->epoch_cyc = cd.actual_read_sched_clock();
 	hrtimer_start(&sched_clock_timer, cd.wrap_kt, HRTIMER_MODE_REL_HARD);
 	rd->read_sched_clock = cd.actual_read_sched_clock;
+	trace_android_vh_show_resume_epoch_val(rd->epoch_cyc);
 }
 
 static struct syscore_ops sched_clock_ops = {
diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c
index e9138cd..307406f 100644
--- a/kernel/time/tick-common.c
+++ b/kernel/time/tick-common.c
@@ -17,6 +17,7 @@
 #include <linux/sched.h>
 #include <linux/module.h>
 #include <trace/events/power.h>
+#include <trace/hooks/sched.h>
 
 #include <asm/irq_regs.h>
 
@@ -95,6 +96,7 @@
 		write_seqcount_end(&jiffies_seq);
 		raw_spin_unlock(&jiffies_lock);
 		update_wall_time();
+		trace_android_vh_jiffies_update(NULL);
 	}
 
 	update_process_times(user_mode(get_irq_regs()));
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index 7f5310d..9a97077 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -26,6 +26,7 @@
 #include <linux/posix-timers.h>
 #include <linux/context_tracking.h>
 #include <linux/mm.h>
+#include <trace/hooks/sched.h>
 
 #include <asm/irq_regs.h>
 
@@ -206,8 +207,10 @@
 #endif
 
 	/* Check, if the jiffies need an update */
-	if (tick_do_timer_cpu == cpu)
+	if (tick_do_timer_cpu == cpu) {
 		tick_do_update_jiffies64(now);
+		trace_android_vh_jiffies_update(NULL);
+	}
 
 	/*
 	 * If jiffies update stalled for too long (timekeeper in stop_machine()
@@ -1241,6 +1244,7 @@
 
 	return ktime_sub(next_event, now);
 }
+EXPORT_SYMBOL_GPL(tick_nohz_get_sleep_length);
 
 /**
  * tick_nohz_get_idle_calls_cpu - return the current idle calls counter value
@@ -1254,6 +1258,7 @@
 
 	return ts->idle_calls;
 }
+EXPORT_SYMBOL_GPL(tick_nohz_get_idle_calls_cpu);
 
 /**
  * tick_nohz_get_idle_calls - return the current idle calls counter value
diff --git a/kernel/time/time.c b/kernel/time/time.c
index 29923b2..ecc59b45f 100644
--- a/kernel/time/time.c
+++ b/kernel/time/time.c
@@ -686,6 +686,7 @@
 	return div_u64(x * 9, (9ull * NSEC_PER_SEC + (USER_HZ / 2)) / USER_HZ);
 #endif
 }
+EXPORT_SYMBOL_GPL(nsec_to_clock_t);
 
 u64 jiffies64_to_nsecs(u64 j)
 {
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index d921c1b..9540aea 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -24,6 +24,7 @@
 #include <linux/compiler.h>
 #include <linux/audit.h>
 #include <linux/random.h>
+#include <trace/hooks/timekeeping.h>
 
 #include "tick-internal.h"
 #include "ntp_internal.h"
@@ -1324,6 +1325,8 @@
 	write_seqcount_end(&tk_core.seq);
 	raw_spin_unlock_irqrestore(&timekeeper_lock, flags);
 
+	trace_android_rvh_tk_based_time_sync(tk);
+
 	/* Signal hrtimers about time change */
 	clock_was_set(CLOCK_SET_WALL);
 
diff --git a/kernel/time/timer.c b/kernel/time/timer.c
index 9dd2a39..8c62e38 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -55,6 +55,11 @@
 
 #define CREATE_TRACE_POINTS
 #include <trace/events/timer.h>
+#undef CREATE_TRACE_POINTS
+#include <trace/hooks/timer.h>
+
+EXPORT_TRACEPOINT_SYMBOL_GPL(hrtimer_expire_entry);
+EXPORT_TRACEPOINT_SYMBOL_GPL(hrtimer_expire_exit);
 
 __visible u64 jiffies_64 __cacheline_aligned_in_smp = INITIAL_JIFFIES;
 
@@ -502,6 +507,7 @@
 	 *
 	 * Round up with level granularity to prevent this.
 	 */
+	trace_android_vh_timer_calc_index(lvl, &expires);
 	expires = (expires + LVL_GRAN(lvl)) >> LVL_SHIFT(lvl);
 	*bucket_expiry = expires << LVL_SHIFT(lvl);
 	return LVL_OFFS(lvl) + (expires & LVL_MASK);
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 157a1d2..0aaff38 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -988,9 +988,8 @@
 		}
 	}
 
-	entry = tracefs_create_file("function_profile_enabled",
-				    TRACE_MODE_WRITE, d_tracer, NULL,
-				    &ftrace_profile_fops);
+	entry = tracefs_create_file("function_profile_enabled", 0644,
+				    d_tracer, NULL, &ftrace_profile_fops);
 	if (!entry)
 		pr_warn("Could not create tracefs 'function_profile_enabled' entry\n");
 }
@@ -6124,10 +6123,10 @@
 				struct dentry *parent)
 {
 
-	trace_create_file("set_ftrace_filter", TRACE_MODE_WRITE, parent,
+	trace_create_file("set_ftrace_filter", 0644, parent,
 			  ops, &ftrace_filter_fops);
 
-	trace_create_file("set_ftrace_notrace", TRACE_MODE_WRITE, parent,
+	trace_create_file("set_ftrace_notrace", 0644, parent,
 			  ops, &ftrace_notrace_fops);
 }
 
@@ -6154,19 +6153,19 @@
 static __init int ftrace_init_dyn_tracefs(struct dentry *d_tracer)
 {
 
-	trace_create_file("available_filter_functions", TRACE_MODE_READ,
+	trace_create_file("available_filter_functions", 0444,
 			d_tracer, NULL, &ftrace_avail_fops);
 
-	trace_create_file("enabled_functions", TRACE_MODE_READ,
+	trace_create_file("enabled_functions", 0444,
 			d_tracer, NULL, &ftrace_enabled_fops);
 
 	ftrace_create_filter_files(&global_ops, d_tracer);
 
 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
-	trace_create_file("set_graph_function", TRACE_MODE_WRITE, d_tracer,
+	trace_create_file("set_graph_function", 0644, d_tracer,
 				    NULL,
 				    &ftrace_graph_fops);
-	trace_create_file("set_graph_notrace", TRACE_MODE_WRITE, d_tracer,
+	trace_create_file("set_graph_notrace", 0644, d_tracer,
 				    NULL,
 				    &ftrace_graph_notrace_fops);
 #endif /* CONFIG_FUNCTION_GRAPH_TRACER */
@@ -7520,10 +7519,10 @@
 
 void ftrace_init_tracefs(struct trace_array *tr, struct dentry *d_tracer)
 {
-	trace_create_file("set_ftrace_pid", TRACE_MODE_WRITE, d_tracer,
+	trace_create_file("set_ftrace_pid", 0644, d_tracer,
 			    tr, &ftrace_pid_fops);
-	trace_create_file("set_ftrace_notrace_pid", TRACE_MODE_WRITE,
-			  d_tracer, tr, &ftrace_no_pid_fops);
+	trace_create_file("set_ftrace_notrace_pid", 0644, d_tracer,
+			    tr, &ftrace_no_pid_fops);
 }
 
 void __init ftrace_init_tracefs_toplevel(struct trace_array *tr,
diff --git a/kernel/trace/power-traces.c b/kernel/trace/power-traces.c
index 21bb161..3ca551c 100644
--- a/kernel/trace/power-traces.c
+++ b/kernel/trace/power-traces.c
@@ -18,4 +18,6 @@
 EXPORT_TRACEPOINT_SYMBOL_GPL(cpu_idle);
 EXPORT_TRACEPOINT_SYMBOL_GPL(cpu_frequency);
 EXPORT_TRACEPOINT_SYMBOL_GPL(powernv_throttle);
-
+EXPORT_TRACEPOINT_SYMBOL_GPL(device_pm_callback_start);
+EXPORT_TRACEPOINT_SYMBOL_GPL(device_pm_callback_end);
+EXPORT_TRACEPOINT_SYMBOL_GPL(clock_set_rate);
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 8769cd1..83316bd 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -49,6 +49,7 @@
 #include <linux/fsnotify.h>
 #include <linux/irq_work.h>
 #include <linux/workqueue.h>
+#include <trace/hooks/ftrace_dump.h>
 
 #include "trace.h"
 #include "trace_output.h"
@@ -1714,8 +1715,7 @@
 {
 	INIT_WORK(&tr->fsnotify_work, latency_fsnotify_workfn);
 	init_irq_work(&tr->fsnotify_irqwork, latency_fsnotify_workfn_irq);
-	tr->d_max_latency = trace_create_file("tracing_max_latency",
-					      TRACE_MODE_WRITE,
+	tr->d_max_latency = trace_create_file("tracing_max_latency", 0644,
 					      d_tracer, &tr->max_latency,
 					      &tracing_max_lat_fops);
 }
@@ -1748,8 +1748,8 @@
 #else /* !LATENCY_FS_NOTIFY */
 
 #define trace_create_maxlat_file(tr, d_tracer)				\
-	trace_create_file("tracing_max_latency", TRACE_MODE_WRITE,	\
-			  d_tracer, &tr->max_latency, &tracing_max_lat_fops)
+	trace_create_file("tracing_max_latency", 0644, d_tracer,	\
+			  &tr->max_latency, &tracing_max_lat_fops)
 
 #endif
 
@@ -5678,6 +5678,7 @@
 #ifdef CONFIG_HIST_TRIGGERS
 	"      hist trigger\t- If set, event hits are aggregated into a hash table\n"
 	"\t    Format: hist:keys=<field1[,field2,...]>\n"
+	"\t            [:<var1>=<field|var_ref|numeric_literal>[,<var2>=...]]\n"
 	"\t            [:values=<field1[,field2,...]>]\n"
 	"\t            [:sort=<field1[,field2,...]>]\n"
 	"\t            [:size=#entries]\n"
@@ -5689,6 +5690,16 @@
 	"\t            common_timestamp - to record current timestamp\n"
 	"\t            common_cpu - to record the CPU the event happened on\n"
 	"\n"
+	"\t    A hist trigger variable can be:\n"
+	"\t        - a reference to a field e.g. x=current_timestamp,\n"
+	"\t        - a reference to another variable e.g. y=$x,\n"
+	"\t        - a numeric literal: e.g. ms_per_sec=1000,\n"
+	"\t        - an arithmetic expression: e.g. time_secs=current_timestamp/1000\n"
+	"\n"
+	"\t    hist trigger aritmethic expressions support addition(+), subtraction(-),\n"
+	"\t    multiplication(*) and division(/) operators. An operand can be either a\n"
+	"\t    variable reference, field or numeric literal.\n"
+	"\n"
 	"\t    When a matching event is hit, an entry is added to a hash\n"
 	"\t    table using the key(s) and value(s) named, and the value of a\n"
 	"\t    sum called 'hitcount' is incremented.  Keys and values\n"
@@ -6131,7 +6142,7 @@
 
 static void trace_create_eval_file(struct dentry *d_tracer)
 {
-	trace_create_file("eval_map", TRACE_MODE_READ, d_tracer,
+	trace_create_file("eval_map", 0444, d_tracer,
 			  NULL, &tracing_eval_map_fops);
 }
 
@@ -8165,12 +8176,6 @@
 
 	__trace_array_put(iter->tr);
 
-	iter->wait_index++;
-	/* Make sure the waiters see the new wait_index */
-	smp_wmb();
-
-	ring_buffer_wake_waiters(iter->array_buffer->buffer, iter->cpu_file);
-
 	if (info->spare)
 		ring_buffer_free_read_page(iter->array_buffer->buffer,
 					   info->spare_cpu, info->spare);
@@ -8324,8 +8329,6 @@
 
 	/* did we read anything? */
 	if (!spd.nr_pages) {
-		long wait_index;
-
 		if (ret)
 			goto out;
 
@@ -8333,8 +8336,6 @@
 		if ((file->f_flags & O_NONBLOCK) || (flags & SPLICE_F_NONBLOCK))
 			goto out;
 
-		wait_index = READ_ONCE(iter->wait_index);
-
 		ret = wait_on_pipe(iter, iter->tr->buffer_percent);
 		if (ret)
 			goto out;
@@ -8343,11 +8344,6 @@
 		if (!tracer_tracing_is_on(iter->tr))
 			goto out;
 
-		/* Make sure we see the new wait_index */
-		smp_rmb();
-		if (wait_index != iter->wait_index)
-			goto out;
-
 		goto again;
 	}
 
@@ -8358,34 +8354,12 @@
 	return ret;
 }
 
-/* An ioctl call with cmd 0 to the ring buffer file will wake up all waiters */
-static long tracing_buffers_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
-{
-	struct ftrace_buffer_info *info = file->private_data;
-	struct trace_iterator *iter = &info->iter;
-
-	if (cmd)
-		return -ENOIOCTLCMD;
-
-	mutex_lock(&trace_types_lock);
-
-	iter->wait_index++;
-	/* Make sure the waiters see the new wait_index */
-	smp_wmb();
-
-	ring_buffer_wake_waiters(iter->array_buffer->buffer, iter->cpu_file);
-
-	mutex_unlock(&trace_types_lock);
-	return 0;
-}
-
 static const struct file_operations tracing_buffers_fops = {
 	.open		= tracing_buffers_open,
 	.read		= tracing_buffers_read,
 	.poll		= tracing_buffers_poll,
 	.release	= tracing_buffers_release,
 	.splice_read	= tracing_buffers_splice_read,
-	.unlocked_ioctl = tracing_buffers_ioctl,
 	.llseek		= no_llseek,
 };
 
@@ -8711,27 +8685,27 @@
 	}
 
 	/* per cpu trace_pipe */
-	trace_create_cpu_file("trace_pipe", TRACE_MODE_READ, d_cpu,
+	trace_create_cpu_file("trace_pipe", 0444, d_cpu,
 				tr, cpu, &tracing_pipe_fops);
 
 	/* per cpu trace */
-	trace_create_cpu_file("trace", TRACE_MODE_WRITE, d_cpu,
+	trace_create_cpu_file("trace", 0644, d_cpu,
 				tr, cpu, &tracing_fops);
 
-	trace_create_cpu_file("trace_pipe_raw", TRACE_MODE_READ, d_cpu,
+	trace_create_cpu_file("trace_pipe_raw", 0444, d_cpu,
 				tr, cpu, &tracing_buffers_fops);
 
-	trace_create_cpu_file("stats", TRACE_MODE_READ, d_cpu,
+	trace_create_cpu_file("stats", 0444, d_cpu,
 				tr, cpu, &tracing_stats_fops);
 
-	trace_create_cpu_file("buffer_size_kb", TRACE_MODE_READ, d_cpu,
+	trace_create_cpu_file("buffer_size_kb", 0444, d_cpu,
 				tr, cpu, &tracing_entries_fops);
 
 #ifdef CONFIG_TRACER_SNAPSHOT
-	trace_create_cpu_file("snapshot", TRACE_MODE_WRITE, d_cpu,
+	trace_create_cpu_file("snapshot", 0644, d_cpu,
 				tr, cpu, &snapshot_fops);
 
-	trace_create_cpu_file("snapshot_raw", TRACE_MODE_READ, d_cpu,
+	trace_create_cpu_file("snapshot_raw", 0444, d_cpu,
 				tr, cpu, &snapshot_raw_fops);
 #endif
 }
@@ -8937,8 +8911,8 @@
 	topt->opt = opt;
 	topt->tr = tr;
 
-	topt->entry = trace_create_file(opt->name, TRACE_MODE_WRITE,
-					t_options, topt, &trace_options_fops);
+	topt->entry = trace_create_file(opt->name, 0644, t_options, topt,
+				    &trace_options_fops);
 
 }
 
@@ -9013,7 +8987,7 @@
 	if (!t_options)
 		return NULL;
 
-	return trace_create_file(option, TRACE_MODE_WRITE, t_options,
+	return trace_create_file(option, 0644, t_options,
 				 (void *)&tr->trace_flags_index[index],
 				 &trace_options_core_fops);
 }
@@ -9539,28 +9513,28 @@
 	struct trace_event_file *file;
 	int cpu;
 
-	trace_create_file("available_tracers", TRACE_MODE_READ, d_tracer,
+	trace_create_file("available_tracers", 0444, d_tracer,
 			tr, &show_traces_fops);
 
-	trace_create_file("current_tracer", TRACE_MODE_WRITE, d_tracer,
+	trace_create_file("current_tracer", 0644, d_tracer,
 			tr, &set_tracer_fops);
 
-	trace_create_file("tracing_cpumask", TRACE_MODE_WRITE, d_tracer,
+	trace_create_file("tracing_cpumask", 0644, d_tracer,
 			  tr, &tracing_cpumask_fops);
 
-	trace_create_file("trace_options", TRACE_MODE_WRITE, d_tracer,
+	trace_create_file("trace_options", 0644, d_tracer,
 			  tr, &tracing_iter_fops);
 
-	trace_create_file("trace", TRACE_MODE_WRITE, d_tracer,
+	trace_create_file("trace", 0644, d_tracer,
 			  tr, &tracing_fops);
 
-	trace_create_file("trace_pipe", TRACE_MODE_READ, d_tracer,
+	trace_create_file("trace_pipe", 0444, d_tracer,
 			  tr, &tracing_pipe_fops);
 
-	trace_create_file("buffer_size_kb", TRACE_MODE_WRITE, d_tracer,
+	trace_create_file("buffer_size_kb", 0644, d_tracer,
 			  tr, &tracing_entries_fops);
 
-	trace_create_file("buffer_total_size_kb", TRACE_MODE_READ, d_tracer,
+	trace_create_file("buffer_total_size_kb", 0444, d_tracer,
 			  tr, &tracing_total_entries_fops);
 
 	trace_create_file("free_buffer", 0200, d_tracer,
@@ -9571,25 +9545,25 @@
 
 	file = __find_event_file(tr, "ftrace", "print");
 	if (file && file->dir)
-		trace_create_file("trigger", TRACE_MODE_WRITE, file->dir,
-				  file, &event_trigger_fops);
+		trace_create_file("trigger", 0644, file->dir, file,
+				  &event_trigger_fops);
 	tr->trace_marker_file = file;
 
 	trace_create_file("trace_marker_raw", 0220, d_tracer,
 			  tr, &tracing_mark_raw_fops);
 
-	trace_create_file("trace_clock", TRACE_MODE_WRITE, d_tracer, tr,
+	trace_create_file("trace_clock", 0644, d_tracer, tr,
 			  &trace_clock_fops);
 
-	trace_create_file("tracing_on", TRACE_MODE_WRITE, d_tracer,
+	trace_create_file("tracing_on", 0644, d_tracer,
 			  tr, &rb_simple_fops);
 
-	trace_create_file("timestamp_mode", TRACE_MODE_READ, d_tracer, tr,
+	trace_create_file("timestamp_mode", 0444, d_tracer, tr,
 			  &trace_time_stamp_mode_fops);
 
 	tr->buffer_percent = 50;
 
-	trace_create_file("buffer_percent", TRACE_MODE_WRITE, d_tracer,
+	trace_create_file("buffer_percent", 0640, d_tracer,
 			tr, &buffer_percent_fops);
 
 	create_trace_options_dir(tr);
@@ -9602,11 +9576,11 @@
 		MEM_FAIL(1, "Could not allocate function filter files");
 
 #ifdef CONFIG_TRACER_SNAPSHOT
-	trace_create_file("snapshot", TRACE_MODE_WRITE, d_tracer,
+	trace_create_file("snapshot", 0644, d_tracer,
 			  tr, &snapshot_fops);
 #endif
 
-	trace_create_file("error_log", TRACE_MODE_WRITE, d_tracer,
+	trace_create_file("error_log", 0644, d_tracer,
 			  tr, &tracing_err_log_fops);
 
 	for_each_tracing_cpu(cpu)
@@ -9799,19 +9773,19 @@
 	init_tracer_tracefs(&global_trace, NULL);
 	ftrace_init_tracefs_toplevel(&global_trace, NULL);
 
-	trace_create_file("tracing_thresh", TRACE_MODE_WRITE, NULL,
+	trace_create_file("tracing_thresh", 0644, NULL,
 			&global_trace, &tracing_thresh_fops);
 
-	trace_create_file("README", TRACE_MODE_READ, NULL,
+	trace_create_file("README", 0444, NULL,
 			NULL, &tracing_readme_fops);
 
-	trace_create_file("saved_cmdlines", TRACE_MODE_READ, NULL,
+	trace_create_file("saved_cmdlines", 0444, NULL,
 			NULL, &tracing_saved_cmdlines_fops);
 
-	trace_create_file("saved_cmdlines_size", TRACE_MODE_WRITE, NULL,
+	trace_create_file("saved_cmdlines_size", 0644, NULL,
 			  NULL, &tracing_saved_cmdlines_size_fops);
 
-	trace_create_file("saved_tgids", TRACE_MODE_READ, NULL,
+	trace_create_file("saved_tgids", 0444, NULL,
 			NULL, &tracing_saved_tgids_fops);
 
 	trace_eval_init();
@@ -9823,7 +9797,7 @@
 #endif
 
 #ifdef CONFIG_DYNAMIC_FTRACE
-	trace_create_file("dyn_ftrace_total_info", TRACE_MODE_READ, NULL,
+	trace_create_file("dyn_ftrace_total_info", 0444, NULL,
 			NULL, &tracing_dyn_info_fops);
 #endif
 
@@ -9839,8 +9813,17 @@
 static int trace_panic_handler(struct notifier_block *this,
 			       unsigned long event, void *unused)
 {
+	bool ftrace_check = false;
+
+	trace_android_vh_ftrace_oops_enter(&ftrace_check);
+
+	if (ftrace_check)
+		return NOTIFY_OK;
+
 	if (ftrace_dump_on_oops)
 		ftrace_dump(ftrace_dump_on_oops);
+
+	trace_android_vh_ftrace_oops_exit(&ftrace_check);
 	return NOTIFY_OK;
 }
 
@@ -9854,6 +9837,13 @@
 			     unsigned long val,
 			     void *data)
 {
+	bool ftrace_check = false;
+
+	trace_android_vh_ftrace_oops_enter(&ftrace_check);
+
+	if (ftrace_check)
+		return NOTIFY_OK;
+
 	switch (val) {
 	case DIE_OOPS:
 		if (ftrace_dump_on_oops)
@@ -9862,6 +9852,8 @@
 	default:
 		break;
 	}
+
+	trace_android_vh_ftrace_oops_exit(&ftrace_check);
 	return NOTIFY_OK;
 }
 
@@ -9886,6 +9878,8 @@
 void
 trace_printk_seq(struct trace_seq *s)
 {
+	bool dump_printk = true;
+
 	/* Probably should print a warning here. */
 	if (s->seq.len >= TRACE_MAX_PRINT)
 		s->seq.len = TRACE_MAX_PRINT;
@@ -9901,7 +9895,9 @@
 	/* should be zero ended, but we are paranoid. */
 	s->buffer[s->seq.len] = 0;
 
-	printk(KERN_TRACE "%s", s->buffer);
+	trace_android_vh_ftrace_dump_buffer(s, &dump_printk);
+	if (dump_printk)
+		printk(KERN_TRACE "%s", s->buffer);
 
 	trace_seq_init(s);
 }
@@ -9940,6 +9936,8 @@
 	unsigned int old_userobj;
 	unsigned long flags;
 	int cnt = 0, cpu;
+	bool ftrace_check = false;
+	unsigned long size;
 
 	/* Only allow one dump user at a time. */
 	if (atomic_inc_return(&dump_running) != 1) {
@@ -9964,6 +9962,8 @@
 
 	for_each_tracing_cpu(cpu) {
 		atomic_inc(&per_cpu_ptr(iter.array_buffer->data, cpu)->disabled);
+		size = ring_buffer_size(iter.array_buffer->buffer, cpu);
+		trace_android_vh_ftrace_size_check(size, &ftrace_check);
 	}
 
 	old_userobj = tr->trace_flags & TRACE_ITER_SYM_USEROBJ;
@@ -9971,6 +9971,9 @@
 	/* don't look at user memory in panic mode */
 	tr->trace_flags &= ~TRACE_ITER_SYM_USEROBJ;
 
+	if (ftrace_check)
+		goto out_enable;
+
 	switch (oops_dump_mode) {
 	case DUMP_ALL:
 		iter.cpu_file = RING_BUFFER_ALL_CPUS;
@@ -10001,6 +10004,7 @@
 	 */
 
 	while (!trace_empty(&iter)) {
+		ftrace_check = true;
 
 		if (!cnt)
 			printk(KERN_TRACE "---------------------------------\n");
@@ -10008,7 +10012,9 @@
 		cnt++;
 
 		trace_iterator_reset(&iter);
-		iter.iter_flags |= TRACE_FILE_LAT_FMT;
+		trace_android_vh_ftrace_format_check(&ftrace_check);
+		if (ftrace_check)
+			iter.iter_flags |= TRACE_FILE_LAT_FMT;
 
 		if (trace_find_next_entry_inc(&iter) != NULL) {
 			int ret;
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
index 4305807..c392b44 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -29,9 +29,6 @@
 #include <asm/syscall.h>	/* some archs define it here */
 #endif
 
-#define TRACE_MODE_WRITE	0640
-#define TRACE_MODE_READ		0440
-
 enum trace_type {
 	__TRACE_FIRST_TYPE = 0,
 
diff --git a/kernel/trace/trace_dynevent.c b/kernel/trace/trace_dynevent.c
index d4f7137..16c73d23 100644
--- a/kernel/trace/trace_dynevent.c
+++ b/kernel/trace/trace_dynevent.c
@@ -264,7 +264,7 @@
 	if (ret)
 		return 0;
 
-	entry = tracefs_create_file("dynamic_events", TRACE_MODE_WRITE, NULL,
+	entry = tracefs_create_file("dynamic_events", 0644, NULL,
 				    NULL, &dynamic_events_ops);
 
 	/* Event list interface */
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index 2a2a599..81ae971 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -2322,8 +2322,7 @@
 	/* the ftrace system is special, do not create enable or filter files */
 	if (strcmp(name, "ftrace") != 0) {
 
-		entry = tracefs_create_file("filter", TRACE_MODE_WRITE,
-					    dir->entry, dir,
+		entry = tracefs_create_file("filter", 0644, dir->entry, dir,
 					    &ftrace_subsystem_filter_fops);
 		if (!entry) {
 			kfree(system->filter);
@@ -2331,7 +2330,7 @@
 			pr_warn("Could not create tracefs '%s/filter' entry\n", name);
 		}
 
-		trace_create_file("enable", TRACE_MODE_WRITE, dir->entry, dir,
+		trace_create_file("enable", 0644, dir->entry, dir,
 				  &ftrace_system_enable_fops);
 	}
 
@@ -2413,12 +2412,12 @@
 	}
 
 	if (call->class->reg && !(call->flags & TRACE_EVENT_FL_IGNORE_ENABLE))
-		trace_create_file("enable", TRACE_MODE_WRITE, file->dir, file,
+		trace_create_file("enable", 0644, file->dir, file,
 				  &ftrace_enable_fops);
 
 #ifdef CONFIG_PERF_EVENTS
 	if (call->event.type && call->class->reg)
-		trace_create_file("id", TRACE_MODE_READ, file->dir,
+		trace_create_file("id", 0444, file->dir,
 				  (void *)(long)call->event.type,
 				  &ftrace_event_id_fops);
 #endif
@@ -2434,22 +2433,22 @@
 	 * triggers or filters.
 	 */
 	if (!(call->flags & TRACE_EVENT_FL_IGNORE_ENABLE)) {
-		trace_create_file("filter", TRACE_MODE_WRITE, file->dir,
-				  file, &ftrace_event_filter_fops);
+		trace_create_file("filter", 0644, file->dir, file,
+				  &ftrace_event_filter_fops);
 
-		trace_create_file("trigger", TRACE_MODE_WRITE, file->dir,
-				  file, &event_trigger_fops);
+		trace_create_file("trigger", 0644, file->dir, file,
+				  &event_trigger_fops);
 	}
 
 #ifdef CONFIG_HIST_TRIGGERS
-	trace_create_file("hist", TRACE_MODE_READ, file->dir, file,
+	trace_create_file("hist", 0444, file->dir, file,
 			  &event_hist_fops);
 #endif
 #ifdef CONFIG_HIST_TRIGGERS_DEBUG
-	trace_create_file("hist_debug", TRACE_MODE_READ, file->dir, file,
+	trace_create_file("hist_debug", 0444, file->dir, file,
 			  &event_hist_debug_fops);
 #endif
-	trace_create_file("format", TRACE_MODE_READ, file->dir, call,
+	trace_create_file("format", 0444, file->dir, call,
 			  &ftrace_event_format_fops);
 
 #ifdef CONFIG_TRACE_EVENT_INJECT
@@ -3543,7 +3542,7 @@
 	struct dentry *d_events;
 	struct dentry *entry;
 
-	entry = tracefs_create_file("set_event", TRACE_MODE_WRITE, parent,
+	entry = tracefs_create_file("set_event", 0644, parent,
 				    tr, &ftrace_set_event_fops);
 	if (!entry) {
 		pr_warn("Could not create tracefs 'set_event' entry\n");
@@ -3556,7 +3555,7 @@
 		return -ENOMEM;
 	}
 
-	entry = trace_create_file("enable", TRACE_MODE_WRITE, d_events,
+	entry = trace_create_file("enable", 0644, d_events,
 				  tr, &ftrace_tr_enable_fops);
 	if (!entry) {
 		pr_warn("Could not create tracefs 'enable' entry\n");
@@ -3565,25 +3564,24 @@
 
 	/* There are not as crucial, just warn if they are not created */
 
-	entry = tracefs_create_file("set_event_pid", TRACE_MODE_WRITE, parent,
+	entry = tracefs_create_file("set_event_pid", 0644, parent,
 				    tr, &ftrace_set_event_pid_fops);
 	if (!entry)
 		pr_warn("Could not create tracefs 'set_event_pid' entry\n");
 
-	entry = tracefs_create_file("set_event_notrace_pid",
-				    TRACE_MODE_WRITE, parent, tr,
-				    &ftrace_set_event_notrace_pid_fops);
+	entry = tracefs_create_file("set_event_notrace_pid", 0644, parent,
+				    tr, &ftrace_set_event_notrace_pid_fops);
 	if (!entry)
 		pr_warn("Could not create tracefs 'set_event_notrace_pid' entry\n");
 
 	/* ring buffer internal formats */
-	entry = trace_create_file("header_page", TRACE_MODE_READ, d_events,
+	entry = trace_create_file("header_page", 0444, d_events,
 				  ring_buffer_print_page_header,
 				  &ftrace_show_header_fops);
 	if (!entry)
 		pr_warn("Could not create tracefs 'header_page' entry\n");
 
-	entry = trace_create_file("header_event", TRACE_MODE_READ, d_events,
+	entry = trace_create_file("header_event", 0444, d_events,
 				  ring_buffer_print_entry_header,
 				  &ftrace_show_header_fops);
 	if (!entry)
@@ -3800,8 +3798,8 @@
 	if (!tr)
 		return -ENODEV;
 
-	entry = tracefs_create_file("available_events", TRACE_MODE_READ,
-				    NULL, tr, &ftrace_avail_fops);
+	entry = tracefs_create_file("available_events", 0444, NULL,
+				    tr, &ftrace_avail_fops);
 	if (!entry)
 		pr_warn("Could not create tracefs 'available_events' entry\n");
 
diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c
index c32a53f..6faba2f 100644
--- a/kernel/trace/trace_events_hist.c
+++ b/kernel/trace/trace_events_hist.c
@@ -66,7 +66,10 @@
 	C(EMPTY_SORT_FIELD,	"Empty sort field"),			\
 	C(TOO_MANY_SORT_FIELDS,	"Too many sort fields (Max = 2)"),	\
 	C(INVALID_SORT_FIELD,	"Sort field must be a key or a val"),	\
-	C(INVALID_STR_OPERAND,	"String type can not be an operand in expression"),
+	C(INVALID_STR_OPERAND,	"String type can not be an operand in expression"), \
+	C(EXPECT_NUMBER,	"Expecting numeric literal"),		\
+	C(UNARY_MINUS_SUBEXPR,	"Unary minus not supported in sub-expressions"), \
+	C(DIVISION_BY_ZERO,	"Division by zero"),
 
 #undef C
 #define C(a, b)		HIST_ERR_##a
@@ -89,12 +92,16 @@
 #define HIST_FIELD_OPERANDS_MAX	2
 #define HIST_FIELDS_MAX		(TRACING_MAP_FIELDS_MAX + TRACING_MAP_VARS_MAX)
 #define HIST_ACTIONS_MAX	8
+#define HIST_CONST_DIGITS_MAX	21
+#define HIST_DIV_SHIFT		20  /* For optimizing division by constants */
 
 enum field_op_id {
 	FIELD_OP_NONE,
 	FIELD_OP_PLUS,
 	FIELD_OP_MINUS,
 	FIELD_OP_UNARY_MINUS,
+	FIELD_OP_DIV,
+	FIELD_OP_MULT,
 };
 
 /*
@@ -152,6 +159,11 @@
 	bool                            read_once;
 
 	unsigned int			var_str_idx;
+
+	/* Numeric literals are represented as u64 */
+	u64				constant;
+	/* Used to optimize division by constants */
+	u64				div_multiplier;
 };
 
 static u64 hist_field_none(struct hist_field *field,
@@ -163,6 +175,15 @@
 	return 0;
 }
 
+static u64 hist_field_const(struct hist_field *field,
+			   struct tracing_map_elt *elt,
+			   struct trace_buffer *buffer,
+			   struct ring_buffer_event *rbe,
+			   void *event)
+{
+	return field->constant;
+}
+
 static u64 hist_field_counter(struct hist_field *field,
 			      struct tracing_map_elt *elt,
 			      struct trace_buffer *buffer,
@@ -271,6 +292,106 @@
 	return val1 - val2;
 }
 
+static u64 hist_field_div(struct hist_field *hist_field,
+			   struct tracing_map_elt *elt,
+			   struct trace_buffer *buffer,
+			   struct ring_buffer_event *rbe,
+			   void *event)
+{
+	struct hist_field *operand1 = hist_field->operands[0];
+	struct hist_field *operand2 = hist_field->operands[1];
+
+	u64 val1 = operand1->fn(operand1, elt, buffer, rbe, event);
+	u64 val2 = operand2->fn(operand2, elt, buffer, rbe, event);
+
+	/* Return -1 for the undefined case */
+	if (!val2)
+		return -1;
+
+	/* Use shift if the divisor is a power of 2 */
+	if (!(val2 & (val2 - 1)))
+		return val1 >> __ffs64(val2);
+
+	return div64_u64(val1, val2);
+}
+
+static u64 div_by_power_of_two(struct hist_field *hist_field,
+				struct tracing_map_elt *elt,
+				struct trace_buffer *buffer,
+				struct ring_buffer_event *rbe,
+				void *event)
+{
+	struct hist_field *operand1 = hist_field->operands[0];
+	struct hist_field *operand2 = hist_field->operands[1];
+
+	u64 val1 = operand1->fn(operand1, elt, buffer, rbe, event);
+
+	return val1 >> __ffs64(operand2->constant);
+}
+
+static u64 div_by_not_power_of_two(struct hist_field *hist_field,
+				struct tracing_map_elt *elt,
+				struct trace_buffer *buffer,
+				struct ring_buffer_event *rbe,
+				void *event)
+{
+	struct hist_field *operand1 = hist_field->operands[0];
+	struct hist_field *operand2 = hist_field->operands[1];
+
+	u64 val1 = operand1->fn(operand1, elt, buffer, rbe, event);
+
+	return div64_u64(val1, operand2->constant);
+}
+
+static u64 div_by_mult_and_shift(struct hist_field *hist_field,
+				struct tracing_map_elt *elt,
+				struct trace_buffer *buffer,
+				struct ring_buffer_event *rbe,
+				void *event)
+{
+	struct hist_field *operand1 = hist_field->operands[0];
+	struct hist_field *operand2 = hist_field->operands[1];
+
+	u64 val1 = operand1->fn(operand1, elt, buffer, rbe, event);
+
+	/*
+	 * If the divisor is a constant, do a multiplication and shift instead.
+	 *
+	 * Choose Z = some power of 2. If Y <= Z, then:
+	 *     X / Y = (X * (Z / Y)) / Z
+	 *
+	 * (Z / Y) is a constant (mult) which is calculated at parse time, so:
+	 *     X / Y = (X * mult) / Z
+	 *
+	 * The division by Z can be replaced by a shift since Z is a power of 2:
+	 *     X / Y = (X * mult) >> HIST_DIV_SHIFT
+	 *
+	 * As long, as X < Z the results will not be off by more than 1.
+	 */
+	if (val1 < (1 << HIST_DIV_SHIFT)) {
+		u64 mult = operand2->div_multiplier;
+
+		return (val1 * mult + ((1 << HIST_DIV_SHIFT) - 1)) >> HIST_DIV_SHIFT;
+	}
+
+	return div64_u64(val1, operand2->constant);
+}
+
+static u64 hist_field_mult(struct hist_field *hist_field,
+			   struct tracing_map_elt *elt,
+			   struct trace_buffer *buffer,
+			   struct ring_buffer_event *rbe,
+			   void *event)
+{
+	struct hist_field *operand1 = hist_field->operands[0];
+	struct hist_field *operand2 = hist_field->operands[1];
+
+	u64 val1 = operand1->fn(operand1, elt, buffer, rbe, event);
+	u64 val2 = operand2->fn(operand2, elt, buffer, rbe, event);
+
+	return val1 * val2;
+}
+
 static u64 hist_field_unary_minus(struct hist_field *hist_field,
 				  struct tracing_map_elt *elt,
 				  struct trace_buffer *buffer,
@@ -337,6 +458,7 @@
 	HIST_FIELD_FL_CPU		= 1 << 15,
 	HIST_FIELD_FL_ALIAS		= 1 << 16,
 	HIST_FIELD_FL_BUCKET		= 1 << 17,
+	HIST_FIELD_FL_CONST		= 1 << 18,
 };
 
 struct var_defs {
@@ -513,6 +635,25 @@
 	void			*key;
 };
 
+/*
+ * Returns the specific division function to use if the divisor
+ * is constant. This avoids extra branches when the trigger is hit.
+ */
+static hist_field_fn_t hist_field_get_div_fn(struct hist_field *divisor)
+{
+	u64 div = divisor->constant;
+
+	if (!(div & (div - 1)))
+		return div_by_power_of_two;
+
+	/* If the divisor is too large, do a regular division */
+	if (div > (1 << HIST_DIV_SHIFT))
+		return div_by_not_power_of_two;
+
+	divisor->div_multiplier = div64_u64((u64)(1 << HIST_DIV_SHIFT), div);
+	return div_by_mult_and_shift;
+}
+
 static void track_data_free(struct track_data *track_data)
 {
 	struct hist_elt_data *elt_data;
@@ -1515,6 +1656,12 @@
 {
 	if (field->flags & HIST_FIELD_FL_VAR_REF)
 		strcat(expr, "$");
+	else if (field->flags & HIST_FIELD_FL_CONST) {
+		char str[HIST_CONST_DIGITS_MAX];
+
+		snprintf(str, HIST_CONST_DIGITS_MAX, "%llu", field->constant);
+		strcat(expr, str);
+	}
 
 	strcat(expr, hist_field_name(field, 0));
 
@@ -1570,6 +1717,12 @@
 	case FIELD_OP_PLUS:
 		strcat(expr, "+");
 		break;
+	case FIELD_OP_DIV:
+		strcat(expr, "/");
+		break;
+	case FIELD_OP_MULT:
+		strcat(expr, "*");
+		break;
 	default:
 		kfree(expr);
 		return NULL;
@@ -1580,34 +1733,92 @@
 	return expr;
 }
 
-static int contains_operator(char *str)
+/*
+ * If field_op != FIELD_OP_NONE, *sep points to the root operator
+ * of the expression tree to be evaluated.
+ */
+static int contains_operator(char *str, char **sep)
 {
 	enum field_op_id field_op = FIELD_OP_NONE;
-	char *op;
+	char *minus_op, *plus_op, *div_op, *mult_op;
 
-	op = strpbrk(str, "+-");
-	if (!op)
-		return FIELD_OP_NONE;
 
-	switch (*op) {
-	case '-':
+	/*
+	 * Report the last occurrence of the operators first, so that the
+	 * expression is evaluated left to right. This is important since
+	 * subtraction and division are not associative.
+	 *
+	 *	e.g
+	 *		64/8/4/2 is 1, i.e 64/8/4/2 = ((64/8)/4)/2
+	 *		14-7-5-2 is 0, i.e 14-7-5-2 = ((14-7)-5)-2
+	 */
+
+	/*
+	 * First, find lower precedence addition and subtraction
+	 * since the expression will be evaluated recursively.
+	 */
+	minus_op = strrchr(str, '-');
+	if (minus_op) {
 		/*
-		 * Unfortunately, the modifier ".sym-offset"
-		 * can confuse things.
+		 * Unary minus is not supported in sub-expressions. If
+		 * present, it is always the next root operator.
 		 */
-		if (op - str >= 4 && !strncmp(op - 4, ".sym-offset", 11))
-			return FIELD_OP_NONE;
-
-		if (*str == '-')
+		if (minus_op == str) {
 			field_op = FIELD_OP_UNARY_MINUS;
-		else
-			field_op = FIELD_OP_MINUS;
-		break;
-	case '+':
-		field_op = FIELD_OP_PLUS;
-		break;
-	default:
-		break;
+			goto out;
+		}
+
+		field_op = FIELD_OP_MINUS;
+	}
+
+	plus_op = strrchr(str, '+');
+	if (plus_op || minus_op) {
+		/*
+		 * For operators of the same precedence use to rightmost as the
+		 * root, so that the expression is evaluated left to right.
+		 */
+		if (plus_op > minus_op)
+			field_op = FIELD_OP_PLUS;
+		goto out;
+	}
+
+	/*
+	 * Multiplication and division have higher precedence than addition and
+	 * subtraction.
+	 */
+	div_op = strrchr(str, '/');
+	if (div_op)
+		field_op = FIELD_OP_DIV;
+
+	mult_op = strrchr(str, '*');
+	/*
+	 * For operators of the same precedence use to rightmost as the
+	 * root, so that the expression is evaluated left to right.
+	 */
+	if (mult_op > div_op)
+		field_op = FIELD_OP_MULT;
+
+out:
+	if (sep) {
+		switch (field_op) {
+		case FIELD_OP_UNARY_MINUS:
+		case FIELD_OP_MINUS:
+			*sep = minus_op;
+			break;
+		case FIELD_OP_PLUS:
+			*sep = plus_op;
+			break;
+		case FIELD_OP_DIV:
+			*sep = div_op;
+			break;
+		case FIELD_OP_MULT:
+			*sep = mult_op;
+			break;
+		case FIELD_OP_NONE:
+		default:
+			*sep = NULL;
+			break;
+		}
 	}
 
 	return field_op;
@@ -1688,6 +1899,15 @@
 		goto out;
 	}
 
+	if (flags & HIST_FIELD_FL_CONST) {
+		hist_field->fn = hist_field_const;
+		hist_field->size = sizeof(u64);
+		hist_field->type = kstrdup("u64", GFP_KERNEL);
+		if (!hist_field->type)
+			goto free;
+		goto out;
+	}
+
 	if (flags & HIST_FIELD_FL_STACKTRACE) {
 		hist_field->fn = hist_field_none;
 		goto out;
@@ -1932,7 +2152,7 @@
 
 		if (strcmp(var_name, name) == 0) {
 			field = hist_data->attrs->var_defs.expr[i];
-			if (contains_operator(field) || is_var_ref(field))
+			if (contains_operator(field, NULL) || is_var_ref(field))
 				continue;
 			return field;
 		}
@@ -2009,7 +2229,11 @@
 			*flags |= HIST_FIELD_FL_HEX;
 		else if (strcmp(modifier, "sym") == 0)
 			*flags |= HIST_FIELD_FL_SYM;
-		else if (strcmp(modifier, "sym-offset") == 0)
+		/*
+		 * 'sym-offset' occurrences in the trigger string are modified
+		 * to 'symXoffset' to simplify arithmetic expression parsing.
+		 */
+		else if (strcmp(modifier, "symXoffset") == 0)
 			*flags |= HIST_FIELD_FL_SYM_OFFSET;
 		else if ((strcmp(modifier, "execname") == 0) &&
 			 (strcmp(field_name, "common_pid") == 0))
@@ -2097,6 +2321,29 @@
 	return alias;
 }
 
+static struct hist_field *parse_const(struct hist_trigger_data *hist_data,
+				      char *str, char *var_name,
+				      unsigned long *flags)
+{
+	struct trace_array *tr = hist_data->event_file->tr;
+	struct hist_field *field = NULL;
+	u64 constant;
+
+	if (kstrtoull(str, 0, &constant)) {
+		hist_err(tr, HIST_ERR_EXPECT_NUMBER, errpos(str));
+		return NULL;
+	}
+
+	*flags |= HIST_FIELD_FL_CONST;
+	field = create_hist_field(hist_data, NULL, *flags, var_name);
+	if (!field)
+		return NULL;
+
+	field->constant = constant;
+
+	return field;
+}
+
 static struct hist_field *parse_atom(struct hist_trigger_data *hist_data,
 				     struct trace_event_file *file, char *str,
 				     unsigned long *flags, char *var_name)
@@ -2107,6 +2354,15 @@
 	unsigned long buckets = 0;
 	int ret = 0;
 
+	if (isdigit(str[0])) {
+		hist_field = parse_const(hist_data, str, var_name, flags);
+		if (!hist_field) {
+			ret = -EINVAL;
+			goto out;
+		}
+		return hist_field;
+	}
+
 	s = strchr(str, '.');
 	if (s) {
 		s = strchr(++s, '.');
@@ -2163,21 +2419,24 @@
 static struct hist_field *parse_expr(struct hist_trigger_data *hist_data,
 				     struct trace_event_file *file,
 				     char *str, unsigned long flags,
-				     char *var_name, unsigned int level);
+				     char *var_name, unsigned int *n_subexprs);
 
 static struct hist_field *parse_unary(struct hist_trigger_data *hist_data,
 				      struct trace_event_file *file,
 				      char *str, unsigned long flags,
-				      char *var_name, unsigned int level)
+				      char *var_name, unsigned int *n_subexprs)
 {
 	struct hist_field *operand1, *expr = NULL;
 	unsigned long operand_flags;
 	int ret = 0;
 	char *s;
 
+	/* Unary minus operator, increment n_subexprs */
+	++*n_subexprs;
+
 	/* we support only -(xxx) i.e. explicit parens required */
 
-	if (level > 3) {
+	if (*n_subexprs > 3) {
 		hist_err(file->tr, HIST_ERR_TOO_MANY_SUBEXPR, errpos(str));
 		ret = -EINVAL;
 		goto free;
@@ -2194,8 +2453,16 @@
 	}
 
 	s = strrchr(str, ')');
-	if (s)
+	if (s) {
+		 /* unary minus not supported in sub-expressions */
+		if (*(s+1) != '\0') {
+			hist_err(file->tr, HIST_ERR_UNARY_MINUS_SUBEXPR,
+				 errpos(str));
+			ret = -EINVAL;
+			goto free;
+		}
 		*s = '\0';
+	}
 	else {
 		ret = -EINVAL; /* no closing ')' */
 		goto free;
@@ -2209,7 +2476,7 @@
 	}
 
 	operand_flags = 0;
-	operand1 = parse_expr(hist_data, file, str, operand_flags, NULL, ++level);
+	operand1 = parse_expr(hist_data, file, str, operand_flags, NULL, n_subexprs);
 	if (IS_ERR(operand1)) {
 		ret = PTR_ERR(operand1);
 		goto free;
@@ -2242,9 +2509,15 @@
 	return ERR_PTR(ret);
 }
 
+/*
+ * If the operands are var refs, return pointers the
+ * variable(s) referenced in var1 and var2, else NULL.
+ */
 static int check_expr_operands(struct trace_array *tr,
 			       struct hist_field *operand1,
-			       struct hist_field *operand2)
+			       struct hist_field *operand2,
+			       struct hist_field **var1,
+			       struct hist_field **var2)
 {
 	unsigned long operand1_flags = operand1->flags;
 	unsigned long operand2_flags = operand2->flags;
@@ -2257,6 +2530,7 @@
 		if (!var)
 			return -EINVAL;
 		operand1_flags = var->flags;
+		*var1 = var;
 	}
 
 	if ((operand2_flags & HIST_FIELD_FL_VAR_REF) ||
@@ -2267,6 +2541,7 @@
 		if (!var)
 			return -EINVAL;
 		operand2_flags = var->flags;
+		*var2 = var;
 	}
 
 	if ((operand1_flags & HIST_FIELD_FL_TIMESTAMP_USECS) !=
@@ -2281,74 +2556,102 @@
 static struct hist_field *parse_expr(struct hist_trigger_data *hist_data,
 				     struct trace_event_file *file,
 				     char *str, unsigned long flags,
-				     char *var_name, unsigned int level)
+				     char *var_name, unsigned int *n_subexprs)
 {
 	struct hist_field *operand1 = NULL, *operand2 = NULL, *expr = NULL;
-	unsigned long operand_flags;
+	struct hist_field *var1 = NULL, *var2 = NULL;
+	unsigned long operand_flags, operand2_flags;
 	int field_op, ret = -EINVAL;
 	char *sep, *operand1_str;
+	hist_field_fn_t op_fn;
+	bool combine_consts;
 
-	if (level > 3) {
+	if (*n_subexprs > 3) {
 		hist_err(file->tr, HIST_ERR_TOO_MANY_SUBEXPR, errpos(str));
 		return ERR_PTR(-EINVAL);
 	}
 
-	field_op = contains_operator(str);
+	field_op = contains_operator(str, &sep);
 
 	if (field_op == FIELD_OP_NONE)
 		return parse_atom(hist_data, file, str, &flags, var_name);
 
 	if (field_op == FIELD_OP_UNARY_MINUS)
-		return parse_unary(hist_data, file, str, flags, var_name, ++level);
+		return parse_unary(hist_data, file, str, flags, var_name, n_subexprs);
 
-	switch (field_op) {
-	case FIELD_OP_MINUS:
-		sep = "-";
-		break;
-	case FIELD_OP_PLUS:
-		sep = "+";
-		break;
-	default:
-		goto free;
-	}
+	/* Binary operator found, increment n_subexprs */
+	++*n_subexprs;
 
-	operand1_str = strsep(&str, sep);
-	if (!operand1_str || !str)
-		goto free;
+	/* Split the expression string at the root operator */
+	if (!sep)
+		return ERR_PTR(-EINVAL);
+
+	*sep = '\0';
+	operand1_str = str;
+	str = sep+1;
+
+	/* Binary operator requires both operands */
+	if (*operand1_str == '\0' || *str == '\0')
+		return ERR_PTR(-EINVAL);
 
 	operand_flags = 0;
-	operand1 = parse_atom(hist_data, file, operand1_str,
-			      &operand_flags, NULL);
-	if (IS_ERR(operand1)) {
-		ret = PTR_ERR(operand1);
-		operand1 = NULL;
-		goto free;
-	}
+
+	/* LHS of string is an expression e.g. a+b in a+b+c */
+	operand1 = parse_expr(hist_data, file, operand1_str, operand_flags, NULL, n_subexprs);
+	if (IS_ERR(operand1))
+		return ERR_CAST(operand1);
+
 	if (operand1->flags & HIST_FIELD_FL_STRING) {
 		hist_err(file->tr, HIST_ERR_INVALID_STR_OPERAND, errpos(operand1_str));
 		ret = -EINVAL;
-		goto free;
+		goto free_op1;
 	}
 
-	/* rest of string could be another expression e.g. b+c in a+b+c */
+	/* RHS of string is another expression e.g. c in a+b+c */
 	operand_flags = 0;
-	operand2 = parse_expr(hist_data, file, str, operand_flags, NULL, ++level);
+	operand2 = parse_expr(hist_data, file, str, operand_flags, NULL, n_subexprs);
 	if (IS_ERR(operand2)) {
 		ret = PTR_ERR(operand2);
-		operand2 = NULL;
-		goto free;
+		goto free_op1;
 	}
 	if (operand2->flags & HIST_FIELD_FL_STRING) {
 		hist_err(file->tr, HIST_ERR_INVALID_STR_OPERAND, errpos(str));
 		ret = -EINVAL;
-		goto free;
+		goto free_operands;
 	}
 
-	ret = check_expr_operands(file->tr, operand1, operand2);
-	if (ret)
-		goto free;
+	switch (field_op) {
+	case FIELD_OP_MINUS:
+		op_fn = hist_field_minus;
+		break;
+	case FIELD_OP_PLUS:
+		op_fn = hist_field_plus;
+		break;
+	case FIELD_OP_DIV:
+		op_fn = hist_field_div;
+		break;
+	case FIELD_OP_MULT:
+		op_fn = hist_field_mult;
+		break;
+	default:
+		ret = -EINVAL;
+		goto free_operands;
+	}
 
-	flags |= HIST_FIELD_FL_EXPR;
+	ret = check_expr_operands(file->tr, operand1, operand2, &var1, &var2);
+	if (ret)
+		goto free_operands;
+
+	operand_flags = var1 ? var1->flags : operand1->flags;
+	operand2_flags = var2 ? var2->flags : operand2->flags;
+
+	/*
+	 * If both operands are constant, the expression can be
+	 * collapsed to a single constant.
+	 */
+	combine_consts = operand_flags & operand2_flags & HIST_FIELD_FL_CONST;
+
+	flags |= combine_consts ? HIST_FIELD_FL_CONST : HIST_FIELD_FL_EXPR;
 
 	flags |= operand1->flags &
 		(HIST_FIELD_FL_TIMESTAMP | HIST_FIELD_FL_TIMESTAMP_USECS);
@@ -2356,45 +2659,80 @@
 	expr = create_hist_field(hist_data, NULL, flags, var_name);
 	if (!expr) {
 		ret = -ENOMEM;
-		goto free;
+		goto free_operands;
 	}
 
 	operand1->read_once = true;
 	operand2->read_once = true;
 
+	/* The operands are now owned and free'd by 'expr' */
 	expr->operands[0] = operand1;
 	expr->operands[1] = operand2;
 
-	/* The operand sizes should be the same, so just pick one */
-	expr->size = operand1->size;
-	expr->is_signed = operand1->is_signed;
+	if (field_op == FIELD_OP_DIV &&
+			operand2_flags & HIST_FIELD_FL_CONST) {
+		u64 divisor = var2 ? var2->constant : operand2->constant;
 
-	expr->operator = field_op;
-	expr->name = expr_str(expr, 0);
-	expr->type = kstrdup_const(operand1->type, GFP_KERNEL);
-	if (!expr->type) {
-		ret = -ENOMEM;
-		goto free;
+		if (!divisor) {
+			hist_err(file->tr, HIST_ERR_DIVISION_BY_ZERO, errpos(str));
+			ret = -EDOM;
+			goto free_expr;
+		}
+
+		/*
+		 * Copy the divisor here so we don't have to look it up
+		 * later if this is a var ref
+		 */
+		operand2->constant = divisor;
+		op_fn = hist_field_get_div_fn(operand2);
 	}
 
-	switch (field_op) {
-	case FIELD_OP_MINUS:
-		expr->fn = hist_field_minus;
-		break;
-	case FIELD_OP_PLUS:
-		expr->fn = hist_field_plus;
-		break;
-	default:
-		ret = -EINVAL;
-		goto free;
+	if (combine_consts) {
+		if (var1)
+			expr->operands[0] = var1;
+		if (var2)
+			expr->operands[1] = var2;
+
+		expr->constant = op_fn(expr, NULL, NULL, NULL, NULL);
+
+		expr->operands[0] = NULL;
+		expr->operands[1] = NULL;
+
+		/*
+		 * var refs won't be destroyed immediately
+		 * See: destroy_hist_field()
+		 */
+		destroy_hist_field(operand2, 0);
+		destroy_hist_field(operand1, 0);
+
+		expr->name = expr_str(expr, 0);
+	} else {
+		expr->fn = op_fn;
+
+		/* The operand sizes should be the same, so just pick one */
+		expr->size = operand1->size;
+		expr->is_signed = operand1->is_signed;
+
+		expr->operator = field_op;
+		expr->type = kstrdup_const(operand1->type, GFP_KERNEL);
+		if (!expr->type) {
+			ret = -ENOMEM;
+			goto free_expr;
+		}
+
+		expr->name = expr_str(expr, 0);
 	}
 
 	return expr;
- free:
-	destroy_hist_field(operand1, 0);
-	destroy_hist_field(operand2, 0);
-	destroy_hist_field(expr, 0);
 
+free_operands:
+	destroy_hist_field(operand2, 0);
+free_op1:
+	destroy_hist_field(operand1, 0);
+	return ERR_PTR(ret);
+
+free_expr:
+	destroy_hist_field(expr, 0);
 	return ERR_PTR(ret);
 }
 
@@ -3772,9 +4110,9 @@
 			      unsigned long flags)
 {
 	struct hist_field *hist_field;
-	int ret = 0;
+	int ret = 0, n_subexprs = 0;
 
-	hist_field = parse_expr(hist_data, file, field_str, flags, var_name, 0);
+	hist_field = parse_expr(hist_data, file, field_str, flags, var_name, &n_subexprs);
 	if (IS_ERR(hist_field)) {
 		ret = PTR_ERR(hist_field);
 		goto out;
@@ -3915,7 +4253,7 @@
 	struct hist_field *hist_field = NULL;
 	unsigned long flags = 0;
 	unsigned int key_size;
-	int ret = 0;
+	int ret = 0, n_subexprs = 0;
 
 	if (WARN_ON(key_idx >= HIST_FIELDS_MAX))
 		return -EINVAL;
@@ -3928,7 +4266,7 @@
 		hist_field = create_hist_field(hist_data, NULL, flags, NULL);
 	} else {
 		hist_field = parse_expr(hist_data, file, field_str, flags,
-					NULL, 0);
+					NULL, &n_subexprs);
 		if (IS_ERR(hist_field)) {
 			ret = PTR_ERR(hist_field);
 			goto out;
@@ -4979,6 +5317,8 @@
 
 	if (flags & HIST_FIELD_FL_ALIAS)
 		seq_puts(m, "        HIST_FIELD_FL_ALIAS\n");
+	else if (flags & HIST_FIELD_FL_CONST)
+		seq_puts(m, "        HIST_FIELD_FL_CONST\n");
 }
 
 static int hist_field_debug_show(struct seq_file *m,
@@ -5000,6 +5340,9 @@
 			   field->var.idx);
 	}
 
+	if (field->flags & HIST_FIELD_FL_CONST)
+		seq_printf(m, "      constant: %llu\n", field->constant);
+
 	if (field->flags & HIST_FIELD_FL_ALIAS)
 		seq_printf(m, "      var_ref_idx (into hist_data->var_refs[]): %u\n",
 			   field->var_ref_idx);
@@ -5242,6 +5585,8 @@
 
 	if (hist_field->flags & HIST_FIELD_FL_CPU)
 		seq_puts(m, "common_cpu");
+	else if (hist_field->flags & HIST_FIELD_FL_CONST)
+		seq_printf(m, "%llu", hist_field->constant);
 	else if (field_name) {
 		if (hist_field->flags & HIST_FIELD_FL_VAR_REF ||
 		    hist_field->flags & HIST_FIELD_FL_ALIAS)
@@ -5824,7 +6169,7 @@
 	struct synth_event *se;
 	const char *se_name;
 	bool remove = false;
-	char *trigger, *p;
+	char *trigger, *p, *start;
 	int ret = 0;
 
 	lockdep_assert_held(&event_mutex);
@@ -5872,6 +6217,16 @@
 		trigger = strstrip(trigger);
 	}
 
+	/*
+	 * To simplify arithmetic expression parsing, replace occurrences of
+	 * '.sym-offset' modifier with '.symXoffset'
+	 */
+	start = strstr(trigger, ".sym-offset");
+	while (start) {
+		*(start + 4) = 'X';
+		start = strstr(start + 11, ".sym-offset");
+	}
+
 	attrs = parse_hist_trigger_attrs(file->tr, trigger);
 	if (IS_ERR(attrs))
 		return PTR_ERR(attrs);
diff --git a/kernel/trace/trace_events_synth.c b/kernel/trace/trace_events_synth.c
index 1e02bb4..c5cacdb 100644
--- a/kernel/trace/trace_events_synth.c
+++ b/kernel/trace/trace_events_synth.c
@@ -2314,8 +2314,8 @@
 	if (err)
 		goto err;
 
-	entry = tracefs_create_file("synthetic_events", TRACE_MODE_WRITE,
-				    NULL, NULL, &synth_events_fops);
+	entry = tracefs_create_file("synthetic_events", 0644, NULL,
+				    NULL, &synth_events_fops);
 	if (!entry) {
 		err = -ENODEV;
 		goto err;
diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c
index 6b5ff3ba..0de6837 100644
--- a/kernel/trace/trace_functions_graph.c
+++ b/kernel/trace/trace_functions_graph.c
@@ -1340,7 +1340,7 @@
 	if (ret)
 		return 0;
 
-	trace_create_file("max_graph_depth", TRACE_MODE_WRITE, NULL,
+	trace_create_file("max_graph_depth", 0644, NULL,
 			  NULL, &graph_depth_fops);
 
 	return 0;
diff --git a/kernel/trace/trace_hwlat.c b/kernel/trace/trace_hwlat.c
index 9ec032f..a0733f0 100644
--- a/kernel/trace/trace_hwlat.c
+++ b/kernel/trace/trace_hwlat.c
@@ -779,21 +779,21 @@
 	if (!top_dir)
 		return -ENOMEM;
 
-	hwlat_sample_window = tracefs_create_file("window", TRACE_MODE_WRITE,
+	hwlat_sample_window = tracefs_create_file("window", 0640,
 						  top_dir,
 						  &hwlat_window,
 						  &trace_min_max_fops);
 	if (!hwlat_sample_window)
 		goto err;
 
-	hwlat_sample_width = tracefs_create_file("width", TRACE_MODE_WRITE,
+	hwlat_sample_width = tracefs_create_file("width", 0644,
 						 top_dir,
 						 &hwlat_width,
 						 &trace_min_max_fops);
 	if (!hwlat_sample_width)
 		goto err;
 
-	hwlat_thread_mode = trace_create_file("mode", TRACE_MODE_WRITE,
+	hwlat_thread_mode = trace_create_file("mode", 0644,
 					      top_dir,
 					      NULL,
 					      &thread_mode_fops);
diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
index e755e09..4e24e7a 100644
--- a/kernel/trace/trace_kprobe.c
+++ b/kernel/trace/trace_kprobe.c
@@ -1887,16 +1887,16 @@
 	if (ret)
 		return 0;
 
-	entry = tracefs_create_file("kprobe_events", TRACE_MODE_WRITE,
-				    NULL, NULL, &kprobe_events_ops);
+	entry = tracefs_create_file("kprobe_events", 0644, NULL,
+				    NULL, &kprobe_events_ops);
 
 	/* Event list interface */
 	if (!entry)
 		pr_warn("Could not create tracefs 'kprobe_events' entry\n");
 
 	/* Profile interface */
-	entry = tracefs_create_file("kprobe_profile", TRACE_MODE_READ,
-				    NULL, NULL, &kprobe_profile_ops);
+	entry = tracefs_create_file("kprobe_profile", 0444, NULL,
+				    NULL, &kprobe_profile_ops);
 
 	if (!entry)
 		pr_warn("Could not create tracefs 'kprobe_profile' entry\n");
diff --git a/kernel/trace/trace_osnoise.c b/kernel/trace/trace_osnoise.c
index 90c4f70..f4032ae 100644
--- a/kernel/trace/trace_osnoise.c
+++ b/kernel/trace/trace_osnoise.c
@@ -1888,38 +1888,38 @@
 	if (!top_dir)
 		return 0;
 
-	tmp = tracefs_create_file("period_us", TRACE_MODE_WRITE, top_dir,
+	tmp = tracefs_create_file("period_us", 0640, top_dir,
 				  &osnoise_period, &trace_min_max_fops);
 	if (!tmp)
 		goto err;
 
-	tmp = tracefs_create_file("runtime_us", TRACE_MODE_WRITE, top_dir,
+	tmp = tracefs_create_file("runtime_us", 0644, top_dir,
 				  &osnoise_runtime, &trace_min_max_fops);
 	if (!tmp)
 		goto err;
 
-	tmp = tracefs_create_file("stop_tracing_us", TRACE_MODE_WRITE, top_dir,
+	tmp = tracefs_create_file("stop_tracing_us", 0640, top_dir,
 				  &osnoise_stop_tracing_in, &trace_min_max_fops);
 	if (!tmp)
 		goto err;
 
-	tmp = tracefs_create_file("stop_tracing_total_us", TRACE_MODE_WRITE, top_dir,
+	tmp = tracefs_create_file("stop_tracing_total_us", 0640, top_dir,
 				  &osnoise_stop_tracing_total, &trace_min_max_fops);
 	if (!tmp)
 		goto err;
 
-	tmp = trace_create_file("cpus", TRACE_MODE_WRITE, top_dir, NULL, &cpus_fops);
+	tmp = trace_create_file("cpus", 0644, top_dir, NULL, &cpus_fops);
 	if (!tmp)
 		goto err;
 #ifdef CONFIG_TIMERLAT_TRACER
 #ifdef CONFIG_STACKTRACE
-	tmp = tracefs_create_file("print_stack", TRACE_MODE_WRITE, top_dir,
+	tmp = tracefs_create_file("print_stack", 0640, top_dir,
 				  &osnoise_print_stack, &trace_min_max_fops);
 	if (!tmp)
 		goto err;
 #endif
 
-	tmp = tracefs_create_file("timerlat_period_us", TRACE_MODE_WRITE, top_dir,
+	tmp = tracefs_create_file("timerlat_period_us", 0640, top_dir,
 				  &timerlat_period, &trace_min_max_fops);
 	if (!tmp)
 		goto err;
diff --git a/kernel/trace/trace_preemptirq.c b/kernel/trace/trace_preemptirq.c
index 1e130da..070befb 100644
--- a/kernel/trace/trace_preemptirq.c
+++ b/kernel/trace/trace_preemptirq.c
@@ -14,6 +14,8 @@
 
 #define CREATE_TRACE_POINTS
 #include <trace/events/preemptirq.h>
+#undef CREATE_TRACE_POINTS
+#include <trace/hooks/preemptirq.h>
 
 #ifdef CONFIG_TRACE_IRQFLAGS
 /* Per-cpu variable to prevent redundant calls when IRQs already off */
@@ -28,8 +30,11 @@
 void trace_hardirqs_on_prepare(void)
 {
 	if (this_cpu_read(tracing_irq_cpu)) {
-		if (!in_nmi())
+		if (!in_nmi()) {
 			trace_irq_enable(CALLER_ADDR0, CALLER_ADDR1);
+			trace_android_rvh_irqs_enable(CALLER_ADDR0,
+						      CALLER_ADDR1);
+		}
 		tracer_hardirqs_on(CALLER_ADDR0, CALLER_ADDR1);
 		this_cpu_write(tracing_irq_cpu, 0);
 	}
@@ -40,8 +45,11 @@
 void trace_hardirqs_on(void)
 {
 	if (this_cpu_read(tracing_irq_cpu)) {
-		if (!in_nmi())
+		if (!in_nmi()) {
 			trace_irq_enable_rcuidle(CALLER_ADDR0, CALLER_ADDR1);
+			trace_android_rvh_irqs_enable(CALLER_ADDR0,
+						      CALLER_ADDR1);
+		}
 		tracer_hardirqs_on(CALLER_ADDR0, CALLER_ADDR1);
 		this_cpu_write(tracing_irq_cpu, 0);
 	}
@@ -63,8 +71,11 @@
 	if (!this_cpu_read(tracing_irq_cpu)) {
 		this_cpu_write(tracing_irq_cpu, 1);
 		tracer_hardirqs_off(CALLER_ADDR0, CALLER_ADDR1);
-		if (!in_nmi())
+		if (!in_nmi()) {
 			trace_irq_disable(CALLER_ADDR0, CALLER_ADDR1);
+			trace_android_rvh_irqs_disable(CALLER_ADDR0,
+						       CALLER_ADDR1);
+		}
 	}
 
 }
@@ -78,8 +89,11 @@
 	if (!this_cpu_read(tracing_irq_cpu)) {
 		this_cpu_write(tracing_irq_cpu, 1);
 		tracer_hardirqs_off(CALLER_ADDR0, CALLER_ADDR1);
-		if (!in_nmi())
+		if (!in_nmi()) {
 			trace_irq_disable_rcuidle(CALLER_ADDR0, CALLER_ADDR1);
+			trace_android_rvh_irqs_disable(CALLER_ADDR0,
+						       CALLER_ADDR1);
+		}
 	}
 }
 EXPORT_SYMBOL(trace_hardirqs_off);
@@ -88,8 +102,11 @@
 __visible void trace_hardirqs_on_caller(unsigned long caller_addr)
 {
 	if (this_cpu_read(tracing_irq_cpu)) {
-		if (!in_nmi())
+		if (!in_nmi()) {
 			trace_irq_enable_rcuidle(CALLER_ADDR0, caller_addr);
+			trace_android_rvh_irqs_enable(CALLER_ADDR0,
+						      caller_addr);
+		}
 		tracer_hardirqs_on(CALLER_ADDR0, caller_addr);
 		this_cpu_write(tracing_irq_cpu, 0);
 	}
@@ -107,8 +124,11 @@
 	if (!this_cpu_read(tracing_irq_cpu)) {
 		this_cpu_write(tracing_irq_cpu, 1);
 		tracer_hardirqs_off(CALLER_ADDR0, caller_addr);
-		if (!in_nmi())
+		if (!in_nmi()) {
 			trace_irq_disable_rcuidle(CALLER_ADDR0, caller_addr);
+			trace_android_rvh_irqs_enable(CALLER_ADDR0,
+						      caller_addr);
+		}
 	}
 }
 EXPORT_SYMBOL(trace_hardirqs_off_caller);
@@ -119,15 +139,19 @@
 
 void trace_preempt_on(unsigned long a0, unsigned long a1)
 {
-	if (!in_nmi())
+	if (!in_nmi()) {
 		trace_preempt_enable_rcuidle(a0, a1);
+		trace_android_rvh_preempt_enable(a0, a1);
+	}
 	tracer_preempt_on(a0, a1);
 }
 
 void trace_preempt_off(unsigned long a0, unsigned long a1)
 {
-	if (!in_nmi())
+	if (!in_nmi()) {
 		trace_preempt_disable_rcuidle(a0, a1);
+		trace_android_rvh_preempt_disable(a0, a1);
+	}
 	tracer_preempt_off(a0, a1);
 }
 #endif
diff --git a/kernel/trace/trace_printk.c b/kernel/trace/trace_printk.c
index 29f6e95..4b320fe 100644
--- a/kernel/trace/trace_printk.c
+++ b/kernel/trace/trace_printk.c
@@ -384,7 +384,7 @@
 	if (ret)
 		return 0;
 
-	trace_create_file("printk_formats", TRACE_MODE_READ, NULL,
+	trace_create_file("printk_formats", 0444, NULL,
 				    NULL, &ftrace_formats_fops);
 
 	return 0;
diff --git a/kernel/trace/trace_recursion_record.c b/kernel/trace/trace_recursion_record.c
index 4d4b78c..b2edac1fe 100644
--- a/kernel/trace/trace_recursion_record.c
+++ b/kernel/trace/trace_recursion_record.c
@@ -226,8 +226,8 @@
 {
 	struct dentry *dentry;
 
-	dentry = trace_create_file("recursed_functions", TRACE_MODE_WRITE,
-				   NULL, NULL, &recursed_functions_fops);
+	dentry = trace_create_file("recursed_functions", 0644, NULL, NULL,
+				   &recursed_functions_fops);
 	if (!dentry)
 		pr_warn("WARNING: Failed to create recursed_functions\n");
 	return 0;
diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c
index 5a48dba..63c28504 100644
--- a/kernel/trace/trace_stack.c
+++ b/kernel/trace/trace_stack.c
@@ -559,14 +559,14 @@
 	if (ret)
 		return 0;
 
-	trace_create_file("stack_max_size", TRACE_MODE_WRITE, NULL,
+	trace_create_file("stack_max_size", 0644, NULL,
 			&stack_trace_max_size, &stack_max_size_fops);
 
-	trace_create_file("stack_trace", TRACE_MODE_READ, NULL,
+	trace_create_file("stack_trace", 0444, NULL,
 			NULL, &stack_trace_fops);
 
 #ifdef CONFIG_DYNAMIC_FTRACE
-	trace_create_file("stack_trace_filter", TRACE_MODE_WRITE, NULL,
+	trace_create_file("stack_trace_filter", 0644, NULL,
 			  &trace_ops, &stack_trace_filter_fops);
 #endif
 
diff --git a/kernel/trace/trace_stat.c b/kernel/trace/trace_stat.c
index bb247be..8d141c3 100644
--- a/kernel/trace/trace_stat.c
+++ b/kernel/trace/trace_stat.c
@@ -297,9 +297,9 @@
 	if (!stat_dir && (ret = tracing_stat_init()))
 		return ret;
 
-	session->file = tracefs_create_file(session->ts->name, TRACE_MODE_WRITE,
-					    stat_dir, session,
-					    &tracing_stat_fops);
+	session->file = tracefs_create_file(session->ts->name, 0644,
+					    stat_dir,
+					    session, &tracing_stat_fops);
 	if (!session->file)
 		return -ENOMEM;
 	return 0;
diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c
index debc651..6716bff 100644
--- a/kernel/trace/trace_uprobe.c
+++ b/kernel/trace/trace_uprobe.c
@@ -1662,10 +1662,10 @@
 	if (ret)
 		return 0;
 
-	trace_create_file("uprobe_events", TRACE_MODE_WRITE, NULL,
+	trace_create_file("uprobe_events", 0644, NULL,
 				    NULL, &uprobe_events_ops);
 	/* Profile interface */
-	trace_create_file("uprobe_profile", TRACE_MODE_READ, NULL,
+	trace_create_file("uprobe_profile", 0444, NULL,
 				    NULL, &uprobe_profile_ops);
 	return 0;
 }
diff --git a/kernel/tracepoint.c b/kernel/tracepoint.c
index 64ea283f..d05628d 100644
--- a/kernel/tracepoint.c
+++ b/kernel/tracepoint.c
@@ -786,3 +786,82 @@
 	}
 }
 #endif
+
+#ifdef CONFIG_ANDROID_VENDOR_HOOKS
+
+static void *rvh_zalloc_funcs(int count)
+{
+	return kzalloc(sizeof(struct tracepoint_func) * count, GFP_KERNEL);
+}
+
+#define ANDROID_RVH_NR_PROBES_MAX	2
+static int rvh_func_add(struct tracepoint *tp, struct tracepoint_func *func)
+{
+	int i;
+
+	if (!static_key_enabled(&tp->key)) {
+		/* '+ 1' for the last NULL element */
+		tp->funcs = rvh_zalloc_funcs(ANDROID_RVH_NR_PROBES_MAX + 1);
+		if (!tp->funcs)
+			return ENOMEM;
+	}
+
+	for (i = 0; i < ANDROID_RVH_NR_PROBES_MAX; i++) {
+		if (!tp->funcs[i].func) {
+			if (!static_key_enabled(&tp->key))
+				tp->funcs[i].data = func->data;
+			WRITE_ONCE(tp->funcs[i].func, func->func);
+
+			return 0;
+		}
+	}
+
+	return -EBUSY;
+}
+
+static int android_rvh_add_func(struct tracepoint *tp, struct tracepoint_func *func)
+{
+	int ret;
+
+	if (tp->regfunc && !static_key_enabled(&tp->key)) {
+		ret = tp->regfunc();
+		if (ret < 0)
+			return ret;
+	}
+
+	ret = rvh_func_add(tp, func);
+	if (ret)
+		return ret;
+	tracepoint_update_call(tp, tp->funcs);
+	static_key_enable(&tp->key);
+
+	return 0;
+}
+
+int android_rvh_probe_register(struct tracepoint *tp, void *probe, void *data)
+{
+	struct tracepoint_func tp_func;
+	int ret;
+
+	/*
+	 * Once the static key has been flipped, the array may be read
+	 * concurrently. Although __traceiter_*()  always checks .func first,
+	 * it doesn't enforce read->read dependencies, and we can't strongly
+	 * guarantee it will see the correct .data for the second element
+	 * without adding smp_load_acquire() in the fast path. But this is a
+	 * corner case which is unlikely to be needed by anybody in practice,
+	 * so let's just forbid it and keep the fast path clean.
+	 */
+	if (WARN_ON(static_key_enabled(&tp->key) && data))
+		return -EINVAL;
+
+	mutex_lock(&tracepoints_mutex);
+	tp_func.func = probe;
+	tp_func.data = data;
+	ret = android_rvh_add_func(tp, &tp_func);
+	mutex_unlock(&tracepoints_mutex);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(android_rvh_probe_register);
+#endif
diff --git a/kernel/user.c b/kernel/user.c
index e2cf8c2..f33859a 100644
--- a/kernel/user.c
+++ b/kernel/user.c
@@ -20,6 +20,8 @@
 #include <linux/user_namespace.h>
 #include <linux/proc_ns.h>
 
+#include <trace/hooks/user.h>
+
 /*
  * userns count is 1 for root user, 1 for init_uts_ns,
  * and 1 for... ?
@@ -96,11 +98,12 @@
 static DEFINE_SPINLOCK(uidhash_lock);
 
 /* root_user.__count is 1, for init task cred */
-struct user_struct root_user = {
-	.__count	= REFCOUNT_INIT(1),
-	.uid		= GLOBAL_ROOT_UID,
-	.ratelimit	= RATELIMIT_STATE_INIT(root_user.ratelimit, 0, 0),
+struct ext_user_struct ext_root_user = {
+	.user.__count	= REFCOUNT_INIT(1),
+	.user.uid	= GLOBAL_ROOT_UID,
+	.user.ratelimit	= RATELIMIT_STATE_INIT(root_user.ratelimit, 0, 0),
 };
+struct user_struct *root_user = &ext_root_user.user;
 
 /*
  * These routines must be called with the uidhash spinlock held!
@@ -152,10 +155,14 @@
 static void free_user(struct user_struct *up, unsigned long flags)
 	__releases(&uidhash_lock)
 {
+	struct ext_user_struct *ext_user;
+
+	ext_user = container_of(up, struct ext_user_struct, user);
+	trace_android_vh_free_user(up);
 	uid_hash_remove(up);
 	spin_unlock_irqrestore(&uidhash_lock, flags);
 	user_epoll_free(up);
-	kmem_cache_free(uid_cachep, up);
+	kmem_cache_free(uid_cachep, ext_user);
 }
 
 /*
@@ -174,6 +181,7 @@
 	spin_unlock_irqrestore(&uidhash_lock, flags);
 	return ret;
 }
+EXPORT_SYMBOL_GPL(find_user);
 
 void free_uid(struct user_struct *up)
 {
@@ -185,23 +193,27 @@
 	if (refcount_dec_and_lock_irqsave(&up->__count, &uidhash_lock, &flags))
 		free_user(up, flags);
 }
+EXPORT_SYMBOL_GPL(free_uid);
 
 struct user_struct *alloc_uid(kuid_t uid)
 {
 	struct hlist_head *hashent = uidhashentry(uid);
 	struct user_struct *up, *new;
+	struct ext_user_struct *ext_user;
 
 	spin_lock_irq(&uidhash_lock);
 	up = uid_hash_find(uid, hashent);
 	spin_unlock_irq(&uidhash_lock);
 
 	if (!up) {
-		new = kmem_cache_zalloc(uid_cachep, GFP_KERNEL);
-		if (!new)
+		ext_user = kmem_cache_zalloc(uid_cachep, GFP_KERNEL);
+		if (!ext_user)
 			return NULL;
 
+		new = &ext_user->user;
 		new->uid = uid;
 		refcount_set(&new->__count, 1);
+		trace_android_vh_alloc_uid(new);
 		if (user_epoll_alloc(new)) {
 			kmem_cache_free(uid_cachep, new);
 			return NULL;
@@ -232,18 +244,18 @@
 {
 	int n;
 
-	uid_cachep = kmem_cache_create("uid_cache", sizeof(struct user_struct),
+	uid_cachep = kmem_cache_create("uid_cache", sizeof(struct ext_user_struct),
 			0, SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);
 
 	for(n = 0; n < UIDHASH_SZ; ++n)
 		INIT_HLIST_HEAD(uidhash_table + n);
 
-	if (user_epoll_alloc(&root_user))
+	if (user_epoll_alloc(root_user))
 		panic("root_user epoll percpu counter alloc failed");
 
 	/* Insert the root user immediately (init already runs as root) */
 	spin_lock_irq(&uidhash_lock);
-	uid_hash_insert(&root_user, uidhashentry(GLOBAL_ROOT_UID));
+	uid_hash_insert(root_user, uidhashentry(GLOBAL_ROOT_UID));
 	spin_unlock_irq(&uidhash_lock);
 
 	return 0;
diff --git a/kernel/watchdog.c b/kernel/watchdog.c
index 1cfa269..2b1c9d2 100644
--- a/kernel/watchdog.c
+++ b/kernel/watchdog.c
@@ -27,6 +27,8 @@
 #include <asm/irq_regs.h>
 #include <linux/kvm_para.h>
 
+#include <trace/hooks/softlockup.h>
+
 static DEFINE_MUTEX(watchdog_mutex);
 
 #if defined(CONFIG_HARDLOCKUP_DETECTOR) || defined(CONFIG_HAVE_NMI_WATCHDOG)
@@ -439,6 +441,7 @@
 			clear_bit_unlock(0, &soft_lockup_nmi_warn);
 		}
 
+		trace_android_vh_watchdog_timer_softlockup(duration, regs, !!softlockup_panic);
 		add_taint(TAINT_SOFTLOCKUP, LOCKDEP_STILL_OK);
 		if (softlockup_panic)
 			panic("softlockup: hung tasks");
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 8e108c0..06c52b3 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -54,6 +54,10 @@
 
 #include "workqueue_internal.h"
 
+#include <trace/hooks/wqlockup.h>
+/* events/workqueue.h uses default TRACE_INCLUDE_PATH */
+#undef TRACE_INCLUDE_PATH
+
 enum {
 	/*
 	 * worker_pool flags
@@ -380,6 +384,9 @@
 #define CREATE_TRACE_POINTS
 #include <trace/events/workqueue.h>
 
+EXPORT_TRACEPOINT_SYMBOL_GPL(workqueue_execute_start);
+EXPORT_TRACEPOINT_SYMBOL_GPL(workqueue_execute_end);
+
 #define assert_rcu_or_pool_mutex()					\
 	RCU_LOCKDEP_WARN(!rcu_read_lock_held() &&			\
 			 !lockdep_is_held(&wq_pool_mutex),		\
@@ -1363,7 +1370,7 @@
 	struct worker_pool *pool = pwq->pool;
 
 	/* record the work call stack in order to print it in KASAN reports */
-	kasan_record_aux_stack(work);
+	kasan_record_aux_stack_noalloc(work);
 
 	/* we own @work, set data and link */
 	set_work_pwq(work, pwq, extra_flags);
@@ -4963,6 +4970,7 @@
 
 	mutex_unlock(&wq_pool_attach_mutex);
 }
+EXPORT_SYMBOL_GPL(wq_worker_comm);
 
 #ifdef CONFIG_SMP
 
@@ -5904,6 +5912,7 @@
 			pr_cont_pool_info(pool);
 			pr_cont(" stuck for %us!\n",
 				jiffies_to_msecs(now - pool_ts) / 1000);
+			trace_android_vh_wq_lockup_pool(pool->cpu, pool_ts);
 		}
 	}
 
diff --git a/lib/Kconfig b/lib/Kconfig
index baa977e..9511c46 100644
--- a/lib/Kconfig
+++ b/lib/Kconfig
@@ -126,6 +126,13 @@
 config LIB_MEMNEQ
 	bool
 
+config TRACE_MMIO_ACCESS
+	bool "Register read/write tracing"
+	depends on TRACING && ARCH_HAVE_TRACE_MMIO_ACCESS
+	help
+	  Create tracepoints for MMIO read/write operations. These trace events
+	  can be used for logging all MMIO read/write operations.
+
 config CRC_CCITT
 	tristate "CRC-CCITT functions"
 	help
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index dbbd243..c12795f 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -336,6 +336,16 @@
 	help
 	  Generate compact split BTF type information for kernel modules.
 
+config MODULE_ALLOW_BTF_MISMATCH
+	bool "Allow loading modules with non-matching BTF type info"
+	depends on DEBUG_INFO_BTF_MODULES
+	help
+	  For modules whose split BTF does not match vmlinux, load without
+	  BTF rather than refusing to load. The default behavior with
+	  module BTF enabled is to reject modules with such mismatches;
+	  this option will still load module BTF where possible but ignore
+	  it when a mismatch is found.
+
 config GDB_SCRIPTS
 	bool "Provide GDB scripts for kernel debugging"
 	help
diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan
index cdc842d..7834c35 100644
--- a/lib/Kconfig.kasan
+++ b/lib/Kconfig.kasan
@@ -178,17 +178,17 @@
 	  memory consumption.
 
 config KASAN_VMALLOC
-	bool "Back mappings in vmalloc space with real shadow memory"
-	depends on KASAN_GENERIC && HAVE_ARCH_KASAN_VMALLOC
+	bool "Check accesses to vmalloc allocations"
+	depends on HAVE_ARCH_KASAN_VMALLOC
 	help
-	  By default, the shadow region for vmalloc space is the read-only
-	  zero page. This means that KASAN cannot detect errors involving
-	  vmalloc space.
+	  This mode makes KASAN check accesses to vmalloc allocations for
+	  validity.
 
-	  Enabling this option will hook in to vmap/vmalloc and back those
-	  mappings with real shadow memory allocated on demand. This allows
-	  for KASAN to detect more sorts of errors (and to support vmapped
-	  stacks), but at the cost of higher memory usage.
+	  With software KASAN modes, checking is done for all types of vmalloc
+	  allocations. Enabling this option leads to higher memory usage.
+
+	  With hardware tag-based KASAN, only VM_ALLOC mappings are checked.
+	  There is no additional memory usage.
 
 config KASAN_KUNIT_TEST
 	tristate "KUnit-compatible tests of KASAN bug detection capabilities" if !KUNIT_ALL_TESTS
diff --git a/lib/Makefile b/lib/Makefile
index 0868cb67..2420b4e 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -150,6 +150,8 @@
 
 lib-$(CONFIG_INDIRECT_IOMEM) += logic_iomem.o
 
+obj-$(CONFIG_TRACE_MMIO_ACCESS) += trace_readwrite.o
+
 obj-$(CONFIG_GENERIC_HWEIGHT) += hweight.o
 
 obj-$(CONFIG_BTREE) += btree.o
diff --git a/lib/bug.c b/lib/bug.c
index 45a0584f..b42b6c7 100644
--- a/lib/bug.c
+++ b/lib/bug.c
@@ -49,6 +49,8 @@
 #include <linux/rculist.h>
 #include <linux/ftrace.h>
 
+#include <trace/hooks/bug.h>
+
 extern struct bug_entry __start___bug_table[], __stop___bug_table[];
 
 static inline unsigned long bug_addr(const struct bug_entry *bug)
@@ -207,6 +209,8 @@
 		pr_crit("Kernel BUG at %pB [verbose debug info unavailable]\n",
 			(void *)bugaddr);
 
+	trace_android_rvh_report_bug(file, line, bugaddr);
+
 	return BUG_TRAP_TYPE_BUG;
 }
 
diff --git a/lib/crypto/aes.c b/lib/crypto/aes.c
index 827fe89..6a8b70a 100644
--- a/lib/crypto/aes.c
+++ b/lib/crypto/aes.c
@@ -7,6 +7,7 @@
 #include <linux/crypto.h>
 #include <linux/module.h>
 #include <asm/unaligned.h>
+#include <trace/hooks/fips140.h>
 
 /*
  * Emit the sbox as volatile const to prevent the compiler from doing
@@ -189,6 +190,13 @@
 	u32 rc, i, j;
 	int err;
 
+#if defined(CONFIG_CRYPTO_FIPS140) && !defined(BUILD_FIPS140_KO)
+	err = -(MAX_ERRNO + 1);
+	trace_android_vh_aes_expandkey(ctx, in_key, key_len, &err);
+	if (err != -(MAX_ERRNO + 1))
+		return err;
+#endif
+
 	err = aes_check_keylen(key_len);
 	if (err)
 		return err;
@@ -261,6 +269,13 @@
 	int rounds = 6 + ctx->key_length / 4;
 	u32 st0[4], st1[4];
 	int round;
+#if defined(CONFIG_CRYPTO_FIPS140) && !defined(BUILD_FIPS140_KO)
+	int hook_inuse = 0;
+
+	trace_android_vh_aes_encrypt(ctx, out, in, &hook_inuse);
+	if (hook_inuse)
+		return;
+#endif
 
 	st0[0] = ctx->key_enc[0] ^ get_unaligned_le32(in);
 	st0[1] = ctx->key_enc[1] ^ get_unaligned_le32(in + 4);
@@ -312,6 +327,13 @@
 	int rounds = 6 + ctx->key_length / 4;
 	u32 st0[4], st1[4];
 	int round;
+#if defined(CONFIG_CRYPTO_FIPS140) && !defined(BUILD_FIPS140_KO)
+	int hook_inuse = 0;
+
+	trace_android_vh_aes_decrypt(ctx, out, in, &hook_inuse);
+	if (hook_inuse)
+		return;
+#endif
 
 	st0[0] = ctx->key_dec[0] ^ get_unaligned_le32(in);
 	st0[1] = ctx->key_dec[1] ^ get_unaligned_le32(in + 4);
diff --git a/lib/crypto/sha256.c b/lib/crypto/sha256.c
index 72a4b0b..ae9be0e 100644
--- a/lib/crypto/sha256.c
+++ b/lib/crypto/sha256.c
@@ -17,6 +17,7 @@
 #include <linux/string.h>
 #include <crypto/sha2.h>
 #include <asm/unaligned.h>
+#include <trace/hooks/fips140.h>
 
 static const u32 SHA256_K[] = {
 	0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
@@ -200,6 +201,14 @@
 {
 	struct sha256_state sctx;
 
+#if defined(CONFIG_CRYPTO_FIPS140) && !defined(BUILD_FIPS140_KO)
+	int hook_inuse = 0;
+
+	trace_android_vh_sha256(data, len, out, &hook_inuse);
+	if (hook_inuse)
+		return;
+#endif
+
 	sha256_init(&sctx);
 	sha256_update(&sctx, data, len);
 	sha256_final(&sctx, out);
diff --git a/lib/decompress_unxz.c b/lib/decompress_unxz.c
index f7a3dc13..c1b8902 100644
--- a/lib/decompress_unxz.c
+++ b/lib/decompress_unxz.c
@@ -20,8 +20,8 @@
  *
  * The worst case for in-place decompression is that the beginning of
  * the file is compressed extremely well, and the rest of the file is
- * uncompressible. Thus, we must look for worst-case expansion when the
- * compressor is encoding uncompressible data.
+ * incompressible. Thus, we must look for worst-case expansion when the
+ * compressor is encoding incompressible data.
  *
  * The structure of the .xz file in case of a compressed kernel is as follows.
  * Sizes (as bytes) of the fields are in parenthesis.
@@ -58,7 +58,7 @@
  * uncompressed size of the payload is in practice never less than the
  * payload size itself. The LZMA2 format would allow uncompressed size
  * to be less than the payload size, but no sane compressor creates such
- * files. LZMA2 supports storing uncompressible data in uncompressed form,
+ * files. LZMA2 supports storing incompressible data in uncompressed form,
  * so there's never a need to create payloads whose uncompressed size is
  * smaller than the compressed size.
  *
diff --git a/lib/hexdump.c b/lib/hexdump.c
index 06833d40..07cda1a 100644
--- a/lib/hexdump.c
+++ b/lib/hexdump.c
@@ -43,7 +43,15 @@
  *	uppercase and lowercase letters, so we use (ch & 0xdf), which converts
  *	lowercase to uppercase
  */
+/*
+ * perserve abi due to 15b78a8e38e8 ("hex2bin: make the function hex_to_bin
+ * constant-time"
+ */
+#ifdef __GENKSYMS__
+int hex_to_bin(char ch)
+#else
 int hex_to_bin(unsigned char ch)
+#endif
 {
 	unsigned char cu = ch & 0xdf;
 	return -1 +
diff --git a/lib/show_mem.c b/lib/show_mem.c
index 1c26c14..3d8d609 100644
--- a/lib/show_mem.c
+++ b/lib/show_mem.c
@@ -7,7 +7,7 @@
 
 #include <linux/mm.h>
 #include <linux/cma.h>
-
+#include <trace/hooks/mm.h>
 void show_mem(unsigned int filter, nodemask_t *nodemask)
 {
 	pg_data_t *pgdat;
@@ -41,4 +41,6 @@
 #ifdef CONFIG_MEMORY_FAILURE
 	printk("%lu pages hwpoisoned\n", atomic_long_read(&num_poisoned_pages));
 #endif
+	trace_android_vh_show_mem(filter, nodemask);
 }
+EXPORT_SYMBOL_GPL(show_mem);
diff --git a/lib/stackdepot.c b/lib/stackdepot.c
index e90f0f1..ebdbd5c 100644
--- a/lib/stackdepot.c
+++ b/lib/stackdepot.c
@@ -101,8 +101,8 @@
 }
 
 /* Allocation of a new stack in raw storage */
-static struct stack_record *depot_alloc_stack(unsigned long *entries, int size,
-		u32 hash, void **prealloc, gfp_t alloc_flags)
+static struct stack_record *
+depot_alloc_stack(unsigned long *entries, int size, u32 hash, void **prealloc)
 {
 	struct stack_record *stack;
 	size_t required_size = struct_size(stack, entries, size);
@@ -247,17 +247,31 @@
 EXPORT_SYMBOL_GPL(stack_depot_fetch);
 
 /**
- * stack_depot_save - Save a stack trace from an array
+ * __stack_depot_save - Save a stack trace from an array
  *
  * @entries:		Pointer to storage array
  * @nr_entries:		Size of the storage array
  * @alloc_flags:	Allocation gfp flags
+ * @can_alloc:		Allocate stack slabs (increased chance of failure if false)
  *
- * Return: The handle of the stack struct stored in depot
+ * Saves a stack trace from @entries array of size @nr_entries. If @can_alloc is
+ * %true, is allowed to replenish the stack slab pool in case no space is left
+ * (allocates using GFP flags of @alloc_flags). If @can_alloc is %false, avoids
+ * any allocations and will fail if no space is left to store the stack trace.
+ *
+ * If the stack trace in @entries is from an interrupt, only the portion up to
+ * interrupt entry is saved.
+ *
+ * Context: Any context, but setting @can_alloc to %false is required if
+ *          alloc_pages() cannot be used from the current context. Currently
+ *          this is the case from contexts where neither %GFP_ATOMIC nor
+ *          %GFP_NOWAIT can be used (NMI, raw_spin_lock).
+ *
+ * Return: The handle of the stack struct stored in depot, 0 on failure.
  */
-depot_stack_handle_t stack_depot_save(unsigned long *entries,
-				      unsigned int nr_entries,
-				      gfp_t alloc_flags)
+depot_stack_handle_t __stack_depot_save(unsigned long *entries,
+					unsigned int nr_entries,
+					gfp_t alloc_flags, bool can_alloc)
 {
 	struct stack_record *found = NULL, **bucket;
 	depot_stack_handle_t retval = 0;
@@ -266,6 +280,16 @@
 	unsigned long flags;
 	u32 hash;
 
+	/*
+	 * If this stack trace is from an interrupt, including anything before
+	 * interrupt entry usually leads to unbounded stackdepot growth.
+	 *
+	 * Because use of filter_irq_stacks() is a requirement to ensure
+	 * stackdepot can efficiently deduplicate interrupt stacks, always
+	 * filter_irq_stacks() to simplify all callers' use of stackdepot.
+	 */
+	nr_entries = filter_irq_stacks(entries, nr_entries);
+
 	if (unlikely(nr_entries == 0) || stack_depot_disable)
 		goto fast_exit;
 
@@ -290,7 +314,7 @@
 	 * The smp_load_acquire() here pairs with smp_store_release() to
 	 * |next_slab_inited| in depot_alloc_stack() and init_stack_slab().
 	 */
-	if (unlikely(!smp_load_acquire(&next_slab_inited))) {
+	if (unlikely(can_alloc && !smp_load_acquire(&next_slab_inited))) {
 		/*
 		 * Zero out zone modifiers, as we don't have specific zone
 		 * requirements. Keep the flags related to allocation in atomic
@@ -308,9 +332,8 @@
 
 	found = find_stack(*bucket, entries, nr_entries, hash);
 	if (!found) {
-		struct stack_record *new =
-			depot_alloc_stack(entries, nr_entries,
-					  hash, &prealloc, alloc_flags);
+		struct stack_record *new = depot_alloc_stack(entries, nr_entries, hash, &prealloc);
+
 		if (new) {
 			new->next = *bucket;
 			/*
@@ -339,4 +362,24 @@
 fast_exit:
 	return retval;
 }
+EXPORT_SYMBOL_GPL(__stack_depot_save);
+
+/**
+ * stack_depot_save - Save a stack trace from an array
+ *
+ * @entries:		Pointer to storage array
+ * @nr_entries:		Size of the storage array
+ * @alloc_flags:	Allocation gfp flags
+ *
+ * Context: Contexts where allocations via alloc_pages() are allowed.
+ *          See __stack_depot_save() for more details.
+ *
+ * Return: The handle of the stack struct stored in depot, 0 on failure.
+ */
+depot_stack_handle_t stack_depot_save(unsigned long *entries,
+				      unsigned int nr_entries,
+				      gfp_t alloc_flags)
+{
+	return __stack_depot_save(entries, nr_entries, alloc_flags, true);
+}
 EXPORT_SYMBOL_GPL(stack_depot_save);
diff --git a/lib/test_kasan.c b/lib/test_kasan.c
index 89f444c..8af1ca3 100644
--- a/lib/test_kasan.c
+++ b/lib/test_kasan.c
@@ -19,6 +19,7 @@
 #include <linux/uaccess.h>
 #include <linux/io.h>
 #include <linux/vmalloc.h>
+#include <linux/set_memory.h>
 
 #include <asm/page.h>
 
@@ -36,7 +37,7 @@
 int kasan_int_result;
 
 static struct kunit_resource resource;
-static struct kunit_kasan_expectation fail_data;
+static struct kunit_kasan_status test_status;
 static bool multishot;
 
 /*
@@ -53,58 +54,63 @@
 	}
 
 	multishot = kasan_save_enable_multi_shot();
-	fail_data.report_found = false;
+	test_status.report_found = false;
+	test_status.sync_fault = false;
 	kunit_add_named_resource(test, NULL, NULL, &resource,
-					"kasan_data", &fail_data);
+					"kasan_status", &test_status);
 	return 0;
 }
 
 static void kasan_test_exit(struct kunit *test)
 {
 	kasan_restore_multi_shot(multishot);
-	KUNIT_EXPECT_FALSE(test, fail_data.report_found);
+	KUNIT_EXPECT_FALSE(test, test_status.report_found);
 }
 
 /**
  * KUNIT_EXPECT_KASAN_FAIL() - check that the executed expression produces a
  * KASAN report; causes a test failure otherwise. This relies on a KUnit
- * resource named "kasan_data". Do not use this name for KUnit resources
+ * resource named "kasan_status". Do not use this name for KUnit resources
  * outside of KASAN tests.
  *
- * For hardware tag-based KASAN in sync mode, when a tag fault happens, tag
+ * For hardware tag-based KASAN, when a synchronous tag fault happens, tag
  * checking is auto-disabled. When this happens, this test handler reenables
  * tag checking. As tag checking can be only disabled or enabled per CPU,
  * this handler disables migration (preemption).
  *
- * Since the compiler doesn't see that the expression can change the fail_data
+ * Since the compiler doesn't see that the expression can change the test_status
  * fields, it can reorder or optimize away the accesses to those fields.
  * Use READ/WRITE_ONCE() for the accesses and compiler barriers around the
  * expression to prevent that.
  *
- * In between KUNIT_EXPECT_KASAN_FAIL checks, fail_data.report_found is kept as
- * false. This allows detecting KASAN reports that happen outside of the checks
- * by asserting !fail_data.report_found at the start of KUNIT_EXPECT_KASAN_FAIL
- * and in kasan_test_exit.
+ * In between KUNIT_EXPECT_KASAN_FAIL checks, test_status.report_found is kept
+ * as false. This allows detecting KASAN reports that happen outside of the
+ * checks by asserting !test_status.report_found at the start of
+ * KUNIT_EXPECT_KASAN_FAIL and in kasan_test_exit.
  */
 #define KUNIT_EXPECT_KASAN_FAIL(test, expression) do {			\
 	if (IS_ENABLED(CONFIG_KASAN_HW_TAGS) &&				\
-	    !kasan_async_mode_enabled())				\
+	    kasan_sync_fault_possible())				\
 		migrate_disable();					\
-	KUNIT_EXPECT_FALSE(test, READ_ONCE(fail_data.report_found));	\
+	KUNIT_EXPECT_FALSE(test, READ_ONCE(test_status.report_found));	\
 	barrier();							\
 	expression;							\
 	barrier();							\
-	if (!READ_ONCE(fail_data.report_found)) {			\
+	if (kasan_async_fault_possible())				\
+		kasan_force_async_fault();				\
+	if (!READ_ONCE(test_status.report_found)) {			\
 		KUNIT_FAIL(test, KUNIT_SUBTEST_INDENT "KASAN failure "	\
 				"expected in \"" #expression		\
 				 "\", but none occurred");		\
 	}								\
-	if (IS_ENABLED(CONFIG_KASAN_HW_TAGS)) {				\
-		if (READ_ONCE(fail_data.report_found))			\
-			kasan_enable_tagging_sync();			\
+	if (IS_ENABLED(CONFIG_KASAN_HW_TAGS) &&				\
+	    kasan_sync_fault_possible()) {				\
+		if (READ_ONCE(test_status.report_found) &&		\
+		    READ_ONCE(test_status.sync_fault))			\
+			kasan_enable_tagging();				\
 		migrate_enable();					\
 	}								\
-	WRITE_ONCE(fail_data.report_found, false);			\
+	WRITE_ONCE(test_status.report_found, false);			\
 } while (0)
 
 #define KASAN_TEST_NEEDS_CONFIG_ON(test, config) do {			\
@@ -447,6 +453,7 @@
 	ptr = kmalloc(size, GFP_KERNEL);
 	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr);
 
+	OPTIMIZER_HIDE_VAR(size);
 	KUNIT_EXPECT_KASAN_FAIL(test, memset(ptr + size - 1, 0, 2));
 	kfree(ptr);
 }
@@ -459,6 +466,7 @@
 	ptr = kmalloc(size, GFP_KERNEL);
 	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr);
 
+	OPTIMIZER_HIDE_VAR(size);
 	KUNIT_EXPECT_KASAN_FAIL(test, memset(ptr + size - 3, 0, 4));
 	kfree(ptr);
 }
@@ -471,6 +479,7 @@
 	ptr = kmalloc(size, GFP_KERNEL);
 	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr);
 
+	OPTIMIZER_HIDE_VAR(size);
 	KUNIT_EXPECT_KASAN_FAIL(test, memset(ptr + size - 7, 0, 8));
 	kfree(ptr);
 }
@@ -483,6 +492,7 @@
 	ptr = kmalloc(size, GFP_KERNEL);
 	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr);
 
+	OPTIMIZER_HIDE_VAR(size);
 	KUNIT_EXPECT_KASAN_FAIL(test, memset(ptr + size - 15, 0, 16));
 	kfree(ptr);
 }
@@ -495,16 +505,18 @@
 	ptr = kmalloc(size, GFP_KERNEL);
 	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr);
 
+	OPTIMIZER_HIDE_VAR(ptr);
+	OPTIMIZER_HIDE_VAR(size);
 	KUNIT_EXPECT_KASAN_FAIL(test,
 				memset(ptr, 0, size + KASAN_GRANULE_SIZE));
 	kfree(ptr);
 }
 
-static void kmalloc_memmove_invalid_size(struct kunit *test)
+static void kmalloc_memmove_negative_size(struct kunit *test)
 {
 	char *ptr;
 	size_t size = 64;
-	volatile size_t invalid_size = -2;
+	size_t invalid_size = -2;
 
 	/*
 	 * Hardware tag-based mode doesn't check memmove for negative size.
@@ -517,6 +529,24 @@
 	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr);
 
 	memset((char *)ptr, 0, 64);
+	OPTIMIZER_HIDE_VAR(ptr);
+	OPTIMIZER_HIDE_VAR(invalid_size);
+	KUNIT_EXPECT_KASAN_FAIL(test,
+		memmove((char *)ptr, (char *)ptr + 4, invalid_size));
+	kfree(ptr);
+}
+
+static void kmalloc_memmove_invalid_size(struct kunit *test)
+{
+	char *ptr;
+	size_t size = 64;
+	volatile size_t invalid_size = size;
+
+	ptr = kmalloc(size, GFP_KERNEL);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr);
+
+	memset((char *)ptr, 0, 64);
+	OPTIMIZER_HIDE_VAR(ptr);
 	KUNIT_EXPECT_KASAN_FAIL(test,
 		memmove((char *)ptr, (char *)ptr + 4, invalid_size));
 	kfree(ptr);
@@ -686,7 +716,7 @@
 
 static char global_array[10];
 
-static void kasan_global_oob(struct kunit *test)
+static void kasan_global_oob_right(struct kunit *test)
 {
 	/*
 	 * Deliberate out-of-bounds access. To prevent CONFIG_UBSAN_LOCAL_BOUNDS
@@ -709,6 +739,20 @@
 	KUNIT_EXPECT_KASAN_FAIL(test, *(volatile char *)p);
 }
 
+static void kasan_global_oob_left(struct kunit *test)
+{
+	char *volatile array = global_array;
+	char *p = array - 3;
+
+	/*
+	 * GCC is known to fail this test, skip it.
+	 * See https://bugzilla.kernel.org/show_bug.cgi?id=215051.
+	 */
+	KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_CC_IS_CLANG);
+	KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_KASAN_GENERIC);
+	KUNIT_EXPECT_KASAN_FAIL(test, *(volatile char *)p);
+}
+
 /* Check that ksize() makes the whole object accessible. */
 static void ksize_unpoisons_memory(struct kunit *test)
 {
@@ -841,6 +885,19 @@
 	kmem_cache_destroy(cache);
 }
 
+static void empty_cache_ctor(void *object) { }
+
+static void kmem_cache_double_destroy(struct kunit *test)
+{
+	struct kmem_cache *cache;
+
+	/* Provide a constructor to prevent cache merging. */
+	cache = kmem_cache_create("test_cache", 200, 0, 0, empty_cache_ctor);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, cache);
+	kmem_cache_destroy(cache);
+	KUNIT_EXPECT_KASAN_FAIL(test, kmem_cache_destroy(cache));
+}
+
 static void kasan_memchr(struct kunit *test)
 {
 	char *ptr;
@@ -858,6 +915,8 @@
 	ptr = kmalloc(size, GFP_KERNEL | __GFP_ZERO);
 	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr);
 
+	OPTIMIZER_HIDE_VAR(ptr);
+	OPTIMIZER_HIDE_VAR(size);
 	KUNIT_EXPECT_KASAN_FAIL(test,
 		kasan_ptr_result = memchr(ptr, '1', size + 1));
 
@@ -883,6 +942,8 @@
 	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr);
 	memset(arr, 0, sizeof(arr));
 
+	OPTIMIZER_HIDE_VAR(ptr);
+	OPTIMIZER_HIDE_VAR(size);
 	KUNIT_EXPECT_KASAN_FAIL(test,
 		kasan_int_result = memcmp(ptr, arr, size+1));
 	kfree(ptr);
@@ -1012,21 +1073,186 @@
 	KUNIT_EXPECT_KASAN_FAIL(test, kfree_sensitive(ptr));
 }
 
-static void vmalloc_oob(struct kunit *test)
+static void vmalloc_helpers_tags(struct kunit *test)
 {
-	void *area;
+	void *ptr;
+
+	/* This test is intended for tag-based modes. */
+	KASAN_TEST_NEEDS_CONFIG_OFF(test, CONFIG_KASAN_GENERIC);
 
 	KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_KASAN_VMALLOC);
 
+	ptr = vmalloc(PAGE_SIZE);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr);
+
+	/* Check that the returned pointer is tagged. */
+	KUNIT_EXPECT_GE(test, (u8)get_tag(ptr), (u8)KASAN_TAG_MIN);
+	KUNIT_EXPECT_LT(test, (u8)get_tag(ptr), (u8)KASAN_TAG_KERNEL);
+
+	/* Make sure exported vmalloc helpers handle tagged pointers. */
+	KUNIT_ASSERT_TRUE(test, is_vmalloc_addr(ptr));
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, vmalloc_to_page(ptr));
+
+#if !IS_MODULE(CONFIG_KASAN_KUNIT_TEST)
+	{
+		int rv;
+
+		/* Make sure vmalloc'ed memory permissions can be changed. */
+		rv = set_memory_ro((unsigned long)ptr, 1);
+		KUNIT_ASSERT_GE(test, rv, 0);
+		rv = set_memory_rw((unsigned long)ptr, 1);
+		KUNIT_ASSERT_GE(test, rv, 0);
+	}
+#endif
+
+	vfree(ptr);
+}
+
+static void vmalloc_oob(struct kunit *test)
+{
+	char *v_ptr, *p_ptr;
+	struct page *page;
+	size_t size = PAGE_SIZE / 2 - KASAN_GRANULE_SIZE - 5;
+
+	KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_KASAN_VMALLOC);
+
+	v_ptr = vmalloc(size);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, v_ptr);
+
+	OPTIMIZER_HIDE_VAR(v_ptr);
+
 	/*
-	 * We have to be careful not to hit the guard page.
+	 * We have to be careful not to hit the guard page in vmalloc tests.
 	 * The MMU will catch that and crash us.
 	 */
-	area = vmalloc(3000);
-	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, area);
 
-	KUNIT_EXPECT_KASAN_FAIL(test, ((volatile char *)area)[3100]);
-	vfree(area);
+	/* Make sure in-bounds accesses are valid. */
+	v_ptr[0] = 0;
+	v_ptr[size - 1] = 0;
+
+	/*
+	 * An unaligned access past the requested vmalloc size.
+	 * Only generic KASAN can precisely detect these.
+	 */
+	if (IS_ENABLED(CONFIG_KASAN_GENERIC))
+		KUNIT_EXPECT_KASAN_FAIL(test, ((volatile char *)v_ptr)[size]);
+
+	/* An aligned access into the first out-of-bounds granule. */
+	KUNIT_EXPECT_KASAN_FAIL(test, ((volatile char *)v_ptr)[size + 5]);
+
+	/* Check that in-bounds accesses to the physical page are valid. */
+	page = vmalloc_to_page(v_ptr);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, page);
+	p_ptr = page_address(page);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, p_ptr);
+	p_ptr[0] = 0;
+
+	vfree(v_ptr);
+
+	/*
+	 * We can't check for use-after-unmap bugs in this nor in the following
+	 * vmalloc tests, as the page might be fully unmapped and accessing it
+	 * will crash the kernel.
+	 */
+}
+
+static void vmap_tags(struct kunit *test)
+{
+	char *p_ptr, *v_ptr;
+	struct page *p_page, *v_page;
+
+	/*
+	 * This test is specifically crafted for the software tag-based mode,
+	 * the only tag-based mode that poisons vmap mappings.
+	 */
+	KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_KASAN_SW_TAGS);
+
+	KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_KASAN_VMALLOC);
+
+	p_page = alloc_pages(GFP_KERNEL, 1);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, p_page);
+	p_ptr = page_address(p_page);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, p_ptr);
+
+	v_ptr = vmap(&p_page, 1, VM_MAP, PAGE_KERNEL);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, v_ptr);
+
+	/*
+	 * We can't check for out-of-bounds bugs in this nor in the following
+	 * vmalloc tests, as allocations have page granularity and accessing
+	 * the guard page will crash the kernel.
+	 */
+
+	KUNIT_EXPECT_GE(test, (u8)get_tag(v_ptr), (u8)KASAN_TAG_MIN);
+	KUNIT_EXPECT_LT(test, (u8)get_tag(v_ptr), (u8)KASAN_TAG_KERNEL);
+
+	/* Make sure that in-bounds accesses through both pointers work. */
+	*p_ptr = 0;
+	*v_ptr = 0;
+
+	/* Make sure vmalloc_to_page() correctly recovers the page pointer. */
+	v_page = vmalloc_to_page(v_ptr);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, v_page);
+	KUNIT_EXPECT_PTR_EQ(test, p_page, v_page);
+
+	vunmap(v_ptr);
+	free_pages((unsigned long)p_ptr, 1);
+}
+
+static void vm_map_ram_tags(struct kunit *test)
+{
+	char *p_ptr, *v_ptr;
+	struct page *page;
+
+	/*
+	 * This test is specifically crafted for the software tag-based mode,
+	 * the only tag-based mode that poisons vm_map_ram mappings.
+	 */
+	KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_KASAN_SW_TAGS);
+
+	page = alloc_pages(GFP_KERNEL, 1);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, page);
+	p_ptr = page_address(page);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, p_ptr);
+
+	v_ptr = vm_map_ram(&page, 1, -1);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, v_ptr);
+
+	KUNIT_EXPECT_GE(test, (u8)get_tag(v_ptr), (u8)KASAN_TAG_MIN);
+	KUNIT_EXPECT_LT(test, (u8)get_tag(v_ptr), (u8)KASAN_TAG_KERNEL);
+
+	/* Make sure that in-bounds accesses through both pointers work. */
+	*p_ptr = 0;
+	*v_ptr = 0;
+
+	vm_unmap_ram(v_ptr, 1);
+	free_pages((unsigned long)p_ptr, 1);
+}
+
+static void vmalloc_percpu(struct kunit *test)
+{
+	char __percpu *ptr;
+	int cpu;
+
+	/*
+	 * This test is specifically crafted for the software tag-based mode,
+	 * the only tag-based mode that poisons percpu mappings.
+	 */
+	KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_KASAN_SW_TAGS);
+
+	ptr = __alloc_percpu(PAGE_SIZE, PAGE_SIZE);
+
+	for_each_possible_cpu(cpu) {
+		char *c_ptr = per_cpu_ptr(ptr, cpu);
+
+		KUNIT_EXPECT_GE(test, (u8)get_tag(c_ptr), (u8)KASAN_TAG_MIN);
+		KUNIT_EXPECT_LT(test, (u8)get_tag(c_ptr), (u8)KASAN_TAG_KERNEL);
+
+		/* Make sure that in-bounds accesses don't crash the kernel. */
+		*c_ptr = 0;
+	}
+
+	free_percpu(ptr);
 }
 
 /*
@@ -1060,6 +1286,18 @@
 		KUNIT_EXPECT_LT(test, (u8)get_tag(ptr), (u8)KASAN_TAG_KERNEL);
 		free_pages((unsigned long)ptr, order);
 	}
+
+	if (!IS_ENABLED(CONFIG_KASAN_VMALLOC))
+		return;
+
+	for (i = 0; i < 256; i++) {
+		size = (get_random_int() % 1024) + 1;
+		ptr = vmalloc(size);
+		KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr);
+		KUNIT_EXPECT_GE(test, (u8)get_tag(ptr), (u8)KASAN_TAG_MIN);
+		KUNIT_EXPECT_LT(test, (u8)get_tag(ptr), (u8)KASAN_TAG_KERNEL);
+		vfree(ptr);
+	}
 }
 
 /* Check that 0xff works as a match-all pointer tag for tag-based modes. */
@@ -1139,6 +1377,7 @@
 	KUNIT_CASE(kmalloc_oob_memset_4),
 	KUNIT_CASE(kmalloc_oob_memset_8),
 	KUNIT_CASE(kmalloc_oob_memset_16),
+	KUNIT_CASE(kmalloc_memmove_negative_size),
 	KUNIT_CASE(kmalloc_memmove_invalid_size),
 	KUNIT_CASE(kmalloc_uaf),
 	KUNIT_CASE(kmalloc_uaf_memset),
@@ -1148,7 +1387,8 @@
 	KUNIT_CASE(kmem_cache_oob),
 	KUNIT_CASE(kmem_cache_accounted),
 	KUNIT_CASE(kmem_cache_bulk),
-	KUNIT_CASE(kasan_global_oob),
+	KUNIT_CASE(kasan_global_oob_right),
+	KUNIT_CASE(kasan_global_oob_left),
 	KUNIT_CASE(kasan_stack_oob),
 	KUNIT_CASE(kasan_alloca_oob_left),
 	KUNIT_CASE(kasan_alloca_oob_right),
@@ -1156,13 +1396,18 @@
 	KUNIT_CASE(ksize_uaf),
 	KUNIT_CASE(kmem_cache_double_free),
 	KUNIT_CASE(kmem_cache_invalid_free),
+	KUNIT_CASE(kmem_cache_double_destroy),
 	KUNIT_CASE(kasan_memchr),
 	KUNIT_CASE(kasan_memcmp),
 	KUNIT_CASE(kasan_strings),
 	KUNIT_CASE(kasan_bitops_generic),
 	KUNIT_CASE(kasan_bitops_tags),
 	KUNIT_CASE(kmalloc_double_kzfree),
+	KUNIT_CASE(vmalloc_helpers_tags),
 	KUNIT_CASE(vmalloc_oob),
+	KUNIT_CASE(vmap_tags),
+	KUNIT_CASE(vm_map_ram_tags),
+	KUNIT_CASE(vmalloc_percpu),
 	KUNIT_CASE(match_all_not_assigned),
 	KUNIT_CASE(match_all_ptr_tag),
 	KUNIT_CASE(match_all_mem_tag),
diff --git a/lib/test_kasan_module.c b/lib/test_kasan_module.c
index 7ebf433..b112cbc 100644
--- a/lib/test_kasan_module.c
+++ b/lib/test_kasan_module.c
@@ -35,6 +35,8 @@
 		return;
 	}
 
+	OPTIMIZER_HIDE_VAR(size);
+
 	pr_info("out-of-bounds in copy_from_user()\n");
 	unused = copy_from_user(kmem, usermem, size + 1);
 
diff --git a/lib/test_lockup.c b/lib/test_lockup.c
index c3fd87d6..07ff86d 100644
--- a/lib/test_lockup.c
+++ b/lib/test_lockup.c
@@ -616,5 +616,6 @@
 module_init(test_lockup_init);
 
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
 MODULE_AUTHOR("Konstantin Khlebnikov <khlebnikov@yandex-team.ru>");
 MODULE_DESCRIPTION("Test module to generate lockups");
diff --git a/lib/trace_readwrite.c b/lib/trace_readwrite.c
new file mode 100644
index 0000000..10ebe3c
--- /dev/null
+++ b/lib/trace_readwrite.c
@@ -0,0 +1,47 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Register read and write tracepoints
+ *
+ * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#include <linux/ftrace.h>
+#include <linux/module.h>
+#include <asm-generic/io.h>
+
+#define CREATE_TRACE_POINTS
+#include <trace/events/rwmmio.h>
+
+#ifdef CONFIG_TRACE_MMIO_ACCESS
+void log_write_mmio(u64 val, u8 width, volatile void __iomem *addr,
+		    unsigned long caller_addr)
+{
+	trace_rwmmio_write(caller_addr, val, width, addr);
+}
+EXPORT_SYMBOL_GPL(log_write_mmio);
+EXPORT_TRACEPOINT_SYMBOL_GPL(rwmmio_write);
+
+void log_post_write_mmio(u64 val, u8 width, volatile void __iomem *addr,
+			 unsigned long caller_addr)
+{
+	trace_rwmmio_post_write(caller_addr, val, width, addr);
+}
+EXPORT_SYMBOL_GPL(log_post_write_mmio);
+EXPORT_TRACEPOINT_SYMBOL_GPL(rwmmio_post_write);
+
+void log_read_mmio(u8 width, const volatile void __iomem *addr,
+		   unsigned long caller_addr)
+{
+	trace_rwmmio_read(caller_addr, width, addr);
+}
+EXPORT_SYMBOL_GPL(log_read_mmio);
+EXPORT_TRACEPOINT_SYMBOL_GPL(rwmmio_read);
+
+void log_post_read_mmio(u64 val, u8 width, const volatile void __iomem *addr,
+			unsigned long caller_addr)
+{
+	trace_rwmmio_post_read(caller_addr, val, width, addr);
+}
+EXPORT_SYMBOL_GPL(log_post_read_mmio);
+EXPORT_TRACEPOINT_SYMBOL_GPL(rwmmio_post_read);
+#endif /* CONFIG_TRACE_MMIO_ACCESS */
diff --git a/lib/xz/Kconfig b/lib/xz/Kconfig
index 5cb5024..adce22a 100644
--- a/lib/xz/Kconfig
+++ b/lib/xz/Kconfig
@@ -39,6 +39,19 @@
 	default y
 	select XZ_DEC_BCJ
 
+config XZ_DEC_MICROLZMA
+	bool "MicroLZMA decoder"
+	default n
+	help
+	  MicroLZMA is a header format variant where the first byte
+	  of a raw LZMA stream (without the end of stream marker) has
+	  been replaced with a bitwise-negation of the lc/lp/pb
+	  properties byte. MicroLZMA was created to be used in EROFS
+	  but can be used by other things too where wasting minimal
+	  amount of space for headers is important.
+
+	  Unless you know that you need this, say N.
+
 endif
 
 config XZ_DEC_BCJ
diff --git a/lib/xz/xz_dec_lzma2.c b/lib/xz/xz_dec_lzma2.c
index d548cf0..27ce345 100644
--- a/lib/xz/xz_dec_lzma2.c
+++ b/lib/xz/xz_dec_lzma2.c
@@ -248,6 +248,10 @@
 	 * before the first LZMA chunk.
 	 */
 	bool need_props;
+
+#ifdef XZ_DEC_MICROLZMA
+	bool pedantic_microlzma;
+#endif
 };
 
 struct xz_dec_lzma2 {
@@ -419,6 +423,12 @@
 	}
 }
 
+#ifdef XZ_DEC_MICROLZMA
+#	define DICT_FLUSH_SUPPORTS_SKIPPING true
+#else
+#	define DICT_FLUSH_SUPPORTS_SKIPPING false
+#endif
+
 /*
  * Flush pending data from dictionary to b->out. It is assumed that there is
  * enough space in b->out. This is guaranteed because caller uses dict_limit()
@@ -437,9 +447,14 @@
 		 * decompression because in multi-call mode dict->buf
 		 * has been allocated by us in this file; it's not
 		 * provided by the caller like in single-call mode.
+		 *
+		 * With MicroLZMA, b->out can be NULL to skip bytes that
+		 * the caller doesn't need. This cannot be done with XZ
+		 * because it would break BCJ filters.
 		 */
-		memcpy(b->out + b->out_pos, dict->buf + dict->start,
-				copy_size);
+		if (!DICT_FLUSH_SUPPORTS_SKIPPING || b->out != NULL)
+			memcpy(b->out + b->out_pos, dict->buf + dict->start,
+					copy_size);
 	}
 
 	dict->start = dict->pos;
@@ -505,7 +520,7 @@
  * functions so that the compiler is supposed to be able to more easily avoid
  * an extra branch. In this particular version of the LZMA decoder, this
  * doesn't seem to be a good idea (tested with GCC 3.3.6, 3.4.6, and 4.3.3
- * on x86). Using a non-splitted version results in nicer looking code too.
+ * on x86). Using a non-split version results in nicer looking code too.
  *
  * NOTE: This must return an int. Do not make it return a bool or the speed
  * of the code generated by GCC 3.x decreases 10-15 %. (GCC 4.3 doesn't care,
@@ -791,6 +806,7 @@
 	s->lzma.rep1 = 0;
 	s->lzma.rep2 = 0;
 	s->lzma.rep3 = 0;
+	s->lzma.len = 0;
 
 	/*
 	 * All probabilities are initialized to the same value. This hack
@@ -1174,8 +1190,6 @@
 		}
 	}
 
-	s->lzma.len = 0;
-
 	s->lzma2.sequence = SEQ_CONTROL;
 	s->lzma2.need_dict_reset = true;
 
@@ -1191,3 +1205,140 @@
 
 	kfree(s);
 }
+
+#ifdef XZ_DEC_MICROLZMA
+/* This is a wrapper struct to have a nice struct name in the public API. */
+struct xz_dec_microlzma {
+	struct xz_dec_lzma2 s;
+};
+
+enum xz_ret xz_dec_microlzma_run(struct xz_dec_microlzma *s_ptr,
+				 struct xz_buf *b)
+{
+	struct xz_dec_lzma2 *s = &s_ptr->s;
+
+	/*
+	 * sequence is SEQ_PROPERTIES before the first input byte,
+	 * SEQ_LZMA_PREPARE until a total of five bytes have been read,
+	 * and SEQ_LZMA_RUN for the rest of the input stream.
+	 */
+	if (s->lzma2.sequence != SEQ_LZMA_RUN) {
+		if (s->lzma2.sequence == SEQ_PROPERTIES) {
+			/* One byte is needed for the props. */
+			if (b->in_pos >= b->in_size)
+				return XZ_OK;
+
+			/*
+			 * Don't increment b->in_pos here. The same byte is
+			 * also passed to rc_read_init() which will ignore it.
+			 */
+			if (!lzma_props(s, ~b->in[b->in_pos]))
+				return XZ_DATA_ERROR;
+
+			s->lzma2.sequence = SEQ_LZMA_PREPARE;
+		}
+
+		/*
+		 * xz_dec_microlzma_reset() doesn't validate the compressed
+		 * size so we do it here. We have to limit the maximum size
+		 * to avoid integer overflows in lzma2_lzma(). 3 GiB is a nice
+		 * round number and much more than users of this code should
+		 * ever need.
+		 */
+		if (s->lzma2.compressed < RC_INIT_BYTES
+				|| s->lzma2.compressed > (3U << 30))
+			return XZ_DATA_ERROR;
+
+		if (!rc_read_init(&s->rc, b))
+			return XZ_OK;
+
+		s->lzma2.compressed -= RC_INIT_BYTES;
+		s->lzma2.sequence = SEQ_LZMA_RUN;
+
+		dict_reset(&s->dict, b);
+	}
+
+	/* This is to allow increasing b->out_size between calls. */
+	if (DEC_IS_SINGLE(s->dict.mode))
+		s->dict.end = b->out_size - b->out_pos;
+
+	while (true) {
+		dict_limit(&s->dict, min_t(size_t, b->out_size - b->out_pos,
+					   s->lzma2.uncompressed));
+
+		if (!lzma2_lzma(s, b))
+			return XZ_DATA_ERROR;
+
+		s->lzma2.uncompressed -= dict_flush(&s->dict, b);
+
+		if (s->lzma2.uncompressed == 0) {
+			if (s->lzma2.pedantic_microlzma) {
+				if (s->lzma2.compressed > 0 || s->lzma.len > 0
+						|| !rc_is_finished(&s->rc))
+					return XZ_DATA_ERROR;
+			}
+
+			return XZ_STREAM_END;
+		}
+
+		if (b->out_pos == b->out_size)
+			return XZ_OK;
+
+		if (b->in_pos == b->in_size
+				&& s->temp.size < s->lzma2.compressed)
+			return XZ_OK;
+	}
+}
+
+struct xz_dec_microlzma *xz_dec_microlzma_alloc(enum xz_mode mode,
+						uint32_t dict_size)
+{
+	struct xz_dec_microlzma *s;
+
+	/* Restrict dict_size to the same range as in the LZMA2 code. */
+	if (dict_size < 4096 || dict_size > (3U << 30))
+		return NULL;
+
+	s = kmalloc(sizeof(*s), GFP_KERNEL);
+	if (s == NULL)
+		return NULL;
+
+	s->s.dict.mode = mode;
+	s->s.dict.size = dict_size;
+
+	if (DEC_IS_MULTI(mode)) {
+		s->s.dict.end = dict_size;
+
+		s->s.dict.buf = vmalloc(dict_size);
+		if (s->s.dict.buf == NULL) {
+			kfree(s);
+			return NULL;
+		}
+	}
+
+	return s;
+}
+
+void xz_dec_microlzma_reset(struct xz_dec_microlzma *s, uint32_t comp_size,
+			    uint32_t uncomp_size, int uncomp_size_is_exact)
+{
+	/*
+	 * comp_size is validated in xz_dec_microlzma_run().
+	 * uncomp_size can safely be anything.
+	 */
+	s->s.lzma2.compressed = comp_size;
+	s->s.lzma2.uncompressed = uncomp_size;
+	s->s.lzma2.pedantic_microlzma = uncomp_size_is_exact;
+
+	s->s.lzma2.sequence = SEQ_PROPERTIES;
+	s->s.temp.size = 0;
+}
+
+void xz_dec_microlzma_end(struct xz_dec_microlzma *s)
+{
+	if (DEC_IS_MULTI(s->s.dict.mode))
+		vfree(s->s.dict.buf);
+
+	kfree(s);
+}
+#endif
diff --git a/lib/xz/xz_dec_syms.c b/lib/xz/xz_dec_syms.c
index 32eb3c0..61098c6 100644
--- a/lib/xz/xz_dec_syms.c
+++ b/lib/xz/xz_dec_syms.c
@@ -15,8 +15,15 @@
 EXPORT_SYMBOL(xz_dec_run);
 EXPORT_SYMBOL(xz_dec_end);
 
+#ifdef CONFIG_XZ_DEC_MICROLZMA
+EXPORT_SYMBOL(xz_dec_microlzma_alloc);
+EXPORT_SYMBOL(xz_dec_microlzma_reset);
+EXPORT_SYMBOL(xz_dec_microlzma_run);
+EXPORT_SYMBOL(xz_dec_microlzma_end);
+#endif
+
 MODULE_DESCRIPTION("XZ decompressor");
-MODULE_VERSION("1.0");
+MODULE_VERSION("1.1");
 MODULE_AUTHOR("Lasse Collin <lasse.collin@tukaani.org> and Igor Pavlov");
 
 /*
diff --git a/lib/xz/xz_private.h b/lib/xz/xz_private.h
index 09360eb..bf1e94e 100644
--- a/lib/xz/xz_private.h
+++ b/lib/xz/xz_private.h
@@ -37,6 +37,9 @@
 #		ifdef CONFIG_XZ_DEC_SPARC
 #			define XZ_DEC_SPARC
 #		endif
+#		ifdef CONFIG_XZ_DEC_MICROLZMA
+#			define XZ_DEC_MICROLZMA
+#		endif
 #		define memeq(a, b, size) (memcmp(a, b, size) == 0)
 #		define memzero(buf, size) memset(buf, 0, size)
 #	endif
diff --git a/mm/Kconfig b/mm/Kconfig
index c048dea..ae181c7 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -897,6 +897,73 @@
 config SECRETMEM
 	def_bool ARCH_HAS_SET_DIRECT_MAP && !EMBEDDED
 
+# Some architectures want callbacks for all IO mappings in order to
+# track the physical addresses that get used as devices.
+config ARCH_HAS_IOREMAP_PHYS_HOOKS
+	bool
+
+config ANON_VMA_NAME
+	bool "Anonymous VMA name support"
+	depends on PROC_FS && ADVISE_SYSCALLS && MMU
+
+	help
+	  Allow naming anonymous virtual memory areas.
+
+	  This feature allows assigning names to virtual memory areas. Assigned
+	  names can be later retrieved from /proc/pid/maps and /proc/pid/smaps
+	  and help identifying individual anonymous memory areas.
+	  Assigning a name to anonymous virtual memory area might prevent that
+	  area from being merged with adjacent virtual memory areas due to the
+	  difference in their name.
+
+# multi-gen LRU {
+config LRU_GEN
+	bool "Multi-Gen LRU"
+	depends on MMU
+	# make sure page->flags has enough spare bits
+	depends on !MAXSMP && (64BIT || !SPARSEMEM || SPARSEMEM_VMEMMAP)
+	help
+	  A high performance LRU implementation to overcommit memory. See
+	  Documentation/admin-guide/mm/multigen_lru.rst for details.
+
+config LRU_GEN_ENABLED
+	bool "Enable by default"
+	depends on LRU_GEN
+	help
+	  This option enables the multi-gen LRU by default.
+
+config LRU_GEN_STATS
+	bool "Full stats for debugging"
+	depends on LRU_GEN
+	help
+	  Do not enable this option unless you plan to look at historical stats
+	  from evicted generations for debugging purpose.
+
+	  This option has a per-memcg and per-node memory overhead.
+# }
+
 source "mm/damon/Kconfig"
 
+config ARCH_SUPPORTS_SPECULATIVE_PAGE_FAULT
+       def_bool n
+
+config SPECULATIVE_PAGE_FAULT
+	bool "Speculative page faults"
+	default y
+	depends on ARCH_SUPPORTS_SPECULATIVE_PAGE_FAULT && MMU && SMP && !NUMA
+	help
+	  Try to handle user space page faults without holding the mmap lock.
+
+	  Instead of blocking writers through the use of mmap lock,
+	  the page fault handler merely verifies, at the end of the page
+	  fault, that no writers have been running concurrently with it.
+
+	  In high concurrency situations, the speculative fault handler
+	  gains a throughput advantage by avoiding having to update the
+	  mmap lock reader count.
+
+	  If the check fails due to a concurrent writer, or due to hitting
+	  an unsupported case, the fault handler falls back to classical
+	  processing using the mmap read lock.
+
 endmenu
diff --git a/mm/Kconfig.debug b/mm/Kconfig.debug
index 1e73717..32a5839a 100644
--- a/mm/Kconfig.debug
+++ b/mm/Kconfig.debug
@@ -62,6 +62,22 @@
 
 	  If unsure, say N.
 
+config PAGE_PINNER
+        bool "Track page pinner"
+        depends on DEBUG_KERNEL && STACKTRACE_SUPPORT
+        select DEBUG_FS
+        select STACKTRACE
+        select STACKDEPOT
+        select PAGE_EXTENSION
+        help
+          This keeps track of what call chain is the pinner of a page, may
+          help to find page migration failures. Even if you include this
+          feature in your build, it is disabled by default. You should pass
+          "page_pinner=on" to boot parameter in order to enable it. Eats
+          a fair amount of memory if enabled.
+
+          If unsure, say N.
+
 config PAGE_POISONING
 	bool "Poison pages after freeing"
 	help
@@ -150,3 +166,10 @@
 	  kernel.
 
 	  If in doubt, say N.
+
+config SPECULATIVE_PAGE_FAULT_STATS
+	bool "Additional statistics for speculative page faults"
+	depends on SPECULATIVE_PAGE_FAULT
+	help
+	  Additional statistics for speculative page faults.
+	  If in doubt, say N.
diff --git a/mm/Makefile b/mm/Makefile
index fc60a40c..0c9b78b 100644
--- a/mm/Makefile
+++ b/mm/Makefile
@@ -102,6 +102,7 @@
 obj-$(CONFIG_DEBUG_RODATA_TEST) += rodata_test.o
 obj-$(CONFIG_DEBUG_VM_PGTABLE) += debug_vm_pgtable.o
 obj-$(CONFIG_PAGE_OWNER) += page_owner.o
+obj-$(CONFIG_PAGE_PINNER) += page_pinner.o
 obj-$(CONFIG_CLEANCACHE) += cleancache.o
 obj-$(CONFIG_MEMORY_ISOLATION) += page_isolation.o
 obj-$(CONFIG_ZPOOL)	+= zpool.o
diff --git a/mm/cma.c b/mm/cma.c
index a972c34..812c3a9 100644
--- a/mm/cma.c
+++ b/mm/cma.c
@@ -24,6 +24,7 @@
 #include <linux/memblock.h>
 #include <linux/err.h>
 #include <linux/mm.h>
+#include <linux/module.h>
 #include <linux/sizes.h>
 #include <linux/slab.h>
 #include <linux/log2.h>
@@ -31,10 +32,17 @@
 #include <linux/highmem.h>
 #include <linux/io.h>
 #include <linux/kmemleak.h>
+#include <linux/sched.h>
+#include <linux/jiffies.h>
 #include <trace/events/cma.h>
 
 #include "cma.h"
 
+#undef CREATE_TRACE_POINTS
+#ifndef __GENKSYMS__
+#include <trace/hooks/mm.h>
+#endif
+
 struct cma cma_areas[MAX_CMA_AREAS];
 unsigned cma_area_count;
 static DEFINE_MUTEX(cma_mutex);
@@ -53,6 +61,7 @@
 {
 	return cma->name;
 }
+EXPORT_SYMBOL_GPL(cma_get_name);
 
 static unsigned long cma_bitmap_aligned_mask(const struct cma *cma,
 					     unsigned int align_order)
@@ -434,6 +443,8 @@
 	unsigned long i;
 	struct page *page = NULL;
 	int ret = -ENOMEM;
+	int num_attempts = 0;
+	int max_retries = 5;
 
 	if (!cma || !cma->count || !cma->bitmap)
 		goto out;
@@ -454,14 +465,37 @@
 	if (bitmap_count > bitmap_maxno)
 		goto out;
 
+	trace_android_vh_cma_alloc_retry(cma->name, &max_retries);
 	for (;;) {
 		spin_lock_irq(&cma->lock);
 		bitmap_no = bitmap_find_next_zero_area_off(cma->bitmap,
 				bitmap_maxno, start, bitmap_count, mask,
 				offset);
 		if (bitmap_no >= bitmap_maxno) {
-			spin_unlock_irq(&cma->lock);
-			break;
+			if ((num_attempts < max_retries) && (ret == -EBUSY)) {
+				spin_unlock_irq(&cma->lock);
+
+				if (fatal_signal_pending(current)) {
+					ret = -EINTR;
+					break;
+				}
+
+				/*
+				 * Page may be momentarily pinned by some other
+				 * process which has been scheduled out, e.g.
+				 * in exit path, during unmap call, or process
+				 * fork and so cannot be freed there. Sleep
+				 * for 100ms and retry the allocation.
+				 */
+				start = 0;
+				ret = -ENOMEM;
+				schedule_timeout_killable(msecs_to_jiffies(100));
+				num_attempts++;
+				continue;
+			} else {
+				spin_unlock_irq(&cma->lock);
+				break;
+			}
 		}
 		bitmap_set(cma->bitmap, bitmap_no, bitmap_count);
 		/*
@@ -525,6 +559,7 @@
 
 	return page;
 }
+EXPORT_SYMBOL_GPL(cma_alloc);
 
 /**
  * cma_release() - release allocated pages
@@ -559,6 +594,7 @@
 
 	return true;
 }
+EXPORT_SYMBOL_GPL(cma_release);
 
 int cma_for_each_area(int (*it)(struct cma *cma, void *data), void *data)
 {
@@ -573,3 +609,4 @@
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(cma_for_each_area);
diff --git a/mm/compaction.c b/mm/compaction.c
index 89517ad..2c024dc 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -45,6 +45,11 @@
 #define CREATE_TRACE_POINTS
 #include <trace/events/compaction.h>
 
+#undef CREATE_TRACE_POINTS
+#ifndef __GENKSYMS__
+#include <trace/hooks/mm.h>
+#endif
+
 #define block_start_pfn(pfn, order)	round_down(pfn, 1UL << (order))
 #define block_end_pfn(pfn, order)	ALIGN((pfn) + 1, 1UL << (order))
 #define pageblock_start_pfn(pfn)	block_start_pfn(pfn, pageblock_order)
@@ -758,6 +763,31 @@
 	return pfn;
 }
 
+#ifdef CONFIG_COMPACTION
+unsigned long isolate_and_split_free_page(struct page *page,
+						struct list_head *list)
+{
+	unsigned long isolated;
+	unsigned int order;
+
+	if (!PageBuddy(page))
+		return 0;
+
+	order = buddy_order(page);
+	isolated = __isolate_free_page(page, order);
+	if (!isolated)
+		return 0;
+
+	set_page_private(page, order);
+	list_add(&page->lru, list);
+
+	split_map_pages(list);
+
+	return isolated;
+}
+EXPORT_SYMBOL_GPL(isolate_and_split_free_page);
+#endif
+
 /* Similar to reclaim, but different enough that they don't share logic */
 static bool too_many_isolated(pg_data_t *pgdat)
 {
@@ -2059,6 +2089,7 @@
 	unsigned int order;
 	const int migratetype = cc->migratetype;
 	int ret;
+	bool abort_compact = false;
 
 	/* Compaction run completes if the migrate and free scanner meet */
 	if (compact_scanners_met(cc)) {
@@ -2158,7 +2189,8 @@
 	}
 
 out:
-	if (cc->contended || fatal_signal_pending(current))
+	trace_android_vh_compact_finished(&abort_compact);
+	if (cc->contended || fatal_signal_pending(current) || abort_compact)
 		ret = COMPACT_CONTENDED;
 
 	return ret;
diff --git a/mm/damon/Kconfig b/mm/damon/Kconfig
index 3702479..5bcf058 100644
--- a/mm/damon/Kconfig
+++ b/mm/damon/Kconfig
@@ -30,7 +30,15 @@
 	select PAGE_IDLE_FLAG
 	help
 	  This builds the default data access monitoring primitives for DAMON
-	  that works for virtual address spaces.
+	  that work for virtual address spaces.
+
+config DAMON_PADDR
+	bool "Data access monitoring primitives for the physical address space"
+	depends on DAMON && MMU
+	select PAGE_IDLE_FLAG
+	help
+	  This builds the default data access monitoring primitives for DAMON
+	  that works for the physical address space.
 
 config DAMON_VADDR_KUNIT_TEST
 	bool "Test for DAMON primitives" if !KUNIT_ALL_TESTS
@@ -46,7 +54,7 @@
 
 config DAMON_DBGFS
 	bool "DAMON debugfs interface"
-	depends on DAMON_VADDR && DEBUG_FS
+	depends on DAMON_VADDR && DAMON_PADDR && DEBUG_FS
 	help
 	  This builds the debugfs interface for DAMON.  The user space admins
 	  can use the interface for arbitrary data access monitoring.
@@ -65,4 +73,16 @@
 
 	  If unsure, say N.
 
+config DAMON_RECLAIM
+	bool "Build DAMON-based reclaim (DAMON_RECLAIM)"
+	depends on DAMON_PADDR
+	help
+	  This builds the DAMON-based reclamation subsystem.  It finds pages
+	  that not accessed for a long time (cold) using DAMON and reclaim
+	  those.
+
+	  This is suggested to be used as a proactive and lightweight
+	  reclamation under light memory pressure, while the traditional page
+	  scanning-based reclamation is used for heavy pressure.
+
 endmenu
diff --git a/mm/damon/Makefile b/mm/damon/Makefile
index fed4be3b..f7d5ac3 100644
--- a/mm/damon/Makefile
+++ b/mm/damon/Makefile
@@ -1,5 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 
 obj-$(CONFIG_DAMON)		:= core.o
-obj-$(CONFIG_DAMON_VADDR)	+= vaddr.o
+obj-$(CONFIG_DAMON_VADDR)	+= prmtv-common.o vaddr.o
+obj-$(CONFIG_DAMON_PADDR)	+= prmtv-common.o paddr.o
 obj-$(CONFIG_DAMON_DBGFS)	+= dbgfs.o
+obj-$(CONFIG_DAMON_RECLAIM)	+= reclaim.o
diff --git a/mm/damon/core.c b/mm/damon/core.c
index 7a4912d..fa503da 100644
--- a/mm/damon/core.c
+++ b/mm/damon/core.c
@@ -10,8 +10,9 @@
 #include <linux/damon.h>
 #include <linux/delay.h>
 #include <linux/kthread.h>
-#include <linux/random.h>
+#include <linux/mm.h>
 #include <linux/slab.h>
+#include <linux/string.h>
 
 #define CREATE_TRACE_POINTS
 #include <trace/events/damon.h>
@@ -21,9 +22,6 @@
 #define DAMON_MIN_REGION 1
 #endif
 
-/* Get a random number in [l, r) */
-#define damon_rand(l, r) (l + prandom_u32_max(r - l))
-
 static DEFINE_MUTEX(damon_lock);
 static int nr_running_ctxs;
 
@@ -45,18 +43,10 @@
 	region->nr_accesses = 0;
 	INIT_LIST_HEAD(&region->list);
 
-	return region;
-}
+	region->age = 0;
+	region->last_nr_accesses = 0;
 
-/*
- * Add a region between two other regions
- */
-inline void damon_insert_region(struct damon_region *r,
-		struct damon_region *prev, struct damon_region *next,
-		struct damon_target *t)
-{
-	__list_add(&r->list, &prev->list, &next->list);
-	t->nr_regions++;
+	return region;
 }
 
 void damon_add_region(struct damon_region *r, struct damon_target *t)
@@ -82,6 +72,73 @@
 	damon_free_region(r);
 }
 
+struct damos *damon_new_scheme(
+		unsigned long min_sz_region, unsigned long max_sz_region,
+		unsigned int min_nr_accesses, unsigned int max_nr_accesses,
+		unsigned int min_age_region, unsigned int max_age_region,
+		enum damos_action action, struct damos_quota *quota,
+		struct damos_watermarks *wmarks)
+{
+	struct damos *scheme;
+
+	scheme = kmalloc(sizeof(*scheme), GFP_KERNEL);
+	if (!scheme)
+		return NULL;
+	scheme->min_sz_region = min_sz_region;
+	scheme->max_sz_region = max_sz_region;
+	scheme->min_nr_accesses = min_nr_accesses;
+	scheme->max_nr_accesses = max_nr_accesses;
+	scheme->min_age_region = min_age_region;
+	scheme->max_age_region = max_age_region;
+	scheme->action = action;
+	scheme->stat = (struct damos_stat){};
+	INIT_LIST_HEAD(&scheme->list);
+
+	scheme->quota.ms = quota->ms;
+	scheme->quota.sz = quota->sz;
+	scheme->quota.reset_interval = quota->reset_interval;
+	scheme->quota.weight_sz = quota->weight_sz;
+	scheme->quota.weight_nr_accesses = quota->weight_nr_accesses;
+	scheme->quota.weight_age = quota->weight_age;
+	scheme->quota.total_charged_sz = 0;
+	scheme->quota.total_charged_ns = 0;
+	scheme->quota.esz = 0;
+	scheme->quota.charged_sz = 0;
+	scheme->quota.charged_from = 0;
+	scheme->quota.charge_target_from = NULL;
+	scheme->quota.charge_addr_from = 0;
+
+	scheme->wmarks.metric = wmarks->metric;
+	scheme->wmarks.interval = wmarks->interval;
+	scheme->wmarks.high = wmarks->high;
+	scheme->wmarks.mid = wmarks->mid;
+	scheme->wmarks.low = wmarks->low;
+	scheme->wmarks.activated = true;
+
+	return scheme;
+}
+
+void damon_add_scheme(struct damon_ctx *ctx, struct damos *s)
+{
+	list_add_tail(&s->list, &ctx->schemes);
+}
+
+static void damon_del_scheme(struct damos *s)
+{
+	list_del(&s->list);
+}
+
+static void damon_free_scheme(struct damos *s)
+{
+	kfree(s);
+}
+
+void damon_destroy_scheme(struct damos *s)
+{
+	damon_del_scheme(s);
+	damon_free_scheme(s);
+}
+
 /*
  * Construct a damon_target struct
  *
@@ -107,6 +164,11 @@
 	list_add_tail(&t->list, &ctx->adaptive_targets);
 }
 
+bool damon_targets_empty(struct damon_ctx *ctx)
+{
+	return list_empty(&ctx->adaptive_targets);
+}
+
 static void damon_del_target(struct damon_target *t)
 {
 	list_del(&t->list);
@@ -153,6 +215,7 @@
 	ctx->max_nr_regions = 1000;
 
 	INIT_LIST_HEAD(&ctx->adaptive_targets);
+	INIT_LIST_HEAD(&ctx->schemes);
 
 	return ctx;
 }
@@ -172,7 +235,13 @@
 
 void damon_destroy_ctx(struct damon_ctx *ctx)
 {
+	struct damos *s, *next_s;
+
 	damon_destroy_targets(ctx);
+
+	damon_for_each_scheme_safe(s, next_s, ctx)
+		damon_destroy_scheme(s);
+
 	kfree(ctx);
 }
 
@@ -197,7 +266,6 @@
 	for (i = 0; i < nr_ids; i++) {
 		t = damon_new_target(ids[i]);
 		if (!t) {
-			pr_err("Failed to alloc damon_target\n");
 			/* The caller should do cleanup of the ids itself */
 			damon_for_each_target_safe(t, next, ctx)
 				damon_destroy_target(t);
@@ -227,16 +295,10 @@
 		    unsigned long aggr_int, unsigned long primitive_upd_int,
 		    unsigned long min_nr_reg, unsigned long max_nr_reg)
 {
-	if (min_nr_reg < 3) {
-		pr_err("min_nr_regions (%lu) must be at least 3\n",
-				min_nr_reg);
+	if (min_nr_reg < 3)
 		return -EINVAL;
-	}
-	if (min_nr_reg > max_nr_reg) {
-		pr_err("invalid nr_regions.  min (%lu) > max (%lu)\n",
-				min_nr_reg, max_nr_reg);
+	if (min_nr_reg > max_nr_reg)
 		return -EINVAL;
-	}
 
 	ctx->sample_interval = sample_int;
 	ctx->aggr_interval = aggr_int;
@@ -248,6 +310,30 @@
 }
 
 /**
+ * damon_set_schemes() - Set data access monitoring based operation schemes.
+ * @ctx:	monitoring context
+ * @schemes:	array of the schemes
+ * @nr_schemes:	number of entries in @schemes
+ *
+ * This function should not be called while the kdamond of the context is
+ * running.
+ *
+ * Return: 0 if success, or negative error code otherwise.
+ */
+int damon_set_schemes(struct damon_ctx *ctx, struct damos **schemes,
+			ssize_t nr_schemes)
+{
+	struct damos *s, *next;
+	ssize_t i;
+
+	damon_for_each_scheme_safe(s, next, ctx)
+		damon_destroy_scheme(s);
+	for (i = 0; i < nr_schemes; i++)
+		damon_add_scheme(ctx, schemes[i]);
+	return 0;
+}
+
+/**
  * damon_nr_running_ctxs() - Return number of currently running contexts.
  */
 int damon_nr_running_ctxs(void)
@@ -281,17 +367,6 @@
 	return sz;
 }
 
-static bool damon_kdamond_running(struct damon_ctx *ctx)
-{
-	bool running;
-
-	mutex_lock(&ctx->kdamond_lock);
-	running = ctx->kdamond != NULL;
-	mutex_unlock(&ctx->kdamond_lock);
-
-	return running;
-}
-
 static int kdamond_fn(void *data);
 
 /*
@@ -309,12 +384,11 @@
 	mutex_lock(&ctx->kdamond_lock);
 	if (!ctx->kdamond) {
 		err = 0;
-		ctx->kdamond_stop = false;
 		ctx->kdamond = kthread_run(kdamond_fn, ctx, "kdamond.%d",
 				nr_running_ctxs);
 		if (IS_ERR(ctx->kdamond)) {
 			err = PTR_ERR(ctx->kdamond);
-			ctx->kdamond = 0;
+			ctx->kdamond = NULL;
 		}
 	}
 	mutex_unlock(&ctx->kdamond_lock);
@@ -360,7 +434,7 @@
 static void kdamond_usleep(unsigned long usecs)
 {
 	/* See Documentation/timers/timers-howto.rst for the thresholds */
-	if (usecs > 20 * 1000)
+	if (usecs > 20 * USEC_PER_MSEC)
 		schedule_timeout_idle(usecs_to_jiffies(usecs));
 	else
 		usleep_idle_range(usecs, usecs + 1);
@@ -374,12 +448,15 @@
  */
 static int __damon_stop(struct damon_ctx *ctx)
 {
+	struct task_struct *tsk;
+
 	mutex_lock(&ctx->kdamond_lock);
-	if (ctx->kdamond) {
-		ctx->kdamond_stop = true;
+	tsk = ctx->kdamond;
+	if (tsk) {
+		get_task_struct(tsk);
 		mutex_unlock(&ctx->kdamond_lock);
-		while (damon_kdamond_running(ctx))
-			kdamond_usleep(ctx->sample_interval);
+		kthread_stop(tsk);
+		put_task_struct(tsk);
 		return 0;
 	}
 	mutex_unlock(&ctx->kdamond_lock);
@@ -446,18 +523,221 @@
 static void kdamond_reset_aggregated(struct damon_ctx *c)
 {
 	struct damon_target *t;
+	unsigned int ti = 0;	/* target's index */
 
 	damon_for_each_target(t, c) {
 		struct damon_region *r;
 
 		damon_for_each_region(r, t) {
-			trace_damon_aggregated(t, r, damon_nr_regions(t));
+			trace_damon_aggregated(t, ti, r, damon_nr_regions(t));
+			r->last_nr_accesses = r->nr_accesses;
 			r->nr_accesses = 0;
 		}
+		ti++;
 	}
 }
 
-#define sz_damon_region(r) (r->ar.end - r->ar.start)
+static void damon_split_region_at(struct damon_ctx *ctx,
+		struct damon_target *t, struct damon_region *r,
+		unsigned long sz_r);
+
+static bool __damos_valid_target(struct damon_region *r, struct damos *s)
+{
+	unsigned long sz;
+
+	sz = r->ar.end - r->ar.start;
+	return s->min_sz_region <= sz && sz <= s->max_sz_region &&
+		s->min_nr_accesses <= r->nr_accesses &&
+		r->nr_accesses <= s->max_nr_accesses &&
+		s->min_age_region <= r->age && r->age <= s->max_age_region;
+}
+
+static bool damos_valid_target(struct damon_ctx *c, struct damon_target *t,
+		struct damon_region *r, struct damos *s)
+{
+	bool ret = __damos_valid_target(r, s);
+
+	if (!ret || !s->quota.esz || !c->primitive.get_scheme_score)
+		return ret;
+
+	return c->primitive.get_scheme_score(c, t, r, s) >= s->quota.min_score;
+}
+
+static void damon_do_apply_schemes(struct damon_ctx *c,
+				   struct damon_target *t,
+				   struct damon_region *r)
+{
+	struct damos *s;
+
+	damon_for_each_scheme(s, c) {
+		struct damos_quota *quota = &s->quota;
+		unsigned long sz = r->ar.end - r->ar.start;
+		struct timespec64 begin, end;
+		unsigned long sz_applied = 0;
+
+		if (!s->wmarks.activated)
+			continue;
+
+		/* Check the quota */
+		if (quota->esz && quota->charged_sz >= quota->esz)
+			continue;
+
+		/* Skip previously charged regions */
+		if (quota->charge_target_from) {
+			if (t != quota->charge_target_from)
+				continue;
+			if (r == damon_last_region(t)) {
+				quota->charge_target_from = NULL;
+				quota->charge_addr_from = 0;
+				continue;
+			}
+			if (quota->charge_addr_from &&
+					r->ar.end <= quota->charge_addr_from)
+				continue;
+
+			if (quota->charge_addr_from && r->ar.start <
+					quota->charge_addr_from) {
+				sz = ALIGN_DOWN(quota->charge_addr_from -
+						r->ar.start, DAMON_MIN_REGION);
+				if (!sz) {
+					if (r->ar.end - r->ar.start <=
+							DAMON_MIN_REGION)
+						continue;
+					sz = DAMON_MIN_REGION;
+				}
+				damon_split_region_at(c, t, r, sz);
+				r = damon_next_region(r);
+				sz = r->ar.end - r->ar.start;
+			}
+			quota->charge_target_from = NULL;
+			quota->charge_addr_from = 0;
+		}
+
+		if (!damos_valid_target(c, t, r, s))
+			continue;
+
+		/* Apply the scheme */
+		if (c->primitive.apply_scheme) {
+			if (quota->esz &&
+					quota->charged_sz + sz > quota->esz) {
+				sz = ALIGN_DOWN(quota->esz - quota->charged_sz,
+						DAMON_MIN_REGION);
+				if (!sz)
+					goto update_stat;
+				damon_split_region_at(c, t, r, sz);
+			}
+			ktime_get_coarse_ts64(&begin);
+			sz_applied = c->primitive.apply_scheme(c, t, r, s);
+			ktime_get_coarse_ts64(&end);
+			quota->total_charged_ns += timespec64_to_ns(&end) -
+				timespec64_to_ns(&begin);
+			quota->charged_sz += sz;
+			if (quota->esz && quota->charged_sz >= quota->esz) {
+				quota->charge_target_from = t;
+				quota->charge_addr_from = r->ar.end + 1;
+			}
+		}
+		if (s->action != DAMOS_STAT)
+			r->age = 0;
+
+update_stat:
+		s->stat.nr_tried++;
+		s->stat.sz_tried += sz;
+		if (sz_applied)
+			s->stat.nr_applied++;
+		s->stat.sz_applied += sz_applied;
+	}
+}
+
+/* Shouldn't be called if quota->ms and quota->sz are zero */
+static void damos_set_effective_quota(struct damos_quota *quota)
+{
+	unsigned long throughput;
+	unsigned long esz;
+
+	if (!quota->ms) {
+		quota->esz = quota->sz;
+		return;
+	}
+
+	if (quota->total_charged_ns)
+		throughput = quota->total_charged_sz * 1000000 /
+			quota->total_charged_ns;
+	else
+		throughput = PAGE_SIZE * 1024;
+	esz = throughput * quota->ms;
+
+	if (quota->sz && quota->sz < esz)
+		esz = quota->sz;
+	quota->esz = esz;
+}
+
+static void kdamond_apply_schemes(struct damon_ctx *c)
+{
+	struct damon_target *t;
+	struct damon_region *r, *next_r;
+	struct damos *s;
+
+	damon_for_each_scheme(s, c) {
+		struct damos_quota *quota = &s->quota;
+		unsigned long cumulated_sz;
+		unsigned int score, max_score = 0;
+
+		if (!s->wmarks.activated)
+			continue;
+
+		if (!quota->ms && !quota->sz)
+			continue;
+
+		/* New charge window starts */
+		if (time_after_eq(jiffies, quota->charged_from +
+					msecs_to_jiffies(
+						quota->reset_interval))) {
+			if (quota->esz && quota->charged_sz >= quota->esz)
+				s->stat.qt_exceeds++;
+			quota->total_charged_sz += quota->charged_sz;
+			quota->charged_from = jiffies;
+			quota->charged_sz = 0;
+			damos_set_effective_quota(quota);
+		}
+
+		if (!c->primitive.get_scheme_score)
+			continue;
+
+		/* Fill up the score histogram */
+		memset(quota->histogram, 0, sizeof(quota->histogram));
+		damon_for_each_target(t, c) {
+			damon_for_each_region(r, t) {
+				if (!__damos_valid_target(r, s))
+					continue;
+				score = c->primitive.get_scheme_score(
+						c, t, r, s);
+				quota->histogram[score] +=
+					r->ar.end - r->ar.start;
+				if (score > max_score)
+					max_score = score;
+			}
+		}
+
+		/* Set the min score limit */
+		for (cumulated_sz = 0, score = max_score; ; score--) {
+			cumulated_sz += quota->histogram[score];
+			if (cumulated_sz >= quota->esz || !score)
+				break;
+		}
+		quota->min_score = score;
+	}
+
+	damon_for_each_target(t, c) {
+		damon_for_each_region_safe(r, next_r, t)
+			damon_do_apply_schemes(c, t, r);
+	}
+}
+
+static inline unsigned long sz_damon_region(struct damon_region *r)
+{
+	return r->ar.end - r->ar.start;
+}
 
 /*
  * Merge two adjacent regions into one region
@@ -469,12 +749,11 @@
 
 	l->nr_accesses = (l->nr_accesses * sz_l + r->nr_accesses * sz_r) /
 			(sz_l + sz_r);
+	l->age = (l->age * sz_l + r->age * sz_r) / (sz_l + sz_r);
 	l->ar.end = r->ar.end;
 	damon_destroy_region(r, t);
 }
 
-#define diff_of(a, b) (a > b ? a - b : b - a)
-
 /*
  * Merge adjacent regions having similar access frequencies
  *
@@ -488,8 +767,13 @@
 	struct damon_region *r, *prev = NULL, *next;
 
 	damon_for_each_region_safe(r, next, t) {
+		if (abs(r->nr_accesses - r->last_nr_accesses) > thres)
+			r->age = 0;
+		else
+			r->age++;
+
 		if (prev && prev->ar.end == r->ar.start &&
-		    diff_of(prev->nr_accesses, r->nr_accesses) <= thres &&
+		    abs(prev->nr_accesses - r->nr_accesses) <= thres &&
 		    sz_damon_region(prev) + sz_damon_region(r) <= sz_limit)
 			damon_merge_two_regions(t, prev, r);
 		else
@@ -535,6 +819,9 @@
 
 	r->ar.end = new->ar.start;
 
+	new->age = r->age;
+	new->last_nr_accesses = r->last_nr_accesses;
+
 	damon_insert_region(new, r, damon_next_region(r), t);
 }
 
@@ -623,12 +910,8 @@
 static bool kdamond_need_stop(struct damon_ctx *ctx)
 {
 	struct damon_target *t;
-	bool stop;
 
-	mutex_lock(&ctx->kdamond_lock);
-	stop = ctx->kdamond_stop;
-	mutex_unlock(&ctx->kdamond_lock);
-	if (stop)
+	if (kthread_should_stop())
 		return true;
 
 	if (!ctx->primitive.target_valid)
@@ -642,11 +925,73 @@
 	return true;
 }
 
-static void set_kdamond_stop(struct damon_ctx *ctx)
+static unsigned long damos_wmark_metric_value(enum damos_wmark_metric metric)
 {
-	mutex_lock(&ctx->kdamond_lock);
-	ctx->kdamond_stop = true;
-	mutex_unlock(&ctx->kdamond_lock);
+	struct sysinfo i;
+
+	switch (metric) {
+	case DAMOS_WMARK_FREE_MEM_RATE:
+		si_meminfo(&i);
+		return i.freeram * 1000 / i.totalram;
+	default:
+		break;
+	}
+	return -EINVAL;
+}
+
+/*
+ * Returns zero if the scheme is active.  Else, returns time to wait for next
+ * watermark check in micro-seconds.
+ */
+static unsigned long damos_wmark_wait_us(struct damos *scheme)
+{
+	unsigned long metric;
+
+	if (scheme->wmarks.metric == DAMOS_WMARK_NONE)
+		return 0;
+
+	metric = damos_wmark_metric_value(scheme->wmarks.metric);
+	/* higher than high watermark or lower than low watermark */
+	if (metric > scheme->wmarks.high || scheme->wmarks.low > metric) {
+		if (scheme->wmarks.activated)
+			pr_debug("deactivate a scheme (%d) for %s wmark\n",
+					scheme->action,
+					metric > scheme->wmarks.high ?
+					"high" : "low");
+		scheme->wmarks.activated = false;
+		return scheme->wmarks.interval;
+	}
+
+	/* inactive and higher than middle watermark */
+	if ((scheme->wmarks.high >= metric && metric >= scheme->wmarks.mid) &&
+			!scheme->wmarks.activated)
+		return scheme->wmarks.interval;
+
+	if (!scheme->wmarks.activated)
+		pr_debug("activate a scheme (%d)\n", scheme->action);
+	scheme->wmarks.activated = true;
+	return 0;
+}
+
+/* Returns negative error code if it's not activated but should return */
+static int kdamond_wait_activation(struct damon_ctx *ctx)
+{
+	struct damos *s;
+	unsigned long wait_time;
+	unsigned long min_wait_time = 0;
+
+	while (!kdamond_need_stop(ctx)) {
+		damon_for_each_scheme(s, ctx) {
+			wait_time = damos_wmark_wait_us(s);
+			if (!min_wait_time || wait_time < min_wait_time)
+				min_wait_time = wait_time;
+		}
+		if (!min_wait_time)
+			return 0;
+
+		kdamond_usleep(min_wait_time);
+	}
+	return -EBUSY;
 }
 
 /*
@@ -659,24 +1004,26 @@
 	struct damon_region *r, *next;
 	unsigned int max_nr_accesses = 0;
 	unsigned long sz_limit = 0;
+	bool done = false;
 
-	mutex_lock(&ctx->kdamond_lock);
-	pr_info("kdamond (%d) starts\n", ctx->kdamond->pid);
-	mutex_unlock(&ctx->kdamond_lock);
+	pr_debug("kdamond (%d) starts\n", current->pid);
 
 	if (ctx->primitive.init)
 		ctx->primitive.init(ctx);
 	if (ctx->callback.before_start && ctx->callback.before_start(ctx))
-		set_kdamond_stop(ctx);
+		done = true;
 
 	sz_limit = damon_region_sz_limit(ctx);
 
-	while (!kdamond_need_stop(ctx)) {
+	while (!kdamond_need_stop(ctx) && !done) {
+		if (kdamond_wait_activation(ctx))
+			continue;
+
 		if (ctx->primitive.prepare_access_checks)
 			ctx->primitive.prepare_access_checks(ctx);
 		if (ctx->callback.after_sampling &&
 				ctx->callback.after_sampling(ctx))
-			set_kdamond_stop(ctx);
+			done = true;
 
 		kdamond_usleep(ctx->sample_interval);
 
@@ -689,7 +1036,8 @@
 					sz_limit);
 			if (ctx->callback.after_aggregation &&
 					ctx->callback.after_aggregation(ctx))
-				set_kdamond_stop(ctx);
+				done = true;
+			kdamond_apply_schemes(ctx);
 			kdamond_reset_aggregated(ctx);
 			kdamond_split_regions(ctx);
 			if (ctx->primitive.reset_aggregated)
@@ -707,13 +1055,12 @@
 			damon_destroy_region(r, t);
 	}
 
-	if (ctx->callback.before_terminate &&
-			ctx->callback.before_terminate(ctx))
-		set_kdamond_stop(ctx);
+	if (ctx->callback.before_terminate)
+		ctx->callback.before_terminate(ctx);
 	if (ctx->primitive.cleanup)
 		ctx->primitive.cleanup(ctx);
 
-	pr_debug("kdamond (%d) finishes\n", ctx->kdamond->pid);
+	pr_debug("kdamond (%d) finishes\n", current->pid);
 	mutex_lock(&ctx->kdamond_lock);
 	ctx->kdamond = NULL;
 	mutex_unlock(&ctx->kdamond_lock);
@@ -722,7 +1069,7 @@
 	nr_running_ctxs--;
 	mutex_unlock(&damon_lock);
 
-	do_exit(0);
+	return 0;
 }
 
 #include "core-test.h"
diff --git a/mm/damon/dbgfs-test.h b/mm/damon/dbgfs-test.h
index 4eddcfa..86b9f95 100644
--- a/mm/damon/dbgfs-test.h
+++ b/mm/damon/dbgfs-test.h
@@ -109,9 +109,63 @@
 	dbgfs_destroy_ctx(ctx);
 }
 
+static void damon_dbgfs_test_set_init_regions(struct kunit *test)
+{
+	struct damon_ctx *ctx = damon_new_ctx();
+	unsigned long ids[] = {1, 2, 3};
+	/* Each line represents one region in ``<target id> <start> <end>`` */
+	char * const valid_inputs[] = {"2 10 20\n 2   20 30\n2 35 45",
+		"2 10 20\n",
+		"2 10 20\n1 39 59\n1 70 134\n  2  20 25\n",
+		""};
+	/* Reading the file again will show sorted, clean output */
+	char * const valid_expects[] = {"2 10 20\n2 20 30\n2 35 45\n",
+		"2 10 20\n",
+		"1 39 59\n1 70 134\n2 10 20\n2 20 25\n",
+		""};
+	char * const invalid_inputs[] = {"4 10 20\n",	/* target not exists */
+		"2 10 20\n 2 14 26\n",		/* regions overlap */
+		"1 10 20\n2 30 40\n 1 5 8"};	/* not sorted by address */
+	char *input, *expect;
+	int i, rc;
+	char buf[256];
+
+	damon_set_targets(ctx, ids, 3);
+
+	/* Put valid inputs and check the results */
+	for (i = 0; i < ARRAY_SIZE(valid_inputs); i++) {
+		input = valid_inputs[i];
+		expect = valid_expects[i];
+
+		rc = set_init_regions(ctx, input, strnlen(input, 256));
+		KUNIT_EXPECT_EQ(test, rc, 0);
+
+		memset(buf, 0, 256);
+		sprint_init_regions(ctx, buf, 256);
+
+		KUNIT_EXPECT_STREQ(test, (char *)buf, expect);
+	}
+	/* Put invalid inputs and check the return error code */
+	for (i = 0; i < ARRAY_SIZE(invalid_inputs); i++) {
+		input = invalid_inputs[i];
+		pr_info("input: %s\n", input);
+		rc = set_init_regions(ctx, input, strnlen(input, 256));
+		KUNIT_EXPECT_EQ(test, rc, -EINVAL);
+
+		memset(buf, 0, 256);
+		sprint_init_regions(ctx, buf, 256);
+
+		KUNIT_EXPECT_STREQ(test, (char *)buf, "");
+	}
+
+	damon_set_targets(ctx, NULL, 0);
+	damon_destroy_ctx(ctx);
+}
+
 static struct kunit_case damon_test_cases[] = {
 	KUNIT_CASE(damon_dbgfs_test_str_to_target_ids),
 	KUNIT_CASE(damon_dbgfs_test_set_targets),
+	KUNIT_CASE(damon_dbgfs_test_set_init_regions),
 	{},
 };
 
diff --git a/mm/damon/dbgfs.c b/mm/damon/dbgfs.c
index b039fd1..e81bd97 100644
--- a/mm/damon/dbgfs.c
+++ b/mm/damon/dbgfs.c
@@ -69,8 +69,7 @@
 	struct damon_ctx *ctx = file->private_data;
 	unsigned long s, a, r, minr, maxr;
 	char *kbuf;
-	ssize_t ret = count;
-	int err;
+	ssize_t ret;
 
 	kbuf = user_input_str(buf, count, ppos);
 	if (IS_ERR(kbuf))
@@ -88,9 +87,9 @@
 		goto unlock_out;
 	}
 
-	err = damon_set_attrs(ctx, s, a, r, minr, maxr);
-	if (err)
-		ret = err;
+	ret = damon_set_attrs(ctx, s, a, r, minr, maxr);
+	if (!ret)
+		ret = count;
 unlock_out:
 	mutex_unlock(&ctx->kdamond_lock);
 out:
@@ -98,6 +97,184 @@
 	return ret;
 }
 
+static ssize_t sprint_schemes(struct damon_ctx *c, char *buf, ssize_t len)
+{
+	struct damos *s;
+	int written = 0;
+	int rc;
+
+	damon_for_each_scheme(s, c) {
+		rc = scnprintf(&buf[written], len - written,
+				"%lu %lu %u %u %u %u %d %lu %lu %lu %u %u %u %d %lu %lu %lu %lu %lu %lu %lu %lu %lu\n",
+				s->min_sz_region, s->max_sz_region,
+				s->min_nr_accesses, s->max_nr_accesses,
+				s->min_age_region, s->max_age_region,
+				s->action,
+				s->quota.ms, s->quota.sz,
+				s->quota.reset_interval,
+				s->quota.weight_sz,
+				s->quota.weight_nr_accesses,
+				s->quota.weight_age,
+				s->wmarks.metric, s->wmarks.interval,
+				s->wmarks.high, s->wmarks.mid, s->wmarks.low,
+				s->stat.nr_tried, s->stat.sz_tried,
+				s->stat.nr_applied, s->stat.sz_applied,
+				s->stat.qt_exceeds);
+		if (!rc)
+			return -ENOMEM;
+
+		written += rc;
+	}
+	return written;
+}
+
+static ssize_t dbgfs_schemes_read(struct file *file, char __user *buf,
+		size_t count, loff_t *ppos)
+{
+	struct damon_ctx *ctx = file->private_data;
+	char *kbuf;
+	ssize_t len;
+
+	kbuf = kmalloc(count, GFP_KERNEL);
+	if (!kbuf)
+		return -ENOMEM;
+
+	mutex_lock(&ctx->kdamond_lock);
+	len = sprint_schemes(ctx, kbuf, count);
+	mutex_unlock(&ctx->kdamond_lock);
+	if (len < 0)
+		goto out;
+	len = simple_read_from_buffer(buf, count, ppos, kbuf, len);
+
+out:
+	kfree(kbuf);
+	return len;
+}
+
+static void free_schemes_arr(struct damos **schemes, ssize_t nr_schemes)
+{
+	ssize_t i;
+
+	for (i = 0; i < nr_schemes; i++)
+		kfree(schemes[i]);
+	kfree(schemes);
+}
+
+static bool damos_action_valid(int action)
+{
+	switch (action) {
+	case DAMOS_WILLNEED:
+	case DAMOS_COLD:
+	case DAMOS_PAGEOUT:
+	case DAMOS_HUGEPAGE:
+	case DAMOS_NOHUGEPAGE:
+	case DAMOS_STAT:
+		return true;
+	default:
+		return false;
+	}
+}
+
+/*
+ * Converts a string into an array of struct damos pointers
+ *
+ * Returns an array of struct damos pointers that converted if the conversion
+ * success, or NULL otherwise.
+ */
+static struct damos **str_to_schemes(const char *str, ssize_t len,
+				ssize_t *nr_schemes)
+{
+	struct damos *scheme, **schemes;
+	const int max_nr_schemes = 256;
+	int pos = 0, parsed, ret;
+	unsigned long min_sz, max_sz;
+	unsigned int min_nr_a, max_nr_a, min_age, max_age;
+	unsigned int action;
+
+	schemes = kmalloc_array(max_nr_schemes, sizeof(scheme),
+			GFP_KERNEL);
+	if (!schemes)
+		return NULL;
+
+	*nr_schemes = 0;
+	while (pos < len && *nr_schemes < max_nr_schemes) {
+		struct damos_quota quota = {};
+		struct damos_watermarks wmarks;
+
+		ret = sscanf(&str[pos],
+				"%lu %lu %u %u %u %u %u %lu %lu %lu %u %u %u %u %lu %lu %lu %lu%n",
+				&min_sz, &max_sz, &min_nr_a, &max_nr_a,
+				&min_age, &max_age, &action, &quota.ms,
+				&quota.sz, &quota.reset_interval,
+				&quota.weight_sz, &quota.weight_nr_accesses,
+				&quota.weight_age, &wmarks.metric,
+				&wmarks.interval, &wmarks.high, &wmarks.mid,
+				&wmarks.low, &parsed);
+		if (ret != 18)
+			break;
+		if (!damos_action_valid(action))
+			goto fail;
+
+		if (min_sz > max_sz || min_nr_a > max_nr_a || min_age > max_age)
+			goto fail;
+
+		if (wmarks.high < wmarks.mid || wmarks.high < wmarks.low ||
+		    wmarks.mid <  wmarks.low)
+			goto fail;
+
+		pos += parsed;
+		scheme = damon_new_scheme(min_sz, max_sz, min_nr_a, max_nr_a,
+				min_age, max_age, action, &quota, &wmarks);
+		if (!scheme)
+			goto fail;
+
+		schemes[*nr_schemes] = scheme;
+		*nr_schemes += 1;
+	}
+	return schemes;
+fail:
+	free_schemes_arr(schemes, *nr_schemes);
+	return NULL;
+}
+
+static ssize_t dbgfs_schemes_write(struct file *file, const char __user *buf,
+		size_t count, loff_t *ppos)
+{
+	struct damon_ctx *ctx = file->private_data;
+	char *kbuf;
+	struct damos **schemes;
+	ssize_t nr_schemes = 0, ret;
+
+	kbuf = user_input_str(buf, count, ppos);
+	if (IS_ERR(kbuf))
+		return PTR_ERR(kbuf);
+
+	schemes = str_to_schemes(kbuf, count, &nr_schemes);
+	if (!schemes) {
+		ret = -EINVAL;
+		goto out;
+	}
+
+	mutex_lock(&ctx->kdamond_lock);
+	if (ctx->kdamond) {
+		ret = -EBUSY;
+		goto unlock_out;
+	}
+
+	ret = damon_set_schemes(ctx, schemes, nr_schemes);
+	if (!ret) {
+		ret = count;
+		nr_schemes = 0;
+	}
+
+unlock_out:
+	mutex_unlock(&ctx->kdamond_lock);
+	free_schemes_arr(schemes, nr_schemes);
+out:
+	kfree(kbuf);
+	return ret;
+}
+
 static inline bool targetid_is_pid(const struct damon_ctx *ctx)
 {
 	return ctx->primitive.target_valid == damon_va_target_valid;
@@ -186,26 +363,30 @@
 {
 	struct damon_ctx *ctx = file->private_data;
 	struct damon_target *t, *next_t;
-	char *kbuf, *nrs;
+	bool id_is_pid = true;
+	char *kbuf;
 	unsigned long *targets;
 	ssize_t nr_targets;
-	ssize_t ret = count;
+	ssize_t ret;
 	int i;
-	int err;
 
 	kbuf = user_input_str(buf, count, ppos);
 	if (IS_ERR(kbuf))
 		return PTR_ERR(kbuf);
 
-	nrs = kbuf;
+	if (!strncmp(kbuf, "paddr\n", count)) {
+		id_is_pid = false;
+		/* target id is meaningless here, but we set it just for fun */
+		scnprintf(kbuf, count, "42    ");
+	}
 
-	targets = str_to_target_ids(nrs, ret, &nr_targets);
+	targets = str_to_target_ids(kbuf, count, &nr_targets);
 	if (!targets) {
 		ret = -ENOMEM;
 		goto out;
 	}
 
-	if (targetid_is_pid(ctx)) {
+	if (id_is_pid) {
 		for (i = 0; i < nr_targets; i++) {
 			targets[i] = (unsigned long)find_get_pid(
 					(int)targets[i]);
@@ -219,7 +400,7 @@
 
 	mutex_lock(&ctx->kdamond_lock);
 	if (ctx->kdamond) {
-		if (targetid_is_pid(ctx))
+		if (id_is_pid)
 			dbgfs_put_pids(targets, nr_targets);
 		ret = -EBUSY;
 		goto unlock_out;
@@ -232,11 +413,21 @@
 		damon_destroy_target(t);
 	}
 
-	err = damon_set_targets(ctx, targets, nr_targets);
-	if (err) {
-		if (targetid_is_pid(ctx))
+	/* remove targets with previously-set primitive */
+	damon_set_targets(ctx, NULL, 0);
+
+	/* Configure the context for the address space type */
+	if (id_is_pid)
+		damon_va_set_primitives(ctx);
+	else
+		damon_pa_set_primitives(ctx);
+
+	ret = damon_set_targets(ctx, targets, nr_targets);
+	if (ret) {
+		if (id_is_pid)
 			dbgfs_put_pids(targets, nr_targets);
-		ret = err;
+	} else {
+		ret = count;
 	}
 
 unlock_out:
@@ -248,6 +439,152 @@
 	return ret;
 }
 
+static ssize_t sprint_init_regions(struct damon_ctx *c, char *buf, ssize_t len)
+{
+	struct damon_target *t;
+	struct damon_region *r;
+	int written = 0;
+	int rc;
+
+	damon_for_each_target(t, c) {
+		damon_for_each_region(r, t) {
+			rc = scnprintf(&buf[written], len - written,
+					"%lu %lu %lu\n",
+					t->id, r->ar.start, r->ar.end);
+			if (!rc)
+				return -ENOMEM;
+			written += rc;
+		}
+	}
+	return written;
+}
+
+static ssize_t dbgfs_init_regions_read(struct file *file, char __user *buf,
+		size_t count, loff_t *ppos)
+{
+	struct damon_ctx *ctx = file->private_data;
+	char *kbuf;
+	ssize_t len;
+
+	kbuf = kmalloc(count, GFP_KERNEL);
+	if (!kbuf)
+		return -ENOMEM;
+
+	mutex_lock(&ctx->kdamond_lock);
+	if (ctx->kdamond) {
+		mutex_unlock(&ctx->kdamond_lock);
+		len = -EBUSY;
+		goto out;
+	}
+
+	len = sprint_init_regions(ctx, kbuf, count);
+	mutex_unlock(&ctx->kdamond_lock);
+	if (len < 0)
+		goto out;
+	len = simple_read_from_buffer(buf, count, ppos, kbuf, len);
+
+out:
+	kfree(kbuf);
+	return len;
+}
+
+static int add_init_region(struct damon_ctx *c,
+			 unsigned long target_id, struct damon_addr_range *ar)
+{
+	struct damon_target *t;
+	struct damon_region *r, *prev;
+	unsigned long id;
+	int rc = -EINVAL;
+
+	if (ar->start >= ar->end)
+		return -EINVAL;
+
+	damon_for_each_target(t, c) {
+		id = t->id;
+		if (targetid_is_pid(c))
+			id = (unsigned long)pid_vnr((struct pid *)id);
+		if (id == target_id) {
+			r = damon_new_region(ar->start, ar->end);
+			if (!r)
+				return -ENOMEM;
+			damon_add_region(r, t);
+			if (damon_nr_regions(t) > 1) {
+				prev = damon_prev_region(r);
+				if (prev->ar.end > r->ar.start) {
+					damon_destroy_region(r, t);
+					return -EINVAL;
+				}
+			}
+			rc = 0;
+		}
+	}
+	return rc;
+}
+
+static int set_init_regions(struct damon_ctx *c, const char *str, ssize_t len)
+{
+	struct damon_target *t;
+	struct damon_region *r, *next;
+	int pos = 0, parsed, ret;
+	unsigned long target_id;
+	struct damon_addr_range ar;
+	int err;
+
+	damon_for_each_target(t, c) {
+		damon_for_each_region_safe(r, next, t)
+			damon_destroy_region(r, t);
+	}
+
+	while (pos < len) {
+		ret = sscanf(&str[pos], "%lu %lu %lu%n",
+				&target_id, &ar.start, &ar.end, &parsed);
+		if (ret != 3)
+			break;
+		err = add_init_region(c, target_id, &ar);
+		if (err)
+			goto fail;
+		pos += parsed;
+	}
+
+	return 0;
+
+fail:
+	damon_for_each_target(t, c) {
+		damon_for_each_region_safe(r, next, t)
+			damon_destroy_region(r, t);
+	}
+	return err;
+}
+
+static ssize_t dbgfs_init_regions_write(struct file *file,
+					  const char __user *buf, size_t count,
+					  loff_t *ppos)
+{
+	struct damon_ctx *ctx = file->private_data;
+	char *kbuf;
+	ssize_t ret = count;
+	int err;
+
+	kbuf = user_input_str(buf, count, ppos);
+	if (IS_ERR(kbuf))
+		return PTR_ERR(kbuf);
+
+	mutex_lock(&ctx->kdamond_lock);
+	if (ctx->kdamond) {
+		ret = -EBUSY;
+		goto unlock_out;
+	}
+
+	err = set_init_regions(ctx, kbuf, ret);
+	if (err)
+		ret = err;
+
+unlock_out:
+	mutex_unlock(&ctx->kdamond_lock);
+	kfree(kbuf);
+	return ret;
+}
+
 static ssize_t dbgfs_kdamond_pid_read(struct file *file,
 		char __user *buf, size_t count, loff_t *ppos)
 {
@@ -287,12 +624,24 @@
 	.write = dbgfs_attrs_write,
 };
 
+static const struct file_operations schemes_fops = {
+	.open = damon_dbgfs_open,
+	.read = dbgfs_schemes_read,
+	.write = dbgfs_schemes_write,
+};
+
 static const struct file_operations target_ids_fops = {
 	.open = damon_dbgfs_open,
 	.read = dbgfs_target_ids_read,
 	.write = dbgfs_target_ids_write,
 };
 
+static const struct file_operations init_regions_fops = {
+	.open = damon_dbgfs_open,
+	.read = dbgfs_init_regions_read,
+	.write = dbgfs_init_regions_write,
+};
+
 static const struct file_operations kdamond_pid_fops = {
 	.open = damon_dbgfs_open,
 	.read = dbgfs_kdamond_pid_read,
@@ -300,22 +649,22 @@
 
 static void dbgfs_fill_ctx_dir(struct dentry *dir, struct damon_ctx *ctx)
 {
-	const char * const file_names[] = {"attrs", "target_ids",
-		"kdamond_pid"};
-	const struct file_operations *fops[] = {&attrs_fops, &target_ids_fops,
-		&kdamond_pid_fops};
+	const char * const file_names[] = {"attrs", "schemes", "target_ids",
+		"init_regions", "kdamond_pid"};
+	const struct file_operations *fops[] = {&attrs_fops, &schemes_fops,
+		&target_ids_fops, &init_regions_fops, &kdamond_pid_fops};
 	int i;
 
 	for (i = 0; i < ARRAY_SIZE(file_names); i++)
 		debugfs_create_file(file_names[i], 0600, dir, ctx, fops[i]);
 }
 
-static int dbgfs_before_terminate(struct damon_ctx *ctx)
+static void dbgfs_before_terminate(struct damon_ctx *ctx)
 {
 	struct damon_target *t, *next;
 
 	if (!targetid_is_pid(ctx))
-		return 0;
+		return;
 
 	mutex_lock(&ctx->kdamond_lock);
 	damon_for_each_target_safe(t, next, ctx) {
@@ -323,7 +672,6 @@
 		damon_destroy_target(t);
 	}
 	mutex_unlock(&ctx->kdamond_lock);
-	return 0;
 }
 
 static struct damon_ctx *dbgfs_new_ctx(void)
@@ -401,8 +749,7 @@
 {
 	char *kbuf;
 	char *ctx_name;
-	ssize_t ret = count;
-	int err;
+	ssize_t ret;
 
 	kbuf = user_input_str(buf, count, ppos);
 	if (IS_ERR(kbuf))
@@ -420,9 +767,9 @@
 	}
 
 	mutex_lock(&damon_dbgfs_lock);
-	err = dbgfs_mk_context(ctx_name);
-	if (err)
-		ret = err;
+	ret = dbgfs_mk_context(ctx_name);
+	if (!ret)
+		ret = count;
 	mutex_unlock(&damon_dbgfs_lock);
 
 out:
@@ -507,8 +854,7 @@
 		const char __user *buf, size_t count, loff_t *ppos)
 {
 	char *kbuf;
-	ssize_t ret = count;
-	int err;
+	ssize_t ret;
 	char *ctx_name;
 
 	kbuf = user_input_str(buf, count, ppos);
@@ -527,9 +873,9 @@
 	}
 
 	mutex_lock(&damon_dbgfs_lock);
-	err = dbgfs_rm_context(ctx_name);
-	if (err)
-		ret = err;
+	ret = dbgfs_rm_context(ctx_name);
+	if (!ret)
+		ret = count;
 	mutex_unlock(&damon_dbgfs_lock);
 
 out:
@@ -553,9 +899,8 @@
 static ssize_t dbgfs_monitor_on_write(struct file *file,
 		const char __user *buf, size_t count, loff_t *ppos)
 {
-	ssize_t ret = count;
+	ssize_t ret;
 	char *kbuf;
-	int err;
 
 	kbuf = user_input_str(buf, count, ppos);
 	if (IS_ERR(kbuf))
@@ -568,16 +913,26 @@
 	}
 
 	mutex_lock(&damon_dbgfs_lock);
-	if (!strncmp(kbuf, "on", count))
-		err = damon_start(dbgfs_ctxs, dbgfs_nr_ctxs);
-	else if (!strncmp(kbuf, "off", count))
-		err = damon_stop(dbgfs_ctxs, dbgfs_nr_ctxs);
-	else
-		err = -EINVAL;
+	if (!strncmp(kbuf, "on", count)) {
+		int i;
+
+		for (i = 0; i < dbgfs_nr_ctxs; i++) {
+			if (damon_targets_empty(dbgfs_ctxs[i])) {
+				kfree(kbuf);
+				mutex_unlock(&damon_dbgfs_lock);
+				return -EINVAL;
+			}
+		}
+		ret = damon_start(dbgfs_ctxs, dbgfs_nr_ctxs);
+	} else if (!strncmp(kbuf, "off", count)) {
+		ret = damon_stop(dbgfs_ctxs, dbgfs_nr_ctxs);
+	} else {
+		ret = -EINVAL;
+	}
 	mutex_unlock(&damon_dbgfs_lock);
 
-	if (err)
-		ret = err;
+	if (!ret)
+		ret = count;
 	kfree(kbuf);
 	return ret;
 }
diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c
new file mode 100644
index 0000000..a524b28
--- /dev/null
+++ b/mm/damon/paddr.c
@@ -0,0 +1,275 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * DAMON Primitives for The Physical Address Space
+ *
+ * Author: SeongJae Park <sj@kernel.org>
+ */
+
+#define pr_fmt(fmt) "damon-pa: " fmt
+
+#include <linux/mmu_notifier.h>
+#include <linux/page_idle.h>
+#include <linux/pagemap.h>
+#include <linux/rmap.h>
+#include <linux/swap.h>
+
+#include "../internal.h"
+#include "prmtv-common.h"
+
+static bool __damon_pa_mkold(struct page *page, struct vm_area_struct *vma,
+		unsigned long addr, void *arg)
+{
+	struct page_vma_mapped_walk pvmw = {
+		.page = page,
+		.vma = vma,
+		.address = addr,
+	};
+
+	while (page_vma_mapped_walk(&pvmw)) {
+		addr = pvmw.address;
+		if (pvmw.pte)
+			damon_ptep_mkold(pvmw.pte, vma, addr);
+		else
+			damon_pmdp_mkold(pvmw.pmd, vma, addr);
+	}
+	return true;
+}
+
+static void damon_pa_mkold(unsigned long paddr)
+{
+	struct page *page = damon_get_page(PHYS_PFN(paddr));
+	struct rmap_walk_control rwc = {
+		.rmap_one = __damon_pa_mkold,
+		.anon_lock = page_lock_anon_vma_read,
+	};
+	bool need_lock;
+
+	if (!page)
+		return;
+
+	if (!page_mapped(page) || !page_rmapping(page)) {
+		set_page_idle(page);
+		goto out;
+	}
+
+	need_lock = !PageAnon(page) || PageKsm(page);
+	if (need_lock && !trylock_page(page))
+		goto out;
+
+	rmap_walk(page, &rwc);
+
+	if (need_lock)
+		unlock_page(page);
+
+out:
+	put_page(page);
+}
+
+static void __damon_pa_prepare_access_check(struct damon_ctx *ctx,
+					    struct damon_region *r)
+{
+	r->sampling_addr = damon_rand(r->ar.start, r->ar.end);
+
+	damon_pa_mkold(r->sampling_addr);
+}
+
+static void damon_pa_prepare_access_checks(struct damon_ctx *ctx)
+{
+	struct damon_target *t;
+	struct damon_region *r;
+
+	damon_for_each_target(t, ctx) {
+		damon_for_each_region(r, t)
+			__damon_pa_prepare_access_check(ctx, r);
+	}
+}
+
+struct damon_pa_access_chk_result {
+	unsigned long page_sz;
+	bool accessed;
+};
+
+static bool __damon_pa_young(struct page *page, struct vm_area_struct *vma,
+		unsigned long addr, void *arg)
+{
+	struct damon_pa_access_chk_result *result = arg;
+	struct page_vma_mapped_walk pvmw = {
+		.page = page,
+		.vma = vma,
+		.address = addr,
+	};
+
+	result->accessed = false;
+	result->page_sz = PAGE_SIZE;
+	while (page_vma_mapped_walk(&pvmw)) {
+		addr = pvmw.address;
+		if (pvmw.pte) {
+			result->accessed = pte_young(*pvmw.pte) ||
+				!page_is_idle(page) ||
+				mmu_notifier_test_young(vma->vm_mm, addr);
+		} else {
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+			result->accessed = pmd_young(*pvmw.pmd) ||
+				!page_is_idle(page) ||
+				mmu_notifier_test_young(vma->vm_mm, addr);
+			result->page_sz = ((1UL) << HPAGE_PMD_SHIFT);
+#else
+			WARN_ON_ONCE(1);
+#endif	/* CONFIG_TRANSPARENT_HUGEPAGE */
+		}
+		if (result->accessed) {
+			page_vma_mapped_walk_done(&pvmw);
+			break;
+		}
+	}
+
+	/* If accessed, stop walking */
+	return !result->accessed;
+}
+
+static bool damon_pa_young(unsigned long paddr, unsigned long *page_sz)
+{
+	struct page *page = damon_get_page(PHYS_PFN(paddr));
+	struct damon_pa_access_chk_result result = {
+		.page_sz = PAGE_SIZE,
+		.accessed = false,
+	};
+	struct rmap_walk_control rwc = {
+		.arg = &result,
+		.rmap_one = __damon_pa_young,
+		.anon_lock = page_lock_anon_vma_read,
+	};
+	bool need_lock;
+
+	if (!page)
+		return false;
+
+	if (!page_mapped(page) || !page_rmapping(page)) {
+		if (page_is_idle(page))
+			result.accessed = false;
+		else
+			result.accessed = true;
+		put_page(page);
+		goto out;
+	}
+
+	need_lock = !PageAnon(page) || PageKsm(page);
+	if (need_lock && !trylock_page(page)) {
+		put_page(page);
+		return NULL;
+	}
+
+	rmap_walk(page, &rwc);
+
+	if (need_lock)
+		unlock_page(page);
+	put_page(page);
+
+out:
+	*page_sz = result.page_sz;
+	return result.accessed;
+}
+
+static void __damon_pa_check_access(struct damon_ctx *ctx,
+				    struct damon_region *r)
+{
+	static unsigned long last_addr;
+	static unsigned long last_page_sz = PAGE_SIZE;
+	static bool last_accessed;
+
+	/* If the region is in the last checked page, reuse the result */
+	if (ALIGN_DOWN(last_addr, last_page_sz) ==
+				ALIGN_DOWN(r->sampling_addr, last_page_sz)) {
+		if (last_accessed)
+			r->nr_accesses++;
+		return;
+	}
+
+	last_accessed = damon_pa_young(r->sampling_addr, &last_page_sz);
+	if (last_accessed)
+		r->nr_accesses++;
+
+	last_addr = r->sampling_addr;
+}
+
+static unsigned int damon_pa_check_accesses(struct damon_ctx *ctx)
+{
+	struct damon_target *t;
+	struct damon_region *r;
+	unsigned int max_nr_accesses = 0;
+
+	damon_for_each_target(t, ctx) {
+		damon_for_each_region(r, t) {
+			__damon_pa_check_access(ctx, r);
+			max_nr_accesses = max(r->nr_accesses, max_nr_accesses);
+		}
+	}
+
+	return max_nr_accesses;
+}
+
+bool damon_pa_target_valid(void *t)
+{
+	return true;
+}
+
+static unsigned long damon_pa_apply_scheme(struct damon_ctx *ctx,
+		struct damon_target *t, struct damon_region *r,
+		struct damos *scheme)
+{
+	unsigned long addr, applied;
+	LIST_HEAD(page_list);
+
+	if (scheme->action != DAMOS_PAGEOUT)
+		return 0;
+
+	for (addr = r->ar.start; addr < r->ar.end; addr += PAGE_SIZE) {
+		struct page *page = damon_get_page(PHYS_PFN(addr));
+
+		if (!page)
+			continue;
+
+		ClearPageReferenced(page);
+		test_and_clear_page_young(page);
+		if (isolate_lru_page(page)) {
+			put_page(page);
+			continue;
+		}
+		if (PageUnevictable(page)) {
+			putback_lru_page(page);
+		} else {
+			list_add(&page->lru, &page_list);
+			put_page(page);
+		}
+	}
+	applied = reclaim_pages(&page_list);
+	cond_resched();
+	return applied * PAGE_SIZE;
+}
+
+static int damon_pa_scheme_score(struct damon_ctx *context,
+		struct damon_target *t, struct damon_region *r,
+		struct damos *scheme)
+{
+	switch (scheme->action) {
+	case DAMOS_PAGEOUT:
+		return damon_pageout_score(context, r, scheme);
+	default:
+		break;
+	}
+
+	return DAMOS_MAX_SCORE;
+}
+
+void damon_pa_set_primitives(struct damon_ctx *ctx)
+{
+	ctx->primitive.init = NULL;
+	ctx->primitive.update = NULL;
+	ctx->primitive.prepare_access_checks = damon_pa_prepare_access_checks;
+	ctx->primitive.check_accesses = damon_pa_check_accesses;
+	ctx->primitive.reset_aggregated = NULL;
+	ctx->primitive.target_valid = damon_pa_target_valid;
+	ctx->primitive.cleanup = NULL;
+	ctx->primitive.apply_scheme = damon_pa_apply_scheme;
+	ctx->primitive.get_scheme_score = damon_pa_scheme_score;
+}
diff --git a/mm/damon/prmtv-common.c b/mm/damon/prmtv-common.c
new file mode 100644
index 0000000..f6c02a4
--- /dev/null
+++ b/mm/damon/prmtv-common.c
@@ -0,0 +1,129 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Common Primitives for Data Access Monitoring
+ *
+ * Author: SeongJae Park <sj@kernel.org>
+ */
+
+#include <linux/mmu_notifier.h>
+#include <linux/page_idle.h>
+#include <linux/pagemap.h>
+#include <linux/rmap.h>
+
+#include "prmtv-common.h"
+
+/*
+ * Get an online page for a pfn if it's in the LRU list.  Otherwise, returns
+ * NULL.
+ *
+ * The body of this function is stolen from the 'page_idle_get_page()'.  We
+ * steal rather than reuse it because the code is quite simple.
+ */
+struct page *damon_get_page(unsigned long pfn)
+{
+	struct page *page = pfn_to_online_page(pfn);
+
+	if (!page || !PageLRU(page) || !get_page_unless_zero(page))
+		return NULL;
+
+	if (unlikely(!PageLRU(page))) {
+		put_page(page);
+		page = NULL;
+	}
+	return page;
+}
+
+void damon_ptep_mkold(pte_t *pte, struct vm_area_struct *vma, unsigned long addr)
+{
+	bool referenced = false;
+	struct page *page = damon_get_page(pte_pfn(*pte));
+
+	if (!page)
+		return;
+
+	if (ptep_test_and_clear_young(vma, addr, pte))
+		referenced = true;
+
+#ifdef CONFIG_MMU_NOTIFIER
+	if (mmu_notifier_clear_young(vma->vm_mm, addr, addr + PAGE_SIZE))
+		referenced = true;
+#endif /* CONFIG_MMU_NOTIFIER */
+
+	if (referenced)
+		set_page_young(page);
+
+	set_page_idle(page);
+	put_page(page);
+}
+
+void damon_pmdp_mkold(pmd_t *pmd, struct vm_area_struct *vma, unsigned long addr)
+{
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+	bool referenced = false;
+	struct page *page = damon_get_page(pmd_pfn(*pmd));
+
+	if (!page)
+		return;
+
+	if (pmdp_test_and_clear_young(vma, addr, pmd))
+		referenced = true;
+
+#ifdef CONFIG_MMU_NOTIFIER
+	if (mmu_notifier_clear_young(vma->vm_mm, addr,
+				addr + ((1UL) << HPAGE_PMD_SHIFT)))
+		referenced = true;
+#endif /* CONFIG_MMU_NOTIFIER */
+
+	if (referenced)
+		set_page_young(page);
+
+	set_page_idle(page);
+	put_page(page);
+#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
+}
+
+#define DAMON_MAX_SUBSCORE	(100)
+#define DAMON_MAX_AGE_IN_LOG	(32)
+
+int damon_pageout_score(struct damon_ctx *c, struct damon_region *r,
+			struct damos *s)
+{
+	unsigned int max_nr_accesses;
+	int freq_subscore;
+	unsigned int age_in_sec;
+	int age_in_log, age_subscore;
+	unsigned int freq_weight = s->quota.weight_nr_accesses;
+	unsigned int age_weight = s->quota.weight_age;
+	int hotness;
+
+	max_nr_accesses = c->aggr_interval / c->sample_interval;
+	freq_subscore = r->nr_accesses * DAMON_MAX_SUBSCORE / max_nr_accesses;
+
+	age_in_sec = (unsigned long)r->age * c->aggr_interval / 1000000;
+	for (age_in_log = 0; age_in_log < DAMON_MAX_AGE_IN_LOG && age_in_sec;
+			age_in_log++, age_in_sec >>= 1)
+		;
+
+	/* If frequency is 0, higher age means it's colder */
+	if (freq_subscore == 0)
+		age_in_log *= -1;
+
+	/*
+	 * Now age_in_log is in [-DAMON_MAX_AGE_IN_LOG, DAMON_MAX_AGE_IN_LOG].
+	 * Scale it to be in [0, 100] and set it as age subscore.
+	 */
+	age_in_log += DAMON_MAX_AGE_IN_LOG;
+	age_subscore = age_in_log * DAMON_MAX_SUBSCORE /
+		DAMON_MAX_AGE_IN_LOG / 2;
+
+	hotness = (freq_weight * freq_subscore + age_weight * age_subscore);
+	if (freq_weight + age_weight)
+		hotness /= freq_weight + age_weight;
+	/*
+	 * Transform it to fit in [0, DAMOS_MAX_SCORE]
+	 */
+	hotness = hotness * DAMOS_MAX_SCORE / DAMON_MAX_SUBSCORE;
+
+	/* Return coldness of the region */
+	return DAMOS_MAX_SCORE - hotness;
+}
diff --git a/mm/damon/prmtv-common.h b/mm/damon/prmtv-common.h
new file mode 100644
index 0000000..0697e1e
--- /dev/null
+++ b/mm/damon/prmtv-common.h
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Common Primitives for Data Access Monitoring
+ *
+ * Author: SeongJae Park <sj@kernel.org>
+ */
+
+#include <linux/damon.h>
+
+struct page *damon_get_page(unsigned long pfn);
+
+void damon_ptep_mkold(pte_t *pte, struct vm_area_struct *vma, unsigned long addr);
+void damon_pmdp_mkold(pmd_t *pmd, struct vm_area_struct *vma, unsigned long addr);
+
+int damon_pageout_score(struct damon_ctx *c, struct damon_region *r,
+			struct damos *s);
diff --git a/mm/damon/reclaim.c b/mm/damon/reclaim.c
new file mode 100644
index 0000000..183d4f3
--- /dev/null
+++ b/mm/damon/reclaim.c
@@ -0,0 +1,425 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * DAMON-based page reclamation
+ *
+ * Author: SeongJae Park <sj@kernel.org>
+ */
+
+#define pr_fmt(fmt) "damon-reclaim: " fmt
+
+#include <linux/damon.h>
+#include <linux/ioport.h>
+#include <linux/module.h>
+#include <linux/sched.h>
+#include <linux/workqueue.h>
+
+#ifdef MODULE_PARAM_PREFIX
+#undef MODULE_PARAM_PREFIX
+#endif
+#define MODULE_PARAM_PREFIX "damon_reclaim."
+
+/*
+ * Enable or disable DAMON_RECLAIM.
+ *
+ * You can enable DAMON_RCLAIM by setting the value of this parameter as ``Y``.
+ * Setting it as ``N`` disables DAMON_RECLAIM.  Note that DAMON_RECLAIM could
+ * do no real monitoring and reclamation due to the watermarks-based activation
+ * condition.  Refer to below descriptions for the watermarks parameter for
+ * this.
+ */
+static bool enabled __read_mostly;
+
+/*
+ * Time threshold for cold memory regions identification in microseconds.
+ *
+ * If a memory region is not accessed for this or longer time, DAMON_RECLAIM
+ * identifies the region as cold, and reclaims.  120 seconds by default.
+ */
+static unsigned long min_age __read_mostly = 120000000;
+module_param(min_age, ulong, 0600);
+
+/*
+ * Limit of time for trying the reclamation in milliseconds.
+ *
+ * DAMON_RECLAIM tries to use only up to this time within a time window
+ * (quota_reset_interval_ms) for trying reclamation of cold pages.  This can be
+ * used for limiting CPU consumption of DAMON_RECLAIM.  If the value is zero,
+ * the limit is disabled.
+ *
+ * 10 ms by default.
+ */
+static unsigned long quota_ms __read_mostly = 10;
+module_param(quota_ms, ulong, 0600);
+
+/*
+ * Limit of size of memory for the reclamation in bytes.
+ *
+ * DAMON_RECLAIM charges amount of memory which it tried to reclaim within a
+ * time window (quota_reset_interval_ms) and makes no more than this limit is
+ * tried.  This can be used for limiting consumption of CPU and IO.  If this
+ * value is zero, the limit is disabled.
+ *
+ * 128 MiB by default.
+ */
+static unsigned long quota_sz __read_mostly = 128 * 1024 * 1024;
+module_param(quota_sz, ulong, 0600);
+
+/*
+ * The time/size quota charge reset interval in milliseconds.
+ *
+ * The charge reset interval for the quota of time (quota_ms) and size
+ * (quota_sz).  That is, DAMON_RECLAIM does not try reclamation for more than
+ * quota_ms milliseconds or quota_sz bytes within quota_reset_interval_ms
+ * milliseconds.
+ *
+ * 1 second by default.
+ */
+static unsigned long quota_reset_interval_ms __read_mostly = 1000;
+module_param(quota_reset_interval_ms, ulong, 0600);
+
+/*
+ * The watermarks check time interval in microseconds.
+ *
+ * Minimal time to wait before checking the watermarks, when DAMON_RECLAIM is
+ * enabled but inactive due to its watermarks rule.  5 seconds by default.
+ */
+static unsigned long wmarks_interval __read_mostly = 5000000;
+module_param(wmarks_interval, ulong, 0600);
+
+/*
+ * Free memory rate (per thousand) for the high watermark.
+ *
+ * If free memory of the system in bytes per thousand bytes is higher than
+ * this, DAMON_RECLAIM becomes inactive, so it does nothing but periodically
+ * checks the watermarks.  500 (50%) by default.
+ */
+static unsigned long wmarks_high __read_mostly = 500;
+module_param(wmarks_high, ulong, 0600);
+
+/*
+ * Free memory rate (per thousand) for the middle watermark.
+ *
+ * If free memory of the system in bytes per thousand bytes is between this and
+ * the low watermark, DAMON_RECLAIM becomes active, so starts the monitoring
+ * and the reclaiming.  400 (40%) by default.
+ */
+static unsigned long wmarks_mid __read_mostly = 400;
+module_param(wmarks_mid, ulong, 0600);
+
+/*
+ * Free memory rate (per thousand) for the low watermark.
+ *
+ * If free memory of the system in bytes per thousand bytes is lower than this,
+ * DAMON_RECLAIM becomes inactive, so it does nothing but periodically checks
+ * the watermarks.  In the case, the system falls back to the LRU-based page
+ * granularity reclamation logic.  200 (20%) by default.
+ */
+static unsigned long wmarks_low __read_mostly = 200;
+module_param(wmarks_low, ulong, 0600);
+
+/*
+ * Sampling interval for the monitoring in microseconds.
+ *
+ * The sampling interval of DAMON for the cold memory monitoring.  Please refer
+ * to the DAMON documentation for more detail.  5 ms by default.
+ */
+static unsigned long sample_interval __read_mostly = 5000;
+module_param(sample_interval, ulong, 0600);
+
+/*
+ * Aggregation interval for the monitoring in microseconds.
+ *
+ * The aggregation interval of DAMON for the cold memory monitoring.  Please
+ * refer to the DAMON documentation for more detail.  100 ms by default.
+ */
+static unsigned long aggr_interval __read_mostly = 100000;
+module_param(aggr_interval, ulong, 0600);
+
+/*
+ * Minimum number of monitoring regions.
+ *
+ * The minimal number of monitoring regions of DAMON for the cold memory
+ * monitoring.  This can be used to set lower-bound of the monitoring quality.
+ * But, setting this too high could result in increased monitoring overhead.
+ * Please refer to the DAMON documentation for more detail.  10 by default.
+ */
+static unsigned long min_nr_regions __read_mostly = 10;
+module_param(min_nr_regions, ulong, 0600);
+
+/*
+ * Maximum number of monitoring regions.
+ *
+ * The maximum number of monitoring regions of DAMON for the cold memory
+ * monitoring.  This can be used to set upper-bound of the monitoring overhead.
+ * However, setting this too low could result in bad monitoring quality.
+ * Please refer to the DAMON documentation for more detail.  1000 by default.
+ */
+static unsigned long max_nr_regions __read_mostly = 1000;
+module_param(max_nr_regions, ulong, 0600);
+
+/*
+ * Start of the target memory region in physical address.
+ *
+ * The start physical address of memory region that DAMON_RECLAIM will do work
+ * against.  By default, biggest System RAM is used as the region.
+ */
+static unsigned long monitor_region_start __read_mostly;
+module_param(monitor_region_start, ulong, 0600);
+
+/*
+ * End of the target memory region in physical address.
+ *
+ * The end physical address of memory region that DAMON_RECLAIM will do work
+ * against.  By default, biggest System RAM is used as the region.
+ */
+static unsigned long monitor_region_end __read_mostly;
+module_param(monitor_region_end, ulong, 0600);
+
+/*
+ * PID of the DAMON thread
+ *
+ * If DAMON_RECLAIM is enabled, this becomes the PID of the worker thread.
+ * Else, -1.
+ */
+static int kdamond_pid __read_mostly = -1;
+module_param(kdamond_pid, int, 0400);
+
+/*
+ * Number of memory regions that tried to be reclaimed.
+ */
+static unsigned long nr_reclaim_tried_regions __read_mostly;
+module_param(nr_reclaim_tried_regions, ulong, 0400);
+
+/*
+ * Total bytes of memory regions that tried to be reclaimed.
+ */
+static unsigned long bytes_reclaim_tried_regions __read_mostly;
+module_param(bytes_reclaim_tried_regions, ulong, 0400);
+
+/*
+ * Number of memory regions that successfully be reclaimed.
+ */
+static unsigned long nr_reclaimed_regions __read_mostly;
+module_param(nr_reclaimed_regions, ulong, 0400);
+
+/*
+ * Total bytes of memory regions that successfully be reclaimed.
+ */
+static unsigned long bytes_reclaimed_regions __read_mostly;
+module_param(bytes_reclaimed_regions, ulong, 0400);
+
+/*
+ * Number of times that the time/space quota limits have exceeded
+ */
+static unsigned long nr_quota_exceeds __read_mostly;
+module_param(nr_quota_exceeds, ulong, 0400);
+
+static struct damon_ctx *ctx;
+static struct damon_target *target;
+
+struct damon_reclaim_ram_walk_arg {
+	unsigned long start;
+	unsigned long end;
+};
+
+static int walk_system_ram(struct resource *res, void *arg)
+{
+	struct damon_reclaim_ram_walk_arg *a = arg;
+
+	if (a->end - a->start < res->end - res->start) {
+		a->start = res->start;
+		a->end = res->end;
+	}
+	return 0;
+}
+
+/*
+ * Find biggest 'System RAM' resource and store its start and end address in
+ * @start and @end, respectively.  If no System RAM is found, returns false.
+ */
+static bool get_monitoring_region(unsigned long *start, unsigned long *end)
+{
+	struct damon_reclaim_ram_walk_arg arg = {};
+
+	walk_system_ram_res(0, ULONG_MAX, &arg, walk_system_ram);
+	if (arg.end <= arg.start)
+		return false;
+
+	*start = arg.start;
+	*end = arg.end;
+	return true;
+}
+
+static struct damos *damon_reclaim_new_scheme(void)
+{
+	struct damos_watermarks wmarks = {
+		.metric = DAMOS_WMARK_FREE_MEM_RATE,
+		.interval = wmarks_interval,
+		.high = wmarks_high,
+		.mid = wmarks_mid,
+		.low = wmarks_low,
+	};
+	struct damos_quota quota = {
+		/*
+		 * Do not try reclamation for more than quota_ms milliseconds
+		 * or quota_sz bytes within quota_reset_interval_ms.
+		 */
+		.ms = quota_ms,
+		.sz = quota_sz,
+		.reset_interval = quota_reset_interval_ms,
+		/* Within the quota, page out older regions first. */
+		.weight_sz = 0,
+		.weight_nr_accesses = 0,
+		.weight_age = 1
+	};
+	struct damos *scheme = damon_new_scheme(
+			/* Find regions having PAGE_SIZE or larger size */
+			PAGE_SIZE, ULONG_MAX,
+			/* and not accessed at all */
+			0, 0,
+			/* for min_age or more micro-seconds, and */
+			min_age / aggr_interval, UINT_MAX,
+			/* page out those, as soon as found */
+			DAMOS_PAGEOUT,
+			/* under the quota. */
+			&quota,
+			/* (De)activate this according to the watermarks. */
+			&wmarks);
+
+	return scheme;
+}
+
+static int damon_reclaim_turn(bool on)
+{
+	struct damon_region *region;
+	struct damos *scheme;
+	int err;
+
+	if (!on) {
+		err = damon_stop(&ctx, 1);
+		if (!err)
+			kdamond_pid = -1;
+		return err;
+	}
+
+	err = damon_set_attrs(ctx, sample_interval, aggr_interval, 0,
+			min_nr_regions, max_nr_regions);
+	if (err)
+		return err;
+
+	if (monitor_region_start > monitor_region_end)
+		return -EINVAL;
+	if (!monitor_region_start && !monitor_region_end &&
+			!get_monitoring_region(&monitor_region_start,
+				&monitor_region_end))
+		return -EINVAL;
+	/* DAMON will free this on its own when finish monitoring */
+	region = damon_new_region(monitor_region_start, monitor_region_end);
+	if (!region)
+		return -ENOMEM;
+	damon_add_region(region, target);
+
+	/* Will be freed by 'damon_set_schemes()' below */
+	scheme = damon_reclaim_new_scheme();
+	if (!scheme) {
+		err = -ENOMEM;
+		goto free_region_out;
+	}
+	err = damon_set_schemes(ctx, &scheme, 1);
+	if (err)
+		goto free_scheme_out;
+
+	err = damon_start(&ctx, 1);
+	if (!err) {
+		kdamond_pid = ctx->kdamond->pid;
+		return 0;
+	}
+
+free_scheme_out:
+	damon_destroy_scheme(scheme);
+free_region_out:
+	damon_destroy_region(region, target);
+	return err;
+}
+
+#define ENABLE_CHECK_INTERVAL_MS	1000
+static struct delayed_work damon_reclaim_timer;
+static void damon_reclaim_timer_fn(struct work_struct *work)
+{
+	static bool last_enabled;
+	bool now_enabled;
+
+	now_enabled = enabled;
+	if (last_enabled != now_enabled) {
+		if (!damon_reclaim_turn(now_enabled))
+			last_enabled = now_enabled;
+		else
+			enabled = last_enabled;
+	}
+
+	if (enabled)
+		schedule_delayed_work(&damon_reclaim_timer,
+			msecs_to_jiffies(ENABLE_CHECK_INTERVAL_MS));
+}
+static DECLARE_DELAYED_WORK(damon_reclaim_timer, damon_reclaim_timer_fn);
+
+static int enabled_store(const char *val,
+		const struct kernel_param *kp)
+{
+	int rc = param_set_bool(val, kp);
+
+	if (rc < 0)
+		return rc;
+
+	if (enabled)
+		schedule_delayed_work(&damon_reclaim_timer, 0);
+
+	return 0;
+}
+
+static const struct kernel_param_ops enabled_param_ops = {
+	.set = enabled_store,
+	.get = param_get_bool,
+};
+
+module_param_cb(enabled, &enabled_param_ops, &enabled, 0600);
+MODULE_PARM_DESC(enabled,
+        "Enable or disable DAMON_RECLAIM (default: disabled)");
+
+static int damon_reclaim_after_aggregation(struct damon_ctx *c)
+{
+	struct damos *s;
+
+	/* update the stats parameter */
+	damon_for_each_scheme(s, c) {
+		nr_reclaim_tried_regions = s->stat.nr_tried;
+		bytes_reclaim_tried_regions = s->stat.sz_tried;
+		nr_reclaimed_regions = s->stat.nr_applied;
+		bytes_reclaimed_regions = s->stat.sz_applied;
+		nr_quota_exceeds = s->stat.qt_exceeds;
+	}
+	return 0;
+}
+
+static int __init damon_reclaim_init(void)
+{
+	ctx = damon_new_ctx();
+	if (!ctx)
+		return -ENOMEM;
+
+	damon_pa_set_primitives(ctx);
+	ctx->callback.after_aggregation = damon_reclaim_after_aggregation;
+
+	/* 4242 means nothing but fun */
+	target = damon_new_target(4242);
+	if (!target) {
+		damon_destroy_ctx(ctx);
+		return -ENOMEM;
+	}
+	damon_add_target(ctx, target);
+
+	schedule_delayed_work(&damon_reclaim_timer, 0);
+	return 0;
+}
+
+module_init(damon_reclaim_init);
diff --git a/mm/damon/vaddr-test.h b/mm/damon/vaddr-test.h
index 1f5c132..6a1b9272 100644
--- a/mm/damon/vaddr-test.h
+++ b/mm/damon/vaddr-test.h
@@ -135,7 +135,6 @@
 				struct damon_addr_range *three_regions,
 				unsigned long *expected, int nr_expected)
 {
-	struct damon_ctx *ctx = damon_new_ctx();
 	struct damon_target *t;
 	struct damon_region *r;
 	int i;
@@ -145,7 +144,6 @@
 		r = damon_new_region(regions[i * 2], regions[i * 2 + 1]);
 		damon_add_region(r, t);
 	}
-	damon_add_target(ctx, t);
 
 	damon_va_apply_three_regions(t, three_regions);
 
@@ -154,8 +152,6 @@
 		KUNIT_EXPECT_EQ(test, r->ar.start, expected[i * 2]);
 		KUNIT_EXPECT_EQ(test, r->ar.end, expected[i * 2 + 1]);
 	}
-
-	damon_destroy_ctx(ctx);
 }
 
 /*
@@ -233,7 +229,7 @@
  * and 70-100) has totally freed and mapped to different area (30-32 and
  * 65-68).  The target regions which were in the old second and third big
  * regions should now be removed and new target regions covering the new second
- * and third big regions should be crated.
+ * and third big regions should be created.
  */
 static void damon_test_apply_three_regions4(struct kunit *test)
 {
@@ -252,60 +248,59 @@
 			new_three_regions, expected, ARRAY_SIZE(expected));
 }
 
-static void damon_test_split_evenly(struct kunit *test)
+static void damon_test_split_evenly_fail(struct kunit *test,
+		unsigned long start, unsigned long end, unsigned int nr_pieces)
 {
-	struct damon_ctx *c = damon_new_ctx();
-	struct damon_target *t;
-	struct damon_region *r;
-	unsigned long i;
-
-	KUNIT_EXPECT_EQ(test, damon_va_evenly_split_region(NULL, NULL, 5),
-			-EINVAL);
-
-	t = damon_new_target(42);
-	r = damon_new_region(0, 100);
-	KUNIT_EXPECT_EQ(test, damon_va_evenly_split_region(t, r, 0), -EINVAL);
+	struct damon_target *t = damon_new_target(42);
+	struct damon_region *r = damon_new_region(start, end);
 
 	damon_add_region(r, t);
-	KUNIT_EXPECT_EQ(test, damon_va_evenly_split_region(t, r, 10), 0);
-	KUNIT_EXPECT_EQ(test, damon_nr_regions(t), 10u);
-
-	i = 0;
-	damon_for_each_region(r, t) {
-		KUNIT_EXPECT_EQ(test, r->ar.start, i++ * 10);
-		KUNIT_EXPECT_EQ(test, r->ar.end, i * 10);
-	}
-	damon_free_target(t);
-
-	t = damon_new_target(42);
-	r = damon_new_region(5, 59);
-	damon_add_region(r, t);
-	KUNIT_EXPECT_EQ(test, damon_va_evenly_split_region(t, r, 5), 0);
-	KUNIT_EXPECT_EQ(test, damon_nr_regions(t), 5u);
-
-	i = 0;
-	damon_for_each_region(r, t) {
-		if (i == 4)
-			break;
-		KUNIT_EXPECT_EQ(test, r->ar.start, 5 + 10 * i++);
-		KUNIT_EXPECT_EQ(test, r->ar.end, 5 + 10 * i);
-	}
-	KUNIT_EXPECT_EQ(test, r->ar.start, 5 + 10 * i);
-	KUNIT_EXPECT_EQ(test, r->ar.end, 59ul);
-	damon_free_target(t);
-
-	t = damon_new_target(42);
-	r = damon_new_region(5, 6);
-	damon_add_region(r, t);
-	KUNIT_EXPECT_EQ(test, damon_va_evenly_split_region(t, r, 2), -EINVAL);
+	KUNIT_EXPECT_EQ(test,
+			damon_va_evenly_split_region(t, r, nr_pieces), -EINVAL);
 	KUNIT_EXPECT_EQ(test, damon_nr_regions(t), 1u);
 
 	damon_for_each_region(r, t) {
-		KUNIT_EXPECT_EQ(test, r->ar.start, 5ul);
-		KUNIT_EXPECT_EQ(test, r->ar.end, 6ul);
+		KUNIT_EXPECT_EQ(test, r->ar.start, start);
+		KUNIT_EXPECT_EQ(test, r->ar.end, end);
 	}
+
 	damon_free_target(t);
-	damon_destroy_ctx(c);
+}
+
+static void damon_test_split_evenly_succ(struct kunit *test,
+	unsigned long start, unsigned long end, unsigned int nr_pieces)
+{
+	struct damon_target *t = damon_new_target(42);
+	struct damon_region *r = damon_new_region(start, end);
+	unsigned long expected_width = (end - start) / nr_pieces;
+	unsigned long i = 0;
+
+	damon_add_region(r, t);
+	KUNIT_EXPECT_EQ(test,
+			damon_va_evenly_split_region(t, r, nr_pieces), 0);
+	KUNIT_EXPECT_EQ(test, damon_nr_regions(t), nr_pieces);
+
+	damon_for_each_region(r, t) {
+		if (i == nr_pieces - 1)
+			break;
+		KUNIT_EXPECT_EQ(test,
+				r->ar.start, start + i++ * expected_width);
+		KUNIT_EXPECT_EQ(test, r->ar.end, start + i * expected_width);
+	}
+	KUNIT_EXPECT_EQ(test, r->ar.start, start + i * expected_width);
+	KUNIT_EXPECT_EQ(test, r->ar.end, end);
+	damon_free_target(t);
+}
+
+static void damon_test_split_evenly(struct kunit *test)
+{
+	KUNIT_EXPECT_EQ(test, damon_va_evenly_split_region(NULL, NULL, 5),
+			-EINVAL);
+
+	damon_test_split_evenly_fail(test, 0, 100, 0);
+	damon_test_split_evenly_succ(test, 0, 100, 10);
+	damon_test_split_evenly_succ(test, 5, 59, 5);
+	damon_test_split_evenly_fail(test, 5, 6, 2);
 }
 
 static struct kunit_case damon_test_cases[] = {
diff --git a/mm/damon/vaddr.c b/mm/damon/vaddr.c
index 6ad96da..6e8ffc0 100644
--- a/mm/damon/vaddr.c
+++ b/mm/damon/vaddr.c
@@ -7,31 +7,29 @@
 
 #define pr_fmt(fmt) "damon-va: " fmt
 
-#include <linux/damon.h>
-#include <linux/hugetlb.h>
-#include <linux/mm.h>
-#include <linux/mmu_notifier.h>
+#include <asm-generic/mman-common.h>
 #include <linux/highmem.h>
+#include <linux/hugetlb.h>
+#include <linux/mmu_notifier.h>
 #include <linux/page_idle.h>
 #include <linux/pagewalk.h>
-#include <linux/random.h>
 #include <linux/sched/mm.h>
-#include <linux/slab.h>
+
+#include "prmtv-common.h"
 
 #ifdef CONFIG_DAMON_VADDR_KUNIT_TEST
 #undef DAMON_MIN_REGION
 #define DAMON_MIN_REGION 1
 #endif
 
-/* Get a random number in [l, r) */
-#define damon_rand(l, r) (l + prandom_u32_max(r - l))
-
 /*
  * 't->id' should be the pointer to the relevant 'struct pid' having reference
  * count.  Caller must put the returned task, unless it is NULL.
  */
-#define damon_get_task_struct(t) \
-	(get_pid_task((struct pid *)t->id, PIDTYPE_PID))
+static inline struct task_struct *damon_get_task_struct(struct damon_target *t)
+{
+	return get_pid_task((struct pid *)t->id, PIDTYPE_PID);
+}
 
 /*
  * Get the mm_struct of the given target
@@ -102,16 +100,6 @@
 	return r->end - r->start;
 }
 
-static void swap_ranges(struct damon_addr_range *r1,
-			struct damon_addr_range *r2)
-{
-	struct damon_addr_range tmp;
-
-	tmp = *r1;
-	*r1 = *r2;
-	*r2 = tmp;
-}
-
 /*
  * Find three regions separated by two biggest unmapped regions
  *
@@ -150,9 +138,9 @@
 		gap.start = last_vma->vm_end;
 		gap.end = vma->vm_start;
 		if (sz_range(&gap) > sz_range(&second_gap)) {
-			swap_ranges(&gap, &second_gap);
+			swap(gap, second_gap);
 			if (sz_range(&second_gap) > sz_range(&first_gap))
-				swap_ranges(&second_gap, &first_gap);
+				swap(second_gap, first_gap);
 		}
 next:
 		last_vma = vma;
@@ -163,7 +151,7 @@
 
 	/* Sort the two biggest gaps by address */
 	if (first_gap.start > second_gap.start)
-		swap_ranges(&first_gap, &second_gap);
+		swap(first_gap, second_gap);
 
 	/* Store the result */
 	regions[0].start = ALIGN(start, DAMON_MIN_REGION);
@@ -244,13 +232,19 @@
 static void __damon_va_init_regions(struct damon_ctx *ctx,
 				     struct damon_target *t)
 {
+	struct damon_target *ti;
 	struct damon_region *r;
 	struct damon_addr_range regions[3];
 	unsigned long sz = 0, nr_pieces;
-	int i;
+	int i, tidx = 0;
 
 	if (damon_va_three_regions(t, regions)) {
-		pr_err("Failed to get three regions of target %lu\n", t->id);
+		damon_for_each_target(ti, ctx) {
+			if (ti == t)
+				break;
+			tidx++;
+		}
+		pr_debug("Failed to get three regions of %dth target\n", tidx);
 		return;
 	}
 
@@ -276,7 +270,7 @@
 }
 
 /* Initialize '->regions_list' of every target (task) */
-void damon_va_init(struct damon_ctx *ctx)
+static void damon_va_init(struct damon_ctx *ctx)
 {
 	struct damon_target *t;
 
@@ -296,7 +290,8 @@
  *
  * Returns true if it is.
  */
-static bool damon_intersect(struct damon_region *r, struct damon_addr_range *re)
+static bool damon_intersect(struct damon_region *r,
+		struct damon_addr_range *re)
 {
 	return !(r->ar.end <= re->start || re->end <= r->ar.start);
 }
@@ -311,7 +306,7 @@
 		struct damon_addr_range bregions[3])
 {
 	struct damon_region *r, *next;
-	unsigned int i = 0;
+	unsigned int i;
 
 	/* Remove regions which are not in the three big regions now */
 	damon_for_each_region_safe(r, next, t) {
@@ -360,7 +355,7 @@
 /*
  * Update regions for current memory mappings
  */
-void damon_va_update(struct damon_ctx *ctx)
+static void damon_va_update(struct damon_ctx *ctx)
 {
 	struct damon_addr_range three_regions[3];
 	struct damon_target *t;
@@ -372,78 +367,6 @@
 	}
 }
 
-/*
- * Get an online page for a pfn if it's in the LRU list.  Otherwise, returns
- * NULL.
- *
- * The body of this function is stolen from the 'page_idle_get_page()'.  We
- * steal rather than reuse it because the code is quite simple.
- */
-static struct page *damon_get_page(unsigned long pfn)
-{
-	struct page *page = pfn_to_online_page(pfn);
-
-	if (!page || !PageLRU(page) || !get_page_unless_zero(page))
-		return NULL;
-
-	if (unlikely(!PageLRU(page))) {
-		put_page(page);
-		page = NULL;
-	}
-	return page;
-}
-
-static void damon_ptep_mkold(pte_t *pte, struct vm_area_struct *vma,
-			     unsigned long addr)
-{
-	bool referenced = false;
-	struct page *page = damon_get_page(pte_pfn(*pte));
-
-	if (!page)
-		return;
-
-	if (ptep_test_and_clear_young(vma, addr, pte))
-		referenced = true;
-
-#ifdef CONFIG_MMU_NOTIFIER
-	if (mmu_notifier_clear_young(vma->vm_mm, addr, addr + PAGE_SIZE))
-		referenced = true;
-#endif /* CONFIG_MMU_NOTIFIER */
-
-	if (referenced)
-		set_page_young(page);
-
-	set_page_idle(page);
-	put_page(page);
-}
-
-static void damon_pmdp_mkold(pmd_t *pmd, struct vm_area_struct *vma,
-			     unsigned long addr)
-{
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
-	bool referenced = false;
-	struct page *page = damon_get_page(pmd_pfn(*pmd));
-
-	if (!page)
-		return;
-
-	if (pmdp_test_and_clear_young(vma, addr, pmd))
-		referenced = true;
-
-#ifdef CONFIG_MMU_NOTIFIER
-	if (mmu_notifier_clear_young(vma->vm_mm, addr,
-				addr + ((1UL) << HPAGE_PMD_SHIFT)))
-		referenced = true;
-#endif /* CONFIG_MMU_NOTIFIER */
-
-	if (referenced)
-		set_page_young(page);
-
-	set_page_idle(page);
-	put_page(page);
-#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
-}
-
 static int damon_mkold_pmd_entry(pmd_t *pmd, unsigned long addr,
 		unsigned long next, struct mm_walk *walk)
 {
@@ -476,8 +399,64 @@
 	return 0;
 }
 
-static struct mm_walk_ops damon_mkold_ops = {
+#ifdef CONFIG_HUGETLB_PAGE
+static void damon_hugetlb_mkold(pte_t *pte, struct mm_struct *mm,
+				struct vm_area_struct *vma, unsigned long addr)
+{
+	bool referenced = false;
+	pte_t entry = huge_ptep_get(pte);
+	struct page *page = pte_page(entry);
+
+	if (!page)
+		return;
+
+	get_page(page);
+
+	if (pte_young(entry)) {
+		referenced = true;
+		entry = pte_mkold(entry);
+		set_huge_pte_at(mm, addr, pte, entry);
+	}
+
+#ifdef CONFIG_MMU_NOTIFIER
+	if (mmu_notifier_clear_young(mm, addr,
+				     addr + huge_page_size(hstate_vma(vma))))
+		referenced = true;
+#endif /* CONFIG_MMU_NOTIFIER */
+
+	if (referenced)
+		set_page_young(page);
+
+	set_page_idle(page);
+	put_page(page);
+}
+
+static int damon_mkold_hugetlb_entry(pte_t *pte, unsigned long hmask,
+				     unsigned long addr, unsigned long end,
+				     struct mm_walk *walk)
+{
+	struct hstate *h = hstate_vma(walk->vma);
+	spinlock_t *ptl;
+	pte_t entry;
+
+	ptl = huge_pte_lock(h, walk->mm, pte);
+	entry = huge_ptep_get(pte);
+	if (!pte_present(entry))
+		goto out;
+
+	damon_hugetlb_mkold(pte, walk->mm, walk->vma, addr);
+
+out:
+	spin_unlock(ptl);
+	return 0;
+}
+#else
+#define damon_mkold_hugetlb_entry NULL
+#endif /* CONFIG_HUGETLB_PAGE */
+
+static const struct mm_walk_ops damon_mkold_ops = {
 	.pmd_entry = damon_mkold_pmd_entry,
+	.hugetlb_entry = damon_mkold_hugetlb_entry,
 };
 
 static void damon_va_mkold(struct mm_struct *mm, unsigned long addr)
@@ -491,7 +470,7 @@
  * Functions for the access checking of the regions
  */
 
-static void damon_va_prepare_access_check(struct damon_ctx *ctx,
+static void __damon_va_prepare_access_check(struct damon_ctx *ctx,
 			struct mm_struct *mm, struct damon_region *r)
 {
 	r->sampling_addr = damon_rand(r->ar.start, r->ar.end);
@@ -499,7 +478,7 @@
 	damon_va_mkold(mm, r->sampling_addr);
 }
 
-void damon_va_prepare_access_checks(struct damon_ctx *ctx)
+static void damon_va_prepare_access_checks(struct damon_ctx *ctx)
 {
 	struct damon_target *t;
 	struct mm_struct *mm;
@@ -510,7 +489,7 @@
 		if (!mm)
 			continue;
 		damon_for_each_region(r, t)
-			damon_va_prepare_access_check(ctx, mm, r);
+			__damon_va_prepare_access_check(ctx, mm, r);
 		mmput(mm);
 	}
 }
@@ -577,8 +556,47 @@
 	return 0;
 }
 
-static struct mm_walk_ops damon_young_ops = {
+#ifdef CONFIG_HUGETLB_PAGE
+static int damon_young_hugetlb_entry(pte_t *pte, unsigned long hmask,
+				     unsigned long addr, unsigned long end,
+				     struct mm_walk *walk)
+{
+	struct damon_young_walk_private *priv = walk->private;
+	struct hstate *h = hstate_vma(walk->vma);
+	struct page *page;
+	spinlock_t *ptl;
+	pte_t entry;
+
+	ptl = huge_pte_lock(h, walk->mm, pte);
+	entry = huge_ptep_get(pte);
+	if (!pte_present(entry))
+		goto out;
+
+	page = pte_page(entry);
+	if (!page)
+		goto out;
+
+	get_page(page);
+
+	if (pte_young(entry) || !page_is_idle(page) ||
+	    mmu_notifier_test_young(walk->mm, addr)) {
+		*priv->page_sz = huge_page_size(h);
+		priv->young = true;
+	}
+
+	put_page(page);
+
+out:
+	spin_unlock(ptl);
+	return 0;
+}
+#else
+#define damon_young_hugetlb_entry NULL
+#endif /* CONFIG_HUGETLB_PAGE */
+
+static const struct mm_walk_ops damon_young_ops = {
 	.pmd_entry = damon_young_pmd_entry,
+	.hugetlb_entry = damon_young_hugetlb_entry,
 };
 
 static bool damon_va_young(struct mm_struct *mm, unsigned long addr,
@@ -601,7 +619,7 @@
  * mm	'mm_struct' for the given virtual address space
  * r	the region to be checked
  */
-static void damon_va_check_access(struct damon_ctx *ctx,
+static void __damon_va_check_access(struct damon_ctx *ctx,
 			       struct mm_struct *mm, struct damon_region *r)
 {
 	static struct mm_struct *last_mm;
@@ -625,7 +643,7 @@
 	last_addr = r->sampling_addr;
 }
 
-unsigned int damon_va_check_accesses(struct damon_ctx *ctx)
+static unsigned int damon_va_check_accesses(struct damon_ctx *ctx)
 {
 	struct damon_target *t;
 	struct mm_struct *mm;
@@ -637,7 +655,7 @@
 		if (!mm)
 			continue;
 		damon_for_each_region(r, t) {
-			damon_va_check_access(ctx, mm, r);
+			__damon_va_check_access(ctx, mm, r);
 			max_nr_accesses = max(r->nr_accesses, max_nr_accesses);
 		}
 		mmput(mm);
@@ -664,6 +682,78 @@
 	return false;
 }
 
+#ifndef CONFIG_ADVISE_SYSCALLS
+static unsigned long damos_madvise(struct damon_target *target,
+		struct damon_region *r, int behavior)
+{
+	return 0;
+}
+#else
+static unsigned long damos_madvise(struct damon_target *target,
+		struct damon_region *r, int behavior)
+{
+	struct mm_struct *mm;
+	unsigned long start = PAGE_ALIGN(r->ar.start);
+	unsigned long len = PAGE_ALIGN(r->ar.end - r->ar.start);
+	unsigned long applied;
+
+	mm = damon_get_mm(target);
+	if (!mm)
+		return 0;
+
+	applied = do_madvise(mm, start, len, behavior) ? 0 : len;
+	mmput(mm);
+
+	return applied;
+}
+#endif	/* CONFIG_ADVISE_SYSCALLS */
+
+static unsigned long damon_va_apply_scheme(struct damon_ctx *ctx,
+		struct damon_target *t, struct damon_region *r,
+		struct damos *scheme)
+{
+	int madv_action;
+
+	switch (scheme->action) {
+	case DAMOS_WILLNEED:
+		madv_action = MADV_WILLNEED;
+		break;
+	case DAMOS_COLD:
+		madv_action = MADV_COLD;
+		break;
+	case DAMOS_PAGEOUT:
+		madv_action = MADV_PAGEOUT;
+		break;
+	case DAMOS_HUGEPAGE:
+		madv_action = MADV_HUGEPAGE;
+		break;
+	case DAMOS_NOHUGEPAGE:
+		madv_action = MADV_NOHUGEPAGE;
+		break;
+	case DAMOS_STAT:
+		return 0;
+	default:
+		return 0;
+	}
+
+	return damos_madvise(t, r, madv_action);
+}
+
+static int damon_va_scheme_score(struct damon_ctx *context,
+		struct damon_target *t, struct damon_region *r,
+		struct damos *scheme)
+{
+
+	switch (scheme->action) {
+	case DAMOS_PAGEOUT:
+		return damon_pageout_score(context, r, scheme);
+	default:
+		break;
+	}
+
+	return DAMOS_MAX_SCORE;
+}
+
 void damon_va_set_primitives(struct damon_ctx *ctx)
 {
 	ctx->primitive.init = damon_va_init;
@@ -673,6 +763,8 @@
 	ctx->primitive.reset_aggregated = NULL;
 	ctx->primitive.target_valid = damon_va_target_valid;
 	ctx->primitive.cleanup = NULL;
+	ctx->primitive.apply_scheme = damon_va_apply_scheme;
+	ctx->primitive.get_scheme_score = damon_va_scheme_score;
 }
 
 #include "vaddr-test.h"
diff --git a/mm/debug.c b/mm/debug.c
index fae0f81..e0c3f63 100644
--- a/mm/debug.c
+++ b/mm/debug.c
@@ -266,6 +266,7 @@
 		mm->def_flags, &mm->def_flags
 	);
 }
+EXPORT_SYMBOL(dump_mm);
 
 static bool page_init_poisoning __read_mostly = true;
 
diff --git a/mm/filemap.c b/mm/filemap.c
index 81e2872..c6613f4 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -1272,7 +1272,7 @@
 /* How many times do we accept lock stealing from under a waiter? */
 int sysctl_page_lock_unfairness = 5;
 
-static inline int wait_on_page_bit_common(wait_queue_head_t *q,
+static inline __sched int wait_on_page_bit_common(wait_queue_head_t *q,
 	struct page *page, int bit_nr, int state, enum behavior behavior)
 {
 	int unfairness = sysctl_page_lock_unfairness;
@@ -1411,14 +1411,14 @@
 	return wait->flags & WQ_FLAG_WOKEN ? 0 : -EINTR;
 }
 
-void wait_on_page_bit(struct page *page, int bit_nr)
+__sched void wait_on_page_bit(struct page *page, int bit_nr)
 {
 	wait_queue_head_t *q = page_waitqueue(page);
 	wait_on_page_bit_common(q, page, bit_nr, TASK_UNINTERRUPTIBLE, SHARED);
 }
 EXPORT_SYMBOL(wait_on_page_bit);
 
-int wait_on_page_bit_killable(struct page *page, int bit_nr)
+__sched int wait_on_page_bit_killable(struct page *page, int bit_nr)
 {
 	wait_queue_head_t *q = page_waitqueue(page);
 	return wait_on_page_bit_common(q, page, bit_nr, TASK_KILLABLE, SHARED);
@@ -1641,7 +1641,7 @@
  * __lock_page - get a lock on the page, assuming we need to sleep to get it
  * @__page: the page to lock
  */
-void __lock_page(struct page *__page)
+__sched void __lock_page(struct page *__page)
 {
 	struct page *page = compound_head(__page);
 	wait_queue_head_t *q = page_waitqueue(page);
@@ -1650,7 +1650,7 @@
 }
 EXPORT_SYMBOL(__lock_page);
 
-int __lock_page_killable(struct page *__page)
+__sched int __lock_page_killable(struct page *__page)
 {
 	struct page *page = compound_head(__page);
 	wait_queue_head_t *q = page_waitqueue(page);
@@ -1659,7 +1659,7 @@
 }
 EXPORT_SYMBOL_GPL(__lock_page_killable);
 
-int __lock_page_async(struct page *page, struct wait_page_queue *wait)
+__sched int __lock_page_async(struct page *page, struct wait_page_queue *wait)
 {
 	struct wait_queue_head *q = page_waitqueue(page);
 	int ret = 0;
@@ -1696,7 +1696,7 @@
  * If neither ALLOW_RETRY nor KILLABLE are set, will always return 1
  * with the page locked and the mmap_lock unperturbed.
  */
-int __lock_page_or_retry(struct page *page, struct mm_struct *mm,
+__sched int __lock_page_or_retry(struct page *page, struct mm_struct *mm,
 			 unsigned int flags)
 {
 	if (fault_flag_allow_retry_first(flags)) {
@@ -2983,6 +2983,8 @@
 	ra->start = max_t(long, 0, vmf->pgoff - ra->ra_pages / 2);
 	ra->size = ra->ra_pages;
 	ra->async_size = ra->ra_pages / 4;
+	trace_android_vh_tune_mmap_readaround(ra->ra_pages, vmf->pgoff,
+			&ra->start, &ra->size, &ra->async_size);
 	ractl._index = ra->start;
 	do_page_cache_ra(&ractl, ra->size, ra->async_size);
 	return fpin;
@@ -3028,7 +3030,9 @@
  * it in the page cache, and handles the special cases reasonably without
  * having a lot of duplicated code.
  *
- * vma->vm_mm->mmap_lock must be held on entry.
+ * If FAULT_FLAG_SPECULATIVE is set, this function runs within an rcu
+ * read locked section and with mmap lock not held.
+ * Otherwise, vma->vm_mm->mmap_lock must be held on entry.
  *
  * If our return value has VM_FAULT_RETRY set, it's because the mmap_lock
  * may be dropped before doing I/O or by lock_page_maybe_drop_mmap().
@@ -3046,6 +3050,7 @@
 	struct file *file = vmf->vma->vm_file;
 	struct file *fpin = NULL;
 	struct address_space *mapping = file->f_mapping;
+	struct file_ra_state *ra = &file->f_ra;
 	struct inode *inode = mapping->host;
 	pgoff_t offset = vmf->pgoff;
 	pgoff_t max_off;
@@ -3053,6 +3058,52 @@
 	vm_fault_t ret = 0;
 	bool mapping_locked = false;
 
+	if (vmf->flags & FAULT_FLAG_SPECULATIVE) {
+		page = find_get_page(mapping, offset);
+		if (unlikely(!page))
+			return VM_FAULT_RETRY;
+
+		if (unlikely(PageReadahead(page)))
+			goto page_put;
+
+		if (!trylock_page(page))
+			goto page_put;
+
+		if (unlikely(compound_head(page)->mapping != mapping))
+			goto page_unlock;
+		VM_BUG_ON_PAGE(page_to_pgoff(page) != offset, page);
+		if (unlikely(!PageUptodate(page)))
+			goto page_unlock;
+
+		max_off = DIV_ROUND_UP(i_size_read(inode), PAGE_SIZE);
+		if (unlikely(offset >= max_off))
+			goto page_unlock;
+
+		/*
+		 * Update readahead mmap_miss statistic.
+		 *
+		 * Note that we are not sure if finish_fault() will
+		 * manage to complete the transaction. If it fails,
+		 * we'll come back to filemap_fault() non-speculative
+		 * case which will update mmap_miss a second time.
+		 * This is not ideal, we would prefer to guarantee the
+		 * update will happen exactly once.
+		 */
+		if (!(vmf->vma->vm_flags & VM_RAND_READ) && ra->ra_pages) {
+			unsigned int mmap_miss = READ_ONCE(ra->mmap_miss);
+			if (mmap_miss)
+				WRITE_ONCE(ra->mmap_miss, --mmap_miss);
+		}
+
+		vmf->page = page;
+		return VM_FAULT_LOCKED;
+page_unlock:
+		unlock_page(page);
+page_put:
+		put_page(page);
+		return VM_FAULT_RETRY;
+	}
+
 	max_off = DIV_ROUND_UP(i_size_read(inode), PAGE_SIZE);
 	if (unlikely(offset >= max_off))
 		return VM_FAULT_SIGBUS;
@@ -3294,25 +3345,31 @@
 	struct vm_area_struct *vma = vmf->vma;
 	struct file *file = vma->vm_file;
 	struct address_space *mapping = file->f_mapping;
-	pgoff_t last_pgoff = start_pgoff;
+	pgoff_t last_pgoff;
 	unsigned long addr;
 	XA_STATE(xas, &mapping->i_pages, start_pgoff);
 	struct page *head, *page;
 	unsigned int mmap_miss = READ_ONCE(file->f_ra.mmap_miss);
-	vm_fault_t ret = 0;
+	vm_fault_t ret = (vmf->flags & FAULT_FLAG_SPECULATIVE) ?
+		VM_FAULT_RETRY : 0;
 
-	rcu_read_lock();
+	/* filemap_map_pages() is called within an rcu read lock already. */
 	head = first_map_page(mapping, &xas, end_pgoff);
 	if (!head)
-		goto out;
+		return ret;
 
-	if (filemap_map_pmd(vmf, head)) {
-		ret = VM_FAULT_NOPAGE;
-		goto out;
+	if (!(vmf->flags & FAULT_FLAG_SPECULATIVE) &&
+	    filemap_map_pmd(vmf, head))
+		return VM_FAULT_NOPAGE;
+
+	if (!pte_map_lock(vmf)) {
+		unlock_page(head);
+		put_page(head);
+		return VM_FAULT_RETRY;
 	}
+	addr = vmf->address;
+	last_pgoff = vmf->pgoff;
 
-	addr = vma->vm_start + ((start_pgoff - vma->vm_pgoff) << PAGE_SHIFT);
-	vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd, addr, &vmf->ptl);
 	do {
 		page = find_subpage(head, xas.xa_index);
 		if (PageHWPoison(page))
@@ -3342,8 +3399,7 @@
 		put_page(head);
 	} while ((head = next_map_page(mapping, &xas, end_pgoff)) != NULL);
 	pte_unmap_unlock(vmf->pte, vmf->ptl);
-out:
-	rcu_read_unlock();
+	vmf->pte = NULL;
 	WRITE_ONCE(file->f_ra.mmap_miss, mmap_miss);
 	return ret;
 }
@@ -3379,6 +3435,7 @@
 	.fault		= filemap_fault,
 	.map_pages	= filemap_map_pages,
 	.page_mkwrite	= filemap_page_mkwrite,
+	.speculative	= true,
 };
 
 /* This is used for a general mmap of a disk file */
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 98ff57c..cf93829 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -34,7 +34,7 @@
 #include <linux/oom.h>
 #include <linux/numa.h>
 #include <linux/page_owner.h>
-
+#include <trace/hooks/mm.h>
 #include <asm/tlb.h>
 #include <asm/pgalloc.h>
 #include "internal.h"
@@ -1967,6 +1967,7 @@
 	bool young, write, soft_dirty, pmd_migration = false, uffd_wp = false;
 	unsigned long addr;
 	int i;
+	bool success = false;
 
 	VM_BUG_ON(haddr & ~HPAGE_PMD_MASK);
 	VM_BUG_ON_VMA(vma->vm_start > haddr, vma);
@@ -2103,8 +2104,12 @@
 		pte = pte_offset_map(&_pmd, addr);
 		BUG_ON(!pte_none(*pte));
 		set_pte_at(mm, addr, pte, entry);
-		if (!pmd_migration)
-			atomic_inc(&page[i]._mapcount);
+		if (!pmd_migration) {
+			trace_android_vh_update_page_mapcount(&page[i], true,
+						false, NULL, &success);
+			if (!success)
+				atomic_inc(&page[i]._mapcount);
+		}
 		pte_unmap(pte);
 	}
 
@@ -2115,8 +2120,12 @@
 		 */
 		if (compound_mapcount(page) > 1 &&
 		    !TestSetPageDoubleMap(page)) {
-			for (i = 0; i < HPAGE_PMD_NR; i++)
-				atomic_inc(&page[i]._mapcount);
+			for (i = 0; i < HPAGE_PMD_NR; i++) {
+				trace_android_vh_update_page_mapcount(&page[i], true,
+								false, NULL, &success);
+				if (!success)
+					atomic_inc(&page[i]._mapcount);
+			}
 		}
 
 		lock_page_memcg(page);
@@ -2126,8 +2135,12 @@
 						-HPAGE_PMD_NR);
 			if (TestClearPageDoubleMap(page)) {
 				/* No need in mapcount reference anymore */
-				for (i = 0; i < HPAGE_PMD_NR; i++)
-					atomic_dec(&page[i]._mapcount);
+				for (i = 0; i < HPAGE_PMD_NR; i++) {
+					trace_android_vh_update_page_mapcount(&page[i],
+							false, false, NULL, &success);
+					if (!success)
+						atomic_dec(&page[i]._mapcount);
+				}
 			}
 		}
 		unlock_page_memcg(page);
@@ -2366,7 +2379,8 @@
 #ifdef CONFIG_64BIT
 			 (1L << PG_arch_2) |
 #endif
-			 (1L << PG_dirty)));
+			 (1L << PG_dirty) |
+			 LRU_GEN_MASK | LRU_REFS_MASK));
 
 	/* ->mapping in first tail page is compound_mapcount */
 	VM_BUG_ON_PAGE(tail > 2 && page_tail->mapping != TAIL_MAPPING,
diff --git a/mm/internal.h b/mm/internal.h
index cf3cb93..5c73246 100644
--- a/mm/internal.h
+++ b/mm/internal.h
@@ -35,6 +35,7 @@
 void page_writeback_init(void);
 
 vm_fault_t do_swap_page(struct vm_fault *vmf);
+void activate_page(struct page *page);
 
 void free_pgtables(struct mmu_gather *tlb, struct vm_area_struct *start_vma,
 		unsigned long floor, unsigned long ceiling);
diff --git a/mm/kasan/common.c b/mm/kasan/common.c
index 2baf121..c15af56 100644
--- a/mm/kasan/common.c
+++ b/mm/kasan/common.c
@@ -30,20 +30,19 @@
 #include "kasan.h"
 #include "../slab.h"
 
-depot_stack_handle_t kasan_save_stack(gfp_t flags)
+depot_stack_handle_t kasan_save_stack(gfp_t flags, bool can_alloc)
 {
 	unsigned long entries[KASAN_STACK_DEPTH];
 	unsigned int nr_entries;
 
 	nr_entries = stack_trace_save(entries, ARRAY_SIZE(entries), 0);
-	nr_entries = filter_irq_stacks(entries, nr_entries);
-	return stack_depot_save(entries, nr_entries, flags);
+	return __stack_depot_save(entries, nr_entries, flags, can_alloc);
 }
 
 void kasan_set_track(struct kasan_track *track, gfp_t flags)
 {
 	track->pid = current->pid;
-	track->stack = kasan_save_stack(flags);
+	track->stack = kasan_save_stack(flags, true);
 }
 
 #if defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)
@@ -298,7 +297,7 @@
 	/* For caches that either have a constructor or SLAB_TYPESAFE_BY_RCU: */
 #ifdef CONFIG_SLAB
 	/* For SLAB assign tags based on the object index in the freelist. */
-	return (u8)obj_to_index(cache, virt_to_page(object), (void *)object);
+	return (u8)obj_to_index(cache, virt_to_head_page(object), (void *)object);
 #else
 	/*
 	 * For SLUB assign a random tag during slab creation, otherwise reuse
@@ -387,7 +386,7 @@
 	}
 
 	/*
-	 * The object will be poisoned by kasan_free_pages() or
+	 * The object will be poisoned by kasan_poison_pages() or
 	 * kasan_slab_free_mempool().
 	 */
 
@@ -536,7 +535,7 @@
 		return NULL;
 
 	/*
-	 * The object has already been unpoisoned by kasan_alloc_pages() for
+	 * The object has already been unpoisoned by kasan_unpoison_pages() for
 	 * alloc_pages() or by kasan_krealloc() for krealloc().
 	 */
 
diff --git a/mm/kasan/generic.c b/mm/kasan/generic.c
index c3f5ba7..84a038b 100644
--- a/mm/kasan/generic.c
+++ b/mm/kasan/generic.c
@@ -328,7 +328,7 @@
 DEFINE_ASAN_SET_SHADOW(f5);
 DEFINE_ASAN_SET_SHADOW(f8);
 
-void kasan_record_aux_stack(void *addr)
+static void __kasan_record_aux_stack(void *addr, bool can_alloc)
 {
 	struct page *page = kasan_addr_to_page(addr);
 	struct kmem_cache *cache;
@@ -345,7 +345,17 @@
 		return;
 
 	alloc_meta->aux_stack[1] = alloc_meta->aux_stack[0];
-	alloc_meta->aux_stack[0] = kasan_save_stack(GFP_NOWAIT);
+	alloc_meta->aux_stack[0] = kasan_save_stack(GFP_NOWAIT, can_alloc);
+}
+
+void kasan_record_aux_stack(void *addr)
+{
+	return __kasan_record_aux_stack(addr, true);
+}
+
+void kasan_record_aux_stack_noalloc(void *addr)
+{
+	return __kasan_record_aux_stack(addr, false);
 }
 
 void kasan_set_free_info(struct kmem_cache *cache,
diff --git a/mm/kasan/hw_tags.c b/mm/kasan/hw_tags.c
index 05d1e94..9e1b654 100644
--- a/mm/kasan/hw_tags.c
+++ b/mm/kasan/hw_tags.c
@@ -29,6 +29,13 @@
 	KASAN_ARG_MODE_DEFAULT,
 	KASAN_ARG_MODE_SYNC,
 	KASAN_ARG_MODE_ASYNC,
+	KASAN_ARG_MODE_ASYMM,
+};
+
+enum kasan_arg_vmalloc {
+	KASAN_ARG_VMALLOC_DEFAULT,
+	KASAN_ARG_VMALLOC_OFF,
+	KASAN_ARG_VMALLOC_ON,
 };
 
 enum kasan_arg_stacktrace {
@@ -39,18 +46,28 @@
 
 static enum kasan_arg kasan_arg __ro_after_init;
 static enum kasan_arg_mode kasan_arg_mode __ro_after_init;
-static enum kasan_arg_stacktrace kasan_arg_stacktrace __ro_after_init;
+static enum kasan_arg_vmalloc kasan_arg_vmalloc __initdata;
+static enum kasan_arg_stacktrace kasan_arg_stacktrace __initdata;
 
-/* Whether KASAN is enabled at all. */
+/*
+ * Whether KASAN is enabled at all.
+ * The value remains false until KASAN is initialized by kasan_init_hw_tags().
+ */
 DEFINE_STATIC_KEY_FALSE(kasan_flag_enabled);
 EXPORT_SYMBOL(kasan_flag_enabled);
 
-/* Whether the asynchronous mode is enabled. */
-bool kasan_flag_async __ro_after_init;
-EXPORT_SYMBOL_GPL(kasan_flag_async);
+/*
+ * Whether the selected mode is synchronous, asynchronous, or asymmetric.
+ * Defaults to KASAN_MODE_SYNC.
+ */
+enum kasan_mode kasan_mode __ro_after_init;
+EXPORT_SYMBOL_GPL(kasan_mode);
+
+/* Whether to enable vmalloc tagging. */
+DEFINE_STATIC_KEY_TRUE(kasan_flag_vmalloc);
 
 /* Whether to collect alloc/free stack traces. */
-DEFINE_STATIC_KEY_FALSE(kasan_flag_stacktrace);
+DEFINE_STATIC_KEY_TRUE(kasan_flag_stacktrace);
 
 /* kasan=off/on */
 static int __init early_kasan_flag(char *arg)
@@ -69,7 +86,7 @@
 }
 early_param("kasan", early_kasan_flag);
 
-/* kasan.mode=sync/async */
+/* kasan.mode=sync/async/asymm */
 static int __init early_kasan_mode(char *arg)
 {
 	if (!arg)
@@ -79,6 +96,8 @@
 		kasan_arg_mode = KASAN_ARG_MODE_SYNC;
 	else if (!strcmp(arg, "async"))
 		kasan_arg_mode = KASAN_ARG_MODE_ASYNC;
+	else if (!strcmp(arg, "asymm"))
+		kasan_arg_mode = KASAN_ARG_MODE_ASYMM;
 	else
 		return -EINVAL;
 
@@ -86,6 +105,23 @@
 }
 early_param("kasan.mode", early_kasan_mode);
 
+/* kasan.vmalloc=off/on */
+static int __init early_kasan_flag_vmalloc(char *arg)
+{
+	if (!arg)
+		return -EINVAL;
+
+	if (!strcmp(arg, "off"))
+		kasan_arg_vmalloc = KASAN_ARG_VMALLOC_OFF;
+	else if (!strcmp(arg, "on"))
+		kasan_arg_vmalloc = KASAN_ARG_VMALLOC_ON;
+	else
+		return -EINVAL;
+
+	return 0;
+}
+early_param("kasan.vmalloc", early_kasan_flag_vmalloc);
+
 /* kasan.stacktrace=off/on */
 static int __init early_kasan_flag_stacktrace(char *arg)
 {
@@ -103,7 +139,20 @@
 }
 early_param("kasan.stacktrace", early_kasan_flag_stacktrace);
 
-/* kasan_init_hw_tags_cpu() is called for each CPU. */
+static inline const char *kasan_mode_info(void)
+{
+	if (kasan_mode == KASAN_MODE_ASYNC)
+		return "async";
+	else if (kasan_mode == KASAN_MODE_ASYMM)
+		return "asymm";
+	else
+		return "sync";
+}
+
+/*
+ * kasan_init_hw_tags_cpu() is called for each CPU.
+ * Not marked as __init as a CPU can be hot-plugged after boot.
+ */
 void kasan_init_hw_tags_cpu(void)
 {
 	/*
@@ -111,18 +160,19 @@
 	 * as this function is only called for MTE-capable hardware.
 	 */
 
-	/* If KASAN is disabled via command line, don't initialize it. */
+	/*
+	 * If KASAN is disabled via command line, don't initialize it.
+	 * When this function is called, kasan_flag_enabled is not yet
+	 * set by kasan_init_hw_tags(). Thus, check kasan_arg instead.
+	 */
 	if (kasan_arg == KASAN_ARG_OFF)
 		return;
 
 	/*
-	 * Enable async mode only when explicitly requested through
-	 * the command line.
+	 * Enable async or asymm modes only when explicitly requested
+	 * through the command line.
 	 */
-	if (kasan_arg_mode == KASAN_ARG_MODE_ASYNC)
-		hw_enable_tagging_async();
-	else
-		hw_enable_tagging_sync();
+	kasan_enable_tagging();
 }
 
 /* kasan_init_hw_tags() is called once on boot CPU. */
@@ -136,80 +186,169 @@
 	if (kasan_arg == KASAN_ARG_OFF)
 		return;
 
-	/* Enable KASAN. */
-	static_branch_enable(&kasan_flag_enabled);
-
 	switch (kasan_arg_mode) {
 	case KASAN_ARG_MODE_DEFAULT:
-		/*
-		 * Default to sync mode.
-		 * Do nothing, kasan_flag_async keeps its default value.
-		 */
+		/* Default is specified by kasan_mode definition. */
 		break;
 	case KASAN_ARG_MODE_SYNC:
-		/* Do nothing, kasan_flag_async keeps its default value. */
+		kasan_mode = KASAN_MODE_SYNC;
 		break;
 	case KASAN_ARG_MODE_ASYNC:
-		/* Async mode enabled. */
-		kasan_flag_async = true;
+		kasan_mode = KASAN_MODE_ASYNC;
+		break;
+	case KASAN_ARG_MODE_ASYMM:
+		kasan_mode = KASAN_MODE_ASYMM;
+		break;
+	}
+
+	switch (kasan_arg_vmalloc) {
+	case KASAN_ARG_VMALLOC_DEFAULT:
+		/* Default is specified by kasan_flag_vmalloc definition. */
+		break;
+	case KASAN_ARG_VMALLOC_OFF:
+		static_branch_disable(&kasan_flag_vmalloc);
+		break;
+	case KASAN_ARG_VMALLOC_ON:
+		static_branch_enable(&kasan_flag_vmalloc);
 		break;
 	}
 
 	switch (kasan_arg_stacktrace) {
 	case KASAN_ARG_STACKTRACE_DEFAULT:
-		/* Default to enabling stack trace collection. */
-		static_branch_enable(&kasan_flag_stacktrace);
+		/* Default is specified by kasan_flag_stacktrace definition. */
 		break;
 	case KASAN_ARG_STACKTRACE_OFF:
-		/* Do nothing, kasan_flag_stacktrace keeps its default value. */
+		static_branch_disable(&kasan_flag_stacktrace);
 		break;
 	case KASAN_ARG_STACKTRACE_ON:
 		static_branch_enable(&kasan_flag_stacktrace);
 		break;
 	}
 
-	pr_info("KernelAddressSanitizer initialized\n");
+	/* KASAN is now initialized, enable it. */
+	static_branch_enable(&kasan_flag_enabled);
+
+	pr_info("KernelAddressSanitizer initialized (hw-tags, mode=%s, vmalloc=%s, stacktrace=%s)\n",
+		kasan_mode_info(),
+		kasan_vmalloc_enabled() ? "on" : "off",
+		kasan_stack_collection_enabled() ? "on" : "off");
 }
 
-void kasan_alloc_pages(struct page *page, unsigned int order, gfp_t flags)
+#ifdef CONFIG_KASAN_VMALLOC
+
+static void unpoison_vmalloc_pages(const void *addr, u8 tag)
 {
+	struct vm_struct *area;
+	int i;
+
 	/*
-	 * This condition should match the one in post_alloc_hook() in
-	 * page_alloc.c.
+	 * As hardware tag-based KASAN only tags VM_ALLOC vmalloc allocations
+	 * (see the comment in __kasan_unpoison_vmalloc), all of the pages
+	 * should belong to a single area.
 	 */
-	bool init = !want_init_on_free() && want_init_on_alloc(flags);
+	area = find_vm_area((void *)addr);
+	if (WARN_ON(!area))
+		return;
 
-	if (flags & __GFP_SKIP_KASAN_POISON)
-		SetPageSkipKASanPoison(page);
+	for (i = 0; i < area->nr_pages; i++) {
+		struct page *page = area->pages[i];
 
-	if (flags & __GFP_ZEROTAGS) {
-		int i;
-
-		for (i = 0; i != 1 << order; ++i)
-			tag_clear_highpage(page + i);
-	} else {
-		kasan_unpoison_pages(page, order, init);
+		page_kasan_tag_set(page, tag);
 	}
 }
 
-void kasan_free_pages(struct page *page, unsigned int order)
+void *__kasan_unpoison_vmalloc(const void *start, unsigned long size,
+				kasan_vmalloc_flags_t flags)
+{
+	u8 tag;
+	unsigned long redzone_start, redzone_size;
+
+	if (!kasan_vmalloc_enabled())
+		return (void *)start;
+
+	if (!is_vmalloc_or_module_addr(start))
+		return (void *)start;
+
+	/*
+	 * Skip unpoisoning and assigning a pointer tag for non-VM_ALLOC
+	 * mappings as:
+	 *
+	 * 1. Unlike the software KASAN modes, hardware tag-based KASAN only
+	 *    supports tagging physical memory. Therefore, it can only tag a
+	 *    single mapping of normal physical pages.
+	 * 2. Hardware tag-based KASAN can only tag memory mapped with special
+	 *    mapping protection bits, see arch_vmalloc_pgprot_modify().
+	 *    As non-VM_ALLOC mappings can be mapped outside of vmalloc code,
+	 *    providing these bits would require tracking all non-VM_ALLOC
+	 *    mappers.
+	 *
+	 * Thus, for VM_ALLOC mappings, hardware tag-based KASAN only tags
+	 * the first virtual mapping, which is created by vmalloc().
+	 * Tagging the page_alloc memory backing that vmalloc() allocation is
+	 * skipped, see ___GFP_SKIP_KASAN_UNPOISON.
+	 *
+	 * For non-VM_ALLOC allocations, page_alloc memory is tagged as usual.
+	 */
+	if (!(flags & KASAN_VMALLOC_VM_ALLOC))
+		return (void *)start;
+
+	/*
+	 * Don't tag executable memory.
+	 * The kernel doesn't tolerate having the PC register tagged.
+	 */
+	if (!(flags & KASAN_VMALLOC_PROT_NORMAL))
+		return (void *)start;
+
+	tag = kasan_random_tag();
+	start = set_tag(start, tag);
+
+	/* Unpoison and initialize memory up to size. */
+	kasan_unpoison(start, size, flags & KASAN_VMALLOC_INIT);
+
+	/*
+	 * Explicitly poison and initialize the in-page vmalloc() redzone.
+	 * Unlike software KASAN modes, hardware tag-based KASAN doesn't
+	 * unpoison memory when populating shadow for vmalloc() space.
+	 */
+	redzone_start = round_up((unsigned long)start + size,
+				 KASAN_GRANULE_SIZE);
+	redzone_size = round_up(redzone_start, PAGE_SIZE) - redzone_start;
+	kasan_poison((void *)redzone_start, redzone_size, KASAN_TAG_INVALID,
+		     flags & KASAN_VMALLOC_INIT);
+
+	/*
+	 * Set per-page tag flags to allow accessing physical memory for the
+	 * vmalloc() mapping through page_address(vmalloc_to_page()).
+	 */
+	unpoison_vmalloc_pages(start, tag);
+
+	return (void *)start;
+}
+
+void __kasan_poison_vmalloc(const void *start, unsigned long size)
 {
 	/*
-	 * This condition should match the one in free_pages_prepare() in
-	 * page_alloc.c.
+	 * No tagging here.
+	 * The physical pages backing the vmalloc() allocation are poisoned
+	 * through the usual page_alloc paths.
 	 */
-	bool init = want_init_on_free();
+}
 
-	kasan_poison_pages(page, order, init);
+#endif
+
+void kasan_enable_tagging(void)
+{
+	if (kasan_arg_mode == KASAN_ARG_MODE_ASYNC)
+		hw_enable_tagging_async();
+	else if (kasan_arg_mode == KASAN_ARG_MODE_ASYMM)
+		hw_enable_tagging_asymm();
+	else
+		hw_enable_tagging_sync();
 }
 
 #if IS_ENABLED(CONFIG_KASAN_KUNIT_TEST)
 
-void kasan_enable_tagging_sync(void)
-{
-	hw_enable_tagging_sync();
-}
-EXPORT_SYMBOL_GPL(kasan_enable_tagging_sync);
+EXPORT_SYMBOL_GPL(kasan_enable_tagging);
 
 void kasan_force_async_fault(void)
 {
diff --git a/mm/kasan/kasan.h b/mm/kasan/kasan.h
index 8bf568a..3a002a8 100644
--- a/mm/kasan/kasan.h
+++ b/mm/kasan/kasan.h
@@ -7,22 +7,46 @@
 #include <linux/kfence.h>
 #include <linux/stackdepot.h>
 
+/* Used in KUnit-compatible KASAN tests. */
+struct kunit_kasan_status {
+	bool report_found;
+	bool sync_fault;
+};
+
 #ifdef CONFIG_KASAN_HW_TAGS
 
 #include <linux/static_key.h>
 #include "../slab.h"
 
-DECLARE_STATIC_KEY_FALSE(kasan_flag_stacktrace);
-extern bool kasan_flag_async __ro_after_init;
+DECLARE_STATIC_KEY_TRUE(kasan_flag_vmalloc);
+DECLARE_STATIC_KEY_TRUE(kasan_flag_stacktrace);
+
+enum kasan_mode {
+	KASAN_MODE_SYNC,
+	KASAN_MODE_ASYNC,
+	KASAN_MODE_ASYMM,
+};
+
+extern enum kasan_mode kasan_mode __ro_after_init;
+
+static inline bool kasan_vmalloc_enabled(void)
+{
+	return static_branch_likely(&kasan_flag_vmalloc);
+}
 
 static inline bool kasan_stack_collection_enabled(void)
 {
 	return static_branch_unlikely(&kasan_flag_stacktrace);
 }
 
-static inline bool kasan_async_mode_enabled(void)
+static inline bool kasan_async_fault_possible(void)
 {
-	return kasan_flag_async;
+	return kasan_mode == KASAN_MODE_ASYNC || kasan_mode == KASAN_MODE_ASYMM;
+}
+
+static inline bool kasan_sync_fault_possible(void)
+{
+	return kasan_mode == KASAN_MODE_SYNC || kasan_mode == KASAN_MODE_ASYMM;
 }
 #else
 
@@ -31,14 +55,17 @@
 	return true;
 }
 
-static inline bool kasan_async_mode_enabled(void)
+static inline bool kasan_async_fault_possible(void)
 {
 	return false;
 }
 
-#endif
+static inline bool kasan_sync_fault_possible(void)
+{
+	return true;
+}
 
-extern bool kasan_flag_async __ro_after_init;
+#endif
 
 #if defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)
 #define KASAN_GRANULE_SIZE	(1UL << KASAN_SHADOW_SCALE_SHIFT)
@@ -56,17 +83,19 @@
 #define KASAN_PAGE_REDZONE      0xFE  /* redzone for kmalloc_large allocations */
 #define KASAN_KMALLOC_REDZONE   0xFC  /* redzone inside slub object */
 #define KASAN_KMALLOC_FREE      0xFB  /* object was freed (kmem_cache_free/kfree) */
-#define KASAN_KMALLOC_FREETRACK 0xFA  /* object was freed and has free track set */
+#define KASAN_VMALLOC_INVALID   0xF8  /* unallocated space in vmapped page */
 #else
 #define KASAN_FREE_PAGE         KASAN_TAG_INVALID
 #define KASAN_PAGE_REDZONE      KASAN_TAG_INVALID
 #define KASAN_KMALLOC_REDZONE   KASAN_TAG_INVALID
 #define KASAN_KMALLOC_FREE      KASAN_TAG_INVALID
-#define KASAN_KMALLOC_FREETRACK KASAN_TAG_INVALID
+#define KASAN_VMALLOC_INVALID   KASAN_TAG_INVALID /* only for SW_TAGS */
 #endif
 
+#ifdef CONFIG_KASAN_GENERIC
+
+#define KASAN_KMALLOC_FREETRACK 0xFA  /* object was freed and has free track set */
 #define KASAN_GLOBAL_REDZONE    0xF9  /* redzone for global variable */
-#define KASAN_VMALLOC_INVALID   0xF8  /* unallocated space in vmapped page */
 
 /*
  * Stack redzone shadow values
@@ -95,6 +124,8 @@
 #define KASAN_ABI_VERSION 1
 #endif
 
+#endif /* CONFIG_KASAN_GENERIC */
+
 /* Metadata layout customization. */
 #define META_BYTES_PER_BLOCK 1
 #define META_BLOCKS_PER_ROW 16
@@ -251,7 +282,7 @@
 
 struct page *kasan_addr_to_page(const void *addr);
 
-depot_stack_handle_t kasan_save_stack(gfp_t flags);
+depot_stack_handle_t kasan_save_stack(gfp_t flags, bool can_alloc);
 void kasan_set_track(struct kasan_track *track, gfp_t flags);
 void kasan_set_free_info(struct kmem_cache *cache, void *object, u8 tag);
 struct kasan_track *kasan_get_free_track(struct kmem_cache *cache,
@@ -289,6 +320,9 @@
 #ifndef arch_enable_tagging_async
 #define arch_enable_tagging_async()
 #endif
+#ifndef arch_enable_tagging_asymm
+#define arch_enable_tagging_asymm()
+#endif
 #ifndef arch_force_async_tag_fault
 #define arch_force_async_tag_fault()
 #endif
@@ -304,30 +338,34 @@
 
 #define hw_enable_tagging_sync()		arch_enable_tagging_sync()
 #define hw_enable_tagging_async()		arch_enable_tagging_async()
+#define hw_enable_tagging_asymm()		arch_enable_tagging_asymm()
 #define hw_force_async_tag_fault()		arch_force_async_tag_fault()
 #define hw_get_random_tag()			arch_get_random_tag()
 #define hw_get_mem_tag(addr)			arch_get_mem_tag(addr)
 #define hw_set_mem_tag_range(addr, size, tag, init) \
 			arch_set_mem_tag_range((addr), (size), (tag), (init))
 
+void kasan_enable_tagging(void);
+
 #else /* CONFIG_KASAN_HW_TAGS */
 
 #define hw_enable_tagging_sync()
 #define hw_enable_tagging_async()
+#define hw_enable_tagging_asymm()
+
+static inline void kasan_enable_tagging(void) { }
 
 #endif /* CONFIG_KASAN_HW_TAGS */
 
 #if defined(CONFIG_KASAN_HW_TAGS) && IS_ENABLED(CONFIG_KASAN_KUNIT_TEST)
 
-void kasan_enable_tagging_sync(void);
 void kasan_force_async_fault(void);
 
-#else /* CONFIG_KASAN_HW_TAGS || CONFIG_KASAN_KUNIT_TEST */
+#else /* CONFIG_KASAN_HW_TAGS && CONFIG_KASAN_KUNIT_TEST */
 
-static inline void kasan_enable_tagging_sync(void) { }
 static inline void kasan_force_async_fault(void) { }
 
-#endif /* CONFIG_KASAN_HW_TAGS || CONFIG_KASAN_KUNIT_TEST */
+#endif /* CONFIG_KASAN_HW_TAGS && CONFIG_KASAN_KUNIT_TEST */
 
 #ifdef CONFIG_KASAN_SW_TAGS
 u8 kasan_random_tag(void);
diff --git a/mm/kasan/report.c b/mm/kasan/report.c
index 887af873..96ca099 100644
--- a/mm/kasan/report.c
+++ b/mm/kasan/report.c
@@ -112,7 +112,7 @@
 
 static void end_report(unsigned long *flags, unsigned long addr)
 {
-	if (!kasan_async_mode_enabled())
+	if (!kasan_async_fault_possible())
 		trace_error_report_end(ERROR_DETECTOR_KASAN, addr);
 	pr_err("==================================================================\n");
 	add_taint(TAINT_BAD_PAGE, LOCKDEP_NOW_UNRELIABLE);
@@ -227,7 +227,7 @@
 
 static inline bool kernel_or_module_addr(const void *addr)
 {
-	if (addr >= (void *)_stext && addr < (void *)_end)
+	if (is_kernel((unsigned long)addr))
 		return true;
 	if (is_module_address((unsigned long)addr))
 		return true;
@@ -335,24 +335,23 @@
 	return !test_and_set_bit(KASAN_BIT_REPORTED, &kasan_flags);
 }
 
-#if IS_ENABLED(CONFIG_KUNIT)
-static void kasan_update_kunit_status(struct kunit *cur_test)
+static void kasan_update_kunit_status(struct kunit *cur_test, bool sync)
 {
 	struct kunit_resource *resource;
-	struct kunit_kasan_expectation *kasan_data;
+	struct kunit_kasan_status *status;
 
-	resource = kunit_find_named_resource(cur_test, "kasan_data");
+	resource = kunit_find_named_resource(cur_test, "kasan_status");
 
 	if (!resource) {
 		kunit_set_failure(cur_test);
 		return;
 	}
 
-	kasan_data = (struct kunit_kasan_expectation *)resource->data;
-	WRITE_ONCE(kasan_data->report_found, true);
+	status = (struct kunit_kasan_status *)resource->data;
+	WRITE_ONCE(status->report_found, true);
+	WRITE_ONCE(status->sync_fault, sync);
 	kunit_put_resource(resource);
 }
-#endif /* IS_ENABLED(CONFIG_KUNIT) */
 
 void kasan_report_invalid_free(void *object, unsigned long ip)
 {
@@ -361,10 +360,8 @@
 
 	object = kasan_reset_tag(object);
 
-#if IS_ENABLED(CONFIG_KUNIT)
 	if (current->kunit_test)
-		kasan_update_kunit_status(current->kunit_test);
-#endif /* IS_ENABLED(CONFIG_KUNIT) */
+		kasan_update_kunit_status(current->kunit_test, true);
 
 	start_report(&flags);
 	pr_err("BUG: KASAN: double-free or invalid-free in %pS\n", (void *)ip);
@@ -381,10 +378,8 @@
 {
 	unsigned long flags;
 
-#if IS_ENABLED(CONFIG_KUNIT)
 	if (current->kunit_test)
-		kasan_update_kunit_status(current->kunit_test);
-#endif /* IS_ENABLED(CONFIG_KUNIT) */
+		kasan_update_kunit_status(current->kunit_test, false);
 
 	start_report(&flags);
 	pr_err("BUG: KASAN: invalid-access\n");
@@ -403,10 +398,8 @@
 	void *untagged_addr;
 	unsigned long flags;
 
-#if IS_ENABLED(CONFIG_KUNIT)
 	if (current->kunit_test)
-		kasan_update_kunit_status(current->kunit_test);
-#endif /* IS_ENABLED(CONFIG_KUNIT) */
+		kasan_update_kunit_status(current->kunit_test, true);
 
 	disable_trace_on_warning();
 
diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
index dd79840..6594e24 100644
--- a/mm/kasan/shadow.c
+++ b/mm/kasan/shadow.c
@@ -340,27 +340,6 @@
 	return 0;
 }
 
-/*
- * Poison the shadow for a vmalloc region. Called as part of the
- * freeing process at the time the region is freed.
- */
-void kasan_poison_vmalloc(const void *start, unsigned long size)
-{
-	if (!is_vmalloc_or_module_addr(start))
-		return;
-
-	size = round_up(size, KASAN_GRANULE_SIZE);
-	kasan_poison(start, size, KASAN_VMALLOC_INVALID, false);
-}
-
-void kasan_unpoison_vmalloc(const void *start, unsigned long size)
-{
-	if (!is_vmalloc_or_module_addr(start))
-		return;
-
-	kasan_unpoison(start, size, false);
-}
-
 static int kasan_depopulate_vmalloc_pte(pte_t *ptep, unsigned long addr,
 					void *unused)
 {
@@ -491,9 +470,48 @@
 	}
 }
 
+void *__kasan_unpoison_vmalloc(const void *start, unsigned long size,
+			       kasan_vmalloc_flags_t flags)
+{
+	/*
+	 * Software KASAN modes unpoison both VM_ALLOC and non-VM_ALLOC
+	 * mappings, so the KASAN_VMALLOC_VM_ALLOC flag is ignored.
+	 * Software KASAN modes can't optimize zeroing memory by combining it
+	 * with setting memory tags, so the KASAN_VMALLOC_INIT flag is ignored.
+	 */
+
+	if (!is_vmalloc_or_module_addr(start))
+		return (void *)start;
+
+	/*
+	 * Don't tag executable memory with the tag-based mode.
+	 * The kernel doesn't tolerate having the PC register tagged.
+	 */
+	if (IS_ENABLED(CONFIG_KASAN_SW_TAGS) &&
+	    !(flags & KASAN_VMALLOC_PROT_NORMAL))
+		return (void *)start;
+
+	start = set_tag(start, kasan_random_tag());
+	kasan_unpoison(start, size, false);
+	return (void *)start;
+}
+
+/*
+ * Poison the shadow for a vmalloc region. Called as part of the
+ * freeing process at the time the region is freed.
+ */
+void __kasan_poison_vmalloc(const void *start, unsigned long size)
+{
+	if (!is_vmalloc_or_module_addr(start))
+		return;
+
+	size = round_up(size, KASAN_GRANULE_SIZE);
+	kasan_poison(start, size, KASAN_VMALLOC_INVALID, false);
+}
+
 #else /* CONFIG_KASAN_VMALLOC */
 
-int kasan_module_alloc(void *addr, size_t size, gfp_t gfp_mask)
+int kasan_alloc_module_shadow(void *addr, size_t size, gfp_t gfp_mask)
 {
 	void *ret;
 	size_t scaled_size;
@@ -529,7 +547,7 @@
 	return -ENOMEM;
 }
 
-void kasan_free_shadow(const struct vm_struct *vm)
+void kasan_free_module_shadow(const struct vm_struct *vm)
 {
 	if (vm->flags & VM_KASAN)
 		vfree(kasan_mem_to_shadow(vm->addr));
diff --git a/mm/kasan/sw_tags.c b/mm/kasan/sw_tags.c
index bd3f540..77f13f3 100644
--- a/mm/kasan/sw_tags.c
+++ b/mm/kasan/sw_tags.c
@@ -42,7 +42,7 @@
 	for_each_possible_cpu(cpu)
 		per_cpu(prng_state, cpu) = (u32)get_cycles();
 
-	pr_info("KernelAddressSanitizer initialized\n");
+	pr_info("KernelAddressSanitizer initialized (sw-tags)\n");
 }
 
 /*
diff --git a/mm/khugepaged.c b/mm/khugepaged.c
index 203792e..c7e02f8 100644
--- a/mm/khugepaged.c
+++ b/mm/khugepaged.c
@@ -2340,6 +2340,11 @@
 	int nr_zones = 0;
 	unsigned long recommended_min;
 
+	if (!khugepaged_enabled()) {
+		calculate_min_free_kbytes();
+		goto update_wmarks;
+	}
+
 	for_each_populated_zone(zone) {
 		/*
 		 * We don't need to worry about fragmentation of
@@ -2375,6 +2380,8 @@
 
 		min_free_kbytes = recommended_min;
 	}
+
+update_wmarks:
 	setup_per_zone_wmarks();
 }
 
@@ -2396,12 +2403,11 @@
 
 		if (!list_empty(&khugepaged_scan.mm_head))
 			wake_up_interruptible(&khugepaged_wait);
-
-		set_recommended_min_free_kbytes();
 	} else if (khugepaged_thread) {
 		kthread_stop(khugepaged_thread);
 		khugepaged_thread = NULL;
 	}
+	set_recommended_min_free_kbytes();
 fail:
 	mutex_unlock(&khugepaged_mutex);
 	return err;
diff --git a/mm/kmemleak.c b/mm/kmemleak.c
index b78861b..acd7cbb 100644
--- a/mm/kmemleak.c
+++ b/mm/kmemleak.c
@@ -381,15 +381,20 @@
 static struct kmemleak_object *lookup_object(unsigned long ptr, int alias)
 {
 	struct rb_node *rb = object_tree_root.rb_node;
+	unsigned long untagged_ptr = (unsigned long)kasan_reset_tag((void *)ptr);
 
 	while (rb) {
-		struct kmemleak_object *object =
-			rb_entry(rb, struct kmemleak_object, rb_node);
-		if (ptr < object->pointer)
+		struct kmemleak_object *object;
+		unsigned long untagged_objp;
+
+		object = rb_entry(rb, struct kmemleak_object, rb_node);
+		untagged_objp = (unsigned long)kasan_reset_tag((void *)object->pointer);
+
+		if (untagged_ptr < untagged_objp)
 			rb = object->rb_node.rb_left;
-		else if (object->pointer + object->size <= ptr)
+		else if (untagged_objp + object->size <= untagged_ptr)
 			rb = object->rb_node.rb_right;
-		else if (object->pointer == ptr || alias)
+		else if (untagged_objp == untagged_ptr || alias)
 			return object;
 		else {
 			kmemleak_warn("Found object by alias at 0x%08lx\n",
@@ -576,6 +581,7 @@
 	struct kmemleak_object *object, *parent;
 	struct rb_node **link, *rb_parent;
 	unsigned long untagged_ptr;
+	unsigned long untagged_objp;
 
 	object = mem_pool_alloc(gfp);
 	if (!object) {
@@ -629,9 +635,10 @@
 	while (*link) {
 		rb_parent = *link;
 		parent = rb_entry(rb_parent, struct kmemleak_object, rb_node);
-		if (ptr + size <= parent->pointer)
+		untagged_objp = (unsigned long)kasan_reset_tag((void *)parent->pointer);
+		if (untagged_ptr + size <= untagged_objp)
 			link = &parent->rb_node.rb_left;
-		else if (parent->pointer + parent->size <= ptr)
+		else if (untagged_objp + parent->size <= untagged_ptr)
 			link = &parent->rb_node.rb_right;
 		else {
 			kmemleak_stop("Cannot insert 0x%lx into the object search tree (overlaps existing)\n",
diff --git a/mm/ksm.c b/mm/ksm.c
index a5716fd..255bd48 100644
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -2617,7 +2617,13 @@
 		struct vm_area_struct *vma;
 
 		cond_resched();
-		anon_vma_lock_read(anon_vma);
+		if (!anon_vma_trylock_read(anon_vma)) {
+			if (rwc->try_lock) {
+				rwc->contended = true;
+				return;
+			}
+			anon_vma_lock_read(anon_vma);
+		}
 		anon_vma_interval_tree_foreach(vmac, &anon_vma->rb_root,
 					       0, ULONG_MAX) {
 			unsigned long addr;
diff --git a/mm/madvise.c b/mm/madvise.c
index 6c099f8..c923c4c 100644
--- a/mm/madvise.c
+++ b/mm/madvise.c
@@ -18,6 +18,8 @@
 #include <linux/fadvise.h>
 #include <linux/sched.h>
 #include <linux/sched/mm.h>
+#include <linux/mm_inline.h>
+#include <linux/string.h>
 #include <linux/uio.h>
 #include <linux/ksm.h>
 #include <linux/fs.h>
@@ -29,6 +31,7 @@
 #include <linux/swapops.h>
 #include <linux/shmem_fs.h>
 #include <linux/mmu_notifier.h>
+#include <trace/hooks/mm.h>
 
 #include <asm/tlb.h>
 
@@ -37,6 +40,7 @@
 struct madvise_walk_private {
 	struct mmu_gather *tlb;
 	bool pageout;
+	bool can_pageout_file;
 };
 
 /*
@@ -62,83 +66,94 @@
 	}
 }
 
-/*
- * We can potentially split a vm area into separate
- * areas, each area with its own behavior.
- */
-static long madvise_behavior(struct vm_area_struct *vma,
-		     struct vm_area_struct **prev,
-		     unsigned long start, unsigned long end, int behavior)
+#ifdef CONFIG_ANON_VMA_NAME
+struct anon_vma_name *anon_vma_name_alloc(const char *name)
 {
-	struct mm_struct *mm = vma->vm_mm;
-	int error = 0;
-	pgoff_t pgoff;
-	unsigned long new_flags = vma->vm_flags;
+	struct anon_vma_name *anon_name;
+	size_t count;
 
-	switch (behavior) {
-	case MADV_NORMAL:
-		new_flags = new_flags & ~VM_RAND_READ & ~VM_SEQ_READ;
-		break;
-	case MADV_SEQUENTIAL:
-		new_flags = (new_flags & ~VM_RAND_READ) | VM_SEQ_READ;
-		break;
-	case MADV_RANDOM:
-		new_flags = (new_flags & ~VM_SEQ_READ) | VM_RAND_READ;
-		break;
-	case MADV_DONTFORK:
-		new_flags |= VM_DONTCOPY;
-		break;
-	case MADV_DOFORK:
-		if (vma->vm_flags & VM_IO) {
-			error = -EINVAL;
-			goto out;
-		}
-		new_flags &= ~VM_DONTCOPY;
-		break;
-	case MADV_WIPEONFORK:
-		/* MADV_WIPEONFORK is only supported on anonymous memory. */
-		if (vma->vm_file || vma->vm_flags & VM_SHARED) {
-			error = -EINVAL;
-			goto out;
-		}
-		new_flags |= VM_WIPEONFORK;
-		break;
-	case MADV_KEEPONFORK:
-		new_flags &= ~VM_WIPEONFORK;
-		break;
-	case MADV_DONTDUMP:
-		new_flags |= VM_DONTDUMP;
-		break;
-	case MADV_DODUMP:
-		if (!is_vm_hugetlb_page(vma) && new_flags & VM_SPECIAL) {
-			error = -EINVAL;
-			goto out;
-		}
-		new_flags &= ~VM_DONTDUMP;
-		break;
-	case MADV_MERGEABLE:
-	case MADV_UNMERGEABLE:
-		error = ksm_madvise(vma, start, end, behavior, &new_flags);
-		if (error)
-			goto out_convert_errno;
-		break;
-	case MADV_HUGEPAGE:
-	case MADV_NOHUGEPAGE:
-		error = hugepage_madvise(vma, &new_flags, behavior);
-		if (error)
-			goto out_convert_errno;
-		break;
+	/* Add 1 for NUL terminator at the end of the anon_name->name */
+	count = strlen(name) + 1;
+	anon_name = kmalloc(struct_size(anon_name, name, count), GFP_KERNEL);
+	if (anon_name) {
+		kref_init(&anon_name->kref);
+		memcpy(anon_name->name, name, count);
 	}
 
-	if (new_flags == vma->vm_flags) {
+	return anon_name;
+}
+
+void anon_vma_name_free(struct kref *kref)
+{
+	struct anon_vma_name *anon_name =
+			container_of(kref, struct anon_vma_name, kref);
+	kfree(anon_name);
+}
+
+struct anon_vma_name *anon_vma_name(struct vm_area_struct *vma)
+{
+	mmap_assert_locked(vma->vm_mm);
+
+	if (vma->vm_file)
+		return NULL;
+
+	return vma->anon_name;
+}
+
+/* mmap_lock should be write-locked */
+static int replace_anon_vma_name(struct vm_area_struct *vma,
+				 struct anon_vma_name *anon_name)
+{
+	struct anon_vma_name *orig_name = anon_vma_name(vma);
+
+	if (!anon_name) {
+		vma->anon_name = NULL;
+		anon_vma_name_put(orig_name);
+		return 0;
+	}
+
+	if (anon_vma_name_eq(orig_name, anon_name))
+		return 0;
+
+	vma->anon_name = anon_vma_name_reuse(anon_name);
+	anon_vma_name_put(orig_name);
+
+	return 0;
+}
+#else /* CONFIG_ANON_VMA_NAME */
+static int replace_anon_vma_name(struct vm_area_struct *vma,
+				 struct anon_vma_name *anon_name)
+{
+	if (anon_name)
+		return -EINVAL;
+
+	return 0;
+}
+#endif /* CONFIG_ANON_VMA_NAME */
+/*
+ * Update the vm_flags on region of a vma, splitting it or merging it as
+ * necessary.  Must be called with mmap_sem held for writing;
+ * Caller should ensure anon_name stability by raising its refcount even when
+ * anon_name belongs to a valid vma because this function might free that vma.
+ */
+static int madvise_update_vma(struct vm_area_struct *vma,
+			      struct vm_area_struct **prev, unsigned long start,
+			      unsigned long end, unsigned long new_flags,
+			      struct anon_vma_name *anon_name)
+{
+	struct mm_struct *mm = vma->vm_mm;
+	int error;
+	pgoff_t pgoff;
+
+	if (new_flags == vma->vm_flags && anon_vma_name_eq(anon_vma_name(vma), anon_name)) {
 		*prev = vma;
-		goto out;
+		return 0;
 	}
 
 	pgoff = vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT);
 	*prev = vma_merge(mm, *prev, start, end, new_flags, vma->anon_vma,
 			  vma->vm_file, pgoff, vma_policy(vma),
-			  vma->vm_userfaultfd_ctx);
+			  vma->vm_userfaultfd_ctx, anon_name);
 	if (*prev) {
 		vma = *prev;
 		goto success;
@@ -147,23 +162,19 @@
 	*prev = vma;
 
 	if (start != vma->vm_start) {
-		if (unlikely(mm->map_count >= sysctl_max_map_count)) {
-			error = -ENOMEM;
-			goto out;
-		}
+		if (unlikely(mm->map_count >= sysctl_max_map_count))
+			return -ENOMEM;
 		error = __split_vma(mm, vma, start, 1);
 		if (error)
-			goto out_convert_errno;
+			return error;
 	}
 
 	if (end != vma->vm_end) {
-		if (unlikely(mm->map_count >= sysctl_max_map_count)) {
-			error = -ENOMEM;
-			goto out;
-		}
+		if (unlikely(mm->map_count >= sysctl_max_map_count))
+			return -ENOMEM;
 		error = __split_vma(mm, vma, end, 0);
 		if (error)
-			goto out_convert_errno;
+			return error;
 	}
 
 success:
@@ -171,16 +182,13 @@
 	 * vm_flags is protected by the mmap_lock held in write mode.
 	 */
 	vma->vm_flags = new_flags;
+	if (!vma->vm_file) {
+		error = replace_anon_vma_name(vma, anon_name);
+		if (error)
+			return error;
+	}
 
-out_convert_errno:
-	/*
-	 * madvise() returns EAGAIN if kernel resources, such as
-	 * slab, are temporarily unavailable.
-	 */
-	if (error == -ENOMEM)
-		error = -EAGAIN;
-out:
-	return error;
+	return 0;
 }
 
 #ifdef CONFIG_SWAP
@@ -312,16 +320,21 @@
 	struct madvise_walk_private *private = walk->private;
 	struct mmu_gather *tlb = private->tlb;
 	bool pageout = private->pageout;
+	bool pageout_anon_only = pageout && !private->can_pageout_file;
 	struct mm_struct *mm = tlb->mm;
 	struct vm_area_struct *vma = walk->vma;
 	pte_t *orig_pte, *pte, ptent;
 	spinlock_t *ptl;
 	struct page *page = NULL;
 	LIST_HEAD(page_list);
+	bool allow_shared = false;
+	bool abort_madvise = false;
 
-	if (fatal_signal_pending(current))
+	trace_android_vh_madvise_cold_or_pageout_abort(vma, &abort_madvise);
+	if (fatal_signal_pending(current) || abort_madvise)
 		return -EINTR;
 
+	trace_android_vh_madvise_cold_or_pageout(vma, &allow_shared);
 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
 	if (pmd_trans_huge(*pmd)) {
 		pmd_t orig_pmd;
@@ -348,6 +361,9 @@
 		if (page_mapcount(page) != 1)
 			goto huge_unlock;
 
+		if (pageout_anon_only && !PageAnon(page))
+			goto huge_unlock;
+
 		if (next - addr != HPAGE_PMD_SIZE) {
 			int err;
 
@@ -416,6 +432,8 @@
 		if (PageTransCompound(page)) {
 			if (page_mapcount(page) != 1)
 				break;
+			if (pageout_anon_only && !PageAnon(page))
+				break;
 			get_page(page);
 			if (!trylock_page(page)) {
 				put_page(page);
@@ -440,7 +458,10 @@
 		 * Do not interfere with other mappings of this page and
 		 * non-LRU page.
 		 */
-		if (!PageLRU(page) || page_mapcount(page) != 1)
+		if (!allow_shared && (!PageLRU(page) || page_mapcount(page) != 1))
+			continue;
+
+		if (pageout_anon_only && !PageAnon(page))
 			continue;
 
 		VM_BUG_ON_PAGE(PageTransCompound(page), page);
@@ -520,11 +541,13 @@
 
 static void madvise_pageout_page_range(struct mmu_gather *tlb,
 			     struct vm_area_struct *vma,
-			     unsigned long addr, unsigned long end)
+			     unsigned long addr, unsigned long end,
+			     bool can_pageout_file)
 {
 	struct madvise_walk_private walk_private = {
 		.pageout = true,
 		.tlb = tlb,
+		.can_pageout_file = can_pageout_file,
 	};
 
 	tlb_start_vma(tlb, vma);
@@ -532,10 +555,8 @@
 	tlb_end_vma(tlb, vma);
 }
 
-static inline bool can_do_pageout(struct vm_area_struct *vma)
+static inline bool can_do_file_pageout(struct vm_area_struct *vma)
 {
-	if (vma_is_anonymous(vma))
-		return true;
 	if (!vma->vm_file)
 		return false;
 	/*
@@ -555,17 +576,23 @@
 {
 	struct mm_struct *mm = vma->vm_mm;
 	struct mmu_gather tlb;
+	bool can_pageout_file;
 
 	*prev = vma;
 	if (!can_madv_lru_vma(vma))
 		return -EINVAL;
 
-	if (!can_do_pageout(vma))
-		return 0;
+	/*
+	 * If the VMA belongs to a private file mapping, there can be private
+	 * dirty pages which can be paged out if even this process is neither
+	 * owner nor write capable of the file. Cache the file access check
+	 * here and use it later during page walk.
+	 */
+	can_pageout_file = can_do_file_pageout(vma);
 
 	lru_add_drain();
 	tlb_gather_mmu(&tlb, mm);
-	madvise_pageout_page_range(&tlb, vma, start_addr, end_addr);
+	madvise_pageout_page_range(&tlb, vma, start_addr, end_addr, can_pageout_file);
 	tlb_finish_mmu(&tlb);
 
 	return 0;
@@ -933,6 +960,99 @@
 	return error;
 }
 
+/*
+ * Apply an madvise behavior to a region of a vma.  madvise_update_vma
+ * will handle splitting a vm area into separate areas, each area with its own
+ * behavior.
+ */
+static int madvise_vma_behavior(struct vm_area_struct *vma,
+				struct vm_area_struct **prev,
+				unsigned long start, unsigned long end,
+				unsigned long behavior)
+{
+	int error;
+	struct anon_vma_name *anon_name;
+	unsigned long new_flags = vma->vm_flags;
+
+	switch (behavior) {
+	case MADV_REMOVE:
+		return madvise_remove(vma, prev, start, end);
+	case MADV_WILLNEED:
+		return madvise_willneed(vma, prev, start, end);
+	case MADV_COLD:
+		return madvise_cold(vma, prev, start, end);
+	case MADV_PAGEOUT:
+		return madvise_pageout(vma, prev, start, end);
+	case MADV_FREE:
+	case MADV_DONTNEED:
+		return madvise_dontneed_free(vma, prev, start, end, behavior);
+	case MADV_POPULATE_READ:
+	case MADV_POPULATE_WRITE:
+		return madvise_populate(vma, prev, start, end, behavior);
+	case MADV_NORMAL:
+		new_flags = new_flags & ~VM_RAND_READ & ~VM_SEQ_READ;
+		break;
+	case MADV_SEQUENTIAL:
+		new_flags = (new_flags & ~VM_RAND_READ) | VM_SEQ_READ;
+		break;
+	case MADV_RANDOM:
+		new_flags = (new_flags & ~VM_SEQ_READ) | VM_RAND_READ;
+		break;
+	case MADV_DONTFORK:
+		new_flags |= VM_DONTCOPY;
+		break;
+	case MADV_DOFORK:
+		if (vma->vm_flags & VM_IO)
+			return -EINVAL;
+		new_flags &= ~VM_DONTCOPY;
+		break;
+	case MADV_WIPEONFORK:
+		/* MADV_WIPEONFORK is only supported on anonymous memory. */
+		if (vma->vm_file || vma->vm_flags & VM_SHARED)
+			return -EINVAL;
+		new_flags |= VM_WIPEONFORK;
+		break;
+	case MADV_KEEPONFORK:
+		new_flags &= ~VM_WIPEONFORK;
+		break;
+	case MADV_DONTDUMP:
+		new_flags |= VM_DONTDUMP;
+		break;
+	case MADV_DODUMP:
+		if (!is_vm_hugetlb_page(vma) && new_flags & VM_SPECIAL)
+			return -EINVAL;
+		new_flags &= ~VM_DONTDUMP;
+		break;
+	case MADV_MERGEABLE:
+	case MADV_UNMERGEABLE:
+		error = ksm_madvise(vma, start, end, behavior, &new_flags);
+		if (error)
+			goto out;
+		break;
+	case MADV_HUGEPAGE:
+	case MADV_NOHUGEPAGE:
+		error = hugepage_madvise(vma, &new_flags, behavior);
+		if (error)
+			goto out;
+		break;
+	}
+
+	anon_name = anon_vma_name(vma);
+	anon_vma_name_get(anon_name);
+	error = madvise_update_vma(vma, prev, start, end, new_flags,
+				   anon_name);
+	anon_vma_name_put(anon_name);
+
+out:
+	/*
+	 * madvise() returns EAGAIN if kernel resources, such as
+	 * slab, are temporarily unavailable.
+	 */
+	if (error == -ENOMEM)
+		error = -EAGAIN;
+	return error;
+}
+
 #ifdef CONFIG_MEMORY_FAILURE
 /*
  * Error injection support for memory error handling.
@@ -983,30 +1103,6 @@
 }
 #endif
 
-static long
-madvise_vma(struct vm_area_struct *vma, struct vm_area_struct **prev,
-		unsigned long start, unsigned long end, int behavior)
-{
-	switch (behavior) {
-	case MADV_REMOVE:
-		return madvise_remove(vma, prev, start, end);
-	case MADV_WILLNEED:
-		return madvise_willneed(vma, prev, start, end);
-	case MADV_COLD:
-		return madvise_cold(vma, prev, start, end);
-	case MADV_PAGEOUT:
-		return madvise_pageout(vma, prev, start, end);
-	case MADV_FREE:
-	case MADV_DONTNEED:
-		return madvise_dontneed_free(vma, prev, start, end, behavior);
-	case MADV_POPULATE_READ:
-	case MADV_POPULATE_WRITE:
-		return madvise_populate(vma, prev, start, end, behavior);
-	default:
-		return madvise_behavior(vma, prev, start, end, behavior);
-	}
-}
-
 static bool
 madvise_behavior_valid(int behavior)
 {
@@ -1061,6 +1157,122 @@
 }
 
 /*
+ * Walk the vmas in range [start,end), and call the visit function on each one.
+ * The visit function will get start and end parameters that cover the overlap
+ * between the current vma and the original range.  Any unmapped regions in the
+ * original range will result in this function returning -ENOMEM while still
+ * calling the visit function on all of the existing vmas in the range.
+ * Must be called with the mmap_lock held for reading or writing.
+ */
+static
+int madvise_walk_vmas(struct mm_struct *mm, unsigned long start,
+		      unsigned long end, unsigned long arg,
+		      int (*visit)(struct vm_area_struct *vma,
+				   struct vm_area_struct **prev, unsigned long start,
+				   unsigned long end, unsigned long arg))
+{
+	struct vm_area_struct *vma;
+	struct vm_area_struct *prev;
+	unsigned long tmp;
+	int unmapped_error = 0;
+
+	/*
+	 * If the interval [start,end) covers some unmapped address
+	 * ranges, just ignore them, but return -ENOMEM at the end.
+	 * - different from the way of handling in mlock etc.
+	 */
+	vma = find_vma_prev(mm, start, &prev);
+	if (vma && start > vma->vm_start)
+		prev = vma;
+
+	for (;;) {
+		int error;
+
+		/* Still start < end. */
+		if (!vma)
+			return -ENOMEM;
+
+		/* Here start < (end|vma->vm_end). */
+		if (start < vma->vm_start) {
+			unmapped_error = -ENOMEM;
+			start = vma->vm_start;
+			if (start >= end)
+				break;
+		}
+
+		/* Here vma->vm_start <= start < (end|vma->vm_end) */
+		tmp = vma->vm_end;
+		if (end < tmp)
+			tmp = end;
+
+		/* Here vma->vm_start <= start < tmp <= (end|vma->vm_end). */
+		error = visit(vma, &prev, start, tmp, arg);
+		if (error)
+			return error;
+		start = tmp;
+		if (prev && start < prev->vm_end)
+			start = prev->vm_end;
+		if (start >= end)
+			break;
+		if (prev)
+			vma = prev->vm_next;
+		else	/* madvise_remove dropped mmap_lock */
+			vma = find_vma(mm, start);
+	}
+
+	return unmapped_error;
+}
+
+#ifdef CONFIG_ANON_VMA_NAME
+static int madvise_vma_anon_name(struct vm_area_struct *vma,
+				 struct vm_area_struct **prev,
+				 unsigned long start, unsigned long end,
+				 unsigned long anon_name)
+{
+	int error;
+
+	/* Only anonymous mappings can be named */
+	if (vma->vm_file)
+		return -EBADF;
+
+	error = madvise_update_vma(vma, prev, start, end, vma->vm_flags,
+				   (struct anon_vma_name *)anon_name);
+
+	/*
+	 * madvise() returns EAGAIN if kernel resources, such as
+	 * slab, are temporarily unavailable.
+	 */
+	if (error == -ENOMEM)
+		error = -EAGAIN;
+	return error;
+}
+
+int madvise_set_anon_name(struct mm_struct *mm, unsigned long start,
+			  unsigned long len_in, struct anon_vma_name *anon_name)
+{
+	unsigned long end;
+	unsigned long len;
+
+	if (start & ~PAGE_MASK)
+		return -EINVAL;
+	len = (len_in + ~PAGE_MASK) & PAGE_MASK;
+
+	/* Check to see whether len was rounded up from small -ve to zero */
+	if (len_in && !len)
+		return -EINVAL;
+
+	end = start + len;
+	if (end < start)
+		return -EINVAL;
+
+	if (end == start)
+		return 0;
+
+	return madvise_walk_vmas(mm, start, end, (unsigned long)anon_name,
+				 madvise_vma_anon_name);
+}
+#endif /* CONFIG_ANON_VMA_NAME */
+/*
  * The madvise(2) system call.
  *
  * Applications can use madvise() to advise the kernel how it should
@@ -1132,10 +1344,8 @@
  */
 int do_madvise(struct mm_struct *mm, unsigned long start, size_t len_in, int behavior)
 {
-	unsigned long end, tmp;
-	struct vm_area_struct *vma, *prev;
-	int unmapped_error = 0;
-	int error = -EINVAL;
+	unsigned long end;
+	int error;
 	int write;
 	size_t len;
 	struct blk_plug plug;
@@ -1143,23 +1353,22 @@
 	start = untagged_addr(start);
 
 	if (!madvise_behavior_valid(behavior))
-		return error;
+		return -EINVAL;
 
 	if (!PAGE_ALIGNED(start))
-		return error;
+		return -EINVAL;
 	len = PAGE_ALIGN(len_in);
 
 	/* Check to see whether len was rounded up from small -ve to zero */
 	if (len_in && !len)
-		return error;
+		return -EINVAL;
 
 	end = start + len;
 	if (end < start)
-		return error;
+		return -EINVAL;
 
-	error = 0;
 	if (end == start)
-		return error;
+		return 0;
 
 #ifdef CONFIG_MEMORY_FAILURE
 	if (behavior == MADV_HWPOISON || behavior == MADV_SOFT_OFFLINE)
@@ -1174,51 +1383,9 @@
 		mmap_read_lock(mm);
 	}
 
-	/*
-	 * If the interval [start,end) covers some unmapped address
-	 * ranges, just ignore them, but return -ENOMEM at the end.
-	 * - different from the way of handling in mlock etc.
-	 */
-	vma = find_vma_prev(mm, start, &prev);
-	if (vma && start > vma->vm_start)
-		prev = vma;
-
 	blk_start_plug(&plug);
-	for (;;) {
-		/* Still start < end. */
-		error = -ENOMEM;
-		if (!vma)
-			goto out;
-
-		/* Here start < (end|vma->vm_end). */
-		if (start < vma->vm_start) {
-			unmapped_error = -ENOMEM;
-			start = vma->vm_start;
-			if (start >= end)
-				goto out;
-		}
-
-		/* Here vma->vm_start <= start < (end|vma->vm_end) */
-		tmp = vma->vm_end;
-		if (end < tmp)
-			tmp = end;
-
-		/* Here vma->vm_start <= start < tmp <= (end|vma->vm_end). */
-		error = madvise_vma(vma, &prev, start, tmp, behavior);
-		if (error)
-			goto out;
-		start = tmp;
-		if (prev && start < prev->vm_end)
-			start = prev->vm_end;
-		error = unmapped_error;
-		if (start >= end)
-			goto out;
-		if (prev)
-			vma = prev->vm_next;
-		else	/* madvise_remove dropped mmap_lock */
-			vma = find_vma(mm, start);
-	}
-out:
+	error = madvise_walk_vmas(mm, start, end, behavior,
+			madvise_vma_behavior);
 	blk_finish_plug(&plug);
 	if (write)
 		mmap_write_unlock(mm);
diff --git a/mm/memblock.c b/mm/memblock.c
index 2b73977..871cfbe 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -287,7 +287,7 @@
 {
 	/* pump up @end */
 	if (end == MEMBLOCK_ALLOC_ACCESSIBLE ||
-	    end == MEMBLOCK_ALLOC_KASAN)
+	    end == MEMBLOCK_ALLOC_NOLEAKTRACE)
 		end = memblock.current_limit;
 
 	/* avoid allocating the first page */
@@ -833,6 +833,9 @@
 	kmemleak_free_part_phys(base, size);
 	return memblock_remove_range(&memblock.reserved, base, size);
 }
+#ifdef CONFIG_ARCH_KEEP_MEMBLOCK
+EXPORT_SYMBOL_GPL(memblock_free);
+#endif
 
 int __init_memblock memblock_reserve(phys_addr_t base, phys_addr_t size)
 {
@@ -1388,8 +1391,11 @@
 	return 0;
 
 done:
-	/* Skip kmemleak for kasan_init() due to high volume. */
-	if (end != MEMBLOCK_ALLOC_KASAN)
+	/*
+	 * Skip kmemleak for those places like kasan_init() and
+	 * early_pgtable_alloc() due to high volume.
+	 */
+	if (end != MEMBLOCK_ALLOC_NOLEAKTRACE)
 		/*
 		 * The min_count is set to 0 so that memblock allocated
 		 * blocks are never reported as leaks. This is because many
@@ -1646,6 +1652,7 @@
 
 	return (memblock.memory.regions[idx].base + memblock.memory.regions[idx].size);
 }
+EXPORT_SYMBOL_GPL(memblock_end_of_DRAM);
 
 static phys_addr_t __init_memblock __find_max_addr(phys_addr_t limit)
 {
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index b68b2fe..c78b505 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -70,11 +70,15 @@
 #include <linux/uaccess.h>
 
 #include <trace/events/vmscan.h>
+#include <trace/hooks/mm.h>
+
+#include <trace/hooks/cgroup.h>
 
 struct cgroup_subsys memory_cgrp_subsys __read_mostly;
 EXPORT_SYMBOL(memory_cgrp_subsys);
 
 struct mem_cgroup *root_mem_cgroup __read_mostly;
+EXPORT_SYMBOL_GPL(root_mem_cgroup);
 
 /* Active memory cgroup to use from an interrupt context */
 DEFINE_PER_CPU(struct mem_cgroup *, int_active_memcg);
@@ -766,6 +770,7 @@
 	if (!mem_cgroup_disabled())
 		__mod_memcg_lruvec_state(lruvec, idx, val);
 }
+EXPORT_SYMBOL_GPL(__mod_lruvec_state);
 
 void __mod_lruvec_page_state(struct page *page, enum node_stat_item idx,
 			     int val)
@@ -1276,6 +1281,35 @@
 	return lruvec;
 }
 
+struct lruvec *page_to_lruvec(struct page *page, pg_data_t *pgdat)
+{
+	struct lruvec *lruvec;
+
+	lruvec = mem_cgroup_page_lruvec(page);
+
+	return lruvec;
+}
+EXPORT_SYMBOL_GPL(page_to_lruvec);
+
+void do_traversal_all_lruvec(void)
+{
+	pg_data_t *pgdat;
+
+	for_each_online_pgdat(pgdat) {
+		struct mem_cgroup *memcg = NULL;
+
+		memcg = mem_cgroup_iter(NULL, NULL, NULL);
+		do {
+			struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat);
+
+			trace_android_vh_do_traversal_lruvec(lruvec);
+
+			memcg = mem_cgroup_iter(NULL, memcg, NULL);
+		} while (memcg);
+	}
+}
+EXPORT_SYMBOL_GPL(do_traversal_all_lruvec);
+
 /**
  * mem_cgroup_update_lru_size - account for adding or removing an lru page
  * @lruvec: mem_cgroup per zone lru vector
@@ -1314,6 +1348,7 @@
 	if (nr_pages > 0)
 		*lru_size += nr_pages;
 }
+EXPORT_SYMBOL_GPL(mem_cgroup_update_lru_size);
 
 /**
  * mem_cgroup_margin - calculate chargeable space of a memory cgroup
@@ -2798,6 +2833,7 @@
 	 * - LRU isolation
 	 * - lock_page_memcg()
 	 * - exclusive reference
+	 * - mem_cgroup_trylock_pages()
 	 */
 	page->memcg_data = (unsigned long)memcg;
 }
@@ -5083,6 +5119,7 @@
 static void mem_cgroup_id_remove(struct mem_cgroup *memcg)
 {
 	if (memcg->id.id > 0) {
+		trace_android_vh_mem_cgroup_id_remove(memcg);
 		idr_remove(&mem_cgroup_idr, memcg->id.id);
 		memcg->id.id = 0;
 	}
@@ -5120,6 +5157,7 @@
 	WARN_ON_ONCE(!rcu_read_lock_held());
 	return idr_find(&mem_cgroup_idr, id);
 }
+EXPORT_SYMBOL_GPL(mem_cgroup_from_id);
 
 static int alloc_mem_cgroup_per_node_info(struct mem_cgroup *memcg, int node)
 {
@@ -5170,6 +5208,7 @@
 {
 	int node;
 
+	trace_android_vh_mem_cgroup_free(memcg);
 	for_each_node(node)
 		free_mem_cgroup_per_node_info(memcg, node);
 	free_percpu(memcg->vmstats_percpu);
@@ -5178,6 +5217,7 @@
 
 static void mem_cgroup_free(struct mem_cgroup *memcg)
 {
+	lru_gen_exit_memcg(memcg);
 	memcg_wb_domain_exit(memcg);
 	__mem_cgroup_free(memcg);
 }
@@ -5225,6 +5265,7 @@
 	INIT_LIST_HEAD(&memcg->event_list);
 	spin_lock_init(&memcg->event_list_lock);
 	memcg->socket_pressure = jiffies;
+	trace_android_rvh_memcgv2_init(memcg);
 #ifdef CONFIG_MEMCG_KMEM
 	memcg->kmemcg_id = -1;
 	INIT_LIST_HEAD(&memcg->objcg_list);
@@ -5241,6 +5282,8 @@
 	memcg->deferred_split_queue.split_queue_len = 0;
 #endif
 	idr_replace(&mem_cgroup_idr, memcg, memcg->id.id);
+	lru_gen_init_memcg(memcg);
+	trace_android_vh_mem_cgroup_alloc(memcg);
 	return memcg;
 fail:
 	mem_cgroup_id_remove(memcg);
@@ -5318,6 +5361,7 @@
 	if (unlikely(mem_cgroup_is_root(memcg)))
 		queue_delayed_work(system_unbound_wq, &stats_flush_dwork,
 				   2UL*HZ);
+	trace_android_vh_mem_cgroup_css_online(css, memcg);
 	return 0;
 }
 
@@ -5326,6 +5370,7 @@
 	struct mem_cgroup *memcg = mem_cgroup_from_css(css);
 	struct mem_cgroup_event *event, *tmp;
 
+	trace_android_vh_mem_cgroup_css_offline(css, memcg);
 	/*
 	 * Unregister events and notify userspace.
 	 * Notify userspace about cgroup removing only after rmdir of cgroup
@@ -6209,6 +6254,30 @@
 }
 #endif
 
+#ifdef CONFIG_LRU_GEN
+static void mem_cgroup_attach(struct cgroup_taskset *tset)
+{
+	struct task_struct *task;
+	struct cgroup_subsys_state *css;
+
+	/* find the first leader if there is any */
+	cgroup_taskset_for_each_leader(task, css, tset)
+		break;
+
+	if (!task)
+		return;
+
+	task_lock(task);
+	if (task->mm && READ_ONCE(task->mm->owner) == task)
+		lru_gen_migrate_mm(task->mm);
+	task_unlock(task);
+}
+#else
+static void mem_cgroup_attach(struct cgroup_taskset *tset)
+{
+}
+#endif /* CONFIG_LRU_GEN */
+
 static int seq_puts_memcg_tunable(struct seq_file *m, unsigned long value)
 {
 	if (value == PAGE_COUNTER_MAX)
@@ -6552,6 +6621,7 @@
 	.css_reset = mem_cgroup_css_reset,
 	.css_rstat_flush = mem_cgroup_css_rstat_flush,
 	.can_attach = mem_cgroup_can_attach,
+	.attach = mem_cgroup_attach,
 	.cancel_attach = mem_cgroup_cancel_attach,
 	.post_attach = mem_cgroup_move_task,
 	.dfl_cftypes = memory_files,
@@ -6714,6 +6784,8 @@
 	if (!parent)
 		return;
 
+	trace_android_rvh_memcgv2_calc_decayed_watermark(memcg);
+
 	if (parent == root) {
 		memcg->memory.emin = READ_ONCE(memcg->memory.min);
 		memcg->memory.elow = READ_ONCE(memcg->memory.low);
diff --git a/mm/memory-failure.c b/mm/memory-failure.c
index bcd71d8..2eab012 100644
--- a/mm/memory-failure.c
+++ b/mm/memory-failure.c
@@ -491,7 +491,7 @@
 	struct anon_vma *av;
 	pgoff_t pgoff;
 
-	av = page_lock_anon_vma_read(page);
+	av = page_lock_anon_vma_read(page, NULL);
 	if (av == NULL)	/* Not actually mapped anymore */
 		return;
 
diff --git a/mm/memory.c b/mm/memory.c
index 1bb01b1..1558f4d 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -73,6 +73,7 @@
 #include <linux/perf_event.h>
 #include <linux/ptrace.h>
 #include <linux/vmalloc.h>
+#include <trace/hooks/mm.h>
 
 #include <trace/events/kmem.h>
 
@@ -121,18 +122,6 @@
 					2;
 #endif
 
-#ifndef arch_faults_on_old_pte
-static inline bool arch_faults_on_old_pte(void)
-{
-	/*
-	 * Those arches which don't have hw access flag feature need to
-	 * implement their own helper. By default, "true" means pagefault
-	 * will be hit on old pte.
-	 */
-	return true;
-}
-#endif
-
 #ifndef arch_wants_old_prefaulted_pte
 static inline bool arch_wants_old_prefaulted_pte(void)
 {
@@ -171,6 +160,7 @@
 {
 	trace_rss_stat(mm, member, count);
 }
+EXPORT_SYMBOL_GPL(mm_trace_rss_stat);
 
 #if defined(SPLIT_RSS_COUNTING)
 
@@ -219,6 +209,57 @@
 
 #endif /* SPLIT_RSS_COUNTING */
 
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+
+struct vm_area_struct *get_vma(struct mm_struct *mm, unsigned long addr)
+{
+	struct vm_area_struct *vma;
+
+	rcu_read_lock();
+	vma = find_vma_from_tree(mm, addr);
+
+	/*
+	 * atomic_inc_unless_negative() also protects from races with
+	 * fast mremap.
+	 *
+	 * If there is a concurrent fast mremap, bail out since the entire
+	 * PMD/PUD subtree may have been remapped.
+	 *
+	 * This is usually safe for conventional mremap since it takes the
+	 * PTE locks as does SPF. However fast mremap only takes the lock
+	 * at the PMD/PUD level which is ok as it is done with the mmap
+	 * write lock held. But since SPF, as the term implies forgoes,
+	 * taking the mmap read lock and also cannot take PTL lock at the
+	 * larger PMD/PUD granualrity, since it would introduce huge
+	 * contention in the page fault path; fall back to regular fault
+	 * handling.
+	 */
+	if (vma) {
+		if (vma->vm_start > addr ||
+		    !atomic_inc_unless_negative(&vma->file_ref_count))
+			vma = NULL;
+	}
+	rcu_read_unlock();
+
+	return vma;
+}
+
+void put_vma(struct vm_area_struct *vma)
+{
+	int new_ref_count;
+
+	new_ref_count = atomic_dec_return(&vma->file_ref_count);
+	if (new_ref_count < 0)
+		vm_area_free_no_check(vma);
+}
+
+#if ALLOC_SPLIT_PTLOCKS
+static void wait_for_smp_sync(void *arg)
+{
+}
+#endif
+#endif	/* CONFIG_SPECULATIVE_PAGE_FAULT */
+
 /*
  * Note: this doesn't free the actual pages themselves. That
  * has been handled earlier when unmapping all the memory regions.
@@ -227,6 +268,24 @@
 			   unsigned long addr)
 {
 	pgtable_t token = pmd_pgtable(*pmd);
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	/*
+	 * Ensure page table destruction is blocked if __pte_map_lock managed
+	 * to take this lock. Without this barrier tlb_remove_table_rcu can
+	 * destroy ptl after __pte_map_lock locked it and during unlock would
+	 * cause a use-after-free.
+	 */
+	spinlock_t *ptl = pmd_lock(tlb->mm, pmd);
+	spin_unlock(ptl);
+#if ALLOC_SPLIT_PTLOCKS
+	/*
+	 * The __pte_map_lock can still be working on the ->ptl in the read side
+	 * critical section while ->ptl is freed which results into the use-after
+	 * -free. Sync it using the smp_call_().
+	 */
+	smp_call_function(wait_for_smp_sync, NULL, 1);
+#endif
+#endif
 	pmd_clear(pmd);
 	pte_free_tlb(tlb, token, addr);
 	mm_dec_nr_ptes(tlb->mm);
@@ -2729,6 +2788,99 @@
 }
 EXPORT_SYMBOL_GPL(apply_to_existing_page_range);
 
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+
+/*
+ * speculative_page_walk_begin() ... speculative_page_walk_end() protects
+ * against races with page table reclamation.
+ *
+ * This is similar to what fast GUP does, but fast GUP also needs to
+ * protect against races with THP page splitting, so it always needs
+ * to disable interrupts.
+ * Speculative page faults need to protect against page table reclamation,
+ * even with MMU_GATHER_RCU_TABLE_FREE case page table removal slow-path is
+ * not RCU-safe (see comment inside tlb_remove_table_sync_one), therefore
+ * we still have to disable IRQs.
+ */
+#define speculative_page_walk_begin() local_irq_disable()
+#define speculative_page_walk_end()   local_irq_enable()
+
+bool __pte_map_lock(struct vm_fault *vmf)
+{
+	pmd_t pmdval;
+	pte_t *pte = vmf->pte;
+	spinlock_t *ptl;
+
+	if (!(vmf->flags & FAULT_FLAG_SPECULATIVE)) {
+		vmf->ptl = pte_lockptr(vmf->vma->vm_mm, vmf->pmd);
+		if (!pte)
+			vmf->pte = pte_offset_map(vmf->pmd, vmf->address);
+		spin_lock(vmf->ptl);
+		return true;
+	}
+
+	speculative_page_walk_begin();
+	if (!mmap_seq_read_check(vmf->vma->vm_mm, vmf->seq,
+				 SPF_ABORT_PTE_MAP_LOCK_SEQ1))
+		goto fail;
+	/*
+	 * The mmap sequence count check guarantees that the page
+	 * tables are still valid at that point, and
+	 * speculative_page_walk_begin() ensures that they stay around.
+	 */
+	/*
+	 * We check if the pmd value is still the same to ensure that there
+	 * is not a huge collapse operation in progress in our back.
+	 * It also ensures that pmd was not cleared by pmd_clear in
+	 * free_pte_range and ptl is still valid.
+	 */
+	pmdval = READ_ONCE(*vmf->pmd);
+	if (!pmd_same(pmdval, vmf->orig_pmd)) {
+		count_vm_spf_event(SPF_ABORT_PTE_MAP_LOCK_PMD);
+		goto fail;
+	}
+	ptl = pte_lockptr(vmf->vma->vm_mm, &pmdval);
+	if (!pte)
+		pte = pte_offset_map(&pmdval, vmf->address);
+	/*
+	 * Try locking the page table.
+	 *
+	 * Note that we might race against zap_pte_range() which
+	 * invalidates TLBs while holding the page table lock.
+	 * We are still under the speculative_page_walk_begin() section,
+	 * and zap_pte_range() could thus deadlock with us if we tried
+	 * using spin_lock() here.
+	 *
+	 * We also don't want to retry until spin_trylock() succeeds,
+	 * because of the starvation potential against a stream of lockers.
+	 */
+	if (unlikely(!spin_trylock(ptl))) {
+		count_vm_spf_event(SPF_ABORT_PTE_MAP_LOCK_PTL);
+		goto fail;
+	}
+	/*
+	 * The check below will fail if __pte_map_lock passed its ptl barrier
+	 * before we took the ptl lock.
+	 */
+	if (!mmap_seq_read_check(vmf->vma->vm_mm, vmf->seq,
+				 SPF_ABORT_PTE_MAP_LOCK_SEQ2))
+		goto unlock_fail;
+	speculative_page_walk_end();
+	vmf->pte = pte;
+	vmf->ptl = ptl;
+	return true;
+
+unlock_fail:
+	spin_unlock(ptl);
+fail:
+	if (pte)
+		pte_unmap(pte);
+	speculative_page_walk_end();
+	return false;
+}
+
+#endif	/* CONFIG_SPECULATIVE_PAGE_FAULT */
+
 /*
  * handle_pte_fault chooses page fault handler according to an entry which was
  * read non-atomically.  Before making any commitment, on those architectures
@@ -2791,7 +2943,7 @@
 	 * On architectures with software "accessed" bits, we would
 	 * take a double page fault, so mark it accessed here.
 	 */
-	if (arch_faults_on_old_pte() && !pte_young(vmf->orig_pte)) {
+	if (!arch_has_hw_pte_young() && !pte_young(vmf->orig_pte)) {
 		pte_t entry;
 
 		vmf->pte = pte_offset_map_lock(mm, vmf->pmd, addr, &vmf->ptl);
@@ -3012,21 +3164,28 @@
 	pte_t entry;
 	int page_copied = 0;
 	struct mmu_notifier_range range;
-	int ret;
+	vm_fault_t ret = VM_FAULT_OOM;
 
-	if (unlikely(anon_vma_prepare(vma)))
-		goto oom;
+	if (unlikely(!vma->anon_vma)) {
+		if (vmf->flags & FAULT_FLAG_SPECULATIVE) {
+			count_vm_spf_event(SPF_ABORT_ANON_VMA);
+			ret = VM_FAULT_RETRY;
+			goto out;
+		}
+		if (__anon_vma_prepare(vma))
+			goto out;
+	}
 
 	if (is_zero_pfn(pte_pfn(vmf->orig_pte))) {
 		new_page = alloc_zeroed_user_highpage_movable(vma,
 							      vmf->address);
 		if (!new_page)
-			goto oom;
+			goto out;
 	} else {
 		new_page = alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma,
 				vmf->address);
 		if (!new_page)
-			goto oom;
+			goto out;
 
 		ret = cow_user_page(new_page, old_page, vmf);
 		if (ret) {
@@ -3046,11 +3205,16 @@
 	}
 
 	if (mem_cgroup_charge(new_page, mm, GFP_KERNEL))
-		goto oom_free_new;
+		goto out_free_new;
 	cgroup_throttle_swaprate(new_page, GFP_KERNEL);
 
 	__SetPageUptodate(new_page);
 
+	if ((vmf->flags & FAULT_FLAG_SPECULATIVE) &&
+	    !mmu_notifier_trylock(mm)) {
+		ret = VM_FAULT_RETRY;
+		goto out_free_new;
+	}
 	mmu_notifier_range_init(&range, MMU_NOTIFY_CLEAR, 0, vma, mm,
 				vmf->address & PAGE_MASK,
 				(vmf->address & PAGE_MASK) + PAGE_SIZE);
@@ -3059,7 +3223,11 @@
 	/*
 	 * Re-check the pte - we dropped the lock
 	 */
-	vmf->pte = pte_offset_map_lock(mm, vmf->pmd, vmf->address, &vmf->ptl);
+	if (!pte_map_lock(vmf)) {
+		ret = VM_FAULT_RETRY;
+		/* put_page() will uncharge the page */
+		goto out_notify;
+	}
 	if (likely(pte_same(*vmf->pte, vmf->orig_pte))) {
 		if (old_page) {
 			if (!PageAnon(old_page)) {
@@ -3134,6 +3302,8 @@
 	 * the above ptep_clear_flush_notify() did already call it.
 	 */
 	mmu_notifier_invalidate_range_only_end(&range);
+	if (vmf->flags & FAULT_FLAG_SPECULATIVE)
+		mmu_notifier_unlock(mm);
 	if (old_page) {
 		/*
 		 * Don't let another task, with possibly unlocked vma,
@@ -3150,12 +3320,16 @@
 		put_page(old_page);
 	}
 	return page_copied ? VM_FAULT_WRITE : 0;
-oom_free_new:
+out_notify:
+	mmu_notifier_invalidate_range_only_end(&range);
+	if (vmf->flags & FAULT_FLAG_SPECULATIVE)
+		mmu_notifier_unlock(mm);
+out_free_new:
 	put_page(new_page);
-oom:
+out:
 	if (old_page)
 		put_page(old_page);
-	return VM_FAULT_OOM;
+	return ret;
 }
 
 /**
@@ -3200,6 +3374,7 @@
 {
 	struct vm_area_struct *vma = vmf->vma;
 
+	VM_BUG_ON(vmf->flags & FAULT_FLAG_SPECULATIVE);
 	if (vma->vm_ops && vma->vm_ops->pfn_mkwrite) {
 		vm_fault_t ret;
 
@@ -3220,6 +3395,8 @@
 	struct vm_area_struct *vma = vmf->vma;
 	vm_fault_t ret = VM_FAULT_WRITE;
 
+	VM_BUG_ON(vmf->flags & FAULT_FLAG_SPECULATIVE);
+
 	get_page(vmf->page);
 
 	if (vma->vm_ops && vma->vm_ops->page_mkwrite) {
@@ -3271,8 +3448,15 @@
 {
 	struct vm_area_struct *vma = vmf->vma;
 
+	if (vmf->flags & FAULT_FLAG_SPECULATIVE)
+		count_vm_spf_event(SPF_ATTEMPT_WP);
+
 	if (userfaultfd_pte_wp(vma, *vmf->pte)) {
 		pte_unmap_unlock(vmf->pte, vmf->ptl);
+		if (vmf->flags & FAULT_FLAG_SPECULATIVE) {
+			count_vm_spf_event(SPF_ABORT_USERFAULTFD);
+			return VM_FAULT_RETRY;
+		}
 		return handle_userfault(vmf, VM_UFFD_WP);
 	}
 
@@ -3298,6 +3482,7 @@
 			return wp_pfn_shared(vmf);
 
 		pte_unmap_unlock(vmf->pte, vmf->ptl);
+		vmf->pte = NULL;
 		return wp_page_copy(vmf);
 	}
 
@@ -3336,6 +3521,7 @@
 	get_page(vmf->page);
 
 	pte_unmap_unlock(vmf->pte, vmf->ptl);
+	vmf->pte = NULL;
 	return wp_page_copy(vmf);
 }
 
@@ -3528,6 +3714,12 @@
 	vm_fault_t ret = 0;
 	void *shadow = NULL;
 
+	if (vmf->flags & FAULT_FLAG_SPECULATIVE) {
+		pte_unmap(vmf->pte);
+		count_vm_spf_event(SPF_ABORT_SWAP);
+		return VM_FAULT_RETRY;
+	}
+
 	if (!pte_unmap_same(vma->vm_mm, vmf->pmd, vmf->pte, vmf->orig_pte))
 		goto out;
 
@@ -3564,8 +3756,10 @@
 		if (data_race(si->flags & SWP_SYNCHRONOUS_IO) &&
 		    __swap_count(entry) == 1) {
 			/* skip swapcache */
-			page = alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma,
-							vmf->address);
+			gfp_t flags = GFP_HIGHUSER_MOVABLE | __GFP_CMA;
+
+			trace_android_rvh_set_skip_swapcache_flags(&flags);
+			page = alloc_page_vma(flags, vma, vmf->address);
 			if (page) {
 				__SetPageLocked(page);
 				__SetPageSwapBacked(page);
@@ -3589,7 +3783,7 @@
 				set_page_private(page, 0);
 			}
 		} else {
-			page = swapin_readahead(entry, GFP_HIGHUSER_MOVABLE,
+			page = swapin_readahead(entry, GFP_HIGHUSER_MOVABLE | __GFP_CMA,
 						vmf);
 			swapcache = page;
 		}
@@ -3755,14 +3949,21 @@
 static vm_fault_t do_anonymous_page(struct vm_fault *vmf)
 {
 	struct vm_area_struct *vma = vmf->vma;
-	struct page *page;
+	struct page *page = NULL;
 	vm_fault_t ret = 0;
 	pte_t entry;
 
+	if (vmf->flags & FAULT_FLAG_SPECULATIVE)
+		count_vm_spf_event(SPF_ATTEMPT_ANON);
+
 	/* File mapping without ->vm_ops ? */
 	if (vma->vm_flags & VM_SHARED)
 		return VM_FAULT_SIGBUS;
 
+	/* Do not check unstable pmd, if it's changed will retry later */
+	if (vmf->flags & FAULT_FLAG_SPECULATIVE)
+		goto skip_pmd_checks;
+
 	/*
 	 * Use pte_alloc() instead of pte_alloc_map().  We can't run
 	 * pte_offset_map() on pmds where a huge pmd might be created
@@ -3776,87 +3977,90 @@
 	if (pte_alloc(vma->vm_mm, vmf->pmd))
 		return VM_FAULT_OOM;
 
-	/* See comment in handle_pte_fault() */
+	/* See comment in __handle_mm_fault() */
 	if (unlikely(pmd_trans_unstable(vmf->pmd)))
 		return 0;
 
+skip_pmd_checks:
 	/* Use the zero-page for reads */
 	if (!(vmf->flags & FAULT_FLAG_WRITE) &&
 			!mm_forbids_zeropage(vma->vm_mm)) {
 		entry = pte_mkspecial(pfn_pte(my_zero_pfn(vmf->address),
 						vma->vm_page_prot));
-		vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd,
-				vmf->address, &vmf->ptl);
-		if (!pte_none(*vmf->pte)) {
-			update_mmu_tlb(vma, vmf->address, vmf->pte);
-			goto unlock;
+	} else {
+		/* Allocate our own private page. */
+		if (unlikely(!vma->anon_vma)) {
+			if (vmf->flags & FAULT_FLAG_SPECULATIVE) {
+				count_vm_spf_event(SPF_ABORT_ANON_VMA);
+				return VM_FAULT_RETRY;
+			}
+			if (__anon_vma_prepare(vma))
+				goto oom;
 		}
-		ret = check_stable_address_space(vma->vm_mm);
-		if (ret)
-			goto unlock;
-		/* Deliver the page fault to userland, check inside PT lock */
-		if (userfaultfd_missing(vma)) {
-			pte_unmap_unlock(vmf->pte, vmf->ptl);
-			return handle_userfault(vmf, VM_UFFD_MISSING);
-		}
-		goto setpte;
+		page = alloc_zeroed_user_highpage_movable(vma, vmf->address);
+		if (!page)
+			goto oom;
+
+		if (mem_cgroup_charge(page, vma->vm_mm, GFP_KERNEL))
+			goto oom_free_page;
+		cgroup_throttle_swaprate(page, GFP_KERNEL);
+
+		/*
+		 * The memory barrier inside __SetPageUptodate makes sure that
+		 * preceding stores to the page contents become visible before
+		 * the set_pte_at() write.
+		 */
+		__SetPageUptodate(page);
+
+		entry = mk_pte(page, vma->vm_page_prot);
+		entry = pte_sw_mkyoung(entry);
+		if (vma->vm_flags & VM_WRITE)
+			entry = pte_mkwrite(pte_mkdirty(entry));
 	}
 
-	/* Allocate our own private page. */
-	if (unlikely(anon_vma_prepare(vma)))
-		goto oom;
-	page = alloc_zeroed_user_highpage_movable(vma, vmf->address);
-	if (!page)
-		goto oom;
-
-	if (mem_cgroup_charge(page, vma->vm_mm, GFP_KERNEL))
-		goto oom_free_page;
-	cgroup_throttle_swaprate(page, GFP_KERNEL);
-
-	/*
-	 * The memory barrier inside __SetPageUptodate makes sure that
-	 * preceding stores to the page contents become visible before
-	 * the set_pte_at() write.
-	 */
-	__SetPageUptodate(page);
-
-	entry = mk_pte(page, vma->vm_page_prot);
-	entry = pte_sw_mkyoung(entry);
-	if (vma->vm_flags & VM_WRITE)
-		entry = pte_mkwrite(pte_mkdirty(entry));
-
-	vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd, vmf->address,
-			&vmf->ptl);
-	if (!pte_none(*vmf->pte)) {
-		update_mmu_cache(vma, vmf->address, vmf->pte);
+	if (!pte_map_lock(vmf)) {
+		ret = VM_FAULT_RETRY;
 		goto release;
 	}
+	if (!pte_none(*vmf->pte)) {
+		update_mmu_tlb(vma, vmf->address, vmf->pte);
+		goto unlock;
+	}
 
 	ret = check_stable_address_space(vma->vm_mm);
 	if (ret)
-		goto release;
+		goto unlock;
 
 	/* Deliver the page fault to userland, check inside PT lock */
 	if (userfaultfd_missing(vma)) {
 		pte_unmap_unlock(vmf->pte, vmf->ptl);
-		put_page(page);
+		if (page)
+			put_page(page);
+		if (vmf->flags & FAULT_FLAG_SPECULATIVE) {
+			count_vm_spf_event(SPF_ABORT_USERFAULTFD);
+			return VM_FAULT_RETRY;
+		}
 		return handle_userfault(vmf, VM_UFFD_MISSING);
 	}
 
-	inc_mm_counter_fast(vma->vm_mm, MM_ANONPAGES);
-	page_add_new_anon_rmap(page, vma, vmf->address, false);
-	lru_cache_add_inactive_or_unevictable(page, vma);
-setpte:
+	if (page) {
+		inc_mm_counter_fast(vma->vm_mm, MM_ANONPAGES);
+		page_add_new_anon_rmap(page, vma, vmf->address, false);
+		lru_cache_add_inactive_or_unevictable(page, vma);
+	}
+
 	set_pte_at(vma->vm_mm, vmf->address, vmf->pte, entry);
 
 	/* No need to invalidate - it was non-present before */
 	update_mmu_cache(vma, vmf->address, vmf->pte);
+	pte_unmap_unlock(vmf->pte, vmf->ptl);
+	return 0;
 unlock:
 	pte_unmap_unlock(vmf->pte, vmf->ptl);
-	return ret;
 release:
-	put_page(page);
-	goto unlock;
+	if (page)
+		put_page(page);
+	return ret;
 oom_free_page:
 	put_page(page);
 oom:
@@ -3873,29 +4077,51 @@
 	struct vm_area_struct *vma = vmf->vma;
 	vm_fault_t ret;
 
-	/*
-	 * Preallocate pte before we take page_lock because this might lead to
-	 * deadlocks for memcg reclaim which waits for pages under writeback:
-	 *				lock_page(A)
-	 *				SetPageWriteback(A)
-	 *				unlock_page(A)
-	 * lock_page(B)
-	 *				lock_page(B)
-	 * pte_alloc_one
-	 *   shrink_page_list
-	 *     wait_on_page_writeback(A)
-	 *				SetPageWriteback(B)
-	 *				unlock_page(B)
-	 *				# flush A, B to clear the writeback
-	 */
-	if (pmd_none(*vmf->pmd) && !vmf->prealloc_pte) {
-		vmf->prealloc_pte = pte_alloc_one(vma->vm_mm);
-		if (!vmf->prealloc_pte)
-			return VM_FAULT_OOM;
-		smp_wmb(); /* See comment in __pte_alloc() */
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	if (vmf->flags & FAULT_FLAG_SPECULATIVE) {
+		rcu_read_lock();
+		if (!mmap_seq_read_check(vmf->vma->vm_mm, vmf->seq,
+					 SPF_ABORT_FAULT)) {
+			ret = VM_FAULT_RETRY;
+		} else {
+			/*
+			 * The mmap sequence count check guarantees that the
+			 * vma we fetched at the start of the fault was still
+			 * current at that point in time. The rcu read lock
+			 * ensures vmf->vma->vm_file stays valid.
+			 */
+			ret = vma->vm_ops->fault(vmf);
+		}
+		rcu_read_unlock();
+	} else
+#endif
+	{
+		/*
+		 * Preallocate pte before we take page_lock because
+		 * this might lead to deadlocks for memcg reclaim
+		 * which waits for pages under writeback:
+		 *				lock_page(A)
+		 *				SetPageWriteback(A)
+		 *				unlock_page(A)
+		 * lock_page(B)
+		 *				lock_page(B)
+		 * pte_alloc_one
+		 *   shrink_page_list
+		 *     wait_on_page_writeback(A)
+		 *				SetPageWriteback(B)
+		 *				unlock_page(B)
+		 *				# flush A, B to clear writeback
+		 */
+		if (pmd_none(*vmf->pmd) && !vmf->prealloc_pte) {
+			vmf->prealloc_pte = pte_alloc_one(vma->vm_mm);
+			if (!vmf->prealloc_pte)
+				return VM_FAULT_OOM;
+			smp_wmb(); /* See comment in __pte_alloc() */
+		}
+
+		ret = vma->vm_ops->fault(vmf);
 	}
 
-	ret = vma->vm_ops->fault(vmf);
 	if (unlikely(ret & (VM_FAULT_ERROR | VM_FAULT_NOPAGE | VM_FAULT_RETRY |
 			    VM_FAULT_DONE_COW)))
 		return ret;
@@ -4078,35 +4304,37 @@
 			return ret;
 	}
 
-	if (pmd_none(*vmf->pmd)) {
-		if (PageTransCompound(page)) {
-			ret = do_set_pmd(vmf, page);
-			if (ret != VM_FAULT_FALLBACK)
-				return ret;
+	if (!(vmf->flags & FAULT_FLAG_SPECULATIVE)) {
+		if (pmd_none(*vmf->pmd)) {
+			if (PageTransCompound(page)) {
+				ret = do_set_pmd(vmf, page);
+				if (ret != VM_FAULT_FALLBACK)
+					return ret;
+			}
+
+			if (vmf->prealloc_pte) {
+				vmf->ptl = pmd_lock(vma->vm_mm, vmf->pmd);
+				if (likely(pmd_none(*vmf->pmd))) {
+					mm_inc_nr_ptes(vma->vm_mm);
+					pmd_populate(vma->vm_mm, vmf->pmd, vmf->prealloc_pte);
+					vmf->prealloc_pte = NULL;
+				}
+				spin_unlock(vmf->ptl);
+			} else if (unlikely(pte_alloc(vma->vm_mm, vmf->pmd))) {
+				return VM_FAULT_OOM;
+			}
 		}
 
-		if (vmf->prealloc_pte) {
-			vmf->ptl = pmd_lock(vma->vm_mm, vmf->pmd);
-			if (likely(pmd_none(*vmf->pmd))) {
-				mm_inc_nr_ptes(vma->vm_mm);
-				pmd_populate(vma->vm_mm, vmf->pmd, vmf->prealloc_pte);
-				vmf->prealloc_pte = NULL;
-			}
-			spin_unlock(vmf->ptl);
-		} else if (unlikely(pte_alloc(vma->vm_mm, vmf->pmd))) {
-			return VM_FAULT_OOM;
-		}
+		/*
+		 * See comment in handle_pte_fault() for how this scenario happens, we
+		 * need to return NOPAGE so that we drop this page.
+		 */
+		if (pmd_devmap_trans_unstable(vmf->pmd))
+			return VM_FAULT_NOPAGE;
 	}
 
-	/*
-	 * See comment in handle_pte_fault() for how this scenario happens, we
-	 * need to return NOPAGE so that we drop this page.
-	 */
-	if (pmd_devmap_trans_unstable(vmf->pmd))
-		return VM_FAULT_NOPAGE;
-
-	vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd,
-				      vmf->address, &vmf->ptl);
+	if (!pte_map_lock(vmf))
+		return VM_FAULT_RETRY;
 	ret = 0;
 	/* Re-check under ptl */
 	if (likely(pte_none(*vmf->pte)))
@@ -4185,6 +4413,7 @@
 	pgoff_t start_pgoff = vmf->pgoff;
 	pgoff_t end_pgoff;
 	int off;
+	vm_fault_t ret;
 
 	nr_pages = READ_ONCE(fault_around_bytes) >> PAGE_SHIFT;
 	mask = ~(nr_pages * PAGE_SIZE - 1) & PAGE_MASK;
@@ -4203,14 +4432,32 @@
 	end_pgoff = min3(end_pgoff, vma_pages(vmf->vma) + vmf->vma->vm_pgoff - 1,
 			start_pgoff + nr_pages - 1);
 
-	if (pmd_none(*vmf->pmd)) {
+	if (!(vmf->flags & FAULT_FLAG_SPECULATIVE) &&
+	    pmd_none(*vmf->pmd)) {
 		vmf->prealloc_pte = pte_alloc_one(vmf->vma->vm_mm);
 		if (!vmf->prealloc_pte)
 			return VM_FAULT_OOM;
 		smp_wmb(); /* See comment in __pte_alloc() */
 	}
 
-	return vmf->vma->vm_ops->map_pages(vmf, start_pgoff, end_pgoff);
+	rcu_read_lock();
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	if (vmf->flags & FAULT_FLAG_SPECULATIVE) {
+		if (!mmap_seq_read_check(vmf->vma->vm_mm, vmf->seq,
+					 SPF_ABORT_FAULT)) {
+			rcu_read_unlock();
+			return VM_FAULT_RETRY;
+		}
+		/*
+		 * the mmap sequence check verified that vmf->vma was still
+		 * current at that point in time.
+		 * The rcu read lock ensures vmf->vma->vm_file stays valid.
+		 */
+	}
+#endif
+	ret = vmf->vma->vm_ops->map_pages(vmf, start_pgoff, end_pgoff);
+	rcu_read_unlock();
+	return ret;
 }
 
 static vm_fault_t do_read_fault(struct vm_fault *vmf)
@@ -4247,8 +4494,14 @@
 	struct vm_area_struct *vma = vmf->vma;
 	vm_fault_t ret;
 
-	if (unlikely(anon_vma_prepare(vma)))
-		return VM_FAULT_OOM;
+	if (unlikely(!vma->anon_vma)) {
+		if (vmf->flags & FAULT_FLAG_SPECULATIVE) {
+			count_vm_spf_event(SPF_ABORT_ANON_VMA);
+			return VM_FAULT_RETRY;
+		}
+		if (__anon_vma_prepare(vma))
+			return VM_FAULT_OOM;
+	}
 
 	vmf->cow_page = alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma, vmf->address);
 	if (!vmf->cow_page)
@@ -4285,6 +4538,8 @@
 	struct vm_area_struct *vma = vmf->vma;
 	vm_fault_t ret, tmp;
 
+	VM_BUG_ON(vmf->flags & FAULT_FLAG_SPECULATIVE);
+
 	ret = __do_fault(vmf);
 	if (unlikely(ret & (VM_FAULT_ERROR | VM_FAULT_NOPAGE | VM_FAULT_RETRY)))
 		return ret;
@@ -4329,10 +4584,15 @@
 	struct mm_struct *vm_mm = vma->vm_mm;
 	vm_fault_t ret;
 
+	if (vmf->flags & FAULT_FLAG_SPECULATIVE)
+		count_vm_spf_event(SPF_ATTEMPT_FILE);
+
 	/*
 	 * The VMA was not fully populated on mmap() or missing VM_DONTEXPAND
 	 */
 	if (!vma->vm_ops->fault) {
+		VM_BUG_ON(vmf->flags & FAULT_FLAG_SPECULATIVE);
+
 		/*
 		 * If we find a migration pmd entry or a none pmd entry, which
 		 * should never happen, return SIGBUS
@@ -4398,13 +4658,16 @@
 	bool was_writable = pte_savedwrite(vmf->orig_pte);
 	int flags = 0;
 
+	if (vmf->flags & FAULT_FLAG_SPECULATIVE)
+		count_vm_spf_event(SPF_ATTEMPT_NUMA);
+
 	/*
 	 * The "pte" at this point cannot be used safely without
 	 * validation through pte_unmap_same(). It's of NUMA type but
 	 * the pfn may be screwed if the read is non atomic.
 	 */
-	vmf->ptl = pte_lockptr(vma->vm_mm, vmf->pmd);
-	spin_lock(vmf->ptl);
+	if (!pte_spinlock(vmf))
+		return VM_FAULT_RETRY;
 	if (unlikely(!pte_same(*vmf->pte, vmf->orig_pte))) {
 		pte_unmap_unlock(vmf->pte, vmf->ptl);
 		goto out;
@@ -4567,53 +4830,6 @@
 {
 	pte_t entry;
 
-	if (unlikely(pmd_none(*vmf->pmd))) {
-		/*
-		 * Leave __pte_alloc() until later: because vm_ops->fault may
-		 * want to allocate huge page, and if we expose page table
-		 * for an instant, it will be difficult to retract from
-		 * concurrent faults and from rmap lookups.
-		 */
-		vmf->pte = NULL;
-	} else {
-		/*
-		 * If a huge pmd materialized under us just retry later.  Use
-		 * pmd_trans_unstable() via pmd_devmap_trans_unstable() instead
-		 * of pmd_trans_huge() to ensure the pmd didn't become
-		 * pmd_trans_huge under us and then back to pmd_none, as a
-		 * result of MADV_DONTNEED running immediately after a huge pmd
-		 * fault in a different thread of this mm, in turn leading to a
-		 * misleading pmd_trans_huge() retval. All we have to ensure is
-		 * that it is a regular pmd that we can walk with
-		 * pte_offset_map() and we can do that through an atomic read
-		 * in C, which is what pmd_trans_unstable() provides.
-		 */
-		if (pmd_devmap_trans_unstable(vmf->pmd))
-			return 0;
-		/*
-		 * A regular pmd is established and it can't morph into a huge
-		 * pmd from under us anymore at this point because we hold the
-		 * mmap_lock read mode and khugepaged takes it in write mode.
-		 * So now it's safe to run pte_offset_map().
-		 */
-		vmf->pte = pte_offset_map(vmf->pmd, vmf->address);
-		vmf->orig_pte = *vmf->pte;
-
-		/*
-		 * some architectures can have larger ptes than wordsize,
-		 * e.g.ppc44x-defconfig has CONFIG_PTE_64BIT=y and
-		 * CONFIG_32BIT=y, so READ_ONCE cannot guarantee atomic
-		 * accesses.  The code below just needs a consistent view
-		 * for the ifs and we later double check anyway with the
-		 * ptl lock held. So here a barrier will do.
-		 */
-		barrier();
-		if (pte_none(vmf->orig_pte)) {
-			pte_unmap(vmf->pte);
-			vmf->pte = NULL;
-		}
-	}
-
 	if (!vmf->pte) {
 		if (vma_is_anonymous(vmf->vma))
 			return do_anonymous_page(vmf);
@@ -4627,8 +4843,11 @@
 	if (pte_protnone(vmf->orig_pte) && vma_is_accessible(vmf->vma))
 		return do_numa_page(vmf);
 
-	vmf->ptl = pte_lockptr(vmf->vma->vm_mm, vmf->pmd);
-	spin_lock(vmf->ptl);
+	if (vmf->flags & FAULT_FLAG_SPECULATIVE)
+		count_vm_spf_event(SPF_ATTEMPT_PTE);
+
+	if (!pte_spinlock(vmf))
+		return VM_FAULT_RETRY;
 	entry = vmf->orig_pte;
 	if (unlikely(!pte_same(*vmf->pte, entry))) {
 		update_mmu_tlb(vmf->vma, vmf->address, vmf->pte);
@@ -4668,7 +4887,7 @@
  * return value.  See filemap_fault() and __lock_page_or_retry().
  */
 static vm_fault_t __handle_mm_fault(struct vm_area_struct *vma,
-		unsigned long address, unsigned int flags)
+		unsigned long address, unsigned int flags, unsigned long seq)
 {
 	struct vm_fault vmf = {
 		.vma = vma,
@@ -4683,6 +4902,98 @@
 	p4d_t *p4d;
 	vm_fault_t ret;
 
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	if (flags & FAULT_FLAG_SPECULATIVE) {
+		pgd_t pgdval;
+		p4d_t p4dval;
+		pud_t pudval;
+
+		vmf.seq = seq;
+
+		speculative_page_walk_begin();
+		pgd = pgd_offset(mm, address);
+		pgdval = READ_ONCE(*pgd);
+		if (pgd_none(pgdval) || unlikely(pgd_bad(pgdval))) {
+			count_vm_spf_event(SPF_ABORT_PUD);
+			goto spf_fail;
+		}
+
+		p4d = p4d_offset(pgd, address);
+		if (pgd_val(READ_ONCE(*pgd)) != pgd_val(pgdval))
+			goto spf_fail;
+		p4dval = READ_ONCE(*p4d);
+		if (p4d_none(p4dval) || unlikely(p4d_bad(p4dval))) {
+			count_vm_spf_event(SPF_ABORT_PUD);
+			goto spf_fail;
+		}
+
+		vmf.pud = pud_offset(p4d, address);
+		if (p4d_val(READ_ONCE(*p4d)) != p4d_val(p4dval))
+			goto spf_fail;
+		pudval = READ_ONCE(*vmf.pud);
+		if (pud_none(pudval) || unlikely(pud_bad(pudval)) ||
+		    unlikely(pud_trans_huge(pudval)) ||
+		    unlikely(pud_devmap(pudval))) {
+			count_vm_spf_event(SPF_ABORT_PUD);
+			goto spf_fail;
+		}
+
+		vmf.pmd = pmd_offset(vmf.pud, address);
+		if (pud_val(READ_ONCE(*vmf.pud)) != pud_val(pudval))
+			goto spf_fail;
+		vmf.orig_pmd = READ_ONCE(*vmf.pmd);
+
+		/*
+		 * pmd_none could mean that a hugepage collapse is in
+		 * progress in our back as collapse_huge_page() mark
+		 * it before invalidating the pte (which is done once
+		 * the IPI is catched by all CPU and we have interrupt
+		 * disabled).  For this reason we cannot handle THP in
+		 * a speculative way since we can't safely identify an
+		 * in progress collapse operation done in our back on
+		 * that PMD.
+		 */
+		if (unlikely(pmd_none(vmf.orig_pmd) ||
+			     is_swap_pmd(vmf.orig_pmd) ||
+			     pmd_trans_huge(vmf.orig_pmd) ||
+			     pmd_devmap(vmf.orig_pmd))) {
+			count_vm_spf_event(SPF_ABORT_PMD);
+			goto spf_fail;
+		}
+
+		/*
+		 * The above does not allocate/instantiate page-tables because
+		 * doing so would lead to the possibility of instantiating
+		 * page-tables after free_pgtables() -- and consequently
+		 * leaking them.
+		 *
+		 * The result is that we take at least one non-speculative
+		 * fault per PMD in order to instantiate it.
+		 */
+
+		vmf.pte = pte_offset_map(vmf.pmd, address);
+		if (pmd_val(READ_ONCE(*vmf.pmd)) != pmd_val(vmf.orig_pmd)) {
+			pte_unmap(vmf.pte);
+			vmf.pte = NULL;
+			goto spf_fail;
+		}
+		vmf.orig_pte = READ_ONCE(*vmf.pte);
+		barrier();
+		if (pte_none(vmf.orig_pte)) {
+			pte_unmap(vmf.pte);
+			vmf.pte = NULL;
+		}
+
+		speculative_page_walk_end();
+
+		return handle_pte_fault(&vmf);
+
+	spf_fail:
+		speculative_page_walk_end();
+		return VM_FAULT_RETRY;
+	}
+#endif	/* CONFIG_SPECULATIVE_PAGE_FAULT */
+
 	pgd = pgd_offset(mm, address);
 	p4d = p4d_alloc(mm, pgd, address);
 	if (!p4d)
@@ -4753,6 +5064,53 @@
 		}
 	}
 
+	if (unlikely(pmd_none(*vmf.pmd))) {
+		/*
+		 * Leave __pte_alloc() until later: because vm_ops->fault may
+		 * want to allocate huge page, and if we expose page table
+		 * for an instant, it will be difficult to retract from
+		 * concurrent faults and from rmap lookups.
+		 */
+		vmf.pte = NULL;
+	} else {
+		/*
+		 * If a huge pmd materialized under us just retry later.  Use
+		 * pmd_trans_unstable() via pmd_devmap_trans_unstable() instead
+		 * of pmd_trans_huge() to ensure the pmd didn't become
+		 * pmd_trans_huge under us and then back to pmd_none, as a
+		 * result of MADV_DONTNEED running immediately after a huge pmd
+		 * fault in a different thread of this mm, in turn leading to a
+		 * misleading pmd_trans_huge() retval. All we have to ensure is
+		 * that it is a regular pmd that we can walk with
+		 * pte_offset_map() and we can do that through an atomic read
+		 * in C, which is what pmd_trans_unstable() provides.
+		 */
+		if (pmd_devmap_trans_unstable(vmf.pmd))
+			return 0;
+		/*
+		 * A regular pmd is established and it can't morph into a huge
+		 * pmd from under us anymore at this point because we hold the
+		 * mmap_lock read mode and khugepaged takes it in write mode.
+		 * So now it's safe to run pte_offset_map().
+		 */
+		vmf.pte = pte_offset_map(vmf.pmd, vmf.address);
+		vmf.orig_pte = *vmf.pte;
+
+		/*
+		 * some architectures can have larger ptes than wordsize,
+		 * e.g.ppc44x-defconfig has CONFIG_PTE_64BIT=y and
+		 * CONFIG_32BIT=y, so READ_ONCE cannot guarantee atomic
+		 * accesses.  The code below just needs a consistent view
+		 * for the ifs and we later double check anyway with the
+		 * ptl lock held. So here a barrier will do.
+		 */
+		barrier();
+		if (pte_none(vmf.orig_pte)) {
+			pte_unmap(vmf.pte);
+			vmf.pte = NULL;
+		}
+	}
+
 	return handle_pte_fault(&vmf);
 }
 
@@ -4817,17 +5175,42 @@
 		perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, 1, regs, address);
 }
 
+#ifdef CONFIG_LRU_GEN
+static void lru_gen_enter_fault(struct vm_area_struct *vma)
+{
+	/* the LRU algorithm doesn't apply to sequential or random reads */
+	current->in_lru_fault = !(vma->vm_flags & (VM_SEQ_READ | VM_RAND_READ));
+}
+
+static void lru_gen_exit_fault(void)
+{
+	current->in_lru_fault = false;
+}
+#else
+static void lru_gen_enter_fault(struct vm_area_struct *vma)
+{
+}
+
+static void lru_gen_exit_fault(void)
+{
+}
+#endif /* CONFIG_LRU_GEN */
+
 /*
  * By the time we get here, we already hold the mm semaphore
  *
  * The mmap_lock may have been released depending on flags and our
  * return value.  See filemap_fault() and __lock_page_or_retry().
  */
-vm_fault_t handle_mm_fault(struct vm_area_struct *vma, unsigned long address,
-			   unsigned int flags, struct pt_regs *regs)
+vm_fault_t do_handle_mm_fault(struct vm_area_struct *vma,
+		unsigned long address, unsigned int flags,
+		unsigned long seq, struct pt_regs *regs)
 {
 	vm_fault_t ret;
 
+	VM_BUG_ON((flags & FAULT_FLAG_SPECULATIVE) &&
+		  !vma_can_speculate(vma, flags));
+
 	__set_current_state(TASK_RUNNING);
 
 	count_vm_event(PGFAULT);
@@ -4848,10 +5231,16 @@
 	if (flags & FAULT_FLAG_USER)
 		mem_cgroup_enter_user_fault();
 
-	if (unlikely(is_vm_hugetlb_page(vma)))
+	lru_gen_enter_fault(vma);
+
+	if (unlikely(is_vm_hugetlb_page(vma))) {
+		VM_BUG_ON(flags & FAULT_FLAG_SPECULATIVE);
 		ret = hugetlb_fault(vma->vm_mm, vma, address, flags);
-	else
-		ret = __handle_mm_fault(vma, address, flags);
+	} else {
+		ret = __handle_mm_fault(vma, address, flags, seq);
+	}
+
+	lru_gen_exit_fault();
 
 	if (flags & FAULT_FLAG_USER) {
 		mem_cgroup_exit_user_fault();
@@ -4869,7 +5258,7 @@
 
 	return ret;
 }
-EXPORT_SYMBOL_GPL(handle_mm_fault);
+EXPORT_SYMBOL_GPL(do_handle_mm_fault);
 
 #ifndef __PAGETABLE_P4D_FOLDED
 /*
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index 81f2a97..71d76d9 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -1490,6 +1490,51 @@
 }
 EXPORT_SYMBOL_GPL(add_memory);
 
+int add_memory_subsection(int nid, u64 start, u64 size)
+{
+	struct mhp_params params = { .pgprot = PAGE_KERNEL };
+	struct resource *res;
+	int ret;
+
+	if (!IS_ALIGNED(start, SUBSECTION_SIZE) ||
+	    !IS_ALIGNED(size, SUBSECTION_SIZE)) {
+		pr_err("%s: start 0x%llx size 0x%llx not aligned to subsection size\n",
+			   __func__, start, size);
+		return -EINVAL;
+	}
+
+	res = register_memory_resource(start, size, "System RAM");
+	if (IS_ERR(res))
+		return PTR_ERR(res);
+
+	mem_hotplug_begin();
+
+	nid = memory_add_physaddr_to_nid(start);
+
+	if (IS_ENABLED(CONFIG_ARCH_KEEP_MEMBLOCK))
+		memblock_add_node(start, size, nid);
+
+	ret = arch_add_memory(nid, start, size, &params);
+	if (ret) {
+		pr_err("%s failed to add subsection start 0x%llx size 0x%llx\n",
+			   __func__, start, size);
+		goto err_add_memory;
+	}
+	mem_hotplug_done();
+
+	return ret;
+
+err_add_memory:
+	if (IS_ENABLED(CONFIG_ARCH_KEEP_MEMBLOCK))
+		memblock_remove(start, size);
+
+	mem_hotplug_done();
+
+	release_memory_resource(res);
+	return ret;
+}
+EXPORT_SYMBOL_GPL(add_memory_subsection);
+
 /*
  * Add special, driver-managed memory to the system as system RAM. Such
  * memory is not exposed via the raw firmware-provided memmap as system
@@ -2253,6 +2298,29 @@
 }
 EXPORT_SYMBOL_GPL(remove_memory);
 
+int remove_memory_subsection(u64 start, u64 size)
+{
+	if (!IS_ALIGNED(start, SUBSECTION_SIZE) ||
+	    !IS_ALIGNED(size, SUBSECTION_SIZE)) {
+		pr_err("%s: start 0x%llx size 0x%llx not aligned to subsection size\n",
+			   __func__, start, size);
+		return -EINVAL;
+	}
+
+	mem_hotplug_begin();
+	arch_remove_memory(start, size, NULL);
+
+	if (IS_ENABLED(CONFIG_ARCH_KEEP_MEMBLOCK))
+		memblock_remove(start, size);
+
+	release_mem_region_adjustable(start, size);
+
+	mem_hotplug_done();
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(remove_memory_subsection);
+
 static int try_offline_memory_block(struct memory_block *mem, void *arg)
 {
 	uint8_t online_type = MMOP_ONLINE_KERNEL;
diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index 8187536..83f6c57 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -809,7 +809,8 @@
 			((vmstart - vma->vm_start) >> PAGE_SHIFT);
 		prev = vma_merge(mm, prev, vmstart, vmend, vma->vm_flags,
 				 vma->anon_vma, vma->vm_file, pgoff,
-				 new_pol, vma->vm_userfaultfd_ctx);
+				 new_pol, vma->vm_userfaultfd_ctx,
+				 anon_vma_name(vma));
 		if (prev) {
 			vma = prev;
 			goto replace;
diff --git a/mm/memremap.c b/mm/memremap.c
index 1a75395..4752dda 100644
--- a/mm/memremap.c
+++ b/mm/memremap.c
@@ -112,6 +112,30 @@
 #define for_each_device_pfn(pfn, map, i) \
 	for (pfn = pfn_first(map, i); pfn < pfn_end(map, i); pfn = pfn_next(pfn))
 
+static void dev_pagemap_kill(struct dev_pagemap *pgmap)
+{
+	if (pgmap->ops && pgmap->ops->kill)
+		pgmap->ops->kill(pgmap);
+	else
+		percpu_ref_kill(pgmap->ref);
+}
+
+static void dev_pagemap_cleanup(struct dev_pagemap *pgmap)
+{
+	if (pgmap->ops && pgmap->ops->cleanup) {
+		pgmap->ops->cleanup(pgmap);
+	} else {
+		wait_for_completion(&pgmap->done);
+		percpu_ref_exit(pgmap->ref);
+	}
+	/*
+	 * Undo the pgmap ref assignment for the internal case as the
+	 * caller may re-enable the same pgmap.
+	 */
+	if (pgmap->ref == &pgmap->internal_ref)
+		pgmap->ref = NULL;
+}
+
 static void pageunmap_range(struct dev_pagemap *pgmap, int range_id)
 {
 	struct range *range = &pgmap->ranges[range_id];
@@ -143,15 +167,14 @@
 	unsigned long pfn;
 	int i;
 
-	percpu_ref_kill(&pgmap->ref);
+	dev_pagemap_kill(pgmap);
 	for (i = 0; i < pgmap->nr_range; i++)
 		for_each_device_pfn(pfn, pgmap, i)
 			put_page(pfn_to_page(pfn));
-	wait_for_completion(&pgmap->done);
+	dev_pagemap_cleanup(pgmap);
 
 	for (i = 0; i < pgmap->nr_range; i++)
 		pageunmap_range(pgmap, i);
-	percpu_ref_exit(&pgmap->ref);
 
 	WARN_ONCE(pgmap->altmap.alloc, "failed to free all reserved pages\n");
 	devmap_managed_enable_put(pgmap);
@@ -165,7 +188,8 @@
 
 static void dev_pagemap_percpu_release(struct percpu_ref *ref)
 {
-	struct dev_pagemap *pgmap = container_of(ref, struct dev_pagemap, ref);
+	struct dev_pagemap *pgmap =
+		container_of(ref, struct dev_pagemap, internal_ref);
 
 	complete(&pgmap->done);
 }
@@ -271,8 +295,8 @@
 	memmap_init_zone_device(&NODE_DATA(nid)->node_zones[ZONE_DEVICE],
 				PHYS_PFN(range->start),
 				PHYS_PFN(range_len(range)), pgmap);
-	percpu_ref_get_many(&pgmap->ref,
-		pfn_end(pgmap, range_id) - pfn_first(pgmap, range_id));
+	percpu_ref_get_many(pgmap->ref, pfn_end(pgmap, range_id)
+			- pfn_first(pgmap, range_id));
 	return 0;
 
 err_add_memory:
@@ -339,11 +363,22 @@
 		break;
 	}
 
-	init_completion(&pgmap->done);
-	error = percpu_ref_init(&pgmap->ref, dev_pagemap_percpu_release, 0,
-				GFP_KERNEL);
-	if (error)
-		return ERR_PTR(error);
+	if (!pgmap->ref) {
+		if (pgmap->ops && (pgmap->ops->kill || pgmap->ops->cleanup))
+			return ERR_PTR(-EINVAL);
+
+		init_completion(&pgmap->done);
+		error = percpu_ref_init(&pgmap->internal_ref,
+				dev_pagemap_percpu_release, 0, GFP_KERNEL);
+		if (error)
+			return ERR_PTR(error);
+		pgmap->ref = &pgmap->internal_ref;
+	} else {
+		if (!pgmap->ops || !pgmap->ops->kill || !pgmap->ops->cleanup) {
+			WARN(1, "Missing reference count teardown definition\n");
+			return ERR_PTR(-EINVAL);
+		}
+	}
 
 	devmap_managed_enable_get(pgmap);
 
@@ -452,7 +487,7 @@
 	/* fall back to slow path lookup */
 	rcu_read_lock();
 	pgmap = xa_load(&pgmap_array, PHYS_PFN(phys));
-	if (pgmap && !percpu_ref_tryget_live(&pgmap->ref))
+	if (pgmap && !percpu_ref_tryget_live(pgmap->ref))
 		pgmap = NULL;
 	rcu_read_unlock();
 
diff --git a/mm/migrate.c b/mm/migrate.c
index dd50b1c..33ad211 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -56,6 +56,11 @@
 #define CREATE_TRACE_POINTS
 #include <trace/events/migrate.h>
 
+#undef CREATE_TRACE_POINTS
+#ifndef __GENKSYMS__
+#include <trace/hooks/mm.h>
+#endif
+
 #include "internal.h"
 
 int isolate_movable_page(struct page *page, isolate_mode_t mode)
@@ -106,7 +111,7 @@
 
 	/* Driver shouldn't use PG_isolated bit of page->flags */
 	WARN_ON_ONCE(PageIsolated(page));
-	__SetPageIsolated(page);
+	SetPageIsolated(page);
 	unlock_page(page);
 
 	return 0;
@@ -125,7 +130,7 @@
 
 	mapping = page_mapping(page);
 	mapping->a_ops->putback_page(page);
-	__ClearPageIsolated(page);
+	ClearPageIsolated(page);
 }
 
 /*
@@ -158,7 +163,7 @@
 			if (PageMovable(page))
 				putback_movable_page(page);
 			else
-				__ClearPageIsolated(page);
+				ClearPageIsolated(page);
 			unlock_page(page);
 			put_page(page);
 		} else {
@@ -168,6 +173,7 @@
 		}
 	}
 }
+EXPORT_SYMBOL_GPL(putback_movable_pages);
 
 /*
  * Restore a potential migration pte to a working pte entry
@@ -275,10 +281,14 @@
 		.arg = old,
 	};
 
+	trace_android_vh_set_page_migrating(new);
+
 	if (locked)
 		rmap_walk_locked(new, &rwc);
 	else
 		rmap_walk(new, &rwc);
+
+	trace_android_vh_clear_page_migrating(new);
 }
 
 /*
@@ -561,6 +571,7 @@
 		SetPageChecked(newpage);
 	if (PageMappedToDisk(page))
 		SetPageMappedToDisk(newpage);
+	trace_android_vh_look_around_migrate_page(page, newpage);
 
 	/* Move dirty on pages not done by migrate_page_move_mapping() */
 	if (PageDirty(page))
@@ -915,7 +926,7 @@
 		VM_BUG_ON_PAGE(!PageIsolated(page), page);
 		if (!PageMovable(page)) {
 			rc = MIGRATEPAGE_SUCCESS;
-			__ClearPageIsolated(page);
+			ClearPageIsolated(page);
 			goto out;
 		}
 
@@ -937,7 +948,7 @@
 			 * We clear PG_movable under page_lock so any compactor
 			 * cannot try to migrate this page.
 			 */
-			__ClearPageIsolated(page);
+			ClearPageIsolated(page);
 		}
 
 		/*
@@ -1201,7 +1212,7 @@
 		if (unlikely(__PageMovable(page))) {
 			lock_page(page);
 			if (!PageMovable(page))
-				__ClearPageIsolated(page);
+				ClearPageIsolated(page);
 			unlock_page(page);
 		}
 		goto out;
@@ -1604,6 +1615,7 @@
 
 	return rc;
 }
+EXPORT_SYMBOL_GPL(migrate_pages);
 
 struct page *alloc_migration_target(struct page *page, unsigned long private)
 {
diff --git a/mm/mlock.c b/mm/mlock.c
index 0cee3f97..0cc7fe0 100644
--- a/mm/mlock.c
+++ b/mm/mlock.c
@@ -511,7 +511,7 @@
 	pgoff = vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT);
 	*prev = vma_merge(mm, *prev, start, end, newflags, vma->anon_vma,
 			  vma->vm_file, pgoff, vma_policy(vma),
-			  vma->vm_userfaultfd_ctx);
+			  vma->vm_userfaultfd_ctx, anon_vma_name(vma));
 	if (*prev) {
 		vma = *prev;
 		goto success;
diff --git a/mm/mm_init.c b/mm/mm_init.c
index 9ddaf0e1..0d7b2bd 100644
--- a/mm/mm_init.c
+++ b/mm/mm_init.c
@@ -65,14 +65,16 @@
 
 	shift = 8 * sizeof(unsigned long);
 	width = shift - SECTIONS_WIDTH - NODES_WIDTH - ZONES_WIDTH
-		- LAST_CPUPID_SHIFT - KASAN_TAG_WIDTH;
+		- LAST_CPUPID_SHIFT - KASAN_TAG_WIDTH - LRU_GEN_WIDTH - LRU_REFS_WIDTH;
 	mminit_dprintk(MMINIT_TRACE, "pageflags_layout_widths",
-		"Section %d Node %d Zone %d Lastcpupid %d Kasantag %d Flags %d\n",
+		"Section %d Node %d Zone %d Lastcpupid %d Kasantag %d Gen %d Tier %d Flags %d\n",
 		SECTIONS_WIDTH,
 		NODES_WIDTH,
 		ZONES_WIDTH,
 		LAST_CPUPID_WIDTH,
 		KASAN_TAG_WIDTH,
+		LRU_GEN_WIDTH,
+		LRU_REFS_WIDTH,
 		NR_PAGEFLAGS);
 	mminit_dprintk(MMINIT_TRACE, "pageflags_layout_shifts",
 		"Section %d Node %d Zone %d Lastcpupid %d Kasantag %d\n",
diff --git a/mm/mmap.c b/mm/mmap.c
index a0a4ead..e3a10b3 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -13,6 +13,7 @@
 #include <linux/slab.h>
 #include <linux/backing-dev.h>
 #include <linux/mm.h>
+#include <linux/mm_inline.h>
 #include <linux/vmacache.h>
 #include <linux/shm.h>
 #include <linux/mman.h>
@@ -55,6 +56,8 @@
 
 #define CREATE_TRACE_POINTS
 #include <trace/events/mmap.h>
+#undef CREATE_TRACE_POINTS
+#include <trace/hooks/mm.h>
 
 #include "internal.h"
 
@@ -182,9 +185,8 @@
 	might_sleep();
 	if (vma->vm_ops && vma->vm_ops->close)
 		vma->vm_ops->close(vma);
-	if (vma->vm_file)
-		fput(vma->vm_file);
 	mpol_put(vma_policy(vma));
+	/* fput(vma->vm_file) happens in vm_area_free after an RCU delay. */
 	vm_area_free(vma);
 	return next;
 }
@@ -952,7 +954,8 @@
 	if (remove_next) {
 		if (file) {
 			uprobe_munmap(next, next->vm_start, next->vm_end);
-			fput(file);
+			/* fput(file) happens whthin vm_area_free(next) */
+			VM_BUG_ON(file != next->vm_file);
 		}
 		if (next->anon_vma)
 			anon_vma_merge(vma, next);
@@ -1029,7 +1032,8 @@
  */
 static inline int is_mergeable_vma(struct vm_area_struct *vma,
 				struct file *file, unsigned long vm_flags,
-				struct vm_userfaultfd_ctx vm_userfaultfd_ctx)
+				struct vm_userfaultfd_ctx vm_userfaultfd_ctx,
+				struct anon_vma_name *anon_name)
 {
 	/*
 	 * VM_SOFTDIRTY should not prevent from VMA merging, if we
@@ -1047,6 +1051,8 @@
 		return 0;
 	if (!is_mergeable_vm_userfaultfd_ctx(vma, vm_userfaultfd_ctx))
 		return 0;
+	if (!anon_vma_name_eq(anon_vma_name(vma), anon_name))
+		return 0;
 	return 1;
 }
 
@@ -1079,9 +1085,10 @@
 can_vma_merge_before(struct vm_area_struct *vma, unsigned long vm_flags,
 		     struct anon_vma *anon_vma, struct file *file,
 		     pgoff_t vm_pgoff,
-		     struct vm_userfaultfd_ctx vm_userfaultfd_ctx)
+		     struct vm_userfaultfd_ctx vm_userfaultfd_ctx,
+		     struct anon_vma_name *anon_name)
 {
-	if (is_mergeable_vma(vma, file, vm_flags, vm_userfaultfd_ctx) &&
+	if (is_mergeable_vma(vma, file, vm_flags, vm_userfaultfd_ctx, anon_name) &&
 	    is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) {
 		if (vma->vm_pgoff == vm_pgoff)
 			return 1;
@@ -1100,9 +1107,10 @@
 can_vma_merge_after(struct vm_area_struct *vma, unsigned long vm_flags,
 		    struct anon_vma *anon_vma, struct file *file,
 		    pgoff_t vm_pgoff,
-		    struct vm_userfaultfd_ctx vm_userfaultfd_ctx)
+		    struct vm_userfaultfd_ctx vm_userfaultfd_ctx,
+		    struct anon_vma_name *anon_name)
 {
-	if (is_mergeable_vma(vma, file, vm_flags, vm_userfaultfd_ctx) &&
+	if (is_mergeable_vma(vma, file, vm_flags, vm_userfaultfd_ctx, anon_name) &&
 	    is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) {
 		pgoff_t vm_pglen;
 		vm_pglen = vma_pages(vma);
@@ -1113,9 +1121,9 @@
 }
 
 /*
- * Given a mapping request (addr,end,vm_flags,file,pgoff), figure out
- * whether that can be merged with its predecessor or its successor.
- * Or both (it neatly fills a hole).
+ * Given a mapping request (addr,end,vm_flags,file,pgoff,anon_name),
+ * figure out whether that can be merged with its predecessor or its
+ * successor.  Or both (it neatly fills a hole).
  *
  * In most cases - when called for mmap, brk or mremap - [addr,end) is
  * certain not to be mapped by the time vma_merge is called; but when
@@ -1160,7 +1168,8 @@
 			unsigned long end, unsigned long vm_flags,
 			struct anon_vma *anon_vma, struct file *file,
 			pgoff_t pgoff, struct mempolicy *policy,
-			struct vm_userfaultfd_ctx vm_userfaultfd_ctx)
+			struct vm_userfaultfd_ctx vm_userfaultfd_ctx,
+			struct anon_vma_name *anon_name)
 {
 	pgoff_t pglen = (end - addr) >> PAGE_SHIFT;
 	struct vm_area_struct *area, *next;
@@ -1190,7 +1199,7 @@
 			mpol_equal(vma_policy(prev), policy) &&
 			can_vma_merge_after(prev, vm_flags,
 					    anon_vma, file, pgoff,
-					    vm_userfaultfd_ctx)) {
+					    vm_userfaultfd_ctx, anon_name)) {
 		/*
 		 * OK, it can.  Can we now merge in the successor as well?
 		 */
@@ -1199,7 +1208,7 @@
 				can_vma_merge_before(next, vm_flags,
 						     anon_vma, file,
 						     pgoff+pglen,
-						     vm_userfaultfd_ctx) &&
+						     vm_userfaultfd_ctx, anon_name) &&
 				is_mergeable_anon_vma(prev->anon_vma,
 						      next->anon_vma, NULL)) {
 							/* cases 1, 6 */
@@ -1222,7 +1231,7 @@
 			mpol_equal(policy, vma_policy(next)) &&
 			can_vma_merge_before(next, vm_flags,
 					     anon_vma, file, pgoff+pglen,
-					     vm_userfaultfd_ctx)) {
+					     vm_userfaultfd_ctx, anon_name)) {
 		if (prev && addr < prev->vm_end)	/* case 4 */
 			err = __vma_adjust(prev, prev->vm_start,
 					 addr, prev->vm_pgoff, NULL, next);
@@ -1759,7 +1768,7 @@
 	 * Can we just expand an old mapping?
 	 */
 	vma = vma_merge(mm, prev, addr, addr + len, vm_flags,
-			NULL, file, pgoff, NULL, NULL_VM_UFFD_CTX);
+			NULL, file, pgoff, NULL, NULL_VM_UFFD_CTX, NULL);
 	if (vma)
 		goto out;
 
@@ -1808,13 +1817,13 @@
 		 */
 		if (unlikely(vm_flags != vma->vm_flags && prev)) {
 			merge = vma_merge(mm, prev, vma->vm_start, vma->vm_end, vma->vm_flags,
-				NULL, vma->vm_file, vma->vm_pgoff, NULL, NULL_VM_UFFD_CTX);
+				NULL, vma->vm_file, vma->vm_pgoff, NULL, NULL_VM_UFFD_CTX, NULL);
 			if (merge) {
 				/* ->mmap() can change vma->vm_file and fput the original file. So
 				 * fput the vma->vm_file here or we would add an extra fput for file
 				 * and cause general protection fault ultimately.
 				 */
-				fput(vma->vm_file);
+				/* fput happens within vm_area_free */
 				vm_area_free(vma);
 				vma = merge;
 				/* Update vm_flags to pick up the change. */
@@ -1874,6 +1883,8 @@
 
 	vma_set_page_prot(vma);
 
+	trace_android_vh_mmap_region(vma, addr);
+
 	return addr;
 
 close_and_free_vma:
@@ -1888,6 +1899,7 @@
 	if (vm_flags & VM_SHARED)
 		mapping_unmap_writable(file->f_mapping);
 free_vma:
+	VM_BUG_ON(vma->vm_file);
 	vm_area_free(vma);
 unacct_error:
 	if (charged)
@@ -2267,17 +2279,10 @@
 
 EXPORT_SYMBOL(get_unmapped_area);
 
-/* Look up the first VMA which satisfies  addr < vm_end,  NULL if none. */
-struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr)
+struct vm_area_struct *find_vma_from_tree(struct mm_struct *mm, unsigned long addr)
 {
 	struct rb_node *rb_node;
-	struct vm_area_struct *vma;
-
-	mmap_assert_locked(mm);
-	/* Check the cache first. */
-	vma = vmacache_find(mm, addr);
-	if (likely(vma))
-		return vma;
+	struct vm_area_struct *vma = NULL;
 
 	rb_node = mm->mm_rb.rb_node;
 
@@ -2295,12 +2300,27 @@
 			rb_node = rb_node->rb_right;
 	}
 
+	return vma;
+}
+
+/* Look up the first VMA which satisfies  addr < vm_end,  NULL if none. */
+struct vm_area_struct *__find_vma(struct mm_struct *mm, unsigned long addr)
+{
+	struct vm_area_struct *vma;
+
+	/* Check the cache first. */
+	vma = vmacache_find(mm, addr);
+	if (likely(vma))
+		return vma;
+
+	vma = find_vma_from_tree(mm, addr);
+
 	if (vma)
 		vmacache_update(addr, vma);
 	return vma;
 }
 
-EXPORT_SYMBOL(find_vma);
+EXPORT_SYMBOL(__find_vma);
 
 /*
  * Same as find_vma, but also return a pointer to the previous VMA in *pprev.
@@ -2770,6 +2790,7 @@
  out_free_mpol:
 	mpol_put(vma_policy(new));
  out_free_vma:
+	new->vm_file = NULL;	/* prevents fput within vm_area_free() */
 	vm_area_free(new);
 	return err;
 }
@@ -3072,7 +3093,7 @@
 
 	/* Can we just expand an old private anonymous mapping? */
 	vma = vma_merge(mm, prev, addr, addr + len, flags,
-			NULL, NULL, pgoff, NULL, NULL_VM_UFFD_CTX);
+			NULL, NULL, pgoff, NULL, NULL_VM_UFFD_CTX, NULL);
 	if (vma)
 		goto out;
 
@@ -3158,25 +3179,27 @@
 		 * to mmu_notifier_release(mm) ensures mmu notifier callbacks in
 		 * __oom_reap_task_mm() will not block.
 		 *
-		 * This needs to be done before calling munlock_vma_pages_all(),
+		 * This needs to be done before calling unlock_range(),
 		 * which clears VM_LOCKED, otherwise the oom reaper cannot
 		 * reliably test it.
 		 */
 		(void)__oom_reap_task_mm(mm);
 
 		set_bit(MMF_OOM_SKIP, &mm->flags);
-		mmap_write_lock(mm);
-		mmap_write_unlock(mm);
 	}
 
+	mmap_write_lock(mm);
 	if (mm->locked_vm)
 		unlock_range(mm->mmap, ULONG_MAX);
 
 	arch_exit_mmap(mm);
 
 	vma = mm->mmap;
-	if (!vma)	/* Can happen if dup_mmap() received an OOM */
+	if (!vma) {
+		/* Can happen if dup_mmap() received an OOM */
+		mmap_write_unlock(mm);
 		return;
+	}
 
 	lru_add_drain();
 	flush_cache_mm(mm);
@@ -3187,16 +3210,15 @@
 	free_pgtables(&tlb, vma, FIRST_USER_ADDRESS, USER_PGTABLES_CEILING);
 	tlb_finish_mmu(&tlb);
 
-	/*
-	 * Walk the list again, actually closing and freeing it,
-	 * with preemption enabled, without holding any MM locks.
-	 */
+	/* Walk the list again, actually closing and freeing it. */
 	while (vma) {
 		if (vma->vm_flags & VM_ACCOUNT)
 			nr_accounted += vma_pages(vma);
 		vma = remove_vma(vma);
 		cond_resched();
 	}
+	mm->mmap = NULL;
+	mmap_write_unlock(mm);
 	vm_unacct_memory(nr_accounted);
 }
 
@@ -3265,7 +3287,7 @@
 		return NULL;	/* should never get here */
 	new_vma = vma_merge(mm, prev, addr, addr + len, vma->vm_flags,
 			    vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma),
-			    vma->vm_userfaultfd_ctx);
+			    vma->vm_userfaultfd_ctx, anon_vma_name(vma));
 	if (new_vma) {
 		/*
 		 * Source vma may have been merged into new_vma
@@ -3311,6 +3333,7 @@
 out_free_mempol:
 	mpol_put(vma_policy(new_vma));
 out_free_vma:
+	new_vma->vm_file = NULL;	/* Prevent fput within vm_area_free */
 	vm_area_free(new_vma);
 out:
 	return NULL;
@@ -3603,6 +3626,10 @@
 
 	mutex_lock(&mm_all_locks_mutex);
 
+#if defined(CONFIG_MMU_NOTIFIER) && defined(CONFIG_SPECULATIVE_PAGE_FAULT)
+	percpu_down_write(mm->mmu_notifier_lock);
+#endif
+
 	for (vma = mm->mmap; vma; vma = vma->vm_next) {
 		if (signal_pending(current))
 			goto out_unlock;
@@ -3690,6 +3717,10 @@
 			vm_unlock_mapping(vma->vm_file->f_mapping);
 	}
 
+#if defined(CONFIG_MMU_NOTIFIER) && defined(CONFIG_SPECULATIVE_PAGE_FAULT)
+	percpu_up_write(mm->mmu_notifier_lock);
+#endif
+
 	mutex_unlock(&mm_all_locks_mutex);
 }
 
diff --git a/mm/mmzone.c b/mm/mmzone.c
index eb89d6e..bccbc5a 100644
--- a/mm/mmzone.c
+++ b/mm/mmzone.c
@@ -9,6 +9,7 @@
 #include <linux/stddef.h>
 #include <linux/mm.h>
 #include <linux/mmzone.h>
+#include <trace/hooks/mm.h>
 
 struct pglist_data *first_online_pgdat(void)
 {
@@ -81,6 +82,8 @@
 
 	for_each_lru(lru)
 		INIT_LIST_HEAD(&lruvec->lists[lru]);
+
+	lru_gen_init_lruvec(lruvec);
 }
 
 #if defined(CONFIG_NUMA_BALANCING) && !defined(LAST_CPUPID_NOT_IN_PAGE_FLAGS)
@@ -100,3 +103,19 @@
 	return last_cpupid;
 }
 #endif
+
+enum zone_type gfp_zone(gfp_t flags)
+{
+	enum zone_type z;
+	gfp_t local_flags = flags;
+	int bit;
+
+	trace_android_rvh_set_gfp_zone_flags(&local_flags);
+
+	bit = (__force int) ((local_flags) & GFP_ZONEMASK);
+
+	z = (GFP_ZONE_TABLE >> (bit * GFP_ZONES_SHIFT)) &
+					 ((1 << GFP_ZONES_SHIFT) - 1);
+	VM_BUG_ON((GFP_ZONE_BAD >> bit) & 1);
+	return z;
+}
diff --git a/mm/mprotect.c b/mm/mprotect.c
index ed18dc4..ba53529 100644
--- a/mm/mprotect.c
+++ b/mm/mprotect.c
@@ -464,7 +464,7 @@
 	pgoff = vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT);
 	*pprev = vma_merge(mm, *pprev, start, end, newflags,
 			   vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma),
-			   vma->vm_userfaultfd_ctx);
+			   vma->vm_userfaultfd_ctx, anon_vma_name(vma));
 	if (*pprev) {
 		vma = *pprev;
 		VM_WARN_ON((vma->vm_flags ^ newflags) & ~VM_SOFTDIRTY);
diff --git a/mm/mremap.c b/mm/mremap.c
index 3a3cf4c..540fb64 100644
--- a/mm/mremap.c
+++ b/mm/mremap.c
@@ -219,6 +219,38 @@
 }
 #endif
 
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+static inline bool trylock_vma_ref_count(struct vm_area_struct *vma)
+{
+	/*
+	 * If we have the only reference, swap the refcount to -1. This
+	 * will prevent other concurrent references by get_vma() for SPFs.
+	 */
+	return atomic_cmpxchg(&vma->file_ref_count, 0, -1) == 0;
+}
+
+/*
+ * Restore the VMA reference count to 1 after a fast mremap.
+ */
+static inline void unlock_vma_ref_count(struct vm_area_struct *vma)
+{
+	/*
+	 * This should only be called after a corresponding,
+	 * successful trylock_vma_ref_count().
+	 */
+	VM_BUG_ON_VMA(atomic_cmpxchg(&vma->file_ref_count, -1, 0) != -1,
+		      vma);
+}
+#else	/* !CONFIG_SPECULATIVE_PAGE_FAULT */
+static inline bool trylock_vma_ref_count(struct vm_area_struct *vma)
+{
+	return true;
+}
+static inline void unlock_vma_ref_count(struct vm_area_struct *vma)
+{
+}
+#endif	/* CONFIG_SPECULATIVE_PAGE_FAULT */
+
 #ifdef CONFIG_HAVE_MOVE_PMD
 static bool move_normal_pmd(struct vm_area_struct *vma, unsigned long old_addr,
 		  unsigned long new_addr, pmd_t *old_pmd, pmd_t *new_pmd)
@@ -256,6 +288,14 @@
 		return false;
 
 	/*
+	 * We hold both exclusive mmap_lock and rmap_lock at this point and
+	 * cannot block. If we cannot immediately take exclusive ownership
+	 * of the VMA fallback to the move_ptes().
+	 */
+	if (!trylock_vma_ref_count(vma))
+		return false;
+
+	/*
 	 * We don't have to worry about the ordering of src and dst
 	 * ptlocks because exclusive mmap_lock prevents deadlock.
 	 */
@@ -276,6 +316,7 @@
 		spin_unlock(new_ptl);
 	spin_unlock(old_ptl);
 
+	unlock_vma_ref_count(vma);
 	return true;
 }
 #else
@@ -305,6 +346,14 @@
 		return false;
 
 	/*
+	 * We hold both exclusive mmap_lock and rmap_lock at this point and
+	 * cannot block. If we cannot immediately take exclusive ownership
+	 * of the VMA fallback to the move_ptes().
+	 */
+	if (!trylock_vma_ref_count(vma))
+		return false;
+
+	/*
 	 * We don't have to worry about the ordering of src and dst
 	 * ptlocks because exclusive mmap_lock prevents deadlock.
 	 */
@@ -325,6 +374,7 @@
 		spin_unlock(new_ptl);
 	spin_unlock(old_ptl);
 
+	unlock_vma_ref_count(vma);
 	return true;
 }
 #else
@@ -674,6 +724,7 @@
 		/* We always clear VM_LOCKED[ONFAULT] on the old vma */
 		vma->vm_flags &= VM_LOCKED_CLEAR_MASK;
 
+#ifndef CONFIG_SPECULATIVE_PAGE_FAULT
 		/*
 		 * anon_vma links of the old vma is no longer needed after its page
 		 * table has been moved.
@@ -681,6 +732,7 @@
 		if (new_vma != vma && vma->vm_start == old_addr &&
 			vma->vm_end == (old_addr + old_len))
 			unlink_anon_vmas(vma);
+#endif
 
 		/* Because we won't unmap we don't need to touch locked_vm */
 		return new_addr;
diff --git a/mm/nommu.c b/mm/nommu.c
index 02d2427..f90afb1 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -654,39 +654,47 @@
 {
 	if (vma->vm_ops && vma->vm_ops->close)
 		vma->vm_ops->close(vma);
-	if (vma->vm_file)
-		fput(vma->vm_file);
 	put_nommu_region(vma->vm_region);
+	/* fput(vma->vm_file) happens within vm_area_free() */
 	vm_area_free(vma);
 }
 
-/*
- * look up the first VMA in which addr resides, NULL if none
- * - should be called with mm->mmap_lock at least held readlocked
- */
-struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr)
+struct vm_area_struct *find_vma_from_tree(struct mm_struct *mm, unsigned long addr)
 {
 	struct vm_area_struct *vma;
 
-	/* check the cache first */
-	vma = vmacache_find(mm, addr);
-	if (likely(vma))
-		return vma;
-
 	/* trawl the list (there may be multiple mappings in which addr
 	 * resides) */
 	for (vma = mm->mmap; vma; vma = vma->vm_next) {
 		if (vma->vm_start > addr)
 			return NULL;
-		if (vma->vm_end > addr) {
-			vmacache_update(addr, vma);
+		if (vma->vm_end > addr)
 			return vma;
-		}
 	}
 
 	return NULL;
 }
-EXPORT_SYMBOL(find_vma);
+
+/*
+ * look up the first VMA in which addr resides, NULL if none
+ * - should be called with mm->mmap_lock at least held readlocked
+ */
+struct vm_area_struct *__find_vma(struct mm_struct *mm, unsigned long addr)
+{
+	struct vm_area_struct *vma;
+
+	/* Check the cache first. */
+	vma = vmacache_find(mm, addr);
+	if (likely(vma))
+		return vma;
+
+	vma = find_vma_from_tree(mm, addr);
+
+	if (vma)
+		vmacache_update(addr, vma);
+	return vma;
+}
+EXPORT_SYMBOL(__find_vma);
 
 /*
  * find a VMA
@@ -1254,8 +1262,7 @@
 	if (region->vm_file)
 		fput(region->vm_file);
 	kmem_cache_free(vm_region_jar, region);
-	if (vma->vm_file)
-		fput(vma->vm_file);
+	/* fput(vma->vm_file) happens within vm_area_free() */
 	vm_area_free(vma);
 	return ret;
 
diff --git a/mm/oom_kill.c b/mm/oom_kill.c
index 262f752..816e240 100644
--- a/mm/oom_kill.c
+++ b/mm/oom_kill.c
@@ -52,6 +52,9 @@
 #define CREATE_TRACE_POINTS
 #include <trace/events/oom.h>
 
+#undef CREATE_TRACE_POINTS
+#include <trace/hooks/mm.h>
+
 int sysctl_panic_on_oom;
 int sysctl_oom_kill_allocating_task;
 int sysctl_oom_dump_tasks = 1;
@@ -659,10 +662,8 @@
 	return 0;
 }
 
-static void wake_oom_reaper(struct timer_list *timer)
+static void __wake_oom_reaper(struct task_struct *tsk)
 {
-	struct task_struct *tsk = container_of(timer, struct task_struct,
-			oom_reaper_timer);
 	struct mm_struct *mm = tsk->signal->oom_mm;
 	unsigned long flags;
 
@@ -680,6 +681,13 @@
 	wake_up(&oom_reaper_wait);
 }
 
+static void wake_oom_reaper(struct timer_list *timer)
+{
+	struct task_struct *tsk = container_of(timer, struct task_struct,
+			oom_reaper_timer);
+	__wake_oom_reaper(tsk);
+}
+
 /*
  * Give the OOM victim time to exit naturally before invoking the oom_reaping.
  * The timers timeout is arbitrary... the longer it is, the longer the worst
@@ -711,9 +719,27 @@
 static inline void queue_oom_reaper(struct task_struct *tsk)
 {
 }
+
+static void __wake_oom_reaper(struct task_struct *tsk)
+{
+}
 #endif /* CONFIG_MMU */
 
 /**
+ * tsk->mm has to be non NULL and caller has to guarantee it is stable (either
+ * under task_lock or operate on the current).
+ */
+static void __mark_oom_victim(struct task_struct *tsk)
+{
+	struct mm_struct *mm = tsk->mm;
+
+	if (!cmpxchg(&tsk->signal->oom_mm, NULL, mm)) {
+		mmgrab(tsk->signal->oom_mm);
+		set_bit(MMF_OOM_VICTIM, &mm->flags);
+	}
+}
+
+/**
  * mark_oom_victim - mark the given task as OOM victim
  * @tsk: task to mark
  *
@@ -725,18 +751,13 @@
  */
 static void mark_oom_victim(struct task_struct *tsk)
 {
-	struct mm_struct *mm = tsk->mm;
-
 	WARN_ON(oom_killer_disabled);
 	/* OOM killer might race with memcg OOM */
 	if (test_and_set_tsk_thread_flag(tsk, TIF_MEMDIE))
 		return;
 
 	/* oom_mm is bound to the signal struct life time. */
-	if (!cmpxchg(&tsk->signal->oom_mm, NULL, mm)) {
-		mmgrab(tsk->signal->oom_mm);
-		set_bit(MMF_OOM_VICTIM, &mm->flags);
-	}
+	__mark_oom_victim(tsk);
 
 	/*
 	 * Make sure that the task is woken up from uninterruptible sleep
@@ -1129,6 +1150,12 @@
 	select_bad_process(oc);
 	/* Found nothing?!?! */
 	if (!oc->chosen) {
+		int ret = false;
+
+		trace_android_vh_oom_check_panic(oc, &ret);
+		if (ret)
+			return true;
+
 		dump_header(oc, NULL);
 		pr_warn("Out of memory and no killable processes...\n");
 		/*
@@ -1200,15 +1227,21 @@
 		goto put_task;
 	}
 
-	if (mmget_not_zero(p->mm)) {
-		mm = p->mm;
-		if (task_will_free_mem(p))
-			reap = true;
-		else {
-			/* Error only if the work has not been done already */
-			if (!test_bit(MMF_OOM_SKIP, &mm->flags))
-				ret = -EINVAL;
-		}
+	mm = p->mm;
+	mmgrab(mm);
+
+	/*
+	 * If we are too late and exit_mmap already checked mm_is_oom_victim
+	 * then will block on mmap_read_lock until exit_mmap releases mmap_lock
+	 */
+	set_bit(MMF_OOM_VICTIM, &mm->flags);
+
+	if (task_will_free_mem(p))
+		reap = true;
+	else {
+		/* Error only if the work has not been done already */
+		if (!test_bit(MMF_OOM_SKIP, &mm->flags))
+			ret = -EINVAL;
 	}
 	task_unlock(p);
 
@@ -1219,13 +1252,16 @@
 		ret = -EINTR;
 		goto drop_mm;
 	}
-	if (!__oom_reap_task_mm(mm))
+	/*
+	 * Check MMF_OOM_SKIP again under mmap_read_lock protection to ensure
+	 * possible change in exit_mmap is seen
+	 */
+	if (!test_bit(MMF_OOM_SKIP, &mm->flags) && !__oom_reap_task_mm(mm))
 		ret = -EAGAIN;
 	mmap_read_unlock(mm);
 
 drop_mm:
-	if (mm)
-		mmput(mm);
+	mmdrop(mm);
 put_task:
 	put_task_struct(task);
 put_pid:
@@ -1235,3 +1271,19 @@
 	return -ENOSYS;
 #endif /* CONFIG_MMU */
 }
+
+void add_to_oom_reaper(struct task_struct *p)
+{
+	p = find_lock_task_mm(p);
+	if (!p)
+		return;
+	if (task_will_free_mem(p)) {
+		__mark_oom_victim(p);
+		if (!test_and_set_bit(MMF_OOM_REAP_QUEUED,
+				     &p->signal->oom_mm->flags)) {
+			get_task_struct(p);
+			__wake_oom_reaper(p);
+		}
+	}
+	task_unlock(p);
+}
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 8ca6617..779cc533 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -1886,6 +1886,8 @@
 	if (!(bdi->capabilities & BDI_CAP_WRITEBACK))
 		return;
 
+	trace_android_rvh_ctl_dirty_rate(NULL);
+
 	if (inode_cgwb_enabled(inode))
 		wb = wb_get_create_current(bdi, GFP_KERNEL);
 	if (!wb)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index f320ee2..7418769 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -63,6 +63,7 @@
 #include <linux/sched/rt.h>
 #include <linux/sched/mm.h>
 #include <linux/page_owner.h>
+#include <linux/page_pinner.h>
 #include <linux/kthread.h>
 #include <linux/memcontrol.h>
 #include <linux/ftrace.h>
@@ -72,6 +73,9 @@
 #include <linux/padata.h>
 #include <linux/khugepaged.h>
 #include <linux/buffer_head.h>
+#include <trace/hooks/mm.h>
+#include <trace/hooks/vmscan.h>
+
 #include <asm/sections.h>
 #include <asm/tlbflush.h>
 #include <asm/div64.h>
@@ -82,6 +86,17 @@
 /* Free Page Internal flags: for internal, non-pcp variants of free_pages(). */
 typedef int __bitwise fpi_t;
 
+static inline struct per_cpu_pages_ext *pcp_to_pcpext(struct per_cpu_pages *pcp)
+{
+	return container_of(pcp, struct per_cpu_pages_ext, pcp);
+}
+
+static inline
+struct per_cpu_pages_ext __percpu *zone_per_cpu_pageset(struct zone *zone)
+{
+	return (struct per_cpu_pages_ext __percpu *)zone->per_cpu_pageset;
+}
+
 /* No special request */
 #define FPI_NONE		((__force fpi_t)0)
 
@@ -122,13 +137,97 @@
 static DEFINE_MUTEX(pcp_batch_high_lock);
 #define MIN_PERCPU_PAGELIST_HIGH_FRACTION (8)
 
-struct pagesets {
-	local_lock_t lock;
-};
-static DEFINE_PER_CPU(struct pagesets, pagesets) = {
-	.lock = INIT_LOCAL_LOCK(lock),
-};
+#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT)
+/*
+ * On SMP, spin_trylock is sufficient protection.
+ * On PREEMPT_RT, spin_trylock is equivalent on both SMP and UP.
+ */
+#define pcp_trylock_prepare(flags)	do { } while (0)
+#define pcp_trylock_finish(flag)	do { } while (0)
+#else
 
+/* UP spin_trylock always succeeds so disable IRQs to prevent re-entrancy. */
+#define pcp_trylock_prepare(flags)	local_irq_save(flags)
+#define pcp_trylock_finish(flags)	local_irq_restore(flags)
+#endif
+
+/*
+ * Locking a pcp requires a PCP lookup followed by a spinlock. To avoid
+ * a migration causing the wrong PCP to be locked and remote memory being
+ * potentially allocated, pin the task to the CPU for the lookup+lock.
+ * preempt_disable is used on !RT because it is faster than migrate_disable.
+ * migrate_disable is used on RT because otherwise RT spinlock usage is
+ * interfered with and a high priority task cannot preempt the allocator.
+ */
+#ifndef CONFIG_PREEMPT_RT
+#define pcpu_task_pin()		preempt_disable()
+#define pcpu_task_unpin()	preempt_enable()
+#else
+#define pcpu_task_pin()		migrate_disable()
+#define pcpu_task_unpin()	migrate_enable()
+#endif
+
+/*
+ * Generic helper to lookup and a per-cpu variable with an embedded spinlock.
+ * Return value should be used with equivalent unlock helper.
+ */
+#define pcpu_spin_lock(type, member, ptr)				\
+({									\
+	type *_ret;							\
+	pcpu_task_pin();						\
+	_ret = this_cpu_ptr(ptr);					\
+	spin_lock(&_ret->member);					\
+	&_ret->pcp;							\
+})
+
+#define pcpu_spin_lock_irqsave(type, member, ptr, flags)		\
+({									\
+	type *_ret;							\
+	pcpu_task_pin();						\
+	_ret = this_cpu_ptr(ptr);					\
+	spin_lock_irqsave(&_ret->member, flags);			\
+	&_ret->pcp;							\
+})
+
+#define pcpu_spin_trylock_irqsave(type, member, ptr, flags)		\
+({									\
+	type *_ret;							\
+	pcpu_task_pin();						\
+	_ret = this_cpu_ptr(ptr);					\
+	if (!spin_trylock_irqsave(&_ret->member, flags)) {		\
+		pcpu_task_unpin();					\
+		_ret = NULL;						\
+	}								\
+	_ret ? &_ret->pcp : NULL;					\
+})
+
+#define pcpu_spin_unlock(member, ptr)					\
+({									\
+	spin_unlock(&ptr->member);					\
+	pcpu_task_unpin();						\
+})
+
+#define pcpu_spin_unlock_irqrestore(member, ptr, flags)			\
+({									\
+	spin_unlock_irqrestore(&ptr->member, flags);			\
+	pcpu_task_unpin();						\
+})
+
+/* struct per_cpu_pages_ext specific helpers. */
+#define pcp_spin_lock(ptr)						\
+	pcpu_spin_lock(struct per_cpu_pages_ext, lock, ptr)
+
+#define pcp_spin_lock_irqsave(ptr, flags)				\
+	pcpu_spin_lock_irqsave(struct per_cpu_pages_ext, lock, ptr, flags)
+
+#define pcp_spin_trylock_irqsave(ptr, flags)				\
+	pcpu_spin_trylock_irqsave(struct per_cpu_pages_ext, lock, ptr, flags)
+
+#define pcp_spin_unlock(ptr)						\
+	pcpu_spin_unlock(lock, ptr)
+
+#define pcp_spin_unlock_irqrestore(ptr, flags)				\
+	pcpu_spin_unlock_irqrestore(lock, pcp_to_pcpext(ptr), flags)
 #ifdef CONFIG_USE_PERCPU_NUMA_NODE_ID
 DEFINE_PER_CPU(int, numa_node);
 EXPORT_PER_CPU_SYMBOL(numa_node);
@@ -147,13 +246,7 @@
 EXPORT_PER_CPU_SYMBOL(_numa_mem_);
 #endif
 
-/* work_structs for global per-cpu drains */
-struct pcpu_drain {
-	struct zone *zone;
-	struct work_struct work;
-};
 static DEFINE_MUTEX(pcpu_drain_mutex);
-static DEFINE_PER_CPU(struct pcpu_drain, pcpu_drain);
 
 #ifdef CONFIG_GCC_PLUGIN_LATENT_ENTROPY
 volatile unsigned long latent_entropy __latent_entropy;
@@ -316,10 +409,10 @@
 	"Unmovable",
 	"Movable",
 	"Reclaimable",
-	"HighAtomic",
 #ifdef CONFIG_CMA
 	"CMA",
 #endif
+	"HighAtomic",
 #ifdef CONFIG_MEMORY_ISOLATION
 	"Isolate",
 #endif
@@ -375,25 +468,9 @@
  */
 static DEFINE_STATIC_KEY_TRUE(deferred_pages);
 
-/*
- * Calling kasan_poison_pages() only after deferred memory initialization
- * has completed. Poisoning pages during deferred memory init will greatly
- * lengthen the process and cause problem in large memory systems as the
- * deferred pages initialization is done with interrupt disabled.
- *
- * Assuming that there will be no reference to those newly initialized
- * pages before they are ever allocated, this should have no effect on
- * KASAN memory tracking as the poison will be properly inserted at page
- * allocation time. The only corner case is when pages are allocated by
- * on-demand allocation and then freed again before the deferred pages
- * initialization is done, but this is not likely to happen.
- */
-static inline bool should_skip_kasan_poison(struct page *page, fpi_t fpi_flags)
+static inline bool deferred_pages_enabled(void)
 {
-	return static_branch_unlikely(&deferred_pages) ||
-	       (!IS_ENABLED(CONFIG_KASAN_GENERIC) &&
-		(fpi_flags & FPI_SKIP_KASAN_POISON)) ||
-	       PageSkipKASanPoison(page);
+	return static_branch_unlikely(&deferred_pages);
 }
 
 /* Returns true if the struct page for the pfn is uninitialised */
@@ -444,11 +521,9 @@
 	return false;
 }
 #else
-static inline bool should_skip_kasan_poison(struct page *page, fpi_t fpi_flags)
+static inline bool deferred_pages_enabled(void)
 {
-	return (!IS_ENABLED(CONFIG_KASAN_GENERIC) &&
-		(fpi_flags & FPI_SKIP_KASAN_POISON)) ||
-	       PageSkipKASanPoison(page);
+	return false;
 }
 
 static inline bool early_page_uninitialised(unsigned long pfn)
@@ -496,8 +571,12 @@
 	bitidx = pfn_to_bitidx(page, pfn);
 	word_bitidx = bitidx / BITS_PER_LONG;
 	bitidx &= (BITS_PER_LONG-1);
-
-	word = bitmap[word_bitidx];
+	/*
+	 * This races, without locks, with set_pfnblock_flags_mask(). Ensure
+	 * a consistent read of the memory array, so that results, even though
+	 * racy, are not corrupted.
+	 */
+	word = READ_ONCE(bitmap[word_bitidx]);
 	return (word >> bitidx) & mask;
 }
 
@@ -514,6 +593,24 @@
 {
 	return __get_pfnblock_flags_mask(page, pfn, mask);
 }
+EXPORT_SYMBOL_GPL(get_pfnblock_flags_mask);
+
+int isolate_anon_lru_page(struct page *page)
+{
+	int ret;
+
+	if (!PageLRU(page) || !PageAnon(page))
+		return -EINVAL;
+
+	if (!get_page_unless_zero(page))
+		return -EINVAL;
+
+	ret = isolate_lru_page(page);
+	put_page(page);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(isolate_anon_lru_page);
 
 static __always_inline int get_pfnblock_migratetype(const struct page *page,
 					unsigned long pfn)
@@ -1066,6 +1163,13 @@
 	unsigned int max_order;
 	struct page *buddy;
 	bool to_tail;
+	bool bypass = false;
+
+	trace_android_vh_free_one_page_bypass(page, zone, order,
+		migratetype, (int)fpi_flags, &bypass);
+
+	if (bypass)
+		return;
 
 	max_order = min_t(unsigned int, MAX_ORDER - 1, pageblock_order);
 
@@ -1260,16 +1364,39 @@
 	return ret;
 }
 
-static void kernel_init_free_pages(struct page *page, int numpages, bool zero_tags)
+/*
+ * Skip KASAN memory poisoning when either:
+ *
+ * 1. Deferred memory initialization has not yet completed,
+ *    see the explanation below.
+ * 2. Skipping poisoning is requested via FPI_SKIP_KASAN_POISON,
+ *    see the comment next to it.
+ * 3. Skipping poisoning is requested via __GFP_SKIP_KASAN_POISON,
+ *    see the comment next to it.
+ *
+ * Poisoning pages during deferred memory init will greatly lengthen the
+ * process and cause problem in large memory systems as the deferred pages
+ * initialization is done with interrupt disabled.
+ *
+ * Assuming that there will be no reference to those newly initialized
+ * pages before they are ever allocated, this should have no effect on
+ * KASAN memory tracking as the poison will be properly inserted at page
+ * allocation time. The only corner case is when pages are allocated by
+ * on-demand allocation and then freed again before the deferred pages
+ * initialization is done, but this is not likely to happen.
+ */
+static inline bool should_skip_kasan_poison(struct page *page, fpi_t fpi_flags)
+{
+	return deferred_pages_enabled() ||
+	       (!IS_ENABLED(CONFIG_KASAN_GENERIC) &&
+		(fpi_flags & FPI_SKIP_KASAN_POISON)) ||
+	       PageSkipKASanPoison(page);
+}
+
+static void kernel_init_free_pages(struct page *page, int numpages)
 {
 	int i;
 
-	if (zero_tags) {
-		for (i = 0; i < numpages; i++)
-			tag_clear_highpage(page + i);
-		return;
-	}
-
 	/* s390's use of memset() could override KASAN redzones. */
 	kasan_disable_current();
 	for (i = 0; i < numpages; i++) {
@@ -1286,6 +1413,7 @@
 {
 	int bad = 0;
 	bool skip_kasan_poison = should_skip_kasan_poison(page, fpi_flags);
+	bool init = want_init_on_free();
 
 	VM_BUG_ON_PAGE(PageTail(page), page);
 
@@ -1299,6 +1427,7 @@
 		if (memcg_kmem_enabled() && PageMemcgKmem(page))
 			__memcg_kmem_uncharge_page(page, order);
 		reset_page_owner(page, order);
+		free_page_pinner(page, order);
 		return false;
 	}
 
@@ -1338,6 +1467,7 @@
 	page_cpupid_reset_last(page);
 	page->flags &= ~PAGE_FLAGS_CHECK_AT_PREP;
 	reset_page_owner(page, order);
+	free_page_pinner(page, order);
 
 	if (!PageHighMem(page)) {
 		debug_check_no_locks_freed(page_address(page),
@@ -1350,23 +1480,21 @@
 
 	/*
 	 * As memory initialization might be integrated into KASAN,
-	 * kasan_free_pages and kernel_init_free_pages must be
+	 * KASAN poisoning and memory initialization code must be
 	 * kept together to avoid discrepancies in behavior.
 	 *
 	 * With hardware tag-based KASAN, memory tags must be set before the
 	 * page becomes unavailable via debug_pagealloc or arch_free_page.
 	 */
-	if (kasan_has_integrated_init()) {
-		if (!skip_kasan_poison)
-			kasan_free_pages(page, order);
-	} else {
-		bool init = want_init_on_free();
+	if (!skip_kasan_poison) {
+		kasan_poison_pages(page, order, init);
 
-		if (init)
-			kernel_init_free_pages(page, 1 << order, false);
-		if (!skip_kasan_poison)
-			kasan_poison_pages(page, order, init);
+		/* Memory is already initialized if KASAN did it internally. */
+		if (kasan_has_integrated_init())
+			init = false;
 	}
+	if (init)
+		kernel_init_free_pages(page, 1 << order);
 
 	/*
 	 * arch_free_page() can make the page's contents inaccessible.  s390
@@ -1512,10 +1640,7 @@
 	}
 	pcp->count -= nr_freed;
 
-	/*
-	 * local_lock_irq held so equivalent to spin_lock_irqsave for
-	 * both PREEMPT_RT and non-PREEMPT_RT configurations.
-	 */
+	/* Caller must hold IRQ-safe pcp->lock so IRQs are disabled. */
 	spin_lock(&zone->lock);
 	isolated_pageblocks = has_isolate_pageblock(zone);
 
@@ -1639,11 +1764,15 @@
 	int migratetype;
 	unsigned long pfn = page_to_pfn(page);
 	struct zone *zone = page_zone(page);
+	bool skip_free_unref_page = false;
 
 	if (!free_pages_prepare(page, order, true, fpi_flags))
 		return;
 
 	migratetype = get_pfnblock_migratetype(page, pfn);
+	trace_android_vh_free_unref_page_bypass(page, order, migratetype, &skip_free_unref_page);
+	if (skip_free_unref_page)
+		return;
 
 	spin_lock_irqsave(&zone->lock, flags);
 	if (unlikely(has_isolate_pageblock(zone) ||
@@ -2385,9 +2514,43 @@
 	return false;
 }
 
+static inline bool should_skip_kasan_unpoison(gfp_t flags, bool init_tags)
+{
+	/* Don't skip if a software KASAN mode is enabled. */
+	if (IS_ENABLED(CONFIG_KASAN_GENERIC) ||
+	    IS_ENABLED(CONFIG_KASAN_SW_TAGS))
+		return false;
+
+	/* Skip, if hardware tag-based KASAN is not enabled. */
+	if (!kasan_hw_tags_enabled())
+		return true;
+
+	/*
+	 * With hardware tag-based KASAN enabled, skip if either:
+	 *
+	 * 1. Memory tags have already been cleared via tag_clear_highpage().
+	 * 2. Skipping has been requested via __GFP_SKIP_KASAN_UNPOISON.
+	 */
+	return init_tags || (flags & __GFP_SKIP_KASAN_UNPOISON);
+}
+
+static inline bool should_skip_init(gfp_t flags)
+{
+	/* Don't skip, if hardware tag-based KASAN is not enabled. */
+	if (!kasan_hw_tags_enabled())
+		return false;
+
+	/* For hardware tag-based KASAN, skip if requested. */
+	return (flags & __GFP_SKIP_ZERO);
+}
+
 inline void post_alloc_hook(struct page *page, unsigned int order,
 				gfp_t gfp_flags)
 {
+	bool init = !want_init_on_free() && want_init_on_alloc(gfp_flags) &&
+			!should_skip_init(gfp_flags);
+	bool init_tags = init && (gfp_flags & __GFP_ZEROTAGS);
+
 	set_page_private(page, 0);
 	set_page_refcounted(page);
 
@@ -2403,19 +2566,38 @@
 
 	/*
 	 * As memory initialization might be integrated into KASAN,
-	 * kasan_alloc_pages and kernel_init_free_pages must be
+	 * KASAN unpoisoning and memory initializion code must be
 	 * kept together to avoid discrepancies in behavior.
 	 */
-	if (kasan_has_integrated_init()) {
-		kasan_alloc_pages(page, order, gfp_flags);
-	} else {
-		bool init = !want_init_on_free() && want_init_on_alloc(gfp_flags);
 
-		kasan_unpoison_pages(page, order, init);
-		if (init)
-			kernel_init_free_pages(page, 1 << order,
-					       gfp_flags & __GFP_ZEROTAGS);
+	/*
+	 * If memory tags should be zeroed (which happens only when memory
+	 * should be initialized as well).
+	 */
+	if (init_tags) {
+		int i;
+
+		/* Initialize both memory and tags. */
+		for (i = 0; i != 1 << order; ++i)
+			tag_clear_highpage(page + i);
+
+		/* Note that memory is already initialized by the loop above. */
+		init = false;
 	}
+	if (!should_skip_kasan_unpoison(gfp_flags, init_tags)) {
+		/* Unpoison shadow memory or set memory tags. */
+		kasan_unpoison_pages(page, order, init);
+
+		/* Note that memory is already initialized by KASAN. */
+		if (kasan_has_integrated_init())
+			init = false;
+	}
+	/* If memory is still not initialized, do it now. */
+	if (init)
+		kernel_init_free_pages(page, 1 << order);
+	/* Propagate __GFP_SKIP_KASAN_POISON to page flags. */
+	if (kasan_hw_tags_enabled() && (gfp_flags & __GFP_SKIP_KASAN_POISON))
+		SetPageSkipKASanPoison(page);
 
 	set_page_owner(page, order, gfp_flags);
 }
@@ -2438,6 +2620,7 @@
 		set_page_pfmemalloc(page);
 	else
 		clear_page_pfmemalloc(page);
+	trace_android_vh_test_clear_look_around_ref(page);
 }
 
 /*
@@ -2817,6 +3000,7 @@
 	struct page *page;
 	int order;
 	bool ret;
+	bool skip_unreserve_highatomic = false;
 
 	for_each_zone_zonelist_nodemask(zone, z, zonelist, ac->highest_zoneidx,
 								ac->nodemask) {
@@ -2828,6 +3012,11 @@
 					pageblock_nr_pages)
 			continue;
 
+		trace_android_vh_unreserve_highatomic_bypass(force, zone,
+				&skip_unreserve_highatomic);
+		if (skip_unreserve_highatomic)
+			continue;
+
 		spin_lock_irqsave(&zone->lock, flags);
 		for (order = 0; order < MAX_ORDER; order++) {
 			struct free_area *area = &(zone->free_area[order]);
@@ -2975,38 +3164,55 @@
 __rmqueue(struct zone *zone, unsigned int order, int migratetype,
 						unsigned int alloc_flags)
 {
-	struct page *page;
+	struct page *page = NULL;
 
-	if (IS_ENABLED(CONFIG_CMA)) {
-		/*
-		 * Balance movable allocations between regular and CMA areas by
-		 * allocating from CMA when over half of the zone's free memory
-		 * is in the CMA area.
-		 */
-		if (alloc_flags & ALLOC_CMA &&
-		    zone_page_state(zone, NR_FREE_CMA_PAGES) >
-		    zone_page_state(zone, NR_FREE_PAGES) / 2) {
-			page = __rmqueue_cma_fallback(zone, order);
-			if (page)
-				goto out;
-		}
-	}
+	trace_android_vh_rmqueue_smallest_bypass(&page, zone, order, migratetype);
+	if (page)
+		return page;
+
 retry:
 	page = __rmqueue_smallest(zone, order, migratetype);
-	if (unlikely(!page)) {
-		if (alloc_flags & ALLOC_CMA)
-			page = __rmqueue_cma_fallback(zone, order);
 
-		if (!page && __rmqueue_fallback(zone, order, migratetype,
-								alloc_flags))
-			goto retry;
+	/*
+	 * let normal GFP_MOVABLE has chance to try MIGRATE_CMA
+	 */
+	if (unlikely(!page) && (migratetype == MIGRATE_MOVABLE)) {
+		bool try_cma = false;
+		trace_android_vh_rmqueue_cma_fallback(zone, order, &page);
+		trace_android_vh_try_cma_fallback(zone, order, &try_cma);
+		if (try_cma)
+			page = __rmqueue_cma_fallback(zone, order);
 	}
-out:
+
+	if (unlikely(!page) && __rmqueue_fallback(zone, order, migratetype,
+						  alloc_flags))
+		goto retry;
+
 	if (page)
 		trace_mm_page_alloc_zone_locked(page, order, migratetype);
 	return page;
 }
 
+#ifdef CONFIG_CMA
+static struct page *__rmqueue_cma(struct zone *zone, unsigned int order,
+				  int migratetype,
+				  unsigned int alloc_flags)
+{
+	struct page *page = __rmqueue_cma_fallback(zone, order);
+
+	if (page)
+		trace_mm_page_alloc_zone_locked(page, order, MIGRATE_CMA);
+	return page;
+}
+#else
+static inline struct page *__rmqueue_cma(struct zone *zone, unsigned int order,
+					 int migratetype,
+					 unsigned int alloc_flags)
+{
+	return NULL;
+}
+#endif
+
 /*
  * Obtain a specified number of elements from the buddy allocator, all under
  * a single hold of the lock, for efficiency.  Add them to the supplied list.
@@ -3018,14 +3224,18 @@
 {
 	int i, allocated = 0;
 
-	/*
-	 * local_lock_irq held so equivalent to spin_lock_irqsave for
-	 * both PREEMPT_RT and non-PREEMPT_RT configurations.
-	 */
+	/* Caller must hold IRQ-safe pcp->lock so IRQs are disabled. */
 	spin_lock(&zone->lock);
 	for (i = 0; i < count; ++i) {
-		struct page *page = __rmqueue(zone, order, migratetype,
-								alloc_flags);
+		struct page *page;
+
+		trace_android_rvh_rmqueue_bulk(NULL);
+		if (is_migrate_cma(migratetype))
+			page = __rmqueue_cma(zone, order, migratetype,
+					     alloc_flags);
+		else
+			page = __rmqueue(zone, order, migratetype, alloc_flags);
+
 		if (unlikely(page == NULL))
 			break;
 
@@ -3060,56 +3270,93 @@
 	return allocated;
 }
 
+/*
+ * Return the pcp list that corresponds to the migrate type if that list isn't
+ * empty.
+ * If the list is empty return NULL.
+ */
+static struct list_head *get_populated_pcp_list(struct zone *zone,
+			unsigned int order, struct per_cpu_pages *pcp,
+			int migratetype, unsigned int alloc_flags)
+{
+	struct list_head *list = &pcp->lists[order_to_pindex(migratetype, order)];
+
+	if (list_empty(list)) {
+		int batch = READ_ONCE(pcp->batch);
+		int alloced;
+
+		trace_android_vh_rmqueue_bulk_bypass(order, pcp, migratetype, list);
+		if (!list_empty(list))
+			return list;
+
+		/*
+		 * Scale batch relative to order if batch implies
+		 * free pages can be stored on the PCP. Batch can
+		 * be 1 for small zones or for boot pagesets which
+		 * should never store free pages as the pages may
+		 * belong to arbitrary zones.
+		 */
+		if (batch > 1)
+			batch = max(batch >> order, 2);
+		alloced = rmqueue_bulk(zone, order, batch, list, migratetype, alloc_flags);
+
+		pcp->count += alloced << order;
+		if (list_empty(list))
+			list = NULL;
+	}
+	return list;
+}
+
 #ifdef CONFIG_NUMA
 /*
  * Called from the vmstat counter updater to drain pagesets of this
  * currently executing processor on remote nodes after they have
  * expired.
- *
- * Note that this function must be called with the thread pinned to
- * a single processor.
  */
 void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
 {
-	unsigned long flags;
 	int to_drain, batch;
 
-	local_lock_irqsave(&pagesets.lock, flags);
 	batch = READ_ONCE(pcp->batch);
 	to_drain = min(pcp->count, batch);
-	if (to_drain > 0)
+	if (to_drain > 0) {
+		unsigned long flags;
+		struct per_cpu_pages_ext *pcp_ext = pcp_to_pcpext(pcp);
+
+		/*
+		 * free_pcppages_bulk expects IRQs disabled for zone->lock
+		 * so even though pcp->lock is not intended to be IRQ-safe,
+		 * it's needed in this context.
+		 */
+		spin_lock_irqsave(&pcp_ext->lock, flags);
 		free_pcppages_bulk(zone, to_drain, pcp);
-	local_unlock_irqrestore(&pagesets.lock, flags);
+		spin_unlock_irqrestore(&pcp_ext->lock, flags);
+	}
 }
 #endif
 
 /*
  * Drain pcplists of the indicated processor and zone.
- *
- * The processor must either be the current processor and the
- * thread pinned to the current processor or a processor that
- * is not online.
  */
 static void drain_pages_zone(unsigned int cpu, struct zone *zone)
 {
-	unsigned long flags;
 	struct per_cpu_pages *pcp;
+	struct per_cpu_pages_ext *pcp_ext;
 
-	local_lock_irqsave(&pagesets.lock, flags);
+	pcp_ext = per_cpu_ptr(zone_per_cpu_pageset(zone), cpu);
+	pcp = &pcp_ext->pcp;
+	if (pcp->count) {
+		unsigned long flags;
 
-	pcp = per_cpu_ptr(zone->per_cpu_pageset, cpu);
-	if (pcp->count)
+		/* See drain_zone_pages on why this is disabling IRQs */
+		spin_lock_irqsave(&pcp_ext->lock, flags);
 		free_pcppages_bulk(zone, pcp->count, pcp);
-
-	local_unlock_irqrestore(&pagesets.lock, flags);
+		spin_unlock_irqrestore(&pcp_ext->lock, flags);
+	}
 }
 
 /*
  * Drain pcplists of all zones on the indicated processor.
- *
- * The processor must either be the current processor and the
- * thread pinned to the current processor or a processor that
- * is not online.
  */
 static void drain_pages(unsigned int cpu)
 {
@@ -3122,9 +3369,6 @@
 
 /*
  * Spill all of this CPU's per-cpu pages back into the buddy allocator.
- *
- * The CPU has to be pinned. When zone parameter is non-NULL, spill just
- * the single zone's pages.
  */
 void drain_local_pages(struct zone *zone)
 {
@@ -3136,24 +3380,6 @@
 		drain_pages(cpu);
 }
 
-static void drain_local_pages_wq(struct work_struct *work)
-{
-	struct pcpu_drain *drain;
-
-	drain = container_of(work, struct pcpu_drain, work);
-
-	/*
-	 * drain_all_pages doesn't use proper cpu hotplug protection so
-	 * we can race with cpu offline when the WQ can move this from
-	 * a cpu pinned worker to an unbound one. We can operate on a different
-	 * cpu which is alright but we also have to make sure to not move to
-	 * a different one.
-	 */
-	preempt_disable();
-	drain_local_pages(drain->zone);
-	preempt_enable();
-}
-
 /*
  * The implementation of drain_all_pages(), exposing an extra parameter to
  * drain on all cpus.
@@ -3175,13 +3401,6 @@
 	static cpumask_t cpus_with_pcps;
 
 	/*
-	 * Make sure nobody triggers this path before mm_percpu_wq is fully
-	 * initialized.
-	 */
-	if (WARN_ON_ONCE(!mm_percpu_wq))
-		return;
-
-	/*
 	 * Do not drain if one is already in progress unless it's specific to
 	 * a zone. Such callers are primarily CMA and memory hotplug and need
 	 * the drain to be complete when the call returns.
@@ -3210,12 +3429,12 @@
 			 */
 			has_pcps = true;
 		} else if (zone) {
-			pcp = per_cpu_ptr(zone->per_cpu_pageset, cpu);
+			pcp = &per_cpu_ptr(zone_per_cpu_pageset(zone), cpu)->pcp;
 			if (pcp->count)
 				has_pcps = true;
 		} else {
 			for_each_populated_zone(z) {
-				pcp = per_cpu_ptr(z->per_cpu_pageset, cpu);
+				pcp = &per_cpu_ptr(zone_per_cpu_pageset(z), cpu)->pcp;
 				if (pcp->count) {
 					has_pcps = true;
 					break;
@@ -3230,14 +3449,11 @@
 	}
 
 	for_each_cpu(cpu, &cpus_with_pcps) {
-		struct pcpu_drain *drain = per_cpu_ptr(&pcpu_drain, cpu);
-
-		drain->zone = zone;
-		INIT_WORK(&drain->work, drain_local_pages_wq);
-		queue_work_on(cpu, mm_percpu_wq, &drain->work);
+		if (zone)
+			drain_pages_zone(cpu, zone);
+		else
+			drain_pages(cpu);
 	}
-	for_each_cpu(cpu, &cpus_with_pcps)
-		flush_work(&per_cpu_ptr(&pcpu_drain, cpu)->work);
 
 	mutex_unlock(&pcpu_drain_mutex);
 }
@@ -3246,8 +3462,6 @@
  * Spill all the per-cpu pages from all CPUs back into the buddy allocator.
  *
  * When zone parameter is non-NULL, spill just the single zone's pages.
- *
- * Note that this can be extremely slow as the draining happens in a workqueue.
  */
 void drain_all_pages(struct zone *zone)
 {
@@ -3363,16 +3577,14 @@
 	return min(READ_ONCE(pcp->batch) << 2, high);
 }
 
-static void free_unref_page_commit(struct page *page, unsigned long pfn,
+static void free_unref_page_commit(struct zone *zone, struct per_cpu_pages *pcp,
+				   struct page *page, unsigned long pfn,
 				   int migratetype, unsigned int order)
 {
-	struct zone *zone = page_zone(page);
-	struct per_cpu_pages *pcp;
 	int high;
 	int pindex;
 
 	__count_vm_event(PGFREE);
-	pcp = this_cpu_ptr(zone->per_cpu_pageset);
 	pindex = order_to_pindex(migratetype, order);
 	list_add(&page->lru, &pcp->lists[pindex]);
 	pcp->count += 1 << order;
@@ -3390,14 +3602,24 @@
 void free_unref_page(struct page *page, unsigned int order)
 {
 	unsigned long flags;
+	unsigned long __maybe_unused UP_flags;
+	struct per_cpu_pages *pcp;
+	struct zone *zone;
 	unsigned long pfn = page_to_pfn(page);
 	int migratetype;
+	bool pcp_skip_cma_pages = false;
+	bool skip_free_unref_page = false;
 
 	if (!free_unref_page_prepare(page, pfn, order))
 		return;
 
+	migratetype = get_pcppage_migratetype(page);
+	trace_android_vh_free_unref_page_bypass(page, order, migratetype, &skip_free_unref_page);
+	if (skip_free_unref_page)
+		return;
+
 	/*
-	 * We only track unmovable, reclaimable and movable on pcp lists.
+	 * We only track unmovable, reclaimable movable, and CMA on pcp lists.
 	 * Place ISOLATE pages on the isolated list because they are being
 	 * offlined but treat HIGHATOMIC as movable pages so we can get those
 	 * areas back if necessary. Otherwise, we may have to free
@@ -3405,16 +3627,26 @@
 	 */
 	migratetype = get_pcppage_migratetype(page);
 	if (unlikely(migratetype >= MIGRATE_PCPTYPES)) {
-		if (unlikely(is_migrate_isolate(migratetype))) {
+		trace_android_vh_pcplist_add_cma_pages_bypass(migratetype,
+			&pcp_skip_cma_pages);
+		if (unlikely(is_migrate_isolate(migratetype)) ||
+			pcp_skip_cma_pages) {
 			free_one_page(page_zone(page), page, pfn, order, migratetype, FPI_NONE);
 			return;
 		}
 		migratetype = MIGRATE_MOVABLE;
 	}
 
-	local_lock_irqsave(&pagesets.lock, flags);
-	free_unref_page_commit(page, pfn, migratetype, order);
-	local_unlock_irqrestore(&pagesets.lock, flags);
+	zone = page_zone(page);
+	pcp_trylock_prepare(UP_flags);
+	pcp = pcp_spin_trylock_irqsave(zone_per_cpu_pageset(zone), flags);
+	if (pcp) {
+		free_unref_page_commit(zone, pcp, page, pfn, migratetype, order);
+		pcp_spin_unlock_irqrestore(pcp, flags);
+	} else {
+		free_one_page(zone, page, pfn, order, migratetype, FPI_NONE);
+	}
+	pcp_trylock_finish(UP_flags);
 }
 
 /*
@@ -3423,9 +3655,12 @@
 void free_unref_page_list(struct list_head *list)
 {
 	struct page *page, *next;
+	struct per_cpu_pages *pcp = NULL;
+	struct zone *locked_zone = NULL;
 	unsigned long flags, pfn;
 	int batch_count = 0;
 	int migratetype;
+	bool pcp_skip_cma_pages = false;
 
 	/* Prepare pages for freeing */
 	list_for_each_entry_safe(page, next, list, lru) {
@@ -3440,7 +3675,10 @@
 		 * comment in free_unref_page.
 		 */
 		migratetype = get_pcppage_migratetype(page);
-		if (unlikely(is_migrate_isolate(migratetype))) {
+		trace_android_vh_pcplist_add_cma_pages_bypass(migratetype,
+			&pcp_skip_cma_pages);
+		if (unlikely(is_migrate_isolate(migratetype)) ||
+			pcp_skip_cma_pages) {
 			list_del(&page->lru);
 			free_one_page(page_zone(page), page, pfn, 0, migratetype, FPI_NONE);
 			continue;
@@ -3449,8 +3687,18 @@
 		set_page_private(page, pfn);
 	}
 
-	local_lock_irqsave(&pagesets.lock, flags);
 	list_for_each_entry_safe(page, next, list, lru) {
+		struct zone *zone = page_zone(page);
+
+		/* Different zone, different pcp lock. */
+		if (zone != locked_zone) {
+			if (pcp)
+				pcp_spin_unlock_irqrestore(pcp, flags);
+
+			locked_zone = zone;
+			pcp = pcp_spin_lock_irqsave(zone_per_cpu_pageset(locked_zone), flags);
+		}
+
 		pfn = page_private(page);
 		set_page_private(page, 0);
 
@@ -3463,19 +3711,21 @@
 			migratetype = MIGRATE_MOVABLE;
 
 		trace_mm_page_free_batched(page);
-		free_unref_page_commit(page, pfn, migratetype, 0);
+		free_unref_page_commit(zone, pcp, page, pfn, migratetype, 0);
 
 		/*
 		 * Guard against excessive IRQ disabled times when we get
 		 * a large list of pages to free.
 		 */
 		if (++batch_count == SWAP_CLUSTER_MAX) {
-			local_unlock_irqrestore(&pagesets.lock, flags);
+			pcp_spin_unlock_irqrestore(pcp, flags);
 			batch_count = 0;
-			local_lock_irqsave(&pagesets.lock, flags);
+			pcp = pcp_spin_lock_irqsave(zone_per_cpu_pageset(locked_zone), flags);
 		}
 	}
-	local_unlock_irqrestore(&pagesets.lock, flags);
+
+	if (pcp)
+		pcp_spin_unlock_irqrestore(pcp, flags);
 }
 
 /*
@@ -3597,36 +3847,126 @@
 #endif
 }
 
+#ifdef CONFIG_CMA
+/*
+ * GFP_MOVABLE allocation could drain UNMOVABLE & RECLAIMABLE page blocks via
+ * the help of CMA which makes GFP_KERNEL failed. Checking if zone_watermark_ok
+ * again without ALLOC_CMA to see if to use CMA first.
+ */
+static bool use_cma_first(struct zone *zone, unsigned int order, unsigned int alloc_flags)
+{
+	unsigned long watermark;
+	bool cma_first = false;
+
+	watermark = wmark_pages(zone, alloc_flags & ALLOC_WMARK_MASK);
+	/* check if GFP_MOVABLE pass previous zone_watermark_ok via the help of CMA */
+	if (zone_watermark_ok(zone, order, watermark, 0, alloc_flags & (~ALLOC_CMA))) {
+		/*
+		 * Balance movable allocations between regular and CMA areas by
+		 * allocating from CMA when over half of the zone's free memory
+		 * is in the CMA area.
+		 */
+		cma_first = (zone_page_state(zone, NR_FREE_CMA_PAGES) >
+				zone_page_state(zone, NR_FREE_PAGES) / 2);
+	} else {
+		/*
+		 * watermark failed means UNMOVABLE & RECLAIMBLE is not enough
+		 * now, we should use cma first to keep them stay around the
+		 * corresponding watermark
+		 */
+		cma_first = true;
+	}
+	return cma_first;
+}
+#else
+static bool use_cma_first(struct zone *zone, unsigned int order, unsigned int alloc_flags)
+{
+	return false;
+}
+#endif
+
+static __always_inline
+struct page *rmqueue_buddy(struct zone *preferred_zone, struct zone *zone,
+			   unsigned int order, unsigned int alloc_flags,
+			   int migratetype)
+{
+	struct page *page;
+	unsigned long flags;
+
+	do {
+		page = NULL;
+		spin_lock_irqsave(&zone->lock, flags);
+		/*
+		 * order-0 request can reach here when the pcplist is skipped
+		 * due to non-CMA allocation context. HIGHATOMIC area is
+		 * reserved for high-order atomic allocation, so order-0
+		 * request should skip it.
+		 */
+		if (order > 0 && alloc_flags & ALLOC_HARDER) {
+			page = __rmqueue_smallest(zone, order, MIGRATE_HIGHATOMIC);
+			if (page)
+				trace_mm_page_alloc_zone_locked(page, order, migratetype);
+		}
+		if (!page) {
+			/*
+			 * Balance movable allocations between regular and CMA areas by
+			 * allocating from CMA base on judging zone_watermark_ok again
+			 * to see if the latest check got pass via the help of CMA
+			 */
+			if (alloc_flags & ALLOC_CMA) {
+				bool use_cma_first_check = false;
+				bool try_cma;
+
+				trace_android_vh_use_cma_first_check(&use_cma_first_check);
+				try_cma = use_cma_first_check ?
+					use_cma_first(zone, order, alloc_flags) :
+					migratetype == MIGRATE_MOVABLE;
+				if (try_cma)
+					page = __rmqueue_cma(zone, order, migratetype,
+							alloc_flags);
+			}
+			if (!page)
+				page = __rmqueue(zone, order, migratetype,
+						alloc_flags);
+		}
+		if (!page) {
+			spin_unlock_irqrestore(&zone->lock, flags);
+			return NULL;
+		}
+		__mod_zone_freepage_state(zone, -(1 << order),
+					  get_pcppage_migratetype(page));
+		spin_unlock_irqrestore(&zone->lock, flags);
+	} while (check_new_pages(page, order));
+
+	__count_zid_vm_events(PGALLOC, page_zonenum(page), 1 << order);
+	zone_statistics(preferred_zone, zone, 1);
+
+	return page;
+}
+
 /* Remove page from the per-cpu list, caller must protect the list */
 static inline
 struct page *__rmqueue_pcplist(struct zone *zone, unsigned int order,
 			int migratetype,
 			unsigned int alloc_flags,
 			struct per_cpu_pages *pcp,
-			struct list_head *list)
+			gfp_t gfp_flags)
 {
-	struct page *page;
+	struct page *page = NULL;
+	struct list_head *list = NULL;
 
 	do {
-		if (list_empty(list)) {
-			int batch = READ_ONCE(pcp->batch);
-			int alloced;
-
+		/* First try to get CMA pages */
+		if (migratetype == MIGRATE_MOVABLE && alloc_flags & ALLOC_CMA)
+			list = get_populated_pcp_list(zone, order, pcp, get_cma_migrate_type(),
+						      alloc_flags);
+		if (list == NULL) {
 			/*
-			 * Scale batch relative to order if batch implies
-			 * free pages can be stored on the PCP. Batch can
-			 * be 1 for small zones or for boot pagesets which
-			 * should never store free pages as the pages may
-			 * belong to arbitrary zones.
+			 * Either CMA is not suitable or there are no
+			 * free CMA pages.
 			 */
-			if (batch > 1)
-				batch = max(batch >> order, 2);
-			alloced = rmqueue_bulk(zone, order,
-					batch, list,
-					migratetype, alloc_flags);
-
-			pcp->count += alloced << order;
-			if (unlikely(list_empty(list)))
+			list = get_populated_pcp_list(zone, order, pcp, migratetype, alloc_flags);
+			if (unlikely(list == NULL) || unlikely(list_empty(list)))
 				return NULL;
 		}
 
@@ -3645,22 +3985,30 @@
 			unsigned int alloc_flags)
 {
 	struct per_cpu_pages *pcp;
-	struct list_head *list;
 	struct page *page;
 	unsigned long flags;
+	unsigned long __maybe_unused UP_flags;
 
-	local_lock_irqsave(&pagesets.lock, flags);
+	/*
+	 * spin_trylock may fail due to a parallel drain. In the future, the
+	 * trylock will also protect against IRQ reentrancy.
+	 */
+	pcp_trylock_prepare(UP_flags);
+	pcp = pcp_spin_trylock_irqsave(zone_per_cpu_pageset(zone), flags);
+	if (!pcp) {
+		pcp_trylock_finish(UP_flags);
+		return NULL;
+	}
 
 	/*
 	 * On allocation, reduce the number of pages that are batch freed.
 	 * See nr_pcp_free() where free_factor is increased for subsequent
 	 * frees.
 	 */
-	pcp = this_cpu_ptr(zone->per_cpu_pageset);
 	pcp->free_factor >>= 1;
-	list = &pcp->lists[order_to_pindex(migratetype, order)];
-	page = __rmqueue_pcplist(zone, order, migratetype, alloc_flags, pcp, list);
-	local_unlock_irqrestore(&pagesets.lock, flags);
+	page = __rmqueue_pcplist(zone, order, migratetype, alloc_flags, pcp, gfp_flags);
+	pcp_spin_unlock_irqrestore(pcp, flags);
+	pcp_trylock_finish(UP_flags);
 	if (page) {
 		__count_zid_vm_events(PGALLOC, page_zonenum(page), 1);
 		zone_statistics(preferred_zone, zone, 1);
@@ -3677,20 +4025,13 @@
 			gfp_t gfp_flags, unsigned int alloc_flags,
 			int migratetype)
 {
-	unsigned long flags;
 	struct page *page;
 
 	if (likely(pcp_allowed_order(order))) {
-		/*
-		 * MIGRATE_MOVABLE pcplist could have the pages on CMA area and
-		 * we need to skip it when CMA area isn't allowed.
-		 */
-		if (!IS_ENABLED(CONFIG_CMA) || alloc_flags & ALLOC_CMA ||
-				migratetype != MIGRATE_MOVABLE) {
-			page = rmqueue_pcplist(preferred_zone, zone, order,
-					gfp_flags, migratetype, alloc_flags);
+		page = rmqueue_pcplist(preferred_zone, zone, order,
+				gfp_flags, migratetype, alloc_flags);
+		if (likely(page))
 			goto out;
-		}
 	}
 
 	/*
@@ -3698,47 +4039,20 @@
 	 * allocate greater than order-1 page units with __GFP_NOFAIL.
 	 */
 	WARN_ON_ONCE((gfp_flags & __GFP_NOFAIL) && (order > 1));
-	spin_lock_irqsave(&zone->lock, flags);
-
-	do {
-		page = NULL;
-		/*
-		 * order-0 request can reach here when the pcplist is skipped
-		 * due to non-CMA allocation context. HIGHATOMIC area is
-		 * reserved for high-order atomic allocation, so order-0
-		 * request should skip it.
-		 */
-		if (order > 0 && alloc_flags & ALLOC_HARDER) {
-			page = __rmqueue_smallest(zone, order, MIGRATE_HIGHATOMIC);
-			if (page)
-				trace_mm_page_alloc_zone_locked(page, order, migratetype);
-		}
-		if (!page)
-			page = __rmqueue(zone, order, migratetype, alloc_flags);
-	} while (page && check_new_pages(page, order));
-	if (!page)
-		goto failed;
-
-	__mod_zone_freepage_state(zone, -(1 << order),
-				  get_pcppage_migratetype(page));
-	spin_unlock_irqrestore(&zone->lock, flags);
-
-	__count_zid_vm_events(PGALLOC, page_zonenum(page), 1 << order);
-	zone_statistics(preferred_zone, zone, 1);
+	page = rmqueue_buddy(preferred_zone, zone, order, alloc_flags,
+							migratetype);
+	trace_android_vh_rmqueue(preferred_zone, zone, order,
+			gfp_flags, alloc_flags, migratetype);
 
 out:
 	/* Separate test+clear to avoid unnecessary atomics */
-	if (test_bit(ZONE_BOOSTED_WATERMARK, &zone->flags)) {
+	if (unlikely(test_bit(ZONE_BOOSTED_WATERMARK, &zone->flags))) {
 		clear_bit(ZONE_BOOSTED_WATERMARK, &zone->flags);
 		wakeup_kswapd(zone, 0, 0, zone_idx(zone));
 	}
 
 	VM_BUG_ON_PAGE(page && bad_range(zone, page), page);
 	return page;
-
-failed:
-	spin_unlock_irqrestore(&zone->lock, flags);
-	return NULL;
 }
 
 #ifdef CONFIG_FAIL_PAGE_ALLOC
@@ -3892,6 +4206,14 @@
 			continue;
 
 		for (mt = 0; mt < MIGRATE_PCPTYPES; mt++) {
+#ifdef CONFIG_CMA
+			/*
+			 * Note that this check is needed only
+			 * when MIGRATE_CMA < MIGRATE_PCPTYPES.
+			 */
+			if (mt == MIGRATE_CMA)
+				continue;
+#endif
 			if (!free_area_empty(area, mt))
 				return true;
 		}
@@ -4029,8 +4351,9 @@
 						  unsigned int alloc_flags)
 {
 #ifdef CONFIG_CMA
-	if (gfp_migratetype(gfp_mask) == MIGRATE_MOVABLE)
+	if (gfp_migratetype(gfp_mask) == MIGRATE_MOVABLE && gfp_mask & __GFP_CMA)
 		alloc_flags |= ALLOC_CMA;
+	trace_android_vh_alloc_flags_cma_adjust(gfp_mask, &alloc_flags);
 #endif
 	return alloc_flags;
 }
@@ -4611,13 +4934,12 @@
 					const struct alloc_context *ac)
 {
 	unsigned int noreclaim_flag;
-	unsigned long pflags, progress;
+	unsigned long progress;
 
 	cond_resched();
 
 	/* We now go into synchronous reclaim */
 	cpuset_memory_pressure_bump();
-	psi_memstall_enter(&pflags);
 	fs_reclaim_acquire(gfp_mask);
 	noreclaim_flag = memalloc_noreclaim_save();
 
@@ -4626,7 +4948,6 @@
 
 	memalloc_noreclaim_restore(noreclaim_flag);
 	fs_reclaim_release(gfp_mask);
-	psi_memstall_leave(&pflags);
 
 	cond_resched();
 
@@ -4640,11 +4961,14 @@
 		unsigned long *did_some_progress)
 {
 	struct page *page = NULL;
+	unsigned long pflags;
 	bool drained = false;
+	bool skip_pcp_drain = false;
 
+	psi_memstall_enter(&pflags);
 	*did_some_progress = __perform_reclaim(gfp_mask, order, ac);
 	if (unlikely(!(*did_some_progress)))
-		return NULL;
+		goto out;
 
 retry:
 	page = get_page_from_freelist(gfp_mask, order, alloc_flags, ac);
@@ -4656,10 +4980,15 @@
 	 */
 	if (!page && !drained) {
 		unreserve_highatomic_pageblock(ac, false);
-		drain_all_pages(NULL);
+		trace_android_vh_drain_all_pages_bypass(gfp_mask, order,
+			alloc_flags, ac->migratetype, *did_some_progress, &skip_pcp_drain);
+		if (!skip_pcp_drain)
+			drain_all_pages(NULL);
 		drained = true;
 		goto retry;
 	}
+out:
+	psi_memstall_leave(&pflags);
 
 	return page;
 }
@@ -4914,7 +5243,8 @@
 	unsigned int cpuset_mems_cookie;
 	unsigned int zonelist_iter_cookie;
 	int reserve_flags;
-
+	unsigned long alloc_start = jiffies;
+	bool should_alloc_retry = false;
 	/*
 	 * We also sanity check to catch abuse of atomic reserves being used by
 	 * callers that are not in atomic context.
@@ -5047,6 +5377,17 @@
 	if (current->flags & PF_MEMALLOC)
 		goto nopage;
 
+	trace_android_vh_alloc_pages_reclaim_bypass(gfp_mask, order,
+		alloc_flags, ac->migratetype, &page);
+
+	if (page)
+		goto got_pg;
+
+	trace_android_vh_should_alloc_pages_retry(gfp_mask, order, &alloc_flags,
+		ac->migratetype, ac->preferred_zoneref->zone, &page, &should_alloc_retry);
+	if (should_alloc_retry)
+		goto retry;
+
 	/* Try direct reclaim and then allocating */
 	page = __alloc_pages_direct_reclaim(gfp_mask, order, alloc_flags, ac,
 							&did_some_progress);
@@ -5162,9 +5503,15 @@
 		goto retry;
 	}
 fail:
+	trace_android_vh_alloc_pages_failure_bypass(gfp_mask, order,
+		alloc_flags, ac->migratetype, &page);
+	if (page)
+		goto got_pg;
+
 	warn_alloc(gfp_mask, ac->nodemask,
 			"page allocation failure: order:%u", order);
 got_pg:
+	trace_android_vh_alloc_pages_slowpath(gfp_mask, order, alloc_start);
 	return page;
 }
 
@@ -5241,10 +5588,10 @@
 {
 	struct page *page;
 	unsigned long flags;
+	unsigned long __maybe_unused UP_flags;
 	struct zone *zone;
 	struct zoneref *z;
 	struct per_cpu_pages *pcp;
-	struct list_head *pcp_list;
 	struct alloc_context ac;
 	gfp_t alloc_gfp;
 	unsigned int alloc_flags = ALLOC_WMARK_LOW;
@@ -5321,11 +5668,13 @@
 	if (unlikely(!zone))
 		goto failed;
 
-	/* Attempt the batch allocation */
-	local_lock_irqsave(&pagesets.lock, flags);
-	pcp = this_cpu_ptr(zone->per_cpu_pageset);
-	pcp_list = &pcp->lists[order_to_pindex(ac.migratetype, 0)];
+	/* Is a parallel drain in progress? */
+	pcp_trylock_prepare(UP_flags);
+	pcp = pcp_spin_trylock_irqsave(zone_per_cpu_pageset(zone), flags);
+	if (!pcp)
+		goto failed_irq;
 
+	/* Attempt the batch allocation */
 	while (nr_populated < nr_pages) {
 
 		/* Skip existing pages */
@@ -5335,11 +5684,13 @@
 		}
 
 		page = __rmqueue_pcplist(zone, 0, ac.migratetype, alloc_flags,
-								pcp, pcp_list);
+								pcp, alloc_gfp);
 		if (unlikely(!page)) {
 			/* Try and allocate at least one page */
-			if (!nr_account)
+			if (!nr_account) {
+				pcp_spin_unlock_irqrestore(pcp, flags);
 				goto failed_irq;
+			}
 			break;
 		}
 		nr_account++;
@@ -5352,7 +5703,8 @@
 		nr_populated++;
 	}
 
-	local_unlock_irqrestore(&pagesets.lock, flags);
+	pcp_spin_unlock_irqrestore(pcp, flags);
+	pcp_trylock_finish(UP_flags);
 
 	__count_zid_vm_events(PGALLOC, zone_idx(zone), nr_account);
 	zone_statistics(ac.preferred_zoneref->zone, zone, nr_account);
@@ -5361,7 +5713,7 @@
 	return nr_populated;
 
 failed_irq:
-	local_unlock_irqrestore(&pagesets.lock, flags);
+	pcp_trylock_finish(UP_flags);
 
 failed:
 	page = __alloc_pages(gfp, 0, preferred_nid, nodemask);
@@ -5941,7 +6293,7 @@
 			continue;
 
 		for_each_online_cpu(cpu)
-			free_pcp += per_cpu_ptr(zone->per_cpu_pageset, cpu)->count;
+			free_pcp += per_cpu_ptr(zone_per_cpu_pageset(zone), cpu)->pcp.count;
 	}
 
 	printk("active_anon:%lu inactive_anon:%lu isolated_anon:%lu\n"
@@ -5971,6 +6323,7 @@
 		free_pcp,
 		global_zone_page_state(NR_FREE_CMA_PAGES));
 
+	trace_android_vh_show_mapcount_pages(NULL);
 	for_each_online_pgdat(pgdat) {
 		if (show_mem_node_skip(filter, pgdat->node_id, nodemask))
 			continue;
@@ -6035,7 +6388,7 @@
 
 		free_pcp = 0;
 		for_each_online_cpu(cpu)
-			free_pcp += per_cpu_ptr(zone->per_cpu_pageset, cpu)->count;
+			free_pcp += per_cpu_ptr(zone_per_cpu_pageset(zone), cpu)->pcp.count;
 
 		show_node(zone);
 		printk(KERN_CONT
@@ -6076,7 +6429,7 @@
 			K(zone_page_state(zone, NR_MLOCK)),
 			K(zone_page_state(zone, NR_BOUNCE)),
 			K(free_pcp),
-			K(this_cpu_read(zone->per_cpu_pageset->count)),
+			K(this_cpu_read((zone_per_cpu_pageset(zone))->pcp.count)),
 			K(zone_page_state(zone, NR_FREE_CMA_PAGES)));
 		printk("lowmem_reserve[]:");
 		for (i = 0; i < MAX_NR_ZONES; i++)
@@ -6407,7 +6760,7 @@
 /* These effectively disable the pcplists in the boot pageset completely */
 #define BOOT_PAGESET_HIGH	0
 #define BOOT_PAGESET_BATCH	1
-static DEFINE_PER_CPU(struct per_cpu_pages, boot_pageset);
+static DEFINE_PER_CPU(struct per_cpu_pages_ext, boot_pageset);
 static DEFINE_PER_CPU(struct per_cpu_zonestat, boot_zonestats);
 static DEFINE_PER_CPU(struct per_cpu_nodestat, boot_nodestats);
 
@@ -6490,7 +6843,7 @@
 	 * (a chicken-egg dilemma).
 	 */
 	for_each_possible_cpu(cpu)
-		per_cpu_pages_init(&per_cpu(boot_pageset, cpu), &per_cpu(boot_zonestats, cpu));
+		per_cpu_pages_init(&per_cpu(boot_pageset, cpu).pcp, &per_cpu(boot_zonestats, cpu));
 
 	mminit_verify_zonelist();
 	cpuset_init_current_mems_allowed();
@@ -6950,11 +7303,13 @@
 
 static void per_cpu_pages_init(struct per_cpu_pages *pcp, struct per_cpu_zonestat *pzstats)
 {
+	struct per_cpu_pages_ext *pcp_ext = pcp_to_pcpext(pcp);
 	int pindex;
 
 	memset(pcp, 0, sizeof(*pcp));
 	memset(pzstats, 0, sizeof(*pzstats));
 
+	spin_lock_init(&pcp_ext->lock);
 	for (pindex = 0; pindex < NR_PCP_LISTS; pindex++)
 		INIT_LIST_HEAD(&pcp->lists[pindex]);
 
@@ -6976,7 +7331,7 @@
 	int cpu;
 
 	for_each_possible_cpu(cpu) {
-		pcp = per_cpu_ptr(zone->per_cpu_pageset, cpu);
+		pcp = &per_cpu_ptr(zone_per_cpu_pageset(zone), cpu)->pcp;
 		pageset_update(pcp, high, batch);
 	}
 }
@@ -7010,12 +7365,13 @@
 	if (sizeof(struct per_cpu_zonestat) > 0)
 		zone->per_cpu_zonestats = alloc_percpu(struct per_cpu_zonestat);
 
-	zone->per_cpu_pageset = alloc_percpu(struct per_cpu_pages);
+	zone->per_cpu_pageset = (struct per_cpu_pages __percpu *)
+					alloc_percpu(struct per_cpu_pages_ext);
 	for_each_possible_cpu(cpu) {
 		struct per_cpu_pages *pcp;
 		struct per_cpu_zonestat *pzstats;
 
-		pcp = per_cpu_ptr(zone->per_cpu_pageset, cpu);
+		pcp = &per_cpu_ptr(zone_per_cpu_pageset(zone), cpu)->pcp;
 		pzstats = per_cpu_ptr(zone->per_cpu_zonestats, cpu);
 		per_cpu_pages_init(pcp, pzstats);
 	}
@@ -7062,7 +7418,7 @@
 	 * relies on the ability of the linker to provide the
 	 * offset of a (static) per cpu variable into the per cpu area.
 	 */
-	zone->per_cpu_pageset = &boot_pageset;
+	zone->per_cpu_pageset = (struct per_cpu_pages __percpu *)&boot_pageset;
 	zone->per_cpu_zonestats = &boot_zonestats;
 	zone->pageset_high = BOOT_PAGESET_HIGH;
 	zone->pageset_batch = BOOT_PAGESET_BATCH;
@@ -8535,7 +8891,7 @@
  * 8192MB:	11584k
  * 16384MB:	16384k
  */
-int __meminit init_per_zone_wmark_min(void)
+void calculate_min_free_kbytes(void)
 {
 	unsigned long lowmem_kbytes;
 	int new_min_free_kbytes;
@@ -8553,6 +8909,11 @@
 		pr_warn("min_free_kbytes is not updated to %d because user defined value %d is preferred\n",
 				new_min_free_kbytes, user_min_free_kbytes);
 	}
+}
+
+int __meminit init_per_zone_wmark_min(void)
+{
+	calculate_min_free_kbytes();
 	setup_per_zone_wmarks();
 	refresh_zone_stat_thresholds();
 	setup_per_zone_lowmem_reserve();
@@ -9070,8 +9431,17 @@
 
 	lru_cache_enable();
 	if (ret < 0) {
-		if (ret == -EBUSY)
+		if (ret == -EBUSY) {
+			struct page *page;
+
 			alloc_contig_dump_pages(&cc->migratepages);
+			list_for_each_entry(page, &cc->migratepages, lru) {
+				/* The page will be freed by putback_movable_pages soon */
+				if (page_count(page) == 1)
+					continue;
+				page_pinner_failure_detect(page);
+			}
+		}
 		putback_movable_pages(&cc->migratepages);
 		return ret;
 	}
@@ -9105,6 +9475,7 @@
 	unsigned long outer_start, outer_end;
 	unsigned int order;
 	int ret = 0;
+	bool skip_drain_all_pages = false;
 
 	struct compact_control cc = {
 		.nr_migratepages = 0,
@@ -9147,7 +9518,10 @@
 	if (ret)
 		return ret;
 
-	drain_all_pages(cc.zone);
+	trace_android_vh_cma_drain_all_pages_bypass(migratetype,
+						&skip_drain_all_pages);
+	if (!skip_drain_all_pages)
+		drain_all_pages(cc.zone);
 
 	/*
 	 * In case of -EBUSY, we'd like to know which page causes problem.
@@ -9380,14 +9754,14 @@
 	int cpu;
 	struct per_cpu_zonestat *pzstats;
 
-	if (zone->per_cpu_pageset != &boot_pageset) {
+	if (zone_per_cpu_pageset(zone) != &boot_pageset) {
 		for_each_online_cpu(cpu) {
 			pzstats = per_cpu_ptr(zone->per_cpu_zonestats, cpu);
 			drain_zonestat(zone, pzstats);
 		}
 		free_percpu(zone->per_cpu_pageset);
 		free_percpu(zone->per_cpu_zonestats);
-		zone->per_cpu_pageset = &boot_pageset;
+		zone->per_cpu_pageset = (struct per_cpu_pages __percpu *)&boot_pageset;
 		zone->per_cpu_zonestats = &boot_zonestats;
 	}
 }
diff --git a/mm/page_counter.c b/mm/page_counter.c
index 7d83641..036d57a 100644
--- a/mm/page_counter.c
+++ b/mm/page_counter.c
@@ -12,6 +12,7 @@
 #include <linux/sched.h>
 #include <linux/bug.h>
 #include <asm/page.h>
+#include <trace/hooks/cgroup.h>
 
 static void propagate_protected_usage(struct page_counter *c,
 				      unsigned long usage)
@@ -83,6 +84,7 @@
 		 */
 		if (new > READ_ONCE(c->watermark))
 			WRITE_ONCE(c->watermark, new);
+		trace_android_rvh_update_watermark(new, c);
 	}
 }
 
@@ -137,6 +139,7 @@
 		 */
 		if (new > READ_ONCE(c->watermark))
 			WRITE_ONCE(c->watermark, new);
+		trace_android_rvh_update_watermark(new, c);
 	}
 	return true;
 
diff --git a/mm/page_ext.c b/mm/page_ext.c
index 2a52fd9..39daf13 100644
--- a/mm/page_ext.c
+++ b/mm/page_ext.c
@@ -7,8 +7,9 @@
 #include <linux/vmalloc.h>
 #include <linux/kmemleak.h>
 #include <linux/page_owner.h>
+#include <linux/page_pinner.h>
 #include <linux/page_idle.h>
-
+#include <linux/rcupdate.h>
 /*
  * struct page extension
  *
@@ -58,6 +59,10 @@
  * can utilize this callback to initialize the state of it correctly.
  */
 
+#ifdef CONFIG_SPARSEMEM
+#define PAGE_EXT_INVALID       (0x1)
+#endif
+
 #if defined(CONFIG_PAGE_IDLE_FLAG) && !defined(CONFIG_64BIT)
 static bool need_page_idle(void)
 {
@@ -75,6 +80,9 @@
 #if defined(CONFIG_PAGE_IDLE_FLAG) && !defined(CONFIG_64BIT)
 	&page_idle_ops,
 #endif
+#ifdef CONFIG_PAGE_PINNER
+	&page_pinner_ops,
+#endif
 };
 
 unsigned long page_ext_size = sizeof(struct page_ext);
@@ -121,8 +129,50 @@
 	return base + page_ext_size * index;
 }
 
-#ifndef CONFIG_SPARSEMEM
+/**
+ * page_ext_get() - Get the extended information for a page.
+ * @page: The page we're interested in.
+ *
+ * Ensures that the page_ext will remain valid until page_ext_put()
+ * is called.
+ *
+ * Return: NULL if no page_ext exists for this page.
+ * Context: Any context.  Caller may not sleep until they have called
+ * page_ext_put().
+ */
+struct page_ext *page_ext_get(struct page *page)
+{
+	struct page_ext *page_ext;
 
+	rcu_read_lock();
+	page_ext = lookup_page_ext(page);
+	if (!page_ext) {
+		rcu_read_unlock();
+		return NULL;
+	}
+
+	return page_ext;
+}
+
+/**
+ * page_ext_put() - Working with page extended information is done.
+ * @page_ext: Page extended information received from page_ext_get().
+ *
+ * The page extended information of the page may not be valid after this
+ * function is called.
+ *
+ * Return: None.
+ * Context: Any context with corresponding page_ext_get() is called.
+ */
+void page_ext_put(struct page_ext *page_ext)
+{
+	if (unlikely(!page_ext))
+		return;
+
+	rcu_read_unlock();
+}
+
+#if !defined(CONFIG_SPARSEMEM)
 
 void __meminit pgdat_page_ext_init(struct pglist_data *pgdat)
 {
@@ -135,6 +185,7 @@
 	unsigned long index;
 	struct page_ext *base;
 
+	WARN_ON_ONCE(!rcu_read_lock_held());
 	base = NODE_DATA(page_to_nid(page))->node_page_ext;
 	/*
 	 * The sanity checks the page allocator does upon freeing a
@@ -148,6 +199,7 @@
 					MAX_ORDER_NR_PAGES);
 	return get_entry(base, index);
 }
+EXPORT_SYMBOL_NS_GPL(lookup_page_ext, MINIDUMP);
 
 static int __init alloc_node_page_ext(int nid)
 {
@@ -202,21 +254,29 @@
 }
 
 #else /* CONFIG_FLATMEM */
+static bool page_ext_invalid(struct page_ext *page_ext)
+{
+	return !page_ext || (((unsigned long)page_ext & PAGE_EXT_INVALID) == PAGE_EXT_INVALID);
+}
 
 struct page_ext *lookup_page_ext(const struct page *page)
 {
 	unsigned long pfn = page_to_pfn(page);
 	struct mem_section *section = __pfn_to_section(pfn);
+	struct page_ext *page_ext = READ_ONCE(section->page_ext);
+
+	WARN_ON_ONCE(!rcu_read_lock_held());
 	/*
 	 * The sanity checks the page allocator does upon freeing a
 	 * page can reach here before the page_ext arrays are
 	 * allocated when feeding a range of pages to the allocator
 	 * for the first time during bootup or memory hotplug.
 	 */
-	if (!section->page_ext)
+	if (page_ext_invalid(page_ext))
 		return NULL;
-	return get_entry(section->page_ext, pfn);
+	return get_entry(page_ext, pfn);
 }
+EXPORT_SYMBOL_NS_GPL(lookup_page_ext, MINIDUMP);
 
 static void *__meminit alloc_page_ext(size_t size, int nid)
 {
@@ -294,9 +354,30 @@
 	ms = __pfn_to_section(pfn);
 	if (!ms || !ms->page_ext)
 		return;
-	base = get_entry(ms->page_ext, pfn);
+
+	base = READ_ONCE(ms->page_ext);
+	/*
+	 * page_ext here can be valid while doing the roll back
+	 * operation in online_page_ext().
+	 */
+	if (page_ext_invalid(base))
+		base = (void *)base - PAGE_EXT_INVALID;
+	WRITE_ONCE(ms->page_ext, NULL);
+
+	base = get_entry(base, pfn);
 	free_page_ext(base);
-	ms->page_ext = NULL;
+}
+
+static void __invalidate_page_ext(unsigned long pfn)
+{
+	struct mem_section *ms;
+	void *val;
+
+	ms = __pfn_to_section(pfn);
+	if (!ms || !ms->page_ext)
+		return;
+	val = (void *)ms->page_ext + PAGE_EXT_INVALID;
+	WRITE_ONCE(ms->page_ext, val);
 }
 
 static int __meminit online_page_ext(unsigned long start_pfn,
@@ -339,6 +420,20 @@
 	start = SECTION_ALIGN_DOWN(start_pfn);
 	end = SECTION_ALIGN_UP(start_pfn + nr_pages);
 
+	/*
+	 * Freeing of page_ext is done in 3 steps to avoid
+	 * use-after-free of it:
+	 * 1) Traverse all the sections and mark their page_ext
+	 *    as invalid.
+	 * 2) Wait for all the existing users of page_ext who
+	 *    started before invalidation to finish.
+	 * 3) Free the page_ext.
+	 */
+	for (pfn = start; pfn < end; pfn += PAGES_PER_SECTION)
+		__invalidate_page_ext(pfn);
+
+	synchronize_rcu();
+
 	for (pfn = start; pfn < end; pfn += PAGES_PER_SECTION)
 		__free_page_ext(pfn);
 	return 0;
diff --git a/mm/page_idle.c b/mm/page_idle.c
index edead6a..9f6e8b1 100644
--- a/mm/page_idle.c
+++ b/mm/page_idle.c
@@ -88,10 +88,10 @@
 static void page_idle_clear_pte_refs(struct page *page)
 {
 	/*
-	 * Since rwc.arg is unused, rwc is effectively immutable, so we
-	 * can make it static const to save some cycles and stack.
+	 * Since rwc.try_lock is unused, rwc is effectively immutable, so we
+	 * can make it static to save some cycles and stack.
 	 */
-	static const struct rmap_walk_control rwc = {
+	static struct rmap_walk_control rwc = {
 		.rmap_one = page_idle_clear_pte_refs_one,
 		.anon_lock = page_lock_anon_vma_read,
 	};
diff --git a/mm/page_isolation.c b/mm/page_isolation.c
index a95c2c6..31fe2e6 100644
--- a/mm/page_isolation.c
+++ b/mm/page_isolation.c
@@ -9,6 +9,7 @@
 #include <linux/memory.h>
 #include <linux/hugetlb.h>
 #include <linux/page_owner.h>
+#include <linux/page_pinner.h>
 #include <linux/migrate.h>
 #include "internal.h"
 
@@ -310,6 +311,8 @@
 
 out:
 	trace_test_pages_isolated(start_pfn, end_pfn, pfn);
+	if (pfn < end_pfn)
+		page_pinner_failure_detect(pfn_to_page(pfn));
 
 	return ret;
 }
diff --git a/mm/page_owner.c b/mm/page_owner.c
index 62402d2..a77f82a8 100644
--- a/mm/page_owner.c
+++ b/mm/page_owner.c
@@ -98,6 +98,25 @@
 	return (void *)page_ext + page_owner_ops.offset;
 }
 
+depot_stack_handle_t get_page_owner_handle(struct page_ext *page_ext, unsigned long pfn)
+{
+	struct page_owner *page_owner;
+	depot_stack_handle_t handle;
+
+	if (!page_owner_enabled)
+		return 0;
+
+	page_owner = get_page_owner(page_ext);
+
+	/* skip handle for tail pages of higher order allocations */
+	if (!IS_ALIGNED(pfn, 1 << page_owner->order))
+		return 0;
+
+	handle = READ_ONCE(page_owner->handle);
+	return handle;
+}
+EXPORT_SYMBOL_NS_GPL(get_page_owner_handle, MINIDUMP);
+
 static noinline depot_stack_handle_t save_stack(gfp_t flags)
 {
 	unsigned long entries[PAGE_OWNER_STACK_DEPTH];
@@ -133,11 +152,12 @@
 	struct page_owner *page_owner;
 	u64 free_ts_nsec = local_clock();
 
-	page_ext = lookup_page_ext(page);
+	handle = save_stack(GFP_NOWAIT | __GFP_NOWARN);
+	page_ext = page_ext_get(page);
+
 	if (unlikely(!page_ext))
 		return;
 
-	handle = save_stack(GFP_NOWAIT | __GFP_NOWARN);
 	for (i = 0; i < (1 << order); i++) {
 		__clear_bit(PAGE_EXT_OWNER_ALLOCATED, &page_ext->flags);
 		page_owner = get_page_owner(page_ext);
@@ -145,6 +165,7 @@
 		page_owner->free_ts_nsec = free_ts_nsec;
 		page_ext = page_ext_next(page_ext);
 	}
+	page_ext_put(page_ext);
 }
 
 static inline void __set_page_owner_handle(struct page_ext *page_ext,
@@ -172,19 +193,22 @@
 noinline void __set_page_owner(struct page *page, unsigned int order,
 					gfp_t gfp_mask)
 {
-	struct page_ext *page_ext = lookup_page_ext(page);
+	struct page_ext *page_ext;
 	depot_stack_handle_t handle;
 
+	handle = save_stack(gfp_mask);
+
+	page_ext = page_ext_get(page);
 	if (unlikely(!page_ext))
 		return;
 
-	handle = save_stack(gfp_mask);
 	__set_page_owner_handle(page_ext, handle, order, gfp_mask);
+	page_ext_put(page_ext);
 }
 
 void __set_page_owner_migrate_reason(struct page *page, int reason)
 {
-	struct page_ext *page_ext = lookup_page_ext(page);
+	struct page_ext *page_ext = page_ext_get(page);
 	struct page_owner *page_owner;
 
 	if (unlikely(!page_ext))
@@ -192,12 +216,13 @@
 
 	page_owner = get_page_owner(page_ext);
 	page_owner->last_migrate_reason = reason;
+	page_ext_put(page_ext);
 }
 
 void __split_page_owner(struct page *page, unsigned int nr)
 {
 	int i;
-	struct page_ext *page_ext = lookup_page_ext(page);
+	struct page_ext *page_ext = page_ext_get(page);
 	struct page_owner *page_owner;
 
 	if (unlikely(!page_ext))
@@ -208,17 +233,25 @@
 		page_owner->order = 0;
 		page_ext = page_ext_next(page_ext);
 	}
+	page_ext_put(page_ext);
 }
 
 void __copy_page_owner(struct page *oldpage, struct page *newpage)
 {
-	struct page_ext *old_ext = lookup_page_ext(oldpage);
-	struct page_ext *new_ext = lookup_page_ext(newpage);
+	struct page_ext *old_ext;
+	struct page_ext *new_ext;
 	struct page_owner *old_page_owner, *new_page_owner;
 
-	if (unlikely(!old_ext || !new_ext))
+	old_ext = page_ext_get(oldpage);
+	if (unlikely(!old_ext))
 		return;
 
+	new_ext = page_ext_get(newpage);
+	if (unlikely(!new_ext)) {
+		page_ext_put(old_ext);
+		return;
+	}
+
 	old_page_owner = get_page_owner(old_ext);
 	new_page_owner = get_page_owner(new_ext);
 	new_page_owner->order = old_page_owner->order;
@@ -241,6 +274,8 @@
 	 */
 	__set_bit(PAGE_EXT_OWNER, &new_ext->flags);
 	__set_bit(PAGE_EXT_OWNER_ALLOCATED, &new_ext->flags);
+	page_ext_put(new_ext);
+	page_ext_put(old_ext);
 }
 
 void pagetypeinfo_showmixedcount_print(struct seq_file *m,
@@ -294,12 +329,12 @@
 			if (PageReserved(page))
 				continue;
 
-			page_ext = lookup_page_ext(page);
+			page_ext = page_ext_get(page);
 			if (unlikely(!page_ext))
 				continue;
 
 			if (!test_bit(PAGE_EXT_OWNER_ALLOCATED, &page_ext->flags))
-				continue;
+				goto ext_put_continue;
 
 			page_owner = get_page_owner(page_ext);
 			page_mt = gfp_migratetype(page_owner->gfp_mask);
@@ -310,9 +345,12 @@
 					count[pageblock_mt]++;
 
 				pfn = block_end_pfn;
+				page_ext_put(page_ext);
 				break;
 			}
 			pfn += (1UL << page_owner->order) - 1;
+ext_put_continue:
+			page_ext_put(page_ext);
 		}
 	}
 
@@ -391,7 +429,7 @@
 
 void __dump_page_owner(const struct page *page)
 {
-	struct page_ext *page_ext = lookup_page_ext(page);
+	struct page_ext *page_ext = page_ext_get((void *)page);
 	struct page_owner *page_owner;
 	depot_stack_handle_t handle;
 	unsigned long *entries;
@@ -410,6 +448,7 @@
 
 	if (!test_bit(PAGE_EXT_OWNER, &page_ext->flags)) {
 		pr_alert("page_owner info is not present (never set?)\n");
+		page_ext_put(page_ext);
 		return;
 	}
 
@@ -442,6 +481,7 @@
 	if (page_owner->last_migrate_reason != -1)
 		pr_alert("page has been migrated, last migrate reason: %s\n",
 			migrate_reason_names[page_owner->last_migrate_reason]);
+	page_ext_put(page_ext);
 }
 
 static ssize_t
@@ -468,6 +508,14 @@
 	/* Find an allocated page */
 	for (; pfn < max_pfn; pfn++) {
 		/*
+		 * This temporary page_owner is required so
+		 * that we can avoid the context switches while holding
+		 * the rcu lock and copying the page owner information to
+		 * user through copy_to_user() or GFP_KERNEL allocations.
+		 */
+		struct page_owner page_owner_tmp;
+
+		/*
 		 * If the new page is in a new MAX_ORDER_NR_PAGES area,
 		 * validate the area as existing, skip it if not
 		 */
@@ -485,7 +533,7 @@
 			continue;
 		}
 
-		page_ext = lookup_page_ext(page);
+		page_ext = page_ext_get(page);
 		if (unlikely(!page_ext))
 			continue;
 
@@ -494,14 +542,14 @@
 		 * because we don't hold the zone lock.
 		 */
 		if (!test_bit(PAGE_EXT_OWNER, &page_ext->flags))
-			continue;
+			goto ext_put_continue;
 
 		/*
 		 * Although we do have the info about past allocation of free
 		 * pages, it's not relevant for current memory usage.
 		 */
 		if (!test_bit(PAGE_EXT_OWNER_ALLOCATED, &page_ext->flags))
-			continue;
+			goto ext_put_continue;
 
 		page_owner = get_page_owner(page_ext);
 
@@ -510,7 +558,7 @@
 		 * would inflate the stats.
 		 */
 		if (!IS_ALIGNED(pfn, 1 << page_owner->order))
-			continue;
+			goto ext_put_continue;
 
 		/*
 		 * Access to page_ext->handle isn't synchronous so we should
@@ -518,13 +566,17 @@
 		 */
 		handle = READ_ONCE(page_owner->handle);
 		if (!handle)
-			continue;
+			goto ext_put_continue;
 
 		/* Record the next PFN to read in the file offset */
 		*ppos = (pfn - min_low_pfn) + 1;
 
+		page_owner_tmp = *page_owner;
+		page_ext_put(page_ext);
 		return print_page_owner(buf, count, pfn, page,
-				page_owner, handle);
+				&page_owner_tmp, handle);
+ext_put_continue:
+		page_ext_put(page_ext);
 	}
 
 	return 0;
@@ -577,18 +629,20 @@
 			if (PageReserved(page))
 				continue;
 
-			page_ext = lookup_page_ext(page);
+			page_ext = page_ext_get(page);
 			if (unlikely(!page_ext))
 				continue;
 
 			/* Maybe overlapping zone */
 			if (test_bit(PAGE_EXT_OWNER, &page_ext->flags))
-				continue;
+				goto ext_put_continue;
 
 			/* Found early allocated page */
 			__set_page_owner_handle(page_ext, early_handle,
 						0, 0);
 			count++;
+ext_put_continue:
+			page_ext_put(page_ext);
 		}
 		cond_resched();
 	}
diff --git a/mm/page_pinner.c b/mm/page_pinner.c
new file mode 100644
index 0000000..2567206
--- /dev/null
+++ b/mm/page_pinner.c
@@ -0,0 +1,426 @@
+// SPDX-License-Identifier: GPL-2.0
+#include <linux/debugfs.h>
+#include <linux/mm.h>
+#include <linux/slab.h>
+#include <linux/uaccess.h>
+#include <linux/memblock.h>
+#include <linux/stacktrace.h>
+#include <linux/page_pinner.h>
+#include <linux/jump_label.h>
+#include <linux/migrate.h>
+#include <linux/stackdepot.h>
+#include <linux/seq_file.h>
+#include <linux/sched/clock.h>
+
+#include "internal.h"
+
+#define PAGE_PINNER_STACK_DEPTH 16
+static unsigned long pp_buf_size = 4096;
+
+struct page_pinner {
+	depot_stack_handle_t handle;
+	u64 ts_usec;
+	atomic_t count;
+};
+
+enum pp_state {
+	PP_PUT,
+	PP_FREE,
+	PP_FAIL_DETECTED,
+};
+
+struct captured_pinner {
+	depot_stack_handle_t handle;
+	union {
+		u64 ts_usec;
+		u64 elapsed;
+	};
+
+	/* struct page fields */
+	unsigned long pfn;
+	int count;
+	int mapcount;
+	struct address_space *mapping;
+	unsigned long flags;
+	enum pp_state state;
+};
+
+struct page_pinner_buffer {
+	spinlock_t lock;
+	unsigned long index;
+	struct captured_pinner *buffer;
+};
+
+/* alloc_contig failed pinner */
+static struct page_pinner_buffer pp_buffer;
+
+static bool page_pinner_enabled;
+DEFINE_STATIC_KEY_FALSE(page_pinner_inited);
+
+DEFINE_STATIC_KEY_TRUE(failure_tracking);
+EXPORT_SYMBOL_GPL(failure_tracking);
+
+static depot_stack_handle_t failure_handle;
+
+static int __init early_page_pinner_param(char *buf)
+{
+	page_pinner_enabled = true;
+	return 0;
+}
+early_param("page_pinner", early_page_pinner_param);
+
+static bool need_page_pinner(void)
+{
+	return page_pinner_enabled;
+}
+
+static noinline void register_failure_stack(void)
+{
+	unsigned long entries[4];
+	unsigned int nr_entries;
+
+	nr_entries = stack_trace_save(entries, ARRAY_SIZE(entries), 0);
+	failure_handle = stack_depot_save(entries, nr_entries, GFP_KERNEL);
+}
+
+static void init_page_pinner(void)
+{
+	if (!page_pinner_enabled)
+		return;
+
+	pp_buffer.buffer = kvmalloc_array(pp_buf_size, sizeof(*pp_buffer.buffer),
+				GFP_KERNEL);
+	if (!pp_buffer.buffer) {
+		pr_info("page_pinner disabled due to failure of buffer allocation\n");
+		return;
+	}
+
+	spin_lock_init(&pp_buffer.lock);
+	pp_buffer.index = 0;
+
+	register_failure_stack();
+	static_branch_enable(&page_pinner_inited);
+}
+
+struct page_ext_operations page_pinner_ops = {
+	.size = sizeof(struct page_pinner),
+	.need = need_page_pinner,
+	.init = init_page_pinner,
+};
+
+static inline struct page_pinner *get_page_pinner(struct page_ext *page_ext)
+{
+	return (void *)page_ext + page_pinner_ops.offset;
+}
+
+static noinline depot_stack_handle_t save_stack(gfp_t flags)
+{
+	unsigned long entries[PAGE_PINNER_STACK_DEPTH];
+	depot_stack_handle_t handle;
+	unsigned int nr_entries;
+
+	nr_entries = stack_trace_save(entries, ARRAY_SIZE(entries), 2);
+	handle = stack_depot_save(entries, nr_entries, flags);
+	if (!handle)
+		handle = failure_handle;
+
+	return handle;
+}
+
+static void capture_page_state(struct page *page,
+			       struct captured_pinner *record)
+{
+	record->flags = page->flags;
+	record->mapping = page_mapping(page);
+	record->pfn = page_to_pfn(page);
+	record->count = page_count(page);
+	record->mapcount = page_mapcount(page);
+}
+
+static void add_record(struct page_pinner_buffer *pp_buf,
+		       struct captured_pinner *record)
+{
+	unsigned long flags;
+	unsigned int idx;
+
+	spin_lock_irqsave(&pp_buf->lock, flags);
+	idx = pp_buf->index++;
+	pp_buf->index %= pp_buf_size;
+	pp_buf->buffer[idx] = *record;
+	spin_unlock_irqrestore(&pp_buf->lock, flags);
+}
+
+void __free_page_pinner(struct page *page, unsigned int order)
+{
+	struct page_pinner *page_pinner;
+	struct page_ext *page_ext;
+	int i;
+
+	/* free_page could be called before buffer is initialized */
+	if (!pp_buffer.buffer)
+		return;
+
+	page_ext = page_ext_get(page);
+	if (unlikely(!page_ext))
+		return;
+
+	for (i = 0; i < (1 << order); i++) {
+		struct captured_pinner record;
+
+		if (!test_bit(PAGE_EXT_PINNER_MIGRATION_FAILED, &page_ext->flags))
+			continue;
+
+		page_pinner = get_page_pinner(page_ext);
+
+		record.handle = save_stack(GFP_NOWAIT|__GFP_NOWARN);
+		record.ts_usec = (u64)ktime_to_us(ktime_get_boottime());
+		record.state = PP_FREE;
+		capture_page_state(page, &record);
+
+		add_record(&pp_buffer, &record);
+
+		atomic_set(&page_pinner->count, 0);
+		page_pinner->ts_usec = 0;
+		clear_bit(PAGE_EXT_PINNER_MIGRATION_FAILED, &page_ext->flags);
+		page_ext = page_ext_next(page_ext);
+	}
+	page_ext_put(page_ext);
+}
+
+static ssize_t
+print_page_pinner(char __user *buf, size_t count, struct captured_pinner *record)
+{
+	int ret;
+	unsigned long *entries;
+	unsigned int nr_entries;
+	char *kbuf;
+
+	count = min_t(size_t, count, PAGE_SIZE);
+	kbuf = kmalloc(count, GFP_KERNEL);
+	if (!kbuf)
+		return -ENOMEM;
+
+	if (record->state == PP_PUT) {
+		ret = snprintf(kbuf, count, "At least, pinned for %llu us\n",
+			       record->elapsed);
+	} else {
+		u64 ts_usec = record->ts_usec;
+		unsigned long rem_usec = do_div(ts_usec, 1000000);
+
+		ret = snprintf(kbuf, count,
+			       "%s [%5lu.%06lu]\n",
+			       record->state == PP_FREE ? "Freed at" :
+							  "Failure detected at",
+			       (unsigned long)ts_usec, rem_usec);
+	}
+
+	if (ret >= count)
+		goto err;
+
+	/* Print information relevant to grouping pages by mobility */
+	ret += snprintf(kbuf + ret, count - ret,
+			"PFN 0x%lx Block %lu count %d mapcount %d mapping %pS Flags %#lx(%pGp)\n",
+			record->pfn,
+			record->pfn >> pageblock_order,
+			record->count, record->mapcount,
+			record->mapping,
+			record->flags, &record->flags);
+
+	if (ret >= count)
+		goto err;
+
+	nr_entries = stack_depot_fetch(record->handle, &entries);
+	ret += stack_trace_snprint(kbuf + ret, count - ret, entries,
+				   nr_entries, 0);
+	if (ret >= count)
+		goto err;
+
+	ret += snprintf(kbuf + ret, count - ret, "\n");
+	if (ret >= count)
+		goto err;
+
+	if (copy_to_user(buf, kbuf, ret))
+		ret = -EFAULT;
+
+	kfree(kbuf);
+	return ret;
+
+err:
+	kfree(kbuf);
+	return -ENOMEM;
+}
+
+void __page_pinner_failure_detect(struct page *page)
+{
+	struct page_ext *page_ext = page_ext_get(page);
+	struct page_pinner *page_pinner;
+	struct captured_pinner record;
+	u64 now;
+
+	if (unlikely(!page_ext))
+		return;
+
+	if (test_bit(PAGE_EXT_PINNER_MIGRATION_FAILED, &page_ext->flags)) {
+		page_ext_put(page_ext);
+		return;
+	}
+
+	now = (u64)ktime_to_us(ktime_get_boottime());
+	page_pinner = get_page_pinner(page_ext);
+	if (!page_pinner->ts_usec)
+		page_pinner->ts_usec = now;
+	set_bit(PAGE_EXT_PINNER_MIGRATION_FAILED, &page_ext->flags);
+	record.handle = save_stack(GFP_NOWAIT|__GFP_NOWARN);
+	record.ts_usec = now;
+	record.state = PP_FAIL_DETECTED;
+	capture_page_state(page, &record);
+
+	add_record(&pp_buffer, &record);
+	page_ext_put(page_ext);
+}
+EXPORT_SYMBOL_GPL(__page_pinner_failure_detect);
+
+void __page_pinner_put_page(struct page *page)
+{
+	struct page_ext *page_ext = page_ext_get(page);
+	struct page_pinner *page_pinner;
+	struct captured_pinner record;
+	u64 now, ts_usec;
+
+	if (unlikely(!page_ext))
+		return;
+
+	if (!test_bit(PAGE_EXT_PINNER_MIGRATION_FAILED, &page_ext->flags)) {
+		page_ext_put(page_ext);
+		return;
+	}
+
+	page_pinner = get_page_pinner(page_ext);
+	record.handle = save_stack(GFP_NOWAIT|__GFP_NOWARN);
+	now = (u64)ktime_to_us(ktime_get_boottime());
+	ts_usec = page_pinner->ts_usec;
+
+	if (now > ts_usec)
+		record.elapsed = now - ts_usec;
+	else
+		record.elapsed = 0;
+	record.state = PP_PUT;
+	capture_page_state(page, &record);
+
+	add_record(&pp_buffer, &record);
+	page_ext_put(page_ext);
+}
+EXPORT_SYMBOL_GPL(__page_pinner_put_page);
+
+static ssize_t read_buffer(struct file *file, char __user *buf,
+					size_t count, loff_t *ppos)
+{
+	u64 tmp;
+	loff_t i, idx;
+	struct captured_pinner record;
+	unsigned long flags;
+
+	if (!static_branch_unlikely(&failure_tracking))
+		return -EINVAL;
+
+	if (*ppos >= pp_buf_size)
+		return 0;
+
+	i = *ppos;
+	*ppos = i + 1;
+
+	/*
+	 * reading the records in the reverse order with newest one
+	 * being read first followed by older ones
+	 */
+	tmp = pp_buffer.index - 1 - i + pp_buf_size;
+	idx = do_div(tmp, pp_buf_size);
+
+	spin_lock_irqsave(&pp_buffer.lock, flags);
+	record = pp_buffer.buffer[idx];
+	spin_unlock_irqrestore(&pp_buffer.lock, flags);
+	if (!record.handle)
+		return 0;
+
+	return print_page_pinner(buf, count, &record);
+}
+
+static const struct file_operations proc_buffer_operations = {
+	.read		= read_buffer,
+};
+
+static int failure_tracking_set(void *data, u64 val)
+{
+	bool on;
+
+	on = (bool)val;
+	if (on)
+		static_branch_enable(&failure_tracking);
+	else
+		static_branch_disable(&failure_tracking);
+	return 0;
+}
+
+static int failure_tracking_get(void *data, u64 *val)
+{
+	*val = static_branch_unlikely(&failure_tracking);
+	return 0;
+}
+DEFINE_DEBUGFS_ATTRIBUTE(failure_tracking_fops,
+			 failure_tracking_get,
+			 failure_tracking_set, "%llu\n");
+
+static int buffer_size_set(void *data, u64 val)
+{
+	unsigned long flags;
+	struct captured_pinner *new, *old;
+
+	new = kvmalloc_array(val, sizeof(*new), GFP_KERNEL);
+	if (!new)
+		return -ENOMEM;
+
+	spin_lock_irqsave(&pp_buffer.lock, flags);
+	old = pp_buffer.buffer;
+	pp_buffer.buffer = new;
+	pp_buffer.index = 0;
+	pp_buf_size = val;
+	spin_unlock_irqrestore(&pp_buffer.lock, flags);
+	kvfree(old);
+
+	return 0;
+}
+
+static int buffer_size_get(void *data, u64 *val)
+{
+	*val = pp_buf_size;
+	return 0;
+}
+DEFINE_DEBUGFS_ATTRIBUTE(buffer_size_fops,
+			 buffer_size_get,
+			 buffer_size_set, "%llu\n");
+
+static int __init page_pinner_init(void)
+{
+	struct dentry *pp_debugfs_root;
+
+	if (!static_branch_unlikely(&page_pinner_inited))
+		return 0;
+
+	pr_info("page_pinner enabled\n");
+
+	pp_debugfs_root = debugfs_create_dir("page_pinner", NULL);
+
+	debugfs_create_file("buffer", 0444,
+			    pp_debugfs_root, NULL,
+			    &proc_buffer_operations);
+
+	debugfs_create_file("failure_tracking", 0644,
+			    pp_debugfs_root, NULL,
+			    &failure_tracking_fops);
+
+	debugfs_create_file("buffer_size", 0644,
+			    pp_debugfs_root, NULL,
+			    &buffer_size_fops);
+	return 0;
+}
+late_initcall(page_pinner_init)
diff --git a/mm/percpu.c b/mm/percpu.c
index e0a9868..3c94ef4 100644
--- a/mm/percpu.c
+++ b/mm/percpu.c
@@ -2419,6 +2419,7 @@
 		return page_to_phys(pcpu_addr_to_page(addr)) +
 		       offset_in_page(addr);
 }
+EXPORT_SYMBOL_GPL(per_cpu_ptr_to_phys);
 
 /**
  * pcpu_alloc_alloc_info - allocate percpu allocation info
@@ -3363,6 +3364,7 @@
 {
 	return pcpu_nr_populated * pcpu_nr_units;
 }
+EXPORT_SYMBOL_GPL(pcpu_nr_pages);
 
 /*
  * Percpu allocator is initialized early during boot when neither slab or
diff --git a/mm/readahead.c b/mm/readahead.c
index 41b75d7..059b6f3 100644
--- a/mm/readahead.c
+++ b/mm/readahead.c
@@ -23,6 +23,7 @@
 #include <linux/blk-cgroup.h>
 #include <linux/fadvise.h>
 #include <linux/sched/mm.h>
+#include <trace/hooks/mm.h>
 
 #include "internal.h"
 
@@ -114,6 +115,16 @@
 
 EXPORT_SYMBOL(read_cache_pages);
 
+gfp_t readahead_gfp_mask(struct address_space *x)
+{
+	gfp_t mask = mapping_gfp_mask(x) | __GFP_NORETRY | __GFP_NOWARN;
+
+	trace_android_rvh_set_readahead_gfp_mask(&mask);
+	trace_android_rvh_update_readahead_gfp_mask(x, &mask);
+	return mask;
+}
+EXPORT_SYMBOL_GPL(readahead_gfp_mask);
+
 static void read_pages(struct readahead_control *rac, struct list_head *pages,
 		bool skip_page)
 {
@@ -452,6 +463,8 @@
 	if (req_size > max_pages && bdi->io_pages > max_pages)
 		max_pages = min(req_size, bdi->io_pages);
 
+	trace_android_vh_ra_tuning_max_page(ractl, &max_pages);
+
 	/*
 	 * start of file
 	 */
@@ -570,6 +583,8 @@
 		do_forced_ra = true;
 	}
 
+	trace_android_vh_page_cache_forced_ra(ractl, req_count, &do_forced_ra);
+
 	/* be dumb */
 	if (do_forced_ra) {
 		force_page_cache_ra(ractl, req_count);
diff --git a/mm/rmap.c b/mm/rmap.c
index 330b361..469f450 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -73,11 +73,14 @@
 #include <linux/page_idle.h>
 #include <linux/memremap.h>
 #include <linux/userfaultfd_k.h>
+#include <linux/mm_inline.h>
 
 #include <asm/tlbflush.h>
 
 #include <trace/events/tlb.h>
 
+#include <trace/hooks/mm.h>
+
 #include "internal.h"
 
 static struct kmem_cache *anon_vma_cachep;
@@ -419,11 +422,13 @@
 	if (vma->anon_vma) {
 		vma->anon_vma->num_active_vmas--;
 
+#ifndef CONFIG_SPECULATIVE_PAGE_FAULT
 		/*
 		 * vma would still be needed after unlink, and anon_vma will be prepared
 		 * when handle fault.
 		 */
 		vma->anon_vma = NULL;
+#endif
 	}
 	unlock_anon_vma_root(root);
 
@@ -527,13 +532,16 @@
  *
  * Its a little more complex as it tries to keep the fast path to a single
  * atomic op -- the trylock. If we fail the trylock, we fall back to getting a
- * reference like with page_get_anon_vma() and then block on the mutex.
+ * reference like with page_get_anon_vma() and then block on the mutex
+ * on !rwc->try_lock case.
  */
-struct anon_vma *page_lock_anon_vma_read(struct page *page)
+struct anon_vma *page_lock_anon_vma_read(struct page *page,
+					 struct rmap_walk_control *rwc)
 {
 	struct anon_vma *anon_vma = NULL;
 	struct anon_vma *root_anon_vma;
 	unsigned long anon_mapping;
+	bool success = false;
 
 	rcu_read_lock();
 	anon_mapping = (unsigned long)READ_ONCE(page->mapping);
@@ -556,6 +564,17 @@
 		}
 		goto out;
 	}
+	trace_android_vh_do_page_trylock(page, NULL, NULL, &success);
+	if (success) {
+		anon_vma = NULL;
+		goto out;
+	}
+
+	if (rwc && rwc->try_lock) {
+		anon_vma = NULL;
+		rwc->contended = true;
+		goto out;
+	}
 
 	/* trylock failed, we got to sleep */
 	if (!atomic_inc_not_zero(&anon_vma->refcount)) {
@@ -793,6 +812,13 @@
 		}
 
 		if (pvmw.pte) {
+			trace_android_vh_look_around(&pvmw, page, vma, &referenced);
+			if (lru_gen_enabled() && pte_young(*pvmw.pte) &&
+			    !(vma->vm_flags & (VM_SEQ_READ | VM_RAND_READ))) {
+				lru_gen_look_around(&pvmw);
+				referenced++;
+			}
+
 			if (ptep_clear_flush_young_notify(vma, address,
 						pvmw.pte)) {
 				/*
@@ -852,8 +878,10 @@
  * @memcg: target memory cgroup
  * @vm_flags: collect encountered vma->vm_flags who actually referenced the page
  *
- * Quick test_and_clear_referenced for all mappings to a page,
- * returns the number of ptes which referenced the page.
+ * Quick test_and_clear_referenced for all mappings of a page,
+ *
+ * Return: The number of mappings which referenced the page. Return -1 if
+ * the function bailed out due to rmap lock contention.
  */
 int page_referenced(struct page *page,
 		    int is_locked,
@@ -869,6 +897,7 @@
 		.rmap_one = page_referenced_one,
 		.arg = (void *)&pra,
 		.anon_lock = page_lock_anon_vma_read,
+		.try_lock = true,
 	};
 
 	*vm_flags = 0;
@@ -899,8 +928,9 @@
 	if (we_locked)
 		unlock_page(page);
 
-	return pra.referenced;
+	return rwc.contended ? -1 : pra.referenced;
 }
+EXPORT_SYMBOL_GPL(page_referenced);
 
 static bool page_mkclean_one(struct page *page, struct vm_area_struct *vma,
 			    unsigned long address, void *arg)
@@ -1126,6 +1156,7 @@
 {
 	bool compound = flags & RMAP_COMPOUND;
 	bool first;
+	bool success = false;
 
 	if (unlikely(PageKsm(page)))
 		lock_page_memcg(page);
@@ -1139,7 +1170,10 @@
 		mapcount = compound_mapcount_ptr(page);
 		first = atomic_inc_and_test(mapcount);
 	} else {
-		first = atomic_inc_and_test(&page->_mapcount);
+		trace_android_vh_update_page_mapcount(page, true, compound,
+							&first, &success);
+		if (!success)
+			first = atomic_inc_and_test(&page->_mapcount);
 	}
 
 	if (first) {
@@ -1214,6 +1248,8 @@
 void page_add_file_rmap(struct page *page, bool compound)
 {
 	int i, nr = 1;
+	bool first_mapping;
+	bool success = false;
 
 	VM_BUG_ON_PAGE(compound && !PageTransHuge(page), page);
 	lock_page_memcg(page);
@@ -1221,8 +1257,15 @@
 		int nr_pages = thp_nr_pages(page);
 
 		for (i = 0, nr = 0; i < nr_pages; i++) {
-			if (atomic_inc_and_test(&page[i]._mapcount))
-				nr++;
+			trace_android_vh_update_page_mapcount(&page[i], true,
+					compound, &first_mapping, &success);
+			if ((success)) {
+				if (first_mapping)
+					nr++;
+			} else {
+				if (atomic_inc_and_test(&page[i]._mapcount))
+					nr++;
+			}
 		}
 		if (!atomic_inc_and_test(compound_mapcount_ptr(page)))
 			goto out;
@@ -1242,8 +1285,15 @@
 			if (PageMlocked(page))
 				clear_page_mlock(head);
 		}
-		if (!atomic_inc_and_test(&page->_mapcount))
-			goto out;
+		trace_android_vh_update_page_mapcount(page, true,
+					compound, &first_mapping, &success);
+		if (success) {
+			if (!first_mapping)
+				goto out;
+		} else {
+			if (!atomic_inc_and_test(&page->_mapcount))
+				goto out;
+		}
 	}
 	__mod_lruvec_page_state(page, NR_FILE_MAPPED, nr);
 out:
@@ -1253,6 +1303,8 @@
 static void page_remove_file_rmap(struct page *page, bool compound)
 {
 	int i, nr = 1;
+	bool first_mapping;
+	bool success = false;
 
 	VM_BUG_ON_PAGE(compound && !PageHead(page), page);
 
@@ -1268,8 +1320,15 @@
 		int nr_pages = thp_nr_pages(page);
 
 		for (i = 0, nr = 0; i < nr_pages; i++) {
-			if (atomic_add_negative(-1, &page[i]._mapcount))
-				nr++;
+			trace_android_vh_update_page_mapcount(&page[i], false,
+						compound, &first_mapping, &success);
+			if (success) {
+				if (first_mapping)
+					nr++;
+			} else {
+				if (atomic_add_negative(-1, &page[i]._mapcount))
+					nr++;
+			}
 		}
 		if (!atomic_add_negative(-1, compound_mapcount_ptr(page)))
 			return;
@@ -1280,8 +1339,15 @@
 			__mod_lruvec_page_state(page, NR_FILE_PMDMAPPED,
 						-nr_pages);
 	} else {
-		if (!atomic_add_negative(-1, &page->_mapcount))
-			return;
+		trace_android_vh_update_page_mapcount(page, false,
+					compound, &first_mapping, &success);
+		if (success) {
+			if (!first_mapping)
+				return;
+		} else {
+			if (!atomic_add_negative(-1, &page->_mapcount))
+				return;
+		}
 	}
 
 	/*
@@ -1298,6 +1364,8 @@
 static void page_remove_anon_compound_rmap(struct page *page)
 {
 	int i, nr;
+	bool first_mapping;
+	bool success = false;
 
 	if (!atomic_add_negative(-1, compound_mapcount_ptr(page)))
 		return;
@@ -1317,8 +1385,15 @@
 		 * them are still mapped.
 		 */
 		for (i = 0, nr = 0; i < thp_nr_pages(page); i++) {
-			if (atomic_add_negative(-1, &page[i]._mapcount))
-				nr++;
+			trace_android_vh_update_page_mapcount(&page[i], false,
+					false, &first_mapping, &success);
+			if (success) {
+				if (first_mapping)
+					nr++;
+			} else {
+				if (atomic_add_negative(-1, &page[i]._mapcount))
+					nr++;
+			}
 		}
 
 		/*
@@ -1348,6 +1423,8 @@
  */
 void page_remove_rmap(struct page *page, bool compound)
 {
+	bool first_mapping;
+	bool success = false;
 	lock_page_memcg(page);
 
 	if (!PageAnon(page)) {
@@ -1360,10 +1437,16 @@
 		goto out;
 	}
 
-	/* page still mapped by someone else? */
-	if (!atomic_add_negative(-1, &page->_mapcount))
-		goto out;
-
+	trace_android_vh_update_page_mapcount(page, false,
+					compound, &first_mapping, &success);
+	if (success) {
+		if (!first_mapping)
+			goto out;
+	} else {
+		/* page still mapped by someone else? */
+		if (!atomic_add_negative(-1, &page->_mapcount))
+			goto out;
+	}
 	/*
 	 * We use the irq-unsafe __{inc|mod}_zone_page_stat because
 	 * these counters are not modified in interrupt context, and
@@ -1670,6 +1753,7 @@
 	}
 
 	mmu_notifier_invalidate_range_end(&range);
+	trace_android_vh_try_to_unmap_one(vma, page, address, ret);
 
 	return ret;
 }
@@ -1983,10 +2067,14 @@
 	if (!PageKsm(page) && PageAnon(page))
 		rwc.invalid_vma = invalid_migration_vma;
 
+	trace_android_vh_set_page_migrating(page);
+
 	if (flags & TTU_RMAP_LOCKED)
 		rmap_walk_locked(page, &rwc);
 	else
 		rmap_walk(page, &rwc);
+
+	trace_android_vh_clear_page_migrating(page);
 }
 
 /*
@@ -2260,7 +2348,7 @@
 	struct anon_vma *anon_vma;
 
 	if (rwc->anon_lock)
-		return rwc->anon_lock(page);
+		return rwc->anon_lock(page, rwc);
 
 	/*
 	 * Note: remove_migration_ptes() cannot use page_lock_anon_vma_read()
@@ -2272,7 +2360,17 @@
 	if (!anon_vma)
 		return NULL;
 
+	if (anon_vma_trylock_read(anon_vma))
+		goto out;
+
+	if (rwc->try_lock) {
+		anon_vma = NULL;
+		rwc->contended = true;
+		goto out;
+	}
+
 	anon_vma_lock_read(anon_vma);
+out:
 	return anon_vma;
 }
 
@@ -2349,6 +2447,7 @@
 	struct address_space *mapping = page_mapping(page);
 	pgoff_t pgoff_start, pgoff_end;
 	struct vm_area_struct *vma;
+	bool got_lock = false, success = false;
 
 	/*
 	 * The page lock not only makes sure that page->mapping cannot
@@ -2363,8 +2462,25 @@
 
 	pgoff_start = page_to_pgoff(page);
 	pgoff_end = pgoff_start + thp_nr_pages(page) - 1;
-	if (!locked)
-		i_mmap_lock_read(mapping);
+	if (!locked) {
+		trace_android_vh_do_page_trylock(page,
+					&mapping->i_mmap_rwsem, &got_lock, &success);
+		if (success) {
+			if (!got_lock)
+				return;
+		} else {
+			if (i_mmap_trylock_read(mapping))
+				goto lookup;
+
+			if (rwc->try_lock) {
+				rwc->contended = true;
+				return;
+			}
+
+			i_mmap_lock_read(mapping);
+		}
+	}
+lookup:
 	vma_interval_tree_foreach(vma, &mapping->i_mmap,
 			pgoff_start, pgoff_end) {
 		unsigned long address = vma_address(page, vma);
diff --git a/mm/shmem.c b/mm/shmem.c
index 41efb92..3e7e0b7 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -39,6 +39,7 @@
 #include <linux/frontswap.h>
 #include <linux/fs_parser.h>
 #include <linux/swapfile.h>
+#include <linux/mm_inline.h>
 
 static struct vfsmount *shm_mnt;
 
@@ -4248,3 +4249,41 @@
 #endif
 }
 EXPORT_SYMBOL_GPL(shmem_read_mapping_page_gfp);
+
+int reclaim_shmem_address_space(struct address_space *mapping)
+{
+#ifdef CONFIG_SHMEM
+	pgoff_t start = 0;
+	struct page *page;
+	LIST_HEAD(page_list);
+	XA_STATE(xas, &mapping->i_pages, start);
+
+	if (!shmem_mapping(mapping))
+		return -EINVAL;
+
+	lru_add_drain();
+
+	rcu_read_lock();
+	xas_for_each(&xas, page, ULONG_MAX) {
+		if (xas_retry(&xas, page))
+			continue;
+		if (xa_is_value(page))
+			continue;
+		if (isolate_lru_page(page))
+			continue;
+
+		list_add(&page->lru, &page_list);
+
+		if (need_resched()) {
+			xas_pause(&xas);
+			cond_resched_rcu();
+		}
+	}
+	rcu_read_unlock();
+
+	return reclaim_pages(&page_list);
+#else
+	return 0;
+#endif
+}
+EXPORT_SYMBOL_GPL(reclaim_shmem_address_space);
diff --git a/mm/slab.c b/mm/slab.c
index f5b2246..4d02b59 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -3017,10 +3017,9 @@
 	objp += obj_offset(cachep);
 	if (cachep->ctor && cachep->flags & SLAB_POISON)
 		cachep->ctor(objp);
-	if (ARCH_SLAB_MINALIGN &&
-	    ((unsigned long)objp & (ARCH_SLAB_MINALIGN-1))) {
-		pr_err("0x%px: not aligned to ARCH_SLAB_MINALIGN=%d\n",
-		       objp, (int)ARCH_SLAB_MINALIGN);
+	if ((unsigned long)objp & (arch_slab_minalign() - 1)) {
+		pr_err("0x%px: not aligned to arch_slab_minalign()=%u\n", objp,
+		       arch_slab_minalign());
 	}
 	return objp;
 }
@@ -4087,6 +4086,7 @@
 	sinfo->objects_per_slab = cachep->num;
 	sinfo->cache_order = cachep->gfporder;
 }
+EXPORT_SYMBOL_NS_GPL(get_slabinfo, MINIDUMP);
 
 void slabinfo_show_stats(struct seq_file *m, struct kmem_cache *cachep)
 {
diff --git a/mm/slab.h b/mm/slab.h
index 1ae1bdd..61d235e 100644
--- a/mm/slab.h
+++ b/mm/slab.h
@@ -91,6 +91,24 @@
 
 gfp_t kmalloc_fix_flags(gfp_t flags);
 
+#ifdef CONFIG_SLUB
+/*
+ * Tracking user of a slab.
+ */
+#define TRACK_ADDRS_COUNT 16
+struct track {
+	unsigned long addr;	/* Called from address */
+#ifdef CONFIG_STACKTRACE
+	unsigned long addrs[TRACK_ADDRS_COUNT]; /* Called from address */
+#endif
+	int cpu;		/* Was running on cpu */
+	int pid;		/* Pid context */
+	unsigned long when;	/* When did the operation occur */
+};
+
+enum track_item { TRACK_ALLOC, TRACK_FREE };
+#endif
+
 /* Functions provided by the slab allocators */
 int __kmem_cache_create(struct kmem_cache *, slab_flags_t flags);
 
@@ -216,6 +234,10 @@
 #endif
 extern void print_tracking(struct kmem_cache *s, void *object);
 long validate_slab_cache(struct kmem_cache *s);
+extern unsigned long get_each_object_track(struct kmem_cache *s,
+		struct page *page, enum track_item alloc,
+		int (*fn)(const struct kmem_cache *, const void *,
+		const struct track *, void *), void *private);
 static inline bool __slub_debug_enabled(void)
 {
 	return static_branch_unlikely(&slub_debug_enabled);
@@ -224,6 +246,15 @@
 static inline void print_tracking(struct kmem_cache *s, void *object)
 {
 }
+#ifdef CONFIG_SLUB
+static inline unsigned long get_each_object_track(struct kmem_cache *s,
+		struct page *page, enum track_item alloc,
+		int (*fn)(const struct kmem_cache *, const void *,
+		const struct track *, void *), void *private)
+{
+	return 0;
+}
+#endif
 static inline bool __slub_debug_enabled(void)
 {
 	return false;
diff --git a/mm/slab_common.c b/mm/slab_common.c
index 022319e..9906b3d 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -27,7 +27,8 @@
 
 #define CREATE_TRACE_POINTS
 #include <trace/events/kmem.h>
-
+#undef CREATE_TRACE_POINTS
+#include <trace/hooks/mm.h>
 #include "internal.h"
 
 #include "slab.h"
@@ -162,8 +163,7 @@
 		align = max(align, ralign);
 	}
 
-	if (align < ARCH_SLAB_MINALIGN)
-		align = ARCH_SLAB_MINALIGN;
+	align = max(align, arch_slab_minalign());
 
 	return ALIGN(align, sizeof(void *));
 }
@@ -499,7 +499,7 @@
 {
 	int err;
 
-	if (unlikely(!s))
+	if (unlikely(!s) || !kasan_check_byte(s))
 		return;
 
 	cpus_read_lock();
@@ -698,6 +698,10 @@
 { /* initialization for https://bugs.llvm.org/show_bug.cgi?id=42570 */ };
 EXPORT_SYMBOL(kmalloc_caches);
 
+/* This variable is intentionally unused. Preserved for KMI stability. */
+bool android_kmalloc_64_create __ro_after_init;
+EXPORT_SYMBOL(android_kmalloc_64_create);
+
 /*
  * Conversion table for small slabs sizes / 8 to the index in the
  * kmalloc array. This is necessary for slabs < 192 since we have non power
@@ -743,6 +747,7 @@
 struct kmem_cache *kmalloc_slab(size_t size, gfp_t flags)
 {
 	unsigned int index;
+	struct kmem_cache *s = NULL;
 
 	if (size <= 192) {
 		if (!size)
@@ -755,6 +760,10 @@
 		index = fls(size - 1);
 	}
 
+	trace_android_vh_kmalloc_slab(index, flags, &s);
+	if (s)
+		return s;
+
 	return kmalloc_caches[kmalloc_type(flags)][index];
 }
 
@@ -969,6 +978,9 @@
 		mod_lruvec_page_state(page, NR_SLAB_UNRECLAIMABLE_B,
 				      PAGE_SIZE << order);
 	}
+
+	trace_android_vh_kmalloc_order_alloced(page, size, flags);
+
 	ret = kasan_kmalloc_large(ret, size, flags);
 	/* As ret might get tagged, call kmemleak hook after KASAN. */
 	kmemleak_alloc(ret, size, 1, flags);
@@ -1058,6 +1070,7 @@
 	seq_puts(m, " : globalstat <listallocs> <maxobjs> <grown> <reaped> <error> <maxfreeable> <nodeallocs> <remotefrees> <alienoverflow>");
 	seq_puts(m, " : cpustat <allochit> <allocmiss> <freehit> <freemiss>");
 #endif
+	trace_android_vh_print_slabinfo_header(m);
 	seq_putc(m, '\n');
 }
 
@@ -1093,6 +1106,7 @@
 	seq_printf(m, " : slabdata %6lu %6lu %6lu",
 		   sinfo.active_slabs, sinfo.num_slabs, sinfo.shared_avail);
 	slabinfo_show_stats(m, s);
+	trace_android_vh_cache_show(m, &sinfo, s);
 	seq_putc(m, '\n');
 }
 
diff --git a/mm/slob.c b/mm/slob.c
index f3fc15d..0c2897e 100644
--- a/mm/slob.c
+++ b/mm/slob.c
@@ -477,9 +477,11 @@
 __do_kmalloc_node(size_t size, gfp_t gfp, int node, unsigned long caller)
 {
 	unsigned int *m;
-	int minalign = max_t(size_t, ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
+	unsigned int minalign;
 	void *ret;
 
+	minalign = max_t(unsigned int, ARCH_KMALLOC_MINALIGN,
+			 arch_slab_minalign());
 	gfp &= gfp_allowed_mask;
 
 	might_alloc(gfp);
@@ -492,7 +494,7 @@
 		 * kmalloc()'d objects.
 		 */
 		if (is_power_of_2(size))
-			align = max(minalign, (int) size);
+			align = max_t(unsigned int, minalign, size);
 
 		if (!size)
 			return ZERO_SIZE_PTR;
@@ -554,8 +556,11 @@
 
 	sp = virt_to_page(block);
 	if (PageSlab(sp)) {
-		int align = max_t(size_t, ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
+		unsigned int align = max_t(unsigned int,
+					   ARCH_KMALLOC_MINALIGN,
+					   arch_slab_minalign());
 		unsigned int *m = (unsigned int *)(block - align);
+
 		slob_free(m, *m + align);
 	} else {
 		unsigned int order = compound_order(sp);
@@ -571,7 +576,7 @@
 size_t __ksize(const void *block)
 {
 	struct page *sp;
-	int align;
+	unsigned int align;
 	unsigned int *m;
 
 	BUG_ON(!block);
@@ -582,7 +587,8 @@
 	if (unlikely(!PageSlab(sp)))
 		return page_size(sp);
 
-	align = max_t(size_t, ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
+	align = max_t(unsigned int, ARCH_KMALLOC_MINALIGN,
+		      arch_slab_minalign());
 	m = (unsigned int *)(block - align);
 	return SLOB_UNITS(*m) * SLOB_UNIT;
 }
diff --git a/mm/slub.c b/mm/slub.c
index f95ae13..a160f2d2 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -40,6 +40,7 @@
 
 #include <linux/debugfs.h>
 #include <trace/events/kmem.h>
+#include <trace/hooks/mm.h>
 
 #include "internal.h"
 
@@ -258,22 +259,6 @@
 /* Use cmpxchg_double */
 #define __CMPXCHG_DOUBLE	((slab_flags_t __force)0x40000000U)
 
-/*
- * Tracking user of a slab.
- */
-#define TRACK_ADDRS_COUNT 16
-struct track {
-	unsigned long addr;	/* Called from address */
-#ifdef CONFIG_STACKTRACE
-	unsigned long addrs[TRACK_ADDRS_COUNT];	/* Called from address */
-#endif
-	int cpu;		/* Was running on cpu */
-	int pid;		/* Pid context */
-	unsigned long when;	/* When did the operation occur */
-};
-
-enum track_item { TRACK_ALLOC, TRACK_FREE };
-
 #ifdef CONFIG_SYSFS
 static int sysfs_slab_add(struct kmem_cache *);
 static int sysfs_slab_alias(struct kmem_cache *, const char *);
@@ -551,7 +536,6 @@
 		set_bit(__obj_to_index(s, addr, p), obj_map);
 }
 
-#if IS_ENABLED(CONFIG_KUNIT)
 static bool slab_add_kunit_errors(void)
 {
 	struct kunit_resource *resource;
@@ -567,9 +551,6 @@
 	kunit_put_resource(resource);
 	return true;
 }
-#else
-static inline bool slab_add_kunit_errors(void) { return false; }
-#endif
 
 /*
  * Determine a map of object in use on a page.
@@ -702,6 +683,42 @@
 	return kasan_reset_tag(p + alloc);
 }
 
+/*
+ * This function will be used to loop through all the slab objects in
+ * a page to give track structure for each object, the function fn will
+ * be using this track structure and extract required info into its private
+ * data, the return value will be the number of track structures that are
+ * processed.
+ */
+unsigned long get_each_object_track(struct kmem_cache *s,
+		struct page *page, enum track_item alloc,
+		int (*fn)(const struct kmem_cache *, const void *,
+		const struct track *, void *), void *private)
+{
+	void *p;
+	struct track *t;
+	int ret;
+	unsigned long num_track = 0;
+	unsigned long flags = 0;
+
+	if (!slub_debug || !(s->flags & SLAB_STORE_USER))
+		return 0;
+
+	slab_lock(page, &flags);
+	for_each_object(p, s, page_address(page), page->objects) {
+		t = get_track(s, p, alloc);
+		metadata_access_enable();
+		ret = fn(s, p, t, private);
+		metadata_access_disable();
+		if (ret < 0)
+			break;
+		num_track += 1;
+	}
+	slab_unlock(page, &flags);
+	return num_track;
+}
+EXPORT_SYMBOL_NS_GPL(get_each_object_track, MINIDUMP);
+
 static void set_track(struct kmem_cache *s, void *object,
 			enum track_item alloc, unsigned long addr)
 {
@@ -723,6 +740,7 @@
 		p->cpu = smp_processor_id();
 		p->pid = current->pid;
 		p->when = jiffies;
+		trace_android_vh_save_track_hash(alloc == TRACK_ALLOC, p);
 	} else {
 		memset(p, 0, sizeof(struct track));
 	}
@@ -1776,6 +1794,8 @@
 	else
 		page = __alloc_pages_node(node, flags, order);
 
+	trace_android_vh_slab_page_alloced(page, s->size, flags);
+
 	return page;
 }
 
@@ -6254,6 +6274,7 @@
 	sinfo->objects_per_slab = oo_objects(s->oo);
 	sinfo->cache_order = oo_order(s->oo);
 }
+EXPORT_SYMBOL_NS_GPL(get_slabinfo, MINIDUMP);
 
 void slabinfo_show_stats(struct seq_file *m, struct kmem_cache *s)
 {
diff --git a/mm/swap.c b/mm/swap.c
index af3cad4..9da0c05 100644
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -325,7 +325,7 @@
 	return pagevec_count(&per_cpu(lru_pvecs.activate_page, cpu)) != 0;
 }
 
-static void activate_page(struct page *page)
+void activate_page(struct page *page)
 {
 	page = compound_head(page);
 	if (PageLRU(page) && !PageActive(page) && !PageUnevictable(page)) {
@@ -345,7 +345,7 @@
 {
 }
 
-static void activate_page(struct page *page)
+void activate_page(struct page *page)
 {
 	struct lruvec *lruvec;
 
@@ -389,6 +389,40 @@
 	local_unlock(&lru_pvecs.lock);
 }
 
+#ifdef CONFIG_LRU_GEN
+static void page_inc_refs(struct page *page)
+{
+	unsigned long new_flags, old_flags = READ_ONCE(page->flags);
+
+	if (PageUnevictable(page))
+		return;
+
+	if (!PageReferenced(page)) {
+		SetPageReferenced(page);
+		return;
+	}
+
+	if (!PageWorkingset(page)) {
+		SetPageWorkingset(page);
+		return;
+	}
+
+	/* see the comment on MAX_NR_TIERS */
+	do {
+		new_flags = old_flags & LRU_REFS_MASK;
+		if (new_flags == LRU_REFS_MASK)
+			break;
+
+		new_flags += BIT(LRU_REFS_PGOFF);
+		new_flags |= old_flags & ~LRU_REFS_MASK;
+	} while (!try_cmpxchg(&page->flags, &old_flags, new_flags));
+}
+#else
+static void page_inc_refs(struct page *page)
+{
+}
+#endif /* CONFIG_LRU_GEN */
+
 /*
  * Mark a page as having seen activity.
  *
@@ -403,6 +437,12 @@
 {
 	page = compound_head(page);
 
+	if (lru_gen_enabled()) {
+		page_inc_refs(page);
+		return;
+	}
+
+	trace_android_vh_mark_page_accessed(page);
 	if (!PageReferenced(page)) {
 		SetPageReferenced(page);
 	} else if (PageUnevictable(page)) {
@@ -446,6 +486,11 @@
 	VM_BUG_ON_PAGE(PageActive(page) && PageUnevictable(page), page);
 	VM_BUG_ON_PAGE(PageLRU(page), page);
 
+	/* see the comment in lru_gen_add_page() */
+	if (lru_gen_enabled() && !PageUnevictable(page) &&
+	    lru_gen_in_fault() && !(current->flags & PF_MEMALLOC))
+		SetPageActive(page);
+
 	get_page(page);
 	local_lock(&lru_pvecs.lock);
 	pvec = this_cpu_ptr(&lru_pvecs.lru_add);
@@ -547,7 +592,7 @@
 
 static void lru_deactivate_fn(struct page *page, struct lruvec *lruvec)
 {
-	if (PageActive(page) && !PageUnevictable(page)) {
+	if (!PageUnevictable(page) && (PageActive(page) || lru_gen_enabled())) {
 		int nr_pages = thp_nr_pages(page);
 
 		del_page_from_lru_list(page, lruvec);
@@ -661,7 +706,8 @@
  */
 void deactivate_page(struct page *page)
 {
-	if (PageLRU(page) && PageActive(page) && !PageUnevictable(page)) {
+	if (PageLRU(page) && !PageUnevictable(page) &&
+	    (PageActive(page) || lru_gen_enabled())) {
 		struct pagevec *pvec;
 
 		local_lock(&lru_pvecs.lock);
diff --git a/mm/swapfile.c b/mm/swapfile.c
index b7e1620a..28cc865 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -44,6 +44,7 @@
 #include <asm/tlbflush.h>
 #include <linux/swapops.h>
 #include <linux/swap_cgroup.h>
+#include <trace/hooks/bl_hib.h>
 
 static bool swap_count_continued(struct swap_info_struct *, pgoff_t,
 				 unsigned char);
@@ -2529,6 +2530,7 @@
 	struct filename *pathname;
 	int err, found = 0;
 	unsigned int old_block_size;
+	bool hibernation_swap = false;
 
 	if (!capable(CAP_SYS_ADMIN))
 		return -EPERM;
@@ -2618,10 +2620,14 @@
 	flush_work(&p->discard_work);
 
 	destroy_swap_extents(p);
+
+	trace_android_vh_check_hibernation_swap(p->bdev, &hibernation_swap);
+
 	if (p->flags & SWP_CONTINUED)
 		free_swap_count_continuations(p);
 
-	if (!p->bdev || !blk_queue_nonrot(bdev_get_queue(p->bdev)))
+	if (!p->bdev || hibernation_swap ||
+			!blk_queue_nonrot(bdev_get_queue(p->bdev)))
 		atomic_dec(&nr_rotate_swap);
 
 	mutex_lock(&swapon_mutex);
@@ -3145,6 +3151,7 @@
 	struct page *page = NULL;
 	struct inode *inode = NULL;
 	bool inced_nr_rotate_swap = false;
+	bool hibernation_swap = false;
 
 	if (swap_flags & ~SWAP_FLAGS_VALID)
 		return -EINVAL;
@@ -3220,13 +3227,16 @@
 		goto bad_swap_unlock_inode;
 	}
 
+	trace_android_vh_check_hibernation_swap(p->bdev, &hibernation_swap);
+
 	if (p->bdev && blk_queue_stable_writes(p->bdev->bd_disk->queue))
 		p->flags |= SWP_STABLE_WRITES;
 
 	if (p->bdev && p->bdev->bd_disk->fops->rw_page)
 		p->flags |= SWP_SYNCHRONOUS_IO;
 
-	if (p->bdev && blk_queue_nonrot(bdev_get_queue(p->bdev))) {
+	if (p->bdev && !hibernation_swap &&
+				blk_queue_nonrot(bdev_get_queue(p->bdev))) {
 		int cpu;
 		unsigned long ci, nr_cluster;
 
@@ -3411,6 +3421,7 @@
 	val->totalswap = total_swap_pages + nr_to_be_unused;
 	spin_unlock(&swap_lock);
 }
+EXPORT_SYMBOL_NS_GPL(si_swapinfo, MINIDUMP);
 
 /*
  * Verify that a swap entry is valid and increment its swap map count.
diff --git a/mm/util.c b/mm/util.c
index ea04979..746946f 100644
--- a/mm/util.c
+++ b/mm/util.c
@@ -27,6 +27,10 @@
 #include <linux/uaccess.h>
 
 #include "internal.h"
+#ifndef __GENKSYMS__
+#include <trace/hooks/syscall_check.h>
+#include <trace/hooks/mm.h>
+#endif
 
 /**
  * kfree_const - conditionally free memory
@@ -555,6 +559,7 @@
 		if (populate)
 			mm_populate(ret, populate);
 	}
+	trace_android_vh_check_mmap_file(file, prot, flag, ret);
 	return ret;
 }
 
@@ -594,6 +599,7 @@
 {
 	gfp_t kmalloc_flags = flags;
 	void *ret;
+	bool use_vmalloc = false;
 
 	/*
 	 * vmalloc uses GFP_KERNEL for some internal allocations (e.g page tables)
@@ -602,6 +608,9 @@
 	if ((flags & GFP_KERNEL) != GFP_KERNEL)
 		return kmalloc_node(size, flags, node);
 
+	trace_android_vh_kvmalloc_node_use_vmalloc(size, &kmalloc_flags, &use_vmalloc);
+	if (use_vmalloc)
+		goto use_vmalloc_node;
 	/*
 	 * We want to attempt a large physically contiguous block first because
 	 * it is less likely to fragment multiple larger blocks and therefore
@@ -631,6 +640,7 @@
 		return NULL;
 	}
 
+use_vmalloc_node:
 	return __vmalloc_node(size, 1, flags, node,
 			__builtin_return_address(0));
 }
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index b36d94e..e921bfb 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -38,6 +38,7 @@
 #include <linux/pgtable.h>
 #include <linux/uaccess.h>
 #include <linux/hugetlb.h>
+#include <linux/io.h>
 #include <asm/tlbflush.h>
 #include <asm/shmparam.h>
 
@@ -72,7 +73,7 @@
 
 bool is_vmalloc_addr(const void *x)
 {
-	unsigned long addr = (unsigned long)x;
+	unsigned long addr = (unsigned long)kasan_reset_tag(x);
 
 	return addr >= VMALLOC_START && addr < VMALLOC_END;
 }
@@ -316,9 +317,14 @@
 {
 	int err;
 
-	err = vmap_range_noflush(addr, end, phys_addr, pgprot_nx(prot),
+	prot = pgprot_nx(prot);
+	err = vmap_range_noflush(addr, end, phys_addr, prot,
 				 ioremap_max_page_shift);
 	flush_cache_vmap(addr, end);
+
+	if (IS_ENABLED(CONFIG_ARCH_HAS_IOREMAP_PHYS_HOOKS) && !err)
+		ioremap_phys_range_hook(phys_addr, end - addr, prot);
+
 	return err;
 }
 
@@ -630,7 +636,7 @@
 	 * just put it in the vmalloc space.
 	 */
 #if defined(CONFIG_MODULES) && defined(MODULES_VADDR)
-	unsigned long addr = (unsigned long)x;
+	unsigned long addr = (unsigned long)kasan_reset_tag(x);
 	if (addr >= MODULES_VADDR && addr < MODULES_END)
 		return 1;
 #endif
@@ -798,12 +804,15 @@
 {
 	return atomic_long_read(&nr_vmalloc_pages);
 }
+EXPORT_SYMBOL_GPL(vmalloc_nr_pages);
 
 static struct vmap_area *find_vmap_area_exceed_addr(unsigned long addr)
 {
 	struct vmap_area *va = NULL;
 	struct rb_node *n = vmap_area_root.rb_node;
 
+	addr = (unsigned long)kasan_reset_tag((void *)addr);
+
 	while (n) {
 		struct vmap_area *tmp;
 
@@ -825,6 +834,8 @@
 {
 	struct rb_node *n = vmap_area_root.rb_node;
 
+	addr = (unsigned long)kasan_reset_tag((void *)addr);
+
 	while (n) {
 		struct vmap_area *va;
 
@@ -2139,7 +2150,7 @@
 void vm_unmap_ram(const void *mem, unsigned int count)
 {
 	unsigned long size = (unsigned long)count << PAGE_SHIFT;
-	unsigned long addr = (unsigned long)mem;
+	unsigned long addr = (unsigned long)kasan_reset_tag(mem);
 	struct vmap_area *va;
 
 	might_sleep();
@@ -2200,14 +2211,19 @@
 		mem = (void *)addr;
 	}
 
-	kasan_unpoison_vmalloc(mem, size);
-
 	if (vmap_pages_range(addr, addr + size, PAGE_KERNEL,
 				pages, PAGE_SHIFT) < 0) {
 		vm_unmap_ram(mem, count);
 		return NULL;
 	}
 
+	/*
+	 * Mark the pages as accessible, now that they are mapped.
+	 * With hardware tag-based KASAN, marking is skipped for
+	 * non-VM_ALLOC mappings, see __kasan_unpoison_vmalloc().
+	 */
+	mem = kasan_unpoison_vmalloc(mem, size, KASAN_VMALLOC_PROT_NORMAL);
+
 	return mem;
 }
 EXPORT_SYMBOL(vm_map_ram);
@@ -2426,10 +2442,20 @@
 		return NULL;
 	}
 
-	kasan_unpoison_vmalloc((void *)va->va_start, requested_size);
-
 	setup_vmalloc_vm(area, va, flags, caller);
 
+	/*
+	 * Mark pages for non-VM_ALLOC mappings as accessible. Do it now as a
+	 * best-effort approach, as they can be mapped outside of vmalloc code.
+	 * For VM_ALLOC mappings, the pages are marked as accessible after
+	 * getting mapped in __vmalloc_node_range().
+	 * With hardware tag-based KASAN, marking is skipped for
+	 * non-VM_ALLOC mappings, see __kasan_unpoison_vmalloc().
+	 */
+	if (!(flags & VM_ALLOC))
+		area->addr = kasan_unpoison_vmalloc(area->addr, requested_size,
+						    KASAN_VMALLOC_PROT_NORMAL);
+
 	return area;
 }
 
@@ -2488,6 +2514,7 @@
 
 	return va->vm;
 }
+EXPORT_SYMBOL_GPL(find_vm_area);
 
 /**
  * remove_vm_area - find and remove a continuous kernel virtual area
@@ -2513,7 +2540,7 @@
 		va->vm = NULL;
 		spin_unlock(&vmap_area_lock);
 
-		kasan_free_shadow(vm);
+		kasan_free_module_shadow(vm);
 		free_unmap_vmap_area(va);
 
 		return vm;
@@ -2608,6 +2635,10 @@
 
 	kasan_poison_vmalloc(area->addr, get_vm_area_size(area));
 
+	if (IS_ENABLED(CONFIG_ARCH_HAS_IOREMAP_PHYS_HOOKS) &&
+	    area->flags & VM_IOREMAP)
+		iounmap_phys_range_hook(area->phys_addr, get_vm_area_size(area));
+
 	vm_remove_mappings(area, deallocate_pages);
 
 	if (deallocate_pages) {
@@ -2978,7 +3009,8 @@
 			const void *caller)
 {
 	struct vm_struct *area;
-	void *addr;
+	void *ret;
+	kasan_vmalloc_flags_t kasan_flags = KASAN_VMALLOC_NONE;
 	unsigned long real_size = size;
 	unsigned long real_align = align;
 	unsigned int shift = PAGE_SHIFT;
@@ -3026,11 +3058,51 @@
 		goto fail;
 	}
 
-	addr = __vmalloc_area_node(area, gfp_mask, prot, shift, node);
-	if (!addr)
+	/*
+	 * Prepare arguments for __vmalloc_area_node() and
+	 * kasan_unpoison_vmalloc().
+	 */
+	if (pgprot_val(prot) == pgprot_val(PAGE_KERNEL)) {
+		if (kasan_hw_tags_enabled()) {
+			/*
+			 * Modify protection bits to allow tagging.
+			 * This must be done before mapping.
+			 */
+			prot = arch_vmap_pgprot_tagged(prot);
+
+			/*
+			 * Skip page_alloc poisoning and zeroing for physical
+			 * pages backing VM_ALLOC mapping. Memory is instead
+			 * poisoned and zeroed by kasan_unpoison_vmalloc().
+			 */
+			gfp_mask |= __GFP_SKIP_KASAN_UNPOISON | __GFP_SKIP_ZERO;
+		}
+
+		/* Take note that the mapping is PAGE_KERNEL. */
+		kasan_flags |= KASAN_VMALLOC_PROT_NORMAL;
+	}
+
+	/* Allocate physical pages and map them into vmalloc space. */
+	ret = __vmalloc_area_node(area, gfp_mask, prot, shift, node);
+	if (!ret)
 		goto fail;
 
 	/*
+	 * Mark the pages as accessible, now that they are mapped.
+	 * The init condition should match the one in post_alloc_hook()
+	 * (except for the should_skip_init() check) to make sure that memory
+	 * is initialized under the same conditions regardless of the enabled
+	 * KASAN mode.
+	 * Tag-based KASAN modes only assign tags to normal non-executable
+	 * allocations, see __kasan_unpoison_vmalloc().
+	 */
+	kasan_flags |= KASAN_VMALLOC_VM_ALLOC;
+	if (!want_init_on_free() && want_init_on_alloc(gfp_mask))
+		kasan_flags |= KASAN_VMALLOC_INIT;
+	/* KASAN_VMALLOC_PROT_NORMAL already set if required. */
+	area->addr = kasan_unpoison_vmalloc(area->addr, real_size, kasan_flags);
+
+	/*
 	 * In this function, newly allocated vm_struct has VM_UNINITIALIZED
 	 * flag. It means that vm_struct is not fully initialized.
 	 * Now, it is fully initialized, so remove this flag here.
@@ -3041,7 +3113,7 @@
 	if (!(vm_flags & VM_DEFER_KMEMLEAK))
 		kmemleak_vmalloc(area, size, gfp_mask);
 
-	return addr;
+	return area->addr;
 
 fail:
 	if (shift > PAGE_SHIFT) {
@@ -3326,6 +3398,8 @@
 	unsigned long buflen = count;
 	unsigned long n;
 
+	addr = kasan_reset_tag(addr);
+
 	/* Don't allow overflow */
 	if ((unsigned long) addr + count < count)
 		count = -(unsigned long) addr;
@@ -3711,9 +3785,6 @@
 	for (area = 0; area < nr_vms; area++) {
 		if (kasan_populate_vmalloc(vas[area]->va_start, sizes[area]))
 			goto err_free_shadow;
-
-		kasan_unpoison_vmalloc((void *)vas[area]->va_start,
-				       sizes[area]);
 	}
 
 	/* insert all vm's */
@@ -3726,6 +3797,16 @@
 	}
 	spin_unlock(&vmap_area_lock);
 
+	/*
+	 * Mark allocated areas as accessible. Do it now as a best-effort
+	 * approach, as they can be mapped outside of vmalloc code.
+	 * With hardware tag-based KASAN, marking is skipped for
+	 * non-VM_ALLOC mappings, see __kasan_unpoison_vmalloc().
+	 */
+	for (area = 0; area < nr_vms; area++)
+		vms[area]->addr = kasan_unpoison_vmalloc(vms[area]->addr,
+				vms[area]->size, KASAN_VMALLOC_PROT_NORMAL);
+
 	kfree(vas);
 	return vms;
 
diff --git a/mm/vmpressure.c b/mm/vmpressure.c
index 76518e4..61576e2 100644
--- a/mm/vmpressure.c
+++ b/mm/vmpressure.c
@@ -21,6 +21,8 @@
 #include <linux/printk.h>
 #include <linux/vmpressure.h>
 
+#include <trace/hooks/mm.h>
+
 /*
  * The window size (vmpressure_win) is the number of scanned pages before
  * we try to analyze scanned/reclaimed ratio. So the window is used as a
@@ -240,10 +242,15 @@
 		unsigned long scanned, unsigned long reclaimed)
 {
 	struct vmpressure *vmpr;
+	bool bypass = false;
 
 	if (mem_cgroup_disabled())
 		return;
 
+	trace_android_vh_vmpressure(memcg, &bypass);
+	if (bypass)
+		return;
+
 	vmpr = memcg_to_vmpressure(memcg);
 
 	/*
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 201acea..d1a41d3 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -50,6 +50,10 @@
 #include <linux/printk.h>
 #include <linux/dax.h>
 #include <linux/psi.h>
+#include <linux/pagewalk.h>
+#include <linux/shmem_fs.h>
+#include <linux/ctype.h>
+#include <linux/debugfs.h>
 
 #include <asm/tlbflush.h>
 #include <asm/div64.h>
@@ -62,6 +66,12 @@
 #define CREATE_TRACE_POINTS
 #include <trace/events/vmscan.h>
 
+EXPORT_TRACEPOINT_SYMBOL_GPL(mm_vmscan_direct_reclaim_begin);
+EXPORT_TRACEPOINT_SYMBOL_GPL(mm_vmscan_direct_reclaim_end);
+
+#undef CREATE_TRACE_POINTS
+#include <trace/hooks/vmscan.h>
+
 struct scan_control {
 	/* How many pages shrink_list() should reclaim */
 	unsigned long nr_to_reclaim;
@@ -125,6 +135,12 @@
 	/* Always discard instead of demoting to lower tier memory */
 	unsigned int no_demotion:1;
 
+#ifdef CONFIG_LRU_GEN
+	/* help kswapd make better choices among multiple memcgs */
+	unsigned int memcgs_need_aging:1;
+	unsigned long last_reclaimed;
+#endif
+
 	/* Allocation order */
 	s8 order;
 
@@ -702,6 +718,8 @@
 					  : SHRINK_BATCH;
 	long scanned = 0, next_deferred;
 
+	trace_android_vh_do_shrink_slab(shrinker, shrinkctl, priority);
+
 	freeable = shrinker->count_objects(shrinker, shrinkctl);
 	if (freeable == 0 || freeable == SHRINK_EMPTY)
 		return freeable;
@@ -888,12 +906,17 @@
  *
  * Returns the number of reclaimed slab objects.
  */
-static unsigned long shrink_slab(gfp_t gfp_mask, int nid,
+unsigned long shrink_slab(gfp_t gfp_mask, int nid,
 				 struct mem_cgroup *memcg,
 				 int priority)
 {
 	unsigned long ret, freed = 0;
 	struct shrinker *shrinker;
+	bool bypass = false;
+
+	trace_android_vh_shrink_slab_bypass(gfp_mask, nid, memcg, priority, &bypass);
+	if (bypass)
+		return 0;
 
 	/*
 	 * The root memcg might be allocated even though memcg is disabled
@@ -935,6 +958,7 @@
 	cond_resched();
 	return freed;
 }
+EXPORT_SYMBOL_GPL(shrink_slab);
 
 void drop_slab_node(int nid)
 {
@@ -1142,9 +1166,11 @@
 
 	if (PageSwapCache(page)) {
 		swp_entry_t swap = { .val = page_private(page) };
-		mem_cgroup_swapout(page, swap);
+
+		/* get a shadow entry before mem_cgroup_swapout() clears page_memcg() */
 		if (reclaimed && !mapping_exiting(mapping))
 			shadow = workingset_eviction(page, target_memcg);
+		mem_cgroup_swapout(page, swap);
 		__delete_from_swap_cache(page, swap, shadow);
 		xa_unlock_irq(&mapping->i_pages);
 		put_swap_page(page, swap);
@@ -1232,11 +1258,24 @@
 {
 	int referenced_ptes, referenced_page;
 	unsigned long vm_flags;
+	bool should_protect = false;
+	bool trylock_fail = false;
+	int ret = 0;
 
+	trace_android_vh_page_should_be_protected(page, &should_protect);
+	if (unlikely(should_protect))
+		return PAGEREF_ACTIVATE;
+
+	trace_android_vh_page_trylock_set(page);
+	trace_android_vh_check_page_look_around_ref(page, &ret);
+	if (ret)
+		return ret;
 	referenced_ptes = page_referenced(page, 1, sc->target_mem_cgroup,
 					  &vm_flags);
 	referenced_page = TestClearPageReferenced(page);
-
+	trace_android_vh_page_trylock_get_result(page, &trylock_fail);
+	if (trylock_fail)
+		return PAGEREF_KEEP;
 	/*
 	 * Mlock lost the isolation race with us.  Let try_to_unmap()
 	 * move the page to the unevictable list.
@@ -1244,6 +1283,10 @@
 	if (vm_flags & VM_LOCKED)
 		return PAGEREF_RECLAIM;
 
+	/* rmap lock contention: rotate */
+	if (referenced_ptes == -1)
+		return PAGEREF_KEEP;
+
 	if (referenced_ptes) {
 		/*
 		 * All mapped pages start out with page table
@@ -1373,6 +1416,7 @@
 	unsigned int nr_reclaimed = 0;
 	unsigned int pgactivate = 0;
 	bool do_demote_pass;
+	bool page_trylock_result;
 
 	memset(stat, 0, sizeof(*stat));
 	cond_resched();
@@ -1407,6 +1451,11 @@
 		if (!sc->may_unmap && page_mapped(page))
 			goto keep_locked;
 
+		/* page_update_gen() tried to promote this page? */
+		if (lru_gen_enabled() && !ignore_references &&
+		    page_mapped(page) && PageReferenced(page))
+			goto keep_locked;
+
 		may_enter_fs = (sc->gfp_mask & __GFP_FS) ||
 			(PageSwapCache(page) && (sc->gfp_mask & __GFP_IO));
 
@@ -1610,7 +1659,8 @@
 
 			if (unlikely(PageTransHuge(page)))
 				flags |= TTU_SPLIT_HUGE_PMD;
-
+			if (!ignore_references)
+				trace_android_vh_page_trylock_set(page);
 			try_to_unmap(page, flags);
 			if (page_mapped(page)) {
 				stat->nr_unmap_fail += nr_pages;
@@ -1723,6 +1773,7 @@
 					 * increment nr_reclaimed here (and
 					 * leave it off the LRU).
 					 */
+					trace_android_vh_page_trylock_clear(page);
 					nr_reclaimed++;
 					continue;
 				}
@@ -1759,6 +1810,7 @@
 		 * Is there need to periodically free_page_list? It would
 		 * appear not as the counts should be low
 		 */
+		trace_android_vh_page_trylock_clear(page);
 		if (unlikely(PageTransHuge(page)))
 			destroy_compound_page(page);
 		else
@@ -1787,6 +1839,21 @@
 			count_memcg_page_event(page, PGACTIVATE);
 		}
 keep_locked:
+		/*
+		 * The page with trylock-bit will be added ret_pages and
+		 * handled in trace_android_vh_handle_failed_page_trylock.
+		 * If the page carried with trylock-bit after unlocked by
+		 * shrink_page_list will cause some error-issues in other
+		 * scene, so clear trylock-bit here.
+		 * trace_android_vh_page_trylock_get_result will clear
+		 * trylock-bit and return if page tyrlock failed in
+		 * reclaim-process. Here we just want to clear trylock-bit
+		 * so that ignore page_trylock_result.
+		 * TODO: trace_android_vh_page_trylock_get_result should be
+		 * changed to a different hook which correctly reflects the
+		 * usage here, which is to clear the try-lock bit.
+		 */
+		trace_android_vh_page_trylock_get_result(page, &page_trylock_result);
 		unlock_page(page);
 keep:
 		list_add(&page->lru, &ret_pages);
@@ -1883,6 +1950,25 @@
 
 }
 
+#ifdef CONFIG_CMA
+/*
+ * It is waste of effort to scan and reclaim CMA pages if it is not available
+ * for current allocation context. Kswapd can not be enrolled as it can not
+ * distinguish this scenario by using sc->gfp_mask = GFP_KERNEL
+ */
+static bool skip_cma(struct page *page, struct scan_control *sc)
+{
+	return !current_is_kswapd() &&
+			gfp_migratetype(sc->gfp_mask) != MIGRATE_MOVABLE &&
+			get_pageblock_migratetype(page) == MIGRATE_CMA;
+}
+#else
+static bool skip_cma(struct page *page, struct scan_control *sc)
+{
+	return false;
+}
+#endif
+
 /*
  * Isolating page from the lruvec to fill in @dst list by nr_to_scan times.
  *
@@ -1929,7 +2015,8 @@
 		nr_pages = compound_nr(page);
 		total_scan += nr_pages;
 
-		if (page_zonenum(page) > sc->reclaim_idx) {
+		if (page_zonenum(page) > sc->reclaim_idx ||
+				skip_cma(page, sc)) {
 			nr_skipped[page_zonenum(page)] += nr_pages;
 			move_to = &pages_skipped;
 			goto move;
@@ -1968,6 +2055,7 @@
 		move_to = dst;
 move:
 		list_move(&page->lru, move_to);
+		trace_android_vh_del_page_from_lrulist(page, false, lru);
 	}
 
 	/*
@@ -2214,6 +2302,7 @@
 		return 0;
 
 	nr_reclaimed = shrink_page_list(&page_list, pgdat, sc, &stat, false);
+	trace_android_vh_handle_failed_page_trylock(&page_list);
 
 	spin_lock_irq(&lruvec->lru_lock);
 	move_pages_to_lru(lruvec, &page_list);
@@ -2291,6 +2380,8 @@
 	unsigned nr_rotated = 0;
 	int file = is_file_lru(lru);
 	struct pglist_data *pgdat = lruvec_pgdat(lruvec);
+	bool bypass = false;
+	bool should_protect = false;
 
 	lru_add_drain();
 
@@ -2325,8 +2416,20 @@
 			}
 		}
 
+		trace_android_vh_page_should_be_protected(page, &should_protect);
+		if (unlikely(should_protect)) {
+			nr_rotated += thp_nr_pages(page);
+			list_add(&page->lru, &l_active);
+			continue;
+		}
+
+		trace_android_vh_page_referenced_check_bypass(page, nr_to_scan, lru, &bypass);
+		if (bypass)
+			goto skip_page_referenced;
+		trace_android_vh_page_trylock_set(page);
+		/* Referenced or rmap lock contention: rotate */
 		if (page_referenced(page, 0, sc->target_mem_cgroup,
-				    &vm_flags)) {
+				     &vm_flags) != 0) {
 			/*
 			 * Identify referenced, file-backed active pages and
 			 * give them one more trip around the active list. So
@@ -2337,12 +2440,14 @@
 			 * so we ignore them here.
 			 */
 			if ((vm_flags & VM_EXEC) && page_is_file_lru(page)) {
+				trace_android_vh_page_trylock_clear(page);
 				nr_rotated += thp_nr_pages(page);
 				list_add(&page->lru, &l_active);
 				continue;
 			}
 		}
-
+		trace_android_vh_page_trylock_clear(page);
+skip_page_referenced:
 		ClearPageActive(page);	/* we are de-activating */
 		SetPageWorkingset(page);
 		list_add(&page->lru, &l_inactive);
@@ -2428,6 +2533,7 @@
 
 	return nr_reclaimed;
 }
+EXPORT_SYMBOL_GPL(reclaim_pages);
 
 static unsigned long shrink_list(enum lru_list lru, unsigned long nr_to_scan,
 				 struct lruvec *lruvec, struct scan_control *sc)
@@ -2487,6 +2593,8 @@
 	else
 		inactive_ratio = 1;
 
+	trace_android_vh_tune_inactive_ratio(&inactive_ratio, is_file_lru(inactive_lru));
+
 	return inactive * inactive_ratio < active;
 }
 
@@ -2497,6 +2605,112 @@
 	SCAN_FILE,
 };
 
+static void prepare_scan_count(pg_data_t *pgdat, struct scan_control *sc)
+{
+	unsigned long file;
+	struct lruvec *target_lruvec;
+
+	if (lru_gen_enabled())
+		return;
+
+	target_lruvec = mem_cgroup_lruvec(sc->target_mem_cgroup, pgdat);
+
+	/*
+	 * Flush the memory cgroup stats, so that we read accurate per-memcg
+	 * lruvec stats for heuristics.
+	 */
+	mem_cgroup_flush_stats();
+
+	/*
+	 * Determine the scan balance between anon and file LRUs.
+	 */
+	spin_lock_irq(&target_lruvec->lru_lock);
+	sc->anon_cost = target_lruvec->anon_cost;
+	sc->file_cost = target_lruvec->file_cost;
+	spin_unlock_irq(&target_lruvec->lru_lock);
+
+	/*
+	 * Target desirable inactive:active list ratios for the anon
+	 * and file LRU lists.
+	 */
+	if (!sc->force_deactivate) {
+		unsigned long refaults;
+
+		refaults = lruvec_page_state(target_lruvec,
+				WORKINGSET_ACTIVATE_ANON);
+		if (refaults != target_lruvec->refaults[0] ||
+			inactive_is_low(target_lruvec, LRU_INACTIVE_ANON))
+			sc->may_deactivate |= DEACTIVATE_ANON;
+		else
+			sc->may_deactivate &= ~DEACTIVATE_ANON;
+
+		/*
+		 * When refaults are being observed, it means a new
+		 * workingset is being established. Deactivate to get
+		 * rid of any stale active pages quickly.
+		 */
+		refaults = lruvec_page_state(target_lruvec,
+				WORKINGSET_ACTIVATE_FILE);
+		if (refaults != target_lruvec->refaults[1] ||
+		    inactive_is_low(target_lruvec, LRU_INACTIVE_FILE))
+			sc->may_deactivate |= DEACTIVATE_FILE;
+		else
+			sc->may_deactivate &= ~DEACTIVATE_FILE;
+	} else
+		sc->may_deactivate = DEACTIVATE_ANON | DEACTIVATE_FILE;
+
+	/*
+	 * If we have plenty of inactive file pages that aren't
+	 * thrashing, try to reclaim those first before touching
+	 * anonymous pages.
+	 */
+	file = lruvec_page_state(target_lruvec, NR_INACTIVE_FILE);
+	if (file >> sc->priority && !(sc->may_deactivate & DEACTIVATE_FILE))
+		sc->cache_trim_mode = 1;
+	else
+		sc->cache_trim_mode = 0;
+
+	/*
+	 * Prevent the reclaimer from falling into the cache trap: as
+	 * cache pages start out inactive, every cache fault will tip
+	 * the scan balance towards the file LRU.  And as the file LRU
+	 * shrinks, so does the window for rotation from references.
+	 * This means we have a runaway feedback loop where a tiny
+	 * thrashing file LRU becomes infinitely more attractive than
+	 * anon pages.  Try to detect this based on file LRU size.
+	 */
+	if (!cgroup_reclaim(sc)) {
+		unsigned long total_high_wmark = 0;
+		unsigned long free, anon;
+		int z;
+
+		free = sum_zone_node_page_state(pgdat->node_id, NR_FREE_PAGES);
+		file = node_page_state(pgdat, NR_ACTIVE_FILE) +
+			   node_page_state(pgdat, NR_INACTIVE_FILE);
+
+		for (z = 0; z < MAX_NR_ZONES; z++) {
+			struct zone *zone = &pgdat->node_zones[z];
+
+			if (!managed_zone(zone))
+				continue;
+
+			total_high_wmark += high_wmark_pages(zone);
+		}
+
+		/*
+		 * Consider anon: if that's low too, this isn't a
+		 * runaway file reclaim problem, but rather just
+		 * extreme pressure. Reclaim as per usual then.
+		 */
+		anon = node_page_state(pgdat, NR_INACTIVE_ANON);
+
+		sc->file_is_tiny =
+			file + free <= total_high_wmark &&
+			!(sc->may_deactivate & DEACTIVATE_ANON) &&
+			anon >> sc->priority;
+	}
+}
+
 /*
  * Determine how aggressively the anon and file LRU lists should be
  * scanned.  The relative value of each set of LRU lists is determined
@@ -2518,6 +2732,7 @@
 	enum scan_balance scan_balance;
 	unsigned long ap, fp;
 	enum lru_list lru;
+	bool balance_anon_file_reclaim = false;
 
 	/* If we have no swap space, do not bother scanning anon pages. */
 	if (!sc->may_swap || !can_reclaim_anon_pages(memcg, pgdat->node_id, sc)) {
@@ -2525,6 +2740,7 @@
 		goto out;
 	}
 
+	trace_android_vh_tune_swappiness(&swappiness);
 	/*
 	 * Global reclaim will swap to prevent OOM even with no
 	 * swappiness, but memcg users want to use this knob to
@@ -2555,11 +2771,15 @@
 		goto out;
 	}
 
+	trace_android_rvh_set_balance_anon_file_reclaim(&balance_anon_file_reclaim);
+
 	/*
 	 * If there is enough inactive page cache, we do not reclaim
-	 * anything from the anonymous working right now.
+	 * anything from the anonymous working right now. But when balancing
+	 * anon and page cache files for reclaim, allow swapping of anon pages
+	 * even if there are a number of inactive file cache pages.
 	 */
-	if (sc->cache_trim_mode) {
+	if (!balance_anon_file_reclaim && sc->cache_trim_mode) {
 		scan_balance = SCAN_FILE;
 		goto out;
 	}
@@ -2595,6 +2815,8 @@
 	fraction[1] = fp;
 	denominator = ap + fp;
 out:
+	trace_android_vh_tune_scan_type((char *)(&scan_balance));
+	trace_android_vh_tune_memcg_scan_type(memcg, (char *)(&scan_balance));
 	for_each_evictable_lru(lru) {
 		int file = is_file_lru(lru);
 		unsigned long lruvec_size;
@@ -2718,6 +2940,2769 @@
 	return can_demote(pgdat->node_id, sc);
 }
 
+#ifdef CONFIG_LRU_GEN
+
+#ifdef CONFIG_LRU_GEN_ENABLED
+DEFINE_STATIC_KEY_ARRAY_TRUE(lru_gen_caps, NR_LRU_GEN_CAPS);
+#define get_cap(cap)	static_branch_likely(&lru_gen_caps[cap])
+#else
+DEFINE_STATIC_KEY_ARRAY_FALSE(lru_gen_caps, NR_LRU_GEN_CAPS);
+#define get_cap(cap)	static_branch_unlikely(&lru_gen_caps[cap])
+#endif
+
+/******************************************************************************
+ *                          shorthand helpers
+ ******************************************************************************/
+
+#define LRU_REFS_FLAGS	(BIT(PG_referenced) | BIT(PG_workingset))
+
+#define DEFINE_MAX_SEQ(lruvec)						\
+	unsigned long max_seq = READ_ONCE((lruvec)->lrugen.max_seq)
+
+#define DEFINE_MIN_SEQ(lruvec)						\
+	unsigned long min_seq[ANON_AND_FILE] = {			\
+		READ_ONCE((lruvec)->lrugen.min_seq[LRU_GEN_ANON]),	\
+		READ_ONCE((lruvec)->lrugen.min_seq[LRU_GEN_FILE]),	\
+	}
+
+#define for_each_gen_type_zone(gen, type, zone)				\
+	for ((gen) = 0; (gen) < MAX_NR_GENS; (gen)++)			\
+		for ((type) = 0; (type) < ANON_AND_FILE; (type)++)	\
+			for ((zone) = 0; (zone) < MAX_NR_ZONES; (zone)++)
+
+static struct lruvec *get_lruvec(struct mem_cgroup *memcg, int nid)
+{
+	struct pglist_data *pgdat = NODE_DATA(nid);
+
+#ifdef CONFIG_MEMCG
+	if (memcg) {
+		struct lruvec *lruvec = &memcg->nodeinfo[nid]->lruvec;
+
+		/* for hotadd_new_pgdat() */
+		if (!lruvec->pgdat)
+			lruvec->pgdat = pgdat;
+
+		return lruvec;
+	}
+#endif
+	VM_WARN_ON_ONCE(!mem_cgroup_disabled());
+
+	return pgdat ? &pgdat->__lruvec : NULL;
+}
+
+static int get_swappiness(struct lruvec *lruvec, struct scan_control *sc)
+{
+	struct mem_cgroup *memcg = lruvec_memcg(lruvec);
+	struct pglist_data *pgdat = lruvec_pgdat(lruvec);
+
+	if (!can_demote(pgdat->node_id, sc) &&
+		mem_cgroup_get_nr_swap_pages(memcg) <= 0)
+		return 0;
+
+	return mem_cgroup_swappiness(memcg);
+}
+
+static int get_nr_gens(struct lruvec *lruvec, int type)
+{
+	return lruvec->lrugen.max_seq - lruvec->lrugen.min_seq[type] + 1;
+}
+
+static bool __maybe_unused seq_is_valid(struct lruvec *lruvec)
+{
+	/* see the comment on lru_gen_struct */
+	return get_nr_gens(lruvec, LRU_GEN_FILE) >= MIN_NR_GENS &&
+	       get_nr_gens(lruvec, LRU_GEN_FILE) <= get_nr_gens(lruvec, LRU_GEN_ANON) &&
+	       get_nr_gens(lruvec, LRU_GEN_ANON) <= MAX_NR_GENS;
+}
+
+/******************************************************************************
+ *                          mm_struct list
+ ******************************************************************************/
+
+static struct lru_gen_mm_list *get_mm_list(struct mem_cgroup *memcg)
+{
+	static struct lru_gen_mm_list mm_list = {
+		.fifo = LIST_HEAD_INIT(mm_list.fifo),
+		.lock = __SPIN_LOCK_UNLOCKED(mm_list.lock),
+	};
+
+#ifdef CONFIG_MEMCG
+	if (memcg)
+		return &memcg->mm_list;
+#endif
+	VM_WARN_ON_ONCE(!mem_cgroup_disabled());
+
+	return &mm_list;
+}
+
+void lru_gen_add_mm(struct mm_struct *mm)
+{
+	int nid;
+	struct mem_cgroup *memcg = get_mem_cgroup_from_mm(mm);
+	struct lru_gen_mm_list *mm_list = get_mm_list(memcg);
+
+	VM_WARN_ON_ONCE(!list_empty(&mm->lru_gen.list));
+#ifdef CONFIG_MEMCG
+	VM_WARN_ON_ONCE(mm->lru_gen.memcg);
+	mm->lru_gen.memcg = memcg;
+#endif
+	spin_lock(&mm_list->lock);
+
+	for_each_node_state(nid, N_MEMORY) {
+		struct lruvec *lruvec = get_lruvec(memcg, nid);
+
+		if (!lruvec)
+			continue;
+
+		/* the first addition since the last iteration */
+		if (lruvec->mm_state.tail == &mm_list->fifo)
+			lruvec->mm_state.tail = &mm->lru_gen.list;
+	}
+
+	list_add_tail(&mm->lru_gen.list, &mm_list->fifo);
+
+	spin_unlock(&mm_list->lock);
+}
+
+void lru_gen_del_mm(struct mm_struct *mm)
+{
+	int nid;
+	struct lru_gen_mm_list *mm_list;
+	struct mem_cgroup *memcg = NULL;
+
+	if (list_empty(&mm->lru_gen.list))
+		return;
+
+#ifdef CONFIG_MEMCG
+	memcg = mm->lru_gen.memcg;
+#endif
+	mm_list = get_mm_list(memcg);
+
+	spin_lock(&mm_list->lock);
+
+	for_each_node(nid) {
+		struct lruvec *lruvec = get_lruvec(memcg, nid);
+
+		if (!lruvec)
+			continue;
+
+		/* where the current iteration continues after */
+		if (lruvec->mm_state.head == &mm->lru_gen.list)
+			lruvec->mm_state.head = lruvec->mm_state.head->prev;
+
+		/* where the last iteration ended before */
+		if (lruvec->mm_state.tail == &mm->lru_gen.list)
+			lruvec->mm_state.tail = lruvec->mm_state.tail->next;
+	}
+
+	list_del_init(&mm->lru_gen.list);
+
+	spin_unlock(&mm_list->lock);
+
+#ifdef CONFIG_MEMCG
+	mem_cgroup_put(mm->lru_gen.memcg);
+	mm->lru_gen.memcg = NULL;
+#endif
+}
+
+#ifdef CONFIG_MEMCG
+void lru_gen_migrate_mm(struct mm_struct *mm)
+{
+	struct mem_cgroup *memcg;
+	struct task_struct *task = rcu_dereference_protected(mm->owner, true);
+
+	VM_WARN_ON_ONCE(task->mm != mm);
+	lockdep_assert_held(&task->alloc_lock);
+
+	/* for mm_update_next_owner() */
+	if (mem_cgroup_disabled())
+		return;
+
+	/* migration can happen before addition */
+	if (!mm->lru_gen.memcg)
+		return;
+
+	rcu_read_lock();
+	memcg = mem_cgroup_from_task(task);
+	rcu_read_unlock();
+	if (memcg == mm->lru_gen.memcg)
+		return;
+
+	VM_WARN_ON_ONCE(list_empty(&mm->lru_gen.list));
+
+	lru_gen_del_mm(mm);
+	lru_gen_add_mm(mm);
+}
+#endif
+
+/*
+ * Bloom filters with m=1<<15, k=2 and the false positive rates of ~1/5 when
+ * n=10,000 and ~1/2 when n=20,000, where, conventionally, m is the number of
+ * bits in a bitmap, k is the number of hash functions and n is the number of
+ * inserted items.
+ *
+ * Page table walkers use one of the two filters to reduce their search space.
+ * To get rid of non-leaf entries that no longer have enough leaf entries, the
+ * aging uses the double-buffering technique to flip to the other filter each
+ * time it produces a new generation. For non-leaf entries that have enough
+ * leaf entries, the aging carries them over to the next generation in
+ * walk_pmd_range(); the eviction also report them when walking the rmap
+ * in lru_gen_look_around().
+ *
+ * For future optimizations:
+ * 1. It's not necessary to keep both filters all the time. The spare one can be
+ *    freed after the RCU grace period and reallocated if needed again.
+ * 2. And when reallocating, it's worth scaling its size according to the number
+ *    of inserted entries in the other filter, to reduce the memory overhead on
+ *    small systems and false positives on large systems.
+ * 3. Jenkins' hash function is an alternative to Knuth's.
+ */
+#define BLOOM_FILTER_SHIFT	15
+
+static inline int filter_gen_from_seq(unsigned long seq)
+{
+	return seq % NR_BLOOM_FILTERS;
+}
+
+static void get_item_key(void *item, int *key)
+{
+	u32 hash = hash_ptr(item, BLOOM_FILTER_SHIFT * 2);
+
+	BUILD_BUG_ON(BLOOM_FILTER_SHIFT * 2 > BITS_PER_TYPE(u32));
+
+	key[0] = hash & (BIT(BLOOM_FILTER_SHIFT) - 1);
+	key[1] = hash >> BLOOM_FILTER_SHIFT;
+}
+
+static void reset_bloom_filter(struct lruvec *lruvec, unsigned long seq)
+{
+	unsigned long *filter;
+	int gen = filter_gen_from_seq(seq);
+
+	filter = lruvec->mm_state.filters[gen];
+	if (filter) {
+		bitmap_clear(filter, 0, BIT(BLOOM_FILTER_SHIFT));
+		return;
+	}
+
+	filter = bitmap_zalloc(BIT(BLOOM_FILTER_SHIFT),
+			       __GFP_HIGH | __GFP_NOMEMALLOC | __GFP_NOWARN);
+	WRITE_ONCE(lruvec->mm_state.filters[gen], filter);
+}
+
+static void update_bloom_filter(struct lruvec *lruvec, unsigned long seq, void *item)
+{
+	int key[2];
+	unsigned long *filter;
+	int gen = filter_gen_from_seq(seq);
+
+	filter = READ_ONCE(lruvec->mm_state.filters[gen]);
+	if (!filter)
+		return;
+
+	get_item_key(item, key);
+
+	if (!test_bit(key[0], filter))
+		set_bit(key[0], filter);
+	if (!test_bit(key[1], filter))
+		set_bit(key[1], filter);
+}
+
+static bool test_bloom_filter(struct lruvec *lruvec, unsigned long seq, void *item)
+{
+	int key[2];
+	unsigned long *filter;
+	int gen = filter_gen_from_seq(seq);
+
+	filter = READ_ONCE(lruvec->mm_state.filters[gen]);
+	if (!filter)
+		return true;
+
+	get_item_key(item, key);
+
+	return test_bit(key[0], filter) && test_bit(key[1], filter);
+}
+
+static void reset_mm_stats(struct lruvec *lruvec, struct lru_gen_mm_walk *walk, bool last)
+{
+	int i;
+	int hist;
+
+	lockdep_assert_held(&get_mm_list(lruvec_memcg(lruvec))->lock);
+
+	if (walk) {
+		hist = lru_hist_from_seq(walk->max_seq);
+
+		for (i = 0; i < NR_MM_STATS; i++) {
+			WRITE_ONCE(lruvec->mm_state.stats[hist][i],
+				   lruvec->mm_state.stats[hist][i] + walk->mm_stats[i]);
+			walk->mm_stats[i] = 0;
+		}
+	}
+
+	if (NR_HIST_GENS > 1 && last) {
+		hist = lru_hist_from_seq(lruvec->mm_state.seq + 1);
+
+		for (i = 0; i < NR_MM_STATS; i++)
+			WRITE_ONCE(lruvec->mm_state.stats[hist][i], 0);
+	}
+}
+
+static bool should_skip_mm(struct mm_struct *mm, struct lru_gen_mm_walk *walk)
+{
+	int type;
+	unsigned long size = 0;
+	struct pglist_data *pgdat = lruvec_pgdat(walk->lruvec);
+	int key = pgdat->node_id;
+
+	if (!walk->full_scan && !node_isset(key, mm->lru_gen.nodes))
+		return true;
+
+	node_clear(key, mm->lru_gen.nodes);
+
+	for (type = !walk->can_swap; type < ANON_AND_FILE; type++) {
+		size += type ? get_mm_counter(mm, MM_FILEPAGES) :
+			       get_mm_counter(mm, MM_ANONPAGES) +
+			       get_mm_counter(mm, MM_SHMEMPAGES);
+	}
+
+	if (size < MIN_LRU_BATCH)
+		return true;
+
+	return !mmget_not_zero(mm);
+}
+
+static bool iterate_mm_list(struct lruvec *lruvec, struct lru_gen_mm_walk *walk,
+			    struct mm_struct **iter)
+{
+	bool first = false;
+	bool last = false;
+	struct mm_struct *mm = NULL;
+	struct mem_cgroup *memcg = lruvec_memcg(lruvec);
+	struct lru_gen_mm_list *mm_list = get_mm_list(memcg);
+	struct lru_gen_mm_state *mm_state = &lruvec->mm_state;
+
+	/*
+	 * mm_state->seq is incremented after each iteration of mm_list. There
+	 * are three interesting cases for this page table walker:
+	 * 1. It tries to start a new iteration with a stale max_seq: there is
+	 *    nothing left to do.
+	 * 2. It started the next iteration: it needs to reset the Bloom filter
+	 *    so that a fresh set of PTE tables can be recorded.
+	 * 3. It ended the current iteration: it needs to reset the mm stats
+	 *    counters and tell its caller to increment max_seq.
+	 */
+	spin_lock(&mm_list->lock);
+
+	VM_WARN_ON_ONCE(mm_state->seq + 1 < walk->max_seq);
+
+	if (walk->max_seq <= mm_state->seq)
+		goto done;
+
+	if (!mm_state->head)
+		mm_state->head = &mm_list->fifo;
+
+	if (mm_state->head == &mm_list->fifo)
+		first = true;
+
+	do {
+		mm_state->head = mm_state->head->next;
+		if (mm_state->head == &mm_list->fifo) {
+			WRITE_ONCE(mm_state->seq, mm_state->seq + 1);
+			last = true;
+			break;
+		}
+
+		/* force scan for those added after the last iteration */
+		if (!mm_state->tail || mm_state->tail == mm_state->head) {
+			mm_state->tail = mm_state->head->next;
+			walk->full_scan = true;
+		}
+
+		mm = list_entry(mm_state->head, struct mm_struct, lru_gen.list);
+		if (should_skip_mm(mm, walk))
+			mm = NULL;
+	} while (!mm);
+done:
+	if (*iter || last)
+		reset_mm_stats(lruvec, walk, last);
+
+	spin_unlock(&mm_list->lock);
+
+	if (mm && first)
+		reset_bloom_filter(lruvec, walk->max_seq + 1);
+
+	if (*iter)
+		mmput_async(*iter);
+
+	*iter = mm;
+
+	return last;
+}
+
+static bool iterate_mm_list_nowalk(struct lruvec *lruvec, unsigned long max_seq)
+{
+	bool success = false;
+	struct mem_cgroup *memcg = lruvec_memcg(lruvec);
+	struct lru_gen_mm_list *mm_list = get_mm_list(memcg);
+	struct lru_gen_mm_state *mm_state = &lruvec->mm_state;
+
+	spin_lock(&mm_list->lock);
+
+	VM_WARN_ON_ONCE(mm_state->seq + 1 < max_seq);
+
+	if (max_seq > mm_state->seq) {
+		mm_state->head = NULL;
+		mm_state->tail = NULL;
+		WRITE_ONCE(mm_state->seq, mm_state->seq + 1);
+		reset_mm_stats(lruvec, NULL, true);
+		success = true;
+	}
+
+	spin_unlock(&mm_list->lock);
+
+	return success;
+}
+
+/******************************************************************************
+ *                          refault feedback loop
+ ******************************************************************************/
+
+/*
+ * A feedback loop based on Proportional-Integral-Derivative (PID) controller.
+ *
+ * The P term is refaulted/(evicted+protected) from a tier in the generation
+ * currently being evicted; the I term is the exponential moving average of the
+ * P term over the generations previously evicted, using the smoothing factor
+ * 1/2; the D term isn't supported.
+ *
+ * The setpoint (SP) is always the first tier of one type; the process variable
+ * (PV) is either any tier of the other type or any other tier of the same
+ * type.
+ *
+ * The error is the difference between the SP and the PV; the correction is to
+ * turn off protection when SP>PV or turn on protection when SP<PV.
+ *
+ * For future optimizations:
+ * 1. The D term may discount the other two terms over time so that long-lived
+ *    generations can resist stale information.
+ */
+struct ctrl_pos {
+	unsigned long refaulted;
+	unsigned long total;
+	int gain;
+};
+
+static void read_ctrl_pos(struct lruvec *lruvec, int type, int tier, int gain,
+			  struct ctrl_pos *pos)
+{
+	struct lru_gen_struct *lrugen = &lruvec->lrugen;
+	int hist = lru_hist_from_seq(lrugen->min_seq[type]);
+
+	pos->refaulted = lrugen->avg_refaulted[type][tier] +
+			 atomic_long_read(&lrugen->refaulted[hist][type][tier]);
+	pos->total = lrugen->avg_total[type][tier] +
+		     atomic_long_read(&lrugen->evicted[hist][type][tier]);
+	if (tier)
+		pos->total += lrugen->protected[hist][type][tier - 1];
+	pos->gain = gain;
+}
+
+static void reset_ctrl_pos(struct lruvec *lruvec, int type, bool carryover)
+{
+	int hist, tier;
+	struct lru_gen_struct *lrugen = &lruvec->lrugen;
+	bool clear = carryover ? NR_HIST_GENS == 1 : NR_HIST_GENS > 1;
+	unsigned long seq = carryover ? lrugen->min_seq[type] : lrugen->max_seq + 1;
+
+	lockdep_assert_held(&lruvec->lru_lock);
+
+	if (!carryover && !clear)
+		return;
+
+	hist = lru_hist_from_seq(seq);
+
+	for (tier = 0; tier < MAX_NR_TIERS; tier++) {
+		if (carryover) {
+			unsigned long sum;
+
+			sum = lrugen->avg_refaulted[type][tier] +
+			      atomic_long_read(&lrugen->refaulted[hist][type][tier]);
+			WRITE_ONCE(lrugen->avg_refaulted[type][tier], sum / 2);
+
+			sum = lrugen->avg_total[type][tier] +
+			      atomic_long_read(&lrugen->evicted[hist][type][tier]);
+			if (tier)
+				sum += lrugen->protected[hist][type][tier - 1];
+			WRITE_ONCE(lrugen->avg_total[type][tier], sum / 2);
+		}
+
+		if (clear) {
+			atomic_long_set(&lrugen->refaulted[hist][type][tier], 0);
+			atomic_long_set(&lrugen->evicted[hist][type][tier], 0);
+			if (tier)
+				WRITE_ONCE(lrugen->protected[hist][type][tier - 1], 0);
+		}
+	}
+}
+
+static bool positive_ctrl_err(struct ctrl_pos *sp, struct ctrl_pos *pv)
+{
+	/*
+	 * Return true if the PV has a limited number of refaults or a lower
+	 * refaulted/total than the SP.
+	 */
+	return pv->refaulted < MIN_LRU_BATCH ||
+	       pv->refaulted * (sp->total + MIN_LRU_BATCH) * sp->gain <=
+	       (sp->refaulted + 1) * pv->total * pv->gain;
+}
+
+/******************************************************************************
+ *                          the aging
+ ******************************************************************************/
+
+/* promote pages accessed through page tables */
+static int page_update_gen(struct page *page, int gen)
+{
+	unsigned long new_flags, old_flags = READ_ONCE(page->flags);
+
+	VM_WARN_ON_ONCE(gen >= MAX_NR_GENS);
+	VM_WARN_ON_ONCE(!rcu_read_lock_held());
+
+	do {
+		/* lru_gen_del_page() has isolated this page? */
+		if (!(old_flags & LRU_GEN_MASK)) {
+			/* for shrink_page_list() */
+			new_flags = old_flags | BIT(PG_referenced);
+			continue;
+		}
+
+		new_flags = old_flags & ~(LRU_GEN_MASK | LRU_REFS_MASK | LRU_REFS_FLAGS);
+		new_flags |= (gen + 1UL) << LRU_GEN_PGOFF;
+	} while (!try_cmpxchg(&page->flags, &old_flags, new_flags));
+
+	return ((old_flags & LRU_GEN_MASK) >> LRU_GEN_PGOFF) - 1;
+}
+
+/* protect pages accessed multiple times through file descriptors */
+static int page_inc_gen(struct lruvec *lruvec, struct page *page, bool reclaiming)
+{
+	int type = page_is_file_lru(page);
+	struct lru_gen_struct *lrugen = &lruvec->lrugen;
+	int new_gen, old_gen = lru_gen_from_seq(lrugen->min_seq[type]);
+	unsigned long new_flags, old_flags = READ_ONCE(page->flags);
+
+	VM_WARN_ON_ONCE_PAGE(!(old_flags & LRU_GEN_MASK), page);
+
+	do {
+		new_gen = ((old_flags & LRU_GEN_MASK) >> LRU_GEN_PGOFF) - 1;
+		/* page_update_gen() has promoted this page? */
+		if (new_gen >= 0 && new_gen != old_gen)
+			return new_gen;
+
+		new_gen = (old_gen + 1) % MAX_NR_GENS;
+
+		new_flags = old_flags & ~(LRU_GEN_MASK | LRU_REFS_MASK | LRU_REFS_FLAGS);
+		new_flags |= (new_gen + 1UL) << LRU_GEN_PGOFF;
+		/* for end_page_writeback() */
+		if (reclaiming)
+			new_flags |= BIT(PG_reclaim);
+	} while (!try_cmpxchg(&page->flags, &old_flags, new_flags));
+
+	lru_gen_update_size(lruvec, page, old_gen, new_gen);
+
+	return new_gen;
+}
+
+static void update_batch_size(struct lru_gen_mm_walk *walk, struct page *page,
+			      int old_gen, int new_gen)
+{
+	int type = page_is_file_lru(page);
+	int zone = page_zonenum(page);
+	int delta = thp_nr_pages(page);
+
+	VM_WARN_ON_ONCE(old_gen >= MAX_NR_GENS);
+	VM_WARN_ON_ONCE(new_gen >= MAX_NR_GENS);
+
+	walk->batched++;
+
+	walk->nr_pages[old_gen][type][zone] -= delta;
+	walk->nr_pages[new_gen][type][zone] += delta;
+}
+
+static void reset_batch_size(struct lruvec *lruvec, struct lru_gen_mm_walk *walk)
+{
+	int gen, type, zone;
+	struct lru_gen_struct *lrugen = &lruvec->lrugen;
+
+	walk->batched = 0;
+
+	for_each_gen_type_zone(gen, type, zone) {
+		enum lru_list lru = type * LRU_INACTIVE_FILE;
+		int delta = walk->nr_pages[gen][type][zone];
+
+		if (!delta)
+			continue;
+
+		walk->nr_pages[gen][type][zone] = 0;
+		WRITE_ONCE(lrugen->nr_pages[gen][type][zone],
+			   lrugen->nr_pages[gen][type][zone] + delta);
+
+		if (lru_gen_is_active(lruvec, gen))
+			lru += LRU_ACTIVE;
+		__update_lru_size(lruvec, lru, zone, delta);
+	}
+}
+
+static int should_skip_vma(unsigned long start, unsigned long end, struct mm_walk *args)
+{
+	struct address_space *mapping;
+	struct vm_area_struct *vma = args->vma;
+	struct lru_gen_mm_walk *walk = args->private;
+
+	if (!vma_is_accessible(vma))
+		return true;
+
+	if (is_vm_hugetlb_page(vma))
+		return true;
+
+	if (vma->vm_flags & (VM_LOCKED | VM_SPECIAL | VM_SEQ_READ | VM_RAND_READ))
+		return true;
+
+	if (vma == get_gate_vma(vma->vm_mm))
+		return true;
+
+	if (vma_is_anonymous(vma))
+		return !walk->can_swap;
+
+	if (WARN_ON_ONCE(!vma->vm_file || !vma->vm_file->f_mapping))
+		return true;
+
+	mapping = vma->vm_file->f_mapping;
+	if (mapping_unevictable(mapping))
+		return true;
+
+	if (shmem_mapping(mapping))
+		return !walk->can_swap;
+
+	/* to exclude special mappings like dax, etc. */
+	return !mapping->a_ops->readpage;
+}
+
+/*
+ * Some userspace memory allocators map many single-page VMAs. Instead of
+ * returning back to the PGD table for each of such VMAs, finish an entire PMD
+ * table to reduce zigzags and improve cache performance.
+ */
+static bool get_next_vma(unsigned long mask, unsigned long size, struct mm_walk *args,
+			 unsigned long *vm_start, unsigned long *vm_end)
+{
+	unsigned long start = round_up(*vm_end, size);
+	unsigned long end = (start | ~mask) + 1;
+
+	VM_WARN_ON_ONCE(mask & size);
+	VM_WARN_ON_ONCE((start & mask) != (*vm_start & mask));
+
+	while (args->vma) {
+		if (start >= args->vma->vm_end) {
+			args->vma = args->vma->vm_next;
+			continue;
+		}
+
+		if (end && end <= args->vma->vm_start)
+			return false;
+
+		if (should_skip_vma(args->vma->vm_start, args->vma->vm_end, args)) {
+			args->vma = args->vma->vm_next;
+			continue;
+		}
+
+		*vm_start = max(start, args->vma->vm_start);
+		*vm_end = min(end - 1, args->vma->vm_end - 1) + 1;
+
+		return true;
+	}
+
+	return false;
+}
+
+static unsigned long get_pte_pfn(pte_t pte, struct vm_area_struct *vma, unsigned long addr)
+{
+	unsigned long pfn = pte_pfn(pte);
+
+	VM_WARN_ON_ONCE(addr < vma->vm_start || addr >= vma->vm_end);
+
+	if (!pte_present(pte) || is_zero_pfn(pfn))
+		return -1;
+
+	if (WARN_ON_ONCE(pte_devmap(pte) || pte_special(pte)))
+		return -1;
+
+	if (WARN_ON_ONCE(!pfn_valid(pfn)))
+		return -1;
+
+	return pfn;
+}
+
+#if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG)
+static unsigned long get_pmd_pfn(pmd_t pmd, struct vm_area_struct *vma, unsigned long addr)
+{
+	unsigned long pfn = pmd_pfn(pmd);
+
+	VM_WARN_ON_ONCE(addr < vma->vm_start || addr >= vma->vm_end);
+
+	if (!pmd_present(pmd) || is_huge_zero_pmd(pmd))
+		return -1;
+
+	if (WARN_ON_ONCE(pmd_devmap(pmd)))
+		return -1;
+
+	if (WARN_ON_ONCE(!pfn_valid(pfn)))
+		return -1;
+
+	return pfn;
+}
+#endif
+
+static struct page *get_pfn_page(unsigned long pfn, struct mem_cgroup *memcg,
+				 struct pglist_data *pgdat, bool can_swap)
+{
+	struct page *page;
+
+	/* try to avoid unnecessary memory loads */
+	if (pfn < pgdat->node_start_pfn || pfn >= pgdat_end_pfn(pgdat))
+		return NULL;
+
+	page = compound_head(pfn_to_page(pfn));
+	if (page_to_nid(page) != pgdat->node_id)
+		return NULL;
+
+	if (page_memcg_rcu(page) != memcg)
+		return NULL;
+
+	/* file VMAs can contain anon pages from COW */
+	if (!page_is_file_lru(page) && !can_swap)
+		return NULL;
+
+	return page;
+}
+
+static bool suitable_to_scan(int total, int young)
+{
+	int n = clamp_t(int, cache_line_size() / sizeof(pte_t), 2, 8);
+
+	/* suitable if the average number of young PTEs per cacheline is >=1 */
+	return young * n >= total;
+}
+
+static bool walk_pte_range(pmd_t *pmd, unsigned long start, unsigned long end,
+			   struct mm_walk *args)
+{
+	int i;
+	pte_t *pte;
+	spinlock_t *ptl;
+	unsigned long addr;
+	int total = 0;
+	int young = 0;
+	struct lru_gen_mm_walk *walk = args->private;
+	struct mem_cgroup *memcg = lruvec_memcg(walk->lruvec);
+	struct pglist_data *pgdat = lruvec_pgdat(walk->lruvec);
+	int old_gen, new_gen = lru_gen_from_seq(walk->max_seq);
+
+	VM_WARN_ON_ONCE(pmd_leaf(*pmd));
+
+	ptl = pte_lockptr(args->mm, pmd);
+	if (!spin_trylock(ptl))
+		return false;
+
+	arch_enter_lazy_mmu_mode();
+
+	pte = pte_offset_map(pmd, start & PMD_MASK);
+restart:
+	for (i = pte_index(start), addr = start; addr != end; i++, addr += PAGE_SIZE) {
+		unsigned long pfn;
+		struct page *page;
+
+		total++;
+		walk->mm_stats[MM_LEAF_TOTAL]++;
+
+		pfn = get_pte_pfn(pte[i], args->vma, addr);
+		if (pfn == -1)
+			continue;
+
+		if (!pte_young(pte[i])) {
+			walk->mm_stats[MM_LEAF_OLD]++;
+			continue;
+		}
+
+		page = get_pfn_page(pfn, memcg, pgdat, walk->can_swap);
+		if (!page)
+			continue;
+
+		if (!ptep_test_and_clear_young(args->vma, addr, pte + i))
+			VM_WARN_ON_ONCE(true);
+
+		young++;
+		walk->mm_stats[MM_LEAF_YOUNG]++;
+
+		if (pte_dirty(pte[i]) && !PageDirty(page) &&
+		    !(PageAnon(page) && PageSwapBacked(page) &&
+		      !PageSwapCache(page)))
+			set_page_dirty(page);
+
+		old_gen = page_update_gen(page, new_gen);
+		if (old_gen >= 0 && old_gen != new_gen)
+			update_batch_size(walk, page, old_gen, new_gen);
+	}
+
+	if (i < PTRS_PER_PTE && get_next_vma(PMD_MASK, PAGE_SIZE, args, &start, &end))
+		goto restart;
+
+	pte_unmap(pte);
+
+	arch_leave_lazy_mmu_mode();
+	spin_unlock(ptl);
+
+	return suitable_to_scan(total, young);
+}
+
+#if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG)
+static void walk_pmd_range_locked(pud_t *pud, unsigned long next, struct vm_area_struct *vma,
+				  struct mm_walk *args, unsigned long *bitmap, unsigned long *start)
+{
+	int i;
+	pmd_t *pmd;
+	spinlock_t *ptl;
+	struct lru_gen_mm_walk *walk = args->private;
+	struct mem_cgroup *memcg = lruvec_memcg(walk->lruvec);
+	struct pglist_data *pgdat = lruvec_pgdat(walk->lruvec);
+	int old_gen, new_gen = lru_gen_from_seq(walk->max_seq);
+
+	VM_WARN_ON_ONCE(pud_leaf(*pud));
+
+	/* try to batch at most 1+MIN_LRU_BATCH+1 entries */
+	if (*start == -1) {
+		*start = next;
+		return;
+	}
+
+	i = next == -1 ? 0 : pmd_index(next) - pmd_index(*start);
+	if (i && i <= MIN_LRU_BATCH) {
+		__set_bit(i - 1, bitmap);
+		return;
+	}
+
+	pmd = pmd_offset(pud, *start);
+
+	ptl = pmd_lockptr(args->mm, pmd);
+	if (!spin_trylock(ptl))
+		goto done;
+
+	arch_enter_lazy_mmu_mode();
+
+	do {
+		unsigned long pfn;
+		struct page *page;
+		unsigned long addr = i ? (*start & PMD_MASK) + i * PMD_SIZE : *start;
+
+		pfn = get_pmd_pfn(pmd[i], vma, addr);
+		if (pfn == -1)
+			goto next;
+
+		if (!pmd_trans_huge(pmd[i])) {
+			if (IS_ENABLED(CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG) &&
+			    get_cap(LRU_GEN_NONLEAF_YOUNG))
+				pmdp_test_and_clear_young(vma, addr, pmd + i);
+			goto next;
+		}
+
+		page = get_pfn_page(pfn, memcg, pgdat, walk->can_swap);
+		if (!page)
+			goto next;
+
+		if (!pmdp_test_and_clear_young(vma, addr, pmd + i))
+			goto next;
+
+		walk->mm_stats[MM_LEAF_YOUNG]++;
+
+		if (pmd_dirty(pmd[i]) && !PageDirty(page) &&
+		    !(PageAnon(page) && PageSwapBacked(page) &&
+		      !PageSwapCache(page)))
+			set_page_dirty(page);
+
+		old_gen = page_update_gen(page, new_gen);
+		if (old_gen >= 0 && old_gen != new_gen)
+			update_batch_size(walk, page, old_gen, new_gen);
+next:
+		i = i > MIN_LRU_BATCH ? 0 : find_next_bit(bitmap, MIN_LRU_BATCH, i) + 1;
+	} while (i <= MIN_LRU_BATCH);
+
+	arch_leave_lazy_mmu_mode();
+	spin_unlock(ptl);
+done:
+	*start = -1;
+	bitmap_zero(bitmap, MIN_LRU_BATCH);
+}
+#else
+static void walk_pmd_range_locked(pud_t *pud, unsigned long next, struct vm_area_struct *vma,
+				  struct mm_walk *args, unsigned long *bitmap, unsigned long *start)
+{
+}
+#endif
+
+static void walk_pmd_range(pud_t *pud, unsigned long start, unsigned long end,
+			   struct mm_walk *args)
+{
+	int i;
+	pmd_t *pmd;
+	unsigned long next;
+	unsigned long addr;
+	struct vm_area_struct *vma;
+	unsigned long pos = -1;
+	struct lru_gen_mm_walk *walk = args->private;
+	unsigned long bitmap[BITS_TO_LONGS(MIN_LRU_BATCH)] = {};
+
+	VM_WARN_ON_ONCE(pud_leaf(*pud));
+
+	/*
+	 * Finish an entire PMD in two passes: the first only reaches to PTE
+	 * tables to avoid taking the PMD lock; the second, if necessary, takes
+	 * the PMD lock to clear the accessed bit in PMD entries.
+	 */
+	pmd = pmd_offset(pud, start & PUD_MASK);
+restart:
+	/* walk_pte_range() may call get_next_vma() */
+	vma = args->vma;
+	for (i = pmd_index(start), addr = start; addr != end; i++, addr = next) {
+		pmd_t val = pmd_read_atomic(pmd + i);
+
+		/* for pmd_read_atomic() */
+		barrier();
+
+		next = pmd_addr_end(addr, end);
+
+		if (!pmd_present(val) || is_huge_zero_pmd(val)) {
+			walk->mm_stats[MM_LEAF_TOTAL]++;
+			continue;
+		}
+
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+		if (pmd_trans_huge(val)) {
+			unsigned long pfn = pmd_pfn(val);
+			struct pglist_data *pgdat = lruvec_pgdat(walk->lruvec);
+
+			walk->mm_stats[MM_LEAF_TOTAL]++;
+
+			if (!pmd_young(val)) {
+				walk->mm_stats[MM_LEAF_OLD]++;
+				continue;
+			}
+
+			/* try to avoid unnecessary memory loads */
+			if (pfn < pgdat->node_start_pfn || pfn >= pgdat_end_pfn(pgdat))
+				continue;
+
+			walk_pmd_range_locked(pud, addr, vma, args, bitmap, &pos);
+			continue;
+		}
+#endif
+		walk->mm_stats[MM_NONLEAF_TOTAL]++;
+
+#ifdef CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG
+		if (get_cap(LRU_GEN_NONLEAF_YOUNG)) {
+			if (!pmd_young(val))
+				continue;
+
+			walk_pmd_range_locked(pud, addr, vma, args, bitmap, &pos);
+		}
+#endif
+		if (!walk->full_scan && !test_bloom_filter(walk->lruvec, walk->max_seq, pmd + i))
+			continue;
+
+		walk->mm_stats[MM_NONLEAF_FOUND]++;
+
+		if (!walk_pte_range(&val, addr, next, args))
+			continue;
+
+		walk->mm_stats[MM_NONLEAF_ADDED]++;
+
+		/* carry over to the next generation */
+		update_bloom_filter(walk->lruvec, walk->max_seq + 1, pmd + i);
+	}
+
+	walk_pmd_range_locked(pud, -1, vma, args, bitmap, &pos);
+
+	if (i < PTRS_PER_PMD && get_next_vma(PUD_MASK, PMD_SIZE, args, &start, &end))
+		goto restart;
+}
+
+static int walk_pud_range(p4d_t *p4d, unsigned long start, unsigned long end,
+			  struct mm_walk *args)
+{
+	int i;
+	pud_t *pud;
+	unsigned long addr;
+	unsigned long next;
+	struct lru_gen_mm_walk *walk = args->private;
+
+	VM_WARN_ON_ONCE(p4d_leaf(*p4d));
+
+	pud = pud_offset(p4d, start & P4D_MASK);
+restart:
+	for (i = pud_index(start), addr = start; addr != end; i++, addr = next) {
+		pud_t val = READ_ONCE(pud[i]);
+
+		next = pud_addr_end(addr, end);
+
+		if (!pud_present(val) || WARN_ON_ONCE(pud_leaf(val)))
+			continue;
+
+		walk_pmd_range(&val, addr, next, args);
+
+		if (need_resched() || walk->batched >= MAX_LRU_BATCH) {
+			end = (addr | ~PUD_MASK) + 1;
+			goto done;
+		}
+	}
+
+	if (i < PTRS_PER_PUD && get_next_vma(P4D_MASK, PUD_SIZE, args, &start, &end))
+		goto restart;
+
+	end = round_up(end, P4D_SIZE);
+done:
+	if (!end || !args->vma)
+		return 1;
+
+	walk->next_addr = max(end, args->vma->vm_start);
+
+	return -EAGAIN;
+}
+
+static void walk_mm(struct lruvec *lruvec, struct mm_struct *mm, struct lru_gen_mm_walk *walk)
+{
+	static const struct mm_walk_ops mm_walk_ops = {
+		.test_walk = should_skip_vma,
+		.p4d_entry = walk_pud_range,
+	};
+
+	int err;
+	struct mem_cgroup *memcg = lruvec_memcg(lruvec);
+
+	walk->next_addr = FIRST_USER_ADDRESS;
+
+	do {
+		DEFINE_MAX_SEQ(lruvec);
+
+		err = -EBUSY;
+
+		/* another thread might have called inc_max_seq() */
+		if (walk->max_seq != max_seq)
+			break;
+
+		/* page_update_gen() requires stable page_memcg() */
+		if (!mem_cgroup_trylock_pages(memcg))
+			break;
+
+		/* the caller might be holding the lock for write */
+		if (mmap_read_trylock(mm)) {
+			err = walk_page_range(mm, walk->next_addr, ULONG_MAX, &mm_walk_ops, walk);
+
+			mmap_read_unlock(mm);
+		}
+
+		mem_cgroup_unlock_pages();
+
+		if (walk->batched) {
+			spin_lock_irq(&lruvec->lru_lock);
+			reset_batch_size(lruvec, walk);
+			spin_unlock_irq(&lruvec->lru_lock);
+		}
+
+		cond_resched();
+	} while (err == -EAGAIN);
+}
+
+static struct lru_gen_mm_walk *set_mm_walk(struct pglist_data *pgdat)
+{
+	struct lru_gen_mm_walk *walk = current->reclaim_state->mm_walk;
+
+	if (pgdat && current_is_kswapd()) {
+		VM_WARN_ON_ONCE(walk);
+
+		walk = &pgdat->mm_walk;
+	} else if (!pgdat && !walk) {
+		VM_WARN_ON_ONCE(current_is_kswapd());
+
+		walk = kzalloc(sizeof(*walk), __GFP_HIGH | __GFP_NOMEMALLOC | __GFP_NOWARN);
+	}
+
+	current->reclaim_state->mm_walk = walk;
+
+	return walk;
+}
+
+static void clear_mm_walk(void)
+{
+	struct lru_gen_mm_walk *walk = current->reclaim_state->mm_walk;
+
+	VM_WARN_ON_ONCE(walk && memchr_inv(walk->nr_pages, 0, sizeof(walk->nr_pages)));
+	VM_WARN_ON_ONCE(walk && memchr_inv(walk->mm_stats, 0, sizeof(walk->mm_stats)));
+
+	current->reclaim_state->mm_walk = NULL;
+
+	if (!current_is_kswapd())
+		kfree(walk);
+}
+
+static bool inc_min_seq(struct lruvec *lruvec, int type, bool can_swap)
+{
+	int zone;
+	int remaining = MAX_LRU_BATCH;
+	struct lru_gen_struct *lrugen = &lruvec->lrugen;
+	int new_gen, old_gen = lru_gen_from_seq(lrugen->min_seq[type]);
+
+	if (type == LRU_GEN_ANON && !can_swap)
+		goto done;
+
+	/* prevent cold/hot inversion if full_scan is true */
+	for (zone = 0; zone < MAX_NR_ZONES; zone++) {
+		struct list_head *head = &lrugen->lists[old_gen][type][zone];
+
+		while (!list_empty(head)) {
+			struct page *page = lru_to_page(head);
+
+			VM_WARN_ON_ONCE_PAGE(PageUnevictable(page), page);
+			VM_WARN_ON_ONCE_PAGE(PageActive(page), page);
+			VM_WARN_ON_ONCE_PAGE(page_is_file_lru(page) != type, page);
+			VM_WARN_ON_ONCE_PAGE(page_zonenum(page) != zone, page);
+
+			new_gen = page_inc_gen(lruvec, page, false);
+			list_move_tail(&page->lru, &lrugen->lists[new_gen][type][zone]);
+
+			if (!--remaining)
+				return false;
+		}
+	}
+done:
+	reset_ctrl_pos(lruvec, type, true);
+	WRITE_ONCE(lrugen->min_seq[type], lrugen->min_seq[type] + 1);
+
+	return true;
+}
+
+static bool try_to_inc_min_seq(struct lruvec *lruvec, bool can_swap)
+{
+	int gen, type, zone;
+	bool success = false;
+	struct lru_gen_struct *lrugen = &lruvec->lrugen;
+	DEFINE_MIN_SEQ(lruvec);
+
+	VM_WARN_ON_ONCE(!seq_is_valid(lruvec));
+
+	/* find the oldest populated generation */
+	for (type = !can_swap; type < ANON_AND_FILE; type++) {
+		while (min_seq[type] + MIN_NR_GENS <= lrugen->max_seq) {
+			gen = lru_gen_from_seq(min_seq[type]);
+
+			for (zone = 0; zone < MAX_NR_ZONES; zone++) {
+				if (!list_empty(&lrugen->lists[gen][type][zone]))
+					goto next;
+			}
+
+			min_seq[type]++;
+		}
+next:
+		;
+	}
+
+	/* see the comment on lru_gen_struct */
+	if (can_swap) {
+		min_seq[LRU_GEN_ANON] = min(min_seq[LRU_GEN_ANON], min_seq[LRU_GEN_FILE]);
+		min_seq[LRU_GEN_FILE] = max(min_seq[LRU_GEN_ANON], lrugen->min_seq[LRU_GEN_FILE]);
+	}
+
+	for (type = !can_swap; type < ANON_AND_FILE; type++) {
+		if (min_seq[type] == lrugen->min_seq[type])
+			continue;
+
+		reset_ctrl_pos(lruvec, type, true);
+		WRITE_ONCE(lrugen->min_seq[type], min_seq[type]);
+		success = true;
+	}
+
+	return success;
+}
+
+static void inc_max_seq(struct lruvec *lruvec, bool can_swap, bool full_scan)
+{
+	int prev, next;
+	int type, zone;
+	struct lru_gen_struct *lrugen = &lruvec->lrugen;
+restart:
+	spin_lock_irq(&lruvec->lru_lock);
+
+	VM_WARN_ON_ONCE(!seq_is_valid(lruvec));
+
+	for (type = ANON_AND_FILE - 1; type >= 0; type--) {
+		if (get_nr_gens(lruvec, type) != MAX_NR_GENS)
+			continue;
+
+		VM_WARN_ON_ONCE(!full_scan && (type == LRU_GEN_FILE || can_swap));
+
+		while (!inc_min_seq(lruvec, type, can_swap)) {
+			spin_unlock_irq(&lruvec->lru_lock);
+			cond_resched();
+			spin_lock_irq(&lruvec->lru_lock);
+		}
+		if (inc_min_seq(lruvec, type, can_swap))
+			continue;
+
+		spin_unlock_irq(&lruvec->lru_lock);
+		cond_resched();
+		goto restart;
+
+	}
+
+	/*
+	 * Update the active/inactive LRU sizes for compatibility. Both sides of
+	 * the current max_seq need to be covered, since max_seq+1 can overlap
+	 * with min_seq[LRU_GEN_ANON] if swapping is constrained. And if they do
+	 * overlap, cold/hot inversion happens.
+	 */
+	prev = lru_gen_from_seq(lrugen->max_seq - 1);
+	next = lru_gen_from_seq(lrugen->max_seq + 1);
+
+	for (type = 0; type < ANON_AND_FILE; type++) {
+		for (zone = 0; zone < MAX_NR_ZONES; zone++) {
+			enum lru_list lru = type * LRU_INACTIVE_FILE;
+			long delta = lrugen->nr_pages[prev][type][zone] -
+				     lrugen->nr_pages[next][type][zone];
+
+			if (!delta)
+				continue;
+
+			__update_lru_size(lruvec, lru, zone, delta);
+			__update_lru_size(lruvec, lru + LRU_ACTIVE, zone, -delta);
+		}
+	}
+
+	for (type = 0; type < ANON_AND_FILE; type++)
+		reset_ctrl_pos(lruvec, type, false);
+
+	WRITE_ONCE(lrugen->timestamps[next], jiffies);
+	/* make sure preceding modifications appear */
+	smp_store_release(&lrugen->max_seq, lrugen->max_seq + 1);
+
+	spin_unlock_irq(&lruvec->lru_lock);
+}
+
+static bool try_to_inc_max_seq(struct lruvec *lruvec, unsigned long max_seq,
+			       struct scan_control *sc, bool can_swap, bool full_scan)
+{
+	bool success;
+	struct lru_gen_mm_walk *walk;
+	struct mm_struct *mm = NULL;
+	struct lru_gen_struct *lrugen = &lruvec->lrugen;
+
+	VM_WARN_ON_ONCE(max_seq > READ_ONCE(lrugen->max_seq));
+
+	/* see the comment in iterate_mm_list() */
+	if (max_seq <= READ_ONCE(lruvec->mm_state.seq)) {
+		success = false;
+		goto done;
+	}
+
+	/*
+	 * If the hardware doesn't automatically set the accessed bit, fallback
+	 * to lru_gen_look_around(), which only clears the accessed bit in a
+	 * handful of PTEs. Spreading the work out over a period of time usually
+	 * is less efficient, but it avoids bursty page faults.
+	 */
+	if (!full_scan && !(arch_has_hw_pte_young() && get_cap(LRU_GEN_MM_WALK))) {
+		success = iterate_mm_list_nowalk(lruvec, max_seq);
+		goto done;
+	}
+
+	walk = set_mm_walk(NULL);
+	if (!walk) {
+		success = iterate_mm_list_nowalk(lruvec, max_seq);
+		goto done;
+	}
+
+	walk->lruvec = lruvec;
+	walk->max_seq = max_seq;
+	walk->can_swap = can_swap;
+	walk->full_scan = full_scan;
+
+	do {
+		success = iterate_mm_list(lruvec, walk, &mm);
+		if (mm)
+			walk_mm(lruvec, mm, walk);
+	} while (mm);
+done:
+	if (success)
+		inc_max_seq(lruvec, can_swap, full_scan);
+
+	return success;
+}
+
+static bool should_run_aging(struct lruvec *lruvec, unsigned long max_seq, unsigned long *min_seq,
+			     struct scan_control *sc, bool can_swap, unsigned long *nr_to_scan)
+{
+	int gen, type, zone;
+	unsigned long old = 0;
+	unsigned long young = 0;
+	unsigned long total = 0;
+	struct lru_gen_struct *lrugen = &lruvec->lrugen;
+	struct mem_cgroup *memcg = lruvec_memcg(lruvec);
+
+	for (type = !can_swap; type < ANON_AND_FILE; type++) {
+		unsigned long seq;
+
+		for (seq = min_seq[type]; seq <= max_seq; seq++) {
+			unsigned long size = 0;
+
+			gen = lru_gen_from_seq(seq);
+
+			for (zone = 0; zone < MAX_NR_ZONES; zone++)
+				size += max_t(long, READ_ONCE(lrugen->nr_pages[gen][type][zone]),
+						0);
+
+			total += size;
+			if (seq == max_seq)
+				young += size;
+			else if (seq + MIN_NR_GENS == max_seq)
+				old += size;
+		}
+	}
+
+	/* try to scrape all its memory if this memcg was deleted */
+	*nr_to_scan = mem_cgroup_online(memcg) ? (total >> sc->priority) : total;
+
+	/*
+	 * The aging tries to be lazy to reduce the overhead, while the eviction
+	 * stalls when the number of generations reaches MIN_NR_GENS. Hence, the
+	 * ideal number of generations is MIN_NR_GENS+1.
+	 */
+	if (min_seq[!can_swap] + MIN_NR_GENS > max_seq)
+		return true;
+	if (min_seq[!can_swap] + MIN_NR_GENS < max_seq)
+		return false;
+
+	/*
+	 * It's also ideal to spread pages out evenly, i.e., 1/(MIN_NR_GENS+1)
+	 * of the total number of pages for each generation. A reasonable range
+	 * for this average portion is [1/MIN_NR_GENS, 1/(MIN_NR_GENS+2)]. The
+	 * aging cares about the upper bound of hot pages, while the eviction
+	 * cares about the lower bound of cold pages.
+	 */
+	if (young * MIN_NR_GENS > total)
+		return true;
+	if (old * (MIN_NR_GENS + 2) < total)
+		return true;
+
+	return false;
+}
+
+static bool age_lruvec(struct lruvec *lruvec, struct scan_control *sc, unsigned long min_ttl)
+{
+	bool need_aging;
+	unsigned long nr_to_scan;
+	int swappiness = get_swappiness(lruvec, sc);
+	struct mem_cgroup *memcg = lruvec_memcg(lruvec);
+	DEFINE_MAX_SEQ(lruvec);
+	DEFINE_MIN_SEQ(lruvec);
+
+	VM_WARN_ON_ONCE(sc->memcg_low_reclaim);
+
+	mem_cgroup_calculate_protection(NULL, memcg);
+
+	if (mem_cgroup_below_min(memcg))
+		return false;
+
+	need_aging = should_run_aging(lruvec, max_seq, min_seq, sc, swappiness, &nr_to_scan);
+
+	if (min_ttl) {
+		int gen = lru_gen_from_seq(min_seq[LRU_GEN_FILE]);
+		unsigned long birth = READ_ONCE(lruvec->lrugen.timestamps[gen]);
+
+		if (time_is_after_jiffies(birth + min_ttl))
+			return false;
+
+		/* the size is likely too small to be helpful */
+		if (!nr_to_scan && sc->priority != DEF_PRIORITY)
+			return false;
+	}
+
+	if (need_aging)
+		try_to_inc_max_seq(lruvec, max_seq, sc, swappiness, false);
+
+	return true;
+}
+
+/* to protect the working set of the last N jiffies */
+static unsigned long lru_gen_min_ttl __read_mostly;
+
+static void lru_gen_age_node(struct pglist_data *pgdat, struct scan_control *sc)
+{
+	struct mem_cgroup *memcg;
+	bool success = false;
+	unsigned long min_ttl = READ_ONCE(lru_gen_min_ttl);
+
+	VM_WARN_ON_ONCE(!current_is_kswapd());
+
+	sc->last_reclaimed = sc->nr_reclaimed;
+
+	/*
+	 * To reduce the chance of going into the aging path, which can be
+	 * costly, optimistically skip it if the flag below was cleared in the
+	 * eviction path. This improves the overall performance when multiple
+	 * memcgs are available.
+	 */
+	if (!sc->memcgs_need_aging) {
+		sc->memcgs_need_aging = true;
+		return;
+	}
+
+	set_mm_walk(pgdat);
+
+	memcg = mem_cgroup_iter(NULL, NULL, NULL);
+	do {
+		struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat);
+
+		if (age_lruvec(lruvec, sc, min_ttl))
+			success = true;
+
+		cond_resched();
+	} while ((memcg = mem_cgroup_iter(NULL, memcg, NULL)));
+
+	clear_mm_walk();
+
+	/* check the order to exclude compaction-induced reclaim */
+	if (success || !min_ttl || sc->order)
+		return;
+
+	/*
+	 * The main goal is to OOM kill if every generation from all memcgs is
+	 * younger than min_ttl. However, another possibility is all memcgs are
+	 * either below min or empty.
+	 */
+	if (mutex_trylock(&oom_lock)) {
+		struct oom_control oc = {
+			.gfp_mask = sc->gfp_mask,
+		};
+
+		out_of_memory(&oc);
+
+		mutex_unlock(&oom_lock);
+	}
+}
+
+/*
+ * This function exploits spatial locality when shrink_page_list() walks the
+ * rmap. It scans the adjacent PTEs of a young PTE and promotes hot pages. If
+ * the scan was done cacheline efficiently, it adds the PMD entry pointing to
+ * the PTE table to the Bloom filter. This forms a feedback loop between the
+ * eviction and the aging.
+ */
+void lru_gen_look_around(struct page_vma_mapped_walk *pvmw)
+{
+	int i;
+	pte_t *pte;
+	unsigned long start;
+	unsigned long end;
+	unsigned long addr;
+	struct lru_gen_mm_walk *walk;
+	int young = 0;
+	unsigned long bitmap[BITS_TO_LONGS(MIN_LRU_BATCH)] = {};
+	struct page *page = pvmw->page;
+	bool can_swap = !page_is_file_lru(page);
+	struct mem_cgroup *memcg = page_memcg(page);
+	struct pglist_data *pgdat = page_pgdat(page);
+	struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat);
+	DEFINE_MAX_SEQ(lruvec);
+	int old_gen, new_gen = lru_gen_from_seq(max_seq);
+
+	lockdep_assert_held(pvmw->ptl);
+	VM_WARN_ON_ONCE_PAGE(PageLRU(page), page);
+
+	if (spin_is_contended(pvmw->ptl))
+		return;
+
+	/* avoid taking the LRU lock under the PTL when possible */
+	walk = current->reclaim_state ? current->reclaim_state->mm_walk : NULL;
+
+	start = max(pvmw->address & PMD_MASK, pvmw->vma->vm_start);
+	end = min(pvmw->address | ~PMD_MASK, pvmw->vma->vm_end - 1) + 1;
+
+	if (end - start > MIN_LRU_BATCH * PAGE_SIZE) {
+		if (pvmw->address - start < MIN_LRU_BATCH * PAGE_SIZE / 2)
+			end = start + MIN_LRU_BATCH * PAGE_SIZE;
+		else if (end - pvmw->address < MIN_LRU_BATCH * PAGE_SIZE / 2)
+			start = end - MIN_LRU_BATCH * PAGE_SIZE;
+		else {
+			start = pvmw->address - MIN_LRU_BATCH * PAGE_SIZE / 2;
+			end = pvmw->address + MIN_LRU_BATCH * PAGE_SIZE / 2;
+		}
+	}
+
+	pte = pvmw->pte - (pvmw->address - start) / PAGE_SIZE;
+
+	rcu_read_lock();
+	arch_enter_lazy_mmu_mode();
+
+	for (i = 0, addr = start; addr != end; i++, addr += PAGE_SIZE) {
+		unsigned long pfn;
+
+		pfn = get_pte_pfn(pte[i], pvmw->vma, addr);
+		if (pfn == -1)
+			continue;
+
+		if (!pte_young(pte[i]))
+			continue;
+
+		page = get_pfn_page(pfn, memcg, pgdat, can_swap);
+		if (!page)
+			continue;
+
+		if (!ptep_test_and_clear_young(pvmw->vma, addr, pte + i))
+			VM_WARN_ON_ONCE(true);
+
+		young++;
+
+		if (pte_dirty(pte[i]) && !PageDirty(page) &&
+		    !(PageAnon(page) && PageSwapBacked(page) &&
+		      !PageSwapCache(page)))
+			set_page_dirty(page);
+
+		old_gen = page_lru_gen(page);
+		if (old_gen < 0)
+			SetPageReferenced(page);
+		else if (old_gen != new_gen)
+			__set_bit(i, bitmap);
+	}
+
+	arch_leave_lazy_mmu_mode();
+	rcu_read_unlock();
+
+	/* feedback from rmap walkers to page table walkers */
+	if (suitable_to_scan(i, young))
+		update_bloom_filter(lruvec, max_seq, pvmw->pmd);
+
+	if (!walk && bitmap_weight(bitmap, MIN_LRU_BATCH) < PAGEVEC_SIZE) {
+		for_each_set_bit(i, bitmap, MIN_LRU_BATCH) {
+			page = pte_page(pte[i]);
+			activate_page(page);
+		}
+		return;
+	}
+
+	/* page_update_gen() requires stable page_memcg() */
+	if (!mem_cgroup_trylock_pages(memcg))
+		return;
+
+	if (!walk) {
+		spin_lock_irq(&lruvec->lru_lock);
+		new_gen = lru_gen_from_seq(lruvec->lrugen.max_seq);
+	}
+
+	for_each_set_bit(i, bitmap, MIN_LRU_BATCH) {
+		page = compound_head(pte_page(pte[i]));
+		if (page_memcg_rcu(page) != memcg)
+			continue;
+
+		old_gen = page_update_gen(page, new_gen);
+		if (old_gen < 0 || old_gen == new_gen)
+			continue;
+
+		if (walk)
+			update_batch_size(walk, page, old_gen, new_gen);
+		else
+			lru_gen_update_size(lruvec, page, old_gen, new_gen);
+	}
+
+	if (!walk)
+		spin_unlock_irq(&lruvec->lru_lock);
+
+	mem_cgroup_unlock_pages();
+}
+
+/******************************************************************************
+ *                          the eviction
+ ******************************************************************************/
+
+static bool sort_page(struct lruvec *lruvec, struct page *page, struct scan_control *sc,
+		       int tier_idx)
+{
+	bool success;
+	int gen = page_lru_gen(page);
+	int type = page_is_file_lru(page);
+	int zone = page_zonenum(page);
+	int delta = thp_nr_pages(page);
+	int refs = page_lru_refs(page);
+	int tier = lru_tier_from_refs(refs);
+	struct lru_gen_struct *lrugen = &lruvec->lrugen;
+
+	VM_WARN_ON_ONCE_PAGE(gen >= MAX_NR_GENS, page);
+
+	/* unevictable */
+	if (!page_evictable(page)) {
+		success = lru_gen_del_page(lruvec, page, true);
+		VM_WARN_ON_ONCE_PAGE(!success, page);
+		SetPageUnevictable(page);
+		add_page_to_lru_list(page, lruvec);
+		__count_vm_events(UNEVICTABLE_PGCULLED, delta);
+		return true;
+	}
+
+	/* dirty lazyfree */
+	if (type == LRU_GEN_FILE && PageAnon(page) && PageDirty(page)) {
+		success = lru_gen_del_page(lruvec, page, true);
+		VM_WARN_ON_ONCE_PAGE(!success, page);
+		SetPageSwapBacked(page);
+		add_page_to_lru_list_tail(page, lruvec);
+		return true;
+	}
+
+	/* promoted */
+	if (gen != lru_gen_from_seq(lrugen->min_seq[type])) {
+		list_move(&page->lru, &lrugen->lists[gen][type][zone]);
+		return true;
+	}
+
+	/* protected */
+	if (tier > tier_idx) {
+		int hist = lru_hist_from_seq(lrugen->min_seq[type]);
+
+		gen = page_inc_gen(lruvec, page, false);
+		list_move_tail(&page->lru, &lrugen->lists[gen][type][zone]);
+
+		WRITE_ONCE(lrugen->protected[hist][type][tier - 1],
+			   lrugen->protected[hist][type][tier - 1] + delta);
+		return true;
+	}
+
+	/* ineligible */
+	if (zone > sc->reclaim_idx || skip_cma(page, sc)) {
+		gen = page_inc_gen(lruvec, page, false);
+		list_move_tail(&page->lru, &lrugen->lists[gen][type][zone]);
+		return true;
+	}
+
+	/* waiting for writeback */
+	if (PageLocked(page) || PageWriteback(page) ||
+	    (type == LRU_GEN_FILE && PageDirty(page))) {
+		gen = page_inc_gen(lruvec, page, true);
+		list_move(&page->lru, &lrugen->lists[gen][type][zone]);
+		return true;
+	}
+
+	return false;
+}
+
+static bool isolate_page(struct lruvec *lruvec, struct page *page, struct scan_control *sc)
+{
+	bool success;
+
+	/* unmapping inhibited */
+	if (!sc->may_unmap && page_mapped(page))
+		return false;
+
+	/* swapping inhibited */
+	if (!(sc->may_writepage && (sc->gfp_mask & __GFP_IO)) &&
+	    (PageDirty(page) ||
+	     (PageAnon(page) && !PageSwapCache(page))))
+		return false;
+
+	/* raced with release_pages() */
+	if (!get_page_unless_zero(page))
+		return false;
+
+	/* raced with another isolation */
+	if (!TestClearPageLRU(page)) {
+		put_page(page);
+		return false;
+	}
+
+	/* see the comment on MAX_NR_TIERS */
+	if (!PageReferenced(page))
+		set_mask_bits(&page->flags, LRU_REFS_MASK | LRU_REFS_FLAGS, 0);
+
+	/* for shrink_page_list() */
+	ClearPageReclaim(page);
+	ClearPageReferenced(page);
+
+	success = lru_gen_del_page(lruvec, page, true);
+	VM_WARN_ON_ONCE_PAGE(!success, page);
+
+	return true;
+}
+
+static int scan_pages(struct lruvec *lruvec, struct scan_control *sc,
+		      int type, int tier, struct list_head *list)
+{
+	int i;
+	int gen;
+	enum vm_event_item item;
+	int sorted = 0;
+	int scanned = 0;
+	int isolated = 0;
+	int remaining = MAX_LRU_BATCH;
+	struct lru_gen_struct *lrugen = &lruvec->lrugen;
+	struct mem_cgroup *memcg = lruvec_memcg(lruvec);
+
+	VM_WARN_ON_ONCE(!list_empty(list));
+
+	if (get_nr_gens(lruvec, type) == MIN_NR_GENS)
+		return 0;
+
+	gen = lru_gen_from_seq(lrugen->min_seq[type]);
+
+	for (i = MAX_NR_ZONES; i > 0; i--) {
+		LIST_HEAD(moved);
+		int skipped = 0;
+		int zone = (sc->reclaim_idx + i) % MAX_NR_ZONES;
+		struct list_head *head = &lrugen->lists[gen][type][zone];
+
+		while (!list_empty(head)) {
+			struct page *page = lru_to_page(head);
+			int delta = thp_nr_pages(page);
+
+			VM_WARN_ON_ONCE_PAGE(PageUnevictable(page), page);
+			VM_WARN_ON_ONCE_PAGE(PageActive(page), page);
+			VM_WARN_ON_ONCE_PAGE(page_is_file_lru(page) != type, page);
+			VM_WARN_ON_ONCE_PAGE(page_zonenum(page) != zone, page);
+
+			scanned += delta;
+
+			if (sort_page(lruvec, page, sc, tier))
+				sorted += delta;
+			else if (isolate_page(lruvec, page, sc)) {
+				list_add(&page->lru, list);
+				isolated += delta;
+			} else {
+				list_move(&page->lru, &moved);
+				skipped += delta;
+			}
+
+			if (!--remaining || max(isolated, skipped) >= MIN_LRU_BATCH)
+				break;
+		}
+
+		if (skipped) {
+			list_splice(&moved, head);
+			__count_zid_vm_events(PGSCAN_SKIP, zone, skipped);
+		}
+
+		if (!remaining || isolated >= MIN_LRU_BATCH)
+			break;
+	}
+
+	item = current_is_kswapd() ? PGSCAN_KSWAPD : PGSCAN_DIRECT;
+	if (!cgroup_reclaim(sc)) {
+		__count_vm_events(item, isolated);
+		__count_vm_events(PGREFILL, sorted);
+	}
+	__count_memcg_events(memcg, item, isolated);
+	__count_memcg_events(memcg, PGREFILL, sorted);
+	__count_vm_events(PGSCAN_ANON + type, isolated);
+
+	/*
+	 * There might not be eligible pages due to reclaim_idx, may_unmap and
+	 * may_writepage. Check the remaining to prevent livelock if it's not
+	 * making progress.
+	 */
+	return isolated || !remaining ? scanned : 0;
+}
+
+static int get_tier_idx(struct lruvec *lruvec, int type)
+{
+	int tier;
+	struct ctrl_pos sp, pv;
+
+	/*
+	 * To leave a margin for fluctuations, use a larger gain factor (1:2).
+	 * This value is chosen because any other tier would have at least twice
+	 * as many refaults as the first tier.
+	 */
+	read_ctrl_pos(lruvec, type, 0, 1, &sp);
+	for (tier = 1; tier < MAX_NR_TIERS; tier++) {
+		read_ctrl_pos(lruvec, type, tier, 2, &pv);
+		if (!positive_ctrl_err(&sp, &pv))
+			break;
+	}
+
+	return tier - 1;
+}
+
+static int get_type_to_scan(struct lruvec *lruvec, int swappiness, int *tier_idx)
+{
+	int type, tier;
+	struct ctrl_pos sp, pv;
+	int gain[ANON_AND_FILE] = { swappiness, 200 - swappiness };
+
+	/*
+	 * Compare the first tier of anon with that of file to determine which
+	 * type to scan. Also need to compare other tiers of the selected type
+	 * with the first tier of the other type to determine the last tier (of
+	 * the selected type) to evict.
+	 */
+	read_ctrl_pos(lruvec, LRU_GEN_ANON, 0, gain[LRU_GEN_ANON], &sp);
+	read_ctrl_pos(lruvec, LRU_GEN_FILE, 0, gain[LRU_GEN_FILE], &pv);
+	type = positive_ctrl_err(&sp, &pv);
+
+	read_ctrl_pos(lruvec, !type, 0, gain[!type], &sp);
+	for (tier = 1; tier < MAX_NR_TIERS; tier++) {
+		read_ctrl_pos(lruvec, type, tier, gain[type], &pv);
+		if (!positive_ctrl_err(&sp, &pv))
+			break;
+	}
+
+	*tier_idx = tier - 1;
+
+	return type;
+}
+
+static int isolate_pages(struct lruvec *lruvec, struct scan_control *sc, int swappiness,
+			 int *type_scanned, struct list_head *list)
+{
+	int i;
+	int type;
+	int scanned;
+	int tier = -1;
+	DEFINE_MIN_SEQ(lruvec);
+
+	/*
+	 * Try to make the obvious choice first. When anon and file are both
+	 * available from the same generation, interpret swappiness 1 as file
+	 * first and 200 as anon first.
+	 */
+	if (!swappiness)
+		type = LRU_GEN_FILE;
+	else if (min_seq[LRU_GEN_ANON] < min_seq[LRU_GEN_FILE])
+		type = LRU_GEN_ANON;
+	else if (swappiness == 1)
+		type = LRU_GEN_FILE;
+	else if (swappiness == 200)
+		type = LRU_GEN_ANON;
+	else
+		type = get_type_to_scan(lruvec, swappiness, &tier);
+
+	for (i = !swappiness; i < ANON_AND_FILE; i++) {
+		if (tier < 0)
+			tier = get_tier_idx(lruvec, type);
+
+		scanned = scan_pages(lruvec, sc, type, tier, list);
+		if (scanned)
+			break;
+
+		type = !type;
+		tier = -1;
+	}
+
+	*type_scanned = type;
+
+	return scanned;
+}
+
+static int evict_pages(struct lruvec *lruvec, struct scan_control *sc, int swappiness,
+		       bool *need_swapping)
+{
+	int type;
+	int scanned;
+	int reclaimed;
+	LIST_HEAD(list);
+	LIST_HEAD(clean);
+	struct page *page;
+	struct page *next;
+	enum vm_event_item item;
+	struct reclaim_stat stat;
+	struct lru_gen_mm_walk *walk;
+	bool skip_retry = false;
+	struct mem_cgroup *memcg = lruvec_memcg(lruvec);
+	struct pglist_data *pgdat = lruvec_pgdat(lruvec);
+
+	spin_lock_irq(&lruvec->lru_lock);
+
+	scanned = isolate_pages(lruvec, sc, swappiness, &type, &list);
+
+	scanned += try_to_inc_min_seq(lruvec, swappiness);
+
+	if (get_nr_gens(lruvec, !swappiness) == MIN_NR_GENS)
+		scanned = 0;
+
+	spin_unlock_irq(&lruvec->lru_lock);
+
+	if (list_empty(&list))
+		return scanned;
+retry:
+	reclaimed = shrink_page_list(&list, pgdat, sc, &stat, false);
+	sc->nr_reclaimed += reclaimed;
+
+	list_for_each_entry_safe_reverse(page, next, &list, lru) {
+		if (!page_evictable(page)) {
+			list_del(&page->lru);
+			putback_lru_page(page);
+			continue;
+		}
+
+		if (PageReclaim(page) &&
+		    (PageDirty(page) || PageWriteback(page))) {
+			/* restore LRU_REFS_FLAGS cleared by isolate_page() */
+			if (PageWorkingset(page))
+				SetPageReferenced(page);
+			continue;
+		}
+
+		if (skip_retry || PageActive(page) || PageReferenced(page) ||
+		    page_mapped(page) || PageLocked(page) ||
+		    PageDirty(page) || PageWriteback(page)) {
+			/* don't add rejected pages to the oldest generation */
+			set_mask_bits(&page->flags, LRU_REFS_MASK | LRU_REFS_FLAGS,
+				      BIT(PG_active));
+			continue;
+		}
+
+		/* retry pages that may have missed rotate_reclaimable_page() */
+		list_move(&page->lru, &clean);
+		sc->nr_scanned -= thp_nr_pages(page);
+	}
+
+	spin_lock_irq(&lruvec->lru_lock);
+
+	move_pages_to_lru(lruvec, &list);
+
+	walk = current->reclaim_state->mm_walk;
+	if (walk && walk->batched)
+		reset_batch_size(lruvec, walk);
+
+	item = current_is_kswapd() ? PGSTEAL_KSWAPD : PGSTEAL_DIRECT;
+	if (!cgroup_reclaim(sc))
+		__count_vm_events(item, reclaimed);
+	__count_memcg_events(memcg, item, reclaimed);
+	__count_vm_events(PGSTEAL_ANON + type, reclaimed);
+
+	spin_unlock_irq(&lruvec->lru_lock);
+
+	mem_cgroup_uncharge_list(&list);
+	free_unref_page_list(&list);
+
+	INIT_LIST_HEAD(&list);
+	list_splice_init(&clean, &list);
+
+	if (!list_empty(&list)) {
+		skip_retry = true;
+		goto retry;
+	}
+
+	if (need_swapping && type == LRU_GEN_ANON)
+		*need_swapping = true;
+
+	return scanned;
+}
+
+/*
+ * For future optimizations:
+ * 1. Defer try_to_inc_max_seq() to workqueues to reduce latency for memcg
+ *    reclaim.
+ */
+static unsigned long get_nr_to_scan(struct lruvec *lruvec, struct scan_control *sc,
+				    bool can_swap, bool *need_aging)
+{
+	unsigned long nr_to_scan;
+	struct mem_cgroup *memcg = lruvec_memcg(lruvec);
+	DEFINE_MAX_SEQ(lruvec);
+	DEFINE_MIN_SEQ(lruvec);
+
+	if (mem_cgroup_below_min(memcg) ||
+	    (mem_cgroup_below_low(memcg) && !sc->memcg_low_reclaim))
+		return 0;
+
+	*need_aging = should_run_aging(lruvec, max_seq, min_seq, sc, can_swap, &nr_to_scan);
+	if (!*need_aging)
+		return nr_to_scan;
+
+	/* skip the aging path at the default priority */
+	if (sc->priority == DEF_PRIORITY)
+		goto done;
+
+	/* leave the work to lru_gen_age_node() */
+	if (current_is_kswapd())
+		return 0;
+
+	if (try_to_inc_max_seq(lruvec, max_seq, sc, can_swap, false))
+		return nr_to_scan;
+done:
+	return min_seq[!can_swap] + MIN_NR_GENS <= max_seq ? nr_to_scan : 0;
+}
+
+static bool should_abort_scan(struct lruvec *lruvec, unsigned long seq,
+			      struct scan_control *sc, bool need_swapping)
+{
+	int i;
+	DEFINE_MAX_SEQ(lruvec);
+
+	if (!current_is_kswapd()) {
+		/* age each memcg at most once to ensure fairness */
+		if (max_seq - seq > 1)
+			return true;
+
+		/* over-swapping can increase allocation latency */
+		if (sc->nr_reclaimed >= sc->nr_to_reclaim && need_swapping)
+			return true;
+
+		/* give this thread a chance to exit and free its memory */
+		if (fatal_signal_pending(current)) {
+			sc->nr_reclaimed += MIN_LRU_BATCH;
+			return true;
+		}
+
+		if (cgroup_reclaim(sc))
+			return false;
+	} else if (sc->nr_reclaimed - sc->last_reclaimed < sc->nr_to_reclaim)
+		return false;
+
+	/* keep scanning at low priorities to ensure fairness */
+	if (sc->priority > DEF_PRIORITY - 2)
+		return false;
+
+	/*
+	 * A minimum amount of work was done under global memory pressure. For
+	 * kswapd, it may be overshooting. For direct reclaim, the allocation
+	 * may succeed if all suitable zones are somewhat safe. In either case,
+	 * it's better to stop now, and restart later if necessary.
+	 */
+	for (i = 0; i <= sc->reclaim_idx; i++) {
+		unsigned long wmark;
+		struct zone *zone = lruvec_pgdat(lruvec)->node_zones + i;
+
+		if (!managed_zone(zone))
+			continue;
+
+		wmark = current_is_kswapd() ? high_wmark_pages(zone) : low_wmark_pages(zone);
+		if (wmark > zone_page_state(zone, NR_FREE_PAGES))
+			return false;
+	}
+
+	sc->nr_reclaimed += MIN_LRU_BATCH;
+
+	return true;
+}
+
+static void lru_gen_shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
+{
+	struct blk_plug plug;
+	bool need_aging = false;
+	bool need_swapping = false;
+	unsigned long scanned = 0;
+	unsigned long reclaimed = sc->nr_reclaimed;
+	DEFINE_MAX_SEQ(lruvec);
+
+	lru_add_drain();
+
+	blk_start_plug(&plug);
+
+	set_mm_walk(lruvec_pgdat(lruvec));
+
+	while (true) {
+		int delta;
+		int swappiness;
+		unsigned long nr_to_scan;
+
+		if (sc->may_swap)
+			swappiness = get_swappiness(lruvec, sc);
+		else if (!cgroup_reclaim(sc) && get_swappiness(lruvec, sc))
+			swappiness = 1;
+		else
+			swappiness = 0;
+
+		nr_to_scan = get_nr_to_scan(lruvec, sc, swappiness, &need_aging);
+		if (!nr_to_scan)
+			goto done;
+
+		delta = evict_pages(lruvec, sc, swappiness, &need_swapping);
+		if (!delta)
+			goto done;
+
+		scanned += delta;
+		if (scanned >= nr_to_scan)
+			break;
+
+		if (should_abort_scan(lruvec, max_seq, sc, need_swapping))
+			break;
+
+		cond_resched();
+	}
+
+	/* see the comment in lru_gen_age_node() */
+	if (sc->nr_reclaimed - reclaimed >= MIN_LRU_BATCH && !need_aging)
+		sc->memcgs_need_aging = false;
+done:
+	clear_mm_walk();
+
+	blk_finish_plug(&plug);
+}
+
+/******************************************************************************
+ *                          state change
+ ******************************************************************************/
+
+static bool __maybe_unused state_is_valid(struct lruvec *lruvec)
+{
+	struct lru_gen_struct *lrugen = &lruvec->lrugen;
+
+	if (lrugen->enabled) {
+		enum lru_list lru;
+
+		for_each_evictable_lru(lru) {
+			if (!list_empty(&lruvec->lists[lru]))
+				return false;
+		}
+	} else {
+		int gen, type, zone;
+
+		for_each_gen_type_zone(gen, type, zone) {
+			if (!list_empty(&lrugen->lists[gen][type][zone]))
+				return false;
+		}
+	}
+
+	return true;
+}
+
+static bool fill_evictable(struct lruvec *lruvec)
+{
+	enum lru_list lru;
+	int remaining = MAX_LRU_BATCH;
+
+	for_each_evictable_lru(lru) {
+		int type = is_file_lru(lru);
+		bool active = is_active_lru(lru);
+		struct list_head *head = &lruvec->lists[lru];
+
+		while (!list_empty(head)) {
+			bool success;
+			struct page *page = lru_to_page(head);
+
+			VM_WARN_ON_ONCE_PAGE(PageUnevictable(page), page);
+			VM_WARN_ON_ONCE_PAGE(PageActive(page) != active, page);
+			VM_WARN_ON_ONCE_PAGE(page_is_file_lru(page) != type, page);
+			VM_WARN_ON_ONCE_PAGE(page_lru_gen(page) != -1, page);
+
+			del_page_from_lru_list(page, lruvec);
+			success = lru_gen_add_page(lruvec, page, false);
+			VM_WARN_ON_ONCE(!success);
+
+			if (!--remaining)
+				return false;
+		}
+	}
+
+	return true;
+}
+
+static bool drain_evictable(struct lruvec *lruvec)
+{
+	int gen, type, zone;
+	int remaining = MAX_LRU_BATCH;
+
+	for_each_gen_type_zone(gen, type, zone) {
+		struct list_head *head = &lruvec->lrugen.lists[gen][type][zone];
+
+		while (!list_empty(head)) {
+			bool success;
+			struct page *page = lru_to_page(head);
+
+			VM_WARN_ON_ONCE_PAGE(PageUnevictable(page), page);
+			VM_WARN_ON_ONCE_PAGE(PageActive(page), page);
+			VM_WARN_ON_ONCE_PAGE(page_is_file_lru(page) != type, page);
+			VM_WARN_ON_ONCE_PAGE(page_zonenum(page) != zone, page);
+
+			success = lru_gen_del_page(lruvec, page, false);
+			VM_WARN_ON_ONCE(!success);
+			add_page_to_lru_list(page, lruvec);
+
+			if (!--remaining)
+				return false;
+		}
+	}
+
+	return true;
+}
+
+static void lru_gen_change_state(bool enabled)
+{
+	static DEFINE_MUTEX(state_mutex);
+
+	struct mem_cgroup *memcg;
+
+	cgroup_lock();
+	cpus_read_lock();
+	get_online_mems();
+	mutex_lock(&state_mutex);
+
+	if (enabled == lru_gen_enabled())
+		goto unlock;
+
+	if (enabled)
+		static_branch_enable_cpuslocked(&lru_gen_caps[LRU_GEN_CORE]);
+	else
+		static_branch_disable_cpuslocked(&lru_gen_caps[LRU_GEN_CORE]);
+
+	memcg = mem_cgroup_iter(NULL, NULL, NULL);
+	do {
+		int nid;
+
+		for_each_node(nid) {
+			struct lruvec *lruvec = get_lruvec(memcg, nid);
+
+			if (!lruvec)
+				continue;
+
+			spin_lock_irq(&lruvec->lru_lock);
+
+			VM_WARN_ON_ONCE(!seq_is_valid(lruvec));
+			VM_WARN_ON_ONCE(!state_is_valid(lruvec));
+
+			lruvec->lrugen.enabled = enabled;
+
+			while (!(enabled ? fill_evictable(lruvec) : drain_evictable(lruvec))) {
+				spin_unlock_irq(&lruvec->lru_lock);
+				cond_resched();
+				spin_lock_irq(&lruvec->lru_lock);
+			}
+
+			spin_unlock_irq(&lruvec->lru_lock);
+		}
+
+		cond_resched();
+	} while ((memcg = mem_cgroup_iter(NULL, memcg, NULL)));
+unlock:
+	mutex_unlock(&state_mutex);
+	put_online_mems();
+	cpus_read_unlock();
+	cgroup_unlock();
+}
+
+/******************************************************************************
+ *                          sysfs interface
+ ******************************************************************************/
+
+static ssize_t show_min_ttl(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
+{
+	return sprintf(buf, "%u\n", jiffies_to_msecs(READ_ONCE(lru_gen_min_ttl)));
+}
+
+/* see Documentation/admin-guide/mm/multigen_lru.rst for details */
+static ssize_t store_min_ttl(struct kobject *kobj, struct kobj_attribute *attr,
+			     const char *buf, size_t len)
+{
+	unsigned int msecs;
+
+	if (kstrtouint(buf, 0, &msecs))
+		return -EINVAL;
+
+	WRITE_ONCE(lru_gen_min_ttl, msecs_to_jiffies(msecs));
+
+	return len;
+}
+
+static struct kobj_attribute lru_gen_min_ttl_attr = __ATTR(
+	min_ttl_ms, 0644, show_min_ttl, store_min_ttl
+);
+
+static ssize_t show_enabled(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
+{
+	unsigned int caps = 0;
+
+	if (get_cap(LRU_GEN_CORE))
+		caps |= BIT(LRU_GEN_CORE);
+
+	if (arch_has_hw_pte_young() && get_cap(LRU_GEN_MM_WALK))
+		caps |= BIT(LRU_GEN_MM_WALK);
+
+	if (IS_ENABLED(CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG) && get_cap(LRU_GEN_NONLEAF_YOUNG))
+		caps |= BIT(LRU_GEN_NONLEAF_YOUNG);
+
+	return snprintf(buf, PAGE_SIZE, "0x%04x\n", caps);
+}
+
+/* see Documentation/admin-guide/mm/multigen_lru.rst for details */
+static ssize_t store_enabled(struct kobject *kobj, struct kobj_attribute *attr,
+			     const char *buf, size_t len)
+{
+	int i;
+	unsigned int caps;
+
+	if (tolower(*buf) == 'n')
+		caps = 0;
+	else if (tolower(*buf) == 'y')
+		caps = -1;
+	else if (kstrtouint(buf, 0, &caps))
+		return -EINVAL;
+
+	for (i = 0; i < NR_LRU_GEN_CAPS; i++) {
+		bool enabled = caps & BIT(i);
+
+		if (i == LRU_GEN_CORE)
+			lru_gen_change_state(enabled);
+		else if (enabled)
+			static_branch_enable(&lru_gen_caps[i]);
+		else
+			static_branch_disable(&lru_gen_caps[i]);
+	}
+
+	return len;
+}
+
+static struct kobj_attribute lru_gen_enabled_attr = __ATTR(
+	enabled, 0644, show_enabled, store_enabled
+);
+
+static struct attribute *lru_gen_attrs[] = {
+	&lru_gen_min_ttl_attr.attr,
+	&lru_gen_enabled_attr.attr,
+	NULL
+};
+
+static struct attribute_group lru_gen_attr_group = {
+	.name = "lru_gen",
+	.attrs = lru_gen_attrs,
+};
+
+/******************************************************************************
+ *                          debugfs interface
+ ******************************************************************************/
+
+static void *lru_gen_seq_start(struct seq_file *m, loff_t *pos)
+{
+	struct mem_cgroup *memcg;
+	loff_t nr_to_skip = *pos;
+
+	m->private = kvmalloc(PATH_MAX, GFP_KERNEL);
+	if (!m->private)
+		return ERR_PTR(-ENOMEM);
+
+	memcg = mem_cgroup_iter(NULL, NULL, NULL);
+	do {
+		int nid;
+
+		for_each_node_state(nid, N_MEMORY) {
+			if (!nr_to_skip--)
+				return get_lruvec(memcg, nid);
+		}
+	} while ((memcg = mem_cgroup_iter(NULL, memcg, NULL)));
+
+	return NULL;
+}
+
+static void lru_gen_seq_stop(struct seq_file *m, void *v)
+{
+	if (!IS_ERR_OR_NULL(v))
+		mem_cgroup_iter_break(NULL, lruvec_memcg(v));
+
+	kvfree(m->private);
+	m->private = NULL;
+}
+
+static void *lru_gen_seq_next(struct seq_file *m, void *v, loff_t *pos)
+{
+	int nid = lruvec_pgdat(v)->node_id;
+	struct mem_cgroup *memcg = lruvec_memcg(v);
+
+	++*pos;
+
+	nid = next_memory_node(nid);
+	if (nid == MAX_NUMNODES) {
+		memcg = mem_cgroup_iter(NULL, memcg, NULL);
+		if (!memcg)
+			return NULL;
+
+		nid = first_memory_node;
+	}
+
+	return get_lruvec(memcg, nid);
+}
+
+static void lru_gen_seq_show_full(struct seq_file *m, struct lruvec *lruvec,
+				  unsigned long max_seq, unsigned long *min_seq,
+				  unsigned long seq)
+{
+	int i;
+	int type, tier;
+	int hist = lru_hist_from_seq(seq);
+	struct lru_gen_struct *lrugen = &lruvec->lrugen;
+
+	for (tier = 0; tier < MAX_NR_TIERS; tier++) {
+		seq_printf(m, "            %10d", tier);
+		for (type = 0; type < ANON_AND_FILE; type++) {
+			const char *s = "   ";
+			unsigned long n[3] = {};
+
+			if (seq == max_seq) {
+				s = "RT ";
+				n[0] = READ_ONCE(lrugen->avg_refaulted[type][tier]);
+				n[1] = READ_ONCE(lrugen->avg_total[type][tier]);
+			} else if (seq == min_seq[type] || NR_HIST_GENS > 1) {
+				s = "rep";
+				n[0] = atomic_long_read(&lrugen->refaulted[hist][type][tier]);
+				n[1] = atomic_long_read(&lrugen->evicted[hist][type][tier]);
+				if (tier)
+					n[2] = READ_ONCE(lrugen->protected[hist][type][tier - 1]);
+			}
+
+			for (i = 0; i < 3; i++)
+				seq_printf(m, " %10lu%c", n[i], s[i]);
+		}
+		seq_putc(m, '\n');
+	}
+
+	seq_puts(m, "                      ");
+	for (i = 0; i < NR_MM_STATS; i++) {
+		const char *s = "      ";
+		unsigned long n = 0;
+
+		if (seq == max_seq && NR_HIST_GENS == 1) {
+			s = "LOYNFA";
+			n = READ_ONCE(lruvec->mm_state.stats[hist][i]);
+		} else if (seq != max_seq && NR_HIST_GENS > 1) {
+			s = "loynfa";
+			n = READ_ONCE(lruvec->mm_state.stats[hist][i]);
+		}
+
+		seq_printf(m, " %10lu%c", n, s[i]);
+	}
+	seq_putc(m, '\n');
+}
+
+/* see Documentation/admin-guide/mm/multigen_lru.rst for details */
+static int lru_gen_seq_show(struct seq_file *m, void *v)
+{
+	unsigned long seq;
+	bool full = !debugfs_real_fops(m->file)->write;
+	struct lruvec *lruvec = v;
+	struct lru_gen_struct *lrugen = &lruvec->lrugen;
+	int nid = lruvec_pgdat(lruvec)->node_id;
+	struct mem_cgroup *memcg = lruvec_memcg(lruvec);
+	DEFINE_MAX_SEQ(lruvec);
+	DEFINE_MIN_SEQ(lruvec);
+
+	if (nid == first_memory_node) {
+		const char *path = memcg ? m->private : "";
+
+#ifdef CONFIG_MEMCG
+		if (memcg)
+			cgroup_path(memcg->css.cgroup, m->private, PATH_MAX);
+#endif
+		seq_printf(m, "memcg %5hu %s\n", mem_cgroup_id(memcg), path);
+	}
+
+	seq_printf(m, " node %5d\n", nid);
+
+	if (!full)
+		seq = min_seq[LRU_GEN_ANON];
+	else if (max_seq >= MAX_NR_GENS)
+		seq = max_seq - MAX_NR_GENS + 1;
+	else
+		seq = 0;
+
+	for (; seq <= max_seq; seq++) {
+		int type, zone;
+		int gen = lru_gen_from_seq(seq);
+		unsigned long birth = READ_ONCE(lruvec->lrugen.timestamps[gen]);
+
+		seq_printf(m, " %10lu %10u", seq, jiffies_to_msecs(jiffies - birth));
+
+		for (type = 0; type < ANON_AND_FILE; type++) {
+			unsigned long size = 0;
+			char mark = full && seq < min_seq[type] ? 'x' : ' ';
+
+			for (zone = 0; zone < MAX_NR_ZONES; zone++)
+				size += max_t(long, READ_ONCE(lrugen->nr_pages[gen][type][zone]),
+						0);
+
+			seq_printf(m, " %10lu%c", size, mark);
+		}
+
+		seq_putc(m, '\n');
+
+		if (full)
+			lru_gen_seq_show_full(m, lruvec, max_seq, min_seq, seq);
+	}
+
+	return 0;
+}
+
+static const struct seq_operations lru_gen_seq_ops = {
+	.start = lru_gen_seq_start,
+	.stop = lru_gen_seq_stop,
+	.next = lru_gen_seq_next,
+	.show = lru_gen_seq_show,
+};
+
+static int run_aging(struct lruvec *lruvec, unsigned long seq, struct scan_control *sc,
+		     bool can_swap, bool full_scan)
+{
+	DEFINE_MAX_SEQ(lruvec);
+	DEFINE_MIN_SEQ(lruvec);
+
+	if (seq < max_seq)
+		return 0;
+
+	if (seq > max_seq)
+		return -EINVAL;
+
+	if (!full_scan && min_seq[!can_swap] + MAX_NR_GENS - 1 <= max_seq)
+		return -ERANGE;
+
+	try_to_inc_max_seq(lruvec, max_seq, sc, can_swap, full_scan);
+
+	return 0;
+}
+
+static int run_eviction(struct lruvec *lruvec, unsigned long seq, struct scan_control *sc,
+			int swappiness, unsigned long nr_to_reclaim)
+{
+	DEFINE_MAX_SEQ(lruvec);
+
+	if (seq + MIN_NR_GENS > max_seq)
+		return -EINVAL;
+
+	sc->nr_reclaimed = 0;
+
+	while (!signal_pending(current)) {
+		DEFINE_MIN_SEQ(lruvec);
+
+		if (seq < min_seq[!swappiness])
+			return 0;
+
+		if (sc->nr_reclaimed >= nr_to_reclaim)
+			return 0;
+
+		if (!evict_pages(lruvec, sc, swappiness, NULL))
+			return 0;
+
+		cond_resched();
+	}
+
+	return -EINTR;
+}
+
+static int run_cmd(char cmd, int memcg_id, int nid, unsigned long seq,
+		   struct scan_control *sc, int swappiness, unsigned long opt)
+{
+	struct lruvec *lruvec;
+	int err = -EINVAL;
+	struct mem_cgroup *memcg = NULL;
+
+	if (nid < 0 || nid >= MAX_NUMNODES || !node_state(nid, N_MEMORY))
+		return -EINVAL;
+
+	if (!mem_cgroup_disabled()) {
+		rcu_read_lock();
+		memcg = mem_cgroup_from_id(memcg_id);
+#ifdef CONFIG_MEMCG
+		if (memcg && !css_tryget(&memcg->css))
+			memcg = NULL;
+#endif
+		rcu_read_unlock();
+
+		if (!memcg)
+			return -EINVAL;
+	}
+
+	if (memcg_id != mem_cgroup_id(memcg))
+		goto done;
+
+	lruvec = get_lruvec(memcg, nid);
+
+	if (swappiness < 0)
+		swappiness = get_swappiness(lruvec, sc);
+	else if (swappiness > 200)
+		goto done;
+
+	switch (cmd) {
+	case '+':
+		err = run_aging(lruvec, seq, sc, swappiness, opt);
+		break;
+	case '-':
+		err = run_eviction(lruvec, seq, sc, swappiness, opt);
+		break;
+	}
+done:
+	mem_cgroup_put(memcg);
+
+	return err;
+}
+
+/* see Documentation/admin-guide/mm/multigen_lru.rst for details */
+static ssize_t lru_gen_seq_write(struct file *file, const char __user *src,
+				 size_t len, loff_t *pos)
+{
+	void *buf;
+	char *cur, *next;
+	unsigned int flags;
+	struct blk_plug plug;
+	int err = -EINVAL;
+	struct scan_control sc = {
+		.may_writepage = true,
+		.may_unmap = true,
+		.may_swap = true,
+		.reclaim_idx = MAX_NR_ZONES - 1,
+		.gfp_mask = GFP_KERNEL,
+	};
+
+	buf = kvmalloc(len + 1, GFP_KERNEL);
+	if (!buf)
+		return -ENOMEM;
+
+	if (copy_from_user(buf, src, len)) {
+		kvfree(buf);
+		return -EFAULT;
+	}
+
+	set_task_reclaim_state(current, &sc.reclaim_state);
+	flags = memalloc_noreclaim_save();
+	blk_start_plug(&plug);
+	if (!set_mm_walk(NULL)) {
+		err = -ENOMEM;
+		goto done;
+	}
+
+	next = buf;
+	next[len] = '\0';
+
+	while ((cur = strsep(&next, ",;\n"))) {
+		int n;
+		int end;
+		char cmd;
+		unsigned int memcg_id;
+		unsigned int nid;
+		unsigned long seq;
+		unsigned int swappiness = -1;
+		unsigned long opt = -1;
+
+		cur = skip_spaces(cur);
+		if (!*cur)
+			continue;
+
+		n = sscanf(cur, "%c %u %u %lu %n %u %n %lu %n", &cmd, &memcg_id, &nid,
+			   &seq, &end, &swappiness, &end, &opt, &end);
+		if (n < 4 || cur[end]) {
+			err = -EINVAL;
+			break;
+		}
+
+		err = run_cmd(cmd, memcg_id, nid, seq, &sc, swappiness, opt);
+		if (err)
+			break;
+	}
+done:
+	clear_mm_walk();
+	blk_finish_plug(&plug);
+	memalloc_noreclaim_restore(flags);
+	set_task_reclaim_state(current, NULL);
+
+	kvfree(buf);
+
+	return err ? : len;
+}
+
+static int lru_gen_seq_open(struct inode *inode, struct file *file)
+{
+	return seq_open(file, &lru_gen_seq_ops);
+}
+
+static const struct file_operations lru_gen_rw_fops = {
+	.open = lru_gen_seq_open,
+	.read = seq_read,
+	.write = lru_gen_seq_write,
+	.llseek = seq_lseek,
+	.release = seq_release,
+};
+
+static const struct file_operations lru_gen_ro_fops = {
+	.open = lru_gen_seq_open,
+	.read = seq_read,
+	.llseek = seq_lseek,
+	.release = seq_release,
+};
+
+/******************************************************************************
+ *                          initialization
+ ******************************************************************************/
+
+void lru_gen_init_lruvec(struct lruvec *lruvec)
+{
+	int i;
+	int gen, type, zone;
+	struct lru_gen_struct *lrugen = &lruvec->lrugen;
+
+	lrugen->max_seq = MIN_NR_GENS + 1;
+	lrugen->enabled = lru_gen_enabled();
+
+	for (i = 0; i <= MIN_NR_GENS + 1; i++)
+		lrugen->timestamps[i] = jiffies;
+
+	for_each_gen_type_zone(gen, type, zone)
+		INIT_LIST_HEAD(&lrugen->lists[gen][type][zone]);
+
+	lruvec->mm_state.seq = MIN_NR_GENS;
+}
+
+#ifdef CONFIG_MEMCG
+void lru_gen_init_memcg(struct mem_cgroup *memcg)
+{
+	INIT_LIST_HEAD(&memcg->mm_list.fifo);
+	spin_lock_init(&memcg->mm_list.lock);
+}
+
+void lru_gen_exit_memcg(struct mem_cgroup *memcg)
+{
+	int i;
+	int nid;
+
+	for_each_node(nid) {
+		struct lruvec *lruvec = get_lruvec(memcg, nid);
+
+		VM_WARN_ON_ONCE(memchr_inv(lruvec->lrugen.nr_pages, 0,
+					   sizeof(lruvec->lrugen.nr_pages)));
+
+		for (i = 0; i < NR_BLOOM_FILTERS; i++) {
+			bitmap_free(lruvec->mm_state.filters[i]);
+			lruvec->mm_state.filters[i] = NULL;
+		}
+	}
+}
+#endif
+
+static int __init init_lru_gen(void)
+{
+	BUILD_BUG_ON(MIN_NR_GENS + 1 >= MAX_NR_GENS);
+	BUILD_BUG_ON(BIT(LRU_GEN_WIDTH) <= MAX_NR_GENS);
+
+	if (sysfs_create_group(mm_kobj, &lru_gen_attr_group))
+		pr_err("lru_gen: failed to create sysfs group\n");
+
+	debugfs_create_file("lru_gen", 0644, NULL, NULL, &lru_gen_rw_fops);
+	debugfs_create_file("lru_gen_full", 0444, NULL, NULL, &lru_gen_ro_fops);
+
+	return 0;
+};
+late_initcall(init_lru_gen);
+
+#else /* !CONFIG_LRU_GEN */
+
+static void lru_gen_age_node(struct pglist_data *pgdat, struct scan_control *sc)
+{
+}
+
+static void lru_gen_shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
+{
+}
+
+#endif /* CONFIG_LRU_GEN */
+
 static void shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
 {
 	unsigned long nr[NR_LRU_LISTS];
@@ -2729,6 +5714,11 @@
 	bool proportional_reclaim;
 	struct blk_plug plug;
 
+	if (lru_gen_enabled()) {
+		lru_gen_shrink_lruvec(lruvec, sc);
+		return;
+	}
+
 	get_scan_count(lruvec, sc, nr);
 
 	/* Record the original scan target for proportional adjustments later */
@@ -2912,6 +5902,7 @@
 		struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat);
 		unsigned long reclaimed;
 		unsigned long scanned;
+		bool skip = false;
 
 		/*
 		 * This loop can become CPU-bound when target memcgs
@@ -2921,6 +5912,10 @@
 		 */
 		cond_resched();
 
+		trace_android_vh_shrink_node_memcgs(memcg, &skip);
+		if (skip)
+			continue;
+
 		mem_cgroup_calculate_protection(target_memcg, memcg);
 
 		if (mem_cgroup_below_min(memcg)) {
@@ -2965,109 +5960,16 @@
 	unsigned long nr_reclaimed, nr_scanned;
 	struct lruvec *target_lruvec;
 	bool reclaimable = false;
-	unsigned long file;
 
 	target_lruvec = mem_cgroup_lruvec(sc->target_mem_cgroup, pgdat);
 
 again:
-	/*
-	 * Flush the memory cgroup stats, so that we read accurate per-memcg
-	 * lruvec stats for heuristics.
-	 */
-	mem_cgroup_flush_stats();
-
 	memset(&sc->nr, 0, sizeof(sc->nr));
 
 	nr_reclaimed = sc->nr_reclaimed;
 	nr_scanned = sc->nr_scanned;
 
-	/*
-	 * Determine the scan balance between anon and file LRUs.
-	 */
-	spin_lock_irq(&target_lruvec->lru_lock);
-	sc->anon_cost = target_lruvec->anon_cost;
-	sc->file_cost = target_lruvec->file_cost;
-	spin_unlock_irq(&target_lruvec->lru_lock);
-
-	/*
-	 * Target desirable inactive:active list ratios for the anon
-	 * and file LRU lists.
-	 */
-	if (!sc->force_deactivate) {
-		unsigned long refaults;
-
-		refaults = lruvec_page_state(target_lruvec,
-				WORKINGSET_ACTIVATE_ANON);
-		if (refaults != target_lruvec->refaults[0] ||
-			inactive_is_low(target_lruvec, LRU_INACTIVE_ANON))
-			sc->may_deactivate |= DEACTIVATE_ANON;
-		else
-			sc->may_deactivate &= ~DEACTIVATE_ANON;
-
-		/*
-		 * When refaults are being observed, it means a new
-		 * workingset is being established. Deactivate to get
-		 * rid of any stale active pages quickly.
-		 */
-		refaults = lruvec_page_state(target_lruvec,
-				WORKINGSET_ACTIVATE_FILE);
-		if (refaults != target_lruvec->refaults[1] ||
-		    inactive_is_low(target_lruvec, LRU_INACTIVE_FILE))
-			sc->may_deactivate |= DEACTIVATE_FILE;
-		else
-			sc->may_deactivate &= ~DEACTIVATE_FILE;
-	} else
-		sc->may_deactivate = DEACTIVATE_ANON | DEACTIVATE_FILE;
-
-	/*
-	 * If we have plenty of inactive file pages that aren't
-	 * thrashing, try to reclaim those first before touching
-	 * anonymous pages.
-	 */
-	file = lruvec_page_state(target_lruvec, NR_INACTIVE_FILE);
-	if (file >> sc->priority && !(sc->may_deactivate & DEACTIVATE_FILE))
-		sc->cache_trim_mode = 1;
-	else
-		sc->cache_trim_mode = 0;
-
-	/*
-	 * Prevent the reclaimer from falling into the cache trap: as
-	 * cache pages start out inactive, every cache fault will tip
-	 * the scan balance towards the file LRU.  And as the file LRU
-	 * shrinks, so does the window for rotation from references.
-	 * This means we have a runaway feedback loop where a tiny
-	 * thrashing file LRU becomes infinitely more attractive than
-	 * anon pages.  Try to detect this based on file LRU size.
-	 */
-	if (!cgroup_reclaim(sc)) {
-		unsigned long total_high_wmark = 0;
-		unsigned long free, anon;
-		int z;
-
-		free = sum_zone_node_page_state(pgdat->node_id, NR_FREE_PAGES);
-		file = node_page_state(pgdat, NR_ACTIVE_FILE) +
-			   node_page_state(pgdat, NR_INACTIVE_FILE);
-
-		for (z = 0; z < MAX_NR_ZONES; z++) {
-			struct zone *zone = &pgdat->node_zones[z];
-			if (!managed_zone(zone))
-				continue;
-
-			total_high_wmark += high_wmark_pages(zone);
-		}
-
-		/*
-		 * Consider anon: if that's low too, this isn't a
-		 * runaway file reclaim problem, but rather just
-		 * extreme pressure. Reclaim as per usual then.
-		 */
-		anon = node_page_state(pgdat, NR_INACTIVE_ANON);
-
-		sc->file_is_tiny =
-			file + free <= total_high_wmark &&
-			!(sc->may_deactivate & DEACTIVATE_ANON) &&
-			anon >> sc->priority;
-	}
+	prepare_scan_count(pgdat, sc);
 
 	shrink_node_memcgs(pgdat, sc);
 
@@ -3287,6 +6189,9 @@
 	struct lruvec *target_lruvec;
 	unsigned long refaults;
 
+	if (lru_gen_enabled())
+		return;
+
 	target_lruvec = mem_cgroup_lruvec(target_memcg, pgdat);
 	refaults = lruvec_page_state(target_lruvec, WORKINGSET_ACTIVATE_ANON);
 	target_lruvec->refaults[0] = refaults;
@@ -3649,14 +6554,19 @@
 
 	return nr_reclaimed;
 }
+EXPORT_SYMBOL_GPL(try_to_free_mem_cgroup_pages);
 #endif
 
-static void age_active_anon(struct pglist_data *pgdat,
-				struct scan_control *sc)
+static void kswapd_age_node(struct pglist_data *pgdat, struct scan_control *sc)
 {
 	struct mem_cgroup *memcg;
 	struct lruvec *lruvec;
 
+	if (lru_gen_enabled()) {
+		lru_gen_age_node(pgdat, sc);
+		return;
+	}
+
 	if (!can_age_anon_pages(pgdat, sc))
 		return;
 
@@ -3973,12 +6883,11 @@
 		sc.may_swap = !nr_boost_reclaim;
 
 		/*
-		 * Do some background aging of the anon list, to give
-		 * pages a chance to be referenced before reclaiming. All
-		 * pages are rotated regardless of classzone as this is
-		 * about consistent aging.
+		 * Do some background aging, to give pages a chance to be
+		 * referenced before reclaiming. All pages are rotated
+		 * regardless of classzone as this is about consistent aging.
 		 */
-		age_active_anon(pgdat, &sc);
+		kswapd_age_node(pgdat, &sc);
 
 		/*
 		 * If we're getting trouble reclaiming, start doing writepage
@@ -4191,7 +7100,7 @@
  * If there are applications that are active memory-allocators
  * (most normal use), this basically shouldn't matter.
  */
-static int kswapd(void *p)
+int kswapd(void *p)
 {
 	unsigned int alloc_order, reclaim_order;
 	unsigned int highest_zoneidx = MAX_NR_ZONES - 1;
@@ -4268,6 +7177,7 @@
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(kswapd);
 
 /*
  * A zone is low on free memory or too fragmented for high-order memory.  If
@@ -4367,10 +7277,14 @@
 void kswapd_run(int nid)
 {
 	pg_data_t *pgdat = NODE_DATA(nid);
+	bool skip = false;
 
 	if (pgdat->kswapd)
 		return;
 
+	trace_android_vh_kswapd_per_node(nid, &skip, true);
+	if (skip)
+		return;
 	pgdat->kswapd = kthread_run(kswapd, pgdat, "kswapd%d", nid);
 	if (IS_ERR(pgdat->kswapd)) {
 		/* failure at boot is fatal */
@@ -4387,7 +7301,11 @@
 void kswapd_stop(int nid)
 {
 	struct task_struct *kswapd = NODE_DATA(nid)->kswapd;
+	bool skip = false;
 
+	trace_android_vh_kswapd_per_node(nid, &skip, false);
+	if (skip)
+		return;
 	if (kswapd) {
 		kthread_stop(kswapd);
 		NODE_DATA(nid)->kswapd = NULL;
diff --git a/mm/vmstat.c b/mm/vmstat.c
index 8ce2620..5ec6d64 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -1176,9 +1176,7 @@
 	"nr_zone_write_pending",
 	"nr_mlock",
 	"nr_bounce",
-#if IS_ENABLED(CONFIG_ZSMALLOC)
 	"nr_zspages",
-#endif
 	"nr_free_cma",
 
 	/* enum numa_stat_item counters */
@@ -1381,6 +1379,32 @@
 	"direct_map_level2_splits",
 	"direct_map_level3_splits",
 #endif
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+	"spf_attempt",
+	"spf_abort",
+#endif
+#ifdef CONFIG_SPECULATIVE_PAGE_FAULT_STATS
+	"SPF_ABORT_ODD",
+	"SPF_ABORT_UNMAPPED",
+	"SPF_ABORT_NO_SPECULATE",
+	"SPF_ABORT_VMA_COPY",
+	"SPF_ABORT_ACCESS_ERROR",
+	"SPF_ABORT_PUD",
+	"SPF_ABORT_PMD",
+	"SPF_ABORT_ANON_VMA",
+	"SPF_ABORT_PTE_MAP_LOCK_SEQ1",
+	"SPF_ABORT_PTE_MAP_LOCK_PMD",
+	"SPF_ABORT_PTE_MAP_LOCK_PTL",
+	"SPF_ABORT_PTE_MAP_LOCK_SEQ2",
+	"SPF_ABORT_USERFAULTFD",
+	"SPF_ABORT_FAULT",
+	"SPF_ABORT_SWAP",
+	"SPF_ATTEMPT_ANON",
+	"SPF_ATTEMPT_FILE",
+	"SPF_ATTEMPT_NUMA",
+	"SPF_ATTEMPT_PTE",
+	"SPF_ATTEMPT_WP",
+#endif
 #endif /* CONFIG_VM_EVENT_COUNTERS || CONFIG_MEMCG */
 };
 #endif /* CONFIG_PROC_FS || CONFIG_SYSFS || CONFIG_NUMA || CONFIG_MEMCG */
@@ -1700,7 +1724,8 @@
 		struct per_cpu_pages *pcp;
 		struct per_cpu_zonestat __maybe_unused *pzstats;
 
-		pcp = per_cpu_ptr(zone->per_cpu_pageset, i);
+		pcp = &per_cpu_ptr((struct per_cpu_pages_ext __percpu *)zone->per_cpu_pageset,
+				   i)->pcp;
 		seq_printf(m,
 			   "\n    cpu: %i"
 			   "\n              count: %i"
diff --git a/mm/workingset.c b/mm/workingset.c
index 880d882..ffe23e5 100644
--- a/mm/workingset.c
+++ b/mm/workingset.c
@@ -187,7 +187,6 @@
 static void *pack_shadow(int memcgid, pg_data_t *pgdat, unsigned long eviction,
 			 bool workingset)
 {
-	eviction >>= bucket_order;
 	eviction &= EVICTION_MASK;
 	eviction = (eviction << MEM_CGROUP_ID_SHIFT) | memcgid;
 	eviction = (eviction << NODES_SHIFT) | pgdat->node_id;
@@ -212,10 +211,109 @@
 
 	*memcgidp = memcgid;
 	*pgdat = NODE_DATA(nid);
-	*evictionp = entry << bucket_order;
+	*evictionp = entry;
 	*workingsetp = workingset;
 }
 
+#ifdef CONFIG_LRU_GEN
+
+static void *lru_gen_eviction(struct page *page)
+{
+	int hist;
+	unsigned long token;
+	unsigned long min_seq;
+	struct lruvec *lruvec;
+	struct lru_gen_struct *lrugen;
+	int type = page_is_file_lru(page);
+	int delta = thp_nr_pages(page);
+	int refs = page_lru_refs(page);
+	int tier = lru_tier_from_refs(refs);
+	struct mem_cgroup *memcg = page_memcg(page);
+	struct pglist_data *pgdat = page_pgdat(page);
+
+	BUILD_BUG_ON(LRU_GEN_WIDTH + LRU_REFS_WIDTH > BITS_PER_LONG - EVICTION_SHIFT);
+
+	lruvec = mem_cgroup_lruvec(memcg, pgdat);
+	lrugen = &lruvec->lrugen;
+	min_seq = READ_ONCE(lrugen->min_seq[type]);
+	token = (min_seq << LRU_REFS_WIDTH) | max(refs - 1, 0);
+
+	hist = lru_hist_from_seq(min_seq);
+	atomic_long_add(delta, &lrugen->evicted[hist][type][tier]);
+
+	return pack_shadow(mem_cgroup_id(memcg), pgdat, token, refs);
+}
+
+static void lru_gen_refault(struct page *page, void *shadow)
+{
+	int hist, tier, refs;
+	int memcg_id;
+	bool workingset;
+	unsigned long token;
+	unsigned long min_seq;
+	struct lruvec *lruvec;
+	struct lru_gen_struct *lrugen;
+	struct mem_cgroup *memcg;
+	struct pglist_data *pgdat;
+	int type = page_is_file_lru(page);
+	int delta = thp_nr_pages(page);
+
+	unpack_shadow(shadow, &memcg_id, &pgdat, &token, &workingset);
+
+	if (pgdat != page_pgdat(page))
+		return;
+
+	rcu_read_lock();
+
+	memcg = page_memcg_rcu(page);
+	if (memcg_id != mem_cgroup_id(memcg))
+		goto unlock;
+
+	lruvec = mem_cgroup_lruvec(memcg, pgdat);
+	lrugen = &lruvec->lrugen;
+
+	mod_lruvec_state(lruvec, WORKINGSET_REFAULT_BASE + type, delta);
+
+	min_seq = READ_ONCE(lrugen->min_seq[type]);
+	if ((token >> LRU_REFS_WIDTH) != (min_seq & (EVICTION_MASK >> LRU_REFS_WIDTH)))
+		goto unlock;
+
+	hist = lru_hist_from_seq(min_seq);
+	/* see the comment in page_lru_refs() */
+	refs = (token & (BIT(LRU_REFS_WIDTH) - 1)) + workingset;
+	tier = lru_tier_from_refs(refs);
+
+	atomic_long_add(delta, &lrugen->refaulted[hist][type][tier]);
+	mod_lruvec_state(lruvec, WORKINGSET_ACTIVATE_BASE + type, delta);
+
+	/*
+	 * Count the following two cases as stalls:
+	 * 1. For pages accessed through page tables, hotter pages pushed out
+	 *    hot pages which refaulted immediately.
+	 * 2. For pages accessed multiple times through file descriptors,
+	 *    numbers of accesses might have been out of the range.
+	 */
+	if (lru_gen_in_fault() || refs == BIT(LRU_REFS_WIDTH)) {
+		SetPageWorkingset(page);
+		mod_lruvec_state(lruvec, WORKINGSET_RESTORE_BASE + type, delta);
+	}
+unlock:
+	rcu_read_unlock();
+}
+
+#else /* !CONFIG_LRU_GEN */
+
+static void *lru_gen_eviction(struct page *page)
+{
+	return NULL;
+}
+
+static void lru_gen_refault(struct page *page, void *shadow)
+{
+}
+
+#endif /* CONFIG_LRU_GEN */
+
 /**
  * workingset_age_nonresident - age non-resident entries as LRU ages
  * @lruvec: the lruvec that was aged
@@ -264,10 +362,14 @@
 	VM_BUG_ON_PAGE(page_count(page), page);
 	VM_BUG_ON_PAGE(!PageLocked(page), page);
 
+	if (lru_gen_enabled())
+		return lru_gen_eviction(page);
+
 	lruvec = mem_cgroup_lruvec(target_memcg, pgdat);
 	/* XXX: target_memcg can be NULL, go through lruvec */
 	memcgid = mem_cgroup_id(lruvec_memcg(lruvec));
 	eviction = atomic_long_read(&lruvec->nonresident_age);
+	eviction >>= bucket_order;
 	workingset_age_nonresident(lruvec, thp_nr_pages(page));
 	return pack_shadow(memcgid, pgdat, eviction, PageWorkingset(page));
 }
@@ -296,7 +398,13 @@
 	bool workingset;
 	int memcgid;
 
+	if (lru_gen_enabled()) {
+		lru_gen_refault(page, shadow);
+		return;
+	}
+
 	unpack_shadow(shadow, &memcgid, &pgdat, &eviction, &workingset);
+	eviction <<= bucket_order;
 
 	rcu_read_lock();
 	/*
diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
index 439deb8..752fe5a 100644
--- a/mm/zsmalloc.c
+++ b/mm/zsmalloc.c
@@ -347,7 +347,7 @@
 static unsigned long cache_alloc_handle(struct zs_pool *pool, gfp_t gfp)
 {
 	return (unsigned long)kmem_cache_alloc(pool->handle_cachep,
-			gfp & ~(__GFP_HIGHMEM|__GFP_MOVABLE));
+			gfp & ~(__GFP_HIGHMEM|__GFP_MOVABLE|__GFP_CMA));
 }
 
 static void cache_free_handle(struct zs_pool *pool, unsigned long handle)
@@ -358,7 +358,7 @@
 static struct zspage *cache_alloc_zspage(struct zs_pool *pool, gfp_t flags)
 {
 	return kmem_cache_zalloc(pool->zspage_cachep,
-			flags & ~(__GFP_HIGHMEM|__GFP_MOVABLE));
+			flags & ~(__GFP_HIGHMEM|__GFP_MOVABLE|__GFP_CMA));
 }
 
 static void cache_free_zspage(struct zs_pool *pool, struct zspage *zspage)
diff --git a/net/9p/mod.c b/net/9p/mod.c
index 535cf016..1bbe9fa 100644
--- a/net/9p/mod.c
+++ b/net/9p/mod.c
@@ -186,4 +186,5 @@
 MODULE_AUTHOR("Eric Van Hensbergen <ericvh@gmail.com>");
 MODULE_AUTHOR("Ron Minnich <rminnich@lanl.gov>");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
 MODULE_DESCRIPTION("Plan 9 Resource Sharing Support (9P2000)");
diff --git a/net/TEST_MAPPING b/net/TEST_MAPPING
new file mode 100644
index 0000000..1eb8d43
--- /dev/null
+++ b/net/TEST_MAPPING
@@ -0,0 +1,12 @@
+{
+  "presubmit": [
+    {
+      "name": "CtsNetTestCases",
+      "options": [
+        {
+          "exclude-annotation": "com.android.testutils.SkipPresubmit"
+        }
+      ]
+    }
+  ]
+}
diff --git a/net/bpfilter/bpfilter_kern.c b/net/bpfilter/bpfilter_kern.c
index 51a941b..4dfcd0d 100644
--- a/net/bpfilter/bpfilter_kern.c
+++ b/net/bpfilter/bpfilter_kern.c
@@ -134,3 +134,4 @@
 module_init(load_umh);
 module_exit(fini_umh);
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
diff --git a/net/core/dev.c b/net/core/dev.c
index 4d698ccf..2e98751 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -150,6 +150,7 @@
 #include <linux/pm_runtime.h>
 #include <linux/prandom.h>
 #include <linux/once_lite.h>
+#include <trace/hooks/net.h>
 
 #include "net-sysfs.h"
 
@@ -516,6 +517,12 @@
 
 static inline struct list_head *ptype_head(const struct packet_type *pt)
 {
+	struct list_head vendor_pt = { .next  = NULL, };
+
+	trace_android_vh_ptype_head(pt, &vendor_pt);
+	if (vendor_pt.next)
+		return vendor_pt.next;
+
 	if (pt->type == htons(ETH_P_ALL))
 		return pt->dev ? &pt->dev->ptype_all : &ptype_all;
 	else
@@ -10644,16 +10651,24 @@
 void netdev_stats_to_stats64(struct rtnl_link_stats64 *stats64,
 			     const struct net_device_stats *netdev_stats)
 {
-	size_t i, n = sizeof(*netdev_stats) / sizeof(atomic_long_t);
-	const atomic_long_t *src = (atomic_long_t *)netdev_stats;
+#if BITS_PER_LONG == 64
+	BUILD_BUG_ON(sizeof(*stats64) < sizeof(*netdev_stats));
+	memcpy(stats64, netdev_stats, sizeof(*netdev_stats));
+	/* zero out counters that only exist in rtnl_link_stats64 */
+	memset((char *)stats64 + sizeof(*netdev_stats), 0,
+	       sizeof(*stats64) - sizeof(*netdev_stats));
+#else
+	size_t i, n = sizeof(*netdev_stats) / sizeof(unsigned long);
+	const unsigned long *src = (const unsigned long *)netdev_stats;
 	u64 *dst = (u64 *)stats64;
 
 	BUILD_BUG_ON(n > sizeof(*stats64) / sizeof(u64));
 	for (i = 0; i < n; i++)
-		dst[i] = (unsigned long)atomic_long_read(&src[i]);
+		dst[i] = src[i];
 	/* zero out counters that only exist in rtnl_link_stats64 */
 	memset((char *)stats64 + n * sizeof(u64), 0,
 	       sizeof(*stats64) - n * sizeof(u64));
+#endif
 }
 EXPORT_SYMBOL(netdev_stats_to_stats64);
 
diff --git a/net/core/net-traces.c b/net/core/net-traces.c
index c40cd8dd..ed7d56d 100644
--- a/net/core/net-traces.c
+++ b/net/core/net-traces.c
@@ -35,13 +35,11 @@
 #include <trace/events/tcp.h>
 #include <trace/events/fib.h>
 #include <trace/events/qdisc.h>
-#if IS_ENABLED(CONFIG_BRIDGE)
 #include <trace/events/bridge.h>
 EXPORT_TRACEPOINT_SYMBOL_GPL(br_fdb_add);
 EXPORT_TRACEPOINT_SYMBOL_GPL(br_fdb_external_learn_add);
 EXPORT_TRACEPOINT_SYMBOL_GPL(fdb_delete);
 EXPORT_TRACEPOINT_SYMBOL_GPL(br_fdb_update);
-#endif
 
 #if IS_ENABLED(CONFIG_PAGE_POOL)
 #include <trace/events/page_pool.h>
@@ -56,8 +54,15 @@
 EXPORT_TRACEPOINT_SYMBOL_GPL(neigh_cleanup_and_release);
 
 EXPORT_TRACEPOINT_SYMBOL_GPL(kfree_skb);
+EXPORT_TRACEPOINT_SYMBOL_GPL(consume_skb);
 
 EXPORT_TRACEPOINT_SYMBOL_GPL(napi_poll);
 
 EXPORT_TRACEPOINT_SYMBOL_GPL(tcp_send_reset);
 EXPORT_TRACEPOINT_SYMBOL_GPL(tcp_bad_csum);
+
+EXPORT_TRACEPOINT_SYMBOL_GPL(net_dev_queue);
+EXPORT_TRACEPOINT_SYMBOL_GPL(net_dev_xmit);
+EXPORT_TRACEPOINT_SYMBOL_GPL(netif_receive_skb);
+EXPORT_TRACEPOINT_SYMBOL_GPL(netif_rx);
+
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index e01dd4c..d0e77c4f 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -78,6 +78,7 @@
 #include <linux/capability.h>
 #include <linux/user_namespace.h>
 #include <linux/indirect_call_wrapper.h>
+#include <trace/hooks/net.h>
 
 #include "datagram.h"
 #include "sock_destructor.h"
@@ -772,11 +773,26 @@
 	if (!skb_unref(skb))
 		return;
 
+	trace_android_vh_kfree_skb(skb);
 	trace_kfree_skb(skb, __builtin_return_address(0), reason);
 	__kfree_skb(skb);
 }
 EXPORT_SYMBOL(kfree_skb_reason);
 
+/**
+ *	kfree_skb - free an sk_buff with 'NOT_SPECIFIED' reason
+ *	@skb: buffer to free
+ */
+void kfree_skb(struct sk_buff *skb)
+{
+	/* ANDROID: only still present to preserve the ABI, this went away in
+	 * mainline and LTS releases, to be replaced with an inline version
+	 * instead.
+	 */
+	kfree_skb_reason(skb, SKB_DROP_REASON_NOT_SPECIFIED);
+}
+EXPORT_SYMBOL(kfree_skb);
+
 void kfree_skb_list(struct sk_buff *segs)
 {
 	while (segs) {
@@ -1046,7 +1062,15 @@
 #ifdef CONFIG_NET_SCHED
 	CHECK_SKB_FIELD(tc_index);
 #endif
-
+	/* ANDROID:
+	 * Due to attempts to keep the ABI stable for struct sk_buff, the new
+	 * fields were incorrectly added _AFTER_ the headers_end field, which
+	 * requires that we manually copy the fields here from the old to the
+	 * new one.
+	 * Be sure to add any new field that is added in the
+	 * ANDROID_KABI_REPLACE() macros below here as well.
+	 */
+	new->scm_io_uring = old->scm_io_uring;
 }
 
 /*
diff --git a/net/core/skmsg.c b/net/core/skmsg.c
index 9cd1421..0499303 100644
--- a/net/core/skmsg.c
+++ b/net/core/skmsg.c
@@ -720,7 +720,6 @@
 	psock->eval = __SK_NONE;
 	psock->sk_proto = prot;
 	psock->saved_unhash = prot->unhash;
-	psock->saved_destroy = prot->destroy;
 	psock->saved_close = prot->close;
 	psock->saved_write_space = sk->sk_write_space;
 
@@ -880,16 +879,13 @@
 	ret = sk_psock_map_verd(ret, msg->sk_redir);
 	psock->apply_bytes = msg->apply_bytes;
 	if (ret == __SK_REDIRECT) {
-		if (psock->sk_redir) {
+		if (psock->sk_redir)
 			sock_put(psock->sk_redir);
-			psock->sk_redir = NULL;
-		}
-		if (!msg->sk_redir) {
+		psock->sk_redir = msg->sk_redir;
+		if (!psock->sk_redir) {
 			ret = __SK_DROP;
 			goto out;
 		}
-		psock->redir_ingress = sk_msg_to_ingress(msg);
-		psock->sk_redir = msg->sk_redir;
 		sock_hold(psock->sk_redir);
 	}
 out:
diff --git a/net/core/sock.c b/net/core/sock.c
index ae1e9e2..28dd66d 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -135,6 +135,8 @@
 #include <net/bpf_sk_storage.h>
 
 #include <trace/events/sock.h>
+#include <trace/hooks/sched.h>
+#include <trace/hooks/net.h>
 
 #include <net/tcp.h>
 #include <net/busy_poll.h>
@@ -1303,7 +1305,7 @@
 		break;
 		}
 	case SO_INCOMING_CPU:
-		reuseport_update_incoming_cpu(sk, val);
+		WRITE_ONCE(sk->sk_incoming_cpu, val);
 		break;
 
 	case SO_CNX_ADVICE:
@@ -1847,6 +1849,8 @@
 		if (security_sk_alloc(sk, family, priority))
 			goto out_free;
 
+		trace_android_rvh_sk_alloc(sk);
+
 		if (!try_module_get(prot->owner))
 			goto out_free_sec;
 	}
@@ -1855,6 +1859,7 @@
 
 out_free_sec:
 	security_sk_free(sk);
+	trace_android_rvh_sk_free(sk);
 out_free:
 	if (slab != NULL)
 		kmem_cache_free(slab, sk);
@@ -1874,6 +1879,7 @@
 	cgroup_sk_free(&sk->sk_cgrp_data);
 	mem_cgroup_sk_free(sk);
 	security_sk_free(sk);
+	trace_android_rvh_sk_free(sk);
 	if (slab != NULL)
 		kmem_cache_free(slab, sk);
 	else
@@ -3068,9 +3074,19 @@
 
 	rcu_read_lock();
 	wq = rcu_dereference(sk->sk_wq);
-	if (skwq_has_sleeper(wq))
+
+	if (skwq_has_sleeper(wq)) {
+		int done = 0;
+
+		trace_android_vh_do_wake_up_sync(&wq->wait, &done);
+		if (done)
+			goto out;
+
 		wake_up_interruptible_sync_poll(&wq->wait, EPOLLIN | EPOLLPRI |
 						EPOLLRDNORM | EPOLLRDBAND);
+	}
+
+out:
 	sk_wake_async(sk, SOCK_WAKE_WAITD, POLL_IN);
 	rcu_read_unlock();
 }
diff --git a/net/core/sock_map.c b/net/core/sock_map.c
index caae43e..10a29e3 100644
--- a/net/core/sock_map.c
+++ b/net/core/sock_map.c
@@ -1525,30 +1525,6 @@
 }
 EXPORT_SYMBOL_GPL(sock_map_unhash);
 
-void sock_map_destroy(struct sock *sk)
-{
-	void (*saved_destroy)(struct sock *sk);
-	struct sk_psock *psock;
-
-	rcu_read_lock();
-	psock = sk_psock_get(sk);
-	if (unlikely(!psock)) {
-		rcu_read_unlock();
-		saved_destroy = READ_ONCE(sk->sk_prot)->destroy;
-	} else {
-		saved_destroy = psock->saved_destroy;
-		sock_map_remove_links(sk, psock);
-		rcu_read_unlock();
-		sk_psock_stop(psock);
-		sk_psock_put(sk, psock);
-	}
-	if (WARN_ON_ONCE(saved_destroy == sock_map_destroy))
-		return;
-	if (saved_destroy)
-		saved_destroy(sk);
-}
-EXPORT_SYMBOL_GPL(sock_map_destroy);
-
 void sock_map_close(struct sock *sk, long timeout)
 {
 	void (*saved_close)(struct sock *sk, long timeout);
diff --git a/net/core/sock_reuseport.c b/net/core/sock_reuseport.c
index 5a16528..fb90e1e00 100644
--- a/net/core/sock_reuseport.c
+++ b/net/core/sock_reuseport.c
@@ -37,70 +37,6 @@
 }
 EXPORT_SYMBOL(reuseport_has_conns_set);
 
-static void __reuseport_get_incoming_cpu(struct sock_reuseport *reuse)
-{
-	/* Paired with READ_ONCE() in reuseport_select_sock_by_hash(). */
-	WRITE_ONCE(reuse->incoming_cpu, reuse->incoming_cpu + 1);
-}
-
-static void __reuseport_put_incoming_cpu(struct sock_reuseport *reuse)
-{
-	/* Paired with READ_ONCE() in reuseport_select_sock_by_hash(). */
-	WRITE_ONCE(reuse->incoming_cpu, reuse->incoming_cpu - 1);
-}
-
-static void reuseport_get_incoming_cpu(struct sock *sk, struct sock_reuseport *reuse)
-{
-	if (sk->sk_incoming_cpu >= 0)
-		__reuseport_get_incoming_cpu(reuse);
-}
-
-static void reuseport_put_incoming_cpu(struct sock *sk, struct sock_reuseport *reuse)
-{
-	if (sk->sk_incoming_cpu >= 0)
-		__reuseport_put_incoming_cpu(reuse);
-}
-
-void reuseport_update_incoming_cpu(struct sock *sk, int val)
-{
-	struct sock_reuseport *reuse;
-	int old_sk_incoming_cpu;
-
-	if (unlikely(!rcu_access_pointer(sk->sk_reuseport_cb))) {
-		/* Paired with REAE_ONCE() in sk_incoming_cpu_update()
-		 * and compute_score().
-		 */
-		WRITE_ONCE(sk->sk_incoming_cpu, val);
-		return;
-	}
-
-	spin_lock_bh(&reuseport_lock);
-
-	/* This must be done under reuseport_lock to avoid a race with
-	 * reuseport_grow(), which accesses sk->sk_incoming_cpu without
-	 * lock_sock() when detaching a shutdown()ed sk.
-	 *
-	 * Paired with READ_ONCE() in reuseport_select_sock_by_hash().
-	 */
-	old_sk_incoming_cpu = sk->sk_incoming_cpu;
-	WRITE_ONCE(sk->sk_incoming_cpu, val);
-
-	reuse = rcu_dereference_protected(sk->sk_reuseport_cb,
-					  lockdep_is_held(&reuseport_lock));
-
-	/* reuseport_grow() has detached a closed sk. */
-	if (!reuse)
-		goto out;
-
-	if (old_sk_incoming_cpu < 0 && val >= 0)
-		__reuseport_get_incoming_cpu(reuse);
-	else if (old_sk_incoming_cpu >= 0 && val < 0)
-		__reuseport_put_incoming_cpu(reuse);
-
-out:
-	spin_unlock_bh(&reuseport_lock);
-}
-
 static int reuseport_sock_index(struct sock *sk,
 				const struct sock_reuseport *reuse,
 				bool closed)
@@ -128,7 +64,6 @@
 	/* paired with smp_rmb() in reuseport_(select|migrate)_sock() */
 	smp_wmb();
 	reuse->num_socks++;
-	reuseport_get_incoming_cpu(sk, reuse);
 }
 
 static bool __reuseport_detach_sock(struct sock *sk,
@@ -141,7 +76,6 @@
 
 	reuse->socks[i] = reuse->socks[reuse->num_socks - 1];
 	reuse->num_socks--;
-	reuseport_put_incoming_cpu(sk, reuse);
 
 	return true;
 }
@@ -152,7 +86,6 @@
 	reuse->socks[reuse->max_socks - reuse->num_closed_socks - 1] = sk;
 	/* paired with READ_ONCE() in inet_csk_bind_conflict() */
 	WRITE_ONCE(reuse->num_closed_socks, reuse->num_closed_socks + 1);
-	reuseport_get_incoming_cpu(sk, reuse);
 }
 
 static bool __reuseport_detach_closed_sock(struct sock *sk,
@@ -166,7 +99,6 @@
 	reuse->socks[i] = reuse->socks[reuse->max_socks - reuse->num_closed_socks];
 	/* paired with READ_ONCE() in inet_csk_bind_conflict() */
 	WRITE_ONCE(reuse->num_closed_socks, reuse->num_closed_socks - 1);
-	reuseport_put_incoming_cpu(sk, reuse);
 
 	return true;
 }
@@ -234,7 +166,6 @@
 	reuse->bind_inany = bind_inany;
 	reuse->socks[0] = sk;
 	reuse->num_socks = 1;
-	reuseport_get_incoming_cpu(sk, reuse);
 	rcu_assign_pointer(sk->sk_reuseport_cb, reuse);
 
 out:
@@ -278,7 +209,6 @@
 	more_reuse->reuseport_id = reuse->reuseport_id;
 	more_reuse->bind_inany = reuse->bind_inany;
 	more_reuse->has_conns = reuse->has_conns;
-	more_reuse->incoming_cpu = reuse->incoming_cpu;
 
 	memcpy(more_reuse->socks, reuse->socks,
 	       reuse->num_socks * sizeof(struct sock *));
@@ -528,32 +458,18 @@
 static struct sock *reuseport_select_sock_by_hash(struct sock_reuseport *reuse,
 						  u32 hash, u16 num_socks)
 {
-	struct sock *first_valid_sk = NULL;
 	int i, j;
 
 	i = j = reciprocal_scale(hash, num_socks);
-	do {
-		struct sock *sk = reuse->socks[i];
-
-		if (sk->sk_state != TCP_ESTABLISHED) {
-			/* Paired with WRITE_ONCE() in __reuseport_(get|put)_incoming_cpu(). */
-			if (!READ_ONCE(reuse->incoming_cpu))
-				return sk;
-
-			/* Paired with WRITE_ONCE() in reuseport_update_incoming_cpu(). */
-			if (READ_ONCE(sk->sk_incoming_cpu) == raw_smp_processor_id())
-				return sk;
-
-			if (!first_valid_sk)
-				first_valid_sk = sk;
-		}
-
+	while (reuse->socks[i]->sk_state == TCP_ESTABLISHED) {
 		i++;
 		if (i >= num_socks)
 			i = 0;
-	} while (i != j);
+		if (i == j)
+			return NULL;
+	}
 
-	return first_valid_sk;
+	return reuse->socks[i];
 }
 
 /**
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index e46b115..b2ba212 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -500,6 +500,10 @@
 		goto out;
 
 	snum = ntohs(addr->sin_port);
+	err = -EPERM;
+	if (snum && inet_is_local_unbindable_port(net, snum))
+		goto out;
+
 	err = -EACCES;
 	if (!(flags & BIND_NO_CAP_NET_BIND_SERVICE) &&
 	    snum && inet_port_requires_bind_service(net, snum) &&
@@ -587,7 +591,6 @@
 
 	add_wait_queue(sk_sleep(sk), &wait);
 	sk->sk_write_pending += writebias;
-	sk->sk_wait_pending++;
 
 	/* Basic assumption: if someone sets sk->sk_err, he _must_
 	 * change state of the socket from TCP_SYN_*.
@@ -603,7 +606,6 @@
 	}
 	remove_wait_queue(sk_sleep(sk), &wait);
 	sk->sk_write_pending -= writebias;
-	sk->sk_wait_pending--;
 	return timeo;
 }
 
diff --git a/net/ipv4/ah4.c b/net/ipv4/ah4.c
index 6eea1e9..2bb839a 100644
--- a/net/ipv4/ah4.c
+++ b/net/ipv4/ah4.c
@@ -141,7 +141,7 @@
 	}
 
 	kfree(AH_SKB_CB(skb)->tmp);
-	xfrm_output_resume(skb->sk, skb, err);
+	xfrm_output_resume(skb, err);
 }
 
 static int ah_output(struct xfrm_state *x, struct sk_buff *skb)
diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c
index 386e987..5ae36f6c 100644
--- a/net/ipv4/esp4.c
+++ b/net/ipv4/esp4.c
@@ -277,7 +277,7 @@
 		    x->encap && x->encap->encap_type == TCP_ENCAP_ESPINTCP)
 			esp_output_tail_tcp(x, skb);
 		else
-			xfrm_output_resume(skb->sk, skb, err);
+			xfrm_output_resume(skb, err);
 	}
 }
 
diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
index c770719..21a955a 100644
--- a/net/ipv4/inet_connection_sock.c
+++ b/net/ipv4/inet_connection_sock.c
@@ -963,7 +963,6 @@
 	if (newsk) {
 		struct inet_connection_sock *newicsk = inet_csk(newsk);
 
-		newsk->sk_wait_pending = 0;
 		inet_sk_set_state(newsk, TCP_SYN_RECV);
 		newicsk->icsk_bind_hash = NULL;
 
diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
index 1f22e72..d1ca9aa 100644
--- a/net/ipv4/sysctl_net_ipv4.c
+++ b/net/ipv4/sysctl_net_ipv4.c
@@ -708,6 +708,13 @@
 		.proc_handler	= proc_do_large_bitmap,
 	},
 	{
+		.procname	= "ip_local_unbindable_ports",
+		.data		= &init_net.ipv4.sysctl_local_unbindable_ports,
+		.maxlen		= 65536,
+		.mode		= 0644,
+		.proc_handler	= proc_do_large_bitmap,
+	},
+	{
 		.procname	= "ip_no_pmtu_disc",
 		.data		= &init_net.ipv4.sysctl_ip_no_pmtu_disc,
 		.maxlen		= sizeof(u8),
@@ -1398,11 +1405,17 @@
 
 	net->ipv4.sysctl_local_reserved_ports = kzalloc(65536 / 8, GFP_KERNEL);
 	if (!net->ipv4.sysctl_local_reserved_ports)
-		goto err_ports;
+		goto err_reserved_ports;
+
+	net->ipv4.sysctl_local_unbindable_ports = kzalloc(65536 / 8, GFP_KERNEL);
+	if (!net->ipv4.sysctl_local_unbindable_ports)
+		goto err_unbindable_ports;
 
 	return 0;
 
-err_ports:
+err_unbindable_ports:
+	kfree(net->ipv4.sysctl_local_reserved_ports);
+err_reserved_ports:
 	unregister_net_sysctl_table(net->ipv4.ipv4_hdr);
 err_reg:
 	if (!net_eq(net, &init_net))
@@ -1415,6 +1428,7 @@
 {
 	struct ctl_table *table;
 
+	kfree(net->ipv4.sysctl_local_unbindable_ports);
 	kfree(net->ipv4.sysctl_local_reserved_ports);
 	table = net->ipv4.ipv4_hdr->ctl_table_arg;
 	unregister_net_sysctl_table(net->ipv4.ipv4_hdr);
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index a91cf00..ba6f47b 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -2972,12 +2972,6 @@
 	int old_state = sk->sk_state;
 	u32 seq;
 
-	/* Deny disconnect if other threads are blocked in sk_wait_event()
-	 * or inet_wait_for_connect().
-	 */
-	if (sk->sk_wait_pending)
-		return -EBUSY;
-
 	if (old_state != TCP_CLOSE)
 		tcp_set_state(sk, TCP_CLOSE);
 
diff --git a/net/ipv4/tcp_bpf.c b/net/ipv4/tcp_bpf.c
index e3a9477..1fab096 100644
--- a/net/ipv4/tcp_bpf.c
+++ b/net/ipv4/tcp_bpf.c
@@ -135,9 +135,10 @@
 	return ret;
 }
 
-int tcp_bpf_sendmsg_redir(struct sock *sk, bool ingress,
-			  struct sk_msg *msg, u32 bytes, int flags)
+int tcp_bpf_sendmsg_redir(struct sock *sk, struct sk_msg *msg,
+			  u32 bytes, int flags)
 {
+	bool ingress = sk_msg_to_ingress(msg);
 	struct sk_psock *psock = sk_psock_get(sk);
 	int ret;
 
@@ -286,7 +287,7 @@
 static int tcp_bpf_send_verdict(struct sock *sk, struct sk_psock *psock,
 				struct sk_msg *msg, int *copied, int flags)
 {
-	bool cork = false, enospc = sk_msg_full(msg), redir_ingress;
+	bool cork = false, enospc = sk_msg_full(msg);
 	struct sock *sk_redir;
 	u32 tosend, origsize, sent, delta = 0;
 	u32 eval;
@@ -332,7 +333,6 @@
 		sk_msg_apply_bytes(psock, tosend);
 		break;
 	case __SK_REDIRECT:
-		redir_ingress = psock->redir_ingress;
 		sk_redir = psock->sk_redir;
 		sk_msg_apply_bytes(psock, tosend);
 		if (!psock->apply_bytes) {
@@ -349,8 +349,7 @@
 		release_sock(sk);
 
 		origsize = msg->sg.size;
-		ret = tcp_bpf_sendmsg_redir(sk_redir, redir_ingress,
-					    msg, tosend, flags);
+		ret = tcp_bpf_sendmsg_redir(sk_redir, msg, tosend, flags);
 		sent = origsize - msg->sg.size;
 
 		if (eval == __SK_REDIRECT)
@@ -555,7 +554,6 @@
 				   struct proto *base)
 {
 	prot[TCP_BPF_BASE]			= *base;
-	prot[TCP_BPF_BASE].destroy		= sock_map_destroy;
 	prot[TCP_BPF_BASE].close		= sock_map_close;
 	prot[TCP_BPF_BASE].recvmsg		= tcp_bpf_recvmsg;
 	prot[TCP_BPF_BASE].sock_is_readable	= sk_msg_is_readable;
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 6849094..1aa6ab3 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -80,6 +80,7 @@
 #include <linux/jump_label_ratelimit.h>
 #include <net/busy_poll.h>
 #include <net/mptcp.h>
+#include <trace/hooks/net.h>
 
 int sysctl_tcp_max_orphans __read_mostly = NR_FILE;
 
@@ -4708,6 +4709,7 @@
 
 static void tcp_drop(struct sock *sk, struct sk_buff *skb)
 {
+	trace_android_vh_kfree_skb(skb);
 	sk_drops_add(sk, skb);
 	__kfree_skb(skb);
 }
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index b5cb674..b3c8f86 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -91,8 +91,6 @@
 struct inet_hashinfo tcp_hashinfo;
 EXPORT_SYMBOL(tcp_hashinfo);
 
-static DEFINE_PER_CPU(struct sock *, ipv4_tcp_sk);
-
 static u32 tcp_v4_init_seq(const struct sk_buff *skb)
 {
 	return secure_tcp_seq(ip_hdr(skb)->daddr,
@@ -811,8 +809,7 @@
 	arg.tos = ip_hdr(skb)->tos;
 	arg.uid = sock_net_uid(net, sk && sk_fullsock(sk) ? sk : NULL);
 	local_bh_disable();
-	ctl_sk = this_cpu_read(ipv4_tcp_sk);
-	sock_net_set(ctl_sk, net);
+	ctl_sk = this_cpu_read(*net->ipv4.tcp_sk);
 	if (sk) {
 		ctl_sk->sk_mark = (sk->sk_state == TCP_TIME_WAIT) ?
 				   inet_twsk(sk)->tw_mark : sk->sk_mark;
@@ -831,7 +828,6 @@
 			      transmit_time);
 
 	xfrm_sk_free_policy(ctl_sk);
-	sock_net_set(ctl_sk, &init_net);
 	__TCP_INC_STATS(net, TCP_MIB_OUTSEGS);
 	__TCP_INC_STATS(net, TCP_MIB_OUTRSTS);
 	local_bh_enable();
@@ -915,8 +911,7 @@
 	arg.tos = tos;
 	arg.uid = sock_net_uid(net, sk_fullsock(sk) ? sk : NULL);
 	local_bh_disable();
-	ctl_sk = this_cpu_read(ipv4_tcp_sk);
-	sock_net_set(ctl_sk, net);
+	ctl_sk = this_cpu_read(*net->ipv4.tcp_sk);
 	ctl_sk->sk_mark = (sk->sk_state == TCP_TIME_WAIT) ?
 			   inet_twsk(sk)->tw_mark : sk->sk_mark;
 	ctl_sk->sk_priority = (sk->sk_state == TCP_TIME_WAIT) ?
@@ -3123,14 +3118,41 @@
 
 static void __net_exit tcp_sk_exit(struct net *net)
 {
+	int cpu;
+
 	if (net->ipv4.tcp_congestion_control)
 		bpf_module_put(net->ipv4.tcp_congestion_control,
 			       net->ipv4.tcp_congestion_control->owner);
+
+	for_each_possible_cpu(cpu)
+		inet_ctl_sock_destroy(*per_cpu_ptr(net->ipv4.tcp_sk, cpu));
+	free_percpu(net->ipv4.tcp_sk);
 }
 
 static int __net_init tcp_sk_init(struct net *net)
 {
-	int cnt;
+	int res, cpu, cnt;
+
+	net->ipv4.tcp_sk = alloc_percpu(struct sock *);
+	if (!net->ipv4.tcp_sk)
+		return -ENOMEM;
+
+	for_each_possible_cpu(cpu) {
+		struct sock *sk;
+
+		res = inet_ctl_sock_create(&sk, PF_INET, SOCK_RAW,
+					   IPPROTO_TCP, net);
+		if (res)
+			goto fail;
+		sock_set_flag(sk, SOCK_USE_WRITE_QUEUE);
+
+		/* Please enforce IP_DF and IPID==0 for RST and
+		 * ACK sent in SYN-RECV and TIME-WAIT state.
+		 */
+		inet_sk(sk)->pmtudisc = IP_PMTUDISC_DO;
+
+		*per_cpu_ptr(net->ipv4.tcp_sk, cpu) = sk;
+	}
 
 	net->ipv4.sysctl_tcp_ecn = 2;
 	net->ipv4.sysctl_tcp_ecn_fallback = 1;
@@ -3214,6 +3236,10 @@
 		net->ipv4.tcp_congestion_control = &tcp_reno;
 
 	return 0;
+fail:
+	tcp_sk_exit(net);
+
+	return res;
 }
 
 static void __net_exit tcp_sk_exit_batch(struct list_head *net_exit_list)
@@ -3307,24 +3333,6 @@
 
 void __init tcp_v4_init(void)
 {
-	int cpu, res;
-
-	for_each_possible_cpu(cpu) {
-		struct sock *sk;
-
-		res = inet_ctl_sock_create(&sk, PF_INET, SOCK_RAW,
-					   IPPROTO_TCP, &init_net);
-		if (res)
-			panic("Failed to create the TCP control socket.\n");
-		sock_set_flag(sk, SOCK_USE_WRITE_QUEUE);
-
-		/* Please enforce IP_DF and IPID==0 for RST and
-		 * ACK sent in SYN-RECV and TIME-WAIT state.
-		 */
-		inet_sk(sk)->pmtudisc = IP_PMTUDISC_DO;
-
-		per_cpu(ipv4_tcp_sk, cpu) = sk;
-	}
 	if (register_pernet_subsys(&tcp_sk_ops))
 		panic("Failed to create the TCP control socket.\n");
 
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index d46fb6d..17bc0a1 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -1885,13 +1885,13 @@
 	 * chose to not update tp->max_packets_out to avoid an extra else
 	 * clause with no functional impact.)
 	 */
-	if (!before(tp->snd_una, tp->cwnd_usage_seq) ||
+	if (!before(tp->snd_una, tp->max_packets_seq) ||
 	    is_cwnd_limited ||
 	    (!tp->is_cwnd_limited &&
 	     tp->packets_out > tp->max_packets_out)) {
 		tp->is_cwnd_limited = is_cwnd_limited;
 		tp->max_packets_out = tp->packets_out;
-		tp->cwnd_usage_seq = tp->snd_nxt;
+		tp->max_packets_seq= tp->snd_nxt;
 	}
 
 	if (tcp_is_cwnd_limited(sk)) {
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 0c0b796..ed08624 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -218,6 +218,7 @@
 	.accept_ra_rt_info_max_plen = 0,
 #endif
 #endif
+	.accept_ra_rt_table	= 0,
 	.proxy_ndp		= 0,
 	.accept_source_route	= 0,	/* we do not accept RH0 by default. */
 	.disable_ipv6		= 0,
@@ -277,6 +278,7 @@
 	.accept_ra_rt_info_max_plen = 0,
 #endif
 #endif
+	.accept_ra_rt_table	= 0,
 	.proxy_ndp		= 0,
 	.accept_source_route	= 0,	/* we do not accept RH0 by default. */
 	.disable_ipv6		= 0,
@@ -2393,6 +2395,26 @@
 		goto regen;
 }
 
+u32 addrconf_rt_table(const struct net_device *dev, u32 default_table)
+{
+	struct inet6_dev *idev = in6_dev_get(dev);
+	int sysctl;
+	u32 table;
+
+	if (!idev)
+		return default_table;
+	sysctl = idev->cnf.accept_ra_rt_table;
+	if (sysctl == 0) {
+		table = default_table;
+	} else if (sysctl > 0) {
+		table = (u32) sysctl;
+	} else {
+		table = (unsigned) dev->ifindex + (-sysctl);
+	}
+	in6_dev_put(idev);
+	return table;
+}
+
 /*
  *	Add prefix route.
  */
@@ -2403,7 +2425,7 @@
 		      u32 flags, gfp_t gfp_flags)
 {
 	struct fib6_config cfg = {
-		.fc_table = l3mdev_fib_table(dev) ? : RT6_TABLE_PREFIX,
+		.fc_table = l3mdev_fib_table(dev) ? : addrconf_rt_table(dev, RT6_TABLE_PREFIX),
 		.fc_metric = metric ? : IP6_RT_PRIO_ADDRCONF,
 		.fc_ifindex = dev->ifindex,
 		.fc_expires = expires,
@@ -2438,7 +2460,7 @@
 	struct fib6_node *fn;
 	struct fib6_info *rt = NULL;
 	struct fib6_table *table;
-	u32 tb_id = l3mdev_fib_table(dev) ? : RT6_TABLE_PREFIX;
+	u32 tb_id = l3mdev_fib_table(dev) ? : addrconf_rt_table(dev, RT6_TABLE_PREFIX);
 
 	table = fib6_get_table(dev_net(dev), tb_id);
 	if (!table)
@@ -6822,6 +6844,13 @@
 #endif
 #endif
 	{
+		.procname	= "accept_ra_rt_table",
+		.data		= &ipv6_devconf.accept_ra_rt_table,
+		.maxlen		= sizeof(int),
+		.mode		= 0644,
+		.proc_handler	= proc_dointvec,
+	},
+	{
 		.procname	= "proxy_ndp",
 		.data		= &ipv6_devconf.proxy_ndp,
 		.maxlen		= sizeof(int),
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
index 164b130..7b403b8 100644
--- a/net/ipv6/af_inet6.c
+++ b/net/ipv6/af_inet6.c
@@ -303,6 +303,8 @@
 		return -EINVAL;
 
 	snum = ntohs(addr->sin6_port);
+	if (snum && inet_is_local_unbindable_port(net, snum))
+		return -EPERM;
 	if (!(flags & BIND_NO_CAP_NET_BIND_SERVICE) &&
 	    snum && inet_port_requires_bind_service(net, snum) &&
 	    !ns_capable(net->user_ns, CAP_NET_BIND_SERVICE))
diff --git a/net/ipv6/ah6.c b/net/ipv6/ah6.c
index 828e625..6536d95 100644
--- a/net/ipv6/ah6.c
+++ b/net/ipv6/ah6.c
@@ -316,7 +316,7 @@
 	}
 
 	kfree(AH_SKB_CB(skb)->tmp);
-	xfrm_output_resume(skb->sk, skb, err);
+	xfrm_output_resume(skb, err);
 }
 
 static int ah6_output(struct xfrm_state *x, struct sk_buff *skb)
diff --git a/net/ipv6/esp6.c b/net/ipv6/esp6.c
index 6219d97..3e2b82b2 100644
--- a/net/ipv6/esp6.c
+++ b/net/ipv6/esp6.c
@@ -314,7 +314,7 @@
 		    x->encap && x->encap->encap_type == TCP_ENCAP_ESPINTCP)
 			esp_output_tail_tcp(x, skb);
 		else
-			xfrm_output_resume(skb->sk, skb, err);
+			xfrm_output_resume(skb, err);
 	}
 }
 
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 7b26882..7669355 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -4276,7 +4276,7 @@
 					   const struct in6_addr *gwaddr,
 					   struct net_device *dev)
 {
-	u32 tb_id = l3mdev_fib_table(dev) ? : RT6_TABLE_INFO;
+	u32 tb_id = l3mdev_fib_table(dev) ? : addrconf_rt_table(dev, RT6_TABLE_INFO);
 	int ifindex = dev->ifindex;
 	struct fib6_node *fn;
 	struct fib6_info *rt = NULL;
@@ -4330,7 +4330,7 @@
 		.fc_nlinfo.nl_net = net,
 	};
 
-	cfg.fc_table = l3mdev_fib_table(dev) ? : RT6_TABLE_INFO;
+	cfg.fc_table = l3mdev_fib_table(dev) ? : addrconf_rt_table(dev, RT6_TABLE_INFO);
 	cfg.fc_dst = *prefix;
 	cfg.fc_gateway = *gwaddr;
 
@@ -4348,7 +4348,7 @@
 				     const struct in6_addr *addr,
 				     struct net_device *dev)
 {
-	u32 tb_id = l3mdev_fib_table(dev) ? : RT6_TABLE_DFLT;
+	u32 tb_id = l3mdev_fib_table(dev) ? : addrconf_rt_table(dev, RT6_TABLE_DFLT);
 	struct fib6_info *rt;
 	struct fib6_table *table;
 
@@ -4383,7 +4383,7 @@
 				     u32 defrtr_usr_metric)
 {
 	struct fib6_config cfg = {
-		.fc_table	= l3mdev_fib_table(dev) ? : RT6_TABLE_DFLT,
+		.fc_table	= l3mdev_fib_table(dev) ? : addrconf_rt_table(dev, RT6_TABLE_DFLT),
 		.fc_metric	= defrtr_usr_metric,
 		.fc_ifindex	= dev->ifindex,
 		.fc_flags	= RTF_GATEWAY | RTF_ADDRCONF | RTF_DEFAULT |
@@ -4408,47 +4408,24 @@
 	return rt6_get_dflt_router(net, gwaddr, dev);
 }
 
-static void __rt6_purge_dflt_routers(struct net *net,
-				     struct fib6_table *table)
+static int rt6_addrconf_purge(struct fib6_info *rt, void *arg)
 {
-	struct fib6_info *rt;
+	struct net_device *dev = fib6_info_nh_dev(rt);
+	struct inet6_dev *idev = dev ? __in6_dev_get(dev) : NULL;
 
-restart:
-	rcu_read_lock();
-	for_each_fib6_node_rt_rcu(&table->tb6_root) {
-		struct net_device *dev = fib6_info_nh_dev(rt);
-		struct inet6_dev *idev = dev ? __in6_dev_get(dev) : NULL;
-
-		if (rt->fib6_flags & (RTF_DEFAULT | RTF_ADDRCONF) &&
-		    (!idev || idev->cnf.accept_ra != 2) &&
-		    fib6_info_hold_safe(rt)) {
-			rcu_read_unlock();
-			ip6_del_rt(net, rt, false);
-			goto restart;
-		}
+	if (rt->fib6_flags & (RTF_DEFAULT | RTF_ADDRCONF) &&
+	    (!idev || idev->cnf.accept_ra != 2)) {
+		/* Delete this route. See fib6_clean_tree() */
+		return -1;
 	}
-	rcu_read_unlock();
 
-	table->flags &= ~RT6_TABLE_HAS_DFLT_ROUTER;
+	/* Continue walking */
+	return 0;
 }
 
 void rt6_purge_dflt_routers(struct net *net)
 {
-	struct fib6_table *table;
-	struct hlist_head *head;
-	unsigned int h;
-
-	rcu_read_lock();
-
-	for (h = 0; h < FIB6_TABLE_HASHSZ; h++) {
-		head = &net->ipv6.fib_table_hash[h];
-		hlist_for_each_entry_rcu(table, head, tb6_hlist) {
-			if (table->flags & RT6_TABLE_HAS_DFLT_ROUTER)
-				__rt6_purge_dflt_routers(net, table);
-		}
-	}
-
-	rcu_read_unlock();
+	fib6_clean_all(net, rt6_addrconf_purge, NULL);
 }
 
 static void rtmsg_to_fib6_config(struct net *net,
diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
index 3bc02ab..5845c58 100644
--- a/net/ipv6/sit.c
+++ b/net/ipv6/sit.c
@@ -696,7 +696,7 @@
 		skb->dev = tunnel->dev;
 
 		if (packet_is_spoofed(skb, iph, tunnel)) {
-			DEV_STATS_INC(tunnel->dev, rx_errors);
+			tunnel->dev->stats.rx_errors++;
 			goto out;
 		}
 
@@ -716,8 +716,8 @@
 				net_info_ratelimited("non-ECT from %pI4 with TOS=%#x\n",
 						     &iph->saddr, iph->tos);
 			if (err > 1) {
-				DEV_STATS_INC(tunnel->dev, rx_frame_errors);
-				DEV_STATS_INC(tunnel->dev, rx_errors);
+				++tunnel->dev->stats.rx_frame_errors;
+				++tunnel->dev->stats.rx_errors;
 				goto out;
 			}
 		}
@@ -948,7 +948,7 @@
 	if (!rt) {
 		rt = ip_route_output_flow(tunnel->net, &fl4, NULL);
 		if (IS_ERR(rt)) {
-			DEV_STATS_INC(dev, tx_carrier_errors);
+			dev->stats.tx_carrier_errors++;
 			goto tx_error_icmp;
 		}
 		dst_cache_set_ip4(&tunnel->dst_cache, &rt->dst, fl4.saddr);
@@ -956,14 +956,14 @@
 
 	if (rt->rt_type != RTN_UNICAST) {
 		ip_rt_put(rt);
-		DEV_STATS_INC(dev, tx_carrier_errors);
+		dev->stats.tx_carrier_errors++;
 		goto tx_error_icmp;
 	}
 	tdev = rt->dst.dev;
 
 	if (tdev == dev) {
 		ip_rt_put(rt);
-		DEV_STATS_INC(dev, collisions);
+		dev->stats.collisions++;
 		goto tx_error;
 	}
 
@@ -976,7 +976,7 @@
 		mtu = dst_mtu(&rt->dst) - t_hlen;
 
 		if (mtu < IPV4_MIN_MTU) {
-			DEV_STATS_INC(dev, collisions);
+			dev->stats.collisions++;
 			ip_rt_put(rt);
 			goto tx_error;
 		}
@@ -1015,7 +1015,7 @@
 		struct sk_buff *new_skb = skb_realloc_headroom(skb, max_headroom);
 		if (!new_skb) {
 			ip_rt_put(rt);
-			DEV_STATS_INC(dev, tx_dropped);
+			dev->stats.tx_dropped++;
 			kfree_skb(skb);
 			return NETDEV_TX_OK;
 		}
@@ -1045,7 +1045,7 @@
 	dst_link_failure(skb);
 tx_error:
 	kfree_skb(skb);
-	DEV_STATS_INC(dev, tx_errors);
+	dev->stats.tx_errors++;
 	return NETDEV_TX_OK;
 }
 
@@ -1064,7 +1064,7 @@
 	return NETDEV_TX_OK;
 tx_error:
 	kfree_skb(skb);
-	DEV_STATS_INC(dev, tx_errors);
+	dev->stats.tx_errors++;
 	return NETDEV_TX_OK;
 }
 
@@ -1093,7 +1093,7 @@
 	return NETDEV_TX_OK;
 
 tx_err:
-	DEV_STATS_INC(dev, tx_errors);
+	dev->stats.tx_errors++;
 	kfree_skb(skb);
 	return NETDEV_TX_OK;
 
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 4fa216a1..7c6e874 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -402,8 +402,8 @@
 }
 
 static int ieee80211_add_key(struct wiphy *wiphy, struct net_device *dev,
-			     u8 key_idx, bool pairwise, const u8 *mac_addr,
-			     struct key_params *params)
+			     int link_id, u8 key_idx, bool pairwise,
+			     const u8 *mac_addr, struct key_params *params)
 {
 	struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
 	struct ieee80211_local *local = sdata->local;
@@ -519,7 +519,8 @@
 }
 
 static int ieee80211_del_key(struct wiphy *wiphy, struct net_device *dev,
-			     u8 key_idx, bool pairwise, const u8 *mac_addr)
+			     int link_id, u8 key_idx, bool pairwise,
+			     const u8 *mac_addr)
 {
 	struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
 	struct ieee80211_local *local = sdata->local;
@@ -560,8 +561,8 @@
 }
 
 static int ieee80211_get_key(struct wiphy *wiphy, struct net_device *dev,
-			     u8 key_idx, bool pairwise, const u8 *mac_addr,
-			     void *cookie,
+			     int link_id, u8 key_idx, bool pairwise,
+			     const u8 *mac_addr, void *cookie,
 			     void (*callback)(void *cookie,
 					      struct key_params *params))
 {
@@ -680,7 +681,7 @@
 
 static int ieee80211_config_default_key(struct wiphy *wiphy,
 					struct net_device *dev,
-					u8 key_idx, bool uni,
+					int link_id, u8 key_idx, bool uni,
 					bool multi)
 {
 	struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
@@ -692,7 +693,7 @@
 
 static int ieee80211_config_default_mgmt_key(struct wiphy *wiphy,
 					     struct net_device *dev,
-					     u8 key_idx)
+					     int link_id, u8 key_idx)
 {
 	struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
 
@@ -703,7 +704,7 @@
 
 static int ieee80211_config_default_beacon_key(struct wiphy *wiphy,
 					       struct net_device *dev,
-					       u8 key_idx)
+					       int link_id, u8 key_idx)
 {
 	struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
 
@@ -1103,7 +1104,7 @@
 			      IEEE80211_HE_OPERATION_RTS_THRESHOLD_MASK);
 		changed |= BSS_CHANGED_HE_OBSS_PD;
 
-		if (params->he_bss_color.enabled)
+		if (params->beacon.he_bss_color.enabled)
 			changed |= BSS_CHANGED_HE_BSS_COLOR;
 	}
 
@@ -1152,7 +1153,7 @@
 	sdata->vif.bss_conf.allow_p2p_go_ps = sdata->vif.p2p;
 	sdata->vif.bss_conf.twt_responder = params->twt_responder;
 	sdata->vif.bss_conf.he_obss_pd = params->he_obss_pd;
-	sdata->vif.bss_conf.he_bss_color = params->he_bss_color;
+	sdata->vif.bss_conf.he_bss_color = params->beacon.he_bss_color;
 	sdata->vif.bss_conf.s1g = params->chandef.chan->band ==
 				  NL80211_BAND_S1GHZ;
 
@@ -1260,7 +1261,8 @@
 	return 0;
 }
 
-static int ieee80211_stop_ap(struct wiphy *wiphy, struct net_device *dev)
+static int ieee80211_stop_ap(struct wiphy *wiphy, struct net_device *dev,
+			     unsigned int link_id)
 {
 	struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
 	struct ieee80211_sub_if_data *vlan;
@@ -1646,43 +1648,35 @@
 	if (params->listen_interval >= 0)
 		sta->listen_interval = params->listen_interval;
 
-	if (params->sta_modify_mask & STATION_PARAM_APPLY_STA_TXPOWER) {
-		sta->sta.txpwr.type = params->txpwr.type;
-		if (params->txpwr.type == NL80211_TX_POWER_LIMITED)
-			sta->sta.txpwr.power = params->txpwr.power;
-		ret = drv_sta_set_txpwr(local, sdata, sta);
-		if (ret)
-			return ret;
-	}
-
-	if (params->supported_rates && params->supported_rates_len) {
+	if (params->link_sta_params.supported_rates &&
+	    params->link_sta_params.supported_rates_len) {
 		ieee80211_parse_bitrates(&sdata->vif.bss_conf.chandef,
-					 sband, params->supported_rates,
-					 params->supported_rates_len,
+					 sband, params->link_sta_params.supported_rates,
+					 params->link_sta_params.supported_rates_len,
 					 &sta->sta.supp_rates[sband->band]);
 	}
 
-	if (params->ht_capa)
+	if (params->link_sta_params.ht_capa)
 		ieee80211_ht_cap_ie_to_sta_ht_cap(sdata, sband,
-						  params->ht_capa, sta);
+						  params->link_sta_params.ht_capa, sta);
 
 	/* VHT can override some HT caps such as the A-MSDU max length */
-	if (params->vht_capa)
+	if (params->link_sta_params.vht_capa)
 		ieee80211_vht_cap_ie_to_sta_vht_cap(sdata, sband,
-						    params->vht_capa, sta);
+						    params->link_sta_params.vht_capa, sta);
 
-	if (params->he_capa)
+	if (params->link_sta_params.he_capa)
 		ieee80211_he_cap_ie_to_sta_he_cap(sdata, sband,
-						  (void *)params->he_capa,
-						  params->he_capa_len,
-						  (void *)params->he_6ghz_capa,
+						  (void *)params->link_sta_params.he_capa,
+						  params->link_sta_params.he_capa_len,
+						  (void *)params->link_sta_params.he_6ghz_capa,
 						  sta);
 
-	if (params->opmode_notif_used) {
+	if (params->link_sta_params.opmode_notif_used) {
 		/* returned value is only needed for rc update, but the
 		 * rc isn't initialized here yet, so ignore it
 		 */
-		__ieee80211_vht_handle_opmode(sdata, sta, params->opmode_notif,
+		__ieee80211_vht_handle_opmode(sdata, sta, params->link_sta_params.opmode_notif,
 					      sband->band);
 	}
 
@@ -2960,6 +2954,7 @@
 
 static int ieee80211_set_bitrate_mask(struct wiphy *wiphy,
 				      struct net_device *dev,
+				      unsigned int link_id,
 				      const u8 *addr,
 				      const struct cfg80211_bitrate_mask *mask)
 {
@@ -3249,7 +3244,7 @@
 	if (err)
 		return err;
 
-	cfg80211_ch_switch_notify(sdata->dev, &sdata->csa_chandef);
+	cfg80211_ch_switch_notify(sdata->dev, &sdata->csa_chandef, 0, 0);
 
 	return 0;
 }
@@ -3515,8 +3510,8 @@
 		ieee80211_stop_vif_queues(local, sdata,
 					  IEEE80211_QUEUE_STOP_REASON_CSA);
 
-	cfg80211_ch_switch_started_notify(sdata->dev, &sdata->csa_chandef,
-					  params->count, params->block_tx);
+	cfg80211_ch_switch_started_notify(sdata->dev, &sdata->csa_chandef, 0,
+					  params->count, params->block_tx, 0);
 
 	if (changed) {
 		ieee80211_bss_info_change_notify(sdata, changed);
@@ -3752,6 +3747,7 @@
 
 static int ieee80211_cfg_get_channel(struct wiphy *wiphy,
 				     struct wireless_dev *wdev,
+				     unsigned int link_id,
 				     struct cfg80211_chan_def *chandef)
 {
 	struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev);
@@ -3812,6 +3808,7 @@
 
 static int ieee80211_set_ap_chanwidth(struct wiphy *wiphy,
 				      struct net_device *dev,
+				      unsigned int link_id,
 				      struct cfg80211_chan_def *chandef)
 {
 	struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
@@ -4342,6 +4339,18 @@
 	return err;
 }
 
+static int
+ieee80211_set_radar_background(struct wiphy *wiphy,
+			       struct cfg80211_chan_def *chandef)
+{
+	struct ieee80211_local *local = wiphy_priv(wiphy);
+
+	if (!local->ops->set_radar_background)
+		return -EOPNOTSUPP;
+
+	return local->ops->set_radar_background(&local->hw, chandef);
+}
+
 const struct cfg80211_ops mac80211_config_ops = {
 	.add_virtual_intf = ieee80211_add_iface,
 	.del_virtual_intf = ieee80211_del_iface,
@@ -4446,4 +4455,5 @@
 	.reset_tid_config = ieee80211_reset_tid_config,
 	.set_sar_specs = ieee80211_set_sar_specs,
 	.color_change = ieee80211_color_change,
+	.set_radar_background = ieee80211_set_radar_background,
 };
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 21549a4..f0a67d1 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -2002,7 +2002,7 @@
 int ieee80211_tx_control_port(struct wiphy *wiphy, struct net_device *dev,
 			      const u8 *buf, size_t len,
 			      const u8 *dest, __be16 proto, bool unencrypted,
-			      u64 *cookie);
+			      int link_id, u64 *cookie);
 int ieee80211_probe_mesh_link(struct wiphy *wiphy, struct net_device *dev,
 			      const u8 *buf, size_t len);
 void ieee80211_resort_txq(struct ieee80211_hw *hw,
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index cc6d38a..6ac1f0c 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1240,7 +1240,7 @@
 		return;
 	}
 
-	cfg80211_ch_switch_notify(sdata->dev, &sdata->reserved_chandef);
+	cfg80211_ch_switch_notify(sdata->dev, &sdata->reserved_chandef, 0, 0);
 }
 
 void ieee80211_chswitch_done(struct ieee80211_vif *vif, bool success)
@@ -1441,8 +1441,8 @@
 					  IEEE80211_QUEUE_STOP_REASON_CSA);
 	mutex_unlock(&local->mtx);
 
-	cfg80211_ch_switch_started_notify(sdata->dev, &csa_ie.chandef,
-					  csa_ie.count, csa_ie.mode);
+	cfg80211_ch_switch_started_notify(sdata->dev, &csa_ie.chandef, 0,
+					  csa_ie.count, csa_ie.mode, 0);
 
 	if (local->ops->channel_switch) {
 		/* use driver's channel switch callback */
@@ -1502,6 +1502,7 @@
 		fallthrough;
 	case NL80211_BAND_2GHZ:
 	case NL80211_BAND_60GHZ:
+	case NL80211_BAND_LC:
 		chan_increment = 1;
 		break;
 	case NL80211_BAND_5GHZ:
@@ -2875,9 +2876,13 @@
 		mutex_lock(&sdata->local->mtx);
 		ieee80211_vif_release_channel(sdata);
 		mutex_unlock(&sdata->local->mtx);
+		if (abandon) {
+			struct cfg80211_assoc_failure data = {
+				.bss[0] = assoc_data->bss,
+			};
 
-		if (abandon)
-			cfg80211_abandon_assoc(sdata->dev, assoc_data->bss);
+			cfg80211_assoc_failure(sdata->dev, &data);
+		}
 	}
 
 	kfree(assoc_data);
@@ -3687,7 +3692,7 @@
 	struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data;
 	u16 capab_info, status_code, aid;
 	struct ieee802_11_elems *elems;
-	int ac, uapsd_queues = -1;
+	int ac;
 	u8 *pos;
 	bool reassoc;
 	struct cfg80211_bss *cbss;
@@ -3696,6 +3701,9 @@
 		.u.mlme.data = ASSOC_EVENT,
 	};
 	struct ieee80211_prep_tx_info info = {};
+	struct cfg80211_rx_assoc_resp resp = {
+		.uapsd_queues = -1,
+	};
 
 	sdata_assert_lock(sdata);
 
@@ -3774,8 +3782,12 @@
 	} else {
 		if (!ieee80211_assoc_success(sdata, cbss, mgmt, len, elems)) {
 			/* oops -- internal error -- send timeout for now */
+			struct cfg80211_assoc_failure data = {
+				.timeout = true,
+				.bss[0] = cbss,
+			};
 			ieee80211_destroy_assoc_data(sdata, false, false);
-			cfg80211_assoc_timeout(sdata->dev, cbss);
+			cfg80211_assoc_failure(sdata->dev, &data);
 			goto notify_driver;
 		}
 		event.u.mlme.status = MLME_SUCCESS;
@@ -3790,16 +3802,20 @@
 		ieee80211_destroy_assoc_data(sdata, true, false);
 
 		/* get uapsd queues configuration */
-		uapsd_queues = 0;
+		resp.uapsd_queues = 0;
 		for (ac = 0; ac < IEEE80211_NUM_ACS; ac++)
 			if (sdata->tx_conf[ac].uapsd)
-				uapsd_queues |= ieee80211_ac_to_qos_mask[ac];
+				resp.uapsd_queues |= ieee80211_ac_to_qos_mask[ac];
 
 		info.success = 1;
 	}
 
-	cfg80211_rx_assoc_resp(sdata->dev, cbss, (u8 *)mgmt, len, uapsd_queues,
-			       ifmgd->assoc_req_ies, ifmgd->assoc_req_ies_len);
+	resp.links[0].bss = cbss;
+	resp.buf = (u8 *)mgmt;
+	resp.len = len;
+	resp.req_ies = ifmgd->assoc_req_ies;
+	resp.req_ies_len = ifmgd->assoc_req_ies_len;
+	cfg80211_rx_assoc_resp(sdata->dev, &resp);
 notify_driver:
 	drv_mgd_complete_tx(sdata->local, sdata, &info);
 	kfree(elems);
@@ -4632,9 +4648,13 @@
 				.u.mlme.data = ASSOC_EVENT,
 				.u.mlme.status = MLME_TIMEOUT,
 			};
+			struct cfg80211_assoc_failure data = {
+				.bss[0] = bss,
+				.timeout = true,
+			};
 
 			ieee80211_destroy_assoc_data(sdata, false, false);
-			cfg80211_assoc_timeout(sdata->dev, bss);
+			cfg80211_assoc_failure(sdata->dev, &data);
 			drv_event_callback(sdata->local, sdata, &event);
 		}
 	} else if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started)
@@ -5952,20 +5972,14 @@
 	u8 bssid[ETH_ALEN];
 	u8 frame_buf[IEEE80211_DEAUTH_FRAME_LEN];
 
-	/*
-	 * cfg80211 should catch this ... but it's racy since
-	 * we can receive a disassoc frame, process it, hand it
-	 * to cfg80211 while that's in a locked section already
-	 * trying to tell us that the user wants to disconnect.
-	 */
-	if (ifmgd->associated != req->bss)
-		return -ENOLINK;
-
+	if (!ifmgd->associated ||
+	    memcmp(ifmgd->associated->bssid, req->ap_addr, ETH_ALEN))
+		return -ENOTCONN;
 	sdata_info(sdata,
 		   "disassociating from %pM by local choice (Reason: %u=%s)\n",
-		   req->bss->bssid, req->reason_code, ieee80211_get_reason_code_string(req->reason_code));
+		   req->ap_addr, req->reason_code, ieee80211_get_reason_code_string(req->reason_code));
 
-	memcpy(bssid, req->bss->bssid, ETH_ALEN);
+	memcpy(bssid, req->ap_addr, ETH_ALEN);
 	ieee80211_set_disassoc(sdata, IEEE80211_STYPE_DISASSOC,
 			       req->reason_code, !req->local_state_change,
 			       frame_buf);
@@ -5995,8 +6009,12 @@
 	sdata_lock(sdata);
 	if (ifmgd->assoc_data) {
 		struct cfg80211_bss *bss = ifmgd->assoc_data->bss;
+		struct cfg80211_assoc_failure data = {
+			.bss[0] = bss,
+			.timeout = true,
+		};
 		ieee80211_destroy_assoc_data(sdata, false, false);
-		cfg80211_assoc_timeout(sdata->dev, bss);
+		cfg80211_assoc_failure(sdata->dev, &data);
 	}
 	if (ifmgd->auth_data)
 		ieee80211_destroy_auth_data(sdata, false);
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 175ead6..c110060 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -2584,7 +2584,7 @@
 		struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb);
 		bool noencrypt = !(status->flag & RX_FLAG_DECRYPTED);
 
-		cfg80211_rx_control_port(dev, skb, noencrypt);
+		cfg80211_rx_control_port(dev, skb, noencrypt, -1);
 		dev_kfree_skb(skb);
 	} else {
 		struct ethhdr *ehdr = (void *)skb_mac_header(skb);
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
index e10bcfa2..209834a 100644
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -444,6 +444,7 @@
 
 		switch (i) {
 		case NL80211_BAND_2GHZ:
+		case NL80211_BAND_LC:
 			/*
 			 * We use both here, even if we cannot really know for
 			 * sure the station will support both, but the only use
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 8f8dc26..87f7aad 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -146,7 +146,8 @@
 			rate = DIV_ROUND_UP(r->bitrate, 1 << shift);
 
 		switch (sband->band) {
-		case NL80211_BAND_2GHZ: {
+		case NL80211_BAND_2GHZ:
+		case NL80211_BAND_LC: {
 			u32 flag;
 			if (tx->sdata->flags & IEEE80211_SDATA_OPERATING_GMODE)
 				flag = IEEE80211_RATE_MANDATORY_G;
@@ -5671,7 +5672,7 @@
 int ieee80211_tx_control_port(struct wiphy *wiphy, struct net_device *dev,
 			      const u8 *buf, size_t len,
 			      const u8 *dest, __be16 proto, bool unencrypted,
-			      u64 *cookie)
+			      int link_id, u64 *cookie)
 {
 	struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
 	struct ieee80211_local *local = sdata->local;
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 82b1583..6941f5d 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -2798,12 +2798,6 @@
 	struct mptcp_subflow_context *subflow;
 	struct mptcp_sock *msk = mptcp_sk(sk);
 
-	/* Deny disconnect if other threads are blocked in sk_wait_event()
-	 * or inet_wait_for_connect().
-	 */
-	if (sk->sk_wait_pending)
-		return -EBUSY;
-
 	mptcp_do_flush_join_list(msk);
 
 	mptcp_for_each_subflow(msk, subflow) {
@@ -2842,7 +2836,6 @@
 		inet_sk(nsk)->pinet6 = mptcp_inet6_sk(nsk);
 #endif
 
-	nsk->sk_wait_pending = 0;
 	__mptcp_init_sock(nsk);
 
 	msk = mptcp_sk(nsk);
diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
index 4f645d5..707bb64 100644
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
@@ -133,6 +133,7 @@
 
 config NF_CONNTRACK_PROCFS
 	bool "Supply CT list in procfs (OBSOLETE)"
+	default y
 	depends on PROC_FS
 	help
 	This option enables for the list of known conntrack entries
@@ -1510,6 +1511,29 @@
 	  If you want to compile it as a module, say M here and read
 	  <file:Documentation/kbuild/modules.rst>.  If unsure, say `N'.
 
+config NETFILTER_XT_MATCH_QUOTA2
+	tristate '"quota2" match support'
+	depends on NETFILTER_ADVANCED
+	help
+	  This option adds a `quota2' match, which allows to match on a
+	  byte counter correctly and not per CPU.
+	  It allows naming the quotas.
+	  This is based on http://xtables-addons.git.sourceforge.net
+
+	  If you want to compile it as a module, say M here and read
+	  <file:Documentation/kbuild/modules.txt>.  If unsure, say `N'.
+
+config NETFILTER_XT_MATCH_QUOTA2_LOG
+	bool '"quota2" Netfilter LOG support'
+	depends on NETFILTER_XT_MATCH_QUOTA2
+	default n
+	help
+	  This option allows `quota2' to log ONCE when a quota limit
+	  is passed. It logs via NETLINK using the NETLINK_NFLOG family.
+	  It logs similarly to how ipt_ULOG would without data.
+
+	  If unsure, say `N'.
+
 config NETFILTER_XT_MATCH_RATEEST
 	tristate '"rateest" match support'
 	depends on NETFILTER_ADVANCED
diff --git a/net/netfilter/Makefile b/net/netfilter/Makefile
index aab20e5..3f2d184 100644
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
@@ -195,6 +195,7 @@
 obj-$(CONFIG_NETFILTER_XT_MATCH_PKTTYPE) += xt_pkttype.o
 obj-$(CONFIG_NETFILTER_XT_MATCH_POLICY) += xt_policy.o
 obj-$(CONFIG_NETFILTER_XT_MATCH_QUOTA) += xt_quota.o
+obj-$(CONFIG_NETFILTER_XT_MATCH_QUOTA2) += xt_quota2.o
 obj-$(CONFIG_NETFILTER_XT_MATCH_RATEEST) += xt_rateest.o
 obj-$(CONFIG_NETFILTER_XT_MATCH_REALM) += xt_realm.o
 obj-$(CONFIG_NETFILTER_XT_MATCH_RECENT) += xt_recent.o
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
index 1062276..978f5c4 100644
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
@@ -32,6 +32,7 @@
 #include <linux/mm.h>
 #include <linux/nsproxy.h>
 #include <linux/rculist_nulls.h>
+#include <trace/hooks/net.h>
 
 #include <net/netfilter/nf_conntrack.h>
 #include <net/netfilter/nf_conntrack_l4proto.h>
@@ -1627,6 +1628,8 @@
 
 	nf_ct_zone_add(ct, zone);
 
+	trace_android_rvh_nf_conn_alloc(ct);
+
 	/* Because we use RCU lookups, we set ct_general.use to zero before
 	 * this is inserted in any list.
 	 */
@@ -1662,6 +1665,7 @@
 	cnet = nf_ct_pernet(net);
 
 	smp_mb__before_atomic();
+	trace_android_rvh_nf_conn_free(ct);
 	atomic_dec(&cnet->count);
 }
 EXPORT_SYMBOL_GPL(nf_conntrack_free);
diff --git a/net/netfilter/xt_IDLETIMER.c b/net/netfilter/xt_IDLETIMER.c
index 2f7cf5e..90579d0 100644
--- a/net/netfilter/xt_IDLETIMER.c
+++ b/net/netfilter/xt_IDLETIMER.c
@@ -28,6 +28,11 @@
 #include <linux/kobject.h>
 #include <linux/workqueue.h>
 #include <linux/sysfs.h>
+#include <linux/suspend.h>
+#include <net/sock.h>
+#include <net/inet_sock.h>
+
+#define NLMSG_MAX_SIZE 64
 
 struct idletimer_tg {
 	struct list_head entry;
@@ -38,15 +43,112 @@
 	struct kobject *kobj;
 	struct device_attribute attr;
 
+	struct timespec64 delayed_timer_trigger;
+	struct timespec64 last_modified_timer;
+	struct timespec64 last_suspend_time;
+	struct notifier_block pm_nb;
+
+	int timeout;
 	unsigned int refcnt;
 	u8 timer_type;
+
+	bool work_pending;
+	bool send_nl_msg;
+	bool active;
+	uid_t uid;
+	bool suspend_time_valid;
 };
 
 static LIST_HEAD(idletimer_tg_list);
 static DEFINE_MUTEX(list_mutex);
+static DEFINE_SPINLOCK(timestamp_lock);
 
 static struct kobject *idletimer_tg_kobj;
 
+static bool check_for_delayed_trigger(struct idletimer_tg *timer,
+				      struct timespec64 *ts)
+{
+	bool state;
+	struct timespec64 temp;
+	spin_lock_bh(&timestamp_lock);
+	timer->work_pending = false;
+	if ((ts->tv_sec - timer->last_modified_timer.tv_sec) > timer->timeout ||
+	    timer->delayed_timer_trigger.tv_sec != 0) {
+		state = false;
+		temp.tv_sec = timer->timeout;
+		temp.tv_nsec = 0;
+		if (timer->delayed_timer_trigger.tv_sec != 0) {
+			temp = timespec64_add(timer->delayed_timer_trigger,
+					      temp);
+			ts->tv_sec = temp.tv_sec;
+			ts->tv_nsec = temp.tv_nsec;
+			timer->delayed_timer_trigger.tv_sec = 0;
+			timer->work_pending = true;
+			schedule_work(&timer->work);
+		} else {
+			temp = timespec64_add(timer->last_modified_timer, temp);
+			ts->tv_sec = temp.tv_sec;
+			ts->tv_nsec = temp.tv_nsec;
+		}
+	} else {
+		state = timer->active;
+	}
+	spin_unlock_bh(&timestamp_lock);
+	return state;
+}
+
+static void notify_netlink_uevent(const char *iface, struct idletimer_tg *timer)
+{
+	char iface_msg[NLMSG_MAX_SIZE];
+	char state_msg[NLMSG_MAX_SIZE];
+	char timestamp_msg[NLMSG_MAX_SIZE];
+	char uid_msg[NLMSG_MAX_SIZE];
+	char *envp[] = { iface_msg, state_msg, timestamp_msg, uid_msg, NULL };
+	int res;
+	struct timespec64 ts;
+	u64 time_ns;
+	bool state;
+
+	res = snprintf(iface_msg, NLMSG_MAX_SIZE, "INTERFACE=%s",
+		       iface);
+	if (NLMSG_MAX_SIZE <= res) {
+		pr_err("message too long (%d)\n", res);
+		return;
+	}
+
+	ts = ktime_to_timespec64(ktime_get_boottime());
+	state = check_for_delayed_trigger(timer, &ts);
+	res = snprintf(state_msg, NLMSG_MAX_SIZE, "STATE=%s",
+		       state ? "active" : "inactive");
+
+	if (NLMSG_MAX_SIZE <= res) {
+		pr_err("message too long (%d)\n", res);
+		return;
+	}
+
+	if (state) {
+		res = snprintf(uid_msg, NLMSG_MAX_SIZE, "UID=%u", timer->uid);
+		if (NLMSG_MAX_SIZE <= res)
+			pr_err("message too long (%d)\n", res);
+	} else {
+		res = snprintf(uid_msg, NLMSG_MAX_SIZE, "UID=");
+		if (NLMSG_MAX_SIZE <= res)
+			pr_err("message too long (%d)\n", res);
+	}
+
+	time_ns = timespec64_to_ns(&ts);
+	res = snprintf(timestamp_msg, NLMSG_MAX_SIZE, "TIME_NS=%llu", time_ns);
+	if (NLMSG_MAX_SIZE <= res) {
+		timestamp_msg[0] = '\0';
+		pr_err("message too long (%d)\n", res);
+	}
+
+	pr_debug("putting nlmsg: <%s> <%s> <%s> <%s>\n", iface_msg, state_msg,
+		 timestamp_msg, uid_msg);
+	kobject_uevent_env(idletimer_tg_kobj, KOBJ_CHANGE, envp);
+	return;
+}
+
 static
 struct idletimer_tg *__idletimer_tg_find_by_label(const char *label)
 {
@@ -67,6 +169,7 @@
 	unsigned long expires = 0;
 	struct timespec64 ktimespec = {};
 	long time_diff = 0;
+	unsigned long now = jiffies;
 
 	mutex_lock(&list_mutex);
 
@@ -78,16 +181,20 @@
 			time_diff = ktimespec.tv_sec;
 		} else {
 			expires = timer->timer.expires;
-			time_diff = jiffies_to_msecs(expires - jiffies) / 1000;
+			time_diff = jiffies_to_msecs(expires - now) / 1000;
 		}
 	}
 
 	mutex_unlock(&list_mutex);
 
-	if (time_after(expires, jiffies) || ktimespec.tv_sec > 0)
-		return snprintf(buf, PAGE_SIZE, "%ld\n", time_diff);
+	if (time_after(expires, now) || ktimespec.tv_sec > 0)
+		return scnprintf(buf, PAGE_SIZE, "%ld\n", time_diff);
 
-	return snprintf(buf, PAGE_SIZE, "0\n");
+	if (timer->send_nl_msg)
+		return scnprintf(buf, PAGE_SIZE, "0 %d\n",
+				 jiffies_to_msecs(now - expires) / 1000);
+
+	return scnprintf(buf, PAGE_SIZE, "0\n");
 }
 
 static void idletimer_tg_work(struct work_struct *work)
@@ -96,6 +203,9 @@
 						  work);
 
 	sysfs_notify(idletimer_tg_kobj, NULL, timer->attr.attr.name);
+
+	if (timer->send_nl_msg)
+		notify_netlink_uevent(timer->attr.attr.name, timer);
 }
 
 static void idletimer_tg_expired(struct timer_list *t)
@@ -104,7 +214,62 @@
 
 	pr_debug("timer %s expired\n", timer->attr.attr.name);
 
+	spin_lock_bh(&timestamp_lock);
+	timer->active = false;
+	timer->work_pending = true;
 	schedule_work(&timer->work);
+	spin_unlock_bh(&timestamp_lock);
+}
+
+static int idletimer_resume(struct notifier_block *notifier,
+			    unsigned long pm_event, void *unused)
+{
+	struct timespec64 ts;
+	unsigned long time_diff, now = jiffies;
+	struct idletimer_tg *timer = container_of(notifier,
+						  struct idletimer_tg, pm_nb);
+	if (!timer)
+		return NOTIFY_DONE;
+
+	switch (pm_event) {
+	case PM_SUSPEND_PREPARE:
+		timer->last_suspend_time =
+			ktime_to_timespec64(ktime_get_boottime());
+		timer->suspend_time_valid = true;
+		break;
+	case PM_POST_SUSPEND:
+		if (!timer->suspend_time_valid)
+			break;
+		timer->suspend_time_valid = false;
+
+		spin_lock_bh(&timestamp_lock);
+		if (!timer->active) {
+			spin_unlock_bh(&timestamp_lock);
+			break;
+		}
+		/* since jiffies are not updated when suspended now represents
+		 * the time it would have suspended */
+		if (time_after(timer->timer.expires, now)) {
+			ts = ktime_to_timespec64(ktime_get_boottime());
+			ts = timespec64_sub(ts, timer->last_suspend_time);
+			time_diff = timespec64_to_jiffies(&ts);
+			if (timer->timer.expires > (time_diff + now)) {
+				mod_timer_pending(&timer->timer,
+						  (timer->timer.expires - time_diff));
+			} else {
+				del_timer(&timer->timer);
+				timer->timer.expires = 0;
+				timer->active = false;
+				timer->work_pending = true;
+				schedule_work(&timer->work);
+			}
+		}
+		spin_unlock_bh(&timestamp_lock);
+		break;
+	default:
+		break;
+	}
+	return NOTIFY_DONE;
 }
 
 static enum alarmtimer_restart idletimer_tg_alarmproc(struct alarm *alarm,
@@ -158,17 +323,34 @@
 
 	ret = sysfs_create_file(idletimer_tg_kobj, &info->timer->attr.attr);
 	if (ret < 0) {
-		pr_debug("couldn't add file to sysfs");
+		pr_debug("couldn't add file to sysfs\n");
 		goto out_free_attr;
 	}
 
 	list_add(&info->timer->entry, &idletimer_tg_list);
-
-	timer_setup(&info->timer->timer, idletimer_tg_expired, 0);
+	pr_debug("timer type value is 0.\n");
+	info->timer->timer_type = 0;
 	info->timer->refcnt = 1;
+	info->timer->send_nl_msg = false;
+	info->timer->active = true;
+	info->timer->timeout = info->timeout;
+
+	info->timer->delayed_timer_trigger.tv_sec = 0;
+	info->timer->delayed_timer_trigger.tv_nsec = 0;
+	info->timer->work_pending = false;
+	info->timer->uid = 0;
+	info->timer->last_modified_timer =
+		ktime_to_timespec64(ktime_get_boottime());
+
+	info->timer->pm_nb.notifier_call = idletimer_resume;
+	ret = register_pm_notifier(&info->timer->pm_nb);
+	if (ret)
+		printk(KERN_WARNING "[%s] Failed to register pm notifier %d\n",
+		       __func__, ret);
 
 	INIT_WORK(&info->timer->work, idletimer_tg_work);
 
+	timer_setup(&info->timer->timer, idletimer_tg_expired, 0);
 	mod_timer(&info->timer->timer,
 		  msecs_to_jiffies(info->timeout * 1000) + jiffies);
 
@@ -186,7 +368,7 @@
 {
 	int ret;
 
-	info->timer = kmalloc(sizeof(*info->timer), GFP_KERNEL);
+	info->timer = kzalloc(sizeof(*info->timer), GFP_KERNEL);
 	if (!info->timer) {
 		ret = -ENOMEM;
 		goto out;
@@ -207,7 +389,7 @@
 
 	ret = sysfs_create_file(idletimer_tg_kobj, &info->timer->attr.attr);
 	if (ret < 0) {
-		pr_debug("couldn't add file to sysfs");
+		pr_debug("couldn't add file to sysfs\n");
 		goto out_free_attr;
 	}
 
@@ -215,9 +397,25 @@
 	kobject_uevent(idletimer_tg_kobj,KOBJ_ADD);
 
 	list_add(&info->timer->entry, &idletimer_tg_list);
-	pr_debug("timer type value is %u", info->timer_type);
+	pr_debug("timer type value is %u\n", info->timer_type);
 	info->timer->timer_type = info->timer_type;
 	info->timer->refcnt = 1;
+	info->timer->send_nl_msg = (info->send_nl_msg != 0);
+	info->timer->active = true;
+	info->timer->timeout = info->timeout;
+
+	info->timer->delayed_timer_trigger.tv_sec = 0;
+	info->timer->delayed_timer_trigger.tv_nsec = 0;
+	info->timer->work_pending = false;
+	info->timer->uid = 0;
+	info->timer->last_modified_timer =
+		ktime_to_timespec64(ktime_get_boottime());
+
+	info->timer->pm_nb.notifier_call = idletimer_resume;
+	ret = register_pm_notifier(&info->timer->pm_nb);
+	if (ret)
+		printk(KERN_WARNING "[%s] Failed to register pm notifier %d\n",
+		       __func__, ret);
 
 	INIT_WORK(&info->timer->work, idletimer_tg_work);
 
@@ -231,7 +429,7 @@
 	} else {
 		timer_setup(&info->timer->timer, idletimer_tg_expired, 0);
 		mod_timer(&info->timer->timer,
-				msecs_to_jiffies(info->timeout * 1000) + jiffies);
+			  msecs_to_jiffies(info->timeout * 1000) + jiffies);
 	}
 
 	return 0;
@@ -244,6 +442,41 @@
 	return ret;
 }
 
+static void reset_timer(struct idletimer_tg * const info_timer,
+			const __u32 info_timeout,
+			struct sk_buff *skb)
+{
+	unsigned long now = jiffies;
+	bool timer_prev;
+
+	spin_lock_bh(&timestamp_lock);
+	timer_prev = info_timer->active;
+	info_timer->active = true;
+	/* timer_prev is used to guard overflow problem in time_before*/
+	if (!timer_prev || time_before(info_timer->timer.expires, now)) {
+		pr_debug("Starting Checkentry timer (Expired, Jiffies): %lu, %lu\n",
+			 info_timer->timer.expires, now);
+
+		/* Stores the uid resposible for waking up the radio */
+		if (skb && (skb->sk)) {
+			info_timer->uid = from_kuid_munged(current_user_ns(),
+							   sock_i_uid(skb_to_full_sk(skb)));
+		}
+
+		/* checks if there is a pending inactive notification*/
+		if (info_timer->work_pending)
+			info_timer->delayed_timer_trigger = info_timer->last_modified_timer;
+		else {
+			info_timer->work_pending = true;
+			schedule_work(&info_timer->work);
+		}
+	}
+
+	info_timer->last_modified_timer = ktime_to_timespec64(ktime_get_boottime());
+	mod_timer(&info_timer->timer, msecs_to_jiffies(info_timeout * 1000) + now);
+	spin_unlock_bh(&timestamp_lock);
+}
+
 /*
  * The actual xt_tables plugin.
  */
@@ -251,12 +484,21 @@
 					 const struct xt_action_param *par)
 {
 	const struct idletimer_tg_info *info = par->targinfo;
+	unsigned long now = jiffies;
 
 	pr_debug("resetting timer %s, timeout period %u\n",
 		 info->label, info->timeout);
 
-	mod_timer(&info->timer->timer,
-		  msecs_to_jiffies(info->timeout * 1000) + jiffies);
+	info->timer->active = true;
+
+	if (time_before(info->timer->timer.expires, now)) {
+		schedule_work(&info->timer->work);
+		pr_debug("Starting timer %s (Expired, Jiffies): %lu, %lu\n",
+			 info->label, info->timer->timer.expires, now);
+	}
+
+	/* TODO: Avoid modifying timers on each packet */
+	reset_timer(info->timer, info->timeout, skb);
 
 	return XT_CONTINUE;
 }
@@ -268,6 +510,7 @@
 					 const struct xt_action_param *par)
 {
 	const struct idletimer_tg_info_v1 *info = par->targinfo;
+	unsigned long now = jiffies;
 
 	pr_debug("resetting timer %s, timeout period %u\n",
 		 info->label, info->timeout);
@@ -276,8 +519,16 @@
 		ktime_t tout = ktime_set(info->timeout, 0);
 		alarm_start_relative(&info->timer->alarm, tout);
 	} else {
-		mod_timer(&info->timer->timer,
-				msecs_to_jiffies(info->timeout * 1000) + jiffies);
+		info->timer->active = true;
+
+		if (time_before(info->timer->timer.expires, now)) {
+			schedule_work(&info->timer->work);
+			pr_debug("Starting timer %s (Expired, Jiffies): %lu, %lu\n",
+				 info->label, info->timer->timer.expires, now);
+		}
+
+		/* TODO: Avoid modifying timers on each packet */
+		reset_timer(info->timer, info->timeout, skb);
 	}
 
 	return XT_CONTINUE;
@@ -321,9 +572,7 @@
 	info->timer = __idletimer_tg_find_by_label(info->label);
 	if (info->timer) {
 		info->timer->refcnt++;
-		mod_timer(&info->timer->timer,
-			  msecs_to_jiffies(info->timeout * 1000) + jiffies);
-
+		reset_timer(info->timer, info->timeout, NULL);
 		pr_debug("increased refcnt of timer %s to %u\n",
 			 info->label, info->timer->refcnt);
 	} else {
@@ -346,9 +595,6 @@
 
 	pr_debug("checkentry targinfo%s\n", info->label);
 
-	if (info->send_nl_msg)
-		return -EOPNOTSUPP;
-
 	ret = idletimer_tg_helper((struct idletimer_tg_info *)info);
 	if(ret < 0)
 	{
@@ -361,6 +607,11 @@
 		return -EINVAL;
 	}
 
+	if (info->send_nl_msg > 1) {
+		pr_debug("invalid value for send_nl_msg\n");
+		return -EINVAL;
+	}
+
 	mutex_lock(&list_mutex);
 
 	info->timer = __idletimer_tg_find_by_label(info->label);
@@ -383,8 +634,7 @@
 				alarm_start_relative(&info->timer->alarm, tout);
 			}
 		} else {
-				mod_timer(&info->timer->timer,
-					msecs_to_jiffies(info->timeout * 1000) + jiffies);
+			reset_timer(info->timer, info->timeout, NULL);
 		}
 		pr_debug("increased refcnt of timer %s to %u\n",
 			 info->label, info->timer->refcnt);
@@ -414,8 +664,9 @@
 
 		list_del(&info->timer->entry);
 		del_timer_sync(&info->timer->timer);
-		cancel_work_sync(&info->timer->work);
 		sysfs_remove_file(idletimer_tg_kobj, &info->timer->attr.attr);
+		unregister_pm_notifier(&info->timer->pm_nb);
+		cancel_work_sync(&info->timer->work);
 		kfree(info->timer->attr.attr.name);
 		kfree(info->timer);
 	} else {
@@ -443,8 +694,9 @@
 		} else {
 			del_timer_sync(&info->timer->timer);
 		}
-		cancel_work_sync(&info->timer->work);
 		sysfs_remove_file(idletimer_tg_kobj, &info->timer->attr.attr);
+		unregister_pm_notifier(&info->timer->pm_nb);
+		cancel_work_sync(&info->timer->work);
 		kfree(info->timer->attr.attr.name);
 		kfree(info->timer);
 	} else {
@@ -540,3 +792,4 @@
 MODULE_LICENSE("GPL v2");
 MODULE_ALIAS("ipt_IDLETIMER");
 MODULE_ALIAS("ip6t_IDLETIMER");
+MODULE_ALIAS("arpt_IDLETIMER");
diff --git a/net/netfilter/xt_quota2.c b/net/netfilter/xt_quota2.c
new file mode 100644
index 0000000..641e36e
--- /dev/null
+++ b/net/netfilter/xt_quota2.c
@@ -0,0 +1,397 @@
+/*
+ * xt_quota2 - enhanced xt_quota that can count upwards and in packets
+ * as a minimal accounting match.
+ * by Jan Engelhardt <jengelh@medozas.de>, 2008
+ *
+ * Originally based on xt_quota.c:
+ * 	netfilter module to enforce network quotas
+ * 	Sam Johnston <samj@samj.net>
+ *
+ *	This program is free software; you can redistribute it and/or modify
+ *	it under the terms of the GNU General Public License; either
+ *	version 2 of the License, as published by the Free Software Foundation.
+ */
+#include <linux/list.h>
+#include <linux/module.h>
+#include <linux/proc_fs.h>
+#include <linux/skbuff.h>
+#include <linux/spinlock.h>
+#include <asm/atomic.h>
+#include <net/netlink.h>
+
+#include <linux/netfilter/x_tables.h>
+#include <linux/netfilter/xt_quota2.h>
+
+#ifdef CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG
+/* For compatibility, these definitions are copied from the
+ * deprecated header file <linux/netfilter_ipv4/ipt_ULOG.h> */
+#define ULOG_MAC_LEN	80
+#define ULOG_PREFIX_LEN	32
+
+/* Format of the ULOG packets passed through netlink */
+typedef struct ulog_packet_msg {
+	unsigned long mark;
+	long timestamp_sec;
+	long timestamp_usec;
+	unsigned int hook;
+	char indev_name[IFNAMSIZ];
+	char outdev_name[IFNAMSIZ];
+	size_t data_len;
+	char prefix[ULOG_PREFIX_LEN];
+	unsigned char mac_len;
+	unsigned char mac[ULOG_MAC_LEN];
+	unsigned char payload[0];
+} ulog_packet_msg_t;
+#endif
+
+/**
+ * @lock:	lock to protect quota writers from each other
+ */
+struct xt_quota_counter {
+	u_int64_t quota;
+	spinlock_t lock;
+	struct list_head list;
+	atomic_t ref;
+	char name[sizeof(((struct xt_quota_mtinfo2 *)NULL)->name)];
+	struct proc_dir_entry *procfs_entry;
+};
+
+#ifdef CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG
+/* Harald's favorite number +1 :D From ipt_ULOG.C */
+static int qlog_nl_event = 112;
+module_param_named(event_num, qlog_nl_event, uint, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(event_num,
+		 "Event number for NETLINK_NFLOG message. 0 disables log."
+		 "111 is what ipt_ULOG uses.");
+static struct sock *nflognl;
+#endif
+
+static LIST_HEAD(counter_list);
+static DEFINE_SPINLOCK(counter_list_lock);
+
+static struct proc_dir_entry *proc_xt_quota;
+static unsigned int quota_list_perms = S_IRUGO | S_IWUSR;
+static kuid_t quota_list_uid = KUIDT_INIT(0);
+static kgid_t quota_list_gid = KGIDT_INIT(0);
+module_param_named(perms, quota_list_perms, uint, S_IRUGO | S_IWUSR);
+
+#ifdef CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG
+static void quota2_log(unsigned int hooknum,
+		       const struct sk_buff *skb,
+		       const struct net_device *in,
+		       const struct net_device *out,
+		       const char *prefix)
+{
+	ulog_packet_msg_t *pm;
+	struct sk_buff *log_skb;
+	size_t size;
+	struct nlmsghdr *nlh;
+
+	if (!qlog_nl_event)
+		return;
+
+	size = NLMSG_SPACE(sizeof(*pm));
+	size = max(size, (size_t)NLMSG_GOODSIZE);
+	log_skb = alloc_skb(size, GFP_ATOMIC);
+	if (!log_skb) {
+		pr_err("xt_quota2: cannot alloc skb for logging\n");
+		return;
+	}
+
+	nlh = nlmsg_put(log_skb, /*pid*/0, /*seq*/0, qlog_nl_event,
+			sizeof(*pm), 0);
+	if (!nlh) {
+		pr_err("xt_quota2: nlmsg_put failed\n");
+		kfree_skb(log_skb);
+		return;
+	}
+	pm = nlmsg_data(nlh);
+	memset(pm, 0, sizeof(*pm));
+	if (skb->tstamp == 0)
+		__net_timestamp((struct sk_buff *)skb);
+	pm->hook = hooknum;
+	if (prefix != NULL)
+		strlcpy(pm->prefix, prefix, sizeof(pm->prefix));
+	if (in)
+		strlcpy(pm->indev_name, in->name, sizeof(pm->indev_name));
+	if (out)
+		strlcpy(pm->outdev_name, out->name, sizeof(pm->outdev_name));
+
+	NETLINK_CB(log_skb).dst_group = 1;
+	pr_debug("throwing 1 packets to netlink group 1\n");
+	netlink_broadcast(nflognl, log_skb, 0, 1, GFP_ATOMIC);
+}
+#else
+static void quota2_log(unsigned int hooknum,
+		       const struct sk_buff *skb,
+		       const struct net_device *in,
+		       const struct net_device *out,
+		       const char *prefix)
+{
+}
+#endif  /* if+else CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG */
+
+static ssize_t quota_proc_read(struct file *file, char __user *buf,
+			   size_t size, loff_t *ppos)
+{
+	struct xt_quota_counter *e = PDE_DATA(file_inode(file));
+	char tmp[24];
+	size_t tmp_size;
+
+	spin_lock_bh(&e->lock);
+	tmp_size = scnprintf(tmp, sizeof(tmp), "%llu\n", e->quota);
+	spin_unlock_bh(&e->lock);
+	return simple_read_from_buffer(buf, size, ppos, tmp, tmp_size);
+}
+
+static ssize_t quota_proc_write(struct file *file, const char __user *input,
+                            size_t size, loff_t *ppos)
+{
+	struct xt_quota_counter *e = PDE_DATA(file_inode(file));
+	char buf[sizeof("18446744073709551616")];
+
+	if (size > sizeof(buf))
+		size = sizeof(buf);
+	if (copy_from_user(buf, input, size) != 0)
+		return -EFAULT;
+	buf[sizeof(buf)-1] = '\0';
+	if (size < sizeof(buf))
+		buf[size] = '\0';
+
+	spin_lock_bh(&e->lock);
+	e->quota = simple_strtoull(buf, NULL, 0);
+	spin_unlock_bh(&e->lock);
+	return size;
+}
+
+static const struct proc_ops q2_counter_fops = {
+	.proc_read	= quota_proc_read,
+	.proc_write	= quota_proc_write,
+	.proc_lseek	= default_llseek,
+};
+
+static struct xt_quota_counter *
+q2_new_counter(const struct xt_quota_mtinfo2 *q, bool anon)
+{
+	struct xt_quota_counter *e;
+	unsigned int size;
+
+	/* Do not need all the procfs things for anonymous counters. */
+	size = anon ? offsetof(typeof(*e), list) : sizeof(*e);
+	e = kmalloc(size, GFP_KERNEL);
+	if (e == NULL)
+		return NULL;
+
+	e->quota = q->quota;
+	spin_lock_init(&e->lock);
+	if (!anon) {
+		INIT_LIST_HEAD(&e->list);
+		atomic_set(&e->ref, 1);
+		strlcpy(e->name, q->name, sizeof(e->name));
+	}
+	return e;
+}
+
+/**
+ * q2_get_counter - get ref to counter or create new
+ * @name:	name of counter
+ */
+static struct xt_quota_counter *
+q2_get_counter(const struct xt_quota_mtinfo2 *q)
+{
+	struct proc_dir_entry *p;
+	struct xt_quota_counter *e = NULL;
+	struct xt_quota_counter *new_e;
+
+	if (*q->name == '\0')
+		return q2_new_counter(q, true);
+
+	/* No need to hold a lock while getting a new counter */
+	new_e = q2_new_counter(q, false);
+	if (new_e == NULL)
+		goto out;
+
+	spin_lock_bh(&counter_list_lock);
+	list_for_each_entry(e, &counter_list, list)
+		if (strcmp(e->name, q->name) == 0) {
+			atomic_inc(&e->ref);
+			spin_unlock_bh(&counter_list_lock);
+			kfree(new_e);
+			pr_debug("xt_quota2: old counter name=%s", e->name);
+			return e;
+		}
+	e = new_e;
+	pr_debug("xt_quota2: new_counter name=%s", e->name);
+	list_add_tail(&e->list, &counter_list);
+	/* The entry having a refcount of 1 is not directly destructible.
+	 * This func has not yet returned the new entry, thus iptables
+	 * has not references for destroying this entry.
+	 * For another rule to try to destroy it, it would 1st need for this
+	 * func* to be re-invoked, acquire a new ref for the same named quota.
+	 * Nobody will access the e->procfs_entry either.
+	 * So release the lock. */
+	spin_unlock_bh(&counter_list_lock);
+
+	/* create_proc_entry() is not spin_lock happy */
+	p = e->procfs_entry = proc_create_data(e->name, quota_list_perms,
+	                      proc_xt_quota, &q2_counter_fops, e);
+
+	if (IS_ERR_OR_NULL(p)) {
+		spin_lock_bh(&counter_list_lock);
+		list_del(&e->list);
+		spin_unlock_bh(&counter_list_lock);
+		goto out;
+	}
+	proc_set_user(p, quota_list_uid, quota_list_gid);
+	return e;
+
+ out:
+	kfree(e);
+	return NULL;
+}
+
+static int quota_mt2_check(const struct xt_mtchk_param *par)
+{
+	struct xt_quota_mtinfo2 *q = par->matchinfo;
+
+	pr_debug("xt_quota2: check() flags=0x%04x", q->flags);
+
+	if (q->flags & ~XT_QUOTA_MASK)
+		return -EINVAL;
+
+	q->name[sizeof(q->name)-1] = '\0';
+	if (*q->name == '.' || strchr(q->name, '/') != NULL) {
+		printk(KERN_ERR "xt_quota.3: illegal name\n");
+		return -EINVAL;
+	}
+
+	q->master = q2_get_counter(q);
+	if (q->master == NULL) {
+		printk(KERN_ERR "xt_quota.3: memory alloc failure\n");
+		return -ENOMEM;
+	}
+
+	return 0;
+}
+
+static void quota_mt2_destroy(const struct xt_mtdtor_param *par)
+{
+	struct xt_quota_mtinfo2 *q = par->matchinfo;
+	struct xt_quota_counter *e = q->master;
+
+	if (*q->name == '\0') {
+		kfree(e);
+		return;
+	}
+
+	spin_lock_bh(&counter_list_lock);
+	if (!atomic_dec_and_test(&e->ref)) {
+		spin_unlock_bh(&counter_list_lock);
+		return;
+	}
+
+	list_del(&e->list);
+	spin_unlock_bh(&counter_list_lock);
+	remove_proc_entry(e->name, proc_xt_quota);
+	kfree(e);
+}
+
+static bool
+quota_mt2(const struct sk_buff *skb, struct xt_action_param *par)
+{
+	struct xt_quota_mtinfo2 *q = (void *)par->matchinfo;
+	struct xt_quota_counter *e = q->master;
+	int charge = (q->flags & XT_QUOTA_PACKET) ? 1 : skb->len;
+	bool no_change = q->flags & XT_QUOTA_NO_CHANGE;
+	bool ret = q->flags & XT_QUOTA_INVERT;
+
+	spin_lock_bh(&e->lock);
+	if (q->flags & XT_QUOTA_GROW) {
+		/*
+		 * While no_change is pointless in "grow" mode, we will
+		 * implement it here simply to have a consistent behavior.
+		 */
+		if (!no_change)
+			e->quota += charge;
+		ret = true; /* note: does not respect inversion (bug??) */
+	} else {
+		if (e->quota > charge) {
+			if (!no_change)
+				e->quota -= charge;
+			ret = !ret;
+		} else if (e->quota) {
+			/* We are transitioning, log that fact. */
+			quota2_log(xt_hooknum(par),
+				   skb,
+				   xt_in(par),
+				   xt_out(par),
+				   q->name);
+			/* we do not allow even small packets from now on */
+			e->quota = 0;
+		}
+	}
+	spin_unlock_bh(&e->lock);
+	return ret;
+}
+
+static struct xt_match quota_mt2_reg[] __read_mostly = {
+	{
+		.name       = "quota2",
+		.revision   = 3,
+		.family     = NFPROTO_IPV4,
+		.checkentry = quota_mt2_check,
+		.match      = quota_mt2,
+		.destroy    = quota_mt2_destroy,
+		.matchsize  = sizeof(struct xt_quota_mtinfo2),
+		.usersize   = offsetof(struct xt_quota_mtinfo2, master),
+		.me         = THIS_MODULE,
+	},
+	{
+		.name       = "quota2",
+		.revision   = 3,
+		.family     = NFPROTO_IPV6,
+		.checkentry = quota_mt2_check,
+		.match      = quota_mt2,
+		.destroy    = quota_mt2_destroy,
+		.matchsize  = sizeof(struct xt_quota_mtinfo2),
+		.usersize   = offsetof(struct xt_quota_mtinfo2, master),
+		.me         = THIS_MODULE,
+	},
+};
+
+static int __init quota_mt2_init(void)
+{
+	int ret;
+	pr_debug("xt_quota2: init()");
+
+#ifdef CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG
+	nflognl = netlink_kernel_create(&init_net, NETLINK_NFLOG, NULL);
+	if (!nflognl)
+		return -ENOMEM;
+#endif
+
+	proc_xt_quota = proc_mkdir("xt_quota", init_net.proc_net);
+	if (proc_xt_quota == NULL)
+		return -EACCES;
+
+	ret = xt_register_matches(quota_mt2_reg, ARRAY_SIZE(quota_mt2_reg));
+	if (ret < 0)
+		remove_proc_entry("xt_quota", init_net.proc_net);
+	pr_debug("xt_quota2: init() %d", ret);
+	return ret;
+}
+
+static void __exit quota_mt2_exit(void)
+{
+	xt_unregister_matches(quota_mt2_reg, ARRAY_SIZE(quota_mt2_reg));
+	remove_proc_entry("xt_quota", init_net.proc_net);
+}
+
+module_init(quota_mt2_init);
+module_exit(quota_mt2_exit);
+MODULE_DESCRIPTION("Xtables: countdown quota match; up counter");
+MODULE_AUTHOR("Sam Johnston <samj@samj.net>");
+MODULE_AUTHOR("Jan Engelhardt <jengelh@medozas.de>");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("ipt_quota2");
+MODULE_ALIAS("ip6t_quota2");
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index 717e2f60..7b07140 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -411,6 +411,9 @@
 		}
 	}
 
+	if (snum && inet_is_local_unbindable_port(net, snum))
+		return -EPERM;
+
 	if (snum && inet_port_requires_bind_service(net, snum) &&
 	    !ns_capable(net->user_ns, CAP_NET_BIND_SERVICE))
 		return -EACCES;
@@ -1079,6 +1082,8 @@
 		if (sctp_autobind(sk))
 			return -EAGAIN;
 	} else {
+		if (inet_is_local_unbindable_port(net, ep->base.bind_addr.port))
+			return -EPERM;
 		if (inet_port_requires_bind_service(net, ep->base.bind_addr.port) &&
 		    !ns_capable(net->user_ns, CAP_NET_BIND_SERVICE))
 			return -EACCES;
diff --git a/net/sunrpc/sunrpc_syms.c b/net/sunrpc/sunrpc_syms.c
index 691c000..6321bb24 100644
--- a/net/sunrpc/sunrpc_syms.c
+++ b/net/sunrpc/sunrpc_syms.c
@@ -149,5 +149,6 @@
 	rcu_barrier(); /* Wait for completion of call_rcu()'s */
 }
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
 fs_initcall(init_sunrpc); /* Ensure we're initialised before nfs */
 module_exit(cleanup_sunrpc);
diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c
index dcbae29..f006ac7c 100644
--- a/net/tipc/bearer.c
+++ b/net/tipc/bearer.c
@@ -541,19 +541,6 @@
 	return mtu;
 }
 
-int tipc_bearer_min_mtu(struct net *net, u32 bearer_id)
-{
-	int mtu = TIPC_MIN_BEARER_MTU;
-	struct tipc_bearer *b;
-
-	rcu_read_lock();
-	b = bearer_get(net, bearer_id);
-	if (b)
-		mtu += b->encap_hlen;
-	rcu_read_unlock();
-	return mtu;
-}
-
 /* tipc_bearer_xmit_skb - sends buffer to destination over bearer
  */
 void tipc_bearer_xmit_skb(struct net *net, u32 bearer_id,
@@ -1151,8 +1138,8 @@
 				return -EINVAL;
 			}
 #ifdef CONFIG_TIPC_MEDIA_UDP
-			if (nla_get_u32(props[TIPC_NLA_PROP_MTU]) <
-			    b->encap_hlen + TIPC_MIN_BEARER_MTU) {
+			if (tipc_udp_mtu_bad(nla_get_u32
+					     (props[TIPC_NLA_PROP_MTU]))) {
 				NL_SET_ERR_MSG(info->extack,
 					       "MTU value is out-of-range");
 				return -EINVAL;
diff --git a/net/tipc/bearer.h b/net/tipc/bearer.h
index 483f909..57c6a1a 100644
--- a/net/tipc/bearer.h
+++ b/net/tipc/bearer.h
@@ -146,7 +146,6 @@
  * @identity: array index of this bearer within TIPC bearer array
  * @disc: ptr to link setup request
  * @net_plane: network plane ('A' through 'H') currently associated with bearer
- * @encap_hlen: encap headers length
  * @up: bearer up flag (bit 0)
  * @refcnt: tipc_bearer reference counter
  *
@@ -171,7 +170,6 @@
 	u32 identity;
 	struct tipc_discoverer *disc;
 	char net_plane;
-	u16 encap_hlen;
 	unsigned long up;
 	refcount_t refcnt;
 };
@@ -234,7 +232,6 @@
 void tipc_bearer_cleanup(void);
 void tipc_bearer_stop(struct net *net);
 int tipc_bearer_mtu(struct net *net, u32 bearer_id);
-int tipc_bearer_min_mtu(struct net *net, u32 bearer_id);
 bool tipc_bearer_bcast_support(struct net *net, u32 bearer_id);
 void tipc_bearer_xmit_skb(struct net *net, u32 bearer_id,
 			  struct sk_buff *skb,
diff --git a/net/tipc/link.c b/net/tipc/link.c
index 655a2e1..8fdd3b2 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
@@ -2199,7 +2199,7 @@
 	struct tipc_msg *hdr = buf_msg(skb);
 	struct tipc_gap_ack_blks *ga = NULL;
 	bool reply = msg_probe(hdr), retransmitted = false;
-	u32 dlen = msg_data_sz(hdr), glen = 0, msg_max;
+	u32 dlen = msg_data_sz(hdr), glen = 0;
 	u16 peers_snd_nxt =  msg_next_sent(hdr);
 	u16 peers_tol = msg_link_tolerance(hdr);
 	u16 peers_prio = msg_linkprio(hdr);
@@ -2238,9 +2238,6 @@
 	switch (mtyp) {
 	case RESET_MSG:
 	case ACTIVATE_MSG:
-		msg_max = msg_max_pkt(hdr);
-		if (msg_max < tipc_bearer_min_mtu(l->net, l->bearer_id))
-			break;
 		/* Complete own link name with peer's interface name */
 		if_name =  strrchr(l->name, ':') + 1;
 		if (sizeof(l->name) - (if_name - l->name) <= TIPC_MAX_IF_NAME)
@@ -2285,8 +2282,8 @@
 		l->peer_session = msg_session(hdr);
 		l->in_session = true;
 		l->peer_bearer_id = msg_bearer_id(hdr);
-		if (l->mtu > msg_max)
-			l->mtu = msg_max;
+		if (l->mtu > msg_max_pkt(hdr))
+			l->mtu = msg_max_pkt(hdr);
 		break;
 
 	case STATE_MSG:
diff --git a/net/tipc/udp_media.c b/net/tipc/udp_media.c
index 0a85244..c2bb818 100644
--- a/net/tipc/udp_media.c
+++ b/net/tipc/udp_media.c
@@ -738,8 +738,8 @@
 			udp_conf.local_ip.s_addr = local.ipv4.s_addr;
 		udp_conf.use_udp_checksums = false;
 		ub->ifindex = dev->ifindex;
-		b->encap_hlen = sizeof(struct iphdr) + sizeof(struct udphdr);
-		if (tipc_mtu_bad(dev, b->encap_hlen)) {
+		if (tipc_mtu_bad(dev, sizeof(struct iphdr) +
+				      sizeof(struct udphdr))) {
 			err = -EINVAL;
 			goto err;
 		}
@@ -760,7 +760,6 @@
 		else
 			udp_conf.local_ip6 = local.ipv6;
 		ub->ifindex = dev->ifindex;
-		b->encap_hlen = sizeof(struct ipv6hdr) + sizeof(struct udphdr);
 		b->mtu = 1280;
 #endif
 	} else {
diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c
index bc897ff..b9fd5bd 100644
--- a/net/tls/tls_sw.c
+++ b/net/tls/tls_sw.c
@@ -801,7 +801,7 @@
 	struct sk_psock *psock;
 	struct sock *sk_redir;
 	struct tls_rec *rec;
-	bool enospc, policy, redir_ingress;
+	bool enospc, policy;
 	int err = 0, send;
 	u32 delta = 0;
 
@@ -846,7 +846,6 @@
 		}
 		break;
 	case __SK_REDIRECT:
-		redir_ingress = psock->redir_ingress;
 		sk_redir = psock->sk_redir;
 		memcpy(&msg_redir, msg, sizeof(*msg));
 		if (msg->apply_bytes < send)
@@ -856,8 +855,7 @@
 		sk_msg_return_zero(sk, msg, send);
 		msg->sg.size -= send;
 		release_sock(sk);
-		err = tcp_bpf_sendmsg_redir(sk_redir, redir_ingress,
-					    &msg_redir, send, flags);
+		err = tcp_bpf_sendmsg_redir(sk_redir, &msg_redir, send, flags);
 		lock_sock(sk);
 		if (err < 0) {
 			*copied -= sk_msg_free_nocharge(sk, &msg_redir);
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
index 5264fe8..b1ced3c 100644
--- a/net/unix/af_unix.c
+++ b/net/unix/af_unix.c
@@ -3449,4 +3449,5 @@
 module_exit(af_unix_exit);
 
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
 MODULE_ALIAS_NETPROTO(PF_UNIX);
diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
index 9a65a2f..2427707 100644
--- a/net/vmw_vsock/af_vsock.c
+++ b/net/vmw_vsock/af_vsock.c
@@ -333,8 +333,7 @@
 }
 EXPORT_SYMBOL_GPL(vsock_remove_sock);
 
-void vsock_for_each_connected_socket(struct vsock_transport *transport,
-				     void (*fn)(struct sock *sk))
+void vsock_for_each_connected_socket(void (*fn)(struct sock *sk))
 {
 	int i;
 
@@ -343,12 +342,8 @@
 	for (i = 0; i < ARRAY_SIZE(vsock_connected_table); i++) {
 		struct vsock_sock *vsk;
 		list_for_each_entry(vsk, &vsock_connected_table[i],
-				    connected_table) {
-			if (vsk->transport != transport)
-				continue;
-
+				    connected_table)
 			fn(sk_vsock(vsk));
-		}
 	}
 
 	spin_unlock_bh(&vsock_table_lock);
diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c
index c5f936f..18a0f07 100644
--- a/net/vmw_vsock/virtio_transport.c
+++ b/net/vmw_vsock/virtio_transport.c
@@ -358,11 +358,17 @@
 
 static void virtio_vsock_reset_sock(struct sock *sk)
 {
+	struct vsock_sock *vsk = vsock_sk(sk);
+
 	/* vmci_transport.c doesn't take sk_lock here either.  At least we're
 	 * under vsock_table_lock so the sock cannot disappear while we're
 	 * executing.
 	 */
 
+	/* Only handle our own sockets */
+	if (vsk->transport != &virtio_transport.transport)
+		return;
+
 	sk->sk_state = TCP_CLOSE;
 	sk->sk_err = ECONNRESET;
 	sk_error_report(sk);
@@ -385,8 +391,7 @@
 	switch (le32_to_cpu(event->id)) {
 	case VIRTIO_VSOCK_EVENT_TRANSPORT_RESET:
 		virtio_vsock_update_guest_cid(vsock);
-		vsock_for_each_connected_socket(&virtio_transport.transport,
-						virtio_vsock_reset_sock);
+		vsock_for_each_connected_socket(virtio_vsock_reset_sock);
 		break;
 	}
 }
@@ -667,8 +672,7 @@
 	synchronize_rcu();
 
 	/* Reset all connected sockets when the device disappear */
-	vsock_for_each_connected_socket(&virtio_transport.transport,
-					virtio_vsock_reset_sock);
+	vsock_for_each_connected_socket(virtio_vsock_reset_sock);
 
 	/* Stop all work handlers to make sure no one is accessing the device,
 	 * so we can safely call vdev->config->reset().
diff --git a/net/vmw_vsock/virtio_transport_common.c b/net/vmw_vsock/virtio_transport_common.c
index 3a12aee..b94287d 100644
--- a/net/vmw_vsock/virtio_transport_common.c
+++ b/net/vmw_vsock/virtio_transport_common.c
@@ -26,6 +26,10 @@
 /* Threshold for detecting small packets to copy */
 #define GOOD_COPY_LEN  128
 
+uint virtio_transport_max_vsock_pkt_buf_size = 64 * 1024;
+module_param(virtio_transport_max_vsock_pkt_buf_size, uint, 0444);
+EXPORT_SYMBOL_GPL(virtio_transport_max_vsock_pkt_buf_size);
+
 static const struct virtio_transport *
 virtio_transport_get_ops(struct vsock_sock *vsk)
 {
diff --git a/net/vmw_vsock/vmci_transport.c b/net/vmw_vsock/vmci_transport.c
index 94c1112..c32d4aa 100644
--- a/net/vmw_vsock/vmci_transport.c
+++ b/net/vmw_vsock/vmci_transport.c
@@ -805,6 +805,11 @@
 	struct vsock_sock *vsk;
 
 	vsk = vsock_sk(sk);
+
+	/* Only handle our own sockets */
+	if (vsk->transport != &vmci_transport)
+		return;
+
 	if (!vmci_handle_is_invalid(vmci_trans(vsk)->qp_handle)) {
 		sock_set_flag(sk, SOCK_DONE);
 
@@ -884,8 +889,7 @@
 					 const struct vmci_event_data *e_data,
 					 void *client_data)
 {
-	vsock_for_each_connected_socket(&vmci_transport,
-					vmci_transport_handle_detach);
+	vsock_for_each_connected_socket(vmci_transport_handle_detach);
 }
 
 static void vmci_transport_recv_pkt_work(struct work_struct *work)
diff --git a/net/wireless/ap.c b/net/wireless/ap.c
index 550ac9d..0962770 100644
--- a/net/wireless/ap.c
+++ b/net/wireless/ap.c
@@ -1,4 +1,8 @@
 // SPDX-License-Identifier: GPL-2.0
+/*
+ * Parts of this file are
+ * Copyright (C) 2022 Intel Corporation
+ */
 #include <linux/ieee80211.h>
 #include <linux/export.h>
 #include <net/cfg80211.h>
@@ -7,8 +11,9 @@
 #include "rdev-ops.h"
 
 
-int __cfg80211_stop_ap(struct cfg80211_registered_device *rdev,
-		       struct net_device *dev, bool notify)
+static int ___cfg80211_stop_ap(struct cfg80211_registered_device *rdev,
+			       struct net_device *dev, unsigned int link_id,
+			       bool notify)
 {
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
 	int err;
@@ -22,18 +27,19 @@
 	    dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_GO)
 		return -EOPNOTSUPP;
 
-	if (!wdev->beacon_interval)
+	if (!wdev->links[link_id].ap.beacon_interval)
 		return -ENOENT;
 
-	err = rdev_stop_ap(rdev, dev);
+	err = rdev_stop_ap(rdev, dev, link_id);
 	if (!err) {
 		wdev->conn_owner_nlportid = 0;
-		wdev->beacon_interval = 0;
-		memset(&wdev->chandef, 0, sizeof(wdev->chandef));
-		wdev->ssid_len = 0;
+		wdev->links[link_id].ap.beacon_interval = 0;
+		memset(&wdev->links[link_id].ap.chandef, 0,
+		       sizeof(wdev->links[link_id].ap.chandef));
+		wdev->u.ap.ssid_len = 0;
 		rdev_set_qos_map(rdev, dev, NULL);
 		if (notify)
-			nl80211_send_ap_stopped(wdev);
+			nl80211_send_ap_stopped(wdev, link_id);
 
 		/* Should we apply the grace period during beaconing interface
 		 * shutdown also?
@@ -46,14 +52,36 @@
 	return err;
 }
 
+int __cfg80211_stop_ap(struct cfg80211_registered_device *rdev,
+		       struct net_device *dev, int link_id,
+		       bool notify)
+{
+	unsigned int link;
+	int ret = 0;
+
+	if (link_id >= 0)
+		return ___cfg80211_stop_ap(rdev, dev, link_id, notify);
+
+	for_each_valid_link(dev->ieee80211_ptr, link) {
+		int ret1 = ___cfg80211_stop_ap(rdev, dev, link, notify);
+
+		if (ret1)
+			ret = ret1;
+		/* try the next one also if one errored */
+	}
+
+	return ret;
+}
+
 int cfg80211_stop_ap(struct cfg80211_registered_device *rdev,
-		     struct net_device *dev, bool notify)
+		     struct net_device *dev, int link_id,
+		     bool notify)
 {
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
 	int err;
 
 	wdev_lock(wdev);
-	err = __cfg80211_stop_ap(rdev, dev, notify);
+	err = __cfg80211_stop_ap(rdev, dev, link_id, notify);
 	wdev_unlock(wdev);
 
 	return err;
diff --git a/net/wireless/chan.c b/net/wireless/chan.c
index 869c43d..0b7e81d 100644
--- a/net/wireless/chan.c
+++ b/net/wireless/chan.c
@@ -6,7 +6,7 @@
  *
  * Copyright 2009	Johannes Berg <johannes@sipsolutions.net>
  * Copyright 2013-2014  Intel Mobile Communications GmbH
- * Copyright 2018-2021	Intel Corporation
+ * Copyright 2018-2022	Intel Corporation
  */
 
 #include <linux/export.h>
@@ -181,6 +181,9 @@
 	case NL80211_CHAN_WIDTH_160:
 		mhz = 160;
 		break;
+	case NL80211_CHAN_WIDTH_320:
+		mhz = 320;
+		break;
 	default:
 		WARN_ON_ONCE(1);
 		return -1;
@@ -245,19 +248,7 @@
 		    oper_freq - MHZ_TO_KHZ(oper_width) / 2)
 			return false;
 		break;
-	case NL80211_CHAN_WIDTH_40:
-		if (chandef->center_freq1 != control_freq + 10 &&
-		    chandef->center_freq1 != control_freq - 10)
-			return false;
-		if (chandef->center_freq2)
-			return false;
-		break;
 	case NL80211_CHAN_WIDTH_80P80:
-		if (chandef->center_freq1 != control_freq + 30 &&
-		    chandef->center_freq1 != control_freq + 10 &&
-		    chandef->center_freq1 != control_freq - 10 &&
-		    chandef->center_freq1 != control_freq - 30)
-			return false;
 		if (!chandef->center_freq2)
 			return false;
 		/* adjacent is not allowed -- that's a 160 MHz channel */
@@ -265,28 +256,53 @@
 		    chandef->center_freq2 - chandef->center_freq1 == 80)
 			return false;
 		break;
-	case NL80211_CHAN_WIDTH_80:
-		if (chandef->center_freq1 != control_freq + 30 &&
-		    chandef->center_freq1 != control_freq + 10 &&
-		    chandef->center_freq1 != control_freq - 10 &&
-		    chandef->center_freq1 != control_freq - 30)
-			return false;
+	default:
 		if (chandef->center_freq2)
 			return false;
 		break;
+	}
+
+	switch (chandef->width) {
+	case NL80211_CHAN_WIDTH_5:
+	case NL80211_CHAN_WIDTH_10:
+	case NL80211_CHAN_WIDTH_20:
+	case NL80211_CHAN_WIDTH_20_NOHT:
+	case NL80211_CHAN_WIDTH_1:
+	case NL80211_CHAN_WIDTH_2:
+	case NL80211_CHAN_WIDTH_4:
+	case NL80211_CHAN_WIDTH_8:
+	case NL80211_CHAN_WIDTH_16:
+		/* all checked above */
+		break;
+	case NL80211_CHAN_WIDTH_320:
+		if (chandef->center_freq1 == control_freq + 150 ||
+		    chandef->center_freq1 == control_freq + 130 ||
+		    chandef->center_freq1 == control_freq + 110 ||
+		    chandef->center_freq1 == control_freq + 90 ||
+		    chandef->center_freq1 == control_freq - 90 ||
+		    chandef->center_freq1 == control_freq - 110 ||
+		    chandef->center_freq1 == control_freq - 130 ||
+		    chandef->center_freq1 == control_freq - 150)
+			break;
+		fallthrough;
 	case NL80211_CHAN_WIDTH_160:
-		if (chandef->center_freq1 != control_freq + 70 &&
-		    chandef->center_freq1 != control_freq + 50 &&
-		    chandef->center_freq1 != control_freq + 30 &&
-		    chandef->center_freq1 != control_freq + 10 &&
-		    chandef->center_freq1 != control_freq - 10 &&
-		    chandef->center_freq1 != control_freq - 30 &&
-		    chandef->center_freq1 != control_freq - 50 &&
-		    chandef->center_freq1 != control_freq - 70)
-			return false;
-		if (chandef->center_freq2)
-			return false;
-		break;
+		if (chandef->center_freq1 == control_freq + 70 ||
+		    chandef->center_freq1 == control_freq + 50 ||
+		    chandef->center_freq1 == control_freq - 50 ||
+		    chandef->center_freq1 == control_freq - 70)
+			break;
+		fallthrough;
+	case NL80211_CHAN_WIDTH_80P80:
+	case NL80211_CHAN_WIDTH_80:
+		if (chandef->center_freq1 == control_freq + 30 ||
+		    chandef->center_freq1 == control_freq - 30)
+			break;
+		fallthrough;
+	case NL80211_CHAN_WIDTH_40:
+		if (chandef->center_freq1 == control_freq + 10 ||
+		    chandef->center_freq1 == control_freq - 10)
+			break;
+		fallthrough;
 	default:
 		return false;
 	}
@@ -305,7 +321,7 @@
 EXPORT_SYMBOL(cfg80211_chandef_valid);
 
 static void chandef_primary_freqs(const struct cfg80211_chan_def *c,
-				  u32 *pri40, u32 *pri80)
+				  u32 *pri40, u32 *pri80, u32 *pri160)
 {
 	int tmp;
 
@@ -313,9 +329,11 @@
 	case NL80211_CHAN_WIDTH_40:
 		*pri40 = c->center_freq1;
 		*pri80 = 0;
+		*pri160 = 0;
 		break;
 	case NL80211_CHAN_WIDTH_80:
 	case NL80211_CHAN_WIDTH_80P80:
+		*pri160 = 0;
 		*pri80 = c->center_freq1;
 		/* n_P20 */
 		tmp = (30 + c->chan->center_freq - c->center_freq1)/20;
@@ -325,6 +343,7 @@
 		*pri40 = c->center_freq1 - 20 + 40 * tmp;
 		break;
 	case NL80211_CHAN_WIDTH_160:
+		*pri160 = c->center_freq1;
 		/* n_P20 */
 		tmp = (70 + c->chan->center_freq - c->center_freq1)/20;
 		/* n_P40 */
@@ -335,6 +354,20 @@
 		tmp /= 2;
 		*pri80 = c->center_freq1 - 40 + 80 * tmp;
 		break;
+	case NL80211_CHAN_WIDTH_320:
+		/* n_P20 */
+		tmp = (150 + c->chan->center_freq - c->center_freq1) / 20;
+		/* n_P40 */
+		tmp /= 2;
+		/* freq_P40 */
+		*pri40 = c->center_freq1 - 140 + 40 * tmp;
+		/* n_P80 */
+		tmp /= 2;
+		*pri80 = c->center_freq1 - 120 + 80 * tmp;
+		/* n_P160 */
+		tmp /= 2;
+		*pri160 = c->center_freq1 - 80 + 160 * tmp;
+		break;
 	default:
 		WARN_ON_ONCE(1);
 	}
@@ -344,7 +377,7 @@
 cfg80211_chandef_compatible(const struct cfg80211_chan_def *c1,
 			    const struct cfg80211_chan_def *c2)
 {
-	u32 c1_pri40, c1_pri80, c2_pri40, c2_pri80;
+	u32 c1_pri40, c1_pri80, c2_pri40, c2_pri80, c1_pri160, c2_pri160;
 
 	/* If they are identical, return */
 	if (cfg80211_chandef_identical(c1, c2))
@@ -379,14 +412,31 @@
 	    c2->width == NL80211_CHAN_WIDTH_20)
 		return c1;
 
-	chandef_primary_freqs(c1, &c1_pri40, &c1_pri80);
-	chandef_primary_freqs(c2, &c2_pri40, &c2_pri80);
+	chandef_primary_freqs(c1, &c1_pri40, &c1_pri80, &c1_pri160);
+	chandef_primary_freqs(c2, &c2_pri40, &c2_pri80, &c2_pri160);
 
 	if (c1_pri40 != c2_pri40)
 		return NULL;
 
-	WARN_ON(!c1_pri80 && !c2_pri80);
-	if (c1_pri80 && c2_pri80 && c1_pri80 != c2_pri80)
+	if (c1->width == NL80211_CHAN_WIDTH_40)
+		return c2;
+
+	if (c2->width == NL80211_CHAN_WIDTH_40)
+		return c1;
+
+	if (c1_pri80 != c2_pri80)
+		return NULL;
+
+	if (c1->width == NL80211_CHAN_WIDTH_80 &&
+	    c2->width > NL80211_CHAN_WIDTH_80)
+		return c2;
+
+	if (c2->width == NL80211_CHAN_WIDTH_80 &&
+	    c1->width > NL80211_CHAN_WIDTH_80)
+		return c1;
+
+	WARN_ON(!c1_pri160 && !c2_pri160);
+	if (c1_pri160 && c2_pri160 && c1_pri160 != c2_pri160)
 		return NULL;
 
 	if (c1->width > c2->width)
@@ -622,14 +672,21 @@
  * range of chandef.
  */
 bool cfg80211_is_sub_chan(struct cfg80211_chan_def *chandef,
-			  struct ieee80211_channel *chan)
+			  struct ieee80211_channel *chan,
+			  bool primary_only)
 {
 	int width;
 	u32 freq;
 
+	if (!chandef->chan)
+		return false;
+
 	if (chandef->chan->center_freq == chan->center_freq)
 		return true;
 
+	if (primary_only)
+		return false;
+
 	width = cfg80211_chandef_get_width(chandef);
 	if (width <= 20)
 		return false;
@@ -654,23 +711,25 @@
 
 bool cfg80211_beaconing_iface_active(struct wireless_dev *wdev)
 {
-	bool active = false;
+	unsigned int link;
 
 	ASSERT_WDEV_LOCK(wdev);
 
-	if (!wdev->chandef.chan)
-		return false;
-
 	switch (wdev->iftype) {
 	case NL80211_IFTYPE_AP:
 	case NL80211_IFTYPE_P2P_GO:
-		active = wdev->beacon_interval != 0;
+		for_each_valid_link(wdev, link) {
+			if (wdev->links[link].ap.beacon_interval)
+				return true;
+		}
 		break;
 	case NL80211_IFTYPE_ADHOC:
-		active = wdev->ssid_len != 0;
+		if (wdev->u.ibss.ssid_len)
+			return true;
 		break;
 	case NL80211_IFTYPE_MESH_POINT:
-		active = wdev->mesh_id_len != 0;
+		if (wdev->u.mesh.id_len)
+			return true;
 		break;
 	case NL80211_IFTYPE_STATION:
 	case NL80211_IFTYPE_OCB:
@@ -687,7 +746,35 @@
 		WARN_ON(1);
 	}
 
-	return active;
+	return false;
+}
+
+bool cfg80211_wdev_on_sub_chan(struct wireless_dev *wdev,
+			       struct ieee80211_channel *chan,
+			       bool primary_only)
+{
+	unsigned int link;
+
+	switch (wdev->iftype) {
+	case NL80211_IFTYPE_AP:
+	case NL80211_IFTYPE_P2P_GO:
+		for_each_valid_link(wdev, link) {
+			if (cfg80211_is_sub_chan(&wdev->links[link].ap.chandef,
+						 chan, primary_only))
+				return true;
+		}
+		break;
+	case NL80211_IFTYPE_ADHOC:
+		return cfg80211_is_sub_chan(&wdev->u.ibss.chandef, chan,
+					    primary_only);
+	case NL80211_IFTYPE_MESH_POINT:
+		return cfg80211_is_sub_chan(&wdev->u.mesh.chandef, chan,
+					    primary_only);
+	default:
+		break;
+	}
+
+	return false;
 }
 
 static bool cfg80211_is_wiphy_oper_chan(struct wiphy *wiphy,
@@ -702,7 +789,7 @@
 			continue;
 		}
 
-		if (cfg80211_is_sub_chan(&wdev->chandef, chan)) {
+		if (cfg80211_wdev_on_sub_chan(wdev, chan, false)) {
 			wdev_unlock(wdev);
 			return true;
 		}
@@ -712,6 +799,20 @@
 	return false;
 }
 
+static bool
+cfg80211_offchan_chain_is_active(struct cfg80211_registered_device *rdev,
+				 struct ieee80211_channel *channel)
+{
+	if (!rdev->background_radar_wdev)
+		return false;
+
+	if (!cfg80211_chandef_valid(&rdev->background_radar_chandef))
+		return false;
+
+	return cfg80211_is_sub_chan(&rdev->background_radar_chandef, channel,
+				    false);
+}
+
 bool cfg80211_any_wiphy_oper_chan(struct wiphy *wiphy,
 				  struct ieee80211_channel *chan)
 {
@@ -728,6 +829,9 @@
 
 		if (cfg80211_is_wiphy_oper_chan(&rdev->wiphy, chan))
 			return true;
+
+		if (cfg80211_offchan_chain_is_active(rdev, chan))
+			return true;
 	}
 
 	return false;
@@ -942,7 +1046,10 @@
 	struct ieee80211_sta_vht_cap *vht_cap;
 	struct ieee80211_edmg *edmg_cap;
 	u32 width, control_freq, cap;
-	bool ext_nss_cap, support_80_80 = false;
+	bool ext_nss_cap, support_80_80 = false, support_320 = false;
+	const struct ieee80211_sband_iftype_data *iftd;
+	struct ieee80211_supported_band *sband;
+	int i;
 
 	if (WARN_ON(!cfg80211_chandef_valid(chandef)))
 		return false;
@@ -1044,6 +1151,32 @@
 		      (vht_cap->cap & IEEE80211_VHT_CAP_EXT_NSS_BW_MASK)))
 			return false;
 		break;
+	case NL80211_CHAN_WIDTH_320:
+		prohibited_flags |= IEEE80211_CHAN_NO_320MHZ;
+		width = 320;
+
+		if (chandef->chan->band != NL80211_BAND_6GHZ)
+			return false;
+
+		sband = wiphy->bands[NL80211_BAND_6GHZ];
+		if (!sband)
+			return false;
+
+		for (i = 0; i < sband->n_iftype_data; i++) {
+			iftd = &sband->iftype_data[i];
+			if (!iftd->eht_cap.has_eht)
+				continue;
+
+			if (iftd->eht_cap.eht_cap_elem.phy_cap_info[0] &
+			    IEEE80211_EHT_PHY_CAP0_320MHZ_IN_6GHZ) {
+				support_320 = true;
+				break;
+			}
+		}
+
+		if (!support_320)
+			return false;
+		break;
 	default:
 		WARN_ON_ONCE(1);
 		return false;
@@ -1081,6 +1214,68 @@
 }
 EXPORT_SYMBOL(cfg80211_chandef_usable);
 
+static bool cfg80211_ir_permissive_check_wdev(enum nl80211_iftype iftype,
+					      struct wireless_dev *wdev,
+					      struct ieee80211_channel *chan)
+{
+	struct ieee80211_channel *other_chan = NULL;
+	unsigned int link_id;
+	int r1, r2;
+
+	for_each_valid_link(wdev, link_id) {
+		if (wdev->iftype == NL80211_IFTYPE_STATION &&
+		    wdev->links[link_id].client.current_bss)
+			other_chan = wdev->links[link_id].client.current_bss->pub.channel;
+
+		/*
+		 * If a GO already operates on the same GO_CONCURRENT channel,
+		 * this one (maybe the same one) can beacon as well. We allow
+		 * the operation even if the station we relied on with
+		 * GO_CONCURRENT is disconnected now. But then we must make sure
+		 * we're not outdoor on an indoor-only channel.
+		 */
+		if (iftype == NL80211_IFTYPE_P2P_GO &&
+		    wdev->iftype == NL80211_IFTYPE_P2P_GO &&
+		    wdev->links[link_id].ap.beacon_interval &&
+		    !(chan->flags & IEEE80211_CHAN_INDOOR_ONLY))
+			other_chan = wdev->links[link_id].ap.chandef.chan;
+
+		if (!other_chan)
+			continue;
+
+		if (chan == other_chan)
+			return true;
+
+		if (chan->band != NL80211_BAND_5GHZ &&
+		    chan->band != NL80211_BAND_6GHZ)
+			continue;
+
+		r1 = cfg80211_get_unii(chan->center_freq);
+		r2 = cfg80211_get_unii(other_chan->center_freq);
+
+		if (r1 != -EINVAL && r1 == r2) {
+			/*
+			 * At some locations channels 149-165 are considered a
+			 * bundle, but at other locations, e.g., Indonesia,
+			 * channels 149-161 are considered a bundle while
+			 * channel 165 is left out and considered to be in a
+			 * different bundle. Thus, in case that there is a
+			 * station interface connected to an AP on channel 165,
+			 * it is assumed that channels 149-161 are allowed for
+			 * GO operations. However, having a station interface
+			 * connected to an AP on channels 149-161, does not
+			 * allow GO operation on channel 165.
+			 */
+			if (chan->center_freq == 5825 &&
+			    other_chan->center_freq != 5825)
+				continue;
+			return true;
+		}
+	}
+
+	return false;
+}
+
 /*
  * Check if the channel can be used under permissive conditions mandated by
  * some regulatory bodies, i.e., the channel is marked with
@@ -1124,59 +1319,14 @@
 	 * the current registered device.
 	 */
 	list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) {
-		struct ieee80211_channel *other_chan = NULL;
-		int r1, r2;
+		bool ret;
 
 		wdev_lock(wdev);
-		if (wdev->iftype == NL80211_IFTYPE_STATION &&
-		    wdev->current_bss)
-			other_chan = wdev->current_bss->pub.channel;
-
-		/*
-		 * If a GO already operates on the same GO_CONCURRENT channel,
-		 * this one (maybe the same one) can beacon as well. We allow
-		 * the operation even if the station we relied on with
-		 * GO_CONCURRENT is disconnected now. But then we must make sure
-		 * we're not outdoor on an indoor-only channel.
-		 */
-		if (iftype == NL80211_IFTYPE_P2P_GO &&
-		    wdev->iftype == NL80211_IFTYPE_P2P_GO &&
-		    wdev->beacon_interval &&
-		    !(chan->flags & IEEE80211_CHAN_INDOOR_ONLY))
-			other_chan = wdev->chandef.chan;
+		ret = cfg80211_ir_permissive_check_wdev(iftype, wdev, chan);
 		wdev_unlock(wdev);
 
-		if (!other_chan)
-			continue;
-
-		if (chan == other_chan)
-			return true;
-
-		if (chan->band != NL80211_BAND_5GHZ &&
-		    chan->band != NL80211_BAND_6GHZ)
-			continue;
-
-		r1 = cfg80211_get_unii(chan->center_freq);
-		r2 = cfg80211_get_unii(other_chan->center_freq);
-
-		if (r1 != -EINVAL && r1 == r2) {
-			/*
-			 * At some locations channels 149-165 are considered a
-			 * bundle, but at other locations, e.g., Indonesia,
-			 * channels 149-161 are considered a bundle while
-			 * channel 165 is left out and considered to be in a
-			 * different bundle. Thus, in case that there is a
-			 * station interface connected to an AP on channel 165,
-			 * it is assumed that channels 149-161 are allowed for
-			 * GO operations. However, having a station interface
-			 * connected to an AP on channels 149-161, does not
-			 * allow GO operation on channel 165.
-			 */
-			if (chan->center_freq == 5825 &&
-			    other_chan->center_freq != 5825)
-				continue;
-			return true;
-		}
+		if (ret)
+			return ret;
 	}
 
 	return false;
@@ -1249,97 +1399,6 @@
 	return rdev_set_monitor_channel(rdev, chandef);
 }
 
-void
-cfg80211_get_chan_state(struct wireless_dev *wdev,
-		        struct ieee80211_channel **chan,
-		        enum cfg80211_chan_mode *chanmode,
-		        u8 *radar_detect)
-{
-	int ret;
-
-	*chan = NULL;
-	*chanmode = CHAN_MODE_UNDEFINED;
-
-	ASSERT_WDEV_LOCK(wdev);
-
-	if (wdev->netdev && !netif_running(wdev->netdev))
-		return;
-
-	switch (wdev->iftype) {
-	case NL80211_IFTYPE_ADHOC:
-		if (wdev->current_bss) {
-			*chan = wdev->current_bss->pub.channel;
-			*chanmode = (wdev->ibss_fixed &&
-				     !wdev->ibss_dfs_possible)
-				  ? CHAN_MODE_SHARED
-				  : CHAN_MODE_EXCLUSIVE;
-
-			/* consider worst-case - IBSS can try to return to the
-			 * original user-specified channel as creator */
-			if (wdev->ibss_dfs_possible)
-				*radar_detect |= BIT(wdev->chandef.width);
-			return;
-		}
-		break;
-	case NL80211_IFTYPE_STATION:
-	case NL80211_IFTYPE_P2P_CLIENT:
-		if (wdev->current_bss) {
-			*chan = wdev->current_bss->pub.channel;
-			*chanmode = CHAN_MODE_SHARED;
-			return;
-		}
-		break;
-	case NL80211_IFTYPE_AP:
-	case NL80211_IFTYPE_P2P_GO:
-		if (wdev->cac_started) {
-			*chan = wdev->chandef.chan;
-			*chanmode = CHAN_MODE_SHARED;
-			*radar_detect |= BIT(wdev->chandef.width);
-		} else if (wdev->beacon_interval) {
-			*chan = wdev->chandef.chan;
-			*chanmode = CHAN_MODE_SHARED;
-
-			ret = cfg80211_chandef_dfs_required(wdev->wiphy,
-							    &wdev->chandef,
-							    wdev->iftype);
-			WARN_ON(ret < 0);
-			if (ret > 0)
-				*radar_detect |= BIT(wdev->chandef.width);
-		}
-		return;
-	case NL80211_IFTYPE_MESH_POINT:
-		if (wdev->mesh_id_len) {
-			*chan = wdev->chandef.chan;
-			*chanmode = CHAN_MODE_SHARED;
-
-			ret = cfg80211_chandef_dfs_required(wdev->wiphy,
-							    &wdev->chandef,
-							    wdev->iftype);
-			WARN_ON(ret < 0);
-			if (ret > 0)
-				*radar_detect |= BIT(wdev->chandef.width);
-		}
-		return;
-	case NL80211_IFTYPE_OCB:
-		if (wdev->chandef.chan) {
-			*chan = wdev->chandef.chan;
-			*chanmode = CHAN_MODE_SHARED;
-			return;
-		}
-		break;
-	case NL80211_IFTYPE_MONITOR:
-	case NL80211_IFTYPE_AP_VLAN:
-	case NL80211_IFTYPE_P2P_DEVICE:
-	case NL80211_IFTYPE_NAN:
-		/* these interface types don't really have a channel */
-		return;
-	case NL80211_IFTYPE_UNSPECIFIED:
-	case NL80211_IFTYPE_WDS:
-	case NUM_NL80211_IFTYPES:
-		WARN_ON(1);
-	}
-}
-
 bool cfg80211_any_usable_channels(struct wiphy *wiphy,
 				  unsigned long sband_mask,
 				  u32 prohibited_flags)
@@ -1370,3 +1429,103 @@
 	return false;
 }
 EXPORT_SYMBOL(cfg80211_any_usable_channels);
+
+struct cfg80211_chan_def *wdev_chandef(struct wireless_dev *wdev,
+				       unsigned int link_id)
+{
+	/*
+	 * We need to sort out the locking here - in some cases
+	 * where we get here we really just don't care (yet)
+	 * about the valid links, but in others we do. But we
+	 * get here with various driver cases, so we cannot
+	 * easily require the wdev mutex.
+	 */
+	if (link_id || wdev->valid_links & BIT(0)) {
+		ASSERT_WDEV_LOCK(wdev);
+		WARN_ON(!(wdev->valid_links & BIT(link_id)));
+	}
+
+	switch (wdev->iftype) {
+	case NL80211_IFTYPE_MESH_POINT:
+		return &wdev->u.mesh.chandef;
+	case NL80211_IFTYPE_ADHOC:
+		return &wdev->u.ibss.chandef;
+	case NL80211_IFTYPE_OCB:
+		return &wdev->u.ocb.chandef;
+	case NL80211_IFTYPE_AP:
+	case NL80211_IFTYPE_P2P_GO:
+		return &wdev->links[link_id].ap.chandef;
+	default:
+		return NULL;
+	}
+}
+EXPORT_SYMBOL(wdev_chandef);
+
+struct cfg80211_per_bw_puncturing_values {
+	u8 len;
+	const u16 *valid_values;
+};
+
+static const u16 puncturing_values_80mhz[] = {
+	0x8, 0x4, 0x2, 0x1
+};
+
+static const u16 puncturing_values_160mhz[] = {
+	 0x80, 0x40, 0x20, 0x10, 0x8, 0x4, 0x2, 0x1, 0xc0, 0x30, 0xc, 0x3
+};
+
+static const u16 puncturing_values_320mhz[] = {
+	0xc000, 0x3000, 0xc00, 0x300, 0xc0, 0x30, 0xc, 0x3, 0xf000, 0xf00,
+	0xf0, 0xf, 0xfc00, 0xf300, 0xf0c0, 0xf030, 0xf00c, 0xf003, 0xc00f,
+	0x300f, 0xc0f, 0x30f, 0xcf, 0x3f
+};
+
+#define CFG80211_PER_BW_VALID_PUNCTURING_VALUES(_bw) \
+	{ \
+		.len = ARRAY_SIZE(puncturing_values_ ## _bw ## mhz), \
+		.valid_values = puncturing_values_ ## _bw ## mhz \
+	}
+
+static const struct cfg80211_per_bw_puncturing_values per_bw_puncturing[] = {
+	CFG80211_PER_BW_VALID_PUNCTURING_VALUES(80),
+	CFG80211_PER_BW_VALID_PUNCTURING_VALUES(160),
+	CFG80211_PER_BW_VALID_PUNCTURING_VALUES(320)
+};
+
+bool cfg80211_valid_disable_subchannel_bitmap(u16 *bitmap,
+					      const struct cfg80211_chan_def *chandef)
+{
+	u32 idx, i, start_freq;
+
+	switch (chandef->width) {
+	case NL80211_CHAN_WIDTH_80:
+		idx = 0;
+		start_freq = chandef->center_freq1 - 40;
+		break;
+	case NL80211_CHAN_WIDTH_160:
+		idx = 1;
+		start_freq = chandef->center_freq1 - 80;
+		break;
+	case NL80211_CHAN_WIDTH_320:
+		idx = 2;
+		start_freq = chandef->center_freq1 - 160;
+		break;
+	default:
+		*bitmap = 0;
+		break;
+	}
+
+	if (!*bitmap)
+		return true;
+
+	/* check if primary channel is punctured */
+	if (*bitmap & (u16)BIT((chandef->chan->center_freq - start_freq) / 20))
+		return false;
+
+	for (i = 0; i < per_bw_puncturing[idx].len; i++)
+		if (per_bw_puncturing[idx].valid_values[i] == *bitmap)
+			return true;
+
+	return false;
+}
+EXPORT_SYMBOL(cfg80211_valid_disable_subchannel_bitmap);
diff --git a/net/wireless/core.c b/net/wireless/core.c
index d10686f..a0b7538 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -342,7 +342,7 @@
 
 			wiphy_lock(&rdev->wiphy);
 			cfg80211_leave(rdev, wdev);
-			rdev_del_virtual_intf(rdev, wdev);
+			cfg80211_remove_virtual_intf(rdev, wdev);
 			wiphy_unlock(&rdev->wiphy);
 		}
 	}
@@ -536,6 +536,10 @@
 	INIT_WORK(&rdev->rfkill_block, cfg80211_rfkill_block_work);
 	INIT_WORK(&rdev->conn_work, cfg80211_conn_work);
 	INIT_WORK(&rdev->event_work, cfg80211_event_work);
+	INIT_WORK(&rdev->background_cac_abort_wk,
+		  cfg80211_background_cac_abort_wk);
+	INIT_DELAYED_WORK(&rdev->background_cac_done_wk,
+			  cfg80211_background_cac_done_wk);
 
 	init_waitqueue_head(&rdev->dev_wait);
 
@@ -855,6 +859,9 @@
 
 		for (i = 0; i < sband->n_iftype_data; i++) {
 			const struct ieee80211_sband_iftype_data *iftd;
+			bool has_ap, has_non_ap;
+			u32 ap_bits = BIT(NL80211_IFTYPE_AP) |
+				      BIT(NL80211_IFTYPE_P2P_GO);
 
 			iftd = &sband->iftype_data[i];
 
@@ -874,6 +881,19 @@
 			else
 				have_he = have_he &&
 					  iftd->he_cap.has_he;
+
+			has_ap = iftd->types_mask & ap_bits;
+			has_non_ap = iftd->types_mask & ~ap_bits;
+
+			/*
+			 * For EHT 20 MHz STA, the capabilities format differs
+			 * but to simplify, don't check 20 MHz but rather check
+			 * only if AP and non-AP were mentioned at the same time,
+			 * reject if so.
+			 */
+			if (WARN_ON(iftd->eht_cap.has_eht &&
+				    has_ap && has_non_ap))
+				return -EINVAL;
 		}
 
 		if (WARN_ON(!have_he && band == NL80211_BAND_6GHZ))
@@ -908,6 +928,29 @@
 		return -EINVAL;
 #endif
 
+	if (!wiphy->max_num_akm_suites)
+		wiphy->max_num_akm_suites = NL80211_MAX_NR_AKM_SUITES;
+	else if (wiphy->max_num_akm_suites < NL80211_MAX_NR_AKM_SUITES ||
+		 wiphy->max_num_akm_suites > CFG80211_MAX_NUM_AKM_SUITES)
+		return -EINVAL;
+
+	/* check backport information when indicated */
+	if (wiphy->backport) {
+		int i;
+		const struct wiphy_backport *backport = wiphy->backport;
+
+		/* should implement num_iftype_ext_capab2 */
+		if (WARN_ON(wiphy->num_iftype_ext_capab !=
+			    backport->num_iftype_ext_capab2))
+			return -EINVAL;
+
+		for (i = 0; i < wiphy->num_iftype_ext_capab; i++) {
+			if (WARN_ON(wiphy->iftype_ext_capab[i].iftype !=
+				    backport->iftype_ext_capab2[i].iftype))
+				return -EINVAL;
+		}
+	}
+
 	/* check and set up bitrates */
 	ieee80211_set_bitrate_flags(wiphy);
 
@@ -1045,11 +1088,13 @@
 	cancel_work_sync(&rdev->conn_work);
 	flush_work(&rdev->event_work);
 	cancel_delayed_work_sync(&rdev->dfs_update_channels_wk);
+	cancel_delayed_work_sync(&rdev->background_cac_done_wk);
 	flush_work(&rdev->destroy_work);
 	flush_work(&rdev->sched_scan_stop_wk);
 	flush_work(&rdev->propagate_radar_detect_wk);
 	flush_work(&rdev->propagate_cac_done_wk);
 	flush_work(&rdev->mgmt_registrations_update_wk);
+	flush_work(&rdev->background_cac_abort_wk);
 
 #ifdef CONFIG_PM
 	if (rdev->wiphy.wowlan_config && rdev->ops->set_wakeup)
@@ -1111,6 +1156,7 @@
 				      bool unregister_netdev)
 {
 	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
+	unsigned int link_id;
 
 	ASSERT_RTNL();
 	lockdep_assert_held(&rdev->wiphy.mtx);
@@ -1160,11 +1206,22 @@
 	 */
 	cfg80211_process_wdev_events(wdev);
 
-	if (WARN_ON(wdev->current_bss)) {
-		cfg80211_unhold_bss(wdev->current_bss);
-		cfg80211_put_bss(wdev->wiphy, &wdev->current_bss->pub);
-		wdev->current_bss = NULL;
+	if (wdev->iftype == NL80211_IFTYPE_STATION ||
+	    wdev->iftype == NL80211_IFTYPE_P2P_CLIENT) {
+		for (link_id = 0; link_id < ARRAY_SIZE(wdev->links); link_id++) {
+			struct cfg80211_internal_bss *curbss;
+
+			curbss = wdev->links[link_id].client.current_bss;
+
+			if (WARN_ON(curbss)) {
+				cfg80211_unhold_bss(curbss);
+				cfg80211_put_bss(wdev->wiphy, &curbss->pub);
+				wdev->links[link_id].client.current_bss = NULL;
+			}
+		}
 	}
+
+	wdev->connected = false;
 }
 
 void cfg80211_unregister_wdev(struct wireless_dev *wdev)
@@ -1198,6 +1255,8 @@
 
 	cfg80211_pmsr_wdev_down(wdev);
 
+	cfg80211_stop_background_radar_detection(wdev);
+
 	switch (wdev->iftype) {
 	case NL80211_IFTYPE_ADHOC:
 		__cfg80211_leave_ibss(rdev, dev, true);
@@ -1224,7 +1283,7 @@
 		break;
 	case NL80211_IFTYPE_AP:
 	case NL80211_IFTYPE_P2P_GO:
-		__cfg80211_stop_ap(rdev, dev, true);
+		__cfg80211_stop_ap(rdev, dev, -1, true);
 		break;
 	case NL80211_IFTYPE_OCB:
 		__cfg80211_leave_ocb(rdev, dev);
@@ -1410,6 +1469,7 @@
 	case NETDEV_GOING_DOWN:
 		wiphy_lock(&rdev->wiphy);
 		cfg80211_leave(rdev, wdev);
+		cfg80211_remove_links(wdev);
 		wiphy_unlock(&rdev->wiphy);
 		break;
 	case NETDEV_DOWN:
@@ -1454,9 +1514,9 @@
 				memcpy(&setup, &default_mesh_setup,
 						sizeof(setup));
 				 /* back compat only needed for mesh_id */
-				setup.mesh_id = wdev->ssid;
-				setup.mesh_id_len = wdev->mesh_id_up_len;
-				if (wdev->mesh_id_up_len)
+				setup.mesh_id = wdev->u.mesh.id;
+				setup.mesh_id_len = wdev->u.mesh.id_up_len;
+				if (wdev->u.mesh.id_up_len)
 					__cfg80211_join_mesh(rdev, dev,
 							&setup,
 							&default_mesh_config);
diff --git a/net/wireless/core.h b/net/wireless/core.h
index 1720abf..af85d89 100644
--- a/net/wireless/core.h
+++ b/net/wireless/core.h
@@ -3,7 +3,7 @@
  * Wireless configuration interface internals.
  *
  * Copyright 2006-2010	Johannes Berg <johannes@sipsolutions.net>
- * Copyright (C) 2018-2021 Intel Corporation
+ * Copyright (C) 2018-2022 Intel Corporation
  */
 #ifndef __NET_WIRELESS_CORE_H
 #define __NET_WIRELESS_CORE_H
@@ -84,6 +84,11 @@
 
 	struct delayed_work dfs_update_channels_wk;
 
+	struct wireless_dev *background_radar_wdev;
+	struct cfg80211_chan_def background_radar_chandef;
+	struct delayed_work background_cac_done_wk;
+	struct work_struct background_cac_abort_wk;
+
 	/* netlink port which started critical protocol (0 means not started) */
 	u32 crit_proto_nlportid;
 
@@ -266,6 +271,8 @@
 		} ij;
 		struct {
 			u8 bssid[ETH_ALEN];
+			const u8 *td_bitmap;
+			u8 td_bitmap_len;
 		} pa;
 	};
 };
@@ -276,12 +283,6 @@
 	int def;
 };
 
-enum cfg80211_chan_mode {
-	CHAN_MODE_UNDEFINED,
-	CHAN_MODE_SHARED,
-	CHAN_MODE_EXCLUSIVE,
-};
-
 struct cfg80211_beacon_registration {
 	struct list_head list;
 	u32 nlportid;
@@ -308,6 +309,7 @@
 void cfg80211_bss_age(struct cfg80211_registered_device *rdev,
                       unsigned long age_secs);
 void cfg80211_update_assoc_bss_entry(struct wireless_dev *wdev,
+				     unsigned int link,
 				     struct ieee80211_channel *channel);
 
 /* IBSS */
@@ -354,32 +356,25 @@
 
 /* AP */
 int __cfg80211_stop_ap(struct cfg80211_registered_device *rdev,
-		       struct net_device *dev, bool notify);
+		       struct net_device *dev, int link,
+		       bool notify);
 int cfg80211_stop_ap(struct cfg80211_registered_device *rdev,
-		     struct net_device *dev, bool notify);
+		     struct net_device *dev, int link,
+		     bool notify);
 
 /* MLME */
 int cfg80211_mlme_auth(struct cfg80211_registered_device *rdev,
 		       struct net_device *dev,
-		       struct ieee80211_channel *chan,
-		       enum nl80211_auth_type auth_type,
-		       const u8 *bssid,
-		       const u8 *ssid, int ssid_len,
-		       const u8 *ie, int ie_len,
-		       const u8 *key, int key_len, int key_idx,
-		       const u8 *auth_data, int auth_data_len);
+		       struct cfg80211_auth_request *req);
 int cfg80211_mlme_assoc(struct cfg80211_registered_device *rdev,
 			struct net_device *dev,
-			struct ieee80211_channel *chan,
-			const u8 *bssid,
-			const u8 *ssid, int ssid_len,
 			struct cfg80211_assoc_request *req);
 int cfg80211_mlme_deauth(struct cfg80211_registered_device *rdev,
 			 struct net_device *dev, const u8 *bssid,
 			 const u8 *ie, int ie_len, u16 reason,
 			 bool local_state_change);
 int cfg80211_mlme_disassoc(struct cfg80211_registered_device *rdev,
-			   struct net_device *dev, const u8 *bssid,
+			   struct net_device *dev, const u8 *ap_addr,
 			   const u8 *ie, int ie_len, u16 reason,
 			   bool local_state_change);
 void cfg80211_mlme_down(struct cfg80211_registered_device *rdev,
@@ -416,7 +411,8 @@
 			bool wextev);
 void __cfg80211_roamed(struct wireless_dev *wdev,
 		       struct cfg80211_roam_info *info);
-void __cfg80211_port_authorized(struct wireless_dev *wdev, const u8 *bssid);
+void __cfg80211_port_authorized(struct wireless_dev *wdev, const u8 *bssid,
+				const u8 *td_bitmap, u8 td_bitmap_len);
 int cfg80211_mgd_wext_connect(struct cfg80211_registered_device *rdev,
 			      struct wireless_dev *wdev);
 void cfg80211_autodisconnect_wk(struct work_struct *work);
@@ -491,13 +487,28 @@
 
 void cfg80211_sched_dfs_chan_update(struct cfg80211_registered_device *rdev);
 
+int
+cfg80211_start_background_radar_detection(struct cfg80211_registered_device *rdev,
+					  struct wireless_dev *wdev,
+					  struct cfg80211_chan_def *chandef);
+
+void cfg80211_stop_background_radar_detection(struct wireless_dev *wdev);
+
+void cfg80211_background_cac_done_wk(struct work_struct *work);
+
+void cfg80211_background_cac_abort_wk(struct work_struct *work);
+
 bool cfg80211_any_wiphy_oper_chan(struct wiphy *wiphy,
 				  struct ieee80211_channel *chan);
 
 bool cfg80211_beaconing_iface_active(struct wireless_dev *wdev);
 
 bool cfg80211_is_sub_chan(struct cfg80211_chan_def *chandef,
-			  struct ieee80211_channel *chan);
+			  struct ieee80211_channel *chan,
+			  bool primary_only);
+bool cfg80211_wdev_on_sub_chan(struct wireless_dev *wdev,
+			       struct ieee80211_channel *chan,
+			       bool primary_only);
 
 static inline unsigned int elapsed_jiffies_msecs(unsigned long start)
 {
@@ -509,12 +520,6 @@
 	return jiffies_to_msecs(end + (ULONG_MAX - start) + 1);
 }
 
-void
-cfg80211_get_chan_state(struct wireless_dev *wdev,
-		        struct ieee80211_channel **chan,
-		        enum cfg80211_chan_mode *chanmode,
-		        u8 *radar_detect);
-
 int cfg80211_set_monitor_channel(struct cfg80211_registered_device *rdev,
 				 struct cfg80211_chan_def *chandef);
 
@@ -560,4 +565,9 @@
 void cfg80211_pmsr_wdev_down(struct wireless_dev *wdev);
 void cfg80211_pmsr_free_wk(struct work_struct *work);
 
+void cfg80211_remove_link(struct wireless_dev *wdev, unsigned int link_id);
+void cfg80211_remove_links(struct wireless_dev *wdev);
+int cfg80211_remove_virtual_intf(struct cfg80211_registered_device *rdev,
+				 struct wireless_dev *wdev);
+
 #endif /* __NET_WIRELESS_CORE_H */
diff --git a/net/wireless/ibss.c b/net/wireless/ibss.c
index 8f98e54..edd062f 100644
--- a/net/wireless/ibss.c
+++ b/net/wireless/ibss.c
@@ -3,7 +3,7 @@
  * Some IBSS support code for cfg80211.
  *
  * Copyright 2009	Johannes Berg <johannes@sipsolutions.net>
- * Copyright (C) 2020-2021 Intel Corporation
+ * Copyright (C) 2020-2022 Intel Corporation
  */
 
 #include <linux/etherdevice.h>
@@ -28,7 +28,7 @@
 	if (WARN_ON(wdev->iftype != NL80211_IFTYPE_ADHOC))
 		return;
 
-	if (!wdev->ssid_len)
+	if (!wdev->u.ibss.ssid_len)
 		return;
 
 	bss = cfg80211_get_bss(wdev->wiphy, channel, bssid, NULL, 0,
@@ -37,13 +37,13 @@
 	if (WARN_ON(!bss))
 		return;
 
-	if (wdev->current_bss) {
-		cfg80211_unhold_bss(wdev->current_bss);
-		cfg80211_put_bss(wdev->wiphy, &wdev->current_bss->pub);
+	if (wdev->u.ibss.current_bss) {
+		cfg80211_unhold_bss(wdev->u.ibss.current_bss);
+		cfg80211_put_bss(wdev->wiphy, &wdev->u.ibss.current_bss->pub);
 	}
 
 	cfg80211_hold_bss(bss_from_pub(bss));
-	wdev->current_bss = bss_from_pub(bss);
+	wdev->u.ibss.current_bss = bss_from_pub(bss);
 
 	if (!(wdev->wiphy->flags & WIPHY_FLAG_HAS_STATIC_WEP))
 		cfg80211_upload_connect_keys(wdev);
@@ -96,7 +96,7 @@
 	lockdep_assert_held(&rdev->wiphy.mtx);
 	ASSERT_WDEV_LOCK(wdev);
 
-	if (wdev->ssid_len)
+	if (wdev->u.ibss.ssid_len)
 		return -EALREADY;
 
 	if (!params->basic_rates) {
@@ -131,9 +131,7 @@
 		kfree_sensitive(wdev->connect_keys);
 	wdev->connect_keys = connkeys;
 
-	wdev->ibss_fixed = params->channel_fixed;
-	wdev->ibss_dfs_possible = params->userspace_handles_dfs;
-	wdev->chandef = params->chandef;
+	wdev->u.ibss.chandef = params->chandef;
 	if (connkeys) {
 		params->wep_keys = connkeys->params;
 		params->wep_tx_key = connkeys->def;
@@ -148,8 +146,8 @@
 		return err;
 	}
 
-	memcpy(wdev->ssid, params->ssid, params->ssid_len);
-	wdev->ssid_len = params->ssid_len;
+	memcpy(wdev->u.ibss.ssid, params->ssid, params->ssid_len);
+	wdev->u.ibss.ssid_len = params->ssid_len;
 
 	return 0;
 }
@@ -173,16 +171,16 @@
 	 */
 	if (rdev->ops->del_key)
 		for (i = 0; i < 6; i++)
-			rdev_del_key(rdev, dev, i, false, NULL);
+			rdev_del_key(rdev, dev, -1, i, false, NULL);
 
-	if (wdev->current_bss) {
-		cfg80211_unhold_bss(wdev->current_bss);
-		cfg80211_put_bss(wdev->wiphy, &wdev->current_bss->pub);
+	if (wdev->u.ibss.current_bss) {
+		cfg80211_unhold_bss(wdev->u.ibss.current_bss);
+		cfg80211_put_bss(wdev->wiphy, &wdev->u.ibss.current_bss->pub);
 	}
 
-	wdev->current_bss = NULL;
-	wdev->ssid_len = 0;
-	memset(&wdev->chandef, 0, sizeof(wdev->chandef));
+	wdev->u.ibss.current_bss = NULL;
+	wdev->u.ibss.ssid_len = 0;
+	memset(&wdev->u.ibss.chandef, 0, sizeof(wdev->u.ibss.chandef));
 #ifdef CONFIG_CFG80211_WEXT
 	if (!nowext)
 		wdev->wext.ibss.ssid_len = 0;
@@ -207,7 +205,7 @@
 
 	ASSERT_WDEV_LOCK(wdev);
 
-	if (!wdev->ssid_len)
+	if (!wdev->u.ibss.ssid_len)
 		return -ENOLINK;
 
 	err = rdev_leave_ibss(rdev, dev);
@@ -341,7 +339,7 @@
 
 	wdev_lock(wdev);
 	err = 0;
-	if (wdev->ssid_len)
+	if (wdev->u.ibss.ssid_len)
 		err = __cfg80211_leave_ibss(rdev, dev, true);
 	wdev_unlock(wdev);
 
@@ -376,8 +374,8 @@
 		return -EINVAL;
 
 	wdev_lock(wdev);
-	if (wdev->current_bss)
-		chan = wdev->current_bss->pub.channel;
+	if (wdev->u.ibss.current_bss)
+		chan = wdev->u.ibss.current_bss->pub.channel;
 	else if (wdev->wext.ibss.chandef.chan)
 		chan = wdev->wext.ibss.chandef.chan;
 	wdev_unlock(wdev);
@@ -410,7 +408,7 @@
 
 	wdev_lock(wdev);
 	err = 0;
-	if (wdev->ssid_len)
+	if (wdev->u.ibss.ssid_len)
 		err = __cfg80211_leave_ibss(rdev, dev, true);
 	wdev_unlock(wdev);
 
@@ -421,8 +419,8 @@
 	if (len > 0 && ssid[len - 1] == '\0')
 		len--;
 
-	memcpy(wdev->ssid, ssid, len);
-	wdev->wext.ibss.ssid = wdev->ssid;
+	memcpy(wdev->u.ibss.ssid, ssid, len);
+	wdev->wext.ibss.ssid = wdev->u.ibss.ssid;
 	wdev->wext.ibss.ssid_len = len;
 
 	wdev_lock(wdev);
@@ -445,10 +443,10 @@
 	data->flags = 0;
 
 	wdev_lock(wdev);
-	if (wdev->ssid_len) {
+	if (wdev->u.ibss.ssid_len) {
 		data->flags = 1;
-		data->length = wdev->ssid_len;
-		memcpy(ssid, wdev->ssid, data->length);
+		data->length = wdev->u.ibss.ssid_len;
+		memcpy(ssid, wdev->u.ibss.ssid, data->length);
 	} else if (wdev->wext.ibss.ssid && wdev->wext.ibss.ssid_len) {
 		data->flags = 1;
 		data->length = wdev->wext.ibss.ssid_len;
@@ -496,7 +494,7 @@
 
 	wdev_lock(wdev);
 	err = 0;
-	if (wdev->ssid_len)
+	if (wdev->u.ibss.ssid_len)
 		err = __cfg80211_leave_ibss(rdev, dev, true);
 	wdev_unlock(wdev);
 
@@ -529,8 +527,9 @@
 	ap_addr->sa_family = ARPHRD_ETHER;
 
 	wdev_lock(wdev);
-	if (wdev->current_bss)
-		memcpy(ap_addr->sa_data, wdev->current_bss->pub.bssid, ETH_ALEN);
+	if (wdev->u.ibss.current_bss)
+		memcpy(ap_addr->sa_data, wdev->u.ibss.current_bss->pub.bssid,
+		       ETH_ALEN);
 	else if (wdev->wext.ibss.bssid)
 		memcpy(ap_addr->sa_data, wdev->wext.ibss.bssid, ETH_ALEN);
 	else
diff --git a/net/wireless/mesh.c b/net/wireless/mesh.c
index e4e3631..59a3c5c 100644
--- a/net/wireless/mesh.c
+++ b/net/wireless/mesh.c
@@ -1,4 +1,8 @@
 // SPDX-License-Identifier: GPL-2.0
+/*
+ * Portions
+ * Copyright (C) 2022 Intel Corporation
+ */
 #include <linux/ieee80211.h>
 #include <linux/export.h>
 #include <net/cfg80211.h>
@@ -114,7 +118,7 @@
 	      setup->is_secure)
 		return -EOPNOTSUPP;
 
-	if (wdev->mesh_id_len)
+	if (wdev->u.mesh.id_len)
 		return -EALREADY;
 
 	if (!setup->mesh_id_len)
@@ -125,7 +129,7 @@
 
 	if (!setup->chandef.chan) {
 		/* if no channel explicitly given, use preset channel */
-		setup->chandef = wdev->preset_chandef;
+		setup->chandef = wdev->u.mesh.preset_chandef;
 	}
 
 	if (!setup->chandef.chan) {
@@ -209,10 +213,10 @@
 
 	err = rdev_join_mesh(rdev, dev, conf, setup);
 	if (!err) {
-		memcpy(wdev->ssid, setup->mesh_id, setup->mesh_id_len);
-		wdev->mesh_id_len = setup->mesh_id_len;
-		wdev->chandef = setup->chandef;
-		wdev->beacon_interval = setup->beacon_interval;
+		memcpy(wdev->u.mesh.id, setup->mesh_id, setup->mesh_id_len);
+		wdev->u.mesh.id_len = setup->mesh_id_len;
+		wdev->u.mesh.chandef = setup->chandef;
+		wdev->u.mesh.beacon_interval = setup->beacon_interval;
 	}
 
 	return err;
@@ -241,15 +245,15 @@
 		err = rdev_libertas_set_mesh_channel(rdev, wdev->netdev,
 						     chandef->chan);
 		if (!err)
-			wdev->chandef = *chandef;
+			wdev->u.mesh.chandef = *chandef;
 
 		return err;
 	}
 
-	if (wdev->mesh_id_len)
+	if (wdev->u.mesh.id_len)
 		return -EBUSY;
 
-	wdev->preset_chandef = *chandef;
+	wdev->u.mesh.preset_chandef = *chandef;
 	return 0;
 }
 
@@ -267,15 +271,16 @@
 	if (!rdev->ops->leave_mesh)
 		return -EOPNOTSUPP;
 
-	if (!wdev->mesh_id_len)
+	if (!wdev->u.mesh.id_len)
 		return -ENOTCONN;
 
 	err = rdev_leave_mesh(rdev, dev);
 	if (!err) {
 		wdev->conn_owner_nlportid = 0;
-		wdev->mesh_id_len = 0;
-		wdev->beacon_interval = 0;
-		memset(&wdev->chandef, 0, sizeof(wdev->chandef));
+		wdev->u.mesh.id_len = 0;
+		wdev->u.mesh.beacon_interval = 0;
+		memset(&wdev->u.mesh.chandef, 0,
+		       sizeof(wdev->u.mesh.chandef));
 		rdev_set_qos_map(rdev, dev, NULL);
 		cfg80211_sched_dfs_chan_update(rdev);
 	}
diff --git a/net/wireless/mlme.c b/net/wireless/mlme.c
index 783acd2..3f0631a 100644
--- a/net/wireless/mlme.c
+++ b/net/wireless/mlme.c
@@ -4,7 +4,7 @@
  *
  * Copyright (c) 2009, Jouni Malinen <j@w1.fi>
  * Copyright (c) 2015		Intel Deutschland GmbH
- * Copyright (C) 2019-2020 Intel Corporation
+ * Copyright (C) 2019-2020, 2022 Intel Corporation
  */
 
 #include <linux/kernel.h>
@@ -21,36 +21,52 @@
 #include "rdev-ops.h"
 
 
-void cfg80211_rx_assoc_resp(struct net_device *dev, struct cfg80211_bss *bss,
-			    const u8 *buf, size_t len, int uapsd_queues,
-			    const u8 *req_ies, size_t req_ies_len)
+void cfg80211_rx_assoc_resp(struct net_device *dev,
+			    struct cfg80211_rx_assoc_resp *data)
 {
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
 	struct wiphy *wiphy = wdev->wiphy;
 	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
-	struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)buf;
-	struct cfg80211_connect_resp_params cr;
-	const u8 *resp_ie = mgmt->u.assoc_resp.variable;
-	size_t resp_ie_len = len - offsetof(struct ieee80211_mgmt,
-					    u.assoc_resp.variable);
+	struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)data->buf;
+	struct cfg80211_connect_resp_params cr = {
+		.timeout_reason = NL80211_TIMEOUT_UNSPECIFIED,
+		.req_ie = data->req_ies,
+		.req_ie_len = data->req_ies_len,
+		.resp_ie = mgmt->u.assoc_resp.variable,
+		.resp_ie_len = data->len -
+			       offsetof(struct ieee80211_mgmt,
+					u.assoc_resp.variable),
+		.status = le16_to_cpu(mgmt->u.assoc_resp.status_code),
+		.ap_mld_addr = data->ap_mld_addr,
+	};
+	unsigned int link_id;
 
-	if (bss->channel->band == NL80211_BAND_S1GHZ) {
-		resp_ie = (u8 *)&mgmt->u.s1g_assoc_resp.variable;
-		resp_ie_len = len - offsetof(struct ieee80211_mgmt,
-					     u.s1g_assoc_resp.variable);
+	for (link_id = 0; link_id < ARRAY_SIZE(data->links); link_id++) {
+		cr.links[link_id].status = data->links[link_id].status;
+		WARN_ON_ONCE(cr.links[link_id].status != WLAN_STATUS_SUCCESS &&
+			     (!cr.ap_mld_addr || !cr.links[link_id].bss));
+
+		cr.links[link_id].bss = data->links[link_id].bss;
+		if (!cr.links[link_id].bss)
+			continue;
+		cr.links[link_id].bssid = data->links[link_id].bss->bssid;
+		cr.links[link_id].addr = data->links[link_id].addr;
+		/* need to have local link addresses for MLO connections */
+		WARN_ON(cr.ap_mld_addr && !cr.links[link_id].addr);
+
+		if (cr.links[link_id].bss->channel->band == NL80211_BAND_S1GHZ) {
+			WARN_ON(link_id);
+			cr.resp_ie = (u8 *)&mgmt->u.s1g_assoc_resp.variable;
+			cr.resp_ie_len = data->len -
+					 offsetof(struct ieee80211_mgmt,
+						  u.s1g_assoc_resp.variable);
+		}
+
+		if (cr.ap_mld_addr)
+			cr.valid_links |= BIT(link_id);
 	}
 
-	memset(&cr, 0, sizeof(cr));
-	cr.status = (int)le16_to_cpu(mgmt->u.assoc_resp.status_code);
-	cr.bssid = mgmt->bssid;
-	cr.bss = bss;
-	cr.req_ie = req_ies;
-	cr.req_ie_len = req_ies_len;
-	cr.resp_ie = resp_ie;
-	cr.resp_ie_len = resp_ie_len;
-	cr.timeout_reason = NL80211_TIMEOUT_UNSPECIFIED;
-
-	trace_cfg80211_send_rx_assoc(dev, bss);
+	trace_cfg80211_send_rx_assoc(dev, data);
 
 	/*
 	 * This is a bit of a hack, we don't notify userspace of
@@ -59,13 +75,19 @@
 	 * frame instead of reassoc.
 	 */
 	if (cfg80211_sme_rx_assoc_resp(wdev, cr.status)) {
-		cfg80211_unhold_bss(bss_from_pub(bss));
-		cfg80211_put_bss(wiphy, bss);
+		for (link_id = 0; link_id < ARRAY_SIZE(data->links); link_id++) {
+			struct cfg80211_bss *bss = data->links[link_id].bss;
+
+			if (!bss)
+				continue;
+
+			cfg80211_unhold_bss(bss_from_pub(bss));
+			cfg80211_put_bss(wiphy, bss);
+		}
 		return;
 	}
 
-	nl80211_send_rx_assoc(rdev, dev, buf, len, GFP_KERNEL, uapsd_queues,
-			      req_ies, req_ies_len);
+	nl80211_send_rx_assoc(rdev, dev, data);
 	/* update current_bss etc., consumes the bss reference */
 	__cfg80211_connect_result(dev, &cr, cr.status == WLAN_STATUS_SUCCESS);
 }
@@ -92,8 +114,7 @@
 
 	nl80211_send_deauth(rdev, wdev->netdev, buf, len, reconnect, GFP_KERNEL);
 
-	if (!wdev->current_bss ||
-	    !ether_addr_equal(wdev->current_bss->pub.bssid, bssid))
+	if (!wdev->connected || !ether_addr_equal(wdev->u.client.connected_addr, bssid))
 		return;
 
 	__cfg80211_disconnected(wdev->netdev, NULL, 0, reason_code, from_ap);
@@ -113,8 +134,8 @@
 	nl80211_send_disassoc(rdev, wdev->netdev, buf, len, reconnect,
 			      GFP_KERNEL);
 
-	if (WARN_ON(!wdev->current_bss ||
-		    !ether_addr_equal(wdev->current_bss->pub.bssid, bssid)))
+	if (WARN_ON(!wdev->connected ||
+		    !ether_addr_equal(wdev->u.client.connected_addr, bssid)))
 		return;
 
 	__cfg80211_disconnected(wdev->netdev, NULL, 0, reason_code, from_ap);
@@ -155,33 +176,35 @@
 }
 EXPORT_SYMBOL(cfg80211_auth_timeout);
 
-void cfg80211_assoc_timeout(struct net_device *dev, struct cfg80211_bss *bss)
+void cfg80211_assoc_failure(struct net_device *dev,
+			    struct cfg80211_assoc_failure *data)
 {
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
 	struct wiphy *wiphy = wdev->wiphy;
 	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
+	const u8 *addr = data->ap_mld_addr ?: data->bss[0]->bssid;
+	int i;
 
-	trace_cfg80211_send_assoc_timeout(dev, bss->bssid);
+	trace_cfg80211_send_assoc_failure(dev, data);
 
-	nl80211_send_assoc_timeout(rdev, dev, bss->bssid, GFP_KERNEL);
-	cfg80211_sme_assoc_timeout(wdev);
+	if (data->timeout) {
+		nl80211_send_assoc_timeout(rdev, dev, addr, GFP_KERNEL);
+		cfg80211_sme_assoc_timeout(wdev);
+	} else {
+		cfg80211_sme_abandon_assoc(wdev);
+	}
 
-	cfg80211_unhold_bss(bss_from_pub(bss));
-	cfg80211_put_bss(wiphy, bss);
+	for (i = 0; i < ARRAY_SIZE(data->bss); i++) {
+		struct cfg80211_bss *bss = data->bss[i];
+
+		if (!bss)
+			continue;
+
+		cfg80211_unhold_bss(bss_from_pub(bss));
+		cfg80211_put_bss(wiphy, bss);
+	}
 }
-EXPORT_SYMBOL(cfg80211_assoc_timeout);
-
-void cfg80211_abandon_assoc(struct net_device *dev, struct cfg80211_bss *bss)
-{
-	struct wireless_dev *wdev = dev->ieee80211_ptr;
-	struct wiphy *wiphy = wdev->wiphy;
-
-	cfg80211_sme_abandon_assoc(wdev);
-
-	cfg80211_unhold_bss(bss_from_pub(bss));
-	cfg80211_put_bss(wiphy, bss);
-}
-EXPORT_SYMBOL(cfg80211_abandon_assoc);
+EXPORT_SYMBOL(cfg80211_assoc_failure);
 
 void cfg80211_tx_mlme_mgmt(struct net_device *dev, const u8 *buf, size_t len,
 			   bool reconnect)
@@ -233,47 +256,30 @@
 /* some MLME handling for userspace SME */
 int cfg80211_mlme_auth(struct cfg80211_registered_device *rdev,
 		       struct net_device *dev,
-		       struct ieee80211_channel *chan,
-		       enum nl80211_auth_type auth_type,
-		       const u8 *bssid,
-		       const u8 *ssid, int ssid_len,
-		       const u8 *ie, int ie_len,
-		       const u8 *key, int key_len, int key_idx,
-		       const u8 *auth_data, int auth_data_len)
+		       struct cfg80211_auth_request *req)
 {
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
-	struct cfg80211_auth_request req = {
-		.ie = ie,
-		.ie_len = ie_len,
-		.auth_data = auth_data,
-		.auth_data_len = auth_data_len,
-		.auth_type = auth_type,
-		.key = key,
-		.key_len = key_len,
-		.key_idx = key_idx,
-	};
-	int err;
 
 	ASSERT_WDEV_LOCK(wdev);
 
-	if (auth_type == NL80211_AUTHTYPE_SHARED_KEY)
-		if (!key || !key_len || key_idx < 0 || key_idx > 3)
-			return -EINVAL;
-
-	if (wdev->current_bss &&
-	    ether_addr_equal(bssid, wdev->current_bss->pub.bssid))
-		return -EALREADY;
-
-	req.bss = cfg80211_get_bss(&rdev->wiphy, chan, bssid, ssid, ssid_len,
-				   IEEE80211_BSS_TYPE_ESS,
-				   IEEE80211_PRIVACY_ANY);
-	if (!req.bss)
+	if (!req->bss)
 		return -ENOENT;
 
-	err = rdev_auth(rdev, dev, &req);
+	if (req->link_id >= 0 &&
+	    !(wdev->wiphy->flags & WIPHY_FLAG_SUPPORTS_MLO))
+		return -EINVAL;
 
-	cfg80211_put_bss(&rdev->wiphy, req.bss);
-	return err;
+	if (req->auth_type == NL80211_AUTHTYPE_SHARED_KEY) {
+		if (!req->key || !req->key_len ||
+		    req->key_idx < 0 || req->key_idx > 3)
+			return -EINVAL;
+	}
+
+	if (wdev->connected &&
+	    ether_addr_equal(req->bss->bssid, wdev->u.client.connected_addr))
+		return -EALREADY;
+
+	return rdev_auth(rdev, dev, req);
 }
 
 /*  Do a logical ht_capa &= ht_capa_mask.  */
@@ -310,21 +316,28 @@
 		p1[i] &= p2[i];
 }
 
+/* Note: caller must cfg80211_put_bss() regardless of result */
 int cfg80211_mlme_assoc(struct cfg80211_registered_device *rdev,
 			struct net_device *dev,
-			struct ieee80211_channel *chan,
-			const u8 *bssid,
-			const u8 *ssid, int ssid_len,
 			struct cfg80211_assoc_request *req)
 {
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
-	int err;
+	int err, i, j;
 
 	ASSERT_WDEV_LOCK(wdev);
 
-	if (wdev->current_bss &&
-	    (!req->prev_bssid || !ether_addr_equal(wdev->current_bss->pub.bssid,
-						   req->prev_bssid)))
+	for (i = 1; i < ARRAY_SIZE(req->links); i++) {
+		if (!req->links[i].bss)
+			continue;
+		for (j = 0; j < i; j++) {
+			if (req->links[i].bss == req->links[j].bss)
+				return -EINVAL;
+		}
+	}
+
+	if (wdev->connected &&
+	    (!req->prev_bssid ||
+	     !ether_addr_equal(wdev->u.client.connected_addr, req->prev_bssid)))
 		return -EALREADY;
 
 	cfg80211_oper_and_ht_capa(&req->ht_capa_mask,
@@ -332,18 +345,22 @@
 	cfg80211_oper_and_vht_capa(&req->vht_capa_mask,
 				   rdev->wiphy.vht_capa_mod_mask);
 
-	req->bss = cfg80211_get_bss(&rdev->wiphy, chan, bssid, ssid, ssid_len,
-				    IEEE80211_BSS_TYPE_ESS,
-				    IEEE80211_PRIVACY_ANY);
-	if (!req->bss)
-		return -ENOENT;
-
 	err = rdev_assoc(rdev, dev, req);
-	if (!err)
-		cfg80211_hold_bss(bss_from_pub(req->bss));
-	else
-		cfg80211_put_bss(&rdev->wiphy, req->bss);
+	if (!err) {
+		int link_id;
 
+		if (req->bss) {
+			cfg80211_ref_bss(&rdev->wiphy, req->bss);
+			cfg80211_hold_bss(bss_from_pub(req->bss));
+		}
+
+		for (link_id = 0; link_id < ARRAY_SIZE(req->links); link_id++) {
+			if (!req->links[link_id].bss)
+				continue;
+			cfg80211_ref_bss(&rdev->wiphy, req->links[link_id].bss);
+			cfg80211_hold_bss(bss_from_pub(req->links[link_id].bss));
+		}
+	}
 	return err;
 }
 
@@ -364,20 +381,20 @@
 	ASSERT_WDEV_LOCK(wdev);
 
 	if (local_state_change &&
-	    (!wdev->current_bss ||
-	     !ether_addr_equal(wdev->current_bss->pub.bssid, bssid)))
+	    (!wdev->connected ||
+	     !ether_addr_equal(wdev->u.client.connected_addr, bssid)))
 		return 0;
 
 	if (ether_addr_equal(wdev->disconnect_bssid, bssid) ||
-	    (wdev->current_bss &&
-	     ether_addr_equal(wdev->current_bss->pub.bssid, bssid)))
+	    (wdev->connected &&
+	     ether_addr_equal(wdev->u.client.connected_addr, bssid)))
 		wdev->conn_owner_nlportid = 0;
 
 	return rdev_deauth(rdev, dev, &req);
 }
 
 int cfg80211_mlme_disassoc(struct cfg80211_registered_device *rdev,
-			   struct net_device *dev, const u8 *bssid,
+			   struct net_device *dev, const u8 *ap_addr,
 			   const u8 *ie, int ie_len, u16 reason,
 			   bool local_state_change)
 {
@@ -387,17 +404,16 @@
 		.local_state_change = local_state_change,
 		.ie = ie,
 		.ie_len = ie_len,
+		.ap_addr = ap_addr,
 	};
 	int err;
 
 	ASSERT_WDEV_LOCK(wdev);
 
-	if (!wdev->current_bss)
+	if (!wdev->connected)
 		return -ENOTCONN;
 
-	if (ether_addr_equal(wdev->current_bss->pub.bssid, bssid))
-		req.bss = &wdev->current_bss->pub;
-	else
+	if (memcmp(wdev->u.client.connected_addr, ap_addr, ETH_ALEN))
 		return -ENOTCONN;
 
 	err = rdev_disassoc(rdev, dev, &req);
@@ -405,7 +421,7 @@
 		return err;
 
 	/* driver should have reported the disassoc */
-	WARN_ON(wdev->current_bss);
+	WARN_ON(wdev->connected);
 	return 0;
 }
 
@@ -420,10 +436,10 @@
 	if (!rdev->ops->deauth)
 		return;
 
-	if (!wdev->current_bss)
+	if (!wdev->connected)
 		return;
 
-	memcpy(bssid, wdev->current_bss->pub.bssid, ETH_ALEN);
+	memcpy(bssid, wdev->u.client.connected_addr, ETH_ALEN);
 	cfg80211_mlme_deauth(rdev, dev, bssid, NULL, 0,
 			     WLAN_REASON_DEAUTH_LEAVING, false);
 }
@@ -643,6 +659,18 @@
 	cfg80211_mgmt_registrations_update(wdev);
 }
 
+static bool cfg80211_allowed_address(struct wireless_dev *wdev, const u8 *addr)
+{
+	int i;
+
+	for_each_valid_link(wdev, i) {
+		if (ether_addr_equal(addr, wdev->links[i].addr))
+			return true;
+	}
+
+	return ether_addr_equal(addr, wdev_address(wdev));
+}
+
 int cfg80211_mlme_mgmt_tx(struct cfg80211_registered_device *rdev,
 			  struct wireless_dev *wdev,
 			  struct cfg80211_mgmt_tx_params *params, u64 *cookie)
@@ -676,28 +704,34 @@
 
 		switch (wdev->iftype) {
 		case NL80211_IFTYPE_ADHOC:
+			/*
+			 * check for IBSS DA must be done by driver as
+			 * cfg80211 doesn't track the stations
+			 */
+			if (!wdev->u.ibss.current_bss ||
+			    !ether_addr_equal(wdev->u.ibss.current_bss->pub.bssid,
+					      mgmt->bssid)) {
+				err = -ENOTCONN;
+				break;
+			}
+			break;
 		case NL80211_IFTYPE_STATION:
 		case NL80211_IFTYPE_P2P_CLIENT:
-			if (!wdev->current_bss) {
+			if (!wdev->connected) {
 				err = -ENOTCONN;
 				break;
 			}
 
-			if (!ether_addr_equal(wdev->current_bss->pub.bssid,
+			/* FIXME: MLD may address this differently */
+
+			if (!ether_addr_equal(wdev->u.client.connected_addr,
 					      mgmt->bssid)) {
 				err = -ENOTCONN;
 				break;
 			}
 
-			/*
-			 * check for IBSS DA must be done by driver as
-			 * cfg80211 doesn't track the stations
-			 */
-			if (wdev->iftype == NL80211_IFTYPE_ADHOC)
-				break;
-
 			/* for station, check that DA is the AP */
-			if (!ether_addr_equal(wdev->current_bss->pub.bssid,
+			if (!ether_addr_equal(wdev->u.client.connected_addr,
 					      mgmt->da)) {
 				err = -ENOTCONN;
 				break;
@@ -706,7 +740,10 @@
 		case NL80211_IFTYPE_AP:
 		case NL80211_IFTYPE_P2P_GO:
 		case NL80211_IFTYPE_AP_VLAN:
-			if (!ether_addr_equal(mgmt->bssid, wdev_address(wdev)))
+			if (!ether_addr_equal(mgmt->bssid, wdev_address(wdev)) &&
+			    (params->link_id < 0 ||
+			     !ether_addr_equal(mgmt->bssid,
+					       wdev->links[params->link_id].addr)))
 				err = -EINVAL;
 			break;
 		case NL80211_IFTYPE_MESH_POINT:
@@ -735,7 +772,7 @@
 			return err;
 	}
 
-	if (!ether_addr_equal(mgmt->sa, wdev_address(wdev))) {
+	if (!cfg80211_allowed_address(wdev, mgmt->sa)) {
 		/* Allow random TA to be used with Public Action frames if the
 		 * driver has indicated support for this. Otherwise, only allow
 		 * the local address to be used.
@@ -743,31 +780,31 @@
 		if (!ieee80211_is_action(mgmt->frame_control) ||
 		    mgmt->u.action.category != WLAN_CATEGORY_PUBLIC)
 			return -EINVAL;
-		if (!wdev->current_bss &&
+		if (!wdev->connected &&
 		    !wiphy_ext_feature_isset(
 			    &rdev->wiphy,
 			    NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA))
 			return -EINVAL;
-		if (wdev->current_bss &&
+		if (wdev->connected &&
 		    !wiphy_ext_feature_isset(
 			    &rdev->wiphy,
 			    NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED))
 			return -EINVAL;
 	}
 
-	/* Transmit the Action frame as requested by user space */
+	/* Transmit the management frame as requested by user space */
 	return rdev_mgmt_tx(rdev, wdev, params, cookie);
 }
 
-bool cfg80211_rx_mgmt_khz(struct wireless_dev *wdev, int freq, int sig_dbm,
-			  const u8 *buf, size_t len, u32 flags)
+bool cfg80211_rx_mgmt_ext(struct wireless_dev *wdev,
+			  struct cfg80211_rx_info *info)
 {
 	struct wiphy *wiphy = wdev->wiphy;
 	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
 	struct cfg80211_mgmt_registration *reg;
 	const struct ieee80211_txrx_stypes *stypes =
 		&wiphy->mgmt_stypes[wdev->iftype];
-	struct ieee80211_mgmt *mgmt = (void *)buf;
+	struct ieee80211_mgmt *mgmt = (void *)info->buf;
 	const u8 *data;
 	int data_len;
 	bool result = false;
@@ -775,7 +812,7 @@
 		cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE);
 	u16 stype;
 
-	trace_cfg80211_rx_mgmt(wdev, freq, sig_dbm);
+	trace_cfg80211_rx_mgmt(wdev, info);
 	stype = (le16_to_cpu(mgmt->frame_control) & IEEE80211_FCTL_STYPE) >> 4;
 
 	if (!(stypes->rx & BIT(stype))) {
@@ -783,8 +820,8 @@
 		return false;
 	}
 
-	data = buf + ieee80211_hdrlen(mgmt->frame_control);
-	data_len = len - ieee80211_hdrlen(mgmt->frame_control);
+	data = info->buf + ieee80211_hdrlen(mgmt->frame_control);
+	data_len = info->len - ieee80211_hdrlen(mgmt->frame_control);
 
 	spin_lock_bh(&rdev->mgmt_registrations_lock);
 
@@ -801,9 +838,8 @@
 		/* found match! */
 
 		/* Indicate the received Action frame to user space */
-		if (nl80211_send_mgmt(rdev, wdev, reg->nlportid,
-				      freq, sig_dbm,
-				      buf, len, flags, GFP_ATOMIC))
+		if (nl80211_send_mgmt(rdev, wdev, reg->nlportid, info,
+				      GFP_ATOMIC))
 			continue;
 
 		result = true;
@@ -815,7 +851,7 @@
 	trace_cfg80211_return_bool(result);
 	return result;
 }
-EXPORT_SYMBOL(cfg80211_rx_mgmt_khz);
+EXPORT_SYMBOL(cfg80211_rx_mgmt_ext);
 
 void cfg80211_sched_dfs_chan_update(struct cfg80211_registered_device *rdev)
 {
@@ -905,13 +941,13 @@
 }
 
 
-void cfg80211_radar_event(struct wiphy *wiphy,
-			  struct cfg80211_chan_def *chandef,
-			  gfp_t gfp)
+void __cfg80211_radar_event(struct wiphy *wiphy,
+			    struct cfg80211_chan_def *chandef,
+			    bool offchan, gfp_t gfp)
 {
 	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
 
-	trace_cfg80211_radar_event(wiphy, chandef);
+	trace_cfg80211_radar_event(wiphy, chandef, offchan);
 
 	/* only set the chandef supplied channel to unavailable, in
 	 * case the radar is detected on only one of multiple channels
@@ -919,6 +955,9 @@
 	 */
 	cfg80211_set_dfs_state(wiphy, chandef, NL80211_DFS_UNAVAILABLE);
 
+	if (offchan)
+		queue_work(cfg80211_wq, &rdev->background_cac_abort_wk);
+
 	cfg80211_sched_dfs_chan_update(rdev);
 
 	nl80211_radar_notify(rdev, chandef, NL80211_RADAR_DETECTED, NULL, gfp);
@@ -926,7 +965,7 @@
 	memcpy(&rdev->radar_chandef, chandef, sizeof(struct cfg80211_chan_def));
 	queue_work(cfg80211_wq, &rdev->propagate_radar_detect_wk);
 }
-EXPORT_SYMBOL(cfg80211_radar_event);
+EXPORT_SYMBOL(__cfg80211_radar_event);
 
 void cfg80211_cac_event(struct net_device *netdev,
 			const struct cfg80211_chan_def *chandef,
@@ -937,14 +976,15 @@
 	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
 	unsigned long timeout;
 
+	/* not yet supported */
+	if (wdev->valid_links)
+		return;
+
 	trace_cfg80211_cac_event(netdev, event);
 
 	if (WARN_ON(!wdev->cac_started && event != NL80211_RADAR_CAC_STARTED))
 		return;
 
-	if (WARN_ON(!wdev->chandef.chan))
-		return;
-
 	switch (event) {
 	case NL80211_RADAR_CAC_FINISHED:
 		timeout = wdev->cac_start_time +
@@ -970,3 +1010,143 @@
 	nl80211_radar_notify(rdev, chandef, event, netdev, gfp);
 }
 EXPORT_SYMBOL(cfg80211_cac_event);
+
+static void
+__cfg80211_background_cac_event(struct cfg80211_registered_device *rdev,
+				struct wireless_dev *wdev,
+				const struct cfg80211_chan_def *chandef,
+				enum nl80211_radar_event event)
+{
+	struct wiphy *wiphy = &rdev->wiphy;
+	struct net_device *netdev;
+
+	lockdep_assert_wiphy(&rdev->wiphy);
+
+	if (!cfg80211_chandef_valid(chandef))
+		return;
+
+	if (!rdev->background_radar_wdev)
+		return;
+
+	switch (event) {
+	case NL80211_RADAR_CAC_FINISHED:
+		cfg80211_set_dfs_state(wiphy, chandef, NL80211_DFS_AVAILABLE);
+		memcpy(&rdev->cac_done_chandef, chandef, sizeof(*chandef));
+		queue_work(cfg80211_wq, &rdev->propagate_cac_done_wk);
+		cfg80211_sched_dfs_chan_update(rdev);
+		wdev = rdev->background_radar_wdev;
+		break;
+	case NL80211_RADAR_CAC_ABORTED:
+		if (!cancel_delayed_work(&rdev->background_cac_done_wk))
+			return;
+		wdev = rdev->background_radar_wdev;
+		break;
+	case NL80211_RADAR_CAC_STARTED:
+		break;
+	default:
+		return;
+	}
+
+	netdev = wdev ? wdev->netdev : NULL;
+	nl80211_radar_notify(rdev, chandef, event, netdev, GFP_KERNEL);
+}
+
+static void
+cfg80211_background_cac_event(struct cfg80211_registered_device *rdev,
+			      const struct cfg80211_chan_def *chandef,
+			      enum nl80211_radar_event event)
+{
+	wiphy_lock(&rdev->wiphy);
+	__cfg80211_background_cac_event(rdev, rdev->background_radar_wdev,
+					chandef, event);
+	wiphy_unlock(&rdev->wiphy);
+}
+
+void cfg80211_background_cac_done_wk(struct work_struct *work)
+{
+	struct delayed_work *delayed_work = to_delayed_work(work);
+	struct cfg80211_registered_device *rdev;
+
+	rdev = container_of(delayed_work, struct cfg80211_registered_device,
+			    background_cac_done_wk);
+	cfg80211_background_cac_event(rdev, &rdev->background_radar_chandef,
+				      NL80211_RADAR_CAC_FINISHED);
+}
+
+void cfg80211_background_cac_abort_wk(struct work_struct *work)
+{
+	struct cfg80211_registered_device *rdev;
+
+	rdev = container_of(work, struct cfg80211_registered_device,
+			    background_cac_abort_wk);
+	cfg80211_background_cac_event(rdev, &rdev->background_radar_chandef,
+				      NL80211_RADAR_CAC_ABORTED);
+}
+
+void cfg80211_background_cac_abort(struct wiphy *wiphy)
+{
+	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
+
+	queue_work(cfg80211_wq, &rdev->background_cac_abort_wk);
+}
+EXPORT_SYMBOL(cfg80211_background_cac_abort);
+
+int
+cfg80211_start_background_radar_detection(struct cfg80211_registered_device *rdev,
+					  struct wireless_dev *wdev,
+					  struct cfg80211_chan_def *chandef)
+{
+	unsigned int cac_time_ms;
+	int err;
+
+	lockdep_assert_wiphy(&rdev->wiphy);
+
+	if (!wiphy_ext_feature_isset(&rdev->wiphy,
+				     NL80211_EXT_FEATURE_RADAR_BACKGROUND))
+		return -EOPNOTSUPP;
+
+	/* Offchannel chain already locked by another wdev */
+	if (rdev->background_radar_wdev && rdev->background_radar_wdev != wdev)
+		return -EBUSY;
+
+	/* CAC already in progress on the offchannel chain */
+	if (rdev->background_radar_wdev == wdev &&
+	    delayed_work_pending(&rdev->background_cac_done_wk))
+		return -EBUSY;
+
+	err = rdev_set_radar_background(rdev, chandef);
+	if (err)
+		return err;
+
+	cac_time_ms = cfg80211_chandef_dfs_cac_time(&rdev->wiphy, chandef);
+	if (!cac_time_ms)
+		cac_time_ms = IEEE80211_DFS_MIN_CAC_TIME_MS;
+
+	rdev->background_radar_chandef = *chandef;
+	rdev->background_radar_wdev = wdev; /* Get offchain ownership */
+
+	__cfg80211_background_cac_event(rdev, wdev, chandef,
+					NL80211_RADAR_CAC_STARTED);
+	queue_delayed_work(cfg80211_wq, &rdev->background_cac_done_wk,
+			   msecs_to_jiffies(cac_time_ms));
+
+	return 0;
+}
+
+void cfg80211_stop_background_radar_detection(struct wireless_dev *wdev)
+{
+	struct wiphy *wiphy = wdev->wiphy;
+	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
+
+	lockdep_assert_wiphy(wiphy);
+
+	if (wdev != rdev->background_radar_wdev)
+		return;
+
+	rdev_set_radar_background(rdev, NULL);
+	rdev->background_radar_wdev = NULL; /* Release offchain ownership */
+
+	__cfg80211_background_cac_event(rdev, wdev,
+					&rdev->background_radar_chandef,
+					NL80211_RADAR_CAC_ABORTED);
+}
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 1b91a9c..6cb8270 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -5,7 +5,7 @@
  * Copyright 2006-2010	Johannes Berg <johannes@sipsolutions.net>
  * Copyright 2013-2014  Intel Mobile Communications GmbH
  * Copyright 2015-2017	Intel Deutschland GmbH
- * Copyright (C) 2018-2021 Intel Corporation
+ * Copyright (C) 2018-2022 Intel Corporation
  */
 
 #include <linux/if.h>
@@ -285,6 +285,15 @@
 	return -EINVAL;
 }
 
+static int validate_he_capa(const struct nlattr *attr,
+			    struct netlink_ext_ack *extack)
+{
+	if (!ieee80211_he_capa_size_ok(nla_data(attr), nla_len(attr)))
+		return -EINVAL;
+
+	return 0;
+}
+
 /* policy for the attributes */
 static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR];
 
@@ -437,6 +446,27 @@
 	[NL80211_SAR_ATTR_SPECS] = NLA_POLICY_NESTED_ARRAY(sar_specs_policy),
 };
 
+static const struct nla_policy
+nl80211_mbssid_config_policy[NL80211_MBSSID_CONFIG_ATTR_MAX + 1] = {
+	[NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES] = NLA_POLICY_MIN(NLA_U8, 2),
+	[NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY] =
+						NLA_POLICY_MIN(NLA_U8, 1),
+	[NL80211_MBSSID_CONFIG_ATTR_INDEX] = { .type = NLA_U8 },
+	[NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX] = { .type = NLA_U32 },
+	[NL80211_MBSSID_CONFIG_ATTR_EMA] = { .type = NLA_FLAG },
+};
+
+static const struct nla_policy
+nl80211_sta_wme_policy[NL80211_STA_WME_MAX + 1] = {
+	[NL80211_STA_WME_UAPSD_QUEUES] = { .type = NLA_U8 },
+	[NL80211_STA_WME_MAX_SP] = { .type = NLA_U8 },
+};
+
+static struct netlink_range_validation nl80211_punct_bitmap_range = {
+	.min = 0,
+	.max = 0xffff,
+};
+
 static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = {
 	[0] = { .strict_start_type = NL80211_ATTR_HE_OBSS_PD },
 	[NL80211_ATTR_WIPHY] = { .type = NLA_U32 },
@@ -541,9 +571,8 @@
 	[NL80211_ATTR_USE_MFP] = NLA_POLICY_RANGE(NLA_U32,
 						  NL80211_MFP_NO,
 						  NL80211_MFP_OPTIONAL),
-	[NL80211_ATTR_STA_FLAGS2] = {
-		.len = sizeof(struct nl80211_sta_flag_update),
-	},
+	[NL80211_ATTR_STA_FLAGS2] =
+		NLA_POLICY_EXACT_LEN_WARN(sizeof(struct nl80211_sta_flag_update)),
 	[NL80211_ATTR_CONTROL_PORT] = { .type = NLA_FLAG },
 	[NL80211_ATTR_CONTROL_PORT_ETHERTYPE] = { .type = NLA_U16 },
 	[NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT] = { .type = NLA_FLAG },
@@ -596,6 +625,7 @@
 		NLA_POLICY_VALIDATE_FN(NLA_BINARY, validate_ie_attr,
 				       IEEE80211_MAX_DATA_LEN),
 	[NL80211_ATTR_ROAM_SUPPORT] = { .type = NLA_FLAG },
+	[NL80211_ATTR_STA_WME] = NLA_POLICY_NESTED(nl80211_sta_wme_policy),
 	[NL80211_ATTR_SCHED_SCAN_MATCH] = { .type = NLA_NESTED },
 	[NL80211_ATTR_TX_NO_CCK_RATE] = { .type = NLA_FLAG },
 	[NL80211_ATTR_TDLS_ACTION] = { .type = NLA_U8 },
@@ -721,9 +751,8 @@
 	[NL80211_ATTR_TXQ_MEMORY_LIMIT] = { .type = NLA_U32 },
 	[NL80211_ATTR_TXQ_QUANTUM] = { .type = NLA_U32 },
 	[NL80211_ATTR_HE_CAPABILITY] =
-		NLA_POLICY_RANGE(NLA_BINARY,
-				 NL80211_HE_MIN_CAPABILITY_LEN,
-				 NL80211_HE_MAX_CAPABILITY_LEN),
+		NLA_POLICY_VALIDATE_FN(NLA_BINARY, validate_he_capa,
+				       NL80211_HE_MAX_CAPABILITY_LEN),
 	[NL80211_ATTR_FTM_RESPONDER] =
 		NLA_POLICY_NESTED(nl80211_ftm_responder_policy),
 	[NL80211_ATTR_TIMEOUT] = NLA_POLICY_MIN(NLA_U32, 1),
@@ -764,6 +793,25 @@
 	[NL80211_ATTR_COLOR_CHANGE_COUNT] = { .type = NLA_U8 },
 	[NL80211_ATTR_COLOR_CHANGE_COLOR] = { .type = NLA_U8 },
 	[NL80211_ATTR_COLOR_CHANGE_ELEMS] = NLA_POLICY_NESTED(nl80211_policy),
+	[NL80211_ATTR_MBSSID_CONFIG] =
+			NLA_POLICY_NESTED(nl80211_mbssid_config_policy),
+	[NL80211_ATTR_MBSSID_ELEMS] = { .type = NLA_NESTED },
+	[NL80211_ATTR_RADAR_BACKGROUND] = { .type = NLA_FLAG },
+	[NL80211_ATTR_AP_SETTINGS_FLAGS] = { .type = NLA_U32 },
+	[NL80211_ATTR_EHT_CAPABILITY] =
+		NLA_POLICY_RANGE(NLA_BINARY,
+				 NL80211_EHT_MIN_CAPABILITY_LEN,
+				 NL80211_EHT_MAX_CAPABILITY_LEN),
+	[NL80211_ATTR_DISABLE_EHT] = { .type = NLA_FLAG },
+	[NL80211_ATTR_MLO_LINKS] =
+		NLA_POLICY_NESTED_ARRAY(nl80211_policy),
+	[NL80211_ATTR_MLO_LINK_ID] =
+		NLA_POLICY_RANGE(NLA_U8, 0, IEEE80211_MLD_MAX_NUM_LINKS),
+	[NL80211_ATTR_MLD_ADDR] = NLA_POLICY_EXACT_LEN(ETH_ALEN),
+	[NL80211_ATTR_MLO_SUPPORT] = { .type = NLA_FLAG },
+	[NL80211_ATTR_MAX_NUM_AKM_SUITES] = { .type = NLA_REJECT },
+	[NL80211_ATTR_PUNCT_BITMAP] =
+		NLA_POLICY_FULL_RANGE(NLA_U32, &nl80211_punct_bitmap_range),
 };
 
 /* policy for the key attributes */
@@ -842,7 +890,7 @@
 	},
 	[NL80211_REKEY_DATA_KCK] = {
 		.type = NLA_BINARY,
-		.len = NL80211_KCK_EXT_LEN
+		.len = NL80211_KCK_EXT_LEN_32
 	},
 	[NL80211_REKEY_DATA_REPLAY_CTR] = NLA_POLICY_EXACT_LEN(NL80211_REPLAY_CTR_LEN),
 	[NL80211_REKEY_DATA_AKM] = { .type = NLA_U32 },
@@ -854,6 +902,7 @@
 	[NL80211_BAND_5GHZ] = { .type = NLA_S32 },
 	[NL80211_BAND_6GHZ] = { .type = NLA_S32 },
 	[NL80211_BAND_60GHZ] = { .type = NLA_S32 },
+	[NL80211_BAND_LC]    = { .type = NLA_S32 },
 };
 
 static const struct nla_policy
@@ -1133,6 +1182,12 @@
 		if ((chan->flags & IEEE80211_CHAN_16MHZ) &&
 		    nla_put_flag(msg, NL80211_FREQUENCY_ATTR_16MHZ))
 			goto nla_put_failure;
+		if ((chan->flags & IEEE80211_CHAN_NO_320MHZ) &&
+		    nla_put_flag(msg, NL80211_FREQUENCY_ATTR_NO_320MHZ))
+			goto nla_put_failure;
+		if ((chan->flags & IEEE80211_CHAN_NO_EHT) &&
+		    nla_put_flag(msg, NL80211_FREQUENCY_ATTR_NO_EHT))
+			goto nla_put_failure;
 	}
 
 	if (nla_put_u32(msg, NL80211_FREQUENCY_ATTR_MAX_TX_POWER,
@@ -1190,6 +1245,37 @@
 
 /* netlink command implementations */
 
+/**
+ * nl80211_link_id - return link ID
+ * @attrs: attributes to look at
+ *
+ * Returns: the link ID or 0 if not given
+ *
+ * Note this function doesn't do any validation of the link
+ * ID validity wrt. links that were actually added, so it must
+ * be called only from ops with %NL80211_FLAG_MLO_VALID_LINK_ID
+ * or if additional validation is done.
+ */
+static unsigned int nl80211_link_id(struct nlattr **attrs)
+{
+	struct nlattr *linkid = attrs[NL80211_ATTR_MLO_LINK_ID];
+
+	if (!linkid)
+		return 0;
+
+	return nla_get_u8(linkid);
+}
+
+static int nl80211_link_id_or_invalid(struct nlattr **attrs)
+{
+	struct nlattr *linkid = attrs[NL80211_ATTR_MLO_LINK_ID];
+
+	if (!linkid)
+		return -1;
+
+	return nla_get_u8(linkid);
+}
+
 struct key_parse {
 	struct key_params p;
 	int idx;
@@ -1461,15 +1547,22 @@
 	case NL80211_IFTYPE_MESH_POINT:
 		break;
 	case NL80211_IFTYPE_ADHOC:
+		if (wdev->u.ibss.current_bss)
+			return 0;
+		return -ENOLINK;
 	case NL80211_IFTYPE_STATION:
 	case NL80211_IFTYPE_P2P_CLIENT:
-		if (!wdev->current_bss)
-			return -ENOLINK;
-		break;
+		if (wdev->connected)
+			return 0;
+		return -ENOLINK;
+	case NL80211_IFTYPE_NAN:
+		if (wiphy_ext_feature_isset(wdev->wiphy,
+					    NL80211_EXT_FEATURE_SECURE_NAN))
+			return 0;
+		return -EINVAL;
 	case NL80211_IFTYPE_UNSPECIFIED:
 	case NL80211_IFTYPE_OCB:
 	case NL80211_IFTYPE_MONITOR:
-	case NL80211_IFTYPE_NAN:
 	case NL80211_IFTYPE_P2P_DEVICE:
 	case NL80211_IFTYPE_WDS:
 	case NUM_NL80211_IFTYPES:
@@ -1714,6 +1807,7 @@
 			 const struct ieee80211_sband_iftype_data *iftdata)
 {
 	const struct ieee80211_sta_he_cap *he_cap = &iftdata->he_cap;
+	const struct ieee80211_sta_eht_cap *eht_cap = &iftdata->eht_cap;
 
 	if (nl80211_put_iftypes(msg, NL80211_BAND_IFTYPE_ATTR_IFTYPES,
 				iftdata->types_mask))
@@ -1734,6 +1828,37 @@
 			return -ENOBUFS;
 	}
 
+	if (eht_cap->has_eht && he_cap->has_he) {
+		u8 mcs_nss_size, ppe_thresh_size;
+		u16 ppe_thres_hdr;
+		bool is_ap;
+
+		is_ap = iftdata->types_mask & BIT(NL80211_IFTYPE_AP) ||
+			iftdata->types_mask & BIT(NL80211_IFTYPE_P2P_GO);
+
+		mcs_nss_size =
+			ieee80211_eht_mcs_nss_size(&he_cap->he_cap_elem,
+						   &eht_cap->eht_cap_elem,
+						   is_ap);
+
+		ppe_thres_hdr = get_unaligned_le16(&eht_cap->eht_ppe_thres[0]);
+		ppe_thresh_size =
+			ieee80211_eht_ppe_size(ppe_thres_hdr,
+					       eht_cap->eht_cap_elem.phy_cap_info);
+
+		if (nla_put(msg, NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC,
+			    sizeof(eht_cap->eht_cap_elem.mac_cap_info),
+			    eht_cap->eht_cap_elem.mac_cap_info) ||
+		    nla_put(msg, NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY,
+			    sizeof(eht_cap->eht_cap_elem.phy_cap_info),
+			    eht_cap->eht_cap_elem.phy_cap_info) ||
+		    nla_put(msg, NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET,
+			    mcs_nss_size, &eht_cap->eht_mcs_nss_supp) ||
+		    nla_put(msg, NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE,
+			    ppe_thresh_size, eht_cap->eht_ppe_thres))
+			return -ENOBUFS;
+	}
+
 	if (sband->band == NL80211_BAND_6GHZ &&
 	    nla_put(msg, NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA,
 		    sizeof(iftdata->he_6ghz_capa),
@@ -2212,6 +2337,35 @@
 	return -ENOBUFS;
 }
 
+static int nl80211_put_mbssid_support(struct wiphy *wiphy, struct sk_buff *msg)
+{
+	struct nlattr *config;
+
+	if (!wiphy->mbssid_max_interfaces)
+		return 0;
+
+	config = nla_nest_start(msg, NL80211_ATTR_MBSSID_CONFIG);
+	if (!config)
+		return -ENOBUFS;
+
+	if (nla_put_u8(msg, NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES,
+		       wiphy->mbssid_max_interfaces))
+		goto fail;
+
+	if (wiphy->ema_max_profile_periodicity &&
+	    nla_put_u8(msg,
+		       NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY,
+		       wiphy->ema_max_profile_periodicity))
+		goto fail;
+
+	nla_nest_end(msg, config);
+	return 0;
+
+fail:
+	nla_nest_cancel(msg, config);
+	return -ENOBUFS;
+}
+
 struct nl80211_dump_wiphy_state {
 	s64 filter_wiphy;
 	long start;
@@ -2718,8 +2872,14 @@
 			for (i = state->capa_start;
 			     i < rdev->wiphy.num_iftype_ext_capab; i++) {
 				const struct wiphy_iftype_ext_capab *capab;
+				const struct wiphy_backport *backport;
+				const struct wiphy_iftype_ext_capab2 *capab2;
+
 
 				capab = &rdev->wiphy.iftype_ext_capab[i];
+				backport = rdev->wiphy.backport;
+				capab2 = backport ?
+					 &backport->iftype_ext_capab2[i] : NULL;
 
 				nested_ext_capab = nla_nest_start_noflag(msg,
 									 i);
@@ -2734,6 +2894,16 @@
 					    capab->extended_capabilities_mask))
 					goto nla_put_failure;
 
+				if ((rdev->wiphy.flags &
+				     WIPHY_FLAG_SUPPORTS_MLO) && capab2 &&
+				    (nla_put_u16(msg,
+						 NL80211_ATTR_EML_CAPABILITY,
+						 capab2->eml_capabilities) ||
+				     nla_put_u16(msg,
+						 NL80211_ATTR_MLD_CAPA_AND_OPS,
+						 capab2->mld_capa_and_ops)))
+					goto nla_put_failure;
+
 				nla_nest_end(msg, nested_ext_capab);
 				if (state->split)
 					break;
@@ -2797,6 +2967,16 @@
 		if (nl80211_put_sar_specs(rdev, msg))
 			goto nla_put_failure;
 
+		if (nl80211_put_mbssid_support(&rdev->wiphy, msg))
+			goto nla_put_failure;
+
+		if (nla_put_u16(msg, NL80211_ATTR_MAX_NUM_AKM_SUITES,
+				rdev->wiphy.max_num_akm_suites))
+			goto nla_put_failure;
+
+		if (rdev->wiphy.flags & WIPHY_FLAG_SUPPORTS_MLO)
+			nla_put_flag(msg, NL80211_ATTR_MLO_SUPPORT);
+
 		/* done */
 		state->split_start = 0;
 		break;
@@ -3011,6 +3191,21 @@
 		wdev->iftype == NL80211_IFTYPE_P2P_GO;
 }
 
+static int nl80211_parse_punct_bitmap(struct cfg80211_registered_device *rdev,
+				      struct genl_info *info,
+				      const struct cfg80211_chan_def *chandef,
+				      u16 *punct_bitmap)
+{
+	if (!wiphy_ext_feature_isset(&rdev->wiphy, NL80211_EXT_FEATURE_PUNCT))
+		return -EINVAL;
+
+	*punct_bitmap = nla_get_u32(info->attrs[NL80211_ATTR_PUNCT_BITMAP]);
+	if (!cfg80211_valid_disable_subchannel_bitmap(punct_bitmap, chandef))
+		return -EINVAL;
+
+	return 0;
+}
+
 int nl80211_parse_chandef(struct cfg80211_registered_device *rdev,
 			  struct genl_info *info,
 			  struct cfg80211_chan_def *chandef)
@@ -3138,12 +3333,14 @@
 
 static int __nl80211_set_channel(struct cfg80211_registered_device *rdev,
 				 struct net_device *dev,
-				 struct genl_info *info)
+				 struct genl_info *info,
+				 int _link_id)
 {
 	struct cfg80211_chan_def chandef;
 	int result;
 	enum nl80211_iftype iftype = NL80211_IFTYPE_MONITOR;
 	struct wireless_dev *wdev = NULL;
+	int link_id = _link_id;
 
 	if (dev)
 		wdev = dev->ieee80211_ptr;
@@ -3152,6 +3349,12 @@
 	if (wdev)
 		iftype = wdev->iftype;
 
+	if (link_id < 0) {
+		if (wdev && wdev->valid_links)
+			return -EINVAL;
+		link_id = 0;
+	}
+
 	result = nl80211_parse_chandef(rdev, info, &chandef);
 	if (result)
 		return result;
@@ -3160,49 +3363,53 @@
 	case NL80211_IFTYPE_AP:
 	case NL80211_IFTYPE_P2P_GO:
 		if (!cfg80211_reg_can_beacon_relax(&rdev->wiphy, &chandef,
-						   iftype)) {
-			result = -EINVAL;
-			break;
-		}
-		if (wdev->beacon_interval) {
+						   iftype))
+			return -EINVAL;
+		if (wdev->links[link_id].ap.beacon_interval) {
+			struct ieee80211_channel *cur_chan;
+
 			if (!dev || !rdev->ops->set_ap_chanwidth ||
 			    !(rdev->wiphy.features &
-			      NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE)) {
-				result = -EBUSY;
-				break;
-			}
+			      NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE))
+				return -EBUSY;
 
 			/* Only allow dynamic channel width changes */
-			if (chandef.chan != wdev->preset_chandef.chan) {
-				result = -EBUSY;
-				break;
-			}
-			result = rdev_set_ap_chanwidth(rdev, dev, &chandef);
+			cur_chan = wdev->links[link_id].ap.chandef.chan;
+			if (chandef.chan != cur_chan)
+				return -EBUSY;
+
+			result = rdev_set_ap_chanwidth(rdev, dev, link_id,
+						       &chandef);
 			if (result)
-				break;
+				return result;
+			wdev->links[link_id].ap.chandef = chandef;
+		} else {
+			wdev->u.ap.preset_chandef = chandef;
 		}
-		wdev->preset_chandef = chandef;
-		result = 0;
-		break;
+		return 0;
 	case NL80211_IFTYPE_MESH_POINT:
-		result = cfg80211_set_mesh_channel(rdev, wdev, &chandef);
-		break;
+		return cfg80211_set_mesh_channel(rdev, wdev, &chandef);
 	case NL80211_IFTYPE_MONITOR:
-		result = cfg80211_set_monitor_channel(rdev, &chandef);
-		break;
+		return cfg80211_set_monitor_channel(rdev, &chandef);
 	default:
-		result = -EINVAL;
+		break;
 	}
 
-	return result;
+	return -EINVAL;
 }
 
 static int nl80211_set_channel(struct sk_buff *skb, struct genl_info *info)
 {
 	struct cfg80211_registered_device *rdev = info->user_ptr[0];
+	int link_id = nl80211_link_id_or_invalid(info->attrs);
 	struct net_device *netdev = info->user_ptr[1];
+	int ret;
 
-	return __nl80211_set_channel(rdev, netdev, info);
+	wdev_lock(netdev->ieee80211_ptr);
+	ret = __nl80211_set_channel(rdev, netdev, info, link_id);
+	wdev_unlock(netdev->ieee80211_ptr);
+
+	return ret;
 }
 
 static int nl80211_set_wiphy(struct sk_buff *skb, struct genl_info *info)
@@ -3306,18 +3513,40 @@
 			if (result)
 				goto out;
 
-			result = rdev_set_txq_params(rdev, netdev,
-						     &txq_params);
+			txq_params.link_id =
+				nl80211_link_id_or_invalid(info->attrs);
+
+			wdev_lock(netdev->ieee80211_ptr);
+			if (txq_params.link_id >= 0 &&
+			    !(netdev->ieee80211_ptr->valid_links &
+			      BIT(txq_params.link_id)))
+				result = -ENOLINK;
+			else if (txq_params.link_id >= 0 &&
+				 !netdev->ieee80211_ptr->valid_links)
+				result = -EINVAL;
+			else
+				result = rdev_set_txq_params(rdev, netdev,
+							     &txq_params);
+			wdev_unlock(netdev->ieee80211_ptr);
 			if (result)
 				goto out;
 		}
 	}
 
 	if (info->attrs[NL80211_ATTR_WIPHY_FREQ]) {
-		result = __nl80211_set_channel(
-			rdev,
-			nl80211_can_set_dev_channel(wdev) ? netdev : NULL,
-			info);
+		int link_id = nl80211_link_id_or_invalid(info->attrs);
+
+		if (wdev) {
+			wdev_lock(wdev);
+			result = __nl80211_set_channel(
+				rdev,
+				nl80211_can_set_dev_channel(wdev) ? netdev : NULL,
+				info, link_id);
+			wdev_unlock(wdev);
+		} else {
+			result = __nl80211_set_channel(rdev, netdev, info, link_id);
+		}
+
 		if (result)
 			goto out;
 	}
@@ -3602,15 +3831,13 @@
 	    nla_put_u8(msg, NL80211_ATTR_4ADDR, wdev->use_4addr))
 		goto nla_put_failure;
 
-	if (rdev->ops->get_channel) {
-		int ret;
+	if (rdev->ops->get_channel && !wdev->valid_links) {
 		struct cfg80211_chan_def chandef = {};
+		int ret;
 
-		ret = rdev_get_channel(rdev, wdev, &chandef);
-		if (ret == 0) {
-			if (nl80211_send_chandef(msg, &chandef))
-				goto nla_put_failure;
-		}
+		ret = rdev_get_channel(rdev, wdev, 0, &chandef);
+		if (ret == 0 && nl80211_send_chandef(msg, &chandef))
+			goto nla_put_failure;
 	}
 
 	if (rdev->ops->get_tx_power) {
@@ -3627,25 +3854,24 @@
 	switch (wdev->iftype) {
 	case NL80211_IFTYPE_AP:
 	case NL80211_IFTYPE_P2P_GO:
-		if (wdev->ssid_len &&
-		    nla_put(msg, NL80211_ATTR_SSID, wdev->ssid_len, wdev->ssid))
+		if (wdev->u.ap.ssid_len &&
+		    nla_put(msg, NL80211_ATTR_SSID, wdev->u.ap.ssid_len,
+			    wdev->u.ap.ssid))
 			goto nla_put_failure_locked;
 		break;
 	case NL80211_IFTYPE_STATION:
 	case NL80211_IFTYPE_P2P_CLIENT:
-	case NL80211_IFTYPE_ADHOC: {
-		const u8 *ssid_ie;
-		if (!wdev->current_bss)
-			break;
-		rcu_read_lock();
-		ssid_ie = ieee80211_bss_get_ie(&wdev->current_bss->pub,
-					       WLAN_EID_SSID);
-		if (ssid_ie &&
-		    nla_put(msg, NL80211_ATTR_SSID, ssid_ie[1], ssid_ie + 2))
-			goto nla_put_failure_rcu_locked;
-		rcu_read_unlock();
+		if (wdev->u.client.ssid_len &&
+		    nla_put(msg, NL80211_ATTR_SSID, wdev->u.client.ssid_len,
+			    wdev->u.client.ssid))
+			goto nla_put_failure_locked;
 		break;
-		}
+	case NL80211_IFTYPE_ADHOC:
+		if (wdev->u.ibss.ssid_len &&
+		    nla_put(msg, NL80211_ATTR_SSID, wdev->u.ibss.ssid_len,
+			    wdev->u.ibss.ssid))
+			goto nla_put_failure_locked;
+		break;
 	default:
 		/* nothing */
 		break;
@@ -3662,11 +3888,41 @@
 			goto nla_put_failure;
 	}
 
+	if (wdev->valid_links) {
+		unsigned int link_id;
+		struct nlattr *links = nla_nest_start(msg,
+						      NL80211_ATTR_MLO_LINKS);
+
+		if (!links)
+			goto nla_put_failure;
+
+		for_each_valid_link(wdev, link_id) {
+			struct nlattr *link = nla_nest_start(msg, link_id + 1);
+			struct cfg80211_chan_def chandef = {};
+			int ret;
+
+			if (!link)
+				goto nla_put_failure;
+
+			if (nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link_id))
+				goto nla_put_failure;
+			if (nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN,
+				    wdev->links[link_id].addr))
+				goto nla_put_failure;
+
+			ret = rdev_get_channel(rdev, wdev, link_id, &chandef);
+			if (ret == 0 && nl80211_send_chandef(msg, &chandef))
+				goto nla_put_failure;
+
+			nla_nest_end(msg, link);
+		}
+
+		nla_nest_end(msg, links);
+	}
+
 	genlmsg_end(msg, hdr);
 	return 0;
 
- nla_put_failure_rcu_locked:
-	rcu_read_unlock();
  nla_put_failure_locked:
 	wdev_unlock(wdev);
  nla_put_failure:
@@ -3918,10 +4174,11 @@
 		wdev_lock(wdev);
 		BUILD_BUG_ON(IEEE80211_MAX_SSID_LEN !=
 			     IEEE80211_MAX_MESH_ID_LEN);
-		wdev->mesh_id_up_len =
+		wdev->u.mesh.id_up_len =
 			nla_len(info->attrs[NL80211_ATTR_MESH_ID]);
-		memcpy(wdev->ssid, nla_data(info->attrs[NL80211_ATTR_MESH_ID]),
-		       wdev->mesh_id_up_len);
+		memcpy(wdev->u.mesh.id,
+		       nla_data(info->attrs[NL80211_ATTR_MESH_ID]),
+		       wdev->u.mesh.id_up_len);
 		wdev_unlock(wdev);
 	}
 
@@ -4026,10 +4283,11 @@
 		wdev_lock(wdev);
 		BUILD_BUG_ON(IEEE80211_MAX_SSID_LEN !=
 			     IEEE80211_MAX_MESH_ID_LEN);
-		wdev->mesh_id_up_len =
+		wdev->u.mesh.id_up_len =
 			nla_len(info->attrs[NL80211_ATTR_MESH_ID]);
-		memcpy(wdev->ssid, nla_data(info->attrs[NL80211_ATTR_MESH_ID]),
-		       wdev->mesh_id_up_len);
+		memcpy(wdev->u.mesh.id,
+		       nla_data(info->attrs[NL80211_ATTR_MESH_ID]),
+		       wdev->u.mesh.id_up_len);
 		wdev_unlock(wdev);
 		break;
 	case NL80211_IFTYPE_NAN:
@@ -4102,7 +4360,7 @@
 
 	mutex_lock(&rdev->wiphy.mtx);
 
-	return rdev_del_virtual_intf(rdev, wdev);
+	return cfg80211_remove_virtual_intf(rdev, wdev);
 }
 
 static int nl80211_set_noack_map(struct sk_buff *skb, struct genl_info *info)
@@ -4122,6 +4380,38 @@
 	return rdev_set_noack_map(rdev, dev, noack_map);
 }
 
+static int nl80211_validate_key_link_id(struct genl_info *info,
+					struct wireless_dev *wdev,
+					int link_id, bool pairwise)
+{
+	if (pairwise) {
+		if (link_id != -1) {
+			GENL_SET_ERR_MSG(info,
+					 "link ID not allowed for pairwise key");
+			return -EINVAL;
+		}
+
+		return 0;
+	}
+
+	if (wdev->valid_links) {
+		if (link_id == -1) {
+			GENL_SET_ERR_MSG(info,
+					 "link ID must for MLO group key");
+			return -EINVAL;
+		}
+		if (!(wdev->valid_links & BIT(link_id))) {
+			GENL_SET_ERR_MSG(info, "invalid link ID for MLO group key");
+			return -EINVAL;
+		}
+	} else if (link_id != -1) {
+		GENL_SET_ERR_MSG(info, "link ID not allowed for non-MLO group key");
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
 struct get_key_cookie {
 	struct sk_buff *msg;
 	int error;
@@ -4183,13 +4473,15 @@
 	void *hdr;
 	struct sk_buff *msg;
 	bool bigtk_support = false;
+	int link_id = nl80211_link_id_or_invalid(info->attrs);
+	struct wireless_dev *wdev = dev->ieee80211_ptr;
 
 	if (wiphy_ext_feature_isset(&rdev->wiphy,
 				    NL80211_EXT_FEATURE_BEACON_PROTECTION))
 		bigtk_support = true;
 
-	if ((dev->ieee80211_ptr->iftype == NL80211_IFTYPE_STATION ||
-	     dev->ieee80211_ptr->iftype == NL80211_IFTYPE_P2P_CLIENT) &&
+	if ((wdev->iftype == NL80211_IFTYPE_STATION ||
+	     wdev->iftype == NL80211_IFTYPE_P2P_CLIENT) &&
 	    wiphy_ext_feature_isset(&rdev->wiphy,
 				    NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT))
 		bigtk_support = true;
@@ -4241,8 +4533,12 @@
 	    nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, mac_addr))
 		goto nla_put_failure;
 
-	err = rdev_get_key(rdev, dev, key_idx, pairwise, mac_addr, &cookie,
-			   get_key_callback);
+	err = nl80211_validate_key_link_id(info, wdev, link_id, pairwise);
+	if (err)
+		goto free_msg;
+
+	err = rdev_get_key(rdev, dev, link_id, key_idx, pairwise, mac_addr,
+			   &cookie, get_key_callback);
 
 	if (err)
 		goto free_msg;
@@ -4266,6 +4562,8 @@
 	struct key_parse key;
 	int err;
 	struct net_device *dev = info->user_ptr[1];
+	int link_id = nl80211_link_id_or_invalid(info->attrs);
+	struct wireless_dev *wdev = dev->ieee80211_ptr;
 
 	err = nl80211_parse_key(info, &key);
 	if (err)
@@ -4281,7 +4579,7 @@
 	    !(key.p.mode == NL80211_KEY_SET_TX))
 		return -EINVAL;
 
-	wdev_lock(dev->ieee80211_ptr);
+	wdev_lock(wdev);
 
 	if (key.def) {
 		if (!rdev->ops->set_default_key) {
@@ -4289,18 +4587,22 @@
 			goto out;
 		}
 
-		err = nl80211_key_allowed(dev->ieee80211_ptr);
+		err = nl80211_key_allowed(wdev);
 		if (err)
 			goto out;
 
-		err = rdev_set_default_key(rdev, dev, key.idx,
-						 key.def_uni, key.def_multi);
+		err = nl80211_validate_key_link_id(info, wdev, link_id, false);
+		if (err)
+			goto out;
+
+		err = rdev_set_default_key(rdev, dev, link_id, key.idx,
+					   key.def_uni, key.def_multi);
 
 		if (err)
 			goto out;
 
 #ifdef CONFIG_CFG80211_WEXT
-		dev->ieee80211_ptr->wext.default_key = key.idx;
+		wdev->wext.default_key = key.idx;
 #endif
 	} else if (key.defmgmt) {
 		if (key.def_uni || !key.def_multi) {
@@ -4313,16 +4615,20 @@
 			goto out;
 		}
 
-		err = nl80211_key_allowed(dev->ieee80211_ptr);
+		err = nl80211_key_allowed(wdev);
 		if (err)
 			goto out;
 
-		err = rdev_set_default_mgmt_key(rdev, dev, key.idx);
+		err = nl80211_validate_key_link_id(info, wdev, link_id, false);
+		if (err)
+			goto out;
+
+		err = rdev_set_default_mgmt_key(rdev, dev, link_id, key.idx);
 		if (err)
 			goto out;
 
 #ifdef CONFIG_CFG80211_WEXT
-		dev->ieee80211_ptr->wext.default_mgmt_key = key.idx;
+		wdev->wext.default_mgmt_key = key.idx;
 #endif
 	} else if (key.defbeacon) {
 		if (key.def_uni || !key.def_multi) {
@@ -4335,11 +4641,15 @@
 			goto out;
 		}
 
-		err = nl80211_key_allowed(dev->ieee80211_ptr);
+		err = nl80211_key_allowed(wdev);
 		if (err)
 			goto out;
 
-		err = rdev_set_default_beacon_key(rdev, dev, key.idx);
+		err = nl80211_validate_key_link_id(info, wdev, link_id, false);
+		if (err)
+			goto out;
+
+		err = rdev_set_default_beacon_key(rdev, dev, link_id, key.idx);
 		if (err)
 			goto out;
 	} else if (key.p.mode == NL80211_KEY_SET_TX &&
@@ -4355,14 +4665,18 @@
 			goto out;
 		}
 
-		err = rdev_add_key(rdev, dev, key.idx,
+		err = nl80211_validate_key_link_id(info, wdev, link_id, true);
+		if (err)
+			goto out;
+
+		err = rdev_add_key(rdev, dev, link_id, key.idx,
 				   NL80211_KEYTYPE_PAIRWISE,
 				   mac_addr, &key.p);
 	} else {
 		err = -EINVAL;
 	}
  out:
-	wdev_unlock(dev->ieee80211_ptr);
+	wdev_unlock(wdev);
 
 	return err;
 }
@@ -4374,6 +4688,8 @@
 	struct net_device *dev = info->user_ptr[1];
 	struct key_parse key;
 	const u8 *mac_addr = NULL;
+	int link_id = nl80211_link_id_or_invalid(info->attrs);
+	struct wireless_dev *wdev = dev->ieee80211_ptr;
 
 	err = nl80211_parse_key(info, &key);
 	if (err)
@@ -4415,18 +4731,23 @@
 		return -EINVAL;
 	}
 
-	wdev_lock(dev->ieee80211_ptr);
-	err = nl80211_key_allowed(dev->ieee80211_ptr);
+	wdev_lock(wdev);
+	err = nl80211_key_allowed(wdev);
 	if (err)
 		GENL_SET_ERR_MSG(info, "key not allowed");
+
+	if (!err)
+		err = nl80211_validate_key_link_id(info, wdev, link_id,
+				key.type == NL80211_KEYTYPE_PAIRWISE);
+
 	if (!err) {
-		err = rdev_add_key(rdev, dev, key.idx,
+		err = rdev_add_key(rdev, dev, link_id, key.idx,
 				   key.type == NL80211_KEYTYPE_PAIRWISE,
 				    mac_addr, &key.p);
 		if (err)
 			GENL_SET_ERR_MSG(info, "key addition failed");
 	}
-	wdev_unlock(dev->ieee80211_ptr);
+	wdev_unlock(wdev);
 
 	return err;
 }
@@ -4438,6 +4759,8 @@
 	struct net_device *dev = info->user_ptr[1];
 	u8 *mac_addr = NULL;
 	struct key_parse key;
+	int link_id = nl80211_link_id_or_invalid(info->attrs);
+	struct wireless_dev *wdev = dev->ieee80211_ptr;
 
 	err = nl80211_parse_key(info, &key);
 	if (err)
@@ -4465,27 +4788,31 @@
 	if (!rdev->ops->del_key)
 		return -EOPNOTSUPP;
 
-	wdev_lock(dev->ieee80211_ptr);
-	err = nl80211_key_allowed(dev->ieee80211_ptr);
+	wdev_lock(wdev);
+	err = nl80211_key_allowed(wdev);
 
 	if (key.type == NL80211_KEYTYPE_GROUP && mac_addr &&
 	    !(rdev->wiphy.flags & WIPHY_FLAG_IBSS_RSN))
 		err = -ENOENT;
 
 	if (!err)
-		err = rdev_del_key(rdev, dev, key.idx,
+		err = nl80211_validate_key_link_id(info, wdev, link_id,
+				key.type == NL80211_KEYTYPE_PAIRWISE);
+
+	if (!err)
+		err = rdev_del_key(rdev, dev, link_id, key.idx,
 				   key.type == NL80211_KEYTYPE_PAIRWISE,
 				   mac_addr);
 
 #ifdef CONFIG_CFG80211_WEXT
 	if (!err) {
-		if (key.idx == dev->ieee80211_ptr->wext.default_key)
-			dev->ieee80211_ptr->wext.default_key = -1;
-		else if (key.idx == dev->ieee80211_ptr->wext.default_mgmt_key)
-			dev->ieee80211_ptr->wext.default_mgmt_key = -1;
+		if (key.idx == wdev->wext.default_key)
+			wdev->wext.default_key = -1;
+		else if (key.idx == wdev->wext.default_mgmt_key)
+			wdev->wext.default_mgmt_key = -1;
 	}
 #endif
-	wdev_unlock(dev->ieee80211_ptr);
+	wdev_unlock(wdev);
 
 	return err;
 }
@@ -4566,7 +4893,7 @@
 	    dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_GO)
 		return -EOPNOTSUPP;
 
-	if (!dev->ieee80211_ptr->beacon_interval)
+	if (!dev->ieee80211_ptr->links[0].ap.beacon_interval)
 		return -EINVAL;
 
 	acl = parse_acl_data(&rdev->wiphy, info);
@@ -4722,14 +5049,24 @@
 	}
 }
 
-static u16 he_get_txmcsmap(struct genl_info *info,
+static u16 he_get_txmcsmap(struct genl_info *info, unsigned int link_id,
 			   const struct ieee80211_sta_he_cap *he_cap)
 {
 	struct net_device *dev = info->user_ptr[1];
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
-	__le16	tx_mcs;
+	struct cfg80211_chan_def *chandef;
+	__le16 tx_mcs;
 
-	switch (wdev->chandef.width) {
+	chandef = wdev_chandef(wdev, link_id);
+	if (!chandef) {
+		/*
+		 * This is probably broken, but we never maintained
+		 * a chandef in these cases, so it always was.
+		 */
+		return le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_80);
+	}
+
+	switch (chandef->width) {
 	case NL80211_CHAN_WIDTH_80P80:
 		tx_mcs = he_cap->he_mcs_nss_supp.tx_mcs_80p80;
 		break;
@@ -4740,6 +5077,7 @@
 		tx_mcs = he_cap->he_mcs_nss_supp.tx_mcs_80;
 		break;
 	}
+
 	return le16_to_cpu(tx_mcs);
 }
 
@@ -4747,7 +5085,8 @@
 			    struct wireless_dev *wdev,
 			    struct ieee80211_supported_band *sband,
 			    struct nl80211_txrate_he *txrate,
-			    u16 mcs[NL80211_HE_NSS_MAX])
+			    u16 mcs[NL80211_HE_NSS_MAX],
+			    unsigned int link_id)
 {
 	const struct ieee80211_sta_he_cap *he_cap;
 	u16 tx_mcs_mask[NL80211_HE_NSS_MAX] = {};
@@ -4760,7 +5099,7 @@
 
 	memset(mcs, 0, sizeof(u16) * NL80211_HE_NSS_MAX);
 
-	tx_mcs_map = he_get_txmcsmap(info, he_cap);
+	tx_mcs_map = he_get_txmcsmap(info, link_id, he_cap);
 
 	/* Build he_mcs_mask from HE capabilities */
 	he_build_mcs_mask(tx_mcs_map, tx_mcs_mask);
@@ -4780,7 +5119,8 @@
 					 enum nl80211_attrs attr,
 					 struct cfg80211_bitrate_mask *mask,
 					 struct net_device *dev,
-					 bool default_all_enabled)
+					 bool default_all_enabled,
+					 unsigned int link_id)
 {
 	struct nlattr *tb[NL80211_TXRATE_MAX + 1];
 	struct cfg80211_registered_device *rdev = info->user_ptr[0];
@@ -4817,7 +5157,7 @@
 		if (!he_cap)
 			continue;
 
-		he_tx_mcs_map = he_get_txmcsmap(info, he_cap);
+		he_tx_mcs_map = he_get_txmcsmap(info, link_id, he_cap);
 		he_build_mcs_mask(he_tx_mcs_map, mask->control[i].he_mcs);
 
 		mask->control[i].he_gi = 0xFF;
@@ -4882,7 +5222,8 @@
 		if (tb[NL80211_TXRATE_HE] &&
 		    !he_set_mcs_mask(info, wdev, sband,
 				     nla_data(tb[NL80211_TXRATE_HE]),
-				     mask->control[band].he_mcs))
+				     mask->control[band].he_mcs,
+				     link_id))
 			return -EINVAL;
 
 		if (tb[NL80211_TXRATE_HE_GI])
@@ -4996,6 +5337,120 @@
 	return 0;
 }
 
+static int nl80211_parse_mbssid_config(struct wiphy *wiphy,
+				       struct net_device *dev,
+				       struct nlattr *attrs,
+				       struct cfg80211_mbssid_config *config,
+				       u8 num_elems)
+{
+	struct nlattr *tb[NL80211_MBSSID_CONFIG_ATTR_MAX + 1];
+
+	if (!wiphy->mbssid_max_interfaces)
+		return -EOPNOTSUPP;
+
+	if (nla_parse_nested(tb, NL80211_MBSSID_CONFIG_ATTR_MAX, attrs, NULL,
+			     NULL) ||
+	    !tb[NL80211_MBSSID_CONFIG_ATTR_INDEX])
+		return -EINVAL;
+
+	config->ema = nla_get_flag(tb[NL80211_MBSSID_CONFIG_ATTR_EMA]);
+	if (config->ema) {
+		if (!wiphy->ema_max_profile_periodicity)
+			return -EOPNOTSUPP;
+
+		if (num_elems > wiphy->ema_max_profile_periodicity)
+			return -EINVAL;
+	}
+
+	config->index = nla_get_u8(tb[NL80211_MBSSID_CONFIG_ATTR_INDEX]);
+	if (config->index >= wiphy->mbssid_max_interfaces ||
+	    (!config->index && !num_elems))
+		return -EINVAL;
+
+	if (tb[NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX]) {
+		u32 tx_ifindex =
+			nla_get_u32(tb[NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX]);
+
+		if ((!config->index && tx_ifindex != dev->ifindex) ||
+		    (config->index && tx_ifindex == dev->ifindex))
+			return -EINVAL;
+
+		if (tx_ifindex != dev->ifindex) {
+			struct net_device *tx_netdev =
+				dev_get_by_index(wiphy_net(wiphy), tx_ifindex);
+
+			if (!tx_netdev || !tx_netdev->ieee80211_ptr ||
+			    tx_netdev->ieee80211_ptr->wiphy != wiphy ||
+			    tx_netdev->ieee80211_ptr->iftype !=
+							NL80211_IFTYPE_AP) {
+				dev_put(tx_netdev);
+				return -EINVAL;
+			}
+
+			config->tx_wdev = tx_netdev->ieee80211_ptr;
+		} else {
+			config->tx_wdev = dev->ieee80211_ptr;
+		}
+	} else if (!config->index) {
+		config->tx_wdev = dev->ieee80211_ptr;
+	} else {
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static struct cfg80211_mbssid_elems *
+nl80211_parse_mbssid_elems(struct wiphy *wiphy, struct nlattr *attrs)
+{
+	struct nlattr *nl_elems;
+	struct cfg80211_mbssid_elems *elems;
+	int rem_elems;
+	u8 i = 0, num_elems = 0;
+
+	if (!wiphy->mbssid_max_interfaces)
+		return ERR_PTR(-EINVAL);
+
+	nla_for_each_nested(nl_elems, attrs, rem_elems)
+		num_elems++;
+
+	elems = kzalloc(struct_size(elems, elem, num_elems), GFP_KERNEL);
+	if (!elems)
+		return ERR_PTR(-ENOMEM);
+
+	nla_for_each_nested(nl_elems, attrs, rem_elems) {
+		elems->elem[i].data = nla_data(nl_elems);
+		elems->elem[i].len = nla_len(nl_elems);
+		i++;
+	}
+	elems->cnt = num_elems;
+	return elems;
+}
+
+static int nl80211_parse_he_bss_color(struct nlattr *attrs,
+				      struct cfg80211_he_bss_color *he_bss_color)
+{
+	struct nlattr *tb[NL80211_HE_BSS_COLOR_ATTR_MAX + 1];
+	int err;
+
+	err = nla_parse_nested(tb, NL80211_HE_BSS_COLOR_ATTR_MAX, attrs,
+			       he_bss_color_policy, NULL);
+	if (err)
+		return err;
+
+	if (!tb[NL80211_HE_BSS_COLOR_ATTR_COLOR])
+		return -EINVAL;
+
+	he_bss_color->color =
+		nla_get_u8(tb[NL80211_HE_BSS_COLOR_ATTR_COLOR]);
+	he_bss_color->enabled =
+		!nla_get_flag(tb[NL80211_HE_BSS_COLOR_ATTR_DISABLED]);
+	he_bss_color->partial =
+		nla_get_flag(tb[NL80211_HE_BSS_COLOR_ATTR_PARTIAL]);
+
+	return 0;
+}
+
 static int nl80211_parse_beacon(struct cfg80211_registered_device *rdev,
 				struct nlattr *attrs[],
 				struct cfg80211_beacon_data *bcn)
@@ -5005,6 +5460,8 @@
 
 	memset(bcn, 0, sizeof(*bcn));
 
+	bcn->link_id = nl80211_link_id(attrs);
+
 	if (attrs[NL80211_ATTR_BEACON_HEAD]) {
 		bcn->head = nla_data(attrs[NL80211_ATTR_BEACON_HEAD]);
 		bcn->head_len = nla_len(attrs[NL80211_ATTR_BEACON_HEAD]);
@@ -5076,6 +5533,25 @@
 		bcn->ftm_responder = -1;
 	}
 
+	if (attrs[NL80211_ATTR_HE_BSS_COLOR]) {
+		err = nl80211_parse_he_bss_color(attrs[NL80211_ATTR_HE_BSS_COLOR],
+						 &bcn->he_bss_color);
+		if (err)
+			return err;
+		bcn->he_bss_color_valid = true;
+	}
+
+	if (attrs[NL80211_ATTR_MBSSID_ELEMS]) {
+		struct cfg80211_mbssid_elems *mbssid =
+			nl80211_parse_mbssid_elems(&rdev->wiphy,
+						   attrs[NL80211_ATTR_MBSSID_ELEMS]);
+
+		if (IS_ERR(mbssid))
+			return PTR_ERR(mbssid);
+
+		bcn->mbssid_ies = mbssid;
+	}
+
 	return 0;
 }
 
@@ -5123,30 +5599,6 @@
 	return 0;
 }
 
-static int nl80211_parse_he_bss_color(struct nlattr *attrs,
-				      struct cfg80211_he_bss_color *he_bss_color)
-{
-	struct nlattr *tb[NL80211_HE_BSS_COLOR_ATTR_MAX + 1];
-	int err;
-
-	err = nla_parse_nested(tb, NL80211_HE_BSS_COLOR_ATTR_MAX, attrs,
-			       he_bss_color_policy, NULL);
-	if (err)
-		return err;
-
-	if (!tb[NL80211_HE_BSS_COLOR_ATTR_COLOR])
-		return -EINVAL;
-
-	he_bss_color->color =
-		nla_get_u8(tb[NL80211_HE_BSS_COLOR_ATTR_COLOR]);
-	he_bss_color->enabled =
-		!nla_get_flag(tb[NL80211_HE_BSS_COLOR_ATTR_DISABLED]);
-	he_bss_color->partial =
-		nla_get_flag(tb[NL80211_HE_BSS_COLOR_ATTR_PARTIAL]);
-
-	return 0;
-}
-
 static int nl80211_parse_fils_discovery(struct cfg80211_registered_device *rdev,
 					struct nlattr *attrs,
 					struct cfg80211_ap_settings *params)
@@ -5207,21 +5659,21 @@
 }
 
 static void nl80211_check_ap_rate_selectors(struct cfg80211_ap_settings *params,
-					    const u8 *rates)
+					    const struct element *rates)
 {
 	int i;
 
 	if (!rates)
 		return;
 
-	for (i = 0; i < rates[1]; i++) {
-		if (rates[2 + i] == BSS_MEMBERSHIP_SELECTOR_HT_PHY)
+	for (i = 0; i < rates->datalen; i++) {
+		if (rates->data[i] == BSS_MEMBERSHIP_SELECTOR_HT_PHY)
 			params->ht_required = true;
-		if (rates[2 + i] == BSS_MEMBERSHIP_SELECTOR_VHT_PHY)
+		if (rates->data[i] == BSS_MEMBERSHIP_SELECTOR_VHT_PHY)
 			params->vht_required = true;
-		if (rates[2 + i] == BSS_MEMBERSHIP_SELECTOR_HE_PHY)
+		if (rates->data[i] == BSS_MEMBERSHIP_SELECTOR_HE_PHY)
 			params->he_required = true;
-		if (rates[2 + i] == BSS_MEMBERSHIP_SELECTOR_SAE_H2E)
+		if (rates->data[i] == BSS_MEMBERSHIP_SELECTOR_SAE_H2E)
 			params->sae_h2e_required = true;
 	}
 }
@@ -5231,54 +5683,72 @@
  * HT/VHT requirements/capabilities, we parse them out of the IEs for the
  * benefit of drivers that rebuild IEs in the firmware.
  */
-static void nl80211_calculate_ap_params(struct cfg80211_ap_settings *params)
+static int nl80211_calculate_ap_params(struct cfg80211_ap_settings *params)
 {
 	const struct cfg80211_beacon_data *bcn = &params->beacon;
 	size_t ies_len = bcn->tail_len;
 	const u8 *ies = bcn->tail;
-	const u8 *rates;
-	const u8 *cap;
+	const struct element *rates;
+	const struct element *cap;
 
-	rates = cfg80211_find_ie(WLAN_EID_SUPP_RATES, ies, ies_len);
+	rates = cfg80211_find_elem(WLAN_EID_SUPP_RATES, ies, ies_len);
 	nl80211_check_ap_rate_selectors(params, rates);
 
-	rates = cfg80211_find_ie(WLAN_EID_EXT_SUPP_RATES, ies, ies_len);
+	rates = cfg80211_find_elem(WLAN_EID_EXT_SUPP_RATES, ies, ies_len);
 	nl80211_check_ap_rate_selectors(params, rates);
 
-	cap = cfg80211_find_ie(WLAN_EID_HT_CAPABILITY, ies, ies_len);
-	if (cap && cap[1] >= sizeof(*params->ht_cap))
-		params->ht_cap = (void *)(cap + 2);
-	cap = cfg80211_find_ie(WLAN_EID_VHT_CAPABILITY, ies, ies_len);
-	if (cap && cap[1] >= sizeof(*params->vht_cap))
-		params->vht_cap = (void *)(cap + 2);
-	cap = cfg80211_find_ext_ie(WLAN_EID_EXT_HE_CAPABILITY, ies, ies_len);
-	if (cap && cap[1] >= sizeof(*params->he_cap) + 1)
-		params->he_cap = (void *)(cap + 3);
-	cap = cfg80211_find_ext_ie(WLAN_EID_EXT_HE_OPERATION, ies, ies_len);
-	if (cap && cap[1] >= sizeof(*params->he_oper) + 1)
-		params->he_oper = (void *)(cap + 3);
+	cap = cfg80211_find_elem(WLAN_EID_HT_CAPABILITY, ies, ies_len);
+	if (cap && cap->datalen >= sizeof(*params->ht_cap))
+		params->ht_cap = (void *)cap->data;
+	cap = cfg80211_find_elem(WLAN_EID_VHT_CAPABILITY, ies, ies_len);
+	if (cap && cap->datalen >= sizeof(*params->vht_cap))
+		params->vht_cap = (void *)cap->data;
+	cap = cfg80211_find_ext_elem(WLAN_EID_EXT_HE_CAPABILITY, ies, ies_len);
+	if (cap && cap->datalen >= sizeof(*params->he_cap) + 1)
+		params->he_cap = (void *)(cap->data + 1);
+	cap = cfg80211_find_ext_elem(WLAN_EID_EXT_HE_OPERATION, ies, ies_len);
+	if (cap && cap->datalen >= sizeof(*params->he_oper) + 1)
+		params->he_oper = (void *)(cap->data + 1);
+	cap = cfg80211_find_ext_elem(WLAN_EID_EXT_EHT_CAPABILITY, ies, ies_len);
+	if (cap) {
+		if (!cap->datalen)
+			return -EINVAL;
+		params->eht_cap = (void *)(cap->data + 1);
+		if (!ieee80211_eht_capa_size_ok((const u8 *)params->he_cap,
+						(const u8 *)params->eht_cap,
+						cap->datalen - 1, true))
+			return -EINVAL;
+	}
+	cap = cfg80211_find_ext_elem(WLAN_EID_EXT_EHT_OPERATION, ies, ies_len);
+	if (cap) {
+		if (!cap->datalen)
+			return -EINVAL;
+		params->eht_oper = (void *)(cap->data + 1);
+		if (!ieee80211_eht_oper_size_ok((const u8 *)params->eht_oper,
+						cap->datalen - 1))
+			return -EINVAL;
+	}
+	return 0;
 }
 
 static bool nl80211_get_ap_channel(struct cfg80211_registered_device *rdev,
 				   struct cfg80211_ap_settings *params)
 {
 	struct wireless_dev *wdev;
-	bool ret = false;
 
 	list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) {
 		if (wdev->iftype != NL80211_IFTYPE_AP &&
 		    wdev->iftype != NL80211_IFTYPE_P2P_GO)
 			continue;
 
-		if (!wdev->preset_chandef.chan)
+		if (!wdev->u.ap.preset_chandef.chan)
 			continue;
 
-		params->chandef = wdev->preset_chandef;
-		ret = true;
-		break;
+		params->chandef = wdev->u.ap.preset_chandef;
+		return true;
 	}
 
-	return ret;
+	return false;
 }
 
 static bool nl80211_valid_auth_type(struct cfg80211_registered_device *rdev,
@@ -5336,9 +5806,10 @@
 static int nl80211_start_ap(struct sk_buff *skb, struct genl_info *info)
 {
 	struct cfg80211_registered_device *rdev = info->user_ptr[0];
+	unsigned int link_id = nl80211_link_id(info->attrs);
 	struct net_device *dev = info->user_ptr[1];
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
-	struct cfg80211_ap_settings params;
+	struct cfg80211_ap_settings *params;
 	int err;
 
 	if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_AP &&
@@ -5348,30 +5819,32 @@
 	if (!rdev->ops->start_ap)
 		return -EOPNOTSUPP;
 
-	if (wdev->beacon_interval)
+	if (wdev->links[link_id].ap.beacon_interval)
 		return -EALREADY;
 
-	memset(&params, 0, sizeof(params));
-
 	/* these are required for START_AP */
 	if (!info->attrs[NL80211_ATTR_BEACON_INTERVAL] ||
 	    !info->attrs[NL80211_ATTR_DTIM_PERIOD] ||
 	    !info->attrs[NL80211_ATTR_BEACON_HEAD])
 		return -EINVAL;
 
-	err = nl80211_parse_beacon(rdev, info->attrs, &params.beacon);
-	if (err)
-		return err;
+	params = kzalloc(sizeof(*params), GFP_KERNEL);
+	if (!params)
+		return -ENOMEM;
 
-	params.beacon_interval =
+	err = nl80211_parse_beacon(rdev, info->attrs, &params->beacon);
+	if (err)
+		goto out;
+
+	params->beacon_interval =
 		nla_get_u32(info->attrs[NL80211_ATTR_BEACON_INTERVAL]);
-	params.dtim_period =
+	params->dtim_period =
 		nla_get_u32(info->attrs[NL80211_ATTR_DTIM_PERIOD]);
 
 	err = cfg80211_validate_beacon_int(rdev, dev->ieee80211_ptr->iftype,
-					   params.beacon_interval);
+					   params->beacon_interval);
 	if (err)
-		return err;
+		goto out;
 
 	/*
 	 * In theory, some of these attributes should be required here
@@ -5381,178 +5854,254 @@
 	 * additional information -- drivers must check!
 	 */
 	if (info->attrs[NL80211_ATTR_SSID]) {
-		params.ssid = nla_data(info->attrs[NL80211_ATTR_SSID]);
-		params.ssid_len =
+		params->ssid = nla_data(info->attrs[NL80211_ATTR_SSID]);
+		params->ssid_len =
 			nla_len(info->attrs[NL80211_ATTR_SSID]);
-		if (params.ssid_len == 0)
-			return -EINVAL;
+		if (params->ssid_len == 0) {
+			err = -EINVAL;
+			goto out;
+		}
+
+		if (wdev->u.ap.ssid_len &&
+		    (wdev->u.ap.ssid_len != params->ssid_len ||
+		     memcmp(wdev->u.ap.ssid, params->ssid, params->ssid_len))) {
+			/* require identical SSID for MLO */
+			err = -EINVAL;
+			goto out;
+		}
+	} else if (wdev->valid_links) {
+		/* require SSID for MLO */
+		err = -EINVAL;
+		goto out;
 	}
 
 	if (info->attrs[NL80211_ATTR_HIDDEN_SSID])
-		params.hidden_ssid = nla_get_u32(
+		params->hidden_ssid = nla_get_u32(
 			info->attrs[NL80211_ATTR_HIDDEN_SSID]);
 
-	params.privacy = !!info->attrs[NL80211_ATTR_PRIVACY];
+	params->privacy = !!info->attrs[NL80211_ATTR_PRIVACY];
 
 	if (info->attrs[NL80211_ATTR_AUTH_TYPE]) {
-		params.auth_type = nla_get_u32(
+		params->auth_type = nla_get_u32(
 			info->attrs[NL80211_ATTR_AUTH_TYPE]);
-		if (!nl80211_valid_auth_type(rdev, params.auth_type,
-					     NL80211_CMD_START_AP))
-			return -EINVAL;
+		if (!nl80211_valid_auth_type(rdev, params->auth_type,
+					     NL80211_CMD_START_AP)) {
+			err = -EINVAL;
+			goto out;
+		}
 	} else
-		params.auth_type = NL80211_AUTHTYPE_AUTOMATIC;
+		params->auth_type = NL80211_AUTHTYPE_AUTOMATIC;
 
-	err = nl80211_crypto_settings(rdev, info, &params.crypto,
+	err = nl80211_crypto_settings(rdev, info, &params->crypto,
 				      NL80211_MAX_NR_CIPHER_SUITES);
 	if (err)
-		return err;
+		goto out;
 
 	if (info->attrs[NL80211_ATTR_INACTIVITY_TIMEOUT]) {
-		if (!(rdev->wiphy.features & NL80211_FEATURE_INACTIVITY_TIMER))
-			return -EOPNOTSUPP;
-		params.inactivity_timeout = nla_get_u16(
+		if (!(rdev->wiphy.features & NL80211_FEATURE_INACTIVITY_TIMER)) {
+			err = -EOPNOTSUPP;
+			goto out;
+		}
+		params->inactivity_timeout = nla_get_u16(
 			info->attrs[NL80211_ATTR_INACTIVITY_TIMEOUT]);
 	}
 
 	if (info->attrs[NL80211_ATTR_P2P_CTWINDOW]) {
-		if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_GO)
-			return -EINVAL;
-		params.p2p_ctwindow =
+		if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_GO) {
+			err = -EINVAL;
+			goto out;
+		}
+		params->p2p_ctwindow =
 			nla_get_u8(info->attrs[NL80211_ATTR_P2P_CTWINDOW]);
-		if (params.p2p_ctwindow != 0 &&
-		    !(rdev->wiphy.features & NL80211_FEATURE_P2P_GO_CTWIN))
-			return -EINVAL;
+		if (params->p2p_ctwindow != 0 &&
+		    !(rdev->wiphy.features & NL80211_FEATURE_P2P_GO_CTWIN)) {
+			err = -EINVAL;
+			goto out;
+		}
 	}
 
 	if (info->attrs[NL80211_ATTR_P2P_OPPPS]) {
 		u8 tmp;
 
-		if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_GO)
-			return -EINVAL;
+		if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_GO) {
+			err = -EINVAL;
+			goto out;
+		}
 		tmp = nla_get_u8(info->attrs[NL80211_ATTR_P2P_OPPPS]);
-		params.p2p_opp_ps = tmp;
-		if (params.p2p_opp_ps != 0 &&
-		    !(rdev->wiphy.features & NL80211_FEATURE_P2P_GO_OPPPS))
-			return -EINVAL;
+		params->p2p_opp_ps = tmp;
+		if (params->p2p_opp_ps != 0 &&
+		    !(rdev->wiphy.features & NL80211_FEATURE_P2P_GO_OPPPS)) {
+			err = -EINVAL;
+			goto out;
+		}
 	}
 
 	if (info->attrs[NL80211_ATTR_WIPHY_FREQ]) {
-		err = nl80211_parse_chandef(rdev, info, &params.chandef);
+		err = nl80211_parse_chandef(rdev, info, &params->chandef);
 		if (err)
-			return err;
-	} else if (wdev->preset_chandef.chan) {
-		params.chandef = wdev->preset_chandef;
-	} else if (!nl80211_get_ap_channel(rdev, &params))
-		return -EINVAL;
+			goto out;
+	} else if (wdev->valid_links) {
+		/* with MLD need to specify the channel configuration */
+		err = -EINVAL;
+		goto out;
+	} else if (wdev->u.ap.preset_chandef.chan) {
+		params->chandef = wdev->u.ap.preset_chandef;
+	} else if (!nl80211_get_ap_channel(rdev, params)) {
+		err = -EINVAL;
+		goto out;
+	}
 
-	if (!cfg80211_reg_can_beacon_relax(&rdev->wiphy, &params.chandef,
-					   wdev->iftype))
-		return -EINVAL;
+	if (info->attrs[NL80211_ATTR_PUNCT_BITMAP]) {
+		err = nl80211_parse_punct_bitmap(rdev, info,
+						 &params->chandef,
+						 &params->punct_bitmap);
+		if (err)
+			goto out;
+	}
+
+	if (!cfg80211_reg_can_beacon_relax(&rdev->wiphy, &params->chandef,
+					   wdev->iftype)) {
+		err = -EINVAL;
+		goto out;
+	}
+
+	wdev_lock(wdev);
 
 	if (info->attrs[NL80211_ATTR_TX_RATES]) {
 		err = nl80211_parse_tx_bitrate_mask(info, info->attrs,
 						    NL80211_ATTR_TX_RATES,
-						    &params.beacon_rate,
-						    dev, false);
+						    &params->beacon_rate,
+						    dev, false, link_id);
 		if (err)
-			return err;
+			goto out_unlock;
 
-		err = validate_beacon_tx_rate(rdev, params.chandef.chan->band,
-					      &params.beacon_rate);
+		err = validate_beacon_tx_rate(rdev, params->chandef.chan->band,
+					      &params->beacon_rate);
 		if (err)
-			return err;
+			goto out_unlock;
 	}
 
 	if (info->attrs[NL80211_ATTR_SMPS_MODE]) {
-		params.smps_mode =
+		params->smps_mode =
 			nla_get_u8(info->attrs[NL80211_ATTR_SMPS_MODE]);
-		switch (params.smps_mode) {
+		switch (params->smps_mode) {
 		case NL80211_SMPS_OFF:
 			break;
 		case NL80211_SMPS_STATIC:
 			if (!(rdev->wiphy.features &
-			      NL80211_FEATURE_STATIC_SMPS))
-				return -EINVAL;
+			      NL80211_FEATURE_STATIC_SMPS)) {
+				err = -EINVAL;
+				goto out_unlock;
+			}
 			break;
 		case NL80211_SMPS_DYNAMIC:
 			if (!(rdev->wiphy.features &
-			      NL80211_FEATURE_DYNAMIC_SMPS))
-				return -EINVAL;
+			      NL80211_FEATURE_DYNAMIC_SMPS)) {
+				err = -EINVAL;
+				goto out_unlock;
+			}
 			break;
 		default:
-			return -EINVAL;
+			err = -EINVAL;
+			goto out_unlock;
 		}
 	} else {
-		params.smps_mode = NL80211_SMPS_OFF;
+		params->smps_mode = NL80211_SMPS_OFF;
 	}
 
-	params.pbss = nla_get_flag(info->attrs[NL80211_ATTR_PBSS]);
-	if (params.pbss && !rdev->wiphy.bands[NL80211_BAND_60GHZ])
-		return -EOPNOTSUPP;
+	params->pbss = nla_get_flag(info->attrs[NL80211_ATTR_PBSS]);
+	if (params->pbss && !rdev->wiphy.bands[NL80211_BAND_60GHZ]) {
+		err = -EOPNOTSUPP;
+		goto out_unlock;
+	}
 
 	if (info->attrs[NL80211_ATTR_ACL_POLICY]) {
-		params.acl = parse_acl_data(&rdev->wiphy, info);
-		if (IS_ERR(params.acl))
-			return PTR_ERR(params.acl);
+		params->acl = parse_acl_data(&rdev->wiphy, info);
+		if (IS_ERR(params->acl)) {
+			err = PTR_ERR(params->acl);
+			params->acl = NULL;
+			goto out_unlock;
+		}
 	}
 
-	params.twt_responder =
+	params->twt_responder =
 		    nla_get_flag(info->attrs[NL80211_ATTR_TWT_RESPONDER]);
 
 	if (info->attrs[NL80211_ATTR_HE_OBSS_PD]) {
 		err = nl80211_parse_he_obss_pd(
 					info->attrs[NL80211_ATTR_HE_OBSS_PD],
-					&params.he_obss_pd);
+					&params->he_obss_pd);
 		if (err)
-			goto out;
-	}
-
-	if (info->attrs[NL80211_ATTR_HE_BSS_COLOR]) {
-		err = nl80211_parse_he_bss_color(
-					info->attrs[NL80211_ATTR_HE_BSS_COLOR],
-					&params.he_bss_color);
-		if (err)
-			goto out;
+			goto out_unlock;
 	}
 
 	if (info->attrs[NL80211_ATTR_FILS_DISCOVERY]) {
 		err = nl80211_parse_fils_discovery(rdev,
 						   info->attrs[NL80211_ATTR_FILS_DISCOVERY],
-						   &params);
+						   params);
 		if (err)
-			goto out;
+			goto out_unlock;
 	}
 
 	if (info->attrs[NL80211_ATTR_UNSOL_BCAST_PROBE_RESP]) {
 		err = nl80211_parse_unsol_bcast_probe_resp(
 			rdev, info->attrs[NL80211_ATTR_UNSOL_BCAST_PROBE_RESP],
-			&params);
+			params);
 		if (err)
-			goto out;
+			goto out_unlock;
 	}
 
-	nl80211_calculate_ap_params(&params);
+	if (info->attrs[NL80211_ATTR_MBSSID_CONFIG]) {
+		err = nl80211_parse_mbssid_config(&rdev->wiphy, dev,
+						  info->attrs[NL80211_ATTR_MBSSID_CONFIG],
+						  &params->mbssid_config,
+						  params->beacon.mbssid_ies ?
+							params->beacon.mbssid_ies->cnt :
+							0);
+		if (err)
+			goto out_unlock;
+	}
 
-	if (info->attrs[NL80211_ATTR_EXTERNAL_AUTH_SUPPORT])
-		params.flags |= AP_SETTINGS_EXTERNAL_AUTH_SUPPORT;
+	err = nl80211_calculate_ap_params(params);
+	if (err)
+		goto out_unlock;
 
-	wdev_lock(wdev);
-	err = rdev_start_ap(rdev, dev, &params);
+	if (info->attrs[NL80211_ATTR_AP_SETTINGS_FLAGS])
+		params->flags = nla_get_u32(
+			info->attrs[NL80211_ATTR_AP_SETTINGS_FLAGS]);
+	else if (info->attrs[NL80211_ATTR_EXTERNAL_AUTH_SUPPORT])
+		params->flags |= NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT;
+
+	if (wdev->conn_owner_nlportid &&
+	    info->attrs[NL80211_ATTR_SOCKET_OWNER] &&
+	    wdev->conn_owner_nlportid != info->snd_portid) {
+		err = -EINVAL;
+		goto out_unlock;
+	}
+
+	/* FIXME: validate MLO/link-id against driver capabilities */
+
+	err = rdev_start_ap(rdev, dev, params);
 	if (!err) {
-		wdev->preset_chandef = params.chandef;
-		wdev->beacon_interval = params.beacon_interval;
-		wdev->chandef = params.chandef;
-		wdev->ssid_len = params.ssid_len;
-		memcpy(wdev->ssid, params.ssid, wdev->ssid_len);
+		wdev->links[link_id].ap.beacon_interval = params->beacon_interval;
+		wdev->links[link_id].ap.chandef = params->chandef;
+		wdev->u.ap.ssid_len = params->ssid_len;
+		memcpy(wdev->u.ap.ssid, params->ssid,
+		       params->ssid_len);
 
 		if (info->attrs[NL80211_ATTR_SOCKET_OWNER])
 			wdev->conn_owner_nlportid = info->snd_portid;
 	}
+out_unlock:
 	wdev_unlock(wdev);
-
 out:
-	kfree(params.acl);
+	kfree(params->acl);
+	kfree(params->beacon.mbssid_ies);
+	if (params->mbssid_config.tx_wdev &&
+	    params->mbssid_config.tx_wdev->netdev &&
+	    params->mbssid_config.tx_wdev->netdev != dev)
+		dev_put(params->mbssid_config.tx_wdev->netdev);
+	kfree(params);
 
 	return err;
 }
@@ -5560,6 +6109,7 @@
 static int nl80211_set_beacon(struct sk_buff *skb, struct genl_info *info)
 {
 	struct cfg80211_registered_device *rdev = info->user_ptr[0];
+	unsigned int link_id = nl80211_link_id(info->attrs);
 	struct net_device *dev = info->user_ptr[1];
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
 	struct cfg80211_beacon_data params;
@@ -5572,26 +6122,29 @@
 	if (!rdev->ops->change_beacon)
 		return -EOPNOTSUPP;
 
-	if (!wdev->beacon_interval)
+	if (!wdev->links[link_id].ap.beacon_interval)
 		return -EINVAL;
 
 	err = nl80211_parse_beacon(rdev, info->attrs, &params);
 	if (err)
-		return err;
+		goto out;
 
 	wdev_lock(wdev);
 	err = rdev_change_beacon(rdev, dev, &params);
 	wdev_unlock(wdev);
 
+out:
+	kfree(params.mbssid_ies);
 	return err;
 }
 
 static int nl80211_stop_ap(struct sk_buff *skb, struct genl_info *info)
 {
 	struct cfg80211_registered_device *rdev = info->user_ptr[0];
+	unsigned int link_id = nl80211_link_id(info->attrs);
 	struct net_device *dev = info->user_ptr[1];
 
-	return cfg80211_stop_ap(rdev, dev, false);
+	return cfg80211_stop_ap(rdev, dev, link_id, false);
 }
 
 static const struct nla_policy sta_flags_policy[NL80211_STA_FLAG_MAX + 1] = {
@@ -5727,6 +6280,14 @@
 	case RATE_INFO_BW_HE_RU:
 		rate_flg = 0;
 		WARN_ON(!(info->flags & RATE_INFO_FLAGS_HE_MCS));
+		break;
+	case RATE_INFO_BW_320:
+		rate_flg = NL80211_RATE_INFO_320_MHZ_WIDTH;
+		break;
+	case RATE_INFO_BW_EHT_RU:
+		rate_flg = 0;
+		WARN_ON(!(info->flags & RATE_INFO_FLAGS_EHT_MCS));
+		break;
 	}
 
 	if (rate_flg && nla_put_flag(msg, rate_flg))
@@ -5759,6 +6320,17 @@
 		    nla_put_u8(msg, NL80211_RATE_INFO_HE_RU_ALLOC,
 			       info->he_ru_alloc))
 			return false;
+	} else if (info->flags & RATE_INFO_FLAGS_EHT_MCS) {
+		if (nla_put_u8(msg, NL80211_RATE_INFO_EHT_MCS, info->mcs))
+			return false;
+		if (nla_put_u8(msg, NL80211_RATE_INFO_EHT_NSS, info->nss))
+			return false;
+		if (nla_put_u8(msg, NL80211_RATE_INFO_EHT_GI, info->eht_gi))
+			return false;
+		if (info->bw == RATE_INFO_BW_EHT_RU &&
+		    nla_put_u8(msg, NL80211_RATE_INFO_EHT_RU_ALLOC,
+			       info->eht_ru_alloc))
+			return false;
 	}
 
 	nla_nest_end(msg, rate);
@@ -5996,6 +6568,22 @@
 		    sinfo->assoc_req_ies))
 		goto nla_put_failure;
 
+	if (sinfo->assoc_resp_ies_len &&
+	    nla_put(msg, NL80211_ATTR_RESP_IE, sinfo->assoc_resp_ies_len,
+		    sinfo->assoc_resp_ies))
+		goto nla_put_failure;
+
+	if (sinfo->mlo_params_valid) {
+		if (nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID,
+			       sinfo->assoc_link_id))
+			goto nla_put_failure;
+
+		if (!is_zero_ether_addr(sinfo->mld_addr) &&
+		    nla_put(msg, NL80211_ATTR_MLD_ADDR, ETH_ALEN,
+			    sinfo->mld_addr))
+			goto nla_put_failure;
+	}
+
 	cfg80211_sinfo_release_content(sinfo);
 	genlmsg_end(msg, hdr);
 	return 0;
@@ -6170,10 +6758,12 @@
 			return -EINVAL;
 		if (params->sta_modify_mask & STATION_PARAM_APPLY_CAPABILITY)
 			return -EINVAL;
-		if (params->supported_rates)
+		if (params->link_sta_params.supported_rates)
 			return -EINVAL;
-		if (params->ext_capab || params->ht_capa || params->vht_capa ||
-		    params->he_capa)
+		if (params->ext_capab || params->link_sta_params.ht_capa ||
+		    params->link_sta_params.vht_capa ||
+		    params->link_sta_params.he_capa ||
+		    params->link_sta_params.eht_capa)
 			return -EINVAL;
 	}
 
@@ -6221,7 +6811,7 @@
 			return -EINVAL;
 		/* force (at least) rates when authorizing */
 		if (params->sta_flags_set & BIT(NL80211_STA_FLAG_AUTHORIZED) &&
-		    !params->supported_rates)
+		    !params->link_sta_params.supported_rates)
 			return -EINVAL;
 		break;
 	case CFG80211_STA_TDLS_PEER_ACTIVE:
@@ -6245,7 +6835,7 @@
 	 */
 	if (statype != CFG80211_STA_AP_CLIENT_UNASSOC &&
 	    statype != CFG80211_STA_TDLS_PEER_SETUP)
-		params->opmode_notif_used = false;
+		params->link_sta_params.opmode_notif_used = false;
 
 	return 0;
 }
@@ -6291,12 +6881,6 @@
 	return ERR_PTR(ret);
 }
 
-static const struct nla_policy
-nl80211_sta_wme_policy[NL80211_STA_WME_MAX + 1] = {
-	[NL80211_STA_WME_UAPSD_QUEUES] = { .type = NLA_U8 },
-	[NL80211_STA_WME_MAX_SP] = { .type = NLA_U8 },
-};
-
 static int nl80211_parse_sta_wme(struct genl_info *info,
 				 struct station_parameters *params)
 {
@@ -6366,16 +6950,29 @@
 	if (info->attrs[NL80211_ATTR_PEER_AID])
 		params->aid = nla_get_u16(info->attrs[NL80211_ATTR_PEER_AID]);
 	if (info->attrs[NL80211_ATTR_HT_CAPABILITY])
-		params->ht_capa =
+		params->link_sta_params.ht_capa =
 			nla_data(info->attrs[NL80211_ATTR_HT_CAPABILITY]);
 	if (info->attrs[NL80211_ATTR_VHT_CAPABILITY])
-		params->vht_capa =
+		params->link_sta_params.vht_capa =
 			nla_data(info->attrs[NL80211_ATTR_VHT_CAPABILITY]);
 	if (info->attrs[NL80211_ATTR_HE_CAPABILITY]) {
-		params->he_capa =
+		params->link_sta_params.he_capa =
 			nla_data(info->attrs[NL80211_ATTR_HE_CAPABILITY]);
-		params->he_capa_len =
+		params->link_sta_params.he_capa_len =
 			nla_len(info->attrs[NL80211_ATTR_HE_CAPABILITY]);
+
+		if (info->attrs[NL80211_ATTR_EHT_CAPABILITY]) {
+			params->link_sta_params.eht_capa =
+				nla_data(info->attrs[NL80211_ATTR_EHT_CAPABILITY]);
+			params->link_sta_params.eht_capa_len =
+				nla_len(info->attrs[NL80211_ATTR_EHT_CAPABILITY]);
+
+			if (!ieee80211_eht_capa_size_ok((const u8 *)params->link_sta_params.he_capa,
+							(const u8 *)params->link_sta_params.eht_capa,
+							params->link_sta_params.eht_capa_len,
+							false))
+				return -EINVAL;
+		}
 	}
 
 	err = nl80211_parse_sta_channel_info(info, params);
@@ -6386,7 +6983,8 @@
 }
 
 static int nl80211_parse_sta_txpower_setting(struct genl_info *info,
-					     struct station_parameters *params)
+					     struct sta_txpwr *txpwr,
+					     bool *txpwr_set)
 {
 	struct cfg80211_registered_device *rdev = info->user_ptr[0];
 	int idx;
@@ -6398,18 +6996,20 @@
 			return -EOPNOTSUPP;
 
 		idx = NL80211_ATTR_STA_TX_POWER_SETTING;
-		params->txpwr.type = nla_get_u8(info->attrs[idx]);
+		txpwr->type = nla_get_u8(info->attrs[idx]);
 
-		if (params->txpwr.type == NL80211_TX_POWER_LIMITED) {
+		if (txpwr->type == NL80211_TX_POWER_LIMITED) {
 			idx = NL80211_ATTR_STA_TX_POWER;
 
 			if (info->attrs[idx])
-				params->txpwr.power =
-					nla_get_s16(info->attrs[idx]);
+				txpwr->power = nla_get_s16(info->attrs[idx]);
 			else
 				return -EINVAL;
 		}
-		params->sta_modify_mask |= STATION_PARAM_APPLY_STA_TXPOWER;
+
+		*txpwr_set = true;
+	} else {
+		*txpwr_set = false;
 	}
 
 	return 0;
@@ -6454,12 +7054,33 @@
 	if (!info->attrs[NL80211_ATTR_MAC])
 		return -EINVAL;
 
-	mac_addr = nla_data(info->attrs[NL80211_ATTR_MAC]);
+	params.link_sta_params.link_id =
+		nl80211_link_id_or_invalid(info->attrs);
+
+	if (info->attrs[NL80211_ATTR_MLD_ADDR]) {
+		/* If MLD_ADDR attribute is set then this is an MLD station
+		 * and the MLD_ADDR attribute holds the MLD address and the
+		 * MAC attribute holds for the LINK address.
+		 * In that case, the link_id is also expected to be valid.
+		 */
+		if (params.link_sta_params.link_id < 0)
+			return -EINVAL;
+
+		mac_addr = nla_data(info->attrs[NL80211_ATTR_MLD_ADDR]);
+		params.link_sta_params.mld_mac = mac_addr;
+		params.link_sta_params.link_mac =
+			nla_data(info->attrs[NL80211_ATTR_MAC]);
+		if (!is_valid_ether_addr(params.link_sta_params.link_mac))
+			return -EINVAL;
+	} else {
+		mac_addr = nla_data(info->attrs[NL80211_ATTR_MAC]);
+	}
+
 
 	if (info->attrs[NL80211_ATTR_STA_SUPPORTED_RATES]) {
-		params.supported_rates =
+		params.link_sta_params.supported_rates =
 			nla_data(info->attrs[NL80211_ATTR_STA_SUPPORTED_RATES]);
-		params.supported_rates_len =
+		params.link_sta_params.supported_rates_len =
 			nla_len(info->attrs[NL80211_ATTR_STA_SUPPORTED_RATES]);
 	}
 
@@ -6497,13 +7118,13 @@
 			info->attrs[NL80211_ATTR_LOCAL_MESH_POWER_MODE]);
 
 	if (info->attrs[NL80211_ATTR_OPMODE_NOTIF]) {
-		params.opmode_notif_used = true;
-		params.opmode_notif =
+		params.link_sta_params.opmode_notif_used = true;
+		params.link_sta_params.opmode_notif =
 			nla_get_u8(info->attrs[NL80211_ATTR_OPMODE_NOTIF]);
 	}
 
 	if (info->attrs[NL80211_ATTR_HE_6GHZ_CAPABILITY])
-		params.he_6ghz_capa =
+		params.link_sta_params.he_6ghz_capa =
 			nla_data(info->attrs[NL80211_ATTR_HE_6GHZ_CAPABILITY]);
 
 	if (info->attrs[NL80211_ATTR_AIRTIME_WEIGHT])
@@ -6515,7 +7136,9 @@
 				     NL80211_EXT_FEATURE_AIRTIME_FAIRNESS))
 		return -EOPNOTSUPP;
 
-	err = nl80211_parse_sta_txpower_setting(info, &params);
+	err = nl80211_parse_sta_txpower_setting(info,
+						&params.link_sta_params.txpwr,
+						&params.link_sta_params.txpwr_set);
 	if (err)
 		return err;
 
@@ -6543,7 +7166,9 @@
 	}
 
 	/* driver will call cfg80211_check_station_change() */
+	wdev_lock(dev->ieee80211_ptr);
 	err = rdev_change_station(rdev, dev, mac_addr, &params);
+	wdev_unlock(dev->ieee80211_ptr);
 
  out_put_vlan:
 	dev_put(params.vlan);
@@ -6556,6 +7181,7 @@
 	struct cfg80211_registered_device *rdev = info->user_ptr[0];
 	int err;
 	struct net_device *dev = info->user_ptr[1];
+	struct wireless_dev *wdev = dev->ieee80211_ptr;
 	struct station_parameters params;
 	u8 *mac_addr = NULL;
 	u32 auth_assoc = BIT(NL80211_STA_FLAG_AUTHENTICATED) |
@@ -6579,10 +7205,23 @@
 	    !info->attrs[NL80211_ATTR_PEER_AID])
 		return -EINVAL;
 
-	mac_addr = nla_data(info->attrs[NL80211_ATTR_MAC]);
-	params.supported_rates =
+	params.link_sta_params.link_id =
+		nl80211_link_id_or_invalid(info->attrs);
+
+	if (info->attrs[NL80211_ATTR_MLD_ADDR]) {
+		mac_addr = nla_data(info->attrs[NL80211_ATTR_MLD_ADDR]);
+		params.link_sta_params.mld_mac = mac_addr;
+		params.link_sta_params.link_mac =
+			nla_data(info->attrs[NL80211_ATTR_MAC]);
+		if (!is_valid_ether_addr(params.link_sta_params.link_mac))
+			return -EINVAL;
+	} else {
+		mac_addr = nla_data(info->attrs[NL80211_ATTR_MAC]);
+	}
+
+	params.link_sta_params.supported_rates =
 		nla_data(info->attrs[NL80211_ATTR_STA_SUPPORTED_RATES]);
-	params.supported_rates_len =
+	params.link_sta_params.supported_rates_len =
 		nla_len(info->attrs[NL80211_ATTR_STA_SUPPORTED_RATES]);
 	params.listen_interval =
 		nla_get_u16(info->attrs[NL80211_ATTR_STA_LISTEN_INTERVAL]);
@@ -6621,27 +7260,40 @@
 	}
 
 	if (info->attrs[NL80211_ATTR_HT_CAPABILITY])
-		params.ht_capa =
+		params.link_sta_params.ht_capa =
 			nla_data(info->attrs[NL80211_ATTR_HT_CAPABILITY]);
 
 	if (info->attrs[NL80211_ATTR_VHT_CAPABILITY])
-		params.vht_capa =
+		params.link_sta_params.vht_capa =
 			nla_data(info->attrs[NL80211_ATTR_VHT_CAPABILITY]);
 
 	if (info->attrs[NL80211_ATTR_HE_CAPABILITY]) {
-		params.he_capa =
+		params.link_sta_params.he_capa =
 			nla_data(info->attrs[NL80211_ATTR_HE_CAPABILITY]);
-		params.he_capa_len =
+		params.link_sta_params.he_capa_len =
 			nla_len(info->attrs[NL80211_ATTR_HE_CAPABILITY]);
+
+		if (info->attrs[NL80211_ATTR_EHT_CAPABILITY]) {
+			params.link_sta_params.eht_capa =
+				nla_data(info->attrs[NL80211_ATTR_EHT_CAPABILITY]);
+			params.link_sta_params.eht_capa_len =
+				nla_len(info->attrs[NL80211_ATTR_EHT_CAPABILITY]);
+
+			if (!ieee80211_eht_capa_size_ok((const u8 *)params.link_sta_params.he_capa,
+							(const u8 *)params.link_sta_params.eht_capa,
+							params.link_sta_params.eht_capa_len,
+							false))
+				return -EINVAL;
+		}
 	}
 
 	if (info->attrs[NL80211_ATTR_HE_6GHZ_CAPABILITY])
-		params.he_6ghz_capa =
+		params.link_sta_params.he_6ghz_capa =
 			nla_data(info->attrs[NL80211_ATTR_HE_6GHZ_CAPABILITY]);
 
 	if (info->attrs[NL80211_ATTR_OPMODE_NOTIF]) {
-		params.opmode_notif_used = true;
-		params.opmode_notif =
+		params.link_sta_params.opmode_notif_used = true;
+		params.link_sta_params.opmode_notif =
 			nla_get_u8(info->attrs[NL80211_ATTR_OPMODE_NOTIF]);
 	}
 
@@ -6658,7 +7310,9 @@
 				     NL80211_EXT_FEATURE_AIRTIME_FAIRNESS))
 		return -EOPNOTSUPP;
 
-	err = nl80211_parse_sta_txpower_setting(info, &params);
+	err = nl80211_parse_sta_txpower_setting(info,
+						&params.link_sta_params.txpwr,
+						&params.link_sta_params.txpwr_set);
 	if (err)
 		return err;
 
@@ -6679,16 +7333,19 @@
 	 * error in this case.
 	 */
 	if (!(params.sta_flags_set & BIT(NL80211_STA_FLAG_WME))) {
-		params.ht_capa = NULL;
-		params.vht_capa = NULL;
+		params.link_sta_params.ht_capa = NULL;
+		params.link_sta_params.vht_capa = NULL;
 
-		/* HE requires WME */
-		if (params.he_capa_len || params.he_6ghz_capa)
+		/* HE and EHT require WME */
+		if (params.link_sta_params.he_capa_len ||
+		    params.link_sta_params.he_6ghz_capa ||
+		    params.link_sta_params.eht_capa_len)
 			return -EINVAL;
 	}
 
 	/* Ensure that HT/VHT capabilities are not set for 6 GHz HE STA */
-	if (params.he_6ghz_capa && (params.ht_capa || params.vht_capa))
+	if (params.link_sta_params.he_6ghz_capa &&
+	    (params.link_sta_params.ht_capa || params.link_sta_params.vht_capa))
 		return -EINVAL;
 
 	/* When you run into this, adjust the code below for the new flag */
@@ -6779,8 +7436,25 @@
 
 	/* be aware of params.vlan when changing code here */
 
+	wdev_lock(dev->ieee80211_ptr);
+	if (wdev->valid_links) {
+		if (params.link_sta_params.link_id < 0) {
+			err = -EINVAL;
+			goto out;
+		}
+		if (!(wdev->valid_links & BIT(params.link_sta_params.link_id))) {
+			err = -ENOLINK;
+			goto out;
+		}
+	} else {
+		if (params.link_sta_params.link_id >= 0) {
+			err = -EINVAL;
+			goto out;
+		}
+	}
 	err = rdev_add_station(rdev, dev, mac_addr, &params);
-
+out:
+	wdev_unlock(dev->ieee80211_ptr);
 	dev_put(params.vlan);
 	return err;
 }
@@ -6790,6 +7464,7 @@
 	struct cfg80211_registered_device *rdev = info->user_ptr[0];
 	struct net_device *dev = info->user_ptr[1];
 	struct station_del_parameters params;
+	int ret;
 
 	memset(&params, 0, sizeof(params));
 
@@ -6837,7 +7512,11 @@
 		params.reason_code = WLAN_REASON_PREV_AUTH_NOT_VALID;
 	}
 
-	return rdev_del_station(rdev, dev, &params);
+	wdev_lock(dev->ieee80211_ptr);
+	ret = rdev_del_station(rdev, dev, &params);
+	wdev_unlock(dev->ieee80211_ptr);
+
+	return ret;
 }
 
 static int nl80211_send_mpath(struct sk_buff *msg, u32 portid, u32 seq,
@@ -7161,6 +7840,7 @@
 	int err;
 
 	memset(&params, 0, sizeof(params));
+	params.link_id = nl80211_link_id_or_invalid(info->attrs);
 	/* default to not changing parameters */
 	params.use_cts_prot = -1;
 	params.use_short_preamble = -1;
@@ -7297,7 +7977,7 @@
 
 	wdev_lock(wdev);
 	/* If not connected, get default parameters */
-	if (!wdev->mesh_id_len)
+	if (!wdev->u.mesh.id_len)
 		memcpy(&cur_params, &default_mesh_config, sizeof(cur_params));
 	else
 		err = rdev_get_mesh_config(rdev, dev, &cur_params);
@@ -7678,7 +8358,7 @@
 		return err;
 
 	wdev_lock(wdev);
-	if (!wdev->mesh_id_len)
+	if (!wdev->u.mesh.id_len)
 		err = -ENOLINK;
 
 	if (!err)
@@ -7756,6 +8436,7 @@
 	struct cfg80211_registered_device *rdev;
 	struct wiphy *wiphy = NULL;
 	struct sk_buff *msg;
+	int err = -EMSGSIZE;
 	void *hdr;
 
 	msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL);
@@ -7774,34 +8455,35 @@
 
 		rdev = cfg80211_get_dev_from_info(genl_info_net(info), info);
 		if (IS_ERR(rdev)) {
-			nlmsg_free(msg);
-			rtnl_unlock();
-			return PTR_ERR(rdev);
+			err = PTR_ERR(rdev);
+			goto nla_put_failure;
 		}
 
 		wiphy = &rdev->wiphy;
 		self_managed = wiphy->regulatory_flags &
 			       REGULATORY_WIPHY_SELF_MANAGED;
+
+		rcu_read_lock();
+
 		regdom = get_wiphy_regdom(wiphy);
 
 		/* a self-managed-reg device must have a private regdom */
 		if (WARN_ON(!regdom && self_managed)) {
-			nlmsg_free(msg);
-			rtnl_unlock();
-			return -EINVAL;
+			err = -EINVAL;
+			goto nla_put_failure_rcu;
 		}
 
 		if (regdom &&
 		    nla_put_u32(msg, NL80211_ATTR_WIPHY, get_wiphy_idx(wiphy)))
-			goto nla_put_failure;
+			goto nla_put_failure_rcu;
+	} else {
+		rcu_read_lock();
 	}
 
 	if (!wiphy && reg_last_request_cell_base() &&
 	    nla_put_u32(msg, NL80211_ATTR_USER_REG_HINT_TYPE,
 			NL80211_USER_REG_HINT_CELL_BASE))
-		goto nla_put_failure;
-
-	rcu_read_lock();
+		goto nla_put_failure_rcu;
 
 	if (!regdom)
 		regdom = rcu_dereference(cfg80211_regdomain);
@@ -7821,7 +8503,7 @@
 	rtnl_unlock();
 put_failure:
 	nlmsg_free(msg);
-	return -EMSGSIZE;
+	return err;
 }
 
 static int nl80211_send_regdom(struct sk_buff *msg, struct netlink_callback *cb,
@@ -7867,19 +8549,19 @@
 	struct cfg80211_registered_device *rdev;
 	int err, reg_idx, start = cb->args[2];
 
-	rtnl_lock();
+	rcu_read_lock();
 
 	if (cfg80211_regdomain && start == 0) {
 		err = nl80211_send_regdom(skb, cb, cb->nlh->nlmsg_seq,
 					  NLM_F_MULTI, NULL,
-					  rtnl_dereference(cfg80211_regdomain));
+					  rcu_dereference(cfg80211_regdomain));
 		if (err < 0)
 			goto out_err;
 	}
 
 	/* the global regdom is idx 0 */
 	reg_idx = 1;
-	list_for_each_entry(rdev, &cfg80211_rdev_list, list) {
+	list_for_each_entry_rcu(rdev, &cfg80211_rdev_list, list) {
 		regdom = get_wiphy_regdom(&rdev->wiphy);
 		if (!regdom)
 			continue;
@@ -7898,7 +8580,7 @@
 	cb->args[2] = reg_idx;
 	err = skb->len;
 out_err:
-	rtnl_unlock();
+	rcu_read_unlock();
 	return err;
 }
 
@@ -8168,14 +8850,44 @@
 	return 0;
 }
 
-static bool cfg80211_off_channel_oper_allowed(struct wireless_dev *wdev)
+static bool cfg80211_off_channel_oper_allowed(struct wireless_dev *wdev,
+					      struct ieee80211_channel *chan)
 {
+	unsigned int link_id;
+	bool all_ok = true;
+
 	ASSERT_WDEV_LOCK(wdev);
 
 	if (!cfg80211_beaconing_iface_active(wdev))
 		return true;
 
-	if (!(wdev->chandef.chan->flags & IEEE80211_CHAN_RADAR))
+	/*
+	 * FIXME: check if we have a free HW resource/link for chan
+	 *
+	 * This, as well as the FIXME below, requires knowing the link
+	 * capabilities of the hardware.
+	 */
+
+	/* we cannot leave radar channels */
+	for_each_valid_link(wdev, link_id) {
+		struct cfg80211_chan_def *chandef;
+
+		chandef = wdev_chandef(wdev, link_id);
+		if (!chandef || !chandef->chan)
+			continue;
+
+		/*
+		 * FIXME: don't require all_ok, but rather check only the
+		 *	  correct HW resource/link onto which 'chan' falls,
+		 *	  as only that link leaves the channel for doing
+		 *	  the off-channel operation.
+		 */
+
+		if (chandef->chan->flags & IEEE80211_CHAN_RADAR)
+			all_ok = false;
+	}
+
+	if (all_ok)
 		return true;
 
 	return regulatory_pre_cac_allowed(wdev->wiphy);
@@ -8258,7 +8970,7 @@
 		int err;
 
 		if (!(wiphy->features & randomness_flag) ||
-		    (wdev && wdev->current_bss))
+		    (wdev && wdev->connected))
 			return -EOPNOTSUPP;
 
 		err = nl80211_parse_random_mac(attrs, mac_addr, mac_addr_mask);
@@ -8395,17 +9107,14 @@
 	request->n_channels = i;
 
 	wdev_lock(wdev);
-	if (!cfg80211_off_channel_oper_allowed(wdev)) {
-		struct ieee80211_channel *chan;
+	for (i = 0; i < request->n_channels; i++) {
+		struct ieee80211_channel *chan = request->channels[i];
 
-		if (request->n_channels != 1) {
-			wdev_unlock(wdev);
-			err = -EBUSY;
-			goto out_free;
-		}
+		/* if we can go off-channel to the target channel we're good */
+		if (cfg80211_off_channel_oper_allowed(wdev, chan))
+			continue;
 
-		chan = request->channels[0];
-		if (chan->center_freq != wdev->chandef.chan->center_freq) {
+		if (!cfg80211_wdev_on_sub_chan(wdev, chan, true)) {
 			wdev_unlock(wdev);
 			err = -EBUSY;
 			goto out_free;
@@ -9089,38 +9798,60 @@
 	struct cfg80211_chan_def chandef;
 	enum nl80211_dfs_regions dfs_region;
 	unsigned int cac_time_ms;
-	int err;
+	int err = -EINVAL;
+
+	flush_delayed_work(&rdev->dfs_update_channels_wk);
+
+	wiphy_lock(wiphy);
 
 	dfs_region = reg_get_dfs_region(wiphy);
 	if (dfs_region == NL80211_DFS_UNSET)
-		return -EINVAL;
+		goto unlock;
 
 	err = nl80211_parse_chandef(rdev, info, &chandef);
 	if (err)
-		return err;
-
-	if (netif_carrier_ok(dev))
-		return -EBUSY;
-
-	if (wdev->cac_started)
-		return -EBUSY;
+		goto unlock;
 
 	err = cfg80211_chandef_dfs_required(wiphy, &chandef, wdev->iftype);
 	if (err < 0)
-		return err;
+		goto unlock;
 
-	if (err == 0)
-		return -EINVAL;
+	if (err == 0) {
+		err = -EINVAL;
+		goto unlock;
+	}
 
-	if (!cfg80211_chandef_dfs_usable(wiphy, &chandef))
-		return -EINVAL;
+	if (!cfg80211_chandef_dfs_usable(wiphy, &chandef)) {
+		err = -EINVAL;
+		goto unlock;
+	}
+
+	if (nla_get_flag(info->attrs[NL80211_ATTR_RADAR_BACKGROUND])) {
+		err = cfg80211_start_background_radar_detection(rdev, wdev,
+								&chandef);
+		goto unlock;
+	}
+
+	if (netif_carrier_ok(dev)) {
+		err = -EBUSY;
+		goto unlock;
+	}
+
+	if (wdev->cac_started) {
+		err = -EBUSY;
+		goto unlock;
+	}
 
 	/* CAC start is offloaded to HW and can't be started manually */
-	if (wiphy_ext_feature_isset(wiphy, NL80211_EXT_FEATURE_DFS_OFFLOAD))
-		return -EOPNOTSUPP;
+	if (wiphy_ext_feature_isset(wiphy, NL80211_EXT_FEATURE_DFS_OFFLOAD)) {
+		err = -EOPNOTSUPP;
+		goto unlock;
+	}
 
-	if (!rdev->ops->start_radar_detection)
-		return -EOPNOTSUPP;
+	if (!rdev->ops->start_radar_detection) {
+		err = -EOPNOTSUPP;
+		goto unlock;
+	}
 
 	cac_time_ms = cfg80211_chandef_dfs_cac_time(&rdev->wiphy, &chandef);
 	if (WARN_ON(!cac_time_ms))
@@ -9128,11 +9859,14 @@
 
 	err = rdev_start_radar_detection(rdev, dev, &chandef, cac_time_ms);
 	if (!err) {
-		wdev->chandef = chandef;
+		wdev->links[0].ap.chandef = chandef;
 		wdev->cac_started = true;
 		wdev->cac_start_time = jiffies;
 		wdev->cac_time_ms = cac_time_ms;
 	}
+unlock:
+	wiphy_unlock(wiphy);
+
 	return err;
 }
 
@@ -9193,6 +9927,7 @@
 static int nl80211_channel_switch(struct sk_buff *skb, struct genl_info *info)
 {
 	struct cfg80211_registered_device *rdev = info->user_ptr[0];
+	unsigned int link_id = nl80211_link_id(info->attrs);
 	struct net_device *dev = info->user_ptr[1];
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
 	struct cfg80211_csa_settings params;
@@ -9219,15 +9954,15 @@
 		need_handle_dfs_flag = false;
 
 		/* useless if AP is not running */
-		if (!wdev->beacon_interval)
+		if (!wdev->links[link_id].ap.beacon_interval)
 			return -ENOTCONN;
 		break;
 	case NL80211_IFTYPE_ADHOC:
-		if (!wdev->ssid_len)
+		if (!wdev->u.ibss.ssid_len)
 			return -ENOTCONN;
 		break;
 	case NL80211_IFTYPE_MESH_POINT:
-		if (!wdev->mesh_id_len)
+		if (!wdev->u.mesh.id_len)
 			return -ENOTCONN;
 		break;
 	default:
@@ -9259,12 +9994,14 @@
 
 	err = nl80211_parse_beacon(rdev, info->attrs, &params.beacon_after);
 	if (err)
-		return err;
+		goto free;
 
 	csa_attrs = kcalloc(NL80211_ATTR_MAX + 1, sizeof(*csa_attrs),
 			    GFP_KERNEL);
-	if (!csa_attrs)
-		return -ENOMEM;
+	if (!csa_attrs) {
+		err = -ENOMEM;
+		goto free;
+	}
 
 	err = nla_parse_nested_deprecated(csa_attrs, NL80211_ATTR_MAX,
 					  info->attrs[NL80211_ATTR_CSA_IES],
@@ -9377,11 +10114,21 @@
 	if (info->attrs[NL80211_ATTR_CH_SWITCH_BLOCK_TX])
 		params.block_tx = true;
 
+	if (info->attrs[NL80211_ATTR_PUNCT_BITMAP]) {
+		err = nl80211_parse_punct_bitmap(rdev, info,
+						 &params.chandef,
+						 &params.punct_bitmap);
+		if (err)
+			goto free;
+	}
+
 	wdev_lock(wdev);
 	err = rdev_channel_switch(rdev, dev, &params);
 	wdev_unlock(wdev);
 
 free:
+	kfree(params.beacon_after.mbssid_ies);
+	kfree(params.beacon_csa.mbssid_ies);
 	kfree(csa_attrs);
 	return err;
 }
@@ -9394,6 +10141,7 @@
 {
 	struct cfg80211_bss *res = &intbss->pub;
 	const struct cfg80211_bss_ies *ies;
+	unsigned int link_id;
 	void *hdr;
 	struct nlattr *bss;
 
@@ -9498,13 +10246,20 @@
 	switch (wdev->iftype) {
 	case NL80211_IFTYPE_P2P_CLIENT:
 	case NL80211_IFTYPE_STATION:
-		if (intbss == wdev->current_bss &&
-		    nla_put_u32(msg, NL80211_BSS_STATUS,
-				NL80211_BSS_STATUS_ASSOCIATED))
-			goto nla_put_failure;
+		for_each_valid_link(wdev, link_id) {
+			if (intbss == wdev->links[link_id].client.current_bss &&
+			    (nla_put_u32(msg, NL80211_BSS_STATUS,
+					 NL80211_BSS_STATUS_ASSOCIATED) ||
+			     (wdev->valid_links &&
+			      (nla_put_u8(msg, NL80211_BSS_MLO_LINK_ID,
+					  link_id) ||
+			       nla_put(msg, NL80211_BSS_MLD_ADDR, ETH_ALEN,
+				       wdev->u.client.connected_addr)))))
+				goto nla_put_failure;
+		}
 		break;
 	case NL80211_IFTYPE_ADHOC:
-		if (intbss == wdev->current_bss &&
+		if (intbss == wdev->u.ibss.current_bss &&
 		    nla_put_u32(msg, NL80211_BSS_STATUS,
 				NL80211_BSS_STATUS_IBSS_JOINED))
 			goto nla_put_failure;
@@ -9688,7 +10443,9 @@
 	}
 
 	while (1) {
+		wdev_lock(wdev);
 		res = rdev_dump_survey(rdev, wdev->netdev, survey_idx, &survey);
+		wdev_unlock(wdev);
 		if (res == -ENOENT)
 			break;
 		if (res)
@@ -9730,11 +10487,12 @@
 	struct cfg80211_registered_device *rdev = info->user_ptr[0];
 	struct net_device *dev = info->user_ptr[1];
 	struct ieee80211_channel *chan;
-	const u8 *bssid, *ssid, *ie = NULL, *auth_data = NULL;
-	int err, ssid_len, ie_len = 0, auth_data_len = 0;
+	const u8 *bssid, *ssid;
+	int err, ssid_len;
 	enum nl80211_auth_type auth_type;
 	struct key_parse key;
 	bool local_state_change;
+	struct cfg80211_auth_request req = {};
 	u32 freq;
 
 	if (!info->attrs[NL80211_ATTR_MAC])
@@ -9805,8 +10563,8 @@
 	ssid_len = nla_len(info->attrs[NL80211_ATTR_SSID]);
 
 	if (info->attrs[NL80211_ATTR_IE]) {
-		ie = nla_data(info->attrs[NL80211_ATTR_IE]);
-		ie_len = nla_len(info->attrs[NL80211_ATTR_IE]);
+		req.ie = nla_data(info->attrs[NL80211_ATTR_IE]);
+		req.ie_len = nla_len(info->attrs[NL80211_ATTR_IE]);
 	}
 
 	auth_type = nla_get_u32(info->attrs[NL80211_ATTR_AUTH_TYPE]);
@@ -9826,8 +10584,8 @@
 		    auth_type != NL80211_AUTHTYPE_FILS_SK_PFS &&
 		    auth_type != NL80211_AUTHTYPE_FILS_PK)
 			return -EINVAL;
-		auth_data = nla_data(info->attrs[NL80211_ATTR_AUTH_DATA]);
-		auth_data_len = nla_len(info->attrs[NL80211_ATTR_AUTH_DATA]);
+		req.auth_data = nla_data(info->attrs[NL80211_ATTR_AUTH_DATA]);
+		req.auth_data_len = nla_len(info->attrs[NL80211_ATTR_AUTH_DATA]);
 	}
 
 	local_state_change = !!info->attrs[NL80211_ATTR_LOCAL_STATE_CHANGE];
@@ -9839,12 +10597,33 @@
 	if (local_state_change)
 		return 0;
 
+	req.auth_type = auth_type;
+	req.key = key.p.key;
+	req.key_len = key.p.key_len;
+	req.key_idx = key.idx;
+	req.link_id = nl80211_link_id_or_invalid(info->attrs);
+	if (req.link_id >= 0) {
+		if (!(rdev->wiphy.flags & WIPHY_FLAG_SUPPORTS_MLO))
+			return -EINVAL;
+		if (!info->attrs[NL80211_ATTR_MLD_ADDR])
+			return -EINVAL;
+		req.ap_mld_addr = nla_data(info->attrs[NL80211_ATTR_MLD_ADDR]);
+		if (!is_valid_ether_addr(req.ap_mld_addr))
+			return -EINVAL;
+	}
+
+	req.bss = cfg80211_get_bss(&rdev->wiphy, chan, bssid, ssid, ssid_len,
+				   IEEE80211_BSS_TYPE_ESS,
+				   IEEE80211_PRIVACY_ANY);
+	if (!req.bss)
+		return -ENOENT;
+
 	wdev_lock(dev->ieee80211_ptr);
-	err = cfg80211_mlme_auth(rdev, dev, chan, auth_type, bssid,
-				 ssid, ssid_len, ie, ie_len,
-				 key.p.key, key.p.key_len, key.idx,
-				 auth_data, auth_data_len);
+	err = cfg80211_mlme_auth(rdev, dev, &req);
 	wdev_unlock(dev->ieee80211_ptr);
+
+	cfg80211_put_bss(&rdev->wiphy, req.bss);
+
 	return err;
 }
 
@@ -9948,7 +10727,7 @@
 		if (len % sizeof(u32))
 			return -EINVAL;
 
-		if (settings->n_akm_suites > NL80211_MAX_NR_AKM_SUITES)
+		if (settings->n_akm_suites > rdev->wiphy.max_num_akm_suites)
 			return -EINVAL;
 
 		memcpy(settings->akm_suites, data, len);
@@ -9986,23 +10765,53 @@
 	return 0;
 }
 
+static struct cfg80211_bss *nl80211_assoc_bss(struct cfg80211_registered_device *rdev,
+					      const u8 *ssid, int ssid_len,
+					      struct nlattr **attrs)
+{
+	struct ieee80211_channel *chan;
+	struct cfg80211_bss *bss;
+	const u8 *bssid;
+	u32 freq;
+
+	if (!attrs[NL80211_ATTR_MAC] || !attrs[NL80211_ATTR_WIPHY_FREQ])
+		return ERR_PTR(-EINVAL);
+
+	bssid = nla_data(attrs[NL80211_ATTR_MAC]);
+
+	freq = MHZ_TO_KHZ(nla_get_u32(attrs[NL80211_ATTR_WIPHY_FREQ]));
+	if (attrs[NL80211_ATTR_WIPHY_FREQ_OFFSET])
+		freq += nla_get_u32(attrs[NL80211_ATTR_WIPHY_FREQ_OFFSET]);
+
+	chan = nl80211_get_valid_chan(&rdev->wiphy, freq);
+	if (!chan)
+		return ERR_PTR(-EINVAL);
+
+	bss = cfg80211_get_bss(&rdev->wiphy, chan, bssid,
+			       ssid, ssid_len,
+			       IEEE80211_BSS_TYPE_ESS,
+			       IEEE80211_PRIVACY_ANY);
+	if (!bss)
+		return ERR_PTR(-ENOENT);
+
+	return bss;
+}
+
 static int nl80211_associate(struct sk_buff *skb, struct genl_info *info)
 {
 	struct cfg80211_registered_device *rdev = info->user_ptr[0];
 	struct net_device *dev = info->user_ptr[1];
-	struct ieee80211_channel *chan;
 	struct cfg80211_assoc_request req = {};
-	const u8 *bssid, *ssid;
-	int err, ssid_len = 0;
-	u32 freq;
+	struct nlattr **attrs = NULL;
+	const u8 *ap_addr, *ssid;
+	unsigned int link_id;
+	int err, ssid_len;
 
 	if (dev->ieee80211_ptr->conn_owner_nlportid &&
 	    dev->ieee80211_ptr->conn_owner_nlportid != info->snd_portid)
 		return -EPERM;
 
-	if (!info->attrs[NL80211_ATTR_MAC] ||
-	    !info->attrs[NL80211_ATTR_SSID] ||
-	    !info->attrs[NL80211_ATTR_WIPHY_FREQ])
+	if (!info->attrs[NL80211_ATTR_SSID])
 		return -EINVAL;
 
 	if (!rdev->ops->assoc)
@@ -10012,22 +10821,19 @@
 	    dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_CLIENT)
 		return -EOPNOTSUPP;
 
-	bssid = nla_data(info->attrs[NL80211_ATTR_MAC]);
-
-	freq = MHZ_TO_KHZ(nla_get_u32(info->attrs[NL80211_ATTR_WIPHY_FREQ]));
-	if (info->attrs[NL80211_ATTR_WIPHY_FREQ_OFFSET])
-		freq +=
-		    nla_get_u32(info->attrs[NL80211_ATTR_WIPHY_FREQ_OFFSET]);
-	chan = nl80211_get_valid_chan(&rdev->wiphy, freq);
-	if (!chan)
-		return -EINVAL;
-
 	ssid = nla_data(info->attrs[NL80211_ATTR_SSID]);
 	ssid_len = nla_len(info->attrs[NL80211_ATTR_SSID]);
 
 	if (info->attrs[NL80211_ATTR_IE]) {
 		req.ie = nla_data(info->attrs[NL80211_ATTR_IE]);
 		req.ie_len = nla_len(info->attrs[NL80211_ATTR_IE]);
+
+		if (cfg80211_find_ext_elem(WLAN_EID_EXT_NON_INHERITANCE,
+					   req.ie, req.ie_len)) {
+			GENL_SET_ERR_MSG(info,
+					 "non-inheritance makes no sense");
+			return -EINVAL;
+		}
 	}
 
 	if (info->attrs[NL80211_ATTR_USE_MFP]) {
@@ -10064,6 +10870,9 @@
 	if (nla_get_flag(info->attrs[NL80211_ATTR_DISABLE_HE]))
 		req.flags |= ASSOC_REQ_DISABLE_HE;
 
+	if (nla_get_flag(info->attrs[NL80211_ATTR_DISABLE_EHT]))
+		req.flags |= ASSOC_REQ_DISABLE_EHT;
+
 	if (info->attrs[NL80211_ATTR_VHT_CAPABILITY_MASK])
 		memcpy(&req.vht_capa_mask,
 		       nla_data(info->attrs[NL80211_ATTR_VHT_CAPABILITY_MASK]),
@@ -10112,23 +10921,130 @@
 		       sizeof(req.s1g_capa));
 	}
 
+	req.link_id = nl80211_link_id_or_invalid(info->attrs);
+
+	if (info->attrs[NL80211_ATTR_MLO_LINKS]) {
+		unsigned int attrsize = NUM_NL80211_ATTR * sizeof(*attrs);
+		struct nlattr *link;
+		int rem = 0;
+
+		if (req.link_id < 0)
+			return -EINVAL;
+
+		if (!(rdev->wiphy.flags & WIPHY_FLAG_SUPPORTS_MLO))
+			return -EINVAL;
+
+		if (info->attrs[NL80211_ATTR_MAC] ||
+		    info->attrs[NL80211_ATTR_WIPHY_FREQ] ||
+		    !info->attrs[NL80211_ATTR_MLD_ADDR])
+			return -EINVAL;
+
+		req.ap_mld_addr = nla_data(info->attrs[NL80211_ATTR_MLD_ADDR]);
+		ap_addr = req.ap_mld_addr;
+
+		attrs = kzalloc(attrsize, GFP_KERNEL);
+		if (!attrs)
+			return -ENOMEM;
+
+		nla_for_each_nested(link,
+				    info->attrs[NL80211_ATTR_MLO_LINKS],
+				    rem) {
+			memset(attrs, 0, attrsize);
+
+			nla_parse_nested(attrs, NL80211_ATTR_MAX,
+					 link, NULL, NULL);
+
+			if (!attrs[NL80211_ATTR_MLO_LINK_ID]) {
+				err = -EINVAL;
+				goto free;
+			}
+
+			link_id = nla_get_u8(attrs[NL80211_ATTR_MLO_LINK_ID]);
+			/* cannot use the same link ID again */
+			if (req.links[link_id].bss) {
+				err = -EINVAL;
+				goto free;
+			}
+			req.links[link_id].bss =
+				nl80211_assoc_bss(rdev, ssid, ssid_len, attrs);
+			if (IS_ERR(req.links[link_id].bss)) {
+				err = PTR_ERR(req.links[link_id].bss);
+				req.links[link_id].bss = NULL;
+				goto free;
+			}
+
+			if (attrs[NL80211_ATTR_IE]) {
+				req.links[link_id].elems =
+					nla_data(attrs[NL80211_ATTR_IE]);
+				req.links[link_id].elems_len =
+					nla_len(attrs[NL80211_ATTR_IE]);
+
+				if (cfg80211_find_elem(WLAN_EID_FRAGMENT,
+						       req.links[link_id].elems,
+						       req.links[link_id].elems_len)) {
+					GENL_SET_ERR_MSG(info,
+							 "cannot deal with fragmentation");
+					err = -EINVAL;
+					goto free;
+				}
+
+				if (cfg80211_find_ext_elem(WLAN_EID_EXT_NON_INHERITANCE,
+							   req.links[link_id].elems,
+							   req.links[link_id].elems_len)) {
+					GENL_SET_ERR_MSG(info,
+							 "cannot deal with non-inheritance");
+					err = -EINVAL;
+					goto free;
+				}
+			}
+		}
+
+		if (!req.links[req.link_id].bss) {
+			err = -EINVAL;
+			goto free;
+		}
+
+		if (req.links[req.link_id].elems_len) {
+			GENL_SET_ERR_MSG(info,
+					 "cannot have per-link elems on assoc link");
+			err = -EINVAL;
+			goto free;
+		}
+
+		kfree(attrs);
+		attrs = NULL;
+	} else {
+		if (req.link_id >= 0)
+			return -EINVAL;
+
+		req.bss = nl80211_assoc_bss(rdev, ssid, ssid_len, info->attrs);
+		if (IS_ERR(req.bss))
+			return PTR_ERR(req.bss);
+		ap_addr = req.bss->bssid;
+	}
+
 	err = nl80211_crypto_settings(rdev, info, &req.crypto, 1);
 	if (!err) {
 		wdev_lock(dev->ieee80211_ptr);
 
-		err = cfg80211_mlme_assoc(rdev, dev, chan, bssid,
-					  ssid, ssid_len, &req);
+		err = cfg80211_mlme_assoc(rdev, dev, &req);
 
 		if (!err && info->attrs[NL80211_ATTR_SOCKET_OWNER]) {
 			dev->ieee80211_ptr->conn_owner_nlportid =
 				info->snd_portid;
 			memcpy(dev->ieee80211_ptr->disconnect_bssid,
-			       bssid, ETH_ALEN);
+			       ap_addr, ETH_ALEN);
 		}
 
 		wdev_unlock(dev->ieee80211_ptr);
 	}
 
+free:
+	for (link_id = 0; link_id < ARRAY_SIZE(req.links); link_id++)
+		cfg80211_put_bss(&rdev->wiphy, req.links[link_id].bss);
+	cfg80211_put_bss(&rdev->wiphy, req.bss);
+	kfree(attrs);
+
 	return err;
 }
 
@@ -10331,6 +11247,8 @@
 					     NL80211_EXT_FEATURE_VHT_IBSS))
 			return -EINVAL;
 		break;
+	case NL80211_CHAN_WIDTH_320:
+		return -EINVAL;
 	default:
 		return -EINVAL;
 	}
@@ -10432,7 +11350,6 @@
 	struct net_device *dev = info->user_ptr[1];
 	int mcast_rate[NUM_NL80211_BANDS];
 	u32 nla_rate;
-	int err;
 
 	if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_ADHOC &&
 	    dev->ieee80211_ptr->iftype != NL80211_IFTYPE_MESH_POINT &&
@@ -10451,9 +11368,7 @@
 	if (!nl80211_parse_mcast_rate(rdev, mcast_rate, nla_rate))
 		return -EINVAL;
 
-	err = rdev_set_mcast_rate(rdev, dev, mcast_rate);
-
-	return err;
+	return rdev_set_mcast_rate(rdev, dev, mcast_rate);
 }
 
 static struct sk_buff *
@@ -10850,6 +11765,9 @@
 	if (nla_get_flag(info->attrs[NL80211_ATTR_DISABLE_HE]))
 		connect.flags |= ASSOC_REQ_DISABLE_HE;
 
+	if (nla_get_flag(info->attrs[NL80211_ATTR_DISABLE_EHT]))
+		connect.flags |= ASSOC_REQ_DISABLE_EHT;
+
 	if (info->attrs[NL80211_ATTR_VHT_CAPABILITY_MASK])
 		memcpy(&connect.vht_capa_mask,
 		       nla_data(info->attrs[NL80211_ATTR_VHT_CAPABILITY_MASK]),
@@ -10937,6 +11855,9 @@
 		connect.flags |= CONNECT_REQ_EXTERNAL_AUTH_SUPPORT;
 	}
 
+	if (nla_get_flag(info->attrs[NL80211_ATTR_MLO_SUPPORT]))
+		connect.flags |= CONNECT_REQ_MLO_SUPPORT;
+
 	wdev_lock(dev->ieee80211_ptr);
 
 	err = cfg80211_connect(rdev, dev, &connect, connkeys,
@@ -11030,7 +11951,7 @@
 	}
 
 	wdev_lock(dev->ieee80211_ptr);
-	if (!wdev->current_bss)
+	if (!wdev->connected)
 		ret = -ENOLINK;
 	else
 		ret = rdev_update_connect_params(rdev, dev, &connect, changed);
@@ -11243,9 +12164,9 @@
 				     struct genl_info *info)
 {
 	struct cfg80211_registered_device *rdev = info->user_ptr[0];
+	unsigned int link_id = nl80211_link_id(info->attrs);
 	struct wireless_dev *wdev = info->user_ptr[1];
 	struct cfg80211_chan_def chandef;
-	const struct cfg80211_chan_def *compat_chandef;
 	struct sk_buff *msg;
 	void *hdr;
 	u64 cookie;
@@ -11275,10 +12196,22 @@
 		return err;
 
 	wdev_lock(wdev);
-	if (!cfg80211_off_channel_oper_allowed(wdev) &&
-	    !cfg80211_chandef_identical(&wdev->chandef, &chandef)) {
-		compat_chandef = cfg80211_chandef_compatible(&wdev->chandef,
-							     &chandef);
+	if (!cfg80211_off_channel_oper_allowed(wdev, chandef.chan)) {
+		const struct cfg80211_chan_def *oper_chandef, *compat_chandef;
+
+		oper_chandef = wdev_chandef(wdev, link_id);
+
+		if (WARN_ON(!oper_chandef)) {
+			/* cannot happen since we must beacon to get here */
+			WARN_ON(1);
+			wdev_unlock(wdev);
+			return -EBUSY;
+		}
+
+		/* note: returns first one if identical chandefs */
+		compat_chandef = cfg80211_chandef_compatible(&chandef,
+							     oper_chandef);
+
 		if (compat_chandef != &chandef) {
 			wdev_unlock(wdev);
 			return -EBUSY;
@@ -11340,6 +12273,7 @@
 				       struct genl_info *info)
 {
 	struct cfg80211_bitrate_mask mask;
+	unsigned int link_id = nl80211_link_id(info->attrs);
 	struct cfg80211_registered_device *rdev = info->user_ptr[0];
 	struct net_device *dev = info->user_ptr[1];
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
@@ -11351,11 +12285,11 @@
 	wdev_lock(wdev);
 	err = nl80211_parse_tx_bitrate_mask(info, info->attrs,
 					    NL80211_ATTR_TX_RATES, &mask,
-					    dev, true);
+					    dev, true, link_id);
 	if (err)
 		goto out;
 
-	err = rdev_set_bitrate_mask(rdev, dev, NULL, &mask);
+	err = rdev_set_bitrate_mask(rdev, dev, link_id, NULL, &mask);
 out:
 	wdev_unlock(wdev);
 	return err;
@@ -11384,6 +12318,10 @@
 	case NL80211_IFTYPE_P2P_DEVICE:
 		break;
 	case NL80211_IFTYPE_NAN:
+		if (!wiphy_ext_feature_isset(wdev->wiphy,
+					     NL80211_EXT_FEATURE_SECURE_NAN))
+			return -EOPNOTSUPP;
+		break;
 	default:
 		return -EOPNOTSUPP;
 	}
@@ -11441,6 +12379,10 @@
 	case NL80211_IFTYPE_P2P_GO:
 		break;
 	case NL80211_IFTYPE_NAN:
+		if (!wiphy_ext_feature_isset(wdev->wiphy,
+					     NL80211_EXT_FEATURE_SECURE_NAN))
+			return -EOPNOTSUPP;
+		break;
 	default:
 		return -EOPNOTSUPP;
 	}
@@ -11480,10 +12422,23 @@
 		return -EINVAL;
 
 	wdev_lock(wdev);
-	if (params.offchan && !cfg80211_off_channel_oper_allowed(wdev)) {
+	if (params.offchan &&
+	    !cfg80211_off_channel_oper_allowed(wdev, chandef.chan)) {
 		wdev_unlock(wdev);
 		return -EBUSY;
 	}
+
+	params.link_id = nl80211_link_id_or_invalid(info->attrs);
+	/*
+	 * This now races due to the unlock, but we cannot check
+	 * the valid links for the _station_ anyway, so that's up
+	 * to the driver.
+	 */
+	if (params.link_id >= 0 &&
+	    !(wdev->valid_links & BIT(params.link_id))) {
+		wdev_unlock(wdev);
+		return -EINVAL;
+	}
 	wdev_unlock(wdev);
 
 	params.buf = nla_data(info->attrs[NL80211_ATTR_FRAME]);
@@ -11565,6 +12520,10 @@
 	case NL80211_IFTYPE_P2P_DEVICE:
 		break;
 	case NL80211_IFTYPE_NAN:
+		if (!wiphy_ext_feature_isset(wdev->wiphy,
+					     NL80211_EXT_FEATURE_SECURE_NAN))
+			return -EOPNOTSUPP;
+		break;
 	default:
 		return -EOPNOTSUPP;
 	}
@@ -11698,12 +12657,13 @@
 	 * connection is established and enough beacons received to calculate
 	 * the average.
 	 */
-	if (!wdev->cqm_config->last_rssi_event_value && wdev->current_bss &&
+	if (!wdev->cqm_config->last_rssi_event_value &&
+	    wdev->links[0].client.current_bss &&
 	    rdev->ops->get_station) {
 		struct station_info sinfo = {};
 		u8 *mac_addr;
 
-		mac_addr = wdev->current_bss->pub.bssid;
+		mac_addr = wdev->links[0].client.current_bss->pub.bssid;
 
 		err = rdev_get_station(rdev, dev, mac_addr, &sinfo);
 		if (err)
@@ -11964,7 +12924,7 @@
 		err = nl80211_parse_tx_bitrate_mask(info, info->attrs,
 						    NL80211_ATTR_TX_RATES,
 						    &setup.beacon_rate,
-						    dev, false);
+						    dev, false, 0);
 		if (err)
 			return err;
 
@@ -12922,7 +13882,9 @@
 		return -ERANGE;
 	if (nla_len(tb[NL80211_REKEY_DATA_KCK]) != NL80211_KCK_LEN &&
 	    !(rdev->wiphy.flags & WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK &&
-	      nla_len(tb[NL80211_REKEY_DATA_KCK]) == NL80211_KCK_EXT_LEN))
+	      nla_len(tb[NL80211_REKEY_DATA_KCK]) == NL80211_KCK_EXT_LEN) &&
+	     !(rdev->wiphy.flags & WIPHY_FLAG_SUPPORTS_EXT_KCK_32 &&
+	       nla_len(tb[NL80211_REKEY_DATA_KCK]) == NL80211_KCK_EXT_LEN_32))
 		return -ERANGE;
 
 	rekey_data.kek = nla_data(tb[NL80211_REKEY_DATA_KEK]);
@@ -12934,7 +13896,7 @@
 		rekey_data.akm = nla_get_u32(tb[NL80211_REKEY_DATA_AKM]);
 
 	wdev_lock(wdev);
-	if (!wdev->current_bss) {
+	if (!wdev->connected) {
 		err = -ENOTCONN;
 		goto out;
 	}
@@ -14203,7 +15165,7 @@
 	switch (wdev->iftype) {
 	case NL80211_IFTYPE_STATION:
 	case NL80211_IFTYPE_P2P_CLIENT:
-		if (wdev->current_bss)
+		if (wdev->connected)
 			break;
 		err = -ENOTCONN;
 		goto out;
@@ -14376,13 +15338,13 @@
 		return -EINVAL;
 
 	wdev_lock(wdev);
-	if (!wdev->current_bss) {
+	if (!wdev->connected) {
 		ret = -ENOTCONN;
 		goto out;
 	}
 
 	pmk_conf.aa = nla_data(info->attrs[NL80211_ATTR_MAC]);
-	if (memcmp(pmk_conf.aa, wdev->current_bss->pub.bssid, ETH_ALEN)) {
+	if (memcmp(pmk_conf.aa, wdev->u.client.connected_addr, ETH_ALEN)) {
 		ret = -EINVAL;
 		goto out;
 	}
@@ -14486,6 +15448,7 @@
 	u16 proto;
 	bool noencrypt;
 	u64 cookie = 0;
+	int link_id;
 	int err;
 
 	if (!wiphy_ext_feature_isset(&rdev->wiphy,
@@ -14510,9 +15473,13 @@
 	case NL80211_IFTYPE_MESH_POINT:
 		break;
 	case NL80211_IFTYPE_ADHOC:
+		if (wdev->u.ibss.current_bss)
+			break;
+		err = -ENOTCONN;
+		goto out;
 	case NL80211_IFTYPE_STATION:
 	case NL80211_IFTYPE_P2P_CLIENT:
-		if (wdev->current_bss)
+		if (wdev->connected)
 			break;
 		err = -ENOTCONN;
 		goto out;
@@ -14530,8 +15497,10 @@
 	noencrypt =
 		nla_get_flag(info->attrs[NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT]);
 
+	link_id = nl80211_link_id_or_invalid(info->attrs);
+
 	err = rdev_tx_control_port(rdev, dev, buf, len,
-				   dest, cpu_to_be16(proto), noencrypt,
+				   dest, cpu_to_be16(proto), noencrypt, link_id,
 				   dont_wait_for_ack ? NULL : &cookie);
 	if (!err && !dont_wait_for_ack)
 		nl_set_extack_cookie_u64(info->extack, cookie);
@@ -14548,12 +15517,14 @@
 	struct net_device *dev = info->user_ptr[1];
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
 	struct cfg80211_ftm_responder_stats ftm_stats = {};
+	unsigned int link_id = nl80211_link_id(info->attrs);
 	struct sk_buff *msg;
 	void *hdr;
 	struct nlattr *ftm_stats_attr;
 	int err;
 
-	if (wdev->iftype != NL80211_IFTYPE_AP || !wdev->beacon_interval)
+	if (wdev->iftype != NL80211_IFTYPE_AP ||
+	    !wdev->links[link_id].ap.beacon_interval)
 		return -EOPNOTSUPP;
 
 	err = rdev_get_ftm_responder_stats(rdev, dev, &ftm_stats);
@@ -14683,7 +15654,8 @@
 static int parse_tid_conf(struct cfg80211_registered_device *rdev,
 			  struct nlattr *attrs[], struct net_device *dev,
 			  struct cfg80211_tid_cfg *tid_conf,
-			  struct genl_info *info, const u8 *peer)
+			  struct genl_info *info, const u8 *peer,
+			  unsigned int link_id)
 {
 	struct netlink_ext_ack *extack = info->extack;
 	u64 mask;
@@ -14758,7 +15730,7 @@
 			attr = NL80211_TID_CONFIG_ATTR_TX_RATE;
 			err = nl80211_parse_tx_bitrate_mask(info, attrs, attr,
 						    &tid_conf->txrate_mask, dev,
-						    true);
+						    true, link_id);
 			if (err)
 				return err;
 
@@ -14785,6 +15757,7 @@
 {
 	struct cfg80211_registered_device *rdev = info->user_ptr[0];
 	struct nlattr *attrs[NL80211_TID_CONFIG_ATTR_MAX + 1];
+	unsigned int link_id = nl80211_link_id(info->attrs);
 	struct net_device *dev = info->user_ptr[1];
 	struct cfg80211_tid_config *tid_config;
 	struct nlattr *tid;
@@ -14812,6 +15785,8 @@
 	if (info->attrs[NL80211_ATTR_MAC])
 		tid_config->peer = nla_data(info->attrs[NL80211_ATTR_MAC]);
 
+	wdev_lock(dev->ieee80211_ptr);
+
 	nla_for_each_nested(tid, info->attrs[NL80211_ATTR_TID_CONFIG],
 			    rem_conf) {
 		ret = nla_parse_nested(attrs, NL80211_TID_CONFIG_ATTR_MAX,
@@ -14822,7 +15797,7 @@
 
 		ret = parse_tid_conf(rdev, attrs, dev,
 				     &tid_config->tid_conf[conf_idx],
-				     info, tid_config->peer);
+				     info, tid_config->peer, link_id);
 		if (ret)
 			goto bad_tid_conf;
 
@@ -14833,6 +15808,7 @@
 
 bad_tid_conf:
 	kfree(tid_config);
+	wdev_unlock(dev->ieee80211_ptr);
 	return ret;
 }
 
@@ -14932,10 +15908,228 @@
 	wdev_unlock(wdev);
 
 out:
+	kfree(params.beacon_next.mbssid_ies);
+	kfree(params.beacon_color_change.mbssid_ies);
 	kfree(tb);
 	return err;
 }
 
+static int nl80211_set_fils_aad(struct sk_buff *skb,
+				struct genl_info *info)
+{
+	struct cfg80211_registered_device *rdev = info->user_ptr[0];
+	struct net_device *dev = info->user_ptr[1];
+	struct cfg80211_fils_aad fils_aad = {};
+	u8 *nonces;
+
+	if (!info->attrs[NL80211_ATTR_MAC] ||
+	    !info->attrs[NL80211_ATTR_FILS_KEK] ||
+	    !info->attrs[NL80211_ATTR_FILS_NONCES])
+		return -EINVAL;
+
+	fils_aad.macaddr = nla_data(info->attrs[NL80211_ATTR_MAC]);
+	fils_aad.kek_len = nla_len(info->attrs[NL80211_ATTR_FILS_KEK]);
+	fils_aad.kek = nla_data(info->attrs[NL80211_ATTR_FILS_KEK]);
+	nonces = nla_data(info->attrs[NL80211_ATTR_FILS_NONCES]);
+	fils_aad.snonce = nonces;
+	fils_aad.anonce = nonces + FILS_NONCE_LEN;
+
+	return rdev_set_fils_aad(rdev, dev, &fils_aad);
+}
+
+static int nl80211_add_link(struct sk_buff *skb, struct genl_info *info)
+{
+	struct cfg80211_registered_device *rdev = info->user_ptr[0];
+	unsigned int link_id = nl80211_link_id(info->attrs);
+	struct net_device *dev = info->user_ptr[1];
+	struct wireless_dev *wdev = dev->ieee80211_ptr;
+	int ret;
+
+	if (!(wdev->wiphy->flags & WIPHY_FLAG_SUPPORTS_MLO))
+		return -EINVAL;
+
+	switch (wdev->iftype) {
+	case NL80211_IFTYPE_AP:
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	if (!info->attrs[NL80211_ATTR_MAC] ||
+	    !is_valid_ether_addr(nla_data(info->attrs[NL80211_ATTR_MAC])))
+		return -EINVAL;
+
+	wdev_lock(wdev);
+	wdev->valid_links |= BIT(link_id);
+	ether_addr_copy(wdev->links[link_id].addr,
+			nla_data(info->attrs[NL80211_ATTR_MAC]));
+
+	ret = rdev_add_intf_link(rdev, wdev, link_id);
+	if (ret) {
+		wdev->valid_links &= ~BIT(link_id);
+		eth_zero_addr(wdev->links[link_id].addr);
+	}
+	wdev_unlock(wdev);
+
+	return ret;
+}
+
+static int nl80211_remove_link(struct sk_buff *skb, struct genl_info *info)
+{
+	unsigned int link_id = nl80211_link_id(info->attrs);
+	struct net_device *dev = info->user_ptr[1];
+	struct wireless_dev *wdev = dev->ieee80211_ptr;
+
+	/* cannot remove if there's no link */
+	if (!info->attrs[NL80211_ATTR_MLO_LINK_ID])
+		return -EINVAL;
+
+	switch (wdev->iftype) {
+	case NL80211_IFTYPE_AP:
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	wdev_lock(wdev);
+	cfg80211_remove_link(wdev, link_id);
+	wdev_unlock(wdev);
+
+	return 0;
+}
+
+static int
+nl80211_add_mod_link_station(struct sk_buff *skb, struct genl_info *info,
+			     bool add)
+{
+	struct link_station_parameters params = {};
+	struct cfg80211_registered_device *rdev = info->user_ptr[0];
+	struct net_device *dev = info->user_ptr[1];
+	int err;
+
+	if ((add && !rdev->ops->add_link_station) ||
+	    (!add && !rdev->ops->mod_link_station))
+		return -EOPNOTSUPP;
+
+	if (add && !info->attrs[NL80211_ATTR_MAC])
+		return -EINVAL;
+
+	if (!info->attrs[NL80211_ATTR_MLD_ADDR])
+		return -EINVAL;
+
+	if (add && !info->attrs[NL80211_ATTR_STA_SUPPORTED_RATES])
+		return -EINVAL;
+
+	params.mld_mac = nla_data(info->attrs[NL80211_ATTR_MLD_ADDR]);
+
+	if (info->attrs[NL80211_ATTR_MAC]) {
+		params.link_mac = nla_data(info->attrs[NL80211_ATTR_MAC]);
+		if (!is_valid_ether_addr(params.link_mac))
+			return -EINVAL;
+	}
+
+	if (!info->attrs[NL80211_ATTR_MLO_LINK_ID])
+		return -EINVAL;
+
+	params.link_id = nla_get_u8(info->attrs[NL80211_ATTR_MLO_LINK_ID]);
+
+	if (info->attrs[NL80211_ATTR_STA_SUPPORTED_RATES]) {
+		params.supported_rates =
+			nla_data(info->attrs[NL80211_ATTR_STA_SUPPORTED_RATES]);
+		params.supported_rates_len =
+			nla_len(info->attrs[NL80211_ATTR_STA_SUPPORTED_RATES]);
+	}
+
+	if (info->attrs[NL80211_ATTR_HT_CAPABILITY])
+		params.ht_capa =
+			nla_data(info->attrs[NL80211_ATTR_HT_CAPABILITY]);
+
+	if (info->attrs[NL80211_ATTR_VHT_CAPABILITY])
+		params.vht_capa =
+			nla_data(info->attrs[NL80211_ATTR_VHT_CAPABILITY]);
+
+	if (info->attrs[NL80211_ATTR_HE_CAPABILITY]) {
+		params.he_capa =
+			nla_data(info->attrs[NL80211_ATTR_HE_CAPABILITY]);
+		params.he_capa_len =
+			nla_len(info->attrs[NL80211_ATTR_HE_CAPABILITY]);
+
+		if (info->attrs[NL80211_ATTR_EHT_CAPABILITY]) {
+			params.eht_capa =
+				nla_data(info->attrs[NL80211_ATTR_EHT_CAPABILITY]);
+			params.eht_capa_len =
+				nla_len(info->attrs[NL80211_ATTR_EHT_CAPABILITY]);
+
+			if (!ieee80211_eht_capa_size_ok((const u8 *)params.he_capa,
+							(const u8 *)params.eht_capa,
+							params.eht_capa_len,
+							false))
+				return -EINVAL;
+		}
+	}
+
+	if (info->attrs[NL80211_ATTR_HE_6GHZ_CAPABILITY])
+		params.he_6ghz_capa =
+			nla_data(info->attrs[NL80211_ATTR_HE_6GHZ_CAPABILITY]);
+
+	if (info->attrs[NL80211_ATTR_OPMODE_NOTIF]) {
+		params.opmode_notif_used = true;
+		params.opmode_notif =
+			nla_get_u8(info->attrs[NL80211_ATTR_OPMODE_NOTIF]);
+	}
+
+	err = nl80211_parse_sta_txpower_setting(info, &params.txpwr,
+						&params.txpwr_set);
+	if (err)
+		return err;
+
+	wdev_lock(dev->ieee80211_ptr);
+	if (add)
+		err = rdev_add_link_station(rdev, dev, &params);
+	else
+		err = rdev_mod_link_station(rdev, dev, &params);
+	wdev_unlock(dev->ieee80211_ptr);
+
+	return err;
+}
+
+static int
+nl80211_add_link_station(struct sk_buff *skb, struct genl_info *info)
+{
+	return nl80211_add_mod_link_station(skb, info, true);
+}
+
+static int
+nl80211_modify_link_station(struct sk_buff *skb, struct genl_info *info)
+{
+	return nl80211_add_mod_link_station(skb, info, false);
+}
+
+static int
+nl80211_remove_link_station(struct sk_buff *skb, struct genl_info *info)
+{
+	struct link_station_del_parameters params = {};
+	struct cfg80211_registered_device *rdev = info->user_ptr[0];
+	struct net_device *dev = info->user_ptr[1];
+	int ret;
+
+	if (!rdev->ops->del_link_station)
+		return -EOPNOTSUPP;
+
+	if (!info->attrs[NL80211_ATTR_MLD_ADDR] ||
+	    !info->attrs[NL80211_ATTR_MLO_LINK_ID])
+		return -EINVAL;
+
+	params.mld_mac = nla_data(info->attrs[NL80211_ATTR_MLD_ADDR]);
+	params.link_id = nla_get_u8(info->attrs[NL80211_ATTR_MLO_LINK_ID]);
+
+	wdev_lock(dev->ieee80211_ptr);
+	ret = rdev_del_link_station(rdev, dev, &params);
+	wdev_unlock(dev->ieee80211_ptr);
+
+	return ret;
+}
+
 #define NL80211_FLAG_NEED_WIPHY		0x01
 #define NL80211_FLAG_NEED_NETDEV	0x02
 #define NL80211_FLAG_NEED_RTNL		0x04
@@ -14948,38 +16142,121 @@
 					 NL80211_FLAG_CHECK_NETDEV_UP)
 #define NL80211_FLAG_CLEAR_SKB		0x20
 #define NL80211_FLAG_NO_WIPHY_MTX	0x40
+#define NL80211_FLAG_MLO_VALID_LINK_ID	0x80
+#define NL80211_FLAG_MLO_UNSUPPORTED	0x100
+
+#define INTERNAL_FLAG_SELECTORS(__sel)			\
+	SELECTOR(__sel, NONE, 0) /* must be first */	\
+	SELECTOR(__sel, WIPHY,				\
+		 NL80211_FLAG_NEED_WIPHY)		\
+	SELECTOR(__sel, WDEV,				\
+		 NL80211_FLAG_NEED_WDEV)		\
+	SELECTOR(__sel, NETDEV,				\
+		 NL80211_FLAG_NEED_NETDEV)		\
+	SELECTOR(__sel, NETDEV_LINK,			\
+		 NL80211_FLAG_NEED_NETDEV |		\
+		 NL80211_FLAG_MLO_VALID_LINK_ID)	\
+	SELECTOR(__sel, NETDEV_NO_MLO,			\
+		 NL80211_FLAG_NEED_NETDEV |		\
+		 NL80211_FLAG_MLO_UNSUPPORTED)	\
+	SELECTOR(__sel, WIPHY_RTNL,			\
+		 NL80211_FLAG_NEED_WIPHY |		\
+		 NL80211_FLAG_NEED_RTNL)		\
+	SELECTOR(__sel, WIPHY_RTNL_NOMTX,		\
+		 NL80211_FLAG_NEED_WIPHY |		\
+		 NL80211_FLAG_NEED_RTNL |		\
+		 NL80211_FLAG_NO_WIPHY_MTX)		\
+	SELECTOR(__sel, WDEV_RTNL,			\
+		 NL80211_FLAG_NEED_WDEV |		\
+		 NL80211_FLAG_NEED_RTNL)		\
+	SELECTOR(__sel, NETDEV_RTNL,			\
+		 NL80211_FLAG_NEED_NETDEV |		\
+		 NL80211_FLAG_NEED_RTNL)		\
+	SELECTOR(__sel, NETDEV_UP,			\
+		 NL80211_FLAG_NEED_NETDEV_UP)		\
+	SELECTOR(__sel, NETDEV_UP_LINK,			\
+		 NL80211_FLAG_NEED_NETDEV_UP |		\
+		 NL80211_FLAG_MLO_VALID_LINK_ID)	\
+	SELECTOR(__sel, NETDEV_UP_NO_MLO,		\
+		 NL80211_FLAG_NEED_NETDEV_UP |		\
+		 NL80211_FLAG_MLO_UNSUPPORTED)		\
+	SELECTOR(__sel, NETDEV_UP_NO_MLO_CLEAR,		\
+		 NL80211_FLAG_NEED_NETDEV_UP |		\
+		 NL80211_FLAG_CLEAR_SKB |		\
+		 NL80211_FLAG_MLO_UNSUPPORTED)		\
+	SELECTOR(__sel, NETDEV_UP_NOTMX,		\
+		 NL80211_FLAG_NEED_NETDEV_UP |		\
+		 NL80211_FLAG_NO_WIPHY_MTX)		\
+	SELECTOR(__sel, NETDEV_UP_NOTMX_NOMLO,		\
+		 NL80211_FLAG_NEED_NETDEV_UP |		\
+		 NL80211_FLAG_NO_WIPHY_MTX |		\
+		 NL80211_FLAG_MLO_UNSUPPORTED)		\
+	SELECTOR(__sel, NETDEV_UP_CLEAR,		\
+		 NL80211_FLAG_NEED_NETDEV_UP |		\
+		 NL80211_FLAG_CLEAR_SKB)		\
+	SELECTOR(__sel, WDEV_UP,			\
+		 NL80211_FLAG_NEED_WDEV_UP)		\
+	SELECTOR(__sel, WDEV_UP_LINK,			\
+		 NL80211_FLAG_NEED_WDEV_UP |		\
+		 NL80211_FLAG_MLO_VALID_LINK_ID)	\
+	SELECTOR(__sel, WDEV_UP_RTNL,			\
+		 NL80211_FLAG_NEED_WDEV_UP |		\
+		 NL80211_FLAG_NEED_RTNL)		\
+	SELECTOR(__sel, WIPHY_CLEAR,			\
+		 NL80211_FLAG_NEED_WIPHY |		\
+		 NL80211_FLAG_CLEAR_SKB)
+
+enum nl80211_internal_flags_selector {
+#define SELECTOR(_, name, value)	NL80211_IFL_SEL_##name,
+	INTERNAL_FLAG_SELECTORS(_)
+#undef SELECTOR
+};
+
+static u32 nl80211_internal_flags[] = {
+#define SELECTOR(_, name, value)	[NL80211_IFL_SEL_##name] = value,
+	INTERNAL_FLAG_SELECTORS(_)
+#undef SELECTOR
+};
 
 static int nl80211_pre_doit(const struct genl_ops *ops, struct sk_buff *skb,
 			    struct genl_info *info)
 {
 	struct cfg80211_registered_device *rdev = NULL;
-	struct wireless_dev *wdev;
-	struct net_device *dev;
+	struct wireless_dev *wdev = NULL;
+	struct net_device *dev = NULL;
+	u32 internal_flags;
+	int err;
+
+	if (WARN_ON(ops->internal_flags >= ARRAY_SIZE(nl80211_internal_flags)))
+		return -EINVAL;
+
+	internal_flags = nl80211_internal_flags[ops->internal_flags];
 
 	rtnl_lock();
-	if (ops->internal_flags & NL80211_FLAG_NEED_WIPHY) {
+	if (internal_flags & NL80211_FLAG_NEED_WIPHY) {
 		rdev = cfg80211_get_dev_from_info(genl_info_net(info), info);
 		if (IS_ERR(rdev)) {
-			rtnl_unlock();
-			return PTR_ERR(rdev);
+			err = PTR_ERR(rdev);
+			goto out_unlock;
 		}
 		info->user_ptr[0] = rdev;
-	} else if (ops->internal_flags & NL80211_FLAG_NEED_NETDEV ||
-		   ops->internal_flags & NL80211_FLAG_NEED_WDEV) {
+	} else if (internal_flags & NL80211_FLAG_NEED_NETDEV ||
+		   internal_flags & NL80211_FLAG_NEED_WDEV) {
 		wdev = __cfg80211_wdev_from_attrs(NULL, genl_info_net(info),
 						  info->attrs);
 		if (IS_ERR(wdev)) {
-			rtnl_unlock();
-			return PTR_ERR(wdev);
+			err = PTR_ERR(wdev);
+			goto out_unlock;
 		}
 
 		dev = wdev->netdev;
+		dev_hold(dev);
 		rdev = wiphy_to_rdev(wdev->wiphy);
 
-		if (ops->internal_flags & NL80211_FLAG_NEED_NETDEV) {
+		if (internal_flags & NL80211_FLAG_NEED_NETDEV) {
 			if (!dev) {
-				rtnl_unlock();
-				return -EINVAL;
+				err = -EINVAL;
+				goto out_unlock;
 			}
 
 			info->user_ptr[1] = dev;
@@ -14987,32 +16264,68 @@
 			info->user_ptr[1] = wdev;
 		}
 
-		if (ops->internal_flags & NL80211_FLAG_CHECK_NETDEV_UP &&
+		if (internal_flags & NL80211_FLAG_CHECK_NETDEV_UP &&
 		    !wdev_running(wdev)) {
-			rtnl_unlock();
-			return -ENETDOWN;
+			err = -ENETDOWN;
+			goto out_unlock;
 		}
 
-		dev_hold(dev);
 		info->user_ptr[0] = rdev;
 	}
 
-	if (rdev && !(ops->internal_flags & NL80211_FLAG_NO_WIPHY_MTX)) {
+	if (internal_flags & NL80211_FLAG_MLO_VALID_LINK_ID) {
+		struct nlattr *link_id = info->attrs[NL80211_ATTR_MLO_LINK_ID];
+
+		if (!wdev) {
+			err = -EINVAL;
+			goto out_unlock;
+		}
+
+		/* MLO -> require valid link ID */
+		if (wdev->valid_links &&
+		    (!link_id ||
+		     !(wdev->valid_links & BIT(nla_get_u8(link_id))))) {
+			err = -EINVAL;
+			goto out_unlock;
+		}
+
+		/* non-MLO -> no link ID attribute accepted */
+		if (!wdev->valid_links && link_id) {
+			err = -EINVAL;
+			goto out_unlock;
+		}
+	}
+
+	if (internal_flags & NL80211_FLAG_MLO_UNSUPPORTED) {
+		if (info->attrs[NL80211_ATTR_MLO_LINK_ID] ||
+		    (wdev && wdev->valid_links)) {
+			err = -EINVAL;
+			goto out_unlock;
+		}
+	}
+
+	if (rdev && !(internal_flags & NL80211_FLAG_NO_WIPHY_MTX)) {
 		wiphy_lock(&rdev->wiphy);
 		/* we keep the mutex locked until post_doit */
 		__release(&rdev->wiphy.mtx);
 	}
-	if (!(ops->internal_flags & NL80211_FLAG_NEED_RTNL))
+	if (!(internal_flags & NL80211_FLAG_NEED_RTNL))
 		rtnl_unlock();
 
 	return 0;
+out_unlock:
+	rtnl_unlock();
+	dev_put(dev);
+	return err;
 }
 
 static void nl80211_post_doit(const struct genl_ops *ops, struct sk_buff *skb,
 			      struct genl_info *info)
 {
+	u32 internal_flags = nl80211_internal_flags[ops->internal_flags];
+
 	if (info->user_ptr[1]) {
-		if (ops->internal_flags & NL80211_FLAG_NEED_WDEV) {
+		if (internal_flags & NL80211_FLAG_NEED_WDEV) {
 			struct wireless_dev *wdev = info->user_ptr[1];
 
 			dev_put(wdev->netdev);
@@ -15022,7 +16335,7 @@
 	}
 
 	if (info->user_ptr[0] &&
-	    !(ops->internal_flags & NL80211_FLAG_NO_WIPHY_MTX)) {
+	    !(internal_flags & NL80211_FLAG_NO_WIPHY_MTX)) {
 		struct cfg80211_registered_device *rdev = info->user_ptr[0];
 
 		/* we kept the mutex locked since pre_doit */
@@ -15030,7 +16343,7 @@
 		wiphy_unlock(&rdev->wiphy);
 	}
 
-	if (ops->internal_flags & NL80211_FLAG_NEED_RTNL)
+	if (internal_flags & NL80211_FLAG_NEED_RTNL)
 		rtnl_unlock();
 
 	/* If needed, clear the netlink message payload from the SKB
@@ -15038,7 +16351,7 @@
 	 * the heap after the SKB is freed. The netlink message header
 	 * is still needed for further processing, so leave it intact.
 	 */
-	if (ops->internal_flags & NL80211_FLAG_CLEAR_SKB) {
+	if (internal_flags & NL80211_FLAG_CLEAR_SKB) {
 		struct nlmsghdr *nlh = nlmsg_hdr(skb);
 
 		memset(nlmsg_data(nlh), 0, nlmsg_len(nlh));
@@ -15150,6 +16463,11 @@
 	return err;
 }
 
+#define SELECTOR(__sel, name, value) \
+	((__sel) == (value)) ? NL80211_IFL_SEL_##name :
+int __missing_selector(void);
+#define IFLAGS(__val) INTERNAL_FLAG_SELECTORS(__val) __missing_selector()
+
 static const struct genl_ops nl80211_ops[] = {
 	{
 		.cmd = NL80211_CMD_GET_WIPHY,
@@ -15158,7 +16476,7 @@
 		.dumpit = nl80211_dump_wiphy,
 		.done = nl80211_dump_wiphy_done,
 		/* can be retrieved by unprivileged users */
-		.internal_flags = NL80211_FLAG_NEED_WIPHY,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WIPHY),
 	},
 };
 
@@ -15175,112 +16493,117 @@
 		.doit = nl80211_get_interface,
 		.dumpit = nl80211_dump_interface,
 		/* can be retrieved by unprivileged users */
-		.internal_flags = NL80211_FLAG_NEED_WDEV,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV),
 	},
 	{
 		.cmd = NL80211_CMD_SET_INTERFACE,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_interface,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV |
-				  NL80211_FLAG_NEED_RTNL,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV |
+					 NL80211_FLAG_NEED_RTNL),
 	},
 	{
 		.cmd = NL80211_CMD_NEW_INTERFACE,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_new_interface,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WIPHY |
-				  NL80211_FLAG_NEED_RTNL |
-				  /* we take the wiphy mutex later ourselves */
-				  NL80211_FLAG_NO_WIPHY_MTX,
+		.internal_flags =
+			IFLAGS(NL80211_FLAG_NEED_WIPHY |
+			       NL80211_FLAG_NEED_RTNL |
+			       /* we take the wiphy mutex later ourselves */
+			       NL80211_FLAG_NO_WIPHY_MTX),
 	},
 	{
 		.cmd = NL80211_CMD_DEL_INTERFACE,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_del_interface,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WDEV |
-				  NL80211_FLAG_NEED_RTNL,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV |
+					 NL80211_FLAG_NEED_RTNL),
 	},
 	{
 		.cmd = NL80211_CMD_GET_KEY,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_get_key,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_SET_KEY,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_key,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
-				  NL80211_FLAG_CLEAR_SKB,
+		/* cannot use NL80211_FLAG_MLO_VALID_LINK_ID, depends on key */
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_CLEAR_SKB),
 	},
 	{
 		.cmd = NL80211_CMD_NEW_KEY,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_new_key,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
-				  NL80211_FLAG_CLEAR_SKB,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_CLEAR_SKB),
 	},
 	{
 		.cmd = NL80211_CMD_DEL_KEY,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_del_key,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_SET_BEACON,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.flags = GENL_UNS_ADMIN_PERM,
 		.doit = nl80211_set_beacon,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_MLO_VALID_LINK_ID),
 	},
 	{
 		.cmd = NL80211_CMD_START_AP,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.flags = GENL_UNS_ADMIN_PERM,
 		.doit = nl80211_start_ap,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_MLO_VALID_LINK_ID),
 	},
 	{
 		.cmd = NL80211_CMD_STOP_AP,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.flags = GENL_UNS_ADMIN_PERM,
 		.doit = nl80211_stop_ap,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_MLO_VALID_LINK_ID),
 	},
 	{
 		.cmd = NL80211_CMD_GET_STATION,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_get_station,
 		.dumpit = nl80211_dump_station,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV),
 	},
 	{
 		.cmd = NL80211_CMD_SET_STATION,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_station,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_NEW_STATION,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_new_station,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_DEL_STATION,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_del_station,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_GET_MPATH,
@@ -15288,7 +16611,7 @@
 		.doit = nl80211_get_mpath,
 		.dumpit = nl80211_dump_mpath,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_GET_MPP,
@@ -15296,42 +16619,42 @@
 		.doit = nl80211_get_mpp,
 		.dumpit = nl80211_dump_mpp,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_SET_MPATH,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_mpath,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_NEW_MPATH,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_new_mpath,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_DEL_MPATH,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_del_mpath,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_SET_BSS,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_bss,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_MLO_VALID_LINK_ID),
 	},
 	{
 		.cmd = NL80211_CMD_GET_REG,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_get_reg_do,
 		.dumpit = nl80211_get_reg_dump,
-		.internal_flags = 0,
 		/* can be retrieved by unprivileged users */
 	},
 #ifdef CONFIG_CFG80211_CRDA_SUPPORT
@@ -15340,7 +16663,6 @@
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_reg,
 		.flags = GENL_ADMIN_PERM,
-		.internal_flags = 0,
 	},
 #endif
 	{
@@ -15360,28 +16682,28 @@
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_get_mesh_config,
 		/* can be retrieved by unprivileged users */
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_SET_MESH_CONFIG,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_update_mesh_config,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_TRIGGER_SCAN,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_trigger_scan,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_ABORT_SCAN,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_abort_scan,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_GET_SCAN,
@@ -15393,60 +16715,58 @@
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_start_sched_scan,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_STOP_SCHED_SCAN,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_stop_sched_scan,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_AUTHENTICATE,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_authenticate,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
-				  0 |
-				  NL80211_FLAG_CLEAR_SKB,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_CLEAR_SKB),
 	},
 	{
 		.cmd = NL80211_CMD_ASSOCIATE,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_associate,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
-				  0 |
-				  NL80211_FLAG_CLEAR_SKB,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_CLEAR_SKB),
 	},
 	{
 		.cmd = NL80211_CMD_DEAUTHENTICATE,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_deauthenticate,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_DISASSOCIATE,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_disassociate,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_JOIN_IBSS,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_join_ibss,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_LEAVE_IBSS,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_leave_ibss,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 #ifdef CONFIG_NL80211_TESTMODE
 	{
@@ -15455,7 +16775,7 @@
 		.doit = nl80211_testmode_do,
 		.dumpit = nl80211_testmode_dump,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WIPHY,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WIPHY),
 	},
 #endif
 	{
@@ -15463,34 +16783,32 @@
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_connect,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
-				  0 |
-				  NL80211_FLAG_CLEAR_SKB,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_CLEAR_SKB),
 	},
 	{
 		.cmd = NL80211_CMD_UPDATE_CONNECT_PARAMS,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_update_connect_params,
 		.flags = GENL_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
-				  0 |
-				  NL80211_FLAG_CLEAR_SKB,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_CLEAR_SKB),
 	},
 	{
 		.cmd = NL80211_CMD_DISCONNECT,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_disconnect,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_SET_WIPHY_NETNS,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_wiphy_netns,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WIPHY |
-				  NL80211_FLAG_NEED_RTNL |
-				  NL80211_FLAG_NO_WIPHY_MTX,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WIPHY |
+					 NL80211_FLAG_NEED_RTNL |
+					 NL80211_FLAG_NO_WIPHY_MTX),
 	},
 	{
 		.cmd = NL80211_CMD_GET_SURVEY,
@@ -15502,121 +16820,124 @@
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_setdel_pmksa,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
-				  0 |
-				  NL80211_FLAG_CLEAR_SKB,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_CLEAR_SKB),
 	},
 	{
 		.cmd = NL80211_CMD_DEL_PMKSA,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_setdel_pmksa,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_FLUSH_PMKSA,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_flush_pmksa,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_REMAIN_ON_CHANNEL,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_remain_on_channel,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WDEV_UP,
+		/* FIXME: requiring a link ID here is probably not good */
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP |
+					 NL80211_FLAG_MLO_VALID_LINK_ID),
 	},
 	{
 		.cmd = NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_cancel_remain_on_channel,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_SET_TX_BITRATE_MASK,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_tx_bitrate_mask,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV |
+					 NL80211_FLAG_MLO_VALID_LINK_ID),
 	},
 	{
 		.cmd = NL80211_CMD_REGISTER_FRAME,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_register_mgmt,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WDEV,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV),
 	},
 	{
 		.cmd = NL80211_CMD_FRAME,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_tx_mgmt,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_FRAME_WAIT_CANCEL,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_tx_mgmt_cancel_wait,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_SET_POWER_SAVE,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_power_save,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV),
 	},
 	{
 		.cmd = NL80211_CMD_GET_POWER_SAVE,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_get_power_save,
 		/* can be retrieved by unprivileged users */
-		.internal_flags = NL80211_FLAG_NEED_NETDEV,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV),
 	},
 	{
 		.cmd = NL80211_CMD_SET_CQM,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_cqm,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV),
 	},
 	{
 		.cmd = NL80211_CMD_SET_CHANNEL,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_channel,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV |
+					 NL80211_FLAG_MLO_VALID_LINK_ID),
 	},
 	{
 		.cmd = NL80211_CMD_JOIN_MESH,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_join_mesh,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_LEAVE_MESH,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_leave_mesh,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_JOIN_OCB,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_join_ocb,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_LEAVE_OCB,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_leave_ocb,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 #ifdef CONFIG_PM
 	{
@@ -15624,14 +16945,14 @@
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_get_wowlan,
 		/* can be retrieved by unprivileged users */
-		.internal_flags = NL80211_FLAG_NEED_WIPHY,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WIPHY),
 	},
 	{
 		.cmd = NL80211_CMD_SET_WOWLAN,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_wowlan,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WIPHY,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WIPHY),
 	},
 #endif
 	{
@@ -15639,125 +16960,127 @@
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_rekey_data,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
-				  0 |
-				  NL80211_FLAG_CLEAR_SKB,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_CLEAR_SKB),
 	},
 	{
 		.cmd = NL80211_CMD_TDLS_MGMT,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_tdls_mgmt,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_TDLS_OPER,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_tdls_oper,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_UNEXPECTED_FRAME,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_register_unexpected_frame,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV),
 	},
 	{
 		.cmd = NL80211_CMD_PROBE_CLIENT,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_probe_client,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_REGISTER_BEACONS,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_register_beacons,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WIPHY,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WIPHY),
 	},
 	{
 		.cmd = NL80211_CMD_SET_NOACK_MAP,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_noack_map,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV),
 	},
 	{
 		.cmd = NL80211_CMD_START_P2P_DEVICE,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_start_p2p_device,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WDEV |
-				  NL80211_FLAG_NEED_RTNL,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV |
+					 NL80211_FLAG_NEED_RTNL),
 	},
 	{
 		.cmd = NL80211_CMD_STOP_P2P_DEVICE,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_stop_p2p_device,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WDEV_UP |
-				  NL80211_FLAG_NEED_RTNL,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP |
+					 NL80211_FLAG_NEED_RTNL),
 	},
 	{
 		.cmd = NL80211_CMD_START_NAN,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_start_nan,
 		.flags = GENL_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WDEV |
-				  NL80211_FLAG_NEED_RTNL,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV |
+					 NL80211_FLAG_NEED_RTNL),
 	},
 	{
 		.cmd = NL80211_CMD_STOP_NAN,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_stop_nan,
 		.flags = GENL_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WDEV_UP |
-				  NL80211_FLAG_NEED_RTNL,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP |
+					 NL80211_FLAG_NEED_RTNL),
 	},
 	{
 		.cmd = NL80211_CMD_ADD_NAN_FUNCTION,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_nan_add_func,
 		.flags = GENL_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_DEL_NAN_FUNCTION,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_nan_del_func,
 		.flags = GENL_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_CHANGE_NAN_CONFIG,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_nan_change_config,
 		.flags = GENL_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_SET_MCAST_RATE,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_mcast_rate,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV),
 	},
 	{
 		.cmd = NL80211_CMD_SET_MAC_ACL,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_mac_acl,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV |
+					 NL80211_FLAG_MLO_UNSUPPORTED),
 	},
 	{
 		.cmd = NL80211_CMD_RADAR_DETECT,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_start_radar_detection,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_NO_WIPHY_MTX |
+					 NL80211_FLAG_MLO_UNSUPPORTED),
 	},
 	{
 		.cmd = NL80211_CMD_GET_PROTOCOL_FEATURES,
@@ -15769,41 +17092,42 @@
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_update_ft_ies,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_CRIT_PROTOCOL_START,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_crit_protocol_start,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_CRIT_PROTOCOL_STOP,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_crit_protocol_stop,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_GET_COALESCE,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_get_coalesce,
-		.internal_flags = NL80211_FLAG_NEED_WIPHY,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WIPHY),
 	},
 	{
 		.cmd = NL80211_CMD_SET_COALESCE,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_coalesce,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WIPHY,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WIPHY),
 	},
 	{
 		.cmd = NL80211_CMD_CHANNEL_SWITCH,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_channel_switch,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_MLO_VALID_LINK_ID),
 	},
 	{
 		.cmd = NL80211_CMD_VENDOR,
@@ -15811,132 +17135,174 @@
 		.doit = nl80211_vendor_cmd,
 		.dumpit = nl80211_vendor_cmd_dump,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WIPHY |
-				  0 |
-				  NL80211_FLAG_CLEAR_SKB,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WIPHY |
+					 NL80211_FLAG_CLEAR_SKB),
 	},
 	{
 		.cmd = NL80211_CMD_SET_QOS_MAP,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_qos_map,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_ADD_TX_TS,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_add_tx_ts,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_MLO_UNSUPPORTED),
 	},
 	{
 		.cmd = NL80211_CMD_DEL_TX_TS,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_del_tx_ts,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_TDLS_CHANNEL_SWITCH,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_tdls_channel_switch,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_tdls_cancel_channel_switch,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_SET_MULTICAST_TO_UNICAST,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_multicast_to_unicast,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV),
 	},
 	{
 		.cmd = NL80211_CMD_SET_PMK,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_pmk,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
-				  0 |
-				  NL80211_FLAG_CLEAR_SKB,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_CLEAR_SKB),
 	},
 	{
 		.cmd = NL80211_CMD_DEL_PMK,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_del_pmk,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_EXTERNAL_AUTH,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_external_auth,
 		.flags = GENL_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_CONTROL_PORT_FRAME,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_tx_control_port,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_GET_FTM_RESPONDER_STATS,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_get_ftm_responder_stats,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV |
+					 NL80211_FLAG_MLO_VALID_LINK_ID),
 	},
 	{
 		.cmd = NL80211_CMD_PEER_MEASUREMENT_START,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_pmsr_start,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_NOTIFY_RADAR,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_notify_radar_detection,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_UPDATE_OWE_INFO,
 		.doit = nl80211_update_owe_info,
 		.flags = GENL_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_PROBE_MESH_LINK,
 		.doit = nl80211_probe_mesh_link,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
 	},
 	{
 		.cmd = NL80211_CMD_SET_TID_CONFIG,
 		.doit = nl80211_set_tid_config,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV |
+					 NL80211_FLAG_MLO_VALID_LINK_ID),
 	},
 	{
 		.cmd = NL80211_CMD_SET_SAR_SPECS,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_set_sar_specs,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_WIPHY |
-				  NL80211_FLAG_NEED_RTNL,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_WIPHY |
+					 NL80211_FLAG_NEED_RTNL),
 	},
 	{
 		.cmd = NL80211_CMD_COLOR_CHANGE_REQUEST,
 		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
 		.doit = nl80211_color_change,
 		.flags = GENL_UNS_ADMIN_PERM,
-		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
+	},
+	{
+		.cmd = NL80211_CMD_SET_FILS_AAD,
+		.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
+		.doit = nl80211_set_fils_aad,
+		.flags = GENL_UNS_ADMIN_PERM,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
+	},
+	{
+		.cmd = NL80211_CMD_ADD_LINK,
+		.doit = nl80211_add_link,
+		.flags = GENL_UNS_ADMIN_PERM,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP),
+	},
+	{
+		.cmd = NL80211_CMD_REMOVE_LINK,
+		.doit = nl80211_remove_link,
+		.flags = GENL_UNS_ADMIN_PERM,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_MLO_VALID_LINK_ID),
+	},
+	{
+		.cmd = NL80211_CMD_ADD_LINK_STA,
+		.doit = nl80211_add_link_station,
+		.flags = GENL_UNS_ADMIN_PERM,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_MLO_VALID_LINK_ID),
+	},
+	{
+		.cmd = NL80211_CMD_MODIFY_LINK_STA,
+		.doit = nl80211_modify_link_station,
+		.flags = GENL_UNS_ADMIN_PERM,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_MLO_VALID_LINK_ID),
+	},
+	{
+		.cmd = NL80211_CMD_REMOVE_LINK_STA,
+		.doit = nl80211_remove_link_station,
+		.flags = GENL_UNS_ADMIN_PERM,
+		.internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP |
+					 NL80211_FLAG_MLO_VALID_LINK_ID),
 	},
 };
 
@@ -15944,7 +17310,7 @@
 	.name = NL80211_GENL_NAME,	/* have users key off the name instead */
 	.hdrsize = 0,			/* no private header */
 	.version = 1,			/* no particular meaning now */
-	.maxattr = NL80211_ATTR_MAX,
+	.maxattr = NL80211_ATTR_PUNCT_BITMAP,
 	.policy = nl80211_policy,
 	.netnsok = true,
 	.pre_doit = nl80211_pre_doit,
@@ -16331,13 +17697,13 @@
 }
 
 void nl80211_send_rx_assoc(struct cfg80211_registered_device *rdev,
-			   struct net_device *netdev, const u8 *buf,
-			   size_t len, gfp_t gfp, int uapsd_queues,
-			   const u8 *req_ies, size_t req_ies_len)
+			   struct net_device *netdev,
+			   struct cfg80211_rx_assoc_resp *data)
 {
-	nl80211_send_mlme_event(rdev, netdev, buf, len,
-				NL80211_CMD_ASSOCIATE, gfp, uapsd_queues,
-				req_ies, req_ies_len, false);
+	nl80211_send_mlme_event(rdev, netdev, data->buf, data->len,
+				NL80211_CMD_ASSOCIATE, GFP_KERNEL,
+				data->uapsd_queues,
+				data->req_ies, data->req_ies_len, false);
 }
 
 void nl80211_send_deauth(struct cfg80211_registered_device *rdev,
@@ -16446,10 +17812,30 @@
 {
 	struct sk_buff *msg;
 	void *hdr;
+	unsigned int link;
+	size_t link_info_size = 0;
+	const u8 *connected_addr = cr->valid_links ?
+				   cr->ap_mld_addr : cr->links[0].bssid;
+
+	if (cr->valid_links) {
+		for_each_valid_link(cr, link) {
+			/* Nested attribute header */
+			link_info_size += NLA_HDRLEN;
+			/* Link ID */
+			link_info_size += nla_total_size(sizeof(u8));
+			link_info_size += cr->links[link].addr ?
+					  nla_total_size(ETH_ALEN) : 0;
+			link_info_size += (cr->links[link].bssid ||
+					   cr->links[link].bss) ?
+					  nla_total_size(ETH_ALEN) : 0;
+			link_info_size += nla_total_size(sizeof(u16));
+		}
+	}
 
 	msg = nlmsg_new(100 + cr->req_ie_len + cr->resp_ie_len +
 			cr->fils.kek_len + cr->fils.pmk_len +
-			(cr->fils.pmkid ? WLAN_PMKID_LEN : 0), gfp);
+			(cr->fils.pmkid ? WLAN_PMKID_LEN : 0) + link_info_size,
+			gfp);
 	if (!msg)
 		return;
 
@@ -16461,8 +17847,8 @@
 
 	if (nla_put_u32(msg, NL80211_ATTR_WIPHY, rdev->wiphy_idx) ||
 	    nla_put_u32(msg, NL80211_ATTR_IFINDEX, netdev->ifindex) ||
-	    (cr->bssid &&
-	     nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, cr->bssid)) ||
+	    (connected_addr &&
+	     nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, connected_addr)) ||
 	    nla_put_u16(msg, NL80211_ATTR_STATUS_CODE,
 			cr->status < 0 ? WLAN_STATUS_UNSPECIFIED_FAILURE :
 			cr->status) ||
@@ -16488,6 +17874,40 @@
 	       nla_put(msg, NL80211_ATTR_PMKID, WLAN_PMKID_LEN, cr->fils.pmkid)))))
 		goto nla_put_failure;
 
+	if (cr->valid_links) {
+		int i = 1;
+		struct nlattr *nested;
+
+		nested = nla_nest_start(msg, NL80211_ATTR_MLO_LINKS);
+		if (!nested)
+			goto nla_put_failure;
+
+		for_each_valid_link(cr, link) {
+			struct nlattr *nested_mlo_links;
+			const u8 *bssid = cr->links[link].bss ?
+					  cr->links[link].bss->bssid :
+					  cr->links[link].bssid;
+
+			nested_mlo_links = nla_nest_start(msg, i);
+			if (!nested_mlo_links)
+				goto nla_put_failure;
+
+			if (nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link) ||
+			    (bssid &&
+			     nla_put(msg, NL80211_ATTR_BSSID, ETH_ALEN, bssid)) ||
+			    (cr->links[link].addr &&
+			     nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN,
+				     cr->links[link].addr)) ||
+			    nla_put_u16(msg, NL80211_ATTR_STATUS_CODE,
+					cr->links[link].status))
+				goto nla_put_failure;
+
+			nla_nest_end(msg, nested_mlo_links);
+			i++;
+		}
+		nla_nest_end(msg, nested);
+	}
+
 	genlmsg_end(msg, hdr);
 
 	genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0,
@@ -16504,11 +17924,32 @@
 {
 	struct sk_buff *msg;
 	void *hdr;
-	const u8 *bssid = info->bss ? info->bss->bssid : info->bssid;
+	size_t link_info_size = 0;
+	unsigned int link;
+	const u8 *connected_addr = info->ap_mld_addr ?
+				   info->ap_mld_addr :
+				   (info->links[0].bss ?
+				    info->links[0].bss->bssid :
+				    info->links[0].bssid);
+
+	if (info->valid_links) {
+		for_each_valid_link(info, link) {
+			/* Nested attribute header */
+			link_info_size += NLA_HDRLEN;
+			/* Link ID */
+			link_info_size += nla_total_size(sizeof(u8));
+			link_info_size += info->links[link].addr ?
+					  nla_total_size(ETH_ALEN) : 0;
+			link_info_size += (info->links[link].bssid ||
+					   info->links[link].bss) ?
+					  nla_total_size(ETH_ALEN) : 0;
+		}
+	}
 
 	msg = nlmsg_new(100 + info->req_ie_len + info->resp_ie_len +
 			info->fils.kek_len + info->fils.pmk_len +
-			(info->fils.pmkid ? WLAN_PMKID_LEN : 0), gfp);
+			(info->fils.pmkid ? WLAN_PMKID_LEN : 0) +
+			link_info_size, gfp);
 	if (!msg)
 		return;
 
@@ -16520,7 +17961,7 @@
 
 	if (nla_put_u32(msg, NL80211_ATTR_WIPHY, rdev->wiphy_idx) ||
 	    nla_put_u32(msg, NL80211_ATTR_IFINDEX, netdev->ifindex) ||
-	    nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, bssid) ||
+	    nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, connected_addr) ||
 	    (info->req_ie &&
 	     nla_put(msg, NL80211_ATTR_REQ_IE, info->req_ie_len,
 		     info->req_ie)) ||
@@ -16539,6 +17980,38 @@
 	     nla_put(msg, NL80211_ATTR_PMKID, WLAN_PMKID_LEN, info->fils.pmkid)))
 		goto nla_put_failure;
 
+	if (info->valid_links) {
+		int i = 1;
+		struct nlattr *nested;
+
+		nested = nla_nest_start(msg, NL80211_ATTR_MLO_LINKS);
+		if (!nested)
+			goto nla_put_failure;
+
+		for_each_valid_link(info, link) {
+			struct nlattr *nested_mlo_links;
+			const u8 *bssid = info->links[link].bss ?
+					  info->links[link].bss->bssid :
+					  info->links[link].bssid;
+
+			nested_mlo_links = nla_nest_start(msg, i);
+			if (!nested_mlo_links)
+				goto nla_put_failure;
+
+			if (nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link) ||
+			    (bssid &&
+			     nla_put(msg, NL80211_ATTR_BSSID, ETH_ALEN, bssid)) ||
+			    (info->links[link].addr &&
+			     nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN,
+				     info->links[link].addr)))
+				goto nla_put_failure;
+
+			nla_nest_end(msg, nested_mlo_links);
+			i++;
+		}
+		nla_nest_end(msg, nested);
+	}
+
 	genlmsg_end(msg, hdr);
 
 	genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0,
@@ -16550,7 +18023,8 @@
 }
 
 void nl80211_send_port_authorized(struct cfg80211_registered_device *rdev,
-				  struct net_device *netdev, const u8 *bssid)
+				  struct net_device *netdev, const u8 *bssid,
+				  const u8 *td_bitmap, u8 td_bitmap_len)
 {
 	struct sk_buff *msg;
 	void *hdr;
@@ -16570,6 +18044,11 @@
 	    nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, bssid))
 		goto nla_put_failure;
 
+	if ((td_bitmap_len > 0) && td_bitmap)
+		if (nla_put(msg, NL80211_ATTR_TD_BITMAP,
+			    td_bitmap_len, td_bitmap))
+			goto nla_put_failure;
+
 	genlmsg_end(msg, hdr);
 
 	genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0,
@@ -16830,6 +18309,44 @@
 	nlmsg_free(msg);
 }
 
+void cfg80211_assoc_comeback(struct net_device *netdev,
+			     const u8 *ap_addr, u32 timeout)
+{
+	struct wireless_dev *wdev = netdev->ieee80211_ptr;
+	struct wiphy *wiphy = wdev->wiphy;
+	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
+	struct sk_buff *msg;
+	void *hdr;
+
+	trace_cfg80211_assoc_comeback(wdev, ap_addr, timeout);
+
+	msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL);
+	if (!msg)
+		return;
+
+	hdr = nl80211hdr_put(msg, 0, 0, 0, NL80211_CMD_ASSOC_COMEBACK);
+	if (!hdr) {
+		nlmsg_free(msg);
+		return;
+	}
+
+	if (nla_put_u32(msg, NL80211_ATTR_WIPHY, rdev->wiphy_idx) ||
+	    nla_put_u32(msg, NL80211_ATTR_IFINDEX, netdev->ifindex) ||
+	    nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, ap_addr) ||
+	    nla_put_u32(msg, NL80211_ATTR_TIMEOUT, timeout))
+		goto nla_put_failure;
+
+	genlmsg_end(msg, hdr);
+
+	genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0,
+				NL80211_MCGRP_MLME, GFP_KERNEL);
+	return;
+
+ nla_put_failure:
+	nlmsg_free(msg);
+}
+EXPORT_SYMBOL(cfg80211_assoc_comeback);
+
 void cfg80211_ready_on_channel(struct wireless_dev *wdev, u64 cookie,
 			       struct ieee80211_channel *chan,
 			       unsigned int duration, gfp_t gfp)
@@ -17039,14 +18556,13 @@
 
 int nl80211_send_mgmt(struct cfg80211_registered_device *rdev,
 		      struct wireless_dev *wdev, u32 nlportid,
-		      int freq, int sig_dbm,
-		      const u8 *buf, size_t len, u32 flags, gfp_t gfp)
+		      struct cfg80211_rx_info *info, gfp_t gfp)
 {
 	struct net_device *netdev = wdev->netdev;
 	struct sk_buff *msg;
 	void *hdr;
 
-	msg = nlmsg_new(100 + len, gfp);
+	msg = nlmsg_new(100 + info->len, gfp);
 	if (!msg)
 		return -ENOMEM;
 
@@ -17061,13 +18577,23 @@
 					netdev->ifindex)) ||
 	    nla_put_u64_64bit(msg, NL80211_ATTR_WDEV, wdev_id(wdev),
 			      NL80211_ATTR_PAD) ||
-	    nla_put_u32(msg, NL80211_ATTR_WIPHY_FREQ, KHZ_TO_MHZ(freq)) ||
-	    nla_put_u32(msg, NL80211_ATTR_WIPHY_FREQ_OFFSET, freq % 1000) ||
-	    (sig_dbm &&
-	     nla_put_u32(msg, NL80211_ATTR_RX_SIGNAL_DBM, sig_dbm)) ||
-	    nla_put(msg, NL80211_ATTR_FRAME, len, buf) ||
-	    (flags &&
-	     nla_put_u32(msg, NL80211_ATTR_RXMGMT_FLAGS, flags)))
+	    (info->have_link_id &&
+	     nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, info->link_id)) ||
+	    nla_put_u32(msg, NL80211_ATTR_WIPHY_FREQ, KHZ_TO_MHZ(info->freq)) ||
+	    nla_put_u32(msg, NL80211_ATTR_WIPHY_FREQ_OFFSET, info->freq % 1000) ||
+	    (info->sig_dbm &&
+	     nla_put_u32(msg, NL80211_ATTR_RX_SIGNAL_DBM, info->sig_dbm)) ||
+	    nla_put(msg, NL80211_ATTR_FRAME, info->len, info->buf) ||
+	    (info->flags &&
+	     nla_put_u32(msg, NL80211_ATTR_RXMGMT_FLAGS, info->flags)) ||
+	    (info->rx_tstamp && nla_put_u64_64bit(msg,
+						  NL80211_ATTR_RX_HW_TIMESTAMP,
+						  info->rx_tstamp,
+						  NL80211_ATTR_PAD)) ||
+	    (info->ack_tstamp && nla_put_u64_64bit(msg,
+						   NL80211_ATTR_TX_HW_TIMESTAMP,
+						   info->ack_tstamp,
+						   NL80211_ATTR_PAD)))
 		goto nla_put_failure;
 
 	genlmsg_end(msg, hdr);
@@ -17079,8 +18605,8 @@
 	return -ENOBUFS;
 }
 
-static void nl80211_frame_tx_status(struct wireless_dev *wdev, u64 cookie,
-				    const u8 *buf, size_t len, bool ack,
+static void nl80211_frame_tx_status(struct wireless_dev *wdev,
+				    struct cfg80211_tx_status *status,
 				    gfp_t gfp, enum nl80211_commands command)
 {
 	struct wiphy *wiphy = wdev->wiphy;
@@ -17090,11 +18616,13 @@
 	void *hdr;
 
 	if (command == NL80211_CMD_FRAME_TX_STATUS)
-		trace_cfg80211_mgmt_tx_status(wdev, cookie, ack);
+		trace_cfg80211_mgmt_tx_status(wdev, status->cookie,
+					      status->ack);
 	else
-		trace_cfg80211_control_port_tx_status(wdev, cookie, ack);
+		trace_cfg80211_control_port_tx_status(wdev, status->cookie,
+						      status->ack);
 
-	msg = nlmsg_new(100 + len, gfp);
+	msg = nlmsg_new(100 + status->len, gfp);
 	if (!msg)
 		return;
 
@@ -17109,10 +18637,16 @@
 				   netdev->ifindex)) ||
 	    nla_put_u64_64bit(msg, NL80211_ATTR_WDEV, wdev_id(wdev),
 			      NL80211_ATTR_PAD) ||
-	    nla_put(msg, NL80211_ATTR_FRAME, len, buf) ||
-	    nla_put_u64_64bit(msg, NL80211_ATTR_COOKIE, cookie,
+	    nla_put(msg, NL80211_ATTR_FRAME, status->len, status->buf) ||
+	    nla_put_u64_64bit(msg, NL80211_ATTR_COOKIE, status->cookie,
 			      NL80211_ATTR_PAD) ||
-	    (ack && nla_put_flag(msg, NL80211_ATTR_ACK)))
+	    (status->ack && nla_put_flag(msg, NL80211_ATTR_ACK)) ||
+	    (status->tx_tstamp &&
+	     nla_put_u64_64bit(msg, NL80211_ATTR_TX_HW_TIMESTAMP,
+			       status->tx_tstamp, NL80211_ATTR_PAD)) ||
+	    (status->ack_tstamp &&
+	     nla_put_u64_64bit(msg, NL80211_ATTR_RX_HW_TIMESTAMP,
+			       status->ack_tstamp, NL80211_ATTR_PAD)))
 		goto nla_put_failure;
 
 	genlmsg_end(msg, hdr);
@@ -17129,22 +18663,30 @@
 				     const u8 *buf, size_t len, bool ack,
 				     gfp_t gfp)
 {
-	nl80211_frame_tx_status(wdev, cookie, buf, len, ack, gfp,
+	struct cfg80211_tx_status status = {
+		.cookie = cookie,
+		.buf = buf,
+		.len = len,
+		.ack = ack
+	};
+
+	nl80211_frame_tx_status(wdev, &status, gfp,
 				NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS);
 }
 EXPORT_SYMBOL(cfg80211_control_port_tx_status);
 
-void cfg80211_mgmt_tx_status(struct wireless_dev *wdev, u64 cookie,
-			     const u8 *buf, size_t len, bool ack, gfp_t gfp)
+void cfg80211_mgmt_tx_status_ext(struct wireless_dev *wdev,
+				 struct cfg80211_tx_status *status, gfp_t gfp)
 {
-	nl80211_frame_tx_status(wdev, cookie, buf, len, ack, gfp,
-				NL80211_CMD_FRAME_TX_STATUS);
+	nl80211_frame_tx_status(wdev, status, gfp, NL80211_CMD_FRAME_TX_STATUS);
 }
-EXPORT_SYMBOL(cfg80211_mgmt_tx_status);
+EXPORT_SYMBOL(cfg80211_mgmt_tx_status_ext);
 
 static int __nl80211_rx_control_port(struct net_device *dev,
 				     struct sk_buff *skb,
-				     bool unencrypted, gfp_t gfp)
+				     bool unencrypted,
+				     int link_id,
+				     gfp_t gfp)
 {
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
 	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
@@ -17176,6 +18718,8 @@
 			      NL80211_ATTR_PAD) ||
 	    nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, addr) ||
 	    nla_put_u16(msg, NL80211_ATTR_CONTROL_PORT_ETHERTYPE, proto) ||
+	    (link_id >= 0 &&
+	     nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link_id)) ||
 	    (unencrypted && nla_put_flag(msg,
 					 NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT)))
 		goto nla_put_failure;
@@ -17194,13 +18738,14 @@
 	return -ENOBUFS;
 }
 
-bool cfg80211_rx_control_port(struct net_device *dev,
-			      struct sk_buff *skb, bool unencrypted)
+bool cfg80211_rx_control_port(struct net_device *dev, struct sk_buff *skb,
+			      bool unencrypted, int link_id)
 {
 	int ret;
 
-	trace_cfg80211_rx_control_port(dev, skb, unencrypted);
-	ret = __nl80211_rx_control_port(dev, skb, unencrypted, GFP_ATOMIC);
+	trace_cfg80211_rx_control_port(dev, skb, unencrypted, link_id);
+	ret = __nl80211_rx_control_port(dev, skb, unencrypted, link_id,
+					GFP_ATOMIC);
 	trace_cfg80211_return_bool(ret == 0);
 	return ret == 0;
 }
@@ -17484,11 +19029,13 @@
 
 static void nl80211_ch_switch_notify(struct cfg80211_registered_device *rdev,
 				     struct net_device *netdev,
+				     unsigned int link_id,
 				     struct cfg80211_chan_def *chandef,
 				     gfp_t gfp,
 				     enum nl80211_commands notif,
-				     u8 count, bool quiet)
+				     u8 count, bool quiet, u16 punct_bitmap)
 {
+	struct wireless_dev *wdev = netdev->ieee80211_ptr;
 	struct sk_buff *msg;
 	void *hdr;
 
@@ -17505,6 +19052,10 @@
 	if (nla_put_u32(msg, NL80211_ATTR_IFINDEX, netdev->ifindex))
 		goto nla_put_failure;
 
+	if (wdev->valid_links &&
+	    nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link_id))
+		goto nla_put_failure;
+
 	if (nl80211_send_chandef(msg, chandef))
 		goto nla_put_failure;
 
@@ -17516,6 +19067,9 @@
 			goto nla_put_failure;
 	}
 
+	if (nla_put_u32(msg, NL80211_ATTR_PUNCT_BITMAP, punct_bitmap))
+		goto nla_put_failure;
+
 	genlmsg_end(msg, hdr);
 
 	genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0,
@@ -17527,44 +19081,68 @@
 }
 
 void cfg80211_ch_switch_notify(struct net_device *dev,
-			       struct cfg80211_chan_def *chandef)
+			       struct cfg80211_chan_def *chandef,
+			       unsigned int link_id, u16 punct_bitmap)
 {
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
 	struct wiphy *wiphy = wdev->wiphy;
 	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
 
 	ASSERT_WDEV_LOCK(wdev);
+	WARN_INVALID_LINK_ID(wdev, link_id);
 
-	trace_cfg80211_ch_switch_notify(dev, chandef);
+	trace_cfg80211_ch_switch_notify(dev, chandef, link_id, punct_bitmap);
 
-	wdev->chandef = *chandef;
-	wdev->preset_chandef = *chandef;
-
-	if ((wdev->iftype == NL80211_IFTYPE_STATION ||
-	     wdev->iftype == NL80211_IFTYPE_P2P_CLIENT) &&
-	    !WARN_ON(!wdev->current_bss))
-		cfg80211_update_assoc_bss_entry(wdev, chandef->chan);
+	switch (wdev->iftype) {
+	case NL80211_IFTYPE_STATION:
+	case NL80211_IFTYPE_P2P_CLIENT:
+		if (!WARN_ON(!wdev->links[link_id].client.current_bss))
+			cfg80211_update_assoc_bss_entry(wdev, link_id,
+							chandef->chan);
+		break;
+	case NL80211_IFTYPE_MESH_POINT:
+		wdev->u.mesh.chandef = *chandef;
+		wdev->u.mesh.preset_chandef = *chandef;
+		break;
+	case NL80211_IFTYPE_AP:
+	case NL80211_IFTYPE_P2P_GO:
+		wdev->links[link_id].ap.chandef = *chandef;
+		break;
+	case NL80211_IFTYPE_ADHOC:
+		wdev->u.ibss.chandef = *chandef;
+		break;
+	default:
+		WARN_ON(1);
+		break;
+	}
 
 	cfg80211_sched_dfs_chan_update(rdev);
 
-	nl80211_ch_switch_notify(rdev, dev, chandef, GFP_KERNEL,
-				 NL80211_CMD_CH_SWITCH_NOTIFY, 0, false);
+	nl80211_ch_switch_notify(rdev, dev, link_id, chandef, GFP_KERNEL,
+				 NL80211_CMD_CH_SWITCH_NOTIFY, 0, false,
+				 punct_bitmap);
 }
 EXPORT_SYMBOL(cfg80211_ch_switch_notify);
 
 void cfg80211_ch_switch_started_notify(struct net_device *dev,
 				       struct cfg80211_chan_def *chandef,
-				       u8 count, bool quiet)
+				       unsigned int link_id, u8 count,
+				       bool quiet, u16 punct_bitmap)
 {
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
 	struct wiphy *wiphy = wdev->wiphy;
 	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
 
-	trace_cfg80211_ch_switch_started_notify(dev, chandef);
+	ASSERT_WDEV_LOCK(wdev);
+	WARN_INVALID_LINK_ID(wdev, link_id);
 
-	nl80211_ch_switch_notify(rdev, dev, chandef, GFP_KERNEL,
+	trace_cfg80211_ch_switch_started_notify(dev, chandef, link_id,
+						punct_bitmap);
+
+
+	nl80211_ch_switch_notify(rdev, dev, link_id, chandef, GFP_KERNEL,
 				 NL80211_CMD_CH_SWITCH_STARTED_NOTIFY,
-				 count, quiet);
+				 count, quiet, punct_bitmap);
 }
 EXPORT_SYMBOL(cfg80211_ch_switch_started_notify);
 
@@ -18168,7 +19746,7 @@
 }
 EXPORT_SYMBOL(cfg80211_crit_proto_stopped);
 
-void nl80211_send_ap_stopped(struct wireless_dev *wdev)
+void nl80211_send_ap_stopped(struct wireless_dev *wdev, unsigned int link_id)
 {
 	struct wiphy *wiphy = wdev->wiphy;
 	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
@@ -18186,7 +19764,9 @@
 	if (nla_put_u32(msg, NL80211_ATTR_WIPHY, rdev->wiphy_idx) ||
 	    nla_put_u32(msg, NL80211_ATTR_IFINDEX, wdev->netdev->ifindex) ||
 	    nla_put_u64_64bit(msg, NL80211_ATTR_WDEV, wdev_id(wdev),
-			      NL80211_ATTR_PAD))
+			      NL80211_ATTR_PAD) ||
+	    (wdev->valid_links &&
+	     nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link_id)))
 		goto out;
 
 	genlmsg_end(msg, hdr);
@@ -18225,7 +19805,9 @@
 			params->action) ||
 	    nla_put(msg, NL80211_ATTR_BSSID, ETH_ALEN, params->bssid) ||
 	    nla_put(msg, NL80211_ATTR_SSID, params->ssid.ssid_len,
-		    params->ssid.ssid))
+		    params->ssid.ssid) ||
+	    (!is_zero_ether_addr(params->mld_addr) &&
+	     nla_put(msg, NL80211_ATTR_MLD_ADDR, ETH_ALEN, params->mld_addr)))
 		goto nla_put_failure;
 
 	genlmsg_end(msg, hdr);
@@ -18267,6 +19849,17 @@
 	    nla_put(msg, NL80211_ATTR_IE, owe_info->ie_len, owe_info->ie))
 		goto nla_put_failure;
 
+	if (owe_info->assoc_link_id != -1) {
+		if (nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID,
+			       owe_info->assoc_link_id))
+			goto nla_put_failure;
+
+		if (!is_zero_ether_addr(owe_info->peer_mld_addr) &&
+		    nla_put(msg, NL80211_ATTR_MLD_ADDR, ETH_ALEN,
+			    owe_info->peer_mld_addr))
+			goto nla_put_failure;
+	}
+
 	genlmsg_end(msg, hdr);
 
 	genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0,
diff --git a/net/wireless/nl80211.h b/net/wireless/nl80211.h
index d642e3b..0278d81 100644
--- a/net/wireless/nl80211.h
+++ b/net/wireless/nl80211.h
@@ -1,7 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
  * Portions of this file
- * Copyright (C) 2018, 2020-2021 Intel Corporation
+ * Copyright (C) 2018, 2020-2022 Intel Corporation
  */
 #ifndef __NET_WIRELESS_NL80211_H
 #define __NET_WIRELESS_NL80211_H
@@ -60,9 +60,7 @@
 			  const u8 *buf, size_t len, gfp_t gfp);
 void nl80211_send_rx_assoc(struct cfg80211_registered_device *rdev,
 			   struct net_device *netdev,
-			   const u8 *buf, size_t len, gfp_t gfp,
-			   int uapsd_queues,
-			   const u8 *req_ies, size_t req_ies_len);
+			   struct cfg80211_rx_assoc_resp *data);
 void nl80211_send_deauth(struct cfg80211_registered_device *rdev,
 			 struct net_device *netdev,
 			 const u8 *buf, size_t len,
@@ -85,7 +83,8 @@
 			 struct net_device *netdev,
 			 struct cfg80211_roam_info *info, gfp_t gfp);
 void nl80211_send_port_authorized(struct cfg80211_registered_device *rdev,
-				  struct net_device *netdev, const u8 *bssid);
+				  struct net_device *netdev, const u8 *bssid,
+				  const u8 *td_bitmap, u8 td_bitmap_len);
 void nl80211_send_disconnected(struct cfg80211_registered_device *rdev,
 			       struct net_device *netdev, u16 reason,
 			       const u8 *ie, size_t ie_len, bool from_ap);
@@ -107,8 +106,7 @@
 
 int nl80211_send_mgmt(struct cfg80211_registered_device *rdev,
 		      struct wireless_dev *wdev, u32 nlpid,
-		      int freq, int sig_dbm,
-		      const u8 *buf, size_t len, u32 flags, gfp_t gfp);
+		      struct cfg80211_rx_info *info, gfp_t gfp);
 
 void
 nl80211_radar_notify(struct cfg80211_registered_device *rdev,
@@ -116,7 +114,7 @@
 		     enum nl80211_radar_event event,
 		     struct net_device *netdev, gfp_t gfp);
 
-void nl80211_send_ap_stopped(struct wireless_dev *wdev);
+void nl80211_send_ap_stopped(struct wireless_dev *wdev, unsigned int link_id);
 
 void cfg80211_rdev_free_coalesce(struct cfg80211_registered_device *rdev);
 
diff --git a/net/wireless/ocb.c b/net/wireless/ocb.c
index 2d26a6d..27a1732 100644
--- a/net/wireless/ocb.c
+++ b/net/wireless/ocb.c
@@ -4,6 +4,7 @@
  *
  * Copyright: (c) 2014 Czech Technical University in Prague
  *            (c) 2014 Volkswagen Group Research
+ * Copyright (C) 2022 Intel Corporation
  * Author:    Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
  * Funded by: Volkswagen Group Research
  */
@@ -34,7 +35,7 @@
 
 	err = rdev_join_ocb(rdev, dev, setup);
 	if (!err)
-		wdev->chandef = setup->chandef;
+		wdev->u.ocb.chandef = setup->chandef;
 
 	return err;
 }
@@ -69,7 +70,7 @@
 
 	err = rdev_leave_ocb(rdev, dev);
 	if (!err)
-		memset(&wdev->chandef, 0, sizeof(wdev->chandef));
+		memset(&wdev->u.ocb.chandef, 0, sizeof(wdev->u.ocb.chandef));
 
 	return err;
 }
diff --git a/net/wireless/rdev-ops.h b/net/wireless/rdev-ops.h
index ce6bf21..ee853a14 100644
--- a/net/wireless/rdev-ops.h
+++ b/net/wireless/rdev-ops.h
@@ -1,4 +1,9 @@
 /* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Portions of this file
+ * Copyright(c) 2016-2017 Intel Deutschland GmbH
+ * Copyright (C) 2018, 2021-2023 Intel Corporation
+ */
 #ifndef __CFG80211_RDEV_OPS
 #define __CFG80211_RDEV_OPS
 
@@ -72,65 +77,69 @@
 }
 
 static inline int rdev_add_key(struct cfg80211_registered_device *rdev,
-			       struct net_device *netdev, u8 key_index,
-			       bool pairwise, const u8 *mac_addr,
+			       struct net_device *netdev, int link_id,
+			       u8 key_index, bool pairwise, const u8 *mac_addr,
 			       struct key_params *params)
 {
 	int ret;
-	trace_rdev_add_key(&rdev->wiphy, netdev, key_index, pairwise,
+	trace_rdev_add_key(&rdev->wiphy, netdev, link_id, key_index, pairwise,
 			   mac_addr, params->mode);
-	ret = rdev->ops->add_key(&rdev->wiphy, netdev, key_index, pairwise,
-				  mac_addr, params);
+	ret = rdev->ops->add_key(&rdev->wiphy, netdev, link_id, key_index,
+				  pairwise, mac_addr, params);
 	trace_rdev_return_int(&rdev->wiphy, ret);
 	return ret;
 }
 
 static inline int
 rdev_get_key(struct cfg80211_registered_device *rdev, struct net_device *netdev,
-	     u8 key_index, bool pairwise, const u8 *mac_addr, void *cookie,
+	     int link_id, u8 key_index, bool pairwise, const u8 *mac_addr,
+	     void *cookie,
 	     void (*callback)(void *cookie, struct key_params*))
 {
 	int ret;
-	trace_rdev_get_key(&rdev->wiphy, netdev, key_index, pairwise, mac_addr);
-	ret = rdev->ops->get_key(&rdev->wiphy, netdev, key_index, pairwise,
-				  mac_addr, cookie, callback);
+	trace_rdev_get_key(&rdev->wiphy, netdev, link_id, key_index, pairwise,
+			   mac_addr);
+	ret = rdev->ops->get_key(&rdev->wiphy, netdev, link_id, key_index,
+				  pairwise, mac_addr, cookie, callback);
 	trace_rdev_return_int(&rdev->wiphy, ret);
 	return ret;
 }
 
 static inline int rdev_del_key(struct cfg80211_registered_device *rdev,
-			       struct net_device *netdev, u8 key_index,
-			       bool pairwise, const u8 *mac_addr)
+			       struct net_device *netdev, int link_id,
+			       u8 key_index, bool pairwise, const u8 *mac_addr)
 {
 	int ret;
-	trace_rdev_del_key(&rdev->wiphy, netdev, key_index, pairwise, mac_addr);
-	ret = rdev->ops->del_key(&rdev->wiphy, netdev, key_index, pairwise,
-				  mac_addr);
+	trace_rdev_del_key(&rdev->wiphy, netdev, link_id, key_index, pairwise,
+			   mac_addr);
+	ret = rdev->ops->del_key(&rdev->wiphy, netdev, link_id, key_index,
+				  pairwise, mac_addr);
 	trace_rdev_return_int(&rdev->wiphy, ret);
 	return ret;
 }
 
 static inline int
 rdev_set_default_key(struct cfg80211_registered_device *rdev,
-		     struct net_device *netdev, u8 key_index, bool unicast,
-		     bool multicast)
+		     struct net_device *netdev, int link_id, u8 key_index,
+		     bool unicast, bool multicast)
 {
 	int ret;
-	trace_rdev_set_default_key(&rdev->wiphy, netdev, key_index,
+	trace_rdev_set_default_key(&rdev->wiphy, netdev, link_id, key_index,
 				   unicast, multicast);
-	ret = rdev->ops->set_default_key(&rdev->wiphy, netdev, key_index,
-					  unicast, multicast);
+	ret = rdev->ops->set_default_key(&rdev->wiphy, netdev, link_id,
+					  key_index, unicast, multicast);
 	trace_rdev_return_int(&rdev->wiphy, ret);
 	return ret;
 }
 
 static inline int
 rdev_set_default_mgmt_key(struct cfg80211_registered_device *rdev,
-			  struct net_device *netdev, u8 key_index)
+			  struct net_device *netdev, int link_id, u8 key_index)
 {
 	int ret;
-	trace_rdev_set_default_mgmt_key(&rdev->wiphy, netdev, key_index);
-	ret = rdev->ops->set_default_mgmt_key(&rdev->wiphy, netdev,
+	trace_rdev_set_default_mgmt_key(&rdev->wiphy, netdev, link_id,
+					key_index);
+	ret = rdev->ops->set_default_mgmt_key(&rdev->wiphy, netdev, link_id,
 					       key_index);
 	trace_rdev_return_int(&rdev->wiphy, ret);
 	return ret;
@@ -138,13 +147,15 @@
 
 static inline int
 rdev_set_default_beacon_key(struct cfg80211_registered_device *rdev,
-			    struct net_device *netdev, u8 key_index)
+			    struct net_device *netdev, int link_id,
+			    u8 key_index)
 {
 	int ret;
 
-	trace_rdev_set_default_beacon_key(&rdev->wiphy, netdev, key_index);
-	ret = rdev->ops->set_default_beacon_key(&rdev->wiphy, netdev,
-						key_index);
+	trace_rdev_set_default_beacon_key(&rdev->wiphy, netdev, link_id,
+					  key_index);
+	ret = rdev->ops->set_default_beacon_key(&rdev->wiphy, netdev, link_id,
+						 key_index);
 	trace_rdev_return_int(&rdev->wiphy, ret);
 	return ret;
 }
@@ -172,11 +183,11 @@
 }
 
 static inline int rdev_stop_ap(struct cfg80211_registered_device *rdev,
-			       struct net_device *dev)
+			       struct net_device *dev, unsigned int link_id)
 {
 	int ret;
-	trace_rdev_stop_ap(&rdev->wiphy, dev);
-	ret = rdev->ops->stop_ap(&rdev->wiphy, dev);
+	trace_rdev_stop_ap(&rdev->wiphy, dev, link_id);
+	ret = rdev->ops->stop_ap(&rdev->wiphy, dev, link_id);
 	trace_rdev_return_int(&rdev->wiphy, ret);
 	return ret;
 }
@@ -464,18 +475,9 @@
 			     struct net_device *dev,
 			     struct cfg80211_assoc_request *req)
 {
-	const struct cfg80211_bss_ies *bss_ies;
 	int ret;
 
-	/*
-	 * Note: we might trace not exactly the data that's processed,
-	 * due to races and the driver/mac80211 getting a newer copy.
-	 */
-	rcu_read_lock();
-	bss_ies = rcu_dereference(req->bss->ies);
-	trace_rdev_assoc(&rdev->wiphy, dev, req, bss_ies);
-	rcu_read_unlock();
-
+	trace_rdev_assoc(&rdev->wiphy, dev, req);
 	ret = rdev->ops->assoc(&rdev->wiphy, dev, req);
 	trace_rdev_return_int(&rdev->wiphy, ret);
 	return ret;
@@ -651,12 +653,14 @@
 
 static inline int
 rdev_set_bitrate_mask(struct cfg80211_registered_device *rdev,
-		      struct net_device *dev, const u8 *peer,
+		      struct net_device *dev, unsigned int link_id,
+		      const u8 *peer,
 		      const struct cfg80211_bitrate_mask *mask)
 {
 	int ret;
-	trace_rdev_set_bitrate_mask(&rdev->wiphy, dev, peer, mask);
-	ret = rdev->ops->set_bitrate_mask(&rdev->wiphy, dev, peer, mask);
+	trace_rdev_set_bitrate_mask(&rdev->wiphy, dev, link_id, peer, mask);
+	ret = rdev->ops->set_bitrate_mask(&rdev->wiphy, dev, link_id,
+					  peer, mask);
 	trace_rdev_return_int(&rdev->wiphy, ret);
 	return ret;
 }
@@ -748,13 +752,14 @@
 				       struct net_device *dev,
 				       const void *buf, size_t len,
 				       const u8 *dest, __be16 proto,
-				       const bool noencrypt, u64 *cookie)
+				       const bool noencrypt, int link,
+				       u64 *cookie)
 {
 	int ret;
 	trace_rdev_tx_control_port(&rdev->wiphy, dev, buf, len,
-				   dest, proto, noencrypt);
+				   dest, proto, noencrypt, link);
 	ret = rdev->ops->tx_control_port(&rdev->wiphy, dev, buf, len,
-					 dest, proto, noencrypt, cookie);
+					 dest, proto, noencrypt, link, cookie);
 	if (cookie)
 		trace_rdev_return_int_cookie(&rdev->wiphy, ret, *cookie);
 	else
@@ -944,12 +949,13 @@
 static inline int
 rdev_get_channel(struct cfg80211_registered_device *rdev,
 		 struct wireless_dev *wdev,
+		 unsigned int link_id,
 		 struct cfg80211_chan_def *chandef)
 {
 	int ret;
 
-	trace_rdev_get_channel(&rdev->wiphy, wdev);
-	ret = rdev->ops->get_channel(&rdev->wiphy, wdev, chandef);
+	trace_rdev_get_channel(&rdev->wiphy, wdev, link_id);
+	ret = rdev->ops->get_channel(&rdev->wiphy, wdev, link_id, chandef);
 	trace_rdev_return_chandef(&rdev->wiphy, ret, chandef);
 
 	return ret;
@@ -1107,12 +1113,14 @@
 
 static inline int
 rdev_set_ap_chanwidth(struct cfg80211_registered_device *rdev,
-		      struct net_device *dev, struct cfg80211_chan_def *chandef)
+		      struct net_device *dev,
+		      unsigned int link_id,
+		      struct cfg80211_chan_def *chandef)
 {
 	int ret;
 
-	trace_rdev_set_ap_chanwidth(&rdev->wiphy, dev, chandef);
-	ret = rdev->ops->set_ap_chanwidth(&rdev->wiphy, dev, chandef);
+	trace_rdev_set_ap_chanwidth(&rdev->wiphy, dev, link_id, chandef);
+	ret = rdev->ops->set_ap_chanwidth(&rdev->wiphy, dev, link_id, chandef);
 	trace_rdev_return_int(&rdev->wiphy, ret);
 
 	return ret;
@@ -1381,4 +1389,109 @@
 	return ret;
 }
 
+static inline int
+rdev_set_fils_aad(struct cfg80211_registered_device *rdev,
+		  struct net_device *dev, struct cfg80211_fils_aad *fils_aad)
+{
+	int ret = -EOPNOTSUPP;
+
+	trace_rdev_set_fils_aad(&rdev->wiphy, dev, fils_aad);
+	if (rdev->ops->set_fils_aad)
+		ret = rdev->ops->set_fils_aad(&rdev->wiphy, dev, fils_aad);
+	trace_rdev_return_int(&rdev->wiphy, ret);
+
+	return ret;
+}
+
+static inline int
+rdev_set_radar_background(struct cfg80211_registered_device *rdev,
+			  struct cfg80211_chan_def *chandef)
+{
+	struct wiphy *wiphy = &rdev->wiphy;
+	int ret;
+
+	if (!rdev->ops->set_radar_background)
+		return -EOPNOTSUPP;
+
+	trace_rdev_set_radar_background(wiphy, chandef);
+	ret = rdev->ops->set_radar_background(wiphy, chandef);
+	trace_rdev_return_int(wiphy, ret);
+
+	return ret;
+}
+
+static inline int
+rdev_add_intf_link(struct cfg80211_registered_device *rdev,
+		   struct wireless_dev *wdev,
+		   unsigned int link_id)
+{
+	int ret = 0;
+
+	trace_rdev_add_intf_link(&rdev->wiphy, wdev, link_id);
+	if (rdev->ops->add_intf_link)
+		ret = rdev->ops->add_intf_link(&rdev->wiphy, wdev, link_id);
+	trace_rdev_return_int(&rdev->wiphy, ret);
+
+	return ret;
+}
+
+static inline void
+rdev_del_intf_link(struct cfg80211_registered_device *rdev,
+		   struct wireless_dev *wdev,
+		   unsigned int link_id)
+{
+	trace_rdev_del_intf_link(&rdev->wiphy, wdev, link_id);
+	if (rdev->ops->del_intf_link)
+		rdev->ops->del_intf_link(&rdev->wiphy, wdev, link_id);
+	trace_rdev_return_void(&rdev->wiphy);
+}
+
+static inline int
+rdev_add_link_station(struct cfg80211_registered_device *rdev,
+		      struct net_device *dev,
+		      struct link_station_parameters *params)
+{
+	int ret;
+
+	if (!rdev->ops->add_link_station)
+		return -EOPNOTSUPP;
+
+	trace_rdev_add_link_station(&rdev->wiphy, dev, params);
+	ret = rdev->ops->add_link_station(&rdev->wiphy, dev, params);
+	trace_rdev_return_int(&rdev->wiphy, ret);
+	return ret;
+}
+
+static inline int
+rdev_mod_link_station(struct cfg80211_registered_device *rdev,
+		      struct net_device *dev,
+		      struct link_station_parameters *params)
+{
+	int ret;
+
+	if (!rdev->ops->mod_link_station)
+		return -EOPNOTSUPP;
+
+	trace_rdev_mod_link_station(&rdev->wiphy, dev, params);
+	ret = rdev->ops->mod_link_station(&rdev->wiphy, dev, params);
+	trace_rdev_return_int(&rdev->wiphy, ret);
+	return ret;
+}
+
+static inline int
+rdev_del_link_station(struct cfg80211_registered_device *rdev,
+		      struct net_device *dev,
+		      struct link_station_del_parameters *params)
+{
+	int ret;
+
+	if (!rdev->ops->del_link_station)
+		return -EOPNOTSUPP;
+
+	trace_rdev_del_link_station(&rdev->wiphy, dev, params);
+	ret = rdev->ops->del_link_station(&rdev->wiphy, dev, params);
+	trace_rdev_return_int(&rdev->wiphy, ret);
+	return ret;
+}
+
 #endif /* __CFG80211_RDEV_OPS */
diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index 9944abe..98243f1 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -5,7 +5,7 @@
  * Copyright 2008-2011	Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
  * Copyright 2013-2014  Intel Mobile Communications GmbH
  * Copyright      2017  Intel Deutschland GmbH
- * Copyright (C) 2018 - 2021 Intel Corporation
+ * Copyright (C) 2018 - 2022 Intel Corporation
  *
  * Permission to use, copy, modify, and/or distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -133,6 +133,7 @@
 
 static void restore_regulatory_settings(bool reset_user, bool cached);
 static void print_regdomain(const struct ieee80211_regdomain *rd);
+static void reg_process_hint(struct regulatory_request *reg_request);
 
 static const struct ieee80211_regdomain *get_cfg80211_regdom(void)
 {
@@ -1108,6 +1109,8 @@
 	const struct firmware *fw;
 	void *db;
 	int err;
+	const struct ieee80211_regdomain *current_regdomain;
+	struct regulatory_request *request;
 
 	err = request_firmware(&fw, "regulatory.db", &reg_pdev->dev);
 	if (err)
@@ -1128,8 +1131,26 @@
 	if (!IS_ERR_OR_NULL(regdb))
 		kfree(regdb);
 	regdb = db;
-	rtnl_unlock();
 
+	/* reset regulatory domain */
+	current_regdomain = get_cfg80211_regdom();
+
+	request = kzalloc(sizeof(*request), GFP_KERNEL);
+	if (!request) {
+		err = -ENOMEM;
+		goto out_unlock;
+	}
+
+	request->wiphy_idx = WIPHY_IDX_INVALID;
+	request->alpha2[0] = current_regdomain->alpha2[0];
+	request->alpha2[1] = current_regdomain->alpha2[1];
+	request->initiator = NL80211_REGDOM_SET_BY_CORE;
+	request->user_reg_hint_type = NL80211_USER_REG_HINT_USER;
+
+	reg_process_hint(request);
+
+out_unlock:
+	rtnl_unlock();
  out:
 	release_firmware(fw);
 	return err;
@@ -1227,6 +1248,8 @@
 {
 	unsigned int bw = reg_get_max_bandwidth_from_range(rd, rule);
 
+	if (rule->flags & NL80211_RRF_NO_320MHZ)
+		bw = min_t(unsigned int, bw, MHZ_TO_KHZ(160));
 	if (rule->flags & NL80211_RRF_NO_160MHZ)
 		bw = min_t(unsigned int, bw, MHZ_TO_KHZ(80));
 	if (rule->flags & NL80211_RRF_NO_80MHZ)
@@ -1600,6 +1623,8 @@
 		channel_flags |= IEEE80211_CHAN_NO_160MHZ;
 	if (rd_flags & NL80211_RRF_NO_HE)
 		channel_flags |= IEEE80211_CHAN_NO_HE;
+	if (rd_flags & NL80211_RRF_NO_320MHZ)
+		channel_flags |= IEEE80211_CHAN_NO_320MHZ;
 	return channel_flags;
 }
 
@@ -1762,6 +1787,8 @@
 			bw_flags |= IEEE80211_CHAN_NO_80MHZ;
 		if (max_bandwidth_khz < MHZ_TO_KHZ(160))
 			bw_flags |= IEEE80211_CHAN_NO_160MHZ;
+		if (max_bandwidth_khz < MHZ_TO_KHZ(320))
+			bw_flags |= IEEE80211_CHAN_NO_320MHZ;
 	}
 	return bw_flags;
 }
@@ -2349,6 +2376,7 @@
 	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
 	enum nl80211_iftype iftype;
 	bool ret;
+	int link;
 
 	wdev_lock(wdev);
 	iftype = wdev->iftype;
@@ -2357,58 +2385,85 @@
 	if (!wdev->netdev || !netif_running(wdev->netdev))
 		goto wdev_inactive_unlock;
 
-	switch (iftype) {
-	case NL80211_IFTYPE_AP:
-	case NL80211_IFTYPE_P2P_GO:
-		if (!wdev->beacon_interval)
-			goto wdev_inactive_unlock;
-		chandef = wdev->chandef;
-		break;
-	case NL80211_IFTYPE_ADHOC:
-		if (!wdev->ssid_len)
-			goto wdev_inactive_unlock;
-		chandef = wdev->chandef;
-		break;
-	case NL80211_IFTYPE_STATION:
-	case NL80211_IFTYPE_P2P_CLIENT:
-		if (!wdev->current_bss ||
-		    !wdev->current_bss->pub.channel)
-			goto wdev_inactive_unlock;
+	for (link = 0; link < ARRAY_SIZE(wdev->links); link++) {
+		struct ieee80211_channel *chan;
 
-		if (!rdev->ops->get_channel ||
-		    rdev_get_channel(rdev, wdev, &chandef))
-			cfg80211_chandef_create(&chandef,
-						wdev->current_bss->pub.channel,
-						NL80211_CHAN_NO_HT);
-		break;
-	case NL80211_IFTYPE_MONITOR:
-	case NL80211_IFTYPE_AP_VLAN:
-	case NL80211_IFTYPE_P2P_DEVICE:
-		/* no enforcement required */
-		break;
-	default:
-		/* others not implemented for now */
-		WARN_ON(1);
-		break;
+		if (!wdev->valid_links && link > 0)
+			break;
+		if (!(wdev->valid_links & BIT(link)))
+			continue;
+		switch (iftype) {
+		case NL80211_IFTYPE_AP:
+		case NL80211_IFTYPE_P2P_GO:
+			if (!wdev->links[link].ap.beacon_interval)
+				continue;
+			chandef = wdev->links[link].ap.chandef;
+			break;
+		case NL80211_IFTYPE_MESH_POINT:
+			if (!wdev->u.mesh.beacon_interval)
+				continue;
+			chandef = wdev->u.mesh.chandef;
+			break;
+		case NL80211_IFTYPE_ADHOC:
+			if (!wdev->u.ibss.ssid_len)
+				continue;
+			chandef = wdev->u.ibss.chandef;
+			break;
+		case NL80211_IFTYPE_STATION:
+		case NL80211_IFTYPE_P2P_CLIENT:
+			/* Maybe we could consider disabling that link only? */
+			if (!wdev->links[link].client.current_bss)
+				continue;
+
+			chan = wdev->links[link].client.current_bss->pub.channel;
+			if (!chan)
+				continue;
+
+			if (!rdev->ops->get_channel ||
+			    rdev_get_channel(rdev, wdev, link, &chandef))
+				cfg80211_chandef_create(&chandef, chan,
+							NL80211_CHAN_NO_HT);
+			break;
+		case NL80211_IFTYPE_MONITOR:
+		case NL80211_IFTYPE_AP_VLAN:
+		case NL80211_IFTYPE_P2P_DEVICE:
+			/* no enforcement required */
+			break;
+		default:
+			/* others not implemented for now */
+			WARN_ON(1);
+			break;
+		}
+
+		wdev_unlock(wdev);
+
+		switch (iftype) {
+		case NL80211_IFTYPE_AP:
+		case NL80211_IFTYPE_P2P_GO:
+		case NL80211_IFTYPE_ADHOC:
+		case NL80211_IFTYPE_MESH_POINT:
+			ret = cfg80211_reg_can_beacon_relax(wiphy, &chandef,
+							    iftype);
+
+			if (!ret)
+				return ret;
+			break;
+		case NL80211_IFTYPE_STATION:
+		case NL80211_IFTYPE_P2P_CLIENT:
+			ret = cfg80211_chandef_usable(wiphy, &chandef,
+						      IEEE80211_CHAN_DISABLED);
+			if (!ret)
+				return ret;
+			break;
+		default:
+			break;
+		}
+
+		wdev_lock(wdev);
 	}
 
 	wdev_unlock(wdev);
 
-	switch (iftype) {
-	case NL80211_IFTYPE_AP:
-	case NL80211_IFTYPE_P2P_GO:
-	case NL80211_IFTYPE_ADHOC:
-		ret = cfg80211_reg_can_beacon_relax(wiphy, &chandef, iftype);
-
-		return ret;
-	case NL80211_IFTYPE_STATION:
-	case NL80211_IFTYPE_P2P_CLIENT:
-		return cfg80211_chandef_usable(wiphy, &chandef,
-					       IEEE80211_CHAN_DISABLED);
-	default:
-		break;
-	}
-
 	return true;
 
 wdev_inactive_unlock:
@@ -4190,8 +4245,17 @@
 	 * In both cases we should end the CAC on the wdev.
 	 */
 	list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) {
-		if (wdev->cac_started &&
-		    !cfg80211_chandef_dfs_usable(&rdev->wiphy, &wdev->chandef))
+		struct cfg80211_chan_def *chandef;
+
+		if (!wdev->cac_started)
+			continue;
+
+		/* FIXME: radar detection is tied to link 0 for now */
+		chandef = wdev_chandef(wdev, 0);
+		if (!chandef)
+			continue;
+
+		if (!cfg80211_chandef_dfs_usable(&rdev->wiphy, chandef))
 			rdev_end_cac(rdev, wdev->netdev);
 	}
 }
diff --git a/net/wireless/scan.c b/net/wireless/scan.c
index c7192d7..af6c3a2 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
@@ -5,7 +5,7 @@
  * Copyright 2008 Johannes Berg <johannes@sipsolutions.net>
  * Copyright 2013-2014  Intel Mobile Communications GmbH
  * Copyright 2016	Intel Deutschland GmbH
- * Copyright (C) 2018-2021 Intel Corporation
+ * Copyright (C) 2018-2022 Intel Corporation
  */
 #include <linux/kernel.h>
 #include <linux/slab.h>
@@ -262,152 +262,249 @@
 }
 EXPORT_SYMBOL(cfg80211_is_element_inherited);
 
-static size_t cfg80211_copy_elem_with_frags(const struct element *elem,
-					    const u8 *ie, size_t ie_len,
-					    u8 **pos, u8 *buf, size_t buf_len)
+/**
+ * cfg80211_handle_rnr_ie_for_mbssid() - parse and modify RNR IE for MBSSID
+ *                                       feature
+ * @elem: The pointer to RNR IE
+ * @bssid_index: BSSID index from MBSSID index IE
+ * @pos: The buffer pointer to save the transformed RNR IE, caller is expected
+ *       to supply a buffer that is at least as big as @elem
+ *
+ * Per the description about Neighbor AP Information field about MLD
+ * parameters subfield in section 9.4.2.170.2 of Draft P802.11be_D1.4.
+ * If the reported AP is affiliated with the same MLD of the reporting AP,
+ * the TBTT information is skipped; If the reported AP is affiliated with
+ * the same MLD of the nontransmitted BSSID, the TBTT information is copied
+ * and the MLD ID is changed to 0.
+ *
+ * Return: Length of the element written to @pos
+ */
+static size_t cfg80211_handle_rnr_ie_for_mbssid(const struct element *elem,
+						u8 bssid_index, u8 *pos)
 {
-	if (WARN_ON((u8 *)elem < ie || elem->data > ie + ie_len ||
-		    elem->data + elem->datalen > ie + ie_len))
-		return 0;
+	size_t rnr_len;
+	const u8 *rnr, *data, *rnr_end;
+	u8 *rnr_new, *tbtt_info_field;
+	u8 tbtt_type, tbtt_len, tbtt_count;
+	u8 mld_pos, mld_id;
+	u32 i, copy_len;
+	/* The count of TBTT info field whose MLD ID equals to 0 in a neighbor
+	 * AP information field.
+	 */
+	u32 tbtt_info_field_count;
+	/* The total bytes of TBTT info fields whose MLD ID equals to 0 in
+	 * current RNR IE.
+	 */
+	u32 tbtt_info_field_len = 0;
 
-	if (elem->datalen + 2 > buf + buf_len - *pos)
-		return 0;
+	rnr_new = pos;
+	rnr = (u8 *)elem;
+	rnr_len = elem->datalen;
+	rnr_end = rnr + rnr_len + 2;
 
-	memcpy(*pos, elem, elem->datalen + 2);
-	*pos += elem->datalen + 2;
+	memcpy(pos, rnr, 2);
+	pos += 2;
+	data = elem->data;
+	while (data < rnr_end) {
+		tbtt_type = u8_get_bits(data[0], IEEE80211_TBTT_TYPE_MASK);
+		tbtt_count = u8_get_bits(data[0], IEEE80211_TBTT_COUNT_MASK);
+		tbtt_len = data[1];
 
-	/* Finish if it is not fragmented  */
-	if (elem->datalen != 255)
-		return *pos - buf;
-
-	ie_len = ie + ie_len - elem->data - elem->datalen;
-	ie = (const u8 *)elem->data + elem->datalen;
-
-	for_each_element(elem, ie, ie_len) {
-		if (elem->id != WLAN_EID_FRAGMENT)
-			break;
-
-		if (elem->datalen + 2 > buf + buf_len - *pos)
+		copy_len = tbtt_len * (tbtt_count + 1) +
+			   IEEE80211_NBR_AP_INFO_LEN;
+		if (data + copy_len > rnr_end)
 			return 0;
 
-		memcpy(*pos, elem, elem->datalen + 2);
-		*pos += elem->datalen + 2;
+		if (tbtt_len >=
+		    IEEE80211_TBTT_INFO_BSSID_SSID_BSS_PARAM_PSD_MLD_PARAM)
+			mld_pos =
+			    IEEE80211_TBTT_INFO_BSSID_SSID_BSS_PARAM_PSD;
+		else
+			mld_pos = 0;
+		/* If MLD params do not exist, copy this neighbor AP
+		 * information field.
+		 * Draft P802.11be_D1.4, tbtt_type value 1, 2 and 3
+		 * are reserved.
+		 */
+		if (mld_pos == 0 || tbtt_type != 0) {
+			memcpy(pos, data, copy_len);
+			pos += copy_len;
+			data += copy_len;
+			continue;
+		}
 
-		if (elem->datalen != 255)
-			break;
+		memcpy(pos, data, IEEE80211_NBR_AP_INFO_LEN);
+		tbtt_info_field = pos;
+		pos += IEEE80211_NBR_AP_INFO_LEN;
+		data += IEEE80211_NBR_AP_INFO_LEN;
+
+		tbtt_info_field_count = 0;
+		for (i = 0; i < tbtt_count + 1; i++) {
+			mld_id = data[mld_pos];
+			/* Refer to Draft P802.11be_D1.4
+			 * 9.4.2.170.2 Neighbor AP Information field about
+			 * MLD parameters subfield
+			 */
+			if (mld_id == 0) {
+				/* Skip this TBTT information since this
+				 * reported AP is affiliated with the same MLD
+				 * of the reporting AP who sending the frame
+				 * carrying this element.
+				 */
+				tbtt_info_field_len += tbtt_len;
+				data += tbtt_len;
+				tbtt_info_field_count++;
+			} else if (mld_id == bssid_index) {
+				/* Copy this TBTT information and change MLD
+				 * to 0 as this reported AP is affiliated with
+				 * the same MLD of the nontransmitted BSSID.
+				 */
+				memcpy(pos, data, tbtt_len);
+				pos[mld_pos] = 0;
+				data += tbtt_len;
+				pos += tbtt_len;
+			} else {
+				memcpy(pos, data, tbtt_len);
+				data += tbtt_len;
+				pos += tbtt_len;
+			}
+		}
+		if (tbtt_info_field_count == (tbtt_count + 1)) {
+			/* If all the TBTT informations are skipped, then also
+			 * revert the neighbor AP info which has been copied.
+			 */
+			pos -= IEEE80211_NBR_AP_INFO_LEN;
+			tbtt_info_field_len += IEEE80211_NBR_AP_INFO_LEN;
+		} else {
+			u8p_replace_bits(&tbtt_info_field[0],
+					 tbtt_count - tbtt_info_field_count,
+					 IEEE80211_TBTT_COUNT_MASK);
+		}
 	}
 
-	return *pos - buf;
+	rnr_new[1] = rnr_len - tbtt_info_field_len;
+	if (rnr_new[1] == 0)
+		pos = rnr_new;
+
+	return pos - rnr_new;
 }
 
 static size_t cfg80211_gen_new_ie(const u8 *ie, size_t ielen,
-				  const u8 *subie, size_t subie_len,
-				  u8 *new_ie, size_t new_ie_len)
+				  const u8 *subelement, size_t subie_len,
+				  u8 *new_ie, u8 bssid_index, gfp_t gfp)
 {
-	const struct element *non_inherit_elem, *parent, *sub;
-	u8 *pos = new_ie;
-	u8 id, ext_id;
-	unsigned int match_len;
+	u8 *pos, *tmp;
+	const u8 *tmp_old, *tmp_new;
+	const struct element *non_inherit_elem;
+	u8 *sub_copy;
 
-	non_inherit_elem = cfg80211_find_ext_elem(WLAN_EID_EXT_NON_INHERITANCE,
-						  subie, subie_len);
-
-	/* We copy the elements one by one from the parent to the generated
-	 * elements.
-	 * If they are not inherited (included in subie or in the non
-	 * inheritance element), then we copy all occurrences the first time
-	 * we see this element type.
+	/* copy subelement as we need to change its content to
+	 * mark an ie after it is processed.
 	 */
-	for_each_element(parent, ie, ielen) {
-		if (parent->id == WLAN_EID_FRAGMENT)
-			continue;
+	sub_copy = kmemdup(subelement, subie_len, gfp);
+	if (!sub_copy)
+		return 0;
 
-		if (parent->id == WLAN_EID_EXTENSION) {
-			if (parent->datalen < 1)
-				continue;
+	pos = &new_ie[0];
 
-			id = WLAN_EID_EXTENSION;
-			ext_id = parent->data[0];
-			match_len = 1;
-		} else {
-			id = parent->id;
-			match_len = 0;
-		}
-
-		/* Find first occurrence in subie */
-		sub = cfg80211_find_elem_match(id, subie, subie_len,
-					       &ext_id, match_len, 0);
-
-		/* Copy from parent if not in subie and inherited */
-		if (!sub &&
-		    cfg80211_is_element_inherited(parent, non_inherit_elem)) {
-			if (!cfg80211_copy_elem_with_frags(parent,
-							   ie, ielen,
-							   &pos, new_ie,
-							   new_ie_len))
-				return 0;
-
-			continue;
-		}
-
-		/* Already copied if an earlier element had the same type */
-		if (cfg80211_find_elem_match(id, ie, (u8 *)parent - ie,
-					     &ext_id, match_len, 0))
-			continue;
-
-		/* Not inheriting, copy all similar elements from subie */
-		while (sub) {
-			if (!cfg80211_copy_elem_with_frags(sub,
-							   subie, subie_len,
-							   &pos, new_ie,
-							   new_ie_len))
-				return 0;
-
-			sub = cfg80211_find_elem_match(id,
-						       sub->data + sub->datalen,
-						       subie_len + subie -
-						       (sub->data +
-							sub->datalen),
-						       &ext_id, match_len, 0);
-		}
+	/* set new ssid */
+	tmp_new = cfg80211_find_ie(WLAN_EID_SSID, sub_copy, subie_len);
+	if (tmp_new) {
+		memcpy(pos, tmp_new, tmp_new[1] + 2);
+		pos += (tmp_new[1] + 2);
 	}
 
-	/* The above misses elements that are included in subie but not in the
-	 * parent, so do a pass over subie and append those.
-	 * Skip the non-tx BSSID caps and non-inheritance element.
+	/* get non inheritance list if exists */
+	non_inherit_elem =
+		cfg80211_find_ext_elem(WLAN_EID_EXT_NON_INHERITANCE,
+				       sub_copy, subie_len);
+
+	/* go through IEs in ie (skip SSID) and subelement,
+	 * merge them into new_ie
 	 */
-	for_each_element(sub, subie, subie_len) {
-		if (sub->id == WLAN_EID_NON_TX_BSSID_CAP)
+	tmp_old = cfg80211_find_ie(WLAN_EID_SSID, ie, ielen);
+	tmp_old = (tmp_old) ? tmp_old + tmp_old[1] + 2 : ie;
+
+	while (tmp_old + 2 - ie <= ielen &&
+	       tmp_old + tmp_old[1] + 2 - ie <= ielen) {
+		if (tmp_old[0] == 0) {
+			tmp_old++;
 			continue;
-
-		if (sub->id == WLAN_EID_FRAGMENT)
-			continue;
-
-		if (sub->id == WLAN_EID_EXTENSION) {
-			if (sub->datalen < 1)
-				continue;
-
-			id = WLAN_EID_EXTENSION;
-			ext_id = sub->data[0];
-			match_len = 1;
-
-			if (ext_id == WLAN_EID_EXT_NON_INHERITANCE)
-				continue;
-		} else {
-			id = sub->id;
-			match_len = 0;
 		}
 
-		/* Processed if one was included in the parent */
-		if (cfg80211_find_elem_match(id, ie, ielen,
-					     &ext_id, match_len, 0))
-			continue;
+		if (tmp_old[0] == WLAN_EID_EXTENSION)
+			tmp = (u8 *)cfg80211_find_ext_ie(tmp_old[2], sub_copy,
+							 subie_len);
+		else
+			tmp = (u8 *)cfg80211_find_ie(tmp_old[0], sub_copy,
+						     subie_len);
 
-		if (!cfg80211_copy_elem_with_frags(sub, subie, subie_len,
-						   &pos, new_ie, new_ie_len))
-			return 0;
+		if (!tmp) {
+			const struct element *old_elem = (void *)tmp_old;
+
+			/* ie in old ie but not in subelement */
+			if (tmp_old[0] == WLAN_EID_REDUCED_NEIGHBOR_REPORT) {
+				pos +=
+				  cfg80211_handle_rnr_ie_for_mbssid(old_elem,
+								    bssid_index,
+								    pos);
+			} else if (cfg80211_is_element_inherited(old_elem,
+								 non_inherit_elem)) {
+				memcpy(pos, tmp_old, tmp_old[1] + 2);
+				pos += tmp_old[1] + 2;
+			}
+		} else {
+			/* ie in transmitting ie also in subelement,
+			 * copy from subelement and flag the ie in subelement
+			 * as copied (by setting eid field to WLAN_EID_SSID,
+			 * which is skipped anyway).
+			 * For vendor ie, compare OUI + type + subType to
+			 * determine if they are the same ie.
+			 */
+			if (tmp_old[0] == WLAN_EID_VENDOR_SPECIFIC) {
+				if (tmp_old[1] >= 5 && tmp[1] >= 5 &&
+				    !memcmp(tmp_old + 2, tmp + 2, 5)) {
+					/* same vendor ie, copy from
+					 * subelement
+					 */
+					memcpy(pos, tmp, tmp[1] + 2);
+					pos += tmp[1] + 2;
+					tmp[0] = WLAN_EID_SSID;
+				} else {
+					memcpy(pos, tmp_old, tmp_old[1] + 2);
+					pos += tmp_old[1] + 2;
+				}
+			} else {
+				/* copy ie from subelement into new ie */
+				memcpy(pos, tmp, tmp[1] + 2);
+				pos += tmp[1] + 2;
+				tmp[0] = WLAN_EID_SSID;
+			}
+		}
+
+		if (tmp_old + tmp_old[1] + 2 - ie == ielen)
+			break;
+
+		tmp_old += tmp_old[1] + 2;
 	}
 
+	/* go through subelement again to check if there is any ie not
+	 * copied to new ie, skip ssid, capability, bssid-index ie
+	 */
+	tmp_new = sub_copy;
+	while (tmp_new + 2 - sub_copy <= subie_len &&
+	       tmp_new + tmp_new[1] + 2 - sub_copy <= subie_len) {
+		if (!(tmp_new[0] == WLAN_EID_NON_TX_BSSID_CAP ||
+		      tmp_new[0] == WLAN_EID_SSID)) {
+			memcpy(pos, tmp_new, tmp_new[1] + 2);
+			pos += tmp_new[1] + 2;
+		}
+		if (tmp_new + tmp_new[1] + 2 - sub_copy == subie_len)
+			break;
+		tmp_new += tmp_new[1] + 2;
+	}
+
+	kfree(sub_copy);
 	return pos - new_ie;
 }
 
@@ -438,22 +535,20 @@
 cfg80211_add_nontrans_list(struct cfg80211_bss *trans_bss,
 			   struct cfg80211_bss *nontrans_bss)
 {
-	const u8 *ssid;
-	size_t ssid_len;
+	const struct element *ssid_elem;
 	struct cfg80211_bss *bss = NULL;
 
 	rcu_read_lock();
-	ssid = ieee80211_bss_get_ie(nontrans_bss, WLAN_EID_SSID);
-	if (!ssid) {
+	ssid_elem = ieee80211_bss_get_elem(nontrans_bss, WLAN_EID_SSID);
+	if (!ssid_elem) {
 		rcu_read_unlock();
 		return -EINVAL;
 	}
-	ssid_len = ssid[1];
-	ssid = ssid + 2;
 
 	/* check if nontrans_bss is in the list */
 	list_for_each_entry(bss, &trans_bss->nontrans_list, nontrans_list) {
-		if (is_bss(bss, nontrans_bss->bssid, ssid, ssid_len)) {
+		if (is_bss(bss, nontrans_bss->bssid, ssid_elem->data,
+			   ssid_elem->datalen)) {
 			rcu_read_unlock();
 			return 0;
 		}
@@ -583,7 +678,7 @@
 	memcpy(entry->bssid, pos, ETH_ALEN);
 	pos += ETH_ALEN;
 
-	if (length == IEEE80211_TBTT_INFO_OFFSET_BSSID_SSSID_BSS_PARAM) {
+	if (length >= IEEE80211_TBTT_INFO_OFFSET_BSSID_SSSID_BSS_PARAM) {
 		memcpy(&entry->short_ssid, pos,
 		       sizeof(entry->short_ssid));
 		entry->short_ssid_valid = true;
@@ -2138,6 +2233,7 @@
 	u64 seen_indices = 0;
 	u16 capability;
 	struct cfg80211_bss *bss;
+	u8 bssid_index;
 
 	if (!non_tx_data)
 		return;
@@ -2206,6 +2302,7 @@
 
 			non_tx_data->bssid_index = mbssid_index_ie[2];
 			non_tx_data->max_bssid_indicator = elem->data[0];
+			bssid_index = non_tx_data->bssid_index;
 
 			cfg80211_gen_new_bssid(bssid,
 					       non_tx_data->max_bssid_indicator,
@@ -2215,7 +2312,7 @@
 			new_ie_len = cfg80211_gen_new_ie(ie, ielen,
 							 profile,
 							 profile_len, new_ie,
-							 IEEE80211_MAX_DATA_LEN);
+							 bssid_index, gfp);
 			if (!new_ie_len)
 				continue;
 
@@ -2291,7 +2388,8 @@
 				   struct ieee80211_mgmt *mgmt, size_t len)
 {
 	u8 *ie, *new_ie, *pos;
-	const u8 *nontrans_ssid, *trans_ssid, *mbssid;
+	const struct element *nontrans_ssid;
+	const u8 *trans_ssid, *mbssid;
 	size_t ielen = len - offsetof(struct ieee80211_mgmt,
 				      u.probe_resp.variable);
 	size_t new_ie_len;
@@ -2318,11 +2416,11 @@
 		return;
 	new_ie_len -= mbssid[1];
 
-	nontrans_ssid = ieee80211_bss_get_ie(nontrans_bss, WLAN_EID_SSID);
+	nontrans_ssid = ieee80211_bss_get_elem(nontrans_bss, WLAN_EID_SSID);
 	if (!nontrans_ssid)
 		return;
 
-	new_ie_len += nontrans_ssid[1];
+	new_ie_len += nontrans_ssid->datalen;
 
 	/* generate new ie for nontrans BSS
 	 * 1. replace SSID with nontrans BSS' SSID
@@ -2339,7 +2437,7 @@
 	pos = new_ie;
 
 	/* copy the nontransmitted SSID */
-	cpy_len = nontrans_ssid[1] + 2;
+	cpy_len = nontrans_ssid->datalen + 2;
 	memcpy(pos, nontrans_ssid, cpy_len);
 	pos += cpy_len;
 	/* copy the IEs between SSID and MBSSID */
@@ -2633,7 +2731,8 @@
 	spin_lock_bh(&rdev->bss_lock);
 
 	list_for_each_entry(bss, &rdev->bss_list, list) {
-		if (!chandef || cfg80211_is_sub_chan(chandef, bss->pub.channel))
+		if (!chandef || cfg80211_is_sub_chan(chandef, bss->pub.channel,
+						     false))
 			iter(wiphy, &bss->pub, iter_data);
 	}
 
@@ -2642,11 +2741,12 @@
 EXPORT_SYMBOL(cfg80211_bss_iter);
 
 void cfg80211_update_assoc_bss_entry(struct wireless_dev *wdev,
+				     unsigned int link_id,
 				     struct ieee80211_channel *chan)
 {
 	struct wiphy *wiphy = wdev->wiphy;
 	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
-	struct cfg80211_internal_bss *cbss = wdev->current_bss;
+	struct cfg80211_internal_bss *cbss = wdev->links[link_id].client.current_bss;
 	struct cfg80211_internal_bss *new = NULL;
 	struct cfg80211_internal_bss *bss;
 	struct cfg80211_bss *nontrans_bss;
@@ -2751,7 +2851,7 @@
 	struct cfg80211_registered_device *rdev;
 	struct wiphy *wiphy;
 	struct iw_scan_req *wreq = NULL;
-	struct cfg80211_scan_request *creq = NULL;
+	struct cfg80211_scan_request *creq;
 	int i, err, n_channels = 0;
 	enum nl80211_band band;
 
@@ -2766,10 +2866,8 @@
 	if (IS_ERR(rdev))
 		return PTR_ERR(rdev);
 
-	if (rdev->scan_req || rdev->scan_msg) {
-		err = -EBUSY;
-		goto out;
-	}
+	if (rdev->scan_req || rdev->scan_msg)
+		return -EBUSY;
 
 	wiphy = &rdev->wiphy;
 
@@ -2782,10 +2880,8 @@
 	creq = kzalloc(sizeof(*creq) + sizeof(struct cfg80211_ssid) +
 		       n_channels * sizeof(void *),
 		       GFP_ATOMIC);
-	if (!creq) {
-		err = -ENOMEM;
-		goto out;
-	}
+	if (!creq)
+		return -ENOMEM;
 
 	creq->wiphy = wiphy;
 	creq->wdev = dev->ieee80211_ptr;
diff --git a/net/wireless/sme.c b/net/wireless/sme.c
index 1591cd6..ab27363 100644
--- a/net/wireless/sme.c
+++ b/net/wireless/sme.c
@@ -5,7 +5,7 @@
  * (for nl80211's connect() and wext)
  *
  * Copyright 2009	Johannes Berg <johannes@sipsolutions.net>
- * Copyright (C) 2009, 2020 Intel Corporation. All rights reserved.
+ * Copyright (C) 2009, 2020, 2022 Intel Corporation. All rights reserved.
  * Copyright 2017	Intel Deutschland GmbH
  */
 
@@ -147,6 +147,7 @@
 {
 	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
 	struct cfg80211_connect_params *params;
+	struct cfg80211_auth_request auth_req = {};
 	struct cfg80211_assoc_request req = {};
 	int err;
 
@@ -167,13 +168,18 @@
 		if (WARN_ON(!rdev->ops->auth))
 			return -EOPNOTSUPP;
 		wdev->conn->state = CFG80211_CONN_AUTHENTICATING;
-		return cfg80211_mlme_auth(rdev, wdev->netdev,
-					  params->channel, params->auth_type,
-					  params->bssid,
-					  params->ssid, params->ssid_len,
-					  NULL, 0,
-					  params->key, params->key_len,
-					  params->key_idx, NULL, 0);
+		auth_req.key = params->key;
+		auth_req.key_len = params->key_len;
+		auth_req.key_idx = params->key_idx;
+		auth_req.bss = cfg80211_get_bss(&rdev->wiphy, params->channel,
+						params->bssid,
+						params->ssid, params->ssid_len,
+						IEEE80211_BSS_TYPE_ESS,
+						IEEE80211_PRIVACY_ANY);
+		auth_req.link_id = -1;
+		err = cfg80211_mlme_auth(rdev, wdev->netdev, &auth_req);
+		cfg80211_put_bss(&rdev->wiphy, auth_req.bss);
+		return err;
 	case CFG80211_CONN_AUTH_FAILED_TIMEOUT:
 		*treason = NL80211_TIMEOUT_AUTH;
 		return -ENOTCONN;
@@ -192,10 +198,20 @@
 		req.ht_capa_mask = params->ht_capa_mask;
 		req.vht_capa = params->vht_capa;
 		req.vht_capa_mask = params->vht_capa_mask;
+		req.link_id = -1;
 
-		err = cfg80211_mlme_assoc(rdev, wdev->netdev, params->channel,
-					  params->bssid, params->ssid,
-					  params->ssid_len, &req);
+		req.bss = cfg80211_get_bss(&rdev->wiphy, params->channel,
+					   params->bssid,
+					   params->ssid, params->ssid_len,
+					   IEEE80211_BSS_TYPE_ESS,
+					   IEEE80211_PRIVACY_ANY);
+		if (!req.bss) {
+			err = -ENOENT;
+		} else {
+			err = cfg80211_mlme_assoc(rdev, wdev->netdev, &req);
+			cfg80211_put_bss(&rdev->wiphy, req.bss);
+		}
+
 		if (err)
 			cfg80211_mlme_deauth(rdev, wdev->netdev, params->bssid,
 					     NULL, 0,
@@ -258,7 +274,7 @@
 
 			memset(&cr, 0, sizeof(cr));
 			cr.status = -1;
-			cr.bssid = bssid;
+			cr.links[0].bssid = bssid;
 			cr.timeout_reason = treason;
 			__cfg80211_connect_result(wdev->netdev, &cr, false);
 		}
@@ -373,7 +389,7 @@
 
 		memset(&cr, 0, sizeof(cr));
 		cr.status = status_code;
-		cr.bssid = mgmt->bssid;
+		cr.links[0].bssid = mgmt->bssid;
 		cr.timeout_reason = NL80211_TIMEOUT_UNSPECIFIED;
 		__cfg80211_connect_result(wdev->netdev, &cr, false);
 	} else if (wdev->conn->state == CFG80211_CONN_AUTHENTICATING) {
@@ -460,6 +476,20 @@
 	schedule_work(&rdev->conn_work);
 }
 
+static void cfg80211_wdev_release_bsses(struct wireless_dev *wdev)
+{
+	unsigned int link;
+
+	for_each_valid_link(wdev, link) {
+		if (!wdev->links[link].client.current_bss)
+			continue;
+		cfg80211_unhold_bss(wdev->links[link].client.current_bss);
+		cfg80211_put_bss(wdev->wiphy,
+				 &wdev->links[link].client.current_bss->pub);
+		wdev->links[link].client.current_bss = NULL;
+	}
+}
+
 static int cfg80211_sme_get_conn_ies(struct wireless_dev *wdev,
 				     const u8 *ies, size_t ies_len,
 				     const u8 **out_ies, size_t *out_ies_len)
@@ -527,12 +557,11 @@
 	if (!rdev->ops->auth || !rdev->ops->assoc)
 		return -EOPNOTSUPP;
 
-	if (wdev->current_bss) {
-		cfg80211_unhold_bss(wdev->current_bss);
-		cfg80211_put_bss(wdev->wiphy, &wdev->current_bss->pub);
-		wdev->current_bss = NULL;
+	cfg80211_wdev_release_bsses(wdev);
 
+	if (wdev->connected) {
 		cfg80211_sme_free(wdev);
+		wdev->connected = false;
 	}
 
 	if (wdev->conn)
@@ -569,8 +598,8 @@
 		wdev->conn->auto_auth = false;
 	}
 
-	wdev->conn->params.ssid = wdev->ssid;
-	wdev->conn->params.ssid_len = wdev->ssid_len;
+	wdev->conn->params.ssid = wdev->u.client.ssid;
+	wdev->conn->params.ssid_len = wdev->u.client.ssid_len;
 
 	/* see if we have the bss already */
 	bss = cfg80211_get_bss(wdev->wiphy, wdev->conn->params.channel,
@@ -660,7 +689,7 @@
 	list_for_each_entry(rdev, &cfg80211_rdev_list, list) {
 		list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) {
 			wdev_lock(wdev);
-			if (wdev->conn || wdev->current_bss ||
+			if (wdev->conn || wdev->connected ||
 			    cfg80211_beaconing_iface_active(wdev))
 				is_all_idle = false;
 			wdev_unlock(wdev);
@@ -680,6 +709,19 @@
 
 DECLARE_WORK(cfg80211_disconnect_work, disconnect_work);
 
+static void
+cfg80211_connect_result_release_bsses(struct wireless_dev *wdev,
+				      struct cfg80211_connect_resp_params *cr)
+{
+	unsigned int link;
+
+	for_each_valid_link(cr, link) {
+		if (!cr->links[link].bss)
+			continue;
+		cfg80211_unhold_bss(bss_from_pub(cr->links[link].bss));
+		cfg80211_put_bss(wdev->wiphy, cr->links[link].bss);
+	}
+}
 
 /*
  * API calls for drivers implementing connect/disconnect and
@@ -692,25 +734,43 @@
 			       bool wextev)
 {
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
-	const u8 *country_ie;
+	const struct element *country_elem = NULL;
+	const struct element *ssid;
+	const u8 *country_data;
+	u8 country_datalen;
 #ifdef CONFIG_CFG80211_WEXT
 	union iwreq_data wrqu;
 #endif
+	unsigned int link;
+	const u8 *connected_addr;
+	bool bss_not_found = false;
 
 	ASSERT_WDEV_LOCK(wdev);
 
 	if (WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION &&
-		    wdev->iftype != NL80211_IFTYPE_P2P_CLIENT)) {
-		cfg80211_put_bss(wdev->wiphy, cr->bss);
-		return;
+		    wdev->iftype != NL80211_IFTYPE_P2P_CLIENT))
+		goto out;
+
+	if (cr->valid_links) {
+		if (WARN_ON(!cr->ap_mld_addr))
+			goto out;
+
+		for_each_valid_link(cr, link) {
+			if (WARN_ON(!cr->links[link].addr))
+				goto out;
+		}
+
+		if (WARN_ON(wdev->connect_keys))
+			goto out;
 	}
 
 	wdev->unprot_beacon_reported = 0;
 	nl80211_send_connect_result(wiphy_to_rdev(wdev->wiphy), dev, cr,
 				    GFP_KERNEL);
+	connected_addr = cr->valid_links ? cr->ap_mld_addr : cr->links[0].bssid;
 
 #ifdef CONFIG_CFG80211_WEXT
-	if (wextev) {
+	if (wextev && !cr->valid_links) {
 		if (cr->req_ie && cr->status == WLAN_STATUS_SUCCESS) {
 			memset(&wrqu, 0, sizeof(wrqu));
 			wrqu.data.length = cr->req_ie_len;
@@ -727,76 +787,179 @@
 
 		memset(&wrqu, 0, sizeof(wrqu));
 		wrqu.ap_addr.sa_family = ARPHRD_ETHER;
-		if (cr->bssid && cr->status == WLAN_STATUS_SUCCESS) {
-			memcpy(wrqu.ap_addr.sa_data, cr->bssid, ETH_ALEN);
-			memcpy(wdev->wext.prev_bssid, cr->bssid, ETH_ALEN);
+		if (connected_addr && cr->status == WLAN_STATUS_SUCCESS) {
+			memcpy(wrqu.ap_addr.sa_data, connected_addr, ETH_ALEN);
+			memcpy(wdev->wext.prev_bssid, connected_addr, ETH_ALEN);
 			wdev->wext.prev_bssid_valid = true;
 		}
 		wireless_send_event(dev, SIOCGIWAP, &wrqu, NULL);
 	}
 #endif
 
-	if (!cr->bss && (cr->status == WLAN_STATUS_SUCCESS)) {
-		WARN_ON_ONCE(!wiphy_to_rdev(wdev->wiphy)->ops->connect);
-		cr->bss = cfg80211_get_bss(wdev->wiphy, NULL, cr->bssid,
-					   wdev->ssid, wdev->ssid_len,
-					   wdev->conn_bss_type,
-					   IEEE80211_PRIVACY_ANY);
-		if (cr->bss)
-			cfg80211_hold_bss(bss_from_pub(cr->bss));
+	if (cr->status == WLAN_STATUS_SUCCESS) {
+		if (!wiphy_to_rdev(wdev->wiphy)->ops->connect) {
+			for_each_valid_link(cr, link) {
+				if (WARN_ON_ONCE(!cr->links[link].bss))
+					break;
+			}
+		}
+
+		for_each_valid_link(cr, link) {
+			/* don't do extra lookups for failures */
+			if (cr->links[link].status != WLAN_STATUS_SUCCESS)
+				continue;
+
+			if (cr->links[link].bss)
+				continue;
+
+			cr->links[link].bss =
+				cfg80211_get_bss(wdev->wiphy, NULL,
+						 cr->links[link].bssid,
+						 wdev->u.client.ssid,
+						 wdev->u.client.ssid_len,
+						 wdev->conn_bss_type,
+						 IEEE80211_PRIVACY_ANY);
+			if (!cr->links[link].bss) {
+				bss_not_found = true;
+				break;
+			}
+			cfg80211_hold_bss(bss_from_pub(cr->links[link].bss));
+		}
 	}
 
-	if (wdev->current_bss) {
-		cfg80211_unhold_bss(wdev->current_bss);
-		cfg80211_put_bss(wdev->wiphy, &wdev->current_bss->pub);
-		wdev->current_bss = NULL;
-	}
+	cfg80211_wdev_release_bsses(wdev);
 
 	if (cr->status != WLAN_STATUS_SUCCESS) {
 		kfree_sensitive(wdev->connect_keys);
 		wdev->connect_keys = NULL;
-		wdev->ssid_len = 0;
+		wdev->u.client.ssid_len = 0;
 		wdev->conn_owner_nlportid = 0;
-		if (cr->bss) {
-			cfg80211_unhold_bss(bss_from_pub(cr->bss));
-			cfg80211_put_bss(wdev->wiphy, cr->bss);
-		}
+		cfg80211_connect_result_release_bsses(wdev, cr);
 		cfg80211_sme_free(wdev);
 		return;
 	}
 
-	if (WARN_ON(!cr->bss))
+	if (WARN_ON(bss_not_found)) {
+		cfg80211_connect_result_release_bsses(wdev, cr);
 		return;
+	}
 
-	wdev->current_bss = bss_from_pub(cr->bss);
+	memset(wdev->links, 0, sizeof(wdev->links));
+	for_each_valid_link(cr, link) {
+		if (cr->links[link].status == WLAN_STATUS_SUCCESS)
+			continue;
+		cr->valid_links &= ~BIT(link);
+		/* don't require bss pointer for failed links */
+		if (!cr->links[link].bss)
+			continue;
+		cfg80211_unhold_bss(bss_from_pub(cr->links[link].bss));
+		cfg80211_put_bss(wdev->wiphy, cr->links[link].bss);
+	}
+	wdev->valid_links = cr->valid_links;
+	for_each_valid_link(cr, link)
+		wdev->links[link].client.current_bss =
+			bss_from_pub(cr->links[link].bss);
+	wdev->connected = true;
+	ether_addr_copy(wdev->u.client.connected_addr, connected_addr);
+	if (cr->valid_links) {
+		for_each_valid_link(cr, link)
+			memcpy(wdev->links[link].addr, cr->links[link].addr,
+			       ETH_ALEN);
+	}
 
 	if (!(wdev->wiphy->flags & WIPHY_FLAG_HAS_STATIC_WEP))
 		cfg80211_upload_connect_keys(wdev);
 
 	rcu_read_lock();
-	country_ie = ieee80211_bss_get_ie(cr->bss, WLAN_EID_COUNTRY);
-	if (!country_ie) {
+	for_each_valid_link(cr, link) {
+		country_elem =
+			ieee80211_bss_get_elem(cr->links[link].bss,
+					       WLAN_EID_COUNTRY);
+		if (country_elem)
+			break;
+	}
+	if (!country_elem) {
 		rcu_read_unlock();
 		return;
 	}
 
-	country_ie = kmemdup(country_ie, 2 + country_ie[1], GFP_ATOMIC);
+	country_datalen = country_elem->datalen;
+	country_data = kmemdup(country_elem->data, country_datalen, GFP_ATOMIC);
 	rcu_read_unlock();
 
-	if (!country_ie)
+	if (!country_data)
 		return;
 
-	/*
-	 * ieee80211_bss_get_ie() ensures we can access:
-	 * - country_ie + 2, the start of the country ie data, and
-	 * - and country_ie[1] which is the IE length
-	 */
-	regulatory_hint_country_ie(wdev->wiphy, cr->bss->channel->band,
-				   country_ie + 2, country_ie[1]);
-	kfree(country_ie);
+	regulatory_hint_country_ie(wdev->wiphy,
+				   cr->links[link].bss->channel->band,
+				   country_data, country_datalen);
+	kfree(country_data);
+
+	if (!wdev->u.client.ssid_len) {
+		rcu_read_lock();
+		for_each_valid_link(cr, link) {
+			ssid = ieee80211_bss_get_elem(cr->links[link].bss,
+						      WLAN_EID_SSID);
+
+			if (!ssid || !ssid->datalen)
+				continue;
+
+			memcpy(wdev->u.client.ssid, ssid->data, ssid->datalen);
+			wdev->u.client.ssid_len = ssid->datalen;
+			break;
+		}
+		rcu_read_unlock();
+	}
+
+	return;
+out:
+	for_each_valid_link(cr, link)
+		cfg80211_put_bss(wdev->wiphy, cr->links[link].bss);
 }
 
-/* Consumes bss object one way or another */
+static void cfg80211_update_link_bss(struct wireless_dev *wdev,
+				     struct cfg80211_bss **bss)
+{
+	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
+	struct cfg80211_internal_bss *ibss;
+
+	if (!*bss)
+		return;
+
+	ibss = bss_from_pub(*bss);
+	if (list_empty(&ibss->list)) {
+		struct cfg80211_bss *found = NULL, *tmp = *bss;
+
+		found = cfg80211_get_bss(wdev->wiphy, NULL,
+					 (*bss)->bssid,
+					 wdev->u.client.ssid,
+					 wdev->u.client.ssid_len,
+					 wdev->conn_bss_type,
+					 IEEE80211_PRIVACY_ANY);
+		if (found) {
+			/* The same BSS is already updated so use it
+			 * instead, as it has latest info.
+			 */
+			*bss = found;
+		} else {
+			/* Update with BSS provided by driver, it will
+			 * be freshly added and ref cnted, we can free
+			 * the old one.
+			 *
+			 * signal_valid can be false, as we are not
+			 * expecting the BSS to be found.
+			 *
+			 * keep the old timestamp to avoid confusion
+			 */
+			cfg80211_bss_update(rdev, ibss, false,
+					    ibss->ts);
+		}
+
+		cfg80211_put_bss(wdev->wiphy, tmp);
+	}
+}
+
+/* Consumes bss object(s) one way or another */
 void cfg80211_connect_done(struct net_device *dev,
 			   struct cfg80211_connect_resp_params *params,
 			   gfp_t gfp)
@@ -806,55 +969,34 @@
 	struct cfg80211_event *ev;
 	unsigned long flags;
 	u8 *next;
+	size_t link_info_size = 0;
+	unsigned int link;
 
-	if (params->bss) {
-		struct cfg80211_internal_bss *ibss = bss_from_pub(params->bss);
-
-		if (list_empty(&ibss->list)) {
-			struct cfg80211_bss *found = NULL, *tmp = params->bss;
-
-			found = cfg80211_get_bss(wdev->wiphy, NULL,
-						 params->bss->bssid,
-						 wdev->ssid, wdev->ssid_len,
-						 wdev->conn_bss_type,
-						 IEEE80211_PRIVACY_ANY);
-			if (found) {
-				/* The same BSS is already updated so use it
-				 * instead, as it has latest info.
-				 */
-				params->bss = found;
-			} else {
-				/* Update with BSS provided by driver, it will
-				 * be freshly added and ref cnted, we can free
-				 * the old one.
-				 *
-				 * signal_valid can be false, as we are not
-				 * expecting the BSS to be found.
-				 *
-				 * keep the old timestamp to avoid confusion
-				 */
-				cfg80211_bss_update(rdev, ibss, false,
-						    ibss->ts);
-			}
-
-			cfg80211_put_bss(wdev->wiphy, tmp);
-		}
+	for_each_valid_link(params, link) {
+		cfg80211_update_link_bss(wdev, &params->links[link].bss);
+		link_info_size += params->links[link].bssid ? ETH_ALEN : 0;
+		link_info_size += params->links[link].addr ? ETH_ALEN : 0;
 	}
 
-	ev = kzalloc(sizeof(*ev) + (params->bssid ? ETH_ALEN : 0) +
+	ev = kzalloc(sizeof(*ev) + (params->ap_mld_addr ? ETH_ALEN : 0) +
 		     params->req_ie_len + params->resp_ie_len +
 		     params->fils.kek_len + params->fils.pmk_len +
-		     (params->fils.pmkid ? WLAN_PMKID_LEN : 0), gfp);
+		     (params->fils.pmkid ? WLAN_PMKID_LEN : 0) + link_info_size,
+		     gfp);
+
 	if (!ev) {
-		cfg80211_put_bss(wdev->wiphy, params->bss);
+		for_each_valid_link(params, link)
+			cfg80211_put_bss(wdev->wiphy,
+					 params->links[link].bss);
 		return;
 	}
 
 	ev->type = EVENT_CONNECT_RESULT;
 	next = ((u8 *)ev) + sizeof(*ev);
-	if (params->bssid) {
-		ev->cr.bssid = next;
-		memcpy((void *)ev->cr.bssid, params->bssid, ETH_ALEN);
+	if (params->ap_mld_addr) {
+		ev->cr.ap_mld_addr = next;
+		memcpy((void *)ev->cr.ap_mld_addr, params->ap_mld_addr,
+		       ETH_ALEN);
 		next += ETH_ALEN;
 	}
 	if (params->req_ie_len) {
@@ -894,9 +1036,28 @@
 	ev->cr.fils.update_erp_next_seq_num = params->fils.update_erp_next_seq_num;
 	if (params->fils.update_erp_next_seq_num)
 		ev->cr.fils.erp_next_seq_num = params->fils.erp_next_seq_num;
-	if (params->bss)
-		cfg80211_hold_bss(bss_from_pub(params->bss));
-	ev->cr.bss = params->bss;
+	ev->cr.valid_links = params->valid_links;
+	for_each_valid_link(params, link) {
+		if (params->links[link].bss)
+			cfg80211_hold_bss(
+				bss_from_pub(params->links[link].bss));
+		ev->cr.links[link].bss = params->links[link].bss;
+
+		if (params->links[link].addr) {
+			ev->cr.links[link].addr = next;
+			memcpy((void *)ev->cr.links[link].addr,
+			       params->links[link].addr,
+			       ETH_ALEN);
+			next += ETH_ALEN;
+		}
+		if (params->links[link].bssid) {
+			ev->cr.links[link].bssid = next;
+			memcpy((void *)ev->cr.links[link].bssid,
+			       params->links[link].bssid,
+			       ETH_ALEN);
+			next += ETH_ALEN;
+		}
+	}
 	ev->cr.status = params->status;
 	ev->cr.timeout_reason = params->timeout_reason;
 
@@ -914,58 +1075,88 @@
 #ifdef CONFIG_CFG80211_WEXT
 	union iwreq_data wrqu;
 #endif
+	unsigned int link;
+	const u8 *connected_addr;
+
 	ASSERT_WDEV_LOCK(wdev);
 
 	if (WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION &&
 		    wdev->iftype != NL80211_IFTYPE_P2P_CLIENT))
 		goto out;
 
-	if (WARN_ON(!wdev->current_bss))
+	if (WARN_ON(!wdev->connected))
 		goto out;
 
-	cfg80211_unhold_bss(wdev->current_bss);
-	cfg80211_put_bss(wdev->wiphy, &wdev->current_bss->pub);
-	wdev->current_bss = NULL;
+	if (info->valid_links) {
+		if (WARN_ON(!info->ap_mld_addr))
+			goto out;
 
-	if (WARN_ON(!info->bss))
-		return;
+		for_each_valid_link(info, link) {
+			if (WARN_ON(!info->links[link].addr))
+				goto out;
+		}
+	}
 
-	cfg80211_hold_bss(bss_from_pub(info->bss));
-	wdev->current_bss = bss_from_pub(info->bss);
+	cfg80211_wdev_release_bsses(wdev);
 
+	for_each_valid_link(info, link) {
+		if (WARN_ON(!info->links[link].bss))
+			goto out;
+	}
+
+	memset(wdev->links, 0, sizeof(wdev->links));
+	wdev->valid_links = info->valid_links;
+	for_each_valid_link(info, link) {
+		cfg80211_hold_bss(bss_from_pub(info->links[link].bss));
+		wdev->links[link].client.current_bss =
+			bss_from_pub(info->links[link].bss);
+	}
+
+	connected_addr = info->valid_links ?
+			 info->ap_mld_addr :
+			 info->links[0].bss->bssid;
+	ether_addr_copy(wdev->u.client.connected_addr, connected_addr);
+	if (info->valid_links) {
+		for_each_valid_link(info, link)
+			memcpy(wdev->links[link].addr, info->links[link].addr,
+			       ETH_ALEN);
+	}
 	wdev->unprot_beacon_reported = 0;
 	nl80211_send_roamed(wiphy_to_rdev(wdev->wiphy),
 			    wdev->netdev, info, GFP_KERNEL);
 
 #ifdef CONFIG_CFG80211_WEXT
-	if (info->req_ie) {
-		memset(&wrqu, 0, sizeof(wrqu));
-		wrqu.data.length = info->req_ie_len;
-		wireless_send_event(wdev->netdev, IWEVASSOCREQIE,
-				    &wrqu, info->req_ie);
-	}
+	if (!info->valid_links) {
+		if (info->req_ie) {
+			memset(&wrqu, 0, sizeof(wrqu));
+			wrqu.data.length = info->req_ie_len;
+			wireless_send_event(wdev->netdev, IWEVASSOCREQIE,
+					    &wrqu, info->req_ie);
+		}
 
-	if (info->resp_ie) {
-		memset(&wrqu, 0, sizeof(wrqu));
-		wrqu.data.length = info->resp_ie_len;
-		wireless_send_event(wdev->netdev, IWEVASSOCRESPIE,
-				    &wrqu, info->resp_ie);
-	}
+		if (info->resp_ie) {
+			memset(&wrqu, 0, sizeof(wrqu));
+			wrqu.data.length = info->resp_ie_len;
+			wireless_send_event(wdev->netdev, IWEVASSOCRESPIE,
+					    &wrqu, info->resp_ie);
+		}
 
-	memset(&wrqu, 0, sizeof(wrqu));
-	wrqu.ap_addr.sa_family = ARPHRD_ETHER;
-	memcpy(wrqu.ap_addr.sa_data, info->bss->bssid, ETH_ALEN);
-	memcpy(wdev->wext.prev_bssid, info->bss->bssid, ETH_ALEN);
-	wdev->wext.prev_bssid_valid = true;
-	wireless_send_event(wdev->netdev, SIOCGIWAP, &wrqu, NULL);
+		memset(&wrqu, 0, sizeof(wrqu));
+		wrqu.ap_addr.sa_family = ARPHRD_ETHER;
+		memcpy(wrqu.ap_addr.sa_data, connected_addr, ETH_ALEN);
+		memcpy(wdev->wext.prev_bssid, connected_addr, ETH_ALEN);
+		wdev->wext.prev_bssid_valid = true;
+		wireless_send_event(wdev->netdev, SIOCGIWAP, &wrqu, NULL);
+	}
 #endif
 
 	return;
 out:
-	cfg80211_put_bss(wdev->wiphy, info->bss);
+	for_each_valid_link(info, link)
+		cfg80211_put_bss(wdev->wiphy, info->links[link].bss);
 }
 
-/* Consumes info->bss object one way or another */
+/* Consumes info->links.bss object(s) one way or another */
 void cfg80211_roamed(struct net_device *dev, struct cfg80211_roam_info *info,
 		     gfp_t gfp)
 {
@@ -974,25 +1165,41 @@
 	struct cfg80211_event *ev;
 	unsigned long flags;
 	u8 *next;
+	unsigned int link;
+	size_t link_info_size = 0;
+	bool bss_not_found = false;
 
-	if (!info->bss) {
-		info->bss = cfg80211_get_bss(wdev->wiphy, info->channel,
-					     info->bssid, wdev->ssid,
-					     wdev->ssid_len,
-					     wdev->conn_bss_type,
-					     IEEE80211_PRIVACY_ANY);
+	for_each_valid_link(info, link) {
+		link_info_size += info->links[link].addr ? ETH_ALEN : 0;
+		link_info_size += info->links[link].bssid ? ETH_ALEN : 0;
+
+		if (info->links[link].bss)
+			continue;
+
+		info->links[link].bss =
+			cfg80211_get_bss(wdev->wiphy,
+					 info->links[link].channel,
+					 info->links[link].bssid,
+					 wdev->u.client.ssid,
+					 wdev->u.client.ssid_len,
+					 wdev->conn_bss_type,
+					 IEEE80211_PRIVACY_ANY);
+
+		if (!info->links[link].bss) {
+			bss_not_found = true;
+			break;
+		}
 	}
 
-	if (WARN_ON(!info->bss))
-		return;
+	if (WARN_ON(bss_not_found))
+		goto out;
 
 	ev = kzalloc(sizeof(*ev) + info->req_ie_len + info->resp_ie_len +
 		     info->fils.kek_len + info->fils.pmk_len +
-		     (info->fils.pmkid ? WLAN_PMKID_LEN : 0), gfp);
-	if (!ev) {
-		cfg80211_put_bss(wdev->wiphy, info->bss);
-		return;
-	}
+		     (info->fils.pmkid ? WLAN_PMKID_LEN : 0) +
+		     (info->ap_mld_addr ? ETH_ALEN : 0) + link_info_size, gfp);
+	if (!ev)
+		goto out;
 
 	ev->type = EVENT_ROAMED;
 	next = ((u8 *)ev) + sizeof(*ev);
@@ -1032,32 +1239,65 @@
 	ev->rm.fils.update_erp_next_seq_num = info->fils.update_erp_next_seq_num;
 	if (info->fils.update_erp_next_seq_num)
 		ev->rm.fils.erp_next_seq_num = info->fils.erp_next_seq_num;
-	ev->rm.bss = info->bss;
+	if (info->ap_mld_addr) {
+		ev->rm.ap_mld_addr = next;
+		memcpy((void *)ev->rm.ap_mld_addr, info->ap_mld_addr,
+		       ETH_ALEN);
+		next += ETH_ALEN;
+	}
+	ev->rm.valid_links = info->valid_links;
+	for_each_valid_link(info, link) {
+		ev->rm.links[link].bss = info->links[link].bss;
+
+		if (info->links[link].addr) {
+			ev->rm.links[link].addr = next;
+			memcpy((void *)ev->rm.links[link].addr,
+			       info->links[link].addr,
+			       ETH_ALEN);
+			next += ETH_ALEN;
+		}
+
+		if (info->links[link].bssid) {
+			ev->rm.links[link].bssid = next;
+			memcpy((void *)ev->rm.links[link].bssid,
+			       info->links[link].bssid,
+			       ETH_ALEN);
+			next += ETH_ALEN;
+		}
+	}
 
 	spin_lock_irqsave(&wdev->event_lock, flags);
 	list_add_tail(&ev->list, &wdev->event_list);
 	spin_unlock_irqrestore(&wdev->event_lock, flags);
 	queue_work(cfg80211_wq, &rdev->event_work);
+
+	return;
+out:
+	for_each_valid_link(info, link)
+		cfg80211_put_bss(wdev->wiphy, info->links[link].bss);
+
 }
 EXPORT_SYMBOL(cfg80211_roamed);
 
-void __cfg80211_port_authorized(struct wireless_dev *wdev, const u8 *bssid)
+void __cfg80211_port_authorized(struct wireless_dev *wdev, const u8 *bssid,
+					const u8 *td_bitmap, u8 td_bitmap_len)
 {
 	ASSERT_WDEV_LOCK(wdev);
 
-	if (WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION))
+	if (WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION &&
+                    wdev->iftype != NL80211_IFTYPE_P2P_CLIENT))
 		return;
 
-	if (WARN_ON(!wdev->current_bss) ||
-	    WARN_ON(!ether_addr_equal(wdev->current_bss->pub.bssid, bssid)))
+	if (WARN_ON(!wdev->connected) ||
+	    WARN_ON(!ether_addr_equal(wdev->u.client.connected_addr, bssid)))
 		return;
 
 	nl80211_send_port_authorized(wiphy_to_rdev(wdev->wiphy), wdev->netdev,
-				     bssid);
+				     bssid, td_bitmap, td_bitmap_len);
 }
 
 void cfg80211_port_authorized(struct net_device *dev, const u8 *bssid,
-			      gfp_t gfp)
+			      const u8 *td_bitmap, u8 td_bitmap_len, gfp_t gfp)
 {
 	struct wireless_dev *wdev = dev->ieee80211_ptr;
 	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
@@ -1067,12 +1307,15 @@
 	if (WARN_ON(!bssid))
 		return;
 
-	ev = kzalloc(sizeof(*ev), gfp);
+	ev = kzalloc(sizeof(*ev) + td_bitmap_len, gfp);
 	if (!ev)
 		return;
 
 	ev->type = EVENT_PORT_AUTHORIZED;
 	memcpy(ev->pa.bssid, bssid, ETH_ALEN);
+	ev->pa.td_bitmap = ((u8 *)ev) + sizeof(*ev);
+	ev->pa.td_bitmap_len = td_bitmap_len;
+	memcpy((void *)ev->pa.td_bitmap, td_bitmap, td_bitmap_len);
 
 	/*
 	 * Use the wdev event list so that if there are pending
@@ -1101,13 +1344,9 @@
 		    wdev->iftype != NL80211_IFTYPE_P2P_CLIENT))
 		return;
 
-	if (wdev->current_bss) {
-		cfg80211_unhold_bss(wdev->current_bss);
-		cfg80211_put_bss(wdev->wiphy, &wdev->current_bss->pub);
-	}
-
-	wdev->current_bss = NULL;
-	wdev->ssid_len = 0;
+	cfg80211_wdev_release_bsses(wdev);
+	wdev->connected = false;
+	wdev->u.client.ssid_len = 0;
 	wdev->conn_owner_nlportid = 0;
 	kfree_sensitive(wdev->connect_keys);
 	wdev->connect_keys = NULL;
@@ -1135,7 +1374,7 @@
 			    NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT))
 			max_key_idx = 7;
 		for (i = 0; i <= max_key_idx; i++)
-			rdev_del_key(rdev, dev, i, false, NULL);
+			rdev_del_key(rdev, dev, -1, i, false, NULL);
 	}
 
 	rdev_set_qos_map(rdev, dev, NULL);
@@ -1196,19 +1435,20 @@
 	 * already connected, so reject a new SSID unless it's the
 	 * same (which is the case for re-association.)
 	 */
-	if (wdev->ssid_len &&
-	    (wdev->ssid_len != connect->ssid_len ||
-	     memcmp(wdev->ssid, connect->ssid, wdev->ssid_len)))
+	if (wdev->u.client.ssid_len &&
+	    (wdev->u.client.ssid_len != connect->ssid_len ||
+	     memcmp(wdev->u.client.ssid, connect->ssid, wdev->u.client.ssid_len)))
 		return -EALREADY;
 
 	/*
 	 * If connected, reject (re-)association unless prev_bssid
 	 * matches the current BSSID.
 	 */
-	if (wdev->current_bss) {
+	if (wdev->connected) {
 		if (!prev_bssid)
 			return -EALREADY;
-		if (!ether_addr_equal(prev_bssid, wdev->current_bss->pub.bssid))
+		if (!ether_addr_equal(prev_bssid,
+				      wdev->u.client.connected_addr))
 			return -ENOTCONN;
 	}
 
@@ -1266,8 +1506,8 @@
 	}
 
 	wdev->connect_keys = connkeys;
-	memcpy(wdev->ssid, connect->ssid, connect->ssid_len);
-	wdev->ssid_len = connect->ssid_len;
+	memcpy(wdev->u.client.ssid, connect->ssid, connect->ssid_len);
+	wdev->u.client.ssid_len = connect->ssid_len;
 
 	wdev->conn_bss_type = connect->pbss ? IEEE80211_BSS_TYPE_PBSS :
 					      IEEE80211_BSS_TYPE_ESS;
@@ -1283,8 +1523,8 @@
 		 * This could be reassoc getting refused, don't clear
 		 * ssid_len in that case.
 		 */
-		if (!wdev->current_bss)
-			wdev->ssid_len = 0;
+		if (!wdev->connected)
+			wdev->u.client.ssid_len = 0;
 		return err;
 	}
 
@@ -1308,7 +1548,7 @@
 		err = cfg80211_sme_disconnect(wdev, reason);
 	else if (!rdev->ops->disconnect)
 		cfg80211_mlme_down(rdev, dev);
-	else if (wdev->ssid_len)
+	else if (wdev->u.client.ssid_len)
 		err = rdev_disconnect(rdev, dev, reason);
 
 	/*
@@ -1316,8 +1556,8 @@
 	 * in which case cfg80211_disconnected() will take care of
 	 * this later.
 	 */
-	if (!wdev->current_bss)
-		wdev->ssid_len = 0;
+	if (!wdev->connected)
+		wdev->u.client.ssid_len = 0;
 
 	return err;
 }
@@ -1341,7 +1581,7 @@
 			break;
 		case NL80211_IFTYPE_AP:
 		case NL80211_IFTYPE_P2P_GO:
-			__cfg80211_stop_ap(rdev, wdev->netdev, false);
+			__cfg80211_stop_ap(rdev, wdev->netdev, -1, false);
 			break;
 		case NL80211_IFTYPE_MESH_POINT:
 			__cfg80211_leave_mesh(rdev, wdev->netdev);
@@ -1353,7 +1593,7 @@
 			 * ops->disconnect not implemented.  Otherwise we can
 			 * use cfg80211_disconnect.
 			 */
-			if (rdev->ops->disconnect || wdev->current_bss)
+			if (rdev->ops->disconnect || wdev->connected)
 				cfg80211_disconnect(rdev, wdev->netdev,
 						    WLAN_REASON_DEAUTH_LEAVING,
 						    true);
diff --git a/net/wireless/trace.h b/net/wireless/trace.h
index 19b78d4..c6e6314 100644
--- a/net/wireless/trace.h
+++ b/net/wireless/trace.h
@@ -19,8 +19,6 @@
 	else							     \
 		eth_zero_addr(__entry->entry_mac);		     \
 	} while (0)
-#define MAC_PR_FMT "%pM"
-#define MAC_PR_ARG(entry_mac) (__entry->entry_mac)
 
 #define MAXNAME		32
 #define WIPHY_ENTRY	__array(char, wiphy_name, 32)
@@ -167,6 +165,19 @@
 			__entry->center_freq1, __entry->freq1_offset,	\
 			__entry->center_freq2
 
+#define FILS_AAD_ASSIGN(fa)						\
+	do {								\
+		if (fa) {						\
+			ether_addr_copy(__entry->macaddr, fa->macaddr);	\
+			__entry->kek_len = fa->kek_len;			\
+		} else {						\
+			eth_zero_addr(__entry->macaddr);		\
+			__entry->kek_len = 0;				\
+		}							\
+	} while (0)
+#define FILS_AAD_PR_FMT							\
+	"macaddr: %pM, kek_len: %d"
+
 #define SINFO_ENTRY __field(int, generation)	    \
 		    __field(u32, connected_time)    \
 		    __field(u32, inactive_time)	    \
@@ -421,13 +432,14 @@
 );
 
 DECLARE_EVENT_CLASS(key_handle,
-	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index,
-		 bool pairwise, const u8 *mac_addr),
-	TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr),
+	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
+		 u8 key_index, bool pairwise, const u8 *mac_addr),
+	TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr),
 	TP_STRUCT__entry(
 		WIPHY_ENTRY
 		NETDEV_ENTRY
 		MAC_ENTRY(mac_addr)
+		__field(int, link_id)
 		__field(u8, key_index)
 		__field(bool, pairwise)
 	),
@@ -435,34 +447,38 @@
 		WIPHY_ASSIGN;
 		NETDEV_ASSIGN;
 		MAC_ASSIGN(mac_addr, mac_addr);
+		__entry->link_id = link_id;
 		__entry->key_index = key_index;
 		__entry->pairwise = pairwise;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key_index: %u, pairwise: %s, mac addr: " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index,
-		  BOOL_TO_STR(__entry->pairwise), MAC_PR_ARG(mac_addr))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
+		  "key_index: %u, pairwise: %s, mac addr: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
+		  __entry->key_index, BOOL_TO_STR(__entry->pairwise),
+		  __entry->mac_addr)
 );
 
 DEFINE_EVENT(key_handle, rdev_get_key,
-	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index,
-		 bool pairwise, const u8 *mac_addr),
-	TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr)
+	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
+		 u8 key_index, bool pairwise, const u8 *mac_addr),
+	TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr)
 );
 
 DEFINE_EVENT(key_handle, rdev_del_key,
-	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index,
-		 bool pairwise, const u8 *mac_addr),
-	TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr)
+	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
+		 u8 key_index, bool pairwise, const u8 *mac_addr),
+	TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr)
 );
 
 TRACE_EVENT(rdev_add_key,
-	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index,
-		 bool pairwise, const u8 *mac_addr, u8 mode),
-	TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr, mode),
+	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
+		 u8 key_index, bool pairwise, const u8 *mac_addr, u8 mode),
+	TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr, mode),
 	TP_STRUCT__entry(
 		WIPHY_ENTRY
 		NETDEV_ENTRY
 		MAC_ENTRY(mac_addr)
+		__field(int, link_id)
 		__field(u8, key_index)
 		__field(bool, pairwise)
 		__field(u8, mode)
@@ -471,24 +487,27 @@
 		WIPHY_ASSIGN;
 		NETDEV_ASSIGN;
 		MAC_ASSIGN(mac_addr, mac_addr);
+		__entry->link_id = link_id;
 		__entry->key_index = key_index;
 		__entry->pairwise = pairwise;
 		__entry->mode = mode;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key_index: %u, "
-		  "mode: %u, pairwise: %s, mac addr: " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index,
-		  __entry->mode, BOOL_TO_STR(__entry->pairwise),
-		  MAC_PR_ARG(mac_addr))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
+		  "key_index: %u, mode: %u, pairwise: %s, "
+		  "mac addr: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
+		  __entry->key_index, __entry->mode,
+		  BOOL_TO_STR(__entry->pairwise), __entry->mac_addr)
 );
 
 TRACE_EVENT(rdev_set_default_key,
-	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index,
-		 bool unicast, bool multicast),
-	TP_ARGS(wiphy, netdev, key_index, unicast, multicast),
+	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
+		 u8 key_index, bool unicast, bool multicast),
+	TP_ARGS(wiphy, netdev, link_id, key_index, unicast, multicast),
 	TP_STRUCT__entry(
 		WIPHY_ENTRY
 		NETDEV_ENTRY
+		__field(int, link_id)
 		__field(u8, key_index)
 		__field(bool, unicast)
 		__field(bool, multicast)
@@ -496,48 +515,58 @@
 	TP_fast_assign(
 		WIPHY_ASSIGN;
 		NETDEV_ASSIGN;
+		__entry->link_id = link_id;
 		__entry->key_index = key_index;
 		__entry->unicast = unicast;
 		__entry->multicast = multicast;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key index: %u, unicast: %s, multicast: %s",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index,
-		  BOOL_TO_STR(__entry->unicast),
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
+		  "key index: %u, unicast: %s, multicast: %s",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
+		  __entry->key_index, BOOL_TO_STR(__entry->unicast),
 		  BOOL_TO_STR(__entry->multicast))
 );
 
 TRACE_EVENT(rdev_set_default_mgmt_key,
-	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index),
-	TP_ARGS(wiphy, netdev, key_index),
+	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
+		 u8 key_index),
+	TP_ARGS(wiphy, netdev, link_id, key_index),
 	TP_STRUCT__entry(
 		WIPHY_ENTRY
 		NETDEV_ENTRY
+		__field(int, link_id)
 		__field(u8, key_index)
 	),
 	TP_fast_assign(
 		WIPHY_ASSIGN;
 		NETDEV_ASSIGN;
+		__entry->link_id = link_id;
 		__entry->key_index = key_index;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key index: %u",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index)
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
+		  "key index: %u", WIPHY_PR_ARG, NETDEV_PR_ARG,
+		  __entry->link_id, __entry->key_index)
 );
 
 TRACE_EVENT(rdev_set_default_beacon_key,
-	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index),
-	TP_ARGS(wiphy, netdev, key_index),
+	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id,
+		 u8 key_index),
+	TP_ARGS(wiphy, netdev, link_id, key_index),
 	TP_STRUCT__entry(
 		WIPHY_ENTRY
 		NETDEV_ENTRY
+		__field(int, link_id)
 		__field(u8, key_index)
 	),
 	TP_fast_assign(
 		WIPHY_ASSIGN;
 		NETDEV_ASSIGN;
+		__entry->link_id = link_id;
 		__entry->key_index = key_index;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key index: %u",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index)
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
+		  "key index: %u", WIPHY_PR_ARG, NETDEV_PR_ARG,
+		  __entry->link_id, __entry->key_index)
 );
 
 TRACE_EVENT(rdev_start_ap,
@@ -556,6 +585,7 @@
 		__field(bool, privacy)
 		__field(enum nl80211_auth_type, auth_type)
 		__field(int, inactivity_timeout)
+		__field(unsigned int, link_id)
 	),
 	TP_fast_assign(
 		WIPHY_ASSIGN;
@@ -570,16 +600,17 @@
 		__entry->inactivity_timeout = settings->inactivity_timeout;
 		memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1);
 		memcpy(__entry->ssid, settings->ssid, settings->ssid_len);
+		__entry->link_id = settings->beacon.link_id;
 	),
 	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", AP settings - ssid: %s, "
 		  CHAN_DEF_PR_FMT ", beacon interval: %d, dtim period: %d, "
 		  "hidden ssid: %d, wpa versions: %u, privacy: %s, "
-		  "auth type: %d, inactivity timeout: %d",
+		  "auth type: %d, inactivity timeout: %d, link_id: %d",
 		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ssid, CHAN_DEF_PR_ARG,
 		  __entry->beacon_interval, __entry->dtim_period,
 		  __entry->hidden_ssid, __entry->wpa_ver,
 		  BOOL_TO_STR(__entry->privacy), __entry->auth_type,
-		  __entry->inactivity_timeout)
+		  __entry->inactivity_timeout, __entry->link_id)
 );
 
 TRACE_EVENT(rdev_change_beacon,
@@ -589,6 +620,7 @@
 	TP_STRUCT__entry(
 		WIPHY_ENTRY
 		NETDEV_ENTRY
+		__field(int, link_id)
 		__dynamic_array(u8, head, info ? info->head_len : 0)
 		__dynamic_array(u8, tail, info ? info->tail_len : 0)
 		__dynamic_array(u8, beacon_ies, info ? info->beacon_ies_len : 0)
@@ -602,6 +634,7 @@
 		WIPHY_ASSIGN;
 		NETDEV_ASSIGN;
 		if (info) {
+			__entry->link_id = info->link_id;
 			if (info->head)
 				memcpy(__get_dynamic_array(head), info->head,
 				       info->head_len);
@@ -622,9 +655,30 @@
 			if (info->probe_resp)
 				memcpy(__get_dynamic_array(probe_resp),
 				       info->probe_resp, info->probe_resp_len);
+		} else {
+			__entry->link_id = -1;
 		}
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG)
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id:%d",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id)
+);
+
+TRACE_EVENT(rdev_stop_ap,
+	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
+		 unsigned int link_id),
+	TP_ARGS(wiphy, netdev, link_id),
+	TP_STRUCT__entry(
+		WIPHY_ENTRY
+		NETDEV_ENTRY
+		__field(unsigned int, link_id)
+	),
+	TP_fast_assign(
+		WIPHY_ASSIGN;
+		NETDEV_ASSIGN;
+		__entry->link_id = link_id;
+	),
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id)
 );
 
 DECLARE_EVENT_CLASS(wiphy_netdev_evt,
@@ -641,11 +695,6 @@
 	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG)
 );
 
-DEFINE_EVENT(wiphy_netdev_evt, rdev_stop_ap,
-	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
-	TP_ARGS(wiphy, netdev)
-);
-
 DEFINE_EVENT(wiphy_netdev_evt, rdev_set_rekey_data,
 	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev),
 	TP_ARGS(wiphy, netdev)
@@ -705,7 +754,7 @@
 		__array(u8, vht_capa, (int)sizeof(struct ieee80211_vht_cap))
 		__array(char, vlan, IFNAMSIZ)
 		__dynamic_array(u8, supported_rates,
-				params->supported_rates_len)
+				params->link_sta_params.supported_rates_len)
 		__dynamic_array(u8, ext_capab, params->ext_capab_len)
 		__dynamic_array(u8, supported_channels,
 				params->supported_channels_len)
@@ -725,20 +774,23 @@
 		__entry->plink_state = params->plink_state;
 		__entry->uapsd_queues = params->uapsd_queues;
 		memset(__entry->ht_capa, 0, sizeof(struct ieee80211_ht_cap));
-		if (params->ht_capa)
-			memcpy(__entry->ht_capa, params->ht_capa,
+		if (params->link_sta_params.ht_capa)
+			memcpy(__entry->ht_capa,
+			       params->link_sta_params.ht_capa,
 			       sizeof(struct ieee80211_ht_cap));
 		memset(__entry->vht_capa, 0, sizeof(struct ieee80211_vht_cap));
-		if (params->vht_capa)
-			memcpy(__entry->vht_capa, params->vht_capa,
+		if (params->link_sta_params.vht_capa)
+			memcpy(__entry->vht_capa,
+			       params->link_sta_params.vht_capa,
 			       sizeof(struct ieee80211_vht_cap));
 		memset(__entry->vlan, 0, sizeof(__entry->vlan));
 		if (params->vlan)
 			memcpy(__entry->vlan, params->vlan->name, IFNAMSIZ);
-		if (params->supported_rates && params->supported_rates_len)
+		if (params->link_sta_params.supported_rates &&
+		    params->link_sta_params.supported_rates_len)
 			memcpy(__get_dynamic_array(supported_rates),
-			       params->supported_rates,
-			       params->supported_rates_len);
+			       params->link_sta_params.supported_rates,
+			       params->link_sta_params.supported_rates_len);
 		if (params->ext_capab && params->ext_capab_len)
 			memcpy(__get_dynamic_array(ext_capab),
 			       params->ext_capab,
@@ -755,14 +807,15 @@
 			       params->supported_oper_classes_len);
 		__entry->max_sp = params->max_sp;
 		__entry->capability = params->capability;
-		__entry->opmode_notif = params->opmode_notif;
-		__entry->opmode_notif_used = params->opmode_notif_used;
+		__entry->opmode_notif = params->link_sta_params.opmode_notif;
+		__entry->opmode_notif_used =
+			params->link_sta_params.opmode_notif_used;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
 		  ", station flags mask: %u, station flags set: %u, "
 		  "station modify mask: %u, listen interval: %d, aid: %u, "
 		  "plink action: %u, plink state: %u, uapsd queues: %u, vlan:%s",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac),
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac,
 		  __entry->sta_flags_mask, __entry->sta_flags_set,
 		  __entry->sta_modify_mask, __entry->listen_interval,
 		  __entry->aid, __entry->plink_action, __entry->plink_state,
@@ -794,8 +847,8 @@
 		NETDEV_ASSIGN;
 		MAC_ASSIGN(sta_mac, mac);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mac: " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mac: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac)
 );
 
 DECLARE_EVENT_CLASS(station_del,
@@ -816,9 +869,9 @@
 		__entry->subtype = params->subtype;
 		__entry->reason_code = params->reason_code;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
 		  ", subtype: %u, reason_code: %u",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac),
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac,
 		  __entry->subtype, __entry->reason_code)
 );
 
@@ -854,8 +907,8 @@
 		MAC_ASSIGN(sta_mac, mac);
 		__entry->idx = _idx;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT ", idx: %d",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac),
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM, idx: %d",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac,
 		  __entry->idx)
 );
 
@@ -892,9 +945,9 @@
 		MAC_ASSIGN(dst, dst);
 		MAC_ASSIGN(next_hop, next_hop);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: " MAC_PR_FMT ", next hop: " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dst),
-		  MAC_PR_ARG(next_hop))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: %pM, next hop: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dst,
+		  __entry->next_hop)
 );
 
 DEFINE_EVENT(mpath_evt, rdev_add_mpath,
@@ -933,10 +986,9 @@
 		MAC_ASSIGN(next_hop, next_hop);
 		__entry->idx = _idx;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: "
-		  MAC_PR_FMT ", next hop: " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, MAC_PR_ARG(dst),
-		  MAC_PR_ARG(next_hop))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: %pM, next hop: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, __entry->dst,
+		  __entry->next_hop)
 );
 
 TRACE_EVENT(rdev_get_mpp,
@@ -955,9 +1007,9 @@
 		MAC_ASSIGN(dst, dst);
 		MAC_ASSIGN(mpp, mpp);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: " MAC_PR_FMT
-		  ", mpp: " MAC_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG,
-		  MAC_PR_ARG(dst), MAC_PR_ARG(mpp))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: %pM"
+		  ", mpp: %pM", WIPHY_PR_ARG, NETDEV_PR_ARG,
+		  __entry->dst, __entry->mpp)
 );
 
 TRACE_EVENT(rdev_dump_mpp,
@@ -978,10 +1030,9 @@
 		MAC_ASSIGN(mpp, mpp);
 		__entry->idx = _idx;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: "
-		  MAC_PR_FMT ", mpp: " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, MAC_PR_ARG(dst),
-		  MAC_PR_ARG(mpp))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: %pM, mpp: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, __entry->dst,
+		  __entry->mpp)
 );
 
 TRACE_EVENT(rdev_return_int_mpath_info,
@@ -1188,16 +1239,15 @@
 			eth_zero_addr(__entry->bssid);
 		__entry->auth_type = req->auth_type;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", auth type: %d, bssid: " MAC_PR_FMT,
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", auth type: %d, bssid: %pM",
 		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->auth_type,
-		  MAC_PR_ARG(bssid))
+		  __entry->bssid)
 );
 
 TRACE_EVENT(rdev_assoc,
 	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
-		 struct cfg80211_assoc_request *req,
-		 const struct cfg80211_bss_ies *bss_ies),
-	TP_ARGS(wiphy, netdev, req, bss_ies),
+		 struct cfg80211_assoc_request *req),
+	TP_ARGS(wiphy, netdev, req),
 	TP_STRUCT__entry(
 		WIPHY_ENTRY
 		NETDEV_ENTRY
@@ -1205,9 +1255,6 @@
 		MAC_ENTRY(prev_bssid)
 		__field(bool, use_mfp)
 		__field(u32, flags)
-		__dynamic_array(u8, bss_elements, bss_ies->len)
-		__field(bool, bss_elements_bcon)
-		__field(u64, bss_elements_tsf)
 		__dynamic_array(u8, elements, req->ie_len)
 		__array(u8, ht_capa, sizeof(struct ieee80211_ht_cap))
 		__array(u8, ht_capa_mask, sizeof(struct ieee80211_ht_cap))
@@ -1227,11 +1274,6 @@
 		MAC_ASSIGN(prev_bssid, req->prev_bssid);
 		__entry->use_mfp = req->use_mfp;
 		__entry->flags = req->flags;
-		if (bss_ies->len)
-			memcpy(__get_dynamic_array(bss_elements),
-			       bss_ies->data, bss_ies->len);
-		__entry->bss_elements_bcon = bss_ies->from_beacon;
-		__entry->bss_elements_tsf = bss_ies->tsf;
 		if (req->ie)
 			memcpy(__get_dynamic_array(elements),
 			       req->ie, req->ie_len);
@@ -1248,10 +1290,10 @@
 			memcpy(__get_dynamic_array(fils_nonces),
 			       req->fils_nonces, 2 * FILS_NONCE_LEN);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT
-		  ", previous bssid: " MAC_PR_FMT ", use mfp: %s, flags: %u",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid),
-		  MAC_PR_ARG(prev_bssid), BOOL_TO_STR(__entry->use_mfp),
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
+		  ", previous bssid: %pM, use mfp: %s, flags: %u",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
+		  __entry->prev_bssid, BOOL_TO_STR(__entry->use_mfp),
 		  __entry->flags)
 );
 
@@ -1271,8 +1313,8 @@
 		MAC_ASSIGN(bssid, req->bssid);
 		__entry->reason_code = req->reason_code;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", reason: %u",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid),
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM, reason: %u",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
 		  __entry->reason_code)
 );
 
@@ -1290,16 +1332,13 @@
 	TP_fast_assign(
 		WIPHY_ASSIGN;
 		NETDEV_ASSIGN;
-		if (req->bss)
-			MAC_ASSIGN(bssid, req->bss->bssid);
-		else
-			eth_zero_addr(__entry->bssid);
+		MAC_ASSIGN(bssid, req->ap_addr);
 		__entry->reason_code = req->reason_code;
 		__entry->local_state_change = req->local_state_change;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
 		  ", reason: %u, local state change: %s",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid),
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
 		  __entry->reason_code,
 		  BOOL_TO_STR(__entry->local_state_change))
 );
@@ -1370,12 +1409,12 @@
 		__entry->flags = sme->flags;
 		MAC_ASSIGN(prev_bssid, sme->prev_bssid);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
 		  ", ssid: %s, auth type: %d, privacy: %s, wpa versions: %u, "
-		  "flags: %u, previous bssid: " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid,
+		  "flags: %u, previous bssid: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, __entry->ssid,
 		  __entry->auth_type, BOOL_TO_STR(__entry->privacy),
-		  __entry->wpa_versions, __entry->flags, MAC_PR_ARG(prev_bssid))
+		  __entry->wpa_versions, __entry->flags, __entry->prev_bssid)
 );
 
 TRACE_EVENT(rdev_update_connect_params,
@@ -1499,8 +1538,8 @@
 		memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1);
 		memcpy(__entry->ssid, params->ssid, params->ssid_len);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", ssid: %s",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid)
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM, ssid: %s",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, __entry->ssid)
 );
 
 TRACE_EVENT(rdev_join_ocb,
@@ -1606,20 +1645,24 @@
 
 TRACE_EVENT(rdev_set_bitrate_mask,
 	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
+		 unsigned int link_id,
 		 const u8 *peer, const struct cfg80211_bitrate_mask *mask),
-	TP_ARGS(wiphy, netdev, peer, mask),
+	TP_ARGS(wiphy, netdev, link_id, peer, mask),
 	TP_STRUCT__entry(
 		WIPHY_ENTRY
 		NETDEV_ENTRY
+		__field(unsigned int, link_id)
 		MAC_ENTRY(peer)
 	),
 	TP_fast_assign(
 		WIPHY_ASSIGN;
 		NETDEV_ASSIGN;
+		__entry->link_id = link_id;
 		MAC_ASSIGN(peer, peer);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, peer: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
+		  __entry->peer)
 );
 
 TRACE_EVENT(rdev_update_mgmt_frame_registrations,
@@ -1763,10 +1806,10 @@
 		__entry->initiator = initiator;
 		memcpy(__get_dynamic_array(buf), buf, len);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", action_code: %u, "
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, action_code: %u, "
 		  "dialog_token: %u, status_code: %u, peer_capability: %u "
 		  "initiator: %s buf: %#.2x ",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer),
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
 		  __entry->action_code, __entry->dialog_token,
 		  __entry->status_code, __entry->peer_capability,
 		  BOOL_TO_STR(__entry->initiator),
@@ -1846,8 +1889,8 @@
 		MAC_ASSIGN(peer, peer);
 		__entry->oper = oper;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", oper: %d",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper)
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, oper: %d",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->oper)
 );
 
 DECLARE_EVENT_CLASS(rdev_pmksa,
@@ -1864,8 +1907,8 @@
 		NETDEV_ASSIGN;
 		MAC_ASSIGN(bssid, pmksa->bssid);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid)
 );
 
 TRACE_EVENT(rdev_probe_client,
@@ -1882,8 +1925,8 @@
 		NETDEV_ASSIGN;
 		MAC_ASSIGN(peer, peer);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer)
 );
 
 DEFINE_EVENT(rdev_pmksa, rdev_set_pmksa,
@@ -1986,14 +2029,15 @@
 TRACE_EVENT(rdev_tx_control_port,
 	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
 		 const u8 *buf, size_t len, const u8 *dest, __be16 proto,
-		 bool unencrypted),
-	TP_ARGS(wiphy, netdev, buf, len, dest, proto, unencrypted),
+		 bool unencrypted, int link_id),
+	TP_ARGS(wiphy, netdev, buf, len, dest, proto, unencrypted, link_id),
 	TP_STRUCT__entry(
 		WIPHY_ENTRY
 		NETDEV_ENTRY
 		MAC_ENTRY(dest)
 		__field(__be16, proto)
 		__field(bool, unencrypted)
+		__field(int, link_id)
 	),
 	TP_fast_assign(
 		WIPHY_ASSIGN;
@@ -2001,12 +2045,14 @@
 		MAC_ASSIGN(dest, dest);
 		__entry->proto = proto;
 		__entry->unencrypted = unencrypted;
+		__entry->link_id = link_id;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ","
-		  " proto: 0x%x, unencrypted: %s",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dest),
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM,"
+		  " proto: 0x%x, unencrypted: %s, link: %d",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dest,
 		  be16_to_cpu(__entry->proto),
-		  BOOL_TO_STR(__entry->unencrypted))
+		  BOOL_TO_STR(__entry->unencrypted),
+		  __entry->link_id)
 );
 
 TRACE_EVENT(rdev_set_noack_map,
@@ -2027,9 +2073,28 @@
 		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->noack_map)
 );
 
-DEFINE_EVENT(wiphy_wdev_evt, rdev_get_channel,
-	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev),
-	TP_ARGS(wiphy, wdev)
+DECLARE_EVENT_CLASS(wiphy_wdev_link_evt,
+	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
+		 unsigned int link_id),
+	TP_ARGS(wiphy, wdev, link_id),
+	TP_STRUCT__entry(
+		WIPHY_ENTRY
+		WDEV_ENTRY
+		__field(unsigned int, link_id)
+	),
+	TP_fast_assign(
+		WIPHY_ASSIGN;
+		WDEV_ASSIGN;
+		__entry->link_id = link_id;
+	),
+	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", link_id: %u",
+		  WIPHY_PR_ARG, WDEV_PR_ARG, __entry->link_id)
+);
+
+DEFINE_EVENT(wiphy_wdev_link_evt, rdev_get_channel,
+	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
+		 unsigned int link_id),
+	TP_ARGS(wiphy, wdev, link_id)
 );
 
 TRACE_EVENT(rdev_return_chandef,
@@ -2283,20 +2348,24 @@
 
 TRACE_EVENT(rdev_set_ap_chanwidth,
 	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
+		 unsigned int link_id,
 		 struct cfg80211_chan_def *chandef),
-	TP_ARGS(wiphy, netdev, chandef),
+	TP_ARGS(wiphy, netdev, link_id, chandef),
 	TP_STRUCT__entry(
 		WIPHY_ENTRY
 		NETDEV_ENTRY
 		CHAN_DEF_ENTRY
+		__field(unsigned int, link_id)
 	),
 	TP_fast_assign(
 		WIPHY_ASSIGN;
 		NETDEV_ASSIGN;
 		CHAN_DEF_ASSIGN(chandef);
+		__entry->link_id = link_id;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG)
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG,
+		  __entry->link_id)
 );
 
 TRACE_EVENT(rdev_add_tx_ts,
@@ -2319,8 +2388,8 @@
 		__entry->user_prio = user_prio;
 		__entry->admitted_time = admitted_time;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d, UP %d, time %d",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer),
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, TSID %d, UP %d, time %d",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
 		  __entry->tsid, __entry->user_prio, __entry->admitted_time)
 );
 
@@ -2340,8 +2409,8 @@
 		MAC_ASSIGN(peer, peer);
 		__entry->tsid = tsid;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tsid)
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, TSID %d",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->tsid)
 );
 
 TRACE_EVENT(rdev_tdls_channel_switch,
@@ -2362,9 +2431,9 @@
 		MAC_ASSIGN(addr, addr);
 		CHAN_DEF_ASSIGN(chandef);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM"
 		  " oper class %d, " CHAN_DEF_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr),
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->addr,
 		  __entry->oper_class, CHAN_DEF_PR_ARG)
 );
 
@@ -2382,8 +2451,8 @@
 		NETDEV_ASSIGN;
 		MAC_ASSIGN(addr, addr);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->addr)
 );
 
 TRACE_EVENT(rdev_set_pmk,
@@ -2415,9 +2484,9 @@
 		       pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0);
 	),
 
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM"
 		  "pmk_len=%u, pmk: %s pmk_r0_name: %s", WIPHY_PR_ARG,
-		  NETDEV_PR_ARG, MAC_PR_ARG(aa), __entry->pmk_len,
+		  NETDEV_PR_ARG, __entry->aa, __entry->pmk_len,
 		  __print_array(__get_dynamic_array(pmk),
 				__get_dynamic_array_len(pmk), 1),
 		  __entry->pmk_r0_name_len ?
@@ -2442,8 +2511,8 @@
 		MAC_ASSIGN(aa, aa);
 	),
 
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(aa))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->aa)
 );
 
 TRACE_EVENT(rdev_external_auth,
@@ -2455,6 +2524,7 @@
 			     MAC_ENTRY(bssid)
 			     __array(u8, ssid, IEEE80211_MAX_SSID_LEN + 1)
 			     __field(u16, status)
+			     MAC_ENTRY(mld_addr)
 	    ),
 	    TP_fast_assign(WIPHY_ASSIGN;
 			   NETDEV_ASSIGN;
@@ -2463,10 +2533,12 @@
 			   memcpy(__entry->ssid, params->ssid.ssid,
 				  params->ssid.ssid_len);
 			   __entry->status = params->status;
+			   MAC_ASSIGN(mld_addr, params->mld_addr);
 	    ),
-	    TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT
-		      ", ssid: %s, status: %u", WIPHY_PR_ARG, NETDEV_PR_ARG,
-		      __entry->bssid, __entry->ssid, __entry->status)
+	    TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
+		      ", ssid: %s, status: %u, mld_addr: %pM",
+		      WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
+		      __entry->ssid, __entry->status, __entry->mld_addr)
 );
 
 TRACE_EVENT(rdev_start_radar_detection,
@@ -2614,6 +2686,173 @@
 	TP_ARGS(wiphy, wdev, cookie)
 );
 
+TRACE_EVENT(rdev_set_fils_aad,
+	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
+		 struct cfg80211_fils_aad *fils_aad),
+	TP_ARGS(wiphy, netdev, fils_aad),
+	TP_STRUCT__entry(WIPHY_ENTRY
+		NETDEV_ENTRY
+		__array(u8, macaddr, ETH_ALEN)
+		__field(u8, kek_len)
+	),
+	TP_fast_assign(WIPHY_ASSIGN;
+		NETDEV_ASSIGN;
+		FILS_AAD_ASSIGN(fils_aad);
+	),
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " FILS_AAD_PR_FMT,
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->macaddr,
+		  __entry->kek_len)
+);
+
+TRACE_EVENT(rdev_update_owe_info,
+	    TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
+		     struct cfg80211_update_owe_info *owe_info),
+	    TP_ARGS(wiphy, netdev, owe_info),
+	    TP_STRUCT__entry(WIPHY_ENTRY
+			     NETDEV_ENTRY
+			     MAC_ENTRY(peer)
+			     __field(u16, status)
+			     __dynamic_array(u8, ie, owe_info->ie_len)),
+	    TP_fast_assign(WIPHY_ASSIGN;
+			   NETDEV_ASSIGN;
+			   MAC_ASSIGN(peer, owe_info->peer);
+			   __entry->status = owe_info->status;
+			   memcpy(__get_dynamic_array(ie),
+				  owe_info->ie, owe_info->ie_len);),
+	    TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM"
+		  " status %d", WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
+		  __entry->status)
+);
+
+TRACE_EVENT(rdev_probe_mesh_link,
+	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
+		 const u8 *dest, const u8 *buf, size_t len),
+	TP_ARGS(wiphy, netdev, dest, buf, len),
+	TP_STRUCT__entry(
+		WIPHY_ENTRY
+		NETDEV_ENTRY
+		MAC_ENTRY(dest)
+	),
+	TP_fast_assign(
+		WIPHY_ASSIGN;
+		NETDEV_ASSIGN;
+		MAC_ASSIGN(dest, dest);
+	),
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dest)
+);
+
+TRACE_EVENT(rdev_set_tid_config,
+	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
+		 struct cfg80211_tid_config *tid_conf),
+	TP_ARGS(wiphy, netdev, tid_conf),
+	TP_STRUCT__entry(
+		WIPHY_ENTRY
+		NETDEV_ENTRY
+		MAC_ENTRY(peer)
+	),
+	TP_fast_assign(
+		WIPHY_ASSIGN;
+		NETDEV_ASSIGN;
+		MAC_ASSIGN(peer, tid_conf->peer);
+	),
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer)
+);
+
+TRACE_EVENT(rdev_reset_tid_config,
+	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
+		 const u8 *peer, u8 tids),
+	TP_ARGS(wiphy, netdev, peer, tids),
+	TP_STRUCT__entry(
+		WIPHY_ENTRY
+		NETDEV_ENTRY
+		MAC_ENTRY(peer)
+		__field(u8, tids)
+	),
+	TP_fast_assign(
+		WIPHY_ASSIGN;
+		NETDEV_ASSIGN;
+		MAC_ASSIGN(peer, peer);
+		__entry->tids = tids;
+	),
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM, tids: 0x%x",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->tids)
+);
+
+TRACE_EVENT(rdev_set_sar_specs,
+	TP_PROTO(struct wiphy *wiphy, struct cfg80211_sar_specs *sar),
+	TP_ARGS(wiphy, sar),
+	TP_STRUCT__entry(
+		WIPHY_ENTRY
+		__field(u16, type)
+		__field(u16, num)
+	),
+	TP_fast_assign(
+		WIPHY_ASSIGN;
+		__entry->type = sar->type;
+		__entry->num = sar->num_sub_specs;
+
+	),
+	TP_printk(WIPHY_PR_FMT ", Set type:%d, num_specs:%d",
+		  WIPHY_PR_ARG, __entry->type, __entry->num)
+);
+
+TRACE_EVENT(rdev_color_change,
+	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
+		 struct cfg80211_color_change_settings *params),
+	TP_ARGS(wiphy, netdev, params),
+	TP_STRUCT__entry(
+		WIPHY_ENTRY
+		NETDEV_ENTRY
+		__field(u8, count)
+		__field(u16, bcn_ofs)
+		__field(u16, pres_ofs)
+	),
+	TP_fast_assign(
+		WIPHY_ASSIGN;
+		NETDEV_ASSIGN;
+		__entry->count = params->count;
+		__entry->bcn_ofs = params->counter_offset_beacon;
+		__entry->pres_ofs = params->counter_offset_presp;
+	),
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT
+		  ", count: %u",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG,
+		  __entry->count)
+);
+
+TRACE_EVENT(rdev_set_radar_background,
+	TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef),
+
+	TP_ARGS(wiphy, chandef),
+
+	TP_STRUCT__entry(
+		WIPHY_ENTRY
+		CHAN_DEF_ENTRY
+	),
+
+	TP_fast_assign(
+		WIPHY_ASSIGN;
+		CHAN_DEF_ASSIGN(chandef)
+	),
+
+	TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT,
+		  WIPHY_PR_ARG, CHAN_DEF_PR_ARG)
+);
+
+DEFINE_EVENT(wiphy_wdev_link_evt, rdev_add_intf_link,
+	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
+		 unsigned int link_id),
+	TP_ARGS(wiphy, wdev, link_id)
+);
+
+DEFINE_EVENT(wiphy_wdev_link_evt, rdev_del_intf_link,
+	TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev,
+		 unsigned int link_id),
+	TP_ARGS(wiphy, wdev, link_id)
+);
+
 /*************************************************************
  *	     cfg80211 exported functions traces		     *
  *************************************************************/
@@ -2641,8 +2880,8 @@
 		NETDEV_ASSIGN;
 		MAC_ASSIGN(macaddr, macaddr);
 	),
-	TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT,
-		  NETDEV_PR_ARG, MAC_PR_ARG(macaddr))
+	TP_printk(NETDEV_PR_FMT ", mac: %pM",
+		  NETDEV_PR_ARG, __entry->macaddr)
 );
 
 DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_notify_new_peer_candidate,
@@ -2668,20 +2907,20 @@
 );
 
 TRACE_EVENT(cfg80211_send_rx_assoc,
-	TP_PROTO(struct net_device *netdev, struct cfg80211_bss *bss),
-	TP_ARGS(netdev, bss),
+	TP_PROTO(struct net_device *netdev,
+		 struct cfg80211_rx_assoc_resp *data),
+	TP_ARGS(netdev, data),
 	TP_STRUCT__entry(
 		NETDEV_ENTRY
-		MAC_ENTRY(bssid)
-		CHAN_ENTRY
+		MAC_ENTRY(ap_addr)
 	),
 	TP_fast_assign(
 		NETDEV_ASSIGN;
-		MAC_ASSIGN(bssid, bss->bssid);
-		CHAN_ASSIGN(bss->channel);
+		MAC_ASSIGN(ap_addr,
+			   data->ap_mld_addr ?: data->links[0].bss->bssid);
 	),
-	TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", " CHAN_PR_FMT,
-		  NETDEV_PR_ARG, MAC_PR_ARG(bssid), CHAN_PR_ARG)
+	TP_printk(NETDEV_PR_FMT ", %pM",
+		  NETDEV_PR_ARG, __entry->ap_addr)
 );
 
 DECLARE_EVENT_CLASS(netdev_frame_event,
@@ -2741,8 +2980,8 @@
 		NETDEV_ASSIGN;
 		MAC_ASSIGN(mac, mac)
 	),
-	TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT,
-		  NETDEV_PR_ARG, MAC_PR_ARG(mac))
+	TP_printk(NETDEV_PR_FMT ", mac: %pM",
+		  NETDEV_PR_ARG, __entry->mac)
 );
 
 DEFINE_EVENT(netdev_mac_evt, cfg80211_send_auth_timeout,
@@ -2750,9 +2989,22 @@
 	TP_ARGS(netdev, mac)
 );
 
-DEFINE_EVENT(netdev_mac_evt, cfg80211_send_assoc_timeout,
-	TP_PROTO(struct net_device *netdev, const u8 *mac),
-	TP_ARGS(netdev, mac)
+TRACE_EVENT(cfg80211_send_assoc_failure,
+	TP_PROTO(struct net_device *netdev,
+		 struct cfg80211_assoc_failure *data),
+	TP_ARGS(netdev, data),
+	TP_STRUCT__entry(
+		NETDEV_ENTRY
+		MAC_ENTRY(ap_addr)
+		__field(bool, timeout)
+	),
+	TP_fast_assign(
+		NETDEV_ASSIGN;
+		MAC_ASSIGN(ap_addr, data->ap_mld_addr ?: data->bss[0]->bssid);
+		__entry->timeout = data->timeout;
+	),
+	TP_printk(NETDEV_PR_FMT ", mac: %pM, timeout: %d",
+		  NETDEV_PR_ARG, __entry->ap_addr, __entry->timeout)
 );
 
 TRACE_EVENT(cfg80211_michael_mic_failure,
@@ -2774,8 +3026,8 @@
 		if (tsc)
 			memcpy(__entry->tsc, tsc, 6);
 	),
-	TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", key type: %d, key id: %d, tsc: %pm",
-		  NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->key_type,
+	TP_printk(NETDEV_PR_FMT ", %pM, key type: %d, key id: %d, tsc: %pm",
+		  NETDEV_PR_ARG, __entry->addr, __entry->key_type,
 		  __entry->key_id, __entry->tsc)
 );
 
@@ -2851,8 +3103,8 @@
 		MAC_ASSIGN(mac_addr, mac_addr);
 		SINFO_ASSIGN;
 	),
-	TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT,
-		  NETDEV_PR_ARG, MAC_PR_ARG(mac_addr))
+	TP_printk(NETDEV_PR_FMT ", %pM",
+		  NETDEV_PR_ARG, __entry->mac_addr)
 );
 
 DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_del_sta,
@@ -2861,8 +3113,8 @@
 );
 
 TRACE_EVENT(cfg80211_rx_mgmt,
-	TP_PROTO(struct wireless_dev *wdev, int freq, int sig_dbm),
-	TP_ARGS(wdev, freq, sig_dbm),
+	TP_PROTO(struct wireless_dev *wdev, struct cfg80211_rx_info *info),
+	TP_ARGS(wdev, info),
 	TP_STRUCT__entry(
 		WDEV_ENTRY
 		__field(int, freq)
@@ -2870,8 +3122,8 @@
 	),
 	TP_fast_assign(
 		WDEV_ASSIGN;
-		__entry->freq = freq;
-		__entry->sig_dbm = sig_dbm;
+		__entry->freq = info->freq;
+		__entry->sig_dbm = info->sig_dbm;
 	),
 	TP_printk(WDEV_PR_FMT ", freq: "KHZ_F", sig dbm: %d",
 		  WDEV_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm)
@@ -2913,14 +3165,15 @@
 
 TRACE_EVENT(cfg80211_rx_control_port,
 	TP_PROTO(struct net_device *netdev, struct sk_buff *skb,
-		 bool unencrypted),
-	TP_ARGS(netdev, skb, unencrypted),
+		 bool unencrypted, int link_id),
+	TP_ARGS(netdev, skb, unencrypted, link_id),
 	TP_STRUCT__entry(
 		NETDEV_ENTRY
 		__field(int, len)
 		MAC_ENTRY(from)
 		__field(u16, proto)
 		__field(bool, unencrypted)
+		__field(int, link_id)
 	),
 	TP_fast_assign(
 		NETDEV_ASSIGN;
@@ -2928,10 +3181,12 @@
 		MAC_ASSIGN(from, eth_hdr(skb)->h_source);
 		__entry->proto = be16_to_cpu(skb->protocol);
 		__entry->unencrypted = unencrypted;
+		__entry->link_id = link_id;
 	),
-	TP_printk(NETDEV_PR_FMT ", len=%d, " MAC_PR_FMT ", proto: 0x%x, unencrypted: %s",
-		  NETDEV_PR_ARG, __entry->len, MAC_PR_ARG(from),
-		  __entry->proto, BOOL_TO_STR(__entry->unencrypted))
+	TP_printk(NETDEV_PR_FMT ", len=%d, %pM, proto: 0x%x, unencrypted: %s, link: %d",
+		  NETDEV_PR_ARG, __entry->len, __entry->from,
+		  __entry->proto, BOOL_TO_STR(__entry->unencrypted),
+		  __entry->link_id)
 );
 
 TRACE_EVENT(cfg80211_cqm_rssi_notify,
@@ -2991,49 +3246,66 @@
 
 TRACE_EVENT(cfg80211_ch_switch_notify,
 	TP_PROTO(struct net_device *netdev,
-		 struct cfg80211_chan_def *chandef),
-	TP_ARGS(netdev, chandef),
+		 struct cfg80211_chan_def *chandef,
+		 unsigned int link_id,
+		 u16 punct_bitmap),
+	TP_ARGS(netdev, chandef, link_id, punct_bitmap),
 	TP_STRUCT__entry(
 		NETDEV_ENTRY
 		CHAN_DEF_ENTRY
+		__field(unsigned int, link_id)
+		__field(u16, punct_bitmap)
 	),
 	TP_fast_assign(
 		NETDEV_ASSIGN;
 		CHAN_DEF_ASSIGN(chandef);
+		__entry->link_id = link_id;
+		__entry->punct_bitmap = punct_bitmap;
 	),
-	TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT,
-		  NETDEV_PR_ARG, CHAN_DEF_PR_ARG)
+	TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d, punct_bitmap:%u",
+		  NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id,
+		  __entry->punct_bitmap)
 );
 
 TRACE_EVENT(cfg80211_ch_switch_started_notify,
 	TP_PROTO(struct net_device *netdev,
-		 struct cfg80211_chan_def *chandef),
-	TP_ARGS(netdev, chandef),
+		 struct cfg80211_chan_def *chandef,
+		 unsigned int link_id,
+		 u16 punct_bitmap),
+	TP_ARGS(netdev, chandef, link_id, punct_bitmap),
 	TP_STRUCT__entry(
 		NETDEV_ENTRY
 		CHAN_DEF_ENTRY
+		__field(unsigned int, link_id)
+		__field(u16, punct_bitmap)
 	),
 	TP_fast_assign(
 		NETDEV_ASSIGN;
 		CHAN_DEF_ASSIGN(chandef);
+		__entry->link_id = link_id;
+		__entry->punct_bitmap = punct_bitmap;
 	),
-	TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT,
-		  NETDEV_PR_ARG, CHAN_DEF_PR_ARG)
+	TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d, punct_bitmap:%u",
+		  NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id,
+		  __entry->punct_bitmap)
 );
 
 TRACE_EVENT(cfg80211_radar_event,
-	TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef),
-	TP_ARGS(wiphy, chandef),
+	TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef,
+		 bool offchan),
+	TP_ARGS(wiphy, chandef, offchan),
 	TP_STRUCT__entry(
 		WIPHY_ENTRY
 		CHAN_DEF_ENTRY
+		__field(bool, offchan)
 	),
 	TP_fast_assign(
 		WIPHY_ASSIGN;
 		CHAN_DEF_ASSIGN(chandef);
+		__entry->offchan = offchan;
 	),
-	TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT,
-		  WIPHY_PR_ARG, CHAN_DEF_PR_ARG)
+	TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", offchan %d",
+		  WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->offchan)
 );
 
 TRACE_EVENT(cfg80211_cac_event,
@@ -3062,7 +3334,7 @@
 		NETDEV_ASSIGN;
 		MAC_ASSIGN(addr, addr);
 	),
-	TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, NETDEV_PR_ARG, MAC_PR_ARG(addr))
+	TP_printk(NETDEV_PR_FMT ", %pM", NETDEV_PR_ARG, __entry->addr)
 );
 
 DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_spurious_frame,
@@ -3089,8 +3361,8 @@
 		MAC_ASSIGN(bssid, bssid);
 		CHAN_ASSIGN(channel);
 	),
-	TP_printk(NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", " CHAN_PR_FMT,
-		  NETDEV_PR_ARG, MAC_PR_ARG(bssid), CHAN_PR_ARG)
+	TP_printk(NETDEV_PR_FMT ", bssid: %pM, " CHAN_PR_FMT,
+		  NETDEV_PR_ARG, __entry->bssid, CHAN_PR_ARG)
 );
 
 TRACE_EVENT(cfg80211_probe_status,
@@ -3109,8 +3381,8 @@
 		__entry->cookie = cookie;
 		__entry->acked = acked;
 	),
-	TP_printk(NETDEV_PR_FMT " addr:" MAC_PR_FMT ", cookie: %llu, acked: %s",
-		  NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->cookie,
+	TP_printk(NETDEV_PR_FMT " addr:%pM, cookie: %llu, acked: %s",
+		  NETDEV_PR_ARG, __entry->addr, __entry->cookie,
 		  BOOL_TO_STR(__entry->acked))
 );
 
@@ -3127,8 +3399,8 @@
 		MAC_ASSIGN(peer, peer);
 		__entry->num_packets = num_packets;
 	),
-	TP_printk(NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", num of lost packets: %u",
-		  NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->num_packets)
+	TP_printk(NETDEV_PR_FMT ", peer: %pM, num of lost packets: %u",
+		  NETDEV_PR_ARG, __entry->peer, __entry->num_packets)
 );
 
 DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_gtk_rekey_notify,
@@ -3152,8 +3424,8 @@
 		MAC_ASSIGN(bssid, bssid);
 		__entry->preauth = preauth;
 	),
-	TP_printk(NETDEV_PR_FMT ", index:%d, bssid: " MAC_PR_FMT ", pre auth: %s",
-		  NETDEV_PR_ARG, __entry->index, MAC_PR_ARG(bssid),
+	TP_printk(NETDEV_PR_FMT ", index:%d, bssid: %pM, pre auth: %s",
+		  NETDEV_PR_ARG, __entry->index, __entry->bssid,
 		  BOOL_TO_STR(__entry->preauth))
 );
 
@@ -3193,8 +3465,8 @@
 		__entry->oper = oper;
 		__entry->reason_code = reason_code;
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", oper: %d, reason_code %u",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper,
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM, oper: %d, reason_code %u",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->oper,
 		  __entry->reason_code)
 	);
 
@@ -3232,10 +3504,10 @@
 			MAC_ASSIGN(tsf_bssid, info->tsf_bssid);
 		}
 	),
-	TP_printk("aborted: %s, scan start (TSF): %llu, tsf_bssid: " MAC_PR_FMT,
+	TP_printk("aborted: %s, scan start (TSF): %llu, tsf_bssid: %pM",
 		  BOOL_TO_STR(__entry->aborted),
 		  (unsigned long long)__entry->scan_start_tsf,
-		  MAC_PR_ARG(tsf_bssid))
+		  __entry->tsf_bssid)
 );
 
 DECLARE_EVENT_CLASS(wiphy_id_evt,
@@ -3284,9 +3556,9 @@
 		__entry->bss_type = bss_type;
 		__entry->privacy = privacy;
 	),
-	TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT ", " MAC_PR_FMT
+	TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT ", %pM"
 		  ", buf: %#.2x, bss_type: %d, privacy: %d",
-		  WIPHY_PR_ARG, CHAN_PR_ARG, MAC_PR_ARG(bssid),
+		  WIPHY_PR_ARG, CHAN_PR_ARG, __entry->bssid,
 		  ((u8 *)__get_dynamic_array(ssid))[0], __entry->bss_type,
 		  __entry->privacy)
 );
@@ -3317,11 +3589,11 @@
 		MAC_ASSIGN(parent_bssid, data->parent_bssid);
 	),
 	TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT
-		  "(scan_width: %d) signal: %d, tsb:%llu, detect_tsf:%llu, tsf_bssid: "
-		  MAC_PR_FMT, WIPHY_PR_ARG, CHAN_PR_ARG, __entry->scan_width,
+		  "(scan_width: %d) signal: %d, tsb:%llu, detect_tsf:%llu, tsf_bssid: %pM",
+		  WIPHY_PR_ARG, CHAN_PR_ARG, __entry->scan_width,
 		  __entry->signal, (unsigned long long)__entry->ts_boottime,
 		  (unsigned long long)__entry->parent_tsf,
-		  MAC_PR_ARG(parent_bssid))
+		  __entry->parent_bssid)
 );
 
 DECLARE_EVENT_CLASS(cfg80211_bss_evt,
@@ -3335,7 +3607,7 @@
 		MAC_ASSIGN(bssid, pub->bssid);
 		CHAN_ASSIGN(pub->channel);
 	),
-	TP_printk(MAC_PR_FMT ", " CHAN_PR_FMT, MAC_PR_ARG(bssid), CHAN_PR_ARG)
+	TP_printk("%pM, " CHAN_PR_FMT, __entry->bssid, CHAN_PR_ARG)
 );
 
 DEFINE_EVENT(cfg80211_bss_evt, cfg80211_return_bss,
@@ -3427,8 +3699,8 @@
 			memcpy(__get_dynamic_array(ric_ies), ft_event->ric_ies,
 			       ft_event->ric_ies_len);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", target_ap: " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(target_ap))
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", target_ap: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->target_ap)
 );
 
 TRACE_EVENT(cfg80211_stop_iface,
@@ -3462,10 +3734,10 @@
 		__entry->cookie = cookie;
 		MAC_ASSIGN(addr, addr);
 	),
-	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld, " MAC_PR_FMT,
+	TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld, %pM",
 		  WIPHY_PR_ARG, WDEV_PR_ARG,
 		  (unsigned long long)__entry->cookie,
-		  MAC_PR_ARG(addr))
+		  __entry->addr)
 );
 
 TRACE_EVENT(cfg80211_pmsr_complete,
@@ -3486,139 +3758,31 @@
 		  (unsigned long long)__entry->cookie)
 );
 
-TRACE_EVENT(rdev_update_owe_info,
-	    TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
-		     struct cfg80211_update_owe_info *owe_info),
-	    TP_ARGS(wiphy, netdev, owe_info),
-	    TP_STRUCT__entry(WIPHY_ENTRY
-			     NETDEV_ENTRY
-			     MAC_ENTRY(peer)
-			     __field(u16, status)
-			     __dynamic_array(u8, ie, owe_info->ie_len)),
-	    TP_fast_assign(WIPHY_ASSIGN;
-			   NETDEV_ASSIGN;
-			   MAC_ASSIGN(peer, owe_info->peer);
-			   __entry->status = owe_info->status;
-			   memcpy(__get_dynamic_array(ie),
-				  owe_info->ie, owe_info->ie_len);),
-	    TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT
-		  " status %d", WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer),
-		  __entry->status)
-);
-
 TRACE_EVENT(cfg80211_update_owe_info_event,
-	    TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
-		     struct cfg80211_update_owe_info *owe_info),
-	    TP_ARGS(wiphy, netdev, owe_info),
-	    TP_STRUCT__entry(WIPHY_ENTRY
-			     NETDEV_ENTRY
-			     MAC_ENTRY(peer)
-			     __dynamic_array(u8, ie, owe_info->ie_len)),
-	    TP_fast_assign(WIPHY_ASSIGN;
-			   NETDEV_ASSIGN;
-			   MAC_ASSIGN(peer, owe_info->peer);
-			   memcpy(__get_dynamic_array(ie), owe_info->ie,
-				  owe_info->ie_len);),
-	    TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT,
-		      WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer))
-);
-
-TRACE_EVENT(rdev_probe_mesh_link,
 	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
-		 const u8 *dest, const u8 *buf, size_t len),
-	TP_ARGS(wiphy, netdev, dest, buf, len),
-	TP_STRUCT__entry(
-		WIPHY_ENTRY
-		NETDEV_ENTRY
-		MAC_ENTRY(dest)
-	),
-	TP_fast_assign(
-		WIPHY_ASSIGN;
-		NETDEV_ASSIGN;
-		MAC_ASSIGN(dest, dest);
-	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dest))
-);
-
-TRACE_EVENT(rdev_set_tid_config,
-	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
-		 struct cfg80211_tid_config *tid_conf),
-	TP_ARGS(wiphy, netdev, tid_conf),
+		 struct cfg80211_update_owe_info *owe_info),
+	TP_ARGS(wiphy, netdev, owe_info),
 	TP_STRUCT__entry(
 		WIPHY_ENTRY
 		NETDEV_ENTRY
 		MAC_ENTRY(peer)
+		__dynamic_array(u8, ie, owe_info->ie_len)
+		__field(int, assoc_link_id)
+		MAC_ENTRY(peer_mld_addr)
 	),
 	TP_fast_assign(
 		WIPHY_ASSIGN;
 		NETDEV_ASSIGN;
-		MAC_ASSIGN(peer, tid_conf->peer);
+		MAC_ASSIGN(peer, owe_info->peer);
+		memcpy(__get_dynamic_array(ie), owe_info->ie,
+		       owe_info->ie_len);
+		__entry->assoc_link_id = owe_info->assoc_link_id;
+		MAC_ASSIGN(peer_mld_addr, owe_info->peer_mld_addr);
 	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT,
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer))
-);
-
-TRACE_EVENT(rdev_reset_tid_config,
-	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
-		 const u8 *peer, u8 tids),
-	TP_ARGS(wiphy, netdev, peer, tids),
-	TP_STRUCT__entry(
-		WIPHY_ENTRY
-		NETDEV_ENTRY
-		MAC_ENTRY(peer)
-		__field(u8, tids)
-	),
-	TP_fast_assign(
-		WIPHY_ASSIGN;
-		NETDEV_ASSIGN;
-		MAC_ASSIGN(peer, peer);
-		__entry->tids = tids;
-	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", tids: 0x%x",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tids)
-);
-
-TRACE_EVENT(rdev_set_sar_specs,
-	TP_PROTO(struct wiphy *wiphy, struct cfg80211_sar_specs *sar),
-	TP_ARGS(wiphy, sar),
-	TP_STRUCT__entry(
-		WIPHY_ENTRY
-		__field(u16, type)
-		__field(u16, num)
-	),
-	TP_fast_assign(
-		WIPHY_ASSIGN;
-		__entry->type = sar->type;
-		__entry->num = sar->num_sub_specs;
-
-	),
-	TP_printk(WIPHY_PR_FMT ", Set type:%d, num_specs:%d",
-		  WIPHY_PR_ARG, __entry->type, __entry->num)
-);
-
-TRACE_EVENT(rdev_color_change,
-	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
-		 struct cfg80211_color_change_settings *params),
-	TP_ARGS(wiphy, netdev, params),
-	TP_STRUCT__entry(
-		WIPHY_ENTRY
-		NETDEV_ENTRY
-		__field(u8, count)
-		__field(u16, bcn_ofs)
-		__field(u16, pres_ofs)
-	),
-	TP_fast_assign(
-		WIPHY_ASSIGN;
-		NETDEV_ASSIGN;
-		__entry->count = params->count;
-		__entry->bcn_ofs = params->counter_offset_beacon;
-		__entry->pres_ofs = params->counter_offset_presp;
-	),
-	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT
-		  ", count: %u",
-		  WIPHY_PR_ARG, NETDEV_PR_ARG,
-		  __entry->count)
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM,"
+	          " assoc_link_id: %d, peer_mld_addr: %pM",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
+		  __entry->assoc_link_id, __entry->peer_mld_addr)
 );
 
 TRACE_EVENT(cfg80211_bss_color_notify,
@@ -3643,6 +3807,120 @@
 		  __entry->color_bitmap)
 );
 
+TRACE_EVENT(cfg80211_assoc_comeback,
+	TP_PROTO(struct wireless_dev *wdev, const u8 *ap_addr, u32 timeout),
+	TP_ARGS(wdev, ap_addr, timeout),
+	TP_STRUCT__entry(
+		WDEV_ENTRY
+		MAC_ENTRY(ap_addr)
+		__field(u32, timeout)
+	),
+	TP_fast_assign(
+		WDEV_ASSIGN;
+		MAC_ASSIGN(ap_addr, ap_addr);
+		__entry->timeout = timeout;
+	),
+	TP_printk(WDEV_PR_FMT ", %pM, timeout: %u TUs",
+		  WDEV_PR_ARG, __entry->ap_addr, __entry->timeout)
+);
+
+DECLARE_EVENT_CLASS(link_station_add_mod,
+	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
+		 struct link_station_parameters *params),
+	TP_ARGS(wiphy, netdev, params),
+	TP_STRUCT__entry(
+		WIPHY_ENTRY
+		NETDEV_ENTRY
+		__array(u8, mld_mac, 6)
+		__array(u8, link_mac, 6)
+		__field(u32, link_id)
+		__dynamic_array(u8, supported_rates,
+				params->supported_rates_len)
+		__array(u8, ht_capa, (int)sizeof(struct ieee80211_ht_cap))
+		__array(u8, vht_capa, (int)sizeof(struct ieee80211_vht_cap))
+		__field(u8, opmode_notif)
+		__field(bool, opmode_notif_used)
+		__dynamic_array(u8, he_capa, params->he_capa_len)
+		__array(u8, he_6ghz_capa, (int)sizeof(struct ieee80211_he_6ghz_capa))
+		__dynamic_array(u8, eht_capa, params->eht_capa_len)
+	),
+	TP_fast_assign(
+		WIPHY_ASSIGN;
+		NETDEV_ASSIGN;
+		memset(__entry->mld_mac, 0, 6);
+		memset(__entry->link_mac, 0, 6);
+		if (params->mld_mac)
+			memcpy(__entry->mld_mac, params->mld_mac, 6);
+		if (params->link_mac)
+			memcpy(__entry->link_mac, params->link_mac, 6);
+		__entry->link_id = params->link_id;
+		if (params->supported_rates && params->supported_rates_len)
+			memcpy(__get_dynamic_array(supported_rates),
+			       params->supported_rates,
+			       params->supported_rates_len);
+		memset(__entry->ht_capa, 0, sizeof(struct ieee80211_ht_cap));
+		if (params->ht_capa)
+			memcpy(__entry->ht_capa, params->ht_capa,
+			       sizeof(struct ieee80211_ht_cap));
+		memset(__entry->vht_capa, 0, sizeof(struct ieee80211_vht_cap));
+		if (params->vht_capa)
+			memcpy(__entry->vht_capa, params->vht_capa,
+			       sizeof(struct ieee80211_vht_cap));
+		__entry->opmode_notif = params->opmode_notif;
+		__entry->opmode_notif_used = params->opmode_notif_used;
+		if (params->he_capa && params->he_capa_len)
+			memcpy(__get_dynamic_array(he_capa), params->he_capa,
+			       params->he_capa_len);
+		memset(__entry->he_6ghz_capa, 0, sizeof(struct ieee80211_he_6ghz_capa));
+		if (params->he_6ghz_capa)
+			memcpy(__entry->he_6ghz_capa, params->he_6ghz_capa,
+			       sizeof(struct ieee80211_he_6ghz_capa));
+		if (params->eht_capa && params->eht_capa_len)
+			memcpy(__get_dynamic_array(eht_capa), params->eht_capa,
+			       params->eht_capa_len);
+	),
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
+		  ", link mac: %pM, link id: %u",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mld_mac,
+		  __entry->link_mac, __entry->link_id)
+);
+
+DEFINE_EVENT(link_station_add_mod, rdev_add_link_station,
+	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
+		 struct link_station_parameters *params),
+	TP_ARGS(wiphy, netdev, params)
+);
+
+DEFINE_EVENT(link_station_add_mod, rdev_mod_link_station,
+	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
+		 struct link_station_parameters *params),
+	TP_ARGS(wiphy, netdev, params)
+);
+
+TRACE_EVENT(rdev_del_link_station,
+	TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
+		 struct link_station_del_parameters *params),
+	TP_ARGS(wiphy, netdev, params),
+	TP_STRUCT__entry(
+		WIPHY_ENTRY
+		NETDEV_ENTRY
+		__array(u8, mld_mac, 6)
+		__field(u32, link_id)
+	),
+	TP_fast_assign(
+		WIPHY_ASSIGN;
+		NETDEV_ASSIGN;
+		memset(__entry->mld_mac, 0, 6);
+		if (params->mld_mac)
+			memcpy(__entry->mld_mac, params->mld_mac, 6);
+		__entry->link_id = params->link_id;
+	),
+	TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
+		  ", link id: %u",
+		  WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mld_mac,
+		  __entry->link_id)
+);
+
 #endif /* !__RDEV_OPS_TRACE || TRACE_HEADER_MULTI_READ */
 
 #undef TRACE_INCLUDE_PATH
diff --git a/net/wireless/util.c b/net/wireless/util.c
index cb15d7f..bac788f 100644
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
@@ -5,7 +5,7 @@
  * Copyright 2007-2009	Johannes Berg <johannes@sipsolutions.net>
  * Copyright 2013-2014  Intel Mobile Communications GmbH
  * Copyright 2017	Intel Deutschland GmbH
- * Copyright (C) 2018-2020 Intel Corporation
+ * Copyright (C) 2018-20222 Intel Corporation
  */
 #include <linux/export.h>
 #include <linux/bitops.h>
@@ -80,6 +80,7 @@
 		return 0; /* not supported */
 	switch (band) {
 	case NL80211_BAND_2GHZ:
+	case NL80211_BAND_LC:
 		if (chan == 14)
 			return MHZ_TO_KHZ(2484);
 		else if (chan < 14)
@@ -209,6 +210,7 @@
 		WARN_ON(want);
 		break;
 	case NL80211_BAND_2GHZ:
+	case NL80211_BAND_LC:
 		want = 7;
 		for (i = 0; i < sband->n_bitrates; i++) {
 			switch (sband->bitrates[i].bitrate) {
@@ -931,13 +933,13 @@
 	for (i = 0; i < CFG80211_MAX_WEP_KEYS; i++) {
 		if (!wdev->connect_keys->params[i].cipher)
 			continue;
-		if (rdev_add_key(rdev, dev, i, false, NULL,
+		if (rdev_add_key(rdev, dev, -1, i, false, NULL,
 				 &wdev->connect_keys->params[i])) {
 			netdev_err(dev, "failed to set key %d\n", i);
 			continue;
 		}
 		if (wdev->connect_keys->def == i &&
-		    rdev_set_default_key(rdev, dev, i, true, true)) {
+		    rdev_set_default_key(rdev, dev, -1, i, true, true)) {
 			netdev_err(dev, "failed to set defkey %d\n", i);
 			continue;
 		}
@@ -984,7 +986,9 @@
 			__cfg80211_leave(wiphy_to_rdev(wdev->wiphy), wdev);
 			break;
 		case EVENT_PORT_AUTHORIZED:
-			__cfg80211_port_authorized(wdev, ev->pa.bssid);
+			__cfg80211_port_authorized(wdev, ev->pa.bssid,
+						   ev->pa.td_bitmap,
+						   ev->pa.td_bitmap_len);
 			break;
 		}
 		wdev_unlock(wdev);
@@ -1037,7 +1041,6 @@
 			return -EBUSY;
 
 		dev->ieee80211_ptr->use_4addr = false;
-		dev->ieee80211_ptr->mesh_id_up_len = 0;
 		wdev_lock(dev->ieee80211_ptr);
 		rdev_set_qos_map(rdev, dev, NULL);
 		wdev_unlock(dev->ieee80211_ptr);
@@ -1045,7 +1048,7 @@
 		switch (otype) {
 		case NL80211_IFTYPE_AP:
 		case NL80211_IFTYPE_P2P_GO:
-			cfg80211_stop_ap(rdev, dev, true);
+			cfg80211_stop_ap(rdev, dev, -1, true);
 			break;
 		case NL80211_IFTYPE_ADHOC:
 			cfg80211_leave_ibss(rdev, dev, false);
@@ -1069,6 +1072,11 @@
 
 		cfg80211_process_rdev_events(rdev);
 		cfg80211_mlme_purge_registrations(dev->ieee80211_ptr);
+
+		memset(&dev->ieee80211_ptr->u, 0,
+		       sizeof(dev->ieee80211_ptr->u));
+		memset(&dev->ieee80211_ptr->links, 0,
+		       sizeof(dev->ieee80211_ptr->links));
 	}
 
 	err = rdev_change_virtual_intf(rdev, dev, ntype, params);
@@ -1426,6 +1434,137 @@
 	return result / 10000;
 }
 
+static u32 cfg80211_calculate_bitrate_eht(struct rate_info *rate)
+{
+#define SCALE 6144
+	static const u32 mcs_divisors[16] = {
+		102399, /* 16.666666... */
+		 51201, /*  8.333333... */
+		 34134, /*  5.555555... */
+		 25599, /*  4.166666... */
+		 17067, /*  2.777777... */
+		 12801, /*  2.083333... */
+		 11377, /*  1.851725... */
+		 10239, /*  1.666666... */
+		  8532, /*  1.388888... */
+		  7680, /*  1.250000... */
+		  6828, /*  1.111111... */
+		  6144, /*  1.000000... */
+		  5690, /*  0.926106... */
+		  5120, /*  0.833333... */
+		409600, /* 66.666666... */
+		204800, /* 33.333333... */
+	};
+	static const u32 rates_996[3] =  { 480388888, 453700000, 408333333 };
+	static const u32 rates_484[3] =  { 229411111, 216666666, 195000000 };
+	static const u32 rates_242[3] =  { 114711111, 108333333,  97500000 };
+	static const u32 rates_106[3] =  {  40000000,  37777777,  34000000 };
+	static const u32 rates_52[3]  =  {  18820000,  17777777,  16000000 };
+	static const u32 rates_26[3]  =  {   9411111,   8888888,   8000000 };
+	u64 tmp;
+	u32 result;
+
+	if (WARN_ON_ONCE(rate->mcs > 15))
+		return 0;
+	if (WARN_ON_ONCE(rate->eht_gi > NL80211_RATE_INFO_EHT_GI_3_2))
+		return 0;
+	if (WARN_ON_ONCE(rate->eht_ru_alloc >
+			 NL80211_RATE_INFO_EHT_RU_ALLOC_4x996))
+		return 0;
+	if (WARN_ON_ONCE(rate->nss < 1 || rate->nss > 8))
+		return 0;
+
+	/* Bandwidth checks for MCS 14 */
+	if (rate->mcs == 14) {
+		if ((rate->bw != RATE_INFO_BW_EHT_RU &&
+		     rate->bw != RATE_INFO_BW_80 &&
+		     rate->bw != RATE_INFO_BW_160 &&
+		     rate->bw != RATE_INFO_BW_320) ||
+		    (rate->bw == RATE_INFO_BW_EHT_RU &&
+		     rate->eht_ru_alloc != NL80211_RATE_INFO_EHT_RU_ALLOC_996 &&
+		     rate->eht_ru_alloc != NL80211_RATE_INFO_EHT_RU_ALLOC_2x996 &&
+		     rate->eht_ru_alloc != NL80211_RATE_INFO_EHT_RU_ALLOC_4x996)) {
+			WARN(1, "invalid EHT BW for MCS 14: bw:%d, ru:%d\n",
+			     rate->bw, rate->eht_ru_alloc);
+			return 0;
+		}
+	}
+
+	if (rate->bw == RATE_INFO_BW_320 ||
+	    (rate->bw == RATE_INFO_BW_EHT_RU &&
+	     rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_4x996))
+		result = 4 * rates_996[rate->eht_gi];
+	else if (rate->bw == RATE_INFO_BW_EHT_RU &&
+		 rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484)
+		result = 3 * rates_996[rate->eht_gi] + rates_484[rate->eht_gi];
+	else if (rate->bw == RATE_INFO_BW_EHT_RU &&
+		 rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_3x996)
+		result = 3 * rates_996[rate->eht_gi];
+	else if (rate->bw == RATE_INFO_BW_EHT_RU &&
+		 rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484)
+		result = 2 * rates_996[rate->eht_gi] + rates_484[rate->eht_gi];
+	else if (rate->bw == RATE_INFO_BW_160 ||
+		 (rate->bw == RATE_INFO_BW_EHT_RU &&
+		  rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_2x996))
+		result = 2 * rates_996[rate->eht_gi];
+	else if (rate->bw == RATE_INFO_BW_EHT_RU &&
+		 rate->eht_ru_alloc ==
+		 NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242)
+		result = rates_996[rate->eht_gi] + rates_484[rate->eht_gi]
+			 + rates_242[rate->eht_gi];
+	else if (rate->bw == RATE_INFO_BW_EHT_RU &&
+		 rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_996P484)
+		result = rates_996[rate->eht_gi] + rates_484[rate->eht_gi];
+	else if (rate->bw == RATE_INFO_BW_80 ||
+		 (rate->bw == RATE_INFO_BW_EHT_RU &&
+		  rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_996))
+		result = rates_996[rate->eht_gi];
+	else if (rate->bw == RATE_INFO_BW_EHT_RU &&
+		 rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_484P242)
+		result = rates_484[rate->eht_gi] + rates_242[rate->eht_gi];
+	else if (rate->bw == RATE_INFO_BW_40 ||
+		 (rate->bw == RATE_INFO_BW_EHT_RU &&
+		  rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_484))
+		result = rates_484[rate->eht_gi];
+	else if (rate->bw == RATE_INFO_BW_20 ||
+		 (rate->bw == RATE_INFO_BW_EHT_RU &&
+		  rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_242))
+		result = rates_242[rate->eht_gi];
+	else if (rate->bw == RATE_INFO_BW_EHT_RU &&
+		 rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_106P26)
+		result = rates_106[rate->eht_gi] + rates_26[rate->eht_gi];
+	else if (rate->bw == RATE_INFO_BW_EHT_RU &&
+		 rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_106)
+		result = rates_106[rate->eht_gi];
+	else if (rate->bw == RATE_INFO_BW_EHT_RU &&
+		 rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_52P26)
+		result = rates_52[rate->eht_gi] + rates_26[rate->eht_gi];
+	else if (rate->bw == RATE_INFO_BW_EHT_RU &&
+		 rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_52)
+		result = rates_52[rate->eht_gi];
+	else if (rate->bw == RATE_INFO_BW_EHT_RU &&
+		 rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_26)
+		result = rates_26[rate->eht_gi];
+	else {
+		WARN(1, "invalid EHT MCS: bw:%d, ru:%d\n",
+		     rate->bw, rate->eht_ru_alloc);
+		return 0;
+	}
+
+	/* now scale to the appropriate MCS */
+	tmp = result;
+	tmp *= SCALE;
+	do_div(tmp, mcs_divisors[rate->mcs]);
+
+	/* and take NSS */
+	tmp *= rate->nss;
+	do_div(tmp, 8);
+
+	result = tmp;
+
+	return result / 10000;
+}
+
 u32 cfg80211_calculate_bitrate(struct rate_info *rate)
 {
 	if (rate->flags & RATE_INFO_FLAGS_MCS)
@@ -1440,6 +1579,8 @@
 		return cfg80211_calculate_bitrate_vht(rate);
 	if (rate->flags & RATE_INFO_FLAGS_HE_MCS)
 		return cfg80211_calculate_bitrate_he(rate);
+	if (rate->flags & RATE_INFO_FLAGS_EHT_MCS)
+		return cfg80211_calculate_bitrate_eht(rate);
 
 	return rate->legacy;
 }
@@ -1795,6 +1936,24 @@
 }
 EXPORT_SYMBOL(ieee80211_chandef_to_operating_class);
 
+static int cfg80211_wdev_bi(struct wireless_dev *wdev)
+{
+	switch (wdev->iftype) {
+	case NL80211_IFTYPE_AP:
+	case NL80211_IFTYPE_P2P_GO:
+		WARN_ON(wdev->valid_links);
+		return wdev->links[0].ap.beacon_interval;
+	case NL80211_IFTYPE_MESH_POINT:
+		return wdev->u.mesh.beacon_interval;
+	case NL80211_IFTYPE_ADHOC:
+		return wdev->u.ibss.beacon_interval;
+	default:
+		break;
+	}
+
+	return 0;
+}
+
 static void cfg80211_calculate_bi_data(struct wiphy *wiphy, u32 new_beacon_int,
 				       u32 *beacon_int_gcd,
 				       bool *beacon_int_different)
@@ -1805,19 +1964,27 @@
 	*beacon_int_different = false;
 
 	list_for_each_entry(wdev, &wiphy->wdev_list, list) {
-		if (!wdev->beacon_interval)
+		int wdev_bi;
+
+		/* this feature isn't supported with MLO */
+		if (wdev->valid_links)
+			continue;
+
+		wdev_bi = cfg80211_wdev_bi(wdev);
+
+		if (!wdev_bi)
 			continue;
 
 		if (!*beacon_int_gcd) {
-			*beacon_int_gcd = wdev->beacon_interval;
+			*beacon_int_gcd = wdev_bi;
 			continue;
 		}
 
-		if (wdev->beacon_interval == *beacon_int_gcd)
+		if (wdev_bi == *beacon_int_gcd)
 			continue;
 
 		*beacon_int_different = true;
-		*beacon_int_gcd = gcd(*beacon_int_gcd, wdev->beacon_interval);
+		*beacon_int_gcd = gcd(*beacon_int_gcd, wdev_bi);
 	}
 
 	if (new_beacon_int && *beacon_int_gcd != new_beacon_int) {
@@ -2282,3 +2449,60 @@
 	return false;
 }
 EXPORT_SYMBOL(cfg80211_iftype_allowed);
+
+void cfg80211_remove_link(struct wireless_dev *wdev, unsigned int link_id)
+{
+	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
+
+	ASSERT_WDEV_LOCK(wdev);
+
+	switch (wdev->iftype) {
+	case NL80211_IFTYPE_AP:
+	case NL80211_IFTYPE_P2P_GO:
+		__cfg80211_stop_ap(rdev, wdev->netdev, link_id, true);
+		break;
+	default:
+		/* per-link not relevant */
+		break;
+	}
+
+	wdev->valid_links &= ~BIT(link_id);
+
+	rdev_del_intf_link(rdev, wdev, link_id);
+
+	eth_zero_addr(wdev->links[link_id].addr);
+}
+
+void cfg80211_remove_links(struct wireless_dev *wdev)
+{
+	unsigned int link_id;
+
+	wdev_lock(wdev);
+	if (wdev->valid_links) {
+		for_each_valid_link(wdev, link_id)
+			cfg80211_remove_link(wdev, link_id);
+	}
+	wdev_unlock(wdev);
+}
+
+int cfg80211_remove_virtual_intf(struct cfg80211_registered_device *rdev,
+				 struct wireless_dev *wdev)
+{
+	cfg80211_remove_links(wdev);
+
+	return rdev_del_virtual_intf(rdev, wdev);
+}
+
+const struct wiphy_iftype_ext_capab *
+cfg80211_get_iftype_ext_capa(struct wiphy *wiphy, enum nl80211_iftype type)
+{
+	int i;
+
+	for (i = 0; i < wiphy->num_iftype_ext_capab; i++) {
+		if (wiphy->iftype_ext_capab[i].iftype == type)
+			return &wiphy->iftype_ext_capab[i];
+	}
+
+	return NULL;
+}
+EXPORT_SYMBOL(cfg80211_get_iftype_ext_capa);
diff --git a/net/wireless/wext-compat.c b/net/wireless/wext-compat.c
index a32065d6..ddf340b 100644
--- a/net/wireless/wext-compat.c
+++ b/net/wireless/wext-compat.c
@@ -7,7 +7,7 @@
  * we directly assign the wireless handlers of wireless interfaces.
  *
  * Copyright 2008-2009	Johannes Berg <johannes@sipsolutions.net>
- * Copyright (C) 2019-2021 Intel Corporation
+ * Copyright (C) 2019-2022 Intel Corporation
  */
 
 #include <linux/export.h>
@@ -415,6 +415,9 @@
 	int err, i;
 	bool rejoin = false;
 
+	if (wdev->valid_links)
+		return -EINVAL;
+
 	if (pairwise && !addr)
 		return -EINVAL;
 
@@ -437,7 +440,7 @@
 		return -EOPNOTSUPP;
 
 	if (params->cipher == WLAN_CIPHER_SUITE_AES_CMAC) {
-		if (!wdev->current_bss)
+		if (!wdev->connected)
 			return -ENOLINK;
 
 		if (!rdev->ops->set_default_mgmt_key)
@@ -450,7 +453,9 @@
 
 	if (remove) {
 		err = 0;
-		if (wdev->current_bss) {
+		if (wdev->connected ||
+		    (wdev->iftype == NL80211_IFTYPE_ADHOC &&
+		     wdev->u.ibss.current_bss)) {
 			/*
 			 * If removing the current TX key, we will need to
 			 * join a new IBSS without the privacy bit clear.
@@ -465,7 +470,7 @@
 			    !(rdev->wiphy.flags & WIPHY_FLAG_IBSS_RSN))
 				err = -ENOENT;
 			else
-				err = rdev_del_key(rdev, dev, idx, pairwise,
+				err = rdev_del_key(rdev, dev, -1, idx, pairwise,
 						   addr);
 		}
 		wdev->wext.connect.privacy = false;
@@ -501,8 +506,10 @@
 		return -EINVAL;
 
 	err = 0;
-	if (wdev->current_bss)
-		err = rdev_add_key(rdev, dev, idx, pairwise, addr, params);
+	if (wdev->connected ||
+	    (wdev->iftype == NL80211_IFTYPE_ADHOC &&
+	     wdev->u.ibss.current_bss))
+		err = rdev_add_key(rdev, dev, -1, idx, pairwise, addr, params);
 	else if (params->cipher != WLAN_CIPHER_SUITE_WEP40 &&
 		 params->cipher != WLAN_CIPHER_SUITE_WEP104)
 		return -EINVAL;
@@ -526,7 +533,9 @@
 	if ((params->cipher == WLAN_CIPHER_SUITE_WEP40 ||
 	     params->cipher == WLAN_CIPHER_SUITE_WEP104) &&
 	    (tx_key || (!addr && wdev->wext.default_key == -1))) {
-		if (wdev->current_bss) {
+		if (wdev->connected ||
+		    (wdev->iftype == NL80211_IFTYPE_ADHOC &&
+		     wdev->u.ibss.current_bss)) {
 			/*
 			 * If we are getting a new TX key from not having
 			 * had one before we need to join a new IBSS with
@@ -537,7 +546,8 @@
 				__cfg80211_leave_ibss(rdev, wdev->netdev, true);
 				rejoin = true;
 			}
-			err = rdev_set_default_key(rdev, dev, idx, true, true);
+			err = rdev_set_default_key(rdev, dev, -1, idx, true,
+						   true);
 		}
 		if (!err) {
 			wdev->wext.default_key = idx;
@@ -549,8 +559,10 @@
 
 	if (params->cipher == WLAN_CIPHER_SUITE_AES_CMAC &&
 	    (tx_key || (!addr && wdev->wext.default_mgmt_key == -1))) {
-		if (wdev->current_bss)
-			err = rdev_set_default_mgmt_key(rdev, dev, idx);
+		if (wdev->connected ||
+		    (wdev->iftype == NL80211_IFTYPE_ADHOC &&
+		     wdev->u.ibss.current_bss))
+			err = rdev_set_default_mgmt_key(rdev, dev, -1, idx);
 		if (!err)
 			wdev->wext.default_mgmt_key = idx;
 		return err;
@@ -595,6 +607,11 @@
 		return -EOPNOTSUPP;
 
 	wiphy_lock(&rdev->wiphy);
+	if (wdev->valid_links) {
+		err = -EOPNOTSUPP;
+		goto out;
+	}
+
 	idx = erq->flags & IW_ENCODE_INDEX;
 	if (idx == 0) {
 		idx = wdev->wext.default_key;
@@ -613,8 +630,10 @@
 		/* No key data - just set the default TX key index */
 		err = 0;
 		wdev_lock(wdev);
-		if (wdev->current_bss)
-			err = rdev_set_default_key(rdev, dev, idx, true,
+		if (wdev->connected ||
+		    (wdev->iftype == NL80211_IFTYPE_ADHOC &&
+		     wdev->u.ibss.current_bss))
+			err = rdev_set_default_key(rdev, dev, -1, idx, true,
 						   true);
 		if (!err)
 			wdev->wext.default_key = idx;
@@ -667,6 +686,13 @@
 	    !rdev->ops->set_default_key)
 		return -EOPNOTSUPP;
 
+	wdev_lock(wdev);
+	if (wdev->valid_links) {
+		wdev_unlock(wdev);
+		return -EOPNOTSUPP;
+	}
+	wdev_unlock(wdev);
+
 	switch (ext->alg) {
 	case IW_ENCODE_ALG_NONE:
 		remove = true;
@@ -865,7 +891,7 @@
 			break;
 		}
 
-		ret = rdev_get_channel(rdev, wdev, &chandef);
+		ret = rdev_get_channel(rdev, wdev, 0, &chandef);
 		if (ret)
 			break;
 		freq->m = chandef.chan->center_freq;
@@ -1270,7 +1296,10 @@
 		return -EINVAL;
 
 	wiphy_lock(&rdev->wiphy);
-	ret = rdev_set_bitrate_mask(rdev, dev, NULL, &mask);
+	if (dev->ieee80211_ptr->valid_links)
+		ret = -EOPNOTSUPP;
+	else
+		ret = rdev_set_bitrate_mask(rdev, dev, 0, NULL, &mask);
 	wiphy_unlock(&rdev->wiphy);
 
 	return ret;
@@ -1294,8 +1323,9 @@
 
 	err = 0;
 	wdev_lock(wdev);
-	if (wdev->current_bss)
-		memcpy(addr, wdev->current_bss->pub.bssid, ETH_ALEN);
+	if (!wdev->valid_links && wdev->links[0].client.current_bss)
+		memcpy(addr, wdev->links[0].client.current_bss->pub.bssid,
+		       ETH_ALEN);
 	else
 		err = -EOPNOTSUPP;
 	wdev_unlock(wdev);
@@ -1339,11 +1369,11 @@
 
 	/* Grab BSSID of current BSS, if any */
 	wdev_lock(wdev);
-	if (!wdev->current_bss) {
+	if (wdev->valid_links || !wdev->links[0].client.current_bss) {
 		wdev_unlock(wdev);
 		return NULL;
 	}
-	memcpy(bssid, wdev->current_bss->pub.bssid, ETH_ALEN);
+	memcpy(bssid, wdev->links[0].client.current_bss->pub.bssid, ETH_ALEN);
 	wdev_unlock(wdev);
 
 	memset(&sinfo, 0, sizeof(sinfo));
diff --git a/net/wireless/wext-sme.c b/net/wireless/wext-sme.c
index 193a18a..68f45af 100644
--- a/net/wireless/wext-sme.c
+++ b/net/wireless/wext-sme.c
@@ -3,7 +3,7 @@
  * cfg80211 wext compat for managed mode.
  *
  * Copyright 2009	Johannes Berg <johannes@sipsolutions.net>
- * Copyright (C) 2009, 2020-2021 Intel Corporation.
+ * Copyright (C) 2009, 2020-2022 Intel Corporation
  */
 
 #include <linux/export.h>
@@ -124,9 +124,12 @@
 	if (WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION))
 		return -EINVAL;
 
+	if (wdev->valid_links)
+		return -EOPNOTSUPP;
+
 	wdev_lock(wdev);
-	if (wdev->current_bss)
-		chan = wdev->current_bss->pub.channel;
+	if (wdev->links[0].client.current_bss)
+		chan = wdev->links[0].client.current_bss->pub.channel;
 	else if (wdev->wext.connect.channel)
 		chan = wdev->wext.connect.channel;
 	wdev_unlock(wdev);
@@ -208,22 +211,26 @@
 	if (WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION))
 		return -EINVAL;
 
+	if (wdev->valid_links)
+		return -EINVAL;
+
 	data->flags = 0;
 
 	wdev_lock(wdev);
-	if (wdev->current_bss) {
-		const u8 *ie;
+	if (wdev->links[0].client.current_bss) {
+		const struct element *ssid_elem;
 
 		rcu_read_lock();
-		ie = ieee80211_bss_get_ie(&wdev->current_bss->pub,
-					  WLAN_EID_SSID);
-		if (ie) {
+		ssid_elem = ieee80211_bss_get_elem(
+				&wdev->links[0].client.current_bss->pub,
+				WLAN_EID_SSID);
+		if (ssid_elem) {
 			data->flags = 1;
-			data->length = ie[1];
+			data->length = ssid_elem->datalen;
 			if (data->length > IW_ESSID_MAX_SIZE)
 				ret = -EINVAL;
 			else
-				memcpy(ssid, ie + 2, data->length);
+				memcpy(ssid, ssid_elem->data, data->length);
 		}
 		rcu_read_unlock();
 	} else if (wdev->wext.connect.ssid && wdev->wext.connect.ssid_len) {
@@ -300,8 +307,14 @@
 	ap_addr->sa_family = ARPHRD_ETHER;
 
 	wdev_lock(wdev);
-	if (wdev->current_bss)
-		memcpy(ap_addr->sa_data, wdev->current_bss->pub.bssid, ETH_ALEN);
+	if (wdev->valid_links) {
+		wdev_unlock(wdev);
+		return -EOPNOTSUPP;
+	}
+	if (wdev->links[0].client.current_bss)
+		memcpy(ap_addr->sa_data,
+		       wdev->links[0].client.current_bss->pub.bssid,
+		       ETH_ALEN);
 	else
 		eth_zero_addr(ap_addr->sa_data);
 	wdev_unlock(wdev);
diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
index e5eb561..d76871d 100644
--- a/net/xdp/xsk.c
+++ b/net/xdp/xsk.c
@@ -358,9 +358,9 @@
 }
 EXPORT_SYMBOL(xsk_tx_peek_desc);
 
-static u32 xsk_tx_peek_release_fallback(struct xsk_buff_pool *pool, u32 max_entries)
+static u32 xsk_tx_peek_release_fallback(struct xsk_buff_pool *pool, struct xdp_desc *descs,
+					u32 max_entries)
 {
-	struct xdp_desc *descs = pool->tx_descs;
 	u32 nb_pkts = 0;
 
 	while (nb_pkts < max_entries && xsk_tx_peek_desc(pool, &descs[nb_pkts]))
@@ -370,15 +370,17 @@
 	return nb_pkts;
 }
 
-u32 xsk_tx_peek_release_desc_batch(struct xsk_buff_pool *pool, u32 nb_pkts)
+u32 xsk_tx_peek_release_desc_batch(struct xsk_buff_pool *pool, struct xdp_desc *descs,
+				   u32 max_entries)
 {
 	struct xdp_sock *xs;
+	u32 nb_pkts;
 
 	rcu_read_lock();
 	if (!list_is_singular(&pool->xsk_tx_list)) {
 		/* Fallback to the non-batched version */
 		rcu_read_unlock();
-		return xsk_tx_peek_release_fallback(pool, nb_pkts);
+		return xsk_tx_peek_release_fallback(pool, descs, max_entries);
 	}
 
 	xs = list_first_or_null_rcu(&pool->xsk_tx_list, struct xdp_sock, tx_list);
@@ -387,7 +389,11 @@
 		goto out;
 	}
 
-	nb_pkts = xskq_cons_nb_entries(xs->tx, nb_pkts);
+	nb_pkts = xskq_cons_peek_desc_batch(xs->tx, descs, pool, max_entries);
+	if (!nb_pkts) {
+		xs->tx->queue_empty_descs++;
+		goto out;
+	}
 
 	/* This is the backpressure mechanism for the Tx path. Try to
 	 * reserve space in the completion queue for all packets, but
@@ -395,18 +401,12 @@
 	 * packets. This avoids having to implement any buffering in
 	 * the Tx path.
 	 */
-	nb_pkts = xskq_prod_nb_free(pool->cq, nb_pkts);
+	nb_pkts = xskq_prod_reserve_addr_batch(pool->cq, descs, nb_pkts);
 	if (!nb_pkts)
 		goto out;
 
-	nb_pkts = xskq_cons_read_desc_batch(xs->tx, pool, nb_pkts);
-	if (!nb_pkts) {
-		xs->tx->queue_empty_descs++;
-		goto out;
-	}
-
+	xskq_cons_release_n(xs->tx, nb_pkts);
 	__xskq_cons_release(xs->tx);
-	xskq_prod_write_addr_batch(pool->cq, pool->tx_descs, nb_pkts);
 	xs->sk.sk_write_space(&xs->sk);
 
 out:
@@ -992,20 +992,6 @@
 
 			xp_get_pool(umem_xs->pool);
 			xs->pool = umem_xs->pool;
-
-			/* If underlying shared umem was created without Tx
-			 * ring, allocate Tx descs array that Tx batching API
-			 * utilizes
-			 */
-			if (xs->tx && !xs->pool->tx_descs) {
-				err = xp_alloc_tx_descs(xs->pool, xs);
-				if (err) {
-					xp_put_pool(xs->pool);
-					xs->pool = NULL;
-					sockfd_put(sock);
-					goto out_unlock;
-				}
-			}
 		}
 
 		xdp_get_umem(umem_xs->umem);
diff --git a/net/xdp/xsk_buff_pool.c b/net/xdp/xsk_buff_pool.c
index 2aa559f..04819fd 100644
--- a/net/xdp/xsk_buff_pool.c
+++ b/net/xdp/xsk_buff_pool.c
@@ -37,21 +37,10 @@
 	if (!pool)
 		return;
 
-	kvfree(pool->tx_descs);
 	kvfree(pool->heads);
 	kvfree(pool);
 }
 
-int xp_alloc_tx_descs(struct xsk_buff_pool *pool, struct xdp_sock *xs)
-{
-	pool->tx_descs = kvcalloc(xs->tx->nentries, sizeof(*pool->tx_descs),
-				  GFP_KERNEL);
-	if (!pool->tx_descs)
-		return -ENOMEM;
-
-	return 0;
-}
-
 struct xsk_buff_pool *xp_create_and_assign_umem(struct xdp_sock *xs,
 						struct xdp_umem *umem)
 {
@@ -68,10 +57,6 @@
 	if (!pool->heads)
 		goto out;
 
-	if (xs->tx)
-		if (xp_alloc_tx_descs(pool, xs))
-			goto out;
-
 	pool->chunk_mask = ~((u64)umem->chunk_size - 1);
 	pool->addrs_cnt = umem->size;
 	pool->heads_cnt = umem->chunks;
diff --git a/net/xdp/xsk_queue.h b/net/xdp/xsk_queue.h
index 6b4df83a..6de9d94 100644
--- a/net/xdp/xsk_queue.h
+++ b/net/xdp/xsk_queue.h
@@ -202,16 +202,11 @@
 	return false;
 }
 
-static inline void xskq_cons_release_n(struct xsk_queue *q, u32 cnt)
-{
-	q->cached_cons += cnt;
-}
-
-static inline u32 xskq_cons_read_desc_batch(struct xsk_queue *q, struct xsk_buff_pool *pool,
-					    u32 max)
+static inline u32 xskq_cons_read_desc_batch(struct xsk_queue *q,
+					    struct xdp_desc *descs,
+					    struct xsk_buff_pool *pool, u32 max)
 {
 	u32 cached_cons = q->cached_cons, nb_entries = 0;
-	struct xdp_desc *descs = pool->tx_descs;
 
 	while (cached_cons != q->cached_prod && nb_entries < max) {
 		struct xdp_rxtx_ring *ring = (struct xdp_rxtx_ring *)q->ring;
@@ -228,8 +223,6 @@
 		cached_cons++;
 	}
 
-	/* Release valid plus any invalid entries */
-	xskq_cons_release_n(q, cached_cons - q->cached_cons);
 	return nb_entries;
 }
 
@@ -286,6 +279,14 @@
 	return xskq_cons_read_desc(q, desc, pool);
 }
 
+static inline u32 xskq_cons_peek_desc_batch(struct xsk_queue *q, struct xdp_desc *descs,
+					    struct xsk_buff_pool *pool, u32 max)
+{
+	u32 entries = xskq_cons_nb_entries(q, max);
+
+	return xskq_cons_read_desc_batch(q, descs, pool, entries);
+}
+
 /* To improve performance in the xskq_cons_release functions, only update local state here.
  * Reflect this to global state when we get new entries from the ring in
  * xskq_cons_get_entries() and whenever Rx or Tx processing are completed in the NAPI loop.
@@ -295,6 +296,11 @@
 	q->cached_cons++;
 }
 
+static inline void xskq_cons_release_n(struct xsk_queue *q, u32 cnt)
+{
+	q->cached_cons += cnt;
+}
+
 static inline bool xskq_cons_is_full(struct xsk_queue *q)
 {
 	/* No barriers needed since data is not accessed */
@@ -356,17 +362,21 @@
 	return 0;
 }
 
-static inline void xskq_prod_write_addr_batch(struct xsk_queue *q, struct xdp_desc *descs,
-					      u32 nb_entries)
+static inline u32 xskq_prod_reserve_addr_batch(struct xsk_queue *q, struct xdp_desc *descs,
+					       u32 max)
 {
 	struct xdp_umem_ring *ring = (struct xdp_umem_ring *)q->ring;
-	u32 i, cached_prod;
+	u32 nb_entries, i, cached_prod;
+
+	nb_entries = xskq_prod_nb_free(q, max);
 
 	/* A, matches D */
 	cached_prod = q->cached_prod;
 	for (i = 0; i < nb_entries; i++)
 		ring->desc[cached_prod++ & q->ring_mask] = descs[i].addr;
 	q->cached_prod = cached_prod;
+
+	return nb_entries;
 }
 
 static inline int xskq_prod_reserve_desc(struct xsk_queue *q,
diff --git a/net/xfrm/xfrm_algo.c b/net/xfrm/xfrm_algo.c
index 4dae3ab..2e80e38b 100644
--- a/net/xfrm/xfrm_algo.c
+++ b/net/xfrm/xfrm_algo.c
@@ -237,7 +237,7 @@
 
 	.uinfo = {
 		.auth = {
-			.icv_truncbits = 96,
+			.icv_truncbits = IS_ENABLED(CONFIG_ANDROID) ? 128 : 96,
 			.icv_fullbits = 256,
 		}
 	},
diff --git a/net/xfrm/xfrm_interface_core.c b/net/xfrm/xfrm_interface_core.c
index ded752e..b610dfd 100644
--- a/net/xfrm/xfrm_interface_core.c
+++ b/net/xfrm/xfrm_interface_core.c
@@ -207,52 +207,6 @@
 	skb->mark = 0;
 }
 
-static int xfrmi_input(struct sk_buff *skb, int nexthdr, __be32 spi,
-		       int encap_type, unsigned short family)
-{
-	struct sec_path *sp;
-
-	sp = skb_sec_path(skb);
-	if (sp && (sp->len || sp->olen) &&
-	    !xfrm_policy_check(NULL, XFRM_POLICY_IN, skb, family))
-		goto discard;
-
-	XFRM_SPI_SKB_CB(skb)->family = family;
-	if (family == AF_INET) {
-		XFRM_SPI_SKB_CB(skb)->daddroff = offsetof(struct iphdr, daddr);
-		XFRM_TUNNEL_SKB_CB(skb)->tunnel.ip4 = NULL;
-	} else {
-		XFRM_SPI_SKB_CB(skb)->daddroff = offsetof(struct ipv6hdr, daddr);
-		XFRM_TUNNEL_SKB_CB(skb)->tunnel.ip6 = NULL;
-	}
-
-	return xfrm_input(skb, nexthdr, spi, encap_type);
-discard:
-	kfree_skb(skb);
-	return 0;
-}
-
-static int xfrmi4_rcv(struct sk_buff *skb)
-{
-	return xfrmi_input(skb, ip_hdr(skb)->protocol, 0, 0, AF_INET);
-}
-
-static int xfrmi6_rcv(struct sk_buff *skb)
-{
-	return xfrmi_input(skb, skb_network_header(skb)[IP6CB(skb)->nhoff],
-			   0, 0, AF_INET6);
-}
-
-static int xfrmi4_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type)
-{
-	return xfrmi_input(skb, nexthdr, spi, encap_type, AF_INET);
-}
-
-static int xfrmi6_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type)
-{
-	return xfrmi_input(skb, nexthdr, spi, encap_type, AF_INET6);
-}
-
 static int xfrmi_rcv_cb(struct sk_buff *skb, int err)
 {
 	const struct xfrm_mode *inner_mode;
@@ -820,8 +774,8 @@
 };
 
 static struct xfrm6_protocol xfrmi_esp6_protocol __read_mostly = {
-	.handler	=	xfrmi6_rcv,
-	.input_handler	=	xfrmi6_input,
+	.handler	=	xfrm6_rcv,
+	.input_handler	=	xfrm_input,
 	.cb_handler	=	xfrmi_rcv_cb,
 	.err_handler	=	xfrmi6_err,
 	.priority	=	10,
@@ -871,8 +825,8 @@
 #endif
 
 static struct xfrm4_protocol xfrmi_esp4_protocol __read_mostly = {
-	.handler	=	xfrmi4_rcv,
-	.input_handler	=	xfrmi4_input,
+	.handler	=	xfrm4_rcv,
+	.input_handler	=	xfrm_input,
 	.cb_handler	=	xfrmi_rcv_cb,
 	.err_handler	=	xfrmi4_err,
 	.priority	=	10,
diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c
index 4dc4a7b..e46afab 100644
--- a/net/xfrm/xfrm_output.c
+++ b/net/xfrm/xfrm_output.c
@@ -273,6 +273,7 @@
  */
 static int xfrm4_tunnel_encap_add(struct xfrm_state *x, struct sk_buff *skb)
 {
+	bool small_ipv6 = (skb->protocol == htons(ETH_P_IPV6)) && (skb->len <= IPV6_MIN_MTU);
 	struct dst_entry *dst = skb_dst(skb);
 	struct iphdr *top_iph;
 	int flags;
@@ -303,7 +304,7 @@
 	if (flags & XFRM_STATE_NOECN)
 		IP_ECN_clear(top_iph);
 
-	top_iph->frag_off = (flags & XFRM_STATE_NOPMTUDISC) ?
+	top_iph->frag_off = (flags & XFRM_STATE_NOPMTUDISC) || small_ipv6 ?
 		0 : (XFRM_MODE_SKB_CB(skb)->frag_off & htons(IP_DF));
 
 	top_iph->ttl = ip4_dst_hoplimit(xfrm_dst_child(dst));
@@ -479,13 +480,11 @@
 	return -EOPNOTSUPP;
 }
 
-#if IS_ENABLED(CONFIG_NET_PKTGEN)
 int pktgen_xfrm_outer_mode_output(struct xfrm_state *x, struct sk_buff *skb)
 {
 	return xfrm_outer_mode_output(x, skb);
 }
 EXPORT_SYMBOL_GPL(pktgen_xfrm_outer_mode_output);
-#endif
 
 static int xfrm_output_one(struct sk_buff *skb, int err)
 {
@@ -580,22 +579,22 @@
 	return err;
 }
 
-int xfrm_output_resume(struct sock *sk, struct sk_buff *skb, int err)
+int xfrm_output_resume(struct sk_buff *skb, int err)
 {
 	struct net *net = xs_net(skb_dst(skb)->xfrm);
 
 	while (likely((err = xfrm_output_one(skb, err)) == 0)) {
 		nf_reset_ct(skb);
 
-		err = skb_dst(skb)->ops->local_out(net, sk, skb);
+		err = skb_dst(skb)->ops->local_out(net, skb->sk, skb);
 		if (unlikely(err != 1))
 			goto out;
 
 		if (!skb_dst(skb)->xfrm)
-			return dst_output(net, sk, skb);
+			return dst_output(net, skb->sk, skb);
 
 		err = nf_hook(skb_dst(skb)->ops->family,
-			      NF_INET_POST_ROUTING, net, sk, skb,
+			      NF_INET_POST_ROUTING, net, skb->sk, skb,
 			      NULL, skb_dst(skb)->dev, xfrm_output2);
 		if (unlikely(err != 1))
 			goto out;
@@ -611,7 +610,7 @@
 
 static int xfrm_output2(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
-	return xfrm_output_resume(sk, skb, 1);
+	return xfrm_output_resume(skb, 1);
 }
 
 static int xfrm_output_gso(struct net *net, struct sock *sk, struct sk_buff *skb)
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index 60f3ea5..ffee62e 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -2441,19 +2441,22 @@
 	if (IS_ERR(data))
 		return PTR_ERR(data);
 
-	if (in_compat_syscall()) {
-		struct xfrm_translator *xtr = xfrm_get_translator();
+	/* Use the 64-bit / untranslated format on Android, even for compat */
+	if (!IS_ENABLED(CONFIG_ANDROID) || IS_ENABLED(CONFIG_XFRM_USER_COMPAT)) {
+		if (in_compat_syscall()) {
+			struct xfrm_translator *xtr = xfrm_get_translator();
 
-		if (!xtr) {
-			kfree(data);
-			return -EOPNOTSUPP;
-		}
+			if (!xtr) {
+				kfree(data);
+				return -EOPNOTSUPP;
+			}
 
-		err = xtr->xlate_user_policy_sockptr(&data, optlen);
-		xfrm_put_translator(xtr);
-		if (err) {
-			kfree(data);
-			return err;
+			err = xtr->xlate_user_policy_sockptr(&data, optlen);
+			xfrm_put_translator(xtr);
+			if (err) {
+				kfree(data);
+				return err;
+			}
 		}
 	}
 
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
index ff56b6a..a242146 100644
--- a/net/xfrm/xfrm_user.c
+++ b/net/xfrm/xfrm_user.c
@@ -2922,19 +2922,22 @@
 	if (!netlink_net_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
-	if (in_compat_syscall()) {
-		struct xfrm_translator *xtr = xfrm_get_translator();
+	/* Use the 64-bit / untranslated format on Android, even for compat */
+	if (!IS_ENABLED(CONFIG_ANDROID) || IS_ENABLED(CONFIG_XFRM_USER_COMPAT)) {
+		if (in_compat_syscall()) {
+			struct xfrm_translator *xtr = xfrm_get_translator();
 
-		if (!xtr)
-			return -EOPNOTSUPP;
+			if (!xtr)
+				return -EOPNOTSUPP;
 
-		nlh64 = xtr->rcv_msg_compat(nlh, link->nla_max,
-					    link->nla_pol, extack);
-		xfrm_put_translator(xtr);
-		if (IS_ERR(nlh64))
-			return PTR_ERR(nlh64);
-		if (nlh64)
-			nlh = nlh64;
+			nlh64 = xtr->rcv_msg_compat(nlh, link->nla_max,
+						    link->nla_pol, extack);
+			xfrm_put_translator(xtr);
+			if (IS_ERR(nlh64))
+				return PTR_ERR(nlh64);
+			if (nlh64)
+				nlh = nlh64;
+		}
 	}
 
 	if ((type == (XFRM_MSG_GETSA - XFRM_MSG_BASE) ||
diff --git a/samples/crypto/fips140_lab_util.c b/samples/crypto/fips140_lab_util.c
new file mode 100644
index 0000000..5f8e901
--- /dev/null
+++ b/samples/crypto/fips140_lab_util.c
@@ -0,0 +1,638 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright 2021 Google LLC
+ *
+ * This program provides commands that dump certain types of output from the
+ * fips140 kernel module, as required by the FIPS lab for evaluation purposes.
+ *
+ * While the fips140 kernel module can only be accessed directly by other kernel
+ * code, an easy-to-use userspace utility program was desired for lab testing.
+ * When possible, this program uses AF_ALG to access the crypto algorithms; this
+ * requires that the kernel has AF_ALG enabled.  Where AF_ALG isn't sufficient,
+ * a custom device node /dev/fips140 is used instead; this requires that the
+ * fips140 module is loaded and has evaluation testing support compiled in.
+ *
+ * This program can be compiled and run on an Android device as follows:
+ *
+ *	NDK_DIR=$HOME/android-ndk-r23b  # adjust directory path as needed
+ *	$NDK_DIR/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android31-clang \
+ *		fips140_lab_util.c -O2 -Wall -o fips140_lab_util
+ *	adb push fips140_lab_util /data/local/tmp/
+ *	adb root
+ *	adb shell /data/local/tmp/fips140_lab_util
+ */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <getopt.h>
+#include <limits.h>
+#include <linux/if_alg.h>
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/ioctl.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/sysmacros.h>
+#include <unistd.h>
+
+#include "../../crypto/fips140-eval-testing-uapi.h"
+
+/* ---------------------------------------------------------------------------
+ *			       Utility functions
+ * ---------------------------------------------------------------------------*/
+
+#define ARRAY_SIZE(A)	(sizeof(A) / sizeof((A)[0]))
+#define MIN(a, b)	((a) < (b) ? (a) : (b))
+#define MAX(a, b)	((a) > (b) ? (a) : (b))
+
+static void __attribute__((noreturn))
+do_die(const char *format, va_list va, int err)
+{
+	fputs("ERROR: ", stderr);
+	vfprintf(stderr, format, va);
+	if (err)
+		fprintf(stderr, ": %s", strerror(err));
+	putc('\n', stderr);
+	exit(1);
+}
+
+static void __attribute__((noreturn, format(printf, 1, 2)))
+die_errno(const char *format, ...)
+{
+	va_list va;
+
+	va_start(va, format);
+	do_die(format, va, errno);
+	va_end(va);
+}
+
+static void __attribute__((noreturn, format(printf, 1, 2)))
+die(const char *format, ...)
+{
+	va_list va;
+
+	va_start(va, format);
+	do_die(format, va, 0);
+	va_end(va);
+}
+
+static void __attribute__((noreturn))
+assertion_failed(const char *expr, const char *file, int line)
+{
+	die("Assertion failed: %s at %s:%d", expr, file, line);
+}
+
+#define ASSERT(e) ({ if (!(e)) assertion_failed(#e, __FILE__, __LINE__); })
+
+static void rand_bytes(uint8_t *bytes, size_t count)
+{
+	size_t i;
+
+	for (i = 0; i < count; i++)
+		bytes[i] = rand();
+}
+
+static const char *booltostr(bool b)
+{
+	return b ? "true" : "false";
+}
+
+static const char *bytes_to_hex(const uint8_t *bytes, size_t count)
+{
+	static char hex[1025];
+	size_t i;
+
+	ASSERT(count <= 512);
+	for (i = 0; i < count; i++)
+		sprintf(&hex[2*i], "%02x", bytes[i]);
+	return hex;
+}
+
+static void full_write(int fd, const void *buf, size_t count)
+{
+	while (count) {
+		ssize_t ret = write(fd, buf, count);
+
+		if (ret < 0)
+			die_errno("write failed");
+		buf += ret;
+		count -= ret;
+	}
+}
+
+enum {
+	OPT_AMOUNT,
+	OPT_ITERATIONS,
+};
+
+static void usage(void);
+
+/* ---------------------------------------------------------------------------
+ *			      /dev/fips140 ioctls
+ * ---------------------------------------------------------------------------*/
+
+static int get_fips140_device_number(void)
+{
+	FILE *f;
+	char line[128];
+	int number;
+	char name[32];
+
+	f = fopen("/proc/devices", "r");
+	if (!f)
+		die_errno("Failed to open /proc/devices");
+	while (fgets(line, sizeof(line), f)) {
+		if (sscanf(line, "%d %31s", &number, name) == 2 &&
+		    strcmp(name, "fips140") == 0)
+			return number;
+	}
+	fclose(f);
+	die("fips140 device node is unavailable.\n"
+"The fips140 device node is only available when the fips140 module is loaded\n"
+"and has been built with evaluation testing support.");
+}
+
+static void create_fips140_node_if_needed(void)
+{
+	struct stat stbuf;
+	int major;
+
+	if (stat("/dev/fips140", &stbuf) == 0)
+		return;
+
+	major = get_fips140_device_number();
+	if (mknod("/dev/fips140", S_IFCHR | 0600, makedev(major, 1)) != 0)
+		die_errno("Failed to create fips140 device node");
+}
+
+static int fips140_dev_fd = -1;
+
+static int fips140_ioctl(int cmd, const void *arg)
+{
+	if (fips140_dev_fd < 0) {
+		create_fips140_node_if_needed();
+		fips140_dev_fd = open("/dev/fips140", O_RDONLY);
+		if (fips140_dev_fd < 0)
+			die_errno("Failed to open /dev/fips140");
+	}
+	return ioctl(fips140_dev_fd, cmd, arg);
+}
+
+static bool fips140_is_approved_service(const char *name)
+{
+	int ret = fips140_ioctl(FIPS140_IOCTL_IS_APPROVED_SERVICE, name);
+
+	if (ret < 0)
+		die_errno("FIPS140_IOCTL_IS_APPROVED_SERVICE unexpectedly failed");
+	if (ret == 1)
+		return true;
+	if (ret == 0)
+		return false;
+	die("FIPS140_IOCTL_IS_APPROVED_SERVICE returned unexpected value %d",
+	    ret);
+}
+
+static const char *fips140_module_version(void)
+{
+	static char buf[256];
+	int ret;
+
+	memset(buf, 0, sizeof(buf));
+	ret = fips140_ioctl(FIPS140_IOCTL_MODULE_VERSION, buf);
+	if (ret < 0)
+		die_errno("FIPS140_IOCTL_MODULE_VERSION unexpectedly failed");
+	if (ret != 0)
+		die("FIPS140_IOCTL_MODULE_VERSION returned unexpected value %d",
+		    ret);
+	return buf;
+}
+
+/* ---------------------------------------------------------------------------
+ *				AF_ALG utilities
+ * ---------------------------------------------------------------------------*/
+
+#define AF_ALG_MAX_RNG_REQUEST_SIZE	128
+
+static int get_alg_fd(const char *alg_type, const char *alg_name)
+{
+	struct sockaddr_alg addr = {};
+	int alg_fd;
+
+	alg_fd = socket(AF_ALG, SOCK_SEQPACKET, 0);
+	if (alg_fd < 0)
+		die("Failed to create AF_ALG socket.\n"
+"AF_ALG is only available when it has been enabled in the kernel.\n");
+
+	strncpy((char *)addr.salg_type, alg_type, sizeof(addr.salg_type) - 1);
+	strncpy((char *)addr.salg_name, alg_name, sizeof(addr.salg_name) - 1);
+
+	if (bind(alg_fd, (void *)&addr, sizeof(addr)) != 0)
+		die_errno("Failed to bind AF_ALG socket to %s %s",
+			  alg_type, alg_name);
+	return alg_fd;
+}
+
+static int get_req_fd(int alg_fd, const char *alg_name)
+{
+	int req_fd = accept(alg_fd, NULL, NULL);
+
+	if (req_fd < 0)
+		die_errno("Failed to get request file descriptor for %s",
+			  alg_name);
+	return req_fd;
+}
+
+/* ---------------------------------------------------------------------------
+ *			   dump_jitterentropy command
+ * ---------------------------------------------------------------------------*/
+
+static void dump_from_jent_fd(int fd, size_t count)
+{
+	uint8_t buf[AF_ALG_MAX_RNG_REQUEST_SIZE];
+
+	while (count) {
+		ssize_t ret;
+
+		memset(buf, 0, sizeof(buf));
+		ret = read(fd, buf, MIN(count, sizeof(buf)));
+		if (ret < 0)
+			die_errno("error reading from jitterentropy_rng");
+		full_write(STDOUT_FILENO, buf, ret);
+		count -= ret;
+	}
+}
+
+static int cmd_dump_jitterentropy(int argc, char *argv[])
+{
+	static const struct option longopts[] = {
+		{ "amount", required_argument, NULL, OPT_AMOUNT },
+		{ "iterations", required_argument, NULL, OPT_ITERATIONS },
+		{ NULL, 0, NULL, 0 },
+	};
+	size_t amount = 128;
+	size_t iterations = 1;
+	size_t i;
+	int c;
+
+	while ((c = getopt_long(argc, argv, "", longopts, NULL)) != -1) {
+		switch (c) {
+		case OPT_AMOUNT:
+			amount = strtoul(optarg, NULL, 0);
+			if (amount <= 0 || amount >= ULONG_MAX)
+				die("invalid argument to --amount");
+			break;
+		case OPT_ITERATIONS:
+			iterations = strtoul(optarg, NULL, 0);
+			if (iterations <= 0 || iterations >= ULONG_MAX)
+				die("invalid argument to --iterations");
+			break;
+		default:
+			usage();
+			return 1;
+		}
+	}
+
+	for (i = 0; i < iterations; i++) {
+		int alg_fd = get_alg_fd("rng", "jitterentropy_rng");
+		int req_fd = get_req_fd(alg_fd, "jitterentropy_rng");
+
+		dump_from_jent_fd(req_fd, amount);
+
+		close(req_fd);
+		close(alg_fd);
+	}
+	return 0;
+}
+
+/* ---------------------------------------------------------------------------
+ *			  show_invalid_inputs command
+ * ---------------------------------------------------------------------------*/
+
+enum direction {
+	UNSPECIFIED,
+	DECRYPT,
+	ENCRYPT,
+};
+
+static const struct invalid_input_test {
+	const char *alg_type;
+	const char *alg_name;
+	const char *key;
+	size_t key_size;
+	const char *msg;
+	size_t msg_size;
+	const char *iv;
+	size_t iv_size;
+	enum direction direction;
+	int setkey_error;
+	int crypt_error;
+} invalid_input_tests[] = {
+	{
+		.alg_type = "skcipher",
+		.alg_name = "cbc(aes)",
+		.key_size = 16,
+	}, {
+		.alg_type = "skcipher",
+		.alg_name = "cbc(aes)",
+		.key_size = 17,
+		.setkey_error = EINVAL,
+	}, {
+		.alg_type = "skcipher",
+		.alg_name = "cbc(aes)",
+		.key_size = 24,
+	}, {
+		.alg_type = "skcipher",
+		.alg_name = "cbc(aes)",
+		.key_size = 32,
+	}, {
+		.alg_type = "skcipher",
+		.alg_name = "cbc(aes)",
+		.key_size = 33,
+		.setkey_error = EINVAL,
+	}, {
+		.alg_type = "skcipher",
+		.alg_name = "cbc(aes)",
+		.key_size = 16,
+		.msg_size = 1,
+		.direction = DECRYPT,
+		.crypt_error = EINVAL,
+	}, {
+		.alg_type = "skcipher",
+		.alg_name = "cbc(aes)",
+		.key_size = 16,
+		.msg_size = 16,
+		.direction = ENCRYPT,
+	}, {
+		.alg_type = "skcipher",
+		.alg_name = "cbc(aes)",
+		.key_size = 16,
+		.msg_size = 17,
+		.direction = ENCRYPT,
+		.crypt_error = EINVAL,
+	}, {
+		.alg_type = "hash",
+		.alg_name = "cmac(aes)",
+		.key_size = 29,
+		.setkey_error = EINVAL,
+	}, {
+		.alg_type = "skcipher",
+		.alg_name = "xts(aes)",
+		.key_size = 32,
+	}, {
+		.alg_type = "skcipher",
+		.alg_name = "xts(aes)",
+		.key = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+		       "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",
+		.key_size = 32,
+		.setkey_error = EINVAL,
+	}
+};
+
+static const char *describe_crypt_op(const struct invalid_input_test *t)
+{
+	if (t->direction == ENCRYPT)
+		return "encryption";
+	if (t->direction == DECRYPT)
+		return "decryption";
+	if (strcmp(t->alg_type, "hash") == 0)
+		return "hashing";
+	ASSERT(0);
+}
+
+static bool af_alg_setkey(const struct invalid_input_test *t, int alg_fd)
+{
+	const uint8_t *key = (const uint8_t *)t->key;
+	uint8_t _key[t->key_size];
+
+	if (t->key_size == 0)
+		return true;
+
+	if (t->key == NULL) {
+		rand_bytes(_key, t->key_size);
+		key = _key;
+	}
+	if (setsockopt(alg_fd, SOL_ALG, ALG_SET_KEY, key, t->key_size) != 0) {
+		printf("%s: setting %zu-byte key failed with error '%s'\n",
+		       t->alg_name, t->key_size, strerror(errno));
+		printf("\tkey was %s\n\n", bytes_to_hex(key, t->key_size));
+		ASSERT(t->setkey_error == errno);
+		return false;
+	}
+	printf("%s: setting %zu-byte key succeeded\n",
+	       t->alg_name, t->key_size);
+	printf("\tkey was %s\n\n", bytes_to_hex(key, t->key_size));
+	ASSERT(t->setkey_error == 0);
+	return true;
+}
+
+static void af_alg_process_msg(const struct invalid_input_test *t, int alg_fd)
+{
+	struct iovec iov;
+	struct msghdr hdr = {
+		.msg_iov = &iov,
+		.msg_iovlen = 1,
+	};
+	const uint8_t *msg = (const uint8_t *)t->msg;
+	uint8_t *_msg = NULL;
+	uint8_t *output = NULL;
+	uint8_t *control = NULL;
+	size_t controllen = 0;
+	struct cmsghdr *cmsg;
+	int req_fd;
+
+	if (t->msg_size == 0)
+		return;
+
+	req_fd = get_req_fd(alg_fd, t->alg_name);
+
+	if (t->msg == NULL) {
+		_msg = malloc(t->msg_size);
+		rand_bytes(_msg, t->msg_size);
+		msg = _msg;
+	}
+	output = malloc(t->msg_size);
+	iov.iov_base = (void *)msg;
+	iov.iov_len = t->msg_size;
+
+	if (t->direction != UNSPECIFIED)
+		controllen += CMSG_SPACE(sizeof(uint32_t));
+	if (t->iv_size)
+		controllen += CMSG_SPACE(sizeof(struct af_alg_iv) + t->iv_size);
+	control = calloc(1, controllen);
+	hdr.msg_control = control;
+	hdr.msg_controllen = controllen;
+	cmsg = CMSG_FIRSTHDR(&hdr);
+	if (t->direction != UNSPECIFIED) {
+		cmsg->cmsg_level = SOL_ALG;
+		cmsg->cmsg_type = ALG_SET_OP;
+		cmsg->cmsg_len = CMSG_LEN(sizeof(uint32_t));
+		*(uint32_t *)CMSG_DATA(cmsg) = t->direction == DECRYPT ?
+				ALG_OP_DECRYPT : ALG_OP_ENCRYPT;
+		cmsg = CMSG_NXTHDR(&hdr, cmsg);
+	}
+	if (t->iv_size) {
+		struct af_alg_iv *alg_iv;
+
+		cmsg->cmsg_level = SOL_ALG;
+		cmsg->cmsg_type = ALG_SET_IV;
+		cmsg->cmsg_len = CMSG_LEN(sizeof(*alg_iv) + t->iv_size);
+		alg_iv = (struct af_alg_iv *)CMSG_DATA(cmsg);
+		alg_iv->ivlen = t->iv_size;
+		memcpy(alg_iv->iv, t->iv, t->iv_size);
+	}
+
+	if (sendmsg(req_fd, &hdr, 0) != t->msg_size)
+		die_errno("sendmsg failed");
+
+	if (read(req_fd, output, t->msg_size) != t->msg_size) {
+		printf("%s: %s of %zu-byte message failed with error '%s'\n",
+		       t->alg_name, describe_crypt_op(t), t->msg_size,
+		       strerror(errno));
+		printf("\tmessage was %s\n\n", bytes_to_hex(msg, t->msg_size));
+		ASSERT(t->crypt_error == errno);
+	} else {
+		printf("%s: %s of %zu-byte message succeeded\n",
+		       t->alg_name, describe_crypt_op(t), t->msg_size);
+		printf("\tmessage was %s\n\n", bytes_to_hex(msg, t->msg_size));
+		ASSERT(t->crypt_error == 0);
+	}
+	free(_msg);
+	free(output);
+	free(control);
+	close(req_fd);
+}
+
+static void test_invalid_input(const struct invalid_input_test *t)
+{
+	int alg_fd = get_alg_fd(t->alg_type, t->alg_name);
+
+	if (af_alg_setkey(t, alg_fd))
+		af_alg_process_msg(t, alg_fd);
+
+	close(alg_fd);
+}
+
+static int cmd_show_invalid_inputs(int argc, char *argv[])
+{
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(invalid_input_tests); i++)
+		test_invalid_input(&invalid_input_tests[i]);
+	return 0;
+}
+
+/* ---------------------------------------------------------------------------
+ *			  show_module_version command
+ * ---------------------------------------------------------------------------*/
+
+static int cmd_show_module_version(int argc, char *argv[])
+{
+	printf("fips140_module_version() => \"%s\"\n",
+	       fips140_module_version());
+	return 0;
+}
+
+/* ---------------------------------------------------------------------------
+ *			show_service_indicators command
+ * ---------------------------------------------------------------------------*/
+
+static const char * const default_services_to_show[] = {
+	"aes",
+	"cbc(aes)",
+	"cbcmac(aes)",
+	"cmac(aes)",
+	"ctr(aes)",
+	"cts(cbc(aes))",
+	"ecb(aes)",
+	"essiv(cbc(aes),sha256)",
+	"gcm(aes)",
+	"hmac(sha1)",
+	"hmac(sha224)",
+	"hmac(sha256)",
+	"hmac(sha384)",
+	"hmac(sha512)",
+	"jitterentropy_rng",
+	"sha1",
+	"sha224",
+	"sha256",
+	"sha384",
+	"sha512",
+	"stdrng",
+	"xcbc(aes)",
+	"xts(aes)",
+};
+
+static int cmd_show_service_indicators(int argc, char *argv[])
+{
+	const char * const *services = default_services_to_show;
+	int count = ARRAY_SIZE(default_services_to_show);
+	int i;
+
+	if (argc > 1) {
+		services = (const char **)(argv + 1);
+		count = argc - 1;
+	}
+	for (i = 0; i < count; i++) {
+		printf("fips140_is_approved_service(\"%s\") => %s\n",
+		       services[i],
+		       booltostr(fips140_is_approved_service(services[i])));
+	}
+	return 0;
+}
+
+/* ---------------------------------------------------------------------------
+ *				     main()
+ * ---------------------------------------------------------------------------*/
+
+static const struct command {
+	const char *name;
+	int (*func)(int argc, char *argv[]);
+} commands[] = {
+	{ "dump_jitterentropy", cmd_dump_jitterentropy },
+	{ "show_invalid_inputs", cmd_show_invalid_inputs },
+	{ "show_module_version", cmd_show_module_version },
+	{ "show_service_indicators", cmd_show_service_indicators },
+};
+
+static void usage(void)
+{
+	fprintf(stderr,
+"Usage:\n"
+"       fips140_lab_util dump_jitterentropy [OPTION]...\n"
+"       fips140_lab_util show_invalid_inputs\n"
+"       fips140_lab_util show_module_version\n"
+"       fips140_lab_util show_service_indicators [SERVICE]...\n"
+"\n"
+"Options for dump_jitterentropy:\n"
+"  --amount=AMOUNT      Amount to dump in bytes per iteration (default 128)\n"
+"  --iterations=COUNT   Number of start-up iterations (default 1)\n"
+	);
+}
+
+int main(int argc, char *argv[])
+{
+	int i;
+
+	if (argc < 2) {
+		usage();
+		return 2;
+	}
+	for (i = 1; i < argc; i++) {
+		if (strcmp(argv[i], "--help") == 0) {
+			usage();
+			return 2;
+		}
+	}
+
+	for (i = 0; i < ARRAY_SIZE(commands); i++) {
+		if (strcmp(commands[i].name, argv[1]) == 0)
+			return commands[i].func(argc - 1, argv + 1);
+	}
+	fprintf(stderr, "Unknown command: %s\n\n", argv[1]);
+	usage();
+	return 2;
+}
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index 17aa8ef..81c9138 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -86,7 +86,8 @@
 targets-for-builtin += $(obj)/built-in.a
 endif
 
-targets-for-modules := $(patsubst %.o, %.mod, $(filter %.o, $(obj-m)))
+targets-for-modules := $(foreach x, o mod $(if $(CONFIG_TRIM_UNUSED_KSYMS), usyms), \
+				$(patsubst %.o, %.$x, $(filter %.o, $(obj-m))))
 
 ifdef CONFIG_LTO_CLANG
 targets-for-modules += $(patsubst %.o, %.lto.o, $(filter %.o, $(obj-m)))
@@ -261,9 +262,6 @@
 ifdef CONFIG_TRIM_UNUSED_KSYMS
 cmd_gen_ksymdeps = \
 	$(CONFIG_SHELL) $(srctree)/scripts/gen_ksymdeps.sh $@ >> $(dot-target).cmd
-
-# List module undefined symbols
-undefined_syms = $(NM) $< | $(AWK) '$$1 == "U" { printf("%s%s", x++ ? " " : "", $$2) }';
 endif
 
 define rule_cc_o_c
@@ -310,14 +308,18 @@
 	$(call if_changed,cc_lto_link_modules)
 endif
 
-cmd_mod = { \
-	echo $(if $($*-objs)$($*-y)$($*-m), $(addprefix $(obj)/, $($*-objs) $($*-y) $($*-m)), $(@:.mod=.o)); \
-	$(undefined_syms) echo; \
-	} > $@
+cmd_mod = printf '%s\n' $(call real-search, $*.o, .o, -objs -y -m) | \
+	$(AWK) '!x[$$0]++ { print("$(obj)/"$$0) }' > $@
 
-$(obj)/%.mod: $(obj)/%$(mod-prelink-ext).o FORCE
+$(obj)/%.mod: FORCE
 	$(call if_changed,mod)
 
+# List module undefined symbols
+cmd_undefined_syms = $(NM) $< | sed -n 's/^  *U //p' > $@
+
+$(obj)/%.usyms: $(obj)/%$(mod-prelink-ext).o FORCE
+	$(call if_changed,undefined_syms)
+
 quiet_cmd_cc_lst_c = MKLST   $@
       cmd_cc_lst_c = $(CC) $(c_flags) -g -c -o $*.o $< && \
 		     $(CONFIG_SHELL) $(srctree)/scripts/makelst $*.o \
@@ -467,26 +469,21 @@
 $(obj)/lib.a: $(lib-y) FORCE
 	$(call if_changed,ar_lib)
 
-# NOTE:
-# Do not replace $(filter %.o,^) with $(real-prereqs). When a single object
-# module is turned into a multi object module, $^ will contain header file
-# dependencies recorded in the .*.cmd file.
 ifdef CONFIG_LTO_CLANG
 quiet_cmd_link_multi-m = AR [M]  $@
 cmd_link_multi-m =						\
 	$(cmd_update_lto_symversions);				\
 	rm -f $@; 						\
-	$(AR) cDPrsT $@ $(filter %.o,$^)
+	$(AR) cDPrsT $@ @$(patsubst %.o,%.mod,$@)
 else
 quiet_cmd_link_multi-m = LD [M]  $@
-      cmd_link_multi-m = $(LD) $(ld_flags) -r -o $@ $(filter %.o,$^)
+      cmd_link_multi-m = $(LD) $(ld_flags) -r -o $@ @$(patsubst %.o,%.mod,$@)
 endif
 
-$(multi-obj-m): FORCE
+$(multi-obj-m): %.o: %.mod FORCE
 	$(call if_changed,link_multi-m)
 $(call multi_depend, $(multi-obj-m), .o, -objs -y -m)
 
-targets += $(multi-obj-m)
 targets := $(filter-out $(PHONY), $(targets))
 
 # Add intermediate targets:
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 0a8a468..c0d1d8f 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -219,7 +219,9 @@
 
 ld_flags       = $(KBUILD_LDFLAGS) $(ldflags-y) $(LDFLAGS_$(@F))
 
-DTC_INCLUDE    := $(srctree)/scripts/dtc/include-prefixes
+# ANDROID: Allow DTC_INCLUDE to be set by the BUILD_CONFIG. This allows one to
+# compile an out-of-tree device tree.
+DTC_INCLUDE    += $(srctree)/scripts/dtc/include-prefixes
 
 dtc_cpp_flags  = -Wp,-MMD,$(depfile).pre.tmp -nostdinc                    \
 		 $(addprefix -I,$(DTC_INCLUDE))                          \
@@ -236,9 +238,9 @@
 # Usage:
 #   $(call multi_depend, multi_used_targets, suffix_to_remove, suffix_to_add)
 define multi_depend
-$(foreach m, $(notdir $1), \
-	$(eval $(obj)/$m: \
-	$(addprefix $(obj)/, $(foreach s, $3, $($(m:%$(strip $2)=%$(s)))))))
+$(foreach m, $1, \
+	$(eval $m: \
+	$(addprefix $(obj)/, $(call suffix-search, $(patsubst $(obj)/%,%,$m), $2, $3))))
 endef
 
 quiet_cmd_copy = COPY    $@
@@ -396,19 +398,31 @@
 )
 
 quiet_cmd_bzip2 = BZIP2   $@
-      cmd_bzip2 = { cat $(real-prereqs) | $(KBZIP2) -9; $(size_append); } > $@
+      cmd_bzip2 = cat $(real-prereqs) | $(KBZIP2) -9 > $@
+
+quiet_cmd_bzip2_with_size = BZIP2   $@
+      cmd_bzip2_with_size = { cat $(real-prereqs) | $(KBZIP2) -9; $(size_append); } > $@
 
 # Lzma
 # ---------------------------------------------------------------------------
 
 quiet_cmd_lzma = LZMA    $@
-      cmd_lzma = { cat $(real-prereqs) | $(LZMA) -9; $(size_append); } > $@
+      cmd_lzma = cat $(real-prereqs) | $(LZMA) -9 > $@
+
+quiet_cmd_lzma_with_size = LZMA    $@
+      cmd_lzma_with_size = { cat $(real-prereqs) | $(LZMA) -9; $(size_append); } > $@
 
 quiet_cmd_lzo = LZO     $@
-      cmd_lzo = { cat $(real-prereqs) | $(KLZOP) -9; $(size_append); } > $@
+      cmd_lzo = cat $(real-prereqs) | $(KLZOP) -9 > $@
+
+quiet_cmd_lzo_with_size = LZO     $@
+      cmd_lzo_with_size = { cat $(real-prereqs) | $(KLZOP) -9; $(size_append); } > $@
 
 quiet_cmd_lz4 = LZ4     $@
-      cmd_lz4 = { cat $(real-prereqs) | $(LZ4) -l -c1 stdin stdout; \
+      cmd_lz4 = cat $(real-prereqs) | $(LZ4) -l -12 --favor-decSpeed stdin stdout > $@
+
+quiet_cmd_lz4_with_size = LZ4     $@
+      cmd_lz4_with_size = { cat $(real-prereqs) | $(LZ4) -l -12 --favor-decSpeed stdin stdout; \
                   $(size_append); } > $@
 
 # U-Boot mkimage
@@ -451,7 +465,10 @@
 # big dictionary would increase the memory usage too much in the multi-call
 # decompression mode. A BCJ filter isn't used either.
 quiet_cmd_xzkern = XZKERN  $@
-      cmd_xzkern = { cat $(real-prereqs) | sh $(srctree)/scripts/xz_wrap.sh; \
+      cmd_xzkern = cat $(real-prereqs) | sh $(srctree)/scripts/xz_wrap.sh > $@
+
+quiet_cmd_xzkern_with_size = XZKERN  $@
+      cmd_xzkern_with_size = { cat $(real-prereqs) | sh $(srctree)/scripts/xz_wrap.sh; \
                      $(size_append); } > $@
 
 quiet_cmd_xzmisc = XZMISC  $@
@@ -477,7 +494,10 @@
       cmd_zstd = { cat $(real-prereqs) | $(ZSTD) -19; $(size_append); } > $@
 
 quiet_cmd_zstd22 = ZSTD22  $@
-      cmd_zstd22 = { cat $(real-prereqs) | $(ZSTD) -22 --ultra; $(size_append); } > $@
+      cmd_zstd22 = cat $(real-prereqs) | $(ZSTD) -22 --ultra > $@
+
+quiet_cmd_zstd22_with_size = ZSTD22  $@
+      cmd_zstd22_with_size = { cat $(real-prereqs) | $(ZSTD) -22 --ultra; $(size_append); } > $@
 
 # ASM offsets
 # ---------------------------------------------------------------------------
diff --git a/scripts/Makefile.modfinal b/scripts/Makefile.modfinal
index 47f0474..0e3f22f 100644
--- a/scripts/Makefile.modfinal
+++ b/scripts/Makefile.modfinal
@@ -12,6 +12,8 @@
 # for c_flags and mod-prelink-ext
 include $(srctree)/scripts/Makefile.lib
 
+mixed-build-prefix = $(if $(KBUILD_MIXED_TREE),$(KBUILD_MIXED_TREE)/)
+
 # find all modules listed in modules.order
 modules := $(sort $(shell cat $(MODORDER)))
 
@@ -39,10 +41,10 @@
 
 quiet_cmd_btf_ko = BTF [M] $@
       cmd_btf_ko = 							\
-	if [ -f vmlinux ]; then						\
-		LLVM_OBJCOPY="$(OBJCOPY)" $(PAHOLE) -J $(PAHOLE_FLAGS) --btf_base vmlinux $@; \
+	if [ -f $(mixed-build-prefix)vmlinux ]; then						\
+		LLVM_OBJCOPY="$(OBJCOPY)" $(PAHOLE) -J $(PAHOLE_FLAGS) --btf_base $(mixed-build-prefix)vmlinux $@; \
 	else								\
-		printf "Skipping BTF generation for %s due to unavailability of vmlinux\n" $@ 1>&2; \
+		printf "Skipping BTF generation for %s due to unavailability of $(mixed-build-prefix)vmlinux\n" $@ 1>&2; \
 	fi;
 
 # Same as newer-prereqs, but allows to exclude specified extra dependencies
@@ -55,8 +57,8 @@
 
 
 # Re-generate module BTFs if either module's .ko or vmlinux changed
-$(modules): %.ko: %$(mod-prelink-ext).o %.mod.o scripts/module.lds $(if $(KBUILD_BUILTIN),vmlinux) FORCE
-	+$(call if_changed_except,ld_ko_o,vmlinux)
+$(modules): %.ko: %$(mod-prelink-ext).o %.mod.o scripts/module.lds $(if $(KBUILD_BUILTIN),$(mixed-build-prefix)vmlinux) FORCE
+	+$(call if_changed_except,ld_ko_o,$(mixed-build-prefix)vmlinux)
 ifdef CONFIG_DEBUG_INFO_BTF_MODULES
 	+$(if $(newer-prereqs),$(call cmd,btf_ko))
 endif
diff --git a/scripts/Makefile.modinst b/scripts/Makefile.modinst
index ff9b09e..3cf7718 100644
--- a/scripts/Makefile.modinst
+++ b/scripts/Makefile.modinst
@@ -24,6 +24,10 @@
 suffix-$(CONFIG_MODULE_COMPRESS_ZSTD)	:= .zst
 
 modules := $(patsubst $(extmod_prefix)%, $(dst)/%$(suffix-y), $(modules))
+ifneq ($(KBUILD_EXTMOD),)
+extmod_suffix := $(shell echo "${KBUILD_EXTMOD}" | md5sum | cut -d " " -f 1)
+modules += $(dst)/modules.order.$(extmod_suffix)
+endif
 
 __modinst: $(modules)
 	@:
@@ -82,6 +86,12 @@
 	$(call cmd,strip)
 	$(call cmd,sign)
 
+ifneq ($(KBUILD_EXTMOD),)
+$(dst)/modules.order.$(extmod_suffix): $(MODORDER) FORCE
+	$(call cmd,install)
+	@sed -i "s:^$(KBUILD_EXTMOD):$(INSTALL_MOD_DIR):g" $@
+endif
+
 else
 
 $(dst)/%.ko: FORCE
diff --git a/scripts/Makefile.modpost b/scripts/Makefile.modpost
index 0273bf7..9262448 100644
--- a/scripts/Makefile.modpost
+++ b/scripts/Makefile.modpost
@@ -44,6 +44,8 @@
 # for mod-prelink-ext
 include $(srctree)/scripts/Makefile.lib
 
+mixed-build-prefix = $(if $(KBUILD_MIXED_TREE),$(KBUILD_MIXED_TREE)/)
+
 MODPOST = scripts/mod/modpost								\
 	$(if $(CONFIG_MODVERSIONS),-m)							\
 	$(if $(CONFIG_MODULE_SRCVERSION_ALL),-a)					\
@@ -64,16 +66,17 @@
 
 ifeq ($(KBUILD_EXTMOD),)
 
-input-symdump := vmlinux.symvers
+input-symdump := $(mixed-build-prefix)vmlinux.symvers
 output-symdump := modules-only.symvers
+module_srcpath := $(srctree)
 
 quiet_cmd_cat = GEN     $@
       cmd_cat = cat $(real-prereqs) > $@
 
-ifneq ($(wildcard vmlinux.symvers),)
+ifneq ($(wildcard $(mixed-build-prefix)vmlinux.symvers),)
 
 __modpost: Module.symvers
-Module.symvers: vmlinux.symvers modules-only.symvers FORCE
+Module.symvers: $(mixed-build-prefix)vmlinux.symvers modules-only.symvers FORCE
 	$(call if_changed,cat)
 
 targets += Module.symvers
@@ -95,6 +98,27 @@
 input-symdump := Module.symvers $(KBUILD_EXTRA_SYMBOLS)
 output-symdump := $(KBUILD_EXTMOD)/Module.symvers
 
+# Get the external module's source path. KBUILD_EXTMOD could either be an
+# absolute path or relative path from $(srctree). This makes sure that we
+# aren't using a relative path from a separate working directory (O= or
+# KBUILD_OUTPUT) since that may not be the actual module's SCM project path. So
+# check the path relative to $(srctree) first.
+ifneq ($(realpath $(srctree)/$(KBUILD_EXTMOD) 2>/dev/null),)
+	module_srcpath := $(srctree)/$(KBUILD_EXTMOD)
+else
+	module_srcpath := $(KBUILD_EXTMOD)
+endif
+
+endif
+
+ifeq ($(CONFIG_MODULE_SCMVERSION),y)
+# Get the SCM version of the module. `sed` verifies setlocalversion returns
+# a proper revision based on the SCM type, e.g. git, mercurial, or svn.
+module_scmversion := $(shell $(srctree)/scripts/setlocalversion $(module_srcpath) | \
+	sed -n 's/.*-\(\(g\|hg\)[a-fA-F0-9]\+\(-dirty\)\?\|svn[0-9]\+\).*/\1/p')
+ifneq ($(module_scmversion),)
+MODPOST += -v $(module_scmversion)
+endif
 endif
 
 existing-input-symdump := $(wildcard $(input-symdump))
diff --git a/scripts/adjust_autoksyms.sh b/scripts/adjust_autoksyms.sh
index 59fdb87..f1b5ac818 100755
--- a/scripts/adjust_autoksyms.sh
+++ b/scripts/adjust_autoksyms.sh
@@ -35,7 +35,7 @@
 esac
 
 # Generate a new symbol list file
-$CONFIG_SHELL $srctree/scripts/gen_autoksyms.sh "$new_ksyms_file"
+$CONFIG_SHELL $srctree/scripts/gen_autoksyms.sh --modorder "$new_ksyms_file"
 
 # Extract changes between old and new list and touch corresponding
 # dependency files.
diff --git a/scripts/clang-tools/gen_compile_commands.py b/scripts/clang-tools/gen_compile_commands.py
index 1d1bde1..47da25b 100755
--- a/scripts/clang-tools/gen_compile_commands.py
+++ b/scripts/clang-tools/gen_compile_commands.py
@@ -157,10 +157,10 @@
             if ext != '.ko':
                 sys.exit('{}: module path must end with .ko'.format(ko))
             mod = base + '.mod'
-	    # The first line of *.mod lists the objects that compose the module.
+            # Read from *.mod, to get a list of objects that compose the module.
             with open(mod) as m:
-                for obj in m.readline().split():
-                    yield to_cmdfile(obj)
+                for mod_line in m:
+                    yield to_cmdfile(mod_line.rstrip())
 
 
 def process_line(root_directory, command_prefix, file_path):
diff --git a/scripts/depmod.sh b/scripts/depmod.sh
index 3643b4f..2de598d 100755
--- a/scripts/depmod.sh
+++ b/scripts/depmod.sh
@@ -3,14 +3,15 @@
 #
 # A depmod wrapper used by the toplevel Makefile
 
-if test $# -ne 2; then
-	echo "Usage: $0 /sbin/depmod <kernelrelease>" >&2
+if test $# -ne 2 -a $# -ne 3; then
+	echo "Usage: $0 /sbin/depmod <kernelrelease> [System.map folder]" >&2
 	exit 1
 fi
 DEPMOD=$1
 KERNELRELEASE=$2
+KBUILD_MIXED_TREE=$3
 
-if ! test -r System.map ; then
+if ! test -r ${KBUILD_MIXED_TREE}System.map ; then
 	echo "Warning: modules_install: missing 'System.map' file. Skipping depmod." >&2
 	exit 0
 fi
@@ -41,7 +42,7 @@
 	KERNELRELEASE=99.98.$KERNELRELEASE
 fi
 
-set -- -ae -F System.map
+set -- -ae -F ${KBUILD_MIXED_TREE}System.map
 if test -n "$INSTALL_MOD_PATH"; then
 	set -- "$@" -b "$INSTALL_MOD_PATH"
 fi
diff --git a/scripts/driver-dependencies.sh b/scripts/driver-dependencies.sh
new file mode 100755
index 0000000..d4bd312
--- /dev/null
+++ b/scripts/driver-dependencies.sh
@@ -0,0 +1,127 @@
+#! /bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (c) 2022, Google LLC. All rights reserved.
+# Author: Isaac J. Manjarres <isaacmanjarres@google.com>
+
+DIR="$(dirname $(readlink -f $0))"
+DEV_NEEDS_HOST_PATH="${DIR}/dev-needs.sh"
+
+DEV_TMP_DIR="/data/local/tmp"
+DEV_NEEDS_DEV_PATH="${DEV_TMP_DIR}/$(basename ${DEV_NEEDS_HOST_PATH})"
+
+REVERSE_DRIVER_DEP_LIST=0
+WANT_MOD_LOAD_ORDER=0
+
+TSORTED_DEV_LIST=
+OUTPUT_LIST=
+
+prepare_device() {
+	adb wait-for-device root >/dev/null
+	if [ $? -ne 0 ]; then
+		echo "Failed to root device"
+		return 1
+	fi
+
+	adb push "${DEV_NEEDS_HOST_PATH}" "${DEV_TMP_DIR}/" >/dev/null
+	if [ $? -ne 0 ]; then
+		echo "Failed to push the dev-needs.sh script to the device"
+		return 1
+	fi
+
+	return 0
+}
+
+cleanup_device() {
+	adb shell "rm ${DEV_NEEDS_DEV_PATH}"
+}
+
+remove_duplicate_list_entries () {
+	local list_entries="${1}"
+	local tmp_list_file=$(mktemp)
+
+	echo -n "${list_entries}" > "${tmp_list_file}"
+
+	# Remove duplicates--except for the first occurrence--while keeping
+	# the list in the same order
+	OUTPUT_LIST=$(cat -n "${tmp_list_file}" | sort -uk2 | sort -n | cut -f2-)
+	rm "${tmp_list_file}"
+}
+
+get_dev_compat() {
+	local dev=$1
+	local compat_str=$(adb shell "cat '$dev'/of_node/compatible 2>/dev/null" | tr -d '\0')
+
+	if [ -n "${compat_str}" ]; then
+		OUTPUT_LIST+="${compat_str}"$'\n'
+	fi
+}
+
+devs_to_compat_list() {
+	local dev_list="${1}"
+
+	for dev in ${dev_list[@]}; do
+		get_dev_compat "${dev}"
+	done
+}
+
+get_dev_module_name() {
+	local dev=$1
+	local module_path=$(adb shell "realpath '$dev'/driver/module 2>/dev/null")
+
+	if [ -n "${module_path}" ]; then
+		OUTPUT_LIST+=$(basename "${module_path}")$'\n'
+	fi
+}
+
+devs_to_module_list() {
+	local dev_list="${1}"
+
+	for dev in ${dev_list[@]}; do
+		get_dev_module_name "${dev}"
+	done
+}
+
+get_tsorted_dev_list() {
+	local tsort_edges
+
+	tsort_edges=$(adb shell ''${DEV_NEEDS_DEV_PATH}' -t\
+		$(find /sys/devices -name driver | sed -e "s/\/driver//")')
+	TSORTED_DEV_LIST=$(echo "${tsort_edges}" | tsort | sed -e "s/\"//g")
+}
+
+while getopts "s:rl" f; do
+	case "$f" in
+	s) export ANDROID_SERIAL="${OPTARG}" ;;
+	r) REVERSE_DRIVER_DEP_LIST=1 ;;
+	l) WANT_MOD_LOAD_ORDER=1 ;;
+	esac
+done
+
+if [ $REVERSE_DRIVER_DEP_LIST = 1 ] && [ $WANT_MOD_LOAD_ORDER = 1 ]; then
+	exit 1
+elif [ ! -f "${DEV_NEEDS_HOST_PATH}" ]; then
+	echo "Kernel does not contain the required dev-needs.sh script"
+	exit 1
+fi
+
+if ! prepare_device; then
+	exit 1
+fi
+
+get_tsorted_dev_list
+
+if [ $WANT_MOD_LOAD_ORDER = 1 ]; then
+	devs_to_module_list "${TSORTED_DEV_LIST}"
+else
+	devs_to_compat_list "${TSORTED_DEV_LIST}"
+fi
+
+remove_duplicate_list_entries "${OUTPUT_LIST}"
+
+if [ $REVERSE_DRIVER_DEP_LIST = 1 ]; then
+	echo "${OUTPUT_LIST}" | tac
+else
+	echo "${OUTPUT_LIST}"
+fi
+
+cleanup_device
diff --git a/scripts/extract-cert.c b/scripts/extract-cert.c
index 79ecbbf..71b2980 100644
--- a/scripts/extract-cert.c
+++ b/scripts/extract-cert.c
@@ -56,6 +56,7 @@
 	}
 }
 
+#ifndef OPENSSL_IS_BORINGSSL
 static void drain_openssl_errors(void)
 {
 	const char *file;
@@ -65,6 +66,7 @@
 		return;
 	while (ERR_get_error_line(&file, &line)) {}
 }
+#endif
 
 #define ERR(cond, fmt, ...)				\
 	do {						\
@@ -119,6 +121,10 @@
 		fclose(f);
 		exit(0);
 	} else if (!strncmp(cert_src, "pkcs11:", 7)) {
+#ifdef OPENSSL_IS_BORINGSSL
+		ERR(1, "BoringSSL does not support extracting from PKCS#11");
+		exit(1);
+#else
 		ENGINE *e;
 		struct {
 			const char *cert_id;
@@ -141,6 +147,7 @@
 		ENGINE_ctrl_cmd(e, "LOAD_CERT_CTRL", 0, &parms, NULL, 1);
 		ERR(!parms.cert, "Get X.509 from PKCS#11");
 		write_cert(parms.cert);
+#endif
 	} else {
 		BIO *b;
 		X509 *x509;
diff --git a/scripts/gen_autoksyms.sh b/scripts/gen_autoksyms.sh
index 6ed0d22..117cb07 100755
--- a/scripts/gen_autoksyms.sh
+++ b/scripts/gen_autoksyms.sh
@@ -2,13 +2,10 @@
 # SPDX-License-Identifier: GPL-2.0-only
 
 # Create an autoksyms.h header file from the list of all module's needed symbols
-# as recorded on the second line of *.mod files and the user-provided symbol
-# whitelist.
+# as recorded in *.usyms files and the user-provided symbol whitelist.
 
 set -e
 
-output_file="$1"
-
 # Use "make V=1" to debug this script.
 case "$KBUILD_VERBOSE" in
 *1*)
@@ -19,6 +16,15 @@
 # We need access to CONFIG_ symbols
 . include/config/auto.conf
 
+read_modorder=
+
+if [ "$1" = --modorder ]; then
+	shift
+	read_modorder=1
+fi
+
+output_file="$1"
+
 needed_symbols=
 
 # Special case for modversions (see modpost.c)
@@ -46,10 +52,8 @@
 
 EOT
 
-[ -f modules.order ] && modlist=modules.order || modlist=/dev/null
-
 {
-	sed 's/ko$/mod/' $modlist | xargs -n1 sed -n -e '2p'
+	[ -n "${read_modorder}" ] && sed 's/ko$/usyms/' modules.order | xargs cat
 	echo "$needed_symbols"
 	[ -n "$ksym_wl" ] && cat "$ksym_wl"
 } | sed -e 's/ /\n/g' | sed -n -e '/^$/!p' |
@@ -57,4 +61,7 @@
 # point addresses.
 sed -e 's/^\.//' |
 sort -u |
+# Ignore __this_module. It's not an exported symbol, and will be resolved
+# when the final .ko's are linked.
+grep -v '^__this_module$' |
 sed -e 's/\(.*\)/#define __KSYM_\1 1/' >> "$output_file"
diff --git a/scripts/gen_gki_modules_headers.sh b/scripts/gen_gki_modules_headers.sh
new file mode 100755
index 0000000..ad0eeee
--- /dev/null
+++ b/scripts/gen_gki_modules_headers.sh
@@ -0,0 +1,101 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Copyright 2021 Google LLC
+# Author: ramjiyani@google.com (Ramji Jiyani)
+#
+
+#
+# Generates hearder files for GKI modules symbol and export protections
+#
+# Called By: KERNEL_SRC/kernel/Makefile if CONFIG_MODULE_SIG_PROTECT=y
+#
+# gki_module_exported.h: Symbols protected from _export_ by unsigned modules
+# gki_module_protected.h: Symbols protected from _access_ by unsigned modules
+#
+# If valid symbol file doesn't exists then still generates valid C header files for
+# compilation to proceed with no symbols to protect
+#
+
+# Collect arguments from Makefile
+TARGET=$1
+SRCTREE=$2
+
+set -e
+
+#
+# Common Definitions
+#
+# Use "make V=1" to debug this script.
+case "$KBUILD_VERBOSE" in
+*1*)
+	set -x
+	;;
+esac
+
+#
+# generate_header():
+# Args: $1 = Name of the header file
+#       $2 = Input symbol list
+#       $3 = Symbol type (protected/exported)
+#
+generate_header() {
+	local header_file=$1
+	local symbol_file=$2
+	local symbol_type=$3
+
+	if [ -f "${header_file}" ]; then
+		rm -f -- "${header_file}"
+	fi
+
+	# Find Maximum symbol name length if valid symbol_file exist
+	if [  -s "${symbol_file}" ]; then
+		# Skip 1st line (symbol header), Trim white spaces & +1 for null termination
+		local max_name_len=$(awk '
+				{
+					$1=$1;
+					if ( length > L && NR > 1) {
+						L=length
+					}
+				} END { print ++L }' "${symbol_file}")
+	else
+		# Set to 1 to generate valid C header file
+		local max_name_len=1
+	fi
+
+	# Header generation
+	cat > "${header_file}" <<- EOT
+	/*
+	 * DO NOT EDIT
+	 *
+	 * Build generated header file with GKI module symbols/exports
+	 */
+
+	#define NO_OF_$(printf ${symbol_type} | tr [:lower:] [:upper:])_SYMBOLS \\
+	$(printf '\t')(sizeof(gki_${symbol_type}_symbols) / sizeof(gki_${symbol_type}_symbols[0]))
+	#define MAX_$(printf ${symbol_type} | tr [:lower:] [:upper:])_NAME_LEN (${max_name_len})
+
+	static const char gki_${symbol_type}_symbols[][MAX_$(printf ${symbol_type} |
+							tr [:lower:] [:upper:])_NAME_LEN] = {
+	EOT
+
+	# If a valid symbol_file present add symbols in an array except the 1st line
+	if [  -s "${symbol_file}" ]; then
+		sed -e 1d -e 's/^[ \t]*/\t"/;s/[ \t]*$/",/' "${symbol_file}" >> "${header_file}"
+	fi
+
+	# Terminate the file
+	echo "};" >> "${header_file}"
+}
+
+if [ "$(basename "${TARGET}")" = "gki_module_protected.h" ]; then
+	# Sorted list of protected symbols
+	GKI_PROTECTED_SYMBOLS="${SRCTREE}/android/abi_gki_modules_protected"
+
+	generate_header "${TARGET}" "${GKI_PROTECTED_SYMBOLS}" "protected"
+else
+	# Sorted list of exported symbols
+	GKI_EXPORTED_SYMBOLS="${SRCTREE}/android/abi_gki_modules_exports"
+
+	generate_header "${TARGET}" "${GKI_EXPORTED_SYMBOLS}" "exported"
+fi
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index c6e655e..d633978 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -28,6 +28,8 @@
 static int all_versions = 0;
 /* If we are modposting external module set to 1 */
 static int external_module = 0;
+#define MODULE_SCMVERSION_SIZE 64
+static char module_scmversion[MODULE_SCMVERSION_SIZE];
 /* Only warn about unresolved symbols */
 static int warn_unresolved = 0;
 /* How a symbol is exported */
@@ -418,10 +420,9 @@
 		s = new_symbol(name, mod, export);
 	} else if (!external_module || s->module->is_vmlinux ||
 		   s->module == mod) {
-		warn("%s: '%s' exported twice. Previous export was in %s%s\n",
-		     mod->name, name, s->module->name,
-		     s->module->is_vmlinux ? "" : ".ko");
-		return s;
+		fatal("%s: '%s' exported twice. Previous export was in %s%s\n",
+		      mod->name, name, s->module->name,
+		      s->module->is_vmlinux ? "" : ".ko");
 	}
 
 	s->module = mod;
@@ -2199,6 +2200,20 @@
 		buf_printf(b, "\nMODULE_INFO(intree, \"Y\");\n");
 }
 
+/**
+ * add_scmversion() - Adds the MODULE_INFO macro for the scmversion.
+ * @b: Buffer to append to.
+ *
+ * This function fills in the module attribute `scmversion` for the kernel
+ * module. This is useful for determining a given module's SCM version on
+ * device via /sys/modules/<module>/scmversion and/or using the modinfo tool.
+ */
+static void add_scmversion(struct buffer *b)
+{
+	if (module_scmversion[0] != '\0')
+		buf_printf(b, "\nMODULE_INFO(scmversion, \"%s\");\n", module_scmversion);
+}
+
 /* Cannot check for assembler */
 static void add_retpoline(struct buffer *b)
 {
@@ -2468,7 +2483,7 @@
 	struct dump_list *dump_read_start = NULL;
 	struct dump_list **dump_read_iter = &dump_read_start;
 
-	while ((opt = getopt(argc, argv, "ei:mnT:o:awENd:")) != -1) {
+	while ((opt = getopt(argc, argv, "ei:mnT:o:awENd:v:")) != -1) {
 		switch (opt) {
 		case 'e':
 			external_module = 1;
@@ -2506,6 +2521,9 @@
 		case 'd':
 			missing_namespace_deps = optarg;
 			break;
+		case 'v':
+			strncpy(module_scmversion, optarg, sizeof(module_scmversion) - 1);
+			break;
 		default:
 			exit(1);
 		}
@@ -2545,6 +2563,7 @@
 		add_depends(&buf, mod);
 		add_moddevtable(&buf, mod);
 		add_srcversion(&buf, mod);
+		add_scmversion(&buf);
 
 		sprintf(fname, "%s.mod.c", mod->name);
 		write_if_changed(&buf, fname);
diff --git a/scripts/mod/sumversion.c b/scripts/mod/sumversion.c
index 905c0ec..79bb9ea 100644
--- a/scripts/mod/sumversion.c
+++ b/scripts/mod/sumversion.c
@@ -387,7 +387,7 @@
 /* Calc and record src checksum. */
 void get_src_version(const char *modname, char sum[], unsigned sumlen)
 {
-	char *buf, *pos, *firstline;
+	char *buf;
 	struct md4_ctx md;
 	char *fname;
 	char filelist[PATH_MAX + 1];
@@ -397,15 +397,8 @@
 
 	buf = read_text_file(filelist);
 
-	pos = buf;
-	firstline = get_line(&pos);
-	if (!firstline) {
-		warn("bad ending versions file for %s\n", modname);
-		goto free;
-	}
-
 	md4_init(&md);
-	while ((fname = strsep(&firstline, " "))) {
+	while ((fname = strsep(&buf, "\n"))) {
 		if (!*fname)
 			continue;
 		if (!(is_static_library(fname)) &&
diff --git a/scripts/module.lds.S b/scripts/module.lds.S
index 3a3aa23..7114bb5 100644
--- a/scripts/module.lds.S
+++ b/scripts/module.lds.S
@@ -50,8 +50,10 @@
 	}
 
 	.rodata : {
+		*(.rodata.._start)
 		*(.rodata .rodata.[0-9a-zA-Z_]*)
 		*(.rodata..L*)
+		*(.rodata.._end)
 	}
 
 	/*
@@ -59,8 +61,11 @@
 	 * of the .text section, and is aligned to PAGE_SIZE.
 	 */
 	.text : ALIGN_CFI {
+		*(.text.._start)
 		*(.text.__cfi_check)
 		*(.text .text.[0-9a-zA-Z_]* .text..L.cfi*)
+		*(.text.._end)
+		*(.text.._fips140_unchecked)
 	}
 #endif
 }
diff --git a/scripts/nsdeps b/scripts/nsdeps
index 04c4b96..f1718cc 100644
--- a/scripts/nsdeps
+++ b/scripts/nsdeps
@@ -34,9 +34,8 @@
 	local mod=${1%.ko:}
 	shift
 	local namespaces="$*"
-	local mod_source_files="`cat $mod.mod | sed -n 1p                      \
-					      | sed -e 's/\.o/\.c/g'           \
-					      | sed "s|[^ ]* *|${src_prefix}&|g"`"
+	local mod_source_files=$(sed "s|^\(.*\)\.o$|${src_prefix}\1.c|" $mod.mod)
+
 	for ns in $namespaces; do
 		echo "Adding namespace $ns to module $mod.ko."
 		generate_deps_for_ns $ns "$mod_source_files"
diff --git a/scripts/setlocalversion b/scripts/setlocalversion
index 6b54e46..e80fd64 100755
--- a/scripts/setlocalversion
+++ b/scripts/setlocalversion
@@ -11,20 +11,43 @@
 #
 
 usage() {
-	echo "Usage: $0 [--save-scmversion] [srctree]" >&2
+	echo "Usage: $0 [--save-scmversion] [--save-tag] [srctree] [branch] [kmi-generation]" >&2
 	exit 1
 }
 
 scm_only=false
+save_tag=false
 srctree=.
+android_release=
+kmi_generation=
 if test "$1" = "--save-scmversion"; then
 	scm_only=true
 	shift
 fi
+if test "$1" = "--save-tag"; then
+	save_tag=true
+	shift
+fi
 if test $# -gt 0; then
 	srctree=$1
 	shift
 fi
+if test $# -gt 0; then
+	# Extract the Android release version. If there is no match, then return 255
+	# and clear the var $android_release
+	android_release=`echo "$1" | sed -e '/android[0-9]\{2,\}/!{q255}; \
+		s/^\(android[0-9]\{2,\}\)-.*/\1/'`
+	if test $? -ne 0; then
+		android_release=
+	fi
+	shift
+
+	if test $# -gt 0; then
+		kmi_generation=$1
+		[ $(expr $kmi_generation : '^[0-9]\+$') -eq 0 ] && usage
+		shift
+	fi
+fi
 if test $# -gt 0 -o ! -d "$srctree"; then
 	usage
 fi
@@ -44,13 +67,18 @@
 	fi
 
 	# Check for git and a git repo.
-	if test -z "$(git rev-parse --show-cdup 2>/dev/null)" &&
-	   head=$(git rev-parse --verify HEAD 2>/dev/null); then
+	if head=$(git rev-parse --verify HEAD 2>/dev/null); then
 
-		# If we are at a tagged commit (like "v2.6.30-rc6"), we ignore
-		# it, because this version is defined in the top level Makefile.
-		if [ -z "$(git describe --exact-match 2>/dev/null)" ]; then
-
+		if [ -n "$android_release" ] && [ -n "$kmi_generation" ]; then
+			printf '%s' "-$android_release-$kmi_generation"
+		elif [ -n "$android_release" ]; then
+			printf '%s' "-$android_release"
+		fi
+		# If we are at a tagged commit (like "v2.6.30-rc6"), by default
+		# we ignore it and manually define VERSION in the top level
+		# Makefile. Alternatively, set --save-tag to keep the tag.
+		tag="$(git describe --exact-match 2>/dev/null)"
+		if [ -z "$tag" ]; then
 			# If only the short version is requested, don't bother
 			# running further git commands
 			if $short; then
@@ -65,6 +93,8 @@
 
 			# Add -g and exactly 12 hex chars.
 			printf '%s%s' -g "$(echo $head | cut -c1-12)"
+		elif $save_tag; then
+			printf '%s' - "$(echo $tag)"
 		fi
 
 		# Check for uncommitted changes.
@@ -143,4 +173,9 @@
 	res="$res${scm:++}"
 fi
 
+# finally, add the abXXX number if BUILD_NUMBER is set
+if test -n "${BUILD_NUMBER}"; then
+	res="$res-ab${BUILD_NUMBER}"
+fi
+
 echo "$res"
diff --git a/scripts/sign-file.c b/scripts/sign-file.c
index 7434e9e..513367e 100644
--- a/scripts/sign-file.c
+++ b/scripts/sign-file.c
@@ -99,6 +99,7 @@
 	}
 }
 
+#ifndef OPENSSL_NO_ENGINE
 static void drain_openssl_errors(void)
 {
 	const char *file;
@@ -108,6 +109,7 @@
 		return;
 	while (ERR_get_error_line(&file, &line)) {}
 }
+#endif
 
 #define ERR(cond, fmt, ...)				\
 	do {						\
@@ -142,7 +144,9 @@
 static EVP_PKEY *read_private_key(const char *private_key_name)
 {
 	EVP_PKEY *private_key;
+	BIO *b;
 
+#ifndef OPENSSL_NO_ENGINE
 	if (!strncmp(private_key_name, "pkcs11:", 7)) {
 		ENGINE *e;
 
@@ -160,17 +164,16 @@
 		private_key = ENGINE_load_private_key(e, private_key_name,
 						      NULL, NULL);
 		ERR(!private_key, "%s", private_key_name);
-	} else {
-		BIO *b;
-
-		b = BIO_new_file(private_key_name, "rb");
-		ERR(!b, "%s", private_key_name);
-		private_key = PEM_read_bio_PrivateKey(b, NULL, pem_pw_cb,
-						      NULL);
-		ERR(!private_key, "%s", private_key_name);
-		BIO_free(b);
+		return private_key;
 	}
+#endif
 
+	b = BIO_new_file(private_key_name, "rb");
+	ERR(!b, "%s", private_key_name);
+	private_key = PEM_read_bio_PrivateKey(b, NULL, pem_pw_cb,
+					      NULL);
+	ERR(!private_key, "%s", private_key_name);
+	BIO_free(b);
 	return private_key;
 }
 
diff --git a/security/security.c b/security/security.c
index a97079e..537f39c 100644
--- a/security/security.c
+++ b/security/security.c
@@ -1067,11 +1067,12 @@
 }
 
 int security_dentry_init_security(struct dentry *dentry, int mode,
-					const struct qstr *name, void **ctx,
-					u32 *ctxlen)
+				  const struct qstr *name,
+				  const char **xattr_name, void **ctx,
+				  u32 *ctxlen)
 {
 	return call_int_hook(dentry_init_security, -EOPNOTSUPP, dentry, mode,
-				name, ctx, ctxlen);
+				name, xattr_name, ctx, ctxlen);
 }
 EXPORT_SYMBOL(security_dentry_init_security);
 
diff --git a/security/selinux/Makefile b/security/selinux/Makefile
index 8b21520..f7309f3 100644
--- a/security/selinux/Makefile
+++ b/security/selinux/Makefile
@@ -10,6 +10,8 @@
 	     ss/ebitmap.o ss/hashtab.o ss/symtab.o ss/sidtab.o ss/avtab.o \
 	     ss/policydb.o ss/services.o ss/conditional.o ss/mls.o ss/context.o
 
+selinux-$(CONFIG_ANDROID_VENDOR_HOOKS) += vendor_hooks.o
+
 selinux-$(CONFIG_SECURITY_NETWORK_XFRM) += xfrm.o
 
 selinux-$(CONFIG_NETLABEL) += netlabel.o
diff --git a/security/selinux/avc.c b/security/selinux/avc.c
index 97f4c94..e0582fe 100644
--- a/security/selinux/avc.c
+++ b/security/selinux/avc.c
@@ -44,6 +44,9 @@
 #define avc_cache_stats_incr(field)	do {} while (0)
 #endif
 
+#undef CREATE_TRACE_POINTS
+#include <trace/hooks/avc.h>
+
 struct avc_entry {
 	u32			ssid;
 	u32			tsid;
@@ -441,6 +444,7 @@
 
 static void avc_node_delete(struct selinux_avc *avc, struct avc_node *node)
 {
+	trace_android_rvh_selinux_avc_node_delete(node);
 	hlist_del_rcu(&node->list);
 	call_rcu(&node->rhead, avc_node_free);
 	atomic_dec(&avc->avc_cache.active_nodes);
@@ -457,6 +461,7 @@
 static void avc_node_replace(struct selinux_avc *avc,
 			     struct avc_node *new, struct avc_node *old)
 {
+	trace_android_rvh_selinux_avc_node_replace(old, new);
 	hlist_replace_rcu(&old->list, &new->list);
 	call_rcu(&old->rhead, avc_node_free);
 	atomic_dec(&avc->avc_cache.active_nodes);
@@ -565,8 +570,10 @@
 	avc_cache_stats_incr(lookups);
 	node = avc_search_node(avc, ssid, tsid, tclass);
 
-	if (node)
+	if (node) {
+		trace_android_rvh_selinux_avc_lookup(node, ssid, tsid, tclass);
 		return node;
+	}
 
 	avc_cache_stats_incr(misses);
 	return NULL;
@@ -650,6 +657,7 @@
 		}
 	}
 	hlist_add_head_rcu(&node->list, head);
+	trace_android_rvh_selinux_avc_insert(node);
 found:
 	spin_unlock_irqrestore(lock, flag);
 	return node;
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 9ce029b..9e1e315 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -2945,7 +2945,8 @@
 }
 
 static int selinux_dentry_init_security(struct dentry *dentry, int mode,
-					const struct qstr *name, void **ctx,
+					const struct qstr *name,
+					const char **xattr_name, void **ctx,
 					u32 *ctxlen)
 {
 	u32 newsid;
@@ -2958,6 +2959,9 @@
 	if (rc)
 		return rc;
 
+	if (xattr_name)
+		*xattr_name = XATTR_NAME_SELINUX;
+
 	return security_sid_to_context(&selinux_state, newsid, (char **)ctx,
 				       ctxlen);
 }
diff --git a/security/selinux/include/classmap.h b/security/selinux/include/classmap.h
index 084757f..d49b0c2 100644
--- a/security/selinux/include/classmap.h
+++ b/security/selinux/include/classmap.h
@@ -117,7 +117,8 @@
 	  { COMMON_IPC_PERMS, NULL } },
 	{ "netlink_route_socket",
 	  { COMMON_SOCK_PERMS,
-	    "nlmsg_read", "nlmsg_write", NULL } },
+	    "nlmsg_read", "nlmsg_write", "nlmsg_readpriv", "nlmsg_getneigh",
+	    NULL } },
 	{ "netlink_tcpdiag_socket",
 	  { COMMON_SOCK_PERMS,
 	    "nlmsg_read", "nlmsg_write", NULL } },
diff --git a/security/selinux/include/security.h b/security/selinux/include/security.h
index c0d9660..064786c 100644
--- a/security/selinux/include/security.h
+++ b/security/selinux/include/security.h
@@ -97,6 +97,8 @@
 	bool checkreqprot;
 	bool initialized;
 	bool policycap[__POLICYDB_CAPABILITY_MAX];
+	bool android_netlink_route;
+	bool android_netlink_getneigh;
 
 	struct page *status_page;
 	struct mutex status_lock;
@@ -226,6 +228,20 @@
 	return READ_ONCE(state->policycap[POLICYDB_CAPABILITY_IOCTL_SKIP_CLOEXEC]);
 }
 
+static inline bool selinux_android_nlroute_getlink(void)
+{
+	struct selinux_state *state = &selinux_state;
+
+	return state->android_netlink_route;
+}
+
+static inline bool selinux_android_nlroute_getneigh(void)
+{
+	struct selinux_state *state = &selinux_state;
+
+	return state->android_netlink_getneigh;
+}
+
 struct selinux_policy_convert_data;
 
 struct selinux_load_state {
@@ -459,5 +475,6 @@
 extern void ebitmap_cache_init(void);
 extern void hashtab_cache_init(void);
 extern int security_sidtab_hash_stats(struct selinux_state *state, char *page);
+extern void selinux_nlmsg_init(void);
 
 #endif /* _SELINUX_SECURITY_H_ */
diff --git a/security/selinux/nlmsgtab.c b/security/selinux/nlmsgtab.c
index 94ea2a8..4fee2e2 100644
--- a/security/selinux/nlmsgtab.c
+++ b/security/selinux/nlmsgtab.c
@@ -25,7 +25,7 @@
 	u32	perm;
 };
 
-static const struct nlmsg_perm nlmsg_route_perms[] =
+static struct nlmsg_perm nlmsg_route_perms[] =
 {
 	{ RTM_NEWLINK,		NETLINK_ROUTE_SOCKET__NLMSG_WRITE },
 	{ RTM_DELLINK,		NETLINK_ROUTE_SOCKET__NLMSG_WRITE },
@@ -216,3 +216,43 @@
 
 	return err;
 }
+
+static void nlmsg_set_perm_for_type(u32 perm, u16 type)
+{
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(nlmsg_route_perms); i++) {
+		if (nlmsg_route_perms[i].nlmsg_type == type) {
+			nlmsg_route_perms[i].perm = perm;
+			break;
+		}
+	}
+}
+
+/**
+ * Use nlmsg_readpriv as the permission for RTM_GETLINK messages if the
+ * netlink_route_getlink policy capability is set. Otherwise use nlmsg_read.
+ * Similarly, use nlmsg_getneigh for RTM_GETNEIGH and RTM_GETNEIGHTBL if the
+ * netlink_route_getneigh policy capability is set. Otherwise use nlmsg_read.
+ */
+void selinux_nlmsg_init(void)
+{
+	if (selinux_android_nlroute_getlink())
+		nlmsg_set_perm_for_type(NETLINK_ROUTE_SOCKET__NLMSG_READPRIV,
+					RTM_GETLINK);
+	else
+		nlmsg_set_perm_for_type(NETLINK_ROUTE_SOCKET__NLMSG_READ,
+					RTM_GETLINK);
+
+	if (selinux_android_nlroute_getneigh()) {
+		nlmsg_set_perm_for_type(NETLINK_ROUTE_SOCKET__NLMSG_GETNEIGH,
+					RTM_GETNEIGH);
+		nlmsg_set_perm_for_type(NETLINK_ROUTE_SOCKET__NLMSG_GETNEIGH,
+					RTM_GETNEIGHTBL);
+	} else {
+		nlmsg_set_perm_for_type(NETLINK_ROUTE_SOCKET__NLMSG_READ,
+					RTM_GETNEIGH);
+		nlmsg_set_perm_for_type(NETLINK_ROUTE_SOCKET__NLMSG_READ,
+					RTM_GETNEIGHTBL);
+	}
+}
diff --git a/security/selinux/ss/policydb.c b/security/selinux/ss/policydb.c
index 7f78585..e0ed65a 100644
--- a/security/selinux/ss/policydb.c
+++ b/security/selinux/ss/policydb.c
@@ -2491,6 +2491,14 @@
 	p->reject_unknown = !!(le32_to_cpu(buf[1]) & REJECT_UNKNOWN);
 	p->allow_unknown = !!(le32_to_cpu(buf[1]) & ALLOW_UNKNOWN);
 
+	if ((le32_to_cpu(buf[1]) & POLICYDB_CONFIG_ANDROID_NETLINK_ROUTE)) {
+		p->android_netlink_route = 1;
+	}
+
+	if ((le32_to_cpu(buf[1]) & POLICYDB_CONFIG_ANDROID_NETLINK_GETNEIGH)) {
+		p->android_netlink_getneigh = 1;
+	}
+
 	if (p->policyvers >= POLICYDB_VERSION_POLCAP) {
 		rc = ebitmap_read(&p->policycaps, fp);
 		if (rc)
diff --git a/security/selinux/ss/policydb.h b/security/selinux/ss/policydb.h
index ffc4e7b..1d75811 100644
--- a/security/selinux/ss/policydb.h
+++ b/security/selinux/ss/policydb.h
@@ -238,6 +238,8 @@
 /* The policy database */
 struct policydb {
 	int mls_enabled;
+	int android_netlink_route;
+	int android_netlink_getneigh;
 
 	/* symbol tables */
 	struct symtab symtab[SYM_NUM];
@@ -334,6 +336,8 @@
 	struct policydb *p, struct role_trans_key *key);
 
 #define POLICYDB_CONFIG_MLS    1
+#define POLICYDB_CONFIG_ANDROID_NETLINK_ROUTE    (1 << 31)
+#define POLICYDB_CONFIG_ANDROID_NETLINK_GETNEIGH (1 << 30)
 
 /* the config flags related to unknown classes/perms are bits 2 and 3 */
 #define REJECT_UNKNOWN	0x00000002
diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c
index 01716ed..0527a5c 100644
--- a/security/selinux/ss/services.c
+++ b/security/selinux/ss/services.c
@@ -68,6 +68,8 @@
 #include "policycap_names.h"
 #include "ima.h"
 
+#include <trace/hooks/selinux.h>
+
 struct convert_context_args {
 	struct selinux_state *state;
 	struct policydb *oldp;
@@ -2165,6 +2167,10 @@
 			pr_info("SELinux:  unknown policy capability %u\n",
 				i);
 	}
+
+	state->android_netlink_route = p->android_netlink_route;
+	state->android_netlink_getneigh = p->android_netlink_getneigh;
+	selinux_nlmsg_init();
 }
 
 static int security_preserve_bools(struct selinux_policy *oldpolicy,
@@ -2258,6 +2264,7 @@
 		 */
 		selinux_mark_initialized(state);
 		selinux_complete_init();
+		trace_android_rvh_selinux_is_initialized(state);
 	}
 
 	/* Free the old policy */
diff --git a/security/selinux/vendor_hooks.c b/security/selinux/vendor_hooks.c
new file mode 100644
index 0000000..a1b819b
--- /dev/null
+++ b/security/selinux/vendor_hooks.c
@@ -0,0 +1,23 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/* vendor_hook.c
+ *
+ * Copyright 2022 Google LLC
+ */
+
+#ifndef __GENKSYMS__
+#include "security.h"
+#endif
+
+#define CREATE_TRACE_POINTS
+#include <trace/hooks/vendor_hooks.h>
+#include <linux/tracepoint.h>
+#include <trace/hooks/selinux.h>
+
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_is_initialized);
+
+/*
+ * For type visibility
+ */
+struct selinux_state *GKI_struct_selinux_state;
+EXPORT_SYMBOL_GPL(GKI_struct_selinux_state);
+
diff --git a/sound/core/Kconfig b/sound/core/Kconfig
index db2e3c6..29bda02 100644
--- a/sound/core/Kconfig
+++ b/sound/core/Kconfig
@@ -154,6 +154,16 @@
 
 	  You don't need this unless you're debugging ALSA.
 
+config SND_CTL_FAST_LOOKUP
+	bool "Fast lookup of control elements" if EXPERT
+	default y
+	select XARRAY_MULTI
+	help
+	  This option enables the faster lookup of control elements.
+	  It will consume more memory because of the additional Xarray.
+	  If you want to choose the memory footprint over the performance
+	  inevitably, turn this off.
+
 config SND_DEBUG
 	bool "Debug"
 	help
diff --git a/sound/core/control.c b/sound/core/control.c
index b83ec28..3ef27b4 100644
--- a/sound/core/control.c
+++ b/sound/core/control.c
@@ -127,7 +127,6 @@
 			if (control->vd[idx].owner == ctl)
 				control->vd[idx].owner = NULL;
 	up_write(&card->controls_rwsem);
-	snd_fasync_free(ctl->fasync);
 	snd_ctl_empty_read_queue(ctl);
 	put_pid(ctl->pid);
 	kfree(ctl);
@@ -182,7 +181,7 @@
 	_found:
 		wake_up(&ctl->change_sleep);
 		spin_unlock(&ctl->read_lock);
-		snd_kill_fasync(ctl->fasync, SIGIO, POLL_IN);
+		kill_fasync(&ctl->fasync, SIGIO, POLL_IN);
 	}
 	read_unlock_irqrestore(&card->ctl_files_rwlock, flags);
 }
@@ -365,6 +364,93 @@
 	return 0;
 }
 
+/* check whether the given id is contained in the given kctl */
+static bool elem_id_matches(const struct snd_kcontrol *kctl,
+			    const struct snd_ctl_elem_id *id)
+{
+	return kctl->id.iface == id->iface &&
+		kctl->id.device == id->device &&
+		kctl->id.subdevice == id->subdevice &&
+		!strncmp(kctl->id.name, id->name, sizeof(kctl->id.name)) &&
+		kctl->id.index <= id->index &&
+		kctl->id.index + kctl->count > id->index;
+}
+
+#ifdef CONFIG_SND_CTL_FAST_LOOKUP
+/* Compute a hash key for the corresponding ctl id
+ * It's for the name lookup, hence the numid is excluded.
+ * The hash key is bound in LONG_MAX to be used for Xarray key.
+ */
+#define MULTIPLIER	37
+static unsigned long get_ctl_id_hash(const struct snd_ctl_elem_id *id)
+{
+	unsigned long h;
+	const unsigned char *p;
+
+	h = id->iface;
+	h = MULTIPLIER * h + id->device;
+	h = MULTIPLIER * h + id->subdevice;
+	for (p = id->name; *p; p++)
+		h = MULTIPLIER * h + *p;
+	h = MULTIPLIER * h + id->index;
+	h &= LONG_MAX;
+	return h;
+}
+
+/* add hash entries to numid and ctl xarray tables */
+static void add_hash_entries(struct snd_card *card,
+			     struct snd_kcontrol *kcontrol)
+{
+	struct snd_ctl_elem_id id = kcontrol->id;
+	int i;
+
+	xa_store_range(&card->ctl_numids, kcontrol->id.numid,
+		       kcontrol->id.numid + kcontrol->count - 1,
+		       kcontrol, GFP_KERNEL);
+
+	for (i = 0; i < kcontrol->count; i++) {
+		id.index = kcontrol->id.index + i;
+		if (xa_insert(&card->ctl_hash, get_ctl_id_hash(&id),
+			      kcontrol, GFP_KERNEL)) {
+			/* skip hash for this entry, noting we had collision */
+			card->ctl_hash_collision = true;
+			dev_dbg(card->dev, "ctl_hash collision %d:%s:%d\n",
+				id.iface, id.name, id.index);
+		}
+	}
+}
+
+/* remove hash entries that have been added */
+static void remove_hash_entries(struct snd_card *card,
+				struct snd_kcontrol *kcontrol)
+{
+	struct snd_ctl_elem_id id = kcontrol->id;
+	struct snd_kcontrol *matched;
+	unsigned long h;
+	int i;
+
+	for (i = 0; i < kcontrol->count; i++) {
+		xa_erase(&card->ctl_numids, id.numid);
+		h = get_ctl_id_hash(&id);
+		matched = xa_load(&card->ctl_hash, h);
+		if (matched && (matched == kcontrol ||
+				elem_id_matches(matched, &id)))
+			xa_erase(&card->ctl_hash, h);
+		id.index++;
+		id.numid++;
+	}
+}
+#else /* CONFIG_SND_CTL_FAST_LOOKUP */
+static inline void add_hash_entries(struct snd_card *card,
+				    struct snd_kcontrol *kcontrol)
+{
+}
+static inline void remove_hash_entries(struct snd_card *card,
+				       struct snd_kcontrol *kcontrol)
+{
+}
+#endif /* CONFIG_SND_CTL_FAST_LOOKUP */
+
 enum snd_ctl_add_mode {
 	CTL_ADD_EXCLUSIVE, CTL_REPLACE, CTL_ADD_ON_REPLACE,
 };
@@ -409,6 +495,8 @@
 	kcontrol->id.numid = card->last_numid + 1;
 	card->last_numid += kcontrol->count;
 
+	add_hash_entries(card, kcontrol);
+
 	for (idx = 0; idx < kcontrol->count; idx++)
 		snd_ctl_notify_one(card, SNDRV_CTL_EVENT_MASK_ADD, kcontrol, idx);
 
@@ -480,6 +568,26 @@
 }
 EXPORT_SYMBOL(snd_ctl_replace);
 
+static int __snd_ctl_remove(struct snd_card *card,
+			    struct snd_kcontrol *kcontrol,
+			    bool remove_hash)
+{
+	unsigned int idx;
+
+	if (snd_BUG_ON(!card || !kcontrol))
+		return -EINVAL;
+	list_del(&kcontrol->list);
+
+	if (remove_hash)
+		remove_hash_entries(card, kcontrol);
+
+	card->controls_count -= kcontrol->count;
+	for (idx = 0; idx < kcontrol->count; idx++)
+		snd_ctl_notify_one(card, SNDRV_CTL_EVENT_MASK_REMOVE, kcontrol, idx);
+	snd_ctl_free_one(kcontrol);
+	return 0;
+}
+
 /**
  * snd_ctl_remove - remove the control from the card and release it
  * @card: the card instance
@@ -493,16 +601,7 @@
  */
 int snd_ctl_remove(struct snd_card *card, struct snd_kcontrol *kcontrol)
 {
-	unsigned int idx;
-
-	if (snd_BUG_ON(!card || !kcontrol))
-		return -EINVAL;
-	list_del(&kcontrol->list);
-	card->controls_count -= kcontrol->count;
-	for (idx = 0; idx < kcontrol->count; idx++)
-		snd_ctl_notify_one(card, SNDRV_CTL_EVENT_MASK_REMOVE, kcontrol, idx);
-	snd_ctl_free_one(kcontrol);
-	return 0;
+	return __snd_ctl_remove(card, kcontrol, true);
 }
 EXPORT_SYMBOL(snd_ctl_remove);
 
@@ -643,14 +742,30 @@
 		up_write(&card->controls_rwsem);
 		return -ENOENT;
 	}
+	remove_hash_entries(card, kctl);
 	kctl->id = *dst_id;
 	kctl->id.numid = card->last_numid + 1;
 	card->last_numid += kctl->count;
+	add_hash_entries(card, kctl);
 	up_write(&card->controls_rwsem);
 	return 0;
 }
 EXPORT_SYMBOL(snd_ctl_rename_id);
 
+#ifndef CONFIG_SND_CTL_FAST_LOOKUP
+static struct snd_kcontrol *
+snd_ctl_find_numid_slow(struct snd_card *card, unsigned int numid)
+{
+	struct snd_kcontrol *kctl;
+
+	list_for_each_entry(kctl, &card->controls, list) {
+		if (kctl->id.numid <= numid && kctl->id.numid + kctl->count > numid)
+			return kctl;
+	}
+	return NULL;
+}
+#endif /* !CONFIG_SND_CTL_FAST_LOOKUP */
+
 /**
  * snd_ctl_find_numid - find the control instance with the given number-id
  * @card: the card instance
@@ -666,15 +781,13 @@
  */
 struct snd_kcontrol *snd_ctl_find_numid(struct snd_card *card, unsigned int numid)
 {
-	struct snd_kcontrol *kctl;
-
 	if (snd_BUG_ON(!card || !numid))
 		return NULL;
-	list_for_each_entry(kctl, &card->controls, list) {
-		if (kctl->id.numid <= numid && kctl->id.numid + kctl->count > numid)
-			return kctl;
-	}
-	return NULL;
+#ifdef CONFIG_SND_CTL_FAST_LOOKUP
+	return xa_load(&card->ctl_numids, numid);
+#else
+	return snd_ctl_find_numid_slow(card, numid);
+#endif
 }
 EXPORT_SYMBOL(snd_ctl_find_numid);
 
@@ -700,21 +813,18 @@
 		return NULL;
 	if (id->numid != 0)
 		return snd_ctl_find_numid(card, id->numid);
-	list_for_each_entry(kctl, &card->controls, list) {
-		if (kctl->id.iface != id->iface)
-			continue;
-		if (kctl->id.device != id->device)
-			continue;
-		if (kctl->id.subdevice != id->subdevice)
-			continue;
-		if (strncmp(kctl->id.name, id->name, sizeof(kctl->id.name)))
-			continue;
-		if (kctl->id.index > id->index)
-			continue;
-		if (kctl->id.index + kctl->count <= id->index)
-			continue;
+#ifdef CONFIG_SND_CTL_FAST_LOOKUP
+	kctl = xa_load(&card->ctl_hash, get_ctl_id_hash(id));
+	if (kctl && elem_id_matches(kctl, id))
 		return kctl;
-	}
+	if (!card->ctl_hash_collision)
+		return NULL; /* we can rely on only hash table */
+#endif
+	/* no matching in hash table - try all as the last resort */
+	list_for_each_entry(kctl, &card->controls, list)
+		if (elem_id_matches(kctl, id))
+			return kctl;
+
 	return NULL;
 }
 EXPORT_SYMBOL(snd_ctl_find_id);
@@ -2009,7 +2119,7 @@
 	struct snd_ctl_file *ctl;
 
 	ctl = file->private_data;
-	return snd_fasync_helper(fd, file, on, &ctl->fasync);
+	return fasync_helper(fd, file, on, &ctl->fasync);
 }
 
 /* return the preferred subdevice number if already assigned;
@@ -2177,7 +2287,7 @@
 	read_lock_irqsave(&card->ctl_files_rwlock, flags);
 	list_for_each_entry(ctl, &card->ctl_files, list) {
 		wake_up(&ctl->change_sleep);
-		snd_kill_fasync(ctl->fasync, SIGIO, POLL_ERR);
+		kill_fasync(&ctl->fasync, SIGIO, POLL_ERR);
 	}
 	read_unlock_irqrestore(&card->ctl_files_rwlock, flags);
 
@@ -2202,8 +2312,13 @@
 	down_write(&card->controls_rwsem);
 	while (!list_empty(&card->controls)) {
 		control = snd_kcontrol(card->controls.next);
-		snd_ctl_remove(card, control);
+		__snd_ctl_remove(card, control, false);
 	}
+
+#ifdef CONFIG_SND_CTL_FAST_LOOKUP
+	xa_destroy(&card->ctl_numids);
+	xa_destroy(&card->ctl_hash);
+#endif
 	up_write(&card->controls_rwsem);
 	put_device(&card->ctl_dev);
 	return 0;
diff --git a/sound/core/init.c b/sound/core/init.c
index 7b36189..f6aa08c 100644
--- a/sound/core/init.c
+++ b/sound/core/init.c
@@ -310,6 +310,10 @@
 	rwlock_init(&card->ctl_files_rwlock);
 	INIT_LIST_HEAD(&card->controls);
 	INIT_LIST_HEAD(&card->ctl_files);
+#ifdef CONFIG_SND_CTL_FAST_LOOKUP
+	xa_init(&card->ctl_numids);
+	xa_init(&card->ctl_hash);
+#endif
 	spin_lock_init(&card->files_lock);
 	INIT_LIST_HEAD(&card->files_list);
 	mutex_init(&card->memory_mutex);
diff --git a/sound/core/jack.c b/sound/core/jack.c
index 03d155ed..813726c 100644
--- a/sound/core/jack.c
+++ b/sound/core/jack.c
@@ -42,11 +42,8 @@
 #ifdef CONFIG_SND_JACK_INPUT_DEV
 	struct snd_jack *jack = device->device_data;
 
-	mutex_lock(&jack->input_dev_lock);
-	if (!jack->input_dev) {
-		mutex_unlock(&jack->input_dev_lock);
+	if (!jack->input_dev)
 		return 0;
-	}
 
 	/* If the input device is registered with the input subsystem
 	 * then we need to use a different deallocator. */
@@ -55,7 +52,6 @@
 	else
 		input_free_device(jack->input_dev);
 	jack->input_dev = NULL;
-	mutex_unlock(&jack->input_dev_lock);
 #endif /* CONFIG_SND_JACK_INPUT_DEV */
 	return 0;
 }
@@ -94,11 +90,8 @@
 	snprintf(jack->name, sizeof(jack->name), "%s %s",
 		 card->shortname, jack->id);
 
-	mutex_lock(&jack->input_dev_lock);
-	if (!jack->input_dev) {
-		mutex_unlock(&jack->input_dev_lock);
+	if (!jack->input_dev)
 		return 0;
-	}
 
 	jack->input_dev->name = jack->name;
 
@@ -123,7 +116,6 @@
 	if (err == 0)
 		jack->registered = 1;
 
-	mutex_unlock(&jack->input_dev_lock);
 	return err;
 }
 #endif /* CONFIG_SND_JACK_INPUT_DEV */
@@ -525,11 +517,9 @@
 		return -ENOMEM;
 	}
 
-#ifdef CONFIG_SND_JACK_INPUT_DEV
-	mutex_init(&jack->input_dev_lock);
-
-	/* don't create input device for phantom jack */
+	/* don't creat input device for phantom jack */
 	if (!phantom_jack) {
+#ifdef CONFIG_SND_JACK_INPUT_DEV
 		int i;
 
 		jack->input_dev = input_allocate_device();
@@ -547,8 +537,8 @@
 				input_set_capability(jack->input_dev, EV_SW,
 						     jack_switch_types[i]);
 
-	}
 #endif /* CONFIG_SND_JACK_INPUT_DEV */
+	}
 
 	err = snd_device_new(card, SNDRV_DEV_JACK, jack, &ops);
 	if (err < 0)
@@ -588,14 +578,10 @@
 void snd_jack_set_parent(struct snd_jack *jack, struct device *parent)
 {
 	WARN_ON(jack->registered);
-	mutex_lock(&jack->input_dev_lock);
-	if (!jack->input_dev) {
-		mutex_unlock(&jack->input_dev_lock);
+	if (!jack->input_dev)
 		return;
-	}
 
 	jack->input_dev->dev.parent = parent;
-	mutex_unlock(&jack->input_dev_lock);
 }
 EXPORT_SYMBOL(snd_jack_set_parent);
 
@@ -643,8 +629,6 @@
 
 /**
  * snd_jack_report - Report the current status of a jack
- * Note: This function uses mutexes and should be called from a
- * context which can sleep (such as a workqueue).
  *
  * @jack:   The jack to report status for
  * @status: The current status of the jack
diff --git a/sound/soc/codecs/hdac_hda.c b/sound/soc/codecs/hdac_hda.c
index de5955d..390dd6c 100644
--- a/sound/soc/codecs/hdac_hda.c
+++ b/sound/soc/codecs/hdac_hda.c
@@ -46,8 +46,9 @@
 				  struct snd_soc_dai *dai);
 static int hdac_hda_dai_hw_free(struct snd_pcm_substream *substream,
 				struct snd_soc_dai *dai);
-static int hdac_hda_dai_set_stream(struct snd_soc_dai *dai, void *stream,
-				   int direction);
+static int hdac_hda_dai_set_tdm_slot(struct snd_soc_dai *dai,
+				     unsigned int tx_mask, unsigned int rx_mask,
+				     int slots, int slot_width);
 static struct hda_pcm *snd_soc_find_pcm_from_dai(struct hdac_hda_priv *hda_pvt,
 						 struct snd_soc_dai *dai);
 
@@ -57,7 +58,7 @@
 	.prepare = hdac_hda_dai_prepare,
 	.hw_params = hdac_hda_dai_hw_params,
 	.hw_free = hdac_hda_dai_hw_free,
-	.set_stream = hdac_hda_dai_set_stream,
+	.set_tdm_slot = hdac_hda_dai_set_tdm_slot,
 };
 
 static struct snd_soc_dai_driver hdac_hda_dais[] = {
@@ -179,22 +180,21 @@
 
 };
 
-static int hdac_hda_dai_set_stream(struct snd_soc_dai *dai,
-				   void *stream, int direction)
+static int hdac_hda_dai_set_tdm_slot(struct snd_soc_dai *dai,
+				     unsigned int tx_mask, unsigned int rx_mask,
+				     int slots, int slot_width)
 {
 	struct snd_soc_component *component = dai->component;
 	struct hdac_hda_priv *hda_pvt;
 	struct hdac_hda_pcm *pcm;
-	struct hdac_stream *hstream;
-
-	if (!stream)
-		return -EINVAL;
 
 	hda_pvt = snd_soc_component_get_drvdata(component);
 	pcm = &hda_pvt->pcm[dai->id];
-	hstream = (struct hdac_stream *)stream;
 
-	pcm->stream_tag[direction] = hstream->stream_tag;
+	if (tx_mask)
+		pcm->stream_tag[SNDRV_PCM_STREAM_PLAYBACK] = tx_mask;
+	else
+		pcm->stream_tag[SNDRV_PCM_STREAM_CAPTURE] = rx_mask;
 
 	return 0;
 }
diff --git a/sound/soc/codecs/hdac_hdmi.c b/sound/soc/codecs/hdac_hdmi.c
index 1acd82f..66408a9 100644
--- a/sound/soc/codecs/hdac_hdmi.c
+++ b/sound/soc/codecs/hdac_hdmi.c
@@ -436,28 +436,23 @@
 	return 0;
 }
 
-static int hdac_hdmi_set_stream(struct snd_soc_dai *dai,
-				void *stream, int direction)
+static int hdac_hdmi_set_tdm_slot(struct snd_soc_dai *dai,
+		unsigned int tx_mask, unsigned int rx_mask,
+		int slots, int slot_width)
 {
 	struct hdac_hdmi_priv *hdmi = snd_soc_dai_get_drvdata(dai);
 	struct hdac_device *hdev = hdmi->hdev;
 	struct hdac_hdmi_dai_port_map *dai_map;
 	struct hdac_hdmi_pcm *pcm;
-	struct hdac_stream *hstream;
 
-	if (!stream)
-		return -EINVAL;
-
-	hstream = (struct hdac_stream *)stream;
-
-	dev_dbg(&hdev->dev, "%s: strm_tag: %d\n", __func__, hstream->stream_tag);
+	dev_dbg(&hdev->dev, "%s: strm_tag: %d\n", __func__, tx_mask);
 
 	dai_map = &hdmi->dai_map[dai->id];
 
 	pcm = hdac_hdmi_get_pcm_from_cvt(hdmi, dai_map->cvt);
 
 	if (pcm)
-		pcm->stream_tag = (hstream->stream_tag << 4);
+		pcm->stream_tag = (tx_mask << 4);
 
 	return 0;
 }
@@ -1549,7 +1544,7 @@
 	.startup = hdac_hdmi_pcm_open,
 	.shutdown = hdac_hdmi_pcm_close,
 	.hw_params = hdac_hdmi_set_hw_params,
-	.set_stream = hdac_hdmi_set_stream,
+	.set_tdm_slot = hdac_hdmi_set_tdm_slot,
 };
 
 /*
diff --git a/sound/soc/codecs/max98373-sdw.c b/sound/soc/codecs/max98373-sdw.c
index 97b6447..12323d4 100644
--- a/sound/soc/codecs/max98373-sdw.c
+++ b/sound/soc/codecs/max98373-sdw.c
@@ -741,7 +741,7 @@
 static const struct snd_soc_dai_ops max98373_dai_sdw_ops = {
 	.hw_params = max98373_sdw_dai_hw_params,
 	.hw_free = max98373_pcm_hw_free,
-	.set_stream = max98373_set_sdw_stream,
+	.set_sdw_stream = max98373_set_sdw_stream,
 	.shutdown = max98373_shutdown,
 	.set_tdm_slot = max98373_sdw_set_tdm_slot,
 };
diff --git a/sound/soc/codecs/rt1308-sdw.c b/sound/soc/codecs/rt1308-sdw.c
index 03adf332..8472d85 100644
--- a/sound/soc/codecs/rt1308-sdw.c
+++ b/sound/soc/codecs/rt1308-sdw.c
@@ -613,7 +613,7 @@
 static const struct snd_soc_dai_ops rt1308_aif_dai_ops = {
 	.hw_params = rt1308_sdw_hw_params,
 	.hw_free	= rt1308_sdw_pcm_hw_free,
-	.set_stream	= rt1308_set_sdw_stream,
+	.set_sdw_stream	= rt1308_set_sdw_stream,
 	.shutdown	= rt1308_sdw_shutdown,
 	.set_tdm_slot	= rt1308_sdw_set_tdm_slot,
 };
diff --git a/sound/soc/codecs/rt1316-sdw.c b/sound/soc/codecs/rt1316-sdw.c
index 1e04aa8..09cf3ca 100644
--- a/sound/soc/codecs/rt1316-sdw.c
+++ b/sound/soc/codecs/rt1316-sdw.c
@@ -602,7 +602,7 @@
 static const struct snd_soc_dai_ops rt1316_aif_dai_ops = {
 	.hw_params = rt1316_sdw_hw_params,
 	.hw_free	= rt1316_sdw_pcm_hw_free,
-	.set_stream	= rt1316_set_sdw_stream,
+	.set_sdw_stream	= rt1316_set_sdw_stream,
 	.shutdown	= rt1316_sdw_shutdown,
 };
 
diff --git a/sound/soc/codecs/rt5682-sdw.c b/sound/soc/codecs/rt5682-sdw.c
index f04e18c..a030c99 100644
--- a/sound/soc/codecs/rt5682-sdw.c
+++ b/sound/soc/codecs/rt5682-sdw.c
@@ -272,7 +272,7 @@
 static const struct snd_soc_dai_ops rt5682_sdw_ops = {
 	.hw_params	= rt5682_sdw_hw_params,
 	.hw_free	= rt5682_sdw_hw_free,
-	.set_stream	= rt5682_set_sdw_stream,
+	.set_sdw_stream	= rt5682_set_sdw_stream,
 	.shutdown	= rt5682_sdw_shutdown,
 };
 
diff --git a/sound/soc/codecs/rt700.c b/sound/soc/codecs/rt700.c
index 3de3406..e049d67 100644
--- a/sound/soc/codecs/rt700.c
+++ b/sound/soc/codecs/rt700.c
@@ -1015,7 +1015,7 @@
 static const struct snd_soc_dai_ops rt700_ops = {
 	.hw_params	= rt700_pcm_hw_params,
 	.hw_free	= rt700_pcm_hw_free,
-	.set_stream	= rt700_set_sdw_stream,
+	.set_sdw_stream	= rt700_set_sdw_stream,
 	.shutdown	= rt700_shutdown,
 };
 
diff --git a/sound/soc/codecs/rt711-sdca.c b/sound/soc/codecs/rt711-sdca.c
index 5ad53bb..3b5df3e 100644
--- a/sound/soc/codecs/rt711-sdca.c
+++ b/sound/soc/codecs/rt711-sdca.c
@@ -1361,7 +1361,7 @@
 static const struct snd_soc_dai_ops rt711_sdca_ops = {
 	.hw_params	= rt711_sdca_pcm_hw_params,
 	.hw_free	= rt711_sdca_pcm_hw_free,
-	.set_stream	= rt711_sdca_set_sdw_stream,
+	.set_sdw_stream	= rt711_sdca_set_sdw_stream,
 	.shutdown	= rt711_sdca_shutdown,
 };
 
diff --git a/sound/soc/codecs/rt711.c b/sound/soc/codecs/rt711.c
index 286d882..51a98e7 100644
--- a/sound/soc/codecs/rt711.c
+++ b/sound/soc/codecs/rt711.c
@@ -1092,7 +1092,7 @@
 static const struct snd_soc_dai_ops rt711_ops = {
 	.hw_params	= rt711_pcm_hw_params,
 	.hw_free	= rt711_pcm_hw_free,
-	.set_stream	= rt711_set_sdw_stream,
+	.set_sdw_stream	= rt711_set_sdw_stream,
 	.shutdown	= rt711_shutdown,
 };
 
diff --git a/sound/soc/codecs/rt715-sdca.c b/sound/soc/codecs/rt715-sdca.c
index bfa536b..66e1665 100644
--- a/sound/soc/codecs/rt715-sdca.c
+++ b/sound/soc/codecs/rt715-sdca.c
@@ -938,7 +938,7 @@
 static const struct snd_soc_dai_ops rt715_sdca_ops = {
 	.hw_params	= rt715_sdca_pcm_hw_params,
 	.hw_free	= rt715_sdca_pcm_hw_free,
-	.set_stream	= rt715_sdca_set_sdw_stream,
+	.set_sdw_stream	= rt715_sdca_set_sdw_stream,
 	.shutdown	= rt715_sdca_shutdown,
 };
 
diff --git a/sound/soc/codecs/rt715.c b/sound/soc/codecs/rt715.c
index a64d11a..1352869 100644
--- a/sound/soc/codecs/rt715.c
+++ b/sound/soc/codecs/rt715.c
@@ -909,7 +909,7 @@
 static const struct snd_soc_dai_ops rt715_ops = {
 	.hw_params	= rt715_pcm_hw_params,
 	.hw_free	= rt715_pcm_hw_free,
-	.set_stream	= rt715_set_sdw_stream,
+	.set_sdw_stream	= rt715_set_sdw_stream,
 	.shutdown	= rt715_shutdown,
 };
 
diff --git a/sound/soc/codecs/sdw-mockup.c b/sound/soc/codecs/sdw-mockup.c
index 7c612aa..8ea13cf 100644
--- a/sound/soc/codecs/sdw-mockup.c
+++ b/sound/soc/codecs/sdw-mockup.c
@@ -138,7 +138,7 @@
 static const struct snd_soc_dai_ops sdw_mockup_ops = {
 	.hw_params	= sdw_mockup_pcm_hw_params,
 	.hw_free	= sdw_mockup_pcm_hw_free,
-	.set_stream	= sdw_mockup_set_sdw_stream,
+	.set_sdw_stream	= sdw_mockup_set_sdw_stream,
 	.shutdown	= sdw_mockup_shutdown,
 };
 
diff --git a/sound/soc/codecs/wcd938x.c b/sound/soc/codecs/wcd938x.c
index 8a7c8e8..99b4c80 100644
--- a/sound/soc/codecs/wcd938x.c
+++ b/sound/soc/codecs/wcd938x.c
@@ -4364,7 +4364,7 @@
 static const struct snd_soc_dai_ops wcd938x_sdw_dai_ops = {
 	.hw_params = wcd938x_codec_hw_params,
 	.hw_free = wcd938x_codec_free,
-	.set_stream = wcd938x_codec_set_sdw_stream,
+	.set_sdw_stream = wcd938x_codec_set_sdw_stream,
 };
 
 static struct snd_soc_dai_driver wcd938x_dais[] = {
diff --git a/sound/soc/codecs/wsa881x.c b/sound/soc/codecs/wsa881x.c
index 8559047..ae5681b 100644
--- a/sound/soc/codecs/wsa881x.c
+++ b/sound/soc/codecs/wsa881x.c
@@ -1025,7 +1025,7 @@
 	.hw_params = wsa881x_hw_params,
 	.hw_free = wsa881x_hw_free,
 	.mute_stream = wsa881x_digital_mute,
-	.set_stream = wsa881x_set_sdw_stream,
+	.set_sdw_stream = wsa881x_set_sdw_stream,
 };
 
 static struct snd_soc_dai_driver wsa881x_dais[] = {
diff --git a/sound/soc/fsl/fsl_micfil.c b/sound/soc/fsl/fsl_micfil.c
index acc820d..38d4d1b 100644
--- a/sound/soc/fsl/fsl_micfil.c
+++ b/sound/soc/fsl/fsl_micfil.c
@@ -763,7 +763,7 @@
 	ret = devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0);
 	if (ret) {
 		dev_err(&pdev->dev, "failed to pcm register\n");
-		goto err_pm_disable;
+		return ret;
 	}
 
 	ret = devm_snd_soc_register_component(&pdev->dev, &fsl_micfil_component,
@@ -771,20 +771,9 @@
 	if (ret) {
 		dev_err(&pdev->dev, "failed to register component %s\n",
 			fsl_micfil_component.name);
-		goto err_pm_disable;
 	}
 
 	return ret;
-
-err_pm_disable:
-	pm_runtime_disable(&pdev->dev);
-
-	return ret;
-}
-
-static void fsl_micfil_remove(struct platform_device *pdev)
-{
-	pm_runtime_disable(&pdev->dev);
 }
 
 static int __maybe_unused fsl_micfil_runtime_suspend(struct device *dev)
@@ -845,7 +834,6 @@
 
 static struct platform_driver fsl_micfil_driver = {
 	.probe = fsl_micfil_probe,
-	.remove_new = fsl_micfil_remove,
 	.driver = {
 		.name = "fsl-micfil-dai",
 		.pm = &fsl_micfil_pm_ops,
diff --git a/sound/soc/intel/boards/sof_sdw.c b/sound/soc/intel/boards/sof_sdw.c
index 089b6c7..7d9bbbe 100644
--- a/sound/soc/intel/boards/sof_sdw.c
+++ b/sound/soc/intel/boards/sof_sdw.c
@@ -302,7 +302,7 @@
 	/* Find stream from first CPU DAI */
 	dai = asoc_rtd_to_cpu(rtd, 0);
 
-	sdw_stream = snd_soc_dai_get_stream(dai, substream->stream);
+	sdw_stream = snd_soc_dai_get_sdw_stream(dai, substream->stream);
 
 	if (IS_ERR(sdw_stream)) {
 		dev_err(rtd->dev, "no stream found for DAI %s", dai->name);
@@ -322,7 +322,7 @@
 	/* Find stream from first CPU DAI */
 	dai = asoc_rtd_to_cpu(rtd, 0);
 
-	sdw_stream = snd_soc_dai_get_stream(dai, substream->stream);
+	sdw_stream = snd_soc_dai_get_sdw_stream(dai, substream->stream);
 
 	if (IS_ERR(sdw_stream)) {
 		dev_err(rtd->dev, "no stream found for DAI %s", dai->name);
@@ -361,7 +361,7 @@
 	/* Find stream from first CPU DAI */
 	dai = asoc_rtd_to_cpu(rtd, 0);
 
-	sdw_stream = snd_soc_dai_get_stream(dai, substream->stream);
+	sdw_stream = snd_soc_dai_get_sdw_stream(dai, substream->stream);
 
 	if (IS_ERR(sdw_stream)) {
 		dev_err(rtd->dev, "no stream found for DAI %s", dai->name);
diff --git a/sound/soc/intel/skylake/skl-pcm.c b/sound/soc/intel/skylake/skl-pcm.c
index db41bd7..e4aa366 100644
--- a/sound/soc/intel/skylake/skl-pcm.c
+++ b/sound/soc/intel/skylake/skl-pcm.c
@@ -562,8 +562,11 @@
 
 	stream_tag = hdac_stream(link_dev)->stream_tag;
 
-	/* set the hdac_stream in the codec dai */
-	snd_soc_dai_set_stream(codec_dai, hdac_stream(link_dev), substream->stream);
+	/* set the stream tag in the codec dai dma params  */
+	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
+		snd_soc_dai_set_tdm_slot(codec_dai, stream_tag, 0, 0, 0);
+	else
+		snd_soc_dai_set_tdm_slot(codec_dai, 0, stream_tag, 0, 0);
 
 	p_params.s_fmt = snd_pcm_format_width(params_format(params));
 	p_params.ch = params_channels(params);
diff --git a/sound/soc/mediatek/mt8195/mt8195-afe-pcm.c b/sound/soc/mediatek/mt8195/mt8195-afe-pcm.c
index 4e81754..01e1513c 100644
--- a/sound/soc/mediatek/mt8195/mt8195-afe-pcm.c
+++ b/sound/soc/mediatek/mt8195/mt8195-afe-pcm.c
@@ -3237,13 +3237,15 @@
 	return ret;
 }
 
-static void mt8195_afe_pcm_dev_remove(struct platform_device *pdev)
+static int mt8195_afe_pcm_dev_remove(struct platform_device *pdev)
 {
 	snd_soc_unregister_component(&pdev->dev);
 
 	pm_runtime_disable(&pdev->dev);
 	if (!pm_runtime_status_suspended(&pdev->dev))
 		mt8195_afe_runtime_suspend(&pdev->dev);
+
+	return 0;
 }
 
 static const struct of_device_id mt8195_afe_pcm_dt_match[] = {
@@ -3266,7 +3268,7 @@
 #endif
 	},
 	.probe = mt8195_afe_pcm_dev_probe,
-	.remove_new = mt8195_afe_pcm_dev_remove,
+	.remove = mt8195_afe_pcm_dev_remove,
 };
 
 module_platform_driver(mt8195_afe_pcm_driver);
diff --git a/sound/soc/qcom/sdm845.c b/sound/soc/qcom/sdm845.c
index 4da5ad6..0adfc5708 100644
--- a/sound/soc/qcom/sdm845.c
+++ b/sound/soc/qcom/sdm845.c
@@ -56,8 +56,8 @@
 	int ret = 0, i;
 
 	for_each_rtd_codec_dais(rtd, i, codec_dai) {
-		sruntime = snd_soc_dai_get_stream(codec_dai,
-						  substream->stream);
+		sruntime = snd_soc_dai_get_sdw_stream(codec_dai,
+						      substream->stream);
 		if (sruntime != ERR_PTR(-ENOTSUPP))
 			pdata->sruntime[cpu_dai->id] = sruntime;
 
diff --git a/sound/soc/qcom/sm8250.c b/sound/soc/qcom/sm8250.c
index feb6589..e5190aa 100644
--- a/sound/soc/qcom/sm8250.c
+++ b/sound/soc/qcom/sm8250.c
@@ -70,8 +70,8 @@
 	switch (cpu_dai->id) {
 	case WSA_CODEC_DMA_RX_0:
 		for_each_rtd_codec_dais(rtd, i, codec_dai) {
-			sruntime = snd_soc_dai_get_stream(codec_dai,
-							  substream->stream);
+			sruntime = snd_soc_dai_get_sdw_stream(codec_dai,
+						      substream->stream);
 			if (sruntime != ERR_PTR(-ENOTSUPP))
 				pdata->sruntime[cpu_dai->id] = sruntime;
 		}
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index a5b3ee6..13eb5d9 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -2339,6 +2339,7 @@
 	mutex_init(&card->mutex);
 	mutex_init(&card->dapm_mutex);
 	mutex_init(&card->pcm_mutex);
+	spin_lock_init(&card->unused);
 
 	return snd_soc_bind_card(card);
 }
@@ -3197,6 +3198,39 @@
 }
 EXPORT_SYMBOL_GPL(snd_soc_get_dai_id);
 
+/**
+ * snd_soc_info_multi_ext - external single mixer info callback
+ * @kcontrol: mixer control
+ * @uinfo: control element information
+ *
+ * Callback to provide information about a single external mixer control.
+ * that accepts multiple input.
+ *
+ * Returns 0 for success.
+ */
+int snd_soc_info_multi_ext(struct snd_kcontrol *kcontrol,
+	struct snd_ctl_elem_info *uinfo)
+{
+	struct soc_multi_mixer_control *mc =
+		(struct soc_multi_mixer_control *)kcontrol->private_value;
+	int platform_max;
+
+	if (!mc->platform_max)
+		mc->platform_max = mc->max;
+	platform_max = mc->platform_max;
+
+	if (platform_max == 1 && !strnstr(kcontrol->id.name, " Volume", 30))
+		uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
+	else
+		uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
+
+	uinfo->count = mc->count;
+	uinfo->value.integer.min = 0;
+	uinfo->value.integer.max = platform_max;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(snd_soc_info_multi_ext);
+
 int snd_soc_get_dai_name(const struct of_phandle_args *args,
 				const char **dai_name)
 {
diff --git a/sound/soc/soc-generic-dmaengine-pcm.c b/sound/soc/soc-generic-dmaengine-pcm.c
index 4aa48c7..8659cb1 100644
--- a/sound/soc/soc-generic-dmaengine-pcm.c
+++ b/sound/soc/soc-generic-dmaengine-pcm.c
@@ -15,6 +15,10 @@
 
 #include <sound/dmaengine_pcm.h>
 
+static unsigned int prealloc_buffer_size_kbytes = 512;
+module_param(prealloc_buffer_size_kbytes, uint, 0444);
+MODULE_PARM_DESC(prealloc_buffer_size_kbytes, "Preallocate DMA buffer size (KB).");
+
 /*
  * The platforms dmaengine driver does not support reporting the amount of
  * bytes that are still left to transfer.
@@ -233,13 +237,15 @@
 	size_t max_buffer_size;
 	unsigned int i;
 
-	if (config && config->prealloc_buffer_size) {
+	if (config && config->prealloc_buffer_size)
 		prealloc_buffer_size = config->prealloc_buffer_size;
+	else
+		prealloc_buffer_size = prealloc_buffer_size_kbytes * 1024;
+
+	if (config && config->pcm_hardware && config->pcm_hardware->buffer_bytes_max)
 		max_buffer_size = config->pcm_hardware->buffer_bytes_max;
-	} else {
-		prealloc_buffer_size = 512 * 1024;
+	else
 		max_buffer_size = SIZE_MAX;
-	}
 
 	for_each_pcm_streams(i) {
 		struct snd_pcm_substream *substream = rtd->pcm->streams[i].substream;
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index 6ec2487..411b341 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -1639,7 +1639,7 @@
 			be->dpcm[stream].state = SND_SOC_DPCM_STATE_CLOSE;
 			goto unwind;
 		}
-		be->dpcm[stream].be_start = 0;
+		be->dpcm_be_start[stream] = 0;
 		be->dpcm[stream].state = SND_SOC_DPCM_STATE_OPEN;
 		count++;
 	}
@@ -2129,19 +2129,19 @@
 
 		switch (cmd) {
 		case SNDRV_PCM_TRIGGER_START:
-			if (!be->dpcm[stream].be_start &&
+			if (!be->dpcm_be_start[stream] &&
 			    (be->dpcm[stream].state != SND_SOC_DPCM_STATE_PREPARE) &&
 			    (be->dpcm[stream].state != SND_SOC_DPCM_STATE_STOP) &&
 			    (be->dpcm[stream].state != SND_SOC_DPCM_STATE_PAUSED))
 				goto next;
 
-			be->dpcm[stream].be_start++;
-			if (be->dpcm[stream].be_start != 1)
+			be->dpcm_be_start[stream]++;
+			if (be->dpcm_be_start[stream] != 1)
 				goto next;
 
 			ret = soc_pcm_trigger(be_substream, cmd);
 			if (ret) {
-				be->dpcm[stream].be_start--;
+				be->dpcm_be_start[stream]--;
 				goto next;
 			}
 
@@ -2151,32 +2151,32 @@
 			if ((be->dpcm[stream].state != SND_SOC_DPCM_STATE_SUSPEND))
 				goto next;
 
-			be->dpcm[stream].be_start++;
-			if (be->dpcm[stream].be_start != 1)
+			be->dpcm_be_start[stream]++;
+			if (be->dpcm_be_start[stream]!= 1)
 				goto next;
 
 			ret = soc_pcm_trigger(be_substream, cmd);
 			if (ret) {
-				be->dpcm[stream].be_start--;
+				be->dpcm_be_start[stream]--;
 				goto next;
 			}
 
 			be->dpcm[stream].state = SND_SOC_DPCM_STATE_START;
 			break;
 		case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-			if (!be->dpcm[stream].be_start &&
+			if (!be->dpcm_be_start[stream] &&
 			    (be->dpcm[stream].state != SND_SOC_DPCM_STATE_START) &&
 			    (be->dpcm[stream].state != SND_SOC_DPCM_STATE_STOP) &&
 			    (be->dpcm[stream].state != SND_SOC_DPCM_STATE_PAUSED))
 				goto next;
 
-			be->dpcm[stream].be_start++;
-			if (be->dpcm[stream].be_start != 1)
+			be->dpcm_be_start[stream]++;
+			if (be->dpcm_be_start[stream] != 1)
 				goto next;
 
 			ret = soc_pcm_trigger(be_substream, cmd);
 			if (ret) {
-				be->dpcm[stream].be_start--;
+				be->dpcm_be_start[stream]--;
 				goto next;
 			}
 
@@ -2188,15 +2188,15 @@
 				goto next;
 
 			if (be->dpcm[stream].state == SND_SOC_DPCM_STATE_START)
-				be->dpcm[stream].be_start--;
+				be->dpcm_be_start[stream]--;
 
-			if (be->dpcm[stream].be_start != 0)
+			if (be->dpcm_be_start[stream] != 0)
 				goto next;
 
 			ret = soc_pcm_trigger(be_substream, cmd);
 			if (ret) {
 				if (be->dpcm[stream].state == SND_SOC_DPCM_STATE_START)
-					be->dpcm[stream].be_start++;
+					be->dpcm_be_start[stream]++;
 				goto next;
 			}
 
@@ -2206,13 +2206,13 @@
 			if (be->dpcm[stream].state != SND_SOC_DPCM_STATE_START)
 				goto next;
 
-			be->dpcm[stream].be_start--;
-			if (be->dpcm[stream].be_start != 0)
+			be->dpcm_be_start[stream]--;
+			if (be->dpcm_be_start[stream] != 0)
 				goto next;
 
 			ret = soc_pcm_trigger(be_substream, cmd);
 			if (ret) {
-				be->dpcm[stream].be_start++;
+				be->dpcm_be_start[stream]++;
 				goto next;
 			}
 
@@ -2222,13 +2222,13 @@
 			if (be->dpcm[stream].state != SND_SOC_DPCM_STATE_START)
 				goto next;
 
-			be->dpcm[stream].be_start--;
-			if (be->dpcm[stream].be_start != 0)
+			be->dpcm_be_start[stream]--;
+			if (be->dpcm_be_start[stream] != 0)
 				goto next;
 
 			ret = soc_pcm_trigger(be_substream, cmd);
 			if (ret) {
-				be->dpcm[stream].be_start++;
+				be->dpcm_be_start[stream]++;
 				goto next;
 			}
 
diff --git a/sound/soc/sof/intel/hda-dai.c b/sound/soc/sof/intel/hda-dai.c
index 56653d7..401813f1 100644
--- a/sound/soc/sof/intel/hda-dai.c
+++ b/sound/soc/sof/intel/hda-dai.c
@@ -236,8 +236,11 @@
 	if (ret < 0)
 		return ret;
 
-	/* set the hdac_stream in the codec dai */
-	snd_soc_dai_set_stream(codec_dai, hdac_stream(link_dev), substream->stream);
+	/* set the stream tag in the codec dai dma params */
+	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
+		snd_soc_dai_set_tdm_slot(codec_dai, stream_tag, 0, 0, 0);
+	else
+		snd_soc_dai_set_tdm_slot(codec_dai, 0, stream_tag, 0, 0);
 
 	p_params.s_fmt = snd_pcm_format_width(params_format(params));
 	p_params.ch = params_channels(params);
diff --git a/sound/usb/card.c b/sound/usb/card.c
index 550c6a7..1add9ca 100644
--- a/sound/usb/card.c
+++ b/sound/usb/card.c
@@ -41,6 +41,8 @@
 #include <sound/pcm_params.h>
 #include <sound/initval.h>
 
+#include <trace/hooks/audio_usboffload.h>
+
 #include "usbaudio.h"
 #include "card.h"
 #include "midi.h"
@@ -689,7 +691,7 @@
 	return false;
 }
 
-static int check_delayed_register_option(struct snd_usb_audio *chip)
+static bool check_delayed_register_option(struct snd_usb_audio *chip, int iface)
 {
 	int i;
 	unsigned int id, inum;
@@ -698,31 +700,14 @@
 		if (delayed_register[i] &&
 		    sscanf(delayed_register[i], "%x:%x", &id, &inum) == 2 &&
 		    id == chip->usb_id)
-			return inum;
+			return iface < inum;
 	}
 
-	return -1;
+	return false;
 }
 
 static const struct usb_device_id usb_audio_ids[]; /* defined below */
 
-/* look for the last interface that matches with our ids and remember it */
-static void find_last_interface(struct snd_usb_audio *chip)
-{
-	struct usb_host_config *config = chip->dev->actconfig;
-	struct usb_interface *intf;
-	int i;
-
-	if (!config)
-		return;
-	for (i = 0; i < config->desc.bNumInterfaces; i++) {
-		intf = config->interface[i];
-		if (usb_match_id(intf, usb_audio_ids))
-			chip->last_iface = intf->altsetting[0].desc.bInterfaceNumber;
-	}
-	usb_audio_dbg(chip, "Found last interface = %d\n", chip->last_iface);
-}
-
 /* look for the corresponding quirk */
 static const struct snd_usb_audio_quirk *
 get_alias_quirk(struct usb_device *dev, unsigned int id)
@@ -741,18 +726,6 @@
 	return NULL;
 }
 
-/* register card if we reach to the last interface or to the specified
- * one given via option
- */
-static int try_to_register_card(struct snd_usb_audio *chip, int ifnum)
-{
-	if (check_delayed_register_option(chip) == ifnum ||
-	    chip->last_iface == ifnum ||
-	    usb_interface_claimed(usb_ifnum_to_if(chip->dev, chip->last_iface)))
-		return snd_card_register(chip->card);
-	return 0;
-}
-
 /*
  * probe the active usb device
  *
@@ -790,6 +763,8 @@
 	if (err < 0)
 		return err;
 
+	trace_android_vh_audio_usb_offload_vendor_set(intf);
+
 	/*
 	 * found a config.  now register to ALSA
 	 */
@@ -841,7 +816,6 @@
 			err = -ENODEV;
 			goto __error;
 		}
-		find_last_interface(chip);
 	}
 
 	if (chip->num_interfaces >= MAX_CARD_INTERFACES) {
@@ -858,6 +832,8 @@
 	if (chip->quirk_flags & QUIRK_FLAG_DISABLE_AUTOSUSPEND)
 		usb_disable_autosuspend(interface_to_usbdev(intf));
 
+	trace_android_vh_audio_usb_offload_connect(intf, chip);
+
 	/*
 	 * For devices with more than one control interface, we assume the
 	 * first contains the audio controls. We might need a more specific
@@ -891,9 +867,15 @@
 		chip->need_delayed_register = false; /* clear again */
 	}
 
-	err = try_to_register_card(chip, ifnum);
-	if (err < 0)
-		goto __error_no_register;
+	/* we are allowed to call snd_card_register() many times, but first
+	 * check to see if a device needs to skip it or do anything special
+	 */
+	if (!snd_usb_registration_quirk(chip, ifnum) &&
+	    !check_delayed_register_option(chip, ifnum)) {
+		err = snd_card_register(chip->card);
+		if (err < 0)
+			goto __error;
+	}
 
 	if (chip->quirk_flags & QUIRK_FLAG_SHARE_MEDIA_DEVICE) {
 		/* don't want to fail when snd_media_device_create() fails */
@@ -912,11 +894,6 @@
 	return 0;
 
  __error:
-	/* in the case of error in secondary interface, still try to register */
-	if (chip)
-		try_to_register_card(chip, ifnum);
-
- __error_no_register:
 	if (chip) {
 		/* chip->active is inside the chip->card object,
 		 * decrement before memory is possibly returned.
@@ -944,6 +921,8 @@
 
 	card = chip->card;
 
+	trace_android_rvh_audio_usb_offload_disconnect(intf);
+
 	mutex_lock(&register_mutex);
 	if (atomic_inc_return(&chip->shutdown) == 1) {
 		struct snd_usb_stream *as;
@@ -1047,6 +1026,7 @@
 	}
 	return 0;
 }
+EXPORT_SYMBOL_GPL(snd_usb_autoresume);
 
 void snd_usb_autosuspend(struct snd_usb_audio *chip)
 {
@@ -1060,6 +1040,7 @@
 	for (i = 0; i < chip->num_interfaces; i++)
 		usb_autopm_put_interface(chip->intf[i]);
 }
+EXPORT_SYMBOL_GPL(snd_usb_autosuspend);
 
 static int usb_audio_suspend(struct usb_interface *intf, pm_message_t message)
 {
diff --git a/sound/usb/card.h b/sound/usb/card.h
index 87f042d0..a85e45d 100644
--- a/sound/usb/card.h
+++ b/sound/usb/card.h
@@ -2,6 +2,8 @@
 #ifndef __USBAUDIO_CARD_H
 #define __USBAUDIO_CARD_H
 
+#include <linux/android_kabi.h>
+
 #define MAX_NR_RATES	1024
 #define MAX_PACKS	6		/* per URB */
 #define MAX_PACKS_HS	(MAX_PACKS * 8)	/* in high speed mode */
@@ -142,6 +144,11 @@
 
 	spinlock_t lock;
 	struct list_head list;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 struct media_ctl;
@@ -193,6 +200,8 @@
 	bool trigger_tstamp_pending_update; /* trigger timestamp being updated from initial estimate */
 	bool lowlatency_playback;	/* low-latency playback mode */
 	struct media_ctl *media_ctl;
+
+	ANDROID_KABI_RESERVE(1);
 };
 
 struct snd_usb_stream {
diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c
index 6c7d842..def03c9 100644
--- a/sound/usb/endpoint.c
+++ b/sound/usb/endpoint.c
@@ -13,6 +13,8 @@
 #include <sound/pcm.h>
 #include <sound/pcm_params.h>
 
+#include <trace/hooks/audio_usboffload.h>
+
 #include "usbaudio.h"
 #include "helper.h"
 #include "card.h"
@@ -738,7 +740,8 @@
  * The endpoint needs to be closed via snd_usb_endpoint_close() later.
  *
  * Note that this function doesn't configure the endpoint.  The substream
- * needs to set it up later via snd_usb_endpoint_configure().
+ * needs to set it up later via snd_usb_endpoint_set_params() and
+ * snd_usb_endpoint_configure().
  */
 struct snd_usb_endpoint *
 snd_usb_endpoint_open(struct snd_usb_audio *chip,
@@ -824,6 +827,7 @@
 	mutex_unlock(&chip->mutex);
 	return ep;
 }
+EXPORT_SYMBOL_GPL(snd_usb_endpoint_open);
 
 /*
  * snd_usb_endpoint_set_sync: Link data and sync endpoints
@@ -908,6 +912,7 @@
 	}
 	mutex_unlock(&chip->mutex);
 }
+EXPORT_SYMBOL_GPL(snd_usb_endpoint_close);
 
 /* Prepare for suspening EP, called from the main suspend handler */
 void snd_usb_endpoint_suspend(struct snd_usb_endpoint *ep)
@@ -1261,12 +1266,13 @@
 /*
  * snd_usb_endpoint_set_params: configure an snd_usb_endpoint
  *
+ * It's called either from hw_params callback.
  * Determine the number of URBs to be used on this endpoint.
  * An endpoint must be configured before it can be started.
  * An endpoint that is already running can not be reconfigured.
  */
-static int snd_usb_endpoint_set_params(struct snd_usb_audio *chip,
-				       struct snd_usb_endpoint *ep)
+int snd_usb_endpoint_set_params(struct snd_usb_audio *chip,
+				struct snd_usb_endpoint *ep)
 {
 	const struct audioformat *fmt = ep->cur_audiofmt;
 	int err;
@@ -1322,10 +1328,10 @@
 }
 
 /*
- * snd_usb_endpoint_configure: Configure the endpoint
+ * snd_usb_endpoint_configure: Prepare the endpoint
  *
  * This function sets up the EP to be fully usable state.
- * It's called either from hw_params or prepare callback.
+ * It's called either from prepare callback.
  * The function checks need_setup flag, and performs nothing unless needed,
  * so it's safe to call this multiple times.
  *
@@ -1333,7 +1339,7 @@
  * or a negative error code.
  */
 int snd_usb_endpoint_configure(struct snd_usb_audio *chip,
-			       struct snd_usb_endpoint *ep)
+			     struct snd_usb_endpoint *ep)
 {
 	bool iface_first;
 	int err = 0;
@@ -1355,9 +1361,6 @@
 			if (err < 0)
 				goto unlock;
 		}
-		err = snd_usb_endpoint_set_params(chip, ep);
-		if (err < 0)
-			goto unlock;
 		goto done;
 	}
 
@@ -1385,10 +1388,6 @@
 	if (err < 0)
 		goto unlock;
 
-	err = snd_usb_endpoint_set_params(chip, ep);
-	if (err < 0)
-		goto unlock;
-
 	err = snd_usb_select_mode_quirk(chip, ep->cur_audiofmt);
 	if (err < 0)
 		goto unlock;
@@ -1410,6 +1409,7 @@
 	mutex_unlock(&chip->mutex);
 	return err;
 }
+EXPORT_SYMBOL_GPL(snd_usb_endpoint_configure);
 
 /* get the current rate set to the given clock by any endpoint */
 int snd_usb_endpoint_get_clock_rate(struct snd_usb_audio *chip, int clock)
@@ -1487,6 +1487,8 @@
 		goto fill_rest;
 	}
 
+	trace_android_vh_audio_usb_offload_ep_action(ep, true);
+
 	for (i = 0; i < ep->nurbs; i++) {
 		struct urb *urb = ep->urb[i].urb;
 
@@ -1572,6 +1574,7 @@
 		if (ep->sync_source)
 			WRITE_ONCE(ep->sync_source->sync_sink, NULL);
 		stop_urbs(ep, false, keep_pending);
+		trace_android_vh_audio_usb_offload_ep_action(ep, false);
 	}
 }
 
diff --git a/sound/usb/endpoint.h b/sound/usb/endpoint.h
index daa7ba0..eb46103 100644
--- a/sound/usb/endpoint.h
+++ b/sound/usb/endpoint.h
@@ -17,8 +17,10 @@
 		      bool is_sync_ep);
 void snd_usb_endpoint_close(struct snd_usb_audio *chip,
 			    struct snd_usb_endpoint *ep);
+int snd_usb_endpoint_set_params(struct snd_usb_audio *chip,
+				struct snd_usb_endpoint *ep);
 int snd_usb_endpoint_configure(struct snd_usb_audio *chip,
-			       struct snd_usb_endpoint *ep);
+			     struct snd_usb_endpoint *ep);
 int snd_usb_endpoint_get_clock_rate(struct snd_usb_audio *chip, int clock);
 
 bool snd_usb_endpoint_compatible(struct snd_usb_audio *chip,
diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c
index de0964d..3258934 100644
--- a/sound/usb/pcm.c
+++ b/sound/usb/pcm.c
@@ -14,6 +14,8 @@
 #include <sound/pcm.h>
 #include <sound/pcm_params.h>
 
+#include <trace/hooks/audio_usboffload.h>
+
 #include "usbaudio.h"
 #include "card.h"
 #include "quirks.h"
@@ -95,6 +97,7 @@
 	const struct audioformat *fp;
 	const struct audioformat *found = NULL;
 	int cur_attr = 0, attr;
+	bool need_ignore = false;
 
 	list_for_each_entry(fp, fmt_list_head, list) {
 		if (strict_match) {
@@ -114,6 +117,11 @@
 				continue;
 		}
 		attr = fp->ep_attr & USB_ENDPOINT_SYNCTYPE;
+
+		trace_android_vh_audio_usb_offload_synctype(subs, attr, &need_ignore);
+		if (need_ignore)
+			continue;
+
 		if (!found) {
 			found = fp;
 			cur_attr = attr;
@@ -553,7 +561,13 @@
 	subs->cur_audiofmt = fmt;
 	mutex_unlock(&chip->mutex);
 
-	ret = configure_endpoints(chip, subs);
+	if (subs->sync_endpoint) {
+		ret = snd_usb_endpoint_set_params(chip, subs->sync_endpoint);
+		if (ret < 0)
+			goto unlock;
+	}
+
+	ret = snd_usb_endpoint_set_params(chip, subs->data_endpoint);
 
  unlock:
 	if (ret < 0)
@@ -1566,6 +1580,7 @@
 {
 	struct snd_usb_substream *subs = substream->runtime->private_data;
 	int err;
+	bool suspend = true;
 
 	switch (cmd) {
 	case SNDRV_PCM_TRIGGER_START:
@@ -1593,6 +1608,10 @@
 			subs->cur_audiofmt->altsetting);
 		return 0;
 	case SNDRV_PCM_TRIGGER_SUSPEND:
+		trace_android_vh_audio_usb_offload_suspend(substream, cmd, &suspend);
+		if (!suspend)
+			return 0;
+		fallthrough;
 	case SNDRV_PCM_TRIGGER_STOP:
 		stop_endpoints(subs, substream->runtime->status->state == SNDRV_PCM_STATE_DRAINING);
 		snd_usb_endpoint_set_callback(subs->data_endpoint,
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 8de572e..7063533 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -1730,6 +1730,48 @@
 }
 
 /*
+ * registration quirk:
+ * the registration is skipped if a device matches with the given ID,
+ * unless the interface reaches to the defined one.  This is for delaying
+ * the registration until the last known interface, so that the card and
+ * devices appear at the same time.
+ */
+
+struct registration_quirk {
+	unsigned int usb_id;	/* composed via USB_ID() */
+	unsigned int interface;	/* the interface to trigger register */
+};
+
+#define REG_QUIRK_ENTRY(vendor, product, iface) \
+	{ .usb_id = USB_ID(vendor, product), .interface = (iface) }
+
+static const struct registration_quirk registration_quirks[] = {
+	REG_QUIRK_ENTRY(0x0951, 0x16d8, 2),	/* Kingston HyperX AMP */
+	REG_QUIRK_ENTRY(0x0951, 0x16ed, 2),	/* Kingston HyperX Cloud Alpha S */
+	REG_QUIRK_ENTRY(0x0951, 0x16ea, 2),	/* Kingston HyperX Cloud Flight S */
+	REG_QUIRK_ENTRY(0x0ecb, 0x1f46, 2),	/* JBL Quantum 600 */
+	REG_QUIRK_ENTRY(0x0ecb, 0x1f47, 2),	/* JBL Quantum 800 */
+	REG_QUIRK_ENTRY(0x0ecb, 0x1f4c, 2),	/* JBL Quantum 400 */
+	REG_QUIRK_ENTRY(0x0ecb, 0x2039, 2),	/* JBL Quantum 400 */
+	REG_QUIRK_ENTRY(0x0ecb, 0x203c, 2),	/* JBL Quantum 600 */
+	REG_QUIRK_ENTRY(0x0ecb, 0x203e, 2),	/* JBL Quantum 800 */
+	{ 0 }					/* terminator */
+};
+
+/* return true if skipping registration */
+bool snd_usb_registration_quirk(struct snd_usb_audio *chip, int iface)
+{
+	const struct registration_quirk *q;
+
+	for (q = registration_quirks; q->usb_id; q++)
+		if (chip->usb_id == q->usb_id)
+			return iface < q->interface;
+
+	/* Register as normal */
+	return false;
+}
+
+/*
  * driver behavior quirk flags
  */
 struct usb_audio_quirk_flags_table {
diff --git a/sound/usb/quirks.h b/sound/usb/quirks.h
index f9bfd5a..31abb7c 100644
--- a/sound/usb/quirks.h
+++ b/sound/usb/quirks.h
@@ -48,6 +48,8 @@
 					  struct audioformat *fp,
 					  int stream);
 
+bool snd_usb_registration_quirk(struct snd_usb_audio *chip, int iface);
+
 void snd_usb_init_quirk_flags(struct snd_usb_audio *chip);
 
 #endif /* __USBAUDIO_QUIRKS_H */
diff --git a/sound/usb/usbaudio.h b/sound/usb/usbaudio.h
index ec06f44..05f0478 100644
--- a/sound/usb/usbaudio.h
+++ b/sound/usb/usbaudio.h
@@ -12,6 +12,8 @@
 #define USB_ID_VENDOR(id) ((id) >> 16)
 #define USB_ID_PRODUCT(id) ((u16)(id))
 
+#include <linux/android_kabi.h>
+
 /*
  *
  */
@@ -37,7 +39,6 @@
 	unsigned int quirk_flags;
 	unsigned int need_delayed_register:1; /* warn for delayed registration */
 	int num_interfaces;
-	int last_iface;
 	int num_suspended_intf;
 	int sample_rate_read_error;
 
@@ -60,6 +61,11 @@
 	struct usb_host_interface *ctrl_intf;	/* the audio control interface */
 	struct media_device *media_dev;
 	struct media_intf_devnode *ctl_intf_media_devnode;
+
+	ANDROID_KABI_RESERVE(1);
+	ANDROID_KABI_RESERVE(2);
+	ANDROID_KABI_RESERVE(3);
+	ANDROID_KABI_RESERVE(4);
 };
 
 #define USB_AUDIO_IFACE_UNUSED	((void *)-1L)
diff --git a/tools/bpf/resolve_btfids/Makefile b/tools/bpf/resolve_btfids/Makefile
index af9f9d3..35f0920 100644
--- a/tools/bpf/resolve_btfids/Makefile
+++ b/tools/bpf/resolve_btfids/Makefile
@@ -23,6 +23,8 @@
 LD       = $(HOSTLD)
 ARCH     = $(HOSTARCH)
 RM      ?= rm
+CFLAGS  := $(KBUILD_HOSTCFLAGS)
+LDFLAGS := $(KBUILD_HOSTLDFLAGS)
 
 OUTPUT ?= $(srctree)/tools/bpf/resolve_btfids/
 
@@ -45,9 +47,10 @@
 	$(Q)$(MAKE) -C $(SUBCMD_SRC) OUTPUT=$(abspath $(dir $@))/ $(abspath $@)
 
 $(BPFOBJ): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) | $(OUTPUT)/libbpf
-	$(Q)$(MAKE) $(submake_extras) -C $(LIBBPF_SRC)  OUTPUT=$(abspath $(dir $@))/ $(abspath $@)
+	$(Q)$(MAKE) $(submake_extras) -C $(LIBBPF_SRC)  OUTPUT=$(abspath $(dir $@))/ \
+		EXTRA_CFLAGS="$(CFLAGS)" $(abspath $@)
 
-CFLAGS := -g \
+CFLAGS += -g \
           -I$(srctree)/tools/include \
           -I$(srctree)/tools/include/uapi \
           -I$(LIBBPF_SRC) \
diff --git a/tools/crypto/gen_fips140_testvecs.py b/tools/crypto/gen_fips140_testvecs.py
new file mode 100755
index 0000000..825c487
--- /dev/null
+++ b/tools/crypto/gen_fips140_testvecs.py
@@ -0,0 +1,125 @@
+#!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Copyright 2021 Google LLC
+#
+# Generate most of the test vectors for the FIPS 140 cryptographic self-tests.
+#
+# Usage:
+#    tools/crypto/gen_fips140_testvecs.py > crypto/fips140-generated-testvecs.h
+#
+# Prerequisites:
+#    Debian:      apt-get install python3-pycryptodome python3-cryptography
+#    Arch Linux:  pacman -S python-pycryptodomex python-cryptography
+
+import hashlib
+import hmac
+import os
+
+import Cryptodome.Cipher.AES
+import Cryptodome.Util.Counter
+
+import cryptography.hazmat.primitives.ciphers
+import cryptography.hazmat.primitives.ciphers.algorithms
+import cryptography.hazmat.primitives.ciphers.modes
+
+scriptname = os.path.basename(__file__)
+
+message     = bytes('This is a 32-byte test message.\0', 'ascii')
+aes_key     = bytes('128-bit AES key\0', 'ascii')
+aes_xts_key = bytes('This is an AES-128-XTS key.\0\0\0\0\0', 'ascii')
+aes_iv      = bytes('ABCDEFGHIJKLMNOP', 'ascii')
+assoc       = bytes('associated data string', 'ascii')
+hmac_key    = bytes('128-bit HMAC key', 'ascii')
+
+def warn_generated():
+    print(f'''/*
+ * This header was automatically generated by {scriptname}.
+ * Don't edit it directly.
+ */''')
+
+def is_string_value(value):
+    return (value.isascii() and
+            all(c == '\x00' or c.isprintable() for c in str(value, 'ascii')))
+
+def format_value(value, is_string):
+    if is_string:
+        return value
+    hexstr = ''
+    for byte in value:
+        hexstr += f'\\x{byte:02x}'
+    return hexstr
+
+def print_value(name, value):
+    is_string = is_string_value(value)
+    hdr = f'static const u8 fips_{name}[{len(value)}] __initconst ='
+    print(hdr, end='')
+    if is_string:
+        value = str(value, 'ascii').rstrip('\x00')
+        chars_per_byte = 1
+    else:
+        chars_per_byte = 4
+    bytes_per_line = 64 // chars_per_byte
+
+    if len(hdr) + (chars_per_byte * len(value)) + 4 <= 80:
+        print(f' "{format_value(value, is_string)}"', end='')
+    else:
+        for chunk in [value[i:i+bytes_per_line]
+                      for i in range(0, len(value), bytes_per_line)]:
+            print(f'\n\t"{format_value(chunk, is_string)}"', end='')
+    print(';')
+    print('')
+
+def generate_aes_testvecs():
+    print_value('aes_key', aes_key)
+    print_value('aes_iv', aes_iv)
+
+    cbc = Cryptodome.Cipher.AES.new(aes_key, Cryptodome.Cipher.AES.MODE_CBC,
+                                    iv=aes_iv)
+    print_value('aes_cbc_ciphertext', cbc.encrypt(message))
+
+    ecb = Cryptodome.Cipher.AES.new(aes_key, Cryptodome.Cipher.AES.MODE_ECB)
+    print_value('aes_ecb_ciphertext', ecb.encrypt(message))
+
+    ctr = Cryptodome.Cipher.AES.new(aes_key, Cryptodome.Cipher.AES.MODE_CTR,
+                                    nonce=bytes(), initial_value=aes_iv)
+    print_value('aes_ctr_ciphertext', ctr.encrypt(message))
+
+    print_value('aes_gcm_assoc', assoc)
+    gcm = Cryptodome.Cipher.AES.new(aes_key, Cryptodome.Cipher.AES.MODE_GCM,
+                                    nonce=aes_iv[:12], mac_len=16)
+    gcm.update(assoc)
+    raw_ciphertext, tag = gcm.encrypt_and_digest(message)
+    print_value('aes_gcm_ciphertext', raw_ciphertext + tag)
+
+    # Unfortunately, pycryptodome doesn't support XTS, so for it we need to use
+    # a different Python package (the "cryptography" package).
+    print_value('aes_xts_key', aes_xts_key)
+    xts = cryptography.hazmat.primitives.ciphers.Cipher(
+        cryptography.hazmat.primitives.ciphers.algorithms.AES(aes_xts_key),
+        cryptography.hazmat.primitives.ciphers.modes.XTS(aes_iv)).encryptor()
+    ciphertext = xts.update(message) + xts.finalize()
+    print_value('aes_xts_ciphertext', ciphertext)
+
+    cmac = Cryptodome.Hash.CMAC.new(aes_key, ciphermod=Cryptodome.Cipher.AES)
+    cmac.update(message)
+    print_value('aes_cmac_digest', cmac.digest())
+
+def generate_sha_testvecs():
+    print_value('hmac_key', hmac_key)
+    for alg in ['sha1', 'sha256', 'hmac_sha256', 'sha512']:
+        if alg.startswith('hmac_'):
+            h = hmac.new(hmac_key, message, alg.removeprefix('hmac_'))
+        else:
+            h = hashlib.new(alg, message)
+        print_value(f'{alg}_digest', h.digest())
+
+print('/* SPDX-License-Identifier: GPL-2.0-only */')
+print('/* Copyright 2021 Google LLC */')
+print('')
+warn_generated()
+print('')
+print_value('message', message)
+generate_aes_testvecs()
+generate_sha_testvecs()
+warn_generated()
diff --git a/tools/include/uapi/linux/prctl.h b/tools/include/uapi/linux/prctl.h
index 43bd7f7..de45fcd 100644
--- a/tools/include/uapi/linux/prctl.h
+++ b/tools/include/uapi/linux/prctl.h
@@ -235,7 +235,7 @@
 #define PR_GET_TAGGED_ADDR_CTRL		56
 # define PR_TAGGED_ADDR_ENABLE		(1UL << 0)
 /* MTE tag check fault modes */
-# define PR_MTE_TCF_NONE		0
+# define PR_MTE_TCF_NONE		0UL
 # define PR_MTE_TCF_SYNC		(1UL << 1)
 # define PR_MTE_TCF_ASYNC		(1UL << 2)
 # define PR_MTE_TCF_MASK		(PR_MTE_TCF_SYNC | PR_MTE_TCF_ASYNC)
diff --git a/tools/testing/nvdimm/test/iomap.c b/tools/testing/nvdimm/test/iomap.c
index b752ce4..ed563bd 100644
--- a/tools/testing/nvdimm/test/iomap.c
+++ b/tools/testing/nvdimm/test/iomap.c
@@ -100,17 +100,25 @@
 {
 	struct dev_pagemap *pgmap = _pgmap;
 
-	WARN_ON(!pgmap);
+	WARN_ON(!pgmap || !pgmap->ref);
 
-	percpu_ref_kill(&pgmap->ref);
+	if (pgmap->ops && pgmap->ops->kill)
+		pgmap->ops->kill(pgmap);
+	else
+		percpu_ref_kill(pgmap->ref);
 
-	wait_for_completion(&pgmap->done);
-	percpu_ref_exit(&pgmap->ref);
+	if (pgmap->ops && pgmap->ops->cleanup) {
+		pgmap->ops->cleanup(pgmap);
+	} else {
+		wait_for_completion(&pgmap->done);
+		percpu_ref_exit(pgmap->ref);
+	}
 }
 
 static void dev_pagemap_percpu_release(struct percpu_ref *ref)
 {
-	struct dev_pagemap *pgmap = container_of(ref, struct dev_pagemap, ref);
+	struct dev_pagemap *pgmap =
+		container_of(ref, struct dev_pagemap, internal_ref);
 
 	complete(&pgmap->done);
 }
@@ -124,11 +132,22 @@
 	if (!nfit_res)
 		return devm_memremap_pages(dev, pgmap);
 
-	init_completion(&pgmap->done);
-	error = percpu_ref_init(&pgmap->ref, dev_pagemap_percpu_release, 0,
-				GFP_KERNEL);
-	if (error)
-		return ERR_PTR(error);
+	if (!pgmap->ref) {
+		if (pgmap->ops && (pgmap->ops->kill || pgmap->ops->cleanup))
+			return ERR_PTR(-EINVAL);
+
+		init_completion(&pgmap->done);
+		error = percpu_ref_init(&pgmap->internal_ref,
+				dev_pagemap_percpu_release, 0, GFP_KERNEL);
+		if (error)
+			return ERR_PTR(error);
+		pgmap->ref = &pgmap->internal_ref;
+	} else {
+		if (!pgmap->ops || !pgmap->ops->kill || !pgmap->ops->cleanup) {
+			WARN(1, "Missing reference count teardown definition\n");
+			return ERR_PTR(-EINVAL);
+		}
+	}
 
 	error = devm_add_action_or_reset(dev, nfit_test_kill, pgmap);
 	if (error)
diff --git a/tools/testing/selftests/damon/debugfs_attrs.sh b/tools/testing/selftests/damon/debugfs_attrs.sh
index ecda972..b3d88b0 100644
--- a/tools/testing/selftests/damon/debugfs_attrs.sh
+++ b/tools/testing/selftests/damon/debugfs_attrs.sh
@@ -57,6 +57,19 @@
 test_content "$file" "$orig_content" "1 2 3 4 5" "successfully written"
 echo "$orig_content" > "$file"
 
+# Test schemes file
+# =================
+
+file="$DBGFS/schemes"
+orig_content=$(cat "$file")
+
+test_write_succ "$file" "1 2 3 4 5 6 4 0 0 0 1 2 3 1 100 3 2 1" \
+	"$orig_content" "valid input"
+test_write_fail "$file" "1 2
+3 4 5 6 3 0 0 0 1 2 3 1 100 3 2 1" "$orig_content" "multi lines"
+test_write_succ "$file" "" "$orig_content" "disabling"
+echo "$orig_content" > "$file"
+
 # Test target_ids file
 # ====================
 
diff --git a/tools/testing/selftests/filesystems/fuse/.gitignore b/tools/testing/selftests/filesystems/fuse/.gitignore
new file mode 100644
index 0000000..3ee9a27
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/.gitignore
@@ -0,0 +1,2 @@
+fuse_test
+*.raw
diff --git a/tools/testing/selftests/filesystems/fuse/Makefile b/tools/testing/selftests/filesystems/fuse/Makefile
new file mode 100644
index 0000000..261d760
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/Makefile
@@ -0,0 +1,34 @@
+# SPDX-License-Identifier: GPL-2.0
+CFLAGS += -D_FILE_OFFSET_BITS=64 -Wall -Werror -I../.. -I../../../../.. -I../../../../include
+LDLIBS := -lpthread -lelf
+TEST_GEN_PROGS := fuse_test fuse_daemon
+TEST_GEN_FILES := \
+	test_bpf.bpf \
+	fd_bpf.bpf \
+	fd.sh \
+
+EXTRA_CLEAN := *.bpf
+BPF_FLAGS = -Wall -Werror -O2 -g -emit-llvm \
+	    -I ../../../../../include \
+	    -idirafter /usr/lib/gcc/x86_64-linux-gnu/10/include \
+	    -idirafter /usr/local/include \
+	    -idirafter /usr/include/x86_64-linux-gnu \
+	    -idirafter /usr/include \
+
+include ../../lib.mk
+
+# Put after include ../../lib.mk since that changes $(TEST_GEN_PROGS)
+# Otherwise you get multiple targets, this becomes the default, and it's a mess
+EXTRA_SOURCES := bpf_loader.c
+$(TEST_GEN_PROGS) : $(EXTRA_SOURCES)
+
+$(OUTPUT)/%.ir: %.c
+	clang $(BPF_FLAGS) -c $< -o $@
+
+$(OUTPUT)/%.bpf: $(OUTPUT)/%.ir
+	llc -march=bpf -filetype=obj -o $@ $<
+
+$(OUTPUT)/fd.sh: fd.txt
+	cp $< $@
+	chmod 755 $@
+
diff --git a/tools/testing/selftests/filesystems/fuse/bpf_loader.c b/tools/testing/selftests/filesystems/fuse/bpf_loader.c
new file mode 100644
index 0000000..5bf26ea
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/bpf_loader.c
@@ -0,0 +1,791 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2021 Google LLC
+ */
+
+#include "test_fuse.h"
+
+#include <dirent.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <gelf.h>
+#include <libelf.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/mount.h>
+#include <sys/stat.h>
+#include <sys/statfs.h>
+#include <sys/xattr.h>
+
+#include <linux/unistd.h>
+
+#include <include/uapi/linux/fuse.h>
+#include <include/uapi/linux/bpf.h>
+
+struct _test_options test_options;
+
+struct s s(const char *s1)
+{
+	struct s s = {0};
+
+	if (!s1)
+		return s;
+
+	s.s = malloc(strlen(s1) + 1);
+	if (!s.s)
+		return s;
+
+	strcpy(s.s, s1);
+	return s;
+}
+
+struct s sn(const char *s1, const char *s2)
+{
+	struct s s = {0};
+
+	if (!s1)
+		return s;
+
+	s.s = malloc(s2 - s1 + 1);
+	if (!s.s)
+		return s;
+
+	strncpy(s.s, s1, s2 - s1);
+	s.s[s2 - s1] = 0;
+	return s;
+}
+
+int s_cmp(struct s s1, struct s s2)
+{
+	int result = -1;
+
+	if (!s1.s || !s2.s)
+		goto out;
+	result = strcmp(s1.s, s2.s);
+out:
+	free(s1.s);
+	free(s2.s);
+	return result;
+}
+
+struct s s_cat(struct s s1, struct s s2)
+{
+	struct s s = {0};
+
+	if (!s1.s || !s2.s)
+		goto out;
+
+	s.s = malloc(strlen(s1.s) + strlen(s2.s) + 1);
+	if (!s.s)
+		goto out;
+
+	strcpy(s.s, s1.s);
+	strcat(s.s, s2.s);
+out:
+	free(s1.s);
+	free(s2.s);
+	return s;
+}
+
+struct s s_splitleft(struct s s1, char c)
+{
+	struct s s = {0};
+	char *split;
+
+	if (!s1.s)
+		return s;
+
+	split = strchr(s1.s, c);
+	if (split)
+		s = sn(s1.s, split);
+
+	free(s1.s);
+	return s;
+}
+
+struct s s_splitright(struct s s1, char c)
+{
+	struct s s2 = {0};
+	char *split;
+
+	if (!s1.s)
+		return s2;
+
+	split = strchr(s1.s, c);
+	if (split)
+		s2 = s(split + 1);
+
+	free(s1.s);
+	return s2;
+}
+
+struct s s_word(struct s s1, char c, size_t n)
+{
+	while (n--)
+		s1 = s_splitright(s1, c);
+	return s_splitleft(s1, c);
+}
+
+struct s s_path(struct s s1, struct s s2)
+{
+	return s_cat(s_cat(s1, s("/")), s2);
+}
+
+struct s s_pathn(size_t n, struct s s1, ...)
+{
+	va_list argp;
+
+	va_start(argp, s1);
+	while (--n)
+		s1 = s_path(s1, va_arg(argp, struct s));
+	va_end(argp);
+	return s1;
+}
+
+int s_link(struct s src_pathname, struct s dst_pathname)
+{
+	int res;
+
+	if (src_pathname.s && dst_pathname.s) {
+		res = link(src_pathname.s, dst_pathname.s);
+	} else {
+		res = -1;
+		errno = ENOMEM;
+	}
+
+	free(src_pathname.s);
+	free(dst_pathname.s);
+	return res;
+}
+
+int s_symlink(struct s src_pathname, struct s dst_pathname)
+{
+	int res;
+
+	if (src_pathname.s && dst_pathname.s) {
+		res = symlink(src_pathname.s, dst_pathname.s);
+	} else {
+		res = -1;
+		errno = ENOMEM;
+	}
+
+	free(src_pathname.s);
+	free(dst_pathname.s);
+	return res;
+}
+
+
+int s_mkdir(struct s pathname, mode_t mode)
+{
+	int res;
+
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = mkdir(pathname.s, mode);
+	free(pathname.s);
+	return res;
+}
+
+int s_rmdir(struct s pathname)
+{
+	int res;
+
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = rmdir(pathname.s);
+	free(pathname.s);
+	return res;
+}
+
+int s_unlink(struct s pathname)
+{
+	int res;
+
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = unlink(pathname.s);
+	free(pathname.s);
+	return res;
+}
+
+int s_open(struct s pathname, int flags, ...)
+{
+	va_list ap;
+	int res;
+
+	va_start(ap, flags);
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	if (flags & (O_CREAT | O_TMPFILE))
+		res = open(pathname.s, flags, va_arg(ap, mode_t));
+	else
+		res = open(pathname.s, flags);
+
+	free(pathname.s);
+	va_end(ap);
+	return res;
+}
+
+int s_openat(int dirfd, struct s pathname, int flags, ...)
+{
+	va_list ap;
+	int res;
+
+	va_start(ap, flags);
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	if (flags & (O_CREAT | O_TMPFILE))
+		res = openat(dirfd, pathname.s, flags, va_arg(ap, mode_t));
+	else
+		res = openat(dirfd, pathname.s, flags);
+
+	free(pathname.s);
+	va_end(ap);
+	return res;
+}
+
+int s_creat(struct s pathname, mode_t mode)
+{
+	int res;
+
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = open(pathname.s, O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC, mode);
+	free(pathname.s);
+	return res;
+}
+
+int s_mkfifo(struct s pathname, mode_t mode)
+{
+	int res;
+
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = mknod(pathname.s, S_IFIFO | mode, 0);
+	free(pathname.s);
+	return res;
+}
+
+int s_stat(struct s pathname, struct stat *st)
+{
+	int res;
+
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = stat(pathname.s, st);
+	free(pathname.s);
+	return res;
+}
+
+int s_statfs(struct s pathname, struct statfs *st)
+{
+	int res;
+
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = statfs(pathname.s, st);
+	free(pathname.s);
+	return res;
+}
+
+DIR *s_opendir(struct s pathname)
+{
+	DIR *res;
+
+	res = opendir(pathname.s);
+	free(pathname.s);
+	return res;
+}
+
+int s_getxattr(struct s pathname, const char name[], void *value, size_t size,
+	       ssize_t *ret_size)
+{
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	*ret_size = getxattr(pathname.s, name, value, size);
+	free(pathname.s);
+	return *ret_size >= 0 ? 0 : -1;
+}
+
+int s_listxattr(struct s pathname, void *list, size_t size, ssize_t *ret_size)
+{
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	*ret_size = listxattr(pathname.s, list, size);
+	free(pathname.s);
+	return *ret_size >= 0 ? 0 : -1;
+}
+
+int s_setxattr(struct s pathname, const char name[], const void *value, size_t size, int flags)
+{
+	int res;
+
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = setxattr(pathname.s, name, value, size, flags);
+	free(pathname.s);
+	return res;
+}
+
+int s_removexattr(struct s pathname, const char name[])
+{
+	int res;
+
+	if (!pathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = removexattr(pathname.s, name);
+	free(pathname.s);
+	return res;
+}
+
+int s_rename(struct s oldpathname, struct s newpathname)
+{
+	int res;
+
+	if (!oldpathname.s || !newpathname.s) {
+		errno = ENOMEM;
+		return -1;
+	}
+
+	res = rename(oldpathname.s, newpathname.s);
+	free(oldpathname.s);
+	free(newpathname.s);
+	return res;
+}
+
+int s_fuse_attr(struct s pathname, struct fuse_attr *fuse_attr_out)
+{
+
+	struct stat st;
+	int result = TEST_FAILURE;
+
+	TESTSYSCALL(s_stat(pathname, &st));
+
+	fuse_attr_out->ino = st.st_ino;
+	fuse_attr_out->mode = st.st_mode;
+	fuse_attr_out->nlink = st.st_nlink;
+	fuse_attr_out->uid = st.st_uid;
+	fuse_attr_out->gid = st.st_gid;
+	fuse_attr_out->rdev = st.st_rdev;
+	fuse_attr_out->size = st.st_size;
+	fuse_attr_out->blksize = st.st_blksize;
+	fuse_attr_out->blocks = st.st_blocks;
+	fuse_attr_out->atime = st.st_atime;
+	fuse_attr_out->mtime = st.st_mtime;
+	fuse_attr_out->ctime = st.st_ctime;
+	fuse_attr_out->atimensec = UINT32_MAX;
+	fuse_attr_out->mtimensec = UINT32_MAX;
+	fuse_attr_out->ctimensec = UINT32_MAX;
+
+	result = TEST_SUCCESS;
+out:
+	return result;
+}
+
+struct s tracing_folder(void)
+{
+	struct s trace = {0};
+	FILE *mounts = NULL;
+	char *line = NULL;
+	size_t size = 0;
+
+	TEST(mounts = fopen("/proc/mounts", "re"), mounts);
+	while (getline(&line, &size, mounts) != -1) {
+		if (!s_cmp(s_word(sn(line, line + size), ' ', 2),
+			   s("tracefs"))) {
+			trace = s_word(sn(line, line + size), ' ', 1);
+			break;
+		}
+
+		if (!s_cmp(s_word(sn(line, line + size), ' ', 2), s("debugfs")))
+			trace = s_path(s_word(sn(line, line + size), ' ', 1),
+				       s("tracing"));
+	}
+
+out:
+	free(line);
+	fclose(mounts);
+	return trace;
+}
+
+int tracing_on(void)
+{
+	int result = TEST_FAILURE;
+	int tracing_on = -1;
+
+	TEST(tracing_on = s_open(s_path(tracing_folder(), s("tracing_on")),
+				 O_WRONLY | O_CLOEXEC),
+	     tracing_on != -1);
+	TESTEQUAL(write(tracing_on, "1", 1), 1);
+	result = TEST_SUCCESS;
+out:
+	close(tracing_on);
+	return result;
+}
+
+char *concat_file_name(const char *dir, const char *file)
+{
+	char full_name[FILENAME_MAX] = "";
+
+	if (snprintf(full_name, ARRAY_SIZE(full_name), "%s/%s", dir, file) < 0)
+		return NULL;
+	return strdup(full_name);
+}
+
+char *setup_mount_dir(const char *name)
+{
+	struct stat st;
+	char *current_dir = getcwd(NULL, 0);
+	char *mount_dir = concat_file_name(current_dir, name);
+
+	free(current_dir);
+	if (stat(mount_dir, &st) == 0) {
+		if (S_ISDIR(st.st_mode))
+			return mount_dir;
+
+		ksft_print_msg("%s is a file, not a dir.\n", mount_dir);
+		return NULL;
+	}
+
+	if (mkdir(mount_dir, 0777)) {
+		ksft_print_msg("Can't create mount dir.");
+		return NULL;
+	}
+
+	return mount_dir;
+}
+
+int delete_dir_tree(const char *dir_path, bool remove_root)
+{
+	DIR *dir = NULL;
+	struct dirent *dp;
+	int result = 0;
+
+	dir = opendir(dir_path);
+	if (!dir) {
+		result = -errno;
+		goto out;
+	}
+
+	while ((dp = readdir(dir))) {
+		char *full_path;
+
+		if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, ".."))
+			continue;
+
+		full_path = concat_file_name(dir_path, dp->d_name);
+		if (dp->d_type == DT_DIR)
+			result = delete_dir_tree(full_path, true);
+		else
+			result = unlink(full_path);
+		free(full_path);
+		if (result)
+			goto out;
+	}
+
+out:
+	if (dir)
+		closedir(dir);
+	if (!result && remove_root)
+		rmdir(dir_path);
+	return result;
+}
+
+static int mount_fuse_maybe_init(const char *mount_dir, int bpf_fd, int dir_fd,
+			     int *fuse_dev_ptr, bool init)
+{
+	int result = TEST_FAILURE;
+	int fuse_dev = -1;
+	char options[FILENAME_MAX];
+	uint8_t bytes_in[FUSE_MIN_READ_BUFFER];
+	uint8_t bytes_out[FUSE_MIN_READ_BUFFER];
+
+	DECL_FUSE_IN(init);
+
+	TEST(fuse_dev = open("/dev/fuse", O_RDWR | O_CLOEXEC), fuse_dev != -1);
+	snprintf(options, FILENAME_MAX, "fd=%d,user_id=0,group_id=0,rootmode=0040000",
+		 fuse_dev);
+	if (bpf_fd != -1)
+		snprintf(options + strlen(options),
+			 sizeof(options) - strlen(options),
+			 ",root_bpf=%d", bpf_fd);
+	if (dir_fd != -1)
+		snprintf(options + strlen(options),
+			 sizeof(options) - strlen(options),
+			 ",root_dir=%d", dir_fd);
+	TESTSYSCALL(mount("ABC", mount_dir, "fuse", 0, options));
+
+	if (init) {
+		TESTFUSEIN(FUSE_INIT, init_in);
+		TESTEQUAL(init_in->major, FUSE_KERNEL_VERSION);
+		TESTEQUAL(init_in->minor, FUSE_KERNEL_MINOR_VERSION);
+		TESTFUSEOUT1(fuse_init_out, ((struct fuse_init_out) {
+			.major = FUSE_KERNEL_VERSION,
+			.minor = FUSE_KERNEL_MINOR_VERSION,
+			.max_readahead = 4096,
+			.flags = 0,
+			.max_background = 0,
+			.congestion_threshold = 0,
+			.max_write = 4096,
+			.time_gran = 1000,
+			.max_pages = 12,
+			.map_alignment = 4096,
+		}));
+	}
+
+	*fuse_dev_ptr = fuse_dev;
+	fuse_dev = -1;
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	return result;
+}
+
+int mount_fuse(const char *mount_dir, int bpf_fd, int dir_fd, int *fuse_dev_ptr)
+{
+	return mount_fuse_maybe_init(mount_dir, bpf_fd, dir_fd, fuse_dev_ptr,
+				     true);
+}
+
+int mount_fuse_no_init(const char *mount_dir, int bpf_fd, int dir_fd,
+		       int *fuse_dev_ptr)
+{
+	return mount_fuse_maybe_init(mount_dir, bpf_fd, dir_fd, fuse_dev_ptr,
+				     false);
+}
+
+struct fuse_bpf_map {
+	unsigned int map_type;
+	size_t key_size;
+	size_t value_size;
+	unsigned int max_entries;
+};
+
+static int install_maps(Elf_Data *maps, int maps_index, Elf *elf,
+			Elf_Data *symbols, int symbol_index,
+			struct map_relocation **mr, size_t *map_count)
+{
+	int result = TEST_FAILURE;
+	int i;
+	GElf_Sym symbol;
+
+	TESTNE((void *)symbols, NULL);
+
+	for (i = 0; i < symbols->d_size / sizeof(symbol); ++i) {
+		TESTNE((void *)gelf_getsym(symbols, i, &symbol), 0);
+		if (symbol.st_shndx == maps_index) {
+			struct fuse_bpf_map *map;
+			union bpf_attr attr;
+			int map_fd;
+
+			map = (struct fuse_bpf_map *)
+				((char *)maps->d_buf + symbol.st_value);
+
+			attr = (union bpf_attr) {
+				.map_type = map->map_type,
+				.key_size = map->key_size,
+				.value_size = map->value_size,
+				.max_entries = map->max_entries,
+			};
+
+			TEST(*mr = realloc(*mr, ++*map_count *
+					   sizeof(struct fuse_bpf_map)),
+			     *mr);
+			TEST(map_fd = syscall(__NR_bpf, BPF_MAP_CREATE,
+					      &attr, sizeof(attr)),
+			     map_fd != -1);
+			(*mr)[*map_count - 1] = (struct map_relocation) {
+				.name = strdup(elf_strptr(elf, symbol_index,
+							  symbol.st_name)),
+				.fd = map_fd,
+				.value = symbol.st_value,
+			};
+		}
+	}
+
+	result = TEST_SUCCESS;
+out:
+	return result;
+}
+
+static inline int relocate_maps(GElf_Shdr *rel_header, Elf_Data *rel_data,
+			 Elf_Data *prog_data, Elf_Data *symbol_data,
+			 struct map_relocation *map_relocations,
+			 size_t map_count)
+{
+	int result = TEST_FAILURE;
+	int i;
+	struct bpf_insn *insns = (struct bpf_insn *) prog_data->d_buf;
+
+	for (i = 0; i < rel_header->sh_size / rel_header->sh_entsize; ++i) {
+		GElf_Sym sym;
+		GElf_Rel rel;
+		unsigned int insn_idx;
+		int map_idx;
+
+		gelf_getrel(rel_data, i, &rel);
+		insn_idx = rel.r_offset / sizeof(struct bpf_insn);
+		insns[insn_idx].src_reg = BPF_PSEUDO_MAP_FD;
+
+		gelf_getsym(symbol_data, GELF_R_SYM(rel.r_info), &sym);
+		for (map_idx = 0; map_idx < map_count; map_idx++) {
+			if (map_relocations[map_idx].value == sym.st_value) {
+				insns[insn_idx].imm =
+					map_relocations[map_idx].fd;
+				break;
+			}
+		}
+		TESTNE(map_idx, map_count);
+	}
+
+	result = TEST_SUCCESS;
+out:
+	return result;
+}
+
+int install_elf_bpf(const char *file, const char *section, int *fd,
+		    struct map_relocation **map_relocations, size_t *map_count)
+{
+	int result = TEST_FAILURE;
+	char path[PATH_MAX] = {};
+	char *last_slash;
+	int filter_fd = -1;
+	union bpf_attr bpf_attr;
+	static char log[1 << 20];
+	Elf *elf = NULL;
+	GElf_Ehdr ehdr;
+	Elf_Data *data_prog = NULL, *data_maps = NULL, *data_symbols = NULL;
+	int maps_index, symbol_index, prog_index;
+	int i;
+	int bpf_prog_type_fuse_fd = -1;
+	char buffer[10] = {0};
+	int bpf_prog_type_fuse;
+
+	TESTNE(readlink("/proc/self/exe", path, PATH_MAX), -1);
+	TEST(last_slash = strrchr(path, '/'), last_slash);
+	strcpy(last_slash + 1, file);
+	TEST(filter_fd = open(path, O_RDONLY | O_CLOEXEC), filter_fd != -1);
+	TESTNE(elf_version(EV_CURRENT), EV_NONE);
+	TEST(elf = elf_begin(filter_fd, ELF_C_READ, NULL), elf);
+	TESTEQUAL((void *) gelf_getehdr(elf, &ehdr), &ehdr);
+	for (i = 1; i < ehdr.e_shnum; i++) {
+		char *shname;
+		GElf_Shdr shdr;
+		Elf_Scn *scn;
+
+		TEST(scn = elf_getscn(elf, i), scn);
+		TESTEQUAL((void *)gelf_getshdr(scn, &shdr), &shdr);
+		TEST(shname = elf_strptr(elf, ehdr.e_shstrndx, shdr.sh_name),
+		     shname);
+
+		if (!strcmp(shname, "maps")) {
+			TEST(data_maps = elf_getdata(scn, 0), data_maps);
+			maps_index = i;
+		} else if (shdr.sh_type == SHT_SYMTAB) {
+			TEST(data_symbols = elf_getdata(scn, 0), data_symbols);
+			symbol_index = shdr.sh_link;
+		} else if (!strcmp(shname, section)) {
+			TEST(data_prog = elf_getdata(scn, 0), data_prog);
+			prog_index = i;
+		}
+	}
+	TESTNE((void *) data_prog, NULL);
+
+	if (data_maps)
+		TESTEQUAL(install_maps(data_maps, maps_index, elf,
+				       data_symbols, symbol_index,
+				       map_relocations, map_count), 0);
+
+	/* Now relocate maps */
+	for (i = 1; i < ehdr.e_shnum; i++) {
+		GElf_Shdr rel_header;
+		Elf_Scn *scn;
+		Elf_Data *rel_data;
+
+		TEST(scn = elf_getscn(elf, i), scn);
+		TESTEQUAL((void *)gelf_getshdr(scn, &rel_header),
+			&rel_header);
+		if (rel_header.sh_type != SHT_REL)
+			continue;
+		TEST(rel_data = elf_getdata(scn, 0), rel_data);
+
+		if (rel_header.sh_info != prog_index)
+			continue;
+		TESTEQUAL(relocate_maps(&rel_header, rel_data,
+					data_prog, data_symbols,
+					*map_relocations, *map_count),
+			  0);
+	}
+
+	TEST(bpf_prog_type_fuse_fd = open("/sys/fs/fuse/bpf_prog_type_fuse",
+					  O_RDONLY | O_CLOEXEC),
+	     bpf_prog_type_fuse_fd != -1);
+	TESTGE(read(bpf_prog_type_fuse_fd, buffer, sizeof(buffer)), 1);
+	TEST(bpf_prog_type_fuse = strtol(buffer, NULL, 10),
+	     bpf_prog_type_fuse != 0);
+
+	bpf_attr = (union bpf_attr) {
+		.prog_type = bpf_prog_type_fuse,
+		.insn_cnt = data_prog->d_size / 8,
+		.insns = ptr_to_u64(data_prog->d_buf),
+		.license = ptr_to_u64("GPL"),
+		.log_buf = test_options.verbose ? ptr_to_u64(log) : 0,
+		.log_size = test_options.verbose ? sizeof(log) : 0,
+		.log_level = test_options.verbose ? 2 : 0,
+	};
+	*fd = syscall(__NR_bpf, BPF_PROG_LOAD, &bpf_attr, sizeof(bpf_attr));
+	if (test_options.verbose)
+		ksft_print_msg("%s\n", log);
+	if (*fd == -1 && errno == ENOSPC)
+		ksft_print_msg("bpf log size too small!\n");
+	TESTNE(*fd, -1);
+
+	result = TEST_SUCCESS;
+out:
+	close(filter_fd);
+	close(bpf_prog_type_fuse_fd);
+	return result;
+}
+
+
diff --git a/tools/testing/selftests/filesystems/fuse/fd.txt b/tools/testing/selftests/filesystems/fuse/fd.txt
new file mode 100644
index 0000000..15ce771
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/fd.txt
@@ -0,0 +1,21 @@
+fuse_daemon $*
+cd fd-dst
+ls
+cd show
+ls
+fsstress -s 123 -d . -p 4 -n 100 -l5
+echo test > wibble
+ls
+cat wibble
+fallocate -l 1000 wobble
+mkdir testdir
+mkdir tmpdir
+rmdir tmpdir
+touch tmp
+mv tmp tmp2
+rm tmp2
+
+# FUSE_LINK
+echo "ln_src contents" > ln_src
+ln ln_src ln_link
+cat ln_link
diff --git a/tools/testing/selftests/filesystems/fuse/fd_bpf.c b/tools/testing/selftests/filesystems/fuse/fd_bpf.c
new file mode 100644
index 0000000..3cd82d6
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/fd_bpf.c
@@ -0,0 +1,252 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+// Copyright (c) 2021 Google LLC
+
+#include "test_fuse_bpf.h"
+
+SEC("maps") struct fuse_bpf_map test_map = {
+	BPF_MAP_TYPE_ARRAY,
+	sizeof(uint32_t),
+	sizeof(uint32_t),
+	1000,
+};
+
+SEC("maps") struct fuse_bpf_map test_map2 = {
+	BPF_MAP_TYPE_HASH,
+	sizeof(uint32_t),
+	sizeof(uint64_t),
+	76,
+};
+
+SEC("test_daemon") int trace_daemon(struct fuse_bpf_args *fa)
+{
+	uint64_t uid_gid = bpf_get_current_uid_gid();
+	uint32_t uid = uid_gid & 0xffffffff;
+	uint64_t pid_tgid = bpf_get_current_pid_tgid();
+	uint32_t pid = pid_tgid & 0xffffffff;
+	uint32_t key = 23;
+	uint32_t *pvalue;
+
+	pvalue = bpf_map_lookup_elem(&test_map, &key);
+	if (pvalue) {
+		uint32_t value = *pvalue;
+
+		bpf_printk("pid %u uid %u value %u", pid, uid, value);
+		value++;
+		bpf_map_update_elem(&test_map, &key,  &value, BPF_ANY);
+	}
+
+	switch (fa->opcode) {
+	case FUSE_ACCESS | FUSE_PREFILTER: {
+		bpf_printk("Access: %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_GETATTR | FUSE_PREFILTER: {
+		const struct fuse_getattr_in *fgi = fa->in_args[0].value;
+
+		bpf_printk("Get Attr %d", fgi->fh);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_SETATTR | FUSE_PREFILTER: {
+		const struct fuse_setattr_in *fsi = fa->in_args[0].value;
+
+		bpf_printk("Set Attr %d", fsi->fh);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_OPENDIR | FUSE_PREFILTER: {
+		bpf_printk("Open Dir: %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_READDIR | FUSE_PREFILTER: {
+		const struct fuse_read_in *fri = fa->in_args[0].value;
+
+		bpf_printk("Read Dir: fh: %lu", fri->fh, fri->offset);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_LOOKUP | FUSE_PREFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("Lookup: %lx %s", fa->nodeid, name);
+		if (fa->nodeid == 1)
+			return FUSE_BPF_USER_FILTER | FUSE_BPF_BACKING;
+		else
+			return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_MKNOD | FUSE_PREFILTER: {
+		const struct fuse_mknod_in *fmi = fa->in_args[0].value;
+		const char *name = fa->in_args[1].value;
+
+		bpf_printk("mknod %s %x %x", name,  fmi->rdev | fmi->mode, fmi->umask);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_MKDIR | FUSE_PREFILTER: {
+		const struct fuse_mkdir_in *fmi = fa->in_args[0].value;
+		const char *name = fa->in_args[1].value;
+
+		bpf_printk("mkdir: %s %x %x", name, fmi->mode, fmi->umask);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_RMDIR | FUSE_PREFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("rmdir: %s", name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_RENAME | FUSE_PREFILTER: {
+		const char *oldname = fa->in_args[1].value;
+		const char *newname = fa->in_args[2].value;
+
+		bpf_printk("rename from %s", oldname);
+		bpf_printk("rename to %s", newname);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_RENAME2 | FUSE_PREFILTER: {
+		const struct fuse_rename2_in *fri = fa->in_args[0].value;
+		uint32_t flags = fri->flags;
+		const char *oldname = fa->in_args[1].value;
+		const char *newname = fa->in_args[2].value;
+
+		bpf_printk("rename(%x) from %s", flags, oldname);
+		bpf_printk("rename to %s", newname);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_UNLINK | FUSE_PREFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("unlink: %s", name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_LINK | FUSE_PREFILTER: {
+		const struct fuse_link_in *fli = fa->in_args[0].value;
+		const char *dst_name = fa->in_args[1].value;
+
+		bpf_printk("Link: %d %s", fli->oldnodeid, dst_name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_SYMLINK | FUSE_PREFILTER: {
+		const char *link_name = fa->in_args[0].value;
+		const char *link_dest = fa->in_args[1].value;
+
+		bpf_printk("symlink from %s", link_name);
+		bpf_printk("symlink to %s", link_dest);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_READLINK | FUSE_PREFILTER: {
+		const char *link_name = fa->in_args[0].value;
+
+		bpf_printk("readlink from %s", link_name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_RELEASE | FUSE_PREFILTER: {
+		const struct fuse_release_in *fri = fa->in_args[0].value;
+
+		bpf_printk("Release: %d", fri->fh);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_RELEASEDIR | FUSE_PREFILTER: {
+		const struct fuse_release_in *fri = fa->in_args[0].value;
+
+		bpf_printk("Release Dir: %d", fri->fh);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_CREATE | FUSE_PREFILTER: {
+		bpf_printk("Create %s", fa->in_args[1].value);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_OPEN | FUSE_PREFILTER: {
+		bpf_printk("Open: %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_READ | FUSE_PREFILTER: {
+		const struct fuse_read_in *fri = fa->in_args[0].value;
+
+		bpf_printk("Read: fh: %lu, offset %lu, size %lu",
+			   fri->fh, fri->offset, fri->size);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_WRITE | FUSE_PREFILTER: {
+		const struct fuse_write_in *fwi = fa->in_args[0].value;
+
+		bpf_printk("Write: fh: %lu, offset %lu, size %lu",
+			   fwi->fh, fwi->offset, fwi->size);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_FLUSH | FUSE_PREFILTER: {
+		const struct fuse_flush_in *ffi = fa->in_args[0].value;
+
+		bpf_printk("Flush %d", ffi->fh);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_FALLOCATE | FUSE_PREFILTER: {
+		const struct fuse_fallocate_in *ffa = fa->in_args[0].value;
+
+		bpf_printk("Fallocate %d %lu", ffa->fh, ffa->length);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_GETXATTR | FUSE_PREFILTER: {
+		const char *name = fa->in_args[1].value;
+
+		bpf_printk("Getxattr %d %s", fa->nodeid, name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_LISTXATTR | FUSE_PREFILTER: {
+		const char *name = fa->in_args[1].value;
+
+		bpf_printk("Listxattr %d %s", fa->nodeid, name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_SETXATTR | FUSE_PREFILTER: {
+		const char *name = fa->in_args[1].value;
+
+		bpf_printk("Setxattr %d %s", fa->nodeid, name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_STATFS | FUSE_PREFILTER: {
+		bpf_printk("statfs %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_LSEEK | FUSE_PREFILTER: {
+		const struct fuse_lseek_in *fli = fa->in_args[0].value;
+
+		bpf_printk("lseek type:%d, offset:%lld", fli->whence, fli->offset);
+		return FUSE_BPF_BACKING;
+	}
+
+	default:
+		if (fa->opcode & FUSE_PREFILTER)
+			bpf_printk("prefilter *** UNKNOWN *** opcode: %d",
+				   fa->opcode & FUSE_OPCODE_FILTER);
+		else if (fa->opcode & FUSE_POSTFILTER)
+			bpf_printk("postfilter *** UNKNOWN *** opcode: %d",
+				   fa->opcode & FUSE_OPCODE_FILTER);
+		else
+			bpf_printk("*** UNKNOWN *** opcode: %d", fa->opcode);
+		return FUSE_BPF_BACKING;
+	}
+}
diff --git a/tools/testing/selftests/filesystems/fuse/fuse_daemon.c b/tools/testing/selftests/filesystems/fuse/fuse_daemon.c
new file mode 100644
index 0000000..1b6f8c2a
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/fuse_daemon.c
@@ -0,0 +1,294 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2021 Google LLC
+ */
+
+#include "test_fuse.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/mount.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+
+#include <linux/unistd.h>
+
+#include <include/uapi/linux/fuse.h>
+#include <include/uapi/linux/bpf.h>
+
+bool user_messages;
+bool kernel_messages;
+
+static int display_trace(void)
+{
+	int pid = -1;
+	int tp = -1;
+	char c;
+	ssize_t bytes_read;
+	static char line[256] = {0};
+
+	if (!kernel_messages)
+		return TEST_SUCCESS;
+
+	TEST(pid = fork(), pid != -1);
+	if (pid != 0)
+		return pid;
+
+	TESTEQUAL(tracing_on(), 0);
+	TEST(tp = s_open(s_path(tracing_folder(), s("trace_pipe")),
+			 O_RDONLY | O_CLOEXEC), tp != -1);
+	for (;;) {
+		TEST(bytes_read = read(tp, &c, sizeof(c)),
+		     bytes_read == 1);
+		if (c == '\n') {
+			printf("%s\n", line);
+			line[0] = 0;
+		} else
+			sprintf(line + strlen(line), "%c", c);
+	}
+out:
+	if (pid == 0) {
+		close(tp);
+		exit(TEST_FAILURE);
+	}
+	return pid;
+}
+
+static const char *fuse_opcode_to_string(int opcode)
+{
+	switch (opcode & FUSE_OPCODE_FILTER) {
+	case FUSE_LOOKUP:
+		return "FUSE_LOOKUP";
+	case FUSE_FORGET:
+		return "FUSE_FORGET";
+	case FUSE_GETATTR:
+		return "FUSE_GETATTR";
+	case FUSE_SETATTR:
+		return "FUSE_SETATTR";
+	case FUSE_READLINK:
+		return "FUSE_READLINK";
+	case FUSE_SYMLINK:
+		return "FUSE_SYMLINK";
+	case FUSE_MKNOD:
+		return "FUSE_MKNOD";
+	case FUSE_MKDIR:
+		return "FUSE_MKDIR";
+	case FUSE_UNLINK:
+		return "FUSE_UNLINK";
+	case FUSE_RMDIR:
+		return "FUSE_RMDIR";
+	case FUSE_RENAME:
+		return "FUSE_RENAME";
+	case FUSE_LINK:
+		return "FUSE_LINK";
+	case FUSE_OPEN:
+		return "FUSE_OPEN";
+	case FUSE_READ:
+		return "FUSE_READ";
+	case FUSE_WRITE:
+		return "FUSE_WRITE";
+	case FUSE_STATFS:
+		return "FUSE_STATFS";
+	case FUSE_RELEASE:
+		return "FUSE_RELEASE";
+	case FUSE_FSYNC:
+		return "FUSE_FSYNC";
+	case FUSE_SETXATTR:
+		return "FUSE_SETXATTR";
+	case FUSE_GETXATTR:
+		return "FUSE_GETXATTR";
+	case FUSE_LISTXATTR:
+		return "FUSE_LISTXATTR";
+	case FUSE_REMOVEXATTR:
+		return "FUSE_REMOVEXATTR";
+	case FUSE_FLUSH:
+		return "FUSE_FLUSH";
+	case FUSE_INIT:
+		return "FUSE_INIT";
+	case FUSE_OPENDIR:
+		return "FUSE_OPENDIR";
+	case FUSE_READDIR:
+		return "FUSE_READDIR";
+	case FUSE_RELEASEDIR:
+		return "FUSE_RELEASEDIR";
+	case FUSE_FSYNCDIR:
+		return "FUSE_FSYNCDIR";
+	case FUSE_GETLK:
+		return "FUSE_GETLK";
+	case FUSE_SETLK:
+		return "FUSE_SETLK";
+	case FUSE_SETLKW:
+		return "FUSE_SETLKW";
+	case FUSE_ACCESS:
+		return "FUSE_ACCESS";
+	case FUSE_CREATE:
+		return "FUSE_CREATE";
+	case FUSE_INTERRUPT:
+		return "FUSE_INTERRUPT";
+	case FUSE_BMAP:
+		return "FUSE_BMAP";
+	case FUSE_DESTROY:
+		return "FUSE_DESTROY";
+	case FUSE_IOCTL:
+		return "FUSE_IOCTL";
+	case FUSE_POLL:
+		return "FUSE_POLL";
+	case FUSE_NOTIFY_REPLY:
+		return "FUSE_NOTIFY_REPLY";
+	case FUSE_BATCH_FORGET:
+		return "FUSE_BATCH_FORGET";
+	case FUSE_FALLOCATE:
+		return "FUSE_FALLOCATE";
+	case FUSE_READDIRPLUS:
+		return "FUSE_READDIRPLUS";
+	case FUSE_RENAME2:
+		return "FUSE_RENAME2";
+	case FUSE_LSEEK:
+		return "FUSE_LSEEK";
+	case FUSE_COPY_FILE_RANGE:
+		return "FUSE_COPY_FILE_RANGE";
+	case FUSE_SETUPMAPPING:
+		return "FUSE_SETUPMAPPING";
+	case FUSE_REMOVEMAPPING:
+		return "FUSE_REMOVEMAPPING";
+	//case FUSE_SYNCFS:
+	//	return "FUSE_SYNCFS";
+	case CUSE_INIT:
+		return "CUSE_INIT";
+	case CUSE_INIT_BSWAP_RESERVED:
+		return "CUSE_INIT_BSWAP_RESERVED";
+	case FUSE_INIT_BSWAP_RESERVED:
+		return "FUSE_INIT_BSWAP_RESERVED";
+	}
+	return "?";
+}
+
+static int parse_options(int argc, char *const *argv)
+{
+	signed char c;
+
+	while ((c = getopt(argc, argv, "kuv")) != -1)
+		switch (c) {
+		case 'v':
+			test_options.verbose = true;
+			break;
+
+		case 'u':
+			user_messages = true;
+			break;
+
+		case 'k':
+			kernel_messages = true;
+			break;
+
+		default:
+			return -EINVAL;
+		}
+
+	return 0;
+}
+
+int main(int argc, char *argv[])
+{
+	int result = TEST_FAILURE;
+	int trace_pid = -1;
+	char *mount_dir = NULL;
+	char *src_dir = NULL;
+	int bpf_fd = -1;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	struct map_relocation *map_relocations = NULL;
+	size_t map_count = 0;
+	int i;
+
+	if (geteuid() != 0)
+		ksft_print_msg("Not a root, might fail to mount.\n");
+	TESTEQUAL(parse_options(argc, argv), 0);
+
+	TEST(trace_pid = display_trace(), trace_pid != -1);
+
+	delete_dir_tree("fd-src", true);
+	TEST(src_dir = setup_mount_dir("fd-src"), src_dir);
+	delete_dir_tree("fd-dst", true);
+	TEST(mount_dir = setup_mount_dir("fd-dst"), mount_dir);
+
+	TESTEQUAL(install_elf_bpf("fd_bpf.bpf", "test_daemon", &bpf_fd,
+				  &map_relocations, &map_count), 0);
+
+	TEST(src_fd = open("fd-src", O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTSYSCALL(mkdirat(src_fd, "show", 0777));
+	TESTSYSCALL(mkdirat(src_fd, "hide", 0777));
+
+	for (i = 0; i < map_count; ++i)
+		if (!strcmp(map_relocations[i].name, "test_map")) {
+			uint32_t key = 23;
+			uint32_t value = 1234;
+			union bpf_attr attr = {
+				.map_fd = map_relocations[i].fd,
+				.key    = ptr_to_u64(&key),
+				.value  = ptr_to_u64(&value),
+				.flags  = BPF_ANY,
+			};
+			TESTSYSCALL(syscall(__NR_bpf, BPF_MAP_UPDATE_ELEM,
+					    &attr, sizeof(attr)));
+		}
+
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	if (fork())
+		return 0;
+
+	for (;;) {
+		uint8_t bytes_in[FUSE_MIN_READ_BUFFER];
+		uint8_t bytes_out[FUSE_MIN_READ_BUFFER] __maybe_unused;
+		struct fuse_in_header *in_header =
+			(struct fuse_in_header *)bytes_in;
+		ssize_t res = read(fuse_dev, bytes_in, sizeof(bytes_in));
+
+		if (res == -1)
+			break;
+
+		switch (in_header->opcode) {
+		case FUSE_LOOKUP | FUSE_PREFILTER: {
+			char *name = (char *)(bytes_in + sizeof(*in_header));
+
+			if (user_messages)
+				printf("Lookup %s\n", name);
+			if (!strcmp(name, "hide"))
+				TESTFUSEOUTERROR(-ENOENT);
+			else
+				TESTFUSEOUTREAD(name, strlen(name) + 1);
+			break;
+		}
+		default:
+			if (user_messages) {
+				printf("opcode is %d (%s)\n", in_header->opcode,
+				       fuse_opcode_to_string(
+					       in_header->opcode));
+			}
+			break;
+		}
+	}
+
+	result = TEST_SUCCESS;
+
+out:
+	for (i = 0; i < map_count; ++i) {
+		free(map_relocations[i].name);
+		close(map_relocations[i].fd);
+	}
+	free(map_relocations);
+	umount2(mount_dir, MNT_FORCE);
+	delete_dir_tree(mount_dir, true);
+	free(mount_dir);
+	delete_dir_tree(src_dir, true);
+	free(src_dir);
+	if (trace_pid != -1)
+		kill(trace_pid, SIGKILL);
+	return result;
+}
diff --git a/tools/testing/selftests/filesystems/fuse/fuse_test.c b/tools/testing/selftests/filesystems/fuse/fuse_test.c
new file mode 100644
index 0000000..0bf1f03
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/fuse_test.c
@@ -0,0 +1,2226 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2021 Google LLC
+ */
+#define _GNU_SOURCE
+
+#include "test_fuse.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/file.h>
+#include <sys/inotify.h>
+#include <sys/mman.h>
+#include <sys/mount.h>
+#include <sys/syscall.h>
+#include <sys/wait.h>
+
+#include <linux/capability.h>
+#include <linux/random.h>
+
+#include <include/uapi/linux/fuse.h>
+#include <include/uapi/linux/bpf.h>
+
+static const char *ft_src = "ft-src";
+static const char *ft_dst = "ft-dst";
+
+static void fill_buffer(uint8_t *data, size_t len, int file, int block)
+{
+	int i;
+	int seed = 7919 * file + block;
+
+	for (i = 0; i < len; i++) {
+		seed = 1103515245 * seed + 12345;
+		data[i] = (uint8_t)(seed >> (i % 13));
+	}
+}
+
+static bool test_buffer(uint8_t *data, size_t len, int file, int block)
+{
+	int i;
+	int seed = 7919 * file + block;
+
+	for (i = 0; i < len; i++) {
+		seed = 1103515245 * seed + 12345;
+		if (data[i] != (uint8_t)(seed >> (i % 13)))
+			return false;
+	}
+
+	return true;
+}
+
+static int create_file(int dir, struct s name, int index, size_t blocks)
+{
+	int result = TEST_FAILURE;
+	int fd = -1;
+	int i;
+	uint8_t data[PAGE_SIZE];
+
+	TEST(fd = s_openat(dir, name, O_CREAT | O_WRONLY, 0777), fd != -1);
+	for (i = 0; i < blocks; ++i) {
+		fill_buffer(data, PAGE_SIZE, index, i);
+		TESTEQUAL(write(fd, data, sizeof(data)), PAGE_SIZE);
+	}
+	TESTSYSCALL(close(fd));
+	result = TEST_SUCCESS;
+
+out:
+	close(fd);
+	return result;
+}
+
+static int bpf_clear_trace(void)
+{
+	int result = TEST_FAILURE;
+	int tp = -1;
+
+	TEST(tp = s_open(s_path(tracing_folder(), s("trace")),
+			 O_WRONLY | O_TRUNC | O_CLOEXEC), tp != -1);
+
+	result = TEST_SUCCESS;
+out:
+	close(tp);
+	return result;
+}
+
+static int bpf_test_trace_maybe(const char *substr, bool present)
+{
+	int result = TEST_FAILURE;
+	int tp = -1;
+	char trace_buffer[4096] = {};
+	ssize_t bytes_read;
+
+	TEST(tp = s_open(s_path(tracing_folder(), s("trace_pipe")),
+			 O_RDONLY | O_CLOEXEC),
+	     tp != -1);
+	fcntl(tp, F_SETFL, O_NONBLOCK);
+
+	for (;;) {
+		bytes_read = read(tp, trace_buffer, sizeof(trace_buffer));
+		if (present)
+			TESTCOND(bytes_read > 0);
+		else if (bytes_read <= 0) {
+			result = TEST_SUCCESS;
+			break;
+		}
+
+		if (test_options.verbose)
+			ksft_print_msg("%s\n", trace_buffer);
+
+		if (strstr(trace_buffer, substr)) {
+			if (present)
+				result = TEST_SUCCESS;
+			break;
+		}
+	}
+out:
+	close(tp);
+	return result;
+}
+
+static int bpf_test_trace(const char *substr)
+{
+	return bpf_test_trace_maybe(substr, true);
+}
+
+static int bpf_test_no_trace(const char *substr)
+{
+	return bpf_test_trace_maybe(substr, false);
+}
+
+static int basic_test(const char *mount_dir)
+{
+	const char *test_name = "test";
+	const char *test_data = "data";
+
+	int result = TEST_FAILURE;
+	int fuse_dev = -1;
+	char *filename = NULL;
+	int fd = -1;
+	FUSE_DECLARE_DAEMON;
+
+	TESTEQUAL(mount_fuse(mount_dir, -1, -1, &fuse_dev), 0);
+	FUSE_START_DAEMON();
+	if (action) {
+		char data[256];
+
+		filename = concat_file_name(mount_dir, test_name);
+		TESTERR(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+		TESTEQUAL(read(fd, data, strlen(test_data)), strlen(test_data));
+		TESTCOND(!strcmp(data, test_data));
+		TESTSYSCALL(close(fd));
+		fd = -1;
+	} else {
+		DECL_FUSE_IN(open);
+		DECL_FUSE_IN(read);
+		DECL_FUSE_IN(flush);
+		DECL_FUSE_IN(release);
+
+		TESTFUSELOOKUP(test_name, 0);
+		TESTFUSEOUT1(fuse_entry_out, ((struct fuse_entry_out) {
+			.nodeid		= 2,
+			.generation	= 1,
+			.attr.ino = 100,
+			.attr.size = 4,
+			.attr.blksize = 512,
+			.attr.mode = S_IFREG | 0777,
+			}));
+
+		TESTFUSEIN(FUSE_OPEN, open_in);
+		TESTFUSEOUT1(fuse_open_out, ((struct fuse_open_out) {
+			.fh = 1,
+			.open_flags = open_in->flags,
+		}));
+
+		TESTFUSEINNULL(FUSE_CANONICAL_PATH);
+		TESTFUSEOUTREAD("ignored", 7);
+
+		TESTFUSEIN(FUSE_READ, read_in);
+		TESTFUSEOUTREAD(test_data, strlen(test_data));
+
+		TESTFUSEIN(FUSE_FLUSH, flush_in);
+		TESTFUSEOUTEMPTY();
+
+		TESTFUSEIN(FUSE_RELEASE, release_in);
+		TESTFUSEOUTEMPTY();
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	close(fd);
+	free(filename);
+	umount(mount_dir);
+	return result;
+}
+
+static int bpf_test_real(const char *mount_dir)
+{
+	const char *test_name = "real";
+	const char *test_data = "Weebles wobble but they don't fall down";
+	int result = TEST_FAILURE;
+	int bpf_fd = -1;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	char *filename = NULL;
+	int fd = -1;
+	char read_buffer[256] = {};
+	ssize_t bytes_read;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TEST(fd = openat(src_fd, test_name, O_CREAT | O_RDWR | O_CLOEXEC, 0777),
+	     fd != -1);
+	TESTEQUAL(write(fd, test_data, strlen(test_data)), strlen(test_data));
+	TESTSYSCALL(close(fd));
+	fd = -1;
+
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	filename = concat_file_name(mount_dir, test_name);
+	TESTERR(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+	bytes_read = read(fd, read_buffer, strlen(test_data));
+	TESTEQUAL(bytes_read, strlen(test_data));
+	TESTEQUAL(strcmp(test_data, read_buffer), 0);
+	TESTEQUAL(bpf_test_trace("read"), 0);
+
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	close(fd);
+	free(filename);
+	umount(mount_dir);
+	close(src_fd);
+	close(bpf_fd);
+	return result;
+}
+
+
+static int bpf_test_partial(const char *mount_dir)
+{
+	const char *test_name = "partial";
+	int result = TEST_FAILURE;
+	int bpf_fd = -1;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	char *filename = NULL;
+	int fd = -1;
+	FUSE_DECLARE_DAEMON;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(create_file(src_fd, s(test_name), 1, 2), 0);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	FUSE_START_DAEMON();
+	if (action) {
+		uint8_t data[PAGE_SIZE];
+
+		TEST(filename = concat_file_name(mount_dir, test_name),
+		     filename);
+		TESTERR(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+		TESTEQUAL(read(fd, data, PAGE_SIZE), PAGE_SIZE);
+		TESTEQUAL(bpf_test_trace("read"), 0);
+		TESTCOND(test_buffer(data, PAGE_SIZE, 2, 0));
+		TESTCOND(!test_buffer(data, PAGE_SIZE, 1, 0));
+		TESTEQUAL(read(fd, data, PAGE_SIZE), PAGE_SIZE);
+		TESTCOND(test_buffer(data, PAGE_SIZE, 1, 1));
+		TESTCOND(!test_buffer(data, PAGE_SIZE, 2, 1));
+		TESTSYSCALL(close(fd));
+		fd = -1;
+	} else {
+		DECL_FUSE(open);
+		DECL_FUSE(read);
+		DECL_FUSE(release);
+		uint8_t data[PAGE_SIZE];
+
+		TESTFUSEIN2(FUSE_OPEN | FUSE_POSTFILTER, open_in, open_out);
+		TESTFUSEOUT1(fuse_open_out, ((struct fuse_open_out) {
+			.fh = 1,
+			.open_flags = open_in->flags,
+		}));
+
+		TESTFUSEIN(FUSE_READ, read_in);
+		fill_buffer(data, PAGE_SIZE, 2, 0);
+		TESTFUSEOUTREAD(data, PAGE_SIZE);
+
+		TESTFUSEIN(FUSE_RELEASE, release_in);
+		TESTFUSEOUTEMPTY();
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	close(fd);
+	free(filename);
+	umount(mount_dir);
+	close(src_fd);
+	close(bpf_fd);
+	return result;
+}
+
+static int bpf_test_attrs(const char *mount_dir)
+{
+	const char *test_name = "partial";
+	int result = TEST_FAILURE;
+	int bpf_fd = -1;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	char *filename = NULL;
+	struct stat st;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(create_file(src_fd, s(test_name), 1, 2), 0);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TEST(filename = concat_file_name(mount_dir, test_name), filename);
+	TESTSYSCALL(stat(filename, &st));
+	TESTSYSCALL(chmod(filename, 0111));
+	TESTSYSCALL(stat(filename, &st));
+	TESTEQUAL(st.st_mode & 0777, 0111);
+	TESTSYSCALL(chmod(filename, 0777));
+	TESTSYSCALL(stat(filename, &st));
+	TESTEQUAL(st.st_mode & 0777, 0777);
+	TESTSYSCALL(chown(filename, 5, 6));
+	TESTSYSCALL(stat(filename, &st));
+	TESTEQUAL(st.st_uid, 5);
+	TESTEQUAL(st.st_gid, 6);
+
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	free(filename);
+	umount(mount_dir);
+	close(src_fd);
+	close(bpf_fd);
+	return result;
+}
+
+static int bpf_test_readdir(const char *mount_dir)
+{
+	static const char * const names[] = {
+		"real", "partial", "fake", ".", ".."
+	};
+	bool used[ARRAY_SIZE(names)] = { false };
+	int result = TEST_FAILURE;
+	int bpf_fd = -1;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	DIR *dir = NULL;
+	struct dirent *dirent;
+	FUSE_DECLARE_DAEMON;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(create_file(src_fd, s(names[0]), 1, 2), 0);
+	TESTEQUAL(create_file(src_fd, s(names[1]), 1, 2), 0);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	FUSE_START_DAEMON();
+	if (action) {
+		int i, j;
+
+		TEST(dir = s_opendir(s(mount_dir)), dir);
+		TESTEQUAL(bpf_test_trace("opendir"), 0);
+
+		for (i = 0; i < ARRAY_SIZE(names); ++i) {
+			TEST(dirent = readdir(dir), dirent);
+
+			for (j = 0; j < ARRAY_SIZE(names); ++j)
+				if (!used[j] &&
+				    strcmp(names[j], dirent->d_name) == 0) {
+					used[j] = true;
+					break;
+				}
+			TESTNE(j, ARRAY_SIZE(names));
+		}
+		TEST(dirent = readdir(dir), dirent == NULL);
+		TESTSYSCALL(closedir(dir));
+		dir = NULL;
+		TESTEQUAL(bpf_test_trace("readdir"), 0);
+	} else {
+		struct fuse_in_header *in_header =
+			(struct fuse_in_header *)bytes_in;
+		ssize_t res = read(fuse_dev, bytes_in, sizeof(bytes_in));
+		struct fuse_read_out *read_out =
+			(struct fuse_read_out *) (bytes_in +
+					sizeof(*in_header) +
+					sizeof(struct fuse_read_in));
+		struct fuse_dirent *fuse_dirent =
+			(struct fuse_dirent *) (bytes_in + res);
+
+		TESTGE(res, sizeof(*in_header) + sizeof(struct fuse_read_in));
+		TESTEQUAL(in_header->opcode, FUSE_READDIR | FUSE_POSTFILTER);
+		*fuse_dirent = (struct fuse_dirent) {
+			.ino = 100,
+			.off = 5,
+			.namelen = strlen("fake"),
+			.type = DT_REG,
+		};
+		strcpy((char *)(bytes_in + res + sizeof(*fuse_dirent)), "fake");
+		res += FUSE_DIRENT_ALIGN(sizeof(*fuse_dirent) + strlen("fake") +
+					 1);
+		TESTFUSEDIROUTREAD(read_out,
+				bytes_in +
+				   sizeof(struct fuse_in_header) +
+				   sizeof(struct fuse_read_in) +
+				   sizeof(struct fuse_read_out),
+				res - sizeof(struct fuse_in_header) -
+				    sizeof(struct fuse_read_in) -
+				    sizeof(struct fuse_read_out));
+		res = read(fuse_dev, bytes_in, sizeof(bytes_in));
+		TESTEQUAL(res, sizeof(*in_header) +
+			  sizeof(struct fuse_read_in) +
+			  sizeof(struct fuse_read_out));
+		TESTEQUAL(in_header->opcode, FUSE_READDIR | FUSE_POSTFILTER);
+		TESTFUSEDIROUTREAD(read_out, bytes_in, 0);
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	closedir(dir);
+	close(fuse_dev);
+	umount(mount_dir);
+	close(src_fd);
+	close(bpf_fd);
+	return result;
+}
+
+static int bpf_test_redact_readdir(const char *mount_dir)
+{
+	static const char * const names[] = {
+		"f1", "f2", "f3", "f4", "f5", "f6", ".", ".."
+	};
+	bool used[ARRAY_SIZE(names)] = { false };
+	int num_shown = (ARRAY_SIZE(names) - 2) / 2 + 2;
+	int result = TEST_FAILURE;
+	int bpf_fd = -1;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	DIR *dir = NULL;
+	struct dirent *dirent;
+	int i;
+	int count = 0;
+	FUSE_DECLARE_DAEMON;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	for (i = 0; i < ARRAY_SIZE(names) - 2; i++)
+		TESTEQUAL(create_file(src_fd, s(names[i]), 1, 2), 0);
+
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_readdir_redact",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	FUSE_START_DAEMON();
+	if (action) {
+		int j;
+
+		TEST(dir = s_opendir(s(mount_dir)), dir);
+		while ((dirent = readdir(dir))) {
+			errno = 0;
+			TESTEQUAL(errno, 0);
+
+			for (j = 0; j < ARRAY_SIZE(names); ++j)
+				if (!used[j] &&
+				    strcmp(names[j], dirent->d_name) == 0) {
+					used[j] = true;
+					count++;
+					break;
+				}
+			TESTNE(j, ARRAY_SIZE(names));
+			TESTGE(num_shown, count);
+		}
+		TESTEQUAL(count, num_shown);
+		TESTSYSCALL(closedir(dir));
+		dir = NULL;
+	} else {
+		bool skip = true;
+
+		for (int i = 0; i < ARRAY_SIZE(names) + 1; i++) {
+			uint8_t bytes_in[FUSE_MIN_READ_BUFFER];
+			uint8_t bytes_out[FUSE_MIN_READ_BUFFER];
+			struct fuse_in_header *in_header =
+				(struct fuse_in_header *)bytes_in;
+			ssize_t res = read(fuse_dev, bytes_in, sizeof(bytes_in));
+			int length_out = 0;
+			uint8_t *pos;
+			uint8_t *dirs_in;
+			uint8_t *dirs_out;
+			struct fuse_read_in *fuse_read_in;
+			struct fuse_read_out *fuse_read_out_in;
+			struct fuse_read_out *fuse_read_out_out;
+			struct fuse_dirent *fuse_dirent_in = NULL;
+			struct fuse_dirent *next = NULL;
+			bool again = false;
+			int dir_ent_len = 0;
+
+			TESTGE(res, sizeof(struct fuse_in_header) +
+					sizeof(struct fuse_read_in) +
+					sizeof(struct fuse_read_out));
+
+			pos = bytes_in + sizeof(struct fuse_in_header);
+			fuse_read_in = (struct fuse_read_in *) pos;
+			pos += sizeof(*fuse_read_in);
+			fuse_read_out_in = (struct fuse_read_out *) pos;
+			pos += sizeof(*fuse_read_out_in);
+			dirs_in = pos;
+
+			pos = bytes_out + sizeof(struct fuse_out_header);
+			fuse_read_out_out = (struct fuse_read_out *) pos;
+			pos += sizeof(*fuse_read_out_out);
+			dirs_out = pos;
+
+			if (dirs_in < bytes_in + res) {
+				bool is_dot;
+
+				fuse_dirent_in = (struct fuse_dirent *) dirs_in;
+				is_dot = (fuse_dirent_in->namelen == 1 &&
+						!strncmp(fuse_dirent_in->name, ".", 1)) ||
+					 (fuse_dirent_in->namelen == 2 &&
+						!strncmp(fuse_dirent_in->name, "..", 2));
+
+				dir_ent_len = FUSE_DIRENT_ALIGN(
+					sizeof(*fuse_dirent_in) +
+					fuse_dirent_in->namelen);
+
+				if (dirs_in + dir_ent_len < bytes_in + res)
+					next = (struct fuse_dirent *)
+							(dirs_in + dir_ent_len);
+
+				if (!skip || is_dot) {
+					memcpy(dirs_out, fuse_dirent_in,
+					       sizeof(struct fuse_dirent) +
+					       fuse_dirent_in->namelen);
+					length_out += dir_ent_len;
+				}
+				again = ((skip && !is_dot) && next);
+
+				if (!is_dot)
+					skip = !skip;
+			}
+
+			fuse_read_out_out->offset = next ? next->off :
+					fuse_read_out_in->offset;
+			fuse_read_out_out->again = again;
+
+			{
+			struct fuse_out_header *out_header =
+				(struct fuse_out_header *)bytes_out;
+
+			*out_header = (struct fuse_out_header) {
+				.len = sizeof(*out_header) +
+				       sizeof(*fuse_read_out_out) + length_out,
+				.unique = in_header->unique,
+			};
+			TESTEQUAL(write(fuse_dev, bytes_out, out_header->len),
+				  out_header->len);
+			}
+		}
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	closedir(dir);
+	close(fuse_dev);
+	umount(mount_dir);
+	close(src_fd);
+	close(bpf_fd);
+	return result;
+}
+
+/*
+ * This test is more to show what classic fuse does with a creat in a subdir
+ * than a test of any new functionality
+ */
+static int bpf_test_creat(const char *mount_dir)
+{
+	const char *dir_name = "show";
+	const char *file_name = "file";
+	int result = TEST_FAILURE;
+	int fuse_dev = -1;
+	int fd = -1;
+	FUSE_DECLARE_DAEMON;
+
+	TESTEQUAL(mount_fuse(mount_dir, -1, -1, &fuse_dev), 0);
+
+	FUSE_START_DAEMON();
+	if (action) {
+		TEST(fd = s_creat(s_path(s_path(s(mount_dir), s(dir_name)),
+					 s(file_name)),
+				  0777),
+		     fd != -1);
+		TESTSYSCALL(close(fd));
+	} else {
+		DECL_FUSE_IN(create);
+		DECL_FUSE_IN(release);
+		DECL_FUSE_IN(flush);
+
+		TESTFUSELOOKUP(dir_name, 0);
+		TESTFUSEOUT1(fuse_entry_out, ((struct fuse_entry_out) {
+			.nodeid		= 3,
+			.generation	= 1,
+			.attr.ino = 100,
+			.attr.size = 4,
+			.attr.blksize = 512,
+			.attr.mode = S_IFDIR | 0777,
+			}));
+
+		TESTFUSELOOKUP(file_name, 0);
+		TESTFUSEOUTERROR(-ENOENT);
+
+		TESTFUSEINEXT(FUSE_CREATE, create_in, strlen(file_name) + 1);
+		TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+			.nodeid		= 2,
+			.generation	= 1,
+			.attr.ino = 200,
+			.attr.size = 4,
+			.attr.blksize = 512,
+			.attr.mode = S_IFREG,
+			}),
+			fuse_open_out, ((struct fuse_open_out) {
+			.fh = 1,
+			.open_flags = create_in->flags,
+			}));
+
+		TESTFUSEINNULL(FUSE_CANONICAL_PATH);
+		TESTFUSEOUTREAD("ignored", 7);
+
+		TESTFUSEIN(FUSE_FLUSH, flush_in);
+		TESTFUSEOUTEMPTY();
+
+		TESTFUSEIN(FUSE_RELEASE, release_in);
+		TESTFUSEOUTEMPTY();
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	umount(mount_dir);
+	return result;
+}
+
+static int bpf_test_hidden_entries(const char *mount_dir)
+{
+	static const char * const dir_names[] = {
+		"show",
+		"hide",
+	};
+	const char *file_name = "file";
+	const char *data = "The quick brown fox jumps over the lazy dog\n";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	int fd = -1;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTSYSCALL(mkdirat(src_fd, dir_names[0], 0777));
+	TESTSYSCALL(mkdirat(src_fd, dir_names[1], 0777));
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_hidden",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TEST(fd = s_creat(s_path(s_path(s(mount_dir), s(dir_names[0])),
+				 s(file_name)),
+			  0777),
+	     fd != -1);
+	TESTSYSCALL(fallocate(fd, 0, 0, 4096));
+	TEST(write(fd, data, strlen(data)), strlen(data));
+	TESTSYSCALL(close(fd));
+	TESTEQUAL(bpf_test_trace("Create"), 0);
+
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_dir(const char *mount_dir)
+{
+	const char *dir_name = "dir";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	struct stat st;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TESTSYSCALL(s_mkdir(s_path(s(mount_dir), s(dir_name)), 0777));
+	TESTEQUAL(bpf_test_trace("mkdir"), 0);
+	TESTSYSCALL(s_stat(s_path(s(ft_src), s(dir_name)), &st));
+	TESTSYSCALL(s_rmdir(s_path(s(mount_dir), s(dir_name))));
+	TESTEQUAL(s_stat(s_path(s(ft_src), s(dir_name)), &st), -1);
+	TESTEQUAL(errno, ENOENT);
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_file(const char *mount_dir, bool close_first)
+{
+	const char *file_name = "real";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	int fd = -1;
+	struct stat st;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+			  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TEST(fd = s_creat(s_path(s(mount_dir), s(file_name)),
+			  0777),
+	     fd != -1);
+	TESTEQUAL(bpf_test_trace("Create"), 0);
+	if (close_first) {
+		TESTSYSCALL(close(fd));
+		fd = -1;
+	}
+	TESTSYSCALL(s_stat(s_path(s(ft_src), s(file_name)), &st));
+	TESTSYSCALL(s_unlink(s_path(s(mount_dir), s(file_name))));
+	TESTEQUAL(bpf_test_trace("unlink"), 0);
+	TESTEQUAL(s_stat(s_path(s(ft_src), s(file_name)), &st), -1);
+	TESTEQUAL(errno, ENOENT);
+	if (!close_first) {
+		TESTSYSCALL(close(fd));
+		fd = -1;
+	}
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_file_early_close(const char *mount_dir)
+{
+	return bpf_test_file(mount_dir, true);
+}
+
+static int bpf_test_file_late_close(const char *mount_dir)
+{
+	return bpf_test_file(mount_dir, false);
+}
+
+static int bpf_test_alter_errcode_bpf(const char *mount_dir)
+{
+	const char *dir_name = "dir";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	struct stat st;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_error",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TESTSYSCALL(s_mkdir(s_path(s(mount_dir), s(dir_name)), 0777));
+	//TESTEQUAL(bpf_test_trace("mkdir"), 0);
+	TESTSYSCALL(s_stat(s_path(s(ft_src), s(dir_name)), &st));
+	TESTEQUAL(s_mkdir(s_path(s(mount_dir), s(dir_name)), 0777), -EPERM);
+	TESTSYSCALL(s_rmdir(s_path(s(mount_dir), s(dir_name))));
+	TESTEQUAL(s_stat(s_path(s(ft_src), s(dir_name)), &st), -1);
+	TESTEQUAL(errno, ENOENT);
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_alter_errcode_userspace(const char *mount_dir)
+{
+	const char *dir_name = "doesnotexist";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	FUSE_DECLARE_DAEMON;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_error",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	FUSE_START_DAEMON();
+	if (action) {
+		TESTEQUAL(s_unlink(s_path(s(mount_dir), s(dir_name))),
+		     -1);
+		TESTEQUAL(errno, ENOMEM);
+	} else {
+		TESTFUSELOOKUP("doesnotexist", FUSE_POSTFILTER);
+		TESTFUSEOUTERROR(-ENOMEM);
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_mknod(const char *mount_dir)
+{
+	const char *file_name = "real";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	struct stat st;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TESTSYSCALL(s_mkfifo(s_path(s(mount_dir), s(file_name)), 0777));
+	TESTEQUAL(bpf_test_trace("mknod"), 0);
+	TESTSYSCALL(s_stat(s_path(s(ft_src), s(file_name)), &st));
+	TESTSYSCALL(s_unlink(s_path(s(mount_dir), s(file_name))));
+	TESTEQUAL(bpf_test_trace("unlink"), 0);
+	TESTEQUAL(s_stat(s_path(s(ft_src), s(file_name)), &st), -1);
+	TESTEQUAL(errno, ENOENT);
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_largedir(const char *mount_dir)
+{
+	const char *show = "show";
+	const int files = 1000;
+
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	struct map_relocation *map_relocations = NULL;
+	size_t map_count = 0;
+	FUSE_DECLARE_DAEMON;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("fd_bpf.bpf", "test_daemon",
+			  &bpf_fd, &map_relocations, &map_count), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	FUSE_START_DAEMON();
+	if (action) {
+		int i;
+		int fd;
+		DIR *dir = NULL;
+		struct dirent *dirent;
+
+		TESTSYSCALL(s_mkdir(s_path(s(mount_dir), s(show)), 0777));
+		for (i = 0; i < files; ++i) {
+			char filename[NAME_MAX];
+
+			sprintf(filename, "%d", i);
+			TEST(fd = s_creat(s_path(s_path(s(mount_dir), s(show)),
+						 s(filename)), 0777), fd != -1);
+			TESTSYSCALL(close(fd));
+		}
+
+		TEST(dir = s_opendir(s_path(s(mount_dir), s(show))), dir);
+		for (dirent = readdir(dir); dirent; dirent = readdir(dir))
+			;
+		closedir(dir);
+	} else {
+		int i;
+
+		for (i = 0; i < files + 2; ++i) {
+			TESTFUSELOOKUP(show, FUSE_PREFILTER);
+			TESTFUSEOUTREAD(show, 5);
+		}
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_link(const char *mount_dir)
+{
+	const char *file_name = "real";
+	const char *link_name = "partial";
+	int result = TEST_FAILURE;
+	int fd = -1;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	struct stat st;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace", &bpf_fd, NULL,
+				  NULL),
+		  0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TEST(fd = s_creat(s_path(s(mount_dir), s(file_name)), 0777), fd != -1);
+	TESTEQUAL(bpf_test_trace("Create"), 0);
+	TESTSYSCALL(s_stat(s_path(s(ft_src), s(file_name)), &st));
+
+	TESTSYSCALL(s_link(s_path(s(mount_dir), s(file_name)),
+			   s_path(s(mount_dir), s(link_name))));
+
+	TESTEQUAL(bpf_test_trace("link"), 0);
+	TESTSYSCALL(s_stat(s_path(s(ft_src), s(link_name)), &st));
+
+	TESTSYSCALL(s_unlink(s_path(s(mount_dir), s(link_name))));
+	TESTEQUAL(bpf_test_trace("unlink"), 0);
+	TESTEQUAL(s_stat(s_path(s(ft_src), s(link_name)), &st), -1);
+	TESTEQUAL(errno, ENOENT);
+
+	TESTSYSCALL(s_unlink(s_path(s(mount_dir), s(file_name))));
+	TESTEQUAL(bpf_test_trace("unlink"), 0);
+	TESTEQUAL(s_stat(s_path(s(ft_src), s(file_name)), &st), -1);
+	TESTEQUAL(errno, ENOENT);
+
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_symlink(const char *mount_dir)
+{
+	const char *test_name = "real";
+	const char *symlink_name = "partial";
+	const char *test_data = "Weebles wobble but they don't fall down";
+	int result = TEST_FAILURE;
+	int bpf_fd = -1;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	int fd = -1;
+	char read_buffer[256] = {};
+	ssize_t bytes_read;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TEST(fd = openat(src_fd, test_name, O_CREAT | O_RDWR | O_CLOEXEC, 0777),
+	     fd != -1);
+	TESTEQUAL(write(fd, test_data, strlen(test_data)), strlen(test_data));
+	TESTSYSCALL(close(fd));
+	fd = -1;
+
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TESTSYSCALL(s_symlink(s_path(s(mount_dir), s(test_name)),
+				   s_path(s(mount_dir), s(symlink_name))));
+	TESTEQUAL(bpf_test_trace("symlink"), 0);
+
+	TESTERR(fd = s_open(s_path(s(mount_dir), s(symlink_name)), O_RDONLY | O_CLOEXEC), fd != -1);
+	bytes_read = read(fd, read_buffer, strlen(test_data));
+	TESTEQUAL(bpf_test_trace("readlink"), 0);
+	TESTEQUAL(bytes_read, strlen(test_data));
+	TESTEQUAL(strcmp(test_data, read_buffer), 0);
+
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	close(fd);
+	umount(mount_dir);
+	close(src_fd);
+	close(bpf_fd);
+	return result;
+}
+
+static int bpf_test_xattr(const char *mount_dir)
+{
+	static const char file_name[] = "real";
+	static const char xattr_name[] = "user.xattr_test_name";
+	static const char xattr_value[] = "this_is_a_test";
+	const size_t xattr_size = sizeof(xattr_value);
+	char xattr_value_ret[256];
+	ssize_t xattr_size_ret;
+	ssize_t xattr_size_ret_se;
+	int result = TEST_FAILURE;
+	int fd = -1;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	struct stat st;
+
+	memset(xattr_value_ret, '\0', sizeof(xattr_value_ret));
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace", &bpf_fd, NULL,
+				  NULL),
+		  0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TEST(fd = s_creat(s_path(s(mount_dir), s(file_name)), 0777), fd != -1);
+	TESTEQUAL(bpf_test_trace("Create"), 0);
+	TESTSYSCALL(close(fd));
+
+	TESTSYSCALL(s_stat(s_path(s(ft_src), s(file_name)), &st));
+	TEST(result = s_getxattr(s_path(s(mount_dir), s(file_name)), xattr_name,
+				 xattr_value_ret, sizeof(xattr_value_ret),
+				 &xattr_size_ret),
+	     result == -1);
+	TESTEQUAL(errno, ENODATA);
+	TESTEQUAL(bpf_test_trace("getxattr"), 0);
+
+	TESTSYSCALL(s_listxattr(s_path(s(mount_dir), s(file_name)),
+				xattr_value_ret, sizeof(xattr_value_ret),
+				&xattr_size_ret_se));
+	TESTEQUAL(bpf_test_trace("listxattr"), 0);
+
+	TESTSYSCALL(s_setxattr(s_path(s(mount_dir), s(file_name)), xattr_name,
+			       xattr_value, xattr_size, 0));
+	TESTEQUAL(bpf_test_trace("setxattr"), 0);
+
+	TESTSYSCALL(s_listxattr(s_path(s(mount_dir), s(file_name)),
+				xattr_value_ret, sizeof(xattr_value_ret),
+				&xattr_size_ret));
+	TESTEQUAL(bpf_test_trace("listxattr"), 0);
+	TESTEQUAL(xattr_size_ret - xattr_size_ret_se, sizeof(xattr_name));
+	TESTEQUAL(strcmp(xattr_name, xattr_value_ret + xattr_size_ret_se), 0);
+
+	TESTSYSCALL(s_getxattr(s_path(s(mount_dir), s(file_name)), xattr_name,
+			       xattr_value_ret, sizeof(xattr_value_ret),
+			       &xattr_size_ret));
+	TESTEQUAL(bpf_test_trace("getxattr"), 0);
+	TESTEQUAL(xattr_size, xattr_size_ret);
+	TESTEQUAL(strcmp(xattr_value, xattr_value_ret), 0);
+
+	TESTSYSCALL(s_removexattr(s_path(s(mount_dir), s(file_name)), xattr_name));
+	TESTEQUAL(bpf_test_trace("removexattr"), 0);
+
+	TESTEQUAL(s_getxattr(s_path(s(mount_dir), s(file_name)), xattr_name,
+			       xattr_value_ret, sizeof(xattr_value_ret),
+			       &xattr_size_ret), -1);
+	TESTEQUAL(errno, ENODATA);
+
+	TESTSYSCALL(s_unlink(s_path(s(mount_dir), s(file_name))));
+	TESTEQUAL(bpf_test_trace("unlink"), 0);
+	TESTEQUAL(s_stat(s_path(s(ft_src), s(file_name)), &st), -1);
+	TESTEQUAL(errno, ENOENT);
+
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_set_backing(const char *mount_dir)
+{
+	const char *backing_name = "backing";
+	const char *test_data = "data";
+	const char *test_name = "test";
+
+	int result = TEST_FAILURE;
+	int fuse_dev = -1;
+	int fd = -1;
+	FUSE_DECLARE_DAEMON;
+
+	TESTEQUAL(mount_fuse_no_init(mount_dir, -1, -1, &fuse_dev), 0);
+	FUSE_START_DAEMON();
+	if (action) {
+		char data[256] = {0};
+
+		TESTERR(fd = s_open(s_path(s(mount_dir), s(test_name)),
+				    O_RDONLY | O_CLOEXEC), fd != -1);
+		TESTEQUAL(read(fd, data, strlen(test_data)), strlen(test_data));
+		TESTCOND(!strcmp(data, test_data));
+		TESTSYSCALL(close(fd));
+		fd = -1;
+		TESTSYSCALL(umount(mount_dir));
+	} else {
+		int bpf_fd  = -1;
+		int backing_fd = -1;
+
+		TESTERR(backing_fd = s_creat(s_path(s(ft_src), s(backing_name)), 0777),
+			backing_fd != -1);
+		TESTEQUAL(write(backing_fd, test_data, strlen(test_data)),
+			  strlen(test_data));
+		TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_simple",
+					  &bpf_fd, NULL, NULL), 0);
+
+		TESTFUSEINIT();
+		TESTFUSELOOKUP(test_name, 0);
+		TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {0}),
+			     fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+			.backing_action = FUSE_ACTION_REPLACE,
+			.backing_fd = backing_fd,
+			.bpf_action = FUSE_ACTION_REPLACE,
+			.bpf_fd = bpf_fd,
+			}));
+		read(fuse_dev, bytes_in, sizeof(bytes_in));
+		TESTSYSCALL(close(bpf_fd));
+		TESTSYSCALL(close(backing_fd));
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	close(fd);
+	umount(mount_dir);
+	return result;
+}
+
+static int bpf_test_remove_backing(const char *mount_dir)
+{
+	const char *folder1 = "folder1";
+	const char *folder2 = "folder2";
+	const char *file = "file1";
+	const char *contents1 = "contents1";
+	const char *contents2 = "contents2";
+
+	int result = TEST_FAILURE;
+	int fuse_dev = -1;
+	int fd = -1;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	char data[256] = {0};
+	FUSE_DECLARE_DAEMON;
+
+	/*
+	 * Create folder1/file
+	 *        folder2/file
+	 *
+	 * test will install bpf into mount.
+	 * bpf will postfilter root lookup to daemon.
+	 * daemon will remove bpf and redirect opens on folder1 to folder2.
+	 * test will open folder1/file which will be redirected to folder2.
+	 * test will check no traces for file, and contents are folder2/file.
+	 */
+	TESTEQUAL(bpf_clear_trace(), 0);
+	TESTSYSCALL(s_mkdir(s_path(s(ft_src), s(folder1)), 0777));
+	TEST(fd = s_creat(s_pathn(3, s(ft_src), s(folder1), s(file)), 0777),
+	     fd != -1);
+	TESTEQUAL(write(fd, contents1, strlen(contents1)), strlen(contents1));
+	TESTSYSCALL(close(fd));
+	TESTSYSCALL(s_mkdir(s_path(s(ft_src), s(folder2)), 0777));
+	TEST(fd = s_creat(s_pathn(3, s(ft_src), s(folder2), s(file)), 0777),
+	     fd != -1);
+	TESTEQUAL(write(fd, contents2, strlen(contents2)), strlen(contents2));
+	TESTSYSCALL(close(fd));
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_passthrough", &bpf_fd,
+				  NULL, NULL), 0);
+	TESTEQUAL(mount_fuse_no_init(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	FUSE_START_DAEMON();
+	if (action) {
+		TESTERR(fd = s_open(s_pathn(3, s(mount_dir), s(folder1),
+					    s(file)),
+				    O_RDONLY | O_CLOEXEC), fd != -1);
+		TESTEQUAL(read(fd, data, sizeof(data)), strlen(contents2));
+		TESTCOND(!strcmp(data, contents2));
+		TESTEQUAL(bpf_test_no_trace("file"), 0);
+		TESTSYSCALL(close(fd));
+		fd = -1;
+		TESTSYSCALL(umount(mount_dir));
+	} else {
+		struct {
+			char name[8];
+			struct fuse_entry_out feo;
+			struct fuse_entry_bpf_out febo;
+		} __packed in;
+		int backing_fd = -1;
+
+		TESTFUSEINIT();
+		TESTFUSEIN(FUSE_LOOKUP | FUSE_POSTFILTER, &in);
+		TEST(backing_fd = s_open(s_path(s(ft_src), s(folder2)),
+				 O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+		     backing_fd != -1);
+		TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {0}),
+			     fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+			.bpf_action = FUSE_ACTION_REMOVE,
+			.backing_action = FUSE_ACTION_REPLACE,
+			.backing_fd = backing_fd,
+			}));
+
+		while (read(fuse_dev, bytes_in, sizeof(bytes_in)) != -1)
+			;
+		TESTSYSCALL(close(backing_fd));
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	close(fd);
+	close(src_fd);
+	close(bpf_fd);
+	umount(mount_dir);
+	return result;
+}
+
+static int bpf_test_dir_rename(const char *mount_dir)
+{
+	const char *dir_name = "dir";
+	const char *dir_name2 = "dir2";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	struct stat st;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TESTSYSCALL(s_mkdir(s_path(s(mount_dir), s(dir_name)), 0777));
+	TESTEQUAL(bpf_test_trace("mkdir"), 0);
+	TESTSYSCALL(s_stat(s_path(s(ft_src), s(dir_name)), &st));
+	TESTSYSCALL(s_rename(s_path(s(mount_dir), s(dir_name)),
+			     s_path(s(mount_dir), s(dir_name2))));
+	TESTEQUAL(s_stat(s_path(s(ft_src), s(dir_name)), &st), -1);
+	TESTEQUAL(errno, ENOENT);
+	TESTSYSCALL(s_stat(s_path(s(ft_src), s(dir_name2)), &st));
+	result = TEST_SUCCESS;
+out:
+	close(fuse_dev);
+	umount(mount_dir);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_file_rename(const char *mount_dir)
+{
+	const char *dir = "dir";
+	const char *file1 = "file1";
+	const char *file2 = "file2";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	int fd = -1;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TESTSYSCALL(s_mkdir(s_path(s(mount_dir), s(dir)), 0777));
+	TEST(fd = s_creat(s_pathn(3, s(mount_dir), s(dir), s(file1)), 0777),
+	     fd != -1);
+	TESTSYSCALL(s_rename(s_pathn(3, s(mount_dir), s(dir), s(file1)),
+			     s_pathn(3, s(mount_dir), s(dir), s(file2))));
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+	umount(mount_dir);
+	close(fuse_dev);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int mmap_test(const char *mount_dir)
+{
+	const char *file = "file";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	int fd = -1;
+	char *addr = NULL;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(mount_fuse(mount_dir, -1, src_fd, &fuse_dev), 0);
+	TEST(fd = s_open(s_path(s(mount_dir), s(file)),
+			 O_CREAT | O_RDWR | O_CLOEXEC, 0777),
+	     fd != -1);
+	TESTSYSCALL(fallocate(fd, 0, 4096, SEEK_CUR));
+	TEST(addr = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0),
+	     addr != (void *) -1);
+	memset(addr, 'a', 4096);
+
+	result = TEST_SUCCESS;
+out:
+	munmap(addr, 4096);
+	close(fd);
+	umount(mount_dir);
+	close(fuse_dev);
+	close(src_fd);
+	return result;
+}
+
+static int flock_test(const char *mount_dir)
+{
+	const char *file = "file";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	int fd = -1, fd2 = -1;
+	int backing_fd = -1;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(mount_fuse(mount_dir, -1, src_fd, &fuse_dev), 0);
+	TEST(fd = s_open(s_path(s(mount_dir), s(file)),
+			 O_CREAT | O_RDWR | O_CLOEXEC, 0777),
+	     fd != -1);
+	TEST(fd2 = s_open(s_path(s(mount_dir), s(file)),
+				 O_RDWR | O_CLOEXEC, 0777),
+		     fd2 != -1);
+	TESTSYSCALL(flock(fd, LOCK_EX | LOCK_NB));
+	TESTCONDERR((flock(fd2, LOCK_EX | LOCK_NB)) == -1);
+	TESTCOND(errno == EAGAIN);
+	TESTSYSCALL(flock(fd, LOCK_UN));
+	TESTSYSCALL(flock(fd2, LOCK_EX | LOCK_NB));
+	TEST(backing_fd = s_open(s_path(s(ft_src), s(file)),
+				 O_RDONLY | O_CLOEXEC),
+				 backing_fd != -1);
+	TESTCONDERR((flock(backing_fd, LOCK_EX | LOCK_NB)) == -1);
+	TESTCOND(errno == EAGAIN);
+	close(fd2);
+	fd2 = 0;
+	TESTSYSCALL(flock(backing_fd, LOCK_EX | LOCK_NB));
+
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+	close(fd2);
+	close(backing_fd);
+	umount(mount_dir);
+	close(fuse_dev);
+	close(src_fd);
+	return result;
+}
+
+static int readdir_perms_test(const char *mount_dir)
+{
+	int result = TEST_FAILURE;
+	struct __user_cap_header_struct uchs = { _LINUX_CAPABILITY_VERSION_3 };
+	struct __user_cap_data_struct ucds[2];
+	int src_fd = -1;
+	int fuse_dev = -1;
+	DIR *dir = NULL;
+
+	/* Must remove capabilities for this test. */
+	TESTSYSCALL(syscall(SYS_capget, &uchs, ucds));
+	ucds[0].effective &= ~(1 << CAP_DAC_OVERRIDE | 1 << CAP_DAC_READ_SEARCH);
+	TESTSYSCALL(syscall(SYS_capset, &uchs, ucds));
+
+	/* This is what we are testing in fuseland. First test without fuse, */
+	TESTSYSCALL(mkdir("test", 0111));
+	TEST(dir = opendir("test"), dir == NULL);
+	closedir(dir);
+	dir = NULL;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(mount_fuse(mount_dir, -1, src_fd, &fuse_dev), 0);
+
+	TESTSYSCALL(s_mkdir(s_path(s(mount_dir), s("test")), 0111));
+	TEST(dir = s_opendir(s_path(s(mount_dir), s("test"))), dir == NULL);
+
+	result = TEST_SUCCESS;
+out:
+	ucds[0].effective |= 1 << CAP_DAC_OVERRIDE | 1 << CAP_DAC_READ_SEARCH;
+	syscall(SYS_capset, &uchs, ucds);
+
+	closedir(dir);
+	s_rmdir(s_path(s(mount_dir), s("test")));
+	umount(mount_dir);
+	close(fuse_dev);
+	close(src_fd);
+	rmdir("test");
+	return result;
+}
+
+static int inotify_test(const char *mount_dir)
+{
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	struct s dir;
+	int inotify_fd = -1;
+	int watch;
+	int fd = -1;
+	char buffer[sizeof(struct inotify_event) + NAME_MAX + 1];
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(mount_fuse(mount_dir, -1, src_fd, &fuse_dev), 0);
+
+	TEST(inotify_fd = inotify_init1(IN_CLOEXEC), inotify_fd != -1);
+	dir = s_path(s(mount_dir), s("dir"));
+	TESTSYSCALL(mkdir(dir.s, 0777));
+	TEST(watch = inotify_add_watch(inotify_fd, dir.s, IN_CREATE), watch);
+	TEST(fd = s_creat(s_path(s(ft_src), s("dir/file")), 0777), fd != -1);
+	// buffer will be two struct lengths, as "file" gets rounded up to the
+	// next multiple of struct inotify_event
+	TESTEQUAL(read(inotify_fd, &buffer, sizeof(buffer)),
+		  sizeof(struct inotify_event) * 2);
+
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+	s_unlink(s_path(s(ft_src), s("dir/file")));
+	close(inotify_fd);
+	rmdir(dir.s);
+	free(dir.s);
+	umount(mount_dir);
+	close(fuse_dev);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_statfs(const char *mount_dir)
+{
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	int fd = -1;
+	struct statfs st;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TESTSYSCALL(s_statfs(s(mount_dir), &st));
+	TESTEQUAL(bpf_test_trace("statfs"), 0);
+	TESTEQUAL(st.f_type, 0x65735546);
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+	umount(mount_dir);
+	close(fuse_dev);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+static int bpf_test_lseek(const char *mount_dir)
+{
+	const char *file = "real";
+	const char *test_data = "data";
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	int fd = -1;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TEST(fd = openat(src_fd, file, O_CREAT | O_RDWR | O_CLOEXEC, 0777),
+	     fd != -1);
+	TESTEQUAL(write(fd, test_data, strlen(test_data)), strlen(test_data));
+	TESTSYSCALL(close(fd));
+	fd = -1;
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+				  &bpf_fd, NULL, NULL), 0);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+	TEST(fd = s_open(s_path(s(mount_dir), s(file)), O_RDONLY | O_CLOEXEC),
+	     fd != -1);
+	TESTEQUAL(lseek(fd, 3, SEEK_SET), 3);
+	TESTEQUAL(bpf_test_trace("lseek"), 0);
+	TESTEQUAL(lseek(fd, 5, SEEK_END), 9);
+	TESTEQUAL(bpf_test_trace("lseek"), 0);
+	TESTEQUAL(lseek(fd, 1, SEEK_CUR), 10);
+	TESTEQUAL(bpf_test_trace("lseek"), 0);
+	TESTEQUAL(lseek(fd, 1, SEEK_DATA), 1);
+	TESTEQUAL(bpf_test_trace("lseek"), 0);
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+	umount(mount_dir);
+	close(fuse_dev);
+	close(bpf_fd);
+	close(src_fd);
+	return result;
+}
+
+/*
+ * State:
+ * Original: dst/folder1/content.txt
+ *                  ^
+ *                  |
+ *                  |
+ * Backing:  src/folder1/content.txt
+ *
+ * Step 1:  open(folder1) - set backing to src/folder1
+ * Check 1: cat(content.txt) - check not receiving call on the fuse daemon
+ *                             and content is the same
+ * Step 2:  readdirplus(dst)
+ * Check 2: cat(content.txt) - check not receiving call on the fuse daemon
+ *                             and content is the same
+ */
+static int bpf_test_readdirplus_not_overriding_backing(const char *mount_dir)
+{
+	const char *folder1 = "folder1";
+	const char *content_file = "content.txt";
+	const char *content = "hello world";
+
+	int result = TEST_FAILURE;
+	int fuse_dev = -1;
+	int src_fd = -1;
+	int content_fd = -1;
+	FUSE_DECLARE_DAEMON;
+
+	TESTSYSCALL(s_mkdir(s_path(s(ft_src), s(folder1)), 0777));
+	TEST(content_fd = s_creat(s_pathn(3, s(ft_src), s(folder1), s(content_file)), 0777),
+		content_fd != -1);
+	TESTEQUAL(write(content_fd, content, strlen(content)), strlen(content));
+	TESTEQUAL(mount_fuse_no_init(mount_dir, -1, -1, &fuse_dev), 0);
+
+	FUSE_START_DAEMON();
+	if (action) {
+		DIR *open_mount_dir = NULL;
+		struct dirent *mount_dirent;
+		int dst_folder1_fd = -1;
+		int dst_content_fd = -1;
+		char content_buffer[12];
+
+		// Step 1: Lookup folder1
+		TESTERR(dst_folder1_fd = s_open(s_path(s(mount_dir), s(folder1)),
+			O_RDONLY | O_CLOEXEC), dst_folder1_fd != -1);
+
+		// Check 1: Read content file (backed)
+		TESTERR(dst_content_fd =
+			s_open(s_pathn(3, s(mount_dir), s(folder1), s(content_file)),
+			O_RDONLY | O_CLOEXEC), dst_content_fd != -1);
+
+		TESTEQUAL(read(dst_content_fd, content_buffer, strlen(content)),
+			  strlen(content));
+		TESTEQUAL(strncmp(content, content_buffer, strlen(content)), 0);
+
+		TESTSYSCALL(close(dst_content_fd));
+		dst_content_fd = -1;
+		TESTSYSCALL(close(dst_folder1_fd));
+		dst_folder1_fd = -1;
+		memset(content_buffer, 0, strlen(content));
+
+		// Step 2: readdir folder 1
+		TEST(open_mount_dir = s_opendir(s(mount_dir)),
+			open_mount_dir != NULL);
+		TEST(mount_dirent = readdir(open_mount_dir), mount_dirent != NULL);
+		TESTSYSCALL(closedir(open_mount_dir));
+		open_mount_dir = NULL;
+
+		// Check 2: Read content file again (must be backed)
+		TESTERR(dst_content_fd =
+			s_open(s_pathn(3, s(mount_dir), s(folder1), s(content_file)),
+			O_RDONLY | O_CLOEXEC), dst_content_fd != -1);
+
+		TESTEQUAL(read(dst_content_fd, content_buffer, strlen(content)),
+			  strlen(content));
+		TESTEQUAL(strncmp(content, content_buffer, strlen(content)), 0);
+
+		TESTSYSCALL(close(dst_content_fd));
+		dst_content_fd = -1;
+	} else {
+		size_t read_size = 0;
+		struct fuse_in_header *in_header = (struct fuse_in_header *)bytes_in;
+		struct fuse_read_out *read_out = NULL;
+		struct fuse_attr attr = {};
+		int backing_fd = -1;
+		DECL_FUSE_IN(open);
+		DECL_FUSE_IN(getattr);
+
+		TESTFUSEINITFLAGS(FUSE_DO_READDIRPLUS | FUSE_READDIRPLUS_AUTO);
+
+		// Step 1: Lookup folder 1 with backing
+		TESTFUSELOOKUP(folder1, 0);
+		TESTSYSCALL(s_fuse_attr(s_path(s(ft_src), s(folder1)), &attr));
+		TEST(backing_fd = s_open(s_path(s(ft_src), s(folder1)),
+					 O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+		     backing_fd != -1);
+		TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+				.nodeid = attr.ino,
+				.generation = 0,
+				.entry_valid = UINT64_MAX,
+				.attr_valid = UINT64_MAX,
+				.entry_valid_nsec = UINT32_MAX,
+				.attr_valid_nsec = UINT32_MAX,
+				.attr = attr,
+			     }), fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+				.backing_action = FUSE_ACTION_REPLACE,
+				.backing_fd = backing_fd,
+			     }));
+		TESTSYSCALL(close(backing_fd));
+
+		// Step 2: Open root dir
+		TESTFUSEIN(FUSE_OPENDIR, open_in);
+		TESTFUSEOUT1(fuse_open_out, ((struct fuse_open_out) {
+			.fh = 100,
+			.open_flags = open_in->flags
+		}));
+
+		// Step 2: Handle getattr
+		TESTFUSEIN(FUSE_GETATTR, getattr_in);
+		TESTSYSCALL(s_fuse_attr(s(ft_src), &attr));
+		TESTFUSEOUT1(fuse_attr_out, ((struct fuse_attr_out) {
+			.attr_valid = UINT64_MAX,
+			.attr_valid_nsec = UINT32_MAX,
+			.attr = attr
+		}));
+
+		// Step 2: Handle readdirplus
+		read_size = read(fuse_dev, bytes_in, sizeof(bytes_in));
+		TESTEQUAL(in_header->opcode, FUSE_READDIRPLUS);
+
+		struct fuse_direntplus *dirent_plus =
+			(struct fuse_direntplus *) (bytes_in + read_size);
+		struct fuse_dirent dirent;
+		struct fuse_entry_out entry_out;
+
+		read_out = (struct fuse_read_out *) (bytes_in +
+					sizeof(*in_header) +
+					sizeof(struct fuse_read_in));
+
+		TESTSYSCALL(s_fuse_attr(s_path(s(ft_src), s(folder1)), &attr));
+
+		dirent = (struct fuse_dirent) {
+			.ino = attr.ino,
+			.off = 1,
+			.namelen = strlen(folder1),
+			.type = DT_REG
+		};
+		entry_out = (struct fuse_entry_out) {
+			.nodeid = attr.ino,
+			.generation = 0,
+			.entry_valid = UINT64_MAX,
+			.attr_valid = UINT64_MAX,
+			.entry_valid_nsec = UINT32_MAX,
+			.attr_valid_nsec = UINT32_MAX,
+			.attr = attr
+		};
+		*dirent_plus = (struct fuse_direntplus) {
+			.dirent = dirent,
+			.entry_out = entry_out
+		};
+
+		strcpy((char *)(bytes_in + read_size + sizeof(*dirent_plus)), folder1);
+		read_size += FUSE_DIRENT_ALIGN(sizeof(*dirent_plus) + strlen(folder1) +
+					1);
+		TESTFUSEDIROUTREAD(read_out,
+				bytes_in +
+				sizeof(struct fuse_in_header) +
+				sizeof(struct fuse_read_in) +
+				sizeof(struct fuse_read_out),
+				read_size - sizeof(struct fuse_in_header) -
+					sizeof(struct fuse_read_in) -
+					sizeof(struct fuse_read_out));
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	close(content_fd);
+	close(src_fd);
+	umount(mount_dir);
+	return result;
+}
+
+static int bpf_test_no_readdirplus_without_nodeid(const char *mount_dir)
+{
+	const char *folder1 = "folder1";
+	const char *folder2 = "folder2";
+	int result = TEST_FAILURE;
+	int fuse_dev = -1;
+	int src_fd = -1;
+	int content_fd = -1;
+	int bpf_fd = -1;
+	FUSE_DECLARE_DAEMON;
+
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_readdirplus",
+					  &bpf_fd, NULL, NULL), 0);
+	TESTSYSCALL(s_mkdir(s_path(s(ft_src), s(folder1)), 0777));
+	TESTSYSCALL(s_mkdir(s_path(s(ft_src), s(folder2)), 0777));
+	TESTEQUAL(mount_fuse_no_init(mount_dir, -1, -1, &fuse_dev), 0);
+	FUSE_START_DAEMON();
+	if (action) {
+		DIR *open_dir = NULL;
+		struct dirent *dirent;
+
+		// Folder 1: Readdir with no nodeid
+		TEST(open_dir = s_opendir(s_path(s(ft_dst), s(folder1))),
+				open_dir != NULL);
+		TEST(dirent = readdir(open_dir), dirent == NULL);
+		TESTCOND(errno == EINVAL);
+		TESTSYSCALL(closedir(open_dir));
+		open_dir = NULL;
+
+		// Folder 2: Readdir with a nodeid
+		TEST(open_dir = s_opendir(s_path(s(ft_dst), s(folder2))),
+				open_dir != NULL);
+		TEST(dirent = readdir(open_dir), dirent == NULL);
+		TESTCOND(errno == EINVAL);
+		TESTSYSCALL(closedir(open_dir));
+		open_dir = NULL;
+	} else {
+		size_t read_size;
+		struct fuse_in_header *in_header = (struct fuse_in_header *)bytes_in;
+		struct fuse_attr attr = {};
+		int backing_fd = -1;
+
+		TESTFUSEINITFLAGS(FUSE_DO_READDIRPLUS | FUSE_READDIRPLUS_AUTO);
+
+		// folder 1: Set 0 as nodeid, Expect READDIR
+		TESTFUSELOOKUP(folder1, 0);
+		TEST(backing_fd = s_open(s_path(s(ft_src), s(folder1)),
+					 O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+		     backing_fd != -1);
+		TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+				.nodeid = 0,
+				.generation = 0,
+				.entry_valid = UINT64_MAX,
+				.attr_valid = UINT64_MAX,
+				.entry_valid_nsec = UINT32_MAX,
+				.attr_valid_nsec = UINT32_MAX,
+				.attr = attr,
+			     }), fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+				.backing_action = FUSE_ACTION_REPLACE,
+				.backing_fd = backing_fd,
+				.bpf_action = FUSE_ACTION_REPLACE,
+				.bpf_fd = bpf_fd,
+			     }));
+		TESTSYSCALL(close(backing_fd));
+		TEST(read_size = read(fuse_dev, bytes_in, sizeof(bytes_in)), read_size > 0);
+		TESTEQUAL(in_header->opcode, FUSE_READDIR);
+		TESTFUSEOUTERROR(-EINVAL);
+
+		// folder 2: Set 10 as nodeid, Expect READDIRPLUS
+		TESTFUSELOOKUP(folder2, 0);
+		TEST(backing_fd = s_open(s_path(s(ft_src), s(folder2)),
+					 O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+		     backing_fd != -1);
+		TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+				.nodeid = 10,
+				.generation = 0,
+				.entry_valid = UINT64_MAX,
+				.attr_valid = UINT64_MAX,
+				.entry_valid_nsec = UINT32_MAX,
+				.attr_valid_nsec = UINT32_MAX,
+				.attr = attr,
+			     }), fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+				.backing_action = FUSE_ACTION_REPLACE,
+				.backing_fd = backing_fd,
+				.bpf_action = FUSE_ACTION_REPLACE,
+				.bpf_fd = bpf_fd,
+			     }));
+		TESTSYSCALL(close(backing_fd));
+		TEST(read_size = read(fuse_dev, bytes_in, sizeof(bytes_in)), read_size > 0);
+		TESTEQUAL(in_header->opcode, FUSE_READDIRPLUS);
+		TESTFUSEOUTERROR(-EINVAL);
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	close(content_fd);
+	close(src_fd);
+	close(bpf_fd);
+	umount(mount_dir);
+	return result;
+}
+
+/*
+ * State:
+ * Original: dst/folder1/content.txt
+ *                  ^
+ *                  |
+ *                  |
+ * Backing:  src/folder1/content.txt
+ *
+ * Step 1:  open(folder1) - lookup folder1 with entry_timeout set to 0
+ * Step 2:  open(folder1) - lookup folder1 again to trigger revalidate wich will
+ *                          set backing fd
+ *
+ * Check 1: cat(content.txt) - check not receiving call on the fuse daemon
+ *                             and content is the same
+ */
+static int bpf_test_revalidate_handle_backing_fd(const char *mount_dir)
+{
+	const char *folder1 = "folder1";
+	const char *content_file = "content.txt";
+	const char *content = "hello world";
+	int result = TEST_FAILURE;
+	int fuse_dev = -1;
+	int src_fd = -1;
+	int content_fd = -1;
+	FUSE_DECLARE_DAEMON;
+
+	TESTSYSCALL(s_mkdir(s_path(s(ft_src), s(folder1)), 0777));
+	TEST(content_fd = s_creat(s_pathn(3, s(ft_src), s(folder1), s(content_file)), 0777),
+		content_fd != -1);
+	TESTEQUAL(write(content_fd, content, strlen(content)), strlen(content));
+	TESTSYSCALL(close(content_fd));
+	content_fd = -1;
+	TESTEQUAL(mount_fuse_no_init(mount_dir, -1, -1, &fuse_dev), 0);
+	FUSE_START_DAEMON();
+	if (action) {
+		int dst_folder1_fd = -1;
+		int dst_content_fd = -1;
+		char content_buffer[9] = {0};
+		// Step 1: Lookup folder1
+		TESTERR(dst_folder1_fd = s_open(s_path(s(mount_dir), s(folder1)),
+			O_RDONLY | O_CLOEXEC), dst_folder1_fd != -1);
+		TESTSYSCALL(close(dst_folder1_fd));
+		dst_folder1_fd = -1;
+		// Step 2: Lookup folder1 again
+		TESTERR(dst_folder1_fd = s_open(s_path(s(mount_dir), s(folder1)),
+			O_RDONLY | O_CLOEXEC), dst_folder1_fd != -1);
+		TESTSYSCALL(close(dst_folder1_fd));
+		dst_folder1_fd = -1;
+		// Check 1: Read content file (must be backed)
+		TESTERR(dst_content_fd =
+			s_open(s_pathn(3, s(mount_dir), s(folder1), s(content_file)),
+			O_RDONLY | O_CLOEXEC), dst_content_fd != -1);
+		TESTEQUAL(read(dst_content_fd, content_buffer, strlen(content)),
+			  strlen(content));
+		TESTEQUAL(strncmp(content, content_buffer, strlen(content)), 0);
+		TESTSYSCALL(close(dst_content_fd));
+		dst_content_fd = -1;
+	} else {
+		struct fuse_attr attr = {};
+		int backing_fd = -1;
+
+		TESTFUSEINITFLAGS(FUSE_DO_READDIRPLUS | FUSE_READDIRPLUS_AUTO);
+		// Step 1: Lookup folder1 set entry_timeout to 0 to trigger
+		// revalidate later
+		TESTFUSELOOKUP(folder1, 0);
+		TESTSYSCALL(s_fuse_attr(s_path(s(ft_src), s(folder1)), &attr));
+		TEST(backing_fd = s_open(s_path(s(ft_src), s(folder1)),
+					 O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+		     backing_fd != -1);
+		TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+				.nodeid = attr.ino,
+				.generation = 0,
+				.entry_valid = 0,
+				.attr_valid = UINT64_MAX,
+				.entry_valid_nsec = 0,
+				.attr_valid_nsec = UINT32_MAX,
+				.attr = attr,
+			     }), fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+				.backing_action = FUSE_ACTION_REPLACE,
+				.backing_fd = backing_fd,
+			     }));
+		TESTSYSCALL(close(backing_fd));
+		// Step 1: Lookup folder1 as a reaction to revalidate call
+		// This attempts to change the backing node, which is not allowed on revalidate
+		TESTFUSELOOKUP(folder1, 0);
+		TESTSYSCALL(s_fuse_attr(s_path(s(ft_src), s(folder1)), &attr));
+		TEST(backing_fd = s_open(s_path(s(ft_src), s(folder1)),
+					 O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+		     backing_fd != -1);
+		TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+				.nodeid = attr.ino,
+				.generation = 0,
+				.entry_valid = UINT64_MAX,
+				.attr_valid = UINT64_MAX,
+				.entry_valid_nsec = UINT32_MAX,
+				.attr_valid_nsec = UINT32_MAX,
+				.attr = attr,
+			     }), fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+				.backing_action = FUSE_ACTION_REPLACE,
+				.backing_fd = backing_fd,
+			     }));
+		TESTSYSCALL(close(backing_fd));
+
+		// Lookup folder1 as a reaction to failed revalidate
+		TESTFUSELOOKUP(folder1, 0);
+		TESTSYSCALL(s_fuse_attr(s_path(s(ft_src), s(folder1)), &attr));
+		TEST(backing_fd = s_open(s_path(s(ft_src), s(folder1)),
+					 O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+		     backing_fd != -1);
+		TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+				.nodeid = attr.ino,
+				.generation = 0,
+				.entry_valid = UINT64_MAX,
+				.attr_valid = UINT64_MAX,
+				.entry_valid_nsec = UINT32_MAX,
+				.attr_valid_nsec = UINT32_MAX,
+				.attr = attr,
+			     }), fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+				.backing_action = FUSE_ACTION_REPLACE,
+				.backing_fd = backing_fd,
+			     }));
+		TESTSYSCALL(close(backing_fd));
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(fuse_dev);
+	close(content_fd);
+	close(src_fd);
+	umount(mount_dir);
+	return result;
+}
+
+static int bpf_test_lookup_postfilter(const char *mount_dir)
+{
+	const char *file1_name = "file1";
+	const char *file2_name = "file2";
+	const char *file3_name = "file3";
+	int result = TEST_FAILURE;
+	int bpf_fd = -1;
+	int src_fd = -1;
+	int fuse_dev = -1;
+	int file_fd = -1;
+	FUSE_DECLARE_DAEMON;
+
+	TEST(file_fd = s_creat(s_path(s(ft_src), s(file1_name)), 0777),
+	     file_fd != -1);
+	TESTSYSCALL(close(file_fd));
+	TEST(file_fd = s_creat(s_path(s(ft_src), s(file2_name)), 0777),
+	     file_fd != -1);
+	TESTSYSCALL(close(file_fd));
+	file_fd = -1;
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_lookup_postfilter",
+					  &bpf_fd, NULL, NULL), 0);
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+	FUSE_START_DAEMON();
+	if (action) {
+		int fd = -1;
+
+		TESTEQUAL(s_open(s_path(s(mount_dir), s(file1_name)), O_RDONLY),
+			  -1);
+		TESTEQUAL(errno, ENOENT);
+		TEST(fd = s_open(s_path(s(mount_dir), s(file2_name)), O_RDONLY),
+		     fd != -1);
+		TESTSYSCALL(close(fd));
+		TESTEQUAL(s_open(s_path(s(mount_dir), s(file3_name)), O_RDONLY),
+			  -1);
+	} else {
+		struct fuse_in_postfilter_header *in_header =
+				(struct fuse_in_postfilter_header *)bytes_in;
+		struct fuse_entry_out *feo;
+		struct fuse_entry_bpf_out *febo;
+
+		TESTFUSELOOKUP(file1_name, FUSE_POSTFILTER);
+		TESTFUSEOUTERROR(-ENOENT);
+
+		TESTFUSELOOKUP(file2_name, FUSE_POSTFILTER);
+		feo = (struct fuse_entry_out *) (bytes_in +
+			sizeof(struct fuse_in_header) +	strlen(file2_name) + 1);
+		febo = (struct fuse_entry_bpf_out *) ((char *)feo +
+			sizeof(*feo));
+		TESTFUSEOUT2(fuse_entry_out, *feo, fuse_entry_bpf_out, *febo);
+
+		TESTFUSELOOKUP(file3_name, FUSE_POSTFILTER);
+		TESTEQUAL(in_header->error_in, -ENOENT);
+		TESTFUSEOUTERROR(-ENOENT);
+		exit(TEST_SUCCESS);
+	}
+	FUSE_END_DAEMON();
+	close(file_fd);
+	close(fuse_dev);
+	umount(mount_dir);
+	close(src_fd);
+	close(bpf_fd);
+	return result;
+}
+
+/**
+ * Test that a file made via create_and_open correctly gets the bpf assigned
+ * from the negative lookup
+ * bpf blocks file open, but also removes itself from children
+ * This test will fail if the 'remove' is unsuccessful
+ */
+static int bpf_test_create_and_remove_bpf(const char *mount_dir)
+{
+	const char *file = "file";
+
+	int result = TEST_FAILURE;
+	int src_fd = -1;
+	int bpf_fd = -1;
+	int fuse_dev = -1;
+	int fd = -1;
+	int fd2 = -1;
+
+	TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+	     src_fd != -1);
+	TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_create_remove", &bpf_fd,
+				  NULL, NULL), 0);
+	TESTEQUAL(mount_fuse_no_init(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+	TEST(fd = s_creat(s_path(s(mount_dir), s(file)), 0777),
+	     fd != -1);
+	TEST(fd2 = s_open(s_path(s(mount_dir), s(file)), O_RDONLY),
+	     fd2 != -1);
+
+	result = TEST_SUCCESS;
+out:
+	close(fd2);
+	close(fd);
+	close(fuse_dev);
+	close(bpf_fd);
+	close(src_fd);
+	umount(mount_dir);
+	return result;
+}
+
+static void parse_range(const char *ranges, bool *run_test, size_t tests)
+{
+	size_t i;
+	char *range;
+
+	for (i = 0; i < tests; ++i)
+		run_test[i] = false;
+
+	range = strtok(optarg, ",");
+	while (range) {
+		char *dash = strchr(range, '-');
+
+		if (dash) {
+			size_t start = 1, end = tests;
+			char *end_ptr;
+
+			if (dash > range) {
+				start = strtol(range, &end_ptr, 10);
+				if (*end_ptr != '-' || start <= 0 || start > tests)
+					ksft_exit_fail_msg("Bad range\n");
+			}
+
+			if (dash[1]) {
+				end = strtol(dash + 1, &end_ptr, 10);
+				if (*end_ptr || end <= start || end > tests)
+					ksft_exit_fail_msg("Bad range\n");
+			}
+
+			for (i = start; i <= end; ++i)
+				run_test[i - 1] = true;
+		} else {
+			char *end;
+			long value = strtol(range, &end, 10);
+
+			if (*end || value <= 0 || value > tests)
+				ksft_exit_fail_msg("Bad range\n");
+			run_test[value - 1] = true;
+		}
+		range = strtok(NULL, ",");
+	}
+}
+
+static int parse_options(int argc, char *const *argv, bool *run_test,
+			 size_t tests)
+{
+	signed char c;
+
+	while ((c = getopt(argc, argv, "f:t:v")) != -1)
+		switch (c) {
+		case 'f':
+			test_options.file = strtol(optarg, NULL, 10);
+			break;
+
+		case 't':
+			parse_range(optarg, run_test, tests);
+			break;
+
+		case 'v':
+			test_options.verbose = true;
+			break;
+
+		default:
+			return -EINVAL;
+		}
+
+	return 0;
+}
+
+struct test_case {
+	int (*pfunc)(const char *dir);
+	const char *name;
+};
+
+static void run_one_test(const char *mount_dir,
+			 const struct test_case *test_case)
+{
+	ksft_print_msg("Running %s\n", test_case->name);
+	if (test_case->pfunc(mount_dir) == TEST_SUCCESS)
+		ksft_test_result_pass("%s\n", test_case->name);
+	else
+		ksft_test_result_fail("%s\n", test_case->name);
+}
+
+int main(int argc, char *argv[])
+{
+	char *mount_dir = NULL;
+	char *src_dir = NULL;
+	int i;
+	int fd, count;
+
+#define MAKE_TEST(test)                                                        \
+	{                                                                      \
+		test, #test                                                    \
+	}
+	const struct test_case cases[] = {
+		MAKE_TEST(basic_test),
+		MAKE_TEST(bpf_test_real),
+		MAKE_TEST(bpf_test_partial),
+		MAKE_TEST(bpf_test_attrs),
+		MAKE_TEST(bpf_test_readdir),
+		MAKE_TEST(bpf_test_creat),
+		MAKE_TEST(bpf_test_hidden_entries),
+		MAKE_TEST(bpf_test_dir),
+		MAKE_TEST(bpf_test_file_early_close),
+		MAKE_TEST(bpf_test_file_late_close),
+		MAKE_TEST(bpf_test_mknod),
+		MAKE_TEST(bpf_test_largedir),
+		MAKE_TEST(bpf_test_link),
+		MAKE_TEST(bpf_test_symlink),
+		MAKE_TEST(bpf_test_xattr),
+		MAKE_TEST(bpf_test_redact_readdir),
+		MAKE_TEST(bpf_test_set_backing),
+		MAKE_TEST(bpf_test_remove_backing),
+		MAKE_TEST(bpf_test_dir_rename),
+		MAKE_TEST(bpf_test_file_rename),
+		MAKE_TEST(bpf_test_alter_errcode_bpf),
+		MAKE_TEST(bpf_test_alter_errcode_userspace),
+		MAKE_TEST(mmap_test),
+		MAKE_TEST(readdir_perms_test),
+		MAKE_TEST(inotify_test),
+		MAKE_TEST(bpf_test_statfs),
+		MAKE_TEST(bpf_test_lseek),
+		MAKE_TEST(bpf_test_readdirplus_not_overriding_backing),
+		MAKE_TEST(bpf_test_no_readdirplus_without_nodeid),
+		MAKE_TEST(bpf_test_revalidate_handle_backing_fd),
+		MAKE_TEST(bpf_test_lookup_postfilter),
+		MAKE_TEST(flock_test),
+		MAKE_TEST(bpf_test_create_and_remove_bpf),
+	};
+#undef MAKE_TEST
+
+	bool run_test[ARRAY_SIZE(cases)];
+
+	for (int i = 0; i < ARRAY_SIZE(cases); ++i)
+		run_test[i] = true;
+
+	if (parse_options(argc, argv, run_test, ARRAY_SIZE(cases)))
+		ksft_exit_fail_msg("Bad options\n");
+
+	// Seed randomness pool for testing on QEMU
+	// NOTE - this abuses the concept of randomness - do *not* ever do this
+	// on a machine for production use - the device will think it has good
+	// randomness when it does not.
+	fd = open("/dev/urandom", O_WRONLY | O_CLOEXEC);
+	count = 4096;
+	for (int i = 0; i < 128; ++i)
+		ioctl(fd, RNDADDTOENTCNT, &count);
+	close(fd);
+
+	ksft_print_header();
+
+	if (geteuid() != 0)
+		ksft_print_msg("Not a root, might fail to mount.\n");
+
+	if (tracing_on() != TEST_SUCCESS)
+		ksft_exit_fail_msg("Can't turn on tracing\n");
+
+	src_dir = setup_mount_dir(ft_src);
+	mount_dir = setup_mount_dir(ft_dst);
+	if (src_dir == NULL || mount_dir == NULL)
+		ksft_exit_fail_msg("Can't create a mount dir\n");
+
+	ksft_set_plan(ARRAY_SIZE(run_test));
+
+	for (i = 0; i < ARRAY_SIZE(run_test); ++i)
+		if (run_test[i]) {
+			delete_dir_tree(mount_dir, false);
+			delete_dir_tree(src_dir, false);
+			run_one_test(mount_dir, &cases[i]);
+		} else
+			ksft_cnt.ksft_xskip++;
+
+	umount2(mount_dir, MNT_FORCE);
+	delete_dir_tree(mount_dir, true);
+	delete_dir_tree(src_dir, true);
+	return !ksft_get_fail_cnt() ? ksft_exit_pass() : ksft_exit_fail();
+}
diff --git a/tools/testing/selftests/filesystems/fuse/test_bpf.c b/tools/testing/selftests/filesystems/fuse/test_bpf.c
new file mode 100644
index 0000000..e02bdb4
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/test_bpf.c
@@ -0,0 +1,533 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+// Copyright (c) 2022 Google LLC
+
+#include "test_fuse_bpf.h"
+
+SEC("test_readdir_redact")
+/* return FUSE_BPF_BACKING to use backing fs, 0 to pass to usermode */
+int readdir_test(struct fuse_bpf_args *fa)
+{
+	switch (fa->opcode) {
+	case FUSE_READDIR | FUSE_PREFILTER: {
+		const struct fuse_read_in *fri = fa->in_args[0].value;
+
+		bpf_printk("readdir %d", fri->fh);
+		return FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+	}
+
+	case FUSE_READDIR | FUSE_POSTFILTER: {
+		const struct fuse_read_in *fri = fa->in_args[0].value;
+
+		bpf_printk("readdir postfilter %x", fri->fh);
+		return FUSE_BPF_USER_FILTER;
+	}
+
+	default:
+		bpf_printk("opcode %d", fa->opcode);
+		return FUSE_BPF_BACKING;
+	}
+}
+
+SEC("test_trace")
+/* return FUSE_BPF_BACKING to use backing fs, 0 to pass to usermode */
+int trace_test(struct fuse_bpf_args *fa)
+{
+	switch (fa->opcode) {
+	case FUSE_LOOKUP | FUSE_PREFILTER: {
+		/* real and partial use backing file */
+		const char *name = fa->in_args[0].value;
+		bool backing = false;
+
+		if (strcmp(name, "real") == 0 || strcmp(name, "partial") == 0)
+			backing = true;
+
+		if (strcmp(name, "dir") == 0)
+			backing = true;
+		if (strcmp(name, "dir2") == 0)
+			backing = true;
+
+		if (strcmp(name, "file1") == 0)
+			backing = true;
+		if (strcmp(name, "file2") == 0)
+			backing = true;
+
+		bpf_printk("lookup %s %d", name, backing);
+		return backing ? FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER : 0;
+	}
+
+	case FUSE_LOOKUP | FUSE_POSTFILTER: {
+		const char *name = fa->in_args[0].value;
+		struct fuse_entry_out *feo = fa->out_args[0].value;
+
+		if (strcmp(name, "real") == 0)
+			feo->nodeid = 5;
+		else if (strcmp(name, "partial") == 0)
+			feo->nodeid = 6;
+
+		bpf_printk("post-lookup %s %d", name, feo->nodeid);
+		return 0;
+	}
+
+	case FUSE_ACCESS | FUSE_PREFILTER: {
+		bpf_printk("Access: %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_CREATE | FUSE_PREFILTER:
+		bpf_printk("Create: %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+
+	case FUSE_MKNOD | FUSE_PREFILTER: {
+		const struct fuse_mknod_in *fmi = fa->in_args[0].value;
+		const char *name = fa->in_args[1].value;
+
+		bpf_printk("mknod %s %x %x", name, fmi->rdev | fmi->mode, fmi->umask);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_MKDIR | FUSE_PREFILTER: {
+		const struct fuse_mkdir_in *fmi = fa->in_args[0].value;
+		const char *name = fa->in_args[1].value;
+
+		bpf_printk("mkdir %s %x %x", name, fmi->mode, fmi->umask);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_RMDIR | FUSE_PREFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("rmdir %s", name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_RENAME | FUSE_PREFILTER: {
+		const char *oldname = fa->in_args[1].value;
+		const char *newname = fa->in_args[2].value;
+
+		bpf_printk("rename from %s", oldname);
+		bpf_printk("rename to %s", newname);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_RENAME2 | FUSE_PREFILTER: {
+		const struct fuse_rename2_in *fri = fa->in_args[0].value;
+		uint32_t flags = fri->flags;
+		const char *oldname = fa->in_args[1].value;
+		const char *newname = fa->in_args[2].value;
+
+		bpf_printk("rename(%x) from %s", flags, oldname);
+		bpf_printk("rename to %s", newname);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_UNLINK | FUSE_PREFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("unlink %s", name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_LINK | FUSE_PREFILTER: {
+		const struct fuse_link_in *fli = fa->in_args[0].value;
+		const char *link_name = fa->in_args[1].value;
+
+		bpf_printk("link %d %s", fli->oldnodeid, link_name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_SYMLINK | FUSE_PREFILTER: {
+		const char *link_name = fa->in_args[0].value;
+		const char *link_dest = fa->in_args[1].value;
+
+		bpf_printk("symlink from %s", link_name);
+		bpf_printk("symlink to %s", link_dest);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_READLINK | FUSE_PREFILTER: {
+		const char *link_name = fa->in_args[0].value;
+
+		bpf_printk("readlink from", link_name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_OPEN | FUSE_PREFILTER: {
+		int backing = 0;
+
+		switch (fa->nodeid) {
+		case 5:
+			backing = FUSE_BPF_BACKING;
+			break;
+
+		case 6:
+			backing = FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+			break;
+
+		default:
+			break;
+		}
+
+		bpf_printk("open %d %d", fa->nodeid, backing);
+		return backing;
+	}
+
+	case FUSE_OPEN | FUSE_POSTFILTER:
+		bpf_printk("open postfilter");
+		return FUSE_BPF_USER_FILTER;
+
+	case FUSE_READ | FUSE_PREFILTER: {
+		const struct fuse_read_in *fri = fa->in_args[0].value;
+
+		bpf_printk("read %llu %llu", fri->fh, fri->offset);
+		if (fri->fh == 1 && fri->offset == 0)
+			return 0;
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_GETATTR | FUSE_PREFILTER: {
+		/* real and partial use backing file */
+		int backing = 0;
+
+		switch (fa->nodeid) {
+		case 1:
+		case 5:
+		case 6:
+		/*
+		 * TODO: Find better solution
+		 * Add 100 to stop clang compiling to jump table which bpf hates
+		 */
+		case 100:
+			backing = FUSE_BPF_BACKING;
+			break;
+		}
+
+		bpf_printk("getattr %d %d", fa->nodeid, backing);
+		return backing;
+	}
+
+	case FUSE_SETATTR | FUSE_PREFILTER: {
+		/* real and partial use backing file */
+		int backing = 0;
+
+		switch (fa->nodeid) {
+		case 1:
+		case 5:
+		case 6:
+		/* TODO See above */
+		case 100:
+			backing = FUSE_BPF_BACKING;
+			break;
+		}
+
+		bpf_printk("setattr %d %d", fa->nodeid, backing);
+		return backing;
+	}
+
+	case FUSE_OPENDIR | FUSE_PREFILTER: {
+		int backing = 0;
+
+		switch (fa->nodeid) {
+		case 1:
+			backing = FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+			break;
+		}
+
+		bpf_printk("opendir %d %d", fa->nodeid, backing);
+		return backing;
+	}
+
+	case FUSE_OPENDIR | FUSE_POSTFILTER: {
+		struct fuse_open_out *foo = fa->out_args[0].value;
+
+		foo->fh = 2;
+		bpf_printk("opendir postfilter");
+		return 0;
+	}
+
+	case FUSE_READDIR | FUSE_PREFILTER: {
+		const struct fuse_read_in *fri = fa->in_args[0].value;
+		int backing = 0;
+
+		if (fri->fh == 2)
+			backing = FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+
+		bpf_printk("readdir %d %d", fri->fh, backing);
+		return backing;
+	}
+
+	case FUSE_READDIR | FUSE_POSTFILTER: {
+		const struct fuse_read_in *fri = fa->in_args[0].value;
+		int backing = 0;
+
+		if (fri->fh == 2)
+			backing = FUSE_BPF_USER_FILTER | FUSE_BPF_BACKING |
+				  FUSE_BPF_POST_FILTER;
+
+		bpf_printk("readdir postfilter %d %d", fri->fh, backing);
+		return backing;
+	}
+
+	case FUSE_FLUSH | FUSE_PREFILTER: {
+		const struct fuse_flush_in *ffi = fa->in_args[0].value;
+
+		bpf_printk("Flush %d", ffi->fh);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_GETXATTR | FUSE_PREFILTER: {
+		const struct fuse_flush_in *ffi = fa->in_args[0].value;
+		const char *name = fa->in_args[1].value;
+
+		bpf_printk("getxattr %d %s", ffi->fh, name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_LISTXATTR | FUSE_PREFILTER: {
+		const struct fuse_flush_in *ffi = fa->in_args[0].value;
+		const char *name = fa->in_args[1].value;
+
+		bpf_printk("listxattr %d %s", ffi->fh, name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_SETXATTR | FUSE_PREFILTER: {
+		const struct fuse_flush_in *ffi = fa->in_args[0].value;
+		const char *name = fa->in_args[1].value;
+		unsigned int size = fa->in_args[2].size;
+
+		bpf_printk("setxattr %d %s %u", ffi->fh, name, size);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_REMOVEXATTR | FUSE_PREFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("removexattr %s", name);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_CANONICAL_PATH | FUSE_PREFILTER: {
+		bpf_printk("canonical_path");
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_STATFS | FUSE_PREFILTER: {
+		bpf_printk("statfs");
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_LSEEK | FUSE_PREFILTER: {
+		const struct fuse_lseek_in *fli = fa->in_args[0].value;
+
+		bpf_printk("lseek type:%d, offset:%lld", fli->whence, fli->offset);
+		return FUSE_BPF_BACKING;
+	}
+
+	default:
+		bpf_printk("Unknown opcode %d", fa->opcode);
+		return 0;
+	}
+}
+
+SEC("test_hidden")
+int trace_hidden(struct fuse_bpf_args *fa)
+{
+	switch (fa->opcode) {
+	case FUSE_LOOKUP | FUSE_PREFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("Lookup: %s", name);
+		if (!strcmp(name, "show"))
+			return FUSE_BPF_BACKING;
+		if (!strcmp(name, "hide"))
+			return -ENOENT;
+
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_ACCESS | FUSE_PREFILTER: {
+		bpf_printk("Access: %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_CREATE | FUSE_PREFILTER:
+		bpf_printk("Create: %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+
+	case FUSE_WRITE | FUSE_PREFILTER:
+	// TODO: Clang combines similar printk calls, causing BPF to complain
+	//	bpf_printk("Write: %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+
+	case FUSE_FLUSH | FUSE_PREFILTER: {
+	//	const struct fuse_flush_in *ffi = fa->in_args[0].value;
+
+	//	bpf_printk("Flush %d", ffi->fh);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_RELEASE | FUSE_PREFILTER: {
+	//	const struct fuse_release_in *fri = fa->in_args[0].value;
+
+	//	bpf_printk("Release %d", fri->fh);
+		return FUSE_BPF_BACKING;
+	}
+
+	case FUSE_FALLOCATE | FUSE_PREFILTER:
+	//	bpf_printk("fallocate %d", fa->nodeid);
+		return FUSE_BPF_BACKING;
+
+	case FUSE_CANONICAL_PATH | FUSE_PREFILTER: {
+		return FUSE_BPF_BACKING;
+	}
+	default:
+		bpf_printk("Unknown opcode: %d", fa->opcode);
+		return 0;
+	}
+}
+
+SEC("test_simple")
+int trace_simple(struct fuse_bpf_args *fa)
+{
+	if (fa->opcode & FUSE_PREFILTER)
+		bpf_printk("prefilter opcode: %d",
+			   fa->opcode & FUSE_OPCODE_FILTER);
+	else if (fa->opcode & FUSE_POSTFILTER)
+		bpf_printk("postfilter opcode: %d",
+			   fa->opcode & FUSE_OPCODE_FILTER);
+	else
+		bpf_printk("*** UNKNOWN *** opcode: %d", fa->opcode);
+	return FUSE_BPF_BACKING;
+}
+
+SEC("test_passthrough")
+int trace_daemon(struct fuse_bpf_args *fa)
+{
+	switch (fa->opcode) {
+	case FUSE_LOOKUP | FUSE_PREFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("Lookup prefilter: %lx %s", fa->nodeid, name);
+		return FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+	}
+
+	case FUSE_LOOKUP | FUSE_POSTFILTER: {
+		const char *name = fa->in_args[0].value;
+		struct fuse_entry_bpf_out *febo = fa->out_args[1].value;
+
+		bpf_printk("Lookup postfilter: %lx %s %lu", fa->nodeid, name);
+		febo->bpf_action = FUSE_ACTION_REMOVE;
+
+		return FUSE_BPF_USER_FILTER;
+	}
+
+	default:
+		if (fa->opcode & FUSE_PREFILTER)
+			bpf_printk("prefilter opcode: %d",
+				   fa->opcode & FUSE_OPCODE_FILTER);
+		else if (fa->opcode & FUSE_POSTFILTER)
+			bpf_printk("postfilter opcode: %d",
+				   fa->opcode & FUSE_OPCODE_FILTER);
+		else
+			bpf_printk("*** UNKNOWN *** opcode: %d", fa->opcode);
+		return FUSE_BPF_BACKING;
+	}
+}
+
+SEC("test_error")
+/* return FUSE_BPF_BACKING to use backing fs, 0 to pass to usermode */
+int error_test(struct fuse_bpf_args *fa)
+{
+	switch (fa->opcode) {
+	case FUSE_MKDIR | FUSE_PREFILTER: {
+		bpf_printk("mkdir");
+		return FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+	}
+	case FUSE_MKDIR | FUSE_POSTFILTER: {
+		bpf_printk("mkdir postfilter");
+		if (fa->error_in == -EEXIST)
+			return -EPERM;
+
+		return 0;
+	}
+
+	case FUSE_LOOKUP | FUSE_PREFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("lookup prefilter %s", name);
+		return FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+	}
+	case FUSE_LOOKUP | FUSE_POSTFILTER: {
+		const char *name = fa->in_args[0].value;
+
+		bpf_printk("lookup postfilter %s %d", name, fa->error_in);
+		if (strcmp(name, "doesnotexist") == 0/* && fa->error_in == -EEXIST*/) {
+			bpf_printk("lookup postfilter doesnotexist");
+			return FUSE_BPF_USER_FILTER;
+		}
+		bpf_printk("meh");
+		return 0;
+	}
+
+	default:
+		if (fa->opcode & FUSE_PREFILTER)
+			bpf_printk("prefilter opcode: %d",
+				   fa->opcode & FUSE_OPCODE_FILTER);
+		else if (fa->opcode & FUSE_POSTFILTER)
+			bpf_printk("postfilter opcode: %d",
+				   fa->opcode & FUSE_OPCODE_FILTER);
+		else
+			bpf_printk("*** UNKNOWN *** opcode: %d", fa->opcode);
+		return FUSE_BPF_BACKING;
+	}
+}
+
+SEC("test_readdirplus")
+int readdirplus_test(struct fuse_bpf_args *fa)
+{
+	switch (fa->opcode) {
+	case FUSE_READDIR | FUSE_PREFILTER: {
+		return 0;
+	}
+	}
+	return FUSE_BPF_BACKING;
+}
+
+SEC("test_lookup_postfilter")
+int lookuppostfilter_test(struct fuse_bpf_args *fa)
+{
+	switch (fa->opcode) {
+	case FUSE_LOOKUP | FUSE_PREFILTER:
+		return FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+	case FUSE_LOOKUP | FUSE_POSTFILTER:
+		return FUSE_BPF_USER_FILTER;
+	default:
+		return FUSE_BPF_BACKING;
+	}
+}
+
+SEC("test_create_remove")
+int createremovebpf_test(struct fuse_bpf_args *fa)
+{
+	switch (fa->opcode) {
+	case FUSE_LOOKUP | FUSE_PREFILTER: {
+		return FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+	}
+
+	case FUSE_LOOKUP | FUSE_POSTFILTER: {
+		struct fuse_entry_bpf_out *febo = fa->out_args[1].value;
+
+		febo->bpf_action = FUSE_ACTION_REMOVE;
+		return 0;
+	}
+
+	case FUSE_OPEN | FUSE_PREFILTER: {
+		return -EIO;
+	}
+
+	default:
+		return FUSE_BPF_BACKING;
+	}
+}
+
+
diff --git a/tools/testing/selftests/filesystems/fuse/test_framework.h b/tools/testing/selftests/filesystems/fuse/test_framework.h
new file mode 100644
index 0000000..efc6f53
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/test_framework.h
@@ -0,0 +1,179 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (c) 2021 Google LLC
+ */
+
+#ifndef _TEST_FRAMEWORK_H
+#define _TEST_FRAMEWORK_H
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <linux/compiler.h>
+
+#ifdef __ANDROID__
+static int test_case_pass;
+static int test_case_fail;
+#define ksft_print_msg			printf
+#define ksft_test_result_pass(...)	({test_case_pass++; printf(__VA_ARGS__); })
+#define ksft_test_result_fail(...)	({test_case_fail++; printf(__VA_ARGS__); })
+#define ksft_exit_fail_msg(...)		printf(__VA_ARGS__)
+#define ksft_print_header()
+#define ksft_set_plan(cnt)
+#define ksft_get_fail_cnt()		test_case_fail
+#define ksft_exit_pass()		0
+#define ksft_exit_fail()		1
+#else
+#include <kselftest.h>
+#endif
+
+#define TEST_FAILURE 1
+#define TEST_SUCCESS 0
+
+#define ptr_to_u64(p) ((__u64)p)
+
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+#define le16_to_cpu(x)          (x)
+#define le32_to_cpu(x)          (x)
+#define le64_to_cpu(x)          (x)
+#else
+#error Big endian not supported!
+#endif
+
+struct _test_options {
+	int file;
+	bool verbose;
+};
+
+extern struct _test_options test_options;
+
+#define TESTCOND(condition)						\
+	do {								\
+		if (!(condition)) {					\
+			ksft_print_msg("%s failed %d\n",		\
+				       __func__, __LINE__);		\
+			goto out;					\
+		} else if (test_options.verbose)			\
+			ksft_print_msg("%s succeeded %d\n",		\
+				       __func__, __LINE__);		\
+	} while (false)
+
+#define TESTCONDERR(condition)						\
+	do {								\
+		if (!(condition)) {					\
+			ksft_print_msg("%s failed %d\n",		\
+				       __func__, __LINE__);		\
+			ksft_print_msg("Error %d (\"%s\")\n",		\
+				       errno, strerror(errno));		\
+			goto out;					\
+		} else if (test_options.verbose)			\
+			ksft_print_msg("%s succeeded %d\n",		\
+				       __func__, __LINE__);		\
+	} while (false)
+
+#define TEST(statement, condition)					\
+	do {								\
+		statement;						\
+		TESTCOND(condition);					\
+	} while (false)
+
+#define TESTERR(statement, condition)					\
+	do {								\
+		statement;						\
+		TESTCONDERR(condition);					\
+	} while (false)
+
+enum _operator {
+	_eq,
+	_ne,
+	_ge,
+};
+
+static const char * const _operator_name[] = {
+	"==",
+	"!=",
+	">=",
+};
+
+#define _TEST_OPERATOR(name, _type, format_specifier)			\
+static inline int _test_operator_##name(const char *func, int line,	\
+				_type a, _type b, enum _operator o)	\
+{									\
+	bool pass;							\
+	switch (o) {							\
+	case _eq:							\
+		pass = a == b;						\
+		break;							\
+	case _ne:							\
+		pass = a != b;						\
+		break;							\
+	case _ge:							\
+		pass = a >= b;						\
+		break;							\
+	}								\
+									\
+	if (!pass)							\
+		ksft_print_msg("Failed: %s at line %d, "		\
+			       format_specifier " %s "			\
+			       format_specifier	"\n",			\
+			       func, line, a, _operator_name[o], b);	\
+	else if (test_options.verbose)					\
+		ksft_print_msg("Passed: %s at line %d, "		\
+			       format_specifier " %s "			\
+			       format_specifier "\n",			\
+			       func, line, a, _operator_name[o], b);	\
+									\
+	return pass ? TEST_SUCCESS : TEST_FAILURE;			\
+}
+
+_TEST_OPERATOR(i, int, "%d")
+_TEST_OPERATOR(ui, unsigned int, "%u")
+_TEST_OPERATOR(lui, unsigned long, "%lu")
+_TEST_OPERATOR(ss, ssize_t, "%zd")
+_TEST_OPERATOR(vp, void *, "%px")
+_TEST_OPERATOR(cp, char *, "%px")
+
+#define _CALL_TO(_type, name, a, b, o)					\
+	_test_operator_##name(__func__, __LINE__,			\
+				  (_type) (long long) (a),		\
+				  (_type) (long long) (b), o)
+
+#define TESTOPERATOR(a, b, o)						\
+	do {								\
+		if (_Generic((a),					\
+			int : _CALL_TO(int, i, a, b, o),		\
+			unsigned int : _CALL_TO(unsigned int, ui, a, b, o),	\
+			unsigned long : _CALL_TO(unsigned long, lui, a, b, o),	\
+			ssize_t : _CALL_TO(ssize_t, ss, a, b, o),		\
+			void * : _CALL_TO(void *, vp, a, b, o),		\
+			char * : _CALL_TO(char *, cp, a, b, o)		\
+		))							\
+			goto out;					\
+	} while (false)
+
+#define TESTEQUAL(a, b) TESTOPERATOR(a, b, _eq)
+#define TESTNE(a, b) TESTOPERATOR(a, b, _ne)
+#define TESTGE(a, b) TESTOPERATOR(a, b, _ge)
+
+/* For testing a syscall that returns 0 on success and sets errno otherwise */
+#define TESTSYSCALL(statement) TESTCONDERR((statement) == 0)
+
+static inline void print_bytes(const void *data, size_t size)
+{
+	const char *bytes = data;
+	int i;
+
+	for (i = 0; i < size; ++i) {
+		if (i % 0x10 == 0)
+			printf("%08x:", i);
+		printf("%02x ", (unsigned int) (unsigned char) bytes[i]);
+		if (i % 0x10 == 0x0f)
+			printf("\n");
+	}
+
+	if (i % 0x10 != 0)
+		printf("\n");
+}
+
+
+
+#endif
diff --git a/tools/testing/selftests/filesystems/fuse/test_fuse.h b/tools/testing/selftests/filesystems/fuse/test_fuse.h
new file mode 100644
index 0000000..69dadc9
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/test_fuse.h
@@ -0,0 +1,337 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (c) 2021 Google LLC
+ */
+
+#ifndef TEST_FUSE__H
+#define TEST_FUSE__H
+
+#define _GNU_SOURCE
+
+#include "test_framework.h"
+
+#include <dirent.h>
+#include <sys/stat.h>
+#include <sys/statfs.h>
+#include <sys/types.h>
+
+#include <include/uapi/linux/android_fuse.h>
+#include <include/uapi/linux/fuse.h>
+
+#define PAGE_SIZE 4096
+#define FUSE_POSTFILTER 0x20000
+
+extern struct _test_options test_options;
+
+/* Slow but semantically easy string functions */
+
+/*
+ * struct s just wraps a char pointer
+ * It is a pointer to a malloc'd string, or null
+ * All consumers handle null input correctly
+ * All consumers free the string
+ */
+struct s {
+	char *s;
+};
+
+struct s s(const char *s1);
+struct s sn(const char *s1, const char *s2);
+int s_cmp(struct s s1, struct s s2);
+struct s s_cat(struct s s1, struct s s2);
+struct s s_splitleft(struct s s1, char c);
+struct s s_splitright(struct s s1, char c);
+struct s s_word(struct s s1, char c, size_t n);
+struct s s_path(struct s s1, struct s s2);
+struct s s_pathn(size_t n, struct s s1, ...);
+int s_link(struct s src_pathname, struct s dst_pathname);
+int s_symlink(struct s src_pathname, struct s dst_pathname);
+int s_mkdir(struct s pathname, mode_t mode);
+int s_rmdir(struct s pathname);
+int s_unlink(struct s pathname);
+int s_open(struct s pathname, int flags, ...);
+int s_openat(int dirfd, struct s pathname, int flags, ...);
+int s_creat(struct s pathname, mode_t mode);
+int s_mkfifo(struct s pathname, mode_t mode);
+int s_stat(struct s pathname, struct stat *st);
+int s_statfs(struct s pathname, struct statfs *st);
+int s_fuse_attr(struct s pathname, struct fuse_attr *fuse_attr_out);
+DIR *s_opendir(struct s pathname);
+int s_getxattr(struct s pathname, const char name[], void *value, size_t size,
+	       ssize_t *ret_size);
+int s_listxattr(struct s pathname, void *list, size_t size, ssize_t *ret_size);
+int s_setxattr(struct s pathname, const char name[], const void *value,
+	       size_t size, int flags);
+int s_removexattr(struct s pathname, const char name[]);
+int s_rename(struct s oldpathname, struct s newpathname);
+
+struct s tracing_folder(void);
+int tracing_on(void);
+
+char *concat_file_name(const char *dir, const char *file);
+char *setup_mount_dir(const char *name);
+int delete_dir_tree(const char *dir_path, bool remove_root);
+
+#define TESTFUSEINNULL(_opcode)						\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		ssize_t res = read(fuse_dev, &bytes_in,			\
+			sizeof(bytes_in));				\
+									\
+		TESTEQUAL(in_header->opcode, _opcode);			\
+		TESTEQUAL(res, sizeof(*in_header));			\
+	} while (false)
+
+#define TESTFUSEIN(_opcode, in_struct)					\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		ssize_t res = read(fuse_dev, &bytes_in,			\
+			sizeof(bytes_in));				\
+									\
+		TESTEQUAL(in_header->opcode, _opcode);			\
+		TESTEQUAL(res, sizeof(*in_header) + sizeof(*in_struct));\
+	} while (false)
+
+#define TESTFUSEIN2(_opcode, in_struct1, in_struct2)			\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		ssize_t res = read(fuse_dev, &bytes_in,			\
+			sizeof(bytes_in));				\
+									\
+		TESTEQUAL(in_header->opcode, _opcode);			\
+		TESTEQUAL(res, sizeof(*in_header) + sizeof(*in_struct1) \
+						+ sizeof(*in_struct2)); \
+		in_struct1 = (void *)(bytes_in + sizeof(*in_header));	\
+		in_struct2 = (void *)(bytes_in + sizeof(*in_header)	\
+				      + sizeof(*in_struct1));		\
+	} while (false)
+
+#define TESTFUSEINEXT(_opcode, in_struct, extra)			\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		ssize_t res = read(fuse_dev, &bytes_in,			\
+			sizeof(bytes_in));				\
+									\
+		TESTEQUAL(in_header->opcode, _opcode);			\
+		TESTEQUAL(res,						\
+		       sizeof(*in_header) + sizeof(*in_struct) + extra);\
+	} while (false)
+
+#define TESTFUSEINUNKNOWN()						\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		ssize_t res = read(fuse_dev, &bytes_in,			\
+			sizeof(bytes_in));				\
+									\
+		TESTGE(res, sizeof(*in_header));			\
+		TESTEQUAL(in_header->opcode, -1);			\
+	} while (false)
+
+/* Special case lookup since it is asymmetric */
+#define TESTFUSELOOKUP(expected, filter)				\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		char *name = (char *) (bytes_in + sizeof(*in_header));	\
+		ssize_t res;						\
+									\
+		TEST(res = read(fuse_dev, &bytes_in, sizeof(bytes_in)),	\
+			  res != -1);					\
+		/* TODO once we handle forgets properly, remove */	\
+		if (in_header->opcode == FUSE_FORGET)			\
+			continue;					\
+		if (in_header->opcode == FUSE_BATCH_FORGET)		\
+			continue;					\
+		TESTGE(res, sizeof(*in_header));			\
+		TESTEQUAL(in_header->opcode,				\
+			FUSE_LOOKUP | filter);				\
+		TESTEQUAL(res,						\
+			  sizeof(*in_header) + strlen(expected) + 1 +	\
+				(filter == FUSE_POSTFILTER ?		\
+				sizeof(struct fuse_entry_out) +		\
+				sizeof(struct fuse_entry_bpf_out) : 0));\
+		TESTCOND(!strcmp(name, expected));			\
+		break;							\
+	} while (true)
+
+#define TESTFUSEOUTEMPTY()						\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		struct fuse_out_header *out_header =			\
+			(struct fuse_out_header *)bytes_out;		\
+									\
+		*out_header = (struct fuse_out_header) {		\
+			.len = sizeof(*out_header),			\
+			.unique = in_header->unique,			\
+		};							\
+		TESTEQUAL(write(fuse_dev, bytes_out, out_header->len),	\
+			  out_header->len);				\
+	} while (false)
+
+#define TESTFUSEOUTERROR(errno)						\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		struct fuse_out_header *out_header =			\
+			(struct fuse_out_header *)bytes_out;		\
+									\
+		*out_header = (struct fuse_out_header) {		\
+			.len = sizeof(*out_header),			\
+			.error = errno,					\
+			.unique = in_header->unique,			\
+		};							\
+		TESTEQUAL(write(fuse_dev, bytes_out, out_header->len),	\
+			  out_header->len);				\
+	} while (false)
+
+#define TESTFUSEOUTREAD(data, length)					\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		struct fuse_out_header *out_header =			\
+			(struct fuse_out_header *)bytes_out;		\
+									\
+		*out_header = (struct fuse_out_header) {		\
+			.len = sizeof(*out_header) + length,		\
+			.unique = in_header->unique,			\
+		};							\
+		memcpy(bytes_out + sizeof(*out_header), data, length);	\
+		TESTEQUAL(write(fuse_dev, bytes_out, out_header->len),	\
+			  out_header->len);				\
+	} while (false)
+
+#define TESTFUSEDIROUTREAD(read_out, data, length)			\
+	do {								\
+		struct fuse_in_header *in_header =			\
+				(struct fuse_in_header *)bytes_in;	\
+		struct fuse_out_header *out_header =			\
+			(struct fuse_out_header *)bytes_out;		\
+									\
+		*out_header = (struct fuse_out_header) {		\
+			.len = sizeof(*out_header) +			\
+			       sizeof(*read_out) + length,		\
+			.unique = in_header->unique,			\
+		};							\
+		memcpy(bytes_out + sizeof(*out_header) +		\
+				sizeof(*read_out), data, length);	\
+		memcpy(bytes_out + sizeof(*out_header),			\
+				read_out, sizeof(*read_out));		\
+		TESTEQUAL(write(fuse_dev, bytes_out, out_header->len),	\
+			  out_header->len);				\
+	} while (false)
+
+#define TESTFUSEOUT1(type1, obj1)					\
+	do {								\
+		*(struct fuse_out_header *) bytes_out			\
+			= (struct fuse_out_header) {			\
+			.len = sizeof(struct fuse_out_header)		\
+				+ sizeof(struct type1),			\
+			.unique = ((struct fuse_in_header *)		\
+				   bytes_in)->unique,			\
+		};							\
+		*(struct type1 *) (bytes_out				\
+			+ sizeof(struct fuse_out_header))		\
+			= obj1;						\
+		TESTEQUAL(write(fuse_dev, bytes_out,			\
+			((struct fuse_out_header *)bytes_out)->len),	\
+			((struct fuse_out_header *)bytes_out)->len);	\
+	} while (false)
+
+#define TESTFUSEOUT2(type1, obj1, type2, obj2)				\
+	do {								\
+		*(struct fuse_out_header *) bytes_out			\
+			= (struct fuse_out_header) {			\
+			.len = sizeof(struct fuse_out_header)		\
+				+ sizeof(struct type1)			\
+				+ sizeof(struct type2),			\
+			.unique = ((struct fuse_in_header *)		\
+				   bytes_in)->unique,			\
+		};							\
+		*(struct type1 *) (bytes_out				\
+			+ sizeof(struct fuse_out_header))		\
+			= obj1;						\
+		*(struct type2 *) (bytes_out				\
+			+ sizeof(struct fuse_out_header)		\
+			+ sizeof(struct type1))				\
+			= obj2;						\
+		TESTEQUAL(write(fuse_dev, bytes_out,			\
+			((struct fuse_out_header *)bytes_out)->len),	\
+			((struct fuse_out_header *)bytes_out)->len);	\
+	} while (false)
+
+#define TESTFUSEINITFLAGS(fuse_connection_flags)			\
+	do {								\
+		DECL_FUSE_IN(init);					\
+									\
+		TESTFUSEIN(FUSE_INIT, init_in);				\
+		TESTEQUAL(init_in->major, FUSE_KERNEL_VERSION);		\
+		TESTEQUAL(init_in->minor, FUSE_KERNEL_MINOR_VERSION);	\
+		TESTFUSEOUT1(fuse_init_out, ((struct fuse_init_out) {	\
+			.major = FUSE_KERNEL_VERSION,			\
+			.minor = FUSE_KERNEL_MINOR_VERSION,		\
+			.max_readahead = 4096,				\
+			.flags = fuse_connection_flags,			\
+			.max_background = 0,				\
+			.congestion_threshold = 0,			\
+			.max_write = 4096,				\
+			.time_gran = 1000,				\
+			.max_pages = 12,				\
+			.map_alignment = 4096,				\
+		}));							\
+	} while (false)
+
+#define TESTFUSEINIT()							\
+	TESTFUSEINITFLAGS(0)
+
+#define DECL_FUSE_IN(name)						\
+	struct fuse_##name##_in *name##_in =				\
+		(struct fuse_##name##_in *)				\
+		(bytes_in + sizeof(struct fuse_in_header))
+
+#define DECL_FUSE(name)							\
+	struct fuse_##name##_in *name##_in __maybe_unused;		\
+	struct fuse_##name##_out *name##_out __maybe_unused
+
+#define FUSE_DECLARE_DAEMON						\
+	int daemon = -1;						\
+	int status;							\
+	bool action;							\
+	uint8_t bytes_in[FUSE_MIN_READ_BUFFER] __maybe_unused;		\
+	uint8_t bytes_out[FUSE_MIN_READ_BUFFER]	__maybe_unused
+
+#define FUSE_START_DAEMON()						\
+	do {								\
+		TEST(daemon = fork(), daemon != -1);			\
+		action = daemon != 0;					\
+	} while (false)
+
+#define FUSE_END_DAEMON()						\
+	do {								\
+		TESTEQUAL(waitpid(daemon, &status, 0), daemon);		\
+		TESTEQUAL(status, TEST_SUCCESS);			\
+		result = TEST_SUCCESS;					\
+out:									\
+		if (!daemon)						\
+			exit(TEST_FAILURE);				\
+	} while (false)
+
+
+struct map_relocation {
+	char *name;
+	int fd;
+	int value;
+};
+
+int mount_fuse(const char *mount_dir, int bpf_fd, int dir_fd,
+	       int *fuse_dev_ptr);
+int mount_fuse_no_init(const char *mount_dir, int bpf_fd, int dir_fd,
+	       int *fuse_dev_ptr);
+int install_elf_bpf(const char *file, const char *section, int *fd,
+		    struct map_relocation **map_relocations, size_t *map_count);
+#endif
diff --git a/tools/testing/selftests/filesystems/fuse/test_fuse_bpf.h b/tools/testing/selftests/filesystems/fuse/test_fuse_bpf.h
new file mode 100644
index 0000000..9097626
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/test_fuse_bpf.h
@@ -0,0 +1,65 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (c) 2022 Google LLC
+ */
+
+#ifndef TEST_FUSE__BPF__H
+#define TEST_FUSE__BPF__H
+
+#define __EXPORTED_HEADERS__
+#define __KERNEL__
+
+#ifdef __ANDROID__
+#include <stdint.h>
+#endif
+
+#include <uapi/linux/types.h>
+#include <uapi/linux/bpf.h>
+#include <uapi/linux/android_fuse.h>
+#include <uapi/linux/fuse.h>
+#include <uapi/linux/errno.h>
+
+#define SEC(NAME) __section(NAME)
+
+struct fuse_bpf_map {
+	int map_type;
+	size_t key_size;
+	size_t value_size;
+	int max_entries;
+};
+
+static void *(*bpf_map_lookup_elem)(struct fuse_bpf_map *map, void *key)
+	= (void *) 1;
+
+static void *(*bpf_map_update_elem)(struct fuse_bpf_map *map, void *key,
+				    void *value, int flags)
+	= (void *) 2;
+
+static long (*bpf_trace_printk)(const char *fmt, __u32 fmt_size, ...)
+	= (void *) 6;
+
+static long (*bpf_get_current_pid_tgid)()
+	= (void *) 14;
+
+static long (*bpf_get_current_uid_gid)()
+	= (void *) 15;
+
+#define bpf_printk(fmt, ...)					\
+	({			                                \
+		char ____fmt[] = fmt;                           \
+		bpf_trace_printk(____fmt, sizeof(____fmt),      \
+					##__VA_ARGS__);		\
+	})
+
+SEC("dummy") inline int strcmp(const char *a, const char *b)
+{
+	int i;
+
+	for (i = 0; i < __builtin_strlen(b) + 1; ++i)
+		if (a[i] != b[i])
+			return -1;
+
+	return 0;
+}
+
+#endif
diff --git a/tools/testing/selftests/filesystems/incfs/.gitignore b/tools/testing/selftests/filesystems/incfs/.gitignore
new file mode 100644
index 0000000..f0e3cd9
--- /dev/null
+++ b/tools/testing/selftests/filesystems/incfs/.gitignore
@@ -0,0 +1,3 @@
+incfs_test
+incfs_stress
+incfs_perf
diff --git a/tools/testing/selftests/filesystems/incfs/Makefile b/tools/testing/selftests/filesystems/incfs/Makefile
new file mode 100644
index 0000000..5a2f630
--- /dev/null
+++ b/tools/testing/selftests/filesystems/incfs/Makefile
@@ -0,0 +1,11 @@
+# SPDX-License-Identifier: GPL-2.0
+CFLAGS += -D_FILE_OFFSET_BITS=64 -Wall -Werror -I../.. -I../../../../.. -fno-omit-frame-pointer -fsanitize=address -g
+LDLIBS := -llz4 -lzstd -lcrypto -lpthread -fsanitize=address
+TEST_GEN_PROGS := incfs_test incfs_stress incfs_perf
+
+include ../../lib.mk
+
+# Put after include ../../lib.mk since that changes $(TEST_GEN_PROGS)
+# Otherwise you get multiple targets, this becomes the default, and it's a mess
+EXTRA_SOURCES := utils.c
+$(TEST_GEN_PROGS) : $(EXTRA_SOURCES)
diff --git a/tools/testing/selftests/filesystems/incfs/incfs_perf.c b/tools/testing/selftests/filesystems/incfs/incfs_perf.c
new file mode 100644
index 0000000..ed36bbd
--- /dev/null
+++ b/tools/testing/selftests/filesystems/incfs/incfs_perf.c
@@ -0,0 +1,717 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2020 Google LLC
+ */
+#include <errno.h>
+#include <fcntl.h>
+#include <getopt.h>
+#include <lz4.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/mount.h>
+#include <sys/stat.h>
+#include <time.h>
+#include <ctype.h>
+#include <unistd.h>
+
+#include "utils.h"
+
+#define err_msg(...)                                                           \
+	do {                                                                   \
+		fprintf(stderr, "%s: (%d) ", TAG, __LINE__);                   \
+		fprintf(stderr, __VA_ARGS__);                                  \
+		fprintf(stderr, " (%s)\n", strerror(errno));                   \
+	} while (false)
+
+#define TAG "incfs_perf"
+
+struct options {
+	int blocks; /* -b number of diff block sizes */
+	bool no_cleanup; /* -c don't clean up after */
+	const char *test_dir; /* -d working directory */
+	const char *file_types; /* -f sScCvV */
+	bool no_native; /* -n don't test native files */
+	bool no_random; /* -r don't do random reads*/
+	bool no_linear; /* -R random reads only */
+	size_t size; /* -s file size as power of 2 */
+	int tries; /* -t times to run test*/
+};
+
+enum flags {
+	SHUFFLE = 1,
+	COMPRESS = 2,
+	VERIFY = 4,
+	LAST_FLAG = 8,
+};
+
+void print_help(void)
+{
+	puts(
+	"incfs_perf. Performance test tool for incfs\n"
+	"\tTests read performance of incfs by creating files of various types\n"
+	"\tflushing caches and then reading them back.\n"
+	"\tEach file is read with different block sizes and average\n"
+	"\tthroughput in megabytes/second and memory usage are reported for\n"
+	"\teach block size\n"
+	"\tNative files are tested for comparison\n"
+	"\tNative files are created in native folder, incfs files are created\n"
+	"\tin src folder which is mounted on dst folder\n"
+	"\n"
+	"\t-bn (default 8) number of different block sizes, starting at 4096\n"
+	"\t                and doubling\n"
+	"\t-c		   don't Clean up - leave files and mount point\n"
+	"\t-d dir          create directories in dir\n"
+	"\t-fs|Sc|Cv|V     restrict which files are created.\n"
+	"\t                s blocks not shuffled, S blocks shuffled\n"
+	"\t                c blocks not compress, C blocks compressed\n"
+	"\t                v files not verified, V files verified\n"
+	"\t                If a letter is omitted, both options are tested\n"
+	"\t                If no letter are given, incfs is not tested\n"
+	"\t-n              Don't test native files\n"
+	"\t-r              No random reads (sequential only)\n"
+	"\t-R              Random reads only (no sequential)\n"
+	"\t-sn (default 30)File size as power of 2\n"
+	"\t-tn (default 5) Number of tries per file. Results are averaged\n"
+	);
+}
+
+int parse_options(int argc, char *const *argv, struct options *options)
+{
+	signed char c;
+
+	/* Set defaults here */
+	*options = (struct options){
+		.blocks = 8,
+		.test_dir = ".",
+		.tries = 5,
+		.size = 30,
+	};
+
+	/* Load options from command line here */
+	while ((c = getopt(argc, argv, "b:cd:f::hnrRs:t:")) != -1) {
+		switch (c) {
+		case 'b':
+			options->blocks = strtol(optarg, NULL, 10);
+			break;
+
+		case 'c':
+			options->no_cleanup = true;
+			break;
+
+		case 'd':
+			options->test_dir = optarg;
+			break;
+
+		case 'f':
+			if (optarg)
+				options->file_types = optarg;
+			else
+				options->file_types = "sS";
+			break;
+
+		case 'h':
+			print_help();
+			exit(0);
+
+		case 'n':
+			options->no_native = true;
+			break;
+
+		case 'r':
+			options->no_random = true;
+			break;
+
+		case 'R':
+			options->no_linear = true;
+			break;
+
+		case 's':
+			options->size = strtol(optarg, NULL, 10);
+			break;
+
+		case 't':
+			options->tries = strtol(optarg, NULL, 10);
+			break;
+
+		default:
+			print_help();
+			return -EINVAL;
+		}
+	}
+
+	options->size = 1L << options->size;
+
+	return 0;
+}
+
+void shuffle(size_t *buffer, size_t size)
+{
+	size_t i;
+
+	for (i = 0; i < size; ++i) {
+		size_t j = random() * (size - i - 1) / RAND_MAX;
+		size_t temp = buffer[i];
+
+		buffer[i] = buffer[j];
+		buffer[j] = temp;
+	}
+}
+
+int get_free_memory(void)
+{
+	FILE *meminfo = fopen("/proc/meminfo", "re");
+	char field[256];
+	char value[256] = {};
+
+	if (!meminfo)
+		return -ENOENT;
+
+	while (fscanf(meminfo, "%[^:]: %s kB\n", field, value) == 2) {
+		if (!strcmp(field, "MemFree"))
+			break;
+		*value = 0;
+	}
+
+	fclose(meminfo);
+
+	if (!*value)
+		return -ENOENT;
+
+	return strtol(value, NULL, 10);
+}
+
+int write_data(int cmd_fd, int dir_fd, const char *name, size_t size, int flags)
+{
+	int fd = openat(dir_fd, name, O_RDWR | O_CLOEXEC);
+	struct incfs_permit_fill permit_fill = {
+		.file_descriptor = fd,
+	};
+	int block_count = 1 + (size - 1) / INCFS_DATA_FILE_BLOCK_SIZE;
+	size_t *blocks = malloc(sizeof(size_t) * block_count);
+	int error = 0;
+	size_t i;
+	uint8_t data[INCFS_DATA_FILE_BLOCK_SIZE] = {};
+	uint8_t compressed_data[INCFS_DATA_FILE_BLOCK_SIZE] = {};
+	struct incfs_fill_block fill_block = {
+		.compression = COMPRESSION_NONE,
+		.data_len = sizeof(data),
+		.data = ptr_to_u64(data),
+	};
+
+	if (!blocks) {
+		err_msg("Out of memory");
+		error = -errno;
+		goto out;
+	}
+
+	if (fd == -1) {
+		err_msg("Could not open file for writing %s", name);
+		error = -errno;
+		goto out;
+	}
+
+	if (ioctl(cmd_fd, INCFS_IOC_PERMIT_FILL, &permit_fill)) {
+		err_msg("Failed to call PERMIT_FILL");
+		error = -errno;
+		goto out;
+	}
+
+	for (i = 0; i < block_count; ++i)
+		blocks[i] = i;
+
+	if (flags & SHUFFLE)
+		shuffle(blocks, block_count);
+
+	if (flags & COMPRESS) {
+		size_t comp_size = LZ4_compress_default(
+			(char *)data, (char *)compressed_data, sizeof(data),
+			ARRAY_SIZE(compressed_data));
+
+		if (comp_size <= 0) {
+			error = -EBADMSG;
+			goto out;
+		}
+		fill_block.compression = COMPRESSION_LZ4;
+		fill_block.data = ptr_to_u64(compressed_data);
+		fill_block.data_len = comp_size;
+	}
+
+	for (i = 0; i < block_count; ++i) {
+		struct incfs_fill_blocks fill_blocks = {
+			.count = 1,
+			.fill_blocks = ptr_to_u64(&fill_block),
+		};
+
+		fill_block.block_index = blocks[i];
+		int written = ioctl(fd, INCFS_IOC_FILL_BLOCKS, &fill_blocks);
+
+		if (written != 1) {
+			error = -errno;
+			err_msg("Failed to write block %lu in file %s", i,
+				name);
+			break;
+		}
+	}
+
+out:
+	free(blocks);
+	close(fd);
+	sync();
+	return error;
+}
+
+int measure_read_throughput_internal(const char *tag, int dir, const char *name,
+				     const struct options *options, bool random)
+{
+	int block;
+
+	if (random)
+		printf("%32s(random)", tag);
+	else
+		printf("%40s", tag);
+
+	for (block = 0; block < options->blocks; ++block) {
+		size_t buffer_size;
+		char *buffer;
+		int try;
+		double time = 0;
+		double throughput;
+		int memory = 0;
+
+		buffer_size = 1 << (block + 12);
+		buffer = malloc(buffer_size);
+
+		for (try = 0; try < options->tries; ++try) {
+			int err;
+			struct timespec start_time, end_time;
+			off_t i;
+			int fd;
+			size_t offsets_size = options->size / buffer_size;
+			size_t *offsets =
+				malloc(offsets_size * sizeof(*offsets));
+			int start_memory, end_memory;
+
+			if (!offsets) {
+				err_msg("Not enough memory");
+				return -ENOMEM;
+			}
+
+			for (i = 0; i < offsets_size; ++i)
+				offsets[i] = i * buffer_size;
+
+			if (random)
+				shuffle(offsets, offsets_size);
+
+			err = drop_caches();
+			if (err) {
+				err_msg("Failed to drop caches");
+				return err;
+			}
+
+			start_memory = get_free_memory();
+			if (start_memory < 0) {
+				err_msg("Failed to get start memory");
+				return start_memory;
+			}
+
+			fd = openat(dir, name, O_RDONLY | O_CLOEXEC);
+			if (fd == -1) {
+				err_msg("Failed to open file");
+				return err;
+			}
+
+			err = clock_gettime(CLOCK_MONOTONIC, &start_time);
+			if (err) {
+				err_msg("Failed to get start time");
+				return err;
+			}
+
+			for (i = 0; i < offsets_size; ++i)
+				if (pread(fd, buffer, buffer_size,
+					  offsets[i]) != buffer_size) {
+					err_msg("Failed to read file");
+					err = -errno;
+					goto fail;
+				}
+
+			err = clock_gettime(CLOCK_MONOTONIC, &end_time);
+			if (err) {
+				err_msg("Failed to get start time");
+				goto fail;
+			}
+
+			end_memory = get_free_memory();
+			if (end_memory < 0) {
+				err_msg("Failed to get end memory");
+				return end_memory;
+			}
+
+			time += end_time.tv_sec - start_time.tv_sec;
+			time += (end_time.tv_nsec - start_time.tv_nsec) / 1e9;
+
+			close(fd);
+			fd = -1;
+			memory += start_memory - end_memory;
+
+fail:
+			free(offsets);
+			close(fd);
+			if (err)
+				return err;
+		}
+
+		throughput = options->size * options->tries / time;
+		printf("%10.3e %10d", throughput, memory / options->tries);
+		free(buffer);
+	}
+
+	printf("\n");
+	return 0;
+}
+
+int measure_read_throughput(const char *tag, int dir, const char *name,
+			    const struct options *options)
+{
+	int err = 0;
+
+	if (!options->no_linear)
+		err = measure_read_throughput_internal(tag, dir, name, options,
+						       false);
+
+	if (!err && !options->no_random)
+		err = measure_read_throughput_internal(tag, dir, name, options,
+						       true);
+	return err;
+}
+
+int test_native_file(int dir, const struct options *options)
+{
+	const char *name = "file";
+	int fd;
+	char buffer[4096] = {};
+	off_t i;
+	int err;
+
+	fd = openat(dir, name, O_CREAT | O_WRONLY | O_CLOEXEC, 0600);
+	if (fd == -1) {
+		err_msg("Could not open native file");
+		return -errno;
+	}
+
+	for (i = 0; i < options->size; i += sizeof(buffer))
+		if (pwrite(fd, buffer, sizeof(buffer), i) != sizeof(buffer)) {
+			err_msg("Failed to write file");
+			err = -errno;
+			goto fail;
+		}
+
+	close(fd);
+	sync();
+	fd = -1;
+
+	err = measure_read_throughput("native", dir, name, options);
+
+fail:
+	close(fd);
+	return err;
+}
+
+struct hash_block {
+	char data[INCFS_DATA_FILE_BLOCK_SIZE];
+};
+
+static struct hash_block *build_mtree(size_t size, char *root_hash,
+				      int *mtree_block_count)
+{
+	char data[INCFS_DATA_FILE_BLOCK_SIZE] = {};
+	const int digest_size = SHA256_DIGEST_SIZE;
+	const int hash_per_block = INCFS_DATA_FILE_BLOCK_SIZE / digest_size;
+	int block_count = 0;
+	int hash_block_count = 0;
+	int total_tree_block_count = 0;
+	int tree_lvl_index[INCFS_MAX_MTREE_LEVELS] = {};
+	int tree_lvl_count[INCFS_MAX_MTREE_LEVELS] = {};
+	int levels_count = 0;
+	int i, level;
+	struct hash_block *mtree;
+
+	if (size == 0)
+		return 0;
+
+	block_count = 1 + (size - 1) / INCFS_DATA_FILE_BLOCK_SIZE;
+	hash_block_count = block_count;
+	for (i = 0; hash_block_count > 1; i++) {
+		hash_block_count = (hash_block_count + hash_per_block - 1) /
+				   hash_per_block;
+		tree_lvl_count[i] = hash_block_count;
+		total_tree_block_count += hash_block_count;
+	}
+	levels_count = i;
+
+	for (i = 0; i < levels_count; i++) {
+		int prev_lvl_base = (i == 0) ? total_tree_block_count :
+					       tree_lvl_index[i - 1];
+
+		tree_lvl_index[i] = prev_lvl_base - tree_lvl_count[i];
+	}
+
+	*mtree_block_count = total_tree_block_count;
+	mtree = calloc(total_tree_block_count, sizeof(*mtree));
+	/* Build level 0 hashes. */
+	for (i = 0; i < block_count; i++) {
+		int block_index = tree_lvl_index[0] + i / hash_per_block;
+		int block_off = (i % hash_per_block) * digest_size;
+		char *hash_ptr = mtree[block_index].data + block_off;
+
+		sha256(data, INCFS_DATA_FILE_BLOCK_SIZE, hash_ptr);
+	}
+
+	/* Build higher levels of hash tree. */
+	for (level = 1; level < levels_count; level++) {
+		int prev_lvl_base = tree_lvl_index[level - 1];
+		int prev_lvl_count = tree_lvl_count[level - 1];
+
+		for (i = 0; i < prev_lvl_count; i++) {
+			int block_index =
+				i / hash_per_block + tree_lvl_index[level];
+			int block_off = (i % hash_per_block) * digest_size;
+			char *hash_ptr = mtree[block_index].data + block_off;
+
+			sha256(mtree[i + prev_lvl_base].data,
+			       INCFS_DATA_FILE_BLOCK_SIZE, hash_ptr);
+		}
+	}
+
+	/* Calculate root hash from the top block */
+	sha256(mtree[0].data, INCFS_DATA_FILE_BLOCK_SIZE, root_hash);
+
+	return mtree;
+}
+
+static int load_hash_tree(int cmd_fd, int dir, const char *name,
+			  struct hash_block *mtree, int mtree_block_count)
+{
+	int err;
+	int i;
+	int fd;
+	struct incfs_fill_block *fill_block_array =
+		calloc(mtree_block_count, sizeof(struct incfs_fill_block));
+	struct incfs_fill_blocks fill_blocks = {
+		.count = mtree_block_count,
+		.fill_blocks = ptr_to_u64(fill_block_array),
+	};
+	struct incfs_permit_fill permit_fill;
+
+	if (!fill_block_array)
+		return -ENOMEM;
+
+	for (i = 0; i < fill_blocks.count; i++) {
+		fill_block_array[i] = (struct incfs_fill_block){
+			.block_index = i,
+			.data_len = INCFS_DATA_FILE_BLOCK_SIZE,
+			.data = ptr_to_u64(mtree[i].data),
+			.flags = INCFS_BLOCK_FLAGS_HASH
+		};
+	}
+
+	fd = openat(dir, name, O_RDONLY | O_CLOEXEC);
+	if (fd < 0) {
+		err = errno;
+		goto failure;
+	}
+
+	permit_fill.file_descriptor = fd;
+	if (ioctl(cmd_fd, INCFS_IOC_PERMIT_FILL, &permit_fill)) {
+		err_msg("Failed to call PERMIT_FILL");
+		err = -errno;
+		goto failure;
+	}
+
+	err = ioctl(fd, INCFS_IOC_FILL_BLOCKS, &fill_blocks);
+	close(fd);
+	if (err < fill_blocks.count)
+		err = errno;
+	else
+		err = 0;
+
+failure:
+	free(fill_block_array);
+	return err;
+}
+
+int test_incfs_file(int dst_dir, const struct options *options, int flags)
+{
+	int cmd_file = openat(dst_dir, INCFS_PENDING_READS_FILENAME,
+			      O_RDONLY | O_CLOEXEC);
+	int err;
+	char name[4];
+	incfs_uuid_t id;
+	char tag[256];
+
+	snprintf(name, sizeof(name), "%c%c%c",
+		 flags & SHUFFLE ? 'S' : 's',
+		 flags & COMPRESS ? 'C' : 'c',
+		 flags & VERIFY ? 'V' : 'v');
+
+	if (cmd_file == -1) {
+		err_msg("Could not open command file");
+		return -errno;
+	}
+
+	if (flags & VERIFY) {
+		char root_hash[INCFS_MAX_HASH_SIZE];
+		int mtree_block_count;
+		struct hash_block *mtree = build_mtree(options->size, root_hash,
+						       &mtree_block_count);
+
+		if (!mtree) {
+			err_msg("Failed to build hash tree");
+			err = -ENOMEM;
+			goto fail;
+		}
+
+		err = crypto_emit_file(cmd_file, NULL, name, &id, options->size,
+				       root_hash, "add_data");
+
+		if (!err)
+			err = load_hash_tree(cmd_file, dst_dir, name, mtree,
+					     mtree_block_count);
+
+		free(mtree);
+	} else
+		err = emit_file(cmd_file, NULL, name, &id, options->size, NULL);
+
+	if (err) {
+		err_msg("Failed to create file %s", name);
+		goto fail;
+	}
+
+	if (write_data(cmd_file, dst_dir, name, options->size, flags))
+		goto fail;
+
+	snprintf(tag, sizeof(tag), "incfs%s%s%s",
+		 flags & SHUFFLE ? "(shuffle)" : "",
+		 flags & COMPRESS ? "(compress)" : "",
+		 flags & VERIFY ? "(verify)" : "");
+
+	err = measure_read_throughput(tag, dst_dir, name, options);
+
+fail:
+	close(cmd_file);
+	return err;
+}
+
+bool skip(struct options const *options, int flag, char c)
+{
+	if (!options->file_types)
+		return false;
+
+	if (flag && strchr(options->file_types, tolower(c)))
+		return true;
+
+	if (!flag && strchr(options->file_types, toupper(c)))
+		return true;
+
+	return false;
+}
+
+int main(int argc, char *const *argv)
+{
+	struct options options;
+	int err;
+	const char *native_dir = "native";
+	const char *src_dir = "src";
+	const char *dst_dir = "dst";
+	int native_dir_fd = -1;
+	int src_dir_fd = -1;
+	int dst_dir_fd = -1;
+	int block;
+	int flags;
+
+	err = parse_options(argc, argv, &options);
+	if (err)
+		return err;
+
+	err = chdir(options.test_dir);
+	if (err) {
+		err_msg("Failed to change to %s", options.test_dir);
+		return -errno;
+	}
+
+	/* Clean up any interrupted previous runs */
+	while (!umount(dst_dir))
+		;
+
+	err = remove_dir(native_dir) || remove_dir(src_dir) ||
+	      remove_dir(dst_dir);
+	if (err)
+		return err;
+
+	err = mkdir(native_dir, 0700);
+	if (err) {
+		err_msg("Failed to make directory %s", src_dir);
+		err = -errno;
+		goto cleanup;
+	}
+
+	err = mkdir(src_dir, 0700);
+	if (err) {
+		err_msg("Failed to make directory %s", src_dir);
+		err = -errno;
+		goto cleanup;
+	}
+
+	err = mkdir(dst_dir, 0700);
+	if (err) {
+		err_msg("Failed to make directory %s", src_dir);
+		err = -errno;
+		goto cleanup;
+	}
+
+	err = mount_fs_opt(dst_dir, src_dir, "readahead=0,rlog_pages=0", 0);
+	if (err) {
+		err_msg("Failed to mount incfs");
+		goto cleanup;
+	}
+
+	native_dir_fd = open(native_dir, O_RDONLY | O_CLOEXEC);
+	src_dir_fd = open(src_dir, O_RDONLY | O_CLOEXEC);
+	dst_dir_fd = open(dst_dir, O_RDONLY | O_CLOEXEC);
+	if (native_dir_fd == -1 || src_dir_fd == -1 || dst_dir_fd == -1) {
+		err_msg("Failed to open native, src or dst dir");
+		err = -errno;
+		goto cleanup;
+	}
+
+	printf("%40s", "");
+	for (block = 0; block < options.blocks; ++block)
+		printf("%21d", 1 << (block + 12));
+	printf("\n");
+
+	if (!err && !options.no_native)
+		err = test_native_file(native_dir_fd, &options);
+
+	for (flags = 0; flags < LAST_FLAG && !err; ++flags) {
+		if (skip(&options, flags & SHUFFLE, 's') ||
+		    skip(&options, flags & COMPRESS, 'c') ||
+		    skip(&options, flags & VERIFY, 'v'))
+			continue;
+		err = test_incfs_file(dst_dir_fd, &options, flags);
+	}
+
+cleanup:
+	close(native_dir_fd);
+	close(src_dir_fd);
+	close(dst_dir_fd);
+	if (!options.no_cleanup) {
+		umount(dst_dir);
+		remove_dir(native_dir);
+		remove_dir(dst_dir);
+		remove_dir(src_dir);
+	}
+
+	return err;
+}
diff --git a/tools/testing/selftests/filesystems/incfs/incfs_stress.c b/tools/testing/selftests/filesystems/incfs/incfs_stress.c
new file mode 100644
index 0000000..a1d4917
--- /dev/null
+++ b/tools/testing/selftests/filesystems/incfs/incfs_stress.c
@@ -0,0 +1,322 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2020 Google LLC
+ */
+#include <errno.h>
+#include <fcntl.h>
+#include <getopt.h>
+#include <pthread.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/mount.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include "utils.h"
+
+#define err_msg(...)                                                           \
+	do {                                                                   \
+		fprintf(stderr, "%s: (%d) ", TAG, __LINE__);                   \
+		fprintf(stderr, __VA_ARGS__);                                  \
+		fprintf(stderr, " (%s)\n", strerror(errno));                   \
+	} while (false)
+
+#define TAG "incfs_stress"
+
+struct options {
+	bool no_cleanup; /* -c */
+	const char *test_dir; /* -d */
+	unsigned int rng_seed; /* -g */
+	int num_reads; /* -n */
+	int readers; /* -r */
+	int size; /* -s */
+	int timeout; /* -t */
+};
+
+struct read_data {
+	const char *filename;
+	int dir_fd;
+	size_t filesize;
+	int num_reads;
+	unsigned int rng_seed;
+};
+
+int cancel_threads;
+
+int parse_options(int argc, char *const *argv, struct options *options)
+{
+	signed char c;
+
+	/* Set defaults here */
+	*options = (struct options){
+		.test_dir = ".",
+		.num_reads = 1000,
+		.readers = 10,
+		.size = 10,
+	};
+
+	/* Load options from command line here */
+	while ((c = getopt(argc, argv, "cd:g:n:r:s:t:")) != -1) {
+		switch (c) {
+		case 'c':
+			options->no_cleanup = true;
+			break;
+
+		case 'd':
+			options->test_dir = optarg;
+			break;
+
+		case 'g':
+			options->rng_seed = strtol(optarg, NULL, 10);
+			break;
+
+		case 'n':
+			options->num_reads = strtol(optarg, NULL, 10);
+			break;
+
+		case 'r':
+			options->readers = strtol(optarg, NULL, 10);
+			break;
+
+		case 's':
+			options->size = strtol(optarg, NULL, 10);
+			break;
+
+		case 't':
+			options->timeout = strtol(optarg, NULL, 10);
+			break;
+		}
+	}
+
+	return 0;
+}
+
+void *reader(void *data)
+{
+	struct read_data *read_data = (struct read_data *)data;
+	int i;
+	int fd = -1;
+	void *buffer = malloc(read_data->filesize);
+
+	if (!buffer) {
+		err_msg("Failed to alloc read buffer");
+		goto out;
+	}
+
+	fd = openat(read_data->dir_fd, read_data->filename,
+		    O_RDONLY | O_CLOEXEC);
+	if (fd == -1) {
+		err_msg("Failed to open file");
+		goto out;
+	}
+
+	for (i = 0; i < read_data->num_reads && !cancel_threads; ++i) {
+		off_t offset = rnd(read_data->filesize, &read_data->rng_seed);
+		size_t count =
+			rnd(read_data->filesize - offset, &read_data->rng_seed);
+		ssize_t err = pread(fd, buffer, count, offset);
+
+		if (err != count)
+			err_msg("failed to read with value %lu", err);
+	}
+
+out:
+	close(fd);
+	free(read_data);
+	free(buffer);
+	return NULL;
+}
+
+int write_data(int cmd_fd, int dir_fd, const char *name, size_t size)
+{
+	int fd = openat(dir_fd, name, O_RDWR | O_CLOEXEC);
+	struct incfs_permit_fill permit_fill = {
+		.file_descriptor = fd,
+	};
+	int error = 0;
+	int i;
+	int block_count = 1 + (size - 1) / INCFS_DATA_FILE_BLOCK_SIZE;
+
+	if (fd == -1) {
+		err_msg("Could not open file for writing %s", name);
+		return -errno;
+	}
+
+	if (ioctl(cmd_fd, INCFS_IOC_PERMIT_FILL, &permit_fill)) {
+		err_msg("Failed to call PERMIT_FILL");
+		error = -errno;
+		goto out;
+	}
+
+	for (i = 0; i < block_count; ++i) {
+		uint8_t data[INCFS_DATA_FILE_BLOCK_SIZE] = {};
+		size_t block_size =
+			size > i * INCFS_DATA_FILE_BLOCK_SIZE ?
+				INCFS_DATA_FILE_BLOCK_SIZE :
+				size - (i * INCFS_DATA_FILE_BLOCK_SIZE);
+		struct incfs_fill_block fill_block = {
+			.compression = COMPRESSION_NONE,
+			.block_index = i,
+			.data_len = block_size,
+			.data = ptr_to_u64(data),
+		};
+		struct incfs_fill_blocks fill_blocks = {
+			.count = 1,
+			.fill_blocks = ptr_to_u64(&fill_block),
+		};
+		int written = ioctl(fd, INCFS_IOC_FILL_BLOCKS, &fill_blocks);
+
+		if (written != 1) {
+			error = -errno;
+			err_msg("Failed to write block %d in file %s", i, name);
+			break;
+		}
+	}
+out:
+	close(fd);
+	return error;
+}
+
+int test_files(int src_dir, int dst_dir, struct options const *options)
+{
+	unsigned int seed = options->rng_seed;
+	int cmd_file = openat(dst_dir, INCFS_PENDING_READS_FILENAME,
+			      O_RDONLY | O_CLOEXEC);
+	int err;
+	const char *name = "001";
+	incfs_uuid_t id;
+	size_t size;
+	int i;
+	pthread_t *threads = NULL;
+
+	size = 1 << (rnd(options->size, &seed) + 12);
+	size += rnd(size, &seed);
+
+	if (cmd_file == -1) {
+		err_msg("Could not open command file");
+		return -errno;
+	}
+
+	err = emit_file(cmd_file, NULL, name, &id, size, NULL);
+	if (err) {
+		err_msg("Failed to create file %s", name);
+		return err;
+	}
+
+	threads = malloc(sizeof(pthread_t) * options->readers);
+	if (!threads) {
+		err_msg("Could not allocate memory for threads");
+		return -ENOMEM;
+	}
+
+	for (i = 0; i < options->readers; ++i) {
+		struct read_data *read_data = malloc(sizeof(*read_data));
+
+		if (!read_data) {
+			err_msg("Failed to allocate read_data");
+			err = -ENOMEM;
+			break;
+		}
+
+		*read_data = (struct read_data){
+			.filename = name,
+			.dir_fd = dst_dir,
+			.filesize = size,
+			.num_reads = options->num_reads,
+			.rng_seed = seed,
+		};
+
+		rnd(0, &seed);
+
+		err = pthread_create(threads + i, 0, reader, read_data);
+		if (err) {
+			err_msg("Failed to create thread");
+			free(read_data);
+			break;
+		}
+	}
+
+	if (err)
+		cancel_threads = 1;
+	else
+		err = write_data(cmd_file, dst_dir, name, size);
+
+	for (; i > 0; --i) {
+		if (pthread_join(threads[i - 1], NULL)) {
+			err_msg("FATAL: failed to join thread");
+			exit(-errno);
+		}
+	}
+
+	free(threads);
+	close(cmd_file);
+	return err;
+}
+
+int main(int argc, char *const *argv)
+{
+	struct options options;
+	int err;
+	const char *src_dir = "src";
+	const char *dst_dir = "dst";
+	int src_dir_fd = -1;
+	int dst_dir_fd = -1;
+
+	err = parse_options(argc, argv, &options);
+	if (err)
+		return err;
+
+	err = chdir(options.test_dir);
+	if (err) {
+		err_msg("Failed to change to %s", options.test_dir);
+		return -errno;
+	}
+
+	err = remove_dir(src_dir) || remove_dir(dst_dir);
+	if (err)
+		return err;
+
+	err = mkdir(src_dir, 0700);
+	if (err) {
+		err_msg("Failed to make directory %s", src_dir);
+		err = -errno;
+		goto cleanup;
+	}
+
+	err = mkdir(dst_dir, 0700);
+	if (err) {
+		err_msg("Failed to make directory %s", src_dir);
+		err = -errno;
+		goto cleanup;
+	}
+
+	err = mount_fs(dst_dir, src_dir, options.timeout);
+	if (err) {
+		err_msg("Failed to mount incfs");
+		goto cleanup;
+	}
+
+	src_dir_fd = open(src_dir, O_RDONLY | O_CLOEXEC);
+	dst_dir_fd = open(dst_dir, O_RDONLY | O_CLOEXEC);
+	if (src_dir_fd == -1 || dst_dir_fd == -1) {
+		err_msg("Failed to open src or dst dir");
+		err = -errno;
+		goto cleanup;
+	}
+
+	err = test_files(src_dir_fd, dst_dir_fd, &options);
+
+cleanup:
+	close(src_dir_fd);
+	close(dst_dir_fd);
+	if (!options.no_cleanup) {
+		umount(dst_dir);
+		remove_dir(dst_dir);
+		remove_dir(src_dir);
+	}
+
+	return err;
+}
diff --git a/tools/testing/selftests/filesystems/incfs/incfs_test.c b/tools/testing/selftests/filesystems/incfs/incfs_test.c
new file mode 100644
index 0000000..10c15fa
--- /dev/null
+++ b/tools/testing/selftests/filesystems/incfs/incfs_test.c
@@ -0,0 +1,4803 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2018 Google LLC
+ */
+#define _GNU_SOURCE
+
+#include <alloca.h>
+#include <dirent.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <lz4.h>
+#include <poll.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+#include <zstd.h>
+
+#include <sys/inotify.h>
+#include <sys/mman.h>
+#include <sys/mount.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <sys/xattr.h>
+#include <sys/statvfs.h>
+
+#include <linux/random.h>
+#include <linux/stat.h>
+#include <linux/unistd.h>
+
+#include <openssl/pem.h>
+#include <openssl/x509.h>
+
+#include <kselftest.h>
+#include <include/uapi/linux/fsverity.h>
+
+#include "utils.h"
+
+/* Can't include uapi/linux/fs.h because it clashes with mount.h */
+#define	FS_IOC_GETFLAGS			_IOR('f', 1, long)
+#define FS_VERITY_FL			0x00100000 /* Verity protected inode */
+
+#define TEST_SKIP 2
+#define TEST_FAILURE 1
+#define TEST_SUCCESS 0
+
+#define INCFS_ROOT_INODE 0
+
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+#define le16_to_cpu(x)          (x)
+#define le32_to_cpu(x)          (x)
+#define le64_to_cpu(x)          (x)
+#else
+#error Big endian not supported!
+#endif
+
+struct {
+	int file;
+	int test;
+	bool verbose;
+} options;
+
+#define TESTCOND(condition)						\
+	do {								\
+		if (!(condition)) {					\
+			ksft_print_msg("%s failed %d\n",		\
+				       __func__, __LINE__);		\
+			goto out;					\
+		} else if (options.verbose)				\
+			ksft_print_msg("%s succeeded %d\n",		\
+				       __func__, __LINE__);		\
+	} while (false)
+
+#define TEST(statement, condition)					\
+	do {								\
+		statement;						\
+		TESTCOND(condition);					\
+	} while (false)
+
+#define TESTEQUAL(statement, res)					\
+	TESTCOND((statement) == (res))
+
+#define TESTNE(statement, res)					\
+	TESTCOND((statement) != (res))
+
+#define TESTSYSCALL(statement)						\
+	do {								\
+		int res = statement;					\
+									\
+		if (res)						\
+			ksft_print_msg("Failed: %s (%d)\n",		\
+				       strerror(errno), errno);		\
+		TESTEQUAL(res, 0);					\
+	} while (false)
+
+void print_bytes(const void *data, size_t size)
+{
+	const uint8_t *bytes = data;
+	int i;
+
+	for (i = 0; i < size; ++i) {
+		if (i % 0x10 == 0)
+			printf("%08x:", i);
+		printf("%02x ", (unsigned int) bytes[i]);
+		if (i % 0x10 == 0x0f)
+			printf("\n");
+	}
+
+	if (i % 0x10 != 0)
+		printf("\n");
+}
+
+struct hash_block {
+	char data[INCFS_DATA_FILE_BLOCK_SIZE];
+};
+
+struct test_signature {
+	void *data;
+	size_t size;
+
+	char add_data[100];
+	size_t add_data_size;
+};
+
+struct test_file {
+	int index;
+	incfs_uuid_t id;
+	char *name;
+	off_t size;
+	char root_hash[INCFS_MAX_HASH_SIZE];
+	struct hash_block *mtree;
+	int mtree_block_count;
+	struct test_signature sig;
+	unsigned char *verity_sig;
+	size_t verity_sig_size;
+};
+
+struct test_files_set {
+	struct test_file *files;
+	int files_count;
+};
+
+struct linux_dirent64 {
+	uint64_t       d_ino;
+	int64_t        d_off;
+	unsigned short d_reclen;
+	unsigned char  d_type;
+	char	       d_name[0];
+} __packed;
+
+struct test_files_set get_test_files_set(void)
+{
+	static struct test_file files[] = {
+		{ .index = 0, .name = "file_one_byte", .size = 1 },
+		{ .index = 1,
+		  .name = "file_one_block",
+		  .size = INCFS_DATA_FILE_BLOCK_SIZE },
+		{ .index = 2,
+		  .name = "file_one_and_a_half_blocks",
+		  .size = INCFS_DATA_FILE_BLOCK_SIZE +
+			  INCFS_DATA_FILE_BLOCK_SIZE / 2 },
+		{ .index = 3,
+		  .name = "file_three",
+		  .size = 300 * INCFS_DATA_FILE_BLOCK_SIZE + 3 },
+		{ .index = 4,
+		  .name = "file_four",
+		  .size = 400 * INCFS_DATA_FILE_BLOCK_SIZE + 7 },
+		{ .index = 5,
+		  .name = "file_five",
+		  .size = 500 * INCFS_DATA_FILE_BLOCK_SIZE + 7 },
+		{ .index = 6,
+		  .name = "file_six",
+		  .size = 600 * INCFS_DATA_FILE_BLOCK_SIZE + 7 },
+		{ .index = 7,
+		  .name = "file_seven",
+		  .size = 700 * INCFS_DATA_FILE_BLOCK_SIZE + 7 },
+		{ .index = 8,
+		  .name = "file_eight",
+		  .size = 800 * INCFS_DATA_FILE_BLOCK_SIZE + 7 },
+		{ .index = 9,
+		  .name = "file_nine",
+		  .size = 900 * INCFS_DATA_FILE_BLOCK_SIZE + 7 },
+		{ .index = 10, .name = "file_big", .size = 500 * 1024 * 1024 }
+	};
+
+	if (options.file)
+		return (struct test_files_set) {
+			.files = files + options.file - 1,
+			.files_count = 1,
+		};
+
+	return (struct test_files_set){ .files = files,
+					.files_count = ARRAY_SIZE(files) };
+}
+
+struct test_files_set get_small_test_files_set(void)
+{
+	static struct test_file files[] = {
+		{ .index = 0, .name = "file_one_byte", .size = 1 },
+		{ .index = 1,
+		  .name = "file_one_block",
+		  .size = INCFS_DATA_FILE_BLOCK_SIZE },
+		{ .index = 2,
+		  .name = "file_one_and_a_half_blocks",
+		  .size = INCFS_DATA_FILE_BLOCK_SIZE +
+			  INCFS_DATA_FILE_BLOCK_SIZE / 2 },
+		{ .index = 3,
+		  .name = "file_three",
+		  .size = 300 * INCFS_DATA_FILE_BLOCK_SIZE + 3 },
+		{ .index = 4,
+		  .name = "file_four",
+		  .size = 400 * INCFS_DATA_FILE_BLOCK_SIZE + 7 }
+	};
+	return (struct test_files_set){ .files = files,
+					.files_count = ARRAY_SIZE(files) };
+}
+
+static int get_file_block_seed(int file, int block)
+{
+	return 7919 * file + block;
+}
+
+static loff_t min(loff_t a, loff_t b)
+{
+	return a < b ? a : b;
+}
+
+static int ilog2(size_t n)
+{
+	int l = 0;
+
+	while (n > 1) {
+		++l;
+		n >>= 1;
+	}
+	return l;
+}
+
+static pid_t flush_and_fork(void)
+{
+	fflush(stdout);
+	return fork();
+}
+
+static void print_error(char *msg)
+{
+	ksft_print_msg("%s: %s\n", msg, strerror(errno));
+}
+
+static int wait_for_process(pid_t pid)
+{
+	int status;
+	int wait_res;
+
+	wait_res = waitpid(pid, &status, 0);
+	if (wait_res <= 0) {
+		print_error("Can't wait for the child");
+		return -EINVAL;
+	}
+	if (!WIFEXITED(status)) {
+		ksft_print_msg("Unexpected child status pid=%d\n", pid);
+		return -EINVAL;
+	}
+	status = WEXITSTATUS(status);
+	if (status != 0)
+		return status;
+	return 0;
+}
+
+static void rnd_buf(uint8_t *data, size_t len, unsigned int seed)
+{
+	int i;
+
+	for (i = 0; i < len; i++) {
+		seed = 1103515245 * seed + 12345;
+		data[i] = (uint8_t)(seed >> (i % 13));
+	}
+}
+
+char *bin2hex(char *dst, const void *src, size_t count)
+{
+	const unsigned char *_src = src;
+	static const char hex_asc[] = "0123456789abcdef";
+
+	while (count--) {
+		unsigned char x = *_src++;
+
+		*dst++ = hex_asc[(x & 0xf0) >> 4];
+		*dst++ = hex_asc[(x & 0x0f)];
+	}
+	*dst = 0;
+	return dst;
+}
+
+static char *get_index_filename(const char *mnt_dir, incfs_uuid_t id)
+{
+	char path[FILENAME_MAX];
+	char str_id[1 + 2 * sizeof(id)];
+
+	bin2hex(str_id, id.bytes, sizeof(id.bytes));
+	snprintf(path, ARRAY_SIZE(path), "%s/.index/%s", mnt_dir, str_id);
+
+	return strdup(path);
+}
+
+static char *get_incomplete_filename(const char *mnt_dir, incfs_uuid_t id)
+{
+	char path[FILENAME_MAX];
+	char str_id[1 + 2 * sizeof(id)];
+
+	bin2hex(str_id, id.bytes, sizeof(id.bytes));
+	snprintf(path, ARRAY_SIZE(path), "%s/.incomplete/%s", mnt_dir, str_id);
+
+	return strdup(path);
+}
+
+int open_file_by_id(const char *mnt_dir, incfs_uuid_t id, bool use_ioctl)
+{
+	char *path = get_index_filename(mnt_dir, id);
+	int cmd_fd = open_commands_file(mnt_dir);
+	int fd = open(path, O_RDWR | O_CLOEXEC);
+	struct incfs_permit_fill permit_fill = {
+		.file_descriptor = fd,
+	};
+	int error = 0;
+
+	if (fd < 0) {
+		print_error("Can't open file by id.");
+		error = -errno;
+		goto out;
+	}
+
+	if (use_ioctl && ioctl(cmd_fd, INCFS_IOC_PERMIT_FILL, &permit_fill)) {
+		print_error("Failed to call PERMIT_FILL");
+		error = -errno;
+		goto out;
+	}
+
+	if (ioctl(fd, INCFS_IOC_PERMIT_FILL, &permit_fill) != -1) {
+		print_error(
+			"Successfully called PERMIT_FILL on non pending_read file");
+		return -errno;
+		goto out;
+	}
+
+out:
+	free(path);
+	close(cmd_fd);
+
+	if (error) {
+		close(fd);
+		return error;
+	}
+
+	return fd;
+}
+
+int get_file_attr(const char *mnt_dir, incfs_uuid_t id, char *value, int size)
+{
+	char *path = get_index_filename(mnt_dir, id);
+	int res;
+
+	res = getxattr(path, INCFS_XATTR_METADATA_NAME, value, size);
+	if (res < 0)
+		res = -errno;
+
+	free(path);
+	return res;
+}
+
+static bool same_id(incfs_uuid_t *id1, incfs_uuid_t *id2)
+{
+	return !memcmp(id1->bytes, id2->bytes, sizeof(id1->bytes));
+}
+
+ssize_t ZSTD_compress_default(char *data, char *comp_data, size_t data_size,
+					size_t comp_size)
+{
+	return ZSTD_compress(comp_data, comp_size, data, data_size, 1);
+}
+
+static int emit_test_blocks(const char *mnt_dir, struct test_file *file,
+			int blocks[], int count)
+{
+	uint8_t data[INCFS_DATA_FILE_BLOCK_SIZE];
+	uint8_t comp_data[2 * INCFS_DATA_FILE_BLOCK_SIZE];
+	int block_count = (count > 32) ? 32 : count;
+	int data_buf_size = 2 * INCFS_DATA_FILE_BLOCK_SIZE * block_count;
+	uint8_t *data_buf = malloc(data_buf_size);
+	uint8_t *current_data = data_buf;
+	uint8_t *data_end = data_buf + data_buf_size;
+	struct incfs_fill_block *block_buf =
+		calloc(block_count, sizeof(struct incfs_fill_block));
+	struct incfs_fill_blocks fill_blocks = {
+		.count = block_count,
+		.fill_blocks = ptr_to_u64(block_buf),
+	};
+	ssize_t write_res = 0;
+	int fd = -1;
+	int error = 0;
+	int i = 0;
+	int blocks_written = 0;
+
+	for (i = 0; i < block_count; i++) {
+		int block_index = blocks[i];
+		bool compress_zstd = (file->index + block_index) % 4 == 2;
+		bool compress_lz4 = (file->index + block_index) % 4 == 0;
+		int seed = get_file_block_seed(file->index, block_index);
+		off_t block_offset =
+			((off_t)block_index) * INCFS_DATA_FILE_BLOCK_SIZE;
+		size_t block_size = 0;
+
+		if (block_offset > file->size) {
+			error = -EINVAL;
+			break;
+		}
+		if (file->size - block_offset >
+			INCFS_DATA_FILE_BLOCK_SIZE)
+			block_size = INCFS_DATA_FILE_BLOCK_SIZE;
+		else
+			block_size = file->size - block_offset;
+
+		rnd_buf(data, block_size, seed);
+		if (compress_lz4) {
+			size_t comp_size = LZ4_compress_default((char *)data,
+					(char *)comp_data, block_size,
+					ARRAY_SIZE(comp_data));
+
+			if (comp_size <= 0) {
+				error = -EBADMSG;
+				break;
+			}
+			if (current_data + comp_size > data_end) {
+				error = -ENOMEM;
+				break;
+			}
+			memcpy(current_data, comp_data, comp_size);
+			block_size = comp_size;
+			block_buf[i].compression = COMPRESSION_LZ4;
+		} else if (compress_zstd) {
+			size_t comp_size = ZSTD_compress(comp_data,
+					ARRAY_SIZE(comp_data), data, block_size,
+					1);
+
+			if (comp_size <= 0) {
+				error = -EBADMSG;
+				break;
+			}
+			if (current_data + comp_size > data_end) {
+				error = -ENOMEM;
+				break;
+			}
+			memcpy(current_data, comp_data, comp_size);
+			block_size = comp_size;
+			block_buf[i].compression = COMPRESSION_ZSTD;
+		} else {
+			if (current_data + block_size > data_end) {
+				error = -ENOMEM;
+				break;
+			}
+			memcpy(current_data, data, block_size);
+			block_buf[i].compression = COMPRESSION_NONE;
+		}
+
+		block_buf[i].block_index = block_index;
+		block_buf[i].data_len = block_size;
+		block_buf[i].data = ptr_to_u64(current_data);
+		current_data += block_size;
+	}
+
+	if (!error) {
+		fd = open_file_by_id(mnt_dir, file->id, false);
+		if (fd < 0) {
+			error = -errno;
+			goto out;
+		}
+		write_res = ioctl(fd, INCFS_IOC_FILL_BLOCKS, &fill_blocks);
+		if (write_res >= 0) {
+			ksft_print_msg("Wrote to file via normal fd error\n");
+			error = -EPERM;
+			goto out;
+		}
+
+		close(fd);
+		fd = open_file_by_id(mnt_dir, file->id, true);
+		if (fd < 0) {
+			error = -errno;
+			goto out;
+		}
+		write_res = ioctl(fd, INCFS_IOC_FILL_BLOCKS, &fill_blocks);
+		if (write_res < 0)
+			error = -errno;
+		else
+			blocks_written = write_res;
+	}
+	if (error) {
+		ksft_print_msg(
+			"Writing data block error. Write returned: %d. Error:%s\n",
+			write_res, strerror(-error));
+	}
+
+out:
+	free(block_buf);
+	free(data_buf);
+	close(fd);
+	return (error < 0) ? error : blocks_written;
+}
+
+static int emit_test_block(const char *mnt_dir, struct test_file *file,
+				int block_index)
+{
+	int res = emit_test_blocks(mnt_dir, file, &block_index, 1);
+
+	if (res == 0)
+		return -EINVAL;
+	if (res == 1)
+		return 0;
+	return res;
+}
+
+static void shuffle(int array[], int count, unsigned int seed)
+{
+	int i;
+
+	for (i = 0; i < count - 1; i++) {
+		int items_left = count - i;
+		int shuffle_index;
+		int v;
+
+		seed = 1103515245 * seed + 12345;
+		shuffle_index = i + seed % items_left;
+
+		v = array[shuffle_index];
+		array[shuffle_index] = array[i];
+		array[i] = v;
+	}
+}
+
+static int emit_test_file_data(const char *mount_dir, struct test_file *file)
+{
+	int i;
+	int block_cnt = 1 + (file->size - 1) / INCFS_DATA_FILE_BLOCK_SIZE;
+	int *block_indexes = NULL;
+	int result = 0;
+	int blocks_written = 0;
+
+	if (file->size == 0)
+		return 0;
+
+	block_indexes = calloc(block_cnt, sizeof(*block_indexes));
+	for (i = 0; i < block_cnt; i++)
+		block_indexes[i] = i;
+	shuffle(block_indexes, block_cnt, file->index);
+
+	for (i = 0; i < block_cnt; i += blocks_written) {
+		blocks_written = emit_test_blocks(mount_dir, file,
+					block_indexes + i, block_cnt - i);
+		if (blocks_written < 0) {
+			result = blocks_written;
+			goto out;
+		}
+		if (blocks_written == 0) {
+			result = -EIO;
+			goto out;
+		}
+	}
+out:
+	free(block_indexes);
+	return result;
+}
+
+static loff_t read_whole_file(const char *filename)
+{
+	int fd = -1;
+	loff_t result;
+	loff_t bytes_read = 0;
+	uint8_t buff[16 * 1024];
+
+	fd = open(filename, O_RDONLY | O_CLOEXEC);
+	if (fd <= 0)
+		return fd;
+
+	while (1) {
+		int read_result = read(fd, buff, ARRAY_SIZE(buff));
+
+		if (read_result < 0) {
+			print_error("Error during reading from a file.");
+			result = -errno;
+			goto cleanup;
+		} else if (read_result == 0)
+			break;
+
+		bytes_read += read_result;
+	}
+	result = bytes_read;
+
+cleanup:
+	close(fd);
+	return result;
+}
+
+static int read_test_file(uint8_t *buf, size_t len, char *filename,
+			  int block_idx)
+{
+	int fd = -1;
+	int result;
+	int bytes_read = 0;
+	size_t bytes_to_read = len;
+	off_t offset = ((off_t)block_idx) * INCFS_DATA_FILE_BLOCK_SIZE;
+
+	fd = open(filename, O_RDONLY | O_CLOEXEC);
+	if (fd <= 0)
+		return fd;
+
+	if (lseek(fd, offset, SEEK_SET) != offset) {
+		print_error("Seek error");
+		return -errno;
+	}
+
+	while (bytes_read < bytes_to_read) {
+		int read_result =
+			read(fd, buf + bytes_read, bytes_to_read - bytes_read);
+		if (read_result < 0) {
+			result = -errno;
+			goto cleanup;
+		} else if (read_result == 0)
+			break;
+
+		bytes_read += read_result;
+	}
+	result = bytes_read;
+
+cleanup:
+	close(fd);
+	return result;
+}
+
+static char *create_backing_dir(const char *mount_dir)
+{
+	struct stat st;
+	char backing_dir_name[255];
+
+	snprintf(backing_dir_name, ARRAY_SIZE(backing_dir_name), "%s-src",
+		 mount_dir);
+
+	if (stat(backing_dir_name, &st) == 0) {
+		if (S_ISDIR(st.st_mode)) {
+			int error = delete_dir_tree(backing_dir_name);
+
+			if (error) {
+				ksft_print_msg(
+				      "Can't delete existing backing dir. %d\n",
+				      error);
+				return NULL;
+			}
+		} else {
+			if (unlink(backing_dir_name)) {
+				print_error("Can't clear backing dir");
+				return NULL;
+			}
+		}
+	}
+
+	if (mkdir(backing_dir_name, 0777)) {
+		if (errno != EEXIST) {
+			print_error("Can't open/create backing dir");
+			return NULL;
+		}
+	}
+
+	return strdup(backing_dir_name);
+}
+
+static int validate_test_file_content_with_seed(const char *mount_dir,
+						struct test_file *file,
+						unsigned int shuffle_seed)
+{
+	int error = -1;
+	char *filename = concat_file_name(mount_dir, file->name);
+	off_t size = file->size;
+	loff_t actual_size = get_file_size(filename);
+	int block_cnt = 1 + (size - 1) / INCFS_DATA_FILE_BLOCK_SIZE;
+	int *block_indexes = NULL;
+	int i;
+
+	block_indexes = alloca(sizeof(int) * block_cnt);
+	for (i = 0; i < block_cnt; i++)
+		block_indexes[i] = i;
+
+	if (shuffle_seed != 0)
+		shuffle(block_indexes, block_cnt, shuffle_seed);
+
+	if (actual_size != size) {
+		ksft_print_msg(
+			"File size doesn't match. name: %s expected size:%ld actual size:%ld\n",
+			filename, size, actual_size);
+		error = -1;
+		goto failure;
+	}
+
+	for (i = 0; i < block_cnt; i++) {
+		int block_idx = block_indexes[i];
+		uint8_t expected_block[INCFS_DATA_FILE_BLOCK_SIZE];
+		uint8_t actual_block[INCFS_DATA_FILE_BLOCK_SIZE];
+		int seed = get_file_block_seed(file->index, block_idx);
+		size_t bytes_to_compare = min(
+			(off_t)INCFS_DATA_FILE_BLOCK_SIZE,
+			size - ((off_t)block_idx) * INCFS_DATA_FILE_BLOCK_SIZE);
+		int read_result =
+			read_test_file(actual_block, INCFS_DATA_FILE_BLOCK_SIZE,
+				       filename, block_idx);
+		if (read_result < 0) {
+			ksft_print_msg(
+				"Error reading block %d from file %s. Error: %s\n",
+				block_idx, filename, strerror(-read_result));
+			error = read_result;
+			goto failure;
+		}
+		rnd_buf(expected_block, INCFS_DATA_FILE_BLOCK_SIZE, seed);
+		if (memcmp(expected_block, actual_block, bytes_to_compare)) {
+			ksft_print_msg(
+				"File contents don't match. name: %s block:%d\n",
+				file->name, block_idx);
+			error = -2;
+			goto failure;
+		}
+	}
+	free(filename);
+	return 0;
+
+failure:
+	free(filename);
+	return error;
+}
+
+static int validate_test_file_content(const char *mount_dir,
+				      struct test_file *file)
+{
+	return validate_test_file_content_with_seed(mount_dir, file, 0);
+}
+
+static int data_producer(const char *mount_dir, struct test_files_set *test_set)
+{
+	int ret = 0;
+	int timeout_ms = 1000;
+	struct incfs_pending_read_info prs[100] = {};
+	int prs_size = ARRAY_SIZE(prs);
+	int fd = open_commands_file(mount_dir);
+
+	if (fd < 0)
+		return -errno;
+
+	while ((ret = wait_for_pending_reads(fd, timeout_ms, prs, prs_size)) >
+	       0) {
+		int read_count = ret;
+		int i;
+
+		for (i = 0; i < read_count; i++) {
+			int j = 0;
+			struct test_file *file = NULL;
+
+			for (j = 0; j < test_set->files_count; j++) {
+				bool same = same_id(&(test_set->files[j].id),
+					&(prs[i].file_id));
+
+				if (same) {
+					file = &test_set->files[j];
+					break;
+				}
+			}
+			if (!file) {
+				ksft_print_msg(
+					"Unknown file in pending reads.\n");
+				break;
+			}
+
+			ret = emit_test_block(mount_dir, file,
+				prs[i].block_index);
+			if (ret < 0) {
+				ksft_print_msg("Emitting test data error: %s\n",
+						strerror(-ret));
+				break;
+			}
+		}
+	}
+	close(fd);
+	return ret;
+}
+
+static int data_producer2(const char *mount_dir,
+			  struct test_files_set *test_set)
+{
+	int ret = 0;
+	int timeout_ms = 1000;
+	struct incfs_pending_read_info2 prs[100] = {};
+	int prs_size = ARRAY_SIZE(prs);
+	int fd = open_commands_file(mount_dir);
+
+	if (fd < 0)
+		return -errno;
+
+	while ((ret = wait_for_pending_reads2(fd, timeout_ms, prs, prs_size)) >
+	       0) {
+		int read_count = ret;
+		int i;
+
+		for (i = 0; i < read_count; i++) {
+			int j = 0;
+			struct test_file *file = NULL;
+
+			for (j = 0; j < test_set->files_count; j++) {
+				bool same = same_id(&(test_set->files[j].id),
+					&(prs[i].file_id));
+
+				if (same) {
+					file = &test_set->files[j];
+					break;
+				}
+			}
+			if (!file) {
+				ksft_print_msg(
+					"Unknown file in pending reads.\n");
+				break;
+			}
+
+			ret = emit_test_block(mount_dir, file,
+				prs[i].block_index);
+			if (ret < 0) {
+				ksft_print_msg("Emitting test data error: %s\n",
+						strerror(-ret));
+				break;
+			}
+		}
+	}
+	close(fd);
+	return ret;
+}
+
+static int build_mtree(struct test_file *file)
+{
+	char data[INCFS_DATA_FILE_BLOCK_SIZE] = {};
+	const int digest_size = SHA256_DIGEST_SIZE;
+	const int hash_per_block = INCFS_DATA_FILE_BLOCK_SIZE / digest_size;
+	int block_count = 0;
+	int hash_block_count = 0;
+	int total_tree_block_count = 0;
+	int tree_lvl_index[INCFS_MAX_MTREE_LEVELS] = {};
+	int tree_lvl_count[INCFS_MAX_MTREE_LEVELS] = {};
+	int levels_count = 0;
+	int i, level;
+
+	if (file->size == 0)
+		return 0;
+
+	block_count = 1 + (file->size - 1) / INCFS_DATA_FILE_BLOCK_SIZE;
+	hash_block_count = block_count;
+	for (i = 0; hash_block_count > 1; i++) {
+		hash_block_count = (hash_block_count + hash_per_block - 1)
+			/ hash_per_block;
+		tree_lvl_count[i] = hash_block_count;
+		total_tree_block_count += hash_block_count;
+	}
+	levels_count = i;
+
+	for (i = 0; i < levels_count; i++) {
+		int prev_lvl_base = (i == 0) ? total_tree_block_count :
+			tree_lvl_index[i - 1];
+
+		tree_lvl_index[i] = prev_lvl_base - tree_lvl_count[i];
+	}
+
+	file->mtree_block_count = total_tree_block_count;
+	if (block_count == 1) {
+		int seed = get_file_block_seed(file->index, 0);
+
+		memset(data, 0, INCFS_DATA_FILE_BLOCK_SIZE);
+		rnd_buf((uint8_t *)data, file->size, seed);
+		sha256(data, INCFS_DATA_FILE_BLOCK_SIZE, file->root_hash);
+		return 0;
+	}
+
+	file->mtree = calloc(total_tree_block_count, sizeof(*file->mtree));
+	/* Build level 0 hashes. */
+	for (i = 0; i < block_count; i++) {
+		off_t offset = i * INCFS_DATA_FILE_BLOCK_SIZE;
+		size_t block_size = INCFS_DATA_FILE_BLOCK_SIZE;
+		int block_index = tree_lvl_index[0] +
+					i / hash_per_block;
+		int block_off = (i % hash_per_block) * digest_size;
+		int seed = get_file_block_seed(file->index, i);
+		char *hash_ptr = file->mtree[block_index].data + block_off;
+
+		if (file->size - offset < block_size) {
+			block_size = file->size - offset;
+			memset(data, 0, INCFS_DATA_FILE_BLOCK_SIZE);
+		}
+
+		rnd_buf((uint8_t *)data, block_size, seed);
+		sha256(data, INCFS_DATA_FILE_BLOCK_SIZE, hash_ptr);
+	}
+
+	/* Build higher levels of hash tree. */
+	for (level = 1; level < levels_count; level++) {
+		int prev_lvl_base = tree_lvl_index[level - 1];
+		int prev_lvl_count = tree_lvl_count[level - 1];
+
+		for (i = 0; i < prev_lvl_count; i++) {
+			int block_index =
+				i / hash_per_block + tree_lvl_index[level];
+			int block_off = (i % hash_per_block) * digest_size;
+			char *hash_ptr =
+				file->mtree[block_index].data + block_off;
+
+			sha256(file->mtree[i + prev_lvl_base].data,
+			       INCFS_DATA_FILE_BLOCK_SIZE, hash_ptr);
+		}
+	}
+
+	/* Calculate root hash from the top block */
+	sha256(file->mtree[0].data,
+		INCFS_DATA_FILE_BLOCK_SIZE, file->root_hash);
+
+	return 0;
+}
+
+static int load_hash_tree(const char *mount_dir, struct test_file *file)
+{
+	int err;
+	int i;
+	int fd;
+	struct incfs_fill_blocks fill_blocks = {
+		.count = file->mtree_block_count,
+	};
+	struct incfs_fill_block *fill_block_array =
+		calloc(fill_blocks.count, sizeof(struct incfs_fill_block));
+
+	if (fill_blocks.count == 0)
+		return 0;
+
+	if (!fill_block_array)
+		return -ENOMEM;
+	fill_blocks.fill_blocks = ptr_to_u64(fill_block_array);
+
+	for (i = 0; i < fill_blocks.count; i++) {
+		fill_block_array[i] = (struct incfs_fill_block){
+			.block_index = i,
+			.data_len = INCFS_DATA_FILE_BLOCK_SIZE,
+			.data = ptr_to_u64(file->mtree[i].data),
+			.flags = INCFS_BLOCK_FLAGS_HASH
+		};
+	}
+
+	fd = open_file_by_id(mount_dir, file->id, false);
+	if (fd < 0) {
+		err = errno;
+		goto failure;
+	}
+
+	err = ioctl(fd, INCFS_IOC_FILL_BLOCKS, &fill_blocks);
+	close(fd);
+	if (err >= 0) {
+		err = -EPERM;
+		goto failure;
+	}
+
+	fd = open_file_by_id(mount_dir, file->id, true);
+	if (fd < 0) {
+		err = errno;
+		goto failure;
+	}
+
+	err = ioctl(fd, INCFS_IOC_FILL_BLOCKS, &fill_blocks);
+	close(fd);
+	if (err < fill_blocks.count)
+		err = errno;
+	else
+		err = 0;
+
+failure:
+	free(fill_block_array);
+	return err;
+}
+
+static int cant_touch_index_test(const char *mount_dir)
+{
+	char *file_name = "test_file";
+	int file_size = 123;
+	incfs_uuid_t file_id;
+	char *index_path = concat_file_name(mount_dir, ".index");
+	char *subdir = concat_file_name(index_path, "subdir");
+	char *dst_name = concat_file_name(mount_dir, "something");
+	char *filename_in_index = NULL;
+	char *file_path = concat_file_name(mount_dir, file_name);
+	char *backing_dir;
+	int cmd_fd = -1;
+	int err;
+
+	backing_dir = create_backing_dir(mount_dir);
+	if (!backing_dir)
+		goto failure;
+
+	/* Mount FS and release the backing file. */
+	if (mount_fs(mount_dir, backing_dir, 50) != 0)
+		goto failure;
+	free(backing_dir);
+
+	cmd_fd = open_commands_file(mount_dir);
+	if (cmd_fd < 0)
+		goto failure;
+
+
+	err = mkdir(subdir, 0777);
+	if (err == 0 || errno != EBUSY) {
+		print_error("Shouldn't be able to crate subdir in index\n");
+		goto failure;
+	}
+
+	err = rmdir(index_path);
+	if (err == 0 || errno != EBUSY) {
+		print_error(".index directory should not be removed\n");
+		goto failure;
+	}
+
+	err = emit_file(cmd_fd, ".index", file_name, &file_id,
+				file_size, NULL);
+	if (err != -EBUSY) {
+		print_error("Shouldn't be able to crate a file in index\n");
+		goto failure;
+	}
+
+	err = emit_file(cmd_fd, NULL, file_name, &file_id,
+				file_size, NULL);
+	if (err < 0)
+		goto failure;
+	filename_in_index = get_index_filename(mount_dir, file_id);
+
+	err = unlink(filename_in_index);
+	if (err == 0 || errno != EBUSY) {
+		print_error("Shouldn't be delete from index\n");
+		goto failure;
+	}
+
+
+	err = rename(filename_in_index, dst_name);
+	if (err == 0 || errno != EBUSY) {
+		print_error("Shouldn't be able to move from index\n");
+		goto failure;
+	}
+
+	free(filename_in_index);
+	filename_in_index = concat_file_name(index_path, "abc");
+	err = link(file_path, filename_in_index);
+	if (err == 0 || errno != EBUSY) {
+		print_error("Shouldn't be able to link inside index\n");
+		goto failure;
+	}
+
+	err = rename(index_path, dst_name);
+	if (err == 0 || errno != EBUSY) {
+		print_error("Shouldn't rename .index directory\n");
+		goto failure;
+	}
+
+	close(cmd_fd);
+	free(subdir);
+	free(index_path);
+	free(dst_name);
+	free(filename_in_index);
+	if (umount(mount_dir) != 0) {
+		print_error("Can't unmout FS");
+		goto failure;
+	}
+
+	return TEST_SUCCESS;
+
+failure:
+	free(subdir);
+	free(dst_name);
+	free(index_path);
+	free(filename_in_index);
+	close(cmd_fd);
+	umount(mount_dir);
+	return TEST_FAILURE;
+}
+
+static bool iterate_directory(const char *dir_to_iterate, bool root,
+			      int file_count)
+{
+	struct expected_name {
+		const char *name;
+		bool root_only;
+		bool found;
+	} names[] = {
+		{INCFS_LOG_FILENAME, true, false},
+		{INCFS_PENDING_READS_FILENAME, true, false},
+		{INCFS_BLOCKS_WRITTEN_FILENAME, true, false},
+		{".index", true, false},
+		{".incomplete", true, false},
+		{"..", false, false},
+		{".", false, false},
+	};
+
+	bool pass = true, found;
+	int i;
+
+	/* Test directory iteration */
+	int fd = open(dir_to_iterate, O_RDONLY | O_DIRECTORY | O_CLOEXEC);
+
+	if (fd < 0) {
+		print_error("Can't open directory\n");
+		return false;
+	}
+
+	for (;;) {
+		/* Enough space for one dirent - no name over 30 */
+		char buf[sizeof(struct linux_dirent64) + NAME_MAX];
+		struct linux_dirent64 *dirent = (struct linux_dirent64 *) buf;
+		int nread;
+		int i;
+
+		for (i = 0; i < NAME_MAX; ++i) {
+			nread = syscall(__NR_getdents64, fd, buf,
+					 sizeof(struct linux_dirent64) + i);
+
+			if (nread >= 0)
+				break;
+			if (errno != EINVAL)
+				break;
+		}
+
+		if (nread == 0)
+			break;
+		if (nread < 0) {
+			print_error("Error iterating directory\n");
+			pass = false;
+			goto failure;
+		}
+
+		/* Expected size is rounded up to 8 byte boundary. Not sure if
+		 * this is universal truth or just happenstance, but useful test
+		 * for the moment
+		 */
+		if (nread != (((sizeof(struct linux_dirent64)
+				+ strlen(dirent->d_name) + 1) + 7) & ~7)) {
+			print_error("Wrong dirent size");
+			pass = false;
+			goto failure;
+		}
+
+		found = false;
+		for (i = 0; i < sizeof(names) / sizeof(*names); ++i)
+			if (!strcmp(dirent->d_name, names[i].name)) {
+				if (names[i].root_only && !root) {
+					print_error("Root file error");
+					pass = false;
+					goto failure;
+				}
+
+				if (names[i].found) {
+					print_error("File appears twice");
+					pass = false;
+					goto failure;
+				}
+
+				names[i].found = true;
+				found = true;
+				break;
+			}
+
+		if (!found)
+			--file_count;
+	}
+
+	for (i = 0; i < sizeof(names) / sizeof(*names); ++i) {
+		if (!names[i].found)
+			if (root || !names[i].root_only) {
+				print_error("Expected file not present");
+				pass = false;
+				goto failure;
+			}
+	}
+
+	if (file_count) {
+		print_error("Wrong number of files\n");
+		pass = false;
+		goto failure;
+	}
+
+failure:
+	close(fd);
+	return pass;
+}
+
+static int basic_file_ops_test(const char *mount_dir)
+{
+	struct test_files_set test = get_test_files_set();
+	const int file_num = test.files_count;
+	char *subdir1 = concat_file_name(mount_dir, "subdir1");
+	char *subdir2 = concat_file_name(mount_dir, "subdir2");
+	char *backing_dir;
+	int cmd_fd = -1;
+	int i, err;
+
+	backing_dir = create_backing_dir(mount_dir);
+	if (!backing_dir)
+		goto failure;
+
+	/* Mount FS and release the backing file. */
+	if (mount_fs(mount_dir, backing_dir, 50) != 0)
+		goto failure;
+	free(backing_dir);
+
+	cmd_fd = open_commands_file(mount_dir);
+	if (cmd_fd < 0)
+		goto failure;
+
+	err = mkdir(subdir1, 0777);
+	if (err < 0 && errno != EEXIST) {
+		print_error("Can't create subdir1\n");
+		goto failure;
+	}
+
+	err = mkdir(subdir2, 0777);
+	if (err < 0 && errno != EEXIST) {
+		print_error("Can't create subdir2\n");
+		goto failure;
+	}
+
+	/* Create all test files in subdir1 directory */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+		loff_t size;
+		char *file_path = concat_file_name(subdir1, file->name);
+
+		err = emit_file(cmd_fd, "subdir1", file->name, &file->id,
+				     file->size, NULL);
+		if (err < 0)
+			goto failure;
+
+		size = get_file_size(file_path);
+		free(file_path);
+		if (size != file->size) {
+			ksft_print_msg("Wrong size %lld of %s.\n",
+				size, file->name);
+			goto failure;
+		}
+	}
+
+	if (!iterate_directory(subdir1, false, file_num))
+		goto failure;
+
+	/* Link the files to subdir2 */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+		char *src_name = concat_file_name(subdir1, file->name);
+		char *dst_name = concat_file_name(subdir2, file->name);
+		loff_t size;
+
+		err = link(src_name, dst_name);
+		if (err < 0) {
+			print_error("Can't move file\n");
+			goto failure;
+		}
+
+		size = get_file_size(dst_name);
+		if (size != file->size) {
+			ksft_print_msg("Wrong size %lld of %s.\n",
+				size, file->name);
+			goto failure;
+		}
+		free(src_name);
+		free(dst_name);
+	}
+
+	/* Move the files from subdir2 to the mount dir */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+		char *src_name = concat_file_name(subdir2, file->name);
+		char *dst_name = concat_file_name(mount_dir, file->name);
+		loff_t size;
+
+		err = rename(src_name, dst_name);
+		if (err < 0) {
+			print_error("Can't move file\n");
+			goto failure;
+		}
+
+		size = get_file_size(dst_name);
+		if (size != file->size) {
+			ksft_print_msg("Wrong size %lld of %s.\n",
+				size, file->name);
+			goto failure;
+		}
+		free(src_name);
+		free(dst_name);
+	}
+
+	/* +2 because there are 2 subdirs */
+	if (!iterate_directory(mount_dir, true, file_num + 2))
+		goto failure;
+
+	/* Open and close all files from the mount dir */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+		char *path = concat_file_name(mount_dir, file->name);
+		int fd;
+
+		fd = open(path, O_RDWR | O_CLOEXEC);
+		free(path);
+		if (fd <= 0) {
+			print_error("Can't open file");
+			goto failure;
+		}
+		if (close(fd)) {
+			print_error("Can't close file");
+			goto failure;
+		}
+	}
+
+	/* Delete all files from the mount dir */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+		char *path = concat_file_name(mount_dir, file->name);
+
+		err = unlink(path);
+		free(path);
+		if (err < 0) {
+			print_error("Can't unlink file");
+			goto failure;
+		}
+	}
+
+	err = delete_dir_tree(subdir1);
+	if (err) {
+		ksft_print_msg("Error deleting subdir1 %d", err);
+		goto failure;
+	}
+
+	err = rmdir(subdir2);
+	if (err) {
+		print_error("Error deleting subdir2");
+		goto failure;
+	}
+
+	close(cmd_fd);
+	cmd_fd = -1;
+	if (umount(mount_dir) != 0) {
+		print_error("Can't unmout FS");
+		goto failure;
+	}
+
+	return TEST_SUCCESS;
+
+failure:
+	close(cmd_fd);
+	umount(mount_dir);
+	return TEST_FAILURE;
+}
+
+static int dynamic_files_and_data_test(const char *mount_dir)
+{
+	struct test_files_set test = get_test_files_set();
+	const int file_num = test.files_count;
+	const int missing_file_idx = 5;
+	int cmd_fd = -1;
+	char *backing_dir;
+	int i;
+
+	backing_dir = create_backing_dir(mount_dir);
+	if (!backing_dir)
+		goto failure;
+
+	/* Mount FS and release the backing file. */
+	if (mount_fs(mount_dir, backing_dir, 50) != 0)
+		goto failure;
+	free(backing_dir);
+
+	cmd_fd = open_commands_file(mount_dir);
+	if (cmd_fd < 0)
+		goto failure;
+
+	/* Check that test files don't exist in the filesystem. */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+		char *filename = concat_file_name(mount_dir, file->name);
+
+		if (access(filename, F_OK) != -1) {
+			ksft_print_msg(
+				"File %s somehow already exists in a clean FS.\n",
+				filename);
+			goto failure;
+		}
+		free(filename);
+	}
+
+	/* Write test data into the command file. */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+		int res;
+
+		res = emit_file(cmd_fd, NULL, file->name, &file->id,
+				     file->size, NULL);
+		if (res < 0) {
+			ksft_print_msg("Error %s emiting file %s.\n",
+				       strerror(-res), file->name);
+			goto failure;
+		}
+
+		/* Skip writing data to one file so we can check */
+		/* that it's missing later. */
+		if (i == missing_file_idx)
+			continue;
+
+		res = emit_test_file_data(mount_dir, file);
+		if (res) {
+			ksft_print_msg("Error %s emiting data for %s.\n",
+				       strerror(-res), file->name);
+			goto failure;
+		}
+	}
+
+	/* Validate contents of the FS */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+
+		if (i == missing_file_idx) {
+			/* No data has been written to this file. */
+			/* Check for read error; */
+			uint8_t buf;
+			char *filename =
+				concat_file_name(mount_dir, file->name);
+			int res = read_test_file(&buf, 1, filename, 0);
+
+			free(filename);
+			if (res > 0) {
+				ksft_print_msg(
+					"Data present, even though never writtern.\n");
+				goto failure;
+			}
+			if (res != -ETIME) {
+				ksft_print_msg("Wrong error code: %d.\n", res);
+				goto failure;
+			}
+		} else {
+			if (validate_test_file_content(mount_dir, file) < 0)
+				goto failure;
+		}
+	}
+
+	close(cmd_fd);
+	cmd_fd = -1;
+	if (umount(mount_dir) != 0) {
+		print_error("Can't unmout FS");
+		goto failure;
+	}
+
+	return TEST_SUCCESS;
+
+failure:
+	close(cmd_fd);
+	umount(mount_dir);
+	return TEST_FAILURE;
+}
+
+static int concurrent_reads_and_writes_test(const char *mount_dir)
+{
+	struct test_files_set test = get_test_files_set();
+	const int file_num = test.files_count;
+	/* Validate each file from that many child processes. */
+	const int child_multiplier = 3;
+	int cmd_fd = -1;
+	char *backing_dir;
+	int status;
+	int i;
+	pid_t producer_pid;
+	pid_t *child_pids = alloca(child_multiplier * file_num * sizeof(pid_t));
+
+	backing_dir = create_backing_dir(mount_dir);
+	if (!backing_dir)
+		goto failure;
+
+	/* Mount FS and release the backing file. */
+	if (mount_fs(mount_dir, backing_dir, 500) != 0)
+		goto failure;
+	free(backing_dir);
+
+	cmd_fd = open_commands_file(mount_dir);
+	if (cmd_fd < 0)
+		goto failure;
+
+	/* Tell FS about the files, without actually providing the data. */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+		int res;
+
+		res = emit_file(cmd_fd, NULL, file->name, &file->id,
+				     file->size, NULL);
+		if (res)
+			goto failure;
+	}
+
+	/* Start child processes acessing data in the files */
+	for (i = 0; i < file_num * child_multiplier; i++) {
+		struct test_file *file = &test.files[i / child_multiplier];
+		pid_t child_pid = flush_and_fork();
+
+		if (child_pid == 0) {
+			/* This is a child process, do the data validation. */
+			int ret = validate_test_file_content_with_seed(
+				mount_dir, file, i);
+			if (ret >= 0) {
+				/* Zero exit status if data is valid. */
+				exit(0);
+			}
+
+			/* Positive status if validation error found. */
+			exit(-ret);
+		} else if (child_pid > 0) {
+			child_pids[i] = child_pid;
+		} else {
+			print_error("Fork error");
+			goto failure;
+		}
+	}
+
+	producer_pid = flush_and_fork();
+	if (producer_pid == 0) {
+		int ret;
+		/*
+		 * This is a child that should provide data to
+		 * pending reads.
+		 */
+
+		ret = data_producer(mount_dir, &test);
+		exit(-ret);
+	} else {
+		status = wait_for_process(producer_pid);
+		if (status != 0) {
+			ksft_print_msg("Data produces failed. %d(%s) ", status,
+				       strerror(status));
+			goto failure;
+		}
+	}
+
+	/* Check that all children has finished with 0 exit status */
+	for (i = 0; i < file_num * child_multiplier; i++) {
+		struct test_file *file = &test.files[i / child_multiplier];
+
+		status = wait_for_process(child_pids[i]);
+		if (status != 0) {
+			ksft_print_msg(
+				"Validation for the file %s failed with code %d (%s)\n",
+				file->name, status, strerror(status));
+			goto failure;
+		}
+	}
+
+	/* Check that there are no pending reads left */
+	{
+		struct incfs_pending_read_info prs[1] = {};
+		int timeout = 0;
+		int read_count = wait_for_pending_reads(cmd_fd, timeout, prs,
+							ARRAY_SIZE(prs));
+
+		if (read_count) {
+			ksft_print_msg(
+				"Pending reads pending when all data written\n");
+			goto failure;
+		}
+	}
+
+	close(cmd_fd);
+	cmd_fd = -1;
+	if (umount(mount_dir) != 0) {
+		print_error("Can't unmout FS");
+		goto failure;
+	}
+
+	return TEST_SUCCESS;
+
+failure:
+	close(cmd_fd);
+	umount(mount_dir);
+	return TEST_FAILURE;
+}
+
+static int work_after_remount_test(const char *mount_dir)
+{
+	struct test_files_set test = get_test_files_set();
+	const int file_num = test.files_count;
+	const int file_num_stage1 = file_num / 2;
+	const int file_num_stage2 = file_num;
+	char *backing_dir = NULL;
+	int i = 0;
+	int cmd_fd = -1;
+
+	backing_dir = create_backing_dir(mount_dir);
+	if (!backing_dir)
+		goto failure;
+
+	/* Mount FS and release the backing file. */
+	if (mount_fs(mount_dir, backing_dir, 50) != 0)
+		goto failure;
+
+	cmd_fd = open_commands_file(mount_dir);
+	if (cmd_fd < 0)
+		goto failure;
+
+	/* Write first half of the data into the command file. (stage 1) */
+	for (i = 0; i < file_num_stage1; i++) {
+		struct test_file *file = &test.files[i];
+
+		if (emit_file(cmd_fd, NULL, file->name, &file->id,
+				     file->size, NULL))
+			goto failure;
+
+		if (emit_test_file_data(mount_dir, file))
+			goto failure;
+	}
+
+	/* Unmount and mount again, to see that data is persistent. */
+	close(cmd_fd);
+	cmd_fd = -1;
+	if (umount(mount_dir) != 0) {
+		print_error("Can't unmout FS");
+		goto failure;
+	}
+
+	if (mount_fs(mount_dir, backing_dir, 50) != 0)
+		goto failure;
+
+	cmd_fd = open_commands_file(mount_dir);
+	if (cmd_fd < 0)
+		goto failure;
+
+	/* Write the second half of the data into the command file. (stage 2) */
+	for (; i < file_num_stage2; i++) {
+		struct test_file *file = &test.files[i];
+		int res = emit_file(cmd_fd, NULL, file->name, &file->id,
+				     file->size, NULL);
+
+		if (res)
+			goto failure;
+
+		if (emit_test_file_data(mount_dir, file))
+			goto failure;
+	}
+
+	/* Validate contents of the FS */
+	for (i = 0; i < file_num_stage2; i++) {
+		struct test_file *file = &test.files[i];
+
+		if (validate_test_file_content(mount_dir, file) < 0)
+			goto failure;
+	}
+
+	/* Delete all files */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+		char *filename = concat_file_name(mount_dir, file->name);
+		char *filename_in_index = get_index_filename(mount_dir,
+							file->id);
+
+		if (access(filename, F_OK) != 0) {
+			ksft_print_msg("File %s is not visible.\n", filename);
+			goto failure;
+		}
+
+		if (access(filename_in_index, F_OK) != 0) {
+			ksft_print_msg("File %s is not visible.\n",
+				filename_in_index);
+			goto failure;
+		}
+
+		unlink(filename);
+
+		if (access(filename, F_OK) != -1) {
+			ksft_print_msg("File %s is still present.\n", filename);
+			goto failure;
+		}
+
+		if (access(filename_in_index, F_OK) != -1) {
+			ksft_print_msg("File %s is still present.\n",
+				filename_in_index);
+			goto failure;
+		}
+		free(filename);
+		free(filename_in_index);
+	}
+
+	/* Unmount and mount again, to see that deleted files stay deleted. */
+	close(cmd_fd);
+	cmd_fd = -1;
+	if (umount(mount_dir) != 0) {
+		print_error("Can't unmout FS");
+		goto failure;
+	}
+
+	if (mount_fs(mount_dir, backing_dir, 50) != 0)
+		goto failure;
+
+	cmd_fd = open_commands_file(mount_dir);
+	if (cmd_fd < 0)
+		goto failure;
+
+	/* Validate all deleted files are still deleted. */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+		char *filename = concat_file_name(mount_dir, file->name);
+
+		if (access(filename, F_OK) != -1) {
+			ksft_print_msg("File %s is still visible.\n", filename);
+			goto failure;
+		}
+		free(filename);
+	}
+
+	/* Final unmount */
+	close(cmd_fd);
+	free(backing_dir);
+	cmd_fd = -1;
+	if (umount(mount_dir) != 0) {
+		print_error("Can't unmout FS");
+		goto failure;
+	}
+
+	return TEST_SUCCESS;
+
+failure:
+	close(cmd_fd);
+	free(backing_dir);
+	umount(mount_dir);
+	return TEST_FAILURE;
+}
+
+static int attribute_test(const char *mount_dir)
+{
+	char file_attr[] = "metadata123123";
+	char attr_buf[INCFS_MAX_FILE_ATTR_SIZE] = {};
+	int cmd_fd = -1;
+	incfs_uuid_t file_id;
+	int attr_res = 0;
+	char *backing_dir;
+
+
+	backing_dir = create_backing_dir(mount_dir);
+	if (!backing_dir)
+		goto failure;
+
+	/* Mount FS and release the backing file. */
+	if (mount_fs(mount_dir, backing_dir, 50) != 0)
+		goto failure;
+
+
+	cmd_fd = open_commands_file(mount_dir);
+	if (cmd_fd < 0)
+		goto failure;
+
+	if (emit_file(cmd_fd, NULL, "file", &file_id, 12, file_attr))
+		goto failure;
+
+	/* Test attribute values */
+	attr_res = get_file_attr(mount_dir, file_id, attr_buf,
+		ARRAY_SIZE(attr_buf));
+	if (attr_res != strlen(file_attr)) {
+		ksft_print_msg("Get file attr error: %d\n", attr_res);
+		goto failure;
+	}
+	if (strcmp(attr_buf, file_attr) != 0) {
+		ksft_print_msg("Incorrect file attr value: '%s'", attr_buf);
+		goto failure;
+	}
+
+	/* Unmount and mount again, to see that attributes are persistent. */
+	close(cmd_fd);
+	cmd_fd = -1;
+	if (umount(mount_dir) != 0) {
+		print_error("Can't unmout FS");
+		goto failure;
+	}
+
+	if (mount_fs(mount_dir, backing_dir, 50) != 0)
+		goto failure;
+
+	cmd_fd = open_commands_file(mount_dir);
+	if (cmd_fd < 0)
+		goto failure;
+
+	/* Test attribute values again after remount*/
+	attr_res = get_file_attr(mount_dir, file_id, attr_buf,
+		ARRAY_SIZE(attr_buf));
+	if (attr_res != strlen(file_attr)) {
+		ksft_print_msg("Get dir attr error: %d\n", attr_res);
+		goto failure;
+	}
+	if (strcmp(attr_buf, file_attr) != 0) {
+		ksft_print_msg("Incorrect file attr value: '%s'", attr_buf);
+		goto failure;
+	}
+
+	/* Final unmount */
+	close(cmd_fd);
+	free(backing_dir);
+	cmd_fd = -1;
+	if (umount(mount_dir) != 0) {
+		print_error("Can't unmout FS");
+		goto failure;
+	}
+
+	return TEST_SUCCESS;
+
+failure:
+	close(cmd_fd);
+	free(backing_dir);
+	umount(mount_dir);
+	return TEST_FAILURE;
+}
+
+static int child_procs_waiting_for_data_test(const char *mount_dir)
+{
+	struct test_files_set test = get_test_files_set();
+	const int file_num = test.files_count;
+	int cmd_fd = -1;
+	int i;
+	pid_t *child_pids = alloca(file_num * sizeof(pid_t));
+	char *backing_dir;
+
+	backing_dir = create_backing_dir(mount_dir);
+	if (!backing_dir)
+		goto failure;
+
+	/* Mount FS and release the backing file.  (10s wait time) */
+	if (mount_fs(mount_dir, backing_dir, 10000) != 0)
+		goto failure;
+
+
+	cmd_fd = open_commands_file(mount_dir);
+	if (cmd_fd < 0)
+		goto failure;
+
+	/* Tell FS about the files, without actually providing the data. */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+
+		emit_file(cmd_fd, NULL, file->name, &file->id,
+				     file->size, NULL);
+	}
+
+	/* Start child processes acessing data in the files */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+		pid_t child_pid = flush_and_fork();
+
+		if (child_pid == 0) {
+			/* This is a child process, do the data validation. */
+			int ret = validate_test_file_content(mount_dir, file);
+
+			if (ret >= 0) {
+				/* Zero exit status if data is valid. */
+				exit(0);
+			}
+
+			/* Positive status if validation error found. */
+			exit(-ret);
+		} else if (child_pid > 0) {
+			child_pids[i] = child_pid;
+		} else {
+			print_error("Fork error");
+			goto failure;
+		}
+	}
+
+	/* Write test data into the command file. */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+
+		if (emit_test_file_data(mount_dir, file))
+			goto failure;
+	}
+
+	/* Check that all children has finished with 0 exit status */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+		int status = wait_for_process(child_pids[i]);
+
+		if (status != 0) {
+			ksft_print_msg(
+				"Validation for the file %s failed with code %d (%s)\n",
+				file->name, status, strerror(status));
+			goto failure;
+		}
+	}
+
+	close(cmd_fd);
+	free(backing_dir);
+	cmd_fd = -1;
+	if (umount(mount_dir) != 0) {
+		print_error("Can't unmout FS");
+		goto failure;
+	}
+
+	return TEST_SUCCESS;
+
+failure:
+	close(cmd_fd);
+	free(backing_dir);
+	umount(mount_dir);
+	return TEST_FAILURE;
+}
+
+static int multiple_providers_test(const char *mount_dir)
+{
+	struct test_files_set test = get_test_files_set();
+	const int file_num = test.files_count;
+	const int producer_count = 5;
+	int cmd_fd = -1;
+	int status;
+	int i;
+	pid_t *producer_pids = alloca(producer_count * sizeof(pid_t));
+	char *backing_dir;
+
+	backing_dir = create_backing_dir(mount_dir);
+	if (!backing_dir)
+		goto failure;
+
+	/* Mount FS and release the backing file.  (10s wait time) */
+	if (mount_fs_opt(mount_dir, backing_dir,
+			 "read_timeout_ms=10000,report_uid", false) != 0)
+		goto failure;
+
+	cmd_fd = open_commands_file(mount_dir);
+	if (cmd_fd < 0)
+		goto failure;
+
+	/* Tell FS about the files, without actually providing the data. */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+
+		if (emit_file(cmd_fd, NULL, file->name, &file->id,
+				     file->size, NULL) < 0)
+			goto failure;
+	}
+
+	/* Start producer processes */
+	for (i = 0; i < producer_count; i++) {
+		pid_t producer_pid = flush_and_fork();
+
+		if (producer_pid == 0) {
+			int ret;
+			/*
+			 * This is a child that should provide data to
+			 * pending reads.
+			 */
+
+			ret = data_producer2(mount_dir, &test);
+			exit(-ret);
+		} else if (producer_pid > 0) {
+			producer_pids[i] = producer_pid;
+		} else {
+			print_error("Fork error");
+			goto failure;
+		}
+	}
+
+	/* Validate FS content */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+		char *filename = concat_file_name(mount_dir, file->name);
+		loff_t read_result = read_whole_file(filename);
+
+		free(filename);
+		if (read_result != file->size) {
+			ksft_print_msg(
+				"Error validating file %s. Result: %ld\n",
+				file->name, read_result);
+			goto failure;
+		}
+	}
+
+	/* Check that all producers has finished with 0 exit status */
+	for (i = 0; i < producer_count; i++) {
+		status = wait_for_process(producer_pids[i]);
+		if (status != 0) {
+			ksft_print_msg("Producer %d failed with code (%s)\n", i,
+				       strerror(status));
+			goto failure;
+		}
+	}
+
+	close(cmd_fd);
+	free(backing_dir);
+	cmd_fd = -1;
+	if (umount(mount_dir) != 0) {
+		print_error("Can't unmout FS");
+		goto failure;
+	}
+
+	return TEST_SUCCESS;
+
+failure:
+	close(cmd_fd);
+	free(backing_dir);
+	umount(mount_dir);
+	return TEST_FAILURE;
+}
+
+static int validate_hash_tree(const char *mount_dir, struct test_file *file)
+{
+	int result = TEST_FAILURE;
+	char *filename = NULL;
+	int fd = -1;
+	unsigned char *buf;
+	int i, err;
+
+	TEST(filename = concat_file_name(mount_dir, file->name), filename);
+	TEST(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+	TEST(buf = malloc(INCFS_DATA_FILE_BLOCK_SIZE * 8), buf);
+
+	for (i = 0; i < file->mtree_block_count; ) {
+		int blocks_to_read = i % 7 + 1;
+		struct fsverity_read_metadata_arg args = {
+			.metadata_type = FS_VERITY_METADATA_TYPE_MERKLE_TREE,
+			.offset = i * INCFS_DATA_FILE_BLOCK_SIZE,
+			.length = blocks_to_read * INCFS_DATA_FILE_BLOCK_SIZE,
+			.buf_ptr = ptr_to_u64(buf),
+		};
+
+		TEST(err = ioctl(fd, FS_IOC_READ_VERITY_METADATA, &args),
+		     err == min(args.length, (file->mtree_block_count - i) *
+					     INCFS_DATA_FILE_BLOCK_SIZE));
+		TESTEQUAL(memcmp(buf, file->mtree[i].data, err), 0);
+
+		i += blocks_to_read;
+	}
+
+	result = TEST_SUCCESS;
+
+out:
+	free(buf);
+	close(fd);
+	free(filename);
+	return result;
+}
+
+static int hash_tree_test(const char *mount_dir)
+{
+	int result = TEST_FAILURE;
+	char *backing_dir;
+	struct test_files_set test = get_test_files_set();
+	const int file_num = test.files_count;
+	const int corrupted_file_idx = 5;
+	int i = 0;
+	int cmd_fd = -1;
+
+	backing_dir = create_backing_dir(mount_dir);
+	if (!backing_dir)
+		goto failure;
+
+	/* Mount FS and release the backing file. */
+	if (mount_fs(mount_dir, backing_dir, 50) != 0)
+		goto failure;
+
+	cmd_fd = open_commands_file(mount_dir);
+	if (cmd_fd < 0)
+		goto failure;
+
+	/* Write hashes and data. */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+		int res;
+
+		build_mtree(file);
+		res = crypto_emit_file(cmd_fd, NULL, file->name, &file->id,
+				       file->size, file->root_hash,
+				       file->sig.add_data);
+
+		if (i == corrupted_file_idx) {
+			/* Corrupt third blocks hash */
+			file->mtree[0].data[2 * SHA256_DIGEST_SIZE] ^= 0xff;
+		}
+		if (emit_test_file_data(mount_dir, file))
+			goto failure;
+
+		res = load_hash_tree(mount_dir, file);
+		if (res) {
+			ksft_print_msg("Can't load hashes for %s. error: %s\n",
+				file->name, strerror(-res));
+			goto failure;
+		}
+	}
+
+	/* Validate data */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+
+		if (i == corrupted_file_idx) {
+			uint8_t data[INCFS_DATA_FILE_BLOCK_SIZE];
+			char *filename =
+				concat_file_name(mount_dir, file->name);
+			int res;
+
+			res = read_test_file(data, INCFS_DATA_FILE_BLOCK_SIZE,
+					     filename, 2);
+			free(filename);
+			if (res != -EBADMSG) {
+				ksft_print_msg("Hash violation missed1. %d\n",
+					       res);
+				goto failure;
+			}
+		} else if (validate_test_file_content(mount_dir, file) < 0)
+			goto failure;
+		else if (validate_hash_tree(mount_dir, file) < 0)
+			goto failure;
+	}
+
+	/* Unmount and mount again, to that hashes are persistent. */
+	close(cmd_fd);
+	cmd_fd = -1;
+	if (umount(mount_dir) != 0) {
+		print_error("Can't unmout FS");
+		goto failure;
+	}
+	if (mount_fs(mount_dir, backing_dir, 50) != 0)
+		goto failure;
+
+	cmd_fd = open_commands_file(mount_dir);
+	if (cmd_fd < 0)
+		goto failure;
+
+	/* Validate data again */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+
+		if (i == corrupted_file_idx) {
+			uint8_t data[INCFS_DATA_FILE_BLOCK_SIZE];
+			char *filename =
+				concat_file_name(mount_dir, file->name);
+			int res;
+
+			res = read_test_file(data, INCFS_DATA_FILE_BLOCK_SIZE,
+					     filename, 2);
+			free(filename);
+			if (res != -EBADMSG) {
+				ksft_print_msg("Hash violation missed2. %d\n",
+					       res);
+				goto failure;
+			}
+		} else if (validate_test_file_content(mount_dir, file) < 0)
+			goto failure;
+	}
+	result = TEST_SUCCESS;
+
+failure:
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+
+		free(file->mtree);
+	}
+
+	close(cmd_fd);
+	free(backing_dir);
+	umount(mount_dir);
+	return result;
+}
+
+enum expected_log { FULL_LOG, NO_LOG, PARTIAL_LOG };
+
+static int validate_logs(const char *mount_dir, int log_fd,
+			 struct test_file *file,
+			 enum expected_log expected_log,
+			 bool report_uid, bool expect_data)
+{
+	int result = TEST_FAILURE;
+	uint8_t data[INCFS_DATA_FILE_BLOCK_SIZE];
+	struct incfs_pending_read_info prs[2048] = {};
+	struct incfs_pending_read_info2 prs2[2048] = {};
+	struct incfs_pending_read_info *previous_record = NULL;
+	int prs_size = ARRAY_SIZE(prs);
+	int block_count = 1 + (file->size - 1) / INCFS_DATA_FILE_BLOCK_SIZE;
+	int expected_read_count, read_count, block_index, read_index;
+	char *filename = NULL;
+	int fd = -1;
+
+	TEST(filename = concat_file_name(mount_dir, file->name), filename);
+	TEST(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+
+	if (block_count > prs_size)
+		block_count = prs_size;
+	expected_read_count = block_count;
+
+	for (block_index = 0; block_index < block_count; block_index++) {
+		int result = pread(fd, data, sizeof(data),
+			    INCFS_DATA_FILE_BLOCK_SIZE * block_index);
+
+		/* Make some read logs of type SAME_FILE_NEXT_BLOCK */
+		if (block_index % 100 == 10)
+			usleep(20000);
+
+		/* Skip some blocks to make logs of type SAME_FILE */
+		if (block_index % 10 == 5) {
+			++block_index;
+			--expected_read_count;
+		}
+
+		if (expect_data)
+			TESTCOND(result > 0);
+
+		if (!expect_data)
+			TESTEQUAL(result, -1);
+	}
+
+	if (report_uid)
+		read_count = wait_for_pending_reads2(log_fd,
+				expected_log == NO_LOG ? 10 : 0,
+				prs2, prs_size);
+	else
+		read_count = wait_for_pending_reads(log_fd,
+				expected_log == NO_LOG ? 10 : 0,
+				prs, prs_size);
+
+	if (expected_log == NO_LOG)
+		TESTEQUAL(read_count, 0);
+
+	if (expected_log == PARTIAL_LOG)
+		TESTCOND(read_count > 0 &&
+			 read_count <= expected_read_count);
+
+	if (expected_log == FULL_LOG)
+		TESTEQUAL(read_count, expected_read_count);
+
+	/* If read less than expected, advance block_index appropriately */
+	for (block_index = 0, read_index = 0;
+	     read_index < expected_read_count - read_count;
+	     block_index++, read_index++)
+		if (block_index % 10 == 5)
+			++block_index;
+
+	for (read_index = 0; read_index < read_count;
+	     block_index++, read_index++) {
+		struct incfs_pending_read_info *record = report_uid ?
+			(struct incfs_pending_read_info *) &prs2[read_index] :
+			&prs[read_index];
+
+		TESTCOND(same_id(&record->file_id, &file->id));
+		TESTEQUAL(record->block_index, block_index);
+		TESTNE(record->timestamp_us, 0);
+		if (previous_record)
+			TESTEQUAL(record->serial_number,
+				  previous_record->serial_number + 1);
+
+		previous_record = record;
+		if (block_index % 10 == 5)
+			++block_index;
+	}
+
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+	free(filename);
+	return result;
+}
+
+static int read_log_test(const char *mount_dir)
+{
+	int result = TEST_FAILURE;
+	struct test_files_set test = get_test_files_set();
+	const int file_num = test.files_count;
+	int i = 0;
+	int cmd_fd = -1, log_fd = -1;
+	char *backing_dir = NULL;
+
+	/* Create files */
+	TEST(backing_dir = create_backing_dir(mount_dir), backing_dir);
+	TESTEQUAL(mount_fs_opt(mount_dir, backing_dir,
+			       "readahead=0,report_uid,read_timeout_ms=0",
+				 false), 0);
+	TEST(cmd_fd = open_commands_file(mount_dir), cmd_fd != -1);
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+
+		TESTEQUAL(emit_file(cmd_fd, NULL, file->name, &file->id,
+				    file->size, NULL), 0);
+	}
+	close(cmd_fd);
+	cmd_fd = -1;
+
+	/* Validate logs */
+	TEST(log_fd = open_log_file(mount_dir), log_fd != -1);
+	for (i = 0; i < file_num; i++)
+		TESTEQUAL(validate_logs(mount_dir, log_fd, &test.files[i],
+					FULL_LOG, true, false), 0);
+
+	/* Unmount and mount again without report_uid */
+	close(log_fd);
+	log_fd = -1;
+	TESTEQUAL(umount(mount_dir), 0);
+	TESTEQUAL(mount_fs_opt(mount_dir, backing_dir,
+			       "readahead=0,read_timeout_ms=0", false), 0);
+
+	TEST(log_fd = open_log_file(mount_dir), log_fd != -1);
+	for (i = 0; i < file_num; i++)
+		TESTEQUAL(validate_logs(mount_dir, log_fd, &test.files[i],
+					FULL_LOG, false, false), 0);
+
+	/* No read log to make sure poll doesn't crash */
+	close(log_fd);
+	log_fd = -1;
+	TESTEQUAL(umount(mount_dir), 0);
+	TESTEQUAL(mount_fs_opt(mount_dir, backing_dir,
+			       "readahead=0,rlog_pages=0,read_timeout_ms=0",
+			       false), 0);
+
+	TEST(log_fd = open_log_file(mount_dir), log_fd != -1);
+	for (i = 0; i < file_num; i++)
+		TESTEQUAL(validate_logs(mount_dir, log_fd, &test.files[i],
+					NO_LOG, false, false), 0);
+
+	/* Remount and check that logs start working again */
+	TESTEQUAL(mount_fs_opt(mount_dir, backing_dir,
+			       "readahead=0,rlog_pages=1,read_timeout_ms=0",
+			       true), 0);
+	for (i = 0; i < file_num; i++)
+		TESTEQUAL(validate_logs(mount_dir, log_fd, &test.files[i],
+					PARTIAL_LOG, false, false), 0);
+
+	/* Remount and check that logs continue working */
+	TESTEQUAL(mount_fs_opt(mount_dir, backing_dir,
+			       "readahead=0,rlog_pages=4,read_timeout_ms=0",
+			       true), 0);
+	for (i = 0; i < file_num; i++)
+		TESTEQUAL(validate_logs(mount_dir, log_fd, &test.files[i],
+					FULL_LOG, false, false), 0);
+
+	/* Check logs work with data */
+	for (i = 0; i < file_num; i++) {
+		TESTEQUAL(emit_test_file_data(mount_dir, &test.files[i]), 0);
+		TESTEQUAL(validate_logs(mount_dir, log_fd, &test.files[i],
+					FULL_LOG, false, true), 0);
+	}
+
+	/* Final unmount */
+	close(log_fd);
+	log_fd = -1;
+	TESTEQUAL(umount(mount_dir), 0);
+
+	result = TEST_SUCCESS;
+out:
+	close(cmd_fd);
+	close(log_fd);
+	free(backing_dir);
+	umount(mount_dir);
+	return result;
+}
+
+static int emit_partial_test_file_data(const char *mount_dir,
+				       struct test_file *file)
+{
+	int i, j;
+	int block_cnt = 1 + (file->size - 1) / INCFS_DATA_FILE_BLOCK_SIZE;
+	int *block_indexes = NULL;
+	int result = 0;
+	int blocks_written = 0;
+	int bw_fd = -1;
+	char buffer[20];
+	struct pollfd pollfd;
+	long blocks_written_total, blocks_written_new_total;
+
+	if (file->size == 0)
+		return 0;
+
+	bw_fd = open_blocks_written_file(mount_dir);
+	if (bw_fd == -1)
+		return -errno;
+
+	result = read(bw_fd, buffer, sizeof(buffer));
+	if (result <= 0) {
+		result = -EIO;
+		goto out;
+	}
+
+	buffer[result] = 0;
+	blocks_written_total = strtol(buffer, NULL, 10);
+	result = 0;
+
+	pollfd = (struct pollfd) {
+		.fd = bw_fd,
+		.events = POLLIN,
+	};
+
+	result = poll(&pollfd, 1, 0);
+	if (result) {
+		result = -EIO;
+		goto out;
+	}
+
+	/* Emit 2 blocks, skip 2 blocks etc*/
+	block_indexes = calloc(block_cnt, sizeof(*block_indexes));
+	for (i = 0, j = 0; i < block_cnt; ++i)
+		if ((i & 2) == 0) {
+			block_indexes[j] = i;
+			++j;
+		}
+
+	for (i = 0; i < j; i += blocks_written) {
+		blocks_written = emit_test_blocks(mount_dir, file,
+						  block_indexes + i, j - i);
+		if (blocks_written < 0) {
+			result = blocks_written;
+			goto out;
+		}
+		if (blocks_written == 0) {
+			result = -EIO;
+			goto out;
+		}
+
+		result = poll(&pollfd, 1, 0);
+		if (result != 1 || pollfd.revents != POLLIN) {
+			result = -EIO;
+			goto out;
+		}
+
+		result = read(bw_fd, buffer, sizeof(buffer));
+		buffer[result] = 0;
+		blocks_written_new_total = strtol(buffer, NULL, 10);
+
+		if (blocks_written_new_total - blocks_written_total
+		    != blocks_written) {
+			result = -EIO;
+			goto out;
+		}
+
+		blocks_written_total = blocks_written_new_total;
+		result = 0;
+	}
+out:
+	free(block_indexes);
+	close(bw_fd);
+	return result;
+}
+
+static int validate_ranges(const char *mount_dir, struct test_file *file)
+{
+	int block_cnt = 1 + (file->size - 1) / INCFS_DATA_FILE_BLOCK_SIZE;
+	char *filename = concat_file_name(mount_dir, file->name);
+	int fd;
+	struct incfs_filled_range ranges[128];
+	struct incfs_get_filled_blocks_args fba = {
+		.range_buffer = ptr_to_u64(ranges),
+		.range_buffer_size = sizeof(ranges),
+	};
+	int error = TEST_SUCCESS;
+	int i;
+	int range_cnt;
+	int cmd_fd = -1;
+	struct incfs_permit_fill permit_fill;
+
+	fd = open(filename, O_RDONLY | O_CLOEXEC);
+	free(filename);
+	if (fd <= 0)
+		return TEST_FAILURE;
+
+	error = ioctl(fd, INCFS_IOC_GET_FILLED_BLOCKS, &fba);
+	if (error != -1 || errno != EPERM) {
+		ksft_print_msg("INCFS_IOC_GET_FILLED_BLOCKS not blocked\n");
+		error = -EPERM;
+		goto out;
+	}
+
+	cmd_fd = open_commands_file(mount_dir);
+	permit_fill.file_descriptor = fd;
+	if (ioctl(cmd_fd, INCFS_IOC_PERMIT_FILL, &permit_fill)) {
+		print_error("INCFS_IOC_PERMIT_FILL failed");
+		return -EPERM;
+		goto out;
+	}
+
+	error = ioctl(fd, INCFS_IOC_GET_FILLED_BLOCKS, &fba);
+	if (error && errno != ERANGE)
+		goto out;
+
+	if (error && errno == ERANGE && block_cnt < 509)
+		goto out;
+
+	if (!error && block_cnt >= 509) {
+		error = -ERANGE;
+		goto out;
+	}
+
+	if (fba.total_blocks_out != block_cnt) {
+		error = -EINVAL;
+		goto out;
+	}
+
+	if (fba.data_blocks_out != block_cnt) {
+		error = -EINVAL;
+		goto out;
+	}
+
+	range_cnt = (block_cnt + 3) / 4;
+	if (range_cnt > 128)
+		range_cnt = 128;
+	if (range_cnt != fba.range_buffer_size_out / sizeof(*ranges)) {
+		error = -ERANGE;
+		goto out;
+	}
+
+	error = TEST_SUCCESS;
+	for (i = 0; i < fba.range_buffer_size_out / sizeof(*ranges) - 1; ++i)
+		if (ranges[i].begin != i * 4 || ranges[i].end != i * 4 + 2) {
+			error = -EINVAL;
+			goto out;
+		}
+
+	if (ranges[i].begin != i * 4 ||
+	    (ranges[i].end != i * 4 + 1 && ranges[i].end != i * 4 + 2)) {
+		error = -EINVAL;
+		goto out;
+	}
+
+	for (i = 0; i < 64; ++i) {
+		fba.start_index = i * 2;
+		fba.end_index = i * 2 + 2;
+		error = ioctl(fd, INCFS_IOC_GET_FILLED_BLOCKS, &fba);
+		if (error)
+			goto out;
+
+		if (fba.total_blocks_out != block_cnt) {
+			error = -EINVAL;
+			goto out;
+		}
+
+		if (fba.start_index >= block_cnt) {
+			if (fba.index_out != fba.start_index) {
+				error = -EINVAL;
+				goto out;
+			}
+
+			break;
+		}
+
+		if (i % 2) {
+			if (fba.range_buffer_size_out != 0) {
+				error = -EINVAL;
+				goto out;
+			}
+		} else {
+			if (fba.range_buffer_size_out != sizeof(*ranges)) {
+				error = -EINVAL;
+				goto out;
+			}
+
+			if (ranges[0].begin != i * 2) {
+				error = -EINVAL;
+				goto out;
+			}
+
+			if (ranges[0].end != i * 2 + 1 &&
+			    ranges[0].end != i * 2 + 2) {
+				error = -EINVAL;
+				goto out;
+			}
+		}
+	}
+
+out:
+	close(fd);
+	close(cmd_fd);
+	return error;
+}
+
+static int get_blocks_test(const char *mount_dir)
+{
+	char *backing_dir;
+	int cmd_fd = -1;
+	int i;
+	struct test_files_set test = get_test_files_set();
+	const int file_num = test.files_count;
+
+	backing_dir = create_backing_dir(mount_dir);
+	if (!backing_dir)
+		goto failure;
+
+	if (mount_fs_opt(mount_dir, backing_dir, "readahead=0", false) != 0)
+		goto failure;
+
+	cmd_fd = open_commands_file(mount_dir);
+	if (cmd_fd < 0)
+		goto failure;
+
+	/* Write data. */
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+
+		if (emit_file(cmd_fd, NULL, file->name, &file->id, file->size,
+			      NULL))
+			goto failure;
+
+		if (emit_partial_test_file_data(mount_dir, file))
+			goto failure;
+	}
+
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+
+		if (validate_ranges(mount_dir, file))
+			goto failure;
+
+		/*
+		 * The smallest files are filled completely, so this checks that
+		 * the fast get_filled_blocks path is not causing issues
+		 */
+		if (validate_ranges(mount_dir, file))
+			goto failure;
+	}
+
+	close(cmd_fd);
+	umount(mount_dir);
+	free(backing_dir);
+	return TEST_SUCCESS;
+
+failure:
+	close(cmd_fd);
+	umount(mount_dir);
+	free(backing_dir);
+	return TEST_FAILURE;
+}
+
+static int emit_partial_test_file_hash(const char *mount_dir,
+				       struct test_file *file)
+{
+	int err;
+	int fd;
+	struct incfs_fill_blocks fill_blocks = {
+		.count = 1,
+	};
+	struct incfs_fill_block *fill_block_array =
+		calloc(fill_blocks.count, sizeof(struct incfs_fill_block));
+	uint8_t data[INCFS_DATA_FILE_BLOCK_SIZE];
+
+	if (file->size <= 4096 / 32 * 4096)
+		return 0;
+
+	if (!fill_block_array)
+		return -ENOMEM;
+	fill_blocks.fill_blocks = ptr_to_u64(fill_block_array);
+
+	rnd_buf(data, sizeof(data), 0);
+
+	fill_block_array[0] =
+		(struct incfs_fill_block){ .block_index = 1,
+					   .data_len =
+						   INCFS_DATA_FILE_BLOCK_SIZE,
+					   .data = ptr_to_u64(data),
+					   .flags = INCFS_BLOCK_FLAGS_HASH };
+
+	fd = open_file_by_id(mount_dir, file->id, true);
+	if (fd < 0) {
+		err = errno;
+		goto failure;
+	}
+
+	err = ioctl(fd, INCFS_IOC_FILL_BLOCKS, &fill_blocks);
+	close(fd);
+	if (err < fill_blocks.count)
+		err = errno;
+	else
+		err = 0;
+
+failure:
+	free(fill_block_array);
+	return err;
+}
+
+static int validate_hash_ranges(const char *mount_dir, struct test_file *file)
+{
+	int block_cnt = 1 + (file->size - 1) / INCFS_DATA_FILE_BLOCK_SIZE;
+	char *filename = concat_file_name(mount_dir, file->name);
+	int fd;
+	struct incfs_filled_range ranges[128];
+	struct incfs_get_filled_blocks_args fba = {
+		.range_buffer = ptr_to_u64(ranges),
+		.range_buffer_size = sizeof(ranges),
+	};
+	int error = TEST_SUCCESS;
+	int file_blocks = (file->size + INCFS_DATA_FILE_BLOCK_SIZE - 1) /
+			  INCFS_DATA_FILE_BLOCK_SIZE;
+	int cmd_fd = -1;
+	struct incfs_permit_fill permit_fill;
+
+	if (file->size <= 4096 / 32 * 4096)
+		return 0;
+
+	fd = open(filename, O_RDONLY | O_CLOEXEC);
+	free(filename);
+	if (fd <= 0)
+		return TEST_FAILURE;
+
+	error = ioctl(fd, INCFS_IOC_GET_FILLED_BLOCKS, &fba);
+	if (error != -1 || errno != EPERM) {
+		ksft_print_msg("INCFS_IOC_GET_FILLED_BLOCKS not blocked\n");
+		error = -EPERM;
+		goto out;
+	}
+
+	cmd_fd = open_commands_file(mount_dir);
+	permit_fill.file_descriptor = fd;
+	if (ioctl(cmd_fd, INCFS_IOC_PERMIT_FILL, &permit_fill)) {
+		print_error("INCFS_IOC_PERMIT_FILL failed");
+		return -EPERM;
+		goto out;
+	}
+
+	error = ioctl(fd, INCFS_IOC_GET_FILLED_BLOCKS, &fba);
+	if (error)
+		goto out;
+
+	if (fba.total_blocks_out <= block_cnt) {
+		error = -EINVAL;
+		goto out;
+	}
+
+	if (fba.data_blocks_out != block_cnt) {
+		error = -EINVAL;
+		goto out;
+	}
+
+	if (fba.range_buffer_size_out != sizeof(struct incfs_filled_range)) {
+		error = -EINVAL;
+		goto out;
+	}
+
+	if (ranges[0].begin != file_blocks + 1 ||
+	    ranges[0].end != file_blocks + 2) {
+		error = -EINVAL;
+		goto out;
+	}
+
+out:
+	close(cmd_fd);
+	close(fd);
+	return error;
+}
+
+static int get_hash_blocks_test(const char *mount_dir)
+{
+	char *backing_dir;
+	int cmd_fd = -1;
+	int i;
+	struct test_files_set test = get_test_files_set();
+	const int file_num = test.files_count;
+
+	backing_dir = create_backing_dir(mount_dir);
+	if (!backing_dir)
+		goto failure;
+
+	if (mount_fs_opt(mount_dir, backing_dir, "readahead=0", false) != 0)
+		goto failure;
+
+	cmd_fd = open_commands_file(mount_dir);
+	if (cmd_fd < 0)
+		goto failure;
+
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+
+		if (crypto_emit_file(cmd_fd, NULL, file->name, &file->id,
+				     file->size, file->root_hash,
+				     file->sig.add_data))
+			goto failure;
+
+		if (emit_partial_test_file_hash(mount_dir, file))
+			goto failure;
+	}
+
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+
+		if (validate_hash_ranges(mount_dir, file))
+			goto failure;
+	}
+
+	close(cmd_fd);
+	umount(mount_dir);
+	free(backing_dir);
+	return TEST_SUCCESS;
+
+failure:
+	close(cmd_fd);
+	umount(mount_dir);
+	free(backing_dir);
+	return TEST_FAILURE;
+}
+
+#define THREE_GB (3LL * 1024 * 1024 * 1024)
+#define FOUR_GB (4LL * 1024 * 1024 * 1024) /* Have 1GB of margin */
+static int large_file_test(const char *mount_dir)
+{
+	char *backing_dir;
+	int cmd_fd = -1;
+	int i;
+	int result = TEST_FAILURE, ret;
+	uint8_t data[INCFS_DATA_FILE_BLOCK_SIZE] = {};
+	int block_count = THREE_GB / INCFS_DATA_FILE_BLOCK_SIZE;
+	struct incfs_fill_block *block_buf =
+		calloc(block_count, sizeof(struct incfs_fill_block));
+	struct incfs_fill_blocks fill_blocks = {
+		.count = block_count,
+		.fill_blocks = ptr_to_u64(block_buf),
+	};
+	incfs_uuid_t id;
+	int fd = -1;
+	struct statvfs svfs;
+	unsigned long long free_disksz;
+
+	ret = statvfs(mount_dir, &svfs);
+	if (ret) {
+		ksft_print_msg("Can't get disk size. Skipping %s...\n", __func__);
+		return TEST_SKIP;
+	}
+
+	free_disksz = (unsigned long long)svfs.f_bavail * svfs.f_bsize;
+
+	if (FOUR_GB > free_disksz) {
+		ksft_print_msg("Not enough free disk space (%lldMB). Skipping %s...\n",
+				free_disksz >> 20, __func__);
+		return TEST_SKIP;
+	}
+
+	backing_dir = create_backing_dir(mount_dir);
+	if (!backing_dir)
+		goto failure;
+
+	if (mount_fs_opt(mount_dir, backing_dir, "readahead=0", false) != 0)
+		goto failure;
+
+	cmd_fd = open_commands_file(mount_dir);
+	if (cmd_fd < 0)
+		goto failure;
+
+	if (emit_file(cmd_fd, NULL, "very_large_file", &id,
+		      (uint64_t)block_count * INCFS_DATA_FILE_BLOCK_SIZE,
+		      NULL) < 0)
+		goto failure;
+
+	for (i = 0; i < block_count; i++) {
+		block_buf[i].compression = COMPRESSION_NONE;
+		block_buf[i].block_index = i;
+		block_buf[i].data_len = INCFS_DATA_FILE_BLOCK_SIZE;
+		block_buf[i].data = ptr_to_u64(data);
+	}
+
+	fd = open_file_by_id(mount_dir, id, true);
+	if (fd < 0)
+		goto failure;
+
+	if (ioctl(fd, INCFS_IOC_FILL_BLOCKS, &fill_blocks) != block_count)
+		goto failure;
+
+	if (emit_file(cmd_fd, NULL, "very_very_large_file", &id, 1LL << 40,
+		      NULL) < 0)
+		goto failure;
+
+	result = TEST_SUCCESS;
+
+failure:
+	close(fd);
+	close(cmd_fd);
+	unlink("very_large_file");
+	umount(mount_dir);
+	free(backing_dir);
+	return result;
+}
+
+static int validate_mapped_file(const char *orig_name, const char *name,
+				size_t size, size_t offset)
+{
+	struct stat st;
+	int orig_fd = -1, fd = -1;
+	size_t block;
+	int result = TEST_FAILURE;
+
+	if (stat(name, &st)) {
+		ksft_print_msg("Failed to stat %s with error %s\n",
+			       name, strerror(errno));
+		goto failure;
+	}
+
+	if (size != st.st_size) {
+		ksft_print_msg("Mismatched file sizes for file %s - expected %llu, got %llu\n",
+				   name, size, st.st_size);
+		goto failure;
+	}
+
+	fd = open(name, O_RDONLY | O_CLOEXEC);
+	if (fd == -1) {
+		ksft_print_msg("Failed to open %s with error %s\n", name,
+			       strerror(errno));
+		goto failure;
+	}
+
+	orig_fd = open(orig_name, O_RDONLY | O_CLOEXEC);
+	if (orig_fd == -1) {
+		ksft_print_msg("Failed to open %s with error %s\n", orig_name,
+			       strerror(errno));
+		goto failure;
+	}
+
+	for (block = 0; block < size; block += INCFS_DATA_FILE_BLOCK_SIZE) {
+		uint8_t orig_data[INCFS_DATA_FILE_BLOCK_SIZE];
+		uint8_t data[INCFS_DATA_FILE_BLOCK_SIZE];
+		ssize_t orig_read, mapped_read;
+
+		orig_read = pread(orig_fd, orig_data,
+				 INCFS_DATA_FILE_BLOCK_SIZE, block + offset);
+		mapped_read = pread(fd, data, INCFS_DATA_FILE_BLOCK_SIZE,
+				    block);
+
+		if (orig_read < mapped_read ||
+		    mapped_read != min(size - block,
+				       INCFS_DATA_FILE_BLOCK_SIZE)) {
+			ksft_print_msg("Failed to read enough data: %llu %llu %llu %lld %lld\n",
+				       block, size, offset, orig_read,
+				       mapped_read);
+			goto failure;
+		}
+
+		if (memcmp(orig_data, data, mapped_read)) {
+			ksft_print_msg("Data doesn't match: %llu %llu %llu %lld %lld\n",
+				       block, size, offset, orig_read,
+				       mapped_read);
+			goto failure;
+		}
+	}
+
+	result = TEST_SUCCESS;
+
+failure:
+	close(orig_fd);
+	close(fd);
+	return result;
+}
+
+static int mapped_file_test(const char *mount_dir)
+{
+	char *backing_dir;
+	int result = TEST_FAILURE;
+	int cmd_fd = -1;
+	int i;
+	struct test_files_set test = get_test_files_set();
+	const int file_num = test.files_count;
+
+	backing_dir = create_backing_dir(mount_dir);
+	if (!backing_dir)
+		goto failure;
+
+	if (mount_fs_opt(mount_dir, backing_dir, "readahead=0", false) != 0)
+		goto failure;
+
+	cmd_fd = open_commands_file(mount_dir);
+	if (cmd_fd < 0)
+		goto failure;
+
+	for (i = 0; i < file_num; ++i) {
+		struct test_file *file = &test.files[i];
+		size_t blocks = file->size / INCFS_DATA_FILE_BLOCK_SIZE;
+		size_t mapped_offset = blocks / 4 *
+			INCFS_DATA_FILE_BLOCK_SIZE;
+		size_t mapped_size = file->size / 4 * 3 - mapped_offset;
+		struct incfs_create_mapped_file_args mfa;
+		char mapped_file_name[FILENAME_MAX];
+		char orig_file_path[PATH_MAX];
+		char mapped_file_path[PATH_MAX];
+
+		if (emit_file(cmd_fd, NULL, file->name, &file->id, file->size,
+					NULL) < 0)
+			goto failure;
+
+		if (emit_test_file_data(mount_dir, file))
+			goto failure;
+
+		if (snprintf(mapped_file_name, ARRAY_SIZE(mapped_file_name),
+					"%s.mapped", file->name) < 0)
+			goto failure;
+
+		mfa = (struct incfs_create_mapped_file_args) {
+			.size = mapped_size,
+			.mode = 0664,
+			.file_name = ptr_to_u64(mapped_file_name),
+			.source_file_id = file->id,
+			.source_offset = mapped_offset,
+		};
+
+		result = ioctl(cmd_fd, INCFS_IOC_CREATE_MAPPED_FILE, &mfa);
+		if (result) {
+			ksft_print_msg(
+				"Failed to create mapped file with error %d\n",
+				result);
+			goto failure;
+		}
+
+		result = snprintf(orig_file_path,
+				  ARRAY_SIZE(orig_file_path), "%s/%s",
+				  mount_dir, file->name);
+
+		if (result < 0 || result >= ARRAY_SIZE(mapped_file_path)) {
+			result = TEST_FAILURE;
+			goto failure;
+		}
+
+		result = snprintf(mapped_file_path,
+				  ARRAY_SIZE(mapped_file_path), "%s/%s",
+				  mount_dir, mapped_file_name);
+
+		if (result < 0 || result >= ARRAY_SIZE(mapped_file_path)) {
+			result = TEST_FAILURE;
+			goto failure;
+		}
+
+		result = validate_mapped_file(orig_file_path, mapped_file_path,
+					      mapped_size, mapped_offset);
+		if (result)
+			goto failure;
+	}
+
+failure:
+	close(cmd_fd);
+	umount(mount_dir);
+	free(backing_dir);
+	return result;
+}
+
+static const char v1_file[] = {
+	/* Header */
+	/* 0x00: Magic number */
+	0x49, 0x4e, 0x43, 0x46, 0x53, 0x00, 0x00, 0x00,
+	/* 0x08: Version */
+	0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	/* 0x10: Header size */
+	0x38, 0x00,
+	/* 0x12: Block size */
+	0x00, 0x10,
+	/* 0x14: Flags */
+	0x00, 0x00, 0x00, 0x00,
+	/* 0x18: First md offset */
+	0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	/* 0x20: File size */
+	0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	/* 0x28: UUID */
+	0x8c, 0x7d, 0xd9, 0x22, 0xad, 0x47, 0x49, 0x4f,
+	0xc0, 0x2c, 0x38, 0x8e, 0x12, 0xc0, 0x0e, 0xac,
+
+	/* 0x38: Attribute */
+	0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
+	0x31, 0x32, 0x33, 0x31, 0x32, 0x33,
+
+	/* Attribute md record */
+	/* 0x46: Type */
+	0x02,
+	/* 0x47: Size */
+	0x25, 0x00,
+	/* 0x49: CRC */
+	0x9a, 0xef, 0xef, 0x72,
+	/* 0x4d: Next md offset */
+	0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	/* 0x55: Prev md offset */
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	/* 0x5d: fa_offset */
+	0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	/* 0x65: fa_size */
+	0x0e, 0x00,
+	/* 0x67: fa_crc */
+	0xfb, 0x5e, 0x72, 0x89,
+
+	/* Blockmap table */
+	/* 0x6b: First 10-byte entry */
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+	/* Blockmap md record */
+	/* 0x75: Type */
+	0x01,
+	/* 0x76: Size */
+	0x23, 0x00,
+	/* 0x78: CRC */
+	0x74, 0x45, 0xd3, 0xb9,
+	/* 0x7c: Next md offset */
+	0x00, 0x00, 0x00, 0x00,	0x00, 0x00, 0x00, 0x00,
+	/* 0x84: Prev md offset */
+	0x46, 0x00, 0x00, 0x00,	0x00, 0x00, 0x00, 0x00,
+	/* 0x8c: blockmap offset */
+	0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	/* 0x94: blockmap count */
+	0x01, 0x00, 0x00, 0x00,
+};
+
+static int compatibility_test(const char *mount_dir)
+{
+	static const char *name = "file";
+	int result = TEST_FAILURE;
+	char *backing_dir = NULL;
+	char *filename = NULL;
+	int fd = -1;
+	uint64_t size = 0x0c;
+
+	TEST(backing_dir = create_backing_dir(mount_dir), backing_dir);
+	TEST(filename = concat_file_name(backing_dir, name), filename);
+	TEST(fd = open(filename, O_CREAT | O_WRONLY | O_CLOEXEC, 0777),
+	     fd != -1);
+	TESTEQUAL(write(fd, v1_file, sizeof(v1_file)), sizeof(v1_file));
+	TESTEQUAL(fsetxattr(fd, INCFS_XATTR_SIZE_NAME, &size, sizeof(size), 0),
+		  0);
+	TESTEQUAL(mount_fs(mount_dir, backing_dir, 50), 0);
+	free(filename);
+	TEST(filename = concat_file_name(mount_dir, name), filename);
+	close(fd);
+	TEST(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+	umount(mount_dir);
+	free(backing_dir);
+	free(filename);
+	return result;
+}
+
+static int zero_blocks_written_count(int fd, uint32_t data_blocks_written,
+				     uint32_t hash_blocks_written)
+{
+	int test_result = TEST_FAILURE;
+	uint64_t offset;
+	uint8_t type;
+	uint32_t bw;
+
+	/* Get first md record */
+	TESTEQUAL(pread(fd, &offset, sizeof(offset), 24), sizeof(offset));
+
+	/* Find status md record */
+	for (;;) {
+		TESTNE(offset, 0);
+		TESTEQUAL(pread(fd, &type, sizeof(type), le64_to_cpu(offset)),
+			  sizeof(type));
+		if (type == 4)
+			break;
+		TESTEQUAL(pread(fd, &offset, sizeof(offset),
+				le64_to_cpu(offset) + 7),
+			  sizeof(offset));
+	}
+
+	/* Read blocks_written */
+	offset = le64_to_cpu(offset);
+	TESTEQUAL(pread(fd, &bw, sizeof(bw), offset + 23), sizeof(bw));
+	TESTEQUAL(le32_to_cpu(bw), data_blocks_written);
+	TESTEQUAL(pread(fd, &bw, sizeof(bw), offset + 27), sizeof(bw));
+	TESTEQUAL(le32_to_cpu(bw), hash_blocks_written);
+
+	/* Write out zero */
+	bw = 0;
+	TESTEQUAL(pwrite(fd, &bw, sizeof(bw), offset + 23), sizeof(bw));
+	TESTEQUAL(pwrite(fd, &bw, sizeof(bw), offset + 27), sizeof(bw));
+
+	test_result = TEST_SUCCESS;
+out:
+	return test_result;
+}
+
+static int validate_block_count(const char *mount_dir, const char *backing_dir,
+				struct test_file *file,
+				int total_data_blocks, int filled_data_blocks,
+				int total_hash_blocks, int filled_hash_blocks)
+{
+	char *filename = NULL;
+	char *backing_filename = NULL;
+	int fd = -1;
+	struct incfs_get_block_count_args bca = {};
+	int test_result = TEST_FAILURE;
+	struct incfs_filled_range ranges[128];
+	struct incfs_get_filled_blocks_args fba = {
+		.range_buffer = ptr_to_u64(ranges),
+		.range_buffer_size = sizeof(ranges),
+	};
+	int cmd_fd = -1;
+	struct incfs_permit_fill permit_fill;
+
+	TEST(filename = concat_file_name(mount_dir, file->name), filename);
+	TEST(backing_filename = concat_file_name(backing_dir, file->name),
+	     backing_filename);
+	TEST(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+
+	TESTEQUAL(ioctl(fd, INCFS_IOC_GET_BLOCK_COUNT, &bca), 0);
+	TESTEQUAL(bca.total_data_blocks_out, total_data_blocks);
+	TESTEQUAL(bca.filled_data_blocks_out, filled_data_blocks);
+	TESTEQUAL(bca.total_hash_blocks_out, total_hash_blocks);
+	TESTEQUAL(bca.filled_hash_blocks_out, filled_hash_blocks);
+
+	close(fd);
+	TESTEQUAL(umount(mount_dir), 0);
+	TEST(fd = open(backing_filename, O_RDWR | O_CLOEXEC), fd != -1);
+	TESTEQUAL(zero_blocks_written_count(fd, filled_data_blocks,
+					    filled_hash_blocks),
+		  TEST_SUCCESS);
+	close(fd);
+	fd = -1;
+	TESTEQUAL(mount_fs_opt(mount_dir, backing_dir, "readahead=0", false),
+		  0);
+	TEST(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+
+	TESTEQUAL(ioctl(fd, INCFS_IOC_GET_BLOCK_COUNT, &bca), 0);
+	TESTEQUAL(bca.total_data_blocks_out, total_data_blocks);
+	TESTEQUAL(bca.filled_data_blocks_out, 0);
+	TESTEQUAL(bca.total_hash_blocks_out, total_hash_blocks);
+	TESTEQUAL(bca.filled_hash_blocks_out, 0);
+
+	TEST(cmd_fd = open_commands_file(mount_dir), cmd_fd != -1);
+	permit_fill.file_descriptor = fd;
+	TESTEQUAL(ioctl(cmd_fd, INCFS_IOC_PERMIT_FILL, &permit_fill), 0);
+	do {
+		ioctl(fd, INCFS_IOC_GET_FILLED_BLOCKS, &fba);
+		fba.start_index = fba.index_out + 1;
+	} while (fba.index_out < fba.total_blocks_out);
+
+	TESTEQUAL(ioctl(fd, INCFS_IOC_GET_BLOCK_COUNT, &bca), 0);
+	TESTEQUAL(bca.total_data_blocks_out, total_data_blocks);
+	TESTEQUAL(bca.filled_data_blocks_out, filled_data_blocks);
+	TESTEQUAL(bca.total_hash_blocks_out, total_hash_blocks);
+	TESTEQUAL(bca.filled_hash_blocks_out, filled_hash_blocks);
+
+	test_result = TEST_SUCCESS;
+out:
+	close(cmd_fd);
+	close(fd);
+	free(filename);
+	free(backing_filename);
+	return test_result;
+}
+
+
+
+static int validate_data_block_count(const char *mount_dir,
+				     const char *backing_dir,
+				     struct test_file *file)
+{
+	const int total_data_blocks = 1 + (file->size - 1) /
+						INCFS_DATA_FILE_BLOCK_SIZE;
+	const int filled_data_blocks = (total_data_blocks + 1) / 2;
+
+	int test_result = TEST_FAILURE;
+	char *filename = NULL;
+	char *incomplete_filename = NULL;
+	struct stat stat_buf_incomplete, stat_buf_file;
+	int fd = -1;
+	struct incfs_get_block_count_args bca = {};
+	int i;
+
+	TEST(filename = concat_file_name(mount_dir, file->name), filename);
+	TEST(incomplete_filename = get_incomplete_filename(mount_dir, file->id),
+	     incomplete_filename);
+
+	TESTEQUAL(stat(filename, &stat_buf_file), 0);
+	TESTEQUAL(stat(incomplete_filename, &stat_buf_incomplete), 0);
+	TESTEQUAL(stat_buf_file.st_ino, stat_buf_incomplete.st_ino);
+	TESTEQUAL(stat_buf_file.st_nlink, 3);
+
+	TEST(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+	TESTEQUAL(ioctl(fd, INCFS_IOC_GET_BLOCK_COUNT, &bca), 0);
+	TESTEQUAL(bca.total_data_blocks_out, total_data_blocks);
+	TESTEQUAL(bca.filled_data_blocks_out, 0);
+	TESTEQUAL(bca.total_hash_blocks_out, 0);
+	TESTEQUAL(bca.filled_hash_blocks_out, 0);
+
+	for (i = 0; i < total_data_blocks; i += 2)
+		TESTEQUAL(emit_test_block(mount_dir, file, i), 0);
+
+	TESTEQUAL(ioctl(fd, INCFS_IOC_GET_BLOCK_COUNT, &bca), 0);
+	TESTEQUAL(bca.total_data_blocks_out, total_data_blocks);
+	TESTEQUAL(bca.filled_data_blocks_out, filled_data_blocks);
+	TESTEQUAL(bca.total_hash_blocks_out, 0);
+	TESTEQUAL(bca.filled_hash_blocks_out, 0);
+	close(fd);
+	fd = -1;
+
+	TESTEQUAL(validate_block_count(mount_dir, backing_dir, file,
+				       total_data_blocks, filled_data_blocks,
+				       0, 0),
+		  0);
+
+	for (i = 1; i < total_data_blocks; i += 2)
+		TESTEQUAL(emit_test_block(mount_dir, file, i), 0);
+
+	TESTEQUAL(stat(incomplete_filename, &stat_buf_incomplete), -1);
+	TESTEQUAL(errno, ENOENT);
+
+	test_result = TEST_SUCCESS;
+out:
+	close(fd);
+	free(incomplete_filename);
+	free(filename);
+	return test_result;
+}
+
+static int data_block_count_test(const char *mount_dir)
+{
+	int result = TEST_FAILURE;
+	char *backing_dir;
+	int cmd_fd = -1;
+	int i;
+	struct test_files_set test = get_test_files_set();
+
+	TEST(backing_dir = create_backing_dir(mount_dir), backing_dir);
+	TESTEQUAL(mount_fs_opt(mount_dir, backing_dir, "readahead=0", false),
+		  0);
+
+	for (i = 0; i < test.files_count; ++i) {
+		struct test_file *file = &test.files[i];
+
+		TEST(cmd_fd = open_commands_file(mount_dir), cmd_fd != -1);
+		TESTEQUAL(emit_file(cmd_fd, NULL, file->name, &file->id,
+				    file->size,	NULL),
+			  0);
+		close(cmd_fd);
+		cmd_fd = -1;
+
+		TESTEQUAL(validate_data_block_count(mount_dir, backing_dir,
+						    file),
+			  0);
+	}
+
+	result = TEST_SUCCESS;
+out:
+	close(cmd_fd);
+	umount(mount_dir);
+	free(backing_dir);
+	return result;
+}
+
+static int validate_hash_block_count(const char *mount_dir,
+				     const char *backing_dir,
+				     struct test_file *file)
+{
+	const int digest_size = SHA256_DIGEST_SIZE;
+	const int hash_per_block = INCFS_DATA_FILE_BLOCK_SIZE / digest_size;
+	const int total_data_blocks = 1 + (file->size - 1) /
+					INCFS_DATA_FILE_BLOCK_SIZE;
+
+	int result = TEST_FAILURE;
+	int hash_layer = total_data_blocks;
+	int total_hash_blocks = 0;
+	int filled_hash_blocks;
+	char *filename = NULL;
+	int fd = -1;
+	struct incfs_get_block_count_args bca = {};
+
+	while (hash_layer > 1) {
+		hash_layer = (hash_layer + hash_per_block - 1) / hash_per_block;
+		total_hash_blocks += hash_layer;
+	}
+	filled_hash_blocks = total_hash_blocks > 1 ? 1 : 0;
+
+	TEST(filename = concat_file_name(mount_dir, file->name), filename);
+	TEST(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+
+	TESTEQUAL(ioctl(fd, INCFS_IOC_GET_BLOCK_COUNT, &bca), 0);
+	TESTEQUAL(bca.total_data_blocks_out, total_data_blocks);
+	TESTEQUAL(bca.filled_data_blocks_out, 0);
+	TESTEQUAL(bca.total_hash_blocks_out, total_hash_blocks);
+	TESTEQUAL(bca.filled_hash_blocks_out, 0);
+
+	TESTEQUAL(emit_partial_test_file_hash(mount_dir, file), 0);
+
+	TESTEQUAL(ioctl(fd, INCFS_IOC_GET_BLOCK_COUNT, &bca), 0);
+	TESTEQUAL(bca.total_data_blocks_out, total_data_blocks);
+	TESTEQUAL(bca.filled_data_blocks_out, 0);
+	TESTEQUAL(bca.total_hash_blocks_out, total_hash_blocks);
+	TESTEQUAL(bca.filled_hash_blocks_out, filled_hash_blocks);
+	close(fd);
+	fd = -1;
+
+	if (filled_hash_blocks)
+		TESTEQUAL(validate_block_count(mount_dir, backing_dir, file,
+				       total_data_blocks, 0,
+				       total_hash_blocks, filled_hash_blocks),
+		  0);
+
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+	free(filename);
+	return result;
+}
+
+static int hash_block_count_test(const char *mount_dir)
+{
+	int result = TEST_FAILURE;
+	char *backing_dir;
+	int cmd_fd = -1;
+	int i;
+	struct test_files_set test = get_test_files_set();
+
+	TEST(backing_dir = create_backing_dir(mount_dir), backing_dir);
+	TESTEQUAL(mount_fs_opt(mount_dir, backing_dir, "readahead=0", false),
+		  0);
+
+	for (i = 0; i < test.files_count; i++) {
+		struct test_file *file = &test.files[i];
+
+		TEST(cmd_fd = open_commands_file(mount_dir), cmd_fd != -1);
+		TESTEQUAL(crypto_emit_file(cmd_fd, NULL, file->name, &file->id,
+				     file->size, file->root_hash,
+				     file->sig.add_data),
+			  0);
+		close(cmd_fd);
+		cmd_fd = -1;
+
+		TESTEQUAL(validate_hash_block_count(mount_dir, backing_dir,
+						    &test.files[i]),
+			  0);
+	}
+
+	result = TEST_SUCCESS;
+out:
+	close(cmd_fd);
+	umount(mount_dir);
+	free(backing_dir);
+	return result;
+}
+
+static int is_close(struct timespec *start, int expected_ms)
+{
+	const int allowed_variance = 100;
+	int result = TEST_FAILURE;
+	struct timespec finish;
+	int diff;
+
+	TESTEQUAL(clock_gettime(CLOCK_MONOTONIC, &finish), 0);
+	diff = (finish.tv_sec - start->tv_sec) * 1000 +
+		(finish.tv_nsec - start->tv_nsec) / 1000000;
+
+	TESTCOND(diff >= expected_ms - allowed_variance);
+	TESTCOND(diff <= expected_ms + allowed_variance);
+	result = TEST_SUCCESS;
+out:
+	return result;
+}
+
+static int per_uid_read_timeouts_test(const char *mount_dir)
+{
+	struct test_file file = {
+		.name = "file",
+		.size = 16 * INCFS_DATA_FILE_BLOCK_SIZE
+	};
+
+	int result = TEST_FAILURE;
+	char *backing_dir = NULL;
+	int pid = -1;
+	int cmd_fd = -1;
+	char *filename = NULL;
+	int fd = -1;
+	struct timespec start;
+	char buffer[4096];
+	struct incfs_per_uid_read_timeouts purt_get[1];
+	struct incfs_get_read_timeouts_args grt = {
+		ptr_to_u64(purt_get),
+		sizeof(purt_get)
+	};
+	struct incfs_per_uid_read_timeouts purt_set[] = {
+		{
+			.uid = 0,
+			.min_time_us = 1000000,
+			.min_pending_time_us = 2000000,
+			.max_pending_time_us = 3000000,
+		},
+	};
+	struct incfs_set_read_timeouts_args srt = {
+		ptr_to_u64(purt_set),
+		sizeof(purt_set)
+	};
+	int status;
+
+	TEST(backing_dir = create_backing_dir(mount_dir), backing_dir);
+	TESTEQUAL(mount_fs_opt(mount_dir, backing_dir,
+			       "read_timeout_ms=1000,readahead=0", false), 0);
+
+	TEST(cmd_fd = open_commands_file(mount_dir), cmd_fd != -1);
+	TESTEQUAL(emit_file(cmd_fd, NULL, file.name, &file.id, file.size,
+			    NULL), 0);
+
+	TEST(filename = concat_file_name(mount_dir, file.name), filename);
+	TEST(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+	TESTEQUAL(fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC), 0);
+
+	/* Default mount options read failure is 1000 */
+	TESTEQUAL(clock_gettime(CLOCK_MONOTONIC, &start), 0);
+	TESTEQUAL(pread(fd, buffer, sizeof(buffer), 0), -1);
+	TESTEQUAL(is_close(&start, 1000), 0);
+
+	grt.timeouts_array_size = 0;
+	TESTEQUAL(ioctl(cmd_fd, INCFS_IOC_GET_READ_TIMEOUTS, &grt), 0);
+	TESTEQUAL(grt.timeouts_array_size_out, 0);
+
+	/* Set it to 3000 */
+	TESTEQUAL(ioctl(cmd_fd, INCFS_IOC_SET_READ_TIMEOUTS, &srt), 0);
+	TESTEQUAL(clock_gettime(CLOCK_MONOTONIC, &start), 0);
+	TESTEQUAL(pread(fd, buffer, sizeof(buffer), 0), -1);
+	TESTEQUAL(is_close(&start, 3000), 0);
+	TESTEQUAL(ioctl(cmd_fd, INCFS_IOC_GET_READ_TIMEOUTS, &grt), -1);
+	TESTEQUAL(errno, E2BIG);
+	TESTEQUAL(grt.timeouts_array_size_out, sizeof(purt_get));
+	grt.timeouts_array_size = sizeof(purt_get);
+	TESTEQUAL(ioctl(cmd_fd, INCFS_IOC_GET_READ_TIMEOUTS, &grt), 0);
+	TESTEQUAL(grt.timeouts_array_size_out, sizeof(purt_get));
+	TESTEQUAL(purt_get[0].uid, purt_set[0].uid);
+	TESTEQUAL(purt_get[0].min_time_us, purt_set[0].min_time_us);
+	TESTEQUAL(purt_get[0].min_pending_time_us,
+		  purt_set[0].min_pending_time_us);
+	TESTEQUAL(purt_get[0].max_pending_time_us,
+		  purt_set[0].max_pending_time_us);
+
+	/* Still 1000 in UID 2 */
+	TESTEQUAL(clock_gettime(CLOCK_MONOTONIC, &start), 0);
+	TEST(pid = fork(), pid != -1);
+	if (pid == 0) {
+		TESTEQUAL(setuid(2), 0);
+		TESTEQUAL(pread(fd, buffer, sizeof(buffer), 0), -1);
+		exit(0);
+	}
+	TESTNE(wait(&status), -1);
+	TESTEQUAL(WEXITSTATUS(status), 0);
+	TESTEQUAL(is_close(&start, 1000), 0);
+
+	/* Set it to default */
+	purt_set[0].max_pending_time_us = UINT32_MAX;
+	TESTEQUAL(ioctl(cmd_fd, INCFS_IOC_SET_READ_TIMEOUTS, &srt), 0);
+	TESTEQUAL(clock_gettime(CLOCK_MONOTONIC, &start), 0);
+	TESTEQUAL(pread(fd, buffer, sizeof(buffer), 0), -1);
+	TESTEQUAL(is_close(&start, 1000), 0);
+
+	/* Test min read time */
+	TESTEQUAL(emit_test_block(mount_dir, &file, 0), 0);
+	TESTEQUAL(clock_gettime(CLOCK_MONOTONIC, &start), 0);
+	TESTEQUAL(pread(fd, buffer, sizeof(buffer), 0), sizeof(buffer));
+	TESTEQUAL(is_close(&start, 1000), 0);
+
+	/* Test min pending time */
+	purt_set[0].uid = 2;
+	TESTEQUAL(ioctl(cmd_fd, INCFS_IOC_SET_READ_TIMEOUTS, &srt), 0);
+	TESTEQUAL(clock_gettime(CLOCK_MONOTONIC, &start), 0);
+	TEST(pid = fork(), pid != -1);
+	if (pid == 0) {
+		TESTEQUAL(setuid(2), 0);
+		TESTEQUAL(pread(fd, buffer, sizeof(buffer), sizeof(buffer)),
+			  sizeof(buffer));
+		exit(0);
+	}
+	sleep(1);
+	TESTEQUAL(emit_test_block(mount_dir, &file, 1), 0);
+	TESTNE(wait(&status), -1);
+	TESTEQUAL(WEXITSTATUS(status), 0);
+	TESTEQUAL(is_close(&start, 2000), 0);
+
+	/* Clear timeouts */
+	srt.timeouts_array_size = 0;
+	TESTEQUAL(ioctl(cmd_fd, INCFS_IOC_SET_READ_TIMEOUTS, &srt), 0);
+	grt.timeouts_array_size = 0;
+	TESTEQUAL(ioctl(cmd_fd, INCFS_IOC_GET_READ_TIMEOUTS, &grt), 0);
+	TESTEQUAL(grt.timeouts_array_size_out, 0);
+
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+
+	if (pid == 0)
+		exit(result);
+
+	free(filename);
+	close(cmd_fd);
+	umount(mount_dir);
+	free(backing_dir);
+	return result;
+}
+
+#define DIRS 3
+static int inotify_test(const char *mount_dir)
+{
+	const char *mapped_file_name = "mapped_name";
+	struct test_file file = {
+		.name = "file",
+		.size = 16 * INCFS_DATA_FILE_BLOCK_SIZE
+	};
+
+	int result = TEST_FAILURE;
+	char *backing_dir = NULL, *index_dir = NULL, *incomplete_dir = NULL;
+	char *file_name = NULL;
+	int cmd_fd = -1;
+	int notify_fd = -1;
+	int wds[DIRS];
+	char buffer[DIRS * (sizeof(struct inotify_event) + NAME_MAX + 1)];
+	char *ptr = buffer;
+	struct inotify_event *event;
+	struct inotify_event *events[DIRS] = {};
+	const char *names[DIRS] = {};
+	int res;
+	char id[sizeof(incfs_uuid_t) * 2 + 1];
+	struct incfs_create_mapped_file_args mfa;
+
+	/* File creation triggers inotify events in .index and .incomplete? */
+	TEST(backing_dir = create_backing_dir(mount_dir), backing_dir);
+	TEST(index_dir = concat_file_name(mount_dir, ".index"), index_dir);
+	TEST(incomplete_dir = concat_file_name(mount_dir, ".incomplete"),
+	     incomplete_dir);
+	TESTEQUAL(mount_fs(mount_dir, backing_dir, 50), 0);
+	TEST(cmd_fd = open_commands_file(mount_dir), cmd_fd != -1);
+	TEST(notify_fd = inotify_init1(IN_NONBLOCK | IN_CLOEXEC),
+	     notify_fd != -1);
+	TEST(wds[0] = inotify_add_watch(notify_fd, mount_dir,
+					IN_CREATE | IN_DELETE),
+	     wds[0] != -1);
+	TEST(wds[1] = inotify_add_watch(notify_fd, index_dir,
+					IN_CREATE | IN_DELETE),
+	     wds[1] != -1);
+	TEST(wds[2] = inotify_add_watch(notify_fd, incomplete_dir,
+					IN_CREATE | IN_DELETE),
+	     wds[2] != -1);
+	TESTEQUAL(emit_file(cmd_fd, NULL, file.name, &file.id, file.size,
+			   NULL), 0);
+	TEST(res = read(notify_fd, buffer, sizeof(buffer)), res != -1);
+
+	while (ptr < buffer + res) {
+		int i;
+
+		event = (struct inotify_event *) ptr;
+		TESTCOND(ptr + sizeof(*event) <= buffer + res);
+		for (i = 0; i < DIRS; ++i)
+			if (event->wd == wds[i]) {
+				TESTEQUAL(events[i], NULL);
+				events[i] = event;
+				ptr += sizeof(*event);
+				names[i] = ptr;
+				ptr += events[i]->len;
+				TESTCOND(ptr <= buffer + res);
+				break;
+			}
+		TESTCOND(i < DIRS);
+	}
+
+	TESTNE(events[0], NULL);
+	TESTNE(events[1], NULL);
+	TESTNE(events[2], NULL);
+
+	bin2hex(id, file.id.bytes, sizeof(incfs_uuid_t));
+
+	TESTEQUAL(events[0]->mask, IN_CREATE);
+	TESTEQUAL(events[1]->mask, IN_CREATE);
+	TESTEQUAL(events[2]->mask, IN_CREATE);
+	TESTEQUAL(strcmp(names[0], file.name), 0);
+	TESTEQUAL(strcmp(names[1], id), 0);
+	TESTEQUAL(strcmp(names[2], id), 0);
+
+	/* Creating a mapped file triggers inotify event */
+	mfa = (struct incfs_create_mapped_file_args) {
+		.size = INCFS_DATA_FILE_BLOCK_SIZE,
+		.mode = 0664,
+		.file_name = ptr_to_u64(mapped_file_name),
+		.source_file_id = file.id,
+		.source_offset = INCFS_DATA_FILE_BLOCK_SIZE,
+	};
+
+	TEST(res = ioctl(cmd_fd, INCFS_IOC_CREATE_MAPPED_FILE, &mfa),
+	     res != -1);
+	TEST(res = read(notify_fd, buffer, sizeof(buffer)), res != -1);
+	event = (struct inotify_event *) buffer;
+	TESTEQUAL(event->wd, wds[0]);
+	TESTEQUAL(event->mask, IN_CREATE);
+	TESTEQUAL(strcmp(event->name, mapped_file_name), 0);
+
+	/* File completion triggers inotify event in .incomplete? */
+	TESTEQUAL(emit_test_file_data(mount_dir, &file), 0);
+	TEST(res = read(notify_fd, buffer, sizeof(buffer)), res != -1);
+	event = (struct inotify_event *) buffer;
+	TESTEQUAL(event->wd, wds[2]);
+	TESTEQUAL(event->mask, IN_DELETE);
+	TESTEQUAL(strcmp(event->name, id), 0);
+
+	/* File unlinking triggers inotify event in .index? */
+	TEST(file_name = concat_file_name(mount_dir, file.name), file_name);
+	TESTEQUAL(unlink(file_name), 0);
+	TEST(res = read(notify_fd, buffer, sizeof(buffer)), res != -1);
+	memset(events, 0, sizeof(events));
+	memset(names, 0, sizeof(names));
+	for (ptr = buffer; ptr < buffer + res;) {
+		event = (struct inotify_event *) ptr;
+		int i;
+
+		TESTCOND(ptr + sizeof(*event) <= buffer + res);
+		for (i = 0; i < DIRS; ++i)
+			if (event->wd == wds[i]) {
+				TESTEQUAL(events[i], NULL);
+				events[i] = event;
+				ptr += sizeof(*event);
+				names[i] = ptr;
+				ptr += events[i]->len;
+				TESTCOND(ptr <= buffer + res);
+				break;
+			}
+		TESTCOND(i < DIRS);
+	}
+
+	TESTNE(events[0], NULL);
+	TESTNE(events[1], NULL);
+	TESTEQUAL(events[2], NULL);
+
+	TESTEQUAL(events[0]->mask, IN_DELETE);
+	TESTEQUAL(events[1]->mask, IN_DELETE);
+	TESTEQUAL(strcmp(names[0], file.name), 0);
+	TESTEQUAL(strcmp(names[1], id), 0);
+
+	result = TEST_SUCCESS;
+out:
+	free(file_name);
+	close(notify_fd);
+	close(cmd_fd);
+	umount(mount_dir);
+	free(backing_dir);
+	free(index_dir);
+	free(incomplete_dir);
+	return result;
+}
+
+static EVP_PKEY *create_key(void)
+{
+	EVP_PKEY *pkey = NULL;
+	RSA *rsa = NULL;
+	BIGNUM *bn = NULL;
+
+	pkey = EVP_PKEY_new();
+	if (!pkey)
+		goto fail;
+
+	bn = BN_new();
+	BN_set_word(bn, RSA_F4);
+
+	rsa = RSA_new();
+	if (!rsa)
+		goto fail;
+
+	RSA_generate_key_ex(rsa, 4096, bn, NULL);
+	EVP_PKEY_assign_RSA(pkey, rsa);
+
+	BN_free(bn);
+	return pkey;
+
+fail:
+	BN_free(bn);
+	EVP_PKEY_free(pkey);
+	return NULL;
+}
+
+static X509 *get_cert(EVP_PKEY *key)
+{
+	X509 *x509 = NULL;
+	X509_NAME *name = NULL;
+
+	x509 = X509_new();
+	if (!x509)
+		return NULL;
+
+	ASN1_INTEGER_set(X509_get_serialNumber(x509), 1);
+	X509_gmtime_adj(X509_get_notBefore(x509), 0);
+	X509_gmtime_adj(X509_get_notAfter(x509), 31536000L);
+	X509_set_pubkey(x509, key);
+
+	name = X509_get_subject_name(x509);
+	X509_NAME_add_entry_by_txt(name, "C", MBSTRING_ASC,
+		   (const unsigned char *)"US", -1, -1, 0);
+	X509_NAME_add_entry_by_txt(name, "ST", MBSTRING_ASC,
+		   (const unsigned char *)"CA", -1, -1, 0);
+	X509_NAME_add_entry_by_txt(name, "L", MBSTRING_ASC,
+		   (const unsigned char *)"San Jose", -1, -1, 0);
+	X509_NAME_add_entry_by_txt(name, "O", MBSTRING_ASC,
+		   (const unsigned char *)"Example", -1, -1, 0);
+	X509_NAME_add_entry_by_txt(name, "OU", MBSTRING_ASC,
+		   (const unsigned char *)"Org", -1, -1, 0);
+	X509_NAME_add_entry_by_txt(name, "CN", MBSTRING_ASC,
+		   (const unsigned char *)"www.example.com", -1, -1, 0);
+	X509_set_issuer_name(x509, name);
+
+	if (!X509_sign(x509, key, EVP_sha256()))
+		return NULL;
+
+	return x509;
+}
+
+static int sign(EVP_PKEY *key, X509 *cert, const char *data, size_t len,
+		unsigned char **sig, size_t *sig_len)
+{
+	const int pkcs7_flags = PKCS7_BINARY | PKCS7_NOATTR | PKCS7_PARTIAL |
+			  PKCS7_DETACHED;
+	const EVP_MD *md = EVP_sha256();
+
+	int result = TEST_FAILURE;
+
+	BIO *bio = NULL;
+	PKCS7 *p7 = NULL;
+	unsigned char *bio_buffer;
+
+	TEST(bio = BIO_new_mem_buf(data, len), bio);
+	TEST(p7 = PKCS7_sign(NULL, NULL, NULL, bio, pkcs7_flags), p7);
+	TESTNE(PKCS7_sign_add_signer(p7, cert, key, md, pkcs7_flags), 0);
+	TESTEQUAL(PKCS7_final(p7, bio, pkcs7_flags), 1);
+	TEST(*sig_len = i2d_PKCS7(p7, NULL), *sig_len);
+	TEST(bio_buffer = malloc(*sig_len), bio_buffer);
+	*sig = bio_buffer;
+	TEST(*sig_len = i2d_PKCS7(p7, &bio_buffer), *sig_len);
+	TESTEQUAL(PKCS7_verify(p7, NULL, NULL, bio, NULL,
+			 pkcs7_flags | PKCS7_NOVERIFY | PKCS7_NOSIGS), 1);
+
+	result = TEST_SUCCESS;
+out:
+	PKCS7_free(p7);
+	BIO_free(bio);
+	return result;
+}
+
+static int verity_installed(const char *mount_dir, int cmd_fd, bool *installed)
+{
+	int result = TEST_FAILURE;
+	char *filename = NULL;
+	int fd = -1;
+	struct test_file *file = &get_test_files_set().files[0];
+
+	TESTEQUAL(emit_file(cmd_fd, NULL, file->name, &file->id, file->size,
+			    NULL), 0);
+	TEST(filename = concat_file_name(mount_dir, file->name), filename);
+	TEST(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+	TESTEQUAL(ioctl(fd, FS_IOC_ENABLE_VERITY, NULL), -1);
+	*installed = errno != EOPNOTSUPP;
+
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+	if (filename)
+		remove(filename);
+	free(filename);
+	return result;
+}
+
+static int enable_verity(const char *mount_dir, struct test_file *file,
+			   EVP_PKEY *key, X509 *cert, bool use_signatures)
+{
+	int result = TEST_FAILURE;
+	char *filename = NULL;
+	int fd = -1;
+	struct fsverity_enable_arg fear = {
+		.version = 1,
+		.hash_algorithm = FS_VERITY_HASH_ALG_SHA256,
+		.block_size = INCFS_DATA_FILE_BLOCK_SIZE,
+		.sig_size = 0,
+		.sig_ptr = 0,
+	};
+	struct {
+		__u8 version;           /* must be 1 */
+		__u8 hash_algorithm;    /* Merkle tree hash algorithm */
+		__u8 log_blocksize;     /* log2 of size of data and tree blocks */
+		__u8 salt_size;         /* size of salt in bytes; 0 if none */
+		__le32 sig_size;        /* must be 0 */
+		__le64 data_size;       /* size of file the Merkle tree is built over */
+		__u8 root_hash[64];     /* Merkle tree root hash */
+		__u8 salt[32];          /* salt prepended to each hashed block */
+		__u8 __reserved[144];   /* must be 0's */
+	} __packed fsverity_descriptor = {
+		.version = 1,
+		.hash_algorithm = 1,
+		.log_blocksize = 12,
+		.data_size = file->size,
+	};
+	struct {
+		char magic[8];                  /* must be "FSVerity" */
+		__le16 digest_algorithm;
+		__le16 digest_size;
+		__u8 digest[32];
+	} __packed fsverity_signed_digest =  {
+		.digest_algorithm = 1,
+		.digest_size = 32
+	};
+	unsigned char *sig = NULL;
+	size_t sig_size = 0;
+	uint64_t flags;
+	struct statx statxbuf = {};
+
+	memcpy(fsverity_signed_digest.magic, "FSVerity", 8);
+
+	TEST(filename = concat_file_name(mount_dir, file->name), filename);
+	TESTEQUAL(syscall(__NR_statx, AT_FDCWD, filename, 0, STATX_ALL,
+			  &statxbuf), 0);
+	TESTEQUAL(statxbuf.stx_attributes_mask & STATX_ATTR_VERITY,
+		  STATX_ATTR_VERITY);
+	TESTEQUAL(statxbuf.stx_attributes & STATX_ATTR_VERITY, 0);
+	TEST(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+	TESTEQUAL(ioctl(fd, FS_IOC_GETFLAGS, &flags), 0);
+	TESTEQUAL(flags & FS_VERITY_FL, 0);
+
+	/* First try to enable verity with random digest */
+	if (key) {
+		TESTEQUAL(sign(key, cert, (void *)&fsverity_signed_digest,
+			    sizeof(fsverity_signed_digest), &sig, &sig_size),
+			  0);
+
+		fear.sig_size = sig_size;
+		fear.sig_ptr = ptr_to_u64(sig);
+		TESTEQUAL(ioctl(fd, FS_IOC_ENABLE_VERITY, &fear), -1);
+	}
+
+	/* Now try with correct digest */
+	memcpy(fsverity_descriptor.root_hash, file->root_hash, 32);
+	sha256((char *)&fsverity_descriptor, sizeof(fsverity_descriptor),
+	       (char *)fsverity_signed_digest.digest);
+
+	if (ioctl(fd, FS_IOC_ENABLE_VERITY, NULL) == -1 &&
+	    errno == EOPNOTSUPP) {
+		result = TEST_SUCCESS;
+		goto out;
+	}
+
+	free(sig);
+	sig = NULL;
+
+	if (key)
+		TESTEQUAL(sign(key, cert, (void *)&fsverity_signed_digest,
+			       sizeof(fsverity_signed_digest),
+			       &sig, &sig_size),
+		  0);
+
+	if (use_signatures) {
+		fear.sig_size = sig_size;
+		file->verity_sig_size = sig_size;
+		fear.sig_ptr = ptr_to_u64(sig);
+		file->verity_sig = sig;
+		sig = NULL;
+	} else {
+		fear.sig_size = 0;
+		fear.sig_ptr = 0;
+	}
+	TESTEQUAL(ioctl(fd, FS_IOC_ENABLE_VERITY, &fear), 0);
+
+	result = TEST_SUCCESS;
+out:
+	free(sig);
+	close(fd);
+	free(filename);
+	return result;
+}
+
+static int memzero(const unsigned char *buf, size_t size)
+{
+	size_t i;
+
+	for (i = 0; i < size; ++i)
+		if (buf[i])
+			return -1;
+	return 0;
+}
+
+static int validate_verity(const char *mount_dir, struct test_file *file)
+{
+	int result = TEST_FAILURE;
+	char *filename = concat_file_name(mount_dir, file->name);
+	int fd = -1;
+	uint64_t flags;
+	struct fsverity_digest *digest;
+	struct statx statxbuf = {};
+	struct fsverity_read_metadata_arg frma = {};
+	uint8_t *buf = NULL;
+	struct fsverity_descriptor desc;
+
+	TEST(digest = malloc(sizeof(struct fsverity_digest) +
+			     INCFS_MAX_HASH_SIZE), digest != NULL);
+	TEST(filename = concat_file_name(mount_dir, file->name), filename);
+	TESTEQUAL(syscall(__NR_statx, AT_FDCWD, filename, 0, STATX_ALL,
+			  &statxbuf), 0);
+	TESTEQUAL(statxbuf.stx_attributes & STATX_ATTR_VERITY,
+		  STATX_ATTR_VERITY);
+	TEST(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+	TESTEQUAL(ioctl(fd, FS_IOC_GETFLAGS, &flags), 0);
+	TESTEQUAL(flags & FS_VERITY_FL, FS_VERITY_FL);
+	digest->digest_size = INCFS_MAX_HASH_SIZE;
+	TESTEQUAL(ioctl(fd, FS_IOC_MEASURE_VERITY, digest), 0);
+	TESTEQUAL(digest->digest_algorithm, FS_VERITY_HASH_ALG_SHA256);
+	TESTEQUAL(digest->digest_size, 32);
+
+	if (file->verity_sig) {
+		TEST(buf = malloc(file->verity_sig_size), buf);
+		frma = (struct fsverity_read_metadata_arg) {
+			.metadata_type = FS_VERITY_METADATA_TYPE_SIGNATURE,
+			.length = file->verity_sig_size,
+			.buf_ptr = ptr_to_u64(buf),
+		};
+		TESTEQUAL(ioctl(fd, FS_IOC_READ_VERITY_METADATA, &frma),
+			  file->verity_sig_size);
+		TESTEQUAL(memcmp(buf, file->verity_sig, file->verity_sig_size),
+			  0);
+	} else {
+		frma = (struct fsverity_read_metadata_arg) {
+			.metadata_type = FS_VERITY_METADATA_TYPE_SIGNATURE,
+		};
+		TESTEQUAL(ioctl(fd, FS_IOC_READ_VERITY_METADATA, &frma), -1);
+		TESTEQUAL(errno, ENODATA);
+	}
+
+	frma = (struct fsverity_read_metadata_arg) {
+		.metadata_type = FS_VERITY_METADATA_TYPE_DESCRIPTOR,
+		.length = sizeof(desc),
+		.buf_ptr = ptr_to_u64(&desc),
+	};
+	TESTEQUAL(ioctl(fd, FS_IOC_READ_VERITY_METADATA, &frma),
+		  sizeof(desc));
+	TESTEQUAL(desc.version, 1);
+	TESTEQUAL(desc.hash_algorithm, FS_VERITY_HASH_ALG_SHA256);
+	TESTEQUAL(desc.log_blocksize, ilog2(INCFS_DATA_FILE_BLOCK_SIZE));
+	TESTEQUAL(desc.salt_size, 0);
+	TESTEQUAL(desc.__reserved_0x04, 0);
+	TESTEQUAL(desc.data_size, file->size);
+	TESTEQUAL(memcmp(desc.root_hash, file->root_hash, SHA256_DIGEST_SIZE),
+		  0);
+	TESTEQUAL(memzero(desc.root_hash + SHA256_DIGEST_SIZE,
+			  sizeof(desc.root_hash) - SHA256_DIGEST_SIZE), 0);
+	TESTEQUAL(memzero(desc.salt, sizeof(desc.salt)), 0);
+	TESTEQUAL(memzero(desc.__reserved, sizeof(desc.__reserved)), 0);
+
+	result = TEST_SUCCESS;
+out:
+	free(buf);
+	close(fd);
+	free(filename);
+	free(digest);
+	return result;
+}
+
+static int verity_test_optional_sigs(const char *mount_dir, bool use_signatures)
+{
+	int result = TEST_FAILURE;
+	char *backing_dir = NULL;
+	bool installed;
+	int cmd_fd = -1;
+	int i;
+	struct test_files_set test = get_test_files_set();
+	const int file_num = test.files_count;
+	EVP_PKEY *key = NULL;
+	X509 *cert = NULL;
+	BIO *mem = NULL;
+	long len;
+	void *ptr;
+	FILE *proc_key_fd = NULL;
+	char *line = NULL;
+	size_t read = 0;
+	int key_id = -1;
+
+	TEST(backing_dir = create_backing_dir(mount_dir), backing_dir);
+	TESTEQUAL(mount_fs_opt(mount_dir, backing_dir, "readahead=0", false),
+		  0);
+	TEST(cmd_fd = open_commands_file(mount_dir), cmd_fd != -1);
+	TESTEQUAL(verity_installed(mount_dir, cmd_fd, &installed), 0);
+	if (!installed) {
+		result = TEST_SUCCESS;
+		goto out;
+	}
+	TEST(key = create_key(), key);
+	TEST(cert = get_cert(key), cert);
+
+	TEST(proc_key_fd = fopen("/proc/keys", "r"), proc_key_fd != NULL);
+	while (getline(&line, &read, proc_key_fd) != -1)
+		if (strstr(line, ".fs-verity"))
+			key_id = strtol(line, NULL, 16);
+
+	TEST(mem = BIO_new(BIO_s_mem()), mem != NULL);
+	TESTEQUAL(i2d_X509_bio(mem, cert), 1);
+	TEST(len = BIO_get_mem_data(mem, &ptr), len != 0);
+	TESTCOND(key_id == -1
+		 || syscall(__NR_add_key, "asymmetric", "test:key", ptr, len,
+			    key_id) != -1);
+
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+
+		build_mtree(file);
+		TESTEQUAL(crypto_emit_file(cmd_fd, NULL, file->name, &file->id,
+				     file->size, file->root_hash,
+				     file->sig.add_data), 0);
+
+		TESTEQUAL(load_hash_tree(mount_dir, file), 0);
+		TESTEQUAL(enable_verity(mount_dir, file, key, cert,
+					use_signatures),
+			  0);
+	}
+
+	for (i = 0; i < file_num; i++)
+		TESTEQUAL(validate_verity(mount_dir, &test.files[i]), 0);
+
+	close(cmd_fd);
+	cmd_fd = -1;
+	TESTEQUAL(umount(mount_dir), 0);
+	TESTEQUAL(mount_fs_opt(mount_dir, backing_dir, "readahead=0", false),
+		  0);
+
+	for (i = 0; i < file_num; i++)
+		TESTEQUAL(validate_verity(mount_dir, &test.files[i]), 0);
+
+	result = TEST_SUCCESS;
+out:
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+
+		free(file->mtree);
+		free(file->verity_sig);
+
+		file->mtree = NULL;
+		file->verity_sig = NULL;
+	}
+
+	free(line);
+	BIO_free(mem);
+	X509_free(cert);
+	EVP_PKEY_free(key);
+	fclose(proc_key_fd);
+	close(cmd_fd);
+	umount(mount_dir);
+	free(backing_dir);
+	return result;
+}
+
+static int verity_test(const char *mount_dir)
+{
+	int result = TEST_FAILURE;
+
+	TESTEQUAL(verity_test_optional_sigs(mount_dir, true), TEST_SUCCESS);
+	TESTEQUAL(verity_test_optional_sigs(mount_dir, false), TEST_SUCCESS);
+	result = TEST_SUCCESS;
+out:
+	return result;
+}
+
+static int verity_file_valid(const char *mount_dir, struct test_file *file)
+{
+	int result = TEST_FAILURE;
+	char *filename = NULL;
+	int fd = -1;
+	uint8_t buffer[INCFS_DATA_FILE_BLOCK_SIZE];
+	struct incfs_get_file_sig_args gfsa = {
+		.file_signature = ptr_to_u64(buffer),
+		.file_signature_buf_size = sizeof(buffer),
+	};
+	int i;
+
+	TEST(filename = concat_file_name(mount_dir, file->name), filename);
+	TEST(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+	TESTEQUAL(ioctl(fd, INCFS_IOC_READ_FILE_SIGNATURE, &gfsa), 0);
+	for (i = 0; i < file->size; i += sizeof(buffer))
+		TESTEQUAL(pread(fd, buffer, sizeof(buffer), i),
+			  file->size - i > sizeof(buffer) ?
+				sizeof(buffer) : file->size - i);
+
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+	free(filename);
+	return result;
+}
+
+static int enable_verity_test(const char *mount_dir)
+{
+	int result = TEST_FAILURE;
+	char *backing_dir = NULL;
+	bool installed;
+	int cmd_fd = -1;
+	struct test_files_set test = get_test_files_set();
+	int i;
+
+	TEST(backing_dir = create_backing_dir(mount_dir), backing_dir);
+	TESTEQUAL(mount_fs(mount_dir, backing_dir, 0), 0);
+	TEST(cmd_fd = open_commands_file(mount_dir), cmd_fd != -1);
+	TESTEQUAL(verity_installed(mount_dir, cmd_fd, &installed), 0);
+	if (!installed) {
+		result = TEST_SUCCESS;
+		goto out;
+	}
+	for (i = 0; i < test.files_count; ++i) {
+		struct test_file *file = &test.files[i];
+
+		TESTEQUAL(emit_file(cmd_fd, NULL, file->name, &file->id,
+				     file->size, NULL), 0);
+		TESTEQUAL(emit_test_file_data(mount_dir, file), 0);
+		TESTEQUAL(enable_verity(mount_dir, file, NULL, NULL, false), 0);
+	}
+
+	/* Check files are valid on disk */
+	close(cmd_fd);
+	cmd_fd = -1;
+	TESTEQUAL(umount(mount_dir), 0);
+	TESTEQUAL(mount_fs(mount_dir, backing_dir, 0), 0);
+	for (i = 0; i < test.files_count; ++i)
+		TESTEQUAL(verity_file_valid(mount_dir, &test.files[i]), 0);
+
+	result = TEST_SUCCESS;
+out:
+	close(cmd_fd);
+	umount(mount_dir);
+	free(backing_dir);
+	return result;
+}
+
+static int mmap_test(const char *mount_dir)
+{
+	int result = TEST_FAILURE;
+	char *backing_dir = NULL;
+	int cmd_fd = -1;
+	/*
+	 * File is big enough to have a two layer tree with two hashes in the
+	 * higher level, so we can corrupt the second one
+	 */
+	int shas_per_block = INCFS_DATA_FILE_BLOCK_SIZE / SHA256_DIGEST_SIZE;
+	struct test_file file = {
+		  .name = "file",
+		  .size = INCFS_DATA_FILE_BLOCK_SIZE * shas_per_block * 2,
+	};
+	char *filename = NULL;
+	int fd = -1;
+	char *addr = (void *)-1;
+
+	TEST(backing_dir = create_backing_dir(mount_dir), backing_dir);
+	TESTEQUAL(mount_fs(mount_dir, backing_dir, 0), 0);
+	TEST(cmd_fd = open_commands_file(mount_dir), cmd_fd != -1);
+
+	TESTEQUAL(build_mtree(&file), 0);
+	file.mtree[1].data[INCFS_DATA_FILE_BLOCK_SIZE] ^= 0xff;
+	TESTEQUAL(crypto_emit_file(cmd_fd, NULL, file.name, &file.id,
+			       file.size, file.root_hash,
+			       file.sig.add_data), 0);
+	TESTEQUAL(emit_test_file_data(mount_dir, &file), 0);
+	TESTEQUAL(load_hash_tree(mount_dir, &file), 0);
+	TEST(filename = concat_file_name(mount_dir, file.name), filename);
+	TEST(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+	TEST(addr = mmap(NULL, file.size, PROT_READ, MAP_PRIVATE, fd, 0),
+	     addr != (void *) -1);
+	TESTEQUAL(mlock(addr, INCFS_DATA_FILE_BLOCK_SIZE), 0);
+	TESTEQUAL(munlock(addr, INCFS_DATA_FILE_BLOCK_SIZE), 0);
+	TESTEQUAL(mlock(addr + shas_per_block * INCFS_DATA_FILE_BLOCK_SIZE,
+			INCFS_DATA_FILE_BLOCK_SIZE), -1);
+	TESTEQUAL(mlock(addr + (shas_per_block - 1) *
+			       INCFS_DATA_FILE_BLOCK_SIZE,
+			INCFS_DATA_FILE_BLOCK_SIZE), 0);
+	TESTEQUAL(munlock(addr + (shas_per_block - 1) *
+				 INCFS_DATA_FILE_BLOCK_SIZE,
+			  INCFS_DATA_FILE_BLOCK_SIZE), 0);
+	TESTEQUAL(mlock(addr + (shas_per_block - 1) *
+			       INCFS_DATA_FILE_BLOCK_SIZE,
+			INCFS_DATA_FILE_BLOCK_SIZE * 2), -1);
+	TESTEQUAL(munmap(addr, file.size), 0);
+
+	result = TEST_SUCCESS;
+out:
+	free(file.mtree);
+	close(fd);
+	free(filename);
+	close(cmd_fd);
+	umount(mount_dir);
+	free(backing_dir);
+	return result;
+}
+
+static int truncate_test(const char *mount_dir)
+{
+	int result = TEST_FAILURE;
+	char *backing_dir = NULL;
+	int cmd_fd = -1;
+	struct test_file file = {
+		  .name = "file",
+		  .size = INCFS_DATA_FILE_BLOCK_SIZE,
+	};
+	char *backing_file = NULL;
+	int fd = -1;
+	struct stat st;
+
+	TEST(backing_dir = create_backing_dir(mount_dir), backing_dir);
+	TESTEQUAL(mount_fs(mount_dir, backing_dir, 0), 0);
+	TEST(cmd_fd = open_commands_file(mount_dir), cmd_fd != -1);
+	TESTEQUAL(emit_file(cmd_fd, NULL, file.name, &file.id, file.size, NULL),
+		  0);
+	TEST(backing_file = concat_file_name(backing_dir, file.name),
+	     backing_file);
+	TEST(fd = open(backing_file, O_RDWR | O_CLOEXEC), fd != -1);
+	TESTEQUAL(stat(backing_file, &st), 0);
+	TESTCOND(st.st_blocks < 128);
+	TESTEQUAL(fallocate(fd, FALLOC_FL_KEEP_SIZE, 0, 1 << 24), 0);
+	TESTEQUAL(stat(backing_file, &st), 0);
+	TESTCOND(st.st_blocks > 32768);
+	TESTEQUAL(emit_test_file_data(mount_dir, &file), 0);
+	TESTEQUAL(stat(backing_file, &st), 0);
+	TESTCOND(st.st_blocks < 128);
+
+	result = TEST_SUCCESS;
+out:
+	close(fd);
+	free(backing_file);
+	close(cmd_fd);
+	umount(mount_dir);
+	free(backing_dir);
+	return result;
+}
+
+static int stat_file_test(const char *mount_dir, int cmd_fd,
+			  struct test_file *file)
+{
+	int result = TEST_FAILURE;
+	struct stat st;
+	char *filename = NULL;
+
+	TESTEQUAL(emit_file(cmd_fd, NULL, file->name, &file->id,
+				     file->size, NULL), 0);
+	TEST(filename = concat_file_name(mount_dir, file->name), filename);
+	TESTEQUAL(stat(filename, &st), 0);
+	TESTCOND(st.st_blocks < 32);
+	TESTEQUAL(emit_test_file_data(mount_dir, file), 0);
+	TESTEQUAL(stat(filename, &st), 0);
+	TESTCOND(st.st_blocks > file->size / 512);
+
+	result = TEST_SUCCESS;
+out:
+	free(filename);
+	return result;
+}
+
+static int stat_test(const char *mount_dir)
+{
+	int result = TEST_FAILURE;
+	char *backing_dir = NULL;
+	int cmd_fd = -1;
+	int i;
+	struct test_files_set test = get_test_files_set();
+	const int file_num = test.files_count;
+
+	TEST(backing_dir = create_backing_dir(mount_dir), backing_dir);
+	TESTEQUAL(mount_fs(mount_dir, backing_dir, 0), 0);
+	TEST(cmd_fd = open_commands_file(mount_dir), cmd_fd != -1);
+
+	for (i = 0; i < file_num; i++) {
+		struct test_file *file = &test.files[i];
+
+		TESTEQUAL(stat_file_test(mount_dir, cmd_fd, file), 0);
+	}
+
+	result = TEST_SUCCESS;
+out:
+	close(cmd_fd);
+	umount(mount_dir);
+	free(backing_dir);
+	return result;
+}
+
+#define SYSFS_DIR "/sys/fs/incremental-fs/instances/test_node/"
+
+static int sysfs_test_value(const char *name, uint64_t value)
+{
+	int result = TEST_FAILURE;
+	char *filename = NULL;
+	FILE *file = NULL;
+	uint64_t res;
+
+	TEST(filename = concat_file_name(SYSFS_DIR, name), filename);
+	TEST(file = fopen(filename, "re"), file);
+	TESTEQUAL(fscanf(file, "%lu", &res), 1);
+	TESTEQUAL(res, value);
+
+	result = TEST_SUCCESS;
+out:
+	if (file)
+		fclose(file);
+	free(filename);
+	return result;
+}
+
+static int sysfs_test_value_range(const char *name, uint64_t low, uint64_t high)
+{
+	int result = TEST_FAILURE;
+	char *filename = NULL;
+	FILE *file = NULL;
+	uint64_t res;
+
+	TEST(filename = concat_file_name(SYSFS_DIR, name), filename);
+	TEST(file = fopen(filename, "re"), file);
+	TESTEQUAL(fscanf(file, "%lu", &res), 1);
+	TESTCOND(res >= low && res <= high);
+
+	result = TEST_SUCCESS;
+out:
+	if (file)
+		fclose(file);
+	free(filename);
+	return result;
+}
+
+static int ioctl_test_last_error(int cmd_fd, const incfs_uuid_t *file_id,
+				 int page, int error)
+{
+	int result = TEST_FAILURE;
+	struct incfs_get_last_read_error_args glre;
+
+	TESTEQUAL(ioctl(cmd_fd, INCFS_IOC_GET_LAST_READ_ERROR, &glre), 0);
+	if (file_id)
+		TESTEQUAL(memcmp(&glre.file_id_out, file_id, sizeof(*file_id)),
+			  0);
+
+	TESTEQUAL(glre.page_out, page);
+	TESTEQUAL(glre.errno_out, error);
+	result = TEST_SUCCESS;
+out:
+	return result;
+}
+
+static int sysfs_test(const char *mount_dir)
+{
+	int result = TEST_FAILURE;
+	char *backing_dir = NULL;
+	int cmd_fd = -1;
+	struct test_file file = {
+		  .name = "file",
+		  .size = INCFS_DATA_FILE_BLOCK_SIZE,
+	};
+	char *filename = NULL;
+	int fd = -1;
+	int pid = -1;
+	char buffer[32];
+	char *null_buf = NULL;
+	int status;
+	struct incfs_per_uid_read_timeouts purt_set[] = {
+		{
+			.uid = 0,
+			.min_time_us = 1000000,
+			.min_pending_time_us = 1000000,
+			.max_pending_time_us = 2000000,
+		},
+	};
+	struct incfs_set_read_timeouts_args srt = {
+		ptr_to_u64(purt_set),
+		sizeof(purt_set)
+	};
+
+	TEST(backing_dir = create_backing_dir(mount_dir), backing_dir);
+	TESTEQUAL(mount_fs_opt(mount_dir, backing_dir, "sysfs_name=test_node",
+			       false),
+		  0);
+	TEST(cmd_fd = open_commands_file(mount_dir), cmd_fd != -1);
+	TESTEQUAL(build_mtree(&file), 0);
+	file.root_hash[0] ^= 0xff;
+	TESTEQUAL(crypto_emit_file(cmd_fd, NULL, file.name, &file.id, file.size,
+				   file.root_hash, file.sig.add_data),
+		  0);
+	TEST(filename = concat_file_name(mount_dir, file.name), filename);
+	TEST(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+	TESTEQUAL(ioctl_test_last_error(cmd_fd, NULL, 0, 0), 0);
+	TESTEQUAL(sysfs_test_value("reads_failed_timed_out", 0), 0);
+	TESTEQUAL(read(fd, null_buf, 1), -1);
+	TESTEQUAL(ioctl_test_last_error(cmd_fd, &file.id, 0, -ETIME), 0);
+	TESTEQUAL(sysfs_test_value("reads_failed_timed_out", 2), 0);
+
+	TESTEQUAL(emit_test_file_data(mount_dir, &file), 0);
+	TESTEQUAL(sysfs_test_value("reads_failed_hash_verification", 0), 0);
+	TESTEQUAL(read(fd, null_buf, 1), -1);
+	TESTEQUAL(sysfs_test_value("reads_failed_hash_verification", 1), 0);
+	TESTSYSCALL(close(fd));
+	fd = -1;
+
+	TESTSYSCALL(unlink(filename));
+	TESTEQUAL(mount_fs_opt(mount_dir, backing_dir,
+			       "read_timeout_ms=10000,sysfs_name=test_node",
+			       true),
+		  0);
+	TESTEQUAL(emit_file(cmd_fd, NULL, file.name, &file.id, file.size, NULL),
+		  0);
+	TEST(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+	TESTSYSCALL(fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC));
+	TEST(pid = fork(), pid != -1);
+	if (pid == 0) {
+		TESTEQUAL(read(fd, buffer, sizeof(buffer)), sizeof(buffer));
+		exit(0);
+	}
+	sleep(1);
+	TESTEQUAL(sysfs_test_value("reads_delayed_pending", 0), 0);
+	TESTEQUAL(emit_test_file_data(mount_dir, &file), 0);
+	TESTNE(wait(&status), -1);
+	TESTEQUAL(status, 0);
+	TESTEQUAL(sysfs_test_value("reads_delayed_pending", 1), 0);
+	/* Allow +/- 10% */
+	TESTEQUAL(sysfs_test_value_range("reads_delayed_pending_us", 900000, 1100000),
+		  0);
+
+	TESTSYSCALL(close(fd));
+	fd = -1;
+
+	TESTSYSCALL(unlink(filename));
+	TESTEQUAL(ioctl(cmd_fd, INCFS_IOC_SET_READ_TIMEOUTS, &srt), 0);
+	TESTEQUAL(emit_file(cmd_fd, NULL, file.name, &file.id, file.size, NULL),
+		  0);
+	TEST(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+	TESTEQUAL(sysfs_test_value("reads_delayed_min", 0), 0);
+	TESTEQUAL(emit_test_file_data(mount_dir, &file), 0);
+	TESTEQUAL(read(fd, buffer, sizeof(buffer)), sizeof(buffer));
+	TESTEQUAL(sysfs_test_value("reads_delayed_min", 1), 0);
+	/* This should be exact */
+	TESTEQUAL(sysfs_test_value("reads_delayed_min_us", 1000000), 0);
+
+	TESTSYSCALL(close(fd));
+	fd = -1;
+
+	TESTSYSCALL(unlink(filename));
+	TESTEQUAL(emit_file(cmd_fd, NULL, file.name, &file.id, file.size, NULL),
+		  0);
+	TEST(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+	TESTSYSCALL(fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC));
+	TEST(pid = fork(), pid != -1);
+	if (pid == 0) {
+		TESTEQUAL(read(fd, buffer, sizeof(buffer)), sizeof(buffer));
+		exit(0);
+	}
+	usleep(500000);
+	TESTEQUAL(sysfs_test_value("reads_delayed_pending", 1), 0);
+	TESTEQUAL(sysfs_test_value("reads_delayed_min", 1), 0);
+	TESTEQUAL(emit_test_file_data(mount_dir, &file), 0);
+	TESTNE(wait(&status), -1);
+	TESTEQUAL(status, 0);
+	TESTEQUAL(sysfs_test_value("reads_delayed_pending", 2), 0);
+	TESTEQUAL(sysfs_test_value("reads_delayed_min", 2), 0);
+	/* Exact 1000000 plus 500000 +/- 10% */
+	TESTEQUAL(sysfs_test_value_range("reads_delayed_min_us", 1450000, 1550000), 0);
+	/* Allow +/- 10% */
+	TESTEQUAL(sysfs_test_value_range("reads_delayed_pending_us", 1350000, 1650000),
+		  0);
+
+	result = TEST_SUCCESS;
+out:
+	if (pid == 0)
+		exit(result);
+	free(file.mtree);
+	free(filename);
+	close(fd);
+	close(cmd_fd);
+	umount(mount_dir);
+	free(backing_dir);
+	return result;
+}
+
+static int sysfs_test_directories(bool one_present, bool two_present)
+{
+	int result = TEST_FAILURE;
+	struct stat st;
+
+	TESTEQUAL(stat("/sys/fs/incremental-fs/instances/1", &st),
+		  one_present ? 0 : -1);
+	if (one_present)
+		TESTCOND(S_ISDIR(st.st_mode));
+	else
+		TESTEQUAL(errno, ENOENT);
+	TESTEQUAL(stat("/sys/fs/incremental-fs/instances/2", &st),
+		  two_present ? 0 : -1);
+	if (two_present)
+		TESTCOND(S_ISDIR(st.st_mode));
+	else
+		TESTEQUAL(errno, ENOENT);
+
+	result = TEST_SUCCESS;
+out:
+	return result;
+}
+
+static int sysfs_rename_test(const char *mount_dir)
+{
+	int result = TEST_FAILURE;
+	char *backing_dir = NULL;
+	char *mount_dir2 = NULL;
+	int fd = -1;
+	char c;
+
+	/* Mount with no node */
+	TEST(backing_dir = create_backing_dir(mount_dir), backing_dir);
+	TESTEQUAL(mount_fs(mount_dir, backing_dir, 0), 0);
+	TESTEQUAL(sysfs_test_directories(false, false), 0);
+
+	/* Remount with node */
+	TESTEQUAL(mount_fs_opt(mount_dir, backing_dir, "sysfs_name=1", true),
+		  0);
+	TESTEQUAL(sysfs_test_directories(true, false), 0);
+	TEST(fd = open("/sys/fs/incremental-fs/instances/1/reads_delayed_min",
+		       O_RDONLY | O_CLOEXEC), fd != -1);
+	TESTEQUAL(pread(fd, &c, 1, 0), 1);
+	TESTEQUAL(c, '0');
+	TESTEQUAL(pread(fd, &c, 1, 0), 1);
+	TESTEQUAL(c, '0');
+
+	/* Rename node */
+	TESTEQUAL(mount_fs_opt(mount_dir, backing_dir, "sysfs_name=2", true),
+		  0);
+	TESTEQUAL(sysfs_test_directories(false, true), 0);
+	TESTEQUAL(pread(fd, &c, 1, 0), -1);
+
+	/* Try mounting another instance with same node name */
+	TEST(mount_dir2 = concat_file_name(backing_dir, "incfs-mount-dir2"),
+	     mount_dir2);
+	rmdir(mount_dir2); /* In case we crashed before */
+	TESTSYSCALL(mkdir(mount_dir2, 0777));
+	TEST(mount_fs_opt(mount_dir2, backing_dir, "sysfs_name=2", false),
+		  -1);
+
+	/* Try mounting another instance then remounting with existing name */
+	TESTEQUAL(mount_fs(mount_dir2, backing_dir, 0), 0);
+	TESTEQUAL(mount_fs_opt(mount_dir2, backing_dir, "sysfs_name=2", true),
+		  -1);
+
+	/* Remount with no node */
+	TESTEQUAL(mount_fs_opt(mount_dir, backing_dir, "", true),
+		  0);
+	TESTEQUAL(sysfs_test_directories(false, false), 0);
+
+	result = TEST_SUCCESS;
+out:
+	umount(mount_dir2);
+	rmdir(mount_dir2);
+	free(mount_dir2);
+	close(fd);
+	umount(mount_dir);
+	free(backing_dir);
+	return result;
+}
+
+static int stacked_mount_test(const char *mount_dir)
+{
+	int result = TEST_FAILURE;
+	char *backing_dir = NULL;
+
+	/* Mount with no node */
+	TEST(backing_dir = create_backing_dir(mount_dir), backing_dir);
+	TESTEQUAL(mount_fs(mount_dir, backing_dir, 0), 0);
+	/* Try mounting another instance with same name */
+	TESTEQUAL(mount_fs(mount_dir, backing_dir, 0), 0);
+	/* Try unmounting the first instance */
+	TESTEQUAL(umount_fs(mount_dir), 0);
+	/* Try unmounting the second instance */
+	TESTEQUAL(umount_fs(mount_dir), 0);
+	result = TEST_SUCCESS;
+out:
+	/* Cleanup */
+	rmdir(mount_dir);
+	rmdir(backing_dir);
+	free(backing_dir);
+	return result;
+}
+
+static char *setup_mount_dir()
+{
+	struct stat st;
+	char *current_dir = getcwd(NULL, 0);
+	char *mount_dir = concat_file_name(current_dir, "incfs-mount-dir");
+
+	free(current_dir);
+	if (stat(mount_dir, &st) == 0) {
+		if (S_ISDIR(st.st_mode))
+			return mount_dir;
+
+		ksft_print_msg("%s is a file, not a dir.\n", mount_dir);
+		return NULL;
+	}
+
+	if (mkdir(mount_dir, 0777)) {
+		print_error("Can't create mount dir.");
+		return NULL;
+	}
+
+	return mount_dir;
+}
+
+int parse_options(int argc, char *const *argv)
+{
+	signed char c;
+
+	while ((c = getopt(argc, argv, "f:t:v")) != -1)
+		switch (c) {
+		case 'f':
+			options.file = strtol(optarg, NULL, 10);
+			break;
+
+		case 't':
+			options.test = strtol(optarg, NULL, 10);
+			break;
+
+		case 'v':
+			options.verbose = true;
+			break;
+
+		default:
+			return -EINVAL;
+		}
+
+	return 0;
+}
+
+struct test_case {
+	int (*pfunc)(const char *dir);
+	const char *name;
+};
+
+void run_one_test(const char *mount_dir, struct test_case *test_case)
+{
+	int ret;
+
+	ksft_print_msg("Running %s\n", test_case->name);
+	ret = test_case->pfunc(mount_dir);
+
+	if (ret == TEST_SUCCESS)
+		ksft_test_result_pass("%s\n", test_case->name);
+	else if (ret == TEST_SKIP)
+		ksft_test_result_skip("%s\n", test_case->name);
+	else
+		ksft_test_result_fail("%s\n", test_case->name);
+}
+
+int main(int argc, char *argv[])
+{
+	char *mount_dir = NULL;
+	int i;
+	int fd, count;
+
+	if (parse_options(argc, argv))
+		ksft_exit_fail_msg("Bad options\n");
+
+	// Seed randomness pool for testing on QEMU
+	// NOTE - this abuses the concept of randomness - do *not* ever do this
+	// on a machine for production use - the device will think it has good
+	// randomness when it does not.
+	fd = open("/dev/urandom", O_WRONLY | O_CLOEXEC);
+	count = 4096;
+	for (int i = 0; i < 128; ++i)
+		ioctl(fd, RNDADDTOENTCNT, &count);
+	close(fd);
+
+	ksft_print_header();
+
+	if (geteuid() != 0)
+		ksft_print_msg("Not a root, might fail to mount.\n");
+
+	mount_dir = setup_mount_dir();
+	if (mount_dir == NULL)
+		ksft_exit_fail_msg("Can't create a mount dir\n");
+
+#define MAKE_TEST(test)                                                        \
+	{                                                                      \
+		test, #test                                                    \
+	}
+	struct test_case cases[] = {
+		MAKE_TEST(basic_file_ops_test),
+		MAKE_TEST(cant_touch_index_test),
+		MAKE_TEST(dynamic_files_and_data_test),
+		MAKE_TEST(concurrent_reads_and_writes_test),
+		MAKE_TEST(attribute_test),
+		MAKE_TEST(work_after_remount_test),
+		MAKE_TEST(child_procs_waiting_for_data_test),
+		MAKE_TEST(multiple_providers_test),
+		MAKE_TEST(hash_tree_test),
+		MAKE_TEST(read_log_test),
+		MAKE_TEST(get_blocks_test),
+		MAKE_TEST(get_hash_blocks_test),
+		MAKE_TEST(large_file_test),
+		MAKE_TEST(mapped_file_test),
+		MAKE_TEST(compatibility_test),
+		MAKE_TEST(data_block_count_test),
+		MAKE_TEST(hash_block_count_test),
+		MAKE_TEST(per_uid_read_timeouts_test),
+		MAKE_TEST(inotify_test),
+		MAKE_TEST(verity_test),
+		MAKE_TEST(enable_verity_test),
+		MAKE_TEST(mmap_test),
+		MAKE_TEST(truncate_test),
+		MAKE_TEST(stat_test),
+		MAKE_TEST(sysfs_test),
+		MAKE_TEST(sysfs_rename_test),
+		MAKE_TEST(stacked_mount_test),
+	};
+#undef MAKE_TEST
+
+	if (options.test) {
+		if (options.test <= 0 || options.test > ARRAY_SIZE(cases))
+			ksft_exit_fail_msg("Invalid test\n");
+
+		ksft_set_plan(1);
+		run_one_test(mount_dir, &cases[options.test - 1]);
+	} else {
+		ksft_set_plan(ARRAY_SIZE(cases));
+		for (i = 0; i < ARRAY_SIZE(cases); ++i)
+			run_one_test(mount_dir, &cases[i]);
+	}
+
+	umount2(mount_dir, MNT_FORCE);
+	rmdir(mount_dir);
+	return !ksft_get_fail_cnt() ? ksft_exit_pass() : ksft_exit_fail();
+}
diff --git a/tools/testing/selftests/filesystems/incfs/utils.c b/tools/testing/selftests/filesystems/incfs/utils.c
new file mode 100644
index 0000000..d7deb53
--- /dev/null
+++ b/tools/testing/selftests/filesystems/incfs/utils.c
@@ -0,0 +1,391 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2018 Google LLC
+ */
+#include <dirent.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <poll.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/ioctl.h>
+#include <sys/mount.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include <openssl/sha.h>
+#include <openssl/md5.h>
+
+#include "utils.h"
+
+#ifndef __S_IFREG
+#define __S_IFREG S_IFREG
+#endif
+
+unsigned int rnd(unsigned int max, unsigned int *seed)
+{
+	return rand_r(seed) * ((uint64_t)max + 1) / RAND_MAX;
+}
+
+int remove_dir(const char *dir)
+{
+	int err = rmdir(dir);
+
+	if (err && errno == ENOTEMPTY) {
+		err = delete_dir_tree(dir);
+		if (err)
+			return err;
+		return 0;
+	}
+
+	if (err && errno != ENOENT)
+		return -errno;
+
+	return 0;
+}
+
+int drop_caches(void)
+{
+	int drop_caches =
+		open("/proc/sys/vm/drop_caches", O_WRONLY | O_CLOEXEC);
+	int i;
+
+	if (drop_caches == -1)
+		return -errno;
+	i = write(drop_caches, "3", 1);
+	close(drop_caches);
+
+	if (i != 1)
+		return -errno;
+
+	return 0;
+}
+
+int mount_fs(const char *mount_dir, const char *backing_dir,
+	     int read_timeout_ms)
+{
+	static const char fs_name[] = INCFS_NAME;
+	char mount_options[512];
+	int result;
+
+	snprintf(mount_options, ARRAY_SIZE(mount_options),
+		 "read_timeout_ms=%u",
+		  read_timeout_ms);
+
+	result = mount(backing_dir, mount_dir, fs_name, 0, mount_options);
+	if (result != 0)
+		perror("Error mounting fs.");
+	return result;
+}
+
+int umount_fs(const char *mount_dir)
+{
+	int result;
+
+	result = umount(mount_dir);
+	if (result != 0)
+		perror("Error unmounting fs.");
+	return result;
+}
+
+int mount_fs_opt(const char *mount_dir, const char *backing_dir,
+		 const char *opt, bool remount)
+{
+	static const char fs_name[] = INCFS_NAME;
+	int result;
+
+	result = mount(backing_dir, mount_dir, fs_name,
+		       remount ? MS_REMOUNT : 0, opt);
+	if (result != 0)
+		perror("Error mounting fs.");
+	return result;
+}
+
+struct hash_section {
+	uint32_t algorithm;
+	uint8_t log2_blocksize;
+	uint32_t salt_size;
+	/* no salt */
+	uint32_t hash_size;
+	uint8_t hash[SHA256_DIGEST_SIZE];
+} __packed;
+
+struct signature_blob {
+	uint32_t version;
+	uint32_t hash_section_size;
+	struct hash_section hash_section;
+	uint32_t signing_section_size;
+	uint8_t signing_section[];
+} __packed;
+
+size_t format_signature(void **buf, const char *root_hash, const char *add_data)
+{
+	size_t size = sizeof(struct signature_blob) + strlen(add_data) + 1;
+	struct signature_blob *sb = malloc(size);
+
+	if (!sb)
+		return 0;
+
+	*sb = (struct signature_blob){
+		.version = INCFS_SIGNATURE_VERSION,
+		.hash_section_size = sizeof(struct hash_section),
+		.hash_section =
+			(struct hash_section){
+				.algorithm = INCFS_HASH_TREE_SHA256,
+				.log2_blocksize = 12,
+				.salt_size = 0,
+				.hash_size = SHA256_DIGEST_SIZE,
+			},
+		.signing_section_size = strlen(add_data) + 1,
+	};
+
+	memcpy(sb->hash_section.hash, root_hash, SHA256_DIGEST_SIZE);
+	memcpy((char *)sb->signing_section, add_data, strlen(add_data) + 1);
+	*buf = sb;
+	return size;
+}
+
+int crypto_emit_file(int fd, const char *dir, const char *filename,
+		     incfs_uuid_t *id_out, size_t size, const char *root_hash,
+		     const char *add_data)
+{
+	int mode = __S_IFREG | 0555;
+	void *signature;
+	int error = 0;
+
+	struct incfs_new_file_args args = {
+			.size = size,
+			.mode = mode,
+			.file_name = ptr_to_u64(filename),
+			.directory_path = ptr_to_u64(dir),
+			.file_attr = 0,
+			.file_attr_len = 0
+	};
+
+	args.signature_size = format_signature(&signature, root_hash, add_data);
+	args.signature_info = ptr_to_u64(signature);
+
+	md5(filename, strlen(filename), (char *)args.file_id.bytes);
+
+	if (ioctl(fd, INCFS_IOC_CREATE_FILE, &args) != 0) {
+		error = -errno;
+		goto out;
+	}
+
+	*id_out = args.file_id;
+
+out:
+	free(signature);
+	return error;
+}
+
+int emit_file(int fd, const char *dir, const char *filename,
+	      incfs_uuid_t *id_out, size_t size, const char *attr)
+{
+	int mode = __S_IFREG | 0555;
+	struct incfs_new_file_args args = { .size = size,
+					    .mode = mode,
+					    .file_name = ptr_to_u64(filename),
+					    .directory_path = ptr_to_u64(dir),
+					    .signature_info = ptr_to_u64(NULL),
+					    .signature_size = 0,
+					    .file_attr = ptr_to_u64(attr),
+					    .file_attr_len =
+						    attr ? strlen(attr) : 0 };
+
+	md5(filename, strlen(filename), (char *)args.file_id.bytes);
+
+	if (ioctl(fd, INCFS_IOC_CREATE_FILE, &args) != 0)
+		return -errno;
+
+	*id_out = args.file_id;
+	return 0;
+}
+
+int get_file_bmap(int cmd_fd, int ino, unsigned char *buf, int buf_size)
+{
+	return 0;
+}
+
+int get_file_signature(int fd, unsigned char *buf, int buf_size)
+{
+	struct incfs_get_file_sig_args args = {
+		.file_signature = ptr_to_u64(buf),
+		.file_signature_buf_size = buf_size
+	};
+
+	if (ioctl(fd, INCFS_IOC_READ_FILE_SIGNATURE, &args) == 0)
+		return args.file_signature_len_out;
+	return -errno;
+}
+
+loff_t get_file_size(const char *name)
+{
+	struct stat st;
+
+	if (stat(name, &st) == 0)
+		return st.st_size;
+	return -ENOENT;
+}
+
+int open_commands_file(const char *mount_dir)
+{
+	char cmd_file[255];
+	int cmd_fd;
+
+	snprintf(cmd_file, ARRAY_SIZE(cmd_file),
+			"%s/%s", mount_dir, INCFS_PENDING_READS_FILENAME);
+	cmd_fd = open(cmd_file, O_RDONLY | O_CLOEXEC);
+
+	if (cmd_fd < 0)
+		perror("Can't open commands file");
+	return cmd_fd;
+}
+
+int open_log_file(const char *mount_dir)
+{
+	char file[255];
+	int fd;
+
+	snprintf(file, ARRAY_SIZE(file), "%s/.log", mount_dir);
+	fd = open(file, O_RDWR | O_CLOEXEC);
+	if (fd < 0)
+		perror("Can't open log file");
+	return fd;
+}
+
+int open_blocks_written_file(const char *mount_dir)
+{
+	char file[255];
+	int fd;
+
+	snprintf(file, ARRAY_SIZE(file),
+			"%s/%s", mount_dir, INCFS_BLOCKS_WRITTEN_FILENAME);
+	fd = open(file, O_RDONLY | O_CLOEXEC);
+
+	if (fd < 0)
+		perror("Can't open blocks_written file");
+	return fd;
+}
+
+int wait_for_pending_reads(int fd, int timeout_ms,
+	struct incfs_pending_read_info *prs, int prs_count)
+{
+	ssize_t read_res = 0;
+
+	if (timeout_ms > 0) {
+		int poll_res = 0;
+		struct pollfd pollfd = {
+			.fd = fd,
+			.events = POLLIN
+		};
+
+		poll_res = poll(&pollfd, 1, timeout_ms);
+		if (poll_res < 0)
+			return -errno;
+		if (poll_res == 0)
+			return 0;
+		if (!(pollfd.revents | POLLIN))
+			return 0;
+	}
+
+	read_res = read(fd, prs, prs_count * sizeof(*prs));
+	if (read_res < 0)
+		return -errno;
+
+	return read_res / sizeof(*prs);
+}
+
+int wait_for_pending_reads2(int fd, int timeout_ms,
+	struct incfs_pending_read_info2 *prs, int prs_count)
+{
+	ssize_t read_res = 0;
+
+	if (timeout_ms > 0) {
+		int poll_res = 0;
+		struct pollfd pollfd = {
+			.fd = fd,
+			.events = POLLIN
+		};
+
+		poll_res = poll(&pollfd, 1, timeout_ms);
+		if (poll_res < 0)
+			return -errno;
+		if (poll_res == 0)
+			return 0;
+		if (!(pollfd.revents | POLLIN))
+			return 0;
+	}
+
+	read_res = read(fd, prs, prs_count * sizeof(*prs));
+	if (read_res < 0)
+		return -errno;
+
+	return read_res / sizeof(*prs);
+}
+
+char *concat_file_name(const char *dir, const char *file)
+{
+	char full_name[FILENAME_MAX] = "";
+
+	if (snprintf(full_name, ARRAY_SIZE(full_name), "%s/%s", dir, file) < 0)
+		return NULL;
+	return strdup(full_name);
+}
+
+int delete_dir_tree(const char *dir_path)
+{
+	DIR *dir = NULL;
+	struct dirent *dp;
+	int result = 0;
+
+	dir = opendir(dir_path);
+	if (!dir) {
+		result = -errno;
+		goto out;
+	}
+
+	while ((dp = readdir(dir))) {
+		char *full_path;
+
+		if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, ".."))
+			continue;
+
+		full_path = concat_file_name(dir_path, dp->d_name);
+		if (dp->d_type == DT_DIR)
+			result = delete_dir_tree(full_path);
+		else
+			result = unlink(full_path);
+		free(full_path);
+		if (result)
+			goto out;
+	}
+
+out:
+	if (dir)
+		closedir(dir);
+	if (!result)
+		rmdir(dir_path);
+	return result;
+}
+
+void sha256(const char *data, size_t dsize, char *hash)
+{
+	SHA256_CTX ctx;
+
+	SHA256_Init(&ctx);
+	SHA256_Update(&ctx, data, dsize);
+	SHA256_Final((unsigned char *)hash, &ctx);
+}
+
+void md5(const char *data, size_t dsize, char *hash)
+{
+	MD5_CTX ctx;
+
+	MD5_Init(&ctx);
+	MD5_Update(&ctx, data, dsize);
+	MD5_Final((unsigned char *)hash, &ctx);
+}
diff --git a/tools/testing/selftests/filesystems/incfs/utils.h b/tools/testing/selftests/filesystems/incfs/utils.h
new file mode 100644
index 0000000..17a1ac5
--- /dev/null
+++ b/tools/testing/selftests/filesystems/incfs/utils.h
@@ -0,0 +1,71 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright 2019 Google LLC
+ */
+#include <stdbool.h>
+#include <sys/stat.h>
+
+#include <include/uapi/linux/incrementalfs.h>
+
+#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
+
+#define __packed __attribute__((__packed__))
+
+#ifdef __LP64__
+#define ptr_to_u64(p) ((__u64)p)
+#else
+#define ptr_to_u64(p) ((__u64)(__u32)p)
+#endif
+
+#define SHA256_DIGEST_SIZE 32
+#define INCFS_MAX_MTREE_LEVELS 8
+
+unsigned int rnd(unsigned int max, unsigned int *seed);
+
+int remove_dir(const char *dir);
+
+int drop_caches(void);
+
+int mount_fs(const char *mount_dir, const char *backing_dir,
+	     int read_timeout_ms);
+
+int umount_fs(const char *mount_dir);
+
+int mount_fs_opt(const char *mount_dir, const char *backing_dir,
+		 const char *opt, bool remount);
+
+int get_file_bmap(int cmd_fd, int ino, unsigned char *buf, int buf_size);
+
+int get_file_signature(int fd, unsigned char *buf, int buf_size);
+
+int emit_node(int fd, char *filename, int *ino_out, int parent_ino,
+		size_t size, mode_t mode, char *attr);
+
+int emit_file(int fd, const char *dir, const char *filename,
+	      incfs_uuid_t *id_out, size_t size, const char *attr);
+
+int crypto_emit_file(int fd, const char *dir, const char *filename,
+		     incfs_uuid_t *id_out, size_t size, const char *root_hash,
+		     const char *add_data);
+
+loff_t get_file_size(const char *name);
+
+int open_commands_file(const char *mount_dir);
+
+int open_log_file(const char *mount_dir);
+
+int open_blocks_written_file(const char *mount_dir);
+
+int wait_for_pending_reads(int fd, int timeout_ms,
+	struct incfs_pending_read_info *prs, int prs_count);
+
+int wait_for_pending_reads2(int fd, int timeout_ms,
+	struct incfs_pending_read_info2 *prs, int prs_count);
+
+char *concat_file_name(const char *dir, const char *file);
+
+void sha256(const char *data, size_t dsize, char *hash);
+
+void md5(const char *data, size_t dsize, char *hash);
+
+int delete_dir_tree(const char *path);
diff --git a/tools/testing/selftests/ftrace/test.d/trigger/trigger-hist-expressions.tc b/tools/testing/selftests/ftrace/test.d/trigger/trigger-hist-expressions.tc
new file mode 100644
index 0000000..05ffba2
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/trigger/trigger-hist-expressions.tc
@@ -0,0 +1,63 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: event trigger - test histogram expression parsing
+# requires: set_event events/sched/sched_process_fork/trigger events/sched/sched_process_fork/hist error_log "<var1>=<field|var_ref|numeric_literal>":README
+
+
+fail() { #msg
+    echo $1
+    exit_fail
+}
+
+test_hist_expr() { # test_name expression expected_val
+    trigger="events/sched/sched_process_fork/trigger"
+
+    reset_trigger_file $trigger
+
+    echo "Test hist trigger expressions - $1"
+
+    echo "hist:keys=common_pid:x=$2" > $trigger
+
+    for i in `seq 1 10` ; do ( echo "forked" > /dev/null); done
+
+    actual=`grep -o 'x=[[:digit:]]*' $trigger | awk -F= '{ print $2 }'`
+
+    if [ $actual != $3 ]; then
+        fail "Failed hist trigger expression evaluation: Expression: $2 Expected: $3, Actual: $actual"
+    fi
+
+    reset_trigger_file $trigger
+}
+
+check_error() { # test_name command-with-error-pos-by-^
+    trigger="events/sched/sched_process_fork/trigger"
+
+    echo "Test hist trigger expressions - $1"
+    ftrace_errlog_check 'hist:sched:sched_process_fork' "$2" $trigger
+}
+
+test_hist_expr "Variable assignment" "123" "123"
+
+test_hist_expr "Subtraction not associative" "16-8-4-2" "2"
+
+test_hist_expr "Division not associative" "64/8/4/2" "1"
+
+test_hist_expr "Same precedence operators (+,-) evaluated left to right" "16-8+4+2" "14"
+
+test_hist_expr "Same precedence operators (*,/) evaluated left to right" "4*3/2*2" "12"
+
+test_hist_expr "Multiplication evaluated before addition/subtraction" "4+3*2-2" "8"
+
+test_hist_expr "Division evaluated before addition/subtraction" "4+6/2-2" "5"
+
+# err pos for "too many subexpressions" is dependent on where
+# the last subexpression was detected. This can vary depending
+# on how the expression tree was generated.
+check_error "Too many subexpressions" 'hist:keys=common_pid:x=32+^10*3/20-4'
+check_error "Too many subexpressions" 'hist:keys=common_pid:x=^1+2+3+4+5'
+
+check_error "Unary minus not supported in subexpression" 'hist:keys=common_pid:x=-(^1)+2'
+
+check_error "Division by zero" 'hist:keys=common_pid:x=3/^0'
+
+exit 0
diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile
index d1774f4..fa5f31c 100644
--- a/tools/testing/selftests/kvm/Makefile
+++ b/tools/testing/selftests/kvm/Makefile
@@ -99,6 +99,7 @@
 TEST_GEN_PROGS_aarch64 += set_memory_region_test
 TEST_GEN_PROGS_aarch64 += steal_time
 TEST_GEN_PROGS_aarch64 += kvm_binary_stats_test
+TEST_PROGS_aarch64 += aarch64/s2mpu.sh
 
 TEST_GEN_PROGS_s390x = s390x/memop
 TEST_GEN_PROGS_s390x += s390x/resets
@@ -112,6 +113,7 @@
 TEST_GEN_PROGS_s390x += kvm_binary_stats_test
 
 TEST_GEN_PROGS += $(TEST_GEN_PROGS_$(UNAME_M))
+TEST_PROGS += $(TEST_PROGS_$(UNAME_M))
 LIBKVM += $(LIBKVM_$(UNAME_M))
 
 INSTALL_HDR_PATH = $(top_srcdir)/usr
diff --git a/tools/testing/selftests/kvm/aarch64/s2mpu.sh b/tools/testing/selftests/kvm/aarch64/s2mpu.sh
new file mode 100755
index 0000000..e822965
--- /dev/null
+++ b/tools/testing/selftests/kvm/aarch64/s2mpu.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# Tests the printf infrastructure using test_printf kernel module.
+$(dirname $0)/../kselftest/module.sh "s2mpu" test_kvm_s2mpu
diff --git a/usr/Makefile b/usr/Makefile
index b1a81a4..7b89c01 100644
--- a/usr/Makefile
+++ b/usr/Makefile
@@ -3,11 +3,6 @@
 # kbuild file for usr/ - including initramfs image
 #
 
-# cmd_bzip2, cmd_lzma, cmd_lzo, cmd_lz4 from scripts/Makefile.lib appends the
-# size at the end of the compressed file, which unfortunately does not work
-# with unpack_to_rootfs(). Make size_append no-op.
-override size_append := :
-
 compress-y					:= shipped
 compress-$(CONFIG_INITRAMFS_COMPRESSION_GZIP)	:= gzip
 compress-$(CONFIG_INITRAMFS_COMPRESSION_BZIP2)	:= bzip2
diff --git a/usr/include/Makefile b/usr/include/Makefile
index adc6cb2..6111974 100644
--- a/usr/include/Makefile
+++ b/usr/include/Makefile
@@ -10,7 +10,10 @@
 
 # In theory, we do not care -m32 or -m64 for header compile tests.
 # It is here just because CONFIG_CC_CAN_LINK is tested with -m32 or -m64.
-UAPI_CFLAGS += $(filter -m32 -m64, $(KBUILD_CFLAGS))
+UAPI_CFLAGS += $(filter -m32 -m64 --target=%, $(KBUILD_CFLAGS))
+
+# USERCFLAGS might contain sysroot location for CC.
+UAPI_CFLAGS += $(USERCFLAGS)
 
 override c_flags = $(UAPI_CFLAGS) -Wp,-MMD,$(depfile) -I$(objtree)/usr/include